@agile-team/mach-table-vue 0.28.0 → 0.29.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,29 +20,53 @@ import "@agile-team/mach-table-vue/styles.css";
20
20
 
21
21
  ```vue
22
22
  <script setup lang="ts">
23
- import { ref } from "vue";
24
- import { MachTable, useMachTable, type ColDef } from "@agile-team/mach-table-vue";
25
-
26
- interface Row { id: string; name: string }
23
+ import { h, ref } from "vue";
24
+ import {
25
+ MachTable,
26
+ defineVueColumns,
27
+ defineVueTableConfig,
28
+ indexColumn,
29
+ useMachTable,
30
+ } from "@agile-team/mach-table-vue";
31
+
32
+ interface Row { id: string; name: string; status: "enabled" | "disabled" }
27
33
  const table = useMachTable<Row>();
28
- const rows = ref<Row[]>([{ id: "1", name: "MachTable" }]);
29
- const columns: ColDef<Row>[] = [{ field: "name", flex: 1, editable: true }];
34
+ const rows = ref<Row[]>([{ id: "1", name: "MachTable", status: "enabled" }]);
35
+ const columns = defineVueColumns<Row>([
36
+ indexColumn({ headerName: "序号" }),
37
+ { field: "name", flex: 1, editable: true },
38
+ {
39
+ field: "status",
40
+ headerName: "状态",
41
+ render: (row) => h("span", { class: `status-${row.status}` }, row.status === "enabled" ? "启用" : "停用")
42
+ }
43
+ ]);
44
+ const tableConfig = defineVueTableConfig<Row>({
45
+ rowKey: "id",
46
+ enableColumnResize: true,
47
+ stripedRows: true,
48
+ persistence: { key: "customers:list", sections: ["columns"] }
49
+ });
30
50
  </script>
31
51
 
32
52
  <template>
33
53
  <div style="height: 520px">
34
54
  <MachTable
55
+ v-bind="tableConfig"
35
56
  :ref="table.ref"
36
57
  :row-data="rows"
37
58
  :column-defs="columns"
38
- row-key="id"
39
- enable-column-resize
40
- :persistence="{ key: 'customers:list', sections: ['columns'] }"
41
59
  />
42
60
  </div>
43
61
  </template>
44
62
  ```
45
63
 
64
+ 业务列优先用 `defineVueColumns()` 的 `render(row, index, params)` 返回 VNode;它保留 Vue 应用上下文、支持原位刷新,并遵循全局、表格和单列对齐配置。复杂页面编排仍可使用 `#cell-*` 具名插槽,具名插槽会显式覆盖同列 `render`。多个稳定表格参数推荐放进页面 `data.ts` 或共享配置模块,模板通过一次 `v-bind="tableConfig"` 注入;`rowData`、`columnDefs` 和实例 `ref` 保持显式,便于看清数据来源。
65
+
66
+ 未声明 `#loading` / `#empty` 时会直接使用 Core 的紧凑骨架加载态与插画空态;只有产品确实需要品牌化呈现时才提供 slot,避免每个页面重复维护同类状态组件。
67
+
68
+ 单元格编辑在用户点击对勾/取消或执行 Enter、Escape、Tab 键盘命令前保持挂载,焦点变化和中文输入法组合输入不会提前提交。整行事务请设置 `edit-type="fullRow"` 并增加 `rowActionsColumn()`,该操作列会自动切换编辑、保存和取消状态。
69
+
46
70
  ## 全局接入
47
71
 
