@laerdal/life-react-components 1.10.3-dev.5 → 1.10.3-dev.6

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.
@@ -11,8 +11,6 @@ exports.default = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
15
 
18
16
  var _Button = require("../Button");
@@ -31,10 +29,6 @@ var _TableStyles = require("./TableStyles");
31
29
 
32
30
  var _common = require("../common");
33
31
 
34
- var _SystemIcons = require("../icons/systemicons/SystemIcons");
35
-
36
- var _rooks = require("rooks");
37
-
38
32
  var _jsxRuntime = require("react/jsx-runtime");
39
33
 
40
34
  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); }
@@ -48,27 +42,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
48
42
  var TableBody = function TableBody(props) {
49
43
  var _props$noRowsLabel;
50
44
 
51
- var _useDimensionsRef = (0, _rooks.useDimensionsRef)({
52
- updateOnResize: true
53
- }),
54
- _useDimensionsRef2 = (0, _slicedToArray2.default)(_useDimensionsRef, 3),
55
- scrollContainerRef = _useDimensionsRef2[0],
56
- dimensions = _useDimensionsRef2[1],
57
- node = _useDimensionsRef2[2];
58
-
59
- var _React$useState = React.useState(false),
60
- _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
61
- scrollable = _React$useState2[0],
62
- setScrollable = _React$useState2[1];
63
-
64
- React.useEffect(function () {
65
- var _node$clientWidth, _node$scrollWidth;
66
-
67
- var clientWidth = (_node$clientWidth = node === null || node === void 0 ? void 0 : node.clientWidth) !== null && _node$clientWidth !== void 0 ? _node$clientWidth : 0;
68
- var scrollWidth = (_node$scrollWidth = node === null || node === void 0 ? void 0 : node.scrollWidth) !== null && _node$scrollWidth !== void 0 ? _node$scrollWidth : 0;
69
- setScrollable(scrollWidth > clientWidth);
70
- }, [dimensions, node, props.columns, props.rows]);
71
-
72
45
  var renderCellBody = function renderCellBody(column, row) {
73
46
  switch (column.type) {
74
47
  case 'link':
@@ -161,102 +134,52 @@ var TableBody = function TableBody(props) {
161
134
  return props.multiSelect && ((_props$selected = props.selected) === null || _props$selected === void 0 ? void 0 : _props$selected.indexOf(props.keyExpr ? row[props.keyExpr] : row)) > -1 || !props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row);
162
135
  };
163
136
 
164
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableBodyWrapper, {
165
- ref: scrollContainerRef,
166
- className: scrollable ? 'scrollable' : '',
167
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTable, {
168
- cellPadding: "0",
169
- cellSpacing: "0",
170
- "data-testid": "TestTable",
171
- className: "table ".concat(props.layout || ''),
172
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableHeaderRow, {
173
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableHeaderColumns, {
174
- "data-testid": "TestTableColumnHeaderRow",
175
- children: [props.multiSelect && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableHeaderColumn, {
176
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableHeaderColumnContent, {
177
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputFields.Checkbox, {
178
- selected: props.selectAllState === 'all',
179
- disabled: props.showLoadingIndicator,
180
- semiSelected: props.selectAllState === 'some',
181
- select: props.onSelectAllClick
182
- })
137
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableBody, {
138
+ children: props.currentPageRows.length > 0 ? props.currentPageRows.map(function (row, index) {
139
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableBodyRow, {
140
+ className: "".concat(props.selectable ? 'selectable' : '', " ").concat(isSelected(row) ? 'selected' : ''),
141
+ onClick: function onClick() {
142
+ return props.onRowClick && props.onRowClick(row);
143
+ },
144
+ onMouseDown: _common.defaultOnMouseDownHandler,
145
+ onKeyPress: function onKeyPress(e) {
146
+ if (e.key === 'Enter') {
147
+ props.onRowClick && props.onRowClick(row);
148
+ }
149
+ },
150
+ tabIndex: props.selectable && !props.showLoadingIndicator ? 0 : undefined,
151
+ "data-testid": "TestTableDataRow",
152
+ children: [props.multiSelect && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCell, {
153
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCellContent, {
154
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputFields.Checkbox, {
155
+ selected: isSelected(row)
183
156
  })
184
- }), props.columns.map(function (column) {
185
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableHeaderColumn, {
186
- onMouseDown: _common.defaultOnMouseDownHandler,
187
- onClick: function onClick(e) {
188
- return props.sortByColumn(column);
189
- },
190
- onKeyPress: function onKeyPress(e) {
191
- if (e.key === 'Enter') {
192
- props.sortByColumn(column);
193
- }
194
- },
195
- style: {
196
- width: column.width
197
- },
198
- tabIndex: column.sortable && !props.showLoadingIndicator ? 0 : -1,
199
- className: "".concat(!!column.sortable ? 'sortable' : '', " ").concat(!!column.sortable && !!column.sortingDirection ? 'sorted' : ''),
200
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableHeaderColumnContent, {
201
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
202
- children: column.name
203
- }), column.sortable && (column.sortingDirection === 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowLineUp, {
204
- size: '24px'
205
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowLineDown, {
206
- size: '24px'
207
- }))]
208
- })
209
- }, column.key);
210
- })]
211
- })
212
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableBody, {
213
- children: props.currentPageRows.length > 0 ? props.currentPageRows.map(function (row, index) {
214
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableBodyRow, {
215
- className: "".concat(props.selectable ? 'selectable' : '', " ").concat(isSelected(row) ? 'selected' : ''),
216
- onClick: function onClick() {
217
- return props.onRowClick && props.onRowClick(row);
218
- },
219
- onMouseDown: _common.defaultOnMouseDownHandler,
220
- onKeyPress: function onKeyPress(e) {
221
- if (e.key === 'Enter') {
222
- props.onRowClick && props.onRowClick(row);
223
- }
157
+ })
158
+ }), props.columns.map(function (column) {
159
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCell, {
160
+ style: {
161
+ maxWidth: column.width
224
162
  },
225
- tabIndex: props.selectable && !props.showLoadingIndicator ? 0 : undefined,
226
- "data-testid": "TestTableDataRow",
227
- children: [props.multiSelect && /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCell, {
228
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCellContent, {
229
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputFields.Checkbox, {
230
- selected: isSelected(row)
231
- })
232
- })
233
- }), props.columns.map(function (column) {
234
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCell, {
235
- style: {
236
- maxWidth: column.width
237
- },
238
- title: column.shortenText && row[column.key],
239
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCellContent, {
240
- className: "".concat(column.shortenText ? "truncate-text" : '', " ").concat(column.justify || ''),
241
- style: {
242
- color: column.colorFn && column.colorFn(row, column.key)
243
- },
244
- children: renderCellBody(column, row)
245
- })
246
- }, "row_".concat(index, "_").concat(column.key));
247
- })]
248
- }, "row_".concat(index));
249
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableNoRowsLabelRow, {
250
- "data-testid": "TestTableNoDataRow",
251
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCell, {
252
- colSpan: props.columns.length + (props.multiSelect ? 1 : 0),
163
+ title: column.shortenText && row[column.key],
253
164
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCellContent, {
254
- className: 'center',
255
- children: (_props$noRowsLabel = props.noRowsLabel) !== null && _props$noRowsLabel !== void 0 ? _props$noRowsLabel : 'There are no rows to display'
165
+ className: "".concat(column.shortenText ? "truncate-text" : '', " ").concat(column.justify || ''),
166
+ style: {
167
+ color: column.colorFn && column.colorFn(row, column.key)
168
+ },
169
+ children: renderCellBody(column, row)
256
170
  })
257
- })
171
+ }, "row_".concat(index, "_").concat(column.key));
172
+ })]
173
+ }, "row_".concat(index));
174
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableNoRowsLabelRow, {
175
+ "data-testid": "TestTableNoDataRow",
176
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCell, {
177
+ colSpan: props.columns.length + (props.multiSelect ? 1 : 0),
178
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableCellContent, {
179
+ className: 'center',
180
+ children: (_props$noRowsLabel = props.noRowsLabel) !== null && _props$noRowsLabel !== void 0 ? _props$noRowsLabel : 'There are no rows to display'
258
181
  })
259
- })]
182
+ })
260
183
  })
