@rozie-ui/data-table-lit 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -400,12 +400,16 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
400
400
  this._hasSlotDefault = false;
401
401
  this._hasSlotGroupBar = false;
402
402
  this._hasSlotSelectAll = false;
403
+ this._hasSlotDynamicColHeader = false;
404
+ this._hasSlotDynamicFilter = false;
405
+ this._hasSlotSelectCell = false;
406
+ this._hasSlotDynamicCell = false;
407
+ this._hasSlotDynamicEditor = false;
408
+ this._hasSlotDetail = false;
403
409
  this._hasSlotColHeader = false;
404
410
  this._hasSlotFilter = false;
405
- this._hasSlotSelectCell = false;
406
411
  this._hasSlotCell = false;
407
412
  this._hasSlotEditor = false;
408
- this._hasSlotDetail = false;
409
413
  this._disconnectCleanups = [];
410
414
  this._rozieTornDown = false;
411
415
  this.table = null;
@@ -439,6 +443,34 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
439
443
  left: rail.concat(deduped)
440
444
  };
441
445
  };
446
+ this.pinSeedApplied = false;
447
+ this.seedColumnPinning = () => {
448
+ if (this.pinSeedApplied) return;
449
+ const live = this.columnPinning != null ? this.columnPinning : this._columnPinningDefault.value;
450
+ const isRealPin = (id) => id !== this.SELECT_COL_ID && id !== this.EXPANDER_COL_ID;
451
+ if ((live && live.left ? live.left : []).filter(isRealPin).length > 0 || (live && live.right ? live.right : []).filter(isRealPin).length > 0) {
452
+ this.pinSeedApplied = true;
453
+ return;
454
+ }
455
+ const defs = this.columnDefs();
456
+ if (!defs.length) return;
457
+ const left = [];
458
+ const right = [];
459
+ for (let i = 0; i < defs.length; i++) {
460
+ const def = defs[i];
461
+ if (!def) continue;
462
+ if (def.pinned === "left") left.push(def.id);
463
+ else if (def.pinned === "right") right.push(def.id);
464
+ }
465
+ if (!left.length && !right.length) return;
466
+ this.pinSeedApplied = true;
467
+ const seeded = {
468
+ left,
469
+ right
470
+ };
471
+ this._columnPinningDefault.value = seeded;
472
+ this._columnPinningControllable.write(seeded);
473
+ };
442
474
  this.currentState = () => ({
443
475
  sorting: this.sorting != null ? this.sorting : this._sortingDefault.value,
444
476
  globalFilter: this.globalFilter != null ? this.globalFilter : this._globalFilterDefault.value,
@@ -835,9 +867,12 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
835
867
  this.onColumnPinningChangeCb = (updater) => {
836
868
  this.writeColumnPinning(applyUpdater(updater, this.currentState().columnPinning));
837
869
  };
870
+ this.columnSizingInfoSync = null;
838
871
  this.onColumnSizingInfoChangeCb = (updater) => {
839
- const next = applyUpdater(updater, this._columnSizingInfo.value);
840
- this._columnSizingInfo.value = next != null ? next : this._columnSizingInfo.value;
872
+ const next = applyUpdater(updater, this.columnSizingInfoSync != null ? this.columnSizingInfoSync : this._columnSizingInfo.value);
873
+ if (next == null) return;
874
+ this.columnSizingInfoSync = next;
875
+ this._columnSizingInfo.value = next;
841
876
  };
842
877
  this.resolveVirtual = () => {
843
878
  const v = this.virtual;
@@ -1314,8 +1349,6 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
1314
1349
  const m = this.editMetaOf(colId);
1315
1350
  return m && m.editorOptions != null ? m.editorOptions : [];
1316
1351
  };
1317
- this.hasEditorSlot = (colId) => this.editorTypeOf(colId) === "custom" && !!(this._hasSlotEditor || this.editor !== void 0);
1318
- this.hasFilterSlot = () => !!(this._hasSlotFilter || this.filter !== void 0);
1319
1352
  this.columnIsFilterable = (colId) => {
1320
1353
  const d = this.defFor(colId);
1321
1354
  return !!(d && d.filterable);
@@ -1324,11 +1357,9 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
1324
1357
  const d = this.defFor(colId);
1325
1358
  return d ? d.header : colId;
1326
1359
  };
1327
- this.headerWidth = (colId) => {
1328
- if (this.tick() < 0 || !this.table) return null;
1329
- const col = this.table.getColumn(colId);
1330
- if (!col) return null;
1331
- const w = col.getSize();
1360
+ this.headerWidth = (header) => {
1361
+ if (this.tick() < 0 || !header || typeof header.getSize !== "function") return null;
1362
+ const w = header.getSize();
1332
1363
  return w != null && w > 0 ? w + "px" : null;
1333
1364
  };
1334
1365
  this.onResizeStart = (colId, evt) => {
@@ -1397,11 +1428,11 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
1397
1428
  if (side === "right") return "position:sticky;right:" + (col.getAfter ? col.getAfter("right") : 0) + "px;z-index:" + zIndex + ";";
1398
1429
  return "";
1399
1430
  };
1400
- this.thStyle = (colId) => {
1431
+ this.thStyle = (header) => {
1401
1432
  let s = "";
1402
- const w = this.headerWidth(colId);
1433
+ const w = this.headerWidth(header);
1403
1434
  if (w) s += "width:" + w + ";";
1404
- s += this.pinStyle(colId, 2);
1435
+ s += this.pinStyle(header && header.column ? header.column.id : null, 2);
1405
1436
  return s;
1406
1437
  };
1407
1438
  this.onGlobalFilterInput = (evt) => {
@@ -2707,8 +2738,9 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
2707
2738
  this.fillEdgeScrollRaf = null;
2708
2739
  }
2709
2740
  };
2710
- this.cellIndexFromPoint = (clientX, clientY) => {
2711
- if (typeof document === "undefined" || !document.elementFromPoint) return null;
2741
+ this.FILL_HITTEST_PROBE_RADIUS_PX = 8;
2742
+ this.FILL_HITTEST_PROBE_STEP_PX = 2;
2743
+ this.resolveCellAt = (clientX, clientY) => {
2712
2744
  let el = document.elementFromPoint(clientX, clientY);
2713
2745
  while (el && el.shadowRoot && el.shadowRoot.elementFromPoint) {
2714
2746
  const inner = el.shadowRoot.elementFromPoint(clientX, clientY);
@@ -2729,6 +2761,18 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
2729
2761
  c
2730
2762
  };
2731
2763
  };
2764
+ this.cellIndexFromPoint = (clientX, clientY) => {
2765
+ if (typeof document === "undefined" || !document.elementFromPoint) return null;
2766
+ const direct = this.resolveCellAt(clientX, clientY);
2767
+ if (direct) return direct;
2768
+ for (let d = this.FILL_HITTEST_PROBE_STEP_PX; d <= this.FILL_HITTEST_PROBE_RADIUS_PX; d += this.FILL_HITTEST_PROBE_STEP_PX) {
2769
+ const right = this.resolveCellAt(clientX + d, clientY);
2770
+ if (right) return right;
2771
+ const left = this.resolveCellAt(clientX - d, clientY);
2772
+ if (left) return left;
2773
+ }
2774
+ return null;
2775
+ };
2732
2776
  this.onFillHandlePointerDown = (e) => {
2733
2777
  if (!e) return;
2734
2778
  if (e.preventDefault) e.preventDefault();
@@ -2899,12 +2943,24 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
2899
2943
  const row = (this._rows.value || [])[this._editingRow.value];
2900
2944
  return row ? row.id : null;
2901
2945
  };
2902
- this.focusEditorWhenReady = (selectAll = true) => {
2946
+ this.resolveEditFocusCellEl = (rowIndex, colIndex) => {
2947
+ if (rowIndex == null || colIndex == null || rowIndex < 0 || colIndex < 0) return null;
2948
+ return this.resolveCellEl(String(rowIndex), colIndex);
2949
+ };
2950
+ this.focusEditorWhenReady = (rowIndex, colIndex, selectAll = true) => {
2903
2951
  if (!this.gridRoot) return;
2904
- if (this._editFocusColId.value != null && this.hasEditorSlot(this._editFocusColId.value)) return;
2905
2952
  let attempts = 0;
2906
2953
  const tryFocus = () => {
2907
- const el = this.gridRoot ? this.gridRoot.querySelector("[data-editing-cell]") : null;
2954
+ const cellEl = this.resolveEditFocusCellEl(rowIndex, colIndex);
2955
+ const el = cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell][data-builtin-editor]") : null;
2956
+ if (!el) {
2957
+ if (cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell]") : null) return;
2958
+ attempts = attempts + 1;
2959
+ if (attempts >= 30) return;
2960
+ if (typeof requestAnimationFrame === "function") requestAnimationFrame(tryFocus);
2961
+ else setTimeout(tryFocus, 16);
2962
+ return;
2963
+ }
2908
2964
  const ae = this.gridRoot && this.gridRoot.getRootNode ? this.gridRoot.getRootNode().activeElement : null;
2909
2965
  if (ae && el && ae !== el && ae.closest && this.gridRoot.contains(ae) && ae.hasAttribute && ae.hasAttribute("data-editing-cell")) {
2910
2966
  const aeCell = ae.closest("[data-grid-cell]");
@@ -2913,17 +2969,10 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
2913
2969
  const elCol = elCell ? elCell.getAttribute("data-col-index") : null;
2914
2970
  if (aeCol != null && aeCol !== elCol) return;
2915
2971
  }
2916
- if (el) {
2917
- el.focus();
2918
- if (selectAll && el.select) try {
2919
- el.select();
2920
- } catch (e) {}
2921
- return;
2922
- }
2923
- attempts = attempts + 1;
2924
- if (attempts >= 30) return;
2925
- if (typeof requestAnimationFrame === "function") requestAnimationFrame(tryFocus);
2926
- else setTimeout(tryFocus, 16);
2972
+ el.focus();
2973
+ if (selectAll && el.select) try {
2974
+ el.select();
2975
+ } catch (e) {}
2927
2976
  };
2928
2977
  if (typeof requestAnimationFrame === "function") requestAnimationFrame(tryFocus);
2929
2978
  else setTimeout(tryFocus, 0);
@@ -2954,7 +3003,7 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
2954
3003
  this._activeInControl.value = true;
2955
3004
  this._editVer.value = this._editVer.value + 1;
2956
3005
  this._editFocusColId.value = colId;
2957
- this.focusEditorWhenReady(seed == null);
3006
+ this.focusEditorWhenReady(rowIndex, colIndex, seed == null);
2958
3007
  };
2959
3008
  this.focusCellWhenReady = (row, col) => {
2960
3009
  if (!this.gridRoot) return;
@@ -2962,6 +3011,11 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
2962
3011
  const tryFocus = () => {
2963
3012
  const el = this.resolveCellEl(String(row), col);
2964
3013
  if (el) {
3014
+ const ae = this.gridRoot && this.gridRoot.getRootNode ? this.gridRoot.getRootNode().activeElement : null;
3015
+ if (ae && ae !== el && this.gridRoot.contains && this.gridRoot.contains(ae) && ae.closest) {
3016
+ const aeCell = ae.closest("[data-grid-cell]");
3017
+ if (aeCell && aeCell !== el) return;
3018
+ }
2965
3019
  el.focus();
2966
3020
  return;
2967
3021
  }
@@ -3023,7 +3077,7 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3023
3077
  const err = this.runValidator(colId, newValue, rowOriginal);
3024
3078
  if (err !== true) {
3025
3079
  this.setInvalid(err);
3026
- this.focusEditorWhenReady();
3080
+ this.focusEditorWhenReady(this._editingRow.value, this._editingCol.value);
3027
3081
  return false;
3028
3082
  }
3029
3083
  this.setInvalid("");
@@ -3125,12 +3179,10 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3125
3179
  };
3126
3180
  this.focusRowEditorAt = (rowIndex, colIndex) => {
3127
3181
  if (!this.gridRoot) return;
3128
- const colId = this.columnIdAt(rowIndex, colIndex);
3129
- if (colId != null && this.hasEditorSlot(colId)) return;
3130
3182
  let attempts = 0;
3131
3183
  const tryFocus = () => {
3132
3184
  const cellEl = this.resolveCellEl(String(rowIndex), colIndex);
3133
- const ed = cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell]") : null;
3185
+ const ed = cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell][data-builtin-editor]") : null;
3134
3186
  if (ed) {
3135
3187
  ed.focus();
3136
3188
  if (ed.select) try {
@@ -3138,6 +3190,7 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3138
3190
  } catch (e) {}
3139
3191
  return;
3140
3192
  }
3193
+ if (cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell]") : null) return;
3141
3194
  attempts = attempts + 1;
3142
3195
  if (attempts >= 30) return;
3143
3196
  if (typeof requestAnimationFrame === "function") requestAnimationFrame(tryFocus);
@@ -3169,7 +3222,7 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3169
3222
  this._activeInControl.value = true;
3170
3223
  this._editVer.value = this._editVer.value + 1;
3171
3224
  this._editFocusColId.value = editable[0].colId;
3172
- this.focusEditorWhenReady();
3225
+ this.focusEditorWhenReady(rowIndex, editable[0].colIndex);
3173
3226
  };
3174
3227
  this.commitRow = () => {
3175
3228
  if (this._editingRowIndex.value == null) return false;
@@ -3583,6 +3636,34 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3583
3636
  static {
3584
3637
  this.styles = lit.css`
3585
3638
  :host{display:contents}
3639
+ :host {
3640
+ --rdt-font: var(--rozie-data-table-font);
3641
+ --rdt-color: var(--rozie-data-table-fg);
3642
+ --rdt-cell-padding: var(--rozie-data-table-cell-padding);
3643
+ --rdt-border: 1px solid var(--rozie-data-table-border-color);
3644
+ --rdt-header-bg: var(--rozie-data-table-header-bg);
3645
+ --rdt-header-weight: var(--rozie-data-table-header-weight);
3646
+ --rdt-sort-ind-opacity: var(--rozie-data-table-sort-indicator-opacity);
3647
+ --rdt-filter-border: 1px solid var(--rozie-data-table-control-border-color);
3648
+ --rdt-filter-radius: var(--rozie-data-table-radius);
3649
+ --rdt-page-btn-border: 1px solid var(--rozie-data-table-control-border-color);
3650
+ --rdt-page-btn-radius: var(--rozie-data-table-radius);
3651
+ --rdt-page-btn-disabled-opacity: var(--rozie-data-table-disabled-opacity);
3652
+ --rdt-page-size-border: 1px solid var(--rozie-data-table-control-border-color);
3653
+ --rdt-page-size-radius: var(--rozie-data-table-radius);
3654
+ --rdt-resize-grip-color: var(--rozie-data-table-resize-grip-color);
3655
+ --rdt-resize-grip-active: var(--rozie-data-table-resize-grip-active);
3656
+ --rdt-pin-btn-border: 1px solid var(--rozie-data-table-control-border-color);
3657
+ --rdt-pin-btn-radius: var(--rozie-data-table-radius);
3658
+ --rdt-pin-btn-active-bg: var(--rozie-data-table-pin-active-bg);
3659
+ --rdt-colvis-summary-border: 1px solid var(--rozie-data-table-control-border-color);
3660
+ --rdt-colvis-summary-radius: var(--rozie-data-table-radius);
3661
+ --rdt-colvis-menu-border: 1px solid var(--rozie-data-table-border-color);
3662
+ --rdt-colvis-menu-radius: var(--rozie-data-table-radius);
3663
+ --rdt-colvis-menu-bg: var(--rozie-data-table-menu-bg);
3664
+ --rdt-colvis-menu-shadow: var(--rozie-data-table-menu-shadow);
3665
+ --rdt-select-accent: var(--rozie-data-table-select-accent);
3666
+ }
3586
3667
  .rozie-data-table[data-rozie-s-d5dcab4c] {
3587
3668
  border-collapse: collapse;
3588
3669
  width: 100%;
@@ -3954,10 +4035,10 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3954
4035
  }
3955
4036
  }
3956
4037
  {
3957
- const slotEl = this.shadowRoot?.querySelector("slot[name=\"colHeader\"]");
4038
+ const slotEl = this.shadowRoot?.querySelector("slot:not([name])");
3958
4039
  if (slotEl !== null && slotEl !== void 0) {
3959
4040
  const update = () => {
3960
- this._hasSlotColHeader = this._slotColHeaderElements.length > 0;
4041
+ this._hasSlotDynamicColHeader = this._slotDynamicColHeaderElements.length > 0;
3961
4042
  };
3962
4043
  slotEl.addEventListener("slotchange", update);
3963
4044
  this._disconnectCleanups.push(() => slotEl.removeEventListener("slotchange", update));
@@ -3965,10 +4046,10 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3965
4046
  }
3966
4047
  }
3967
4048
  {
3968
- const slotEl = this.shadowRoot?.querySelector("slot[name=\"filter\"]");
4049
+ const slotEl = this.shadowRoot?.querySelector("slot:not([name])");
3969
4050
  if (slotEl !== null && slotEl !== void 0) {
3970
4051
  const update = () => {
3971
- this._hasSlotFilter = this._slotFilterElements.length > 0;
4052
+ this._hasSlotDynamicFilter = this._slotDynamicFilterElements.length > 0;
3972
4053
  };
3973
4054
  slotEl.addEventListener("slotchange", update);
3974
4055
  this._disconnectCleanups.push(() => slotEl.removeEventListener("slotchange", update));
@@ -3987,10 +4068,10 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3987
4068
  }
3988
4069
  }
3989
4070
  {
3990
- const slotEl = this.shadowRoot?.querySelector("slot[name=\"cell\"]");
4071
+ const slotEl = this.shadowRoot?.querySelector("slot:not([name])");
3991
4072
  if (slotEl !== null && slotEl !== void 0) {
3992
4073
  const update = () => {
3993
- this._hasSlotCell = this._slotCellElements.length > 0;
4074
+ this._hasSlotDynamicCell = this._slotDynamicCellElements.length > 0;
3994
4075
  };
3995
4076
  slotEl.addEventListener("slotchange", update);
3996
4077
  this._disconnectCleanups.push(() => slotEl.removeEventListener("slotchange", update));
@@ -3998,10 +4079,10 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
3998
4079
  }
3999
4080
  }
4000
4081
  {
4001
- const slotEl = this.shadowRoot?.querySelector("slot[name=\"editor\"]");
4082
+ const slotEl = this.shadowRoot?.querySelector("slot:not([name])");
4002
4083
  if (slotEl !== null && slotEl !== void 0) {
4003
4084
  const update = () => {
4004
- this._hasSlotEditor = this._slotEditorElements.length > 0;
4085
+ this._hasSlotDynamicEditor = this._slotDynamicEditorElements.length > 0;
4005
4086
  };
4006
4087
  slotEl.addEventListener("slotchange", update);
4007
4088
  this._disconnectCleanups.push(() => slotEl.removeEventListener("slotchange", update));
@@ -4019,17 +4100,65 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
4019
4100
  update();
4020
4101
  }
4021
4102
  }
4103
+ {
4104
+ const slotEl = this.shadowRoot?.querySelector("slot[name=\"colHeader\"]");
4105
+ if (slotEl !== null && slotEl !== void 0) {
4106
+ const update = () => {
4107
+ this._hasSlotColHeader = this._slotColHeaderElements.length > 0;
4108
+ };
4109
+ slotEl.addEventListener("slotchange", update);
4110
+ this._disconnectCleanups.push(() => slotEl.removeEventListener("slotchange", update));
4111
+ update();
4112
+ }
4113
+ }
4114
+ {
4115
+ const slotEl = this.shadowRoot?.querySelector("slot[name=\"filter\"]");
4116
+ if (slotEl !== null && slotEl !== void 0) {
4117
+ const update = () => {
4118
+ this._hasSlotFilter = this._slotFilterElements.length > 0;
4119
+ };
4120
+ slotEl.addEventListener("slotchange", update);
4121
+ this._disconnectCleanups.push(() => slotEl.removeEventListener("slotchange", update));
4122
+ update();
4123
+ }
4124
+ }
4125
+ {
4126
+ const slotEl = this.shadowRoot?.querySelector("slot[name=\"cell\"]");
4127
+ if (slotEl !== null && slotEl !== void 0) {
4128
+ const update = () => {
4129
+ this._hasSlotCell = this._slotCellElements.length > 0;
4130
+ };
4131
+ slotEl.addEventListener("slotchange", update);
4132
+ this._disconnectCleanups.push(() => slotEl.removeEventListener("slotchange", update));
4133
+ update();
4134
+ }
4135
+ }
4136
+ {
4137
+ const slotEl = this.shadowRoot?.querySelector("slot[name=\"editor\"]");
4138
+ if (slotEl !== null && slotEl !== void 0) {
4139
+ const update = () => {
4140
+ this._hasSlotEditor = this._slotEditorElements.length > 0;
4141
+ };
4142
+ slotEl.addEventListener("slotchange", update);
4143
+ this._disconnectCleanups.push(() => slotEl.removeEventListener("slotchange", update));
4144
+ update();
4145
+ }
4146
+ }
4022
4147
  }
4023
4148
  connectedCallback() {
4024
4149
  this._hasSlotDefault = Array.from(this.children).some((el) => !el.hasAttribute("slot") && (el.nodeType !== 3 || (el.textContent?.trim().length ?? 0) > 0));
4025
4150
  this._hasSlotGroupBar = Array.from(this.children).some((el) => el.getAttribute("slot") === "groupBar");
4026
4151
  this._hasSlotSelectAll = Array.from(this.children).some((el) => el.getAttribute("slot") === "selectAll");
4152
+ this._hasSlotDynamicColHeader = Array.from(this.children).some((el) => !el.hasAttribute("slot") && (el.nodeType !== 3 || (el.textContent?.trim().length ?? 0) > 0));
4153
+ this._hasSlotDynamicFilter = Array.from(this.children).some((el) => !el.hasAttribute("slot") && (el.nodeType !== 3 || (el.textContent?.trim().length ?? 0) > 0));
4154
+ this._hasSlotSelectCell = Array.from(this.children).some((el) => el.getAttribute("slot") === "selectCell");
4155
+ this._hasSlotDynamicCell = Array.from(this.children).some((el) => !el.hasAttribute("slot") && (el.nodeType !== 3 || (el.textContent?.trim().length ?? 0) > 0));
4156
+ this._hasSlotDynamicEditor = Array.from(this.children).some((el) => !el.hasAttribute("slot") && (el.nodeType !== 3 || (el.textContent?.trim().length ?? 0) > 0));
4157
+ this._hasSlotDetail = Array.from(this.children).some((el) => el.getAttribute("slot") === "detail");
4027
4158
  this._hasSlotColHeader = Array.from(this.children).some((el) => el.getAttribute("slot") === "colHeader");
4028
4159
  this._hasSlotFilter = Array.from(this.children).some((el) => el.getAttribute("slot") === "filter");
4029
- this._hasSlotSelectCell = Array.from(this.children).some((el) => el.getAttribute("slot") === "selectCell");
4030
4160
  this._hasSlotCell = Array.from(this.children).some((el) => el.getAttribute("slot") === "cell");
4031
4161
  this._hasSlotEditor = Array.from(this.children).some((el) => el.getAttribute("slot") === "editor");
4032
- this._hasSlotDetail = Array.from(this.children).some((el) => el.getAttribute("slot") === "detail");
4033
4162
  super.connectedCallback();
4034
4163
  if (this.hasUpdated && this._rozieTornDown) {
4035
4164
  this._rozieTornDown = false;
@@ -4046,6 +4175,7 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
4046
4175
  return;
4047
4176
  }
4048
4177
  (() => {
4178
+ this.seedColumnPinning();
4049
4179
  this.reFeed();
4050
4180
  this.maybeClearHistoryOnExternalSwap();
4051
4181
  })();
@@ -4085,6 +4215,7 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
4085
4215
  }))(this));
4086
4216
  }));
4087
4217
  this._dataDefault.value = this.data || [];
4218
+ this.seedColumnPinning();
4088
4219
  this.table = (0, _tanstack_table_core.createTable)({
4089
4220
  data: this.currentData(),
4090
4221
  columns: this.tableColumns(),
@@ -4179,6 +4310,7 @@ let DataTable = class DataTable extends (0, _lit_labs_preact_signals.SignalWatch
4179
4310
  }
4180
4311
  if (this.colsWindowed()) {
4181
4312
  if (!(this.gridScrollEl ? this.gridScrollEl.clientWidth : 0)) console.warn("[rozie-data-table] virtual is on for columns but the scroll container has no bounded width; set a CSS width on an ancestor so the column window can be measured");
4313
+ this.bumpWindowVer();
4182
4314
  }
4183
4315
  };
4184
4316
  if (typeof requestAnimationFrame === "function") requestAnimationFrame(() => requestAnimationFrame(afterFirstFrame));
@@ -4291,7 +4423,7 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4291
4423
  "rdt-expander-th": this.isExpanderColumn(wh.header.column.id),
4292
4424
  "rdt-th-resizing": this.columnIsResizing(wh.header.column.id),
4293
4425
  "rdt-cell-active": this.isActiveCell("__header", this.headerColIndexOf(hg, wh.header), hgLevel)
4294
- }).filter(([, v]) => v).map(([k]) => k).join(" ")}" role="columnheader" data-col=${(0, _rozie_runtime_lit.rozieAttr)(wh.header.column.id)} data-grid-cell="" data-row="__header" data-header-level=${(0, _rozie_runtime_lit.rozieAttr)(hgLevel)} colspan=${(0, _rozie_runtime_lit.rozieAttr)(wh.span > 1 ? wh.span : null)} data-col-index=${(0, _rozie_runtime_lit.rozieAttr)(this.headerColIndexOf(hg, wh.header))} tabindex=${(0, _rozie_runtime_lit.rozieAttr)(this.cellTabindex("__header", this.headerColIndexOf(hg, wh.header), hgLevel))} aria-sort=${(0, _rozie_runtime_lit.rozieAttr)(this.ariaSortFor(wh.header.column.id))} style=${(0, _rozie_runtime_lit.rozieStyle)(this.thStyle(wh.header.column.id))} data-rozie-s-d5dcab4c>
4426
+ }).filter(([, v]) => v).map(([k]) => k).join(" ")}" role="columnheader" data-col=${(0, _rozie_runtime_lit.rozieAttr)(wh.header.column.id)} data-grid-cell="" data-row="__header" data-header-level=${(0, _rozie_runtime_lit.rozieAttr)(hgLevel)} colspan=${(0, _rozie_runtime_lit.rozieAttr)(wh.span > 1 ? wh.span : null)} data-col-index=${(0, _rozie_runtime_lit.rozieAttr)(this.headerColIndexOf(hg, wh.header))} tabindex=${(0, _rozie_runtime_lit.rozieAttr)(this.cellTabindex("__header", this.headerColIndexOf(hg, wh.header), hgLevel))} aria-sort=${(0, _rozie_runtime_lit.rozieAttr)(this.ariaSortFor(wh.header.column.id))} style=${(0, _rozie_runtime_lit.rozieStyle)(this.thStyle(wh.header))} data-rozie-s-d5dcab4c>
4295
4427
  ${this.isSelectColumn(wh.header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4296
4428
  ${this.selectAll !== void 0 ? this.selectAll({
4297
4429
  checked: this.isAllRowsSelected(),
@@ -4315,7 +4447,22 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4315
4447
  this.onHeaderSort(wh.header.column.id, $event);
4316
4448
  }} data-rozie-s-d5dcab4c>
4317
4449
  <span class="rdt-header-label" data-rozie-s-d5dcab4c>
4318
- ${this.colHeader !== void 0 ? this.colHeader({
4450
+ ${this.rozieSlots?.[`colHeader-${wh.header.column.id}`] !== void 0 ? this.rozieSlots?.[`colHeader-${wh.header.column.id}`]({
4451
+ columnId: wh.header.column.id,
4452
+ column: wh.header.column,
4453
+ label: this.headerLabel(wh.header.column.id)
4454
+ }) : lit.html`<slot name="${`colHeader-${wh.header.column.id}`}" data-rozie-params=${(() => {
4455
+ try {
4456
+ return JSON.stringify({
4457
+ columnId: wh.header.column.id,
4458
+ column: wh.header.column,
4459
+ label: this.headerLabel(wh.header.column.id)
4460
+ });
4461
+ } catch {
4462
+ return "{}";
4463
+ }
4464
+ })()}>
4465
+ ${this.colHeader !== void 0 ? this.colHeader({
4319
4466
  columnId: wh.header.column.id,
4320
4467
  column: wh.header.column,
4321
4468
  label: this.headerLabel(wh.header.column.id)
@@ -4330,11 +4477,27 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4330
4477
  return "{}";
4331
4478
  }
4332
4479
  })()}>${(0, _rozie_runtime_lit.rozieDisplay)(this.headerLabel(wh.header.column.id))}</slot>`}
4480
+ </slot>`}
4333
4481
  </span>
4334
4482
  <span class="rdt-sort-ind" aria-hidden="true" data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)(this.sortIndicator(wh.header.column.id))}</span>
4335
4483
  </button>` : lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4336
4484
  <span class="rdt-header-label" data-rozie-s-d5dcab4c>
4337
- ${this.colHeader !== void 0 ? this.colHeader({
4485
+ ${this.rozieSlots?.[`colHeader-${wh.header.column.id}`] !== void 0 ? this.rozieSlots?.[`colHeader-${wh.header.column.id}`]({
4486
+ columnId: wh.header.column.id,
4487
+ column: wh.header.column,
4488
+ label: this.headerLabel(wh.header.column.id)
4489
+ }) : lit.html`<slot name="${`colHeader-${wh.header.column.id}`}" data-rozie-params=${(() => {
4490
+ try {
4491
+ return JSON.stringify({
4492
+ columnId: wh.header.column.id,
4493
+ column: wh.header.column,
4494
+ label: this.headerLabel(wh.header.column.id)
4495
+ });
4496
+ } catch {
4497
+ return "{}";
4498
+ }
4499
+ })()}>
4500
+ ${this.colHeader !== void 0 ? this.colHeader({
4338
4501
  columnId: wh.header.column.id,
4339
4502
  column: wh.header.column,
4340
4503
  label: this.headerLabel(wh.header.column.id)
@@ -4349,6 +4512,7 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4349
4512
  return "{}";
4350
4513
  }
4351
4514
  })()}>${(0, _rozie_runtime_lit.rozieDisplay)(this.headerLabel(wh.header.column.id))}</slot>`}
4515
+ </slot>`}
4352
4516
  </span>
