@laerdal/life-react-components 1.10.3-dev.7 → 1.10.3-dev.9

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 (41) hide show
  1. package/dist/Banners/Banner.cjs +41 -49
  2. package/dist/Banners/Banner.cjs.map +1 -1
  3. package/dist/Banners/Banner.d.ts +1 -2
  4. package/dist/Banners/Banner.js +40 -48
  5. package/dist/Banners/Banner.js.map +1 -1
  6. package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
  7. package/dist/ChipsInput/ChipInputField.js.map +1 -1
  8. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +1 -1
  9. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
  10. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +1 -1
  11. package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
  12. package/dist/InputFields/PasswordField.cjs.map +1 -1
  13. package/dist/InputFields/PasswordField.d.ts +1 -1
  14. package/dist/InputFields/PasswordField.js.map +1 -1
  15. package/dist/InputFields/TextField.cjs.map +1 -1
  16. package/dist/InputFields/TextField.d.ts +1 -1
  17. package/dist/InputFields/TextField.js.map +1 -1
  18. package/dist/Table/Table.cjs +21 -28
  19. package/dist/Table/Table.cjs.map +1 -1
  20. package/dist/Table/Table.js +22 -29
  21. package/dist/Table/Table.js.map +1 -1
  22. package/dist/Table/TableBody.cjs +122 -42
  23. package/dist/Table/TableBody.cjs.map +1 -1
  24. package/dist/Table/TableBody.d.ts +4 -1
  25. package/dist/Table/TableBody.js +120 -43
  26. package/dist/Table/TableBody.js.map +1 -1
  27. package/dist/Table/TableFooter.cjs +54 -59
  28. package/dist/Table/TableFooter.cjs.map +1 -1
  29. package/dist/Table/TableFooter.js +54 -59
  30. package/dist/Table/TableFooter.js.map +1 -1
  31. package/dist/Table/TableHeaders.cjs +13 -67
  32. package/dist/Table/TableHeaders.cjs.map +1 -1
  33. package/dist/Table/TableHeaders.d.ts +1 -4
  34. package/dist/Table/TableHeaders.js +15 -64
  35. package/dist/Table/TableHeaders.js.map +1 -1
  36. package/dist/Table/TableStyles.cjs +30 -20
  37. package/dist/Table/TableStyles.cjs.map +1 -1
  38. package/dist/Table/TableStyles.d.ts +5 -3
  39. package/dist/Table/TableStyles.js +23 -20
  40. package/dist/Table/TableStyles.js.map +1 -1
  41. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
3
  import _pt from "prop-types";
3
4
 
4
5
  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; }
@@ -11,8 +12,10 @@ import * as React from 'react';
11
12
  import { Checkbox } from '../InputFields';
12
13
  import IconButton from '../Button/Iconbutton';
13
14
  import { HyperLink } from '../HyperLink';
14
- import { StyledTableBody, StyledTableBodyRow, StyledTableCell, StyledTableCellContent, StyledTableCellIcon, StyledTableCellText, StyledTableNoRowsLabelRow } from './TableStyles';
15
+ import { StyledTableBody, StyledTableBodyRow, StyledTableCell, StyledTableCellContent, StyledTableCellIcon, StyledTableCellText, StyledTableHeaderColumn, StyledTableHeaderColumnContent, StyledTableHeaderColumns, StyledTableNoRowsLabelRow, StyledTable, StyledTableBodyWrapper, StyledTableHeaderRow } from './TableStyles';
15
16
  import { defaultOnMouseDownHandler } from '../common';
17
+ import { ArrowLineDown, ArrowLineUp } from "../icons/systemicons/SystemIcons";
18
+ import { useDimensionsRef } from "rooks";
16
19
  import { jsx as _jsx } from "react/jsx-runtime";
17
20
  import { Fragment as _Fragment } from "react/jsx-runtime";
