@popmenu/table 0.19.0-alpha.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 (34) hide show
  1. package/README.md +9 -0
  2. package/build/components/Table/Table.d.ts +3 -0
  3. package/build/components/Table/TableProps.d.ts +28 -0
  4. package/build/components/Table/TableStyles.d.ts +2 -0
  5. package/build/components/Table/index.d.ts +2 -0
  6. package/build/components/Table/util/makeColumns.d.ts +7 -0
  7. package/build/components/TableActionsCell/TableActionsCell.d.ts +3 -0
  8. package/build/components/TableActionsCell/TableActionsCellProps.d.ts +10 -0
  9. package/build/components/TableActionsCell/index.d.ts +2 -0
  10. package/build/components/TableBody/TableBody.d.ts +2 -0
  11. package/build/components/TableBody/index.d.ts +1 -0
  12. package/build/components/TableCell/TableCell.d.ts +2 -0
  13. package/build/components/TableCell/TableCellStyles.d.ts +1 -0
  14. package/build/components/TableCell/index.d.ts +1 -0
  15. package/build/components/TableFooter/TableFooter.d.ts +2 -0
  16. package/build/components/TableFooter/index.d.ts +1 -0
  17. package/build/components/TableHeader/TableHeader.d.ts +2 -0
  18. package/build/components/TableHeader/index.d.ts +1 -0
  19. package/build/components/TableHeaderCell/TableHeaderCell.d.ts +3 -0
  20. package/build/components/TableHeaderCell/TableHeaderCellProps.d.ts +8 -0
  21. package/build/components/TableHeaderCell/TableHeaderCellStyles.d.ts +2 -0
  22. package/build/components/TableHeaderCell/index.d.ts +1 -0
  23. package/build/components/TableHeaderRow/TableHeaderRow.d.ts +2 -0
  24. package/build/components/TableHeaderRow/index.d.ts +1 -0
  25. package/build/components/TableRow/TableRow.d.ts +2 -0
  26. package/build/components/TableRow/TableRowStyles.d.ts +1 -0
  27. package/build/components/TableRow/index.d.ts +1 -0
  28. package/build/components/index.d.ts +1 -0
  29. package/build/index.d.ts +1 -0
  30. package/build/index.es.js +992 -0
  31. package/build/index.es.js.map +1 -0
  32. package/build/index.js +1035 -0
  33. package/build/index.js.map +1 -0
  34. package/package.json +32 -0
