@timlassiter11/yatl 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +141 -136
- package/dist/datatable.d.mts +25 -28
- package/dist/datatable.d.ts +25 -28
- package/dist/datatable.global.js +3 -3
- package/dist/datatable.global.js.map +1 -1
- package/dist/datatable.js +3 -3
- package/dist/datatable.js.map +1 -1
- package/dist/datatable.mjs +3 -3
- package/dist/datatable.mjs.map +1 -1
- package/package.json +65 -64
package/dist/datatable.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Ct=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames,Xt=Object.getOwnPropertySymbols;var qt=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var Kt=c=>{throw TypeError(c)};var Gt=(c,o,e)=>o in c?Ct(c,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[o]=e,rt=(c,o)=>{for(var e in o||(o={}))qt.call(o,e)&&Gt(c,e,o[e]);if(Xt)for(var e of Xt(o))ne.call(o,e)&&Gt(c,e,o[e]);return c};var ae=(c,o)=>{for(var e in o)Ct(c,e,{get:o[e],enumerable:!0})},le=(c,o,e,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of oe(o))!qt.call(c,r)&&r!==e&&Ct(c,r,{get:()=>o[r],enumerable:!(s=ie(o,r))||s.enumerable});return c};var de=c=>le(Ct({},"__esModule",{value:!0}),c);var Vt=(c,o,e)=>o.has(c)||Kt("Cannot "+e);var t=(c,o,e)=>(Vt(c,o,"read from private field"),e?e.call(c):o.get(c)),d=(c,o,e)=>o.has(c)?Kt("Cannot add the same private member more than once"):o instanceof WeakSet?o.add(c):o.set(c,e),f=(c,o,e,s)=>(Vt(c,o,"write to private field"),s?s.call(c,e):o.set(c,e),e),u=(c,o,e)=>(Vt(c,o,"access private method"),e);var _t=(c,o,e,s)=>({set _(r){f(c,o,r,e)},get _(){return t(c,o,s)}});var ce={};ae(ce,{DataTable:()=>Pt,LocalStorageAdapter:()=>jt});module.exports=de(ce);var dt,R,S,st,P,N,ct,X,J,ht,ft,ut,xt,Bt,at=class at{constructor({container:o,element:e,generator:s,nodePadding:r=10}){d(this,xt);d(this,R);d(this,S);d(this,st);d(this,P,0);d(this,N,0);d(this,ct,2);d(this,X,0);d(this,J,!1);d(this,ht,0);d(this,ft,()=>{t(this,R).scrollTop!==t(this,ht)&&(f(this,ht,t(this,R).scrollTop),t(this,X)&&cancelAnimationFrame(t(this,X)),f(this,X,requestAnimationFrame(()=>this.renderChunk())))});d(this,ut,()=>{this.renderChunk()});f(this,R,o),f(this,S,e),f(this,st,s),f(this,ct,r),new IntersectionObserver(a=>{for(let h of a)h.intersectionRatio===1&&this.renderChunk()}).observe(t(this,S))}get rowHeight(){return t(this,N)||u(this,xt,Bt).call(this),t(this,N)}get started(){return t(this,J)}scrollToIndex(o){if(o<0||o>=t(this,P))throw new RangeError("Index out of bounds.");this.scrollToPx(this.rowHeight*o)}scrollToPx(o){t(this,R).scrollTop=o,this.renderChunk()}start(o){t(this,J)||(t(this,R).addEventListener("scroll",t(this,ft)),window.addEventListener("resize",t(this,ut)),f(this,J,!0)),t(this,R).classList.add("dt-virtual-scroll"),f(this,P,o),this.renderChunk()}stop(){t(this,X)&&cancelAnimationFrame(t(this,X)),t(this,R).classList.remove("dt-virtual-scroll"),t(this,R).removeEventListener("scroll",t(this,ft)),window.removeEventListener("resize",t(this,ut)),f(this,J,!1)}renderChunk(){let o=t(this,R).scrollTop,e=t(this,P),s=this.rowHeight,r=t(this,ct);if(!this.started||!t(this,S).checkVisibility()||!e||!s)return;let i=s*e;t(this,S).innerHTML=`<div style="height: ${i}px;"></div>`;let a=t(this,S).offsetHeight,h=t(this,R).offsetHeight;!t(at,dt)&&a<Math.round(i-1)&&(f(at,dt,!0),console.error("Max element height exceeded. Virtual scroll may not work."));let n=Math.floor(o/s)-r;n=Math.max(0,n);let m=Math.ceil(h/s)+2*r;m=Math.min(e-n,m),n%2===1&&n--;let b=n*s,y=i-(b+m*s);try{t(this,S).innerHTML="";let x=new Array(m).fill(null).map((U,_)=>t(this,st).call(this,_+n)),O=document.createElement("div"),H=document.createElement("div");O.style.visibility="hidden",O.style.height=b+"px",H.style.visibility="hidden",H.style.height=y+"px",t(this,S).append(O),t(this,S).append(...x),t(this,S).append(H)}catch(x){x instanceof RangeError&&console.log(x)}}};dt=new WeakMap,R=new WeakMap,S=new WeakMap,st=new WeakMap,P=new WeakMap,N=new WeakMap,ct=new WeakMap,X=new WeakMap,J=new WeakMap,ht=new WeakMap,ft=new WeakMap,ut=new WeakMap,xt=new WeakSet,Bt=function(){if(t(this,P)===0||!t(this,S).checkVisibility()){f(this,N,0);return}let e=Math.min(1e3,t(this,P)),s=[];for(let r=0;r<e;++r)s.push(t(this,st).call(this,r));if(t(this,S).innerHTML="",t(this,S).append(...s),f(this,N,t(this,S).offsetHeight/e),t(this,N)<=0)throw new lt(`First ${e} rows had no rendered height. Virtual scroll can't be used.`);t(this,N)*t(this,P)>33554400&&console.warn("Virtual scroll height exceeded maximum known element height.")},d(at,dt,!1);var Lt=at,lt=class extends Error{constructor(o){super(o)}};var L=c=>{if(typeof c=="string"&&c!=="")return c.split(" ");if(Array.isArray(c))return c;if(!c)return[];throw new TypeError("classes must be string or array of strings")},Jt=c=>c.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,o=>o.toUpperCase()),Qt=c=>String(c).toLowerCase().replace(/[^\w\s]/g," ").trim().split(/\s+/);var v,V,M,E,p,D,C,W,Y,G,pt,it,k,bt,ot,wt,vt,Et,A,I,$,l,Zt,St,Nt,te,ee,Q,re,kt,mt,Ot,Wt,se,$t,gt,Ut,Mt,yt,Tt,Dt,Rt,Ft,Ht,zt,At,It,z=class z extends EventTarget{constructor(e,s={}){var m,b,y,x,O,H,U,_;super();d(this,l);d(this,v);d(this,V);d(this,M);d(this,E);d(this,p,new Map);d(this,D,new Map);d(this,C,[]);d(this,W);d(this,Y,[]);d(this,G);d(this,pt);d(this,it);d(this,k);d(this,bt);d(this,ot);d(this,wt,0);d(this,vt);d(this,Et);d(this,A);d(this,I);d(this,$,!1);d(this,Mt,e=>{if(!(e.target instanceof HTMLElement)||!e.target.classList.contains("dt-resizer")||!(e.currentTarget instanceof HTMLElement)||!e.currentTarget.dataset.dtField)return;e.stopImmediatePropagation(),e.preventDefault();let s=e.currentTarget.dataset.dtField,r=t(this,p).get(s);r&&(f(this,I,r),r.resizeStartX=e.clientX,r.resizeStartWidth=r.header.offsetWidth,document.addEventListener("mousemove",t(this,yt)),document.addEventListener("mouseup",t(this,Tt)))});d(this,yt,e=>{if(!t(this,I))return;e.stopImmediatePropagation(),e.preventDefault();let s=e.clientX-t(this,I).resizeStartX,r=t(this,I).resizeStartWidth+s;u(this,l,Ut).call(this,t(this,I),r)});d(this,Tt,e=>{if(!t(this,I))return;e.stopImmediatePropagation(),e.preventDefault(),document.removeEventListener("mousemove",t(this,yt)),document.removeEventListener("mouseup",t(this,Tt));let s=new CustomEvent("dt.col.resize",{cancelable:!1,detail:{column:t(this,I).field,width:t(this,I).header.offsetWidth}});this.dispatchEvent(s),f(this,I,void 0)});d(this,Dt,e=>{if(!(e.target instanceof HTMLElement)||!e.target.classList.contains("dt-resizer")||!(e.currentTarget instanceof HTMLElement)||!e.currentTarget.dataset.dtField)return;let s=e.currentTarget.dataset.dtField;s&&u(this,l,Ut).call(this,s)});d(this,Rt,e=>{let r=e.target.dataset.dtField;e.dataTransfer&&r&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",r))});d(this,Ft,e=>(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),!1));d(this,Ht,e=>{e.target.classList.add("dt-drag-over")});d(this,zt,e=>{e.target.classList.remove("dt-drag-over")});d(this,At,e=>{var m;let s=(m=e.dataTransfer)==null?void 0:m.getData("text/plain"),i=e.currentTarget.dataset.dtField;if(!s||!i)return;e.preventDefault(),e.stopPropagation();let a=[...t(this,p).values()],h=a.findIndex(b=>b.field===s),n=a.findIndex(b=>b.field===i);if(h>-1&&n>-1){let[b]=a.splice(h,1),y=t(this,p).get(i);if(!y)return;a.splice(n,0,b);let x=a.map(H=>H.field),O=new CustomEvent("dt.col.reorder",{cancelable:!0,detail:{draggedColumn:b.field,dropColumn:y.field,order:x}});if(!this.dispatchEvent(O))return;this.setColumnOrder(x)}});d(this,It,()=>{let e=document.querySelectorAll(".dt-drag-over");for(let s of e)s.classList.remove("dt-drag-over")});let r=rt(rt({columns:[],data:[]},z.DEFAULT_OPTIONS),s);if(typeof e=="string"){let g=document.querySelector(e);if(!g)throw new SyntaxError(`Failed to find table using selector ${e}`);f(this,v,g)}else f(this,v,e);if(!(t(this,v)instanceof HTMLTableElement))throw new TypeError("Invalid table element type. Must be HTMLTableElement");if(!Array.isArray(r.columns))throw new TypeError("columns must be a list of columns");f(this,ot,r.tokenizer),f(this,bt,r.highlightSearch),f(this,pt,r.extraSearchFields),f(this,vt,r.noDataText),f(this,Et,r.noMatchText),f(this,A,{scroller:[...L(r.classes.scroller),...L(z.DEFAULT_OPTIONS.classes.scroller)],thead:[...L(r.classes.thead),...L(z.DEFAULT_OPTIONS.classes.thead)],tbody:[...L(r.classes.tbody),...L(z.DEFAULT_OPTIONS.classes.tbody)],tfoot:[...L(r.classes.tfoot),...L(z.DEFAULT_OPTIONS.classes.tfoot)],tr:[...L(r.classes.tr),...L(z.DEFAULT_OPTIONS.classes.tr)],th:[...L(r.classes.th),...L(z.DEFAULT_OPTIONS.classes.th)],td:[...L(r.classes.td),...L(z.DEFAULT_OPTIONS.classes.td)],mark:[...L(r.classes.mark),...L(z.DEFAULT_OPTIONS.classes.mark)]}),f(this,it,r.rowFormatter),t(this,v).classList.add("data-table"),f(this,E,document.createElement("div")),t(this,E).classList.add(...t(this,A).scroller),t(this,E).style.overflow="auto",t(this,E).style.height="100%",t(this,v).style.height!==""&&(t(this,E).style.height=t(this,v).style.height,t(this,v).style.height=""),(m=t(this,v).parentElement)==null||m.insertBefore(t(this,E),t(this,v)),t(this,E).append(t(this,v)),t(this,v).querySelectorAll("thead").length>1&&console.warn("Multiple theads found in table. Using last one."),t(this,v).querySelectorAll("tbody").length>1&&console.warn("Multiple tbodys found in table. Using first one.");let i=t(this,v).querySelector("thead:last-of-type");i?f(this,V,i):(f(this,V,document.createElement("thead")),t(this,v).insertBefore(t(this,V),t(this,v).firstChild)),t(this,V).classList.add(...t(this,A).thead);let a=t(this,V).querySelector("tr:last-of-type");a||(a=document.createElement("tr"),t(this,V).append(a)),a.classList.add(...t(this,A).tr),a.innerHTML="";let h=t(this,v).querySelector("tbody:first-of-type");h?f(this,M,h):(f(this,M,document.createElement("tbody")),t(this,v).append(t(this,M))),t(this,M).classList.add(...t(this,A).tbody),t(this,M).addEventListener("click",g=>{var j;if((j=window.getSelection())!=null&&j.toString())return;let T,w,K;if(g.target instanceof HTMLTableCellElement?(w=g.target,T=w.parentElement,K=w.dataset.dtField):g.target instanceof HTMLTableRowElement&&(T=g.target),T){let B=parseInt(T.dataset.dtIndex||"");if(!isNaN(B)){let nt=t(this,C).find(et=>et._metadata.index===B);if(nt){let et=new CustomEvent("dt.row.clicked",{cancelable:!1,detail:{row:nt,index:B,column:K,originalEvent:g}});this.dispatchEvent(et)}}}});let n=!1;for(let g of r.columns){let T={field:g.field,title:g.title||Jt(g.field),header:document.createElement("th"),headerContent:document.createElement("div"),visible:(b=g.visible)!=null?b:!0,sortable:(y=g.sortable)!=null?y:r.sortable,searchable:(x=g.searchable)!=null?x:r.searchable,tokenize:(O=g.tokenize)!=null?O:r.tokenize,sortOrder:(H=g.sortOrder)!=null?H:null,sortPriority:(U=g.sortPriority)!=null?U:0,resizeStartWidth:null,resizeStartX:null,valueFormatter:g.valueFormatter,elementFormatter:g.elementFormatter,comparatorCallback:g.sorter,filterCallback:g.filter,sortValueCallback:g.sortValue};t(this,p).set(g.field,T);let w=T.header;w.classList.add(...t(this,A).th),w.dataset.dtField=g.field,w.hidden=!T.visible;let K=T.headerContent;K.classList.add("dt-header-content"),w.append(K);let j=document.createElement("div");j.classList.add("dt-header-title-wrapper"),K.append(j);let B=document.createElement("span");B.classList.add("dt-header-title"),B.innerHTML=T.title,j.append(B);let nt=document.createElement("div");nt.classList.add("dt-sort-icon"),j.append(nt);let et=document.createElement("div");et.classList.add("dt-resizer"),K.append(et),a.append(w),T.visible&&(n=!0),T.sortable&&w.classList.add("dt-sortable"),r.rearrangeable&&(w.draggable=!0),((_=g.resizable)!=null?_:r.resizable)&&w.classList.add("dt-resizable"),j.addEventListener("click",()=>{w.classList.contains("dt-sortable")&&(T.sortOrder?T.sortOrder==="asc"?this.sort(T.field,"desc"):T.sortOrder&&this.sort(T.field,null):this.sort(T.field,"asc"))}),w.addEventListener("dragstart",t(this,Rt)),w.addEventListener("dragenter",t(this,Ht)),w.addEventListener("dragover",t(this,Ft)),w.addEventListener("dragleave",t(this,zt)),w.addEventListener("drop",t(this,At)),w.addEventListener("dragend",t(this,It)),w.addEventListener("mousedown",t(this,Mt)),w.addEventListener("dblclick",t(this,Dt)),typeof g.width=="number"?w.style.width=g.width+"px":typeof g.width=="string"&&(w.style.width=g.width)}if(t(this,p).size===0)console.warn("No columns found. At least one column is required.");else if(!n){console.warn("At least a single column must be visible. Showing the first column.");let g=t(this,p).keys().next().value;this.showColumn(g)}this.virtualScroll=r.virtualScroll,this.loadData(r.data)}get columnStates(){return[...t(this,p).values()].map(e=>({field:e.field,title:e.title,visible:e.visible,sortOrder:e.sortOrder,sortPriority:e.sortPriority,width:e.header.style.width}))}set columnStates(e){var s,r,i,a;for(let h of e){let n=t(this,p).get(h.field);if(!n){console.warn(`Attempting to restore state for non-existent column ${h.field}`);continue}n.visible=(s=h.visible)!=null?s:n.visible,n.sortOrder=(r=h.sortOrder)!=null?r:n.sortOrder,n.sortPriority=(i=h.sortPriority)!=null?i:n.sortPriority,n.header.style.width=(a=h.width)!=null?a:n.header.style.width}this.refresh()}get rows(){return[...t(this,C)]}get data(){return[...t(this,D).values()]}get length(){return t(this,C)?t(this,C).length:0}get table(){return t(this,v)}get virtualScroll(){return!!t(this,k)}set virtualScroll(e){var s;e!=this.virtualScroll&&(e?f(this,k,new Lt({container:t(this,E),element:t(this,M),generator:r=>u(this,l,$t).call(this,r)})):((s=t(this,k))==null||s.stop(),f(this,k,void 0)),u(this,l,Ot).call(this))}loadData(e,s={}){var h;if(!Array.isArray(e))throw new TypeError("rows must be an array of rows");let r=t(this,E).scrollTop,i=t(this,E).scrollLeft;s.append||(t(this,D).clear(),f(this,C,[]));let a=t(this,D).size;for(let n of e){let m=u(this,l,Zt).call(this,n,a);t(this,D).set(a,m),a++}u(this,l,mt).call(this),u(this,l,Q).call(this),s.keepScroll&&(t(this,E).scrollTop=r,t(this,E).scrollLeft=i,(h=t(this,k))==null||h.renderChunk())}showMessage(e,s){Array.isArray(s)?s=s.join(" "):typeof s!="string"&&(s="");let r=t(this,p).size;t(this,M).innerHTML=`<tr class="${s}"><td colSpan=${r}>${e}</td></tr>`}clearMessage(){u(this,l,Ot).call(this)}search(e){typeof e=="string"&&(e=e.trim().toLocaleLowerCase()),f(this,W,e!==""?e:void 0),f(this,Y,u(this,l,ee).call(this,t(this,W))),u(this,l,Q).call(this)}filter(e){if(e!=null||(e={}),typeof e!="object"&&typeof e!="function")throw new TypeError("filters must be object or function");f(this,G,e),u(this,l,Q).call(this)}sort(e,s){var n;let r=t(this,p).get(e);if(!r){console.warn(`Attempting to sort non-existent column ${e}`);return}s!=r.sortOrder&&(s==="asc"||s==="desc"?r.sortPriority===Number.MAX_VALUE&&(r.sortPriority=_t(this,wt)._++):(r.sortPriority=Number.MAX_VALUE,_t(this,wt)._--),r.sortOrder=s);let i=new CustomEvent("dt.col.sort",{cancelable:!0,detail:{column:r.field,order:r.sortOrder}});if(!this.dispatchEvent(i))return;let a=t(this,E).scrollTop,h=t(this,E).scrollLeft;u(this,l,mt).call(this),u(this,l,kt).call(this),t(this,E).scrollTop=a,t(this,E).scrollLeft=h,(n=t(this,k))==null||n.renderChunk()}setColumnVisibility(e,s){let r=t(this,p).get(e);if(!r){console.warn(`Attempting to ${s?"show":"hide"} non-existent column ${e}`);return}if(r.visible===s)return;let i=new CustomEvent("dt.col.visibility",{cancelable:!0,detail:{column:r.field,visible:s}});this.dispatchEvent(i)&&(r.visible=s,u(this,l,mt).call(this),u(this,l,kt).call(this))}showColumn(e){this.setColumnVisibility(e,!0)}hideColumn(e){this.setColumnVisibility(e,!1)}export(e,s=!1){let i=[...(s?t(this,D):t(this,C)).values()],a=i[0];if(!a)return;let h=Object.keys(a).filter(x=>{let O=t(this,p).get(x);return O?s?!0:O.header.hidden===!1:!1}),n=i.map(x=>{let O=[];for(let H of Object.keys(x)){let U=t(this,p).get(H);if(!U)continue;let _=x[H];H in t(this,p)&&(s||!U.header.hidden)&&(typeof U.valueFormatter=="function"&&(_=U.valueFormatter(_,x)),_=String(_).replace('"','""'),O.push(`"${_}"`))}return O.join(",")}).join(`
|
|
2
|
-
`),
|
|
3
|
-
`+
|
|
1
|
+
"use strict";var bt=Object.defineProperty;var Yt=Object.getOwnPropertyDescriptor;var Zt=Object.getOwnPropertyNames,_t=Object.getOwnPropertySymbols;var $t=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable;var Wt=d=>{throw TypeError(d)};var Nt=(d,n,e)=>n in d?bt(d,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[n]=e,et=(d,n)=>{for(var e in n||(n={}))$t.call(n,e)&&Nt(d,e,n[e]);if(_t)for(var e of _t(n))Qt.call(n,e)&&Nt(d,e,n[e]);return d};var te=(d,n)=>{for(var e in n)bt(d,e,{get:n[e],enumerable:!0})},ee=(d,n,e,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Zt(n))!$t.call(d,r)&&r!==e&&bt(d,r,{get:()=>n[r],enumerable:!(s=Yt(n,r))||s.enumerable});return d};var re=d=>ee(bt({},"__esModule",{value:!0}),d);var Dt=(d,n,e)=>n.has(d)||Wt("Cannot "+e);var t=(d,n,e)=>(Dt(d,n,"read from private field"),e?e.call(d):n.get(d)),c=(d,n,e)=>n.has(d)?Wt("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(d):n.set(d,e),u=(d,n,e,s)=>(Dt(d,n,"write to private field"),s?s.call(d,e):n.set(d,e),e),f=(d,n,e)=>(Dt(d,n,"access private method"),e);var Ht=(d,n,e,s)=>({set _(r){u(d,n,r,e)},get _(){return t(d,n,s)}});var se={};te(se,{DataTable:()=>Rt,LocalStorageAdapter:()=>Pt});module.exports=re(se);var x=d=>{if(typeof d=="string"&&d!=="")return d.split(" ");if(Array.isArray(d))return d;if(!d)return[];throw new TypeError("classes must be string or array of strings")},Ut=d=>d.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,n=>n.toUpperCase()),jt=d=>String(d).toLowerCase().replace(/[^\w\s]/g," ").trim().split(/\s+/);var ot,H,S,rt,$,W,at,X,Y,lt,dt,ht,wt,Xt,it=class it{constructor({container:n,element:e,generator:s,nodePadding:r=10}){c(this,wt);c(this,H);c(this,S);c(this,rt);c(this,$,0);c(this,W,0);c(this,at,2);c(this,X,0);c(this,Y,!1);c(this,lt,0);c(this,dt,()=>{t(this,H).scrollTop!==t(this,lt)&&(u(this,lt,t(this,H).scrollTop),t(this,X)&&cancelAnimationFrame(t(this,X)),u(this,X,requestAnimationFrame(()=>this.renderChunk())))});c(this,ht,()=>{this.renderChunk()});u(this,H,n),u(this,S,e),u(this,rt,s),u(this,at,r),new IntersectionObserver(o=>{for(let h of o)h.intersectionRatio===1&&this.renderChunk()}).observe(t(this,S))}get rowHeight(){return t(this,W)||f(this,wt,Xt).call(this),t(this,W)}get started(){return t(this,Y)}scrollToIndex(n){if(n<0||n>=t(this,$))throw new RangeError("Index out of bounds.");this.scrollToPx(this.rowHeight*n)}scrollToPx(n){t(this,H).scrollTop=n,this.renderChunk()}start(n){t(this,Y)||(t(this,H).addEventListener("scroll",t(this,dt)),window.addEventListener("resize",t(this,ht)),u(this,Y,!0)),t(this,H).classList.add("dt-virtual-scroll"),u(this,$,n),this.renderChunk()}stop(){t(this,X)&&cancelAnimationFrame(t(this,X)),t(this,H).classList.remove("dt-virtual-scroll"),t(this,H).removeEventListener("scroll",t(this,dt)),window.removeEventListener("resize",t(this,ht)),u(this,Y,!1)}renderChunk(){let n=t(this,H).scrollTop,e=t(this,$),s=this.rowHeight,r=t(this,at);if(!this.started||!t(this,S).checkVisibility()||!e||!s)return;let i=s*e;t(this,S).innerHTML=`<div style="height: ${i}px;"></div>`;let o=t(this,S).offsetHeight,h=t(this,H).offsetHeight;!t(it,ot)&&o<Math.round(i-1)&&(u(it,ot,!0),console.error("Max element height exceeded. Virtual scroll may not work."));let a=Math.floor(n/s)-r;a=Math.max(0,a);let m=Math.ceil(h/s)+2*r;m=Math.min(e-a,m),a%2===1&&a--;let b=a*s,L=i-(b+m*s);try{t(this,S).innerHTML="";let F=new Array(m).fill(null).map((N,gt)=>t(this,rt).call(this,gt+a)),V=document.createElement("div"),D=document.createElement("div");V.style.visibility="hidden",V.style.height=b+"px",D.style.visibility="hidden",D.style.height=L+"px",t(this,S).append(V),t(this,S).append(...F),t(this,S).append(D)}catch(F){F instanceof RangeError&&console.log(F)}}};ot=new WeakMap,H=new WeakMap,S=new WeakMap,rt=new WeakMap,$=new WeakMap,W=new WeakMap,at=new WeakMap,X=new WeakMap,Y=new WeakMap,lt=new WeakMap,dt=new WeakMap,ht=new WeakMap,wt=new WeakSet,Xt=function(){if(t(this,$)===0||!t(this,S).checkVisibility()){u(this,W,0);return}let e=Math.min(1e3,t(this,$)),s=[];for(let r=0;r<e;++r)s.push(t(this,rt).call(this,r));if(t(this,S).innerHTML="",t(this,S).append(...s),u(this,W,t(this,S).offsetHeight/e),t(this,W)<=0)throw new nt(`First ${e} rows had no rendered height. Virtual scroll can't be used.`);t(this,W)*t(this,$)>33554400&&console.warn("Virtual scroll height exceeded maximum known element height.")},c(it,ot,!1);var vt=it,nt=class extends Error{constructor(n){super(n)}};var E,P,k,y,v,M,C,_,G,O,ft,A,I,p,U,l,Gt,Et,zt,Kt,q,Bt,yt,ct,Tt,At,Jt,It,ut,Vt,Ct,mt,pt,Lt,xt,St,Ot,kt,Mt,Ft,z=class z extends EventTarget{constructor(e,s={}){var a,m,b,L,F,V,D,N,gt;super();c(this,l);c(this,E);c(this,P);c(this,k);c(this,y);c(this,v,new Map);c(this,M,new Map);c(this,C,[]);c(this,_);c(this,G);c(this,O);c(this,ft,0);c(this,A);c(this,I);c(this,p);c(this,U,!1);c(this,Ct,e=>{if(!(e.target instanceof HTMLElement)||!e.target.classList.contains("dt-resizer")||!(e.currentTarget instanceof HTMLElement)||!e.currentTarget.dataset.dtField)return;e.stopImmediatePropagation(),e.preventDefault();let s=e.currentTarget.dataset.dtField,r=t(this,v).get(s);r&&(u(this,I,r),r.resizeStartX=e.clientX,r.resizeStartWidth=r.header.offsetWidth,document.addEventListener("mousemove",t(this,mt)),document.addEventListener("mouseup",t(this,pt)))});c(this,mt,e=>{if(!t(this,I))return;e.stopImmediatePropagation(),e.preventDefault();let s=e.clientX-t(this,I).resizeStartX,r=t(this,I).resizeStartWidth+s;f(this,l,Vt).call(this,t(this,I),r)});c(this,pt,e=>{if(!t(this,I))return;e.stopImmediatePropagation(),e.preventDefault(),document.removeEventListener("mousemove",t(this,mt)),document.removeEventListener("mouseup",t(this,pt));let s=new CustomEvent("dt.col.resize",{cancelable:!1,detail:{column:t(this,I).field,width:t(this,I).header.offsetWidth}});this.dispatchEvent(s),u(this,I,void 0)});c(this,Lt,e=>{if(!(e.target instanceof HTMLElement)||!e.target.classList.contains("dt-resizer")||!(e.currentTarget instanceof HTMLElement)||!e.currentTarget.dataset.dtField)return;let s=e.currentTarget.dataset.dtField;s&&f(this,l,Vt).call(this,s)});c(this,xt,e=>{let r=e.target.dataset.dtField;e.dataTransfer&&r&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",r))});c(this,St,e=>(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),!1));c(this,Ot,e=>{e.target.classList.add("dt-drag-over")});c(this,kt,e=>{e.target.classList.remove("dt-drag-over")});c(this,Mt,e=>{var m;let s=(m=e.dataTransfer)==null?void 0:m.getData("text/plain"),i=e.currentTarget.dataset.dtField;if(!s||!i)return;e.preventDefault(),e.stopPropagation();let o=[...t(this,v).values()],h=o.findIndex(b=>b.field===s),a=o.findIndex(b=>b.field===i);if(h>-1&&a>-1){let[b]=o.splice(h,1),L=t(this,v).get(i);if(!L)return;o.splice(a,0,b);let F=o.map(D=>D.field),V=new CustomEvent("dt.col.reorder",{cancelable:!0,detail:{draggedColumn:b.field,dropColumn:L.field,order:F}});if(!this.dispatchEvent(V))return;this.setColumnOrder(F)}});c(this,Ft,()=>{let e=document.querySelectorAll(".dt-drag-over");for(let s of e)s.classList.remove("dt-drag-over")});if(u(this,p,et(et({columns:[],data:[]},z.DEFAULT_OPTIONS),s)),typeof e=="string"){let g=document.querySelector(e);if(!g)throw new SyntaxError(`Failed to find table using selector ${e}`);u(this,E,g)}else u(this,E,e);if(!(t(this,E)instanceof HTMLTableElement))throw new TypeError("Invalid table element type. Must be HTMLTableElement");if(!Array.isArray(t(this,p).columns))throw new TypeError("columns must be a list of columns");u(this,A,{scroller:[...x(t(this,p).classes.scroller),...x(z.DEFAULT_OPTIONS.classes.scroller)],thead:[...x(t(this,p).classes.thead),...x(z.DEFAULT_OPTIONS.classes.thead)],tbody:[...x(t(this,p).classes.tbody),...x(z.DEFAULT_OPTIONS.classes.tbody)],tfoot:[...x(t(this,p).classes.tfoot),...x(z.DEFAULT_OPTIONS.classes.tfoot)],tr:[...x(t(this,p).classes.tr),...x(z.DEFAULT_OPTIONS.classes.tr)],th:[...x(t(this,p).classes.th),...x(z.DEFAULT_OPTIONS.classes.th)],td:[...x(t(this,p).classes.td),...x(z.DEFAULT_OPTIONS.classes.td)],mark:[...x(t(this,p).classes.mark),...x(z.DEFAULT_OPTIONS.classes.mark)]}),t(this,E).classList.add("data-table"),u(this,y,document.createElement("div")),t(this,y).classList.add(...t(this,A).scroller),t(this,y).style.overflow="auto",t(this,y).style.height="100%",t(this,E).style.height!==""&&(t(this,y).style.height=t(this,E).style.height,t(this,E).style.height=""),(a=t(this,E).parentElement)==null||a.insertBefore(t(this,y),t(this,E)),t(this,y).append(t(this,E)),t(this,E).querySelectorAll("thead").length>1&&console.warn("Multiple theads found in table. Using last one."),t(this,E).querySelectorAll("tbody").length>1&&console.warn("Multiple tbodys found in table. Using first one.");let r=t(this,E).querySelector("thead:last-of-type");r?u(this,P,r):(u(this,P,document.createElement("thead")),t(this,E).insertBefore(t(this,P),t(this,E).firstChild)),t(this,P).classList.add(...t(this,A).thead);let i=t(this,P).querySelector("tr:last-of-type");i||(i=document.createElement("tr"),t(this,P).append(i)),i.classList.add(...t(this,A).tr),i.innerHTML="";let o=t(this,E).querySelector("tbody:first-of-type");o?u(this,k,o):(u(this,k,document.createElement("tbody")),t(this,E).append(t(this,k))),t(this,k).classList.add(...t(this,A).tbody),t(this,k).addEventListener("click",g=>{var j;if((j=window.getSelection())!=null&&j.toString())return;let T,w,B;if(g.target instanceof HTMLTableCellElement?(w=g.target,T=w.parentElement,B=w.dataset.dtField):g.target instanceof HTMLTableRowElement&&(T=g.target),T){let J=parseInt(T.dataset.dtIndex||"");if(!isNaN(J)){let st=t(this,C).find(tt=>tt._metadata.index===J);if(st){let tt=new CustomEvent("dt.row.clicked",{cancelable:!1,detail:{row:st,index:J,column:B,originalEvent:g}});this.dispatchEvent(tt)}}}});let h=!1;for(let g of t(this,p).columns){let T={field:g.field,title:g.title||Ut(g.field),header:document.createElement("th"),headerContent:document.createElement("div"),visible:(m=g.visible)!=null?m:!0,sortable:(b=g.sortable)!=null?b:t(this,p).sortable,searchable:(L=g.searchable)!=null?L:t(this,p).searchable,tokenize:(F=g.tokenize)!=null?F:t(this,p).tokenize,sortOrder:(V=g.sortOrder)!=null?V:null,sortPriority:(D=g.sortPriority)!=null?D:0,resizeStartWidth:null,resizeStartX:null,valueFormatter:g.valueFormatter,elementFormatter:g.elementFormatter,comparatorCallback:g.sorter,filterCallback:g.filter,sortValueCallback:g.sortValue};t(this,v).set(g.field,T);let w=T.header;w.classList.add(...t(this,A).th),w.dataset.dtField=g.field,w.hidden=!T.visible;let B=T.headerContent;B.classList.add("dt-header-content"),w.append(B);let j=document.createElement("div");j.classList.add("dt-header-title-wrapper"),B.append(j);let J=document.createElement("span");J.classList.add("dt-header-title"),J.innerHTML=T.title,j.append(J);let st=document.createElement("div");st.classList.add("dt-sort-icon"),j.append(st);let tt=document.createElement("div");tt.classList.add("dt-resizer"),B.append(tt),i.append(w),T.visible&&(h=!0),T.sortable&&w.classList.add("dt-sortable"),t(this,p).rearrangeable&&(w.draggable=!0),((N=g.resizable)!=null?N:t(this,p).resizable)&&w.classList.add("dt-resizable"),j.addEventListener("click",()=>{w.classList.contains("dt-sortable")&&(T.sortOrder?T.sortOrder==="asc"?this.sort(T.field,"desc"):T.sortOrder&&this.sort(T.field,null):this.sort(T.field,"asc"))}),w.addEventListener("dragstart",t(this,xt)),w.addEventListener("dragenter",t(this,Ot)),w.addEventListener("dragover",t(this,St)),w.addEventListener("dragleave",t(this,kt)),w.addEventListener("drop",t(this,Mt)),w.addEventListener("dragend",t(this,Ft)),w.addEventListener("mousedown",t(this,Ct)),w.addEventListener("dblclick",t(this,Lt)),typeof g.width=="number"?w.style.width=g.width+"px":typeof g.width=="string"&&(w.style.width=g.width)}if(t(this,v).size===0)console.warn("No columns found. At least one column is required.");else if(!h){console.warn("At least a single column must be visible. Showing the first column.");let g=t(this,v).keys().next().value;this.showColumn(g)}this.virtualScroll=t(this,p).virtualScroll,this.loadData((gt=t(this,p).data)!=null?gt:[])}get columnStates(){return[...t(this,v).values()].map(e=>({field:e.field,title:e.title,visible:e.visible,sortOrder:e.sortOrder,sortPriority:e.sortPriority,width:e.header.style.width}))}set columnStates(e){var s,r,i,o;for(let h of e){let a=t(this,v).get(h.field);if(!a){console.warn(`Attempting to restore state for non-existent column ${h.field}`);continue}a.visible=(s=h.visible)!=null?s:a.visible,a.sortOrder=(r=h.sortOrder)!=null?r:a.sortOrder,a.sortPriority=(i=h.sortPriority)!=null?i:a.sortPriority,a.header.style.width=(o=h.width)!=null?o:a.header.style.width}this.refresh()}get rows(){return[...t(this,C)]}get data(){return[...t(this,M).values()]}get length(){return t(this,C)?t(this,C).length:0}get table(){return t(this,E)}get virtualScroll(){return!!t(this,O)}set virtualScroll(e){var s;e!=this.virtualScroll&&(e?u(this,O,new vt({container:t(this,y),element:t(this,k),generator:r=>f(this,l,It).call(this,r)})):((s=t(this,O))==null||s.stop(),u(this,O,void 0)),f(this,l,Tt).call(this))}get scoring(){return t(this,p).scoring}set scoring(e){e!==t(this,p).scoring&&(t(this,p).scoring=e,t(this,_)&&f(this,l,q).call(this))}loadData(e,s={}){var h;let r=t(this,y).scrollTop,i=t(this,y).scrollLeft;s.append||(t(this,M).clear(),u(this,C,[]));let o=t(this,M).size;for(let a of e){let m=f(this,l,Gt).call(this,a,o);t(this,M).set(o,m),o++}f(this,l,ct).call(this),f(this,l,q).call(this),s.keepScroll&&(t(this,y).scrollTop=r,t(this,y).scrollLeft=i,(h=t(this,O))==null||h.renderChunk())}showMessage(e,s){Array.isArray(s)?s=s.join(" "):typeof s!="string"&&(s="");let r=t(this,v).size;t(this,k).innerHTML=`<tr class="${s}"><td colSpan=${r}>${e}</td></tr>`}clearMessage(){f(this,l,Tt).call(this)}search(e){if(e===""&&(e=void 0),typeof e=="string"){let s=t(this,p).tokenizer(e.trim()).join("|");u(this,_,new RegExp(`${s}`,"gi"))}else u(this,_,e);f(this,l,q).call(this)}filter(e){if(e!=null||(e={}),typeof e!="object"&&typeof e!="function")throw new TypeError("filters must be object or function");u(this,G,e),f(this,l,q).call(this)}sort(e,s){var a;let r=t(this,v).get(e);if(!r){console.warn(`Attempting to sort non-existent column ${e}`);return}s!=r.sortOrder&&(s==="asc"||s==="desc"?r.sortPriority===Number.MAX_VALUE&&(r.sortPriority=Ht(this,ft)._++):(r.sortPriority=Number.MAX_VALUE,Ht(this,ft)._--),r.sortOrder=s);let i=new CustomEvent("dt.col.sort",{cancelable:!0,detail:{column:r.field,order:r.sortOrder}});if(!this.dispatchEvent(i))return;let o=t(this,y).scrollTop,h=t(this,y).scrollLeft;f(this,l,ct).call(this),f(this,l,yt).call(this),t(this,y).scrollTop=o,t(this,y).scrollLeft=h,(a=t(this,O))==null||a.renderChunk()}setColumnVisibility(e,s){let r=t(this,v).get(e);if(!r){console.warn(`Attempting to ${s?"show":"hide"} non-existent column ${e}`);return}if(r.visible===s)return;let i=new CustomEvent("dt.col.visibility",{cancelable:!0,detail:{column:r.field,visible:s}});this.dispatchEvent(i)&&(r.visible=s,f(this,l,ct).call(this),f(this,l,yt).call(this))}showColumn(e){this.setColumnVisibility(e,!0)}hideColumn(e){this.setColumnVisibility(e,!1)}export(e,s=!1){let i=[...(s?t(this,M):t(this,C)).values()],o=[...t(this,v).values()].filter(L=>s||L.visible).map(L=>`"${L.title}"`).join(","),h=i.map(L=>{let F=[];for(let V of Object.keys(L)){let D=t(this,v).get(V);if(!D)continue;let N=L[V];(s||!D.header.hidden)&&(typeof D.valueFormatter=="function"&&(N=D.valueFormatter(N,L)),N=String(N).replace('"','""'),F.push(`"${N}"`))}return F.join(",")}).join(`
|
|
2
|
+
`),a=o+`
|
|
3
|
+
`+h,m=new Blob([a],{type:"text/csv;charset=utf-8,"}),b=document.createElement("a");b.style.display="none",b.href=URL.createObjectURL(m),b.download=`${e}.csv`,document.body.append(b),b.click(),b.remove()}scrollToRow(e){var i;let r=(i=e._metadata)==null?void 0:i.index;if(typeof r=="number")this.scrollToOriginalIndex(r);else throw new TypeError("Invalid row")}scrollToOriginalIndex(e){let s=t(this,M).get(e);if(s){let r=t(this,C).indexOf(s);if(r>=0){this.scrollToFilteredIndex(r);return}else throw new Error("Cannot scroll to filtered out row")}else throw new RangeError(`Row index ${e} out of range`)}scrollToFilteredIndex(e){let s=t(this,C)[e];if(!s)throw new RangeError(`Row index ${e} out of range`);if(t(this,O))t(this,O).scrollToIndex(e);else{let r=t(this,k).querySelector(`tr[data-dt-index="${s._metadata.index}"]`);if(r){r.scrollIntoView(!0);let i=parseFloat(getComputedStyle(t(this,P)).height);t(this,y).scrollTop-=i}}}scrollToPx(e){if(t(this,O))t(this,O).scrollToPx(e);else{let s=parseFloat(getComputedStyle(t(this,P)).height);t(this,y).scrollTop-=s}}setColumnOrder(e){if(!Array.isArray(e))throw new TypeError("fields must be an array of field names");let s=new Map;for(let r of e){let i=t(this,v).get(r);i&&s.set(r,i)}for(let[r,i]of t(this,v))s.has(r)||s.set(r,i);u(this,v,s),this.refresh()}refresh(){f(this,l,ct).call(this),f(this,l,q).call(this)}indexOf(e,s){let i=[...t(this,M).values()].find(o=>{if(e in o)return o[e]===s});return i?i._metadata.index:-1}updateRow(e,s){let r=t(this,M).get(e);r&&(Object.assign(r,s),f(this,l,q).call(this))}deleteRow(e){t(this,M).delete(e),f(this,l,q).call(this)}withoutUpdates(e){u(this,U,!0);try{e(this)}finally{u(this,U,!1),this.refresh()}}addEventListener(e,s,r){super.addEventListener(e,s,r)}};E=new WeakMap,P=new WeakMap,k=new WeakMap,y=new WeakMap,v=new WeakMap,M=new WeakMap,C=new WeakMap,_=new WeakMap,G=new WeakMap,O=new WeakMap,ft=new WeakMap,A=new WeakMap,I=new WeakMap,p=new WeakMap,U=new WeakMap,l=new WeakSet,Gt=function(e,s){let r={index:s++,tokens:{},sortValues:{}};e._metadata=r;for(let[i,o]of t(this,v)){let h=f(this,l,ut).call(this,e,i);typeof o.sortValueCallback=="function"?r.sortValues[i]=o.sortValueCallback(h):h instanceof String?r.sortValues[i]=h.toLocaleLowerCase():r.sortValues[i]=h,o.searchable&&o.tokenize&&h&&(r.tokens[i]=[String(h),...t(this,p).tokenizer(h)])}return e},Et=function(e,s){if(Array.isArray(e))return t(this,p).scoring?e.map(r=>f(this,l,Et).call(this,r,s)).reduce((r,i)=>r+i,0):e.some(r=>f(this,l,Et).call(this,r,s))?1:0;if(t(this,p).scoring){let r=e.match(s);if(r)return r.reduce((i,o)=>i+o.length,0)}else return s.test(e)?1:0;return 0},zt=function(e,s,r){if(Array.isArray(s)){for(let i of s)if(f(this,l,zt).call(this,e,i))return!0;return!1}return typeof r=="function"?r(e,s):s instanceof RegExp?s.test(String(e)):s===e},Kt=function(e,s){if(typeof t(this,G)=="function")return t(this,G).call(this,e,s);for(let r of Object.keys(t(this,G)||{})){let i=t(this,G)[r];if(i==null)continue;let o=f(this,l,ut).call(this,e,r);if(typeof i=="function"){if(!i(o))return!1}else{let h=t(this,v).get(r),a=h?h.filterCallback:void 0;if(!f(this,l,zt).call(this,o,i,a))return!1}}return!0},q=function(){if(t(this,U))return;let e=[...t(this,M).values()];u(this,C,e.filter((r,i)=>{if(r._metadata.searchScore=0,!f(this,l,Kt).call(this,r,i))return!1;if(!t(this,_))return!0;let h=[...[...t(this,v).values()].filter(a=>a.searchable).map(a=>a.field),...t(this,p).extraSearchFields];for(let a of h){let m=t(this,v).get(a),b;m&&a in r._metadata.tokens?b=r._metadata.tokens[a]:b=String(f(this,l,ut).call(this,r,a));let L=f(this,l,Et).call(this,b,t(this,_));r._metadata.searchScore+=L}return r._metadata.searchScore>0})),f(this,l,yt).call(this);let s=new CustomEvent("dt.rows.changed",{cancelable:!1,detail:{dataTable:this}});this.dispatchEvent(s)},Bt=function(e,s,r){let i,o;if(r.sortOrder==="asc"?(i=e._metadata.sortValues[r.field],o=s._metadata.sortValues[r.field]):r.sortOrder==="desc"&&(i=s._metadata.sortValues[r.field],o=e._metadata.sortValues[r.field]),typeof r.sorter=="function"){let h=r.sorter(i,o);if(h!==0)return h}return i<o?-1:i>o?1:0},yt=function(){if(t(this,U))return;let e=[...t(this,v).values()].filter(s=>!s.header.hidden&&s.sortOrder).sort((s,r)=>s.sortPriority-r.sortPriority);t(this,C).sort((s,r)=>{if(this.scoring&&t(this,_)){let i=s._metadata.searchScore||0,o=r._metadata.searchScore||0;if(i>o)return-1;if(i<o)return 1}for(let i of e){let o=f(this,l,Bt).call(this,s,r,i);if(o!==0)return o}return s._metadata.index-r._metadata.index}),f(this,l,Tt).call(this)},ct=function(){var e,s,r,i,o,h,a;if(!t(this,U))for(let m of t(this,v).values())(e=m.header.parentElement)==null||e.append(m.header),m.header.hidden=!m.visible,m.sortOrder==="asc"?((s=m.header)==null||s.classList.add("dt-ascending"),(r=m.header)==null||r.classList.remove("dt-descending")):m.sortOrder==="desc"?((i=m.header)==null||i.classList.add("dt-descending"),(o=m.header)==null||o.classList.remove("dt-ascending")):((h=m.header)==null||h.classList.remove("dt-ascending"),(a=m.header)==null||a.classList.remove("dt-descending"))},Tt=function(){if(!t(this,U)){if(t(this,k).innerHTML="",t(this,O))try{t(this,O).start(t(this,C).length)}catch(e){e instanceof nt&&(console.warn("Failed to start virtual scroll... falling back to standard rendering"),console.warn(e.stack))}else{if(t(this,C).length>qt){let s=qt.toLocaleString();console.warn(`Virtual scroll disabled with more than ${s} rows... Good luck with that!`)}let e=t(this,C).map((s,r)=>f(this,l,It).call(this,r));t(this,k).append(...e)}t(this,M).size===0?this.showMessage(t(this,p).noDataText,"dt-empty"):t(this,C).length===0&&this.showMessage(t(this,p).noMatchText,"dt-empty")}},At=function(e,s){if(e.children.length===0){let r=e.innerText,i=t(this,A).mark.join(" ");r=r.replace(s,o=>`<mark class="${i}">${o}</mark>`),e.innerHTML=r}else for(let r of e.children)r instanceof HTMLElement&&f(this,l,At).call(this,r,s)},Jt=function(e,s,r,i){typeof r.valueFormatter=="function"&&(s=r.valueFormatter(s,i)),e.innerText=s==null?"-":s,typeof r.elementFormatter=="function"&&r.elementFormatter(s,i,e),t(this,p).highlightSearch&&t(this,_)&&r.searchable&&f(this,l,At).call(this,e,t(this,_)),e.hidden=!r.visible},It=function(e){let s=t(this,C)[e],r=document.createElement("tr");r.classList.add(...t(this,A).tr),r.dataset.dtIndex=String(s._metadata.index);for(let[i,o]of t(this,v)){let h=f(this,l,ut).call(this,s,i),a=document.createElement("td");a.classList.add(...t(this,A).td),a.dataset.dtField=i;let m=o.header.style.width;m&&m!=="0px"&&(a.style.maxWidth=m),f(this,l,Jt).call(this,a,h,o,s),r.append(a)}if(typeof t(this,p).rowFormatter=="function")try{t(this,p).rowFormatter(s,r)}catch(i){console.error("Row formatter callback failed with the following error"),console.error(i)}return r},ut=function(e,s){let r=s.split("."),i=e;for(let o of r)if(i&&typeof i=="object")i=i[o];else return;return i},Vt=function(e,s){if(typeof e=="string"){let b=t(this,v).get(e);if(!b)throw new Error("Column not found");e=b}let r,i;s==null?(r="",i=""):s<=0?(r="0px",i=""):(r=`${s}px`,i=`${s}px`);let o=e.header.offsetWidth;e.header.style.width=r,e.header.style.maxWidth=r;let h=t(this,k).querySelectorAll(`td[data-dt-field="${e.field}"]`);for(let b of h)b.style.maxWidth=i;let a=e.header.offsetWidth-o,m=t(this,E).offsetWidth+a;t(this,E).style.width=`${m}px`},Ct=new WeakMap,mt=new WeakMap,pt=new WeakMap,Lt=new WeakMap,xt=new WeakMap,St=new WeakMap,Ot=new WeakMap,kt=new WeakMap,Mt=new WeakMap,Ft=new WeakMap,z.DEFAULT_OPTIONS={virtualScroll:!0,highlightSearch:!0,sortable:!0,searchable:!1,tokenize:!1,scoring:!0,resizable:!0,rearrangeable:!0,extraSearchFields:[],noDataText:"No records found",noMatchText:"No matching records found",classes:{scroller:"dt-scroller",thead:"dt-headers",tbody:"",tfoot:"",tr:"",th:"",td:""},tokenizer:jt};var Rt=z,qt=1e4;var K,Z,R,Q,Pt=class{constructor(n,e,s){c(this,K);c(this,Z);c(this,R,{saveColumnSorting:!0,saveColumnVisibility:!0,saveColumnWidth:!0,saveColumnOrder:!0});c(this,Q,()=>setTimeout(()=>this.saveState(),0));u(this,K,n),u(this,Z,e),u(this,R,et(et({},t(this,R)),s)),this.restoreState(),t(this,R).saveColumnSorting&&n.addEventListener("dt.col.sort",t(this,Q)),t(this,R).saveColumnVisibility&&n.addEventListener("dt.col.visibility",t(this,Q)),t(this,R).saveColumnWidth&&n.addEventListener("dt.col.resize",t(this,Q)),t(this,R).saveColumnOrder&&n.addEventListener("dt.col.reorder",t(this,Q))}saveState(){let n=t(this,K).columnStates;for(let e of n)t(this,R).saveColumnSorting||(e.sortOrder=void 0,e.sortPriority=void 0),t(this,R).saveColumnVisibility||(e.visible=void 0),t(this,R).saveColumnWidth||(e.width=void 0);localStorage.setItem(t(this,Z),JSON.stringify(t(this,K).columnStates))}restoreState(){let n=localStorage.getItem(t(this,Z));if(n)try{let e=JSON.parse(n);t(this,K).columnStates=e,t(this,R).saveColumnOrder&&t(this,K).setColumnOrder(e.map(s=>s.field))}catch(e){console.error("Failed to restore DataTable state:",e)}}clearState(){localStorage.removeItem(t(this,Z))}};K=new WeakMap,Z=new WeakMap,R=new WeakMap,Q=new WeakMap;0&&(module.exports={DataTable,LocalStorageAdapter});
|
|
4
4
|
//# sourceMappingURL=datatable.js.map
|