4353
4517
  </span>`}<rozie-popover trigger="click" placement="bottom-end" strategy="fixed" .offset=${4} data-rozie-s-d5dcab4c><button class="rdt-col-menu-trigger" type="button" aria-label=${(0, _rozie_runtime_lit.rozieAttr)("Column options for " + this.headerLabel(wh.header.column.id))} data-rozie-s-d5dcab4c slot="anchor">⋯</button><div class="rdt-col-menu" role="menu" data-rozie-s-d5dcab4c>
4354
4518
  <button class="rdt-col-menu-item" type="button" role="menuitem" aria-pressed=${this.columnPinSide(wh.header.column.id) === "left"} @click=${($event) => {
@@ -4377,12 +4541,26 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4377
4541
  ${this.hasAnyFilterableColumn() ? lit.html`<tr class="rdt-filter-row" data-rozie-s-d5dcab4c>
4378
4542
  ${this.colsWindowed() ? lit.html`<th class="rdt-col-spacer" aria-hidden="true" style=${(0, _rozie_runtime_lit.rozieStyle)("width:" + this.colPadLeft() + "px;padding:0;border:0")} data-rozie-s-d5dcab4c></th>` : lit.nothing}${(0, lit_directives_repeat_js.repeat)(this.windowedHeadersFor(this._headerGroups.value[this._headerGroups.value.length - 1], this._headerGroups.value.length - 1), (wh, _idx) => wh.header.id, (wh, _idx) => lit.html`<th class="rdt-filter-cell" role="presentation" data-col=${(0, _rozie_runtime_lit.rozieAttr)(wh.header.column.id)} style=${(0, _rozie_runtime_lit.rozieStyle)(this.pinStyle(wh.header.column.id))} data-rozie-s-d5dcab4c>
4379
4543
  ${this.isSelectColumn(wh.header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c></span>` : this.isExpanderColumn(wh.header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c></span>` : lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4380
- ${this.columnIsFilterable(wh.header.column.id) && !this.hasFilterSlot() ? lit.html`<input class="rdt-col-filter" type="text" aria-label=${(0, _rozie_runtime_lit.rozieAttr)("Filter " + this.headerLabel(wh.header.column.id))} .value=${this.columnFilterValue(wh.header.column.id)} @input=${($event) => {
4381
- this.onColumnFilterInput(wh.header.column.id, $event);
4382
- }} @click=${($event) => {
4383
- this.stopEvent($event);
4384
- }} data-rozie-s-d5dcab4c />` : lit.nothing}${this.columnIsFilterable(wh.header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4385
- ${this.filter !== void 0 ? this.filter({
4544
+ ${this.columnIsFilterable(wh.header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4545
+ ${this.rozieSlots?.[`filter-${wh.header.column.id}`] !== void 0 ? this.rozieSlots?.[`filter-${wh.header.column.id}`]({
4546
+ columnId: wh.header.column.id,
4547
+ value: this.columnFilterValue(wh.header.column.id),
4548
+ uniqueValues: this.getFacetedUniqueValues(wh.header.column.id),
4549
+ minMax: this.getFacetedMinMaxValues(wh.header.column.id),
4550
+ setFilter: this.setColumnFilter
4551
+ }) : lit.html`<slot name="${`filter-${wh.header.column.id}`}" data-rozie-params=${(() => {
4552
+ try {
4553
+ return JSON.stringify({
4554
+ columnId: wh.header.column.id,
4555
+ value: this.columnFilterValue(wh.header.column.id),
4556
+ uniqueValues: this.getFacetedUniqueValues(wh.header.column.id),
4557
+ minMax: this.getFacetedMinMaxValues(wh.header.column.id)
4558
+ });
4559
+ } catch {
4560
+ return "{}";
4561
+ }
4562
+ })()} @rozie-default-set-filter=${($event) => this.setColumnFilter($event.detail)}>
4563
+ ${this.filter !== void 0 ? this.filter({
4386
4564
  columnId: wh.header.column.id,
4387
4565
  value: this.columnFilterValue(wh.header.column.id),
4388
4566
  uniqueValues: this.getFacetedUniqueValues(wh.header.column.id),
@@ -4399,7 +4577,14 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4399
4577
  } catch {
4400
4578
  return "{}";
4401
4579
  }
4402
- })()} @rozie-filter-set-filter=${($event) => this.setColumnFilter($event.detail)}></slot>`}
4580
+ })()} @rozie-filter-set-filter=${($event) => this.setColumnFilter($event.detail)}>
4581
+ <input class="rdt-col-filter" type="text" aria-label=${(0, _rozie_runtime_lit.rozieAttr)("Filter " + this.headerLabel(wh.header.column.id))} .value=${this.columnFilterValue(wh.header.column.id)} @input=${($event) => {
4582
+ this.onColumnFilterInput(wh.header.column.id, $event);
4583
+ }} @click=${($event) => {
4584
+ this.stopEvent($event);
4585
+ }} data-rozie-s-d5dcab4c />
4586
+ </slot>`}
4587
+ </slot>`}
4403
4588
  </span>` : lit.nothing}</span>`}</th>`)}
