@rozie-ui/data-table-solid 0.3.1 → 0.4.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.mjs CHANGED
@@ -17,6 +17,39 @@ const wrapAggregationFn = (fn) => {
17
17
  }
18
18
  };
19
19
  };
20
+ const collectNestedDefs = (list, out) => {
21
+ if (!Array.isArray(list)) return;
22
+ for (const d of list) {
23
+ if (!d || d.id == null) continue;
24
+ const id = String(d.id);
25
+ if (!(id in out)) out[id] = d;
26
+ if (Array.isArray(d.columns)) collectNestedDefs(d.columns, out);
27
+ }
28
+ };
29
+ const indexDefsById = (defs) => {
30
+ const out = Object.create(null);
31
+ if (!Array.isArray(defs)) return out;
32
+ for (const d of defs) {
33
+ if (!d || d.id == null) continue;
34
+ out[String(d.id)] = d;
35
+ }
36
+ for (const d of defs) if (d && Array.isArray(d.columns)) collectNestedDefs(d.columns, out);
37
+ return out;
38
+ };
39
+ const collectGroupableLeafDefs = (defs) => {
40
+ const out = [];
41
+ if (!Array.isArray(defs)) return out;
42
+ for (const d of defs) {
43
+ if (!d) continue;
44
+ if (Array.isArray(d.columns)) {
45
+ out.push(...collectGroupableLeafDefs(d.columns));
46
+ continue;
47
+ }
48
+ if (d.groupable === false) continue;
49
+ out.push(d);
50
+ }
51
+ return out;
52
+ };
20
53
  //#endregion
21
54
  //#region src/helpers/indexMath.ts
22
55
  const clamp = (v, lo, hi) => v < lo ? lo : v > hi ? hi : v;
