@laerdal/life-react-components 1.3.2-dev.6.full → 1.3.2-dev.7

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.
Files changed (75) hide show
  1. package/dist/esm/Button/Iconbutton.js +0 -1
  2. package/dist/esm/Button/Iconbutton.js.map +1 -1
  3. package/dist/esm/Dropdown/DropdownButton.js +5 -2
  4. package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
  5. package/dist/esm/Dropdown/DropdownFilter.js.map +1 -1
  6. package/dist/esm/HyperLink/HyperLink.js +2 -1
  7. package/dist/esm/HyperLink/HyperLink.js.map +1 -1
  8. package/dist/esm/InputFields/Checkbox.js +23 -13
  9. package/dist/esm/InputFields/Checkbox.js.map +1 -1
  10. package/dist/esm/Table/Table.js +115 -181
  11. package/dist/esm/Table/Table.js.map +1 -1
  12. package/dist/esm/Table/TableBody.js +145 -0
  13. package/dist/esm/Table/TableBody.js.map +1 -0
  14. package/dist/esm/Table/TableFooter.js +67 -0
  15. package/dist/esm/Table/TableFooter.js.map +1 -0
  16. package/dist/esm/Table/TableHeaders.js +66 -0
  17. package/dist/esm/Table/TableHeaders.js.map +1 -0
  18. package/dist/esm/Table/TableStyles.js +175 -150
  19. package/dist/esm/Table/TableStyles.js.map +1 -1
  20. package/dist/esm/Table/__tests__/Table.test.js +0 -21
  21. package/dist/esm/Table/__tests__/Table.test.js.map +1 -1
  22. package/dist/js/Button/Iconbutton.d.ts +2 -2
  23. package/dist/js/Button/Iconbutton.js +0 -1
  24. package/dist/js/Button/Iconbutton.js.map +1 -1
  25. package/dist/js/Dropdown/DropdownButton.d.ts +1 -1
  26. package/dist/js/Dropdown/DropdownButton.js +5 -2
  27. package/dist/js/Dropdown/DropdownButton.js.map +1 -1
  28. package/dist/js/Dropdown/DropdownButtonTypes.d.ts +1 -0
  29. package/dist/js/Dropdown/DropdownFilter.d.ts +1 -1
  30. package/dist/js/Dropdown/DropdownFilter.js.map +1 -1
  31. package/dist/js/HyperLink/HyperLink.d.ts +1 -1
  32. package/dist/js/HyperLink/HyperLink.js +2 -2
  33. package/dist/js/HyperLink/HyperLink.js.map +1 -1
  34. package/dist/js/InputFields/Checkbox.d.ts +3 -2
  35. package/dist/js/InputFields/Checkbox.js +13 -11
  36. package/dist/js/InputFields/Checkbox.js.map +1 -1
  37. package/dist/js/Table/Table.js +145 -209
  38. package/dist/js/Table/Table.js.map +1 -1
  39. package/dist/js/Table/TableBody.d.ts +9 -0
  40. package/dist/js/Table/TableBody.js +176 -0
  41. package/dist/js/Table/TableBody.js.map +1 -0
  42. package/dist/js/Table/TableFooter.d.ts +13 -0
  43. package/dist/js/Table/TableFooter.js +88 -0
  44. package/dist/js/Table/TableFooter.js.map +1 -0
  45. package/dist/js/Table/TableHeaders.d.ts +9 -0
  46. package/dist/js/Table/TableHeaders.js +87 -0
  47. package/dist/js/Table/TableHeaders.js.map +1 -0
  48. package/dist/js/Table/TableStyles.d.ts +0 -7
  49. package/dist/js/Table/TableStyles.js +5 -31
  50. package/dist/js/Table/TableStyles.js.map +1 -1
  51. package/dist/js/Table/TableTypes.d.ts +23 -16
  52. package/dist/js/Table/__tests__/Table.test.js +8 -30
  53. package/dist/js/Table/__tests__/Table.test.js.map +1 -1
  54. package/dist/umd/Button/Iconbutton.js +0 -1
  55. package/dist/umd/Button/Iconbutton.js.map +1 -1
  56. package/dist/umd/Dropdown/DropdownButton.js +5 -2
  57. package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
  58. package/dist/umd/Dropdown/DropdownFilter.js.map +1 -1
  59. package/dist/umd/HyperLink/HyperLink.js +2 -1
  60. package/dist/umd/HyperLink/HyperLink.js.map +1 -1
  61. package/dist/umd/InputFields/Checkbox.js +23 -13
  62. package/dist/umd/InputFields/Checkbox.js.map +1 -1
  63. package/dist/umd/Table/Table.js +141 -188
  64. package/dist/umd/Table/Table.js.map +1 -1
  65. package/dist/umd/Table/TableBody.js +281 -0
  66. package/dist/umd/Table/TableBody.js.map +1 -0
  67. package/dist/umd/Table/TableFooter.js +90 -0
  68. package/dist/umd/Table/TableFooter.js.map +1 -0
  69. package/dist/umd/Table/TableHeaders.js +103 -0
  70. package/dist/umd/Table/TableHeaders.js.map +1 -0
  71. package/dist/umd/Table/TableStyles.js +179 -155
  72. package/dist/umd/Table/TableStyles.js.map +1 -1
  73. package/dist/umd/Table/__tests__/Table.test.js +0 -21
  74. package/dist/umd/Table/__tests__/Table.test.js.map +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _Button = require("../Button");
