@ltht-react/table 1.0.32 → 1.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,15 +1,15 @@
1
- # Select
2
-
3
- <!-- STORY -->
4
-
5
- ### Import
6
-
7
- ```js
8
- import Select from '@ltht-react/table'
9
- ```
10
-
11
- ### Usage
12
-
13
- ```jsx
14
- <Table />
15
- ```
1
+ # Select
2
+
3
+ <!-- STORY -->
4
+
5
+ ### Import
6
+
7
+ ```js
8
+ import Select from '@ltht-react/table'
9
+ ```
10
+
11
+ ### Usage
12
+
13
+ ```jsx
14
+ <Table />
15
+ ```
package/lib/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- import Table, { ICellProps, Header, Cell, CellRow, TableData, CellData } from './molecules/table';
1
+ import Table, { Header, DataEntity, TableData } from './molecules/table';
2
2
  import GenericTable from './organisms/generic-table';
3
3
  import QuestionnaireTable from './organisms/questionnaire-table';
4
4
  export default Table;
5
- export { ICellProps, Header, Cell, CellRow, TableData, CellData };
6
- export { GenericTable };
7
- export { QuestionnaireTable };
5
+ export { Header, TableData, DataEntity, GenericTable, QuestionnaireTable };
package/lib/index.js.map CHANGED
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;AAAA,4DAAwE;AACxE,4EAAoD;AAIZ,uBAJjC,uBAAY,CAIiC;AAHpD,wFAAgE;AAGV,6BAH/C,6BAAkB,CAG+C;AADxE,kBAAe,eAAK,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { FC } from 'react';
2
+ import { IconProps } from '@ltht-react/icon';
3
+ import { ActionMenuOption } from '@ltht-react/menu';
4
+ declare const TableCell: FC<CellProps>;
5
+ export interface CellProps {
6
+ adminActions?: ActionMenuOption[];
7
+ isButton?: boolean;
8
+ text?: string;
9
+ iconProps?: IconProps;
10
+ clickHandler?: React.MouseEventHandler<HTMLButtonElement>;
11
+ customComponentOverride?: JSX.Element;
12
+ }
13
+ export default TableCell;
@@ -0,0 +1,61 @@
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 button_1 = require("@ltht-react/button");
23
+ var styled_1 = __importDefault(require("@emotion/styled"));
24
+ var icon_1 = require("@ltht-react/icon");
25
+ var menu_1 = __importDefault(require("@ltht-react/menu"));
26
+ var StyledText = styled_1.default.span(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-left: 0.4rem;\n"], ["\n margin-left: 0.4rem;\n"
27
+ // TODO: This component is still a WIP and will be re-factored soon!
28
+ // May be best to split it out into different components, the important part is unifying Type used by React-Table so the mapping can be simplified
29
+ // It will need to facilitate the Actions list capability Jonny Dyson has requested
30
+ // Betters ways of handling the customComponentOverride will be considered too
31
+ ])));
32
+ // TODO: This component is still a WIP and will be re-factored soon!
33
+ // May be best to split it out into different components, the important part is unifying Type used by React-Table so the mapping can be simplified
34
+ // It will need to facilitate the Actions list capability Jonny Dyson has requested
35
+ // Betters ways of handling the customComponentOverride will be considered too
36
+ var TableCell = function (_a) {
37
+ var adminActions = _a.adminActions, _b = _a.isButton, isButton = _b === void 0 ? false : _b, text = _a.text, iconProps = _a.iconProps, clickHandler = _a.clickHandler, customComponentOverride = _a.customComponentOverride;
38
+ if (customComponentOverride) {
39
+ return customComponentOverride;
40
+ }
41
+ if (adminActions) {
42
+ return jsx_runtime_1.jsx(menu_1.default, { actions: adminActions }, void 0);
43
+ }
44
+ if (isButton) {
45
+ return jsx_runtime_1.jsx(button_1.Button, { type: "button", value: text, icon: iconProps && jsx_runtime_1.jsx(icon_1.Icon, __assign({}, iconProps), void 0), onClick: clickHandler }, void 0);
46
+ }
47
+ if (clickHandler && iconProps) {
48
+ return jsx_runtime_1.jsx(icon_1.IconButton, { iconProps: iconProps, text: text, onClick: clickHandler }, void 0);
49
+ }
50
+ if (iconProps) {
51
+ return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [jsx_runtime_1.jsx(icon_1.Icon, __assign({}, iconProps), void 0),
52
+ text && jsx_runtime_1.jsx(StyledText, { children: text }, void 0)] }, void 0));
53
+ }
54
+ if (text) {
55
+ return jsx_runtime_1.jsx("div", { children: text !== null && text !== void 0 ? text : '' }, void 0);
56
+ }
57
+ return jsx_runtime_1.jsx(jsx_runtime_1.Fragment, {}, void 0);
58
+ };
59
+ exports.default = TableCell;
60
+ var templateObject_1;
61
+ //# sourceMappingURL=table-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-cell.js","sourceRoot":"","sources":["../../src/molecules/table-cell.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,6CAA2C;AAC3C,2DAAoC;AACpC,yCAA8D;AAC9D,0DAA+D;AAE/D,IAAM,UAAU,GAAG,gBAAM,CAAC,IAAI,+FAAA,4BAE7B;IAED,oEAAoE;IACpE,kJAAkJ;IAClJ,mFAAmF;IACnF,8EAA8E;IAL7E,CAAA;AAED,oEAAoE;AACpE,kJAAkJ;AAClJ,mFAAmF;AACnF,8EAA8E;AAC9E,IAAM,SAAS,GAAkB,UAAC,EAOjC;QANC,YAAY,kBAAA,EACZ,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,IAAI,UAAA,EACJ,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,uBAAuB,6BAAA;IAEvB,IAAI,uBAAuB,EAAE;QAC3B,OAAO,uBAAuB,CAAA;KAC/B;IAED,IAAI,YAAY,EAAE;QAChB,OAAO,kBAAC,cAAU,IAAC,OAAO,EAAE,YAAY,WAAI,CAAA;KAC7C;IAED,IAAI,QAAQ,EAAE;QACZ,OAAO,kBAAC,eAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,kBAAC,WAAI,eAAK,SAAS,UAAI,EAAE,OAAO,EAAE,YAAY,WAAI,CAAA;KAChH;IAED,IAAI,YAAY,IAAI,SAAS,EAAE;QAC7B,OAAO,kBAAC,iBAAU,IAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,WAAI,CAAA;KAC/E;IAED,IAAI,SAAS,EAAE;QACb,OAAO,CACL,wDACE,kBAAC,WAAI,eAAK,SAAS,UAAI;gBACtB,IAAI,IAAI,kBAAC,UAAU,cAAE,IAAI,WAAc,YACvC,CACJ,CAAA;KACF;IAED,IAAI,IAAI,EAAE;QACR,OAAO,qCAAM,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,WAAO,CAAA;KAC/B;IAED,OAAO,qDAAK,CAAA;AACd,CAAC,CAAA;AAWD,kBAAe,SAAS,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ColumnDef } from '@tanstack/react-table';
2
+ import { TableData, DataEntity } from './table';
3
+ declare const createColumns: (tableData: TableData) => ColumnDef<DataEntity>[];
4
+ export default createColumns;
@@ -0,0 +1,103 @@
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 react_table_1 = require("@tanstack/react-table");
19
+ var table_cell_1 = __importDefault(require("./table-cell"));
20
+ var createColumns = function (tableData) {
21
+ var columnHelper = react_table_1.createColumnHelper();
22
+ var columns = createColumnsRecursively(tableData.headers, columnHelper);
23
+ if (tableData.rows.some(function (row) { return row.subRows; })) {
24
+ columns = prependColumnWithExpansionControls(columns, columnHelper);
25
+ }
26
+ return columns;
27
+ };
28
+ var createColumnsRecursively = function (headers, columnHelper) {
29
+ var result = headers.map(function (header) {
30
+ var _a, _b;
31
+ if (header.type === 'display') {
32
+ return columnHelper.display({
33
+ id: header.id,
34
+ header: function () { return jsx_runtime_1.jsx(table_cell_1.default, __assign({}, header.cellProps), void 0); },
35
+ cell: function (props) { return jsx_runtime_1.jsx(table_cell_1.default, __assign({}, props.getValue()), void 0); },
36
+ });
37
+ }
38
+ if (header.type === 'accessor') {
39
+ return columnHelper.accessor(header.id, {
40
+ header: function (props) {
41
+ var cellProps = __assign(__assign({}, header.cellProps), { iconProps: deriveHeaderIconProps(props) });
42
+ return jsx_runtime_1.jsx(table_cell_1.default, __assign({}, cellProps), void 0);
43
+ },
44
+ cell: function (props) { return jsx_runtime_1.jsx(table_cell_1.default, __assign({}, props.getValue()), void 0); },
45
+ });
46
+ }
47
+ return columnHelper.group({
48
+ header: (_a = header.cellProps.text) !== null && _a !== void 0 ? _a : '',
49
+ columns: createColumnsRecursively((_b = header.subHeaders) !== null && _b !== void 0 ? _b : [], columnHelper),
50
+ });
51
+ });
52
+ return result;
53
+ };
54
+ var deriveHeaderIconProps = function (props) {
55
+ if (props.column.getIsSorted() === 'asc') {
56
+ return {
57
+ type: 'chevron',
58
+ direction: 'up',
59
+ size: 'medium',
60
+ };
61
+ }
62
+ if (props.column.getIsSorted() === 'desc') {
63
+ return {
64
+ type: 'chevron',
65
+ direction: 'down',
66
+ size: 'medium',
67
+ };
68
+ }
69
+ return undefined;
70
+ };
71
+ var prependColumnWithExpansionControls = function (columns, columnHelper) {
72
+ var expanderColumn = columnHelper.display({
73
+ id: 'expander',
74
+ header: function (_a) {
75
+ var table = _a.table;
76
+ var headerCellProps = {
77
+ iconProps: {
78
+ type: 'chevron',
79
+ direction: table.getIsAllRowsExpanded() ? 'down' : 'right',
80
+ size: 'medium',
81
+ },
82
+ clickHandler: table.getToggleAllRowsExpandedHandler(),
83
+ };
84
+ return jsx_runtime_1.jsx(table_cell_1.default, __assign({}, headerCellProps), void 0);
85
+ },
86
+ cell: function (props) {
87
+ var cellProps = props.row.getCanExpand()
88
+ ? {
89
+ iconProps: {
90
+ type: 'chevron',
91
+ direction: props.row.getIsExpanded() ? 'down' : 'right',
92
+ size: 'medium',
93
+ },
94
+ clickHandler: props.row.getToggleExpandedHandler(),
95
+ }
96
+ : {};
97
+ return jsx_runtime_1.jsx(table_cell_1.default, __assign({}, cellProps), void 0);
98
+ },
99
+ });
100
+ return [expanderColumn].concat(columns);
101
+ };
102
+ exports.default = createColumns;
103
+ //# sourceMappingURL=table-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-methods.js","sourceRoot":"","sources":["../../src/molecules/table-methods.tsx"],"names":[],"mappings":"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"}
@@ -1,38 +1,21 @@
1
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
- }
2
+ import { CellProps } from './table-cell';
3
+ declare const Table: FC<IProps>;
4
+ export declare type DataEntity = Record<string, CellProps | DataEntity[]> & {
5
+ subRows?: DataEntity[];
6
+ };
11
7
  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[];
