@mikestools/usetable 0.0.3 → 0.0.4
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/README.md +352 -586
- package/dist/index.d.ts +411 -1002
- package/dist/usetable.js +856 -1753
- package/dist/usetable.umd.cjs +1 -7
- package/package.json +10 -10
- package/showcase/examples/BasicExample.vue +382 -474
package/dist/usetable.umd.cjs
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
(function(R,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],u):(R=typeof globalThis<"u"?globalThis:R||self,u(R.useTable={},R.Vue))})(this,(function(R,u){"use strict";function De(s){return typeof s!="object"||s===null||!("row"in s)||!("column"in s)||!("message"in s)||!("value"in s)?!1:typeof s.row=="number"&&typeof s.column=="number"&&typeof s.message=="string"}function jt(s){return Array.isArray(s)&&s.every(De)}function Ut(s){return typeof s!="object"||s===null||!("valid"in s)||!("errors"in s)?!1:typeof s.valid=="boolean"&&Array.isArray(s.errors)&&s.errors.every(De)}function ie(s){return s===null||typeof s!="object"||"nodeType"in s?!1:"value"in s}const Wt=new Set(["opacity","z-index","font-weight","line-height","flex","flex-grow","flex-shrink","flex-basis","order","zoom","counter-increment","counter-reset","orphans","widows","fill-opacity","flood-opacity","stop-opacity","stroke-opacity","stroke-miterlimit","column-count","tab-size"]);function Gt(s){return!Wt.has(s)}function fe(s,i){if(!i)return;if(i.class!==void 0&&(typeof i.class=="string"?s.className=i.class:Array.isArray(i.class)?s.className=i.class.join(" "):s.className=Object.entries(i.class).filter(([,p])=>p).map(([p])=>p).join(" ")),i.style!==void 0){if(typeof i.style=="string")s.setAttribute("style",i.style);else if(typeof i.style=="object")for(const[p,w]of Object.entries(i.style)){if(w==null)continue;const y=p.replace(/([A-Z])/g,"-$1").toLowerCase(),de=typeof w=="number"&&Gt(y)?`${w}px`:String(w);s.style.setProperty(y,de)}}if(i.dataset)for(const[p,w]of Object.entries(i.dataset))w!=null&&(s.dataset[p]=String(w));i.id!==void 0&&(s.id=i.id),i.title!==void 0&&(s.title=i.title);const c=new Set(["class","style","dataset","id","title"]);for(const[p,w]of Object.entries(i))c.has(p)||w===void 0||w===null||(p.startsWith("on")&&typeof w=="function"?s.addEventListener(p.slice(2).toLowerCase(),w):p.startsWith("data-")||p.startsWith("aria-")||p==="role"?s.setAttribute(p,String(w)):p in s?typeof w=="boolean"?w?s.setAttribute(p,""):s.removeAttribute(p):s.setAttribute(p,String(w)):typeof w=="boolean"?w&&s.setAttribute(p,""):s.setAttribute(p,String(w)))}function Ce(s,i){const c=document.createElement("th");return c.textContent=s,i?.scope||(c.scope="col"),fe(c,i),c}function S(s,i){let c=i,p,w,y;i instanceof Node?c=i:ie(i)&&(c=i.value,p=i.attributes,w=i.columnSpan,y=i.rowSpan),c==null?s.textContent="":c instanceof Node?(s.textContent="",s.appendChild(c)):s.textContent=String(c),w!==void 0&&w>1&&(s.colSpan=w),y!==void 0&&y>0&&(s.rowSpan=y),fe(s,p)}function I(s){return s.children.length===1&&s.textContent===s.children[0]?.textContent?s.children[0]:s.textContent||""}function It(s){const i=u.ref(s);return{element:i,cellIndex:u.computed(()=>i.value.cellIndex),columnSpan:u.computed({get:()=>i.value.colSpan,set:c=>{i.value.colSpan=c}}),rowSpan:u.computed({get:()=>i.value.rowSpan,set:c=>{i.value.rowSpan=c}}),headers:u.computed({get:()=>i.value.headers,set:c=>{i.value.headers=c}}),abbr:u.computed({get:()=>i.value.abbr,set:c=>{i.value.abbr=c}}),scope:u.computed({get:()=>i.value.scope,set:c=>{i.value.scope=c}})}}function Xe(s){const i=u.ref(s),c=u.customRef(()=>({get:()=>Array.from(i.value.cells),set:()=>{}})),p=u.customRef(()=>({get:()=>i.value.cells.length,set:()=>{}}));return{element:i,cells:c,cellCount:p,rowIndex:u.computed(()=>i.value.rowIndex),sectionRowIndex:u.computed(()=>i.value.sectionRowIndex),insertCell:w=>i.value.insertCell(w),deleteCell:w=>i.value.deleteCell(w),getCell:w=>{const y=i.value.cells[w];return y?It(y):void 0}}}function Te(s){const i=u.ref(s),c=u.customRef(()=>({get:()=>Array.from(i.value.rows),set:()=>{}})),p=u.customRef(()=>({get:()=>i.value.rows.length,set:()=>{}}));return{element:i,rows:c,rowCount:p,insertRow:w=>i.value.insertRow(w),deleteRow:w=>i.value.deleteRow(w),getRow:w=>{const y=i.value.rows[w];return y?Xe(y):void 0}}}function qe(s){return s.includes(",")||s.includes('"')||s.includes(`
|
|
2
|
-
`)?`"${s.replace(/"/g,'""')}"`:s}function xe(s){const i=[];let c="",p=!1;for(let w=0;w<s.length;w++){const y=s[w];y==='"'?p&&w+1<s.length&&s[w+1]==='"'?(c+='"',w++):p=!p:y===","&&!p?(i.push(c),c=""):c+=y}return i.push(c),i}function _t(s){const i=u.shallowRef([]),c=u.shallowRef([]),p=u.ref(null),w=u.ref(null),y=u.ref(null),de=u.ref(0),E=()=>{de.value++},N=()=>{s.value&&(i.value=Array.from(s.value.rows),c.value=Array.from(s.value.tBodies),p.value=s.value.caption,w.value=s.value.tHead,y.value=s.value.tFoot)},M=()=>{N(),E()};N(),u.watch(s,M,{immediate:!0,deep:!1});const Me=u.computed(()=>i.value),xt=u.computed(()=>Me.value.length),Fe=u.computed(()=>c.value),eo=u.computed(()=>Fe.value.length),to=u.computed({get:()=>p.value,set:e=>{s.value.caption=e,p.value=e}}),oo=u.computed({get:()=>w.value,set:e=>{s.value.tHead=e,w.value=e}}),no=u.computed({get:()=>y.value,set:e=>{s.value.tFoot=e,y.value=e}}),g=u.computed({get:()=>{de.value;const e=s.value.tHead;return!e||e.rows.length===0?[]:Array.from(e.rows[0].cells).map(t=>t.textContent||"")},set:e=>{let t=s.value.tHead;for(t||(t=s.value.createTHead());t.rows.length>0;)t.deleteRow(0);const o=t.insertRow();e.forEach(n=>{const r=document.createElement("th");r.textContent=n,r.scope="col",o.appendChild(r)}),M()}}),d=u.computed({get:()=>{de.value;const e=c.value[0];return e?Array.from(e.rows).map(t=>Array.from(t.cells).map(I)):[]},set:e=>{let t=c.value[0];for(t||(t=s.value.createTBody());t.rows.length>0;)t.deleteRow(0);e.forEach(o=>{const n=t.insertRow();o.forEach(r=>S(n.insertCell(),r))}),M()}}),ro=u.computed(()=>g.value.length),ot=()=>{const e=s.value.createCaption();return N(),e},nt=()=>{s.value.deleteCaption(),N()},so=()=>{const e=s.value.createTHead();return N(),e},rt=()=>{s.value.deleteTHead(),N()},st=()=>{const e=s.value.createTFoot();return N(),e},lt=()=>{s.value.deleteTFoot(),N()},lo=()=>{const e=s.value.createTBody();return N(),e},ao=e=>{const t=s.value.insertRow(e);return N(),t},co=e=>{s.value.deleteRow(e),N()},uo=()=>{const e=s.value.tHead;return e?Te(e):void 0},io=()=>{const e=s.value.tFoot;return e?Te(e):void 0},fo=e=>{const t=Fe.value[e];return t?Te(t):void 0},vo=e=>{const t=Me.value[e];return t?Xe(t):void 0},ve=(e,t)=>{let o=c.value[0];o||(o=s.value.createTBody(),M());const n=t===void 0||t===-1?o.rows.length:t,r=o.insertRow(n);return e.forEach(l=>S(r.insertCell(),l)),M(),r},Le=e=>{const t=c.value[0];t&&(e===-1&&t.rows.length>0?t.deleteRow(-1):e>=0&&e<t.rows.length&&t.deleteRow(e),M())},at=(e="",t="",o)=>{const n=g.value.length,r=o===void 0||o===-1?n:o;let l=s.value.tHead;l||(l=s.value.createTHead(),l.insertRow()),l.rows.length===0&&l.insertRow();const a=l.rows[0],f=Ce(e);r>=a.cells.length?a.appendChild(f):a.insertBefore(f,a.cells[r]);const v=c.value[0];v&&Array.from(v.rows).forEach(m=>{const C=m.insertCell(r>=m.cells.length?-1:r);S(C,t)});const h=s.value.tFoot;if(h&&h.rows.length>0){const m=h.rows[0];m.insertCell(r>=m.cells.length?-1:r).textContent=""}M()},ct=e=>{if(e<0||e>=g.value.length)return;const t=s.value.tHead;t&&t.rows.length>0&&t.rows[0].cells[e]&&t.rows[0].deleteCell(e);const o=c.value[0];o&&Array.from(o.rows).forEach(r=>{r.cells[e]&&r.deleteCell(e)});const n=s.value.tFoot;n&&n.rows.length>0&&n.rows[0].cells[e]&&n.rows[0].deleteCell(e),M()},Ne=(e,t,o)=>{const n=c.value[0];if(!n)return;const r=n.rows[e];if(!r)return;const l=r.cells[t];l&&(S(l,o),E())},we=(e,t)=>d.value[e]?.[t],wo=e=>{const t=s.value.caption||ot();t.textContent=e},K=e=>{g.value=[...e]},ho=e=>{let t=s.value.tFoot;for(t||(t=st());t.rows.length>0;)t.deleteRow(0);const o=t.insertRow();e.forEach(n=>S(o.insertCell(),n))},H=e=>{d.value=e.map(t=>[...t])},po=()=>{d.value=[]},go=()=>{for(nt(),rt(),lt();c.value.length>0;){const e=c.value[0];e&&s.value.removeChild(e),M()}},mo=()=>{M()},yo=(e,t,o)=>{let n=c.value[0];n||(n=s.value.createTBody(),M());const r=o===void 0||o===-1?n.rows.length:o,l=n.insertRow(r);return fe(l,t),e.forEach(a=>S(l.insertCell(),a)),M(),l},Co=(e,t)=>{const o=g.value.length,n=t===void 0||t===-1?o:t,r=typeof e.header=="string"?e.header:String(e.header.value),l=typeof e.header=="string"?void 0:e.header.attributes,a=e.defaultValue??"";let f=s.value.tHead;f||(f=s.value.createTHead(),f.insertRow()),f.rows.length===0&&f.insertRow();const v=f.rows[0],h=Ce(r,l);n>=v.cells.length?v.appendChild(h):v.insertBefore(h,v.cells[n]);const m=c.value[0];m&&Array.from(m.rows).forEach(C=>{const ue=C.insertCell(n>=C.cells.length?-1:n);e.defaultAttributes&&fe(ue,e.defaultAttributes),S(ue,a)}),M()},Ro=e=>{let t=s.value.tHead;for(t||(t=s.value.createTHead());t.rows.length>0;)t.deleteRow(0);const o=t.insertRow();e.forEach(n=>{if(typeof n=="string")o.appendChild(Ce(n));else{const r=Ce(String(n.value),n.attributes);n.columnSpan!==void 0&&(r.colSpan=n.columnSpan),n.rowSpan!==void 0&&(r.rowSpan=n.rowSpan),o.appendChild(r)}}),M()},ut=(e,t,o,n)=>{const r=c.value[0];if(!r)return;const l=r.rows[e];if(!l)return;const a=l.cells[t];a&&(S(a,o),fe(a,n),E())},it=e=>{const t=d.value[e];return t?[...t]:void 0},He=(e,t)=>{const o=c.value[0];if(!o)return;const n=o.rows[e];n&&(t.forEach((r,l)=>{n.cells[l]&&S(n.cells[l],r)}),E())},So=()=>d.value.map(e=>[...e]),bo=e=>e<0||e>=g.value.length?[]:d.value.map(t=>t[e]),Eo=(e,t)=>{const o=c.value[0];!o||e<0||e>=g.value.length||(t.forEach((n,r)=>{const l=o.rows[r];l&&l.cells[e]&&S(l.cells[e],n)}),E())},Ao=(e,t,o,n)=>{const r=[];for(let l=e;l<t&&l<d.value.length;l++){const a=d.value[l],f=[];for(let v=o;v<n&&v<a.length;v++)f.push(a[v]);r.push(f)}return r},Do=(e,t,o)=>{const n=c.value[0];n&&(o.forEach((r,l)=>{const a=n.rows[e+l];a&&r.forEach((f,v)=>{const h=a.cells[t+v];h&&S(h,f)})}),E())},To=()=>[...g.value],Mo=()=>{const e=s.value.tFoot;if(!(!e||e.rows.length===0))return Array.from(e.rows[0].cells).map(I)},Fo=(e,t)=>{const o=s.value.tFoot;if(!o||o.rows.length===0)return;const n=o.rows[0].cells[e];n&&S(n,t)},Lo=e=>{const t=s.value.tFoot;if(!t||t.rows.length===0)return;const o=t.rows[0].cells[e];return o?I(o):void 0},Ve=(e,t,o)=>{ut(e,t,o.value,o.attributes);const n=c.value[0];if(n&&n.rows[e]){const r=n.rows[e].cells[t];r&&(o.columnSpan!==void 0&&(r.colSpan=o.columnSpan),o.rowSpan!==void 0&&(r.rowSpan=o.rowSpan))}},ke=(e,t)=>{const o=c.value[0];if(!o)return;const n=o.rows[e];n&&(t.forEach((r,l)=>{const a=n.cells[l];a&&S(a,r)}),E())},ft=(e,t)=>{const o=c.value[0];return o?o.rows[e]?.cells[t]:void 0},No=e=>c.value[0]?.rows[e],Ho=e=>e.filter(t=>t>=0&&t<d.value.length).map(t=>[...d.value[t]]),Vo=e=>e.filter(t=>t>=0&&t<g.value.length).map(t=>d.value.map(o=>o[t])),ko=e=>{e.forEach((t,o)=>ke(o,t))},Bo=e=>{e.forEach((t,[o,n])=>{ie(t)?Ve(o,n,t):Ne(o,n,t)})},Oo=()=>{const e=c.value[0];return e?Array.from(e.rows):[]},Po=e=>{const t=c.value[0];return!t||e<0||e>=t.rows.length?[]:Array.from(t.rows[e].cells)},Ko=(e,t)=>{e<0||t.forEach((o,n)=>{const r=e+n;if(r<d.value.length)ke(r,o);else{const l=o.map(a=>ie(a)?a.value:a);ve(l,r),o.forEach((a,f)=>{ie(a)&&(a.attributes||a.columnSpan!==void 0||a.rowSpan!==void 0)&&Ve(r,f,a)})}})},zo=(e,t,o)=>{const n=d.value[e]?.[t],r=o(n);return r===!0?!0:{row:e,column:t,value:n,message:typeof r=="string"?r:"Validation failed"}},$o=(e,t)=>{const o=d.value[e];if(!o)return[{row:e,column:-1,value:void 0,message:"Row not found"}];const n=t([...o]);return n===!0?!0:[{row:e,column:-1,value:o,message:typeof n=="string"?n:"Validation failed"}]},Jo=(e,t)=>{const o=[];return d.value.forEach((n,r)=>{const l=n[e],a=t(l);a!==!0&&o.push({row:r,column:e,value:l,message:typeof a=="string"?a:"Validation failed"})}),o.length===0?!0:o},jo=e=>{const t=[];return d.value.forEach((o,n)=>{o.forEach((r,l)=>{const a=e(r,n,l);a!==null&&t.push({row:n,column:l,value:r,message:a})})}),{valid:t.length===0,errors:t}},Uo=e=>d.value.reduce((t,o)=>{const n=Number(o[e]);return t+(isNaN(n)?0:n)},0),Wo=e=>{let t=0;const o=d.value.reduce((n,r)=>{const l=Number(r[e]);return isNaN(l)?n:(t++,n+l)},0);return t>0?o/t:0},Go=e=>{const t=d.value.map(o=>o[e]).filter(o=>o!=null);if(t.length!==0)return t.reduce((o,n)=>o<n?o:n)},Io=e=>{const t=d.value.map(o=>o[e]).filter(o=>o!=null);if(t.length!==0)return t.reduce((o,n)=>o>n?o:n)},_o=(e,t)=>{const o=d.value.map(n=>n[e]);return t?o.filter(t).length:o.length},Qo=(e,t)=>d.value.reduce((o,n,r)=>t.reducer(o,n[e],r),t.initial),Yo=(e,t)=>{const o=c.value[0];o&&(Array.from(o.rows).forEach((n,r)=>{const l=n.cells[e];if(l){const a=t(I(l),r);S(l,a)}}),E())},Zo=(e,t)=>{const o=c.value[0];if(!o)return;const n=o.rows[e];n&&(Array.from(n.cells).forEach((r,l)=>{const a=t(I(r),l);S(r,a)}),E())},Xo=e=>{const t=c.value[0];t&&(Array.from(t.rows).forEach((o,n)=>{Array.from(o.cells).forEach((r,l)=>{const a=e(I(r),n,l);S(r,a)})}),E())},qo=()=>{const e=[];return g.value.length>0&&e.push(g.value.map(t=>qe(t)).join(",")),d.value.forEach(t=>{e.push(t.map(o=>qe(String(o??""))).join(","))}),e.join(`
|
|
3
|
-
`)},xo=()=>JSON.stringify({headers:g.value,data:d.value}),en=e=>{H(e)},tn=e=>{const t=e.split(`
|
|
4
|
-
`).filter(r=>r.trim());if(t.length===0)return;const o=xe(t[0]);K(o);const n=t.slice(1).map(xe);H(n)},on=e=>{const t=JSON.parse(e);t.headers&&K(t.headers),t.data&&H(t.data)},nn=(e,t)=>{const o=[],n=t?.caseSensitive?e:e.toLowerCase();return d.value.forEach((r,l)=>{r.forEach((a,f)=>{const v=String(a??"");(t?.caseSensitive?v:v.toLowerCase()).includes(n)&&o.push({row:l,column:f,value:a})})}),o},rn=(e,t,o)=>{const n=[],r=o?.caseSensitive?t:t.toLowerCase();return d.value.forEach((l,a)=>{const f=l[e],v=String(f??"");(o?.caseSensitive?v:v.toLowerCase()).includes(r)&&n.push({row:a,column:e,value:f})}),n},b=u.ref(new Set),re=u.ref(new Set),Be=e=>{b.value=new Set([...b.value,e])},Oe=e=>{const t=new Set(b.value);t.delete(e),b.value=t},sn=e=>{b.value.has(e)?Oe(e):Be(e)},ln=e=>b.value.has(e),an=(e,t)=>{re.value=new Set([...re.value,`${e},${t}`])},cn=()=>{b.value=new Set,re.value=new Set},Pe=new Map;function dt(e,t,o,n){let r=e.textContent;const l=()=>{const v=e.textContent??"";if("validator"in n&&n.validator&&n.validator(v,t,o)!==!0){e.textContent=r;return}const h="parser"in n&&n.parser?n.parser(v,t,o):v;E(),n.onEdit?.(h,t,o)},a=v=>{vt(v)&&(v.key==="Enter"?(v.preventDefault(),e.blur()):v.key==="Escape"&&(v.preventDefault(),e.textContent=r,e.blur()))},f=()=>{r=e.textContent};e.addEventListener("blur",l),e.addEventListener("keydown",a),e.addEventListener("focus",f),Pe.set(e,{blur:l,keydown:a,focus:f})}function Se(e){const t=Pe.get(e);t&&(e.removeEventListener("blur",t.blur),e.removeEventListener("keydown",t.keydown),e.removeEventListener("focus",t.focus),Pe.delete(e)),e.contentEditable="false"}function vt(e){return"key"in e}function un(e,t,o){return o.editableRows&&!o.editableRows.includes(e)?!1:!(o.editableColumns&&!o.editableColumns.includes(t))}let be=null,Ke=null;const ze=(e={})=>{be={cells:!0,...e};const t=c.value[0];t&&Array.from(t.rows).forEach((o,n)=>{Array.from(o.cells).forEach((r,l)=>{un(n,l,be)&&(r.contentEditable="true",dt(r,n,l,be))})})},fn=()=>{be=null;const e=c.value[0];e&&Array.from(e.rows).forEach(t=>{Array.from(t.cells).forEach(Se)})},dn=(e={})=>{Ke=e;const o=s.value.tHead?.rows[0];o&&Array.from(o.cells).forEach((n,r)=>{n.contentEditable="true",dt(n,-1,r,Ke)})},vn=()=>{Ke=null;const t=s.value.tHead?.rows[0];t&&Array.from(t.cells).forEach(Se)},wn=(e,t={})=>{ze({...t,editableColumns:[e]})},hn=e=>{const t=c.value[0];t&&Array.from(t.rows).forEach(o=>{const n=o.cells[e];n&&Se(n)})},pn=(e,t={})=>{ze({...t,editableRows:[e]})},gn=e=>{const t=c.value[0];if(!t)return;const o=t.rows[e];o&&Array.from(o.cells).forEach(Se)},mn=()=>{const e=c.value[0];if(!e)return()=>{};const t=o=>{const n=o.target;if(!(n instanceof HTMLTableCellElement)||n.tagName!=="TD"||!(n.parentElement instanceof HTMLTableRowElement))return;n.contentEditable="true",n.focus();const l=window.getSelection();if(l){const h=document.createRange();h.selectNodeContents(n),l.removeAllRanges(),l.addRange(h)}const a=n.textContent,f=()=>{n.contentEditable="false",n.removeEventListener("blur",f),n.removeEventListener("keydown",v),E()},v=h=>{vt(h)&&(h.key==="Enter"?(h.preventDefault(),n.blur()):h.key==="Escape"&&(n.textContent=a,n.blur()))};n.addEventListener("blur",f),n.addEventListener("keydown",v)};return e.addEventListener("dblclick",t),()=>e.removeEventListener("dblclick",t)},yn=e=>{const t=new Map;return d.value.forEach((o,n)=>{const r=e(o),l=t.get(r)||[];l.push(n),t.set(r,l)}),t},$e=new Map,Cn=e=>{const t=e.index??g.value.length,o=d.value.map(l=>[...l]);at(e.label,void 0,t);const n=c.value[0];n&&Array.from(n.rows).forEach((l,a)=>{const f=l.cells[t];if(f){const v=o[a]??[],h=e.computeFunction(v);S(f,h)}}),E();const r=u.watch(()=>d.value,()=>{const l=c.value[0];l&&Array.from(l.rows).forEach((a,f)=>{const v=a.cells[t];if(v){const m=(d.value[f]??[]).filter((ue,pl)=>pl!==t),C=e.computeFunction(m);S(v,C)}})},{deep:!0,flush:"sync"});return $e.set(t,{config:e,stopWatcher:r}),t},Rn=e=>{const t=$e.get(e);t&&(t.stopWatcher&&t.stopWatcher(),$e.delete(e),ct(e))};let A=null;const he=()=>{if(!A)return;const{currentPage:e,pageSize:t}=A,o=d.value.length,n=(e.value-1)*t.value,r=Math.min(n+t.value,o),l=[];for(let f=n;f<r;f++)l.push(f);A.visibleRows.value=l;const a=c.value[0];a&&Array.from(a.rows).forEach((f,v)=>{f.style.display=l.includes(v)?"":"none"})},Sn=e=>{const t=u.ref(e.currentPage??1),o=u.ref(e.pageSize),n=u.ref([]);A={totalPages:u.computed(()=>Math.ceil(d.value.length/o.value)||1),currentPage:t,pageSize:o,visibleRows:n},he(),u.watch(()=>d.value.length,()=>{const r=A.totalPages.value;t.value>r&&(t.value=r),he()})},bn=()=>{A&&A.currentPage.value<A.totalPages.value&&(A.currentPage.value++,he())},En=()=>{A&&A.currentPage.value>1&&(A.currentPage.value--,he())},An=e=>{A&&e>=1&&e<=A.totalPages.value&&(A.currentPage.value=e,he())};let D=null;const wt=()=>{if(!D)return;const{scrollTop:e,rowHeight:t,overscan:o,containerHeight:n}=D,r=d.value.length,l=Math.floor(e.value/t),a=Math.min(Math.ceil((e.value+n)/t),r),f=Math.max(0,l-o),v=Math.min(r,a+o),h=[];for(let C=f;C<v;C++)h.push(C);D.visibleRows.value=h,D.startIndex.value=f,D.endIndex.value=v;const m=c.value[0];m&&(Array.from(m.rows).forEach((C,ue)=>{h.includes(ue)?(C.style.display="",C.style.transform=`translateY(${ue*t}px)`):C.style.display="none"}),m.style.height=`${r*t}px`,m.style.position="relative")},Dn=e=>{const t=u.ref(0);D={scrollTop:t,rowHeight:e.rowHeight,overscan:e.overscan,containerHeight:e.containerHeight,visibleRows:u.ref([]),startIndex:u.ref(0),endIndex:u.ref(0)};const o=s.value.parentElement;if(o){const n=()=>{t.value=o.scrollTop,wt()};o.addEventListener("scroll",n),D.scrollHandler=n,D.container=o,wt();const r=c.value[0];r&&Array.from(r.rows).forEach(l=>{l.style.position="absolute",l.style.width="100%",l.style.left="0"})}},Tn=()=>{if(!D)return;D.container&&D.scrollHandler&&D.container.removeEventListener("scroll",D.scrollHandler);const e=c.value[0];e&&(e.style.height="",e.style.position="",Array.from(e.rows).forEach(t=>{t.style.display="",t.style.position="",t.style.transform="",t.style.width="",t.style.left=""})),D=null},Mn=()=>({data:JSON.parse(JSON.stringify(d.value)),headers:[...g.value]}),ht=e=>{g.value=[...e.headers],d.value=e.data.map(t=>[...t])},Fn=e=>{const t=Mn();try{const o=e();return o instanceof Promise?o.catch(n=>{throw ht(t),n}):o}catch(o){throw ht(t),o}},Ln=e=>u.watch(()=>d.value,t=>{e([...t.map(o=>[...o])])},{deep:!0}),U=u.ref(null),z=u.ref(!1),W=u.ref(!1),Nn={columnIndex:U,ascending:z,descending:W},pt=(e,t)=>{const o=String(e??""),n=String(t??""),r=Number(o),l=Number(n);return!isNaN(r)&&!isNaN(l)?r-l:o.localeCompare(n)},Ee=(e,t,o)=>{const n=c.value[0];if(!n||n.rows.length===0)return;const r=[];for(let l=0;l<n.rows.length;l++){const a=n.rows[l];if(a){const f=a.cells[e],v=f?I(f):"";r.push({element:a,value:v})}}r.sort((l,a)=>{const f=t(l.value,a.value);return o?f:-f}),r.forEach(({element:l})=>{n.appendChild(l)}),U.value=e,z.value=o,W.value=!o,E()},Hn=e=>{Ee(e,pt,!0)},Vn=e=>{Ee(e,pt,!1)},kn=(e,t)=>{Ee(e,t,!0)},Bn=(e,t)=>{Ee(e,t,!1)},On=()=>{U.value=null,z.value=!1,W.value=!1},Pn=()=>U.value,Kn=()=>U.value===null||z.value===W.value?!1:z.value,zn=()=>U.value===null||z.value===W.value?!1:W.value,$n=()=>U.value===null||z.value===W.value?!1:z.value||W.value,_=u.ref([]),gt=u.computed(()=>_.value.length>0),Jn=u.computed(()=>gt.value?_.value.length:d.value.length),jn={isFiltered:gt,filteredRowCount:Jn,filteredIndices:_},mt=e=>{const t=c.value[0];if(!t)return;const o=[],n=d.value;for(let r=0;r<n.length;r++){const l=n[r];l&&e(l,r)&&o.push(r)}_.value=o;for(let r=0;r<t.rows.length;r++){const l=t.rows[r];l&&(l.style.display=o.includes(r)?"":"none")}},Je=(e,t)=>{mt(o=>{const n=o[e];return t(n)})},Un=(e,t)=>{const o=String(t??"");Je(e,n=>String(n??"")===o)},Wn=(e,t)=>{const o=new Set(t.map(n=>String(n??"")));Je(e,n=>o.has(String(n??"")))},Gn=()=>{const e=c.value[0];if(e)for(let t=0;t<e.rows.length;t++){const o=e.rows[t];o&&(o.style.display="")}_.value=[]},In=()=>_.value;let $=null;const _n=e=>{$=e},Qn=()=>{$=null},Yn=()=>$!==null,Zn=e=>{if(!$)return;const t=d.value[e];if(t)return $(t,e)},Xn=()=>$?d.value.map((e,t)=>$(e,t)):[],pe=e=>{if(!$)return;const t=d.value;for(let o=0;o<t.length;o++){const n=t[o];if(n&&$(n,o)===e)return o}},qn=e=>{const t=pe(e);if(t===void 0)return;const o=d.value[t];return o?[...o]:void 0},xn=(e,t)=>{const o=pe(e);return o===void 0?!1:(He(o,t),!0)},er=e=>{const t=pe(e);return t===void 0?!1:(Le(t),!0)},tr=e=>pe(e)!==void 0,O=new Map,or=(e,t)=>{O.set(e,t)},nr=e=>{O.clear(),e.forEach((t,o)=>{t&&O.set(o,t)})},rr=e=>{O.delete(e)},sr=()=>{O.clear()},lr=e=>O.get(e),ar=e=>O.has(e),je=(e,t)=>{if(t.parser)return t.parser(e);const o=String(e??"");if(t.nullable&&(e==null||o===""))return null;switch(t.type){case"number":return Number(o);case"boolean":return o==="true"||o==="1";case"date":return new Date(o);default:return o}},cr=(e,t)=>{const o=we(e,t),n=O.get(t);return n?je(o,n):o},yt=e=>{const t=d.value[e];return t?t.map((o,n)=>{const r=O.get(n);return r?je(o,r):o}):[]},ur=e=>{const t=O.get(e);return d.value.map(o=>{const n=o[e];return t?je(n,t):n})},ir=()=>d.value.map((e,t)=>yt(t)),ge=u.ref(!1),Ue=u.ref(null),Q=new Map,fr=()=>{ge.value=!1,Ue.value=JSON.parse(JSON.stringify(d.value)),Q.clear()},dr=()=>{ge.value=!0},vr=()=>ge.value,wr=()=>Q.size>0,hr=()=>Array.from(Q.values()),pr=()=>{const e=new Set;for(const t of Q.values())e.add(t.row);return Array.from(e).sort((t,o)=>t-o)},gr=()=>{const e=new Set;for(const t of Q.values())e.add(t.column);return Array.from(e).sort((t,o)=>t-o)};u.watch(()=>d.value,e=>{if(Ue.value===null)return;const t=Ue.value;for(let o=0;o<Math.max(e.length,t.length);o++){const n=e[o]??[],r=t[o]??[],l=Math.max(n.length,r.length);for(let a=0;a<l;a++){const f=n[a],v=r[a],h=`${o},${a}`;String(f??"")!==String(v??"")?(Q.set(h,{row:o,column:a,oldValue:v,newValue:f}),ge.value=!0):Q.delete(h)}}},{deep:!0});const J=[],Y=[];let We=50,se="",Z=!1;const Ct=()=>({data:JSON.parse(JSON.stringify(d.value)),headers:[...g.value]}),Ge=()=>JSON.stringify({data:d.value,headers:g.value});u.watch([()=>d.value,()=>g.value],()=>{if(Z)return;const e=Ge();if(e!==se){if(se!==""){const t=JSON.parse(se);(t.data.length>0||t.headers.length>0)&&(J.push({data:t.data,headers:t.headers}),J.length>We&&J.shift(),Y.length=0)}se=e}},{deep:!0,flush:"sync"});const mr=()=>{if(J.length===0)return!1;Z=!0,Y.push(Ct());const e=J.pop();return e?(H(e.data),K(e.headers),se=Ge(),Z=!1,!0):(Z=!1,!1)},yr=()=>{if(Y.length===0)return!1;Z=!0,J.push(Ct());const e=Y.pop();return e?(H(e.data),K(e.headers),se=Ge(),Z=!1,!0):(Z=!1,!1)},Cr=()=>{J.length=0,Y.length=0},Rr=()=>J.length>0,Sr=()=>Y.length>0,br=()=>J.length,Er=()=>Y.length,Ar=e=>{We=e},Dr=()=>We,Tr=()=>{const e=d.value.length;for(let t=0;t<e;t++)b.value.add(t)},Mr=()=>{b.value.clear()},Fr=(e,t)=>{const o=Math.min(e,t),n=Math.max(e,t);for(let r=o;r<=n;r++)r>=0&&r<d.value.length&&b.value.add(r)},Lr=()=>{const e=d.value.length,t=new Set;for(let o=0;o<e;o++)b.value.has(o)||t.add(o);b.value=t},Nr=()=>{const e=[],t=Array.from(b.value).sort((o,n)=>o-n);for(const o of t){const n=d.value[o];n&&e.push([...n])}return e},Rt=()=>Array.from(b.value).sort((e,t)=>e-t),St=()=>{const e=[];for(const t of re.value){const o=t.split(",");if(o.length===2){const n=parseInt(o[0]??"",10),r=parseInt(o[1]??"",10);!isNaN(n)&&!isNaN(r)&&e.push({row:n,column:r})}}return e.sort((t,o)=>t.row===o.row?t.column-o.column:t.row-o.row)},F=u.ref(null),j=(e,t)=>{if(e>=0&&e<d.value.length&&t>=0&&t<g.value.length){F.value={row:e,column:t};const o=ft(e,t);o&&o.focus()}},Hr=()=>{F.value=null},Vr=()=>F.value?{...F.value}:null,kr=(e,t)=>{const o=F.value;return o!==null&&o.row===e&&o.column===t},bt=()=>{const e=F.value;return!e||e.row<=0?!1:(j(e.row-1,e.column),!0)},Et=()=>{const e=F.value;return!e||e.row>=d.value.length-1?!1:(j(e.row+1,e.column),!0)},At=()=>{const e=F.value;return!e||e.column<=0?!1:(j(e.row,e.column-1),!0)},Dt=()=>{const e=F.value;return!e||e.column>=g.value.length-1?!1:(j(e.row,e.column+1),!0)},Tt=()=>{d.value.length>0&&g.value.length>0&&j(0,0)},Mt=()=>{const e=d.value.length,t=g.value.length;e>0&&t>0&&j(e-1,t-1)},Ft=()=>{const e=F.value;e&&j(e.row,0)},Lt=()=>{const e=F.value;e&&g.value.length>0&&j(e.row,g.value.length-1)},Br=()=>{const e=t=>{if(F.value)switch(t.key){case"ArrowUp":bt()&&t.preventDefault();break;case"ArrowDown":Et()&&t.preventDefault();break;case"ArrowLeft":At()&&t.preventDefault();break;case"ArrowRight":Dt()&&t.preventDefault();break;case"Home":t.ctrlKey?Tt():Ft(),t.preventDefault();break;case"End":t.ctrlKey?Mt():Lt(),t.preventDefault();break}};return s.value.addEventListener("keydown",e),()=>s.value.removeEventListener("keydown",e)},V=u.ref(new Set),Or=u.computed(()=>g.value.length-V.value.size),Nt=()=>{const e=s.value.tHead,t=c.value[0],o=s.value.tFoot,n=r=>{for(let l=0;l<r.cells.length;l++){const a=r.cells[l];a&&(a.style.display=V.value.has(l)?"none":"")}};if(e)for(let r=0;r<e.rows.length;r++){const l=e.rows[r];l&&n(l)}if(t)for(let r=0;r<t.rows.length;r++){const l=t.rows[r];l&&n(l)}if(o)for(let r=0;r<o.rows.length;r++){const l=o.rows[r];l&&n(l)}},Ht=e=>{const t=new Set(V.value);t.add(e),V.value=t,Nt()},Vt=e=>{const t=new Set(V.value);t.delete(e),V.value=t,Nt()},Pr=e=>{V.value.has(e)?Vt(e):Ht(e)},Kr=e=>!V.value.has(e),zr=()=>{const e=[];for(let t=0;t<g.value.length;t++)V.value.has(t)||e.push(t);return e},$r=()=>Array.from(V.value).sort((e,t)=>e-t),me=(e,t)=>{const o=c.value[0];if(!o||e<0||e>=o.rows.length||t<0||t>=o.rows.length||e===t)return;const n=o.rows[e];if(n){if(t<e){const r=o.rows[t];r&&o.insertBefore(n,r)}else{const r=o.rows[t+1];r?o.insertBefore(n,r):o.appendChild(n)}E()}},Jr=e=>e<=0?!1:(me(e,e-1),!0),jr=e=>{const t=c.value[0];return!t||e>=t.rows.length-1?!1:(me(e,e+1),!0)},Ur=e=>{me(e,0)},Wr=e=>{const t=c.value[0];t&&me(e,t.rows.length-1)},Gr=(e,t)=>{const o=c.value[0];if(!o||e<0||e>=o.rows.length||t<0||t>=o.rows.length||e===t)return;const n=o.rows[e],r=o.rows[t];if(!n||!r)return;const l=document.createElement("tr");o.insertBefore(l,n),o.insertBefore(n,r),o.insertBefore(r,l),o.removeChild(l),E()},ye=(e,t)=>{if(e<0||e>=g.value.length||t<0||t>=g.value.length||e===t)return;const o=[...g.value],[n]=o.splice(e,1);n!==void 0&&o.splice(t,0,n);const r=d.value.map(l=>{const a=[...l],[f]=a.splice(e,1);return f!==void 0&&a.splice(t,0,f),a});K(o),H(r)},Ir=e=>e<=0?!1:(ye(e,e-1),!0),_r=e=>e>=g.value.length-1?!1:(ye(e,e+1),!0),Qr=e=>{ye(e,0)},Yr=e=>{ye(e,g.value.length-1)},Zr=(e,t)=>{if(e<0||e>=g.value.length||t<0||t>=g.value.length||e===t)return;const o=[...g.value],n=o[e];o[e]=o[t]??"",o[t]=n??"";const r=d.value.map(l=>{const a=[...l],f=a[e];return a[e]=a[t],a[t]=f,a});K(o),H(r)},Ie=e=>e.map(t=>t.map(o=>String(o??"")).join(" ")).join(`
|
|
5
|
-
`),Xr=()=>{const e=St();if(e.length===0)return"";const t=new Set(e.map(v=>v.row)),o=new Set(e.map(v=>v.column)),n=Math.min(...t),r=Math.max(...t),l=Math.min(...o),a=Math.max(...o),f=[];for(let v=n;v<=r;v++){const h=[];for(let m=l;m<=a;m++)e.some(C=>C.row===v&&C.column===m)?h.push(we(v,m)):h.push("");f.push(h)}return Ie(f)},qr=()=>{const t=Rt().map(o=>d.value[o]??[]);return Ie(t)},xr=e=>{const t=d.value[e];return t?t.map(o=>String(o??"")).join(" "):""},es=e=>d.value.map(t=>String(t[e]??"")).join(`
|
|
6
|
-
`),ts=(e,t)=>String(we(e,t)??""),os=(e,t,o,n)=>{const r=[],l=Math.min(e,o),a=Math.max(e,o),f=Math.min(t,n),v=Math.max(t,n);for(let h=l;h<=a;h++){const m=[];for(let C=f;C<=v;C++)m.push(we(h,C));r.push(m)}return Ie(r)},ns=(e,t,o)=>{const n=o.split(`
|
|
7
|
-
`);for(let r=0;r<n.length;r++){const l=n[r];if(l===void 0)continue;const a=l.split(" ");for(let f=0;f<a.length;f++){const v=a[f];v!==void 0&&Ne(e+r,t+f,v)}}},P=u.ref(new Set),k=u.ref([]),B=u.ref([]),kt=e=>{const t=new Set(P.value);t.add(e),P.value=t},Bt=e=>{const t=new Set(P.value);t.delete(e),P.value=t},rs=e=>{P.value.has(e)?Bt(e):kt(e)},ss=()=>{const e=new Set;for(let t=0;t<d.value.length;t++)e.add(t);P.value=e},ls=()=>{P.value=new Set},as=e=>P.value.has(e),cs=()=>Array.from(P.value).sort((e,t)=>e-t),us=e=>{k.value.includes(e)||(k.value=[...k.value,e],B.value=B.value.filter(t=>t!==e))},is=e=>{B.value.includes(e)||(B.value=[...B.value,e],k.value=k.value.filter(t=>t!==e))},fs=e=>{k.value=k.value.filter(t=>t!==e),B.value=B.value.filter(t=>t!==e)},ds=()=>{k.value=[],B.value=[]},vs=e=>k.value.includes(e),ws=e=>B.value.includes(e),hs=()=>[...k.value],ps=()=>[...B.value],X=new Map,q=new Map,x=new Map,gs=(e,t,o,n)=>{const r=`${e},${t}`;X.has(r)||X.set(r,new Map),X.get(r)?.set(o,n)},ms=(e,t,o)=>{const n=`${e},${t}`;return X.get(n)?.get(o)},ys=(e,t,o)=>{const n=`${e},${t}`;return X.get(n)?.has(o)??!1},Cs=(e,t)=>{const o=`${e},${t}`;X.delete(o)},Rs=(e,t,o)=>{const n=`${e},${t}`;X.get(n)?.delete(o)},Ss=(e,t,o)=>{q.has(e)||q.set(e,new Map),q.get(e)?.set(t,o)},bs=(e,t)=>q.get(e)?.get(t),Es=(e,t)=>q.get(e)?.has(t)??!1,As=e=>{q.delete(e)},Ds=(e,t)=>{q.get(e)?.delete(t)},Ts=(e,t,o)=>{x.has(e)||x.set(e,new Map),x.get(e)?.set(t,o)},Ms=(e,t)=>x.get(e)?.get(t),Fs=(e,t)=>x.get(e)?.has(t)??!1,Ls=e=>{x.delete(e)},Ns=(e,t)=>{x.get(e)?.delete(t)},Hs=e=>()=>{},Vs=e=>()=>{},ks=e=>()=>{},Bs=e=>()=>{},Os=e=>{const t=u.watch(()=>b.value,o=>{e(o)},{deep:!0});return()=>{t()}},Ps=e=>{const t=u.watch(()=>re.value,o=>{e(o)},{deep:!0});return()=>{t()}},Ks=e=>{const t=u.watch([U,z],([o,n])=>{e(o,n)});return()=>{t()}},zs=e=>{const t=u.watch(()=>_.value,o=>{e(o)});return()=>{t()}},$s=e=>{const t=u.watch(()=>F.value,o=>{e(o?{...o}:null)});return()=>{t()}},Js=e=>{const t=u.watch(()=>V.value,(o,n)=>{for(const r of o)n?.has(r)||e(r,!1);if(n)for(const r of n)o.has(r)||e(r,!0)});return()=>{t()}};let G=0,le=null;const Ot=()=>{G===0&&(le={data:JSON.parse(JSON.stringify(d.value)),headers:[...g.value]}),G++},Pt=()=>{G>0&&(G--,G===0&&(le=null,E()))},Kt=()=>{G>0&&le&&(H(le.data),K(le.headers),G=0,le=null)},js=()=>G>0,Us=e=>{Ot();try{e(),Pt()}catch(t){throw Kt(),t}},_e=u.ref(!1),Qe=new Set,Ye=new Set,Ze=new Set,ee=e=>{_e.value=e},Ws=(e,t,o)=>{const n=`${e},${t}`;o?Qe.add(n):Qe.delete(n)},Gs=(e,t)=>{t?Ye.add(e):Ye.delete(e)},Is=(e,t)=>{t?Ze.add(e):Ze.delete(e)},_s=()=>_e.value,Qs=(e,t)=>Qe.has(`${e},${t}`),Ys=e=>Ye.has(e),Zs=e=>Ze.has(e),Xs=async e=>{ee(!0);try{const t=await e();H(t)}finally{ee(!1)}},qs=async e=>{ee(!0);try{const t=await e();for(const o of t)ve(o)}finally{ee(!1)}},xs=async e=>{ee(!0);try{const t=await e();for(let o=t.length-1;o>=0;o--){const n=t[o];n&&ve(n,0)}}finally{ee(!1)}},te=u.ref(0),oe=u.ref(0),el=e=>{te.value=Math.max(0,e)},tl=e=>{oe.value=Math.max(0,e)},ol=()=>{te.value=0},nl=()=>{oe.value=0},rl=()=>{te.value=0,oe.value=0},sl=()=>te.value,ll=()=>oe.value,al=e=>e<te.value,cl=e=>{const t=g.value.length;return e>=t-oe.value},ul=()=>te.value>0||oe.value>0;let L,zt=()=>crypto.randomUUID();const T=new Map,ae=[],il=e=>{L=e,K(e.map(t=>t.header))},fl=()=>{L=void 0,T.clear()},dl=()=>L!==void 0,vl=()=>L,Ae=e=>L?L.map(t=>typeof t.field=="function"?t.field(e):e[t.field]):[],ce=e=>{if(!L)return;const t=it(e);if(!t)return;const o=T.get(e);if(!o)return;const n={id:o};return L.forEach((r,l)=>{if(typeof r.field=="string"){const a=t[l];r.parse?n[r.field]=r.parse(String(a??""),n):n[r.field]=a}}),n},$t=e=>{if(!L)return;T.clear();const t=e.map(o=>Ae(o));H(t),e.forEach((o,n)=>{T.set(n,o.id)})},Jt=()=>{if(!L)return[];const e=[],t=d.value.length;for(let o=0;o<t;o++){const n=ce(o);n&&e.push(n)}return e},wl=e=>{const t=ne(e);if(t!==void 0)return ce(t)},hl=e=>T.get(e),ne=e=>{for(const[t,o]of T.entries())if(o===e)return t};return{element:s,caption:to,tHead:oo,tFoot:no,rows:Me,rowCount:xt,tBodies:Fe,tBodyCount:eo,data:d,headers:g,columnCount:ro,createCaption:ot,deleteCaption:nt,createTHead:so,deleteTHead:rt,createTFoot:st,deleteTFoot:lt,createTBody:lo,insertRow:ao,deleteRow:co,getTHead:uo,getTFoot:io,getTBody:fo,getRow:vo,addRow:ve,removeRow:Le,addColumn:at,removeColumn:ct,setCell:Ne,getCell:we,setCaption:wo,setHeaders:K,setFooter:ho,setData:H,clearData:po,reset:go,sync:mo,addRowWithAttributes:yo,addColumnWithAttributes:Co,setHeadersWithAttributes:Ro,setCellWithAttributes:ut,getRowData:it,setRowData:He,getAllRowData:So,getColumnData:bo,setColumnData:Eo,getCellRange:Ao,setCellRange:Do,getHeaderData:To,getFooterData:Mo,setFooterCell:Fo,getFooterCell:Lo,updateCell:Ve,updateRow:ke,getCellElement:ft,getRowElement:No,selectRows:Ho,selectColumns:Vo,updateRows:ko,updateCells:Bo,getRowElements:Oo,getRowCellElements:Po,setRows:Ko,validateCell:zo,validateRow:$o,validateColumn:Jo,validateAll:jo,sum:Uo,average:Wo,min:Go,max:Io,count:_o,aggregate:Qo,transformColumn:Yo,transformRow:Zo,transformCells:Xo,exportToCSV:qo,exportToJSON:xo,importFromArray:en,importFromCSV:tn,importFromJSON:on,search:nn,searchColumn:rn,selectedRows:b,selectedCells:re,selectRow:Be,deselectRow:Oe,toggleRowSelection:sn,isRowSelected:ln,selectCell:an,clearSelection:cn,enableCellEditing:ze,disableCellEditing:fn,enableHeaderEditing:dn,disableHeaderEditing:vn,enableColumnEditing:wn,disableColumnEditing:hn,enableRowEditing:pn,disableRowEditing:gn,enableEditing:mn,groupBy:yn,addComputedColumn:Cn,removeComputedColumn:Rn,get pagination(){return A},paginate:Sn,nextPage:bn,previousPage:En,goToPage:An,get virtualScroll(){return D},enableVirtualScrolling:Dn,disableVirtualScrolling:Tn,transaction:Fn,onDataChange:Ln,sortState:Nn,sortColumnAscending:Hn,sortColumnDescending:Vn,sortColumnAscendingWith:kn,sortColumnDescendingWith:Bn,clearColumnSort:On,getSortedColumnIndex:Pn,isSortedAscending:Kn,isSortedDescending:zn,isSorted:$n,filterState:jn,filterRows:mt,filterColumn:Je,filterColumnByValue:Un,filterColumnByValues:Wn,clearFilters:Gn,getFilteredRowIndices:In,setRowKeyFunction:_n,clearRowKeyFunction:Qn,hasRowKeyFunction:Yn,getRowByKey:qn,getRowIndexByKey:pe,updateRowByKey:xn,removeRowByKey:er,hasRowWithKey:tr,getRowKey:Zn,getAllRowKeys:Xn,setColumnDefinition:or,setColumnDefinitions:nr,clearColumnDefinition:rr,clearColumnDefinitions:sr,getColumnDefinition:lr,hasColumnDefinition:ar,getParsedCell:cr,getParsedRowData:yt,getParsedColumnData:ur,getParsedData:ir,dirtyState:ge,markClean:fr,markDirty:dr,isDirty:vr,hasChanges:wr,getChangedCells:hr,getChangedRowIndices:pr,getChangedColumnIndices:gr,undo:mr,redo:yr,clearHistory:Cr,canUndo:Rr,canRedo:Sr,getUndoStackSize:br,getRedoStackSize:Er,setHistoryLimit:Ar,getHistoryLimit:Dr,selectAllRows:Tr,deselectAllRows:Mr,selectRowRange:Fr,invertRowSelection:Lr,getSelectedRowData:Nr,getSelectedRowIndices:Rt,getSelectedCellIndices:St,focusedCell:F,focusCell:j,clearCellFocus:Hr,getFocusedCell:Vr,isCellFocused:kr,moveFocusUp:bt,moveFocusDown:Et,moveFocusLeft:At,moveFocusRight:Dt,moveFocusToFirstCell:Tt,moveFocusToLastCell:Mt,moveFocusToRowStart:Ft,moveFocusToRowEnd:Lt,enableKeyboardNavigation:Br,visibleColumnCount:Or,hideColumn:Ht,showColumn:Vt,toggleColumnVisibility:Pr,isColumnVisible:Kr,getVisibleColumnIndices:zr,getHiddenColumnIndices:$r,moveRow:me,moveRowUp:Jr,moveRowDown:jr,moveRowToTop:Ur,moveRowToBottom:Wr,swapRows:Gr,moveColumn:ye,moveColumnLeft:Ir,moveColumnRight:_r,moveColumnToStart:Qr,moveColumnToEnd:Yr,swapColumns:Zr,copySelectedCells:Xr,copySelectedRows:qr,copyRow:xr,copyColumn:es,copyCell:ts,copyCellRange:os,pasteAtCell:ns,expandedRows:P,pinnedTopRows:k,pinnedBottomRows:B,expandRow:kt,collapseRow:Bt,toggleRowExpansion:rs,expandAllRows:ss,collapseAllRows:ls,isRowExpanded:as,getExpandedRowIndices:cs,pinRowTop:us,pinRowBottom:is,unpinRow:fs,unpinAllRows:ds,isRowPinnedTop:vs,isRowPinnedBottom:ws,getPinnedTopRowIndices:hs,getPinnedBottomRowIndices:ps,setCellMeta:gs,getCellMeta:ms,hasCellMeta:ys,clearCellMeta:Cs,clearCellMetaKey:Rs,setRowMeta:Ss,getRowMeta:bs,hasRowMeta:Es,clearRowMeta:As,clearRowMetaKey:Ds,setColumnMeta:Ts,getColumnMeta:Ms,hasColumnMeta:Fs,clearColumnMeta:Ls,clearColumnMetaKey:Ns,onRowAdd:Hs,onRowRemove:Vs,onRowUpdate:ks,onCellChange:Bs,onRowSelectionChange:Os,onCellSelectionChange:Ps,onSortChange:Ks,onFilterChange:zs,onCellFocusChange:$s,onColumnVisibilityChange:Js,beginBatchUpdate:Ot,endBatchUpdate:Pt,cancelBatchUpdate:Kt,isBatchUpdating:js,batchUpdate:Us,tableLoading:_e,setTableLoading:ee,setCellLoading:Ws,setRowLoading:Gs,setColumnLoading:Is,isTableLoading:_s,isCellLoading:Qs,isRowLoading:Ys,isColumnLoading:Zs,loadData:Xs,appendRowsAsync:qs,prependRowsAsync:xs,frozenLeftColumnCount:te,frozenRightColumnCount:oe,freezeColumnsLeft:el,freezeColumnsRight:tl,unfreezeColumnsLeft:ol,unfreezeColumnsRight:nl,unfreezeAllColumns:rl,getFrozenLeftColumnCount:sl,getFrozenRightColumnCount:ll,isColumnFrozenLeft:al,isColumnFrozenRight:cl,hasFrozenColumns:ul,setRecordColumns:il,clearRecordColumns:fl,hasRecordColumns:dl,getRecordColumns:vl,setRecords:$t,getRecords:Jt,getRecordById:wl,getRecordId:hl,getRowIndexForRecord:ne,updateRecord:(e,t)=>{if(!L)return!1;const o=ne(e);if(o===void 0)return!1;const n=ce(o);if(!n)return!1;const r={...n,...t},l=Ae(r);return He(o,l),ae.forEach(a=>a(e,r,"update")),!0},addRecord:(e,t)=>{const o="id"in e&&typeof e.id=="string"&&e.id.length>0?e.id:zt(),n={...e,id:o};if(L){const r=Ae(n);ve(r,t);const l=t??d.value.length-1;if(t!==void 0&&t<d.value.length-1){const a=Array.from(T.entries()).sort((f,v)=>v[0]-f[0]);for(const[f,v]of a)f>=l&&(T.delete(f),T.set(f+1,v))}T.set(l,o),ae.forEach(a=>a(o,n,"add"))}return o},removeRecord:e=>{const t=ne(e);if(t===void 0)return!1;const o=ce(t);Le(t),T.delete(t);const n=Array.from(T.entries()).sort((r,l)=>r[0]-l[0]);for(const[r,l]of n)r>t&&(T.delete(r),T.set(r-1,l));return o&&ae.forEach(r=>r(e,o,"remove")),!0},hasRecord:e=>ne(e)!==void 0,getSelectedRecordIds:()=>{const e=[];for(const t of b.value){const o=T.get(t);o&&e.push(o)}return e},selectRecords:e=>{for(const t of e){const o=ne(t);o!==void 0&&Be(o)}},deselectRecords:e=>{for(const t of e){const o=ne(t);o!==void 0&&Oe(o)}},getSelectedRecords:()=>{const e=[];for(const t of b.value){const o=ce(t);o&&e.push(o)}return e},onRecordChange:e=>{const t=(o,n,r)=>{e(o,n,r)};return ae.push(t),()=>{const o=ae.indexOf(t);o>=0&&ae.splice(o,1)}},setIdGenerator:e=>{zt=e},rowToRecord:ce,recordToRow:Ae,exportRecordsToJSON:()=>{const e=Jt();return JSON.stringify(e,null,2)},importRecordsFromJSON:e=>{try{const t=JSON.parse(e);if(!Array.isArray(t))throw new Error("JSON must be an array of records");for(const o of t){if(typeof o!="object"||o===null)throw new Error("Each record must be an object");if(!("id"in o)||typeof o.id!="string")throw new Error("Each record must have a string id field")}$t(t)}catch(t){throw new Error(`Invalid JSON: ${t instanceof Error?t.message:String(t)}`)}}}}const Re=Symbol("idGenerated");function et(){return crypto.randomUUID()}function Qt(s,i=et){return"id"in s&&typeof s.id=="string"&&s.id.length>0?s:{...s,id:i(),[Re]:!0}}function tt(s){return Re in s&&s[Re]===!0}function Yt(s){return typeof s=="string"&&s.length>0}function Zt(s,i){return s.find(c=>c.id===i)}function Xt(s,i){return s.findIndex(c=>c.id===i)}function qt(s){if(!tt(s))return s;const{id:i,...c}=s;return c}R.ID_GENERATED=Re,R.ensureId=Qt,R.findById=Zt,R.generateId=et,R.indexById=Xt,R.isCellConfig=ie,R.isValidId=Yt,R.isValidationError=De,R.isValidationErrorArray=jt,R.isValidationResult=Ut,R.stripGeneratedId=qt,R.useTable=_t,R.wasIdGenerated=tt,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(m,p){typeof exports=="object"&&typeof module<"u"?p(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],p):(m=typeof globalThis<"u"?globalThis:m||self,p(m.useTable={},m.Vue))})(this,(function(m,p){"use strict";function ce(){return crypto.randomUUID()}function S(l,C){l.textContent="",C!=null&&(C instanceof Node?l.appendChild(C):l.textContent=String(C))}function U(l){return l.childNodes.length===1&&l.firstChild instanceof HTMLElement?l.firstChild:l.textContent??""}function O(l){const C=document.createElement("th");return C.scope="col",C.textContent=l,C}function J(l,C,D){let c=D?.idGenerator??ce;const F=new Set,f=new Set,h=new Set,T=new Set,y=new Set,E=new Set;function L(){const e=l.tBodies;return e.length>0?e[0]:l.createTBody()}function v(){const e=[],o=l.tBodies;for(let n=0;n<o.length;n++){const s=o[n];for(let a=0;a<s.rows.length;a++)e.push(s.rows[a])}return e}function P(e,o,n){F.forEach(s=>s(e,o,n)),I()}function z(e,o,n){f.forEach(s=>s(e,o,n)),I()}function _(e,o,n,s){h.forEach(a=>a(e,o,n,s)),I()}function N(e,o,n,s){T.forEach(a=>a(e,o,n,s)),I()}function b(){const e=u.getHeaders();y.forEach(o=>o(e))}function I(){if(E.size>0){const e=u.getData();E.forEach(o=>o(e))}}function A(e){const o=[];for(let n=0;n<e.cells.length;n++)o.push(U(e.cells[n]));return o}const u={element:l,getCaption(){return l.caption},getTHead(){return l.tHead},getTFoot(){return l.tFoot},getTBodies(){return l.tBodies},getPrimaryTBody(){return L()},getBodyRows(){return v()},getRow(e){return v()[e]},getRowById(e){const o=v();for(const n of o)if(n.dataset.id===e)return n},getCell(e,o){const n=u.getRow(e);if(n)return n.cells[o]},getCellByRowId(e,o){const n=u.getRowById(e);if(n)return n.cells[o]},getHeaders(){const e=l.tHead;if(!e||e.rows.length===0)return[];const o=e.rows[0],n=[];for(let s=0;s<o.cells.length;s++)n.push(o.cells[s].textContent??"");return n},getHeader(e){return u.getHeaders()[e]},getData(){return v().map(A)},getRowData(e){const o=u.getRow(e);if(o)return A(o)},getRowDataById(e){const o=u.getRowById(e);if(o)return A(o)},getCellValue(e,o){const n=u.getCell(e,o);if(n)return U(n)},getColumnData(e){return v().map(n=>{const s=n.cells[e];return s?U(s):void 0})},getFooterData(){const e=l.tFoot;if(!(!e||e.rows.length===0))return A(e.rows[0])},getRowCount(){return v().length},getColumnCount(){const e=u.getHeaders();if(e.length>0)return e.length;const o=v();return o.length>0?o[0].cells.length:0},getRowId(e){return u.getRow(e)?.dataset.id},getRowIndex(e){const o=v();for(let n=0;n<o.length;n++)if(o[n].dataset.id===e)return n;return-1},getAllRowIds(){const e=v(),o=[];for(const n of e)n.dataset.id&&o.push(n.dataset.id);return o},createCaption(){return l.createCaption()},deleteCaption(){l.deleteCaption()},createTHead(){return l.createTHead()},deleteTHead(){l.deleteTHead(),b()},createTFoot(){return l.createTFoot()},deleteTFoot(){l.deleteTFoot()},createTBody(){return l.createTBody()},setHeaders(e){let o=l.tHead;for(o||(o=l.createTHead());o.rows.length>0;)o.deleteRow(0);const n=o.insertRow();for(const s of e)n.appendChild(O(s));b()},setHeader(e,o){const n=l.tHead;if(!n||n.rows.length===0)return;const s=n.rows[0].cells[e];s&&(s.textContent=o,b())},addHeader(e,o){let n=l.tHead;n||(n=l.createTHead(),n.insertRow()),n.rows.length===0&&n.insertRow();const s=n.rows[0],a=O(e);o===void 0||o>=s.cells.length?s.appendChild(a):s.insertBefore(a,s.cells[o]),b()},removeHeader(e){const o=l.tHead;if(!o||o.rows.length===0)return;const n=o.rows[0];e>=0&&e<n.cells.length&&(n.deleteCell(e),b())},addRow(e,o,n){const s=L(),a=o??s.rows.length,i=s.insertRow(a),g=n??c();i.dataset.id=g;for(const w of e){const B=i.insertCell();S(B,w)}return P([...e],a,g),i},removeRow(e){const o=v();if(e<0||e>=o.length)return;const n=o[e],s=A(n),a=n.dataset.id;return n.remove(),z(s,e,a),s},removeRowById(e){const o=u.getRowIndex(e);if(o!==-1)return u.removeRow(o)},updateRow(e,o){const n=u.getRow(e);if(!n)return;const s=A(n),a=n.dataset.id;for(let i=0;i<o.length;i++){let g=n.cells[i];g||(g=n.insertCell()),S(g,o[i])}for(;n.cells.length>o.length;)n.deleteCell(n.cells.length-1);_(e,s,[...o],a)},updateRowById(e,o){const n=u.getRowIndex(e);n!==-1&&u.updateRow(n,o)},moveRow(e,o){const n=v();if(e<0||e>=n.length||o<0||o>=n.length||e===o)return;const s=n[e],a=s.parentElement;if(o>e){const i=n[o];a.insertBefore(s,i.nextSibling)}else{const i=n[o];a.insertBefore(s,i)}I()},swapRows(e,o){const n=v();if(e<0||e>=n.length||o<0||o>=n.length||e===o)return;const s=n[e],a=n[o],i=s.parentElement,g=document.createElement("tr");i.insertBefore(g,s),i.insertBefore(s,a),i.insertBefore(a,g),g.remove(),I()},clearRows(){const e=l.tBodies;for(let o=0;o<e.length;o++){const n=e[o];for(;n.rows.length>0;)n.deleteRow(0)}I()},addColumn(e,o,n){u.addHeader(e,n);const s=v();for(const i of s){const g=i.insertCell(n??i.cells.length);S(g,o??"")}const a=l.tFoot;if(a&&a.rows.length>0){const i=a.rows[0],g=i.insertCell(n??i.cells.length);S(g,"")}I()},removeColumn(e){u.removeHeader(e);const o=v();for(const s of o)e>=0&&e<s.cells.length&&s.deleteCell(e);const n=l.tFoot;if(n&&n.rows.length>0){const s=n.rows[0];e>=0&&e<s.cells.length&&s.deleteCell(e)}I()},moveColumn(e,o){const n=u.getColumnCount();if(e<0||e>=n||o<0||o>=n||e===o)return;const s=w=>{if(e>=w.cells.length)return;const B=w.cells[e];o>=w.cells.length?w.appendChild(B):o>e?w.insertBefore(B,w.cells[o+1]):w.insertBefore(B,w.cells[o])},a=l.tHead;if(a)for(let w=0;w<a.rows.length;w++)s(a.rows[w]);const i=v();for(const w of i)s(w);const g=l.tFoot;if(g)for(let w=0;w<g.rows.length;w++)s(g.rows[w]);b(),I()},swapColumns(e,o){const n=u.getColumnCount();if(e<0||e>=n||o<0||o>=n||e===o)return;const s=w=>{if(e>=w.cells.length||o>=w.cells.length)return;const B=w.cells[e],K=w.cells[o],V=document.createElement("td");w.insertBefore(V,B),w.insertBefore(B,K),w.insertBefore(K,V),V.remove()},a=l.tHead;if(a)for(let w=0;w<a.rows.length;w++)s(a.rows[w]);const i=v();for(const w of i)s(w);const g=l.tFoot;if(g)for(let w=0;w<g.rows.length;w++)s(g.rows[w]);b(),I()},setColumnData(e,o){const n=v();for(let s=0;s<n.length&&s<o.length;s++){const a=n[s].cells[e];if(a){const i=U(a);S(a,o[s]),i!==o[s]&&N(s,e,i,o[s])}}},setCell(e,o,n){const s=u.getCell(e,o);if(!s)return;const a=U(s);S(s,n),N(e,o,a,n)},setCellByRowId(e,o,n){const s=u.getRowIndex(e);s!==-1&&u.setCell(s,o,n)},setCellRange(e,o,n){for(let s=0;s<n.length;s++){const a=n[s];for(let i=0;i<a.length;i++)u.setCell(e+s,o+i,a[i])}},setFooter(e){let o=l.tFoot;for(o||(o=l.createTFoot());o.rows.length>0;)o.deleteRow(0);const n=o.insertRow();for(const s of e){const a=n.insertCell();S(a,s)}},setFooterCell(e,o){const n=l.tFoot;if(!n||n.rows.length===0)return;const s=n.rows[0].cells[e];s&&S(s,o)},getFooterCell(e){const o=l.tFoot;if(!o||o.rows.length===0)return;const n=o.rows[0].cells[e];return n?U(n):void 0},clearFooter(){const e=l.tFoot;if(e)for(;e.rows.length>0;)e.deleteRow(0)},setCaption(e){const o=l.createCaption();o.textContent=e},getCaptionText(){return l.caption?.textContent??void 0},setData(e){u.clearRows();const o=L();for(const n of e){const s=o.insertRow();s.dataset.id=c();for(const a of n){const i=s.insertCell();S(i,a)}}I()},reset(){for(l.deleteCaption(),l.deleteTHead(),l.deleteTFoot();l.tBodies.length>0;)l.removeChild(l.tBodies[0]);b(),I()},sync(){const e=v();for(const o of e)o.dataset.id||(o.dataset.id=c())},setRecords(e,o){u.clearRows();const n=L();for(const s of e){const a=n.insertRow();a.dataset.id=s.id;for(const i of o){const g=a.insertCell(),w=typeof i=="function"?i(s):s[i];S(g,w)}}I()},getRecordData(e){return u.getRowDataById(e)},addRecord(e,o,n){const s="id"in e&&typeof e.id=="string"&&e.id.length>0?e.id:c(),a={...e,id:s},i=o.map(g=>typeof g=="function"?g(a):a[g]);return u.addRow(i,n,s),s},updateRecordRow(e,o){const n=u.getRowIndex(e);return n===-1?!1:(u.updateRow(n,o),!0)},removeRecord(e){return u.removeRowById(e)!==void 0},hasRecord(e){return u.getRowIndex(e)!==-1},setIdGenerator(e){c=e},generateId(){return c()},onRowAdd(e){return F.add(e),()=>F.delete(e)},onRowRemove(e){return f.add(e),()=>f.delete(e)},onRowUpdate(e){return h.add(e),()=>h.delete(e)},onCellChange(e){return T.add(e),()=>T.delete(e)},onHeaderChange(e){return y.add(e),()=>y.delete(e)},onDataChange(e){return E.add(e),()=>E.delete(e)},destroy(){F.clear(),f.clear(),h.clear(),T.clear(),y.clear(),E.clear()}};return D?.caption&&u.setCaption(D.caption),D?.headers&&u.setHeaders(D.headers),C&&u.setData(C),D?.footer&&u.setFooter(D.footer),u.sync(),u}function le(l,C,D){const c=J(l.value,C,D),F=p.ref(0),f=()=>{F.value++},h=p.ref(new Set),T=p.ref(new Set),y=p.ref(null),E=new Set,L=new Set,v=p.computed(()=>(F.value,c.element)),P=p.computed(()=>(F.value,c.getHeaders())),z=p.computed(()=>(F.value,c.getData())),_=p.computed(()=>(F.value,c.getRowCount())),N=p.computed(()=>(F.value,c.getColumnCount())),b=p.computed(()=>(F.value,c.getAllRowIds())),I=p.computed(()=>(F.value,c.getFooterData())),A=p.computed(()=>(F.value,c.getCaptionText())),u=()=>{E.forEach(t=>t(h.value,T.value))},e=()=>{L.forEach(t=>t(y.value))},o=(t,r)=>`${t},${r}`,n=c.onDataChange(()=>f()),s=c.onHeaderChange(()=>f()),a=t=>{if(t<0||t>=c.getRowCount())return;const r=new Set(h.value);r.add(t),h.value=r,u()},i=t=>{const r=new Set(h.value);r.delete(t),h.value=r,u()},g=t=>{h.value.has(t)?i(t):a(t)},w=()=>{const t=c.getRowCount(),r=new Set;for(let d=0;d<t;d++)r.add(d);h.value=r,u()},B=()=>{h.value=new Set,u()},K=(t,r)=>{const d=Math.min(t,r),R=Math.max(t,r),H=c.getRowCount(),j=new Set(h.value);for(let k=d;k<=R&&k<H;k++)k>=0&&j.add(k);h.value=j,u()},V=t=>h.value.has(t),$=()=>Array.from(h.value).sort((t,r)=>t-r),fe=()=>$().map(t=>c.getRowData(t)).filter(t=>t!==void 0),X=(t,r)=>{const d=o(t,r),R=new Set(T.value);R.add(d),T.value=R,u()},Y=(t,r)=>{const d=o(t,r),R=new Set(T.value);R.delete(d),T.value=R,u()},ge=(t,r)=>{const d=o(t,r);T.value.has(d)?Y(t,r):X(t,r)},Ce=(t,r)=>T.value.has(o(t,r)),q=()=>{h.value=new Set,T.value=new Set,u()},G=(t,r)=>{const d=c.getRowCount(),R=c.getColumnCount();if(t<0||t>=d||r<0||r>=R)return;y.value={row:t,column:r};const H=c.getCell(t,r);H&&(H.tabIndex=0,H.focus()),e()},Z=()=>{y.value=null,e()},Re=()=>y.value?{...y.value}:null,he=(t,r)=>{const d=y.value;return d!==null&&d.row===t&&d.column===r},x=()=>{const t=y.value;return!t||t.row<=0?!1:(G(t.row-1,t.column),!0)},ee=()=>{const t=y.value;if(!t)return!1;const r=c.getRowCount();return t.row>=r-1?!1:(G(t.row+1,t.column),!0)},te=()=>{const t=y.value;return!t||t.column<=0?!1:(G(t.row,t.column-1),!0)},oe=()=>{const t=y.value;if(!t)return!1;const r=c.getColumnCount();return t.column>=r-1?!1:(G(t.row,t.column+1),!0)},ne=()=>{const t=c.getRowCount(),r=c.getColumnCount();t>0&&r>0&&G(0,0)},re=()=>{const t=c.getRowCount(),r=c.getColumnCount();t>0&&r>0&&G(t-1,r-1)},ve=()=>{const t=c.element,r=d=>{const R=y.value;if(!R)return;let H=!1;switch(d.key){case"ArrowUp":H=x();break;case"ArrowDown":H=ee();break;case"ArrowLeft":H=te();break;case"ArrowRight":H=oe();break;case"Home":d.ctrlKey?ne():G(R.row,0),H=!0;break;case"End":if(d.ctrlKey)re();else{const j=c.getColumnCount();G(R.row,j-1)}H=!0;break;case"Enter":case" ":d.shiftKey?K(R.row,R.row):d.ctrlKey||d.metaKey?g(R.row):(B(),a(R.row)),H=!0;break;case"Escape":q(),H=!0;break;case"a":(d.ctrlKey||d.metaKey)&&(h.value.size===c.getRowCount()?B():w(),H=!0);break}H&&(d.preventDefault(),d.stopPropagation())};return t.addEventListener("keydown",r),()=>{t.removeEventListener("keydown",r)}},pe=(t,r)=>{c.setRecords(t,r),f()},ye=t=>c.getRecordData(t),me=(t,r,d)=>{const R=c.addRecord(t,r,d);return f(),R},Ie=(t,r)=>{const d=c.updateRecordRow(t,r);return d&&f(),d},He=t=>{const r=c.removeRecord(t);return r&&f(),r},De=t=>c.hasRecord(t),Fe=()=>$().map(r=>c.getRowId(r)).filter(r=>r!==void 0),Te=t=>{for(const r of t){const d=c.getRowIndex(r);d!==-1&&a(d)}},Be=t=>{for(const r of t){const d=c.getRowIndex(r);d!==-1&&i(d)}},Se=t=>{c.setHeaders(t),f()},Ee=(t,r)=>{c.setHeader(t,r),f()},be=(t,r)=>{c.addHeader(t,r),f()},Le=t=>{c.removeHeader(t),f()},Ge=(t,r,d)=>{const R=c.addRow(t,r,d);return f(),R},Ae=t=>{const r=c.removeRow(t);return r&&f(),r},Ue=t=>{const r=c.removeRowById(t);return r&&f(),r},Ke=(t,r)=>{c.updateRow(t,r),f()},Ve=(t,r)=>{c.updateRowById(t,r),f()},ke=(t,r)=>{c.moveRow(t,r),f()},Me=(t,r)=>{c.swapRows(t,r),f()},Ne=()=>{c.clearRows(),f()},je=(t,r,d)=>{c.addColumn(t,r,d),f()},Pe=t=>{c.removeColumn(t),f()},ze=(t,r)=>{c.moveColumn(t,r),f()},_e=(t,r)=>{c.swapColumns(t,r),f()},$e=(t,r)=>{c.setColumnData(t,r),f()},qe=(t,r)=>c.getCellValue(t,r),Oe=(t,r,d)=>{c.setCell(t,r,d),f()},Je=(t,r,d)=>{c.setCellByRowId(t,r,d),f()},Qe=(t,r,d)=>{c.setCellRange(t,r,d),f()},We=(t,r)=>c.getCell(t,r),Xe=t=>c.getRowData(t),Ye=t=>c.getRowDataById(t),Ze=t=>c.getRow(t),xe=t=>c.getRowById(t),et=t=>c.getRowId(t),tt=t=>c.getRowIndex(t),ot=t=>c.getColumnData(t),nt=t=>{c.setFooter(t),f()},rt=(t,r)=>{c.setFooterCell(t,r),f()},st=t=>c.getFooterCell(t),ct=()=>{c.clearFooter(),f()},lt=t=>{c.setCaption(t),f()},at=t=>{c.setData(t),f()},dt=()=>{c.reset(),q(),Z(),f()},ut=()=>{c.sync(),f()},it=t=>c.onRowAdd(t),wt=t=>c.onRowRemove(t),ft=t=>c.onRowUpdate(t),gt=t=>c.onCellChange(t),Ct=t=>c.onHeaderChange(t),Rt=t=>c.onDataChange(t),ht=t=>(E.add(t),()=>E.delete(t)),vt=t=>(L.add(t),()=>L.delete(t)),se=()=>{n(),s(),E.clear(),L.clear(),c.destroy()};return p.onUnmounted(()=>{se()}),{instance:c,element:v,headers:P,data:z,rowCount:_,columnCount:N,rowIds:b,footerData:I,captionText:A,version:F,selection:{rows:h,cells:T},focus:{cell:y},createCaption:()=>c.createCaption(),deleteCaption:()=>{c.deleteCaption(),f()},createTHead:()=>c.createTHead(),deleteTHead:()=>{c.deleteTHead(),f()},createTFoot:()=>c.createTFoot(),deleteTFoot:()=>{c.deleteTFoot(),f()},createTBody:()=>c.createTBody(),setHeaders:Se,setHeader:Ee,addHeader:be,removeHeader:Le,addRow:Ge,removeRow:Ae,removeRowById:Ue,updateRow:Ke,updateRowById:Ve,moveRow:ke,swapRows:Me,clearRows:Ne,addColumn:je,removeColumn:Pe,moveColumn:ze,swapColumns:_e,setColumnData:$e,getCell:qe,setCell:Oe,setCellByRowId:Je,setCellRange:Qe,getCellElement:We,getRowData:Xe,getRowDataById:Ye,getRowElement:Ze,getRowById:xe,getRowId:et,getRowIndex:tt,getColumnData:ot,setFooter:nt,setFooterCell:rt,getFooterCell:st,clearFooter:ct,setCaption:lt,setData:at,reset:dt,sync:ut,selectRow:a,deselectRow:i,toggleRowSelection:g,selectAllRows:w,deselectAllRows:B,selectRowRange:K,isRowSelected:V,getSelectedRowIndices:$,getSelectedRowData:fe,selectCell:X,deselectCell:Y,toggleCellSelection:ge,isCellSelected:Ce,clearSelection:q,focusCell:G,clearFocus:Z,getFocusedCell:Re,isCellFocused:he,moveFocusUp:x,moveFocusDown:ee,moveFocusLeft:te,moveFocusRight:oe,moveFocusToFirst:ne,moveFocusToLast:re,enableKeyboardNavigation:ve,setRecords:pe,getRecordData:ye,addRecord:me,updateRecordRow:Ie,removeRecord:He,hasRecord:De,getSelectedRecordIds:Fe,selectRecords:Te,deselectRecords:Be,setIdGenerator:t=>c.setIdGenerator(t),generateId:()=>c.generateId(),onRowAdd:it,onRowRemove:wt,onRowUpdate:ft,onCellChange:gt,onHeaderChange:Ct,onDataChange:Rt,onSelectionChange:ht,onFocusChange:vt,destroy:se}}const M=Symbol("idGenerated");function Q(){return crypto.randomUUID()}function ae(l,C=Q){return"id"in l&&typeof l.id=="string"&&l.id.length>0?l:{...l,id:C(),[M]:!0}}function W(l){return M in l&&l[M]===!0}function de(l){return typeof l=="string"&&l.length>0}function ue(l,C){return l.find(D=>D.id===C)}function ie(l,C){return l.findIndex(D=>D.id===C)}function we(l){if(!W(l))return l;const{id:C,...D}=l;return D}m.ID_GENERATED=M,m.createTable=J,m.ensureId=ae,m.findById=ue,m.generateId=Q,m.indexById=ie,m.isValidId=de,m.stripGeneratedId=we,m.useTable=le,m.wasIdGenerated=W,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mikestools/usetable",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Vue 3 composable for table operations",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -72,30 +72,30 @@
|
|
|
72
72
|
"prepublishOnly": "npm run check && npm run format && npm test && npm run show && npm run build"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
|
-
"@eslint/js": "^9.39.
|
|
76
|
-
"@mikestools/usetools": "^0.1.
|
|
75
|
+
"@eslint/js": "^9.39.2",
|
|
76
|
+
"@mikestools/usetools": "^0.1.21",
|
|
77
77
|
"@popperjs/core": "^2.11.8",
|
|
78
78
|
"@types/bootstrap": "^5.2.10",
|
|
79
|
-
"@types/node": "^25.0.
|
|
79
|
+
"@types/node": "^25.0.3",
|
|
80
80
|
"@vitejs/plugin-vue": "^6.0.3",
|
|
81
81
|
"@vitest/eslint-plugin": "^1.5.2",
|
|
82
82
|
"@vue/test-utils": "^2.4.6",
|
|
83
83
|
"bootstrap": "^5.3.8",
|
|
84
84
|
"bootstrap-icons": "^1.13.1",
|
|
85
|
-
"eslint": "^9.39.
|
|
85
|
+
"eslint": "^9.39.2",
|
|
86
86
|
"eslint-plugin-vue": "^10.6.2",
|
|
87
87
|
"globals": "^16.5.0",
|
|
88
88
|
"happy-dom": "^20.0.11",
|
|
89
89
|
"jiti": "^2.6.1",
|
|
90
|
-
"sass": "^1.
|
|
90
|
+
"sass": "^1.97.0",
|
|
91
91
|
"typescript": "^5.9.3",
|
|
92
|
-
"typescript-eslint": "^8.
|
|
93
|
-
"vite": "^7.
|
|
92
|
+
"typescript-eslint": "^8.50.0",
|
|
93
|
+
"vite": "^7.3.0",
|
|
94
94
|
"vite-plugin-dts": "^4.5.4",
|
|
95
95
|
"vite-plugin-singlefile": "^2.3.0",
|
|
96
96
|
"vite-svg-loader": "^5.1.0",
|
|
97
|
-
"vitest": "^4.0.
|
|
98
|
-
"vue": "^3.5.
|
|
97
|
+
"vitest": "^4.0.16",
|
|
98
|
+
"vue": "^3.5.26",
|
|
99
99
|
"vue-tsc": "^3.1.8"
|
|
100
100
|
}
|
|
101
101
|
}
|