@popmenu/table 0.46.0 → 0.47.1

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 (63) hide show
  1. package/build/components/ColumnFilterChip/ColumnFilterChip.d.ts +9 -0
  2. package/build/components/ColumnFilterChip/index.d.ts +1 -0
  3. package/build/components/ColumnFilterResetButton/ColumnFilterResetButton.d.ts +3 -0
  4. package/build/components/ColumnFilterResetButton/index.d.ts +1 -0
  5. package/build/components/FilterPanel/FilterControl/FilterControl.d.ts +3 -0
  6. package/build/components/FilterPanel/FilterControl/SelectFilter/SelectFilter.d.ts +5 -0
  7. package/build/components/FilterPanel/FilterControl/SelectFilter/SelectFilterStyles.d.ts +1 -0
  8. package/build/components/FilterPanel/FilterControl/SelectFilter/index.d.ts +1 -0
  9. package/build/components/FilterPanel/FilterControl/index.d.ts +1 -0
  10. package/build/components/FilterPanel/FilterPanel.d.ts +2 -0
  11. package/build/components/FilterPanel/FilterPanelProps.d.ts +11 -0
  12. package/build/components/FilterPanel/Panel/Panel.d.ts +7 -0
  13. package/build/components/FilterPanel/Panel/PanelStyles.d.ts +1 -0
  14. package/build/components/FilterPanel/Panel/index.d.ts +1 -0
  15. package/build/components/FilterPanel/Trigger/Trigger.d.ts +7 -0
  16. package/build/components/FilterPanel/Trigger/TriggerStyles.d.ts +1 -0
  17. package/build/components/FilterPanel/Trigger/index.d.ts +1 -0
  18. package/build/components/FilterPanel/index.d.ts +1 -0
  19. package/build/components/GlobalFilter/GlobalFilterStyles.d.ts +1 -0
  20. package/build/components/RowActions/RowActions.d.ts +3 -0
  21. package/build/components/RowActions/RowActionsProps.d.ts +11 -0
  22. package/build/components/RowActions/index.d.ts +2 -0
  23. package/build/components/Table/Table.d.ts +16 -2
  24. package/build/components/Table/TableProps.d.ts +31 -40
  25. package/build/components/Table/TableStyles.d.ts +1 -1
  26. package/build/components/Table/index.d.ts +1 -1
  27. package/build/components/TableBody/TableBody.d.ts +4 -2
  28. package/build/components/TableBody/index.d.ts +1 -1
  29. package/build/components/TableCell/TableCell.d.ts +4 -2
  30. package/build/components/TableCell/index.d.ts +1 -1
  31. package/build/components/TableContext/index.d.ts +3 -0
  32. package/build/components/TableFooter/TableFooter.d.ts +4 -2
  33. package/build/components/TableFooter/index.d.ts +1 -1
  34. package/build/components/TableHeader/TableHeader.d.ts +4 -2
  35. package/build/components/TableHeader/index.d.ts +1 -1
  36. package/build/components/TableHeaderCell/TableHeaderCell.d.ts +2 -2
  37. package/build/components/TableHeaderCell/TableHeaderCellProps.d.ts +5 -7
  38. package/build/components/TableHeaderCell/TableHeaderCellStyles.d.ts +3 -1
  39. package/build/components/TableHeaderCell/index.d.ts +2 -1
  40. package/build/components/TableHeaderRow/TableHeaderRow.d.ts +4 -2
  41. package/build/components/TableHeaderRow/index.d.ts +1 -1
  42. package/build/components/TableRow/TableRow.d.ts +4 -2
  43. package/build/components/TableRow/index.d.ts +1 -1
  44. package/build/components/index.d.ts +10 -1
  45. package/build/hooks/index.d.ts +1 -1
  46. package/build/hooks/useColumnFilters.d.ts +9 -0
  47. package/build/index.d.ts +0 -1
  48. package/build/index.es.js +2554 -393
  49. package/build/index.es.js.map +1 -1
  50. package/build/index.js +2577 -400
  51. package/build/index.js.map +1 -1
  52. package/build/util/coercedValueIncludesString.d.ts +2 -0
  53. package/build/util/getTableMinHeight.d.ts +2 -0
  54. package/build/util/index.d.ts +2 -0
  55. package/build/util/validateRowAction.d.ts +2 -0
  56. package/package.json +4 -4
  57. package/build/components/Table/util/makeColumns.d.ts +0 -7
  58. package/build/components/TableActionsCell/TableActionsCell.d.ts +0 -3
  59. package/build/components/TableActionsCell/TableActionsCellProps.d.ts +0 -10
  60. package/build/components/TableActionsCell/index.d.ts +0 -2
  61. package/build/hooks/useManualPagination/index.d.ts +0 -1
  62. package/build/hooks/useManualPagination/useManualPagination.d.ts +0 -5
  63. package/build/hooks/useManualPagination/useManualPaginationTypes.d.ts +0 -52
package/build/index.es.js CHANGED
@@ -1,30 +1,27 @@
1
1
  import * as React from 'react';
2
- import React__default, { forwardRef, createElement, useMemo, useState } from 'react';
3
- import { useTable } from 'react-table/src/hooks/useTable.js';
4
- import { usePagination } from 'react-table/src/plugin-hooks/usePagination.js';
5
- import { useSortBy } from 'react-table/src/plugin-hooks/useSortBy.js';
6
- import { useGlobalFilter } from 'react-table/src/plugin-hooks/useGlobalFilter.js';
2
+ import React__default, { createElement, forwardRef, createContext, useContext, useState, useRef, isValidElement } from 'react';
7
3
  import { Pagination } from '@material-ui/lab';
8
- import '@material-ui/lab/Alert';
9
- import { makeStyles, Typography as Typography$1, Link as Link$1, Paper as Paper$1, Box, useTheme as useTheme$1, TextField, InputAdornment } from '@material-ui/core';
4
+ import { useReactTable, getCoreRowModel, getSortedRowModel, getFilteredRowModel, getPaginationRowModel, flexRender } from '@tanstack/react-table';
5
+ import { makeStyles, Typography as Typography$2, Link as Link$2, Paper as Paper$2, Box, Select, TextField, Popover, ButtonBase, InputAdornment, useTheme as useTheme$1 } from '@material-ui/core';
6
+ import CommonAlert from '@material-ui/lab/Alert';
10
7
  import '@material-ui/core/AppBar';
11
8
  import MuiAvatar from '@material-ui/core/Avatar';
12
- import { makeStyles as makeStyles$1, useTheme } from '@material-ui/core/styles';
9
+ import { makeStyles as makeStyles$1, useTheme, lighten } from '@material-ui/core/styles';
13
10
  import '@material-ui/core/Badge';
14
11
  import MuiButton from '@material-ui/core/Button';
15
12
  import CircularProgress from '@material-ui/core/CircularProgress';
16
- import '@material-ui/core/ButtonGroup';
17
- import '@material-ui/core/Card';
13
+ import CommonButtonGroup from '@material-ui/core/ButtonGroup';
14
+ import Card from '@material-ui/core/Card';
18
15
  import '@material-ui/core/CardActionArea';
19
- import '@material-ui/core/CardActions';
20
- import '@material-ui/core/CardContent';
16
+ import CardActions from '@material-ui/core/CardActions';
17
+ import CardContent from '@material-ui/core/CardContent';
21
18
  import '@material-ui/core/CardHeader';
22
19
  import '@material-ui/core/CardMedia';
23
20
  import MuiCheckbox from '@material-ui/core/Checkbox';
24
21
  import FormControlLabel from '@material-ui/core/FormControlLabel';
25
- import '@material-ui/core/Chip';
22
+ import MuiChip from '@material-ui/core/Chip';
26
23
  import '@material-ui/core/Collapse';
27
- import '@material-ui/core/Dialog';
24
+ import Dialog from '@material-ui/core/Dialog';
28
25
  import '@material-ui/core/DialogActions';
29
26
  import '@material-ui/core/DialogContent';
30
27
  import '@material-ui/core/DialogTitle';
@@ -51,6 +48,10 @@ import '@material-ui/core/Tabs';
51
48
  import MuiToggleButton from '@material-ui/lab/ToggleButton';
52
49
  import MuiToggleButtonGroup from '@material-ui/lab/ToggleButtonGroup';
53
50
  import MuiTooltip from '@material-ui/core/Tooltip';
51
+ import '@material-ui/lab/AlertTitle';
52
+ import '@material-ui/core/Box';
53
+ import '@material-ui/core/Snackbar';
54
+ import createTheme from '@material-ui/core/styles/createTheme';
54
55
 
55
56
  /*! *****************************************************************************
56
57
  Copyright (c) Microsoft Corporation.
@@ -67,18 +68,18 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
67
68
  PERFORMANCE OF THIS SOFTWARE.
68
69
  ***************************************************************************** */
69
70
 