8
+ type: 'accessor' | 'group' | 'display';
9
+ id: string;
10
+ cellProps: CellProps;
11
+ subHeaders?: Header[];
28
12
  }
29
13
  export interface TableData {
30
14
  headers: Header[];
31
- rows: CellRow[];
15
+ rows: DataEntity[];
32
16
  }
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 {};
17
+ interface IProps {
18
+ tableData: TableData;
19
+ staticColumns?: 0 | 1 | 2;
20
+ }
21
+ export default Table;
@@ -14,11 +14,6 @@ var __assign = (this && this.__assign) || function () {
14
14
  };
15
15
  return __assign.apply(this, arguments);
16
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
17
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
18
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
19
  };
@@ -26,85 +21,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
21
  var jsx_runtime_1 = require("react/jsx-runtime");
27
22
  var react_1 = require("react");
28
23
  var react_table_1 = require("@tanstack/react-table");
29
- var react_uuid_1 = __importDefault(require("react-uuid"));
30
24
  var styled_1 = __importDefault(require("@emotion/styled"));
31
25
  var styles_1 = require("@ltht-react/styles");
26
+ var table_methods_1 = __importDefault(require("./table-methods"));
27
+ var useDimensionRef_1 = __importDefault(require("./useDimensionRef"));
32
28
  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]);
