@toolbox-web/grid 0.3.3 → 0.4.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/all.d.ts +19 -19
- package/all.d.ts.map +1 -1
- package/all.js +1798 -1201
- package/all.js.map +1 -1
- package/index.js +2215 -2026
- package/index.js.map +1 -1
- package/lib/core/grid.d.ts +22 -12
- package/lib/core/grid.d.ts.map +1 -1
- package/lib/core/internal/columns.d.ts +0 -9
- package/lib/core/internal/columns.d.ts.map +1 -1
- package/lib/core/internal/config-manager.d.ts +236 -0
- package/lib/core/internal/config-manager.d.ts.map +1 -0
- package/lib/core/internal/editing.d.ts +3 -3
- package/lib/core/internal/editing.d.ts.map +1 -1
- package/lib/core/internal/event-delegation.d.ts.map +1 -1
- package/lib/core/internal/header.d.ts.map +1 -1
- package/lib/core/internal/keyboard.d.ts.map +1 -1
- package/lib/core/internal/render-scheduler.d.ts +123 -0
- package/lib/core/internal/render-scheduler.d.ts.map +1 -0
- package/lib/core/internal/rows.d.ts +8 -3
- package/lib/core/internal/rows.d.ts.map +1 -1
- package/lib/core/internal/sanitize.d.ts +2 -2
- package/lib/core/internal/sanitize.d.ts.map +1 -1
- package/lib/core/internal/shell.d.ts +40 -2
- package/lib/core/internal/shell.d.ts.map +1 -1
- package/lib/core/internal/validate-config.d.ts +25 -0
- package/lib/core/internal/validate-config.d.ts.map +1 -0
- package/lib/core/plugin/base-plugin.d.ts +118 -0
- package/lib/core/plugin/base-plugin.d.ts.map +1 -1
- package/lib/core/plugin/index.d.ts +1 -0
- package/lib/core/plugin/index.d.ts.map +1 -1
- package/lib/core/plugin/plugin-manager.d.ts +13 -2
- package/lib/core/plugin/plugin-manager.d.ts.map +1 -1
- package/lib/core/plugin/types.d.ts +17 -3
- package/lib/core/plugin/types.d.ts.map +1 -1
- package/lib/core/types.d.ts +112 -12
- package/lib/core/types.d.ts.map +1 -1
- package/lib/plugins/clipboard/ClipboardPlugin.d.ts +7 -1
- package/lib/plugins/clipboard/ClipboardPlugin.d.ts.map +1 -1
- package/lib/plugins/clipboard/index.js +78 -22
- package/lib/plugins/clipboard/index.js.map +1 -1
- package/lib/plugins/column-virtualization/index.js +72 -21
- package/lib/plugins/column-virtualization/index.js.map +1 -1
- package/lib/plugins/context-menu/index.js +53 -2
- package/lib/plugins/context-menu/index.js.map +1 -1
- package/lib/plugins/editing/EditingPlugin.d.ts +117 -0
- package/lib/plugins/editing/EditingPlugin.d.ts.map +1 -0
- package/lib/{core/internal → plugins/editing}/editors.d.ts +1 -1
- package/lib/plugins/editing/editors.d.ts.map +1 -0
- package/lib/plugins/editing/index.d.ts +8 -0
- package/lib/plugins/editing/index.d.ts.map +1 -0
- package/lib/plugins/editing/index.js +721 -0
- package/lib/plugins/editing/index.js.map +1 -0
- package/lib/plugins/editing/types.d.ts +45 -0
- package/lib/plugins/editing/types.d.ts.map +1 -0
- package/lib/plugins/export/ExportPlugin.d.ts.map +1 -1
- package/lib/plugins/export/index.js +68 -17
- package/lib/plugins/export/index.js.map +1 -1
- package/lib/plugins/filtering/FilteringPlugin.d.ts.map +1 -1
- package/lib/plugins/filtering/index.js +103 -50
- package/lib/plugins/filtering/index.js.map +1 -1
- package/lib/plugins/grouping-columns/grouping-columns.d.ts +4 -4
- package/lib/plugins/grouping-columns/grouping-columns.d.ts.map +1 -1
- package/lib/plugins/grouping-columns/index.js +80 -29
- package/lib/plugins/grouping-columns/index.js.map +1 -1
- package/lib/plugins/grouping-rows/GroupingRowsPlugin.d.ts.map +1 -1
- package/lib/plugins/grouping-rows/grouping-rows.d.ts.map +1 -1
- package/lib/plugins/grouping-rows/index.js +62 -11
- package/lib/plugins/grouping-rows/index.js.map +1 -1
- package/lib/plugins/master-detail/MasterDetailPlugin.d.ts +2 -2
- package/lib/plugins/master-detail/MasterDetailPlugin.d.ts.map +1 -1
- package/lib/plugins/master-detail/index.js +156 -102
- package/lib/plugins/master-detail/index.js.map +1 -1
- package/lib/plugins/master-detail/types.d.ts +12 -2
- package/lib/plugins/master-detail/types.d.ts.map +1 -1
- package/lib/plugins/multi-sort/MultiSortPlugin.d.ts.map +1 -1
- package/lib/plugins/multi-sort/index.js +75 -22
- package/lib/plugins/multi-sort/index.js.map +1 -1
- package/lib/plugins/pinned-columns/index.js +57 -6
- package/lib/plugins/pinned-columns/index.js.map +1 -1
- package/lib/plugins/pinned-rows/PinnedRowsPlugin.d.ts.map +1 -1
- package/lib/plugins/pinned-rows/index.js +61 -9
- package/lib/plugins/pinned-rows/index.js.map +1 -1
- package/lib/plugins/pivot/index.js +58 -7
- package/lib/plugins/pivot/index.js.map +1 -1
- package/lib/plugins/reorder/ReorderPlugin.d.ts.map +1 -1
- package/lib/plugins/reorder/index.js +75 -19
- package/lib/plugins/reorder/index.js.map +1 -1
- package/lib/plugins/selection/index.js +57 -6
- package/lib/plugins/selection/index.js.map +1 -1
- package/lib/plugins/server-side/index.js +60 -9
- package/lib/plugins/server-side/index.js.map +1 -1
- package/lib/plugins/tree/TreePlugin.d.ts +3 -3
- package/lib/plugins/tree/TreePlugin.d.ts.map +1 -1
- package/lib/plugins/tree/index.js +181 -126
- package/lib/plugins/tree/index.js.map +1 -1
- package/lib/plugins/tree/tree-data.d.ts +6 -6
- package/lib/plugins/tree/tree-data.d.ts.map +1 -1
- package/lib/plugins/tree/tree-detect.d.ts +5 -9
- package/lib/plugins/tree/tree-detect.d.ts.map +1 -1
- package/lib/plugins/tree/types.d.ts +16 -4
- package/lib/plugins/tree/types.d.ts.map +1 -1
- package/lib/plugins/undo-redo/UndoRedoPlugin.d.ts +7 -1
- package/lib/plugins/undo-redo/UndoRedoPlugin.d.ts.map +1 -1
- package/lib/plugins/undo-redo/index.js +65 -6
- package/lib/plugins/undo-redo/index.js.map +1 -1
- package/lib/plugins/visibility/VisibilityPlugin.d.ts +7 -1
- package/lib/plugins/visibility/VisibilityPlugin.d.ts.map +1 -1
- package/lib/plugins/visibility/index.js +61 -2
- package/lib/plugins/visibility/index.js.map +1 -1
- package/package.json +1 -1
- package/public.d.ts +104 -13
- package/public.d.ts.map +1 -1
- package/umd/grid.all.umd.js +37 -19
- package/umd/grid.all.umd.js.map +1 -1
- package/umd/grid.umd.js +25 -7
- package/umd/grid.umd.js.map +1 -1
- package/umd/plugins/clipboard.umd.js +2 -2
- package/umd/plugins/clipboard.umd.js.map +1 -1
- package/umd/plugins/editing.umd.js +2 -0
- package/umd/plugins/editing.umd.js.map +1 -0
- package/umd/plugins/export.umd.js +2 -2
- package/umd/plugins/export.umd.js.map +1 -1
- package/umd/plugins/filtering.umd.js +1 -1
- package/umd/plugins/filtering.umd.js.map +1 -1
- package/umd/plugins/grouping-columns.umd.js +1 -1
- package/umd/plugins/grouping-columns.umd.js.map +1 -1
- package/umd/plugins/grouping-rows.umd.js +1 -1
- package/umd/plugins/grouping-rows.umd.js.map +1 -1
- package/umd/plugins/master-detail.umd.js +1 -1
- package/umd/plugins/master-detail.umd.js.map +1 -1
- package/umd/plugins/multi-sort.umd.js +1 -1
- package/umd/plugins/multi-sort.umd.js.map +1 -1
- package/umd/plugins/pinned-rows.umd.js +1 -1
- package/umd/plugins/pinned-rows.umd.js.map +1 -1
- package/umd/plugins/reorder.umd.js +1 -1
- package/umd/plugins/reorder.umd.js.map +1 -1
- package/umd/plugins/tree.umd.js +1 -1
- package/umd/plugins/tree.umd.js.map +1 -1
- package/umd/plugins/undo-redo.umd.js +1 -1
- package/umd/plugins/undo-redo.umd.js.map +1 -1
- package/umd/plugins/visibility.umd.js +1 -1
- package/umd/plugins/visibility.umd.js.map +1 -1
- package/lib/core/internal/column-state.d.ts +0 -124
- package/lib/core/internal/column-state.d.ts.map +0 -1
- package/lib/core/internal/editors.d.ts.map +0 -1
- package/lib/core/internal/grid-internals.d.ts +0 -83
- package/lib/core/internal/grid-internals.d.ts.map +0 -1
|
@@ -15,7 +15,7 @@ export declare function computeColumnGroups<T>(columns: ColumnConfig<T>[]): Colu
|
|
|
15
15
|
* @param groups - The computed column groups
|
|
16
16
|
* @param columns - The column configurations
|
|
17
17
|
*/
|
|
18
|
-
export declare function applyGroupedHeaderCellClasses(headerRowEl: HTMLElement | null, groups: ColumnGroup[], columns: ColumnConfig
|
|
18
|
+
export declare function applyGroupedHeaderCellClasses(headerRowEl: HTMLElement | null, groups: ColumnGroup[], columns: ColumnConfig[]): void;
|
|
19
19
|
/**
|
|
20
20
|
* Build the group header row element.
|
|
21
21
|
*
|
|
@@ -23,19 +23,19 @@ export declare function applyGroupedHeaderCellClasses(headerRowEl: HTMLElement |
|
|
|
23
23
|
* @param columns - The column configurations
|
|
24
24
|
* @returns The group header row element, or null if no groups
|
|
25
25
|
*/
|
|
26
|
-
export declare function buildGroupHeaderRow(groups: ColumnGroup[], columns: ColumnConfig
|
|
26
|
+
export declare function buildGroupHeaderRow(groups: ColumnGroup[], columns: ColumnConfig[]): HTMLElement | null;
|
|
27
27
|
/**
|
|
28
28
|
* Check if any columns have group configuration.
|
|
29
29
|
*
|
|
30
30
|
* @param columns - The column configurations
|
|
31
31
|
* @returns True if at least one column has a group
|
|
32
32
|
*/
|
|
33
|
-
export declare function hasColumnGroups(columns: ColumnConfig
|
|
33
|
+
export declare function hasColumnGroups(columns: ColumnConfig[]): boolean;
|
|
34
34
|
/**
|
|
35
35
|
* Get group ID for a specific column.
|
|
36
36
|
*
|
|
37
37
|
* @param column - The column configuration
|
|
38
38
|
* @returns The group ID, or undefined if not grouped
|
|
39
39
|
*/
|
|
40
|
-
export declare function getColumnGroupId(column: ColumnConfig
|
|
40
|
+
export declare function getColumnGroupId(column: ColumnConfig): string | undefined;
|
|
41
41
|
//# sourceMappingURL=grouping-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouping-columns.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/grouping-columns/grouping-columns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"grouping-columns.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/plugins/grouping-columns/grouping-columns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,SAAS,CAAC;AAEhE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CA+DnF;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,EAAE,YAAY,EAAE,GACtB,IAAI,CA8BN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,GAAG,IAAI,CAuBtG;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAIzE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const g = {
|
|
2
2
|
expand: "▶",
|
|
3
3
|
collapse: "▼",
|
|
4
4
|
sortAsc: "▲",
|
|
@@ -9,6 +9,22 @@ const c = {
|
|
|
9
9
|
toolPanel: "☰"
|
|
10
10
|
};
|
|
11
11
|
class a {
|
|
12
|
+
/**
|
|
13
|
+
* Plugin dependencies - declare other plugins this one requires.
|
|
14
|
+
*
|
|
15
|
+
* Dependencies are validated when the plugin is attached.
|
|
16
|
+
* Required dependencies throw an error if missing.
|
|
17
|
+
* Optional dependencies log an info message if missing.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* static readonly dependencies: PluginDependency[] = [
|
|
22
|
+
* { name: 'editing', required: true, reason: 'Tracks cell edits for undo/redo' },
|
|
23
|
+
* { name: 'selection', required: false, reason: 'Enables selection-based undo' },
|
|
24
|
+
* ];
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
static dependencies;
|
|
12
28
|
/** Plugin version - override in subclass if needed */
|
|
13
29
|
version = "1.0.0";
|
|
14
30
|
/** CSS styles to inject into the grid's shadow DOM */
|
|
@@ -25,6 +41,12 @@ class a {
|
|
|
25
41
|
config;
|
|
26
42
|
/** User-provided configuration from constructor */
|
|
27
43
|
userConfig;
|
|
44
|
+
/**
|
|
45
|
+
* Plugin-level AbortController for event listener cleanup.
|
|
46
|
+
* Created fresh in attach(), aborted in detach().
|
|
47
|
+
* This ensures event listeners are properly cleaned up when plugins are re-attached.
|
|
48
|
+
*/
|
|
49
|
+
#e;
|
|
28
50
|
/**
|
|
29
51
|
* Default configuration - subclasses should override this getter.
|
|
30
52
|
* Note: This must be a getter (not property initializer) for proper inheritance
|
|
@@ -39,19 +61,48 @@ class a {
|
|
|
39
61
|
/**
|
|
40
62
|
* Called when the plugin is attached to a grid.
|
|
41
63
|
* Override to set up event listeners, initialize state, etc.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* attach(grid: GridElement): void {
|
|
68
|
+
* super.attach(grid);
|
|
69
|
+
* // Set up document-level listeners with auto-cleanup
|
|
70
|
+
* document.addEventListener('keydown', this.handleEscape, {
|
|
71
|
+
* signal: this.disconnectSignal
|
|
72
|
+
* });
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
42
75
|
*/
|
|
43
76
|
attach(e) {
|
|
44
|
-
this.grid = e, this.config = { ...this.defaultConfig, ...this.userConfig };
|
|
77
|
+
this.#e?.abort(), this.#e = new AbortController(), this.grid = e, this.config = { ...this.defaultConfig, ...this.userConfig };
|
|
45
78
|
}
|
|
46
79
|
/**
|
|
47
80
|
* Called when the plugin is detached from a grid.
|
|
48
81
|
* Override to clean up event listeners, timers, etc.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* detach(): void {
|
|
86
|
+
* // Clean up any state not handled by disconnectSignal
|
|
87
|
+
* this.selectedRows.clear();
|
|
88
|
+
* this.cache = null;
|
|
89
|
+
* }
|
|
90
|
+
* ```
|
|
49
91
|
*/
|
|
50
92
|
detach() {
|
|
93
|
+
this.#e?.abort(), this.#e = void 0;
|
|
51
94
|
}
|
|
52
95
|
/**
|
|
53
96
|
* Get another plugin instance from the same grid.
|
|
54
97
|
* Use for inter-plugin communication.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* const selection = this.getPlugin(SelectionPlugin);
|
|
102
|
+
* if (selection) {
|
|
103
|
+
* const selectedRows = selection.getSelectedRows();
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
55
106
|
*/
|
|
56
107
|
getPlugin(e) {
|
|
57
108
|
return this.grid?.getPlugin(e);
|
|
@@ -125,7 +176,7 @@ class a {
|
|
|
125
176
|
* document.addEventListener('keydown', handler, { signal: this.disconnectSignal });
|
|
126
177
|
*/
|
|
127
178
|
get disconnectSignal() {
|
|
128
|
-
return this.grid?.disconnectSignal;
|
|
179
|
+
return this.#e?.signal ?? this.grid?.disconnectSignal;
|
|
129
180
|
}
|
|
130
181
|
/**
|
|
131
182
|
* Get the grid-level icons configuration.
|
|
@@ -133,7 +184,7 @@ class a {
|
|
|
133
184
|
*/
|
|
134
185
|
get gridIcons() {
|
|
135
186
|
const e = this.grid?.gridConfig?.icons ?? {};
|
|
136
|
-
return { ...
|
|
187
|
+
return { ...g, ...e };
|
|
137
188
|
}
|
|
138
189
|
/**
|
|
139
190
|
* Resolve an icon value to string or HTMLElement.
|
|
@@ -164,13 +215,13 @@ class a {
|
|
|
164
215
|
}
|
|
165
216
|
// #endregion
|
|
166
217
|
}
|
|
167
|
-
function h(
|
|
168
|
-
if (!
|
|
218
|
+
function h(u) {
|
|
219
|
+
if (!u.length) return [];
|
|
169
220
|
const e = /* @__PURE__ */ new Map(), r = [], t = (o, n) => {
|
|
170
221
|
if (!n.length) return;
|
|
171
|
-
const
|
|
172
|
-
if (
|
|
173
|
-
|
|
222
|
+
const l = r[r.length - 1];
|
|
223
|
+
if (l && l.implicit && l.firstIndex + l.columns.length === o) {
|
|
224
|
+
l.columns.push(...n);
|
|
174
225
|
return;
|
|
175
226
|
}
|
|
176
227
|
r.push({
|
|
@@ -182,51 +233,51 @@ function h(l) {
|
|
|
182
233
|
});
|
|
183
234
|
};
|
|
184
235
|
let i = [], s = 0;
|
|
185
|
-
return
|
|
186
|
-
const
|
|
187
|
-
if (!
|
|
236
|
+
return u.forEach((o, n) => {
|
|
237
|
+
const l = o.group;
|
|
238
|
+
if (!l) {
|
|
188
239
|
i.length === 0 && (s = n), i.push(o);
|
|
189
240
|
return;
|
|
190
241
|
}
|
|
191
242
|
i.length && (t(s, i.slice()), i = []);
|
|
192
|
-
const
|
|
193
|
-
let d = e.get(
|
|
243
|
+
const c = typeof l == "string" ? l : l.id;
|
|
244
|
+
let d = e.get(c);
|
|
194
245
|
d || (d = {
|
|
195
|
-
id:
|
|
196
|
-
label: typeof
|
|
246
|
+
id: c,
|
|
247
|
+
label: typeof l == "string" ? void 0 : l.label,
|
|
197
248
|
columns: [],
|
|
198
249
|
firstIndex: n
|
|
199
|
-
}, e.set(
|
|
200
|
-
}), i.length && t(s, i), r.length === 1 && r[0].implicit && r[0].columns.length ===
|
|
250
|
+
}, e.set(c, d), r.push(d)), d.columns.push(o);
|
|
251
|
+
}), i.length && t(s, i), r.length === 1 && r[0].implicit && r[0].columns.length === u.length ? [] : r;
|
|
201
252
|
}
|
|
202
|
-
function p(
|
|
203
|
-
if (!e.length || !
|
|
253
|
+
function p(u, e, r) {
|
|
254
|
+
if (!e.length || !u) return;
|
|
204
255
|
const t = /* @__PURE__ */ new Map();
|
|
205
256
|
for (const s of e)
|
|
206
257
|
for (const o of s.columns)
|
|
207
|
-
o
|
|
208
|
-
const i = Array.from(
|
|
258
|
+
o.field && t.set(o.field, s.id);
|
|
259
|
+
const i = Array.from(u.querySelectorAll(".cell[data-field]"));
|
|
209
260
|
i.forEach((s) => {
|
|
210
261
|
const o = s.getAttribute("data-field") || "", n = t.get(o);
|
|
211
262
|
n && (s.classList.add("grouped"), s.getAttribute("data-group") || s.setAttribute("data-group", n));
|
|
212
263
|
});
|
|
213
264
|
for (const s of e) {
|
|
214
|
-
const o = s.columns[s.columns.length - 1], n = i.find((
|
|
265
|
+
const o = s.columns[s.columns.length - 1], n = i.find((l) => l.getAttribute("data-field") === o.field);
|
|
215
266
|
n && n.classList.add("group-end");
|
|
216
267
|
}
|
|
217
268
|
}
|
|
218
|
-
function f(
|
|
219
|
-
if (
|
|
269
|
+
function f(u, e) {
|
|
270
|
+
if (u.length === 0) return null;
|
|
220
271
|
const r = document.createElement("div");
|
|
221
272
|
r.className = "header-group-row", r.setAttribute("role", "row");
|
|
222
|
-
for (const t of
|
|
223
|
-
const i = t.firstIndex != null ? t.firstIndex : e.findIndex((
|
|
273
|
+
for (const t of u) {
|
|
274
|
+
const i = t.firstIndex != null ? t.firstIndex : e.findIndex((l) => t.columns.includes(l)), s = String(t.id).startsWith("__implicit__"), o = s ? "" : t.label || t.id, n = document.createElement("div");
|
|
224
275
|
n.className = "cell header-group-cell", s && n.classList.add("implicit-group"), n.setAttribute("data-group", String(t.id)), n.style.gridColumn = `${i + 1} / span ${t.columns.length}`, n.textContent = o, r.appendChild(n);
|
|
225
276
|
}
|
|
226
277
|
return r;
|
|
227
278
|
}
|
|
228
|
-
function m(
|
|
229
|
-
return
|
|
279
|
+
function m(u) {
|
|
280
|
+
return u.some((e) => e.group != null);
|
|
230
281
|
}
|
|
231
282
|
const b = ".header-group-row{display:grid;grid-auto-flow:column;background:var(--tbw-grouping-columns-header-bg, var(--tbw-color-header-bg));border-bottom:1px solid var(--tbw-grouping-columns-border, var(--tbw-color-border))}.header-group-cell{display:flex;align-items:center;justify-content:center;padding:4px 8px;font-weight:600;font-size:.9em;text-transform:uppercase;letter-spacing:.5px;border-right:1px solid var(--tbw-grouping-columns-border, var(--tbw-color-border))}.header-group-cell:last-child{border-right:none}.header-row .cell.grouped{border-top:none}.header-row .cell.group-end{border-right:2px solid var(--tbw-grouping-columns-separator, var(--tbw-color-border-strong))}.header-row .cell.group-end:last-child{border-right:none}.header-group-row.no-borders{border-bottom:none}.header-group-row.no-borders .header-group-cell{border-right:none}.header-row.no-group-borders .cell.group-end{border-right:1px solid var(--tbw-color-border)}";
|
|
232
283
|
class w extends a {
|