18
21
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -20,6 +23,27 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
20
23
  var TableBody = function TableBody(props) {
21
24
  var _props$noRowsLabel;
22
25
 
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
+
23
47
  var renderCellBody = function renderCellBody(column, row) {
24
48
  switch (column.type) {
25
49
  case 'link':
@@ -112,52 +136,102 @@ var TableBody = function TableBody(props) {
112
136
  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);
113
137
  };
114
138
 
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)
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
+ })
134
158
  })
135
- })
136
- }), props.columns.map(function (column) {
137
- return /*#__PURE__*/_jsx(StyledTableCell, {
138
- style: {
139
- maxWidth: column.width
140
- },
141
- title: column.shortenText && row[column.key],
142
- children: /*#__PURE__*/_jsx(StyledTableCellContent, {
143
- className: "".concat(column.shortenText ? "truncate-text" : '', " ").concat(column.justify || ''),
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
+ },
144
170
  style: {
145
- color: column.colorFn && column.colorFn(row, column.key)
171
+ width: column.width
146
172
  },
147
- children: renderCellBody(column, row)
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
+ }
199
+ },
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),
228
+ 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'
148
231
  })
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'
232
+ })
159
233
  })
160
- })
234
+ })]
161
235
  })
162
236
  });
163
237
  };
@@ -165,7 +239,10 @@ var TableBody = function TableBody(props) {
165
239
  TableBody.propTypes = {
166
240
  currentPageRows: _pt.arrayOf(_pt.any).isRequired,
167
241
  onRowClick: _pt.func,
168
- selected: _pt.any
242
+ selected: _pt.any,
243
+ sortByColumn: _pt.func.isRequired,
244
+ onSelectAllClick: _pt.func.isRequired,
245
+ selectAllState: _pt.oneOf(['all', 'some', 'none']).isRequired
169
246
  };
170
247
  export default TableBody;
171
248
  //# 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","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"}
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"}
@@ -40,67 +40,62 @@ var TableFooter = function TableFooter(props) {
40
40
  value: '100'
41
41
  }];
42
42
  var dropDownText = "".concat((_props$rowsPerPageLab = props.rowsPerPageLabel) !== null && _props$rowsPerPageLab !== void 0 ? _props$rowsPerPageLab : 'Rows per page', " : ").concat(props.rowsPerPage);
