@ekz/blueprintjs 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/lib/cjs/common/classes.d.ts +28 -0
- package/lib/cjs/common/classes.js +34 -0
- package/lib/cjs/common/classes.js.map +1 -0
- package/lib/cjs/common/index.d.ts +3 -0
- package/lib/cjs/common/index.js +9 -0
- package/lib/cjs/common/index.js.map +1 -0
- package/lib/cjs/components/pagination/index.d.ts +1 -0
- package/lib/cjs/components/pagination/index.js +5 -0
- package/lib/cjs/components/pagination/index.js.map +1 -0
- package/lib/cjs/components/pagination/pagination.d.ts +46 -0
- package/lib/cjs/components/pagination/pagination.js +57 -0
- package/lib/cjs/components/pagination/pagination.js.map +1 -0
- package/lib/cjs/components/table/columnFilter.d.ts +7 -0
- package/lib/cjs/components/table/columnFilter.js +22 -0
- package/lib/cjs/components/table/columnFilter.js.map +1 -0
- package/lib/cjs/components/table/columnHelpers.d.ts +340 -0
- package/lib/cjs/components/table/columnHelpers.js +42 -0
- package/lib/cjs/components/table/columnHelpers.js.map +1 -0
- package/lib/cjs/components/table/headerGroup.d.ts +8 -0
- package/lib/cjs/components/table/headerGroup.js +49 -0
- package/lib/cjs/components/table/headerGroup.js.map +1 -0
- package/lib/cjs/components/table/index.d.ts +9 -0
- package/lib/cjs/components/table/index.js +20 -0
- package/lib/cjs/components/table/index.js.map +1 -0
- package/lib/cjs/components/table/reactTableBase.d.ts +2 -0
- package/lib/cjs/components/table/reactTableBase.js +8 -0
- package/lib/cjs/components/table/reactTableBase.js.map +1 -0
- package/lib/cjs/components/table/table.d.ts +123 -0
- package/lib/cjs/components/table/table.js +243 -0
- package/lib/cjs/components/table/table.js.map +1 -0
- package/lib/cjs/components/table/tableMessages.d.ts +6 -0
- package/lib/cjs/components/table/tableMessages.js +11 -0
- package/lib/cjs/components/table/tableMessages.js.map +1 -0
- package/lib/cjs/components/table/theme.d.ts +4 -0
- package/lib/cjs/components/table/theme.js +9 -0
- package/lib/cjs/components/table/theme.js.map +1 -0
- package/lib/cjs/components/table/useAutoColumnSizer.d.ts +7 -0
- package/lib/cjs/components/table/useAutoColumnSizer.js +52 -0
- package/lib/cjs/components/table/useAutoColumnSizer.js.map +1 -0
- package/lib/cjs/components/table/useAutoHeight.d.ts +4 -0
- package/lib/cjs/components/table/useAutoHeight.js +70 -0
- package/lib/cjs/components/table/useAutoHeight.js.map +1 -0
- package/lib/cjs/components/table/useGroupedHeaderColumnSizer.d.ts +2 -0
- package/lib/cjs/components/table/useGroupedHeaderColumnSizer.js +57 -0
- package/lib/cjs/components/table/useGroupedHeaderColumnSizer.js.map +1 -0
- package/lib/cjs/components/table/useTable.d.ts +122 -0
- package/lib/cjs/components/table/useTable.js +31 -0
- package/lib/cjs/components/table/useTable.js.map +1 -0
- package/lib/cjs/components/table/useTableExport.d.ts +6 -0
- package/lib/cjs/components/table/useTableExport.js +41 -0
- package/lib/cjs/components/table/useTableExport.js.map +1 -0
- package/lib/cjs/components/table/useTableState.d.ts +3 -0
- package/lib/cjs/components/table/useTableState.js +14 -0
- package/lib/cjs/components/table/useTableState.js.map +1 -0
- package/lib/cjs/components/table/utils.d.ts +1 -0
- package/lib/cjs/components/table/utils.js +8 -0
- package/lib/cjs/components/table/utils.js.map +1 -0
- package/lib/cjs/index.d.ts +3 -0
- package/lib/cjs/index.js +7 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/css/blueprintjs.css +345 -0
- package/lib/css/blueprintjs.css.map +1 -0
- package/lib/esm/common/classes.d.ts +28 -0
- package/lib/esm/common/classes.js +31 -0
- package/lib/esm/common/classes.js.map +1 -0
- package/lib/esm/common/index.d.ts +3 -0
- package/lib/esm/common/index.js +4 -0
- package/lib/esm/common/index.js.map +1 -0
- package/lib/esm/components/pagination/index.d.ts +1 -0
- package/lib/esm/components/pagination/index.js +2 -0
- package/lib/esm/components/pagination/index.js.map +1 -0
- package/lib/esm/components/pagination/pagination.d.ts +46 -0
- package/lib/esm/components/pagination/pagination.js +53 -0
- package/lib/esm/components/pagination/pagination.js.map +1 -0
- package/lib/esm/components/table/columnFilter.d.ts +7 -0
- package/lib/esm/components/table/columnFilter.js +17 -0
- package/lib/esm/components/table/columnFilter.js.map +1 -0
- package/lib/esm/components/table/columnHelpers.d.ts +340 -0
- package/lib/esm/components/table/columnHelpers.js +37 -0
- package/lib/esm/components/table/columnHelpers.js.map +1 -0
- package/lib/esm/components/table/headerGroup.d.ts +8 -0
- package/lib/esm/components/table/headerGroup.js +44 -0
- package/lib/esm/components/table/headerGroup.js.map +1 -0
- package/lib/esm/components/table/index.d.ts +9 -0
- package/lib/esm/components/table/index.js +10 -0
- package/lib/esm/components/table/index.js.map +1 -0
- package/lib/esm/components/table/reactTableBase.d.ts +2 -0
- package/lib/esm/components/table/reactTableBase.js +3 -0
- package/lib/esm/components/table/reactTableBase.js.map +1 -0
- package/lib/esm/components/table/table.d.ts +123 -0
- package/lib/esm/components/table/table.js +239 -0
- package/lib/esm/components/table/table.js.map +1 -0
- package/lib/esm/components/table/tableMessages.d.ts +6 -0
- package/lib/esm/components/table/tableMessages.js +6 -0
- package/lib/esm/components/table/tableMessages.js.map +1 -0
- package/lib/esm/components/table/theme.d.ts +4 -0
- package/lib/esm/components/table/theme.js +6 -0
- package/lib/esm/components/table/theme.js.map +1 -0
- package/lib/esm/components/table/useAutoColumnSizer.d.ts +7 -0
- package/lib/esm/components/table/useAutoColumnSizer.js +47 -0
- package/lib/esm/components/table/useAutoColumnSizer.js.map +1 -0
- package/lib/esm/components/table/useAutoHeight.d.ts +4 -0
- package/lib/esm/components/table/useAutoHeight.js +66 -0
- package/lib/esm/components/table/useAutoHeight.js.map +1 -0
- package/lib/esm/components/table/useGroupedHeaderColumnSizer.d.ts +2 -0
- package/lib/esm/components/table/useGroupedHeaderColumnSizer.js +53 -0
- package/lib/esm/components/table/useGroupedHeaderColumnSizer.js.map +1 -0
- package/lib/esm/components/table/useTable.d.ts +122 -0
- package/lib/esm/components/table/useTable.js +28 -0
- package/lib/esm/components/table/useTable.js.map +1 -0
- package/lib/esm/components/table/useTableExport.d.ts +6 -0
- package/lib/esm/components/table/useTableExport.js +37 -0
- package/lib/esm/components/table/useTableExport.js.map +1 -0
- package/lib/esm/components/table/useTableState.d.ts +3 -0
- package/lib/esm/components/table/useTableState.js +11 -0
- package/lib/esm/components/table/useTableState.js.map +1 -0
- package/lib/esm/components/table/utils.d.ts +1 -0
- package/lib/esm/components/table/utils.js +5 -0
- package/lib/esm/components/table/utils.js.map +1 -0
- package/lib/esm/index.d.ts +3 -0
- package/lib/esm/index.js +4 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esnext/common/classes.d.ts +28 -0
- package/lib/esnext/common/classes.js +31 -0
- package/lib/esnext/common/classes.js.map +1 -0
- package/lib/esnext/common/index.d.ts +3 -0
- package/lib/esnext/common/index.js +4 -0
- package/lib/esnext/common/index.js.map +1 -0
- package/lib/esnext/components/pagination/index.d.ts +1 -0
- package/lib/esnext/components/pagination/index.js +2 -0
- package/lib/esnext/components/pagination/index.js.map +1 -0
- package/lib/esnext/components/pagination/pagination.d.ts +46 -0
- package/lib/esnext/components/pagination/pagination.js +53 -0
- package/lib/esnext/components/pagination/pagination.js.map +1 -0
- package/lib/esnext/components/table/columnFilter.d.ts +7 -0
- package/lib/esnext/components/table/columnFilter.js +17 -0
- package/lib/esnext/components/table/columnFilter.js.map +1 -0
- package/lib/esnext/components/table/columnHelpers.d.ts +340 -0
- package/lib/esnext/components/table/columnHelpers.js +37 -0
- package/lib/esnext/components/table/columnHelpers.js.map +1 -0
- package/lib/esnext/components/table/headerGroup.d.ts +8 -0
- package/lib/esnext/components/table/headerGroup.js +44 -0
- package/lib/esnext/components/table/headerGroup.js.map +1 -0
- package/lib/esnext/components/table/index.d.ts +9 -0
- package/lib/esnext/components/table/index.js +10 -0
- package/lib/esnext/components/table/index.js.map +1 -0
- package/lib/esnext/components/table/reactTableBase.d.ts +2 -0
- package/lib/esnext/components/table/reactTableBase.js +3 -0
- package/lib/esnext/components/table/reactTableBase.js.map +1 -0
- package/lib/esnext/components/table/table.d.ts +123 -0
- package/lib/esnext/components/table/table.js +239 -0
- package/lib/esnext/components/table/table.js.map +1 -0
- package/lib/esnext/components/table/tableMessages.d.ts +6 -0
- package/lib/esnext/components/table/tableMessages.js +6 -0
- package/lib/esnext/components/table/tableMessages.js.map +1 -0
- package/lib/esnext/components/table/theme.d.ts +4 -0
- package/lib/esnext/components/table/theme.js +6 -0
- package/lib/esnext/components/table/theme.js.map +1 -0
- package/lib/esnext/components/table/useAutoColumnSizer.d.ts +7 -0
- package/lib/esnext/components/table/useAutoColumnSizer.js +47 -0
- package/lib/esnext/components/table/useAutoColumnSizer.js.map +1 -0
- package/lib/esnext/components/table/useAutoHeight.d.ts +4 -0
- package/lib/esnext/components/table/useAutoHeight.js +66 -0
- package/lib/esnext/components/table/useAutoHeight.js.map +1 -0
- package/lib/esnext/components/table/useGroupedHeaderColumnSizer.d.ts +2 -0
- package/lib/esnext/components/table/useGroupedHeaderColumnSizer.js +53 -0
- package/lib/esnext/components/table/useGroupedHeaderColumnSizer.js.map +1 -0
- package/lib/esnext/components/table/useTable.d.ts +122 -0
- package/lib/esnext/components/table/useTable.js +28 -0
- package/lib/esnext/components/table/useTable.js.map +1 -0
- package/lib/esnext/components/table/useTableExport.d.ts +6 -0
- package/lib/esnext/components/table/useTableExport.js +37 -0
- package/lib/esnext/components/table/useTableExport.js.map +1 -0
- package/lib/esnext/components/table/useTableState.d.ts +3 -0
- package/lib/esnext/components/table/useTableState.js +11 -0
- package/lib/esnext/components/table/useTableState.js.map +1 -0
- package/lib/esnext/components/table/utils.d.ts +1 -0
- package/lib/esnext/components/table/utils.js +5 -0
- package/lib/esnext/components/table/utils.js.map +1 -0
- package/lib/esnext/index.d.ts +3 -0
- package/lib/esnext/index.js +4 -0
- package/lib/esnext/index.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CELL_BORDER = exports.CELL_PADDING = void 0;
|
|
4
|
+
exports.useAutoColumnSizer = useAutoColumnSizer;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const React = tslib_1.__importStar(require("react"));
|
|
7
|
+
const theme_1 = require("./theme");
|
|
8
|
+
exports.CELL_PADDING = 20;
|
|
9
|
+
exports.CELL_BORDER = 1;
|
|
10
|
+
function useAutoColumnSizer(ref, table, theme) {
|
|
11
|
+
const visibleFlatColumns = table.getVisibleFlatColumns();
|
|
12
|
+
const setColumnSizing = table.setColumnSizing;
|
|
13
|
+
const recalculate = React.useCallback(() => {
|
|
14
|
+
const availableWidth = (ref?.clientWidth ?? 0) -
|
|
15
|
+
visibleFlatColumns.length * exports.CELL_PADDING - // cell padding
|
|
16
|
+
(visibleFlatColumns.length - exports.CELL_BORDER) - // cell border
|
|
17
|
+
(theme === theme_1.TableTheme.Segment ? 40 : 0); // theme padding
|
|
18
|
+
if (availableWidth > 0) {
|
|
19
|
+
const { autoColumns, totalFixedSize } = visibleFlatColumns.reduce((result, column) => {
|
|
20
|
+
if (column.columnDef.size === -1) {
|
|
21
|
+
return {
|
|
22
|
+
...result,
|
|
23
|
+
autoColumns: [...result.autoColumns, column.id]
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return {
|
|
28
|
+
...result,
|
|
29
|
+
totalFixedSize: result.totalFixedSize + (column.columnDef.size ?? 0)
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}, {
|
|
33
|
+
autoColumns: [],
|
|
34
|
+
totalFixedSize: 0
|
|
35
|
+
});
|
|
36
|
+
if (autoColumns.length > 0) {
|
|
37
|
+
const remainingWidthPerColumn = Math.max((availableWidth - totalFixedSize) / autoColumns.length, 150);
|
|
38
|
+
const sizing = autoColumns.reduce((sizeByColumn, columnId) => ({
|
|
39
|
+
...sizeByColumn,
|
|
40
|
+
[columnId]: remainingWidthPerColumn
|
|
41
|
+
}), {});
|
|
42
|
+
setColumnSizing((previousSizing) => ({ ...previousSizing, ...sizing }));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
46
|
+
}, [visibleFlatColumns, setColumnSizing, theme, ref]);
|
|
47
|
+
React.useEffect(() => {
|
|
48
|
+
recalculate();
|
|
49
|
+
}, [recalculate, visibleFlatColumns, ref?.clientWidth]);
|
|
50
|
+
return { recalculate };
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=useAutoColumnSizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutoColumnSizer.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useAutoColumnSizer.ts"],"names":[],"mappings":";;;AAQA,gDA4DC;;AApED,qDAA+B;AAG/B,mCAAqC;AAExB,QAAA,YAAY,GAAG,EAAE,CAAC;AAClB,QAAA,WAAW,GAAG,CAAC,CAAC;AAE7B,SAAgB,kBAAkB,CAC9B,GAA0B,EAC1B,KAAqB,EACrB,KAA6B;IAE7B,MAAM,kBAAkB,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;IACzD,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;IAE9C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACvC,MAAM,cAAc,GAChB,CAAC,GAAG,EAAE,WAAW,IAAI,CAAC,CAAC;YACvB,kBAAkB,CAAC,MAAM,GAAG,oBAAY,GAAG,eAAe;YAC1D,CAAC,kBAAkB,CAAC,MAAM,GAAG,mBAAW,CAAC,GAAG,cAAc;YAC1D,CAAC,KAAK,KAAK,kBAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;QAC7D,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAI7D,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;gBACf,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC/B,OAAO;wBACH,GAAG,MAAM;wBACT,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;qBAClD,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,OAAO;wBACH,GAAG,MAAM;wBACT,cAAc,EAAE,MAAM,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;qBACvE,CAAC;gBACN,CAAC;YACL,CAAC,EACD;gBACI,WAAW,EAAE,EAAE;gBACf,cAAc,EAAE,CAAC;aACpB,CACJ,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CACpC,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,WAAW,CAAC,MAAM,EACtD,GAAG,CACN,CAAC;gBACF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAC7B,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACzB,GAAG,YAAY;oBACf,CAAC,QAAQ,CAAC,EAAE,uBAAuB;iBACtC,CAAC,EACF,EAAE,CACL,CAAC;gBACF,eAAe,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,uDAAuD;IAC3D,CAAC,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEtD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,WAAW,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAExD,OAAO,EAAE,WAAW,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { Table } from './reactTableBase';
|
|
3
|
+
import type { TableTheme } from './theme';
|
|
4
|
+
export declare function useAutoHeight(autoHeight: [minPageSize: number, maxPageSize: number] | undefined, autoHeightParentHeight: number | undefined, autoHeightMaxHeight: number | undefined, autoHeightAverageRowHeight: number | undefined, autoHeightObserveRows: boolean | undefined, theme: TableTheme | undefined, table: Table<unknown>, ref: HTMLDivElement | null, bodyRef: React.RefObject<HTMLDivElement>, nonIdealStateRef: React.RefObject<HTMLDivElement>): (entries: ResizeObserverEntry[]) => void;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useAutoHeight = useAutoHeight;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const invariant_1 = tslib_1.__importDefault(require("invariant"));
|
|
6
|
+
const React = tslib_1.__importStar(require("react"));
|
|
7
|
+
function useAutoHeight(autoHeight, autoHeightParentHeight, autoHeightMaxHeight, autoHeightAverageRowHeight, autoHeightObserveRows, theme, table, ref, bodyRef, nonIdealStateRef) {
|
|
8
|
+
const visibleRowCount = table.getRowModel().rows.length ?? 0;
|
|
9
|
+
const [minPageSize, maxPageSize] = autoHeight ?? [0, 0];
|
|
10
|
+
(0, invariant_1.default)(autoHeight == null || maxPageSize > minPageSize, 'maxPageSize must be greater than minPageSize');
|
|
11
|
+
(0, invariant_1.default)(autoHeight == null || minPageSize > 0, 'minPageSize must be greater than 0');
|
|
12
|
+
(0, invariant_1.default)(autoHeight == null || maxPageSize > 1, 'maxPageSize must be greater than 0');
|
|
13
|
+
const calculatePageSize = React.useCallback(() => {
|
|
14
|
+
if (minPageSize > 0 && maxPageSize > 0) {
|
|
15
|
+
const parentHeight = Math.min(autoHeightParentHeight ?? ref?.parentElement?.clientHeight ?? 0, autoHeightMaxHeight ?? Number.MAX_VALUE);
|
|
16
|
+
const tableHeight = ref?.clientHeight ?? 0;
|
|
17
|
+
const bodyHeight = bodyRef.current?.clientHeight ?? nonIdealStateRef.current?.clientHeight ?? 0;
|
|
18
|
+
const hasPagination = table.getPageCount() > 1;
|
|
19
|
+
const averageRowHeight = autoHeightAverageRowHeight ??
|
|
20
|
+
(visibleRowCount > 0 ? bodyHeight / visibleRowCount : 40);
|
|
21
|
+
const nonBodyTotalSize = tableHeight - bodyHeight + (hasPagination ? 0 : 54); // fixed footer height (pagination)
|
|
22
|
+
const pageSize = Math.min(Math.max((parentHeight - nonBodyTotalSize) / averageRowHeight, minPageSize), maxPageSize);
|
|
23
|
+
if (table.options.debugTable) {
|
|
24
|
+
// eslint-disable-next-line no-console
|
|
25
|
+
console.log('Calculating page size', {
|
|
26
|
+
averageRowHeight,
|
|
27
|
+
bodyHeight,
|
|
28
|
+
maxPageSize,
|
|
29
|
+
minPageSize,
|
|
30
|
+
pageSize,
|
|
31
|
+
parentHeight,
|
|
32
|
+
tableHeight,
|
|
33
|
+
visibleRowCount
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
table.setPageSize(Math.floor(pageSize));
|
|
37
|
+
}
|
|
38
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
39
|
+
}, [
|
|
40
|
+
ref,
|
|
41
|
+
minPageSize,
|
|
42
|
+
maxPageSize,
|
|
43
|
+
autoHeightParentHeight,
|
|
44
|
+
autoHeightMaxHeight,
|
|
45
|
+
autoHeightAverageRowHeight,
|
|
46
|
+
visibleRowCount,
|
|
47
|
+
theme,
|
|
48
|
+
table
|
|
49
|
+
]);
|
|
50
|
+
React.useEffect(() => calculatePageSize(), [calculatePageSize]);
|
|
51
|
+
const handleResize = React.useCallback((entries) => {
|
|
52
|
+
if (entries.length > 0) {
|
|
53
|
+
if (entries[0].target !== ref) {
|
|
54
|
+
calculatePageSize();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}, [ref, calculatePageSize]);
|
|
58
|
+
const bodyRefCurrent = bodyRef.current;
|
|
59
|
+
React.useEffect(() => {
|
|
60
|
+
if (autoHeightObserveRows && autoHeight != null && bodyRefCurrent != null) {
|
|
61
|
+
const observer = new ResizeObserver(() => {
|
|
62
|
+
calculatePageSize();
|
|
63
|
+
});
|
|
64
|
+
observer.observe(bodyRefCurrent);
|
|
65
|
+
return () => observer.disconnect();
|
|
66
|
+
}
|
|
67
|
+
}, [autoHeightObserveRows, autoHeight, bodyRefCurrent, calculatePageSize]);
|
|
68
|
+
return handleResize;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=useAutoHeight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutoHeight.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useAutoHeight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useGroupedHeaderColumnSizer = useGroupedHeaderColumnSizer;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const useAutoColumnSizer_1 = require("./useAutoColumnSizer");
|
|
7
|
+
function useGroupedHeaderColumnSizer(table, tableState) {
|
|
8
|
+
const columnSize = table.getVisibleFlatColumns().length;
|
|
9
|
+
const tableColumnOrder = table.getState().columnOrder;
|
|
10
|
+
const tableColumnVisibility = table.getState().columnVisibility;
|
|
11
|
+
const { columnSizing, columnSizingInfo } = tableState;
|
|
12
|
+
return react_1.default.useMemo(() => {
|
|
13
|
+
return table.getHeaderGroups().reduce((vars, group) => group.headers.reduce((result, header) => {
|
|
14
|
+
const isGroupHeader = !header.isPlaceholder && header.subHeaders?.length > 0;
|
|
15
|
+
if (!isGroupHeader)
|
|
16
|
+
return result;
|
|
17
|
+
result[`--header-${header.id}-size`] = getSpanSizeFromSizing(header, tableState.columnSizing, useAutoColumnSizer_1.CELL_PADDING + useAutoColumnSizer_1.CELL_BORDER);
|
|
18
|
+
return result;
|
|
19
|
+
}, vars), {});
|
|
20
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
21
|
+
}, [
|
|
22
|
+
table,
|
|
23
|
+
columnSize,
|
|
24
|
+
columnSizing,
|
|
25
|
+
columnSizingInfo,
|
|
26
|
+
tableColumnOrder,
|
|
27
|
+
tableColumnVisibility
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
function getSpanMetricsFromSizing(
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
|
+
header, sizing) {
|
|
33
|
+
if (!header.subHeaders?.length) {
|
|
34
|
+
const id = header.column.id;
|
|
35
|
+
return {
|
|
36
|
+
leafCount: 1,
|
|
37
|
+
leafSum: sizing[id] ?? header.getSize()
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return header.subHeaders.reduce((acc, sub) => {
|
|
41
|
+
const m = getSpanMetricsFromSizing(sub, sizing);
|
|
42
|
+
return {
|
|
43
|
+
leafCount: acc.leafCount + m.leafCount,
|
|
44
|
+
leafSum: acc.leafSum + m.leafSum
|
|
45
|
+
};
|
|
46
|
+
}, { leafSum: 0, leafCount: 0 });
|
|
47
|
+
}
|
|
48
|
+
function getSpanSizeFromSizing(
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
header, sizing, betweenLeavesPx) {
|
|
51
|
+
if (header.isPlaceholder)
|
|
52
|
+
return header.getSize();
|
|
53
|
+
const { leafSum, leafCount } = getSpanMetricsFromSizing(header, sizing);
|
|
54
|
+
const between = Math.max(0, leafCount - 1) * betweenLeavesPx;
|
|
55
|
+
return leafSum + between;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=useGroupedHeaderColumnSizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGroupedHeaderColumnSizer.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useGroupedHeaderColumnSizer.tsx"],"names":[],"mappings":";;AAKA,kEAmCC;;AAxCD,0DAA0B;AAG1B,6DAAiE;AAEjE,SAAgB,2BAA2B,CACvC,KAAqB,EACrB,UAAsB;IAEtB,MAAM,UAAU,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;IACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC;IACtD,MAAM,qBAAqB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC;IAChE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC;IACtD,OAAO,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtB,OAAO,KAAK,CAAC,eAAe,EAAE,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACZ,KAAK,CAAC,OAAO,CAAC,MAAM,CAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5D,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;YAE7E,IAAI,CAAC,aAAa;gBAAE,OAAO,MAAM,CAAC;YAElC,MAAM,CAAC,YAAY,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,qBAAqB,CACxD,MAAM,EACN,UAAU,CAAC,YAAY,EACvB,iCAAY,GAAG,gCAAW,CAC7B,CAAC;YAEF,OAAO,MAAM,CAAC;QAClB,CAAC,EAAE,IAAI,CAAC,EACZ,EAAE,CACL,CAAC;QACF,uDAAuD;IAC3D,CAAC,EAAE;QACC,KAAK;QACL,UAAU;QACV,YAAY;QACZ,gBAAgB;QAChB,gBAAgB;QAChB,qBAAqB;KACxB,CAAC,CAAC;AACP,CAAC;AAID,SAAS,wBAAwB;AAC7B,8DAA8D;AAC9D,MAAwB,EACxB,MAA0C;IAE1C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO;YACH,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE;SAC1C,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACT,MAAM,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO;YACH,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;YACtC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;SACnC,CAAC;IACN,CAAC,EACD,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAC/B,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB;AAC1B,8DAA8D;AAC9D,MAAwB,EACxB,MAA0C,EAC1C,eAAuB;IAEvB,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAElD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAC7D,OAAO,OAAO,GAAG,OAAO,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type InitialTableState, type Row, type Table as TableAPI, type TableOptions } from './reactTableBase';
|
|
2
|
+
/**
|
|
3
|
+
* `UseTableOptions` is a reexport of `TableOptions` with more options and relevant documentation.
|
|
4
|
+
* Not all properties supported by `@tanstack/react-table` have been documented here.
|
|
5
|
+
*/
|
|
6
|
+
export interface UseTableOptions<T = unknown> extends Omit<TableOptions<T>, 'getCoreRowModel' | 'state' | 'onStateChange'> {
|
|
7
|
+
/**
|
|
8
|
+
* The typed column definitions. Every column in the table must have its own definition.
|
|
9
|
+
*/
|
|
10
|
+
columns: TableOptions<T>['columns'];
|
|
11
|
+
/**
|
|
12
|
+
* The table data. Each row will receive an instance of this element.
|
|
13
|
+
*/
|
|
14
|
+
data: TableOptions<T>['data'];
|
|
15
|
+
/**
|
|
16
|
+
* The table state can be provided to make the it controlled. See the documentation regarding recommended usage
|
|
17
|
+
* of this property.
|
|
18
|
+
*/
|
|
19
|
+
state?: TableOptions<T>['state'];
|
|
20
|
+
/**
|
|
21
|
+
* Use this option to optionally pass initial state to the table. This state will be used
|
|
22
|
+
* when resetting various table states either automatically by the table (eg. `options.autoResetPageIndex`)
|
|
23
|
+
* or via functions like `table.resetRowSelection()`.
|
|
24
|
+
* */
|
|
25
|
+
initialState?: InitialTableState;
|
|
26
|
+
/**
|
|
27
|
+
* Allows row selection. An optional function can be provided to conditionally allow row selection.
|
|
28
|
+
*
|
|
29
|
+
* @default true
|
|
30
|
+
*/
|
|
31
|
+
enableRowSelection?: TableOptions<T>['enableRowSelection'];
|
|
32
|
+
/**
|
|
33
|
+
* Allows row expansion.
|
|
34
|
+
*
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
enableExpanding?: TableOptions<T>['enableExpanding'];
|
|
38
|
+
/**
|
|
39
|
+
* Allows column sorting.
|
|
40
|
+
*
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
enableSorting?: TableOptions<T>['enableSorting'];
|
|
44
|
+
/**
|
|
45
|
+
* Allows general filtering.
|
|
46
|
+
*
|
|
47
|
+
* @default true
|
|
48
|
+
*/
|
|
49
|
+
enableFilters?: TableOptions<T>['enableFilters'];
|
|
50
|
+
/**
|
|
51
|
+
* Allows global filter in top toolbar.
|
|
52
|
+
*
|
|
53
|
+
* @default true
|
|
54
|
+
*/
|
|
55
|
+
enableGlobalFilter?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Set true to display table loading indicator.
|
|
58
|
+
*
|
|
59
|
+
* @default false
|
|
60
|
+
*/
|
|
61
|
+
isLoading?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* When set, the provided component will be used instead of the original `<Spinner />`.
|
|
64
|
+
*/
|
|
65
|
+
loadingIndicator?: React.ReactNode;
|
|
66
|
+
/**
|
|
67
|
+
* When defined, the callback can return an optional class name that will be added to the specific row.
|
|
68
|
+
* Depending on the CSS properties in the class, it might be needed to use `!important` to take higher
|
|
69
|
+
* precedence.
|
|
70
|
+
*/
|
|
71
|
+
getRowClassName?: (originalRow: T, index: number) => string | null | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* When defined, callback is called to determine if the row is clickable. Return `false` to disable clicking.
|
|
74
|
+
*/
|
|
75
|
+
getRowClickable?: (originalRow: T, index: number) => boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Callback is called when row is clicked.
|
|
78
|
+
*/
|
|
79
|
+
onRowClick?: (originalRow: T, row: Row<T>, event: React.MouseEvent<HTMLDivElement>) => void;
|
|
80
|
+
/**
|
|
81
|
+
* Callback is called when there are changes to the `pagination` property of the table `state`.
|
|
82
|
+
*/
|
|
83
|
+
onPaginationChange?: TableOptions<T>['onPaginationChange'];
|
|
84
|
+
/**
|
|
85
|
+
* Callback is called when there are changes to the `rowSelection` property of the table `state`.
|
|
86
|
+
*/
|
|
87
|
+
onRowSelectionChange?: TableOptions<T>['onRowSelectionChange'];
|
|
88
|
+
/**
|
|
89
|
+
* Callback is called when there are changes to the `expanded` property of the table `state`.
|
|
90
|
+
*/
|
|
91
|
+
onExpandedChange?: TableOptions<T>['onExpandedChange'];
|
|
92
|
+
/**
|
|
93
|
+
* Callback is called when there are changes to the `globalFilter` property of the table `state`.
|
|
94
|
+
*/
|
|
95
|
+
onGlobalFilterChange?: TableOptions<T>['onGlobalFilterChange'];
|
|
96
|
+
/**
|
|
97
|
+
* The callback might return an optional list of sub-rows to be rendered when the parent row
|
|
98
|
+
* is expanded.
|
|
99
|
+
*/
|
|
100
|
+
getSubRows?: (originalRow: T, index: number) => undefined | T[];
|
|
101
|
+
/**
|
|
102
|
+
* The callback might return an optional `React.ReactNode` to be rendered below the expanded row.
|
|
103
|
+
*/
|
|
104
|
+
getSubComponent?: (originalRow: T, index: number) => undefined | React.ReactNode;
|
|
105
|
+
/**
|
|
106
|
+
* Normally, the sub-components can be controlled using the standard `state.expanded` and its related
|
|
107
|
+
* event handlers. When that is not desirable, provide this callback which will override the `expanded`
|
|
108
|
+
* state. When using this callback, the column helper `expansion` only controls sub-rows.
|
|
109
|
+
*/
|
|
110
|
+
getSubComponentExpanded?: (originalRow: T, index: number) => boolean;
|
|
111
|
+
}
|
|
112
|
+
export interface TableMetadata {
|
|
113
|
+
enableGlobalFilter: UseTableOptions['enableGlobalFilter'];
|
|
114
|
+
getRowClickable: UseTableOptions['getRowClickable'];
|
|
115
|
+
getSubComponent: UseTableOptions['getSubComponent'];
|
|
116
|
+
getSubComponentExpanded: UseTableOptions['getSubComponentExpanded'];
|
|
117
|
+
getRowClassName: UseTableOptions['getRowClassName'];
|
|
118
|
+
isLoading: UseTableOptions['isLoading'];
|
|
119
|
+
loadingIndicator: UseTableOptions['loadingIndicator'];
|
|
120
|
+
onRowClick: UseTableOptions['onRowClick'];
|
|
121
|
+
}
|
|
122
|
+
export declare function useTable<T>(options: UseTableOptions<T>): TableAPI<T>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTable = useTable;
|
|
4
|
+
const react_table_1 = require("@tanstack/react-table");
|
|
5
|
+
const reactTableBase_1 = require("./reactTableBase");
|
|
6
|
+
function useTable(options) {
|
|
7
|
+
return (0, react_table_1.useReactTable)({
|
|
8
|
+
columnResizeMode: 'onChange',
|
|
9
|
+
getCoreRowModel: (0, reactTableBase_1.getCoreRowModel)(),
|
|
10
|
+
getExpandedRowModel: (0, reactTableBase_1.getExpandedRowModel)(),
|
|
11
|
+
getFacetedMinMaxValues: (0, reactTableBase_1.getFacetedMinMaxValues)(),
|
|
12
|
+
getFacetedRowModel: (0, reactTableBase_1.getFacetedRowModel)(),
|
|
13
|
+
getFacetedUniqueValues: (0, reactTableBase_1.getFacetedUniqueValues)(),
|
|
14
|
+
getFilteredRowModel: (0, reactTableBase_1.getFilteredRowModel)(),
|
|
15
|
+
getPaginationRowModel: (0, reactTableBase_1.getPaginationRowModel)(),
|
|
16
|
+
getSortedRowModel: (0, reactTableBase_1.getSortedRowModel)(),
|
|
17
|
+
...options,
|
|
18
|
+
meta: {
|
|
19
|
+
...options.meta,
|
|
20
|
+
enableGlobalFilter: options.enableGlobalFilter ?? true,
|
|
21
|
+
getRowClickable: options.getRowClickable,
|
|
22
|
+
getSubComponent: options.getSubComponent,
|
|
23
|
+
getSubComponentExpanded: options.getSubComponentExpanded,
|
|
24
|
+
getRowClassName: options.getRowClassName,
|
|
25
|
+
isLoading: options.isLoading,
|
|
26
|
+
loadingIndicator: options.loadingIndicator,
|
|
27
|
+
onRowClick: options.onRowClick
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=useTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTable.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useTable.ts"],"names":[],"mappings":";;AAgKA,4BAwBC;AAxLD,uDAAsD;AAEtD,qDAa0B;AAiJ1B,SAAgB,QAAQ,CAAI,OAA2B;IACnD,OAAO,IAAA,2BAAa,EAAC;QACjB,gBAAgB,EAAE,UAAU;QAC5B,eAAe,EAAE,IAAA,gCAAe,GAAE;QAClC,mBAAmB,EAAE,IAAA,oCAAmB,GAAE;QAC1C,sBAAsB,EAAE,IAAA,uCAAsB,GAAE;QAChD,kBAAkB,EAAE,IAAA,mCAAkB,GAAE;QACxC,sBAAsB,EAAE,IAAA,uCAAsB,GAAE;QAChD,mBAAmB,EAAE,IAAA,oCAAmB,GAAE;QAC1C,qBAAqB,EAAE,IAAA,sCAAqB,GAAE;QAC9C,iBAAiB,EAAE,IAAA,kCAAiB,GAAE;QACtC,GAAG,OAAO;QACV,IAAI,EAAE;YACF,GAAG,OAAO,CAAC,IAAI;YACf,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,IAAI;YACtD,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,UAAU,EAAE,OAAO,CAAC,UAAU;SACjC;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTableExport = useTableExport;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
+
function useTableExport(table) {
|
|
8
|
+
const createCsv = React.useCallback(() => {
|
|
9
|
+
return [
|
|
10
|
+
table
|
|
11
|
+
.getVisibleFlatColumns()
|
|
12
|
+
.filter((column) => column.accessorFn != null)
|
|
13
|
+
.map((column) => column.id)
|
|
14
|
+
.map((value) => `"${value.toString().replace(/"/g, '""')}"`)
|
|
15
|
+
.join(',')
|
|
16
|
+
]
|
|
17
|
+
.concat(table.getPrePaginationRowModel().flatRows.map((row) => row
|
|
18
|
+
.getVisibleCells()
|
|
19
|
+
.filter((cell) => cell.column.accessorFn != null)
|
|
20
|
+
.map((cell) => cell.getValue())
|
|
21
|
+
.map((value) => typeof value === 'string' ? `"${value.replace(/"/g, '""')}"` : value)
|
|
22
|
+
.join(',')))
|
|
23
|
+
.join('\n');
|
|
24
|
+
}, [table]);
|
|
25
|
+
const downloadCsvAsBlob = React.useCallback((fileName) => {
|
|
26
|
+
const blob = new Blob([createCsv()], { type: 'text/csv' });
|
|
27
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
28
|
+
const element = document.createElement('a', {});
|
|
29
|
+
element.href = blobUrl;
|
|
30
|
+
element.target = '_blank';
|
|
31
|
+
element.download = `${fileName}.csv`;
|
|
32
|
+
document.body.append(element);
|
|
33
|
+
element.click();
|
|
34
|
+
element.remove();
|
|
35
|
+
}, [createCsv]);
|
|
36
|
+
return React.useMemo(() => ({
|
|
37
|
+
createCsv,
|
|
38
|
+
downloadCsvAsBlob
|
|
39
|
+
}), [createCsv, downloadCsvAsBlob]);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=useTableExport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableExport.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useTableExport.tsx"],"names":[],"mappings":";;AAUA,wCA+CC;;AAzDD,qDAA+B;AAS/B,8DAA8D;AAC9D,SAAgB,cAAc,CAAC,KAAoB;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACrC,OAAO;YACH,KAAK;iBACA,qBAAqB,EAAE;iBACvB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;iBAC7C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;iBAC3D,IAAI,CAAC,GAAG,CAAC;SACjB;aACI,MAAM,CACH,KAAK,CAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAClD,GAAG;aACE,eAAe,EAAE;aACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;aAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACX,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CACvE;aACA,IAAI,CAAC,GAAG,CAAC,CACjB,CACJ;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,QAAgB,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1B,OAAO,CAAC,QAAQ,GAAG,GAAG,QAAQ,MAAM,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC,EACD,CAAC,SAAS,CAAC,CACd,CAAC;IAEF,OAAO,KAAK,CAAC,OAAO,CAChB,GAAG,EAAE,CAAC,CAAC;QACH,SAAS;QACT,iBAAiB;KACpB,CAAC,EACF,CAAC,SAAS,EAAE,iBAAiB,CAAC,CACjC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTableState = useTableState;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useTableState(table) {
|
|
6
|
+
const state = (0, react_1.useState)(table.initialState);
|
|
7
|
+
table.setOptions((previous) => ({
|
|
8
|
+
...previous,
|
|
9
|
+
onStateChange: state[1],
|
|
10
|
+
state: state[0]
|
|
11
|
+
}));
|
|
12
|
+
return state;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=useTableState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableState.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/useTableState.ts"],"names":[],"mappings":";;AAIA,sCAUC;AAdD,iCAAqE;AAIrE,SAAgB,aAAa,CACzB,KAAe;IAEf,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5B,GAAG,QAAQ;QACX,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;KAClB,CAAC,CAAC,CAAC;IACJ,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function stopPropagation(event: React.SyntheticEvent): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/main/web/components/table/utils.ts"],"names":[],"mappings":";;AAAA,0CAGC;AAHD,SAAgB,eAAe,CAAC,KAA2B;IACvD,KAAK,CAAC,eAAe,EAAE,CAAC;IACxB,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,CAAC"}
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./common"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./components/pagination"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./components/table"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/main/web/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,kEAAwC;AACxC,6DAAmC"}
|