@timlassiter11/yatl 0.3.5 → 0.3.6

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