43
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TableStyles.StyledTableFooter, {
44
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("tr", {
45
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("td", {
46
- colSpan: props.columns.length + (props.multiSelect ? 1 : 0),
47
- "data-testid": "TestTableFooterRow",
48
- children: [props.accordion && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterCollapseButton, {
49
- onClick: function onClick() {
50
- return props.setIsCollapsed(!props.isCollapsed);
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooter, {
44
+ "data-testid": "TestTableFooterRow",
45
+ children: [props.accordion && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterCollapseButton, {
46
+ onClick: function onClick() {
47
+ return props.setIsCollapsed(!props.isCollapsed);
48
+ },
49
+ onMouseDown: _common.defaultOnMouseDownHandler,
50
+ disabled: props.isCollapsed && props.rows.length <= props.rowsPerPage,
51
+ children: [props.isCollapsed && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
52
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
53
+ children: [(_props$showMoreLabel = props.showMoreLabel) !== null && _props$showMoreLabel !== void 0 ? _props$showMoreLabel : 'Show more', " (", props.rows.length - props.rowsPerPage, ")"]
54
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.ArrowDropDown, {})]
55
+ }), !props.isCollapsed && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
56
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
57
+ children: (_props$showFewerLabel = props.showFewerLabel) !== null && _props$showFewerLabel !== void 0 ? _props$showFewerLabel : 'Show fewer'
58
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.ArrowDropUp, {})]
59
+ })]
60
+ }), !props.accordion && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterContent, {
61
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.DropdownButton, {
62
+ type: 'text',
63
+ items: rowsPerPageValues,
64
+ disabled: props.showLoadingIndicator,
65
+ value: ["".concat(props.rowsPerPage)],
66
+ onClick: function onClick(value) {
67
+ return props.onRowsPerPageChange(+value[0]);
68
+ },
69
+ label: dropDownText,
70
+ keepLabel: true
71
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterCurrentInfo, {
72
+ children: [props.total === 0 ? 0 : props.from, "-", props.to, " of ", props.total]
73
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterControls, {
74
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
75
+ variant: "secondary",
76
+ shape: "circular",
77
+ action: function action() {
78
+ return props.prevPage();
51
79
  },
52
- onMouseDown: _common.defaultOnMouseDownHandler,
53
- disabled: props.isCollapsed && props.rows.length <= props.rowsPerPage,
54
- children: [props.isCollapsed && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
55
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
56
- children: [(_props$showMoreLabel = props.showMoreLabel) !== null && _props$showMoreLabel !== void 0 ? _props$showMoreLabel : 'Show more', " (", props.rows.length - props.rowsPerPage, ")"]
57
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.ArrowDropDown, {})]
58
- }), !props.isCollapsed && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
59
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
60
- children: (_props$showFewerLabel = props.showFewerLabel) !== null && _props$showFewerLabel !== void 0 ? _props$showFewerLabel : 'Show fewer'
61
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.ArrowDropUp, {})]
62
- })]
63
- }), !props.accordion && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterContent, {
64
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.DropdownButton, {
65
- type: 'text',
66
- items: rowsPerPageValues,
67
- disabled: props.showLoadingIndicator,
68
- value: ["".concat(props.rowsPerPage)],
69
- onClick: function onClick(value) {
70
- return props.onRowsPerPageChange(+value[0]);
71
- },
72
- label: dropDownText,
73
- keepLabel: true
74
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterCurrentInfo, {
75
- children: [props.total === 0 ? 0 : props.from, "-", props.to, " of ", props.total]
76
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TableStyles.StyledTableFooterControls, {
77
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
78
- variant: "secondary",
79
- shape: "circular",
80
- action: function action() {
81
- return props.prevPage();
82
- },
83
- disabled: props.from === 1 || props.showLoadingIndicator,
84
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ChevronLeft, {
85
- size: "24",
86
- color: _styles.COLORS.neutral_600
87
- })
88
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
89
- variant: "secondary",
90
- shape: "circular",
91
- action: function action() {
92
- return props.nextPage();
93
- },
94
- disabled: props.to === props.total || props.showLoadingIndicator,
95
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ChevronRight, {
96
- size: "24",
97
- color: _styles.COLORS.neutral_600
98
- })
99
- })]
100
- })]
80
+ disabled: props.from === 1 || props.showLoadingIndicator,
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ChevronLeft, {
82
+ size: "24",
83
+ color: _styles.COLORS.neutral_600
84
+ })
85
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
86
+ variant: "secondary",
87
+ shape: "circular",
88
+ action: function action() {
89
+ return props.nextPage();
90
+ },
91
+ disabled: props.to === props.total || props.showLoadingIndicator,
92
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ChevronRight, {
93
+ size: "24",
94
+ color: _styles.COLORS.neutral_600
95
+ })
101
96
  })]
102
- })
103
- })
97
+ })]
98
+ })]
104
99
  });
105
100
  };
