@ltht-react/table 2.0.153 → 2.0.155
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/lib/molecules/table-component.d.ts +3 -3
- package/lib/molecules/table-component.js +23 -14
- package/lib/molecules/table-component.js.map +1 -1
- package/lib/molecules/table-header.d.ts +11 -0
- package/lib/molecules/table-header.js +33 -0
- package/lib/molecules/table-header.js.map +1 -0
- package/lib/molecules/table-methods.d.ts +5 -2
- package/lib/molecules/table-methods.js +5 -5
- package/lib/molecules/table-methods.js.map +1 -1
- package/lib/molecules/table.d.ts +3 -2
- package/lib/molecules/table.js +26 -22
- package/lib/molecules/table.js.map +1 -1
- package/lib/molecules/useScrollRef.js +18 -16
- package/lib/molecules/useScrollRef.js.map +1 -1
- package/lib/organisms/generic-table.d.ts +1 -0
- package/lib/organisms/generic-table.js.map +1 -1
- package/lib/organisms/questionnaire-table.d.ts +1 -0
- package/lib/organisms/questionnaire-table.js.map +1 -1
- package/package.json +8 -8
- package/src/molecules/table-component.tsx +18 -44
- package/src/molecules/table-header.tsx +37 -0
- package/src/molecules/table-methods.tsx +10 -6
- package/src/molecules/table.tsx +14 -16
- package/src/molecules/useScrollRef.tsx +17 -13
- package/src/organisms/generic-table.tsx +1 -0
- package/src/organisms/questionnaire-table.tsx +1 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { Table } from '@tanstack/react-table';
|
|
2
|
+
import { HTMLAttributes } from 'react';
|
|
3
3
|
import { ITableConfig } from './table';
|
|
4
|
-
declare const TableComponent: <T>({ table, staticColumns, headerAxis }: ITableHeadProps<T>) => JSX.Element;
|
|
4
|
+
declare const TableComponent: <T>({ table, staticColumns, headerAxis, ...rest }: ITableHeadProps<T>) => JSX.Element;
|
|
5
5
|
declare const TableNavigationButton: ({ position, hidden, clickHandler }: ITableNavButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
declare const TableSpinner: ({ position, hidden }: ITableSpinnerProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
interface ITableNavButtonProps {
|
|
@@ -13,7 +13,7 @@ interface ITableSpinnerProps {
|
|
|
13
13
|
position: 'bottom' | 'right';
|
|
14
14
|
hidden: boolean;
|
|
15
15
|
}
|
|
16
|
-
interface ITableHeadProps<T> extends ITableConfig {
|
|
16
|
+
interface ITableHeadProps<T> extends ITableConfig, HTMLAttributes<HTMLTableElement> {
|
|
17
17
|
table: Table<T>;
|
|
18
18
|
}
|
|
19
19
|
export default TableComponent;
|
|
@@ -10,6 +10,17 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
13
24
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
25
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
26
|
};
|
|
@@ -22,8 +33,9 @@ var react_1 = require("react");
|
|
|
22
33
|
var table_methods_1 = require("./table-methods");
|
|
23
34
|
var table_styled_components_1 = require("./table-styled-components");
|
|
24
35
|
var useDimensionRef_1 = __importDefault(require("./useDimensionRef"));
|
|
36
|
+
var table_header_1 = __importDefault(require("./table-header"));
|
|
25
37
|
var TableComponent = function (_a) {
|
|
26
|
-
var table = _a.table, _b = _a.staticColumns, staticColumns = _b === void 0 ? 0 : _b, headerAxis = _a.headerAxis;
|
|
38
|
+
var table = _a.table, _b = _a.staticColumns, staticColumns = _b === void 0 ? 0 : _b, headerAxis = _a.headerAxis, rest = __rest(_a, ["table", "staticColumns", "headerAxis"]);
|
|
27
39
|
var firstColumn = (0, react_1.useRef)(null);
|
|
28
40
|
var secondColumn = (0, react_1.useRef)(null);
|
|
29
41
|
var tableElement = (0, react_1.useRef)(null);
|
|
@@ -32,27 +44,24 @@ var TableComponent = function (_a) {
|
|
|
32
44
|
var usingExpanderColumn = table.getHeaderGroups().some(function (x) { return x.headers.some(function (h) { return h.column.id === 'expander'; }); });
|
|
33
45
|
var totalStaticColumns = (0, react_1.useMemo)(function () { return (usingExpanderColumn ? staticColumns + 1 : staticColumns); }, [usingExpanderColumn, staticColumns]);
|
|
34
46
|
var getHeaderColumn = function (header, headerIndex) {
|
|
47
|
+
var stickyWidth = (0, table_methods_1.calculateStaticColumnOffset)(headerIndex, totalStaticColumns, firstColumnWidth, secondColumnWidth);
|
|
48
|
+
var headerProps = {
|
|
49
|
+
header: header,
|
|
50
|
+
stickyWidth: stickyWidth,
|
|
51
|
+
};
|
|
35
52
|
switch (headerIndex) {
|
|
36
53
|
case 0:
|
|
37
|
-
return
|
|
54
|
+
return (0, jsx_runtime_1.jsx)(table_header_1.default, __assign({ ref: firstColumn }, headerProps));
|
|
38
55
|
case 1:
|
|
39
|
-
return
|
|
56
|
+
return (0, jsx_runtime_1.jsx)(table_header_1.default, __assign({ ref: secondColumn }, headerProps));
|
|
40
57
|
default:
|
|
41
|
-
return
|
|
58
|
+
return (0, jsx_runtime_1.jsx)(table_header_1.default, __assign({}, headerProps));
|
|
42
59
|
}
|
|
43
60
|
};
|
|
44
|
-
|
|
45
|
-
? {
|
|
46
|
-
style: {
|
|
47
|
-
cursor: header.column.getCanSort() ? 'pointer' : '',
|
|
48
|
-
},
|
|
49
|
-
onClick: header.column.getToggleSortingHandler(),
|
|
50
|
-
}
|
|
51
|
-
: {}), { children: header.isPlaceholder ? null : (0, react_table_1.flexRender)(header.column.columnDef.header, header.getContext()) }), header.id)); };
|
|
52
|
-
return ((0, jsx_runtime_1.jsxs)(table_styled_components_1.StyledTable, { ref: tableElement, children: [(0, jsx_runtime_1.jsx)(table_styled_components_1.StyledTHead, { children: table.getHeaderGroups().map(function (headerGroup) { return ((0, jsx_runtime_1.jsx)("tr", { role: "row", children: headerGroup.headers.map(function (header, headerIndex) { return getHeaderColumn(header, headerIndex); }) }, headerGroup.id)); }) }), (0, jsx_runtime_1.jsx)("tbody", { children: table.getRowModel().rows.map(function (row) { return ((0, jsx_runtime_1.jsx)(table_styled_components_1.StyledTableRow, { tableHeaderAxis: headerAxis, role: "row", children: row.getVisibleCells().map(function (cell, cellIdx) {
|
|
61
|
+
return ((0, jsx_runtime_1.jsxs)(table_styled_components_1.StyledTable, __assign({ ref: tableElement }, rest, { children: [(0, jsx_runtime_1.jsx)(table_styled_components_1.StyledTHead, { children: table.getHeaderGroups().map(function (headerGroup) { return ((0, jsx_runtime_1.jsx)("tr", { role: "row", children: headerGroup.headers.map(function (header, headerIndex) { return getHeaderColumn(header, headerIndex); }) }, headerGroup.id)); }) }), (0, jsx_runtime_1.jsx)("tbody", { children: table.getRowModel().rows.map(function (row) { return ((0, jsx_runtime_1.jsx)(table_styled_components_1.StyledTableRow, { tableHeaderAxis: headerAxis, role: "row", children: row.getVisibleCells().map(function (cell, cellIdx) {
|
|
53
62
|
var _a;
|
|
54
63
|
return ((0, jsx_runtime_1.jsx)(table_styled_components_1.StyledTableData, { tableHeaderAxis: headerAxis, stickyWidth: (0, table_methods_1.calculateStaticColumnOffset)(cellIdx, totalStaticColumns, firstColumnWidth, secondColumnWidth), role: "cell", style: (_a = cell.getValue()) === null || _a === void 0 ? void 0 : _a.parentStyle, children: (0, react_table_1.flexRender)(cell.column.columnDef.cell, cell.getContext()) }, cell.id));
|
|
55
|
-
}) }, row.id)); }) })] }));
|
|
64
|
+
}) }, row.id)); }) })] })));
|
|
56
65
|
};
|
|
57
66
|
var TableNavigationButton = function (_a) {
|
|
58
67
|
var position = _a.position, hidden = _a.hidden, clickHandler = _a.clickHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-component.js","sourceRoot":"","sources":["../../src/molecules/table-component.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table-component.js","sourceRoot":"","sources":["../../src/molecules/table-component.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAmC;AACnC,qDAAqF;AACrF,+BAAuD;AACvD,iDAA6D;AAC7D,qEAOkC;AAClC,sEAAgD;AAGhD,gEAAwC;AAExC,IAAM,cAAc,GAAG,UAAK,EAAqE;IAAnE,IAAA,KAAK,WAAA,EAAE,qBAAiB,EAAjB,aAAa,mBAAG,CAAC,KAAA,EAAE,UAAU,gBAAA,EAAK,IAAI,cAA/C,wCAAiD,CAAF;IACzE,IAAM,WAAW,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAA;IAChC,IAAM,YAAY,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAA;IACjC,IAAM,YAAY,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAA;IACzB,IAAO,gBAAgB,GAAK,IAAA,yBAAgB,EAAC,WAAW,EAAE,YAAY,CAAC,MAAhD,CAAgD;IACvE,IAAO,iBAAiB,GAAK,IAAA,yBAAgB,EAAC,YAAY,EAAE,YAAY,CAAC,MAAjD,CAAiD;IAEjF,IAAM,mBAAmB,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,EAA1B,CAA0B,CAAC,EAAjD,CAAiD,CAAC,CAAA;IAClH,IAAM,kBAAkB,GAAG,IAAA,eAAO,EAChC,cAAM,OAAA,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAzD,CAAyD,EAC/D,CAAC,mBAAmB,EAAE,aAAa,CAAC,CACrC,CAAA;IAED,IAAM,eAAe,GAAG,UAAgB,MAAuC,EAAE,WAAmB;QAClG,IAAM,WAAW,GAAG,IAAA,2CAA2B,EAC7C,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,CAClB,CAAA;QACD,IAAM,WAAW,GAAG;YAClB,MAAM,QAAA;YACN,WAAW,aAAA;SACZ,CAAA;QACD,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,CAAC;gBACJ,OAAO,uBAAC,sBAAW,aAAC,GAAG,EAAE,WAAW,IAAM,WAAW,EAAI,CAAA;YAC3D,KAAK,CAAC;gBACJ,OAAO,uBAAC,sBAAW,aAAC,GAAG,EAAE,YAAY,IAAM,WAAW,EAAI,CAAA;YAC5D;gBACE,OAAO,uBAAC,sBAAW,eAAK,WAAW,EAAI,CAAA;QAC3C,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,wBAAC,qCAAW,aAAC,GAAG,EAAE,YAAY,IAAM,IAAI,eACtC,uBAAC,qCAAW,cACT,KAAK,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAC,WAAW,IAAK,OAAA,CAC5C,+BAAyB,IAAI,EAAC,KAAK,YAChC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,WAAW,IAAK,OAAA,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,EAApC,CAAoC,CAAC,IADhF,WAAW,CAAC,EAAE,CAElB,CACN,EAJ6C,CAI7C,CAAC,GACU,EACd,4CACG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,CACrC,uBAAC,wCAAc,IAAC,eAAe,EAAE,UAAU,EAAe,IAAI,EAAC,KAAK,YACjE,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,OAAO;;wBAAK,OAAA,CAC5C,uBAAC,yCAAe,IACd,eAAe,EAAE,UAAU,EAC3B,WAAW,EAAE,IAAA,2CAA2B,EACtC,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,CAClB,EAED,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,MAAC,IAAI,CAAC,QAAQ,EAAgB,0CAAE,WAAW,YAEjD,IAAA,wBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,IAJrD,IAAI,CAAC,EAAE,CAKI,CACnB,CAAA;qBAAA,CAAC,IAhB8C,GAAG,CAAC,EAAE,CAiBvC,CAClB,EAnBsC,CAmBtC,CAAC,GACI,KACI,CACf,CAAA;AACH,CAAC,CAAA;AAED,IAAM,qBAAqB,GAAG,UAAC,EAAwD;QAAtD,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,YAAY,kBAAA;IAA6B,OAAA,CAC1F,uBAAC,uDAA6B,IAC5B,IAAI,EAAC,QAAQ,EACb,eAAe,EAAE,QAAQ,EACzB,OAAO,EAAE,cAAM,OAAA,YAAY,EAAE,EAAd,CAAc,EAC7B,MAAM,EAAE,MAAM,YAEd,uBAAC,cAAI,IAAC,IAAI,EAAC,SAAS,EAAC,SAAS,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,GAAG,GAC5D,CACjC;AAT2F,CAS3F,CAAA;AAwBQ,sDAAqB;AAtB9B,IAAM,YAAY,GAAG,UAAC,EAAwC;QAAtC,QAAQ,cAAA,EAAE,MAAM,YAAA;IAA2B,OAAA,CACjE,uBAAC,gDAAsB,IAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAC/D,uBAAC,cAAI,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,YAAY,GAAG,GACjC,CAC1B;AAJkE,CAIlE,CAAA;AAkB+B,oCAAY;AAD5C,kBAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Ref } from 'react';
|
|
2
|
+
import { Header as ReactTableHeader } from '@tanstack/react-table';
|
|
3
|
+
interface TableHeaderProps<TData, TValue> {
|
|
4
|
+
header: ReactTableHeader<TData, TValue>;
|
|
5
|
+
stickyWidth?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare const Wrapper: <TData, TValue>({ header, stickyWidth }: TableHeaderProps<TData, TValue>, ref?: Ref<HTMLTableCellElement>) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const TableHeader: <TData, TValue>(props: TableHeaderProps<TData, TValue> & {
|
|
9
|
+
ref?: Ref<HTMLTableCellElement> | undefined;
|
|
10
|
+
}) => ReturnType<typeof Wrapper>;
|
|
11
|
+
export default TableHeader;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.Wrapper = void 0;
|
|
15
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
var react_1 = require("react");
|
|
17
|
+
var react_table_1 = require("@tanstack/react-table");
|
|
18
|
+
var table_styled_components_1 = require("./table-styled-components");
|
|
19
|
+
var Wrapper = function (_a, ref) {
|
|
20
|
+
var header = _a.header, stickyWidth = _a.stickyWidth;
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)(table_styled_components_1.StyledTableHeader, __assign({ ref: ref, stickyWidth: stickyWidth, colSpan: header.colSpan, role: "columnheader" }, (header.column.id !== 'expander'
|
|
22
|
+
? {
|
|
23
|
+
style: {
|
|
24
|
+
cursor: header.column.getCanSort() ? 'pointer' : '',
|
|
25
|
+
},
|
|
26
|
+
onClick: header.column.getToggleSortingHandler(),
|
|
27
|
+
}
|
|
28
|
+
: {}), { children: header.isPlaceholder ? null : (0, react_table_1.flexRender)(header.column.columnDef.header, header.getContext()) }), header.id));
|
|
29
|
+
};
|
|
30
|
+
exports.Wrapper = Wrapper;
|
|
31
|
+
var TableHeader = (0, react_1.forwardRef)(exports.Wrapper);
|
|
32
|
+
exports.default = TableHeader;
|
|
33
|
+
//# sourceMappingURL=table-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-header.js","sourceRoot":"","sources":["../../src/molecules/table-header.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAAuC;AACvC,qDAA8E;AAC9E,qEAA6D;AAOtD,IAAM,OAAO,GAAG,UACrB,EAAwD,EACxD,GAA+B;QAD7B,MAAM,YAAA,EAAE,WAAW,iBAAA;IAElB,OAAA,CACH,uBAAC,2CAAiB,aAChB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EAExB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,IAAI,EAAC,cAAc,IACf,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU;QAClC,CAAC,CAAC;YACE,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;aACpD;YACD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE;SACjD;QACH,CAAC,CAAC,EAAE,CAAC,cAEN,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KAZzF,MAAM,CAAC,EAAE,CAaI,CACrB;AAlBI,CAkBJ,CAAA;AArBY,QAAA,OAAO,WAqBnB;AAED,IAAM,WAAW,GAAG,IAAA,kBAAU,EAAC,eAAO,CAEP,CAAA;AAE/B,kBAAe,WAAW,CAAA"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { ColumnDef
|
|
1
|
+
import { ColumnDef } from '@tanstack/react-table';
|
|
2
2
|
import { Axis } from '@ltht-react/types';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { TableData, DataEntity } from './table';
|
|
5
5
|
import { ScrollState } from './useScrollRef';
|
|
6
6
|
declare const createColumns: (tableData: TableData, headerAxis: Axis) => ColumnDef<DataEntity>[];
|
|
7
7
|
declare const calculateStaticColumnOffset: (cellIdx: number, staticColumns: number, firstColumnWidth: number, secondColumnWidth: number) => number | undefined;
|
|
8
|
-
declare const handleScrollEvent: (
|
|
8
|
+
declare const handleScrollEvent: (pagination: {
|
|
9
|
+
getCanNextPage: () => boolean;
|
|
10
|
+
nextPage: VoidFunction;
|
|
11
|
+
}, headerAxis: Axis, scrollState: ScrollState) => void;
|
|
9
12
|
declare const handleDataUpdate: (tableData: TableData, pageIndex: number, pageSize: number, headerAxis: Axis, setColumns: (value: React.SetStateAction<ColumnDef<DataEntity>[]>) => void, setData: (value: React.SetStateAction<DataEntity[]>) => void, setPageCount: (value: React.SetStateAction<number>) => void) => void;
|
|
10
13
|
declare const handleDataUpdateForManualPagination: (tableData: TableData, headerAxis: Axis, keepPreviousData: boolean, setColumns: (value: React.SetStateAction<ColumnDef<DataEntity>[]>) => void, setData: (value: React.SetStateAction<DataEntity[]>) => void) => void;
|
|
11
14
|
export { createColumns, calculateStaticColumnOffset, handleScrollEvent, handleDataUpdate, handleDataUpdateForManualPagination, };
|
|
@@ -137,19 +137,19 @@ var calculateStaticColumnOffset = function (cellIdx, staticColumns, firstColumnW
|
|
|
137
137
|
}
|
|
138
138
|
};
|
|
139
139
|
exports.calculateStaticColumnOffset = calculateStaticColumnOffset;
|
|
140
|
-
var handleScrollEvent = function (
|
|
140
|
+
var handleScrollEvent = function (pagination, headerAxis, scrollState) {
|
|
141
141
|
var scrollWidth = scrollState.scrollWidth, scrollHeight = scrollState.scrollHeight, currentXScroll = scrollState.currentXScroll, currentYScroll = scrollState.currentYScroll;
|
|
142
142
|
if (headerAxis === 'x' &&
|
|
143
143
|
currentYScroll >= scrollHeight - getPercentageOfMax(5, scrollHeight) &&
|
|
144
144
|
currentYScroll <= scrollHeight &&
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
pagination.getCanNextPage()) {
|
|
146
|
+
pagination.nextPage();
|
|
147
147
|
}
|
|
148
148
|
if (headerAxis === 'y' &&
|
|
149
149
|
currentXScroll >= scrollWidth - getPercentageOfMax(5, scrollWidth) &&
|
|
150
150
|
currentXScroll <= scrollWidth &&
|
|
151
|
-
|
|
152
|
-
|
|
151
|
+
pagination.getCanNextPage()) {
|
|
152
|
+
pagination.nextPage();
|
|
153
153
|
}
|
|
154
154
|
};
|
|
155
155
|
exports.handleScrollEvent = handleScrollEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-methods.js","sourceRoot":"","sources":["../../src/molecules/table-methods.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"table-methods.js","sourceRoot":"","sources":["../../src/molecules/table-methods.tsx"],"names":[],"mappings":"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"}
|
package/lib/molecules/table.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
1
|
+
import { FC, HTMLAttributes } from 'react';
|
|
2
2
|
import { SortingFn } from '@tanstack/react-table';
|
|
3
3
|
import { Axis } from '@ltht-react/types';
|
|
4
4
|
import { CellProps } from './table-cell';
|
|
5
5
|
declare const Table: FC<IProps>;
|
|
6
|
-
interface IProps extends ITableConfig, IPaginationProps, ITableDimensionProps {
|
|
6
|
+
interface IProps extends ITableConfig, IPaginationProps, ITableDimensionProps, HTMLAttributes<HTMLTableElement> {
|
|
7
7
|
tableData: TableData;
|
|
8
8
|
}
|
|
9
9
|
export interface ITableConfig {
|
|
@@ -16,6 +16,7 @@ export interface IPaginationProps {
|
|
|
16
16
|
currentPage?: number;
|
|
17
17
|
pageSize?: number;
|
|
18
18
|
manualPagination?: boolean;
|
|
19
|
+
infiniteScrollEnabled?: boolean;
|
|
19
20
|
nextPage?: () => void;
|
|
20
21
|
getCanNextPage?: () => boolean;
|
|
21
22
|
isFetching?: boolean;
|
package/lib/molecules/table.js
CHANGED
|
@@ -33,6 +33,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
33
33
|
__setModuleDefault(result, mod);
|
|
34
34
|
return result;
|
|
35
35
|
};
|
|
36
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
37
|
+
var t = {};
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
41
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
43
|
+
t[p[i]] = s[p[i]];
|
|
44
|
+
}
|
|
45
|
+
return t;
|
|
46
|
+
};
|
|
36
47
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
48
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
49
|
};
|
|
@@ -45,19 +56,19 @@ var useScrollRef_1 = __importDefault(require("./useScrollRef"));
|
|
|
45
56
|
var table_methods_1 = require("./table-methods");
|
|
46
57
|
var table_component_1 = __importStar(require("./table-component"));
|
|
47
58
|
var Table = function (_a) {
|
|
48
|
-
var tableData = _a.tableData, _b = _a.staticColumns, staticColumns = _b === void 0 ? 0 : _b, _c = _a.currentPage, currentPage = _c === void 0 ? 1 : _c, _d = _a.pageSize, pageSizeParam = _d === void 0 ? 10 : _d, _e = _a.headerAxis, headerAxis = _e === void 0 ? 'x' : _e, _f = _a.manualPagination, manualPagination = _f === void 0 ? false : _f, _g = _a.getCanNextPage, getCanNextPage =
|
|
59
|
+
var tableData = _a.tableData, _b = _a.staticColumns, staticColumns = _b === void 0 ? 0 : _b, _c = _a.currentPage, currentPage = _c === void 0 ? 1 : _c, _d = _a.pageSize, pageSizeParam = _d === void 0 ? 10 : _d, _e = _a.headerAxis, headerAxis = _e === void 0 ? 'x' : _e, _f = _a.manualPagination, manualPagination = _f === void 0 ? false : _f, _g = _a.infiniteScrollEnabled, infiniteScrollEnabled = _g === void 0 ? false : _g, _h = _a.getCanNextPage, getCanNextPage = _h === void 0 ? function () { return false; } : _h, _j = _a.nextPage, nextPage = _j === void 0 ? function () { return null; } : _j, _k = _a.isFetching, isFetching = _k === void 0 ? false : _k, _l = _a.keepPreviousData, keepPreviousData = _l === void 0 ? false : _l, maxHeight = _a.maxHeight, maxWidth = _a.maxWidth, _m = _a.isFlex, isFlex = _m === void 0 ? false : _m, _o = _a.enableSorting, enableSorting = _o === void 0 ? true : _o, _p = _a.sortingFunctions, sortingFunctions = _p === void 0 ? undefined : _p, rest = __rest(_a, ["tableData", "staticColumns", "currentPage", "pageSize", "headerAxis", "manualPagination", "infiniteScrollEnabled", "getCanNextPage", "nextPage", "isFetching", "keepPreviousData", "maxHeight", "maxWidth", "isFlex", "enableSorting", "sortingFunctions"]);
|
|
49
60
|
var scrollableDivElement = (0, react_1.useRef)(null);
|
|
50
61
|
var scrollState = (0, useScrollRef_1.default)(scrollableDivElement);
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var
|
|
62
|
+
var _q = (0, react_1.useState)({}), expanded = _q[0], setExpanded = _q[1];
|
|
63
|
+
var _r = (0, react_1.useState)([]), sorting = _r[0], setSorting = _r[1];
|
|
64
|
+
var _s = (0, react_1.useState)({
|
|
54
65
|
pageIndex: currentPage - 1,
|
|
55
66
|
pageSize: pageSizeParam,
|
|
56
|
-
}),
|
|
67
|
+
}), _t = _s[0], pageIndex = _t.pageIndex, pageSize = _t.pageSize, setPagination = _s[1];
|
|
57
68
|
var pagination = (0, react_1.useMemo)(function () { return ({ pageIndex: pageIndex, pageSize: pageSize }); }, [pageIndex, pageSize]);
|
|
58
|
-
var
|
|
59
|
-
var
|
|
60
|
-
var
|
|
69
|
+
var _u = (0, react_1.useState)([]), data = _u[0], setData = _u[1];
|
|
70
|
+
var _v = (0, react_1.useState)([]), columns = _v[0], setColumns = _v[1];
|
|
71
|
+
var _w = (0, react_1.useState)(-1), pageCount = _w[0], setPageCount = _w[1];
|
|
61
72
|
(0, react_1.useEffect)(function () {
|
|
62
73
|
if (!manualPagination) {
|
|
63
74
|
(0, table_methods_1.handleDataUpdate)(tableData, pageIndex, pageSize, headerAxis, setColumns, setData, setPageCount);
|
|
@@ -69,23 +80,16 @@ var Table = function (_a) {
|
|
|
69
80
|
}
|
|
70
81
|
}, [headerAxis, tableData, manualPagination, keepPreviousData]);
|
|
71
82
|
var table = (0, react_table_1.useReactTable)(__assign(__assign(__assign({ data: data, columns: columns }, (!manualPagination ? { pageCount: pageCount } : {})), { state: __assign({ expanded: expanded, sorting: sorting }, (!manualPagination ? { pagination: pagination } : {})), manualPagination: true, onExpandedChange: setExpanded, onSortingChange: setSorting, enableSorting: enableSorting, sortingFns: sortingFunctions, getSubRows: function (row) { return row.subRows; }, getCoreRowModel: (0, react_table_1.getCoreRowModel)(), getExpandedRowModel: (0, react_table_1.getExpandedRowModel)(), getSortedRowModel: (0, react_table_1.getSortedRowModel)() }), (!manualPagination ? { onPaginationChange: setPagination } : {})));
|
|
83
|
+
var getNextPage = function () { return (manualPagination ? nextPage() : table.nextPage()); };
|
|
84
|
+
var hasNextPage = function () { return (manualPagination ? getCanNextPage() : table.getCanNextPage()); };
|
|
72
85
|
(0, react_1.useEffect)(function () {
|
|
73
|
-
if (!scrollState) {
|
|
86
|
+
if (!scrollState || !infiniteScrollEnabled || isFetching) {
|
|
74
87
|
return;
|
|
75
88
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
var getNextPage = function () {
|
|
81
|
-
if (manualPagination) {
|
|
82
|
-
nextPage();
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
table.nextPage();
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
return ((0, jsx_runtime_1.jsxs)(table_styled_components_1.ScrollableContainer, { ref: scrollableDivElement, tableHeaderAxis: headerAxis, maxHeight: maxHeight, maxWidth: maxWidth, isFlex: isFlex, children: [(0, jsx_runtime_1.jsx)(table_component_1.default, { table: table, staticColumns: staticColumns, headerAxis: headerAxis }), manualPagination ? ((0, jsx_runtime_1.jsx)(table_component_1.TableSpinner, { position: headerAxis === 'x' ? 'bottom' : 'right', hidden: !isFetching })) : null, (0, jsx_runtime_1.jsx)(table_component_1.TableNavigationButton, { position: headerAxis === 'x' ? 'bottom' : 'right', hidden: isFetching || (manualPagination ? !getCanNextPage() : !table.getCanNextPage()), clickHandler: getNextPage })] }));
|
|
89
|
+
(0, table_methods_1.handleScrollEvent)({ getCanNextPage: hasNextPage, nextPage: getNextPage }, headerAxis, scrollState);
|
|
90
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
91
|
+
}, [scrollState]);
|
|
92
|
+
return ((0, jsx_runtime_1.jsxs)(table_styled_components_1.ScrollableContainer, { ref: scrollableDivElement, tableHeaderAxis: headerAxis, maxHeight: maxHeight, maxWidth: maxWidth, isFlex: isFlex, children: [(0, jsx_runtime_1.jsx)(table_component_1.default, __assign({ table: table, staticColumns: staticColumns, headerAxis: headerAxis }, rest)), manualPagination ? ((0, jsx_runtime_1.jsx)(table_component_1.TableSpinner, { position: headerAxis === 'x' ? 'bottom' : 'right', hidden: !isFetching })) : null, (0, jsx_runtime_1.jsx)(table_component_1.TableNavigationButton, { position: headerAxis === 'x' ? 'bottom' : 'right', hidden: isFetching || (manualPagination ? !getCanNextPage() : !table.getCanNextPage()), clickHandler: getNextPage })] }));
|
|
89
93
|
};
|
|
90
94
|
exports.default = Table;
|
|
91
95
|
//# sourceMappingURL=table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/molecules/table.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/molecules/table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,25 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var react_1 = require("react");
|
|
4
4
|
var useScrollRef = function (elementRef) {
|
|
5
5
|
var _a = (0, react_1.useState)(), scrollState = _a[0], setScrollState = _a[1];
|
|
6
|
-
var
|
|
6
|
+
var handleScroll = function (e) {
|
|
7
|
+
var _a, _b, _c, _d, _e, _f;
|
|
8
|
+
if (!e)
|
|
9
|
+
return;
|
|
10
|
+
setScrollState({
|
|
11
|
+
scrollWidth: (_a = e.scrollWidth) !== null && _a !== void 0 ? _a : 0,
|
|
12
|
+
scrollHeight: (_b = e.scrollHeight) !== null && _b !== void 0 ? _b : 0,
|
|
13
|
+
currentXScroll: ((_c = e.scrollLeft) !== null && _c !== void 0 ? _c : 0) + ((_d = e.clientWidth) !== null && _d !== void 0 ? _d : 0),
|
|
14
|
+
currentYScroll: ((_e = e.scrollTop) !== null && _e !== void 0 ? _e : 0) + ((_f = e.clientHeight) !== null && _f !== void 0 ? _f : 0),
|
|
15
|
+
});
|
|
16
|
+
};
|
|
7
17
|
(0, react_1.useEffect)(function () {
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
currentXScroll: ((_c = element === null || element === void 0 ? void 0 : element.scrollLeft) !== null && _c !== void 0 ? _c : 0) + ((_d = element === null || element === void 0 ? void 0 : element.clientWidth) !== null && _d !== void 0 ? _d : 0),
|
|
14
|
-
currentYScroll: ((_e = element === null || element === void 0 ? void 0 : element.scrollTop) !== null && _e !== void 0 ? _e : 0) + ((_f = element === null || element === void 0 ? void 0 : element.clientHeight) !== null && _f !== void 0 ? _f : 0),
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
var handleScroll = function () {
|
|
18
|
-
setScrollState(getScrollState());
|
|
19
|
-
};
|
|
20
|
-
element === null || element === void 0 ? void 0 : element.addEventListener('scroll', handleScroll);
|
|
18
|
+
var element = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current;
|
|
19
|
+
if (element) {
|
|
20
|
+
handleScroll(element); // Set initial scroll state
|
|
21
|
+
element.addEventListener('scroll', function () { return handleScroll(element); });
|
|
22
|
+
}
|
|
21
23
|
return function () {
|
|
22
|
-
element === null || element === void 0 ? void 0 : element.removeEventListener('scroll', handleScroll);
|
|
24
|
+
element === null || element === void 0 ? void 0 : element.removeEventListener('scroll', function () { return handleScroll(element); });
|
|
23
25
|
};
|
|
24
|
-
}, [
|
|
26
|
+
}, [elementRef]);
|
|
25
27
|
return scrollState;
|
|
26
28
|
};
|
|
27
29
|
exports.default = useScrollRef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollRef.js","sourceRoot":"","sources":["../../src/molecules/useScrollRef.tsx"],"names":[],"mappings":";;AAAA,+BAA2C;AAE3C,IAAM,YAAY,GAAG,UAAC,UAAwC;IACtD,IAAA,KAAgC,IAAA,gBAAQ,GAAe,EAAtD,WAAW,QAAA,EAAE,cAAc,QAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"useScrollRef.js","sourceRoot":"","sources":["../../src/molecules/useScrollRef.tsx"],"names":[],"mappings":";;AAAA,+BAA2C;AAE3C,IAAM,YAAY,GAAG,UAAC,UAAwC;IACtD,IAAA,KAAgC,IAAA,gBAAQ,GAAe,EAAtD,WAAW,QAAA,EAAE,cAAc,QAA2B,CAAA;IAE7D,IAAM,YAAY,GAAG,UAAC,CAAc;;QAClC,IAAI,CAAC,CAAC;YAAE,OAAM;QAEd,cAAc,CAAC;YACb,WAAW,EAAE,MAAA,CAAC,CAAC,WAAW,mCAAI,CAAC;YAC/B,YAAY,EAAE,MAAA,CAAC,CAAC,YAAY,mCAAI,CAAC;YACjC,cAAc,EAAE,CAAC,MAAA,CAAC,CAAC,UAAU,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,WAAW,mCAAI,CAAC,CAAC;YAC1D,cAAc,EAAE,CAAC,MAAA,CAAC,CAAC,SAAS,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,YAAY,mCAAI,CAAC,CAAC;SAC3D,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC;QACR,IAAM,OAAO,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAA;QAEnC,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,CAAA,CAAC,2BAA2B;YACjD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAM,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB,CAAC,CAAA;QACjE,CAAC;QAED,OAAO;YACL,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,QAAQ,EAAE,cAAM,OAAA,YAAY,CAAC,OAAO,CAAC,EAArB,CAAqB,CAAC,CAAA;QACrE,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AASD,kBAAe,YAAY,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IPaginationProps, ITableDimensionProps, ITableConfig, TableData } from '../molecules/table';
|
|
2
2
|
declare const GenericTable: <TColumn, TRow>({ columnData, rowData, mapToTableData, headerAxis, pageSize, currentPage, keepPreviousData, ...props }: IProps<TColumn, TRow>) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
interface IProps<TColumn, TRow> extends ITableConfig, IPaginationProps, ITableDimensionProps {
|
|
4
|
+
id?: string;
|
|
4
5
|
columnData: TColumn;
|
|
5
6
|
rowData: TRow;
|
|
6
7
|
mapToTableData: (colData: TColumn, rowData: TRow) => TableData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-table.js","sourceRoot":"","sources":["../../src/organisms/generic-table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA2G;AAE3G,IAAM,YAAY,GAAG,UAAgB,EASb;IARtB,IAAA,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,cAAc,oBAAA,EACd,kBAAgB,EAAhB,UAAU,mBAAG,GAAG,KAAA,EAChB,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,mBAAe,EAAf,WAAW,mBAAG,CAAC,KAAA,EACf,wBAAuB,EAAvB,gBAAgB,mBAAG,IAAI,KAAA,EACpB,KAAK,cAR2B,wGASpC,CADS;IAER,IAAM,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAErD,OAAO,CACL,uBAAC,eAAK,aACJ,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,IAC9B,KAAK,EACT,CACH,CAAA;AACH,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"generic-table.js","sourceRoot":"","sources":["../../src/organisms/generic-table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA2G;AAE3G,IAAM,YAAY,GAAG,UAAgB,EASb;IARtB,IAAA,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,cAAc,oBAAA,EACd,kBAAgB,EAAhB,UAAU,mBAAG,GAAG,KAAA,EAChB,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,mBAAe,EAAf,WAAW,mBAAG,CAAC,KAAA,EACf,wBAAuB,EAAvB,gBAAgB,mBAAG,IAAI,KAAA,EACpB,KAAK,cAR2B,wGASpC,CADS;IAER,IAAM,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAErD,OAAO,CACL,uBAAC,eAAK,aACJ,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,IAC9B,KAAK,EACT,CACH,CAAA;AACH,CAAC,CAAA;AASD,kBAAe,YAAY,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { IPaginationProps, ITableDimensionProps, ITableConfig } from '../molecul
|
|
|
4
4
|
import { AdminActionsForQuestionnaire } from './questionnaire-table-methods';
|
|
5
5
|
declare const QuestionnaireTable: FC<IProps>;
|
|
6
6
|
interface IProps extends ITableConfig, IPaginationProps, ITableDimensionProps {
|
|
7
|
+
id?: string;
|
|
7
8
|
definition: Questionnaire;
|
|
8
9
|
records: QuestionnaireResponse[];
|
|
9
10
|
adminActions?: AdminActionsForQuestionnaire[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questionnaire-table.js","sourceRoot":"","sources":["../../src/organisms/questionnaire-table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+BAAmC;AACnC,0DAAmC;AACnC,6DAAgG;AAChG,8FAEsC;AAEtC,IAAM,kBAAkB,GAAe,UAAC,EAUvC;IATC,IAAA,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,kBAAgB,EAAhB,UAAU,mBAAG,GAAG,KAAA,EAChB,qBAAiB,EAAjB,aAAa,mBAAG,CAAC,KAAA,EACjB,YAAY,kBAAA,EACZ,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,mBAAe,EAAf,WAAW,mBAAG,CAAC,KAAA,EACf,wBAAuB,EAAvB,gBAAgB,mBAAG,IAAI,KAAA,EACpB,KAAK,cAT8B,uHAUvC,CADS;IAER,IAAM,SAAS,GAAG,IAAA,eAAO,EACvB,cAAM,OAAA,IAAA,qCAAiD,EAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,EAAhG,CAAgG,EACtG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAChD,CAAA;IAED,sEAAsE;IACtE,wCAAwC;IACxC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CACL,6DACE,uBAAC,cAAI,IAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,GAAG,EACpD,2FAAuD,IACtD,CACJ,CAAA;IACH,CAAC;IAED,OAAO,CACL,uBAAC,eAAK,aACJ,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,IAC9B,KAAK,EACT,CACH,CAAA;AACH,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"questionnaire-table.js","sourceRoot":"","sources":["../../src/organisms/questionnaire-table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+BAAmC;AACnC,0DAAmC;AACnC,6DAAgG;AAChG,8FAEsC;AAEtC,IAAM,kBAAkB,GAAe,UAAC,EAUvC;IATC,IAAA,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,kBAAgB,EAAhB,UAAU,mBAAG,GAAG,KAAA,EAChB,qBAAiB,EAAjB,aAAa,mBAAG,CAAC,KAAA,EACjB,YAAY,kBAAA,EACZ,gBAAa,EAAb,QAAQ,mBAAG,EAAE,KAAA,EACb,mBAAe,EAAf,WAAW,mBAAG,CAAC,KAAA,EACf,wBAAuB,EAAvB,gBAAgB,mBAAG,IAAI,KAAA,EACpB,KAAK,cAT8B,uHAUvC,CADS;IAER,IAAM,SAAS,GAAG,IAAA,eAAO,EACvB,cAAM,OAAA,IAAA,qCAAiD,EAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,EAAhG,CAAgG,EACtG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAChD,CAAA;IAED,sEAAsE;IACtE,wCAAwC;IACxC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CACL,6DACE,uBAAC,cAAI,IAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,GAAG,EACpD,2FAAuD,IACtD,CACJ,CAAA;IACH,CAAC;IAED,OAAO,CACL,uBAAC,eAAK,aACJ,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,IAC9B,KAAK,EACT,CACH,CAAA;AACH,CAAC,CAAA;AASD,kBAAe,kBAAkB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ltht-react/table",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.155",
|
|
4
4
|
"description": "ltht-react Table component.",
|
|
5
5
|
"author": "LTHT",
|
|
6
6
|
"homepage": "",
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@emotion/react": "^11.0.0",
|
|
30
30
|
"@emotion/styled": "^11.0.0",
|
|
31
|
-
"@ltht-react/button": "^2.0.
|
|
32
|
-
"@ltht-react/icon": "^2.0.
|
|
33
|
-
"@ltht-react/menu": "^2.0.
|
|
34
|
-
"@ltht-react/styles": "^2.0.
|
|
35
|
-
"@ltht-react/types": "^2.0.
|
|
36
|
-
"@ltht-react/utils": "^2.0.
|
|
31
|
+
"@ltht-react/button": "^2.0.155",
|
|
32
|
+
"@ltht-react/icon": "^2.0.155",
|
|
33
|
+
"@ltht-react/menu": "^2.0.155",
|
|
34
|
+
"@ltht-react/styles": "^2.0.155",
|
|
35
|
+
"@ltht-react/types": "^2.0.155",
|
|
36
|
+
"@ltht-react/utils": "^2.0.155",
|
|
37
37
|
"@tanstack/react-table": "^8.10.7",
|
|
38
38
|
"react": "^18.2.0",
|
|
39
39
|
"react-uuid": "^2.0.0"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "0b2be4f69fef44231fbe32aaf89f93e3f88c589e"
|
|
42
42
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Icon from '@ltht-react/icon'
|
|
2
2
|
import { flexRender, Header as ReactTableHeader, Table } from '@tanstack/react-table'
|
|
3
|
-
import
|
|
3
|
+
import { HTMLAttributes, useMemo, useRef } from 'react'
|
|
4
4
|
import { calculateStaticColumnOffset } from './table-methods'
|
|
5
5
|
import {
|
|
6
6
|
StyledNextPageButtonContainer,
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
StyledTable,
|
|
9
9
|
StyledTableRow,
|
|
10
10
|
StyledTableData,
|
|
11
|
-
StyledTableHeader,
|
|
12
11
|
StyledTHead,
|
|
13
12
|
} from './table-styled-components'
|
|
14
13
|
import useDimensionsRef from './useDimensionRef'
|
|
15
14
|
import { CellProps } from './table-cell'
|
|
16
15
|
import { ITableConfig } from './table'
|
|
16
|
+
import TableHeader from './table-header'
|
|
17
17
|
|
|
18
|
-
const TableComponent = <T,>({ table, staticColumns = 0, headerAxis }: ITableHeadProps<T>): JSX.Element => {
|
|
18
|
+
const TableComponent = <T,>({ table, staticColumns = 0, headerAxis, ...rest }: ITableHeadProps<T>): JSX.Element => {
|
|
19
19
|
const firstColumn = useRef(null)
|
|
20
20
|
const secondColumn = useRef(null)
|
|
21
21
|
const tableElement = useRef(null)
|
|
@@ -29,54 +29,28 @@ const TableComponent = <T,>({ table, staticColumns = 0, headerAxis }: ITableHead
|
|
|
29
29
|
)
|
|
30
30
|
|
|
31
31
|
const getHeaderColumn = <TData, TValue>(header: ReactTableHeader<TData, TValue>, headerIndex: number) => {
|
|
32
|
+
const stickyWidth = calculateStaticColumnOffset(
|
|
33
|
+
headerIndex,
|
|
34
|
+
totalStaticColumns,
|
|
35
|
+
firstColumnWidth,
|
|
36
|
+
secondColumnWidth
|
|
37
|
+
)
|
|
38
|
+
const headerProps = {
|
|
39
|
+
header,
|
|
40
|
+
stickyWidth,
|
|
41
|
+
}
|
|
32
42
|
switch (headerIndex) {
|
|
33
43
|
case 0:
|
|
34
|
-
return
|
|
35
|
-
header,
|
|
36
|
-
calculateStaticColumnOffset(headerIndex, totalStaticColumns, firstColumnWidth, secondColumnWidth),
|
|
37
|
-
firstColumn
|
|
38
|
-
)
|
|
44
|
+
return <TableHeader ref={firstColumn} {...headerProps} />
|
|
39
45
|
case 1:
|
|
40
|
-
return
|
|
41
|
-
header,
|
|
42
|
-
calculateStaticColumnOffset(headerIndex, totalStaticColumns, firstColumnWidth, secondColumnWidth),
|
|
43
|
-
secondColumn
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
+
return <TableHeader ref={secondColumn} {...headerProps} />
|
|
46
47
|
default:
|
|
47
|
-
return
|
|
48
|
-
header,
|
|
49
|
-
calculateStaticColumnOffset(headerIndex, totalStaticColumns, firstColumnWidth, secondColumnWidth)
|
|
50
|
-
)
|
|
48
|
+
return <TableHeader {...headerProps} />
|
|
51
49
|
}
|
|
52
50
|
}
|
|
53
51
|
|
|
54
|
-
const getHeaderElement = <TData, TValue>(
|
|
55
|
-
header: ReactTableHeader<TData, TValue>,
|
|
56
|
-
stickyWidth?: number,
|
|
57
|
-
elementRef?: React.MutableRefObject<null>
|
|
58
|
-
) => (
|
|
59
|
-
<StyledTableHeader
|
|
60
|
-
stickyWidth={stickyWidth}
|
|
61
|
-
key={header.id}
|
|
62
|
-
colSpan={header.colSpan}
|
|
63
|
-
ref={elementRef}
|
|
64
|
-
role="columnheader"
|
|
65
|
-
{...(header.column.id !== 'expander'
|
|
66
|
-
? {
|
|
67
|
-
style: {
|
|
68
|
-
cursor: header.column.getCanSort() ? 'pointer' : '',
|
|
69
|
-
},
|
|
70
|
-
onClick: header.column.getToggleSortingHandler(),
|
|
71
|
-
}
|
|
72
|
-
: {})}
|
|
73
|
-
>
|
|
74
|
-
{header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}
|
|
75
|
-
</StyledTableHeader>
|
|
76
|
-
)
|
|
77
|
-
|
|
78
52
|
return (
|
|
79
|
-
<StyledTable ref={tableElement}>
|
|
53
|
+
<StyledTable ref={tableElement} {...rest}>
|
|
80
54
|
<StyledTHead>
|
|
81
55
|
{table.getHeaderGroups().map((headerGroup) => (
|
|
82
56
|
<tr key={headerGroup.id} role="row">
|
|
@@ -138,7 +112,7 @@ interface ITableSpinnerProps {
|
|
|
138
112
|
hidden: boolean
|
|
139
113
|
}
|
|
140
114
|
|
|
141
|
-
interface ITableHeadProps<T> extends ITableConfig {
|
|
115
|
+
interface ITableHeadProps<T> extends ITableConfig, HTMLAttributes<HTMLTableElement> {
|
|
142
116
|
table: Table<T>
|
|
143
117
|
}
|
|
144
118
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { forwardRef, Ref } from 'react'
|
|
2
|
+
import { flexRender, Header as ReactTableHeader } from '@tanstack/react-table'
|
|
3
|
+
import { StyledTableHeader } from './table-styled-components'
|
|
4
|
+
|
|
5
|
+
interface TableHeaderProps<TData, TValue> {
|
|
6
|
+
header: ReactTableHeader<TData, TValue>
|
|
7
|
+
stickyWidth?: number
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const Wrapper = <TData, TValue>(
|
|
11
|
+
{ header, stickyWidth }: TableHeaderProps<TData, TValue>,
|
|
12
|
+
ref?: Ref<HTMLTableCellElement>
|
|
13
|
+
) => (
|
|
14
|
+
<StyledTableHeader
|
|
15
|
+
ref={ref}
|
|
16
|
+
stickyWidth={stickyWidth}
|
|
17
|
+
key={header.id}
|
|
18
|
+
colSpan={header.colSpan}
|
|
19
|
+
role="columnheader"
|
|
20
|
+
{...(header.column.id !== 'expander'
|
|
21
|
+
? {
|
|
22
|
+
style: {
|
|
23
|
+
cursor: header.column.getCanSort() ? 'pointer' : '',
|
|
24
|
+
},
|
|
25
|
+
onClick: header.column.getToggleSortingHandler(),
|
|
26
|
+
}
|
|
27
|
+
: {})}
|
|
28
|
+
>
|
|
29
|
+
{header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}
|
|
30
|
+
</StyledTableHeader>
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
const TableHeader = forwardRef(Wrapper) as <TData, TValue>(
|
|
34
|
+
props: TableHeaderProps<TData, TValue> & { ref?: Ref<HTMLTableCellElement> }
|
|
35
|
+
) => ReturnType<typeof Wrapper>
|
|
36
|
+
|
|
37
|
+
export default TableHeader
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ColumnDef, ColumnHelper, createColumnHelper, HeaderContext
|
|
1
|
+
import { ColumnDef, ColumnHelper, createColumnHelper, HeaderContext } from '@tanstack/react-table'
|
|
2
2
|
import { IconProps } from '@ltht-react/icon'
|
|
3
3
|
import { Axis } from '@ltht-react/types'
|
|
4
4
|
import React from 'react'
|
|
@@ -138,24 +138,28 @@ const calculateStaticColumnOffset = (
|
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
const handleScrollEvent = (
|
|
141
|
+
const handleScrollEvent = (
|
|
142
|
+
pagination: { getCanNextPage: () => boolean; nextPage: VoidFunction },
|
|
143
|
+
headerAxis: Axis,
|
|
144
|
+
scrollState: ScrollState
|
|
145
|
+
) => {
|
|
142
146
|
const { scrollWidth, scrollHeight, currentXScroll, currentYScroll } = scrollState
|
|
143
147
|
if (
|
|
144
148
|
headerAxis === 'x' &&
|
|
145
149
|
currentYScroll >= scrollHeight - getPercentageOfMax(5, scrollHeight) &&
|
|
146
150
|
currentYScroll <= scrollHeight &&
|
|
147
|
-
|
|
151
|
+
pagination.getCanNextPage()
|
|
148
152
|
) {
|
|
149
|
-
|
|
153
|
+
pagination.nextPage()
|
|
150
154
|
}
|
|
151
155
|
|
|
152
156
|
if (
|
|
153
157
|
headerAxis === 'y' &&
|
|
154
158
|
currentXScroll >= scrollWidth - getPercentageOfMax(5, scrollWidth) &&
|
|
155
159
|
currentXScroll <= scrollWidth &&
|
|
156
|
-
|
|
160
|
+
pagination.getCanNextPage()
|
|
157
161
|
) {
|
|
158
|
-
|
|
162
|
+
pagination.nextPage()
|
|
159
163
|
}
|
|
160
164
|
}
|
|
161
165
|
|
package/src/molecules/table.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FC, useEffect, useMemo, useRef, useState } from 'react'
|
|
1
|
+
import { FC, HTMLAttributes, useEffect, useMemo, useRef, useState } from 'react'
|
|
2
2
|
import {
|
|
3
3
|
getCoreRowModel,
|
|
4
4
|
useReactTable,
|
|
@@ -24,6 +24,7 @@ const Table: FC<IProps> = ({
|
|
|
24
24
|
pageSize: pageSizeParam = 10,
|
|
25
25
|
headerAxis = 'x',
|
|
26
26
|
manualPagination = false,
|
|
27
|
+
infiniteScrollEnabled = false,
|
|
27
28
|
getCanNextPage = () => false,
|
|
28
29
|
nextPage = () => null,
|
|
29
30
|
isFetching = false,
|
|
@@ -33,8 +34,9 @@ const Table: FC<IProps> = ({
|
|
|
33
34
|
isFlex = false,
|
|
34
35
|
enableSorting = true,
|
|
35
36
|
sortingFunctions = undefined,
|
|
37
|
+
...rest
|
|
36
38
|
}) => {
|
|
37
|
-
const scrollableDivElement = useRef(null)
|
|
39
|
+
const scrollableDivElement = useRef<HTMLDivElement>(null)
|
|
38
40
|
const scrollState = useScrollRef(scrollableDivElement)
|
|
39
41
|
|
|
40
42
|
const [expanded, setExpanded] = useState<ExpandedState>({})
|
|
@@ -82,23 +84,18 @@ const Table: FC<IProps> = ({
|
|
|
82
84
|
...(!manualPagination ? { onPaginationChange: setPagination } : {}),
|
|
83
85
|
})
|
|
84
86
|
|
|
87
|
+
const getNextPage = () => (manualPagination ? nextPage() : table.nextPage())
|
|
88
|
+
const hasNextPage = () => (manualPagination ? getCanNextPage() : table.getCanNextPage())
|
|
89
|
+
|
|
85
90
|
useEffect(() => {
|
|
86
|
-
if (!scrollState) {
|
|
91
|
+
if (!scrollState || !infiniteScrollEnabled || isFetching) {
|
|
87
92
|
return
|
|
88
93
|
}
|
|
89
94
|
|
|
90
|
-
|
|
91
|
-
handleScrollEvent(table, headerAxis, scrollState)
|
|
92
|
-
}
|
|
93
|
-
}, [scrollState, table, headerAxis, manualPagination])
|
|
95
|
+
handleScrollEvent({ getCanNextPage: hasNextPage, nextPage: getNextPage }, headerAxis, scrollState)
|
|
94
96
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
nextPage()
|
|
98
|
-
} else {
|
|
99
|
-
table.nextPage()
|
|
100
|
-
}
|
|
101
|
-
}
|
|
97
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
98
|
+
}, [scrollState])
|
|
102
99
|
|
|
103
100
|
return (
|
|
104
101
|
<ScrollableContainer
|
|
@@ -107,7 +104,7 @@ const Table: FC<IProps> = ({
|
|
|
107
104
|
{...{ maxHeight, maxWidth }}
|
|
108
105
|
isFlex={isFlex}
|
|
109
106
|
>
|
|
110
|
-
<TableComponent table={table} staticColumns={staticColumns} headerAxis={headerAxis} />
|
|
107
|
+
<TableComponent table={table} staticColumns={staticColumns} headerAxis={headerAxis} {...rest} />
|
|
111
108
|
{manualPagination ? (
|
|
112
109
|
<TableSpinner position={headerAxis === 'x' ? 'bottom' : 'right'} hidden={!isFetching} />
|
|
113
110
|
) : null}
|
|
@@ -120,7 +117,7 @@ const Table: FC<IProps> = ({
|
|
|
120
117
|
)
|
|
121
118
|
}
|
|
122
119
|
|
|
123
|
-
interface IProps extends ITableConfig, IPaginationProps, ITableDimensionProps {
|
|
120
|
+
interface IProps extends ITableConfig, IPaginationProps, ITableDimensionProps, HTMLAttributes<HTMLTableElement> {
|
|
124
121
|
tableData: TableData
|
|
125
122
|
}
|
|
126
123
|
|
|
@@ -136,6 +133,7 @@ export interface IPaginationProps {
|
|
|
136
133
|
currentPage?: number
|
|
137
134
|
pageSize?: number
|
|
138
135
|
manualPagination?: boolean
|
|
136
|
+
infiniteScrollEnabled?: boolean
|
|
139
137
|
nextPage?: () => void
|
|
140
138
|
getCanNextPage?: () => boolean
|
|
141
139
|
isFetching?: boolean
|
|
@@ -2,26 +2,30 @@ import { useEffect, useState } from 'react'
|
|
|
2
2
|
|
|
3
3
|
const useScrollRef = (elementRef: React.RefObject<HTMLElement>) => {
|
|
4
4
|
const [scrollState, setScrollState] = useState<ScrollState>()
|
|
5
|
-
const element = elementRef.current
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
const handleScroll = (e: HTMLElement) => {
|
|
7
|
+
if (!e) return
|
|
8
|
+
|
|
9
|
+
setScrollState({
|
|
10
|
+
scrollWidth: e.scrollWidth ?? 0,
|
|
11
|
+
scrollHeight: e.scrollHeight ?? 0,
|
|
12
|
+
currentXScroll: (e.scrollLeft ?? 0) + (e.clientWidth ?? 0),
|
|
13
|
+
currentYScroll: (e.scrollTop ?? 0) + (e.clientHeight ?? 0),
|
|
13
14
|
})
|
|
15
|
+
}
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const element = elementRef?.current
|
|
18
19
|
|
|
19
|
-
element
|
|
20
|
+
if (element) {
|
|
21
|
+
handleScroll(element) // Set initial scroll state
|
|
22
|
+
element.addEventListener('scroll', () => handleScroll(element))
|
|
23
|
+
}
|
|
20
24
|
|
|
21
25
|
return () => {
|
|
22
|
-
element?.removeEventListener('scroll', handleScroll)
|
|
26
|
+
element?.removeEventListener('scroll', () => handleScroll(element))
|
|
23
27
|
}
|
|
24
|
-
}, [
|
|
28
|
+
}, [elementRef])
|
|
25
29
|
|
|
26
30
|
return scrollState
|
|
27
31
|
}
|
|
@@ -25,6 +25,7 @@ const GenericTable = <TColumn, TRow>({
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
interface IProps<TColumn, TRow> extends ITableConfig, IPaginationProps, ITableDimensionProps {
|
|
28
|
+
id?: string
|
|
28
29
|
columnData: TColumn
|
|
29
30
|
rowData: TRow
|
|
30
31
|
mapToTableData: (colData: TColumn, rowData: TRow) => TableData
|