@agile-team/mach-table-vue 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -2
- package/dist/RobotGrid-2KWWM4C4.js +7 -0
- package/dist/RobotGrid-2KWWM4C4.js.map +1 -0
- package/dist/RobotGrid-LELHEO4W.cjs +7 -0
- package/dist/RobotGrid-LELHEO4W.cjs.map +1 -0
- package/dist/async.cjs +23 -0
- package/dist/async.cjs.map +1 -0
- package/dist/async.d.cts +21 -0
- package/dist/async.d.ts +21 -0
- package/dist/async.js +23 -0
- package/dist/async.js.map +1 -0
- package/dist/chunk-345ZEGIE.cjs +21 -0
- package/dist/chunk-345ZEGIE.cjs.map +1 -0
- package/dist/chunk-CHEQLQW4.js +78 -0
- package/dist/chunk-CHEQLQW4.js.map +1 -0
- package/dist/chunk-JJQDDIQU.js +21 -0
- package/dist/chunk-JJQDDIQU.js.map +1 -0
- package/dist/chunk-S3NR7DIG.cjs +78 -0
- package/dist/chunk-S3NR7DIG.cjs.map +1 -0
- package/dist/globalRegistration-CQ2dTNzy.d.cts +25 -0
- package/dist/globalRegistration-CQ2dTNzy.d.ts +25 -0
- package/dist/index.cjs +36 -120
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -10
- package/dist/index.d.ts +8 -10
- package/dist/index.js +19 -76
- package/dist/index.js.map +1 -1
- package/package.json +12 -2
package/README.md
CHANGED
|
@@ -6,15 +6,28 @@
|
|
|
6
6
|
|
|
7
7
|
Official Vue 3 adapter for MachTable. It provides `<MachTable>` / `<RobotGrid>`, `useMachTable`, Vue cell/detail renderer factories, reactive option updates and automatic lifecycle cleanup.
|
|
8
8
|
|
|
9
|
+
## Install
|
|
10
|
+
|
|
9
11
|
```bash
|
|
10
12
|
pnpm add @agile-team/mach-table-vue
|
|
11
13
|
```
|
|
12
14
|
|
|
15
|
+
Import the stylesheet once from your application entry:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import "@agile-team/mach-table-vue/styles.css";
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Integration modes
|
|
22
|
+
|
|
23
|
+
### Local, route-level import
|
|
24
|
+
|
|
25
|
+
Best when only a few routes use a grid. A lazy-loaded route naturally keeps MachTable in that route's chunk.
|
|
26
|
+
|
|
13
27
|
```vue
|
|
14
28
|
<script setup lang="ts">
|
|
15
29
|
import { ref } from "vue";
|
|
16
30
|
import { MachTable, useMachTable, type ColDef } from "@agile-team/mach-table-vue";
|
|
17
|
-
import "@agile-team/mach-table-vue/styles.css";
|
|
18
31
|
|
|
19
32
|
interface Row { id: string; name: string }
|
|
20
33
|
const grid = useMachTable<Row>();
|
|
@@ -35,7 +48,47 @@ const columns: ColDef<Row>[] = [{ field: "name", headerName: "Name", flex: 1 }];
|
|
|
35
48
|
</template>
|
|
36
49
|
```
|
|
37
50
|
|
|
38
|
-
|
|
51
|
+
### Global synchronous plugin
|
|
52
|
+
|
|
53
|
+
Best when most screens render tables. Components are available in every template without page-level runtime imports.
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
// main.ts
|
|
57
|
+
import { createApp } from "vue";
|
|
58
|
+
import { MachTablePlugin } from "@agile-team/mach-table-vue";
|
|
59
|
+
import "@agile-team/mach-table-vue/styles.css";
|
|
60
|
+
import App from "./App.vue";
|
|
61
|
+
|
|
62
|
+
createApp(App).use(MachTablePlugin).mount("#app");
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Global async plugin
|
|
66
|
+
|
|
67
|
+
Best for large admin or low-code applications. The plugin is registered at startup, while the component and Core stay in a separate chunk until the first `<MachTable>` is rendered.
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
// main.ts
|
|
71
|
+
import { createApp } from "vue";
|
|
72
|
+
import AsyncMachTablePlugin, { preloadMachTable } from "@agile-team/mach-table-vue/async";
|
|
73
|
+
import "@agile-team/mach-table-vue/styles.css";
|
|
74
|
+
import App from "./App.vue";
|
|
75
|
+
|
|
76
|
+
createApp(App).use(AsyncMachTablePlugin).mount("#app");
|
|
77
|
+
|
|
78
|
+
// Optional route-hover prefetch; dynamic imports are cached and idempotent.
|
|
79
|
+
void preloadMachTable();
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
After either global plugin is installed, pages can use `<MachTable>` or `<RobotGrid>` directly. Global component types are included for Volar and `vue-tsc`. A custom name and legacy alias policy are also supported:
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
app.use(MachTablePlugin, {
|
|
86
|
+
componentName: "BusinessTable",
|
|
87
|
+
registerRobotGridAlias: false
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The adapter installs the matching `@agile-team/mach-table` core automatically and re-exports its complete API and types. Only `vue >= 3.2` remains a peer dependency supplied by the host application. Existing local imports remain fully supported.
|
|
39
92
|
|
|
40
93
|
Documentation: [Vue guide](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/vue.md) · [Enterprise integration](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/enterprise-integration.md) · [Element Plus](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/element-plus.md) · [Naive UI](https://github.com/ChenyCHENYU/MachTable/blob/main/docs/guide/naive-ui.md)
|
|
41
94
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\RobotGrid-LELHEO4W.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,gDAAC","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\RobotGrid-LELHEO4W.cjs"}
|
package/dist/async.cjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
2
|
+
|
|
3
|
+
var _chunk345ZEGIEcjs = require('./chunk-345ZEGIE.cjs');
|
|
4
|
+
|
|
5
|
+
// src/async.ts
|
|
6
|
+
var _vue = require('vue');
|
|
7
|
+
var preloadMachTable = () => Promise.resolve().then(() => _interopRequireWildcard(require("./RobotGrid-LELHEO4W.cjs"))).then(({ RobotGrid }) => RobotGrid);
|
|
8
|
+
var AsyncMachTable = _vue.defineAsyncComponent.call(void 0, {
|
|
9
|
+
loader: preloadMachTable
|
|
10
|
+
});
|
|
11
|
+
var AsyncMachTablePlugin = Object.freeze({
|
|
12
|
+
install(app, options = {}) {
|
|
13
|
+
_chunk345ZEGIEcjs.registerGlobalMachTable.call(void 0, app, AsyncMachTable, options);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
var async_default = AsyncMachTablePlugin;
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
exports.AsyncMachTable = AsyncMachTable; exports.AsyncMachTablePlugin = AsyncMachTablePlugin; exports.default = async_default; exports.preloadMachTable = preloadMachTable;
|
|
23
|
+
//# sourceMappingURL=async.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\async.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;AACA,0BAA0C;AAC1C,IAAI,iBAAiB,EAAE,CAAC,EAAE,GAAG,4DAAM,CAAC,0BAA0B,GAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,SAAS,CAAC;AAClG,IAAI,eAAe,EAAE,uCAAoB;AACzC,EAAE,MAAM,EAAE;AACV,CAAC,CAAC;AACF,IAAI,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC;AACzC,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE;AAC7B,IAAI,uDAAuB,GAAI,EAAE,cAAc,EAAE,OAAO,CAAC;AACzD,EAAE;AACF,CAAC,CAAC;AACF,IAAI,cAAc,EAAE,oBAAoB;AACxC;AACE;AACA;AACA;AACA;AACF,2KAAC","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\async.cjs","sourcesContent":[null]}
|
package/dist/async.d.cts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { App } from 'vue';
|
|
3
|
+
import { R as RobotGridVueProps, M as MachTablePluginOptions } from './globalRegistration-CQ2dTNzy.cjs';
|
|
4
|
+
import '@agile-team/mach-table';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Starts loading the Vue adapter ahead of first render. The browser and bundler
|
|
8
|
+
* cache the promise, so calling this on route hover is safe and idempotent.
|
|
9
|
+
*/
|
|
10
|
+
declare const preloadMachTable: () => Promise<vue.DefineComponent<RobotGridVueProps<any>>>;
|
|
11
|
+
/** Async global component used by AsyncMachTablePlugin. */
|
|
12
|
+
declare const AsyncMachTable: vue.DefineComponent<RobotGridVueProps<any>>;
|
|
13
|
+
/**
|
|
14
|
+
* Registers `<MachTable>` globally while keeping the component and Core in a
|
|
15
|
+
* separate chunk until the first table is rendered.
|
|
16
|
+
*/
|
|
17
|
+
declare const AsyncMachTablePlugin: Readonly<{
|
|
18
|
+
install(app: App, options?: MachTablePluginOptions): void;
|
|
19
|
+
}>;
|
|
20
|
+
|
|
21
|
+
export { AsyncMachTable, AsyncMachTablePlugin, MachTablePluginOptions, AsyncMachTablePlugin as default, preloadMachTable };
|
package/dist/async.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { App } from 'vue';
|
|
3
|
+
import { R as RobotGridVueProps, M as MachTablePluginOptions } from './globalRegistration-CQ2dTNzy.js';
|
|
4
|
+
import '@agile-team/mach-table';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Starts loading the Vue adapter ahead of first render. The browser and bundler
|
|
8
|
+
* cache the promise, so calling this on route hover is safe and idempotent.
|
|
9
|
+
*/
|
|
10
|
+
declare const preloadMachTable: () => Promise<vue.DefineComponent<RobotGridVueProps<any>>>;
|
|
11
|
+
/** Async global component used by AsyncMachTablePlugin. */
|
|
12
|
+
declare const AsyncMachTable: vue.DefineComponent<RobotGridVueProps<any>>;
|
|
13
|
+
/**
|
|
14
|
+
* Registers `<MachTable>` globally while keeping the component and Core in a
|
|
15
|
+
* separate chunk until the first table is rendered.
|
|
16
|
+
*/
|
|
17
|
+
declare const AsyncMachTablePlugin: Readonly<{
|
|
18
|
+
install(app: App, options?: MachTablePluginOptions): void;
|
|
19
|
+
}>;
|
|
20
|
+
|
|
21
|
+
export { AsyncMachTable, AsyncMachTablePlugin, MachTablePluginOptions, AsyncMachTablePlugin as default, preloadMachTable };
|
package/dist/async.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
registerGlobalMachTable
|
|
3
|
+
} from "./chunk-JJQDDIQU.js";
|
|
4
|
+
|
|
5
|
+
// src/async.ts
|
|
6
|
+
import { defineAsyncComponent } from "vue";
|
|
7
|
+
var preloadMachTable = () => import("./RobotGrid-2KWWM4C4.js").then(({ RobotGrid }) => RobotGrid);
|
|
8
|
+
var AsyncMachTable = defineAsyncComponent({
|
|
9
|
+
loader: preloadMachTable
|
|
10
|
+
});
|
|
11
|
+
var AsyncMachTablePlugin = Object.freeze({
|
|
12
|
+
install(app, options = {}) {
|
|
13
|
+
registerGlobalMachTable(app, AsyncMachTable, options);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
var async_default = AsyncMachTablePlugin;
|
|
17
|
+
export {
|
|
18
|
+
AsyncMachTable,
|
|
19
|
+
AsyncMachTablePlugin,
|
|
20
|
+
async_default as default,
|
|
21
|
+
preloadMachTable
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/async.ts"],"sourcesContent":["import { defineAsyncComponent, type App } from \"vue\";\nimport { registerGlobalMachTable, type MachTablePluginOptions } from \"./globalRegistration\";\n\n/**\n * Starts loading the Vue adapter ahead of first render. The browser and bundler\n * cache the promise, so calling this on route hover is safe and idempotent.\n */\nexport const preloadMachTable = () => import(\"./RobotGrid\").then(({ RobotGrid }) => RobotGrid);\n\n/** Async global component used by AsyncMachTablePlugin. */\nexport const AsyncMachTable = defineAsyncComponent({\n loader: preloadMachTable\n});\n\n/**\n * Registers `<MachTable>` globally while keeping the component and Core in a\n * separate chunk until the first table is rendered.\n */\nexport const AsyncMachTablePlugin = Object.freeze({\n install(app: App, options: MachTablePluginOptions = {}): void {\n registerGlobalMachTable(app, AsyncMachTable, options);\n }\n});\n\nexport type { MachTablePluginOptions } from \"./globalRegistration\";\nexport default AsyncMachTablePlugin;\n"],"mappings":";;;;;AAAA,SAAS,4BAAsC;AAOxC,IAAM,mBAAmB,MAAM,OAAO,yBAAa,EAAE,KAAK,CAAC,EAAE,UAAU,MAAM,SAAS;AAGtF,IAAM,iBAAiB,qBAAqB;AAAA,EACjD,QAAQ;AACV,CAAC;AAMM,IAAM,uBAAuB,OAAO,OAAO;AAAA,EAChD,QAAQ,KAAU,UAAkC,CAAC,GAAS;AAC5D,4BAAwB,KAAK,gBAAgB,OAAO;AAAA,EACtD;AACF,CAAC;AAGD,IAAO,gBAAQ;","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/globalRegistration.ts
|
|
2
|
+
function registerGlobalMachTable(app, component, options = {}) {
|
|
3
|
+
const componentName = _nullishCoalesce(options.componentName, () => ( "MachTable"));
|
|
4
|
+
if (!componentName.trim()) {
|
|
5
|
+
throw new Error("[MachTable] Global componentName must not be empty.");
|
|
6
|
+
}
|
|
7
|
+
const names = /* @__PURE__ */ new Set([componentName]);
|
|
8
|
+
if (options.registerRobotGridAlias !== false) names.add("RobotGrid");
|
|
9
|
+
for (const name of names) {
|
|
10
|
+
const existing = app.component(name);
|
|
11
|
+
if (existing && existing !== component) {
|
|
12
|
+
throw new Error(`[MachTable] Cannot register global component "${name}" because that name is already in use.`);
|
|
13
|
+
}
|
|
14
|
+
if (!existing) app.component(name, component);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
exports.registerGlobalMachTable = registerGlobalMachTable;
|
|
21
|
+
//# sourceMappingURL=chunk-345ZEGIE.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-345ZEGIE.cjs"],"names":[],"mappings":"AAAA;AACA,SAAS,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE;AAC/D,EAAE,MAAM,cAAc,mBAAE,OAAO,CAAC,aAAc,UAAG,aAAW;AAC5D,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE;AAC7B,IAAI,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;AAC1E,EAAE;AACF,EAAE,MAAM,MAAM,kBAAkB,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AACxD,EAAE,GAAG,CAAC,OAAO,CAAC,uBAAuB,IAAI,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;AACtE,EAAE,IAAI,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE;AAC5B,IAAI,MAAM,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AACxC,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS,IAAI,SAAS,EAAE;AAC5C,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,8CAA8C,EAAE,IAAI,CAAC,sCAAsC,CAAC,CAAC;AACpH,IAAI;AACJ,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;AACjD,EAAE;AACF;AACA;AACA;AACE;AACF,0DAAC","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-345ZEGIE.cjs","sourcesContent":[null]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// src/RobotGrid.ts
|
|
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
|
+
export {
|
|
76
|
+
RobotGrid
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=chunk-CHEQLQW4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/RobotGrid.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"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/globalRegistration.ts
|
|
2
|
+
function registerGlobalMachTable(app, component, options = {}) {
|
|
3
|
+
const componentName = options.componentName ?? "MachTable";
|
|
4
|
+
if (!componentName.trim()) {
|
|
5
|
+
throw new Error("[MachTable] Global componentName must not be empty.");
|
|
6
|
+
}
|
|
7
|
+
const names = /* @__PURE__ */ new Set([componentName]);
|
|
8
|
+
if (options.registerRobotGridAlias !== false) names.add("RobotGrid");
|
|
9
|
+
for (const name of names) {
|
|
10
|
+
const existing = app.component(name);
|
|
11
|
+
if (existing && existing !== component) {
|
|
12
|
+
throw new Error(`[MachTable] Cannot register global component "${name}" because that name is already in use.`);
|
|
13
|
+
}
|
|
14
|
+
if (!existing) app.component(name, component);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
registerGlobalMachTable
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=chunk-JJQDDIQU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/globalRegistration.ts"],"sourcesContent":["import type { App, Component } from \"vue\";\nimport type { RobotGrid } from \"./RobotGrid\";\n\ndeclare module \"vue\" {\n export interface GlobalComponents {\n MachTable: typeof RobotGrid;\n RobotGrid: typeof RobotGrid;\n }\n}\n\nexport interface MachTablePluginOptions {\n /** Global component name. Defaults to `MachTable`. */\n componentName?: string;\n /** Also register the backwards-compatible `RobotGrid` name. Defaults to true. */\n registerRobotGridAlias?: boolean;\n}\n\nexport function registerGlobalMachTable(\n app: App,\n component: Component,\n options: MachTablePluginOptions = {}\n): void {\n const componentName = options.componentName ?? \"MachTable\";\n if (!componentName.trim()) {\n throw new Error(\"[MachTable] Global componentName must not be empty.\");\n }\n\n const names = new Set([componentName]);\n if (options.registerRobotGridAlias !== false) names.add(\"RobotGrid\");\n\n for (const name of names) {\n const existing = app.component(name);\n if (existing && existing !== component) {\n throw new Error(`[MachTable] Cannot register global component \\\"${name}\\\" because that name is already in use.`);\n }\n if (!existing) app.component(name, component);\n }\n}\n"],"mappings":";AAiBO,SAAS,wBACd,KACA,WACA,UAAkC,CAAC,GAC7B;AACN,QAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,MAAI,CAAC,cAAc,KAAK,GAAG;AACzB,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AAEA,QAAM,QAAQ,oBAAI,IAAI,CAAC,aAAa,CAAC;AACrC,MAAI,QAAQ,2BAA2B,MAAO,OAAM,IAAI,WAAW;AAEnE,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,IAAI,UAAU,IAAI;AACnC,QAAI,YAAY,aAAa,WAAW;AACtC,YAAM,IAAI,MAAM,iDAAkD,IAAI,wCAAyC;AAAA,IACjH;AACA,QAAI,CAAC,SAAU,KAAI,UAAU,MAAM,SAAS;AAAA,EAC9C;AACF;","names":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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; }// src/RobotGrid.ts
|
|
2
|
+
var _vue = require('vue');
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _machtable = require('@agile-team/mach-table');
|
|
10
|
+
var ADAPTER_OPTION_KEYS = _machtable.GRID_OPTION_KEYS.filter((key) => key !== "className");
|
|
11
|
+
var DIRECT_OPTION_KEYS = _machtable.DIRECT_GRID_OPTION_KEYS.filter((key) => key !== "className");
|
|
12
|
+
var runtimeProps = {};
|
|
13
|
+
for (const key of ADAPTER_OPTION_KEYS) {
|
|
14
|
+
const kind = _machtable.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 = _vue.defineComponent.call(void 0, {
|
|
24
|
+
name: "RobotGrid",
|
|
25
|
+
inheritAttrs: false,
|
|
26
|
+
props: runtimeProps,
|
|
27
|
+
emits: [..._machtable.EVENT_TYPES],
|
|
28
|
+
setup(rawProps, { expose, attrs, emit }) {
|
|
29
|
+
const props = rawProps;
|
|
30
|
+
const host = _vue.ref.call(void 0, null);
|
|
31
|
+
let api = null;
|
|
32
|
+
_vue.onMounted.call(void 0, () => {
|
|
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 _machtable.EVENT_TYPES) {
|
|
41
|
+
options[handlerNameOf(type)] = (event) => emit(type, event);
|
|
42
|
+
}
|
|
43
|
+
api = _machtable.createGrid.call(void 0, host.value, options);
|
|
44
|
+
});
|
|
45
|
+
_vue.onBeforeUnmount.call(void 0, () => {
|
|
46
|
+
_optionalChain([api, 'optionalAccess', _ => _.destroy, 'call', _2 => _2()]);
|
|
47
|
+
api = null;
|
|
48
|
+
});
|
|
49
|
+
_vue.watch.call(void 0, () => props.rowData, (value) => _optionalChain([api, 'optionalAccess', _3 => _3.setRowData, 'call', _4 => _4(value)]));
|
|
50
|
+
_vue.watch.call(void 0, () => props.columnDefs, (value) => _optionalChain([api, 'optionalAccess', _5 => _5.setColumnDefs, 'call', _6 => _6(value)]));
|
|
51
|
+
_vue.watch.call(void 0, () => props.quickFilterText, (value) => _optionalChain([api, 'optionalAccess', _7 => _7.setQuickFilter, 'call', _8 => _8(value)]));
|
|
52
|
+
_vue.watch.call(void 0, () => props.gridClassName, (value) => _optionalChain([api, 'optionalAccess', _9 => _9.updateOptions, 'call', _10 => _10({ className: value })]));
|
|
53
|
+
_vue.watch.call(void 0,
|
|
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 () => _vue.h.call(void 0, "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
|
+
|
|
76
|
+
|
|
77
|
+
exports.RobotGrid = RobotGrid;
|
|
78
|
+
//# sourceMappingURL=chunk-S3NR7DIG.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-S3NR7DIG.cjs"],"names":[],"mappings":"AAAA;AACA,0BAAgF;AAChF;AACE;AACA;AACA;AACA;AACA;AACF,mDAA+B;AAC/B,IAAI,oBAAoB,EAAE,2BAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,WAAW,CAAC;AAC/E,IAAI,mBAAmB,EAAE,kCAAuB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,WAAW,CAAC;AACrF,IAAI,aAAa,EAAE,CAAC,CAAC;AACrB,IAAI,CAAC,MAAM,IAAI,GAAG,mBAAmB,EAAE;AACvC,EAAE,MAAM,KAAK,EAAE,2BAAgB,CAAC,GAAG,CAAC,CAAC,IAAI;AACzC,EAAE,MAAM,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,QAAQ,EAAE,KAAK,IAAI,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,IAAI,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC;AACvP,EAAE,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAClE;AACA,YAAY,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC1D,YAAY,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC9D,SAAS,aAAa,CAAC,SAAS,EAAE;AAClC,EAAE,OAAO,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACtE;AACA,IAAI,cAAc,EAAE,kCAAe;AACnC,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,KAAK,EAAE,YAAY;AACrB,EAAE,KAAK,EAAE,CAAC,GAAG,sBAAW,CAAC;AACzB,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;AAC3C,IAAI,MAAM,MAAM,EAAE,QAAQ;AAC1B,IAAI,MAAM,KAAK,EAAE,sBAAG,IAAK,CAAC;AAC1B,IAAI,IAAI,IAAI,EAAE,IAAI;AAClB,IAAI,4BAAS,CAAE,EAAE,GAAG;AACpB,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;AAC7B,MAAM,MAAM,QAAQ,EAAE,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,MAAM,IAAI,GAAG,mBAAmB,EAAE;AAC7C,QAAQ,MAAM,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;AAChC,QAAQ,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK;AAClD,MAAM;AACN,MAAM,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa;AACjF,MAAM,IAAI,CAAC,MAAM,KAAK,GAAG,sBAAW,EAAE;AACtC,QAAQ,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACnE,MAAM;AACN,MAAM,IAAI,EAAE,mCAAU,IAAK,CAAC,KAAK,EAAE,OAAO,CAAC;AAC3C,IAAI,CAAC,CAAC;AACN,IAAI,kCAAe,CAAE,EAAE,GAAG;AAC1B,sBAAM,GAAG,2BAAE,OAAO,mBAAC,GAAC;AACpB,MAAM,IAAI,EAAE,IAAI;AAChB,IAAI,CAAC,CAAC;AACN,IAAI,wBAAK,CAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAG,GAAG,6BAAE,UAAU,mBAAC,KAAK,GAAC,CAAC;AACjE,IAAI,wBAAK,CAAE,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,mBAAG,GAAG,6BAAE,aAAa,mBAAC,KAAK,GAAC,CAAC;AACvE,IAAI,wBAAK,CAAE,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAG,GAAG,6BAAE,cAAc,mBAAC,KAAK,GAAC,CAAC;AAC7E,IAAI,wBAAK,CAAE,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,mBAAG,GAAG,6BAAE,aAAa,qBAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAC,CAAC;AACzF,IAAI,wBAAK;AACT,MAAM,CAAC,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG;AAC5B,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM;AACxB,QAAQ,MAAM,QAAQ,EAAE,CAAC,CAAC;AAC1B,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG;AACzC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK;AAC5F,QAAQ,CAAC,CAAC;AACV,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC;AACvE,MAAM;AACN,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACjC,IAAI,OAAO,CAAC,EAAE,GAAG,oBAAC,KAAM,EAAE;AAC1B,MAAM,GAAG,KAAK;AACd,MAAM,GAAG,EAAE,IAAI;AACf,MAAM,KAAK,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5E,MAAM,KAAK,EAAE,KAAK,CAAC;AACnB,IAAI,CAAC,CAAC;AACN,EAAE;AACF,CAAC,CAAC;AACF,IAAI,UAAU,EAAE,aAAa;AAC7B;AACA;AACE;AACF,8BAAC","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\chunk-S3NR7DIG.cjs","sourcesContent":[null]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DefineComponent } from 'vue';
|
|
2
|
+
import { GridOptions } from '@agile-team/mach-table';
|
|
3
|
+
|
|
4
|
+
type RobotGridVueProps<TData = any> = Omit<GridOptions<TData>, "className"> & {
|
|
5
|
+
/** CSS class applied to the Vue host element. */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** CSS class forwarded to MachTable's inner grid root. */
|
|
8
|
+
gridClassName?: string;
|
|
9
|
+
};
|
|
10
|
+
declare const RobotGrid: DefineComponent<RobotGridVueProps<any>>;
|
|
11
|
+
|
|
12
|
+
declare module "vue" {
|
|
13
|
+
interface GlobalComponents {
|
|
14
|
+
MachTable: typeof RobotGrid;
|
|
15
|
+
RobotGrid: typeof RobotGrid;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
interface MachTablePluginOptions {
|
|
19
|
+
/** Global component name. Defaults to `MachTable`. */
|
|
20
|
+
componentName?: string;
|
|
21
|
+
/** Also register the backwards-compatible `RobotGrid` name. Defaults to true. */
|
|
22
|
+
registerRobotGridAlias?: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { type MachTablePluginOptions as M, type RobotGridVueProps as R, RobotGrid as a };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DefineComponent } from 'vue';
|
|
2
|
+
import { GridOptions } from '@agile-team/mach-table';
|
|
3
|
+
|
|
4
|
+
type RobotGridVueProps<TData = any> = Omit<GridOptions<TData>, "className"> & {
|
|
5
|
+
/** CSS class applied to the Vue host element. */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** CSS class forwarded to MachTable's inner grid root. */
|
|
8
|
+
gridClassName?: string;
|
|
9
|
+
};
|
|
10
|
+
declare const RobotGrid: DefineComponent<RobotGridVueProps<any>>;
|
|
11
|
+
|
|
12
|
+
declare module "vue" {
|
|
13
|
+
interface GlobalComponents {
|
|
14
|
+
MachTable: typeof RobotGrid;
|
|
15
|
+
RobotGrid: typeof RobotGrid;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
interface MachTablePluginOptions {
|
|
19
|
+
/** Global component name. Defaults to `MachTable`. */
|
|
20
|
+
componentName?: string;
|
|
21
|
+
/** Also register the backwards-compatible `RobotGrid` name. Defaults to true. */
|
|
22
|
+
registerRobotGridAlias?: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { type MachTablePluginOptions as M, type RobotGridVueProps as R, RobotGrid as a };
|
package/dist/index.cjs
CHANGED
|
@@ -1,125 +1,40 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); } 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; }
|
|
20
2
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
module.exports = __toCommonJS(index_exports);
|
|
31
|
-
|
|
32
|
-
// src/RobotGrid.ts
|
|
33
|
-
var import_vue = require("vue");
|
|
34
|
-
var import_mach_table = require("@agile-team/mach-table");
|
|
35
|
-
var ADAPTER_OPTION_KEYS = import_mach_table.GRID_OPTION_KEYS.filter((key) => key !== "className");
|
|
36
|
-
var DIRECT_OPTION_KEYS = import_mach_table.DIRECT_GRID_OPTION_KEYS.filter((key) => key !== "className");
|
|
37
|
-
var runtimeProps = {};
|
|
38
|
-
for (const key of ADAPTER_OPTION_KEYS) {
|
|
39
|
-
const kind = import_mach_table.GRID_OPTION_META[key].kind;
|
|
40
|
-
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;
|
|
41
|
-
runtimeProps[key] = { ...type ? { type } : {}, default: void 0 };
|
|
42
|
-
}
|
|
43
|
-
runtimeProps.className = { type: String, default: void 0 };
|
|
44
|
-
runtimeProps.gridClassName = { type: String, default: void 0 };
|
|
45
|
-
function handlerNameOf(eventType) {
|
|
46
|
-
return "on" + eventType.charAt(0).toUpperCase() + eventType.slice(1);
|
|
47
|
-
}
|
|
48
|
-
var RobotGridImpl = (0, import_vue.defineComponent)({
|
|
49
|
-
name: "RobotGrid",
|
|
50
|
-
inheritAttrs: false,
|
|
51
|
-
props: runtimeProps,
|
|
52
|
-
emits: [...import_mach_table.EVENT_TYPES],
|
|
53
|
-
setup(rawProps, { expose, attrs, emit }) {
|
|
54
|
-
const props = rawProps;
|
|
55
|
-
const host = (0, import_vue.ref)(null);
|
|
56
|
-
let api = null;
|
|
57
|
-
(0, import_vue.onMounted)(() => {
|
|
58
|
-
if (!host.value) return;
|
|
59
|
-
const options = {};
|
|
60
|
-
for (const key of ADAPTER_OPTION_KEYS) {
|
|
61
|
-
const value = props[key];
|
|
62
|
-
if (value !== void 0) options[key] = value;
|
|
63
|
-
}
|
|
64
|
-
if (props.gridClassName !== void 0) options.className = props.gridClassName;
|
|
65
|
-
for (const type of import_mach_table.EVENT_TYPES) {
|
|
66
|
-
options[handlerNameOf(type)] = (event) => emit(type, event);
|
|
67
|
-
}
|
|
68
|
-
api = (0, import_mach_table.createGrid)(host.value, options);
|
|
69
|
-
});
|
|
70
|
-
(0, import_vue.onBeforeUnmount)(() => {
|
|
71
|
-
api?.destroy();
|
|
72
|
-
api = null;
|
|
73
|
-
});
|
|
74
|
-
(0, import_vue.watch)(() => props.rowData, (value) => api?.setRowData(value));
|
|
75
|
-
(0, import_vue.watch)(() => props.columnDefs, (value) => api?.setColumnDefs(value));
|
|
76
|
-
(0, import_vue.watch)(() => props.quickFilterText, (value) => api?.setQuickFilter(value));
|
|
77
|
-
(0, import_vue.watch)(() => props.gridClassName, (value) => api?.updateOptions({ className: value }));
|
|
78
|
-
(0, import_vue.watch)(
|
|
79
|
-
() => DIRECT_OPTION_KEYS.map((key) => props[key]),
|
|
80
|
-
(values, previous) => {
|
|
81
|
-
if (!api) return;
|
|
82
|
-
const changed = {};
|
|
83
|
-
values.forEach((value, index) => {
|
|
84
|
-
if (!Object.is(value, previous[index])) changed[DIRECT_OPTION_KEYS[index]] = value;
|
|
85
|
-
});
|
|
86
|
-
if (Object.keys(changed).length > 0) api.updateOptions(changed);
|
|
87
|
-
}
|
|
88
|
-
);
|
|
89
|
-
expose({ getApi: () => api });
|
|
90
|
-
return () => (0, import_vue.h)("div", {
|
|
91
|
-
...attrs,
|
|
92
|
-
ref: host,
|
|
93
|
-
class: ["mach-vue-host", props.className, attrs.class].filter(Boolean),
|
|
94
|
-
style: attrs.style
|
|
95
|
-
});
|
|
3
|
+
var _chunk345ZEGIEcjs = require('./chunk-345ZEGIE.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkS3NR7DIGcjs = require('./chunk-S3NR7DIG.cjs');
|
|
7
|
+
|
|
8
|
+
// src/plugin.ts
|
|
9
|
+
var MachTablePlugin = Object.freeze({
|
|
10
|
+
install(app, options = {}) {
|
|
11
|
+
_chunk345ZEGIEcjs.registerGlobalMachTable.call(void 0, app, _chunkS3NR7DIGcjs.RobotGrid, options);
|
|
96
12
|
}
|
|
97
13
|
});
|
|
98
|
-
var RobotGrid = RobotGridImpl;
|
|
99
14
|
|
|
100
15
|
// src/adapters.ts
|
|
101
|
-
var
|
|
16
|
+
var _vue = require('vue');
|
|
102
17
|
function resolveAppContext(explicit) {
|
|
103
18
|
if (explicit) return explicit;
|
|
104
19
|
try {
|
|
105
|
-
return (0,
|
|
106
|
-
} catch {
|
|
20
|
+
return _optionalChain([_vue.getCurrentInstance.call(void 0, ), 'optionalAccess', _ => _.appContext]);
|
|
21
|
+
} catch (e) {
|
|
107
22
|
return void 0;
|
|
108
23
|
}
|
|
109
24
|
}
|
|
110
25
|
function mountComponent(component, props, host, appContext) {
|
|
111
26
|
if (appContext) {
|
|
112
|
-
const vnode = (0,
|
|
27
|
+
const vnode = _vue.h.call(void 0, component, props);
|
|
113
28
|
vnode.appContext = appContext;
|
|
114
|
-
(0,
|
|
115
|
-
return () => (0,
|
|
29
|
+
_vue.render.call(void 0, vnode, host);
|
|
30
|
+
return () => _vue.render.call(void 0, null, host);
|
|
116
31
|
}
|
|
117
|
-
const app = (0,
|
|
32
|
+
const app = _vue.createApp.call(void 0, { render: () => _vue.h.call(void 0, component, props) });
|
|
118
33
|
app.mount(host);
|
|
119
34
|
return () => app.unmount();
|
|
120
35
|
}
|
|
121
36
|
function vueCellRenderer(component, options) {
|
|
122
|
-
const appContext = resolveAppContext(options
|
|
37
|
+
const appContext = resolveAppContext(_optionalChain([options, 'optionalAccess', _2 => _2.appContext]));
|
|
123
38
|
return (params) => {
|
|
124
39
|
const host = document.createElement("div");
|
|
125
40
|
host.className = "mach-cell-vue";
|
|
@@ -137,7 +52,7 @@ function vueCellRenderer(component, options) {
|
|
|
137
52
|
};
|
|
138
53
|
}
|
|
139
54
|
function vueDetailRenderer(component, options) {
|
|
140
|
-
const appContext = resolveAppContext(options
|
|
55
|
+
const appContext = resolveAppContext(_optionalChain([options, 'optionalAccess', _3 => _3.appContext]));
|
|
141
56
|
return (params) => {
|
|
142
57
|
const host = document.createElement("div");
|
|
143
58
|
host.style.height = "100%";
|
|
@@ -155,12 +70,12 @@ function vueDetailRenderer(component, options) {
|
|
|
155
70
|
}
|
|
156
71
|
|
|
157
72
|
// src/useMachTable.ts
|
|
158
|
-
|
|
73
|
+
|
|
159
74
|
function useMachTable() {
|
|
160
|
-
const componentRef = (0,
|
|
161
|
-
const api = (0,
|
|
162
|
-
const ready = (0,
|
|
163
|
-
(0,
|
|
75
|
+
const componentRef = _vue.ref.call(void 0, null);
|
|
76
|
+
const api = _vue.shallowRef.call(void 0, null);
|
|
77
|
+
const ready = _vue.shallowRef.call(void 0, false);
|
|
78
|
+
_vue.watch.call(void 0,
|
|
164
79
|
componentRef,
|
|
165
80
|
(comp) => {
|
|
166
81
|
if (comp && typeof comp.getApi === "function") {
|
|
@@ -173,7 +88,7 @@ function useMachTable() {
|
|
|
173
88
|
},
|
|
174
89
|
{ flush: "post" }
|
|
175
90
|
);
|
|
176
|
-
(0,
|
|
91
|
+
_vue.onScopeDispose.call(void 0, () => {
|
|
177
92
|
componentRef.value = null;
|
|
178
93
|
api.value = null;
|
|
179
94
|
ready.value = false;
|
|
@@ -182,14 +97,15 @@ function useMachTable() {
|
|
|
182
97
|
}
|
|
183
98
|
|
|
184
99
|
// src/index.ts
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
100
|
+
var _machtable = require('@agile-team/mach-table'); _createStarExport(_machtable);
|
|
101
|
+
var src_default = MachTablePlugin;
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
exports.MachTable = _chunkS3NR7DIGcjs.RobotGrid; exports.MachTablePlugin = MachTablePlugin; exports.RobotGrid = _chunkS3NR7DIGcjs.RobotGrid; exports.default = src_default; exports.useMachTable = useMachTable; exports.vueCellRenderer = vueCellRenderer; exports.vueDetailRenderer = vueDetailRenderer;
|
|
195
111
|
//# sourceMappingURL=index.cjs.map
|
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":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,iBAAiG;AACjG,wBAMO;AAUP,IAAM,sBAAsB,mCAAiB,OAAO,CAAC,QAAQ,QAAQ,WAAW;AAChF,IAAM,qBAAqB,0CAAwB,OAAO,CAAC,QAAQ,QAAQ,WAAW;AAEtF,IAAM,eAAmE,CAAC;AAC1E,WAAW,OAAO,qBAAqB;AACrC,QAAM,OAAO,mCAAiB,GAAG,EAAE;AACnC,QAAM,OAAO,SAAS,YAClB,UACA,SAAS,WACP,SACA,SAAS,UACP,QACA,SAAS,aACP,WACA,SAAS,mBACP,CAAC,SAAS,MAAM,IAChB,SAAS,WACP,SACA,SAAS,WACP,SACA;AAChB,eAAa,GAAG,IAAI,EAAE,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC,GAAI,SAAS,OAAU;AACtE;AACA,aAAa,YAAY,EAAE,MAAM,QAAQ,SAAS,OAAU;AAC5D,aAAa,gBAAgB,EAAE,MAAM,QAAQ,SAAS,OAAU;AAEhE,SAAS,cAAc,WAA2B;AAChD,SAAO,OAAO,UAAU,OAAO,CAAC,EAAE,YAAY,IAAI,UAAU,MAAM,CAAC;AACrE;AAEA,IAAM,oBAAgB,4BAAgB;AAAA,EACpC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,EACP,OAAO,CAAC,GAAG,6BAAW;AAAA,EACtB,MAAM,UAAU,EAAE,QAAQ,OAAO,KAAK,GAAG;AACvC,UAAM,QAAQ;AACd,UAAM,WAAO,gBAA2B,IAAI;AAC5C,QAAI,MAAsB;AAE1B,8BAAU,MAAM;AACd,UAAI,CAAC,KAAK,MAAO;AACjB,YAAM,UAAmC,CAAC;AAC1C,iBAAW,OAAO,qBAAqB;AACrC,cAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,UAAU,OAAW,SAAQ,GAAG,IAAI;AAAA,MAC1C;AACA,UAAI,MAAM,kBAAkB,OAAW,SAAQ,YAAY,MAAM;AACjE,iBAAW,QAAQ,+BAAa;AAC9B,gBAAQ,cAAc,IAAI,CAAC,IAAI,CAAC,UAAmB,KAAK,MAAM,KAAK;AAAA,MACrE;AACA,gBAAM,8BAAW,KAAK,OAAO,OAA2B;AAAA,IAC1D,CAAC;AAED,oCAAgB,MAAM;AACpB,WAAK,QAAQ;AACb,YAAM;AAAA,IACR,CAAC;AAED,0BAAM,MAAM,MAAM,SAAS,CAAC,UAAU,KAAK,WAAW,KAAK,CAAC;AAC5D,0BAAM,MAAM,MAAM,YAAY,CAAC,UAAU,KAAK,cAAc,KAAK,CAAC;AAClE,0BAAM,MAAM,MAAM,iBAAiB,CAAC,UAAU,KAAK,eAAe,KAAK,CAAC;AACxE,0BAAM,MAAM,MAAM,eAAe,CAAC,UAAU,KAAK,cAAc,EAAE,WAAW,MAAM,CAAC,CAAC;AAEpF;AAAA,MACE,MAAM,mBAAmB,IAAI,CAAC,QAAQ,MAAM,GAAG,CAAC;AAAA,MAChD,CAAC,QAAQ,aAAa;AACpB,YAAI,CAAC,IAAK;AACV,cAAM,UAAmC,CAAC;AAC1C,eAAO,QAAQ,CAAC,OAAO,UAAU;AAC/B,cAAI,CAAC,OAAO,GAAG,OAAO,SAAS,KAAK,CAAC,EAAG,SAAQ,mBAAmB,KAAK,CAAC,IAAI;AAAA,QAC/E,CAAC;AACD,YAAI,OAAO,KAAK,OAAO,EAAE,SAAS,EAAG,KAAI,cAAc,OAAoC;AAAA,MAC7F;AAAA,IACF;AAEA,WAAO,EAAE,QAAQ,MAAsB,IAAI,CAAC;AAE5C,WAAO,UAAM,cAAE,OAAO;AAAA,MACpB,GAAG;AAAA,MACH,KAAK;AAAA,MACL,OAAO,CAAC,iBAAiB,MAAM,WAAW,MAAM,KAAK,EAAE,OAAO,OAAO;AAAA,MACrE,OAAO,MAAM;AAAA,IACf,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,YAAY;;;ACxGzB,IAAAA,cAA0F;AAW1F,SAAS,kBAAkB,UAA+C;AACxE,MAAI,SAAU,QAAO;AACrB,MAAI;AACF,eAAO,gCAAmB,GAAG;AAAA,EAC/B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,eACP,WACA,OACA,MACA,YACY;AACZ,MAAI,YAAY;AACd,UAAM,YAAQ,eAAE,WAAW,KAAK;AAChC,UAAM,aAAa;AACnB,4BAAO,OAAO,IAAI;AAClB,WAAO,UAAM,oBAAO,MAAM,IAAI;AAAA,EAChC;AACA,QAAM,UAAM,uBAAU,EAAE,QAAQ,UAAM,eAAE,WAAW,KAAK,EAAE,CAAC;AAC3D,MAAI,MAAM,IAAI;AACd,SAAO,MAAM,IAAI,QAAQ;AAC3B;AAEO,SAAS,gBACd,WACA,SACgB;AAChB,QAAM,aAAa,kBAAkB,SAAS,UAAU;AACxD,SAAO,CAAC,WAA8C;AACpD,UAAM,OAAO,SAAS,cAAc,KAAK;AACzC,SAAK,YAAY;AACjB,SAAK,MAAM,QAAQ;AACnB,UAAM,UAAU,eAAe,WAAW,QAA+B,MAAM,UAAU;AACzF,QAAI,YAAY;AAChB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS,MAAM;AACb,YAAI,UAAW;AACf,oBAAY;AACZ,eAAO,WAAW,SAAS,CAAC;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,kBACd,WACA,SACuF;AACvF,QAAM,aAAa,kBAAkB,SAAS,UAAU;AACxD,SAAO,CAAC,WAAW;AACjB,UAAM,OAAO,SAAS,cAAc,KAAK;AACzC,SAAK,MAAM,SAAS;AACpB,UAAM,UAAU,eAAe,WAAW,QAA+B,MAAM,UAAU;AACzF,QAAI,YAAY;AAChB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS,MAAM;AACb,YAAI,UAAW;AACf,oBAAY;AACZ,gBAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;;;AC9EA,IAAAC,cAAkF;AAS3E,SAAS,eAAuD;AACrE,QAAM,mBAAe,iBAAS,IAAI;AAClC,QAAM,UAAM,wBAAkC,IAAI;AAClD,QAAM,YAAQ,wBAAW,KAAK;AAE9B;AAAA,IACE;AAAA,IACA,CAAC,SAAS;AACR,UAAI,QAAQ,OAAO,KAAK,WAAW,YAAY;AAC7C,YAAI,QAAQ,KAAK,OAAO;AACxB,cAAM,QAAQ,IAAI,SAAS;AAAA,MAC7B,OAAO;AACL,YAAI,QAAQ;AACZ,cAAM,QAAQ;AAAA,MAChB;AAAA,IACF;AAAA,IACA,EAAE,OAAO,OAAO;AAAA,EAClB;AAEA,kCAAe,MAAM;AACnB,iBAAa,QAAQ;AACrB,QAAI,QAAQ;AACZ,UAAM,QAAQ;AAAA,EAChB,CAAC;AAED,SAAO,EAAE,KAAK,cAAc,KAAK,MAAM;AACzC;;;AH5BA,0BAAc,mCAPd;","names":["import_vue","import_vue"]}
|
|
1
|
+
{"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\index.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\index.cjs","sourcesContent":[null]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { M as MachTablePluginOptions } from './globalRegistration-CQ2dTNzy.cjs';
|
|
2
|
+
export { a as MachTable, a as RobotGrid, R as RobotGridVueProps } from './globalRegistration-CQ2dTNzy.cjs';
|
|
3
|
+
import { App, Component, AppContext, Ref, ShallowRef } from 'vue';
|
|
4
|
+
import { CellRendererParams, CellRendererFn, DetailRowRendererParams, GridApi } from '@agile-team/mach-table';
|
|
3
5
|
export * from '@agile-team/mach-table';
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/** CSS class forwarded to MachTable's inner grid root. */
|
|
9
|
-
gridClassName?: string;
|
|
10
|
-
};
|
|
11
|
-
declare const RobotGrid: DefineComponent<RobotGridVueProps<any>>;
|
|
7
|
+
declare const MachTablePlugin: Readonly<{
|
|
8
|
+
install(app: App, options?: MachTablePluginOptions): void;
|
|
9
|
+
}>;
|
|
12
10
|
|
|
13
11
|
type VueCellRendererProps<TData = any, TValue = any> = CellRendererParams<TData, TValue>;
|
|
14
12
|
declare function vueCellRenderer<TData = any, TValue = any>(component: Component, options?: {
|
|
@@ -28,4 +26,4 @@ interface UseMachTableReturn<TData = any> {
|
|
|
28
26
|
}
|
|
29
27
|
declare function useMachTable<TData = any>(): UseMachTableReturn<TData>;
|
|
30
28
|
|
|
31
|
-
export {
|
|
29
|
+
export { MachTablePlugin, MachTablePluginOptions, type UseMachTableReturn, type VueCellRendererProps, MachTablePlugin as default, useMachTable, vueCellRenderer, vueDetailRenderer };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { M as MachTablePluginOptions } from './globalRegistration-CQ2dTNzy.js';
|
|
2
|
+
export { a as MachTable, a as RobotGrid, R as RobotGridVueProps } from './globalRegistration-CQ2dTNzy.js';
|
|
3
|
+
import { App, Component, AppContext, Ref, ShallowRef } from 'vue';
|
|
4
|
+
import { CellRendererParams, CellRendererFn, DetailRowRendererParams, GridApi } from '@agile-team/mach-table';
|
|
3
5
|
export * from '@agile-team/mach-table';
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/** CSS class forwarded to MachTable's inner grid root. */
|
|
9
|
-
gridClassName?: string;
|
|
10
|
-
};
|
|
11
|
-
declare const RobotGrid: DefineComponent<RobotGridVueProps<any>>;
|
|
7
|
+
declare const MachTablePlugin: Readonly<{
|
|
8
|
+
install(app: App, options?: MachTablePluginOptions): void;
|
|
9
|
+
}>;
|
|
12
10
|
|
|
13
11
|
type VueCellRendererProps<TData = any, TValue = any> = CellRendererParams<TData, TValue>;
|
|
14
12
|
declare function vueCellRenderer<TData = any, TValue = any>(component: Component, options?: {
|
|
@@ -28,4 +26,4 @@ interface UseMachTableReturn<TData = any> {
|
|
|
28
26
|
}
|
|
29
27
|
declare function useMachTable<TData = any>(): UseMachTableReturn<TData>;
|
|
30
28
|
|
|
31
|
-
export {
|
|
29
|
+
export { MachTablePlugin, MachTablePluginOptions, type UseMachTableReturn, type VueCellRendererProps, MachTablePlugin as default, useMachTable, vueCellRenderer, vueDetailRenderer };
|
package/dist/index.js
CHANGED
|
@@ -1,79 +1,19 @@
|
|
|
1
|
-
// src/RobotGrid.ts
|
|
2
|
-
import { defineComponent, h, onBeforeUnmount, onMounted, ref, watch } from "vue";
|
|
3
1
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
});
|
|
2
|
+
registerGlobalMachTable
|
|
3
|
+
} from "./chunk-JJQDDIQU.js";
|
|
4
|
+
import {
|
|
5
|
+
RobotGrid
|
|
6
|
+
} from "./chunk-CHEQLQW4.js";
|
|
7
|
+
|
|
8
|
+
// src/plugin.ts
|
|
9
|
+
var MachTablePlugin = Object.freeze({
|
|
10
|
+
install(app, options = {}) {
|
|
11
|
+
registerGlobalMachTable(app, RobotGrid, options);
|
|
71
12
|
}
|
|
72
13
|
});
|
|
73
|
-
var RobotGrid = RobotGridImpl;
|
|
74
14
|
|
|
75
15
|
// src/adapters.ts
|
|
76
|
-
import { createApp, h
|
|
16
|
+
import { createApp, h, render, getCurrentInstance } from "vue";
|
|
77
17
|
function resolveAppContext(explicit) {
|
|
78
18
|
if (explicit) return explicit;
|
|
79
19
|
try {
|
|
@@ -84,12 +24,12 @@ function resolveAppContext(explicit) {
|
|
|
84
24
|
}
|
|
85
25
|
function mountComponent(component, props, host, appContext) {
|
|
86
26
|
if (appContext) {
|
|
87
|
-
const vnode =
|
|
27
|
+
const vnode = h(component, props);
|
|
88
28
|
vnode.appContext = appContext;
|
|
89
29
|
render(vnode, host);
|
|
90
30
|
return () => render(null, host);
|
|
91
31
|
}
|
|
92
|
-
const app = createApp({ render: () =>
|
|
32
|
+
const app = createApp({ render: () => h(component, props) });
|
|
93
33
|
app.mount(host);
|
|
94
34
|
return () => app.unmount();
|
|
95
35
|
}
|
|
@@ -130,12 +70,12 @@ function vueDetailRenderer(component, options) {
|
|
|
130
70
|
}
|
|
131
71
|
|
|
132
72
|
// src/useMachTable.ts
|
|
133
|
-
import { onScopeDispose, ref
|
|
73
|
+
import { onScopeDispose, ref, shallowRef, watch } from "vue";
|
|
134
74
|
function useMachTable() {
|
|
135
|
-
const componentRef =
|
|
75
|
+
const componentRef = ref(null);
|
|
136
76
|
const api = shallowRef(null);
|
|
137
77
|
const ready = shallowRef(false);
|
|
138
|
-
|
|
78
|
+
watch(
|
|
139
79
|
componentRef,
|
|
140
80
|
(comp) => {
|
|
141
81
|
if (comp && typeof comp.getApi === "function") {
|
|
@@ -158,9 +98,12 @@ function useMachTable() {
|
|
|
158
98
|
|
|
159
99
|
// src/index.ts
|
|
160
100
|
export * from "@agile-team/mach-table";
|
|
101
|
+
var src_default = MachTablePlugin;
|
|
161
102
|
export {
|
|
162
103
|
RobotGrid as MachTable,
|
|
104
|
+
MachTablePlugin,
|
|
163
105
|
RobotGrid,
|
|
106
|
+
src_default as default,
|
|
164
107
|
useMachTable,
|
|
165
108
|
vueCellRenderer,
|
|
166
109
|
vueDetailRenderer
|
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":";AAAA,SAAS,iBAAiB,GAAG,iBAAiB,WAAW,KAAK,aAAmC;AACjG;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAUP,IAAM,sBAAsB,iBAAiB,OAAO,CAAC,QAAQ,QAAQ,WAAW;AAChF,IAAM,qBAAqB,wBAAwB,OAAO,CAAC,QAAQ,QAAQ,WAAW;AAEtF,IAAM,eAAmE,CAAC;AAC1E,WAAW,OAAO,qBAAqB;AACrC,QAAM,OAAO,iBAAiB,GAAG,EAAE;AACnC,QAAM,OAAO,SAAS,YAClB,UACA,SAAS,WACP,SACA,SAAS,UACP,QACA,SAAS,aACP,WACA,SAAS,mBACP,CAAC,SAAS,MAAM,IAChB,SAAS,WACP,SACA,SAAS,WACP,SACA;AAChB,eAAa,GAAG,IAAI,EAAE,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC,GAAI,SAAS,OAAU;AACtE;AACA,aAAa,YAAY,EAAE,MAAM,QAAQ,SAAS,OAAU;AAC5D,aAAa,gBAAgB,EAAE,MAAM,QAAQ,SAAS,OAAU;AAEhE,SAAS,cAAc,WAA2B;AAChD,SAAO,OAAO,UAAU,OAAO,CAAC,EAAE,YAAY,IAAI,UAAU,MAAM,CAAC;AACrE;AAEA,IAAM,gBAAgB,gBAAgB;AAAA,EACpC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,EACP,OAAO,CAAC,GAAG,WAAW;AAAA,EACtB,MAAM,UAAU,EAAE,QAAQ,OAAO,KAAK,GAAG;AACvC,UAAM,QAAQ;AACd,UAAM,OAAO,IAA2B,IAAI;AAC5C,QAAI,MAAsB;AAE1B,cAAU,MAAM;AACd,UAAI,CAAC,KAAK,MAAO;AACjB,YAAM,UAAmC,CAAC;AAC1C,iBAAW,OAAO,qBAAqB;AACrC,cAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,UAAU,OAAW,SAAQ,GAAG,IAAI;AAAA,MAC1C;AACA,UAAI,MAAM,kBAAkB,OAAW,SAAQ,YAAY,MAAM;AACjE,iBAAW,QAAQ,aAAa;AAC9B,gBAAQ,cAAc,IAAI,CAAC,IAAI,CAAC,UAAmB,KAAK,MAAM,KAAK;AAAA,MACrE;AACA,YAAM,WAAW,KAAK,OAAO,OAA2B;AAAA,IAC1D,CAAC;AAED,oBAAgB,MAAM;AACpB,WAAK,QAAQ;AACb,YAAM;AAAA,IACR,CAAC;AAED,UAAM,MAAM,MAAM,SAAS,CAAC,UAAU,KAAK,WAAW,KAAK,CAAC;AAC5D,UAAM,MAAM,MAAM,YAAY,CAAC,UAAU,KAAK,cAAc,KAAK,CAAC;AAClE,UAAM,MAAM,MAAM,iBAAiB,CAAC,UAAU,KAAK,eAAe,KAAK,CAAC;AACxE,UAAM,MAAM,MAAM,eAAe,CAAC,UAAU,KAAK,cAAc,EAAE,WAAW,MAAM,CAAC,CAAC;AAEpF;AAAA,MACE,MAAM,mBAAmB,IAAI,CAAC,QAAQ,MAAM,GAAG,CAAC;AAAA,MAChD,CAAC,QAAQ,aAAa;AACpB,YAAI,CAAC,IAAK;AACV,cAAM,UAAmC,CAAC;AAC1C,eAAO,QAAQ,CAAC,OAAO,UAAU;AAC/B,cAAI,CAAC,OAAO,GAAG,OAAO,SAAS,KAAK,CAAC,EAAG,SAAQ,mBAAmB,KAAK,CAAC,IAAI;AAAA,QAC/E,CAAC;AACD,YAAI,OAAO,KAAK,OAAO,EAAE,SAAS,EAAG,KAAI,cAAc,OAAoC;AAAA,MAC7F;AAAA,IACF;AAEA,WAAO,EAAE,QAAQ,MAAsB,IAAI,CAAC;AAE5C,WAAO,MAAM,EAAE,OAAO;AAAA,MACpB,GAAG;AAAA,MACH,KAAK;AAAA,MACL,OAAO,CAAC,iBAAiB,MAAM,WAAW,MAAM,KAAK,EAAE,OAAO,OAAO;AAAA,MACrE,OAAO,MAAM;AAAA,IACf,CAAC;AAAA,EACH;AACF,CAAC;AAEM,IAAM,YAAY;;;ACxGzB,SAAS,WAAW,KAAAA,IAAG,QAAQ,0BAA2D;AAW1F,SAAS,kBAAkB,UAA+C;AACxE,MAAI,SAAU,QAAO;AACrB,MAAI;AACF,WAAO,mBAAmB,GAAG;AAAA,EAC/B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,eACP,WACA,OACA,MACA,YACY;AACZ,MAAI,YAAY;AACd,UAAM,QAAQA,GAAE,WAAW,KAAK;AAChC,UAAM,aAAa;AACnB,WAAO,OAAO,IAAI;AAClB,WAAO,MAAM,OAAO,MAAM,IAAI;AAAA,EAChC;AACA,QAAM,MAAM,UAAU,EAAE,QAAQ,MAAMA,GAAE,WAAW,KAAK,EAAE,CAAC;AAC3D,MAAI,MAAM,IAAI;AACd,SAAO,MAAM,IAAI,QAAQ;AAC3B;AAEO,SAAS,gBACd,WACA,SACgB;AAChB,QAAM,aAAa,kBAAkB,SAAS,UAAU;AACxD,SAAO,CAAC,WAA8C;AACpD,UAAM,OAAO,SAAS,cAAc,KAAK;AACzC,SAAK,YAAY;AACjB,SAAK,MAAM,QAAQ;AACnB,UAAM,UAAU,eAAe,WAAW,QAA+B,MAAM,UAAU;AACzF,QAAI,YAAY;AAChB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS,MAAM;AACb,YAAI,UAAW;AACf,oBAAY;AACZ,eAAO,WAAW,SAAS,CAAC;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,kBACd,WACA,SACuF;AACvF,QAAM,aAAa,kBAAkB,SAAS,UAAU;AACxD,SAAO,CAAC,WAAW;AACjB,UAAM,OAAO,SAAS,cAAc,KAAK;AACzC,SAAK,MAAM,SAAS;AACpB,UAAM,UAAU,eAAe,WAAW,QAA+B,MAAM,UAAU;AACzF,QAAI,YAAY;AAChB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS,MAAM;AACb,YAAI,UAAW;AACf,oBAAY;AACZ,gBAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;;;AC9EA,SAAS,gBAAgB,OAAAC,MAAK,YAAY,SAAAC,cAAwC;AAS3E,SAAS,eAAuD;AACrE,QAAM,eAAeD,KAAS,IAAI;AAClC,QAAM,MAAM,WAAkC,IAAI;AAClD,QAAM,QAAQ,WAAW,KAAK;AAE9B,EAAAC;AAAA,IACE;AAAA,IACA,CAAC,SAAS;AACR,UAAI,QAAQ,OAAO,KAAK,WAAW,YAAY;AAC7C,YAAI,QAAQ,KAAK,OAAO;AACxB,cAAM,QAAQ,IAAI,SAAS;AAAA,MAC7B,OAAO;AACL,YAAI,QAAQ;AACZ,cAAM,QAAQ;AAAA,MAChB;AAAA,IACF;AAAA,IACA,EAAE,OAAO,OAAO;AAAA,EAClB;AAEA,iBAAe,MAAM;AACnB,iBAAa,QAAQ;AACrB,QAAI,QAAQ;AACZ,UAAM,QAAQ;AAAA,EAChB,CAAC;AAED,SAAO,EAAE,KAAK,cAAc,KAAK,MAAM;AACzC;;;AC5BA,cAAc;","names":["h","ref","watch"]}
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts","../src/adapters.ts","../src/useMachTable.ts","../src/index.ts"],"sourcesContent":["import type { App } from \"vue\";\nimport { RobotGrid } from \"./RobotGrid\";\nimport { registerGlobalMachTable, type MachTablePluginOptions } from \"./globalRegistration\";\n\nexport const MachTablePlugin = Object.freeze({\n install(app: App, options: MachTablePluginOptions = {}): void {\n registerGlobalMachTable(app, RobotGrid, options);\n }\n});\n\nexport type { MachTablePluginOptions } from \"./globalRegistration\";\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","import { RobotGrid } from \"./RobotGrid\";\nimport { MachTablePlugin } from \"./plugin\";\n\nexport { RobotGrid };\nexport { RobotGrid as MachTable };\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 { MachTablePlugin } from \"./plugin\";\nexport type { MachTablePluginOptions } from \"./plugin\";\nexport * from \"@agile-team/mach-table\";\n\nexport default MachTablePlugin;\n"],"mappings":";;;;;;;;AAIO,IAAM,kBAAkB,OAAO,OAAO;AAAA,EAC3C,QAAQ,KAAU,UAAkC,CAAC,GAAS;AAC5D,4BAAwB,KAAK,WAAW,OAAO;AAAA,EACjD;AACF,CAAC;;;ACRD,SAAS,WAAW,GAAG,QAAQ,0BAA2D;AAW1F,SAAS,kBAAkB,UAA+C;AACxE,MAAI,SAAU,QAAO;AACrB,MAAI;AACF,WAAO,mBAAmB,GAAG;AAAA,EAC/B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,eACP,WACA,OACA,MACA,YACY;AACZ,MAAI,YAAY;AACd,UAAM,QAAQ,EAAE,WAAW,KAAK;AAChC,UAAM,aAAa;AACnB,WAAO,OAAO,IAAI;AAClB,WAAO,MAAM,OAAO,MAAM,IAAI;AAAA,EAChC;AACA,QAAM,MAAM,UAAU,EAAE,QAAQ,MAAM,EAAE,WAAW,KAAK,EAAE,CAAC;AAC3D,MAAI,MAAM,IAAI;AACd,SAAO,MAAM,IAAI,QAAQ;AAC3B;AAEO,SAAS,gBACd,WACA,SACgB;AAChB,QAAM,aAAa,kBAAkB,SAAS,UAAU;AACxD,SAAO,CAAC,WAA8C;AACpD,UAAM,OAAO,SAAS,cAAc,KAAK;AACzC,SAAK,YAAY;AACjB,SAAK,MAAM,QAAQ;AACnB,UAAM,UAAU,eAAe,WAAW,QAA+B,MAAM,UAAU;AACzF,QAAI,YAAY;AAChB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS,MAAM;AACb,YAAI,UAAW;AACf,oBAAY;AACZ,eAAO,WAAW,SAAS,CAAC;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,kBACd,WACA,SACuF;AACvF,QAAM,aAAa,kBAAkB,SAAS,UAAU;AACxD,SAAO,CAAC,WAAW;AACjB,UAAM,OAAO,SAAS,cAAc,KAAK;AACzC,SAAK,MAAM,SAAS;AACpB,UAAM,UAAU,eAAe,WAAW,QAA+B,MAAM,UAAU;AACzF,QAAI,YAAY;AAChB,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS,MAAM;AACb,YAAI,UAAW;AACf,oBAAY;AACZ,gBAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;;;AC9EA,SAAS,gBAAgB,KAAK,YAAY,aAAwC;AAS3E,SAAS,eAAuD;AACrE,QAAM,eAAe,IAAS,IAAI;AAClC,QAAM,MAAM,WAAkC,IAAI;AAClD,QAAM,QAAQ,WAAW,KAAK;AAE9B;AAAA,IACE;AAAA,IACA,CAAC,SAAS;AACR,UAAI,QAAQ,OAAO,KAAK,WAAW,YAAY;AAC7C,YAAI,QAAQ,KAAK,OAAO;AACxB,cAAM,QAAQ,IAAI,SAAS;AAAA,MAC7B,OAAO;AACL,YAAI,QAAQ;AACZ,cAAM,QAAQ;AAAA,MAChB;AAAA,IACF;AAAA,IACA,EAAE,OAAO,OAAO;AAAA,EAClB;AAEA,iBAAe,MAAM;AACnB,iBAAa,QAAQ;AACrB,QAAI,QAAQ;AACZ,UAAM,QAAQ;AAAA,EAChB,CAAC;AAED,SAAO,EAAE,KAAK,cAAc,KAAK,MAAM;AACzC;;;ACvBA,cAAc;AAEd,IAAO,cAAQ;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agile-team/mach-table-vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Official Vue 3 adapter for the MachTable enterprise data grid",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -42,6 +42,16 @@
|
|
|
42
42
|
"default": "./dist/index.cjs"
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
+
"./async": {
|
|
46
|
+
"import": {
|
|
47
|
+
"types": "./dist/async.d.ts",
|
|
48
|
+
"default": "./dist/async.js"
|
|
49
|
+
},
|
|
50
|
+
"require": {
|
|
51
|
+
"types": "./dist/async.d.cts",
|
|
52
|
+
"default": "./dist/async.cjs"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
45
55
|
"./styles.css": {
|
|
46
56
|
"types": "./dist/mach-table.css.d.ts",
|
|
47
57
|
"default": "./dist/mach-table.css"
|
|
@@ -58,7 +68,7 @@
|
|
|
58
68
|
"**/*.css"
|
|
59
69
|
],
|
|
60
70
|
"dependencies": {
|
|
61
|
-
"@agile-team/mach-table": "0.
|
|
71
|
+
"@agile-team/mach-table": "0.5.0"
|
|
62
72
|
},
|
|
63
73
|
"peerDependencies": {
|
|
64
74
|
"vue": ">=3.2.0"
|