106
101
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["TableFooter","props","rowsPerPageValues","value","dropDownText","rowsPerPageLabel","rowsPerPage","columns","length","multiSelect","accordion","setIsCollapsed","isCollapsed","defaultOnMouseDownHandler","rows","showMoreLabel","showFewerLabel","showLoadingIndicator","onRowsPerPageChange","total","from","to","prevPage","COLORS","neutral_600","nextPage"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {TableProps} from './TableTypes';\nimport {DropdownButton, DropdownItem} from '../Dropdown';\nimport {IconButton} from '../Button';\nimport {ChevronLeft, ChevronRight} from '../icons/systemicons/SystemIcons';\nimport {COLORS} from '../styles';\nimport {\n StyledTableFooter, StyledTableFooterCollapseButton,\n StyledTableFooterContent,\n StyledTableFooterControls,\n StyledTableFooterCurrentInfo\n} from './TableStyles';\nimport {SystemIcons} from '../icons';\nimport {defaultOnMouseDownHandler} from '../common';\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 setIsCollapsed: (isCollapsed: boolean) => void;\n isCollapsed: boolean;\n}\n\nconst TableFooter: React.FunctionComponent<TableFooterProps> = (props) => {\n const rowsPerPageValues: DropdownItem[] = [{value: '10'}, {value: '20'}, {value: '50'}, {value: '100'}];\n\n const dropDownText = `${props.rowsPerPageLabel ?? 'Rows per page'} : ${props.rowsPerPage}`;\n\n return (\n <StyledTableFooter>\n <tr>\n <td colSpan={props.columns.length + (props.multiSelect ? 1 : 0)} data-testid=\"TestTableFooterRow\">\n {\n props.accordion &&\n <StyledTableFooterCollapseButton onClick={() => props.setIsCollapsed(!props.isCollapsed)}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={props.isCollapsed && props.rows.length <= props.rowsPerPage}>\n {\n props.isCollapsed &&\n <>\n <span>{props.showMoreLabel ?? 'Show more'} ({props.rows.length - props.rowsPerPage})</span>\n <SystemIcons.ArrowDropDown/>\n </>\n }\n {\n !props.isCollapsed &&\n <>\n <span>{props.showFewerLabel ?? 'Show fewer'}</span>\n <SystemIcons.ArrowDropUp/>\n </>\n }\n </StyledTableFooterCollapseButton>\n }\n {\n !props.accordion &&\n <StyledTableFooterContent>\n <DropdownButton\n type={'text'}\n items={rowsPerPageValues}\n disabled={props.showLoadingIndicator}\n value={[`${props.rowsPerPage}`]}\n onClick={(value) => props.onRowsPerPageChange(+value[0])}\n label={dropDownText}\n keepLabel={true}\n />\n <StyledTableFooterCurrentInfo>\n {props.total === 0 ? 0 : props.from}-{props.to} of {props.total}\n </StyledTableFooterCurrentInfo>\n <StyledTableFooterControls>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.prevPage()}\n disabled={props.from === 1 || props.showLoadingIndicator}>\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 || props.showLoadingIndicator}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n </StyledTableFooterControls>\n </StyledTableFooterContent>\n }\n </td>\n </tr>\n </StyledTableFooter>\n );\n};\n\n\nexport default TableFooter;\n"],"file":"TableFooter.cjs"}
1
+ {"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["TableFooter","props","rowsPerPageValues","value","dropDownText","rowsPerPageLabel","rowsPerPage","accordion","setIsCollapsed","isCollapsed","defaultOnMouseDownHandler","rows","length","showMoreLabel","showFewerLabel","showLoadingIndicator","onRowsPerPageChange","total","from","to","prevPage","COLORS","neutral_600","nextPage"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {TableProps} from './TableTypes';\nimport {DropdownButton, DropdownItem} from '../Dropdown';\nimport {IconButton} from '../Button';\nimport {ChevronLeft, ChevronRight} from '../icons/systemicons/SystemIcons';\nimport {COLORS} from '../styles';\nimport {\n StyledTableFooter, StyledTableFooterCollapseButton,\n StyledTableFooterContent,\n StyledTableFooterControls,\n StyledTableFooterCurrentInfo\n} from './TableStyles';\nimport {SystemIcons} from '../icons';\nimport {defaultOnMouseDownHandler} from '../common';\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 setIsCollapsed: (isCollapsed: boolean) => void;\n isCollapsed: boolean;\n}\n\nconst TableFooter: React.FunctionComponent<TableFooterProps> = (props) => {\n const rowsPerPageValues: DropdownItem[] = [{value: '10'}, {value: '20'}, {value: '50'}, {value: '100'}];\n\n const dropDownText = `${props.rowsPerPageLabel ?? 'Rows per page'} : ${props.rowsPerPage}`;\n\n return (\n <StyledTableFooter data-testid=\"TestTableFooterRow\">\n {\n props.accordion &&\n <StyledTableFooterCollapseButton onClick={() => props.setIsCollapsed(!props.isCollapsed)}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={props.isCollapsed && props.rows.length <= props.rowsPerPage}>\n {\n props.isCollapsed &&\n <>\n <span>{props.showMoreLabel ?? 'Show more'} ({props.rows.length - props.rowsPerPage})</span>\n <SystemIcons.ArrowDropDown/>\n </>\n }\n {\n !props.isCollapsed &&\n <>\n <span>{props.showFewerLabel ?? 'Show fewer'}</span>\n <SystemIcons.ArrowDropUp/>\n </>\n }\n </StyledTableFooterCollapseButton>\n }\n {\n !props.accordion &&\n <StyledTableFooterContent>\n <DropdownButton\n type={'text'}\n items={rowsPerPageValues}\n disabled={props.showLoadingIndicator}\n value={[`${props.rowsPerPage}`]}\n onClick={(value) => props.onRowsPerPageChange(+value[0])}\n label={dropDownText}\n keepLabel={true}\n />\n <StyledTableFooterCurrentInfo>\n {props.total === 0 ? 0 : props.from}-{props.to} of {props.total}\n </StyledTableFooterCurrentInfo>\n <StyledTableFooterControls>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.prevPage()}\n disabled={props.from === 1 || props.showLoadingIndicator}>\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 || props.showLoadingIndicator}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n </StyledTableFooterControls>\n </StyledTableFooterContent>\n }\n </StyledTableFooter>\n );\n};\n\n\nexport default TableFooter;\n"],"file":"TableFooter.cjs"}
@@ -24,67 +24,62 @@ var TableFooter = function TableFooter(props) {
24
24
  value: '100'
25
25
  }];
