@rozie-ui/data-table-solid 0.4.0 → 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.mjs CHANGED
@@ -195,7 +195,35 @@ const indexOfRowIn = (rows, rowOriginal, rowId) => {
195
195
  };
196
196
  //#endregion
197
197
  //#region src/DataTable.tsx
198
- __rozieInjectStyle("DataTable-d5dcab4c", `.rozie-data-table[data-rozie-s-d5dcab4c] {
198
+ __rozieInjectStyle("DataTable-d5dcab4c", `[data-rozie-s-d5dcab4c]:host {
199
+ --rdt-font: var(--rozie-data-table-font);
200
+ --rdt-color: var(--rozie-data-table-fg);
201
+ --rdt-cell-padding: var(--rozie-data-table-cell-padding);
202
+ --rdt-border: 1px solid var(--rozie-data-table-border-color);
203
+ --rdt-header-bg: var(--rozie-data-table-header-bg);
204
+ --rdt-header-weight: var(--rozie-data-table-header-weight);
205
+ --rdt-sort-ind-opacity: var(--rozie-data-table-sort-indicator-opacity);
206
+ --rdt-filter-border: 1px solid var(--rozie-data-table-control-border-color);
207
+ --rdt-filter-radius: var(--rozie-data-table-radius);
208
+ --rdt-page-btn-border: 1px solid var(--rozie-data-table-control-border-color);
209
+ --rdt-page-btn-radius: var(--rozie-data-table-radius);
210
+ --rdt-page-btn-disabled-opacity: var(--rozie-data-table-disabled-opacity);
211
+ --rdt-page-size-border: 1px solid var(--rozie-data-table-control-border-color);
212
+ --rdt-page-size-radius: var(--rozie-data-table-radius);
213
+ --rdt-resize-grip-color: var(--rozie-data-table-resize-grip-color);
214
+ --rdt-resize-grip-active: var(--rozie-data-table-resize-grip-active);
215
+ --rdt-pin-btn-border: 1px solid var(--rozie-data-table-control-border-color);
216
+ --rdt-pin-btn-radius: var(--rozie-data-table-radius);
217
+ --rdt-pin-btn-active-bg: var(--rozie-data-table-pin-active-bg);
218
+ --rdt-colvis-summary-border: 1px solid var(--rozie-data-table-control-border-color);
219
+ --rdt-colvis-summary-radius: var(--rozie-data-table-radius);
220
+ --rdt-colvis-menu-border: 1px solid var(--rozie-data-table-border-color);
221
+ --rdt-colvis-menu-radius: var(--rozie-data-table-radius);
222
+ --rdt-colvis-menu-bg: var(--rozie-data-table-menu-bg);
223
+ --rdt-colvis-menu-shadow: var(--rozie-data-table-menu-shadow);
224
+ --rdt-select-accent: var(--rozie-data-table-select-accent);
225
+ }
226
+ .rozie-data-table[data-rozie-s-d5dcab4c] {
199
227
  border-collapse: collapse;
200
228
  width: 100%;
201
229
  font: var(--rdt-font, 14px system-ui, sans-serif);
@@ -683,6 +711,7 @@ function DataTable(_props) {
683
711
  const [liveAnnounce, setLiveAnnounce] = createSignal("");
684
712
  onMount(() => {
685
713
  setDataDefault(data() || []);
714
+ seedColumnPinning();
686
715
  table = createTable({
687
716
  data: currentData(),
688
717
  columns: tableColumns(),
@@ -776,6 +805,7 @@ function DataTable(_props) {
776
805
  }
777
806
  if (colsWindowed()) {
778
807
  if (!(gridScrollEl ? 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");
808
+ bumpWindowVer();
779
809
  }
780
810
  };
781
811
  if (typeof requestAnimationFrame === "function") requestAnimationFrame(() => requestAnimationFrame(afterFirstFrame));
@@ -825,6 +855,7 @@ function DataTable(_props) {
825
855
  local.columns,
826
856
  colReg()
827
857
  ], (v) => untrack(() => (() => {
858
+ seedColumnPinning();
828
859
  reFeed();
829
860
  maybeClearHistoryOnExternalSwap();
830
861
  })()), { defer: true }));
@@ -873,6 +904,34 @@ function DataTable(_props) {
873
904
  left: rail.concat(deduped)
874
905
  };
875
906
  }
907
+ let pinSeedApplied = false;
908
+ function seedColumnPinning() {
909
+ if (pinSeedApplied) return;
910
+ const live = columnPinning() != null ? columnPinning() : columnPinningDefault();
911
+ const isRealPin = (id) => id !== SELECT_COL_ID && id !== EXPANDER_COL_ID;
912
+ if ((live && live.left ? live.left : []).filter(isRealPin).length > 0 || (live && live.right ? live.right : []).filter(isRealPin).length > 0) {
913
+ pinSeedApplied = true;
914
+ return;
915
+ }
916
+ const defs = columnDefs();
917
+ if (!defs.length) return;
918
+ const left = [];
919
+ const right = [];
920
+ for (let i = 0; i < defs.length; i++) {
921
+ const def = defs[i];
922
+ if (!def) continue;
923
+ if (def.pinned === "left") left.push(def.id);
924
+ else if (def.pinned === "right") right.push(def.id);
925
+ }
926
+ if (!left.length && !right.length) return;
927
+ pinSeedApplied = true;
928
+ const seeded = {
929
+ left,
930
+ right
931
+ };
932
+ setColumnPinningDefault(seeded);
933
+ setColumnPinning(seeded);
934
+ }
876
935
  function currentState() {
877
936
  return {
878
937
  sorting: sorting() != null ? sorting() : sortingDefault(),
@@ -1231,9 +1290,12 @@ function DataTable(_props) {
1231
1290
  function onColumnPinningChangeCb(updater) {
1232
1291
  writeColumnPinning(applyUpdater(updater, currentState().columnPinning));
1233
1292
  }
1293
+ let columnSizingInfoSync = null;
1234
1294
  function onColumnSizingInfoChangeCb(updater) {
1235
- const next = applyUpdater(updater, columnSizingInfo());
1236
- setColumnSizingInfo(next != null ? next : columnSizingInfo());
1295
+ const next = applyUpdater(updater, columnSizingInfoSync != null ? columnSizingInfoSync : columnSizingInfo());
1296
+ if (next == null) return;
1297
+ columnSizingInfoSync = next;
1298
+ setColumnSizingInfo(next);
1237
1299
  }
1238
1300
  function resolveVirtual() {
1239
1301
  const v = local.virtual;
@@ -3439,6 +3501,11 @@ function DataTable(_props) {
3439
3501
  const tryFocus = () => {
3440
3502
  const el = resolveCellEl(String(row), col);
3441
3503
  if (el) {
3504
+ const ae = gridRoot && gridRoot.getRootNode ? gridRoot.getRootNode().activeElement : null;
3505
+ if (ae && ae !== el && gridRoot.contains && gridRoot.contains(ae) && ae.closest) {
3506
+ const aeCell = ae.closest("[data-grid-cell]");
3507
+ if (aeCell && aeCell !== el) return;
3508
+ }
3442
3509
  el.focus();
3443
3510
  return;
3444
3511
  }
@@ -4087,8 +4154,12 @@ function DataTable(_props) {
4087
4154
 
4088
4155
  {<Show when={local.groupable}><div class={"rdt-group-bar-host"} data-rozie-s-d5dcab4c="">
4089
4156
  {(_props.groupBarSlot ?? _props.slots?.["groupBar"])?.({
4090
- grouping: groupingKeys(),
4091
- groupableColumns: groupableColumns(),
4157
+ get grouping() {
4158
+ return groupingKeys();
4159
+ },
4160
+ get groupableColumns() {
4161
+ return groupableColumns();
4162
+ },
4092
4163
  applyGrouping,
4093
4164
  clearGrouping
4094
4165
  }) ?? <Key each={groupingKeys()} by={(gk) => gk}>{(gk) => <span class={"rdt-group-token"} data-group-token="" data-rozie-s-d5dcab4c="">{rozieDisplay(gk())}</span>}</Key>}
@@ -4120,13 +4191,25 @@ function DataTable(_props) {
4120
4191
  {<Show when={header().column.getCanSort && header().column.getCanSort()} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4121
4192
  <span class={"rdt-header-label"} data-rozie-s-d5dcab4c="">
4122
4193
  {_props.slots?.[`colHeader-${header().column.id}`]?.({
4123
- columnId: header().column.id,
4124
- column: header().column,
4125
- label: headerLabel(header().column.id)
4194
+ get columnId() {
4195
+ return header().column.id;
4196
+ },
4197
+ get column() {
4198
+ return header().column;
4199
+ },
4200
+ get label() {
4201
+ return headerLabel(header().column.id);
4202
+ }
4126
4203
  }) ?? (_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4127
- columnId: header().column.id,
4128
- column: header().column,
4129
- label: headerLabel(header().column.id)
4204
+ get columnId() {
4205
+ return header().column.id;
4206
+ },
4207
+ get column() {
4208
+ return header().column;
4209
+ },
4210
+ get label() {
4211
+ return headerLabel(header().column.id);
4212
+ }
4130
4213
  }) ?? rozieDisplay(headerLabel(header().column.id))}
4131
4214
  </span>
4132
4215
  </span>}><button type="button" class={"rdt-sort-btn"} onClick={($event) => {
@@ -4135,13 +4218,25 @@ function DataTable(_props) {
4135
4218
 
4136
4219
  <span class={"rdt-header-label"} data-rozie-s-d5dcab4c="">
4137
4220
  {_props.slots?.[`colHeader-${header().column.id}`]?.({
4138
- columnId: header().column.id,
4139
- column: header().column,
4140
- label: headerLabel(header().column.id)
4221
+ get columnId() {
4222
+ return header().column.id;
4223
+ },
4224
+ get column() {
4225
+ return header().column;
4226
+ },
4227
+ get label() {
4228
+ return headerLabel(header().column.id);
4229
+ }
4141
4230
  }) ?? (_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4142
- columnId: header().column.id,
4143
- column: header().column,
4144
- label: headerLabel(header().column.id)
4231
+ get columnId() {
4232
+ return header().column.id;
4233
+ },
4234
+ get column() {
4235
+ return header().column;
4236
+ },
4237
+ get label() {
4238
+ return headerLabel(header().column.id);
4239
+ }
4145
4240
  }) ?? rozieDisplay(headerLabel(header().column.id))}
4146
4241
  </span>
4147
4242
  <span class={"rdt-sort-ind"} aria-hidden="true" data-rozie-s-d5dcab4c="">{rozieDisplay(sortIndicator(header().column.id))}</span>
@@ -4170,9 +4265,15 @@ function DataTable(_props) {
4170
4265
  }} data-rozie-s-d5dcab4c=""><span class={"rdt-resize-grip"} aria-hidden="true" data-rozie-s-d5dcab4c="" /></button>
4171
4266
  </span>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4172
4267
  {(_props.selectAllSlot ?? _props.slots?.["selectAll"])?.({
4173
- checked: isAllRowsSelected(),
4174
- indeterminate: isSomeRowsSelected(),
4175
- toggle: onToggleAllRows
4268
+ get checked() {
4269
+ return isAllRowsSelected();
4270
+ },
4271
+ get indeterminate() {
4272
+ return isSomeRowsSelected();
4273
+ },
4274
+ get toggle() {
4275
+ return onToggleAllRows;
4276
+ }
4176
4277
  }) ?? <Show when={local.selectionMode === "multiple"}><input type="checkbox" aria-label="Select all rows" class={"rdt-select-all"} checked={isAllRowsSelected()} onChange={($event) => {
4177
4278
  onToggleAllRows($event);
4178
4279
  }} data-rozie-s-d5dcab4c="" /></Show>}
@@ -4184,17 +4285,37 @@ function DataTable(_props) {
4184
4285
  {<Show when={isSelectColumn(header().column.id)} fallback={<Show when={isExpanderColumn(header().column.id)} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4185
4286
  {<Show when={columnIsFilterable(header().column.id)}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4186
4287
  {_props.slots?.[`filter-${header().column.id}`]?.({
4187
- columnId: header().column.id,
4188
- value: columnFilterValue(header().column.id),
4189
- uniqueValues: getFacetedUniqueValues$1(header().column.id),
4190
- minMax: getFacetedMinMaxValues$1(header().column.id),
4191
- setFilter: setColumnFilter
4288
+ get columnId() {
4289
+ return header().column.id;
4290
+ },
4291
+ get value() {
4292
+ return columnFilterValue(header().column.id);
4293
+ },
4294
+ get uniqueValues() {
4295
+ return getFacetedUniqueValues$1(header().column.id);
4296
+ },
4297
+ get minMax() {
4298
+ return getFacetedMinMaxValues$1(header().column.id);
4299
+ },
4300
+ get setFilter() {
4301
+ return setColumnFilter;
4302
+ }
4192
4303
  }) ?? (_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
4304
+ get columnId() {
4305
+ return header().column.id;
4306
+ },
4307
+ get value() {
4308
+ return columnFilterValue(header().column.id);
4309
+ },
4310
+ get uniqueValues() {
4311
+ return getFacetedUniqueValues$1(header().column.id);
4312
+ },
4313
+ get minMax() {
4314
+ return getFacetedMinMaxValues$1(header().column.id);
4315
+ },
4316
+ get setFilter() {
4317
+ return setColumnFilter;
4318
+ }
4198
4319
  }) ?? <input type="text" aria-label={rozieAttr("Filter " + headerLabel(header().column.id))} class={"rdt-col-filter"} value={columnFilterValue(header().column.id)} onInput={($event) => {
4199
4320
  onColumnFilterInput(header().column.id, $event);
4200
4321
  }} onClick={($event) => {
@@ -4216,15 +4337,31 @@ function DataTable(_props) {
4216
4337
 
4217
4338
  {<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="">
4218
4339
  {_props.slots?.[`cell-${cell().column.id}`]?.({
4219
- columnId: cell().column.id,
4220
- column: cell().column,
4221
- row: cellSlotRow(row()),
4222
- value: cell().getValue()
4340
+ get columnId() {
4341
+ return cell().column.id;
4342
+ },
4343
+ get column() {
4344
+ return cell().column;
4345
+ },
4346
+ get row() {
4347
+ return cellSlotRow(row());
4348
+ },
4349
+ get value() {
4350
+ return cell().getValue();
4351
+ }
4223
4352
  }) ?? (_props.cellSlot ?? _props.slots?.["cell"])?.({
4224
- columnId: cell().column.id,
4225
- column: cell().column,
4226
- row: cellSlotRow(row()),
4227
- value: cell().getValue()
4353
+ get columnId() {
4354
+ return cell().column.id;
4355
+ },
4356
+ get column() {
4357
+ return cell().column;
4358
+ },
4359
+ get row() {
4360
+ return cellSlotRow(row());
4361
+ },
4362
+ get value() {
4363
+ return cell().getValue();
4364
+ }
4228
4365
  }) ?? rozieDisplay(cell().getValue())}
4229
4366
  </span>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4230
4367
  {<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) => {
@@ -4235,21 +4372,49 @@ function DataTable(_props) {
4235
4372
  onEditorBlur($event);
4236
4373
  }} data-rozie-s-d5dcab4c="" />}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4237
4374
  {_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()))
4375
+ get columnId() {
4376
+ return cell().column.id;
4377
+ },
4378
+ get column() {
4379
+ return cell().column;
4380
+ },
4381
+ get row() {
4382
+ return cellSlotRow(row());
4383
+ },
4384
+ get value() {
4385
+ return editorValueFor(cell().column.id);
4386
+ },
4387
+ get commit() {
4388
+ return editorCommitFor(cell().column.id);
4389
+ },
4390
+ get cancel() {
4391
+ return editorCancelFor();
4392
+ },
4393
+ get autofocus() {
4394
+ return editorAutofocusFor(cell().column.id, rowIndexOf(row()));
4395
+ }
4245
4396
  }) ?? (_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()))
4397
+ get columnId() {
4398
+ return cell().column.id;
4399
+ },
4400
+ get column() {
4401
+ return cell().column;
4402
+ },
4403
+ get row() {
4404
+ return cellSlotRow(row());
4405
+ },
4406
+ get value() {
4407
+ return editorValueFor(cell().column.id);
4408
+ },
4409
+ get commit() {
4410
+ return editorCommitFor(cell().column.id);
4411
+ },
4412
+ get cancel() {
4413
+ return editorCancelFor();
4414
+ },
4415
+ get autofocus() {
4416
+ return editorAutofocusFor(cell().column.id, rowIndexOf(row()));
4417
+ }
4253
4418
  }) ?? <input type="text" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4254
4419
  onCellEditorInput(cell().column.id, $event);
4255
4420
  }} onKeyDown={($event) => {
@@ -4283,22 +4448,42 @@ function DataTable(_props) {
4283
4448
  }} data-rozie-s-d5dcab4c="">{rozieDisplay(rowIsExpanded(row()) ? "▾" : "▸")}</button>
4284
4449
  <span class={"rdt-group-value"} data-rozie-s-d5dcab4c="">
4285
4450
  {_props.slots?.[`cell-${cell().column.id}`]?.({
4286
- columnId: cell().column.id,
4287
- column: cell().column,
4288
- row: cellSlotRow(row()),
4289
- value: cell().getValue()
4451
+ get columnId() {
4452
+ return cell().column.id;
4453
+ },
4454
+ get column() {
4455
+ return cell().column;
4456
+ },
4457
+ get row() {
4458
+ return cellSlotRow(row());
4459
+ },
4460
+ get value() {
4461
+ return cell().getValue();
4462
+ }
4290
4463
  }) ?? (_props.cellSlot ?? _props.slots?.["cell"])?.({
4291
- columnId: cell().column.id,
4292
- column: cell().column,
4293
- row: cellSlotRow(row()),
4294
- value: cell().getValue()
4464
+ get columnId() {
4465
+ return cell().column.id;
4466
+ },
4467
+ get column() {
4468
+ return cell().column;
4469
+ },
4470
+ get row() {
4471
+ return cellSlotRow(row());
4472
+ },
4473
+ get value() {
4474
+ return cell().getValue();
4475
+ }
4295
4476
  }) ?? rozieDisplay(cell().getValue())}
4296
4477
  </span>
4297
4478
  <span class={"rdt-group-count"} data-rozie-s-d5dcab4c="">{rozieDisplay("(" + groupSubRowCount(row()) + ")")}</span>
4298
4479
  </span></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4299
4480
  {(_props.selectCellSlot ?? _props.slots?.["selectCell"])?.({
4300
- row: cellSlotRow(row()),
4301
- checked: rowIsSelected(row()),
4481
+ get row() {
4482
+ return cellSlotRow(row());
4483
+ },
4484
+ get checked() {
4485
+ return rowIsSelected(row());
4486
+ },
4302
4487
  toggle: (e) => onToggleRow(row(), e)
4303
4488
  }) ?? <input type="checkbox" aria-label="Select row" class={"rdt-select-row"} checked={rowIsSelected(row())} onChange={($event) => {
4304
4489
  onToggleRow(row(), $event);
@@ -4313,7 +4498,9 @@ function DataTable(_props) {
4313
4498
 
4314
4499
  {<Show when={rowShowsDetail(row())}><tr class={"rdt-detail-row"} role="row" data-detail-row={rozieAttr(row().id)} data-rozie-s-d5dcab4c="">
4315
4500
  <td class={"rdt-detail-cell"} colSpan={rozieAttr(visibleColCount())} data-rozie-s-d5dcab4c="">
4316
- {(_props.detailSlot ?? _props.slots?.["detail"])?.({ row: row().original })}
4501
+ {(_props.detailSlot ?? _props.slots?.["detail"])?.({ get row() {
4502
+ return row().original;
4503
+ } })}
4317
4504
  </td>
4318
4505
  </tr></Show>}</>}</Key>
4319
4506
  </tbody>
@@ -4347,13 +4534,25 @@ function DataTable(_props) {
4347
4534
  {<Show when={wh().header.column.getCanSort && wh().header.column.getCanSort()} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4348
4535
  <span class={"rdt-header-label"} data-rozie-s-d5dcab4c="">
4349
4536
  {_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)
4537
+ get columnId() {
4538
+ return wh().header.column.id;
4539
+ },
4540
+ get column() {
4541
+ return wh().header.column;
4542
+ },
4543
+ get label() {
4544
+ return headerLabel(wh().header.column.id);
4545
+ }
4353
4546
  }) ?? (_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4354
- columnId: wh().header.column.id,
4355
- column: wh().header.column,
4356
- label: headerLabel(wh().header.column.id)
4547
+ get columnId() {
4548
+ return wh().header.column.id;
4549
+ },
4550
+ get column() {
4551
+ return wh().header.column;
4552
+ },
4553
+ get label() {
4554
+ return headerLabel(wh().header.column.id);
4555
+ }
4357
4556
  }) ?? rozieDisplay(headerLabel(wh().header.column.id))}
4358
4557
  </span>
4359
4558
  </span>}><button type="button" class={"rdt-sort-btn"} onClick={($event) => {
@@ -4361,13 +4560,25 @@ function DataTable(_props) {
4361
4560
  }} data-rozie-s-d5dcab4c="">
4362
4561
  <span class={"rdt-header-label"} data-rozie-s-d5dcab4c="">
4363
4562
  {_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)
4563
+ get columnId() {
4564
+ return wh().header.column.id;
4565
+ },
4566
+ get column() {
4567
+ return wh().header.column;
4568
+ },
4569
+ get label() {
4570
+ return headerLabel(wh().header.column.id);
4571
+ }
4367
4572
  }) ?? (_props.colHeaderSlot ?? _props.slots?.["colHeader"])?.({
4368
- columnId: wh().header.column.id,
4369
- column: wh().header.column,
4370
- label: headerLabel(wh().header.column.id)
4573
+ get columnId() {
4574
+ return wh().header.column.id;
4575
+ },
4576
+ get column() {
4577
+ return wh().header.column;
4578
+ },
4579
+ get label() {
4580
+ return headerLabel(wh().header.column.id);
4581
+ }
4371
4582
  }) ?? rozieDisplay(headerLabel(wh().header.column.id))}
4372
4583
  </span>
4373
4584
  <span class={"rdt-sort-ind"} aria-hidden="true" data-rozie-s-d5dcab4c="">{rozieDisplay(sortIndicator(wh().header.column.id))}</span>
@@ -4395,9 +4606,15 @@ function DataTable(_props) {
4395
4606
  }} data-rozie-s-d5dcab4c=""><span class={"rdt-resize-grip"} aria-hidden="true" data-rozie-s-d5dcab4c="" /></button>
4396
4607
  </span>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4397
4608
  {(_props.selectAllSlot ?? _props.slots?.["selectAll"])?.({
4398
- checked: isAllRowsSelected(),
4399
- indeterminate: isSomeRowsSelected(),
4400
- toggle: onToggleAllRows
4609
+ get checked() {
4610
+ return isAllRowsSelected();
4611
+ },
4612
+ get indeterminate() {
4613
+ return isSomeRowsSelected();
4614
+ },
4615
+ get toggle() {
4616
+ return onToggleAllRows;
4617
+ }
4401
4618
  }) ?? <Show when={local.selectionMode === "multiple"}><input type="checkbox" aria-label="Select all rows" class={"rdt-select-all"} checked={isAllRowsSelected()} onChange={($event) => {
4402
4619
  onToggleAllRows($event);
4403
4620
  }} data-rozie-s-d5dcab4c="" /></Show>}
@@ -4410,17 +4627,37 @@ function DataTable(_props) {
4410
4627
  {<Show when={isSelectColumn(wh().header.column.id)} fallback={<Show when={isExpanderColumn(wh().header.column.id)} fallback={<span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4411
4628
  {<Show when={columnIsFilterable(wh().header.column.id)}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4412
4629
  {_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
4630
+ get columnId() {
4631
+ return wh().header.column.id;
4632
+ },
4633
+ get value() {
4634
+ return columnFilterValue(wh().header.column.id);
4635
+ },
4636
+ get uniqueValues() {
4637
+ return getFacetedUniqueValues$1(wh().header.column.id);
4638
+ },
4639
+ get minMax() {
4640
+ return getFacetedMinMaxValues$1(wh().header.column.id);
4641
+ },
4642
+ get setFilter() {
4643
+ return setColumnFilter;
4644
+ }
4418
4645
  }) ?? (_props.filterSlot ?? _props.slots?.["filter"])?.({
4419
- columnId: wh().header.column.id,
4420
- value: columnFilterValue(wh().header.column.id),
4421
- uniqueValues: getFacetedUniqueValues$1(wh().header.column.id),
4422
- minMax: getFacetedMinMaxValues$1(wh().header.column.id),
4423
- setFilter: setColumnFilter
4646
+ get columnId() {
4647
+ return wh().header.column.id;
4648
+ },
4649
+ get value() {
4650
+ return columnFilterValue(wh().header.column.id);
4651
+ },
4652
+ get uniqueValues() {
4653
+ return getFacetedUniqueValues$1(wh().header.column.id);
4654
+ },
4655
+ get minMax() {
4656
+ return getFacetedMinMaxValues$1(wh().header.column.id);
4657
+ },
4658
+ get setFilter() {
4659
+ return setColumnFilter;
4660
+ }
4424
4661
  }) ?? <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
4662
  onColumnFilterInput(wh().header.column.id, $event);
4426
4663
  }} onClick={($event) => {
@@ -4450,15 +4687,31 @@ function DataTable(_props) {
4450
4687
 
4451
4688
  {<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="">
4452
4689
  {_props.slots?.[`cell-${cell().column.id}`]?.({
4453
- columnId: cell().column.id,
4454
- column: cell().column,
4455
- row: cellSlotRow(wr().row),
4456
- value: cell().getValue()
4690
+ get columnId() {
4691
+ return cell().column.id;
4692
+ },
4693
+ get column() {
4694
+ return cell().column;
4695
+ },
4696
+ get row() {
4697
+ return cellSlotRow(wr().row);
4698
+ },
4699
+ get value() {
4700
+ return cell().getValue();
4701
+ }
4457
4702
  }) ?? (_props.cellSlot ?? _props.slots?.["cell"])?.({
4458
- columnId: cell().column.id,
4459
- column: cell().column,
4460
- row: cellSlotRow(wr().row),
4461
- value: cell().getValue()
4703
+ get columnId() {
4704
+ return cell().column.id;
4705
+ },
4706
+ get column() {
4707
+ return cell().column;
4708
+ },
4709
+ get row() {
4710
+ return cellSlotRow(wr().row);
4711
+ },
4712
+ get value() {
4713
+ return cell().getValue();
4714
+ }
4462
4715
  }) ?? rozieDisplay(cell().getValue())}
4463
4716
  </span>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="" /></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4464
4717
  {<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) => {
@@ -4469,21 +4722,49 @@ function DataTable(_props) {
4469
4722
  onEditorBlur($event);
4470
4723
  }} data-rozie-s-d5dcab4c="" />}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4471
4724
  {_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)
4725
+ get columnId() {
4726
+ return cell().column.id;
4727
+ },
4728
+ get column() {
4729
+ return cell().column;
4730
+ },
4731
+ get row() {
4732
+ return cellSlotRow(wr().row);
4733
+ },
4734
+ get value() {
4735
+ return editorValueFor(cell().column.id);
4736
+ },
4737
+ get commit() {
4738
+ return editorCommitFor(cell().column.id);
4739
+ },
4740
+ get cancel() {
4741
+ return editorCancelFor();
4742
+ },
4743
+ get autofocus() {
4744
+ return editorAutofocusFor(cell().column.id, wr().vi.index);
4745
+ }
4479
4746
  }) ?? (_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)
4747
+ get columnId() {
4748
+ return cell().column.id;
4749
+ },
4750
+ get column() {
4751
+ return cell().column;
4752
+ },
4753
+ get row() {
4754
+ return cellSlotRow(wr().row);
4755
+ },
4756
+ get value() {
4757
+ return editorValueFor(cell().column.id);
4758
+ },
4759
+ get commit() {
4760
+ return editorCommitFor(cell().column.id);
4761
+ },
4762
+ get cancel() {
4763
+ return editorCancelFor();
4764
+ },
4765
+ get autofocus() {
4766
+ return editorAutofocusFor(cell().column.id, wr().vi.index);
4767
+ }
4487
4768
  }) ?? <input type="text" data-editing-cell="" data-builtin-editor="" class={"rdt-cell-editor"} value={editorValueFor(cell().column.id)} onInput={($event) => {
4488
4769
  onCellEditorInput(cell().column.id, $event);
4489
4770
  }} onKeyDown={($event) => {
@@ -4517,22 +4798,42 @@ function DataTable(_props) {
4517
4798
  }} data-rozie-s-d5dcab4c="">{rozieDisplay(rowIsExpanded(wr().row) ? "▾" : "▸")}</button>
4518
4799
  <span class={"rdt-group-value"} data-rozie-s-d5dcab4c="">
4519
4800
  {_props.slots?.[`cell-${cell().column.id}`]?.({
4520
- columnId: cell().column.id,
4521
- column: cell().column,
4522
- row: cellSlotRow(wr().row),
4523
- value: cell().getValue()
4801
+ get columnId() {
4802
+ return cell().column.id;
4803
+ },
4804
+ get column() {
4805
+ return cell().column;
4806
+ },
4807
+ get row() {
4808
+ return cellSlotRow(wr().row);
4809
+ },
4810
+ get value() {
4811
+ return cell().getValue();
4812
+ }
4524
4813
  }) ?? (_props.cellSlot ?? _props.slots?.["cell"])?.({
4525
- columnId: cell().column.id,
4526
- column: cell().column,
4527
- row: cellSlotRow(wr().row),
4528
- value: cell().getValue()
4814
+ get columnId() {
4815
+ return cell().column.id;
4816
+ },
4817
+ get column() {
4818
+ return cell().column;
4819
+ },
4820
+ get row() {
4821
+ return cellSlotRow(wr().row);
4822
+ },
4823
+ get value() {
4824
+ return cell().getValue();
4825
+ }
4529
4826
  }) ?? rozieDisplay(cell().getValue())}
4530
4827
  </span>
4531
4828
  <span class={"rdt-group-count"} data-rozie-s-d5dcab4c="">{rozieDisplay("(" + groupSubRowCount(wr().row) + ")")}</span>
4532
4829
  </span></Show>}><span style={{ display: "contents" }} data-rozie-s-d5dcab4c="">
4533
4830
  {(_props.selectCellSlot ?? _props.slots?.["selectCell"])?.({
4534
- row: cellSlotRow(wr().row),
4535
- checked: rowIsSelected(wr().row),
4831
+ get row() {
4832
+ return cellSlotRow(wr().row);
4833
+ },
4834
+ get checked() {
4835
+ return rowIsSelected(wr().row);
4836
+ },
4536
4837
  toggle: (e) => onToggleRow(wr().row, e)
4537
4838
  }) ?? <input type="checkbox" aria-label="Select row" class={"rdt-select-row"} checked={rowIsSelected(wr().row)} onChange={($event) => {
4538
4839
  onToggleRow(wr().row, $event);
@@ -4548,7 +4849,9 @@ function DataTable(_props) {
4548
4849
 
4549
4850
  {<Show when={rowShowsDetail(wr().row)}><tr class={"rdt-detail-row"} role="row" data-detail-row={rozieAttr(wr().row.id)} data-rozie-s-d5dcab4c="">
4550
4851
  <td class={"rdt-detail-cell"} colSpan={rozieAttr(windowedColSpan())} data-rozie-s-d5dcab4c="">
4551
- {(_props.detailSlot ?? _props.slots?.["detail"])?.({ row: wr().row.original })}
4852
+ {(_props.detailSlot ?? _props.slots?.["detail"])?.({ get row() {
4853
+ return wr().row.original;
4854
+ } })}
4552
4855
  </td>
4553
4856
  </tr></Show>}</>}</Key>
4554
4857