@toolbox-web/grid-vue 0.9.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/features/grouping-columns.js +22 -15
- package/features/grouping-columns.js.map +1 -1
- package/index.d.ts +8 -6
- package/index.d.ts.map +1 -1
- package/index.js +468 -460
- package/index.js.map +1 -1
- package/lib/TbwGrid.vue.d.ts +27 -18
- package/lib/TbwGrid.vue.d.ts.map +1 -1
- package/lib/feature-props.d.ts +2 -2
- package/lib/feature-registry.d.ts +1 -1
- package/lib/feature-registry.d.ts.map +1 -1
- package/lib/grid-provider.d.ts.map +1 -1
- package/lib/grid-type-registry.d.ts +1 -1
- package/lib/use-grid-event.d.ts +50 -50
- package/lib/use-grid-event.d.ts.map +1 -1
- package/lib/vue-column-config.d.ts +4 -4
- package/lib/vue-grid-adapter.d.ts +8 -3
- package/lib/vue-grid-adapter.d.ts.map +1 -1
- package/package.json +1 -1
- package/typedoc-entry.d.ts +5 -5
- package/typedoc-entry.d.ts.map +1 -1
|
@@ -1,23 +1,30 @@
|
|
|
1
1
|
import { GroupingColumnsPlugin as t } from "@toolbox-web/grid/plugins/grouping-columns";
|
|
2
2
|
import { createApp as i } from "vue";
|
|
3
|
-
import { registerFeature as
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { registerFeature as c } from "@toolbox-web/grid/features/registry";
|
|
4
|
+
function u(o) {
|
|
5
|
+
return (r) => {
|
|
6
|
+
const e = document.createElement("div");
|
|
7
|
+
return e.style.display = "contents", i({
|
|
8
|
+
render() {
|
|
9
|
+
return o(r);
|
|
10
|
+
}
|
|
11
|
+
}).mount(e), e;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
c("groupingColumns", (o) => {
|
|
15
|
+
if (o === !0)
|
|
6
16
|
return new t();
|
|
7
|
-
if (!
|
|
17
|
+
if (!o)
|
|
8
18
|
return new t();
|
|
9
|
-
const r =
|
|
19
|
+
const r = o, e = { ...r };
|
|
10
20
|
if (typeof r.groupHeaderRenderer == "function") {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
const n = document.createElement("div");
|
|
14
|
-
return n.style.display = "contents", i({
|
|
15
|
-
render() {
|
|
16
|
-
return p(u);
|
|
17
|
-
}
|
|
18
|
-
}).mount(n), n;
|
|
19
|
-
};
|
|
21
|
+
const n = r.groupHeaderRenderer;
|
|
22
|
+
e.groupHeaderRenderer = u(n);
|
|
20
23
|
}
|
|
21
|
-
return
|
|
24
|
+
return Array.isArray(r.columnGroups) && (e.columnGroups = r.columnGroups.map((n) => {
|
|
25
|
+
if (typeof n.renderer != "function") return n;
|
|
26
|
+
const p = n.renderer;
|
|
27
|
+
return { ...n, renderer: u(p) };
|
|
28
|
+
})), new t(e);
|
|
22
29
|
});
|
|
23
30
|
//# sourceMappingURL=grouping-columns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouping-columns.js","sources":["../../../../libs/grid-vue/src/features/grouping-columns.ts"],"sourcesContent":["/**\n * Column grouping feature for @toolbox-web/grid-vue\n *\n * Import this module to enable the `groupingColumns` prop on TbwGrid.\n * Automatically bridges Vue render-function `groupHeaderRenderer` to vanilla DOM.\n *\n * @example\n * ```vue\n * <script setup>\n * import '@toolbox-web/grid-vue/features/grouping-columns';\n * </script>\n *\n * <template>\n * <TbwGrid :groupingColumns=\"{\n * columnGroups: [\n * { header: 'Personal Info', children: ['firstName', 'lastName'] },\n * ],\n * }\" />\n * </template>\n * ```\n *\n * @example Custom group header renderer\n * ```vue\n * <TbwGrid :groupingColumns=\"{\n * columnGroups: [...],\n * groupHeaderRenderer: (params) => h('strong', `${params.label} (${params.columns.length})`),\n * }\" />\n * ```\n *\n * @packageDocumentation\n */\n\nimport {\n GroupingColumnsPlugin,\n type GroupHeaderRenderParams,\n type GroupingColumnsConfig,\n} from '@toolbox-web/grid/plugins/grouping-columns';\nimport { createApp, type VNode } from 'vue';\nimport { registerFeature } from '../lib/feature-registry';\n\nregisterFeature('groupingColumns', (rawConfig) => {\n if (rawConfig === true) {\n return new GroupingColumnsPlugin();\n }\n if (!rawConfig) {\n return new GroupingColumnsPlugin();\n }\n\n const config = rawConfig as GroupingColumnsConfig & {
|
|
1
|
+
{"version":3,"file":"grouping-columns.js","sources":["../../../../libs/grid-vue/src/features/grouping-columns.ts"],"sourcesContent":["/**\n * Column grouping feature for @toolbox-web/grid-vue\n *\n * Import this module to enable the `groupingColumns` prop on TbwGrid.\n * Automatically bridges Vue render-function `groupHeaderRenderer` to vanilla DOM.\n *\n * @example\n * ```vue\n * <script setup>\n * import '@toolbox-web/grid-vue/features/grouping-columns';\n * </script>\n *\n * <template>\n * <TbwGrid :groupingColumns=\"{\n * columnGroups: [\n * { header: 'Personal Info', children: ['firstName', 'lastName'] },\n * ],\n * }\" />\n * </template>\n * ```\n *\n * @example Custom group header renderer\n * ```vue\n * <TbwGrid :groupingColumns=\"{\n * columnGroups: [...],\n * groupHeaderRenderer: (params) => h('strong', `${params.label} (${params.columns.length})`),\n * }\" />\n * ```\n *\n * @packageDocumentation\n */\n\nimport {\n GroupingColumnsPlugin,\n type ColumnGroupDefinition,\n type GroupHeaderRenderParams,\n type GroupingColumnsConfig,\n} from '@toolbox-web/grid/plugins/grouping-columns';\nimport { createApp, type VNode } from 'vue';\nimport { registerFeature } from '../lib/feature-registry';\n\n/** Bridge a Vue render function to a vanilla DOM render function. */\nfunction bridgeRenderer(\n vueFn: (params: GroupHeaderRenderParams) => VNode,\n): (params: GroupHeaderRenderParams) => HTMLElement {\n return (params: GroupHeaderRenderParams) => {\n const wrapper = document.createElement('div');\n wrapper.style.display = 'contents';\n\n const app = createApp({\n render() {\n return vueFn(params);\n },\n });\n\n app.mount(wrapper);\n return wrapper;\n };\n}\n\nregisterFeature('groupingColumns', (rawConfig) => {\n if (rawConfig === true) {\n return new GroupingColumnsPlugin();\n }\n if (!rawConfig) {\n return new GroupingColumnsPlugin();\n }\n\n const config = rawConfig as GroupingColumnsConfig & {\n groupHeaderRenderer?: unknown;\n columnGroups?: (ColumnGroupDefinition & { renderer?: unknown })[];\n };\n const options = { ...config } as GroupingColumnsConfig;\n\n // Bridge Vue groupHeaderRenderer (returns VNode) to vanilla (returns HTMLElement | string | void)\n if (typeof config.groupHeaderRenderer === 'function') {\n const vueFn = config.groupHeaderRenderer as unknown as (params: GroupHeaderRenderParams) => VNode;\n options.groupHeaderRenderer = bridgeRenderer(vueFn);\n }\n\n // Bridge per-group renderers inside columnGroups\n if (Array.isArray(config.columnGroups)) {\n options.columnGroups = config.columnGroups.map((def) => {\n if (typeof def.renderer !== 'function') return def as ColumnGroupDefinition;\n const vueFn = def.renderer as unknown as (params: GroupHeaderRenderParams) => VNode;\n return { ...def, renderer: bridgeRenderer(vueFn) } as ColumnGroupDefinition;\n });\n }\n\n return new GroupingColumnsPlugin(options);\n});\n"],"names":["bridgeRenderer","vueFn","params","wrapper","createApp","registerFeature","rawConfig","GroupingColumnsPlugin","config","options","def"],"mappings":";;;AA0CA,SAASA,EACPC,GACkD;AAClD,SAAO,CAACC,MAAoC;AAC1C,UAAMC,IAAU,SAAS,cAAc,KAAK;AAC5C,WAAAA,EAAQ,MAAM,UAAU,YAEZC,EAAU;AAAA,MACpB,SAAS;AACP,eAAOH,EAAMC,CAAM;AAAA,MACrB;AAAA,IAAA,CACD,EAEG,MAAMC,CAAO,GACVA;AAAA,EACT;AACF;AAEAE,EAAgB,mBAAmB,CAACC,MAAc;AAChD,MAAIA,MAAc;AAChB,WAAO,IAAIC,EAAA;AAEb,MAAI,CAACD;AACH,WAAO,IAAIC,EAAA;AAGb,QAAMC,IAASF,GAITG,IAAU,EAAE,GAAGD,EAAA;AAGrB,MAAI,OAAOA,EAAO,uBAAwB,YAAY;AACpD,UAAMP,IAAQO,EAAO;AACrB,IAAAC,EAAQ,sBAAsBT,EAAeC,CAAK;AAAA,EACpD;AAGA,SAAI,MAAM,QAAQO,EAAO,YAAY,MACnCC,EAAQ,eAAeD,EAAO,aAAa,IAAI,CAACE,MAAQ;AACtD,QAAI,OAAOA,EAAI,YAAa,WAAY,QAAOA;AAC/C,UAAMT,IAAQS,EAAI;AAClB,WAAO,EAAE,GAAGA,GAAK,UAAUV,EAAeC,CAAK,EAAA;AAAA,EACjD,CAAC,IAGI,IAAIM,EAAsBE,CAAO;AAC1C,CAAC;"}
|
package/index.d.ts
CHANGED
|
@@ -50,27 +50,29 @@ export type { ResponsiveCardContext } from './lib/responsive-card-registry';
|
|
|
50
50
|
export type { CellSlotProps, EditorSlotProps } from './lib/slot-types';
|
|
51
51
|
export type { ToolPanelContext } from './lib/tool-panel-registry';
|
|
52
52
|
export { GridAdapter, isVueComponent } from './lib/vue-grid-adapter';
|
|
53
|
-
/** @deprecated Use `GridAdapter` instead */
|
|
53
|
+
/** @deprecated Use `GridAdapter` instead. Will be removed in v2. */
|
|
54
54
|
export { VueGridAdapter } from './lib/vue-grid-adapter';
|
|
55
55
|
export { GRID_ELEMENT_KEY, useGrid } from './lib/use-grid';
|
|
56
56
|
export type { UseGridReturn } from './lib/use-grid';
|
|
57
|
+
/** @deprecated Use `@event` handlers directly on `<TbwGrid>` instead. Will be removed in v2. */
|
|
57
58
|
export { useGridEvent } from './lib/use-grid-event';
|
|
59
|
+
/** @deprecated Use `@event` handlers directly on `<TbwGrid>` instead. Will be removed in v2. */
|
|
58
60
|
export type { GridEventMap } from './lib/use-grid-event';
|
|
59
61
|
export type { CellEditor, CellRenderer, ColumnConfig, GridConfig,
|
|
60
|
-
/** @deprecated Use `CellEditor` instead */
|
|
62
|
+
/** @deprecated Use `CellEditor` instead. Will be removed in v2. */
|
|
61
63
|
VueCellEditor,
|
|
62
|
-
/** @deprecated Use `CellRenderer` instead */
|
|
64
|
+
/** @deprecated Use `CellRenderer` instead. Will be removed in v2. */
|
|
63
65
|
VueCellRenderer,
|
|
64
|
-
/** @deprecated Use `ColumnConfig` instead */
|
|
66
|
+
/** @deprecated Use `ColumnConfig` instead. Will be removed in v2. */
|
|
65
67
|
VueColumnConfig,
|
|
66
|
-
/** @deprecated Use `GridConfig` instead */
|
|
68
|
+
/** @deprecated Use `GridConfig` instead. Will be removed in v2. */
|
|
67
69
|
VueGridConfig, } from './lib/vue-column-config';
|
|
68
70
|
export type { AllFeatureProps, FeatureProps } from './lib/feature-props';
|
|
69
71
|
export { clearFeatureRegistry, createPluginFromFeature, getFeatureFactory, getRegisteredFeatures, isFeatureRegistered, registerFeature, } from './lib/feature-registry';
|
|
70
72
|
export type { FeatureName, PluginFactory } from './lib/feature-registry';
|
|
71
73
|
export { GRID_TYPE_DEFAULTS, GridTypeProvider, useGridTypeDefaults, useTypeDefault } from './lib/grid-type-registry';
|
|
72
74
|
export type { GridTypeProviderProps, TypeDefault, TypeDefaultsMap,
|
|
73
|
-
/** @deprecated Use `TypeDefault` instead */
|
|
75
|
+
/** @deprecated Use `TypeDefault` instead. Will be removed in v2. */
|
|
74
76
|
VueTypeDefault, } from './lib/grid-type-registry';
|
|
75
77
|
export { GRID_ICONS, GridIconProvider, useGridIcons } from './lib/grid-icon-registry';
|
|
76
78
|
export type { GridIconProviderProps } from './lib/grid-icon-registry';
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/grid-vue/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACrE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/grid-vue/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACrE,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,gGAAgG;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,gGAAgG;AAChG,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,YAAY,EAEV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU;AAEV,mEAAmE;AACnE,aAAa;AACb,qEAAqE;AACrE,eAAe;AACf,qEAAqE;AACrE,eAAe;AACf,mEAAmE;AACnE,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrH,YAAY,EACV,qBAAqB,EAErB,WAAW,EACX,eAAe;AAEf,oEAAoE;AACpE,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtF,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|