29
+ var StyledTable = styled_1.default.table(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: white;\n border-collapse: separate;\n border-spacing: 0px;\n border-radius: 6px;\n"], ["\n background-color: white;\n border-collapse: separate;\n border-spacing: 0px;\n border-radius: 6px;\n"])));
30
+ var StyledTableHeader = styled_1.default.th(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n border: thin solid ", ";\n font-weight: bold;\n padding: 1rem;\n\n ", "\n"], ["\n background-color: ", ";\n border: thin solid ", ";\n font-weight: bold;\n padding: 1rem;\n\n ",
31
+ "\n"])), styles_1.TABLE_COLOURS.HEADER, styles_1.TABLE_COLOURS.BORDER, function (_a) {
32
+ var stickyWidth = _a.stickyWidth;
33
+ return stickyWidth !== undefined &&
34
+ "\n position: sticky !important;\n left: " + stickyWidth + "px;\n top: 0;\n z-index: 1;";
35
+ });
36
+ var StyledTableData = styled_1.default.td(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n border: thin solid ", ";\n white-space: nowrap;\n\n ", "\n\n &:first-of-type {\n background-color: ", " !important;\n }\n"], ["\n border: thin solid ", ";\n white-space: nowrap;\n\n ",
37
+ "\n\n &:first-of-type {\n background-color: ", " !important;\n }\n"])), styles_1.TABLE_COLOURS.BORDER, function (_a) {
38
+ var stickyWidth = _a.stickyWidth;
39
+ return stickyWidth !== undefined &&
40
+ "\n position: sticky !important;\n left: " + stickyWidth + "px;\n top: 0;\n z-index: 1;";
41
+ }, styles_1.TABLE_COLOURS.HEADER);
42
+ var Table = function (_a) {
43
+ var tableData = _a.tableData, _b = _a.staticColumns, staticColumns = _b === void 0 ? 0 : _b;
44
+ var firstColumn = react_1.useRef(null);
45
+ var width = useDimensionRef_1.default(firstColumn).width;
46
+ var _c = react_1.useState({}), expanded = _c[0], setExpanded = _c[1];
47
+ var _d = react_1.useState([]), sorting = _d[0], setSorting = _d[1];
105
48
  var table = react_table_1.useReactTable({
106
- data: data,
107
- columns: columns,
49
+ data: tableData.rows,
50
+ columns: table_methods_1.default(tableData),
108
51
  state: {
109
52
  expanded: expanded,
110
53
  sorting: sorting,
@@ -116,26 +59,28 @@ function Table(_a) {
116
59
  getExpandedRowModel: react_table_1.getExpandedRowModel(),
117
60
  getSortedRowModel: react_table_1.getSortedRowModel(),
118
61
  });
119
- var getSortIcon = function (sortDirection) {
120
- var _a;
121
- return ((_a = {
122
- asc: ' 🔼',
123
- desc: ' 🔽',
124
- }[sortDirection]) !== null && _a !== void 0 ? _a : null);
62
+ var calculateStaticColumnOffset = function (cellIdx, staticColumns, firstColumnWidth) {
63
+ if (cellIdx === 0) {
64
+ return 0;
65
+ }
66
+ if (cellIdx < staticColumns) {
67
+ return firstColumnWidth;
68
+ }
69
+ return undefined;
125
70
  };
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 }, {
71
+ 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, headerIndex) {
72
+ return headerIndex === 0 ? (jsx_runtime_1.jsx(StyledTableHeader, __assign({ stickyWidth: calculateStaticColumnOffset(headerIndex, staticColumns, width), colSpan: header.colSpan, ref: firstColumn }, { children: header.isPlaceholder ? null : react_table_1.flexRender(header.column.columnDef.header, header.getContext()) }), header.id)) : (jsx_runtime_1.jsx(StyledTableHeader, __assign({ stickyWidth: calculateStaticColumnOffset(headerIndex, staticColumns, width), colSpan: header.colSpan }, {
128
73
  style: {
129
74
  cursor: header.column.getCanSort() ? 'pointer' : '',
130
75
  },
131
76
  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));
77
+ }, { children: header.isPlaceholder ? null : react_table_1.flexRender(header.column.columnDef.header, header.getContext()) }), header.id));
133
78
  }) }, 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,