4404
4589
  ${this.colsWindowed() ? lit.html`<th class="rdt-col-spacer" aria-hidden="true" style=${(0, _rozie_runtime_lit.rozieStyle)("width:" + this.colPadRight() + "px;padding:0;border:0")} data-rozie-s-d5dcab4c></th>` : lit.nothing}</tr>` : lit.nothing}</thead>
4405
4590
 
@@ -4451,7 +4636,24 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4451
4636
  this.onToggleExpand(wr.row, $event);
4452
4637
  }} data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)(this.rowIsExpanded(wr.row) ? "▾" : "▸")}</button>
4453
4638
  <span class="rdt-group-value" data-rozie-s-d5dcab4c>
4454
- ${this.cell !== void 0 ? this.cell({
4639
+ ${this.rozieSlots?.[`cell-${cell.column.id}`] !== void 0 ? this.rozieSlots?.[`cell-${cell.column.id}`]({
4640
+ columnId: cell.column.id,
4641
+ column: cell.column,
4642
+ row: this.cellSlotRow(wr.row),
4643
+ value: cell.getValue()
4644
+ }) : lit.html`<slot name="${`cell-${cell.column.id}`}" data-rozie-params=${(() => {
4645
+ try {
4646
+ return JSON.stringify({
4647
+ columnId: cell.column.id,
4648
+ column: cell.column,
4649
+ row: this.cellSlotRow(wr.row),
4650
+ value: cell.getValue()
4651
+ });
4652
+ } catch {
4653
+ return "{}";
4654
+ }
4655
+ })()}>
4656
+ ${this.cell !== void 0 ? this.cell({
4455
4657
  columnId: cell.column.id,
4456
4658
  column: cell.column,
4457
4659
  row: this.cellSlotRow(wr.row),
@@ -4468,11 +4670,55 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4468
4670
  return "{}";
4469
4671
  }
4470
4672
  })()}>${(0, _rozie_runtime_lit.rozieDisplay)(cell.getValue())}</slot>`}
4673
+ </slot>`}
4471
4674
  </span>