package/build/index.js ADDED
@@ -0,0 +1,1035 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
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 lab = require('@material-ui/lab');
10
+ require('@material-ui/lab/Alert');
11
+ var core = require('@material-ui/core');
12
+ require('@material-ui/core/AppBar');
13
+ var MuiIconButton = require('@material-ui/core/IconButton');
14
+ var MuiTypography = require('@material-ui/core/Typography');
15
+ var styles = require('@material-ui/core/styles');
16
+ var MuiAvatar = require('@material-ui/core/Avatar');
17
+ require('@material-ui/core/Badge');
18
+ var MuiButton = require('@material-ui/core/Button');
19
+ var CircularProgress = require('@material-ui/core/CircularProgress');
20
+ require('@material-ui/core/ButtonGroup');
21
+ require('@material-ui/core/Card');
22
+ require('@material-ui/core/CardActionArea');
23
+ require('@material-ui/core/CardActions');
24
+ require('@material-ui/core/CardContent');
25
+ require('@material-ui/core/CardHeader');
26
+ require('@material-ui/core/CardMedia');
27
+ var MuiCheckbox = require('@material-ui/core/Checkbox');
28
+ var FormControlLabel = require('@material-ui/core/FormControlLabel');
29
+ require('@material-ui/core/Chip');
30
+ require('@material-ui/core/Collapse');
31
+ require('@material-ui/core/Dialog');
32
+ require('@material-ui/core/DialogActions');
33
+ require('@material-ui/core/DialogContent');
34
+ require('@material-ui/core/DialogTitle');
35
+ require('@material-ui/core/Drawer');
36
+ require('@material-ui/core/FormControl');
37
+ require('@material-ui/core/Grid');
38
+ require('@material-ui/core/InputAdornment');
39
+ require('@material-ui/core/LinearProgress');
40
+ var MuiLink = require('@material-ui/core/Link');
41
+ require('@material-ui/core/List');
42
+ require('@material-ui/core/ListItem');
43
+ require('@material-ui/core/ListItemIcon');
44
+ require('@material-ui/core/ListItemSecondaryAction');
45
+ require('@material-ui/core/ListItemText');
46
+ var Menu = require('@material-ui/core/Menu');
47
+ var MenuItem = require('@material-ui/core/MenuItem');
48
+ require('@material-ui/core/MenuList');
49
+ var MuiRadio = require('@material-ui/core/Radio');
50
+ require('@material-ui/core/TextField');
51
+ var MuiSwitch = require('@material-ui/core/Switch');
52
+ require('@material-ui/core/Tab');
53
+ require('@material-ui/core/Tabs');
54
+ var MuiToggleButton = require('@material-ui/lab/ToggleButton');
55
+ var MuiToggleButtonGroup = require('@material-ui/lab/ToggleButtonGroup');
56
+ var MuiTooltip = require('@material-ui/core/Tooltip');
57
+
58
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
59
+
60
+ function _interopNamespace(e) {
61
+ if (e && e.__esModule) return e;
62
+ var n = Object.create(null);
63
+ if (e) {
64
+ Object.keys(e).forEach(function (k) {
65
+ if (k !== 'default') {
66
+ var d = Object.getOwnPropertyDescriptor(e, k);
67
+ Object.defineProperty(n, k, d.get ? d : {
68
+ enumerable: true,
69
+ get: function () {
70
+ return e[k];
71
+ }
72
+ });
73
+ }
74
+ });
75
+ }
76
+ n['default'] = e;
77
+ return Object.freeze(n);
78
+ }
79
+
80
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
81
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
82
+ var MuiIconButton__default = /*#__PURE__*/_interopDefaultLegacy(MuiIconButton);
83
+ var MuiTypography__default = /*#__PURE__*/_interopDefaultLegacy(MuiTypography);
84
+ var MuiAvatar__default = /*#__PURE__*/_interopDefaultLegacy(MuiAvatar);
85
+ var MuiButton__default = /*#__PURE__*/_interopDefaultLegacy(MuiButton);
86
+ var CircularProgress__default = /*#__PURE__*/_interopDefaultLegacy(CircularProgress);
87
+ var MuiCheckbox__default = /*#__PURE__*/_interopDefaultLegacy(MuiCheckbox);
88
+ var FormControlLabel__default = /*#__PURE__*/_interopDefaultLegacy(FormControlLabel);
89
+ var MuiLink__default = /*#__PURE__*/_interopDefaultLegacy(MuiLink);
90
+ var Menu__default = /*#__PURE__*/_interopDefaultLegacy(Menu);
91
+ var MenuItem__default = /*#__PURE__*/_interopDefaultLegacy(MenuItem);
92
+ var MuiRadio__default = /*#__PURE__*/_interopDefaultLegacy(MuiRadio);
93
+ var MuiSwitch__default = /*#__PURE__*/_interopDefaultLegacy(MuiSwitch);
94
+ var MuiToggleButton__default = /*#__PURE__*/_interopDefaultLegacy(MuiToggleButton);
95
+ var MuiToggleButtonGroup__default = /*#__PURE__*/_interopDefaultLegacy(MuiToggleButtonGroup);
96
+ var MuiTooltip__default = /*#__PURE__*/_interopDefaultLegacy(MuiTooltip);
97
+
98
+ /*! *****************************************************************************
99
+ Copyright (c) Microsoft Corporation.
100
+
101
+ Permission to use, copy, modify, and/or distribute this software for any
102
+ purpose with or without fee is hereby granted.
103
+
104
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
105
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
106
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
107
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
108
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
109
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
110
+ PERFORMANCE OF THIS SOFTWARE.
111
+ ***************************************************************************** */
112
+
113
+ var __assign$1 = function() {
114
+ __assign$1 = Object.assign || function __assign(t) {
115
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
116
+ s = arguments[i];
117
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
118
+ }
119
+ return t;
120
+ };
121
+ return __assign$1.apply(this, arguments);
122
+ };
123
+
124
+ function __rest$1(s, e) {
125
+ var t = {};
126
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
127
+ t[p] = s[p];
128
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
129
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
130
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
131
+ t[p[i]] = s[p[i]];
132
+ }
133
+ return t;
134
+ }
135
+
136
+ function __spreadArray(to, from, pack) {
137
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
138
+ if (ar || !(i in from)) {
139
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
140
+ ar[i] = from[i];
141
+ }
142
+ }
143
+ return to.concat(ar || from);
144
+ }
145
+
146
+ /*! *****************************************************************************
147
+ Copyright (c) Microsoft Corporation.
148
+
149
+ Permission to use, copy, modify, and/or distribute this software for any
150
+ purpose with or without fee is hereby granted.
151
+
152
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
153
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
154
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
155
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
156
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
157
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
158
+ PERFORMANCE OF THIS SOFTWARE.
159
+ ***************************************************************************** */
160
+
161
+ var __assign = function() {
162
+ __assign = Object.assign || function __assign(t) {
163
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
164
+ s = arguments[i];
165
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
166
+ }
167
+ return t;
168
+ };
169
+ return __assign.apply(this, arguments);
170
+ };
171
+
172
+ function __rest(s, e) {
173
+ var t = {};
174
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
175
+ t[p] = s[p];
176
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
177
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
178
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
179
+ t[p[i]] = s[p[i]];
180
+ }
181
+ return t;
182
+ }
183
+
184
+ var useIconStyles = core.makeStyles(function (_a) {
185
+ var spacing = _a.spacing, palette = _a.palette;
186
+ var getFontSize = function (_a) {
187
+ var size = _a.size;
188
+ var sizes = {
189
+ inherit: 'inherit',
190
+ small: spacing(1.5),
191
+ medium: spacing(2),
192
+ large: spacing(2.5),
193
+ 'extra-large': spacing(3),
194
+ };
195
+ return size ? sizes[size] : 'inherit';
196
+ };
197
+ var getColor = function (props) {
198
+ var semanticColors = ['primary', 'secondary', 'info', 'success', 'warning', 'error'];
199
+ var value = 'inherit';
200
+ if (props.color) {
201
+ if (semanticColors.includes(props.color.split('.')[0])) {
202
+ var _a = props.color.split('.'), color = _a[0], _b = _a[1], variant = _b === void 0 ? 'main' : _b;
203
+ value = palette[color][variant];
204
+ }
205
+ else if (props.color.search(/^(rgb|hsla|#)/) !== -1) {
206
+ value = props.color;
207
+ }
208
+ }
209
+ return value;
210
+ };
211
+ return {
212
+ root: {
213
+ color: getColor,
214
+ fontSize: getFontSize,
215
+ strokeWidth: '1.3px',
216
+ },
217
+ };
218
+ });
219
+
220
+ var classnames = {exports: {}};
221
+
222
+ /*!
223
+ Copyright (c) 2018 Jed Watson.
224
+ Licensed under the MIT License (MIT), see
225
+ http://jedwatson.github.io/classnames
226
+ */
227
+
228
+ (function (module) {
229
+ /* global define */
230
+
231
+ (function () {
232
+
233
+ var hasOwn = {}.hasOwnProperty;
234
+
235
+ function classNames() {
236
+ var classes = [];
237
+
238
+ for (var i = 0; i < arguments.length; i++) {
239
+ var arg = arguments[i];
240
+ if (!arg) continue;
241
+
242
+ var argType = typeof arg;
243
+
244
+ if (argType === 'string' || argType === 'number') {
245
+ classes.push(arg);
246
+ } else if (Array.isArray(arg)) {
247
+ if (arg.length) {
248
+ var inner = classNames.apply(null, arg);
249
+ if (inner) {
250
+ classes.push(inner);
251
+ }
252
+ }
253
+ } else if (argType === 'object') {
254
+ if (arg.toString === Object.prototype.toString) {
255
+ for (var key in arg) {
256
+ if (hasOwn.call(arg, key) && arg[key]) {
257
+ classes.push(key);
258
+ }
259
+ }
260
+ } else {
261
+ classes.push(arg.toString());
262
+ }
263
+ }
264
+ }
265
+
266
+ return classes.join(' ');
267
+ }
268
+
269
+ if (module.exports) {
270
+ classNames.default = classNames;
271
+ module.exports = classNames;
272
+ } else {
273
+ window.classNames = classNames;
274
+ }
275
+ }());
276
+ }(classnames));
277
+
278
+ var classNames = classnames.exports;
279
+
280
+ var iconStaticClassName = 'pop-icon';
281
+ var Icon = function (props) {
282
+ var icon = props.icon, className = props.className, restProps = __rest(props, ["icon", "className"]);
283
+ var classes = useIconStyles(props);
284
+ var isValid = true;
285
+ if (!icon || (typeof icon === 'function' && icon({}) === undefined)) {
286
+ isValid = false;
287
+ }
288
+ return isValid
289
+ ? React.createElement(icon, __assign({ className: classNames([classes.root, iconStaticClassName, className]) }, restProps))
290
+ : null;
291
+ };
292
+ Icon.defaultProps = {
293
+ size: 'inherit',
294
+ color: 'inherit',
295
+ };
296
+ Icon.displayName = 'Icon';
297
+
298
+ var IconButton = React.forwardRef(function (props, ref) {
299
+ return React__default['default'].createElement(MuiIconButton__default['default'], __assign({ ref: ref }, props));
300
+ });
301
+ IconButton.displayName = 'IconButton';
302
+ IconButton.defaultProps = {
303
+ color: 'secondary',
304
+ };
305
+
306
+ var useTypographyStyles = styles.makeStyles(function () {
307
+ var _a;
308
+ return ({
309
+ root: (_a = {},
310
+ _a["& ." + iconStaticClassName] = {
311
+ position: 'relative',
312
+ top: '0.125em',
313
+ padding: '0 0.125em',
314
+ boxSizing: 'content-box',
315
+ },
316
+ _a),
317
+ caption: {
318
+ display: 'inline',
319
+ },
320
+ overline: {
321
+ display: 'inline',
322
+ },
323
+ });
324
+ });
325
+
326
+ var Typography = React.forwardRef(function (props, ref) {
327
+ var classes = useTypographyStyles(props);
328
+ return React__default['default'].createElement(MuiTypography__default['default'], __assign({ ref: ref, classes: classes }, props));
329
+ });
330
+ Typography.displayName = 'Typography';
331
+
332
+ var useStyles$1 = core.makeStyles(function (_a) {
333
+ var spacing = _a.spacing;
334
+ return ({
335
+ root: {
336
+ '&:last-child': {
337
+ marginBottom: 0,
338
+ },
339
+ marginBottom: spacing(4),
340
+ padding: spacing(4),
341
+ },
342
+ });
343
+ });
344
+ var Paper = React.forwardRef(function (props, ref) {
345
+ var legacyStyles = props.legacyStyles, restProps = __rest(props, ["legacyStyles"]);
346
+ var classes = useStyles$1(props);
347
+ return React__default['default'].createElement(core.Paper, __assign({}, ref, { classes: __assign({}, (legacyStyles && classes)) }, restProps));
348
+ });
349
+ Paper.displayName = 'Paper';
350
+ Paper.defaultProps = {
351
+ legacyStyles: false,
352
+ };
353
+
354
+ var AUDIO_PLAYER_EVENT_TYPES;
355
+ (function (AUDIO_PLAYER_EVENT_TYPES) {
356
+ AUDIO_PLAYER_EVENT_TYPES["TOGGLE_PLAYBACK"] = "TOGGLE_PLAYBACK";
357
+ AUDIO_PLAYER_EVENT_TYPES["TOGGLE_VOLUME_CONTROL"] = "TOGGLE_VOLUME_CONTROL";
358
+ AUDIO_PLAYER_EVENT_TYPES["TOGGLE_MUTE"] = "TOGGLE_MUTE";
359
+ AUDIO_PLAYER_EVENT_TYPES["VOLUME_CHANGE"] = "VOLUME_CHANGE";
360
+ AUDIO_PLAYER_EVENT_TYPES["TIME_CHANGE"] = "TIME_CHANGE";
361
+ AUDIO_PLAYER_EVENT_TYPES["DURATION_CHANGE"] = "DURATION_CHANGE";
362
+ AUDIO_PLAYER_EVENT_TYPES["SET_TIME"] = "SET_TIME";
363
+ AUDIO_PLAYER_EVENT_TYPES["CAN_PLAY"] = "CAN_PLAY";
364
+ AUDIO_PLAYER_EVENT_TYPES["RESET"] = "RESET";
365
+ })(AUDIO_PLAYER_EVENT_TYPES || (AUDIO_PLAYER_EVENT_TYPES = {}));
366
+ var PLAYBACK_STATES;
367
+ (function (PLAYBACK_STATES) {
368
+ PLAYBACK_STATES["NONE"] = "NONE";
369
+ PLAYBACK_STATES["PAUSED"] = "PAUSED";
370
+ PLAYBACK_STATES["PLAYING"] = "PLAYING";
371
+ })(PLAYBACK_STATES || (PLAYBACK_STATES = {}));
372
+ var CONTROL_LABELS;
373
+ (function (CONTROL_LABELS) {
374
+ CONTROL_LABELS["PAUSE"] = "PAUSE";
375
+ CONTROL_LABELS["PLAY"] = "PLAY";
376
+ CONTROL_LABELS["MUTE"] = "MUTE";
377
+ CONTROL_LABELS["UNMUTE"] = "UNMUTE";
378
+ })(CONTROL_LABELS || (CONTROL_LABELS = {}));
379
+ var VOLUME_CONTROL_STATES;
380
+ (function (VOLUME_CONTROL_STATES) {
381
+ VOLUME_CONTROL_STATES["SHOW"] = "SHOW";
382
+ VOLUME_CONTROL_STATES["HIDE"] = "HIDE";
383
+ })(VOLUME_CONTROL_STATES || (VOLUME_CONTROL_STATES = {}));
384
+
385
+ ({
386
+ playback: PLAYBACK_STATES.NONE,
387
+ volumeControls: VOLUME_CONTROL_STATES.HIDE,
388
+ context: {
389
+ volume: 100,
390
+ playbackButtonLabel: CONTROL_LABELS.PLAY,
391
+ volumeButtonLabel: CONTROL_LABELS.MUTE,
392
+ },
393
+ });
394
+
395
+ var LoadingStatus;
396
+ (function (LoadingStatus) {
397
+ LoadingStatus["ERROR"] = "ERROR";
398
+ LoadingStatus["LOADED"] = "LOADED";
399
+ LoadingStatus["PENDING"] = "PENDING";
400
+ })(LoadingStatus || (LoadingStatus = {}));
401
+ /**
402
+ * Hook returns [imgProps, loaded]
403
+ * ref: Merged default and provided imgProp object. Includes load and error events for img tag. To be passed to MuiAvatar.
404
+ * loaded: Indicates whether the src supplied to an img within Avatar results in loaded or error
405
+ */
406
+ var useImgProps = function (avatarProps) {
407
+ var _a = React__default['default'].useState(LoadingStatus.PENDING), loaded = _a[0], setLoaded = _a[1];
408
+ var imgProps = __assign(__assign({}, avatarProps.imgProps), { onError: function (event) {
409
+ var _a, _b;
410
+ setLoaded(LoadingStatus.ERROR);
411
+ (_b = (_a = avatarProps.imgProps) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, event);
412
+ }, onLoad: function (event) {
413
+ var _a, _b;
414
+ setLoaded(LoadingStatus.LOADED);
415
+ (_b = (_a = avatarProps.imgProps) === null || _a === void 0 ? void 0 : _a.onLoad) === null || _b === void 0 ? void 0 : _b.call(_a, event);
416
+ } });
417
+ return { imgProps: imgProps, loaded: loaded };
418
+ };
419
+
420
+ var getAvatarDimensions = function (theme, props) {
421
+ var factors = {
422
+ 'extra-small': 3,
423
+ small: 4,
424
+ medium: 5,
425
+ large: 6,
426
+ 'extra-large': 12.5,
427
+ };
428
+ var sizeFactor = factors[props.size || 'medium'];
429
+ return theme.spacing(sizeFactor);
430
+ };
431
+ var getAvatarFontSize = function (props) {
432
+ var fontSizes = {
433
+ 'extra-small': '0.75rem',
434
+ small: '1rem',
435
+ medium: '1rem',
436
+ large: '1.25rem',
437
+ 'extra-large': '3.5rem',
438
+ };
439
+ return fontSizes[props.size || 'medium'];
440
+ };
441
+ var getAvatarBackground = function (props) {
442
+ var src = props.src, loaded = props.loaded;
443
+ var background = props.background;
444
+ if (src && loaded === LoadingStatus.LOADED) {
445
+ background = 'transparent';
446
+ }
447
+ return background;
448
+ };
449
+ var useAvatarStyles = styles.makeStyles(function (theme) { return ({
450
+ root: {
451
+ width: function (props) { return getAvatarDimensions(theme, props); },
452
+ height: function (props) { return getAvatarDimensions(theme, props); },
453
+ fontSize: function (props) { return getAvatarFontSize(props); },
454
+ backgroundColor: function (props) { return getAvatarBackground(props); },
455
+ color: function (props) { return theme.palette.getContrastText(props.background || '#E0E0E0'); },
456
+ objectFit: function (props) { return props.fit; },
457
+ },
458
+ silhouette: {
459
+ '& path': {
460
+ fill: function (props) { return theme.palette.getContrastText(props.background || '#E0E0E0'); },
461
+ },
462
+ },
463
+ }); });
464
+
465
+ var _path$2;
466
+
467
+ function _extends$2() { _extends$2 = 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$2.apply(this, arguments); }
468
+
469
+ function SvgSilhouetteFemale(props) {
470
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
471
+ viewBox: "0 0 300 300",
472
+ fill: "none",
473
+ xmlns: "http://www.w3.org/2000/svg"
474
+ }, props), _path$2 || (_path$2 = /*#__PURE__*/React__namespace.createElement("path", {
475
+ d: "M179.417 182.917a3.362 3.362 0 00-2.951 1.076 3.461 3.461 0 00-.875 3.021c1.916 10.069 8.368 23.889 28.173 32.493 2.347 1.014 5.972 1.805 10.57 2.799 17.208 3.722 45.986 9.958 53.055 36.333a3.488 3.488 0 001.622 2.11 3.491 3.491 0 002.639.345 3.488 3.488 0 002.109-1.622 3.473 3.473 0 00.345-2.639c-8.173-30.465-40.777-37.527-58.298-41.319-4.056-.882-7.563-1.639-9.278-2.389-11.903-5.167-19.59-12.833-22.924-22.819 33.07 2.458 48.042-10.716 48.702-11.313a3.469 3.469 0 001.121-2.951 3.478 3.478 0 00-1.732-2.639c-19.084-10.903-19.084-48.577-19.084-62.764 0-39.674-26.722-71.125-60.979-71.618-.326-.011-.652-.018-.979-.021h-.007c-34.757.194-63.035 31.68-63.035 70.194 0 14.188 0 51.868-19.083 62.764a3.5 3.5 0 00-1.73 2.769 3.494 3.494 0 001.313 2.988c.959.743 22.14 16.952 48.202 12.028-3.486 9.569-11.07 16.931-22.625 21.951-1.674.73-5.007 1.528-8.868 2.445-17.64 4.194-50.48 12.007-58.702 42.687a3.481 3.481 0 00.348 2.638 3.475 3.475 0 006.368-.839c7.145-26.694 36.229-33.604 53.597-37.743 4.354-1.035 7.791-1.854 10.028-2.82 19.805-8.604 26.25-22.423 28.173-32.493a3.45 3.45 0 00-1.104-3.243 3.457 3.457 0 00-3.347-.722c-18.799 5.917-36.167-2.222-43.757-6.736 18.132-15.181 18.132-50.118 18.132-65.674 0-34.7 25.18-63.076 56.389-63.263l.736.041c30.778.438 53.986 28.236 53.986 64.667 0 15.562 0 50.576 18.208 65.757-6.271 3.583-20.569 9.382-44.458 6.521z",
476
+ fill: "#2E3042"
477
+ })));
478
+ }
479
+
480
+ var _path$1;
481
+
482
+ 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); }
483
+
484
+ function SvgSilhouetteMale(props) {
485
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$1({
486
+ viewBox: "0 0 300 300",
487
+ fill: "none",
488
+ xmlns: "http://www.w3.org/2000/svg"
489
+ }, props), _path$1 || (_path$1 = /*#__PURE__*/React__namespace.createElement("path", {
490
+ d: "M27.594 261.886a3.513 3.513 0 004.281-2.478c7.204-26.904 36.484-33.877 53.984-38.05 4.386-1.043 7.848-1.869 10.1-2.842 19.935-8.66 26.433-22.592 28.377-32.757a3.493 3.493 0 00-.133-1.81 3.492 3.492 0 00-1.021-1.501c-10.38-8.968-19.137-22.431-24.663-37.917a3.447 3.447 0 00-.72-1.197c-7.31-7.953-11.506-16.361-11.506-23.06 0-3.914 1.475-6.539 4.798-8.52a3.5 3.5 0 001.7-2.857c1.545-35.662 26.922-63.735 58.047-63.917l.749.049c31.279.434 56.495 29.11 57.397 65.275a3.487 3.487 0 001.245 2.584c2.189 1.855 3.211 4.207 3.211 7.4 0 5.607-2.987 12.503-8.401 19.406a3.633 3.633 0 00-.587 1.106c-5.596 17.754-15.64 33.429-27.545 43.02a3.517 3.517 0 00-1.245 3.381c1.945 10.159 8.442 24.083 28.377 32.757 2.357 1.022 6.015 1.821 10.653 2.822 17.325 3.752 46.318 10.046 53.431 36.628a3.503 3.503 0 002.926 2.562 3.494 3.494 0 003.922-3.019 3.52 3.52 0 00-.091-1.363c-8.219-30.713-41.065-37.833-58.705-41.655-4.092-.889-7.625-1.652-9.345-2.408-13.01-5.657-21.026-14.275-23.859-25.658 12.08-10.383 22.187-26.401 27.965-44.365 6.134-7.981 9.505-16.2 9.505-23.221 0-4.684-1.511-8.59-4.504-11.643-1.665-39.232-29.636-70.127-64.35-70.624L150.545 38c-34.085.182-62.175 30.264-64.63 68.818-4.379 3.22-6.603 7.736-6.603 13.47 0 8.282 4.68 18.188 12.87 27.275 5.659 15.563 14.43 29.235 24.873 38.805-2.819 11.426-10.842 20.072-23.88 25.735-1.685.735-5.043 1.541-8.932 2.465-17.773 4.228-50.843 12.104-59.125 43.034a3.501 3.501 0 002.476 4.284z",
491
+ fill: "#2E3042"
492
+ })));
493
+ }
494
+
495
+ var _path;
496
+
497
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
498
+
499
+ function SvgSilhouetteNeutral(props) {
500
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
501
+ viewBox: "0 0 300 300",
502
+ fill: "none",
503
+ xmlns: "http://www.w3.org/2000/svg"
504
+ }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
505
+ fillRule: "evenodd",
506
+ clipRule: "evenodd",
507
+ d: "M209 121c0 32.585-26.415 59-59 59s-59-26.415-59-59 26.415-59 59-59 59 26.415 59 59zm8 0c0 37.003-29.997 67-67 67s-67-29.997-67-67 29.997-67 67-67 67 29.997 67 67zm35 137.333V284h8v-25.667c0-13.614-5.821-26.671-16.182-36.298C233.456 212.408 219.403 207 204.75 207H94.25c-14.653 0-28.706 5.408-39.068 15.035C44.821 231.662 39 244.719 39 258.333V284h8v-25.667c0-11.295 4.824-22.257 13.628-30.437C69.45 219.698 81.537 215 94.25 215h110.5c12.714 0 24.799 4.698 33.622 12.896 8.804 8.18 13.628 19.142 13.628 30.437z",
508
+ fill: "#2E3042"
509
+ })));
510
+ }
511
+
512
+ var silhouettes = {
513
+ female: SvgSilhouetteFemale,
514
+ male: SvgSilhouetteMale,
515
+ neutral: SvgSilhouetteNeutral,
516
+ };
517
+ var Avatar = React.forwardRef(function (props, ref) {
518
+ var children = props.children, _a = props.silhouette, silhouette = _a === void 0 ? 'neutral' : _a, muiProps = __rest(props, ["children", "silhouette"]);
519
+ var _b = useImgProps(props), imgProps = _b.imgProps, loaded = _b.loaded;
520
+ var classes = useAvatarStyles(__assign(__assign({}, props), { loaded: loaded }));
521
+ var Silhouette = silhouettes[silhouette];
522
+ var fallback = muiProps.src || silhouette === 'none' ? '' : React__default['default'].createElement(Silhouette, { className: classes.silhouette });
523
+ return (React__default['default'].createElement(MuiAvatar__default['default'], __assign({ ref: ref, classes: { root: classes.root } }, muiProps, imgProps), children || fallback));
524
+ });
525
+ Avatar.defaultProps = {
526
+ size: 'medium',
527
+ fit: 'cover',
528
+ background: '#E0E0E0',
529
+ silhouette: 'neutral',
530
+ };
531
+ Avatar.displayName = 'Avatar';
532
+
533
+ var useButtonStyles = styles.makeStyles(function () { return ({
534
+ root: {
535
+ minWidth: 'unset',
536
+ },
537
+ label: {
538
+ textTransform: function (_a) {
539
+ var textTransform = _a.textTransform;
540
+ return textTransform;
541
+ },
542
+ },
543
+ }); });
544
+
545
+ var Button = React.forwardRef(function (props, ref) {
546
+ props.textTransform; var loading = props.loading, classesOverride = props.classes, className = props.className, muiProps = __rest(props, ["textTransform", "loading", "classes", "className"]);
547
+ props.classes; var styleProps = __rest(props, ["classes"]);
548
+ var classes = useButtonStyles(styleProps);
549
+ var typography = styles.useTheme().typography;
550
+ var loadingIndicator = {
551
+ startIcon: React__default['default'].createElement(CircularProgress__default['default'], { color: "inherit", size: typography.button.fontSize }),
552
+ disabled: true,
553
+ };
554
+ return (React__default['default'].createElement(MuiButton__default['default'], __assign({ ref: ref, classes: __assign(__assign({}, classes), classesOverride), className: classNames([className, 'pm-button']) }, muiProps, (loading && loadingIndicator))));
555
+ });
556
+ Button.displayName = 'Button';
557
+
558
+ var Checkbox = React.forwardRef(function (props, ref) {
559
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
560
+ var control = React__default['default'].createElement(MuiCheckbox__default['default'], __assign({ disabled: label ? undefined : disabled }, muiProps));
561
+ return label ? (React__default['default'].createElement(FormControlLabel__default['default'], __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
562
+ });
563
+ Checkbox.displayName = 'Checkbox';
564
+
565
+ var getFadeStop = function (_a, typographyVariant) {
566
+ var typography = _a.typography;
567
+ return !isNaN(Number(typography[typographyVariant].lineHeight))
568
+ ? typography[typographyVariant].lineHeight + "rem"
569
+ : typography[typographyVariant].lineHeight;
570
+ };
571
+ core.makeStyles(function (theme) { return ({
572
+ overlay: {
573
+ position: 'absolute',
574
+ top: 0,
575
+ left: 0,
576
+ height: '100%',
577
+ width: '100%',
578
+ background: function (props) { return "linear-gradient(to top, white, #FFF0 " + getFadeStop(theme, props.typographyVariant) + ")"; },
579
+ },
580
+ }); });
581
+
582
+ var SemanticColors;
583
+ (function (SemanticColors) {
584
+ SemanticColors["PRIMARY_MAIN"] = "primary.main";
585
+ SemanticColors["PRIMARY_DARK"] = "primary.dark";
586
+ SemanticColors["PRIMARY_LIGHT"] = "primary.light";
587
+ SemanticColors["SECONDARY_MAIN"] = "secondary.main";
588
+ SemanticColors["SECONDARY_DARK"] = "secondary.dark";
589
+ SemanticColors["SECONDARY_LIGHT"] = "secondary.light";
590
+ })(SemanticColors || (SemanticColors = {}));
591
+ core.makeStyles(function (theme) { return ({
592
+ dividerRoot: {
593
+ gap: theme.spacing(2),
594
+ },
595
+ textRoot: {
596
+ color: function (props) {
597
+ var textColor = props.textColor;
598
+ if (Object.values(SemanticColors).includes(textColor)) {
599
+ var _a = textColor.split('.'), semanticColor = _a[0], shade = _a[1];
600
+ return theme.palette[semanticColor][shade];
601
+ }
602
+ else if (textColor) {
603
+ return textColor;
604
+ }
605
+ else {
606
+ return 'black';
607
+ }
608
+ },
609
+ textTransform: function (props) { return props.textTransform; },
610
+ },
611
+ dividerLine: {
612
+ backgroundColor: function (props) {
613
+ var dividerColor = props.dividerColor;
614
+ if (Object.values(SemanticColors).includes(dividerColor)) {
615
+ var _a = dividerColor.split('.'), semanticColor = _a[0], shade = _a[1];
616
+ return theme.palette[semanticColor][shade];
617
+ }
618
+ else if (dividerColor) {
619
+ return dividerColor;
620
+ }
621
+ else {
622
+ return theme.palette.grey[500];
623
+ }
624
+ },
625
+ },
626
+ }); });
627
+
628
+ var getLinkColor = function (_a, _b) {
629
+ var palette = _a.palette;
630
+ var _c = _b.color, color = _c === void 0 ? 'info' : _c;
631
+ var resolved;
632
+ if (['primary', 'secondary', 'info', 'error'].includes(color)) {
633
+ resolved = palette[color].main;
634
+ }
635
+ else if (['textPrimary', 'textSecondary'].includes(color)) {
636
+ resolved = palette.text[color.substring(4).toLowerCase()];
637
+ }
638
+ else if (color === 'inherit') {
639
+ resolved = color;
640
+ }
641
+ return resolved;
642
+ };
643
+ var useLinkStyles = styles.makeStyles(function (theme) {
644
+ var _a;
645
+ return ({
646
+ root: (_a = {
647
+ display: 'flex',
648
+ color: function (props) { return getLinkColor(theme, props); }
649
+ },
650
+ _a["& ." + iconStaticClassName] = {
651
+ alignSelf: 'center',
652
+ },
653
+ _a),
654
+ });
655
+ });
656
+
657
+ var Link = React.forwardRef(function (props, ref) {
658
+ var children = props.children; props.color; var muiProps = __rest(props, ["children", "color"]);
659
+ var classes = useLinkStyles(props);
660
+ return (React__default['default'].createElement(MuiLink__default['default'], __assign({ ref: ref, classes: { root: classes.root } }, muiProps), children));
661
+ });
662
+ Link.defaultProps = {
663
+ color: 'info',
664
+ variant: 'body1',
665
+ };
666
+ Link.displayName = 'Link';
667
+
668
+ var Radio = React.forwardRef(function (props, ref) {
669
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
670
+ var control = React__default['default'].createElement(MuiRadio__default['default'], __assign({ disabled: label ? undefined : disabled }, muiProps));
671
+ return label ? (React__default['default'].createElement(FormControlLabel__default['default'], __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
672
+ });
673
+ Radio.displayName = 'Radio';
674
+
675
+ styles.makeStyles(function () { return ({
676
+ textfield: {
677
+ background: function (props) { return (props.backgroundTransparency ? '#FFFFFF44' : 'none'); },
678
+ borderTopLeftRadius: 4,
679
+ borderBottomLeftRadius: 4,
680
+ '& fieldset': {
681
+ borderRight: 'none',
682
+ borderTopRightRadius: 0,
683
+ borderBottomRightRadius: 0,
684
+ },
685
+ },
686
+ button: {
687
+ borderTopLeftRadius: 0,
688
+ borderBottomLeftRadius: 0,
689
+ alignSelf: 'stretch',
690
+ },
691
+ input: {
692
+ color: function (props) { return props.inputTextColor || 'inherit'; },
693
+ '&$focused fieldset': {
694
+ top: -4,
695
+ },
696
+ },
697
+ focused: {},
698
+ }); });
699
+
700
+ var useSwitchStyles = styles.makeStyles(function (theme) { return ({
701
+ checked: {
702
+ '& $thumb': {
703
+ background: theme.palette.success.main,
704
+ },
705
+ '&& + $track': {
706
+ backgroundColor: theme.palette.success.main,
707
+ },
708
+ },
709
+ thumb: {},
710
+ track: {},
711
+ }); });
712
+
713
+ var Switch = React.forwardRef(function (props, ref) {
714
+ var label = props.label, disabled = props.disabled, LabelProps = props.LabelProps, muiProps = __rest(props, ["label", "disabled", "LabelProps"]);
715
+ var classes = useSwitchStyles(props);
716
+ var control = React__default['default'].createElement(MuiSwitch__default['default'], __assign({ classes: classes, disabled: label ? undefined : disabled }, muiProps));
717
+ return label ? (React__default['default'].createElement(FormControlLabel__default['default'], __assign({ disabled: disabled, inputRef: ref, control: control, label: label }, LabelProps))) : (control);
718
+ });
719
+ Switch.displayName = 'Switch';
720
+
721
+ var useToggleButtonStyles = styles.makeStyles(function (theme) { return ({
722
+ root: {
723
+ color: theme.palette.text.primary,
724
+ },
725
+ selected: {
726
+ '&&': {
727
+ '&:hover': {
728
+ backgroundColor: function (props) { return theme.palette[props.color || 'primary'].dark; },
729
+ },
730
+ backgroundColor: function (props) { return theme.palette[props.color || 'primary'].main; },
731
+ color: 'white',
732
+ },
733
+ },
734
+ }); });
735
+
736
+ var ToggleButton = React.forwardRef(function (props, ref) {
737
+ var children = props.children, muiProps = __rest(props, ["children"]);
738
+ var classes = useToggleButtonStyles(props);
739
+ return (React__default['default'].createElement(MuiToggleButton__default['default'], __assign({ ref: ref, classes: {
740
+ root: classes.root,
741
+ selected: classes.selected,
742
+ } }, muiProps), children));
743
+ });
744
+ ToggleButton.defaultProps = {
745
+ color: 'primary',
746
+ };
747
+ ToggleButton.displayName = 'ToggleButton';
748
+
749
+ var useToggleButtonGroupStyles = styles.makeStyles(function (theme) { return ({
750
+ root: {
751
+ '&&': {
752
+ backgroundColor: theme.palette.grey[300],
753
+ },
754
+ },
755
+ }); });
756
+
757
+ var ToggleButtonGroup = React.forwardRef(function (props, ref) {
758
+ var children = props.children, _a = props.color, color = _a === void 0 ? 'primary' : _a, muiProps = __rest(props, ["children", "color"]);
759
+ var classes = useToggleButtonGroupStyles(props);
760
+ var childrenWithProps = React__default['default'].Children.map(children, function (child) {
761
+ if (!React__default['default'].isValidElement(child)) {
762
+ return null;
763
+ }
764
+ return React__default['default'].cloneElement(child, { color: color });
765
+ });
766
+ return (React__default['default'].createElement(MuiToggleButtonGroup__default['default'], __assign({ ref: ref, classes: { root: classes.root } }, muiProps), childrenWithProps));
767
+ });
768
+ ToggleButtonGroup.displayName = 'ToggleButtonGroup';
769
+
770
+ var useTooltipStyles = styles.makeStyles(function (_a) {
771
+ var typography = _a.typography;
772
+ return ({
773
+ tooltip: {
774
+ fontSize: typography.pxToRem(16),
775
+ },
776
+ });
777
+ });
778
+
779
+ var Tooltip = React.forwardRef(function (props, ref) {
780
+ var classes = useTooltipStyles(props);
781
+ return React__default['default'].createElement(MuiTooltip__default['default'], __assign({ ref: ref, classes: classes }, props));
782
+ });
783
+ Tooltip.displayName = 'Tooltip';
784
+
785
+ var TableFooter = function (props) {
786
+ return (React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "center", alignItems: "end", paddingTop: 3, paddingBottom: 4, flexGrow: 1 }, props.children));
787
+ };
788
+
789
+ var TableHeader = function (props) {
790
+ var children = props.children, restProps = __rest$1(props, ["children"]);
791
+ return React__default['default'].createElement("thead", __assign$1({}, restProps), children);
792
+ };
793
+
794
+ var _path$3K;
795
+
796
+ function _extends$3$() { _extends$3$ = 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$3$.apply(this, arguments); }
797
+
798
+ function SvgMore(props) {
799
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$3$({
800
+ viewBox: "0 0 16 16",
801
+ strokeLinecap: "round",
802
+ strokeLinejoin: "round",
803
+ stroke: "currentColor",
804
+ width: "1em",
805
+ height: "1em",
806
+ fill: "none"
807
+ }, props), _path$3K || (_path$3K = /*#__PURE__*/React__namespace.createElement("path", {
808
+ d: "M8 8.667a.667.667 0 100-1.334.667.667 0 000 1.334zM8 4a.667.667 0 100-1.333A.667.667 0 008 4zm0 9.333A.667.667 0 108 12a.667.667 0 000 1.333z"
809
+ })));
810
+ }
811
+
812
+ var _path$2X;
813
+
814
+ function _extends$3b() { _extends$3b = 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$3b.apply(this, arguments); }
815
+
816
+ function SvgChevronDown(props) {
817
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$3b({
818
+ viewBox: "0 0 16 16",
819
+ strokeLinecap: "round",
820
+ strokeLinejoin: "round",
821
+ stroke: "currentColor",
822
+ width: "1em",
823
+ height: "1em",
824
+ fill: "none"
825
+ }, props), _path$2X || (_path$2X = /*#__PURE__*/React__namespace.createElement("path", {
826
+ d: "M4 6l4 4 4-4"
827
+ })));
828
+ }
829
+
830
+ var _path$2W;
831
+
832
+ function _extends$3a() { _extends$3a = 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$3a.apply(this, arguments); }
833
+
834
+ function SvgChevronUp(props) {
835
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$3a({
836
+ viewBox: "0 0 16 16",
837
+ strokeLinecap: "round",
838
+ strokeLinejoin: "round",
839
+ stroke: "currentColor",
840
+ width: "1em",
841
+ height: "1em",
842
+ fill: "none"
843
+ }, props), _path$2W || (_path$2W = /*#__PURE__*/React__namespace.createElement("path", {
844
+ d: "M12 10L8 6l-4 4"
845
+ })));
846
+ }
847
+
848
+ var getWidth = function (props) {
849
+ var isActionColumn = props.column.isActionColumn, fullWidth = props.tableProps.fullWidth;
850
+ var width;
851
+ if (fullWidth && isActionColumn) {
852
+ width = '0.0000000001%';
853
+ }
854
+ if (fullWidth && !isActionColumn) {
855
+ width = '1%';
856
+ }
857
+ if (!fullWidth && isActionColumn) {
858
+ width = 72;
859
+ }
860
+ if (!fullWidth && !isActionColumn) {
861
+ width = undefined;
862
+ }
863
+ return width;
864
+ };
865
+ var useTableHeaderCellStyles = core.makeStyles(function (theme) { return ({
866
+ root: function (props) {
867
+ var width = getWidth(props);
868
+ return {
869
+ borderBottomStyle: 'solid',
870
+ borderBottomWidth: 2,
871
+ borderBottomColor: theme.palette.grey[100],
872
+ padding: theme.spacing(2),
873
+ textAlign: 'left',
874
+ fontWeight: 500,
875
+ width: width,
876
+ };
877
+ },
878
+ }); });
879
+
880
+ var TableHeaderCell = function (props) {
881
+ var children = props.children, column = props.column; props.tableProps; var restProps = __rest$1(props, ["children", "column", "tableProps"]);
882
+ var root = useTableHeaderCellStyles(props).root;
883
+ var _a = core.useTheme(), palette = _a.palette, spacing = _a.spacing;
884
+ //@ts-expect-error @types/react-table issue
885
+ var canSort = column.canSort, isSorted = column.isSorted, isSortedDesc = column.isSortedDesc, isActionColumn = column.isActionColumn;
886
+ var showSortIndicator = canSort && !isActionColumn;
887
+ return (React__default['default'].createElement("th", __assign$1({ className: root }, restProps),
888
+ React__default['default'].createElement(core.Box, { display: "flex", alignItems: "center", gridGap: spacing(1) },
889
+ children,
890
+ showSortIndicator && (React__default['default'].createElement(Icon, { icon: isSortedDesc ? SvgChevronDown : SvgChevronUp, color: isSorted ? palette.text.primary : palette.text.disabled, size: "large" })))));
891
+ };
892
+
893
+ var TableHeaderRow = function (props) {
894
+ var children = props.children, restProps = __rest$1(props, ["children"]);
895
+ return React__default['default'].createElement("tr", __assign$1({}, restProps), children);
896
+ };
897
+
898
+ var useTableRowStyles = core.makeStyles(function (theme) { return ({
899
+ root: function () { return ({
900
+ '&:nth-child(even)': {
901
+ backgroundColor: theme.palette.grey[100],
902
+ },
903
+ }); },
904
+ }); });
905
+
906
+ var TableRow = function (props) {
907
+ var children = props.children, restProps = __rest$1(props, ["children"]);
908
+ var root = useTableRowStyles(props).root;
909
+ return (React__default['default'].createElement("tr", __assign$1({ className: root }, restProps), children));
910
+ };
911
+
912
+ var TableBody = function (props) {
913
+ var children = props.children, restProps = __rest$1(props, ["children"]);
914
+ return React__default['default'].createElement("tbody", __assign$1({}, restProps), children);
915
+ };
916
+
917
+ var useTableCellStyles = core.makeStyles(function (theme) { return ({
918
+ root: function () { return ({
919
+ padding: theme.spacing(2),
920
+ }); },
921
+ }); });
922
+
923
+ var TableCell = function (props) {
924
+ var children = props.children, restProps = __rest$1(props, ["children"]);
925
+ var root = useTableCellStyles(props).root;
926
+ return (React__default['default'].createElement("td", __assign$1({ className: root }, restProps), children));
927
+ };
928
+
929
+ var useTableStyles = core.makeStyles(function (_a) {
930
+ var typography = _a.typography;
931
+ return ({
932
+ root: function (_a) {
933
+ var fullWidth = _a.fullWidth;
934
+ return ({
935
+ display: fullWidth ? 'flex' : 'inline-flex',
936
+ flexDirection: 'column',
937
+ });
938
+ },
939
+ table: function (_a) {
940
+ var fullWidth = _a.fullWidth;
941
+ return (__assign$1(__assign$1({ borderCollapse: 'collapse' }, (fullWidth && { width: '100%' })), typography.body1));
942
+ },
943
+ tableWrap: function () { return ({
944
+ maxWidth: '100%',
945
+ overflowX: 'auto',
946
+ overflowY: 'hidden',
947
+ }); },
948
+ });
949
+ });
950
+
951
+ var TableActionsCell = function (props) {
952
+ var _a = props.actions, primary = _a.primary, secondary = _a.secondary, intermediate = __rest$1(_a, ["primary", "secondary"]);
953
+ var tertiary = intermediate.tertiary, restActions = __rest$1(intermediate, ["tertiary"]);
954
+ var overflow = Object.keys(props.actions).length > 3;
955
+ var _b = React__default['default'].useState(null), anchorEl = _b[0], setAnchorEl = _b[1];
956
+ var openMenu = function (event) {
957
+ setAnchorEl(event.currentTarget);
958
+ };
959
+ var closeMenu = function () {
960
+ setAnchorEl(null);
961
+ };
962
+ var handleItemClick = function (action) {
963
+ action(props.cell);
964
+ closeMenu();
965
+ };
966
+ return (React__default['default'].createElement(core.Box, { display: "flex" },
967
+ primary && primary.icon && (React__default['default'].createElement(IconButton, { size: "small", onClick: function () { return primary.action(props.cell); } },
968
+ React__default['default'].createElement(Icon, { icon: primary.icon }))),
969
+ secondary && secondary.icon && (React__default['default'].createElement(IconButton, { size: "small", onClick: function () { return secondary.action(props.cell); } },
970
+ React__default['default'].createElement(Icon, { icon: secondary.icon }))),
971
+ !overflow && tertiary && tertiary.icon && (React__default['default'].createElement(IconButton, { size: "small", onClick: function () { return tertiary.action(props.cell); } },
972
+ React__default['default'].createElement(Icon, { icon: tertiary.icon }))),
973
+ overflow && restActions && (React__default['default'].createElement(React__default['default'].Fragment, null,
974
+ React__default['default'].createElement(IconButton, { size: "small", onClick: openMenu },
975
+ React__default['default'].createElement(Icon, { icon: SvgMore })),
976
+ React__default['default'].createElement(Menu__default['default'], { anchorEl: anchorEl, open: Boolean(anchorEl), onClose: closeMenu }, Object.values(__assign$1({ tertiary: tertiary }, restActions))
977
+ .filter(function (value) { return value; })
978
+ .map(function (_a, i) {
979
+ var label = _a.label, action = _a.action;
980
+ return (React__default['default'].createElement(MenuItem__default['default'], { key: i, onClick: function () { return handleItemClick(action); } }, label));
981
+ }))))));
982
+ };
983
+
984
+ var makeColumns = function (config) {
985
+ var columns = config.columns, actions = config.actions, actionColumnId = config.actionColumnId;
986
+ var actionColumn;
987
+ var memoizedColumns = __spreadArray([], columns);
988
+ if (actions) {
989
+ var CellComponent = function (props) { return React__default['default'].createElement(TableActionsCell, __assign$1({}, props, { actions: actions })); };
990
+ actionColumn = {
991
+ id: actionColumnId,
992
+ Header: function () { return null; },
993
+ Cell: CellComponent,
994
+ };
995
+ memoizedColumns = __spreadArray(__spreadArray([], columns), [actionColumn]);
996
+ }
997
+ return memoizedColumns;
998
+ };
999
+
1000
+ /* eslint-disable react/jsx-key */
1001
+ var Table = function (props) {
1002
+ var actionColumnId = 'table-actions-column';
1003
+ var rawColumns = props.columns, data = props.data, actions = props.actions, sortable = props.sortable, emptyMessage = props.emptyMessage, EmptyImage = props.EmptyImage, isLoading = props.loading, enableMinHeight = props.enableMinHeight;
1004
+ var classes = useTableStyles(props);
1005
+ var columns = React.useMemo(function () { return makeColumns({ columns: rawColumns, actions: actions, actionColumnId: actionColumnId }); }, [rawColumns, actions]);
1006
+ var instance = useTable_js.useTable({ columns: columns, data: data, disableSortBy: !sortable }, useSortBy_js.useSortBy, usePagination_js.usePagination);
1007
+ var getTableProps = instance.getTableProps, getTableBodyProps = instance.getTableBodyProps, headerGroups = instance.headerGroups, page = instance.page, prepareRow = instance.prepareRow, pageCount = instance.pageCount, gotoPage = instance.gotoPage, state = instance.state, rows = instance.rows;
1008
+ var isPaginated = pageCount > 1;
1009
+ var isEmpty = rows.length === 0;
1010
+ var handlePagination = function (_e, pageNumber) {
1011
+ gotoPage(pageNumber - 1);
1012
+ };
1013
+ return (React__default['default'].createElement(core.Box, { className: classes.root, minHeight: (isLoading || isEmpty) && enableMinHeight ? 618 : 'unset' },
1014
+ React__default['default'].createElement(core.Box, { className: classes.tableWrap, minHeight: page.length > 0 && !isLoading && enableMinHeight ? 618 : 'unset' },
1015
+ React__default['default'].createElement("table", __assign$1({ className: classes.table }, getTableProps()),
1016
+ 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'))); }))); })),
1017
+ !isEmpty && !isLoading && (React__default['default'].createElement(TableBody, __assign$1({}, getTableBodyProps()), page.map(function (row) {
1018
+ prepareRow(row);
1019
+ 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'))); })));
1020
+ }))))),
1021
+ isEmpty && (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", p: 2, flexGrow: 1 },
1022
+ EmptyImage && EmptyImage(),
1023
+ React__default['default'].createElement(Typography, null, emptyMessage))),
1024
+ isLoading && (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", justifyContent: "center", alignItems: "center", p: 2, flexGrow: 1 },
1025
+ React__default['default'].createElement(CircularProgress__default['default'], { size: 80, color: "inherit" }))),
1026
+ isPaginated && !isLoading && (React__default['default'].createElement(TableFooter, null,
1027
+ React__default['default'].createElement(lab.Pagination, { count: pageCount, page: state.pageIndex + 1, onChange: handlePagination })))));
1028
+ };
1029
+ Table.defaultProps = {
1030
+ emptyMessage: 'No results.',
1031
+ enableMinHeight: true,
1032
+ };
1033
+
1034
+ exports.Table = Table;
1035
+ //# sourceMappingURL=index.js.map