79
+ 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({ stickyWidth: calculateStaticColumnOffset(cellIdx, staticColumns, width), style: {
80
+ background: cellIdx % 2 === 1 ? styles_1.TABLE_COLOURS.STRIPE_LIGHT : styles_1.TABLE_COLOURS.STRIPE_DARK,
136
81
  textAlign: 'center',
137
82
  } }, { children: react_table_1.flexRender(cell.column.columnDef.cell, cell.getContext()) }), cell.id)); }) }, row.id)); }) }, void 0)] }, void 0) }, void 0));
138
- }
83
+ };
139
84
  exports.default = Table;
140
85
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
141
86
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/molecules/table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/molecules/table.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+BAA4C;AAC5C,qDAQ8B;AAC9B,2DAAoC;AACpC,6CAAwE;AAExE,kEAA2C;AAC3C,sEAAgD;AAEhD,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,gLAAA,6GAK/B,IAAA,CAAA;AAED,IAAM,iBAAiB,GAAG,gBAAM,CAAC,EAAE,gLAAkB,wBAC/B,EAAoB,0BACnB,EAAoB,iDAIvC;IAMY,IACf,KAZqB,sBAAa,CAAC,MAAM,EACnB,sBAAa,CAAC,MAAM,EAIvC,UAAC,EAAe;QAAb,WAAW,iBAAA;IACd,OAAA,WAAW,KAAK,SAAS;QACzB,mDAEQ,WAAW,sCAEP;AALZ,CAKY,CACf,CAAA;AAED,IAAM,eAAe,GAAG,gBAAM,CAAC,EAAE,yMAAkB,yBAC5B,EAAoB,iCAGvC;IAMY,iDAGQ,EAAoB,qBAE3C,KAdsB,sBAAa,CAAC,MAAM,EAGvC,UAAC,EAAe;QAAb,WAAW,iBAAA;IACd,OAAA,WAAW,KAAK,SAAS;QACzB,mDAEQ,WAAW,sCAEP;AALZ,CAKY,EAGQ,sBAAa,CAAC,MAAM,CAE3C,CAAA;AAED,IAAM,KAAK,GAAe,UAAC,EAAgC;QAA9B,SAAS,eAAA,EAAE,qBAAiB,EAAjB,aAAa,mBAAG,CAAC,KAAA;IACvD,IAAM,WAAW,GAAG,cAAM,CAAC,IAAI,CAAC,CAAA;IACxB,IAAA,KAAK,GAAK,yBAAgB,CAAC,WAAW,CAAC,MAAlC,CAAkC;IAEzC,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,IAAM,KAAK,GAAG,2BAAa,CAAC;QAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,OAAO,EAAE,uBAAa,CAAC,SAAS,CAAC;QACjC,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,2BAA2B,GAAG,UAAC,OAAe,EAAE,aAAqB,EAAE,gBAAwB;QACnG,IAAI,OAAO,KAAK,CAAC,EAAE;YACjB,OAAO,CAAC,CAAA;SACT;QAED,IAAI,OAAO,GAAG,aAAa,EAAE;YAC3B,OAAO,gBAAgB,CAAA;SACxB;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,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,EAAE,WAAW;4BAC3C,OAAA,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAClB,kBAAC,iBAAiB,aAChB,WAAW,EAAE,2BAA2B,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,EAE3E,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,GAAG,EAAE,WAAW,gBAEf,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,KAJzF,MAAM,CAAC,EAAE,CAKI,CACrB,CAAC,CAAC,CAAC,CACF,kBAAC,iBAAiB,aAChB,WAAW,EAAE,2BAA2B,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,EAE3E,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,cAEA,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,KATzF,MAAM,CAAC,EAAE,CAUI,CACrB;wBAvBD,CAuBC,CACF,IA1BM,WAAW,CAAC,EAAE,CA2BlB,CACN,EA7B6C,CA6B7C,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,aACd,WAAW,EAAE,2BAA2B,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,EAEvE,KAAK,EAAE;gCACL,UAAU,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAa,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAa,CAAC,WAAW;gCACtF,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,EAX6C,CAW7C,CAAC,IAZK,GAAG,CAAC,EAAE,CAaV,CACN,EAfsC,CAetC,CAAC,WACI,YACI,WACJ,CACb,CAAA;AACH,CAAC,CAAA;AA2BD,kBAAe,KAAK,CAAA"}
@@ -0,0 +1,5 @@
1
+ declare const useDimensionsRef: (elementRef: React.RefObject<HTMLElement>) => {
2
+ width: number;
3
+ height: number;
4
+ };
5
+ export default useDimensionsRef;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var useDimensionsRef = function (elementRef) {
5
+ var _a = react_1.useState({ width: 0, height: 0 }), dimensions = _a[0], setDimensions = _a[1];
6
+ react_1.useEffect(function () {
7
+ var getDimensions = function () { return ({
8
+ width: (elementRef && elementRef.current && elementRef.current.offsetWidth) || 0,
9
+ height: (elementRef && elementRef.current && elementRef.current.offsetHeight) || 0,
10
+ }); };
11
+ var handleResize = function () {
12
+ setDimensions(getDimensions());
13
+ };
14
+ if (elementRef.current) {
15
+ setDimensions(getDimensions());
16
+ }
17
+ window.addEventListener('resize', handleResize);
18
+ return function () {
19
+ window.removeEventListener('resize', handleResize);
20
+ };
21
+ }, [elementRef]);
22
+ return dimensions;
23
+ };
24
+ exports.default = useDimensionsRef;
25
+ //# sourceMappingURL=useDimensionRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDimensionRef.js","sourceRoot":"","sources":["../../src/molecules/useDimensionRef.tsx"],"names":[],"mappings":";;AAAA,+BAA2C;AAE3C,IAAM,gBAAgB,GAAG,UAAC,UAAwC;IAC1D,IAAA,KAA8B,gBAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAA9D,UAAU,QAAA,EAAE,aAAa,QAAqC,CAAA;IAErE,iBAAS,CAAC;QACR,IAAM,aAAa,GAAG,cAAM,OAAA,CAAC;YAC3B,KAAK,EAAE,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YAChF,MAAM,EAAE,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;SACnF,CAAC,EAH0B,CAG1B,CAAA;QAEF,IAAM,YAAY,GAAG;YACnB,aAAa,CAAC,aAAa,EAAE,CAAC,CAAA;QAChC,CAAC,CAAA;QAED,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,aAAa,CAAC,aAAa,EAAE,CAAC,CAAA;SAC/B;QAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE/C,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACpD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,kBAAe,gBAAgB,CAAA"}
@@ -1,9 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { Axis } from '@ltht-react/types';
3
2
  import { TableData } from '../molecules/table';