@@ -906,6 +939,7 @@ function DataTable(_props) {
906
939
  let columnDefsCache = null;
907
940
  let columnDefsCacheColumnsRef = void 0;
908
941
  let columnDefsCacheColRegRef = void 0;
942
+ let columnDefsIndexCache = null;
909
943
  function columnDefs() {
910
944
  const cfg = local.columns || [];
911
945
  const reg = colReg() || {};
@@ -949,8 +983,13 @@ function DataTable(_props) {
949
983
  columnDefsCache = out;
950
984
  columnDefsCacheColumnsRef = local.columns;
951
985
  columnDefsCacheColRegRef = colReg();
986
+ columnDefsIndexCache = indexDefsById(out);
952
987
  return out;
953
988
  }
989
+ function defIndex() {
990
+ columnDefs();
991
+ return columnDefsIndexCache || Object.create(null);
992
+ }
954
993
  const SELECT_COL_ID = "__rdt_select";
955
994
  const EXPANDER_COL_ID = "__rdt_expander";
956
995
  function selectionEnabled() {
@@ -1668,9 +1707,9 @@ function DataTable(_props) {
1668
1707
  return "";
1669
1708
  }
1670
1709
  function defFor(colId) {
1671
- const defs = columnDefs();
1672
- for (const d of defs) if (d.id === colId) return d;
1673
- return null;
1710
+ if (colId == null) return null;
1711
+ const d = defIndex()[String(colId)];
1712
+ return d != null ? d : null;
1674
1713
  }
1675
1714
  function visibleCellsFor(row) {
1676
1715
  return rowModelVer() >= 0 ? row.getVisibleCells() : [];
@@ -1691,12 +1730,6 @@ function DataTable(_props) {
1691
1730
  const m = editMetaOf(colId);
1692
1731
  return m && m.editorOptions != null ? m.editorOptions : [];
1693
1732
  }
1694
- function hasEditorSlot(colId) {
1695
- return editorTypeOf(colId) === "custom" && !!(_props.editorSlot ?? _props.slots?.["editor"]);
1696
- }
1697
- function hasFilterSlot() {
1698
- return !!(_props.filterSlot ?? _props.slots?.["filter"]);
1699
- }
1700
1733
  function columnIsFilterable(colId) {
1701
1734
  const d = defFor(colId);
1702
1735
  return !!(d && d.filterable);
@@ -1705,11 +1738,9 @@ function DataTable(_props) {
1705
1738
  const d = defFor(colId);
1706
1739
  return d ? d.header : colId;
1707
1740
  }
1708
- function headerWidth(colId) {
1709
- if (tick() < 0 || !table) return null;
1710
- const col = table.getColumn(colId);
1711
- if (!col) return null;
1712
- const w = col.getSize();
1741
+ function headerWidth(header) {
1742
+ if (tick() < 0 || !header || typeof header.getSize !== "function") return null;
1743
+ const w = header.getSize();
1713
1744
  return w != null && w > 0 ? w + "px" : null;
1714
1745
  }
1715
1746
  function onResizeStart(colId, evt) {
@@ -1773,11 +1804,11 @@ function DataTable(_props) {
1773
1804
  if (side === "right") return "position:sticky;right:" + (col.getAfter ? col.getAfter("right") : 0) + "px;z-index:" + zIndex + ";";
1774
1805
  return "";
1775
1806
  }
1776
- function thStyle(colId) {
1807
+ function thStyle(header) {
1777
1808
  let s = "";
1778
- const w = headerWidth(colId);
1809
+ const w = headerWidth(header);
1779
1810
  if (w) s += "width:" + w + ";";
1780
- s += pinStyle(colId, 2);
1811
+ s += pinStyle(header && header.column ? header.column.id : null, 2);
1781
1812
  return s;
1782
1813
  }
1783
1814
  function onGlobalFilterInput(evt) {
@@ -1863,6 +1894,9 @@ function DataTable(_props) {
1863
1894
  function rowIsGrouped(row) {
1864
1895
  return !!(tick() >= 0 && row && row.getIsGrouped && row.getIsGrouped());
1865
1896
  }
1897
+ function rowIndexIsGrouped(rowIndex) {
1898
+ return rowIsGrouped((rows() || [])[rowIndex]);
1899
+ }
1866
1900
  function groupingActive() {
1867
1901
  return tick() >= 0 && (currentState().grouping || []).length > 0;
1868
1902
  }
@@ -1876,21 +1910,54 @@ function DataTable(_props) {
1876
1910
  return !!(tick() >= 0 && cellCtx && cellCtx.getIsPlaceholder && cellCtx.getIsPlaceholder());
1877
1911
  }
1878
1912
  function groupSubRowCount(row) {
1879
- return row && row.getLeafRows ? row.getLeafRows().length : row && row.subRows ? row.subRows.length : 0;
1913
+ if (row && row.getLeafRows) {
1914
+ const leaves = row.getLeafRows();
1915
+ let n = 0;
1916
+ for (let i = 0; i < leaves.length; i++) {
1917
+ const r = leaves[i];
1918
+ if (!(r && r.getIsGrouped && r.getIsGrouped())) n = n + 1;
1919
+ }
1920
+ return n;
1921
+ }
1922
+ return row && row.subRows ? row.subRows.length : 0;
1923
+ }
1924
+ let groupRowDescriptorCache = null;
1925
+ let groupRowDescriptorCacheVer = void 0;
1926
+ function groupRowDescriptor(row) {
1927
+ const ver = rowModelVer();
1928
+ if (!groupRowDescriptorCache || groupRowDescriptorCacheVer !== ver) {
1929
+ groupRowDescriptorCache = Object.create(null);
1930
+ groupRowDescriptorCacheVer = ver;
1931
+ }
1932
+ const key = String(row.id);
1933
+ let d = groupRowDescriptorCache[key];
1934
+ if (!d) {
1935
+ const groupingColumnId = row.groupingColumnId != null ? row.groupingColumnId : "";
1936
+ const groupingValue = row.getGroupingValue ? row.getGroupingValue(groupingColumnId) : row.groupingValue;
1937
+ d = {
1938
+ isGroupRow: true,
1939
+ groupId: row.id,
1940
+ groupingColumnId,
1941
+ groupingValue,
1942
+ leafCount: groupSubRowCount(row)
1943
+ };
1944
+ groupRowDescriptorCache[key] = d;
1945
+ }
1946
+ return d;
1947
+ }
1948
+ function cellSlotRow(row) {
1949
+ return rowIsGrouped(row) ? groupRowDescriptor(row) : row ? row.original : null;
1880
1950
  }
1881
1951
  function groupingKeys() {
1882
1952
  return currentState().grouping || [];
1883
1953
  }
1884
1954
  function groupableColumns() {
1885
1955
  const out = [];
1886
- const defs = columnDefs();
1887
- for (const d of defs) {
1888
- if (!d || d.groupable === false) continue;
1889
- out.push({
1890
- id: d.id,
1891
- label: d.header != null ? d.header : d.id
1892
- });
1893
- }
1956
+ const defs = collectGroupableLeafDefs(columnDefs());
1957
+ for (const d of defs) out.push({
1958
+ id: d.id,
1959
+ label: d.header != null ? d.header : d.id
1960
+ });
1894
1961
  return out;
1895
1962
  }
1896
1963
  function stopEvent(evt) {
@@ -2916,11 +2983,13 @@ function DataTable(_props) {
2916
2983
  for (let gr = 0; gr < grid.length; gr++) {
2917
2984
  const r = originRow + gr;
2918
2985
  if (r > maxRow) break;
2986
+ const rowGrouped = rowIndexIsGrouped(r);
2919
2987
  const cols = grid[gr] || [];
2920
2988
  for (let gc = 0; gc < cols.length; gc++) {
2921
2989
  const c = originCol + gc;
2922
2990
  if (c > maxCol) break;
2923
2991
  total = total + 1;
2992
+ if (rowGrouped) continue;
2924
2993
  const colId = columnIdAt(r, c);
2925
2994
  if (colId == null || !columnEditable(colId)) continue;
2926
2995
  const rowObj = rowOriginalAt(r);
@@ -3095,8 +3164,9 @@ function DataTable(_props) {
3095
3164
  fillEdgeScrollRaf = null;
3096
3165
  }
3097
3166
  }
3098
- function cellIndexFromPoint(clientX, clientY) {
3099
- if (typeof document === "undefined" || !document.elementFromPoint) return null;
3167
+ const FILL_HITTEST_PROBE_RADIUS_PX = 8;
3168
+ const FILL_HITTEST_PROBE_STEP_PX = 2;
3169
+ function resolveCellAt(clientX, clientY) {
3100
3170
  let el = document.elementFromPoint(clientX, clientY);
3101
3171
  while (el && el.shadowRoot && el.shadowRoot.elementFromPoint) {
3102
3172
  const inner = el.shadowRoot.elementFromPoint(clientX, clientY);
@@ -3117,6 +3187,18 @@ function DataTable(_props) {
3117
3187
  c
3118
3188
  };
3119
3189
  }
3190
+ function cellIndexFromPoint(clientX, clientY) {
3191
+ if (typeof document === "undefined" || !document.elementFromPoint) return null;
3192
+ const direct = resolveCellAt(clientX, clientY);
3193
+ if (direct) return direct;
3194
+ for (let d = FILL_HITTEST_PROBE_STEP_PX; d <= FILL_HITTEST_PROBE_RADIUS_PX; d += FILL_HITTEST_PROBE_STEP_PX) {
3195
+ const right = resolveCellAt(clientX + d, clientY);
3196
+ if (right) return right;
3197
+ const left = resolveCellAt(clientX - d, clientY);
3198
+ if (left) return left;
3199
+ }
3200
+ return null;
3201
+ }
3120
3202
  function onFillHandlePointerDown(e) {
3121
3203
  if (!e) return;
3122
3204
  if (e.preventDefault) e.preventDefault();
@@ -3223,11 +3305,13 @@ function DataTable(_props) {
3223
3305
  return cell && cell.column ? cell.column.id : null;
3224
3306
  }
3225
3307
  function isActiveCellEditable() {
3308
+ if (rowIndexIsGrouped(activeRow())) return false;
3226
3309
  const colId = activeCellColumnId();
3227
3310
  return colId != null && columnEditable(colId);
3228
3311
  }
3229
3312
  function isEditing(rowIndex, colIndex) {
3230
3313
  if (editVer() < 0) return false;
3314
+ if (rowIndexIsGrouped(rowIndex)) return false;
3231
3315
  if (editingRowIndex() != null && editingRowIndex() === rowIndex) {
3232
3316
  const colId = columnIdAt(rowIndex, colIndex);
3233
3317
  return colId != null && columnEditable(colId);
@@ -3287,12 +3371,24 @@ function DataTable(_props) {
3287
3371
  const row = (rows() || [])[editingRow()];
3288
3372
  return row ? row.id : null;
3289
3373
  }
3290
- function focusEditorWhenReady(selectAll = true) {
3374
+ function resolveEditFocusCellEl(rowIndex, colIndex) {
3375
+ if (rowIndex == null || colIndex == null || rowIndex < 0 || colIndex < 0) return null;
3376
+ return resolveCellEl(String(rowIndex), colIndex);
3377
+ }
3378
+ function focusEditorWhenReady(rowIndex, colIndex, selectAll = true) {
3291
3379
  if (!gridRoot) return;
3292
- if (editFocusColId() != null && hasEditorSlot(editFocusColId())) return;
3293
3380
  let attempts = 0;
3294
3381
  const tryFocus = () => {
3295
- const el = gridRoot ? gridRoot.querySelector("[data-editing-cell]") : null;
3382
+ const cellEl = resolveEditFocusCellEl(rowIndex, colIndex);
3383
+ const el = cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell][data-builtin-editor]") : null;
3384
+ if (!el) {
3385
+ if (cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell]") : null) return;
3386
+ attempts = attempts + 1;
3387
+ if (attempts >= 30) return;
3388
+ if (typeof requestAnimationFrame === "function") requestAnimationFrame(tryFocus);
3389
+ else setTimeout(tryFocus, 16);
3390
+ return;
3391
+ }
3296
3392
  const ae = gridRoot && gridRoot.getRootNode ? gridRoot.getRootNode().activeElement : null;
3297
3393
  if (ae && el && ae !== el && ae.closest && gridRoot.contains(ae) && ae.hasAttribute && ae.hasAttribute("data-editing-cell")) {
3298
3394
  const aeCell = ae.closest("[data-grid-cell]");
@@ -3301,17 +3397,10 @@ function DataTable(_props) {
3301
3397
  const elCol = elCell ? elCell.getAttribute("data-col-index") : null;
3302
3398
  if (aeCol != null && aeCol !== elCol) return;
3303
3399
  }
3304
- if (el) {
3305
- el.focus();
3306
- if (selectAll && el.select) try {
3307
- el.select();
3308
- } catch (e) {}
3309
- return;
3310
- }
3311
- attempts = attempts + 1;
3312
- if (attempts >= 30) return;
3313
- if (typeof requestAnimationFrame === "function") requestAnimationFrame(tryFocus);
3314
- else setTimeout(tryFocus, 16);
3400
+ el.focus();
3401
+ if (selectAll && el.select) try {
3402
+ el.select();
3403
+ } catch (e) {}
3315
3404
  };
3316
3405
  if (typeof requestAnimationFrame === "function") requestAnimationFrame(tryFocus);
3317
3406
  else setTimeout(tryFocus, 0);
@@ -3329,6 +3418,7 @@ function DataTable(_props) {
3329
3418
  return cell ? cell.getValue() : null;
3330
3419
  }
3331
3420
  function beginEdit(rowIndex, colIndex, seed) {
3421
+ if (rowIndexIsGrouped(rowIndex)) return;
3332
3422
  const colId = columnIdAt(rowIndex, colIndex);
3333
3423
  if (colId == null || !columnEditable(colId)) return;
3334
3424
  committedThisSession = false;
@@ -3341,7 +3431,7 @@ function DataTable(_props) {
3341
3431
  setActiveInControl(true);
3342
3432
  setEditVer(editVer() + 1);
3343
3433
  setEditFocusColId(colId);
3344
- focusEditorWhenReady(seed == null);
3434
+ focusEditorWhenReady(rowIndex, colIndex, seed == null);
3345
3435
  }
3346
3436
  function focusCellWhenReady(row, col) {
3347
3437
  if (!gridRoot) return;
@@ -3409,7 +3499,7 @@ function DataTable(_props) {
3409
3499
  const err = runValidator(colId, newValue, rowOriginal);
3410
3500
  if (err !== true) {
3411
3501
  setInvalid(err);
3412
- focusEditorWhenReady();
3502
+ focusEditorWhenReady(editingRow(), editingCol());
3413
3503
  return false;
3414
3504
  }
3415
3505
  setInvalid("");
@@ -3440,6 +3530,7 @@ function DataTable(_props) {
3440
3530
  return true;
3441
3531
  }
3442
3532
  function toggleActiveBooleanCell() {
3533
+ if (rowIndexIsGrouped(activeRow())) return;
3443
3534
  const colId = columnIdAt(activeRow(), activeColIndex());
3444
3535
  if (colId == null || !columnEditable(colId)) return;
3445
3536
  const row = (rows() || [])[activeRow()];
@@ -3501,12 +3592,10 @@ function DataTable(_props) {
3501
3592
  }
3502
3593
  function focusRowEditorAt(rowIndex, colIndex) {
3503
3594
  if (!gridRoot) return;
3504
- const colId = columnIdAt(rowIndex, colIndex);
3505
- if (colId != null && hasEditorSlot(colId)) return;
3506
3595
  let attempts = 0;
3507
3596
  const tryFocus = () => {
3508
3597
  const cellEl = resolveCellEl(String(rowIndex), colIndex);
3509
- const ed = cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell]") : null;
3598
+ const ed = cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell][data-builtin-editor]") : null;
3510
3599
  if (ed) {
3511
3600
  ed.focus();
3512
3601
  if (ed.select) try {
@@ -3514,6 +3603,7 @@ function DataTable(_props) {
3514
3603
  } catch (e) {}
3515
3604
  return;
3516
3605
  }
3606
+ if (cellEl && cellEl.querySelector ? cellEl.querySelector("[data-editing-cell]") : null) return;
3517
3607
  attempts = attempts + 1;
3518
3608
  if (attempts >= 30) return;
3519
3609
  if (typeof requestAnimationFrame === "function") requestAnimationFrame(tryFocus);
@@ -3525,6 +3615,7 @@ function DataTable(_props) {
3525
3615
  function beginRowEdit(row) {
3526
3616
  const rowIndex = rowIndexOf(row);
3527
3617
  if (rowIndex < 0) return;
3618
+ if (rowIndexIsGrouped(rowIndex)) return;
3528
3619
  const editable = editableColumnsForRow(rowIndex);
3529
3620
  if (editable.length === 0) return;
3530
3621
  committedThisSession = false;
@@ -3544,7 +3635,7 @@ function DataTable(_props) {
3544
3635
  setActiveInControl(true);
3545
3636
  setEditVer(editVer() + 1);
3546
3637
  setEditFocusColId(editable[0].colId);
3547
- focusEditorWhenReady();
3638
+ focusEditorWhenReady(rowIndex, editable[0].colIndex);
3548
3639
  }
3549
3640
  function commitRow() {
3550
3641
  if (editingRowIndex() == null) return false;
@@ -4021,14 +4112,18 @@ function DataTable(_props) {
4021
4112
  "rdt-expander-th": isExpanderColumn(header().column.id),
4022
4113
  "rdt-th-resizing": columnIsResizing(header().column.id),
4023
4114
  "rdt-cell-active": isActiveCell("__header", headerColIndexOf(hg(), header()), hgLevel())
4024
- })} role="columnheader" data-col={rozieAttr(header().column.id)} data-grid-cell="" data-row="__header" data-header-level={rozieAttr(hgLevel())} colSpan={rozieAttr(header().colSpan > 1 ? header().colSpan : null)} data-col-index={rozieAttr(headerColIndexOf(hg(), header()))} tabIndex={rozieAttr(cellTabindex("__header", headerColIndexOf(hg(), header()), hgLevel()))} aria-sort={rozieAttr(ariaSortFor(header().column.id))} style={parseInlineStyle(thStyle(header().column.id))} data-rozie-s-d5dcab4c="">
4115
+ })} role="columnheader" data-col={rozieAttr(header().column.id)} data-grid-cell="" data-row="__header" data-header-level={rozieAttr(hgLevel())} colSpan={rozieAttr(header().colSpan > 1 ? header().colSpan : null)} data-col-index={rozieAttr(headerColIndexOf(hg(), header()))} tabIndex={rozieAttr(cellTabindex("__header", headerColIndexOf(hg(), header()), hgLevel()))} aria-sort={rozieAttr(ariaSortFor(header().column.id))} style={parseInlineStyle(thStyle(header()))} data-rozie-s-d5dcab4c="">
4025
4116
 
4026
4117
 
4027
4118
  {<Show when={isSelectColumn(header().column.id)} fallback={<Show when={isExpanderColumn(header().column.id)} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4028
4119
 
4029
4120
  {<Show when={header().column.getCanSort && header().column.getCanSort()} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4030
4121
  <span class={"rdt-header-label"} data-rozie-s-d5dcab4c="">
4031
- {(_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4122
+ {_props.slots?.[`colHeader-${header().column.id}`]?.({
4123
+ columnId: header().column.id,
4124
+ column: header().column,
4125
+ label: headerLabel(header().column.id)
4126
+ }) ?? (_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4032
4127
  columnId: header().column.id,
4033
4128
  column: header().column,
4034
4129
  label: headerLabel(header().column.id)
@@ -4039,7 +4134,11 @@ function DataTable(_props) {
4039
4134
  }} data-rozie-s-d5dcab4c="">
4040
4135
 
4041
4136
  <span class={"rdt-header-label"} data-rozie-s-d5dcab4c="">
4042
- {(_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4137
+ {_props.slots?.[`colHeader-${header().column.id}`]?.({
4138
+ columnId: header().column.id,
4139
+ column: header().column,
4140
+ label: headerLabel(header().column.id)
4141
+ }) ?? (_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4043
4142
  columnId: header().column.id,
4044
4143
  column: header().column,
4045
4144
  label: headerLabel(header().column.id)
@@ -4083,18 +4182,24 @@ function DataTable(_props) {
4083
4182
  {<Show when={hasAnyFilterableColumn()}><tr class={"rdt-filter-row"} data-rozie-s-d5dcab4c="">
4084
4183
  <Key each={headerGroups()[headerGroups().length - 1].headers} by={(header) => header.id}>{(header) => <th class={"rdt-filter-cell"} role="presentation" style={parseInlineStyle(pinStyle(header().column.id))} data-rozie-s-d5dcab4c="">
4085
4184
  {<Show when={isSelectColumn(header().column.id)} fallback={<Show when={isExpanderColumn(header().column.id)} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4086
- {<Show when={columnIsFilterable(header().column.id) && !hasFilterSlot()}><input type="text" aria-label={rozieAttr("Filter " + headerLabel(header().column.id))} class={"rdt-col-filter"} value={columnFilterValue(header().column.id)} onInput={($event) => {
4087
- onColumnFilterInput(header().column.id, $event);
4088
- }} onClick={($event) => {
4089
- stopEvent($event);
4090
- }} data-rozie-s-d5dcab4c="" /></Show>}{<Show when={columnIsFilterable(header().column.id)}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4091
- {(_props.filterSlot ?? _props.slots?.["filter"])?.({
4185
+ {<Show when={columnIsFilterable(header().column.id)}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4186
+ {_props.slots?.[`filter-${header().column.id}`]?.({
4092
4187
  columnId: header().column.id,
4093
4188
  value: columnFilterValue(header().column.id),
4094
4189
  uniqueValues: getFacetedUniqueValues$1(header().column.id),
4095
4190
  minMax: getFacetedMinMaxValues$1(header().column.id),
4096
4191
  setFilter: setColumnFilter
4097
- })}
4192
+ }) ?? (_props.filterSlot ?? _props.slots?.["filter"])?.({
4193
+ columnId: header().column.id,
4194
+ value: columnFilterValue(header().column.id),
4195
+ uniqueValues: getFacetedUniqueValues$1(header().column.id),
4196
+ minMax: getFacetedMinMaxValues$1(header().column.id),
4197
+ setFilter: setColumnFilter
4198
+ }) ?? <input type="text" aria-label={rozieAttr("Filter " + headerLabel(header().column.id))} class={"rdt-col-filter"} value={columnFilterValue(header().column.id)} onInput={($event) => {
4199
+ onColumnFilterInput(header().column.id, $event);
4200
+ }} onClick={($event) => {
4201
+ stopEvent($event);
4202
+ }} data-rozie-s-d5dcab4c="" />}
4098
4203
  </span></Show>}</span>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}</th>}</Key>
4099
4204
  </tr></Show>}</thead>
4100
4205
 
@@ -4110,26 +4215,55 @@ function DataTable(_props) {
4110
4215
  })} role={rozieAttr(cellRole())} data-col={rozieAttr(cell().column.id)} data-grid-cell="" data-row={rozieAttr(rowIndexOf(row()))} data-col-index={rozieAttr(colIndexOf(row(), cell()))} tabIndex={rozieAttr(cellTabindex(String(rowIndexOf(row())), colIndexOf(row(), cell())))} style={parseInlineStyle(bodyCellStyle(row(), cell().column.id))} aria-invalid={rozieAttr(cellAriaInvalid(rowIndexOf(row()), colIndexOf(row(), cell())))} data-in-range={rozieAttr(inRange(rowIndexOf(row()), colIndexOf(row(), cell())) ? "true" : null)} data-agg-cell={rozieAttr(cellIsAggregated(cell()) ? cell().column.id : null)} data-rozie-s-d5dcab4c="">
4111
4216
 
4112
4217
  {<Show when={isExpanderColumn(cell().column.id)} fallback={<Show when={isSelectColumn(cell().column.id)} fallback={<Show when={cellIsGrouped(cell())} fallback={<Show when={isEditing(rowIndexOf(row()), colIndexOf(row(), cell()))} fallback={<Show when={cellIsPlaceholder(cell())} fallback={<span class={"rdt-cell-value"} data-rozie-s-d5dcab4c="">
4113
- {(_props.cellSlot ?? _props.slots?.["cell"])?.({
4218
+ {_props.slots?.[`cell-${cell().column.id}`]?.({
4114
4219
  columnId: cell().column.id,
4115
4220
  column: cell().column,
4116
- row: row().original,
4221
+ row: cellSlotRow(row()),
4222
+ value: cell().getValue()
4223
+ }) ?? (_props.cellSlot ?? _props.slots?.["cell"])?.({
4224
+ columnId: cell().column.id,
4225
+ column: cell().column,
4226
+ row: cellSlotRow(row()),
4117
4227
  value: cell().getValue()
4118
4228
  }) ?? rozieDisplay(cell().getValue())}
4119
4229
  </span>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4120
- {<Show when={hasEditorSlot(cell().column.id)} fallback={<Show when={editorTypeOf(cell().column.id) === "number"} fallback={<Show when={editorTypeOf(cell().column.id) === "select"} fallback={<Show when={editorTypeOf(cell().column.id) === "checkbox"} fallback={<input type="text" data-editing-cell="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4230
+ {<Show when={editorTypeOf(cell().column.id) === "number"} fallback={<Show when={editorTypeOf(cell().column.id) === "select"} fallback={<Show when={editorTypeOf(cell().column.id) === "checkbox"} fallback={<Show when={editorTypeOf(cell().column.id) === "custom"} fallback={<input type="text" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4231
+ onCellEditorInput(cell().column.id, $event);
4232
+ }} onKeyDown={($event) => {
4233
+ onEditorKeyDown($event);
4234
+ }} onBlur={($event) => {
4235
+ onEditorBlur($event);
4236
+ }} data-rozie-s-d5dcab4c="" />}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4237
+ {_props.slots?.[`editor-${cell().column.id}`]?.({
4238
+ columnId: cell().column.id,
4239
+ column: cell().column,
4240
+ row: cellSlotRow(row()),
4241
+ value: editorValueFor(cell().column.id),
4242
+ commit: editorCommitFor(cell().column.id),
4243
+ cancel: editorCancelFor(),
4244
+ autofocus: editorAutofocusFor(cell().column.id, rowIndexOf(row()))
4245
+ }) ?? (_props.editorSlot ?? _props.slots?.["editor"])?.({
4246
+ columnId: cell().column.id,
4247
+ column: cell().column,
4248
+ row: cellSlotRow(row()),
4249
+ value: editorValueFor(cell().column.id),
4250
+ commit: editorCommitFor(cell().column.id),
4251
+ cancel: editorCancelFor(),
4252
+ autofocus: editorAutofocusFor(cell().column.id, rowIndexOf(row()))
4253
+ }) ?? <input type="text" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4121
4254
  onCellEditorInput(cell().column.id, $event);
4122
4255
  }} onKeyDown={($event) => {
4123
4256
  onEditorKeyDown($event);
4124
4257
  }} onBlur={($event) => {
4125
4258
  onEditorBlur($event);
4126
- }} data-rozie-s-d5dcab4c="" />}><input type="checkbox" data-editing-cell="" class={"rdt-cell-editor"} checked={editorCheckedFor(cell().column.id)} onChange={($event) => {
4259
+ }} data-rozie-s-d5dcab4c="" />}
4260
+ </span></Show>}><input type="checkbox" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} checked={editorCheckedFor(cell().column.id)} onChange={($event) => {
4127
4261
  onCellEditorCheckbox(cell().column.id, $event);
4128
4262
  }} onKeyDown={($event) => {
4129
4263
  onEditorKeyDown($event);
4130
4264
  }} onBlur={($event) => {
4131
4265
  onEditorBlur($event);
4132
- }} data-rozie-s-d5dcab4c="" /></Show>}><select data-editing-cell="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onChange={($event) => {
4266
+ }} data-rozie-s-d5dcab4c="" /></Show>}><select data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onChange={($event) => {
4133
4267
  onCellEditorInput(cell().column.id, $event);
4134
4268
  }} onKeyDown={($event) => {
4135
4269
  onEditorKeyDown($event);
@@ -4137,38 +4271,33 @@ function DataTable(_props) {
4137
4271
  onEditorBlur($event);
4138
4272
  }} data-rozie-s-d5dcab4c="">
4139
4273
  <Key each={editorOptionsOf(cell().column.id)} by={(opt) => opt.value}>{(opt) => <option value={rozieAttr(opt().value)} data-rozie-s-d5dcab4c="">{rozieDisplay(opt().label)}</option>}</Key>
4140
- </select></Show>}><input type="number" data-editing-cell="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4274
+ </select></Show>}><input type="number" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4141
4275
  onCellEditorInput(cell().column.id, $event);
4142
4276
  }} onKeyDown={($event) => {
4143
4277
  onEditorKeyDown($event);
4144
4278
  }} onBlur={($event) => {
4145
4279
  onEditorBlur($event);
4146
- }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4147
- {(_props.editorSlot ?? _props.slots?.["editor"])?.({
4148
- columnId: cell().column.id,
4149
- column: cell().column,
4150
- row: row().original,
4151
- value: editorValueFor(cell().column.id),
4152
- commit: editorCommitFor(cell().column.id),
4153
- cancel: editorCancelFor(),
4154
- autofocus: editorAutofocusFor(cell().column.id, rowIndexOf(row()))
4155
- })}
4156
- </span></Show>}</span></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4280
+ }} data-rozie-s-d5dcab4c="" /></Show>}</span></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4157
4281
  <button type="button" data-expander="" aria-expanded={!!rowIsExpanded(row())} aria-label={rozieAttr(rowIsExpanded(row()) ? "Collapse group" : "Expand group")} class={"rdt-expander rdt-group-toggle"} onClick={($event) => {
4158
4282
  onToggleExpand(row(), $event);
4159
4283
  }} data-rozie-s-d5dcab4c="">{rozieDisplay(rowIsExpanded(row()) ? "▾" : "▸")}</button>
4160
4284
  <span class={"rdt-group-value"} data-rozie-s-d5dcab4c="">
4161
- {(_props.cellSlot ?? _props.slots?.["cell"])?.({
4285
+ {_props.slots?.[`cell-${cell().column.id}`]?.({
4162
4286
  columnId: cell().column.id,
4163
4287
  column: cell().column,
4164
- row: row().original,
4288
+ row: cellSlotRow(row()),
4289
+ value: cell().getValue()
4290
+ }) ?? (_props.cellSlot ?? _props.slots?.["cell"])?.({
4291
+ columnId: cell().column.id,
4292
+ column: cell().column,
4293
+ row: cellSlotRow(row()),
4165
4294
  value: cell().getValue()
4166
4295
  }) ?? rozieDisplay(cell().getValue())}
4167
4296
  </span>
4168
4297
  <span class={"rdt-group-count"} data-rozie-s-d5dcab4c="">{rozieDisplay("(" + groupSubRowCount(row()) + ")")}</span>
4169
4298
  </span></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4170
4299
  {(_props.selectCellSlot ?? _props.slots?.["selectCell"])?.({
4171
- row: row().original,
4300
+ row: cellSlotRow(row()),
4172
4301
  checked: rowIsSelected(row()),
4173
4302
  toggle: (e) => onToggleRow(row(), e)
4174
4303
  }) ?? <input type="checkbox" aria-label="Select row" class={"rdt-select-row"} checked={rowIsSelected(row())} onChange={($event) => {
@@ -4213,11 +4342,15 @@ function DataTable(_props) {
4213
4342
  "rdt-expander-th": isExpanderColumn(wh().header.column.id),
4214
4343
  "rdt-th-resizing": columnIsResizing(wh().header.column.id),
4215
4344
  "rdt-cell-active": isActiveCell("__header", headerColIndexOf(hg(), wh().header), hgLevel())
4216
- })} role="columnheader" data-col={rozieAttr(wh().header.column.id)} data-grid-cell="" data-row="__header" data-header-level={rozieAttr(hgLevel())} colSpan={rozieAttr(wh().span > 1 ? wh().span : null)} data-col-index={rozieAttr(headerColIndexOf(hg(), wh().header))} tabIndex={rozieAttr(cellTabindex("__header", headerColIndexOf(hg(), wh().header), hgLevel()))} aria-sort={rozieAttr(ariaSortFor(wh().header.column.id))} style={parseInlineStyle(thStyle(wh().header.column.id))} data-rozie-s-d5dcab4c="">
4345
+ })} role="columnheader" data-col={rozieAttr(wh().header.column.id)} data-grid-cell="" data-row="__header" data-header-level={rozieAttr(hgLevel())} colSpan={rozieAttr(wh().span > 1 ? wh().span : null)} data-col-index={rozieAttr(headerColIndexOf(hg(), wh().header))} tabIndex={rozieAttr(cellTabindex("__header", headerColIndexOf(hg(), wh().header), hgLevel()))} aria-sort={rozieAttr(ariaSortFor(wh().header.column.id))} style={parseInlineStyle(thStyle(wh().header))} data-rozie-s-d5dcab4c="">
4217
4346
  {<Show when={isSelectColumn(wh().header.column.id)} fallback={<Show when={isExpanderColumn(wh().header.column.id)} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4218
4347
  {<Show when={wh().header.column.getCanSort && wh().header.column.getCanSort()} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4219
4348
  <span class={"rdt-header-label"} data-rozie-s-d5dcab4c="">
4220
- {(_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4349
+ {_props.slots?.[`colHeader-${wh().header.column.id}`]?.({
4350
+ columnId: wh().header.column.id,
4351
+ column: wh().header.column,
4352
+ label: headerLabel(wh().header.column.id)
4353
+ }) ?? (_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4221
4354
  columnId: wh().header.column.id,
4222
4355
  column: wh().header.column,
4223
4356
  label: headerLabel(wh().header.column.id)
@@ -4227,7 +4360,11 @@ function DataTable(_props) {
4227
4360
  onHeaderSort(wh().header.column.id, $event);
4228
4361
  }} data-rozie-s-d5dcab4c="">
4229
4362
  <span class={"rdt-header-label"} data-rozie-s-d5dcab4c="">
4230
- {(_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4363
+ {_props.slots?.[`colHeader-${wh().header.column.id}`]?.({
4364
+ columnId: wh().header.column.id,
4365
+ column: wh().header.column,
4366
+ label: headerLabel(wh().header.column.id)
4367
+ }) ?? (_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4231
4368
  columnId: wh().header.column.id,
4232
4369
  column: wh().header.column,
4233
4370
  label: headerLabel(wh().header.column.id)
@@ -4271,18 +4408,24 @@ function DataTable(_props) {
4271
4408
  {<Show when={hasAnyFilterableColumn()}><tr class={"rdt-filter-row"} data-rozie-s-d5dcab4c="">
4272
4409
  {<Show when={colsWindowed()}><th class={"rdt-col-spacer"} aria-hidden="true" style={parseInlineStyle("width:" + colPadLeft() + "px;padding:0;border:0")} data-rozie-s-d5dcab4c="" /></Show>}<Key each={windowedHeadersFor(headerGroups()[headerGroups().length - 1], headerGroups().length - 1)} by={(wh) => wh.header.id}>{(wh) => <th class={"rdt-filter-cell"} role="presentation" data-col={rozieAttr(wh().header.column.id)} style={parseInlineStyle(pinStyle(wh().header.column.id))} data-rozie-s-d5dcab4c="">
4273
4410
  {<Show when={isSelectColumn(wh().header.column.id)} fallback={<Show when={isExpanderColumn(wh().header.column.id)} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4274
- {<Show when={columnIsFilterable(wh().header.column.id) && !hasFilterSlot()}><input type="text" aria-label={rozieAttr("Filter " + headerLabel(wh().header.column.id))} class={"rdt-col-filter"} value={columnFilterValue(wh().header.column.id)} onInput={($event) => {
4275
- onColumnFilterInput(wh().header.column.id, $event);
4276
- }} onClick={($event) => {
4277
- stopEvent($event);
4278
- }} data-rozie-s-d5dcab4c="" /></Show>}{<Show when={columnIsFilterable(wh().header.column.id)}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4279
- {(_props.filterSlot ?? _props.slots?.["filter"])?.({
4411
+ {<Show when={columnIsFilterable(wh().header.column.id)}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4412
+ {_props.slots?.[`filter-${wh().header.column.id}`]?.({
4413
+ columnId: wh().header.column.id,
4414
+ value: columnFilterValue(wh().header.column.id),
4415
+ uniqueValues: getFacetedUniqueValues$1(wh().header.column.id),
4416
+ minMax: getFacetedMinMaxValues$1(wh().header.column.id),
4417
+ setFilter: setColumnFilter
4418
+ }) ?? (_props.filterSlot ?? _props.slots?.["filter"])?.({
4280
4419
  columnId: wh().header.column.id,
4281
4420
  value: columnFilterValue(wh().header.column.id),
4282
4421
  uniqueValues: getFacetedUniqueValues$1(wh().header.column.id),
4283
4422
  minMax: getFacetedMinMaxValues$1(wh().header.column.id),
4284
4423
  setFilter: setColumnFilter
4285
- })}
4424
+ }) ?? <input type="text" aria-label={rozieAttr("Filter " + headerLabel(wh().header.column.id))} class={"rdt-col-filter"} value={columnFilterValue(wh().header.column.id)} onInput={($event) => {
4425
+ onColumnFilterInput(wh().header.column.id, $event);
4426
+ }} onClick={($event) => {
4427
+ stopEvent($event);
4428
+ }} data-rozie-s-d5dcab4c="" />}
4286
4429
  </span></Show>}</span>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}</th>}</Key>
4287
4430
  {<Show when={colsWindowed()}><th class={"rdt-col-spacer"} aria-hidden="true" style={parseInlineStyle("width:" + colPadRight() + "px;padding:0;border:0")} data-rozie-s-d5dcab4c="" /></Show>}</tr></Show>}</thead>
4288
4431
 
@@ -4306,26 +4449,55 @@ function DataTable(_props) {
4306
4449
  })} role={rozieAttr(cellRole())} data-col={rozieAttr(cell().column.id)} data-grid-cell="" data-row={rozieAttr(wr().vi.index)} data-col-index={rozieAttr(colIndexOf(wr().row, cell()))} tabIndex={rozieAttr(cellTabindex(String(wr().vi.index), colIndexOf(wr().row, cell())))} style={parseInlineStyle(bodyCellStyle(wr().row, cell().column.id))} aria-invalid={rozieAttr(cellAriaInvalid(wr().vi.index, colIndexOf(wr().row, cell())))} data-in-range={rozieAttr(inRange(wr().vi.index, colIndexOf(wr().row, cell())) ? "true" : null)} data-agg-cell={rozieAttr(cellIsAggregated(cell()) ? cell().column.id : null)} data-rozie-s-d5dcab4c="">
4307
4450
 
4308
4451
  {<Show when={isExpanderColumn(cell().column.id)} fallback={<Show when={isSelectColumn(cell().column.id)} fallback={<Show when={cellIsGrouped(cell())} fallback={<Show when={isEditing(wr().vi.index, colIndexOf(wr().row, cell()))} fallback={<Show when={cellIsPlaceholder(cell())} fallback={<span class={"rdt-cell-value"} data-rozie-s-d5dcab4c="">
4309
- {(_props.cellSlot ?? _props.slots?.["cell"])?.({
4452
+ {_props.slots?.[`cell-${cell().column.id}`]?.({
4453
+ columnId: cell().column.id,
4454
+ column: cell().column,
4455
+ row: cellSlotRow(wr().row),
4456
+ value: cell().getValue()
4457
+ }) ?? (_props.cellSlot ?? _props.slots?.["cell"])?.({
4310
4458
  columnId: cell().column.id,
4311
4459
  column: cell().column,
4312
- row: wr().row.original,
4460
+ row: cellSlotRow(wr().row),
4313
4461
  value: cell().getValue()
4314
4462
  }) ?? rozieDisplay(cell().getValue())}
4315
4463
  </span>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4316
- {<Show when={hasEditorSlot(cell().column.id)} fallback={<Show when={editorTypeOf(cell().column.id) === "number"} fallback={<Show when={editorTypeOf(cell().column.id) === "select"} fallback={<Show when={editorTypeOf(cell().column.id) === "checkbox"} fallback={<input type="text" data-editing-cell="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4464
+ {<Show when={editorTypeOf(cell().column.id) === "number"} fallback={<Show when={editorTypeOf(cell().column.id) === "select"} fallback={<Show when={editorTypeOf(cell().column.id) === "checkbox"} fallback={<Show when={editorTypeOf(cell().column.id) === "custom"} fallback={<input type="text" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4465
+ onCellEditorInput(cell().column.id, $event);
4466
+ }} onKeyDown={($event) => {
4467
+ onEditorKeyDown($event);
4468
+ }} onBlur={($event) => {
4469
+ onEditorBlur($event);
4470
+ }} data-rozie-s-d5dcab4c="" />}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4471
+ {_props.slots?.[`editor-${cell().column.id}`]?.({
4472
+ columnId: cell().column.id,
4473
+ column: cell().column,
4474
+ row: cellSlotRow(wr().row),
4475
+ value: editorValueFor(cell().column.id),
4476
+ commit: editorCommitFor(cell().column.id),
4477
+ cancel: editorCancelFor(),
4478
+ autofocus: editorAutofocusFor(cell().column.id, wr().vi.index)
4479
+ }) ?? (_props.editorSlot ?? _props.slots?.["editor"])?.({
4480
+ columnId: cell().column.id,
4481
+ column: cell().column,
4482
+ row: cellSlotRow(wr().row),
4483
+ value: editorValueFor(cell().column.id),
4484
+ commit: editorCommitFor(cell().column.id),
4485
+ cancel: editorCancelFor(),
4486
+ autofocus: editorAutofocusFor(cell().column.id, wr().vi.index)
4487
+ }) ?? <input type="text" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4317
4488
  onCellEditorInput(cell().column.id, $event);
4318
4489
  }} onKeyDown={($event) => {
4319
4490
  onEditorKeyDown($event);
4320
4491
  }} onBlur={($event) => {
4321
4492
  onEditorBlur($event);
4322
- }} data-rozie-s-d5dcab4c="" />}><input type="checkbox" data-editing-cell="" class={"rdt-cell-editor"} checked={editorCheckedFor(cell().column.id)} onChange={($event) => {
4493
+ }} data-rozie-s-d5dcab4c="" />}
4494
+ </span></Show>}><input type="checkbox" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} checked={editorCheckedFor(cell().column.id)} onChange={($event) => {
4323
4495
  onCellEditorCheckbox(cell().column.id, $event);
4324
4496
  }} onKeyDown={($event) => {
4325
4497
  onEditorKeyDown($event);
4326
4498
  }} onBlur={($event) => {
4327
4499
  onEditorBlur($event);
4328
- }} data-rozie-s-d5dcab4c="" /></Show>}><select data-editing-cell="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onChange={($event) => {
4500
+ }} data-rozie-s-d5dcab4c="" /></Show>}><select data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onChange={($event) => {
4329
4501
  onCellEditorInput(cell().column.id, $event);
4330
4502
  }} onKeyDown={($event) => {
4331
4503
  onEditorKeyDown($event);
@@ -4333,38 +4505,33 @@ function DataTable(_props) {
4333
4505
  onEditorBlur($event);
4334
4506
  }} data-rozie-s-d5dcab4c="">
4335
4507
  <Key each={editorOptionsOf(cell().column.id)} by={(opt) => opt.value}>{(opt) => <option value={rozieAttr(opt().value)} data-rozie-s-d5dcab4c="">{rozieDisplay(opt().label)}</option>}</Key>
4336
- </select></Show>}><input type="number" data-editing-cell="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4508
+ </select></Show>}><input type="number" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4337
4509
  onCellEditorInput(cell().column.id, $event);
4338
4510
  }} onKeyDown={($event) => {
4339
4511
  onEditorKeyDown($event);
4340
4512
  }} onBlur={($event) => {
4341
4513
  onEditorBlur($event);
4342
- }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4343
- {(_props.editorSlot ?? _props.slots?.["editor"])?.({
4344
- columnId: cell().column.id,
4345
- column: cell().column,
4346
- row: wr().row.original,
4347
- value: editorValueFor(cell().column.id),
4348
- commit: editorCommitFor(cell().column.id),
4349
- cancel: editorCancelFor(),
4350
- autofocus: editorAutofocusFor(cell().column.id, wr().vi.index)
4351
- })}
4352
- </span></Show>}</span></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4514
+ }} data-rozie-s-d5dcab4c="" /></Show>}</span></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4353
4515
  <button type="button" data-expander="" aria-expanded={!!rowIsExpanded(wr().row)} aria-label={rozieAttr(rowIsExpanded(wr().row) ? "Collapse group" : "Expand group")} class={"rdt-expander rdt-group-toggle"} onClick={($event) => {
4354
4516
  onToggleExpand(wr().row, $event);
4355
4517
  }} data-rozie-s-d5dcab4c="">{rozieDisplay(rowIsExpanded(wr().row) ? "▾" : "▸")}</button>
4356
4518
  <span class={"rdt-group-value"} data-rozie-s-d5dcab4c="">
4357
- {(_props.cellSlot ?? _props.slots?.["cell"])?.({
4519
+ {_props.slots?.[`cell-${cell().column.id}`]?.({
4520
+ columnId: cell().column.id,
4521
+ column: cell().column,
4522
+ row: cellSlotRow(wr().row),
4523
+ value: cell().getValue()
4524
+ }) ?? (_props.cellSlot ?? _props.slots?.["cell"])?.({
4358
4525
  columnId: cell().column.id,
4359
4526
  column: cell().column,
4360
- row: wr().row.original,
4527
+ row: cellSlotRow(wr().row),
4361
4528
  value: cell().getValue()
4362
4529
  }) ?? rozieDisplay(cell().getValue())}
4363
4530
  </span>
4364
4531
  <span class={"rdt-group-count"} data-rozie-s-d5dcab4c="">{rozieDisplay("(" + groupSubRowCount(wr().row) + ")")}</span>
4365
4532
  </span></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4366
4533
  {(_props.selectCellSlot ?? _props.slots?.["selectCell"])?.({
4367
- row: wr().row.original,
4534
+ row: cellSlotRow(wr().row),
4368
4535
  checked: rowIsSelected(wr().row),
4369
4536
  toggle: (e) => onToggleRow(wr().row, e)
4370
4537
  }) ?? <input type="checkbox" aria-label="Select row" class={"rdt-select-row"} checked={rowIsSelected(wr().row)} onChange={($event) => {