@agile-team/mach-table-vue 0.28.0 → 0.29.1
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 +33 -9
- package/dist/MachTable-GBPI4D5W.cjs +1 -0
- package/dist/MachTable-XSOG6VGB.js +1 -0
- package/dist/adapters.cjs +1 -1
- package/dist/adapters.js +1 -1
- package/dist/async.cjs +1 -1
- package/dist/async.js +1 -1
- package/dist/{chunk-2ANGCJOO.js → chunk-3VP52LWA.js} +1 -1
- package/dist/{chunk-J3SALTBK.cjs → chunk-5JCLLHKU.cjs} +1 -1
- package/dist/chunk-67FAUPVE.cjs +1 -0
- package/dist/{chunk-Y4S6TCE5.js → chunk-6EIKXQ34.js} +1 -1
- package/dist/chunk-7MMXRLRK.js +1 -0
- package/dist/chunk-J3F33EIC.js +1 -0
- package/dist/{chunk-YQIRPQHT.cjs → chunk-KMXOU5Z3.cjs} +1 -1
- package/dist/chunk-TRZLFCVK.cjs +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +23 -5
- package/dist/index.d.ts +23 -5
- package/dist/index.js +1 -1
- package/dist/mach-table.css +464 -80
- package/dist/ui.cjs +1 -1
- package/dist/ui.d.cts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +1 -1
- package/dist/workflows.cjs +1 -1
- package/dist/workflows.d.cts +15 -3
- package/dist/workflows.d.ts +15 -3
- package/dist/workflows.js +1 -1
- package/package.json +10 -11
- package/dist/MachTable-6IGIPSES.js +0 -1
- package/dist/MachTable-EL36L7JW.cjs +0 -1
- package/dist/chunk-7LXDVLDD.cjs +0 -1
- package/dist/chunk-7MRR4IDI.js +0 -1
- package/dist/chunk-SQVY5G55.js +0 -1
- package/dist/chunk-XECIDGIZ.cjs +0 -1
package/dist/ui.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _vue = require('vue');var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _vue = require('vue');var _adapter = require('@agile-team/mach-table/adapter');var M={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1},g=_vue.defineComponent.call(void 0, {name:"MachTableDensitySelect",props:{value:{type:String,required:!0},onSelectDensity:{type:Function,required:!0}},setup(e){let i=_vue.ref.call(void 0, null),c=null;return _vue.onMounted.call(void 0, ()=>{c=_adapter.createSelectControl.call(void 0, {ariaLabel:"\u8868\u683C\u5BC6\u5EA6",options:[{value:"compact",label:"\u7D27\u51D1"},{value:"normal",label:"\u6807\u51C6"},{value:"large",label:"\u5BBD\u677E"}],value:e.value,classNames:{root:"mach-toolbar__select-control",native:"mach-toolbar__select"},onChange:o=>e.onSelectDensity(o)}),_optionalChain([i, 'access', _ => _.value, 'optionalAccess', _2 => _2.appendChild, 'call', _3 => _3(c.el)])}),_vue.watch.call(void 0, ()=>e.value,o=>_optionalChain([c, 'optionalAccess', _4 => _4.setValue, 'call', _5 => _5(o)])),_vue.onBeforeUnmount.call(void 0, ()=>_optionalChain([c, 'optionalAccess', _6 => _6.destroy, 'call', _7 => _7()])),()=>_vue.h.call(void 0, "div",{ref:i,class:"mach-toolbar__select-host"})}}),u= exports.MachTableToolbar =_vue.defineComponent.call(void 0, {name:"MachTableToolbar",props:{api:{type:Object,default:null},commands:{type:Object,default:null},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1},selectedCount:{type:Number,default:0},searchPlaceholder:{type:String,default:"\u641C\u7D22\u5F53\u524D\u7ED3\u679C"},exportFilename:{type:String,default:"mach-table.csv"},features:{type:Object,default:()=>({})}},emits:["update:modelValue","refresh","clearSelection"],setup(e,{emit:i,slots:c}){let o=a=>_nullishCoalesce(e.features[a], () => (M[a])),r=(a,...n)=>{let l=e.commands?Reflect.get(e.commands,a):void 0;return typeof l=="function"&&e.commands?Reflect.apply(l,e.commands,n):void 0},d=(a,n,l,b=!1)=>_vue.h.call(void 0, "button",{type:"button",class:"mach-toolbar__button",title:a,"aria-label":a,disabled:b,onClick:l},n),m=()=>{let a=[..._nullishCoalesce(_optionalChain([c, 'access', _8 => _8.start, 'optionalCall', _9 => _9()]), () => ([]))];return o("search")&&a.push(_vue.h.call(void 0, "label",{class:"mach-toolbar__search"},[_vue.h.call(void 0, "span",{class:"mach-sr-only"},e.searchPlaceholder),_vue.h.call(void 0, "span",{"aria-hidden":"true"},"\u2315"),_vue.h.call(void 0, "input",{value:e.modelValue,type:"search",placeholder:e.searchPlaceholder,onInput:n=>{let l=n.target.value;i("update:modelValue",l),e.commands?r("search",l||null):_optionalChain([e, 'access', _10 => _10.api, 'optionalAccess', _11 => _11.filtering, 'access', _12 => _12.setQuickText, 'call', _13 => _13(l||null)])}})])),o("refresh")&&a.push(d("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{i("refresh"),e.commands?r("refresh"):_optionalChain([e, 'access', _14 => _14.api, 'optionalAccess', _15 => _15.rows, 'access', _16 => _16.isRemote, 'call', _17 => _17()])?e.api.rows.reload():_optionalChain([e, 'access', _18 => _18.api, 'optionalAccess', _19 => _19.view, 'access', _20 => _20.refreshCells, 'call', _21 => _21()])},e.loading)),o("columns")&&a.push(d("\u5217\u8BBE\u7F6E","\u2637",n=>{let l=n.currentTarget;l instanceof HTMLElement&&(e.commands?r("openColumns",l):_optionalChain([e, 'access', _22 => _22.api, 'optionalAccess', _23 => _23.columns, 'access', _24 => _24.openWorkbench, 'call', _25 => _25(l)]))})),o("density")&&a.push(_vue.h.call(void 0, g,{value:_nullishCoalesce(_optionalChain([e, 'access', _26 => _26.api, 'optionalAccess', _27 => _27.getOption, 'call', _28 => _28("size")]), () => ("normal")),onSelectDensity:n=>{e.commands?r("setDensity",n):_optionalChain([e, 'access', _29 => _29.api, 'optionalAccess', _30 => _30.updateOptions, 'call', _31 => _31({size:n})])}})),a.push(..._nullishCoalesce(_optionalChain([c, 'access', _32 => _32.default, 'optionalCall', _33 => _33()]), () => ([]))),_vue.h.call(void 0, "div",{class:"mach-toolbar__main"},a)},h=()=>{let a=[];return e.selectedCount>0&&a.push(_vue.h.call(void 0, "button",{type:"button",class:"mach-toolbar__selection",onClick:()=>i("clearSelection")},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),o("undoRedo")&&(a.push(d("\u64A4\u9500","\u21B6",()=>{e.commands?r("undo"):_optionalChain([e, 'access', _34 => _34.api, 'optionalAccess', _35 => _35.editing, 'access', _36 => _36.undo, 'call', _37 => _37()])},e.commands?!e.commands.canUndo():!_optionalChain([e, 'access', _38 => _38.api, 'optionalAccess', _39 => _39.editing, 'access', _40 => _40.canUndo, 'call', _41 => _41()]))),a.push(d("\u91CD\u505A","\u21B7",()=>{e.commands?r("redo"):_optionalChain([e, 'access', _42 => _42.api, 'optionalAccess', _43 => _43.editing, 'access', _44 => _44.redo, 'call', _45 => _45()])},e.commands?!e.commands.canRedo():!_optionalChain([e, 'access', _46 => _46.api, 'optionalAccess', _47 => _47.editing, 'access', _48 => _48.canRedo, 'call', _49 => _49()])))),o("export")&&a.push(d("\u5BFC\u51FA CSV","\u21E9",()=>{e.commands&&r("exportCsv",e.exportFilename)},!e.commands)),o("fullscreen")&&a.push(d("\u5168\u5C4F","\u26F6",()=>{r("toggleFullscreen")},!e.commands)),a.push(..._nullishCoalesce(_optionalChain([c, 'access', _50 => _50.end, 'optionalCall', _51 => _51()]), () => ([]))),_vue.h.call(void 0, "div",{class:"mach-toolbar__aside"},a)};return()=>_vue.h.call(void 0, "div",{class:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},[m(),h()])}});var C={install(e){e.component("MachTableToolbar")||e.component("MachTableToolbar",u)}};var V=C;exports.MachTableToolbar = u; exports.MachTableUiPlugin = C; exports.default = V;
|
package/dist/ui.d.cts
CHANGED
|
@@ -84,8 +84,8 @@ declare const MachTableToolbar: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
84
84
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
85
85
|
onClearSelection?: ((...args: any[]) => any) | undefined;
|
|
86
86
|
}>, {
|
|
87
|
-
loading: boolean;
|
|
88
87
|
features: MachTableToolbarFeatures;
|
|
88
|
+
loading: boolean;
|
|
89
89
|
selectedCount: number;
|
|
90
90
|
api: GridApi<any> | null;
|
|
91
91
|
commands: MachTableCommands | null;
|
package/dist/ui.d.ts
CHANGED
|
@@ -84,8 +84,8 @@ declare const MachTableToolbar: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
84
84
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
85
85
|
onClearSelection?: ((...args: any[]) => any) | undefined;
|
|
86
86
|
}>, {
|
|
87
|
-
loading: boolean;
|
|
88
87
|
features: MachTableToolbarFeatures;
|
|
88
|
+
loading: boolean;
|
|
89
89
|
selectedCount: number;
|
|
90
90
|
api: GridApi<any> | null;
|
|
91
91
|
commands: MachTableCommands | null;
|
package/dist/ui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as
|
|
1
|
+
import{defineComponent as s,h as t,onBeforeUnmount as f,onMounted as T,ref as y,watch as v}from"vue";import{createSelectControl as p}from"@agile-team/mach-table/adapter";var M={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1},g=s({name:"MachTableDensitySelect",props:{value:{type:String,required:!0},onSelectDensity:{type:Function,required:!0}},setup(e){let i=y(null),c=null;return T(()=>{c=p({ariaLabel:"\u8868\u683C\u5BC6\u5EA6",options:[{value:"compact",label:"\u7D27\u51D1"},{value:"normal",label:"\u6807\u51C6"},{value:"large",label:"\u5BBD\u677E"}],value:e.value,classNames:{root:"mach-toolbar__select-control",native:"mach-toolbar__select"},onChange:o=>e.onSelectDensity(o)}),i.value?.appendChild(c.el)}),v(()=>e.value,o=>c?.setValue(o)),f(()=>c?.destroy()),()=>t("div",{ref:i,class:"mach-toolbar__select-host"})}}),u=s({name:"MachTableToolbar",props:{api:{type:Object,default:null},commands:{type:Object,default:null},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1},selectedCount:{type:Number,default:0},searchPlaceholder:{type:String,default:"\u641C\u7D22\u5F53\u524D\u7ED3\u679C"},exportFilename:{type:String,default:"mach-table.csv"},features:{type:Object,default:()=>({})}},emits:["update:modelValue","refresh","clearSelection"],setup(e,{emit:i,slots:c}){let o=a=>e.features[a]??M[a],r=(a,...n)=>{let l=e.commands?Reflect.get(e.commands,a):void 0;return typeof l=="function"&&e.commands?Reflect.apply(l,e.commands,n):void 0},d=(a,n,l,b=!1)=>t("button",{type:"button",class:"mach-toolbar__button",title:a,"aria-label":a,disabled:b,onClick:l},n),m=()=>{let a=[...c.start?.()??[]];return o("search")&&a.push(t("label",{class:"mach-toolbar__search"},[t("span",{class:"mach-sr-only"},e.searchPlaceholder),t("span",{"aria-hidden":"true"},"\u2315"),t("input",{value:e.modelValue,type:"search",placeholder:e.searchPlaceholder,onInput:n=>{let l=n.target.value;i("update:modelValue",l),e.commands?r("search",l||null):e.api?.filtering.setQuickText(l||null)}})])),o("refresh")&&a.push(d("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{i("refresh"),e.commands?r("refresh"):e.api?.rows.isRemote()?e.api.rows.reload():e.api?.view.refreshCells()},e.loading)),o("columns")&&a.push(d("\u5217\u8BBE\u7F6E","\u2637",n=>{let l=n.currentTarget;l instanceof HTMLElement&&(e.commands?r("openColumns",l):e.api?.columns.openWorkbench(l))})),o("density")&&a.push(t(g,{value:e.api?.getOption("size")??"normal",onSelectDensity:n=>{e.commands?r("setDensity",n):e.api?.updateOptions({size:n})}})),a.push(...c.default?.()??[]),t("div",{class:"mach-toolbar__main"},a)},h=()=>{let a=[];return e.selectedCount>0&&a.push(t("button",{type:"button",class:"mach-toolbar__selection",onClick:()=>i("clearSelection")},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),o("undoRedo")&&(a.push(d("\u64A4\u9500","\u21B6",()=>{e.commands?r("undo"):e.api?.editing.undo()},e.commands?!e.commands.canUndo():!e.api?.editing.canUndo())),a.push(d("\u91CD\u505A","\u21B7",()=>{e.commands?r("redo"):e.api?.editing.redo()},e.commands?!e.commands.canRedo():!e.api?.editing.canRedo()))),o("export")&&a.push(d("\u5BFC\u51FA CSV","\u21E9",()=>{e.commands&&r("exportCsv",e.exportFilename)},!e.commands)),o("fullscreen")&&a.push(d("\u5168\u5C4F","\u26F6",()=>{r("toggleFullscreen")},!e.commands)),a.push(...c.end?.()??[]),t("div",{class:"mach-toolbar__aside"},a)};return()=>t("div",{class:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},[m(),h()])}});var C={install(e){e.component("MachTableToolbar")||e.component("MachTableToolbar",u)}};var V=C;export{u as MachTableToolbar,C as MachTableUiPlugin,V as default};
|
package/dist/workflows.cjs
CHANGED
|
@@ -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 _chunkEGEQGM3Dcjs = require('./chunk-EGEQGM3D.cjs');var _vue = require('vue');var _machtable = require('@agile-team/mach-table');function j(a,n={}){let p=_vue.shallowRef.call(void 0, []),o=_vue.ref.call(void 0, []),d=_vue.ref.call(void 0, !1),h=_vue.shallowRef.call(void 0, null),v=_vue.shallowRef.call(void 0, null),S=_vue.computed.call(void 0, ()=>o.value.length>0),D=_vue.computed.call(void 0, ()=>[..._nullishCoalesce(_optionalChain([v, 'access', _2 => _2.value, 'optionalAccess', _3 => _3.failures]), () => ([])),..._nullishCoalesce(_optionalChain([v, 'access', _4 => _4.value, 'optionalAccess', _5 => _5.conflicts]), () => ([]))]),C=_vue.computed.call(void 0, ()=>[...new Set(D.value.map(r=>r.rowId))]),w=null,m=()=>{let r=a.api.value;if(!r||r.isDestroyed()){o.value=[],p.value=[];return}o.value=r.editing.getDirtyRowIds(),p.value=r.editing.getChanges()};_vue.watch.call(void 0, a.api,r=>{_optionalChain([w, 'optionalCall', _6 => _6()]),w=null,m(),!(!r||r.isDestroyed())&&(w=r.on("dirtyStateChanged",m))},{immediate:!0});let g=async(r,s)=>{let f=a.api.value;if(!f||f.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(d.value)throw new Error("[MachTable] A save operation is already in progress.");d.value=!0,h.value=null,v.value=null;try{let c=await f.editing.save(r,s);return v.value=c,m(),_optionalChain([n, 'access', _7 => _7.onSaveSuccess, 'optionalCall', _8 => _8(c.saved)]),_optionalChain([n, 'access', _9 => _9.onSaveResult, 'optionalCall', _10 => _10(c)]),c}catch(c){throw h.value=c,_optionalChain([n, 'access', _11 => _11.onSaveError, 'optionalCall', _12 => _12(c)]),c}finally{d.value=!1}},T=async(r,s)=>(await g(r,s)).saved,l=()=>{v.value=null},x=(r,s)=>{let f=v.value,c=_optionalChain([f, 'optionalAccess', _13 => _13.conflicts, 'access', _14 => _14.find, 'call', _15 => _15(b=>b.rowId===r)]),y=a.api.value;return!f||!c||!y||!_machtable.resolveSaveConflict.call(void 0, y,c,s)?!1:(v.value={...f,failures:f.failures,conflicts:f.conflicts.filter(b=>b.rowId!==r)},m(),!0)},z=r=>{let s=_nullishCoalesce(_optionalChain([a, 'access', _16 => _16.api, 'access', _17 => _17.value, 'optionalAccess', _18 => _18.editing, 'access', _19 => _19.rollback, 'call', _20 => _20(r)]), () => (!1));return m(),s},E=r=>{_optionalChain([a, 'access', _21 => _21.api, 'access', _22 => _22.value, 'optionalAccess', _23 => _23.editing, 'access', _24 => _24.markSaved, 'call', _25 => _25(r)]),m()},M=(r,s,f=!1)=>{let c=a.api.value,y=_optionalChain([c, 'optionalAccess', _26 => _26.rows, 'access', _27 => _27.getById, 'call', _28 => _28(r)]);return!c||!y||y.rowIndex<0?!1:(c.view.scrollToRow(y.rowIndex,"middle"),s&&f?c.editing.startCell({rowIndex:y.rowIndex,colId:s}):!0)},I=r=>{if(!S.value)return;let s=_nullishCoalesce(n.beforeUnloadMessage, () => ("\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002"));return r.preventDefault(),r.returnValue=s,s};return n.guardBeforeUnload&&typeof window<"u"&&window.addEventListener("beforeunload",I),_vue.onScopeDispose.call(void 0, ()=>{_optionalChain([w, 'optionalCall', _29 => _29()]),w=null,n.guardBeforeUnload&&typeof window<"u"&&window.removeEventListener("beforeunload",I)}),{changes:p,dirtyRowIds:o,dirty:S,saving:d,saveError:h,lastSaveResult:v,saveIssues:D,failedRowIds:C,save:T,saveDetailed:g,clearSaveIssues:l,resolveConflict:x,rollback:z,markSaved:E,reveal:M,refresh:m}}function re(a){return typeof a=="function"?a():_vue.isRef.call(void 0, a)?a.value:a}function W(a,n){return typeof a=="number"&&Number.isFinite(a)&&a>0?Math.floor(a):n}function De(a){return(a instanceof DOMException||typeof a=="object"&&a!=null&&"name"in a)&&a.name==="AbortError"}function X(a){let n=_vue.shallowRef.call(void 0, []),p=_vue.ref.call(void 0, !1),o=_vue.shallowRef.call(void 0, null),d=_vue.ref.call(void 0, W(a.initialPage,1)),h=_vue.ref.call(void 0, W(a.pageSize,20)),v=_vue.ref.call(void 0, 0),S=_vue.shallowRef.call(void 0, []),D=_vue.shallowRef.call(void 0, {}),C=_vue.shallowRef.call(void 0, null),w=_vue.ref.call(void 0, []),m=_vue.shallowRef.call(void 0, []),g=new Set,T=new Set,l=new Map,x=_nullishCoalesce(a.quickFilterText, () => (_vue.ref.call(void 0, null))),z=_nullishCoalesce(a.selectionScope, () => ("preserve")),E=a.mode!=="manual",M=_vue.ref.call(void 0, !1),I=_vue.ref.call(void 0, 0),r=[...new Set((_nullishCoalesce(a.pageSizeOptions, () => ([10,20,50,100]))).map(e=>W(e,0)).filter(Boolean))];r.includes(h.value)||r.push(h.value),r.sort((e,t)=>e-t);let s=null,f=null,c=0,y=null,b=!1,q=!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,w.value=M.value?[]:[...g],B=!1;let e=M.value?[...l.keys()]:[...g];m.value=e.flatMap(t=>{let i=l.get(t);return i===void 0||T.has(t)?[]:[i]}),I.value++},L=e=>M.value?!T.has(e):g.has(e),F=()=>{if(!s||s.isDestroyed())return;let e=n.value.filter(t=>L(R(t)));q=!0;try{s.selection.setRows(e,!0)}finally{q=!1}},Z=()=>{c++,_optionalChain([f, 'optionalAccess', _30 => _30.abort, 'call', _31 => _31()]),f=null,y!=null&&clearTimeout(y),y=null,p.value=!1},_=(e,t)=>e.signal.aborted||t!==c,ne=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 }.")},oe=async(e,t,i)=>{if(_(t,i))return;ne(e);let u=[...e.rows];for(let U of u)R(U);n.value=u,v.value=Math.floor(e.total);for(let U of n.value){let H=R(U);L(H)?l.set(H,U):l.delete(H)}P(),_optionalChain([a, 'access', _32 => _32.onSuccess, 'optionalCall', _33 => _33(e)]),await _vue.nextTick.call(void 0, ),F()},ie=(e,t,i)=>{_(t,i)||De(e)||(o.value=_nullishCoalesce(e, () => (new Error)),_optionalChain([a, 'access', _34 => _34.onError, 'optionalCall', _35 => _35(o.value)]))},k=async()=>{y!=null&&clearTimeout(y),y=null,_optionalChain([f, 'optionalAccess', _36 => _36.abort, 'call', _37 => _37()]);let e=new AbortController;f=e;let t=++c;p.value=!0,o.value=null,a.keepPreviousData===!1&&(n.value=[]);try{let i=await a.request({page:d.value,pageSize:h.value,query:re(a.query),sortModel:S.value.map(u=>({...u})),filterModel:{...D.value},advancedFilterModel:_machtable.normalizeAdvancedFilterModel.call(void 0, C.value),quickFilterText:x.value,signal:e.signal});await oe(i,e,t)}catch(i){ie(i,e,t)}finally{t===c&&(p.value=!1,f===e&&(f=null))}},K=e=>{e&&(d.value=1),y!=null&&clearTimeout(y),f&&(c++,f.abort(),f=null,p.value=!1);let t=Math.max(0,_nullishCoalesce(a.debounceMs, () => (0)));if(t===0){k();return}y=setTimeout(()=>{k()},t)},se=e=>{s=e.api,_vue.nextTick.call(void 0, F)},ue=e=>{b||e.page===d.value&&e.pageSize===h.value||(d.value=e.page,h.value=e.pageSize,E&&k())},ce=e=>{b||(S.value=e.sortModel.map(t=>({...t})),E?K(!0):d.value=1)},de=e=>{if(b)return;D.value={...e.filterModel},C.value=_machtable.normalizeAdvancedFilterModel.call(void 0, e.advancedFilterModel);let t=e.api.filtering.getQuickText();if(x.value!==t){b=!0;try{x.value=t}finally{b=!1}}a.clearSelectionOnQueryChange!==!1&&A(),E?K(!0):d.value=1},fe=e=>{if(q)return;let t=new Set(n.value.map(R)),i=new Set(e.selectedRows.map(R));if(M.value){for(let u of t)i.has(u)?T.delete(u):(T.add(u),l.delete(u));for(let u of e.selectedRows)l.set(R(u),u);P();return}if(z==="page")g.clear(),l.clear();else for(let u of t)g.delete(u),l.delete(u);for(let u of e.selectedRows){let U=R(u);g.add(U),l.set(U,u)}P()},ve=_vue.computed.call(void 0, ()=>({rowData:n.value,loading:p.value,rowKey:R,manualSorting:!0,manualFiltering:!0,advancedFilterModel:C.value,quickFilterText:x.value,error:o.value,overlayErrorTemplate:o.value?()=>_nullishCoalesce(_optionalChain([a, 'access', _38 => _38.errorOverlay, 'optionalCall', _39 => _39({error:o.value,retry:k})]), () => ("Remote request failed. Please retry.")):void 0,overlayNoRowsTemplate:a.emptyOverlay,pagination:{mode:"server",page:d.value,pageSize:h.value,pageSizeOptions:r,total:v.value,showTotal:!0,showPageSizeSelector:!0},onGridReady:se,onPaginationChanged:ue,onSortChanged:ce,onFilterChanged:de,onSelectionChanged:fe})),ge=async(e={})=>{e.resetPage&&(d.value=1),await k()},ye=async()=>{b=!0;try{d.value=1,S.value=[],D.value={},C.value=null,x.value=null,A(),_optionalChain([s, 'optionalAccess', _40 => _40.sorting, 'access', _41 => _41.setModel, 'call', _42 => _42(null)]),_optionalChain([s, 'optionalAccess', _43 => _43.filtering, 'access', _44 => _44.setModel, 'call', _45 => _45(null)]),_optionalChain([s, 'optionalAccess', _46 => _46.filtering, 'access', _47 => _47.setAdvancedModel, 'call', _48 => _48(null)]),_optionalChain([s, 'optionalAccess', _49 => _49.filtering, 'access', _50 => _50.setQuickText, 'call', _51 => _51(null)]),await _vue.nextTick.call(void 0, )}finally{b=!1}await k()},A=()=>{M.value=!1,g.clear(),T.clear(),l.clear(),P(),q=!0;try{_optionalChain([s, 'optionalAccess', _52 => _52.selection, 'access', _53 => _53.clear, 'call', _54 => _54()])}finally{q=!1}},he=()=>{M.value=!0,g.clear(),T.clear(),l.clear();for(let e of n.value)l.set(R(e),e);P(),F()},pe=e=>{g.clear(),T.clear(),l.clear(),M.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):g.add(i);for(let i of n.value){let u=R(i);L(u)&&l.set(u,i)}P(),F()},Te=_vue.computed.call(void 0, ()=>(I.value,M.value?{mode:"allMatching",excludedKeys:[...T]}:{mode:"explicit",selectedKeys:[...g]}));return _vue.watch.call(void 0, ()=>re(a.query),()=>{a.clearSelectionOnQueryChange!==!1&&A(),E?K(!0):d.value=1},{deep:!0,immediate:E&&a.immediate!==!1}),_vue.watch.call(void 0, x,()=>{b||(a.clearSelectionOnQueryChange!==!1&&A(),E?K(!0):d.value=1)},{flush:"sync"}),_vue.watch.call(void 0, w,e=>{if(B)return;M.value=!1,T.clear();let t=new Set(e.map(String));g.clear();for(let i of t)g.add(i);for(let i of[...l.keys()])t.has(i)||l.delete(i);for(let i of n.value){let u=R(i);t.has(u)&&l.set(u,i)}F(),P()},{deep:!0,flush:"sync"}),_vue.onScopeDispose.call(void 0, ()=>{Z(),s=null}),{rows:n,loading:p,error:o,page:d,pageSize:h,total:v,sortModel:S,filterModel:D,advancedFilterModel:C,selectedKeys:w,selectedRows:m,selectionState:Te,bindings:ve,reload:ge,retry:k,reset:ye,abort:Z,clearSelection:A,selectAllMatching:he,applySelectionState:pe}}function Pe(a={}){let n=_chunkEGEQGM3Dcjs.a.call(void 0, ),p=_vue.ref.call(void 0, _nullishCoalesce(a.initialSearch, () => (""))),o=a.query?X({...a.query,quickFilterText:_nullishCoalesce(a.query.quickFilterText, () => (_vue.computed.call(void 0, ()=>p.value||null)))}):null,d=j(n,a.editing),h=_vue.shallowRef.call(void 0, []),v=null,S=()=>{h.value=_nullishCoalesce(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _55 => _55.selectedRows, 'access', _56 => _56.value]), () => (_optionalChain([n, 'access', _57 => _57.api, 'access', _58 => _58.value, 'optionalAccess', _59 => _59.selection, 'access', _60 => _60.getRows, 'call', _61 => _61()]))), () => ([]))};_vue.watch.call(void 0, n.api,l=>{_optionalChain([v, 'optionalCall', _62 => _62()]),v=null,l&&!l.isDestroyed()&&(v=l.on("selectionChanged",S)),S()},{immediate:!0}),o&&_vue.watch.call(void 0, o.selectedRows,S,{deep:!1});let D=async()=>{if(o)await o.reload();else{let l=n.api.value;_optionalChain([l, 'optionalAccess', _63 => _63.rows, 'access', _64 => _64.isRemote, 'call', _65 => _65()])?await l.rows.reload():_optionalChain([l, 'optionalAccess', _66 => _66.view, 'access', _67 => _67.refreshCells, 'call', _68 => _68()])}},C=_machtable.createMachTableCommands.call(void 0, {getApi:()=>n.api.value,reload:D}),w=_vue.computed.call(void 0, ()=>_nullishCoalesce(_optionalChain([o, 'optionalAccess', _69 => _69.bindings, 'access', _70 => _70.value]), () => ({}))),m=_vue.computed.call(void 0, ()=>{if(!o)return h.value.length;let l=o.selectionState.value;return l.mode==="allMatching"?Math.max(0,o.total.value-l.excludedKeys.length):l.selectedKeys.length}),g=_vue.computed.call(void 0, ()=>_optionalChain([o, 'optionalAccess', _71 => _71.loading, 'access', _72 => _72.value])===!0||d.saving.value),T=_vue.computed.call(void 0, ()=>_nullishCoalesce(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _73 => _73.error, 'access', _74 => _74.value]), () => (d.saveError.value)), () => (null)));return _vue.watch.call(void 0, p,l=>{o||C.search(l||null)}),_vue.onScopeDispose.call(void 0, ()=>{_optionalChain([v, 'optionalCall', _75 => _75()]),v=null}),{table:n,query:o,editing:d,bindings:w,search:p,selectedRows:h,selectedCount:m,busy:g,error:T,commands:C,reload:D}}exports.useMachTableController = Pe; exports.useMachTableEditing = j; exports.useMachTableQuery = X;
|
|
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 _chunkEGEQGM3Dcjs = require('./chunk-EGEQGM3D.cjs');var _vue = require('vue');var _machtable = require('@agile-team/mach-table');function $(e,r={}){let h=_vue.shallowRef.call(void 0, []),o=_vue.ref.call(void 0, []),c=_vue.ref.call(void 0, !1),y=_vue.shallowRef.call(void 0, null),v=_vue.shallowRef.call(void 0, null),M=_vue.computed.call(void 0, ()=>o.value.length>0),E=_vue.computed.call(void 0, ()=>[..._nullishCoalesce(_optionalChain([v, 'access', _2 => _2.value, 'optionalAccess', _3 => _3.failures]), () => ([])),..._nullishCoalesce(_optionalChain([v, 'access', _4 => _4.value, 'optionalAccess', _5 => _5.conflicts]), () => ([]))]),x=_vue.computed.call(void 0, ()=>[...new Set(E.value.map(n=>n.rowId))]),w=null,m=()=>{let n=e.api.value;if(!n||n.isDestroyed()){o.value=[],h.value=[];return}o.value=n.editing.getDirtyRowIds(),h.value=n.editing.getChanges()};_vue.watch.call(void 0, e.api,n=>{_optionalChain([w, 'optionalCall', _6 => _6()]),w=null,m(),!(!n||n.isDestroyed())&&(w=n.on("dirtyStateChanged",m))},{immediate:!0});let g=async(n,s)=>{let f=e.api.value;if(!f||f.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(c.value)throw new Error("[MachTable] A save operation is already in progress.");c.value=!0,y.value=null,v.value=null;try{let d=await f.editing.save(n,s);return v.value=d,m(),_optionalChain([r, 'access', _7 => _7.onSaveSuccess, 'optionalCall', _8 => _8(d.saved)]),_optionalChain([r, 'access', _9 => _9.onSaveResult, 'optionalCall', _10 => _10(d)]),d}catch(d){throw y.value=d,_optionalChain([r, 'access', _11 => _11.onSaveError, 'optionalCall', _12 => _12(d)]),d}finally{c.value=!1}},p=async(n,s)=>(await g(n,s)).saved,t=()=>{v.value=null},R=(n,s)=>{let f=v.value,d=_optionalChain([f, 'optionalAccess', _13 => _13.conflicts, 'access', _14 => _14.find, 'call', _15 => _15(S=>S.rowId===n)]),T=e.api.value;return!f||!d||!T||!_machtable.resolveSaveConflict.call(void 0, T,d,s)?!1:(v.value={...f,failures:f.failures,conflicts:f.conflicts.filter(S=>S.rowId!==n)},m(),!0)},U=n=>{let s=_nullishCoalesce(_optionalChain([e, 'access', _16 => _16.api, 'access', _17 => _17.value, 'optionalAccess', _18 => _18.editing, 'access', _19 => _19.rollback, 'call', _20 => _20(n)]), () => (!1));return m(),s},b=n=>{_optionalChain([e, 'access', _21 => _21.api, 'access', _22 => _22.value, 'optionalAccess', _23 => _23.editing, 'access', _24 => _24.markSaved, 'call', _25 => _25(n)]),m()},D=(n,s,f=!1)=>{let d=e.api.value,T=_optionalChain([d, 'optionalAccess', _26 => _26.rows, 'access', _27 => _27.getById, 'call', _28 => _28(n)]);return!d||!T||T.rowIndex<0?!1:(d.view.scrollToRow(T.rowIndex,"middle"),s&&f?d.editing.startCell({rowIndex:T.rowIndex,colId:s}):!0)},F=n=>{if(!M.value)return;let s=_nullishCoalesce(r.beforeUnloadMessage, () => ("\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002"));return n.preventDefault(),n.returnValue=s,s};return r.guardBeforeUnload&&typeof window<"u"&&window.addEventListener("beforeunload",F),_vue.onScopeDispose.call(void 0, ()=>{_optionalChain([w, 'optionalCall', _29 => _29()]),w=null,r.guardBeforeUnload&&typeof window<"u"&&window.removeEventListener("beforeunload",F)}),{changes:h,dirtyRowIds:o,dirty:M,saving:c,saveError:y,lastSaveResult:v,saveIssues:E,failedRowIds:x,save:p,saveDetailed:g,clearSaveIssues:t,resolveConflict:R,rollback:U,markSaved:b,reveal:D,refresh:m}}function re(e){return typeof e=="function"?e():_vue.isRef.call(void 0, e)?e.value:e}function X(e,r){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):r}function Ce(e){return(e instanceof DOMException||typeof e=="object"&&e!=null&&"name"in e)&&e.name==="AbortError"}function Y(e){let r=_vue.shallowRef.call(void 0, []),h=_vue.ref.call(void 0, !1),o=_vue.shallowRef.call(void 0, null),c=_vue.ref.call(void 0, X(e.initialPage,1)),y=_vue.ref.call(void 0, X(e.pageSize,20)),v=_vue.ref.call(void 0, 0),M=_vue.shallowRef.call(void 0, []),E=_vue.shallowRef.call(void 0, {}),x=_vue.shallowRef.call(void 0, null),w=_vue.ref.call(void 0, []),m=_vue.shallowRef.call(void 0, []),g=new Set,p=new Set,t=new Map,R=_nullishCoalesce(e.quickFilterText, () => (_vue.ref.call(void 0, null))),U=_nullishCoalesce(e.selectionScope, () => ("preserve")),b=e.mode!=="manual",D=_vue.ref.call(void 0, !1),F=_vue.ref.call(void 0, 0),n=[...new Set((_nullishCoalesce(e.pageSizeOptions, () => ([10,20,50,100]))).map(a=>X(a,0)).filter(Boolean))];n.includes(y.value)||n.push(y.value),n.sort((a,l)=>a-l);let s=null,f=null,d=0,T=null,S=!1,I=!1,V=!1,C=a=>{let l=typeof e.rowKey=="function"?e.rowKey(a):_machtable.getByPath.call(void 0, a,e.rowKey);if(l==null||String(l).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(e.rowKey)}" returned an empty value.`);return String(l)},k=()=>{V=!0,w.value=D.value?[]:[...g],V=!1;let a=D.value?[...t.keys()]:[...g];m.value=a.flatMap(l=>{let i=t.get(l);return i===void 0||p.has(l)?[]:[i]}),F.value++},L=a=>D.value?!p.has(a):g.has(a),G=()=>{if(!s||s.isDestroyed())return;let a=r.value.filter(l=>L(C(l)));I=!0;try{s.selection.setRows(a,!0)}finally{I=!1}},_=()=>{d++,_optionalChain([f, 'optionalAccess', _30 => _30.abort, 'call', _31 => _31()]),f=null,T!=null&&clearTimeout(T),T=null,h.value=!1},ee=(a,l)=>a.signal.aborted||l!==d,oe=a=>{if(!a||!Array.isArray(a.rows)||!Number.isFinite(a.total)||a.total<0)throw new TypeError("[MachTable] Remote request must resolve to { rows: TData[], total: non-negative number }.")},ie=async(a,l,i)=>{if(ee(l,i))return;oe(a);let u=[...a.rows];for(let O of u)C(O);r.value=u,v.value=Math.floor(a.total);for(let O of r.value){let H=C(O);L(H)?t.set(H,O):t.delete(H)}k(),_optionalChain([e, 'access', _32 => _32.onSuccess, 'optionalCall', _33 => _33(a)]),await _vue.nextTick.call(void 0, ),G()},se=(a,l,i)=>{ee(l,i)||Ce(a)||(o.value=_nullishCoalesce(a, () => (new Error)),_optionalChain([e, 'access', _34 => _34.onError, 'optionalCall', _35 => _35(o.value)]))},Q=async()=>{T!=null&&clearTimeout(T),T=null,_optionalChain([f, 'optionalAccess', _36 => _36.abort, 'call', _37 => _37()]);let a=new AbortController;f=a;let l=++d;h.value=!0,o.value=null,e.keepPreviousData===!1&&(r.value=[]);try{let i=await e.request({page:c.value,pageSize:y.value,query:re(e.query),sortModel:M.value.map(u=>({...u})),filterModel:{...E.value},advancedFilterModel:_machtable.normalizeAdvancedFilterModel.call(void 0, x.value),quickFilterText:R.value,signal:a.signal});await ie(i,a,l)}catch(i){se(i,a,l)}finally{l===d&&(h.value=!1,f===a&&(f=null))}},K=a=>{a&&(c.value=1),T!=null&&clearTimeout(T),f&&(d++,f.abort(),f=null,h.value=!1);let l=Math.max(0,_nullishCoalesce(e.debounceMs, () => (0)));if(l===0){Q();return}T=setTimeout(()=>{Q()},l)},ue=a=>{s=a.api,_vue.nextTick.call(void 0, G)},de=a=>{S||a.page===c.value&&a.pageSize===y.value||(c.value=a.page,y.value=a.pageSize,b&&Q())},ce=a=>{S||(M.value=a.sortModel.map(l=>({...l})),b?K(!0):c.value=1)},fe=a=>{if(S)return;E.value={...a.filterModel},x.value=_machtable.normalizeAdvancedFilterModel.call(void 0, a.advancedFilterModel);let l=a.api.filtering.getQuickText();if(R.value!==l){S=!0;try{R.value=l}finally{S=!1}}e.clearSelectionOnQueryChange!==!1&&A(),b?K(!0):c.value=1},ve=a=>{if(I)return;let l=new Set(r.value.map(C)),i=new Set(a.selectedRows.map(C));if(D.value){for(let u of l)i.has(u)?p.delete(u):(p.add(u),t.delete(u));for(let u of a.selectedRows)t.set(C(u),u);k();return}if(U==="page")g.clear(),t.clear();else for(let u of l)g.delete(u),t.delete(u);for(let u of a.selectedRows){let O=C(u);g.add(O),t.set(O,u)}k()},ge=_vue.computed.call(void 0, ()=>({rowData:r.value,loading:h.value,rowKey:C,manualSorting:!0,manualFiltering:!0,advancedFilterModel:x.value,quickFilterText:R.value,error:o.value,overlayErrorTemplate:o.value?()=>_nullishCoalesce(_optionalChain([e, 'access', _38 => _38.errorOverlay, 'optionalCall', _39 => _39({error:o.value,retry:Q})]), () => ("Remote request failed. Please retry.")):void 0,overlayNoRowsTemplate:e.emptyOverlay,pagination:{mode:"server",page:c.value,pageSize:y.value,pageSizeOptions:n,total:v.value,showTotal:!0,showPageSizeSelector:!0},onGridReady:ue,onPaginationChanged:de,onSortChanged:ce,onFilterChanged:fe,onSelectionChanged:ve})),Te=async(a={})=>{a.resetPage&&(c.value=1),await Q()},he=async()=>{S=!0;try{c.value=1,M.value=[],E.value={},x.value=null,R.value=null,A(),_optionalChain([s, 'optionalAccess', _40 => _40.sorting, 'access', _41 => _41.setModel, 'call', _42 => _42(null)]),_optionalChain([s, 'optionalAccess', _43 => _43.filtering, 'access', _44 => _44.setModel, 'call', _45 => _45(null)]),_optionalChain([s, 'optionalAccess', _46 => _46.filtering, 'access', _47 => _47.setAdvancedModel, 'call', _48 => _48(null)]),_optionalChain([s, 'optionalAccess', _49 => _49.filtering, 'access', _50 => _50.setQuickText, 'call', _51 => _51(null)]),await _vue.nextTick.call(void 0, )}finally{S=!1}await Q()},A=()=>{D.value=!1,g.clear(),p.clear(),t.clear(),k(),I=!0;try{_optionalChain([s, 'optionalAccess', _52 => _52.selection, 'access', _53 => _53.clear, 'call', _54 => _54()])}finally{I=!1}},ye=()=>{D.value=!0,g.clear(),p.clear(),t.clear();for(let a of r.value)t.set(C(a),a);k(),G()},pe=a=>{g.clear(),p.clear(),t.clear(),D.value=a.mode==="allMatching";let l=a.mode==="allMatching"?a.excludedKeys:a.selectedKeys;for(let i of l.map(String))a.mode==="allMatching"?p.add(i):g.add(i);for(let i of r.value){let u=C(i);L(u)&&t.set(u,i)}k(),G()},me=_vue.computed.call(void 0, ()=>(F.value,D.value?{mode:"allMatching",excludedKeys:[...p]}:{mode:"explicit",selectedKeys:[...g]}));return _vue.watch.call(void 0, ()=>re(e.query),()=>{e.clearSelectionOnQueryChange!==!1&&A(),b?K(!0):c.value=1},{deep:!0,immediate:b&&e.immediate!==!1}),_vue.watch.call(void 0, R,()=>{S||(e.clearSelectionOnQueryChange!==!1&&A(),b?K(!0):c.value=1)},{flush:"sync"}),_vue.watch.call(void 0, w,a=>{if(V)return;D.value=!1,p.clear();let l=new Set(a.map(String));g.clear();for(let i of l)g.add(i);for(let i of[...t.keys()])l.has(i)||t.delete(i);for(let i of r.value){let u=C(i);l.has(u)&&t.set(u,i)}G(),k()},{deep:!0,flush:"sync"}),_vue.onScopeDispose.call(void 0, ()=>{_(),s=null}),{rows:r,loading:h,error:o,page:c,pageSize:y,total:v,sortModel:M,filterModel:E,advancedFilterModel:x,selectedKeys:w,selectedRows:m,selectionState:me,bindings:ge,reload:Te,retry:Q,reset:he,abort:_,clearSelection:A,selectAllMatching:ye,applySelectionState:pe}}function Oe(e={}){let r=_chunkEGEQGM3Dcjs.a.call(void 0, ),h=_vue.ref.call(void 0, _nullishCoalesce(_nullishCoalesce(e.initialSearch, () => (_optionalChain([e, 'access', _55 => _55.config, 'optionalAccess', _56 => _56.quickFilterText]))), () => (""))),o=e.query?Y({...e.query,quickFilterText:_nullishCoalesce(e.query.quickFilterText, () => (_vue.computed.call(void 0, ()=>h.value||null)))}):null,c=$(r,e.editing),y=_vue.shallowRef.call(void 0, []),v=null,M=()=>{y.value=_nullishCoalesce(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _57 => _57.selectedRows, 'access', _58 => _58.value]), () => (_optionalChain([r, 'access', _59 => _59.api, 'access', _60 => _60.value, 'optionalAccess', _61 => _61.selection, 'access', _62 => _62.getRows, 'call', _63 => _63()]))), () => ([]))};_vue.watch.call(void 0, r.api,t=>{_optionalChain([v, 'optionalCall', _64 => _64()]),v=null,t&&!t.isDestroyed()&&(v=t.on("selectionChanged",M)),M()},{immediate:!0}),o&&_vue.watch.call(void 0, o.selectedRows,M,{deep:!1});let E=async()=>{if(o)await o.reload();else{let t=r.api.value;_optionalChain([t, 'optionalAccess', _65 => _65.rows, 'access', _66 => _66.isRemote, 'call', _67 => _67()])?await t.rows.reload():_optionalChain([t, 'optionalAccess', _68 => _68.view, 'access', _69 => _69.refreshCells, 'call', _70 => _70()])}},x=_machtable.createMachTableCommands.call(void 0, {getApi:()=>r.api.value,reload:E}),w=_vue.computed.call(void 0, ()=>{let t={...e.config,..._nullishCoalesce(_optionalChain([o, 'optionalAccess', _71 => _71.bindings, 'access', _72 => _72.value]), () => ({})),quickFilterText:h.value||null},R=z(e.loading),U=z(e.theme),b=z(e.editMode);return R!==void 0&&(t.loading=R),U!==void 0&&(t.theme=U),b!==void 0&&(t.editType=b==="row"?"fullRow":"cell",t.editableIndicator=b==="cell"?"hover":"none"),e.onCellValueChanged&&(t.onCellValueChanged=e.onCellValueChanged),e.onRowEditingStopped&&(t.onRowEditingStopped=e.onRowEditingStopped),e.onGridError&&(t.onGridError=e.onGridError),t}),m=_vue.computed.call(void 0, ()=>{if(!o)return y.value.length;let t=o.selectionState.value;return t.mode==="allMatching"?Math.max(0,o.total.value-t.excludedKeys.length):t.selectedKeys.length}),g=_vue.computed.call(void 0, ()=>z(e.loading)===!0||_optionalChain([o, 'optionalAccess', _73 => _73.loading, 'access', _74 => _74.value])===!0||c.saving.value),p=_vue.computed.call(void 0, ()=>_nullishCoalesce(_nullishCoalesce(_optionalChain([o, 'optionalAccess', _75 => _75.error, 'access', _76 => _76.value]), () => (c.saveError.value)), () => (null)));return _vue.watch.call(void 0, h,t=>{o||x.search(t||null)}),_vue.onScopeDispose.call(void 0, ()=>{_optionalChain([v, 'optionalCall', _77 => _77()]),v=null}),{table:r,query:o,editing:c,bindings:w,search:h,selectedRows:y,selectedCount:m,busy:g,error:p,commands:x,reload:E}}function z(e){return typeof e=="function"?e():_vue.isRef.call(void 0, e)?e.value:e}exports.useMachTableController = Oe; exports.useMachTableEditing = $; exports.useMachTableQuery = Y;
|
package/dist/workflows.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ShallowRef, Ref, ComputedRef } from 'vue';
|
|
2
2
|
import { GridChange, GridBatchSaveResult, SaveChangeIssue, SaveChangeConflict, SaveChangesHandler, SortModel, FilterModel, AdvancedFilterModel, OverlayContent, OverlayTemplate, GridOptions, MachTableCommands } from '@agile-team/mach-table';
|
|
3
3
|
import { U as UseMachTableReturn } from './useMachTable-YH4Xj6dS.cjs';
|
|
4
|
-
import './MachTable-jS92BIXm.cjs';
|
|
4
|
+
import { c as MachTableVueProps } from './MachTable-jS92BIXm.cjs';
|
|
5
5
|
import '@agile-team/mach-table/adapter';
|
|
6
6
|
|
|
7
7
|
interface UseMachTableEditingOptions<TData = any> {
|
|
@@ -114,17 +114,29 @@ interface UseMachTableQueryReturn<TData> {
|
|
|
114
114
|
*/
|
|
115
115
|
declare function useMachTableQuery<TData, TQuery = Record<string, unknown>>(options: UseMachTableQueryOptions<TData, TQuery>): UseMachTableQueryReturn<TData>;
|
|
116
116
|
|
|
117
|
+
type MachTableBindingSource<T> = T | Readonly<{
|
|
118
|
+
value: T;
|
|
119
|
+
}> | (() => T);
|
|
120
|
+
type MachTableEditMode = "none" | "cell" | "row";
|
|
117
121
|
interface UseMachTableControllerOptions<TData, TQuery = Record<string, unknown>> {
|
|
122
|
+
/** Stable table props. Dynamic state below is bridged into `bindings` automatically. */
|
|
123
|
+
config?: MachTableVueProps<TData>;
|
|
118
124
|
/** Omit for local rowData; provide for a complete remote table workflow. */
|
|
119
125
|
query?: UseMachTableQueryOptions<TData, TQuery>;
|
|
120
126
|
editing?: UseMachTableEditingOptions<TData>;
|
|
121
127
|
initialSearch?: string;
|
|
128
|
+
loading?: MachTableBindingSource<boolean>;
|
|
129
|
+
theme?: MachTableBindingSource<NonNullable<GridOptions<TData>["theme"]>>;
|
|
130
|
+
editMode?: MachTableBindingSource<MachTableEditMode>;
|
|
131
|
+
onCellValueChanged?: GridOptions<TData>["onCellValueChanged"];
|
|
132
|
+
onRowEditingStopped?: GridOptions<TData>["onRowEditingStopped"];
|
|
133
|
+
onGridError?: GridOptions<TData>["onGridError"];
|
|
122
134
|
}
|
|
123
135
|
interface UseMachTableControllerReturn<TData> {
|
|
124
136
|
table: UseMachTableReturn<TData>;
|
|
125
137
|
query: UseMachTableQueryReturn<TData> | null;
|
|
126
138
|
editing: UseMachTableEditingReturn<TData>;
|
|
127
|
-
bindings: ComputedRef<
|
|
139
|
+
bindings: ComputedRef<MachTableVueProps<TData>>;
|
|
128
140
|
search: Ref<string>;
|
|
129
141
|
selectedRows: ShallowRef<TData[]>;
|
|
130
142
|
selectedCount: ComputedRef<number>;
|
|
@@ -136,4 +148,4 @@ interface UseMachTableControllerReturn<TData> {
|
|
|
136
148
|
/** One cohesive controller for API readiness, query, selection, editing and toolbar commands. */
|
|
137
149
|
declare function useMachTableController<TData, TQuery = Record<string, unknown>>(options?: UseMachTableControllerOptions<TData, TQuery>): UseMachTableControllerReturn<TData>;
|
|
138
150
|
|
|
139
|
-
export { type MachTablePageRequest, type MachTablePageResult, type MachTableQuerySource, type MachTableRemoteSelectionState, type UseMachTableControllerOptions, type UseMachTableControllerReturn, type UseMachTableEditingOptions, type UseMachTableEditingReturn, type UseMachTableQueryOptions, type UseMachTableQueryReturn, useMachTableController, useMachTableEditing, useMachTableQuery };
|
|
151
|
+
export { type MachTableBindingSource, type MachTableEditMode, type MachTablePageRequest, type MachTablePageResult, type MachTableQuerySource, type MachTableRemoteSelectionState, type UseMachTableControllerOptions, type UseMachTableControllerReturn, type UseMachTableEditingOptions, type UseMachTableEditingReturn, type UseMachTableQueryOptions, type UseMachTableQueryReturn, useMachTableController, useMachTableEditing, useMachTableQuery };
|
package/dist/workflows.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ShallowRef, Ref, ComputedRef } from 'vue';
|
|
2
2
|
import { GridChange, GridBatchSaveResult, SaveChangeIssue, SaveChangeConflict, SaveChangesHandler, SortModel, FilterModel, AdvancedFilterModel, OverlayContent, OverlayTemplate, GridOptions, MachTableCommands } from '@agile-team/mach-table';
|
|
3
3
|
import { U as UseMachTableReturn } from './useMachTable-DXGZxgIJ.js';
|
|
4
|
-
import './MachTable-jS92BIXm.js';
|
|
4
|
+
import { c as MachTableVueProps } from './MachTable-jS92BIXm.js';
|
|
5
5
|
import '@agile-team/mach-table/adapter';
|
|
6
6
|
|
|
7
7
|
interface UseMachTableEditingOptions<TData = any> {
|
|
@@ -114,17 +114,29 @@ interface UseMachTableQueryReturn<TData> {
|
|
|
114
114
|
*/
|
|
115
115
|
declare function useMachTableQuery<TData, TQuery = Record<string, unknown>>(options: UseMachTableQueryOptions<TData, TQuery>): UseMachTableQueryReturn<TData>;
|
|
116
116
|
|
|
117
|
+
type MachTableBindingSource<T> = T | Readonly<{
|
|
118
|
+
value: T;
|
|
119
|
+
}> | (() => T);
|
|
120
|
+
type MachTableEditMode = "none" | "cell" | "row";
|
|
117
121
|
interface UseMachTableControllerOptions<TData, TQuery = Record<string, unknown>> {
|
|
122
|
+
/** Stable table props. Dynamic state below is bridged into `bindings` automatically. */
|
|
123
|
+
config?: MachTableVueProps<TData>;
|
|
118
124
|
/** Omit for local rowData; provide for a complete remote table workflow. */
|
|
119
125
|
query?: UseMachTableQueryOptions<TData, TQuery>;
|
|
120
126
|
editing?: UseMachTableEditingOptions<TData>;
|
|
121
127
|
initialSearch?: string;
|
|
128
|
+
loading?: MachTableBindingSource<boolean>;
|
|
129
|
+
theme?: MachTableBindingSource<NonNullable<GridOptions<TData>["theme"]>>;
|
|
130
|
+
editMode?: MachTableBindingSource<MachTableEditMode>;
|
|
131
|
+
onCellValueChanged?: GridOptions<TData>["onCellValueChanged"];
|
|
132
|
+
onRowEditingStopped?: GridOptions<TData>["onRowEditingStopped"];
|
|
133
|
+
onGridError?: GridOptions<TData>["onGridError"];
|
|
122
134
|
}
|
|
123
135
|
interface UseMachTableControllerReturn<TData> {
|
|
124
136
|
table: UseMachTableReturn<TData>;
|
|
125
137
|
query: UseMachTableQueryReturn<TData> | null;
|
|
126
138
|
editing: UseMachTableEditingReturn<TData>;
|
|
127
|
-
bindings: ComputedRef<
|
|
139
|
+
bindings: ComputedRef<MachTableVueProps<TData>>;
|
|
128
140
|
search: Ref<string>;
|
|
129
141
|
selectedRows: ShallowRef<TData[]>;
|
|
130
142
|
selectedCount: ComputedRef<number>;
|
|
@@ -136,4 +148,4 @@ interface UseMachTableControllerReturn<TData> {
|
|
|
136
148
|
/** One cohesive controller for API readiness, query, selection, editing and toolbar commands. */
|
|
137
149
|
declare function useMachTableController<TData, TQuery = Record<string, unknown>>(options?: UseMachTableControllerOptions<TData, TQuery>): UseMachTableControllerReturn<TData>;
|
|
138
150
|
|
|
139
|
-
export { type MachTablePageRequest, type MachTablePageResult, type MachTableQuerySource, type MachTableRemoteSelectionState, type UseMachTableControllerOptions, type UseMachTableControllerReturn, type UseMachTableEditingOptions, type UseMachTableEditingReturn, type UseMachTableQueryOptions, type UseMachTableQueryReturn, useMachTableController, useMachTableEditing, useMachTableQuery };
|
|
151
|
+
export { type MachTableBindingSource, type MachTableEditMode, type MachTablePageRequest, type MachTablePageResult, type MachTableQuerySource, type MachTableRemoteSelectionState, type UseMachTableControllerOptions, type UseMachTableControllerReturn, type UseMachTableEditingOptions, type UseMachTableEditingReturn, type UseMachTableQueryOptions, type UseMachTableQueryReturn, useMachTableController, useMachTableEditing, useMachTableQuery };
|
package/dist/workflows.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as ae}from"./chunk-YTEW56VQ.js";import{computed as N,onScopeDispose as be,ref as te,shallowRef as j,watch as Se}from"vue";import{resolveSaveConflict as Me}from"@agile-team/mach-table";function $(e,r={}){let h=j([]),o=te([]),c=te(!1),y=j(null),v=j(null),M=N(()=>o.value.length>0),E=N(()=>[...v.value?.failures??[],...v.value?.conflicts??[]]),x=N(()=>[...new Set(E.value.map(n=>n.rowId))]),w=null,m=()=>{let n=e.api.value;if(!n||n.isDestroyed()){o.value=[],h.value=[];return}o.value=n.editing.getDirtyRowIds(),h.value=n.editing.getChanges()};Se(e.api,n=>{w?.(),w=null,m(),!(!n||n.isDestroyed())&&(w=n.on("dirtyStateChanged",m))},{immediate:!0});let g=async(n,s)=>{let f=e.api.value;if(!f||f.isDestroyed())throw new Error("[MachTable] Cannot save before the grid is ready.");if(c.value)throw new Error("[MachTable] A save operation is already in progress.");c.value=!0,y.value=null,v.value=null;try{let d=await f.editing.save(n,s);return v.value=d,m(),r.onSaveSuccess?.(d.saved),r.onSaveResult?.(d),d}catch(d){throw y.value=d,r.onSaveError?.(d),d}finally{c.value=!1}},p=async(n,s)=>(await g(n,s)).saved,t=()=>{v.value=null},R=(n,s)=>{let f=v.value,d=f?.conflicts.find(S=>S.rowId===n),T=e.api.value;return!f||!d||!T||!Me(T,d,s)?!1:(v.value={...f,failures:f.failures,conflicts:f.conflicts.filter(S=>S.rowId!==n)},m(),!0)},U=n=>{let s=e.api.value?.editing.rollback(n)??!1;return m(),s},b=n=>{e.api.value?.editing.markSaved(n),m()},D=(n,s,f=!1)=>{let d=e.api.value,T=d?.rows.getById(n);return!d||!T||T.rowIndex<0?!1:(d.view.scrollToRow(T.rowIndex,"middle"),s&&f?d.editing.startCell({rowIndex:T.rowIndex,colId:s}):!0)},F=n=>{if(!M.value)return;let s=r.beforeUnloadMessage??"\u5B58\u5728\u672A\u4FDD\u5B58\u7684\u8868\u683C\u4FEE\u6539\u3002";return n.preventDefault(),n.returnValue=s,s};return r.guardBeforeUnload&&typeof window<"u"&&window.addEventListener("beforeunload",F),be(()=>{w?.(),w=null,r.guardBeforeUnload&&typeof window<"u"&&window.removeEventListener("beforeunload",F)}),{changes:h,dirtyRowIds:o,dirty:M,saving:c,saveError:y,lastSaveResult:v,saveIssues:E,failedRowIds:x,save:p,saveDetailed:g,clearSaveIssues:t,resolveConflict:R,rollback:U,markSaved:b,reveal:D,refresh:m}}import{computed as le,isRef as we,nextTick as J,onScopeDispose as Re,ref as P,shallowRef as q,watch as W}from"vue";import{getByPath as De,normalizeAdvancedFilterModel as ne}from"@agile-team/mach-table";function re(e){return typeof e=="function"?e():we(e)?e.value:e}function X(e,r){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):r}function Ce(e){return(e instanceof DOMException||typeof e=="object"&&e!=null&&"name"in e)&&e.name==="AbortError"}function Y(e){let r=q([]),h=P(!1),o=q(null),c=P(X(e.initialPage,1)),y=P(X(e.pageSize,20)),v=P(0),M=q([]),E=q({}),x=q(null),w=P([]),m=q([]),g=new Set,p=new Set,t=new Map,R=e.quickFilterText??P(null),U=e.selectionScope??"preserve",b=e.mode!=="manual",D=P(!1),F=P(0),n=[...new Set((e.pageSizeOptions??[10,20,50,100]).map(a=>X(a,0)).filter(Boolean))];n.includes(y.value)||n.push(y.value),n.sort((a,l)=>a-l);let s=null,f=null,d=0,T=null,S=!1,I=!1,V=!1,C=a=>{let l=typeof e.rowKey=="function"?e.rowKey(a):De(a,e.rowKey);if(l==null||String(l).length===0)throw new Error(`[MachTable] useMachTableQuery rowKey "${String(e.rowKey)}" returned an empty value.`);return String(l)},k=()=>{V=!0,w.value=D.value?[]:[...g],V=!1;let a=D.value?[...t.keys()]:[...g];m.value=a.flatMap(l=>{let i=t.get(l);return i===void 0||p.has(l)?[]:[i]}),F.value++},L=a=>D.value?!p.has(a):g.has(a),G=()=>{if(!s||s.isDestroyed())return;let a=r.value.filter(l=>L(C(l)));I=!0;try{s.selection.setRows(a,!0)}finally{I=!1}},_=()=>{d++,f?.abort(),f=null,T!=null&&clearTimeout(T),T=null,h.value=!1},ee=(a,l)=>a.signal.aborted||l!==d,oe=a=>{if(!a||!Array.isArray(a.rows)||!Number.isFinite(a.total)||a.total<0)throw new TypeError("[MachTable] Remote request must resolve to { rows: TData[], total: non-negative number }.")},ie=async(a,l,i)=>{if(ee(l,i))return;oe(a);let u=[...a.rows];for(let O of u)C(O);r.value=u,v.value=Math.floor(a.total);for(let O of r.value){let H=C(O);L(H)?t.set(H,O):t.delete(H)}k(),e.onSuccess?.(a),await J(),G()},se=(a,l,i)=>{ee(l,i)||Ce(a)||(o.value=a??new Error,e.onError?.(o.value))},Q=async()=>{T!=null&&clearTimeout(T),T=null,f?.abort();let a=new AbortController;f=a;let l=++d;h.value=!0,o.value=null,e.keepPreviousData===!1&&(r.value=[]);try{let i=await e.request({page:c.value,pageSize:y.value,query:re(e.query),sortModel:M.value.map(u=>({...u})),filterModel:{...E.value},advancedFilterModel:ne(x.value),quickFilterText:R.value,signal:a.signal});await ie(i,a,l)}catch(i){se(i,a,l)}finally{l===d&&(h.value=!1,f===a&&(f=null))}},K=a=>{a&&(c.value=1),T!=null&&clearTimeout(T),f&&(d++,f.abort(),f=null,h.value=!1);let l=Math.max(0,e.debounceMs??0);if(l===0){Q();return}T=setTimeout(()=>{Q()},l)},ue=a=>{s=a.api,J(G)},de=a=>{S||a.page===c.value&&a.pageSize===y.value||(c.value=a.page,y.value=a.pageSize,b&&Q())},ce=a=>{S||(M.value=a.sortModel.map(l=>({...l})),b?K(!0):c.value=1)},fe=a=>{if(S)return;E.value={...a.filterModel},x.value=ne(a.advancedFilterModel);let l=a.api.filtering.getQuickText();if(R.value!==l){S=!0;try{R.value=l}finally{S=!1}}e.clearSelectionOnQueryChange!==!1&&A(),b?K(!0):c.value=1},ve=a=>{if(I)return;let l=new Set(r.value.map(C)),i=new Set(a.selectedRows.map(C));if(D.value){for(let u of l)i.has(u)?p.delete(u):(p.add(u),t.delete(u));for(let u of a.selectedRows)t.set(C(u),u);k();return}if(U==="page")g.clear(),t.clear();else for(let u of l)g.delete(u),t.delete(u);for(let u of a.selectedRows){let O=C(u);g.add(O),t.set(O,u)}k()},ge=le(()=>({rowData:r.value,loading:h.value,rowKey:C,manualSorting:!0,manualFiltering:!0,advancedFilterModel:x.value,quickFilterText:R.value,error:o.value,overlayErrorTemplate:o.value?()=>e.errorOverlay?.({error:o.value,retry:Q})??"Remote request failed. Please retry.":void 0,overlayNoRowsTemplate:e.emptyOverlay,pagination:{mode:"server",page:c.value,pageSize:y.value,pageSizeOptions:n,total:v.value,showTotal:!0,showPageSizeSelector:!0},onGridReady:ue,onPaginationChanged:de,onSortChanged:ce,onFilterChanged:fe,onSelectionChanged:ve})),Te=async(a={})=>{a.resetPage&&(c.value=1),await Q()},he=async()=>{S=!0;try{c.value=1,M.value=[],E.value={},x.value=null,R.value=null,A(),s?.sorting.setModel(null),s?.filtering.setModel(null),s?.filtering.setAdvancedModel(null),s?.filtering.setQuickText(null),await J()}finally{S=!1}await Q()},A=()=>{D.value=!1,g.clear(),p.clear(),t.clear(),k(),I=!0;try{s?.selection.clear()}finally{I=!1}},ye=()=>{D.value=!0,g.clear(),p.clear(),t.clear();for(let a of r.value)t.set(C(a),a);k(),G()},pe=a=>{g.clear(),p.clear(),t.clear(),D.value=a.mode==="allMatching";let l=a.mode==="allMatching"?a.excludedKeys:a.selectedKeys;for(let i of l.map(String))a.mode==="allMatching"?p.add(i):g.add(i);for(let i of r.value){let u=C(i);L(u)&&t.set(u,i)}k(),G()},me=le(()=>(F.value,D.value?{mode:"allMatching",excludedKeys:[...p]}:{mode:"explicit",selectedKeys:[...g]}));return W(()=>re(e.query),()=>{e.clearSelectionOnQueryChange!==!1&&A(),b?K(!0):c.value=1},{deep:!0,immediate:b&&e.immediate!==!1}),W(R,()=>{S||(e.clearSelectionOnQueryChange!==!1&&A(),b?K(!0):c.value=1)},{flush:"sync"}),W(w,a=>{if(V)return;D.value=!1,p.clear();let l=new Set(a.map(String));g.clear();for(let i of l)g.add(i);for(let i of[...t.keys()])l.has(i)||t.delete(i);for(let i of r.value){let u=C(i);l.has(u)&&t.set(u,i)}G(),k()},{deep:!0,flush:"sync"}),Re(()=>{_(),s=null}),{rows:r,loading:h,error:o,page:c,pageSize:y,total:v,sortModel:M,filterModel:E,advancedFilterModel:x,selectedKeys:w,selectedRows:m,selectionState:me,bindings:ge,reload:Te,retry:Q,reset:he,abort:_,clearSelection:A,selectAllMatching:ye,applySelectionState:pe}}import{computed as B,isRef as Ee,onScopeDispose as xe,ref as Pe,shallowRef as ke,watch as Z}from"vue";import{createMachTableCommands as Qe}from"@agile-team/mach-table";function Oe(e={}){let r=ae(),h=Pe(e.initialSearch??e.config?.quickFilterText??""),o=e.query?Y({...e.query,quickFilterText:e.query.quickFilterText??B(()=>h.value||null)}):null,c=$(r,e.editing),y=ke([]),v=null,M=()=>{y.value=o?.selectedRows.value??r.api.value?.selection.getRows()??[]};Z(r.api,t=>{v?.(),v=null,t&&!t.isDestroyed()&&(v=t.on("selectionChanged",M)),M()},{immediate:!0}),o&&Z(o.selectedRows,M,{deep:!1});let E=async()=>{if(o)await o.reload();else{let t=r.api.value;t?.rows.isRemote()?await t.rows.reload():t?.view.refreshCells()}},x=Qe({getApi:()=>r.api.value,reload:E}),w=B(()=>{let t={...e.config,...o?.bindings.value??{},quickFilterText:h.value||null},R=z(e.loading),U=z(e.theme),b=z(e.editMode);return R!==void 0&&(t.loading=R),U!==void 0&&(t.theme=U),b!==void 0&&(t.editType=b==="row"?"fullRow":"cell",t.editableIndicator=b==="cell"?"hover":"none"),e.onCellValueChanged&&(t.onCellValueChanged=e.onCellValueChanged),e.onRowEditingStopped&&(t.onRowEditingStopped=e.onRowEditingStopped),e.onGridError&&(t.onGridError=e.onGridError),t}),m=B(()=>{if(!o)return y.value.length;let t=o.selectionState.value;return t.mode==="allMatching"?Math.max(0,o.total.value-t.excludedKeys.length):t.selectedKeys.length}),g=B(()=>z(e.loading)===!0||o?.loading.value===!0||c.saving.value),p=B(()=>o?.error.value??c.saveError.value??null);return Z(h,t=>{o||x.search(t||null)}),xe(()=>{v?.(),v=null}),{table:r,query:o,editing:c,bindings:w,search:h,selectedRows:y,selectedCount:m,busy:g,error:p,commands:x,reload:E}}function z(e){return typeof e=="function"?e():Ee(e)?e.value:e}export{Oe as useMachTableController,$ as useMachTableEditing,Y as useMachTableQuery};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agile-team/mach-table-vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.1",
|
|
4
4
|
"description": "Official Vue 3 adapter for the MachTable enterprise data grid",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -117,20 +117,19 @@
|
|
|
117
117
|
"sideEffects": [
|
|
118
118
|
"**/*.css"
|
|
119
119
|
],
|
|
120
|
+
"scripts": {
|
|
121
|
+
"build": "tsup && node ../../scripts/copy-adapter-style.mjs vue",
|
|
122
|
+
"typecheck": "tsc --noEmit",
|
|
123
|
+
"test": "vitest run",
|
|
124
|
+
"test:coverage": "vitest run --coverage"
|
|
125
|
+
},
|
|
120
126
|
"dependencies": {
|
|
121
|
-
"@agile-team/mach-table": "
|
|
127
|
+
"@agile-team/mach-table": "workspace:*"
|
|
122
128
|
},
|
|
123
129
|
"peerDependencies": {
|
|
124
130
|
"vue": ">=3.2.0"
|
|
125
131
|
},
|
|
126
132
|
"devDependencies": {
|
|
127
133
|
"vue": "^3.5.13"
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
"build": "tsup && node ../../scripts/copy-adapter-style.mjs vue",
|
|
131
|
-
"typecheck": "tsc --noEmit",
|
|
132
|
-
"test": "vitest run",
|
|
133
|
-
"test:coverage": "vitest run --coverage"
|
|
134
|
-
},
|
|
135
|
-
"readme": "<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/ChenyCHENYU/MachTable/main/assets/mach-table-logo.svg\" alt=\"MachTable\" width=\"760\" />\n</p>\n\n# @agile-team/mach-table-vue\n\nMachTable 0.28 的官方 Vue 3 适配包。一个依赖即可获得 Core、泛型 `<MachTable>`、原生 slots、应用/路由配置、按需工作流、异步组件边界和自动生命周期清理。\n\n```bash\npnpm add @agile-team/mach-table-vue\n```\n\n应用入口只引入一次样式:\n\n```ts\nimport \"@agile-team/mach-table-vue/styles.css\";\n```\n\n## 局部接入\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { MachTable, useMachTable, type ColDef } from \"@agile-team/mach-table-vue\";\n\ninterface Row { id: string; name: string }\nconst table = useMachTable<Row>();\nconst rows = ref<Row[]>([{ id: \"1\", name: \"MachTable\" }]);\nconst columns: ColDef<Row>[] = [{ field: \"name\", flex: 1, editable: true }];\n</script>\n\n<template>\n <div style=\"height: 520px\">\n <MachTable\n :ref=\"table.ref\"\n :row-data=\"rows\"\n :column-defs=\"columns\"\n row-key=\"id\"\n enable-column-resize\n :persistence=\"{ key: 'customers:list', sections: ['columns'] }\"\n />\n </div>\n</template>\n```\n\n## 全局接入\n\n表格页面较多时,全局注册一次,页面模板直接使用 `<MachTable>`:\n\n```ts\nimport { createApp } from \"vue\";\nimport { MachTablePlugin } from \"@agile-team/mach-table-vue\";\nimport machTableConfig from \"@/config/mach-table.config\";\n\ncreateApp(App).use(MachTablePlugin, machTableConfig).mount(\"#app\");\n```\n\n需要减少首屏代码时改用异步全局插件:\n\n```ts\nimport AsyncMachTablePlugin, { preloadMachTable } from \"@agile-team/mach-table-vue/async\";\n\napp.use(AsyncMachTablePlugin, machTableConfig);\nvoid preloadMachTable(); // 可选:路由 hover 时预取\n```\n\n推荐把约定集中到独立文件:\n\n```ts\n// src/config/mach-table.config.ts\nimport { defineMachTableConfig, defineMachTablePreset } from \"@agile-team/mach-table-vue\";\n\nexport default defineMachTableConfig({\n defaults: {\n size: \"compact\",\n columnLayout: \"fit\",\n enableColumnResize: true,\n defaultColDef: { sortable: true, filter: true, resizable: true }\n },\n defaultPreset: \"list\",\n presets: {\n list: defineMachTablePreset({ stripedRows: true }),\n crud: defineMachTablePreset({ rowSelection: \"multiple\", editType: \"fullRow\" })\n }\n});\n```\n\n布局或路由可用响应式 `provideMachTableConfig()` 叠加配置,表格 props 始终拥有最高优先级。\n\n## 按需子入口\n\n```ts\nimport { useMachTableQuery, useMachTableEditing } from \"@agile-team/mach-table-vue/workflows\";\nimport { MachTableToolbar } from \"@agile-team/mach-table-vue/ui\";\nimport { vueCellRenderer } from \"@agile-team/mach-table-vue/adapters\";\nimport { createElementPlusEditors } from \"@agile-team/mach-table-vue/editors\";\nimport { createWorkerDataProcessor } from \"@agile-team/mach-table-vue/worker\";\n```\n\n- `/workflows`:请求取消、防过期覆盖、服务端分页、跨页选择、脏数据和冲突保存;`reset()` 清空全部表格过滤且只请求一次。\n- `/ui`:可选标准工具栏;需要全局组件时另行 `app.use(MachTableUiPlugin)`,其全局组件类型也只在导入该子入口后生效。\n- `/adapters`:自定义 Vue renderer/editor/detail/overlay 桥接。\n- `/editors`:可选 Element Plus 编辑器,Element Plus 由宿主注入。\n- `/worker`:大型本地过滤/排序的独立 Worker 能力。\n\n该包自动依赖 `@agile-team/mach-table` 并重导出 Core 类型;宿主只需提供 `vue >= 3.2`。\n\n文档:[Vue 指南](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/vue.md) · [企业接入](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [配置中心](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/configuration.md)\n\nSource-available © ChenyCHENYU (Agile Team). 任何使用均须事先取得书面授权。详见 [LICENSE](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSE) 与[授权流程](https://github.com/ChenyCHENYU/MachTable/blob/main/LICENSING.md)。\n"
|
|
136
|
-
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a}from"./chunk-2ANGCJOO.js";import"./chunk-7MRR4IDI.js";import"./chunk-SQVY5G55.js";export{a as MachTable};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkJ3SALTBKcjs = require('./chunk-J3SALTBK.cjs');require('./chunk-7LXDVLDD.cjs');require('./chunk-XECIDGIZ.cjs');exports.MachTable = _chunkJ3SALTBKcjs.a;
|
package/dist/chunk-7LXDVLDD.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _machtable = require('@agile-team/mach-table');var _adapter = require('@agile-team/mach-table/adapter');var _vue = require('vue');var o=Symbol("mach-table-config"),f=_adapter.normalizeMachTableConfig.call(void 0, );function g(e){return typeof e=="function"?e():_vue.isRef.call(void 0, e)?e.value:e}function u(e){return _vue.shallowRef.call(void 0, _adapter.normalizeMachTableConfig.call(void 0, e))}function y(e){let c=_vue.inject.call(void 0, o,_vue.shallowRef.call(void 0, f)),i=_vue.computed.call(void 0, ()=>_adapter.mergeMachTableConfig.call(void 0, c.value,g(e)));return _vue.provide.call(void 0, o,i),i}function s(){return _vue.inject.call(void 0, o,_vue.shallowRef.call(void 0, f))}exports.a = _adapter.resolveMachTableGridOptions; exports.b = o; exports.c = u; exports.d = y; exports.e = s;
|
package/dist/chunk-7MRR4IDI.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{defineMachTableConfig as p}from"@agile-team/mach-table";import{mergeMachTableConfig as t,normalizeMachTableConfig as a,resolveMachTableGridOptions as R}from"@agile-team/mach-table/adapter";import{computed as r,inject as l,isRef as b,provide as h,shallowRef as n}from"vue";var o=Symbol("mach-table-config"),f=a();function g(e){return typeof e=="function"?e():b(e)?e.value:e}function u(e){return n(a(e))}function y(e){let c=l(o,n(f)),i=r(()=>t(c.value,g(e)));return h(o,i),i}function s(){return l(o,n(f))}export{R as a,o as b,u as c,y as d,s as e};
|
package/dist/chunk-SQVY5G55.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as m,render as p,renderSlot as P,getCurrentInstance as g,shallowReactive as C}from"vue";function s(t){if(t)return t;try{return g()?.appContext}catch{return}}function R(t,e,n,r){let o=m({setup:()=>()=>m(t,{...e})});return r&&(o.appContext=r),p(o,n),()=>p(null,n)}function c(t,e,n,r,a=!0){let d=m({name:"MachTableSlot",setup:()=>()=>P({default:t},"default",e())});r&&(d.appContext=r);let l=!1,u=()=>{l||p(d,n)};return a?queueMicrotask(u):u(),()=>{l=!0,p(null,n)}}function E(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.className="mach-cell-vue",a.style.width="100%";let o=C({...r}),d=R(t,o,a,n),l=!1;return{el:a,refresh:u=>(Object.assign(o,u),!0),destroy:()=>{l||(l=!0,window.setTimeout(d,0))}}}}function A(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.style.height="100%";let o=R(t,r,a,n),d=!1;return{el:a,destroy:()=>{d||(d=!0,o())}}}}function x(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.className="mach-cell-vue mach-cell-vue--slot",a.style.width="100%";let o=C({...r}),d=c(t,()=>o,a,n);return{el:a,refresh:l=>(Object.assign(o,l),!0),destroy:d}}}function h(t,e){let n=s(e?.appContext);return r=>{let a=document.createElement("div");a.className="mach-header-vue-slot";let o=c(t,()=>r,a,n);return{el:a,destroy:o}}}function S(t,e){let n=s(e?.appContext);return r=>{let a=C({value:r.value}),o=document.createElement("div");o.className="mach-cell-vue mach-cell-vue--editor";let l=c(t,()=>({...r,value:a.value,setValue:u=>{a.value=u},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=c(t,()=>r,a,n);return{el:a,destroy:o}}}function i(t,e){let n=s(e?.appContext);return()=>{let r=document.createElement("div");r.className="mach-overlay-vue-slot";let a=c(t,()=>({}),r,n);return{el:r,destroy:a}}}function T(t,e,n){return t[`${e}-${n}`]??t[`${e}-${n.replace(/[.\s]+/g,"-")}`]}function y(t,e,n){return t.map((r,a)=>{if(Array.isArray(r.children)){let v=r;return{...v,children:y(v.children,e,n)}}let o=r,d=o.colId??o.field??`col_${a}`,l=T(e,"cell",d)??(d==="op"?e.actions:void 0)??e.cell,u=T(e,"header",d)??e.header,f=T(e,"editor",d)??e.editor;return{...o,...l?{cellRenderer:x(l,{appContext:n})}:{},...u?{headerComponent:h(u,{appContext:n})}:{},...f?{cellEditor:S(f,{appContext:n})}:{}}})}function O(t,e,n){let r=t.columnDefs?y(t.columnDefs,e,n):t.columnDefs;return{...t,columnDefs:r,...e.detail&&!t.detailRowRenderer?{detailRowRenderer:D(e.detail,{appContext:n})}:{},...e.loading?{overlayLoadingTemplate:i(e.loading,{appContext:n})}:{},...e.empty?{overlayNoRowsTemplate:i(e.empty,{appContext:n})}:{}}}function G(t,e){let n,r,a=t.detail?D(t.detail,{appContext:e}):void 0,o=t.loading?i(t.loading,{appContext:e}):void 0,d=t.empty?i(t.empty,{appContext:e}):void 0;return l=>(l.columnDefs!==n&&(n=l.columnDefs,r=l.columnDefs?y(l.columnDefs,t,e):l.columnDefs),{...l,columnDefs:r,...a&&!l.detailRowRenderer?{detailRowRenderer:a}:{},...o?{overlayLoadingTemplate:o}:{},...d?{overlayNoRowsTemplate:d}:{}})}export{E as a,A as b,x as c,h as d,S as e,D as f,i as g,O as h,G as i};
|
package/dist/chunk-XECIDGIZ.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _vue = require('vue');function s(t){if(t)return t;try{return _optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _ => _.appContext])}catch (e2){return}}function R(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 c(t,e,n,r,a=!0){let d=_vue.h.call(void 0, {name:"MachTableSlot",setup:()=>()=>_vue.renderSlot.call(void 0, {default:t},"default",e())});r&&(d.appContext=r);let l=!1,u=()=>{l||_vue.render.call(void 0, d,n)};return a?queueMicrotask(u):u(),()=>{l=!0,_vue.render.call(void 0, null,n)}}function E(t,e){let n=s(_optionalChain([e, 'optionalAccess', _2 => _2.appContext]));return r=>{let a=document.createElement("div");a.className="mach-cell-vue",a.style.width="100%";let o=_vue.shallowReactive.call(void 0, {...r}),d=R(t,o,a,n),l=!1;return{el:a,refresh:u=>(Object.assign(o,u),!0),destroy:()=>{l||(l=!0,window.setTimeout(d,0))}}}}function A(t,e){let n=s(_optionalChain([e, 'optionalAccess', _3 => _3.appContext]));return r=>{let a=document.createElement("div");a.style.height="100%";let o=R(t,r,a,n),d=!1;return{el:a,destroy:()=>{d||(d=!0,o())}}}}function x(t,e){let n=s(_optionalChain([e, 'optionalAccess', _4 => _4.appContext]));return r=>{let a=document.createElement("div");a.className="mach-cell-vue mach-cell-vue--slot",a.style.width="100%";let o=_vue.shallowReactive.call(void 0, {...r}),d=c(t,()=>o,a,n);return{el:a,refresh:l=>(Object.assign(o,l),!0),destroy:d}}}function h(t,e){let n=s(_optionalChain([e, 'optionalAccess', _5 => _5.appContext]));return r=>{let a=document.createElement("div");a.className="mach-header-vue-slot";let o=c(t,()=>r,a,n);return{el:a,destroy:o}}}function S(t,e){let n=s(_optionalChain([e, 'optionalAccess', _6 => _6.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=c(t,()=>({...r,value:a.value,setValue:u=>{a.value=u},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', _7 => _7.querySelector, 'call', _8 => _8("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex='-1'])"), 'optionalAccess', _9 => _9.focus, 'call', _10 => _10()])},destroy:l}}}function D(t,e){let n=s(_optionalChain([e, 'optionalAccess', _11 => _11.appContext]));return r=>{let a=document.createElement("div");a.className="mach-detail-vue-slot",a.style.height="100%";let o=c(t,()=>r,a,n);return{el:a,destroy:o}}}function i(t,e){let n=s(_optionalChain([e, 'optionalAccess', _12 => _12.appContext]));return()=>{let r=document.createElement("div");r.className="mach-overlay-vue-slot";let a=c(t,()=>({}),r,n);return{el:r,destroy:a}}}function T(t,e,n){return _nullishCoalesce(t[`${e}-${n}`], () => (t[`${e}-${n.replace(/[.\s]+/g,"-")}`]))}function y(t,e,n){return t.map((r,a)=>{if(Array.isArray(r.children)){let v=r;return{...v,children:y(v.children,e,n)}}let o=r,d=_nullishCoalesce(_nullishCoalesce(o.colId, () => (o.field)), () => (`col_${a}`)),l=_nullishCoalesce(_nullishCoalesce(T(e,"cell",d), () => ((d==="op"?e.actions:void 0))), () => (e.cell)),u=_nullishCoalesce(T(e,"header",d), () => (e.header)),f=_nullishCoalesce(T(e,"editor",d), () => (e.editor));return{...o,...l?{cellRenderer:x(l,{appContext:n})}:{},...u?{headerComponent:h(u,{appContext:n})}:{},...f?{cellEditor:S(f,{appContext:n})}:{}}})}function O(t,e,n){let r=t.columnDefs?y(t.columnDefs,e,n):t.columnDefs;return{...t,columnDefs:r,...e.detail&&!t.detailRowRenderer?{detailRowRenderer:D(e.detail,{appContext:n})}:{},...e.loading?{overlayLoadingTemplate:i(e.loading,{appContext:n})}:{},...e.empty?{overlayNoRowsTemplate:i(e.empty,{appContext:n})}:{}}}function G(t,e){let n,r,a=t.detail?D(t.detail,{appContext:e}):void 0,o=t.loading?i(t.loading,{appContext:e}):void 0,d=t.empty?i(t.empty,{appContext:e}):void 0;return l=>(l.columnDefs!==n&&(n=l.columnDefs,r=l.columnDefs?y(l.columnDefs,t,e):l.columnDefs),{...l,columnDefs:r,...a&&!l.detailRowRenderer?{detailRowRenderer:a}:{},...o?{overlayLoadingTemplate:o}:{},...d?{overlayNoRowsTemplate:d}:{}})}exports.a = E; exports.b = A; exports.c = x; exports.d = h; exports.e = S; exports.f = D; exports.g = i; exports.h = O; exports.i = G;
|