48
72
  表格页面较多时,全局注册一次,页面模板直接使用 `<MachTable>`:
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5JCLLHKUcjs = require('./chunk-5JCLLHKU.cjs');require('./chunk-67FAUPVE.cjs');require('./chunk-TRZLFCVK.cjs');exports.MachTable = _chunk5JCLLHKUcjs.a;
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-3VP52LWA.js";import"./chunk-J3F33EIC.js";import"./chunk-7MMXRLRK.js";export{a as MachTable};
package/dist/adapters.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXECIDGIZcjs = require('./chunk-XECIDGIZ.cjs');exports.applyVueSlots = _chunkXECIDGIZcjs.h; exports.createVueSlotEnhancer = _chunkXECIDGIZcjs.i; exports.vueCellEditorSlot = _chunkXECIDGIZcjs.e; exports.vueCellRenderer = _chunkXECIDGIZcjs.a; exports.vueCellSlotRenderer = _chunkXECIDGIZcjs.c; exports.vueDetailRenderer = _chunkXECIDGIZcjs.b; exports.vueDetailSlotRenderer = _chunkXECIDGIZcjs.f; exports.vueHeaderSlotRenderer = _chunkXECIDGIZcjs.d; exports.vueOverlaySlot = _chunkXECIDGIZcjs.g;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTRZLFCVKcjs = require('./chunk-TRZLFCVK.cjs');exports.applyVueSlots = _chunkTRZLFCVKcjs.h; exports.createVueSlotEnhancer = _chunkTRZLFCVKcjs.i; exports.vueCellEditorSlot = _chunkTRZLFCVKcjs.e; exports.vueCellRenderer = _chunkTRZLFCVKcjs.a; exports.vueCellSlotRenderer = _chunkTRZLFCVKcjs.c; exports.vueDetailRenderer = _chunkTRZLFCVKcjs.b; exports.vueDetailSlotRenderer = _chunkTRZLFCVKcjs.f; exports.vueHeaderSlotRenderer = _chunkTRZLFCVKcjs.d; exports.vueOverlaySlot = _chunkTRZLFCVKcjs.g;
package/dist/adapters.js CHANGED
@@ -1 +1 @@
1
- import{a as e,b as r,c as l,d as o,e as t,f as u,g as a,h as p,i as d}from"./chunk-SQVY5G55.js";export{p as applyVueSlots,d as createVueSlotEnhancer,t as vueCellEditorSlot,e as vueCellRenderer,l as vueCellSlotRenderer,r as vueDetailRenderer,u as vueDetailSlotRenderer,o as vueHeaderSlotRenderer,a as vueOverlaySlot};
1
+ import{a as e,b as r,c as l,d as o,e as t,f as u,g as a,h as p,i as d}from"./chunk-7MMXRLRK.js";export{p as applyVueSlots,d as createVueSlotEnhancer,t as vueCellEditorSlot,e as vueCellRenderer,l as vueCellSlotRenderer,r as vueDetailRenderer,u as vueDetailSlotRenderer,o as vueHeaderSlotRenderer,a as vueOverlaySlot};
package/dist/async.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }var _chunkYQIRPQHTcjs = require('./chunk-YQIRPQHT.cjs');require('./chunk-7LXDVLDD.cjs');var _vue = require('vue');var p=()=>Promise.resolve().then(() => _interopRequireWildcard(require("./MachTable-EL36L7JW.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;_chunkYQIRPQHTcjs.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 _chunkKMXOU5Z3cjs = require('./chunk-KMXOU5Z3.cjs');require('./chunk-67FAUPVE.cjs');var _vue = require('vue');var p=()=>Promise.resolve().then(() => _interopRequireWildcard(require("./MachTable-GBPI4D5W.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;_chunkKMXOU5Z3cjs.a.call(void 0, e,a,n)}}),b= exports.default =i;exports.AsyncMachTable = c; exports.AsyncMachTablePlugin = i; exports.createAsyncMachTable = t; exports.default = b; exports.preloadMachTable = p;
package/dist/async.js CHANGED
@@ -1 +1 @@
1
- import{a as o}from"./chunk-Y4S6TCE5.js";import"./chunk-7MRR4IDI.js";import{defineAsyncComponent as r}from"vue";var p=()=>import("./MachTable-6IGIPSES.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-6EIKXQ34.js";import"./chunk-J3F33EIC.js";import{defineAsyncComponent as r}from"vue";var p=()=>import("./MachTable-XSOG6VGB.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 +1 @@
1
- import{a as g,e as h}from"./chunk-7MRR4IDI.js";import{i as O}from"./chunk-SQVY5G55.js";import{defineComponent as B,getCurrentInstance as C,h as N,onBeforeUnmount as v,onMounted as R,ref as S,watch as k}from"vue";import{createGrid as E,EVENT_TYPES as T}from"@agile-team/mach-table";import{GRID_OPTION_KEYS as b,GRID_OPTION_META as L}from"@agile-team/mach-table/adapter";var A=b.filter(r=>!["className","ariaLabel","ariaLabelledBy","ariaDescribedBy"].includes(r)),l={};for(let r of A){let s=L[r].kind,p=s==="boolean"?Boolean:s==="number"?Number:s==="array"?Array:s==="function"?Function:s==="boolean-object"?[Boolean,Object]:s==="object"?Object:s==="string"?String:void 0;l[r]={type:p,default:void 0}}l.className={type:String,default:void 0};l.gridClassName={type:String,default:void 0};l.gridAriaLabel={type:String,default:void 0};l.gridAriaLabelledBy={type:String,default:void 0};l.gridAriaDescribedBy={type:String,default:void 0};l.preset={type:[String,Array,Boolean],default:void 0};function P(r){return"on"+r.charAt(0).toUpperCase()+r.slice(1)}var V=B({name:"MachTable",inheritAttrs:!1,props:l,emits:[...T],setup(r,{expose:s,attrs:p,emit:D,slots:M}){let a=r,f=S(null),d=null,u=h(),G=O(M,C()?.appContext),c=null,m=new Set,y=()=>{let n={};for(let e of A){let o=a[e];o!==void 0&&(n[e]=o)}a.gridClassName!==void 0&&(n.className=a.gridClassName),a.gridAriaLabel!==void 0&&(n.ariaLabel=a.gridAriaLabel),a.gridAriaLabelledBy!==void 0&&(n.ariaLabelledBy=a.gridAriaLabelledBy),a.gridAriaDescribedBy!==void 0&&(n.ariaDescribedBy=a.gridAriaDescribedBy);let t=g(u.value,a.preset,n,e=>{let o=`${e.code}:${e.preset??""}`;m.has(o)||(m.add(o),u.value.onConfigWarning?u.value.onConfigWarning(e):console.warn(e.message))}),i=G(t.options);return c={options:i,explain:e=>e==="columnDefs"&&i.columnDefs!==t.options.columnDefs?{key:e,value:i.columnDefs,source:"Vue slots",layers:[...t.explain(e).layers,{name:"Vue slots",value:i.columnDefs}]}:t.explain(e)},c.options};return R(()=>{if(!f.value)return;let n={...y()};for(let t of T){let i=P(t);n[i]=e=>{let o=c?.options?.[i];try{typeof o=="function"&&o(e)}finally{D(t,e)}}}d=E(f.value,n)}),v(()=>{d?.destroy(),d=null}),k(()=>{let n=y();return[...b.map(t=>n[t])]},(n,t)=>{if(!d)return;let i={};n.forEach((e,o)=>{if(Object.is(e,t[o]))return;let x=b[o];i[x]=e}),Object.keys(i).length>0&&d.updateOptions(i)}),s({getApi:()=>d,getResolvedConfig:()=>c?.options??y(),explainOption:n=>(c??g(u.value,a.preset,{})).explain(n)}),()=>N("div",{...p,ref:f,class:["mach-vue-host",a.className,p.class]})}}),Y=V;export{Y as a};
1
+ import{b as g,f as h}from"./chunk-J3F33EIC.js";import{i as O}from"./chunk-7MMXRLRK.js";import{defineComponent as B,getCurrentInstance as C,h as N,onBeforeUnmount as v,onMounted as R,ref as S,watch as k}from"vue";import{createGrid as E,EVENT_TYPES as T}from"@agile-team/mach-table";import{GRID_OPTION_KEYS as b,GRID_OPTION_META as L}from"@agile-team/mach-table/adapter";var A=b.filter(r=>!["className","ariaLabel","ariaLabelledBy","ariaDescribedBy"].includes(r)),l={};for(let r of A){let s=L[r].kind,p=s==="boolean"?Boolean:s==="number"?Number:s==="array"?Array:s==="function"?Function:s==="boolean-object"?[Boolean,Object]:s==="object"?Object:s==="string"?String:void 0;l[r]={type:p,default:void 0}}l.className={type:String,default:void 0};l.gridClassName={type:String,default:void 0};l.gridAriaLabel={type:String,default:void 0};l.gridAriaLabelledBy={type:String,default:void 0};l.gridAriaDescribedBy={type:String,default:void 0};l.preset={type:[String,Array,Boolean],default:void 0};function P(r){return"on"+r.charAt(0).toUpperCase()+r.slice(1)}var V=B({name:"MachTable",inheritAttrs:!1,props:l,emits:[...T],setup(r,{expose:s,attrs:p,emit:D,slots:M}){let a=r,f=S(null),d=null,u=h(),G=O(M,C()?.appContext),c=null,m=new Set,y=()=>{let n={};for(let e of A){let o=a[e];o!==void 0&&(n[e]=o)}a.gridClassName!==void 0&&(n.className=a.gridClassName),a.gridAriaLabel!==void 0&&(n.ariaLabel=a.gridAriaLabel),a.gridAriaLabelledBy!==void 0&&(n.ariaLabelledBy=a.gridAriaLabelledBy),a.gridAriaDescribedBy!==void 0&&(n.ariaDescribedBy=a.gridAriaDescribedBy);let t=g(u.value,a.preset,n,e=>{let o=`${e.code}:${e.preset??""}`;m.has(o)||(m.add(o),u.value.onConfigWarning?u.value.onConfigWarning(e):console.warn(e.message))}),i=G(t.options);return c={options:i,explain:e=>e==="columnDefs"&&i.columnDefs!==t.options.columnDefs?{key:e,value:i.columnDefs,source:"Vue slots",layers:[...t.explain(e).layers,{name:"Vue slots",value:i.columnDefs}]}:t.explain(e)},c.options};return R(()=>{if(!f.value)return;let n={...y()};for(let t of T){let i=P(t);n[i]=e=>{let o=c?.options?.[i];try{typeof o=="function"&&o(e)}finally{D(t,e)}}}d=E(f.value,n)}),v(()=>{d?.destroy(),d=null}),k(()=>{let n=y();return[...b.map(t=>n[t])]},(n,t)=>{if(!d)return;let i={};n.forEach((e,o)=>{if(Object.is(e,t[o]))return;let x=b[o];i[x]=e}),Object.keys(i).length>0&&d.updateOptions(i)}),s({getApi:()=>d,getResolvedConfig:()=>c?.options??y(),explainOption:n=>(c??g(u.value,a.preset,{})).explain(n)}),()=>N("div",{...p,ref:f,class:["mach-vue-host",a.className,p.class]})}}),Y=V;export{Y as a};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk7LXDVLDDcjs = require('./chunk-7LXDVLDD.cjs');var _chunkXECIDGIZcjs = require('./chunk-XECIDGIZ.cjs');var _vue = require('vue');var _machtable = require('@agile-team/mach-table');var _adapter = require('@agile-team/mach-table/adapter');var A=_adapter.GRID_OPTION_KEYS.filter(r=>!["className","ariaLabel","ariaLabelledBy","ariaDescribedBy"].includes(r)),l={};for(let r of A){let s=_adapter.GRID_OPTION_META[r].kind,p=s==="boolean"?Boolean:s==="number"?Number:s==="array"?Array:s==="function"?Function:s==="boolean-object"?[Boolean,Object]:s==="object"?Object:s==="string"?String:void 0;l[r]={type:p,default:void 0}}l.className={type:String,default:void 0};l.gridClassName={type:String,default:void 0};l.gridAriaLabel={type:String,default:void 0};l.gridAriaLabelledBy={type:String,default:void 0};l.gridAriaDescribedBy={type:String,default:void 0};l.preset={type:[String,Array,Boolean],default:void 0};function P(r){return"on"+r.charAt(0).toUpperCase()+r.slice(1)}var V=_vue.defineComponent.call(void 0, {name:"MachTable",inheritAttrs:!1,props:l,emits:[..._machtable.EVENT_TYPES],setup(r,{expose:s,attrs:p,emit:D,slots:M}){let a=r,f=_vue.ref.call(void 0, null),d=null,u=_chunk7LXDVLDDcjs.e.call(void 0, ),G=_chunkXECIDGIZcjs.i.call(void 0, M,_optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _ => _.appContext])),c=null,m=new Set,y=()=>{let n={};for(let e of A){let o=a[e];o!==void 0&&(n[e]=o)}a.gridClassName!==void 0&&(n.className=a.gridClassName),a.gridAriaLabel!==void 0&&(n.ariaLabel=a.gridAriaLabel),a.gridAriaLabelledBy!==void 0&&(n.ariaLabelledBy=a.gridAriaLabelledBy),a.gridAriaDescribedBy!==void 0&&(n.ariaDescribedBy=a.gridAriaDescribedBy);let t=_chunk7LXDVLDDcjs.a.call(void 0, u.value,a.preset,n,e=>{let o=`${e.code}:${_nullishCoalesce(e.preset, () => (""))}`;m.has(o)||(m.add(o),u.value.onConfigWarning?u.value.onConfigWarning(e):console.warn(e.message))}),i=G(t.options);return c={options:i,explain:e=>e==="columnDefs"&&i.columnDefs!==t.options.columnDefs?{key:e,value:i.columnDefs,source:"Vue slots",layers:[...t.explain(e).layers,{name:"Vue slots",value:i.columnDefs}]}:t.explain(e)},c.options};return _vue.onMounted.call(void 0, ()=>{if(!f.value)return;let n={...y()};for(let t of _machtable.EVENT_TYPES){let i=P(t);n[i]=e=>{let o=_optionalChain([c, 'optionalAccess', _2 => _2.options, 'optionalAccess', _3 => _3[i]]);try{typeof o=="function"&&o(e)}finally{D(t,e)}}}d=_machtable.createGrid.call(void 0, f.value,n)}),_vue.onBeforeUnmount.call(void 0, ()=>{_optionalChain([d, 'optionalAccess', _4 => _4.destroy, 'call', _5 => _5()]),d=null}),_vue.watch.call(void 0, ()=>{let n=y();return[..._adapter.GRID_OPTION_KEYS.map(t=>n[t])]},(n,t)=>{if(!d)return;let i={};n.forEach((e,o)=>{if(Object.is(e,t[o]))return;let x=_adapter.GRID_OPTION_KEYS[o];i[x]=e}),Object.keys(i).length>0&&d.updateOptions(i)}),s({getApi:()=>d,getResolvedConfig:()=>_nullishCoalesce(_optionalChain([c, 'optionalAccess', _6 => _6.options]), () => (y())),explainOption:n=>(_nullishCoalesce(c, () => (_chunk7LXDVLDDcjs.a.call(void 0, u.value,a.preset,{})))).explain(n)}),()=>_vue.h.call(void 0, "div",{...p,ref:f,class:["mach-vue-host",a.className,p.class]})}}),Y= exports.a =V;exports.a = Y;
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 _chunk67FAUPVEcjs = require('./chunk-67FAUPVE.cjs');var _chunkTRZLFCVKcjs = require('./chunk-TRZLFCVK.cjs');var _vue = require('vue');var _machtable = require('@agile-team/mach-table');var _adapter = require('@agile-team/mach-table/adapter');var A=_adapter.GRID_OPTION_KEYS.filter(r=>!["className","ariaLabel","ariaLabelledBy","ariaDescribedBy"].includes(r)),l={};for(let r of A){let s=_adapter.GRID_OPTION_META[r].kind,p=s==="boolean"?Boolean:s==="number"?Number:s==="array"?Array:s==="function"?Function:s==="boolean-object"?[Boolean,Object]:s==="object"?Object:s==="string"?String:void 0;l[r]={type:p,default:void 0}}l.className={type:String,default:void 0};l.gridClassName={type:String,default:void 0};l.gridAriaLabel={type:String,default:void 0};l.gridAriaLabelledBy={type:String,default:void 0};l.gridAriaDescribedBy={type:String,default:void 0};l.preset={type:[String,Array,Boolean],default:void 0};function P(r){return"on"+r.charAt(0).toUpperCase()+r.slice(1)}var V=_vue.defineComponent.call(void 0, {name:"MachTable",inheritAttrs:!1,props:l,emits:[..._machtable.EVENT_TYPES],setup(r,{expose:s,attrs:p,emit:D,slots:M}){let a=r,f=_vue.ref.call(void 0, null),d=null,u=_chunk67FAUPVEcjs.f.call(void 0, ),G=_chunkTRZLFCVKcjs.i.call(void 0, M,_optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _ => _.appContext])),c=null,m=new Set,y=()=>{let n={};for(let e of A){let o=a[e];o!==void 0&&(n[e]=o)}a.gridClassName!==void 0&&(n.className=a.gridClassName),a.gridAriaLabel!==void 0&&(n.ariaLabel=a.gridAriaLabel),a.gridAriaLabelledBy!==void 0&&(n.ariaLabelledBy=a.gridAriaLabelledBy),a.gridAriaDescribedBy!==void 0&&(n.ariaDescribedBy=a.gridAriaDescribedBy);let t=_chunk67FAUPVEcjs.b.call(void 0, u.value,a.preset,n,e=>{let o=`${e.code}:${_nullishCoalesce(e.preset, () => (""))}`;m.has(o)||(m.add(o),u.value.onConfigWarning?u.value.onConfigWarning(e):console.warn(e.message))}),i=G(t.options);return c={options:i,explain:e=>e==="columnDefs"&&i.columnDefs!==t.options.columnDefs?{key:e,value:i.columnDefs,source:"Vue slots",layers:[...t.explain(e).layers,{name:"Vue slots",value:i.columnDefs}]}:t.explain(e)},c.options};return _vue.onMounted.call(void 0, ()=>{if(!f.value)return;let n={...y()};for(let t of _machtable.EVENT_TYPES){let i=P(t);n[i]=e=>{let o=_optionalChain([c, 'optionalAccess', _2 => _2.options, 'optionalAccess', _3 => _3[i]]);try{typeof o=="function"&&o(e)}finally{D(t,e)}}}d=_machtable.createGrid.call(void 0, f.value,n)}),_vue.onBeforeUnmount.call(void 0, ()=>{_optionalChain([d, 'optionalAccess', _4 => _4.destroy, 'call', _5 => _5()]),d=null}),_vue.watch.call(void 0, ()=>{let n=y();return[..._adapter.GRID_OPTION_KEYS.map(t=>n[t])]},(n,t)=>{if(!d)return;let i={};n.forEach((e,o)=>{if(Object.is(e,t[o]))return;let x=_adapter.GRID_OPTION_KEYS[o];i[x]=e}),Object.keys(i).length>0&&d.updateOptions(i)}),s({getApi:()=>d,getResolvedConfig:()=>_nullishCoalesce(_optionalChain([c, 'optionalAccess', _6 => _6.options]), () => (y())),explainOption:n=>(_nullishCoalesce(c, () => (_chunk67FAUPVEcjs.b.call(void 0, u.value,a.preset,{})))).explain(n)}),()=>_vue.h.call(void 0, "div",{...p,ref:f,class:["mach-vue-host",a.className,p.class]})}}),Y= exports.a =V;exports.a = Y;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _machtable = require('@agile-team/mach-table');var _adapter = require('@agile-team/mach-table/adapter');function M(e){return e}var _vue = require('vue');var o=Symbol("mach-table-config"),c=_adapter.normalizeMachTableConfig.call(void 0, );function h(e){return typeof e=="function"?e():_vue.isRef.call(void 0, e)?e.value:e}function s(e){return _vue.shallowRef.call(void 0, _adapter.normalizeMachTableConfig.call(void 0, e))}function y(e){let f=_vue.inject.call(void 0, o,_vue.shallowRef.call(void 0, c)),t=_vue.computed.call(void 0, ()=>_adapter.mergeMachTableConfig.call(void 0, f.value,h(e)));return _vue.provide.call(void 0, o,t),t}function v(){return _vue.inject.call(void 0, o,_vue.shallowRef.call(void 0, c))}exports.a = M; exports.b = _adapter.resolveMachTableGridOptions; exports.c = o; exports.d = s; exports.e = y; exports.f = v;
@@ -1 +1 @@
1
- import{b as t,c as n}from"./chunk-7MRR4IDI.js";function r(e,a,i={}){let c=n(i);e.provide(t,c);let o=e.component("MachTable");if(o&&o!==a)throw new Error('[MachTable] Cannot register global component "MachTable" because that name is already in use.');o||e.component("MachTable",a)}export{r as a};
1
+ import{c as t,d as n}from"./chunk-J3F33EIC.js";function r(e,a,i={}){let c=n(i);e.provide(t,c);let o=e.component("MachTable");if(o&&o!==a)throw new Error('[MachTable] Cannot register global component "MachTable" because that name is already in use.');o||e.component("MachTable",a)}export{r as a};
@@ -0,0 +1 @@
1
+ import{h as C,render as c,renderSlot as b,getCurrentInstance as w,shallowReactive as T}from"vue";function s(t){if(t)return t;try{return w()?.appContext}catch{return}}function f(t){Object.assign(t.style,{width:"100%",minWidth:"0",display:"flex",alignItems:"center",justifyContent:"inherit"})}function S(t,e,n,r){let o=C({setup:()=>()=>C(t,{...e})});return r&&(o.appContext=r),c(o,n),()=>c(null,n)}function i(t,e,n,r,a=!0){let u=C({name:"MachTableSlot",setup:()=>()=>b({default:t},"default",e())});r&&(u.appContext=r);let l=!1,d=()=>{l||c(u,n)};return a?queueMicrotask(d):d(),()=>{l=!0,c(null,n)}}function H(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.className="mach-cell-vue",f(a);let o=T({...r}),u=S(t,o,a,n),l=!1;return{el:a,refresh:d=>(Object.assign(o,d),!0),destroy:()=>{l||(l=!0,window.setTimeout(u,0))}}}}function V(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.className="mach-cell-vue mach-cell-vue--render",f(a);let o=T({...r}),l=C({name:"MachTableRenderCell",setup:()=>()=>o.data==null?o.formatted:t(o.data,o.rowIndex,o)});n&&(l.appContext=n),c(l,a);let d=!1;return{el:a,refresh:m=>(Object.assign(o,m),!0),destroy:()=>{d||(d=!0,window.setTimeout(()=>c(null,a),0))}}}}function G(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.style.height="100%";let o=S(t,r,a,n),u=!1;return{el:a,destroy:()=>{u||(u=!0,o())}}}}function y(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.className="mach-cell-vue mach-cell-vue--slot",f(a);let o=T({...r}),u=i(t,()=>o,a,n);return{el:a,refresh:l=>(Object.assign(o,l),!0),destroy:u}}}function g(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.className="mach-header-vue-slot";let o=i(t,()=>r,a,n);return{el:a,destroy:o}}}function E(t,e){let n=s(e?.appContext);return r=>{let a=T({value:r.value}),o=document.createElement("div");o.className="mach-cell-vue mach-cell-vue--editor";let l=i(t,()=>({...r,value:a.value,setValue:d=>{a.value=d},commit:()=>{r.api.editing.stop()},cancel:()=>{r.api.editing.stop({cancel:!0})}}),o,n,!1);return{el:o,getValue:()=>a.value,focus:()=>{o.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])")?.focus()},destroy:l}}}function D(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.className="mach-detail-vue-slot",a.style.height="100%";let o=i(t,()=>r,a,n);return{el:a,destroy:o}}}function p(t,e){let n=s(e?.appContext);return()=>{let r=document.createElement("div");r.className="mach-overlay-vue-slot";let a=i(t,()=>({}),r,n);return{el:r,destroy:a}}}function R(t,e,n){return t[`${e}-${n}`]??t[`${e}-${n.replace(/[.\s]+/g,"-")}`]}function v(t,e,n){return t.map((r,a)=>{if(Array.isArray(r.children)){let P=r;return{...P,children:v(P.children,e,n)}}let o=r,u=o.colId??o.field??`col_${a}`,l=R(e,"cell",u)??(u==="op"?e.actions:void 0),d=e.cell,m=R(e,"header",u)??e.header,x=R(e,"editor",u)??e.editor,{render:h,...A}=o;return{...A,...l?{cellRenderer:y(l,{appContext:n})}:h?{cellRenderer:V(h,{appContext:n})}:d?{cellRenderer:y(d,{appContext:n})}:{},...m?{headerComponent:g(m,{appContext:n})}:{},...x?{cellEditor:E(x,{appContext:n})}:{}}})}function $(t,e,n){let r=t.columnDefs?v(t.columnDefs,e,n):t.columnDefs;return{...t,columnDefs:r,...e.detail&&!t.detailRowRenderer?{detailRowRenderer:D(e.detail,{appContext:n})}:{},...e.loading?{overlayLoadingTemplate:p(e.loading,{appContext:n})}:{},...e.empty?{overlayNoRowsTemplate:p(e.empty,{appContext:n})}:{}}}function I(t,e){let n,r,a=t.detail?D(t.detail,{appContext:e}):void 0,o=t.loading?p(t.loading,{appContext:e}):void 0,u=t.empty?p(t.empty,{appContext:e}):void 0;return l=>(l.columnDefs!==n&&(n=l.columnDefs,r=l.columnDefs?v(l.columnDefs,t,e):l.columnDefs),{...l,columnDefs:r,...a&&!l.detailRowRenderer?{detailRowRenderer:a}:{},...o?{overlayLoadingTemplate:o}:{},...u?{overlayNoRowsTemplate:u}:{}})}export{H as a,G as b,y as c,g as d,E as e,D as f,p as g,$ as h,I as i};
@@ -0,0 +1 @@
1
+ import{defineMachTableConfig as C}from"@agile-team/mach-table";import{mergeMachTableConfig as i,normalizeMachTableConfig as a,resolveMachTableGridOptions as R}from"@agile-team/mach-table/adapter";function M(e){return e}import{computed as r,inject as l,isRef as b,provide as T,shallowRef as n}from"vue";var o=Symbol("mach-table-config"),c=a();function h(e){return typeof e=="function"?e():b(e)?e.value:e}function s(e){return n(a(e))}function y(e){let f=l(o,n(c)),t=r(()=>i(f.value,h(e)));return T(o,t),t}function v(){return l(o,n(c))}export{M as a,R as b,o as c,s as d,y as e,v as f};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7LXDVLDDcjs = require('./chunk-7LXDVLDD.cjs');function r(e,a,i={}){let c=_chunk7LXDVLDDcjs.c.call(void 0, i);e.provide(_chunk7LXDVLDDcjs.b,c);let o=e.component("MachTable");if(o&&o!==a)throw new Error('[MachTable] Cannot register global component "MachTable" because that name is already in use.');o||e.component("MachTable",a)}exports.a = r;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk67FAUPVEcjs = require('./chunk-67FAUPVE.cjs');function r(e,a,i={}){let c=_chunk67FAUPVEcjs.d.call(void 0, i);e.provide(_chunk67FAUPVEcjs.c,c);let o=e.component("MachTable");if(o&&o!==a)throw new Error('[MachTable] Cannot register global component "MachTable" because that name is already in use.');o||e.component("MachTable",a)}exports.a = r;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _vue = require('vue');function s(t){if(t)return t;try{return _optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _ => _.appContext])}catch (e2){return}}function f(t){Object.assign(t.style,{width:"100%",minWidth:"0",display:"flex",alignItems:"center",justifyContent:"inherit"})}function S(t,e,n,r){let o=_vue.h.call(void 0, {setup:()=>()=>_vue.h.call(void 0, t,{...e})});return r&&(o.appContext=r),_vue.render.call(void 0, o,n),()=>_vue.render.call(void 0, null,n)}function i(t,e,n,r,a=!0){let u=_vue.h.call(void 0, {name:"MachTableSlot",setup:()=>()=>_vue.renderSlot.call(void 0, {default:t},"default",e())});r&&(u.appContext=r);let l=!1,d=()=>{l||_vue.render.call(void 0, u,n)};return a?queueMicrotask(d):d(),()=>{l=!0,_vue.render.call(void 0, null,n)}}function H(t,e){let n=s(_optionalChain([e, 'optionalAccess', _2 => _2.appContext]));return r=>{let a=document.createElement("div");a.className="mach-cell-vue",f(a);let o=_vue.shallowReactive.call(void 0, {...r}),u=S(t,o,a,n),l=!1;return{el:a,refresh:d=>(Object.assign(o,d),!0),destroy:()=>{l||(l=!0,window.setTimeout(u,0))}}}}function V(t,e){let n=s(_optionalChain([e, 'optionalAccess', _3 => _3.appContext]));return r=>{let a=document.createElement("div");a.className="mach-cell-vue mach-cell-vue--render",f(a);let o=_vue.shallowReactive.call(void 0, {...r}),l=_vue.h.call(void 0, {name:"MachTableRenderCell",setup:()=>()=>o.data==null?o.formatted:t(o.data,o.rowIndex,o)});n&&(l.appContext=n),_vue.render.call(void 0, l,a);let d=!1;return{el:a,refresh:m=>(Object.assign(o,m),!0),destroy:()=>{d||(d=!0,window.setTimeout(()=>_vue.render.call(void 0, null,a),0))}}}}function G(t,e){let n=s(_optionalChain([e, 'optionalAccess', _4 => _4.appContext]));return r=>{let a=document.createElement("div");a.style.height="100%";let o=S(t,r,a,n),u=!1;return{el:a,destroy:()=>{u||(u=!0,o())}}}}function y(t,e){let n=s(_optionalChain([e, 'optionalAccess', _5 => _5.appContext]));return r=>{let a=document.createElement("div");a.className="mach-cell-vue mach-cell-vue--slot",f(a);let o=_vue.shallowReactive.call(void 0, {...r}),u=i(t,()=>o,a,n);return{el:a,refresh:l=>(Object.assign(o,l),!0),destroy:u}}}function g(t,e){let n=s(_optionalChain([e, 'optionalAccess', _6 => _6.appContext]));return r=>{let a=document.createElement("div");a.className="mach-header-vue-slot";let o=i(t,()=>r,a,n);return{el:a,destroy:o}}}function E(t,e){let n=s(_optionalChain([e, 'optionalAccess', _7 => _7.appContext]));return r=>{let a=_vue.shallowReactive.call(void 0, {value:r.value}),o=document.createElement("div");o.className="mach-cell-vue mach-cell-vue--editor";let l=i(t,()=>({...r,value:a.value,setValue:d=>{a.value=d},commit:()=>{r.api.editing.stop()},cancel:()=>{r.api.editing.stop({cancel:!0})}}),o,n,!1);return{el:o,getValue:()=>a.value,focus:()=>{_optionalChain([o, '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 D(t,e){let n=s(_optionalChain([e, 'optionalAccess', _12 => _12.appContext]));return r=>{let a=document.createElement("div");a.className="mach-detail-vue-slot",a.style.height="100%";let o=i(t,()=>r,a,n);return{el:a,destroy:o}}}function p(t,e){let n=s(_optionalChain([e, 'optionalAccess', _13 => _13.appContext]));return()=>{let r=document.createElement("div");r.className="mach-overlay-vue-slot";let a=i(t,()=>({}),r,n);return{el:r,destroy:a}}}function R(t,e,n){return _nullishCoalesce(t[`${e}-${n}`], () => (t[`${e}-${n.replace(/[.\s]+/g,"-")}`]))}function v(t,e,n){return t.map((r,a)=>{if(Array.isArray(r.children)){let P=r;return{...P,children:v(P.children,e,n)}}let o=r,u=_nullishCoalesce(_nullishCoalesce(o.colId, () => (o.field)), () => (`col_${a}`)),l=_nullishCoalesce(R(e,"cell",u), () => ((u==="op"?e.actions:void 0))),d=e.cell,m=_nullishCoalesce(R(e,"header",u), () => (e.header)),x=_nullishCoalesce(R(e,"editor",u), () => (e.editor)),{render:h,...A}=o;return{...A,...l?{cellRenderer:y(l,{appContext:n})}:h?{cellRenderer:V(h,{appContext:n})}:d?{cellRenderer:y(d,{appContext:n})}:{},...m?{headerComponent:g(m,{appContext:n})}:{},...x?{cellEditor:E(x,{appContext:n})}:{}}})}function $(t,e,n){let r=t.columnDefs?v(t.columnDefs,e,n):t.columnDefs;return{...t,columnDefs:r,...e.detail&&!t.detailRowRenderer?{detailRowRenderer:D(e.detail,{appContext:n})}:{},...e.loading?{overlayLoadingTemplate:p(e.loading,{appContext:n})}:{},...e.empty?{overlayNoRowsTemplate:p(e.empty,{appContext:n})}:{}}}function I(t,e){let n,r,a=t.detail?D(t.detail,{appContext:e}):void 0,o=t.loading?p(t.loading,{appContext:e}):void 0,u=t.empty?p(t.empty,{appContext:e}):void 0;return l=>(l.columnDefs!==n&&(n=l.columnDefs,r=l.columnDefs?v(l.columnDefs,t,e):l.columnDefs),{...l,columnDefs:r,...a&&!l.detailRowRenderer?{detailRowRenderer:a}:{},...o?{overlayLoadingTemplate:o}:{},...u?{overlayNoRowsTemplate:u}:{}})}exports.a = H; exports.b = G; exports.c = y; exports.d = g; exports.e = E; exports.f = D; exports.g = p; exports.h = $; exports.i = I;
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _chunkYQIRPQHTcjs = require('./chunk-YQIRPQHT.cjs');var _chunkEGEQGM3Dcjs = require('./chunk-EGEQGM3D.cjs');var _chunkJ3SALTBKcjs = require('./chunk-J3SALTBK.cjs');var _chunk7LXDVLDDcjs = require('./chunk-7LXDVLDD.cjs');require('./chunk-XECIDGIZ.cjs');var o={install(r,p){_chunkYQIRPQHTcjs.a.call(void 0, r,_chunkJ3SALTBKcjs.a,p)}};var _machtable = require('@agile-team/mach-table'); _createStarExport(_machtable);var m=o;exports.MACH_TABLE_CONFIG_KEY = _chunk7LXDVLDDcjs.b; exports.MachTable = _chunkJ3SALTBKcjs.a; exports.MachTablePlugin = o; exports.default = m; exports.provideMachTableConfig = _chunk7LXDVLDDcjs.d; exports.useMachTable = _chunkEGEQGM3Dcjs.a; exports.useMachTableConfig = _chunk7LXDVLDDcjs.e;
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 _chunkKMXOU5Z3cjs = require('./chunk-KMXOU5Z3.cjs');var _chunkEGEQGM3Dcjs = require('./chunk-EGEQGM3D.cjs');var _chunk5JCLLHKUcjs = require('./chunk-5JCLLHKU.cjs');var _chunk67FAUPVEcjs = require('./chunk-67FAUPVE.cjs');require('./chunk-TRZLFCVK.cjs');var o={install(e,r){_chunkKMXOU5Z3cjs.a.call(void 0, e,_chunk5JCLLHKUcjs.a,r)}};function f(e){return e}var _machtable = require('@agile-team/mach-table'); _createStarExport(_machtable);var b=o;exports.MACH_TABLE_CONFIG_KEY = _chunk67FAUPVEcjs.c; exports.MachTable = _chunk5JCLLHKUcjs.a; exports.MachTablePlugin = o; exports.default = b; exports.defineVueColumns = f; exports.defineVueTableConfig = _chunk67FAUPVEcjs.a; exports.provideMachTableConfig = _chunk67FAUPVEcjs.e; exports.useMachTable = _chunkEGEQGM3Dcjs.a; exports.useMachTableConfig = _chunk67FAUPVEcjs.f;
package/dist/index.d.cts CHANGED
@@ -1,11 +1,29 @@
1
- export { a as MachTable, M as MachTableVueComponent, b as MachTableVueExposed, c as MachTableVueProps } from './MachTable-jS92BIXm.cjs';
2
- import { App, InjectionKey, Ref } from 'vue';
1
+ import { c as MachTableVueProps } from './MachTable-jS92BIXm.cjs';
2
+ export { a as MachTable, M as MachTableVueComponent, b as MachTableVueExposed } from './MachTable-jS92BIXm.cjs';
3
+ import { VNodeChild, App, InjectionKey, Ref } from 'vue';
3
4
  import { M as MachTablePluginOptions } from './globalRegistration-CRo5XbUX.cjs';
4
- export { U as UseMachTableReturn, u as useMachTable } from './useMachTable-YH4Xj6dS.cjs';
5
- import { MachTableRuntimeConfig } from '@agile-team/mach-table';
5
+ import { CellRendererParams, ColDef, ColDefGroup, MachTableRuntimeConfig } from '@agile-team/mach-table';
6
6
  export * from '@agile-team/mach-table';
7
+ export { U as UseMachTableReturn, u as useMachTable } from './useMachTable-YH4Xj6dS.cjs';
7
8
  import { ResolvedMachTableConfig } from '@agile-team/mach-table/adapter';
8
9
 
10
+ /** Vue-first cell rendering with the same compact row-first shape as UI table libraries. */
11
+ type VueCellRender<TData = any, TValue = any> = (row: TData, index: number, params: CellRendererParams<TData, TValue>) => VNodeChild;
12
+ /** Core column definition plus an optional Vue VNode renderer. */
13
+ interface VueColDef<TData = any, TValue = any> extends ColDef<TData, TValue> {
14
+ /** Preferred for concise, data-driven Vue cells; named slots remain available as an override. */
15
+ render?: VueCellRender<TData, TValue>;
16
+ }
17
+ interface VueColDefGroup<TData = any> extends Omit<ColDefGroup<TData>, "children"> {
18
+ children: VueColumnDefinition<TData>[];
19
+ }
20
+ type VueColumnDefinition<TData = any> = VueColDef<TData> | VueColDefGroup<TData>;
21
+ /** Compile-time helper that preserves typed row-first Vue render functions. */
22
+ declare function defineVueColumns<TData>(columns: VueColumnDefinition<TData>[]): VueColumnDefinition<TData>[];
23
+
24
+ /** Defines stable per-table Vue props without exposing type assertions to pages. */
25
+ declare function defineVueTableConfig<TData = object>(config: MachTableVueProps<TData>): MachTableVueProps<TData>;
26
+
9
27
  declare const MachTablePlugin: {
10
28
  install(app: App, options?: MachTablePluginOptions): void;
11
29
  };
@@ -16,4 +34,4 @@ type MachTableConfigSource = MachTableRuntimeConfig | Readonly<Ref<MachTableRunt
16
34
  declare function provideMachTableConfig(source: MachTableConfigSource): Readonly<Ref<ResolvedMachTableConfig>>;
17
35
  declare function useMachTableConfig(): Readonly<Ref<ResolvedMachTableConfig>>;
18
36
 
19
- export { MACH_TABLE_CONFIG_KEY, type MachTableConfigSource, MachTablePlugin, MachTablePluginOptions, MachTablePlugin as default, provideMachTableConfig, useMachTableConfig };
37
+ export { MACH_TABLE_CONFIG_KEY, type MachTableConfigSource, MachTablePlugin, MachTablePluginOptions, MachTableVueProps, type VueCellRender, type VueColDef, type VueColDefGroup, type VueColumnDefinition, MachTablePlugin as default, defineVueColumns, defineVueTableConfig, provideMachTableConfig, useMachTableConfig };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,29 @@
1
- export { a as MachTable, M as MachTableVueComponent, b as MachTableVueExposed, c as MachTableVueProps } from './MachTable-jS92BIXm.js';
2
- import { App, InjectionKey, Ref } from 'vue';
1
+ import { c as MachTableVueProps } from './MachTable-jS92BIXm.js';
2
+ export { a as MachTable, M as MachTableVueComponent, b as MachTableVueExposed } from './MachTable-jS92BIXm.js';
3
+ import { VNodeChild, App, InjectionKey, Ref } from 'vue';
3
4
  import { M as MachTablePluginOptions } from './globalRegistration-Bsdv9yBs.js';
4
- export { U as UseMachTableReturn, u as useMachTable } from './useMachTable-DXGZxgIJ.js';
5
- import { MachTableRuntimeConfig } from '@agile-team/mach-table';
5
+ import { CellRendererParams, ColDef, ColDefGroup, MachTableRuntimeConfig } from '@agile-team/mach-table';
6
6
  export * from '@agile-team/mach-table';
7
+ export { U as UseMachTableReturn, u as useMachTable } from './useMachTable-DXGZxgIJ.js';
7
8
  import { ResolvedMachTableConfig } from '@agile-team/mach-table/adapter';
8
9
 
10
+ /** Vue-first cell rendering with the same compact row-first shape as UI table libraries. */
11
+ type VueCellRender<TData = any, TValue = any> = (row: TData, index: number, params: CellRendererParams<TData, TValue>) => VNodeChild;
12
+ /** Core column definition plus an optional Vue VNode renderer. */
13
+ interface VueColDef<TData = any, TValue = any> extends ColDef<TData, TValue> {
14
+ /** Preferred for concise, data-driven Vue cells; named slots remain available as an override. */
15
+ render?: VueCellRender<TData, TValue>;
16
+ }
17
+ interface VueColDefGroup<TData = any> extends Omit<ColDefGroup<TData>, "children"> {
18
+ children: VueColumnDefinition<TData>[];
19
+ }
20
+ type VueColumnDefinition<TData = any> = VueColDef<TData> | VueColDefGroup<TData>;
21
+ /** Compile-time helper that preserves typed row-first Vue render functions. */
22
+ declare function defineVueColumns<TData>(columns: VueColumnDefinition<TData>[]): VueColumnDefinition<TData>[];
23
+
24
+ /** Defines stable per-table Vue props without exposing type assertions to pages. */
25
+ declare function defineVueTableConfig<TData = object>(config: MachTableVueProps<TData>): MachTableVueProps<TData>;
26
+
9
27
  declare const MachTablePlugin: {
10
28
  install(app: App, options?: MachTablePluginOptions): void;
11
29
  };
@@ -16,4 +34,4 @@ type MachTableConfigSource = MachTableRuntimeConfig | Readonly<Ref<MachTableRunt
16
34
  declare function provideMachTableConfig(source: MachTableConfigSource): Readonly<Ref<ResolvedMachTableConfig>>;
17
35
  declare function useMachTableConfig(): Readonly<Ref<ResolvedMachTableConfig>>;
18
36
 
19
- export { MACH_TABLE_CONFIG_KEY, type MachTableConfigSource, MachTablePlugin, MachTablePluginOptions, MachTablePlugin as default, provideMachTableConfig, useMachTableConfig };
37
+ export { MACH_TABLE_CONFIG_KEY, type MachTableConfigSource, MachTablePlugin, MachTablePluginOptions, MachTableVueProps, type VueCellRender, type VueColDef, type VueColDefGroup, type VueColumnDefinition, MachTablePlugin as default, defineVueColumns, defineVueTableConfig, provideMachTableConfig, useMachTableConfig };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a}from"./chunk-Y4S6TCE5.js";import{a as b}from"./chunk-YTEW56VQ.js";import{a as e}from"./chunk-2ANGCJOO.js";import{b as t,d as l,e as i}from"./chunk-7MRR4IDI.js";import"./chunk-SQVY5G55.js";var o={install(r,p){a(r,e,p)}};export*from"@agile-team/mach-table";var m=o;export{t as MACH_TABLE_CONFIG_KEY,e as MachTable,o as MachTablePlugin,m as default,l as provideMachTableConfig,b as useMachTable,i as useMachTableConfig};
1
+ import{a as t}from"./chunk-6EIKXQ34.js";import{a as i}from"./chunk-YTEW56VQ.js";import{a}from"./chunk-3VP52LWA.js";import{a as l,c as n,e as p,f as u}from"./chunk-J3F33EIC.js";import"./chunk-7MMXRLRK.js";var o={install(e,r){t(e,a,r)}};function f(e){return e}export*from"@agile-team/mach-table";var b=o;export{n as MACH_TABLE_CONFIG_KEY,a as MachTable,o as MachTablePlugin,b as default,f as defineVueColumns,l as defineVueTableConfig,p as provideMachTableConfig,i as useMachTable,u as useMachTableConfig};