261
184
  });
262
185
  };
@@ -264,10 +187,7 @@ var TableBody = function TableBody(props) {
264
187
  TableBody.propTypes = {
265
188
  currentPageRows: _propTypes.default.arrayOf(_propTypes.default.any).isRequired,
266
189
  onRowClick: _propTypes.default.func,
267
- selected: _propTypes.default.any,
268
- sortByColumn: _propTypes.default.func.isRequired,
269
- onSelectAllClick: _propTypes.default.func.isRequired,
270
- selectAllState: _propTypes.default.oneOf(['all', 'some', 'none']).isRequired
190
+ selected: _propTypes.default.any
271
191
  };
272
192
  var _default = TableBody;
273
193
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/TableBody.tsx"],"names":["TableBody","props","updateOnResize","scrollContainerRef","dimensions","node","React","useState","scrollable","setScrollable","useEffect","clientWidth","scrollWidth","columns","rows","renderCellBody","column","row","type","tmp","variant","href","tabIndex","showLoadingIndicator","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Size","Small","customContent","isSelected","multiSelect","selected","indexOf","keyExpr","layout","selectAllState","onSelectAllClick","map","defaultOnMouseDownHandler","sortByColumn","width","sortable","sortingDirection","name","currentPageRows","length","index","selectable","onRowClick","undefined","maxWidth","shortenText","justify","noRowsLabel"],"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';\nimport {\n StyledTableBody,\n StyledTableBodyRow,\n StyledTableCell,\n StyledTableCellContent,\n StyledTableCellIcon,\n StyledTableCellText,\n StyledTableHeaderColumn,\n StyledTableHeaderColumnContent,\n StyledTableHeaderColumns,\n StyledTableNoRowsLabelRow,\n StyledTable, StyledTableBodyWrapper, StyledTableHeaderRow,\n} from './TableStyles';\nimport {defaultOnMouseDownHandler} from '../common';\nimport {ArrowLineDown, ArrowLineUp} from \"../icons/systemicons/SystemIcons\";\nimport {useDimensionsRef} from \"rooks\";\n\n\ninterface TableBodyProps extends TableProps {\n currentPageRows: any[];\n onRowClick?: (row: any) => void;\n selected?: any | any[];\n sortByColumn: (column: TableColumn) => void;\n onSelectAllClick: () => void;\n selectAllState: 'all' | 'some' | 'none';\n}\n\nconst TableBody: React.FC<TableBodyProps> = (props) => {\n\n const [scrollContainerRef, dimensions, node] = useDimensionsRef({updateOnResize: true});\n const [scrollable, setScrollable] = React.useState(false);\n\n React.useEffect(() => {\n const clientWidth = node?.clientWidth ?? 0;\n const scrollWidth = node?.scrollWidth ?? 0;\n setScrollable(scrollWidth > clientWidth);\n }, [dimensions, node, props.columns, props.rows]);\n\n\n const renderCellBody = (column: TableColumn, row: any) => {\n switch (column.type) {\n case 'link': {\n const tmp = ({\n variant: 'default',\n href: '#',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\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 tmp = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...tmp}\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 tmp = ({\n variant: 'tertiary',\n size: Size.Small,\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\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 {\n column.icon &&\n <StyledTableCellIcon>{column.icon}</StyledTableCellIcon>\n }\n <StyledTableCellText>{row[column.key]}</StyledTableCellText>\n </>\n );\n }\n }\n\n const isSelected = (row: any) => {\n return (props.multiSelect && props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1) ||\n (!props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row));\n }\n\n return (\n <StyledTableBodyWrapper ref={scrollContainerRef as any} className={scrollable ? 'scrollable' : ''}>\n <StyledTable cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\" className={`table ${props.layout || ''}`}>\n <StyledTableHeaderRow>\n <StyledTableHeaderColumns data-testid=\"TestTableColumnHeaderRow\">\n {\n props.multiSelect &&\n <StyledTableHeaderColumn>\n <StyledTableHeaderColumnContent>\n <Checkbox selected={props.selectAllState === 'all'}\n disabled={props.showLoadingIndicator}\n semiSelected={props.selectAllState === 'some'}\n select={props.onSelectAllClick}/>\n </StyledTableHeaderColumnContent>\n </StyledTableHeaderColumn>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableHeaderColumn key={column.key}\n onMouseDown={defaultOnMouseDownHandler}\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 && !props.showLoadingIndicator ? 0 : -1}\n className={`${!!column.sortable ? 'sortable' : ''} ${!!column.sortable && !!column.sortingDirection ? 'sorted' : ''}`}>\n <StyledTableHeaderColumnContent>\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 </StyledTableHeaderColumnContent>\n </StyledTableHeaderColumn>\n ))}\n </StyledTableHeaderColumns>\n </StyledTableHeaderRow>\n <StyledTableBody>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <StyledTableBodyRow key={`row_${index}`}\n className={`${props.selectable ? 'selectable' : ''} ${isSelected(row) ? 'selected' : ''}`}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable && !props.showLoadingIndicator ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <StyledTableCell>\n <StyledTableCellContent>\n <Checkbox selected={isSelected(row)}/>\n </StyledTableCellContent>\n </StyledTableCell>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableCell key={`row_${index}_${column.key}`}\n style={{maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <StyledTableCellContent\n className={`${column.shortenText ? `truncate-text` : ''} ${column.justify || ''}`}\n style={{\n color: column.colorFn && column.colorFn(row, column.key),\n }}>\n {renderCellBody(column, row)}\n </StyledTableCellContent>\n </StyledTableCell>\n ))}\n </StyledTableBodyRow>\n ))\n ) : (\n <StyledTableNoRowsLabelRow data-testid=\"TestTableNoDataRow\">\n <StyledTableCell colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <StyledTableCellContent className={'center'}>\n {props.noRowsLabel ?? 'There are no rows to display'}\n </StyledTableCellContent>\n </StyledTableCell>\n </StyledTableNoRowsLabelRow>\n )}\n\n </StyledTableBody>\n </StyledTable>\n </StyledTableBodyWrapper>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.cjs"}
1
+ {"version":3,"sources":["../../src/Table/TableBody.tsx"],"names":["TableBody","props","renderCellBody","column","row","type","tmp","variant","href","tabIndex","showLoadingIndicator","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Size","Small","customContent","isSelected","multiSelect","selected","indexOf","keyExpr","currentPageRows","length","map","index","selectable","onRowClick","defaultOnMouseDownHandler","undefined","columns","maxWidth","width","shortenText","justify","noRowsLabel"],"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';\nimport {\n StyledTableBody,\n StyledTableBodyRow,\n StyledTableCell,\n StyledTableCellContent,\n StyledTableCellIcon, \n StyledTableCellText,\n StyledTableNoRowsLabelRow\n} from './TableStyles';\nimport {defaultOnMouseDownHandler} from '../common';\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 tmp = ({\n variant: 'default',\n href: '#',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\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 tmp = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...tmp}\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 tmp = ({\n variant: 'tertiary',\n size: Size.Small,\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\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 {\n column.icon &&\n <StyledTableCellIcon>{column.icon}</StyledTableCellIcon>\n }\n <StyledTableCellText>{row[column.key]}</StyledTableCellText>\n </>\n );\n }\n }\n\n\n const isSelected = (row: any) => {\n return (props.multiSelect && props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1) ||\n (!props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row));\n }\n\n return (\n <StyledTableBody>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <StyledTableBodyRow key={`row_${index}`}\n className={`${props.selectable ? 'selectable' : ''} ${ isSelected(row) ? 'selected' : ''}`}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable && !props.showLoadingIndicator ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <StyledTableCell>\n <StyledTableCellContent>\n <Checkbox selected={isSelected(row)}/>\n </StyledTableCellContent>\n </StyledTableCell>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableCell key={`row_${index}_${column.key}`}\n style={{maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <StyledTableCellContent\n className={`${column.shortenText ? `truncate-text` : ''} ${column.justify || ''}`}\n style={{\n color: column.colorFn && column.colorFn(row, column.key),\n }}>\n {renderCellBody(column, row)}\n </StyledTableCellContent>\n </StyledTableCell>\n ))}\n </StyledTableBodyRow>\n ))\n ) : (\n <StyledTableNoRowsLabelRow data-testid=\"TestTableNoDataRow\">\n <StyledTableCell colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <StyledTableCellContent className={'center'}>\n { props.noRowsLabel ?? 'There are no rows to display'}\n </StyledTableCellContent>\n </StyledTableCell>\n </StyledTableNoRowsLabelRow>\n )}\n\n </StyledTableBody>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.cjs"}
@@ -1,12 +1,9 @@
1
- import { TableColumn, TableProps } from './TableTypes';
1
+ import { TableProps } from './TableTypes';
2
2
  import * as React from 'react';
3
3
  interface TableBodyProps extends TableProps {
4
4
  currentPageRows: any[];
5
5
  onRowClick?: (row: any) => void;
6
6
  selected?: any | any[];
7
- sortByColumn: (column: TableColumn) => void;
8
- onSelectAllClick: () => void;
9
- selectAllState: 'all' | 'some' | 'none';
10
7
  }
11
8
  declare const TableBody: React.FC<TableBodyProps>;
12
9
  export default TableBody;
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
2
  import _pt from "prop-types";
4
3
 
5
4
  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; }
