@agile-team/mach-table-vue 0.23.0 → 0.24.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 +37 -111
- package/dist/MachTable-AXAVVKW5.cjs +1 -0
- package/dist/MachTable-PX2BHIPK.js +1 -0
- package/dist/{MachTable-DH0offab.d.cts → MachTable-jS92BIXm.d.cts} +3 -6
- package/dist/{MachTable-DH0offab.d.ts → MachTable-jS92BIXm.d.ts} +3 -6
- package/dist/adapters.cjs +1 -0
- package/dist/adapters.d.cts +53 -0
- package/dist/adapters.d.ts +53 -0
- package/dist/adapters.js +1 -0
- package/dist/async.cjs +1 -1
- package/dist/async.d.cts +4 -3
- package/dist/async.d.ts +4 -3
- package/dist/async.js +1 -1
- package/dist/chunk-3LIWCBSP.cjs +1 -0
- package/dist/chunk-7LXDVLDD.cjs +1 -0
- package/dist/chunk-7MRR4IDI.js +1 -0
- package/dist/chunk-CVSAWAOZ.js +1 -0
- package/dist/chunk-EGEQGM3D.cjs +1 -0
- package/dist/chunk-IS6G3WLH.js +1 -0
- package/dist/chunk-OFITMI6J.cjs +1 -0
- package/dist/chunk-SQVY5G55.js +1 -0
- package/dist/chunk-XECIDGIZ.cjs +1 -0
- package/dist/chunk-YTEW56VQ.js +1 -0
- package/dist/globalRegistration-bUvkfBzA.d.ts +13 -0
- package/dist/globalRegistration-oxdZVSgD.d.cts +13 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +8 -60
- package/dist/index.d.ts +8 -60
- package/dist/index.js +1 -1
- package/dist/ui.cjs +1 -1
- package/dist/ui.d.cts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +1 -1
- package/dist/useMachTable-DXGZxgIJ.d.ts +12 -0
- package/dist/useMachTable-YH4Xj6dS.d.cts +12 -0
- package/dist/workflows.cjs +1 -1
- package/dist/workflows.d.cts +139 -4
- package/dist/workflows.d.ts +139 -4
- package/dist/workflows.js +1 -1
- package/package.json +13 -3
- package/dist/MachTable-A3J2IU6F.cjs +0 -1
- package/dist/MachTable-JB3IUGBZ.js +0 -1
- package/dist/chunk-2YPTQYP3.js +0 -1
- package/dist/chunk-AVPWFS7M.js +0 -1
- package/dist/chunk-D3AAW636.cjs +0 -1
- package/dist/chunk-FZLCBKUV.js +0 -1
- package/dist/chunk-H37MDBNW.js +0 -1
- package/dist/chunk-QHFBQ37M.cjs +0 -1
- package/dist/chunk-Z24LHO3W.cjs +0 -1
- package/dist/chunk-ZIBU265Z.cjs +0 -1
- package/dist/globalRegistration-BhAR-B5k.d.cts +0 -19
- package/dist/globalRegistration-DTWLNxPI.d.ts +0 -19
- package/dist/workflows-CyXKgNRx.d.ts +0 -145
- package/dist/workflows-DEOJrSuj.d.cts +0 -145
- package/dist/{MachTableToolbar-CDkTtitl.d.cts → MachTableToolbar-BUFcnsF4.d.cts} +1 -1
- package/dist/{MachTableToolbar-CDkTtitl.d.ts → MachTableToolbar-BUFcnsF4.d.ts} +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agile-team/mach-table-vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "Official Vue 3 adapter for the MachTable enterprise data grid",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -62,6 +62,16 @@
|
|
|
62
62
|
"default": "./dist/workflows.cjs"
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
|
+
"./adapters": {
|
|
66
|
+
"import": {
|
|
67
|
+
"types": "./dist/adapters.d.ts",
|
|
68
|
+
"default": "./dist/adapters.js"
|
|
69
|
+
},
|
|
70
|
+
"require": {
|
|
71
|
+
"types": "./dist/adapters.d.cts",
|
|
72
|
+
"default": "./dist/adapters.cjs"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
65
75
|
"./worker": {
|
|
66
76
|
"import": {
|
|
67
77
|
"types": "./dist/worker.d.ts",
|
|
@@ -108,7 +118,7 @@
|
|
|
108
118
|
"**/*.css"
|
|
109
119
|
],
|
|
110
120
|
"dependencies": {
|
|
111
|
-
"@agile-team/mach-table": "0.
|
|
121
|
+
"@agile-team/mach-table": "0.24.0"
|
|
112
122
|
},
|
|
113
123
|
"peerDependencies": {
|
|
114
124
|
"vue": ">=3.2.0"
|
|
@@ -122,5 +132,5 @@
|
|
|
122
132
|
"test": "vitest run",
|
|
123
133
|
"test:coverage": "vitest run --coverage"
|
|
124
134
|
},
|
|
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\
|
|
135
|
+
"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\nMachTable 0.24 的官方 Vue 3 适配包。一个依赖即可获得 Core、泛型 `<MachTable>`、原生 slots、应用/路由配置、按需工作流、异步组件边界和自动生命周期清理。\n\n```bash\npnpm add @agile-team/mach-table-vue\n```\n\n应用入口只引入一次样式:\n\n```ts\nimport \"@agile-team/mach-table-vue/styles.css\";\n```\n\n## 局部接入\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 table = useMachTable<Row>();\nconst rows = ref<Row[]>([{ id: \"1\", name: \"MachTable\" }]);\nconst columns: ColDef<Row>[] = [{ field: \"name\", flex: 1, editable: true }];\n</script>\n\n<template>\n <div style=\"height: 520px\">\n <MachTable\n :ref=\"table.ref\"\n :row-data=\"rows\"\n :column-defs=\"columns\"\n row-key=\"id\"\n enable-column-resize\n :persistence=\"{ key: 'customers:list', sections: ['columns'] }\"\n />\n </div>\n</template>\n```\n\n## 全局接入\n\n表格页面较多时,全局注册一次,页面模板直接使用 `<MachTable>`:\n\n```ts\nimport { createApp } from \"vue\";\nimport { MachTablePlugin } from \"@agile-team/mach-table-vue\";\nimport machTableConfig from \"@/config/mach-table.config\";\n\ncreateApp(App).use(MachTablePlugin, machTableConfig).mount(\"#app\");\n```\n\n需要减少首屏代码时改用异步全局插件:\n\n```ts\nimport AsyncMachTablePlugin, { preloadMachTable } from \"@agile-team/mach-table-vue/async\";\n\napp.use(AsyncMachTablePlugin, machTableConfig);\nvoid preloadMachTable(); // 可选:路由 hover 时预取\n```\n\n推荐把约定集中到独立文件:\n\n```ts\n// src/config/mach-table.config.ts\nimport { defineMachTableConfig, defineMachTablePreset } from \"@agile-team/mach-table-vue\";\n\nexport default defineMachTableConfig({\n defaults: {\n size: \"compact\",\n columnLayout: \"fit\",\n enableColumnResize: true,\n defaultColDef: { sortable: true, filter: true, resizable: true }\n },\n defaultPreset: \"list\",\n presets: {\n list: defineMachTablePreset({ stripedRows: true }),\n crud: defineMachTablePreset({ rowSelection: \"multiple\", editType: \"fullRow\" })\n }\n});\n```\n\n布局或路由可用响应式 `provideMachTableConfig()` 叠加配置,表格 props 始终拥有最高优先级。\n\n## 按需子入口\n\n```ts\nimport { useMachTableQuery, useMachTableEditing } from \"@agile-team/mach-table-vue/workflows\";\nimport { MachTableToolbar } from \"@agile-team/mach-table-vue/ui\";\nimport { vueCellRenderer } from \"@agile-team/mach-table-vue/adapters\";\nimport { createElementPlusEditors } from \"@agile-team/mach-table-vue/editors\";\nimport { createWorkerDataProcessor } from \"@agile-team/mach-table-vue/worker\";\n```\n\n- `/workflows`:请求取消、防过期覆盖、服务端分页、跨页选择、脏数据和冲突保存。\n- `/ui`:可选标准工具栏;需要全局组件时另行 `app.use(MachTableUiPlugin)`。\n- `/adapters`:自定义 Vue renderer/editor/detail/overlay 桥接。\n- `/editors`:可选 Element Plus 编辑器,Element Plus 由宿主注入。\n- `/worker`:大型本地过滤/排序的独立 Worker 能力。\n\n该包自动依赖 `@agile-team/mach-table` 并重导出 Core 类型;宿主只需提供 `vue >= 3.2`。\n\n文档:[Vue 指南](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/vue.md) · [企业接入](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [配置中心](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/configuration.md)\n\nSource-available © ChenyCHENYU (Agile Team). 任何使用均须事先取得书面授权。详见 [LICENSE](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) 与[授权流程](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md)。\n"
|
|
126
136
|
}
|
|
@@ -1 +0,0 @@
|
|
|
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;
|
|
@@ -1 +0,0 @@
|
|
|
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/chunk-2YPTQYP3.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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};
|
package/dist/chunk-AVPWFS7M.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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};
|
package/dist/chunk-D3AAW636.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;
|
package/dist/chunk-FZLCBKUV.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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};
|
package/dist/chunk-H37MDBNW.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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};
|
package/dist/chunk-QHFBQ37M.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;
|
package/dist/chunk-Z24LHO3W.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;
|
package/dist/chunk-ZIBU265Z.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { a as MachTable } from './MachTable-DH0offab.cjs';
|
|
2
|
-
import { M as MachTableToolbar } from './MachTableToolbar-CDkTtitl.cjs';
|
|
3
|
-
import { MachTableRuntimeConfig } from '@agile-team/mach-table';
|
|
4
|
-
|
|
5
|
-
declare module "vue" {
|
|
6
|
-
interface GlobalComponents {
|
|
7
|
-
MachTable: typeof MachTable;
|
|
8
|
-
RobotGrid: typeof MachTable;
|
|
9
|
-
MachTableToolbar: typeof MachTableToolbar;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
interface MachTablePluginOptions extends MachTableRuntimeConfig {
|
|
13
|
-
/** Global component name. Defaults to `MachTable`. */
|
|
14
|
-
componentName?: string;
|
|
15
|
-
/** Also register the backwards-compatible `RobotGrid` name. Defaults to true. */
|
|
16
|
-
registerRobotGridAlias?: boolean;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type { MachTablePluginOptions as M };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { a as MachTable } from './MachTable-DH0offab.js';
|
|
2
|
-
import { M as MachTableToolbar } from './MachTableToolbar-CDkTtitl.js';
|
|
3
|
-
import { MachTableRuntimeConfig } from '@agile-team/mach-table';
|
|
4
|
-
|
|
5
|
-
declare module "vue" {
|
|
6
|
-
interface GlobalComponents {
|
|
7
|
-
MachTable: typeof MachTable;
|
|
8
|
-
RobotGrid: typeof MachTable;
|
|
9
|
-
MachTableToolbar: typeof MachTableToolbar;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
interface MachTablePluginOptions extends MachTableRuntimeConfig {
|
|
13
|
-
/** Global component name. Defaults to `MachTable`. */
|
|
14
|
-
componentName?: string;
|
|
15
|
-
/** Also register the backwards-compatible `RobotGrid` name. Defaults to true. */
|
|
16
|
-
registerRobotGridAlias?: boolean;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type { MachTablePluginOptions as M };
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { Ref, ShallowRef, ComputedRef } from 'vue';
|
|
2
|
-
import { GridApi, GridChange, GridBatchSaveResult, SaveChangeIssue, SaveChangeConflict, SaveChangesHandler, SortModel, FilterModel, AdvancedFilterModel, OverlayContent, OverlayTemplate, GridOptions, MachTableCommands } from '@agile-team/mach-table';
|
|
3
|
-
import { b as MachTableVueExposed } from './MachTable-DH0offab.js';
|
|
4
|
-
|
|
5
|
-
interface UseMachTableReturn<TData = any> {
|
|
6
|
-
ref: Ref<MachTableVueExposed<TData> | null>;
|
|
7
|
-
api: ShallowRef<GridApi<TData> | null>;
|
|
8
|
-
ready: ShallowRef<boolean>;
|
|
9
|
-
}
|
|
10
|
-
declare function useMachTable<TData = any>(): UseMachTableReturn<TData>;
|
|
11
|
-
|
|
12
|
-
interface UseMachTableEditingOptions<TData = any> {
|
|
13
|
-
/** Warn before closing/reloading a browser tab with unsaved changes. */
|
|
14
|
-
guardBeforeUnload?: boolean;
|
|
15
|
-
beforeUnloadMessage?: string;
|
|
16
|
-
onSaveSuccess?(saved: readonly GridChange<TData>[]): void;
|
|
17
|
-
onSaveResult?(result: GridBatchSaveResult<TData>): void;
|
|
18
|
-
onSaveError?(error: unknown): void;
|
|
19
|
-
}
|
|
20
|
-
interface UseMachTableEditingReturn<TData = any> {
|
|
21
|
-
changes: ShallowRef<GridChange<TData>[]>;
|
|
22
|
-
dirtyRowIds: Ref<string[]>;
|
|
23
|
-
dirty: ComputedRef<boolean>;
|
|
24
|
-
saving: Ref<boolean>;
|
|
25
|
-
saveError: ShallowRef<unknown | null>;
|
|
26
|
-
lastSaveResult: ShallowRef<GridBatchSaveResult<TData> | null>;
|
|
27
|
-
saveIssues: ComputedRef<Array<SaveChangeIssue | SaveChangeConflict<TData>>>;
|
|
28
|
-
failedRowIds: ComputedRef<string[]>;
|
|
29
|
-
save(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridChange<TData>[]>;
|
|
30
|
-
saveDetailed(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridBatchSaveResult<TData>>;
|
|
31
|
-
clearSaveIssues(): void;
|
|
32
|
-
resolveConflict(rowId: string, strategy: "acceptServer" | "keepLocal"): boolean;
|
|
33
|
-
rollback(rowIds?: readonly string[]): boolean;
|
|
34
|
-
markSaved(rowIds?: readonly string[]): void;
|
|
35
|
-
/** Scrolls to a loaded changed row and optionally opens the failed cell editor. */
|
|
36
|
-
reveal(rowId: string, colId?: string, edit?: boolean): boolean;
|
|
37
|
-
refresh(): void;
|
|
38
|
-
}
|
|
39
|
-
/** Reactive dirty/save workflow layered over useMachTable(). */
|
|
40
|
-
declare function useMachTableEditing<TData = any>(table: UseMachTableReturn<TData>, options?: UseMachTableEditingOptions<TData>): UseMachTableEditingReturn<TData>;
|
|
41
|
-
|
|
42
|
-
type MachTableQuerySource<TQuery> = TQuery | Readonly<Ref<TQuery>> | (() => TQuery);
|
|
43
|
-
interface MachTablePageRequest<TQuery> {
|
|
44
|
-
page: number;
|
|
45
|
-
pageSize: number;
|
|
46
|
-
query: TQuery;
|
|
47
|
-
sortModel: SortModel;
|
|
48
|
-
filterModel: FilterModel;
|
|
49
|
-
advancedFilterModel: AdvancedFilterModel | null;
|
|
50
|
-
quickFilterText: string | null;
|
|
51
|
-
signal: AbortSignal;
|
|
52
|
-
}
|
|
53
|
-
interface MachTablePageResult<TData> {
|
|
54
|
-
rows: readonly TData[];
|
|
55
|
-
total: number;
|
|
56
|
-
}
|
|
57
|
-
type MachTableRemoteSelectionState = {
|
|
58
|
-
mode: "explicit";
|
|
59
|
-
selectedKeys: string[];
|
|
60
|
-
} | {
|
|
61
|
-
mode: "allMatching";
|
|
62
|
-
excludedKeys: string[];
|
|
63
|
-
};
|
|
64
|
-
interface UseMachTableQueryOptions<TData, TQuery = Record<string, unknown>> {
|
|
65
|
-
request(params: MachTablePageRequest<TQuery>): Promise<MachTablePageResult<TData>>;
|
|
66
|
-
query: MachTableQuerySource<TQuery>;
|
|
67
|
-
/** Stable row key used for updates and cross-page selection. */
|
|
68
|
-
rowKey: string | ((row: TData) => string | number);
|
|
69
|
-
initialPage?: number;
|
|
70
|
-
pageSize?: number;
|
|
71
|
-
pageSizeOptions?: readonly number[];
|
|
72
|
-
immediate?: boolean;
|
|
73
|
-
/** auto reloads when query/grid criteria change; manual waits for reload/reset. */
|
|
74
|
-
mode?: "auto" | "manual";
|
|
75
|
-
debounceMs?: number;
|
|
76
|
-
keepPreviousData?: boolean;
|
|
77
|
-
/** `query` additionally enables compact select-all-matching rules. */
|
|
78
|
-
selectionScope?: "page" | "preserve" | "query";
|
|
79
|
-
/** Defaults true: a different business/filter query cannot inherit stale selections. */
|
|
80
|
-
clearSelectionOnQueryChange?: boolean;
|
|
81
|
-
quickFilterText?: Ref<string | null>;
|
|
82
|
-
/** Renders inside the first-class error overlay for the latest failed request. */
|
|
83
|
-
errorOverlay?(context: {
|
|
84
|
-
error: unknown;
|
|
85
|
-
retry(): Promise<void>;
|
|
86
|
-
}): OverlayContent;
|
|
87
|
-
emptyOverlay?: OverlayTemplate;
|
|
88
|
-
onSuccess?(result: MachTablePageResult<TData>): void;
|
|
89
|
-
onError?(error: unknown): void;
|
|
90
|
-
}
|
|
91
|
-
interface UseMachTableQueryReturn<TData> {
|
|
92
|
-
rows: ShallowRef<TData[]>;
|
|
93
|
-
loading: Ref<boolean>;
|
|
94
|
-
error: ShallowRef<unknown | null>;
|
|
95
|
-
page: Ref<number>;
|
|
96
|
-
pageSize: Ref<number>;
|
|
97
|
-
total: Ref<number>;
|
|
98
|
-
sortModel: ShallowRef<SortModel>;
|
|
99
|
-
filterModel: ShallowRef<FilterModel>;
|
|
100
|
-
advancedFilterModel: ShallowRef<AdvancedFilterModel | null>;
|
|
101
|
-
selectedKeys: Ref<string[]>;
|
|
102
|
-
selectedRows: ShallowRef<TData[]>;
|
|
103
|
-
selectionState: ComputedRef<MachTableRemoteSelectionState>;
|
|
104
|
-
gridProps: ComputedRef<GridOptions<TData>>;
|
|
105
|
-
bindings: ComputedRef<GridOptions<TData>>;
|
|
106
|
-
reload(options?: {
|
|
107
|
-
resetPage?: boolean;
|
|
108
|
-
}): Promise<void>;
|
|
109
|
-
retry(): Promise<void>;
|
|
110
|
-
reset(): Promise<void>;
|
|
111
|
-
abort(): void;
|
|
112
|
-
clearSelection(): void;
|
|
113
|
-
/** Selects the complete server query without downloading every row ID. */
|
|
114
|
-
selectAllMatching(): void;
|
|
115
|
-
applySelectionState(state: MachTableRemoteSelectionState): void;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* B-side remote-list controller: paging, sorting, filtering, cancellation,
|
|
119
|
-
* stale-response protection and cross-page selection in one typed binding.
|
|
120
|
-
*/
|
|
121
|
-
declare function useMachTableQuery<TData, TQuery = Record<string, unknown>>(options: UseMachTableQueryOptions<TData, TQuery>): UseMachTableQueryReturn<TData>;
|
|
122
|
-
|
|
123
|
-
interface UseMachTableControllerOptions<TData, TQuery = Record<string, unknown>> {
|
|
124
|
-
/** Omit for local rowData; provide for a complete remote table workflow. */
|
|
125
|
-
query?: UseMachTableQueryOptions<TData, TQuery>;
|
|
126
|
-
editing?: UseMachTableEditingOptions<TData>;
|
|
127
|
-
initialSearch?: string;
|
|
128
|
-
}
|
|
129
|
-
interface UseMachTableControllerReturn<TData> {
|
|
130
|
-
table: UseMachTableReturn<TData>;
|
|
131
|
-
query: UseMachTableQueryReturn<TData> | null;
|
|
132
|
-
editing: UseMachTableEditingReturn<TData>;
|
|
133
|
-
bindings: ComputedRef<GridOptions<TData>>;
|
|
134
|
-
search: Ref<string>;
|
|
135
|
-
selectedRows: ShallowRef<TData[]>;
|
|
136
|
-
selectedCount: ComputedRef<number>;
|
|
137
|
-
busy: ComputedRef<boolean>;
|
|
138
|
-
error: ComputedRef<unknown | null>;
|
|
139
|
-
commands: MachTableCommands;
|
|
140
|
-
reload(): Promise<void>;
|
|
141
|
-
}
|
|
142
|
-
/** One cohesive controller for API readiness, query, selection, editing and toolbar commands. */
|
|
143
|
-
declare function useMachTableController<TData, TQuery = Record<string, unknown>>(options?: UseMachTableControllerOptions<TData, TQuery>): UseMachTableControllerReturn<TData>;
|
|
144
|
-
|
|
145
|
-
export { type MachTablePageRequest as M, type UseMachTableControllerOptions as U, type MachTablePageResult as a, type MachTableQuerySource as b, type MachTableRemoteSelectionState as c, type UseMachTableControllerReturn as d, type UseMachTableEditingOptions as e, type UseMachTableEditingReturn as f, type UseMachTableQueryOptions as g, type UseMachTableQueryReturn as h, type UseMachTableReturn as i, useMachTableController as j, useMachTableEditing as k, useMachTableQuery as l, useMachTable as u };
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { Ref, ShallowRef, ComputedRef } from 'vue';
|
|
2
|
-
import { GridApi, GridChange, GridBatchSaveResult, SaveChangeIssue, SaveChangeConflict, SaveChangesHandler, SortModel, FilterModel, AdvancedFilterModel, OverlayContent, OverlayTemplate, GridOptions, MachTableCommands } from '@agile-team/mach-table';
|
|
3
|
-
import { b as MachTableVueExposed } from './MachTable-DH0offab.cjs';
|
|
4
|
-
|
|
5
|
-
interface UseMachTableReturn<TData = any> {
|
|
6
|
-
ref: Ref<MachTableVueExposed<TData> | null>;
|
|
7
|
-
api: ShallowRef<GridApi<TData> | null>;
|
|
8
|
-
ready: ShallowRef<boolean>;
|
|
9
|
-
}
|
|
10
|
-
declare function useMachTable<TData = any>(): UseMachTableReturn<TData>;
|
|
11
|
-
|
|
12
|
-
interface UseMachTableEditingOptions<TData = any> {
|
|
13
|
-
/** Warn before closing/reloading a browser tab with unsaved changes. */
|
|
14
|
-
guardBeforeUnload?: boolean;
|
|
15
|
-
beforeUnloadMessage?: string;
|
|
16
|
-
onSaveSuccess?(saved: readonly GridChange<TData>[]): void;
|
|
17
|
-
onSaveResult?(result: GridBatchSaveResult<TData>): void;
|
|
18
|
-
onSaveError?(error: unknown): void;
|
|
19
|
-
}
|
|
20
|
-
interface UseMachTableEditingReturn<TData = any> {
|
|
21
|
-
changes: ShallowRef<GridChange<TData>[]>;
|
|
22
|
-
dirtyRowIds: Ref<string[]>;
|
|
23
|
-
dirty: ComputedRef<boolean>;
|
|
24
|
-
saving: Ref<boolean>;
|
|
25
|
-
saveError: ShallowRef<unknown | null>;
|
|
26
|
-
lastSaveResult: ShallowRef<GridBatchSaveResult<TData> | null>;
|
|
27
|
-
saveIssues: ComputedRef<Array<SaveChangeIssue | SaveChangeConflict<TData>>>;
|
|
28
|
-
failedRowIds: ComputedRef<string[]>;
|
|
29
|
-
save(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridChange<TData>[]>;
|
|
30
|
-
saveDetailed(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridBatchSaveResult<TData>>;
|
|
31
|
-
clearSaveIssues(): void;
|
|
32
|
-
resolveConflict(rowId: string, strategy: "acceptServer" | "keepLocal"): boolean;
|
|
33
|
-
rollback(rowIds?: readonly string[]): boolean;
|
|
34
|
-
markSaved(rowIds?: readonly string[]): void;
|
|
35
|
-
/** Scrolls to a loaded changed row and optionally opens the failed cell editor. */
|
|
36
|
-
reveal(rowId: string, colId?: string, edit?: boolean): boolean;
|
|
37
|
-
refresh(): void;
|
|
38
|
-
}
|
|
39
|
-
/** Reactive dirty/save workflow layered over useMachTable(). */
|
|
40
|
-
declare function useMachTableEditing<TData = any>(table: UseMachTableReturn<TData>, options?: UseMachTableEditingOptions<TData>): UseMachTableEditingReturn<TData>;
|
|
41
|
-
|
|
42
|
-
type MachTableQuerySource<TQuery> = TQuery | Readonly<Ref<TQuery>> | (() => TQuery);
|
|
43
|
-
interface MachTablePageRequest<TQuery> {
|
|
44
|
-
page: number;
|
|
45
|
-
pageSize: number;
|
|
46
|
-
query: TQuery;
|
|
47
|
-
sortModel: SortModel;
|
|
48
|
-
filterModel: FilterModel;
|
|
49
|
-
advancedFilterModel: AdvancedFilterModel | null;
|
|
50
|
-
quickFilterText: string | null;
|
|
51
|
-
signal: AbortSignal;
|
|
52
|
-
}
|
|
53
|
-
interface MachTablePageResult<TData> {
|
|
54
|
-
rows: readonly TData[];
|
|
55
|
-
total: number;
|
|
56
|
-
}
|
|
57
|
-
type MachTableRemoteSelectionState = {
|
|
58
|
-
mode: "explicit";
|
|
59
|
-
selectedKeys: string[];
|
|
60
|
-
} | {
|
|
61
|
-
mode: "allMatching";
|
|
62
|
-
excludedKeys: string[];
|
|
63
|
-
};
|
|
64
|
-
interface UseMachTableQueryOptions<TData, TQuery = Record<string, unknown>> {
|
|
65
|
-
request(params: MachTablePageRequest<TQuery>): Promise<MachTablePageResult<TData>>;
|
|
66
|
-
query: MachTableQuerySource<TQuery>;
|
|
67
|
-
/** Stable row key used for updates and cross-page selection. */
|
|
68
|
-
rowKey: string | ((row: TData) => string | number);
|
|
69
|
-
initialPage?: number;
|
|
70
|
-
pageSize?: number;
|
|
71
|
-
pageSizeOptions?: readonly number[];
|
|
72
|
-
immediate?: boolean;
|
|
73
|
-
/** auto reloads when query/grid criteria change; manual waits for reload/reset. */
|
|
74
|
-
mode?: "auto" | "manual";
|
|
75
|
-
debounceMs?: number;
|
|
76
|
-
keepPreviousData?: boolean;
|
|
77
|
-
/** `query` additionally enables compact select-all-matching rules. */
|
|
78
|
-
selectionScope?: "page" | "preserve" | "query";
|
|
79
|
-
/** Defaults true: a different business/filter query cannot inherit stale selections. */
|
|
80
|
-
clearSelectionOnQueryChange?: boolean;
|
|
81
|
-
quickFilterText?: Ref<string | null>;
|
|
82
|
-
/** Renders inside the first-class error overlay for the latest failed request. */
|
|
83
|
-
errorOverlay?(context: {
|
|
84
|
-
error: unknown;
|
|
85
|
-
retry(): Promise<void>;
|
|
86
|
-
}): OverlayContent;
|
|
87
|
-
emptyOverlay?: OverlayTemplate;
|
|
88
|
-
onSuccess?(result: MachTablePageResult<TData>): void;
|
|
89
|
-
onError?(error: unknown): void;
|
|
90
|
-
}
|
|
91
|
-
interface UseMachTableQueryReturn<TData> {
|
|
92
|
-
rows: ShallowRef<TData[]>;
|
|
93
|
-
loading: Ref<boolean>;
|
|
94
|
-
error: ShallowRef<unknown | null>;
|
|
95
|
-
page: Ref<number>;
|
|
96
|
-
pageSize: Ref<number>;
|
|
97
|
-
total: Ref<number>;
|
|
98
|
-
sortModel: ShallowRef<SortModel>;
|
|
99
|
-
filterModel: ShallowRef<FilterModel>;
|
|
100
|
-
advancedFilterModel: ShallowRef<AdvancedFilterModel | null>;
|
|
101
|
-
selectedKeys: Ref<string[]>;
|
|
102
|
-
selectedRows: ShallowRef<TData[]>;
|
|
103
|
-
selectionState: ComputedRef<MachTableRemoteSelectionState>;
|
|
104
|
-
gridProps: ComputedRef<GridOptions<TData>>;
|
|
105
|
-
bindings: ComputedRef<GridOptions<TData>>;
|
|
106
|
-
reload(options?: {
|
|
107
|
-
resetPage?: boolean;
|
|
108
|
-
}): Promise<void>;
|
|
109
|
-
retry(): Promise<void>;
|
|
110
|
-
reset(): Promise<void>;
|
|
111
|
-
abort(): void;
|
|
112
|
-
clearSelection(): void;
|
|
113
|
-
/** Selects the complete server query without downloading every row ID. */
|
|
114
|
-
selectAllMatching(): void;
|
|
115
|
-
applySelectionState(state: MachTableRemoteSelectionState): void;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* B-side remote-list controller: paging, sorting, filtering, cancellation,
|
|
119
|
-
* stale-response protection and cross-page selection in one typed binding.
|
|
120
|
-
*/
|
|
121
|
-
declare function useMachTableQuery<TData, TQuery = Record<string, unknown>>(options: UseMachTableQueryOptions<TData, TQuery>): UseMachTableQueryReturn<TData>;
|
|
122
|
-
|
|
123
|
-
interface UseMachTableControllerOptions<TData, TQuery = Record<string, unknown>> {
|
|
124
|
-
/** Omit for local rowData; provide for a complete remote table workflow. */
|
|
125
|
-
query?: UseMachTableQueryOptions<TData, TQuery>;
|
|
126
|
-
editing?: UseMachTableEditingOptions<TData>;
|
|
127
|
-
initialSearch?: string;
|
|
128
|
-
}
|
|
129
|
-
interface UseMachTableControllerReturn<TData> {
|
|
130
|
-
table: UseMachTableReturn<TData>;
|
|
131
|
-
query: UseMachTableQueryReturn<TData> | null;
|
|
132
|
-
editing: UseMachTableEditingReturn<TData>;
|
|
133
|
-
bindings: ComputedRef<GridOptions<TData>>;
|
|
134
|
-
search: Ref<string>;
|
|
135
|
-
selectedRows: ShallowRef<TData[]>;
|
|
136
|
-
selectedCount: ComputedRef<number>;
|
|
137
|
-
busy: ComputedRef<boolean>;
|
|
138
|
-
error: ComputedRef<unknown | null>;
|
|
139
|
-
commands: MachTableCommands;
|
|
140
|
-
reload(): Promise<void>;
|
|
141
|
-
}
|
|
142
|
-
/** One cohesive controller for API readiness, query, selection, editing and toolbar commands. */
|
|
143
|
-
declare function useMachTableController<TData, TQuery = Record<string, unknown>>(options?: UseMachTableControllerOptions<TData, TQuery>): UseMachTableControllerReturn<TData>;
|
|
144
|
-
|
|
145
|
-
export { type MachTablePageRequest as M, type UseMachTableControllerOptions as U, type MachTablePageResult as a, type MachTableQuerySource as b, type MachTableRemoteSelectionState as c, type UseMachTableControllerReturn as d, type UseMachTableEditingOptions as e, type UseMachTableEditingReturn as f, type UseMachTableQueryOptions as g, type UseMachTableQueryReturn as h, type UseMachTableReturn as i, useMachTableController as j, useMachTableEditing as k, useMachTableQuery as l, useMachTable as u };
|
|
@@ -84,8 +84,8 @@ declare const MachTableToolbar: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
84
84
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
85
85
|
onClearSelection?: ((...args: any[]) => any) | undefined;
|
|
86
86
|
}>, {
|
|
87
|
-
features: MachTableToolbarFeatures;
|
|
88
87
|
loading: boolean;
|
|
88
|
+
features: MachTableToolbarFeatures;
|
|
89
89
|
selectedCount: number;
|
|
90
90
|
api: GridApi<any> | null;
|
|
91
91
|
commands: MachTableCommands | null;
|
|
@@ -84,8 +84,8 @@ declare const MachTableToolbar: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
84
84
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
85
85
|
onClearSelection?: ((...args: any[]) => any) | undefined;
|
|
86
86
|
}>, {
|
|
87
|
-
features: MachTableToolbarFeatures;
|
|
88
87
|
loading: boolean;
|
|
88
|
+
features: MachTableToolbarFeatures;
|
|
89
89
|
selectedCount: number;
|
|
90
90
|
api: GridApi<any> | null;
|
|
91
91
|
commands: MachTableCommands | null;
|