70
- var __assign$1 = function() {
71
- __assign$1 = Object.assign || function __assign(t) {
71
+ var __assign$3 = function() {
72
+ __assign$3 = Object.assign || function __assign(t) {
72
73
  for (var s, i = 1, n = arguments.length; i < n; i++) {
73
74
  s = arguments[i];
74
75
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
75
76
  }
76
77
  return t;
77
78
  };
78
- return __assign$1.apply(this, arguments);
79
+ return __assign$3.apply(this, arguments);
79
80
  };
80
81
 
81
- function __rest$1(s, e) {
82
+ function __rest$3(s, e) {
82
83
  var t = {};
83
84
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
84
85
  t[p] = s[p];
@@ -115,18 +116,18 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
115
116
  PERFORMANCE OF THIS SOFTWARE.
116
117
  ***************************************************************************** */
117
118
 
118
- var __assign = function() {
119
- __assign = Object.assign || function __assign(t) {
119
+ var __assign$2 = function() {
120
+ __assign$2 = Object.assign || function __assign(t) {
120
121
  for (var s, i = 1, n = arguments.length; i < n; i++) {
121
122
  s = arguments[i];
122
123
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
123
124
  }
124
125
  return t;
125
126
  };
126
- return __assign.apply(this, arguments);
127
+ return __assign$2.apply(this, arguments);
127
128
  };
128
129
 
129
- function __rest(s, e) {
130
+ function __rest$2(s, e) {
130
131
  var t = {};
131
132
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
132
133
  t[p] = s[p];
@@ -138,25 +139,145 @@ function __rest(s, e) {
138
139
  return t;
139
140
  }
140
141
 
141
- var _path$D;
142
+ var _g$1d$1, _defs$I$1;
142
143
 
143
- function _extends$1u() { _extends$1u = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1u.apply(this, arguments); }
144
+ function _extends$27$1() { _extends$27$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$27$1.apply(this, arguments); }
144
145
 
145
- function SvgUser(props) {
146
- return /*#__PURE__*/React.createElement("svg", _extends$1u({
146
+ function SvgCheckCircle$1(props) {
147
+ return /*#__PURE__*/React.createElement("svg", _extends$27$1({
147
148
  viewBox: "0 0 16 16",
148
149
  fill: "none",
149
150
  strokeLinecap: "round",
150
151
  strokeLinejoin: "round",
151
152
  width: "1em",
152
153
  height: "1em"
153
- }, props), _path$D || (_path$D = /*#__PURE__*/React.createElement("path", {
154
+ }, props), _g$1d$1 || (_g$1d$1 = /*#__PURE__*/React.createElement("g", {
155
+ clipPath: "url(#check-circle_svg__clip0_8_5831)",
156
+ stroke: "currentColor"
157
+ }, /*#__PURE__*/React.createElement("path", {
158
+ d: "M14.667 7.387V8a6.667 6.667 0 11-3.954-6.093"
159
+ }), /*#__PURE__*/React.createElement("path", {
160
+ d: "M14.667 2.667L8 9.34l-2-2"
161
+ }))), _defs$I$1 || (_defs$I$1 = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
162
+ id: "check-circle_svg__clip0_8_5831"
163
+ }, /*#__PURE__*/React.createElement("path", {
164
+ fill: "currentColor",
165
+ d: "M0 0h16v16H0z"
166
+ })))));
167
+ }
168
+
169
+ var _g$1b, _defs$G;
170
+
171
+ function _extends$24() { _extends$24 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$24.apply(this, arguments); }
172
+
173
+ function SvgXCircle(props) {
174
+ return /*#__PURE__*/React.createElement("svg", _extends$24({
175
+ viewBox: "0 0 16 16",
176
+ fill: "none",
177
+ strokeLinecap: "round",
178
+ strokeLinejoin: "round",
179
+ width: "1em",
180
+ height: "1em"
181
+ }, props), _g$1b || (_g$1b = /*#__PURE__*/React.createElement("g", {
182
+ clipPath: "url(#x-circle_svg__clip0_8_6136)",
183
+ stroke: "currentColor"
184
+ }, /*#__PURE__*/React.createElement("path", {
185
+ d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zM10 6l-4 4m0-4l4 4"
186
+ }))), _defs$G || (_defs$G = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
187
+ id: "x-circle_svg__clip0_8_6136"
188
+ }, /*#__PURE__*/React.createElement("path", {
189
+ fill: "currentColor",
190
+ d: "M0 0h16v16H0z"
191
+ })))));
192
+ }
193
+
194
+ var _g$13$1, _defs$A$1;
195
+
196
+ function _extends$1V$1() { _extends$1V$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1V$1.apply(this, arguments); }
197
+
198
+ function SvgInfo$1(props) {
199
+ return /*#__PURE__*/React.createElement("svg", _extends$1V$1({
200
+ viewBox: "0 0 16 16",
201
+ fill: "none",
202
+ strokeLinecap: "round",
203
+ strokeLinejoin: "round",
204
+ width: "1em",
205
+ height: "1em"
206
+ }, props), _g$13$1 || (_g$13$1 = /*#__PURE__*/React.createElement("g", {
207
+ clipPath: "url(#info_svg__clip0_8_5377)",
208
+ stroke: "currentColor"
209
+ }, /*#__PURE__*/React.createElement("path", {
210
+ d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zm0-4V8m0-2.667h.007"
211
+ }))), _defs$A$1 || (_defs$A$1 = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
212
+ id: "info_svg__clip0_8_5377"
213
+ }, /*#__PURE__*/React.createElement("path", {
214
+ fill: "currentColor",
215
+ d: "M0 0h16v16H0z"
216
+ })))));
217
+ }
218
+
219
+ var _path$D$1;
220
+
221
+ function _extends$1u$1() { _extends$1u$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1u$1.apply(this, arguments); }
222
+
223
+ function SvgUser$1(props) {
224
+ return /*#__PURE__*/React.createElement("svg", _extends$1u$1({
225
+ viewBox: "0 0 16 16",
226
+ fill: "none",
227
+ strokeLinecap: "round",
228
+ strokeLinejoin: "round",
229
+ width: "1em",
230
+ height: "1em"
231
+ }, props), _path$D$1 || (_path$D$1 = /*#__PURE__*/React.createElement("path", {
154
232
  d: "M13.333 14v-1.333A2.667 2.667 0 0010.667 10H5.333a2.667 2.667 0 00-2.666 2.667V14M8 7.333A2.667 2.667 0 108 2a2.667 2.667 0 000 5.333z",
155
233
  stroke: "currentColor"
156
234
  })));
157
235
  }
158
236
 
159
- var useIconStyles = makeStyles(function (_a) {
237
+ var _g$Q$1, _defs$r$1;
238
+
239
+ function _extends$1q$1() { _extends$1q$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1q$1.apply(this, arguments); }
240
+
241
+ function SvgError$1(props) {
242
+ return /*#__PURE__*/React.createElement("svg", _extends$1q$1({
243
+ viewBox: "0 0 16 16",
244
+ fill: "none",
245
+ strokeLinecap: "round",
246
+ strokeLinejoin: "round",
247
+ width: "1em",
248
+ height: "1em"
249
+ }, props), _g$Q$1 || (_g$Q$1 = /*#__PURE__*/React.createElement("g", {
250
+ clipPath: "url(#error_svg__clip0_8_5411)",
251
+ stroke: "currentColor"
252
+ }, /*#__PURE__*/React.createElement("path", {
253
+ d: "M5.24 1.333h5.52l3.907 3.907v5.52l-3.907 3.907H5.24L1.333 10.76V5.24L5.24 1.333zm2.76 4V8m0 2.666h.008"
254
+ }))), _defs$r$1 || (_defs$r$1 = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
255
+ id: "error_svg__clip0_8_5411"
256
+ }, /*#__PURE__*/React.createElement("path", {
257
+ fill: "currentColor",
258
+ d: "M0 0h16v16H0z"
259
+ })))));
260
+ }
261
+
262
+ var _path$A$1;
263
+
264
+ function _extends$1p$1() { _extends$1p$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1p$1.apply(this, arguments); }
265
+
266
+ function SvgWarning$1(props) {
267
+ return /*#__PURE__*/React.createElement("svg", _extends$1p$1({
268
+ viewBox: "0 0 16 16",
269
+ fill: "none",
270
+ strokeLinecap: "round",
271
+ strokeLinejoin: "round",
272
+ width: "1em",
273
+ height: "1em"
274
+ }, props), _path$A$1 || (_path$A$1 = /*#__PURE__*/React.createElement("path", {
275
+ d: "M6.86 2.573L1.213 12a1.334 1.334 0 001.14 2h11.294a1.332 1.332 0 001.14-2L9.14 2.573a1.333 1.333 0 00-2.28 0v0zM8 6v2.667m0 2.667h.007",
276
+ stroke: "currentColor"
277
+ })));
278
+ }
279
+
280
+ var useIconStyles$1 = makeStyles(function (_a) {
160
281
  var spacing = _a.spacing, palette = _a.palette;
161
282
  var getFontSize = function (_a) {
162
283
  var size = _a.size;
@@ -192,7 +313,7 @@ var useIconStyles = makeStyles(function (_a) {
192
313
  };
193
314
  });
194
315
 
195
- var classnames = {exports: {}};
316
+ var classnames$2 = {exports: {}};
196
317
 
197
318
  /*!
198
319
  Copyright (c) 2018 Jed Watson.
@@ -248,45 +369,45 @@ var classnames = {exports: {}};
248
369
  window.classNames = classNames;
249
370
  }
250
371
  }());
251
- }(classnames));
372
+ }(classnames$2));
252
373
 
253
- var classNames = classnames.exports;
374
+ var classNames = classnames$2.exports;
254
375
 
255
- var iconStaticClassName = 'pop-icon';
256
- var Icon = function (props) {
257
- var icon = props.icon, className = props.className, restProps = __rest(props, ["icon", "className"]);
258
- var classes = useIconStyles(props);
376
+ var iconStaticClassName$1 = 'pop-icon';
377
+ var Icon$1 = function (props) {
378
+ var icon = props.icon, className = props.className, restProps = __rest$2(props, ["icon", "className"]);
379
+ var classes = useIconStyles$1(props);
259
380
  var isValid = true;
260
381
  if (!icon || (typeof icon === 'function' && icon({}) === undefined)) {
261
382
  isValid = false;
262
383
  }
263
384
  return isValid
264
- ? createElement(icon, __assign({ className: classNames([classes.root, iconStaticClassName, className]) }, restProps))
385
+ ? createElement(icon, __assign$2({ className: classNames([classes.root, iconStaticClassName$1, className]) }, restProps))
265
386
  : null;
266
387
  };
267
- Icon.defaultProps = {
388
+ Icon$1.defaultProps = {
268
389
  size: 'inherit',
269
390
  color: 'inherit',
270
391
  };
271
- Icon.displayName = 'Icon';
392
+ Icon$1.displayName = 'Icon';
272
393
 
273
- var LoadingStatus;
394
+ var LoadingStatus$1;
274
395
  (function (LoadingStatus) {
275
396
  LoadingStatus["ERROR"] = "ERROR";
276
397
  LoadingStatus["LOADED"] = "LOADED";
277
398
  LoadingStatus["PENDING"] = "PENDING";
278
- })(LoadingStatus || (LoadingStatus = {}));
279
- var useImgProps = function (avatarProps) {
280
- var _a = React__default.useState(LoadingStatus.PENDING), loaded = _a[0], setLoaded = _a[1];
281
- var imgProps = __assign(__assign({}, avatarProps.imgProps), { onLoad: function (event) {
399
+ })(LoadingStatus$1 || (LoadingStatus$1 = {}));
400
+ var useImgProps$1 = function (avatarProps) {
401
+ var _a = React__default.useState(LoadingStatus$1.PENDING), loaded = _a[0], setLoaded = _a[1];
402
+ var imgProps = __assign$2(__assign$2({}, avatarProps.imgProps), { onLoad: function (event) {
282
403
  var _a, _b;
283
- setLoaded(LoadingStatus.LOADED);
404
+ setLoaded(LoadingStatus$1.LOADED);
284
405
  (_b = (_a = avatarProps.imgProps) === null || _a === void 0 ? void 0 : _a.onLoad) === null || _b === void 0 ? void 0 : _b.call(_a, event);
285
406
  } });
286
407
  return { imgProps: imgProps, loaded: loaded };
287
408
  };
288
409
 
289
- var getAvatarDimensions = function (theme, props) {
410
+ var getAvatarDimensions$1 = function (theme, props) {
290
411
  var factors = {
291
412
  'extra-small': 3,
292
413
  small: 4,
@@ -297,7 +418,7 @@ var getAvatarDimensions = function (theme, props) {
297
418
  var sizeFactor = factors[props.size || 'medium'];
298
419
  return theme.spacing(sizeFactor);
299
420
  };
300
- var getAvatarFontSize = function (props) {
421
+ var getAvatarFontSize$1 = function (props) {
301
422
  var fontSizes = {
302
423
  'extra-small': '0.75rem',
303
424
  small: '1rem',
@@ -307,25 +428,25 @@ var getAvatarFontSize = function (props) {
307
428
  };
308
429
  return fontSizes[props.size];
309
430
  };
310
- var useAvatarStyles = makeStyles$1(function (theme) { return ({
431
+ var useAvatarStyles$1 = makeStyles$1(function (theme) { return ({
311
432
  root: function (props) { return ({
312
- width: getAvatarDimensions(theme, props),
313
- height: getAvatarDimensions(theme, props),
314
- fontSize: getAvatarFontSize(props),
315
- backgroundColor: props.loaded === LoadingStatus.LOADED ? 'transparent' : props.background,
433
+ width: getAvatarDimensions$1(theme, props),
434
+ height: getAvatarDimensions$1(theme, props),
435
+ fontSize: getAvatarFontSize$1(props),
436
+ backgroundColor: props.loaded === LoadingStatus$1.LOADED ? 'transparent' : props.background,
316
437
  color: theme.palette.getContrastText(props.background),
317
438
  objectFit: props.fit,
318
439
  }); },
319
440
  fallback: function (props) { return ({
320
- fontSize: getAvatarDimensions(theme, props),
441
+ fontSize: getAvatarDimensions$1(theme, props),
321
442
  strokeWidth: 1,
322
443
  }); },
323
444
  }); });
324
445
 
325
- var Avatar = forwardRef(function (props, ref) {
326
- var children = props.children, src = props.src, alt = props.alt, fallback = props.fallback, muiProps = __rest(props, ["children", "src", "alt", "fallback"]);
327
- var _a = useImgProps(props), imgProps = _a.imgProps, loaded = _a.loaded;
328
- var classes = useAvatarStyles(__assign(__assign({}, props), { loaded: loaded }));
446
+ var Avatar$1 = forwardRef(function (props, ref) {
447
+ var children = props.children, src = props.src, alt = props.alt, fallback = props.fallback, muiProps = __rest$2(props, ["children", "src", "alt", "fallback"]);
448
+ var _a = useImgProps$1(props), imgProps = _a.imgProps, loaded = _a.loaded;
449
+ var classes = useAvatarStyles$1(__assign$2(__assign$2({}, props), { loaded: loaded }));
329
450
  var displayAltTextFallback = src && alt;
330
451
  var displayNoFallback = fallback === 'none';
331
452
  var displayCustomFallback = fallback !== 'none' && typeof fallback !== 'undefined';
@@ -340,18 +461,18 @@ var Avatar = forwardRef(function (props, ref) {
340
461
  Fallback = fallback;
341
462
  }
342
463
  else {
343
- Fallback = React__default.createElement(Icon, { icon: SvgUser, className: classes.fallback });
464
+ Fallback = React__default.createElement(Icon$1, { icon: SvgUser$1, className: classes.fallback });
344
465
  }
345
- return (React__default.createElement(MuiAvatar, __assign({ ref: ref, classes: { root: classes.root }, src: src, alt: alt }, muiProps, { imgProps: imgProps }), children || Fallback));
466
+ return (React__default.createElement(MuiAvatar, __assign$2({ ref: ref, classes: { root: classes.root }, src: src, alt: alt }, muiProps, { imgProps: imgProps }), children || Fallback));
346
467
  });
347
- Avatar.defaultProps = {
468
+ Avatar$1.defaultProps = {
348
469
  size: 'medium',
349
470
  fit: 'cover',
350
471
  background: '#E0E0E0',
351
472
  };
352
- Avatar.displayName = 'Avatar';
473
+ Avatar$1.displayName = 'Avatar';
353
474
 
354
- var useButtonStyles = makeStyles$1(function () { return ({
475
+ var useButtonStyles$2 = makeStyles$1(function () { return ({
355
476
  root: {
356
477
  minWidth: 'unset',
357
478
  },
@@ -363,29 +484,29 @@ var useButtonStyles = makeStyles$1(function () { return ({
363
484
  },
364
485
  }); });
365
486
 
366
- var Button = forwardRef(function (props, ref) {
367
- props.textTransform; var loading = props.loading, classesOverride = props.classes, className = props.className, muiProps = __rest(props, ["textTransform", "loading", "classes", "className"]);
368
- props.classes; var styleProps = __rest(props, ["classes"]);
369
- var classes = useButtonStyles(styleProps);
487
+ var Button$2 = forwardRef(function (props, ref) {
488
+ props.textTransform; var loading = props.loading, classesOverride = props.classes, className = props.className, muiProps = __rest$2(props, ["textTransform", "loading", "classes", "className"]);
489
+ props.classes; var styleProps = __rest$2(props, ["classes"]);
490
+ var classes = useButtonStyles$2(styleProps);
370
491
  var typography = useTheme().typography;
371
492
  var loadingIndicator = {
372
493
  startIcon: React__default.createElement(CircularProgress, { color: "inherit", size: typography.button.fontSize }),
373
494
  disabled: true,
374
495
  };
375
- return (React__default.createElement(MuiButton, __assign({ ref: ref, classes: __assign(__assign({}, classes), classesOverride), className: classNames([className, 'pm-button']) }, muiProps, (loading && loadingIndicator))));
496
+ return (React__default.createElement(MuiButton, __assign$2({ ref: ref, classes: __assign$2(__assign$2({}, classes), classesOverride), className: classNames([className, 'pm-button']) }, muiProps, (loading && loadingIndicator))));
376
497
  });
377
- Button.displayName = 'Button';
498
+ Button$2.displayName = 'Button';
378
499
 
379
- var Checkbox = forwardRef(function (props, ref) {
380
- var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
381
- var control = React__default.createElement(MuiCheckbox, __assign({ disabled: label ? undefined : disabled }, muiProps));
382
- return label ? (React__default.createElement(FormControlLabel, __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
500
+ var Checkbox$1 = forwardRef(function (props, ref) {
501
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest$2(props, ["label", "disabled", "LabelProps"]);
502
+ var control = React__default.createElement(MuiCheckbox, __assign$2({ disabled: label ? undefined : disabled }, muiProps));
503
+ return label ? (React__default.createElement(FormControlLabel, __assign$2({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
383
504
  });
384
- Checkbox.displayName = 'Checkbox';
505
+ Checkbox$1.displayName = 'Checkbox';
385
506
 
386
- var getBackground = function (theme) { return function (props) {
507
+ var getBackground$2 = function (theme) { return function (props) {
387
508
  var variant = props.variant, severity = props.severity;
388
- var background;
509
+ var background = theme.palette.grey[100];
389
510
  var backgrounds = {
390
511
  outlined: 'none',
391
512
  error: 'error.main',
@@ -402,7 +523,7 @@ var getBackground = function (theme) { return function (props) {
402
523
  }
403
524
  return background;
404
525
  }; };
405
- var getColor = function (theme) { return function (props) {
526
+ var getColor$2 = function (theme) { return function (props) {
406
527
  var variant = props.variant, severity = props.severity;
407
528
  var textColor;
408
529
  if (variant === 'outlined' && severity) {
@@ -428,7 +549,7 @@ var getColor = function (theme) { return function (props) {
428
549
  }
429
550
  return textColor;
430
551
  }; };
431
- var getBorder = function (theme) { return function (props) {
552
+ var getBorder$1 = function (theme) { return function (props) {
432
553
  var variant = props.variant, severity = props.severity;
433
554
  var borderColor;
434
555
  if (variant === 'outlined' && severity) {
@@ -442,11 +563,11 @@ var getBorder = function (theme) { return function (props) {
442
563
  }
443
564
  return borderColor;
444
565
  }; };
445
- makeStyles$1(function (theme) { return ({
566
+ var useChipStyles = makeStyles$1(function (theme) { return ({
446
567
  root: {
447
- background: getBackground(theme),
448
- color: getColor(theme),
449
- borderColor: getBorder(theme),
568
+ background: getBackground$2(theme),
569
+ color: getColor$2(theme),
570
+ borderColor: getBorder$1(theme),
450
571
  borderRadius: theme.spacing(0.5),
451
572
  },
452
573
  icon: {
@@ -454,19 +575,37 @@ makeStyles$1(function (theme) { return ({
454
575
  height: theme.spacing(2),
455
576
  width: theme.spacing(2),
456
577
  },
578
+ deleteIcon: {
579
+ color: theme.palette.grey[500],
580
+ },
457
581
  }); });
458
582
 
459
- var defaultTypographyProps = {
583
+ var IconDictionary = {
584
+ error: SvgError$1,
585
+ info: SvgInfo$1,
586
+ success: SvgCheckCircle$1,
587
+ warning: SvgWarning$1,
588
+ };
589
+ var Chip = function (props) {
590
+ var severity = props.severity, restProps = __rest$2(props, ["severity"]);
591
+ var classes = useChipStyles(props);
592
+ var icon = severity ? React__default.createElement(IconDictionary[severity]) : undefined;
593
+ var deleteIcon = React__default.createElement(SvgXCircle);
594
+ return React__default.createElement(MuiChip, __assign$2({ classes: classes, icon: icon, deleteIcon: deleteIcon }, restProps));
595
+ };
596
+ Chip.displayName = 'Chip';
597
+
598
+ var defaultTypographyProps$1 = {
460
599
  variant: 'body1',
461
600
  };
462
601
 
463
- var weights = {
602
+ var weights$1 = {
464
603
  regular: 400,
465
604
  medium: 500,
466
605
  'semi-bold': 600,
467
606
  bold: 700,
468
607
  };
469
- var getCustomColor = function (theme, color) {
608
+ var getCustomColor$1 = function (theme, color) {
470
609
  var isCommonColor = color && ['white', 'black'].includes(color);
471
610
  var isGreyColor = color && color.match(/^grey\.\d{3}/);
472
611
  var isSemanticColor = color && color.match(/(primary|secondary|info|success|error|warning).?(light|dark)?/);
@@ -486,11 +625,11 @@ var getCustomColor = function (theme, color) {
486
625
  return undefined;
487
626
  }
488
627
  };
489
- var useTypographyStyles = makeStyles$1(function (theme) {
628
+ var useTypographyStyles$1 = makeStyles$1(function (theme) {
490
629
  var _a;
491
630
  return ({
492
631
  root: (_a = {},
493
- _a["& ." + iconStaticClassName] = {
632
+ _a["& ." + iconStaticClassName$1] = {
494
633
  position: 'relative',
495
634
  top: '0.125em',
496
635
  padding: '0 0.125em',
@@ -499,7 +638,7 @@ var useTypographyStyles = makeStyles$1(function (theme) {
499
638
  _a.fontFamily = theme.typography.fontFamily,
500
639
  _a.fontWeight = function (_a) {
501
640
  var variant = _a.variant, weight = _a.weight;
502
- return (weight ? weights[weight] : theme.typography[variant].fontWeight);
641
+ return (weight ? weights$1[weight] : theme.typography[variant].fontWeight);
503
642
  },
504
643
  _a.fontSize = function (_a) {
505
644
  var variant = _a.variant;
@@ -515,7 +654,7 @@ var useTypographyStyles = makeStyles$1(function (theme) {
515
654
  },
516
655
  _a.color = function (_a) {
517
656
  var color = _a.color, variant = _a.variant;
518
- return (color && getCustomColor(theme, color)) || theme.typography[variant].color;
657
+ return (color && getCustomColor$1(theme, color)) || theme.typography[variant].color;
519
658
  },
520
659
  _a),
521
660
  caption: {
@@ -527,16 +666,16 @@ var useTypographyStyles = makeStyles$1(function (theme) {
527
666
  });
528
667
  });
529
668
 
530
- var Typography = forwardRef(function (props, ref) {
531
- props.weight; props.color; var restProps = __rest(props, ["weight", "color"]);
532
- var classes = useTypographyStyles(__assign({}, props));
669
+ var Typography$1 = forwardRef(function (props, ref) {
670
+ props.weight; props.color; var restProps = __rest$2(props, ["weight", "color"]);
671
+ var classes = useTypographyStyles$1(__assign$2({}, props));
533
672
  var variantMapping = { subtitle1: 'p' };
534
- return React__default.createElement(Typography$1, __assign({ ref: ref, classes: classes, variantMapping: variantMapping }, restProps));
673
+ return React__default.createElement(Typography$2, __assign$2({ ref: ref, classes: classes, variantMapping: variantMapping }, restProps));
535
674
  });
536
- Typography.displayName = 'Typography';
537
- Typography.defaultProps = defaultTypographyProps;
675
+ Typography$1.displayName = 'Typography';
676
+ Typography$1.defaultProps = defaultTypographyProps$1;
538
677
 
539
- var getFadeStop = function (_a, typographyVariant) {
678
+ var getFadeStop$1 = function (_a, typographyVariant) {
540
679
  var typography = _a.typography;
541
680
  return !isNaN(Number(typography[typographyVariant].lineHeight))
542
681
  ? typography[typographyVariant].lineHeight + "rem"
@@ -549,11 +688,11 @@ makeStyles(function (theme) { return ({
549
688
  left: 0,
550
689
  height: '100%',
551
690
  width: '100%',
552
- background: function (props) { return "linear-gradient(to top, white, #FFF0 " + getFadeStop(theme, props.typographyVariant) + ")"; },
691
+ background: function (props) { return "linear-gradient(to top, white, #FFF0 " + getFadeStop$1(theme, props.typographyVariant) + ")"; },
553
692
  },
554
693
  }); });
555
694
 
556
- var SemanticColors;
695
+ var SemanticColors$1;
557
696
  (function (SemanticColors) {
558
697
  SemanticColors["PRIMARY_MAIN"] = "primary.main";
559
698
  SemanticColors["PRIMARY_DARK"] = "primary.dark";
@@ -561,7 +700,7 @@ var SemanticColors;
561
700
  SemanticColors["SECONDARY_MAIN"] = "secondary.main";
562
701
  SemanticColors["SECONDARY_DARK"] = "secondary.dark";
563
702
  SemanticColors["SECONDARY_LIGHT"] = "secondary.light";
564
- })(SemanticColors || (SemanticColors = {}));
703
+ })(SemanticColors$1 || (SemanticColors$1 = {}));
565
704
  makeStyles(function (theme) { return ({
566
705
  dividerRoot: {
567
706
  gap: theme.spacing(2),
@@ -569,7 +708,7 @@ makeStyles(function (theme) { return ({
569
708
  textRoot: {
570
709
  color: function (props) {
571
710
  var textColor = props.textColor;
572
- if (Object.values(SemanticColors).includes(textColor)) {
711
+ if (Object.values(SemanticColors$1).includes(textColor)) {
573
712
  var _a = textColor.split('.'), semanticColor = _a[0], shade = _a[1];
574
713
  return theme.palette[semanticColor][shade];
575
714
  }
@@ -585,7 +724,7 @@ makeStyles(function (theme) { return ({
585
724
  dividerLine: {
586
725
  backgroundColor: function (props) {
587
726
  var dividerColor = props.dividerColor;
588
- if (Object.values(SemanticColors).includes(dividerColor)) {
727
+ if (Object.values(SemanticColors$1).includes(dividerColor)) {
589
728
  var _a = dividerColor.split('.'), semanticColor = _a[0], shade = _a[1];
590
729
  return theme.palette[semanticColor][shade];
591
730
  }
@@ -599,34 +738,34 @@ makeStyles(function (theme) { return ({
599
738
  },
600
739
  }); });
601
740
 
602
- var IconButton = forwardRef(function (props, ref) {
603
- return React__default.createElement(MuiIconButton, __assign({ ref: ref }, props));
741
+ var IconButton$1 = forwardRef(function (props, ref) {
742
+ return React__default.createElement(MuiIconButton, __assign$2({ ref: ref }, props));
604
743
  });
605
- IconButton.displayName = 'IconButton';
606
- IconButton.defaultProps = {
744
+ IconButton$1.displayName = 'IconButton';
745
+ IconButton$1.defaultProps = {
607
746
  color: 'secondary',
608
747
  };
609
748
 
610
- var useLinkStyles = makeStyles$1(function (theme) { return ({
749
+ var useLinkStyles$1 = makeStyles$1(function (theme) { return ({
611
750
  root: function (props) {
612
751
  var _a;
613
- return (__assign(__assign({ display: 'flex' }, (props.color === undefined && { color: theme.palette.info.main })), (_a = {}, _a["& ." + iconStaticClassName] = {
752
+ return (__assign$2(__assign$2({ display: 'flex' }, (props.color === undefined && { color: theme.palette.info.main })), (_a = {}, _a["& ." + iconStaticClassName$1] = {
614
753
  alignSelf: 'center',
615
754
  }, _a)));
616
755
  },
617
756
  }); });
618
757
 
619
- var Link = forwardRef(function (props, ref) {
620
- var children = props.children, muiProps = __rest(props, ["children"]);
621
- var classes = useLinkStyles(props);
622
- return (React__default.createElement(Link$1, __assign({ ref: ref, classes: { root: classes.root } }, muiProps), children));
758
+ var Link$1 = forwardRef(function (props, ref) {
759
+ var children = props.children, muiProps = __rest$2(props, ["children"]);
760
+ var classes = useLinkStyles$1(props);
761
+ return (React__default.createElement(Link$2, __assign$2({ ref: ref, classes: { root: classes.root } }, muiProps), children));
623
762
  });
624
- Link.defaultProps = {
763
+ Link$1.defaultProps = {
625
764
  variant: 'body1',
626
765
  };
627
- Link.displayName = 'Link';
766
+ Link$1.displayName = 'Link';
628
767
 
629
- var useStyles = makeStyles(function (_a) {
768
+ var useStyles$7 = makeStyles(function (_a) {
630
769
  var spacing = _a.spacing;
631
770
  return ({
632
771
  root: {
@@ -638,22 +777,22 @@ var useStyles = makeStyles(function (_a) {
638
777
  },
639
778
  });
640
779
  });
641
- var Paper = forwardRef(function (props, ref) {
642
- var legacyStyles = props.legacyStyles, restProps = __rest(props, ["legacyStyles"]);
643
- var classes = useStyles(props);
644
- return React__default.createElement(Paper$1, __assign({}, ref, { classes: __assign({}, (legacyStyles && classes)) }, restProps));
780
+ var Paper$1 = forwardRef(function (props, ref) {
781
+ var legacyStyles = props.legacyStyles, restProps = __rest$2(props, ["legacyStyles"]);
782
+ var classes = useStyles$7(props);
783
+ return React__default.createElement(Paper$2, __assign$2({}, ref, { classes: __assign$2({}, (legacyStyles && classes)) }, restProps));
645
784
  });
646
- Paper.displayName = 'Paper';
647
- Paper.defaultProps = {
785
+ Paper$1.displayName = 'Paper';
786
+ Paper$1.defaultProps = {
648
787
  legacyStyles: false,
649
788
  };
650
789
 
651
- var Radio = forwardRef(function (props, ref) {
652
- var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
653
- var control = React__default.createElement(MuiRadio, __assign({ disabled: label ? undefined : disabled }, muiProps));
654
- return label ? (React__default.createElement(FormControlLabel, __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
790
+ var Radio$1 = forwardRef(function (props, ref) {
791
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest$2(props, ["label", "disabled", "LabelProps"]);
792
+ var control = React__default.createElement(MuiRadio, __assign$2({ disabled: label ? undefined : disabled }, muiProps));
793
+ return label ? (React__default.createElement(FormControlLabel, __assign$2({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
655
794
  });
656
- Radio.displayName = 'Radio';
795
+ Radio$1.displayName = 'Radio';
657
796
 
658
797
  makeStyles$1(function () { return ({
659
798
  textfield: {
@@ -680,7 +819,7 @@ makeStyles$1(function () { return ({
680
819
  focused: {},
681
820
  }); });
682
821
 
683
- var useSwitchStyles = makeStyles$1(function (theme) { return ({
822
+ var useSwitchStyles$1 = makeStyles$1(function (theme) { return ({
684
823
  checked: {
685
824
  '& $thumb': {
686
825
  background: theme.palette.success.main,
@@ -693,15 +832,15 @@ var useSwitchStyles = makeStyles$1(function (theme) { return ({
693
832
  track: {},
694
833
  }); });
695
834
 
696
- var Switch = forwardRef(function (props, ref) {
697
- var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
698
- var classes = useSwitchStyles(props);
699
- var control = React__default.createElement(MuiSwitch, __assign({ classes: classes, disabled: label ? undefined : disabled }, muiProps));
700
- return label ? (React__default.createElement(FormControlLabel, __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
835
+ var Switch$1 = forwardRef(function (props, ref) {
836
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest$2(props, ["label", "disabled", "LabelProps"]);
837
+ var classes = useSwitchStyles$1(props);
838
+ var control = React__default.createElement(MuiSwitch, __assign$2({ classes: classes, disabled: label ? undefined : disabled }, muiProps));
839
+ return label ? (React__default.createElement(FormControlLabel, __assign$2({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
701
840
  });
702
- Switch.displayName = 'Switch';
841
+ Switch$1.displayName = 'Switch';
703
842
 
704
- var useToggleButtonStyles = makeStyles$1(function (theme) { return ({
843
+ var useToggleButtonStyles$1 = makeStyles$1(function (theme) { return ({
705
844
  root: {
706
845
  color: theme.palette.text.primary,
707
846
  },
@@ -716,20 +855,20 @@ var useToggleButtonStyles = makeStyles$1(function (theme) { return ({
716
855
  },
717
856
  }); });
718
857
 
719
- var ToggleButton = forwardRef(function (props, ref) {
720
- var children = props.children, muiProps = __rest(props, ["children"]);
721
- var classes = useToggleButtonStyles(props);
722
- return (React__default.createElement(MuiToggleButton, __assign({ ref: ref, classes: {
858
+ var ToggleButton$1 = forwardRef(function (props, ref) {
859
+ var children = props.children, muiProps = __rest$2(props, ["children"]);
860
+ var classes = useToggleButtonStyles$1(props);
861
+ return (React__default.createElement(MuiToggleButton, __assign$2({ ref: ref, classes: {
723
862
  root: classes.root,
724
863
  selected: classes.selected,
725
864
  } }, muiProps), children));
726
865
  });
727
- ToggleButton.defaultProps = {
866
+ ToggleButton$1.defaultProps = {
728
867
  color: 'primary',
729
868
  };
730
- ToggleButton.displayName = 'ToggleButton';
869
+ ToggleButton$1.displayName = 'ToggleButton';
731
870
 
732
- var useToggleButtonGroupStyles = makeStyles$1(function (theme) { return ({
871
+ var useToggleButtonGroupStyles$1 = makeStyles$1(function (theme) { return ({
733
872
  root: {
734
873
  '&&': {
735
874
  backgroundColor: theme.palette.grey[300],
@@ -737,20 +876,20 @@ var useToggleButtonGroupStyles = makeStyles$1(function (theme) { return ({
737
876
  },
738
877
  }); });
739
878
 
740
- var ToggleButtonGroup = forwardRef(function (props, ref) {
741
- var children = props.children, _a = props.color, color = _a === void 0 ? 'primary' : _a, muiProps = __rest(props, ["children", "color"]);
742
- var classes = useToggleButtonGroupStyles(props);
879
+ var ToggleButtonGroup$1 = forwardRef(function (props, ref) {
880
+ var children = props.children, _a = props.color, color = _a === void 0 ? 'primary' : _a, muiProps = __rest$2(props, ["children", "color"]);
881
+ var classes = useToggleButtonGroupStyles$1(props);
743
882
  var childrenWithProps = React__default.Children.map(children, function (child) {
744
883
  if (!React__default.isValidElement(child)) {
745
884
  return null;
746
885
  }
747
886
  return React__default.cloneElement(child, { color: color });
748
887
  });
749
- return (React__default.createElement(MuiToggleButtonGroup, __assign({ ref: ref, classes: { root: classes.root } }, muiProps), childrenWithProps));
888
+ return (React__default.createElement(MuiToggleButtonGroup, __assign$2({ ref: ref, classes: { root: classes.root } }, muiProps), childrenWithProps));
750
889
  });
751
- ToggleButtonGroup.displayName = 'ToggleButtonGroup';
890
+ ToggleButtonGroup$1.displayName = 'ToggleButtonGroup';
752
891
 
753
- var useTooltipStyles = makeStyles$1(function (_a) {
892
+ var useTooltipStyles$1 = makeStyles$1(function (_a) {
754
893
  var typography = _a.typography;
755
894
  return ({
756
895
  tooltip: {
@@ -759,11 +898,11 @@ var useTooltipStyles = makeStyles$1(function (_a) {
759
898
  });
760
899
  });
761
900
 
762
- var Tooltip = forwardRef(function (props, ref) {
763
- var classes = useTooltipStyles(props);
764
- return React__default.createElement(MuiTooltip, __assign({ ref: ref, classes: classes }, props));
901
+ var Tooltip$1 = forwardRef(function (props, ref) {
902
+ var classes = useTooltipStyles$1(props);
903
+ return React__default.createElement(MuiTooltip, __assign$2({ ref: ref, classes: classes }, props));
765
904
  });
766
- Tooltip.displayName = 'Tooltip';
905
+ Tooltip$1.displayName = 'Tooltip';
767
906
 
768
907
  makeStyles(function () { return ({
769
908
  root: {
@@ -793,15 +932,147 @@ makeStyles(function (theme) { return ({
793
932
  },
794
933
  }); });
795
934
 
796
- var TableFooter = function (props) {
797
- return (React__default.createElement(Box, { display: "flex", justifyContent: "center", alignItems: "end", paddingTop: 3, paddingBottom: 4, flexGrow: 1 }, props.children));
935
+ var useTableRowStyles = makeStyles(function (theme) { return ({
936
+ root: function () { return ({
937
+ '&:nth-child(even)': {
938
+ backgroundColor: theme.palette.grey[100],
939
+ },
940
+ }); },
941
+ }); });
942
+
943
+ var TableRow = function (props) {
944
+ var children = props.children, restProps = __rest$3(props, ["children"]);
945
+ var root = useTableRowStyles(props).root;
946
+ return (React__default.createElement("tr", __assign$3({ "data-table-element": "body-row", className: root }, restProps), children));
947
+ };
948
+
949
+ var tableConstants = {
950
+ tableTypography: 'body1',
951
+ cellPaddingFactor: 2,
952
+ headerBorder: 2,
953
+ };
954
+
955
+ var coercedValueIncludesString = function (row, columnId, value) {
956
+ if (value === '')
957
+ return true;
958
+ var cellValue = row.getValue(columnId);
959
+ return String(cellValue).toLowerCase().includes(value.toLowerCase());
960
+ };
961
+
962
+ var getTableMinHeight = function (rootRef, pageSize) {
963
+ var defaultBodyRowHeight = 56;
964
+ var defaultHeaderRowHeight = 57;
965
+ var defaultFooterHeight = 88;
966
+ var borderOffset = 1;
967
+ var minHeight = defaultBodyRowHeight * pageSize + defaultHeaderRowHeight + defaultFooterHeight;
968
+ if (rootRef === null || rootRef === void 0 ? void 0 : rootRef.current) {
969
+ var rootTableNode = rootRef.current;
970
+ var headerRowNode = rootTableNode.querySelector("[data-table-element=\"header-row\"]");
971
+ var bodyRowNode = rootTableNode.querySelector("[data-table-element=\"body-row\"]");
972
+ if (headerRowNode && bodyRowNode) {
973
+ var headerRowHeight = headerRowNode.getBoundingClientRect().height;
974
+ var firstBodyRowHeight = bodyRowNode.getBoundingClientRect().height;
975
+ var restBodyRowHeight = firstBodyRowHeight - borderOffset;
976
+ minHeight = headerRowHeight + firstBodyRowHeight + restBodyRowHeight * (pageSize - 1) + defaultFooterHeight;
977
+ }
978
+ }
979
+ return minHeight;
980
+ };
981
+
982
+ var useTableCellStyles = makeStyles(function (theme) { return ({
983
+ root: function () { return ({
984
+ padding: theme.spacing(tableConstants.cellPaddingFactor),
985
+ }); },
986
+ }); });
987
+
988
+ var TableCell = function (props) {
989
+ var children = props.children, restProps = __rest$3(props, ["children"]);
990
+ var root = useTableCellStyles(props).root;
991
+ return (React__default.createElement("td", __assign$3({ className: root }, restProps), children));
798
992
  };
799
993
 
994
+ var TableBody = function (props) {
995
+ var children = props.children, restProps = __rest$3(props, ["children"]);
996
+ return React__default.createElement("tbody", __assign$3({}, restProps), children);
997
+ };
998
+
999
+ var useStyles$6 = makeStyles(function (_a) {
1000
+ var typography = _a.typography;
1001
+ return ({
1002
+ root: function (_a) {
1003
+ var fullWidth = _a.fullWidth;
1004
+ return ({
1005
+ display: fullWidth ? 'flex' : 'inline-flex',
1006
+ flexDirection: 'column',
1007
+ });
1008
+ },
1009
+ table: function (_a) {
1010
+ var fullWidth = _a.fullWidth;
1011
+ return (__assign$3(__assign$3({ borderCollapse: 'collapse' }, (fullWidth && { width: '100%' })), typography[tableConstants.tableTypography]));
1012
+ },
1013
+ tableContainer: function () { return ({
1014
+ maxWidth: '100%',
1015
+ overflowX: 'auto',
1016
+ overflowY: 'hidden',
1017
+ }); },
1018
+ });
1019
+ });
1020
+
800
1021
  var TableHeader = function (props) {
801
- var children = props.children, restProps = __rest$1(props, ["children"]);
802
- return React__default.createElement("thead", __assign$1({}, restProps), children);
1022
+ var children = props.children, restProps = __rest$3(props, ["children"]);
1023
+ return React__default.createElement("thead", __assign$3({}, restProps), children);
1024
+ };
1025
+
1026
+ var TableFooter = function (props) {
1027
+ return (React__default.createElement(Box, { display: "flex", justifyContent: "center", alignItems: "end", paddingTop: 3, paddingBottom: 4 }, props.children));
803
1028
  };
804
1029
 
1030
+ var useStyles$4 = makeStyles(function (theme) { return ({
1031
+ buttonLabel: {
1032
+ fontWeight: 400,
1033
+ },
1034
+ filterPopoverContents: {
1035
+ backgroundColor: 'white',
1036
+ borderRadius: theme.spacing(1),
1037
+ position: 'relative',
1038
+ margin: '10px',
1039
+ marginTop: theme.spacing(2),
1040
+ width: '323px',
1041
+ '&::before': {
1042
+ backgroundColor: 'white',
1043
+ borderRadius: theme.spacing(0.5),
1044
+ content: '""',
1045
+ display: 'block',
1046
+ filter: 'drop-shadow(4px 4px 3px rgba(0, 0, 0, 0.14)) drop-shadow(0px 1px 5px rgba(0, 0, 0, 0.12))',
1047
+ position: 'absolute',
1048
+ width: theme.spacing(2.5),
1049
+ height: theme.spacing(2.5),
1050
+ top: -7,
1051
+ transform: 'rotate(45deg)',
1052
+ left: 'calc(90% - 12px)',
1053
+ zIndex: 0,
1054
+ },
1055
+ '&::after': {
1056
+ backgroundColor: 'white',
1057
+ content: '""',
1058
+ display: 'block',
1059
+ position: 'absolute',
1060
+ top: 0,
1061
+ left: 'calc(80%)',
1062
+ width: theme.spacing(6),
1063
+ height: theme.spacing(4),
1064
+ },
1065
+ },
1066
+ menuTitle: {
1067
+ fontWeight: 400,
1068
+ fontSize: '20px',
1069
+ paddingBottom: theme.spacing(2),
1070
+ },
1071
+ selectInput: {
1072
+ margin: '8px 0',
1073
+ },
1074
+ }); });
1075
+
805
1076
  var _path$15;
806
1077
 
807
1078
  function _extends$2s() { _extends$2s = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2s.apply(this, arguments); }
@@ -838,30 +1109,66 @@ function SvgChevronUp(props) {
838
1109
  })));
839
1110
  }
840
1111
 
841
- var _path$K;
1112
+ var _path$_;
842
1113
 
843
- function _extends$1K() { _extends$1K = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1K.apply(this, arguments); }
1114
+ function _extends$2g() { _extends$2g = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2g.apply(this, arguments); }
844
1115
 
845
- function SvgMore(props) {
846
- return /*#__PURE__*/React.createElement("svg", _extends$1K({
1116
+ function SvgSort(props) {
1117
+ return /*#__PURE__*/React.createElement("svg", _extends$2g({
847
1118
  viewBox: "0 0 16 16",
848
1119
  fill: "none",
849
1120
  strokeLinecap: "round",
850
1121
  strokeLinejoin: "round",
851
1122
  width: "1em",
852
1123
  height: "1em"
853
- }, props), _path$K || (_path$K = /*#__PURE__*/React.createElement("path", {
854
- d: "M8 8.667a.667.667 0 100-1.334.667.667 0 000 1.334zM8 4a.667.667 0 100-1.334A.667.667 0 008 4zm0 9.333A.667.667 0 108 12a.667.667 0 000 1.333z",
1124
+ }, props), _path$_ || (_path$_ = /*#__PURE__*/React.createElement("path", {
1125
+ d: "M11.333 6L8 2.667 4.667 6m6.666 4L8 13.334 4.667 10",
855
1126
  stroke: "currentColor"
856
1127
  })));
857
1128
  }
858
1129
 
859
- var _path$H;
1130
+ var _path$S;
860
1131
 
861
- function _extends$1F() { _extends$1F = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1F.apply(this, arguments); }
1132
+ function _extends$1_() { _extends$1_ = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1_.apply(this, arguments); }
862
1133
 
863
- function SvgSearch(props) {
864
- return /*#__PURE__*/React.createElement("svg", _extends$1F({
1134
+ function SvgFilter(props) {
1135
+ return /*#__PURE__*/React.createElement("svg", _extends$1_({
1136
+ viewBox: "0 0 16 16",
1137
+ fill: "none",
1138
+ strokeLinecap: "round",
1139
+ strokeLinejoin: "round",
1140
+ width: "1em",
1141
+ height: "1em"
1142
+ }, props), _path$S || (_path$S = /*#__PURE__*/React.createElement("path", {
1143
+ d: "M14.667 2H1.333l5.334 6.307v4.36L9.333 14V8.307L14.667 2z",
1144
+ stroke: "currentColor"
1145
+ })));
1146
+ }
1147
+
1148
+ var _path$K;
1149
+
1150
+ function _extends$1K() { _extends$1K = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1K.apply(this, arguments); }
1151
+
1152
+ function SvgMore(props) {
1153
+ return /*#__PURE__*/React.createElement("svg", _extends$1K({
1154
+ viewBox: "0 0 16 16",
1155
+ fill: "none",
1156
+ strokeLinecap: "round",
1157
+ strokeLinejoin: "round",
1158
+ width: "1em",
1159
+ height: "1em"
1160
+ }, props), _path$K || (_path$K = /*#__PURE__*/React.createElement("path", {
1161
+ d: "M8 8.667a.667.667 0 100-1.334.667.667 0 000 1.334zM8 4a.667.667 0 100-1.334A.667.667 0 008 4zm0 9.333A.667.667 0 108 12a.667.667 0 000 1.333z",
1162
+ stroke: "currentColor"
1163
+ })));
1164
+ }
1165
+
1166
+ var _path$H;
1167
+
1168
+ function _extends$1F() { _extends$1F = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1F.apply(this, arguments); }
1169
+
1170
+ function SvgSearch(props) {
1171
+ return /*#__PURE__*/React.createElement("svg", _extends$1F({
865
1172
  viewBox: "0 0 16 16",
866
1173
  fill: "none",
867
1174
  strokeLinecap: "round",
@@ -874,278 +1181,2132 @@ function SvgSearch(props) {
874
1181
  })));
875
1182
  }
876
1183
 
877
- var getWidth = function (props) {
878
- var isActionColumn = props.column.isActionColumn, fullWidth = props.tableProps.fullWidth;
879
- var width;
880
- if (fullWidth && isActionColumn) {
881
- width = '0.0000000001%';
882
- }
883
- if (fullWidth && !isActionColumn) {
884
- width = '1%';
885
- }
886
- if (!fullWidth && isActionColumn) {
887
- width = 72;
888
- }
889
- if (!fullWidth && !isActionColumn) {
890
- width = undefined;
891
- }
892
- return width;
893
- };
894
- var useTableHeaderCellStyles = makeStyles(function (theme) { return ({
895
- root: function (props) {
896
- var width = getWidth(props);
897
- return {
898
- borderBottomStyle: 'solid',
899
- borderBottomWidth: 2,
900
- borderBottomColor: theme.palette.grey[100],
901
- padding: theme.spacing(2),
902
- textAlign: 'left',
903
- fontWeight: 500,
904
- width: width,
905
- };
1184
+ var useStyles$3 = makeStyles(function (theme) { return ({
1185
+ icon: {
1186
+ marginRight: theme.spacing(1.5),
1187
+ marginTop: theme.spacing(0.5),
1188
+ scale: 1.5,
1189
+ },
1190
+ placeholder: {
1191
+ opacity: 0.5,
1192
+ },
1193
+ selectContainer: {
1194
+ padding: '8px 0',
1195
+ },
1196
+ hidden: {
1197
+ display: 'none',
1198
+ },
1199
+ }); });
1200
+
1201
+ var TableContext = createContext({});
1202
+
1203
+ var SelectFilter = function (props) {
1204
+ var options = props.options, columnId = props.columnId, multiple = props.multiple;
1205
+ var classes = useStyles$3();
1206
+ var table = useContext(TableContext);
1207
+ var _a = useState(false), open = _a[0], setOpen = _a[1];
1208
+ var column = table.getColumn(columnId);
1209
+ var meta = column.columnDef.meta;
1210
+ var value = column.getFilterValue();
1211
+ var fallbackValue = multiple ? [] : '';
1212
+ var filteredOptions = options.map(function (option) {
1213
+ if (Array.isArray(value)) {
1214
+ if (value.includes(option.value)) {
1215
+ return __assign$3(__assign$3({}, option), { hide: true });
1216
+ }
1217
+ }
1218
+ if (typeof value === 'string' || typeof value === 'number') {
1219
+ if (value === option.value) {
1220
+ return __assign$3(__assign$3({}, option), { hide: true });
1221
+ }
1222
+ }
1223
+ return __assign$3(__assign$3({}, option), { hide: false });
1224
+ });
1225
+ var filteredOptionsCount = filteredOptions.filter(function (option) { return !(option === null || option === void 0 ? void 0 : option.hide); }).length;
1226
+ var handleChange = function (event) {
1227
+ event.stopPropagation();
1228
+ column.setFilterValue(event.target.value);
1229
+ };
1230
+ var handleItemClick = function () {
1231
+ if (multiple) {
1232
+ if (filteredOptionsCount === 1) {
1233
+ setOpen(false);
1234
+ }
1235
+ }
1236
+ };
1237
+ return (React__default.createElement(Box, { className: classes.selectContainer },
1238
+ React__default.createElement(Select, { variant: "outlined", open: open, onOpen: function () { return setOpen(true); }, onClose: function () { return setOpen(false); }, value: value || fallbackValue, displayEmpty: true, multiple: multiple, renderValue: function () { return React__default.createElement(Typography$1, { className: classes.placeholder }, meta === null || meta === void 0 ? void 0 : meta.filter.name); }, disabled: !filteredOptionsCount, IconComponent: SvgChevronDown, onChange: handleChange, fullWidth: true, classes: {
1239
+ root: classes.selectInput,
1240
+ icon: classes.icon,
1241
+ }, MenuProps: {
1242
+ disablePortal: true,
1243
+ anchorOrigin: {
1244
+ vertical: 'bottom',
1245
+ horizontal: 'left',
1246
+ },
1247
+ transformOrigin: {
1248
+ vertical: 'top',
1249
+ horizontal: 'left',
1250
+ },
1251
+ getContentAnchorEl: null,
1252
+ } }, filteredOptions.map(function (option, index) {
1253
+ return (React__default.createElement(MenuItem, { classes: { root: option.hide ? classes.hidden : undefined }, key: "option-" + value + "-" + index, value: option.value, onClick: handleItemClick }, option.label));
1254
+ }))));
1255
+ };
1256
+
1257
+ var FilterControl = function (props) {
1258
+ var input = props.input, columnFilter = __rest$3(props, ["input"]);
1259
+ var inputDictionary = {
1260
+ text: TextField,
1261
+ select: SelectFilter,
1262
+ 'multi-select': SelectFilter,
1263
+ };
1264
+ var propsDictionary = {
1265
+ select: { multiple: false },
1266
+ 'multi-select': { multiple: true },
1267
+ };
1268
+ return React__default.createElement("div", null, createElement(inputDictionary[input], __assign$3(__assign$3({}, columnFilter), propsDictionary[input])));
1269
+ };
1270
+
1271
+ var useColumnFilters = function (table) {
1272
+ var selectedColumnFilters = getSelectedColumnFilters(table.getState());
1273
+ var columnFilters = getColumnFilters(table.getAllFlatColumns());
1274
+ var hasColumnFilters = columnFilters.length > 0;
1275
+ var deselectColumnFilter = makeDeselectColumnFilter(table);
1276
+ var formatSelectedFilterText = makeFormatSelectedFilterText(table);
1277
+ var resetColumnFilters = table.resetColumnFilters;
1278
+ return {
1279
+ selectedColumnFilters: selectedColumnFilters,
1280
+ columnFilters: columnFilters,
1281
+ hasColumnFilters: hasColumnFilters,
1282
+ deselectColumnFilter: deselectColumnFilter,
1283
+ formatSelectedFilterText: formatSelectedFilterText,
1284
+ resetColumnFilters: resetColumnFilters,
1285
+ };
1286
+ };
1287
+ function getSelectedColumnFilters(state) {
1288
+ var columnFilters = state.columnFilters;
1289
+ var selectedColumnFilters = columnFilters.reduce(function (acc, columnFilter) {
1290
+ var id = columnFilter.id, value = columnFilter.value;
1291
+ var selections = [];
1292
+ if (value) {
1293
+ if (Array.isArray(value)) {
1294
+ value.forEach(function (innerValue) {
1295
+ selections.push({ id: id, value: innerValue });
1296
+ });
1297
+ }
1298
+ else if (typeof value === 'string' || typeof value === 'number') {
1299
+ selections.push({ id: id, value: value });
1300
+ }
1301
+ }
1302
+ return __spreadArray(__spreadArray([], acc), selections);
1303
+ }, []);
1304
+ return selectedColumnFilters;
1305
+ }
1306
+ function getColumnFilters(columns) {
1307
+ return columns
1308
+ .map(function (column) {
1309
+ var meta = column.columnDef.meta;
1310
+ if (meta === null || meta === void 0 ? void 0 : meta.filter) {
1311
+ return __assign$3({ columnId: column.id }, meta.filter);
1312
+ }
1313
+ })
1314
+ .filter(Boolean);
1315
+ }
1316
+ function makeDeselectColumnFilter(table) {
1317
+ return function (columnFilter) {
1318
+ var column = table.getColumn(columnFilter.id);
1319
+ column.setFilterValue(function (prev) {
1320
+ if (Array.isArray(prev)) {
1321
+ return prev.filter(function (value) { return value !== columnFilter.value; });
1322
+ }
1323
+ else if (typeof prev === 'string' || typeof prev === 'number') {
1324
+ return null;
1325
+ }
1326
+ return prev;
1327
+ });
1328
+ };
1329
+ }
1330
+ function makeFormatSelectedFilterText(table) {
1331
+ return function (columnFilter) {
1332
+ var column = table.getColumn(columnFilter.id);
1333
+ var meta = column.columnDef.meta;
1334
+ var name = (meta === null || meta === void 0 ? void 0 : meta.filter.name) || '';
1335
+ var optionMatch = meta === null || meta === void 0 ? void 0 : meta.filter.options.find(function (option) { return option.value === columnFilter.value; });
1336
+ var label = optionMatch === null || optionMatch === void 0 ? void 0 : optionMatch.label;
1337
+ return [name, label];
1338
+ };
1339
+ }
1340
+
1341
+ var Panel = function (props) {
1342
+ var anchorEl = props.anchorEl, onClose = props.onClose;
1343
+ var classes = useStyles$4();
1344
+ var table = useContext(TableContext);
1345
+ var paperRef = useRef(null);
1346
+ var columnFilters = useColumnFilters(table).columnFilters;
1347
+ var handleClick = function (e) {
1348
+ var _a;
1349
+ var rect = (_a = paperRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
1350
+ if (rect) {
1351
+ var buffer = 10;
1352
+ var mouseX = e.nativeEvent.x;
1353
+ var mouseY = e.nativeEvent.y;
1354
+ var xHit = rect.x - buffer < mouseX && mouseX < rect.x + rect.width + buffer;
1355
+ var yHit = rect.y - buffer < mouseY && mouseY < rect.y + rect.height + buffer;
1356
+ if (!xHit || !yHit) {
1357
+ onClose();
1358
+ }
1359
+ }
1360
+ };
1361
+ var open = Boolean(anchorEl);
1362
+ return (React__default.createElement(Popover, { onClick: handleClick, anchorEl: anchorEl, anchorOrigin: {
1363
+ vertical: 'bottom',
1364
+ horizontal: 'right',
1365
+ }, className: classes.filterPopover, onClose: onClose, open: open, PaperProps: {
1366
+ style: {
1367
+ backgroundColor: 'transparent',
1368
+ boxShadow: 'none',
1369
+ borderRadius: 0,
1370
+ },
1371
+ }, transformOrigin: {
1372
+ vertical: 'top',
1373
+ horizontal: 'right',
1374
+ } },
1375
+ React__default.createElement(Paper$1, { className: classes.filterPopoverContents, elevation: 2 },
1376
+ React__default.createElement(Box, __assign$3({}, { ref: paperRef }, { padding: 3 }),
1377
+ React__default.createElement(Typography$1, { className: classes.menuTitle }, "Filter By"),
1378
+ columnFilters.map(function (columnFilter, i) { return (React__default.createElement(FilterControl, __assign$3({}, columnFilter, { key: i }))); })))));
1379
+ };
1380
+
1381
+ /*! *****************************************************************************
1382
+ Copyright (c) Microsoft Corporation.
1383
+
1384
+ Permission to use, copy, modify, and/or distribute this software for any
1385
+ purpose with or without fee is hereby granted.
1386
+
1387
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1388
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1389
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1390
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1391
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1392
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1393
+ PERFORMANCE OF THIS SOFTWARE.
1394
+ ***************************************************************************** */
1395
+
1396
+ var __assign$1 = function() {
1397
+ __assign$1 = Object.assign || function __assign(t) {
1398
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
1399
+ s = arguments[i];
1400
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1401
+ }
1402
+ return t;
1403
+ };
1404
+ return __assign$1.apply(this, arguments);
1405
+ };
1406
+
1407
+ function __rest$1(s, e) {
1408
+ var t = {};
1409
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1410
+ t[p] = s[p];
1411
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
1412
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1413
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1414
+ t[p[i]] = s[p[i]];
1415
+ }
1416
+ return t;
1417
+ }
1418
+
1419
+ /*! *****************************************************************************
1420
+ Copyright (c) Microsoft Corporation.
1421
+
1422
+ Permission to use, copy, modify, and/or distribute this software for any
1423
+ purpose with or without fee is hereby granted.
1424
+
1425
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1426
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1427
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1428
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1429
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1430
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1431
+ PERFORMANCE OF THIS SOFTWARE.
1432
+ ***************************************************************************** */
1433
+
1434
+ var __assign = function() {
1435
+ __assign = Object.assign || function __assign(t) {
1436
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
1437
+ s = arguments[i];
1438
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1439
+ }
1440
+ return t;
1441
+ };
1442
+ return __assign.apply(this, arguments);
1443
+ };
1444
+
1445
+ function __rest(s, e) {
1446
+ var t = {};
1447
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
1448
+ t[p] = s[p];
1449
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
1450
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1451
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
1452
+ t[p[i]] = s[p[i]];
1453
+ }
1454
+ return t;
1455
+ }
1456
+
1457
+ var _path$D;
1458
+
1459
+ function _extends$1u() { _extends$1u = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1u.apply(this, arguments); }
1460
+
1461
+ function SvgUser(props) {
1462
+ return /*#__PURE__*/React.createElement("svg", _extends$1u({
1463
+ viewBox: "0 0 16 16",
1464
+ fill: "none",
1465
+ strokeLinecap: "round",
1466
+ strokeLinejoin: "round",
1467
+ width: "1em",
1468
+ height: "1em"
1469
+ }, props), _path$D || (_path$D = /*#__PURE__*/React.createElement("path", {
1470
+ d: "M13.333 14v-1.333A2.667 2.667 0 0010.667 10H5.333a2.667 2.667 0 00-2.666 2.667V14M8 7.333A2.667 2.667 0 108 2a2.667 2.667 0 000 5.333z",
1471
+ stroke: "currentColor"
1472
+ })));
1473
+ }
1474
+
1475
+ var useIconStyles = makeStyles(function (_a) {
1476
+ var spacing = _a.spacing, palette = _a.palette;
1477
+ var getFontSize = function (_a) {
1478
+ var size = _a.size;
1479
+ var sizes = {
1480
+ inherit: 'inherit',
1481
+ small: spacing(1.5),
1482
+ medium: spacing(2),
1483
+ large: spacing(2.5),
1484
+ 'extra-large': spacing(3),
1485
+ };
1486
+ return size ? sizes[size] : 'inherit';
1487
+ };
1488
+ var getColor = function (props) {
1489
+ var semanticColors = ['primary', 'secondary', 'info', 'success', 'warning', 'error'];
1490
+ var value = 'inherit';
1491
+ if (props.color) {
1492
+ if (semanticColors.includes(props.color.split('.')[0])) {
1493
+ var _a = props.color.split('.'), color = _a[0], _b = _a[1], variant = _b === void 0 ? 'main' : _b;
1494
+ value = palette[color][variant];
1495
+ }
1496
+ else if (props.color.search(/^(rgb|hsla|#)/) !== -1) {
1497
+ value = props.color;
1498
+ }
1499
+ }
1500
+ return value;
1501
+ };
1502
+ return {
1503
+ root: {
1504
+ color: getColor,
1505
+ fontSize: getFontSize,
1506
+ strokeWidth: '1.3px',
1507
+ },
1508
+ };
1509
+ });
1510
+
1511
+ var classnames$1 = {exports: {}};
1512
+
1513
+ /*!
1514
+ Copyright (c) 2018 Jed Watson.
1515
+ Licensed under the MIT License (MIT), see
1516
+ http://jedwatson.github.io/classnames
1517
+ */
1518
+
1519
+ (function (module) {
1520
+ /* global define */
1521
+
1522
+ (function () {
1523
+
1524
+ var hasOwn = {}.hasOwnProperty;
1525
+
1526
+ function classNames() {
1527
+ var classes = [];
1528
+
1529
+ for (var i = 0; i < arguments.length; i++) {
1530
+ var arg = arguments[i];
1531
+ if (!arg) continue;
1532
+
1533
+ var argType = typeof arg;
1534
+
1535
+ if (argType === 'string' || argType === 'number') {
1536
+ classes.push(arg);
1537
+ } else if (Array.isArray(arg)) {
1538
+ if (arg.length) {
1539
+ var inner = classNames.apply(null, arg);
1540
+ if (inner) {
1541
+ classes.push(inner);
1542
+ }
1543
+ }
1544
+ } else if (argType === 'object') {
1545
+ if (arg.toString === Object.prototype.toString) {
1546
+ for (var key in arg) {
1547
+ if (hasOwn.call(arg, key) && arg[key]) {
1548
+ classes.push(key);
1549
+ }
1550
+ }
1551
+ } else {
1552
+ classes.push(arg.toString());
1553
+ }
1554
+ }
1555
+ }
1556
+
1557
+ return classes.join(' ');
1558
+ }
1559
+
1560
+ if (module.exports) {
1561
+ classNames.default = classNames;
1562
+ module.exports = classNames;
1563
+ } else {
1564
+ window.classNames = classNames;
1565
+ }
1566
+ }());
1567
+ }(classnames$1));
1568
+
1569
+ var classNames$1 = classnames$1.exports;
1570
+
1571
+ var iconStaticClassName = 'pop-icon';
1572
+ var Icon = function (props) {
1573
+ var icon = props.icon, className = props.className, restProps = __rest(props, ["icon", "className"]);
1574
+ var classes = useIconStyles(props);
1575
+ var isValid = true;
1576
+ if (!icon || (typeof icon === 'function' && icon({}) === undefined)) {
1577
+ isValid = false;
1578
+ }
1579
+ return isValid
1580
+ ? createElement(icon, __assign({ className: classNames$1([classes.root, iconStaticClassName, className]) }, restProps))
1581
+ : null;
1582
+ };
1583
+ Icon.defaultProps = {
1584
+ size: 'inherit',
1585
+ color: 'inherit',
1586
+ };
1587
+ Icon.displayName = 'Icon';
1588
+
1589
+ var LoadingStatus;
1590
+ (function (LoadingStatus) {
1591
+ LoadingStatus["ERROR"] = "ERROR";
1592
+ LoadingStatus["LOADED"] = "LOADED";
1593
+ LoadingStatus["PENDING"] = "PENDING";
1594
+ })(LoadingStatus || (LoadingStatus = {}));
1595
+ var useImgProps = function (avatarProps) {
1596
+ var _a = React__default.useState(LoadingStatus.PENDING), loaded = _a[0], setLoaded = _a[1];
1597
+ var imgProps = __assign(__assign({}, avatarProps.imgProps), { onLoad: function (event) {
1598
+ var _a, _b;
1599
+ setLoaded(LoadingStatus.LOADED);
1600
+ (_b = (_a = avatarProps.imgProps) === null || _a === void 0 ? void 0 : _a.onLoad) === null || _b === void 0 ? void 0 : _b.call(_a, event);
1601
+ } });
1602
+ return { imgProps: imgProps, loaded: loaded };
1603
+ };
1604
+
1605
+ var getAvatarDimensions = function (theme, props) {
1606
+ var factors = {
1607
+ 'extra-small': 3,
1608
+ small: 4,
1609
+ medium: 5,
1610
+ large: 6,
1611
+ 'extra-large': 12.5,
1612
+ };
1613
+ var sizeFactor = factors[props.size || 'medium'];
1614
+ return theme.spacing(sizeFactor);
1615
+ };
1616
+ var getAvatarFontSize = function (props) {
1617
+ var fontSizes = {
1618
+ 'extra-small': '0.75rem',
1619
+ small: '1rem',
1620
+ medium: '1rem',
1621
+ large: '1.25rem',
1622
+ 'extra-large': '3.5rem',
1623
+ };
1624
+ return fontSizes[props.size];
1625
+ };
1626
+ var useAvatarStyles = makeStyles$1(function (theme) { return ({
1627
+ root: function (props) { return ({
1628
+ width: getAvatarDimensions(theme, props),
1629
+ height: getAvatarDimensions(theme, props),
1630
+ fontSize: getAvatarFontSize(props),
1631
+ backgroundColor: props.loaded === LoadingStatus.LOADED ? 'transparent' : props.background,
1632
+ color: theme.palette.getContrastText(props.background),
1633
+ objectFit: props.fit,
1634
+ }); },
1635
+ fallback: function (props) { return ({
1636
+ fontSize: getAvatarDimensions(theme, props),
1637
+ strokeWidth: 1,
1638
+ }); },
1639
+ }); });
1640
+
1641
+ var Avatar = forwardRef(function (props, ref) {
1642
+ var children = props.children, src = props.src, alt = props.alt, fallback = props.fallback, muiProps = __rest(props, ["children", "src", "alt", "fallback"]);
1643
+ var _a = useImgProps(props), imgProps = _a.imgProps, loaded = _a.loaded;
1644
+ var classes = useAvatarStyles(__assign(__assign({}, props), { loaded: loaded }));
1645
+ var displayAltTextFallback = src && alt;
1646
+ var displayNoFallback = fallback === 'none';
1647
+ var displayCustomFallback = fallback !== 'none' && typeof fallback !== 'undefined';
1648
+ var Fallback;
1649
+ if (displayAltTextFallback) {
1650
+ Fallback = null;
1651
+ }
1652
+ else if (displayNoFallback) {
1653
+ Fallback = ' ';
1654
+ }
1655
+ else if (displayCustomFallback) {
1656
+ Fallback = fallback;
1657
+ }
1658
+ else {
1659
+ Fallback = React__default.createElement(Icon, { icon: SvgUser, className: classes.fallback });
1660
+ }
1661
+ return (React__default.createElement(MuiAvatar, __assign({ ref: ref, classes: { root: classes.root }, src: src, alt: alt }, muiProps, { imgProps: imgProps }), children || Fallback));
1662
+ });
1663
+ Avatar.defaultProps = {
1664
+ size: 'medium',
1665
+ fit: 'cover',
1666
+ background: '#E0E0E0',
1667
+ };
1668
+ Avatar.displayName = 'Avatar';
1669
+
1670
+ var useButtonStyles$1 = makeStyles$1(function () { return ({
1671
+ root: {
1672
+ minWidth: 'unset',
1673
+ },
1674
+ label: {
1675
+ textTransform: function (_a) {
1676
+ var textTransform = _a.textTransform;
1677
+ return textTransform;
1678
+ },
1679
+ },
1680
+ }); });
1681
+
1682
+ var Button$1 = forwardRef(function (props, ref) {
1683
+ props.textTransform; var loading = props.loading, classesOverride = props.classes, className = props.className, muiProps = __rest(props, ["textTransform", "loading", "classes", "className"]);
1684
+ props.classes; var styleProps = __rest(props, ["classes"]);
1685
+ var classes = useButtonStyles$1(styleProps);
1686
+ var typography = useTheme().typography;
1687
+ var loadingIndicator = {
1688
+ startIcon: React__default.createElement(CircularProgress, { color: "inherit", size: typography.button.fontSize }),
1689
+ disabled: true,
1690
+ };
1691
+ return (React__default.createElement(MuiButton, __assign({ ref: ref, classes: __assign(__assign({}, classes), classesOverride), className: classNames$1([className, 'pm-button']) }, muiProps, (loading && loadingIndicator))));
1692
+ });
1693
+ Button$1.displayName = 'Button';
1694
+
1695
+ var Checkbox = forwardRef(function (props, ref) {
1696
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
1697
+ var control = React__default.createElement(MuiCheckbox, __assign({ disabled: label ? undefined : disabled }, muiProps));
1698
+ return label ? (React__default.createElement(FormControlLabel, __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
1699
+ });
1700
+ Checkbox.displayName = 'Checkbox';
1701
+
1702
+ var getBackground$1 = function (theme) { return function (props) {
1703
+ var variant = props.variant, severity = props.severity;
1704
+ var background = theme.palette.grey[100];
1705
+ var backgrounds = {
1706
+ outlined: 'none',
1707
+ error: 'error.main',
1708
+ warning: 'warning.main',
1709
+ info: 'info.light',
1710
+ success: 'success.light',
1711
+ };
1712
+ if (variant === 'outlined') {
1713
+ background = backgrounds[variant];
1714
+ }
1715
+ else if (severity) {
1716
+ var _a = backgrounds[severity].split('.'), color = _a[0], colorVariant = _a[1];
1717
+ background = theme.palette[color][colorVariant];
1718
+ }
1719
+ return background;
1720
+ }; };
1721
+ var getColor$1 = function (theme) { return function (props) {
1722
+ var variant = props.variant, severity = props.severity;
1723
+ var textColor;
1724
+ if (variant === 'outlined' && severity) {
1725
+ var textColors = {
1726
+ error: theme.palette.error.main,
1727
+ info: theme.palette.info.main,
1728
+ warning: theme.palette.warning.dark,
1729
+ success: theme.palette.success.dark,
1730
+ };
1731
+ textColor = textColors[severity];
1732
+ }
1733
+ else if (variant === 'outlined' && !severity) {
1734
+ textColor = theme.palette.grey[700];
1735
+ }
1736
+ else if ((variant === 'default' || variant === undefined) && severity) {
1737
+ var textColors = {
1738
+ error: theme.palette.common.white,
1739
+ info: theme.palette.secondary.main,
1740
+ warning: theme.palette.secondary.main,
1741
+ success: theme.palette.secondary.main,
1742
+ };
1743
+ textColor = textColors[severity];
1744
+ }
1745
+ return textColor;
1746
+ }; };
1747
+ var getBorder = function (theme) { return function (props) {
1748
+ var variant = props.variant, severity = props.severity;
1749
+ var borderColor;
1750
+ if (variant === 'outlined' && severity) {
1751
+ var borderColors = {
1752
+ error: theme.palette.error.main,
1753
+ info: theme.palette.info.main,
1754
+ warning: theme.palette.warning.dark,
1755
+ success: theme.palette.success.dark,
1756
+ };
1757
+ borderColor = borderColors[severity];
1758
+ }
1759
+ return borderColor;
1760
+ }; };
1761
+ makeStyles$1(function (theme) { return ({
1762
+ root: {
1763
+ background: getBackground$1(theme),
1764
+ color: getColor$1(theme),
1765
+ borderColor: getBorder(theme),
1766
+ borderRadius: theme.spacing(0.5),
1767
+ },
1768
+ icon: {
1769
+ color: 'inherit',
1770
+ height: theme.spacing(2),
1771
+ width: theme.spacing(2),
1772
+ },
1773
+ deleteIcon: {
1774
+ color: theme.palette.grey[500],
1775
+ },
1776
+ }); });
1777
+
1778
+ var defaultTypographyProps = {
1779
+ variant: 'body1',
1780
+ };
1781
+
1782
+ var weights = {
1783
+ regular: 400,
1784
+ medium: 500,
1785
+ 'semi-bold': 600,
1786
+ bold: 700,
1787
+ };
1788
+ var getCustomColor = function (theme, color) {
1789
+ var isCommonColor = color && ['white', 'black'].includes(color);
1790
+ var isGreyColor = color && color.match(/^grey\.\d{3}/);
1791
+ var isSemanticColor = color && color.match(/(primary|secondary|info|success|error|warning).?(light|dark)?/);
1792
+ var isTextColor = color && ['textPrimary', 'textSecondary'].includes(color);
1793
+ switch (true) {
1794
+ case isCommonColor:
1795
+ return theme.palette.common[color];
1796
+ case Boolean(isGreyColor):
1797
+ var scale = color.split('.')[1];
1798
+ return theme.palette.grey[scale] || theme.palette.grey[900];
1799
+ case Boolean(isSemanticColor):
1800
+ var _a = color.split('.'), paletteKey = _a[0], _b = _a[1], variant = _b === void 0 ? 'main' : _b;
1801
+ return theme.palette[paletteKey][variant];
1802
+ case isTextColor:
1803
+ return theme.palette.text[color.slice(4).toLowerCase()];
1804
+ default:
1805
+ return undefined;
1806
+ }
1807
+ };
1808
+ var useTypographyStyles = makeStyles$1(function (theme) {
1809
+ var _a;
1810
+ return ({
1811
+ root: (_a = {},
1812
+ _a["& ." + iconStaticClassName] = {
1813
+ position: 'relative',
1814
+ top: '0.125em',
1815
+ padding: '0 0.125em',
1816
+ boxSizing: 'content-box',
1817
+ },
1818
+ _a.fontFamily = theme.typography.fontFamily,
1819
+ _a.fontWeight = function (_a) {
1820
+ var variant = _a.variant, weight = _a.weight;
1821
+ return (weight ? weights[weight] : theme.typography[variant].fontWeight);
1822
+ },
1823
+ _a.fontSize = function (_a) {
1824
+ var variant = _a.variant;
1825
+ return theme.typography[variant].fontSize;
1826
+ },
1827
+ _a.lineHeight = function (_a) {
1828
+ var variant = _a.variant;
1829
+ return theme.typography[variant].lineHeight;
1830
+ },
1831
+ _a.textTransform = function (_a) {
1832
+ var variant = _a.variant;
1833
+ return theme.typography[variant].textTransform;
1834
+ },
1835
+ _a.color = function (_a) {
1836
+ var color = _a.color, variant = _a.variant;
1837
+ return (color && getCustomColor(theme, color)) || theme.typography[variant].color;
1838
+ },
1839
+ _a),
1840
+ caption: {
1841
+ display: 'inline',
1842
+ },
1843
+ overline: {
1844
+ display: 'inline',
1845
+ },
1846
+ });
1847
+ });
1848
+
1849
+ var Typography = forwardRef(function (props, ref) {
1850
+ props.weight; props.color; var restProps = __rest(props, ["weight", "color"]);
1851
+ var classes = useTypographyStyles(__assign({}, props));
1852
+ var variantMapping = { subtitle1: 'p' };
1853
+ return React__default.createElement(Typography$2, __assign({ ref: ref, classes: classes, variantMapping: variantMapping }, restProps));
1854
+ });
1855
+ Typography.displayName = 'Typography';
1856
+ Typography.defaultProps = defaultTypographyProps;
1857
+
1858
+ var getFadeStop = function (_a, typographyVariant) {
1859
+ var typography = _a.typography;
1860
+ return !isNaN(Number(typography[typographyVariant].lineHeight))
1861
+ ? typography[typographyVariant].lineHeight + "rem"
1862
+ : typography[typographyVariant].lineHeight;
1863
+ };
1864
+ makeStyles(function (theme) { return ({
1865
+ overlay: {
1866
+ position: 'absolute',
1867
+ top: 0,
1868
+ left: 0,
1869
+ height: '100%',
1870
+ width: '100%',
1871
+ background: function (props) { return "linear-gradient(to top, white, #FFF0 " + getFadeStop(theme, props.typographyVariant) + ")"; },
1872
+ },
1873
+ }); });
1874
+
1875
+ var SemanticColors;
1876
+ (function (SemanticColors) {
1877
+ SemanticColors["PRIMARY_MAIN"] = "primary.main";
1878
+ SemanticColors["PRIMARY_DARK"] = "primary.dark";
1879
+ SemanticColors["PRIMARY_LIGHT"] = "primary.light";
1880
+ SemanticColors["SECONDARY_MAIN"] = "secondary.main";
1881
+ SemanticColors["SECONDARY_DARK"] = "secondary.dark";
1882
+ SemanticColors["SECONDARY_LIGHT"] = "secondary.light";
1883
+ })(SemanticColors || (SemanticColors = {}));
1884
+ makeStyles(function (theme) { return ({
1885
+ dividerRoot: {
1886
+ gap: theme.spacing(2),
1887
+ },
1888
+ textRoot: {
1889
+ color: function (props) {
1890
+ var textColor = props.textColor;
1891
+ if (Object.values(SemanticColors).includes(textColor)) {
1892
+ var _a = textColor.split('.'), semanticColor = _a[0], shade = _a[1];
1893
+ return theme.palette[semanticColor][shade];
1894
+ }
1895
+ else if (textColor) {
1896
+ return textColor;
1897
+ }
1898
+ else {
1899
+ return 'black';
1900
+ }
1901
+ },
1902
+ textTransform: function (props) { return props.textTransform; },
1903
+ },
1904
+ dividerLine: {
1905
+ backgroundColor: function (props) {
1906
+ var dividerColor = props.dividerColor;
1907
+ if (Object.values(SemanticColors).includes(dividerColor)) {
1908
+ var _a = dividerColor.split('.'), semanticColor = _a[0], shade = _a[1];
1909
+ return theme.palette[semanticColor][shade];
1910
+ }
1911
+ else if (dividerColor) {
1912
+ return dividerColor;
1913
+ }
1914
+ else {
1915
+ return theme.palette.grey[500];
1916
+ }
1917
+ },
1918
+ },
1919
+ }); });
1920
+
1921
+ var IconButton = forwardRef(function (props, ref) {
1922
+ return React__default.createElement(MuiIconButton, __assign({ ref: ref }, props));
1923
+ });
1924
+ IconButton.displayName = 'IconButton';
1925
+ IconButton.defaultProps = {
1926
+ color: 'secondary',
1927
+ };
1928
+
1929
+ var useLinkStyles = makeStyles$1(function (theme) { return ({
1930
+ root: function (props) {
1931
+ var _a;
1932
+ return (__assign(__assign({ display: 'flex' }, (props.color === undefined && { color: theme.palette.info.main })), (_a = {}, _a["& ." + iconStaticClassName] = {
1933
+ alignSelf: 'center',
1934
+ }, _a)));
1935
+ },
1936
+ }); });
1937
+
1938
+ var Link = forwardRef(function (props, ref) {
1939
+ var children = props.children, muiProps = __rest(props, ["children"]);
1940
+ var classes = useLinkStyles(props);
1941
+ return (React__default.createElement(Link$2, __assign({ ref: ref, classes: { root: classes.root } }, muiProps), children));
1942
+ });
1943
+ Link.defaultProps = {
1944
+ variant: 'body1',
1945
+ };
1946
+ Link.displayName = 'Link';
1947
+
1948
+ var useStyles$5 = makeStyles(function (_a) {
1949
+ var spacing = _a.spacing;
1950
+ return ({
1951
+ root: {
1952
+ '&:last-child': {
1953
+ marginBottom: 0,
1954
+ },
1955
+ marginBottom: spacing(4),
1956
+ padding: spacing(4),
1957
+ },
1958
+ });
1959
+ });
1960
+ var Paper = forwardRef(function (props, ref) {
1961
+ var legacyStyles = props.legacyStyles, restProps = __rest(props, ["legacyStyles"]);
1962
+ var classes = useStyles$5(props);
1963
+ return React__default.createElement(Paper$2, __assign({}, ref, { classes: __assign({}, (legacyStyles && classes)) }, restProps));
1964
+ });
1965
+ Paper.displayName = 'Paper';
1966
+ Paper.defaultProps = {
1967
+ legacyStyles: false,
1968
+ };
1969
+
1970
+ var Radio = forwardRef(function (props, ref) {
1971
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
1972
+ var control = React__default.createElement(MuiRadio, __assign({ disabled: label ? undefined : disabled }, muiProps));
1973
+ return label ? (React__default.createElement(FormControlLabel, __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
1974
+ });
1975
+ Radio.displayName = 'Radio';
1976
+
1977
+ makeStyles$1(function () { return ({
1978
+ textfield: {
1979
+ background: function (props) { return (props.backgroundTransparency ? '#FFFFFF44' : 'none'); },
1980
+ borderTopLeftRadius: 4,
1981
+ borderBottomLeftRadius: 4,
1982
+ '& fieldset': {
1983
+ borderRight: 'none',
1984
+ borderTopRightRadius: 0,
1985
+ borderBottomRightRadius: 0,
1986
+ },
1987
+ },
1988
+ button: {
1989
+ borderTopLeftRadius: 0,
1990
+ borderBottomLeftRadius: 0,
1991
+ alignSelf: 'stretch',
1992
+ },
1993
+ input: {
1994
+ color: function (props) { return props.inputTextColor || 'inherit'; },
1995
+ '&$focused fieldset': {
1996
+ top: -4,
1997
+ },
1998
+ },
1999
+ focused: {},
2000
+ }); });
2001
+
2002
+ var useSwitchStyles = makeStyles$1(function (theme) { return ({
2003
+ checked: {
2004
+ '& $thumb': {
2005
+ background: theme.palette.success.main,
2006
+ },
2007
+ '&& + $track': {
2008
+ backgroundColor: theme.palette.success.main,
2009
+ },
2010
+ },
2011
+ thumb: {},
2012
+ track: {},
2013
+ }); });
2014
+
2015
+ var Switch = forwardRef(function (props, ref) {
2016
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
2017
+ var classes = useSwitchStyles(props);
2018
+ var control = React__default.createElement(MuiSwitch, __assign({ classes: classes, disabled: label ? undefined : disabled }, muiProps));
2019
+ return label ? (React__default.createElement(FormControlLabel, __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
2020
+ });
2021
+ Switch.displayName = 'Switch';
2022
+
2023
+ var useToggleButtonStyles = makeStyles$1(function (theme) { return ({
2024
+ root: {
2025
+ color: theme.palette.text.primary,
2026
+ },
2027
+ selected: {
2028
+ '&&': {
2029
+ '&:hover': {
2030
+ backgroundColor: function (props) { return theme.palette[props.color || 'primary'].dark; },
2031
+ },
2032
+ backgroundColor: function (props) { return theme.palette[props.color || 'primary'].main; },
2033
+ color: 'white',
2034
+ },
2035
+ },
2036
+ }); });
2037
+
2038
+ var ToggleButton = forwardRef(function (props, ref) {
2039
+ var children = props.children, muiProps = __rest(props, ["children"]);
2040
+ var classes = useToggleButtonStyles(props);
2041
+ return (React__default.createElement(MuiToggleButton, __assign({ ref: ref, classes: {
2042
+ root: classes.root,
2043
+ selected: classes.selected,
2044
+ } }, muiProps), children));
2045
+ });
2046
+ ToggleButton.defaultProps = {
2047
+ color: 'primary',
2048
+ };
2049
+ ToggleButton.displayName = 'ToggleButton';
2050
+
2051
+ var useToggleButtonGroupStyles = makeStyles$1(function (theme) { return ({
2052
+ root: {
2053
+ '&&': {
2054
+ backgroundColor: theme.palette.grey[300],
2055
+ },
2056
+ },
2057
+ }); });
2058
+
2059
+ var ToggleButtonGroup = forwardRef(function (props, ref) {
2060
+ var children = props.children, _a = props.color, color = _a === void 0 ? 'primary' : _a, muiProps = __rest(props, ["children", "color"]);
2061
+ var classes = useToggleButtonGroupStyles(props);
2062
+ var childrenWithProps = React__default.Children.map(children, function (child) {
2063
+ if (!React__default.isValidElement(child)) {
2064
+ return null;
2065
+ }
2066
+ return React__default.cloneElement(child, { color: color });
2067
+ });
2068
+ return (React__default.createElement(MuiToggleButtonGroup, __assign({ ref: ref, classes: { root: classes.root } }, muiProps), childrenWithProps));
2069
+ });
2070
+ ToggleButtonGroup.displayName = 'ToggleButtonGroup';
2071
+
2072
+ var useTooltipStyles = makeStyles$1(function (_a) {
2073
+ var typography = _a.typography;
2074
+ return ({
2075
+ tooltip: {
2076
+ fontSize: typography.pxToRem(16),
2077
+ },
2078
+ });
2079
+ });
2080
+
2081
+ var Tooltip = forwardRef(function (props, ref) {
2082
+ var classes = useTooltipStyles(props);
2083
+ return React__default.createElement(MuiTooltip, __assign({ ref: ref, classes: classes }, props));
2084
+ });
2085
+ Tooltip.displayName = 'Tooltip';
2086
+
2087
+ makeStyles(function () { return ({
2088
+ root: {
2089
+ height: 56,
2090
+ },
2091
+ }); });
2092
+ makeStyles(function (theme) { return ({
2093
+ root: {
2094
+ height: '100%',
2095
+ width: 'min-content',
2096
+ borderRadius: theme.spacing(1),
2097
+ },
2098
+ input: {
2099
+ '&::-webkit-clear-button, &::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {
2100
+ display: 'none',
2101
+ },
2102
+ '-moz-appearance': 'textfield',
2103
+ minWidth: 40,
2104
+ padding: 0,
2105
+ textAlign: 'center',
2106
+ },
2107
+ adornedStart: {
2108
+ padding: 0,
2109
+ },
2110
+ adornedEnd: {
2111
+ padding: 0,
2112
+ },
2113
+ }); });
2114
+
2115
+ var _g$1d, _defs$I;
2116
+
2117
+ function _extends$27() { _extends$27 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$27.apply(this, arguments); }
2118
+
2119
+ function SvgCheckCircle(props) {
2120
+ return /*#__PURE__*/React.createElement("svg", _extends$27({
2121
+ viewBox: "0 0 16 16",
2122
+ fill: "none",
2123
+ strokeLinecap: "round",
2124
+ strokeLinejoin: "round",
2125
+ width: "1em",
2126
+ height: "1em"
2127
+ }, props), _g$1d || (_g$1d = /*#__PURE__*/React.createElement("g", {
2128
+ clipPath: "url(#check-circle_svg__clip0_8_5831)",
2129
+ stroke: "currentColor"
2130
+ }, /*#__PURE__*/React.createElement("path", {
2131
+ d: "M14.667 7.387V8a6.667 6.667 0 11-3.954-6.093"
2132
+ }), /*#__PURE__*/React.createElement("path", {
2133
+ d: "M14.667 2.667L8 9.34l-2-2"
2134
+ }))), _defs$I || (_defs$I = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
2135
+ id: "check-circle_svg__clip0_8_5831"
2136
+ }, /*#__PURE__*/React.createElement("path", {
2137
+ fill: "currentColor",
2138
+ d: "M0 0h16v16H0z"
2139
+ })))));
2140
+ }
2141
+
2142
+ var _path$U;
2143
+
2144
+ function _extends$25() { _extends$25 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$25.apply(this, arguments); }
2145
+
2146
+ function SvgX(props) {
2147
+ return /*#__PURE__*/React.createElement("svg", _extends$25({
2148
+ viewBox: "0 0 16 16",
2149
+ fill: "none",
2150
+ strokeLinecap: "round",
2151
+ strokeLinejoin: "round",
2152
+ width: "1em",
2153
+ height: "1em"
2154
+ }, props), _path$U || (_path$U = /*#__PURE__*/React.createElement("path", {
2155
+ d: "M12 4l-8 8m0-8l8 8",
2156
+ stroke: "currentColor"
2157
+ })));
2158
+ }
2159
+
2160
+ var _g$15, _defs$B;
2161
+
2162
+ function _extends$1X() { _extends$1X = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1X.apply(this, arguments); }
2163
+
2164
+ function SvgHelp(props) {
2165
+ return /*#__PURE__*/React.createElement("svg", _extends$1X({
2166
+ viewBox: "0 0 16 16",
2167
+ fill: "none",
2168
+ strokeLinecap: "round",
2169
+ strokeLinejoin: "round",
2170
+ width: "1em",
2171
+ height: "1em"
2172
+ }, props), _g$15 || (_g$15 = /*#__PURE__*/React.createElement("g", {
2173
+ clipPath: "url(#help_svg__clip0_8_5446)",
2174
+ stroke: "currentColor"
2175
+ }, /*#__PURE__*/React.createElement("path", {
2176
+ d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333z"
2177
+ }), /*#__PURE__*/React.createElement("path", {
2178
+ d: "M6.06 6a2 2 0 013.887.667c0 1.333-2 2-2 2M8 11.334h.007"
2179
+ }))), _defs$B || (_defs$B = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
2180
+ id: "help_svg__clip0_8_5446"
2181
+ }, /*#__PURE__*/React.createElement("path", {
2182
+ fill: "currentColor",
2183
+ d: "M0 0h16v16H0z"
2184
+ })))));
2185
+ }
2186
+
2187
+ var _g$13, _defs$A;
2188
+
2189
+ function _extends$1V() { _extends$1V = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1V.apply(this, arguments); }
2190
+
2191
+ function SvgInfo(props) {
2192
+ return /*#__PURE__*/React.createElement("svg", _extends$1V({
2193
+ viewBox: "0 0 16 16",
2194
+ fill: "none",
2195
+ strokeLinecap: "round",
2196
+ strokeLinejoin: "round",
2197
+ width: "1em",
2198
+ height: "1em"
2199
+ }, props), _g$13 || (_g$13 = /*#__PURE__*/React.createElement("g", {
2200
+ clipPath: "url(#info_svg__clip0_8_5377)",
2201
+ stroke: "currentColor"
2202
+ }, /*#__PURE__*/React.createElement("path", {
2203
+ d: "M8 14.667A6.667 6.667 0 108 1.334a6.667 6.667 0 000 13.333zm0-4V8m0-2.667h.007"
2204
+ }))), _defs$A || (_defs$A = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
2205
+ id: "info_svg__clip0_8_5377"
2206
+ }, /*#__PURE__*/React.createElement("path", {
2207
+ fill: "currentColor",
2208
+ d: "M0 0h16v16H0z"
2209
+ })))));
2210
+ }
2211
+
2212
+ var _g$Q, _defs$r;
2213
+
2214
+ function _extends$1q() { _extends$1q = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1q.apply(this, arguments); }
2215
+
2216
+ function SvgError(props) {
2217
+ return /*#__PURE__*/React.createElement("svg", _extends$1q({
2218
+ viewBox: "0 0 16 16",
2219
+ fill: "none",
2220
+ strokeLinecap: "round",
2221
+ strokeLinejoin: "round",
2222
+ width: "1em",
2223
+ height: "1em"
2224
+ }, props), _g$Q || (_g$Q = /*#__PURE__*/React.createElement("g", {
2225
+ clipPath: "url(#error_svg__clip0_8_5411)",
2226
+ stroke: "currentColor"
2227
+ }, /*#__PURE__*/React.createElement("path", {
2228
+ d: "M5.24 1.333h5.52l3.907 3.907v5.52l-3.907 3.907H5.24L1.333 10.76V5.24L5.24 1.333zm2.76 4V8m0 2.666h.008"
2229
+ }))), _defs$r || (_defs$r = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
2230
+ id: "error_svg__clip0_8_5411"
2231
+ }, /*#__PURE__*/React.createElement("path", {
2232
+ fill: "currentColor",
2233
+ d: "M0 0h16v16H0z"
2234
+ })))));
2235
+ }
2236
+
2237
+ var _path$A;
2238
+
2239
+ function _extends$1p() { _extends$1p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1p.apply(this, arguments); }
2240
+
2241
+ function SvgWarning(props) {
2242
+ return /*#__PURE__*/React.createElement("svg", _extends$1p({
2243
+ viewBox: "0 0 16 16",
2244
+ fill: "none",
2245
+ strokeLinecap: "round",
2246
+ strokeLinejoin: "round",
2247
+ width: "1em",
2248
+ height: "1em"
2249
+ }, props), _path$A || (_path$A = /*#__PURE__*/React.createElement("path", {
2250
+ d: "M6.86 2.573L1.213 12a1.334 1.334 0 001.14 2h11.294a1.332 1.332 0 001.14-2L9.14 2.573a1.333 1.333 0 00-2.28 0v0zM8 6v2.667m0 2.667h.007",
2251
+ stroke: "currentColor"
2252
+ })));
2253
+ }
2254
+
2255
+ var useAlertStyles = makeStyles$1(function (theme) { return ({
2256
+ root: {
2257
+ alignItems: 'center',
2258
+ width: function (_a) {
2259
+ var fullWidth = _a.fullWidth;
2260
+ return (fullWidth ? '100%' : 'unset');
2261
+ },
2262
+ background: 'white',
2263
+ borderColor: function (props) { return theme.palette[props.severity || 'error'].main; },
2264
+ borderLeft: theme.spacing(1) + "px solid",
2265
+ color: theme.palette.text.primary,
2266
+ },
2267
+ icon: {
2268
+ alignSelf: 'start',
2269
+ },
2270
+ }); });
2271
+
2272
+ var severityIcons$1 = {
2273
+ info: SvgInfo,
2274
+ error: SvgError,
2275
+ warning: SvgWarning,
2276
+ success: SvgCheckCircle,
2277
+ };
2278
+ var Alert = forwardRef(function (props, ref) {
2279
+ var children = props.children, link = props.link, _a = props.severity, severity = _a === void 0 ? 'error' : _a, _b = props.variant, variant = _b === void 0 ? 'outlined' : _b, onClose = props.onClose, muiProps = __rest$1(props, ["children", "link", "severity", "variant", "onClose"]);
2280
+ var classes = useAlertStyles(props);
2281
+ var validLink = link && link.href && link.text && { href: link.href, children: link.text };
2282
+ var Action = (React__default.createElement(React__default.Fragment, null,
2283
+ validLink && React__default.createElement(Link, __assign$1({}, validLink)),
2284
+ onClose && (React__default.createElement(IconButton, { onClick: onClose },
2285
+ React__default.createElement(Icon, { icon: SvgX })))));
2286
+ return (React__default.createElement(CommonAlert, __assign$1({ ref: ref, classes: classes, icon: React__default.createElement(Icon, { icon: severityIcons$1[severity], size: "extra-large" }), action: Action, variant: variant, severity: severity }, muiProps), children));
2287
+ });
2288
+ Alert.displayName = 'Alert';
2289
+
2290
+ var borderWidth = 1;
2291
+ var getColor = function (palette, props) {
2292
+ var variant = props.variant;
2293
+ var color = 'inherit';
2294
+ if (['primary', 'info', 'success', 'warning', 'error'].includes(variant)) {
2295
+ color = palette[variant].contrastText;
2296
+ }
2297
+ if (variant === 'secondary') {
2298
+ color = palette[variant].main;
2299
+ /**
2300
+ * Temporary fix for dark theme buttons.
2301
+ * Dark theme will be addressed in ch-11596 and the following if block should be removed
2302
+ */
2303
+ if (palette.type === 'dark') {
2304
+ color = 'black';
2305
+ }
2306
+ }
2307
+ if (variant === 'tertiary') {
2308
+ color = palette.secondary.contrastText;
2309
+ }
2310
+ if (variant === 'text') {
2311
+ color = palette.info.main;
2312
+ }
2313
+ return color;
2314
+ };
2315
+ var getColorHover = function (palette, props) {
2316
+ var color;
2317
+ if (props.variant === 'secondary') {
2318
+ color = palette.secondary.contrastText;
2319
+ }
2320
+ return color;
2321
+ };
2322
+ var getBackground = function (palette, props) {
2323
+ var backgroundColor = 'inherit';
2324
+ if (['info', 'success', 'warning', 'error'].includes(props.variant)) {
2325
+ backgroundColor = palette[props.variant].main;
2326
+ }
2327
+ if (props.variant === 'primary') {
2328
+ // @ts-expect-error gradient colors are included in the extended palette.
2329
+ backgroundColor = "linear-gradient(97.36deg, " + palette.primary.gradientStart + " 17.03%, " + palette.primary.gradientEnd + " 72.96%)";
2330
+ }
2331
+ if (props.variant === 'secondary') {
2332
+ backgroundColor = 'white';
2333
+ }
2334
+ if (props.variant === 'tertiary') {
2335
+ backgroundColor = palette.secondary.main;
2336
+ }
2337
+ return backgroundColor;
2338
+ };
2339
+ var getBackgroundHover = function (palette, props) {
2340
+ var backgroundHoverColor = 'inherit';
2341
+ if (['primary', 'info', 'success', 'warning', 'error'].includes(props.variant)) {
2342
+ backgroundHoverColor = palette[props.variant].dark;
2343
+ }
2344
+ if (props.variant === 'secondary') {
2345
+ backgroundHoverColor = palette.secondary.main;
2346
+ }
2347
+ if (props.variant === 'tertiary') {
2348
+ backgroundHoverColor = palette.secondary.light;
2349
+ }
2350
+ if (props.variant === 'text' || props.variant === 'ghost') {
2351
+ backgroundHoverColor = palette.action.hover;
2352
+ }
2353
+ return backgroundHoverColor;
2354
+ };
2355
+ var buttonTypography = {
2356
+ fontWeight: 500,
2357
+ fontSize: '0.875rem',
2358
+ lineHeight: '1.25rem',
2359
+ };
2360
+ var useButtonStyles = makeStyles(function (_a) {
2361
+ var palette = _a.palette, spacing = _a.spacing;
2362
+ return ({
2363
+ root: function (props) { return ({
2364
+ minWidth: 'unset',
2365
+ color: getColor(palette, props),
2366
+ background: getBackground(palette, props),
2367
+ backgroundColor: props.variant === 'primary' ? palette.primary.dark : getBackground(palette, props),
2368
+ borderRadius: spacing(6),
2369
+ transition: 'all 200ms ease-in-out',
2370
+ '&:hover': {
2371
+ color: getColorHover(palette, props),
2372
+ background: getBackgroundHover(palette, props),
2373
+ },
2374
+ }); },
2375
+ disabled: {
2376
+ '&$root': {
2377
+ background: palette.action.disabled,
2378
+ },
2379
+ },
2380
+ contained: {
2381
+ padding: spacing(1, 2),
2382
+ },
2383
+ outlined: {
2384
+ padding: "calc(" + spacing(1) + "px - " + borderWidth + "px) calc(" + spacing(2) + "px - " + borderWidth + "px)",
2385
+ '&$sizeSmall': {
2386
+ padding: "calc(" + spacing(0.5) + "px - " + borderWidth + "px) calc(" + spacing(2) + "px - " + borderWidth + "px)",
2387
+ },
2388
+ '&$sizeLarge': {
2389
+ padding: "calc(" + spacing(1.5) + "px - " + borderWidth + "px) calc(" + spacing(2) + "px - " + borderWidth + "px)",
2390
+ },
2391
+ },
2392
+ text: {
2393
+ padding: spacing(1, 2),
2394
+ },
2395
+ label: __assign$1(__assign$1({}, buttonTypography), { textTransform: function (props) { return props.textTransform; } }),
2396
+ sizeSmall: {
2397
+ padding: spacing(0.5, 2),
2398
+ },
2399
+ sizeLarge: {
2400
+ padding: spacing(1.5, 2),
2401
+ },
2402
+ });
2403
+ });
2404
+
2405
+ var deriveButtonProps = function (buttonProps) {
2406
+ var variant = buttonProps.variant;
2407
+ var derived = {};
2408
+ switch (variant) {
2409
+ case 'primary':
2410
+ derived.variant = 'contained';
2411
+ derived.color = 'primary';
2412
+ break;
2413
+ case 'secondary':
2414
+ derived.variant = 'outlined';
2415
+ derived.color = 'secondary';
2416
+ break;
2417
+ case 'tertiary':
2418
+ derived.variant = 'contained';
2419
+ derived.color = 'secondary';
2420
+ break;
2421
+ case 'text':
2422
+ derived.variant = 'text';
2423
+ case 'ghost':
2424
+ derived.variant = 'text';
2425
+ break;
2426
+ case 'success':
2427
+ derived.variant = 'contained';
2428
+ break;
2429
+ case 'info':
2430
+ derived.variant = 'contained';
2431
+ break;
2432
+ case 'warning':
2433
+ derived.variant = 'contained';
2434
+ break;
2435
+ case 'error':
2436
+ derived.variant = 'contained';
2437
+ break;
2438
+ default:
2439
+ derived.variant = variant;
2440
+ break;
2441
+ }
2442
+ return derived;
2443
+ };
2444
+
2445
+ var Button = forwardRef(function (props, ref) {
2446
+ var children = props.children; props.variant; var classesOverride = props.classes, commonProps = __rest$1(props, ["children", "variant", "classes"]);
2447
+ var classes = useButtonStyles(props);
2448
+ var derivedProps = deriveButtonProps(props);
2449
+ var mergedProps = __assign$1(__assign$1({}, derivedProps), commonProps);
2450
+ return (React__default.createElement(Button$1, __assign$1({ ref: ref, classes: __assign$1(__assign$1({}, classes), classesOverride), disableElevation: true }, mergedProps), children));
2451
+ });
2452
+ Button.defaultProps = {
2453
+ textTransform: 'uppercase',
2454
+ variant: 'primary',
2455
+ };
2456
+ Button.displayName = 'Button';
2457
+
2458
+ var useAlertDialogStyles = makeStyles$1(function (theme) { return ({
2459
+ cancelButton: {
2460
+ color: theme.palette.grey[700],
2461
+ },
2462
+ cancelIcon: {
2463
+ position: 'absolute',
2464
+ right: theme.spacing(1),
2465
+ top: theme.spacing(2),
2466
+ },
2467
+ card: {
2468
+ borderRadius: theme.spacing(0.75),
2469
+ borderTop: function (props) { return theme.spacing(1.25) + "px solid " + theme.palette[props.severity || 'info'].main; },
2470
+ },
2471
+ cardActions: {
2472
+ background: theme.palette.grey[100],
2473
+ justifyContent: 'flex-end',
2474
+ },
2475
+ icon: {
2476
+ fontSize: theme.spacing(5),
2477
+ },
2478
+ root: {
2479
+ borderRadius: theme.spacing(0.75),
2480
+ },
2481
+ }); });
2482
+
2483
+ var severityIcons = {
2484
+ info: SvgInfo,
2485
+ error: SvgError,
2486
+ warning: SvgWarning,
2487
+ success: SvgCheckCircle,
2488
+ };
2489
+ var AlertDialog = forwardRef(function (props, ref) {
2490
+ var children = props.children, labelId = props.labelId, descriptionId = props.descriptionId, _a = props.severity, severity = _a === void 0 ? 'info' : _a, _b = props.proceedButtonText, proceedButtonText = _b === void 0 ? 'proceed' : _b, onClose = props.onClose, onCancel = props.onCancel, onProceed = props.onProceed, DialogProps = __rest$1(props, ["children", "labelId", "descriptionId", "severity", "proceedButtonText", "onClose", "onCancel", "onProceed"]);
2491
+ var classes = useAlertDialogStyles(props);
2492
+ return (React__default.createElement(Dialog, __assign$1({ ref: ref, classes: { paper: classes.root }, maxWidth: "sm", fullWidth: true }, DialogProps),
2493
+ React__default.createElement(Card, { classes: { root: classes.card }, role: "alertdialog", "aria-modal": "true", "aria-labelledby": labelId, "aria-describedby": descriptionId },
2494
+ React__default.createElement(IconButton, { className: classes.cancelIcon, onClick: onClose },
2495
+ React__default.createElement(Icon, { icon: SvgX })),
2496
+ React__default.createElement(CardContent, null,
2497
+ React__default.createElement(Box, { display: "flex" },
2498
+ React__default.createElement(Icon, { className: classes.icon, color: severity, icon: severityIcons[severity] }),
2499
+ React__default.createElement(Box, { pl: 2, pr: 3 }, children))),
2500
+ React__default.createElement(CardActions, { classes: { root: classes.cardActions } },
2501
+ React__default.createElement(Button, { onClick: onCancel, variant: "ghost" }, "Cancel"),
2502
+ React__default.createElement(Button, { onClick: onProceed, variant: severity }, proceedButtonText)))));
2503
+ });
2504
+ AlertDialog.displayName = 'AlertDialog';
2505
+
2506
+ var getBorderColor = function (palette, variant) {
2507
+ var borderColor = 'inherit';
2508
+ if (['primary', 'secondary', 'info', 'success', 'warning', 'error'].includes(variant)) {
2509
+ borderColor = palette[variant].light;
2510
+ }
2511
+ return borderColor;
2512
+ };
2513
+ var useButtonGroupStyles = makeStyles$1(function (theme) { return ({
2514
+ root: {
2515
+ boxShadow: 'none',
2516
+ },
2517
+ groupedContained: {
2518
+ '&&': {
2519
+ borderColor: function (props) { return getBorderColor(theme.palette, props.variant); },
2520
+ },
2521
+ },
2522
+ groupedText: {
2523
+ '&&': {
2524
+ borderColor: theme.palette.info.main,
2525
+ },
2526
+ },
2527
+ }); });
2528
+
2529
+ var ButtonGroup = forwardRef(function (props, ref) {
2530
+ var children = props.children, _a = props.variant, variant = _a === void 0 ? 'primary' : _a, muiProps = __rest$1(props, ["children", "variant"]);
2531
+ var classes = useButtonGroupStyles(props);
2532
+ var derivedProps = deriveButtonProps({ variant: variant });
2533
+ var spacing = useTheme().spacing;
2534
+ var childrenWithProps = React__default.Children.map(children, function (child, i) {
2535
+ var isFirst = i === 0 && props.orientation === 'vertical';
2536
+ var isLast = i === React__default.Children.toArray(children).length - 1 && props.orientation === 'vertical';
2537
+ var firstStyles = { style: { borderTopLeftRadius: spacing(2), borderTopRightRadius: spacing(2) } };
2538
+ var lastStyles = { style: { borderBottomLeftRadius: spacing(2), borderBottomRightRadius: spacing(2) } };
2539
+ if (!React__default.isValidElement(child)) {
2540
+ return null;
2541
+ }
2542
+ return React__default.cloneElement(child, __assign$1(__assign$1({ variant: variant }, (isFirst && firstStyles)), (isLast && lastStyles)));
2543
+ });
2544
+ return (React__default.createElement(CommonButtonGroup, __assign$1({ ref: ref, classes: classes }, derivedProps, muiProps), childrenWithProps));
2545
+ });
2546
+ ButtonGroup.displayName = 'ButtonGroup';
2547
+
2548
+ makeStyles$1(function (_a) {
2549
+ var spacing = _a.spacing;
2550
+ return ({
2551
+ root: {
2552
+ gap: spacing(3),
2553
+ },
2554
+ actions: {
2555
+ gap: spacing(3),
2556
+ },
2557
+ image: {
2558
+ width: '100%',
2559
+ objectFit: 'contain',
2560
+ },
2561
+ });
2562
+ });
2563
+
2564
+ makeStyles$1(function (theme) { return ({
2565
+ root: {
2566
+ position: 'sticky',
2567
+ background: 'white',
2568
+ bottom: 0,
2569
+ display: 'flex',
2570
+ justifyContent: 'space-between',
2571
+ padding: theme.spacing(1.5) + "px " + theme.spacing(3) + "px",
2572
+ borderTop: theme.spacing(0.5) + "px solid " + theme.palette.grey[100],
2573
+ zIndex: 3,
2574
+ },
2575
+ inlineEndActions: {
2576
+ '& > *': {
2577
+ marginInlineStart: theme.spacing(2),
2578
+ },
2579
+ },
2580
+ inlineStartActions: {
2581
+ display: 'flex',
2582
+ alignItems: 'center',
2583
+ '& > *': {
2584
+ marginInlineEnd: theme.spacing(2),
2585
+ },
2586
+ },
2587
+ }); });
2588
+
2589
+ makeStyles$1({
2590
+ root: {
2591
+ fontStyle: 'italic',
2592
+ },
2593
+ });
2594
+
2595
+ var getBorderRadius = function (theme, props) {
2596
+ var stepCursor = props.stepCursor, stepCount = props.stepCount;
2597
+ var isFinalStep = stepCursor / stepCount === 1;
2598
+ if (isFinalStep) {
2599
+ return 0;
2600
+ }
2601
+ else {
2602
+ return theme.spacing(0.5);
2603
+ }
2604
+ };
2605
+ makeStyles$1(function (theme) { return ({
2606
+ progress: {
2607
+ width: function (props) { return (props.stepCursor / props.stepCount) * 100 + "%"; },
2608
+ transition: 'all 500ms',
2609
+ height: theme.spacing(1),
2610
+ // @ts-expect-error: Theme includes extended properties
2611
+ background: "linear-gradient(45deg, " + theme.palette.primary.gradientStart + ", " + theme.palette.primary.gradientEnd + ")",
2612
+ borderEndEndRadius: function (props) { return getBorderRadius(theme, props); },
2613
+ borderStartEndRadius: function (props) { return getBorderRadius(theme, props); },
2614
+ },
2615
+ track: {
2616
+ position: 'absolute',
2617
+ bottom: 0,
2618
+ display: 'flex',
2619
+ alignItems: 'center',
2620
+ width: '100%',
2621
+ height: theme.spacing(0.5),
2622
+ background: theme.palette.grey[100],
2623
+ zIndex: 2,
2624
+ },
2625
+ }); });
2626
+
2627
+ makeStyles$1(function (_a) {
2628
+ var spacing = _a.spacing;
2629
+ return ({
2630
+ closeButton: {
2631
+ position: 'absolute',
2632
+ right: 0,
2633
+ top: 0,
2634
+ },
2635
+ root: {
2636
+ alignItems: 'center',
2637
+ background: 'white',
2638
+ display: 'flex',
2639
+ flexDirection: 'column',
2640
+ justifyContent: 'center',
2641
+ padding: spacing(1.5, 0),
2642
+ position: 'sticky',
2643
+ top: 0,
2644
+ zIndex: 3,
2645
+ },
2646
+ });
2647
+ });
2648
+
2649
+ createContext({});
2650
+
2651
+ makeStyles$1(function (theme) {
2652
+ var _a = theme.palette, info = _a.info, grey = _a.grey, getContrastText = _a.getContrastText, spacing = theme.spacing;
2653
+ var selectedBackgroundColor = lighten(theme.palette.info.light, 0.9);
2654
+ var backgroundColor = theme.palette.surface.light;
2655
+ return {
2656
+ root: {
2657
+ position: 'relative',
2658
+ border: function (_a) {
2659
+ var selected = _a.selected;
2660
+ return (selected ? "1px solid " + info.light : "1px solid " + grey[700]);
2661
+ },
2662
+ backgroundColor: function (_a) {
2663
+ var selected = _a.selected;
2664
+ return (selected ? selectedBackgroundColor : backgroundColor);
2665
+ },
2666
+ color: function (_a) {
2667
+ var selected = _a.selected;
2668
+ return (selected ? getContrastText(selectedBackgroundColor) : getContrastText(backgroundColor));
2669
+ },
2670
+ transition: 'none',
2671
+ },
2672
+ cardContent: {
2673
+ display: 'flex',
2674
+ flexDirection: 'column',
2675
+ alignItems: 'center',
2676
+ justifyContent: 'center',
2677
+ marginTop: spacing(2.5),
2678
+ },
2679
+ icon: {
2680
+ position: 'absolute',
2681
+ top: spacing(2),
2682
+ left: spacing(2),
2683
+ color: function (_a) {
2684
+ var selected = _a.selected;
2685
+ return (selected ? info.main : grey[700]);
2686
+ },
2687
+ },
2688
+ focusHighlight: {
2689
+ backgroundColor: 'inherit',
2690
+ },
2691
+ };
2692
+ });
2693
+
2694
+ makeStyles$1(function (theme) { return ({
2695
+ root: {
2696
+ boxSizing: 'border-box',
2697
+ padding: theme.spacing(0, 1.5),
2698
+ /** TODO: design to define responsive width value. */
2699
+ width: '350px',
2700
+ '& > div:first-child': {
2701
+ alignItems: 'center',
2702
+ },
906
2703
  },
907
2704
  }); });
908
2705
 
909
- var TableHeaderCell = function (props) {
910
- var children = props.children, column = props.column; props.tableProps; var restProps = __rest$1(props, ["children", "column", "tableProps"]);
911
- var root = useTableHeaderCellStyles(props).root;
912
- var _a = useTheme$1(), palette = _a.palette, spacing = _a.spacing;
913
- //@ts-expect-error @types/react-table issue
914
- var canSort = column.canSort, isSorted = column.isSorted, isSortedDesc = column.isSortedDesc, isActionColumn = column.isActionColumn;
915
- var showSortIndicator = canSort && !isActionColumn;
916
- return (React__default.createElement("th", __assign$1({ className: root }, restProps),
917
- React__default.createElement(Box, { display: "flex", alignItems: "center", gridGap: spacing(1) },
918
- children,
919
- showSortIndicator && (React__default.createElement(Icon, { icon: isSortedDesc ? SvgChevronDown : SvgChevronUp, color: isSorted ? palette.text.primary : palette.text.disabled, size: "large" })))));
920
- };
2706
+ makeStyles(function (_a) {
2707
+ var palette = _a.palette;
2708
+ return ({
2709
+ root: {
2710
+ background: palette.grey['100'],
2711
+ },
2712
+ });
2713
+ });
921
2714
 
922
- var TableHeaderRow = function (props) {
923
- var children = props.children, restProps = __rest$1(props, ["children"]);
924
- return React__default.createElement("tr", __assign$1({}, restProps), children);
925
- };
2715
+ var usePageSectionStyles = makeStyles(function (_a) {
2716
+ var spacing = _a.spacing;
2717
+ return ({
2718
+ root: {
2719
+ background: function (_a) {
2720
+ var uncontained = _a.uncontained;
2721
+ return (uncontained ? 'transparent' : undefined);
2722
+ },
2723
+ },
2724
+ cardContent: {
2725
+ padding: spacing(4),
2726
+ },
2727
+ });
2728
+ });
926
2729
 
927
- var useTableRowStyles = makeStyles(function (theme) { return ({
928
- root: function () { return ({
929
- '&:nth-child(even)': {
930
- backgroundColor: theme.palette.grey[100],
2730
+ var PageSection = forwardRef(function (props, ref) {
2731
+ var children = props.children; props.uncontained; var restProps = __rest$1(props, ["children", "uncontained"]);
2732
+ var classes = usePageSectionStyles(props);
2733
+ return (React__default.createElement(Card, __assign$1({ classes: { root: classes.root }, ref: ref }, restProps),
2734
+ React__default.createElement(CardContent, { classes: { root: classes.cardContent } }, children)));
2735
+ });
2736
+ PageSection.displayName = 'PageSection';
2737
+
2738
+ makeStyles(function () { return ({
2739
+ gutterBottom: {
2740
+ marginBottom: '1em',
2741
+ },
2742
+ }); });
2743
+
2744
+ var useSettingsIndexCardStyles = makeStyles$1(function (theme) { return ({
2745
+ cardRoot: {
2746
+ border: "1px solid " + theme.palette.grey[300],
2747
+ alignSelf: 'stretch',
2748
+ flexGrow: 1,
2749
+ '&:hover': {
2750
+ backgroundColor: '#52B7FF1A',
931
2751
  },
932
- }); },
2752
+ },
2753
+ cardContentRoot: {
2754
+ padding: theme.spacing(4),
2755
+ '&:last-child': {
2756
+ paddingBottom: theme.spacing(4),
2757
+ },
2758
+ },
933
2759
  }); });
934
2760
 
935
- var TableRow = function (props) {
936
- var children = props.children, restProps = __rest$1(props, ["children"]);
937
- var root = useTableRowStyles(props).root;
938
- return (React__default.createElement("tr", __assign$1({ className: root }, restProps), children));
2761
+ var SettingsIndexCard = forwardRef(function (props, ref) {
2762
+ var title = props.title, description = props.description, Icon$1 = props.Icon, onClick = props.onClick, statusLabel = props.statusLabel, restProps = __rest$1(props, ["title", "description", "Icon", "onClick", "statusLabel"]);
2763
+ var classes = useSettingsIndexCardStyles(props);
2764
+ var showStatusLabel = (statusLabel === null || statusLabel === void 0 ? void 0 : statusLabel.text) && (statusLabel === null || statusLabel === void 0 ? void 0 : statusLabel.color);
2765
+ return (React__default.createElement(ButtonBase, __assign$1({ onClick: onClick, ref: ref }, restProps),
2766
+ React__default.createElement(Card, { classes: { root: classes.cardRoot } },
2767
+ React__default.createElement(CardContent, { classes: { root: classes.cardContentRoot } },
2768
+ React__default.createElement(Box, { fontSize: "32px", display: "flex", justifyContent: 'space-between', alignItems: "center", paddingBottom: 2 },
2769
+ React__default.createElement(Icon, { icon: Icon$1 || SvgHelp, size: "inherit" }),
2770
+ showStatusLabel && (React__default.createElement(Typography, { weight: "semi-bold", variant: "body2", color: statusLabel === null || statusLabel === void 0 ? void 0 : statusLabel.color }, statusLabel === null || statusLabel === void 0 ? void 0 : statusLabel.text))),
2771
+ React__default.createElement(Typography, { align: "left", variant: "h6", gutterBottom: true }, title),
2772
+ description && (React__default.createElement(Typography, { align: "left", variant: "body2", color: "grey.700" }, description))))));
2773
+ });
2774
+ SettingsIndexCard.displayName = 'SettingsIndexCard';
2775
+
2776
+ var classnames = {exports: {}};
2777
+
2778
+ /*!
2779
+ Copyright (c) 2018 Jed Watson.
2780
+ Licensed under the MIT License (MIT), see
2781
+ http://jedwatson.github.io/classnames
2782
+ */
2783
+
2784
+ (function (module) {
2785
+ /* global define */
2786
+
2787
+ (function () {
2788
+
2789
+ var hasOwn = {}.hasOwnProperty;
2790
+
2791
+ function classNames() {
2792
+ var classes = [];
2793
+
2794
+ for (var i = 0; i < arguments.length; i++) {
2795
+ var arg = arguments[i];
2796
+ if (!arg) continue;
2797
+
2798
+ var argType = typeof arg;
2799
+
2800
+ if (argType === 'string' || argType === 'number') {
2801
+ classes.push(arg);
2802
+ } else if (Array.isArray(arg)) {
2803
+ if (arg.length) {
2804
+ var inner = classNames.apply(null, arg);
2805
+ if (inner) {
2806
+ classes.push(inner);
2807
+ }
2808
+ }
2809
+ } else if (argType === 'object') {
2810
+ if (arg.toString === Object.prototype.toString) {
2811
+ for (var key in arg) {
2812
+ if (hasOwn.call(arg, key) && arg[key]) {
2813
+ classes.push(key);
2814
+ }
2815
+ }
2816
+ } else {
2817
+ classes.push(arg.toString());
2818
+ }
2819
+ }
2820
+ }
2821
+
2822
+ return classes.join(' ');
2823
+ }
2824
+
2825
+ if (module.exports) {
2826
+ classNames.default = classNames;
2827
+ module.exports = classNames;
2828
+ } else {
2829
+ window.classNames = classNames;
2830
+ }
2831
+ }());
2832
+ }(classnames));
2833
+
2834
+ classnames.exports;
2835
+
2836
+ makeStyles(function (theme) { return ({
2837
+ root: {
2838
+ '&$uncontained > li > *:first-child': {
2839
+ background: theme.palette.background.paper,
2840
+ borderRadius: theme.spacing(1),
2841
+ },
2842
+ '& > li > *:first-child': {
2843
+ borderBottom: "1px solid " + theme.palette.grey[300],
2844
+ },
2845
+ '& > li:last-child > *:first-child': {
2846
+ borderBottom: 'none',
2847
+ },
2848
+ },
2849
+ uncontained: {
2850
+ display: 'flex',
2851
+ flexDirection: 'column',
2852
+ gap: 16,
2853
+ },
2854
+ }); });
2855
+
2856
+ makeStyles(function (theme) { return ({
2857
+ chipRoot: {
2858
+ marginRight: theme.spacing(4),
2859
+ cursor: 'pointer',
2860
+ },
2861
+ }); });
2862
+
2863
+ var fonts = ['"Poppins"', '"sans-serif"'];
2864
+ var adminThemeTypography = {
2865
+ htmlFontSize: 16,
2866
+ fontFamily: fonts.join(', '),
2867
+ h1: {
2868
+ fontWeight: 400,
2869
+ fontSize: '6rem',
2870
+ lineHeight: '9rem',
2871
+ },
2872
+ h2: {
2873
+ fontWeight: 400,
2874
+ fontSize: '3.75rem',
2875
+ lineHeight: '5.625rem',
2876
+ },
2877
+ h3: {
2878
+ fontWeight: 400,
2879
+ fontSize: '3rem',
2880
+ lineHeight: '4.5rem',
2881
+ },
2882
+ h4: {
2883
+ fontWeight: 400,
2884
+ fontSize: '2.125rem',
2885
+ lineHeight: '3.25rem',
2886
+ },
2887
+ h5: {
2888
+ fontWeight: 500,
2889
+ fontSize: '1.5rem',
2890
+ lineHeight: '2.25rem',
2891
+ },
2892
+ h6: {
2893
+ fontWeight: 500,
2894
+ fontSize: '1.25rem',
2895
+ lineHeight: '1.875rem',
2896
+ },
2897
+ h7: {
2898
+ fontWeight: 400,
2899
+ fontSize: '1.125rem',
2900
+ lineHeight: '1.75rem',
2901
+ },
2902
+ body1: {
2903
+ fontWeight: 400,
2904
+ fontSize: '1rem',
2905
+ lineHeight: '1.5rem',
2906
+ },
2907
+ body2: {
2908
+ fontWeight: 400,
2909
+ fontSize: '0.875rem',
2910
+ lineHeight: '1.25rem',
2911
+ },
2912
+ subtitle1: {
2913
+ fontWeight: 400,
2914
+ fontSize: '0.75rem',
2915
+ lineHeight: '1.125rem',
2916
+ color: '#9E9E9E',
2917
+ },
2918
+ button: {
2919
+ fontWeight: 500,
2920
+ fontSize: '0.875rem',
2921
+ lineHeight: '1.25rem',
2922
+ textTransform: 'capitalize',
2923
+ },
939
2924
  };
940
2925
 
941
- var TableBody = function (props) {
942
- var children = props.children, restProps = __rest$1(props, ["children"]);
943
- return React__default.createElement("tbody", __assign$1({}, restProps), children);
2926
+ var adminThemeBreakpoints = {
2927
+ values: {
2928
+ xs: 0,
2929
+ sm: 768,
2930
+ md: 992,
2931
+ lg: 1200,
2932
+ xl: 1900,
2933
+ },
944
2934
  };
945
2935
 
946
- var tableConstants = {
947
- tableTypography: 'body1',
948
- cellPaddingFactor: 2,
949
- headerBorder: 2,
2936
+ var basePalette = {
2937
+ /** Semantic Colors */
2938
+ primary: {
2939
+ light: '#DA777E',
2940
+ main: '#F04649',
2941
+ dark: '#B3212B',
2942
+ contrastText: '#FFFFFF',
2943
+ gradientStart: '#ED4A67',
2944
+ gradientEnd: '#F04649',
2945
+ },
2946
+ info: {
2947
+ light: '#52B7FF',
2948
+ main: '#0076CB',
2949
+ dark: '#164B54',
2950
+ },
2951
+ success: {
2952
+ light: '#48D3AB',
2953
+ main: '#00B485',
2954
+ dark: '#00663E',
2955
+ contrastText: '#FFFFFF',
2956
+ },
2957
+ error: {
2958
+ light: '#DA777E',
2959
+ main: '#E52021',
2960
+ dark: '#A80005',
2961
+ },
2962
+ warning: {
2963
+ light: '#F0DFBA',
2964
+ main: '#F5C364',
2965
+ dark: '#E57E45',
2966
+ },
2967
+ /** Colors */
2968
+ blue: {
2969
+ light: '#52B7FF',
2970
+ main: '#0076CB',
2971
+ dark: '#164B54',
2972
+ },
2973
+ green: {
2974
+ light: '#48D3AB',
2975
+ main: '#00B485',
2976
+ dark: '#00663E',
2977
+ },
2978
+ purple: {
2979
+ light: '#7B7FA3',
2980
+ main: '#2E3042',
2981
+ dark: '#1A1D20',
2982
+ },
2983
+ red: {
2984
+ light: '#DA777E',
2985
+ main: '#F04649',
2986
+ dark: '#B3212B',
2987
+ },
2988
+ yellow: {
2989
+ light: '#F0DFBA',
2990
+ main: '#F5C364',
2991
+ dark: '#E57E45',
2992
+ },
2993
+ gray: {
2994
+ light: '#E9E9E9',
2995
+ main: '#D9D9D9',
2996
+ dark: '#9D9D9D',
2997
+ },
2998
+ white: {
2999
+ main: '#FFFFFF',
3000
+ },
3001
+ };
3002
+ var adminLightPalette = {
3003
+ type: 'light',
3004
+ /** Semantic Colors */
3005
+ secondary: {
3006
+ light: '#7B7FA3',
3007
+ main: '#2E3042',
3008
+ dark: '#1A1D20',
3009
+ },
3010
+ surface: {
3011
+ light: '#FEFEFE',
3012
+ main: '#ECF0F1',
3013
+ dark: '#2E3042',
3014
+ },
3015
+ };
3016
+ var adminDarkPalette = {
3017
+ type: 'dark',
3018
+ /** Semantic Colors */
3019
+ secondary: {
3020
+ main: '#FFFFFF',
3021
+ },
3022
+ surface: {
3023
+ light: '#141414',
3024
+ main: '#222222',
3025
+ dark: '#333333',
3026
+ },
3027
+ };
3028
+ var dataVizPalette = {
3029
+ data: {
3030
+ blue: {
3031
+ main: '#6B82FE',
3032
+ },
3033
+ peach: {
3034
+ main: '#FF7061',
3035
+ },
3036
+ },
950
3037
  };
951
3038
 
952
- var useTableCellStyles = makeStyles(function (theme) { return ({
953
- root: function () { return ({
954
- padding: theme.spacing(tableConstants.cellPaddingFactor),
955
- }); },
956
- }); });
3039
+ /**
3040
+ * These theme properties should be considered legacy. Make efforts to avoid new usage as well as refactor out existing
3041
+ * usage.
3042
+ */
3043
+ var adminLightPlaceholder = { placeholder: 'rgba(0, 0, 0, 1)' };
3044
+ var adminDarkPlaceholder = { placeholder: 'rgba(255, 255, 255, 0.37)' };
3045
+ var adminThemeStatus = {
3046
+ status: {
3047
+ disabled: {
3048
+ opacity: 0.55,
3049
+ },
3050
+ },
3051
+ };
3052
+ var BASE_Z_INDEX = 1100000;
3053
+ var adminThemeZIndex = {
3054
+ zIndex: {
3055
+ mobileStepper: BASE_Z_INDEX + 1000,
3056
+ appBar: BASE_Z_INDEX + 1100,
3057
+ drawer: BASE_Z_INDEX + 1200,
3058
+ modal: BASE_Z_INDEX + 1300,
3059
+ snackbar: BASE_Z_INDEX + 1400,
3060
+ tooltip: BASE_Z_INDEX + 9100,
3061
+ },
3062
+ };
3063
+ /** The defaults for MuiInputBase and MuiInputLabel can be removed once the BasicForm & 'shared' inputs have either:
3064
+ * 1. been refactored to use secondary color.
3065
+ * 2. been replaced with new common components.
3066
+ */
3067
+ var adminThemeDefaultProps = {
3068
+ props: {
3069
+ MuiCard: {
3070
+ elevation: 0,
3071
+ },
3072
+ MuiTooltip: {
3073
+ title: '',
3074
+ placement: 'right',
3075
+ },
3076
+ MuiPaper: {
3077
+ elevation: 0,
3078
+ },
3079
+ MuiAppBar: {
3080
+ position: 'static',
3081
+ },
3082
+ MuiInputBase: {
3083
+ color: 'secondary',
3084
+ },
3085
+ MuiInputLabel: {
3086
+ color: 'secondary',
3087
+ },
3088
+ },
3089
+ };
957
3090
 
958
- var TableCell = function (props) {
959
- var children = props.children, restProps = __rest$1(props, ["children"]);
960
- var root = useTableCellStyles(props).root;
961
- return (React__default.createElement("td", __assign$1({ className: root }, restProps), children));
3091
+ var adminLightOptions = __assign$1(__assign$1(__assign$1(__assign$1({ themeName: 'Admin Light', palette: __assign$1(__assign$1(__assign$1({}, basePalette), adminLightPalette), dataVizPalette), breakpoints: adminThemeBreakpoints, typography: adminThemeTypography }, adminLightPlaceholder), adminThemeZIndex), adminThemeStatus), adminThemeDefaultProps);
3092
+ createTheme(adminLightOptions);
3093
+
3094
+ var adminDarkOptions = __assign$1(__assign$1(__assign$1(__assign$1({ themeName: 'Admin Dark', palette: __assign$1(__assign$1(__assign$1({}, basePalette), adminDarkPalette), dataVizPalette), breakpoints: adminThemeBreakpoints, typography: adminThemeTypography }, adminDarkPlaceholder), adminThemeZIndex), adminThemeStatus), adminThemeDefaultProps);
3095
+ createTheme(adminDarkOptions);
3096
+
3097
+ var useStyles$2 = makeStyles({
3098
+ root: {
3099
+ justifySelf: 'end',
3100
+ },
3101
+ });
3102
+
3103
+ var Trigger = function (props) {
3104
+ var _a = props.label, label = _a === void 0 ? 'Filter' : _a, onClick = props.onClick;
3105
+ var classes = useStyles$2();
3106
+ return (React__default.createElement(Button, { className: classes.root, onClick: onClick, startIcon: React__default.createElement(Icon$1, { icon: SvgFilter }), textTransform: "none", variant: "ghost" }, label));
962
3107
  };
963
3108
 
964
- var filterProps = function (props) {
965
- props.icon; props.action; var filteredProps = __rest$1(props, ["icon", "action"]);
966
- return filteredProps;
967
- };
968
- var TableActionsCell = function (props) {
969
- var _a = props.actions, primary = _a.primary, secondary = _a.secondary, intermediate = __rest$1(_a, ["primary", "secondary"]);
970
- var tertiary = intermediate.tertiary, restActions = __rest$1(intermediate, ["tertiary"]);
971
- var overflow = Object.keys(props.actions).length > 3;
972
- var _b = React__default.useState(null), anchorEl = _b[0], setAnchorEl = _b[1];
973
- var openMenu = function (event) {
3109
+ var FilterPanel = function () {
3110
+ var _a = useState(null), anchorEl = _a[0], setAnchorEl = _a[1];
3111
+ var handleClick = function (event) {
974
3112
  setAnchorEl(event.currentTarget);
975
3113
  };
976
- var closeMenu = function () {
3114
+ var handleClose = function () {
977
3115
  setAnchorEl(null);
978
3116
  };
979
- var handleItemClick = function (action) {
980
- action(props.cell);
981
- closeMenu();
982
- };
983
- return (React__default.createElement(Box, { display: "flex" },
984
- primary && primary.icon && (React__default.createElement(Tooltip, { title: primary.label },
985
- React__default.createElement(IconButton, __assign$1({ size: "small", onClick: function () { return primary.action(props.cell); } }, filterProps(primary)),
986
- React__default.createElement(Icon, { icon: primary.icon })))),
987
- secondary && secondary.icon && (React__default.createElement(Tooltip, { title: secondary.label },
988
- React__default.createElement(IconButton, __assign$1({ size: "small", onClick: function () { return secondary.action(props.cell); } }, filterProps(secondary)),
989
- React__default.createElement(Icon, { icon: secondary.icon })))),
990
- !overflow && tertiary && tertiary.icon && (React__default.createElement(Tooltip, { title: tertiary.label },
991
- React__default.createElement(IconButton, __assign$1({ size: "small", onClick: function () { return tertiary.action(props.cell); } }, filterProps(tertiary)),
992
- React__default.createElement(Icon, { icon: tertiary.icon })))),
993
- overflow && restActions && (React__default.createElement(React__default.Fragment, null,
994
- React__default.createElement(IconButton, { size: "small", onClick: openMenu },
995
- React__default.createElement(Icon, { icon: SvgMore })),
996
- React__default.createElement(Menu, { anchorEl: anchorEl, open: Boolean(anchorEl), onClose: closeMenu }, Object.values(__assign$1({ tertiary: tertiary }, restActions))
997
- .filter(function (value) { return value; })
998
- .map(function (_a, i) {
999
- var label = _a.label, action = _a.action, restProps = __rest$1(_a, ["label", "action"]);
1000
- return (React__default.createElement(MenuItem, __assign$1({ key: i, onClick: function () { return handleItemClick(action); } }, restProps), label));
1001
- }))))));
3117
+ return (React__default.createElement(React__default.Fragment, null,
3118
+ React__default.createElement(Trigger, { onClick: handleClick }),
3119
+ React__default.createElement(Panel, { onClose: handleClose, anchorEl: anchorEl })));
1002
3120
  };
1003
3121
 
1004
- var makeColumns = function (config) {
1005
- var columns = config.columns, actions = config.actions, actionColumnId = config.actionColumnId;
1006
- var actionColumn;
1007
- var memoizedColumns = __spreadArray([], columns);
1008
- if (actions) {
1009
- var CellComponent = function (props) { return React__default.createElement(TableActionsCell, __assign$1({}, props, { actions: actions })); };
1010
- actionColumn = {
1011
- id: actionColumnId,
1012
- Header: function () { return null; },
1013
- Cell: CellComponent,
1014
- };
1015
- memoizedColumns = __spreadArray(__spreadArray([], columns), [actionColumn]);
1016
- }
1017
- return memoizedColumns;
1018
- };
3122
+ var useStyles$1 = makeStyles({
3123
+ root: {
3124
+ justifySelf: 'start',
3125
+ width: 300,
3126
+ },
3127
+ });
1019
3128
 
1020
3129
  var GlobalFilter = function (props) {
1021
- var value = props.value, setValue = props.setValue, restProps = __rest$1(props, ["value", "setValue"]);
1022
- var onChange = restProps.onChange, InputProps = restProps.InputProps, cleanRestProps = __rest$1(restProps, ["onChange", "InputProps"]);
3130
+ var value = props.value, setValue = props.setValue, restProps = __rest$3(props, ["value", "setValue"]);
3131
+ var classes = useStyles$1();
1023
3132
  var handleChange = function (e) {
1024
3133
  setValue(e.target.value);
1025
- if (onChange) {
1026
- onChange(e);
1027
- }
1028
3134
  };
1029
- return (React__default.createElement(TextField, __assign$1({ variant: "outlined", value: value, onChange: handleChange, InputProps: __assign$1({ startAdornment: (React__default.createElement(InputAdornment, { position: "start" },
1030
- React__default.createElement(Icon, { icon: SvgSearch }))) }, InputProps) }, cleanRestProps)));
3135
+ return (React__default.createElement(TextField, __assign$3({ className: classes.root, variant: "outlined", value: value, onChange: handleChange, InputProps: {
3136
+ startAdornment: (React__default.createElement(InputAdornment, { position: "start" },
3137
+ React__default.createElement(Icon$1, { icon: SvgSearch }))),
3138
+ } }, restProps)));
1031
3139
  };
1032
3140
 
1033
- var useTableStyles = makeStyles(function (_a) {
1034
- var typography = _a.typography;
1035
- return ({
1036
- root: function (_a) {
1037
- var fullWidth = _a.fullWidth;
1038
- return ({
1039
- display: fullWidth ? 'flex' : 'inline-flex',
1040
- flexDirection: 'column',
1041
- });
1042
- },
1043
- table: function (_a) {
1044
- var fullWidth = _a.fullWidth;
1045
- return (__assign$1(__assign$1({ borderCollapse: 'collapse' }, (fullWidth && { width: '100%' })), typography[tableConstants.tableTypography]));
3141
+ var TableHeaderRow = function (props) {
3142
+ var children = props.children, restProps = __rest$3(props, ["children"]);
3143
+ return (React__default.createElement("tr", __assign$3({ "data-table-element": 'header-row' }, restProps), children));
3144
+ };
3145
+
3146
+ // const getWidth = (props: TableHeaderCellProps) => {
3147
+ // const {
3148
+ // column: { isActionColumn },
3149
+ // tableProps: { fullWidth },
3150
+ // } = props
3151
+ // let width
3152
+ // if (fullWidth && isActionColumn) {
3153
+ // width = '0.0000000001%'
3154
+ // }
3155
+ // if (fullWidth && !isActionColumn) {
3156
+ // width = '1%'
3157
+ // }
3158
+ // if (!fullWidth && isActionColumn) {
3159
+ // width = 72
3160
+ // }
3161
+ // if (!fullWidth && !isActionColumn) {
3162
+ // width = undefined
3163
+ // }
3164
+ // return width
3165
+ // }
3166
+ var useStyles = makeStyles(function (theme) { return ({
3167
+ root: {
3168
+ borderBottomStyle: 'solid',
3169
+ borderBottomWidth: 2,
3170
+ borderBottomColor: theme.palette.grey[100],
3171
+ padding: theme.spacing(2),
3172
+ textAlign: 'left',
3173
+ fontWeight: 500,
3174
+ },
3175
+ box: {
3176
+ cursor: function (_a) {
3177
+ var sortable = _a.sortable;
3178
+ return (sortable ? 'pointer' : 'default');
1046
3179
  },
1047
- tableWrap: function () { return ({
1048
- maxWidth: '100%',
1049
- overflowX: 'auto',
1050
- overflowY: 'hidden',
1051
- }); },
1052
- });
1053
- });
3180
+ },
3181
+ }); });
3182
+
3183
+ var TableHeaderCell = function (props) {
3184
+ var children = props.children, context = props.context, restProps = __rest$3(props, ["children", "context"]);
3185
+ var sortable = context.header.column.getCanSort();
3186
+ var sorted = context.header.column.getIsSorted();
3187
+ var handleSort = context.header.column.getToggleSortingHandler();
3188
+ var classes = useStyles(__assign$3(__assign$3({}, props), { sortable: sortable }));
3189
+ var _a = useTheme$1(), spacing = _a.spacing, palette = _a.palette;
3190
+ var sortIndicators = {
3191
+ asc: SvgChevronUp,
3192
+ desc: SvgChevronDown,
3193
+ };
3194
+ return (React__default.createElement("th", __assign$3({ className: classes.root }, restProps),
3195
+ React__default.createElement(Box, { className: classes.box, display: "flex", alignItems: "center", gridGap: spacing(1), onClick: handleSort },
3196
+ children,
3197
+ sortable && !sorted && React__default.createElement(Icon$1, { icon: SvgSort, color: palette.grey[500] }),
3198
+ sortable && sorted && React__default.createElement(Icon$1, { icon: sortIndicators[sorted] }))));
3199
+ };
3200
+
3201
+ var ColumnFilterChip = function (props) {
3202
+ var columnFilter = props.columnFilter, onClick = props.onClick, label = props.label;
3203
+ return (React__default.createElement(Chip, { onDelete: function () { return onClick(columnFilter); }, label: React__default.createElement(Box, { display: "flex", gridGap: 4 },
3204
+ React__default.createElement(Typography$1, null,
3205
+ label[0],
3206
+ ":"),
3207
+ React__default.createElement(Typography$1, __assign$3({ weight: "semi-bold" }, { component: 'span' }), label[1])) }));
3208
+ };
3209
+
3210
+ var ColumnFilterResetButton = function (props) {
3211
+ var _a = props.children, children = _a === void 0 ? 'Clear All' : _a, restProps = __rest$3(props, ["children"]);
3212
+ return (React__default.createElement(Button, __assign$3({ variant: "text", textTransform: "none" }, restProps), children));
3213
+ };
1054
3214
 
1055
- /* eslint-disable react/jsx-key */
3215
+ var defaultTableProps = {
3216
+ fullWidth: true,
3217
+ sortable: false,
3218
+ searchable: false,
3219
+ };
1056
3220
  var Table = function (props) {
1057
- // Setup
1058
- var actionColumnId = 'table-actions-column';
1059
- var rawColumns = props.columns, data = props.data, actions = props.actions, sortable = props.sortable, emptyMessage = props.emptyMessage, EmptyImage = props.EmptyImage, isLoading = props.loading, fullHeight = props.fullHeight, GlobalFilterProps = props.GlobalFilterProps, _a = props.paginationOptions, paginationOptions = _a === void 0 ? {} : _a, _b = props.tableOptions, tableOptions = _b === void 0 ? {} : _b, searchable = props.searchable, onPaginate = props.onPaginate;
1060
- var theme = useTheme$1();
1061
- var classes = useTableStyles(props);
1062
- var columns = useMemo(function () { return makeColumns({ columns: rawColumns, actions: actions, actionColumnId: actionColumnId }); }, [rawColumns, actions]);
1063
- var initialPaginationState = paginationOptions.initialState, restPaginationOptions = __rest$1(paginationOptions, ["initialState"]);
1064
- var initialState = __assign$1({}, initialPaginationState);
1065
- var instance = useTable(__assign$1(__assign$1({ columns: columns, data: data, disableSortBy: !sortable, initialState: initialState }, restPaginationOptions), tableOptions), useGlobalFilter, useSortBy, usePagination);
1066
- var getTableProps = instance.getTableProps, getTableBodyProps = instance.getTableBodyProps, headerGroups = instance.headerGroups, page = instance.page, prepareRow = instance.prepareRow, pageCount = instance.pageCount, gotoPage = instance.gotoPage, rows = instance.rows, state = instance.state, setGlobalFilter = instance.setGlobalFilter;
1067
- // Aliases
1068
- var isPaginated = pageCount > 1;
1069
- var isEmpty = rows.length === 0;
1070
- var lineHeightRem = parseFloat(theme.typography[tableConstants.tableTypography].lineHeight);
1071
- var documentFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);
1072
- var typographyHeight = lineHeightRem * documentFontSize;
1073
- var cellHeight = typographyHeight + theme.spacing(tableConstants.cellPaddingFactor * 2);
1074
- var headerHeight = cellHeight + tableConstants.headerBorder;
1075
- var bodyHeight = instance.state.pageSize * cellHeight;
1076
- var footerHeight = 88;
1077
- var minHeight = headerHeight + bodyHeight + footerHeight;
1078
- // Handlers
3221
+ var data = props.data, columns = props.columns, loading = props.loading, searchable = props.searchable, sortable = props.sortable, externalFilterState = props.filterState, externalGlobalFilterState = props.globalFilterState, externalPaginationState = props.paginationState, externalVisibilityState = props.visibilityState, pageCount = props.pageCount, GlobalFilterProps = props.GlobalFilterProps, Empty = props.Empty;
3222
+ var classes = useStyles$6(props);
3223
+ var rootRef = useRef(null);
3224
+ // Prepare Empty State
3225
+ var isEmpty = data.length === 0;
3226
+ var isEmptyComponentValid = Empty && isValidElement(createElement(Empty));
3227
+ // Prepare Sorting
3228
+ var _a = useState([]), sorting = _a[0], setSorting = _a[1];
3229
+ // Prepare Global Filtering
3230
+ var _b = externalGlobalFilterState || [], globalFilter = _b[0], setGlobalFilter = _b[1];
3231
+ var isControlledGlobalFilter = Boolean(externalGlobalFilterState);
3232
+ var controlledGlobalFilterOptions = { onGlobalFilterChange: setGlobalFilter, manualFiltering: true };
3233
+ // Prepare ColumnFiltering
3234
+ var _c = externalFilterState || [], columnFilters = _c[0], setColumnFilters = _c[1];
3235
+ var isControlledColumnFilters = Boolean(externalFilterState);
3236
+ var controlledColumnFiltersOptions = { onColumnFiltersChange: setColumnFilters, manualFiltering: true };
3237
+ // Prepare Pagination
3238
+ var _d = externalPaginationState || [], pagination = _d[0], setPagination = _d[1];
3239
+ var isControlledPagination = Boolean(externalPaginationState && pageCount);
3240
+ var controlledPaginationOptions = { manualPagination: true, onPaginationChange: setPagination, pageCount: pageCount };
3241
+ // Prepare Column Visibility
3242
+ var columnVisibility = (externalVisibilityState || [])[0];
3243
+ var isControlledColumnVisibility = Boolean(externalVisibilityState);
3244
+ // Init table instance
3245
+ var table = useReactTable(__assign$3(__assign$3(__assign$3({ data: data, columns: columns, state: __assign$3(__assign$3(__assign$3(__assign$3({ sorting: sorting }, (isControlledPagination && { pagination: pagination })), (isControlledGlobalFilter && { globalFilter: globalFilter })), (isControlledColumnFilters && { columnFilters: columnFilters })), (isControlledColumnVisibility && { columnVisibility: columnVisibility })), enableSorting: sortable, globalFilterFn: coercedValueIncludesString, onSortingChange: setSorting, getCoreRowModel: getCoreRowModel(), getSortedRowModel: getSortedRowModel(), getFilteredRowModel: getFilteredRowModel(), getPaginationRowModel: getPaginationRowModel() }, (isControlledPagination && controlledPaginationOptions)), (isControlledGlobalFilter && controlledGlobalFilterOptions)), (isControlledColumnFilters && controlledColumnFiltersOptions)));
3246
+ var _f = useColumnFilters(table), selectedColumnFilters = _f.selectedColumnFilters, hasColumnFilters = _f.hasColumnFilters, deselectColumnFilter = _f.deselectColumnFilter, formatSelectedFilterText = _f.formatSelectedFilterText, resetColumnFilters = _f.resetColumnFilters;
1079
3247
  var handlePagination = function (_e, pageNumber) {
1080
3248
  var pageIndex = pageNumber - 1;
1081
- if (onPaginate) {
1082
- onPaginate(pageIndex, instance);
1083
- }
1084
- else {
1085
- gotoPage(pageIndex);
1086
- }
3249
+ table.setPageIndex(pageIndex);
1087
3250
  };
1088
- return (React__default.createElement(Box, { className: classes.root, minHeight: fullHeight ? minHeight : 'unset' },
1089
- searchable && (React__default.createElement(Box, null,
1090
- React__default.createElement(GlobalFilter, __assign$1({ value: state.globalFilter, setValue: setGlobalFilter }, GlobalFilterProps)))),
1091
- React__default.createElement(Box, { className: classes.tableWrap },
1092
- React__default.createElement("table", __assign$1({ className: classes.table }, getTableProps()),
1093
- React__default.createElement(TableHeader, null, headerGroups.map(function (headerGroup) { return (React__default.createElement(TableHeaderRow, __assign$1({}, headerGroup.getHeaderGroupProps()), headerGroup.headers.map(function (column) { return (React__default.createElement(TableHeaderCell, __assign$1({}, column.getHeaderProps(column.getSortByToggleProps()), { column: __assign$1(__assign$1({}, column), { isActionColumn: column.id === actionColumnId }), tableProps: props }), column.render('Header'))); }))); })),
1094
- !isEmpty && !isLoading && (React__default.createElement(TableBody, __assign$1({}, getTableBodyProps()), page.map(function (row) {
1095
- prepareRow(row);
1096
- return (React__default.createElement(TableRow, __assign$1({}, row.getRowProps()), row.cells.map(function (cell) { return (React__default.createElement(TableCell, __assign$1({}, cell.getCellProps()), cell.render('Cell'))); })));
1097
- }))))),
1098
- isEmpty && !isLoading && (React__default.createElement(Box, { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", p: 2, flexGrow: 1 },
1099
- EmptyImage && EmptyImage(),
1100
- React__default.createElement(Typography, null, emptyMessage))),
1101
- isLoading && (React__default.createElement(Box, { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", p: 2, flexGrow: 1 },
1102
- React__default.createElement(CircularProgress, { size: 80, color: "inherit" }))),
1103
- isPaginated && (React__default.createElement(TableFooter, null,
1104
- React__default.createElement(Pagination, { count: pageCount, page: instance.state.pageIndex + 1, onChange: handlePagination })))));
3251
+ return (React__default.createElement(TableContext.Provider, { value: table },
3252
+ React__default.createElement(Box, __assign$3({ className: classes.root }, { ref: rootRef }, { "data-table-element": "root", minHeight: getTableMinHeight(rootRef, table.getState().pagination.pageSize) }),
3253
+ React__default.createElement(Box, null,
3254
+ React__default.createElement(Box, { display: "grid", gridAutoFlow: "column", marginBottom: 3 },
3255
+ (searchable || isControlledGlobalFilter) && (React__default.createElement(GlobalFilter, __assign$3({}, GlobalFilterProps, { value: table.getState().globalFilter, setValue: table.setGlobalFilter }))),
3256
+ hasColumnFilters && React__default.createElement(FilterPanel, null)),
3257
+ React__default.createElement(Box, { display: "flex", flexWrap: "wrap", gridGap: 8 },
3258
+ selectedColumnFilters.map(function (selectedColumnFilter, i) { return (React__default.createElement(ColumnFilterChip, { key: "selected-column-filter-chip-" + i, columnFilter: selectedColumnFilter, label: formatSelectedFilterText(selectedColumnFilter), onClick: deselectColumnFilter })); }),
3259
+ selectedColumnFilters.length >= 1 && React__default.createElement(ColumnFilterResetButton, { onClick: function () { return resetColumnFilters(); } }))),
3260
+ React__default.createElement(Box, { className: classes.tableContainer, flexGrow: loading || isEmpty ? 0 : 1 },
3261
+ React__default.createElement("table", { className: classes.table },
3262
+ React__default.createElement(TableHeader, null, table.getHeaderGroups().map(function (headerGroup) { return (React__default.createElement(TableHeaderRow, { key: headerGroup.id }, headerGroup.headers.map(function (header) { return (React__default.createElement(TableHeaderCell, { key: header.id, context: header.getContext() }, flexRender(header.column.columnDef.header, header.getContext()))); }))); })),
3263
+ !loading && (React__default.createElement(TableBody, null, table.getRowModel().rows.map(function (row) { return (React__default.createElement(TableRow, { key: row.id }, row.getVisibleCells().map(function (cell) { return (React__default.createElement(TableCell, { key: cell.id }, flexRender(cell.column.columnDef.cell, cell.getContext()))); }))); }))))),
3264
+ isEmpty && isEmptyComponentValid && Empty && !loading && (React__default.createElement(Box, { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", p: 2, flexGrow: 1 }, createElement(Empty))),
3265
+ loading && (React__default.createElement(Box, { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", p: 2, flexGrow: 1 },
3266
+ React__default.createElement(CircularProgress, { size: 80, color: "inherit" }))),
3267
+ table.getPageCount() > 1 && (React__default.createElement(TableFooter, null,
3268
+ React__default.createElement(Pagination, { page: table.getState().pagination.pageIndex + 1, count: table.getPageCount(), onChange: handlePagination, disabled: loading }))))));
1105
3269
  };
1106
- Table.defaultProps = {
1107
- emptyMessage: 'No results.',
3270
+ Table.defaultProps = defaultTableProps;
3271
+
3272
+ var validateAction = function (action) {
3273
+ var icon = action.icon, label = action.label, onClick = action.onClick;
3274
+ var onClickIsValid = typeof onClick === 'function';
3275
+ var labelIsValid = typeof label === 'string';
3276
+ var iconIsValid = icon && isValidElement(createElement(icon));
3277
+ return onClickIsValid && labelIsValid && iconIsValid;
1108
3278
  };
1109
3279
 
1110
- /**
1111
- * Makes props for the Table component that will enable manual pagination and also provides page state.
1112
- */
1113
- var useManualPagination = function (config) {
1114
- var _a = config.initialPageIndex, initialPageIndex = _a === void 0 ? 0 : _a, _b = config.initialPageSize, initialPageSize = _b === void 0 ? 10 : _b, total = config.total, onPaginate = config.onPaginate;
1115
- var _c = useState(0), pageIndex = _c[0], setPageIndex = _c[1];
1116
- var _d = useState(initialPageSize), pageSize = _d[0], setPageSize = _d[1];
1117
- var handlePagination = function (index, instance) {
1118
- if (onPaginate) {
1119
- onPaginate({ index: index, instance: instance }, setPageIndex);
1120
- }
1121
- else {
1122
- setPageIndex(index);
1123
- }
1124
- };
1125
- var manualPaginationProps = {
1126
- onPaginate: handlePagination,
1127
- tableOptions: {
1128
- useControlledState: function (state) {
1129
- return useMemo(function () { return (__assign$1(__assign$1({}, state), { pageIndex: pageIndex, pageSize: pageSize })); }, [pageIndex, pageSize]);
1130
- },
1131
- },
1132
- paginationOptions: {
1133
- initialState: { pageIndex: initialPageIndex, pageSize: pageSize },
1134
- manualPagination: true,
1135
- pageCount: Math.ceil(total / pageSize),
1136
- },
1137
- };
1138
- var pageState = {
1139
- pageIndex: pageIndex,
1140
- pageSize: pageSize,
1141
- setPageIndex: setPageIndex,
1142
- setPageSize: setPageSize,
3280
+ var RowActions = function (props) {
3281
+ var context = props.context, actions = props.actions;
3282
+ var validActions = actions.filter(validateAction);
3283
+ var _a = React__default.useState(null), anchorEl = _a[0], setAnchorEl = _a[1];
3284
+ var openMenu = function (event) {
3285
+ setAnchorEl(event.currentTarget);
1143
3286
  };
1144
- return {
1145
- manualPaginationProps: manualPaginationProps,
1146
- pageState: pageState,
3287
+ var closeMenu = function () {
3288
+ setAnchorEl(null);
1147
3289
  };
3290
+ var actionsCount = validActions.length;
3291
+ var mainActions;
3292
+ var overflowActions;
3293
+ if (actionsCount <= 3) {
3294
+ mainActions = validActions;
3295
+ }
3296
+ else {
3297
+ var firstAction = validActions[0], secondAction = validActions[1], restActions = validActions.slice(2);
3298
+ mainActions = [firstAction, secondAction];
3299
+ overflowActions = restActions;
3300
+ }
3301
+ return (React__default.createElement(Box, { display: "flex" },
3302
+ mainActions.map(function (action) { return (React__default.createElement(Tooltip$1, { title: action.label, key: action.label },
3303
+ React__default.createElement(IconButton$1, { size: "small", onClick: function () { return action.onClick(context); } },
3304
+ React__default.createElement(Icon$1, { icon: action.icon })))); }),
3305
+ overflowActions && (React__default.createElement(React__default.Fragment, null,
3306
+ React__default.createElement(IconButton$1, { size: "small", onClick: openMenu },
3307
+ React__default.createElement(Icon$1, { icon: SvgMore })),
3308
+ React__default.createElement(Menu, { anchorEl: anchorEl, open: Boolean(anchorEl), onClose: closeMenu }, overflowActions.map(function (action) { return (React__default.createElement(MenuItem, { key: action.label, onClick: function () { return action.onClick(context); } }, action.label)); }))))));
1148
3309
  };
1149
3310
 
1150
- export { Table, useManualPagination };
3311
+ export { GlobalFilter, RowActions, Table, TableBody, TableCell, TableFooter, TableHeader, TableHeaderCell, TableHeaderRow, TableRow };
1151
3312
  //# sourceMappingURL=index.es.js.map