@galaxy-io/dls 1.2.1 → 1.2.2
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/styles.css +6 -7
- package/dist/table/InfiniteTable.js +118 -201
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -159,13 +159,12 @@
|
|
|
159
159
|
.s1we9pi1{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}
|
|
160
160
|
.ezfy353{position:absolute;top:0;left:0;right:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;pointer-events:none;}.ezfy353>*{pointer-events:auto;}
|
|
161
161
|
.l1pcw3m6{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:var(--l1pcw3m6-0);}.l1pcw3m6>td{border-bottom:0.5px solid var(--l1pcw3m6-1);background-color:var(--l1pcw3m6-2);}
|
|
162
|
-
.eo1carc{display:block;width:100%;
|
|
163
|
-
.e8l9d05{display:block;width:100%;
|
|
164
|
-
.e12m9dma{position:
|
|
165
|
-
.e1birhg7{
|
|
166
|
-
.e2tyxoq{
|
|
167
|
-
.ew9y6zt{
|
|
168
|
-
.e2jf90d{width:100%;box-sizing:border-box;overscroll-behavior:auto;}
|
|
162
|
+
.eo1carc{display:block;width:100%;min-width:var(--eo1carc-0);}
|
|
163
|
+
.e8l9d05{display:block;width:100%;padding:0;box-sizing:border-box;background-color:var(--e8l9d05-0);border-bottom:var(--e8l9d05-1);}
|
|
164
|
+
.e12m9dma{position:-webkit-sticky;position:sticky;left:0;width:var(--e12m9dma-0);display:-ms-grid;display:grid;-ms-grid-columns:44px minmax(0, 1fr);grid-template-columns:44px minmax(0, 1fr);box-sizing:border-box;}
|
|
165
|
+
.e1birhg7{background-color:var(--e1birhg7-0);border-right:0.5px solid var(--e1birhg7-1);min-width:44px;}
|
|
166
|
+
.e2tyxoq{min-width:0;width:100%;border-top:0.5px solid var(--e2tyxoq-0);}
|
|
167
|
+
.ew9y6zt{width:100%;box-sizing:border-box;overscroll-behavior:auto;}
|
|
169
168
|
.c1bx58xl{position:var(--c1bx58xl-0);z-index:var(--c1bx58xl-1);left:var(--c1bx58xl-2);right:var(--c1bx58xl-3);-webkit-flex:var(--c1bx58xl-4);-ms-flex:var(--c1bx58xl-4);flex:var(--c1bx58xl-4);padding:0 12px;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:var(--c1bx58xl-5);-ms-flex-pack:var(--c1bx58xl-5);-webkit-justify-content:var(--c1bx58xl-5);justify-content:var(--c1bx58xl-5);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:var(--c1bx58xl-6);background-color:var(--c1bx58xl-7);border-right:var(--c1bx58xl-8);border-left:var(--c1bx58xl-9);}.c1bx58xl:hover{background-color:var(--c1bx58xl-10);}
|
|
170
169
|
.sgqglvy{width:6px;height:6px;border-radius:50%;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;margin-right:6px;background-color:var(--sgqglvy-0);}
|
|
171
170
|
.ejxsxoj{position:absolute;inset:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 4px;z-index:1;background-color:var(--ejxsxoj-0);border:1.5px solid var(--ejxsxoj-1);border-radius:2px;}
|
|
@@ -6,7 +6,7 @@ import Button, { ButtonSize, ButtonVariant } from "../buttons/Button.js";
|
|
|
6
6
|
/* empty css */
|
|
7
7
|
import { styled } from "@linaria/react";
|
|
8
8
|
import { match } from "ts-pattern";
|
|
9
|
-
import React, {
|
|
9
|
+
import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
import { CaretDownIcon, CaretRightIcon, CaretUpDownIcon, SortAscendingIcon, SortDescendingIcon } from "@phosphor-icons/react";
|
|
12
12
|
import { flexRender, getCoreRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
|
|
@@ -293,72 +293,59 @@ var LoadingRowWrapper = withTheme(/*#__PURE__*/ styled("tr")({
|
|
|
293
293
|
"l1pcw3m6-2": [_exp37()]
|
|
294
294
|
}
|
|
295
295
|
}));
|
|
296
|
-
var _exp38 = () => ({ $
|
|
297
|
-
var
|
|
298
|
-
name: "
|
|
296
|
+
var _exp38 = () => ({ $minWidth }) => `${$minWidth}px`;
|
|
297
|
+
var ExpandedRow = /*#__PURE__*/ styled("tr")({
|
|
298
|
+
name: "ExpandedRow",
|
|
299
299
|
class: "eo1carc",
|
|
300
300
|
propsAsIs: false,
|
|
301
301
|
vars: { "eo1carc-0": [_exp38()] }
|
|
302
302
|
});
|
|
303
|
-
var
|
|
304
|
-
|
|
303
|
+
var _exp39 = () => ({ $variant, theme }) => getVariantBackgroundColor(theme, $variant);
|
|
304
|
+
var _exp40 = () => ({ $isLastRow, theme }) => $isLastRow ? "none" : `0.5px solid ${theme.color.border.primary}`;
|
|
305
|
+
var ExpandedRowCell = withTheme(/*#__PURE__*/ styled("td")({
|
|
306
|
+
name: "ExpandedRowCell",
|
|
305
307
|
class: "e8l9d05",
|
|
306
|
-
propsAsIs: false
|
|
307
|
-
}));
|
|
308
|
-
var ExpandedOverlayLayer = /*#__PURE__*/ styled("div")({
|
|
309
|
-
name: "ExpandedOverlayLayer",
|
|
310
|
-
class: "e12m9dma",
|
|
311
|
-
propsAsIs: false
|
|
312
|
-
});
|
|
313
|
-
var _exp39 = () => ({ $top }) => `${$top}px`;
|
|
314
|
-
var _exp40 = () => ({ $left }) => `${$left}px`;
|
|
315
|
-
var _exp41 = () => ({ $width }) => `${$width}px`;
|
|
316
|
-
var _exp43 = () => ({ $variant, theme }) => getVariantBackgroundColor(theme, $variant);
|
|
317
|
-
var _exp44 = () => ({ $isLastRow, theme }) => $isLastRow ? "none" : `0.5px solid ${theme.color.border.primary}`;
|
|
318
|
-
var ExpandedOverlay = withTheme(/*#__PURE__*/ styled("div")({
|
|
319
|
-
name: "ExpandedOverlay",
|
|
320
|
-
class: "e1birhg7",
|
|
321
308
|
propsAsIs: false,
|
|
322
309
|
vars: {
|
|
323
|
-
"
|
|
324
|
-
"
|
|
325
|
-
"e1birhg7-2": [_exp41()],
|
|
326
|
-
"e1birhg7-3": [_exp43()],
|
|
327
|
-
"e1birhg7-4": [_exp44()]
|
|
310
|
+
"e8l9d05-0": [_exp39()],
|
|
311
|
+
"e8l9d05-1": [_exp40()]
|
|
328
312
|
}
|
|
329
313
|
}));
|
|
330
|
-
var
|
|
331
|
-
var
|
|
314
|
+
var _exp41 = () => ({ $width }) => $width !== void 0 ? `${$width}px` : "100%";
|
|
315
|
+
var ExpandedViewport = /*#__PURE__*/ styled("div")({
|
|
316
|
+
name: "ExpandedViewport",
|
|
317
|
+
class: "e12m9dma",
|
|
318
|
+
propsAsIs: false,
|
|
319
|
+
vars: { "e12m9dma-0": [_exp41()] }
|
|
320
|
+
});
|
|
321
|
+
var _exp43 = () => ({ $variant, theme }) => getVariantBackgroundColor(theme, $variant);
|
|
322
|
+
var _exp44 = () => ({ theme }) => theme.color.border.primary;
|
|
332
323
|
var ExpandedGutter = withTheme(/*#__PURE__*/ styled("div")({
|
|
333
324
|
name: "ExpandedGutter",
|
|
334
|
-
class: "
|
|
325
|
+
class: "e1birhg7",
|
|
335
326
|
propsAsIs: false,
|
|
336
327
|
vars: {
|
|
337
|
-
"
|
|
338
|
-
"
|
|
328
|
+
"e1birhg7-0": [_exp43()],
|
|
329
|
+
"e1birhg7-1": [_exp44()]
|
|
339
330
|
}
|
|
340
331
|
}));
|
|
341
|
-
var
|
|
332
|
+
var _exp46 = () => ({ theme }) => theme.color.border.primary;
|
|
342
333
|
var ExpandedBody = withTheme(/*#__PURE__*/ styled("div")({
|
|
343
334
|
name: "ExpandedBody",
|
|
344
|
-
class: "
|
|
335
|
+
class: "e2tyxoq",
|
|
345
336
|
propsAsIs: false,
|
|
346
|
-
vars: { "
|
|
337
|
+
vars: { "e2tyxoq-0": [_exp46()] }
|
|
347
338
|
}));
|
|
348
339
|
var ExpandedContent = /*#__PURE__*/ styled("div")({
|
|
349
340
|
name: "ExpandedContent",
|
|
350
|
-
class: "
|
|
341
|
+
class: "ew9y6zt",
|
|
351
342
|
propsAsIs: false
|
|
352
343
|
});
|
|
353
344
|
function InfiniteTable(props) {
|
|
354
345
|
const { columns, data, getRowId, height, width, fillWidth, fillHeight, density = "MEDIUM", variant = "PRIMARY", hasNextPage, isFetchingNextPage, fetchNextPage, enableRowSelection, enableMultiRowSelection, rowSelection, onRowSelectionChange, enableSorting = false, enableMultiSort = false, sorting, onSortingChange, manualSorting = false, isLoading = false, isError = false, loadingRowCount = 5, contentWhenEmpty, contentWhenError, noHeader = false, noLastRowBorder = false, noLastRowPadding = false, onRowClick, onRowDoubleClick, onRowExpand, onTableReady } = props;
|
|
355
|
-
const outerContainerRef = useRef(null);
|
|
356
346
|
const scrollContainerRef = useRef(null);
|
|
357
|
-
const expandedOverlayRef = useRef(null);
|
|
358
|
-
const queueWheelScrollRef = useRef(null);
|
|
359
|
-
const syncExpandedOverlayLayoutRafRef = useRef(null);
|
|
360
347
|
const [expandedRowId, setExpandedRowId] = useState(null);
|
|
361
|
-
const [
|
|
348
|
+
const [scrollContainerClientWidth, setScrollContainerClientWidth] = useState(null);
|
|
362
349
|
const resolvedColumns = useMemo(() => {
|
|
363
350
|
if (!onRowExpand) return columns;
|
|
364
351
|
return [{
|
|
@@ -410,6 +397,7 @@ function InfiniteTable(props) {
|
|
|
410
397
|
});
|
|
411
398
|
return offsets;
|
|
412
399
|
}, [resolvedColumns]);
|
|
400
|
+
const totalColumnMinWidth = useMemo(() => resolvedColumns.reduce((sum, col) => sum + (col.size ?? col.minSize ?? 0), 0), [resolvedColumns]);
|
|
413
401
|
const table = useReactTable({
|
|
414
402
|
data,
|
|
415
403
|
columns: useMemo(() => resolvedColumns.map((col) => ({
|
|
@@ -473,8 +461,6 @@ function InfiniteTable(props) {
|
|
|
473
461
|
onTableReady?.(table);
|
|
474
462
|
}, [table, onTableReady]);
|
|
475
463
|
const { rows } = table.getRowModel();
|
|
476
|
-
const expandedRow = expandedRowId ? rows.find((row) => row.id === expandedRowId) : void 0;
|
|
477
|
-
const isExpandedRowLast = expandedRow ? rows[rows.length - 1]?.id === expandedRow.id : false;
|
|
478
464
|
useEffect(() => {
|
|
479
465
|
if (!onRowExpand && expandedRowId !== null) setExpandedRowId(null);
|
|
480
466
|
}, [expandedRowId, onRowExpand]);
|
|
@@ -482,74 +468,21 @@ function InfiniteTable(props) {
|
|
|
482
468
|
if (expandedRowId === null) return;
|
|
483
469
|
if (!rows.some((row) => row.id === expandedRowId)) setExpandedRowId(null);
|
|
484
470
|
}, [expandedRowId, rows]);
|
|
485
|
-
const syncExpandedOverlayLayout = useCallback(() => {
|
|
486
|
-
if (!expandedRow || !onRowExpand) {
|
|
487
|
-
setExpandedOverlayLayout(null);
|
|
488
|
-
return;
|
|
489
|
-
}
|
|
490
|
-
const outerContainer = outerContainerRef.current;
|
|
491
|
-
const scrollContainer = scrollContainerRef.current;
|
|
492
|
-
const overlayElement = expandedOverlayRef.current;
|
|
493
|
-
if (!outerContainer || !scrollContainer || !overlayElement) return;
|
|
494
|
-
const expandedRowAnchor = scrollContainer.querySelector("[data-gx-expanded-row-anchor=\"true\"]");
|
|
495
|
-
if (!expandedRowAnchor) return;
|
|
496
|
-
const outerRect = outerContainer.getBoundingClientRect();
|
|
497
|
-
const scrollRect = scrollContainer.getBoundingClientRect();
|
|
498
|
-
const rowRect = expandedRowAnchor.getBoundingClientRect();
|
|
499
|
-
const overlayRect = overlayElement.getBoundingClientRect();
|
|
500
|
-
const nextLayout = {
|
|
501
|
-
top: rowRect.bottom - outerRect.top,
|
|
502
|
-
left: scrollRect.left - outerRect.left,
|
|
503
|
-
width: scrollContainer.clientWidth,
|
|
504
|
-
height: overlayRect.height
|
|
505
|
-
};
|
|
506
|
-
setExpandedOverlayLayout((currentLayout) => {
|
|
507
|
-
if (currentLayout && currentLayout.top === nextLayout.top && currentLayout.left === nextLayout.left && currentLayout.width === nextLayout.width && currentLayout.height === nextLayout.height) return currentLayout;
|
|
508
|
-
return nextLayout;
|
|
509
|
-
});
|
|
510
|
-
}, [expandedRow, onRowExpand]);
|
|
511
|
-
const scheduleSyncExpandedOverlayLayout = useCallback(() => {
|
|
512
|
-
if (syncExpandedOverlayLayoutRafRef.current !== null) return;
|
|
513
|
-
syncExpandedOverlayLayoutRafRef.current = requestAnimationFrame(() => {
|
|
514
|
-
syncExpandedOverlayLayoutRafRef.current = null;
|
|
515
|
-
syncExpandedOverlayLayout();
|
|
516
|
-
});
|
|
517
|
-
}, [syncExpandedOverlayLayout]);
|
|
518
471
|
useLayoutEffect(() => {
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
syncExpandedOverlayLayoutRafRef.current = null;
|
|
524
|
-
}
|
|
525
|
-
};
|
|
526
|
-
}, [syncExpandedOverlayLayout]);
|
|
527
|
-
useEffect(() => {
|
|
528
|
-
if (!expandedRow || !onRowExpand) return;
|
|
529
|
-
const scrollContainer = scrollContainerRef.current;
|
|
530
|
-
const overlayElement = expandedOverlayRef.current;
|
|
531
|
-
if (!scrollContainer || !overlayElement) return;
|
|
532
|
-
scrollContainer.addEventListener("scroll", scheduleSyncExpandedOverlayLayout, { passive: true });
|
|
533
|
-
window.addEventListener("resize", scheduleSyncExpandedOverlayLayout);
|
|
534
|
-
if (typeof ResizeObserver === "undefined") return () => {
|
|
535
|
-
scrollContainer.removeEventListener("scroll", scheduleSyncExpandedOverlayLayout);
|
|
536
|
-
window.removeEventListener("resize", scheduleSyncExpandedOverlayLayout);
|
|
537
|
-
};
|
|
538
|
-
const resizeObserver = new ResizeObserver(() => {
|
|
539
|
-
scheduleSyncExpandedOverlayLayout();
|
|
540
|
-
});
|
|
541
|
-
resizeObserver.observe(scrollContainer);
|
|
542
|
-
resizeObserver.observe(overlayElement);
|
|
543
|
-
return () => {
|
|
544
|
-
scrollContainer.removeEventListener("scroll", scheduleSyncExpandedOverlayLayout);
|
|
545
|
-
window.removeEventListener("resize", scheduleSyncExpandedOverlayLayout);
|
|
546
|
-
resizeObserver.disconnect();
|
|
472
|
+
const container = scrollContainerRef.current;
|
|
473
|
+
if (!container) return;
|
|
474
|
+
const measure = () => {
|
|
475
|
+
setScrollContainerClientWidth((currentWidth) => currentWidth === container.clientWidth ? currentWidth : container.clientWidth);
|
|
547
476
|
};
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
477
|
+
measure();
|
|
478
|
+
if (typeof ResizeObserver === "undefined") {
|
|
479
|
+
window.addEventListener("resize", measure);
|
|
480
|
+
return () => window.removeEventListener("resize", measure);
|
|
481
|
+
}
|
|
482
|
+
const resizeObserver = new ResizeObserver(measure);
|
|
483
|
+
resizeObserver.observe(container);
|
|
484
|
+
return () => resizeObserver.disconnect();
|
|
485
|
+
}, []);
|
|
553
486
|
useEffect(() => {
|
|
554
487
|
const container = scrollContainerRef.current;
|
|
555
488
|
if (!container || !fetchNextPage) return;
|
|
@@ -597,23 +530,15 @@ function InfiniteTable(props) {
|
|
|
597
530
|
}
|
|
598
531
|
return false;
|
|
599
532
|
};
|
|
600
|
-
queueWheelScrollRef.current = queueWheelScroll;
|
|
601
533
|
const onWheel = (e) => {
|
|
602
534
|
queueWheelScroll(e.deltaX, e.deltaY);
|
|
603
535
|
};
|
|
604
536
|
container.addEventListener("wheel", onWheel, { passive: true });
|
|
605
537
|
return () => {
|
|
606
|
-
queueWheelScrollRef.current = null;
|
|
607
538
|
container.removeEventListener("wheel", onWheel);
|
|
608
539
|
if (rafId !== null) cancelAnimationFrame(rafId);
|
|
609
540
|
};
|
|
610
541
|
}, [isFetchingNextPage]);
|
|
611
|
-
const handleExpandedOverlayWheel = useCallback((event) => {
|
|
612
|
-
if (queueWheelScrollRef.current?.(event.deltaX, event.deltaY) ?? false) {
|
|
613
|
-
event.preventDefault();
|
|
614
|
-
event.stopPropagation();
|
|
615
|
-
}
|
|
616
|
-
}, []);
|
|
617
542
|
const renderLoadingRows = () => {
|
|
618
543
|
return Array.from({ length: loadingRowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx(LoadingRowWrapper, {
|
|
619
544
|
$density: density,
|
|
@@ -635,98 +560,90 @@ function InfiniteTable(props) {
|
|
|
635
560
|
const showLoading = isLoading && data.length === 0;
|
|
636
561
|
const showError = isError && data.length === 0;
|
|
637
562
|
return /* @__PURE__ */ jsxs(TableOuterContainer, {
|
|
638
|
-
ref: outerContainerRef,
|
|
639
563
|
$width: width,
|
|
640
564
|
$height: height,
|
|
641
565
|
$fillWidth: fillWidth,
|
|
642
566
|
$fillHeight: fillHeight,
|
|
643
|
-
children: [
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
567
|
+
children: [/* @__PURE__ */ jsx(TableScrollContainer, {
|
|
568
|
+
ref: scrollContainerRef,
|
|
569
|
+
$noLastRowPadding: noLastRowPadding,
|
|
570
|
+
children: /* @__PURE__ */ jsxs(StyledTable, { children: [!noHeader && /* @__PURE__ */ jsx(TableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableHeaderRow, { children: headerGroup.headers.map((header) => {
|
|
571
|
+
const columnMeta = header.column.columnDef.meta;
|
|
572
|
+
const canSort = header.column.getCanSort();
|
|
573
|
+
return /* @__PURE__ */ jsx(TableHeaderCell, {
|
|
574
|
+
$width: header.column.columnDef.size,
|
|
575
|
+
$minWidth: header.column.columnDef.minSize,
|
|
576
|
+
$maxWidth: header.column.columnDef.maxSize,
|
|
577
|
+
$pin: columnMeta?.pin,
|
|
578
|
+
$pinnedOffset: pinnedOffsets.get(header.column.id),
|
|
579
|
+
$align: columnMeta?.align,
|
|
580
|
+
$isSortable: canSort,
|
|
581
|
+
$density: density,
|
|
582
|
+
$variant: variant,
|
|
583
|
+
$isExpandCell: header.column.id === EXPAND_COLUMN_ID,
|
|
584
|
+
onClick: canSort ? header.column.getToggleSortingHandler() : void 0,
|
|
585
|
+
children: /* @__PURE__ */ jsxs(HeaderContentWrapper, { children: [flexRender(header.column.columnDef.header, header.getContext()), canSort && /* @__PURE__ */ jsx(SortIconWrapper, { children: header.column.getIsSorted() === "asc" ? /* @__PURE__ */ jsx(Icon, {
|
|
586
|
+
component: SortAscendingIcon,
|
|
587
|
+
size: 12,
|
|
588
|
+
variant: IconVariant.TERTIARY
|
|
589
|
+
}) : header.column.getIsSorted() === "desc" ? /* @__PURE__ */ jsx(Icon, {
|
|
590
|
+
component: SortDescendingIcon,
|
|
591
|
+
size: 12,
|
|
592
|
+
variant: IconVariant.TERTIARY
|
|
593
|
+
}) : /* @__PURE__ */ jsx(Icon, {
|
|
594
|
+
component: CaretUpDownIcon,
|
|
595
|
+
size: 12,
|
|
596
|
+
variant: IconVariant.TERTIARY
|
|
597
|
+
}) })] })
|
|
598
|
+
}, header.id);
|
|
599
|
+
}) }, headerGroup.id)) }), /* @__PURE__ */ jsxs(TableBody, { children: [showLoading ? renderLoadingRows() : showError ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", {
|
|
600
|
+
colSpan: resolvedColumns.length,
|
|
601
|
+
children: typeof contentWhenError === "function" ? contentWhenError() : contentWhenError ?? /* @__PURE__ */ jsx(Text, {
|
|
602
|
+
variant: TextVariant.ERROR,
|
|
603
|
+
children: "Error loading data"
|
|
604
|
+
})
|
|
605
|
+
}) }) : rows.map((row, index) => {
|
|
606
|
+
const isSelected = row.getIsSelected();
|
|
607
|
+
const isExpanded = onRowExpand !== void 0 && row.id === expandedRowId;
|
|
608
|
+
const isLastRow = index === rows.length - 1;
|
|
609
|
+
return /* @__PURE__ */ jsxs(React.Fragment, { children: [/* @__PURE__ */ jsx(TableRow, {
|
|
610
|
+
$isClickable: !!onRowClick,
|
|
611
|
+
$isSelected: isSelected,
|
|
612
|
+
$density: density,
|
|
613
|
+
$variant: variant,
|
|
614
|
+
$isExpanded: isExpanded,
|
|
615
|
+
$isLastRow: noLastRowBorder && isLastRow && !isExpanded,
|
|
616
|
+
onClick: onRowClick ? (e) => onRowClick(row, e) : void 0,
|
|
617
|
+
onDoubleClick: onRowDoubleClick ? (e) => onRowDoubleClick(row, e) : void 0,
|
|
618
|
+
children: row.getVisibleCells().map((cell) => {
|
|
619
|
+
const columnMeta = cell.column.columnDef.meta;
|
|
620
|
+
return /* @__PURE__ */ jsx(TableDataCell, {
|
|
621
|
+
$width: cell.column.columnDef.size,
|
|
622
|
+
$minWidth: cell.column.columnDef.minSize,
|
|
623
|
+
$maxWidth: cell.column.columnDef.maxSize,
|
|
624
|
+
$pin: columnMeta?.pin,
|
|
625
|
+
$pinnedOffset: pinnedOffsets.get(cell.column.id),
|
|
626
|
+
$align: columnMeta?.align,
|
|
627
|
+
$density: density,
|
|
628
|
+
$variant: variant,
|
|
629
|
+
$isExpandCell: cell.column.id === EXPAND_COLUMN_ID,
|
|
630
|
+
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
631
|
+
}, cell.id);
|
|
681
632
|
})
|
|
682
|
-
})
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
return /* @__PURE__ */ jsxs(React.Fragment, { children: [/* @__PURE__ */ jsx(TableRow, {
|
|
687
|
-
"data-gx-expanded-row-anchor": isExpanded ? "true" : void 0,
|
|
688
|
-
$isClickable: !!onRowClick,
|
|
689
|
-
$isSelected: isSelected,
|
|
690
|
-
$density: density,
|
|
633
|
+
}), isExpanded && onRowExpand && /* @__PURE__ */ jsx(ExpandedRow, {
|
|
634
|
+
$minWidth: totalColumnMinWidth,
|
|
635
|
+
children: /* @__PURE__ */ jsx(ExpandedRowCell, {
|
|
636
|
+
colSpan: resolvedColumns.length,
|
|
691
637
|
$variant: variant,
|
|
692
|
-
$
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
children: row.getVisibleCells().map((cell) => {
|
|
697
|
-
const columnMeta = cell.column.columnDef.meta;
|
|
698
|
-
return /* @__PURE__ */ jsx(TableDataCell, {
|
|
699
|
-
$width: cell.column.columnDef.size,
|
|
700
|
-
$minWidth: cell.column.columnDef.minSize,
|
|
701
|
-
$maxWidth: cell.column.columnDef.maxSize,
|
|
702
|
-
$pin: columnMeta?.pin,
|
|
703
|
-
$pinnedOffset: pinnedOffsets.get(cell.column.id),
|
|
704
|
-
$align: columnMeta?.align,
|
|
705
|
-
$density: density,
|
|
706
|
-
$variant: variant,
|
|
707
|
-
$isExpandCell: cell.column.id === EXPAND_COLUMN_ID,
|
|
708
|
-
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
709
|
-
}, cell.id);
|
|
638
|
+
$isLastRow: noLastRowBorder && isLastRow,
|
|
639
|
+
children: /* @__PURE__ */ jsxs(ExpandedViewport, {
|
|
640
|
+
$width: scrollContainerClientWidth ?? void 0,
|
|
641
|
+
children: [/* @__PURE__ */ jsx(ExpandedGutter, { $variant: variant }), /* @__PURE__ */ jsx(ExpandedBody, { children: /* @__PURE__ */ jsx(ExpandedContent, { children: onRowExpand(row) }) })]
|
|
710
642
|
})
|
|
711
|
-
})
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
}), isFetchingNextPage && renderLoadingRows()] })] })
|
|
716
|
-
}),
|
|
717
|
-
expandedRow && onRowExpand && /* @__PURE__ */ jsx(ExpandedOverlayLayer, { children: /* @__PURE__ */ jsxs(ExpandedOverlay, {
|
|
718
|
-
ref: expandedOverlayRef,
|
|
719
|
-
$isLastRow: noLastRowBorder && isExpandedRowLast,
|
|
720
|
-
$left: expandedOverlayLayout?.left ?? 0,
|
|
721
|
-
$top: expandedOverlayLayout?.top ?? 0,
|
|
722
|
-
$width: expandedOverlayLayout?.width ?? scrollContainerRef.current?.clientWidth ?? 0,
|
|
723
|
-
$variant: variant,
|
|
724
|
-
onWheel: handleExpandedOverlayWheel,
|
|
725
|
-
style: { visibility: expandedOverlayLayout ? "visible" : "hidden" },
|
|
726
|
-
children: [/* @__PURE__ */ jsx(ExpandedGutter, { $variant: variant }), /* @__PURE__ */ jsx(ExpandedBody, { children: /* @__PURE__ */ jsx(ExpandedContent, { children: onRowExpand(expandedRow) }) })]
|
|
727
|
-
}) }),
|
|
728
|
-
isEmpty && contentWhenEmpty && /* @__PURE__ */ jsx(EmptyContentWrapper, { children: contentWhenEmpty })
|
|
729
|
-
]
|
|
643
|
+
})
|
|
644
|
+
})] }, row.id);
|
|
645
|
+
}), isFetchingNextPage && renderLoadingRows()] })] })
|
|
646
|
+
}), isEmpty && contentWhenEmpty && /* @__PURE__ */ jsx(EmptyContentWrapper, { children: contentWhenEmpty })]
|
|
730
647
|
});
|
|
731
648
|
}
|
|
732
649
|
//#endregion
|