4
- declare const GenericTable: <TColumn, TRow>({ columnData, rowData, headerAxis, mapToTableData, }: IProps<TColumn, TRow>) => JSX.Element;
3
+ declare const GenericTable: <TColumn, TRow>({ columnData, rowData, mapToTableData }: IProps<TColumn, TRow>) => JSX.Element;
5
4
  interface IProps<TColumn, TRow> {
6
- headerAxis?: Axis;
7
5
  columnData: TColumn;
8
6
  rowData: TRow;
9
7
  mapToTableData: (colData: TColumn, rowData: TRow) => TableData;
@@ -1,36 +1,14 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
6
  var jsx_runtime_1 = require("react/jsx-runtime");
18
7
  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
8
  var GenericTable = function (_a) {
31
- var columnData = _a.columnData, rowData = _a.rowData, _b = _a.headerAxis, headerAxis = _b === void 0 ? 'x' : _b, mapToTableData = _a.mapToTableData;
9
+ var columnData = _a.columnData, rowData = _a.rowData, mapToTableData = _a.mapToTableData;
32
10
  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));
11
+ return jsx_runtime_1.jsx(table_1.default, { tableData: tableData }, void 0);
34
12
  };
35
13
  exports.default = GenericTable;
36
14
  //# sourceMappingURL=generic-table.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"generic-table.js","sourceRoot":"","sources":["../../src/organisms/generic-table.tsx"],"names":[],"mappings":";;;;;;AAAA,6DAAqD;AAErD,IAAM,YAAY,GAAG,UAAgB,EAA8D;QAA5D,UAAU,gBAAA,EAAE,OAAO,aAAA,EAAE,cAAc,oBAAA;IACxE,IAAM,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAErD,OAAO,kBAAC,eAAK,IAAC,SAAS,EAAE,SAAS,WAAI,CAAA;AACxC,CAAC,CAAA;AAQD,kBAAe,YAAY,CAAA"}
@@ -1,4 +1,9 @@
1
+ import { ActionMenuOption } from '@ltht-react/menu';
1
2
  import { Axis, Questionnaire, QuestionnaireResponse } from '@ltht-react/types';
2
3
  import { TableData } from '../molecules/table';
3
- declare const mapQuestionnaireDefinitionAndResponsesToTableData: (definition: Questionnaire, questionnaireResponses: QuestionnaireResponse[], axis: Axis) => TableData | undefined;
4
+ declare const mapQuestionnaireDefinitionAndResponsesToTableData: (definition: Questionnaire, questionnaireResponses: QuestionnaireResponse[], axis: Axis, adminActions?: AdminActionsForQuestionnaire[] | undefined) => TableData | undefined;
5
+ export interface AdminActionsForQuestionnaire {
6
+ questionnaire: string;
7
+ adminActions: ActionMenuOption[];
8
+ }
4
9
  export default mapQuestionnaireDefinitionAndResponsesToTableData;