4472
4675
  <span class="rdt-group-count" data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)("(" + this.groupSubRowCount(wr.row) + ")")}</span>
4473
4676
  </span>` : this.isEditing(wr.vi.index, this.colIndexOf(wr.row, cell)) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4474
- ${this.hasEditorSlot(cell.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4475
- ${this.editor !== void 0 ? this.editor({
4677
+ ${this.editorTypeOf(cell.column.id) === "number" ? lit.html`<input class="rdt-cell-editor" type="number" data-editing-cell="" data-builtin-editor="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
4678
+ this.onCellEditorInput(cell.column.id, $event);
4679
+ }} @keydown=${($event) => {
4680
+ this.onEditorKeyDown($event);
4681
+ }} @blur=${($event) => {
4682
+ this.onEditorBlur($event);
4683
+ }} data-rozie-s-d5dcab4c />` : this.editorTypeOf(cell.column.id) === "select" ? lit.html`<select class="rdt-cell-editor" data-editing-cell="" data-builtin-editor="" .value=${this.editorValueFor(cell.column.id)} @change=${($event) => {
4684
+ this.onCellEditorInput(cell.column.id, $event);
4685
+ }} @keydown=${($event) => {
4686
+ this.onEditorKeyDown($event);
4687
+ }} @blur=${($event) => {
4688
+ this.onEditorBlur($event);
4689
+ }} data-rozie-s-d5dcab4c>
4690
+ ${(0, lit_directives_repeat_js.repeat)(this.editorOptionsOf(cell.column.id), (opt, _idx) => opt.value, (opt, _idx) => lit.html`<option value=${(0, _rozie_runtime_lit.rozieAttr)(opt.value)} data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)(opt.label)}</option>`)}
4691
+ </select>` : this.editorTypeOf(cell.column.id) === "checkbox" ? lit.html`<input class="rdt-cell-editor" type="checkbox" data-editing-cell="" data-builtin-editor="" ?checked=${this.editorCheckedFor(cell.column.id)} @change=${($event) => {
4692
+ this.onCellEditorCheckbox(cell.column.id, $event);
4693
+ }} @keydown=${($event) => {
4694
+ this.onEditorKeyDown($event);
4695
+ }} @blur=${($event) => {
4696
+ this.onEditorBlur($event);
4697
+ }} data-rozie-s-d5dcab4c />` : this.editorTypeOf(cell.column.id) === "custom" ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4698
+ ${this.rozieSlots?.[`editor-${cell.column.id}`] !== void 0 ? this.rozieSlots?.[`editor-${cell.column.id}`]({
4699
+ columnId: cell.column.id,
4700
+ column: cell.column,
4701
+ row: this.cellSlotRow(wr.row),
4702
+ value: this.editorValueFor(cell.column.id),
4703
+ commit: this.editorCommitFor(cell.column.id),
4704
+ cancel: this.editorCancelFor(),
4705
+ autofocus: this.editorAutofocusFor(cell.column.id, wr.vi.index)
4706
+ }) : lit.html`<slot name="${`editor-${cell.column.id}`}" data-rozie-params=${(() => {
4707
+ try {
4708
+ return JSON.stringify({
4709
+ columnId: cell.column.id,
4710
+ column: cell.column,
4711
+ row: this.cellSlotRow(wr.row),
4712
+ value: this.editorValueFor(cell.column.id),
4713
+ commit: this.editorCommitFor(cell.column.id),
4714
+ cancel: this.editorCancelFor(),
4715
+ autofocus: this.editorAutofocusFor(cell.column.id, wr.vi.index)
4716
+ });
4717
+ } catch {
4718
+ return "{}";
4719
+ }
4720
+ })()}>
4721
+ ${this.editor !== void 0 ? this.editor({
4476
4722
  columnId: cell.column.id,
4477
4723
  column: cell.column,
4478
4724
  row: this.cellSlotRow(wr.row),
@@ -4494,35 +4740,41 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4494
4740
  } catch {
4495
4741
  return "{}";
4496
4742
  }
4497
- })()}></slot>`}
4498
- </span>` : this.editorTypeOf(cell.column.id) === "number" ? lit.html`<input class="rdt-cell-editor" type="number" data-editing-cell="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
4743
+ })()}>
4744
+ <input class="rdt-cell-editor" type="text" data-editing-cell="" data-builtin-editor="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
4499
4745
  this.onCellEditorInput(cell.column.id, $event);
4500
4746
  }} @keydown=${($event) => {
4501
4747
  this.onEditorKeyDown($event);
4502
4748
  }} @blur=${($event) => {
4503
4749
  this.onEditorBlur($event);
4504
- }} data-rozie-s-d5dcab4c />` : this.editorTypeOf(cell.column.id) === "select" ? lit.html`<select class="rdt-cell-editor" data-editing-cell="" .value=${this.editorValueFor(cell.column.id)} @change=${($event) => {
4505
- this.onCellEditorInput(cell.column.id, $event);
4506
- }} @keydown=${($event) => {
4507
- this.onEditorKeyDown($event);
4508
- }} @blur=${($event) => {
4509
- this.onEditorBlur($event);
4510
- }} data-rozie-s-d5dcab4c>
4511
- ${(0, lit_directives_repeat_js.repeat)(this.editorOptionsOf(cell.column.id), (opt, _idx) => opt.value, (opt, _idx) => lit.html`<option value=${(0, _rozie_runtime_lit.rozieAttr)(opt.value)} data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)(opt.label)}</option>`)}
4512
- </select>` : this.editorTypeOf(cell.column.id) === "checkbox" ? lit.html`<input class="rdt-cell-editor" type="checkbox" data-editing-cell="" ?checked=${this.editorCheckedFor(cell.column.id)} @change=${($event) => {
4513
- this.onCellEditorCheckbox(cell.column.id, $event);
4514
- }} @keydown=${($event) => {
4515
- this.onEditorKeyDown($event);
4516
- }} @blur=${($event) => {
4517
- this.onEditorBlur($event);
4518
- }} data-rozie-s-d5dcab4c />` : lit.html`<input class="rdt-cell-editor" type="text" data-editing-cell="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
4750
+ }} data-rozie-s-d5dcab4c />
4751
+ </slot>`}
4752
+ </slot>`}
4753
+ </span>` : lit.html`<input class="rdt-cell-editor" type="text" data-editing-cell="" data-builtin-editor="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
4519
4754
  this.onCellEditorInput(cell.column.id, $event);
4520
4755
  }} @keydown=${($event) => {
4521
4756
  this.onEditorKeyDown($event);
4522
4757
  }} @blur=${($event) => {
4523
4758
  this.onEditorBlur($event);
4524
4759
  }} data-rozie-s-d5dcab4c />`}</span>` : this.cellIsPlaceholder(cell) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c></span>` : lit.html`<span class="rdt-cell-value" data-rozie-s-d5dcab4c>
4525
- ${this.cell !== void 0 ? this.cell({
4760
+ ${this.rozieSlots?.[`cell-${cell.column.id}`] !== void 0 ? this.rozieSlots?.[`cell-${cell.column.id}`]({
4761
+ columnId: cell.column.id,
4762
+ column: cell.column,
4763
+ row: this.cellSlotRow(wr.row),
4764
+ value: cell.getValue()
4765
+ }) : lit.html`<slot name="${`cell-${cell.column.id}`}" data-rozie-params=${(() => {
4766
+ try {
4767
+ return JSON.stringify({
4768
+ columnId: cell.column.id,
4769
+ column: cell.column,
4770
+ row: this.cellSlotRow(wr.row),
4771
+ value: cell.getValue()
4772
+ });
4773
+ } catch {
4774
+ return "{}";
4775
+ }
4776
+ })()}>
4777
+ ${this.cell !== void 0 ? this.cell({
4526
4778
  columnId: cell.column.id,
4527
4779
  column: cell.column,
4528
4780
  row: this.cellSlotRow(wr.row),
@@ -4539,6 +4791,7 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4539
4791
  return "{}";
4540
4792
  }
4541
4793
  })()}>${(0, _rozie_runtime_lit.rozieDisplay)(cell.getValue())}</slot>`}
4794
+ </slot>`}
4542
4795
  </span>`}${this.isFillHandleCell(wr.vi.index, this.colIndexOf(wr.row, cell)) ? lit.html`<span class="rdt-fill-handle" data-fill-handle="" data-testid="fill-handle" aria-hidden="true" @pointerdown=${($event) => {
4543
4796
  this.onFillHandlePointerDown($event);
4544
4797
  }} data-rozie-s-d5dcab4c></span>` : lit.nothing}</td>`)}
