@popmenu/table 0.46.0 → 0.47.0

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