@ltht-react/table 1.0.22 → 1.0.24
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/atoms/table.d.ts +25 -0
- package/lib/atoms/table.js +86 -0
- package/lib/atoms/table.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +13 -0
- package/lib/index.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/lib/molecules/table.d.ts +38 -0
- package/lib/molecules/table.js +141 -0
- package/lib/molecules/table.js.map +1 -0
- package/lib/organisms/generic-table.d.ts +11 -0
- package/lib/organisms/generic-table.js +36 -0
- package/lib/organisms/generic-table.js.map +1 -0
- package/lib/organisms/questionnaire-table-methods.d.ts +4 -0
- package/lib/organisms/questionnaire-table-methods.js +174 -0
- package/lib/organisms/questionnaire-table-methods.js.map +1 -0
- package/lib/organisms/questionnaire-table.d.ts +9 -0
- package/lib/organisms/questionnaire-table.js +27 -0
- package/lib/organisms/questionnaire-table.js.map +1 -0
- package/package.json +9 -8
|
@@ -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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"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import Table, { ICellProps, Header, Cell, CellRow, TableData, CellData } from './molecules/table';
|
|
2
|
+
import GenericTable from './organisms/generic-table';
|
|
3
|
+
import QuestionnaireTable from './organisms/questionnaire-table';
|
|
4
|
+
export default Table;
|
|
5
|
+
export { ICellProps, Header, Cell, CellRow, TableData, CellData };
|
|
6
|
+
export { GenericTable };
|
|
7
|
+
export { QuestionnaireTable };
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.QuestionnaireTable = exports.GenericTable = void 0;
|
|
7
|
+
var table_1 = __importDefault(require("./molecules/table"));
|
|
8
|
+
var generic_table_1 = __importDefault(require("./organisms/generic-table"));
|
|
9
|
+
exports.GenericTable = generic_table_1.default;
|
|
10
|
+
var questionnaire_table_1 = __importDefault(require("./organisms/questionnaire-table"));
|
|
11
|
+
exports.QuestionnaireTable = questionnaire_table_1.default;
|
|
12
|
+
exports.default = table_1.default;
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;AAAA,4DAAiG;AACjG,4EAAoD;AAK3C,uBALF,uBAAY,CAKE;AAJrB,wFAAgE;AAKvD,6BALF,6BAAkB,CAKE;AAH3B,kBAAe,eAAK,CAAA"}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
export default function Table({ tableData }: IProps): JSX.Element;
|
|
3
|
+
interface IProps {
|
|
4
|
+
tableData: TableData;
|
|
5
|
+
}
|
|
6
|
+
export interface ICellProps {
|
|
7
|
+
value: string;
|
|
8
|
+
row: DataRow;
|
|
9
|
+
columnId: string;
|
|
10
|
+
}
|
|
11
|
+
export interface Header {
|
|
12
|
+
id?: string;
|
|
13
|
+
header: string | JSX.Element;
|
|
14
|
+
accessor: string;
|
|
15
|
+
subheaders?: Header[];
|
|
16
|
+
cell?: FC<ICellProps>;
|
|
17
|
+
}
|
|
18
|
+
export interface Cell {
|
|
19
|
+
key: string;
|
|
20
|
+
value: string | JSX.Element;
|
|
21
|
+
render?: FC<ICellProps>;
|
|
22
|
+
}
|
|
23
|
+
export interface CellRow {
|
|
24
|
+
id?: string;
|
|
25
|
+
cells: Cell[];
|
|
26
|
+
render?: FC<ICellProps>;
|
|
27
|
+
subRows?: CellRow[];
|
|
28
|
+
}
|
|
29
|
+
export interface TableData {
|
|
30
|
+
headers: Header[];
|
|
31
|
+
rows: CellRow[];
|
|
32
|
+
}
|
|
33
|
+
export declare type CellData = string | FC<ICellProps> | Record<string, FC<ICellProps>> | DataRow[] | JSX.Element;
|
|
34
|
+
export declare type DataRow = {
|
|
35
|
+
[key: string]: CellData;
|
|
36
|
+
subRows: DataRow[];
|
|
37
|
+
};
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,141 @@
|
|
|
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 __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
18
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
19
|
+
to[j] = from[i];
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
27
|
+
var react_1 = require("react");
|
|
28
|
+
var react_table_1 = require("@tanstack/react-table");
|
|
29
|
+
var react_uuid_1 = __importDefault(require("react-uuid"));
|
|
30
|
+
var styled_1 = __importDefault(require("@emotion/styled"));
|
|
31
|
+
var styles_1 = require("@ltht-react/styles");
|
|
32
|
+
var Container = styled_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", ";\n background-color: white;\n border-radius: 6px;\n display: inline-block;\n max-width: 100%;\n max-height: 100%;\n overflow: scroll;\n &::-webkit-scrollbar {\n width: 7px;\n height: 7px;\n border: 0;\n }\n &::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: 10px;\n }\n"], ["\n ", ";\n background-color: white;\n border-radius: 6px;\n display: inline-block;\n max-width: 100%;\n max-height: 100%;\n overflow: scroll;\n &::-webkit-scrollbar {\n width: 7px;\n height: 7px;\n border: 0;\n }\n &::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: 10px;\n }\n"])), styles_1.CSS_RESET, styles_1.SCROLLBAR);
|
|
33
|
+
var StyledTable = styled_1.default.table(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: white;\n border-collapse: collapse;\n border-radius: 6px;\n border: thin solid rgba(200, 200, 200, 0.5);\n padding: 1rem;\n"], ["\n background-color: white;\n border-collapse: collapse;\n border-radius: 6px;\n border: thin solid rgba(200, 200, 200, 0.5);\n padding: 1rem;\n"])));
|
|
34
|
+
var StyledTableHeader = styled_1.default.th(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n border: thin solid rgba(200, 200, 200, 0.5);\n font-weight: bold;\n padding: 1rem;\n"], ["\n background-color: ", ";\n border: thin solid rgba(200, 200, 200, 0.5);\n font-weight: bold;\n padding: 1rem;\n"])), styles_1.TRANSLUCENT_MID_GREY);
|
|
35
|
+
var StyledTableData = styled_1.default.td(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n border: thin solid rgba(200, 200, 200, 0.5);\n white-space: nowrap;\n &:first-of-type {\n background-color: ", " !important;\n }\n"], ["\n border: thin solid rgba(200, 200, 200, 0.5);\n white-space: nowrap;\n &:first-of-type {\n background-color: ", " !important;\n }\n"])), styles_1.TRANSLUCENT_MID_GREY);
|
|
36
|
+
var columnHelper = react_table_1.createColumnHelper();
|
|
37
|
+
var generateColumnsFromHeadersRecursively = function (headers) {
|
|
38
|
+
var _a;
|
|
39
|
+
return (_a = headers === null || headers === void 0 ? void 0 : headers.map(function (header) {
|
|
40
|
+
var _a;
|
|
41
|
+
return header.subheaders
|
|
42
|
+
? columnHelper.group({
|
|
43
|
+
id: (_a = header.id) !== null && _a !== void 0 ? _a : react_uuid_1.default(),
|
|
44
|
+
header: function () { return header.header; },
|
|
45
|
+
columns: generateColumnsFromHeadersRecursively(header.subheaders),
|
|
46
|
+
})
|
|
47
|
+
: columnHelper.accessor(header.accessor, {
|
|
48
|
+
id: header.accessor,
|
|
49
|
+
cell: function (info) {
|
|
50
|
+
var _a;
|
|
51
|
+
var stringValue = (_a = info === null || info === void 0 ? void 0 : info.getValue()) !== null && _a !== void 0 ? _a : '';
|
|
52
|
+
return header.cell
|
|
53
|
+
? header.cell({ value: stringValue, columnId: info.column.id, row: info.row.original })
|
|
54
|
+
: stringValue;
|
|
55
|
+
},
|
|
56
|
+
header: function () { return header.header; },
|
|
57
|
+
});
|
|
58
|
+
})) !== null && _a !== void 0 ? _a : [];
|
|
59
|
+
};
|
|
60
|
+
var generateRowsFromCellRows = function (cellRows) {
|
|
61
|
+
return cellRows.map(function (cellRow) {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
var mappedCell = { subRows: [] };
|
|
64
|
+
var mappedCellRender = {};
|
|
65
|
+
cellRow.cells.forEach(function (cell) {
|
|
66
|
+
mappedCell[cell.key] = cell.value;
|
|
67
|
+
if (cell.render) {
|
|
68
|
+
mappedCellRender[cell.key] = cell.render;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return __assign(__assign(__assign({}, mappedCell), {
|
|
72
|
+
rowId: (_a = cellRow.id) !== null && _a !== void 0 ? _a : '',
|
|
73
|
+
render: cellRow.render ? cellRow.render : function (props) { return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, { children: props.value }, void 0); },
|
|
74
|
+
renderCells: mappedCellRender,
|
|
75
|
+
}), { subRows: generateRowsFromCellRows((_b = cellRow.subRows) !== null && _b !== void 0 ? _b : []) });
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
var getExpanderColumn = function () {
|
|
79
|
+
return columnHelper.accessor('expander', {
|
|
80
|
+
header: function (_a) {
|
|
81
|
+
var table = _a.table;
|
|
82
|
+
return (jsx_runtime_1.jsx("span", __assign({ title: "Toggle All Rows Expanded", onClick: table.getToggleAllRowsExpandedHandler(), style: { cursor: 'pointer' } }, { children: table.getIsAllRowsExpanded() ? '▲' : '►' }), void 0));
|
|
83
|
+
},
|
|
84
|
+
cell: function (_a) {
|
|
85
|
+
var row = _a.row;
|
|
86
|
+
return row.getCanExpand() ? (jsx_runtime_1.jsx("span", __assign({}, {
|
|
87
|
+
onClick: row.getToggleExpandedHandler(),
|
|
88
|
+
style: { cursor: 'pointer', paddingLeft: row.depth * 2 + "rem" },
|
|
89
|
+
}, { children: row.getIsExpanded() ? '▲' : '►' }), void 0)) : null;
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
function Table(_a) {
|
|
94
|
+
var tableData = _a.tableData;
|
|
95
|
+
var _b = react_1.useState([]), columns = _b[0], setColumns = _b[1];
|
|
96
|
+
var _c = react_1.useState([]), data = _c[0], setData = _c[1];
|
|
97
|
+
var _d = react_1.useState({}), expanded = _d[0], setExpanded = _d[1];
|
|
98
|
+
var _e = react_1.useState([]), sorting = _e[0], setSorting = _e[1];
|
|
99
|
+
react_1.useEffect(function () {
|
|
100
|
+
var columnArray = generateColumnsFromHeadersRecursively(tableData.headers);
|
|
101
|
+
var dataArray = generateRowsFromCellRows(tableData.rows);
|
|
102
|
+
setColumns(dataArray.some(function (x) { return x.subRows.length > 0; }) ? __spreadArray([getExpanderColumn()], columnArray) : columnArray);
|
|
103
|
+
setData(dataArray);
|
|
104
|
+
}, [tableData]);
|
|
105
|
+
var table = react_table_1.useReactTable({
|
|
106
|
+
data: data,
|
|
107
|
+
columns: columns,
|
|
108
|
+
state: {
|
|
109
|
+
expanded: expanded,
|
|
110
|
+
sorting: sorting,
|
|
111
|
+
},
|
|
112
|
+
onExpandedChange: setExpanded,
|
|
113
|
+
onSortingChange: setSorting,
|
|
114
|
+
getSubRows: function (row) { return row.subRows; },
|
|
115
|
+
getCoreRowModel: react_table_1.getCoreRowModel(),
|
|
116
|
+
getExpandedRowModel: react_table_1.getExpandedRowModel(),
|
|
117
|
+
getSortedRowModel: react_table_1.getSortedRowModel(),
|
|
118
|
+
});
|
|
119
|
+
var getSortIcon = function (sortDirection) {
|
|
120
|
+
var _a;
|
|
121
|
+
return ((_a = {
|
|
122
|
+
asc: ' 🔼',
|
|
123
|
+
desc: ' 🔽',
|
|
124
|
+
}[sortDirection]) !== null && _a !== void 0 ? _a : null);
|
|
125
|
+
};
|
|
126
|
+
return (jsx_runtime_1.jsx(Container, { children: jsx_runtime_1.jsxs(StyledTable, { children: [jsx_runtime_1.jsx("thead", { children: table.getHeaderGroups().map(function (headerGroup) { return (jsx_runtime_1.jsx("tr", { children: headerGroup.headers.map(function (header) {
|
|
127
|
+
return header.column.id === 'expander' ? (jsx_runtime_1.jsx(StyledTableHeader, __assign({ colSpan: header.colSpan }, { children: header.isPlaceholder ? null : react_table_1.flexRender(header.column.columnDef.header, header.getContext()) }), header.id)) : (jsx_runtime_1.jsxs(StyledTableHeader, __assign({ colSpan: header.colSpan }, {
|
|
128
|
+
style: {
|
|
129
|
+
cursor: header.column.getCanSort() ? 'pointer' : '',
|
|
130
|
+
},
|
|
131
|
+
onClick: header.column.getToggleSortingHandler(),
|
|
132
|
+
}, { children: [header.isPlaceholder ? null : react_table_1.flexRender(header.column.columnDef.header, header.getContext()), getSortIcon(header.column.getIsSorted())] }), header.id));
|
|
133
|
+
}) }, headerGroup.id)); }) }, void 0),
|
|
134
|
+
jsx_runtime_1.jsx("tbody", { children: table.getRowModel().rows.map(function (row) { return (jsx_runtime_1.jsx("tr", { children: row.getVisibleCells().map(function (cell, cellIdx) { return (jsx_runtime_1.jsx(StyledTableData, __assign({ style: {
|
|
135
|
+
background: cellIdx % 2 === 1 ? 'white' : styles_1.TRANSLUCENT_BRIGHT_BLUE_TABLE,
|
|
136
|
+
textAlign: 'center',
|
|
137
|
+
} }, { children: react_table_1.flexRender(cell.column.columnDef.cell, cell.getContext()) }), cell.id)); }) }, row.id)); }) }, void 0)] }, void 0) }, void 0));
|
|
138
|
+
}
|
|
139
|
+
exports.default = Table;
|
|
140
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
141
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/molecules/table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Axis } from '@ltht-react/types';
|
|
3
|
+
import { TableData } from '../molecules/table';
|
|
4
|
+
declare const GenericTable: <TColumn, TRow>({ columnData, rowData, headerAxis, mapToTableData, }: IProps<TColumn, TRow>) => JSX.Element;
|
|
5
|
+
interface IProps<TColumn, TRow> {
|
|
6
|
+
headerAxis?: Axis;
|
|
7
|
+
columnData: TColumn;
|
|
8
|
+
rowData: TRow;
|
|
9
|
+
mapToTableData: (colData: TColumn, rowData: TRow) => TableData;
|
|
10
|
+
}
|
|
11
|
+
export default GenericTable;
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var table_1 = __importDefault(require("../molecules/table"));
|
|
19
|
+
var prepareTableDataForCellCustomisation = function (tableData) {
|
|
20
|
+
var data = tableData;
|
|
21
|
+
data.headers = tableData.headers.map(function (header) { return (__assign(__assign({}, header), { cell: function (props) {
|
|
22
|
+
if (props.columnId !== '') {
|
|
23
|
+
var columnCellRender = props.row.renderCells[props.columnId];
|
|
24
|
+
return columnCellRender ? columnCellRender(props) : props.row.render(props);
|
|
25
|
+
}
|
|
26
|
+
return props.row.render(props);
|
|
27
|
+
} })); });
|
|
28
|
+
return data;
|
|
29
|
+
};
|
|
30
|
+
var GenericTable = function (_a) {
|
|
31
|
+
var columnData = _a.columnData, rowData = _a.rowData, _b = _a.headerAxis, headerAxis = _b === void 0 ? 'x' : _b, mapToTableData = _a.mapToTableData;
|
|
32
|
+
var tableData = mapToTableData(columnData, rowData);
|
|
33
|
+
return headerAxis === 'y' ? (jsx_runtime_1.jsx(table_1.default, { tableData: prepareTableDataForCellCustomisation(tableData) }, void 0)) : (jsx_runtime_1.jsx(table_1.default, { tableData: tableData }, void 0));
|
|
34
|
+
};
|
|
35
|
+
exports.default = GenericTable;
|
|
36
|
+
//# sourceMappingURL=generic-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-table.js","sourceRoot":"","sources":["../../src/organisms/generic-table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,6DAAiE;AAEjE,IAAM,oCAAoC,GAAG,UAAC,SAAoB;IAChE,IAAM,IAAI,GAAG,SAAS,CAAA;IACtB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,uBAC5C,MAAM,KACT,IAAI,EAAE,UAAC,KAAiB;YACtB,IAAI,KAAK,CAAC,QAAQ,KAAK,EAAE,EAAE;gBACzB,IAAM,gBAAgB,GAAI,KAAK,CAAC,GAAG,CAAC,WAA8C,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAClG,OAAO,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,GAAG,CAAC,MAAyB,CAAC,KAAK,CAAC,CAAA;aAChG;YACD,OAAQ,KAAK,CAAC,GAAG,CAAC,MAAyB,CAAC,KAAK,CAAC,CAAA;QACpD,CAAC,IACD,EAT+C,CAS/C,CAAC,CAAA;IAEH,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,IAAM,YAAY,GAAG,UAAgB,EAKb;QAJtB,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,kBAAgB,EAAhB,UAAU,mBAAG,GAAG,KAAA,EAChB,cAAc,oBAAA;IAEd,IAAM,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAErD,OAAO,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,CAC1B,kBAAC,eAAK,IAAC,SAAS,EAAE,oCAAoC,CAAC,SAAS,CAAC,WAAI,CACtE,CAAC,CAAC,CAAC,CACF,kBAAC,eAAK,IAAC,SAAS,EAAE,SAAS,WAAI,CAChC,CAAA;AACH,CAAC,CAAA;AASD,kBAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Axis, Questionnaire, QuestionnaireResponse } from '@ltht-react/types';
|
|
2
|
+
import { TableData } from '../molecules/table';
|
|
3
|
+
declare const mapQuestionnaireDefinitionAndResponsesToTableData: (definition: Questionnaire, questionnaireResponses: QuestionnaireResponse[], axis: Axis) => TableData | undefined;
|
|
4
|
+
export default mapQuestionnaireDefinitionAndResponsesToTableData;
|
|
@@ -0,0 +1,174 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
var icon_1 = require("@ltht-react/icon");
|
|
10
|
+
var utils_1 = require("@ltht-react/utils");
|
|
11
|
+
var mapQuestionnaireDefinitionAndResponsesToTableData = function (definition, questionnaireResponses, axis) {
|
|
12
|
+
var definitionItems = utils_1.EnsureMaybeArray(utils_1.EnsureMaybe(definition.item, []));
|
|
13
|
+
if (definitionItems.length === 0) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
if (axis === 'y') {
|
|
17
|
+
return mapQuestionnaireObjectsToVerticalTableData(definitionItems, questionnaireResponses);
|
|
18
|
+
}
|
|
19
|
+
return mapQuestionnaireObjectsToHorizontalTableData(definitionItems, questionnaireResponses);
|
|
20
|
+
};
|
|
21
|
+
var mapQuestionnaireObjectsToHorizontalTableData = function (definitionItems, records) { return ({
|
|
22
|
+
headers: __spreadArray([
|
|
23
|
+
{
|
|
24
|
+
header: 'Record Date',
|
|
25
|
+
accessor: 'date',
|
|
26
|
+
}
|
|
27
|
+
], recursivelyMapQuestionnaireItemsIntoHeaders(definitionItems)),
|
|
28
|
+
rows: mapQuestionnaireResponsesIntoCellRow(records),
|
|
29
|
+
}); };
|
|
30
|
+
var mapQuestionnaireObjectsToVerticalTableData = function (definitionItems, records) { return ({
|
|
31
|
+
headers: __spreadArray([
|
|
32
|
+
{
|
|
33
|
+
header: '',
|
|
34
|
+
accessor: 'property',
|
|
35
|
+
}
|
|
36
|
+
], records.map(function (record) {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
return ({
|
|
39
|
+
header: (_a = utils_1.partialDateTimeText(record.authored)) !== null && _a !== void 0 ? _a : '',
|
|
40
|
+
accessor: (_b = record === null || record === void 0 ? void 0 : record.id) !== null && _b !== void 0 ? _b : '',
|
|
41
|
+
});
|
|
42
|
+
})),
|
|
43
|
+
rows: buildVerticalCellRowsRecursive(definitionItems, records),
|
|
44
|
+
}); };
|
|
45
|
+
var recursivelyMapQuestionnaireItemsIntoHeaders = function (questionnaireItems) {
|
|
46
|
+
return questionnaireItems.map(function (questionnaireItem) {
|
|
47
|
+
var _a, _b, _c;
|
|
48
|
+
var recursiveItems = utils_1.EnsureMaybeArray((_a = questionnaireItem.item) !== null && _a !== void 0 ? _a : []);
|
|
49
|
+
return {
|
|
50
|
+
header: (_b = questionnaireItem === null || questionnaireItem === void 0 ? void 0 : questionnaireItem.text) !== null && _b !== void 0 ? _b : '',
|
|
51
|
+
accessor: recursiveItems.length > 0 ? '' : (_c = questionnaireItem === null || questionnaireItem === void 0 ? void 0 : questionnaireItem.linkId) !== null && _c !== void 0 ? _c : '',
|
|
52
|
+
subheaders: recursiveItems.length > 0 ? recursivelyMapQuestionnaireItemsIntoHeaders(recursiveItems) : undefined,
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
var buildVerticalCellRowsRecursive = function (definitionItems, records) {
|
|
57
|
+
var _a;
|
|
58
|
+
return (_a = definitionItems.map(function (definitionItem) {
|
|
59
|
+
var _a;
|
|
60
|
+
var buildRow = function (definitionLinkId, def) {
|
|
61
|
+
var _a, _b;
|
|
62
|
+
var containsSubRows = (def === null || def === void 0 ? void 0 : def.item) && (def === null || def === void 0 ? void 0 : def.item.length) > 0;
|
|
63
|
+
var subRows = containsSubRows
|
|
64
|
+
? buildVerticalCellRowsRecursive(utils_1.EnsureMaybe((_a = def === null || def === void 0 ? void 0 : def.item) === null || _a === void 0 ? void 0 : _a.map(function (x) { return utils_1.EnsureMaybe(x); })), records)
|
|
65
|
+
: [];
|
|
66
|
+
var checkIfSubRowsHaveAnyData = function (recordId, rows) {
|
|
67
|
+
return rows.some(function (x) { var _a; return ((_a = x.cells.find(function (y) { return y.key === recordId; })) === null || _a === void 0 ? void 0 : _a.value) !== ''; });
|
|
68
|
+
};
|
|
69
|
+
var getCheckboxIcon = function (subRowsHaveData) {
|
|
70
|
+
return subRowsHaveData ? jsx_runtime_1.jsx(icon_1.CheckboxIcon, { size: "medium" }, void 0) : jsx_runtime_1.jsx(icon_1.SquareIcon, { size: "small" }, void 0);
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
id: definitionLinkId,
|
|
74
|
+
cells: __spreadArray([
|
|
75
|
+
{
|
|
76
|
+
key: 'property',
|
|
77
|
+
value: (_b = def === null || def === void 0 ? void 0 : def.text) !== null && _b !== void 0 ? _b : '',
|
|
78
|
+
}
|
|
79
|
+
], records.map(function (record) {
|
|
80
|
+
var _a;
|
|
81
|
+
return ({
|
|
82
|
+
key: record.id,
|
|
83
|
+
value: containsSubRows
|
|
84
|
+
? getCheckboxIcon(checkIfSubRowsHaveAnyData(record.id, subRows))
|
|
85
|
+
: findQuestionnaireResponseAnswerValue(definitionLinkId, (_a = record === null || record === void 0 ? void 0 : record.item) !== null && _a !== void 0 ? _a : []),
|
|
86
|
+
});
|
|
87
|
+
})),
|
|
88
|
+
subRows: subRows,
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
var id = (_a = definitionItem === null || definitionItem === void 0 ? void 0 : definitionItem.linkId) !== null && _a !== void 0 ? _a : '';
|
|
92
|
+
return buildRow(id, definitionItem);
|
|
93
|
+
})) !== null && _a !== void 0 ? _a : [];
|
|
94
|
+
};
|
|
95
|
+
var findQuestionnaireResponseAnswerValue = function (id, items) {
|
|
96
|
+
var _a, _b;
|
|
97
|
+
var answerItem = findAnswerByLinkIdRecursive(id, items);
|
|
98
|
+
return utils_1.EnsureMaybe((_b = (_a = answerItem === null || answerItem === void 0 ? void 0 : answerItem.answer) === null || _a === void 0 ? void 0 : _a.find(function (x) { return !!x; })) === null || _b === void 0 ? void 0 : _b.valueString, '');
|
|
99
|
+
};
|
|
100
|
+
var findAnswerByLinkIdRecursive = function (id, items) {
|
|
101
|
+
var itemFound;
|
|
102
|
+
if (id === '') {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
for (var i = 0; i < items.length; i++) {
|
|
106
|
+
var item = items[i];
|
|
107
|
+
if (item.linkId === id) {
|
|
108
|
+
itemFound = item;
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
if (item.answer) {
|
|
112
|
+
var defaultAnswer = item.answer.find(function (x) { return !!x; });
|
|
113
|
+
if ((defaultAnswer === null || defaultAnswer === void 0 ? void 0 : defaultAnswer.item) && (defaultAnswer === null || defaultAnswer === void 0 ? void 0 : defaultAnswer.item.length) > 0) {
|
|
114
|
+
itemFound = findAnswerByLinkIdRecursive(id, defaultAnswer.item);
|
|
115
|
+
if (itemFound) {
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return itemFound;
|
|
122
|
+
};
|
|
123
|
+
var mapQuestionnaireResponsesIntoCellRow = function (records) {
|
|
124
|
+
return records
|
|
125
|
+
.filter(function (record) { return !!record.item; })
|
|
126
|
+
.map(function (record) {
|
|
127
|
+
var _a;
|
|
128
|
+
var cellArray = [
|
|
129
|
+
{
|
|
130
|
+
key: 'date',
|
|
131
|
+
value: utils_1.partialDateTimeText(record.authored),
|
|
132
|
+
},
|
|
133
|
+
];
|
|
134
|
+
(_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) {
|
|
135
|
+
var _a, _b;
|
|
136
|
+
var linkId = utils_1.EnsureMaybe(item === null || item === void 0 ? void 0 : item.linkId);
|
|
137
|
+
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; }));
|
|
138
|
+
if (answer.item) {
|
|
139
|
+
var items = recursivelyMapResponseItemsToCells(utils_1.EnsureMaybeArray((_b = answer.item) !== null && _b !== void 0 ? _b : []));
|
|
140
|
+
items.forEach(function (x) {
|
|
141
|
+
cellArray.push({
|
|
142
|
+
key: x.key,
|
|
143
|
+
value: x.value,
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
cellArray.push({
|
|
148
|
+
key: linkId,
|
|
149
|
+
value: utils_1.EnsureMaybe(answer.valueString, ''),
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
return { cells: cellArray };
|
|
153
|
+
});
|
|
154
|
+
};
|
|
155
|
+
var recursivelyMapResponseItemsToCells = function (items) {
|
|
156
|
+
var cells = [];
|
|
157
|
+
items.forEach(function (item) {
|
|
158
|
+
var firstAnswer = item.answer ? item.answer[0] : undefined;
|
|
159
|
+
if (item.linkId && firstAnswer) {
|
|
160
|
+
// Always push item's linkId with first answer
|
|
161
|
+
cells.push({
|
|
162
|
+
key: item.linkId,
|
|
163
|
+
value: utils_1.EnsureMaybe(firstAnswer.valueString, ''),
|
|
164
|
+
});
|
|
165
|
+
// If first answer has subitems, recurse through them and do the same
|
|
166
|
+
if (firstAnswer.item) {
|
|
167
|
+
recursivelyMapResponseItemsToCells(utils_1.EnsureMaybeArray(firstAnswer.item)).forEach(function (cell) { return cells.push(cell); });
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
return cells;
|
|
172
|
+
};
|
|
173
|
+
exports.default = mapQuestionnaireDefinitionAndResponsesToTableData;
|
|
174
|
+
//# sourceMappingURL=questionnaire-table-methods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire-table-methods.js","sourceRoot":"","sources":["../../src/organisms/questionnaire-table-methods.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { QuestionnaireResponse, Axis, Questionnaire } from '@ltht-react/types';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
declare const QuestionnaireTable: FC<IProps>;
|
|
4
|
+
interface IProps {
|
|
5
|
+
definition: Questionnaire;
|
|
6
|
+
records: QuestionnaireResponse[];
|
|
7
|
+
headerAxis?: Axis;
|
|
8
|
+
}
|
|
9
|
+
export default QuestionnaireTable;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
var react_1 = require("react");
|
|
8
|
+
var icon_1 = require("@ltht-react/icon");
|
|
9
|
+
var table_1 = __importDefault(require("../molecules/table"));
|
|
10
|
+
var questionnaire_table_methods_1 = __importDefault(require("./questionnaire-table-methods"));
|
|
11
|
+
var QuestionnaireTable = function (_a) {
|
|
12
|
+
var definition = _a.definition, records = _a.records, _b = _a.headerAxis, headerAxis = _b === void 0 ? 'y' : _b;
|
|
13
|
+
var tableData = react_1.useMemo(function () { return questionnaire_table_methods_1.default(definition, records, headerAxis); }, [
|
|
14
|
+
headerAxis,
|
|
15
|
+
definition,
|
|
16
|
+
records,
|
|
17
|
+
]);
|
|
18
|
+
// TODO: Replace this fragment with a properly styled error component.
|
|
19
|
+
// Maybe this could be a re-usable atom?
|
|
20
|
+
if (!tableData) {
|
|
21
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [jsx_runtime_1.jsx(icon_1.Icon, { type: "exclamation", size: "large", status: "red" }, void 0),
|
|
22
|
+
jsx_runtime_1.jsx("div", { children: "An error occurred whilst loading this table." }, void 0)] }, void 0));
|
|
23
|
+
}
|
|
24
|
+
return jsx_runtime_1.jsx(table_1.default, { tableData: tableData }, void 0);
|
|
25
|
+
};
|
|
26
|
+
exports.default = QuestionnaireTable;
|
|
27
|
+
//# sourceMappingURL=questionnaire-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire-table.js","sourceRoot":"","sources":["../../src/organisms/questionnaire-table.tsx"],"names":[],"mappings":";;;;;;AACA,+BAAmC;AACnC,yCAAuC;AACvC,6DAAsC;AACtC,8FAA6F;AAE7F,IAAM,kBAAkB,GAAe,UAAC,EAAyC;QAAvC,UAAU,gBAAA,EAAE,OAAO,aAAA,EAAE,kBAAgB,EAAhB,UAAU,mBAAG,GAAG,KAAA;IAC7E,IAAM,SAAS,GAAG,eAAO,CAAC,cAAM,OAAA,qCAAiD,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,EAAlF,CAAkF,EAAE;QAClH,UAAU;QACV,UAAU;QACV,OAAO;KACR,CAAC,CAAA;IAEF,sEAAsE;IACtE,wCAAwC;IACxC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,CACL,wDACE,kBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,WAAG;gBACrD,8FAAuD,YACtD,CACJ,CAAA;KACF;IAED,OAAO,kBAAC,eAAK,IAAC,SAAS,EAAE,SAAS,WAAI,CAAA;AACxC,CAAC,CAAA;AAQD,kBAAe,kBAAkB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ltht-react/table",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.24",
|
|
4
4
|
"description": "ltht-react Table component.",
|
|
5
5
|
"author": "LTHT",
|
|
6
6
|
"homepage": "",
|
|
@@ -27,15 +27,16 @@
|
|
|
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/styles": "^1.3.
|
|
33
|
-
"@ltht-react/types": "^1.0.
|
|
34
|
-
"@ltht-react/utils": "^1.1.
|
|
30
|
+
"@ltht-react/button": "^1.3.149",
|
|
31
|
+
"@ltht-react/icon": "^1.3.149",
|
|
32
|
+
"@ltht-react/styles": "^1.3.141",
|
|
33
|
+
"@ltht-react/types": "^1.0.145",
|
|
34
|
+
"@ltht-react/utils": "^1.1.147",
|
|
35
|
+
"@tanstack/react-table": "^8.5.22",
|
|
35
36
|
"react": "^17.0.0",
|
|
36
|
-
"react-
|
|
37
|
+
"react-uuid": "^2.0.0"
|
|
37
38
|
},
|
|
38
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "246a8d47057a859c4a0bea7d618afee2229b7d70",
|
|
39
40
|
"devDependencies": {
|
|
40
41
|
"@types/react-table": "^7.7.12"
|
|
41
42
|
}
|