@@ -4586,7 +4839,7 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4586
4839
  "rdt-expander-th": this.isExpanderColumn(header.column.id),
4587
4840
  "rdt-th-resizing": this.columnIsResizing(header.column.id),
4588
4841
  "rdt-cell-active": this.isActiveCell("__header", this.headerColIndexOf(hg, header), hgLevel)
4589
- }).filter(([, v]) => v).map(([k]) => k).join(" ")}" role="columnheader" data-col=${(0, _rozie_runtime_lit.rozieAttr)(header.column.id)} data-grid-cell="" data-row="__header" data-header-level=${(0, _rozie_runtime_lit.rozieAttr)(hgLevel)} colspan=${(0, _rozie_runtime_lit.rozieAttr)(header.colSpan > 1 ? header.colSpan : null)} data-col-index=${(0, _rozie_runtime_lit.rozieAttr)(this.headerColIndexOf(hg, header))} tabindex=${(0, _rozie_runtime_lit.rozieAttr)(this.cellTabindex("__header", this.headerColIndexOf(hg, header), hgLevel))} aria-sort=${(0, _rozie_runtime_lit.rozieAttr)(this.ariaSortFor(header.column.id))} style=${(0, _rozie_runtime_lit.rozieStyle)(this.thStyle(header.column.id))} data-rozie-s-d5dcab4c>
4842
+ }).filter(([, v]) => v).map(([k]) => k).join(" ")}" role="columnheader" data-col=${(0, _rozie_runtime_lit.rozieAttr)(header.column.id)} data-grid-cell="" data-row="__header" data-header-level=${(0, _rozie_runtime_lit.rozieAttr)(hgLevel)} colspan=${(0, _rozie_runtime_lit.rozieAttr)(header.colSpan > 1 ? header.colSpan : null)} data-col-index=${(0, _rozie_runtime_lit.rozieAttr)(this.headerColIndexOf(hg, header))} tabindex=${(0, _rozie_runtime_lit.rozieAttr)(this.cellTabindex("__header", this.headerColIndexOf(hg, header), hgLevel))} aria-sort=${(0, _rozie_runtime_lit.rozieAttr)(this.ariaSortFor(header.column.id))} style=${(0, _rozie_runtime_lit.rozieStyle)(this.thStyle(header))} data-rozie-s-d5dcab4c>
4590
4843
 