13
+
14
+ var _types = require("../types");
15
+
16
+ var React = _interopRequireWildcard(require("react"));
17
+
18
+ var _InputFields = require("../InputFields");
19
+
20
+ var _Iconbutton = _interopRequireDefault(require("../Button/Iconbutton"));
21
+
22
+ var _HyperLink = require("../HyperLink");
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
35
+
36
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
37
+
38
+ var TableBody = function TableBody(props) {
39
+ var renderCellBody = function renderCellBody(column, row) {
40
+ switch (column.type) {
41
+ case 'link':
42
+ {
43
+ var _props = _objectSpread({
44
+ variant: 'default',
45
+ href: ''
46
+ }, column.additionalProps);
47
+
48
+ return /*#__PURE__*/React.createElement(_HyperLink.HyperLink, _extends({
49
+ style: column.colorFn && {
50
+ color: column.colorFn(row, column.key)
51
+ }
52
+ }, _props, {
53
+ onClick: function onClick(e) {
54
+ e.preventDefault();
55
+ e.stopPropagation();
56
+ column.action && column.action(row, e);
57
+ }
58
+ }), row[column.key]);
59
+ }
60
+
61
+ case 'icon':
62
+ {
63
+ var _props2 = _objectSpread({
64
+ iconColor: column.colorFn && column.colorFn(row, column.key),
65
+ variant: 'secondary',
66
+ shape: 'circular',
67
+ useTransparentBackground: true
68
+ }, column.additionalProps);
69
+
70
+ return /*#__PURE__*/React.createElement(_Iconbutton.default, _extends({}, _props2, {
71
+ action: function action(e) {
72
+ e === null || e === void 0 ? void 0 : e.stopPropagation();
73
+ column.action && column.action(row, e);
74
+ }
75
+ }), column.icon);
76
+ }
77
+
78
+ case 'button':
79
+ {
80
+ var _props3 = _objectSpread({
81
+ variant: 'tertiary',
82
+ size: _types.Size.Small
83
+ }, column.additionalProps);
84
+
85
+ return /*#__PURE__*/React.createElement(_Button.Button, _extends({
86
+ style: column.colorFn && {
87
+ color: column.colorFn(row, column.key)
88
+ }
89
+ }, _props3, {
90
+ onClick: function onClick(e) {
91
+ e === null || e === void 0 ? void 0 : e.stopPropagation();
92
+ column.action && column.action(row, e);
93
+ }
94
+ }), row[column.key]);
95
+ }
96
+
97
+ case 'boolean':
98
+ return /*#__PURE__*/React.createElement(_InputFields.Checkbox, {
99
+ selected: !!row[column.key],
100
+ readonly: true
101
+ });
102
+
103
+ case 'custom':
104
+ return column.customContent && column.customContent(row, column.key);
105
+
106
+ case 'number':
107
+ case 'text':
108
+ default:
109
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
110
+ className: 'table-cell-icon'
111
+ }, column.icon), /*#__PURE__*/React.createElement("span", null, row[column.key]));
112
+ }
113
+ };
114
+
115
+ return /*#__PURE__*/React.createElement("tbody", {
116
+ className: 'table-body'
117
+ }, props.currentPageRows.length > 0 ? props.currentPageRows.map(function (row, index) {
118
+ var _props$selected;
119
+
120
+ return /*#__PURE__*/React.createElement("tr", {
121
+ key: "row_".concat(index),
122
+ className: 'table-row'.concat(props.selectable ? ' selectable' : ''),
123
+ onClick: function onClick() {
124
+ return props.onRowClick && props.onRowClick(row);
125
+ },
126
+ onMouseDown: function onMouseDown(event) {
127
+ return event.preventDefault();
128
+ },
129
+ onKeyPress: function onKeyPress(e) {
130
+ if (e.key === 'Enter') {
131
+ props.onRowClick && props.onRowClick(row);
132
+ }
133
+ },
134
+ tabIndex: props.selectable ? 0 : undefined,
135
+ "data-testid": "TestTableDataRow"
136
+ }, props.multiSelect && /*#__PURE__*/React.createElement("td", {
137
+ className: 'table-cell'
138
+ }, /*#__PURE__*/React.createElement("div", {
139
+ className: 'table-cell-content'
140
+ }, /*#__PURE__*/React.createElement(_InputFields.Checkbox, {
141
+ selected: ((_props$selected = props.selected) === null || _props$selected === void 0 ? void 0 : _props$selected.indexOf(props.keyExpr ? row[props.keyExpr] : row)) > -1,
142
+ readonly: true
143
+ }))), props.columns.map(function (column) {
144
+ return /*#__PURE__*/React.createElement("td", {
145
+ key: "row_".concat(index, "_").concat(column.key),
146
+ className: "table-cell",
147
+ style: column.colorFn ? {
148
+ color: column.colorFn(row, column.key),
149
+ maxWidth: column.width
150
+ } : {
151
+ maxWidth: column.width
152
+ },
153
+ title: column.shortenText && row[column.key]
154
+ }, /*#__PURE__*/React.createElement("div", {
155
+ className: "table-cell-content ".concat(column.shortenText && "truncate-text", " ").concat(column.justify)
156
+ }, renderCellBody(column, row)));
157
+ }));
158
+ }) : /*#__PURE__*/React.createElement("tr", {
159
+ className: "table-row",
160
+ "data-testid": "TestTableNoDataRow"
161
+ }, /*#__PURE__*/React.createElement("td", {
162
+ colSpan: props.columns.length + (props.multiSelect ? 1 : 0),
163
+ className: "table-cell"
164
+ }, /*#__PURE__*/React.createElement("div", {
165
+ className: 'table-cell-content center'
166
+ }, "There are no rows to display"))));
167
+ };
168
+
169
+ TableBody.propTypes = {
170
+ currentPageRows: _propTypes.default.arrayOf(_propTypes.default.any).isRequired,
171
+ onRowClick: _propTypes.default.func,
172
+ selected: _propTypes.default.any
173
+ };
174
+ var _default = TableBody;
175
+ exports.default = _default;
176
+ //# sourceMappingURL=TableBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Table/TableBody.tsx"],"names":["TableBody","props","renderCellBody","column","row","type","variant","href","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Size","Small","customContent","currentPageRows","length","map","index","concat","selectable","onRowClick","event","undefined","multiSelect","selected","indexOf","keyExpr","columns","maxWidth","width","shortenText","justify"],"mappings":"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","sourcesContent":["import {TableColumn, TableProps} from './TableTypes';\nimport {Button} from '../Button';\nimport {Size} from '../types';\nimport * as React from 'react';\nimport {Checkbox} from '../InputFields';\nimport {ButtonProps} from '../Button/Button';\nimport IconButton, {IconButtonProps} from '../Button/Iconbutton';\nimport {HyperlinkProps} from '../HyperLink/HyperLink';\nimport {HyperLink} from '../HyperLink';\n\n\ninterface TableBodyProps extends TableProps {\n currentPageRows: any[];\n onRowClick?: (row: any) => void;\n selected?: any | any[];\n}\n\nconst TableBody: React.FC<TableBodyProps> = (props) => {\n\n const renderCellBody = (column: TableColumn, row: any) => {\n switch (column.type) {\n case 'link': {\n const props = ({variant: 'default', href: '', ...column.additionalProps}) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...props}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </HyperLink>\n );\n }\n case 'icon': {\n const props = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...props}\n action={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {column.icon}\n </IconButton>\n }\n case 'button': {\n const props = ({\n variant: 'tertiary',\n size: Size.Small,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...props}\n onClick={(e) => {\n e?.stopPropagation();\n column.action && column.action(row, e);\n }}>\n {row[column.key]}\n </Button>\n }\n case 'boolean':\n return <Checkbox selected={!!row[column.key]} readonly={true}/>;\n case 'custom':\n return column.customContent && column.customContent(row, column.key);\n case 'number':\n case 'text':\n default:\n return (\n <>\n <div className={'table-cell-icon'}>{column.icon}</div>\n <span>{row[column.key]}</span>\n </>\n );\n }\n }\n\n return (\n <tbody className={'table-body'}>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <tr key={`row_${index}`}\n className={'table-row'.concat(props.selectable ? ' selectable' : '')}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={(event) => event.preventDefault()}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <td className={'table-cell'}>\n <div className={'table-cell-content'}>\n <Checkbox selected={props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1} readonly={true}/>\n </div>\n </td>\n }\n {props.columns.map((column: TableColumn) => (\n <td key={`row_${index}_${column.key}`}\n className={`table-cell`}\n style={column.colorFn ? {\n color: column.colorFn(row, column.key),\n maxWidth: column.width\n } : {maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <div className={`table-cell-content ${column.shortenText && `truncate-text`} ${column.justify}`}>\n {renderCellBody(column, row)}\n </div>\n </td>\n ))}\n </tr>\n ))\n ) : (\n <tr className=\"table-row\" data-testid=\"TestTableNoDataRow\">\n <td colSpan={props.columns.length + (props.multiSelect ? 1 : 0)} className=\"table-cell\">\n <div className={'table-cell-content center'}>\n There are no rows to display\n </div>\n </td>\n </tr>\n )}\n\n </tbody>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.js"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { TableProps } from './TableTypes';
3
+ interface TableFooterProps extends TableProps {
4
+ onRowsPerPageChange: (value: number) => void;
5
+ rowsPerPage: number;
6
+ from?: number;
7
+ to?: number;
8
+ total?: number;
9
+ nextPage: () => void;
10
+ prevPage: () => void;
11
+ }
12
+ declare const TableFooter: React.FunctionComponent<TableFooterProps>;
13
+ export default TableFooter;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Dropdown = require("../Dropdown");
13
+
14
+ var _Button = require("../Button");
15
+
16
+ var _SystemIcons = require("../icons/systemicons/SystemIcons");
17
+
18
+ var _styles = require("../styles");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ var TableFooter = function TableFooter(props) {
23
+ var rowsPerPageValues = [{
24
+ label: '10'
25
+ }, {
26
+ label: '20'
27
+ }, {
28
+ label: '50'
29
+ }, {
30
+ label: '100'
31
+ }];
32
+ var dropDownText = "Rows per page: ".concat(props.rowsPerPage);
33
+ return /*#__PURE__*/_react.default.createElement("tfoot", {
34
+ className: 'table-footer'
35
+ }, /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", {
36
+ colSpan: props.columns.length + (props.multiSelect ? 1 : 0),
37
+ "data-testid": "TestTableFooterRow"
38
+ }, /*#__PURE__*/_react.default.createElement("div", {
39
+ className: 'footer-content'
40
+ }, /*#__PURE__*/_react.default.createElement(_Dropdown.DropdownFilter, {
41
+ id: "rows-per-page",
42
+ list: rowsPerPageValues,
43
+ disableSorting: true,
44
+ onSelect: function onSelect(value) {
45
+ return props.onRowsPerPageChange(+value);
46
+ },
47
+ initalValue: dropDownText,
48
+ keepInitialValue: true,
49
+ isButton: true
50
+ }), /*#__PURE__*/_react.default.createElement("span", {
51
+ className: "current-page-info"
52
+ }, props.total === 0 ? 0 : props.from, "-", props.to, " of ", props.total), /*#__PURE__*/_react.default.createElement("div", {
53
+ className: "controls"
54
+ }, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
55
+ variant: "secondary",
56
+ shape: "circular",
57
+ action: function action() {
58
+ return props.prevPage();
59
+ },
60
+ disabled: props.from === 1
61
+ }, /*#__PURE__*/_react.default.createElement(_SystemIcons.ChevronLeft, {
62
+ size: "24",
63
+ color: _styles.COLORS.neutral_600
64
+ })), /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
65
+ variant: "secondary",
66
+ shape: "circular",
67
+ action: function action() {
68
+ return props.nextPage();
69
+ },
70
+ disabled: props.to === props.total
71
+ }, /*#__PURE__*/_react.default.createElement(_SystemIcons.ChevronRight, {
72
+ size: "24",
73
+ color: _styles.COLORS.neutral_600
74
+ })))))));
75
+ };
76
+
77
+ TableFooter.propTypes = {
78
+ onRowsPerPageChange: _propTypes.default.func.isRequired,
79
+ rowsPerPage: _propTypes.default.number.isRequired,
80
+ from: _propTypes.default.number,
81
+ to: _propTypes.default.number,
82
+ total: _propTypes.default.number,
83
+ nextPage: _propTypes.default.func.isRequired,
84
+ prevPage: _propTypes.default.func.isRequired
85
+ };
86
+ var _default = TableFooter;
87
+ exports.default = _default;
88
+ //# sourceMappingURL=TableFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Table/TableFooter.tsx"],"names":["TableFooter","props","rowsPerPageValues","label","dropDownText","rowsPerPage","columns","length","multiSelect","value","onRowsPerPageChange","total","from","to","prevPage","COLORS","neutral_600","nextPage"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;AAcA,IAAMA,WAAsD,GAAG,SAAzDA,WAAyD,CAACC,KAAD,EAAW;AACxE,MAAMC,iBAAuC,GAAG,CAAC;AAACC,IAAAA,KAAK,EAAE;AAAR,GAAD,EAAgB;AAACA,IAAAA,KAAK,EAAE;AAAR,GAAhB,EAA+B;AAACA,IAAAA,KAAK,EAAE;AAAR,GAA/B,EAA8C;AAACA,IAAAA,KAAK,EAAE;AAAR,GAA9C,CAAhD;AAEA,MAAMC,YAAY,4BAAqBH,KAAK,CAACI,WAA3B,CAAlB;AAEA,sBACE;AAAO,IAAA,SAAS,EAAE;AAAlB,kBACA,sDACE;AAAI,IAAA,OAAO,EAAEJ,KAAK,CAACK,OAAN,CAAcC,MAAd,IAAwBN,KAAK,CAACO,WAAN,GAAoB,CAApB,GAAwB,CAAhD,CAAb;AAAiE,mBAAY;AAA7E,kBACE;AAAK,IAAA,SAAS,EAAE;AAAhB,kBACE,6BAAC,wBAAD;AACE,IAAA,EAAE,EAAC,eADL;AAEE,IAAA,IAAI,EAAEN,iBAFR;AAGE,IAAA,cAAc,EAAE,IAHlB;AAIE,IAAA,QAAQ,EAAE,kBAACO,KAAD;AAAA,aAAWR,KAAK,CAACS,mBAAN,CAA0B,CAACD,KAA3B,CAAX;AAAA,KAJZ;AAKE,IAAA,WAAW,EAAEL,YALf;AAME,IAAA,gBAAgB,EAAE,IANpB;AAOE,IAAA,QAAQ,EAAE;AAPZ,IADF,eAUE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACKH,KAAK,CAACU,KAAN,KAAgB,CAAhB,GAAoB,CAApB,GAAwBV,KAAK,CAACW,IADnC,OAC0CX,KAAK,CAACY,EADhD,UACwDZ,KAAK,CAACU,KAD9D,CAVF,eAaE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,6BAAC,kBAAD;AAAY,IAAA,OAAO,EAAC,WAApB;AAAgC,IAAA,KAAK,EAAC,UAAtC;AAAiD,IAAA,MAAM,EAAE;AAAA,aAAMV,KAAK,CAACa,QAAN,EAAN;AAAA,KAAzD;AACY,IAAA,QAAQ,EAAEb,KAAK,CAACW,IAAN,KAAe;AADrC,kBAEE,6BAAC,wBAAD;AAAa,IAAA,IAAI,EAAC,IAAlB;AAAuB,IAAA,KAAK,EAAEG,eAAOC;AAArC,IAFF,CADF,eAKE,6BAAC,kBAAD;AAAY,IAAA,OAAO,EAAC,WAApB;AAAgC,IAAA,KAAK,EAAC,UAAtC;AAAiD,IAAA,MAAM,EAAE;AAAA,aAAMf,KAAK,CAACgB,QAAN,EAAN;AAAA,KAAzD;AACY,IAAA,QAAQ,EAAEhB,KAAK,CAACY,EAAN,KAAaZ,KAAK,CAACU;AADzC,kBAEE,6BAAC,yBAAD;AAAc,IAAA,IAAI,EAAC,IAAnB;AAAwB,IAAA,KAAK,EAAEI,eAAOC;AAAtC,IAFF,CALF,CAbF,CADF,CADF,CADA,CADF;AAgCD,CArCD;;;AATEN,EAAAA,mB;AACAL,EAAAA,W;AACAO,EAAAA,I;AACAC,EAAAA,E;AACAF,EAAAA,K;AACAM,EAAAA,Q;AACAH,EAAAA,Q;;eA2Cad,W","sourcesContent":["import React from 'react';\nimport {TableProps} from './TableTypes';\nimport {DropdownFilter} from '../Dropdown';\nimport {IconButton} from '../Button';\nimport {ChevronLeft, ChevronRight} from '../icons/systemicons/SystemIcons';\nimport {COLORS} from '../styles';\nimport {DropdownFilterItem} from '../Dropdown/DropdownFilter';\n\n\ninterface TableFooterProps extends TableProps {\n onRowsPerPageChange: (value: number) => void;\n rowsPerPage: number;\n from?: number;\n to?: number;\n total?: number;\n nextPage: () => void;\n prevPage: () => void;\n}\n\nconst TableFooter: React.FunctionComponent<TableFooterProps> = (props) => {\n const rowsPerPageValues: DropdownFilterItem[] = [{label: '10'}, {label: '20'}, {label: '50'}, {label: '100'}];\n\n const dropDownText = `Rows per page: ${props.rowsPerPage}`;\n\n return (\n <tfoot className={'table-footer'}>\n <tr>\n <td colSpan={props.columns.length + (props.multiSelect ? 1 : 0)} data-testid=\"TestTableFooterRow\">\n <div className={'footer-content'}>\n <DropdownFilter\n id=\"rows-per-page\"\n list={rowsPerPageValues}\n disableSorting={true}\n onSelect={(value) => props.onRowsPerPageChange(+value)}\n initalValue={dropDownText}\n keepInitialValue={true}\n isButton={true}\n />\n <span className=\"current-page-info\">\n {props.total === 0 ? 0 : props.from}-{props.to} of {props.total}\n </span>\n <div className=\"controls\">\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.prevPage()}\n disabled={props.from === 1}>\n <ChevronLeft size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.nextPage()}\n disabled={props.to === props.total}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n </div>\n </div>\n </td>\n </tr>\n </tfoot>\n );\n};\n\n\nexport default TableFooter;\n"],"file":"TableFooter.js"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { TableColumn, TableProps } from './TableTypes';
3
+ interface TableHeaderProps extends TableProps {
4
+ sortByColumn: (column: TableColumn) => void;
5
+ onSelectAllClick: () => void;
6
+ selectAllState: 'all' | 'some' | 'none';
7
+ }
8
+ declare const TableHeader: React.FunctionComponent<TableHeaderProps>;
9
+ export default TableHeader;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _SystemIcons = require("../icons/systemicons/SystemIcons");
13
+
14
+ var _Dropdown = require("../Dropdown");
15
+
16
+ var _icons = require("../icons");
17
+
18
+ var _types = require("../types");
19
+
20
+ var _InputFields = require("../InputFields");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ 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); }
25
+
26
+ var TableHeader = function TableHeader(props) {
27
+ return /*#__PURE__*/_react.default.createElement("thead", {
28
+ className: 'table-header'
29
+ }, !!props.title && /*#__PURE__*/_react.default.createElement("tr", {
30
+ className: 'table-header-title',
31
+ "data-testid": "TestTableHeaderRow"
32
+ }, /*#__PURE__*/_react.default.createElement("th", {
33
+ colSpan: props.columns.length + (props.multiSelect ? 1 : 0)
34
+ }, /*#__PURE__*/_react.default.createElement("div", {
35
+ className: 'title-content'
36
+ }, /*#__PURE__*/_react.default.createElement("span", null, props.title), props.menu && /*#__PURE__*/_react.default.createElement(_Dropdown.DropdownButton, _extends({
37
+ className: 'title-menu',
38
+ icon: /*#__PURE__*/_react.default.createElement(_icons.SystemIcons.MoreVertical, null),
39
+ size: _types.Size.Medium
40
+ }, props.menu))))), /*#__PURE__*/_react.default.createElement("tr", {
41
+ className: 'table-header-columns',
42
+ "data-testid": "TestTableColumnHeaderRow"
43
+ }, props.multiSelect && /*#__PURE__*/_react.default.createElement("th", {
44
+ className: 'table-header-column'
45
+ }, /*#__PURE__*/_react.default.createElement("div", {
46
+ className: 'header-content'
47
+ }, /*#__PURE__*/_react.default.createElement(_InputFields.Checkbox, {
48
+ selected: props.selectAllState === 'all',
49
+ semiSelected: props.selectAllState === 'some',
50
+ select: props.onSelectAllClick
51
+ }))), props.columns.map(function (column) {
52
+ return /*#__PURE__*/_react.default.createElement("th", {
53
+ key: column.key,
54
+ onMouseDown: function onMouseDown(e) {
55
+ return e.preventDefault();
56
+ },
57
+ onClick: function onClick(e) {
58
+ return props.sortByColumn(column);
59
+ },
60
+ onKeyPress: function onKeyPress(e) {
61
+ if (e.key === 'Enter') {
62
+ props.sortByColumn(column);
63
+ }
64
+ },
65
+ style: {
66
+ width: column.width
67
+ },
68
+ tabIndex: column.sortable ? 0 : -1,
69
+ className: "table-header-column ".concat(column.sortable ? 'sortable' : '', " ").concat(!!column.sortable && !!column.sortingDirection ? 'sorted' : '')
70
+ }, /*#__PURE__*/_react.default.createElement("div", {
71
+ className: 'header-content'
72
+ }, /*#__PURE__*/_react.default.createElement("span", null, column.name), column.sortable && (column.sortingDirection === 'asc' ? /*#__PURE__*/_react.default.createElement(_SystemIcons.ArrowLineUp, {
73
+ size: '24px'
74
+ }) : /*#__PURE__*/_react.default.createElement(_SystemIcons.ArrowLineDown, {
75
+ size: '24px'
76
+ }))));
77
+ })));
78
+ };
79
+
80
+ TableHeader.propTypes = {
81
+ sortByColumn: _propTypes.default.func.isRequired,
82
+ onSelectAllClick: _propTypes.default.func.isRequired,
83
+ selectAllState: _propTypes.default.oneOf(['all', 'some', 'none']).isRequired
84
+ };
85
+ var _default = TableHeader;
86
+ exports.default = _default;
87
+ //# sourceMappingURL=TableHeaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/Table/TableHeaders.tsx"],"names":["TableHeader","props","title","columns","length","multiSelect","menu","Size","Medium","selectAllState","onSelectAllClick","map","column","key","e","preventDefault","sortByColumn","width","sortable","sortingDirection","name"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;AASA,IAAMA,WAAsD,GAAG,SAAzDA,WAAyD,CAAAC,KAAK,EAAI;AAEtE,sBACE;AAAO,IAAA,SAAS,EAAE;AAAlB,KAEE,CAAC,CAACA,KAAK,CAACC,KAAR,iBACA;AAAI,IAAA,SAAS,EAAE,oBAAf;AAAqC,mBAAY;AAAjD,kBACE;AAAI,IAAA,OAAO,EAAED,KAAK,CAACE,OAAN,CAAcC,MAAd,IAAwBH,KAAK,CAACI,WAAN,GAAoB,CAApB,GAAwB,CAAhD;AAAb,kBACE;AAAK,IAAA,SAAS,EAAE;AAAhB,kBACE,2CAAOJ,KAAK,CAACC,KAAb,CADF,EAGID,KAAK,CAACK,IAAN,iBACA,6BAAC,wBAAD;AAAgB,IAAA,SAAS,EAAE,YAA3B;AAAyC,IAAA,IAAI,eAAE,6BAAC,kBAAD,CAAa,YAAb,OAA/C;AACgB,IAAA,IAAI,EAAEC,YAAKC;AAD3B,KACuCP,KAAK,CAACK,IAD7C,EAJJ,CADF,CADF,CAHF,eAgBA;AAAI,IAAA,SAAS,EAAE,sBAAf;AAAuC,mBAAY;AAAnD,KAEIL,KAAK,CAACI,WAAN,iBACA;AAAI,IAAA,SAAS,EAAE;AAAf,kBACE;AAAK,IAAA,SAAS,EAAE;AAAhB,kBACE,6BAAC,qBAAD;AAAU,IAAA,QAAQ,EAAEJ,KAAK,CAACQ,cAAN,KAAyB,KAA7C;AACU,IAAA,YAAY,EAAER,KAAK,CAACQ,cAAN,KAAyB,MADjD;AAEU,IAAA,MAAM,EAAER,KAAK,CAACS;AAFxB,IADF,CADF,CAHJ,EAWGT,KAAK,CAACE,OAAN,CAAcQ,GAAd,CAAkB,UAACC,MAAD;AAAA,wBACjB;AAAI,MAAA,GAAG,EAAEA,MAAM,CAACC,GAAhB;AACI,MAAA,WAAW,EAAE,qBAACC,CAAD;AAAA,eAAOA,CAAC,CAACC,cAAF,EAAP;AAAA,OADjB;AAEI,MAAA,OAAO,EAAE,iBAACD,CAAD;AAAA,eAAOb,KAAK,CAACe,YAAN,CAAmBJ,MAAnB,CAAP;AAAA,OAFb;AAGI,MAAA,UAAU,EAAE,oBAACE,CAAD,EAAO;AACjB,YAAIA,CAAC,CAACD,GAAF,KAAU,OAAd,EAAuB;AACrBZ,UAAAA,KAAK,CAACe,YAAN,CAAmBJ,MAAnB;AACD;AACF,OAPL;AAQI,MAAA,KAAK,EAAE;AAACK,QAAAA,KAAK,EAAEL,MAAM,CAACK;AAAf,OARX;AASI,MAAA,QAAQ,EAAEL,MAAM,CAACM,QAAP,GAAkB,CAAlB,GAAsB,CAAC,CATrC;AAUI,MAAA,SAAS,gCAAyBN,MAAM,CAACM,QAAP,GAAkB,UAAlB,GAA+B,EAAxD,cAA8D,CAAC,CAACN,MAAM,CAACM,QAAT,IAAqB,CAAC,CAACN,MAAM,CAACO,gBAA9B,GAAiD,QAAjD,GAA4D,EAA1H;AAVb,oBAWE;AAAK,MAAA,SAAS,EAAE;AAAhB,oBACM,2CACGP,MAAM,CAACQ,IADV,CADN,EAKIR,MAAM,CAACM,QAAP,KAEEN,MAAM,CAACO,gBAAP,KAA4B,KAA5B,gBACI,6BAAC,wBAAD;AAAa,MAAA,IAAI,EAAE;AAAnB,MADJ,gBAEI,6BAAC,0BAAD;AAAe,MAAA,IAAI,EAAE;AAArB,MAJN,CALJ,CAXF,CADiB;AAAA,GAAlB,CAXH,CAhBA,CADF;AA2DD,CA7DD;;;AALEH,EAAAA,Y;AACAN,EAAAA,gB;AACAD,EAAAA,c,4BAAgB,K,EAAQ,M,EAAS,M;;eAkEpBT,W","sourcesContent":["import React from 'react';\nimport {TableColumn, TableProps} from './TableTypes';\nimport {ArrowLineDown, ArrowLineUp} from '../icons/systemicons/SystemIcons';\nimport {DropdownButton} from '../Dropdown';\nimport {SystemIcons} from '../icons';\nimport {Size} from '../types';\nimport {Checkbox} from '../InputFields';\n\n\ninterface TableHeaderProps extends TableProps {\n sortByColumn: (column: TableColumn) => void;\n onSelectAllClick: () => void;\n selectAllState: 'all' | 'some' | 'none';\n}\n\nconst TableHeader: React.FunctionComponent<TableHeaderProps> = props => {\n\n return (\n <thead className={'table-header'}>\n {\n !!props.title &&\n <tr className={'table-header-title'} data-testid=\"TestTableHeaderRow\">\n <th colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <div className={'title-content'}>\n <span>{props.title}</span>\n {\n props.menu &&\n <DropdownButton className={'title-menu'} icon={<SystemIcons.MoreVertical/>}\n size={Size.Medium} {...props.menu}/>\n }\n </div>\n </th>\n </tr>\n }\n <tr className={'table-header-columns'} data-testid=\"TestTableColumnHeaderRow\">\n {\n props.multiSelect &&\n <th className={'table-header-column'}>\n <div className={'header-content'}>\n <Checkbox selected={props.selectAllState === 'all'}\n semiSelected={props.selectAllState === 'some'}\n select={props.onSelectAllClick}/>\n </div>\n </th>\n }\n {props.columns.map((column: TableColumn) => (\n <th key={column.key}\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => props.sortByColumn(column)}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.sortByColumn(column)\n }\n }}\n style={{width: column.width}}\n tabIndex={column.sortable ? 0 : -1}\n className={`table-header-column ${column.sortable ? 'sortable' : ''} ${!!column.sortable && !!column.sortingDirection ? 'sorted' : ''}`}>\n <div className={'header-content'}>\n <span>\n {column.name}\n </span>\n {\n column.sortable &&\n (\n column.sortingDirection === 'asc'\n ? <ArrowLineUp size={'24px'}/>\n : <ArrowLineDown size={'24px'}/>\n )\n }\n </div>\n </th>\n ))}\n </tr>\n\n </thead>\n )\n}\n\nexport default TableHeader;\n"],"file":"TableHeaders.js"}
@@ -2,10 +2,3 @@
2
2
  * Table styles
