@vuu-ui/vuu-table 0.7.0-debug → 0.7.1-debug
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/cjs/index.js +125 -72
- package/cjs/index.js.map +4 -4
- package/esm/index.js +106 -48
- package/esm/index.js.map +4 -4
- package/package.json +5 -5
- package/types/Table.d.ts +1 -1
- package/types/context-menu/index.d.ts +1 -1
- package/types/context-menu/{useContextMenu.d.ts → useTableContextMenu.d.ts} +1 -1
- package/types/index.d.ts +3 -0
- package/types/useMeasuredContainer.d.ts +5 -0
- package/types/useTable.d.ts +2 -2
package/cjs/index.js
CHANGED
|
@@ -31,14 +31,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var src_exports = {};
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
Table: () => Table,
|
|
34
|
-
|
|
34
|
+
buildContextMenuDescriptors: () => buildContextMenuDescriptors,
|
|
35
|
+
useMeasuredContainer: () => useMeasuredContainer,
|
|
36
|
+
useTableContextMenu: () => useTableContextMenu,
|
|
37
|
+
useTableModel: () => useTableModel,
|
|
38
|
+
useTableViewport: () => useTableViewport
|
|
35
39
|
});
|
|
36
40
|
module.exports = __toCommonJS(src_exports);
|
|
37
41
|
|
|
38
|
-
// src/Table.tsx
|
|
39
|
-
var import_vuu_popups4 = require("@vuu-ui/vuu-popups");
|
|
40
|
-
var import_core = require("@salt-ds/core");
|
|
41
|
-
|
|
42
42
|
// src/context-menu/buildContextMenuDescriptors.ts
|
|
43
43
|
var import_vuu_utils = require("@vuu-ui/vuu-utils");
|
|
44
44
|
var buildContextMenuDescriptors = (dataSource) => (location, options) => {
|
|
@@ -254,7 +254,7 @@ function buildGroupMenuItems(options, { groupBy }) {
|
|
|
254
254
|
return menuItems;
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
-
// src/context-menu/
|
|
257
|
+
// src/context-menu/useTableContextMenu.ts
|
|
258
258
|
var import_vuu_filters = require("@vuu-ui/vuu-filters");
|
|
259
259
|
var import_vuu_utils2 = require("@vuu-ui/vuu-utils");
|
|
260
260
|
var removeFilterColumn = (dataSourceFilter, column) => {
|
|
@@ -272,7 +272,7 @@ var removeFilterColumn = (dataSourceFilter, column) => {
|
|
|
272
272
|
}
|
|
273
273
|
};
|
|
274
274
|
var { Average, Count, High, Low, Sum } = import_vuu_utils2.AggregationType;
|
|
275
|
-
var
|
|
275
|
+
var useTableContextMenu = ({
|
|
276
276
|
dataSource,
|
|
277
277
|
onPersistentColumnOperation
|
|
278
278
|
}) => {
|
|
@@ -327,6 +327,10 @@ var useContextMenu = ({
|
|
|
327
327
|
return handleContextMenuAction;
|
|
328
328
|
};
|
|
329
329
|
|
|
330
|
+
// src/Table.tsx
|
|
331
|
+
var import_vuu_popups4 = require("@vuu-ui/vuu-popups");
|
|
332
|
+
var import_core = require("@salt-ds/core");
|
|
333
|
+
|
|
330
334
|
// src/RowBasedTable.tsx
|
|
331
335
|
var import_vuu_utils6 = require("@vuu-ui/vuu-utils");
|
|
332
336
|
var import_react9 = require("react");
|
|
@@ -373,9 +377,12 @@ var TableCell = (0, import_react.memo)(
|
|
|
373
377
|
setEditing(true);
|
|
374
378
|
}
|
|
375
379
|
};
|
|
376
|
-
const handleClick = (0, import_react.useCallback)(
|
|
377
|
-
|
|
378
|
-
|
|
380
|
+
const handleClick = (0, import_react.useCallback)(
|
|
381
|
+
(evt) => {
|
|
382
|
+
onClick == null ? void 0 : onClick(evt, column);
|
|
383
|
+
},
|
|
384
|
+
[column, onClick]
|
|
385
|
+
);
|
|
379
386
|
const handleEnterEditMode = () => {
|
|
380
387
|
setEditing(true);
|
|
381
388
|
};
|
|
@@ -461,9 +468,12 @@ var getGroupValueAndOffset = (columns, row) => {
|
|
|
461
468
|
var TableGroupCell = ({ column, onClick, row }) => {
|
|
462
469
|
const { columns } = column;
|
|
463
470
|
const [value, offset] = getGroupValueAndOffset(columns, row);
|
|
464
|
-
const handleClick = (0, import_react2.useCallback)(
|
|
465
|
-
|
|
466
|
-
|
|
471
|
+
const handleClick = (0, import_react2.useCallback)(
|
|
472
|
+
(evt) => {
|
|
473
|
+
onClick == null ? void 0 : onClick(evt, column);
|
|
474
|
+
},
|
|
475
|
+
[column, onClick]
|
|
476
|
+
);
|
|
467
477
|
const style = (0, import_vuu_utils4.getColumnStyle)(column);
|
|
468
478
|
const isLeaf = row[IS_LEAF];
|
|
469
479
|
const spacers = Array(offset).fill(0).map((n, i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "vuuTableGroupCell-spacer" }, i));
|
|
@@ -515,8 +525,9 @@ var TableRow = (0, import_react3.memo)(function Row({
|
|
|
515
525
|
[onClick, row]
|
|
516
526
|
);
|
|
517
527
|
const handleGroupCellClick = (0, import_react3.useCallback)(
|
|
518
|
-
(column) => {
|
|
528
|
+
(evt, column) => {
|
|
519
529
|
if ((0, import_vuu_utils5.isGroupColumn)(column) || (0, import_vuu_utils5.isJsonGroup)(column, row)) {
|
|
530
|
+
evt.stopPropagation();
|
|
520
531
|
onToggleGroup == null ? void 0 : onToggleGroup(row, column);
|
|
521
532
|
}
|
|
522
533
|
},
|
|
@@ -935,7 +946,7 @@ var RowBasedTable = ({
|
|
|
935
946
|
|
|
936
947
|
// src/useTable.ts
|
|
937
948
|
var import_vuu_popups3 = require("@vuu-ui/vuu-popups");
|
|
938
|
-
var
|
|
949
|
+
var import_vuu_utils14 = require("@vuu-ui/vuu-utils");
|
|
939
950
|
var import_react20 = require("react");
|
|
940
951
|
|
|
941
952
|
// src/useDataSource.ts
|
|
@@ -1449,6 +1460,7 @@ var useKeyboardNavigation = ({
|
|
|
1449
1460
|
};
|
|
1450
1461
|
|
|
1451
1462
|
// src/useMeasuredContainer.ts
|
|
1463
|
+
var import_vuu_utils9 = require("@vuu-ui/vuu-utils");
|
|
1452
1464
|
var import_react14 = require("react");
|
|
1453
1465
|
|
|
1454
1466
|
// src/useResizeObserver.ts
|
|
@@ -1571,6 +1583,25 @@ function useResizeObserver(ref, dimensions, onResize, reportInitialSize = false)
|
|
|
1571
1583
|
// src/useMeasuredContainer.ts
|
|
1572
1584
|
var ClientWidthHeight = ["clientHeight", "clientWidth"];
|
|
1573
1585
|
var isNumber = (val) => Number.isFinite(val);
|
|
1586
|
+
var FULL_SIZE = { height: "100%", width: "100%" };
|
|
1587
|
+
var getInitialCssSize = (height, width) => {
|
|
1588
|
+
if ((0, import_vuu_utils9.isValidNumber)(height) && (0, import_vuu_utils9.isValidNumber)(width)) {
|
|
1589
|
+
return {
|
|
1590
|
+
height: `${height}px`,
|
|
1591
|
+
width: `${width}px`
|
|
1592
|
+
};
|
|
1593
|
+
} else {
|
|
1594
|
+
return FULL_SIZE;
|
|
1595
|
+
}
|
|
1596
|
+
};
|
|
1597
|
+
var getInitialInnerSize = (height, width) => {
|
|
1598
|
+
if ((0, import_vuu_utils9.isValidNumber)(height) && (0, import_vuu_utils9.isValidNumber)(width)) {
|
|
1599
|
+
return {
|
|
1600
|
+
height,
|
|
1601
|
+
width
|
|
1602
|
+
};
|
|
1603
|
+
}
|
|
1604
|
+
};
|
|
1574
1605
|
var useMeasuredContainer = ({
|
|
1575
1606
|
defaultHeight = 0,
|
|
1576
1607
|
defaultWidth = 0,
|
|
@@ -1579,17 +1610,38 @@ var useMeasuredContainer = ({
|
|
|
1579
1610
|
}) => {
|
|
1580
1611
|
const containerRef = (0, import_react14.useRef)(null);
|
|
1581
1612
|
const [size, setSize] = (0, import_react14.useState)({
|
|
1613
|
+
css: getInitialCssSize(height, width),
|
|
1614
|
+
inner: getInitialInnerSize(height, width),
|
|
1582
1615
|
outer: {
|
|
1583
1616
|
height: height != null ? height : "100%",
|
|
1584
1617
|
width: width != null ? width : "100%"
|
|
1585
1618
|
}
|
|
1586
1619
|
});
|
|
1620
|
+
(0, import_react14.useMemo)(() => {
|
|
1621
|
+
setSize((currentSize) => {
|
|
1622
|
+
const { inner, outer } = currentSize;
|
|
1623
|
+
if ((0, import_vuu_utils9.isValidNumber)(height) && (0, import_vuu_utils9.isValidNumber)(width) && inner && outer) {
|
|
1624
|
+
const { height: innerHeight, width: innerWidth } = inner;
|
|
1625
|
+
const { height: outerHeight, width: outerWidth } = outer;
|
|
1626
|
+
if (outerHeight !== height || outerWidth !== width) {
|
|
1627
|
+
const heightDiff = (0, import_vuu_utils9.isValidNumber)(outerHeight) ? outerHeight - innerHeight : 0;
|
|
1628
|
+
const widthDiff = (0, import_vuu_utils9.isValidNumber)(outerWidth) ? outerWidth - innerWidth : 0;
|
|
1629
|
+
return {
|
|
1630
|
+
...currentSize,
|
|
1631
|
+
outer: { height, width },
|
|
1632
|
+
inner: { height: height - heightDiff, width: width - widthDiff }
|
|
1633
|
+
};
|
|
1634
|
+
}
|
|
1635
|
+
}
|
|
1636
|
+
return currentSize;
|
|
1637
|
+
});
|
|
1638
|
+
}, [height, width]);
|
|
1587
1639
|
const onResize = (0, import_react14.useCallback)(
|
|
1588
1640
|
({ clientWidth, clientHeight }) => {
|
|
1589
|
-
console.log(`Resize ${clientHeight}`);
|
|
1590
1641
|
setSize((currentSize) => {
|
|
1591
|
-
const { inner, outer } = currentSize;
|
|
1642
|
+
const { css, inner, outer } = currentSize;
|
|
1592
1643
|
return isNumber(clientHeight) && isNumber(clientWidth) && (clientWidth !== (inner == null ? void 0 : inner.width) || clientHeight !== (inner == null ? void 0 : inner.height)) ? {
|
|
1644
|
+
css,
|
|
1593
1645
|
outer,
|
|
1594
1646
|
inner: {
|
|
1595
1647
|
width: Math.floor(clientWidth) || defaultWidth,
|
|
@@ -1603,15 +1655,16 @@ var useMeasuredContainer = ({
|
|
|
1603
1655
|
useResizeObserver(containerRef, ClientWidthHeight, onResize, true);
|
|
1604
1656
|
return {
|
|
1605
1657
|
containerRef,
|
|
1658
|
+
cssSize: size.css,
|
|
1606
1659
|
outerSize: size.outer,
|
|
1607
1660
|
innerSize: size.inner
|
|
1608
1661
|
};
|
|
1609
1662
|
};
|
|
1610
1663
|
|
|
1611
1664
|
// src/useSelection.ts
|
|
1612
|
-
var
|
|
1665
|
+
var import_vuu_utils10 = require("@vuu-ui/vuu-utils");
|
|
1613
1666
|
var import_react15 = require("react");
|
|
1614
|
-
var { IDX: IDX2, SELECTED: SELECTED3 } =
|
|
1667
|
+
var { IDX: IDX2, SELECTED: SELECTED3 } = import_vuu_utils10.metadataKeys;
|
|
1615
1668
|
var NO_SELECTION = [];
|
|
1616
1669
|
var useSelection = ({
|
|
1617
1670
|
selectionModel,
|
|
@@ -1625,7 +1678,7 @@ var useSelection = ({
|
|
|
1625
1678
|
const { [IDX2]: idx, [SELECTED3]: isSelected } = row;
|
|
1626
1679
|
const { current: active } = lastActiveRef;
|
|
1627
1680
|
const { current: selected } = selectedRef;
|
|
1628
|
-
const selectOperation = isSelected ?
|
|
1681
|
+
const selectOperation = isSelected ? import_vuu_utils10.deselectItem : import_vuu_utils10.selectItem;
|
|
1629
1682
|
const newSelected = selectOperation(
|
|
1630
1683
|
selectionModel,
|
|
1631
1684
|
selected,
|
|
@@ -1647,16 +1700,16 @@ var useSelection = ({
|
|
|
1647
1700
|
|
|
1648
1701
|
// src/useTableModel.ts
|
|
1649
1702
|
var import_salt_lab3 = require("@heswell/salt-lab");
|
|
1650
|
-
var
|
|
1703
|
+
var import_vuu_utils11 = require("@vuu-ui/vuu-utils");
|
|
1651
1704
|
var import_react16 = require("react");
|
|
1652
|
-
var { info } = (0,
|
|
1705
|
+
var { info } = (0, import_vuu_utils11.logger)("useTableModel");
|
|
1653
1706
|
var DEFAULT_COLUMN_WIDTH = 100;
|
|
1654
|
-
var KEY_OFFSET =
|
|
1707
|
+
var KEY_OFFSET = import_vuu_utils11.metadataKeys.count;
|
|
1655
1708
|
var columnWithoutDataType = ({ serverDataType }) => serverDataType === void 0;
|
|
1656
1709
|
var getCellRendererForColumn = (column) => {
|
|
1657
1710
|
var _a;
|
|
1658
|
-
if ((0,
|
|
1659
|
-
return (0,
|
|
1711
|
+
if ((0, import_vuu_utils11.isTypeDescriptor)(column.type)) {
|
|
1712
|
+
return (0, import_vuu_utils11.getCellRenderer)((_a = column.type) == null ? void 0 : _a.renderer);
|
|
1660
1713
|
}
|
|
1661
1714
|
};
|
|
1662
1715
|
var getDataType = (column, columnNames, dataTypes) => {
|
|
@@ -1708,10 +1761,10 @@ function init({ dataSourceConfig, tableConfig }) {
|
|
|
1708
1761
|
const columns = tableConfig.columns.map(
|
|
1709
1762
|
toKeyedColumWithDefaults(tableConfig)
|
|
1710
1763
|
);
|
|
1711
|
-
const maybePinnedColumns = columns.some(
|
|
1764
|
+
const maybePinnedColumns = columns.some(import_vuu_utils11.isPinned) ? (0, import_vuu_utils11.sortPinnedColumns)(columns) : columns;
|
|
1712
1765
|
const state = {
|
|
1713
1766
|
columns: maybePinnedColumns,
|
|
1714
|
-
headings: (0,
|
|
1767
|
+
headings: (0, import_vuu_utils11.getTableHeadings)(maybePinnedColumns)
|
|
1715
1768
|
};
|
|
1716
1769
|
if (dataSourceConfig) {
|
|
1717
1770
|
const { columns: columns2, ...rest } = dataSourceConfig;
|
|
@@ -1749,10 +1802,10 @@ var toKeyedColumWithDefaults = (options) => (column, index) => {
|
|
|
1749
1802
|
key: key != null ? key : index + KEY_OFFSET,
|
|
1750
1803
|
name,
|
|
1751
1804
|
originalIdx: index,
|
|
1752
|
-
valueFormatter: (0,
|
|
1805
|
+
valueFormatter: (0, import_vuu_utils11.getValueFormatter)(column),
|
|
1753
1806
|
width
|
|
1754
1807
|
};
|
|
1755
|
-
if ((0,
|
|
1808
|
+
if ((0, import_vuu_utils11.isGroupColumn)(keyedColumnWithDefaults)) {
|
|
1756
1809
|
keyedColumnWithDefaults.columns = keyedColumnWithDefaults.columns.map(
|
|
1757
1810
|
(col) => toKeyedColumWithDefaults(options)(col, col.key)
|
|
1758
1811
|
);
|
|
@@ -1852,7 +1905,7 @@ function pinColumn2(state, action) {
|
|
|
1852
1905
|
const targetColumn = columns.find((col) => col.name === column.name);
|
|
1853
1906
|
if (targetColumn) {
|
|
1854
1907
|
columns = replaceColumn(columns, { ...targetColumn, pin });
|
|
1855
|
-
columns = (0,
|
|
1908
|
+
columns = (0, import_vuu_utils11.sortPinnedColumns)(columns);
|
|
1856
1909
|
return {
|
|
1857
1910
|
...state,
|
|
1858
1911
|
columns
|
|
@@ -1897,9 +1950,9 @@ function updateTableConfig(state, { columns, confirmed, filter, groupBy, sort })
|
|
|
1897
1950
|
result = {
|
|
1898
1951
|
...state,
|
|
1899
1952
|
columns: columns.map((colName, index) => {
|
|
1900
|
-
const columnName = (0,
|
|
1953
|
+
const columnName = (0, import_vuu_utils11.getColumnName)(colName);
|
|
1901
1954
|
const key = index + KEY_OFFSET;
|
|
1902
|
-
const col = (0,
|
|
1955
|
+
const col = (0, import_vuu_utils11.findColumn)(result.columns, columnName);
|
|
1903
1956
|
if (col) {
|
|
1904
1957
|
if (col.key === key) {
|
|
1905
1958
|
return col;
|
|
@@ -1917,24 +1970,24 @@ function updateTableConfig(state, { columns, confirmed, filter, groupBy, sort })
|
|
|
1917
1970
|
if (hasGroupBy) {
|
|
1918
1971
|
result = {
|
|
1919
1972
|
...state,
|
|
1920
|
-
columns: (0,
|
|
1973
|
+
columns: (0, import_vuu_utils11.applyGroupByToColumns)(result.columns, groupBy, confirmed)
|
|
1921
1974
|
};
|
|
1922
1975
|
}
|
|
1923
1976
|
if (hasSort) {
|
|
1924
1977
|
result = {
|
|
1925
1978
|
...state,
|
|
1926
|
-
columns: (0,
|
|
1979
|
+
columns: (0, import_vuu_utils11.applySortToColumns)(result.columns, sort)
|
|
1927
1980
|
};
|
|
1928
1981
|
}
|
|
1929
1982
|
if (hasFilter) {
|
|
1930
1983
|
result = {
|
|
1931
1984
|
...state,
|
|
1932
|
-
columns: (0,
|
|
1985
|
+
columns: (0, import_vuu_utils11.applyFilterToColumns)(result.columns, filter)
|
|
1933
1986
|
};
|
|
1934
|
-
} else if (result.columns.some(
|
|
1987
|
+
} else if (result.columns.some(import_vuu_utils11.isFilteredColumn)) {
|
|
1935
1988
|
result = {
|
|
1936
1989
|
...state,
|
|
1937
|
-
columns: (0,
|
|
1990
|
+
columns: (0, import_vuu_utils11.stripFilterFromColumns)(result.columns)
|
|
1938
1991
|
};
|
|
1939
1992
|
}
|
|
1940
1993
|
return result;
|
|
@@ -2110,7 +2163,7 @@ var useTableScroll = ({
|
|
|
2110
2163
|
|
|
2111
2164
|
// src/useTableViewport.ts
|
|
2112
2165
|
var import_react18 = require("react");
|
|
2113
|
-
var
|
|
2166
|
+
var import_vuu_utils12 = require("@vuu-ui/vuu-utils");
|
|
2114
2167
|
var MAX_RAW_ROWS = 15e5;
|
|
2115
2168
|
var UNMEASURED_VIEWPORT = {
|
|
2116
2169
|
contentHeight: 0,
|
|
@@ -2163,12 +2216,12 @@ var useTableViewport = ({
|
|
|
2163
2216
|
[columns]
|
|
2164
2217
|
);
|
|
2165
2218
|
const [actualRowOffset, actualRowAtPosition] = (0, import_react18.useMemo)(
|
|
2166
|
-
() => (0,
|
|
2219
|
+
() => (0, import_vuu_utils12.actualRowPositioning)(rowHeight),
|
|
2167
2220
|
[rowHeight]
|
|
2168
2221
|
);
|
|
2169
2222
|
const [getRowOffset, getRowAtPosition] = (0, import_react18.useMemo)(() => {
|
|
2170
2223
|
if (virtualisedExtent) {
|
|
2171
|
-
return (0,
|
|
2224
|
+
return (0, import_vuu_utils12.virtualRowPositioning)(
|
|
2172
2225
|
rowHeight,
|
|
2173
2226
|
virtualisedExtent,
|
|
2174
2227
|
pctScrollTopRef
|
|
@@ -2229,7 +2282,7 @@ var useTableViewport = ({
|
|
|
2229
2282
|
};
|
|
2230
2283
|
|
|
2231
2284
|
// src/useVirtualViewport.ts
|
|
2232
|
-
var
|
|
2285
|
+
var import_vuu_utils13 = require("@vuu-ui/vuu-utils");
|
|
2233
2286
|
var import_react19 = require("react");
|
|
2234
2287
|
var useVirtualViewport = ({
|
|
2235
2288
|
columns,
|
|
@@ -2246,7 +2299,7 @@ var useVirtualViewport = ({
|
|
|
2246
2299
|
const availableWidth = contentWidth - maxScrollContainerScrollHorizontal;
|
|
2247
2300
|
const scrollLeftRef = (0, import_react19.useRef)(0);
|
|
2248
2301
|
const [visibleColumns, preSpan] = (0, import_react19.useMemo)(
|
|
2249
|
-
() => (0,
|
|
2302
|
+
() => (0, import_vuu_utils13.getColumnsInViewport)(
|
|
2250
2303
|
columns,
|
|
2251
2304
|
scrollLeftRef.current,
|
|
2252
2305
|
scrollLeftRef.current + availableWidth
|
|
@@ -2261,12 +2314,12 @@ var useVirtualViewport = ({
|
|
|
2261
2314
|
const handleHorizontalScroll = (0, import_react19.useCallback)(
|
|
2262
2315
|
(scrollLeft) => {
|
|
2263
2316
|
scrollLeftRef.current = scrollLeft;
|
|
2264
|
-
const [visibleColumns2, pre] = (0,
|
|
2317
|
+
const [visibleColumns2, pre] = (0, import_vuu_utils13.getColumnsInViewport)(
|
|
2265
2318
|
columns,
|
|
2266
2319
|
scrollLeft,
|
|
2267
2320
|
scrollLeft + availableWidth
|
|
2268
2321
|
);
|
|
2269
|
-
if ((0,
|
|
2322
|
+
if ((0, import_vuu_utils13.itemsChanged)(columnsWithinViewport, visibleColumns2)) {
|
|
2270
2323
|
preSpanRef.current = pre;
|
|
2271
2324
|
setColumnsWithinViewport(visibleColumns2);
|
|
2272
2325
|
}
|
|
@@ -2294,7 +2347,7 @@ var useVirtualViewport = ({
|
|
|
2294
2347
|
|
|
2295
2348
|
// src/useTable.ts
|
|
2296
2349
|
var NO_ROWS = [];
|
|
2297
|
-
var { KEY: KEY2, IS_EXPANDED: IS_EXPANDED2, IS_LEAF: IS_LEAF2 } =
|
|
2350
|
+
var { KEY: KEY2, IS_EXPANDED: IS_EXPANDED2, IS_LEAF: IS_LEAF2 } = import_vuu_utils14.metadataKeys;
|
|
2298
2351
|
var useTable = ({
|
|
2299
2352
|
config,
|
|
2300
2353
|
dataSource,
|
|
@@ -2309,12 +2362,12 @@ var useTable = ({
|
|
|
2309
2362
|
...measuredProps
|
|
2310
2363
|
}) => {
|
|
2311
2364
|
var _a, _b;
|
|
2312
|
-
const [rowCount, setRowCount] = (0, import_react20.useState)(
|
|
2365
|
+
const [rowCount, setRowCount] = (0, import_react20.useState)(dataSource.size);
|
|
2313
2366
|
const expectConfigChangeRef = (0, import_react20.useRef)(false);
|
|
2314
2367
|
const dataSourceRef = (0, import_react20.useRef)();
|
|
2315
2368
|
dataSourceRef.current = dataSource;
|
|
2316
2369
|
if (dataSource === void 0) {
|
|
2317
|
-
throw Error("no data source provided to
|
|
2370
|
+
throw Error("no data source provided to Vuu Table");
|
|
2318
2371
|
}
|
|
2319
2372
|
const containerMeasurements = useMeasuredContainer(measuredProps);
|
|
2320
2373
|
const onDataRowcountChange = (0, import_react20.useCallback)((size) => {
|
|
@@ -2324,17 +2377,6 @@ var useTable = ({
|
|
|
2324
2377
|
config,
|
|
2325
2378
|
dataSource.config
|
|
2326
2379
|
);
|
|
2327
|
-
const handlePersistentColumnOperation = (0, import_react20.useCallback)(
|
|
2328
|
-
(action) => {
|
|
2329
|
-
expectConfigChangeRef.current = true;
|
|
2330
|
-
dispatchColumnAction(action);
|
|
2331
|
-
},
|
|
2332
|
-
[dispatchColumnAction]
|
|
2333
|
-
);
|
|
2334
|
-
const handleContextMenuAction = useContextMenu({
|
|
2335
|
-
dataSource,
|
|
2336
|
-
onPersistentColumnOperation: handlePersistentColumnOperation
|
|
2337
|
-
});
|
|
2338
2380
|
const {
|
|
2339
2381
|
getRowAtPosition,
|
|
2340
2382
|
getRowOffset,
|
|
@@ -2384,10 +2426,21 @@ var useTable = ({
|
|
|
2384
2426
|
});
|
|
2385
2427
|
const dataRef = (0, import_react20.useRef)();
|
|
2386
2428
|
dataRef.current = data;
|
|
2429
|
+
const onPersistentColumnOperation = (0, import_react20.useCallback)(
|
|
2430
|
+
(action) => {
|
|
2431
|
+
expectConfigChangeRef.current = true;
|
|
2432
|
+
dispatchColumnAction(action);
|
|
2433
|
+
},
|
|
2434
|
+
[dispatchColumnAction]
|
|
2435
|
+
);
|
|
2436
|
+
const handleContextMenuAction = useTableContextMenu({
|
|
2437
|
+
dataSource,
|
|
2438
|
+
onPersistentColumnOperation
|
|
2439
|
+
});
|
|
2387
2440
|
const handleSort = (0, import_react20.useCallback)(
|
|
2388
2441
|
(column, extendSort = false, sortType) => {
|
|
2389
2442
|
if (dataSource) {
|
|
2390
|
-
dataSource.sort = (0,
|
|
2443
|
+
dataSource.sort = (0, import_vuu_utils14.applySort)(
|
|
2391
2444
|
dataSource.sort,
|
|
2392
2445
|
column,
|
|
2393
2446
|
extendSort,
|
|
@@ -2420,7 +2473,7 @@ var useTable = ({
|
|
|
2420
2473
|
);
|
|
2421
2474
|
const handleToggleGroup = (0, import_react20.useCallback)(
|
|
2422
2475
|
(row, column) => {
|
|
2423
|
-
const isJson = (0,
|
|
2476
|
+
const isJson = (0, import_vuu_utils14.isJsonGroup)(column, row);
|
|
2424
2477
|
const key = row[KEY2];
|
|
2425
2478
|
if (row[IS_EXPANDED2]) {
|
|
2426
2479
|
dataSource.closeTreeNode(key, true);
|
|
@@ -2503,7 +2556,7 @@ var useTable = ({
|
|
|
2503
2556
|
const handleDropColumn = (0, import_react20.useCallback)(
|
|
2504
2557
|
(fromIndex, toIndex) => {
|
|
2505
2558
|
const column = dataSource.columns[fromIndex];
|
|
2506
|
-
const columns2 = (0,
|
|
2559
|
+
const columns2 = (0, import_vuu_utils14.moveItem)(dataSource.columns, column, toIndex);
|
|
2507
2560
|
if (columns2 !== dataSource.columns) {
|
|
2508
2561
|
dataSource.columns = columns2;
|
|
2509
2562
|
dispatchColumnAction({ type: "tableConfig", columns: columns2 });
|
|
@@ -2554,7 +2607,7 @@ var useTable = ({
|
|
|
2554
2607
|
const rowEl = target == null ? void 0 : target.closest(".vuuTableRow");
|
|
2555
2608
|
if (cellEl && rowEl && currentData && currentDataSource) {
|
|
2556
2609
|
const { columns: columns2, selectedRowsCount } = currentDataSource;
|
|
2557
|
-
const columnMap = (0,
|
|
2610
|
+
const columnMap = (0, import_vuu_utils14.buildColumnMap)(columns2);
|
|
2558
2611
|
const rowIndex = parseInt((_a2 = rowEl.ariaRowIndex) != null ? _a2 : "-1");
|
|
2559
2612
|
const cellIndex = Array.from(rowEl.childNodes).indexOf(cellEl);
|
|
2560
2613
|
const row = currentData.find(([idx]) => idx === rowIndex);
|
|
@@ -2571,10 +2624,10 @@ var useTable = ({
|
|
|
2571
2624
|
[dataSource == null ? void 0 : dataSource.viewport, getSelectedRows, showContextMenu]
|
|
2572
2625
|
);
|
|
2573
2626
|
return {
|
|
2574
|
-
containerMeasurements,
|
|
2575
|
-
containerProps,
|
|
2576
2627
|
columns,
|
|
2577
2628
|
columnsWithinViewport,
|
|
2629
|
+
containerMeasurements,
|
|
2630
|
+
containerProps,
|
|
2578
2631
|
data,
|
|
2579
2632
|
dispatchColumnAction,
|
|
2580
2633
|
getRowOffset,
|
|
@@ -2596,7 +2649,7 @@ var useTable = ({
|
|
|
2596
2649
|
|
|
2597
2650
|
// src/Table.tsx
|
|
2598
2651
|
var import_classnames7 = __toESM(require("classnames"));
|
|
2599
|
-
var
|
|
2652
|
+
var import_vuu_utils15 = require("@vuu-ui/vuu-utils");
|
|
2600
2653
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
2601
2654
|
var classBase6 = "vuuTable";
|
|
2602
2655
|
var Table = ({
|
|
@@ -2618,7 +2671,7 @@ var Table = ({
|
|
|
2618
2671
|
style: styleProp,
|
|
2619
2672
|
width,
|
|
2620
2673
|
zebraStripes = false,
|
|
2621
|
-
...
|
|
2674
|
+
...htmlAttributes
|
|
2622
2675
|
}) => {
|
|
2623
2676
|
const id = (0, import_core.useIdMemo)(idProp);
|
|
2624
2677
|
const {
|
|
@@ -2662,7 +2715,7 @@ var Table = ({
|
|
|
2662
2715
|
};
|
|
2663
2716
|
const className = (0, import_classnames7.default)(classBase6, classNameProp, {
|
|
2664
2717
|
[`${classBase6}-zebra`]: zebraStripes,
|
|
2665
|
-
[`${classBase6}-loading`]: (0,
|
|
2718
|
+
[`${classBase6}-loading`]: (0, import_vuu_utils15.isDataLoading)(tableProps.columns)
|
|
2666
2719
|
});
|
|
2667
2720
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2668
2721
|
import_vuu_popups4.ContextMenuProvider,
|
|
@@ -2672,7 +2725,7 @@ var Table = ({
|
|
|
2672
2725
|
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
2673
2726
|
"div",
|
|
2674
2727
|
{
|
|
2675
|
-
...
|
|
2728
|
+
...htmlAttributes,
|
|
2676
2729
|
...containerProps,
|
|
2677
2730
|
className,
|
|
2678
2731
|
id,
|
|
@@ -2724,10 +2777,10 @@ var Table = ({
|
|
|
2724
2777
|
|
|
2725
2778
|
// src/cell-renderers/json-cell/JsonCell.tsx
|
|
2726
2779
|
var import_classnames8 = __toESM(require("classnames"));
|
|
2727
|
-
var
|
|
2780
|
+
var import_vuu_utils16 = require("@vuu-ui/vuu-utils");
|
|
2728
2781
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
2729
2782
|
var classBase7 = "vuuJsonCell";
|
|
2730
|
-
var { IS_EXPANDED: IS_EXPANDED3, KEY: KEY3 } =
|
|
2783
|
+
var { IS_EXPANDED: IS_EXPANDED3, KEY: KEY3 } = import_vuu_utils16.metadataKeys;
|
|
2731
2784
|
var localKey = (key) => {
|
|
2732
2785
|
const pos = key.lastIndexOf("|");
|
|
2733
2786
|
if (pos === -1) {
|
|
@@ -2743,7 +2796,7 @@ var JsonCell = ({ column, row }) => {
|
|
|
2743
2796
|
} = column;
|
|
2744
2797
|
let value = row[columnKey];
|
|
2745
2798
|
let isToggle = false;
|
|
2746
|
-
if ((0,
|
|
2799
|
+
if ((0, import_vuu_utils16.isJsonAttribute)(value)) {
|
|
2747
2800
|
value = value.slice(0, -1);
|
|
2748
2801
|
isToggle = true;
|
|
2749
2802
|
}
|
|
@@ -2765,5 +2818,5 @@ var JsonCell = ({ column, row }) => {
|
|
|
2765
2818
|
return null;
|
|
2766
2819
|
}
|
|
2767
2820
|
};
|
|
2768
|
-
(0,
|
|
2821
|
+
(0, import_vuu_utils16.registerComponent)("json", JsonCell, "cell-renderer", {});
|
|
2769
2822
|
//# sourceMappingURL=index.js.map
|