@optimum-intelligence/opti-ui 0.7.1 → 0.7.3
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/CHANGELOG.md +49 -0
- package/dist/components/app-shell/AppShell.d.ts +12 -3
- package/dist/components/app-shell/AppShell.js +45 -26
- package/dist/components/app-shell/AppShell.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts +11 -2
- package/dist/components/combobox/Combobox.js +155 -118
- package/dist/components/combobox/Combobox.js.map +1 -1
- package/dist/components/data-table/DataTable.d.ts +25 -4
- package/dist/components/data-table/DataTable.js +238 -90
- package/dist/components/data-table/DataTable.js.map +1 -1
- package/dist/components/data-table/DataTableContent.d.ts +6 -1
- package/dist/components/data-table/DataTableContent.js +306 -409
- package/dist/components/data-table/DataTableContent.js.map +1 -1
- package/dist/components/data-table/DataTableFilters.d.ts +6 -1
- package/dist/components/data-table/DataTableFilters.js +65 -45
- package/dist/components/data-table/DataTableFilters.js.map +1 -1
- package/dist/components/data-table/DataTableRow.js +2 -0
- package/dist/components/data-table/DataTableRow.js.map +1 -1
- package/dist/components/data-table/types.d.ts +14 -1
- package/dist/components/data-table/useDataTable.js +2 -0
- package/dist/components/data-table/useDataTable.js.map +1 -1
- package/dist/components/drawer/Drawer.d.ts +7 -4
- package/dist/components/drawer/Drawer.js +2 -1
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/map/Map.d.ts +30 -6
- package/dist/components/map/Map.js +387 -271
- package/dist/components/map/Map.js.map +1 -1
- package/dist/components/stat-card/StatCard.d.ts +2 -2
- package/dist/components/stat-card/StatCard.js +1 -1
- package/dist/components/stat-card/StatCard.js.map +1 -1
- package/dist/components/stepper/Stepper.d.ts +7 -1
- package/dist/components/stepper/Stepper.js +46 -27
- package/dist/components/stepper/Stepper.js.map +1 -1
- package/dist/components/table/Table.d.ts +1 -1
- package/dist/components/table/Table.js +3 -1
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/tabs/Tabs.d.ts +4 -1
- package/dist/components/tabs/Tabs.js +33 -23
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/toggle/Toggle.d.ts +1 -1
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components.json +109 -30
- package/dist/icons/index.d.ts +8 -0
- package/dist/icons/index.js +11 -1
- package/dist/icons/index.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/llms-full.txt +55 -20
- package/dist/llms.txt +8 -8
- package/dist/opti-ui.css +394 -29
- package/dist/utils/media.d.ts +4 -0
- package/dist/utils/media.js +34 -0
- package/dist/utils/media.js.map +1 -0
- package/dist/utils/scroll-fade.d.ts +9 -0
- package/dist/utils/scroll-fade.js +45 -0
- package/dist/utils/scroll-fade.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cx } from "../../utils/cx.js";
|
|
3
3
|
import { createPrimitive } from "../../utils/primitive.js";
|
|
4
|
-
import { DownloadIcon } from "../../icons/index.js";
|
|
4
|
+
import { DownloadIcon, FilterIcon } from "../../icons/index.js";
|
|
5
5
|
import { Spinner } from "../spinner/Spinner.js";
|
|
6
6
|
import { Button } from "../button/Button.js";
|
|
7
7
|
import { SearchInput } from "../search-input/SearchInput.js";
|
|
8
|
+
import { Drawer } from "../drawer/Drawer.js";
|
|
8
9
|
import { Pagination } from "../pagination/Pagination.js";
|
|
10
|
+
import { NARROW_SCREEN, useMediaQuery } from "../../utils/media.js";
|
|
9
11
|
import { DataTableContext, useDataTableContext } from "./context.js";
|
|
10
12
|
import { useDataTable } from "./useDataTable.js";
|
|
11
13
|
import { DataTableContent } from "./DataTableContent.js";
|
|
@@ -289,8 +291,126 @@ function DataTablePagination(t0) {
|
|
|
289
291
|
} else t2 = $[13];
|
|
290
292
|
return t2;
|
|
291
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* The phone toolbar's "Filters (n)" button, which opens a bottom sheet holding every filter and the
|
|
296
|
+
* `children`. Filters apply as they change. The footer keeps a clear button (disabled while no filter
|
|
297
|
+
* is set, so nothing moves when one is) and a button that closes the sheet on the result count.
|
|
298
|
+
*/
|
|
299
|
+
function DataTableFilterSheet(t0) {
|
|
300
|
+
const $ = c(28);
|
|
301
|
+
const { size: t1, children } = t0;
|
|
302
|
+
const size = t1 === void 0 ? "md" : t1;
|
|
303
|
+
const table = useDataTableContext();
|
|
304
|
+
const text = table.labels;
|
|
305
|
+
const [open, setOpen] = React.useState(false);
|
|
306
|
+
const active = table.activeFilterCount;
|
|
307
|
+
if (!table.filters.length && !children) return null;
|
|
308
|
+
const t2 = text.filters;
|
|
309
|
+
const t3 = text.close;
|
|
310
|
+
const t4 = active ? "" : void 0;
|
|
311
|
+
let t5;
|
|
312
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
313
|
+
t5 = /* @__PURE__ */ jsx(FilterIcon, {});
|
|
314
|
+
$[0] = t5;
|
|
315
|
+
} else t5 = $[0];
|
|
316
|
+
const t6 = active ? `${text.filters} (${active})` : text.filters;
|
|
317
|
+
let t7;
|
|
318
|
+
if ($[1] !== size || $[2] !== t4 || $[3] !== t6) {
|
|
319
|
+
t7 = /* @__PURE__ */ jsxs(Button, {
|
|
320
|
+
variant: "secondary",
|
|
321
|
+
shape: "rounded",
|
|
322
|
+
size,
|
|
323
|
+
className: "oui-data-table__sheet-trigger",
|
|
324
|
+
"data-active": t4,
|
|
325
|
+
children: [t5, t6]
|
|
326
|
+
});
|
|
327
|
+
$[1] = size;
|
|
328
|
+
$[2] = t4;
|
|
329
|
+
$[3] = t6;
|
|
330
|
+
$[4] = t7;
|
|
331
|
+
} else t7 = $[4];
|
|
332
|
+
const t8 = !active;
|
|
333
|
+
let t9;
|
|
334
|
+
if ($[5] !== t8 || $[6] !== table.clearFilters || $[7] !== text.clearFilters) {
|
|
335
|
+
t9 = /* @__PURE__ */ jsx(Button, {
|
|
336
|
+
variant: "secondary",
|
|
337
|
+
disabled: t8,
|
|
338
|
+
onClick: table.clearFilters,
|
|
339
|
+
children: text.clearFilters
|
|
340
|
+
});
|
|
341
|
+
$[5] = t8;
|
|
342
|
+
$[6] = table.clearFilters;
|
|
343
|
+
$[7] = text.clearFilters;
|
|
344
|
+
$[8] = t9;
|
|
345
|
+
} else t9 = $[8];
|
|
346
|
+
let t10;
|
|
347
|
+
if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
|
|
348
|
+
t10 = () => setOpen(false);
|
|
349
|
+
$[9] = t10;
|
|
350
|
+
} else t10 = $[9];
|
|
351
|
+
let t11;
|
|
352
|
+
if ($[10] !== table.count || $[11] !== text) {
|
|
353
|
+
t11 = text.showResults(table.count);
|
|
354
|
+
$[10] = table.count;
|
|
355
|
+
$[11] = text;
|
|
356
|
+
$[12] = t11;
|
|
357
|
+
} else t11 = $[12];
|
|
358
|
+
let t12;
|
|
359
|
+
if ($[13] !== t11) {
|
|
360
|
+
t12 = /* @__PURE__ */ jsx(Button, {
|
|
361
|
+
className: "oui-data-table__sheet-done",
|
|
362
|
+
onClick: t10,
|
|
363
|
+
children: t11
|
|
364
|
+
});
|
|
365
|
+
$[13] = t11;
|
|
366
|
+
$[14] = t12;
|
|
367
|
+
} else t12 = $[14];
|
|
368
|
+
let t13;
|
|
369
|
+
if ($[15] !== t12 || $[16] !== t9) {
|
|
370
|
+
t13 = /* @__PURE__ */ jsxs(Fragment, { children: [t9, t12] });
|
|
371
|
+
$[15] = t12;
|
|
372
|
+
$[16] = t9;
|
|
373
|
+
$[17] = t13;
|
|
374
|
+
} else t13 = $[17];
|
|
375
|
+
let t14;
|
|
376
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
377
|
+
t14 = /* @__PURE__ */ jsx(DataTableFilters, { stacked: true });
|
|
378
|
+
$[18] = t14;
|
|
379
|
+
} else t14 = $[18];
|
|
380
|
+
let t15;
|
|
381
|
+
if ($[19] !== children) {
|
|
382
|
+
t15 = children && /* @__PURE__ */ jsx("div", {
|
|
383
|
+
className: "oui-data-table__sheet-extra",
|
|
384
|
+
children
|
|
385
|
+
});
|
|
386
|
+
$[19] = children;
|
|
387
|
+
$[20] = t15;
|
|
388
|
+
} else t15 = $[20];
|
|
389
|
+
let t16;
|
|
390
|
+
if ($[21] !== open || $[22] !== t13 || $[23] !== t15 || $[24] !== t7 || $[25] !== text.close || $[26] !== text.filters) {
|
|
391
|
+
t16 = /* @__PURE__ */ jsxs(Drawer, {
|
|
392
|
+
side: "bottom",
|
|
393
|
+
className: "oui-data-table__sheet",
|
|
394
|
+
title: t2,
|
|
395
|
+
closeLabel: t3,
|
|
396
|
+
open,
|
|
397
|
+
onOpenChange: setOpen,
|
|
398
|
+
trigger: t7,
|
|
399
|
+
footer: t13,
|
|
400
|
+
children: [t14, t15]
|
|
401
|
+
});
|
|
402
|
+
$[21] = open;
|
|
403
|
+
$[22] = t13;
|
|
404
|
+
$[23] = t15;
|
|
405
|
+
$[24] = t7;
|
|
406
|
+
$[25] = text.close;
|
|
407
|
+
$[26] = text.filters;
|
|
408
|
+
$[27] = t16;
|
|
409
|
+
} else t16 = $[27];
|
|
410
|
+
return t16;
|
|
411
|
+
}
|
|
292
412
|
function DataTableComponent(t0) {
|
|
293
|
-
const $ = c(
|
|
413
|
+
const $ = c(58);
|
|
294
414
|
let className;
|
|
295
415
|
let controlSize;
|
|
296
416
|
let density;
|
|
@@ -301,6 +421,7 @@ function DataTableComponent(t0) {
|
|
|
301
421
|
let onEndReached;
|
|
302
422
|
let options;
|
|
303
423
|
let pageSizeOptions;
|
|
424
|
+
let stickyFirstColumn;
|
|
304
425
|
let stickyHeader;
|
|
305
426
|
let striped;
|
|
306
427
|
let t1;
|
|
@@ -309,7 +430,7 @@ function DataTableComponent(t0) {
|
|
|
309
430
|
let toolbar;
|
|
310
431
|
let virtualized;
|
|
311
432
|
if ($[0] !== t0) {
|
|
312
|
-
({density, striped, stickyHeader, layout, maxHeight, virtualized, onEndReached, empty, tableProps, pageSizeOptions, controlSize, toolbar, showToolbar: t1, exportName, fill: t2, className, ...options} = t0);
|
|
433
|
+
({density, striped, stickyHeader, layout, maxHeight, virtualized, onEndReached, stickyFirstColumn, empty, tableProps, pageSizeOptions, controlSize, toolbar, showToolbar: t1, exportName, fill: t2, className, ...options} = t0);
|
|
313
434
|
$[0] = t0;
|
|
314
435
|
$[1] = className;
|
|
315
436
|
$[2] = controlSize;
|
|
@@ -321,13 +442,14 @@ function DataTableComponent(t0) {
|
|
|
321
442
|
$[8] = onEndReached;
|
|
322
443
|
$[9] = options;
|
|
323
444
|
$[10] = pageSizeOptions;
|
|
324
|
-
$[11] =
|
|
325
|
-
$[12] =
|
|
326
|
-
$[13] =
|
|
327
|
-
$[14] =
|
|
328
|
-
$[15] =
|
|
329
|
-
$[16] =
|
|
330
|
-
$[17] =
|
|
445
|
+
$[11] = stickyFirstColumn;
|
|
446
|
+
$[12] = stickyHeader;
|
|
447
|
+
$[13] = striped;
|
|
448
|
+
$[14] = t1;
|
|
449
|
+
$[15] = t2;
|
|
450
|
+
$[16] = tableProps;
|
|
451
|
+
$[17] = toolbar;
|
|
452
|
+
$[18] = virtualized;
|
|
331
453
|
} else {
|
|
332
454
|
className = $[1];
|
|
333
455
|
controlSize = $[2];
|
|
@@ -339,126 +461,147 @@ function DataTableComponent(t0) {
|
|
|
339
461
|
onEndReached = $[8];
|
|
340
462
|
options = $[9];
|
|
341
463
|
pageSizeOptions = $[10];
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
464
|
+
stickyFirstColumn = $[11];
|
|
465
|
+
stickyHeader = $[12];
|
|
466
|
+
striped = $[13];
|
|
467
|
+
t1 = $[14];
|
|
468
|
+
t2 = $[15];
|
|
469
|
+
tableProps = $[16];
|
|
470
|
+
toolbar = $[17];
|
|
471
|
+
virtualized = $[18];
|
|
349
472
|
}
|
|
350
473
|
const showToolbar = t1 === void 0 ? true : t1;
|
|
351
474
|
const fill = t2 === void 0 ? false : t2;
|
|
352
475
|
const t3 = options.paginated ?? !virtualized;
|
|
353
476
|
let t4;
|
|
354
|
-
if ($[
|
|
477
|
+
if ($[19] !== options || $[20] !== t3) {
|
|
355
478
|
t4 = {
|
|
356
479
|
...options,
|
|
357
480
|
paginated: t3
|
|
358
481
|
};
|
|
359
|
-
$[
|
|
360
|
-
$[
|
|
361
|
-
$[
|
|
362
|
-
} else t4 = $[
|
|
482
|
+
$[19] = options;
|
|
483
|
+
$[20] = t3;
|
|
484
|
+
$[21] = t4;
|
|
485
|
+
} else t4 = $[21];
|
|
363
486
|
const table = useDataTable(t4);
|
|
364
487
|
let rows;
|
|
365
488
|
let t5;
|
|
366
|
-
if ($[
|
|
489
|
+
if ($[22] !== table || $[23] !== toolbar) {
|
|
367
490
|
rows = table.rows.map(_temp);
|
|
368
491
|
t5 = typeof toolbar === "function" ? toolbar({
|
|
369
492
|
rows,
|
|
370
493
|
selection: table.selection,
|
|
371
494
|
table
|
|
372
495
|
}) : toolbar;
|
|
373
|
-
$[
|
|
374
|
-
$[
|
|
375
|
-
$[
|
|
376
|
-
$[
|
|
496
|
+
$[22] = table;
|
|
497
|
+
$[23] = toolbar;
|
|
498
|
+
$[24] = rows;
|
|
499
|
+
$[25] = t5;
|
|
377
500
|
} else {
|
|
378
|
-
rows = $[
|
|
379
|
-
t5 = $[
|
|
501
|
+
rows = $[24];
|
|
502
|
+
t5 = $[25];
|
|
380
503
|
}
|
|
381
504
|
const extra = t5;
|
|
382
|
-
const
|
|
383
|
-
let
|
|
384
|
-
if ($[
|
|
385
|
-
|
|
505
|
+
const narrow = useMediaQuery(NARROW_SCREEN);
|
|
506
|
+
let t6;
|
|
507
|
+
if ($[26] !== exportName || $[27] !== rows || $[28] !== table.columns || $[29] !== table.labels) {
|
|
508
|
+
t6 = exportName && /* @__PURE__ */ jsxs(Button, {
|
|
509
|
+
variant: "secondary",
|
|
510
|
+
size: "sm",
|
|
511
|
+
disabled: !rows.length,
|
|
512
|
+
onClick: () => downloadCsv(table.columns, rows, exportName),
|
|
513
|
+
children: [/* @__PURE__ */ jsx(DownloadIcon, {}), table.labels.export]
|
|
514
|
+
});
|
|
515
|
+
$[26] = exportName;
|
|
516
|
+
$[27] = rows;
|
|
517
|
+
$[28] = table.columns;
|
|
518
|
+
$[29] = table.labels;
|
|
519
|
+
$[30] = t6;
|
|
520
|
+
} else t6 = $[30];
|
|
521
|
+
const exportButton = t6;
|
|
522
|
+
const t7 = fill || void 0;
|
|
523
|
+
let t8;
|
|
524
|
+
if ($[31] !== controlSize || $[32] !== exportButton || $[33] !== extra || $[34] !== narrow || $[35] !== showToolbar || $[36] !== table.searchable) {
|
|
525
|
+
t8 = showToolbar && (narrow ? /* @__PURE__ */ jsxs(DataTableToolbar, {
|
|
526
|
+
"data-layout": "narrow",
|
|
527
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
528
|
+
className: "oui-data-table__toolbar-row",
|
|
529
|
+
children: [table.searchable && /* @__PURE__ */ jsx(DataTableSearch, { size: controlSize }), /* @__PURE__ */ jsx(DataTableFilterSheet, {
|
|
530
|
+
size: controlSize,
|
|
531
|
+
children: extra
|
|
532
|
+
})]
|
|
533
|
+
}), /* @__PURE__ */ jsxs(DataTableActions, { children: [/* @__PURE__ */ jsx(DataTableSummary, {}), exportButton] })]
|
|
534
|
+
}) : /* @__PURE__ */ jsxs(DataTableToolbar, { children: [
|
|
386
535
|
table.searchable && /* @__PURE__ */ jsx(DataTableSearch, { size: controlSize }),
|
|
387
536
|
/* @__PURE__ */ jsx(DataTableFilters, { size: controlSize }),
|
|
388
537
|
/* @__PURE__ */ jsxs(DataTableActions, { children: [
|
|
389
538
|
/* @__PURE__ */ jsx(DataTableSummary, {}),
|
|
390
539
|
extra,
|
|
391
|
-
|
|
392
|
-
variant: "secondary",
|
|
393
|
-
size: "sm",
|
|
394
|
-
disabled: !rows.length,
|
|
395
|
-
onClick: () => downloadCsv(table.columns, rows, exportName),
|
|
396
|
-
children: [/* @__PURE__ */ jsx(DownloadIcon, {}), table.labels.export]
|
|
397
|
-
})
|
|
540
|
+
exportButton
|
|
398
541
|
] })
|
|
399
|
-
] });
|
|
400
|
-
$[
|
|
401
|
-
$[
|
|
402
|
-
$[
|
|
403
|
-
$[
|
|
404
|
-
$[
|
|
405
|
-
$[
|
|
406
|
-
$[
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
if ($[34] !== density || $[35] !== empty || $[36] !== layout || $[37] !== onEndReached || $[38] !== stickyHeader || $[39] !== striped || $[40] !== t8 || $[41] !== tableProps || $[42] !== virtualized) {
|
|
413
|
-
t9 = /* @__PURE__ */ jsx(DataTableContent, {
|
|
542
|
+
] }));
|
|
543
|
+
$[31] = controlSize;
|
|
544
|
+
$[32] = exportButton;
|
|
545
|
+
$[33] = extra;
|
|
546
|
+
$[34] = narrow;
|
|
547
|
+
$[35] = showToolbar;
|
|
548
|
+
$[36] = table.searchable;
|
|
549
|
+
$[37] = t8;
|
|
550
|
+
} else t8 = $[37];
|
|
551
|
+
const t9 = fill ? maxHeight ?? "none" : maxHeight;
|
|
552
|
+
let t10;
|
|
553
|
+
if ($[38] !== density || $[39] !== empty || $[40] !== layout || $[41] !== onEndReached || $[42] !== stickyFirstColumn || $[43] !== stickyHeader || $[44] !== striped || $[45] !== t9 || $[46] !== tableProps || $[47] !== virtualized) {
|
|
554
|
+
t10 = /* @__PURE__ */ jsx(DataTableContent, {
|
|
414
555
|
density,
|
|
415
556
|
striped,
|
|
416
557
|
stickyHeader,
|
|
417
558
|
layout,
|
|
418
|
-
maxHeight:
|
|
559
|
+
maxHeight: t9,
|
|
419
560
|
virtualized,
|
|
420
561
|
onEndReached,
|
|
562
|
+
stickyFirstColumn,
|
|
421
563
|
empty,
|
|
422
564
|
tableProps
|
|
423
565
|
});
|
|
424
|
-
$[
|
|
425
|
-
$[
|
|
426
|
-
$[
|
|
427
|
-
$[
|
|
428
|
-
$[
|
|
429
|
-
$[
|
|
430
|
-
$[
|
|
431
|
-
$[
|
|
432
|
-
$[
|
|
433
|
-
$[
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
if ($[44] !== pageSizeOptions) {
|
|
437
|
-
t10 = /* @__PURE__ */ jsx(DataTablePagination, { pageSizeOptions });
|
|
438
|
-
$[44] = pageSizeOptions;
|
|
439
|
-
$[45] = t10;
|
|
440
|
-
} else t10 = $[45];
|
|
566
|
+
$[38] = density;
|
|
567
|
+
$[39] = empty;
|
|
568
|
+
$[40] = layout;
|
|
569
|
+
$[41] = onEndReached;
|
|
570
|
+
$[42] = stickyFirstColumn;
|
|
571
|
+
$[43] = stickyHeader;
|
|
572
|
+
$[44] = striped;
|
|
573
|
+
$[45] = t9;
|
|
574
|
+
$[46] = tableProps;
|
|
575
|
+
$[47] = virtualized;
|
|
576
|
+
$[48] = t10;
|
|
577
|
+
} else t10 = $[48];
|
|
441
578
|
let t11;
|
|
442
|
-
if ($[
|
|
443
|
-
t11 = /* @__PURE__ */
|
|
579
|
+
if ($[49] !== pageSizeOptions) {
|
|
580
|
+
t11 = /* @__PURE__ */ jsx(DataTablePagination, { pageSizeOptions });
|
|
581
|
+
$[49] = pageSizeOptions;
|
|
582
|
+
$[50] = t11;
|
|
583
|
+
} else t11 = $[50];
|
|
584
|
+
let t12;
|
|
585
|
+
if ($[51] !== className || $[52] !== t10 || $[53] !== t11 || $[54] !== t7 || $[55] !== t8 || $[56] !== table) {
|
|
586
|
+
t12 = /* @__PURE__ */ jsxs(DataTableRoot, {
|
|
444
587
|
table,
|
|
445
588
|
className,
|
|
446
|
-
"data-fill":
|
|
589
|
+
"data-fill": t7,
|
|
447
590
|
children: [
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
591
|
+
t8,
|
|
592
|
+
t10,
|
|
593
|
+
t11
|
|
451
594
|
]
|
|
452
595
|
});
|
|
453
|
-
$[
|
|
454
|
-
$[
|
|
455
|
-
$[
|
|
456
|
-
$[
|
|
457
|
-
$[
|
|
458
|
-
$[
|
|
459
|
-
$[
|
|
460
|
-
} else
|
|
461
|
-
return
|
|
596
|
+
$[51] = className;
|
|
597
|
+
$[52] = t10;
|
|
598
|
+
$[53] = t11;
|
|
599
|
+
$[54] = t7;
|
|
600
|
+
$[55] = t8;
|
|
601
|
+
$[56] = table;
|
|
602
|
+
$[57] = t12;
|
|
603
|
+
} else t12 = $[57];
|
|
604
|
+
return t12;
|
|
462
605
|
}
|
|
463
606
|
/**
|
|
464
607
|
* `<DataTable data={…} columns={…} />` renders a complete table with search,
|
|
@@ -469,8 +612,12 @@ function DataTableComponent(t0) {
|
|
|
469
612
|
*
|
|
470
613
|
* For another layout, create the table with `useDataTable` and compose the
|
|
471
614
|
* parts: `DataTable.Root`, `DataTable.Toolbar`, `DataTable.Search`,
|
|
472
|
-
* `DataTable.Filters`, `DataTable.Filter`, `DataTable.
|
|
473
|
-
* `DataTable.
|
|
615
|
+
* `DataTable.Filters`, `DataTable.Filter`, `DataTable.FilterSheet` (the
|
|
616
|
+
* phone filter button and sheet), `DataTable.Actions`, `DataTable.Summary`,
|
|
617
|
+
* `DataTable.Content`, `DataTable.Pagination`.
|
|
618
|
+
*
|
|
619
|
+
* On phones (below 640px) columns with `priority: 'low'` are hidden, and
|
|
620
|
+
* `stickyFirstColumn` keeps each row's name in view while the rest scrolls.
|
|
474
621
|
*/
|
|
475
622
|
function _temp(t0) {
|
|
476
623
|
const { row } = t0;
|
|
@@ -482,6 +629,7 @@ var DataTable = Object.assign(DataTableComponent, {
|
|
|
482
629
|
Search: DataTableSearch,
|
|
483
630
|
Filters: DataTableFilters,
|
|
484
631
|
Filter: DataTableFilter,
|
|
632
|
+
FilterSheet: DataTableFilterSheet,
|
|
485
633
|
Actions: DataTableActions,
|
|
486
634
|
Summary: DataTableSummary,
|
|
487
635
|
Content: DataTableContent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["React","cx","DownloadIcon","Button","createPrimitive","Pagination","PaginationProps","SearchInput","SearchInputProps","Spinner","DataTableContext","useDataTableContext","DataTableContent","DataTableContentProps","DataTableFilter","DataTableFilters","DataTableControlSize","downloadCsv","useDataTable","DataTableInstance","UseDataTableOptions","DataTableVirtualOptions","DataTableFilterProps","DataTableFiltersProps","DataTableRootProps","HTMLAttributes","HTMLDivElement","ref","Ref","table","T","DataTableRoot","t0","$","_c","className","props","t1","t2","loading","rows","length","undefined","t3","t4","DataTableToolbar","DataTableActions","DataTableSearchProps","Omit","DataTableSearch","search","searchDebounce","labels","text","draft","setDraft","useState","seen","setSeen","sent","setSent","next","setSearch","commit","timer","window","setTimeout","clearTimeout","useEffect","next_0","change","t5","t6","clearSearch","DataTableSummary","selection","Set","selected","size","count","pending","selectable","totalCount","filteredCount","DataTablePaginationProps","DataTablePagination","paginated","error","page","pageSize","setPage","setPageSize","DataTableToolbarContext","DataTableProps","pageSizeOptions","controlSize","toolbar","ReactNode","context","showToolbar","exportName","fill","DataTableComponent","density","empty","layout","maxHeight","onEndReached","options","stickyHeader","striped","tableProps","virtualized","map","_temp","extra","t7","columns","searchable","export","t8","t9","t10","t11","row","DataTable","Object","assign","Root","Toolbar","Search","Filters","Filter","Actions","Summary","Content","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { DownloadIcon } from '../../icons';\nimport { Button } from '../button/Button';\nimport { createPrimitive } from '../../utils/primitive';\nimport { Pagination, type PaginationProps } from '../pagination/Pagination';\nimport { SearchInput, type SearchInputProps } from '../search-input/SearchInput';\nimport { Spinner } from '../spinner/Spinner';\nimport { DataTableContext, useDataTableContext } from './context';\nimport { DataTableContent, type DataTableContentProps } from './DataTableContent';\nimport { DataTableFilter, DataTableFilters, type DataTableControlSize } from './DataTableFilters';\nimport { downloadCsv } from './export';\nimport { useDataTable } from './useDataTable';\nimport type { DataTableInstance, UseDataTableOptions } from './types';\n\nexport { useDataTableContext } from './context';\nexport type { DataTableContentProps, DataTableVirtualOptions } from './DataTableContent';\nexport type { DataTableControlSize, DataTableFilterProps, DataTableFiltersProps } from './DataTableFilters';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface DataTableRootProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n /** Ref to the table's root element. */\n ref?: React.Ref<HTMLDivElement>;\n /** The table from `useDataTable`. */\n table: DataTableInstance<T>;\n}\n\n/** Provides a table to the parts inside it. */\nfunction DataTableRoot<T>({ table, className, ref, ...props }: DataTableRootProps<T>) {\n return (\n <DataTableContext.Provider value={table}>\n <div\n ref={ref}\n className={cx('oui-data-table', className)}\n data-loading={table.loading ? (table.rows.length ? 'refresh' : 'initial') : undefined}\n {...props}\n />\n </DataTableContext.Provider>\n );\n}\n\nconst DataTableToolbar = createPrimitive('div', 'oui-data-table__toolbar', 'DataTableToolbar');\nconst DataTableActions = createPrimitive('div', 'oui-data-table__actions', 'DataTableActions');\n\nexport interface DataTableSearchProps extends Omit<SearchInputProps, 'value' | 'defaultValue' | 'onValueChange' | 'className'> {\n /** Class name for the search box. */\n className?: string;\n}\n\n/** Search box of the table. Typing applies after the table's `searchDebounce`; clearing applies at once. */\nfunction DataTableSearch({ className, ...props }: DataTableSearchProps) {\n const table = useDataTableContext();\n const { search, searchDebounce, labels: text } = table;\n const [draft, setDraft] = React.useState(search);\n const [seen, setSeen] = React.useState(search);\n const [sent, setSent] = React.useState(search);\n\n // Follow a search set from outside (reset, controlled state), but not the echo\n // of our own change: it can arrive after the user has typed further.\n if (seen !== search) {\n setSeen(search);\n if (search !== sent) {\n setSent(search);\n setDraft(search);\n }\n }\n\n const commit = (next: string) => {\n setSent(next);\n table.setSearch(next);\n };\n\n // Typed text that has not been applied yet goes out once the typing pauses.\n React.useEffect(() => {\n if (draft === sent) return;\n const timer = window.setTimeout(() => commit(draft), searchDebounce);\n return () => window.clearTimeout(timer);\n // `commit` is new on every render; only a change of the text restarts the wait.\n }, [draft, sent, searchDebounce]);\n\n const change = (next: string) => {\n setDraft(next);\n if (!searchDebounce || !next) commit(next);\n };\n\n return (\n <SearchInput\n className={cx('oui-data-table__search', className)}\n aria-label={text.search}\n placeholder={text.search}\n clearLabel={text.clearSearch}\n {...props}\n value={draft}\n onValueChange={change}\n />\n );\n}\n\n/** Row count, or the number of selected rows, with a spinner while loading. */\nfunction DataTableSummary({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n const table = useDataTableContext();\n const text = table.labels;\n const selected = new Set(table.selection).size;\n return (\n <>\n {table.loading && <Spinner className=\"oui-data-table__spinner\" label={text.loading} />}\n <span className={cx('oui-data-table__summary', className)} aria-live=\"polite\" {...props}>\n {/* No count before the first rows arrive: \"0 records\" would be wrong. */}\n {table.selectable && selected\n ? text.selected(selected)\n : table.pending\n ? null\n : table.count !== table.totalCount\n ? text.filteredCount(table.count, table.totalCount)\n : text.count(table.count)}\n </span>\n </>\n );\n}\n\nexport interface DataTablePaginationProps\n extends Omit<PaginationProps, 'page' | 'pageSize' | 'total' | 'onPageChange' | 'onPageSizeChange'> {}\n\n/** Page navigation of the table. Renders nothing when there are no rows, or the table is not paginated. */\nfunction DataTablePagination({ className, ...props }: DataTablePaginationProps) {\n const table = useDataTableContext();\n if (!table.paginated || table.count <= 0 || table.error) return null;\n return (\n <Pagination\n className={cx('oui-data-table__pagination', className)}\n variant=\"simple\"\n labels={table.labels}\n {...props}\n page={table.page}\n pageSize={table.pageSize}\n total={table.count}\n onPageChange={table.setPage}\n onPageSizeChange={table.setPageSize}\n />\n );\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface DataTableToolbarContext<T> {\n /** Rows after filters, search and sorting, across all pages. In server mode: the current page. */\n rows: T[];\n /** Ids of the selected rows. */\n selection: string[];\n /** The whole table: filter values, sort, setters. */\n table: DataTableInstance<T>;\n}\n\nexport interface DataTableProps<T> extends UseDataTableOptions<T>, DataTableContentProps {\n /** Choices in the rows-per-page select. */\n pageSizeOptions?: number[];\n /** Size of the search box and the filters. */\n controlSize?: DataTableControlSize;\n /** Extra toolbar content (add, bulk actions…). A function receives the processed rows. */\n toolbar?: React.ReactNode | ((context: DataTableToolbarContext<T>) => React.ReactNode);\n /** `false` drops the search, filters, summary and toolbar content: rows only, for short tables under their own heading. */\n showToolbar?: boolean;\n /**\n * Adds an export button that saves the filtered, sorted rows as `<exportName>.csv`.\n * Columns choose their text with `exportValue`.\n */\n exportName?: string;\n /**\n * Grow to fill the height of a flex column container (a page, or a `Card`\n * whose content holds the table); only the rows scroll. `maxHeight` still caps it.\n */\n fill?: boolean;\n /** Class name for the table's root element. */\n className?: string;\n}\n\nfunction DataTableComponent<T>({\n density,\n striped,\n stickyHeader,\n layout,\n maxHeight,\n virtualized,\n onEndReached,\n empty,\n tableProps,\n pageSizeOptions,\n controlSize,\n toolbar,\n showToolbar = true,\n exportName,\n fill = false,\n className,\n ...options\n}: DataTableProps<T>) {\n // A virtualized table shows all its rows in one scrolling list, unless pages are asked for.\n const table = useDataTable({ ...options, paginated: options.paginated ?? !virtualized });\n const rows = table.rows.map(({ row }) => row);\n const extra = typeof toolbar === 'function' ? toolbar({ rows, selection: table.selection, table }) : toolbar;\n\n return (\n <DataTableRoot table={table} className={className} data-fill={fill || undefined}>\n {showToolbar && (\n <DataTableToolbar>\n {table.searchable && <DataTableSearch size={controlSize} />}\n <DataTableFilters size={controlSize} />\n <DataTableActions>\n <DataTableSummary />\n {extra}\n {exportName && (\n <Button\n variant=\"secondary\"\n size=\"sm\"\n disabled={!rows.length}\n onClick={() => downloadCsv(table.columns, rows, exportName)}\n >\n <DownloadIcon />\n {table.labels.export}\n </Button>\n )}\n </DataTableActions>\n </DataTableToolbar>\n )}\n <DataTableContent\n density={density}\n striped={striped}\n stickyHeader={stickyHeader}\n layout={layout}\n // Filling, the rows scroll inside whatever height the table is given.\n maxHeight={fill ? (maxHeight ?? 'none') : maxHeight}\n virtualized={virtualized}\n onEndReached={onEndReached}\n empty={empty}\n tableProps={tableProps}\n />\n <DataTablePagination pageSizeOptions={pageSizeOptions} />\n </DataTableRoot>\n );\n}\n\n/**\n * `<DataTable data={…} columns={…} />` renders a complete table with search,\n * filters, sorting, pagination, row selection, row actions and inline editing;\n * columns declare what they take part in. Every piece of state works\n * uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` /\n * `selection`), and with `mode=\"server\"` the same state drives an API.\n *\n * For another layout, create the table with `useDataTable` and compose the\n * parts: `DataTable.Root`, `DataTable.Toolbar`, `DataTable.Search`,\n * `DataTable.Filters`, `DataTable.Filter`, `DataTable.Actions`,\n * `DataTable.Summary`, `DataTable.Content`, `DataTable.Pagination`.\n */\nexport const DataTable = Object.assign(DataTableComponent, {\n Root: DataTableRoot,\n Toolbar: DataTableToolbar,\n Search: DataTableSearch,\n Filters: DataTableFilters,\n Filter: DataTableFilter,\n Actions: DataTableActions,\n Summary: DataTableSummary,\n Content: DataTableContent,\n Pagination: DataTablePagination,\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6BA,SAAA+B,cAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAT;CAAA,IAAAE;CAAA,IAAAI,EAAA,OAAAD,IAAA;EAA0B,CAAA,CAAAH,OAAAM,WAAAR,KAAA,GAAAS,SAAAJ;EAA0DC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAN;EAAAM,EAAA,KAAAJ;CAAA,OAAA;EAAAM,YAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAN,MAAAM,EAAA;EAAAJ,QAAAI,EAAA;CAAA;CAAA,IAAAI;CAAA,IAAAJ,EAAA,OAAAE,WAAA;EAKjEE,KAAApC,GAAG,kBAAkBkC,SAAS;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAC5B,MAAAK,KAAAT,MAAKU,UAAYV,MAAKW,KAAKC,SAAV,YAAA,YAAjBC,KAAAA;CAAuE,IAAAC;CAAA,IAAAV,EAAA,OAAAG,SAAAH,EAAA,OAAAN,OAAAM,EAAA,OAAAI,MAAAJ,EAAA,QAAAK,IAAA;EAHvFK,KAAA,oBAAA,OAAA;GACOhB;GACM,WAAAU;GACG,gBAAAC;GAAuE,GACjFF;EAAK,CAAA;EACTH,EAAA,KAAAG;EAAAH,EAAA,KAAAN;EAAAM,EAAA,KAAAI;EAAAJ,EAAA,MAAAK;EAAAL,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,QAAAU,MAAAV,EAAA,QAAAJ,OAAA;EANJe,KAAA,oBAAA,iBAAA,UAAA;GAAkCf,OAAAA;GAChCc,UAAAA;EAMF,CAAA;EAA4BV,EAAA,MAAAU;EAAAV,EAAA,MAAAJ;EAAAI,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,OAP5BW;AAO4B;AAIhC,IAAMC,mBAAmBzC,gBAAgB,OAAO,2BAA2B,kBAAkB;AAC7F,IAAM0C,mBAAmB1C,gBAAgB,OAAO,2BAA2B,kBAAkB;;AAQ7F,SAAA6C,gBAAAjB,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAH,EAAA,OAAAD,IAAA;EAAyB,CAAA,CAAAG,WAAA,GAAAC,SAAAJ;EAA6CC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAA;EAAAD,YAAAF,EAAA;EAAAG,QAAAH,EAAA;CAAA;CACpE,MAAAJ,QAAclB,oBAAoB;CAClC,MAAA,EAAAuC,QAAAC,gBAAAC,QAAAC,SAAiDxB;CACjD,MAAA,CAAAyB,OAAAC,YAA0BvD,MAAKwD,SAAUN,MAAM;CAC/C,MAAA,CAAAO,MAAAC,WAAwB1D,MAAKwD,SAAUN,MAAM;CAC7C,MAAA,CAAAS,MAAAC,WAAwB5D,MAAKwD,SAAUN,MAAM;CAI7C,IAAIO,SAASP,QAAM;EACjBQ,QAAQR,MAAM;EACd,IAAIA,WAAWS,MAAI;GACjBC,QAAQV,MAAM;GACdK,SAASL,MAAM;EAAC;CACjB;CACF,IAAAb;CAAA,IAAAJ,EAAA,OAAAJ,OAAA;EAEcQ,MAAAwB,SAAA;GACbD,QAAQC,IAAI;GACZhC,MAAKiC,UAAWD,IAAI;EAAC;EACtB5B,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAHD,MAAA8B,SAAe1B;CAGb,IAAAC;CAAA,IAAAL,EAAA,OAAA8B,UAAA9B,EAAA,OAAAqB,SAAArB,EAAA,OAAAkB,kBAAAlB,EAAA,OAAA0B,MAAA;EAGcrB,WAAA;GACd,IAAIgB,UAAUK,MAAI;GAClB,MAAAK,QAAcC,OAAMC,iBAAkBH,OAAOT,KAAK,GAAGH,cAAc;GAAE,aACxDc,OAAME,aAAcH,KAAK;EAAC;EAExC/B,EAAA,KAAA8B;EAAA9B,EAAA,KAAAqB;EAAArB,EAAA,KAAAkB;EAAAlB,EAAA,KAAA0B;EAAA1B,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,QAAAqB,SAAArB,EAAA,QAAAkB,kBAAAlB,EAAA,QAAA0B,MAAA;EAAEhB,KAAA;GAACW;GAAOK;GAAMR;EAAc;EAAClB,EAAA,MAAAqB;EAAArB,EAAA,MAAAkB;EAAAlB,EAAA,MAAA0B;EAAA1B,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CALhCjC,MAAKoE,UAAW9B,IAKbK,EAA6B;CAAC,IAAAC;CAAA,IAAAX,EAAA,QAAA8B,UAAA9B,EAAA,QAAAkB,gBAAA;EAElBP,MAAAyB,WAAA;GACbd,SAASM,MAAI;GACb,IAAI,CAACV,kBAAD,CAAoBU,QAAME,OAAOF,MAAI;EAAE;EAC5C5B,EAAA,MAAA8B;EAAA9B,EAAA,MAAAkB;EAAAlB,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAHD,MAAAqC,SAAe1B;CAGb,IAAA2B;CAAA,IAAAtC,EAAA,QAAAE,WAAA;EAIaoC,KAAAtE,GAAG,0BAA0BkC,SAAS;EAACF,EAAA,MAAAE;EAAAF,EAAA,MAAAsC;CAAA,OAAAA,KAAAtC,EAAA;CAAA,IAAAuC;CAAA,IAAAvC,EAAA,QAAAqC,UAAArC,EAAA,QAAAqB,SAAArB,EAAA,QAAAG,SAAAH,EAAA,QAAAsC,MAAAtC,EAAA,QAAAoB,KAAAoB,eAAAxC,EAAA,QAAAoB,KAAAH,QAAA;EADpDsB,KAAA,oBAAC,aAAD;GACa,WAAAD;GACC,cAAAlB,KAAIH;GACH,aAAAG,KAAIH;GACL,YAAAG,KAAIoB;GAAY,GACxBrC;GACGkB,OAAAA;GACQgB,eAAAA;EAAM,CAAA;EACrBrC,EAAA,MAAAqC;EAAArC,EAAA,MAAAqB;EAAArB,EAAA,MAAAG;EAAAH,EAAA,MAAAsC;EAAAtC,EAAA,MAAAoB,KAAAoB;EAAAxC,EAAA,MAAAoB,KAAAH;EAAAjB,EAAA,MAAAuC;CAAA,OAAAA,KAAAvC,EAAA;CAAA,OARFuC;AAQE;;AAKN,SAAAE,iBAAA1C,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAH,EAAA,OAAAD,IAAA;EAA0B,CAAA,CAAAG,WAAA,GAAAC,SAAAJ;EAA8DC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAA;EAAAD,YAAAF,EAAA;EAAAG,QAAAH,EAAA;CAAA;CACtF,MAAAJ,QAAclB,oBAAoB;CAClC,MAAA0C,OAAaxB,MAAKuB;CAAQ,IAAAf;CAAA,IAAAJ,EAAA,OAAAJ,MAAA8C,WAAA;EACTtC,KAAA,IAAIuC,IAAI/C,MAAK8C,SAAU;EAAC1C,EAAA,KAAAJ,MAAA8C;EAAA1C,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAzC,MAAA4C,WAAiBxC,GAAwByC;CAAM,IAAAxC;CAAA,IAAAL,EAAA,OAAAJ,MAAAU,WAAAN,EAAA,OAAAoB,MAAA;EAG1Cf,KAAAT,MAAKU,WAAY,oBAAC,SAAD;GAAmB,WAAA;GAAiC,OAAAc,KAAId;EAAQ,CAAA;EAAIN,EAAA,KAAAJ,MAAAU;EAAAN,EAAA,KAAAoB;EAAApB,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,OAAAE,WAAA;EACrEQ,KAAA1C,GAAG,2BAA2BkC,SAAS;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,QAAA4C,YAAA5C,EAAA,QAAAJ,MAAAkD,SAAA9C,EAAA,QAAAJ,MAAAmD,WAAA/C,EAAA,QAAAJ,MAAAoD,cAAAhD,EAAA,QAAAJ,MAAAqD,cAAAjD,EAAA,QAAAoB,MAAA;EAEtDT,KAAAf,MAAKoD,cAALJ,WACGxB,KAAIwB,SAAUA,QAKY,IAJ1BhD,MAAKmD,UAAL,OAEEnD,MAAKkD,UAAWlD,MAAKqD,aACnB7B,KAAI8B,cAAetD,MAAKkD,OAAQlD,MAAKqD,UACf,IAAtB7B,KAAI0B,MAAOlD,MAAKkD,KAAM;EAAC9C,EAAA,MAAA4C;EAAA5C,EAAA,MAAAJ,MAAAkD;EAAA9C,EAAA,MAAAJ,MAAAmD;EAAA/C,EAAA,MAAAJ,MAAAoD;EAAAhD,EAAA,MAAAJ,MAAAqD;EAAAjD,EAAA,MAAAoB;EAAApB,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAsC;CAAA,IAAAtC,EAAA,QAAAG,SAAAH,EAAA,QAAAU,MAAAV,EAAA,QAAAW,IAAA;EARjC2B,KAAA,oBAAA,QAAA;GAAiB,WAAA5B;GAAoD,aAAA;GAAQ,GAAKP;GAE/EQ,UAAAA;EAOI,CAAA;EAAAX,EAAA,MAAAG;EAAAH,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAsC;CAAA,OAAAA,KAAAtC,EAAA;CAAA,IAAAuC;CAAA,IAAAvC,EAAA,QAAAK,MAAAL,EAAA,QAAAsC,IAAA;EAXTC,KAAA,qBAAAiE,UAAA,EAAA,UAAA,CACGnG,IACDiC,EASO,EAAA,CAAA;EACNtC,EAAA,MAAAK;EAAAL,EAAA,MAAAsC;EAAAtC,EAAA,MAAAuC;CAAA,OAAAA,KAAAvC,EAAA;CAAA,OAZHuC;AAYG;;AAQP,SAAAa,oBAAArD,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAH,EAAA,OAAAD,IAAA;EAA6B,CAAA,CAAAG,WAAA,GAAAC,SAAAJ;EAAiDC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAA;EAAAD,YAAAF,EAAA;EAAAG,QAAAH,EAAA;CAAA;CAC5E,MAAAJ,QAAclB,oBAAoB;CAClC,IAAI,CAACkB,MAAKyD,aAAczD,MAAKkD,SAAU,KAAKlD,MAAK0D,OAAM,OAAS;CAAK,IAAAlD;CAAA,IAAAJ,EAAA,OAAAE,WAAA;EAGtDE,KAAApC,GAAG,8BAA8BkC,SAAS;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAG,SAAAH,EAAA,OAAAI,MAAAJ,EAAA,OAAAJ,MAAAkD,SAAA9C,EAAA,OAAAJ,MAAAuB,UAAAnB,EAAA,OAAAJ,MAAA2D,QAAAvD,EAAA,QAAAJ,MAAA4D,YAAAxD,EAAA,QAAAJ,MAAA6D,WAAAzD,EAAA,QAAAJ,MAAA8D,aAAA;EADxDrD,KAAA,oBAAC,YAAD;GACa,WAAAD;GACH,SAAA;GACA,QAAAR,MAAKuB;GAAO,GAChBhB;GACE,MAAAP,MAAK2D;GACD,UAAA3D,MAAK4D;GACR,OAAA5D,MAAKkD;GACE,cAAAlD,MAAK6D;GACD,kBAAA7D,MAAK8D;EAAY,CAAA;EACnC1D,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAJ,MAAAkD;EAAA9C,EAAA,KAAAJ,MAAAuB;EAAAnB,EAAA,KAAAJ,MAAA2D;EAAAvD,EAAA,MAAAJ,MAAA4D;EAAAxD,EAAA,MAAAJ,MAAA6D;EAAAzD,EAAA,MAAAJ,MAAA8D;EAAA1D,EAAA,MAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAVFK;AAUE;AAsCN,SAAAgE,mBAAAtE,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAA4D;CAAA,IAAAQ;CAAA,IAAAC;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAd;CAAA,IAAAe;CAAA,IAAAC;CAAA,IAAAzE;CAAA,IAAAC;CAAA,IAAAyE;CAAA,IAAAf;CAAA,IAAAgB;CAAA,IAAA/E,EAAA,OAAAD,IAAA;EAA+B,CAAA,CAAAuE,SAAAO,SAAAD,cAAAJ,QAAAC,WAAAM,aAAAL,cAAAH,OAAAO,YAAAjB,iBAAAC,aAAAC,SAAAG,aAAA9D,IAAA+D,YAAAC,MAAA/D,IAAAH,WAAA,GAAAyE,WAAA5E;EAkBXC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAA8D;EAAA9D,EAAA,KAAAsE;EAAAtE,EAAA,KAAAuE;EAAAvE,EAAA,KAAAmE;EAAAnE,EAAA,KAAAwE;EAAAxE,EAAA,KAAAyE;EAAAzE,EAAA,KAAA0E;EAAA1E,EAAA,KAAA2E;EAAA3E,EAAA,MAAA6D;EAAA7D,EAAA,MAAA4E;EAAA5E,EAAA,MAAA6E;EAAA7E,EAAA,MAAAI;EAAAJ,EAAA,MAAAK;EAAAL,EAAA,MAAA8E;EAAA9E,EAAA,MAAA+D;EAAA/D,EAAA,MAAA+E;CAAA,OAAA;EAAA7E,YAAAF,EAAA;EAAA8D,cAAA9D,EAAA;EAAAsE,UAAAtE,EAAA;EAAAuE,QAAAvE,EAAA;EAAAmE,aAAAnE,EAAA;EAAAwE,SAAAxE,EAAA;EAAAyE,YAAAzE,EAAA;EAAA0E,eAAA1E,EAAA;EAAA2E,UAAA3E,EAAA;EAAA6D,kBAAA7D,EAAA;EAAA4E,eAAA5E,EAAA;EAAA6E,UAAA7E,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAA8E,aAAA9E,EAAA;EAAA+D,UAAA/D,EAAA;EAAA+E,cAAA/E,EAAA;CAAA;CALlB,MAAAkE,cAAA9D,OAAAK,KAAAA,IAAA,OAAAL;CAEA,MAAAgE,OAAA/D,OAAAI,KAAAA,IAAA,QAAAJ;CAKoD,MAAAK,KAAAiE,QAAOtB,aAAP,CAAsB0B;CAAW,IAAApE;CAAA,IAAAX,EAAA,QAAA2E,WAAA3E,EAAA,QAAAU,IAAA;EAA1DC,KAAA;GAAA,GAAKgE;GAAOtB,WAAa3C;EAAkC;EAACV,EAAA,MAAA2E;EAAA3E,EAAA,MAAAU;EAAAV,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAvF,MAAAJ,QAAcX,aAAa0B,EAA4D;CAAE,IAAAJ;CAAA,IAAA+B;CAAA,IAAAtC,EAAA,QAAAJ,SAAAI,EAAA,QAAA+D,SAAA;EACzFxD,OAAaX,MAAKW,KAAKyE,IAAKC,KAAgB;EAC9B3C,KAAA,OAAOyB,YAAY,aAAaA,QAAQ;GAAAxD;GAAAmC,WAAmB9C,MAAK8C;GAAU9C;EAAQ,CAAW,IAA7FmE;EAA8F/D,EAAA,MAAAJ;EAAAI,EAAA,MAAA+D;EAAA/D,EAAA,MAAAO;EAAAP,EAAA,MAAAsC;CAAA,OAAA;EAAA/B,OAAAP,EAAA;EAAAsC,KAAAtC,EAAA;CAAA;CAA5G,MAAAkF,QAAc5C;CAGkD,MAAAC,KAAA6B,QAAA3D,KAAAA;CAAiB,IAAA0E;CAAA,IAAAnF,EAAA,QAAA8D,eAAA9D,EAAA,QAAAmE,cAAAnE,EAAA,QAAAkF,SAAAlF,EAAA,QAAAO,QAAAP,EAAA,QAAAkE,eAAAlE,EAAA,QAAAJ,MAAAwF,WAAApF,EAAA,QAAAJ,MAAAuB,UAAAnB,EAAA,QAAAJ,MAAAyF,YAAA;EAC5EF,KAAAjB,eACC,qBAAC,kBAAD,EAAA,UAAA;GACGtE,MAAKyF,cAAe,oBAAC,iBAAD,EAAuBvB,MAAAA,YAAW,CAAA;GACvD,oBAAC,kBAAD,EAAwBA,MAAAA,YAAW,CAAA;GACnC,qBAAC,kBAAD,EAAA,UAAA;IACE,oBAAC,kBAAD,CAAiB,CAAA;IAChBoB;IACAf,cACC,qBAAC,QAAD;KACU,SAAA;KACH,MAAA;KACK,UAAA,CAAC5D,KAAIC;KACN,eAAMxB,YAAYY,MAAKwF,SAAU7E,MAAM4D,UAAU;KAJ5D,UAAA,CAME,oBAAC,cAAD,CAAa,CAAA,GACZvE,MAAKuB,OAAOmE,MAPR;;GAJM,EAAA,CAAA;EAHF,EAAA,CAAA;EAmBlBtF,EAAA,MAAA8D;EAAA9D,EAAA,MAAAmE;EAAAnE,EAAA,MAAAkF;EAAAlF,EAAA,MAAAO;EAAAP,EAAA,MAAAkE;EAAAlE,EAAA,MAAAJ,MAAAwF;EAAApF,EAAA,MAAAJ,MAAAuB;EAAAnB,EAAA,MAAAJ,MAAAyF;EAAArF,EAAA,MAAAmF;CAAA,OAAAA,KAAAnF,EAAA;CAOY,MAAAuF,KAAAnB,OAAQK,aAAA,SAARA;CAAwC,IAAAe;CAAA,IAAAxF,EAAA,QAAAsE,WAAAtE,EAAA,QAAAuE,SAAAvE,EAAA,QAAAwE,UAAAxE,EAAA,QAAA0E,gBAAA1E,EAAA,QAAA4E,gBAAA5E,EAAA,QAAA6E,WAAA7E,EAAA,QAAAuF,MAAAvF,EAAA,QAAA8E,cAAA9E,EAAA,QAAA+E,aAAA;EANrDS,KAAA,oBAAC,kBAAD;GACWlB;GACAO;GACKD;GACNJ;GAEG,WAAAe;GACER;GACCL;GACPH;GACKO;EAAU,CAAA;EACtB9E,EAAA,MAAAsE;EAAAtE,EAAA,MAAAuE;EAAAvE,EAAA,MAAAwE;EAAAxE,EAAA,MAAA0E;EAAA1E,EAAA,MAAA4E;EAAA5E,EAAA,MAAA6E;EAAA7E,EAAA,MAAAuF;EAAAvF,EAAA,MAAA8E;EAAA9E,EAAA,MAAA+E;EAAA/E,EAAA,MAAAwF;CAAA,OAAAA,KAAAxF,EAAA;CAAA,IAAAyF;CAAA,IAAAzF,EAAA,QAAA6D,iBAAA;EACF4B,MAAA,oBAAC,qBAAD,EAAsC5B,gBAAe,CAAA;EAAI7D,EAAA,MAAA6D;EAAA7D,EAAA,MAAAyF;CAAA,OAAAA,MAAAzF,EAAA;CAAA,IAAA0F;CAAA,IAAA1F,EAAA,QAAAE,aAAAF,EAAA,QAAAyF,OAAAzF,EAAA,QAAAuC,MAAAvC,EAAA,QAAAmF,MAAAnF,EAAA,QAAAwF,MAAAxF,EAAA,QAAAJ,OAAA;EAlC3D8F,MAAA,qBAAC,eAAD;GAAsB9F;GAAkBM;GAAsB,aAAAqC;GAA9D,UAAA;IACG4C;IAqBDK;IAYAC;GAlCY;;EAmCEzF,EAAA,MAAAE;EAAAF,EAAA,MAAAyF;EAAAzF,EAAA,MAAAuC;EAAAvC,EAAA,MAAAmF;EAAAnF,EAAA,MAAAwF;EAAAxF,EAAA,MAAAJ;EAAAI,EAAA,MAAA0F;CAAA,OAAAA,MAAA1F,EAAA;CAAA,OAnChB0F;AAmCgB;;;;;;;;;;;;;AA5DpB,SAAAT,MAAAlF,IAAA;CAqB+B,MAAA,EAAA4F,QAAA5F;CAAO,OAAK4F;AAAG;AAuD9C,IAAaC,YAAYC,OAAOC,OAAOzB,oBAAoB;CACzD0B,MAAMjG;CACNkG,SAASpF;CACTqF,QAAQjF;CACRkF,SAASpH;CACTqH,QAAQtH;CACRuH,SAASvF;CACTwF,SAAS5D;CACT6D,SAAS3H;CACTP,YAAYgF;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":["React","cx","DownloadIcon","FilterIcon","NARROW_SCREEN","useMediaQuery","Button","Drawer","createPrimitive","Pagination","PaginationProps","SearchInput","SearchInputProps","Spinner","DataTableContext","useDataTableContext","DataTableContent","DataTableContentProps","DataTableFilter","DataTableFilters","DataTableControlSize","downloadCsv","useDataTable","DataTableInstance","UseDataTableOptions","DataTableVirtualOptions","DataTableFilterProps","DataTableFiltersProps","DataTableRootProps","HTMLAttributes","HTMLDivElement","ref","Ref","table","T","DataTableRoot","t0","$","_c","className","props","t1","t2","loading","rows","length","undefined","t3","t4","DataTableToolbar","DataTableActions","DataTableSearchProps","Omit","DataTableSearch","search","searchDebounce","labels","text","draft","setDraft","useState","seen","setSeen","sent","setSent","next","setSearch","commit","timer","window","setTimeout","clearTimeout","useEffect","next_0","change","t5","t6","clearSearch","DataTableSummary","selection","Set","selected","size","count","pending","selectable","totalCount","filteredCount","DataTablePaginationProps","DataTablePagination","paginated","error","page","pageSize","setPage","setPageSize","DataTableFilterSheetProps","children","ReactNode","DataTableFilterSheet","open","setOpen","active","activeFilterCount","filters","close","Symbol","for","t7","t8","t9","clearFilters","t10","t11","showResults","t12","t13","t14","t15","t16","DataTableToolbarContext","DataTableProps","pageSizeOptions","controlSize","toolbar","context","showToolbar","exportName","fill","DataTableComponent","density","empty","layout","maxHeight","onEndReached","options","stickyFirstColumn","stickyHeader","striped","tableProps","virtualized","map","_temp","extra","narrow","columns","export","exportButton","searchable","row","DataTable","Object","assign","Root","Toolbar","Search","Filters","Filter","FilterSheet","Actions","Summary","Content","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { DownloadIcon, FilterIcon } from '../../icons';\nimport { NARROW_SCREEN, useMediaQuery } from '../../utils/media';\nimport { Button } from '../button/Button';\nimport { Drawer } from '../drawer/Drawer';\nimport { createPrimitive } from '../../utils/primitive';\nimport { Pagination, type PaginationProps } from '../pagination/Pagination';\nimport { SearchInput, type SearchInputProps } from '../search-input/SearchInput';\nimport { Spinner } from '../spinner/Spinner';\nimport { DataTableContext, useDataTableContext } from './context';\nimport { DataTableContent, type DataTableContentProps } from './DataTableContent';\nimport { DataTableFilter, DataTableFilters, type DataTableControlSize } from './DataTableFilters';\nimport { downloadCsv } from './export';\nimport { useDataTable } from './useDataTable';\nimport type { DataTableInstance, UseDataTableOptions } from './types';\n\nexport { useDataTableContext } from './context';\nexport type { DataTableContentProps, DataTableVirtualOptions } from './DataTableContent';\nexport type { DataTableControlSize, DataTableFilterProps, DataTableFiltersProps } from './DataTableFilters';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface DataTableRootProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n /** Ref to the table's root element. */\n ref?: React.Ref<HTMLDivElement>;\n /** The table from `useDataTable`. */\n table: DataTableInstance<T>;\n}\n\n/** Provides a table to the parts inside it. */\nfunction DataTableRoot<T>({ table, className, ref, ...props }: DataTableRootProps<T>) {\n return (\n <DataTableContext.Provider value={table}>\n <div\n ref={ref}\n className={cx('oui-data-table', className)}\n data-loading={table.loading ? (table.rows.length ? 'refresh' : 'initial') : undefined}\n {...props}\n />\n </DataTableContext.Provider>\n );\n}\n\nconst DataTableToolbar = createPrimitive('div', 'oui-data-table__toolbar', 'DataTableToolbar');\nconst DataTableActions = createPrimitive('div', 'oui-data-table__actions', 'DataTableActions');\n\nexport interface DataTableSearchProps extends Omit<SearchInputProps, 'value' | 'defaultValue' | 'onValueChange' | 'className'> {\n /** Class name for the search box. */\n className?: string;\n}\n\n/** Search box of the table. Typing applies after the table's `searchDebounce`; clearing applies at once. */\nfunction DataTableSearch({ className, ...props }: DataTableSearchProps) {\n const table = useDataTableContext();\n const { search, searchDebounce, labels: text } = table;\n const [draft, setDraft] = React.useState(search);\n const [seen, setSeen] = React.useState(search);\n const [sent, setSent] = React.useState(search);\n\n // Follow a search set from outside (reset, controlled state), but not the echo\n // of our own change: it can arrive after the user has typed further.\n if (seen !== search) {\n setSeen(search);\n if (search !== sent) {\n setSent(search);\n setDraft(search);\n }\n }\n\n const commit = (next: string) => {\n setSent(next);\n table.setSearch(next);\n };\n\n // Typed text that has not been applied yet goes out once the typing pauses.\n React.useEffect(() => {\n if (draft === sent) return;\n const timer = window.setTimeout(() => commit(draft), searchDebounce);\n return () => window.clearTimeout(timer);\n // `commit` is new on every render; only a change of the text restarts the wait.\n }, [draft, sent, searchDebounce]);\n\n const change = (next: string) => {\n setDraft(next);\n if (!searchDebounce || !next) commit(next);\n };\n\n return (\n <SearchInput\n className={cx('oui-data-table__search', className)}\n aria-label={text.search}\n placeholder={text.search}\n clearLabel={text.clearSearch}\n {...props}\n value={draft}\n onValueChange={change}\n />\n );\n}\n\n/** Row count, or the number of selected rows, with a spinner while loading. */\nfunction DataTableSummary({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n const table = useDataTableContext();\n const text = table.labels;\n const selected = new Set(table.selection).size;\n return (\n <>\n {table.loading && <Spinner className=\"oui-data-table__spinner\" label={text.loading} />}\n <span className={cx('oui-data-table__summary', className)} aria-live=\"polite\" {...props}>\n {/* No count before the first rows arrive: \"0 records\" would be wrong. */}\n {table.selectable && selected\n ? text.selected(selected)\n : table.pending\n ? null\n : table.count !== table.totalCount\n ? text.filteredCount(table.count, table.totalCount)\n : text.count(table.count)}\n </span>\n </>\n );\n}\n\nexport interface DataTablePaginationProps\n extends Omit<PaginationProps, 'page' | 'pageSize' | 'total' | 'onPageChange' | 'onPageSizeChange'> {}\n\n/** Page navigation of the table. Renders nothing when there are no rows, or the table is not paginated. */\nfunction DataTablePagination({ className, ...props }: DataTablePaginationProps) {\n const table = useDataTableContext();\n if (!table.paginated || table.count <= 0 || table.error) return null;\n return (\n <Pagination\n className={cx('oui-data-table__pagination', className)}\n variant=\"simple\"\n labels={table.labels}\n {...props}\n page={table.page}\n pageSize={table.pageSize}\n total={table.count}\n onPageChange={table.setPage}\n onPageSizeChange={table.setPageSize}\n />\n );\n}\n\nexport interface DataTableFilterSheetProps {\n /** Height of the filter button; the filters in the sheet are full size. */\n size?: DataTableControlSize;\n /** Extra content placed under the filters (add, bulk actions…). */\n children?: React.ReactNode;\n}\n\n/**\n * The phone toolbar's \"Filters (n)\" button, which opens a bottom sheet holding every filter and the\n * `children`. Filters apply as they change. The footer keeps a clear button (disabled while no filter\n * is set, so nothing moves when one is) and a button that closes the sheet on the result count.\n */\nfunction DataTableFilterSheet({ size = 'md', children }: DataTableFilterSheetProps) {\n const table = useDataTableContext();\n const text = table.labels;\n const [open, setOpen] = React.useState(false);\n const active = table.activeFilterCount;\n if (!table.filters.length && !children) return null;\n return (\n <Drawer\n side=\"bottom\"\n className=\"oui-data-table__sheet\"\n title={text.filters}\n closeLabel={text.close}\n open={open}\n onOpenChange={setOpen}\n trigger={\n <Button\n variant=\"secondary\"\n shape=\"rounded\"\n size={size}\n className=\"oui-data-table__sheet-trigger\"\n data-active={active ? '' : undefined}\n >\n <FilterIcon />\n {active ? `${text.filters} (${active})` : text.filters}\n </Button>\n }\n footer={\n <>\n <Button variant=\"secondary\" disabled={!active} onClick={table.clearFilters}>\n {text.clearFilters}\n </Button>\n <Button className=\"oui-data-table__sheet-done\" onClick={() => setOpen(false)}>\n {text.showResults(table.count)}\n </Button>\n </>\n }\n >\n <DataTableFilters stacked />\n {children && <div className=\"oui-data-table__sheet-extra\">{children}</div>}\n </Drawer>\n );\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface DataTableToolbarContext<T> {\n /** Rows after filters, search and sorting, across all pages. In server mode: the current page. */\n rows: T[];\n /** Ids of the selected rows. */\n selection: string[];\n /** The whole table: filter values, sort, setters. */\n table: DataTableInstance<T>;\n}\n\nexport interface DataTableProps<T> extends UseDataTableOptions<T>, DataTableContentProps {\n /** Choices in the rows-per-page select. */\n pageSizeOptions?: number[];\n /** Size of the search box and the filters. */\n controlSize?: DataTableControlSize;\n /** Extra toolbar content (add, bulk actions…). A function receives the processed rows. */\n toolbar?: React.ReactNode | ((context: DataTableToolbarContext<T>) => React.ReactNode);\n /**\n * `false` drops the search, filters, summary and toolbar content: rows only, for short tables under\n * their own heading. Below 640px the toolbar is the search and a \"Filters (n)\" button, whose bottom\n * sheet holds the filters and the `toolbar` content, over a line with the row count and export.\n */\n showToolbar?: boolean;\n /**\n * Adds an export button that saves the filtered, sorted rows as `<exportName>.csv`.\n * Columns choose their text with `exportValue`.\n */\n exportName?: string;\n /**\n * Grow to fill the height of a flex column container (a page, or a `Card`\n * whose content holds the table); only the rows scroll. `maxHeight` still caps it.\n */\n fill?: boolean;\n /** Class name for the table's root element. */\n className?: string;\n}\n\nfunction DataTableComponent<T>({\n density,\n striped,\n stickyHeader,\n layout,\n maxHeight,\n virtualized,\n onEndReached,\n stickyFirstColumn,\n empty,\n tableProps,\n pageSizeOptions,\n controlSize,\n toolbar,\n showToolbar = true,\n exportName,\n fill = false,\n className,\n ...options\n}: DataTableProps<T>) {\n // A virtualized table shows all its rows in one scrolling list, unless pages are asked for.\n const table = useDataTable({ ...options, paginated: options.paginated ?? !virtualized });\n const rows = table.rows.map(({ row }) => row);\n const extra = typeof toolbar === 'function' ? toolbar({ rows, selection: table.selection, table }) : toolbar;\n const narrow = useMediaQuery(NARROW_SCREEN);\n\n const exportButton = exportName && (\n <Button variant=\"secondary\" size=\"sm\" disabled={!rows.length} onClick={() => downloadCsv(table.columns, rows, exportName)}>\n <DownloadIcon />\n {table.labels.export}\n </Button>\n );\n\n return (\n <DataTableRoot table={table} className={className} data-fill={fill || undefined}>\n {showToolbar &&\n (narrow ? (\n <DataTableToolbar data-layout=\"narrow\">\n <div className=\"oui-data-table__toolbar-row\">\n {table.searchable && <DataTableSearch size={controlSize} />}\n <DataTableFilterSheet size={controlSize}>{extra}</DataTableFilterSheet>\n </div>\n <DataTableActions>\n <DataTableSummary />\n {exportButton}\n </DataTableActions>\n </DataTableToolbar>\n ) : (\n <DataTableToolbar>\n {table.searchable && <DataTableSearch size={controlSize} />}\n <DataTableFilters size={controlSize} />\n <DataTableActions>\n <DataTableSummary />\n {extra}\n {exportButton}\n </DataTableActions>\n </DataTableToolbar>\n ))}\n <DataTableContent\n density={density}\n striped={striped}\n stickyHeader={stickyHeader}\n layout={layout}\n // Filling, the rows scroll inside whatever height the table is given.\n maxHeight={fill ? (maxHeight ?? 'none') : maxHeight}\n virtualized={virtualized}\n onEndReached={onEndReached}\n stickyFirstColumn={stickyFirstColumn}\n empty={empty}\n tableProps={tableProps}\n />\n <DataTablePagination pageSizeOptions={pageSizeOptions} />\n </DataTableRoot>\n );\n}\n\n/**\n * `<DataTable data={…} columns={…} />` renders a complete table with search,\n * filters, sorting, pagination, row selection, row actions and inline editing;\n * columns declare what they take part in. Every piece of state works\n * uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` /\n * `selection`), and with `mode=\"server\"` the same state drives an API.\n *\n * For another layout, create the table with `useDataTable` and compose the\n * parts: `DataTable.Root`, `DataTable.Toolbar`, `DataTable.Search`,\n * `DataTable.Filters`, `DataTable.Filter`, `DataTable.FilterSheet` (the\n * phone filter button and sheet), `DataTable.Actions`, `DataTable.Summary`,\n * `DataTable.Content`, `DataTable.Pagination`.\n *\n * On phones (below 640px) columns with `priority: 'low'` are hidden, and\n * `stickyFirstColumn` keeps each row's name in view while the rest scrolls.\n */\nexport const DataTable = Object.assign(DataTableComponent, {\n Root: DataTableRoot,\n Toolbar: DataTableToolbar,\n Search: DataTableSearch,\n Filters: DataTableFilters,\n Filter: DataTableFilter,\n FilterSheet: DataTableFilterSheet,\n Actions: DataTableActions,\n Summary: DataTableSummary,\n Content: DataTableContent,\n Pagination: DataTablePagination,\n});\n"],"mappings":"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"}
|
|
@@ -27,10 +27,15 @@ export interface DataTableContentProps extends Pick<TableProps, 'density' | 'str
|
|
|
27
27
|
* and append the next rows. Needs `maxHeight` or `virtualized`.
|
|
28
28
|
*/
|
|
29
29
|
onEndReached?: () => void;
|
|
30
|
+
/**
|
|
31
|
+
* Keeps the first column (and the selection checkboxes) in place while the table scrolls sideways,
|
|
32
|
+
* so each row stays identifiable on narrow screens.
|
|
33
|
+
*/
|
|
34
|
+
stickyFirstColumn?: boolean;
|
|
30
35
|
/** Replaces the default empty state. */
|
|
31
36
|
empty?: React.ReactNode;
|
|
32
37
|
/** Props for the underlying `Table` (className, wrapperProps, aria-*). */
|
|
33
38
|
tableProps?: Omit<TableProps, 'children'>;
|
|
34
39
|
}
|
|
35
40
|
/** The table itself, with its loading, empty and error states. */
|
|
36
|
-
export declare function DataTableContent({ density, striped, stickyHeader, layout, maxHeight, virtualized, onEndReached, empty, tableProps, }: DataTableContentProps): React.JSX.Element;
|
|
41
|
+
export declare function DataTableContent({ density, striped, stickyHeader, layout, maxHeight, virtualized, onEndReached, stickyFirstColumn, empty, tableProps, }: DataTableContentProps): React.JSX.Element;
|