3
3
  */
4
4
  export declare const TableWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
5
- export declare const TableLoadingIndicator: import("styled-components").StyledComponent<"div", any, {}, never>;
6
- export declare const TableContainer: import("styled-components").StyledComponent<"table", any, {}, never>;
7
- export declare const TableHeaderRowCol: import("styled-components").StyledComponent<"th", any, {}, never>;
8
- export declare const TableColumnHeaderCol: import("styled-components").StyledComponent<"th", any, {}, never>;
9
- export declare const TableDataRow: import("styled-components").StyledComponent<"tr", any, {}, never>;
10
- export declare const TableDataCol: import("styled-components").StyledComponent<"td", any, {}, never>;
11
- export declare const TableFooterCol: import("styled-components").StyledComponent<"td", any, {}, never>;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TableFooterCol = exports.TableDataCol = exports.TableDataRow = exports.TableColumnHeaderCol = exports.TableHeaderRowCol = exports.TableContainer = exports.TableLoadingIndicator = exports.TableWrapper = void 0;
6
+ exports.TableWrapper = void 0;
7
7
 
8
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
9
9
 
@@ -11,7 +11,9 @@ var _styles = require("../styles");
11
11
 
12
12
  var _typography = require("../styles/typography");
13
13
 
14
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
14
+ var _zIndexes = require("../styles/z-indexes");
15
+
16
+ var _templateObject;
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
@@ -20,35 +22,7 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
20
22
  /**
21
23
  * Table styles
22
24
  */