@@ -1,174 +1,186 @@
1
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
+ };
2
13
  var __spreadArray = (this && this.__spreadArray) || function (to, from) {
3
14
  for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
4
15
  to[j] = from[i];
5
16
  return to;
6
17
  };
7
18
  Object.defineProperty(exports, "__esModule", { value: true });
8
- var jsx_runtime_1 = require("react/jsx-runtime");
9
- var icon_1 = require("@ltht-react/icon");
10
19
  var utils_1 = require("@ltht-react/utils");
11
- var mapQuestionnaireDefinitionAndResponsesToTableData = function (definition, questionnaireResponses, axis) {
20
+ var mapQuestionnaireDefinitionAndResponsesToTableData = function (definition, questionnaireResponses, axis, adminActions) {
12
21
  var definitionItems = utils_1.EnsureMaybeArray(utils_1.EnsureMaybe(definition.item, []));
13
22
  if (definitionItems.length === 0) {
14
23
  return undefined;
15
24
  }
16
25
  if (axis === 'y') {
17
- return mapQuestionnaireObjectsToVerticalTableData(definitionItems, questionnaireResponses);
26
+ return mapQuestionnaireObjectsToVerticalTableData(definitionItems, questionnaireResponses, adminActions);
18
27
  }
19
- return mapQuestionnaireObjectsToHorizontalTableData(definitionItems, questionnaireResponses);
28
+ return mapQuestionnaireObjectsToHorizontalTableData(definitionItems, questionnaireResponses, adminActions);
20
29
  };
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 : '',
30
+ var mapQuestionnaireObjectsToHorizontalTableData = function (definitionItems, records, adminActions) {
31
+ var tableData = {
32
+ headers: __spreadArray([
33
+ {
34
+ id: 'date',
35
+ type: 'accessor',
36
+ cellProps: { text: 'Record Date' },
37
+ }
38
+ ], recursivelyMapQuestionnaireItemsIntoHeaders(definitionItems)),
39
+ rows: mapQuestionnaireResponsesIntoDataEntities(records, adminActions),
40
+ };
41
+ if (adminActions) {
42
+ tableData.headers.splice(1, 0, {
43
+ id: 'adminactions',
44
+ type: 'accessor',
45
+ cellProps: { text: 'Actions' },
41
46
  });
42
- })),
43
- rows: buildVerticalCellRowsRecursive(definitionItems, records),
44
- }); };
47
+ }
48
+ return tableData;
49
+ };
45
50
  var recursivelyMapQuestionnaireItemsIntoHeaders = function (questionnaireItems) {
46
51
  return questionnaireItems.map(function (questionnaireItem) {
47
52
  var _a, _b, _c;
48
- var recursiveItems = utils_1.EnsureMaybeArray((_a = questionnaireItem.item) !== null && _a !== void 0 ? _a : []);
53
+ var subItems = utils_1.EnsureMaybeArray((_a = questionnaireItem.item) !== null && _a !== void 0 ? _a : []);
49
54
  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,
55
+ id: (_b = questionnaireItem === null || questionnaireItem === void 0 ? void 0 : questionnaireItem.linkId) !== null && _b !== void 0 ? _b : '',
56
+ type: subItems.length > 0 ? 'group' : 'accessor',
57
+ cellProps: { text: (_c = questionnaireItem === null || questionnaireItem === void 0 ? void 0 : questionnaireItem.text) !== null && _c !== void 0 ? _c : '' },
58
+ subHeaders: recursivelyMapQuestionnaireItemsIntoHeaders(subItems),
53
59
  };
54
60
  });
55
61
  };
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) {
62
+ var mapQuestionnaireResponsesIntoDataEntities = function (records, adminActions) {
124
63
  return records
125
64
  .filter(function (record) { return !!record.item; })
126
65
  .map(function (record) {
127
66
  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) {
67
+ var dataEntity = {};
68
+ dataEntity.date = { text: utils_1.partialDateTimeText(record.authored) };
69
+ if (adminActions) {
70
+ var adminActionsForThisDataEntity = adminActions.find(function (actionForForm) { return actionForForm.questionnaire === record.id; });
71
+ if (adminActionsForThisDataEntity) {
72
+ dataEntity.adminactions = { adminActions: adminActionsForThisDataEntity.adminActions };
73
+ }
74
+ }
75
+ (_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
76
  var _a;
136
77
  var linkId = utils_1.EnsureMaybe(item === null || item === void 0 ? void 0 : item.linkId);
137
78
  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; }));
79
+ dataEntity[linkId] = { text: utils_1.EnsureMaybe(answer.valueString, '') };
138
80
  if (answer.item) {
139
- var items = recursivelyMapResponseItemsToCells(utils_1.EnsureMaybeArray(answer.item));
140
- items.forEach(function (x) {
141
- cellArray.push({
142
- key: x.key,
143
- value: x.value,
144
- });
145
- });
81
+ dataEntity = recursivelyMapResponseItemsOntoData(utils_1.EnsureMaybeArray(answer.item), dataEntity);
146
82
  }
147
- cellArray.push({
148
- key: linkId,
149
- value: utils_1.EnsureMaybe(answer.valueString, ''),
150
- });
151
83
  });
152
- return { cells: cellArray };
84
+ return dataEntity;
153
85
  });
154
86
  };