4591
4844
 
4592
4845
  ${this.isSelectColumn(header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
@@ -4615,7 +4868,22 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4615
4868
  }} data-rozie-s-d5dcab4c>
4616
4869
 
4617
4870
  <span class="rdt-header-label" data-rozie-s-d5dcab4c>
4618
- ${this.colHeader !== void 0 ? this.colHeader({
4871
+ ${this.rozieSlots?.[`colHeader-${header.column.id}`] !== void 0 ? this.rozieSlots?.[`colHeader-${header.column.id}`]({
4872
+ columnId: header.column.id,
4873
+ column: header.column,
4874
+ label: this.headerLabel(header.column.id)
4875
+ }) : lit.html`<slot name="${`colHeader-${header.column.id}`}" data-rozie-params=${(() => {
4876
+ try {
4877
+ return JSON.stringify({
4878
+ columnId: header.column.id,
4879
+ column: header.column,
4880
+ label: this.headerLabel(header.column.id)
4881
+ });
4882
+ } catch {
4883
+ return "{}";
4884
+ }
4885
+ })()}>
4886
+ ${this.colHeader !== void 0 ? this.colHeader({
4619
4887
  columnId: header.column.id,
4620
4888
  column: header.column,
4621
4889
  label: this.headerLabel(header.column.id)
@@ -4630,11 +4898,27 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4630
4898
  return "{}";
4631
4899
  }
4632
4900
  })()}>${(0, _rozie_runtime_lit.rozieDisplay)(this.headerLabel(header.column.id))}</slot>`}
4901
+ </slot>`}
4633
4902
  </span>
4634
4903
  <span class="rdt-sort-ind" aria-hidden="true" data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)(this.sortIndicator(header.column.id))}</span>
4635
4904
  </button>` : lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4636
4905
  <span class="rdt-header-label" data-rozie-s-d5dcab4c>
4637
- ${this.colHeader !== void 0 ? this.colHeader({
4906
+ ${this.rozieSlots?.[`colHeader-${header.column.id}`] !== void 0 ? this.rozieSlots?.[`colHeader-${header.column.id}`]({
4907
+ columnId: header.column.id,
4908
+ column: header.column,
4909
+ label: this.headerLabel(header.column.id)
4910
+ }) : lit.html`<slot name="${`colHeader-${header.column.id}`}" data-rozie-params=${(() => {
4911
+ try {
4912
+ return JSON.stringify({
4913
+ columnId: header.column.id,
4914
+ column: header.column,
4915
+ label: this.headerLabel(header.column.id)
4916
+ });
4917
+ } catch {
4918
+ return "{}";
4919
+ }
4920
+ })()}>
4921
+ ${this.colHeader !== void 0 ? this.colHeader({
4638
4922
  columnId: header.column.id,
4639
4923
  column: header.column,
4640
4924
  label: this.headerLabel(header.column.id)
@@ -4649,6 +4933,7 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4649
4933
  return "{}";
4650
4934
  }
4651
4935
  })()}>${(0, _rozie_runtime_lit.rozieDisplay)(this.headerLabel(header.column.id))}</slot>`}
4936
+ </slot>`}
4652
4937
  </span>
4653
4938
  </span>`}<rozie-popover trigger="click" placement="bottom-end" strategy="fixed" .offset=${4} data-rozie-s-d5dcab4c><button class="rdt-col-menu-trigger" type="button" aria-label=${(0, _rozie_runtime_lit.rozieAttr)("Column options for " + this.headerLabel(header.column.id))} data-rozie-s-d5dcab4c slot="anchor">⋯</button><div class="rdt-col-menu" role="menu" data-rozie-s-d5dcab4c>
4654
4939
  <button class="rdt-col-menu-item" type="button" role="menuitem" aria-pressed=${this.columnPinSide(header.column.id) === "left"} @click=${($event) => {
@@ -4677,12 +4962,26 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4677
4962
  ${this.hasAnyFilterableColumn() ? lit.html`<tr class="rdt-filter-row" data-rozie-s-d5dcab4c>
4678
4963
  ${(0, lit_directives_repeat_js.repeat)(this._headerGroups.value[this._headerGroups.value.length - 1].headers, (header, _idx) => header.id, (header, _idx) => lit.html`<th class="rdt-filter-cell" role="presentation" style=${(0, _rozie_runtime_lit.rozieStyle)(this.pinStyle(header.column.id))} data-rozie-s-d5dcab4c>
4679
4964
  ${this.isSelectColumn(header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c></span>` : this.isExpanderColumn(header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c></span>` : lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4680
- ${this.columnIsFilterable(header.column.id) && !this.hasFilterSlot() ? lit.html`<input class="rdt-col-filter" type="text" aria-label=${(0, _rozie_runtime_lit.rozieAttr)("Filter " + this.headerLabel(header.column.id))} .value=${this.columnFilterValue(header.column.id)} @input=${($event) => {
4681
- this.onColumnFilterInput(header.column.id, $event);
4682
- }} @click=${($event) => {
4683
- this.stopEvent($event);
4684
- }} data-rozie-s-d5dcab4c />` : lit.nothing}${this.columnIsFilterable(header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4685
- ${this.filter !== void 0 ? this.filter({
4965
+ ${this.columnIsFilterable(header.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4966
+ ${this.rozieSlots?.[`filter-${header.column.id}`] !== void 0 ? this.rozieSlots?.[`filter-${header.column.id}`]({
4967
+ columnId: header.column.id,
4968
+ value: this.columnFilterValue(header.column.id),
4969
+ uniqueValues: this.getFacetedUniqueValues(header.column.id),
4970
+ minMax: this.getFacetedMinMaxValues(header.column.id),
4971
+ setFilter: this.setColumnFilter
4972
+ }) : lit.html`<slot name="${`filter-${header.column.id}`}" data-rozie-params=${(() => {
4973
+ try {
4974
+ return JSON.stringify({
4975
+ columnId: header.column.id,
4976
+ value: this.columnFilterValue(header.column.id),
4977
+ uniqueValues: this.getFacetedUniqueValues(header.column.id),
4978
+ minMax: this.getFacetedMinMaxValues(header.column.id)
4979
+ });
4980
+ } catch {
4981
+ return "{}";
4982
+ }
4983
+ })()} @rozie-default-set-filter=${($event) => this.setColumnFilter($event.detail)}>
4984
+ ${this.filter !== void 0 ? this.filter({
4686
4985
  columnId: header.column.id,
4687
4986
  value: this.columnFilterValue(header.column.id),
4688
4987
  uniqueValues: this.getFacetedUniqueValues(header.column.id),
@@ -4699,7 +4998,14 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4699
4998
  } catch {
4700
4999
  return "{}";
4701
5000
  }
4702
- })()} @rozie-filter-set-filter=${($event) => this.setColumnFilter($event.detail)}></slot>`}
5001
+ })()} @rozie-filter-set-filter=${($event) => this.setColumnFilter($event.detail)}>
5002
+ <input class="rdt-col-filter" type="text" aria-label=${(0, _rozie_runtime_lit.rozieAttr)("Filter " + this.headerLabel(header.column.id))} .value=${this.columnFilterValue(header.column.id)} @input=${($event) => {
5003
+ this.onColumnFilterInput(header.column.id, $event);
5004
+ }} @click=${($event) => {
5005
+ this.stopEvent($event);
5006
+ }} data-rozie-s-d5dcab4c />
5007
+ </slot>`}
5008
+ </slot>`}
4703
5009
  </span>` : lit.nothing}</span>`}</th>`)}
4704
5010
  </tr>` : lit.nothing}</thead>
4705
5011
 
@@ -4745,7 +5051,24 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4745
5051
  this.onToggleExpand(row, $event);
4746
5052
  }} data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)(this.rowIsExpanded(row) ? "▾" : "▸")}</button>
4747
5053
  <span class="rdt-group-value" data-rozie-s-d5dcab4c>
4748
- ${this.cell !== void 0 ? this.cell({
5054
+ ${this.rozieSlots?.[`cell-${cell.column.id}`] !== void 0 ? this.rozieSlots?.[`cell-${cell.column.id}`]({
5055
+ columnId: cell.column.id,
5056
+ column: cell.column,
5057
+ row: this.cellSlotRow(row),
5058
+ value: cell.getValue()
5059
+ }) : lit.html`<slot name="${`cell-${cell.column.id}`}" data-rozie-params=${(() => {
5060
+ try {
5061
+ return JSON.stringify({
5062
+ columnId: cell.column.id,
5063
+ column: cell.column,
5064
+ row: this.cellSlotRow(row),
5065
+ value: cell.getValue()
5066
+ });
5067
+ } catch {
5068
+ return "{}";
5069
+ }
5070
+ })()}>
5071
+ ${this.cell !== void 0 ? this.cell({
4749
5072
  columnId: cell.column.id,
4750
5073
  column: cell.column,
4751
5074
  row: this.cellSlotRow(row),
@@ -4762,11 +5085,55 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4762
5085
  return "{}";
4763
5086
  }
4764
5087
  })()}>${(0, _rozie_runtime_lit.rozieDisplay)(cell.getValue())}</slot>`}
5088
+ </slot>`}
4765
5089
  </span>
4766
5090
  <span class="rdt-group-count" data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)("(" + this.groupSubRowCount(row) + ")")}</span>
4767
5091
  </span>` : this.isEditing(this.rowIndexOf(row), this.colIndexOf(row, cell)) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4768
- ${this.hasEditorSlot(cell.column.id) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
4769
- ${this.editor !== void 0 ? this.editor({
5092
+ ${this.editorTypeOf(cell.column.id) === "number" ? lit.html`<input class="rdt-cell-editor" type="number" data-editing-cell="" data-builtin-editor="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
5093
+ this.onCellEditorInput(cell.column.id, $event);
5094
+ }} @keydown=${($event) => {
5095
+ this.onEditorKeyDown($event);
5096
+ }} @blur=${($event) => {
5097
+ this.onEditorBlur($event);
5098
+ }} data-rozie-s-d5dcab4c />` : this.editorTypeOf(cell.column.id) === "select" ? lit.html`<select class="rdt-cell-editor" data-editing-cell="" data-builtin-editor="" .value=${this.editorValueFor(cell.column.id)} @change=${($event) => {
5099
+ this.onCellEditorInput(cell.column.id, $event);
5100
+ }} @keydown=${($event) => {
5101
+ this.onEditorKeyDown($event);
5102
+ }} @blur=${($event) => {
5103
+ this.onEditorBlur($event);
5104
+ }} data-rozie-s-d5dcab4c>
5105
+ ${(0, lit_directives_repeat_js.repeat)(this.editorOptionsOf(cell.column.id), (opt, _idx) => opt.value, (opt, _idx) => lit.html`<option value=${(0, _rozie_runtime_lit.rozieAttr)(opt.value)} data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)(opt.label)}</option>`)}
5106
+ </select>` : this.editorTypeOf(cell.column.id) === "checkbox" ? lit.html`<input class="rdt-cell-editor" type="checkbox" data-editing-cell="" data-builtin-editor="" ?checked=${this.editorCheckedFor(cell.column.id)} @change=${($event) => {
5107
+ this.onCellEditorCheckbox(cell.column.id, $event);
5108
+ }} @keydown=${($event) => {
5109
+ this.onEditorKeyDown($event);
5110
+ }} @blur=${($event) => {
5111
+ this.onEditorBlur($event);
5112
+ }} data-rozie-s-d5dcab4c />` : this.editorTypeOf(cell.column.id) === "custom" ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c>
5113
+ ${this.rozieSlots?.[`editor-${cell.column.id}`] !== void 0 ? this.rozieSlots?.[`editor-${cell.column.id}`]({
5114
+ columnId: cell.column.id,
5115
+ column: cell.column,
5116
+ row: this.cellSlotRow(row),
5117
+ value: this.editorValueFor(cell.column.id),
5118
+ commit: this.editorCommitFor(cell.column.id),
5119
+ cancel: this.editorCancelFor(),
5120
+ autofocus: this.editorAutofocusFor(cell.column.id, this.rowIndexOf(row))
5121
+ }) : lit.html`<slot name="${`editor-${cell.column.id}`}" data-rozie-params=${(() => {
5122
+ try {
5123
+ return JSON.stringify({
5124
+ columnId: cell.column.id,
5125
+ column: cell.column,
5126
+ row: this.cellSlotRow(row),
5127
+ value: this.editorValueFor(cell.column.id),
5128
+ commit: this.editorCommitFor(cell.column.id),
5129
+ cancel: this.editorCancelFor(),
5130
+ autofocus: this.editorAutofocusFor(cell.column.id, this.rowIndexOf(row))
5131
+ });
5132
+ } catch {
5133
+ return "{}";
5134
+ }
5135
+ })()}>
5136
+ ${this.editor !== void 0 ? this.editor({
4770
5137
  columnId: cell.column.id,
4771
5138
  column: cell.column,
4772
5139
  row: this.cellSlotRow(row),
@@ -4788,35 +5155,41 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4788
5155
  } catch {
4789
5156
  return "{}";
4790
5157
  }
4791
- })()}></slot>`}
4792
- </span>` : this.editorTypeOf(cell.column.id) === "number" ? lit.html`<input class="rdt-cell-editor" type="number" data-editing-cell="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
5158
+ })()}>
5159
+ <input class="rdt-cell-editor" type="text" data-editing-cell="" data-builtin-editor="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
4793
5160
  this.onCellEditorInput(cell.column.id, $event);
4794
5161
  }} @keydown=${($event) => {
4795
5162
  this.onEditorKeyDown($event);
4796
5163
  }} @blur=${($event) => {
4797
5164
  this.onEditorBlur($event);
4798
- }} data-rozie-s-d5dcab4c />` : this.editorTypeOf(cell.column.id) === "select" ? lit.html`<select class="rdt-cell-editor" data-editing-cell="" .value=${this.editorValueFor(cell.column.id)} @change=${($event) => {
4799
- this.onCellEditorInput(cell.column.id, $event);
4800
- }} @keydown=${($event) => {
4801
- this.onEditorKeyDown($event);
4802
- }} @blur=${($event) => {
4803
- this.onEditorBlur($event);
4804
- }} data-rozie-s-d5dcab4c>
4805
- ${(0, lit_directives_repeat_js.repeat)(this.editorOptionsOf(cell.column.id), (opt, _idx) => opt.value, (opt, _idx) => lit.html`<option value=${(0, _rozie_runtime_lit.rozieAttr)(opt.value)} data-rozie-s-d5dcab4c>${(0, _rozie_runtime_lit.rozieDisplay)(opt.label)}</option>`)}
4806
- </select>` : this.editorTypeOf(cell.column.id) === "checkbox" ? lit.html`<input class="rdt-cell-editor" type="checkbox" data-editing-cell="" ?checked=${this.editorCheckedFor(cell.column.id)} @change=${($event) => {
4807
- this.onCellEditorCheckbox(cell.column.id, $event);
4808
- }} @keydown=${($event) => {
4809
- this.onEditorKeyDown($event);
4810
- }} @blur=${($event) => {
4811
- this.onEditorBlur($event);
4812
- }} data-rozie-s-d5dcab4c />` : lit.html`<input class="rdt-cell-editor" type="text" data-editing-cell="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
5165
+ }} data-rozie-s-d5dcab4c />
5166
+ </slot>`}
5167
+ </slot>`}
5168
+ </span>` : lit.html`<input class="rdt-cell-editor" type="text" data-editing-cell="" data-builtin-editor="" .value=${this.editorValueFor(cell.column.id)} @input=${($event) => {
4813
5169
  this.onCellEditorInput(cell.column.id, $event);
4814
5170
  }} @keydown=${($event) => {
4815
5171
  this.onEditorKeyDown($event);
4816
5172
  }} @blur=${($event) => {
4817
5173
  this.onEditorBlur($event);
4818
5174
  }} data-rozie-s-d5dcab4c />`}</span>` : this.cellIsPlaceholder(cell) ? lit.html`<span style="display:contents" data-rozie-s-d5dcab4c></span>` : lit.html`<span class="rdt-cell-value" data-rozie-s-d5dcab4c>
4819
- ${this.cell !== void 0 ? this.cell({
5175
+ ${this.rozieSlots?.[`cell-${cell.column.id}`] !== void 0 ? this.rozieSlots?.[`cell-${cell.column.id}`]({
5176
+ columnId: cell.column.id,
5177
+ column: cell.column,
5178
+ row: this.cellSlotRow(row),
5179
+ value: cell.getValue()
5180
+ }) : lit.html`<slot name="${`cell-${cell.column.id}`}" data-rozie-params=${(() => {
5181
+ try {
5182
+ return JSON.stringify({
5183
+ columnId: cell.column.id,
5184
+ column: cell.column,
5185
+ row: this.cellSlotRow(row),
5186
+ value: cell.getValue()
5187
+ });
5188
+ } catch {
5189
+ return "{}";
5190
+ }
5191
+ })()}>
5192
+ ${this.cell !== void 0 ? this.cell({
4820
5193
  columnId: cell.column.id,
4821
5194
  column: cell.column,
4822
5195
  row: this.cellSlotRow(row),
@@ -4833,6 +5206,7 @@ ${this.groupable ? lit.html`<div class="rdt-group-bar-host" data-rozie-s-d5dcab4
4833
5206
  return "{}";
4834
5207
  }
4835
5208
  })()}>${(0, _rozie_runtime_lit.rozieDisplay)(cell.getValue())}</slot>`}
5209
+ </slot>`}
4836
5210
  </span>`}${this.isFillHandleCell(this.rowIndexOf(row), this.colIndexOf(row, cell)) ? lit.html`<span class="rdt-fill-handle" data-fill-handle="" data-testid="fill-handle" aria-hidden="true" @pointerdown=${($event) => {
4837
5211
  this.onFillHandlePointerDown($event);
4838
5212
  }} data-rozie-s-d5dcab4c></span>` : lit.nothing}</td>`)}
@@ -5066,6 +5440,26 @@ __decorate([(0, lit_decorators_js.queryAssignedElements)({
5066
5440
  flatten: true
5067
5441
  })], DataTable.prototype, "_slotSelectAllElements", void 0);
5068
5442
  __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "selectAll", void 0);
5443
+ __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotDynamicColHeader", void 0);
5444
+ __decorate([(0, lit_decorators_js.queryAssignedElements)({ flatten: true })], DataTable.prototype, "_slotDynamicColHeaderElements", void 0);
5445
+ __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotDynamicFilter", void 0);
5446
+ __decorate([(0, lit_decorators_js.queryAssignedElements)({ flatten: true })], DataTable.prototype, "_slotDynamicFilterElements", void 0);
5447
+ __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotSelectCell", void 0);
5448
+ __decorate([(0, lit_decorators_js.queryAssignedElements)({
5449
+ slot: "selectCell",
5450
+ flatten: true
5451
+ })], DataTable.prototype, "_slotSelectCellElements", void 0);
5452
+ __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "selectCell", void 0);
5453
+ __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotDynamicCell", void 0);
5454
+ __decorate([(0, lit_decorators_js.queryAssignedElements)({ flatten: true })], DataTable.prototype, "_slotDynamicCellElements", void 0);
5455
+ __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotDynamicEditor", void 0);
5456
+ __decorate([(0, lit_decorators_js.queryAssignedElements)({ flatten: true })], DataTable.prototype, "_slotDynamicEditorElements", void 0);
5457
+ __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotDetail", void 0);
5458
+ __decorate([(0, lit_decorators_js.queryAssignedElements)({
5459
+ slot: "detail",
5460
+ flatten: true
5461
+ })], DataTable.prototype, "_slotDetailElements", void 0);
5462
+ __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "detail", void 0);
5069
5463
  __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotColHeader", void 0);
5070
5464
  __decorate([(0, lit_decorators_js.queryAssignedElements)({
5071
5465
  slot: "colHeader",
@@ -5078,12 +5472,6 @@ __decorate([(0, lit_decorators_js.queryAssignedElements)({
5078
5472
  flatten: true
5079
5473
  })], DataTable.prototype, "_slotFilterElements", void 0);
5080
5474
  __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "filter", void 0);
5081
- __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotSelectCell", void 0);
5082
- __decorate([(0, lit_decorators_js.queryAssignedElements)({
5083
- slot: "selectCell",
5084
- flatten: true
5085
- })], DataTable.prototype, "_slotSelectCellElements", void 0);
5086
- __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "selectCell", void 0);
5087
5475
  __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotCell", void 0);
5088
5476
  __decorate([(0, lit_decorators_js.queryAssignedElements)({
5089
5477
  slot: "cell",
@@ -5096,12 +5484,6 @@ __decorate([(0, lit_decorators_js.queryAssignedElements)({
5096
5484
  flatten: true
5097
5485
  })], DataTable.prototype, "_slotEditorElements", void 0);
5098
5486
  __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "editor", void 0);
5099
- __decorate([(0, lit_decorators_js.state)()], DataTable.prototype, "_hasSlotDetail", void 0);
5100
- __decorate([(0, lit_decorators_js.queryAssignedElements)({
5101
- slot: "detail",
5102
- flatten: true
5103
- })], DataTable.prototype, "_slotDetailElements", void 0);
5104
- __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "detail", void 0);
5105
5487
  __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "rozieSlots", void 0);
5106
5488
  DataTable = __decorate([(0, lit_decorators_js.customElement)("rozie-data-table")], DataTable);
5107
5489
  var DataTable_default = DataTable;