23
- var TableWrapper = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n"])));
25
+ var TableWrapper = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n\n .table {\n\n background: transparent;\n width: 100%;\n\n .table-header {\n .table-header-title .title-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n box-sizing: border-box;\n min-height: 56px;\n border-bottom: 1px solid ", ";\n border-top: 2px solid ", ";\n padding: 0 16px;\n\n ", "\n .title-menu {\n margin-right: -16px;\n }\n }\n\n .table-header-columns {\n\n .table-header-column {\n ", "\n position: relative;\n\n background-color: ", ";\n\n //fixes header heights no idea why\n height: 1px;\n\n .header-content {\n box-sizing: border-box;\n min-height: 56px;\n padding: 0 16px;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-top: 1px solid ", ";\n border-bottom: 1px solid ", ";\n }\n\n &.sortable {\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n color: ", ";\n z-index: ", ";\n }\n\n &:active {\n background-color: ", ";\n color: ", ";\n box-shadow: none !important;\n z-index: ", ";\n }\n\n &:focus {\n outline: none;\n box-shadow: 0 4px 12px ", ", 0 0 8px ", ";\n z-index: ", ";\n }\n }\n\n &.sortable .header-content > svg {\n opacity: 0;\n }\n\n &.sortable.sorted .header-content > svg {\n opacity: 1;\n }\n }\n }\n }\n\n .table-body {\n .table-row {\n position: relative;\n\n outline: none;\n\n .table-cell {\n .table-cell-content {\n min-height: 48px;\n\n padding: 0 16px;\n ", "\n\n display: flex;\n align-items: center;\n gap: 8px;\n\n &.truncate-text,\n &.truncate-text span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.left {\n justify-content: left;\n }\n\n &.right {\n justify-content: right;\n }\n\n &.center {\n justify-content: center;\n }\n }\n\n .table-cell-icon,\n .table-cell-icon svg {\n color: ", ";\n width: 24px;\n height: 24px;\n }\n }\n }\n\n .table-row:nth-child(odd) {\n background-color: ", ";\n }\n\n .table-row:nth-child(even) {\n background-color: ", ";\n }\n\n .table-row {\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n z-index: ", ";\n }\n\n &:active {\n box-shadow: none !important;\n z-index: ", ";\n }\n\n &:focus {\n background-color: ", ";\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2E7FA1;\n z-index: ", ";\n outline: none;\n }\n }\n\n }\n\n .table-footer {\n .footer-content {\n border-top: 2px solid ", ";\n border-bottom: 1px solid ", ";\n box-sizing: border-box;\n min-height: 56px;\n\n display: flex;\n align-items: center;\n justify-content: right;\n\n .current-page-info {\n padding: 0 16px;\n ", "\n }\n\n .controls {\n display: flex;\n }\n }\n }\n\n }\n\n .table-spinner {\n height: 100%;\n width: 100%;\n position: absolute;\n background-color: rgba(0, 0, 0, 0.5);\n top: 0;\n }\n"])), _styles.COLORS.neutral_200, _styles.COLORS.neutral_200, (0, _typography.ComponentLStyling)(_typography.ComponentTextStyle.Bold, _styles.COLORS.black), (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Bold, _styles.COLORS.neutral_600), _styles.COLORS.white, _styles.COLORS.neutral_200, _styles.COLORS.neutral_200, _styles.COLORS.primary_20, _styles.COLORS.primary_700, _zIndexes.Z_INDEXES.hover, _styles.COLORS.primary_100, _styles.COLORS.primary_800, _zIndexes.Z_INDEXES.active, _styles.COLORS.focus_25, _styles.COLORS.focus, _zIndexes.Z_INDEXES.focus, (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Regular, null), _styles.COLORS.neutral_700, _styles.COLORS.neutral_100, _styles.COLORS.white, _styles.COLORS.primary_200, _zIndexes.Z_INDEXES.hover, _zIndexes.Z_INDEXES.active, _styles.COLORS.primary_200, _zIndexes.Z_INDEXES.focus, _styles.COLORS.neutral_200, _styles.COLORS.neutral_200, (0, _typography.ComponentXSStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black));
24
26
 
25
27
  exports.TableWrapper = TableWrapper;
26
-
27
- var TableLoadingIndicator = _styledComponents.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n height: 100%;\n width: 100%;\n position: absolute;\n background-color: rgba(0, 0, 0, 0.5);\n top: 0;\n"])));
28
-
29
- exports.TableLoadingIndicator = TableLoadingIndicator;
30
-
31
- var TableContainer = _styledComponents.default.table(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n background: transparent;\n width: 100%;\n border-top: 2px solid ", ";\n border-bottom: 2px solid ", ";\n"])), _styles.COLORS.neutral_200, _styles.COLORS.neutral_200);
32
-
33
- exports.TableContainer = TableContainer;
34
-
35
- var TableHeaderRowCol = _styledComponents.default.th(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n\n ", "\n padding: 16px 19px 16px 16px;\n\n div {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n cursor: pointer;\n }\n }\n"])), _styles.COLORS.neutral_20, _styles.COLORS.neutral_200, (0, _typography.ComponentLStyling)(_typography.ComponentTextStyle.Bold, _styles.COLORS.neutral_600));
36
-
37
- exports.TableHeaderRowCol = TableHeaderRowCol;
38
-
39
- var TableColumnHeaderCol = _styledComponents.default.th(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n background-color: ", ";\n border-top: 1px solid ", ";\n\n ", "\n padding: 18px 16px;\n text-align: left;\n\n &.justify-center {\n text-align: center;\n }\n\n &.justify-left {\n text-align: left;\n }\n\n &.justify-right {\n text-align: right;\n }\n\n &.no-border {\n border: none;\n }\n\n &.sortable {\n cursor: pointer;\n\n > svg {\n float: right;\n }\n\n &:hover {\n background: ", ";\n }\n\n &:focus {\n background: ", ";\n }\n }\n"])), _styles.COLORS.white, _styles.COLORS.neutral_300, (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Bold, _styles.COLORS.neutral_600), _styles.COLORS.primary_20, _styles.COLORS.primary_100);
40
-
41
- exports.TableColumnHeaderCol = TableColumnHeaderCol;
42
-
43
- var TableDataRow = _styledComponents.default.tr(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n background-color: ", ";\n\n &:nth-child(2n) {\n background-color: ", ";\n }\n\n &:hover {\n cursor: pointer;\n background-color: ", ";\n }\n\n &.no-rows:hover {\n cursor: default;\n background-color: ", ";\n }\n"])), _styles.COLORS.neutral_100, _styles.COLORS.neutral_20, _styles.COLORS.primary_200, _styles.COLORS.neutral_100);
44
-
45
- exports.TableDataRow = TableDataRow;
46
-
47
- var TableDataCol = _styledComponents.default.td(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n background: transparent;\n\n ", "\n padding: 15px 16px;\n border: none;\n\n &.truncate-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.justify-center {\n text-align: center;\n }\n\n &.justify-left {\n text-align: left;\n }\n\n &.justify-right {\n text-align: right;\n }\n\n button {\n color: ", ";\n text-decoration: none;\n\n &:hover {\n color: ", ";\n text-decoration: underline;\n }\n\n &:focus {\n text-decoration: underline;\n outline: none;\n box-shadow: 0px 4px 12px ", ", 0px 0px 8px ", " !important;\n color: ", ";\n }\n }\n\n &.center {\n text-align: center;\n }\n"])), (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black), _styles.COLORS.primary_600, _styles.COLORS.primary_700, _styles.COLORS.focus_25, _styles.COLORS.focus, _styles.COLORS.primary_700);
48
-
49
- exports.TableDataCol = TableDataCol;
50
-
51
- var TableFooterCol = _styledComponents.default.td(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n border-top: 1px solid ", ";\n padding: 3.5px 20px 3.5px 16px;\n\n > div {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n\n > div > div:first-of-type {\n ", "\n display: block;\n padding-top: 11px;\n padding-left: 2px;\n padding-right: 30px;\n }\n\n span {\n ", "\n\n &.current-page-info {\n margin-right: 34px;\n margin-left: 39px;\n }\n }\n\n .controls {\n display: flex;\n justify-content: space-between;\n }\n }\n"])), _styles.COLORS.neutral_200, (0, _typography.ComponentXSStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black), (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black));
52
-
53
- exports.TableFooterCol = TableFooterCol;
54
28
  //# sourceMappingURL=TableStyles.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Table/TableStyles.ts"],"names":["TableWrapper","styled","div","TableLoadingIndicator","TableContainer","table","COLORS","neutral_200","TableHeaderRowCol","th","neutral_20","ComponentTextStyle","Bold","neutral_600","TableColumnHeaderCol","white","neutral_300","primary_20","primary_100","TableDataRow","tr","neutral_100","primary_200","TableDataCol","td","Regular","black","primary_600","primary_700","focus_25","focus","TableFooterCol"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;;;;;;;AAEA;AACA;AACA;AAEO,IAAMA,YAAY,GAAGC,0BAAOC,GAAV,8FAAlB;;;;AAIA,IAAMC,qBAAqB,GAAGF,0BAAOC,GAAV,qLAA3B;;;;AAQA,IAAME,cAAc,GAAGH,0BAAOI,KAAV,uLAGDC,eAAOC,WAHN,EAIED,eAAOC,WAJT,CAApB;;;;AAOA,IAAMC,iBAAiB,GAAGP,0BAAOQ,EAAV,iUACRH,eAAOI,UADC,EAEDJ,eAAOC,WAFN,EAI1B,mCAAkBI,+BAAmBC,IAArC,EAA2CN,eAAOO,WAAlD,CAJ0B,CAAvB;;;;AAkBA,IAAMC,oBAAoB,GAAGb,0BAAOQ,EAAV,2jBACXH,eAAOS,KADI,EAEPT,eAAOU,WAFA,EAI7B,mCAAkBL,+BAAmBC,IAArC,EAA2CN,eAAOO,WAAlD,CAJ6B,EAgCbP,eAAOW,UAhCM,EAoCbX,eAAOY,WApCM,CAA1B;;;;AAyCA,IAAMC,YAAY,GAAGlB,0BAAOmB,EAAV,oTACHd,eAAOe,WADJ,EAIDf,eAAOI,UAJN,EASDJ,eAAOgB,WATN,EAcDhB,eAAOe,WAdN,CAAlB;;;;AAkBA,IAAME,YAAY,GAAGtB,0BAAOuB,EAAV,qwBAGrB,mCAAkBb,+BAAmBc,OAArC,EAA8CnB,eAAOoB,KAArD,CAHqB,EA0BZpB,eAAOqB,WA1BK,EA8BVrB,eAAOsB,WA9BG,EAqCQtB,eAAOuB,QArCf,EAqCwCvB,eAAOwB,KArC/C,EAsCVxB,eAAOsB,WAtCG,CAAlB;;;;AA+CA,IAAMG,cAAc,GAAG9B,0BAAOuB,EAAV,kmBACDlB,eAAOC,WADN,EAUnB,oCAAmBI,+BAAmBc,OAAtC,EAA+CnB,eAAOoB,KAAtD,CAVmB,EAkBnB,mCAAkBf,+BAAmBc,OAArC,EAA8CnB,eAAOoB,KAArD,CAlBmB,CAApB","sourcesContent":["/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom style properties.\n */\nimport { COLORS } from '../styles';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle, ComponentXSStyling } from '../styles/typography';\n\n/**\n * Table styles\n */\n\nexport const TableWrapper = styled.div`\n position: relative;\n`;\n\nexport const TableLoadingIndicator = styled.div`\n height: 100%;\n width: 100%;\n position: absolute;\n background-color: rgba(0, 0, 0, 0.5);\n top: 0;\n`;\n\nexport const TableContainer = styled.table`\n background: transparent;\n width: 100%;\n border-top: 2px solid ${COLORS.neutral_200};\n border-bottom: 2px solid ${COLORS.neutral_200};\n`;\n\nexport const TableHeaderRowCol = styled.th`\n background-color: ${COLORS.neutral_20};\n border-bottom: 1px solid ${COLORS.neutral_200};\n\n ${ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n padding: 16px 19px 16px 16px;\n\n div {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n svg {\n cursor: pointer;\n }\n }\n`;\n\nexport const TableColumnHeaderCol = styled.th`\n background-color: ${COLORS.white};\n border-top: 1px solid ${COLORS.neutral_300};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n padding: 18px 16px;\n text-align: left;\n\n &.justify-center {\n text-align: center;\n }\n\n &.justify-left {\n text-align: left;\n }\n\n &.justify-right {\n text-align: right;\n }\n\n &.no-border {\n border: none;\n }\n\n &.sortable {\n cursor: pointer;\n\n > svg {\n float: right;\n }\n\n &:hover {\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n background: ${COLORS.primary_100};\n }\n }\n`;\n\nexport const TableDataRow = styled.tr`\n background-color: ${COLORS.neutral_100};\n\n &:nth-child(2n) {\n background-color: ${COLORS.neutral_20};\n }\n\n &:hover {\n cursor: pointer;\n background-color: ${COLORS.primary_200};\n }\n\n &.no-rows:hover {\n cursor: default;\n background-color: ${COLORS.neutral_100};\n }\n`;\n\nexport const TableDataCol = styled.td`\n background: transparent;\n\n ${ComponentSStyling(ComponentTextStyle.Regular, COLORS.black)}\n padding: 15px 16px;\n border: none;\n\n &.truncate-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.justify-center {\n text-align: center;\n }\n\n &.justify-left {\n text-align: left;\n }\n\n &.justify-right {\n text-align: right;\n }\n\n button {\n color: ${COLORS.primary_600};\n text-decoration: none;\n\n &:hover {\n color: ${COLORS.primary_700};\n text-decoration: underline;\n }\n\n &:focus {\n text-decoration: underline;\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n color: ${COLORS.primary_700};\n }\n }\n\n &.center {\n text-align: center;\n }\n`;\n\nexport const TableFooterCol = styled.td`\n border-top: 1px solid ${COLORS.neutral_200};\n padding: 3.5px 20px 3.5px 16px;\n\n > div {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n\n > div > div:first-of-type {\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.black)}\n display: block;\n padding-top: 11px;\n padding-left: 2px;\n padding-right: 30px;\n }\n\n span {\n ${ComponentSStyling(ComponentTextStyle.Regular, COLORS.black)}\n\n &.current-page-info {\n margin-right: 34px;\n margin-left: 39px;\n }\n }\n\n .controls {\n display: flex;\n justify-content: space-between;\n }\n }\n`;\n"],"file":"TableStyles.js"}
1
+ {"version":3,"sources":["../../../src/Table/TableStyles.ts"],"names":["TableWrapper","styled","div","COLORS","neutral_200","ComponentTextStyle","Bold","black","neutral_600","white","primary_20","primary_700","Z_INDEXES","hover","primary_100","primary_800","active","focus_25","focus","Regular","neutral_700","neutral_100","primary_200"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AAOA;;;;;;;;AAEA;AACA;AACA;AAEO,IAAMA,YAAY,GAAGC,0BAAOC,GAAV,k/HAgBUC,eAAOC,WAhBjB,EAiBOD,eAAOC,WAjBd,EAoBf,mCAAkBC,+BAAmBC,IAArC,EAA2CH,eAAOI,KAAlD,CApBe,EA6Bb,mCAAkBF,+BAAmBC,IAArC,EAA2CH,eAAOK,WAAlD,CA7Ba,EAgCKL,eAAOM,KAhCZ,EA6CWN,eAAOC,WA7ClB,EA8CcD,eAAOC,WA9CrB,EAqDSD,eAAOO,UArDhB,EAsDFP,eAAOQ,WAtDL,EAuDAC,oBAAUC,KAvDV,EA2DSV,eAAOW,WA3DhB,EA4DFX,eAAOY,WA5DL,EA8DAH,oBAAUI,MA9DV,EAmEcb,eAAOc,QAnErB,EAmE0Cd,eAAOe,KAnEjD,EAoEAN,oBAAUM,KApEV,EA8FX,mCAAkBb,+BAAmBc,OAArC,EAA8C,IAA9C,CA9FW,EA0HJhB,eAAOiB,WA1HH,EAkIGjB,eAAOkB,WAlIV,EAsIGlB,eAAOM,KAtIV,EA6IKN,eAAOmB,WA7IZ,EA8IJV,oBAAUC,KA9IN,EAmJJD,oBAAUI,MAnJN,EAuJKb,eAAOmB,WAvJZ,EAyJJV,oBAAUM,KAzJN,EAkKOf,eAAOC,WAlKd,EAmKUD,eAAOC,WAnKjB,EA6Kb,oCAAmBC,+BAAmBc,OAAtC,EAA+ChB,eAAOI,KAAtD,CA7Ka,CAAlB","sourcesContent":["/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom style properties.\n */\nimport {COLORS} from '../styles';\nimport {\n ComponentLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXSStyling\n} from '../styles/typography';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\n/**\n * Table styles\n */\n\nexport const TableWrapper = styled.div`\n position: relative;\n\n .table {\n\n background: transparent;\n width: 100%;\n\n .table-header {\n .table-header-title .title-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n box-sizing: border-box;\n min-height: 56px;\n border-bottom: 1px solid ${COLORS.neutral_200};\n border-top: 2px solid ${COLORS.neutral_200};\n padding: 0 16px;\n\n ${ComponentLStyling(ComponentTextStyle.Bold, COLORS.black)}\n .title-menu {\n margin-right: -16px;\n }\n }\n\n .table-header-columns {\n\n .table-header-column {\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n position: relative;\n\n background-color: ${COLORS.white};\n\n //fixes header heights no idea why\n height: 1px;\n\n .header-content {\n box-sizing: border-box;\n min-height: 56px;\n padding: 0 16px;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-top: 1px solid ${COLORS.neutral_200};\n border-bottom: 1px solid ${COLORS.neutral_200};\n }\n\n &.sortable {\n cursor: pointer;\n\n &:hover {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n z-index: ${Z_INDEXES.hover};\n }\n\n &:active {\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n box-shadow: none !important;\n z-index: ${Z_INDEXES.active};\n }\n\n &:focus {\n outline: none;\n box-shadow: 0 4px 12px ${COLORS.focus_25}, 0 0 8px ${COLORS.focus};\n z-index: ${Z_INDEXES.focus};\n }\n }\n\n &.sortable .header-content > svg {\n opacity: 0;\n }\n\n &.sortable.sorted .header-content > svg {\n opacity: 1;\n }\n }\n }\n }\n\n .table-body {\n .table-row {\n position: relative;\n\n outline: none;\n\n .table-cell {\n .table-cell-content {\n min-height: 48px;\n\n padding: 0 16px;\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n\n display: flex;\n align-items: center;\n gap: 8px;\n\n &.truncate-text,\n &.truncate-text span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.left {\n justify-content: left;\n }\n\n &.right {\n justify-content: right;\n }\n\n &.center {\n justify-content: center;\n }\n }\n\n .table-cell-icon,\n .table-cell-icon svg {\n color: ${COLORS.neutral_700};\n width: 24px;\n height: 24px;\n }\n }\n }\n\n .table-row:nth-child(odd) {\n background-color: ${COLORS.neutral_100};\n }\n\n .table-row:nth-child(even) {\n background-color: ${COLORS.white};\n }\n\n .table-row {\n cursor: pointer;\n\n &:hover {\n background-color: ${COLORS.primary_200};\n z-index: ${Z_INDEXES.hover};\n }\n\n &:active {\n box-shadow: none !important;\n z-index: ${Z_INDEXES.active};\n }\n\n &:focus {\n background-color: ${COLORS.primary_200};\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2E7FA1;\n z-index: ${Z_INDEXES.focus};\n outline: none;\n }\n }\n\n }\n\n .table-footer {\n .footer-content {\n border-top: 2px solid ${COLORS.neutral_200};\n border-bottom: 1px solid ${COLORS.neutral_200};\n box-sizing: border-box;\n min-height: 56px;\n\n display: flex;\n align-items: center;\n justify-content: right;\n\n .current-page-info {\n padding: 0 16px;\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.black)}\n }\n\n .controls {\n display: flex;\n }\n }\n }\n\n }\n\n .table-spinner {\n height: 100%;\n width: 100%;\n position: absolute;\n background-color: rgba(0, 0, 0, 0.5);\n top: 0;\n }\n`;\n"],"file":"TableStyles.js"}
@@ -1,38 +1,46 @@
1
1
  /**
2
2
  * Types for the table.
3
3
  */
4
+ import { DropdownButtonProps } from '../Dropdown/DropdownButtonTypes';
5
+ import { ButtonProps } from '../Button/Button';
6
+ import { IconButtonProps } from '../Button/Iconbutton';
7
+ import { HyperlinkProps } from '../HyperLink/HyperLink';
4
8
  export interface TableProps {
5
- rowClick?: (row: any) => void;
6
- linkClick?: (row: any, key: string) => void;
7
- iconClick?: (row: any, key: string) => void;
8
9
  title?: string;
9
10
  columns: TableColumn[];
10
11
  rows: any[];
11
- remotePagination?: boolean;
12
12
  pagination?: TablePagination;
13
- previousPageClick?: () => void;
14
- nextPageClick?: () => void;
15
- rowsPerPageChange?: (count: number) => void;
16
- triggerSortingChange?: (key: string, direction: TableSortingDirection) => void;
13
+ remoteOperations?: boolean;
14
+ onPreviousPageClick?: () => void;
15
+ onNextPageClick?: () => void;
16
+ onRowsPerPageChange?: (count: number) => void;
17
+ onTriggerSortingChange?: (key: string, direction: TableSortingDirection) => void;
17
18
  showLoadingIndicator?: boolean;
19
+ menu?: Pick<DropdownButtonProps, 'items' | 'onClick' | 'disabled' | 'width' | 'itemsType' | 'multiSelect'>;
20
+ selectable?: boolean;
21
+ onSelectionChange?: (value: any | any[]) => void;
22
+ multiSelect?: boolean;
23
+ keyExpr?: string;
24
+ selectedRows?: any[];
18
25
  }
19
26
  export interface TableColumn {
27
+ key: string;
20
28
  name: string;
21
29
  filterValue?: string;
22
- key: string;
30
+ icon?: React.ReactNode;
31
+ width?: string | number;
23
32
  colorFn?: (row: any, key: string) => string;
24
- isIcon?: boolean;
25
- icon?: ColumnIcons;
26
- isLink?: boolean;
27
- width?: number;
33
+ justify?: TableJustification;
28
34
  shortenText?: boolean;
35
+ action?: (row: any, event: any) => void;
36
+ type?: TableColumnTypes;
37
+ additionalProps?: Pick<ButtonProps, 'variant' | 'size' | 'width' | 'icon'> | Pick<IconButtonProps, 'variant' | 'shape' | 'disabled'> | Pick<HyperlinkProps, 'variant'>;
29
38
  customContent?: (row: any, key: string) => any;
30
39
  sortable?: boolean;
31
- justify?: TableJustification;
32
40
  sortingDirection?: TableSortingDirection;
33
41
  }
42
+ export declare type TableColumnTypes = 'text' | 'boolean' | 'number' | 'custom' | 'button' | 'icon' | 'link';
34
43
  export declare type TableJustification = 'right' | 'left' | 'center';
35
- declare type ColumnIcons = 'Add' | 'ArrowDropDown' | 'ArrowDropUp' | 'ArrowLineDown' | 'ArrowLineLeft' | 'ArrowLineRight' | 'ArrowLineUp' | 'ArrowStopLeft' | 'ArrowStopRight' | 'Attachment' | 'Attention' | 'BackwardsFiveSec' | 'Book' | 'BookmarkOff' | 'BookmarkOn' | 'Bullet' | 'Calendar' | 'CheckboxOff' | 'CheckboxOn' | 'CheckboxSemi' | 'CheckComplete' | 'ChevronDown' | 'ChevronLeft' | 'ChevronRight' | 'ChevronUp' | 'Clear' | 'Close' | 'ClosedCaptionOff' | 'ClosedCaptionOn' | 'CloudAttention' | 'CloudCheck' | 'CloudDownload' | 'CloudLocked' | 'CloudNoConnection' | 'CloudSyncing' | 'CloudUpload' | 'Cloud' | 'Dashboard' | 'Delete' | 'Download' | 'DragHandle' | 'DragIndicator' | 'Edit' | 'Educator' | 'Equals' | 'EventLog' | 'ExtendTextArea' | 'Filter' | 'Forward' | 'ForwardSlash' | 'ForwardFiveSec' | 'FullscreenExit' | 'Fullscreen' | 'GearSettings' | 'GridView' | 'Group' | 'GuidedTour' | 'Help' | 'Hierarchy' | 'History' | 'Home' | 'Information' | 'Institute' | 'Language' | 'ListView' | 'LoadingMedium' | 'LoadingSmall' | 'LockedOff' | 'LockedOn' | 'Login' | 'Logout' | 'Loop' | 'Mail' | 'Manikin' | 'MapPoint' | 'Menu' | 'Minus' | 'MoreHorizontal' | 'MoreVertical' | 'NotificationNew' | 'Notification' | 'OpenFolder' | 'OpenNewWindow' | 'Pause' | 'PlayOutline' | 'Play' | 'Plus' | 'PointDown' | 'PointLeft' | 'PointRight' | 'PointUp' | 'RadioButtonOff' | 'RadioButtonOn' | 'Record' | 'Refresh' | 'Replay' | 'Rewind' | 'Save' | 'Search' | 'Share' | 'ShoppingCart' | 'StarFilled' | 'StarOutlined' | 'Stop' | 'Support' | 'Team' | 'ThumbsDown' | 'ThumbsUp' | 'TimeLimited' | 'Time' | 'Tip' | 'Upload' | 'Usb' | 'User' | 'Video' | 'VisibleOff' | 'VisibleOn' | 'VolumeDown' | 'VolumeOff' | 'VolumeUp';
36
44
  export declare type TableSortingDirection = 'asc' | 'desc';
37
45
  export interface TablePagination {
38
46
  from: number;
@@ -41,4 +49,3 @@ export interface TablePagination {
41
49
  currentPage: number;
42
50
  rowsPerPage: number;
43
51
  }
44
- export {};