@@ -12,10 +11,8 @@ import * as React from 'react';
12
11
  import { Checkbox } from '../InputFields';
13
12
  import IconButton from '../Button/Iconbutton';
14
13
  import { HyperLink } from '../HyperLink';
15
- import { StyledTableBody, StyledTableBodyRow, StyledTableCell, StyledTableCellContent, StyledTableCellIcon, StyledTableCellText, StyledTableHeaderColumn, StyledTableHeaderColumnContent, StyledTableHeaderColumns, StyledTableNoRowsLabelRow, StyledTable, StyledTableBodyWrapper, StyledTableHeaderRow } from './TableStyles';
14
+ import { StyledTableBody, StyledTableBodyRow, StyledTableCell, StyledTableCellContent, StyledTableCellIcon, StyledTableCellText, StyledTableNoRowsLabelRow } from './TableStyles';
16
15
  import { defaultOnMouseDownHandler } from '../common';
17
- import { ArrowLineDown, ArrowLineUp } from "../icons/systemicons/SystemIcons";
18
- import { useDimensionsRef } from "rooks";
19
16
  import { jsx as _jsx } from "react/jsx-runtime";
20
17
  import { Fragment as _Fragment } from "react/jsx-runtime";
21
18
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -23,27 +20,6 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
23
20
  var TableBody = function TableBody(props) {
24
21
  var _props$noRowsLabel;
25
22
 
26
- var _useDimensionsRef = useDimensionsRef({
27
- updateOnResize: true
28
- }),
29
- _useDimensionsRef2 = _slicedToArray(_useDimensionsRef, 3),
30
- scrollContainerRef = _useDimensionsRef2[0],
31
- dimensions = _useDimensionsRef2[1],
32
- node = _useDimensionsRef2[2];
33
-
34
- var _React$useState = React.useState(false),
35
- _React$useState2 = _slicedToArray(_React$useState, 2),
36
- scrollable = _React$useState2[0],
37
- setScrollable = _React$useState2[1];
38
-
39
- React.useEffect(function () {
40
- var _node$clientWidth, _node$scrollWidth;
41
-
42
- var clientWidth = (_node$clientWidth = node === null || node === void 0 ? void 0 : node.clientWidth) !== null && _node$clientWidth !== void 0 ? _node$clientWidth : 0;
43
- var scrollWidth = (_node$scrollWidth = node === null || node === void 0 ? void 0 : node.scrollWidth) !== null && _node$scrollWidth !== void 0 ? _node$scrollWidth : 0;
44
- setScrollable(scrollWidth > clientWidth);
45
- }, [dimensions, node, props.columns, props.rows]);
46
-
47
23
  var renderCellBody = function renderCellBody(column, row) {
48
24
  switch (column.type) {
49
25
  case 'link':
@@ -136,102 +112,52 @@ var TableBody = function TableBody(props) {
136
112
  return props.multiSelect && ((_props$selected = props.selected) === null || _props$selected === void 0 ? void 0 : _props$selected.indexOf(props.keyExpr ? row[props.keyExpr] : row)) > -1 || !props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row);
137
113
  };
138
114
 
139
- return /*#__PURE__*/_jsx(StyledTableBodyWrapper, {
140
- ref: scrollContainerRef,
141
- className: scrollable ? 'scrollable' : '',
142
- children: /*#__PURE__*/_jsxs(StyledTable, {
143
- cellPadding: "0",
144
- cellSpacing: "0",
145
- "data-testid": "TestTable",
146
- className: "table ".concat(props.layout || ''),
147
- children: [/*#__PURE__*/_jsx(StyledTableHeaderRow, {
148
- children: /*#__PURE__*/_jsxs(StyledTableHeaderColumns, {
149
- "data-testid": "TestTableColumnHeaderRow",
150
- children: [props.multiSelect && /*#__PURE__*/_jsx(StyledTableHeaderColumn, {
151
- children: /*#__PURE__*/_jsx(StyledTableHeaderColumnContent, {
152
- children: /*#__PURE__*/_jsx(Checkbox, {
153
- selected: props.selectAllState === 'all',
154
- disabled: props.showLoadingIndicator,
155
- semiSelected: props.selectAllState === 'some',
156
- select: props.onSelectAllClick
157
- })
115
+ return /*#__PURE__*/_jsx(StyledTableBody, {
116
+ children: props.currentPageRows.length > 0 ? props.currentPageRows.map(function (row, index) {
117
+ return /*#__PURE__*/_jsxs(StyledTableBodyRow, {
118
+ className: "".concat(props.selectable ? 'selectable' : '', " ").concat(isSelected(row) ? 'selected' : ''),
119
+ onClick: function onClick() {
120
+ return props.onRowClick && props.onRowClick(row);
121
+ },
122
+ onMouseDown: defaultOnMouseDownHandler,
123
+ onKeyPress: function onKeyPress(e) {
124
+ if (e.key === 'Enter') {
125
+ props.onRowClick && props.onRowClick(row);
126
+ }
127
+ },
128
+ tabIndex: props.selectable && !props.showLoadingIndicator ? 0 : undefined,
129
+ "data-testid": "TestTableDataRow",
130
+ children: [props.multiSelect && /*#__PURE__*/_jsx(StyledTableCell, {
131
+ children: /*#__PURE__*/_jsx(StyledTableCellContent, {
132
+ children: /*#__PURE__*/_jsx(Checkbox, {
133
+ selected: isSelected(row)
158
134
  })
159
- }), props.columns.map(function (column) {
160
- return /*#__PURE__*/_jsx(StyledTableHeaderColumn, {
161
- onMouseDown: defaultOnMouseDownHandler,
162
- onClick: function onClick(e) {
163
- return props.sortByColumn(column);
164
- },
165
- onKeyPress: function onKeyPress(e) {
166
- if (e.key === 'Enter') {
167
- props.sortByColumn(column);
168
- }
169
- },
170
- style: {
171
- width: column.width
172
- },
173
- tabIndex: column.sortable && !props.showLoadingIndicator ? 0 : -1,
174
- className: "".concat(!!column.sortable ? 'sortable' : '', " ").concat(!!column.sortable && !!column.sortingDirection ? 'sorted' : ''),
175
- children: /*#__PURE__*/_jsxs(StyledTableHeaderColumnContent, {
176
- children: [/*#__PURE__*/_jsx("span", {
177
- children: column.name
178
- }), column.sortable && (column.sortingDirection === 'asc' ? /*#__PURE__*/_jsx(ArrowLineUp, {
179
- size: '24px'
180
- }) : /*#__PURE__*/_jsx(ArrowLineDown, {
181
- size: '24px'
182
- }))]
183
- })
184
- }, column.key);
185
- })]
186
- })
187
- }), /*#__PURE__*/_jsx(StyledTableBody, {
188
- children: props.currentPageRows.length > 0 ? props.currentPageRows.map(function (row, index) {
189
- return /*#__PURE__*/_jsxs(StyledTableBodyRow, {
190
- className: "".concat(props.selectable ? 'selectable' : '', " ").concat(isSelected(row) ? 'selected' : ''),
191
- onClick: function onClick() {
192
- return props.onRowClick && props.onRowClick(row);
193
- },
194
- onMouseDown: defaultOnMouseDownHandler,
195
- onKeyPress: function onKeyPress(e) {
196
- if (e.key === 'Enter') {
197
- props.onRowClick && props.onRowClick(row);
198
- }
135
+ })
136
+ }), props.columns.map(function (column) {
137
+ return /*#__PURE__*/_jsx(StyledTableCell, {
138
+ style: {
139
+ maxWidth: column.width
199
140
  },
200
- tabIndex: props.selectable && !props.showLoadingIndicator ? 0 : undefined,
201
- "data-testid": "TestTableDataRow",
202
- children: [props.multiSelect && /*#__PURE__*/_jsx(StyledTableCell, {
203
- children: /*#__PURE__*/_jsx(StyledTableCellContent, {
204
- children: /*#__PURE__*/_jsx(Checkbox, {
205
- selected: isSelected(row)
206
- })
207
- })
208
- }), props.columns.map(function (column) {
209
- return /*#__PURE__*/_jsx(StyledTableCell, {
210
- style: {
211
- maxWidth: column.width
212
- },
213
- title: column.shortenText && row[column.key],
214
- children: /*#__PURE__*/_jsx(StyledTableCellContent, {
215
- className: "".concat(column.shortenText ? "truncate-text" : '', " ").concat(column.justify || ''),
216
- style: {
217
- color: column.colorFn && column.colorFn(row, column.key)
218
- },
219
- children: renderCellBody(column, row)
220
- })
221
- }, "row_".concat(index, "_").concat(column.key));
222
- })]
223
- }, "row_".concat(index));
224
- }) : /*#__PURE__*/_jsx(StyledTableNoRowsLabelRow, {
225
- "data-testid": "TestTableNoDataRow",
226
- children: /*#__PURE__*/_jsx(StyledTableCell, {
227
- colSpan: props.columns.length + (props.multiSelect ? 1 : 0),
141
+ title: column.shortenText && row[column.key],
228
142
  children: /*#__PURE__*/_jsx(StyledTableCellContent, {
229
- className: 'center',
230
- children: (_props$noRowsLabel = props.noRowsLabel) !== null && _props$noRowsLabel !== void 0 ? _props$noRowsLabel : 'There are no rows to display'
143
+ className: "".concat(column.shortenText ? "truncate-text" : '', " ").concat(column.justify || ''),
144
+ style: {
145
+ color: column.colorFn && column.colorFn(row, column.key)
146
+ },
147
+ children: renderCellBody(column, row)
231
148
  })
232
- })
149
+ }, "row_".concat(index, "_").concat(column.key));
150
+ })]
151
+ }, "row_".concat(index));
152
+ }) : /*#__PURE__*/_jsx(StyledTableNoRowsLabelRow, {
153
+ "data-testid": "TestTableNoDataRow",
154
+ children: /*#__PURE__*/_jsx(StyledTableCell, {
155
+ colSpan: props.columns.length + (props.multiSelect ? 1 : 0),
156
+ children: /*#__PURE__*/_jsx(StyledTableCellContent, {
157
+ className: 'center',
158
+ children: (_props$noRowsLabel = props.noRowsLabel) !== null && _props$noRowsLabel !== void 0 ? _props$noRowsLabel : 'There are no rows to display'
233
159
  })
234
- })]
160
+ })
235
161
  })
236
162
  });
237
163
  };
@@ -239,10 +165,7 @@ var TableBody = function TableBody(props) {
239
165
  TableBody.propTypes = {
240
166
  currentPageRows: _pt.arrayOf(_pt.any).isRequired,
241
167
  onRowClick: _pt.func,
242
- selected: _pt.any,
243
- sortByColumn: _pt.func.isRequired,
244
- onSelectAllClick: _pt.func.isRequired,
245
- selectAllState: _pt.oneOf(['all', 'some', 'none']).isRequired
168
+ selected: _pt.any
246
169
  };
247
170
  export default TableBody;
248
171
  //# sourceMappingURL=TableBody.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/TableBody.tsx"],"names":["Button","Size","React","Checkbox","IconButton","HyperLink","StyledTableBody","StyledTableBodyRow","StyledTableCell","StyledTableCellContent","StyledTableCellIcon","StyledTableCellText","StyledTableHeaderColumn","StyledTableHeaderColumnContent","StyledTableHeaderColumns","StyledTableNoRowsLabelRow","StyledTable","StyledTableBodyWrapper","StyledTableHeaderRow","defaultOnMouseDownHandler","ArrowLineDown","ArrowLineUp","useDimensionsRef","TableBody","props","updateOnResize","scrollContainerRef","dimensions","node","useState","scrollable","setScrollable","useEffect","clientWidth","scrollWidth","columns","rows","renderCellBody","column","row","type","tmp","variant","href","tabIndex","showLoadingIndicator","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Small","customContent","isSelected","multiSelect","selected","indexOf","keyExpr","layout","selectAllState","onSelectAllClick","map","sortByColumn","width","sortable","sortingDirection","name","currentPageRows","length","index","selectable","onRowClick","undefined","maxWidth","shortenText","justify","noRowsLabel"],"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';\nimport {\n StyledTableBody,\n StyledTableBodyRow,\n StyledTableCell,\n StyledTableCellContent,\n StyledTableCellIcon,\n StyledTableCellText,\n StyledTableHeaderColumn,\n StyledTableHeaderColumnContent,\n StyledTableHeaderColumns,\n StyledTableNoRowsLabelRow,\n StyledTable, StyledTableBodyWrapper, StyledTableHeaderRow,\n} from './TableStyles';\nimport {defaultOnMouseDownHandler} from '../common';\nimport {ArrowLineDown, ArrowLineUp} from \"../icons/systemicons/SystemIcons\";\nimport {useDimensionsRef} from \"rooks\";\n\n\ninterface TableBodyProps extends TableProps {\n currentPageRows: any[];\n onRowClick?: (row: any) => void;\n selected?: any | any[];\n sortByColumn: (column: TableColumn) => void;\n onSelectAllClick: () => void;\n selectAllState: 'all' | 'some' | 'none';\n}\n\nconst TableBody: React.FC<TableBodyProps> = (props) => {\n\n const [scrollContainerRef, dimensions, node] = useDimensionsRef({updateOnResize: true});\n const [scrollable, setScrollable] = React.useState(false);\n\n React.useEffect(() => {\n const clientWidth = node?.clientWidth ?? 0;\n const scrollWidth = node?.scrollWidth ?? 0;\n setScrollable(scrollWidth > clientWidth);\n }, [dimensions, node, props.columns, props.rows]);\n\n\n const renderCellBody = (column: TableColumn, row: any) => {\n switch (column.type) {\n case 'link': {\n const tmp = ({\n variant: 'default',\n href: '#',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\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 tmp = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...tmp}\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 tmp = ({\n variant: 'tertiary',\n size: Size.Small,\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\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 {\n column.icon &&\n <StyledTableCellIcon>{column.icon}</StyledTableCellIcon>\n }\n <StyledTableCellText>{row[column.key]}</StyledTableCellText>\n </>\n );\n }\n }\n\n const isSelected = (row: any) => {\n return (props.multiSelect && props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1) ||\n (!props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row));\n }\n\n return (\n <StyledTableBodyWrapper ref={scrollContainerRef as any} className={scrollable ? 'scrollable' : ''}>\n <StyledTable cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\" className={`table ${props.layout || ''}`}>\n <StyledTableHeaderRow>\n <StyledTableHeaderColumns data-testid=\"TestTableColumnHeaderRow\">\n {\n props.multiSelect &&\n <StyledTableHeaderColumn>\n <StyledTableHeaderColumnContent>\n <Checkbox selected={props.selectAllState === 'all'}\n disabled={props.showLoadingIndicator}\n semiSelected={props.selectAllState === 'some'}\n select={props.onSelectAllClick}/>\n </StyledTableHeaderColumnContent>\n </StyledTableHeaderColumn>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableHeaderColumn key={column.key}\n onMouseDown={defaultOnMouseDownHandler}\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 && !props.showLoadingIndicator ? 0 : -1}\n className={`${!!column.sortable ? 'sortable' : ''} ${!!column.sortable && !!column.sortingDirection ? 'sorted' : ''}`}>\n <StyledTableHeaderColumnContent>\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 </StyledTableHeaderColumnContent>\n </StyledTableHeaderColumn>\n ))}\n </StyledTableHeaderColumns>\n </StyledTableHeaderRow>\n <StyledTableBody>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <StyledTableBodyRow key={`row_${index}`}\n className={`${props.selectable ? 'selectable' : ''} ${isSelected(row) ? 'selected' : ''}`}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable && !props.showLoadingIndicator ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <StyledTableCell>\n <StyledTableCellContent>\n <Checkbox selected={isSelected(row)}/>\n </StyledTableCellContent>\n </StyledTableCell>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableCell key={`row_${index}_${column.key}`}\n style={{maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <StyledTableCellContent\n className={`${column.shortenText ? `truncate-text` : ''} ${column.justify || ''}`}\n style={{\n color: column.colorFn && column.colorFn(row, column.key),\n }}>\n {renderCellBody(column, row)}\n </StyledTableCellContent>\n </StyledTableCell>\n ))}\n </StyledTableBodyRow>\n ))\n ) : (\n <StyledTableNoRowsLabelRow data-testid=\"TestTableNoDataRow\">\n <StyledTableCell colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <StyledTableCellContent className={'center'}>\n {props.noRowsLabel ?? 'There are no rows to display'}\n </StyledTableCellContent>\n </StyledTableCell>\n </StyledTableNoRowsLabelRow>\n )}\n\n </StyledTableBody>\n </StyledTable>\n </StyledTableBodyWrapper>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.js"}
1
+ {"version":3,"sources":["../../src/Table/TableBody.tsx"],"names":["Button","Size","React","Checkbox","IconButton","HyperLink","StyledTableBody","StyledTableBodyRow","StyledTableCell","StyledTableCellContent","StyledTableCellIcon","StyledTableCellText","StyledTableNoRowsLabelRow","defaultOnMouseDownHandler","TableBody","props","renderCellBody","column","row","type","tmp","variant","href","tabIndex","showLoadingIndicator","additionalProps","colorFn","color","key","e","preventDefault","stopPropagation","action","iconColor","shape","useTransparentBackground","icon","size","Small","customContent","isSelected","multiSelect","selected","indexOf","keyExpr","currentPageRows","length","map","index","selectable","onRowClick","undefined","columns","maxWidth","width","shortenText","justify","noRowsLabel"],"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';\nimport {\n StyledTableBody,\n StyledTableBodyRow,\n StyledTableCell,\n StyledTableCellContent,\n StyledTableCellIcon, \n StyledTableCellText,\n StyledTableNoRowsLabelRow\n} from './TableStyles';\nimport {defaultOnMouseDownHandler} from '../common';\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 tmp = ({\n variant: 'default',\n href: '#',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as HyperlinkProps;\n return (\n <HyperLink style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\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 tmp = ({\n iconColor: column.colorFn && column.colorFn(row, column.key),\n variant: 'secondary',\n shape: 'circular',\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n useTransparentBackground: true,\n ...column.additionalProps\n }) as IconButtonProps;\n return <IconButton {...tmp}\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 tmp = ({\n variant: 'tertiary',\n size: Size.Small,\n tabIndex: props.showLoadingIndicator ? -1 : 0,\n ...column.additionalProps\n }) as ButtonProps;\n return <Button style={column.colorFn && {color: column.colorFn(row, column.key)}}\n {...tmp}\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 {\n column.icon &&\n <StyledTableCellIcon>{column.icon}</StyledTableCellIcon>\n }\n <StyledTableCellText>{row[column.key]}</StyledTableCellText>\n </>\n );\n }\n }\n\n\n const isSelected = (row: any) => {\n return (props.multiSelect && props.selected?.indexOf(props.keyExpr ? row[props.keyExpr] : row) > -1) ||\n (!props.multiSelect && props.selected === (props.keyExpr ? row[props.keyExpr] : row));\n }\n\n return (\n <StyledTableBody>\n {props.currentPageRows.length > 0 ? (\n props.currentPageRows.map((row: any, index: number) => (\n <StyledTableBodyRow key={`row_${index}`}\n className={`${props.selectable ? 'selectable' : ''} ${ isSelected(row) ? 'selected' : ''}`}\n onClick={() => props.onRowClick && props.onRowClick(row)}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n props.onRowClick && props.onRowClick(row);\n }\n }}\n tabIndex={props.selectable && !props.showLoadingIndicator ? 0 : undefined}\n data-testid=\"TestTableDataRow\">\n {\n props.multiSelect &&\n <StyledTableCell>\n <StyledTableCellContent>\n <Checkbox selected={isSelected(row)}/>\n </StyledTableCellContent>\n </StyledTableCell>\n }\n {props.columns.map((column: TableColumn) => (\n <StyledTableCell key={`row_${index}_${column.key}`}\n style={{maxWidth: column.width}}\n title={column.shortenText && row[column.key]}>\n <StyledTableCellContent\n className={`${column.shortenText ? `truncate-text` : ''} ${column.justify || ''}`}\n style={{\n color: column.colorFn && column.colorFn(row, column.key),\n }}>\n {renderCellBody(column, row)}\n </StyledTableCellContent>\n </StyledTableCell>\n ))}\n </StyledTableBodyRow>\n ))\n ) : (\n <StyledTableNoRowsLabelRow data-testid=\"TestTableNoDataRow\">\n <StyledTableCell colSpan={props.columns.length + (props.multiSelect ? 1 : 0)}>\n <StyledTableCellContent className={'center'}>\n { props.noRowsLabel ?? 'There are no rows to display'}\n </StyledTableCellContent>\n </StyledTableCell>\n </StyledTableNoRowsLabelRow>\n )}\n\n </StyledTableBody>\n );\n }\n;\n\nexport default TableBody;\n"],"file":"TableBody.js"}