155
- var recursivelyMapResponseItemsToCells = function (items) {
156
- var cells = [];
87
+ var recursivelyMapResponseItemsOntoData = function (items, dataEntity) {
88
+ var updatedDataEntity = __assign({}, dataEntity);
157
89
  items.forEach(function (item) {
158
90
  var firstAnswer = item.answer ? item.answer[0] : undefined;
159
91
  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
92
+ updatedDataEntity[item.linkId] = {
93
+ text: utils_1.EnsureMaybe(firstAnswer.valueString, ''),
94
+ };
166
95
  if (firstAnswer.item) {
167
- recursivelyMapResponseItemsToCells(utils_1.EnsureMaybeArray(firstAnswer.item)).forEach(function (cell) { return cells.push(cell); });
96
+ updatedDataEntity = recursivelyMapResponseItemsOntoData(utils_1.EnsureMaybeArray(firstAnswer.item), updatedDataEntity);
168
97
  }
169
98
  }
170
99
  });
171
- return cells;
100
+ return updatedDataEntity;
101
+ };
102
+ var mapQuestionnaireObjectsToVerticalTableData = function (definitionItems, records, adminActions) { return ({
103
+ headers: __spreadArray([
104
+ {
105
+ id: 'property',
106
+ type: 'accessor',
107
+ cellProps: { text: '' },
108
+ }
109
+ ], records.map(function (record) {
110
+ var _a, _b;
111
+ return ({
112
+ id: (_a = record === null || record === void 0 ? void 0 : record.id) !== null && _a !== void 0 ? _a : '',
113
+ type: 'accessor',
114
+ cellProps: { text: (_b = utils_1.partialDateTimeText(record.authored)) !== null && _b !== void 0 ? _b : '' },
115
+ });
116
+ })),
117
+ rows: buildVerticalCellRows(definitionItems, records, adminActions),
118
+ }); };
119
+ var buildVerticalCellRows = function (definitionItems, records, adminActions) {
120
+ var dataEntities = definitionItems.map(function (item) {
121
+ var dataEntity = {};
122
+ dataEntity = buildVerticalCellRowsRecursive(utils_1.EnsureMaybeArray([item]), records, dataEntity);
123
+ return dataEntity;
124
+ });
125
+ if (adminActions) {
126
+ var actionsDataEntity_1 = {};
127
+ actionsDataEntity_1.property = { text: 'Actions' };
128
+ records.forEach(function (record, recordIndex) {
129
+ var adminActionsForThisDataEntity = adminActions.find(function (actionForForm) { return actionForForm.questionnaire === record.id; });
130
+ if (adminActionsForThisDataEntity) {
131
+ actionsDataEntity_1[recordIndex + 1] = { adminActions: adminActionsForThisDataEntity.adminActions };
132
+ }
133
+ });
134
+ return [actionsDataEntity_1].concat(dataEntities);
135
+ }
136
+ return dataEntities;
137
+ };
138
+ var buildVerticalCellRowsRecursive = function (definitionItems, records, dataEntity) {
139
+ var updatedDataEntity = __assign({}, dataEntity);
140
+ definitionItems.forEach(function (definitionItem) {
141
+ var _a;
142
+ updatedDataEntity.property = { text: (_a = definitionItem.text) !== null && _a !== void 0 ? _a : '' };
143
+ if (definitionItem.linkId) {
144
+ records.forEach(function (record, recordIndex) {
145
+ var _a;
146
+ updatedDataEntity = getRecordItemByLinkId(utils_1.EnsureMaybeArray((_a = record.item) !== null && _a !== void 0 ? _a : []), utils_1.EnsureMaybe(definitionItem.linkId), updatedDataEntity, recordIndex);
147
+ });
148
+ }
149
+ if (definitionItem.item && definitionItem.item.length > 0) {
150
+ updatedDataEntity.subRows = buildVerticalCellRows(utils_1.EnsureMaybeArray(definitionItem.item), records);
151
+ }
152
+ });
153
+ return updatedDataEntity;
154
+ };
155
+ var getRecordItemByLinkId = function (recordItems, linkId, dataEntity, recordIndex) {
156
+ var updatedDataEntity = __assign({}, dataEntity);
157
+ recordItems.forEach(function (recordItem) {
158
+ var recordItemAnswer = recordItem.answer && recordItem.answer.length > 0 ? utils_1.EnsureMaybe(recordItem.answer[0]) : undefined;
159
+ if (recordItemAnswer) {
160
+ if ((recordItem === null || recordItem === void 0 ? void 0 : recordItem.linkId) && (recordItem === null || recordItem === void 0 ? void 0 : recordItem.linkId) === linkId) {
161
+ updatedDataEntity[recordIndex + 1] = createCellPropsForAnswer(recordItemAnswer);
162
+ }
163
+ if (recordItemAnswer.item && recordItemAnswer.item.length > 0) {
164
+ updatedDataEntity = getRecordItemByLinkId(utils_1.EnsureMaybeArray(recordItemAnswer.item), linkId, updatedDataEntity, recordIndex);
165
+ }
166
+ }
167
+ });
168
+ return updatedDataEntity;
169
+ };
170
+ var createCellPropsForAnswer = function (answer) {
171
+ if (answer.valueString) {
172
+ if (answer.valueString === 'CHECKBOX') {
173
+ return {
174
+ iconProps: { type: 'checkbox', size: 'medium' },
175
+ };
176
+ }
177
+ return {
178
+ text: answer.valueString,
179
+ };
180
+ }
181
+ return {
182
+ text: '',
183
+ };
172
184
  };
