@agile-team/mach-table-vue 0.4.1 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +110 -21
- package/README.md +112 -4
- package/dist/MachTable-ESOIV4CZ.cjs +2 -0
- package/dist/MachTable-ESOIV4CZ.cjs.map +1 -0
- package/dist/MachTable-USYTNQV5.js +2 -0
- package/dist/MachTable-USYTNQV5.js.map +1 -0
- package/dist/async.cjs +2 -0
- package/dist/async.cjs.map +1 -0
- package/dist/async.d.cts +34 -0
- package/dist/async.d.ts +34 -0
- package/dist/async.js +2 -0
- package/dist/async.js.map +1 -0
- package/dist/chunk-7U5IML5K.js +2 -0
- package/dist/chunk-7U5IML5K.js.map +1 -0
- package/dist/chunk-BE4RGLUC.cjs +2 -0
- package/dist/chunk-BE4RGLUC.cjs.map +1 -0
- package/dist/chunk-E7KTBMM6.js +2 -0
- package/dist/chunk-E7KTBMM6.js.map +1 -0
- package/dist/chunk-ICHFPO5U.js +2 -0
- package/dist/chunk-ICHFPO5U.js.map +1 -0
- package/dist/chunk-MVK2O7FM.cjs +2 -0
- package/dist/chunk-MVK2O7FM.cjs.map +1 -0
- package/dist/chunk-Y6OAV3U4.cjs +2 -0
- package/dist/chunk-Y6OAV3U4.cjs.map +1 -0
- package/dist/chunk-Z6YS22CL.cjs +2 -0
- package/dist/chunk-Z6YS22CL.cjs.map +1 -0
- package/dist/chunk-ZUOKB5ID.js +2 -0
- package/dist/chunk-ZUOKB5ID.js.map +1 -0
- package/dist/editors.cjs +2 -0
- package/dist/editors.cjs.map +1 -0
- package/dist/editors.d.cts +34 -0
- package/dist/editors.d.ts +34 -0
- package/dist/editors.js +2 -0
- package/dist/editors.js.map +1 -0
- package/dist/globalRegistration-ySQgs7aA.d.cts +86 -0
- package/dist/globalRegistration-ySQgs7aA.d.ts +86 -0
- package/dist/index.cjs +1 -194
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +54 -14
- package/dist/index.d.ts +54 -14
- package/dist/index.js +1 -167
- package/dist/index.js.map +1 -1
- package/dist/mach-table.css +410 -3
- package/dist/workflows-Dg6KsN85.d.cts +111 -0
- package/dist/workflows-Dg6KsN85.d.ts +111 -0
- package/dist/workflows.cjs +2 -0
- package/dist/workflows.cjs.map +1 -0
- package/dist/workflows.d.cts +3 -0
- package/dist/workflows.d.ts +3 -0
- package/dist/workflows.js +2 -0
- package/dist/workflows.js.map +1 -0
- package/package.json +34 -4
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/RobotGrid.ts","../src/adapters.ts","../src/useMachTable.ts"],"sourcesContent":["export { RobotGrid } from \"./RobotGrid\";\nexport { RobotGrid as MachTable } from \"./RobotGrid\";\nexport type { RobotGridVueProps } from \"./RobotGrid\";\nexport { vueCellRenderer, vueDetailRenderer } from \"./adapters\";\nexport { useMachTable } from \"./useMachTable\";\nexport type { UseMachTableReturn } from \"./useMachTable\";\nexport type { VueCellRendererProps } from \"./adapters\";\nexport * from \"@agile-team/mach-table\";\n","import { defineComponent, h, onBeforeUnmount, onMounted, ref, watch, type DefineComponent } from \"vue\";\nimport {\n createGrid,\n DIRECT_GRID_OPTION_KEYS,\n EVENT_TYPES,\n GRID_OPTION_KEYS,\n GRID_OPTION_META\n} from \"@agile-team/mach-table\";\nimport type { GridApi, GridOptions } from \"@agile-team/mach-table\";\n\nexport type RobotGridVueProps<TData = any> = Omit<GridOptions<TData>, \"className\"> & {\n /** CSS class applied to the Vue host element. */\n className?: string;\n /** CSS class forwarded to MachTable's inner grid root. */\n gridClassName?: string;\n};\n\nconst ADAPTER_OPTION_KEYS = GRID_OPTION_KEYS.filter((key) => key !== \"className\");\nconst DIRECT_OPTION_KEYS = DIRECT_GRID_OPTION_KEYS.filter((key) => key !== \"className\");\n\nconst runtimeProps: Record<string, { type?: any; default: undefined }> = {};\nfor (const key of ADAPTER_OPTION_KEYS) {\n const kind = GRID_OPTION_META[key].kind;\n const type = kind === \"boolean\"\n ? Boolean\n : kind === \"number\"\n ? Number\n : kind === \"array\"\n ? Array\n : kind === \"function\"\n ? Function\n : kind === \"boolean-object\"\n ? [Boolean, Object]\n : kind === \"object\"\n ? Object\n : kind === \"string\"\n ? String\n : undefined;\n runtimeProps[key] = { ...(type ? { type } : {}), default: undefined };\n}\nruntimeProps.className = { type: String, default: undefined };\nruntimeProps.gridClassName = { type: String, default: undefined };\n\nfunction handlerNameOf(eventType: string): string {\n return \"on\" + eventType.charAt(0).toUpperCase() + eventType.slice(1);\n}\n\nconst RobotGridImpl = defineComponent({\n name: \"RobotGrid\",\n inheritAttrs: false,\n props: runtimeProps,\n emits: [...EVENT_TYPES] as unknown as string[],\n setup(rawProps, { expose, attrs, emit }) {\n const props = rawProps as Readonly<Record<string, any>>;\n const host = ref<HTMLDivElement | null>(null);\n let api: GridApi | null = null;\n\n onMounted(() => {\n if (!host.value) return;\n const options: Record<string, unknown> = {};\n for (const key of ADAPTER_OPTION_KEYS) {\n const value = props[key];\n if (value !== undefined) options[key] = value;\n }\n if (props.gridClassName !== undefined) options.className = props.gridClassName;\n for (const type of EVENT_TYPES) {\n options[handlerNameOf(type)] = (event: unknown) => emit(type, event);\n }\n api = createGrid(host.value, options as GridOptions<any>);\n });\n\n onBeforeUnmount(() => {\n api?.destroy();\n api = null;\n });\n\n watch(() => props.rowData, (value) => api?.setRowData(value));\n watch(() => props.columnDefs, (value) => api?.setColumnDefs(value));\n watch(() => props.quickFilterText, (value) => api?.setQuickFilter(value));\n watch(() => props.gridClassName, (value) => api?.updateOptions({ className: value }));\n\n watch(\n () => DIRECT_OPTION_KEYS.map((key) => props[key]),\n (values, previous) => {\n if (!api) return;\n const changed: Record<string, unknown> = {};\n values.forEach((value, index) => {\n if (!Object.is(value, previous[index])) changed[DIRECT_OPTION_KEYS[index]] = value;\n });\n if (Object.keys(changed).length > 0) api.updateOptions(changed as Partial<GridOptions<any>>);\n }\n );\n\n expose({ getApi: (): GridApi | null => api });\n\n return () => h(\"div\", {\n ...attrs,\n ref: host,\n class: [\"mach-vue-host\", props.className, attrs.class].filter(Boolean),\n style: attrs.style\n });\n }\n});\n\nexport const RobotGrid = RobotGridImpl as unknown as DefineComponent<RobotGridVueProps<any>>;\n","import { createApp, h, render, getCurrentInstance, type AppContext, type Component } from \"vue\";\nimport type { CellRendererParams, CellRendererFn, DetailRowRendererParams } from \"@agile-team/mach-table\";\n\nexport type VueCellRendererProps<TData = any, TValue = any> = CellRendererParams<TData, TValue>;\n\n/**\n * 解析适配器可用的 appContext:\n * 1. 显式传入优先;\n * 2. 否则在 <script setup> 内同步调用工厂时自动捕获宿主组件上下文\n * (使单元格/明细内的 naive、EP 组件继承 ConfigProvider 的主题与国际化)。\n */\nfunction resolveAppContext(explicit?: AppContext): AppContext | undefined {\n if (explicit) return explicit;\n try {\n return getCurrentInstance()?.appContext;\n } catch {\n return undefined;\n }\n}\n\nfunction mountComponent(\n component: Component,\n props: Record<string, any>,\n host: HTMLElement,\n appContext?: AppContext\n): () => void {\n if (appContext) {\n const vnode = h(component, props);\n vnode.appContext = appContext;\n render(vnode, host);\n return () => render(null, host);\n }\n const app = createApp({ render: () => h(component, props) });\n app.mount(host);\n return () => app.unmount();\n}\n\nexport function vueCellRenderer<TData = any, TValue = any>(\n component: Component,\n options?: { appContext?: AppContext }\n): CellRendererFn {\n const appContext = resolveAppContext(options?.appContext);\n return (params: CellRendererParams<TData, TValue>) => {\n const host = document.createElement(\"div\");\n host.className = \"mach-cell-vue\";\n host.style.width = \"100%\";\n const unmount = mountComponent(component, params as Record<string, any>, host, appContext);\n let destroyed = false;\n return {\n el: host,\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n window.setTimeout(unmount, 0);\n }\n };\n };\n}\n\nexport function vueDetailRenderer<TData = any>(\n component: Component,\n options?: { appContext?: AppContext }\n): (params: DetailRowRendererParams<TData>) => { el: HTMLElement; destroy?: () => void } {\n const appContext = resolveAppContext(options?.appContext);\n return (params) => {\n const host = document.createElement(\"div\");\n host.style.height = \"100%\";\n const unmount = mountComponent(component, params as Record<string, any>, host, appContext);\n let destroyed = false;\n return {\n el: host,\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n unmount();\n }\n };\n };\n}\n","import { onScopeDispose, ref, shallowRef, watch, type Ref, type ShallowRef } from \"vue\";\nimport type { GridApi } from \"@agile-team/mach-table\";\n\nexport interface UseMachTableReturn<TData = any> {\n ref: Ref<any>;\n api: ShallowRef<GridApi<TData> | null>;\n ready: ShallowRef<boolean>;\n}\n\nexport function useMachTable<TData = any>(): UseMachTableReturn<TData> {\n const componentRef = ref<any>(null);\n const api = shallowRef<GridApi<TData> | null>(null);\n const ready = shallowRef(false);\n\n watch(\n componentRef,\n (comp) => {\n if (comp && typeof comp.getApi === \"function\") {\n api.value = comp.getApi();\n ready.value = api.value != null;\n } else {\n api.value = null;\n ready.value = false;\n }\n },\n { flush: \"post\" }\n );\n\n onScopeDispose(() => {\n componentRef.value = null;\n api.value = null;\n ready.value = false;\n });\n\n return { ref: componentRef, api, ready };\n}\n"],"mappings":"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","names":["import_vue","import_vue"]}
|
|
1
|
+
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\index.cjs"],"names":[],"mappings":"AAAA,yZAAwC,wDAAgD,wDAA+G,wDAAwG,IAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAC,CAAE,CAAC,mBAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAAwE,SAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAC,IAAK,CAAC,CAAC,CAAC,CAAC,6BAAC,IAAK,CAAC,CAAC,CAAC,CAAC,6BAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,wBAAC,CAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,iCAAC,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kFAAmC,IAAK,CAAC,CAAC,CAAC,CAAC,2tCAAqnB","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\index.cjs","sourcesContent":[null]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { a as MachTablePluginOptions, R as ResolvedMachTableConfig, b as MachTableRuntimeConfig } from './globalRegistration-ySQgs7aA.cjs';
|
|
2
|
+
export { c as MachTable, d as MachTableConfigWarning, e as MachTableOptionExplanation, f as MachTablePresetSelection, M as MachTableVueProps, g as ResolvedMachTableGridOptions, h as RobotGrid, i as RobotGridVueProps, j as defineMachTableConfig, m as mergeMachTableConfig, n as normalizeMachTableConfig, r as resolveMachTableGridOptions } from './globalRegistration-ySQgs7aA.cjs';
|
|
3
|
+
import { App, Slot, AppContext, Component, Slots, InjectionKey, Ref } from 'vue';
|
|
4
|
+
import { CellEditorParams, CellRendererParams, CellEditorFactory, CellRendererFn, DetailRowRendererParams, ICellRendererResult, HeaderComponentParams, OverlayTemplate, GridOptions } from '@agile-team/mach-table';
|
|
3
5
|
export * from '@agile-team/mach-table';
|
|
6
|
+
export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableEditingOptions, d as UseMachTableEditingReturn, e as UseMachTableQueryOptions, f as UseMachTableQueryReturn, g as UseMachTableReturn, u as useMachTable, h as useMachTableEditing, i as useMachTableQuery } from './workflows-Dg6KsN85.cjs';
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
className?: string;
|
|
8
|
-
/** CSS class forwarded to MachTable's inner grid root. */
|
|
9
|
-
gridClassName?: string;
|
|
8
|
+
declare const MachTablePlugin: {
|
|
9
|
+
install(app: App, options?: MachTablePluginOptions): void;
|
|
10
10
|
};
|
|
11
|
-
declare const RobotGrid: DefineComponent<RobotGridVueProps<any>>;
|
|
12
11
|
|
|
13
12
|
type VueCellRendererProps<TData = any, TValue = any> = CellRendererParams<TData, TValue>;
|
|
14
13
|
declare function vueCellRenderer<TData = any, TValue = any>(component: Component, options?: {
|
|
@@ -20,12 +19,53 @@ declare function vueDetailRenderer<TData = any>(component: Component, options?:
|
|
|
20
19
|
el: HTMLElement;
|
|
21
20
|
destroy?: () => void;
|
|
22
21
|
};
|
|
22
|
+
/** Internal/public bridge used by automatic `#cell-*` Vue slots. */
|
|
23
|
+
declare function vueCellSlotRenderer<TData = any, TValue = any>(slot: Slot, options?: {
|
|
24
|
+
appContext?: AppContext;
|
|
25
|
+
}): CellRendererFn;
|
|
26
|
+
declare function vueHeaderSlotRenderer<TData = any>(slot: Slot, options?: {
|
|
27
|
+
appContext?: AppContext;
|
|
28
|
+
}): (params: HeaderComponentParams<TData>) => ICellRendererResult;
|
|
29
|
+
interface VueCellEditorSlotProps<TData = any, TValue = any> extends CellEditorParams<TData, TValue> {
|
|
30
|
+
value: TValue;
|
|
31
|
+
setValue(value: TValue): void;
|
|
32
|
+
commit(): void;
|
|
33
|
+
cancel(): void;
|
|
34
|
+
}
|
|
35
|
+
declare function vueCellEditorSlot<TData = any, TValue = any>(slot: Slot, options?: {
|
|
36
|
+
appContext?: AppContext;
|
|
37
|
+
}): CellEditorFactory;
|
|
38
|
+
declare function vueDetailSlotRenderer<TData = any>(slot: Slot, options?: {
|
|
39
|
+
appContext?: AppContext;
|
|
40
|
+
}): (params: DetailRowRendererParams<TData>) => ICellRendererResult;
|
|
41
|
+
declare function vueOverlaySlot(slot: Slot, options?: {
|
|
42
|
+
appContext?: AppContext;
|
|
43
|
+
}): OverlayTemplate;
|
|
23
44
|
|
|
24
|
-
interface
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
interface MachTableVueSlots<TData = any> {
|
|
46
|
+
cell?: (props: CellRendererParams<TData>) => any;
|
|
47
|
+
header?: (props: HeaderComponentParams<TData>) => any;
|
|
48
|
+
editor?: (props: VueCellEditorSlotProps<TData>) => any;
|
|
49
|
+
detail?: (props: DetailRowRendererParams<TData>) => any;
|
|
50
|
+
loading?: () => any;
|
|
51
|
+
empty?: () => any;
|
|
52
|
+
actions?: (props: CellRendererParams<TData>) => any;
|
|
53
|
+
[name: `cell-${string}`]: ((props: CellRendererParams<TData>) => any) | undefined;
|
|
54
|
+
[name: `header-${string}`]: ((props: HeaderComponentParams<TData>) => any) | undefined;
|
|
55
|
+
[name: `editor-${string}`]: ((props: CellEditorParams<TData>) => any) | undefined;
|
|
28
56
|
}
|
|
29
|
-
declare function
|
|
57
|
+
declare function applyVueSlots<TData>(options: GridOptions<TData>, slots: Slots, appContext?: AppContext): GridOptions<TData>;
|
|
58
|
+
/** Creates a stable enhancer so unrelated reactive prop updates do not rebuild columns. */
|
|
59
|
+
declare function createVueSlotEnhancer<TData>(slots: Slots, appContext?: AppContext): (options: GridOptions<TData>) => GridOptions<TData>;
|
|
60
|
+
|
|
61
|
+
declare const MACH_TABLE_DEFAULTS_KEY: InjectionKey<Partial<GridOptions<any>>>;
|
|
62
|
+
declare const MACH_TABLE_CONFIG_KEY: InjectionKey<Readonly<Ref<ResolvedMachTableConfig>>>;
|
|
63
|
+
type MachTableConfigSource = MachTableRuntimeConfig | Readonly<Ref<MachTableRuntimeConfig>> | (() => MachTableRuntimeConfig);
|
|
64
|
+
/** Provides route/layout-scoped defaults, presets and diagnostics reactively. */
|
|
65
|
+
declare function provideMachTableConfig(source: MachTableConfigSource): Readonly<Ref<ResolvedMachTableConfig>>;
|
|
66
|
+
/** Provides route/layout-scoped defaults. Per-table props always take precedence. */
|
|
67
|
+
declare function provideMachTableDefaults<TData>(defaults: Partial<GridOptions<TData>> | Readonly<Ref<Partial<GridOptions<TData>>>> | (() => Partial<GridOptions<TData>>)): void;
|
|
68
|
+
declare function useMachTableDefaults<TData>(): Partial<GridOptions<TData>>;
|
|
69
|
+
declare function useMachTableConfig(): Readonly<Ref<ResolvedMachTableConfig>>;
|
|
30
70
|
|
|
31
|
-
export {
|
|
71
|
+
export { MACH_TABLE_CONFIG_KEY, MACH_TABLE_DEFAULTS_KEY, type MachTableConfigSource, MachTablePlugin, MachTablePluginOptions, MachTableRuntimeConfig, type MachTableVueSlots, ResolvedMachTableConfig, type VueCellEditorSlotProps, type VueCellRendererProps, applyVueSlots, createVueSlotEnhancer, MachTablePlugin as default, provideMachTableConfig, provideMachTableDefaults, useMachTableConfig, useMachTableDefaults, vueCellEditorSlot, vueCellRenderer, vueCellSlotRenderer, vueDetailRenderer, vueDetailSlotRenderer, vueHeaderSlotRenderer, vueOverlaySlot };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { a as MachTablePluginOptions, R as ResolvedMachTableConfig, b as MachTableRuntimeConfig } from './globalRegistration-ySQgs7aA.js';
|
|
2
|
+
export { c as MachTable, d as MachTableConfigWarning, e as MachTableOptionExplanation, f as MachTablePresetSelection, M as MachTableVueProps, g as ResolvedMachTableGridOptions, h as RobotGrid, i as RobotGridVueProps, j as defineMachTableConfig, m as mergeMachTableConfig, n as normalizeMachTableConfig, r as resolveMachTableGridOptions } from './globalRegistration-ySQgs7aA.js';
|
|
3
|
+
import { App, Slot, AppContext, Component, Slots, InjectionKey, Ref } from 'vue';
|
|
4
|
+
import { CellEditorParams, CellRendererParams, CellEditorFactory, CellRendererFn, DetailRowRendererParams, ICellRendererResult, HeaderComponentParams, OverlayTemplate, GridOptions } from '@agile-team/mach-table';
|
|
3
5
|
export * from '@agile-team/mach-table';
|
|
6
|
+
export { M as MachTablePageRequest, a as MachTablePageResult, b as MachTableQuerySource, c as MachTableRemoteSelectionState, U as UseMachTableEditingOptions, d as UseMachTableEditingReturn, e as UseMachTableQueryOptions, f as UseMachTableQueryReturn, g as UseMachTableReturn, u as useMachTable, h as useMachTableEditing, i as useMachTableQuery } from './workflows-Dg6KsN85.js';
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
className?: string;
|
|
8
|
-
/** CSS class forwarded to MachTable's inner grid root. */
|
|
9
|
-
gridClassName?: string;
|
|
8
|
+
declare const MachTablePlugin: {
|
|
9
|
+
install(app: App, options?: MachTablePluginOptions): void;
|
|
10
10
|
};
|
|
11
|
-
declare const RobotGrid: DefineComponent<RobotGridVueProps<any>>;
|
|
12
11
|
|
|
13
12
|
type VueCellRendererProps<TData = any, TValue = any> = CellRendererParams<TData, TValue>;
|
|
14
13
|
declare function vueCellRenderer<TData = any, TValue = any>(component: Component, options?: {
|
|
@@ -20,12 +19,53 @@ declare function vueDetailRenderer<TData = any>(component: Component, options?:
|
|
|
20
19
|
el: HTMLElement;
|
|
21
20
|
destroy?: () => void;
|
|
22
21
|
};
|
|
22
|
+
/** Internal/public bridge used by automatic `#cell-*` Vue slots. */
|
|
23
|
+
declare function vueCellSlotRenderer<TData = any, TValue = any>(slot: Slot, options?: {
|
|
24
|
+
appContext?: AppContext;
|
|
25
|
+
}): CellRendererFn;
|
|
26
|
+
declare function vueHeaderSlotRenderer<TData = any>(slot: Slot, options?: {
|
|
27
|
+
appContext?: AppContext;
|
|
28
|
+
}): (params: HeaderComponentParams<TData>) => ICellRendererResult;
|
|
29
|
+
interface VueCellEditorSlotProps<TData = any, TValue = any> extends CellEditorParams<TData, TValue> {
|
|
30
|
+
value: TValue;
|
|
31
|
+
setValue(value: TValue): void;
|
|
32
|
+
commit(): void;
|
|
33
|
+
cancel(): void;
|
|
34
|
+
}
|
|
35
|
+
declare function vueCellEditorSlot<TData = any, TValue = any>(slot: Slot, options?: {
|
|
36
|
+
appContext?: AppContext;
|
|
37
|
+
}): CellEditorFactory;
|
|
38
|
+
declare function vueDetailSlotRenderer<TData = any>(slot: Slot, options?: {
|
|
39
|
+
appContext?: AppContext;
|
|
40
|
+
}): (params: DetailRowRendererParams<TData>) => ICellRendererResult;
|
|
41
|
+
declare function vueOverlaySlot(slot: Slot, options?: {
|
|
42
|
+
appContext?: AppContext;
|
|
43
|
+
}): OverlayTemplate;
|
|
23
44
|
|
|
24
|
-
interface
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
interface MachTableVueSlots<TData = any> {
|
|
46
|
+
cell?: (props: CellRendererParams<TData>) => any;
|
|
47
|
+
header?: (props: HeaderComponentParams<TData>) => any;
|
|
48
|
+
editor?: (props: VueCellEditorSlotProps<TData>) => any;
|
|
49
|
+
detail?: (props: DetailRowRendererParams<TData>) => any;
|
|
50
|
+
loading?: () => any;
|
|
51
|
+
empty?: () => any;
|
|
52
|
+
actions?: (props: CellRendererParams<TData>) => any;
|
|
53
|
+
[name: `cell-${string}`]: ((props: CellRendererParams<TData>) => any) | undefined;
|
|
54
|
+
[name: `header-${string}`]: ((props: HeaderComponentParams<TData>) => any) | undefined;
|
|
55
|
+
[name: `editor-${string}`]: ((props: CellEditorParams<TData>) => any) | undefined;
|
|
28
56
|
}
|
|
29
|
-
declare function
|
|
57
|
+
declare function applyVueSlots<TData>(options: GridOptions<TData>, slots: Slots, appContext?: AppContext): GridOptions<TData>;
|
|
58
|
+
/** Creates a stable enhancer so unrelated reactive prop updates do not rebuild columns. */
|
|
59
|
+
declare function createVueSlotEnhancer<TData>(slots: Slots, appContext?: AppContext): (options: GridOptions<TData>) => GridOptions<TData>;
|
|
60
|
+
|
|
61
|
+
declare const MACH_TABLE_DEFAULTS_KEY: InjectionKey<Partial<GridOptions<any>>>;
|
|
62
|
+
declare const MACH_TABLE_CONFIG_KEY: InjectionKey<Readonly<Ref<ResolvedMachTableConfig>>>;
|
|
63
|
+
type MachTableConfigSource = MachTableRuntimeConfig | Readonly<Ref<MachTableRuntimeConfig>> | (() => MachTableRuntimeConfig);
|
|
64
|
+
/** Provides route/layout-scoped defaults, presets and diagnostics reactively. */
|
|
65
|
+
declare function provideMachTableConfig(source: MachTableConfigSource): Readonly<Ref<ResolvedMachTableConfig>>;
|
|
66
|
+
/** Provides route/layout-scoped defaults. Per-table props always take precedence. */
|
|
67
|
+
declare function provideMachTableDefaults<TData>(defaults: Partial<GridOptions<TData>> | Readonly<Ref<Partial<GridOptions<TData>>>> | (() => Partial<GridOptions<TData>>)): void;
|
|
68
|
+
declare function useMachTableDefaults<TData>(): Partial<GridOptions<TData>>;
|
|
69
|
+
declare function useMachTableConfig(): Readonly<Ref<ResolvedMachTableConfig>>;
|
|
30
70
|
|
|
31
|
-
export {
|
|
71
|
+
export { MACH_TABLE_CONFIG_KEY, MACH_TABLE_DEFAULTS_KEY, type MachTableConfigSource, MachTablePlugin, MachTablePluginOptions, MachTableRuntimeConfig, type MachTableVueSlots, ResolvedMachTableConfig, type VueCellEditorSlotProps, type VueCellRendererProps, applyVueSlots, createVueSlotEnhancer, MachTablePlugin as default, provideMachTableConfig, provideMachTableDefaults, useMachTableConfig, useMachTableDefaults, vueCellEditorSlot, vueCellRenderer, vueCellSlotRenderer, vueDetailRenderer, vueDetailSlotRenderer, vueHeaderSlotRenderer, vueOverlaySlot };
|
package/dist/index.js
CHANGED
|
@@ -1,168 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { defineComponent, h, onBeforeUnmount, onMounted, ref, watch } from "vue";
|
|
3
|
-
import {
|
|
4
|
-
createGrid,
|
|
5
|
-
DIRECT_GRID_OPTION_KEYS,
|
|
6
|
-
EVENT_TYPES,
|
|
7
|
-
GRID_OPTION_KEYS,
|
|
8
|
-
GRID_OPTION_META
|
|
9
|
-
} from "@agile-team/mach-table";
|
|
10
|
-
var ADAPTER_OPTION_KEYS = GRID_OPTION_KEYS.filter((key) => key !== "className");
|
|
11
|
-
var DIRECT_OPTION_KEYS = DIRECT_GRID_OPTION_KEYS.filter((key) => key !== "className");
|
|
12
|
-
var runtimeProps = {};
|
|
13
|
-
for (const key of ADAPTER_OPTION_KEYS) {
|
|
14
|
-
const kind = GRID_OPTION_META[key].kind;
|
|
15
|
-
const type = kind === "boolean" ? Boolean : kind === "number" ? Number : kind === "array" ? Array : kind === "function" ? Function : kind === "boolean-object" ? [Boolean, Object] : kind === "object" ? Object : kind === "string" ? String : void 0;
|
|
16
|
-
runtimeProps[key] = { ...type ? { type } : {}, default: void 0 };
|
|
17
|
-
}
|
|
18
|
-
runtimeProps.className = { type: String, default: void 0 };
|
|
19
|
-
runtimeProps.gridClassName = { type: String, default: void 0 };
|
|
20
|
-
function handlerNameOf(eventType) {
|
|
21
|
-
return "on" + eventType.charAt(0).toUpperCase() + eventType.slice(1);
|
|
22
|
-
}
|
|
23
|
-
var RobotGridImpl = defineComponent({
|
|
24
|
-
name: "RobotGrid",
|
|
25
|
-
inheritAttrs: false,
|
|
26
|
-
props: runtimeProps,
|
|
27
|
-
emits: [...EVENT_TYPES],
|
|
28
|
-
setup(rawProps, { expose, attrs, emit }) {
|
|
29
|
-
const props = rawProps;
|
|
30
|
-
const host = ref(null);
|
|
31
|
-
let api = null;
|
|
32
|
-
onMounted(() => {
|
|
33
|
-
if (!host.value) return;
|
|
34
|
-
const options = {};
|
|
35
|
-
for (const key of ADAPTER_OPTION_KEYS) {
|
|
36
|
-
const value = props[key];
|
|
37
|
-
if (value !== void 0) options[key] = value;
|
|
38
|
-
}
|
|
39
|
-
if (props.gridClassName !== void 0) options.className = props.gridClassName;
|
|
40
|
-
for (const type of EVENT_TYPES) {
|
|
41
|
-
options[handlerNameOf(type)] = (event) => emit(type, event);
|
|
42
|
-
}
|
|
43
|
-
api = createGrid(host.value, options);
|
|
44
|
-
});
|
|
45
|
-
onBeforeUnmount(() => {
|
|
46
|
-
api?.destroy();
|
|
47
|
-
api = null;
|
|
48
|
-
});
|
|
49
|
-
watch(() => props.rowData, (value) => api?.setRowData(value));
|
|
50
|
-
watch(() => props.columnDefs, (value) => api?.setColumnDefs(value));
|
|
51
|
-
watch(() => props.quickFilterText, (value) => api?.setQuickFilter(value));
|
|
52
|
-
watch(() => props.gridClassName, (value) => api?.updateOptions({ className: value }));
|
|
53
|
-
watch(
|
|
54
|
-
() => DIRECT_OPTION_KEYS.map((key) => props[key]),
|
|
55
|
-
(values, previous) => {
|
|
56
|
-
if (!api) return;
|
|
57
|
-
const changed = {};
|
|
58
|
-
values.forEach((value, index) => {
|
|
59
|
-
if (!Object.is(value, previous[index])) changed[DIRECT_OPTION_KEYS[index]] = value;
|
|
60
|
-
});
|
|
61
|
-
if (Object.keys(changed).length > 0) api.updateOptions(changed);
|
|
62
|
-
}
|
|
63
|
-
);
|
|
64
|
-
expose({ getApi: () => api });
|
|
65
|
-
return () => h("div", {
|
|
66
|
-
...attrs,
|
|
67
|
-
ref: host,
|
|
68
|
-
class: ["mach-vue-host", props.className, attrs.class].filter(Boolean),
|
|
69
|
-
style: attrs.style
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
var RobotGrid = RobotGridImpl;
|
|
74
|
-
|
|
75
|
-
// src/adapters.ts
|
|
76
|
-
import { createApp, h as h2, render, getCurrentInstance } from "vue";
|
|
77
|
-
function resolveAppContext(explicit) {
|
|
78
|
-
if (explicit) return explicit;
|
|
79
|
-
try {
|
|
80
|
-
return getCurrentInstance()?.appContext;
|
|
81
|
-
} catch {
|
|
82
|
-
return void 0;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
function mountComponent(component, props, host, appContext) {
|
|
86
|
-
if (appContext) {
|
|
87
|
-
const vnode = h2(component, props);
|
|
88
|
-
vnode.appContext = appContext;
|
|
89
|
-
render(vnode, host);
|
|
90
|
-
return () => render(null, host);
|
|
91
|
-
}
|
|
92
|
-
const app = createApp({ render: () => h2(component, props) });
|
|
93
|
-
app.mount(host);
|
|
94
|
-
return () => app.unmount();
|
|
95
|
-
}
|
|
96
|
-
function vueCellRenderer(component, options) {
|
|
97
|
-
const appContext = resolveAppContext(options?.appContext);
|
|
98
|
-
return (params) => {
|
|
99
|
-
const host = document.createElement("div");
|
|
100
|
-
host.className = "mach-cell-vue";
|
|
101
|
-
host.style.width = "100%";
|
|
102
|
-
const unmount = mountComponent(component, params, host, appContext);
|
|
103
|
-
let destroyed = false;
|
|
104
|
-
return {
|
|
105
|
-
el: host,
|
|
106
|
-
destroy: () => {
|
|
107
|
-
if (destroyed) return;
|
|
108
|
-
destroyed = true;
|
|
109
|
-
window.setTimeout(unmount, 0);
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
function vueDetailRenderer(component, options) {
|
|
115
|
-
const appContext = resolveAppContext(options?.appContext);
|
|
116
|
-
return (params) => {
|
|
117
|
-
const host = document.createElement("div");
|
|
118
|
-
host.style.height = "100%";
|
|
119
|
-
const unmount = mountComponent(component, params, host, appContext);
|
|
120
|
-
let destroyed = false;
|
|
121
|
-
return {
|
|
122
|
-
el: host,
|
|
123
|
-
destroy: () => {
|
|
124
|
-
if (destroyed) return;
|
|
125
|
-
destroyed = true;
|
|
126
|
-
unmount();
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// src/useMachTable.ts
|
|
133
|
-
import { onScopeDispose, ref as ref2, shallowRef, watch as watch2 } from "vue";
|
|
134
|
-
function useMachTable() {
|
|
135
|
-
const componentRef = ref2(null);
|
|
136
|
-
const api = shallowRef(null);
|
|
137
|
-
const ready = shallowRef(false);
|
|
138
|
-
watch2(
|
|
139
|
-
componentRef,
|
|
140
|
-
(comp) => {
|
|
141
|
-
if (comp && typeof comp.getApi === "function") {
|
|
142
|
-
api.value = comp.getApi();
|
|
143
|
-
ready.value = api.value != null;
|
|
144
|
-
} else {
|
|
145
|
-
api.value = null;
|
|
146
|
-
ready.value = false;
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
{ flush: "post" }
|
|
150
|
-
);
|
|
151
|
-
onScopeDispose(() => {
|
|
152
|
-
componentRef.value = null;
|
|
153
|
-
api.value = null;
|
|
154
|
-
ready.value = false;
|
|
155
|
-
});
|
|
156
|
-
return { ref: componentRef, api, ready };
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// src/index.ts
|
|
160
|
-
export * from "@agile-team/mach-table";
|
|
161
|
-
export {
|
|
162
|
-
RobotGrid as MachTable,
|
|
163
|
-
RobotGrid,
|
|
164
|
-
useMachTable,
|
|
165
|
-
vueCellRenderer,
|
|
166
|
-
vueDetailRenderer
|
|
167
|
-
};
|
|
1
|
+
import{a as p}from"./chunk-ZUOKB5ID.js";import{a as G,b as U}from"./chunk-E7KTBMM6.js";import{a as R,b as v,c as x,d as S,e as C,f as P,g as A,h as E,i as D,j as n,k as O}from"./chunk-7U5IML5K.js";import{a as f,b as s,c as h,d as T,e as b,f as M,h as m,i as d,j as g,k as y}from"./chunk-ICHFPO5U.js";var i={install(a,e){p(a,n,e)}};import{onScopeDispose as V,ref as w,shallowRef as u,watch as _}from"vue";function Q(){let a=w(null),e=u(null),l=u(!1),t=0;return _(a,r=>{let c=++t;if(r&&typeof r.getApi=="function"){e.value=r.getApi(),l.value=!1;let o=e.value;o&&o.whenReady().then(()=>{t===c&&e.value===o&&!o.isDestroyed()&&(l.value=!0)})}else e.value=null,l.value=!1},{flush:"post"}),V(()=>{t++,a.value=null,e.value=null,l.value=!1}),{ref:a,api:e,ready:l}}export*from"@agile-team/mach-table";var z=i;export{M as MACH_TABLE_CONFIG_KEY,b as MACH_TABLE_DEFAULTS_KEY,n as MachTable,i as MachTablePlugin,O as RobotGrid,E as applyVueSlots,D as createVueSlotEnhancer,z as default,f as defineMachTableConfig,h as mergeMachTableConfig,s as normalizeMachTableConfig,m as provideMachTableConfig,d as provideMachTableDefaults,T as resolveMachTableGridOptions,Q as useMachTable,y as useMachTableConfig,g as useMachTableDefaults,G as useMachTableEditing,U as useMachTableQuery,C as vueCellEditorSlot,R as vueCellRenderer,x as vueCellSlotRenderer,v as vueDetailRenderer,P as vueDetailSlotRenderer,S as vueHeaderSlotRenderer,A as vueOverlaySlot};
|
|
168
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/RobotGrid.ts","../src/adapters.ts","../src/useMachTable.ts","../src/index.ts"],"sourcesContent":["import { defineComponent, h, onBeforeUnmount, onMounted, ref, watch, type DefineComponent } from \"vue\";\nimport {\n createGrid,\n DIRECT_GRID_OPTION_KEYS,\n EVENT_TYPES,\n GRID_OPTION_KEYS,\n GRID_OPTION_META\n} from \"@agile-team/mach-table\";\nimport type { GridApi, GridOptions } from \"@agile-team/mach-table\";\n\nexport type RobotGridVueProps<TData = any> = Omit<GridOptions<TData>, \"className\"> & {\n /** CSS class applied to the Vue host element. */\n className?: string;\n /** CSS class forwarded to MachTable's inner grid root. */\n gridClassName?: string;\n};\n\nconst ADAPTER_OPTION_KEYS = GRID_OPTION_KEYS.filter((key) => key !== \"className\");\nconst DIRECT_OPTION_KEYS = DIRECT_GRID_OPTION_KEYS.filter((key) => key !== \"className\");\n\nconst runtimeProps: Record<string, { type?: any; default: undefined }> = {};\nfor (const key of ADAPTER_OPTION_KEYS) {\n const kind = GRID_OPTION_META[key].kind;\n const type = kind === \"boolean\"\n ? Boolean\n : kind === \"number\"\n ? Number\n : kind === \"array\"\n ? Array\n : kind === \"function\"\n ? Function\n : kind === \"boolean-object\"\n ? [Boolean, Object]\n : kind === \"object\"\n ? Object\n : kind === \"string\"\n ? String\n : undefined;\n runtimeProps[key] = { ...(type ? { type } : {}), default: undefined };\n}\nruntimeProps.className = { type: String, default: undefined };\nruntimeProps.gridClassName = { type: String, default: undefined };\n\nfunction handlerNameOf(eventType: string): string {\n return \"on\" + eventType.charAt(0).toUpperCase() + eventType.slice(1);\n}\n\nconst RobotGridImpl = defineComponent({\n name: \"RobotGrid\",\n inheritAttrs: false,\n props: runtimeProps,\n emits: [...EVENT_TYPES] as unknown as string[],\n setup(rawProps, { expose, attrs, emit }) {\n const props = rawProps as Readonly<Record<string, any>>;\n const host = ref<HTMLDivElement | null>(null);\n let api: GridApi | null = null;\n\n onMounted(() => {\n if (!host.value) return;\n const options: Record<string, unknown> = {};\n for (const key of ADAPTER_OPTION_KEYS) {\n const value = props[key];\n if (value !== undefined) options[key] = value;\n }\n if (props.gridClassName !== undefined) options.className = props.gridClassName;\n for (const type of EVENT_TYPES) {\n options[handlerNameOf(type)] = (event: unknown) => emit(type, event);\n }\n api = createGrid(host.value, options as GridOptions<any>);\n });\n\n onBeforeUnmount(() => {\n api?.destroy();\n api = null;\n });\n\n watch(() => props.rowData, (value) => api?.setRowData(value));\n watch(() => props.columnDefs, (value) => api?.setColumnDefs(value));\n watch(() => props.quickFilterText, (value) => api?.setQuickFilter(value));\n watch(() => props.gridClassName, (value) => api?.updateOptions({ className: value }));\n\n watch(\n () => DIRECT_OPTION_KEYS.map((key) => props[key]),\n (values, previous) => {\n if (!api) return;\n const changed: Record<string, unknown> = {};\n values.forEach((value, index) => {\n if (!Object.is(value, previous[index])) changed[DIRECT_OPTION_KEYS[index]] = value;\n });\n if (Object.keys(changed).length > 0) api.updateOptions(changed as Partial<GridOptions<any>>);\n }\n );\n\n expose({ getApi: (): GridApi | null => api });\n\n return () => h(\"div\", {\n ...attrs,\n ref: host,\n class: [\"mach-vue-host\", props.className, attrs.class].filter(Boolean),\n style: attrs.style\n });\n }\n});\n\nexport const RobotGrid = RobotGridImpl as unknown as DefineComponent<RobotGridVueProps<any>>;\n","import { createApp, h, render, getCurrentInstance, type AppContext, type Component } from \"vue\";\nimport type { CellRendererParams, CellRendererFn, DetailRowRendererParams } from \"@agile-team/mach-table\";\n\nexport type VueCellRendererProps<TData = any, TValue = any> = CellRendererParams<TData, TValue>;\n\n/**\n * 解析适配器可用的 appContext:\n * 1. 显式传入优先;\n * 2. 否则在 <script setup> 内同步调用工厂时自动捕获宿主组件上下文\n * (使单元格/明细内的 naive、EP 组件继承 ConfigProvider 的主题与国际化)。\n */\nfunction resolveAppContext(explicit?: AppContext): AppContext | undefined {\n if (explicit) return explicit;\n try {\n return getCurrentInstance()?.appContext;\n } catch {\n return undefined;\n }\n}\n\nfunction mountComponent(\n component: Component,\n props: Record<string, any>,\n host: HTMLElement,\n appContext?: AppContext\n): () => void {\n if (appContext) {\n const vnode = h(component, props);\n vnode.appContext = appContext;\n render(vnode, host);\n return () => render(null, host);\n }\n const app = createApp({ render: () => h(component, props) });\n app.mount(host);\n return () => app.unmount();\n}\n\nexport function vueCellRenderer<TData = any, TValue = any>(\n component: Component,\n options?: { appContext?: AppContext }\n): CellRendererFn {\n const appContext = resolveAppContext(options?.appContext);\n return (params: CellRendererParams<TData, TValue>) => {\n const host = document.createElement(\"div\");\n host.className = \"mach-cell-vue\";\n host.style.width = \"100%\";\n const unmount = mountComponent(component, params as Record<string, any>, host, appContext);\n let destroyed = false;\n return {\n el: host,\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n window.setTimeout(unmount, 0);\n }\n };\n };\n}\n\nexport function vueDetailRenderer<TData = any>(\n component: Component,\n options?: { appContext?: AppContext }\n): (params: DetailRowRendererParams<TData>) => { el: HTMLElement; destroy?: () => void } {\n const appContext = resolveAppContext(options?.appContext);\n return (params) => {\n const host = document.createElement(\"div\");\n host.style.height = \"100%\";\n const unmount = mountComponent(component, params as Record<string, any>, host, appContext);\n let destroyed = false;\n return {\n el: host,\n destroy: () => {\n if (destroyed) return;\n destroyed = true;\n unmount();\n }\n };\n };\n}\n","import { onScopeDispose, ref, shallowRef, watch, type Ref, type ShallowRef } from \"vue\";\nimport type { GridApi } from \"@agile-team/mach-table\";\n\nexport interface UseMachTableReturn<TData = any> {\n ref: Ref<any>;\n api: ShallowRef<GridApi<TData> | null>;\n ready: ShallowRef<boolean>;\n}\n\nexport function useMachTable<TData = any>(): UseMachTableReturn<TData> {\n const componentRef = ref<any>(null);\n const api = shallowRef<GridApi<TData> | null>(null);\n const ready = shallowRef(false);\n\n watch(\n componentRef,\n (comp) => {\n if (comp && typeof comp.getApi === \"function\") {\n api.value = comp.getApi();\n ready.value = api.value != null;\n } else {\n api.value = null;\n ready.value = false;\n }\n },\n { flush: \"post\" }\n );\n\n onScopeDispose(() => {\n componentRef.value = null;\n api.value = null;\n ready.value = false;\n });\n\n return { ref: componentRef, api, ready };\n}\n","export { RobotGrid } from \"./RobotGrid\";\nexport { RobotGrid as MachTable } from \"./RobotGrid\";\nexport type { RobotGridVueProps } from \"./RobotGrid\";\nexport { vueCellRenderer, vueDetailRenderer } from \"./adapters\";\nexport { useMachTable } from \"./useMachTable\";\nexport type { UseMachTableReturn } from \"./useMachTable\";\nexport type { VueCellRendererProps } from \"./adapters\";\nexport * from \"@agile-team/mach-table\";\n"],"mappings":"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","names":["h","ref","watch"]}
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts","../src/useMachTable.ts","../src/index.ts"],"sourcesContent":["import type { App } from \"vue\";\nimport { MachTable } from \"./MachTable\";\nimport { registerGlobalMachTable, type MachTablePluginOptions } from \"./globalRegistration\";\n\nexport const MachTablePlugin = {\n install(app: App, options?: MachTablePluginOptions): void {\n registerGlobalMachTable(app, MachTable, options);\n }\n};\n\nexport type { MachTablePluginOptions } from \"./globalRegistration\";\n","import { onScopeDispose, ref, shallowRef, watch, type Ref, type ShallowRef } from \"vue\";\nimport type { GridApi } from \"@agile-team/mach-table\";\n\nexport interface UseMachTableReturn<TData = any> {\n ref: Ref<any>;\n api: ShallowRef<GridApi<TData> | null>;\n ready: ShallowRef<boolean>;\n}\n\nexport function useMachTable<TData = any>(): UseMachTableReturn<TData> {\n const componentRef = ref<any>(null);\n const api = shallowRef<GridApi<TData> | null>(null);\n const ready = shallowRef(false);\n let generation = 0;\n\n watch(\n componentRef,\n (comp) => {\n const currentGeneration = ++generation;\n if (comp && typeof comp.getApi === \"function\") {\n api.value = comp.getApi();\n ready.value = false;\n const currentApi = api.value;\n if (currentApi) {\n void currentApi.whenReady().then(() => {\n if (generation === currentGeneration && api.value === currentApi && !currentApi.isDestroyed()) {\n ready.value = true;\n }\n });\n }\n } else {\n api.value = null;\n ready.value = false;\n }\n },\n { flush: \"post\" }\n );\n\n onScopeDispose(() => {\n generation++;\n componentRef.value = null;\n api.value = null;\n ready.value = false;\n });\n\n return { ref: componentRef, api, ready };\n}\n","import { MachTable, RobotGrid } from \"./MachTable\";\nimport { MachTablePlugin } from \"./plugin\";\n\nexport { MachTable, RobotGrid };\nexport type { MachTableVueProps, RobotGridVueProps } from \"./MachTable\";\nexport {\n vueCellEditorSlot,\n vueCellRenderer,\n vueCellSlotRenderer,\n vueDetailRenderer,\n vueDetailSlotRenderer,\n vueHeaderSlotRenderer,\n vueOverlaySlot\n} from \"./adapters\";\nexport { useMachTable } from \"./useMachTable\";\nexport type { UseMachTableReturn } from \"./useMachTable\";\nexport { useMachTableEditing } from \"./useMachTableEditing\";\nexport type {\n UseMachTableEditingOptions,\n UseMachTableEditingReturn\n} from \"./useMachTableEditing\";\nexport { useMachTableQuery } from \"./useMachTableQuery\";\nexport type {\n MachTablePageRequest,\n MachTablePageResult,\n MachTableQuerySource,\n MachTableRemoteSelectionState,\n UseMachTableQueryOptions,\n UseMachTableQueryReturn\n} from \"./useMachTableQuery\";\nexport type { VueCellRendererProps } from \"./adapters\";\nexport type { VueCellEditorSlotProps } from \"./adapters\";\nexport { applyVueSlots, createVueSlotEnhancer } from \"./slots\";\nexport type { MachTableVueSlots } from \"./slots\";\nexport { MachTablePlugin } from \"./plugin\";\nexport type { MachTablePluginOptions } from \"./plugin\";\nexport {\n MACH_TABLE_CONFIG_KEY,\n MACH_TABLE_DEFAULTS_KEY,\n provideMachTableConfig,\n provideMachTableDefaults,\n useMachTableConfig,\n useMachTableDefaults\n} from \"./defaults\";\nexport type { MachTableConfigSource } from \"./defaults\";\nexport {\n defineMachTableConfig,\n mergeMachTableConfig,\n normalizeMachTableConfig,\n resolveMachTableGridOptions\n} from \"./configuration\";\nexport type {\n MachTableConfigWarning,\n MachTableOptionExplanation,\n MachTablePresetSelection,\n MachTableRuntimeConfig,\n ResolvedMachTableConfig,\n ResolvedMachTableGridOptions\n} from \"./configuration\";\nexport * from \"@agile-team/mach-table\";\n\nexport default MachTablePlugin;\n"],"mappings":"4SAIO,IAAMA,EAAkB,CAC7B,QAAQC,EAAUC,EAAwC,CACxDC,EAAwBF,EAAKG,EAAWF,CAAO,CACjD,CACF,ECRA,OAAS,kBAAAG,EAAgB,OAAAC,EAAK,cAAAC,EAAY,SAAAC,MAAwC,MAS3E,SAASC,GAAuD,CACrE,IAAMC,EAAeJ,EAAS,IAAI,EAC5BK,EAAMJ,EAAkC,IAAI,EAC5CK,EAAQL,EAAW,EAAK,EAC1BM,EAAa,EAEjB,OAAAL,EACEE,EACCI,GAAS,CACR,IAAMC,EAAoB,EAAEF,EAC5B,GAAIC,GAAQ,OAAOA,EAAK,QAAW,WAAY,CAC7CH,EAAI,MAAQG,EAAK,OAAO,EACxBF,EAAM,MAAQ,GACd,IAAMI,EAAaL,EAAI,MACnBK,GACGA,EAAW,UAAU,EAAE,KAAK,IAAM,CACjCH,IAAeE,GAAqBJ,EAAI,QAAUK,GAAc,CAACA,EAAW,YAAY,IAC1FJ,EAAM,MAAQ,GAElB,CAAC,CAEL,MACED,EAAI,MAAQ,KACZC,EAAM,MAAQ,EAElB,EACA,CAAE,MAAO,MAAO,CAClB,EAEAP,EAAe,IAAM,CACnBQ,IACAH,EAAa,MAAQ,KACrBC,EAAI,MAAQ,KACZC,EAAM,MAAQ,EAChB,CAAC,EAEM,CAAE,IAAKF,EAAc,IAAAC,EAAK,MAAAC,CAAM,CACzC,CCaA,WAAc,yBAEd,IAAOK,EAAQC","names":["MachTablePlugin","app","options","registerGlobalMachTable","MachTable","onScopeDispose","ref","shallowRef","watch","useMachTable","componentRef","api","ready","generation","comp","currentGeneration","currentApi","src_default","MachTablePlugin"]}
|