@laerdal/life-react-components 1.3.2-dev.9 → 1.4.0
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/dist/esm/Accordion/ContentAccordion.js +102 -81
- package/dist/esm/Accordion/ContentAccordion.js.map +1 -1
- package/dist/esm/Accordion/__tests__/ContetnAccordion.test.js +27 -27
- package/dist/esm/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
- package/dist/esm/Button/Iconbutton.js +0 -1
- package/dist/esm/Button/Iconbutton.js.map +1 -1
- package/dist/esm/Dropdown/DropdownButton.js +5 -2
- package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
- package/dist/esm/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/esm/HyperLink/HyperLink.js +2 -1
- package/dist/esm/HyperLink/HyperLink.js.map +1 -1
- package/dist/esm/InputFields/Checkbox.js +23 -13
- package/dist/esm/InputFields/Checkbox.js.map +1 -1
- package/dist/esm/Modals/ModalDialog.js +7 -4
- package/dist/esm/Modals/ModalDialog.js.map +1 -1
- package/dist/esm/Modals/ModalNote.js +1 -1
- package/dist/esm/Modals/ModalNote.js.map +1 -1
- package/dist/esm/Table/Table.js +131 -181
- package/dist/esm/Table/Table.js.map +1 -1
- package/dist/esm/Table/TableBody.js +135 -0
- package/dist/esm/Table/TableBody.js.map +1 -0
- package/dist/esm/Table/TableFooter.js +68 -0
- package/dist/esm/Table/TableFooter.js.map +1 -0
- package/dist/esm/Table/TableHeaders.js +55 -0
- package/dist/esm/Table/TableHeaders.js.map +1 -0
- package/dist/esm/Table/TableStyles.js +181 -110
- package/dist/esm/Table/TableStyles.js.map +1 -1
- package/dist/esm/Table/__tests__/Table.test.js +162 -21
- package/dist/esm/Table/__tests__/Table.test.js.map +1 -1
- package/dist/js/Accordion/ContentAccordion.d.ts +0 -9
- package/dist/js/Accordion/ContentAccordion.js +21 -42
- package/dist/js/Accordion/ContentAccordion.js.map +1 -1
- package/dist/js/Accordion/__tests__/ContetnAccordion.test.js +27 -33
- package/dist/js/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
- package/dist/js/Button/Iconbutton.d.ts +2 -2
- package/dist/js/Button/Iconbutton.js +0 -1
- package/dist/js/Button/Iconbutton.js.map +1 -1
- package/dist/js/Dropdown/DropdownButton.d.ts +1 -1
- package/dist/js/Dropdown/DropdownButton.js +5 -2
- package/dist/js/Dropdown/DropdownButton.js.map +1 -1
- package/dist/js/Dropdown/DropdownButtonTypes.d.ts +1 -0
- package/dist/js/Dropdown/DropdownFilter.d.ts +1 -1
- package/dist/js/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/js/HyperLink/HyperLink.d.ts +1 -1
- package/dist/js/HyperLink/HyperLink.js +2 -2
- package/dist/js/HyperLink/HyperLink.js.map +1 -1
- package/dist/js/InputFields/Checkbox.d.ts +3 -2
- package/dist/js/InputFields/Checkbox.js +13 -11
- package/dist/js/InputFields/Checkbox.js.map +1 -1
- package/dist/js/Modals/ModalDialog.d.ts +2 -1
- package/dist/js/Modals/ModalDialog.js +7 -4
- package/dist/js/Modals/ModalDialog.js.map +1 -1
- package/dist/js/Modals/ModalNote.d.ts +1 -1
- package/dist/js/Modals/ModalNote.js +1 -1
- package/dist/js/Modals/ModalNote.js.map +1 -1
- package/dist/js/Table/Table.js +166 -209
- package/dist/js/Table/Table.js.map +1 -1
- package/dist/js/Table/TableBody.d.ts +9 -0
- package/dist/js/Table/TableBody.js +167 -0
- package/dist/js/Table/TableBody.js.map +1 -0
- package/dist/js/Table/TableFooter.d.ts +15 -0
- package/dist/js/Table/TableFooter.js +95 -0
- package/dist/js/Table/TableFooter.js.map +1 -0
- package/dist/js/Table/TableHeaders.d.ts +9 -0
- package/dist/js/Table/TableHeaders.js +77 -0
- package/dist/js/Table/TableHeaders.js.map +1 -0
- package/dist/js/Table/TableStyles.d.ts +19 -7
- package/dist/js/Table/TableStyles.js +66 -16
- package/dist/js/Table/TableStyles.js.map +1 -1
- package/dist/js/Table/TableTypes.d.ts +26 -16
- package/dist/js/Table/__tests__/Table.test.js +172 -30
- package/dist/js/Table/__tests__/Table.test.js.map +1 -1
- package/dist/umd/Accordion/ContentAccordion.js +103 -82
- package/dist/umd/Accordion/ContentAccordion.js.map +1 -1
- package/dist/umd/Accordion/__tests__/ContetnAccordion.test.js +26 -26
- package/dist/umd/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
- package/dist/umd/Button/Iconbutton.js +0 -1
- package/dist/umd/Button/Iconbutton.js.map +1 -1
- package/dist/umd/Dropdown/DropdownButton.js +5 -2
- package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
- package/dist/umd/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/umd/HyperLink/HyperLink.js +2 -1
- package/dist/umd/HyperLink/HyperLink.js.map +1 -1
- package/dist/umd/InputFields/Checkbox.js +23 -13
- package/dist/umd/InputFields/Checkbox.js.map +1 -1
- package/dist/umd/Modals/ModalDialog.js +7 -4
- package/dist/umd/Modals/ModalDialog.js.map +1 -1
- package/dist/umd/Modals/ModalNote.js +1 -1
- package/dist/umd/Modals/ModalNote.js.map +1 -1
- package/dist/umd/Table/Table.js +157 -188
- package/dist/umd/Table/Table.js.map +1 -1
- package/dist/umd/Table/TableBody.js +270 -0
- package/dist/umd/Table/TableBody.js.map +1 -0
- package/dist/umd/Table/TableFooter.js +89 -0
- package/dist/umd/Table/TableFooter.js.map +1 -0
- package/dist/umd/Table/TableHeaders.js +91 -0
- package/dist/umd/Table/TableHeaders.js.map +1 -0
- package/dist/umd/Table/TableStyles.js +185 -115
- package/dist/umd/Table/TableStyles.js.map +1 -1
- package/dist/umd/Table/__tests__/Table.test.js +164 -25
- package/dist/umd/Table/__tests__/Table.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -69,7 +69,7 @@ var ModalNote = function ModalNote(_ref) {
|
|
|
69
69
|
|
|
70
70
|
exports.ModalNote = ModalNote;
|
|
71
71
|
ModalNote.propTypes = {
|
|
72
|
-
note: _propTypes.default.string.isRequired,
|
|
72
|
+
note: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
|
|
73
73
|
icon: _propTypes.default.node,
|
|
74
74
|
state: _propTypes.default.string,
|
|
75
75
|
size: _propTypes.default.string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Modals/ModalNote.tsx"],"names":["ModalNote","note","icon","size","state","stateVal","toLowerCase","COLORS","correct_500","warning_500","primary_500"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AASO,IAAMA,
|
|
1
|
+
{"version":3,"sources":["../../../src/Modals/ModalNote.tsx"],"names":["ModalNote","note","icon","size","state","stateVal","toLowerCase","COLORS","correct_500","warning_500","primary_500"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AASO,IAAMA,SAA6C,GAAG,SAAhDA,SAAgD,OAA6C;AAAA,MAA1CC,IAA0C,QAA1CA,IAA0C;AAAA,MAApCC,IAAoC,QAApCA,IAAoC;AAAA,MAA9BC,IAA8B,QAA9BA,IAA8B;AAAA,wBAAxBC,KAAwB;AAAA,MAAxBA,KAAwB,2BAAhB,SAAgB;AACxG,MAAMC,QAAQ,GAAGD,KAAK,CAACE,WAAN,EAAjB;;AAEA,UAAQD,QAAR;AACE,SAAK,UAAL;AACE,0BACE,oBAAC,6BAAD;AAAkB,QAAA,KAAK,EAAEA,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACGD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,0BAAD;AAAe,QAAA,KAAK,EAAEK,SAAOC;AAA7B,QADjB,eAEE,kCAAOP,IAAP,CAFF,CADF;;AAOF,SAAK,SAAL;AACE,0BACE,oBAAC,6BAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACGD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,6BAAD;AAAkB,QAAA,KAAK,EAAEK,SAAOE;AAAhC,QADjB,eAEE,kCAAOR,IAAP,CAFF,CADF;;AAOF,SAAK,UAAL;AACE,0BACE,oBAAC,6BAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACGD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,6BAAD;AAAkB,QAAA,KAAK,EAAEK,SAAOE;AAAhC,QADjB,eAEE,kCAAOR,IAAP,CAFF,CADF;;AAOF;AACE,0BACE,oBAAC,6BAAD;AAAkB,QAAA,KAAK,EAAEI,QAAzB;AAAmC,QAAA,IAAI,EAAEF;AAAzC,SACGD,IAAI,GAAGA,IAAH,gBAAU,oBAAC,wBAAD;AAAa,QAAA,KAAK,EAAEK,SAAOG,WAA3B;AAAwC,QAAA,SAAS,EAAEP;AAAnD,QADjB,eAEE,kCAAOF,IAAP,CAFF,CADF;AA1BJ;AAiCD,CApCM;;;;AANLA,EAAAA,I;AACAC,EAAAA,I;AACAE,EAAAA,K;AACAD,EAAAA,I;;eAyCaH,S","sourcesContent":["import * as React from 'react';\nimport { COLORS } from '..';\nimport { CheckComplete, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { ModalNoteSection } from './ModalStyles';\n\ninterface NoteProps {\n note: string | React.ReactNode;\n icon?: React.ReactNode;\n state?: string;\n size?: string;\n}\n\nexport const ModalNote: React.FunctionComponent<NoteProps> = ({ note, icon, size, state = 'neutral' }) => {\n const stateVal = state.toLowerCase();\n\n switch (stateVal) {\n case 'positive':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <CheckComplete color={COLORS.correct_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'warning':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n case 'critical':\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <TechnicalWarning color={COLORS.warning_500} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n\n default:\n return (\n <ModalNoteSection state={stateVal} size={size}>\n {icon ? icon : <Information color={COLORS.primary_500} className={size} />}\n <span>{note}</span>\n </ModalNoteSection>\n );\n }\n};\n\nexport default ModalNote;\n"],"file":"ModalNote.js"}
|
package/dist/js/Table/Table.js
CHANGED
|
@@ -9,26 +9,34 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var _index = require("../icons/index");
|
|
12
|
+
var _types = require("../types");
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _TableStyles = require("./TableStyles");
|
|
17
15
|
|
|
18
|
-
var
|
|
16
|
+
var _LoadingIndicator = require("../LoadingIndicator");
|
|
19
17
|
|
|
20
|
-
var
|
|
18
|
+
var _TableHeaders = _interopRequireDefault(require("./TableHeaders"));
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _TableFooter = _interopRequireDefault(require("./TableFooter"));
|
|
23
21
|
|
|
24
|
-
var
|
|
22
|
+
var _TableBody = _interopRequireDefault(require("./TableBody"));
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
25
|
|
|
28
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
27
|
|
|
30
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
29
|
|
|
30
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
31
|
+
|
|
32
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
33
|
+
|
|
34
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
35
|
+
|
|
36
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
37
|
+
|
|
38
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
39
|
+
|
|
32
40
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
33
41
|
|
|
34
42
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
@@ -43,22 +51,24 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
43
51
|
|
|
44
52
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
45
53
|
|
|
46
|
-
var Table = function Table(
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
var Table = function Table(props) {
|
|
55
|
+
var onPreviousPageClick = props.onPreviousPageClick,
|
|
56
|
+
onNextPageClick = props.onNextPageClick,
|
|
57
|
+
onRowsPerPageChange = props.onRowsPerPageChange,
|
|
58
|
+
onTriggerSortingChange = props.onTriggerSortingChange,
|
|
59
|
+
columns = props.columns,
|
|
60
|
+
rows = props.rows,
|
|
61
|
+
remoteOperations = props.remoteOperations,
|
|
62
|
+
pagination = props.pagination,
|
|
63
|
+
showLoadingIndicator = props.showLoadingIndicator,
|
|
64
|
+
selectable = props.selectable,
|
|
65
|
+
multiSelect = props.multiSelect,
|
|
66
|
+
keyExpr = props.keyExpr,
|
|
67
|
+
accordion = props.accordion,
|
|
68
|
+
_props$collapsed = props.collapsed,
|
|
69
|
+
collapsed = _props$collapsed === void 0 ? true : _props$collapsed,
|
|
70
|
+
collapsedRows = props.collapsedRows; // States used within the component
|
|
71
|
+
|
|
62
72
|
var _React$useState = React.useState(10),
|
|
63
73
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
64
74
|
rowsPerPage = _React$useState2[0],
|
|
@@ -103,14 +113,47 @@ var Table = function Table(_ref) {
|
|
|
103
113
|
_React$useState18 = _slicedToArray(_React$useState17, 2),
|
|
104
114
|
total = _React$useState18[0],
|
|
105
115
|
setTotal = _React$useState18[1];
|
|
116
|
+
|
|
117
|
+
var _React$useState19 = React.useState(true),
|
|
118
|
+
_React$useState20 = _slicedToArray(_React$useState19, 2),
|
|
119
|
+
isCollapsed = _React$useState20[0],
|
|
120
|
+
setIsCollapsed = _React$useState20[1];
|
|
121
|
+
|
|
122
|
+
var _React$useState21 = React.useState('none'),
|
|
123
|
+
_React$useState22 = _slicedToArray(_React$useState21, 2),
|
|
124
|
+
selectAllState = _React$useState22[0],
|
|
125
|
+
setSelectAllState = _React$useState22[1];
|
|
126
|
+
|
|
127
|
+
var _React$useState23 = React.useState(multiSelect ? [] : undefined),
|
|
128
|
+
_React$useState24 = _slicedToArray(_React$useState23, 2),
|
|
129
|
+
selected = _React$useState24[0],
|
|
130
|
+
setSelected = _React$useState24[1];
|
|
131
|
+
|
|
132
|
+
React.useEffect(function () {
|
|
133
|
+
setSelected(props.selectedRows || (multiSelect ? [] : undefined));
|
|
134
|
+
}, [props.selectedRows, multiSelect]);
|
|
135
|
+
/**
|
|
136
|
+
* update select all checkbox state
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
React.useEffect(function () {
|
|
140
|
+
if (multiSelect) {
|
|
141
|
+
var currentList = currentPageRows.map(function (row) {
|
|
142
|
+
return keyExpr ? row[keyExpr] : row;
|
|
143
|
+
});
|
|
144
|
+
var count = selected.filter(function (item) {
|
|
145
|
+
return currentList.includes(item);
|
|
146
|
+
}).length;
|
|
147
|
+
setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');
|
|
148
|
+
}
|
|
149
|
+
}, [currentPageRows, multiSelect, selected, keyExpr]);
|
|
106
150
|
/**
|
|
107
151
|
* Takes care of local pagination.
|
|
108
152
|
* Works only in case remote pagination is not defined or is set to false.
|
|
109
153
|
*/
|
|
110
154
|
|
|
111
|
-
|
|
112
155
|
React.useEffect(function () {
|
|
113
|
-
if (!
|
|
156
|
+
if (!remoteOperations) {
|
|
114
157
|
// Let's retrieve temporary filtered rows and update globally filtered rows
|
|
115
158
|
var tmpFilteredRows = filterAndSortRows();
|
|
116
159
|
setFilteredRows(tmpFilteredRows);
|
|
@@ -124,14 +167,14 @@ var Table = function Table(_ref) {
|
|
|
124
167
|
|
|
125
168
|
setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));
|
|
126
169
|
}
|
|
127
|
-
}, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection,
|
|
170
|
+
}, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remoteOperations]);
|
|
128
171
|
/**
|
|
129
172
|
* Takes care of remote pagination.
|
|
130
173
|
* Works only in case remote pagination is set to true.
|
|
131
174
|
*/
|
|
132
175
|
|
|
133
176
|
React.useEffect(function () {
|
|
134
|
-
if (
|
|
177
|
+
if (remoteOperations) {
|
|
135
178
|
setCurrentPageRows(rows); // Let's assign pagination values
|
|
136
179
|
|
|
137
180
|
setFrom(pagination === null || pagination === void 0 ? void 0 : pagination.from);
|
|
@@ -140,7 +183,19 @@ var Table = function Table(_ref) {
|
|
|
140
183
|
setCurrentPage(pagination === null || pagination === void 0 ? void 0 : pagination.currentPage);
|
|
141
184
|
setRowsPerPage(pagination === null || pagination === void 0 ? void 0 : pagination.rowsPerPage);
|
|
142
185
|
}
|
|
143
|
-
}, [
|
|
186
|
+
}, [remoteOperations, pagination, rows]);
|
|
187
|
+
/**
|
|
188
|
+
* Sets number of rows to display when accordion.
|
|
189
|
+
*/
|
|
190
|
+
|
|
191
|
+
React.useEffect(function () {
|
|
192
|
+
if (!accordion) return;
|
|
193
|
+
setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);
|
|
194
|
+
}, [rows, accordion, collapsedRows, isCollapsed]);
|
|
195
|
+
React.useEffect(function () {
|
|
196
|
+
if (!accordion) return;
|
|
197
|
+
setIsCollapsed(!!collapsed);
|
|
198
|
+
}, [accordion, collapsed]);
|
|
144
199
|
/**
|
|
145
200
|
* Filters out a rows by specific column filters and sorts them if any sorting is set.
|
|
146
201
|
* @returns Filtered and sorted rows.
|
|
@@ -224,8 +279,8 @@ var Table = function Table(_ref) {
|
|
|
224
279
|
setSortedColumn(column.key);
|
|
225
280
|
setSortedDirection('desc'); // Let's trigger remote sorting trigger function
|
|
226
281
|
|
|
227
|
-
if (
|
|
228
|
-
|
|
282
|
+
if (remoteOperations && onTriggerSortingChange) {
|
|
283
|
+
onTriggerSortingChange(column.key, 'desc');
|
|
229
284
|
}
|
|
230
285
|
} else {
|
|
231
286
|
tmpColumn.sortingDirection = 'asc'; // Update sorted column and direction
|
|
@@ -233,8 +288,8 @@ var Table = function Table(_ref) {
|
|
|
233
288
|
setSortedColumn(column.key);
|
|
234
289
|
setSortedDirection('asc'); // Let's trigger remote sorting trigger function
|
|
235
290
|
|
|
236
|
-
if (
|
|
237
|
-
|
|
291
|
+
if (remoteOperations && onTriggerSortingChange) {
|
|
292
|
+
onTriggerSortingChange(column.key, 'asc');
|
|
238
293
|
}
|
|
239
294
|
}
|
|
240
295
|
} else {
|
|
@@ -244,8 +299,8 @@ var Table = function Table(_ref) {
|
|
|
244
299
|
setSortedColumn(column.key);
|
|
245
300
|
setSortedDirection('asc'); // Let's trigger remote sorting trigger function
|
|
246
301
|
|
|
247
|
-
if (
|
|
248
|
-
|
|
302
|
+
if (remoteOperations && onTriggerSortingChange) {
|
|
303
|
+
onTriggerSortingChange(column.key, 'asc');
|
|
249
304
|
}
|
|
250
305
|
}
|
|
251
306
|
} else if (tmpColumn.sortingDirection !== undefined) {
|
|
@@ -262,10 +317,10 @@ var Table = function Table(_ref) {
|
|
|
262
317
|
|
|
263
318
|
|
|
264
319
|
var previousPage = function previousPage() {
|
|
265
|
-
if (
|
|
320
|
+
if (remoteOperations) {
|
|
266
321
|
// Let's inform parent component about page change
|
|
267
|
-
if (
|
|
268
|
-
|
|
322
|
+
if (onPreviousPageClick) {
|
|
323
|
+
onPreviousPageClick();
|
|
269
324
|
}
|
|
270
325
|
} else {
|
|
271
326
|
// Let's change the page within the component
|
|
@@ -278,10 +333,10 @@ var Table = function Table(_ref) {
|
|
|
278
333
|
|
|
279
334
|
|
|
280
335
|
var nextPage = function nextPage() {
|
|
281
|
-
if (
|
|
336
|
+
if (remoteOperations) {
|
|
282
337
|
// Let's inform parent component about page change
|
|
283
|
-
if (
|
|
284
|
-
|
|
338
|
+
if (onNextPageClick) {
|
|
339
|
+
onNextPageClick();
|
|
285
340
|
}
|
|
286
341
|
} else {
|
|
287
342
|
// Let's change the page within the component
|
|
@@ -296,10 +351,10 @@ var Table = function Table(_ref) {
|
|
|
296
351
|
|
|
297
352
|
var changeRowsPerPage = function changeRowsPerPage(value) {
|
|
298
353
|
// Let's check if we are using remote pagination
|
|
299
|
-
if (
|
|
354
|
+
if (remoteOperations) {
|
|
300
355
|
// Inform parent component about rows per page change
|
|
301
|
-
if (
|
|
302
|
-
|
|
356
|
+
if (onRowsPerPageChange) {
|
|
357
|
+
onRowsPerPageChange(value);
|
|
303
358
|
}
|
|
304
359
|
} else {
|
|
305
360
|
// Let's reset current page to 1
|
|
@@ -307,67 +362,7 @@ var Table = function Table(_ref) {
|
|
|
307
362
|
} // Let's set rows per page
|
|
308
363
|
|
|
309
364
|
|
|
310
|
-
setRowsPerPage(
|
|
311
|
-
};
|
|
312
|
-
/**
|
|
313
|
-
* Renders the table header.
|
|
314
|
-
*/
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
var renderHeader = function renderHeader() {
|
|
318
|
-
return /*#__PURE__*/React.createElement("thead", null, title && /*#__PURE__*/React.createElement("tr", {
|
|
319
|
-
"data-testid": "TestTableHeaderRow"
|
|
320
|
-
}, /*#__PURE__*/React.createElement(_TableStyles.TableHeaderRowCol, {
|
|
321
|
-
colSpan: columns.length
|
|
322
|
-
}, /*#__PURE__*/React.createElement("div", null, title, /*#__PURE__*/React.createElement(_SystemIcons.MoreVertical, {
|
|
323
|
-
size: "18px",
|
|
324
|
-
color: _styles.COLORS.neutral_600
|
|
325
|
-
})))), /*#__PURE__*/React.createElement("tr", {
|
|
326
|
-
"data-testid": "TestTableColumnHeaderRow"
|
|
327
|
-
}, columns.map(function (column) {
|
|
328
|
-
return /*#__PURE__*/React.createElement(_TableStyles.TableColumnHeaderCol, {
|
|
329
|
-
onClick: function onClick() {
|
|
330
|
-
return sortTableColumn(column);
|
|
331
|
-
},
|
|
332
|
-
key: column.key,
|
|
333
|
-
style: {
|
|
334
|
-
width: column.width
|
|
335
|
-
},
|
|
336
|
-
className: "".concat(column.sortable ? 'sortable' : '', " ").concat(!title ? 'no-border' : '', " ").concat(column.justify ? "justify-".concat(column.justify) : '')
|
|
337
|
-
}, column.name, column.sortingDirection === 'asc' ? /*#__PURE__*/React.createElement(_SystemIcons.ArrowLineUp, {
|
|
338
|
-
size: "20px"
|
|
339
|
-
}) : column.sortingDirection === 'desc' ? /*#__PURE__*/React.createElement(_SystemIcons.ArrowLineDown, {
|
|
340
|
-
size: "20px"
|
|
341
|
-
}) : '');
|
|
342
|
-
})));
|
|
343
|
-
};
|
|
344
|
-
/**
|
|
345
|
-
* Function which is called when a mouse click happens on a link to pass data to the parent component.
|
|
346
|
-
* @param row - Row in which the link is located.
|
|
347
|
-
* @param key - Key of the column for which the link is set.
|
|
348
|
-
* @param event - Click event handler.
|
|
349
|
-
*/
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
var onLinkClick = function onLinkClick(row, key, event) {
|
|
353
|
-
if (linkClick) {
|
|
354
|
-
event.stopPropagation();
|
|
355
|
-
linkClick(row, key);
|
|
356
|
-
}
|
|
357
|
-
};
|
|
358
|
-
/**
|
|
359
|
-
* Function which is called when a mouse click happens on an icon to pass data to the parent component.
|
|
360
|
-
* @param row - Row in which the icon is located.
|
|
361
|
-
* @param key - Key of the column for which the icon is set.
|
|
362
|
-
* @param event - Click event handler.
|
|
363
|
-
*/
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
var onIconClick = function onIconClick(row, key, event) {
|
|
367
|
-
if (iconClick) {
|
|
368
|
-
event.stopPropagation();
|
|
369
|
-
iconClick(row, key);
|
|
370
|
-
}
|
|
365
|
+
setRowsPerPage(value);
|
|
371
366
|
};
|
|
372
367
|
/**
|
|
373
368
|
* Function which is called when a mouse click happens on a row to pass data to the parent component.
|
|
@@ -378,125 +373,87 @@ var Table = function Table(_ref) {
|
|
|
378
373
|
var onRowClick = function onRowClick(row) {
|
|
379
374
|
var _window, _window$getSelection;
|
|
380
375
|
|
|
381
|
-
var selectedText = (_window = window) === null || _window === void 0 ? void 0 : (_window$getSelection = _window.getSelection()) === null || _window$getSelection === void 0 ? void 0 : _window$getSelection.toString();
|
|
376
|
+
var selectedText = (_window = window) === null || _window === void 0 ? void 0 : (_window$getSelection = _window.getSelection()) === null || _window$getSelection === void 0 ? void 0 : _window$getSelection.toString();
|
|
382
377
|
|
|
383
|
-
if ((selectedText === null || selectedText === void 0 ? void 0 : selectedText.length) === 0 &&
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
};
|
|
387
|
-
/**
|
|
388
|
-
* Renders the table body.
|
|
389
|
-
*/
|
|
378
|
+
if ((selectedText === null || selectedText === void 0 ? void 0 : selectedText.length) === 0 && selectable) {
|
|
379
|
+
var value = keyExpr ? row[keyExpr] : row;
|
|
380
|
+
var currentSelection = value;
|
|
390
381
|
|
|
382
|
+
if (!!multiSelect) {
|
|
383
|
+
var existing = selected === null || selected === void 0 ? void 0 : selected.indexOf(value);
|
|
391
384
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
style: column.colorFn ? {
|
|
404
|
-
color: column.colorFn(row, column.key),
|
|
405
|
-
maxWidth: column.width
|
|
406
|
-
} : {
|
|
407
|
-
maxWidth: column.width
|
|
408
|
-
},
|
|
409
|
-
className: "".concat(column.shortenText && "truncate-text", " ").concat(column.justify ? "justify-".concat(column.justify) : '', " "),
|
|
410
|
-
title: column.shortenText && row[column.key]
|
|
411
|
-
}, column.isLink && row[column.key] ? /*#__PURE__*/React.createElement(_index3.Button, {
|
|
412
|
-
size: _types.Size.Small,
|
|
413
|
-
variant: "tertiary",
|
|
414
|
-
onClick: function onClick(event) {
|
|
415
|
-
return onLinkClick(row, column.key, event);
|
|
416
|
-
},
|
|
417
|
-
style: column.colorFn && {
|
|
418
|
-
color: column.colorFn(row, column.key)
|
|
419
|
-
}
|
|
420
|
-
}, row[column.key]) : column.isIcon && column.icon ? /*#__PURE__*/React.createElement(_index3.IconButton, {
|
|
421
|
-
variant: "secondary",
|
|
422
|
-
shape: "circular",
|
|
423
|
-
useTransparentBackground: true,
|
|
424
|
-
action: function action(event) {
|
|
425
|
-
return onIconClick(row, column.key, event);
|
|
426
|
-
}
|
|
427
|
-
}, _index.SystemIcons[column.icon]({
|
|
428
|
-
size: '24',
|
|
429
|
-
className: 'icon'
|
|
430
|
-
})) : column.customContent ? column.customContent(row, column.key) : row[column.key]);
|
|
431
|
-
}));
|
|
432
|
-
}) : /*#__PURE__*/React.createElement(_TableStyles.TableDataRow, {
|
|
433
|
-
className: "no-rows",
|
|
434
|
-
"data-testid": "TestTableNoDataRow"
|
|
435
|
-
}, /*#__PURE__*/React.createElement(_TableStyles.TableDataCol, {
|
|
436
|
-
colSpan: columns.length,
|
|
437
|
-
className: "center"
|
|
438
|
-
}, "There are no rows to display")));
|
|
385
|
+
if (existing > -1) {
|
|
386
|
+
currentSelection = _toConsumableArray(selected);
|
|
387
|
+
currentSelection.splice(existing, 1);
|
|
388
|
+
} else {
|
|
389
|
+
currentSelection = [].concat(_toConsumableArray(selected), [currentSelection]);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
setSelected(currentSelection);
|
|
394
|
+
props.onSelectionChange && props.onSelectionChange(currentSelection);
|
|
395
|
+
}
|
|
439
396
|
};
|
|
440
397
|
/**
|
|
441
|
-
*
|
|
398
|
+
* Function which is called when user clicks checkbox to select or deselect all rows.
|
|
442
399
|
*/
|
|
443
400
|
|
|
444
401
|
|
|
445
|
-
var
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
shape: "circular",
|
|
471
|
-
action: function action() {
|
|
472
|
-
return previousPage();
|
|
473
|
-
},
|
|
474
|
-
disabled: from === 1
|
|
475
|
-
}, /*#__PURE__*/React.createElement(_SystemIcons.ChevronLeft, {
|
|
476
|
-
size: "24",
|
|
477
|
-
color: _styles.COLORS.neutral_600
|
|
478
|
-
})), /*#__PURE__*/React.createElement(_index3.IconButton, {
|
|
479
|
-
variant: "secondary",
|
|
480
|
-
shape: "circular",
|
|
481
|
-
action: function action() {
|
|
482
|
-
return nextPage();
|
|
483
|
-
},
|
|
484
|
-
disabled: to === total
|
|
485
|
-
}, /*#__PURE__*/React.createElement(_SystemIcons.ChevronRight, {
|
|
486
|
-
size: "24",
|
|
487
|
-
color: _styles.COLORS.neutral_600
|
|
488
|
-
})))))));
|
|
402
|
+
var onSelectAllClick = function onSelectAllClick() {
|
|
403
|
+
var currentList = currentPageRows.map(function (row) {
|
|
404
|
+
return keyExpr ? row[keyExpr] : row;
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
switch (selectAllState) {
|
|
408
|
+
case 'all':
|
|
409
|
+
setSelected(_toConsumableArray(selected).filter(function (item) {
|
|
410
|
+
return !currentList.includes(item);
|
|
411
|
+
}));
|
|
412
|
+
setSelectAllState('none');
|
|
413
|
+
break;
|
|
414
|
+
|
|
415
|
+
case 'none':
|
|
416
|
+
setSelected([].concat(_toConsumableArray(selected), _toConsumableArray(currentList)));
|
|
417
|
+
setSelectAllState('all');
|
|
418
|
+
break;
|
|
419
|
+
|
|
420
|
+
case 'some':
|
|
421
|
+
setSelected([].concat(_toConsumableArray(selected), _toConsumableArray(currentList.filter(function (item) {
|
|
422
|
+
return !selected.includes(item);
|
|
423
|
+
}))));
|
|
424
|
+
setSelectAllState('all');
|
|
425
|
+
break;
|
|
426
|
+
}
|
|
489
427
|
};
|
|
490
428
|
/**
|
|
491
429
|
* Return Table component.
|
|
492
430
|
*/
|
|
493
431
|
|
|
494
432
|
|
|
495
|
-
return /*#__PURE__*/React.createElement(_TableStyles.TableWrapper, null, /*#__PURE__*/React.createElement(_TableStyles.
|
|
433
|
+
return /*#__PURE__*/React.createElement(_TableStyles.TableWrapper, null, /*#__PURE__*/React.createElement(_TableStyles.StyledTable, {
|
|
496
434
|
cellPadding: "0",
|
|
497
435
|
cellSpacing: "0",
|
|
498
|
-
"data-testid": "TestTable"
|
|
499
|
-
|
|
436
|
+
"data-testid": "TestTable",
|
|
437
|
+
className: 'table'
|
|
438
|
+
}, /*#__PURE__*/React.createElement(_TableHeaders.default, _extends({}, props, {
|
|
439
|
+
sortByColumn: sortTableColumn,
|
|
440
|
+
onSelectAllClick: onSelectAllClick,
|
|
441
|
+
selectAllState: selectAllState
|
|
442
|
+
})), /*#__PURE__*/React.createElement(_TableBody.default, _extends({}, props, {
|
|
443
|
+
currentPageRows: currentPageRows,
|
|
444
|
+
selected: selected,
|
|
445
|
+
onRowClick: onRowClick
|
|
446
|
+
})), /*#__PURE__*/React.createElement(_TableFooter.default, _extends({}, props, {
|
|
447
|
+
onRowsPerPageChange: changeRowsPerPage,
|
|
448
|
+
rowsPerPage: rowsPerPage,
|
|
449
|
+
setIsCollapsed: setIsCollapsed,
|
|
450
|
+
isCollapsed: isCollapsed,
|
|
451
|
+
from: from,
|
|
452
|
+
to: to,
|
|
453
|
+
total: total,
|
|
454
|
+
nextPage: nextPage,
|
|
455
|
+
prevPage: previousPage
|
|
456
|
+
}))), showLoadingIndicator && /*#__PURE__*/React.createElement(_TableStyles.StyledTableSpinner, null, /*#__PURE__*/React.createElement(_LoadingIndicator.LoadingIndicator, {
|
|
500
457
|
size: _types.Size.Medium,
|
|
501
458
|
color: "#ffffff"
|
|
502
459
|
})));
|