@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.
@@ -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":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAAsE;AACtE,8EAAuD;AACvD,kEAA8C;AAC9C,0EAAmD;AACnD,0EAAmD;AACnD,0EAAmD;AACnD,wEAAiD;AACjD,2DAAoC;AACpC,6CAA0F;AAC1F,+BAA2C;AAE3C,IAAM,SAAS,GAAG,gBAAM,CAAC,GAAG,mGAAA,gCAE3B,IAAA,CAAA;AAED,IAAM,iBAAiB,GAAG,gBAAM,CAAC,EAAE,oHAAA,iDAElC,IAAA,CAAA;AAED,IAAM,qCAAqC,GAAG,UAAC,OAAkB;IAC/D,OAAA,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;QAClD,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QACjG,QAAQ,EAAE,OAAO;QACjB,+EAA+E;QAC/E,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU;KACnC,CAAC,EAP8B,CAO9B,CAAC;AAPH,CAOG,CAAA;AAEL,IAAM,wBAAwB,GAAG,UAAC,QAAmB;IACnD,OAAA,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;QACnB,IAAM,UAAU,GAA2B,EAAE,CAAA;QAE7C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;YACzB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,OAAO,UAAU,CAAA;IACnB,CAAC,CAAC;AARF,CAQE,CAAA;AAEJ,SAAwB,KAAK,CAAgB,EAKrB;QAJtB,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,cAAc,oBAAA;IAER,IAAA,KAAwB,gBAAQ,CAAmC,EAAE,CAAC,EAArE,OAAO,QAAA,EAAE,UAAU,QAAkD,CAAA;IACtE,IAAA,KAAkB,gBAAQ,CAA2B,EAAE,CAAC,EAAvD,IAAI,QAAA,EAAE,OAAO,QAA0C,CAAA;IAE9D,iBAAS,CAAC;QACR,IAAM,eAAe,GACnB,UAAU,IAAI,OAAO,IAAI,cAAc;YACrC,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC;YACrC,CAAC,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QAE5C,UAAU,CAAC,qCAAqC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1E,OAAO,CAAC,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;IACzD,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;IAE9C,IAAA,KAAuE,sBAAQ,CACnF;QACE,OAAO,SAAA;QACP,IAAI,MAAA;KACL,EACD,uBAAS,CACV,EANO,aAAa,mBAAA,EAAE,iBAAiB,uBAAA,EAAE,YAAY,kBAAA,EAAE,IAAI,UAAA,EAAE,UAAU,gBAMvE,CAAA;IAED,IAAM,QAAQ,GAAG,UAAC,MAA2C;QAC3D,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,OAAO,sCAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,WAAQ,CAAA;SAC1D;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IAED,OAAO,CACL,mBAAC,SAAS,eACR,kBAAC,qBAAW,aAAG;YACf,mBAAC,eAAQ,eAAK,aAAa,EAAE,eAC3B,kBAAC,mBAAS,cACP,YAAY,CAAC,GAAG,CAAC,UAAC,WAAW,IAAK,OAAA,CACjC,qCAAQ,WAAW,CAAC,mBAAmB,EAAE,cACtC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CACnC,mBAAC,iBAAiB,eAAK,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,eACxE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EACvB,QAAQ,CAAC,MAAM,CAAC,aACC,CACrB,EALoC,CAKpC,CAAC,YACC,CACN,EATkC,CASlC,CAAC,WACQ;oBACZ,kBAAC,mBAAS,eAAK,iBAAiB,EAAE,cAC/B,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;4BACZ,UAAU,CAAC,GAAG,CAAC,CAAA;4BACf,OAAO,CACL,kBAAC,kBAAQ,eAAK,GAAG,CAAC,WAAW,EAAE,cAC5B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,OAAO,IAAK,OAAA,CAChC,kBAAC,mBAAS,aACR,KAAK,EAAE;wCACL,UAAU,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAsB,CAAC,CAAC,CAAC,sCAA6B;wCACtF,SAAS,EAAE,QAAQ;qCACpB,IACG,IAAI,CAAC,YAAY,EAAE,cAEtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YACV,CACb,EAViC,CAUjC,CAAC,YACO,CACZ,CAAA;wBACH,CAAC,CAAC,YACQ,aACH,YACD,CACb,CAAA;AACH,CAAC;AAzED,wBAyEC"}
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
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+C;AAC/C,qDAW8B;AAC9B,0DAA6B;AAC7B,2DAAoC;AACpC,6CAA8G;AAE9G,IAAM,SAAS,GAAG,gBAAM,CAAC,GAAG,mYAAA,MACxB,EAAS,kRAaK,EAAS,oCAG1B,KAhBG,kBAAS,EAaK,kBAAS,CAG1B,CAAA;AAED,IAAM,WAAW,GAAG,gBAAM,CAAC,KAAK,0NAAA,uJAM/B,IAAA,CAAA;AAED,IAAM,iBAAiB,GAAG,gBAAM,CAAC,EAAE,0LAAA,wBACb,EAAoB,6FAIzC,KAJqB,6BAAoB,CAIzC,CAAA;AAED,IAAM,eAAe,GAAG,gBAAM,CAAC,EAAE,iNAAA,uHAIT,EAAoB,qBAE3C,KAFuB,6BAAoB,CAE3C,CAAA;AAED,IAAM,YAAY,GAAG,gCAAkB,EAAW,CAAA;AAElD,IAAM,qCAAqC,GAAG,UAAC,OAAkB;;IAC/D,OAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,UAAC,MAAM;;QAClB,OAAA,MAAM,CAAC,UAAU;YACf,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;gBACjB,EAAE,EAAE,MAAA,MAAM,CAAC,EAAE,mCAAI,oBAAI,EAAE;gBACvB,MAAM,EAAE,cAAM,OAAA,MAAM,CAAC,MAAM,EAAb,CAAa;gBAC3B,OAAO,EAAE,qCAAqC,CAAC,MAAM,CAAC,UAAU,CAAC;aAClE,CAAC;YACJ,CAAC,CAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACtC,EAAE,EAAE,MAAM,CAAC,QAAQ;gBACnB,IAAI,EAAE,UAAC,IAAI;;oBACT,IAAM,WAAW,GAAG,MAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAa,mCAAI,EAAE,CAAA;oBACtD,OAAO,MAAM,CAAC,IAAI;wBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACvF,CAAC,CAAC,WAAW,CAAA;gBACjB,CAAC;gBACD,MAAM,EAAE,cAAM,OAAA,MAAM,CAAC,MAAM,EAAb,CAAa;aAC5B,CAA4C,CAAA;KAAA,CAClD,mCAAI,EAAE,CAAA;CAAA,CAAA;AAET,IAAM,wBAAwB,GAAG,UAAC,QAAmB;IACnD,OAAA,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;;QACnB,IAAM,UAAU,GAAY,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAC3C,IAAM,gBAAgB,GAAmC,EAAE,CAAA;QAE3D,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;YACzB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;YACjC,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;aACzC;QACH,CAAC,CAAC,CAAA;QAEF,sCACK,UAAU,GACV;YACD,KAAK,EAAE,MAAA,OAAO,CAAC,EAAE,mCAAI,EAAE;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAC,KAAiB,IAAK,OAAA,sDAAG,KAAK,CAAC,KAAK,WAAI,EAAlB,CAAkB;YACnF,WAAW,EAAE,gBAAgB;SAC9B,KACD,OAAO,EAAE,wBAAwB,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC,IACzD;IACH,CAAC,CAAC;AApBF,CAoBE,CAAA;AAEJ,IAAM,iBAAiB,GAAG;IACxB,OAAA,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE;QAChC,MAAM,EAAE,UAAC,EAAS;gBAAP,KAAK,WAAA;YAAO,OAAA,CACrB,qCACE,KAAK,EAAC,0BAA0B,EAChC,OAAO,EAAE,KAAK,CAAC,+BAA+B,EAAE,EAChD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,gBAE3B,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YACpC,CACR;QARsB,CAQtB;QACD,IAAI,EAAE,UAAC,EAAO;gBAAL,GAAG,SAAA;YACV,OAAA,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CACnB,uCACM;gBACF,OAAO,EAAE,GAAG,CAAC,wBAAwB,EAAE;gBACvC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAK,GAAG,CAAC,KAAK,GAAG,CAAC,QAAK,EAAE;aACjE,cAEA,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YAC3B,CACR,CAAC,CAAC,CAAC,IAAI;QATR,CASQ;KACX,CAA2C;AArB5C,CAqB4C,CAAA;AAE9C,SAAwB,KAAK,CAAC,EAAqB;QAAnB,SAAS,eAAA;IACjC,IAAA,KAAwB,gBAAQ,CAA2C,EAAE,CAAC,EAA7E,OAAO,QAAA,EAAE,UAAU,QAA0D,CAAA;IAC9E,IAAA,KAAkB,gBAAQ,CAAY,EAAE,CAAC,EAAxC,IAAI,QAAA,EAAE,OAAO,QAA2B,CAAA;IACzC,IAAA,KAA0B,gBAAQ,CAAgB,EAAE,CAAC,EAApD,QAAQ,QAAA,EAAE,WAAW,QAA+B,CAAA;IACrD,IAAA,KAAwB,gBAAQ,CAAe,EAAE,CAAC,EAAjD,OAAO,QAAA,EAAE,UAAU,QAA8B,CAAA;IAExD,iBAAS,CAAC;QACR,IAAM,WAAW,GAAG,qCAAqC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC5E,IAAM,SAAS,GAAG,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAE1D,UAAU,CACR,SAAS,CAAC,IAAI,CAAC,UAAC,CAAU,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAApB,CAAoB,CAAC,CAAC,CAAC,gBAAE,iBAAiB,EAAE,GAAK,WAAW,EAAE,CAAC,CAAC,WAAW,CAC3G,CAAA;QACD,OAAO,CAAC,SAAS,CAAC,CAAA;IACpB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,IAAM,KAAK,GAAG,2BAAa,CAAC;QAC1B,IAAI,MAAA;QACJ,OAAO,SAAA;QACP,KAAK,EAAE;YACL,QAAQ,UAAA;YACR,OAAO,SAAA;SACR;QACD,gBAAgB,EAAE,WAAW;QAC7B,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,OAAO,EAAX,CAAW;QAChC,eAAe,EAAE,6BAAe,EAAE;QAClC,mBAAmB,EAAE,iCAAmB,EAAE;QAC1C,iBAAiB,EAAE,+BAAiB,EAAE;KACvC,CAAC,CAAA;IAEF,IAAM,WAAW,GAAG,UAAC,aAA4B;;QAC/C,OAAA,CAAC,MAAA;YACC,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,KAAK;SACZ,CAAC,aAAa,CAAC,mCAAI,IAAI,CAAC,CAAA;KAAA,CAAA;IAE3B,OAAO,CACL,kBAAC,SAAS,cACR,mBAAC,WAAW,eACV,uCACG,KAAK,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAC,WAAW,IAAK,OAAA,CAC5C,oCACG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM;4BAC9B,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAChC,kBAAC,iBAAiB,aAAiB,OAAO,EAAE,MAAM,CAAC,OAAO,gBACvD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KADxE,MAAM,CAAC,EAAE,CAEb,CACrB,CAAC,CAAC,CAAC,CACF,mBAAC,iBAAiB,aAEhB,OAAO,EAAE,MAAM,CAAC,OAAO,IACnB;gCACF,KAAK,EAAE;oCACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;iCACpD;gCACD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE;6BACjD,eAEA,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EAC7F,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAmB,CAAC,MAVrD,MAAM,CAAC,EAAE,CAWI,CACrB;wBAlBD,CAkBC,CACF,IArBM,WAAW,CAAC,EAAE,CAsBlB,CACN,EAxB6C,CAwB7C,CAAC,WACI;gBACR,uCACG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,CACrC,oCACG,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,OAAO,IAAK,OAAA,CAC5C,kBAAC,eAAe,aAEd,KAAK,EAAE;gCACL,UAAU,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,sCAA6B;gCACvE,SAAS,EAAE,QAAQ;6BACpB,gBAEA,wBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,KANrD,IAAI,CAAC,EAAE,CAOI,CACnB,EAV6C,CAU7C,CAAC,IAXK,GAAG,CAAC,EAAE,CAYV,CACN,EAdsC,CActC,CAAC,WACI,YACI,WACJ,CACb,CAAA;AACH,CAAC;AAvFD,wBAuFC"}
@@ -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":";;;;;;;;AAAA,yCAA2D;AAU3D,2CAAsF;AAGtF,IAAM,iDAAiD,GAAG,UACxD,UAAyB,EACzB,sBAA+C,EAC/C,IAAU;IAEV,IAAM,eAAe,GAAG,wBAAgB,CACtC,mBAAW,CAA6B,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAC7D,CAAA;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,0CAA0C,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAA;KAC3F;IACD,OAAO,4CAA4C,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAA;AAC9F,CAAC,CAAA;AAED,IAAM,4CAA4C,GAAG,UACnD,eAAyC,EACzC,OAAgC,IAClB,OAAA,CAAC;IACf,OAAO;QACL;YACE,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,MAAM;SACjB;OACE,2CAA2C,CAAC,eAAe,CAAC,CAChE;IACD,IAAI,EAAE,oCAAoC,CAAC,OAAO,CAAC;CACpD,CAAC,EATc,CASd,CAAA;AAEF,IAAM,0CAA0C,GAAG,UACjD,eAAyC,EACzC,OAAgC,IAClB,OAAA,CAAC;IACf,OAAO;QACL;YACE,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,UAAU;SACrB;OACE,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM;;QAAK,OAAA,CAAC;YAC1B,MAAM,EAAE,MAAA,2BAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAI,EAAE;YAClD,QAAQ,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,mCAAI,EAAE;SAC3B,CAAC,CAAA;KAAA,CAAC,CACJ;IACD,IAAI,EAAE,8BAA8B,CAAC,eAAe,EAAE,OAAO,CAAC;CAC/D,CAAC,EAZc,CAYd,CAAA;AAEF,IAAM,2CAA2C,GAAG,UAAC,kBAAuC;IAC1F,OAAA,kBAAkB,CAAC,GAAG,CAAC,UAAC,iBAAiB;;QACvC,IAAM,cAAc,GAAG,wBAAgB,CAAoB,MAAA,iBAAiB,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAA;QAExF,OAAO;YACL,MAAM,EAAE,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,mCAAI,EAAE;YACrC,QAAQ,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,mCAAI,EAAE;YAC1E,UAAU,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;SAChH,CAAA;IACH,CAAC,CAAC;AARF,CAQE,CAAA;AAEJ,IAAM,8BAA8B,GAAG,UACrC,eAAoC,EACpC,OAAgC;;IAEhC,OAAA,MAAA,eAAe,CAAC,GAAG,CAAC,UAAC,cAAc;;QACjC,IAAM,QAAQ,GAAG,UAAC,gBAAwB,EAAE,GAAsB;;YAChE,IAAM,eAAe,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,KAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,MAAM,IAAG,CAAC,CAAA;YACzD,IAAM,OAAO,GAAG,eAAe;gBAC7B,CAAC,CAAC,8BAA8B,CAAC,mBAAW,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,mBAAW,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC,CAAC,EAAE,OAAO,CAAC;gBAC7F,CAAC,CAAC,EAAE,CAAA;YACN,IAAM,yBAAyB,GAAG,UAAC,QAAgB,EAAE,IAAe;gBAClE,OAAA,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,YAAK,OAAA,CAAA,MAAA,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAlB,CAAkB,CAAC,0CAAE,KAAK,MAAK,EAAE,CAAA,EAAA,CAAC;YAAvE,CAAuE,CAAA;YAEzE,IAAM,eAAe,GAAG,UAAC,eAAwB;gBAC/C,OAAA,eAAe,CAAC,CAAC,CAAC,kBAAC,mBAAY,IAAC,IAAI,EAAC,QAAQ,WAAG,CAAC,CAAC,CAAC,kBAAC,iBAAU,IAAC,IAAI,EAAC,OAAO,WAAG;YAA9E,CAA8E,CAAA;YAEhF,OAAO;gBACL,EAAE,EAAE,gBAAgB;gBACpB,KAAK;oBACH;wBACE,GAAG,EAAE,UAAU;wBACf,KAAK,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,mCAAI,EAAE;qBACvB;mBACE,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM;;oBAAK,OAAA,CAAC;wBAC1B,GAAG,EAAE,MAAM,CAAC,EAAE;wBACd,KAAK,EAAE,eAAe;4BACpB,CAAC,CAAC,eAAe,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;4BAChE,CAAC,CAAC,oCAAoC,CAAC,gBAAgB,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,EAAE,CAAC;qBAC/E,CAAC,CAAA;iBAAA,CAAC,CACJ;gBACD,OAAO,SAAA;aACR,CAAA;QACH,CAAC,CAAA;QAED,IAAM,EAAE,GAAW,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,mCAAI,EAAE,CAAA;QAC/C,OAAO,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAA;IACrC,CAAC,CAAC,mCAAI,EAAE,CAAA;CAAA,CAAA;AAEV,IAAM,oCAAoC,GAAG,UAAC,EAAU,EAAE,KAAgD;;IACxG,IAAM,UAAU,GAAG,2BAA2B,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACzD,OAAO,mBAAW,CAAS,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,0CAAE,WAAW,EAAE,EAAE,CAAC,CAAA;AACnF,CAAC,CAAA;AAED,IAAM,2BAA2B,GAAG,UAClC,EAAU,EACV,KAAgD;IAEhD,IAAI,SAAgD,CAAA;IAEpD,IAAI,EAAE,KAAK,EAAE,EAAE;QACb,OAAO,SAAS,CAAA;KACjB;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAA8B,CAAA;QAElD,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;YACtB,SAAS,GAAG,IAAI,CAAA;YAChB,MAAK;SACN;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAA;YAClD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,KAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,MAAM,IAAG,CAAC,EAAE;gBACzD,SAAS,GAAG,2BAA2B,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;gBAC/D,IAAI,SAAS,EAAE;oBACb,MAAK;iBACN;aACF;SACF;KACF;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,IAAM,oCAAoC,GAAG,UAAC,OAAgC;IAC5E,OAAA,OAAO;SACJ,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,IAAI,EAAb,CAAa,CAAC;SACjC,GAAG,CAAC,UAAC,MAAM;;QACV,IAAM,SAAS,GAAW;YACxB;gBACE,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,2BAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC5C;SACF,CAAA;QAED,MAAA,MAAM,CAAC,IAAI,0CACP,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,EAAhC,CAAgC,EAClD,OAAO,CAAC,UAAC,IAAI;;YACZ,IAAM,MAAM,GAAG,mBAAW,CAAS,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,CAAA;YAChD,IAAM,MAAM,GAAG,mBAAW,CAAkC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,IAAI,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC,CAAC,MAAM,EAAR,CAAQ,CAAC,CAAC,CAAA;YAErG,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,IAAM,KAAK,GAAG,kCAAkC,CAC9C,wBAAgB,CAA4B,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,CAAC,CAC/D,CAAA;gBAED,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC;oBACd,SAAS,CAAC,IAAI,CAAC;wBACb,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,KAAK,EAAE,CAAC,CAAC,KAAK;qBACf,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;aACH;YAED,SAAS,CAAC,IAAI,CAAC;gBACb,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,mBAAW,CAAS,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;aACnD,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEJ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAa,CAAA;IACxC,CAAC,CAAC;AApCJ,CAoCI,CAAA;AAEN,IAAM,kCAAkC,GAAG,UAAC,KAAkC;IAC5E,IAAM,KAAK,GAAW,EAAE,CAAA;IAExB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;QACjB,IAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE5D,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE;YAC9B,8CAA8C;YAC9C,KAAK,CAAC,IAAI,CAAC;gBACT,GAAG,EAAE,IAAI,CAAC,MAAM;gBAChB,KAAK,EAAE,mBAAW,CAAS,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;aACxD,CAAC,CAAA;YAEF,qEAAqE;YACrE,IAAI,WAAW,CAAC,IAAI,EAAE;gBACpB,kCAAkC,CAChC,wBAAgB,CAA4B,WAAW,CAAC,IAAI,CAAC,CAC9D,CAAC,OAAO,CAAC,UAAC,IAAI,IAAK,OAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAhB,CAAgB,CAAC,CAAA;aACtC;SACF;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,kBAAe,iDAAiD,CAAA"}
@@ -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.22",
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.147",
31
- "@ltht-react/icon": "^1.3.147",
32
- "@ltht-react/styles": "^1.3.139",
33
- "@ltht-react/types": "^1.0.143",
34
- "@ltht-react/utils": "^1.1.145",
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-table": "^7.8.0"
37
+ "react-uuid": "^2.0.0"
37
38
  },
38
- "gitHead": "1ac20069f8b41b756197d507839383a7fd53daf1",
39
+ "gitHead": "246a8d47057a859c4a0bea7d618afee2229b7d70",
39
40
  "devDependencies": {
40
41
  "@types/react-table": "^7.7.12"
41
42
  }