@agile-team/mach-table-vue 0.19.0 → 0.23.0
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 +1 -1
- package/dist/MachTable-A3J2IU6F.cjs +1 -0
- package/dist/MachTable-JB3IUGBZ.js +1 -0
- package/dist/async.cjs +1 -2
- package/dist/async.js +1 -2
- package/dist/{chunk-HBEB7H4E.js → chunk-2YPTQYP3.js} +0 -1
- package/dist/{chunk-SUSVK2OW.js → chunk-AVPWFS7M.js} +1 -2
- package/dist/{chunk-MCLI6WUN.cjs → chunk-D3AAW636.cjs} +0 -1
- package/dist/{chunk-IZZT6PAH.js → chunk-FZLCBKUV.js} +0 -1
- package/dist/{chunk-P7PVLT5L.js → chunk-H37MDBNW.js} +1 -2
- package/dist/{chunk-PPNQWKVV.cjs → chunk-QHFBQ37M.cjs} +0 -1
- package/dist/{chunk-UST6E3TU.cjs → chunk-Z24LHO3W.cjs} +1 -2
- package/dist/{chunk-BW56NYGC.cjs → chunk-ZIBU265Z.cjs} +1 -2
- package/dist/editors.cjs +0 -1
- package/dist/editors.js +0 -1
- package/dist/index.cjs +1 -2
- package/dist/index.js +1 -2
- package/dist/ui.cjs +0 -1
- package/dist/ui.js +0 -1
- package/dist/worker.cjs +0 -1
- package/dist/worker.js +0 -1
- package/dist/workflows.cjs +1 -2
- package/dist/workflows.js +1 -2
- package/package.json +4 -3
- package/dist/MachTable-7H7Z4ACQ.cjs +0 -2
- package/dist/MachTable-7H7Z4ACQ.cjs.map +0 -1
- package/dist/MachTable-CIBYH7LC.js +0 -2
- package/dist/MachTable-CIBYH7LC.js.map +0 -1
- package/dist/async.cjs.map +0 -1
- package/dist/async.js.map +0 -1
- package/dist/chunk-BW56NYGC.cjs.map +0 -1
- package/dist/chunk-HBEB7H4E.js.map +0 -1
- package/dist/chunk-IZZT6PAH.js.map +0 -1
- package/dist/chunk-MCLI6WUN.cjs.map +0 -1
- package/dist/chunk-P7PVLT5L.js.map +0 -1
- package/dist/chunk-PPNQWKVV.cjs.map +0 -1
- package/dist/chunk-SUSVK2OW.js.map +0 -1
- package/dist/chunk-UST6E3TU.cjs.map +0 -1
- package/dist/editors.cjs.map +0 -1
- package/dist/editors.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/ui.cjs.map +0 -1
- package/dist/ui.js.map +0 -1
- package/dist/worker.cjs.map +0 -1
- package/dist/worker.js.map +0 -1
- package/dist/workflows.cjs.map +0 -1
- package/dist/workflows.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# @agile-team/mach-table-vue
|
|
6
6
|
|
|
7
|
-
Official Vue 3 adapter for MachTable 0.
|
|
7
|
+
Official Vue 3 adapter for MachTable 0.23. It provides a generic `<MachTable>`, native typed slots, dedicated app/route configuration, cohesive controllers, advanced-filter aware remote query, conflict-aware editing composables, persistent named views, optional and persistent column resizing, bounded random-access remote blocks, governed domain APIs, optional Worker processing, an optional standard toolbar, optional Element Plus editors, async boundaries, in-place renderer refresh and automatic lifecycle cleanup. `RobotGrid` remains a deprecated 0.x alias.
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkZIBU265Zcjs = require('./chunk-ZIBU265Z.cjs');require('./chunk-QHFBQ37M.cjs');exports.MachTable = _chunkZIBU265Zcjs.j; exports.RobotGrid = _chunkZIBU265Zcjs.k;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as a,k as b}from"./chunk-AVPWFS7M.js";import"./chunk-2YPTQYP3.js";export{a as MachTable,b as RobotGrid};
|
package/dist/async.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }var
|
|
2
|
-
//# sourceMappingURL=async.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }var _chunkZ24LHO3Wcjs = require('./chunk-Z24LHO3W.cjs');require('./chunk-QHFBQ37M.cjs');var _vue = require('vue');var p=()=>Promise.resolve().then(() => _interopRequireWildcard(require("./MachTable-A3J2IU6F.cjs"))).then(({MachTable:e})=>e);function t(e={}){return _vue.defineAsyncComponent.call(void 0, {loader:p,...e})}var c=t(),i= exports.AsyncMachTablePlugin =Object.freeze({install(e,n={}){let a=n.asyncComponentOptions?t(n.asyncComponentOptions):c;_chunkZ24LHO3Wcjs.a.call(void 0, e,a,n)}}),b= exports.default =i;exports.AsyncMachTable = c; exports.AsyncMachTablePlugin = i; exports.createAsyncMachTable = t; exports.default = b; exports.preloadMachTable = p;
|
package/dist/async.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{a as o}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=async.js.map
|
|
1
|
+
import{a as o}from"./chunk-H37MDBNW.js";import"./chunk-2YPTQYP3.js";import{defineAsyncComponent as r}from"vue";var p=()=>import("./MachTable-JB3IUGBZ.js").then(({MachTable:e})=>e);function t(e={}){return r({loader:p,...e})}var c=t(),i=Object.freeze({install(e,n={}){let a=n.asyncComponentOptions?t(n.asyncComponentOptions):c;o(e,a,n)}}),b=i;export{c as AsyncMachTable,i as AsyncMachTablePlugin,t as createAsyncMachTable,b as default,p as preloadMachTable};
|
|
@@ -1,2 +1 @@
|
|
|
1
1
|
import{defineMachTableConfig as d,mergeMachTableConfig as l,normalizeMachTableConfig as t,resolveMachTableGridOptions as s}from"@agile-team/mach-table";import{computed as b,inject as a,isRef as c,provide as r,shallowRef as i}from"vue";var f=Symbol("mach-table-defaults"),o=Symbol("mach-table-config"),T=t();function h(e){return typeof e=="function"?e():c(e)?e.value:e}function m(e){return i(t(e))}function M(e){let p=a(o,i(T)),n=b(()=>l(p.value,h(e)));return r(o,n),r(f,n.value.defaults),n}function y(e){M(()=>({defaults:typeof e=="function"?e():c(e)?e.value:e}))}function v(){let e=a(o,null);return e?e.value.defaults:a(f,{})}function O(){return a(o,i(T))}export{s as a,f as b,o as c,m as d,M as e,y as f,v as g,O as h};
|
|
2
|
-
//# sourceMappingURL=chunk-HBEB7H4E.js.map
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{a as v,h as V}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-SUSVK2OW.js.map
|
|
1
|
+
import{a as v,h as V}from"./chunk-2YPTQYP3.js";import{defineComponent as $,getCurrentInstance as j,h as _,onBeforeUnmount as F,onMounted as W,ref as Y,watch as q}from"vue";import{createGrid as K,EVENT_TYPES as B,GRID_OPTION_KEYS as A,GRID_OPTION_META as U}from"@agile-team/mach-table";import{h as b,render as h,renderSlot as H,getCurrentInstance as I,shallowReactive as x}from"vue";function T(t){if(t)return t;try{return I()?.appContext}catch{return}}function G(t,e,a,o){let n=b({setup:()=>()=>b(t,{...e})});return o&&(n.appContext=o),h(n,a),()=>h(null,a)}function D(t,e,a,o,r=!0){let i=b({name:"MachTableSlot",setup:()=>()=>H({default:t},"default",e())});o&&(i.appContext=o);let l=!1,u=()=>{l||h(i,a)};return r?queueMicrotask(u):u(),()=>{l=!0,h(null,a)}}function Z(t,e){let a=T(e?.appContext);return o=>{let r=document.createElement("div");r.className="mach-cell-vue",r.style.width="100%";let n=x({...o}),i=G(t,n,r,a),l=!1;return{el:r,refresh:u=>(Object.assign(n,u),!0),destroy:()=>{l||(l=!0,window.setTimeout(i,0))}}}}function ee(t,e){let a=T(e?.appContext);return o=>{let r=document.createElement("div");r.style.height="100%";let n=G(t,o,r,a),i=!1;return{el:r,destroy:()=>{i||(i=!0,n())}}}}function M(t,e){let a=T(e?.appContext);return o=>{let r=document.createElement("div");r.className="mach-cell-vue mach-cell-vue--slot",r.style.width="100%";let n=x({...o}),i=D(t,()=>n,r,a);return{el:r,refresh:l=>(Object.assign(n,l),!0),destroy:i}}}function N(t,e){let a=T(e?.appContext);return o=>{let r=document.createElement("div");r.className="mach-header-vue-slot";let n=D(t,()=>o,r,a);return{el:r,destroy:n}}}function w(t,e){let a=T(e?.appContext);return o=>{let r=x({value:o.value}),n=document.createElement("div");n.className="mach-cell-vue mach-cell-vue--editor";let l=D(t,()=>({...o,value:r.value,setValue:u=>{r.value=u},commit:()=>o.api.stopEditing(!1),cancel:()=>o.api.stopEditing(!0)}),n,a,!1);return{el:n,getValue:()=>r.value,focus:()=>{n.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])")?.focus()},destroy:l}}}function S(t,e){let a=T(e?.appContext);return o=>{let r=document.createElement("div");r.className="mach-detail-vue-slot",r.style.height="100%";let n=D(t,()=>o,r,a);return{el:r,destroy:n}}}function C(t,e){let a=T(e?.appContext);return()=>{let o=document.createElement("div");o.className="mach-overlay-vue-slot";let r=D(t,()=>({}),o,a);return{el:o,destroy:r}}}function O(t,e,a){return t[`${e}-${a}`]??t[`${e}-${a.replace(/[.\s]+/g,"-")}`]}function P(t,e,a){return t.map((o,r)=>{if(Array.isArray(o.children)){let y=o;return{...y,children:P(y.children,e,a)}}let n=o,i=n.colId??n.field??`col_${r}`,l=O(e,"cell",i)??(i==="op"?e.actions:void 0)??e.cell,u=O(e,"header",i)??e.header,g=O(e,"editor",i)??e.editor;return{...n,...l?{cellRenderer:M(l,{appContext:a})}:{},...u?{headerComponent:N(u,{appContext:a})}:{},...g?{cellEditor:w(g,{appContext:a})}:{}}})}function ne(t,e,a){let o=t.columnDefs?P(t.columnDefs,e,a):t.columnDefs;return{...t,columnDefs:o,...e.detail&&!t.detailRowRenderer?{detailRowRenderer:S(e.detail,{appContext:a})}:{},...e.loading?{overlayLoadingTemplate:C(e.loading,{appContext:a})}:{},...e.empty?{overlayNoRowsTemplate:C(e.empty,{appContext:a})}:{}}}function L(t,e){let a,o,r=t.detail?S(t.detail,{appContext:e}):void 0,n=t.loading?C(t.loading,{appContext:e}):void 0,i=t.empty?C(t.empty,{appContext:e}):void 0;return l=>(l.columnDefs!==a&&(a=l.columnDefs,o=l.columnDefs?P(l.columnDefs,t,e):l.columnDefs),{...l,columnDefs:o,...r&&!l.detailRowRenderer?{detailRowRenderer:r}:{},...n?{overlayLoadingTemplate:n}:{},...i?{overlayNoRowsTemplate:i}:{}})}var k=A.filter(t=>!["className","ariaLabel","ariaLabelledBy","ariaDescribedBy"].includes(t)),f={};for(let t of k){let e=U[t].kind,a=e==="boolean"?Boolean:e==="number"?Number:e==="array"?Array:e==="function"?Function:e==="boolean-object"?[Boolean,Object]:e==="object"?Object:e==="string"?String:void 0;f[t]={type:a,default:void 0}}f.className={type:String,default:void 0};f.gridClassName={type:String,default:void 0};f.gridAriaLabel={type:String,default:void 0};f.gridAriaLabelledBy={type:String,default:void 0};f.gridAriaDescribedBy={type:String,default:void 0};f.preset={type:[String,Array,Boolean],default:void 0};function z(t){return"on"+t.charAt(0).toUpperCase()+t.slice(1)}var J=$({name:"MachTable",inheritAttrs:!1,props:f,emits:[...B],setup(t,{expose:e,attrs:a,emit:o,slots:r}){let n=t,i=Y(null),l=null,u=V(),g=L(r,j()?.appContext),y=null,E=new Set,R=()=>{let d={};for(let s of k){let m=n[s];m!==void 0&&(d[s]=m)}n.gridClassName!==void 0&&(d.className=n.gridClassName),n.gridAriaLabel!==void 0&&(d.ariaLabel=n.gridAriaLabel),n.gridAriaLabelledBy!==void 0&&(d.ariaLabelledBy=n.gridAriaLabelledBy),n.gridAriaDescribedBy!==void 0&&(d.ariaDescribedBy=n.gridAriaDescribedBy);let c=v(u.value,n.preset,d,s=>{let m=`${s.code}:${s.preset??""}`;E.has(m)||(E.add(m),u.value.onConfigWarning?u.value.onConfigWarning(s):console.warn(s.message))}),p=g(c.options);return y={options:p,explain:s=>s==="columnDefs"&&p.columnDefs!==c.options.columnDefs?{key:s,value:p.columnDefs,source:"Vue slots",layers:[...c.explain(s).layers,{name:"Vue slots",value:p.columnDefs}]}:c.explain(s)},y.options};return W(()=>{if(!i.value)return;let d=R();for(let c of B){let p=z(c),s=d[p];d[p]=m=>{typeof s=="function"&&s(m),o(c,m)}}l=K(i.value,d)}),F(()=>{l?.destroy(),l=null}),q(()=>{let d=R();return[...A.map(c=>d[c])]},(d,c)=>{if(!l)return;let p={};d.forEach((s,m)=>{Object.is(s,c[m])||(p[A[m]]=s)}),Object.keys(p).length>0&&l.updateOptions(p)}),e({getApi:()=>l,getResolvedConfig:()=>y?.options??R(),explainOption:d=>(y??v(u.value,n.preset,{})).explain(d)}),()=>_("div",{...a,ref:i,class:["mach-vue-host",n.className,a.class]})}}),Q=J,ue=Q;export{Z as a,ee as b,M as c,N as d,w as e,S as f,C as g,ne as h,L as i,Q as j,ue as k};
|
|
@@ -1,2 +1 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _vue = require('vue');function _(){let a=_vue.ref.call(void 0, null),l=_vue.shallowRef.call(void 0, null),g=_vue.shallowRef.call(void 0, !1),o=0;return _vue.watch.call(void 0, a,s=>{let p=++o;if(s&&typeof s.getApi=="function"){l.value=s.getApi(),g.value=!1;let d=l.value;d&&d.whenReady().then(()=>{o===p&&l.value===d&&!d.isDestroyed()&&(g.value=!0)})}else l.value=null,g.value=!1},{flush:"post"}),_vue.onScopeDispose.call(void 0, ()=>{o++,a.value=null,l.value=null,g.value=!1}),{ref:a,api:l,ready:g}}var _machtable = require('@agile-team/mach-table');function ae(a,l={}){let g=_vue.shallowRef.call(void 0, []),o=_vue.ref.call(void 0, []),s=_vue.ref.call(void 0, !1),p=_vue.shallowRef.call(void 0, null),d=_vue.shallowRef.call(void 0, null),b=_vue.computed.call(void 0, ()=>o.value.length>0),M=_vue.computed.call(void 0, ()=>[..._nullishCoalesce(_optionalChain([d, 'access', _2 => _2.value, 'optionalAccess', _3 => _3.failures]), () => ([])),..._nullishCoalesce(_optionalChain([d, 'access', _4 => _4.value, 'optionalAccess', _5 => _5.conflicts]), () => ([]))]),D=_vue.computed.call(void 0, ()=>[...new Set(M.value.map(r=>r.rowId))]),S=null,m=()=>{let r=a.api.value;if(!r||r.isDestroyed()){o.value=[],g.value=[];return}o.value=r.getDirtyRowIds(),g.value=r.getChanges()};_vue.watch.call(void 0, a.api,r=>{_optionalChain([S, 'optionalCall', _6 => _6()]),S=null,m(),!(!r||r.isDestroyed())&&(S=r.addEventListener("dirtyStateChanged",m))},{immediate:!0});let y=async(r,c)=>{let v=a.api.value;if(!v||v.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(s.value)throw new Error("[MachTable] A save operation is already in progress.");s.value=!0,p.value=null,d.value=null;try{let f=await v.saveChangesDetailed(r,c);return d.value=f,m(),_optionalChain([l, 'access', _7 => _7.onSaveSuccess, 'optionalCall', _8 => _8(f.saved)]),_optionalChain([l, 'access', _9 => _9.onSaveResult, 'optionalCall', _10 => _10(f)]),f}catch(f){throw p.value=f,_optionalChain([l, 'access', _11 => _11.onSaveError, 'optionalCall', _12 => _12(f)]),f}finally{s.value=!1}},T=async(r,c)=>(await y(r,c)).saved,n=()=>{d.value=null},Q=(r,c)=>{let v=d.value,f=_optionalChain([v, 'optionalAccess', _13 => _13.conflicts, 'access', _14 => _14.find, 'call', _15 => _15(C=>C.rowId===r)]),h=a.api.value;return!v||!f||!h||!_machtable.resolveSaveConflict.call(void 0, h,f,c)?!1:(d.value={...v,failures:v.failures,conflicts:v.conflicts.filter(C=>C.rowId!==r)},m(),!0)},z=r=>{let c=_nullishCoalesce(_optionalChain([a, 'access', _16 => _16.api, 'access', _17 => _17.value, 'optionalAccess', _18 => _18.rollbackChanges, 'call', _19 => _19(r)]), () => (!1));return m(),c},E=r=>{_optionalChain([a, 'access', _20 => _20.api, 'access', _21 => _21.value, 'optionalAccess', _22 => _22.markChangesSaved, 'call', _23 => _23(r)]),m()},w=(r,c,v=!1)=>{let f=a.api.value,h=_optionalChain([f, 'optionalAccess', _24 => _24.getNodeById, 'call', _25 => _25(r)]);return!f||!h||h.rowIndex<0?!1:(f.scrollToIndex(h.rowIndex,"middle"),c&&v?f.startEditingCell({rowIndex:h.rowIndex,colId:c}):!0)},U=r=>{if(!b.value)return;let c=_nullishCoalesce(l.beforeUnloadMessage, () => ("\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002"));return r.preventDefault(),r.returnValue=c,c};return l.guardBeforeUnload&&typeof window<"u"&&window.addEventListener("beforeunload",U),_vue.onScopeDispose.call(void 0, ()=>{_optionalChain([S, 'optionalCall', _26 => _26()]),S=null,l.guardBeforeUnload&&typeof window<"u"&&window.removeEventListener("beforeunload",U)}),{changes:g,dirtyRowIds:o,dirty:b,saving:s,saveError:p,lastSaveResult:d,saveIssues:M,failedRowIds:D,save:T,saveDetailed:y,clearSaveIssues:n,resolveConflict:Q,rollback:z,markSaved:E,reveal:w,refresh:m}}function re(a){return typeof a=="function"?a():_vue.isRef.call(void 0, a)?a.value:a}function $(a,l){return typeof a=="number"&&Number.isFinite(a)&&a>0?Math.floor(a):l}function Pe(a){return(a instanceof DOMException||typeof a=="object"&&a!=null&&"name"in a)&&a.name==="AbortError"}function oe(a){let l=_vue.shallowRef.call(void 0, []),g=_vue.ref.call(void 0, !1),o=_vue.shallowRef.call(void 0, null),s=_vue.ref.call(void 0, $(a.initialPage,1)),p=_vue.ref.call(void 0, $(a.pageSize,20)),d=_vue.ref.call(void 0, 0),b=_vue.shallowRef.call(void 0, []),M=_vue.shallowRef.call(void 0, {}),D=_vue.shallowRef.call(void 0, null),S=_vue.ref.call(void 0, []),m=_vue.shallowRef.call(void 0, []),y=new Set,T=new Set,n=new Map,Q=_nullishCoalesce(a.quickFilterText, () => (_vue.ref.call(void 0, null))),z=_nullishCoalesce(a.selectionScope, () => ("preserve")),E=a.mode!=="manual",w=_vue.ref.call(void 0, !1),U=_vue.ref.call(void 0, 0),r=[...new Set((_nullishCoalesce(a.pageSizeOptions, () => ([10,20,50,100]))).map(e=>$(e,0)).filter(Boolean))];r.includes(p.value)||r.push(p.value),r.sort((e,t)=>e-t);let c=null,v=null,f=0,h=null,C=!1,A=!1,B=!1,R=e=>{let t=typeof a.rowKey=="function"?a.rowKey(e):_machtable.getByPath.call(void 0, e,a.rowKey);if(t==null||String(t).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(a.rowKey)}" returned an empty value.`);return String(t)},P=()=>{B=!0,S.value=w.value?[]:[...y],B=!1;let e=w.value?[...n.keys()]:[...y];m.value=e.flatMap(t=>{let i=n.get(t);return i===void 0||T.has(t)?[]:[i]}),U.value++},L=e=>w.value?!T.has(e):y.has(e),F=()=>{if(!c||c.isDestroyed())return;let e=l.value.filter(t=>L(R(t)));A=!0;try{c.setSelection(e,!0)}finally{A=!1}},W=()=>{f++,_optionalChain([v, 'optionalAccess', _27 => _27.abort, 'call', _28 => _28()]),v=null,h!=null&&clearTimeout(h),h=null,g.value=!1},X=(e,t)=>e.signal.aborted||t!==f,ie=e=>{if(!e||!Array.isArray(e.rows)||!Number.isFinite(e.total)||e.total<0)throw new TypeError("[MachTable] Remote request must resolve to { rows: TData[], total: non-negative number }.")},se=async(e,t,i)=>{if(X(t,i))return;ie(e);let u=[...e.rows];for(let I of u)R(I);l.value=u,d.value=Math.floor(e.total);for(let I of l.value){let V=R(I);L(V)?n.set(V,I):n.delete(V)}P(),_optionalChain([a, 'access', _29 => _29.onSuccess, 'optionalCall', _30 => _30(e)]),await _vue.nextTick.call(void 0, ),F()},ue=(e,t,i)=>{X(t,i)||Pe(e)||(o.value=_nullishCoalesce(e, () => (new Error)),_optionalChain([a, 'access', _31 => _31.onError, 'optionalCall', _32 => _32(o.value)]))},k=async()=>{h!=null&&clearTimeout(h),h=null,_optionalChain([v, 'optionalAccess', _33 => _33.abort, 'call', _34 => _34()]);let e=new AbortController;v=e;let t=++f;g.value=!0,o.value=null,a.keepPreviousData===!1&&(l.value=[]);try{let i=await a.request({page:s.value,pageSize:p.value,query:re(a.query),sortModel:b.value.map(u=>({...u})),filterModel:{...M.value},advancedFilterModel:_machtable.normalizeAdvancedFilterModel.call(void 0, D.value),quickFilterText:Q.value,signal:e.signal});await se(i,e,t)}catch(i){ue(i,e,t)}finally{t===f&&(g.value=!1,v===e&&(v=null))}},K=e=>{e&&(s.value=1),h!=null&&clearTimeout(h),v&&(f++,v.abort(),v=null,g.value=!1);let t=Math.max(0,_nullishCoalesce(a.debounceMs, () => (0)));if(t===0){k();return}h=setTimeout(()=>{k()},t)},de=e=>{c=e.api,_vue.nextTick.call(void 0, F)},ce=e=>{C||e.page===s.value&&e.pageSize===p.value||(s.value=e.page,p.value=e.pageSize,E&&k())},fe=e=>{C||(b.value=e.sortModel.map(t=>({...t})),E?K(!0):s.value=1)},ve=e=>{C||(M.value={...e.filterModel},D.value=_machtable.normalizeAdvancedFilterModel.call(void 0, e.advancedFilterModel),a.clearSelectionOnQueryChange!==!1&&q(),E?K(!0):s.value=1)},ge=e=>{if(A)return;let t=new Set(l.value.map(R)),i=new Set(e.selectedRows.map(R));if(w.value){for(let u of t)i.has(u)?T.delete(u):(T.add(u),n.delete(u));for(let u of e.selectedRows)n.set(R(u),u);P();return}if(z==="page")y.clear(),n.clear();else for(let u of t)y.delete(u),n.delete(u);for(let u of e.selectedRows){let I=R(u);y.add(I),n.set(I,u)}P()},Y=_vue.computed.call(void 0, ()=>({rowData:l.value,loading:g.value,rowKey:R,manualSorting:!0,manualFiltering:!0,advancedFilterModel:D.value,quickFilterText:Q.value,error:o.value,overlayErrorTemplate:o.value?()=>_nullishCoalesce(_optionalChain([a, 'access', _35 => _35.errorOverlay, 'optionalCall', _36 => _36({error:o.value,retry:k})]), () => ("Remote request failed. Please retry.")):void 0,overlayNoRowsTemplate:a.emptyOverlay,pagination:{mode:"server",page:s.value,pageSize:p.value,pageSizeOptions:r,total:d.value,showTotal:!0,showPageSizeSelector:!0},onGridReady:de,onPaginationChanged:ce,onSortChanged:fe,onFilterChanged:ve,onSelectionChanged:ge})),ye=async(e={})=>{e.resetPage&&(s.value=1),await k()},pe=async()=>{s.value=1,b.value=[],M.value={},D.value=null,q(),C=!0;try{_optionalChain([c, 'optionalAccess', _37 => _37.setSortModel, 'call', _38 => _38(null)]),_optionalChain([c, 'optionalAccess', _39 => _39.setFilterModel, 'call', _40 => _40(null)]),_optionalChain([c, 'optionalAccess', _41 => _41.setAdvancedFilterModel, 'call', _42 => _42(null)])}finally{C=!1}await k()},q=()=>{w.value=!1,y.clear(),T.clear(),n.clear(),P(),A=!0;try{_optionalChain([c, 'optionalAccess', _43 => _43.deselectAll, 'call', _44 => _44()])}finally{A=!1}},he=()=>{w.value=!0,y.clear(),T.clear(),n.clear();for(let e of l.value)n.set(R(e),e);P(),F()},Te=e=>{y.clear(),T.clear(),n.clear(),w.value=e.mode==="allMatching";let t=e.mode==="allMatching"?e.excludedKeys:e.selectedKeys;for(let i of t.map(String))e.mode==="allMatching"?T.add(i):y.add(i);for(let i of l.value){let u=R(i);L(u)&&n.set(u,i)}P(),F()},me=_vue.computed.call(void 0, ()=>(U.value,w.value?{mode:"allMatching",excludedKeys:[...T]}:{mode:"explicit",selectedKeys:[...y]}));return _vue.watch.call(void 0, ()=>re(a.query),()=>{a.clearSelectionOnQueryChange!==!1&&q(),E?K(!0):s.value=1},{deep:!0,immediate:E&&a.immediate!==!1}),_vue.watch.call(void 0, Q,()=>{a.clearSelectionOnQueryChange!==!1&&q(),E?K(!0):s.value=1}),_vue.watch.call(void 0, S,e=>{if(B)return;w.value=!1,T.clear();let t=new Set(e.map(String));y.clear();for(let i of t)y.add(i);for(let i of[...n.keys()])t.has(i)||n.delete(i);for(let i of l.value){let u=R(i);t.has(u)&&n.set(u,i)}F(),P()},{deep:!0,flush:"sync"}),_vue.onScopeDispose.call(void 0, ()=>{W(),c=null}),{rows:l,loading:g,error:o,page:s,pageSize:p,total:d,sortModel:b,filterModel:M,advancedFilterModel:D,selectedKeys:S,selectedRows:m,selectionState:me,gridProps:Y,bindings:Y,reload:ye,retry:k,reset:pe,abort:W,clearSelection:q,selectAllMatching:he,applySelectionState:Te}}function $e(a={}){let l=_(),g=_vue.ref.call(void 0, _nullishCoalesce(a.initialSearch, () => (""))),o=a.query?oe({...a.query,quickFilterText:_nullishCoalesce(a.query.quickFilterText, () => (_vue.computed.call(void 0, ()=>g.value||null)))}):null,s=ae(l,a.editing),p=_vue.shallowRef.call(void 0, []),d=null,b=()=>{p.value=_nullishCoalesce(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _45 => _45.selectedRows, 'access', _46 => _46.value]), () => (_optionalChain([l, 'access', _47 => _47.api, 'access', _48 => _48.value, 'optionalAccess', _49 => _49.getSelectedRows, 'call', _50 => _50()]))), () => ([]))};_vue.watch.call(void 0, l.api,n=>{_optionalChain([d, 'optionalCall', _51 => _51()]),d=null,n&&!n.isDestroyed()&&(d=n.addEventListener("selectionChanged",b)),b()},{immediate:!0}),o&&_vue.watch.call(void 0, o.selectedRows,b,{deep:!1});let M=async()=>{if(o)await o.reload();else{let n=l.api.value;_optionalChain([n, 'optionalAccess', _52 => _52.isInfinite, 'call', _53 => _53()])?await n.reload():_optionalChain([n, 'optionalAccess', _54 => _54.refreshCells, 'call', _55 => _55()])}},D=_machtable.createMachTableCommands.call(void 0, {getApi:()=>l.api.value,reload:M}),S=_vue.computed.call(void 0, ()=>_nullishCoalesce(_optionalChain([o, 'optionalAccess', _56 => _56.bindings, 'access', _57 => _57.value]), () => ({}))),m=_vue.computed.call(void 0, ()=>{if(!o)return p.value.length;let n=o.selectionState.value;return n.mode==="allMatching"?Math.max(0,o.total.value-n.excludedKeys.length):n.selectedKeys.length}),y=_vue.computed.call(void 0, ()=>_optionalChain([o, 'optionalAccess', _58 => _58.loading, 'access', _59 => _59.value])===!0||s.saving.value),T=_vue.computed.call(void 0, ()=>_nullishCoalesce(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _60 => _60.error, 'access', _61 => _61.value]), () => (s.saveError.value)), () => (null)));return _vue.watch.call(void 0, g,n=>{o||D.search(n||null)}),_vue.onScopeDispose.call(void 0, ()=>{_optionalChain([d, 'optionalCall', _62 => _62()]),d=null}),{table:l,query:o,editing:s,bindings:S,search:g,selectedRows:p,selectedCount:m,busy:y,error:T,commands:D,reload:M}}exports.a = _; exports.b = ae; exports.c = oe; exports.d = $e;
|
|
2
|
-
//# sourceMappingURL=chunk-MCLI6WUN.cjs.map
|
|
@@ -1,2 +1 @@
|
|
|
1
1
|
import{onScopeDispose as be,ref as Se,shallowRef as Z,watch as we}from"vue";function _(){let a=Se(null),l=Z(null),g=Z(!1),o=0;return we(a,s=>{let p=++o;if(s&&typeof s.getApi=="function"){l.value=s.getApi(),g.value=!1;let d=l.value;d&&d.whenReady().then(()=>{o===p&&l.value===d&&!d.isDestroyed()&&(g.value=!0)})}else l.value=null,g.value=!1},{flush:"post"}),be(()=>{o++,a.value=null,l.value=null,g.value=!1}),{ref:a,api:l,ready:g}}import{computed as H,onScopeDispose as Re,ref as ee,shallowRef as N,watch as Me}from"vue";import{resolveSaveConflict as De}from"@agile-team/mach-table";function ae(a,l={}){let g=N([]),o=ee([]),s=ee(!1),p=N(null),d=N(null),b=H(()=>o.value.length>0),M=H(()=>[...d.value?.failures??[],...d.value?.conflicts??[]]),D=H(()=>[...new Set(M.value.map(r=>r.rowId))]),S=null,m=()=>{let r=a.api.value;if(!r||r.isDestroyed()){o.value=[],g.value=[];return}o.value=r.getDirtyRowIds(),g.value=r.getChanges()};Me(a.api,r=>{S?.(),S=null,m(),!(!r||r.isDestroyed())&&(S=r.addEventListener("dirtyStateChanged",m))},{immediate:!0});let y=async(r,c)=>{let v=a.api.value;if(!v||v.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(s.value)throw new Error("[MachTable] A save operation is already in progress.");s.value=!0,p.value=null,d.value=null;try{let f=await v.saveChangesDetailed(r,c);return d.value=f,m(),l.onSaveSuccess?.(f.saved),l.onSaveResult?.(f),f}catch(f){throw p.value=f,l.onSaveError?.(f),f}finally{s.value=!1}},T=async(r,c)=>(await y(r,c)).saved,n=()=>{d.value=null},Q=(r,c)=>{let v=d.value,f=v?.conflicts.find(C=>C.rowId===r),h=a.api.value;return!v||!f||!h||!De(h,f,c)?!1:(d.value={...v,failures:v.failures,conflicts:v.conflicts.filter(C=>C.rowId!==r)},m(),!0)},z=r=>{let c=a.api.value?.rollbackChanges(r)??!1;return m(),c},E=r=>{a.api.value?.markChangesSaved(r),m()},w=(r,c,v=!1)=>{let f=a.api.value,h=f?.getNodeById(r);return!f||!h||h.rowIndex<0?!1:(f.scrollToIndex(h.rowIndex,"middle"),c&&v?f.startEditingCell({rowIndex:h.rowIndex,colId:c}):!0)},U=r=>{if(!b.value)return;let c=l.beforeUnloadMessage??"\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002";return r.preventDefault(),r.returnValue=c,c};return l.guardBeforeUnload&&typeof window<"u"&&window.addEventListener("beforeunload",U),Re(()=>{S?.(),S=null,l.guardBeforeUnload&&typeof window<"u"&&window.removeEventListener("beforeunload",U)}),{changes:g,dirtyRowIds:o,dirty:b,saving:s,saveError:p,lastSaveResult:d,saveIssues:M,failedRowIds:D,save:T,saveDetailed:y,clearSaveIssues:n,resolveConflict:Q,rollback:z,markSaved:E,reveal:w,refresh:m}}import{computed as te,isRef as Ce,nextTick as le,onScopeDispose as Ee,ref as x,shallowRef as O,watch as j}from"vue";import{getByPath as xe,normalizeAdvancedFilterModel as ne}from"@agile-team/mach-table";function re(a){return typeof a=="function"?a():Ce(a)?a.value:a}function $(a,l){return typeof a=="number"&&Number.isFinite(a)&&a>0?Math.floor(a):l}function Pe(a){return(a instanceof DOMException||typeof a=="object"&&a!=null&&"name"in a)&&a.name==="AbortError"}function oe(a){let l=O([]),g=x(!1),o=O(null),s=x($(a.initialPage,1)),p=x($(a.pageSize,20)),d=x(0),b=O([]),M=O({}),D=O(null),S=x([]),m=O([]),y=new Set,T=new Set,n=new Map,Q=a.quickFilterText??x(null),z=a.selectionScope??"preserve",E=a.mode!=="manual",w=x(!1),U=x(0),r=[...new Set((a.pageSizeOptions??[10,20,50,100]).map(e=>$(e,0)).filter(Boolean))];r.includes(p.value)||r.push(p.value),r.sort((e,t)=>e-t);let c=null,v=null,f=0,h=null,C=!1,A=!1,B=!1,R=e=>{let t=typeof a.rowKey=="function"?a.rowKey(e):xe(e,a.rowKey);if(t==null||String(t).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(a.rowKey)}" returned an empty value.`);return String(t)},P=()=>{B=!0,S.value=w.value?[]:[...y],B=!1;let e=w.value?[...n.keys()]:[...y];m.value=e.flatMap(t=>{let i=n.get(t);return i===void 0||T.has(t)?[]:[i]}),U.value++},L=e=>w.value?!T.has(e):y.has(e),F=()=>{if(!c||c.isDestroyed())return;let e=l.value.filter(t=>L(R(t)));A=!0;try{c.setSelection(e,!0)}finally{A=!1}},W=()=>{f++,v?.abort(),v=null,h!=null&&clearTimeout(h),h=null,g.value=!1},X=(e,t)=>e.signal.aborted||t!==f,ie=e=>{if(!e||!Array.isArray(e.rows)||!Number.isFinite(e.total)||e.total<0)throw new TypeError("[MachTable] Remote request must resolve to { rows: TData[], total: non-negative number }.")},se=async(e,t,i)=>{if(X(t,i))return;ie(e);let u=[...e.rows];for(let I of u)R(I);l.value=u,d.value=Math.floor(e.total);for(let I of l.value){let V=R(I);L(V)?n.set(V,I):n.delete(V)}P(),a.onSuccess?.(e),await le(),F()},ue=(e,t,i)=>{X(t,i)||Pe(e)||(o.value=e??new Error,a.onError?.(o.value))},k=async()=>{h!=null&&clearTimeout(h),h=null,v?.abort();let e=new AbortController;v=e;let t=++f;g.value=!0,o.value=null,a.keepPreviousData===!1&&(l.value=[]);try{let i=await a.request({page:s.value,pageSize:p.value,query:re(a.query),sortModel:b.value.map(u=>({...u})),filterModel:{...M.value},advancedFilterModel:ne(D.value),quickFilterText:Q.value,signal:e.signal});await se(i,e,t)}catch(i){ue(i,e,t)}finally{t===f&&(g.value=!1,v===e&&(v=null))}},K=e=>{e&&(s.value=1),h!=null&&clearTimeout(h),v&&(f++,v.abort(),v=null,g.value=!1);let t=Math.max(0,a.debounceMs??0);if(t===0){k();return}h=setTimeout(()=>{k()},t)},de=e=>{c=e.api,le(F)},ce=e=>{C||e.page===s.value&&e.pageSize===p.value||(s.value=e.page,p.value=e.pageSize,E&&k())},fe=e=>{C||(b.value=e.sortModel.map(t=>({...t})),E?K(!0):s.value=1)},ve=e=>{C||(M.value={...e.filterModel},D.value=ne(e.advancedFilterModel),a.clearSelectionOnQueryChange!==!1&&q(),E?K(!0):s.value=1)},ge=e=>{if(A)return;let t=new Set(l.value.map(R)),i=new Set(e.selectedRows.map(R));if(w.value){for(let u of t)i.has(u)?T.delete(u):(T.add(u),n.delete(u));for(let u of e.selectedRows)n.set(R(u),u);P();return}if(z==="page")y.clear(),n.clear();else for(let u of t)y.delete(u),n.delete(u);for(let u of e.selectedRows){let I=R(u);y.add(I),n.set(I,u)}P()},Y=te(()=>({rowData:l.value,loading:g.value,rowKey:R,manualSorting:!0,manualFiltering:!0,advancedFilterModel:D.value,quickFilterText:Q.value,error:o.value,overlayErrorTemplate:o.value?()=>a.errorOverlay?.({error:o.value,retry:k})??"Remote request failed. Please retry.":void 0,overlayNoRowsTemplate:a.emptyOverlay,pagination:{mode:"server",page:s.value,pageSize:p.value,pageSizeOptions:r,total:d.value,showTotal:!0,showPageSizeSelector:!0},onGridReady:de,onPaginationChanged:ce,onSortChanged:fe,onFilterChanged:ve,onSelectionChanged:ge})),ye=async(e={})=>{e.resetPage&&(s.value=1),await k()},pe=async()=>{s.value=1,b.value=[],M.value={},D.value=null,q(),C=!0;try{c?.setSortModel(null),c?.setFilterModel(null),c?.setAdvancedFilterModel(null)}finally{C=!1}await k()},q=()=>{w.value=!1,y.clear(),T.clear(),n.clear(),P(),A=!0;try{c?.deselectAll()}finally{A=!1}},he=()=>{w.value=!0,y.clear(),T.clear(),n.clear();for(let e of l.value)n.set(R(e),e);P(),F()},Te=e=>{y.clear(),T.clear(),n.clear(),w.value=e.mode==="allMatching";let t=e.mode==="allMatching"?e.excludedKeys:e.selectedKeys;for(let i of t.map(String))e.mode==="allMatching"?T.add(i):y.add(i);for(let i of l.value){let u=R(i);L(u)&&n.set(u,i)}P(),F()},me=te(()=>(U.value,w.value?{mode:"allMatching",excludedKeys:[...T]}:{mode:"explicit",selectedKeys:[...y]}));return j(()=>re(a.query),()=>{a.clearSelectionOnQueryChange!==!1&&q(),E?K(!0):s.value=1},{deep:!0,immediate:E&&a.immediate!==!1}),j(Q,()=>{a.clearSelectionOnQueryChange!==!1&&q(),E?K(!0):s.value=1}),j(S,e=>{if(B)return;w.value=!1,T.clear();let t=new Set(e.map(String));y.clear();for(let i of t)y.add(i);for(let i of[...n.keys()])t.has(i)||n.delete(i);for(let i of l.value){let u=R(i);t.has(u)&&n.set(u,i)}F(),P()},{deep:!0,flush:"sync"}),Ee(()=>{W(),c=null}),{rows:l,loading:g,error:o,page:s,pageSize:p,total:d,sortModel:b,filterModel:M,advancedFilterModel:D,selectedKeys:S,selectedRows:m,selectionState:me,gridProps:Y,bindings:Y,reload:ye,retry:k,reset:pe,abort:W,clearSelection:q,selectAllMatching:he,applySelectionState:Te}}import{computed as G,onScopeDispose as ke,ref as Ie,shallowRef as Oe,watch as J}from"vue";import{createMachTableCommands as Qe}from"@agile-team/mach-table";function $e(a={}){let l=_(),g=Ie(a.initialSearch??""),o=a.query?oe({...a.query,quickFilterText:a.query.quickFilterText??G(()=>g.value||null)}):null,s=ae(l,a.editing),p=Oe([]),d=null,b=()=>{p.value=o?.selectedRows.value??l.api.value?.getSelectedRows()??[]};J(l.api,n=>{d?.(),d=null,n&&!n.isDestroyed()&&(d=n.addEventListener("selectionChanged",b)),b()},{immediate:!0}),o&&J(o.selectedRows,b,{deep:!1});let M=async()=>{if(o)await o.reload();else{let n=l.api.value;n?.isInfinite()?await n.reload():n?.refreshCells()}},D=Qe({getApi:()=>l.api.value,reload:M}),S=G(()=>o?.bindings.value??{}),m=G(()=>{if(!o)return p.value.length;let n=o.selectionState.value;return n.mode==="allMatching"?Math.max(0,o.total.value-n.excludedKeys.length):n.selectedKeys.length}),y=G(()=>o?.loading.value===!0||s.saving.value),T=G(()=>o?.error.value??s.saveError.value??null);return J(g,n=>{o||D.search(n||null)}),ke(()=>{d?.(),d=null}),{table:l,query:o,editing:s,bindings:S,search:g,selectedRows:p,selectedCount:m,busy:y,error:T,commands:D,reload:M}}export{_ as a,ae as b,oe as c,$e as d};
|
|
2
|
-
//# sourceMappingURL=chunk-IZZT6PAH.js.map
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{b as c,c as b,d as m}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-P7PVLT5L.js.map
|
|
1
|
+
import{b as c,c as b,d as m}from"./chunk-2YPTQYP3.js";function p(e,n,o={}){let r=o.componentName??"MachTable";if(!r.trim())throw new Error("[MachTable] Global componentName must not be empty.");let i=new Set([r]),l=m(o);e.provide(b,l),e.provide(c,l.value.defaults??{}),o.registerRobotGridAlias!==!1&&i.add("RobotGrid");for(let a of i){let t=e.component(a);if(t&&t!==n)throw new Error(`[MachTable] Cannot register global component "${a}" because that name is already in use.`);t||e.component(a,n)}}export{p as a};
|
|
@@ -1,2 +1 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _machtable = require('@agile-team/mach-table');var _vue = require('vue');var f=Symbol("mach-table-defaults"),o= exports.c =Symbol("mach-table-config"),T=_machtable.normalizeMachTableConfig.call(void 0, );function h(e){return typeof e=="function"?e():_vue.isRef.call(void 0, e)?e.value:e}function m(e){return _vue.shallowRef.call(void 0, _machtable.normalizeMachTableConfig.call(void 0, e))}function M(e){let p=_vue.inject.call(void 0, o,_vue.shallowRef.call(void 0, T)),n=_vue.computed.call(void 0, ()=>_machtable.mergeMachTableConfig.call(void 0, p.value,h(e)));return _vue.provide.call(void 0, o,n),_vue.provide.call(void 0, f,n.value.defaults),n}function y(e){M(()=>({defaults:typeof e=="function"?e():_vue.isRef.call(void 0, e)?e.value:e}))}function v(){let e=_vue.inject.call(void 0, o,null);return e?e.value.defaults:_vue.inject.call(void 0, f,{})}function O(){return _vue.inject.call(void 0, o,_vue.shallowRef.call(void 0, T))}exports.a = _machtable.resolveMachTableGridOptions; exports.b = f; exports.c = o; exports.d = m; exports.e = M; exports.f = y; exports.g = v; exports.h = O;
|
|
2
|
-
//# sourceMappingURL=chunk-PPNQWKVV.cjs.map
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var
|
|
2
|
-
//# sourceMappingURL=chunk-UST6E3TU.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkQHFBQ37Mcjs = require('./chunk-QHFBQ37M.cjs');function p(e,n,o={}){let r=_nullishCoalesce(o.componentName, () => ("MachTable"));if(!r.trim())throw new Error("[MachTable] Global componentName must not be empty.");let i=new Set([r]),l=_chunkQHFBQ37Mcjs.d.call(void 0, o);e.provide(_chunkQHFBQ37Mcjs.c,l),e.provide(_chunkQHFBQ37Mcjs.b,_nullishCoalesce(l.value.defaults, () => ({}))),o.registerRobotGridAlias!==!1&&i.add("RobotGrid");for(let a of i){let t=e.component(a);if(t&&t!==n)throw new Error(`[MachTable] Cannot register global component "${a}" because that name is already in use.`);t||e.component(a,n)}}exports.a = p;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
2
|
-
//# sourceMappingURL=chunk-BW56NYGC.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkQHFBQ37Mcjs = require('./chunk-QHFBQ37M.cjs');var _vue = require('vue');var _machtable = require('@agile-team/mach-table');function T(t){if(t)return t;try{return _optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _2 => _2.appContext])}catch (e2){return}}function G(t,e,a,o){let n=_vue.h.call(void 0, {setup:()=>()=>_vue.h.call(void 0, t,{...e})});return o&&(n.appContext=o),_vue.render.call(void 0, n,a),()=>_vue.render.call(void 0, null,a)}function D(t,e,a,o,r=!0){let i=_vue.h.call(void 0, {name:"MachTableSlot",setup:()=>()=>_vue.renderSlot.call(void 0, {default:t},"default",e())});o&&(i.appContext=o);let l=!1,u=()=>{l||_vue.render.call(void 0, i,a)};return r?queueMicrotask(u):u(),()=>{l=!0,_vue.render.call(void 0, null,a)}}function Z(t,e){let a=T(_optionalChain([e, 'optionalAccess', _3 => _3.appContext]));return o=>{let r=document.createElement("div");r.className="mach-cell-vue",r.style.width="100%";let n=_vue.shallowReactive.call(void 0, {...o}),i=G(t,n,r,a),l=!1;return{el:r,refresh:u=>(Object.assign(n,u),!0),destroy:()=>{l||(l=!0,window.setTimeout(i,0))}}}}function ee(t,e){let a=T(_optionalChain([e, 'optionalAccess', _4 => _4.appContext]));return o=>{let r=document.createElement("div");r.style.height="100%";let n=G(t,o,r,a),i=!1;return{el:r,destroy:()=>{i||(i=!0,n())}}}}function M(t,e){let a=T(_optionalChain([e, 'optionalAccess', _5 => _5.appContext]));return o=>{let r=document.createElement("div");r.className="mach-cell-vue mach-cell-vue--slot",r.style.width="100%";let n=_vue.shallowReactive.call(void 0, {...o}),i=D(t,()=>n,r,a);return{el:r,refresh:l=>(Object.assign(n,l),!0),destroy:i}}}function N(t,e){let a=T(_optionalChain([e, 'optionalAccess', _6 => _6.appContext]));return o=>{let r=document.createElement("div");r.className="mach-header-vue-slot";let n=D(t,()=>o,r,a);return{el:r,destroy:n}}}function w(t,e){let a=T(_optionalChain([e, 'optionalAccess', _7 => _7.appContext]));return o=>{let r=_vue.shallowReactive.call(void 0, {value:o.value}),n=document.createElement("div");n.className="mach-cell-vue mach-cell-vue--editor";let l=D(t,()=>({...o,value:r.value,setValue:u=>{r.value=u},commit:()=>o.api.stopEditing(!1),cancel:()=>o.api.stopEditing(!0)}),n,a,!1);return{el:n,getValue:()=>r.value,focus:()=>{_optionalChain([n, 'access', _8 => _8.querySelector, 'call', _9 => _9("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])"), 'optionalAccess', _10 => _10.focus, 'call', _11 => _11()])},destroy:l}}}function S(t,e){let a=T(_optionalChain([e, 'optionalAccess', _12 => _12.appContext]));return o=>{let r=document.createElement("div");r.className="mach-detail-vue-slot",r.style.height="100%";let n=D(t,()=>o,r,a);return{el:r,destroy:n}}}function C(t,e){let a=T(_optionalChain([e, 'optionalAccess', _13 => _13.appContext]));return()=>{let o=document.createElement("div");o.className="mach-overlay-vue-slot";let r=D(t,()=>({}),o,a);return{el:o,destroy:r}}}function O(t,e,a){return _nullishCoalesce(t[`${e}-${a}`], () => (t[`${e}-${a.replace(/[.\s]+/g,"-")}`]))}function P(t,e,a){return t.map((o,r)=>{if(Array.isArray(o.children)){let y=o;return{...y,children:P(y.children,e,a)}}let n=o,i=_nullishCoalesce(_nullishCoalesce(n.colId, () => (n.field)), () => (`col_${r}`)),l=_nullishCoalesce(_nullishCoalesce(O(e,"cell",i), () => ((i==="op"?e.actions:void 0))), () => (e.cell)),u=_nullishCoalesce(O(e,"header",i), () => (e.header)),g=_nullishCoalesce(O(e,"editor",i), () => (e.editor));return{...n,...l?{cellRenderer:M(l,{appContext:a})}:{},...u?{headerComponent:N(u,{appContext:a})}:{},...g?{cellEditor:w(g,{appContext:a})}:{}}})}function ne(t,e,a){let o=t.columnDefs?P(t.columnDefs,e,a):t.columnDefs;return{...t,columnDefs:o,...e.detail&&!t.detailRowRenderer?{detailRowRenderer:S(e.detail,{appContext:a})}:{},...e.loading?{overlayLoadingTemplate:C(e.loading,{appContext:a})}:{},...e.empty?{overlayNoRowsTemplate:C(e.empty,{appContext:a})}:{}}}function L(t,e){let a,o,r=t.detail?S(t.detail,{appContext:e}):void 0,n=t.loading?C(t.loading,{appContext:e}):void 0,i=t.empty?C(t.empty,{appContext:e}):void 0;return l=>(l.columnDefs!==a&&(a=l.columnDefs,o=l.columnDefs?P(l.columnDefs,t,e):l.columnDefs),{...l,columnDefs:o,...r&&!l.detailRowRenderer?{detailRowRenderer:r}:{},...n?{overlayLoadingTemplate:n}:{},...i?{overlayNoRowsTemplate:i}:{}})}var k=_machtable.GRID_OPTION_KEYS.filter(t=>!["className","ariaLabel","ariaLabelledBy","ariaDescribedBy"].includes(t)),f={};for(let t of k){let e=_machtable.GRID_OPTION_META[t].kind,a=e==="boolean"?Boolean:e==="number"?Number:e==="array"?Array:e==="function"?Function:e==="boolean-object"?[Boolean,Object]:e==="object"?Object:e==="string"?String:void 0;f[t]={type:a,default:void 0}}f.className={type:String,default:void 0};f.gridClassName={type:String,default:void 0};f.gridAriaLabel={type:String,default:void 0};f.gridAriaLabelledBy={type:String,default:void 0};f.gridAriaDescribedBy={type:String,default:void 0};f.preset={type:[String,Array,Boolean],default:void 0};function z(t){return"on"+t.charAt(0).toUpperCase()+t.slice(1)}var J=_vue.defineComponent.call(void 0, {name:"MachTable",inheritAttrs:!1,props:f,emits:[..._machtable.EVENT_TYPES],setup(t,{expose:e,attrs:a,emit:o,slots:r}){let n=t,i=_vue.ref.call(void 0, null),l=null,u=_chunkQHFBQ37Mcjs.h.call(void 0, ),g=L(r,_optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _14 => _14.appContext])),y=null,E=new Set,R=()=>{let d={};for(let s of k){let m=n[s];m!==void 0&&(d[s]=m)}n.gridClassName!==void 0&&(d.className=n.gridClassName),n.gridAriaLabel!==void 0&&(d.ariaLabel=n.gridAriaLabel),n.gridAriaLabelledBy!==void 0&&(d.ariaLabelledBy=n.gridAriaLabelledBy),n.gridAriaDescribedBy!==void 0&&(d.ariaDescribedBy=n.gridAriaDescribedBy);let c=_chunkQHFBQ37Mcjs.a.call(void 0, u.value,n.preset,d,s=>{let m=`${s.code}:${_nullishCoalesce(s.preset, () => (""))}`;E.has(m)||(E.add(m),u.value.onConfigWarning?u.value.onConfigWarning(s):console.warn(s.message))}),p=g(c.options);return y={options:p,explain:s=>s==="columnDefs"&&p.columnDefs!==c.options.columnDefs?{key:s,value:p.columnDefs,source:"Vue slots",layers:[...c.explain(s).layers,{name:"Vue slots",value:p.columnDefs}]}:c.explain(s)},y.options};return _vue.onMounted.call(void 0, ()=>{if(!i.value)return;let d=R();for(let c of _machtable.EVENT_TYPES){let p=z(c),s=d[p];d[p]=m=>{typeof s=="function"&&s(m),o(c,m)}}l=_machtable.createGrid.call(void 0, i.value,d)}),_vue.onBeforeUnmount.call(void 0, ()=>{_optionalChain([l, 'optionalAccess', _15 => _15.destroy, 'call', _16 => _16()]),l=null}),_vue.watch.call(void 0, ()=>{let d=R();return[..._machtable.GRID_OPTION_KEYS.map(c=>d[c])]},(d,c)=>{if(!l)return;let p={};d.forEach((s,m)=>{Object.is(s,c[m])||(p[_machtable.GRID_OPTION_KEYS[m]]=s)}),Object.keys(p).length>0&&l.updateOptions(p)}),e({getApi:()=>l,getResolvedConfig:()=>_nullishCoalesce(_optionalChain([y, 'optionalAccess', _17 => _17.options]), () => (R())),explainOption:d=>(_nullishCoalesce(y, () => (_chunkQHFBQ37Mcjs.a.call(void 0, u.value,n.preset,{})))).explain(d)}),()=>_vue.h.call(void 0, "div",{...a,ref:i,class:["mach-vue-host",n.className,a.class]})}}),Q= exports.j =J,ue= exports.k =Q;exports.a = Z; exports.b = ee; exports.c = M; exports.d = N; exports.e = w; exports.f = S; exports.g = C; exports.h = ne; exports.i = L; exports.j = Q; exports.k = ue;
|
package/dist/editors.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _vue = require('vue');function V(t){if(t)return t;try{return _optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _ => _.appContext])}catch (e2){return}}function T(t,e,r){if(r){let a=_vue.h.call(void 0, t);return a.appContext=r,_vue.render.call(void 0, a,e),()=>_vue.render.call(void 0, null,e)}let l=_vue.createApp.call(void 0, t);return l.mount(e),()=>l.unmount()}function d(t,e={}){let r=V(e.appContext),l=_nullishCoalesce(e.valueProp, () => ("modelValue")),a=_nullishCoalesce(e.updateEvent, () => ("onUpdate:modelValue"));return i=>{let o=_vue.shallowReactive.call(void 0, {value:i.value}),n=document.createElement("div");n.className=`mach-cell-vue mach-cell-vue--editor${e.className?` ${e.className}`:""}`,n.style.width="100%";let C=T({name:"MachTableVueCellEditor",setup:()=>()=>{let u=typeof e.props=="function"?e.props(i):e.props,c=E=>{o.value=E};return _vue.h.call(void 0, t,{..._nullishCoalesce(u, () => ({})),[l]:o.value,[a]:c,style:[{width:"100%"},_optionalChain([u, 'optionalAccess', _2 => _2.style])]},e.children?()=>e.children({params:i,value:o.value,setValue:c}):void 0)}},n,r),p=!1;return{el:n,getValue:()=>o.value,focus:()=>{let u=_nullishCoalesce(e.focusSelector, () => ("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])"));_optionalChain([n, 'access', _3 => _3.querySelector, 'call', _4 => _4(u), 'optionalAccess', _5 => _5.focus, 'call', _6 => _6()])},destroy:()=>{p||(p=!0,C())}}}}function b(t,e={}){return{input:t.input?d(t.input,e.input):void 0,number:t.inputNumber?d(t.inputNumber,e.number):void 0,select:t.select?d(t.select,{props:{teleported:!0},...e.select}):void 0,date:t.datePicker?d(t.datePicker,{props:{teleported:!0,valueFormat:"YYYY-MM-DD"},...e.date}):void 0}}exports.createElementPlusEditors = b; exports.vueCellEditor = d;
|
|
2
|
-
//# sourceMappingURL=editors.cjs.map
|
package/dist/editors.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
1
|
import{createApp as v,getCurrentInstance as f,h as m,render as s,shallowReactive as y}from"vue";function V(t){if(t)return t;try{return f()?.appContext}catch{return}}function T(t,e,r){if(r){let a=m(t);return a.appContext=r,s(a,e),()=>s(null,e)}let l=v(t);return l.mount(e),()=>l.unmount()}function d(t,e={}){let r=V(e.appContext),l=e.valueProp??"modelValue",a=e.updateEvent??"onUpdate:modelValue";return i=>{let o=y({value:i.value}),n=document.createElement("div");n.className=`mach-cell-vue mach-cell-vue--editor${e.className?` ${e.className}`:""}`,n.style.width="100%";let C=T({name:"MachTableVueCellEditor",setup:()=>()=>{let u=typeof e.props=="function"?e.props(i):e.props,c=E=>{o.value=E};return m(t,{...u??{},[l]:o.value,[a]:c,style:[{width:"100%"},u?.style]},e.children?()=>e.children({params:i,value:o.value,setValue:c}):void 0)}},n,r),p=!1;return{el:n,getValue:()=>o.value,focus:()=>{let u=e.focusSelector??"input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])";n.querySelector(u)?.focus()},destroy:()=>{p||(p=!0,C())}}}}function b(t,e={}){return{input:t.input?d(t.input,e.input):void 0,number:t.inputNumber?d(t.inputNumber,e.number):void 0,select:t.select?d(t.select,{props:{teleported:!0},...e.select}):void 0,date:t.datePicker?d(t.datePicker,{props:{teleported:!0,valueFormat:"YYYY-MM-DD"},...e.date}):void 0}}export{b as createElementPlusEditors,d as vueCellEditor};
|
|
2
|
-
//# sourceMappingURL=editors.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var
|
|
2
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _chunkZ24LHO3Wcjs = require('./chunk-Z24LHO3W.cjs');var _chunkD3AAW636cjs = require('./chunk-D3AAW636.cjs');var _chunkZIBU265Zcjs = require('./chunk-ZIBU265Z.cjs');var _chunkQHFBQ37Mcjs = require('./chunk-QHFBQ37M.cjs');var o={install(a,t){_chunkZ24LHO3Wcjs.a.call(void 0, a,_chunkZIBU265Zcjs.j,t)}};var _machtable = require('@agile-team/mach-table'); _createStarExport(_machtable);var U=o;exports.MACH_TABLE_CONFIG_KEY = _chunkQHFBQ37Mcjs.c; exports.MACH_TABLE_DEFAULTS_KEY = _chunkQHFBQ37Mcjs.b; exports.MachTable = _chunkZIBU265Zcjs.j; exports.MachTablePlugin = o; exports.RobotGrid = _chunkZIBU265Zcjs.k; exports.applyVueSlots = _chunkZIBU265Zcjs.h; exports.createVueSlotEnhancer = _chunkZIBU265Zcjs.i; exports.default = U; exports.provideMachTableConfig = _chunkQHFBQ37Mcjs.e; exports.provideMachTableDefaults = _chunkQHFBQ37Mcjs.f; exports.useMachTable = _chunkD3AAW636cjs.a; exports.useMachTableConfig = _chunkQHFBQ37Mcjs.h; exports.useMachTableController = _chunkD3AAW636cjs.d; exports.useMachTableDefaults = _chunkQHFBQ37Mcjs.g; exports.useMachTableEditing = _chunkD3AAW636cjs.b; exports.useMachTableQuery = _chunkD3AAW636cjs.c; exports.vueCellEditorSlot = _chunkZIBU265Zcjs.e; exports.vueCellRenderer = _chunkZIBU265Zcjs.a; exports.vueCellSlotRenderer = _chunkZIBU265Zcjs.c; exports.vueDetailRenderer = _chunkZIBU265Zcjs.b; exports.vueDetailSlotRenderer = _chunkZIBU265Zcjs.f; exports.vueHeaderSlotRenderer = _chunkZIBU265Zcjs.d; exports.vueOverlaySlot = _chunkZIBU265Zcjs.g;
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import{a as r}from"./chunk-H37MDBNW.js";import{a as y,b as C,c as R,d as S}from"./chunk-FZLCBKUV.js";import{a as s,b,c as T,d as M,e as h,f,g as m,h as x,i as d,j as e,k as g}from"./chunk-AVPWFS7M.js";import{b as l,c as p,e as u,f as c,g as i,h as n}from"./chunk-2YPTQYP3.js";var o={install(a,t){r(a,e,t)}};export*from"@agile-team/mach-table";var U=o;export{p as MACH_TABLE_CONFIG_KEY,l as MACH_TABLE_DEFAULTS_KEY,e as MachTable,o as MachTablePlugin,g as RobotGrid,x as applyVueSlots,d as createVueSlotEnhancer,U as default,u as provideMachTableConfig,c as provideMachTableDefaults,y as useMachTable,n as useMachTableConfig,S as useMachTableController,i as useMachTableDefaults,C as useMachTableEditing,R as useMachTableQuery,h as vueCellEditorSlot,s as vueCellRenderer,T as vueCellSlotRenderer,b as vueDetailRenderer,f as vueDetailSlotRenderer,M as vueHeaderSlotRenderer,m as vueOverlaySlot};
|
package/dist/ui.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _vue = require('vue');var b={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1},d= exports.MachTableToolbar =_vue.defineComponent.call(void 0, {name:"MachTableToolbar",props:{api:{type:Object,default:null},commands:{type:Object,default:null},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1},selectedCount:{type:Number,default:0},searchPlaceholder:{type:String,default:"\u641C\u7D22\u5F53\u524D\u7ED3\u679C"},exportFilename:{type:String,default:"mach-table.csv"},features:{type:Object,default:()=>({})}},emits:["update:modelValue","refresh","clearSelection"],setup(e,{emit:r,slots:s}){let c=a=>_nullishCoalesce(e.features[a], () => (b[a])),t=(a,...o)=>{let n=e.commands?Reflect.get(e.commands,a):void 0;return typeof n=="function"&&e.commands?Reflect.apply(n,e.commands,o):void 0},i=(a,o,n,h=!1)=>_vue.h.call(void 0, "button",{type:"button",class:"mach-toolbar__button",title:a,"aria-label":a,disabled:h,onClick:n},o),u=()=>{let a=[..._nullishCoalesce(_optionalChain([s, 'access', _ => _.start, 'optionalCall', _2 => _2()]), () => ([]))];return c("search")&&a.push(_vue.h.call(void 0, "label",{class:"mach-toolbar__search"},[_vue.h.call(void 0, "span",{class:"mach-sr-only"},e.searchPlaceholder),_vue.h.call(void 0, "span",{"aria-hidden":"true"},"\u2315"),_vue.h.call(void 0, "input",{value:e.modelValue,type:"search",placeholder:e.searchPlaceholder,onInput:o=>{let n=o.target.value;r("update:modelValue",n),e.commands?t("search",n||null):_optionalChain([e, 'access', _3 => _3.api, 'optionalAccess', _4 => _4.setQuickFilter, 'call', _5 => _5(n||null)])}})])),c("refresh")&&a.push(i("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{r("refresh"),e.commands?t("refresh"):_optionalChain([e, 'access', _6 => _6.api, 'optionalAccess', _7 => _7.isInfinite, 'call', _8 => _8()])?e.api.reload():_optionalChain([e, 'access', _9 => _9.api, 'optionalAccess', _10 => _10.refreshCells, 'call', _11 => _11()])},e.loading)),c("columns")&&a.push(i("\u5217\u8BBE\u7F6E","\u2637",o=>{let n=o.currentTarget;n instanceof HTMLElement&&(e.commands?t("openColumns",n):_optionalChain([e, 'access', _12 => _12.api, 'optionalAccess', _13 => _13.openColumnWorkbench, 'call', _14 => _14(n)]))})),c("density")&&a.push(_vue.h.call(void 0, "select",{class:"mach-toolbar__select",value:_nullishCoalesce(_optionalChain([e, 'access', _15 => _15.api, 'optionalAccess', _16 => _16.getGridOption, 'call', _17 => _17("size")]), () => ("normal")),"aria-label":"\u8868\u683C\u5BC6\u5EA6",onChange:o=>{let n=o.target.value;e.commands?t("setDensity",n):_optionalChain([e, 'access', _18 => _18.api, 'optionalAccess', _19 => _19.setGridOption, 'call', _20 => _20("size",n)])}},[_vue.h.call(void 0, "option",{value:"compact"},"\u7D27\u51D1"),_vue.h.call(void 0, "option",{value:"normal"},"\u6807\u51C6"),_vue.h.call(void 0, "option",{value:"large"},"\u5BBD\u677E")])),a.push(..._nullishCoalesce(_optionalChain([s, 'access', _21 => _21.default, 'optionalCall', _22 => _22()]), () => ([]))),_vue.h.call(void 0, "div",{class:"mach-toolbar__main"},a)},m=()=>{let a=[];return e.selectedCount>0&&a.push(_vue.h.call(void 0, "button",{type:"button",class:"mach-toolbar__selection",onClick:()=>r("clearSelection")},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),c("undoRedo")&&(a.push(i("\u64A4\u9500","\u21B6",()=>{e.commands?t("undo"):_optionalChain([e, 'access', _23 => _23.api, 'optionalAccess', _24 => _24.undo, 'call', _25 => _25()])},e.commands?!e.commands.canUndo():!_optionalChain([e, 'access', _26 => _26.api, 'optionalAccess', _27 => _27.canUndo, 'call', _28 => _28()]))),a.push(i("\u91CD\u505A","\u21B7",()=>{e.commands?t("redo"):_optionalChain([e, 'access', _29 => _29.api, 'optionalAccess', _30 => _30.redo, 'call', _31 => _31()])},e.commands?!e.commands.canRedo():!_optionalChain([e, 'access', _32 => _32.api, 'optionalAccess', _33 => _33.canRedo, 'call', _34 => _34()])))),c("export")&&a.push(i("\u5BFC\u51FA CSV","\u21E9",()=>{e.commands&&t("exportCsv",e.exportFilename)},!e.commands)),c("fullscreen")&&a.push(i("\u5168\u5C4F","\u26F6",()=>{t("toggleFullscreen")},!e.commands)),a.push(..._nullishCoalesce(_optionalChain([s, 'access', _35 => _35.end, 'optionalCall', _36 => _36()]), () => ([]))),_vue.h.call(void 0, "div",{class:"mach-toolbar__aside"},a)};return()=>_vue.h.call(void 0, "div",{class:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},[u(),m()])}});var T={install(e){e.component("MachTableToolbar")||e.component("MachTableToolbar",d)}};var M=T;exports.MachTableToolbar = d; exports.MachTableUiPlugin = T; exports.default = M;
|
|
2
|
-
//# sourceMappingURL=ui.cjs.map
|
package/dist/ui.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
1
|
import{defineComponent as f,h as l}from"vue";var b={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1},d=f({name:"MachTableToolbar",props:{api:{type:Object,default:null},commands:{type:Object,default:null},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1},selectedCount:{type:Number,default:0},searchPlaceholder:{type:String,default:"\u641C\u7D22\u5F53\u524D\u7ED3\u679C"},exportFilename:{type:String,default:"mach-table.csv"},features:{type:Object,default:()=>({})}},emits:["update:modelValue","refresh","clearSelection"],setup(e,{emit:r,slots:s}){let c=a=>e.features[a]??b[a],t=(a,...o)=>{let n=e.commands?Reflect.get(e.commands,a):void 0;return typeof n=="function"&&e.commands?Reflect.apply(n,e.commands,o):void 0},i=(a,o,n,h=!1)=>l("button",{type:"button",class:"mach-toolbar__button",title:a,"aria-label":a,disabled:h,onClick:n},o),u=()=>{let a=[...s.start?.()??[]];return c("search")&&a.push(l("label",{class:"mach-toolbar__search"},[l("span",{class:"mach-sr-only"},e.searchPlaceholder),l("span",{"aria-hidden":"true"},"\u2315"),l("input",{value:e.modelValue,type:"search",placeholder:e.searchPlaceholder,onInput:o=>{let n=o.target.value;r("update:modelValue",n),e.commands?t("search",n||null):e.api?.setQuickFilter(n||null)}})])),c("refresh")&&a.push(i("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{r("refresh"),e.commands?t("refresh"):e.api?.isInfinite()?e.api.reload():e.api?.refreshCells()},e.loading)),c("columns")&&a.push(i("\u5217\u8BBE\u7F6E","\u2637",o=>{let n=o.currentTarget;n instanceof HTMLElement&&(e.commands?t("openColumns",n):e.api?.openColumnWorkbench(n))})),c("density")&&a.push(l("select",{class:"mach-toolbar__select",value:e.api?.getGridOption("size")??"normal","aria-label":"\u8868\u683C\u5BC6\u5EA6",onChange:o=>{let n=o.target.value;e.commands?t("setDensity",n):e.api?.setGridOption("size",n)}},[l("option",{value:"compact"},"\u7D27\u51D1"),l("option",{value:"normal"},"\u6807\u51C6"),l("option",{value:"large"},"\u5BBD\u677E")])),a.push(...s.default?.()??[]),l("div",{class:"mach-toolbar__main"},a)},m=()=>{let a=[];return e.selectedCount>0&&a.push(l("button",{type:"button",class:"mach-toolbar__selection",onClick:()=>r("clearSelection")},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),c("undoRedo")&&(a.push(i("\u64A4\u9500","\u21B6",()=>{e.commands?t("undo"):e.api?.undo()},e.commands?!e.commands.canUndo():!e.api?.canUndo())),a.push(i("\u91CD\u505A","\u21B7",()=>{e.commands?t("redo"):e.api?.redo()},e.commands?!e.commands.canRedo():!e.api?.canRedo()))),c("export")&&a.push(i("\u5BFC\u51FA CSV","\u21E9",()=>{e.commands&&t("exportCsv",e.exportFilename)},!e.commands)),c("fullscreen")&&a.push(i("\u5168\u5C4F","\u26F6",()=>{t("toggleFullscreen")},!e.commands)),a.push(...s.end?.()??[]),l("div",{class:"mach-toolbar__aside"},a)};return()=>l("div",{class:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},[u(),m()])}});var T={install(e){e.component("MachTableToolbar")||e.component("MachTableToolbar",d)}};var M=T;export{d as MachTableToolbar,T as MachTableUiPlugin,M as default};
|
|
2
|
-
//# sourceMappingURL=ui.js.map
|
package/dist/worker.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _worker = require('@agile-team/mach-table/worker'); _createStarExport(_worker);
|
|
2
|
-
//# sourceMappingURL=worker.cjs.map
|
package/dist/worker.js
CHANGED
package/dist/workflows.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
2
|
-
//# sourceMappingURL=workflows.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkD3AAW636cjs = require('./chunk-D3AAW636.cjs');exports.useMachTableController = _chunkD3AAW636cjs.d; exports.useMachTableEditing = _chunkD3AAW636cjs.b; exports.useMachTableQuery = _chunkD3AAW636cjs.c;
|
package/dist/workflows.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{b as e,c as a,d as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=workflows.js.map
|
|
1
|
+
import{b as e,c as a,d as r}from"./chunk-FZLCBKUV.js";export{r as useMachTableController,e as useMachTableEditing,a as useMachTableQuery};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agile-team/mach-table-vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "Official Vue 3 adapter for the MachTable enterprise data grid",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"**/*.css"
|
|
109
109
|
],
|
|
110
110
|
"dependencies": {
|
|
111
|
-
"@agile-team/mach-table": "0.
|
|
111
|
+
"@agile-team/mach-table": "0.23.0"
|
|
112
112
|
},
|
|
113
113
|
"peerDependencies": {
|
|
114
114
|
"vue": ">=3.2.0"
|
|
@@ -121,5 +121,6 @@
|
|
|
121
121
|
"typecheck": "tsc --noEmit",
|
|
122
122
|
"test": "vitest run",
|
|
123
123
|
"test:coverage": "vitest run --coverage"
|
|
124
|
-
}
|
|
124
|
+
},
|
|
125
|
+
"readme": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/ChenyCHENYU/MachTable/main/assets/mach-table-logo.svg\" alt=\"MachTable\" width=\"760\" />\n</p>\n\n# @agile-team/mach-table-vue\n\nOfficial Vue 3 adapter for MachTable 0.23. It provides a generic `<MachTable>`, native typed slots, dedicated app/route configuration, cohesive controllers, advanced-filter aware remote query, conflict-aware editing composables, persistent named views, optional and persistent column resizing, bounded random-access remote blocks, governed domain APIs, optional Worker processing, an optional standard toolbar, optional Element Plus editors, async boundaries, in-place renderer refresh and automatic lifecycle cleanup. `RobotGrid` remains a deprecated 0.x alias.\n\n## Install\n\n```bash\npnpm add @agile-team/mach-table-vue\n```\n\nImport the stylesheet once from your application entry:\n\n```ts\nimport \"@agile-team/mach-table-vue/styles.css\";\n```\n\nOptional large local-data Worker helpers use the same installed package but a separate chunk:\n\n```ts\nimport { createWorkerDataProcessor } from \"@agile-team/mach-table-vue/worker\";\n```\n\n## Integration modes\n\n### Local, route-level import\n\nBest when only a few routes use a grid. A lazy-loaded route naturally keeps MachTable in that route's chunk.\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { MachTable, useMachTable, type ColDef } from \"@agile-team/mach-table-vue\";\n\ninterface Row { id: string; name: string }\nconst grid = useMachTable<Row>();\nconst rows = ref<Row[]>([{ id: \"1\", name: \"MachTable\" }]);\nconst columns: ColDef<Row>[] = [{ field: \"name\", headerName: \"Name\", flex: 1 }];\n</script>\n\n<template>\n <div style=\"height: 520px\">\n <MachTable\n :ref=\"grid.ref\"\n :row-data=\"rows\"\n :column-defs=\"columns\"\n row-key=\"id\"\n state-key=\"customer-list\"\n enable-column-resize\n striped-rows\n />\n </div>\n</template>\n```\n\n### Global synchronous plugin\n\nBest when most screens render tables. Components are available in every template without page-level runtime imports.\n\n```ts\n// main.ts\nimport { createApp } from \"vue\";\nimport { MachTablePlugin } from \"@agile-team/mach-table-vue\";\nimport \"@agile-team/mach-table-vue/styles.css\";\nimport App from \"./App.vue\";\n\ncreateApp(App).use(MachTablePlugin).mount(\"#app\");\n```\n\n### Global async plugin\n\nBest for large admin or low-code applications. The plugin is registered at startup, while the component and Core stay in a separate chunk until the first `<MachTable>` is rendered.\n\n```ts\n// main.ts\nimport { createApp } from \"vue\";\nimport AsyncMachTablePlugin, { preloadMachTable } from \"@agile-team/mach-table-vue/async\";\nimport \"@agile-team/mach-table-vue/styles.css\";\nimport App from \"./App.vue\";\n\ncreateApp(App).use(AsyncMachTablePlugin).mount(\"#app\");\n\n// Optional route-hover prefetch; dynamic imports are cached and idempotent.\nvoid preloadMachTable();\n```\n\nThe standard toolbar is a separate, tree-shakeable entry. Register it globally only when needed:\n\n```ts\nimport MachTableUiPlugin from \"@agile-team/mach-table-vue/ui\";\napp.use(MachTableUiPlugin);\n```\n\nAfter either global plugin is installed, pages can use `<MachTable>` directly. Keep conventions in a dedicated `mach-table.config.ts`, then install it with one clean line:\n\n```ts\n// mach-table.config.ts\nimport { defineMachTableConfig, defineMachTablePreset } from \"@agile-team/mach-table-vue\";\nexport default defineMachTableConfig({\n defaults: {\n size: \"compact\",\n enableColumnResize: true,\n pagination: { pageSize: 20, pageSizeOptions: [20, 50, 100] },\n defaultColDef: { sortable: true, resizable: true, filter: true }\n },\n defaultPreset: \"list\",\n presets: { list: defineMachTablePreset({ stripedRows: true }) }\n});\n\n// main.ts\napp.use(MachTablePlugin, machTableConfig);\n```\n\nLayouts can reactively refine defaults and presets with `provideMachTableConfig(...)`; direct table props always win. `provideMachTableDefaults(...)` remains as a smaller compatibility API. The async plugin also accepts `asyncComponentOptions` with `loadingComponent`, `errorComponent`, `delay`, `timeout` and `onError`.\n\nThe adapter installs the matching `@agile-team/mach-table` core automatically and re-exports its complete API and types. Only `vue >= 3.2` remains a peer dependency supplied by the host application. Existing local imports remain fully supported.\n\nRemote B-side lists can bind `useMachTableQuery()` directly. Use `mode: \"auto\"` for live filters or `mode: \"manual\"` for a submit-to-search form. For the smallest composable-only chunk, import query/editing/controller helpers from `@agile-team/mach-table-vue/workflows`. They own controlled server pagination, AbortSignal cancellation, stale-response protection, retry state and cross-page selection without exposing `gridApi` to ordinary pages.\n\n`useMachTableController()` composes table readiness, query, editing, selection, errors and standard commands. Pair it with `MachTableToolbar` from `/ui`, or bind `controller.commands` to your own design-system toolbar.\n\nMillion-row batch actions use `selectionScope: \"query\"` and compact `allMatching + excludedKeys` rules, so clients never download every matching row ID.\n\n`useMachTableEditing()` exposes reactive dirty changes, detailed partial-save results, validation failures, version conflicts, failed-row reveal, rollback and an optional unsaved-page guard. `lastSaveResult`, `saveIssues`, `failedRowIds` and `resolveConflict()` keep page code small while preserving explicit business decisions. Semantic business types and cached dictionaries are configured once with `createBusinessColumnTypes()` and `createCachedDictionary()`.\n\n```ts\nconst editing = useMachTableEditing(grid, { guardBeforeUnload: true });\nconst result = await editing.saveDetailed(orderApi.saveChanges);\nif (result.conflicts.length) editing.reveal(result.conflicts[0].rowId);\n\nasync function saveCurrentView() {\n if (!grid.api.value) return;\n const views = createGridViewManager(grid.api.value, {\n scope: `${tenantId}:${userId}:orders`\n });\n await views.save(\"My pending orders\");\n}\n```\n\nRemote query requests include both `filterModel` and the serializable nested `advancedFilterModel`. See the [advanced filter](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/recipes/advanced-filter.md), [named views](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/recipes/saved-views.md), and [batch save](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/recipes/batch-save.md) guides.\n\nElement Plus editors are optional and registered once without making EP a package dependency:\n\n```ts\nimport { createElementPlusEditors } from \"@agile-team/mach-table-vue/editors\";\n\nconst ep = createElementPlusEditors({\n input: ElInput,\n inputNumber: ElInputNumber,\n select: ElSelect,\n datePicker: ElDatePicker\n});\n```\n\nUse `api.openColumnWorkbench()` for the built-in column settings UI. Lazy trees opt in with `isTreeRowExpandable` plus `loadTreeChildren`; ordinary tree data is unchanged.\n\n## Cell and full-row editing\n\nCore helpers are re-exported, so no second package import is needed:\n\n```vue\n<script setup lang=\"ts\">\nimport { rowActionsColumn } from \"@agile-team/mach-table-vue\";\n\nconst columns = [\n { field: \"name\", editable: true },\n { field: \"age\", editable: true, cellEditor: \"number\" },\n rowActionsColumn({ onView, onDelete, overflow: \"drawer\" })\n];\n</script>\n\n<template>\n <MachTable edit-type=\"fullRow\" :column-defs=\"columns\" :row-data=\"rows\" />\n</template>\n```\n\nCell mode is the default and provides a pencil plus inline confirm/cancel controls. Set `editable-indicator=\"always\"`, `\"hover\"` or `\"none\"` to control the affordance.\n\nDocumentation: [Vue guide](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/vue.md) · [Enterprise integration](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [Element Plus](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/element-plus.md) · [Naive UI](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/naive-ui.md)\n\nSource-available © ChenyCHENYU (Agile Team). Any use requires prior written authorization. See the [license](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) and [authorization process](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md).\n"
|
|
125
126
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkBW56NYGCcjs = require('./chunk-BW56NYGC.cjs');require('./chunk-PPNQWKVV.cjs');exports.MachTable = _chunkBW56NYGCcjs.j; exports.RobotGrid = _chunkBW56NYGCcjs.k;
|
|
2
|
-
//# sourceMappingURL=MachTable-7H7Z4ACQ.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\MachTable-7H7Z4ACQ.cjs"],"names":[],"mappings":"AAAA,iIAA+C,gCAA6B,iFAAsC","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\MachTable-7H7Z4ACQ.cjs"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/async.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\async.cjs"],"names":[],"mappings":"AAAA,mZAAwC,gCAA6B,0BAA2C,IAAK,CAAC,CAAC,CAAC,CAAC,EAAE,4DAAM,CAAC,0BAA0B,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,uCAAC,CAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,iCAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAC,CAAC,CAAC,kJAAkH","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\async.cjs","sourcesContent":[null]}
|
package/dist/async.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/async.ts"],"sourcesContent":["import { defineAsyncComponent, type App, type Component } from \"vue\";\nimport { registerGlobalMachTable, type MachTablePluginOptions } from \"./globalRegistration\";\n\n/**\n * Starts loading the Vue adapter ahead of first render. The browser and bundler\n * cache the promise, so calling this on route hover is safe and idempotent.\n */\nexport const preloadMachTable = () => import(\"./MachTable\").then(({ MachTable }) => MachTable);\n\nexport interface AsyncMachTableOptions {\n loadingComponent?: Component;\n errorComponent?: Component;\n delay?: number;\n timeout?: number;\n suspensible?: boolean;\n onError?: (error: Error, retry: () => void, fail: () => void, attempts: number) => void;\n}\n\n/** Creates a route-friendly async component with optional loading/error boundaries. */\nexport function createAsyncMachTable(options: AsyncMachTableOptions = {}) {\n return defineAsyncComponent({ loader: preloadMachTable, ...options });\n}\n\n/** Async global component used by AsyncMachTablePlugin. */\nexport const AsyncMachTable = createAsyncMachTable();\n\nexport interface AsyncMachTablePluginOptions extends MachTablePluginOptions {\n asyncComponentOptions?: AsyncMachTableOptions;\n}\n\n/**\n * Registers `<MachTable>` globally while keeping the component and Core in a\n * separate chunk until the first table is rendered.\n */\nexport const AsyncMachTablePlugin = Object.freeze({\n install(app: App, options: AsyncMachTablePluginOptions = {}): void {\n const component = options.asyncComponentOptions\n ? createAsyncMachTable(options.asyncComponentOptions)\n : AsyncMachTable;\n registerGlobalMachTable(app, component, options);\n }\n});\n\nexport type { MachTablePluginOptions } from \"./globalRegistration\";\nexport default AsyncMachTablePlugin;\n"],"mappings":"oEAAA,OAAS,wBAAAA,MAAsD,MAOxD,IAAMC,EAAmB,IAAM,OAAO,yBAAa,EAAE,KAAK,CAAC,CAAE,UAAAC,CAAU,IAAMA,CAAS,EAYtF,SAASC,EAAqBC,EAAiC,CAAC,EAAG,CACxE,OAAOC,EAAqB,CAAE,OAAQJ,EAAkB,GAAGG,CAAQ,CAAC,CACtE,CAGO,IAAME,EAAiBH,EAAqB,EAUtCI,EAAuB,OAAO,OAAO,CAChD,QAAQC,EAAUJ,EAAuC,CAAC,EAAS,CACjE,IAAMK,EAAYL,EAAQ,sBACtBD,EAAqBC,EAAQ,qBAAqB,EAClDE,EACJI,EAAwBF,EAAKC,EAAWL,CAAO,CACjD,CACF,CAAC,EAGMO,EAAQJ","names":["defineAsyncComponent","preloadMachTable","MachTable","createAsyncMachTable","options","defineAsyncComponent","AsyncMachTable","AsyncMachTablePlugin","app","component","registerGlobalMachTable","async_default"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-BW56NYGC.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-BW56NYGC.cjs","sourcesContent":[null]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/configuration.ts","../src/defaults.ts"],"sourcesContent":["export {\n defineMachTableConfig,\n mergeMachTableConfig,\n normalizeMachTableConfig,\n resolveMachTableGridOptions\n} from \"@agile-team/mach-table\";\nexport type {\n MachTableConfigWarning,\n MachTableOptionExplanation,\n MachTablePresetSelection,\n MachTableRuntimeConfig,\n ResolvedMachTableConfig,\n ResolvedMachTableGridOptions\n} from \"@agile-team/mach-table\";\n","import { computed, inject, isRef, provide, shallowRef, type InjectionKey, type Ref } from \"vue\";\nimport type { GridOptions } from \"@agile-team/mach-table\";\nimport {\n mergeMachTableConfig,\n normalizeMachTableConfig,\n type MachTableRuntimeConfig,\n type ResolvedMachTableConfig\n} from \"./configuration\";\n\nexport const MACH_TABLE_DEFAULTS_KEY: InjectionKey<Partial<GridOptions<any>>> = Symbol(\"mach-table-defaults\");\nexport const MACH_TABLE_CONFIG_KEY: InjectionKey<Readonly<Ref<ResolvedMachTableConfig>>> = Symbol(\"mach-table-config\");\n\nexport type MachTableConfigSource =\n | MachTableRuntimeConfig\n | Readonly<Ref<MachTableRuntimeConfig>>\n | (() => MachTableRuntimeConfig);\n\nconst EMPTY_CONFIG = normalizeMachTableConfig();\n\nfunction readSource(source: MachTableConfigSource): MachTableRuntimeConfig {\n if (typeof source === \"function\") return source();\n return isRef(source) ? source.value : source;\n}\n\nexport function createMachTableConfigRef(config: MachTableRuntimeConfig): Readonly<Ref<ResolvedMachTableConfig>> {\n return shallowRef(normalizeMachTableConfig(config));\n}\n\n/** Provides route/layout-scoped defaults, presets and diagnostics reactively. */\nexport function provideMachTableConfig(source: MachTableConfigSource): Readonly<Ref<ResolvedMachTableConfig>> {\n const parent = inject(MACH_TABLE_CONFIG_KEY, shallowRef(EMPTY_CONFIG));\n const resolved = computed(() => mergeMachTableConfig(parent.value, readSource(source)));\n provide(MACH_TABLE_CONFIG_KEY, resolved);\n // Keep the 0.x injection key available for consumers that injected it directly.\n provide(MACH_TABLE_DEFAULTS_KEY, resolved.value.defaults);\n return resolved;\n}\n\n/** Provides route/layout-scoped defaults. Per-table props always take precedence. */\nexport function provideMachTableDefaults<TData>(\n defaults: Partial<GridOptions<TData>> | Readonly<Ref<Partial<GridOptions<TData>>>> | (() => Partial<GridOptions<TData>>)\n): void {\n provideMachTableConfig(() => ({\n defaults: typeof defaults === \"function\" ? defaults() : isRef(defaults) ? defaults.value : defaults\n }));\n}\n\nexport function useMachTableDefaults<TData>(): Partial<GridOptions<TData>> {\n const config = inject(MACH_TABLE_CONFIG_KEY, null);\n if (config) return config.value.defaults as Partial<GridOptions<TData>>;\n return inject(MACH_TABLE_DEFAULTS_KEY, {}) as Partial<GridOptions<TData>>;\n}\n\nexport function useMachTableConfig(): Readonly<Ref<ResolvedMachTableConfig>> {\n return inject(MACH_TABLE_CONFIG_KEY, shallowRef(EMPTY_CONFIG));\n}\n"],"mappings":"AAAA,OACE,yBAAAA,EACA,wBAAAC,EACA,4BAAAC,EACA,+BAAAC,MACK,yBCLP,OAAS,YAAAC,EAAU,UAAAC,EAAQ,SAAAC,EAAO,WAAAC,EAAS,cAAAC,MAA+C,MASnF,IAAMC,EAAmE,OAAO,qBAAqB,EAC/FC,EAA8E,OAAO,mBAAmB,EAO/GC,EAAeC,EAAyB,EAE9C,SAASC,EAAWC,EAAuD,CACzE,OAAI,OAAOA,GAAW,WAAmBA,EAAO,EACzCC,EAAMD,CAAM,EAAIA,EAAO,MAAQA,CACxC,CAEO,SAASE,EAAyBC,EAAwE,CAC/G,OAAOC,EAAWN,EAAyBK,CAAM,CAAC,CACpD,CAGO,SAASE,EAAuBL,EAAuE,CAC5G,IAAMM,EAASC,EAAOX,EAAuBQ,EAAWP,CAAY,CAAC,EAC/DW,EAAWC,EAAS,IAAMC,EAAqBJ,EAAO,MAAOP,EAAWC,CAAM,CAAC,CAAC,EACtF,OAAAW,EAAQf,EAAuBY,CAAQ,EAEvCG,EAAQhB,EAAyBa,EAAS,MAAM,QAAQ,EACjDA,CACT,CAGO,SAASI,EACdC,EACM,CACNR,EAAuB,KAAO,CAC5B,SAAU,OAAOQ,GAAa,WAAaA,EAAS,EAAIZ,EAAMY,CAAQ,EAAIA,EAAS,MAAQA,CAC7F,EAAE,CACJ,CAEO,SAASC,GAA2D,CACzE,IAAMX,EAASI,EAAOX,EAAuB,IAAI,EACjD,OAAIO,EAAeA,EAAO,MAAM,SACzBI,EAAOZ,EAAyB,CAAC,CAAC,CAC3C,CAEO,SAASoB,GAA6D,CAC3E,OAAOR,EAAOX,EAAuBQ,EAAWP,CAAY,CAAC,CAC/D","names":["defineMachTableConfig","mergeMachTableConfig","normalizeMachTableConfig","resolveMachTableGridOptions","computed","inject","isRef","provide","shallowRef","MACH_TABLE_DEFAULTS_KEY","MACH_TABLE_CONFIG_KEY","EMPTY_CONFIG","normalizeMachTableConfig","readSource","source","isRef","createMachTableConfigRef","config","shallowRef","provideMachTableConfig","parent","inject","resolved","computed","mergeMachTableConfig","provide","provideMachTableDefaults","defaults","useMachTableDefaults","useMachTableConfig"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/useMachTable.ts","../src/useMachTableEditing.ts","../src/useMachTableQuery.ts","../src/useMachTableController.ts"],"sourcesContent":["import { onScopeDispose, ref, shallowRef, watch, type Ref, type ShallowRef } from \"vue\";\nimport type { GridApi } from \"@agile-team/mach-table\";\nimport type { MachTableVueExposed } from \"./MachTable\";\n\nexport interface UseMachTableReturn<TData = any> {\n ref: Ref<MachTableVueExposed<TData> | null>;\n api: ShallowRef<GridApi<TData> | null>;\n ready: ShallowRef<boolean>;\n}\n\nexport function useMachTable<TData = any>(): UseMachTableReturn<TData> {\n const componentRef = ref<MachTableVueExposed<TData> | null>(null) as Ref<MachTableVueExposed<TData> | null>;\n const api = shallowRef<GridApi<TData> | null>(null);\n const ready = shallowRef(false);\n let generation = 0;\n\n watch(\n componentRef,\n (comp) => {\n const currentGeneration = ++generation;\n if (comp && typeof comp.getApi === \"function\") {\n api.value = comp.getApi();\n ready.value = false;\n const currentApi = api.value;\n if (currentApi) {\n void currentApi.whenReady().then(() => {\n if (generation === currentGeneration && api.value === currentApi && !currentApi.isDestroyed()) {\n ready.value = true;\n }\n });\n }\n } else {\n api.value = null;\n ready.value = false;\n }\n },\n { flush: \"post\" }\n );\n\n onScopeDispose(() => {\n generation++;\n componentRef.value = null;\n api.value = null;\n ready.value = false;\n });\n\n return { ref: componentRef, api, ready };\n}\n","import {\n computed,\n onScopeDispose,\n ref,\n shallowRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from \"vue\";\nimport type {\n GridBatchSaveResult,\n GridChange,\n SaveChangeConflict,\n SaveChangeIssue,\n SaveChangesHandler\n} from \"@agile-team/mach-table\";\nimport { resolveSaveConflict } from \"@agile-team/mach-table\";\nimport type { UseMachTableReturn } from \"./useMachTable\";\n\nexport interface UseMachTableEditingOptions<TData = any> {\n /** Warn before closing/reloading a browser tab with unsaved changes. */\n guardBeforeUnload?: boolean;\n beforeUnloadMessage?: string;\n onSaveSuccess?(saved: readonly GridChange<TData>[]): void;\n onSaveResult?(result: GridBatchSaveResult<TData>): void;\n onSaveError?(error: unknown): void;\n}\n\nexport interface UseMachTableEditingReturn<TData = any> {\n changes: ShallowRef<GridChange<TData>[]>;\n dirtyRowIds: Ref<string[]>;\n dirty: ComputedRef<boolean>;\n saving: Ref<boolean>;\n saveError: ShallowRef<unknown | null>;\n lastSaveResult: ShallowRef<GridBatchSaveResult<TData> | null>;\n saveIssues: ComputedRef<Array<SaveChangeIssue | SaveChangeConflict<TData>>>;\n failedRowIds: ComputedRef<string[]>;\n save(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridChange<TData>[]>;\n saveDetailed(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridBatchSaveResult<TData>>;\n clearSaveIssues(): void;\n resolveConflict(rowId: string, strategy: \"acceptServer\" | \"keepLocal\"): boolean;\n rollback(rowIds?: readonly string[]): boolean;\n markSaved(rowIds?: readonly string[]): void;\n /** Scrolls to a loaded changed row and optionally opens the failed cell editor. */\n reveal(rowId: string, colId?: string, edit?: boolean): boolean;\n refresh(): void;\n}\n\n/** Reactive dirty/save workflow layered over useMachTable(). */\nexport function useMachTableEditing<TData = any>(\n table: UseMachTableReturn<TData>,\n options: UseMachTableEditingOptions<TData> = {}\n): UseMachTableEditingReturn<TData> {\n const changes = shallowRef<GridChange<TData>[]>([]);\n const dirtyRowIds = ref<string[]>([]);\n const saving = ref(false);\n const saveError = shallowRef<unknown | null>(null);\n const lastSaveResult = shallowRef<GridBatchSaveResult<TData> | null>(null);\n const dirty = computed(() => dirtyRowIds.value.length > 0);\n const saveIssues = computed(() => [\n ...(lastSaveResult.value?.failures ?? []),\n ...(lastSaveResult.value?.conflicts ?? [])\n ]);\n const failedRowIds = computed(() => [...new Set(saveIssues.value.map((issue) => issue.rowId))]);\n let removeDirtyListener: (() => void) | null = null;\n\n const refresh = (): void => {\n const api = table.api.value;\n if (!api || api.isDestroyed()) {\n dirtyRowIds.value = [];\n changes.value = [];\n return;\n }\n dirtyRowIds.value = api.getDirtyRowIds();\n changes.value = api.getChanges();\n };\n\n watch(table.api, (api) => {\n removeDirtyListener?.();\n removeDirtyListener = null;\n refresh();\n if (!api || api.isDestroyed()) return;\n removeDirtyListener = api.addEventListener(\"dirtyStateChanged\", refresh);\n }, { immediate: true });\n\n const saveDetailed = async (\n handler: SaveChangesHandler<TData>,\n rowIds?: readonly string[]\n ): Promise<GridBatchSaveResult<TData>> => {\n const api = table.api.value;\n if (!api || api.isDestroyed()) throw new Error(\"[MachTable] Cannot save before the grid is ready.\");\n if (saving.value) throw new Error(\"[MachTable] A save operation is already in progress.\");\n saving.value = true;\n saveError.value = null;\n lastSaveResult.value = null;\n try {\n const result = await api.saveChangesDetailed(handler, rowIds);\n lastSaveResult.value = result;\n refresh();\n options.onSaveSuccess?.(result.saved);\n options.onSaveResult?.(result);\n return result;\n } catch (error) {\n saveError.value = error;\n options.onSaveError?.(error);\n throw error;\n } finally {\n saving.value = false;\n }\n };\n const save = async (\n handler: SaveChangesHandler<TData>,\n rowIds?: readonly string[]\n ): Promise<GridChange<TData>[]> => (await saveDetailed(handler, rowIds)).saved;\n\n const clearSaveIssues = (): void => { lastSaveResult.value = null; };\n const resolveConflict = (rowId: string, strategy: \"acceptServer\" | \"keepLocal\"): boolean => {\n const result = lastSaveResult.value;\n const conflict = result?.conflicts.find((entry) => entry.rowId === rowId);\n const api = table.api.value;\n if (!result || !conflict || !api || !resolveSaveConflict(api, conflict, strategy)) return false;\n lastSaveResult.value = {\n ...result,\n failures: result.failures,\n conflicts: result.conflicts.filter((entry) => entry.rowId !== rowId)\n };\n refresh();\n return true;\n };\n\n const rollback = (rowIds?: readonly string[]): boolean => {\n const changed = table.api.value?.rollbackChanges(rowIds) ?? false;\n refresh();\n return changed;\n };\n const markSaved = (rowIds?: readonly string[]): void => {\n table.api.value?.markChangesSaved(rowIds);\n refresh();\n };\n const reveal = (rowId: string, colId?: string, edit = false): boolean => {\n const api = table.api.value;\n const node = api?.getNodeById(rowId);\n if (!api || !node || node.rowIndex < 0) return false;\n api.scrollToIndex(node.rowIndex, \"middle\");\n return colId && edit ? api.startEditingCell({ rowIndex: node.rowIndex, colId }) : true;\n };\n\n const onBeforeUnload = (event: BeforeUnloadEvent): string | undefined => {\n if (!dirty.value) return undefined;\n const message = options.beforeUnloadMessage ?? \"存在未保存的表格修改。\";\n event.preventDefault();\n event.returnValue = message;\n return message;\n };\n if (options.guardBeforeUnload && typeof window !== \"undefined\") {\n window.addEventListener(\"beforeunload\", onBeforeUnload);\n }\n\n onScopeDispose(() => {\n removeDirtyListener?.();\n removeDirtyListener = null;\n if (options.guardBeforeUnload && typeof window !== \"undefined\") {\n window.removeEventListener(\"beforeunload\", onBeforeUnload);\n }\n });\n\n return {\n changes,\n dirtyRowIds,\n dirty,\n saving,\n saveError,\n lastSaveResult,\n saveIssues,\n failedRowIds,\n save,\n saveDetailed,\n clearSaveIssues,\n resolveConflict,\n rollback,\n markSaved,\n reveal,\n refresh\n };\n}\n","import {\n computed,\n isRef,\n nextTick,\n onScopeDispose,\n ref,\n shallowRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from \"vue\";\nimport {\n getByPath,\n normalizeAdvancedFilterModel,\n type AdvancedFilterModel,\n type FilterChangedEvent,\n type FilterModel,\n type GridApi,\n type GridOptions,\n type OverlayContent,\n type OverlayTemplate,\n type PaginationChangedEvent,\n type SelectionChangedEvent,\n type SortChangedEvent,\n type SortModel\n} from \"@agile-team/mach-table\";\n\nexport type MachTableQuerySource<TQuery> =\n | TQuery\n | Readonly<Ref<TQuery>>\n | (() => TQuery);\n\nexport interface MachTablePageRequest<TQuery> {\n page: number;\n pageSize: number;\n query: TQuery;\n sortModel: SortModel;\n filterModel: FilterModel;\n advancedFilterModel: AdvancedFilterModel | null;\n quickFilterText: string | null;\n signal: AbortSignal;\n}\n\nexport interface MachTablePageResult<TData> {\n rows: readonly TData[];\n total: number;\n}\n\nexport type MachTableRemoteSelectionState =\n | { mode: \"explicit\"; selectedKeys: string[] }\n | { mode: \"allMatching\"; excludedKeys: string[] };\n\nexport interface UseMachTableQueryOptions<TData, TQuery = Record<string, unknown>> {\n request(params: MachTablePageRequest<TQuery>): Promise<MachTablePageResult<TData>>;\n query: MachTableQuerySource<TQuery>;\n /** Stable row key used for updates and cross-page selection. */\n rowKey: string | ((row: TData) => string | number);\n initialPage?: number;\n pageSize?: number;\n pageSizeOptions?: readonly number[];\n immediate?: boolean;\n /** auto reloads when query/grid criteria change; manual waits for reload/reset. */\n mode?: \"auto\" | \"manual\";\n debounceMs?: number;\n keepPreviousData?: boolean;\n /** `query` additionally enables compact select-all-matching rules. */\n selectionScope?: \"page\" | \"preserve\" | \"query\";\n /** Defaults true: a different business/filter query cannot inherit stale selections. */\n clearSelectionOnQueryChange?: boolean;\n quickFilterText?: Ref<string | null>;\n /** Renders inside the first-class error overlay for the latest failed request. */\n errorOverlay?(context: { error: unknown; retry(): Promise<void> }): OverlayContent;\n emptyOverlay?: OverlayTemplate;\n onSuccess?(result: MachTablePageResult<TData>): void;\n onError?(error: unknown): void;\n}\n\nexport interface UseMachTableQueryReturn<TData> {\n rows: ShallowRef<TData[]>;\n loading: Ref<boolean>;\n error: ShallowRef<unknown | null>;\n page: Ref<number>;\n pageSize: Ref<number>;\n total: Ref<number>;\n sortModel: ShallowRef<SortModel>;\n filterModel: ShallowRef<FilterModel>;\n advancedFilterModel: ShallowRef<AdvancedFilterModel | null>;\n selectedKeys: Ref<string[]>;\n selectedRows: ShallowRef<TData[]>;\n selectionState: ComputedRef<MachTableRemoteSelectionState>;\n gridProps: ComputedRef<GridOptions<TData>>;\n bindings: ComputedRef<GridOptions<TData>>;\n reload(options?: { resetPage?: boolean }): Promise<void>;\n retry(): Promise<void>;\n reset(): Promise<void>;\n abort(): void;\n clearSelection(): void;\n /** Selects the complete server query without downloading every row ID. */\n selectAllMatching(): void;\n applySelectionState(state: MachTableRemoteSelectionState): void;\n}\n\nfunction readSource<T>(source: MachTableQuerySource<T>): T {\n if (typeof source === \"function\") return (source as () => T)();\n return isRef(source) ? source.value : source;\n}\n\nfunction normalizePositive(value: number | undefined, fallback: number): number {\n return typeof value === \"number\" && Number.isFinite(value) && value > 0\n ? Math.floor(value)\n : fallback;\n}\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof DOMException\n ? error.name === \"AbortError\"\n : typeof error === \"object\" && error != null && \"name\" in error && (error as { name?: unknown }).name === \"AbortError\";\n}\n\n/**\n * B-side remote-list controller: paging, sorting, filtering, cancellation,\n * stale-response protection and cross-page selection in one typed binding.\n */\nexport function useMachTableQuery<TData, TQuery = Record<string, unknown>>(\n options: UseMachTableQueryOptions<TData, TQuery>\n): UseMachTableQueryReturn<TData> {\n const rows = shallowRef<TData[]>([]);\n const loading = ref(false);\n const error = shallowRef<unknown | null>(null);\n const page = ref(normalizePositive(options.initialPage, 1));\n const pageSize = ref(normalizePositive(options.pageSize, 20));\n const total = ref(0);\n const sortModel = shallowRef<SortModel>([]);\n const filterModel = shallowRef<FilterModel>({});\n const advancedFilterModel = shallowRef<AdvancedFilterModel | null>(null);\n const selectedKeys = ref<string[]>([]);\n const selectedRows = shallowRef<TData[]>([]);\n const selectedIds = new Set<string>();\n const excludedIds = new Set<string>();\n const selectedById = new Map<string, TData>();\n const quickFilterText = options.quickFilterText ?? ref<string | null>(null);\n const selectionScope = options.selectionScope ?? \"preserve\";\n const automatic = options.mode !== \"manual\";\n const allMatching = ref(false);\n const selectionRevision = ref(0);\n const pageSizes = [...new Set((options.pageSizeOptions ?? [10, 20, 50, 100]).map((value) => normalizePositive(value, 0)).filter(Boolean))];\n if (!pageSizes.includes(pageSize.value)) pageSizes.push(pageSize.value);\n pageSizes.sort((a, b) => a - b);\n\n let api: GridApi<TData> | null = null;\n let controller: AbortController | null = null;\n let generation = 0;\n let debounceTimer: ReturnType<typeof setTimeout> | null = null;\n let suppressGridEvents = false;\n let suppressSelectionEvents = false;\n let updatingSelectedRefs = false;\n\n const rowId = (row: TData): string => {\n const value = typeof options.rowKey === \"function\"\n ? options.rowKey(row)\n : getByPath(row, options.rowKey);\n if (value == null || String(value).length === 0) {\n throw new Error(`[MachTable] useMachTableQuery rowKey \\\"${String(options.rowKey)}\\\" returned an empty value.`);\n }\n return String(value);\n };\n\n const updateSelectedRefs = (): void => {\n updatingSelectedRefs = true;\n selectedKeys.value = allMatching.value ? [] : [...selectedIds];\n updatingSelectedRefs = false;\n const ids = allMatching.value ? [...selectedById.keys()] : [...selectedIds];\n selectedRows.value = ids.flatMap((id) => {\n const row = selectedById.get(id);\n return row === undefined || excludedIds.has(id) ? [] : [row];\n });\n selectionRevision.value++;\n };\n\n const isSelectedId = (id: string): boolean => allMatching.value\n ? !excludedIds.has(id)\n : selectedIds.has(id);\n\n const syncVisibleSelection = (): void => {\n if (!api || api.isDestroyed()) return;\n const selected = rows.value.filter((row) => isSelectedId(rowId(row)));\n suppressSelectionEvents = true;\n try {\n api.setSelection(selected, true);\n } finally {\n suppressSelectionEvents = false;\n }\n };\n\n const abort = (): void => {\n generation++;\n controller?.abort();\n controller = null;\n if (debounceTimer != null) clearTimeout(debounceTimer);\n debounceTimer = null;\n loading.value = false;\n };\n\n const isStaleRequest = (activeController: AbortController, requestGeneration: number): boolean =>\n activeController.signal.aborted || requestGeneration !== generation;\n\n const validatePageResult = (result: MachTablePageResult<TData>): void => {\n if (!result || !Array.isArray(result.rows) || !Number.isFinite(result.total) || result.total < 0) {\n throw new TypeError(\"[MachTable] Remote request must resolve to { rows: TData[], total: non-negative number }.\");\n }\n };\n\n const applyPageResult = async (\n result: MachTablePageResult<TData>,\n activeController: AbortController,\n requestGeneration: number\n ): Promise<void> => {\n if (isStaleRequest(activeController, requestGeneration)) return;\n validatePageResult(result);\n const nextRows = [...result.rows];\n for (const row of nextRows) rowId(row);\n rows.value = nextRows;\n total.value = Math.floor(result.total);\n for (const row of rows.value) {\n const id = rowId(row);\n if (isSelectedId(id)) selectedById.set(id, row);\n else selectedById.delete(id);\n }\n updateSelectedRefs();\n options.onSuccess?.(result);\n await nextTick();\n syncVisibleSelection();\n };\n\n const handleRequestError = (\n requestError: unknown,\n activeController: AbortController,\n requestGeneration: number\n ): void => {\n if (isStaleRequest(activeController, requestGeneration) || isAbortError(requestError)) return;\n error.value = requestError ?? new Error();\n options.onError?.(error.value);\n };\n\n const load = async (): Promise<void> => {\n if (debounceTimer != null) clearTimeout(debounceTimer);\n debounceTimer = null;\n controller?.abort();\n const activeController = new AbortController();\n controller = activeController;\n const requestGeneration = ++generation;\n loading.value = true;\n error.value = null;\n if (options.keepPreviousData === false) rows.value = [];\n\n try {\n const result = await options.request({\n page: page.value,\n pageSize: pageSize.value,\n query: readSource(options.query),\n sortModel: sortModel.value.map((item) => ({ ...item })),\n filterModel: { ...filterModel.value },\n advancedFilterModel: normalizeAdvancedFilterModel(advancedFilterModel.value),\n quickFilterText: quickFilterText.value,\n signal: activeController.signal\n });\n await applyPageResult(result, activeController, requestGeneration);\n } catch (requestError) {\n handleRequestError(requestError, activeController, requestGeneration);\n } finally {\n if (requestGeneration === generation) {\n loading.value = false;\n if (controller === activeController) controller = null;\n }\n }\n };\n\n const scheduleLoad = (resetPage: boolean): void => {\n if (resetPage) page.value = 1;\n if (debounceTimer != null) clearTimeout(debounceTimer);\n if (controller) {\n generation++;\n controller.abort();\n controller = null;\n loading.value = false;\n }\n const delay = Math.max(0, options.debounceMs ?? 0);\n if (delay === 0) {\n void load();\n return;\n }\n debounceTimer = setTimeout(() => { void load(); }, delay);\n };\n\n const onGridReady = (event: { api: GridApi<TData> }): void => {\n api = event.api;\n void nextTick(syncVisibleSelection);\n };\n const onPaginationChanged = (event: PaginationChangedEvent<TData>): void => {\n if (suppressGridEvents) return;\n if (event.page === page.value && event.pageSize === pageSize.value) return;\n page.value = event.page;\n pageSize.value = event.pageSize;\n if (automatic) void load();\n };\n const onSortChanged = (event: SortChangedEvent<TData>): void => {\n if (suppressGridEvents) return;\n sortModel.value = event.sortModel.map((item) => ({ ...item }));\n if (automatic) scheduleLoad(true);\n else page.value = 1;\n };\n const onFilterChanged = (event: FilterChangedEvent<TData>): void => {\n if (suppressGridEvents) return;\n filterModel.value = { ...event.filterModel };\n advancedFilterModel.value = normalizeAdvancedFilterModel(event.advancedFilterModel);\n if (options.clearSelectionOnQueryChange !== false) clearSelection();\n if (automatic) scheduleLoad(true);\n else page.value = 1;\n };\n const onSelectionChanged = (event: SelectionChangedEvent<TData>): void => {\n if (suppressSelectionEvents) return;\n const visibleIds = new Set(rows.value.map(rowId));\n const nextVisibleIds = new Set(event.selectedRows.map(rowId));\n if (allMatching.value) {\n for (const id of visibleIds) {\n if (nextVisibleIds.has(id)) excludedIds.delete(id);\n else {\n excludedIds.add(id);\n selectedById.delete(id);\n }\n }\n for (const row of event.selectedRows) selectedById.set(rowId(row), row);\n updateSelectedRefs();\n return;\n }\n if (selectionScope === \"page\") {\n selectedIds.clear();\n selectedById.clear();\n } else {\n for (const id of visibleIds) {\n selectedIds.delete(id);\n selectedById.delete(id);\n }\n }\n for (const row of event.selectedRows) {\n const id = rowId(row);\n selectedIds.add(id);\n selectedById.set(id, row);\n }\n updateSelectedRefs();\n };\n\n const gridProps = computed<GridOptions<TData>>(() => ({\n rowData: rows.value,\n loading: loading.value,\n rowKey: rowId,\n manualSorting: true,\n manualFiltering: true,\n advancedFilterModel: advancedFilterModel.value,\n quickFilterText: quickFilterText.value,\n error: error.value,\n overlayErrorTemplate: error.value\n ? () => options.errorOverlay?.({ error: error.value, retry: load }) ?? \"Remote request failed. Please retry.\"\n : undefined,\n overlayNoRowsTemplate: options.emptyOverlay,\n pagination: {\n mode: \"server\",\n page: page.value,\n pageSize: pageSize.value,\n pageSizeOptions: pageSizes,\n total: total.value,\n showTotal: true,\n showPageSizeSelector: true\n },\n onGridReady,\n onPaginationChanged,\n onSortChanged,\n onFilterChanged,\n onSelectionChanged\n }));\n\n const reload = async (reloadOptions: { resetPage?: boolean } = {}): Promise<void> => {\n if (reloadOptions.resetPage) page.value = 1;\n await load();\n };\n const reset = async (): Promise<void> => {\n page.value = 1;\n sortModel.value = [];\n filterModel.value = {};\n advancedFilterModel.value = null;\n clearSelection();\n suppressGridEvents = true;\n try {\n api?.setSortModel(null);\n api?.setFilterModel(null);\n api?.setAdvancedFilterModel(null);\n } finally {\n suppressGridEvents = false;\n }\n await load();\n };\n const clearSelection = (): void => {\n allMatching.value = false;\n selectedIds.clear();\n excludedIds.clear();\n selectedById.clear();\n updateSelectedRefs();\n suppressSelectionEvents = true;\n try { api?.deselectAll(); } finally { suppressSelectionEvents = false; }\n };\n const selectAllMatching = (): void => {\n allMatching.value = true;\n selectedIds.clear();\n excludedIds.clear();\n selectedById.clear();\n for (const row of rows.value) selectedById.set(rowId(row), row);\n updateSelectedRefs();\n syncVisibleSelection();\n };\n const applySelectionState = (state: MachTableRemoteSelectionState): void => {\n selectedIds.clear();\n excludedIds.clear();\n selectedById.clear();\n allMatching.value = state.mode === \"allMatching\";\n const ids = state.mode === \"allMatching\" ? state.excludedKeys : state.selectedKeys;\n for (const id of ids.map(String)) {\n if (state.mode === \"allMatching\") excludedIds.add(id);\n else selectedIds.add(id);\n }\n for (const row of rows.value) {\n const id = rowId(row);\n if (isSelectedId(id)) selectedById.set(id, row);\n }\n updateSelectedRefs();\n syncVisibleSelection();\n };\n\n const selectionState = computed<MachTableRemoteSelectionState>(() => {\n void selectionRevision.value;\n return allMatching.value\n ? { mode: \"allMatching\", excludedKeys: [...excludedIds] }\n : { mode: \"explicit\", selectedKeys: [...selectedIds] };\n });\n\n watch(\n () => readSource(options.query),\n () => {\n if (options.clearSelectionOnQueryChange !== false) clearSelection();\n if (automatic) scheduleLoad(true);\n else page.value = 1;\n },\n { deep: true, immediate: automatic && options.immediate !== false }\n );\n watch(quickFilterText, () => {\n if (options.clearSelectionOnQueryChange !== false) clearSelection();\n if (automatic) scheduleLoad(true);\n else page.value = 1;\n });\n watch(selectedKeys, (keys) => {\n if (updatingSelectedRefs) return;\n allMatching.value = false;\n excludedIds.clear();\n const wanted = new Set(keys.map(String));\n selectedIds.clear();\n for (const id of wanted) selectedIds.add(id);\n for (const id of [...selectedById.keys()]) {\n if (!wanted.has(id)) selectedById.delete(id);\n }\n for (const row of rows.value) {\n const id = rowId(row);\n if (wanted.has(id)) selectedById.set(id, row);\n }\n syncVisibleSelection();\n updateSelectedRefs();\n }, { deep: true, flush: \"sync\" });\n\n onScopeDispose(() => {\n abort();\n api = null;\n });\n\n return {\n rows,\n loading,\n error,\n page,\n pageSize,\n total,\n sortModel,\n filterModel,\n advancedFilterModel,\n selectedKeys,\n selectedRows,\n selectionState,\n gridProps,\n bindings: gridProps,\n reload,\n retry: load,\n reset,\n abort,\n clearSelection,\n selectAllMatching,\n applySelectionState\n };\n}\n","import { computed, onScopeDispose, ref, shallowRef, watch, type ComputedRef, type Ref, type ShallowRef } from \"vue\";\nimport { createMachTableCommands, type GridOptions, type MachTableCommands } from \"@agile-team/mach-table\";\nimport { useMachTable, type UseMachTableReturn } from \"./useMachTable\";\nimport { useMachTableEditing, type UseMachTableEditingOptions, type UseMachTableEditingReturn } from \"./useMachTableEditing\";\nimport { useMachTableQuery, type UseMachTableQueryOptions, type UseMachTableQueryReturn } from \"./useMachTableQuery\";\n\nexport interface UseMachTableControllerOptions<TData, TQuery = Record<string, unknown>> {\n /** Omit for local rowData; provide for a complete remote table workflow. */\n query?: UseMachTableQueryOptions<TData, TQuery>;\n editing?: UseMachTableEditingOptions<TData>;\n initialSearch?: string;\n}\n\nexport interface UseMachTableControllerReturn<TData> {\n table: UseMachTableReturn<TData>;\n query: UseMachTableQueryReturn<TData> | null;\n editing: UseMachTableEditingReturn<TData>;\n bindings: ComputedRef<GridOptions<TData>>;\n search: Ref<string>;\n selectedRows: ShallowRef<TData[]>;\n selectedCount: ComputedRef<number>;\n busy: ComputedRef<boolean>;\n error: ComputedRef<unknown | null>;\n commands: MachTableCommands;\n reload(): Promise<void>;\n}\n\n/** One cohesive controller for API readiness, query, selection, editing and toolbar commands. */\nexport function useMachTableController<TData, TQuery = Record<string, unknown>>(\n options: UseMachTableControllerOptions<TData, TQuery> = {}\n): UseMachTableControllerReturn<TData> {\n const table = useMachTable<TData>();\n const search = ref(options.initialSearch ?? \"\");\n const query = options.query\n ? useMachTableQuery({\n ...options.query,\n quickFilterText: options.query.quickFilterText ?? computed(() => search.value || null)\n })\n : null;\n const editing = useMachTableEditing(table, options.editing);\n const selectedRows = shallowRef<TData[]>([]);\n let removeSelectionListener: (() => void) | null = null;\n\n const syncSelection = (): void => {\n selectedRows.value = query?.selectedRows.value ?? table.api.value?.getSelectedRows() ?? [];\n };\n watch(table.api, (api) => {\n removeSelectionListener?.();\n removeSelectionListener = null;\n if (api && !api.isDestroyed()) removeSelectionListener = api.addEventListener(\"selectionChanged\", syncSelection);\n syncSelection();\n }, { immediate: true });\n if (query) watch(query.selectedRows, syncSelection, { deep: false });\n\n const reload = async (): Promise<void> => {\n if (query) await query.reload();\n else {\n const api = table.api.value;\n if (api?.isInfinite()) await api.reload();\n else api?.refreshCells();\n }\n };\n const commands = createMachTableCommands<TData>({ getApi: () => table.api.value, reload });\n const bindings = computed<GridOptions<TData>>(() => query?.bindings.value ?? {});\n const selectedCount = computed(() => {\n if (!query) return selectedRows.value.length;\n const state = query.selectionState.value;\n return state.mode === \"allMatching\"\n ? Math.max(0, query.total.value - state.excludedKeys.length)\n : state.selectedKeys.length;\n });\n const busy = computed(() => query?.loading.value === true || editing.saving.value);\n const error = computed(() => query?.error.value ?? editing.saveError.value ?? null);\n\n watch(search, (value) => {\n if (!query) commands.search(value || null);\n });\n onScopeDispose(() => {\n removeSelectionListener?.();\n removeSelectionListener = null;\n });\n\n return { table, query, editing, bindings, search, selectedRows, selectedCount, busy, error, commands, reload };\n}\n"],"mappings":"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","names":["onScopeDispose","ref","shallowRef","watch","useMachTable","componentRef","api","ready","generation","comp","currentGeneration","currentApi","computed","onScopeDispose","ref","shallowRef","watch","resolveSaveConflict","useMachTableEditing","table","options","changes","dirtyRowIds","saving","saveError","lastSaveResult","dirty","saveIssues","failedRowIds","issue","removeDirtyListener","refresh","api","saveDetailed","handler","rowIds","result","error","save","clearSaveIssues","resolveConflict","rowId","strategy","conflict","entry","rollback","changed","markSaved","reveal","colId","edit","node","onBeforeUnload","event","message","computed","isRef","nextTick","onScopeDispose","ref","shallowRef","watch","getByPath","normalizeAdvancedFilterModel","readSource","source","normalizePositive","value","fallback","isAbortError","error","useMachTableQuery","options","rows","loading","page","pageSize","total","sortModel","filterModel","advancedFilterModel","selectedKeys","selectedRows","selectedIds","excludedIds","selectedById","quickFilterText","selectionScope","automatic","allMatching","selectionRevision","pageSizes","a","b","api","controller","generation","debounceTimer","suppressGridEvents","suppressSelectionEvents","updatingSelectedRefs","rowId","row","updateSelectedRefs","ids","id","isSelectedId","syncVisibleSelection","selected","abort","isStaleRequest","activeController","requestGeneration","validatePageResult","result","applyPageResult","nextRows","handleRequestError","requestError","load","item","scheduleLoad","resetPage","delay","onGridReady","event","onPaginationChanged","onSortChanged","onFilterChanged","clearSelection","onSelectionChanged","visibleIds","nextVisibleIds","gridProps","reload","reloadOptions","reset","selectAllMatching","applySelectionState","state","selectionState","keys","wanted","computed","onScopeDispose","ref","shallowRef","watch","createMachTableCommands","useMachTableController","options","table","useMachTable","search","ref","query","useMachTableQuery","computed","editing","useMachTableEditing","selectedRows","shallowRef","removeSelectionListener","syncSelection","watch","api","reload","commands","createMachTableCommands","bindings","selectedCount","state","busy","error","value","onScopeDispose"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-MCLI6WUN.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-MCLI6WUN.cjs","sourcesContent":[null]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/globalRegistration.ts"],"sourcesContent":["import type { App, Component } from \"vue\";\nimport type { MachTable } from \"./MachTable\";\nimport type { MachTableToolbar } from \"./MachTableToolbar\";\nimport { createMachTableConfigRef, MACH_TABLE_CONFIG_KEY, MACH_TABLE_DEFAULTS_KEY } from \"./defaults\";\nimport type { MachTableRuntimeConfig } from \"./configuration\";\n\ndeclare module \"vue\" {\n export interface GlobalComponents {\n MachTable: typeof MachTable;\n RobotGrid: typeof MachTable;\n MachTableToolbar: typeof MachTableToolbar;\n }\n}\n\nexport interface MachTablePluginOptions extends MachTableRuntimeConfig {\n /** Global component name. Defaults to `MachTable`. */\n componentName?: string;\n /** Also register the backwards-compatible `RobotGrid` name. Defaults to true. */\n registerRobotGridAlias?: boolean;\n}\n\nexport function registerGlobalMachTable(\n app: App,\n component: Component,\n options: MachTablePluginOptions = {}\n): void {\n const componentName = options.componentName ?? \"MachTable\";\n if (!componentName.trim()) {\n throw new Error(\"[MachTable] Global componentName must not be empty.\");\n }\n\n const names = new Set([componentName]);\n const config = createMachTableConfigRef(options);\n app.provide(MACH_TABLE_CONFIG_KEY, config);\n app.provide(MACH_TABLE_DEFAULTS_KEY, config.value.defaults ?? {});\n if (options.registerRobotGridAlias !== false) names.add(\"RobotGrid\");\n\n for (const name of names) {\n const existing = app.component(name);\n if (existing && existing !== component) {\n throw new Error(`[MachTable] Cannot register global component \\\"${name}\\\" because that name is already in use.`);\n }\n if (!existing) app.component(name, component);\n }\n}\n"],"mappings":"sDAqBO,SAASA,EACdC,EACAC,EACAC,EAAkC,CAAC,EAC7B,CACN,IAAMC,EAAgBD,EAAQ,eAAiB,YAC/C,GAAI,CAACC,EAAc,KAAK,EACtB,MAAM,IAAI,MAAM,qDAAqD,EAGvE,IAAMC,EAAQ,IAAI,IAAI,CAACD,CAAa,CAAC,EAC/BE,EAASC,EAAyBJ,CAAO,EAC/CF,EAAI,QAAQO,EAAuBF,CAAM,EACzCL,EAAI,QAAQQ,EAAyBH,EAAO,MAAM,UAAY,CAAC,CAAC,EAC5DH,EAAQ,yBAA2B,IAAOE,EAAM,IAAI,WAAW,EAEnE,QAAWK,KAAQL,EAAO,CACxB,IAAMM,EAAWV,EAAI,UAAUS,CAAI,EACnC,GAAIC,GAAYA,IAAaT,EAC3B,MAAM,IAAI,MAAM,iDAAkDQ,CAAI,wCAAyC,EAE5GC,GAAUV,EAAI,UAAUS,EAAMR,CAAS,CAC9C,CACF","names":["registerGlobalMachTable","app","component","options","componentName","names","config","createMachTableConfigRef","MACH_TABLE_CONFIG_KEY","MACH_TABLE_DEFAULTS_KEY","name","existing"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-PPNQWKVV.cjs"],"names":[],"mappings":"AAAA,4HAAuJ,0BAAmF,IAAK,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,iDAAC,CAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAC,CAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,6BAAC,iDAAE,CAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAC,CAAE,CAAC,6BAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,2BAAC,CAAE,CAAC,EAAE,6CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,0BAAC,CAAE,CAAC,CAAC,CAAC,CAAC,0BAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAC,CAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAC,CAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,yBAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,yBAAC,CAAE,CAAC,6BAAC,CAAE,CAAC,CAAC,CAAC,4JAA+D","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-PPNQWKVV.cjs","sourcesContent":[null]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MachTable.ts","../src/adapters.ts","../src/slots.ts"],"sourcesContent":["import { defineComponent, getCurrentInstance, h, onBeforeUnmount, onMounted, ref, watch, type DefineComponent } from \"vue\";\nimport {\n createGrid,\n EVENT_TYPES,\n GRID_OPTION_KEYS,\n GRID_OPTION_META\n} from \"@agile-team/mach-table\";\nimport type { GridApi, GridOptions } from \"@agile-team/mach-table\";\nimport { useMachTableConfig } from \"./defaults\";\nimport {\n resolveMachTableGridOptions,\n type MachTableOptionExplanation,\n type MachTablePresetSelection,\n type ResolvedMachTableGridOptions\n} from \"./configuration\";\nimport { createVueSlotEnhancer } from \"./slots\";\n\ntype AdapterOnlyGridOption = \"className\" | \"ariaLabel\" | \"ariaLabelledBy\" | \"ariaDescribedBy\";\n\nexport type MachTableVueProps<TData = any> = Omit<GridOptions<TData>, AdapterOnlyGridOption> & {\n /** Named application preset(s). Explicit table props still win. */\n preset?: MachTablePresetSelection;\n /** CSS class applied to the Vue host element. */\n className?: string;\n /** CSS class forwarded to MachTable's inner grid root. */\n gridClassName?: string;\n /** Accessible name forwarded to MachTable's inner role=grid element. */\n gridAriaLabel?: string;\n gridAriaLabelledBy?: string;\n gridAriaDescribedBy?: string;\n};\n\nexport interface MachTableVueExposed<TData = any> {\n getApi(): GridApi<TData> | null;\n getResolvedConfig(): GridOptions<TData>;\n explainOption(key: keyof GridOptions<TData> | string): MachTableOptionExplanation;\n}\n\nexport interface MachTableVueComponent extends DefineComponent<MachTableVueProps<any>> {\n new <TData = any>(): {\n $props: MachTableVueProps<TData>;\n $exposed: MachTableVueExposed<TData>;\n };\n}\n\nconst ADAPTER_OPTION_KEYS = GRID_OPTION_KEYS.filter(\n (key) => ![\"className\", \"ariaLabel\", \"ariaLabelledBy\", \"ariaDescribedBy\"].includes(key)\n);\n\nconst runtimeProps: Record<string, { type?: any; default: undefined }> = {};\nfor (const key of ADAPTER_OPTION_KEYS) {\n const kind = GRID_OPTION_META[key].kind;\n const type = kind === \"boolean\"\n ? Boolean\n : kind === \"number\"\n ? Number\n : kind === \"array\"\n ? Array\n : kind === \"function\"\n ? Function\n : kind === \"boolean-object\"\n ? [Boolean, Object]\n : kind === \"object\"\n ? Object\n : kind === \"string\"\n ? String\n : undefined;\n runtimeProps[key] = { type, default: undefined };\n}\nruntimeProps.className = { type: String, default: undefined };\nruntimeProps.gridClassName = { type: String, default: undefined };\nruntimeProps.gridAriaLabel = { type: String, default: undefined };\nruntimeProps.gridAriaLabelledBy = { type: String, default: undefined };\nruntimeProps.gridAriaDescribedBy = { type: String, default: undefined };\nruntimeProps.preset = { type: [String, Array, Boolean], default: undefined };\n\nfunction handlerNameOf(eventType: string): string {\n return \"on\" + eventType.charAt(0).toUpperCase() + eventType.slice(1);\n}\n\nconst MachTableImpl = defineComponent({\n name: \"MachTable\",\n inheritAttrs: false,\n props: runtimeProps,\n emits: [...EVENT_TYPES],\n setup(rawProps, { expose, attrs, emit, slots }) {\n const props = rawProps as Readonly<Record<string, any>>;\n const host = ref<HTMLDivElement | null>(null);\n let api: GridApi | null = null;\n const config = useMachTableConfig();\n const enhanceVueSlots = createVueSlotEnhancer<any>(slots, getCurrentInstance()?.appContext);\n let lastResolution: ResolvedMachTableGridOptions<any> | null = null;\n const reportedWarnings = new Set<string>();\n\n const collectOptions = (): GridOptions<any> => {\n const explicit: Record<string, unknown> = {};\n for (const key of ADAPTER_OPTION_KEYS) {\n const value = props[key];\n if (value !== undefined) explicit[key] = value;\n }\n if (props.gridClassName !== undefined) explicit.className = props.gridClassName;\n if (props.gridAriaLabel !== undefined) explicit.ariaLabel = props.gridAriaLabel;\n if (props.gridAriaLabelledBy !== undefined) explicit.ariaLabelledBy = props.gridAriaLabelledBy;\n if (props.gridAriaDescribedBy !== undefined) explicit.ariaDescribedBy = props.gridAriaDescribedBy;\n const resolution = resolveMachTableGridOptions(\n config.value,\n props.preset as MachTablePresetSelection | undefined,\n explicit as Partial<GridOptions<any>>,\n (warning) => {\n const key = `${warning.code}:${warning.preset ?? \"\"}`;\n if (reportedWarnings.has(key)) return;\n reportedWarnings.add(key);\n if (config.value.onConfigWarning) config.value.onConfigWarning(warning);\n else console.warn(warning.message);\n }\n );\n const enhancedOptions = enhanceVueSlots(resolution.options);\n lastResolution = {\n options: enhancedOptions,\n explain: (key) => {\n if (key === \"columnDefs\" && enhancedOptions.columnDefs !== resolution.options.columnDefs) {\n return {\n key,\n value: enhancedOptions.columnDefs,\n source: \"Vue slots\",\n layers: [...resolution.explain(key).layers, { name: \"Vue slots\", value: enhancedOptions.columnDefs }]\n };\n }\n return resolution.explain(key);\n }\n };\n return lastResolution.options;\n };\n\n onMounted(() => {\n if (!host.value) return;\n const options = collectOptions() as Record<string, unknown>;\n for (const type of EVENT_TYPES) {\n const handlerName = handlerNameOf(type);\n const defaultHandler = options[handlerName];\n options[handlerName] = (event: unknown) => {\n if (typeof defaultHandler === \"function\") (defaultHandler as (value: unknown) => void)(event);\n emit(type, event);\n };\n }\n api = createGrid(host.value, options as GridOptions<any>);\n });\n\n onBeforeUnmount(() => {\n api?.destroy();\n api = null;\n });\n\n watch(\n () => {\n const options = collectOptions() as Record<string, unknown>;\n return [...GRID_OPTION_KEYS.map((key) => options[key])];\n },\n (values, previous) => {\n if (!api) return;\n const changed: Record<string, unknown> = {};\n values.forEach((value, index) => {\n if (Object.is(value, previous[index])) return;\n changed[GRID_OPTION_KEYS[index]] = value;\n });\n if (Object.keys(changed).length > 0) api.updateOptions(changed as Partial<GridOptions<any>>);\n }\n );\n\n expose({\n getApi: (): GridApi | null => api,\n getResolvedConfig: (): GridOptions<any> => lastResolution?.options ?? collectOptions(),\n explainOption: (key: keyof GridOptions<any> | string): MachTableOptionExplanation =>\n (lastResolution ?? resolveMachTableGridOptions(config.value, props.preset, {})).explain(key)\n });\n\n return () => h(\"div\", {\n ...attrs,\n ref: host,\n class: [\"mach-vue-host\", props.className, attrs.class]\n });\n }\n});\n\nexport const MachTable = MachTableImpl as unknown as MachTableVueComponent;\n/** @deprecated Use MachTable. Kept as a source-compatible alias through 0.x. */\nexport const RobotGrid = MachTable;\n/** @deprecated Use MachTableVueProps. */\nexport type RobotGridVueProps<TData = any> = MachTableVueProps<TData>;\n","import {\n h,\n render,\n renderSlot,\n getCurrentInstance,\n shallowReactive,\n type AppContext,\n type Component,\n type Slot\n} from \"vue\";\nimport type {\n CellEditorFactory,\n CellEditorParams,\n CellRendererParams,\n CellRendererFn,\n DetailRowRendererParams,\n HeaderComponentParams,\n ICellRendererResult,\n OverlayTemplate\n} from \"@agile-team/mach-table\";\n\nexport type VueCellRendererProps<TData = any, TValue = any> = CellRendererParams<TData, TValue>;\n\n/**\n * 解析适配器可用的 appContext:\n * 1. 显式传入优先;\n * 2. 否则在 <script setup> 内同步调用工厂时自动捕获宿主组件上下文\n * (使单元格/明细内的 naive、EP 组件继承 ConfigProvider 的主题与国际化)。\n */\nfunction resolveAppContext(explicit?: AppContext): AppContext | undefined {\n if (explicit) return explicit;\n try {\n return getCurrentInstance()?.appContext;\n } catch {\n return undefined;\n }\n}\n\nfunction mountComponent(\n component: Component,\n props: Record<string, any>,\n host: HTMLElement,\n appContext?: AppContext\n): () => void {\n const Root = { setup: () => () => h(component, { ...props }) };\n const vnode = h(Root);\n if (appContext) vnode.appContext = appContext;\n render(vnode, host);\n return () => render(null, host);\n}\n\nfunction mountSlot(\n slot: Slot,\n props: () => Record<string, any>,\n host: HTMLElement,\n appContext?: AppContext,\n defer = true\n): () => void {\n const Root = {\n name: \"MachTableSlot\",\n setup: () => () => renderSlot({ default: slot }, \"default\", props())\n };\n const vnode = h(Root);\n if (appContext) vnode.appContext = appContext;\n let disposed = false;\n const mount = () => {\n if (disposed) return;\n render(vnode, host);\n };\n if (defer) queueMicrotask(mount);\n else mount();\n return () => {\n disposed = true;\n render(null, host);\n };\n}\n\nexport function vueCellRenderer<TData = any, TValue = any>(\n component: Component,\n options?: { appContext?: AppContext }\n): CellRendererFn {\n const appContext = resolveAppContext(options?.appContext);\n return (params: CellRendererParams<TData, TValue>) => {\n const host = document.createElement(\"div\");\n host.className = \"mach-cell-vue\";\n host.style.width = \"100%\";\n const reactiveParams = shallowReactive({ ...params }) as CellRendererParams<TData, TValue>;\n const unmount = mountComponent(component, reactiveParams as Record<string, any>, host, appContext);\n let destroyed = false;\n return {\n el: host,\n refresh: (next) => {\n Object.assign(reactiveParams, next);\n return true;\n },\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n window.setTimeout(unmount, 0);\n }\n };\n };\n}\n\nexport function vueDetailRenderer<TData = any>(\n component: Component,\n options?: { appContext?: AppContext }\n): (params: DetailRowRendererParams<TData>) => { el: HTMLElement; destroy?: () => void } {\n const appContext = resolveAppContext(options?.appContext);\n return (params) => {\n const host = document.createElement(\"div\");\n host.style.height = \"100%\";\n const unmount = mountComponent(component, params as Record<string, any>, host, appContext);\n let destroyed = false;\n return {\n el: host,\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n unmount();\n }\n };\n };\n}\n\n/** Internal/public bridge used by automatic `#cell-*` Vue slots. */\nexport function vueCellSlotRenderer<TData = any, TValue = any>(\n slot: Slot,\n options?: { appContext?: AppContext }\n): CellRendererFn {\n const appContext = resolveAppContext(options?.appContext);\n return (params: CellRendererParams<TData, TValue>) => {\n const host = document.createElement(\"div\");\n host.className = \"mach-cell-vue mach-cell-vue--slot\";\n host.style.width = \"100%\";\n const reactiveParams = shallowReactive({ ...params }) as CellRendererParams<TData, TValue>;\n const unmount = mountSlot(slot, () => reactiveParams, host, appContext);\n return {\n el: host,\n refresh: (next) => {\n Object.assign(reactiveParams, next);\n return true;\n },\n destroy: unmount\n };\n };\n}\n\nexport function vueHeaderSlotRenderer<TData = any>(\n slot: Slot,\n options?: { appContext?: AppContext }\n): (params: HeaderComponentParams<TData>) => ICellRendererResult {\n const appContext = resolveAppContext(options?.appContext);\n return (params) => {\n const host = document.createElement(\"div\");\n host.className = \"mach-header-vue-slot\";\n const unmount = mountSlot(slot, () => params, host, appContext);\n return { el: host, destroy: unmount };\n };\n}\n\nexport interface VueCellEditorSlotProps<TData = any, TValue = any>\n extends CellEditorParams<TData, TValue> {\n value: TValue;\n setValue(value: TValue): void;\n commit(): void;\n cancel(): void;\n}\n\nexport function vueCellEditorSlot<TData = any, TValue = any>(\n slot: Slot,\n options?: { appContext?: AppContext }\n): CellEditorFactory {\n const appContext = resolveAppContext(options?.appContext);\n return (params: CellEditorParams<TData, TValue>) => {\n const state = shallowReactive<{ value: TValue }>({ value: params.value });\n const host = document.createElement(\"div\");\n host.className = \"mach-cell-vue mach-cell-vue--editor\";\n const slotProps = (): VueCellEditorSlotProps<TData, TValue> => ({\n ...params,\n value: state.value,\n setValue: (value) => { state.value = value; },\n commit: () => params.api.stopEditing(false),\n cancel: () => params.api.stopEditing(true)\n });\n const unmount = mountSlot(slot, slotProps as () => Record<string, any>, host, appContext, false);\n return {\n el: host,\n getValue: () => state.value,\n focus: () => {\n const focusable = host.querySelector<HTMLElement>(\n \"input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])\"\n );\n focusable?.focus();\n },\n destroy: unmount\n };\n };\n}\n\nexport function vueDetailSlotRenderer<TData = any>(\n slot: Slot,\n options?: { appContext?: AppContext }\n): (params: DetailRowRendererParams<TData>) => ICellRendererResult {\n const appContext = resolveAppContext(options?.appContext);\n return (params) => {\n const host = document.createElement(\"div\");\n host.className = \"mach-detail-vue-slot\";\n host.style.height = \"100%\";\n const unmount = mountSlot(slot, () => params, host, appContext);\n return { el: host, destroy: unmount };\n };\n}\n\nexport function vueOverlaySlot(\n slot: Slot,\n options?: { appContext?: AppContext }\n): OverlayTemplate {\n const appContext = resolveAppContext(options?.appContext);\n return () => {\n const host = document.createElement(\"div\");\n host.className = \"mach-overlay-vue-slot\";\n const unmount = mountSlot(slot, () => ({}), host, appContext);\n return { el: host, destroy: unmount };\n };\n}\n","import type { AppContext, Slot, Slots } from \"vue\";\nimport type {\n CellEditorParams,\n CellRendererParams,\n ColDef,\n ColDefGroup,\n DetailRowRendererParams,\n GridOptions,\n HeaderComponentParams\n} from \"@agile-team/mach-table\";\nimport {\n vueCellEditorSlot,\n vueCellSlotRenderer,\n vueDetailSlotRenderer,\n vueHeaderSlotRenderer,\n vueOverlaySlot,\n type VueCellEditorSlotProps\n} from \"./adapters\";\n\nexport interface MachTableVueSlots<TData = any> {\n cell?: (props: CellRendererParams<TData>) => any;\n header?: (props: HeaderComponentParams<TData>) => any;\n editor?: (props: VueCellEditorSlotProps<TData>) => any;\n detail?: (props: DetailRowRendererParams<TData>) => any;\n loading?: () => any;\n empty?: () => any;\n actions?: (props: CellRendererParams<TData>) => any;\n [name: `cell-${string}`]: ((props: CellRendererParams<TData>) => any) | undefined;\n [name: `header-${string}`]: ((props: HeaderComponentParams<TData>) => any) | undefined;\n [name: `editor-${string}`]: ((props: CellEditorParams<TData>) => any) | undefined;\n}\n\nfunction namedSlot(slots: Slots, prefix: string, id: string): Slot | undefined {\n return slots[`${prefix}-${id}`] ?? slots[`${prefix}-${id.replace(/[.\\s]+/g, \"-\")}`];\n}\n\nfunction enhanceColumns<TData>(\n definitions: readonly (ColDef<TData> | ColDefGroup<TData>)[],\n slots: Slots,\n appContext?: AppContext\n): (ColDef<TData> | ColDefGroup<TData>)[] {\n return definitions.map((definition, index) => {\n if (Array.isArray((definition as ColDefGroup<TData>).children)) {\n const group = definition as ColDefGroup<TData>;\n return { ...group, children: enhanceColumns(group.children, slots, appContext) };\n }\n const column = definition as ColDef<TData>;\n const id = column.colId ?? column.field ?? `col_${index}`;\n const cell = namedSlot(slots, \"cell\", id) ?? (id === \"op\" ? slots.actions : undefined) ?? slots.cell;\n const header = namedSlot(slots, \"header\", id) ?? slots.header;\n const editor = namedSlot(slots, \"editor\", id) ?? slots.editor;\n return {\n ...column,\n ...(cell ? { cellRenderer: vueCellSlotRenderer(cell, { appContext }) } : {}),\n ...(header ? { headerComponent: vueHeaderSlotRenderer(header, { appContext }) } : {}),\n ...(editor ? { cellEditor: vueCellEditorSlot(editor, { appContext }) } : {})\n };\n });\n}\n\nexport function applyVueSlots<TData>(\n options: GridOptions<TData>,\n slots: Slots,\n appContext?: AppContext\n): GridOptions<TData> {\n const columnDefs = options.columnDefs\n ? enhanceColumns(options.columnDefs, slots, appContext)\n : options.columnDefs;\n return {\n ...options,\n columnDefs,\n ...(slots.detail && !options.detailRowRenderer\n ? { detailRowRenderer: vueDetailSlotRenderer(slots.detail, { appContext }) }\n : {}),\n ...(slots.loading ? { overlayLoadingTemplate: vueOverlaySlot(slots.loading, { appContext }) } : {}),\n ...(slots.empty ? { overlayNoRowsTemplate: vueOverlaySlot(slots.empty, { appContext }) } : {})\n };\n}\n\n/** Creates a stable enhancer so unrelated reactive prop updates do not rebuild columns. */\nexport function createVueSlotEnhancer<TData>(slots: Slots, appContext?: AppContext) {\n let previousDefinitions: GridOptions<TData>[\"columnDefs\"];\n let enhancedDefinitions: GridOptions<TData>[\"columnDefs\"];\n const detailRenderer = slots.detail ? vueDetailSlotRenderer<TData>(slots.detail, { appContext }) : undefined;\n const loadingTemplate = slots.loading ? vueOverlaySlot(slots.loading, { appContext }) : undefined;\n const emptyTemplate = slots.empty ? vueOverlaySlot(slots.empty, { appContext }) : undefined;\n\n return (options: GridOptions<TData>): GridOptions<TData> => {\n if (options.columnDefs !== previousDefinitions) {\n previousDefinitions = options.columnDefs;\n enhancedDefinitions = options.columnDefs\n ? enhanceColumns(options.columnDefs, slots, appContext)\n : options.columnDefs;\n }\n return {\n ...options,\n columnDefs: enhancedDefinitions,\n ...(detailRenderer && !options.detailRowRenderer ? { detailRowRenderer: detailRenderer } : {}),\n ...(loadingTemplate ? { overlayLoadingTemplate: loadingTemplate } : {}),\n ...(emptyTemplate ? { overlayNoRowsTemplate: emptyTemplate } : {})\n };\n };\n}\n"],"mappings":"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","names":["defineComponent","getCurrentInstance","h","onBeforeUnmount","onMounted","ref","watch","createGrid","EVENT_TYPES","GRID_OPTION_KEYS","GRID_OPTION_META","h","render","renderSlot","getCurrentInstance","shallowReactive","resolveAppContext","explicit","mountComponent","component","props","host","appContext","vnode","mountSlot","slot","defer","disposed","mount","vueCellRenderer","options","params","reactiveParams","unmount","destroyed","next","vueDetailRenderer","vueCellSlotRenderer","vueHeaderSlotRenderer","vueCellEditorSlot","state","value","vueDetailSlotRenderer","vueOverlaySlot","namedSlot","slots","prefix","id","enhanceColumns","definitions","appContext","definition","index","group","column","cell","header","editor","vueCellSlotRenderer","vueHeaderSlotRenderer","vueCellEditorSlot","applyVueSlots","options","columnDefs","vueDetailSlotRenderer","vueOverlaySlot","createVueSlotEnhancer","previousDefinitions","enhancedDefinitions","detailRenderer","loadingTemplate","emptyTemplate","ADAPTER_OPTION_KEYS","GRID_OPTION_KEYS","key","runtimeProps","kind","GRID_OPTION_META","type","handlerNameOf","eventType","MachTableImpl","defineComponent","EVENT_TYPES","rawProps","expose","attrs","emit","slots","props","host","ref","api","config","useMachTableConfig","enhanceVueSlots","createVueSlotEnhancer","getCurrentInstance","lastResolution","reportedWarnings","collectOptions","explicit","value","resolution","resolveMachTableGridOptions","warning","enhancedOptions","onMounted","options","handlerName","defaultHandler","event","createGrid","onBeforeUnmount","watch","values","previous","changed","index","h","MachTable","RobotGrid"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-UST6E3TU.cjs"],"names":[],"mappings":"AAAA,qOAAsD,SAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAC,CAAC,CAAC,aAAa,SAAE,aAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAC,CAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAC,kBAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,SAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,8CAA8C,EAAE,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-UST6E3TU.cjs","sourcesContent":[null]}
|
package/dist/editors.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\editors.cjs"],"names":[],"mappings":"AAAA,2sBAA+F,SAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,uBAAO,qCAAC,CAAE,2BAAE,YAAU,CAAC,UAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAC,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,yBAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,yBAAC,IAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,4BAAC,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAC,CAAC,CAAC,SAAS,SAAE,cAAY,CAAC,CAAC,kBAAC,CAAC,CAAC,WAAW,SAAE,uBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,kCAAC,CAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,mCAAmC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\editors.cjs","sourcesContent":[null]}
|
package/dist/editors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/editors.ts"],"sourcesContent":["import {\n createApp,\n getCurrentInstance,\n h,\n render,\n shallowReactive,\n type AppContext,\n type Component,\n type VNodeChild\n} from \"vue\";\nimport type { CellEditorFactory, CellEditorParams } from \"@agile-team/mach-table\";\n\nexport interface VueCellEditorOptions<TData = any, TValue = any> {\n props?: Record<string, unknown> | ((params: CellEditorParams<TData, TValue>) => Record<string, unknown>);\n valueProp?: string;\n updateEvent?: string;\n children?: (context: {\n params: CellEditorParams<TData, TValue>;\n value: TValue;\n setValue(value: TValue): void;\n }) => VNodeChild;\n appContext?: AppContext;\n focusSelector?: string;\n className?: string;\n}\n\nfunction currentAppContext(explicit?: AppContext): AppContext | undefined {\n if (explicit) return explicit;\n try { return getCurrentInstance()?.appContext; } catch { return undefined; }\n}\n\nfunction mountEditor(component: Component, host: HTMLElement, appContext?: AppContext): () => void {\n if (appContext) {\n const vnode = h(component);\n vnode.appContext = appContext;\n render(vnode, host);\n return () => render(null, host);\n }\n const app = createApp(component);\n app.mount(host);\n return () => app.unmount();\n}\n\n/** Adapts any Vue v-model component to MachTable's editor lifecycle. */\nexport function vueCellEditor<TData = any, TValue = any>(\n component: Component,\n options: VueCellEditorOptions<TData, TValue> = {}\n): CellEditorFactory {\n const appContext = currentAppContext(options.appContext);\n const valueProp = options.valueProp ?? \"modelValue\";\n const updateEvent = options.updateEvent ?? \"onUpdate:modelValue\";\n return (params: CellEditorParams<TData, TValue>) => {\n const state = shallowReactive<{ value: TValue }>({ value: params.value });\n const host = document.createElement(\"div\");\n host.className = `mach-cell-vue mach-cell-vue--editor${options.className ? ` ${options.className}` : \"\"}`;\n host.style.width = \"100%\";\n const Root = {\n name: \"MachTableVueCellEditor\",\n setup: () => () => {\n const suppliedProps = typeof options.props === \"function\" ? options.props(params) : options.props;\n const setValue = (value: TValue) => { state.value = value; };\n return h(component, {\n ...(suppliedProps ?? {}),\n [valueProp]: state.value,\n [updateEvent]: setValue,\n style: [{ width: \"100%\" }, suppliedProps?.style]\n }, options.children ? () => options.children!({ params, value: state.value, setValue }) : undefined);\n }\n };\n const unmount = mountEditor(Root, host, appContext);\n let destroyed = false;\n return {\n el: host,\n getValue: () => state.value,\n focus: () => {\n const selector = options.focusSelector ??\n \"input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])\";\n host.querySelector<HTMLElement>(selector)?.focus();\n },\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n unmount();\n }\n };\n };\n}\n\nexport interface ElementPlusEditorComponents {\n input?: Component;\n inputNumber?: Component;\n select?: Component;\n datePicker?: Component;\n}\n\nexport interface ElementPlusEditors {\n input?: CellEditorFactory;\n number?: CellEditorFactory;\n select?: CellEditorFactory;\n date?: CellEditorFactory;\n}\n\n/** Optional Element Plus bridge; Element Plus remains owned by the host app. */\nexport function createElementPlusEditors(\n components: ElementPlusEditorComponents,\n defaults: Partial<Record<keyof ElementPlusEditors, VueCellEditorOptions>> = {}\n): ElementPlusEditors {\n return {\n input: components.input ? vueCellEditor(components.input, defaults.input) : undefined,\n number: components.inputNumber ? vueCellEditor(components.inputNumber, defaults.number) : undefined,\n select: components.select ? vueCellEditor(components.select, { props: { teleported: true }, ...defaults.select }) : undefined,\n date: components.datePicker ? vueCellEditor(components.datePicker, {\n props: { teleported: true, valueFormat: \"YYYY-MM-DD\" },\n ...defaults.date\n }) : undefined\n };\n}\n"],"mappings":"AAAA,OACE,aAAAA,EACA,sBAAAC,EACA,KAAAC,EACA,UAAAC,EACA,mBAAAC,MAIK,MAiBP,SAASC,EAAkBC,EAA+C,CACxE,GAAIA,EAAU,OAAOA,EACrB,GAAI,CAAE,OAAOL,EAAmB,GAAG,UAAY,MAAQ,CAAE,MAAkB,CAC7E,CAEA,SAASM,EAAYC,EAAsBC,EAAmBC,EAAqC,CACjG,GAAIA,EAAY,CACd,IAAMC,EAAQT,EAAEM,CAAS,EACzB,OAAAG,EAAM,WAAaD,EACnBP,EAAOQ,EAAOF,CAAI,EACX,IAAMN,EAAO,KAAMM,CAAI,CAChC,CACA,IAAMG,EAAMZ,EAAUQ,CAAS,EAC/B,OAAAI,EAAI,MAAMH,CAAI,EACP,IAAMG,EAAI,QAAQ,CAC3B,CAGO,SAASC,EACdL,EACAM,EAA+C,CAAC,EAC7B,CACnB,IAAMJ,EAAaL,EAAkBS,EAAQ,UAAU,EACjDC,EAAYD,EAAQ,WAAa,aACjCE,EAAcF,EAAQ,aAAe,sBAC3C,OAAQG,GAA4C,CAClD,IAAMC,EAAQd,EAAmC,CAAE,MAAOa,EAAO,KAAM,CAAC,EAClER,EAAO,SAAS,cAAc,KAAK,EACzCA,EAAK,UAAY,sCAAsCK,EAAQ,UAAY,IAAIA,EAAQ,SAAS,GAAK,EAAE,GACvGL,EAAK,MAAM,MAAQ,OAcnB,IAAMU,EAAUZ,EAbH,CACX,KAAM,yBACN,MAAO,IAAM,IAAM,CACjB,IAAMa,EAAgB,OAAON,EAAQ,OAAU,WAAaA,EAAQ,MAAMG,CAAM,EAAIH,EAAQ,MACtFO,EAAYC,GAAkB,CAAEJ,EAAM,MAAQI,CAAO,EAC3D,OAAOpB,EAAEM,EAAW,CAClB,GAAIY,GAAiB,CAAC,EACtB,CAACL,CAAS,EAAGG,EAAM,MACnB,CAACF,CAAW,EAAGK,EACf,MAAO,CAAC,CAAE,MAAO,MAAO,EAAGD,GAAe,KAAK,CACjD,EAAGN,EAAQ,SAAW,IAAMA,EAAQ,SAAU,CAAE,OAAAG,EAAQ,MAAOC,EAAM,MAAO,SAAAG,CAAS,CAAC,EAAI,MAAS,CACrG,CACF,EACkCZ,EAAMC,CAAU,EAC9Ca,EAAY,GAChB,MAAO,CACL,GAAId,EACJ,SAAU,IAAMS,EAAM,MACtB,MAAO,IAAM,CACX,IAAMM,EAAWV,EAAQ,eACvB,mIACFL,EAAK,cAA2Be,CAAQ,GAAG,MAAM,CACnD,EACA,QAAS,IAAM,CACTD,IACJA,EAAY,GACZJ,EAAQ,EACV,CACF,CACF,CACF,CAiBO,SAASM,EACdC,EACAC,EAA4E,CAAC,EACzD,CACpB,MAAO,CACL,MAAOD,EAAW,MAAQb,EAAca,EAAW,MAAOC,EAAS,KAAK,EAAI,OAC5E,OAAQD,EAAW,YAAcb,EAAca,EAAW,YAAaC,EAAS,MAAM,EAAI,OAC1F,OAAQD,EAAW,OAASb,EAAca,EAAW,OAAQ,CAAE,MAAO,CAAE,WAAY,EAAK,EAAG,GAAGC,EAAS,MAAO,CAAC,EAAI,OACpH,KAAMD,EAAW,WAAab,EAAca,EAAW,WAAY,CACjE,MAAO,CAAE,WAAY,GAAM,YAAa,YAAa,EACrD,GAAGC,EAAS,IACd,CAAC,EAAI,MACP,CACF","names":["createApp","getCurrentInstance","h","render","shallowReactive","currentAppContext","explicit","mountEditor","component","host","appContext","vnode","app","vueCellEditor","options","valueProp","updateEvent","params","state","unmount","suppliedProps","setValue","value","destroyed","selector","createElementPlusEditors","components","defaults"]}
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\index.cjs"],"names":[],"mappings":"AAAA,yZAAwC,wDAA8D,wDAAqG,wDAA4E,IAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAC,CAAE,CAAC,mBAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kFAAmC,IAAK,CAAC,CAAC,CAAC,CAAC,ukCAA6hB","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\index.cjs","sourcesContent":[null]}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin.ts","../src/index.ts"],"sourcesContent":["import type { App } from \"vue\";\nimport { MachTable } from \"./MachTable\";\nimport { registerGlobalMachTable, type MachTablePluginOptions } from \"./globalRegistration\";\n\nexport const MachTablePlugin = {\n install(app: App, options?: MachTablePluginOptions): void {\n registerGlobalMachTable(app, MachTable, options);\n }\n};\n\nexport type { MachTablePluginOptions } from \"./globalRegistration\";\n","import { MachTable, RobotGrid } from \"./MachTable\";\nimport { MachTablePlugin } from \"./plugin\";\n\nexport { MachTable, RobotGrid };\nexport type { MachTableVueComponent, MachTableVueExposed, MachTableVueProps, RobotGridVueProps } from \"./MachTable\";\nexport {\n vueCellEditorSlot,\n vueCellRenderer,\n vueCellSlotRenderer,\n vueDetailRenderer,\n vueDetailSlotRenderer,\n vueHeaderSlotRenderer,\n vueOverlaySlot\n} from \"./adapters\";\nexport { useMachTable } from \"./useMachTable\";\nexport type { UseMachTableReturn } from \"./useMachTable\";\nexport { useMachTableEditing } from \"./useMachTableEditing\";\nexport type {\n UseMachTableEditingOptions,\n UseMachTableEditingReturn\n} from \"./useMachTableEditing\";\nexport { useMachTableQuery } from \"./useMachTableQuery\";\nexport type {\n MachTablePageRequest,\n MachTablePageResult,\n MachTableQuerySource,\n MachTableRemoteSelectionState,\n UseMachTableQueryOptions,\n UseMachTableQueryReturn\n} from \"./useMachTableQuery\";\nexport { useMachTableController } from \"./useMachTableController\";\nexport type { UseMachTableControllerOptions, UseMachTableControllerReturn } from \"./useMachTableController\";\nexport type { VueCellRendererProps } from \"./adapters\";\nexport type { VueCellEditorSlotProps } from \"./adapters\";\nexport { applyVueSlots, createVueSlotEnhancer } from \"./slots\";\nexport type { MachTableVueSlots } from \"./slots\";\nexport { MachTablePlugin } from \"./plugin\";\nexport type { MachTablePluginOptions } from \"./plugin\";\nexport {\n MACH_TABLE_CONFIG_KEY,\n MACH_TABLE_DEFAULTS_KEY,\n provideMachTableConfig,\n provideMachTableDefaults,\n useMachTableConfig,\n useMachTableDefaults\n} from \"./defaults\";\nexport type { MachTableConfigSource } from \"./defaults\";\nexport * from \"@agile-team/mach-table\";\n\nexport default MachTablePlugin;\n"],"mappings":"oRAIO,IAAMA,EAAkB,CAC7B,QAAQC,EAAUC,EAAwC,CACxDC,EAAwBF,EAAKG,EAAWF,CAAO,CACjD,CACF,ECuCA,WAAc,yBAEd,IAAOG,EAAQC","names":["MachTablePlugin","app","options","registerGlobalMachTable","MachTable","src_default","MachTablePlugin"]}
|
package/dist/ui.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\ui.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\ui.cjs","sourcesContent":[null]}
|
package/dist/ui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MachTableToolbar.ts","../src/ui.ts"],"sourcesContent":["import { defineComponent, h, type PropType, type VNodeChild } from \"vue\";\nimport type { GridApi, GridSize, MachTableCommands } from \"@agile-team/mach-table\";\n\nexport interface MachTableToolbarFeatures {\n search?: boolean;\n refresh?: boolean;\n columns?: boolean;\n density?: boolean;\n export?: boolean;\n undoRedo?: boolean;\n fullscreen?: boolean;\n}\n\nconst DEFAULT_FEATURES: Required<MachTableToolbarFeatures> = {\n search: true, refresh: true, columns: true, density: true,\n export: true, undoRedo: false, fullscreen: false\n};\n\nexport const MachTableToolbar = defineComponent({\n name: \"MachTableToolbar\",\n props: {\n api: { type: Object as PropType<GridApi<any> | null>, default: null },\n commands: { type: Object as PropType<MachTableCommands | null>, default: null },\n modelValue: { type: String, default: \"\" },\n loading: { type: Boolean, default: false },\n selectedCount: { type: Number, default: 0 },\n searchPlaceholder: { type: String, default: \"搜索当前结果\" },\n exportFilename: { type: String, default: \"mach-table.csv\" },\n features: { type: Object as PropType<MachTableToolbarFeatures>, default: () => ({}) }\n },\n emits: [\"update:modelValue\", \"refresh\", \"clearSelection\"],\n setup(props, { emit, slots }) {\n const enabled = (key: keyof MachTableToolbarFeatures): boolean => props.features[key] ?? DEFAULT_FEATURES[key];\n const command = (key: keyof MachTableCommands, ...args: unknown[]): unknown => {\n const fn = props.commands ? Reflect.get(props.commands, key) as unknown : undefined;\n return typeof fn === \"function\" && props.commands ? Reflect.apply(fn, props.commands, args) : undefined;\n };\n const button = (label: string, icon: string, click: (event: MouseEvent) => void, disabled = false) =>\n h(\"button\", { type: \"button\", class: \"mach-toolbar__button\", title: label, \"aria-label\": label, disabled, onClick: click }, icon);\n\n const renderMain = () => {\n const children: VNodeChild[] = [...(slots.start?.() ?? [])];\n if (enabled(\"search\")) children.push(h(\"label\", { class: \"mach-toolbar__search\" }, [\n h(\"span\", { class: \"mach-sr-only\" }, props.searchPlaceholder),\n h(\"span\", { \"aria-hidden\": \"true\" }, \"⌕\"),\n h(\"input\", {\n value: props.modelValue,\n type: \"search\",\n placeholder: props.searchPlaceholder,\n onInput: (event: Event) => {\n const value = (event.target as HTMLInputElement).value;\n emit(\"update:modelValue\", value);\n if (props.commands) command(\"search\", value || null);\n else props.api?.setQuickFilter(value || null);\n }\n })\n ]));\n if (enabled(\"refresh\")) children.push(button(\"刷新\", props.loading ? \"…\" : \"↻\", () => {\n emit(\"refresh\");\n if (props.commands) void command(\"refresh\");\n else if (props.api?.isInfinite()) void props.api.reload();\n else props.api?.refreshCells();\n }, props.loading));\n if (enabled(\"columns\")) children.push(button(\"列设置\", \"☷\", (event) => {\n const anchor = event.currentTarget;\n if (!(anchor instanceof HTMLElement)) return;\n if (props.commands) command(\"openColumns\", anchor);\n else props.api?.openColumnWorkbench(anchor);\n }));\n if (enabled(\"density\")) children.push(h(\"select\", {\n class: \"mach-toolbar__select\",\n value: props.api?.getGridOption(\"size\") ?? \"normal\",\n \"aria-label\": \"表格密度\",\n onChange: (event: Event) => {\n const size = (event.target as HTMLSelectElement).value as GridSize;\n if (props.commands) command(\"setDensity\", size);\n else props.api?.setGridOption(\"size\", size);\n }\n }, [h(\"option\", { value: \"compact\" }, \"紧凑\"), h(\"option\", { value: \"normal\" }, \"标准\"), h(\"option\", { value: \"large\" }, \"宽松\")]));\n children.push(...(slots.default?.() ?? []));\n return h(\"div\", { class: \"mach-toolbar__main\" }, children);\n };\n\n const renderAside = () => {\n const children: VNodeChild[] = [];\n if (props.selectedCount > 0) children.push(h(\"button\", {\n type: \"button\", class: \"mach-toolbar__selection\", onClick: () => emit(\"clearSelection\")\n }, `已选 ${props.selectedCount} 项 ×`));\n if (enabled(\"undoRedo\")) {\n children.push(button(\"撤销\", \"↶\", () => {\n if (props.commands) command(\"undo\"); else props.api?.undo();\n }, props.commands ? !props.commands.canUndo() : !props.api?.canUndo()));\n children.push(button(\"重做\", \"↷\", () => {\n if (props.commands) command(\"redo\"); else props.api?.redo();\n }, props.commands ? !props.commands.canRedo() : !props.api?.canRedo()));\n }\n if (enabled(\"export\")) children.push(button(\"导出 CSV\", \"⇩\", () => { if (props.commands) command(\"exportCsv\", props.exportFilename); }, !props.commands));\n if (enabled(\"fullscreen\")) children.push(button(\"全屏\", \"⛶\", () => { void command(\"toggleFullscreen\"); }, !props.commands));\n children.push(...(slots.end?.() ?? []));\n return h(\"div\", { class: \"mach-toolbar__aside\" }, children);\n };\n\n return () => h(\"div\", { class: \"mach-toolbar\", role: \"toolbar\", \"aria-label\": \"表格工具栏\" }, [\n renderMain(), renderAside()\n ]);\n }\n});\n","import type { App } from \"vue\";\nimport { MachTableToolbar } from \"./MachTableToolbar\";\n\n/** Optional UI layer. Install once only when the standard toolbar is desired. */\nexport const MachTableUiPlugin = {\n install(app: App): void {\n if (!app.component(\"MachTableToolbar\")) app.component(\"MachTableToolbar\", MachTableToolbar);\n }\n};\n\nexport { MachTableToolbar };\nexport type { MachTableToolbarFeatures } from \"./MachTableToolbar\";\nexport default MachTableUiPlugin;\n"],"mappings":"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","names":["defineComponent","h","DEFAULT_FEATURES","MachTableToolbar","props","emit","slots","enabled","key","command","args","fn","button","label","icon","click","disabled","renderMain","children","event","value","anchor","size","renderAside","MachTableUiPlugin","app","MachTableToolbar","ui_default","MachTableUiPlugin"]}
|
package/dist/worker.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\worker.cjs"],"names":[],"mappings":"AAAA,obAA0C","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\worker.cjs","sourcesContent":[null]}
|
package/dist/worker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/worker.ts"],"sourcesContent":["export * from \"@agile-team/mach-table/worker\";\n"],"mappings":"AAAA,WAAc","names":[]}
|
package/dist/workflows.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\workflows.cjs"],"names":[],"mappings":"AAAA,iIAAsD,yJAAoF","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\workflows.cjs"}
|
package/dist/workflows.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|