@agile-team/mach-table-vue 0.14.0 → 0.18.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.
Files changed (37) hide show
  1. package/README.md +20 -2
  2. package/dist/MachTable-RIKAMY5Q.js +2 -0
  3. package/dist/MachTable-TENOGXZQ.cjs +2 -0
  4. package/dist/{MachTable-QMK4VFAQ.cjs.map → MachTable-TENOGXZQ.cjs.map} +1 -1
  5. package/dist/async.cjs +1 -1
  6. package/dist/async.js +1 -1
  7. package/dist/chunk-HR2GR62K.js +2 -0
  8. package/dist/chunk-HR2GR62K.js.map +1 -0
  9. package/dist/chunk-IZZT6PAH.js +2 -0
  10. package/dist/chunk-IZZT6PAH.js.map +1 -0
  11. package/dist/chunk-MCLI6WUN.cjs +2 -0
  12. package/dist/chunk-MCLI6WUN.cjs.map +1 -0
  13. package/dist/chunk-R7ALYUWV.cjs +2 -0
  14. package/dist/chunk-R7ALYUWV.cjs.map +1 -0
  15. package/dist/index.cjs +1 -1
  16. package/dist/index.d.cts +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/mach-table.css +3 -3
  20. package/dist/{workflows-CvAptGOH.d.ts → workflows-CyXKgNRx.d.ts} +10 -1
  21. package/dist/{workflows-BXccx4zn.d.cts → workflows-DEOJrSuj.d.cts} +10 -1
  22. package/dist/workflows.cjs +1 -1
  23. package/dist/workflows.d.cts +1 -1
  24. package/dist/workflows.d.ts +1 -1
  25. package/dist/workflows.js +1 -1
  26. package/package.json +2 -2
  27. package/dist/MachTable-BRFSPNPU.js +0 -2
  28. package/dist/MachTable-QMK4VFAQ.cjs +0 -2
  29. package/dist/chunk-4SM5YZDC.js +0 -2
  30. package/dist/chunk-4SM5YZDC.js.map +0 -1
  31. package/dist/chunk-C7C5I2H4.cjs +0 -2
  32. package/dist/chunk-C7C5I2H4.cjs.map +0 -1
  33. package/dist/chunk-H75IY5SP.js +0 -2
  34. package/dist/chunk-H75IY5SP.js.map +0 -1
  35. package/dist/chunk-L6HN564Y.cjs +0 -2
  36. package/dist/chunk-L6HN564Y.cjs.map +0 -1
  37. /package/dist/{MachTable-BRFSPNPU.js.map → MachTable-RIKAMY5Q.js.map} +0 -0
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.14. It provides a generic `<MachTable>`, native typed slots, dedicated app/route configuration, cohesive controllers, auto/manual remote query, editing composables, an optional standard toolbar, optional Element Plus editors, async boundaries, atomic reactive updates and automatic lifecycle cleanup. `RobotGrid` remains a deprecated 0.x alias.
7
+ Official Vue 3 adapter for MachTable 0.18. 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, 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
 
@@ -43,6 +43,7 @@ const columns: ColDef<Row>[] = [{ field: "name", headerName: "Name", flex: 1 }];
43
43
  :column-defs="columns"
44
44
  row-key="id"
45
45
  state-key="customer-list"
46
+ enable-column-resize
46
47
  striped-rows
47
48
  />
48
49
  </div>
