@timlassiter11/yatl 0.3.21 → 0.3.22
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/dist/data-table.d.mts +2 -0
- package/dist/data-table.d.ts +2 -0
- package/dist/data-table.global.js +3 -3
- package/dist/data-table.global.js.map +1 -1
- package/dist/data-table.js +3 -3
- package/dist/data-table.js.map +1 -1
- package/dist/data-table.mjs +3 -3
- package/dist/data-table.mjs.map +1 -1
- package/package.json +1 -1
package/dist/data-table.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var be=Object.defineProperty,lt=Object.defineProperties,dt=Object.getOwnPropertyDescriptor,ct=Object.getOwnPropertyDescriptors,ht=Object.getOwnPropertyNames,ge=Object.getOwnPropertySymbols;var ke=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var Qe=a=>{throw TypeError(a)};var Xe=(a,o,e)=>o in a?be(a,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[o]=e,P=(a,o)=>{for(var e in o||(o={}))ke.call(o,e)&&Xe(a,e,o[e]);if(ge)for(var e of ge(o))Ge.call(o,e)&&Xe(a,e,o[e]);return a},He=(a,o)=>lt(a,ct(o));var Be=(a,o)=>{var e={};for(var s in a)ke.call(a,s)&&o.indexOf(s)<0&&(e[s]=a[s]);if(a!=null&&ge)for(var s of ge(a))o.indexOf(s)<0&&Ge.call(a,s)&&(e[s]=a[s]);return e};var ut=(a,o)=>{for(var e in o)be(a,e,{get:o[e],enumerable:!0})},ft=(a,o,e,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of ht(o))!ke.call(a,i)&&i!==e&&be(a,i,{get:()=>o[i],enumerable:!(s=dt(o,i))||s.enumerable});return a};var pt=a=>ft(be({},"__esModule",{value:!0}),a);var Ne=(a,o,e)=>o.has(a)||Qe("Cannot "+e);var t=(a,o,e)=>(Ne(a,o,"read from private field"),e?e.call(a):o.get(a)),f=(a,o,e)=>o.has(a)?Qe("Cannot add the same private member more than once"):o instanceof WeakSet?o.add(a):o.set(a,e),m=(a,o,e,s)=>(Ne(a,o,"write to private field"),s?s.call(a,e):o.set(a,e),e),u=(a,o,e)=>(Ne(a,o,"access private method"),e);var Tt={};ut(Tt,{DataTable:()=>Ve,LocalStorageAdapter:()=>$e,VirtualScroll:()=>ne,VirtualScrollError:()=>ee,createRegexTokenizer:()=>ze});module.exports=pt(Tt);var ae,L,D,Z,$,j,le,U,B,de,I,X,q,ce,K,Ie,ve,Je,Q=class Q{constructor({generator:o,container:e,element:s=e,nodePadding:i=10}){f(this,K);f(this,L);f(this,D);f(this,Z);f(this,$,0);f(this,j,0);f(this,le,2);f(this,U,0);f(this,B,!1);f(this,de,0);f(this,I);f(this,X);f(this,q);f(this,ce,()=>{t(this,L).scrollTop!==t(this,de)&&(m(this,de,t(this,L).scrollTop),u(this,K,Ie).call(this))});m(this,L,e),m(this,D,s),m(this,Z,o),m(this,le,i),m(this,I,document.createElement("div")),t(this,I).style.visibility="hidden",m(this,X,document.createElement("div")),t(this,X).style.visibility="hidden",m(this,q,new ResizeObserver(()=>u(this,K,Ie).call(this)))}get rowHeight(){return t(this,j)||u(this,K,Je).call(this),t(this,j)}get started(){return t(this,B)}scrollToIndex(o){if(o<0||o>=t(this,$))throw new RangeError("Index out of bounds.");this.scrollToPx(this.rowHeight*o)}scrollToPx(o){t(this,L).scrollTop=o,u(this,K,ve).call(this)}start(o){t(this,B)||(t(this,L).addEventListener("scroll",t(this,ce)),t(this,q).observe(t(this,L)),m(this,B,!0)),t(this,L).classList.add("dt-virtual-scroll"),m(this,$,o),u(this,K,ve).call(this)}stop(){t(this,U)&&cancelAnimationFrame(t(this,U)),t(this,L).classList.remove("dt-virtual-scroll"),t(this,L).removeEventListener("scroll",t(this,ce)),t(this,q).disconnect(),m(this,B,!1)}};ae=new WeakMap,L=new WeakMap,D=new WeakMap,Z=new WeakMap,$=new WeakMap,j=new WeakMap,le=new WeakMap,U=new WeakMap,B=new WeakMap,de=new WeakMap,I=new WeakMap,X=new WeakMap,q=new WeakMap,ce=new WeakMap,K=new WeakSet,Ie=function(){t(this,U)&&cancelAnimationFrame(t(this,U)),m(this,U,requestAnimationFrame(()=>u(this,K,ve).call(this)))},ve=function(){let o=t(this,L).scrollTop,e=t(this,$),s=this.rowHeight,i=t(this,le);if(!this.started||!e||!s)return;let r=s*e,n=t(this,L).style.height;t(this,L).style.height="100%";let c=t(this,L).offsetHeight;t(this,L).style.height=n;let h=i*2,d=Math.floor(o/s)-i;d<0&&(h+=d),d=Math.max(0,d);let p=Math.ceil(c/s)+h;p=Math.min(e-d,p),d%2===1&&(d--,p++);let b=d*s,v=r-(b+p*s);for(v<0&&(v=0);t(this,I).nextSibling&&t(this,I).nextSibling!==t(this,X);)t(this,D).removeChild(t(this,I).nextSibling);let C=new Array(p).fill(null).map((y,x)=>t(this,Z).call(this,x+d));t(this,I).style.height=b+"px",t(this,X).style.height=v+"px",t(this,I).parentElement?t(this,I).after(...C):t(this,D).append(t(this,I),...C,t(this,X));let A=t(this,D).offsetHeight;!t(Q,ae)&&A<Math.round(r-1)&&(m(Q,ae,!0),console.error("Max element height exceeded. Virtual scroll may not work."))},Je=function(){if(t(this,$)===0){m(this,j,0);return}let o=Math.min(Q.AVERAGE_RENDER_COUNT,t(this,$)),e="";for(let r=0;r<o;++r)e+=t(this,Z).call(this,r).outerHTML;let s=t(this,D).style.visibility,i=t(this,D).innerHTML;if(t(this,D).style.visibility="hidden",t(this,D).innerHTML=e,m(this,j,t(this,D).offsetHeight/o),t(this,D).innerHTML=i,t(this,D).style.visibility=s,t(this,j)<=0)throw new ee(`First ${o} rows had no rendered height. Virtual scroll can't be used.`);t(this,j)*t(this,$)>33554400&&console.warn("Virtual scroll height exceeded maximum known element height.")},f(Q,ae,!1),Q.AVERAGE_RENDER_COUNT=1e3;var ne=Q,ee=class extends Error{constructor(o){super(o)}};var F=a=>{if(typeof a=="string"&&a!=="")return a.split(" ");if(Array.isArray(a))return a;if(!a)return[];throw new TypeError("classes must be string or array of strings")},Ye=a=>a.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,o=>o.toUpperCase()),ze=(a="\\S+")=>{let o=new RegExp(`"[^"]*"|${a}`,"g");return e=>(e.match(o)||[]).map(i=>(i=i.toLocaleLowerCase().trim(),i.startsWith('"')&&i.endsWith('"')?{value:i.slice(1,-1),quoted:!0}:{value:i,quoted:!1}))};function Ze(a){return typeof a=="boolean"?a?1:Number.MAX_SAFE_INTEGER:a}function qe(a,o={}){return{scroller:[...F(o.scroller),...F(a.scroller)],thead:[...F(o.thead),...F(a.thead)],tbody:[...F(o.tbody),...F(a.tbody)],tr:[...F(o.tr),...F(a.tr)],th:[...F(o.th),...F(a.th)],td:[...F(o.td),...F(a.td)],mark:[...F(o.mark),...F(a.mark)]}}function J(a,o){let e=o.split("."),s=a;for(let i of e)if(s&&typeof s=="object")s=s[i];else return;return s}var S,Y,_,w,ie,T,k,O,re,M,W,R,z,ue,g,V,E,l,tt,st,Ae,Ke,_e,ye,it,G,rt,he,te,Ee,We,ot,Pe,nt,we,at,Se,Ce,fe,pe,xe,Oe,Le,Re,Me,De,Fe,se=class se extends EventTarget{constructor(e,s,i={}){super();f(this,l);this.DEFAULT_OPTIONS={virtualScroll:1e3,highlightSearch:!0,tokenizeSearch:!1,enableSearchScoring:!1,rearrangeable:!0,extraSearchFields:[],emptyValuePlaceholder:"-",noDataText:"No records found",noMatchText:"No matching records found",classes:{scroller:["dt-scroller"],thead:["dt-headers"],tbody:[],tr:[],th:[],td:[],mark:[]},rowFormatter:null,tokenizer:ze(),virtualScrollClass:ne};f(this,S);f(this,Y);f(this,_);f(this,w);f(this,ie,null);f(this,T,new Map);f(this,k,new Map);f(this,O,[]);f(this,re,null);f(this,M,null);f(this,W,null);f(this,R,null);f(this,z,null);f(this,ue,!1);f(this,g,P({},this.DEFAULT_OPTIONS));f(this,V,!0);f(this,E,new Set);f(this,Se,e=>{var n;if((n=window.getSelection())!=null&&n.toString())return;let s,i,r;if(e.target instanceof HTMLTableCellElement?(i=e.target,s=i.parentElement,r=i.dataset.dtField):e.target instanceof HTMLTableRowElement&&(s=e.target),s&&r){let c=parseInt(s.dataset.dtIndex||"");if(!isNaN(c)){let h=t(this,O).find(d=>d._metadata.index===c);if(h){let d=new CustomEvent("dt.row.clicked",{cancelable:!1,detail:{row:h,index:c,column:r,originalEvent:e}});this.dispatchEvent(d)}}}});f(this,Ce,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,i=t(this,T).get(s);i&&(m(this,z,i),i.resizeStartX=e.clientX,i.resizeStartWidth=i.headerElement.offsetWidth,document.addEventListener("mousemove",t(this,fe)),document.addEventListener("mouseup",t(this,pe)))});f(this,fe,e=>{if(!t(this,z))return;e.stopImmediatePropagation(),e.preventDefault();let s=e.clientX-t(this,z).resizeStartX,i=t(this,z).resizeStartWidth+s;u(this,l,we).call(this,t(this,z),i)});f(this,pe,e=>{if(!t(this,z))return;e.stopImmediatePropagation(),e.preventDefault(),document.removeEventListener("mousemove",t(this,fe)),document.removeEventListener("mouseup",t(this,pe));let s=new CustomEvent("dt.col.resize",{cancelable:!1,detail:{column:t(this,z).field,width:t(this,z).headerElement.offsetWidth}});this.dispatchEvent(s),m(this,z,null)});f(this,xe,e=>{var n;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,i=t(this,T).get(s);if(!i)return;let r=i.titleElement.scrollWidth;if(t(this,O).length>0){t(this,ie)||m(this,ie,document.createElement("canvas").getContext("2d"));let c=t(this,ie),h=t(this,_).querySelector("td"),d=0;if(h&&c){let p=window.getComputedStyle(h);c.font=`${p.fontWeight} ${p.fontSize} ${p.fontFamily}`,d=parseFloat(p.paddingLeft)+parseFloat(p.paddingRight)}for(let p of t(this,O)){let b=J(p,s);typeof i.options.valueFormatter=="function"&&(b=i.options.valueFormatter(b,p));let v=b==null?"":String(b),C=(n=c==null?void 0:c.measureText(v).width)!=null?n:0;r=Math.max(r,C+d)}}u(this,l,we).call(this,i,r)});f(this,Oe,e=>{let i=e.target.dataset.dtField;e.dataTransfer&&i&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",i))});f(this,Le,e=>(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),!1));f(this,Re,e=>{e.target.classList.add("dt-drag-over")});f(this,Me,e=>{e.target.classList.remove("dt-drag-over")});f(this,De,e=>{var d;let s=(d=e.dataTransfer)==null?void 0:d.getData("text/plain"),r=e.currentTarget.dataset.dtField;if(!s||!r)return;e.preventDefault(),e.stopPropagation();let n=[...t(this,T).values()],c=n.findIndex(p=>p.field===s),h=n.findIndex(p=>p.field===r);if(c>-1&&h>-1){let[p]=n.splice(c,1),b=t(this,T).get(r);if(!b)return;n.splice(h,0,p);let v=n.map(A=>A.field),C=new CustomEvent("dt.col.reorder",{cancelable:!0,detail:{draggedColumn:p.field,dropColumn:b.field,order:v}});if(!this.dispatchEvent(C))return;this.setColumnOrder(v)}});f(this,Fe,()=>{let e=document.querySelectorAll(".dt-drag-over");for(let s of e)s.classList.remove("dt-drag-over")});this.TABLE_OPTION_CONFIGS={virtualScroll:{effect:"reRenderTable",handler:e=>Ze(e)},highlightSearch:{effect:"reRenderTable"},tokenizeSearch:{effect:"reloadData",handler:e=>(this.search(t(this,re)),e)},enableSearchScoring:{effect:"reApplyFilters"},rearrangeable:{effect:"updateHeaders"},extraSearchFields:{effect:"reloadData"},emptyValuePlaceholder:{effect:"reRenderTable"},noDataText:{effect:"reRenderTable"},noMatchText:{effect:"reRenderTable"},classes:{effect:"reRenderTable",handler:e=>{let s=qe(t(this,g).classes,e);t(this,w).className=s.scroller.join(" "),t(this,Y).className=s.thead.join(" "),t(this,_).className=s.tbody.join(" ");for(let i of t(this,T).values())i.headerElement.className=s.th.join(" ");return s}},rowFormatter:{effect:"reRenderTable"},tokenizer:{effect:"reloadData"},virtualScrollClass:{effect:"reRenderTable",handler:e=>{var s;return(s=t(this,R))==null||s.stop(),m(this,R,null),e}}};this.COLUMN_OPTION_CONFIGS={title:{effect:"updateHeaders"},searchable:{effect:"reApplyFilters"},sortable:{effect:"updateHeaders"},resizable:{effect:"updateHeaders"},tokenize:{effect:"reloadData"},valueFormatter:{effect:"reRenderTable"},elementFormatter:{effect:"reRenderTable"},sorter:{effect:"reSortRows"},sortValue:{effect:"reloadData"},filter:{effect:"reApplyFilters"}};let v=i,{data:r,virtualScrollClass:n}=v,c=Be(v,["data","virtualScrollClass"]);if(n!==void 0&&(t(this,g).virtualScrollClass=n),typeof e=="string"){let C=document.querySelector(e);if(!C)throw new SyntaxError(`Failed to find table using selector ${e}`);m(this,S,C)}else m(this,S,e);if(!(t(this,S)instanceof HTMLTableElement))throw new TypeError("Invalid table element type. Must be HTMLTableElement");let{scroller:h,thead:d,headerRow:p,tbody:b}=u(this,l,tt).call(this);m(this,w,h),m(this,Y,d),m(this,_,b),u(this,l,st).call(this,s,p),this.updateTableOptions(P(P({},t(this,g)),c)),m(this,V,!1),t(this,E).clear(),this.loadData(r!=null?r:[])}get tableOptions(){return structuredClone(t(this,g))}get rows(){return[...t(this,O)]}get data(){return[...t(this,k).values()]}get table(){return t(this,S)}getState(){let e=[...t(this,T).values()];return{searchQuery:t(this,re),filters:t(this,W),scrollPosition:{top:t(this,w).scrollTop,left:t(this,w).scrollLeft},columnOrder:e.map(s=>s.field),columns:e.map(s=>({field:s.field,visible:s.state.visible,sortState:s.state.sortState,width:s.state.width}))}}restoreState(e){this.withoutUpdates(()=>{if("searchQuery"in e&&e.searchQuery!==void 0&&this.search(e.searchQuery),"filters"in e&&e.filters!==void 0&&(m(this,W,e.filters),this.filter(e.filters)),"scrollPosition"in e&&e.scrollPosition!==void 0&&(t(this,w).scrollTop=e.scrollPosition.top),"columnOrder"in e&&e.columnOrder!==void 0&&this.setColumnOrder(e.columnOrder),"columns"in e&&e.columns!==void 0)for(let s of e.columns){let i=t(this,T).get(s.field);if(!i){console.warn(`Attempting to restore state for non-existent column ${s.field}`);continue}"visible"in s&&s.visible!==void 0&&(i.state.visible=s.visible),"sortState"in s&&s.sortState!==void 0&&(i.state.sortState=s.sortState),"width"in s&&s.width!==void 0&&u(this,l,we).call(this,i,s.width)}})}updateTableOptions(e){this.withoutUpdates(()=>{for(let s in e){let i=s,r=e[i],n=this.TABLE_OPTION_CONFIGS[i];if(!n)continue;t(this,E).add(n.effect);let c=n.handler,h=c?c(r):r;t(this,g)[i]=h}t(this,g).enableSearchScoring&&!t(this,g).tokenizeSearch&&(t(this,g).enableSearchScoring=!1,console.warn("Search scoring enabled with tokenization disabled... Ignoring"))})}getColumnOptions(e){if(e){let i=t(this,T).get(e);if(!i)throw new Error(`Cannot get options for non-existent column "${e}"`);return He(P({},i.options),{field:i.field})}return[...t(this,T).values()].map(i=>He(P({},i.options),{field:i.field}))}updateColumnOptions(e,s){let i=t(this,T).get(e);if(!i)throw new Error(`Cannot update options for non-existent column "${e}"`);this.withoutUpdates(()=>{for(let r in s){let n=r,c=s[n],h=this.COLUMN_OPTION_CONFIGS[n];if(!h)continue;t(this,E).add(h.effect);let d=h.handler,p=d?d(c):c;i.options[n]=p}})}loadData(e,s={}){let i,r;s.keepScroll&&(i=t(this,w).scrollTop,r=t(this,w).scrollLeft),s.append||(t(this,k).clear(),m(this,O,[]));let n=t(this,k).size;for(let c of e){let h=u(this,l,Ae).call(this,c,n);t(this,k).set(n,h),n++}u(this,l,te).call(this),u(this,l,G).call(this),i&&r&&(t(this,w).scrollTop=i,t(this,w).scrollLeft=r)}showMessage(e,...s){let i=t(this,T).size;t(this,_).innerHTML=`<tr class="${s.join(" ")}"><td colSpan=${i}>${e}</td></tr>`}clearMessage(){u(this,l,Ee).call(this)}search(e){e!=null||(e=null);let s=new CustomEvent("dt.search",{cancelable:!0,detail:{query:e!=null?e:null}});this.dispatchEvent(s)&&(m(this,re,e),e===""&&(e=null),typeof e=="string"?t(this,g).tokenizeSearch?m(this,M,t(this,g).tokenizer(e)):m(this,M,[{value:e.toLocaleLowerCase(),quoted:!0}]):m(this,M,e),u(this,l,G).call(this))}filter(e){m(this,W,e!=null?e:null),u(this,l,G).call(this)}sort(e,s){var h;let i=t(this,T).get(e);if(!i)throw new Error(`Cannot get options for non-existent column "${e}"`);if(s===((h=i.state.sortState)==null?void 0:h.order))return;let r=new CustomEvent("dt.col.sort",{cancelable:!0,detail:{column:i.field,order:s}});if(!this.dispatchEvent(r))return;if(s&&!i.state.sortState){let d=[...t(this,T).values()].map(v=>{var C;return(C=v.state.sortState)==null?void 0:C.priority}).filter(v=>v!==void 0),p=t(this,T).size+1,b=Math.min(p,...d)-1;i.state.sortState={order:s,priority:b}}else s&&i.state.sortState?i.state.sortState.order=s:i.state.sortState=null;let n=t(this,w).scrollTop,c=t(this,w).scrollLeft;u(this,l,te).call(this),u(this,l,he).call(this),t(this,w).scrollTop=n,t(this,w).scrollLeft=c}setColumnVisibility(e,s){let i=t(this,T).get(e);if(!i)throw new Error(`Cannot get options for non-existent column "${e}"`);if(i.state.visible===s)return;let r=new CustomEvent("dt.col.visibility",{cancelable:!0,detail:{column:i.field,visible:s}});this.dispatchEvent(r)&&(i.state.visible=s,u(this,l,te).call(this),u(this,l,he).call(this))}showColumn(e){this.setColumnVisibility(e,!0)}hideColumn(e){this.setColumnVisibility(e,!1)}export(e,s=!1){let r=[...(s?t(this,k):t(this,O)).values()],n=[...t(this,T).values()].filter(b=>s||b.state.visible).map(b=>`"${b.options.title}"`).join(","),c=r.map(b=>{let v=[];for(let C of t(this,T).keys()){let A=t(this,T).get(C);if(!A)continue;let y=b[C];(s||!A.headerElement.hidden)&&(typeof A.options.valueFormatter=="function"&&(y=A.options.valueFormatter(y,b)),y=String(y).replace('"','""'),v.push(`"${y}"`))}return v.join(",")}).join(`
|
|
2
|
-
`),h=
|
|
3
|
-
`+c,d=new Blob([h],{type:"text/csv;charset=utf-8,"}),p=document.createElement("a");p.style.display="none",p.href=URL.createObjectURL(d),p.download=`${e}.csv`,document.body.append(p),p.click(),p.remove()}scrollToRow(e){var r;let i=(r=e._metadata)==null?void 0:r.index;if(typeof i=="number")this.scrollToOriginalIndex(i);else throw new Error("Row not in table")}scrollToOriginalIndex(e){let s=t(this,k).get(e);if(s){let i=t(this,O).indexOf(s);if(i>=0){this.scrollToFilteredIndex(i);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,O)[e];if(!s)throw new RangeError(`Row index ${e} out of range`);if(t(this,R))t(this,R).scrollToIndex(e);else{let i=t(this,_).querySelector(`tr[data-dt-index="${s._metadata.index}"]`);if(i){i.scrollIntoView(!0);let r=parseFloat(getComputedStyle(t(this,Y)).height);t(this,w).scrollTop-=r}}}scrollToPx(e){if(t(this,R))t(this,R).scrollToPx(e);else{let s=parseFloat(getComputedStyle(t(this,Y)).height);t(this,w).scrollTop=e-s}}setColumnOrder(e){if(!Array.isArray(e))throw new TypeError("fields must be an array of field names");let s=new Map;for(let i of e){let r=t(this,T).get(i);r&&s.set(i,r)}for(let[i,r]of t(this,T))s.has(i)||s.set(i,r);m(this,T,s),this.refresh()}refresh(){u(this,l,te).call(this),u(this,l,G).call(this)}indexOf(e,s){let r=[...t(this,k).values()].find(n=>{if(e in n)return n[e]===s});return r?r._metadata.index:-1}updateRow(e,s){let i=t(this,k).get(e);i&&(Object.assign(i,s),u(this,l,Ae).call(this,i,e),u(this,l,G).call(this))}deleteRow(e){t(this,k).delete(e),u(this,l,G).call(this)}withoutUpdates(e){let s=t(this,V);m(this,V,!0);try{e(this)}finally{m(this,V,s),t(this,V)||u(this,l,at).call(this)}}destroy(){var e,s;(e=t(this,R))==null||e.stop(),t(this,S).innerHTML="",t(this,S).classList.remove("data-table"),(s=t(this,w).parentElement)==null||s.insertBefore(t(this,S),t(this,w)),t(this,w).remove()}addEventListener(e,s,i){super.addEventListener(e,s,i)}};S=new WeakMap,Y=new WeakMap,_=new WeakMap,w=new WeakMap,ie=new WeakMap,T=new WeakMap,k=new WeakMap,O=new WeakMap,re=new WeakMap,M=new WeakMap,W=new WeakMap,R=new WeakMap,z=new WeakMap,ue=new WeakMap,g=new WeakMap,V=new WeakMap,E=new WeakMap,l=new WeakSet,tt=function(){var n;t(this,S).classList.add("data-table");let e=document.createElement("div");t(this,S).style.height!==""&&(e.style.height=t(this,S).style.height,t(this,S).style.height="");let s=document.createElement("thead"),i=document.createElement("tr"),r=document.createElement("tbody");return r.addEventListener("click",t(this,Se)),t(this,S).innerHTML="",s.append(i),t(this,S).append(s),t(this,S).append(r),(n=t(this,S).parentNode)==null||n.insertBefore(e,t(this,S)),e.append(t(this,S)),{scroller:e,thead:s,headerRow:i,tbody:r}},st=function(e,s){var r,n,c,h,d,p,b,v,C,A;t(this,T).clear();let i=!1;for(let y of e){let x=document.createElement("th"),me=document.createElement("div"),oe=document.createElement("div"),Te=document.createElement("span"),N={field:y.field,options:{title:(r=y.title)!=null?r:Ye(y.field),sortable:(n=y.sortable)!=null?n:!0,searchable:(c=y.searchable)!=null?c:!1,tokenize:(h=y.tokenize)!=null?h:!1,resizable:(d=y.resizable)!=null?d:!0,valueFormatter:(p=y.valueFormatter)!=null?p:null,elementFormatter:(b=y.elementFormatter)!=null?b:null,sorter:(v=y.sorter)!=null?v:null,sortValue:(C=y.sortValue)!=null?C:null,filter:(A=y.filter)!=null?A:null},state:{visible:!0,sortState:null,width:null},headerElement:x,titleElement:Te,resizeStartWidth:null,resizeStartX:null};t(this,T).set(y.field,N),x.dataset.dtField=y.field,x.hidden=!N.state.visible,x.title=N.options.title,me.classList.add("dt-header-content"),x.append(me),oe.classList.add("dt-header-title-wrapper"),me.append(oe),Te.classList.add("dt-header-title"),Te.innerHTML=N.options.title,oe.append(Te);let je=document.createElement("div");je.classList.add("dt-sort-icon"),oe.append(je);let Ue=document.createElement("div");Ue.classList.add("dt-resizer"),me.append(Ue),s.append(x),N.state.visible&&(i=!0),this.updateColumnOptions(y.field,N.options),t(this,g).rearrangeable&&(x.draggable=!0),oe.addEventListener("click",()=>{x.classList.contains("dt-sortable")&&(N.state.sortState?N.state.sortState.order==="asc"?this.sort(N.field,"desc"):N.state.sortState.order&&this.sort(N.field,null):this.sort(N.field,"asc"))}),x.addEventListener("dragstart",t(this,Oe)),x.addEventListener("dragenter",t(this,Re)),x.addEventListener("dragover",t(this,Le)),x.addEventListener("dragleave",t(this,Me)),x.addEventListener("drop",t(this,De)),x.addEventListener("dragend",t(this,Fe)),x.addEventListener("mousedown",t(this,Ce)),x.addEventListener("dblclick",t(this,xe))}if(t(this,T).size===0)console.warn("No columns found. At least one column is required.");else if(!i){console.warn("At least a single column must be visible. Showing the first column.");let y=e[0].field;this.showColumn(y)}},Ae=function(e,s){let i={index:s++,tokens:{},compareValues:{},sortValues:{}};e._metadata=i;for(let[r,n]of t(this,T)){let c=J(e,r);typeof n.options.sortValue=="function"?i.sortValues[r]=n.options.sortValue(c):typeof c=="string"?i.sortValues[r]=c.toLocaleLowerCase():i.sortValues[r]=c,typeof c=="string"&&(i.compareValues[r]=c.toLocaleLowerCase()),n.options.searchable&&n.options.tokenize&&c&&(i.tokens[r]=t(this,g).tokenizer(c).map(h=>h.value))}for(let r of t(this,g).extraSearchFields){let n=J(e,r);typeof n=="string"&&(i.compareValues[r]=n.toLocaleLowerCase())}return e},Ke=function(e,s){if(!e||!s)return 0;let i=0,r=0;if(s===e)r=se.MatchWeights.EXACT,i=e.length;else if(s.startsWith(e))r=se.MatchWeights.PREFIX,i=e.length;else if(s.includes(e))r=se.MatchWeights.SUBSTRING,i=e.length;else return 0;let c=1/(1+(s.length-e.length));return i*r*c},_e=function(e,s,i){return e instanceof RegExp?e.test(s)?1:0:t(this,g).enableSearchScoring?e.quoted||!i?u(this,l,Ke).call(this,e.value,s):i.map(r=>u(this,l,Ke).call(this,e.value,r)).reduce((r,n)=>r+=n,0):e.quoted||!i?s.includes(e.value)?1:0:i.some(r=>r==e.value)?1:0},ye=function(e,s,i=null){return Array.isArray(s)?s.length===0?!0:s.some(r=>u(this,l,ye).call(this,e,r,i)):Array.isArray(e)?e.length===0?!1:e.some(r=>u(this,l,ye).call(this,r,s,i)):typeof i=="function"?i(e,s):s instanceof RegExp?s.test(String(e)):s===e},it=function(e,s){if(!t(this,W))return!0;if(typeof t(this,W)=="function")return t(this,W).call(this,e,s);for(let i in t(this,W)){let r=t(this,W)[i],n=J(e,i);if(typeof r=="function"){if(!r(n))return!1}else{let c=t(this,T).get(i),h=c?c.options.filter:void 0;if(!u(this,l,ye).call(this,n,r,h))return!1}}return!0},G=function(){if(t(this,V)){t(this,E).add("reApplyFilters");return}else t(this,E).delete("reApplyFilters");let s=[...[...t(this,T).values()].filter(n=>n.options.searchable).map(n=>n.field),...t(this,g).extraSearchFields],i=[...t(this,k).values()];m(this,O,i.filter((n,c)=>{if(n._metadata.searchScore=0,!u(this,l,it).call(this,n,c))return!1;if(!t(this,M))return!0;for(let h of s){let d=J(n,h),p=n._metadata.compareValues[h],b=n._metadata.tokens[h];if(typeof d!="string"||typeof p!="string")continue;let v=0;if(t(this,M)instanceof RegExp)v=u(this,l,_e).call(this,t(this,M),d,b);else for(let C of t(this,M))v+=u(this,l,_e).call(this,C,p,b);n._metadata.searchScore+=v}return n._metadata.searchScore>0})),u(this,l,he).call(this);let r=new CustomEvent("dt.rows.changed",{cancelable:!1,detail:{dataTable:this}});this.dispatchEvent(r)},rt=function(e,s,i){var d,p;let r,n;if(!i.state.sortState)return 0;if(((d=i.state.sortState)==null?void 0:d.order)==="asc"?(r=e._metadata.sortValues[i.field],n=s._metadata.sortValues[i.field]):((p=i.state.sortState)==null?void 0:p.order)==="desc"&&(r=s._metadata.sortValues[i.field],n=e._metadata.sortValues[i.field]),typeof i.options.sorter=="function"){let b=i.options.sorter(r,n);if(b!==0)return b}let c=r==null,h=n==null;return c&&!h?-1:h&&!c?1:r<n?-1:r>n?1:0},he=function(){if(t(this,V)){t(this,E).add("reSortRows");return}else t(this,E).delete("reSortRows");let e=[...t(this,T).values()].filter(s=>!s.headerElement.hidden&&s.state.sortState).sort((s,i)=>i.state.sortState.priority-s.state.sortState.priority);t(this,O).sort((s,i)=>{if(t(this,g).enableSearchScoring&&t(this,M)){let r=s._metadata.searchScore||0,n=i._metadata.searchScore||0;if(r>n)return-1;if(r<n)return 1}for(let r of e){let n=u(this,l,rt).call(this,s,i,r);if(n!==0)return n}return s._metadata.index-i._metadata.index}),u(this,l,Ee).call(this)},te=function(){var e,s,i,r,n,c,h;if(t(this,V)){t(this,E).add("updateHeaders");return}else t(this,E).delete("updateHeaders");for(let d of t(this,T).values())(e=d.headerElement.parentElement)==null||e.append(d.headerElement),d.headerElement.hidden=!d.state.visible,d.headerElement.draggable=t(this,g).rearrangeable,d.titleElement.textContent=d.options.title,d.options.resizable?d.headerElement.classList.add("dt-resizeable"):d.headerElement.classList.remove("dt-resizeable"),d.options.sortable?d.headerElement.classList.add("dt-sortable"):d.headerElement.classList.remove("dt-sortable"),d.state.sortState?d.state.sortState.order==="asc"?((r=d.headerElement)==null||r.classList.add("dt-ascending"),(n=d.headerElement)==null||n.classList.remove("dt-descending")):d.state.sortState.order==="desc"&&((c=d.headerElement)==null||c.classList.add("dt-descending"),(h=d.headerElement)==null||h.classList.remove("dt-ascending")):((s=d.headerElement)==null||s.classList.remove("dt-ascending"),(i=d.headerElement)==null||i.classList.remove("dt-descending"))},Ee=function(){if(t(this,V)){t(this,E).add("reRenderTable");return}else t(this,E).delete("reRenderTable");let e=this.rows.length>=t(this,g).virtualScroll;if(e&&!t(this,R)?m(this,R,new(t(this,g)).virtualScrollClass({container:t(this,w),element:t(this,_),generator:s=>u(this,l,Pe).call(this,s)})):!e&&t(this,R)&&(t(this,R).stop(),m(this,R,null)),t(this,_).innerHTML="",t(this,R))try{t(this,R).start(t(this,O).length)}catch(s){s instanceof ee&&(console.warn("Failed to start virtual scroll... falling back to standard rendering"),console.warn(s.stack))}else{if(t(this,O).length>et){let i=et.toLocaleString();console.warn(`Virtual scroll disabled with more than ${i} rows... Good luck with that!`)}let s=t(this,O).map((i,r)=>u(this,l,Pe).call(this,r));t(this,_).append(...s)}t(this,k).size===0?this.showMessage(t(this,g).noDataText,"dt-empty"):t(this,O).length===0&&this.showMessage(t(this,g).noMatchText,"dt-empty")},We=function(e,s){var i;if(e.children.length===0){let r=(i=e.textContent)!=null?i:"",n=t(this,g).classes.mark.join(" ");r=r.replace(s,c=>`<mark class="${n}">${c}</mark>`),e.innerHTML=r}else for(let r of e.children)r instanceof HTMLElement&&u(this,l,We).call(this,r,s)},ot=function(e,s,i,r){if(typeof i.options.valueFormatter=="function"&&(s=i.options.valueFormatter(s,r)),s!=null?(e.textContent=s,e.title=String(s)):e.textContent=t(this,g).emptyValuePlaceholder,typeof i.options.elementFormatter=="function"&&i.options.elementFormatter(s,r,e),t(this,g).highlightSearch&&t(this,M)&&i.options.searchable){let n;if(t(this,M)instanceof RegExp)n=t(this,M);else{let c=t(this,M).map(h=>h.value).join("|");n=new RegExp(c,"gi")}u(this,l,We).call(this,e,n)}e.hidden=!i.state.visible},Pe=function(e){let s=t(this,O)[e],i=document.createElement("tr");i.classList.add(...t(this,g).classes.tr),i.dataset.dtIndex=String(s._metadata.index);for(let[r,n]of t(this,T)){let c=J(s,r),h=document.createElement("td");h.classList.add(...t(this,g).classes.td),h.dataset.dtField=r,u(this,l,ot).call(this,h,c,n,s),i.append(h)}if(typeof t(this,g).rowFormatter=="function")try{t(this,g).rowFormatter(s,i)}catch(r){console.error("Row formatter callback failed with the following error"),console.error(r)}return i},nt=function(){if(!t(this,ue)){m(this,ue,!0);for(let e of t(this,T).values()){let s=e.headerElement.offsetWidth;e.state.width=s,e.headerElement.style.width=`${s}px`}t(this,S).style.width="fit-content"}},we=function(e,s){u(this,l,nt).call(this),s!==null&&s<0&&(s=0),e.state.width=s;let i;s==null?i="":s<=0?i="0px":i=`${s}px`,e.headerElement.style.width=i},at=function(){for(;t(this,E).size;)t(this,E).has("reloadData")?(this.loadData(this.data),t(this,E).delete("reloadData")):t(this,E).has("reApplyFilters")?(u(this,l,G).call(this),t(this,E).delete("reApplyFilters")):t(this,E).has("reSortRows")?(u(this,l,he).call(this),t(this,E).delete("reSortRows")):t(this,E).has("reRenderTable")&&(u(this,l,Ee).call(this),t(this,E).delete("reRenderTable")),t(this,E).has("updateHeaders")&&u(this,l,te).call(this)},Se=new WeakMap,Ce=new WeakMap,fe=new WeakMap,pe=new WeakMap,xe=new WeakMap,Oe=new WeakMap,Le=new WeakMap,Re=new WeakMap,Me=new WeakMap,De=new WeakMap,Fe=new WeakMap,se.MatchWeights={EXACT:100,PREFIX:50,SUBSTRING:10};var Ve=se,et=1e4;var mt={saveSearch:!0,saveColumnSorting:!0,saveColumnVisibility:!0,saveColumnWidth:!0,saveColumnOrder:!0},H,$e=class{constructor(o,e,s){this.storageKey=o;this.dataTable=e;f(this,H,()=>setTimeout(()=>this.saveState(),0));this.options=P(P({},mt),s),e&&this.setDataTable(e)}setDataTable(o){this.destroy(),this.dataTable=o,this.restoreState(),this.options.saveSearch&&o.addEventListener("dt.search",t(this,H)),this.options.saveColumnSorting&&o.addEventListener("dt.col.sort",t(this,H)),this.options.saveColumnVisibility&&o.addEventListener("dt.col.visibility",t(this,H)),this.options.saveColumnWidth&&o.addEventListener("dt.col.resize",t(this,H)),this.options.saveColumnOrder&&o.addEventListener("dt.col.reorder",t(this,H))}destroy(){var o,e,s,i,r;(o=this.dataTable)==null||o.removeEventListener("dt.search",t(this,H)),(e=this.dataTable)==null||e.removeEventListener("dt.col.sort",t(this,H)),(s=this.dataTable)==null||s.removeEventListener("dt.col.visibility",t(this,H)),(i=this.dataTable)==null||i.removeEventListener("dt.col.resize",t(this,H)),(r=this.dataTable)==null||r.removeEventListener("dt.col.reorder",t(this,H)),this.dataTable=void 0}saveState(){var s;if(!this.dataTable)return;let o={columns:[]},e=this.dataTable.getState();this.options.saveSearch&&(o.searchQuery=e.searchQuery),this.options.saveColumnOrder&&(o.columnOrder=e.columnOrder);for(let i of e.columns){let r={field:i.field};this.options.saveColumnSorting&&(r.sortState=i.sortState),this.options.saveColumnVisibility&&(r.visible=i.visible),this.options.saveColumnWidth&&(r.width=i.width),(s=o.columns)==null||s.push(r)}localStorage.setItem(this.storageKey,JSON.stringify(o))}restoreState(){if(!this.dataTable)return;let o=localStorage.getItem(this.storageKey);if(o)try{let e=JSON.parse(o),s={};if(this.options.saveSearch&&(s.searchQuery=e.searchQuery),this.options.saveColumnOrder&&(s.columnOrder=e.columnOrder),e.columns){s.columns=[];for(let i of e.columns){let r={field:i.field};this.options.saveColumnVisibility&&(r.visible=i.visible),this.options.saveColumnWidth&&(r.width=i.width),this.options.saveColumnSorting&&(r.sortState=i.sortState),s.columns.push(r)}}this.dataTable.restoreState(s)}catch(e){console.error("Failed to restore DataTable state:",e)}}clearState(){localStorage.removeItem(this.storageKey)}};H=new WeakMap;0&&(module.exports={DataTable,LocalStorageAdapter,VirtualScroll,VirtualScrollError,createRegexTokenizer});
|
|
1
|
+
"use strict";var be=Object.defineProperty,lt=Object.defineProperties,dt=Object.getOwnPropertyDescriptor,ct=Object.getOwnPropertyDescriptors,ht=Object.getOwnPropertyNames,ge=Object.getOwnPropertySymbols;var ke=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var Qe=a=>{throw TypeError(a)};var Xe=(a,n,e)=>n in a?be(a,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[n]=e,P=(a,n)=>{for(var e in n||(n={}))ke.call(n,e)&&Xe(a,e,n[e]);if(ge)for(var e of ge(n))Ge.call(n,e)&&Xe(a,e,n[e]);return a},He=(a,n)=>lt(a,ct(n));var Be=(a,n)=>{var e={};for(var s in a)ke.call(a,s)&&n.indexOf(s)<0&&(e[s]=a[s]);if(a!=null&&ge)for(var s of ge(a))n.indexOf(s)<0&&Ge.call(a,s)&&(e[s]=a[s]);return e};var ut=(a,n)=>{for(var e in n)be(a,e,{get:n[e],enumerable:!0})},ft=(a,n,e,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of ht(n))!ke.call(a,i)&&i!==e&&be(a,i,{get:()=>n[i],enumerable:!(s=dt(n,i))||s.enumerable});return a};var pt=a=>ft(be({},"__esModule",{value:!0}),a);var Ne=(a,n,e)=>n.has(a)||Qe("Cannot "+e);var t=(a,n,e)=>(Ne(a,n,"read from private field"),e?e.call(a):n.get(a)),f=(a,n,e)=>n.has(a)?Qe("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(a):n.set(a,e),m=(a,n,e,s)=>(Ne(a,n,"write to private field"),s?s.call(a,e):n.set(a,e),e),u=(a,n,e)=>(Ne(a,n,"access private method"),e);var Tt={};ut(Tt,{DataTable:()=>Ve,LocalStorageAdapter:()=>$e,VirtualScroll:()=>oe,VirtualScrollError:()=>ee,createRegexTokenizer:()=>ze});module.exports=pt(Tt);var ae,L,D,Z,$,j,le,U,B,de,I,X,q,ce,A,Ie,ve,Je,Q=class Q{constructor({generator:n,container:e,element:s=e,nodePadding:i=10}){f(this,A);f(this,L);f(this,D);f(this,Z);f(this,$,0);f(this,j,0);f(this,le,2);f(this,U,0);f(this,B,!1);f(this,de,0);f(this,I);f(this,X);f(this,q);f(this,ce,()=>{t(this,L).scrollTop!==t(this,de)&&(m(this,de,t(this,L).scrollTop),u(this,A,Ie).call(this))});m(this,L,e),m(this,D,s),m(this,Z,n),m(this,le,i),m(this,I,document.createElement("div")),t(this,I).style.visibility="hidden",m(this,X,document.createElement("div")),t(this,X).style.visibility="hidden",m(this,q,new ResizeObserver(()=>u(this,A,Ie).call(this)))}get rowHeight(){return t(this,j)||u(this,A,Je).call(this),t(this,j)}get started(){return t(this,B)}scrollToIndex(n){if(n<0||n>=t(this,$))throw new RangeError("Index out of bounds.");this.scrollToPx(this.rowHeight*n)}scrollToPx(n){t(this,L).scrollTop=n,u(this,A,ve).call(this)}start(n){t(this,B)||(t(this,L).addEventListener("scroll",t(this,ce)),t(this,q).observe(t(this,L)),m(this,B,!0)),t(this,L).classList.add("dt-virtual-scroll"),m(this,$,n),u(this,A,ve).call(this)}stop(){t(this,U)&&cancelAnimationFrame(t(this,U)),t(this,L).classList.remove("dt-virtual-scroll"),t(this,L).removeEventListener("scroll",t(this,ce)),t(this,q).disconnect(),m(this,B,!1)}};ae=new WeakMap,L=new WeakMap,D=new WeakMap,Z=new WeakMap,$=new WeakMap,j=new WeakMap,le=new WeakMap,U=new WeakMap,B=new WeakMap,de=new WeakMap,I=new WeakMap,X=new WeakMap,q=new WeakMap,ce=new WeakMap,A=new WeakSet,Ie=function(){t(this,U)&&cancelAnimationFrame(t(this,U)),m(this,U,requestAnimationFrame(()=>u(this,A,ve).call(this)))},ve=function(){let n=t(this,L).scrollTop,e=t(this,$),s=this.rowHeight,i=t(this,le);if(!this.started||!e||!s)return;let r=s*e,o=t(this,L).style.height;t(this,L).style.height="100%";let c=t(this,L).offsetHeight;t(this,L).style.height=o;let h=i*2,d=Math.floor(n/s)-i;d<0&&(h+=d),d=Math.max(0,d);let p=Math.ceil(c/s)+h;p=Math.min(e-d,p),d%2===1&&(d--,p++);let b=d*s,v=r-(b+p*s);for(v<0&&(v=0);t(this,I).nextSibling&&t(this,I).nextSibling!==t(this,X);)t(this,D).removeChild(t(this,I).nextSibling);let C=new Array(p).fill(null).map((y,O)=>t(this,Z).call(this,O+d));t(this,I).style.height=b+"px",t(this,X).style.height=v+"px",t(this,I).parentElement?t(this,I).after(...C):t(this,D).append(t(this,I),...C,t(this,X));let K=t(this,D).offsetHeight;!t(Q,ae)&&K<Math.round(r-1)&&(m(Q,ae,!0),console.error("Max element height exceeded. Virtual scroll may not work."))},Je=function(){if(t(this,$)===0){m(this,j,0);return}let n=Math.min(Q.AVERAGE_RENDER_COUNT,t(this,$)),e="";for(let r=0;r<n;++r)e+=t(this,Z).call(this,r).outerHTML;let s=t(this,D).style.visibility,i=t(this,D).innerHTML;if(t(this,D).style.visibility="hidden",t(this,D).innerHTML=e,m(this,j,t(this,D).offsetHeight/n),t(this,D).innerHTML=i,t(this,D).style.visibility=s,t(this,j)<=0)throw new ee(`First ${n} rows had no rendered height. Virtual scroll can't be used.`);t(this,j)*t(this,$)>33554400&&console.warn("Virtual scroll height exceeded maximum known element height.")},f(Q,ae,!1),Q.AVERAGE_RENDER_COUNT=1e3;var oe=Q,ee=class extends Error{constructor(n){super(n)}};var F=a=>{if(typeof a=="string"&&a!=="")return a.split(" ");if(Array.isArray(a))return a;if(!a)return[];throw new TypeError("classes must be string or array of strings")},Ye=a=>a.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,n=>n.toUpperCase()),ze=(a="\\S+")=>{let n=new RegExp(`"[^"]*"|${a}`,"g");return e=>(e.match(n)||[]).map(i=>(i=i.toLocaleLowerCase().trim(),i.startsWith('"')&&i.endsWith('"')?{value:i.slice(1,-1),quoted:!0}:{value:i,quoted:!1}))};function Ze(a){return typeof a=="boolean"?a?1:Number.MAX_SAFE_INTEGER:a}function qe(a,n={}){return{scroller:[...F(n.scroller),...F(a.scroller)],thead:[...F(n.thead),...F(a.thead)],tbody:[...F(n.tbody),...F(a.tbody)],tr:[...F(n.tr),...F(a.tr)],th:[...F(n.th),...F(a.th)],td:[...F(n.td),...F(a.td)],mark:[...F(n.mark),...F(a.mark)]}}function J(a,n){let e=n.split("."),s=a;for(let i of e)if(s&&typeof s=="object")s=s[i];else return;return s}var S,Y,_,w,ie,T,k,x,re,M,W,R,z,ue,g,V,E,l,tt,st,Ke,Ae,_e,ye,it,G,rt,he,te,Ee,We,nt,Pe,ot,we,at,Se,Ce,fe,pe,Oe,xe,Le,Re,Me,De,Fe,se=class se extends EventTarget{constructor(e,s,i={}){super();f(this,l);this.DEFAULT_OPTIONS={virtualScroll:1e3,highlightSearch:!0,tokenizeSearch:!1,enableSearchScoring:!1,rearrangeable:!0,extraSearchFields:[],emptyValuePlaceholder:"-",noDataText:"No records found",noMatchText:"No matching records found",classes:{scroller:["dt-scroller"],thead:["dt-headers"],tbody:[],tr:[],th:[],td:[],mark:[]},rowFormatter:null,tokenizer:ze(),virtualScrollClass:oe};f(this,S);f(this,Y);f(this,_);f(this,w);f(this,ie,null);f(this,T,new Map);f(this,k,new Map);f(this,x,[]);f(this,re,null);f(this,M,null);f(this,W,null);f(this,R,null);f(this,z,null);f(this,ue,!1);f(this,g,P({},this.DEFAULT_OPTIONS));f(this,V,!0);f(this,E,new Set);f(this,Se,e=>{var o;if((o=window.getSelection())!=null&&o.toString())return;let s,i,r;if(e.target instanceof HTMLTableCellElement?(i=e.target,s=i.parentElement,r=i.dataset.dtField):e.target instanceof HTMLTableRowElement&&(s=e.target),s&&r){let c=parseInt(s.dataset.dtIndex||"");if(!isNaN(c)){let h=t(this,x).find(d=>d._metadata.index===c);if(h){let d=new CustomEvent("dt.row.clicked",{cancelable:!1,detail:{row:h,index:c,column:r,originalEvent:e}});this.dispatchEvent(d)}}}});f(this,Ce,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,i=t(this,T).get(s);i&&(m(this,z,i),i.resizeStartX=e.clientX,i.resizeStartWidth=i.headerElement.offsetWidth,document.addEventListener("mousemove",t(this,fe)),document.addEventListener("mouseup",t(this,pe)))});f(this,fe,e=>{if(!t(this,z))return;e.stopImmediatePropagation(),e.preventDefault();let s=e.clientX-t(this,z).resizeStartX,i=t(this,z).resizeStartWidth+s;u(this,l,we).call(this,t(this,z),i)});f(this,pe,e=>{if(!t(this,z))return;e.stopImmediatePropagation(),e.preventDefault(),document.removeEventListener("mousemove",t(this,fe)),document.removeEventListener("mouseup",t(this,pe));let s=new CustomEvent("dt.col.resize",{cancelable:!1,detail:{column:t(this,z).field,width:t(this,z).headerElement.offsetWidth}});this.dispatchEvent(s),m(this,z,null)});f(this,Oe,e=>{var o;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,i=t(this,T).get(s);if(!i)return;let r=i.titleElement.scrollWidth;if(t(this,x).length>0){t(this,ie)||m(this,ie,document.createElement("canvas").getContext("2d"));let c=t(this,ie),h=t(this,_).querySelector("td"),d=0;if(h&&c){let p=window.getComputedStyle(h);c.font=`${p.fontWeight} ${p.fontSize} ${p.fontFamily}`,d=parseFloat(p.paddingLeft)+parseFloat(p.paddingRight)}for(let p of t(this,x)){let b=J(p,s);typeof i.options.valueFormatter=="function"&&(b=i.options.valueFormatter(b,p));let v=b==null?"":String(b),C=(o=c==null?void 0:c.measureText(v).width)!=null?o:0;r=Math.max(r,C+d)}}u(this,l,we).call(this,i,r)});f(this,xe,e=>{let i=e.target.dataset.dtField;e.dataTransfer&&i&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",i))});f(this,Le,e=>(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),!1));f(this,Re,e=>{e.target.classList.add("dt-drag-over")});f(this,Me,e=>{e.target.classList.remove("dt-drag-over")});f(this,De,e=>{var d;let s=(d=e.dataTransfer)==null?void 0:d.getData("text/plain"),r=e.currentTarget.dataset.dtField;if(!s||!r)return;e.preventDefault(),e.stopPropagation();let o=[...t(this,T).values()],c=o.findIndex(p=>p.field===s),h=o.findIndex(p=>p.field===r);if(c>-1&&h>-1){let[p]=o.splice(c,1),b=t(this,T).get(r);if(!b)return;o.splice(h,0,p);let v=o.map(K=>K.field),C=new CustomEvent("dt.col.reorder",{cancelable:!0,detail:{draggedColumn:p.field,dropColumn:b.field,order:v}});if(!this.dispatchEvent(C))return;this.setColumnOrder(v)}});f(this,Fe,()=>{let e=document.querySelectorAll(".dt-drag-over");for(let s of e)s.classList.remove("dt-drag-over")});this.TABLE_OPTION_CONFIGS={virtualScroll:{effect:"reRenderTable",handler:e=>Ze(e)},highlightSearch:{effect:"reRenderTable"},tokenizeSearch:{effect:"reloadData",handler:e=>(this.search(t(this,re)),e)},enableSearchScoring:{effect:"reApplyFilters"},rearrangeable:{effect:"updateHeaders"},extraSearchFields:{effect:"reloadData"},emptyValuePlaceholder:{effect:"reRenderTable"},noDataText:{effect:"reRenderTable"},noMatchText:{effect:"reRenderTable"},classes:{effect:"reRenderTable",handler:e=>{let s=qe(t(this,g).classes,e);t(this,w).className=s.scroller.join(" "),t(this,Y).className=s.thead.join(" "),t(this,_).className=s.tbody.join(" ");for(let i of t(this,T).values())i.headerElement.className=s.th.join(" ");return s}},rowFormatter:{effect:"reRenderTable"},tokenizer:{effect:"reloadData"},virtualScrollClass:{effect:"reRenderTable",handler:e=>{var s;return(s=t(this,R))==null||s.stop(),m(this,R,null),e}}};this.COLUMN_OPTION_CONFIGS={title:{effect:"updateHeaders"},searchable:{effect:"reApplyFilters"},sortable:{effect:"updateHeaders"},resizable:{effect:"updateHeaders"},tokenize:{effect:"reloadData"},valueFormatter:{effect:"reRenderTable"},elementFormatter:{effect:"reRenderTable"},sorter:{effect:"reSortRows"},sortValue:{effect:"reloadData"},filter:{effect:"reApplyFilters"}};let v=i,{data:r,virtualScrollClass:o}=v,c=Be(v,["data","virtualScrollClass"]);if(o!==void 0&&(t(this,g).virtualScrollClass=o),typeof e=="string"){let C=document.querySelector(e);if(!C)throw new SyntaxError(`Failed to find table using selector ${e}`);m(this,S,C)}else m(this,S,e);if(!(t(this,S)instanceof HTMLTableElement))throw new TypeError("Invalid table element type. Must be HTMLTableElement");let{scroller:h,thead:d,headerRow:p,tbody:b}=u(this,l,tt).call(this);m(this,w,h),m(this,Y,d),m(this,_,b),u(this,l,st).call(this,s,p),this.updateTableOptions(P(P({},t(this,g)),c)),m(this,V,!1),t(this,E).clear(),this.loadData(r!=null?r:[])}get tableOptions(){return structuredClone(t(this,g))}get rows(){return[...t(this,x)]}get data(){return[...t(this,k).values()]}get table(){return t(this,S)}getState(){let e=[...t(this,T).values()];return{searchQuery:t(this,re),filters:t(this,W),scrollPosition:{top:t(this,w).scrollTop,left:t(this,w).scrollLeft},columnOrder:e.map(s=>s.field),columns:e.map(s=>({field:s.field,visible:s.state.visible,sortState:s.state.sortState,width:s.state.width}))}}restoreState(e){this.withoutUpdates(()=>{if("searchQuery"in e&&e.searchQuery!==void 0&&this.search(e.searchQuery),"filters"in e&&e.filters!==void 0&&(m(this,W,e.filters),this.filter(e.filters)),"scrollPosition"in e&&e.scrollPosition!==void 0&&(t(this,w).scrollTop=e.scrollPosition.top),"columnOrder"in e&&e.columnOrder!==void 0&&this.setColumnOrder(e.columnOrder),"columns"in e&&e.columns!==void 0)for(let s of e.columns){let i=t(this,T).get(s.field);if(!i){console.warn(`Attempting to restore state for non-existent column ${s.field}`);continue}"visible"in s&&s.visible!==void 0&&(i.state.visible=s.visible),"sortState"in s&&s.sortState!==void 0&&(i.state.sortState=s.sortState),"width"in s&&s.width!==void 0&&u(this,l,we).call(this,i,s.width)}})}updateTableOptions(e){this.withoutUpdates(()=>{for(let s in e){let i=s,r=e[i],o=this.TABLE_OPTION_CONFIGS[i];if(!o)continue;t(this,E).add(o.effect);let c=o.handler,h=c?c(r):r;t(this,g)[i]=h}t(this,g).enableSearchScoring&&!t(this,g).tokenizeSearch&&(t(this,g).enableSearchScoring=!1,console.warn("Search scoring enabled with tokenization disabled... Ignoring"))})}getColumnOptions(e){if(e){let i=t(this,T).get(e);if(!i)throw new Error(`Cannot get options for non-existent column "${e}"`);return He(P({},i.options),{field:i.field})}return[...t(this,T).values()].map(i=>He(P({},i.options),{field:i.field}))}updateColumnOptions(e,s){let i=t(this,T).get(e);if(!i)throw new Error(`Cannot update options for non-existent column "${e}"`);this.withoutUpdates(()=>{for(let r in s){let o=r,c=s[o],h=this.COLUMN_OPTION_CONFIGS[o];if(!h)continue;t(this,E).add(h.effect);let d=h.handler,p=d?d(c):c;i.options[o]=p}})}loadData(e,s={}){let i,r;s.keepScroll&&(i=t(this,w).scrollTop,r=t(this,w).scrollLeft),s.append||(t(this,k).clear(),m(this,x,[]));let o=t(this,k).size;for(let c of e){let h=u(this,l,Ke).call(this,c,o);t(this,k).set(o,h),o++}u(this,l,te).call(this),u(this,l,G).call(this),i&&r&&(t(this,w).scrollTop=i,t(this,w).scrollLeft=r)}showMessage(e,...s){let i=t(this,T).size;t(this,_).innerHTML=`<tr class="${s.join(" ")}"><td colSpan=${i}>${e}</td></tr>`}clearMessage(){u(this,l,Ee).call(this)}search(e){e!=null||(e=null);let s=new CustomEvent("dt.search",{cancelable:!0,detail:{query:e!=null?e:null}});this.dispatchEvent(s)&&(m(this,re,e),e===""&&(e=null),typeof e=="string"?t(this,g).tokenizeSearch?m(this,M,t(this,g).tokenizer(e)):m(this,M,[{value:e.toLocaleLowerCase(),quoted:!0}]):m(this,M,e),u(this,l,G).call(this))}filter(e){m(this,W,e!=null?e:null),u(this,l,G).call(this)}sort(e,s){var h;let i=t(this,T).get(e);if(!i)throw new Error(`Cannot get options for non-existent column "${e}"`);if(s===((h=i.state.sortState)==null?void 0:h.order))return;let r=new CustomEvent("dt.col.sort",{cancelable:!0,detail:{column:i.field,order:s}});if(!this.dispatchEvent(r))return;if(s&&!i.state.sortState){let d=[...t(this,T).values()].map(v=>{var C;return(C=v.state.sortState)==null?void 0:C.priority}).filter(v=>v!==void 0),p=t(this,T).size+1,b=Math.min(p,...d)-1;i.state.sortState={order:s,priority:b}}else s&&i.state.sortState?i.state.sortState.order=s:i.state.sortState=null;let o=t(this,w).scrollTop,c=t(this,w).scrollLeft;u(this,l,te).call(this),u(this,l,he).call(this),t(this,w).scrollTop=o,t(this,w).scrollLeft=c}setColumnVisibility(e,s){let i=t(this,T).get(e);if(!i)throw new Error(`Cannot get options for non-existent column "${e}"`);if(i.state.visible===s)return;let r=new CustomEvent("dt.col.visibility",{cancelable:!0,detail:{column:i.field,visible:s}});this.dispatchEvent(r)&&(i.state.visible=s,u(this,l,te).call(this),u(this,l,he).call(this))}showColumn(e){this.setColumnVisibility(e,!0)}hideColumn(e){this.setColumnVisibility(e,!1)}export(e,s=!1){let r=[...(s?t(this,k):t(this,x)).values()],o=[...t(this,T).values()].filter(b=>s||b.state.visible).map(b=>`"${b.options.title}"`).join(","),c=r.map(b=>{let v=[];for(let C of t(this,T).keys()){let K=t(this,T).get(C);if(!K)continue;let y=b[C];(s||!K.headerElement.hidden)&&(typeof K.options.valueFormatter=="function"&&(y=K.options.valueFormatter(y,b)),y=String(y).replace('"','""'),v.push(`"${y}"`))}return v.join(",")}).join(`
|
|
2
|
+
`),h=o+`
|
|
3
|
+
`+c,d=new Blob([h],{type:"text/csv;charset=utf-8,"}),p=document.createElement("a");p.style.display="none",p.href=URL.createObjectURL(d),p.download=`${e}.csv`,document.body.append(p),p.click(),p.remove()}scrollToRow(e){var r;let i=(r=e._metadata)==null?void 0:r.index;if(typeof i=="number")this.scrollToOriginalIndex(i);else throw new Error("Row not in table")}scrollToOriginalIndex(e){let s=t(this,k).get(e);if(s){let i=t(this,x).indexOf(s);if(i>=0){this.scrollToFilteredIndex(i);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,x)[e];if(!s)throw new RangeError(`Row index ${e} out of range`);if(t(this,R))t(this,R).scrollToIndex(e);else{let i=t(this,_).querySelector(`tr[data-dt-index="${s._metadata.index}"]`);if(i){i.scrollIntoView(!0);let r=parseFloat(getComputedStyle(t(this,Y)).height);t(this,w).scrollTop-=r}}}scrollToPx(e){if(t(this,R))t(this,R).scrollToPx(e);else{let s=parseFloat(getComputedStyle(t(this,Y)).height);t(this,w).scrollTop=e-s}}setColumnOrder(e){if(!Array.isArray(e))throw new TypeError("fields must be an array of field names");let s=new Map;for(let i of e){let r=t(this,T).get(i);r&&s.set(i,r)}for(let[i,r]of t(this,T))s.has(i)||s.set(i,r);m(this,T,s),this.refresh()}refresh(){u(this,l,te).call(this),u(this,l,G).call(this)}indexOf(e,s){let r=[...t(this,k).values()].find(o=>{if(e in o)return o[e]===s});return r?r._metadata.index:-1}updateRow(e,s){let i=t(this,k).get(e);i&&(Object.assign(i,s),u(this,l,Ke).call(this,i,e),u(this,l,G).call(this))}deleteRow(e){t(this,k).delete(e),u(this,l,G).call(this)}withoutUpdates(e){let s=t(this,V);m(this,V,!0);try{e(this)}finally{m(this,V,s),t(this,V)||u(this,l,at).call(this)}}destroy(){var e,s;(e=t(this,R))==null||e.stop(),t(this,S).innerHTML="",t(this,S).classList.remove("data-table"),(s=t(this,w).parentElement)==null||s.insertBefore(t(this,S),t(this,w)),t(this,w).remove()}addEventListener(e,s,i){super.addEventListener(e,s,i)}removeEventListener(e,s,i){super.removeEventListener(e,s,i)}};S=new WeakMap,Y=new WeakMap,_=new WeakMap,w=new WeakMap,ie=new WeakMap,T=new WeakMap,k=new WeakMap,x=new WeakMap,re=new WeakMap,M=new WeakMap,W=new WeakMap,R=new WeakMap,z=new WeakMap,ue=new WeakMap,g=new WeakMap,V=new WeakMap,E=new WeakMap,l=new WeakSet,tt=function(){var o;t(this,S).classList.add("data-table");let e=document.createElement("div");t(this,S).style.height!==""&&(e.style.height=t(this,S).style.height,t(this,S).style.height="");let s=document.createElement("thead"),i=document.createElement("tr"),r=document.createElement("tbody");return r.addEventListener("click",t(this,Se)),t(this,S).innerHTML="",s.append(i),t(this,S).append(s),t(this,S).append(r),(o=t(this,S).parentNode)==null||o.insertBefore(e,t(this,S)),e.append(t(this,S)),{scroller:e,thead:s,headerRow:i,tbody:r}},st=function(e,s){var r,o,c,h,d,p,b,v,C,K;t(this,T).clear();let i=!1;for(let y of e){let O=document.createElement("th"),me=document.createElement("div"),ne=document.createElement("div"),Te=document.createElement("span"),N={field:y.field,options:{title:(r=y.title)!=null?r:Ye(y.field),sortable:(o=y.sortable)!=null?o:!0,searchable:(c=y.searchable)!=null?c:!1,tokenize:(h=y.tokenize)!=null?h:!1,resizable:(d=y.resizable)!=null?d:!0,valueFormatter:(p=y.valueFormatter)!=null?p:null,elementFormatter:(b=y.elementFormatter)!=null?b:null,sorter:(v=y.sorter)!=null?v:null,sortValue:(C=y.sortValue)!=null?C:null,filter:(K=y.filter)!=null?K:null},state:{visible:!0,sortState:null,width:null},headerElement:O,titleElement:Te,resizeStartWidth:null,resizeStartX:null};t(this,T).set(y.field,N),O.dataset.dtField=y.field,O.hidden=!N.state.visible,O.title=N.options.title,me.classList.add("dt-header-content"),O.append(me),ne.classList.add("dt-header-title-wrapper"),me.append(ne),Te.classList.add("dt-header-title"),Te.innerHTML=N.options.title,ne.append(Te);let je=document.createElement("div");je.classList.add("dt-sort-icon"),ne.append(je);let Ue=document.createElement("div");Ue.classList.add("dt-resizer"),me.append(Ue),s.append(O),N.state.visible&&(i=!0),this.updateColumnOptions(y.field,N.options),t(this,g).rearrangeable&&(O.draggable=!0),ne.addEventListener("click",()=>{O.classList.contains("dt-sortable")&&(N.state.sortState?N.state.sortState.order==="asc"?this.sort(N.field,"desc"):N.state.sortState.order&&this.sort(N.field,null):this.sort(N.field,"asc"))}),O.addEventListener("dragstart",t(this,xe)),O.addEventListener("dragenter",t(this,Re)),O.addEventListener("dragover",t(this,Le)),O.addEventListener("dragleave",t(this,Me)),O.addEventListener("drop",t(this,De)),O.addEventListener("dragend",t(this,Fe)),O.addEventListener("mousedown",t(this,Ce)),O.addEventListener("dblclick",t(this,Oe))}if(t(this,T).size===0)console.warn("No columns found. At least one column is required.");else if(!i){console.warn("At least a single column must be visible. Showing the first column.");let y=e[0].field;this.showColumn(y)}},Ke=function(e,s){let i={index:s++,tokens:{},compareValues:{},sortValues:{}};e._metadata=i;for(let[r,o]of t(this,T)){let c=J(e,r);typeof o.options.sortValue=="function"?i.sortValues[r]=o.options.sortValue(c):typeof c=="string"?i.sortValues[r]=c.toLocaleLowerCase():i.sortValues[r]=c,typeof c=="string"&&(i.compareValues[r]=c.toLocaleLowerCase()),o.options.searchable&&o.options.tokenize&&c&&(i.tokens[r]=t(this,g).tokenizer(c).map(h=>h.value))}for(let r of t(this,g).extraSearchFields){let o=J(e,r);typeof o=="string"&&(i.compareValues[r]=o.toLocaleLowerCase())}return e},Ae=function(e,s){if(!e||!s)return 0;let i=0,r=0;if(s===e)r=se.MatchWeights.EXACT,i=e.length;else if(s.startsWith(e))r=se.MatchWeights.PREFIX,i=e.length;else if(s.includes(e))r=se.MatchWeights.SUBSTRING,i=e.length;else return 0;let c=1/(1+(s.length-e.length));return i*r*c},_e=function(e,s,i){return e instanceof RegExp?e.test(s)?1:0:t(this,g).enableSearchScoring?e.quoted||!i?u(this,l,Ae).call(this,e.value,s):i.map(r=>u(this,l,Ae).call(this,e.value,r)).reduce((r,o)=>r+=o,0):e.quoted||!i?s.includes(e.value)?1:0:i.some(r=>r==e.value)?1:0},ye=function(e,s,i=null){return Array.isArray(s)?s.length===0?!0:s.some(r=>u(this,l,ye).call(this,e,r,i)):Array.isArray(e)?e.length===0?!1:e.some(r=>u(this,l,ye).call(this,r,s,i)):typeof i=="function"?i(e,s):s instanceof RegExp?s.test(String(e)):s===e},it=function(e,s){if(!t(this,W))return!0;if(typeof t(this,W)=="function")return t(this,W).call(this,e,s);for(let i in t(this,W)){let r=t(this,W)[i],o=J(e,i);if(typeof r=="function"){if(!r(o))return!1}else{let c=t(this,T).get(i),h=c?c.options.filter:void 0;if(!u(this,l,ye).call(this,o,r,h))return!1}}return!0},G=function(){if(t(this,V)){t(this,E).add("reApplyFilters");return}else t(this,E).delete("reApplyFilters");let s=[...[...t(this,T).values()].filter(o=>o.options.searchable).map(o=>o.field),...t(this,g).extraSearchFields],i=[...t(this,k).values()];m(this,x,i.filter((o,c)=>{if(o._metadata.searchScore=0,!u(this,l,it).call(this,o,c))return!1;if(!t(this,M))return!0;for(let h of s){let d=J(o,h),p=o._metadata.compareValues[h],b=o._metadata.tokens[h];if(typeof d!="string"||typeof p!="string")continue;let v=0;if(t(this,M)instanceof RegExp)v=u(this,l,_e).call(this,t(this,M),d,b);else for(let C of t(this,M))v+=u(this,l,_e).call(this,C,p,b);o._metadata.searchScore+=v}return o._metadata.searchScore>0})),u(this,l,he).call(this);let r=new CustomEvent("dt.rows.changed",{cancelable:!1,detail:{dataTable:this}});this.dispatchEvent(r)},rt=function(e,s,i){var d,p;let r,o;if(!i.state.sortState)return 0;if(((d=i.state.sortState)==null?void 0:d.order)==="asc"?(r=e._metadata.sortValues[i.field],o=s._metadata.sortValues[i.field]):((p=i.state.sortState)==null?void 0:p.order)==="desc"&&(r=s._metadata.sortValues[i.field],o=e._metadata.sortValues[i.field]),typeof i.options.sorter=="function"){let b=i.options.sorter(r,o);if(b!==0)return b}let c=r==null,h=o==null;return c&&!h?-1:h&&!c?1:r<o?-1:r>o?1:0},he=function(){if(t(this,V)){t(this,E).add("reSortRows");return}else t(this,E).delete("reSortRows");let e=[...t(this,T).values()].filter(s=>!s.headerElement.hidden&&s.state.sortState).sort((s,i)=>i.state.sortState.priority-s.state.sortState.priority);t(this,x).sort((s,i)=>{if(t(this,g).enableSearchScoring&&t(this,M)){let r=s._metadata.searchScore||0,o=i._metadata.searchScore||0;if(r>o)return-1;if(r<o)return 1}for(let r of e){let o=u(this,l,rt).call(this,s,i,r);if(o!==0)return o}return s._metadata.index-i._metadata.index}),u(this,l,Ee).call(this)},te=function(){var e,s,i,r,o,c,h;if(t(this,V)){t(this,E).add("updateHeaders");return}else t(this,E).delete("updateHeaders");for(let d of t(this,T).values())(e=d.headerElement.parentElement)==null||e.append(d.headerElement),d.headerElement.hidden=!d.state.visible,d.headerElement.draggable=t(this,g).rearrangeable,d.titleElement.textContent=d.options.title,d.options.resizable?d.headerElement.classList.add("dt-resizeable"):d.headerElement.classList.remove("dt-resizeable"),d.options.sortable?d.headerElement.classList.add("dt-sortable"):d.headerElement.classList.remove("dt-sortable"),d.state.sortState?d.state.sortState.order==="asc"?((r=d.headerElement)==null||r.classList.add("dt-ascending"),(o=d.headerElement)==null||o.classList.remove("dt-descending")):d.state.sortState.order==="desc"&&((c=d.headerElement)==null||c.classList.add("dt-descending"),(h=d.headerElement)==null||h.classList.remove("dt-ascending")):((s=d.headerElement)==null||s.classList.remove("dt-ascending"),(i=d.headerElement)==null||i.classList.remove("dt-descending"))},Ee=function(){if(t(this,V)){t(this,E).add("reRenderTable");return}else t(this,E).delete("reRenderTable");let e=this.rows.length>=t(this,g).virtualScroll;if(e&&!t(this,R)?m(this,R,new(t(this,g)).virtualScrollClass({container:t(this,w),element:t(this,_),generator:s=>u(this,l,Pe).call(this,s)})):!e&&t(this,R)&&(t(this,R).stop(),m(this,R,null)),t(this,_).innerHTML="",t(this,R))try{t(this,R).start(t(this,x).length)}catch(s){s instanceof ee&&(console.warn("Failed to start virtual scroll... falling back to standard rendering"),console.warn(s.stack))}else{if(t(this,x).length>et){let i=et.toLocaleString();console.warn(`Virtual scroll disabled with more than ${i} rows... Good luck with that!`)}let s=t(this,x).map((i,r)=>u(this,l,Pe).call(this,r));t(this,_).append(...s)}t(this,k).size===0?this.showMessage(t(this,g).noDataText,"dt-empty"):t(this,x).length===0&&this.showMessage(t(this,g).noMatchText,"dt-empty")},We=function(e,s){var i;if(e.children.length===0){let r=(i=e.textContent)!=null?i:"",o=t(this,g).classes.mark.join(" ");r=r.replace(s,c=>`<mark class="${o}">${c}</mark>`),e.innerHTML=r}else for(let r of e.children)r instanceof HTMLElement&&u(this,l,We).call(this,r,s)},nt=function(e,s,i,r){if(typeof i.options.valueFormatter=="function"&&(s=i.options.valueFormatter(s,r)),s!=null?(e.textContent=s,e.title=String(s)):e.textContent=t(this,g).emptyValuePlaceholder,typeof i.options.elementFormatter=="function"&&i.options.elementFormatter(s,r,e),t(this,g).highlightSearch&&t(this,M)&&i.options.searchable){let o;if(t(this,M)instanceof RegExp)o=t(this,M);else{let c=t(this,M).map(h=>h.value).join("|");o=new RegExp(c,"gi")}u(this,l,We).call(this,e,o)}e.hidden=!i.state.visible},Pe=function(e){let s=t(this,x)[e],i=document.createElement("tr");i.classList.add(...t(this,g).classes.tr),i.dataset.dtIndex=String(s._metadata.index);for(let[r,o]of t(this,T)){let c=J(s,r),h=document.createElement("td");h.classList.add(...t(this,g).classes.td),h.dataset.dtField=r,u(this,l,nt).call(this,h,c,o,s),i.append(h)}if(typeof t(this,g).rowFormatter=="function")try{t(this,g).rowFormatter(s,i)}catch(r){console.error("Row formatter callback failed with the following error"),console.error(r)}return i},ot=function(){if(!t(this,ue)){m(this,ue,!0);for(let e of t(this,T).values()){let s=e.headerElement.offsetWidth;e.state.width=s,e.headerElement.style.width=`${s}px`}t(this,S).style.width="fit-content"}},we=function(e,s){u(this,l,ot).call(this),s!==null&&s<0&&(s=0),e.state.width=s;let i;s==null?i="":s<=0?i="0px":i=`${s}px`,e.headerElement.style.width=i},at=function(){for(;t(this,E).size;)t(this,E).has("reloadData")?(this.loadData(this.data),t(this,E).delete("reloadData")):t(this,E).has("reApplyFilters")?(u(this,l,G).call(this),t(this,E).delete("reApplyFilters")):t(this,E).has("reSortRows")?(u(this,l,he).call(this),t(this,E).delete("reSortRows")):t(this,E).has("reRenderTable")&&(u(this,l,Ee).call(this),t(this,E).delete("reRenderTable")),t(this,E).has("updateHeaders")&&u(this,l,te).call(this)},Se=new WeakMap,Ce=new WeakMap,fe=new WeakMap,pe=new WeakMap,Oe=new WeakMap,xe=new WeakMap,Le=new WeakMap,Re=new WeakMap,Me=new WeakMap,De=new WeakMap,Fe=new WeakMap,se.MatchWeights={EXACT:100,PREFIX:50,SUBSTRING:10};var Ve=se,et=1e4;var mt={saveSearch:!0,saveColumnSorting:!0,saveColumnVisibility:!0,saveColumnWidth:!0,saveColumnOrder:!0},H,$e=class{constructor(n,e,s){this.storageKey=n;this.dataTable=e;f(this,H,()=>setTimeout(()=>this.saveState(),0));this.options=P(P({},mt),s),e&&this.setDataTable(e)}setDataTable(n){this.destroy(),this.dataTable=n,this.restoreState(),this.options.saveSearch&&n.addEventListener("dt.search",t(this,H)),this.options.saveColumnSorting&&n.addEventListener("dt.col.sort",t(this,H)),this.options.saveColumnVisibility&&n.addEventListener("dt.col.visibility",t(this,H)),this.options.saveColumnWidth&&n.addEventListener("dt.col.resize",t(this,H)),this.options.saveColumnOrder&&n.addEventListener("dt.col.reorder",t(this,H))}destroy(){var n,e,s,i,r;(n=this.dataTable)==null||n.removeEventListener("dt.search",t(this,H)),(e=this.dataTable)==null||e.removeEventListener("dt.col.sort",t(this,H)),(s=this.dataTable)==null||s.removeEventListener("dt.col.visibility",t(this,H)),(i=this.dataTable)==null||i.removeEventListener("dt.col.resize",t(this,H)),(r=this.dataTable)==null||r.removeEventListener("dt.col.reorder",t(this,H)),this.dataTable=void 0}saveState(){var s;if(!this.dataTable)return;let n={columns:[]},e=this.dataTable.getState();this.options.saveSearch&&(n.searchQuery=e.searchQuery),this.options.saveColumnOrder&&(n.columnOrder=e.columnOrder);for(let i of e.columns){let r={field:i.field};this.options.saveColumnSorting&&(r.sortState=i.sortState),this.options.saveColumnVisibility&&(r.visible=i.visible),this.options.saveColumnWidth&&(r.width=i.width),(s=n.columns)==null||s.push(r)}localStorage.setItem(this.storageKey,JSON.stringify(n))}restoreState(){if(!this.dataTable)return;let n=localStorage.getItem(this.storageKey);if(n)try{let e=JSON.parse(n),s={};if(this.options.saveSearch&&(s.searchQuery=e.searchQuery),this.options.saveColumnOrder&&(s.columnOrder=e.columnOrder),e.columns){s.columns=[];for(let i of e.columns){let r={field:i.field};this.options.saveColumnVisibility&&(r.visible=i.visible),this.options.saveColumnWidth&&(r.width=i.width),this.options.saveColumnSorting&&(r.sortState=i.sortState),s.columns.push(r)}}this.dataTable.restoreState(s)}catch(e){console.error("Failed to restore DataTable state:",e)}}clearState(){localStorage.removeItem(this.storageKey)}};H=new WeakMap;0&&(module.exports={DataTable,LocalStorageAdapter,VirtualScroll,VirtualScrollError,createRegexTokenizer});
|
|
4
4
|
//# sourceMappingURL=data-table.js.map
|