@rio-cloud/rio-uikit 2.3.0-beta.1 → 2.3.0-beta.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/DayPicker.js +6 -2
- package/DayPicker.js.map +1 -1
- package/DayPickerCalendar.d.ts +2 -0
- package/DayPickerCalendar.js +5 -0
- package/DayPickerCalendar.js.map +1 -0
- package/DayPickerPrototype.d.ts +2 -0
- package/DayPickerPrototype.js +5 -0
- package/DayPickerPrototype.js.map +1 -0
- package/TableNext.d.ts +2 -0
- package/TableNext.js +23 -0
- package/TableNext.js.map +1 -0
- package/TableToolbar.js +3 -2
- package/TableToolbar.js.map +1 -1
- package/components/assetTree/Tree.js +13 -13
- package/components/charts/Area.d.ts +5 -3
- package/components/charts/Area.js +4 -3
- package/components/charts/Area.js.map +1 -1
- package/components/charts/AreaChart.js.map +1 -1
- package/components/charts/ComposedChart.js.map +1 -1
- package/components/clearableInput/ClearableInput.d.ts +30 -0
- package/components/clearableInput/ClearableInput.js +81 -78
- package/components/clearableInput/ClearableInput.js.map +1 -1
- package/components/datepicker/DayPicker.d.ts +4 -51
- package/components/datepicker/DayPicker.js +264 -256
- package/components/datepicker/DayPicker.js.map +1 -1
- package/components/datepicker/DayPickerCalendar.d.ts +4 -0
- package/components/datepicker/DayPickerCalendar.js +129 -0
- package/components/datepicker/DayPickerCalendar.js.map +1 -0
- package/components/datepicker/DayPickerDropdown.d.ts +18 -0
- package/components/datepicker/DayPickerDropdown.js +75 -0
- package/components/datepicker/DayPickerDropdown.js.map +1 -0
- package/components/datepicker/DayPickerDropdownFooter.d.ts +7 -0
- package/components/datepicker/DayPickerDropdownFooter.js +7 -0
- package/components/datepicker/DayPickerDropdownFooter.js.map +1 -0
- package/components/datepicker/DayPickerDropdownSidebar.d.ts +8 -0
- package/components/datepicker/DayPickerDropdownSidebar.js +7 -0
- package/components/datepicker/DayPickerDropdownSidebar.js.map +1 -0
- package/components/datepicker/DayPickerInput.d.ts +28 -0
- package/components/datepicker/DayPickerInput.js +65 -0
- package/components/datepicker/DayPickerInput.js.map +1 -0
- package/components/datepicker/DayPickerPrototype.d.ts +53 -0
- package/components/datepicker/DayPickerPrototype.js +285 -0
- package/components/datepicker/DayPickerPrototype.js.map +1 -0
- package/components/datepicker/dayPickerRangeSelectionUtils.d.ts +15 -0
- package/components/datepicker/dayPickerRangeSelectionUtils.js +31 -0
- package/components/datepicker/dayPickerRangeSelectionUtils.js.map +1 -0
- package/components/datepicker/dayPickerTypes.d.ts +517 -0
- package/components/datepicker/dayPickerTypes.js +7 -0
- package/components/datepicker/dayPickerTypes.js.map +1 -0
- package/components/datepicker/dayPickerUtils.d.ts +10 -0
- package/components/datepicker/dayPickerUtils.js +92 -0
- package/components/datepicker/dayPickerUtils.js.map +1 -0
- package/components/datepicker/useDayPickerInputState.d.ts +32 -0
- package/components/datepicker/useDayPickerInputState.js +85 -0
- package/components/datepicker/useDayPickerInputState.js.map +1 -0
- package/components/datepicker/useStackedDayPickerCalendars.d.ts +5 -0
- package/components/datepicker/useStackedDayPickerCalendars.js +39 -0
- package/components/datepicker/useStackedDayPickerCalendars.js.map +1 -0
- package/components/divider/Divider.js +6 -6
- package/components/dropdown/ButtonDropdown.d.ts +4 -0
- package/components/dropdown/ButtonDropdown.js +70 -68
- package/components/dropdown/ButtonDropdown.js.map +1 -1
- package/components/dropdown/DropdownToggleButton.d.ts +1 -0
- package/components/dropdown/DropdownToggleButton.js +17 -15
- package/components/dropdown/DropdownToggleButton.js.map +1 -1
- package/components/fade/FadeExpander.js +17 -20
- package/components/fade/FadeExpander.js.map +1 -1
- package/components/loadMore/LoadMoreProgress.js +6 -7
- package/components/map/components/Map.js +3 -3
- package/components/map/utils/rendering.js +5 -5
- package/components/popover/Popover.js +4 -4
- package/components/radiobutton/RadioCardGroup.js +3 -3
- package/components/rioglyph/RioglyphIconType.d.ts +1 -1
- package/components/selects/Multiselect.d.ts +6 -0
- package/components/selects/Multiselect.js +164 -150
- package/components/selects/Multiselect.js.map +1 -1
- package/components/selects/Select.js +39 -37
- package/components/selects/Select.js.map +1 -1
- package/components/table/Table.d.ts +27 -248
- package/components/table/Table.js +237 -214
- package/components/table/Table.js.map +1 -1
- package/components/table/Table.types.d.ts +293 -121
- package/components/table/TableBody.d.ts +65 -5
- package/components/table/TableBody.js +132 -2
- package/components/table/TableBody.js.map +1 -1
- package/components/table/TableCardsSorting.js +25 -32
- package/components/table/TableCardsSorting.js.map +1 -1
- package/components/table/TableColumn.d.ts +13 -5
- package/components/table/TableColumn.js +112 -2
- package/components/table/TableColumn.js.map +1 -1
- package/components/table/TableExpandedContentRow.d.ts +7 -7
- package/components/table/TableExpandedContentRow.js +107 -2
- package/components/table/TableExpandedContentRow.js.map +1 -1
- package/components/table/TableExpandedRow.d.ts +9 -4
- package/components/table/TableExpandedRow.js +147 -2
- package/components/table/TableExpandedRow.js.map +1 -1
- package/components/table/TableExpanderButton.js +13 -11
- package/components/table/TableExpanderButton.js.map +1 -1
- package/components/table/TableFooter.d.ts +10 -6
- package/components/table/TableFooter.js +49 -2
- package/components/table/TableFooter.js.map +1 -1
- package/components/table/TableGroupFooterRow.d.ts +7 -7
- package/components/table/TableGroupFooterRow.js +27 -2
- package/components/table/TableGroupFooterRow.js.map +1 -1
- package/components/table/TableGroupRow.d.ts +7 -7
- package/components/table/TableGroupRow.js +33 -2
- package/components/table/TableGroupRow.js.map +1 -1
- package/components/table/TableHeader.d.ts +9 -4
- package/components/table/TableHeader.js +104 -2
- package/components/table/TableHeader.js.map +1 -1
- package/components/table/TableHeaderColumn.d.ts +14 -8
- package/components/table/TableHeaderColumn.js +78 -2
- package/components/table/TableHeaderColumn.js.map +1 -1
- package/components/table/TableHeaderRow.d.ts +1 -1
- package/components/table/TableHeaderRow.js +11 -2
- package/components/table/TableHeaderRow.js.map +1 -1
- package/components/table/TableRow.d.ts +9 -4
- package/components/table/TableRow.js +108 -2
- package/components/table/TableRow.js.map +1 -1
- package/components/table/TableSpacerRow.d.ts +3 -2
- package/components/table/TableSpacerRow.js +26 -2
- package/components/table/TableSpacerRow.js.map +1 -1
- package/components/table/TableToolbar.d.ts +4 -23
- package/components/table/TableToolbar.js +39 -28
- package/components/table/TableToolbar.js.map +1 -1
- package/components/table/TableToolbarColumn.d.ts +31 -0
- package/components/table/TableToolbarColumn.js +33 -0
- package/components/table/TableToolbarColumn.js.map +1 -0
- package/components/table/TableViewToggles.d.ts +3 -3
- package/components/table/TableViewToggles.js.map +1 -1
- package/components/table/context/TableInteractionContext.d.ts +26 -0
- package/components/table/context/TableInteractionContext.js +7 -0
- package/components/table/context/TableInteractionContext.js.map +1 -0
- package/components/table/context/TableLayoutContext.d.ts +25 -0
- package/components/table/context/TableLayoutContext.js +7 -0
- package/components/table/context/TableLayoutContext.js.map +1 -0
- package/components/table/context/TableRenderConfigContext.d.ts +27 -0
- package/components/table/context/TableRenderConfigContext.js +7 -0
- package/components/table/context/TableRenderConfigContext.js.map +1 -0
- package/components/table/context/TableRenderContext.d.ts +85 -0
- package/components/table/context/TableRenderContext.js +7 -0
- package/components/table/context/TableRenderContext.js.map +1 -0
- package/components/table/context/TableStructureContext.d.ts +31 -0
- package/components/table/context/TableStructureContext.js +17 -0
- package/components/table/context/TableStructureContext.js.map +1 -0
- package/components/table/layout/columnSizing.d.ts +2 -2
- package/components/table/layout/columnSizing.js.map +1 -1
- package/components/table/layout/useDraggableColumns.d.ts +3 -3
- package/components/table/layout/useDraggableColumns.js +17 -17
- package/components/table/layout/useDraggableColumns.js.map +1 -1
- package/components/table/layout/useHorizontalSectionSync.d.ts +3 -1
- package/components/table/layout/useHorizontalSectionSync.js +32 -28
- package/components/table/layout/useHorizontalSectionSync.js.map +1 -1
- package/components/table/layout/useMeasuredColumnMaxWidths.d.ts +3 -3
- package/components/table/layout/useMeasuredColumnMaxWidths.js.map +1 -1
- package/components/table/layout/useResizableColumns.d.ts +5 -4
- package/components/table/layout/useResizableColumns.js +108 -67
- package/components/table/layout/useResizableColumns.js.map +1 -1
- package/components/table/layout/useTableBodyScrollBottom.d.ts +12 -0
- package/components/table/layout/useTableBodyScrollBottom.js +37 -0
- package/components/table/layout/useTableBodyScrollBottom.js.map +1 -0
- package/components/table/layout/useTableLayout.d.ts +17 -6
- package/components/table/layout/useTableLayout.js +41 -38
- package/components/table/layout/useTableLayout.js.map +1 -1
- package/components/table/layout/useTableVirtualization.d.ts +6 -6
- package/components/table/layout/useTableVirtualization.js +22 -22
- package/components/table/layout/useTableVirtualization.js.map +1 -1
- package/components/table/model/resolveRowMeta.d.ts +3 -2
- package/components/table/model/resolveRowMeta.js.map +1 -1
- package/components/table/model/resolveTableClassConfig.d.ts +2 -3
- package/components/table/model/resolveTableClassConfig.js.map +1 -1
- package/components/table/model/tableView.types.d.ts +41 -0
- package/components/table/native/TableSettingsListItem.js +1 -1
- package/components/table/native/TableSettingsListItem.js.map +1 -1
- package/components/table/render/body/TableBodyContent.d.ts +21 -0
- package/components/table/render/body/TableBodyContent.js +52 -0
- package/components/table/render/body/TableBodyContent.js.map +1 -0
- package/components/table/render/body/TableEmptyRow.js +2 -2
- package/components/table/render/body/TableEmptyRow.js.map +1 -1
- package/components/table/render/header/TableBatchDropdown.d.ts +5 -1
- package/components/table/render/header/TableBatchDropdown.js +17 -15
- package/components/table/render/header/TableBatchDropdown.js.map +1 -1
- package/components/table/render/header/TableColumnFilter.d.ts +2 -2
- package/components/table/render/header/TableColumnFilter.js +16 -14
- package/components/table/render/header/TableColumnFilter.js.map +1 -1
- package/components/table/render/header/TableDraggableHeaderCell.d.ts +2 -1
- package/components/table/render/header/TableDraggableHeaderCell.js +44 -34
- package/components/table/render/header/TableDraggableHeaderCell.js.map +1 -1
- package/components/table/render/header/TableHeader.types.d.ts +11 -9
- package/components/table/render/header/TableHeaderCellContent.d.ts +2 -1
- package/components/table/render/header/TableHeaderCellContent.js.map +1 -1
- package/components/table/render/header/TableHeaderCellResizeHandle.d.ts +2 -1
- package/components/table/render/header/TableHeaderCellResizeHandle.js +8 -8
- package/components/table/render/header/TableHeaderCellResizeHandle.js.map +1 -1
- package/components/table/render/header/TableHeaderDragOverlay.d.ts +5 -4
- package/components/table/render/header/TableHeaderDragOverlay.js.map +1 -1
- package/components/table/render/header/TableStaticHeaderCell.d.ts +2 -1
- package/components/table/render/header/TableStaticHeaderCell.js +34 -22
- package/components/table/render/header/TableStaticHeaderCell.js.map +1 -1
- package/components/table/render/header/resolveAriaSort.d.ts +2 -1
- package/components/table/render/header/resolveAriaSort.js.map +1 -1
- package/components/table/render/header/resolveHeaderCellClassName.d.ts +4 -2
- package/components/table/render/header/resolveHeaderCellClassName.js +11 -10
- package/components/table/render/header/resolveHeaderCellClassName.js.map +1 -1
- package/components/table/render/header/resolveHeaderCellStyle.d.ts +2 -1
- package/components/table/render/header/resolveHeaderCellStyle.js.map +1 -1
- package/components/table/runtime/shouldAnimateBodyRows.d.ts +17 -0
- package/components/table/runtime/shouldAnimateBodyRows.js +5 -0
- package/components/table/runtime/shouldAnimateBodyRows.js.map +1 -0
- package/components/table/runtime/useRenderDraftState.d.ts +14 -0
- package/components/table/runtime/useRenderDraftState.js +80 -0
- package/components/table/runtime/useRenderDraftState.js.map +1 -0
- package/components/table/runtime/useResolvedRenderColumns.d.ts +43 -0
- package/components/table/runtime/useResolvedRenderColumns.js +113 -0
- package/components/table/runtime/useResolvedRenderColumns.js.map +1 -0
- package/components/table/runtime/useResolvedRenderHeader.d.ts +27 -0
- package/components/table/runtime/useResolvedRenderHeader.js +67 -0
- package/components/table/runtime/useResolvedRenderHeader.js.map +1 -0
- package/components/table/selection/useInternalTableSelectionState.d.ts +17 -0
- package/components/table/selection/useInternalTableSelectionState.js +28 -0
- package/components/table/selection/useInternalTableSelectionState.js.map +1 -0
- package/components/table/selection/useTableSelection.d.ts +3 -3
- package/components/table/selection/useTableSelection.js.map +1 -1
- package/components/table/shared/getCellContentOverflowClassName.d.ts +3 -0
- package/components/table/shared/getCellContentOverflowClassName.js +18 -0
- package/components/table/shared/getCellContentOverflowClassName.js.map +1 -0
- package/components/table/shared/getInteractiveRowProps.d.ts +3 -2
- package/components/table/shared/getInteractiveRowProps.js.map +1 -1
- package/hooks/useUrlState.js +3 -3
- package/package.json +16 -17
- package/utils/analytics/createAnalyticsOverlayTooltip.js +57 -57
- package/utils/analytics/createAnalyticsOverlayTooltip.js.map +1 -1
- package/utils/analytics/useAnalyticsOverlayDom.js +3 -3
- package/utils/routeUtils.d.ts +5 -2
- package/utils/routeUtils.js +17 -17
- package/utils/routeUtils.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/components/table/TableCard.d.ts +0 -63
- package/components/table/TableCard.js +0 -150
- package/components/table/TableCard.js.map +0 -1
- package/components/table/model/buildTableViewModel.d.ts +0 -28
- package/components/table/model/buildTableViewModel.js +0 -221
- package/components/table/model/buildTableViewModel.js.map +0 -1
- package/components/table/model/resolveCellContent.d.ts +0 -2
- package/components/table/model/resolveCellContent.js +0 -5
- package/components/table/model/resolveCellContent.js.map +0 -1
- package/components/table/model/tableViewModel.types.d.ts +0 -153
- package/components/table/parse/parseBody.d.ts +0 -3
- package/components/table/parse/parseBody.js +0 -13
- package/components/table/parse/parseBody.js.map +0 -1
- package/components/table/parse/parseColumns.d.ts +0 -3
- package/components/table/parse/parseColumns.js +0 -81
- package/components/table/parse/parseColumns.js.map +0 -1
- package/components/table/parse/parseFooter.d.ts +0 -3
- package/components/table/parse/parseFooter.js +0 -39
- package/components/table/parse/parseFooter.js.map +0 -1
- package/components/table/parse/parseHeaders.d.ts +0 -4
- package/components/table/parse/parseHeaders.js +0 -89
- package/components/table/parse/parseHeaders.js.map +0 -1
- package/components/table/parse/parseRows.d.ts +0 -3
- package/components/table/parse/parseRows.js +0 -93
- package/components/table/parse/parseRows.js.map +0 -1
- package/components/table/parse/tableChildGuards.d.ts +0 -25
- package/components/table/parse/tableChildGuards.js +0 -29
- package/components/table/parse/tableChildGuards.js.map +0 -1
- package/components/table/render/body/TableBodyRow.d.ts +0 -16
- package/components/table/render/body/TableBodyRow.js +0 -84
- package/components/table/render/body/TableBodyRow.js.map +0 -1
- package/components/table/render/body/TableBodySection.d.ts +0 -20
- package/components/table/render/body/TableBodySection.js +0 -68
- package/components/table/render/body/TableBodySection.js.map +0 -1
- package/components/table/render/body/TableDataRow.d.ts +0 -15
- package/components/table/render/body/TableDataRow.js +0 -143
- package/components/table/render/body/TableDataRow.js.map +0 -1
- package/components/table/render/body/TableExpandedRow.d.ts +0 -8
- package/components/table/render/body/TableExpandedRow.js +0 -84
- package/components/table/render/body/TableExpandedRow.js.map +0 -1
- package/components/table/render/body/TableGroupRow.d.ts +0 -8
- package/components/table/render/body/TableGroupRow.js +0 -21
- package/components/table/render/body/TableGroupRow.js.map +0 -1
- package/components/table/render/body/TableSpacerRow.d.ts +0 -7
- package/components/table/render/body/TableSpacerRow.js +0 -15
- package/components/table/render/body/TableSpacerRow.js.map +0 -1
- package/components/table/render/footer/TableFooterCell.d.ts +0 -8
- package/components/table/render/footer/TableFooterCell.js +0 -31
- package/components/table/render/footer/TableFooterCell.js.map +0 -1
- package/components/table/render/footer/TableFooterSection.d.ts +0 -10
- package/components/table/render/footer/TableFooterSection.js +0 -28
- package/components/table/render/footer/TableFooterSection.js.map +0 -1
- package/components/table/render/header/TableHeaderSection.d.ts +0 -3
- package/components/table/render/header/TableHeaderSection.js +0 -104
- package/components/table/render/header/TableHeaderSection.js.map +0 -1
|
@@ -1,56 +1,59 @@
|
|
|
1
|
-
import { useMeasuredColumnMaxWidths as
|
|
2
|
-
import { MIN_COLUMN_WIDTH_PX as
|
|
3
|
-
import { toCssSize as
|
|
4
|
-
import { useHorizontalSectionSync as
|
|
5
|
-
import
|
|
6
|
-
const
|
|
1
|
+
import { useMeasuredColumnMaxWidths as N } from "./useMeasuredColumnMaxWidths.js";
|
|
2
|
+
import { MIN_COLUMN_WIDTH_PX as O } from "../tableSizing.constants.js";
|
|
3
|
+
import { toCssSize as l, getColumnTrack as R } from "./columnSizing.js";
|
|
4
|
+
import { useHorizontalSectionSync as L } from "./useHorizontalSectionSync.js";
|
|
5
|
+
import $ from "../../../hooks/useResizeObserver.js";
|
|
6
|
+
const h = 50, B = (r) => {
|
|
7
7
|
if (!r)
|
|
8
8
|
return;
|
|
9
|
-
const
|
|
10
|
-
if (
|
|
11
|
-
return Number(
|
|
12
|
-
},
|
|
13
|
-
const { bodyMaxHeight:
|
|
9
|
+
const a = r.trim().match(/^(-?\d+(?:\.\d+)?)px$/);
|
|
10
|
+
if (a)
|
|
11
|
+
return Number(a[1]);
|
|
12
|
+
}, j = (r) => {
|
|
13
|
+
const { bodyMaxHeight: a, cardsStyle: d, columns: n, hasFooterCells: p, rowSeparatorWidth: u, showSelectionColumn: i, style: b } = r, [c, , { inlineSize: f }] = $(), t = n.map((e, o) => ({
|
|
14
14
|
column: e,
|
|
15
15
|
columnIndex: o,
|
|
16
16
|
areaName: `table-col-${o + 1}`
|
|
17
|
-
})), s =
|
|
17
|
+
})), s = f ?? c.current?.clientWidth, W = (i ? h : 0) + n.reduce((e, o) => {
|
|
18
18
|
if (o.width === void 0)
|
|
19
|
-
return e +
|
|
20
|
-
const
|
|
21
|
-
return e + (
|
|
22
|
-
}, 0), m = s !== void 0 &&
|
|
23
|
-
enabled: !!
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
return e + O;
|
|
20
|
+
const H = B(l(o.width));
|
|
21
|
+
return e + (H ?? 0);
|
|
22
|
+
}, 0), m = s !== void 0 && W > s, S = s !== void 0 ? `${s}px` : "100%", { handleBodyScroll: w, hasHorizontalScrollOffset: x, tableFooterRowRef: C, tableHeadRowRef: M } = L({
|
|
23
|
+
enabled: !!a,
|
|
24
|
+
hasFooterCells: p
|
|
25
|
+
}), T = N({
|
|
26
|
+
columns: n,
|
|
26
27
|
enabled: m,
|
|
27
|
-
tableWrapperRef:
|
|
28
|
-
}),
|
|
29
|
-
i ? `${
|
|
30
|
-
...t.map(({ column: e }) => R(e,
|
|
31
|
-
].filter(Boolean).join(" ") : "minmax(0, 1fr)",
|
|
28
|
+
tableWrapperRef: c
|
|
29
|
+
}), g = t.length > 0 ? [
|
|
30
|
+
i ? `${h}px` : void 0,
|
|
31
|
+
...t.map(({ column: e }) => R(e, T[e.key]))
|
|
32
|
+
].filter(Boolean).join(" ") : "minmax(0, 1fr)", y = t.length > 0 ? `"${[
|
|
32
33
|
i ? "table-selection" : void 0,
|
|
33
34
|
...t.map(({ areaName: e }) => e)
|
|
34
|
-
].filter(Boolean).join(" ")}"` : "none",
|
|
35
|
-
...
|
|
36
|
-
"--table-columns":
|
|
37
|
-
"--table-areas":
|
|
38
|
-
"--table-cards-min":
|
|
39
|
-
"--table-cards-max":
|
|
40
|
-
"--table-column-count": String(
|
|
41
|
-
"--table-width":
|
|
35
|
+
].filter(Boolean).join(" ")}"` : "none", _ = l(d?.minWidth) ?? "280px", v = l(d?.maxWidth) ?? "1fr", z = {
|
|
36
|
+
...b ?? {},
|
|
37
|
+
"--table-columns": g,
|
|
38
|
+
"--table-areas": y,
|
|
39
|
+
"--table-cards-min": _,
|
|
40
|
+
"--table-cards-max": v,
|
|
41
|
+
"--table-column-count": String(n.length + (i ? 1 : 0)),
|
|
42
|
+
"--table-row-separator-width": l(u),
|
|
43
|
+
"--table-width": S
|
|
42
44
|
};
|
|
43
45
|
return {
|
|
44
46
|
columnsWithAreas: t,
|
|
45
|
-
handleBodyScroll:
|
|
47
|
+
handleBodyScroll: w,
|
|
48
|
+
hasHorizontalScrollOffset: x,
|
|
46
49
|
tableUseOverflow: m,
|
|
47
|
-
tableWrapperRef:
|
|
48
|
-
tableFooterRowRef:
|
|
49
|
-
tableHeadRowRef:
|
|
50
|
-
wrapperStyle:
|
|
50
|
+
tableWrapperRef: c,
|
|
51
|
+
tableFooterRowRef: C,
|
|
52
|
+
tableHeadRowRef: M,
|
|
53
|
+
wrapperStyle: z
|
|
51
54
|
};
|
|
52
55
|
};
|
|
53
56
|
export {
|
|
54
|
-
|
|
57
|
+
j as useTableLayout
|
|
55
58
|
};
|
|
56
59
|
//# sourceMappingURL=useTableLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableLayout.js","sources":["../../../../src/components/table/layout/useTableLayout.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport type { TableCardsStyleSettings
|
|
1
|
+
{"version":3,"file":"useTableLayout.js","sources":["../../../../src/components/table/layout/useTableLayout.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport type { TableCardsStyleSettings, TableColumnDefinition, TableRowData } from '../Table.types';\nimport { useMeasuredColumnMaxWidths } from './useMeasuredColumnMaxWidths';\nimport { MIN_COLUMN_WIDTH_PX } from '../tableSizing.constants';\nimport { getColumnTrack, toCssSize } from './columnSizing';\nimport { useHorizontalSectionSync } from './useHorizontalSectionSync';\nimport useResizeObserver from '../../../useResizeObserver';\n\nconst TABLE_SELECTION_COLUMN_WIDTH_PX = 50;\n\nconst parsePixelSize = (value?: string) => {\n if (!value) {\n return;\n }\n\n const match = value.trim().match(/^(-?\\d+(?:\\.\\d+)?)px$/);\n\n if (!match) {\n return;\n }\n\n return Number(match[1]);\n};\n\nexport type TableColumnWithArea<RowType extends TableRowData> = {\n column: TableColumnDefinition<RowType>;\n columnIndex: number;\n areaName: string;\n};\n\ntype UseTableLayoutProps<RowType extends TableRowData> = {\n bodyMaxHeight?: string;\n cardsStyle?: TableCardsStyleSettings;\n columns: TableColumnDefinition<RowType>[];\n hasFooterCells?: boolean;\n rowSeparatorWidth?: number | string;\n showSelectionColumn?: boolean;\n style?: CSSProperties;\n};\n\ntype InternalTableStyle = CSSProperties & {\n '--table-columns'?: string;\n '--table-areas'?: string;\n '--table-cards-min'?: string;\n '--table-cards-max'?: string;\n '--table-column-count'?: string;\n '--table-row-separator-width'?: string;\n '--table-width'?: string;\n};\n\nexport const useTableLayout = <RowType extends TableRowData>(props: UseTableLayoutProps<RowType>) => {\n const { bodyMaxHeight, cardsStyle, columns, hasFooterCells, rowSeparatorWidth, showSelectionColumn, style } = props;\n const [tableWrapperRef, , { inlineSize }] = useResizeObserver<HTMLDivElement>();\n\n const columnsWithAreas: TableColumnWithArea<RowType>[] = columns.map((column, columnIndex) => ({\n column,\n columnIndex,\n areaName: `table-col-${columnIndex + 1}`,\n }));\n\n const wrapperWidth = inlineSize ?? tableWrapperRef.current?.clientWidth;\n\n const minWidthTotal =\n (showSelectionColumn ? TABLE_SELECTION_COLUMN_WIDTH_PX : 0) +\n columns.reduce((totalWidth, column) => {\n if (column.width === undefined) {\n return totalWidth + MIN_COLUMN_WIDTH_PX;\n }\n\n const columnWidth = parsePixelSize(toCssSize(column.width));\n\n return totalWidth + (columnWidth ?? 0);\n }, 0);\n\n const tableUseOverflow = wrapperWidth !== undefined && minWidthTotal > wrapperWidth;\n const tableWidth = wrapperWidth !== undefined ? `${wrapperWidth}px` : '100%';\n\n const { handleBodyScroll, hasHorizontalScrollOffset, tableFooterRowRef, tableHeadRowRef } =\n useHorizontalSectionSync({\n enabled: !!bodyMaxHeight,\n hasFooterCells,\n });\n\n const measuredColumnMaxWidths = useMeasuredColumnMaxWidths({\n columns,\n enabled: tableUseOverflow,\n tableWrapperRef,\n });\n\n const gridTemplateColumns =\n columnsWithAreas.length > 0\n ? [\n showSelectionColumn ? `${TABLE_SELECTION_COLUMN_WIDTH_PX}px` : undefined,\n ...columnsWithAreas.map(({ column }) => getColumnTrack(column, measuredColumnMaxWidths[column.key])),\n ]\n .filter(Boolean)\n .join(' ')\n : 'minmax(0, 1fr)';\n\n const gridTemplateAreas =\n columnsWithAreas.length > 0\n ? `\"${[\n showSelectionColumn ? 'table-selection' : undefined,\n ...columnsWithAreas.map(({ areaName }) => areaName),\n ]\n .filter(Boolean)\n .join(' ')}\"`\n : 'none';\n\n const cardsMinWidth = toCssSize(cardsStyle?.minWidth) ?? '280px';\n const cardsMaxWidth = toCssSize(cardsStyle?.maxWidth) ?? '1fr';\n\n const wrapperStyle: InternalTableStyle = {\n ...(style ?? {}),\n '--table-columns': gridTemplateColumns,\n '--table-areas': gridTemplateAreas,\n '--table-cards-min': cardsMinWidth,\n '--table-cards-max': cardsMaxWidth,\n '--table-column-count': String(columns.length + (showSelectionColumn ? 1 : 0)),\n '--table-row-separator-width': toCssSize(rowSeparatorWidth),\n '--table-width': tableWidth,\n };\n\n return {\n columnsWithAreas,\n handleBodyScroll,\n hasHorizontalScrollOffset,\n tableUseOverflow,\n tableWrapperRef,\n tableFooterRowRef,\n tableHeadRowRef,\n wrapperStyle,\n };\n};\n"],"names":["TABLE_SELECTION_COLUMN_WIDTH_PX","parsePixelSize","value","match","useTableLayout","props","bodyMaxHeight","cardsStyle","columns","hasFooterCells","rowSeparatorWidth","showSelectionColumn","style","tableWrapperRef","inlineSize","useResizeObserver","columnsWithAreas","column","columnIndex","wrapperWidth","minWidthTotal","totalWidth","MIN_COLUMN_WIDTH_PX","columnWidth","toCssSize","tableUseOverflow","tableWidth","handleBodyScroll","hasHorizontalScrollOffset","tableFooterRowRef","tableHeadRowRef","useHorizontalSectionSync","measuredColumnMaxWidths","useMeasuredColumnMaxWidths","gridTemplateColumns","getColumnTrack","gridTemplateAreas","areaName","cardsMinWidth","cardsMaxWidth","wrapperStyle"],"mappings":";;;;;AASA,MAAMA,IAAkC,IAElCC,IAAiB,CAACC,MAAmB;AACvC,MAAI,CAACA;AACD;AAGJ,QAAMC,IAAQD,EAAM,KAAA,EAAO,MAAM,uBAAuB;AAExD,MAAKC;AAIL,WAAO,OAAOA,EAAM,CAAC,CAAC;AAC1B,GA4BaC,IAAiB,CAA+BC,MAAwC;AACjG,QAAM,EAAE,eAAAC,GAAe,YAAAC,GAAY,SAAAC,GAAS,gBAAAC,GAAgB,mBAAAC,GAAmB,qBAAAC,GAAqB,OAAAC,MAAUP,GACxG,CAACQ,GAAA,EAAmB,EAAE,YAAAC,EAAA,CAAY,IAAIC,EAAA,GAEtCC,IAAmDR,EAAQ,IAAI,CAACS,GAAQC,OAAiB;AAAA,IAC3F,QAAAD;AAAA,IACA,aAAAC;AAAA,IACA,UAAU,aAAaA,IAAc,CAAC;AAAA,EAAA,EACxC,GAEIC,IAAeL,KAAcD,EAAgB,SAAS,aAEtDO,KACDT,IAAsBX,IAAkC,KACzDQ,EAAQ,OAAO,CAACa,GAAYJ,MAAW;AACnC,QAAIA,EAAO,UAAU;AACjB,aAAOI,IAAaC;AAGxB,UAAMC,IAActB,EAAeuB,EAAUP,EAAO,KAAK,CAAC;AAE1D,WAAOI,KAAcE,KAAe;AAAA,EACxC,GAAG,CAAC,GAEFE,IAAmBN,MAAiB,UAAaC,IAAgBD,GACjEO,IAAaP,MAAiB,SAAY,GAAGA,CAAY,OAAO,QAEhE,EAAE,kBAAAQ,GAAkB,2BAAAC,GAA2B,mBAAAC,GAAmB,iBAAAC,EAAA,IACpEC,EAAyB;AAAA,IACrB,SAAS,CAAC,CAACzB;AAAA,IACX,gBAAAG;AAAA,EAAA,CACH,GAECuB,IAA0BC,EAA2B;AAAA,IACvD,SAAAzB;AAAA,IACA,SAASiB;AAAA,IACT,iBAAAZ;AAAA,EAAA,CACH,GAEKqB,IACFlB,EAAiB,SAAS,IACpB;AAAA,IACIL,IAAsB,GAAGX,CAA+B,OAAO;AAAA,IAC/D,GAAGgB,EAAiB,IAAI,CAAC,EAAE,QAAAC,EAAA,MAAakB,EAAelB,GAAQe,EAAwBf,EAAO,GAAG,CAAC,CAAC;AAAA,EAAA,EAElG,OAAO,OAAO,EACd,KAAK,GAAG,IACb,kBAEJmB,IACFpB,EAAiB,SAAS,IACpB,IAAI;AAAA,IACAL,IAAsB,oBAAoB;AAAA,IAC1C,GAAGK,EAAiB,IAAI,CAAC,EAAE,UAAAqB,EAAA,MAAeA,CAAQ;AAAA,EAAA,EAEjD,OAAO,OAAO,EACd,KAAK,GAAG,CAAC,MACd,QAEJC,IAAgBd,EAAUjB,GAAY,QAAQ,KAAK,SACnDgC,IAAgBf,EAAUjB,GAAY,QAAQ,KAAK,OAEnDiC,IAAmC;AAAA,IACrC,GAAI5B,KAAS,CAAA;AAAA,IACb,mBAAmBsB;AAAA,IACnB,iBAAiBE;AAAA,IACjB,qBAAqBE;AAAA,IACrB,qBAAqBC;AAAA,IACrB,wBAAwB,OAAO/B,EAAQ,UAAUG,IAAsB,IAAI,EAAE;AAAA,IAC7E,+BAA+Ba,EAAUd,CAAiB;AAAA,IAC1D,iBAAiBgB;AAAA,EAAA;AAGrB,SAAO;AAAA,IACH,kBAAAV;AAAA,IACA,kBAAAW;AAAA,IACA,2BAAAC;AAAA,IACA,kBAAAH;AAAA,IACA,iBAAAZ;AAAA,IACA,mBAAAgB;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAU;AAAA,EAAA;AAER;"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { TableViewRow } from '../model/tableViewModel.types';
|
|
2
1
|
type TableVirtualScrollContainer = {
|
|
3
2
|
view?: HTMLDivElement | null;
|
|
4
3
|
};
|
|
5
|
-
type TableVirtualRow<RowType
|
|
4
|
+
type TableVirtualRow<RowType> = {
|
|
6
5
|
index: number;
|
|
7
|
-
row:
|
|
6
|
+
row: RowType;
|
|
8
7
|
};
|
|
9
|
-
type UseTableVirtualizationOptions<RowType
|
|
8
|
+
type UseTableVirtualizationOptions<RowType> = {
|
|
10
9
|
enabled: boolean;
|
|
11
10
|
overscan: number;
|
|
12
|
-
rows:
|
|
11
|
+
rows: RowType[];
|
|
13
12
|
scrollContainer: TableVirtualScrollContainer | null;
|
|
13
|
+
viewportHeightFallback?: number;
|
|
14
14
|
};
|
|
15
|
-
declare const useTableVirtualization: <RowType
|
|
15
|
+
declare const useTableVirtualization: <RowType>(options: UseTableVirtualizationOptions<RowType>) => {
|
|
16
16
|
isVirtualized: boolean;
|
|
17
17
|
measureRow: (index: number, element: HTMLElement | null) => void;
|
|
18
18
|
paddingBottom: number;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { useState as
|
|
2
|
-
const
|
|
3
|
-
const { enabled: i, overscan: d, rows: r, scrollContainer: v } = m, [l, H] =
|
|
1
|
+
import { useState as M, useCallback as c, useEffect as T, useMemo as O } from "react";
|
|
2
|
+
const V = 50, E = (m, i) => m.start === i.start && m.end === i.end, I = (m) => {
|
|
3
|
+
const { enabled: i, overscan: d, rows: r, scrollContainer: v, viewportHeightFallback: w } = m, [l, H] = M({
|
|
4
4
|
itemHeights: {},
|
|
5
5
|
scrollTop: 0,
|
|
6
6
|
viewportHeight: 0,
|
|
7
7
|
visibleRange: { start: 0, end: 10 }
|
|
8
|
-
}), b = c(() => v?.view ?? null, [v]),
|
|
8
|
+
}), b = c(() => v?.view ?? null, [v]), f = c(() => {
|
|
9
9
|
const e = Object.values(l.itemHeights);
|
|
10
|
-
return e.length === 0 ?
|
|
10
|
+
return e.length === 0 ? V : e.reduce((t, n) => t + n, 0) / e.length;
|
|
11
11
|
}, [l.itemHeights]), g = c(
|
|
12
|
-
(e) => l.itemHeights[e] ??
|
|
13
|
-
[
|
|
14
|
-
),
|
|
12
|
+
(e) => l.itemHeights[e] ?? f(),
|
|
13
|
+
[f, l.itemHeights]
|
|
14
|
+
), p = c(
|
|
15
15
|
(e) => {
|
|
16
16
|
let t = 0;
|
|
17
17
|
for (let n = 0; n < e; n++)
|
|
@@ -19,7 +19,7 @@ const k = 50, T = (m, i) => m.start === i.start && m.end === i.end, F = (m) => {
|
|
|
19
19
|
return t;
|
|
20
20
|
},
|
|
21
21
|
[g]
|
|
22
|
-
),
|
|
22
|
+
), x = c(() => {
|
|
23
23
|
let e = 0;
|
|
24
24
|
for (let t = 0; t < r.length; t++)
|
|
25
25
|
e += g(t);
|
|
@@ -52,17 +52,17 @@ const k = 50, T = (m, i) => m.start === i.start && m.end === i.end, F = (m) => {
|
|
|
52
52
|
const e = b();
|
|
53
53
|
if (!e)
|
|
54
54
|
return;
|
|
55
|
-
const t = e.clientHeight, n = e.scrollTop, a = h(n, t);
|
|
55
|
+
const t = e.clientHeight || w || 0, n = e.scrollTop, a = h(n, t);
|
|
56
56
|
H(
|
|
57
|
-
(s) => s.scrollTop === n && s.viewportHeight === t &&
|
|
57
|
+
(s) => s.scrollTop === n && s.viewportHeight === t && E(s.visibleRange, a) ? s : {
|
|
58
58
|
...s,
|
|
59
59
|
scrollTop: n,
|
|
60
60
|
viewportHeight: t,
|
|
61
61
|
visibleRange: a
|
|
62
62
|
}
|
|
63
63
|
);
|
|
64
|
-
}, [h, b]);
|
|
65
|
-
|
|
64
|
+
}, [h, b, w]);
|
|
65
|
+
T(() => {
|
|
66
66
|
if (!i)
|
|
67
67
|
return;
|
|
68
68
|
const e = b();
|
|
@@ -73,21 +73,21 @@ const k = 50, T = (m, i) => m.start === i.start && m.end === i.end, F = (m) => {
|
|
|
73
73
|
return t.observe(e), () => {
|
|
74
74
|
e.removeEventListener("scroll", u), t.disconnect();
|
|
75
75
|
};
|
|
76
|
-
}, [i, b, u]),
|
|
76
|
+
}, [i, b, u]), T(() => {
|
|
77
77
|
i && H((e) => {
|
|
78
78
|
const t = h(e.scrollTop, e.viewportHeight);
|
|
79
|
-
return
|
|
79
|
+
return E(e.visibleRange, t) ? e : {
|
|
80
80
|
...e,
|
|
81
81
|
visibleRange: t
|
|
82
82
|
};
|
|
83
83
|
});
|
|
84
84
|
}, [h, i, r]);
|
|
85
|
-
const
|
|
85
|
+
const k = c(
|
|
86
86
|
(e, t) => {
|
|
87
87
|
if (!t)
|
|
88
88
|
return;
|
|
89
89
|
const n = t.getBoundingClientRect(), a = window.getComputedStyle(t), s = n.height + Number.parseFloat(a.marginTop || "0") + Number.parseFloat(a.marginBottom || "0");
|
|
90
|
-
H((o) => {
|
|
90
|
+
s <= 0 || H((o) => {
|
|
91
91
|
if (o.itemHeights[e] === s)
|
|
92
92
|
return o;
|
|
93
93
|
const R = {
|
|
@@ -104,22 +104,22 @@ const k = 50, T = (m, i) => m.start === i.start && m.end === i.end, F = (m) => {
|
|
|
104
104
|
});
|
|
105
105
|
},
|
|
106
106
|
[h]
|
|
107
|
-
), z =
|
|
107
|
+
), z = O(
|
|
108
108
|
() => i ? r.slice(l.visibleRange.start, l.visibleRange.end).map((e, t) => ({
|
|
109
109
|
index: l.visibleRange.start + t,
|
|
110
110
|
row: e
|
|
111
111
|
})) : [],
|
|
112
112
|
[i, r, l.visibleRange.end, l.visibleRange.start]
|
|
113
|
-
), C = i ?
|
|
113
|
+
), C = i ? p(l.visibleRange.start) : 0, F = i ? Math.max(0, x() - p(l.visibleRange.end)) : 0;
|
|
114
114
|
return {
|
|
115
115
|
isVirtualized: i,
|
|
116
|
-
measureRow:
|
|
117
|
-
paddingBottom:
|
|
116
|
+
measureRow: k,
|
|
117
|
+
paddingBottom: F,
|
|
118
118
|
paddingTop: C,
|
|
119
119
|
virtualRows: z
|
|
120
120
|
};
|
|
121
121
|
};
|
|
122
122
|
export {
|
|
123
|
-
|
|
123
|
+
I as default
|
|
124
124
|
};
|
|
125
125
|
//# sourceMappingURL=useTableVirtualization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableVirtualization.js","sources":["../../../../src/components/table/layout/useTableVirtualization.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport type { TableViewRow } from '../model/tableViewModel.types';\n\ntype TableVirtualScrollContainer = {\n view?: HTMLDivElement | null;\n};\n\ntype TableVirtualRow<RowType extends Record<string, unknown>> = {\n index: number;\n row: TableViewRow<RowType>;\n};\n\ntype UseTableVirtualizationOptions<RowType extends Record<string, unknown>> = {\n enabled: boolean;\n overscan: number;\n rows: TableViewRow<RowType>[];\n scrollContainer: TableVirtualScrollContainer | null;\n};\n\ntype TableVirtualizationState = {\n itemHeights: Record<number, number>;\n scrollTop: number;\n viewportHeight: number;\n visibleRange: {\n start: number;\n end: number;\n };\n};\n\nconst DEFAULT_ROW_HEIGHT = 50;\n\nconst areVisibleRangesEqual = (\n left: TableVirtualizationState['visibleRange'],\n right: TableVirtualizationState['visibleRange']\n) => left.start === right.start && left.end === right.end;\n\nconst useTableVirtualization = <RowType extends Record<string, unknown>>(\n options: UseTableVirtualizationOptions<RowType>\n) => {\n const { enabled, overscan, rows, scrollContainer } = options;\n const [state, setState] = useState<TableVirtualizationState>({\n itemHeights: {},\n scrollTop: 0,\n viewportHeight: 0,\n visibleRange: { start: 0, end: 10 },\n });\n\n const getScrollElement = useCallback(() => scrollContainer?.view ?? null, [scrollContainer]);\n\n const getEstimatedRowHeight = useCallback(() => {\n const measuredHeights = Object.values(state.itemHeights);\n\n if (measuredHeights.length === 0) {\n return DEFAULT_ROW_HEIGHT;\n }\n\n return measuredHeights.reduce((sum, height) => sum + height, 0) / measuredHeights.length;\n }, [state.itemHeights]);\n\n const getRowHeight = useCallback(\n (index: number) => state.itemHeights[index] ?? getEstimatedRowHeight(),\n [getEstimatedRowHeight, state.itemHeights]\n );\n\n const getItemPosition = useCallback(\n (index: number) => {\n let position = 0;\n\n for (let currentIndex = 0; currentIndex < index; currentIndex++) {\n position += getRowHeight(currentIndex);\n }\n\n return position;\n },\n [getRowHeight]\n );\n\n const getTotalHeight = useCallback(() => {\n let totalHeight = 0;\n\n for (let index = 0; index < rows.length; index++) {\n totalHeight += getRowHeight(index);\n }\n\n return totalHeight;\n }, [getRowHeight, rows.length]);\n\n const calculateVisibleRange = useCallback(\n (scrollTop: number, viewportHeight: number) => {\n if (!enabled || rows.length === 0) {\n return { start: 0, end: rows.length };\n }\n\n let start = 0;\n let currentPosition = 0;\n\n while (start < rows.length) {\n const rowHeight = getRowHeight(start);\n\n if (currentPosition + rowHeight > scrollTop - overscan * rowHeight) {\n break;\n }\n\n currentPosition += rowHeight;\n start++;\n }\n\n let end = start;\n\n while (end < rows.length) {\n const rowHeight = getRowHeight(end);\n\n if (currentPosition > scrollTop + viewportHeight + overscan * rowHeight) {\n break;\n }\n\n currentPosition += rowHeight;\n end++;\n }\n\n return {\n start: Math.max(0, start - overscan),\n end: Math.min(rows.length, end + overscan),\n };\n },\n [enabled, getRowHeight, overscan, rows.length]\n );\n\n const handleScroll = useCallback(() => {\n const scrollElement = getScrollElement();\n\n if (!scrollElement) {\n return;\n }\n\n const viewportHeight = scrollElement.clientHeight;\n const scrollTop = scrollElement.scrollTop;\n const visibleRange = calculateVisibleRange(scrollTop, viewportHeight);\n\n setState(previousState =>\n previousState.scrollTop === scrollTop &&\n previousState.viewportHeight === viewportHeight &&\n areVisibleRangesEqual(previousState.visibleRange, visibleRange)\n ? previousState\n : {\n ...previousState,\n scrollTop,\n viewportHeight,\n visibleRange,\n }\n );\n }, [calculateVisibleRange, getScrollElement]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const scrollElement = getScrollElement();\n\n if (!scrollElement) {\n return;\n }\n\n handleScroll();\n scrollElement.addEventListener('scroll', handleScroll, { passive: true });\n\n const resizeObserver = new ResizeObserver(handleScroll);\n resizeObserver.observe(scrollElement);\n\n return () => {\n scrollElement.removeEventListener('scroll', handleScroll);\n resizeObserver.disconnect();\n };\n }, [enabled, getScrollElement, handleScroll]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n\n setState(previousState => {\n const visibleRange = calculateVisibleRange(previousState.scrollTop, previousState.viewportHeight);\n\n return areVisibleRangesEqual(previousState.visibleRange, visibleRange)\n ? previousState\n : {\n ...previousState,\n visibleRange,\n };\n });\n }, [calculateVisibleRange, enabled, rows]);\n\n const measureRow = useCallback(\n (index: number, element: HTMLElement | null) => {\n if (!element) {\n return;\n }\n\n const rect = element.getBoundingClientRect();\n const computedStyle = window.getComputedStyle(element);\n const height =\n rect.height +\n Number.parseFloat(computedStyle.marginTop || '0') +\n Number.parseFloat(computedStyle.marginBottom || '0');\n\n setState(previousState => {\n if (previousState.itemHeights[index] === height) {\n return previousState;\n }\n\n const nextState = {\n ...previousState,\n itemHeights: {\n ...previousState.itemHeights,\n [index]: height,\n },\n };\n\n return {\n ...nextState,\n visibleRange: calculateVisibleRange(nextState.scrollTop, nextState.viewportHeight),\n };\n });\n },\n [calculateVisibleRange]\n );\n\n const virtualRows = useMemo<TableVirtualRow<RowType>[]>(\n () =>\n enabled\n ? rows.slice(state.visibleRange.start, state.visibleRange.end).map((row, offset) => {\n const index = state.visibleRange.start + offset;\n\n return {\n index,\n row,\n };\n })\n : [],\n [enabled, rows, state.visibleRange.end, state.visibleRange.start]\n );\n\n const paddingTop = enabled ? getItemPosition(state.visibleRange.start) : 0;\n const paddingBottom = enabled ? Math.max(0, getTotalHeight() - getItemPosition(state.visibleRange.end)) : 0;\n\n return {\n isVirtualized: enabled,\n measureRow,\n paddingBottom,\n paddingTop,\n virtualRows,\n };\n};\n\nexport default useTableVirtualization;\n"],"names":["DEFAULT_ROW_HEIGHT","areVisibleRangesEqual","left","right","useTableVirtualization","options","enabled","overscan","rows","scrollContainer","state","setState","useState","getScrollElement","useCallback","getEstimatedRowHeight","measuredHeights","sum","height","getRowHeight","index","getItemPosition","position","currentIndex","getTotalHeight","totalHeight","calculateVisibleRange","scrollTop","viewportHeight","start","currentPosition","rowHeight","end","handleScroll","scrollElement","visibleRange","previousState","useEffect","resizeObserver","measureRow","element","rect","computedStyle","nextState","virtualRows","useMemo","row","offset","paddingTop","paddingBottom"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTableVirtualization.js","sources":["../../../../src/components/table/layout/useTableVirtualization.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\n\ntype TableVirtualScrollContainer = {\n view?: HTMLDivElement | null;\n};\n\ntype TableVirtualRow<RowType> = {\n index: number;\n row: RowType;\n};\n\ntype UseTableVirtualizationOptions<RowType> = {\n enabled: boolean;\n overscan: number;\n rows: RowType[];\n scrollContainer: TableVirtualScrollContainer | null;\n viewportHeightFallback?: number;\n};\n\ntype TableVirtualizationState = {\n itemHeights: Record<number, number>;\n scrollTop: number;\n viewportHeight: number;\n visibleRange: {\n start: number;\n end: number;\n };\n};\n\nconst DEFAULT_ROW_HEIGHT = 50;\n\nconst areVisibleRangesEqual = (\n currentRange: TableVirtualizationState['visibleRange'],\n nextRange: TableVirtualizationState['visibleRange']\n) => currentRange.start === nextRange.start && currentRange.end === nextRange.end;\n\nconst useTableVirtualization = <RowType>(options: UseTableVirtualizationOptions<RowType>) => {\n const { enabled, overscan, rows, scrollContainer, viewportHeightFallback } = options;\n const [state, setState] = useState<TableVirtualizationState>({\n itemHeights: {},\n scrollTop: 0,\n viewportHeight: 0,\n visibleRange: { start: 0, end: 10 },\n });\n\n const getScrollElement = useCallback(() => scrollContainer?.view ?? null, [scrollContainer]);\n\n const getEstimatedRowHeight = useCallback(() => {\n const measuredHeights = Object.values(state.itemHeights);\n\n if (measuredHeights.length === 0) {\n return DEFAULT_ROW_HEIGHT;\n }\n\n return measuredHeights.reduce((sum, height) => sum + height, 0) / measuredHeights.length;\n }, [state.itemHeights]);\n\n const getRowHeight = useCallback(\n (index: number) => state.itemHeights[index] ?? getEstimatedRowHeight(),\n [getEstimatedRowHeight, state.itemHeights]\n );\n\n const getItemPosition = useCallback(\n (index: number) => {\n let position = 0;\n\n for (let currentIndex = 0; currentIndex < index; currentIndex++) {\n position += getRowHeight(currentIndex);\n }\n\n return position;\n },\n [getRowHeight]\n );\n\n const getTotalHeight = useCallback(() => {\n let totalHeight = 0;\n\n for (let index = 0; index < rows.length; index++) {\n totalHeight += getRowHeight(index);\n }\n\n return totalHeight;\n }, [getRowHeight, rows.length]);\n\n const calculateVisibleRange = useCallback(\n (scrollTop: number, viewportHeight: number) => {\n if (!enabled || rows.length === 0) {\n return { start: 0, end: rows.length };\n }\n\n let start = 0;\n let currentPosition = 0;\n\n while (start < rows.length) {\n const rowHeight = getRowHeight(start);\n\n if (currentPosition + rowHeight > scrollTop - overscan * rowHeight) {\n break;\n }\n\n currentPosition += rowHeight;\n start++;\n }\n\n let end = start;\n\n while (end < rows.length) {\n const rowHeight = getRowHeight(end);\n\n if (currentPosition > scrollTop + viewportHeight + overscan * rowHeight) {\n break;\n }\n\n currentPosition += rowHeight;\n end++;\n }\n\n return {\n start: Math.max(0, start - overscan),\n end: Math.min(rows.length, end + overscan),\n };\n },\n [enabled, getRowHeight, overscan, rows.length]\n );\n\n const handleScroll = useCallback(() => {\n const scrollElement = getScrollElement();\n\n if (!scrollElement) {\n return;\n }\n\n const viewportHeight = scrollElement.clientHeight || viewportHeightFallback || 0;\n const scrollTop = scrollElement.scrollTop;\n const visibleRange = calculateVisibleRange(scrollTop, viewportHeight);\n\n setState(previousState =>\n previousState.scrollTop === scrollTop &&\n previousState.viewportHeight === viewportHeight &&\n areVisibleRangesEqual(previousState.visibleRange, visibleRange)\n ? previousState\n : {\n ...previousState,\n scrollTop,\n viewportHeight,\n visibleRange,\n }\n );\n }, [calculateVisibleRange, getScrollElement, viewportHeightFallback]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const scrollElement = getScrollElement();\n\n if (!scrollElement) {\n return;\n }\n\n handleScroll();\n scrollElement.addEventListener('scroll', handleScroll, { passive: true });\n\n const resizeObserver = new ResizeObserver(handleScroll);\n resizeObserver.observe(scrollElement);\n\n return () => {\n scrollElement.removeEventListener('scroll', handleScroll);\n resizeObserver.disconnect();\n };\n }, [enabled, getScrollElement, handleScroll]);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n\n setState(previousState => {\n const visibleRange = calculateVisibleRange(previousState.scrollTop, previousState.viewportHeight);\n\n return areVisibleRangesEqual(previousState.visibleRange, visibleRange)\n ? previousState\n : {\n ...previousState,\n visibleRange,\n };\n });\n }, [calculateVisibleRange, enabled, rows]);\n\n const measureRow = useCallback(\n (index: number, element: HTMLElement | null) => {\n if (!element) {\n return;\n }\n\n const rect = element.getBoundingClientRect();\n const computedStyle = window.getComputedStyle(element);\n const height =\n rect.height +\n Number.parseFloat(computedStyle.marginTop || '0') +\n Number.parseFloat(computedStyle.marginBottom || '0');\n\n if (height <= 0) {\n return;\n }\n\n setState(previousState => {\n if (previousState.itemHeights[index] === height) {\n return previousState;\n }\n\n const nextState = {\n ...previousState,\n itemHeights: {\n ...previousState.itemHeights,\n [index]: height,\n },\n };\n\n return {\n ...nextState,\n visibleRange: calculateVisibleRange(nextState.scrollTop, nextState.viewportHeight),\n };\n });\n },\n [calculateVisibleRange]\n );\n\n const virtualRows = useMemo<TableVirtualRow<RowType>[]>(\n () =>\n enabled\n ? rows.slice(state.visibleRange.start, state.visibleRange.end).map((row, offset) => {\n const index = state.visibleRange.start + offset;\n\n return {\n index,\n row,\n };\n })\n : [],\n [enabled, rows, state.visibleRange.end, state.visibleRange.start]\n );\n\n const paddingTop = enabled ? getItemPosition(state.visibleRange.start) : 0;\n const paddingBottom = enabled ? Math.max(0, getTotalHeight() - getItemPosition(state.visibleRange.end)) : 0;\n\n return {\n isVirtualized: enabled,\n measureRow,\n paddingBottom,\n paddingTop,\n virtualRows,\n };\n};\n\nexport default useTableVirtualization;\n"],"names":["DEFAULT_ROW_HEIGHT","areVisibleRangesEqual","currentRange","nextRange","useTableVirtualization","options","enabled","overscan","rows","scrollContainer","viewportHeightFallback","state","setState","useState","getScrollElement","useCallback","getEstimatedRowHeight","measuredHeights","sum","height","getRowHeight","index","getItemPosition","position","currentIndex","getTotalHeight","totalHeight","calculateVisibleRange","scrollTop","viewportHeight","start","currentPosition","rowHeight","end","handleScroll","scrollElement","visibleRange","previousState","useEffect","resizeObserver","measureRow","element","rect","computedStyle","nextState","virtualRows","useMemo","row","offset","paddingTop","paddingBottom"],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
1
|
+
import { TableRowData } from '../Table.types';
|
|
2
|
+
export declare const resolveRowClassName: <RowType extends TableRowData>(rowClassName: string | ((row: RowType, rowIndex: number) => string) | undefined, row: RowType, rowIndex: number) => string | undefined;
|
|
3
|
+
export declare const resolveRowKey: <RowType extends TableRowData>(row: RowType, rowIndex: number, rowKey: keyof RowType | ((row: RowType, rowIndex: number) => string | number) | undefined) => string | number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveRowMeta.js","sources":["../../../../src/components/table/model/resolveRowMeta.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"resolveRowMeta.js","sources":["../../../../src/components/table/model/resolveRowMeta.ts"],"sourcesContent":["import type { TableRowData } from '../Table.types';\n\nexport const resolveRowClassName = <RowType extends TableRowData>(\n rowClassName: string | ((row: RowType, rowIndex: number) => string) | undefined,\n row: RowType,\n rowIndex: number\n) => {\n if (typeof rowClassName === 'function') {\n return rowClassName(row, rowIndex);\n }\n\n return rowClassName;\n};\n\nexport const resolveRowKey = <RowType extends TableRowData>(\n row: RowType,\n rowIndex: number,\n rowKey: keyof RowType | ((row: RowType, rowIndex: number) => string | number) | undefined\n) => {\n if (typeof rowKey === 'function') {\n return rowKey(row, rowIndex);\n }\n\n if (rowKey) {\n const rowValue = row[rowKey];\n if (typeof rowValue === 'string' || typeof rowValue === 'number') {\n return rowValue;\n }\n }\n\n return rowIndex;\n};\n"],"names":["resolveRowClassName","rowClassName","row","rowIndex","resolveRowKey","rowKey","rowValue"],"mappings":"AAEO,MAAMA,IAAsB,CAC/BC,GACAC,GACAC,MAEI,OAAOF,KAAiB,aACjBA,EAAaC,GAAKC,CAAQ,IAG9BF,GAGEG,IAAgB,CACzBF,GACAC,GACAE,MACC;AACD,MAAI,OAAOA,KAAW;AAClB,WAAOA,EAAOH,GAAKC,CAAQ;AAG/B,MAAIE,GAAQ;AACR,UAAMC,IAAWJ,EAAIG,CAAM;AAC3B,QAAI,OAAOC,KAAa,YAAY,OAAOA,KAAa;AACpD,aAAOA;AAAA,EAEf;AAEA,SAAOH;AACX;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { TableCardsStyleSettings } from '../
|
|
2
|
-
import {
|
|
3
|
-
import { TableViewFlags } from './tableViewModel.types';
|
|
1
|
+
import { TableCardsStyleSettings, TableViewType } from '../Table.types';
|
|
2
|
+
import { TableViewFlags } from './tableView.types';
|
|
4
3
|
type TableStyleClassSwitches = {
|
|
5
4
|
hasShadow: boolean;
|
|
6
5
|
hasBorder: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveTableClassConfig.js","sources":["../../../../src/components/table/model/resolveTableClassConfig.ts"],"sourcesContent":["import { mergeClassNameOverrides } from '../../../mergeClassNameOverrides';\nimport classNames from '../../../utils/classNames';\nimport type { TableCardsStyleSettings
|
|
1
|
+
{"version":3,"file":"resolveTableClassConfig.js","sources":["../../../../src/components/table/model/resolveTableClassConfig.ts"],"sourcesContent":["import { mergeClassNameOverrides } from '../../../mergeClassNameOverrides';\nimport classNames from '../../../utils/classNames';\nimport type { TableCardsStyleSettings, TableViewType } from '../Table.types';\nimport type { TableViewFlags } from './tableView.types';\n\ntype TableStyleClassSwitches = {\n hasShadow: boolean;\n hasBorder: boolean;\n hasRounded: boolean;\n};\n\ntype TableCardClasses = {\n rowClassName?: string;\n cellClassName?: string;\n labelClassName?: string;\n contentClassName?: string;\n};\n\ntype ResolveTableClassConfigProps = {\n viewType: TableViewType;\n hover?: boolean;\n shadow?: boolean;\n border?: boolean;\n rounded?: boolean;\n className?: string;\n cardsStyle?: TableCardsStyleSettings;\n};\n\ntype ResolveTableBaseClassNameProps = {\n viewType: TableViewType;\n condensed?: boolean;\n striped?: boolean;\n gridLines?: boolean;\n className?: string;\n tableUseOverflow: boolean;\n flags: TableViewFlags;\n hasHover: boolean;\n styleClassSwitches: TableStyleClassSwitches;\n};\n\nconst viewTypeClassNameMap: Record<TableViewType, string> = {\n TABLE: 'table-view-table',\n SINGLE_CARD: 'table-view-single-card',\n MULTI_CARDS: 'table-view-multi-cards',\n};\n\nconst splitClassNameTokens = (value?: string) =>\n value\n ?.split(' ')\n .map(classNameToken => classNameToken.trim())\n .filter(Boolean) ?? [];\n\nconst normalizeTableStyleOverrideToken = (token: string) => {\n if (token === 'shadow' || token.startsWith('shadow-')) {\n return 'shadow';\n }\n\n if (token === 'border-radius' || token.startsWith('border-radius-')) {\n return 'rounded';\n }\n\n return token;\n};\n\nexport const resolveTableStyleClassSwitches = (props: {\n shadow?: boolean;\n border?: boolean;\n rounded?: boolean;\n className?: string;\n}): TableStyleClassSwitches => {\n const { shadow, border, rounded, className } = props;\n const defaultStyleClasses = classNames(shadow && 'shadow', border && 'border', rounded && 'rounded');\n\n const overrideClasses = splitClassNameTokens(className).map(normalizeTableStyleOverrideToken).join(' ');\n const mergedStyleClasses = mergeClassNameOverrides(defaultStyleClasses, overrideClasses);\n const mergedStyleClassSet = new Set(splitClassNameTokens(mergedStyleClasses));\n\n return {\n hasShadow: !!shadow && mergedStyleClassSet.has('shadow'),\n hasBorder: !!border && mergedStyleClassSet.has('border'),\n hasRounded: !!rounded && mergedStyleClassSet.has('rounded'),\n };\n};\n\nexport const resolveTableClassConfig = (\n props: ResolveTableClassConfigProps\n): {\n hasHover: boolean;\n isTableView: boolean;\n styleClassSwitches: TableStyleClassSwitches;\n cardClasses: TableCardClasses;\n} => {\n const { viewType, hover = false, shadow = false, border = true, rounded = true, className, cardsStyle } = props;\n const isTableView = viewType === 'TABLE';\n const hasHover = hover;\n const styleClassSwitches = resolveTableStyleClassSwitches({ shadow, border, rounded, className });\n\n return {\n hasHover,\n isTableView,\n styleClassSwitches,\n cardClasses: {\n rowClassName: !isTableView\n ? classNames(\n styleClassSwitches.hasShadow && 'shadow-default',\n styleClassSwitches.hasBorder && 'border',\n cardsStyle?.className\n )\n : undefined,\n cellClassName: !isTableView ? cardsStyle?.rowClassName : undefined,\n labelClassName: !isTableView ? cardsStyle?.labelClassName : undefined,\n contentClassName: !isTableView ? cardsStyle?.contentClassName : undefined,\n },\n };\n};\n\nexport const resolveTableBaseClassName = (props: ResolveTableBaseClassNameProps) => {\n const {\n viewType,\n condensed = false,\n striped = false,\n gridLines = false,\n className,\n tableUseOverflow,\n flags,\n hasHover,\n styleClassSwitches,\n } = props;\n\n return classNames(\n 'table',\n viewTypeClassNameMap[viewType],\n hasHover && 'table-hover',\n condensed && 'table-condensed',\n flags.isTableView && gridLines && 'table-grid-lines',\n flags.isTableView && striped && 'table-striped',\n flags.isTableView && styleClassSwitches.hasShadow && 'shadow-default',\n flags.isTableView && styleClassSwitches.hasBorder && 'border',\n styleClassSwitches.hasRounded && 'table-rounded',\n flags.isTableView && (flags.hasHeader ? 'table-has-head' : 'table-no-head'),\n flags.isTableView && flags.hasFooter && 'table-has-footer',\n flags.isTableView && tableUseOverflow && 'table-allow-horizontal-overflow',\n className\n );\n};\n"],"names":["viewTypeClassNameMap","splitClassNameTokens","value","classNameToken","normalizeTableStyleOverrideToken","token","resolveTableStyleClassSwitches","props","shadow","border","rounded","className","defaultStyleClasses","classNames","overrideClasses","mergedStyleClasses","mergeClassNameOverrides","mergedStyleClassSet","resolveTableClassConfig","viewType","hover","cardsStyle","isTableView","hasHover","styleClassSwitches","resolveTableBaseClassName","condensed","striped","gridLines","tableUseOverflow","flags"],"mappings":";;AAwCA,MAAMA,IAAsD;AAAA,EACxD,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AACjB,GAEMC,IAAuB,CAACC,MAC1BA,GACM,MAAM,GAAG,EACV,IAAI,CAAAC,MAAkBA,EAAe,MAAM,EAC3C,OAAO,OAAO,KAAK,CAAA,GAEtBC,IAAmC,CAACC,MAClCA,MAAU,YAAYA,EAAM,WAAW,SAAS,IACzC,WAGPA,MAAU,mBAAmBA,EAAM,WAAW,gBAAgB,IACvD,YAGJA,GAGEC,IAAiC,CAACC,MAKhB;AAC3B,QAAM,EAAE,QAAAC,GAAQ,QAAAC,GAAQ,SAAAC,GAAS,WAAAC,MAAcJ,GACzCK,IAAsBC,EAAWL,KAAU,UAAUC,KAAU,UAAUC,KAAW,SAAS,GAE7FI,IAAkBb,EAAqBU,CAAS,EAAE,IAAIP,CAAgC,EAAE,KAAK,GAAG,GAChGW,IAAqBC,EAAwBJ,GAAqBE,CAAe,GACjFG,IAAsB,IAAI,IAAIhB,EAAqBc,CAAkB,CAAC;AAE5E,SAAO;AAAA,IACH,WAAW,CAAC,CAACP,KAAUS,EAAoB,IAAI,QAAQ;AAAA,IACvD,WAAW,CAAC,CAACR,KAAUQ,EAAoB,IAAI,QAAQ;AAAA,IACvD,YAAY,CAAC,CAACP,KAAWO,EAAoB,IAAI,SAAS;AAAA,EAAA;AAElE,GAEaC,IAA0B,CACnCX,MAMC;AACD,QAAM,EAAE,UAAAY,GAAU,OAAAC,IAAQ,IAAO,QAAAZ,IAAS,IAAO,QAAAC,IAAS,IAAM,SAAAC,IAAU,IAAM,WAAAC,GAAW,YAAAU,EAAA,IAAed,GACpGe,IAAcH,MAAa,SAC3BI,IAAWH,GACXI,IAAqBlB,EAA+B,EAAE,QAAAE,GAAQ,QAAAC,GAAQ,SAAAC,GAAS,WAAAC,GAAW;AAEhG,SAAO;AAAA,IACH,UAAAY;AAAA,IACA,aAAAD;AAAA,IACA,oBAAAE;AAAA,IACA,aAAa;AAAA,MACT,cAAeF,IAMT,SALAT;AAAA,QACIW,EAAmB,aAAa;AAAA,QAChCA,EAAmB,aAAa;AAAA,QAChCH,GAAY;AAAA,MAAA;AAAA,MAGtB,eAAgBC,IAAyC,SAA3BD,GAAY;AAAA,MAC1C,gBAAiBC,IAA2C,SAA7BD,GAAY;AAAA,MAC3C,kBAAmBC,IAA6C,SAA/BD,GAAY;AAAA,IAAmB;AAAA,EACpE;AAER,GAEaI,IAA4B,CAAClB,MAA0C;AAChF,QAAM;AAAA,IACF,UAAAY;AAAA,IACA,WAAAO,IAAY;AAAA,IACZ,SAAAC,IAAU;AAAA,IACV,WAAAC,IAAY;AAAA,IACZ,WAAAjB;AAAA,IACA,kBAAAkB;AAAA,IACA,OAAAC;AAAA,IACA,UAAAP;AAAA,IACA,oBAAAC;AAAA,EAAA,IACAjB;AAEJ,SAAOM;AAAA,IACH;AAAA,IACAb,EAAqBmB,CAAQ;AAAA,IAC7BI,KAAY;AAAA,IACZG,KAAa;AAAA,IACbI,EAAM,eAAeF,KAAa;AAAA,IAClCE,EAAM,eAAeH,KAAW;AAAA,IAChCG,EAAM,eAAeN,EAAmB,aAAa;AAAA,IACrDM,EAAM,eAAeN,EAAmB,aAAa;AAAA,IACrDA,EAAmB,cAAc;AAAA,IACjCM,EAAM,gBAAgBA,EAAM,YAAY,mBAAmB;AAAA,IAC3DA,EAAM,eAAeA,EAAM,aAAa;AAAA,IACxCA,EAAM,eAAeD,KAAoB;AAAA,IACzClB;AAAA,EAAA;AAER;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TableColumnDefinition, TableHorizontalAlign, TableRowData, TableSortDirection, TableVerticalAlign } from '../Table.types';
|
|
3
|
+
export type TableViewHeaderColumn<RowType extends TableRowData> = {
|
|
4
|
+
key: string | number;
|
|
5
|
+
columnKey?: string;
|
|
6
|
+
label: ReactNode;
|
|
7
|
+
icon?: string;
|
|
8
|
+
filter?: ReactNode;
|
|
9
|
+
hideLabel?: boolean;
|
|
10
|
+
horizontalAlign?: TableHorizontalAlign;
|
|
11
|
+
verticalAlign?: TableVerticalAlign;
|
|
12
|
+
className?: string;
|
|
13
|
+
headerClassName?: string;
|
|
14
|
+
hideOnMobile?: boolean;
|
|
15
|
+
draggable?: boolean;
|
|
16
|
+
resizeable?: boolean;
|
|
17
|
+
sortable?: boolean;
|
|
18
|
+
sortDirection?: TableSortDirection;
|
|
19
|
+
rowStart: number;
|
|
20
|
+
rowSpan: number;
|
|
21
|
+
columnStart: number;
|
|
22
|
+
colSpan: number;
|
|
23
|
+
source?: TableColumnDefinition<RowType>;
|
|
24
|
+
};
|
|
25
|
+
export type TableViewHeader<RowType extends TableRowData> = {
|
|
26
|
+
rowCount: number;
|
|
27
|
+
totalColumnCount: number;
|
|
28
|
+
columns: TableViewHeaderColumn<RowType>[];
|
|
29
|
+
};
|
|
30
|
+
export type TableViewCardClasses = {
|
|
31
|
+
rowClassName?: string;
|
|
32
|
+
cellClassName?: string;
|
|
33
|
+
labelClassName?: string;
|
|
34
|
+
contentClassName?: string;
|
|
35
|
+
};
|
|
36
|
+
export type TableViewFlags = {
|
|
37
|
+
hasHeader: boolean;
|
|
38
|
+
hasFooter: boolean;
|
|
39
|
+
isClickable: boolean;
|
|
40
|
+
isTableView: boolean;
|
|
41
|
+
};
|
|
@@ -60,7 +60,7 @@ const P = 1e3, U = (o, e, l) => o ? !(l[e] || "").toLowerCase().includes(o.toLow
|
|
|
60
60
|
"data-key": e,
|
|
61
61
|
...D,
|
|
62
62
|
...L,
|
|
63
|
-
children: i[e]
|
|
63
|
+
children: i?.[e]
|
|
64
64
|
}
|
|
65
65
|
),
|
|
66
66
|
s && /* @__PURE__ */ t("div", { className: "column-width-label", children: s.width ? `${s.width}px` : d }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableSettingsListItem.js","sources":["../../../../src/components/table/native/TableSettingsListItem.tsx"],"sourcesContent":["import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isEmpty, noop } from 'es-toolkit/compat';\n\nimport classNames from '../../../utils/classNames';\nimport Checkbox from '../../checkbox/Checkbox';\nimport Collapse from '../../collapse/Collapse';\nimport { TableSettingsColumnDetails } from './TableSettingsColumnDetails';\nimport { TableSettingsColumnButtons } from './TableSettingsColumnButtons';\nimport type { TableSettingsItemProps } from './TableSettingsDialog';\n\nconst MAX_COLUMN_WIDTH = 1000;\n\nexport const filterColumns = (searchValue: string, column: string, columnLabelStrings: Record<string, string>) => {\n if (!searchValue) {\n return false;\n }\n const label = columnLabelStrings[column] || '';\n return !label.toLowerCase().includes(searchValue.toLowerCase());\n};\n\nexport type TableSettingsListItemProps = TableSettingsItemProps & {\n column: string;\n orderIndex: number;\n isActive: boolean;\n className?: string;\n};\n\nconst TableSettingsListItem = (props: TableSettingsListItemProps) => {\n const {\n column,\n orderIndex,\n columnLabels,\n autoLabel,\n disabledColumns = [],\n columnOrder,\n hiddenColumns = [],\n columnSearchValue,\n columnsDetails,\n columnLabelStrings = {},\n openColumnsDetails = {},\n onColumnWidthChange,\n onResetColumnWidth,\n onMoveColumn,\n onOpenDetails,\n onToggleHideColumn = noop,\n isActive = false,\n className,\n } = props;\n\n const isSortingDisabled = !isEmpty(columnSearchValue);\n\n const { attributes, listeners, setNodeRef, setActivatorNodeRef, transform, transition } = useSortable({\n id: column,\n disabled: isSortingDisabled,\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n // Filter out items which don't match the search value.\n const isFiltered = filterColumns(columnSearchValue, column, columnLabelStrings);\n\n const itemClassNames = classNames('table-settings-item', className);\n\n const columnDetails = columnsDetails[column];\n\n return (\n <li\n hidden={isFiltered}\n className={itemClassNames}\n key={`table-settings-item-${column}`}\n ref={setNodeRef}\n style={style}\n >\n <div className='table-settings-item-header user-select-none' ref={setActivatorNodeRef}>\n <div className='CheckboxWrapper display-flex align-items-center padding-left-2 margin-top--3'>\n <Checkbox\n checked={!hiddenColumns.includes(column)}\n onClick={event => {\n onToggleHideColumn(column);\n event.stopPropagation();\n }}\n disabled={disabledColumns.includes(column)}\n />\n </div>\n <div\n className={`table-settings-item-label ${isSortingDisabled ? 'no-drag' : ''}`}\n data-key={column}\n {...attributes}\n {...listeners}\n >\n {columnLabels[column]}\n </div>\n {columnDetails && (\n <div className='column-width-label'>\n {columnDetails.width ? `${columnDetails.width}px` : autoLabel}\n </div>\n )}\n <TableSettingsColumnButtons\n column={column}\n index={orderIndex}\n columnDetails={columnDetails}\n columnOrder={columnOrder}\n openColumnsDetails={openColumnsDetails}\n disabled={isSortingDisabled}\n onMoveColumn={onMoveColumn}\n onOpenDetails={onOpenDetails}\n />\n </div>\n {columnDetails && !isActive && (\n <Collapse open={!!openColumnsDetails[column]}>\n <div>\n <TableSettingsColumnDetails\n {...columnDetails}\n column={column}\n maxColumnWidth={MAX_COLUMN_WIDTH}\n onColumnWidthChange={onColumnWidthChange}\n onResetColumnWidth={onResetColumnWidth}\n />\n </div>\n </Collapse>\n )}\n </li>\n );\n};\n\nexport default TableSettingsListItem;\n"],"names":["MAX_COLUMN_WIDTH","filterColumns","searchValue","column","columnLabelStrings","TableSettingsListItem","props","orderIndex","columnLabels","autoLabel","disabledColumns","columnOrder","hiddenColumns","columnSearchValue","columnsDetails","openColumnsDetails","onColumnWidthChange","onResetColumnWidth","onMoveColumn","onOpenDetails","onToggleHideColumn","noop","isActive","className","isSortingDisabled","isEmpty","attributes","listeners","setNodeRef","setActivatorNodeRef","transform","transition","useSortable","style","CSS","isFiltered","itemClassNames","classNames","columnDetails","jsxs","jsx","Checkbox","event","TableSettingsColumnButtons","Collapse","TableSettingsColumnDetails"],"mappings":";;;;;;;;;AAWA,MAAMA,IAAmB,KAEZC,IAAgB,CAACC,GAAqBC,GAAgBC,MAC1DF,IAIE,EADOE,EAAmBD,CAAM,KAAK,IAC9B,YAAA,EAAc,SAASD,EAAY,aAAa,IAHnD,IAaTG,IAAwB,CAACC,MAAsC;AACjE,QAAM;AAAA,IACF,QAAAH;AAAA,IACA,YAAAI;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,IACA,iBAAAC,IAAkB,CAAA;AAAA,IAClB,aAAAC;AAAA,IACA,eAAAC,IAAgB,CAAA;AAAA,IAChB,mBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,oBAAAV,IAAqB,CAAA;AAAA,IACrB,oBAAAW,IAAqB,CAAA;AAAA,IACrB,qBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,oBAAAC,IAAqBC;AAAA,IACrB,UAAAC,IAAW;AAAA,IACX,WAAAC;AAAA,EAAA,IACAjB,GAEEkB,IAAoB,CAACC,EAAQZ,CAAiB,GAE9C,EAAE,YAAAa,GAAY,WAAAC,GAAW,YAAAC,GAAY,qBAAAC,GAAqB,WAAAC,GAAW,YAAAC,EAAA,IAAeC,EAAY;AAAA,IAClG,IAAI7B;AAAA,IACJ,UAAUqB;AAAA,EAAA,CACb,GAEKS,IAAQ;AAAA,IACV,WAAWC,EAAI,UAAU,SAASJ,CAAS;AAAA,IAC3C,YAAAC;AAAA,EAAA,GAIEI,IAAalC,EAAcY,GAAmBV,GAAQC,CAAkB,GAExEgC,IAAiBC,EAAW,uBAAuBd,CAAS,GAE5De,IAAgBxB,EAAeX,CAAM;AAE3C,SACI,gBAAAoC;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,QAAQJ;AAAA,MACR,WAAWC;AAAA,MAEX,KAAKR;AAAA,MACL,OAAAK;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,+CAA8C,KAAKV,GAC9D,UAAA;AAAA,UAAA,gBAAAW,EAAC,OAAA,EAAI,WAAU,gFACX,UAAA,gBAAAA;AAAA,YAACC;AAAA,YAAA;AAAA,cACG,SAAS,CAAC7B,EAAc,SAAST,CAAM;AAAA,cACvC,SAAS,CAAAuC,MAAS;AACd,gBAAAtB,EAAmBjB,CAAM,GACzBuC,EAAM,gBAAA;AAAA,cACV;AAAA,cACA,UAAUhC,EAAgB,SAASP,CAAM;AAAA,YAAA;AAAA,UAAA,GAEjD;AAAA,UACA,gBAAAqC;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,WAAW,6BAA6BhB,IAAoB,YAAY,EAAE;AAAA,cAC1E,YAAUrB;AAAA,cACT,GAAGuB;AAAA,cACH,GAAGC;AAAA,cAEH,
|
|
1
|
+
{"version":3,"file":"TableSettingsListItem.js","sources":["../../../../src/components/table/native/TableSettingsListItem.tsx"],"sourcesContent":["import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isEmpty, noop } from 'es-toolkit/compat';\n\nimport classNames from '../../../utils/classNames';\nimport Checkbox from '../../checkbox/Checkbox';\nimport Collapse from '../../collapse/Collapse';\nimport { TableSettingsColumnDetails } from './TableSettingsColumnDetails';\nimport { TableSettingsColumnButtons } from './TableSettingsColumnButtons';\nimport type { TableSettingsItemProps } from './TableSettingsDialog';\n\nconst MAX_COLUMN_WIDTH = 1000;\n\nexport const filterColumns = (searchValue: string, column: string, columnLabelStrings: Record<string, string>) => {\n if (!searchValue) {\n return false;\n }\n const label = columnLabelStrings[column] || '';\n return !label.toLowerCase().includes(searchValue.toLowerCase());\n};\n\nexport type TableSettingsListItemProps = TableSettingsItemProps & {\n column: string;\n orderIndex: number;\n isActive: boolean;\n className?: string;\n};\n\nconst TableSettingsListItem = (props: TableSettingsListItemProps) => {\n const {\n column,\n orderIndex,\n columnLabels,\n autoLabel,\n disabledColumns = [],\n columnOrder,\n hiddenColumns = [],\n columnSearchValue,\n columnsDetails,\n columnLabelStrings = {},\n openColumnsDetails = {},\n onColumnWidthChange,\n onResetColumnWidth,\n onMoveColumn,\n onOpenDetails,\n onToggleHideColumn = noop,\n isActive = false,\n className,\n } = props;\n\n const isSortingDisabled = !isEmpty(columnSearchValue);\n\n const { attributes, listeners, setNodeRef, setActivatorNodeRef, transform, transition } = useSortable({\n id: column,\n disabled: isSortingDisabled,\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n // Filter out items which don't match the search value.\n const isFiltered = filterColumns(columnSearchValue, column, columnLabelStrings);\n\n const itemClassNames = classNames('table-settings-item', className);\n\n const columnDetails = columnsDetails[column];\n\n return (\n <li\n hidden={isFiltered}\n className={itemClassNames}\n key={`table-settings-item-${column}`}\n ref={setNodeRef}\n style={style}\n >\n <div className='table-settings-item-header user-select-none' ref={setActivatorNodeRef}>\n <div className='CheckboxWrapper display-flex align-items-center padding-left-2 margin-top--3'>\n <Checkbox\n checked={!hiddenColumns.includes(column)}\n onClick={event => {\n onToggleHideColumn(column);\n event.stopPropagation();\n }}\n disabled={disabledColumns.includes(column)}\n />\n </div>\n <div\n className={`table-settings-item-label ${isSortingDisabled ? 'no-drag' : ''}`}\n data-key={column}\n {...attributes}\n {...listeners}\n >\n {columnLabels?.[column]}\n </div>\n {columnDetails && (\n <div className='column-width-label'>\n {columnDetails.width ? `${columnDetails.width}px` : autoLabel}\n </div>\n )}\n <TableSettingsColumnButtons\n column={column}\n index={orderIndex}\n columnDetails={columnDetails}\n columnOrder={columnOrder}\n openColumnsDetails={openColumnsDetails}\n disabled={isSortingDisabled}\n onMoveColumn={onMoveColumn}\n onOpenDetails={onOpenDetails}\n />\n </div>\n {columnDetails && !isActive && (\n <Collapse open={!!openColumnsDetails[column]}>\n <div>\n <TableSettingsColumnDetails\n {...columnDetails}\n column={column}\n maxColumnWidth={MAX_COLUMN_WIDTH}\n onColumnWidthChange={onColumnWidthChange}\n onResetColumnWidth={onResetColumnWidth}\n />\n </div>\n </Collapse>\n )}\n </li>\n );\n};\n\nexport default TableSettingsListItem;\n"],"names":["MAX_COLUMN_WIDTH","filterColumns","searchValue","column","columnLabelStrings","TableSettingsListItem","props","orderIndex","columnLabels","autoLabel","disabledColumns","columnOrder","hiddenColumns","columnSearchValue","columnsDetails","openColumnsDetails","onColumnWidthChange","onResetColumnWidth","onMoveColumn","onOpenDetails","onToggleHideColumn","noop","isActive","className","isSortingDisabled","isEmpty","attributes","listeners","setNodeRef","setActivatorNodeRef","transform","transition","useSortable","style","CSS","isFiltered","itemClassNames","classNames","columnDetails","jsxs","jsx","Checkbox","event","TableSettingsColumnButtons","Collapse","TableSettingsColumnDetails"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
import { TableHtmlAttributes, TableRowData } from '../../Table.types';
|
|
3
|
+
import { RenderBodyRow, TableRenderContextValue } from '../../context/TableRenderContext';
|
|
4
|
+
import { TableRenderConfigContextValue } from '../../context/TableRenderConfigContext';
|
|
5
|
+
export type TableBodyContentProps = {
|
|
6
|
+
columnCount: number;
|
|
7
|
+
hasDeclaredChildren: boolean;
|
|
8
|
+
htmlAttributes: TableHtmlAttributes;
|
|
9
|
+
isVirtualized: boolean;
|
|
10
|
+
itemsRef: MutableRefObject<HTMLDivElement | null>;
|
|
11
|
+
paddingBottom: number;
|
|
12
|
+
paddingTop: number;
|
|
13
|
+
renderConfigContext: TableRenderConfigContextValue<TableRowData>;
|
|
14
|
+
renderContext: TableRenderContextValue<TableRowData>;
|
|
15
|
+
shouldAnimateBodyRows: boolean;
|
|
16
|
+
virtualRows: Array<{
|
|
17
|
+
row: RenderBodyRow<TableRowData>;
|
|
18
|
+
}>;
|
|
19
|
+
};
|
|
20
|
+
declare const TableBodyContent: (props: TableBodyContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export default TableBodyContent;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsxs as w, Fragment as g, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { AnimatePresence as v } from "motion/react";
|
|
3
|
+
import { isValidElement as B, cloneElement as C } from "react";
|
|
4
|
+
import x from "./TableEmptyRow.js";
|
|
5
|
+
const j = (m) => {
|
|
6
|
+
const {
|
|
7
|
+
columnCount: c,
|
|
8
|
+
hasDeclaredChildren: u,
|
|
9
|
+
htmlAttributes: p,
|
|
10
|
+
isVirtualized: d,
|
|
11
|
+
itemsRef: y,
|
|
12
|
+
paddingBottom: i,
|
|
13
|
+
paddingTop: l,
|
|
14
|
+
renderConfigContext: h,
|
|
15
|
+
renderContext: o,
|
|
16
|
+
shouldAnimateBodyRows: f,
|
|
17
|
+
virtualRows: R
|
|
18
|
+
} = m, a = (e) => {
|
|
19
|
+
const n = `${e.kind}-${String(e.rowId)}`, s = o.renderBodyRow?.(e);
|
|
20
|
+
return B(s) ? C(s, { key: n }) : null;
|
|
21
|
+
}, b = (e) => {
|
|
22
|
+
y.current = e;
|
|
23
|
+
}, r = (e) => /* @__PURE__ */ t(
|
|
24
|
+
"div",
|
|
25
|
+
{
|
|
26
|
+
...p,
|
|
27
|
+
className: "table-body",
|
|
28
|
+
ref: d ? b : void 0,
|
|
29
|
+
role: "rowgroup",
|
|
30
|
+
children: e
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
if (d)
|
|
34
|
+
return r(
|
|
35
|
+
/* @__PURE__ */ w(g, { children: [
|
|
36
|
+
l > 0 ? /* @__PURE__ */ t("div", { "aria-hidden": !0, className: "table-body-virtual-spacer", style: { height: l } }) : null,
|
|
37
|
+
R.map(({ row: e }) => a(e)),
|
|
38
|
+
i > 0 ? /* @__PURE__ */ t("div", { "aria-hidden": !0, className: "table-body-virtual-spacer", style: { height: i } }) : null
|
|
39
|
+
] })
|
|
40
|
+
);
|
|
41
|
+
if (o.bodyRows.length > 0) {
|
|
42
|
+
const e = o.bodyRows.map((n) => a(n));
|
|
43
|
+
return r(
|
|
44
|
+
f ? /* @__PURE__ */ t(v, { initial: !1, children: e }) : e
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
return r(u ? null : /* @__PURE__ */ t(x, { columnCount: c, content: h.noRowsState }));
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
j as default
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=TableBodyContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableBodyContent.js","sources":["../../../../../src/components/table/render/body/TableBodyContent.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport { cloneElement, isValidElement, type MutableRefObject, type ReactElement, type ReactNode } from 'react';\n\nimport type { TableHtmlAttributes, TableRowData } from '../../Table.types';\nimport type { RenderBodyRow, TableRenderContextValue } from '../../context/TableRenderContext';\nimport type { TableRenderConfigContextValue } from '../../context/TableRenderConfigContext';\nimport TableEmptyRow from './TableEmptyRow';\n\nexport type TableBodyContentProps = {\n columnCount: number;\n hasDeclaredChildren: boolean;\n htmlAttributes: TableHtmlAttributes;\n isVirtualized: boolean;\n itemsRef: MutableRefObject<HTMLDivElement | null>;\n paddingBottom: number;\n paddingTop: number;\n renderConfigContext: TableRenderConfigContextValue<TableRowData>;\n renderContext: TableRenderContextValue<TableRowData>;\n shouldAnimateBodyRows: boolean;\n virtualRows: Array<{ row: RenderBodyRow<TableRowData> }>;\n};\n\nconst TableBodyContent = (props: TableBodyContentProps) => {\n const {\n columnCount,\n hasDeclaredChildren,\n htmlAttributes,\n isVirtualized,\n itemsRef,\n paddingBottom,\n paddingTop,\n renderConfigContext,\n renderContext,\n shouldAnimateBodyRows,\n virtualRows,\n } = props;\n\n const renderResolvedBodyRow = (row: RenderBodyRow<TableRowData>) => {\n const rowKey = `${row.kind}-${String(row.rowId)}`;\n const renderedRow = renderContext.renderBodyRow?.(row);\n\n return isValidElement(renderedRow) ? cloneElement(renderedRow as ReactElement, { key: rowKey }) : null;\n };\n\n const handleItemsRef = (element: HTMLDivElement | null) => {\n itemsRef.current = element;\n };\n\n const renderBodyWrapper = (content: ReactNode) => (\n <div\n {...htmlAttributes}\n className='table-body'\n ref={isVirtualized ? handleItemsRef : undefined}\n role='rowgroup'\n >\n {content}\n </div>\n );\n\n if (isVirtualized) {\n return renderBodyWrapper(\n <>\n {paddingTop > 0 ? (\n <div aria-hidden className='table-body-virtual-spacer' style={{ height: paddingTop }} />\n ) : null}\n {virtualRows.map(({ row }) => renderResolvedBodyRow(row))}\n {paddingBottom > 0 ? (\n <div aria-hidden className='table-body-virtual-spacer' style={{ height: paddingBottom }} />\n ) : null}\n </>\n );\n }\n\n if (renderContext.bodyRows.length > 0) {\n const renderedBodyRows = renderContext.bodyRows.map(row => renderResolvedBodyRow(row));\n\n return renderBodyWrapper(\n shouldAnimateBodyRows ? (\n <AnimatePresence initial={false}>{renderedBodyRows}</AnimatePresence>\n ) : (\n renderedBodyRows\n )\n );\n }\n\n if (!hasDeclaredChildren) {\n return renderBodyWrapper(<TableEmptyRow columnCount={columnCount} content={renderConfigContext.noRowsState} />);\n }\n\n return renderBodyWrapper(null);\n};\n\nexport default TableBodyContent;\n"],"names":["TableBodyContent","props","columnCount","hasDeclaredChildren","htmlAttributes","isVirtualized","itemsRef","paddingBottom","paddingTop","renderConfigContext","renderContext","shouldAnimateBodyRows","virtualRows","renderResolvedBodyRow","row","rowKey","renderedRow","isValidElement","cloneElement","handleItemsRef","element","renderBodyWrapper","content","jsx","jsxs","Fragment","renderedBodyRows","AnimatePresence","TableEmptyRow"],"mappings":";;;;AAsBA,MAAMA,IAAmB,CAACC,MAAiC;AACvD,QAAM;AAAA,IACF,aAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,IACAX,GAEEY,IAAwB,CAACC,MAAqC;AAChE,UAAMC,IAAS,GAAGD,EAAI,IAAI,IAAI,OAAOA,EAAI,KAAK,CAAC,IACzCE,IAAcN,EAAc,gBAAgBI,CAAG;AAErD,WAAOG,EAAeD,CAAW,IAAIE,EAAaF,GAA6B,EAAE,KAAKD,EAAA,CAAQ,IAAI;AAAA,EACtG,GAEMI,IAAiB,CAACC,MAAmC;AACvD,IAAAd,EAAS,UAAUc;AAAA,EACvB,GAEMC,IAAoB,CAACC,MACvB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGnB;AAAA,MACJ,WAAU;AAAA,MACV,KAAKC,IAAgBc,IAAiB;AAAA,MACtC,MAAK;AAAA,MAEJ,UAAAG;AAAA,IAAA;AAAA,EAAA;AAIT,MAAIjB;AACA,WAAOgB;AAAA,MACH,gBAAAG,EAAAC,GAAA,EACK,UAAA;AAAA,QAAAjB,IAAa,IACV,gBAAAe,EAAC,OAAA,EAAI,eAAW,IAAC,WAAU,6BAA4B,OAAO,EAAE,QAAQf,EAAA,EAAW,CAAG,IACtF;AAAA,QACHI,EAAY,IAAI,CAAC,EAAE,KAAAE,QAAUD,EAAsBC,CAAG,CAAC;AAAA,QACvDP,IAAgB,IACb,gBAAAgB,EAAC,OAAA,EAAI,eAAW,IAAC,WAAU,6BAA4B,OAAO,EAAE,QAAQhB,EAAA,GAAiB,IACzF;AAAA,MAAA,EAAA,CACR;AAAA,IAAA;AAIR,MAAIG,EAAc,SAAS,SAAS,GAAG;AACnC,UAAMgB,IAAmBhB,EAAc,SAAS,IAAI,CAAAI,MAAOD,EAAsBC,CAAG,CAAC;AAErF,WAAOO;AAAA,MACHV,IACI,gBAAAY,EAACI,GAAA,EAAgB,SAAS,IAAQ,aAAiB,IAEnDD;AAAA,IAAA;AAAA,EAGZ;AAEA,SAIOL,EAJFlB,IAIoB,OAHI,gBAAAoB,EAACK,GAAA,EAAc,aAAA1B,GAA0B,SAASO,EAAoB,aAAa,CAGnF;AACjC;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
const
|
|
2
|
+
const r = ({ columnCount: l, content: a, dataIndex: t }) => /* @__PURE__ */ e("div", { className: "table-row table-row-empty table-row-no-hover", "data-index": t, role: "row", children: /* @__PURE__ */ e("div", { className: "table-cell table-empty", role: "cell", "aria-colspan": l, children: /* @__PURE__ */ e("div", { className: "table-cell-content", children: a }) }) });
|
|
3
3
|
export {
|
|
4
|
-
|
|
4
|
+
r as default
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=TableEmptyRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableEmptyRow.js","sources":["../../../../../src/components/table/render/body/TableEmptyRow.tsx"],"sourcesContent":["type TableEmptyRowProps = {\n columnCount: number;\n content: React.ReactNode;\n dataIndex?: number;\n};\n\nconst TableEmptyRow = ({ columnCount, content, dataIndex }: TableEmptyRowProps) => (\n <div className='table-row table-row-empty' data-index={dataIndex} role='row'>\n <div className='table-cell table-empty' role='cell' aria-colspan={columnCount}>\n <div className='table-cell-content'>{content}</div>\n </div>\n </div>\n);\n\nexport default TableEmptyRow;\n"],"names":["TableEmptyRow","columnCount","content","dataIndex","jsx"],"mappings":";AAMA,MAAMA,IAAgB,CAAC,EAAE,aAAAC,GAAa,SAAAC,GAAS,WAAAC,EAAA,MAC3C,gBAAAC,EAAC,OAAA,EAAI,WAAU,
|
|
1
|
+
{"version":3,"file":"TableEmptyRow.js","sources":["../../../../../src/components/table/render/body/TableEmptyRow.tsx"],"sourcesContent":["type TableEmptyRowProps = {\n columnCount: number;\n content: React.ReactNode;\n dataIndex?: number;\n};\n\nconst TableEmptyRow = ({ columnCount, content, dataIndex }: TableEmptyRowProps) => (\n <div className='table-row table-row-empty table-row-no-hover' data-index={dataIndex} role='row'>\n <div className='table-cell table-empty' role='cell' aria-colspan={columnCount}>\n <div className='table-cell-content'>{content}</div>\n </div>\n </div>\n);\n\nexport default TableEmptyRow;\n"],"names":["TableEmptyRow","columnCount","content","dataIndex","jsx"],"mappings":";AAMA,MAAMA,IAAgB,CAAC,EAAE,aAAAC,GAAa,SAAAC,GAAS,WAAAC,EAAA,MAC3C,gBAAAC,EAAC,OAAA,EAAI,WAAU,gDAA+C,cAAYD,GAAW,MAAK,OACtF,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,0BAAyB,MAAK,QAAO,gBAAcH,GAC9D,UAAA,gBAAAG,EAAC,OAAA,EAAI,WAAU,sBAAsB,UAAAF,EAAA,CAAQ,GACjD,EAAA,CACJ;"}
|