26
26
  var dropDownText = "".concat((_props$rowsPerPageLab = props.rowsPerPageLabel) !== null && _props$rowsPerPageLab !== void 0 ? _props$rowsPerPageLab : 'Rows per page', " : ").concat(props.rowsPerPage);
27
- return /*#__PURE__*/_jsx(StyledTableFooter, {
28
- children: /*#__PURE__*/_jsx("tr", {
29
- children: /*#__PURE__*/_jsxs("td", {
30
- colSpan: props.columns.length + (props.multiSelect ? 1 : 0),
31
- "data-testid": "TestTableFooterRow",
32
- children: [props.accordion && /*#__PURE__*/_jsxs(StyledTableFooterCollapseButton, {
33
- onClick: function onClick() {
34
- return props.setIsCollapsed(!props.isCollapsed);
27
+ return /*#__PURE__*/_jsxs(StyledTableFooter, {
28
+ "data-testid": "TestTableFooterRow",
29
+ children: [props.accordion && /*#__PURE__*/_jsxs(StyledTableFooterCollapseButton, {
30
+ onClick: function onClick() {
31
+ return props.setIsCollapsed(!props.isCollapsed);
32
+ },
33
+ onMouseDown: defaultOnMouseDownHandler,
34
+ disabled: props.isCollapsed && props.rows.length <= props.rowsPerPage,
35
+ children: [props.isCollapsed && /*#__PURE__*/_jsxs(_Fragment, {
36
+ children: [/*#__PURE__*/_jsxs("span", {
37
+ children: [(_props$showMoreLabel = props.showMoreLabel) !== null && _props$showMoreLabel !== void 0 ? _props$showMoreLabel : 'Show more', " (", props.rows.length - props.rowsPerPage, ")"]
38
+ }), /*#__PURE__*/_jsx(SystemIcons.ArrowDropDown, {})]
39
+ }), !props.isCollapsed && /*#__PURE__*/_jsxs(_Fragment, {
40
+ children: [/*#__PURE__*/_jsx("span", {
41
+ children: (_props$showFewerLabel = props.showFewerLabel) !== null && _props$showFewerLabel !== void 0 ? _props$showFewerLabel : 'Show fewer'
42
+ }), /*#__PURE__*/_jsx(SystemIcons.ArrowDropUp, {})]
43
+ })]
44
+ }), !props.accordion && /*#__PURE__*/_jsxs(StyledTableFooterContent, {
45
+ children: [/*#__PURE__*/_jsx(DropdownButton, {
46
+ type: 'text',
47
+ items: rowsPerPageValues,
48
+ disabled: props.showLoadingIndicator,
49
+ value: ["".concat(props.rowsPerPage)],
50
+ onClick: function onClick(value) {
51
+ return props.onRowsPerPageChange(+value[0]);
52
+ },
53
+ label: dropDownText,
54
+ keepLabel: true
55
+ }), /*#__PURE__*/_jsxs(StyledTableFooterCurrentInfo, {
56
+ children: [props.total === 0 ? 0 : props.from, "-", props.to, " of ", props.total]
57
+ }), /*#__PURE__*/_jsxs(StyledTableFooterControls, {
58
+ children: [/*#__PURE__*/_jsx(IconButton, {
59
+ variant: "secondary",
60
+ shape: "circular",
61
+ action: function action() {
62
+ return props.prevPage();
35
63
  },
36
- onMouseDown: defaultOnMouseDownHandler,
37
- disabled: props.isCollapsed && props.rows.length <= props.rowsPerPage,
38
- children: [props.isCollapsed && /*#__PURE__*/_jsxs(_Fragment, {
39
- children: [/*#__PURE__*/_jsxs("span", {
40
- children: [(_props$showMoreLabel = props.showMoreLabel) !== null && _props$showMoreLabel !== void 0 ? _props$showMoreLabel : 'Show more', " (", props.rows.length - props.rowsPerPage, ")"]
41
- }), /*#__PURE__*/_jsx(SystemIcons.ArrowDropDown, {})]
42
- }), !props.isCollapsed && /*#__PURE__*/_jsxs(_Fragment, {
43
- children: [/*#__PURE__*/_jsx("span", {
44
- children: (_props$showFewerLabel = props.showFewerLabel) !== null && _props$showFewerLabel !== void 0 ? _props$showFewerLabel : 'Show fewer'
45
- }), /*#__PURE__*/_jsx(SystemIcons.ArrowDropUp, {})]
46
- })]
47
- }), !props.accordion && /*#__PURE__*/_jsxs(StyledTableFooterContent, {
48
- children: [/*#__PURE__*/_jsx(DropdownButton, {
49
- type: 'text',
50
- items: rowsPerPageValues,
51
- disabled: props.showLoadingIndicator,
52
- value: ["".concat(props.rowsPerPage)],
53
- onClick: function onClick(value) {
54
- return props.onRowsPerPageChange(+value[0]);
55
- },
56
- label: dropDownText,
57
- keepLabel: true
58
- }), /*#__PURE__*/_jsxs(StyledTableFooterCurrentInfo, {
59
- children: [props.total === 0 ? 0 : props.from, "-", props.to, " of ", props.total]
60
- }), /*#__PURE__*/_jsxs(StyledTableFooterControls, {
61
- children: [/*#__PURE__*/_jsx(IconButton, {
62
- variant: "secondary",
63
- shape: "circular",
64
- action: function action() {
65
- return props.prevPage();
66
- },
67
- disabled: props.from === 1 || props.showLoadingIndicator,
68
- children: /*#__PURE__*/_jsx(ChevronLeft, {
69
- size: "24",
70
- color: COLORS.neutral_600
71
- })
72
- }), /*#__PURE__*/_jsx(IconButton, {
73
- variant: "secondary",
74
- shape: "circular",
75
- action: function action() {
76
- return props.nextPage();
77
- },
78
- disabled: props.to === props.total || props.showLoadingIndicator,
79
- children: /*#__PURE__*/_jsx(ChevronRight, {
80
- size: "24",
81
- color: COLORS.neutral_600
82
- })
83
- })]
84
- })]
64
+ disabled: props.from === 1 || props.showLoadingIndicator,
65
+ children: /*#__PURE__*/_jsx(ChevronLeft, {
66
+ size: "24",
67
+ color: COLORS.neutral_600
68
+ })
69
+ }), /*#__PURE__*/_jsx(IconButton, {
70
+ variant: "secondary",
71
+ shape: "circular",
72
+ action: function action() {
73
+ return props.nextPage();
74
+ },
75
+ disabled: props.to === props.total || props.showLoadingIndicator,
76
+ children: /*#__PURE__*/_jsx(ChevronRight, {
77
+ size: "24",
78
+ color: COLORS.neutral_600
79
+ })
85
80
  })]
86
- })
87
- })
81
+ })]
82
+ })]
88
83
  });
89
84
  };
90
85
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["React","DropdownButton","IconButton","ChevronLeft","ChevronRight","COLORS","StyledTableFooter","StyledTableFooterCollapseButton","StyledTableFooterContent","StyledTableFooterControls","StyledTableFooterCurrentInfo","SystemIcons","defaultOnMouseDownHandler","TableFooter","props","rowsPerPageValues","value","dropDownText","rowsPerPageLabel","rowsPerPage","columns","length","multiSelect","accordion","setIsCollapsed","isCollapsed","rows","showMoreLabel","showFewerLabel","showLoadingIndicator","onRowsPerPageChange","total","from","to","prevPage","neutral_600","nextPage"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {TableProps} from './TableTypes';\nimport {DropdownButton, DropdownItem} from '../Dropdown';\nimport {IconButton} from '../Button';\nimport {ChevronLeft, ChevronRight} from '../icons/systemicons/SystemIcons';\nimport {COLORS} from '../styles';\nimport {\n StyledTableFooter, StyledTableFooterCollapseButton,\n StyledTableFooterContent,\n StyledTableFooterControls,\n StyledTableFooterCurrentInfo\n} from './TableStyles';\nimport {SystemIcons} from '../icons';\nimport {defaultOnMouseDownHandler} from '../common';\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 setIsCollapsed: (isCollapsed: boolean) => void;\n isCollapsed: boolean;\n}\n\nconst TableFooter: React.FunctionComponent<TableFooterProps> = (props) => {\n const rowsPerPageValues: DropdownItem[] = [{value: '10'}, {value: '20'}, {value: '50'}, {value: '100'}];\n\n const dropDownText = `${props.rowsPerPageLabel ?? 'Rows per page'} : ${props.rowsPerPage}`;\n\n return (\n <StyledTableFooter>\n <tr>\n <td colSpan={props.columns.length + (props.multiSelect ? 1 : 0)} data-testid=\"TestTableFooterRow\">\n {\n props.accordion &&\n <StyledTableFooterCollapseButton onClick={() => props.setIsCollapsed(!props.isCollapsed)}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={props.isCollapsed && props.rows.length <= props.rowsPerPage}>\n {\n props.isCollapsed &&\n <>\n <span>{props.showMoreLabel ?? 'Show more'} ({props.rows.length - props.rowsPerPage})</span>\n <SystemIcons.ArrowDropDown/>\n </>\n }\n {\n !props.isCollapsed &&\n <>\n <span>{props.showFewerLabel ?? 'Show fewer'}</span>\n <SystemIcons.ArrowDropUp/>\n </>\n }\n </StyledTableFooterCollapseButton>\n }\n {\n !props.accordion &&\n <StyledTableFooterContent>\n <DropdownButton\n type={'text'}\n items={rowsPerPageValues}\n disabled={props.showLoadingIndicator}\n value={[`${props.rowsPerPage}`]}\n onClick={(value) => props.onRowsPerPageChange(+value[0])}\n label={dropDownText}\n keepLabel={true}\n />\n <StyledTableFooterCurrentInfo>\n {props.total === 0 ? 0 : props.from}-{props.to} of {props.total}\n </StyledTableFooterCurrentInfo>\n <StyledTableFooterControls>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.prevPage()}\n disabled={props.from === 1 || props.showLoadingIndicator}>\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 || props.showLoadingIndicator}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n </StyledTableFooterControls>\n </StyledTableFooterContent>\n }\n </td>\n </tr>\n </StyledTableFooter>\n );\n};\n\n\nexport default TableFooter;\n"],"file":"TableFooter.js"}
1
+ {"version":3,"sources":["../../src/Table/TableFooter.tsx"],"names":["React","DropdownButton","IconButton","ChevronLeft","ChevronRight","COLORS","StyledTableFooter","StyledTableFooterCollapseButton","StyledTableFooterContent","StyledTableFooterControls","StyledTableFooterCurrentInfo","SystemIcons","defaultOnMouseDownHandler","TableFooter","props","rowsPerPageValues","value","dropDownText","rowsPerPageLabel","rowsPerPage","accordion","setIsCollapsed","isCollapsed","rows","length","showMoreLabel","showFewerLabel","showLoadingIndicator","onRowsPerPageChange","total","from","to","prevPage","neutral_600","nextPage"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {TableProps} from './TableTypes';\nimport {DropdownButton, DropdownItem} from '../Dropdown';\nimport {IconButton} from '../Button';\nimport {ChevronLeft, ChevronRight} from '../icons/systemicons/SystemIcons';\nimport {COLORS} from '../styles';\nimport {\n StyledTableFooter, StyledTableFooterCollapseButton,\n StyledTableFooterContent,\n StyledTableFooterControls,\n StyledTableFooterCurrentInfo\n} from './TableStyles';\nimport {SystemIcons} from '../icons';\nimport {defaultOnMouseDownHandler} from '../common';\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 setIsCollapsed: (isCollapsed: boolean) => void;\n isCollapsed: boolean;\n}\n\nconst TableFooter: React.FunctionComponent<TableFooterProps> = (props) => {\n const rowsPerPageValues: DropdownItem[] = [{value: '10'}, {value: '20'}, {value: '50'}, {value: '100'}];\n\n const dropDownText = `${props.rowsPerPageLabel ?? 'Rows per page'} : ${props.rowsPerPage}`;\n\n return (\n <StyledTableFooter data-testid=\"TestTableFooterRow\">\n {\n props.accordion &&\n <StyledTableFooterCollapseButton onClick={() => props.setIsCollapsed(!props.isCollapsed)}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={props.isCollapsed && props.rows.length <= props.rowsPerPage}>\n {\n props.isCollapsed &&\n <>\n <span>{props.showMoreLabel ?? 'Show more'} ({props.rows.length - props.rowsPerPage})</span>\n <SystemIcons.ArrowDropDown/>\n </>\n }\n {\n !props.isCollapsed &&\n <>\n <span>{props.showFewerLabel ?? 'Show fewer'}</span>\n <SystemIcons.ArrowDropUp/>\n </>\n }\n </StyledTableFooterCollapseButton>\n }\n {\n !props.accordion &&\n <StyledTableFooterContent>\n <DropdownButton\n type={'text'}\n items={rowsPerPageValues}\n disabled={props.showLoadingIndicator}\n value={[`${props.rowsPerPage}`]}\n onClick={(value) => props.onRowsPerPageChange(+value[0])}\n label={dropDownText}\n keepLabel={true}\n />\n <StyledTableFooterCurrentInfo>\n {props.total === 0 ? 0 : props.from}-{props.to} of {props.total}\n </StyledTableFooterCurrentInfo>\n <StyledTableFooterControls>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => props.prevPage()}\n disabled={props.from === 1 || props.showLoadingIndicator}>\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 || props.showLoadingIndicator}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600}/>\n </IconButton>\n </StyledTableFooterControls>\n </StyledTableFooterContent>\n }\n </StyledTableFooter>\n );\n};\n\n\nexport default TableFooter;\n"],"file":"TableFooter.js"}