@@ -95,6 +96,7 @@ import { defineMachTableConfig, defineMachTablePreset } from "@agile-team/mach-t
95
96
  export default defineMachTableConfig({
96
97
  defaults: {
97
98
  size: "compact",
99
+ enableColumnResize: true,
98
100
  pagination: { pageSize: 20, pageSizeOptions: [20, 50, 100] },
99
101
  defaultColDef: { sortable: true, resizable: true, filter: true }
100
102
  },
@@ -116,7 +118,23 @@ Remote B-side lists can bind `useMachTableQuery()` directly. Use `mode: "auto"`
116
118
 
117
119
  Million-row batch actions use `selectionScope: "query"` and compact `allMatching + excludedKeys` rules, so clients never download every matching row ID.
118
120
 
119
- `useMachTableEditing()` exposes reactive dirty changes, save state, partial batch success, rollback, failed-cell reveal and an optional unsaved-page guard. Semantic business types and cached dictionaries are configured once with `createBusinessColumnTypes()` and `createCachedDictionary()`.
121
+ `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()`.
122
+
123
+ ```ts
124
+ const editing = useMachTableEditing(grid, { guardBeforeUnload: true });
125
+ const result = await editing.saveDetailed(orderApi.saveChanges);
126
+ if (result.conflicts.length) editing.reveal(result.conflicts[0].rowId);
127
+
128
+ async function saveCurrentView() {
129
+ if (!grid.api.value) return;
130
+ const views = createGridViewManager(grid.api.value, {
131
+ scope: `${tenantId}:${userId}:orders`
132
+ });
133
+ await views.save("My pending orders");
134
+ }
135
+ ```
136
+
137
+ Remote 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.
120
138
 
121
139
  Element Plus editors are optional and registered once without making EP a package dependency:
122
140
 
@@ -0,0 +1,2 @@
1
+ import{j as a,k as b}from"./chunk-HR2GR62K.js";import"./chunk-6WNTYC5G.js";export{a as MachTable,b as RobotGrid};
2
+ //# sourceMappingURL=MachTable-RIKAMY5Q.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkR7ALYUWVcjs = require('./chunk-R7ALYUWV.cjs');require('./chunk-OMEMLONJ.cjs');exports.MachTable = _chunkR7ALYUWVcjs.j; exports.RobotGrid = _chunkR7ALYUWVcjs.k;
2
+ //# sourceMappingURL=MachTable-TENOGXZQ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\MachTable-QMK4VFAQ.cjs"],"names":[],"mappings":"AAAA,iIAA+C,gCAA6B,iFAAsC","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\MachTable-QMK4VFAQ.cjs"}
1
+ {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\MachTable-TENOGXZQ.cjs"],"names":[],"mappings":"AAAA,iIAA+C,gCAA6B,iFAAsC","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\MachTable-TENOGXZQ.cjs"}
package/dist/async.cjs CHANGED
@@ -1,2 +1,2 @@
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 _chunkYN3M2NPOcjs = require('./chunk-YN3M2NPO.cjs');require('./chunk-OMEMLONJ.cjs');var _vue = require('vue');var p=()=>Promise.resolve().then(() => _interopRequireWildcard(require("./MachTable-QMK4VFAQ.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;_chunkYN3M2NPOcjs.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;
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 _chunkYN3M2NPOcjs = require('./chunk-YN3M2NPO.cjs');require('./chunk-OMEMLONJ.cjs');var _vue = require('vue');var p=()=>Promise.resolve().then(() => _interopRequireWildcard(require("./MachTable-TENOGXZQ.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;_chunkYN3M2NPOcjs.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;
2
2
  //# sourceMappingURL=async.cjs.map
package/dist/async.js CHANGED
@@ -1,2 +1,2 @@
1
- import{a as o}from"./chunk-2PKCB3CZ.js";import"./chunk-6WNTYC5G.js";import{defineAsyncComponent as r}from"vue";var p=()=>import("./MachTable-BRFSPNPU.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
+ import{a as o}from"./chunk-2PKCB3CZ.js";import"./chunk-6WNTYC5G.js";import{defineAsyncComponent as r}from"vue";var p=()=>import("./MachTable-RIKAMY5Q.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};
2
2
  //# sourceMappingURL=async.js.map
@@ -0,0 +1,2 @@
1
+ import{d as v,k as V}from"./chunk-6WNTYC5G.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};
2
+ //# sourceMappingURL=chunk-HR2GR62K.js.map
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,2 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,2 @@
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
@@ -0,0 +1 @@
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]}
@@ -0,0 +1,2 @@
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 _chunkOMEMLONJcjs = require('./chunk-OMEMLONJ.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=_chunkOMEMLONJcjs.k.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=_chunkOMEMLONJcjs.d.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, () => (_chunkOMEMLONJcjs.d.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;
2
+ //# sourceMappingURL=chunk-R7ALYUWV.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-R7ALYUWV.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-R7ALYUWV.cjs","sourcesContent":[null]}
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
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 _chunkYN3M2NPOcjs = require('./chunk-YN3M2NPO.cjs');var _chunkL6HN564Ycjs = require('./chunk-L6HN564Y.cjs');var _chunkC7C5I2H4cjs = require('./chunk-C7C5I2H4.cjs');var _chunkOMEMLONJcjs = require('./chunk-OMEMLONJ.cjs');var o={install(r,l){_chunkYN3M2NPOcjs.a.call(void 0, r,_chunkC7C5I2H4cjs.j,l)}};var _machtable = require('@agile-team/mach-table'); _createStarExport(_machtable);var D=o;exports.MACH_TABLE_CONFIG_KEY = _chunkOMEMLONJcjs.f; exports.MACH_TABLE_DEFAULTS_KEY = _chunkOMEMLONJcjs.e; exports.MachTable = _chunkC7C5I2H4cjs.j; exports.MachTablePlugin = o; exports.RobotGrid = _chunkC7C5I2H4cjs.k; exports.applyVueSlots = _chunkC7C5I2H4cjs.h; exports.createVueSlotEnhancer = _chunkC7C5I2H4cjs.i; exports.default = D; exports.defineMachTableConfig = _chunkOMEMLONJcjs.a; exports.mergeMachTableConfig = _chunkOMEMLONJcjs.b; exports.normalizeMachTableConfig = _chunkOMEMLONJcjs.c; exports.provideMachTableConfig = _chunkOMEMLONJcjs.h; exports.provideMachTableDefaults = _chunkOMEMLONJcjs.i; exports.resolveMachTableGridOptions = _chunkOMEMLONJcjs.d; exports.useMachTable = _chunkL6HN564Ycjs.a; exports.useMachTableConfig = _chunkOMEMLONJcjs.k; exports.useMachTableController = _chunkL6HN564Ycjs.d; exports.useMachTableDefaults = _chunkOMEMLONJcjs.j; exports.useMachTableEditing = _chunkL6HN564Ycjs.b; exports.useMachTableQuery = _chunkL6HN564Ycjs.c; exports.vueCellEditorSlot = _chunkC7C5I2H4cjs.e; exports.vueCellRenderer = _chunkC7C5I2H4cjs.a; exports.vueCellSlotRenderer = _chunkC7C5I2H4cjs.c; exports.vueDetailRenderer = _chunkC7C5I2H4cjs.b; exports.vueDetailSlotRenderer = _chunkC7C5I2H4cjs.f; exports.vueHeaderSlotRenderer = _chunkC7C5I2H4cjs.d; exports.vueOverlaySlot = _chunkC7C5I2H4cjs.g;
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 _chunkYN3M2NPOcjs = require('./chunk-YN3M2NPO.cjs');var _chunkMCLI6WUNcjs = require('./chunk-MCLI6WUN.cjs');var _chunkR7ALYUWVcjs = require('./chunk-R7ALYUWV.cjs');var _chunkOMEMLONJcjs = require('./chunk-OMEMLONJ.cjs');var o={install(r,l){_chunkYN3M2NPOcjs.a.call(void 0, r,_chunkR7ALYUWVcjs.j,l)}};var _machtable = require('@agile-team/mach-table'); _createStarExport(_machtable);var D=o;exports.MACH_TABLE_CONFIG_KEY = _chunkOMEMLONJcjs.f; exports.MACH_TABLE_DEFAULTS_KEY = _chunkOMEMLONJcjs.e; exports.MachTable = _chunkR7ALYUWVcjs.j; exports.MachTablePlugin = o; exports.RobotGrid = _chunkR7ALYUWVcjs.k; exports.applyVueSlots = _chunkR7ALYUWVcjs.h; exports.createVueSlotEnhancer = _chunkR7ALYUWVcjs.i; exports.default = D; exports.defineMachTableConfig = _chunkOMEMLONJcjs.a; exports.mergeMachTableConfig = _chunkOMEMLONJcjs.b; exports.normalizeMachTableConfig = _chunkOMEMLONJcjs.c; exports.provideMachTableConfig = _chunkOMEMLONJcjs.h; exports.provideMachTableDefaults = _chunkOMEMLONJcjs.i; exports.resolveMachTableGridOptions = _chunkOMEMLONJcjs.d; exports.useMachTable = _chunkMCLI6WUNcjs.a; exports.useMachTableConfig = _chunkOMEMLONJcjs.k; exports.useMachTableController = _chunkMCLI6WUNcjs.d; exports.useMachTableDefaults = _chunkOMEMLONJcjs.j; exports.useMachTableEditing = _chunkMCLI6WUNcjs.b; exports.useMachTableQuery = _chunkMCLI6WUNcjs.c; exports.vueCellEditorSlot = _chunkR7ALYUWVcjs.e; exports.vueCellRenderer = _chunkR7ALYUWVcjs.a; exports.vueCellSlotRenderer = _chunkR7ALYUWVcjs.c; exports.vueDetailRenderer = _chunkR7ALYUWVcjs.b; exports.vueDetailSlotRenderer = _chunkR7ALYUWVcjs.f; exports.vueHeaderSlotRenderer = _chunkR7ALYUWVcjs.d; exports.vueOverlaySlot = _chunkR7ALYUWVcjs.g;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -4,7 +4,7 @@ import { M as MachTablePluginOptions } from './globalRegistration-BhAR-B5k.cjs';
4
4
  import { CellEditorParams, CellRendererParams, CellEditorFactory, CellRendererFn, DetailRowRendererParams, ICellRendererResult, HeaderComponentParams, OverlayTemplate, GridOptions, ResolvedMachTableConfig, MachTableRuntimeConfig } from '@agile-team/mach-table';
5
5
  export * from '@agile-team/mach-table';
6
6
  export { MachTableConfigWarning, MachTableOptionExplanation, MachTablePresetSelection, MachTableRuntimeConfig, ResolvedMachTableConfig, ResolvedMachTableGridOptions, defineMachTableConfig, mergeMachTableConfig, normalizeMachTableConfig, resolveMachTableGridOptions } from '@agile-team/mach-table';
7
- export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableControllerOptions, d as UseMachTableControllerReturn, e as UseMachTableEditingOptions, f as UseMachTableEditingReturn, g as UseMachTableQueryOptions, h as UseMachTableQueryReturn, i as UseMachTableReturn, u as useMachTable, j as useMachTableController, k as useMachTableEditing, l as useMachTableQuery } from './workflows-BXccx4zn.cjs';
7
+ export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableControllerOptions, d as UseMachTableControllerReturn, e as UseMachTableEditingOptions, f as UseMachTableEditingReturn, g as UseMachTableQueryOptions, h as UseMachTableQueryReturn, i as UseMachTableReturn, u as useMachTable, j as useMachTableController, k as useMachTableEditing, l as useMachTableQuery } from './workflows-DEOJrSuj.cjs';
8
8
  import './MachTableToolbar-CDkTtitl.cjs';
9
9
 
10
10
  declare const MachTablePlugin: {
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { M as MachTablePluginOptions } from './globalRegistration-DTWLNxPI.js';
4
4
  import { CellEditorParams, CellRendererParams, CellEditorFactory, CellRendererFn, DetailRowRendererParams, ICellRendererResult, HeaderComponentParams, OverlayTemplate, GridOptions, ResolvedMachTableConfig, MachTableRuntimeConfig } from '@agile-team/mach-table';
5
5
  export * from '@agile-team/mach-table';
6
6
  export { MachTableConfigWarning, MachTableOptionExplanation, MachTablePresetSelection, MachTableRuntimeConfig, ResolvedMachTableConfig, ResolvedMachTableGridOptions, defineMachTableConfig, mergeMachTableConfig, normalizeMachTableConfig, resolveMachTableGridOptions } from '@agile-team/mach-table';
7
- export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableControllerOptions, d as UseMachTableControllerReturn, e as UseMachTableEditingOptions, f as UseMachTableEditingReturn, g as UseMachTableQueryOptions, h as UseMachTableQueryReturn, i as UseMachTableReturn, u as useMachTable, j as useMachTableController, k as useMachTableEditing, l as useMachTableQuery } from './workflows-CvAptGOH.js';
7
+ export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableControllerOptions, d as UseMachTableControllerReturn, e as UseMachTableEditingOptions, f as UseMachTableEditingReturn, g as UseMachTableQueryOptions, h as UseMachTableQueryReturn, i as UseMachTableReturn, u as useMachTable, j as useMachTableController, k as useMachTableEditing, l as useMachTableQuery } from './workflows-CyXKgNRx.js';
8
8
  import './MachTableToolbar-CDkTtitl.js';
9
9
 
10
10
  declare const MachTablePlugin: {
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{a}from"./chunk-2PKCB3CZ.js";import{a as S,b as E,c as P,d as O}from"./chunk-4SM5YZDC.js";import{a as s,b as f,c as m,d as g,e as d,f as x,g as C,h as y,i as R,j as e,k as v}from"./chunk-H75IY5SP.js";import{a as t,b as p,c as i,d as n,e as c,f as u,h as b,i as T,j as M,k as h}from"./chunk-6WNTYC5G.js";var o={install(r,l){a(r,e,l)}};export*from"@agile-team/mach-table";var D=o;export{u as MACH_TABLE_CONFIG_KEY,c as MACH_TABLE_DEFAULTS_KEY,e as MachTable,o as MachTablePlugin,v as RobotGrid,y as applyVueSlots,R as createVueSlotEnhancer,D as default,t as defineMachTableConfig,p as mergeMachTableConfig,i as normalizeMachTableConfig,b as provideMachTableConfig,T as provideMachTableDefaults,n as resolveMachTableGridOptions,S as useMachTable,h as useMachTableConfig,O as useMachTableController,M as useMachTableDefaults,E as useMachTableEditing,P as useMachTableQuery,d as vueCellEditorSlot,s as vueCellRenderer,m as vueCellSlotRenderer,f as vueDetailRenderer,x as vueDetailSlotRenderer,g as vueHeaderSlotRenderer,C as vueOverlaySlot};
1
+ import{a}from"./chunk-2PKCB3CZ.js";import{a as S,b as E,c as P,d as O}from"./chunk-IZZT6PAH.js";import{a as s,b as f,c as m,d as g,e as d,f as x,g as C,h as y,i as R,j as e,k as v}from"./chunk-HR2GR62K.js";import{a as t,b as p,c as i,d as n,e as c,f as u,h as b,i as T,j as M,k as h}from"./chunk-6WNTYC5G.js";var o={install(r,l){a(r,e,l)}};export*from"@agile-team/mach-table";var D=o;export{u as MACH_TABLE_CONFIG_KEY,c as MACH_TABLE_DEFAULTS_KEY,e as MachTable,o as MachTablePlugin,v as RobotGrid,y as applyVueSlots,R as createVueSlotEnhancer,D as default,t as defineMachTableConfig,p as mergeMachTableConfig,i as normalizeMachTableConfig,b as provideMachTableConfig,T as provideMachTableDefaults,n as resolveMachTableGridOptions,S as useMachTable,h as useMachTableConfig,O as useMachTableController,M as useMachTableDefaults,E as useMachTableEditing,P as useMachTableQuery,d as vueCellEditorSlot,s as vueCellRenderer,m as vueCellSlotRenderer,f as vueDetailRenderer,x as vueDetailSlotRenderer,g as vueHeaderSlotRenderer,C as vueOverlaySlot};
2
2
  //# sourceMappingURL=index.js.map
@@ -429,8 +429,8 @@
429
429
  .mach-header-resize {
430
430
  position: absolute;
431
431
  top: 0;
432
- right: -3px;
433
- width: 6px;
432
+ right: 0;
433
+ width: 8px;
434
434
  height: 100%;
435
435
  cursor: col-resize;
436
436
  z-index: 2;
@@ -441,7 +441,7 @@
441
441
  .mach-root--resizing .mach-header-resize::after {
442
442
  content: "";
443
443
  position: absolute;
444
- inset: 0;
444
+ inset: 0 3px;
445
445
  background: var(--mach-primary);
446
446
  opacity: 0.45;
447
447
  border-radius: 1px;
@@ -1,5 +1,5 @@
1
1
  import { Ref, ShallowRef, ComputedRef } from 'vue';
2
- import { GridApi, GridChange, SaveChangesHandler, SortModel, FilterModel, OverlayContent, OverlayTemplate, GridOptions, MachTableCommands } from '@agile-team/mach-table';
2
+ import { GridApi, GridChange, GridBatchSaveResult, SaveChangeIssue, SaveChangeConflict, SaveChangesHandler, SortModel, FilterModel, AdvancedFilterModel, OverlayContent, OverlayTemplate, GridOptions, MachTableCommands } from '@agile-team/mach-table';
3
3
  import { b as MachTableVueExposed } from './MachTable-DH0offab.js';
4
4
 
5
5
  interface UseMachTableReturn<TData = any> {
@@ -14,6 +14,7 @@ interface UseMachTableEditingOptions<TData = any> {
14
14
  guardBeforeUnload?: boolean;
15
15
  beforeUnloadMessage?: string;
16
16
  onSaveSuccess?(saved: readonly GridChange<TData>[]): void;
17
+ onSaveResult?(result: GridBatchSaveResult<TData>): void;
17
18
  onSaveError?(error: unknown): void;
18
19
  }
19
20
  interface UseMachTableEditingReturn<TData = any> {
@@ -22,7 +23,13 @@ interface UseMachTableEditingReturn<TData = any> {
22
23
  dirty: ComputedRef<boolean>;
23
24
  saving: Ref<boolean>;
24
25
  saveError: ShallowRef<unknown | null>;
26
+ lastSaveResult: ShallowRef<GridBatchSaveResult<TData> | null>;
27
+ saveIssues: ComputedRef<Array<SaveChangeIssue | SaveChangeConflict<TData>>>;
28
+ failedRowIds: ComputedRef<string[]>;
25
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;
26
33
  rollback(rowIds?: readonly string[]): boolean;
27
34
  markSaved(rowIds?: readonly string[]): void;
28
35
  /** Scrolls to a loaded changed row and optionally opens the failed cell editor. */
@@ -39,6 +46,7 @@ interface MachTablePageRequest<TQuery> {
39
46
  query: TQuery;
40
47
  sortModel: SortModel;
41
48
  filterModel: FilterModel;
49
+ advancedFilterModel: AdvancedFilterModel | null;
42
50
  quickFilterText: string | null;
43
51
  signal: AbortSignal;
44
52
  }
@@ -89,6 +97,7 @@ interface UseMachTableQueryReturn<TData> {
89
97
  total: Ref<number>;
90
98
  sortModel: ShallowRef<SortModel>;
91
99
  filterModel: ShallowRef<FilterModel>;
100
+ advancedFilterModel: ShallowRef<AdvancedFilterModel | null>;
92
101
  selectedKeys: Ref<string[]>;
93
102
  selectedRows: ShallowRef<TData[]>;
94
103
  selectionState: ComputedRef<MachTableRemoteSelectionState>;
@@ -1,5 +1,5 @@
1
1
  import { Ref, ShallowRef, ComputedRef } from 'vue';
2
- import { GridApi, GridChange, SaveChangesHandler, SortModel, FilterModel, OverlayContent, OverlayTemplate, GridOptions, MachTableCommands } from '@agile-team/mach-table';
2
+ import { GridApi, GridChange, GridBatchSaveResult, SaveChangeIssue, SaveChangeConflict, SaveChangesHandler, SortModel, FilterModel, AdvancedFilterModel, OverlayContent, OverlayTemplate, GridOptions, MachTableCommands } from '@agile-team/mach-table';
3
3
  import { b as MachTableVueExposed } from './MachTable-DH0offab.cjs';
4
4
 
5
5
  interface UseMachTableReturn<TData = any> {
@@ -14,6 +14,7 @@ interface UseMachTableEditingOptions<TData = any> {
14
14
  guardBeforeUnload?: boolean;
15
15
  beforeUnloadMessage?: string;
16
16
  onSaveSuccess?(saved: readonly GridChange<TData>[]): void;
17
+ onSaveResult?(result: GridBatchSaveResult<TData>): void;
17
18
  onSaveError?(error: unknown): void;
18
19
  }
19
20
  interface UseMachTableEditingReturn<TData = any> {
@@ -22,7 +23,13 @@ interface UseMachTableEditingReturn<TData = any> {
22
23
  dirty: ComputedRef<boolean>;
23
24
  saving: Ref<boolean>;
24
25
  saveError: ShallowRef<unknown | null>;
26
+ lastSaveResult: ShallowRef<GridBatchSaveResult<TData> | null>;
27
+ saveIssues: ComputedRef<Array<SaveChangeIssue | SaveChangeConflict<TData>>>;
28
+ failedRowIds: ComputedRef<string[]>;
25
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;
26
33
  rollback(rowIds?: readonly string[]): boolean;
27
34
  markSaved(rowIds?: readonly string[]): void;
28
35
  /** Scrolls to a loaded changed row and optionally opens the failed cell editor. */
@@ -39,6 +46,7 @@ interface MachTablePageRequest<TQuery> {
39
46
  query: TQuery;
40
47
  sortModel: SortModel;
41
48
  filterModel: FilterModel;
49
+ advancedFilterModel: AdvancedFilterModel | null;
42
50
  quickFilterText: string | null;
43
51
  signal: AbortSignal;
44
52
  }
@@ -89,6 +97,7 @@ interface UseMachTableQueryReturn<TData> {
89
97
  total: Ref<number>;
90
98
  sortModel: ShallowRef<SortModel>;
91
99
  filterModel: ShallowRef<FilterModel>;
100
+ advancedFilterModel: ShallowRef<AdvancedFilterModel | null>;
92
101
  selectedKeys: Ref<string[]>;
93
102
  selectedRows: ShallowRef<TData[]>;
94
103
  selectionState: ComputedRef<MachTableRemoteSelectionState>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkL6HN564Ycjs = require('./chunk-L6HN564Y.cjs');exports.useMachTableController = _chunkL6HN564Ycjs.d; exports.useMachTableEditing = _chunkL6HN564Ycjs.b; exports.useMachTableQuery = _chunkL6HN564Ycjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMCLI6WUNcjs = require('./chunk-MCLI6WUN.cjs');exports.useMachTableController = _chunkMCLI6WUNcjs.d; exports.useMachTableEditing = _chunkMCLI6WUNcjs.b; exports.useMachTableQuery = _chunkMCLI6WUNcjs.c;
2
2
  //# sourceMappingURL=workflows.cjs.map
@@ -1,4 +1,4 @@
1
- export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableControllerOptions, d as UseMachTableControllerReturn, e as UseMachTableEditingOptions, f as UseMachTableEditingReturn, g as UseMachTableQueryOptions, h as UseMachTableQueryReturn, j as useMachTableController, k as useMachTableEditing, l as useMachTableQuery } from './workflows-BXccx4zn.cjs';
1
+ export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableControllerOptions, d as UseMachTableControllerReturn, e as UseMachTableEditingOptions, f as UseMachTableEditingReturn, g as UseMachTableQueryOptions, h as UseMachTableQueryReturn, j as useMachTableController, k as useMachTableEditing, l as useMachTableQuery } from './workflows-DEOJrSuj.cjs';
2
2
  import 'vue';
3
3
  import '@agile-team/mach-table';
4
4
  import './MachTable-DH0offab.cjs';
@@ -1,4 +1,4 @@
1
- export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableControllerOptions, d as UseMachTableControllerReturn, e as UseMachTableEditingOptions, f as UseMachTableEditingReturn, g as UseMachTableQueryOptions, h as UseMachTableQueryReturn, j as useMachTableController, k as useMachTableEditing, l as useMachTableQuery } from './workflows-CvAptGOH.js';
1
+ export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableControllerOptions, d as UseMachTableControllerReturn, e as UseMachTableEditingOptions, f as UseMachTableEditingReturn, g as UseMachTableQueryOptions, h as UseMachTableQueryReturn, j as useMachTableController, k as useMachTableEditing, l as useMachTableQuery } from './workflows-CyXKgNRx.js';
2
2
  import 'vue';
3
3
  import '@agile-team/mach-table';
4
4
  import './MachTable-DH0offab.js';
package/dist/workflows.js CHANGED
@@ -1,2 +1,2 @@
1
- import{b as e,c as a,d as r}from"./chunk-4SM5YZDC.js";export{r as useMachTableController,e as useMachTableEditing,a as useMachTableQuery};
1
+ import{b as e,c as a,d as r}from"./chunk-IZZT6PAH.js";export{r as useMachTableController,e as useMachTableEditing,a as useMachTableQuery};
2
2
  //# sourceMappingURL=workflows.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agile-team/mach-table-vue",
3
- "version": "0.14.0",
3
+ "version": "0.18.0",
4
4
  "description": "Official Vue 3 adapter for the MachTable enterprise data grid",
5
5
  "keywords": [
6
6
  "vue",
@@ -98,7 +98,7 @@
98
98
  "**/*.css"
99
99
  ],
100
100
  "dependencies": {
101
- "@agile-team/mach-table": "0.14.0"
101
+ "@agile-team/mach-table": "0.18.0"
102
102
  },
103
103
  "peerDependencies": {
104
104
  "vue": ">=3.2.0"
@@ -1,2 +0,0 @@
1
- import{j as a,k as b}from"./chunk-H75IY5SP.js";import"./chunk-6WNTYC5G.js";export{a as MachTable,b as RobotGrid};
2
- //# sourceMappingURL=MachTable-BRFSPNPU.js.map
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkC7C5I2H4cjs = require('./chunk-C7C5I2H4.cjs');require('./chunk-OMEMLONJ.cjs');exports.MachTable = _chunkC7C5I2H4cjs.j; exports.RobotGrid = _chunkC7C5I2H4cjs.k;
2
- //# sourceMappingURL=MachTable-QMK4VFAQ.cjs.map
@@ -1,2 +0,0 @@
1
- import{onScopeDispose as he,ref as Te,shallowRef as W,watch as me}from"vue";function X(){let a=Te(null),r=W(null),d=W(!1),n=0;return me(a,i=>{let f=++n;if(i&&typeof i.getApi=="function"){r.value=i.getApi(),d.value=!1;let v=r.value;v&&v.whenReady().then(()=>{n===f&&r.value===v&&!v.isDestroyed()&&(d.value=!0)})}else r.value=null,d.value=!1},{flush:"post"}),he(()=>{n++,a.value=null,r.value=null,d.value=!1}),{ref:a,api:r,ready:d}}import{computed as be,onScopeDispose as we,ref as Y,shallowRef as Z,watch as Se}from"vue";function _(a,r={}){let d=Z([]),n=Y([]),i=Y(!1),f=Z(null),v=be(()=>n.value.length>0),g=null,p=()=>{let t=a.api.value;if(!t||t.isDestroyed()){n.value=[],d.value=[];return}n.value=t.getDirtyRowIds(),d.value=t.getChanges()};Se(a.api,t=>{g?.(),g=null,p(),!(!t||t.isDestroyed())&&(g=t.addEventListener("dirtyStateChanged",p))},{immediate:!0});let R=async(t,m)=>{let T=a.api.value;if(!T||T.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(i.value)throw new Error("[MachTable] A save operation is already in progress.");i.value=!0,f.value=null;try{let c=await T.saveChanges(t,m);return p(),r.onSaveSuccess?.(c),c}catch(c){throw f.value=c,r.onSaveError?.(c),c}finally{i.value=!1}},k=t=>{let m=a.api.value?.rollbackChanges(t)??!1;return p(),m},y=t=>{a.api.value?.markChangesSaved(t),p()},h=(t,m,T=!1)=>{let c=a.api.value,C=c?.getNodeById(t);return!c||!C||C.rowIndex<0?!1:(c.scrollToIndex(C.rowIndex,"middle"),m&&T?c.startEditingCell({rowIndex:C.rowIndex,colId:m}):!0)},u=t=>{if(!v.value)return;let m=r.beforeUnloadMessage??"\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002";return t.preventDefault(),t.returnValue=m,m};return r.guardBeforeUnload&&typeof window<"u"&&window.addEventListener("beforeunload",u),we(()=>{g?.(),g=null,r.guardBeforeUnload&&typeof window<"u"&&window.removeEventListener("beforeunload",u)}),{changes:d,dirtyRowIds:n,dirty:v,saving:i,saveError:f,save:R,rollback:k,markSaved:y,reveal:h,refresh:p}}import{computed as ee,isRef as Re,nextTick as ae,onScopeDispose as Me,ref as D,shallowRef as G,watch as V}from"vue";import{getByPath as De}from"@agile-team/mach-table";function te(a){return typeof a=="function"?a():Re(a)?a.value:a}function N(a,r){return typeof a=="number"&&Number.isFinite(a)&&a>0?Math.floor(a):r}function Ce(a){return(a instanceof DOMException||typeof a=="object"&&a!=null&&"name"in a)&&a.name==="AbortError"}function le(a){let r=G([]),d=D(!1),n=G(null),i=D(N(a.initialPage,1)),f=D(N(a.pageSize,20)),v=D(0),g=G([]),p=G({}),R=D([]),k=G([]),y=new Set,h=new Set,u=new Map,t=a.quickFilterText??D(null),m=a.selectionScope??"preserve",T=a.mode!=="manual",c=D(!1),C=D(0),F=[...new Set((a.pageSizeOptions??[10,20,50,100]).map(e=>N(e,0)).filter(Boolean))];F.includes(f.value)||F.push(f.value),F.sort((e,l)=>e-l);let M=null,w=null,O=0,S=null,Q=!1,U=!1,z=!1,b=e=>{let l=typeof a.rowKey=="function"?a.rowKey(e):De(e,a.rowKey);if(l==null||String(l).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(a.rowKey)}" returned an empty value.`);return String(l)},E=()=>{z=!0,R.value=c.value?[]:[...y],z=!1;let e=c.value?[...u.keys()]:[...y];k.value=e.flatMap(l=>{let o=u.get(l);return o===void 0||h.has(l)?[]:[o]}),C.value++},B=e=>c.value?!h.has(e):y.has(e),q=()=>{if(!M||M.isDestroyed())return;let e=r.value.filter(l=>B(b(l)));U=!0;try{M.setSelection(e,!0)}finally{U=!1}},j=()=>{O++,w?.abort(),w=null,S!=null&&clearTimeout(S),S=null,d.value=!1},$=(e,l)=>e.signal.aborted||l!==O,re=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 }.")},ne=async(e,l,o)=>{if($(l,o))return;re(e);let s=[...e.rows];for(let P of s)b(P);r.value=s,v.value=Math.floor(e.total);for(let P of r.value){let L=b(P);B(L)?u.set(L,P):u.delete(L)}E(),a.onSuccess?.(e),await ae(),q()},oe=(e,l,o)=>{$(l,o)||Ce(e)||(n.value=e??new Error,a.onError?.(n.value))},x=async()=>{S!=null&&clearTimeout(S),S=null,w?.abort();let e=new AbortController;w=e;let l=++O;d.value=!0,n.value=null,a.keepPreviousData===!1&&(r.value=[]);try{let o=await a.request({page:i.value,pageSize:f.value,query:te(a.query),sortModel:g.value.map(s=>({...s})),filterModel:{...p.value},quickFilterText:t.value,signal:e.signal});await ne(o,e,l)}catch(o){oe(o,e,l)}finally{l===O&&(d.value=!1,w===e&&(w=null))}},K=e=>{e&&(i.value=1),S!=null&&clearTimeout(S),w&&(O++,w.abort(),w=null,d.value=!1);let l=Math.max(0,a.debounceMs??0);if(l===0){x();return}S=setTimeout(()=>{x()},l)},ie=e=>{M=e.api,ae(q)},se=e=>{Q||e.page===i.value&&e.pageSize===f.value||(i.value=e.page,f.value=e.pageSize,T&&x())},ue=e=>{Q||(g.value=e.sortModel.map(l=>({...l})),T?K(!0):i.value=1)},ce=e=>{Q||(p.value={...e.filterModel},a.clearSelectionOnQueryChange!==!1&&A(),T?K(!0):i.value=1)},de=e=>{if(U)return;let l=new Set(r.value.map(b)),o=new Set(e.selectedRows.map(b));if(c.value){for(let s of l)o.has(s)?h.delete(s):(h.add(s),u.delete(s));for(let s of e.selectedRows)u.set(b(s),s);E();return}if(m==="page")y.clear(),u.clear();else for(let s of l)y.delete(s),u.delete(s);for(let s of e.selectedRows){let P=b(s);y.add(P),u.set(P,s)}E()},J=ee(()=>({rowData:r.value,loading:d.value,rowKey:b,manualSorting:!0,manualFiltering:!0,quickFilterText:t.value,error:n.value,overlayErrorTemplate:n.value?()=>a.errorOverlay?.({error:n.value,retry:x})??"Remote request failed. Please retry.":void 0,overlayNoRowsTemplate:a.emptyOverlay,pagination:{mode:"server",page:i.value,pageSize:f.value,pageSizeOptions:F,total:v.value,showTotal:!0,showPageSizeSelector:!0},onGridReady:ie,onPaginationChanged:se,onSortChanged:ue,onFilterChanged:ce,onSelectionChanged:de})),fe=async(e={})=>{e.resetPage&&(i.value=1),await x()},ve=async()=>{i.value=1,g.value=[],p.value={},A(),Q=!0;try{M?.setSortModel(null),M?.setFilterModel(null)}finally{Q=!1}await x()},A=()=>{c.value=!1,y.clear(),h.clear(),u.clear(),E(),U=!0;try{M?.deselectAll()}finally{U=!1}},ye=()=>{c.value=!0,y.clear(),h.clear(),u.clear();for(let e of r.value)u.set(b(e),e);E(),q()},ge=e=>{y.clear(),h.clear(),u.clear(),c.value=e.mode==="allMatching";let l=e.mode==="allMatching"?e.excludedKeys:e.selectedKeys;for(let o of l.map(String))e.mode==="allMatching"?h.add(o):y.add(o);for(let o of r.value){let s=b(o);B(s)&&u.set(s,o)}E(),q()},pe=ee(()=>(C.value,c.value?{mode:"allMatching",excludedKeys:[...h]}:{mode:"explicit",selectedKeys:[...y]}));return V(()=>te(a.query),()=>{a.clearSelectionOnQueryChange!==!1&&A(),T?K(!0):i.value=1},{deep:!0,immediate:T&&a.immediate!==!1}),V(t,()=>{a.clearSelectionOnQueryChange!==!1&&A(),T?K(!0):i.value=1}),V(R,e=>{if(z)return;c.value=!1,h.clear();let l=new Set(e.map(String));y.clear();for(let o of l)y.add(o);for(let o of[...u.keys()])l.has(o)||u.delete(o);for(let o of r.value){let s=b(o);l.has(s)&&u.set(s,o)}q(),E()},{deep:!0,flush:"sync"}),Me(()=>{j(),M=null}),{rows:r,loading:d,error:n,page:i,pageSize:f,total:v,sortModel:g,filterModel:p,selectedKeys:R,selectedRows:k,selectionState:pe,gridProps:J,bindings:J,reload:fe,retry:x,reset:ve,abort:j,clearSelection:A,selectAllMatching:ye,applySelectionState:ge}}import{computed as I,onScopeDispose as Ee,ref as xe,shallowRef as Pe,watch as H}from"vue";import{createMachTableCommands as ke}from"@agile-team/mach-table";function Ve(a={}){let r=X(),d=xe(a.initialSearch??""),n=a.query?le({...a.query,quickFilterText:a.query.quickFilterText??I(()=>d.value||null)}):null,i=_(r,a.editing),f=Pe([]),v=null,g=()=>{f.value=n?.selectedRows.value??r.api.value?.getSelectedRows()??[]};H(r.api,t=>{v?.(),v=null,t&&!t.isDestroyed()&&(v=t.addEventListener("selectionChanged",g)),g()},{immediate:!0}),n&&H(n.selectedRows,g,{deep:!1});let p=async()=>{if(n)await n.reload();else{let t=r.api.value;t?.isInfinite()?await t.reload():t?.refreshCells()}},R=ke({getApi:()=>r.api.value,reload:p}),k=I(()=>n?.bindings.value??{}),y=I(()=>{if(!n)return f.value.length;let t=n.selectionState.value;return t.mode==="allMatching"?Math.max(0,n.total.value-t.excludedKeys.length):t.selectedKeys.length}),h=I(()=>n?.loading.value===!0||i.saving.value),u=I(()=>n?.error.value??i.saveError.value??null);return H(d,t=>{n||R.search(t||null)}),Ee(()=>{v?.(),v=null}),{table:r,query:n,editing:i,bindings:k,search:d,selectedRows:f,selectedCount:y,busy:h,error:u,commands:R,reload:p}}export{X as a,_ as b,le as c,Ve as d};
2
- //# sourceMappingURL=chunk-4SM5YZDC.js.map
@@ -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 GridChange,\n SaveChangesHandler\n} 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 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 save(handler: SaveChangesHandler<TData>, rowIds?: readonly string[]): Promise<GridChange<TData>[]>;\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 dirty = computed(() => dirtyRowIds.value.length > 0);\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 save = async (\n handler: SaveChangesHandler<TData>,\n rowIds?: readonly string[]\n ): Promise<GridChange<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 try {\n const saved = await api.saveChanges(handler, rowIds);\n refresh();\n options.onSaveSuccess?.(saved);\n return saved;\n } catch (error) {\n saveError.value = error;\n options.onSaveError?.(error);\n throw error;\n } finally {\n saving.value = false;\n }\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 save,\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 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 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 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 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 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 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 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 clearSelection();\n suppressGridEvents = true;\n try {\n api?.setSortModel(null);\n api?.setFilterModel(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 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","useMachTableEditing","table","options","changes","dirtyRowIds","saving","saveError","dirty","removeDirtyListener","refresh","api","save","handler","rowIds","saved","error","rollback","changed","markSaved","reveal","rowId","colId","edit","node","onBeforeUnload","event","message","computed","isRef","nextTick","onScopeDispose","ref","shallowRef","watch","getByPath","readSource","source","normalizePositive","value","fallback","isAbortError","error","useMachTableQuery","options","rows","loading","page","pageSize","total","sortModel","filterModel","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,2 +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 _chunkOMEMLONJcjs = require('./chunk-OMEMLONJ.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 V(t,e,n,o){if(o){let r=_vue.h.call(void 0, t,e);return r.appContext=o,_vue.render.call(void 0, r,n),()=>_vue.render.call(void 0, null,n)}let a=_vue.createApp.call(void 0, {render:()=>_vue.h.call(void 0, t,e)});return a.mount(n),()=>a.unmount()}function D(t,e,n,o,a=!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,n)};return a?queueMicrotask(u):u(),()=>{l=!0,_vue.render.call(void 0, null,n)}}function ee(t,e){let n=T(_optionalChain([e, 'optionalAccess', _3 => _3.appContext]));return o=>{let a=document.createElement("div");a.className="mach-cell-vue",a.style.width="100%";let r=V(t,o,a,n),i=!1;return{el:a,destroy:()=>{i||(i=!0,window.setTimeout(r,0))}}}}function te(t,e){let n=T(_optionalChain([e, 'optionalAccess', _4 => _4.appContext]));return o=>{let a=document.createElement("div");a.style.height="100%";let r=V(t,o,a,n),i=!1;return{el:a,destroy:()=>{i||(i=!0,r())}}}}function G(t,e){let n=T(_optionalChain([e, 'optionalAccess', _5 => _5.appContext]));return o=>{let a=document.createElement("div");a.className="mach-cell-vue mach-cell-vue--slot",a.style.width="100%";let r=D(t,()=>o,a,n);return{el:a,destroy:r}}}function M(t,e){let n=T(_optionalChain([e, 'optionalAccess', _6 => _6.appContext]));return o=>{let a=document.createElement("div");a.className="mach-header-vue-slot";let r=D(t,()=>o,a,n);return{el:a,destroy:r}}}function N(t,e){let n=T(_optionalChain([e, 'optionalAccess', _7 => _7.appContext]));return o=>{let a=_vue.shallowReactive.call(void 0, {value:o.value}),r=document.createElement("div");r.className="mach-cell-vue mach-cell-vue--editor";let l=D(t,()=>({...o,value:a.value,setValue:u=>{a.value=u},commit:()=>o.api.stopEditing(!1),cancel:()=>o.api.stopEditing(!0)}),r,n,!1);return{el:r,getValue:()=>a.value,focus:()=>{_optionalChain([r, '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 x(t,e){let n=T(_optionalChain([e, 'optionalAccess', _12 => _12.appContext]));return o=>{let a=document.createElement("div");a.className="mach-detail-vue-slot",a.style.height="100%";let r=D(t,()=>o,a,n);return{el:a,destroy:r}}}function C(t,e){let n=T(_optionalChain([e, 'optionalAccess', _13 => _13.appContext]));return()=>{let o=document.createElement("div");o.className="mach-overlay-vue-slot";let a=D(t,()=>({}),o,n);return{el:o,destroy:a}}}function S(t,e,n){return _nullishCoalesce(t[`${e}-${n}`], () => (t[`${e}-${n.replace(/[.\s]+/g,"-")}`]))}function O(t,e,n){return t.map((o,a)=>{if(Array.isArray(o.children)){let y=o;return{...y,children:O(y.children,e,n)}}let r=o,i=_nullishCoalesce(_nullishCoalesce(r.colId, () => (r.field)), () => (`col_${a}`)),l=_nullishCoalesce(_nullishCoalesce(S(e,"cell",i), () => ((i==="op"?e.actions:void 0))), () => (e.cell)),u=_nullishCoalesce(S(e,"header",i), () => (e.header)),g=_nullishCoalesce(S(e,"editor",i), () => (e.editor));return{...r,...l?{cellRenderer:G(l,{appContext:n})}:{},...u?{headerComponent:M(u,{appContext:n})}:{},...g?{cellEditor:N(g,{appContext:n})}:{}}})}function re(t,e,n){let o=t.columnDefs?O(t.columnDefs,e,n):t.columnDefs;return{...t,columnDefs:o,...e.detail&&!t.detailRowRenderer?{detailRowRenderer:x(e.detail,{appContext:n})}:{},...e.loading?{overlayLoadingTemplate:C(e.loading,{appContext:n})}:{},...e.empty?{overlayNoRowsTemplate:C(e.empty,{appContext:n})}:{}}}function w(t,e){let n,o,a=t.detail?x(t.detail,{appContext:e}):void 0,r=t.loading?C(t.loading,{appContext:e}):void 0,i=t.empty?C(t.empty,{appContext:e}):void 0;return l=>(l.columnDefs!==n&&(n=l.columnDefs,o=l.columnDefs?O(l.columnDefs,t,e):l.columnDefs),{...l,columnDefs:o,...a&&!l.detailRowRenderer?{detailRowRenderer:a}:{},...r?{overlayLoadingTemplate:r}:{},...i?{overlayNoRowsTemplate:i}:{}})}var B=_machtable.GRID_OPTION_KEYS.filter(t=>!["className","ariaLabel","ariaLabelledBy","ariaDescribedBy"].includes(t)),f={};for(let t of B){let e=_machtable.GRID_OPTION_META[t].kind,n=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:n,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 J(t){return"on"+t.charAt(0).toUpperCase()+t.slice(1)}var Q=_vue.defineComponent.call(void 0, {name:"MachTable",inheritAttrs:!1,props:f,emits:[..._machtable.EVENT_TYPES],setup(t,{expose:e,attrs:n,emit:o,slots:a}){let r=t,i=_vue.ref.call(void 0, null),l=null,u=_chunkOMEMLONJcjs.k.call(void 0, ),g=w(a,_optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _14 => _14.appContext])),y=null,P=new Set,v=()=>{let d={};for(let s of B){let m=r[s];m!==void 0&&(d[s]=m)}r.gridClassName!==void 0&&(d.className=r.gridClassName),r.gridAriaLabel!==void 0&&(d.ariaLabel=r.gridAriaLabel),r.gridAriaLabelledBy!==void 0&&(d.ariaLabelledBy=r.gridAriaLabelledBy),r.gridAriaDescribedBy!==void 0&&(d.ariaDescribedBy=r.gridAriaDescribedBy);let p=_chunkOMEMLONJcjs.d.call(void 0, u.value,r.preset,d,s=>{let m=`${s.code}:${_nullishCoalesce(s.preset, () => (""))}`;P.has(m)||(P.add(m),u.value.onConfigWarning?u.value.onConfigWarning(s):console.warn(s.message))}),c=g(p.options);return y={options:c,explain:s=>s==="columnDefs"&&c.columnDefs!==p.options.columnDefs?{key:s,value:c.columnDefs,source:"Vue slots",layers:[...p.explain(s).layers,{name:"Vue slots",value:c.columnDefs}]}:p.explain(s)},y.options};return _vue.onMounted.call(void 0, ()=>{if(!i.value)return;let d=v();for(let p of _machtable.EVENT_TYPES){let c=J(p),s=d[c];d[c]=m=>{typeof s=="function"&&s(m),o(p,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=v();return[..._machtable.GRID_OPTION_KEYS.map(p=>d[p])]},(d,p)=>{if(!l)return;let c={};d.forEach((s,m)=>{Object.is(s,p[m])||(c[_machtable.GRID_OPTION_KEYS[m]]=s)}),Object.keys(c).length>0&&l.updateOptions(c)}),e({getApi:()=>l,getResolvedConfig:()=>_nullishCoalesce(_optionalChain([y, 'optionalAccess', _17 => _17.options]), () => (v())),explainOption:d=>(_nullishCoalesce(y, () => (_chunkOMEMLONJcjs.d.call(void 0, u.value,r.preset,{})))).explain(d)}),()=>_vue.h.call(void 0, "div",{...n,ref:i,class:["mach-vue-host",r.className,n.class]})}}),X= exports.j =Q,pe= exports.k =X;exports.a = ee; exports.b = te; exports.c = G; exports.d = M; exports.e = N; exports.f = x; exports.g = C; exports.h = re; exports.i = w; exports.j = X; exports.k = pe;
2
- //# sourceMappingURL=chunk-C7C5I2H4.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-C7C5I2H4.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-C7C5I2H4.cjs","sourcesContent":[null]}
@@ -1,2 +0,0 @@
1
- import{d as R,k as E}from"./chunk-6WNTYC5G.js";import{defineComponent as _,getCurrentInstance as j,h as F,onBeforeUnmount as W,onMounted as Y,ref as q,watch as K}from"vue";import{createGrid as U,EVENT_TYPES as L,GRID_OPTION_KEYS as A,GRID_OPTION_META as z}from"@agile-team/mach-table";import{createApp as k,h as b,render as h,renderSlot as H,getCurrentInstance as I,shallowReactive as $}from"vue";function T(t){if(t)return t;try{return I()?.appContext}catch{return}}function V(t,e,n,o){if(o){let r=b(t,e);return r.appContext=o,h(r,n),()=>h(null,n)}let a=k({render:()=>b(t,e)});return a.mount(n),()=>a.unmount()}function D(t,e,n,o,a=!0){let i=b({name:"MachTableSlot",setup:()=>()=>H({default:t},"default",e())});o&&(i.appContext=o);let l=!1,u=()=>{l||h(i,n)};return a?queueMicrotask(u):u(),()=>{l=!0,h(null,n)}}function ee(t,e){let n=T(e?.appContext);return o=>{let a=document.createElement("div");a.className="mach-cell-vue",a.style.width="100%";let r=V(t,o,a,n),i=!1;return{el:a,destroy:()=>{i||(i=!0,window.setTimeout(r,0))}}}}function te(t,e){let n=T(e?.appContext);return o=>{let a=document.createElement("div");a.style.height="100%";let r=V(t,o,a,n),i=!1;return{el:a,destroy:()=>{i||(i=!0,r())}}}}function G(t,e){let n=T(e?.appContext);return o=>{let a=document.createElement("div");a.className="mach-cell-vue mach-cell-vue--slot",a.style.width="100%";let r=D(t,()=>o,a,n);return{el:a,destroy:r}}}function M(t,e){let n=T(e?.appContext);return o=>{let a=document.createElement("div");a.className="mach-header-vue-slot";let r=D(t,()=>o,a,n);return{el:a,destroy:r}}}function N(t,e){let n=T(e?.appContext);return o=>{let a=$({value:o.value}),r=document.createElement("div");r.className="mach-cell-vue mach-cell-vue--editor";let l=D(t,()=>({...o,value:a.value,setValue:u=>{a.value=u},commit:()=>o.api.stopEditing(!1),cancel:()=>o.api.stopEditing(!0)}),r,n,!1);return{el:r,getValue:()=>a.value,focus:()=>{r.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])")?.focus()},destroy:l}}}function x(t,e){let n=T(e?.appContext);return o=>{let a=document.createElement("div");a.className="mach-detail-vue-slot",a.style.height="100%";let r=D(t,()=>o,a,n);return{el:a,destroy:r}}}function C(t,e){let n=T(e?.appContext);return()=>{let o=document.createElement("div");o.className="mach-overlay-vue-slot";let a=D(t,()=>({}),o,n);return{el:o,destroy:a}}}function S(t,e,n){return t[`${e}-${n}`]??t[`${e}-${n.replace(/[.\s]+/g,"-")}`]}function O(t,e,n){return t.map((o,a)=>{if(Array.isArray(o.children)){let y=o;return{...y,children:O(y.children,e,n)}}let r=o,i=r.colId??r.field??`col_${a}`,l=S(e,"cell",i)??(i==="op"?e.actions:void 0)??e.cell,u=S(e,"header",i)??e.header,g=S(e,"editor",i)??e.editor;return{...r,...l?{cellRenderer:G(l,{appContext:n})}:{},...u?{headerComponent:M(u,{appContext:n})}:{},...g?{cellEditor:N(g,{appContext:n})}:{}}})}function re(t,e,n){let o=t.columnDefs?O(t.columnDefs,e,n):t.columnDefs;return{...t,columnDefs:o,...e.detail&&!t.detailRowRenderer?{detailRowRenderer:x(e.detail,{appContext:n})}:{},...e.loading?{overlayLoadingTemplate:C(e.loading,{appContext:n})}:{},...e.empty?{overlayNoRowsTemplate:C(e.empty,{appContext:n})}:{}}}function w(t,e){let n,o,a=t.detail?x(t.detail,{appContext:e}):void 0,r=t.loading?C(t.loading,{appContext:e}):void 0,i=t.empty?C(t.empty,{appContext:e}):void 0;return l=>(l.columnDefs!==n&&(n=l.columnDefs,o=l.columnDefs?O(l.columnDefs,t,e):l.columnDefs),{...l,columnDefs:o,...a&&!l.detailRowRenderer?{detailRowRenderer:a}:{},...r?{overlayLoadingTemplate:r}:{},...i?{overlayNoRowsTemplate:i}:{}})}var B=A.filter(t=>!["className","ariaLabel","ariaLabelledBy","ariaDescribedBy"].includes(t)),f={};for(let t of B){let e=z[t].kind,n=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:n,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 J(t){return"on"+t.charAt(0).toUpperCase()+t.slice(1)}var Q=_({name:"MachTable",inheritAttrs:!1,props:f,emits:[...L],setup(t,{expose:e,attrs:n,emit:o,slots:a}){let r=t,i=q(null),l=null,u=E(),g=w(a,j()?.appContext),y=null,P=new Set,v=()=>{let d={};for(let s of B){let m=r[s];m!==void 0&&(d[s]=m)}r.gridClassName!==void 0&&(d.className=r.gridClassName),r.gridAriaLabel!==void 0&&(d.ariaLabel=r.gridAriaLabel),r.gridAriaLabelledBy!==void 0&&(d.ariaLabelledBy=r.gridAriaLabelledBy),r.gridAriaDescribedBy!==void 0&&(d.ariaDescribedBy=r.gridAriaDescribedBy);let p=R(u.value,r.preset,d,s=>{let m=`${s.code}:${s.preset??""}`;P.has(m)||(P.add(m),u.value.onConfigWarning?u.value.onConfigWarning(s):console.warn(s.message))}),c=g(p.options);return y={options:c,explain:s=>s==="columnDefs"&&c.columnDefs!==p.options.columnDefs?{key:s,value:c.columnDefs,source:"Vue slots",layers:[...p.explain(s).layers,{name:"Vue slots",value:c.columnDefs}]}:p.explain(s)},y.options};return Y(()=>{if(!i.value)return;let d=v();for(let p of L){let c=J(p),s=d[c];d[c]=m=>{typeof s=="function"&&s(m),o(p,m)}}l=U(i.value,d)}),W(()=>{l?.destroy(),l=null}),K(()=>{let d=v();return[...A.map(p=>d[p])]},(d,p)=>{if(!l)return;let c={};d.forEach((s,m)=>{Object.is(s,p[m])||(c[A[m]]=s)}),Object.keys(c).length>0&&l.updateOptions(c)}),e({getApi:()=>l,getResolvedConfig:()=>y?.options??v(),explainOption:d=>(y??R(u.value,r.preset,{})).explain(d)}),()=>F("div",{...n,ref:i,class:["mach-vue-host",r.className,n.class]})}}),X=Q,pe=X;export{ee as a,te as b,G as c,M as d,N as e,x as f,C as g,re as h,w as i,X as j,pe as k};
2
- //# sourceMappingURL=chunk-H75IY5SP.js.map
@@ -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 createApp,\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 if (appContext) {\n const vnode = h(component, props);\n vnode.appContext = appContext;\n render(vnode, host);\n return () => render(null, host);\n }\n const app = createApp({ render: () => h(component, props) });\n app.mount(host);\n return () => app.unmount();\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 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 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 unmount = mountSlot(slot, () => params, host, appContext);\n return { el: host, destroy: unmount };\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":"+CAAA,OAAS,mBAAAA,EAAiB,sBAAAC,EAAoB,KAAAC,EAAG,mBAAAC,EAAiB,aAAAC,EAAW,OAAAC,EAAK,SAAAC,MAAmC,MACrH,OACE,cAAAC,EACA,eAAAC,EACA,oBAAAC,EACA,oBAAAC,MACK,yBCNP,OACE,aAAAC,EACA,KAAAC,EACA,UAAAC,EACA,cAAAC,EACA,sBAAAC,EACA,mBAAAC,MAIK,MAoBP,SAASC,EAAkBC,EAA+C,CACxE,GAAIA,EAAU,OAAOA,EACrB,GAAI,CACF,OAAOH,EAAmB,GAAG,UAC/B,MAAQ,CACN,MACF,CACF,CAEA,SAASI,EACPC,EACAC,EACAC,EACAC,EACY,CACZ,GAAIA,EAAY,CACd,IAAMC,EAAQZ,EAAEQ,EAAWC,CAAK,EAChC,OAAAG,EAAM,WAAaD,EACnBV,EAAOW,EAAOF,CAAI,EACX,IAAMT,EAAO,KAAMS,CAAI,CAChC,CACA,IAAMG,EAAMd,EAAU,CAAE,OAAQ,IAAMC,EAAEQ,EAAWC,CAAK,CAAE,CAAC,EAC3D,OAAAI,EAAI,MAAMH,CAAI,EACP,IAAMG,EAAI,QAAQ,CAC3B,CAEA,SAASC,EACPC,EACAN,EACAC,EACAC,EACAK,EAAQ,GACI,CAKZ,IAAMJ,EAAQZ,EAJD,CACX,KAAM,gBACN,MAAO,IAAM,IAAME,EAAW,CAAE,QAASa,CAAK,EAAG,UAAWN,EAAM,CAAC,CACrE,CACoB,EAChBE,IAAYC,EAAM,WAAaD,GACnC,IAAIM,EAAW,GACTC,EAAQ,IAAM,CACdD,GACJhB,EAAOW,EAAOF,CAAI,CACpB,EACA,OAAIM,EAAO,eAAeE,CAAK,EAC1BA,EAAM,EACJ,IAAM,CACXD,EAAW,GACXhB,EAAO,KAAMS,CAAI,CACnB,CACF,CAEO,SAASS,GACdX,EACAY,EACgB,CAChB,IAAMT,EAAaN,EAAkBe,GAAS,UAAU,EACxD,OAAQC,GAA8C,CACpD,IAAMX,EAAO,SAAS,cAAc,KAAK,EACzCA,EAAK,UAAY,gBACjBA,EAAK,MAAM,MAAQ,OACnB,IAAMY,EAAUf,EAAeC,EAAWa,EAA+BX,EAAMC,CAAU,EACrFY,EAAY,GAChB,MAAO,CACL,GAAIb,EACJ,QAAS,IAAM,CACTa,IACJA,EAAY,GACZ,OAAO,WAAWD,EAAS,CAAC,EAC9B,CACF,CACF,CACF,CAEO,SAASE,GACdhB,EACAY,EACuF,CACvF,IAAMT,EAAaN,EAAkBe,GAAS,UAAU,EACxD,OAAQC,GAAW,CACjB,IAAMX,EAAO,SAAS,cAAc,KAAK,EACzCA,EAAK,MAAM,OAAS,OACpB,IAAMY,EAAUf,EAAeC,EAAWa,EAA+BX,EAAMC,CAAU,EACrFY,EAAY,GAChB,MAAO,CACL,GAAIb,EACJ,QAAS,IAAM,CACTa,IACJA,EAAY,GACZD,EAAQ,EACV,CACF,CACF,CACF,CAGO,SAASG,EACdV,EACAK,EACgB,CAChB,IAAMT,EAAaN,EAAkBe,GAAS,UAAU,EACxD,OAAQC,GAA8C,CACpD,IAAMX,EAAO,SAAS,cAAc,KAAK,EACzCA,EAAK,UAAY,oCACjBA,EAAK,MAAM,MAAQ,OACnB,IAAMY,EAAUR,EAAUC,EAAM,IAAMM,EAAQX,EAAMC,CAAU,EAC9D,MAAO,CAAE,GAAID,EAAM,QAASY,CAAQ,CACtC,CACF,CAEO,SAASI,EACdX,EACAK,EAC+D,CAC/D,IAAMT,EAAaN,EAAkBe,GAAS,UAAU,EACxD,OAAQC,GAAW,CACjB,IAAMX,EAAO,SAAS,cAAc,KAAK,EACzCA,EAAK,UAAY,uBACjB,IAAMY,EAAUR,EAAUC,EAAM,IAAMM,EAAQX,EAAMC,CAAU,EAC9D,MAAO,CAAE,GAAID,EAAM,QAASY,CAAQ,CACtC,CACF,CAUO,SAASK,EACdZ,EACAK,EACmB,CACnB,IAAMT,EAAaN,EAAkBe,GAAS,UAAU,EACxD,OAAQC,GAA4C,CAClD,IAAMO,EAAQxB,EAAmC,CAAE,MAAOiB,EAAO,KAAM,CAAC,EAClEX,EAAO,SAAS,cAAc,KAAK,EACzCA,EAAK,UAAY,sCAQjB,IAAMY,EAAUR,EAAUC,EAPR,KAA8C,CAC9D,GAAGM,EACH,MAAOO,EAAM,MACb,SAAWC,GAAU,CAAED,EAAM,MAAQC,CAAO,EAC5C,OAAQ,IAAMR,EAAO,IAAI,YAAY,EAAK,EAC1C,OAAQ,IAAMA,EAAO,IAAI,YAAY,EAAI,CAC3C,GACwEX,EAAMC,EAAY,EAAK,EAC/F,MAAO,CACL,GAAID,EACJ,SAAU,IAAMkB,EAAM,MACtB,MAAO,IAAM,CACOlB,EAAK,cACrB,kIACF,GACW,MAAM,CACnB,EACA,QAASY,CACX,CACF,CACF,CAEO,SAASQ,EACdf,EACAK,EACiE,CACjE,IAAMT,EAAaN,EAAkBe,GAAS,UAAU,EACxD,OAAQC,GAAW,CACjB,IAAMX,EAAO,SAAS,cAAc,KAAK,EACzCA,EAAK,UAAY,uBACjBA,EAAK,MAAM,OAAS,OACpB,IAAMY,EAAUR,EAAUC,EAAM,IAAMM,EAAQX,EAAMC,CAAU,EAC9D,MAAO,CAAE,GAAID,EAAM,QAASY,CAAQ,CACtC,CACF,CAEO,SAASS,EACdhB,EACAK,EACiB,CACjB,IAAMT,EAAaN,EAAkBe,GAAS,UAAU,EACxD,MAAO,IAAM,CACX,IAAMV,EAAO,SAAS,cAAc,KAAK,EACzCA,EAAK,UAAY,wBACjB,IAAMY,EAAUR,EAAUC,EAAM,KAAO,CAAC,GAAIL,EAAMC,CAAU,EAC5D,MAAO,CAAE,GAAID,EAAM,QAASY,CAAQ,CACtC,CACF,CCzLA,SAASU,EAAUC,EAAcC,EAAgBC,EAA8B,CAC7E,OAAOF,EAAM,GAAGC,CAAM,IAAIC,CAAE,EAAE,GAAKF,EAAM,GAAGC,CAAM,IAAIC,EAAG,QAAQ,UAAW,GAAG,CAAC,EAAE,CACpF,CAEA,SAASC,EACPC,EACAJ,EACAK,EACwC,CACxC,OAAOD,EAAY,IAAI,CAACE,EAAYC,IAAU,CAC5C,GAAI,MAAM,QAASD,EAAkC,QAAQ,EAAG,CAC9D,IAAME,EAAQF,EACd,MAAO,CAAE,GAAGE,EAAO,SAAUL,EAAeK,EAAM,SAAUR,EAAOK,CAAU,CAAE,CACjF,CACA,IAAMI,EAASH,EACTJ,EAAKO,EAAO,OAASA,EAAO,OAAS,OAAOF,CAAK,GACjDG,EAAOX,EAAUC,EAAO,OAAQE,CAAE,IAAMA,IAAO,KAAOF,EAAM,QAAU,SAAcA,EAAM,KAC1FW,EAASZ,EAAUC,EAAO,SAAUE,CAAE,GAAKF,EAAM,OACjDY,EAASb,EAAUC,EAAO,SAAUE,CAAE,GAAKF,EAAM,OACvD,MAAO,CACL,GAAGS,EACH,GAAIC,EAAO,CAAE,aAAcG,EAAoBH,EAAM,CAAE,WAAAL,CAAW,CAAC,CAAE,EAAI,CAAC,EAC1E,GAAIM,EAAS,CAAE,gBAAiBG,EAAsBH,EAAQ,CAAE,WAAAN,CAAW,CAAC,CAAE,EAAI,CAAC,EACnF,GAAIO,EAAS,CAAE,WAAYG,EAAkBH,EAAQ,CAAE,WAAAP,CAAW,CAAC,CAAE,EAAI,CAAC,CAC5E,CACF,CAAC,CACH,CAEO,SAASW,GACdC,EACAjB,EACAK,EACoB,CACpB,IAAMa,EAAaD,EAAQ,WACvBd,EAAec,EAAQ,WAAYjB,EAAOK,CAAU,EACpDY,EAAQ,WACZ,MAAO,CACL,GAAGA,EACH,WAAAC,EACA,GAAIlB,EAAM,QAAU,CAACiB,EAAQ,kBACzB,CAAE,kBAAmBE,EAAsBnB,EAAM,OAAQ,CAAE,WAAAK,CAAW,CAAC,CAAE,EACzE,CAAC,EACL,GAAIL,EAAM,QAAU,CAAE,uBAAwBoB,EAAepB,EAAM,QAAS,CAAE,WAAAK,CAAW,CAAC,CAAE,EAAI,CAAC,EACjG,GAAIL,EAAM,MAAQ,CAAE,sBAAuBoB,EAAepB,EAAM,MAAO,CAAE,WAAAK,CAAW,CAAC,CAAE,EAAI,CAAC,CAC9F,CACF,CAGO,SAASgB,EAA6BrB,EAAcK,EAAyB,CAClF,IAAIiB,EACAC,EACEC,EAAiBxB,EAAM,OAASmB,EAA6BnB,EAAM,OAAQ,CAAE,WAAAK,CAAW,CAAC,EAAI,OAC7FoB,EAAkBzB,EAAM,QAAUoB,EAAepB,EAAM,QAAS,CAAE,WAAAK,CAAW,CAAC,EAAI,OAClFqB,EAAgB1B,EAAM,MAAQoB,EAAepB,EAAM,MAAO,CAAE,WAAAK,CAAW,CAAC,EAAI,OAElF,OAAQY,IACFA,EAAQ,aAAeK,IACzBA,EAAsBL,EAAQ,WAC9BM,EAAsBN,EAAQ,WAC1Bd,EAAec,EAAQ,WAAYjB,EAAOK,CAAU,EACpDY,EAAQ,YAEP,CACL,GAAGA,EACH,WAAYM,EACZ,GAAIC,GAAkB,CAACP,EAAQ,kBAAoB,CAAE,kBAAmBO,CAAe,EAAI,CAAC,EAC5F,GAAIC,EAAkB,CAAE,uBAAwBA,CAAgB,EAAI,CAAC,EACrE,GAAIC,EAAgB,CAAE,sBAAuBA,CAAc,EAAI,CAAC,CAClE,EAEJ,CFzDA,IAAMC,EAAsBC,EAAiB,OAC1CC,GAAQ,CAAC,CAAC,YAAa,YAAa,iBAAkB,iBAAiB,EAAE,SAASA,CAAG,CACxF,EAEMC,EAAmE,CAAC,EAC1E,QAAWD,KAAOF,EAAqB,CACrC,IAAMI,EAAOC,EAAiBH,CAAG,EAAE,KAC7BI,EAAOF,IAAS,UAClB,QACAA,IAAS,SACP,OACAA,IAAS,QACP,MACAA,IAAS,WACP,SACAA,IAAS,iBACP,CAAC,QAAS,MAAM,EAChBA,IAAS,SACP,OACAA,IAAS,SACP,OACA,OAChBD,EAAaD,CAAG,EAAI,CAAE,KAAAI,EAAM,QAAS,MAAU,CACjD,CACAH,EAAa,UAAY,CAAE,KAAM,OAAQ,QAAS,MAAU,EAC5DA,EAAa,cAAgB,CAAE,KAAM,OAAQ,QAAS,MAAU,EAChEA,EAAa,cAAgB,CAAE,KAAM,OAAQ,QAAS,MAAU,EAChEA,EAAa,mBAAqB,CAAE,KAAM,OAAQ,QAAS,MAAU,EACrEA,EAAa,oBAAsB,CAAE,KAAM,OAAQ,QAAS,MAAU,EACtEA,EAAa,OAAS,CAAE,KAAM,CAAC,OAAQ,MAAO,OAAO,EAAG,QAAS,MAAU,EAE3E,SAASI,EAAcC,EAA2B,CAChD,MAAO,KAAOA,EAAU,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAU,MAAM,CAAC,CACrE,CAEA,IAAMC,EAAgBC,EAAgB,CACpC,KAAM,YACN,aAAc,GACd,MAAOP,EACP,MAAO,CAAC,GAAGQ,CAAW,EACtB,MAAMC,EAAU,CAAE,OAAAC,EAAQ,MAAAC,EAAO,KAAAC,EAAM,MAAAC,CAAM,EAAG,CAC9C,IAAMC,EAAQL,EACRM,EAAOC,EAA2B,IAAI,EACxCC,EAAsB,KACpBC,EAASC,EAAmB,EAC5BC,EAAkBC,EAA2BR,EAAOS,EAAmB,GAAG,UAAU,EACtFC,EAA2D,KACzDC,EAAmB,IAAI,IAEvBC,EAAiB,IAAwB,CAC7C,IAAMC,EAAoC,CAAC,EAC3C,QAAW3B,KAAOF,EAAqB,CACrC,IAAM8B,EAAQb,EAAMf,CAAG,EACnB4B,IAAU,SAAWD,EAAS3B,CAAG,EAAI4B,EAC3C,CACIb,EAAM,gBAAkB,SAAWY,EAAS,UAAYZ,EAAM,eAC9DA,EAAM,gBAAkB,SAAWY,EAAS,UAAYZ,EAAM,eAC9DA,EAAM,qBAAuB,SAAWY,EAAS,eAAiBZ,EAAM,oBACxEA,EAAM,sBAAwB,SAAWY,EAAS,gBAAkBZ,EAAM,qBAC9E,IAAMc,EAAaC,EACjBX,EAAO,MACPJ,EAAM,OACNY,EACCI,GAAY,CACX,IAAM/B,EAAM,GAAG+B,EAAQ,IAAI,IAAIA,EAAQ,QAAU,EAAE,GAC/CN,EAAiB,IAAIzB,CAAG,IAC5ByB,EAAiB,IAAIzB,CAAG,EACpBmB,EAAO,MAAM,gBAAiBA,EAAO,MAAM,gBAAgBY,CAAO,EACjE,QAAQ,KAAKA,EAAQ,OAAO,EACnC,CACF,EACMC,EAAkBX,EAAgBQ,EAAW,OAAO,EAC1D,OAAAL,EAAiB,CACf,QAASQ,EACT,QAAUhC,GACJA,IAAQ,cAAgBgC,EAAgB,aAAeH,EAAW,QAAQ,WACrE,CACL,IAAA7B,EACA,MAAOgC,EAAgB,WACvB,OAAQ,YACR,OAAQ,CAAC,GAAGH,EAAW,QAAQ7B,CAAG,EAAE,OAAQ,CAAE,KAAM,YAAa,MAAOgC,EAAgB,UAAW,CAAC,CACtG,EAEKH,EAAW,QAAQ7B,CAAG,CAEjC,EACOwB,EAAe,OACxB,EAEA,OAAAS,EAAU,IAAM,CACd,GAAI,CAACjB,EAAK,MAAO,OACjB,IAAMkB,EAAUR,EAAe,EAC/B,QAAWtB,KAAQK,EAAa,CAC9B,IAAM0B,EAAc9B,EAAcD,CAAI,EAChCgC,EAAiBF,EAAQC,CAAW,EAC1CD,EAAQC,CAAW,EAAKE,GAAmB,CACrC,OAAOD,GAAmB,YAAaA,EAA4CC,CAAK,EAC5FxB,EAAKT,EAAMiC,CAAK,CAClB,CACF,CACAnB,EAAMoB,EAAWtB,EAAK,MAAOkB,CAA2B,CAC1D,CAAC,EAEDK,EAAgB,IAAM,CACpBrB,GAAK,QAAQ,EACbA,EAAM,IACR,CAAC,EAEDsB,EACE,IAAM,CACJ,IAAMN,EAAUR,EAAe,EAC/B,MAAO,CAAC,GAAG3B,EAAiB,IAAKC,GAAQkC,EAAQlC,CAAG,CAAC,CAAC,CACxD,EACA,CAACyC,EAAQC,IAAa,CACpB,GAAI,CAACxB,EAAK,OACV,IAAMyB,EAAmC,CAAC,EAC1CF,EAAO,QAAQ,CAACb,EAAOgB,IAAU,CAC3B,OAAO,GAAGhB,EAAOc,EAASE,CAAK,CAAC,IACpCD,EAAQ5C,EAAiB6C,CAAK,CAAC,EAAIhB,EACrC,CAAC,EACG,OAAO,KAAKe,CAAO,EAAE,OAAS,GAAGzB,EAAI,cAAcyB,CAAoC,CAC7F,CACF,EAEAhC,EAAO,CACL,OAAQ,IAAsBO,EAC9B,kBAAmB,IAAwBM,GAAgB,SAAWE,EAAe,EACrF,cAAgB1B,IACbwB,GAAkBM,EAA4BX,EAAO,MAAOJ,EAAM,OAAQ,CAAC,CAAC,GAAG,QAAQf,CAAG,CAC/F,CAAC,EAEM,IAAM6C,EAAE,MAAO,CACpB,GAAGjC,EACH,IAAKI,EACL,MAAO,CAAC,gBAAiBD,EAAM,UAAWH,EAAM,KAAK,CACvD,CAAC,CACH,CACF,CAAC,EAEYkC,EAAYvC,EAEZwC,GAAYD","names":["defineComponent","getCurrentInstance","h","onBeforeUnmount","onMounted","ref","watch","createGrid","EVENT_TYPES","GRID_OPTION_KEYS","GRID_OPTION_META","createApp","h","render","renderSlot","getCurrentInstance","shallowReactive","resolveAppContext","explicit","mountComponent","component","props","host","appContext","vnode","app","mountSlot","slot","defer","disposed","mount","vueCellRenderer","options","params","unmount","destroyed","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,2 +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 X(){let a=_vue.ref.call(void 0, null),r=_vue.shallowRef.call(void 0, null),d=_vue.shallowRef.call(void 0, !1),n=0;return _vue.watch.call(void 0, a,i=>{let f=++n;if(i&&typeof i.getApi=="function"){r.value=i.getApi(),d.value=!1;let v=r.value;v&&v.whenReady().then(()=>{n===f&&r.value===v&&!v.isDestroyed()&&(d.value=!0)})}else r.value=null,d.value=!1},{flush:"post"}),_vue.onScopeDispose.call(void 0, ()=>{n++,a.value=null,r.value=null,d.value=!1}),{ref:a,api:r,ready:d}}function _(a,r={}){let d=_vue.shallowRef.call(void 0, []),n=_vue.ref.call(void 0, []),i=_vue.ref.call(void 0, !1),f=_vue.shallowRef.call(void 0, null),v=_vue.computed.call(void 0, ()=>n.value.length>0),g=null,p=()=>{let t=a.api.value;if(!t||t.isDestroyed()){n.value=[],d.value=[];return}n.value=t.getDirtyRowIds(),d.value=t.getChanges()};_vue.watch.call(void 0, a.api,t=>{_optionalChain([g, 'optionalCall', _2 => _2()]),g=null,p(),!(!t||t.isDestroyed())&&(g=t.addEventListener("dirtyStateChanged",p))},{immediate:!0});let R=async(t,m)=>{let T=a.api.value;if(!T||T.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(i.value)throw new Error("[MachTable] A save operation is already in progress.");i.value=!0,f.value=null;try{let c=await T.saveChanges(t,m);return p(),_optionalChain([r, 'access', _3 => _3.onSaveSuccess, 'optionalCall', _4 => _4(c)]),c}catch(c){throw f.value=c,_optionalChain([r, 'access', _5 => _5.onSaveError, 'optionalCall', _6 => _6(c)]),c}finally{i.value=!1}},k=t=>{let m=_nullishCoalesce(_optionalChain([a, 'access', _7 => _7.api, 'access', _8 => _8.value, 'optionalAccess', _9 => _9.rollbackChanges, 'call', _10 => _10(t)]), () => (!1));return p(),m},y=t=>{_optionalChain([a, 'access', _11 => _11.api, 'access', _12 => _12.value, 'optionalAccess', _13 => _13.markChangesSaved, 'call', _14 => _14(t)]),p()},h=(t,m,T=!1)=>{let c=a.api.value,C=_optionalChain([c, 'optionalAccess', _15 => _15.getNodeById, 'call', _16 => _16(t)]);return!c||!C||C.rowIndex<0?!1:(c.scrollToIndex(C.rowIndex,"middle"),m&&T?c.startEditingCell({rowIndex:C.rowIndex,colId:m}):!0)},u=t=>{if(!v.value)return;let m=_nullishCoalesce(r.beforeUnloadMessage, () => ("\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002"));return t.preventDefault(),t.returnValue=m,m};return r.guardBeforeUnload&&typeof window<"u"&&window.addEventListener("beforeunload",u),_vue.onScopeDispose.call(void 0, ()=>{_optionalChain([g, 'optionalCall', _17 => _17()]),g=null,r.guardBeforeUnload&&typeof window<"u"&&window.removeEventListener("beforeunload",u)}),{changes:d,dirtyRowIds:n,dirty:v,saving:i,saveError:f,save:R,rollback:k,markSaved:y,reveal:h,refresh:p}}var _machtable = require('@agile-team/mach-table');function te(a){return typeof a=="function"?a():_vue.isRef.call(void 0, a)?a.value:a}function N(a,r){return typeof a=="number"&&Number.isFinite(a)&&a>0?Math.floor(a):r}function Ce(a){return(a instanceof DOMException||typeof a=="object"&&a!=null&&"name"in a)&&a.name==="AbortError"}function le(a){let r=_vue.shallowRef.call(void 0, []),d=_vue.ref.call(void 0, !1),n=_vue.shallowRef.call(void 0, null),i=_vue.ref.call(void 0, N(a.initialPage,1)),f=_vue.ref.call(void 0, N(a.pageSize,20)),v=_vue.ref.call(void 0, 0),g=_vue.shallowRef.call(void 0, []),p=_vue.shallowRef.call(void 0, {}),R=_vue.ref.call(void 0, []),k=_vue.shallowRef.call(void 0, []),y=new Set,h=new Set,u=new Map,t=_nullishCoalesce(a.quickFilterText, () => (_vue.ref.call(void 0, null))),m=_nullishCoalesce(a.selectionScope, () => ("preserve")),T=a.mode!=="manual",c=_vue.ref.call(void 0, !1),C=_vue.ref.call(void 0, 0),F=[...new Set((_nullishCoalesce(a.pageSizeOptions, () => ([10,20,50,100]))).map(e=>N(e,0)).filter(Boolean))];F.includes(f.value)||F.push(f.value),F.sort((e,l)=>e-l);let M=null,w=null,O=0,S=null,Q=!1,U=!1,z=!1,b=e=>{let l=typeof a.rowKey=="function"?a.rowKey(e):_machtable.getByPath.call(void 0, e,a.rowKey);if(l==null||String(l).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(a.rowKey)}" returned an empty value.`);return String(l)},E=()=>{z=!0,R.value=c.value?[]:[...y],z=!1;let e=c.value?[...u.keys()]:[...y];k.value=e.flatMap(l=>{let o=u.get(l);return o===void 0||h.has(l)?[]:[o]}),C.value++},B=e=>c.value?!h.has(e):y.has(e),q=()=>{if(!M||M.isDestroyed())return;let e=r.value.filter(l=>B(b(l)));U=!0;try{M.setSelection(e,!0)}finally{U=!1}},j=()=>{O++,_optionalChain([w, 'optionalAccess', _18 => _18.abort, 'call', _19 => _19()]),w=null,S!=null&&clearTimeout(S),S=null,d.value=!1},$=(e,l)=>e.signal.aborted||l!==O,re=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 }.")},ne=async(e,l,o)=>{if($(l,o))return;re(e);let s=[...e.rows];for(let P of s)b(P);r.value=s,v.value=Math.floor(e.total);for(let P of r.value){let L=b(P);B(L)?u.set(L,P):u.delete(L)}E(),_optionalChain([a, 'access', _20 => _20.onSuccess, 'optionalCall', _21 => _21(e)]),await _vue.nextTick.call(void 0, ),q()},oe=(e,l,o)=>{$(l,o)||Ce(e)||(n.value=_nullishCoalesce(e, () => (new Error)),_optionalChain([a, 'access', _22 => _22.onError, 'optionalCall', _23 => _23(n.value)]))},x=async()=>{S!=null&&clearTimeout(S),S=null,_optionalChain([w, 'optionalAccess', _24 => _24.abort, 'call', _25 => _25()]);let e=new AbortController;w=e;let l=++O;d.value=!0,n.value=null,a.keepPreviousData===!1&&(r.value=[]);try{let o=await a.request({page:i.value,pageSize:f.value,query:te(a.query),sortModel:g.value.map(s=>({...s})),filterModel:{...p.value},quickFilterText:t.value,signal:e.signal});await ne(o,e,l)}catch(o){oe(o,e,l)}finally{l===O&&(d.value=!1,w===e&&(w=null))}},K=e=>{e&&(i.value=1),S!=null&&clearTimeout(S),w&&(O++,w.abort(),w=null,d.value=!1);let l=Math.max(0,_nullishCoalesce(a.debounceMs, () => (0)));if(l===0){x();return}S=setTimeout(()=>{x()},l)},ie=e=>{M=e.api,_vue.nextTick.call(void 0, q)},se=e=>{Q||e.page===i.value&&e.pageSize===f.value||(i.value=e.page,f.value=e.pageSize,T&&x())},ue=e=>{Q||(g.value=e.sortModel.map(l=>({...l})),T?K(!0):i.value=1)},ce=e=>{Q||(p.value={...e.filterModel},a.clearSelectionOnQueryChange!==!1&&A(),T?K(!0):i.value=1)},de=e=>{if(U)return;let l=new Set(r.value.map(b)),o=new Set(e.selectedRows.map(b));if(c.value){for(let s of l)o.has(s)?h.delete(s):(h.add(s),u.delete(s));for(let s of e.selectedRows)u.set(b(s),s);E();return}if(m==="page")y.clear(),u.clear();else for(let s of l)y.delete(s),u.delete(s);for(let s of e.selectedRows){let P=b(s);y.add(P),u.set(P,s)}E()},J=_vue.computed.call(void 0, ()=>({rowData:r.value,loading:d.value,rowKey:b,manualSorting:!0,manualFiltering:!0,quickFilterText:t.value,error:n.value,overlayErrorTemplate:n.value?()=>_nullishCoalesce(_optionalChain([a, 'access', _26 => _26.errorOverlay, 'optionalCall', _27 => _27({error:n.value,retry:x})]), () => ("Remote request failed. Please retry.")):void 0,overlayNoRowsTemplate:a.emptyOverlay,pagination:{mode:"server",page:i.value,pageSize:f.value,pageSizeOptions:F,total:v.value,showTotal:!0,showPageSizeSelector:!0},onGridReady:ie,onPaginationChanged:se,onSortChanged:ue,onFilterChanged:ce,onSelectionChanged:de})),fe=async(e={})=>{e.resetPage&&(i.value=1),await x()},ve=async()=>{i.value=1,g.value=[],p.value={},A(),Q=!0;try{_optionalChain([M, 'optionalAccess', _28 => _28.setSortModel, 'call', _29 => _29(null)]),_optionalChain([M, 'optionalAccess', _30 => _30.setFilterModel, 'call', _31 => _31(null)])}finally{Q=!1}await x()},A=()=>{c.value=!1,y.clear(),h.clear(),u.clear(),E(),U=!0;try{_optionalChain([M, 'optionalAccess', _32 => _32.deselectAll, 'call', _33 => _33()])}finally{U=!1}},ye=()=>{c.value=!0,y.clear(),h.clear(),u.clear();for(let e of r.value)u.set(b(e),e);E(),q()},ge=e=>{y.clear(),h.clear(),u.clear(),c.value=e.mode==="allMatching";let l=e.mode==="allMatching"?e.excludedKeys:e.selectedKeys;for(let o of l.map(String))e.mode==="allMatching"?h.add(o):y.add(o);for(let o of r.value){let s=b(o);B(s)&&u.set(s,o)}E(),q()},pe=_vue.computed.call(void 0, ()=>(C.value,c.value?{mode:"allMatching",excludedKeys:[...h]}:{mode:"explicit",selectedKeys:[...y]}));return _vue.watch.call(void 0, ()=>te(a.query),()=>{a.clearSelectionOnQueryChange!==!1&&A(),T?K(!0):i.value=1},{deep:!0,immediate:T&&a.immediate!==!1}),_vue.watch.call(void 0, t,()=>{a.clearSelectionOnQueryChange!==!1&&A(),T?K(!0):i.value=1}),_vue.watch.call(void 0, R,e=>{if(z)return;c.value=!1,h.clear();let l=new Set(e.map(String));y.clear();for(let o of l)y.add(o);for(let o of[...u.keys()])l.has(o)||u.delete(o);for(let o of r.value){let s=b(o);l.has(s)&&u.set(s,o)}q(),E()},{deep:!0,flush:"sync"}),_vue.onScopeDispose.call(void 0, ()=>{j(),M=null}),{rows:r,loading:d,error:n,page:i,pageSize:f,total:v,sortModel:g,filterModel:p,selectedKeys:R,selectedRows:k,selectionState:pe,gridProps:J,bindings:J,reload:fe,retry:x,reset:ve,abort:j,clearSelection:A,selectAllMatching:ye,applySelectionState:ge}}function Ve(a={}){let r=X(),d=_vue.ref.call(void 0, _nullishCoalesce(a.initialSearch, () => (""))),n=a.query?le({...a.query,quickFilterText:_nullishCoalesce(a.query.quickFilterText, () => (_vue.computed.call(void 0, ()=>d.value||null)))}):null,i=_(r,a.editing),f=_vue.shallowRef.call(void 0, []),v=null,g=()=>{f.value=_nullishCoalesce(_nullishCoalesce(_optionalChain([n, 'optionalAccess', _34 => _34.selectedRows, 'access', _35 => _35.value]), () => (_optionalChain([r, 'access', _36 => _36.api, 'access', _37 => _37.value, 'optionalAccess', _38 => _38.getSelectedRows, 'call', _39 => _39()]))), () => ([]))};_vue.watch.call(void 0, r.api,t=>{_optionalChain([v, 'optionalCall', _40 => _40()]),v=null,t&&!t.isDestroyed()&&(v=t.addEventListener("selectionChanged",g)),g()},{immediate:!0}),n&&_vue.watch.call(void 0, n.selectedRows,g,{deep:!1});let p=async()=>{if(n)await n.reload();else{let t=r.api.value;_optionalChain([t, 'optionalAccess', _41 => _41.isInfinite, 'call', _42 => _42()])?await t.reload():_optionalChain([t, 'optionalAccess', _43 => _43.refreshCells, 'call', _44 => _44()])}},R=_machtable.createMachTableCommands.call(void 0, {getApi:()=>r.api.value,reload:p}),k=_vue.computed.call(void 0, ()=>_nullishCoalesce(_optionalChain([n, 'optionalAccess', _45 => _45.bindings, 'access', _46 => _46.value]), () => ({}))),y=_vue.computed.call(void 0, ()=>{if(!n)return f.value.length;let t=n.selectionState.value;return t.mode==="allMatching"?Math.max(0,n.total.value-t.excludedKeys.length):t.selectedKeys.length}),h=_vue.computed.call(void 0, ()=>_optionalChain([n, 'optionalAccess', _47 => _47.loading, 'access', _48 => _48.value])===!0||i.saving.value),u=_vue.computed.call(void 0, ()=>_nullishCoalesce(_nullishCoalesce(_optionalChain([n, 'optionalAccess', _49 => _49.error, 'access', _50 => _50.value]), () => (i.saveError.value)), () => (null)));return _vue.watch.call(void 0, d,t=>{n||R.search(t||null)}),_vue.onScopeDispose.call(void 0, ()=>{_optionalChain([v, 'optionalCall', _51 => _51()]),v=null}),{table:r,query:n,editing:i,bindings:k,search:d,selectedRows:f,selectedCount:y,busy:h,error:u,commands:R,reload:p}}exports.a = X; exports.b = _; exports.c = le; exports.d = Ve;
2
- //# sourceMappingURL=chunk-L6HN564Y.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-L6HN564Y.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-L6HN564Y.cjs","sourcesContent":[null]}