@ltht-react/table 1.0.60 → 1.0.62
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/README.md +15 -15
- package/lib/atoms/table.d.ts +25 -0
- package/lib/atoms/table.js +86 -0
- package/lib/atoms/table.js.map +1 -0
- package/lib/molecules/questionnaire-table.d.ts +12 -0
- package/lib/molecules/questionnaire-table.js +130 -0
- package/lib/molecules/questionnaire-table.js.map +1 -0
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# Select
|
|
2
|
-
|
|
3
|
-
<!-- STORY -->
|
|
4
|
-
|
|
5
|
-
### Import
|
|
6
|
-
|
|
7
|
-
```js
|
|
8
|
-
import Select from '@ltht-react/table'
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
### Usage
|
|
12
|
-
|
|
13
|
-
```jsx
|
|
14
|
-
<Table />
|
|
15
|
-
```
|
|
1
|
+
# Select
|
|
2
|
+
|
|
3
|
+
<!-- STORY -->
|
|
4
|
+
|
|
5
|
+
### Import
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
import Select from '@ltht-react/table'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Usage
|
|
12
|
+
|
|
13
|
+
```jsx
|
|
14
|
+
<Table />
|
|
15
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export default function Table<TColumn, TRow>({ tableData, columnData, rowData, mapToTableData, }: IProps<TColumn, TRow>): JSX.Element;
|
|
3
|
+
interface IProps<TColumn, TRow> {
|
|
4
|
+
tableData?: TableData;
|
|
5
|
+
columnData?: TColumn;
|
|
6
|
+
rowData?: TRow;
|
|
7
|
+
mapToTableData?: (colItems: TColumn, rowItems: TRow) => TableData;
|
|
8
|
+
}
|
|
9
|
+
export interface Header {
|
|
10
|
+
header: string;
|
|
11
|
+
accessor: string;
|
|
12
|
+
subheaders?: Header[];
|
|
13
|
+
}
|
|
14
|
+
export interface Cell {
|
|
15
|
+
key: string;
|
|
16
|
+
value: string;
|
|
17
|
+
}
|
|
18
|
+
export interface CellRow {
|
|
19
|
+
cells: Cell[];
|
|
20
|
+
}
|
|
21
|
+
export interface TableData {
|
|
22
|
+
headers: Header[];
|
|
23
|
+
rows: CellRow[];
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
22
|
+
var react_table_1 = require("react-table");
|
|
23
|
+
var CssBaseline_1 = __importDefault(require("@material-ui/core/CssBaseline"));
|
|
24
|
+
var Table_1 = __importDefault(require("@material-ui/core/Table"));
|
|
25
|
+
var TableBody_1 = __importDefault(require("@material-ui/core/TableBody"));
|
|
26
|
+
var TableCell_1 = __importDefault(require("@material-ui/core/TableCell"));
|
|
27
|
+
var TableHead_1 = __importDefault(require("@material-ui/core/TableHead"));
|
|
28
|
+
var TableRow_1 = __importDefault(require("@material-ui/core/TableRow"));
|
|
29
|
+
var styled_1 = __importDefault(require("@emotion/styled"));
|
|
30
|
+
var styles_1 = require("@ltht-react/styles");
|
|
31
|
+
var react_1 = require("react");
|
|
32
|
+
var Container = styled_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: white;\n"], ["\n background-color: white;\n"])));
|
|
33
|
+
var StyledTableHeader = styled_1.default.th(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border: 1px solid rgba(200, 200, 200, 1);\n"], ["\n border: 1px solid rgba(200, 200, 200, 1);\n"])));
|
|
34
|
+
var generateColumnsFromHeadersRecursively = function (headers) {
|
|
35
|
+
return (headers !== null && headers !== void 0 ? headers : []).map(function (header) { return ({
|
|
36
|
+
Header: header.header,
|
|
37
|
+
accessor: header.subheaders ? '' : header.accessor,
|
|
38
|
+
columns: header.subheaders ? generateColumnsFromHeadersRecursively(header.subheaders) : undefined,
|
|
39
|
+
sortType: 'basic',
|
|
40
|
+
// TODO: Figure out why sorting headers with subheaders causes an error and fix
|
|
41
|
+
disableSortBy: !!header.subheaders,
|
|
42
|
+
}); });
|
|
43
|
+
};
|
|
44
|
+
var generateRowsFromCellRows = function (cellRows) {
|
|
45
|
+
return cellRows.map(function (cellRow) {
|
|
46
|
+
var mappedCell = {};
|
|
47
|
+
cellRow.cells.forEach(function (cell) {
|
|
48
|
+
mappedCell[cell.key] = cell.value;
|
|
49
|
+
});
|
|
50
|
+
return mappedCell;
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
function Table(_a) {
|
|
54
|
+
var tableData = _a.tableData, columnData = _a.columnData, rowData = _a.rowData, mapToTableData = _a.mapToTableData;
|
|
55
|
+
var _b = react_1.useState([]), columns = _b[0], setColumns = _b[1];
|
|
56
|
+
var _c = react_1.useState([]), data = _c[0], setData = _c[1];
|
|
57
|
+
react_1.useEffect(function () {
|
|
58
|
+
var mappedTableData = columnData && rowData && mapToTableData
|
|
59
|
+
? mapToTableData(columnData, rowData)
|
|
60
|
+
: tableData !== null && tableData !== void 0 ? tableData : { headers: [], rows: [] };
|
|
61
|
+
setColumns(generateColumnsFromHeadersRecursively(mappedTableData.headers));
|
|
62
|
+
setData(generateRowsFromCellRows(mappedTableData.rows));
|
|
63
|
+
}, [tableData, columnData, rowData, mapToTableData]);
|
|
64
|
+
var _d = react_table_1.useTable({
|
|
65
|
+
columns: columns,
|
|
66
|
+
data: data,
|
|
67
|
+
}, react_table_1.useSortBy), getTableProps = _d.getTableProps, getTableBodyProps = _d.getTableBodyProps, headerGroups = _d.headerGroups, rows = _d.rows, prepareRow = _d.prepareRow;
|
|
68
|
+
var sortIcon = function (column) {
|
|
69
|
+
if (column.isSorted) {
|
|
70
|
+
return jsx_runtime_1.jsx("span", { children: column.isSortedDesc ? ' 🔽' : ' 🔼' }, void 0);
|
|
71
|
+
}
|
|
72
|
+
return '';
|
|
73
|
+
};
|
|
74
|
+
return (jsx_runtime_1.jsxs(Container, { children: [jsx_runtime_1.jsx(CssBaseline_1.default, {}, void 0),
|
|
75
|
+
jsx_runtime_1.jsxs(Table_1.default, __assign({}, getTableProps(), { children: [jsx_runtime_1.jsx(TableHead_1.default, { children: headerGroups.map(function (headerGroup) { return (jsx_runtime_1.jsx("tr", __assign({}, headerGroup.getHeaderGroupProps(), { children: headerGroup.headers.map(function (column) { return (jsx_runtime_1.jsxs(StyledTableHeader, __assign({}, column.getHeaderProps(column.getSortByToggleProps()), { children: [column.render('Header'), sortIcon(column)] }), void 0)); }) }), void 0)); }) }, void 0),
|
|
76
|
+
jsx_runtime_1.jsx(TableBody_1.default, __assign({}, getTableBodyProps(), { children: rows.map(function (row) {
|
|
77
|
+
prepareRow(row);
|
|
78
|
+
return (jsx_runtime_1.jsx(TableRow_1.default, __assign({}, row.getRowProps(), { children: row.cells.map(function (cell, cellIdx) { return (jsx_runtime_1.jsx(TableCell_1.default, __assign({ style: {
|
|
79
|
+
background: cellIdx % 2 === 1 ? styles_1.TRANSLUCENT_GREY_TABLE : styles_1.TRANSLUCENT_BRIGHT_BLUE_TABLE,
|
|
80
|
+
textAlign: 'center',
|
|
81
|
+
} }, cell.getCellProps(), { children: cell.render('Cell') }), void 0)); }) }), void 0));
|
|
82
|
+
}) }), void 0)] }), void 0)] }, void 0));
|
|
83
|
+
}
|
|
84
|
+
exports.default = Table;
|
|
85
|
+
var templateObject_1, templateObject_2;
|
|
86
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/atoms/table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { QuestionnaireItem, QuestionnaireResponse, SummaryTableViewType } from '@ltht-react/types';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
import { TableData } from '../atoms/table';
|
|
4
|
+
export declare const mapQuestionnaireObjectsToVerticalTableData: (definitionItems: Array<QuestionnaireItem>, records: QuestionnaireResponse[]) => TableData;
|
|
5
|
+
export declare const mapQuestionnaireObjectsToHorizontalTableData: (definitionItems: Array<QuestionnaireItem>, records: QuestionnaireResponse[]) => TableData;
|
|
6
|
+
declare const QuestionnaireTable: FC<IProps>;
|
|
7
|
+
interface IProps {
|
|
8
|
+
orientation: SummaryTableViewType;
|
|
9
|
+
definitionItems: QuestionnaireItem[];
|
|
10
|
+
records: QuestionnaireResponse[];
|
|
11
|
+
}
|
|
12
|
+
export default QuestionnaireTable;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
3
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
4
|
+
to[j] = from[i];
|
|
5
|
+
return to;
|
|
6
|
+
};
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.mapQuestionnaireObjectsToHorizontalTableData = exports.mapQuestionnaireObjectsToVerticalTableData = void 0;
|
|
12
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
13
|
+
var utils_1 = require("@ltht-react/utils");
|
|
14
|
+
var react_1 = require("react");
|
|
15
|
+
var table_1 = __importDefault(require("../atoms/table"));
|
|
16
|
+
var mapQuestionnaireObjectsToVerticalTableData = function (definitionItems, records) { return ({
|
|
17
|
+
headers: __spreadArray([
|
|
18
|
+
{
|
|
19
|
+
header: '',
|
|
20
|
+
accessor: 'property',
|
|
21
|
+
}
|
|
22
|
+
], records.map(function (record) {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
return ({
|
|
25
|
+
header: (_a = utils_1.partialDateTimeText(record.authored)) !== null && _a !== void 0 ? _a : '',
|
|
26
|
+
accessor: (_b = record === null || record === void 0 ? void 0 : record.id) !== null && _b !== void 0 ? _b : '',
|
|
27
|
+
});
|
|
28
|
+
})),
|
|
29
|
+
rows: definitionItems.map(function (def) {
|
|
30
|
+
var _a;
|
|
31
|
+
return ({
|
|
32
|
+
cells: __spreadArray([
|
|
33
|
+
{
|
|
34
|
+
key: 'property',
|
|
35
|
+
value: (_a = def === null || def === void 0 ? void 0 : def.text) !== null && _a !== void 0 ? _a : '',
|
|
36
|
+
}
|
|
37
|
+
], records.map(function (record) {
|
|
38
|
+
var _a, _b, _c, _d;
|
|
39
|
+
return ({
|
|
40
|
+
key: record.id,
|
|
41
|
+
value: utils_1.EnsureMaybe((_d = (_c = (_b = (_a = record.item) === null || _a === void 0 ? void 0 : _a.find(function (item) { return (item === null || item === void 0 ? void 0 : item.linkId) === (def === null || def === void 0 ? void 0 : def.linkId); })) === null || _b === void 0 ? void 0 : _b.answer) === null || _c === void 0 ? void 0 : _c.find(function (answer) { return !!answer; })) === null || _d === void 0 ? void 0 : _d.valueString, ''),
|
|
42
|
+
});
|
|
43
|
+
})),
|
|
44
|
+
});
|
|
45
|
+
}),
|
|
46
|
+
}); };
|
|
47
|
+
exports.mapQuestionnaireObjectsToVerticalTableData = mapQuestionnaireObjectsToVerticalTableData;
|
|
48
|
+
var recursivelyMapQuestionnaireItemsIntoHeaders = function (questionnaireItems) {
|
|
49
|
+
return questionnaireItems.map(function (questionnaireItem) {
|
|
50
|
+
var _a, _b, _c;
|
|
51
|
+
var recursiveItems = utils_1.EnsureMaybeArray((_a = questionnaireItem.item) !== null && _a !== void 0 ? _a : []);
|
|
52
|
+
return {
|
|
53
|
+
header: (_b = questionnaireItem === null || questionnaireItem === void 0 ? void 0 : questionnaireItem.text) !== null && _b !== void 0 ? _b : '',
|
|
54
|
+
accessor: recursiveItems.length > 0 ? '' : (_c = questionnaireItem === null || questionnaireItem === void 0 ? void 0 : questionnaireItem.linkId) !== null && _c !== void 0 ? _c : '',
|
|
55
|
+
subheaders: recursiveItems.length > 0 ? recursivelyMapQuestionnaireItemsIntoHeaders(recursiveItems) : undefined,
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
var mapQuestionnaireResponsesIntoCellRow = function (records) {
|
|
60
|
+
return records
|
|
61
|
+
.filter(function (record) { return !!record.item; })
|
|
62
|
+
.map(function (record) {
|
|
63
|
+
var _a;
|
|
64
|
+
var cellArray = [
|
|
65
|
+
{
|
|
66
|
+
key: 'date',
|
|
67
|
+
value: utils_1.partialDateTimeText(record.authored),
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
(_a = record.item) === null || _a === void 0 ? void 0 : _a.filter(function (item) { return !!(item === null || item === void 0 ? void 0 : item.linkId) && !!(item === null || item === void 0 ? void 0 : item.answer); }).forEach(function (item) {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
var linkId = utils_1.EnsureMaybe(item === null || item === void 0 ? void 0 : item.linkId);
|
|
73
|
+
var answer = utils_1.EnsureMaybe((_a = item === null || item === void 0 ? void 0 : item.answer) === null || _a === void 0 ? void 0 : _a.find(function (answer) { return !!answer; }));
|
|
74
|
+
if (answer.item) {
|
|
75
|
+
var items = recursivelyMapResponseItemsToCells(utils_1.EnsureMaybeArray((_b = answer.item) !== null && _b !== void 0 ? _b : []));
|
|
76
|
+
items.forEach(function (x) {
|
|
77
|
+
cellArray.push({
|
|
78
|
+
key: x.key,
|
|
79
|
+
value: x.value,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
cellArray.push({
|
|
84
|
+
key: linkId,
|
|
85
|
+
value: utils_1.EnsureMaybe(answer.valueString, ''),
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
return { cells: cellArray };
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
var recursivelyMapResponseItemsToCells = function (items) {
|
|
92
|
+
var cells = [];
|
|
93
|
+
items.forEach(function (item) {
|
|
94
|
+
var firstAnswer = item.answer ? item.answer[0] : undefined;
|
|
95
|
+
if (item.linkId && firstAnswer) {
|
|
96
|
+
// Always push item's linkId with first answer
|
|
97
|
+
cells.push({
|
|
98
|
+
key: item.linkId,
|
|
99
|
+
value: utils_1.EnsureMaybe(firstAnswer.valueString, ''),
|
|
100
|
+
});
|
|
101
|
+
// If first answer has subitems, recurse through them and do the same
|
|
102
|
+
if (firstAnswer.item) {
|
|
103
|
+
recursivelyMapResponseItemsToCells(utils_1.EnsureMaybeArray(firstAnswer.item)).forEach(function (cell) { return cells.push(cell); });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return cells;
|
|
108
|
+
};
|
|
109
|
+
var mapQuestionnaireObjectsToHorizontalTableData = function (definitionItems, records) { return ({
|
|
110
|
+
headers: __spreadArray([
|
|
111
|
+
{
|
|
112
|
+
header: 'Record Date',
|
|
113
|
+
accessor: 'date',
|
|
114
|
+
}
|
|
115
|
+
], recursivelyMapQuestionnaireItemsIntoHeaders(definitionItems)),
|
|
116
|
+
rows: mapQuestionnaireResponsesIntoCellRow(records),
|
|
117
|
+
}); };
|
|
118
|
+
exports.mapQuestionnaireObjectsToHorizontalTableData = mapQuestionnaireObjectsToHorizontalTableData;
|
|
119
|
+
var QuestionnaireTable = function (_a) {
|
|
120
|
+
var definitionItems = _a.definitionItems, records = _a.records, orientation = _a.orientation;
|
|
121
|
+
var tableData = react_1.useMemo(function () {
|
|
122
|
+
if (orientation === 'VERTICAL') {
|
|
123
|
+
return exports.mapQuestionnaireObjectsToVerticalTableData(definitionItems, records);
|
|
124
|
+
}
|
|
125
|
+
return exports.mapQuestionnaireObjectsToHorizontalTableData(definitionItems, records);
|
|
126
|
+
}, [orientation, definitionItems, records]);
|
|
127
|
+
return jsx_runtime_1.jsx(table_1.default, { tableData: tableData }, void 0);
|
|
128
|
+
};
|
|
129
|
+
exports.default = QuestionnaireTable;
|
|
130
|
+
//# sourceMappingURL=questionnaire-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire-table.js","sourceRoot":"","sources":["../../src/molecules/questionnaire-table.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ltht-react/table",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.62",
|
|
4
4
|
"description": "ltht-react Table component.",
|
|
5
5
|
"author": "LTHT",
|
|
6
6
|
"homepage": "",
|
|
@@ -27,17 +27,17 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@emotion/react": "^11.0.0",
|
|
29
29
|
"@emotion/styled": "^11.0.0",
|
|
30
|
-
"@ltht-react/button": "^1.3.
|
|
31
|
-
"@ltht-react/icon": "^1.3.
|
|
32
|
-
"@ltht-react/menu": "^1.0.
|
|
33
|
-
"@ltht-react/styles": "^1.3.
|
|
34
|
-
"@ltht-react/types": "^1.0.
|
|
35
|
-
"@ltht-react/utils": "^1.1.
|
|
30
|
+
"@ltht-react/button": "^1.3.187",
|
|
31
|
+
"@ltht-react/icon": "^1.3.187",
|
|
32
|
+
"@ltht-react/menu": "^1.0.29",
|
|
33
|
+
"@ltht-react/styles": "^1.3.179",
|
|
34
|
+
"@ltht-react/types": "^1.0.183",
|
|
35
|
+
"@ltht-react/utils": "^1.1.185",
|
|
36
36
|
"@tanstack/react-table": "^8.5.22",
|
|
37
37
|
"react": "^17.0.0",
|
|
38
38
|
"react-uuid": "^2.0.0"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "d5a0dcd16e6a62bd92e1ba553e3749056091f896",
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/react-table": "^7.7.12"
|
|
43
43
|
}
|