173
185
  exports.default = mapQuestionnaireDefinitionAndResponsesToTableData;
174
186
  //# sourceMappingURL=questionnaire-table-methods.js.map
@@ -1 +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,CAAC,wBAAgB,CAA4B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;gBAE1G,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;AAlCJ,CAkCI,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"}
1
+ {"version":3,"file":"questionnaire-table-methods.js","sourceRoot":"","sources":["../../src/organisms/questionnaire-table-methods.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import { QuestionnaireResponse, Axis, Questionnaire } from '@ltht-react/types';
2
2
  import { FC } from 'react';
3
+ import { AdminActionsForQuestionnaire } from './questionnaire-table-methods';
3
4
  declare const QuestionnaireTable: FC<IProps>;
4
5
  interface IProps {
5
6
  definition: Questionnaire;
6
7
  records: QuestionnaireResponse[];
7
8
  headerAxis?: Axis;
9
+ adminActions?: AdminActionsForQuestionnaire[];
10
+ staticColumns?: 0 | 1 | 2;
8
11
  }
9
12
  export default QuestionnaireTable;
@@ -9,19 +9,15 @@ var icon_1 = require("@ltht-react/icon");
9
9
  var table_1 = __importDefault(require("../molecules/table"));
10
10
  var questionnaire_table_methods_1 = __importDefault(require("./questionnaire-table-methods"));
11
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
- ]);
12
+ var definition = _a.definition, records = _a.records, _b = _a.headerAxis, headerAxis = _b === void 0 ? 'y' : _b, _c = _a.staticColumns, staticColumns = _c === void 0 ? 0 : _c, adminActions = _a.adminActions;
13
+ var tableData = react_1.useMemo(function () { return questionnaire_table_methods_1.default(definition, records, headerAxis, adminActions); }, [headerAxis, definition, records, adminActions]);
18
14
  // TODO: Replace this fragment with a properly styled error component.
19
15
  // Maybe this could be a re-usable atom?
20
16
  if (!tableData) {
21
17
  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
18
  jsx_runtime_1.jsx("div", { children: "An error occurred whilst loading this table." }, void 0)] }, void 0));
23
19
  }
24
- return jsx_runtime_1.jsx(table_1.default, { tableData: tableData }, void 0);
20
+ return jsx_runtime_1.jsx(table_1.default, { tableData: tableData, staticColumns: staticColumns }, void 0);
25
21
  };
26
22
  exports.default = QuestionnaireTable;
27
23
  //# sourceMappingURL=questionnaire-table.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"questionnaire-table.js","sourceRoot":"","sources":["../../src/organisms/questionnaire-table.tsx"],"names":[],"mappings":";;;;;;AACA,+BAAmC;AACnC,yCAAuC;AACvC,6DAAsC;AACtC,8FAEsC;AAEtC,IAAM,kBAAkB,GAAe,UAAC,EAA0E;QAAxE,UAAU,gBAAA,EAAE,OAAO,aAAA,EAAE,kBAAgB,EAAhB,UAAU,mBAAG,GAAG,KAAA,EAAE,qBAAiB,EAAjB,aAAa,mBAAG,CAAC,KAAA,EAAE,YAAY,kBAAA;IAC9G,IAAM,SAAS,GAAG,eAAO,CACvB,cAAM,OAAA,qCAAiD,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,EAAhG,CAAgG,EACtG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAChD,CAAA;IAED,sEAAsE;IACtE,wCAAwC;IACxC,IAAI,CAAC,SAAS,EAAE;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,EAAE,aAAa,EAAE,aAAa,WAAI,CAAA;AACtE,CAAC,CAAA;AAUD,kBAAe,kBAAkB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ltht-react/table",
3
- "version": "1.0.32",
3
+ "version": "1.0.37",
4
4
  "description": "ltht-react Table component.",
5
5
  "author": "LTHT",
6
6
  "homepage": "",
@@ -27,16 +27,17 @@
27
27
  "dependencies": {
28
28
  "@emotion/react": "^11.0.0",
29
29
  "@emotion/styled": "^11.0.0",
30
- "@ltht-react/button": "^1.3.157",
31
- "@ltht-react/icon": "^1.3.157",
32
- "@ltht-react/styles": "^1.3.149",
33
- "@ltht-react/types": "^1.0.153",
34
- "@ltht-react/utils": "^1.1.155",
30
+ "@ltht-react/button": "^1.3.162",
31
+ "@ltht-react/icon": "^1.3.162",
32
+ "@ltht-react/menu": "^1.0.4",
33
+ "@ltht-react/styles": "^1.3.154",
34
+ "@ltht-react/types": "^1.0.158",
35
+ "@ltht-react/utils": "^1.1.160",
35
36
  "@tanstack/react-table": "^8.5.22",
36
37
  "react": "^17.0.0",
37
38
  "react-uuid": "^2.0.0"
38
39
  },
39
- "gitHead": "0f055a3b7d437bd2b2259fa144eb846e55164d88",
40
+ "gitHead": "75501a7780d07fe05f697e9495cc8a6fbe194f2c",
40
41
  "devDependencies": {
41
42
  "@types/react-table": "^7.7.12"
42
43
  }