@toolbox-web/grid 1.14.0 → 1.15.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 +5 -1
- package/all.js +1888 -1433
- package/all.js.map +1 -1
- package/index.js +188 -149
- package/index.js.map +1 -1
- package/lib/core/grid.d.ts.map +1 -1
- package/lib/core/internal/loading.d.ts +2 -0
- package/lib/core/internal/loading.d.ts.map +1 -1
- package/lib/core/internal/rows.d.ts.map +1 -1
- package/lib/core/internal/validate-config.d.ts.map +1 -1
- package/lib/plugins/column-virtualization/ColumnVirtualizationPlugin.d.ts.map +1 -1
- package/lib/plugins/column-virtualization/index.js +1 -1
- package/lib/plugins/column-virtualization/index.js.map +1 -1
- package/lib/plugins/context-menu/ContextMenuPlugin.d.ts +20 -1
- package/lib/plugins/context-menu/ContextMenuPlugin.d.ts.map +1 -1
- package/lib/plugins/context-menu/index.d.ts +1 -1
- package/lib/plugins/context-menu/index.d.ts.map +1 -1
- package/lib/plugins/context-menu/index.js +153 -70
- package/lib/plugins/context-menu/index.js.map +1 -1
- package/lib/plugins/context-menu/menu.d.ts +7 -0
- package/lib/plugins/context-menu/menu.d.ts.map +1 -1
- package/lib/plugins/context-menu/types.d.ts +46 -0
- package/lib/plugins/context-menu/types.d.ts.map +1 -1
- package/lib/plugins/editing/EditingPlugin.d.ts.map +1 -1
- package/lib/plugins/editing/index.js +214 -197
- package/lib/plugins/editing/index.js.map +1 -1
- package/lib/plugins/filtering/FilteringPlugin.d.ts +9 -1
- package/lib/plugins/filtering/FilteringPlugin.d.ts.map +1 -1
- package/lib/plugins/filtering/filter-model.d.ts.map +1 -1
- package/lib/plugins/filtering/index.js +348 -283
- package/lib/plugins/filtering/index.js.map +1 -1
- package/lib/plugins/grouping-columns/GroupingColumnsPlugin.d.ts +5 -1
- package/lib/plugins/grouping-columns/GroupingColumnsPlugin.d.ts.map +1 -1
- package/lib/plugins/grouping-columns/index.js +242 -109
- package/lib/plugins/grouping-columns/index.js.map +1 -1
- package/lib/plugins/grouping-columns/types.d.ts +7 -0
- package/lib/plugins/grouping-columns/types.d.ts.map +1 -1
- package/lib/plugins/pinned-columns/PinnedColumnsPlugin.d.ts +11 -1
- package/lib/plugins/pinned-columns/PinnedColumnsPlugin.d.ts.map +1 -1
- package/lib/plugins/pinned-columns/index.d.ts +1 -1
- package/lib/plugins/pinned-columns/index.d.ts.map +1 -1
- package/lib/plugins/pinned-columns/index.js +174 -79
- package/lib/plugins/pinned-columns/index.js.map +1 -1
- package/lib/plugins/pinned-columns/pinned-columns.d.ts +23 -4
- package/lib/plugins/pinned-columns/pinned-columns.d.ts.map +1 -1
- package/lib/plugins/pinned-columns/types.d.ts +21 -9
- package/lib/plugins/pinned-columns/types.d.ts.map +1 -1
- package/lib/plugins/reorder/index.js.map +1 -1
- package/lib/plugins/responsive/index.js.map +1 -1
- package/lib/plugins/row-reorder/index.js.map +1 -1
- package/lib/plugins/selection/SelectionPlugin.d.ts.map +1 -1
- package/lib/plugins/selection/index.js +122 -122
- package/lib/plugins/selection/index.js.map +1 -1
- package/lib/plugins/visibility/VisibilityPlugin.d.ts +42 -2
- package/lib/plugins/visibility/VisibilityPlugin.d.ts.map +1 -1
- package/lib/plugins/visibility/index.d.ts +1 -1
- package/lib/plugins/visibility/index.d.ts.map +1 -1
- package/lib/plugins/visibility/index.js +219 -59
- package/lib/plugins/visibility/index.js.map +1 -1
- package/lib/plugins/visibility/types.d.ts +25 -0
- package/lib/plugins/visibility/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/umd/grid.all.umd.js +30 -30
- package/umd/grid.all.umd.js.map +1 -1
- package/umd/grid.umd.js +4 -4
- package/umd/grid.umd.js.map +1 -1
- package/umd/plugins/column-virtualization.umd.js +1 -1
- package/umd/plugins/column-virtualization.umd.js.map +1 -1
- package/umd/plugins/context-menu.umd.js +1 -1
- package/umd/plugins/context-menu.umd.js.map +1 -1
- package/umd/plugins/editing.umd.js +1 -1
- package/umd/plugins/editing.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/pinned-columns.umd.js +1 -1
- package/umd/plugins/pinned-columns.umd.js.map +1 -1
- package/umd/plugins/selection.umd.js +2 -2
- package/umd/plugins/selection.umd.js.map +1 -1
- package/umd/plugins/visibility.umd.js +1 -1
- package/umd/plugins/visibility.umd.js.map +1 -1
package/index.js
CHANGED
|
@@ -345,10 +345,10 @@ class Tt {
|
|
|
345
345
|
const e = (this.#o.columns?.length ?? 0) > 0;
|
|
346
346
|
if (!this.#f && e)
|
|
347
347
|
return;
|
|
348
|
-
const i = this.#
|
|
349
|
-
this.#f = !1, this.#a = i, Object.freeze(this.#a), this.#a.columns && Object.freeze(this.#a.columns), this.#o = this.#
|
|
348
|
+
const i = this.#N();
|
|
349
|
+
this.#f = !1, this.#a = i, Object.freeze(this.#a), this.#a.columns && Object.freeze(this.#a.columns), this.#o = this.#x(this.#a), this.#m();
|
|
350
350
|
}
|
|
351
|
-
#
|
|
351
|
+
#x(e) {
|
|
352
352
|
const i = { ...e };
|
|
353
353
|
return e.columns && (i.columns = e.columns.map((o) => ({ ...o }))), e.shell && (i.shell = {
|
|
354
354
|
...e.shell,
|
|
@@ -374,7 +374,7 @@ class Tt {
|
|
|
374
374
|
n && (!o.renderer && !o.viewRenderer && n.renderer && (o.renderer = n.renderer), !o.format && n.format && (o.format = n.format), !o.editor && n.editor && (o.editor = n.editor), !o.editorParams && n.editorParams && (o.editorParams = n.editorParams));
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
|
-
#
|
|
377
|
+
#N() {
|
|
378
378
|
const e = this.#l ? { ...this.#l } : {}, i = Array.isArray(e.columns) ? [...e.columns] : [], o = (this.#d ?? []).map((s) => ({
|
|
379
379
|
...s
|
|
380
380
|
}));
|
|
@@ -462,7 +462,7 @@ class Tt {
|
|
|
462
462
|
l.applyColumnState(a.field, a);
|
|
463
463
|
}
|
|
464
464
|
resetState(e) {
|
|
465
|
-
this.#C = void 0, this.#r.setSortState(null), this.#o = this.#
|
|
465
|
+
this.#C = void 0, this.#r.setSortState(null), this.#o = this.#x(this.#a), this.#m();
|
|
466
466
|
for (const i of e)
|
|
467
467
|
if (i.applyColumnState)
|
|
468
468
|
for (const o of this.columns)
|
|
@@ -707,7 +707,10 @@ function zt(t, e, i, o, n) {
|
|
|
707
707
|
h.__epoch = o, h.__rowDataRef = p, h.parentNode !== s && s.appendChild(h);
|
|
708
708
|
continue;
|
|
709
709
|
}
|
|
710
|
-
const w = h.__epoch, C = h.__rowDataRef
|
|
710
|
+
const w = h.__epoch, C = h.__rowDataRef;
|
|
711
|
+
let m = h.children.length;
|
|
712
|
+
m > a && h.lastElementChild?.classList.contains("tbw-row-loading-overlay") && m--;
|
|
713
|
+
const S = w === o && m === a, A = C !== p;
|
|
711
714
|
let v = !1;
|
|
712
715
|
if (S && A) {
|
|
713
716
|
for (let R = 0; R < a; R++)
|
|
@@ -865,7 +868,7 @@ function le(t, e, i, o) {
|
|
|
865
868
|
}
|
|
866
869
|
}
|
|
867
870
|
function V(t, e, i, o) {
|
|
868
|
-
e.innerHTML = "";
|
|
871
|
+
e.classList.remove("tbw-row-loading"), e.removeAttribute("aria-busy"), e.innerHTML = "";
|
|
869
872
|
const n = t._visibleColumns, r = n.length, s = t._focusRow, l = t._focusCol, a = t, c = t._hasAfterCellRenderHook?.() ?? !1, d = document.createDocumentFragment();
|
|
870
873
|
for (let f = 0; f < r; f++) {
|
|
871
874
|
const u = n[f], g = Lt();
|
|
@@ -1306,7 +1309,15 @@ function jt(t) {
|
|
|
1306
1309
|
t?.remove();
|
|
1307
1310
|
}
|
|
1308
1311
|
function Kt(t, e) {
|
|
1309
|
-
|
|
1312
|
+
if (e) {
|
|
1313
|
+
if (t.classList.add("tbw-row-loading"), t.setAttribute("aria-busy", "true"), !t.querySelector(".tbw-row-loading-overlay")) {
|
|
1314
|
+
const i = document.createElement("div");
|
|
1315
|
+
i.className = "tbw-row-loading-overlay", i.setAttribute("aria-hidden", "true");
|
|
1316
|
+
const o = document.createElement("div");
|
|
1317
|
+
o.className = "tbw-row-loading-spinner", i.appendChild(o), t.appendChild(i);
|
|
1318
|
+
}
|
|
1319
|
+
} else
|
|
1320
|
+
t.classList.remove("tbw-row-loading"), t.removeAttribute("aria-busy"), t.querySelector(".tbw-row-loading-overlay")?.remove();
|
|
1310
1321
|
}
|
|
1311
1322
|
function Qt(t, e) {
|
|
1312
1323
|
e ? (t.classList.add("tbw-cell-loading"), t.setAttribute("aria-busy", "true")) : (t.classList.remove("tbw-cell-loading"), t.removeAttribute("aria-busy"));
|
|
@@ -2149,11 +2160,18 @@ const xi = [
|
|
|
2149
2160
|
level: "column",
|
|
2150
2161
|
description: 'the "group" column property'
|
|
2151
2162
|
},
|
|
2163
|
+
{
|
|
2164
|
+
property: "pinned",
|
|
2165
|
+
pluginName: "pinnedColumns",
|
|
2166
|
+
level: "column",
|
|
2167
|
+
description: 'the "pinned" column property',
|
|
2168
|
+
isUsed: (t) => t === "left" || t === "right" || t === "start" || t === "end"
|
|
2169
|
+
},
|
|
2152
2170
|
{
|
|
2153
2171
|
property: "sticky",
|
|
2154
2172
|
pluginName: "pinnedColumns",
|
|
2155
2173
|
level: "column",
|
|
2156
|
-
description: 'the "sticky" column property',
|
|
2174
|
+
description: 'the "sticky" column property (deprecated, use "pinned")',
|
|
2157
2175
|
isUsed: (t) => t === "left" || t === "right" || t === "start" || t === "end"
|
|
2158
2176
|
}
|
|
2159
2177
|
], Hi = [
|
|
@@ -2695,7 +2713,7 @@ class oe {
|
|
|
2695
2713
|
return e.sort((i, o) => (i.content.order ?? 0) - (o.content.order ?? 0));
|
|
2696
2714
|
}
|
|
2697
2715
|
}
|
|
2698
|
-
const Ui = "@layer tbw-base{tbw-grid{.tbw-expanding{animation:tbw-expand var(--tbw-animation-duration) var(--tbw-animation-easing) forwards;overflow:hidden}.tbw-collapsing{animation:tbw-collapse var(--tbw-animation-duration) var(--tbw-animation-easing) forwards;overflow:hidden}&[data-animation-mode=off]{--tbw-animation-enabled: 0;--tbw-animation-duration: 0ms;.data-grid-row[data-animating]{animation:none}}}tbw-grid .data-grid-row[data-animating=change]{animation:tbw-row-change var(--tbw-row-change-duration) ease-out}tbw-grid .data-grid-row[data-animating=insert]{animation:tbw-row-insert var(--tbw-row-insert-duration) ease-out;will-change:max-height,opacity}tbw-grid .data-grid-row[data-animating=remove]{animation:tbw-row-remove var(--tbw-row-remove-duration) ease-out forwards;will-change:max-height,opacity,transform;pointer-events:none}}@keyframes tbw-expand{0%{opacity:0;max-height:0;transform:translateY(-8px)}to{opacity:1;max-height:500px;transform:translateY(0)}}@keyframes tbw-collapse{0%{opacity:1;max-height:500px;transform:translateY(0)}to{opacity:0;max-height:0;transform:translateY(-8px)}}@keyframes tbw-row-change{0%{background-color:transparent}20%{background-color:var(--tbw-row-change-color)}to{background-color:transparent}}@keyframes tbw-row-insert{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:var(--tbw-row-height, 28px);overflow:hidden}}@keyframes tbw-row-remove{0%{opacity:1;transform:translateY(0);max-height:var(--tbw-row-height, 28px)}to{opacity:0;max-height:0;transform:translateY(-8px)}}@keyframes tbw-spin{to{transform:rotate(360deg)}}@keyframes tbw-fade-in{0%{opacity:0}to{opacity:1}}", Vi = '@layer tbw-base{tbw-grid{color-scheme:inherit;position:relative;display:block;width:100%;height:100%;min-height:0;contain:content;font-family:var(--tbw-font-family);font-size:var(--tbw-font-size);font-feature-settings:"tnum","lnum";background:var(--tbw-color-bg);color:var(--tbw-color-fg);border:1px solid var(--tbw-color-border);border-radius:var(--tbw-border-radius);overflow:clip;outline:none;&,*{box-sizing:border-box}.tbw-grid-root{position:relative;display:flex;flex-direction:column;height:100%;&.has-shell{display:flex;flex-direction:column;height:100%}&:has(.selected){user-select:none}}.rows-body-wrapper{flex:1;min-height:0;display:flex;flex-direction:row;width:100%;min-width:fit-content}.rows-body{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:visible}.rows-container{display:flex;flex-direction:row;flex:1;min-height:0;overflow:visible}.rows-viewport{flex:1;min-width:0;position:relative;display:block;overflow:clip;.rows{position:absolute;top:0;left:0;min-width:100%;will-change:transform;z-index:var(--tbw-z-layer-rows, 1)}}.faux-vscroll{position:sticky;inset-inline-end:0;flex-shrink:0;width:auto;overflow-y:auto;overflow-x:hidden;z-index:var(--tbw-z-layer-header, 30)}.faux-vscroll-spacer{width:1px}&[data-has-focus]{.cell-focus,.row-focus{outline:var(--tbw-focus-outline);outline-offset:var(--tbw-focus-outline-offset)}}.sticky-left,.sticky-right{position:sticky;z-index:25}.sticky-left{box-shadow:1px 0 0 var(--tbw-color-border)}.sticky-right{box-shadow:-1px 0 0 var(--tbw-color-border)}}}', Bi = '@layer tbw-base{tbw-grid{.header{display:block;flex-shrink:0;z-index:var(--tbw-z-layer-header, 30);background:var(--tbw-color-header-bg);overflow:visible}.header-group-row{display:grid;grid-template-columns:var(--tbw-column-template);background:var(--tbw-color-header-bg);z-index:var(--tbw-z-layer-header, 30)}.header-group-cell{display:flex;align-items:center;justify-content:flex-start;padding:var(--tbw-cell-padding-header, 2px 8px);color:var(--tbw-color-header-group-fg, var(--tbw-color-header-fg));font-weight:var(--tbw-font-weight-header-group, var(--tbw-font-weight-header));justify-content:var(--tbw-align-header-group, var(--tbw-align-header, flex-start));&:not(:last-child){border-right:2px solid var(--tbw-color-border)}}.header-row{display:grid;grid-template-columns:var(--tbw-column-template);color:var(--tbw-color-header-fg);font-size:var(--tbw-font-size-header);min-height:var(--tbw-header-height);border-bottom:var(--tbw-border-header);z-index:var(--tbw-z-layer-header, 30);text-transform:var(--tbw-header-text-transform);letter-spacing:var(--tbw-header-letter-spacing);>.cell{display:flex;align-items:center;gap:4px;padding:var(--tbw-cell-padding-header, 2px 8px);background-color:var(--tbw-color-header-bg);font-weight:var(--tbw-font-weight-header);border-right:1px solid var(--tbw-color-border-cell);overflow:visible;min-width:0;>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:inherit}>span[part~=sort-indicator]{flex-shrink:0;opacity:.6;color:var(--tbw-sort-indicator-color);display:var(--tbw-sort-indicator-display, inline-flex);visibility:var(--tbw-sort-indicator-visibility, visible);transition:opacity .15s,visibility 0s,display 0s allow-discrete;transition-behavior:allow-discrete}&:hover>span[part~=sort-indicator]{display:inline-flex;visibility:visible}&[aria-sort=ascending]>span[part~=sort-indicator],&[aria-sort=descending]>span[part~=sort-indicator]{display:inline-flex;visibility:visible;opacity:1;color:var(--tbw-sort-indicator-active-color)}&:last-child{border-right:0;.resize-handle{right:0;width:calc(var(--tbw-resize-handle-width) / 2)}}&.grouped.group-end:not(:last-child){border-right:2px solid var(--tbw-color-border)}&.resizable{position:relative}&.sticky-left,&.sticky-right{background:var(--tbw-color-header-bg);z-index:35}}}.sortable{cursor:pointer;user-select:none}.resize-handle{position:absolute;top:0;right:calc(var(--tbw-resize-handle-width) / -2);width:var(--tbw-resize-handle-width);height:100%;cursor:e-resize;user-select:none;touch-action:none;z-index:20;background:var(--tbw-resize-handle-color);transition:background .12s ease;border-radius:var(--tbw-resize-handle-border-radius);&:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:var(--tbw-resize-indicator-width, 2px);height:0;background:var(--tbw-resize-indicator-color, var(--tbw-color-accent));opacity:0;pointer-events:none;transition:opacity .12s ease,height 0s .12s;z-index:1000}&:hover{background:var(--tbw-resize-handle-color-hover);&:after{height:100vh;opacity:var(--tbw-resize-indicator-opacity, .6);transition:opacity .12s ease,height 0s}}}}}', Gi = '@layer tbw-base{.tbw-loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:light-dark(rgba(255,255,255,.7),rgba(0,0,0,.5));z-index:1000;pointer-events:all;animation:tbw-fade-in .15s ease-out}.tbw-spinner{--tbw-spinner-size: 48px;--tbw-spinner-border-width: 3px;--tbw-spinner-color: var(--tbw-color-accent);--tbw-spinner-track-color: var(--tbw-color-border);width:var(--tbw-spinner-size);height:var(--tbw-spinner-size);border:var(--tbw-spinner-border-width) solid var(--tbw-spinner-track-color);border-top-color:var(--tbw-spinner-color);border-radius:50%;animation:tbw-spin .8s linear infinite}.tbw-spinner--large{--tbw-spinner-size: min(48px, calc(100% - 16px) )}.tbw-spinner--small{--tbw-spinner-size: calc(var(--tbw-row-height, 28px) * .6);--tbw-spinner-border-width: 2px}.data-grid-row.tbw-row-loading{position:relative;pointer-events:none;&:before{content:"";position:absolute;inset:0;background:light-dark(rgba(255,255,255,.7),rgba(0,0,0,.5));z-index:10;animation:tbw-fade-in .15s ease-out}&:after{--_spinner-size: calc(var(--tbw-row-height, 28px) * .6);content:"";position:absolute;left:var(--tbw-spacing-md);top:0;bottom:0;margin:auto 0;width:var(--_spinner-size);height:var(--_spinner-size);border:2px solid var(--tbw-spinner-track-color, var(--tbw-color-border));border-top-color:var(--tbw-spinner-color, var(--tbw-color-accent));border-radius:50%;animation:tbw-spin .8s linear infinite;z-index:11}}.cell.tbw-cell-loading{position:relative;pointer-events:none;&:before{content:"";position:absolute;inset:0;background:light-dark(rgba(255,255,255,.7),rgba(0,0,0,.5));z-index:10;animation:tbw-fade-in .15s ease-out}&:after{--_spinner-size: calc(var(--tbw-row-height, 28px) * .5);content:"";position:absolute;left:var(--tbw-spacing-sm);top:0;bottom:0;margin:auto 0;width:var(--_spinner-size);height:var(--_spinner-size);border:2px solid var(--tbw-spinner-track-color, var(--tbw-color-border));border-top-color:var(--tbw-spinner-color, var(--tbw-color-accent));border-radius:50%;animation:tbw-spin .8s linear infinite;z-index:11}}}', Xi = "@layer tbw-base{@media(forced-colors:active){tbw-grid{--tbw-color-border: CanvasText;--tbw-color-border-strong: CanvasText;--tbw-color-border-cell: CanvasText;--tbw-color-border-header: CanvasText;--tbw-color-fg: CanvasText;--tbw-color-bg: Canvas;--tbw-color-panel-bg: Canvas;--tbw-color-header-bg: Canvas;--tbw-color-header-fg: CanvasText;--tbw-color-accent: Highlight;--tbw-color-accent-fg: HighlightText;--tbw-color-selection: Highlight;--tbw-color-row-hover: Highlight;--tbw-focus-outline: 2px solid Highlight;--tbw-range-border-color: Highlight;.cell:focus,.cell.active-cell{outline:2px solid Highlight!important;outline-offset:-2px}.data-grid-row[aria-selected=true]{background:Highlight!important;color:HighlightText!important}}}@media(prefers-reduced-motion:reduce){tbw-grid[data-animation-mode=reduced-motion]{--tbw-animation-enabled: 0;--tbw-animation-duration: 0ms;.data-grid-row[data-animating]{animation:none}}}}", Yi = "@layer tbw-base{tbw-grid{.data-grid-row{display:grid;grid-template-columns:var(--tbw-column-template);contain:layout style;&:nth-child(2n){background:var(--tbw-color-row-alt)}&:hover{background:var(--tbw-color-row-hover)}>.cell{display:block;padding:var(--tbw-cell-padding, 2px 8px);border-bottom:var(--tbw-row-divider);min-height:var(--tbw-row-height);align-content:center;border-right:1px solid var(--tbw-color-border-cell);overflow:hidden;min-width:0;white-space:var(--tbw-cell-white-space, nowrap);text-overflow:ellipsis;>*{overflow:hidden;text-overflow:ellipsis;white-space:inherit;min-width:0}&:last-child{border-right:0}&[data-type=boolean]{text-align:center;input[type=checkbox]{margin:0;width:var(--tbw-checkbox-size);height:var(--tbw-checkbox-size);vertical-align:middle}}&.selected:focus-visible,&:focus-visible:not(.cell-focus){outline:none}&.sticky-left,&.sticky-right{background:var(--tbw-color-panel-bg)}}}.selecting .data-grid-row>.cell{user-select:none}}}", ji = "@layer tbw-base{tbw-grid{.tbw-shell-header{display:flex;align-items:center;gap:8px;min-height:var(--tbw-shell-header-height);padding:0 8px;background:var(--tbw-shell-header-bg);border-bottom:1px solid var(--tbw-shell-header-border);flex-shrink:0}.tbw-shell-title{font-size:var(--tbw-shell-title-font-size);font-weight:var(--tbw-shell-title-font-weight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbw-shell-content{flex:1;display:flex;align-items:center;gap:12px;min-width:0;overflow:hidden}.tbw-shell-toolbar{display:flex;align-items:center;gap:var(--tbw-toolbar-button-gap);flex-shrink:0}.tbw-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tbw-toolbar-button-size);height:var(--tbw-toolbar-button-size);padding:0;border:1px solid transparent;border-radius:var(--tbw-border-radius);background:transparent;color:var(--tbw-color-fg);cursor:pointer;font-size:16px;transition:background var(--tbw-transition-duration) var(--tbw-transition-ease),border-color var(--tbw-transition-duration) var(--tbw-transition-ease);&:hover{background:var(--tbw-color-row-hover)}&:focus-visible{outline:var(--tbw-focus-outline);outline-offset:var(--tbw-focus-outline-offset)}&.active{background:var(--tbw-focus-background);border-color:var(--tbw-color-accent)}&:disabled{opacity:.5;cursor:not-allowed}}.tbw-toolbar-separator{width:1px;height:20px;background:var(--tbw-color-border);margin:0 4px}.tbw-shell-body{position:relative;display:flex;flex:1;min-height:0;overflow:visible}.tbw-grid-content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:row;overflow:hidden}.tbw-scroll-area{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow-x:auto;overflow-y:hidden;overflow-anchor:none}}}", Ki = "@layer tbw-base{tbw-grid{.tbw-tool-panel{position:absolute;top:0;bottom:0;right:0;width:0;overflow:hidden;background:var(--tbw-tool-panel-bg);border-left:1px solid var(--tbw-tool-panel-border);transition:width var(--tbw-tool-panel-transition);display:flex;flex-direction:column;z-index:30;box-shadow:-2px 0 8px var(--tbw-color-shadow);&[data-position=left]{right:auto;left:0;border-left:none;border-right:1px solid var(--tbw-tool-panel-border);box-shadow:2px 0 8px var(--tbw-color-shadow)}&.open{width:var(--tbw-tool-panel-width)}}.tbw-tool-panel-resize{position:absolute;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background var(--tbw-transition-duration) var(--tbw-transition-ease);&[data-handle-position=left]{left:0}&[data-handle-position=right]{right:0}&:hover,&.resizing{background:var(--tbw-color-accent)}}.tbw-tool-panel-header{display:flex;align-items:center;justify-content:space-between;min-height:var(--tbw-tool-panel-header-height);padding:0 12px;border-bottom:1px solid var(--tbw-tool-panel-border);flex-shrink:0}.tbw-tool-panel-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbw-tool-panel-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--tbw-border-radius);background:transparent;color:var(--tbw-color-fg-muted);cursor:pointer;font-size:14px;&:hover{background:var(--tbw-color-row-hover);color:var(--tbw-color-fg)}}.tbw-tool-panel-content{flex:1;overflow:auto}.tbw-accordion{display:flex;flex-direction:column;gap:0}.tbw-accordion-section{border-bottom:1px solid var(--tbw-tool-panel-border);&:last-child{border-bottom:none}&.single .tbw-accordion-header{cursor:default;&:hover{background:transparent}}&.expanded{.tbw-accordion-chevron{transform:rotate(90deg)}.tbw-accordion-content{display:block}}}.tbw-accordion-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:transparent;color:var(--tbw-color-fg);font-size:13px;font-weight:600;text-align:start;cursor:pointer;user-select:none;&:hover{background:var(--tbw-color-row-hover)}}.tbw-accordion-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:10px;color:var(--tbw-color-fg-muted);transition:transform .15s ease;flex-shrink:0}.tbw-accordion-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:14px;flex-shrink:0}.tbw-accordion-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbw-accordion-content{display:none}}}", Qi = "@layer tbw-base{tbw-grid{--tbw-base-icon-size: 1em;--tbw-base-radius: .25em;--tbw-font-size: 1em;--tbw-font-size-sm: .9285em;--tbw-font-size-xs: .7857em;--tbw-font-size-2xs: .7142em;--tbw-spacing-xs: .25em;--tbw-spacing-sm: .375em;--tbw-spacing-md: .5em;--tbw-spacing-lg: .75em;--tbw-spacing-xl: 1em;--tbw-icon-size: var(--tbw-base-icon-size);--tbw-icon-size-sm: .875em;--tbw-checkbox-size: var(--tbw-base-icon-size);--tbw-toggle-size: 1.25em;--tbw-border-radius: var(--tbw-base-radius);--tbw-color-bg: transparent;--tbw-color-panel-bg: light-dark(#eeeeee, #222222);--tbw-color-fg: light-dark(#222222, #eeeeee);--tbw-color-fg-muted: light-dark(#555555, #aaaaaa);--tbw-color-accent: light-dark(#3b82f6, #3b82f6);--tbw-color-accent-fg: light-dark(#ffffff, #000000);--tbw-color-success: light-dark(hsl(122, 39%, 40%), hsl(122, 39%, 49%));--tbw-color-warning: light-dark(hsl(38, 92%, 50%), hsl(38, 92%, 50%));--tbw-color-error: light-dark(hsl(0, 65%, 51%), hsl(0, 65%, 55%));--tbw-color-danger: var(--tbw-color-error);--tbw-color-selection: light-dark(#fff7d6, #333333);--tbw-color-row-alt: var(--tbw-color-bg);--tbw-color-row-hover: light-dark(#f0f6ff, #1c1c1c);--tbw-color-header-bg: color-mix(in hsl, var(--tbw-color-panel-bg) 85%, var(--tbw-color-fg));--tbw-color-header-fg: color-mix(in hsl, var(--tbw-color-fg) 75%, var(--tbw-color-panel-bg));--tbw-color-border: light-dark(#d0d0d4, #454545);--tbw-color-border-strong: light-dark(#777777, #666666);--tbw-color-border-cell: var(--tbw-color-border);--tbw-color-border-header: var(--tbw-color-border);--tbw-color-shadow: light-dark(rgba(0, 0, 0, .1), rgba(0, 0, 0, .3));--tbw-font-family: inherit;--tbw-font-size-header: var(--tbw-font-size);--tbw-font-weight-header: bold;--tbw-cell-padding-header: var(--tbw-spacing-xs) var(--tbw-spacing-md);--tbw-cell-padding-v: var(--tbw-spacing-xs);--tbw-cell-padding-h: var(--tbw-spacing-md);--tbw-cell-padding: var(--tbw-cell-padding-v) var(--tbw-cell-padding-h);--tbw-cell-padding-input: var(--tbw-spacing-xs) var(--tbw-spacing-sm);--tbw-row-height: 1.75em;--tbw-header-height: 1.875em;--tbw-cell-white-space: nowrap;--tbw-border-width: 1px;--tbw-border-style: solid;--tbw-border-input: var(--tbw-border-width) var(--tbw-border-style) var(--tbw-color-border-strong);--tbw-border-header: var(--tbw-border-width) var(--tbw-border-style) var(--tbw-color-border-header);--tbw-row-divider: var(--tbw-border-width) var(--tbw-border-style) var(--tbw-color-border-cell);--tbw-row-hover-outline: 0;--tbw-color-active-row-bg: var(--tbw-color-selection);--tbw-active-row-outline: 0;--tbw-focus-outline-width: 2px;--tbw-focus-outline: var(--tbw-focus-outline-width) var(--tbw-border-style) var(--tbw-color-accent);--tbw-focus-outline-offset: -2px;--tbw-focus-background: rgba(from var(--tbw-color-accent) r g b / 12%);--tbw-range-border-color: var(--tbw-color-accent);--tbw-range-selection-bg: rgba(from var(--tbw-range-border-color) r g b / 12%);--tbw-resize-handle-width: var(--tbw-spacing-sm);--tbw-resize-handle-color: transparent;--tbw-resize-handle-color-hover: var(--tbw-color-accent);--tbw-resize-handle-border-radius: 0;--tbw-resize-indicator-width: 2px;--tbw-resize-indicator-color: var(--tbw-color-accent);--tbw-resize-indicator-opacity: .6;--tbw-transition-duration: .12s;--tbw-transition-ease: ease;--tbw-animation-duration: .2s;--tbw-animation-easing: ease-out;--tbw-animation-enabled: 1;--tbw-row-change-duration: .5s;--tbw-row-insert-duration: .3s;--tbw-row-remove-duration: .2s;--tbw-row-change-color: rgba(from var(--tbw-color-accent) r g b / 25%);--tbw-sort-indicator-color: var(--tbw-color-fg-muted);--tbw-sort-indicator-active-color: var(--tbw-color-accent);--tbw-sort-indicator-display: inline-flex;--tbw-sort-indicator-visibility: visible;--tbw-header-text-transform: none;--tbw-header-letter-spacing: normal;--tbw-color-header-separator: var(--tbw-color-border-cell);--tbw-density-scale: 1;--tbw-shell-header-height: 2.75em;--tbw-shell-header-bg: var(--tbw-color-panel-bg);--tbw-shell-header-border: var(--tbw-color-border);--tbw-shell-title-font-size: var(--tbw-font-size);--tbw-shell-title-font-weight: 600;--tbw-tool-panel-width: 17.5em;--tbw-tool-panel-bg: var(--tbw-color-panel-bg);--tbw-tool-panel-border: var(--tbw-color-border);--tbw-tool-panel-header-height: 2.5em;--tbw-tool-panel-transition: var(--tbw-animation-duration) var(--tbw-animation-easing);--tbw-toolbar-button-size: 2em;--tbw-toolbar-button-gap: var(--tbw-spacing-xs);--tbw-panel-padding: var(--tbw-spacing-lg);--tbw-panel-gap: var(--tbw-spacing-md);--tbw-menu-item-padding: var(--tbw-spacing-sm) var(--tbw-spacing-lg);--tbw-menu-item-gap: var(--tbw-spacing-md);--tbw-menu-min-width: 10rem;--tbw-button-padding: var(--tbw-spacing-sm) var(--tbw-spacing-lg);--tbw-button-padding-sm: var(--tbw-spacing-xs) var(--tbw-spacing-md);--tbw-input-height: var(--tbw-row-height);--tbw-input-padding: 0 var(--tbw-spacing-md);--tbw-detail-padding: var(--tbw-spacing-xl);--tbw-detail-max-height: 31.25rem;--tbw-indicator-size: var(--tbw-spacing-sm)}}", Zi = `/**
|
|
2716
|
+
const Ui = "@layer tbw-base{tbw-grid{.tbw-expanding{animation:tbw-expand var(--tbw-animation-duration) var(--tbw-animation-easing) forwards;overflow:hidden}.tbw-collapsing{animation:tbw-collapse var(--tbw-animation-duration) var(--tbw-animation-easing) forwards;overflow:hidden}&[data-animation-mode=off]{--tbw-animation-enabled: 0;--tbw-animation-duration: 0ms;.data-grid-row[data-animating]{animation:none}}}tbw-grid .data-grid-row[data-animating=change]{animation:tbw-row-change var(--tbw-row-change-duration) ease-out}tbw-grid .data-grid-row[data-animating=insert]{animation:tbw-row-insert var(--tbw-row-insert-duration) ease-out;will-change:max-height,opacity}tbw-grid .data-grid-row[data-animating=remove]{animation:tbw-row-remove var(--tbw-row-remove-duration) ease-out forwards;will-change:max-height,opacity,transform;pointer-events:none}}@keyframes tbw-expand{0%{opacity:0;max-height:0;transform:translateY(-8px)}to{opacity:1;max-height:500px;transform:translateY(0)}}@keyframes tbw-collapse{0%{opacity:1;max-height:500px;transform:translateY(0)}to{opacity:0;max-height:0;transform:translateY(-8px)}}@keyframes tbw-row-change{0%{background-color:transparent}20%{background-color:var(--tbw-row-change-color)}to{background-color:transparent}}@keyframes tbw-row-insert{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:var(--tbw-row-height, 28px);overflow:hidden}}@keyframes tbw-row-remove{0%{opacity:1;transform:translateY(0);max-height:var(--tbw-row-height, 28px)}to{opacity:0;max-height:0;transform:translateY(-8px)}}@keyframes tbw-spin{to{transform:rotate(360deg)}}@keyframes tbw-fade-in{0%{opacity:0}to{opacity:1}}", Vi = '@layer tbw-base{tbw-grid{color-scheme:inherit;position:relative;display:block;width:100%;height:100%;min-height:0;contain:content;font-family:var(--tbw-font-family);font-size:var(--tbw-font-size);font-feature-settings:"tnum","lnum";background:var(--tbw-color-bg);color:var(--tbw-color-fg);border:1px solid var(--tbw-color-border);border-radius:var(--tbw-border-radius);overflow:clip;outline:none;&,*{box-sizing:border-box}.tbw-grid-root{position:relative;display:flex;flex-direction:column;height:100%;&.has-shell{display:flex;flex-direction:column;height:100%}&:has(.selected){user-select:none}}.rows-body-wrapper{flex:1;min-height:0;display:flex;flex-direction:row;width:100%;min-width:fit-content}.rows-body{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:visible}.rows-container{display:flex;flex-direction:row;flex:1;min-height:0;overflow:visible}.rows-viewport{flex:1;min-width:0;position:relative;display:block;overflow:clip;.rows{position:absolute;top:0;left:0;min-width:100%;will-change:transform;z-index:var(--tbw-z-layer-rows, 1)}}.faux-vscroll{position:sticky;inset-inline-end:0;flex-shrink:0;width:auto;overflow-y:auto;overflow-x:hidden;z-index:var(--tbw-z-layer-header, 30)}.faux-vscroll-spacer{width:1px}&[data-has-focus]{.cell-focus,.row-focus{outline:var(--tbw-focus-outline);outline-offset:var(--tbw-focus-outline-offset)}}.sticky-left,.sticky-right{position:sticky;z-index:25}.sticky-left{box-shadow:1px 0 0 var(--tbw-color-border)}.sticky-right{box-shadow:-1px 0 0 var(--tbw-color-border)}}}', Bi = '@layer tbw-base{tbw-grid{.header{display:block;flex-shrink:0;z-index:var(--tbw-z-layer-header, 30);background:var(--tbw-color-header-bg);overflow:visible}.header-group-row{display:grid;grid-template-columns:var(--tbw-column-template);background:var(--tbw-color-header-bg);z-index:var(--tbw-z-layer-header, 30)}.header-group-cell{display:flex;align-items:center;justify-content:flex-start;padding:var(--tbw-cell-padding-header, 2px 8px);color:var(--tbw-color-header-group-fg, var(--tbw-color-header-fg));font-weight:var(--tbw-font-weight-header-group, var(--tbw-font-weight-header));justify-content:var(--tbw-align-header-group, var(--tbw-align-header, flex-start));&:not(:last-child){border-right:2px solid var(--tbw-color-border)}}.header-row{display:grid;grid-template-columns:var(--tbw-column-template);color:var(--tbw-color-header-fg);font-size:var(--tbw-font-size-header);min-height:var(--tbw-header-height);border-bottom:var(--tbw-border-header);z-index:var(--tbw-z-layer-header, 30);text-transform:var(--tbw-header-text-transform);letter-spacing:var(--tbw-header-letter-spacing);>.cell{display:flex;align-items:center;gap:4px;padding:var(--tbw-cell-padding-header, 2px 8px);background-color:var(--tbw-color-header-bg);font-weight:var(--tbw-font-weight-header);border-right:1px solid var(--tbw-color-border-cell);overflow:visible;min-width:0;>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:inherit}>span[part~=sort-indicator]{flex-shrink:0;opacity:.6;color:var(--tbw-sort-indicator-color);display:var(--tbw-sort-indicator-display, inline-flex);visibility:var(--tbw-sort-indicator-visibility, visible);transition:opacity .15s,visibility 0s,display 0s allow-discrete;transition-behavior:allow-discrete}&:hover>span[part~=sort-indicator]{display:inline-flex;visibility:visible}&[aria-sort=ascending]>span[part~=sort-indicator],&[aria-sort=descending]>span[part~=sort-indicator]{display:inline-flex;visibility:visible;opacity:1;color:var(--tbw-sort-indicator-active-color)}&:last-child{border-right:0;.resize-handle{right:0;width:calc(var(--tbw-resize-handle-width) / 2)}}&.grouped.group-end:not(:last-child){border-right:2px solid var(--tbw-color-border)}&.resizable{position:relative}&.sticky-left,&.sticky-right{background:var(--tbw-color-header-bg);z-index:35}}}.sortable{cursor:pointer;user-select:none}.resize-handle{position:absolute;top:0;right:calc(var(--tbw-resize-handle-width) / -2);width:var(--tbw-resize-handle-width);height:100%;cursor:e-resize;user-select:none;touch-action:none;z-index:20;background:var(--tbw-resize-handle-color);transition:background .12s ease;border-radius:var(--tbw-resize-handle-border-radius);&:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:var(--tbw-resize-indicator-width, 2px);height:0;background:var(--tbw-resize-indicator-color, var(--tbw-color-accent));opacity:0;pointer-events:none;transition:opacity .12s ease,height 0s .12s;z-index:1000}&:hover{background:var(--tbw-resize-handle-color-hover);&:after{height:100vh;opacity:var(--tbw-resize-indicator-opacity, .6);transition:opacity .12s ease,height 0s}}}}}', Gi = '@layer tbw-base{.tbw-loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:light-dark(rgba(255,255,255,.7),rgba(0,0,0,.5));z-index:1000;pointer-events:all;animation:tbw-fade-in .15s ease-out}.tbw-spinner{--tbw-spinner-size: 48px;--tbw-spinner-border-width: 3px;--tbw-spinner-color: var(--tbw-color-accent);--tbw-spinner-track-color: var(--tbw-color-border);width:var(--tbw-spinner-size);height:var(--tbw-spinner-size);border:var(--tbw-spinner-border-width) solid var(--tbw-spinner-track-color);border-top-color:var(--tbw-spinner-color);border-radius:50%;animation:tbw-spin .8s linear infinite}.tbw-spinner--large{--tbw-spinner-size: min(48px, calc(100% - 16px) )}.tbw-spinner--small{--tbw-spinner-size: calc(var(--tbw-row-height, 28px) * .6);--tbw-spinner-border-width: 2px}.data-grid-row.tbw-row-loading{position:relative;pointer-events:none}.tbw-row-loading-overlay{position:absolute;inset:0;background:light-dark(rgba(255,255,255,.7),rgba(0,0,0,.5));z-index:26;animation:tbw-fade-in .15s ease-out;pointer-events:none;display:flex;align-items:center}.tbw-row-loading-spinner{--_spinner-size: calc(var(--tbw-row-height, 28px) * .6);margin-left:var(--tbw-spacing-md);width:var(--_spinner-size);height:var(--_spinner-size);border:2px solid var(--tbw-spinner-track-color, var(--tbw-color-border));border-top-color:var(--tbw-spinner-color, var(--tbw-color-accent));border-radius:50%;animation:tbw-spin .8s linear infinite}.cell.tbw-cell-loading{position:relative;pointer-events:none;&:before{content:"";position:absolute;inset:0;background:light-dark(rgba(255,255,255,.7),rgba(0,0,0,.5));z-index:26;animation:tbw-fade-in .15s ease-out}&:after{--_spinner-size: calc(var(--tbw-row-height, 28px) * .5);content:"";position:absolute;left:var(--tbw-spacing-sm);top:0;bottom:0;margin:auto 0;width:var(--_spinner-size);height:var(--_spinner-size);border:2px solid var(--tbw-spinner-track-color, var(--tbw-color-border));border-top-color:var(--tbw-spinner-color, var(--tbw-color-accent));border-radius:50%;animation:tbw-spin .8s linear infinite;z-index:27}}}', Xi = "@layer tbw-base{@media(forced-colors:active){tbw-grid{--tbw-color-border: CanvasText;--tbw-color-border-strong: CanvasText;--tbw-color-border-cell: CanvasText;--tbw-color-border-header: CanvasText;--tbw-color-fg: CanvasText;--tbw-color-bg: Canvas;--tbw-color-panel-bg: Canvas;--tbw-color-header-bg: Canvas;--tbw-color-header-fg: CanvasText;--tbw-color-accent: Highlight;--tbw-color-accent-fg: HighlightText;--tbw-color-selection: Highlight;--tbw-color-row-hover: Highlight;--tbw-focus-outline: 2px solid Highlight;--tbw-range-border-color: Highlight;.cell:focus,.cell.active-cell{outline:2px solid Highlight!important;outline-offset:-2px}.data-grid-row[aria-selected=true]{background:Highlight!important;color:HighlightText!important}}}@media(prefers-reduced-motion:reduce){tbw-grid[data-animation-mode=reduced-motion]{--tbw-animation-enabled: 0;--tbw-animation-duration: 0ms;.data-grid-row[data-animating]{animation:none}}}}", Yi = "@layer tbw-base{tbw-grid{.data-grid-row{display:grid;grid-template-columns:var(--tbw-column-template);contain:layout style;&:nth-child(2n){background:var(--tbw-color-row-alt)}&:hover{background:var(--tbw-color-row-hover)}>.cell{display:block;padding:var(--tbw-cell-padding, 2px 8px);border-bottom:var(--tbw-row-divider);min-height:var(--tbw-row-height);align-content:center;border-right:1px solid var(--tbw-color-border-cell);overflow:hidden;min-width:0;white-space:var(--tbw-cell-white-space, nowrap);text-overflow:ellipsis;>*{overflow:hidden;text-overflow:ellipsis;white-space:inherit;min-width:0}&:last-child{border-right:0}&[data-type=boolean]{text-align:center;input[type=checkbox]{margin:0;width:var(--tbw-checkbox-size);height:var(--tbw-checkbox-size);vertical-align:middle}}&.selected:focus-visible,&:focus-visible:not(.cell-focus){outline:none}&.sticky-left,&.sticky-right{background:var(--tbw-color-panel-bg)}}}.selecting .data-grid-row>.cell{user-select:none}}}", ji = "@layer tbw-base{tbw-grid{.tbw-shell-header{display:flex;align-items:center;gap:8px;min-height:var(--tbw-shell-header-height);padding:0 8px;background:var(--tbw-shell-header-bg);border-bottom:1px solid var(--tbw-shell-header-border);flex-shrink:0}.tbw-shell-title{font-size:var(--tbw-shell-title-font-size);font-weight:var(--tbw-shell-title-font-weight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbw-shell-content{flex:1;display:flex;align-items:center;gap:12px;min-width:0;overflow:hidden}.tbw-shell-toolbar{display:flex;align-items:center;gap:var(--tbw-toolbar-button-gap);flex-shrink:0}.tbw-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tbw-toolbar-button-size);height:var(--tbw-toolbar-button-size);padding:0;border:1px solid transparent;border-radius:var(--tbw-border-radius);background:transparent;color:var(--tbw-color-fg);cursor:pointer;font-size:16px;transition:background var(--tbw-transition-duration) var(--tbw-transition-ease),border-color var(--tbw-transition-duration) var(--tbw-transition-ease);&:hover{background:var(--tbw-color-row-hover)}&:focus-visible{outline:var(--tbw-focus-outline);outline-offset:var(--tbw-focus-outline-offset)}&.active{background:var(--tbw-focus-background);border-color:var(--tbw-color-accent)}&:disabled{opacity:.5;cursor:not-allowed}}.tbw-toolbar-separator{width:1px;height:20px;background:var(--tbw-color-border);margin:0 4px}.tbw-shell-body{position:relative;display:flex;flex:1;min-height:0;overflow:visible}.tbw-grid-content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:row;overflow:hidden}.tbw-scroll-area{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow-x:auto;overflow-y:hidden;overflow-anchor:none}}}", Ki = "@layer tbw-base{tbw-grid{.tbw-tool-panel{position:absolute;top:0;bottom:0;right:0;width:0;overflow:hidden;background:var(--tbw-tool-panel-bg);border-left:1px solid var(--tbw-tool-panel-border);transition:width var(--tbw-tool-panel-transition);display:flex;flex-direction:column;z-index:30;box-shadow:-2px 0 8px var(--tbw-color-shadow);&[data-position=left]{right:auto;left:0;border-left:none;border-right:1px solid var(--tbw-tool-panel-border);box-shadow:2px 0 8px var(--tbw-color-shadow)}&.open{width:var(--tbw-tool-panel-width)}}.tbw-tool-panel-resize{position:absolute;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background var(--tbw-transition-duration) var(--tbw-transition-ease);&[data-handle-position=left]{left:0}&[data-handle-position=right]{right:0}&:hover,&.resizing{background:var(--tbw-color-accent)}}.tbw-tool-panel-header{display:flex;align-items:center;justify-content:space-between;min-height:var(--tbw-tool-panel-header-height);padding:0 12px;border-bottom:1px solid var(--tbw-tool-panel-border);flex-shrink:0}.tbw-tool-panel-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbw-tool-panel-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--tbw-border-radius);background:transparent;color:var(--tbw-color-fg-muted);cursor:pointer;font-size:14px;&:hover{background:var(--tbw-color-row-hover);color:var(--tbw-color-fg)}}.tbw-tool-panel-content{flex:1;overflow:auto}.tbw-accordion{display:flex;flex-direction:column;gap:0}.tbw-accordion-section{border-bottom:1px solid var(--tbw-tool-panel-border);&:last-child{border-bottom:none}&.single .tbw-accordion-header{cursor:default;&:hover{background:transparent}}&.expanded{.tbw-accordion-chevron{transform:rotate(90deg)}.tbw-accordion-content{display:block}}}.tbw-accordion-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:transparent;color:var(--tbw-color-fg);font-size:13px;font-weight:600;text-align:start;cursor:pointer;user-select:none;&:hover{background:var(--tbw-color-row-hover)}}.tbw-accordion-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:10px;color:var(--tbw-color-fg-muted);transition:transform .15s ease;flex-shrink:0}.tbw-accordion-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:14px;flex-shrink:0}.tbw-accordion-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbw-accordion-content{display:none}}}", Qi = "@layer tbw-base{tbw-grid{--tbw-base-icon-size: 1em;--tbw-base-radius: .25em;--tbw-font-size: 1em;--tbw-font-size-sm: .9285em;--tbw-font-size-xs: .7857em;--tbw-font-size-2xs: .7142em;--tbw-spacing-xs: .25em;--tbw-spacing-sm: .375em;--tbw-spacing-md: .5em;--tbw-spacing-lg: .75em;--tbw-spacing-xl: 1em;--tbw-icon-size: var(--tbw-base-icon-size);--tbw-icon-size-sm: .875em;--tbw-checkbox-size: var(--tbw-base-icon-size);--tbw-toggle-size: 1.25em;--tbw-border-radius: var(--tbw-base-radius);--tbw-color-bg: transparent;--tbw-color-panel-bg: light-dark(#eeeeee, #222222);--tbw-color-fg: light-dark(#222222, #eeeeee);--tbw-color-fg-muted: light-dark(#555555, #aaaaaa);--tbw-color-accent: light-dark(#3b82f6, #3b82f6);--tbw-color-accent-fg: light-dark(#ffffff, #000000);--tbw-color-success: light-dark(hsl(122, 39%, 40%), hsl(122, 39%, 49%));--tbw-color-warning: light-dark(hsl(38, 92%, 50%), hsl(38, 92%, 50%));--tbw-color-error: light-dark(hsl(0, 65%, 51%), hsl(0, 65%, 55%));--tbw-color-danger: var(--tbw-color-error);--tbw-color-selection: light-dark(#fff7d6, #333333);--tbw-color-row-alt: var(--tbw-color-bg);--tbw-color-row-hover: light-dark(#f0f6ff, #1c1c1c);--tbw-color-header-bg: color-mix(in hsl, var(--tbw-color-panel-bg) 85%, var(--tbw-color-fg));--tbw-color-header-fg: color-mix(in hsl, var(--tbw-color-fg) 75%, var(--tbw-color-panel-bg));--tbw-color-border: light-dark(#d0d0d4, #454545);--tbw-color-border-strong: light-dark(#777777, #666666);--tbw-color-border-cell: var(--tbw-color-border);--tbw-color-border-header: var(--tbw-color-border);--tbw-color-shadow: light-dark(rgba(0, 0, 0, .1), rgba(0, 0, 0, .3));--tbw-font-family: inherit;--tbw-font-size-header: var(--tbw-font-size);--tbw-font-weight-header: bold;--tbw-cell-padding-header: var(--tbw-spacing-xs) var(--tbw-spacing-md);--tbw-cell-padding-v: var(--tbw-spacing-xs);--tbw-cell-padding-h: var(--tbw-spacing-md);--tbw-cell-padding: var(--tbw-cell-padding-v) var(--tbw-cell-padding-h);--tbw-cell-padding-input: var(--tbw-spacing-xs) var(--tbw-spacing-sm);--tbw-row-height: 1.75em;--tbw-header-height: 1.875em;--tbw-cell-white-space: nowrap;--tbw-border-width: 1px;--tbw-border-style: solid;--tbw-border-input: var(--tbw-border-width) var(--tbw-border-style) var(--tbw-color-border-strong);--tbw-border-header: var(--tbw-border-width) var(--tbw-border-style) var(--tbw-color-border-header);--tbw-row-divider: var(--tbw-border-width) var(--tbw-border-style) var(--tbw-color-border-cell);--tbw-row-hover-outline: 0;--tbw-color-active-row-bg: var(--tbw-color-selection);--tbw-active-row-outline: 0;--tbw-focus-outline-width: 2px;--tbw-focus-outline: var(--tbw-focus-outline-width) var(--tbw-border-style) var(--tbw-color-accent);--tbw-focus-outline-offset: -2px;--tbw-focus-background: rgba(from var(--tbw-color-accent) r g b / 12%);--tbw-range-border-color: var(--tbw-color-accent);--tbw-range-selection-bg: rgba(from var(--tbw-range-border-color) r g b / 12%);--tbw-resize-handle-width: var(--tbw-spacing-sm);--tbw-resize-handle-color: transparent;--tbw-resize-handle-color-hover: var(--tbw-color-accent);--tbw-resize-handle-border-radius: 0;--tbw-resize-indicator-width: 2px;--tbw-resize-indicator-color: var(--tbw-color-accent);--tbw-resize-indicator-opacity: .6;--tbw-transition-duration: .12s;--tbw-transition-ease: ease;--tbw-animation-duration: .2s;--tbw-animation-easing: ease-out;--tbw-animation-enabled: 1;--tbw-row-change-duration: .5s;--tbw-row-insert-duration: .3s;--tbw-row-remove-duration: .2s;--tbw-row-change-color: rgba(from var(--tbw-color-accent) r g b / 25%);--tbw-sort-indicator-color: var(--tbw-color-fg-muted);--tbw-sort-indicator-active-color: var(--tbw-color-accent);--tbw-sort-indicator-display: inline-flex;--tbw-sort-indicator-visibility: visible;--tbw-header-text-transform: none;--tbw-header-letter-spacing: normal;--tbw-color-header-separator: var(--tbw-color-border-cell);--tbw-density-scale: 1;--tbw-shell-header-height: 2.75em;--tbw-shell-header-bg: var(--tbw-color-panel-bg);--tbw-shell-header-border: var(--tbw-color-border);--tbw-shell-title-font-size: var(--tbw-font-size);--tbw-shell-title-font-weight: 600;--tbw-tool-panel-width: 17.5em;--tbw-tool-panel-bg: var(--tbw-color-panel-bg);--tbw-tool-panel-border: var(--tbw-color-border);--tbw-tool-panel-header-height: 2.5em;--tbw-tool-panel-transition: var(--tbw-animation-duration) var(--tbw-animation-easing);--tbw-toolbar-button-size: 2em;--tbw-toolbar-button-gap: var(--tbw-spacing-xs);--tbw-panel-padding: var(--tbw-spacing-lg);--tbw-panel-gap: var(--tbw-spacing-md);--tbw-menu-item-padding: var(--tbw-spacing-sm) var(--tbw-spacing-lg);--tbw-menu-item-gap: var(--tbw-spacing-md);--tbw-menu-min-width: 10rem;--tbw-button-padding: var(--tbw-spacing-sm) var(--tbw-spacing-lg);--tbw-button-padding-sm: var(--tbw-spacing-xs) var(--tbw-spacing-md);--tbw-input-height: var(--tbw-row-height);--tbw-input-padding: 0 var(--tbw-spacing-md);--tbw-detail-padding: var(--tbw-spacing-xl);--tbw-detail-max-height: 31.25rem;--tbw-indicator-size: var(--tbw-spacing-sm)}}", Zi = `/**
|
|
2699
2717
|
* tbw-grid Light DOM Styles
|
|
2700
2718
|
*
|
|
2701
2719
|
* This stylesheet uses CSS nesting to scope all styles to the tbw-grid element.
|
|
@@ -2726,7 +2744,7 @@ ${Xi}
|
|
|
2726
2744
|
`;
|
|
2727
2745
|
class k extends HTMLElement {
|
|
2728
2746
|
static tagName = "tbw-grid";
|
|
2729
|
-
static version = "1.
|
|
2747
|
+
static version = "1.15.0";
|
|
2730
2748
|
static #l = 0;
|
|
2731
2749
|
static adapters = [];
|
|
2732
2750
|
static registerAdapter(e) {
|
|
@@ -2763,15 +2781,15 @@ class k extends HTMLElement {
|
|
|
2763
2781
|
#C = 0;
|
|
2764
2782
|
#r = null;
|
|
2765
2783
|
#g = !1;
|
|
2766
|
-
#
|
|
2784
|
+
#x = !1;
|
|
2767
2785
|
#m = 0;
|
|
2768
2786
|
#z;
|
|
2769
|
-
#
|
|
2787
|
+
#N = yi();
|
|
2770
2788
|
#b;
|
|
2771
2789
|
#y;
|
|
2772
2790
|
#p;
|
|
2773
|
-
#
|
|
2774
|
-
#
|
|
2791
|
+
#S;
|
|
2792
|
+
#J = {
|
|
2775
2793
|
scrollTop: 0,
|
|
2776
2794
|
scrollLeft: 0,
|
|
2777
2795
|
scrollHeight: 0,
|
|
@@ -2781,19 +2799,19 @@ class k extends HTMLElement {
|
|
|
2781
2799
|
};
|
|
2782
2800
|
#e;
|
|
2783
2801
|
#_;
|
|
2784
|
-
#
|
|
2802
|
+
#I = !1;
|
|
2785
2803
|
#D;
|
|
2786
2804
|
#V;
|
|
2787
2805
|
#O;
|
|
2788
2806
|
#t;
|
|
2789
2807
|
#i = ai();
|
|
2790
2808
|
#c;
|
|
2791
|
-
#
|
|
2792
|
-
#
|
|
2793
|
-
#
|
|
2809
|
+
#q;
|
|
2810
|
+
#M = !1;
|
|
2811
|
+
#E = /* @__PURE__ */ new Set();
|
|
2794
2812
|
#H = /* @__PURE__ */ new Map();
|
|
2795
2813
|
#$;
|
|
2796
|
-
#
|
|
2814
|
+
#R = /* @__PURE__ */ new Map();
|
|
2797
2815
|
_rows = [];
|
|
2798
2816
|
#B = [];
|
|
2799
2817
|
get _columns() {
|
|
@@ -2885,35 +2903,35 @@ class k extends HTMLElement {
|
|
|
2885
2903
|
this.#t?.setFitMode(e), i !== e && this.#U("fitMode");
|
|
2886
2904
|
}
|
|
2887
2905
|
get loading() {
|
|
2888
|
-
return this.#
|
|
2906
|
+
return this.#M;
|
|
2889
2907
|
}
|
|
2890
2908
|
set loading(e) {
|
|
2891
|
-
const i = this.#
|
|
2892
|
-
this.#
|
|
2909
|
+
const i = this.#M;
|
|
2910
|
+
this.#M = e, e ? this.setAttribute("loading", "") : this.removeAttribute("loading"), i !== e && this.#he();
|
|
2893
2911
|
}
|
|
2894
2912
|
setRowLoading(e, i) {
|
|
2895
|
-
const o = this.#
|
|
2896
|
-
i ? this.#
|
|
2913
|
+
const o = this.#E.has(e);
|
|
2914
|
+
i ? this.#E.add(e) : this.#E.delete(e), o !== i && this.#j(e, i);
|
|
2897
2915
|
}
|
|
2898
2916
|
setCellLoading(e, i, o) {
|
|
2899
2917
|
let n = this.#H.get(e);
|
|
2900
2918
|
const r = n?.has(i) ?? !1;
|
|
2901
|
-
o ? (n || (n = /* @__PURE__ */ new Set(), this.#H.set(e, n)), n.add(i)) : (n?.delete(i), n?.size === 0 && this.#H.delete(e)), r !== o && this.#
|
|
2919
|
+
o ? (n || (n = /* @__PURE__ */ new Set(), this.#H.set(e, n)), n.add(i)) : (n?.delete(i), n?.size === 0 && this.#H.delete(e)), r !== o && this.#ue(e, i, o);
|
|
2902
2920
|
}
|
|
2903
2921
|
isRowLoading(e) {
|
|
2904
|
-
return this.#
|
|
2922
|
+
return this.#E.has(e);
|
|
2905
2923
|
}
|
|
2906
2924
|
isCellLoading(e, i) {
|
|
2907
2925
|
return this.#H.get(e)?.has(i) ?? !1;
|
|
2908
2926
|
}
|
|
2909
2927
|
clearAllLoading() {
|
|
2910
2928
|
this.loading = !1;
|
|
2911
|
-
for (const e of this.#
|
|
2912
|
-
this.#
|
|
2913
|
-
this.#
|
|
2929
|
+
for (const e of this.#E)
|
|
2930
|
+
this.#j(e, !1);
|
|
2931
|
+
this.#E.clear();
|
|
2914
2932
|
for (const [e, i] of this.#H)
|
|
2915
2933
|
for (const o of i)
|
|
2916
|
-
this.#
|
|
2934
|
+
this.#ue(e, o, !1);
|
|
2917
2935
|
this.#H.clear();
|
|
2918
2936
|
}
|
|
2919
2937
|
get effectiveConfig() {
|
|
@@ -2923,25 +2941,25 @@ class k extends HTMLElement {
|
|
|
2923
2941
|
return this.#b || (this.#b = new AbortController()), this.#b.signal;
|
|
2924
2942
|
}
|
|
2925
2943
|
constructor() {
|
|
2926
|
-
super(), this.#
|
|
2944
|
+
super(), this.#be(), this.#d = new Promise((e) => this.#h = e), this.#s = new Zt({
|
|
2927
2945
|
mergeConfig: () => {
|
|
2928
|
-
this.#t.parseLightDomColumns(this), this.#t.merge(), this.#
|
|
2946
|
+
this.#t.parseLightDomColumns(this), this.#t.merge(), this.#te(), Pi(this.#o, this.#e?.getPlugins() ?? []), zi(this.#e?.getPlugins() ?? []), Oi(this.#e?.getPlugins() ?? []), this.#ze(), this.#B = [...this._columns];
|
|
2929
2947
|
},
|
|
2930
|
-
processColumns: () => this.#
|
|
2931
|
-
processRows: () => this.#
|
|
2948
|
+
processColumns: () => this.#xe(),
|
|
2949
|
+
processRows: () => this.#Le(),
|
|
2932
2950
|
renderHeader: () => ie(this),
|
|
2933
2951
|
updateTemplate: () => U(this),
|
|
2934
2952
|
renderVirtualWindow: () => this.refreshVirtualWindow(!0, !0),
|
|
2935
2953
|
afterRender: () => {
|
|
2936
2954
|
this.#e?.afterRender(), this._virtualization.enabled && this._virtualization.totalHeightEl && queueMicrotask(() => {
|
|
2937
2955
|
if (!this._virtualization.totalHeightEl) return;
|
|
2938
|
-
const i = this.#
|
|
2956
|
+
const i = this.#T(this._rows.length);
|
|
2939
2957
|
this._virtualization.totalHeightEl.style.height = `${i}px`;
|
|
2940
|
-
}), this.#o.fitMode === "fixed" && !this.__didInitialAutoSize && (this.__didInitialAutoSize = !0, Se(this)), this._restoreFocusAfterRender && (this._restoreFocusAfterRender = !1, q(this)), this._virtualization.enabled && !this.#F && this.#
|
|
2958
|
+
}), this.#o.fitMode === "fixed" && !this.__didInitialAutoSize && (this.__didInitialAutoSize = !0, Se(this)), this._restoreFocusAfterRender && (this._restoreFocusAfterRender = !1, q(this)), this._virtualization.enabled && !this.#F && this.#Ce(), this.#x && (this.#x = !1, requestAnimationFrame(() => {
|
|
2941
2959
|
requestAnimationFrame(() => {
|
|
2942
|
-
this.#
|
|
2960
|
+
this.#ve();
|
|
2943
2961
|
});
|
|
2944
|
-
}));
|
|
2962
|
+
})), this.#M && this.#he();
|
|
2945
2963
|
},
|
|
2946
2964
|
isConnected: () => this.isConnected && this.#f
|
|
2947
2965
|
}), this.#s.setInitialReadyResolver(() => this.#h?.()), this.#c = gi(this.#i, {
|
|
@@ -2974,7 +2992,7 @@ class k extends HTMLElement {
|
|
|
2974
2992
|
setRowHeight: (e) => {
|
|
2975
2993
|
this._virtualization.rowHeight = e;
|
|
2976
2994
|
},
|
|
2977
|
-
applyAnimationConfig: (e) => this.#
|
|
2995
|
+
applyAnimationConfig: (e) => this.#Pe(e),
|
|
2978
2996
|
getShellLightDomTitle: () => this.#i.lightDomTitle,
|
|
2979
2997
|
getShellToolPanels: () => this.#i.toolPanels,
|
|
2980
2998
|
getShellHeaderContents: () => this.#i.headerContents,
|
|
@@ -2983,7 +3001,7 @@ class k extends HTMLElement {
|
|
|
2983
3001
|
getShellHasToolButtonsContainer: () => this.#i.hasToolButtonsContainer
|
|
2984
3002
|
});
|
|
2985
3003
|
}
|
|
2986
|
-
async #
|
|
3004
|
+
async #be() {
|
|
2987
3005
|
await Ci(Zi);
|
|
2988
3006
|
}
|
|
2989
3007
|
getPlugin(e) {
|
|
@@ -3007,7 +3025,7 @@ class k extends HTMLElement {
|
|
|
3007
3025
|
requestAfterRender() {
|
|
3008
3026
|
this.#s.requestPhase(x.STYLE, "plugin:requestAfterRender");
|
|
3009
3027
|
}
|
|
3010
|
-
#
|
|
3028
|
+
#ee() {
|
|
3011
3029
|
this.#e = new oe(this);
|
|
3012
3030
|
const e = this.#o?.plugins, i = Array.isArray(e) ? e : [];
|
|
3013
3031
|
this.#e.attachAll(i);
|
|
@@ -3016,7 +3034,7 @@ class k extends HTMLElement {
|
|
|
3016
3034
|
const e = this.#e?.getPluginStyles() ?? [];
|
|
3017
3035
|
mi(e);
|
|
3018
3036
|
}
|
|
3019
|
-
#
|
|
3037
|
+
#te() {
|
|
3020
3038
|
const e = this.#o?.plugins, i = Array.isArray(e) ? e : [];
|
|
3021
3039
|
if (this.#_ === i)
|
|
3022
3040
|
return;
|
|
@@ -3036,17 +3054,17 @@ class k extends HTMLElement {
|
|
|
3036
3054
|
const r = this.#i.headerContentCleanups.get(n);
|
|
3037
3055
|
r && (r(), this.#i.headerContentCleanups.delete(n)), this.#i.headerContents.delete(n);
|
|
3038
3056
|
}
|
|
3039
|
-
this.#
|
|
3057
|
+
this.#ee(), this.#W(), this.#_ = i, this.#re(), this.#ie();
|
|
3040
3058
|
const o = this.#g;
|
|
3041
3059
|
if (this.#g = this.#e?.getAll().some((n) => n.onScroll) ?? !1, !o && this.#g) {
|
|
3042
3060
|
const r = this.#n.querySelector(".tbw-grid-content") ?? this.#n.querySelector(".tbw-grid-root");
|
|
3043
3061
|
this.#G(r);
|
|
3044
3062
|
}
|
|
3045
3063
|
}
|
|
3046
|
-
#
|
|
3064
|
+
#me() {
|
|
3047
3065
|
this.#e?.detachAll();
|
|
3048
3066
|
}
|
|
3049
|
-
#
|
|
3067
|
+
#ie() {
|
|
3050
3068
|
if (!this.#e) return;
|
|
3051
3069
|
const e = this.#e.getToolPanels();
|
|
3052
3070
|
for (const { panel: o } of e)
|
|
@@ -3055,7 +3073,7 @@ class k extends HTMLElement {
|
|
|
3055
3073
|
for (const { content: o } of i)
|
|
3056
3074
|
this.#i.headerContents.has(o.id) || this.#i.headerContents.set(o.id, o);
|
|
3057
3075
|
}
|
|
3058
|
-
#
|
|
3076
|
+
#oe() {
|
|
3059
3077
|
const e = k.getAdapters();
|
|
3060
3078
|
if (e.length === 0 && !this.__frameworkAdapter) return;
|
|
3061
3079
|
const i = this.__frameworkAdapter;
|
|
@@ -3072,17 +3090,17 @@ class k extends HTMLElement {
|
|
|
3072
3090
|
};
|
|
3073
3091
|
}
|
|
3074
3092
|
connectedCallback() {
|
|
3075
|
-
this.hasAttribute("tabindex") || (this.tabIndex = 0), this.hasAttribute("version") || this.setAttribute("version", k.version), this.id || (this.id = `tbw-grid-${++k.#l}`), this._rows = Array.isArray(this.#a) ? [...this.#a] : [], this.#b && (this.#b.abort(), this.#
|
|
3093
|
+
this.hasAttribute("tabindex") || (this.tabIndex = 0), this.hasAttribute("version") || this.setAttribute("version", k.version), this.id || (this.id = `tbw-grid-${++k.#l}`), this._rows = Array.isArray(this.#a) ? [...this.#a] : [], this.#b && (this.#b.abort(), this.#I = !1), this.#b = new AbortController(), this.#S && (ze(this.#S), this.#S = void 0), this.#k(), this.#t.parseLightDomColumns(this), this.#t.merge(), this.#ee();
|
|
3076
3094
|
const e = this.#o?.plugins;
|
|
3077
|
-
this.#_ = Array.isArray(e) ? e : [], this.#
|
|
3095
|
+
this.#_ = Array.isArray(e) ? e : [], this.#ie(), this.#u || (this.#Z(), this.#W(), this.#u = !0), this.#ne(), this.#S = Vt(
|
|
3078
3096
|
() => {
|
|
3079
|
-
this.#
|
|
3097
|
+
this.#ke();
|
|
3080
3098
|
},
|
|
3081
3099
|
{ timeout: 100 }
|
|
3082
3100
|
);
|
|
3083
3101
|
}
|
|
3084
3102
|
disconnectedCallback() {
|
|
3085
|
-
this.#
|
|
3103
|
+
this.#S && (ze(this.#S), this.#S = void 0), this.#m && (clearTimeout(this.#m), this.#m = 0), this.#me(), fi(this.#i), this.#c.setInitialized(!1), this.#q?.(), this.#q = void 0, rt(this.#N), this.#b && (this.#b.abort(), this.#b = void 0), this.#D?.abort(), this.#D = void 0, this.#I = !1, this._resizeController && this._resizeController.dispose(), this.#y && (this.#y.disconnect(), this.#y = void 0), this.#p && (this.#p.disconnect(), this.#p = void 0, this.#F = !1), X(this), this.#A.clear(), this.#_ = void 0;
|
|
3086
3104
|
for (const e of this._rowPool)
|
|
3087
3105
|
e.remove();
|
|
3088
3106
|
this._rowPool.length = 0, this.__rowsBodyEl = null, this.#f = !1;
|
|
@@ -3103,24 +3121,24 @@ class k extends HTMLElement {
|
|
|
3103
3121
|
}
|
|
3104
3122
|
else e === "fit-mode" && (this.fitMode = o);
|
|
3105
3123
|
}
|
|
3106
|
-
#
|
|
3124
|
+
#ne() {
|
|
3107
3125
|
const i = this.#n.querySelector(".tbw-grid-content") ?? this.#n.querySelector(".tbw-grid-root");
|
|
3108
3126
|
if (this._headerRowEl = i?.querySelector(".header-row"), this._virtualization.totalHeightEl = i?.querySelector(".faux-vscroll-spacer"), this._virtualization.viewportEl = i?.querySelector(".rows-viewport"), this._bodyEl = i?.querySelector(".rows"), this.__rowsBodyEl = i?.querySelector(".rows-body"), this.#c.isInitialized) {
|
|
3109
3127
|
fe(this.#n, this.#i), ce(this.#n, this.#o?.shell, this.#i);
|
|
3110
3128
|
const n = this.#o?.shell?.toolPanel?.defaultOpen;
|
|
3111
3129
|
n && this.#i.toolPanels.has(n) && (this.openToolPanel(), this.#i.expandedSections.add(n));
|
|
3112
3130
|
}
|
|
3113
|
-
if (this.setAttribute("data-upgraded", ""), this.#f = !0, this._resizeController = De(this), this.#P(), this.#G(i), this.#
|
|
3131
|
+
if (this.setAttribute("data-upgraded", ""), this.#f = !0, this._resizeController = De(this), this.#P(), this.#G(i), this.#I)
|
|
3114
3132
|
return;
|
|
3115
|
-
this.#
|
|
3133
|
+
this.#I = !0;
|
|
3116
3134
|
const o = this.disconnectSignal;
|
|
3117
|
-
qt(this, this, this.#n, o), this.#
|
|
3135
|
+
qt(this, this, this.#n, o), this.#re(), queueMicrotask(() => this.#ye()), this.#s.requestPhase(x.FULL, "afterConnect");
|
|
3118
3136
|
}
|
|
3119
|
-
#
|
|
3137
|
+
#re() {
|
|
3120
3138
|
const e = this.#o.rowHeight, i = this.#e.hasRowHeightPlugin();
|
|
3121
|
-
typeof e == "function" || i ? this._virtualization.variableHeights || (this._virtualization.variableHeights = !0, this._virtualization.rowHeight = typeof e == "number" && e > 0 ? e : this._virtualization.rowHeight || 28, this.#
|
|
3139
|
+
typeof e == "function" || i ? this._virtualization.variableHeights || (this._virtualization.variableHeights = !0, this._virtualization.rowHeight = typeof e == "number" && e > 0 ? e : this._virtualization.rowHeight || 28, this.#Q(), typeof e != "function" && (this.#x = !0)) : !i && typeof e != "function" && this._virtualization.variableHeights ? (this._virtualization.variableHeights = !1, this._virtualization.positionCache = null) : typeof e == "number" && e > 0 ? (this._virtualization.rowHeight = e, this._virtualization.variableHeights = !1) : requestAnimationFrame(() => this.#se());
|
|
3122
3140
|
}
|
|
3123
|
-
#
|
|
3141
|
+
#se() {
|
|
3124
3142
|
if (this.#e.hasExtraHeight())
|
|
3125
3143
|
return;
|
|
3126
3144
|
const e = this._bodyEl?.querySelector(".data-grid-row");
|
|
@@ -3134,7 +3152,7 @@ class k extends HTMLElement {
|
|
|
3134
3152
|
const n = e.getBoundingClientRect(), r = Math.max(n.height, o);
|
|
3135
3153
|
r > 0 && Math.abs(r - this._virtualization.rowHeight) > 1 && (this._virtualization.rowHeight = r, this.#s.requestPhase(x.VIRTUALIZATION, "measureRowHeight"));
|
|
3136
3154
|
}
|
|
3137
|
-
#
|
|
3155
|
+
#ve() {
|
|
3138
3156
|
const e = this._bodyEl?.querySelector(".data-grid-row");
|
|
3139
3157
|
if (!e) return;
|
|
3140
3158
|
const i = e.querySelectorAll(".cell");
|
|
@@ -3144,8 +3162,8 @@ class k extends HTMLElement {
|
|
|
3144
3162
|
l > o && (o = l);
|
|
3145
3163
|
});
|
|
3146
3164
|
const n = e.getBoundingClientRect(), r = Math.max(n.height, o);
|
|
3147
|
-
if (r > 0 && (Math.abs(r - this._virtualization.rowHeight) > 1 && (this._virtualization.rowHeight = r), this.#
|
|
3148
|
-
const l = this.#
|
|
3165
|
+
if (r > 0 && (Math.abs(r - this._virtualization.rowHeight) > 1 && (this._virtualization.rowHeight = r), this.#Q(), this._virtualization.totalHeightEl)) {
|
|
3166
|
+
const l = this.#T(this._rows.length);
|
|
3149
3167
|
this._virtualization.totalHeightEl.style.height = `${l}px`;
|
|
3150
3168
|
}
|
|
3151
3169
|
}
|
|
@@ -3173,7 +3191,7 @@ class k extends HTMLElement {
|
|
|
3173
3191
|
n.style.transform = `translateY(${g}px)`;
|
|
3174
3192
|
}
|
|
3175
3193
|
this.#r = a, this.#C || (this.#C = requestAnimationFrame(() => {
|
|
3176
|
-
this.#C = 0, this.#r !== null && (this.#
|
|
3194
|
+
this.#C = 0, this.#r !== null && (this.#De(this.#r), this.#r = null);
|
|
3177
3195
|
}));
|
|
3178
3196
|
},
|
|
3179
3197
|
{ passive: !0, signal: i }
|
|
@@ -3182,7 +3200,7 @@ class k extends HTMLElement {
|
|
|
3182
3200
|
this.#V = r, this._virtualization.scrollAreaEl = r, r && this.#g && r.addEventListener(
|
|
3183
3201
|
"scroll",
|
|
3184
3202
|
() => {
|
|
3185
|
-
const a = this.#
|
|
3203
|
+
const a = this.#J;
|
|
3186
3204
|
a.scrollTop = o.scrollTop, a.scrollLeft = r.scrollLeft, a.scrollHeight = o.scrollHeight, a.scrollWidth = r.scrollWidth, a.clientHeight = o.clientHeight, a.clientWidth = r.clientWidth, this.#e?.onScroll(a);
|
|
3187
3205
|
},
|
|
3188
3206
|
{ passive: !0, signal: i }
|
|
@@ -3203,13 +3221,13 @@ class k extends HTMLElement {
|
|
|
3203
3221
|
{ passive: !1, signal: i }
|
|
3204
3222
|
), Ti(
|
|
3205
3223
|
s,
|
|
3206
|
-
this.#
|
|
3224
|
+
this.#N,
|
|
3207
3225
|
{ fauxScrollbar: o, scrollArea: l },
|
|
3208
3226
|
i
|
|
3209
3227
|
));
|
|
3210
3228
|
}
|
|
3211
3229
|
this._bodyEl && It(this, this._bodyEl, i), this.#y?.disconnect(), this._virtualization.viewportEl && (this.#y = new ResizeObserver(() => {
|
|
3212
|
-
this.#
|
|
3230
|
+
this.#Ne(), this.#s.requestPhase(x.VIRTUALIZATION, "resize-observer");
|
|
3213
3231
|
}), this.#y.observe(this._virtualization.viewportEl)), this.#n.addEventListener(
|
|
3214
3232
|
"focusin",
|
|
3215
3233
|
() => {
|
|
@@ -3226,11 +3244,11 @@ class k extends HTMLElement {
|
|
|
3226
3244
|
);
|
|
3227
3245
|
}
|
|
3228
3246
|
#F = !1;
|
|
3229
|
-
#
|
|
3247
|
+
#Ce() {
|
|
3230
3248
|
if (this.#F) return;
|
|
3231
3249
|
const e = this._bodyEl?.querySelector(".data-grid-row");
|
|
3232
3250
|
e && (this.#F = !0, this.#p?.disconnect(), this.#p = new ResizeObserver(() => {
|
|
3233
|
-
this.#
|
|
3251
|
+
this.#se();
|
|
3234
3252
|
}), this.#p.observe(e));
|
|
3235
3253
|
}
|
|
3236
3254
|
addEventListener(e, i, o) {
|
|
@@ -3242,7 +3260,7 @@ class k extends HTMLElement {
|
|
|
3242
3260
|
#L(e, i) {
|
|
3243
3261
|
this.dispatchEvent(new CustomEvent(e, { detail: i, bubbles: !0, composed: !0 }));
|
|
3244
3262
|
}
|
|
3245
|
-
#
|
|
3263
|
+
#ye() {
|
|
3246
3264
|
this._bodyEl?.querySelectorAll(".data-grid-row")?.forEach((i, o) => {
|
|
3247
3265
|
const n = o === this._focusRow;
|
|
3248
3266
|
i.setAttribute("aria-selected", String(n)), i.querySelectorAll(".cell").forEach((r, s) => {
|
|
@@ -3251,9 +3269,9 @@ class k extends HTMLElement {
|
|
|
3251
3269
|
});
|
|
3252
3270
|
}
|
|
3253
3271
|
#U(e) {
|
|
3254
|
-
this.#v[e] = !0, !this.#w && (this.#w = !0, queueMicrotask(() => this.#
|
|
3272
|
+
this.#v[e] = !0, !this.#w && (this.#w = !0, queueMicrotask(() => this.#_e()));
|
|
3255
3273
|
}
|
|
3256
|
-
#
|
|
3274
|
+
#_e() {
|
|
3257
3275
|
if (!this.#w || !this.#f) {
|
|
3258
3276
|
this.#w = !1;
|
|
3259
3277
|
return;
|
|
@@ -3265,79 +3283,98 @@ class k extends HTMLElement {
|
|
|
3265
3283
|
gridConfig: !1,
|
|
3266
3284
|
fitMode: !1
|
|
3267
3285
|
}, e.gridConfig) {
|
|
3268
|
-
this.#
|
|
3286
|
+
this.#Ae(), e.rows && this.#le();
|
|
3269
3287
|
return;
|
|
3270
3288
|
}
|
|
3271
|
-
e.columns && this.#
|
|
3289
|
+
e.columns && this.#Se(), e.rows && this.#le(), e.fitMode && this.#Re();
|
|
3272
3290
|
}
|
|
3273
|
-
#
|
|
3291
|
+
#le() {
|
|
3274
3292
|
this._rows = Array.isArray(this.#a) ? [...this.#a] : [], this.#X(), this.#s.requestPhase(x.ROWS, "applyRowsUpdate");
|
|
3275
3293
|
}
|
|
3276
3294
|
#X() {
|
|
3277
|
-
this.#
|
|
3295
|
+
this.#R.clear();
|
|
3278
3296
|
const e = this.#o.getRowId;
|
|
3279
3297
|
this._rows.forEach((i, o) => {
|
|
3280
|
-
const n = this.#
|
|
3281
|
-
n !== void 0 && this.#
|
|
3298
|
+
const n = this.#ae(i, e);
|
|
3299
|
+
n !== void 0 && this.#R.set(n, { row: i, index: o });
|
|
3282
3300
|
});
|
|
3283
3301
|
}
|
|
3284
|
-
#
|
|
3302
|
+
#ae(e, i) {
|
|
3285
3303
|
if (i)
|
|
3286
3304
|
return i(e);
|
|
3287
3305
|
const o = e;
|
|
3288
3306
|
if ("id" in o && o.id != null) return String(o.id);
|
|
3289
3307
|
if ("_id" in o && o._id != null) return String(o._id);
|
|
3290
3308
|
}
|
|
3291
|
-
#
|
|
3292
|
-
const o = this.#
|
|
3309
|
+
#Ee(e, i) {
|
|
3310
|
+
const o = this.#ae(e, i);
|
|
3293
3311
|
if (o === void 0)
|
|
3294
3312
|
throw new Error(
|
|
3295
3313
|
'[tbw-grid] Cannot determine row ID. Configure getRowId in gridConfig or ensure rows have an "id" property.'
|
|
3296
3314
|
);
|
|
3297
3315
|
return o;
|
|
3298
3316
|
}
|
|
3299
|
-
#
|
|
3317
|
+
#Se() {
|
|
3300
3318
|
X(this), this.#t.merge(), this.#P();
|
|
3301
3319
|
}
|
|
3302
|
-
#
|
|
3320
|
+
#Re() {
|
|
3303
3321
|
this.#t.merge(), this.#o.fitMode === "fixed" ? (this.__didInitialAutoSize = !1, Se(this)) : (this._columns.forEach((i) => {
|
|
3304
3322
|
!i.__userResized && i.__autoSized && delete i.width;
|
|
3305
3323
|
}), U(this));
|
|
3306
3324
|
}
|
|
3307
|
-
#
|
|
3325
|
+
#Ae() {
|
|
3308
3326
|
Me(this, this.#i), ke(this, this.#i);
|
|
3309
3327
|
const e = !!this.#n.querySelector(".has-shell"), i = !!this.#n.querySelector(".tbw-tool-panel"), o = this.#n.querySelectorAll(".tbw-accordion-section").length;
|
|
3310
|
-
this.#t.parseLightDomColumns(this), this.#t.merge(), this.#
|
|
3328
|
+
this.#t.parseLightDomColumns(this), this.#t.merge(), this.#te(), Ne(this, this.#i, this.#oe()), this.#t.markSourcesChanged(), this.#t.merge();
|
|
3311
3329
|
const n = nt(this.#o?.shell), r = (this.#o?.shell?.toolPanels?.length ?? 0) > 0, s = this.#o?.shell?.toolPanels?.length ?? 0;
|
|
3312
3330
|
if (e !== n || !i && r || i && s !== o) {
|
|
3313
|
-
de(this.#i), this.#
|
|
3331
|
+
de(this.#i), this.#Z(), this.#W(), this.#ne(), this.#X();
|
|
3314
3332
|
return;
|
|
3315
3333
|
}
|
|
3316
|
-
e && this.#
|
|
3334
|
+
e && this.#Te(), this.#X(), this.#s.requestPhase(x.COLUMNS, "applyGridConfigUpdate");
|
|
3317
3335
|
}
|
|
3318
|
-
#
|
|
3336
|
+
#Te() {
|
|
3319
3337
|
const e = this.#n.querySelector(".tbw-shell-header");
|
|
3320
3338
|
if (!e) return;
|
|
3321
3339
|
const i = this.#o.shell?.header?.title ?? this.#i.lightDomTitle;
|
|
3322
3340
|
let o = e.querySelector(".tbw-shell-title");
|
|
3323
3341
|
i ? (o || (o = document.createElement("h2"), o.className = "tbw-shell-title", o.setAttribute("part", "shell-title"), e.insertBefore(o, e.firstChild)), o.textContent = i) : o && o.remove();
|
|
3324
3342
|
}
|
|
3325
|
-
#
|
|
3343
|
+
#xe() {
|
|
3326
3344
|
if (this.#e) {
|
|
3327
3345
|
const e = this.#B.length > 0 ? this.#B : this._columns, i = e.filter((r) => !r.hidden), o = e.filter((r) => r.hidden), n = this.#e.processColumns([...i]);
|
|
3328
3346
|
if (n !== i) {
|
|
3329
3347
|
const r = new Set(n.map((l) => l.field));
|
|
3330
|
-
!i.some((l) => r.has(l.field)) && n.length > 0 ? this._columns = [...n, ...o] : this._columns =
|
|
3348
|
+
!i.some((l) => r.has(l.field)) && n.length > 0 ? this._columns = [...n, ...o] : this._columns = this.#He(
|
|
3349
|
+
e,
|
|
3350
|
+
n,
|
|
3351
|
+
o
|
|
3352
|
+
);
|
|
3331
3353
|
} else
|
|
3332
3354
|
this._columns = [...e];
|
|
3333
3355
|
}
|
|
3334
3356
|
}
|
|
3335
|
-
#
|
|
3357
|
+
#He(e, i, o) {
|
|
3358
|
+
if (o.length === 0) return i;
|
|
3359
|
+
const n = /* @__PURE__ */ new Map();
|
|
3360
|
+
for (const a of i)
|
|
3361
|
+
n.set(a.field, a);
|
|
3362
|
+
const r = new Set(e.map((a) => a.field)), s = [];
|
|
3363
|
+
for (const a of i)
|
|
3364
|
+
r.has(a.field) || s.push(a);
|
|
3365
|
+
const l = [];
|
|
3366
|
+
for (const a of e) {
|
|
3367
|
+
const c = n.get(a.field);
|
|
3368
|
+
c ? l.push(c) : a.hidden && l.push(a);
|
|
3369
|
+
}
|
|
3370
|
+
return l.push(...s), l;
|
|
3371
|
+
}
|
|
3372
|
+
#Le() {
|
|
3336
3373
|
X(this);
|
|
3337
3374
|
const e = Array.isArray(this.#a) ? [...this.#a] : [], i = this.#e?.processRows(e) ?? e;
|
|
3338
|
-
this._rows = i, this._virtualization.variableHeights && this.#
|
|
3375
|
+
this._rows = i, this._virtualization.variableHeights && this.#Q();
|
|
3339
3376
|
}
|
|
3340
|
-
#
|
|
3377
|
+
#Pe(e) {
|
|
3341
3378
|
const i = {
|
|
3342
3379
|
...ht,
|
|
3343
3380
|
...e.animation
|
|
@@ -3346,27 +3383,29 @@ class k extends HTMLElement {
|
|
|
3346
3383
|
o === !1 || o === "off" ? n = 0 : (o === !0 || o === "on") && (n = 1), this.style.setProperty("--tbw-animation-duration", `${i.duration}ms`), this.style.setProperty("--tbw-animation-easing", i.easing ?? "ease-out"), this.style.setProperty("--tbw-animation-enabled", String(n)), this.dataset.animationMode = typeof o == "boolean" ? o ? "on" : "off" : o;
|
|
3347
3384
|
}
|
|
3348
3385
|
#Y(e, i, o = this.__rowRenderEpoch) {
|
|
3349
|
-
this.#z || (this.#z = (n, r, s) => this.#e?.renderRow(n, r, s) ?? !1), zt(this, e, i, o, this.#z)
|
|
3386
|
+
if (this.#z || (this.#z = (n, r, s) => this.#e?.renderRow(n, r, s) ?? !1), zt(this, e, i, o, this.#z), this.#E.size > 0)
|
|
3387
|
+
for (const n of this.#E)
|
|
3388
|
+
this.#j(n, !0);
|
|
3350
3389
|
}
|
|
3351
|
-
#
|
|
3352
|
-
#
|
|
3353
|
-
at(this.#
|
|
3390
|
+
#ce = lt();
|
|
3391
|
+
#de(e, i) {
|
|
3392
|
+
at(this.#ce, this.__rowsBodyEl, this._bodyEl, e, i);
|
|
3354
3393
|
}
|
|
3355
|
-
#
|
|
3356
|
-
dt(this.#
|
|
3394
|
+
#ze() {
|
|
3395
|
+
dt(this.#ce, this.__rowsBodyEl, this.#o, this.#i);
|
|
3357
3396
|
}
|
|
3358
|
-
#
|
|
3397
|
+
#he() {
|
|
3359
3398
|
const e = this.querySelector(".tbw-grid-root");
|
|
3360
|
-
e && (this.#
|
|
3399
|
+
e && (this.#M ? (this.#$ || (this.#$ = Xt(this.#o?.loadingRenderer)), Yt(e, this.#$)) : jt(this.#$));
|
|
3361
3400
|
}
|
|
3362
|
-
#
|
|
3363
|
-
const o = this.#
|
|
3401
|
+
#j(e, i) {
|
|
3402
|
+
const o = this.#R.get(e);
|
|
3364
3403
|
if (!o) return;
|
|
3365
3404
|
const n = this.findRenderedRowElement?.(o.index);
|
|
3366
3405
|
n && Kt(n, i);
|
|
3367
3406
|
}
|
|
3368
|
-
#
|
|
3369
|
-
const n = this.#
|
|
3407
|
+
#ue(e, i, o) {
|
|
3408
|
+
const n = this.#R.get(e);
|
|
3370
3409
|
if (!n) return;
|
|
3371
3410
|
const r = this.findRenderedRowElement?.(n.index);
|
|
3372
3411
|
if (!r) return;
|
|
@@ -3386,16 +3425,16 @@ class k extends HTMLElement {
|
|
|
3386
3425
|
this._bodyEl && (this._bodyEl.style.display = "", this._bodyEl.style.gridTemplateColumns = ""), this.#s.requestPhase(x.FULL, "setup");
|
|
3387
3426
|
}
|
|
3388
3427
|
}
|
|
3389
|
-
#
|
|
3428
|
+
#De(e) {
|
|
3390
3429
|
let i = 0, o = 0, n = 0, r = 0, s = 0;
|
|
3391
3430
|
if (this.#g) {
|
|
3392
3431
|
const a = this._virtualization.container, c = this.#V;
|
|
3393
3432
|
i = c?.scrollLeft ?? 0, o = a?.scrollHeight ?? 0, n = c?.scrollWidth ?? 0, r = a?.clientHeight ?? 0, s = c?.clientWidth ?? 0;
|
|
3394
3433
|
}
|
|
3395
3434
|
if (this.refreshVirtualWindow(!1) && this.#e?.onScrollRender(), this._virtualization.variableHeights && (this.#m && clearTimeout(this.#m), this.#m = window.setTimeout(() => {
|
|
3396
|
-
this.#m = 0, this.#
|
|
3435
|
+
this.#m = 0, this.#pe(this._virtualization.start, this._virtualization.end);
|
|
3397
3436
|
}, 100)), this.#g) {
|
|
3398
|
-
const a = this.#
|
|
3437
|
+
const a = this.#J;
|
|
3399
3438
|
a.scrollTop = e, a.scrollLeft = i, a.scrollHeight = o, a.scrollWidth = n, a.clientHeight = r, a.clientWidth = s, this.#e?.onScroll(a);
|
|
3400
3439
|
}
|
|
3401
3440
|
}
|
|
@@ -3504,13 +3543,13 @@ class k extends HTMLElement {
|
|
|
3504
3543
|
return Object.freeze({ ...this.#o || {} });
|
|
3505
3544
|
}
|
|
3506
3545
|
getRowId(e) {
|
|
3507
|
-
return this.#
|
|
3546
|
+
return this.#Ee(e, this.#o.getRowId);
|
|
3508
3547
|
}
|
|
3509
3548
|
getRow(e) {
|
|
3510
|
-
return this.#
|
|
3549
|
+
return this.#R.get(e)?.row;
|
|
3511
3550
|
}
|
|
3512
3551
|
updateRow(e, i, o = "api") {
|
|
3513
|
-
const n = this.#
|
|
3552
|
+
const n = this.#R.get(e);
|
|
3514
3553
|
if (!n)
|
|
3515
3554
|
throw new Error(
|
|
3516
3555
|
`[tbw-grid] Row with ID "${e}" not found. Ensure the row exists and getRowId is correctly configured.`
|
|
@@ -3536,7 +3575,7 @@ class k extends HTMLElement {
|
|
|
3536
3575
|
updateRows(e, i = "api") {
|
|
3537
3576
|
let o = !1;
|
|
3538
3577
|
for (const { id: n, changes: r } of e) {
|
|
3539
|
-
const s = this.#
|
|
3578
|
+
const s = this.#R.get(n);
|
|
3540
3579
|
if (!s)
|
|
3541
3580
|
throw new Error(
|
|
3542
3581
|
`[tbw-grid] Row with ID "${n}" not found. Ensure the row exists and getRowId is correctly configured.`
|
|
@@ -3595,12 +3634,12 @@ class k extends HTMLElement {
|
|
|
3595
3634
|
return this.#t.collectState(e);
|
|
3596
3635
|
}
|
|
3597
3636
|
set columnState(e) {
|
|
3598
|
-
e && (this.#O = e, this.#t.initialColumnState = e, this.#u && this.#
|
|
3637
|
+
e && (this.#O = e, this.#t.initialColumnState = e, this.#u && this.#Oe(e));
|
|
3599
3638
|
}
|
|
3600
3639
|
get columnState() {
|
|
3601
3640
|
return this.getColumnState();
|
|
3602
3641
|
}
|
|
3603
|
-
#
|
|
3642
|
+
#Oe(e) {
|
|
3604
3643
|
const i = this.#e?.getAll() ?? [];
|
|
3605
3644
|
this.#t.applyState(e, i), this.#P();
|
|
3606
3645
|
}
|
|
@@ -3661,13 +3700,13 @@ class k extends HTMLElement {
|
|
|
3661
3700
|
unregisterToolbarContent(e) {
|
|
3662
3701
|
this.#c.unregisterToolbarContent(e);
|
|
3663
3702
|
}
|
|
3664
|
-
#
|
|
3703
|
+
#K = !1;
|
|
3665
3704
|
refreshShellHeader() {
|
|
3666
|
-
this.#
|
|
3667
|
-
this.#
|
|
3705
|
+
this.#K || (this.#K = !0, queueMicrotask(() => {
|
|
3706
|
+
this.#K = !1, this.isConnected && (this.#k(), this.#t.markSourcesChanged(), this.#t.merge(), de(this.#i), this.#Z(), this.#W(), this.#Me());
|
|
3668
3707
|
}));
|
|
3669
3708
|
}
|
|
3670
|
-
#
|
|
3709
|
+
#Me() {
|
|
3671
3710
|
const i = this.#n.querySelector(".tbw-grid-content") ?? this.#n.querySelector(".tbw-grid-root");
|
|
3672
3711
|
if (this._headerRowEl = i?.querySelector(".header-row"), this._virtualization.totalHeightEl = i?.querySelector(".faux-vscroll-spacer"), this._virtualization.viewportEl = i?.querySelector(".rows-viewport"), this._bodyEl = i?.querySelector(".rows"), this.__rowsBodyEl = i?.querySelector(".rows-body"), this.#c.isInitialized) {
|
|
3673
3712
|
fe(this.#n, this.#i), ce(this.#n, this.#o?.shell, this.#i);
|
|
@@ -3676,27 +3715,27 @@ class k extends HTMLElement {
|
|
|
3676
3715
|
}
|
|
3677
3716
|
this._resizeController = De(this), this.#G(i), this.#s.requestPhase(x.COLUMNS, "shellRefresh");
|
|
3678
3717
|
}
|
|
3679
|
-
#
|
|
3718
|
+
#A = /* @__PURE__ */ new Map();
|
|
3680
3719
|
registerStyles(e, i) {
|
|
3681
|
-
let o = this.#
|
|
3682
|
-
o || (o = new CSSStyleSheet(), this.#
|
|
3720
|
+
let o = this.#A.get(e);
|
|
3721
|
+
o || (o = new CSSStyleSheet(), this.#A.set(e, o)), o.replaceSync(i), this.#fe();
|
|
3683
3722
|
}
|
|
3684
3723
|
unregisterStyles(e) {
|
|
3685
|
-
this.#
|
|
3724
|
+
this.#A.delete(e) && this.#fe();
|
|
3686
3725
|
}
|
|
3687
3726
|
getRegisteredStyles() {
|
|
3688
|
-
return Array.from(this.#
|
|
3727
|
+
return Array.from(this.#A.keys());
|
|
3689
3728
|
}
|
|
3690
|
-
#
|
|
3691
|
-
const e = Array.from(this.#
|
|
3692
|
-
(o) => !Array.from(this.#
|
|
3729
|
+
#fe() {
|
|
3730
|
+
const e = Array.from(this.#A.values()), i = document.adoptedStyleSheets.filter(
|
|
3731
|
+
(o) => !Array.from(this.#A.values()).includes(o)
|
|
3693
3732
|
);
|
|
3694
3733
|
document.adoptedStyleSheets = [...i, ...e];
|
|
3695
3734
|
}
|
|
3696
|
-
#
|
|
3697
|
-
Me(this, this.#i), ke(this, this.#i), Ne(this, this.#i, this.#
|
|
3735
|
+
#k() {
|
|
3736
|
+
Me(this, this.#i), ke(this, this.#i), Ne(this, this.#i, this.#oe());
|
|
3698
3737
|
}
|
|
3699
|
-
#
|
|
3738
|
+
#ge() {
|
|
3700
3739
|
const e = this.#n.querySelector(".tbw-shell-header");
|
|
3701
3740
|
if (!e) return;
|
|
3702
3741
|
de(this.#i);
|
|
@@ -3707,14 +3746,14 @@ class k extends HTMLElement {
|
|
|
3707
3746
|
), o = document.createElement("div");
|
|
3708
3747
|
o.innerHTML = i;
|
|
3709
3748
|
const n = o.firstElementChild;
|
|
3710
|
-
n && (e.replaceWith(n), this.#
|
|
3749
|
+
n && (e.replaceWith(n), this.#we(), ce(this.#n, this.#o?.shell, this.#i));
|
|
3711
3750
|
}
|
|
3712
|
-
#
|
|
3751
|
+
#ke() {
|
|
3713
3752
|
const e = () => {
|
|
3714
3753
|
const o = this.#i.lightDomTitle, n = this.#i.hasToolButtonsContainer;
|
|
3715
|
-
this.#
|
|
3754
|
+
this.#k();
|
|
3716
3755
|
const r = this.#i.lightDomTitle, s = this.#i.hasToolButtonsContainer;
|
|
3717
|
-
(r && !o || s && !n) && (this.#t.markSourcesChanged(), this.#t.merge(), this.#
|
|
3756
|
+
(r && !o || s && !n) && (this.#t.markSourcesChanged(), this.#t.merge(), this.#ge());
|
|
3718
3757
|
}, i = () => {
|
|
3719
3758
|
this.__lightDomColumnsCache = void 0, this.#P();
|
|
3720
3759
|
};
|
|
@@ -3723,17 +3762,17 @@ class k extends HTMLElement {
|
|
|
3723
3762
|
refreshColumns() {
|
|
3724
3763
|
this.__lightDomColumnsCache = void 0, X(this), this.#t.parseLightDomColumns(this);
|
|
3725
3764
|
const e = this.#i.lightDomTitle, i = this.#i.hasToolButtonsContainer;
|
|
3726
|
-
this.#
|
|
3765
|
+
this.#k();
|
|
3727
3766
|
const o = this.#i.lightDomTitle, n = this.#i.hasToolButtonsContainer;
|
|
3728
|
-
(o && !e || n && !i) && (this.#t.markSourcesChanged(), this.#t.merge(), this.#
|
|
3767
|
+
(o && !e || n && !i) && (this.#t.markSourcesChanged(), this.#t.merge(), this.#ge()), this.#s.requestPhase(x.COLUMNS, "refreshColumns");
|
|
3729
3768
|
}
|
|
3730
|
-
#
|
|
3769
|
+
#Ne() {
|
|
3731
3770
|
const e = this._virtualization.container, i = this._virtualization.viewportEl ?? e;
|
|
3732
3771
|
i && (this._virtualization.cachedViewportHeight = i.clientHeight), e && (this._virtualization.cachedFauxHeight = e.clientHeight);
|
|
3733
3772
|
const o = this._virtualization.scrollAreaEl;
|
|
3734
3773
|
o && (this._virtualization.cachedScrollAreaHeight = o.clientHeight);
|
|
3735
3774
|
}
|
|
3736
|
-
#
|
|
3775
|
+
#T(e, i = !1) {
|
|
3737
3776
|
const o = this._virtualization;
|
|
3738
3777
|
let n, r, s;
|
|
3739
3778
|
if (i) {
|
|
@@ -3745,7 +3784,7 @@ class k extends HTMLElement {
|
|
|
3745
3784
|
let c, d = 0;
|
|
3746
3785
|
return o.variableHeights && o.positionCache ? c = Ii(o.positionCache) : (c = e * o.rowHeight, d = this.#e?.getExtraHeight() ?? 0), c + l + d + a;
|
|
3747
3786
|
}
|
|
3748
|
-
#
|
|
3787
|
+
#Q() {
|
|
3749
3788
|
if (!this._virtualization.variableHeights) return;
|
|
3750
3789
|
const e = this._rows, i = this._virtualization.rowHeight || 28, o = this.#o.rowHeight, n = this.#o.getRowId, r = n ? (l) => n(l) : void 0;
|
|
3751
3790
|
this._virtualization.positionCache = Ni(
|
|
@@ -3777,11 +3816,11 @@ class k extends HTMLElement {
|
|
|
3777
3816
|
r === void 0 && (r = this.#e?.getRowHeight?.(n, e)), r === void 0 && (r = this._virtualization.rowHeight);
|
|
3778
3817
|
const s = o[e];
|
|
3779
3818
|
if (!(!s || Math.abs(s.height - r) < 1) && (be(o, e, r), this._virtualization.totalHeightEl)) {
|
|
3780
|
-
const l = this.#
|
|
3819
|
+
const l = this.#T(this._rows.length);
|
|
3781
3820
|
this._virtualization.totalHeightEl.style.height = `${l}px`;
|
|
3782
3821
|
}
|
|
3783
3822
|
}
|
|
3784
|
-
#
|
|
3823
|
+
#pe(e, i) {
|
|
3785
3824
|
if (!this._virtualization.variableHeights || !this._virtualization.positionCache || !this._bodyEl) return;
|
|
3786
3825
|
const o = this._bodyEl.querySelectorAll(".data-grid-row"), n = this.#o.getRowId, r = Wi(
|
|
3787
3826
|
{
|
|
@@ -3797,7 +3836,7 @@ class k extends HTMLElement {
|
|
|
3797
3836
|
o
|
|
3798
3837
|
);
|
|
3799
3838
|
if (r.hasChanges && (this._virtualization.measuredCount = r.measuredCount, this._virtualization.averageHeight = r.averageHeight, this._virtualization.totalHeightEl)) {
|
|
3800
|
-
const s = this.#
|
|
3839
|
+
const s = this.#T(this._rows.length);
|
|
3801
3840
|
this._virtualization.totalHeightEl.style.height = `${s}px`;
|
|
3802
3841
|
}
|
|
3803
3842
|
}
|
|
@@ -3807,7 +3846,7 @@ class k extends HTMLElement {
|
|
|
3807
3846
|
if (!this._virtualization.enabled)
|
|
3808
3847
|
return this.#Y(0, o), i || this.#e?.afterRender(), !0;
|
|
3809
3848
|
if (this._rows.length <= this._virtualization.bypassThreshold)
|
|
3810
|
-
return this._virtualization.start = 0, this._virtualization.end = o, e && (this._bodyEl.style.transform = "translateY(0px)"), this.#Y(0, o, e ? ++this.__rowRenderEpoch : this.__rowRenderEpoch), e && this._virtualization.totalHeightEl && (this._virtualization.totalHeightEl.style.height = `${this.#
|
|
3849
|
+
return this._virtualization.start = 0, this._virtualization.end = o, e && (this._bodyEl.style.transform = "translateY(0px)"), this.#Y(0, o, e ? ++this.__rowRenderEpoch : this.__rowRenderEpoch), e && this._virtualization.totalHeightEl && (this._virtualization.totalHeightEl.style.height = `${this.#T(o, !0)}px`), this.#de(o, this._visibleColumns.length), i || this.#e?.afterRender(), !0;
|
|
3811
3850
|
const n = this._virtualization.container ?? this, r = this._virtualization.viewportEl ?? n, s = e ? this._virtualization.cachedViewportHeight = r.clientHeight : this._virtualization.cachedViewportHeight || (this._virtualization.cachedViewportHeight = r.clientHeight), l = this._virtualization.rowHeight, a = n.scrollTop;
|
|
3812
3851
|
let c;
|
|
3813
3852
|
const d = this._virtualization.positionCache;
|
|
@@ -3851,7 +3890,7 @@ class k extends HTMLElement {
|
|
|
3851
3890
|
if (h === 0 && s > 0)
|
|
3852
3891
|
return this.#s.requestPhase(x.VIRTUALIZATION, "stale-refs-retry"), !1;
|
|
3853
3892
|
if (e && this._virtualization.totalHeightEl) {
|
|
3854
|
-
const m = this.#
|
|
3893
|
+
const m = this.#T(o);
|
|
3855
3894
|
this._virtualization.totalHeightEl.style.height = `${m}px`;
|
|
3856
3895
|
}
|
|
3857
3896
|
let w;
|
|
@@ -3862,27 +3901,27 @@ class k extends HTMLElement {
|
|
|
3862
3901
|
w = c * l + m;
|
|
3863
3902
|
}
|
|
3864
3903
|
const C = -(a - w);
|
|
3865
|
-
return this._bodyEl.style.transform = `translateY(${C}px)`, this.#Y(c, u, e ? ++this.__rowRenderEpoch : this.__rowRenderEpoch), e && this._virtualization.variableHeights && this.#
|
|
3904
|
+
return this._bodyEl.style.transform = `translateY(${C}px)`, this.#Y(c, u, e ? ++this.__rowRenderEpoch : this.__rowRenderEpoch), e && this._virtualization.variableHeights && this.#pe(c, u), this.#de(o, this._visibleColumns.length), e && !i && (this.#e?.afterRender(), queueMicrotask(() => {
|
|
3866
3905
|
if (!this._virtualization.totalHeightEl) return;
|
|
3867
|
-
const m = this.#
|
|
3906
|
+
const m = this.#T(o);
|
|
3868
3907
|
this._virtualization.cachedFauxHeight === 0 && this._virtualization.cachedViewportHeight > 0 || (this._virtualization.totalHeightEl.style.height = `${m}px`);
|
|
3869
3908
|
})), !0;
|
|
3870
3909
|
}
|
|
3871
|
-
#
|
|
3872
|
-
this.#
|
|
3910
|
+
#Z() {
|
|
3911
|
+
this.#k(), this.#t.markSourcesChanged(), this.#t.merge();
|
|
3873
3912
|
const e = this.#o?.shell;
|
|
3874
3913
|
wi(
|
|
3875
3914
|
this.#n,
|
|
3876
3915
|
e,
|
|
3877
3916
|
{ isPanelOpen: this.#i.isPanelOpen, expandedSections: this.#i.expandedSections },
|
|
3878
3917
|
this.#o?.icons
|
|
3879
|
-
) && (this.#
|
|
3918
|
+
) && (this.#we(), this.#c.setInitialized(!0));
|
|
3880
3919
|
}
|
|
3881
|
-
#
|
|
3920
|
+
#we() {
|
|
3882
3921
|
di(this.#n, this.#o?.shell, this.#i, {
|
|
3883
3922
|
onPanelToggle: () => this.toggleToolPanel(),
|
|
3884
3923
|
onSectionToggle: (e) => this.toggleToolPanelSection(e)
|
|
3885
|
-
}), this.#
|
|
3924
|
+
}), this.#q?.(), this.#q = hi(this.#n, this.#o?.shell, (e) => {
|
|
3886
3925
|
this.style.setProperty("--tbw-tool-panel-width", `${e}px`);
|
|
3887
3926
|
});
|
|
3888
3927
|
}
|
|
@@ -3896,7 +3935,7 @@ const oo = {
|
|
|
3896
3935
|
class no {
|
|
3897
3936
|
static dependencies;
|
|
3898
3937
|
static manifest;
|
|
3899
|
-
version = "1.
|
|
3938
|
+
version = "1.15.0";
|
|
3900
3939
|
styles;
|
|
3901
3940
|
cellRenderers;
|
|
3902
3941
|
headerRenderers;
|