dce-reactkit 3.8.6 → 3.9.0-beta-loading-modal.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +253 -381
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/Modal/ModalProps.d.ts +2 -0
- package/dist/cjs/types/index.d.ts +1 -3
- package/dist/esm/index.js +255 -381
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/Modal/ModalProps.d.ts +2 -0
- package/dist/esm/types/index.d.ts +1 -3
- package/dist/index.d.ts +45 -79
- package/package.json +1 -1
- package/src/components/Modal/ModalProps.ts +4 -0
- package/src/components/Modal/index.tsx +49 -21
- package/src/components/MultiSwitch.tsx +1 -1
- package/src/index.ts +0 -4
- package/dist/cjs/types/components/Dropdown.d.ts +0 -32
- package/dist/cjs/types/helpers/validators/ChicagoTitleCase.d.ts +0 -9
- package/dist/cjs/types/helpers/validators/validURL.d.ts +0 -8
- package/dist/cjs/types/types/DropdownItemType.d.ts +0 -6
- package/dist/esm/types/components/Dropdown.d.ts +0 -32
- package/dist/esm/types/helpers/validators/ChicagoTitleCase.d.ts +0 -9
- package/dist/esm/types/helpers/validators/validURL.d.ts +0 -8
- package/dist/esm/types/types/DropdownItemType.d.ts +0 -6
- package/src/components/Dropdown.tsx +0 -317
- package/src/helpers/validators/ChicagoTitleCase.test.ts +0 -85
- package/src/helpers/validators/ChicagoTitleCase.ts +0 -32
- package/src/helpers/validators/findURL.test.ts +0 -83
- package/src/helpers/validators/findURL.ts +0 -43
- package/src/helpers/validators/validURL.test.ts +0 -90
- package/src/helpers/validators/validURL.ts +0 -18
- package/src/types/DropdownItemType.ts +0 -11
package/dist/cjs/index.js
CHANGED
|
@@ -207,6 +207,98 @@ const LogBuiltInMetadata = {
|
|
|
207
207
|
},
|
|
208
208
|
};
|
|
209
209
|
|
|
210
|
+
/**
|
|
211
|
+
* Loading spinner/indicator
|
|
212
|
+
* @author Gabe Abrams
|
|
213
|
+
*/
|
|
214
|
+
/*------------------------------------------------------------------------*/
|
|
215
|
+
/* -------------------------------- Style ------------------------------- */
|
|
216
|
+
/*------------------------------------------------------------------------*/
|
|
217
|
+
const style$a = `
|
|
218
|
+
/* Container fades in */
|
|
219
|
+
.LoadingSpinner-container {
|
|
220
|
+
animation-name: LoadingSpinner-container-fade-in;
|
|
221
|
+
animation-duration: 0.3s;
|
|
222
|
+
animation-delay: 0.4s;
|
|
223
|
+
animation-fill-mode: both;
|
|
224
|
+
animation-timing-function: ease-out;
|
|
225
|
+
}
|
|
226
|
+
@keyframes LoadingSpinner-container-fade-in {
|
|
227
|
+
0% {
|
|
228
|
+
opacity: 0;
|
|
229
|
+
}
|
|
230
|
+
100% {
|
|
231
|
+
opacity: 1;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* Blips */
|
|
236
|
+
.LoadingSpinner-blip-1,
|
|
237
|
+
.LoadingSpinner-blip-2,
|
|
238
|
+
.LoadingSpinner-blip-3,
|
|
239
|
+
.LoadingSpinner-blip-4 {
|
|
240
|
+
font-size: 1.8rem;
|
|
241
|
+
opacity: 0.6;
|
|
242
|
+
margin-top: 1rem;
|
|
243
|
+
margin-bottom: 1rem;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/* First Blip */
|
|
247
|
+
.LoadingSpinner-blip-1 {
|
|
248
|
+
animation: LoadingSpinner-pop-animation 2s infinite;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/* Second Blip */
|
|
252
|
+
.LoadingSpinner-blip-2 {
|
|
253
|
+
animation: LoadingSpinner-pop-animation 2s infinite;
|
|
254
|
+
-webkit-animation-delay: 0.1s;
|
|
255
|
+
animation-delay: 0.1s;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* Third Blip */
|
|
259
|
+
.LoadingSpinner-blip-3 {
|
|
260
|
+
animation: LoadingSpinner-pop-animation 2s infinite;
|
|
261
|
+
animation-delay: 0.2s;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/* Fourth Blip */
|
|
265
|
+
.LoadingSpinner-blip-4 {
|
|
266
|
+
animation: LoadingSpinner-pop-animation 2s infinite;
|
|
267
|
+
animation-delay: 0.3s;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/* Pop Animation for Each Blip */
|
|
271
|
+
@keyframes LoadingSpinner-pop-animation {
|
|
272
|
+
0% {
|
|
273
|
+
transform: scale(1.0);
|
|
274
|
+
}
|
|
275
|
+
10% {
|
|
276
|
+
transform: scale(1.5);
|
|
277
|
+
}
|
|
278
|
+
30% {
|
|
279
|
+
transform: scale(1.0);
|
|
280
|
+
}
|
|
281
|
+
100% {
|
|
282
|
+
transform: scale(1.0);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
`;
|
|
286
|
+
/*------------------------------------------------------------------------*/
|
|
287
|
+
/* ------------------------------ Component ----------------------------- */
|
|
288
|
+
/*------------------------------------------------------------------------*/
|
|
289
|
+
const LoadingSpinner = () => {
|
|
290
|
+
/*------------------------------------------------------------------------*/
|
|
291
|
+
/* ------------------------------- Render ------------------------------- */
|
|
292
|
+
/*------------------------------------------------------------------------*/
|
|
293
|
+
// Add all four blips to a container
|
|
294
|
+
return (React__default["default"].createElement("div", { className: "text-center LoadingSpinner LoadingSpinner-container" },
|
|
295
|
+
React__default["default"].createElement("style", null, style$a),
|
|
296
|
+
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faCircle, className: "LoadingSpinner-blip-1 me-1" }),
|
|
297
|
+
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faCircle, className: "LoadingSpinner-blip-2 me-1" }),
|
|
298
|
+
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faCircle, className: "LoadingSpinner-blip-3 me-1" }),
|
|
299
|
+
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faCircle, className: "LoadingSpinner-blip-4" })));
|
|
300
|
+
};
|
|
301
|
+
|
|
210
302
|
/**
|
|
211
303
|
* Wait for a certain number of ms
|
|
212
304
|
* @author Gabe Abrams
|
|
@@ -327,6 +419,7 @@ const BASE_Z_INDEX = 1000000000;
|
|
|
327
419
|
const BASE_Z_INDEX_ON_TOP = 2000000000;
|
|
328
420
|
// Constants
|
|
329
421
|
const MS_TO_ANIMATE = 200; // Animation duration
|
|
422
|
+
const MS_TO_WAIT_BEFORE_SHOWING_LOADING_INDICATOR = 1000;
|
|
330
423
|
// Modal type to list of buttons
|
|
331
424
|
const modalTypeToModalButtonTypes = {
|
|
332
425
|
[ModalType$1.Okay]: [
|
|
@@ -437,7 +530,7 @@ const getNextUniqueId = () => {
|
|
|
437
530
|
/*------------------------------------------------------------------------*/
|
|
438
531
|
/* -------------------------------- Style ------------------------------- */
|
|
439
532
|
/*------------------------------------------------------------------------*/
|
|
440
|
-
const style$
|
|
533
|
+
const style$9 = `
|
|
441
534
|
.Modal-backdrop {
|
|
442
535
|
position: fixed;
|
|
443
536
|
top: 0;
|
|
@@ -509,13 +602,14 @@ const Modal = (props) => {
|
|
|
509
602
|
/*------------------------------------------------------------------------*/
|
|
510
603
|
var _a;
|
|
511
604
|
/* -------------- Props ------------- */
|
|
512
|
-
const { type = ModalType$1.NoButtons, size = ModalSize$1.Large, title, largeTitle, children, onClose, dontAllowBackdropExit, dontShowXButton, onTopOfOtherModals, } = props;
|
|
605
|
+
const { type = ModalType$1.NoButtons, size = ModalSize$1.Large, title, largeTitle, children, onClose, dontAllowBackdropExit, dontShowXButton, onTopOfOtherModals, isLoading, isLoadingCancelable, } = props;
|
|
513
606
|
// Determine if no header either
|
|
514
607
|
const noHeader = (!title && type === ModalType$1.NoButtons);
|
|
515
608
|
/* -------------- State ------------- */
|
|
516
609
|
// True if animation is in use
|
|
517
610
|
const [animatingIn, setAnimatingIn] = React.useState(true);
|
|
518
611
|
const [animatingPop, setAnimatingPop] = React.useState(false);
|
|
612
|
+
const [showModal, setShowModal] = React.useState(false);
|
|
519
613
|
/* -------------- Refs -------------- */
|
|
520
614
|
// Keep track of whether modal is still mounted
|
|
521
615
|
const mounted = React.useRef(false);
|
|
@@ -542,6 +636,14 @@ const Modal = (props) => {
|
|
|
542
636
|
if (mounted.current) {
|
|
543
637
|
setAnimatingIn(false);
|
|
544
638
|
}
|
|
639
|
+
if (isLoading) {
|
|
640
|
+
// wait before showing modal
|
|
641
|
+
yield waitMs(MS_TO_WAIT_BEFORE_SHOWING_LOADING_INDICATOR);
|
|
642
|
+
setShowModal(true);
|
|
643
|
+
}
|
|
644
|
+
else {
|
|
645
|
+
setShowModal(true);
|
|
646
|
+
}
|
|
545
647
|
}))();
|
|
546
648
|
return () => {
|
|
547
649
|
mounted.current = false;
|
|
@@ -608,6 +710,9 @@ const Modal = (props) => {
|
|
|
608
710
|
else if (animatingPop) {
|
|
609
711
|
animationClass = 'Modal-animating-pop';
|
|
610
712
|
}
|
|
713
|
+
// default to show close button when not loading and not show close button when loading
|
|
714
|
+
// unless downShowXButton or isLoadingCancelable
|
|
715
|
+
const showCloseButton = onClose && !dontShowXButton && !(isLoading && !isLoadingCancelable);
|
|
611
716
|
// Render the modal
|
|
612
717
|
const contentToRender = (React__default["default"].createElement("div", { className: "modal show", tabIndex: -1, style: {
|
|
613
718
|
zIndex: baseZIndex,
|
|
@@ -616,7 +721,7 @@ const Modal = (props) => {
|
|
|
616
721
|
left: 0,
|
|
617
722
|
right: 0,
|
|
618
723
|
} },
|
|
619
|
-
React__default["default"].createElement("style", null, style$
|
|
724
|
+
React__default["default"].createElement("style", null, style$9),
|
|
620
725
|
React__default["default"].createElement("div", { className: `Modal-backdrop ${backdropAnimationClass}`, style: {
|
|
621
726
|
zIndex: baseZIndex + 1,
|
|
622
727
|
}, onClick: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -634,11 +739,11 @@ const Modal = (props) => {
|
|
|
634
739
|
// Handle close
|
|
635
740
|
handleClose(ModalButtonType$1.Cancel);
|
|
636
741
|
}) }),
|
|
637
|
-
React__default["default"].createElement("div", { className: `modal-dialog modal-${size} ${animationClass} modal-dialog-scrollable modal-dialog-centered`, style: {
|
|
742
|
+
showModal && (React__default["default"].createElement("div", { className: `modal-dialog modal-${size} ${animationClass} modal-dialog-scrollable modal-dialog-centered`, style: {
|
|
638
743
|
zIndex: baseZIndex + 2,
|
|
639
744
|
// Override sizes for even larger for XL
|
|
640
745
|
width: (size === ModalSize$1.ExtraLarge
|
|
641
|
-
? 'calc(100vw -
|
|
746
|
+
? 'calc(100vw - 3rem)'
|
|
642
747
|
: undefined),
|
|
643
748
|
maxWidth: (size === ModalSize$1.ExtraLarge
|
|
644
749
|
? '80rem'
|
|
@@ -666,7 +771,7 @@ const Modal = (props) => {
|
|
|
666
771
|
? '1.6rem'
|
|
667
772
|
: undefined),
|
|
668
773
|
} }, title),
|
|
669
|
-
|
|
774
|
+
showCloseButton && (React__default["default"].createElement("button", { type: "button", className: "Modal-x-button btn-close", "aria-label": "Close", style: {
|
|
670
775
|
backgroundColor: (isDarkModeOn()
|
|
671
776
|
? 'white'
|
|
672
777
|
: undefined),
|
|
@@ -674,14 +779,16 @@ const Modal = (props) => {
|
|
|
674
779
|
// Handle close
|
|
675
780
|
handleClose(ModalButtonType$1.Cancel);
|
|
676
781
|
} })))),
|
|
677
|
-
|
|
782
|
+
React__default["default"].createElement("div", { className: "modal-body", style: {
|
|
678
783
|
color: (isDarkModeOn()
|
|
679
784
|
? 'white'
|
|
680
785
|
: undefined),
|
|
681
786
|
backgroundColor: (isDarkModeOn()
|
|
682
787
|
? '#444'
|
|
683
788
|
: undefined),
|
|
684
|
-
} }, children
|
|
789
|
+
} }, isLoading && !children ? (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
790
|
+
React__default["default"].createElement(LoadingSpinner, null),
|
|
791
|
+
React__default["default"].createElement("span", { className: "sr-only" }, "Content loading"))) : (children)),
|
|
685
792
|
footer && (React__default["default"].createElement("div", { className: "modal-footer pt-1 pb-1", style: {
|
|
686
793
|
color: (isDarkModeOn()
|
|
687
794
|
? 'white'
|
|
@@ -692,7 +799,7 @@ const Modal = (props) => {
|
|
|
692
799
|
borderTop: (isDarkModeOn()
|
|
693
800
|
? '0.1rem solid gray'
|
|
694
801
|
: undefined),
|
|
695
|
-
} }, footer))))));
|
|
802
|
+
} }, footer)))))));
|
|
696
803
|
// Determine which portal to use
|
|
697
804
|
const portalNumber = id.current % NUM_MODAL_PORTALS;
|
|
698
805
|
// Render in a portal
|
|
@@ -1172,7 +1279,7 @@ const showSessionExpiredMessage = () => __awaiter(void 0, void 0, void 0, functi
|
|
|
1172
1279
|
/*------------------------------------------------------------------------*/
|
|
1173
1280
|
/* -------------------------------- Style ------------------------------- */
|
|
1174
1281
|
/*------------------------------------------------------------------------*/
|
|
1175
|
-
const style$
|
|
1282
|
+
const style$8 = `
|
|
1176
1283
|
.AppWrapper-leave-to-url-notice {
|
|
1177
1284
|
opacity: 0;
|
|
1178
1285
|
|
|
@@ -1347,105 +1454,13 @@ const AppWrapper = (props) => {
|
|
|
1347
1454
|
/* --------------- Main UI -------------- */
|
|
1348
1455
|
/*----------------------------------------*/
|
|
1349
1456
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1350
|
-
React__default["default"].createElement("style", null, style$
|
|
1457
|
+
React__default["default"].createElement("style", null, style$8),
|
|
1351
1458
|
React__default["default"].createElement("style", null, tooltipStyle),
|
|
1352
1459
|
modal,
|
|
1353
1460
|
customModalPortals,
|
|
1354
1461
|
body));
|
|
1355
1462
|
};
|
|
1356
1463
|
|
|
1357
|
-
/**
|
|
1358
|
-
* Loading spinner/indicator
|
|
1359
|
-
* @author Gabe Abrams
|
|
1360
|
-
*/
|
|
1361
|
-
/*------------------------------------------------------------------------*/
|
|
1362
|
-
/* -------------------------------- Style ------------------------------- */
|
|
1363
|
-
/*------------------------------------------------------------------------*/
|
|
1364
|
-
const style$8 = `
|
|
1365
|
-
/* Container fades in */
|
|
1366
|
-
.LoadingSpinner-container {
|
|
1367
|
-
animation-name: LoadingSpinner-container-fade-in;
|
|
1368
|
-
animation-duration: 0.3s;
|
|
1369
|
-
animation-delay: 0.4s;
|
|
1370
|
-
animation-fill-mode: both;
|
|
1371
|
-
animation-timing-function: ease-out;
|
|
1372
|
-
}
|
|
1373
|
-
@keyframes LoadingSpinner-container-fade-in {
|
|
1374
|
-
0% {
|
|
1375
|
-
opacity: 0;
|
|
1376
|
-
}
|
|
1377
|
-
100% {
|
|
1378
|
-
opacity: 1;
|
|
1379
|
-
}
|
|
1380
|
-
}
|
|
1381
|
-
|
|
1382
|
-
/* Blips */
|
|
1383
|
-
.LoadingSpinner-blip-1,
|
|
1384
|
-
.LoadingSpinner-blip-2,
|
|
1385
|
-
.LoadingSpinner-blip-3,
|
|
1386
|
-
.LoadingSpinner-blip-4 {
|
|
1387
|
-
font-size: 1.8rem;
|
|
1388
|
-
opacity: 0.6;
|
|
1389
|
-
margin-top: 1rem;
|
|
1390
|
-
margin-bottom: 1rem;
|
|
1391
|
-
}
|
|
1392
|
-
|
|
1393
|
-
/* First Blip */
|
|
1394
|
-
.LoadingSpinner-blip-1 {
|
|
1395
|
-
animation: LoadingSpinner-pop-animation 2s infinite;
|
|
1396
|
-
}
|
|
1397
|
-
|
|
1398
|
-
/* Second Blip */
|
|
1399
|
-
.LoadingSpinner-blip-2 {
|
|
1400
|
-
animation: LoadingSpinner-pop-animation 2s infinite;
|
|
1401
|
-
-webkit-animation-delay: 0.1s;
|
|
1402
|
-
animation-delay: 0.1s;
|
|
1403
|
-
}
|
|
1404
|
-
|
|
1405
|
-
/* Third Blip */
|
|
1406
|
-
.LoadingSpinner-blip-3 {
|
|
1407
|
-
animation: LoadingSpinner-pop-animation 2s infinite;
|
|
1408
|
-
animation-delay: 0.2s;
|
|
1409
|
-
}
|
|
1410
|
-
|
|
1411
|
-
/* Fourth Blip */
|
|
1412
|
-
.LoadingSpinner-blip-4 {
|
|
1413
|
-
animation: LoadingSpinner-pop-animation 2s infinite;
|
|
1414
|
-
animation-delay: 0.3s;
|
|
1415
|
-
}
|
|
1416
|
-
|
|
1417
|
-
/* Pop Animation for Each Blip */
|
|
1418
|
-
@keyframes LoadingSpinner-pop-animation {
|
|
1419
|
-
0% {
|
|
1420
|
-
transform: scale(1.0);
|
|
1421
|
-
}
|
|
1422
|
-
10% {
|
|
1423
|
-
transform: scale(1.5);
|
|
1424
|
-
}
|
|
1425
|
-
30% {
|
|
1426
|
-
transform: scale(1.0);
|
|
1427
|
-
}
|
|
1428
|
-
100% {
|
|
1429
|
-
transform: scale(1.0);
|
|
1430
|
-
}
|
|
1431
|
-
}
|
|
1432
|
-
`;
|
|
1433
|
-
/*------------------------------------------------------------------------*/
|
|
1434
|
-
/* ------------------------------ Component ----------------------------- */
|
|
1435
|
-
/*------------------------------------------------------------------------*/
|
|
1436
|
-
const LoadingSpinner = () => {
|
|
1437
|
-
/*------------------------------------------------------------------------*/
|
|
1438
|
-
/* ------------------------------- Render ------------------------------- */
|
|
1439
|
-
/*------------------------------------------------------------------------*/
|
|
1440
|
-
// Add all four blips to a container
|
|
1441
|
-
return (React__default["default"].createElement("div", { className: "text-center LoadingSpinner LoadingSpinner-container" },
|
|
1442
|
-
React__default["default"].createElement("style", null, style$8),
|
|
1443
|
-
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faCircle, className: "LoadingSpinner-blip-1 me-1" }),
|
|
1444
|
-
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faCircle, className: "LoadingSpinner-blip-2 me-1" }),
|
|
1445
|
-
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faCircle, className: "LoadingSpinner-blip-3 me-1" }),
|
|
1446
|
-
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faCircle, className: "LoadingSpinner-blip-4" })));
|
|
1447
|
-
};
|
|
1448
|
-
|
|
1449
1464
|
/**
|
|
1450
1465
|
* A box with a tab on the top that holds buttons and other content
|
|
1451
1466
|
* @author Gabe Abrams
|
|
@@ -2237,27 +2252,27 @@ const PopPendingMark = (props) => {
|
|
|
2237
2252
|
*/
|
|
2238
2253
|
/* ------------- Actions ------------ */
|
|
2239
2254
|
// Types of actions
|
|
2240
|
-
var ActionType$
|
|
2255
|
+
var ActionType$8;
|
|
2241
2256
|
(function (ActionType) {
|
|
2242
2257
|
// Indicate that the text was recently copied
|
|
2243
2258
|
ActionType["IndicateRecentlyCopied"] = "indicate-recently-copied";
|
|
2244
2259
|
// Clear the status
|
|
2245
2260
|
ActionType["ClearRecentlyCopiedStatus"] = "clear-recently-copied-status";
|
|
2246
|
-
})(ActionType$
|
|
2261
|
+
})(ActionType$8 || (ActionType$8 = {}));
|
|
2247
2262
|
/**
|
|
2248
2263
|
* Reducer that executes actions
|
|
2249
2264
|
* @author Gabe Abrams
|
|
2250
2265
|
* @param state current state
|
|
2251
2266
|
* @param action action to execute
|
|
2252
2267
|
*/
|
|
2253
|
-
const reducer$
|
|
2268
|
+
const reducer$9 = (state, action) => {
|
|
2254
2269
|
switch (action.type) {
|
|
2255
|
-
case ActionType$
|
|
2270
|
+
case ActionType$8.IndicateRecentlyCopied: {
|
|
2256
2271
|
return {
|
|
2257
2272
|
recentlyCopied: true,
|
|
2258
2273
|
};
|
|
2259
2274
|
}
|
|
2260
|
-
case ActionType$
|
|
2275
|
+
case ActionType$8.ClearRecentlyCopiedStatus: {
|
|
2261
2276
|
return {
|
|
2262
2277
|
recentlyCopied: false,
|
|
2263
2278
|
};
|
|
@@ -2283,7 +2298,7 @@ const CopiableBox = (props) => {
|
|
|
2283
2298
|
recentlyCopied: false,
|
|
2284
2299
|
};
|
|
2285
2300
|
// Initialize state
|
|
2286
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
2301
|
+
const [state, dispatch] = React.useReducer(reducer$9, initialState);
|
|
2287
2302
|
// Destructure common state
|
|
2288
2303
|
const { recentlyCopied, } = state;
|
|
2289
2304
|
/*------------------------------------------------------------------------*/
|
|
@@ -2303,13 +2318,13 @@ const CopiableBox = (props) => {
|
|
|
2303
2318
|
}
|
|
2304
2319
|
// Show copied notice
|
|
2305
2320
|
dispatch({
|
|
2306
|
-
type: ActionType$
|
|
2321
|
+
type: ActionType$8.IndicateRecentlyCopied,
|
|
2307
2322
|
});
|
|
2308
2323
|
// Wait a moment
|
|
2309
2324
|
yield waitMs(4000);
|
|
2310
2325
|
// Hide copied notice
|
|
2311
2326
|
dispatch({
|
|
2312
|
-
type: ActionType$
|
|
2327
|
+
type: ActionType$8.ClearRecentlyCopiedStatus,
|
|
2313
2328
|
});
|
|
2314
2329
|
});
|
|
2315
2330
|
/*------------------------------------------------------------------------*/
|
|
@@ -2365,20 +2380,20 @@ const CopiableBox = (props) => {
|
|
|
2365
2380
|
*/
|
|
2366
2381
|
/* ------------- Actions ------------ */
|
|
2367
2382
|
// Types of actions
|
|
2368
|
-
var ActionType$
|
|
2383
|
+
var ActionType$7;
|
|
2369
2384
|
(function (ActionType) {
|
|
2370
2385
|
// Toggle whether a child are being shown
|
|
2371
2386
|
ActionType["ToggleChild"] = "toggle-child";
|
|
2372
|
-
})(ActionType$
|
|
2387
|
+
})(ActionType$7 || (ActionType$7 = {}));
|
|
2373
2388
|
/**
|
|
2374
2389
|
* Reducer that executes actions
|
|
2375
2390
|
* @author Gabe Abrams
|
|
2376
2391
|
* @param state current state
|
|
2377
2392
|
* @param action action to execute
|
|
2378
2393
|
*/
|
|
2379
|
-
const reducer$
|
|
2394
|
+
const reducer$8 = (state, action) => {
|
|
2380
2395
|
switch (action.type) {
|
|
2381
|
-
case ActionType$
|
|
2396
|
+
case ActionType$7.ToggleChild: {
|
|
2382
2397
|
return Object.assign(Object.assign({}, state), { childExpanded: Object.assign(Object.assign({}, state.childExpanded), { [String(action.id)]: !state.childExpanded[String(action.id)] }) });
|
|
2383
2398
|
}
|
|
2384
2399
|
default: {
|
|
@@ -2407,7 +2422,7 @@ const NestableItemList = (props) => {
|
|
|
2407
2422
|
childExpanded: initChildExpanded,
|
|
2408
2423
|
};
|
|
2409
2424
|
// Initialize state
|
|
2410
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
2425
|
+
const [state, dispatch] = React.useReducer(reducer$8, initialState);
|
|
2411
2426
|
// Destructure common state
|
|
2412
2427
|
const { childExpanded, } = state;
|
|
2413
2428
|
/*------------------------------------------------------------------------*/
|
|
@@ -2497,7 +2512,7 @@ const NestableItemList = (props) => {
|
|
|
2497
2512
|
backgroundColor: 'transparent',
|
|
2498
2513
|
}, type: "button", onClick: () => {
|
|
2499
2514
|
dispatch({
|
|
2500
|
-
type: ActionType$
|
|
2515
|
+
type: ActionType$7.ToggleChild,
|
|
2501
2516
|
id: item.id,
|
|
2502
2517
|
});
|
|
2503
2518
|
}, "aria-label": `${childExpanded[item.id] ? 'Hide' : 'Show'} items in ${item.name}` },
|
|
@@ -2781,7 +2796,7 @@ var SortType;
|
|
|
2781
2796
|
})(SortType || (SortType = {}));
|
|
2782
2797
|
/* ------------- Actions ------------ */
|
|
2783
2798
|
// Types of actions
|
|
2784
|
-
var ActionType$
|
|
2799
|
+
var ActionType$6;
|
|
2785
2800
|
(function (ActionType) {
|
|
2786
2801
|
// Toggle sort column param
|
|
2787
2802
|
ActionType["ToggleSortColumn"] = "toggle-sort-column";
|
|
@@ -2793,16 +2808,16 @@ var ActionType$7;
|
|
|
2793
2808
|
ActionType["ShowAllColumns"] = "show-all-columns";
|
|
2794
2809
|
// Hide all columns
|
|
2795
2810
|
ActionType["HideAllColumns"] = "hide-all-columns";
|
|
2796
|
-
})(ActionType$
|
|
2811
|
+
})(ActionType$6 || (ActionType$6 = {}));
|
|
2797
2812
|
/**
|
|
2798
2813
|
* Reducer that executes actions
|
|
2799
2814
|
* @author Gabe Abrams
|
|
2800
2815
|
* @param state current state
|
|
2801
2816
|
* @param action action to execute
|
|
2802
2817
|
*/
|
|
2803
|
-
const reducer$
|
|
2818
|
+
const reducer$7 = (state, action) => {
|
|
2804
2819
|
switch (action.type) {
|
|
2805
|
-
case ActionType$
|
|
2820
|
+
case ActionType$6.ToggleSortColumn: {
|
|
2806
2821
|
if (action.param !== state.sortColumnParam) {
|
|
2807
2822
|
// Different column param
|
|
2808
2823
|
return Object.assign(Object.assign({}, state), { sortColumnParam: action.param, sortType: SortType.Ascending });
|
|
@@ -2814,22 +2829,22 @@ const reducer$8 = (state, action) => {
|
|
|
2814
2829
|
// Stop sorting by column
|
|
2815
2830
|
return Object.assign(Object.assign({}, state), { sortColumnParam: undefined, sortType: SortType.Ascending });
|
|
2816
2831
|
}
|
|
2817
|
-
case ActionType$
|
|
2832
|
+
case ActionType$6.UpdateColumnVisibility: {
|
|
2818
2833
|
const { columnVisibilityMap } = state;
|
|
2819
2834
|
columnVisibilityMap[action.param] = action.visible;
|
|
2820
2835
|
return Object.assign(Object.assign({}, state), { columnVisibilityMap });
|
|
2821
2836
|
}
|
|
2822
|
-
case ActionType$
|
|
2837
|
+
case ActionType$6.ToggleColVisCusModalVisibility: {
|
|
2823
2838
|
return Object.assign(Object.assign({}, state), { columnVisibilityCustomizationModalVisible: !state.columnVisibilityCustomizationModalVisible });
|
|
2824
2839
|
}
|
|
2825
|
-
case ActionType$
|
|
2840
|
+
case ActionType$6.ShowAllColumns: {
|
|
2826
2841
|
const { columnVisibilityMap } = state;
|
|
2827
2842
|
Object.keys(columnVisibilityMap).forEach((param) => {
|
|
2828
2843
|
columnVisibilityMap[param] = true;
|
|
2829
2844
|
});
|
|
2830
2845
|
return Object.assign(Object.assign({}, state), { columnVisibilityMap });
|
|
2831
2846
|
}
|
|
2832
|
-
case ActionType$
|
|
2847
|
+
case ActionType$6.HideAllColumns: {
|
|
2833
2848
|
const { columnVisibilityMap } = state;
|
|
2834
2849
|
Object.keys(columnVisibilityMap).forEach((param) => {
|
|
2835
2850
|
columnVisibilityMap[param] = false;
|
|
@@ -2876,7 +2891,7 @@ const IntelliTable = (props) => {
|
|
|
2876
2891
|
columnVisibilityCustomizationModalVisible: false,
|
|
2877
2892
|
};
|
|
2878
2893
|
// Initialize state
|
|
2879
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
2894
|
+
const [state, dispatch] = React.useReducer(reducer$7, initialState);
|
|
2880
2895
|
// Destructure common state
|
|
2881
2896
|
const { sortColumnParam, sortType, columnVisibilityMap, columnVisibilityCustomizationModalVisible, } = state;
|
|
2882
2897
|
/*------------------------------------------------------------------------*/
|
|
@@ -2899,13 +2914,13 @@ const IntelliTable = (props) => {
|
|
|
2899
2914
|
return alert('Choose at least one column', 'To continue, you have to choose at least one column to show');
|
|
2900
2915
|
}
|
|
2901
2916
|
dispatch({
|
|
2902
|
-
type: ActionType$
|
|
2917
|
+
type: ActionType$6.ToggleColVisCusModalVisibility,
|
|
2903
2918
|
});
|
|
2904
2919
|
}, okayVariant: Variant$1.Light },
|
|
2905
2920
|
columns.map((column) => {
|
|
2906
2921
|
return (React__default["default"].createElement(CheckboxButton, { key: column.param, id: `IntelliTable-${id}-toggle-visibility-${column.param}`, className: "mb-2", text: column.title, onChanged: (checked) => {
|
|
2907
2922
|
dispatch({
|
|
2908
|
-
type: ActionType$
|
|
2923
|
+
type: ActionType$6.UpdateColumnVisibility,
|
|
2909
2924
|
param: column.param,
|
|
2910
2925
|
visible: checked,
|
|
2911
2926
|
});
|
|
@@ -2914,12 +2929,12 @@ const IntelliTable = (props) => {
|
|
|
2914
2929
|
React__default["default"].createElement("div", { className: "mt-3" }, "Or you can:"),
|
|
2915
2930
|
React__default["default"].createElement("button", { type: "button", id: `IntelliTable-${id}-select-all-columns`, className: "btn btn-secondary me-2", "aria-label": `show all columns in the ${title} table`, onClick: () => {
|
|
2916
2931
|
dispatch({
|
|
2917
|
-
type: ActionType$
|
|
2932
|
+
type: ActionType$6.ShowAllColumns,
|
|
2918
2933
|
});
|
|
2919
2934
|
} }, "Select All"),
|
|
2920
2935
|
React__default["default"].createElement("button", { type: "button", id: `IntelliTable-${id}-select-none-columns`, className: "btn btn-secondary", "aria-label": `hide all columns in the ${title} table`, onClick: () => {
|
|
2921
2936
|
dispatch({
|
|
2922
|
-
type: ActionType$
|
|
2937
|
+
type: ActionType$6.HideAllColumns,
|
|
2923
2938
|
});
|
|
2924
2939
|
} }, "Deselect All")));
|
|
2925
2940
|
}
|
|
@@ -2970,7 +2985,7 @@ const IntelliTable = (props) => {
|
|
|
2970
2985
|
React__default["default"].createElement("div", null,
|
|
2971
2986
|
React__default["default"].createElement("button", { type: "button", id: `IntelliTable-${id}-sort-by-${column.param}-button`, className: `btn btn-${sortingByThisColumn ? 'light' : 'secondary'} btn-sm ms-1 ps-1 pe-1 pt-0 pb-0`, "aria-label": sortButtonAriaLabel, onClick: () => {
|
|
2972
2987
|
dispatch({
|
|
2973
|
-
type: ActionType$
|
|
2988
|
+
type: ActionType$6.ToggleSortColumn,
|
|
2974
2989
|
param: column.param,
|
|
2975
2990
|
});
|
|
2976
2991
|
} },
|
|
@@ -3159,7 +3174,7 @@ const IntelliTable = (props) => {
|
|
|
3159
3174
|
React__default["default"].createElement(CSVDownloadButton, { "aria-label": `download data as csv for ${title}`, id: `IntelliTable-${id}-download-as-csv`, filename: filename, csv: csv }),
|
|
3160
3175
|
React__default["default"].createElement("button", { type: "button", className: "btn btn-secondary ms-2", "aria-label": `show panel for customizing which columns show in table ${title}`, id: `IntelliTable-${id}-show-column-customization-modal`, onClick: () => {
|
|
3161
3176
|
dispatch({
|
|
3162
|
-
type: ActionType$
|
|
3177
|
+
type: ActionType$6.ToggleColVisCusModalVisibility,
|
|
3163
3178
|
});
|
|
3164
3179
|
} },
|
|
3165
3180
|
"Show/Hide Cols",
|
|
@@ -3525,7 +3540,7 @@ const genHumanReadableName = (machineReadableName) => {
|
|
|
3525
3540
|
};
|
|
3526
3541
|
/* ------------- Actions ------------ */
|
|
3527
3542
|
// Types of actions
|
|
3528
|
-
var ActionType$
|
|
3543
|
+
var ActionType$5;
|
|
3529
3544
|
(function (ActionType) {
|
|
3530
3545
|
// Show the loading bar
|
|
3531
3546
|
ActionType["StartLoading"] = "start-loading";
|
|
@@ -3547,45 +3562,45 @@ var ActionType$6;
|
|
|
3547
3562
|
ActionType["UpdateActionErrorFilterState"] = "update-action-error-filter-state";
|
|
3548
3563
|
// Update the advanced filter state
|
|
3549
3564
|
ActionType["UpdateAdvancedFilterState"] = "update-advanced-filter-state";
|
|
3550
|
-
})(ActionType$
|
|
3565
|
+
})(ActionType$5 || (ActionType$5 = {}));
|
|
3551
3566
|
/**
|
|
3552
3567
|
* Reducer that executes actions
|
|
3553
3568
|
* @author Gabe Abrams
|
|
3554
3569
|
* @param state current state
|
|
3555
3570
|
* @param action action to execute
|
|
3556
3571
|
*/
|
|
3557
|
-
const reducer$
|
|
3572
|
+
const reducer$6 = (state, action) => {
|
|
3558
3573
|
switch (action.type) {
|
|
3559
|
-
case ActionType$
|
|
3574
|
+
case ActionType$5.StartLoading: {
|
|
3560
3575
|
return Object.assign(Object.assign({}, state), { loading: true });
|
|
3561
3576
|
}
|
|
3562
|
-
case ActionType$
|
|
3577
|
+
case ActionType$5.FinishLoading: {
|
|
3563
3578
|
return Object.assign(Object.assign({}, state), { loading: false, logMap: action.logMap });
|
|
3564
3579
|
}
|
|
3565
|
-
case ActionType$
|
|
3580
|
+
case ActionType$5.ToggleFilterDrawer: {
|
|
3566
3581
|
return Object.assign(Object.assign({}, state), { expandedFilterDrawer: (state.expandedFilterDrawer === action.filterDrawer
|
|
3567
3582
|
? undefined // hide
|
|
3568
3583
|
: action.filterDrawer) });
|
|
3569
3584
|
}
|
|
3570
|
-
case ActionType$
|
|
3585
|
+
case ActionType$5.HideFilterDrawer: {
|
|
3571
3586
|
return Object.assign(Object.assign({}, state), { expandedFilterDrawer: undefined });
|
|
3572
3587
|
}
|
|
3573
|
-
case ActionType$
|
|
3588
|
+
case ActionType$5.ResetFilters: {
|
|
3574
3589
|
return Object.assign(Object.assign({}, state), { dateFilterState: action.initDateFilterState, contextFilterState: action.initContextFilterState, tagFilterState: action.initTagFilterState, actionErrorFilterState: action.initActionErrorFilterState, advancedFilterState: action.initAdvancedFilterState });
|
|
3575
3590
|
}
|
|
3576
|
-
case ActionType$
|
|
3591
|
+
case ActionType$5.UpdateDateFilterState: {
|
|
3577
3592
|
return Object.assign(Object.assign({}, state), { dateFilterState: action.dateFilterState });
|
|
3578
3593
|
}
|
|
3579
|
-
case ActionType$
|
|
3594
|
+
case ActionType$5.UpdateContextFilterState: {
|
|
3580
3595
|
return Object.assign(Object.assign({}, state), { contextFilterState: action.contextFilterState });
|
|
3581
3596
|
}
|
|
3582
|
-
case ActionType$
|
|
3597
|
+
case ActionType$5.UpdateTagFilterState: {
|
|
3583
3598
|
return Object.assign(Object.assign({}, state), { tagFilterState: action.tagFilterState });
|
|
3584
3599
|
}
|
|
3585
|
-
case ActionType$
|
|
3600
|
+
case ActionType$5.UpdateActionErrorFilterState: {
|
|
3586
3601
|
return Object.assign(Object.assign({}, state), { actionErrorFilterState: action.actionErrorFilterState });
|
|
3587
3602
|
}
|
|
3588
|
-
case ActionType$
|
|
3603
|
+
case ActionType$5.UpdateAdvancedFilterState: {
|
|
3589
3604
|
return Object.assign(Object.assign({}, state), { advancedFilterState: action.advancedFilterState });
|
|
3590
3605
|
}
|
|
3591
3606
|
default: {
|
|
@@ -3714,7 +3729,7 @@ const LogReviewer = (props) => {
|
|
|
3714
3729
|
advancedFilterState: initAdvancedFilterState,
|
|
3715
3730
|
};
|
|
3716
3731
|
// Initialize state
|
|
3717
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
3732
|
+
const [state, dispatch] = React.useReducer(reducer$6, initialState);
|
|
3718
3733
|
// Destructure common state
|
|
3719
3734
|
const { loading, logMap, expandedFilterDrawer, dateFilterState, contextFilterState, tagFilterState, actionErrorFilterState, advancedFilterState, } = state;
|
|
3720
3735
|
/*------------------------------------------------------------------------*/
|
|
@@ -3764,7 +3779,7 @@ const LogReviewer = (props) => {
|
|
|
3764
3779
|
const handleDateRangeUpdated = (newDateFilterState) => __awaiter(void 0, void 0, void 0, function* () {
|
|
3765
3780
|
// Update state
|
|
3766
3781
|
dispatch({
|
|
3767
|
-
type: ActionType$
|
|
3782
|
+
type: ActionType$5.UpdateDateFilterState,
|
|
3768
3783
|
dateFilterState: newDateFilterState,
|
|
3769
3784
|
});
|
|
3770
3785
|
// Check which year/month combos we need to load
|
|
@@ -3775,7 +3790,7 @@ const LogReviewer = (props) => {
|
|
|
3775
3790
|
}
|
|
3776
3791
|
// Start loading
|
|
3777
3792
|
dispatch({
|
|
3778
|
-
type: ActionType$
|
|
3793
|
+
type: ActionType$5.StartLoading,
|
|
3779
3794
|
});
|
|
3780
3795
|
// Load required months
|
|
3781
3796
|
try {
|
|
@@ -3799,7 +3814,7 @@ const LogReviewer = (props) => {
|
|
|
3799
3814
|
}
|
|
3800
3815
|
// Finish loading
|
|
3801
3816
|
dispatch({
|
|
3802
|
-
type: ActionType$
|
|
3817
|
+
type: ActionType$5.FinishLoading,
|
|
3803
3818
|
logMap,
|
|
3804
3819
|
});
|
|
3805
3820
|
});
|
|
@@ -3838,7 +3853,7 @@ const LogReviewer = (props) => {
|
|
|
3838
3853
|
React__default["default"].createElement("div", { className: "LogReviewer-filter-toggle-buttons alert alert-secondary p-2 m-0" },
|
|
3839
3854
|
React__default["default"].createElement("button", { type: "button", id: "LogReviewer-toggle-date-filter-drawer", className: `btn btn-${FilterDrawer.Date === expandedFilterDrawer ? 'warning' : 'light'} me-2`, "aria-label": "toggle date filter drawer", onClick: () => {
|
|
3840
3855
|
dispatch({
|
|
3841
|
-
type: ActionType$
|
|
3856
|
+
type: ActionType$5.ToggleFilterDrawer,
|
|
3842
3857
|
filterDrawer: FilterDrawer.Date,
|
|
3843
3858
|
});
|
|
3844
3859
|
} },
|
|
@@ -3846,7 +3861,7 @@ const LogReviewer = (props) => {
|
|
|
3846
3861
|
"Date"),
|
|
3847
3862
|
React__default["default"].createElement("button", { type: "button", id: "LogReviewer-toggle-context-filter-drawer", className: `btn btn-${FilterDrawer.Context === expandedFilterDrawer ? 'warning' : 'light'} me-2`, "aria-label": "toggle context filter drawer", onClick: () => {
|
|
3848
3863
|
dispatch({
|
|
3849
|
-
type: ActionType$
|
|
3864
|
+
type: ActionType$5.ToggleFilterDrawer,
|
|
3850
3865
|
filterDrawer: FilterDrawer.Context,
|
|
3851
3866
|
});
|
|
3852
3867
|
} },
|
|
@@ -3854,7 +3869,7 @@ const LogReviewer = (props) => {
|
|
|
3854
3869
|
"Context"),
|
|
3855
3870
|
(LogMetadata.Tag && Object.keys(LogMetadata.Tag).length > 0) && (React__default["default"].createElement("button", { type: "button", id: "LogReviewer-toggle-tag-filter-drawer", className: `btn btn-${FilterDrawer.Tag === expandedFilterDrawer ? 'warning' : 'light'} me-2`, "aria-label": "toggle tag filter drawer", onClick: () => {
|
|
3856
3871
|
dispatch({
|
|
3857
|
-
type: ActionType$
|
|
3872
|
+
type: ActionType$5.ToggleFilterDrawer,
|
|
3858
3873
|
filterDrawer: FilterDrawer.Tag,
|
|
3859
3874
|
});
|
|
3860
3875
|
} },
|
|
@@ -3862,7 +3877,7 @@ const LogReviewer = (props) => {
|
|
|
3862
3877
|
"Tag")),
|
|
3863
3878
|
React__default["default"].createElement("button", { type: "button", id: "LogReviewer-toggle-action-filter-drawer", className: `btn btn-${FilterDrawer.Action === expandedFilterDrawer ? 'warning' : 'light'} me-2`, "aria-label": "toggle action and error filter drawer", onClick: () => {
|
|
3864
3879
|
dispatch({
|
|
3865
|
-
type: ActionType$
|
|
3880
|
+
type: ActionType$5.ToggleFilterDrawer,
|
|
3866
3881
|
filterDrawer: FilterDrawer.Action,
|
|
3867
3882
|
});
|
|
3868
3883
|
} },
|
|
@@ -3870,7 +3885,7 @@ const LogReviewer = (props) => {
|
|
|
3870
3885
|
"Action"),
|
|
3871
3886
|
React__default["default"].createElement("button", { type: "button", id: "LogReviewer-toggle-advanced-filter-drawer", className: `btn btn-${FilterDrawer.Advanced === expandedFilterDrawer ? 'warning' : 'light'} me-2`, "aria-label": "toggle advanced filter drawer", onClick: () => {
|
|
3872
3887
|
dispatch({
|
|
3873
|
-
type: ActionType$
|
|
3888
|
+
type: ActionType$5.ToggleFilterDrawer,
|
|
3874
3889
|
filterDrawer: FilterDrawer.Advanced,
|
|
3875
3890
|
});
|
|
3876
3891
|
} },
|
|
@@ -3878,7 +3893,7 @@ const LogReviewer = (props) => {
|
|
|
3878
3893
|
"Advanced"),
|
|
3879
3894
|
React__default["default"].createElement("button", { type: "button", id: "LogReviewer-reset-filters-button", className: "btn btn-light", "aria-label": "reset filters", onClick: () => {
|
|
3880
3895
|
dispatch({
|
|
3881
|
-
type: ActionType$
|
|
3896
|
+
type: ActionType$5.ResetFilters,
|
|
3882
3897
|
initActionErrorFilterState,
|
|
3883
3898
|
initAdvancedFilterState,
|
|
3884
3899
|
initContextFilterState,
|
|
@@ -4000,7 +4015,7 @@ const LogReviewer = (props) => {
|
|
|
4000
4015
|
}
|
|
4001
4016
|
});
|
|
4002
4017
|
dispatch({
|
|
4003
|
-
type: ActionType$
|
|
4018
|
+
type: ActionType$5.UpdateContextFilterState,
|
|
4004
4019
|
contextFilterState,
|
|
4005
4020
|
});
|
|
4006
4021
|
} }));
|
|
@@ -4015,7 +4030,7 @@ const LogReviewer = (props) => {
|
|
|
4015
4030
|
return (React__default["default"].createElement(CheckboxButton, { key: tag, id: `LogReviewer-tag-${tag}-checkbox`, text: description, ariaLabel: `require that logs be tagged with "${description}" or any other selected tag`, checked: tagFilterState[tag], onChanged: (checked) => {
|
|
4016
4031
|
tagFilterState[tag] = checked;
|
|
4017
4032
|
dispatch({
|
|
4018
|
-
type: ActionType$
|
|
4033
|
+
type: ActionType$5.UpdateTagFilterState,
|
|
4019
4034
|
tagFilterState,
|
|
4020
4035
|
});
|
|
4021
4036
|
} }));
|
|
@@ -4028,21 +4043,21 @@ const LogReviewer = (props) => {
|
|
|
4028
4043
|
React__default["default"].createElement(RadioButton, { id: "LogReviewer-type-all", text: "All Logs", onSelected: () => {
|
|
4029
4044
|
actionErrorFilterState.type = undefined;
|
|
4030
4045
|
dispatch({
|
|
4031
|
-
type: ActionType$
|
|
4046
|
+
type: ActionType$5.UpdateActionErrorFilterState,
|
|
4032
4047
|
actionErrorFilterState,
|
|
4033
4048
|
});
|
|
4034
4049
|
}, ariaLabel: "show logs of all types", selected: actionErrorFilterState.type === undefined }),
|
|
4035
4050
|
React__default["default"].createElement(RadioButton, { id: "LogReviewer-type-action-only", text: "Action Logs Only", onSelected: () => {
|
|
4036
4051
|
actionErrorFilterState.type = LogType$1.Action;
|
|
4037
4052
|
dispatch({
|
|
4038
|
-
type: ActionType$
|
|
4053
|
+
type: ActionType$5.UpdateActionErrorFilterState,
|
|
4039
4054
|
actionErrorFilterState,
|
|
4040
4055
|
});
|
|
4041
4056
|
}, ariaLabel: "only show action logs", selected: actionErrorFilterState.type === LogType$1.Action }),
|
|
4042
4057
|
React__default["default"].createElement(RadioButton, { id: "LogReviewer-type-error-only", text: "Action Error Only", onSelected: () => {
|
|
4043
4058
|
actionErrorFilterState.type = LogType$1.Error;
|
|
4044
4059
|
dispatch({
|
|
4045
|
-
type: ActionType$
|
|
4060
|
+
type: ActionType$5.UpdateActionErrorFilterState,
|
|
4046
4061
|
actionErrorFilterState,
|
|
4047
4062
|
});
|
|
4048
4063
|
}, ariaLabel: "only show error logs", selected: actionErrorFilterState.type === LogType$1.Error, noMarginOnRight: true })),
|
|
@@ -4054,7 +4069,7 @@ const LogReviewer = (props) => {
|
|
|
4054
4069
|
return (React__default["default"].createElement(CheckboxButton, { key: action, id: `LogReviewer-action-${action}-checkbox`, text: description, ariaLabel: `include logs with action type "${description}" in results`, noMarginOnRight: true, checked: actionErrorFilterState.action[action], onChanged: (checked) => {
|
|
4055
4070
|
actionErrorFilterState.action[action] = checked;
|
|
4056
4071
|
dispatch({
|
|
4057
|
-
type: ActionType$
|
|
4072
|
+
type: ActionType$5.UpdateActionErrorFilterState,
|
|
4058
4073
|
actionErrorFilterState,
|
|
4059
4074
|
});
|
|
4060
4075
|
} }));
|
|
@@ -4065,7 +4080,7 @@ const LogReviewer = (props) => {
|
|
|
4065
4080
|
return (React__default["default"].createElement(CheckboxButton, { key: target, id: `LogReviewer-target-${target}-checkbox`, text: description, ariaLabel: `include logs with target "${description}" in results`, checked: actionErrorFilterState.target[target], noMarginOnRight: true, onChanged: (checked) => {
|
|
4066
4081
|
actionErrorFilterState.target[target] = checked;
|
|
4067
4082
|
dispatch({
|
|
4068
|
-
type: ActionType$
|
|
4083
|
+
type: ActionType$5.UpdateActionErrorFilterState,
|
|
4069
4084
|
actionErrorFilterState,
|
|
4070
4085
|
});
|
|
4071
4086
|
} }));
|
|
@@ -4077,7 +4092,7 @@ const LogReviewer = (props) => {
|
|
|
4077
4092
|
React__default["default"].createElement("input", { type: "text", className: "form-control", "aria-label": "query for error message", value: actionErrorFilterState.errorMessage, placeholder: "e.g. undefined is not a function", onChange: (e) => {
|
|
4078
4093
|
actionErrorFilterState.errorMessage = e.target.value;
|
|
4079
4094
|
dispatch({
|
|
4080
|
-
type: ActionType$
|
|
4095
|
+
type: ActionType$5.UpdateActionErrorFilterState,
|
|
4081
4096
|
actionErrorFilterState,
|
|
4082
4097
|
});
|
|
4083
4098
|
} })),
|
|
@@ -4088,7 +4103,7 @@ const LogReviewer = (props) => {
|
|
|
4088
4103
|
.trim()
|
|
4089
4104
|
.toUpperCase());
|
|
4090
4105
|
dispatch({
|
|
4091
|
-
type: ActionType$
|
|
4106
|
+
type: ActionType$5.UpdateActionErrorFilterState,
|
|
4092
4107
|
actionErrorFilterState,
|
|
4093
4108
|
});
|
|
4094
4109
|
} }))))));
|
|
@@ -4102,7 +4117,7 @@ const LogReviewer = (props) => {
|
|
|
4102
4117
|
React__default["default"].createElement("input", { type: "text", className: "form-control", "aria-label": "query for user first name", value: advancedFilterState.userFirstName, placeholder: "e.g. Divardo", onChange: (e) => {
|
|
4103
4118
|
advancedFilterState.userFirstName = e.target.value;
|
|
4104
4119
|
dispatch({
|
|
4105
|
-
type: ActionType$
|
|
4120
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4106
4121
|
advancedFilterState,
|
|
4107
4122
|
});
|
|
4108
4123
|
} })),
|
|
@@ -4111,7 +4126,7 @@ const LogReviewer = (props) => {
|
|
|
4111
4126
|
React__default["default"].createElement("input", { type: "text", className: "form-control", "aria-label": "query for user last name", value: advancedFilterState.userLastName, placeholder: "e.g. Calicci", onChange: (e) => {
|
|
4112
4127
|
advancedFilterState.userLastName = e.target.value;
|
|
4113
4128
|
dispatch({
|
|
4114
|
-
type: ActionType$
|
|
4129
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4115
4130
|
advancedFilterState,
|
|
4116
4131
|
});
|
|
4117
4132
|
} })),
|
|
@@ -4121,7 +4136,7 @@ const LogReviewer = (props) => {
|
|
|
4121
4136
|
advancedFilterState.userEmail = ((e.target.value)
|
|
4122
4137
|
.trim());
|
|
4123
4138
|
dispatch({
|
|
4124
|
-
type: ActionType$
|
|
4139
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4125
4140
|
advancedFilterState,
|
|
4126
4141
|
});
|
|
4127
4142
|
} })),
|
|
@@ -4135,7 +4150,7 @@ const LogReviewer = (props) => {
|
|
|
4135
4150
|
.trim());
|
|
4136
4151
|
}
|
|
4137
4152
|
dispatch({
|
|
4138
|
-
type: ActionType$
|
|
4153
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4139
4154
|
advancedFilterState,
|
|
4140
4155
|
});
|
|
4141
4156
|
} })),
|
|
@@ -4143,21 +4158,21 @@ const LogReviewer = (props) => {
|
|
|
4143
4158
|
React__default["default"].createElement(CheckboxButton, { text: "Students", onChanged: (checked) => {
|
|
4144
4159
|
advancedFilterState.includeLearners = checked;
|
|
4145
4160
|
dispatch({
|
|
4146
|
-
type: ActionType$
|
|
4161
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4147
4162
|
advancedFilterState,
|
|
4148
4163
|
});
|
|
4149
4164
|
}, checked: advancedFilterState.includeLearners, ariaLabel: "show logs from students" }),
|
|
4150
4165
|
React__default["default"].createElement(CheckboxButton, { text: "Teaching Team Members", onChanged: (checked) => {
|
|
4151
4166
|
advancedFilterState.includeTTMs = checked;
|
|
4152
4167
|
dispatch({
|
|
4153
|
-
type: ActionType$
|
|
4168
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4154
4169
|
advancedFilterState,
|
|
4155
4170
|
});
|
|
4156
4171
|
}, checked: advancedFilterState.includeTTMs, ariaLabel: "show logs from teaching team members" }),
|
|
4157
4172
|
React__default["default"].createElement(CheckboxButton, { text: "Admins", onChanged: (checked) => {
|
|
4158
4173
|
advancedFilterState.includeAdmins = checked;
|
|
4159
4174
|
dispatch({
|
|
4160
|
-
type: ActionType$
|
|
4175
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4161
4176
|
advancedFilterState,
|
|
4162
4177
|
});
|
|
4163
4178
|
}, checked: advancedFilterState.includeAdmins, ariaLabel: "show logs from admins" }))),
|
|
@@ -4167,7 +4182,7 @@ const LogReviewer = (props) => {
|
|
|
4167
4182
|
React__default["default"].createElement("input", { type: "text", className: "form-control", "aria-label": "query for course name", value: advancedFilterState.courseName, placeholder: "e.g. GLC 200", onChange: (e) => {
|
|
4168
4183
|
advancedFilterState.courseName = e.target.value;
|
|
4169
4184
|
dispatch({
|
|
4170
|
-
type: ActionType$
|
|
4185
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4171
4186
|
advancedFilterState,
|
|
4172
4187
|
});
|
|
4173
4188
|
} })),
|
|
@@ -4181,7 +4196,7 @@ const LogReviewer = (props) => {
|
|
|
4181
4196
|
.trim());
|
|
4182
4197
|
}
|
|
4183
4198
|
dispatch({
|
|
4184
|
-
type: ActionType$
|
|
4199
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4185
4200
|
advancedFilterState,
|
|
4186
4201
|
});
|
|
4187
4202
|
} }))),
|
|
@@ -4190,21 +4205,21 @@ const LogReviewer = (props) => {
|
|
|
4190
4205
|
React__default["default"].createElement(RadioButton, { text: "All Devices", ariaLabel: "show logs from all devices", selected: advancedFilterState.isMobile === undefined, onSelected: () => {
|
|
4191
4206
|
advancedFilterState.isMobile = undefined;
|
|
4192
4207
|
dispatch({
|
|
4193
|
-
type: ActionType$
|
|
4208
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4194
4209
|
advancedFilterState,
|
|
4195
4210
|
});
|
|
4196
4211
|
} }),
|
|
4197
4212
|
React__default["default"].createElement(RadioButton, { text: "Mobile Only", ariaLabel: "show logs from mobile devices", selected: advancedFilterState.isMobile === true, onSelected: () => {
|
|
4198
4213
|
advancedFilterState.isMobile = true;
|
|
4199
4214
|
dispatch({
|
|
4200
|
-
type: ActionType$
|
|
4215
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4201
4216
|
advancedFilterState,
|
|
4202
4217
|
});
|
|
4203
4218
|
} }),
|
|
4204
4219
|
React__default["default"].createElement(RadioButton, { text: "Desktop Only", ariaLabel: "show logs from desktop devices", selected: advancedFilterState.isMobile === false, onSelected: () => {
|
|
4205
4220
|
advancedFilterState.isMobile = false;
|
|
4206
4221
|
dispatch({
|
|
4207
|
-
type: ActionType$
|
|
4222
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4208
4223
|
advancedFilterState,
|
|
4209
4224
|
});
|
|
4210
4225
|
}, noMarginOnRight: true }))),
|
|
@@ -4213,21 +4228,21 @@ const LogReviewer = (props) => {
|
|
|
4213
4228
|
React__default["default"].createElement(RadioButton, { text: "Both", ariaLabel: "show logs from all sources", selected: advancedFilterState.source === undefined, onSelected: () => {
|
|
4214
4229
|
advancedFilterState.source = undefined;
|
|
4215
4230
|
dispatch({
|
|
4216
|
-
type: ActionType$
|
|
4231
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4217
4232
|
advancedFilterState,
|
|
4218
4233
|
});
|
|
4219
4234
|
} }),
|
|
4220
4235
|
React__default["default"].createElement(RadioButton, { text: "Client Only", ariaLabel: "show logs from client source", selected: advancedFilterState.source === LogSource$1.Client, onSelected: () => {
|
|
4221
4236
|
advancedFilterState.source = LogSource$1.Client;
|
|
4222
4237
|
dispatch({
|
|
4223
|
-
type: ActionType$
|
|
4238
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4224
4239
|
advancedFilterState,
|
|
4225
4240
|
});
|
|
4226
4241
|
} }),
|
|
4227
4242
|
React__default["default"].createElement(RadioButton, { text: "Server Only", ariaLabel: "show logs from server source", selected: advancedFilterState.source === LogSource$1.Server, onSelected: () => {
|
|
4228
4243
|
advancedFilterState.source = LogSource$1.Server;
|
|
4229
4244
|
dispatch({
|
|
4230
|
-
type: ActionType$
|
|
4245
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4231
4246
|
advancedFilterState,
|
|
4232
4247
|
});
|
|
4233
4248
|
}, noMarginOnRight: true })),
|
|
@@ -4238,7 +4253,7 @@ const LogReviewer = (props) => {
|
|
|
4238
4253
|
advancedFilterState.courseName = ((e.target.value)
|
|
4239
4254
|
.trim());
|
|
4240
4255
|
dispatch({
|
|
4241
|
-
type: ActionType$
|
|
4256
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4242
4257
|
advancedFilterState,
|
|
4243
4258
|
});
|
|
4244
4259
|
} })),
|
|
@@ -4248,7 +4263,7 @@ const LogReviewer = (props) => {
|
|
|
4248
4263
|
advancedFilterState.courseName = ((e.target.value)
|
|
4249
4264
|
.trim());
|
|
4250
4265
|
dispatch({
|
|
4251
|
-
type: ActionType$
|
|
4266
|
+
type: ActionType$5.UpdateAdvancedFilterState,
|
|
4252
4267
|
advancedFilterState,
|
|
4253
4268
|
});
|
|
4254
4269
|
} })))))));
|
|
@@ -12068,11 +12083,11 @@ var CreatableSelect$1 = CreatableSelect;
|
|
|
12068
12083
|
*/
|
|
12069
12084
|
/* ------------- Actions ------------ */
|
|
12070
12085
|
// Types of actions
|
|
12071
|
-
var ActionType$
|
|
12086
|
+
var ActionType$4;
|
|
12072
12087
|
(function (ActionType) {
|
|
12073
12088
|
// Update the input value
|
|
12074
12089
|
ActionType["SetInputValue"] = "SetInputValue";
|
|
12075
|
-
})(ActionType$
|
|
12090
|
+
})(ActionType$4 || (ActionType$4 = {}));
|
|
12076
12091
|
/**
|
|
12077
12092
|
* Reducer that executes actions
|
|
12078
12093
|
* @author Yuen Ler Chow
|
|
@@ -12080,9 +12095,9 @@ var ActionType$5;
|
|
|
12080
12095
|
* @param action action to execute
|
|
12081
12096
|
* @returns updated state
|
|
12082
12097
|
*/
|
|
12083
|
-
const reducer$
|
|
12098
|
+
const reducer$5 = (state, action) => {
|
|
12084
12099
|
switch (action.type) {
|
|
12085
|
-
case ActionType$
|
|
12100
|
+
case ActionType$4.SetInputValue: {
|
|
12086
12101
|
return Object.assign(Object.assign({}, state), { inputValue: action.value });
|
|
12087
12102
|
}
|
|
12088
12103
|
default: {
|
|
@@ -12102,7 +12117,7 @@ const CreatableMultiselect = (props) => {
|
|
|
12102
12117
|
inputValue: '',
|
|
12103
12118
|
};
|
|
12104
12119
|
// Initialize state
|
|
12105
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
12120
|
+
const [state, dispatch] = React.useReducer(reducer$5, initialState);
|
|
12106
12121
|
// Destructure common state
|
|
12107
12122
|
const { inputValue } = state;
|
|
12108
12123
|
/*------------------------------------------------------------------------*/
|
|
@@ -12179,7 +12194,7 @@ const CreatableMultiselect = (props) => {
|
|
|
12179
12194
|
}
|
|
12180
12195
|
// Reset text field to empty because the values have been added
|
|
12181
12196
|
dispatch({
|
|
12182
|
-
type: ActionType$
|
|
12197
|
+
type: ActionType$4.SetInputValue,
|
|
12183
12198
|
value: '',
|
|
12184
12199
|
});
|
|
12185
12200
|
};
|
|
@@ -12218,7 +12233,7 @@ const CreatableMultiselect = (props) => {
|
|
|
12218
12233
|
else {
|
|
12219
12234
|
// simply update the input value to the new input value
|
|
12220
12235
|
dispatch({
|
|
12221
|
-
type: ActionType$
|
|
12236
|
+
type: ActionType$4.SetInputValue,
|
|
12222
12237
|
value: newValue,
|
|
12223
12238
|
});
|
|
12224
12239
|
}
|
|
@@ -12270,13 +12285,13 @@ const style$1 = `
|
|
|
12270
12285
|
`;
|
|
12271
12286
|
/* ------------- Actions ------------ */
|
|
12272
12287
|
// Types of actions
|
|
12273
|
-
var ActionType$
|
|
12288
|
+
var ActionType$3;
|
|
12274
12289
|
(function (ActionType) {
|
|
12275
12290
|
// Update the DBEntry
|
|
12276
12291
|
ActionType["UpdateDBEntry"] = "UpdateDBEntry";
|
|
12277
12292
|
// Start the save spinner
|
|
12278
12293
|
ActionType["StartSave"] = "StartSave";
|
|
12279
|
-
})(ActionType$
|
|
12294
|
+
})(ActionType$3 || (ActionType$3 = {}));
|
|
12280
12295
|
/**
|
|
12281
12296
|
* Reducer that executes actions
|
|
12282
12297
|
* @author Yuen Ler Chow
|
|
@@ -12284,12 +12299,12 @@ var ActionType$4;
|
|
|
12284
12299
|
* @param action action to execute
|
|
12285
12300
|
* @returns updated state
|
|
12286
12301
|
*/
|
|
12287
|
-
const reducer$
|
|
12302
|
+
const reducer$4 = (state, action) => {
|
|
12288
12303
|
switch (action.type) {
|
|
12289
|
-
case ActionType$
|
|
12304
|
+
case ActionType$3.UpdateDBEntry: {
|
|
12290
12305
|
return Object.assign(Object.assign({}, state), { entry: action.dbEntry });
|
|
12291
12306
|
}
|
|
12292
|
-
case ActionType$
|
|
12307
|
+
case ActionType$3.StartSave: {
|
|
12293
12308
|
return Object.assign(Object.assign({}, state), { saving: true });
|
|
12294
12309
|
}
|
|
12295
12310
|
default: {
|
|
@@ -12314,7 +12329,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12314
12329
|
saving: false,
|
|
12315
12330
|
};
|
|
12316
12331
|
// Initialize state
|
|
12317
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
12332
|
+
const [state, dispatch] = React.useReducer(reducer$4, initialState);
|
|
12318
12333
|
// Destructure common state
|
|
12319
12334
|
const { entry, saving, } = state;
|
|
12320
12335
|
/*------------------------------------------------------------------------*/
|
|
@@ -12326,7 +12341,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12326
12341
|
*/
|
|
12327
12342
|
const save = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
12328
12343
|
// Start the save loading indicator
|
|
12329
|
-
dispatch({ type: ActionType$
|
|
12344
|
+
dispatch({ type: ActionType$3.StartSave });
|
|
12330
12345
|
// add all default values to the entry
|
|
12331
12346
|
entryFields.forEach((field) => {
|
|
12332
12347
|
if (field.defaultValue && !entry[field.objectKey]) {
|
|
@@ -12509,7 +12524,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12509
12524
|
return (React__default["default"].createElement(RadioButton, { key: choice.value, text: choice.title, selected: entry[field.objectKey] === choice.value, onSelected: () => {
|
|
12510
12525
|
entry[field.objectKey] = choice.value;
|
|
12511
12526
|
dispatch({
|
|
12512
|
-
type: ActionType$
|
|
12527
|
+
type: ActionType$3.UpdateDBEntry,
|
|
12513
12528
|
dbEntry: entry,
|
|
12514
12529
|
});
|
|
12515
12530
|
}, ariaLabel: choice.title }));
|
|
@@ -12521,7 +12536,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12521
12536
|
React__default["default"].createElement("input", { disabled: disabled, type: "text", className: "form-control", placeholder: field.placeholder, "aria-describedby": "AddOrEditDBEntry-form-name-label", value: entry[field.objectKey] || '', onChange: (e) => {
|
|
12522
12537
|
entry[field.objectKey] = (e.target.value);
|
|
12523
12538
|
dispatch({
|
|
12524
|
-
type: ActionType$
|
|
12539
|
+
type: ActionType$3.UpdateDBEntry,
|
|
12525
12540
|
dbEntry: entry,
|
|
12526
12541
|
});
|
|
12527
12542
|
} }))));
|
|
@@ -12534,7 +12549,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12534
12549
|
entry[field.objectKey] = (e.target.value
|
|
12535
12550
|
.replace(/[^0-9]/g, ''));
|
|
12536
12551
|
dispatch({
|
|
12537
|
-
type: ActionType$
|
|
12552
|
+
type: ActionType$3.UpdateDBEntry,
|
|
12538
12553
|
dbEntry: entry,
|
|
12539
12554
|
});
|
|
12540
12555
|
} }))));
|
|
@@ -12564,7 +12579,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12564
12579
|
}
|
|
12565
12580
|
// Save
|
|
12566
12581
|
dispatch({
|
|
12567
|
-
type: ActionType$
|
|
12582
|
+
type: ActionType$3.UpdateDBEntry,
|
|
12568
12583
|
dbEntry: entry,
|
|
12569
12584
|
});
|
|
12570
12585
|
}, ariaLabel: choice.title }));
|
|
@@ -12579,7 +12594,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12579
12594
|
// Update entry and save
|
|
12580
12595
|
entry[field.objectKey] = values;
|
|
12581
12596
|
dispatch({
|
|
12582
|
-
type: ActionType$
|
|
12597
|
+
type: ActionType$3.UpdateDBEntry,
|
|
12583
12598
|
dbEntry: entry,
|
|
12584
12599
|
});
|
|
12585
12600
|
} })))));
|
|
@@ -12592,7 +12607,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12592
12607
|
React__default["default"].createElement(CreatableMultiselect, { disabled: disabled, type: DBEntryFieldType$1.NumberArray, values: entry[field.objectKey] || [], onChange: (values) => {
|
|
12593
12608
|
entry[field.objectKey] = values;
|
|
12594
12609
|
dispatch({
|
|
12595
|
-
type: ActionType$
|
|
12610
|
+
type: ActionType$3.UpdateDBEntry,
|
|
12596
12611
|
dbEntry: entry,
|
|
12597
12612
|
});
|
|
12598
12613
|
} })))));
|
|
@@ -12666,7 +12681,7 @@ const generateEndpointPath = (collectionName, adminsOnly) => {
|
|
|
12666
12681
|
*/
|
|
12667
12682
|
/* ------------- Actions ------------ */
|
|
12668
12683
|
// Types of actions
|
|
12669
|
-
var ActionType$
|
|
12684
|
+
var ActionType$2;
|
|
12670
12685
|
(function (ActionType) {
|
|
12671
12686
|
// Show adder
|
|
12672
12687
|
ActionType["ShowAdder"] = "ShowAdder";
|
|
@@ -12680,7 +12695,7 @@ var ActionType$3;
|
|
|
12680
12695
|
ActionType["StartDelete"] = "StartDelete";
|
|
12681
12696
|
// Finish deletion process
|
|
12682
12697
|
ActionType["FinishDelete"] = "FinishDelete";
|
|
12683
|
-
})(ActionType$
|
|
12698
|
+
})(ActionType$2 || (ActionType$2 = {}));
|
|
12684
12699
|
/**
|
|
12685
12700
|
* Reducer that executes actions
|
|
12686
12701
|
* @author Yuen Ler Chow
|
|
@@ -12688,18 +12703,18 @@ var ActionType$3;
|
|
|
12688
12703
|
* @param action action to execute
|
|
12689
12704
|
* @returns updated state
|
|
12690
12705
|
*/
|
|
12691
|
-
const reducer$
|
|
12706
|
+
const reducer$3 = (state, action) => {
|
|
12692
12707
|
switch (action.type) {
|
|
12693
|
-
case ActionType$
|
|
12708
|
+
case ActionType$2.FinishLoading: {
|
|
12694
12709
|
return Object.assign(Object.assign({}, state), { loading: false, dbEntries: action.dbEntries });
|
|
12695
12710
|
}
|
|
12696
|
-
case ActionType$
|
|
12711
|
+
case ActionType$2.ShowAdder: {
|
|
12697
12712
|
return Object.assign(Object.assign({}, state), { adding: true, dbEntryToEdit: undefined });
|
|
12698
12713
|
}
|
|
12699
|
-
case ActionType$
|
|
12714
|
+
case ActionType$2.ShowEditor: {
|
|
12700
12715
|
return Object.assign(Object.assign({}, state), { adding: false, dbEntryToEdit: action.dbEntry });
|
|
12701
12716
|
}
|
|
12702
|
-
case ActionType$
|
|
12717
|
+
case ActionType$2.FinishAdd: {
|
|
12703
12718
|
// Handle cancel
|
|
12704
12719
|
const finishedEntry = action.dbEntry;
|
|
12705
12720
|
if (!finishedEntry) {
|
|
@@ -12723,10 +12738,10 @@ const reducer$4 = (state, action) => {
|
|
|
12723
12738
|
// Update the state
|
|
12724
12739
|
return Object.assign(Object.assign({}, state), { adding: false, dbEntryToEdit: undefined, dbEntries: updatedDbEntries });
|
|
12725
12740
|
}
|
|
12726
|
-
case ActionType$
|
|
12741
|
+
case ActionType$2.StartDelete: {
|
|
12727
12742
|
return Object.assign(Object.assign({}, state), { loading: true });
|
|
12728
12743
|
}
|
|
12729
|
-
case ActionType$
|
|
12744
|
+
case ActionType$2.FinishDelete: {
|
|
12730
12745
|
return Object.assign(Object.assign({}, state), { loading: false,
|
|
12731
12746
|
// Remove the deleted entry from the list
|
|
12732
12747
|
dbEntries: state.dbEntries.filter((entry) => {
|
|
@@ -12752,7 +12767,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
12752
12767
|
loading: true,
|
|
12753
12768
|
};
|
|
12754
12769
|
// Initialize state
|
|
12755
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
12770
|
+
const [state, dispatch] = React.useReducer(reducer$3, initialState);
|
|
12756
12771
|
// Destructure common state
|
|
12757
12772
|
const { adding, dbEntryToEdit, dbEntries, loading, } = state;
|
|
12758
12773
|
/*------------------------------------------------------------------------*/
|
|
@@ -12778,7 +12793,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
12778
12793
|
try {
|
|
12779
12794
|
// Start loader
|
|
12780
12795
|
dispatch({
|
|
12781
|
-
type: ActionType$
|
|
12796
|
+
type: ActionType$2.StartDelete,
|
|
12782
12797
|
});
|
|
12783
12798
|
// Perform deletion
|
|
12784
12799
|
yield visitServerEndpoint({
|
|
@@ -12787,7 +12802,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
12787
12802
|
});
|
|
12788
12803
|
// Finish loader
|
|
12789
12804
|
dispatch({
|
|
12790
|
-
type: ActionType$
|
|
12805
|
+
type: ActionType$2.FinishDelete,
|
|
12791
12806
|
dbEntry: entry,
|
|
12792
12807
|
idPropName,
|
|
12793
12808
|
});
|
|
@@ -12816,7 +12831,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
12816
12831
|
});
|
|
12817
12832
|
// Save loaded data
|
|
12818
12833
|
dispatch({
|
|
12819
|
-
type: ActionType$
|
|
12834
|
+
type: ActionType$2.FinishLoading,
|
|
12820
12835
|
dbEntries: data,
|
|
12821
12836
|
});
|
|
12822
12837
|
}
|
|
@@ -12859,7 +12874,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
12859
12874
|
React__default["default"].createElement("span", { className: "d-none d-md-inline ms-1" }, "Remove")),
|
|
12860
12875
|
!disableEdit && (React__default["default"].createElement("button", { type: "button", id: `DBEntryManagerPanel-edit-with-id-${entry[idPropName]}`, className: "btn btn-primary", "aria-label": `edit db entry: ${entry[titlePropName]}`, onClick: () => {
|
|
12861
12876
|
dispatch({
|
|
12862
|
-
type: ActionType$
|
|
12877
|
+
type: ActionType$2.ShowEditor,
|
|
12863
12878
|
dbEntry: entry,
|
|
12864
12879
|
});
|
|
12865
12880
|
} },
|
|
@@ -12869,7 +12884,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
12869
12884
|
React__default["default"].createElement("div", { className: "d-grid" },
|
|
12870
12885
|
React__default["default"].createElement("button", { type: "button", id: "DBEntryManagerPanel-add-entry", className: "btn btn-lg btn-primary", "aria-label": `add a new ${itemName} entry to the list of entries`, onClick: () => {
|
|
12871
12886
|
dispatch({
|
|
12872
|
-
type: ActionType$
|
|
12887
|
+
type: ActionType$2.ShowAdder,
|
|
12873
12888
|
});
|
|
12874
12889
|
} },
|
|
12875
12890
|
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faPlus, className: "me-2" }),
|
|
@@ -12881,7 +12896,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
12881
12896
|
if (!loading && (adding || dbEntryToEdit)) {
|
|
12882
12897
|
body = (React__default["default"].createElement(AddOrEditDBEntry, { saveEndpointPath: endpoint, validateEntry: validateEntry, modifyEntry: modifyEntry, entryFields: entryFields, dbEntryToEdit: dbEntryToEdit, idPropName: idPropName, entries: dbEntries, itemName: itemName, onFinished: (entry) => {
|
|
12883
12898
|
dispatch({
|
|
12884
|
-
type: ActionType$
|
|
12899
|
+
type: ActionType$2.FinishAdd,
|
|
12885
12900
|
dbEntry: entry,
|
|
12886
12901
|
idPropName,
|
|
12887
12902
|
});
|
|
@@ -13078,25 +13093,25 @@ const getItemIds = (items) => {
|
|
|
13078
13093
|
};
|
|
13079
13094
|
/* ------------- Actions ------------ */
|
|
13080
13095
|
// Types of actions
|
|
13081
|
-
var ActionType$
|
|
13096
|
+
var ActionType$1;
|
|
13082
13097
|
(function (ActionType) {
|
|
13083
13098
|
// Hide the "jump to bottom" button
|
|
13084
13099
|
ActionType["HideJumpToBottomButton"] = "HideJumpToBottomButton";
|
|
13085
13100
|
// Show the "jump to bottom" button
|
|
13086
13101
|
ActionType["ShowJumpToBottomButton"] = "ShowJumpToBottomButton";
|
|
13087
|
-
})(ActionType$
|
|
13102
|
+
})(ActionType$1 || (ActionType$1 = {}));
|
|
13088
13103
|
/**
|
|
13089
13104
|
* Reducer that executes actions
|
|
13090
13105
|
* @author Gabe Abrams
|
|
13091
13106
|
* @param state current state
|
|
13092
13107
|
* @param action action to execute
|
|
13093
13108
|
*/
|
|
13094
|
-
const reducer$
|
|
13109
|
+
const reducer$2 = (state, action) => {
|
|
13095
13110
|
switch (action.type) {
|
|
13096
|
-
case ActionType$
|
|
13111
|
+
case ActionType$1.HideJumpToBottomButton: {
|
|
13097
13112
|
return Object.assign(Object.assign({}, state), { jumpToBottomButtonVisible: false });
|
|
13098
13113
|
}
|
|
13099
|
-
case ActionType$
|
|
13114
|
+
case ActionType$1.ShowJumpToBottomButton: {
|
|
13100
13115
|
return Object.assign(Object.assign({}, state), { jumpToBottomButtonVisible: true });
|
|
13101
13116
|
}
|
|
13102
13117
|
default: {
|
|
@@ -13120,7 +13135,7 @@ const AutoscrollToBottomContainer = (props) => {
|
|
|
13120
13135
|
jumpToBottomButtonVisible: false,
|
|
13121
13136
|
};
|
|
13122
13137
|
// Initialize state
|
|
13123
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
13138
|
+
const [state, dispatch] = React.useReducer(reducer$2, initialState);
|
|
13124
13139
|
// Destructure common state
|
|
13125
13140
|
const { jumpToBottomButtonVisible, } = state;
|
|
13126
13141
|
/* -------------- Refs -------------- */
|
|
@@ -13166,7 +13181,7 @@ const AutoscrollToBottomContainer = (props) => {
|
|
|
13166
13181
|
}
|
|
13167
13182
|
// Update state
|
|
13168
13183
|
dispatch({
|
|
13169
|
-
type: ActionType$
|
|
13184
|
+
type: ActionType$1.HideJumpToBottomButton,
|
|
13170
13185
|
});
|
|
13171
13186
|
// Scroll to bottom
|
|
13172
13187
|
container.current.scrollTop = (container.current.scrollHeight
|
|
@@ -13190,7 +13205,7 @@ const AutoscrollToBottomContainer = (props) => {
|
|
|
13190
13205
|
if (isScrolledToBottom()) {
|
|
13191
13206
|
// Hide button
|
|
13192
13207
|
dispatch({
|
|
13193
|
-
type: ActionType$
|
|
13208
|
+
type: ActionType$1.HideJumpToBottomButton,
|
|
13194
13209
|
});
|
|
13195
13210
|
}
|
|
13196
13211
|
};
|
|
@@ -13232,7 +13247,7 @@ const AutoscrollToBottomContainer = (props) => {
|
|
|
13232
13247
|
else {
|
|
13233
13248
|
// Not scrolled to bottom. Show "jump to bottom" button.
|
|
13234
13249
|
dispatch({
|
|
13235
|
-
type: ActionType$
|
|
13250
|
+
type: ActionType$1.ShowJumpToBottomButton,
|
|
13236
13251
|
});
|
|
13237
13252
|
}
|
|
13238
13253
|
}, [items]);
|
|
@@ -13302,25 +13317,25 @@ const combineClassNames = (classNames) => {
|
|
|
13302
13317
|
*/
|
|
13303
13318
|
/* ------------- Actions ------------ */
|
|
13304
13319
|
// Types of actions
|
|
13305
|
-
var ActionType
|
|
13320
|
+
var ActionType;
|
|
13306
13321
|
(function (ActionType) {
|
|
13307
13322
|
// Start hovering on an option
|
|
13308
13323
|
ActionType["StartHover"] = "StartHover";
|
|
13309
13324
|
// Stop hovering on an option
|
|
13310
13325
|
ActionType["StopHover"] = "StopHover";
|
|
13311
|
-
})(ActionType
|
|
13326
|
+
})(ActionType || (ActionType = {}));
|
|
13312
13327
|
/**
|
|
13313
13328
|
* Reducer that executes actions
|
|
13314
13329
|
* @author Gabe Abrams
|
|
13315
13330
|
* @param state current state
|
|
13316
13331
|
* @param action action to execute
|
|
13317
13332
|
*/
|
|
13318
|
-
const reducer$
|
|
13333
|
+
const reducer$1 = (state, action) => {
|
|
13319
13334
|
switch (action.type) {
|
|
13320
|
-
case ActionType
|
|
13335
|
+
case ActionType.StartHover: {
|
|
13321
13336
|
return Object.assign(Object.assign({}, state), { hoveredOptionId: action.hoveredOptionId });
|
|
13322
13337
|
}
|
|
13323
|
-
case ActionType
|
|
13338
|
+
case ActionType.StopHover: {
|
|
13324
13339
|
return Object.assign(Object.assign({}, state), { hoveredOptionId: undefined });
|
|
13325
13340
|
}
|
|
13326
13341
|
default: {
|
|
@@ -13344,7 +13359,7 @@ const MultiSwitch = (props) => {
|
|
|
13344
13359
|
hoveredOptionId: undefined,
|
|
13345
13360
|
};
|
|
13346
13361
|
// Initialize state
|
|
13347
|
-
const [state, dispatch] = React.useReducer(reducer$
|
|
13362
|
+
const [state, dispatch] = React.useReducer(reducer$1, initialState);
|
|
13348
13363
|
// Destructure common state
|
|
13349
13364
|
const { hoveredOptionId, } = state;
|
|
13350
13365
|
/*------------------------------------------------------------------------*/
|
|
@@ -13356,7 +13371,7 @@ const MultiSwitch = (props) => {
|
|
|
13356
13371
|
});
|
|
13357
13372
|
// Constants
|
|
13358
13373
|
const gutterRems = heightRem * 0.1;
|
|
13359
|
-
const itemWidthRems = heightRem *
|
|
13374
|
+
const itemWidthRems = heightRem * 1.3;
|
|
13360
13375
|
const textFontSize = heightRem / 3.5;
|
|
13361
13376
|
const iconFontSize = heightRem / 2;
|
|
13362
13377
|
const borderWidthRems = 0.05;
|
|
@@ -13476,27 +13491,27 @@ const MultiSwitch = (props) => {
|
|
|
13476
13491
|
: `click to select option "${option.label}"`), onClick: () => {
|
|
13477
13492
|
// Remove hover
|
|
13478
13493
|
dispatch({
|
|
13479
|
-
type: ActionType
|
|
13494
|
+
type: ActionType.StopHover,
|
|
13480
13495
|
});
|
|
13481
13496
|
// Notify parent
|
|
13482
13497
|
onChange(option.id);
|
|
13483
13498
|
}, onMouseEnter: () => {
|
|
13484
13499
|
dispatch({
|
|
13485
|
-
type: ActionType
|
|
13500
|
+
type: ActionType.StartHover,
|
|
13486
13501
|
hoveredOptionId: option.id,
|
|
13487
13502
|
});
|
|
13488
13503
|
}, onMouseLeave: () => {
|
|
13489
13504
|
dispatch({
|
|
13490
|
-
type: ActionType
|
|
13505
|
+
type: ActionType.StopHover,
|
|
13491
13506
|
});
|
|
13492
13507
|
}, onFocus: () => {
|
|
13493
13508
|
dispatch({
|
|
13494
|
-
type: ActionType
|
|
13509
|
+
type: ActionType.StartHover,
|
|
13495
13510
|
hoveredOptionId: option.id,
|
|
13496
13511
|
});
|
|
13497
13512
|
}, onBlur: () => {
|
|
13498
13513
|
dispatch({
|
|
13499
|
-
type: ActionType
|
|
13514
|
+
type: ActionType.StopHover,
|
|
13500
13515
|
});
|
|
13501
13516
|
}, style: {
|
|
13502
13517
|
pointerEvents: ((option.id === selectedOptionId)
|
|
@@ -13515,147 +13530,6 @@ const MultiSwitch = (props) => {
|
|
|
13515
13530
|
React__default["default"].createElement("div", { className: "MultiSwitch-highlight-container" }, highlight)));
|
|
13516
13531
|
};
|
|
13517
13532
|
|
|
13518
|
-
// Types of dropdown items
|
|
13519
|
-
var DropdownItemType;
|
|
13520
|
-
(function (DropdownItemType) {
|
|
13521
|
-
// Dropdown header
|
|
13522
|
-
DropdownItemType["Header"] = "Header";
|
|
13523
|
-
// Dropdown divider
|
|
13524
|
-
DropdownItemType["Divider"] = "Divider";
|
|
13525
|
-
// Dropdown item
|
|
13526
|
-
DropdownItemType["Item"] = "Item";
|
|
13527
|
-
})(DropdownItemType || (DropdownItemType = {}));
|
|
13528
|
-
var DropdownItemType$1 = DropdownItemType;
|
|
13529
|
-
|
|
13530
|
-
/**
|
|
13531
|
-
* A simple dropdown menu
|
|
13532
|
-
* @author Alessandra De Lucas
|
|
13533
|
-
* @author Yuen Ler Chow
|
|
13534
|
-
* @author Gabe Abrams
|
|
13535
|
-
*/
|
|
13536
|
-
/* ------------- Actions ------------ */
|
|
13537
|
-
// Types of actions
|
|
13538
|
-
var ActionType;
|
|
13539
|
-
(function (ActionType) {
|
|
13540
|
-
// Toggle opening the dropdown menu
|
|
13541
|
-
ActionType["ToggleDropdown"] = "ToggleDropdown";
|
|
13542
|
-
// Close the dropdown menu
|
|
13543
|
-
ActionType["CloseDropdown"] = "CloseDropdown";
|
|
13544
|
-
})(ActionType || (ActionType = {}));
|
|
13545
|
-
/**
|
|
13546
|
-
* Reducer that executes actions
|
|
13547
|
-
* @author Alessandra De Lucas
|
|
13548
|
-
* @author Yuen Ler Chow
|
|
13549
|
-
* @param state current state
|
|
13550
|
-
* @param action action to execute
|
|
13551
|
-
*/
|
|
13552
|
-
const reducer$1 = (state, action) => {
|
|
13553
|
-
switch (action.type) {
|
|
13554
|
-
case ActionType.ToggleDropdown: {
|
|
13555
|
-
return Object.assign(Object.assign({}, state), { isDropdownOpen: !state.isDropdownOpen });
|
|
13556
|
-
}
|
|
13557
|
-
case ActionType.CloseDropdown: {
|
|
13558
|
-
return Object.assign(Object.assign({}, state), { isDropdownOpen: false });
|
|
13559
|
-
}
|
|
13560
|
-
default: {
|
|
13561
|
-
return state;
|
|
13562
|
-
}
|
|
13563
|
-
}
|
|
13564
|
-
};
|
|
13565
|
-
/*------------------------------------------------------------------------*/
|
|
13566
|
-
/* ------------------------------ Component ----------------------------- */
|
|
13567
|
-
/*------------------------------------------------------------------------*/
|
|
13568
|
-
const Dropdown = (props) => {
|
|
13569
|
-
/*------------------------------------------------------------------------*/
|
|
13570
|
-
/* -------------------------------- Setup ------------------------------- */
|
|
13571
|
-
/*------------------------------------------------------------------------*/
|
|
13572
|
-
/* -------------- Props ------------- */
|
|
13573
|
-
// Destructure all props
|
|
13574
|
-
const { dropdownButton, items, } = props;
|
|
13575
|
-
/* -------------- State ------------- */
|
|
13576
|
-
// Initial state
|
|
13577
|
-
const initialState = {
|
|
13578
|
-
isDropdownOpen: false,
|
|
13579
|
-
};
|
|
13580
|
-
// Initialize state
|
|
13581
|
-
const [state, dispatch] = React.useReducer(reducer$1, initialState);
|
|
13582
|
-
// Destructure common state
|
|
13583
|
-
const { isDropdownOpen, } = state;
|
|
13584
|
-
/* -------------- Refs -------------- */
|
|
13585
|
-
// Initialize refs
|
|
13586
|
-
const dropdownRef = React.useRef(null);
|
|
13587
|
-
/*------------------------------------------------------------------------*/
|
|
13588
|
-
/* ------------------------- Component Functions ------------------------ */
|
|
13589
|
-
/*------------------------------------------------------------------------*/
|
|
13590
|
-
/**
|
|
13591
|
-
* Handle clicking outside of the dropdown menu to close it
|
|
13592
|
-
* @author Yuen Ler Chow
|
|
13593
|
-
* @param event the mouse event
|
|
13594
|
-
*/
|
|
13595
|
-
const handleClickOutside = (event) => {
|
|
13596
|
-
if (
|
|
13597
|
-
// Dropdown has been rendered
|
|
13598
|
-
dropdownRef.current
|
|
13599
|
-
// Click occurred outside the dropdown
|
|
13600
|
-
&& !dropdownRef.current.contains(event.target)) {
|
|
13601
|
-
dispatch({ type: ActionType.CloseDropdown });
|
|
13602
|
-
}
|
|
13603
|
-
};
|
|
13604
|
-
/*------------------------------------------------------------------------*/
|
|
13605
|
-
/* ------------------------- Lifecycle Functions ------------------------ */
|
|
13606
|
-
/*------------------------------------------------------------------------*/
|
|
13607
|
-
/**
|
|
13608
|
-
* Mount
|
|
13609
|
-
* @author Yuen Ler Chow
|
|
13610
|
-
*/
|
|
13611
|
-
React.useEffect(() => {
|
|
13612
|
-
// Add event listener to close dropdown when clicking outside
|
|
13613
|
-
document.addEventListener('mousedown', handleClickOutside);
|
|
13614
|
-
// Cleanup
|
|
13615
|
-
return () => {
|
|
13616
|
-
document.removeEventListener('mousedown', handleClickOutside);
|
|
13617
|
-
};
|
|
13618
|
-
}, []);
|
|
13619
|
-
/*----------------------------------------*/
|
|
13620
|
-
/* --------------- Main UI -------------- */
|
|
13621
|
-
/*----------------------------------------*/
|
|
13622
|
-
return (React__default["default"].createElement("div", { className: "dropdown", ref: dropdownRef, "data-bs-theme": isDarkModeOn() ? 'dark' : undefined },
|
|
13623
|
-
React__default["default"].createElement("button", { className: combineClassNames([
|
|
13624
|
-
'btn dropdown-toggle border',
|
|
13625
|
-
isDropdownOpen && 'show',
|
|
13626
|
-
`btn-${dropdownButton.variant}`,
|
|
13627
|
-
dropdownButton.variant === Variant$1.Light && 'text-dark',
|
|
13628
|
-
]), type: "button", id: dropdownButton.id, "aria-expanded": isDropdownOpen, "aria-label": dropdownButton.ariaLabel, onClick: () => {
|
|
13629
|
-
dispatch({
|
|
13630
|
-
type: ActionType.ToggleDropdown,
|
|
13631
|
-
});
|
|
13632
|
-
} }, dropdownButton.content),
|
|
13633
|
-
React__default["default"].createElement("ul", { className: combineClassNames([
|
|
13634
|
-
'dropdown-menu',
|
|
13635
|
-
isDarkModeOn() && 'dropdown-menu-dark',
|
|
13636
|
-
isDropdownOpen && 'show',
|
|
13637
|
-
]) }, Object.values(items).map((item) => {
|
|
13638
|
-
if (item.type === DropdownItemType$1.Header) {
|
|
13639
|
-
return (
|
|
13640
|
-
// TODO: Implement header
|
|
13641
|
-
React__default["default"].createElement("span", null));
|
|
13642
|
-
}
|
|
13643
|
-
if (item.type === DropdownItemType$1.Divider) {
|
|
13644
|
-
return (
|
|
13645
|
-
// TODO: Implement divider
|
|
13646
|
-
React__default["default"].createElement("span", null));
|
|
13647
|
-
}
|
|
13648
|
-
return (React__default["default"].createElement("li", { key: item.id },
|
|
13649
|
-
React__default["default"].createElement("button", { type: "button", "aria-label": item.ariaLabel, className: "dropdown-item", onClick: (e) => {
|
|
13650
|
-
e.preventDefault();
|
|
13651
|
-
dispatch({
|
|
13652
|
-
type: ActionType.CloseDropdown,
|
|
13653
|
-
});
|
|
13654
|
-
item.onClick();
|
|
13655
|
-
} }, item.content)));
|
|
13656
|
-
}))));
|
|
13657
|
-
};
|
|
13658
|
-
|
|
13659
13533
|
/**
|
|
13660
13534
|
* One minute in ms
|
|
13661
13535
|
* @author Gabe Abrams
|
|
@@ -15992,8 +15866,6 @@ exports.DBEntryFieldType = DBEntryFieldType$1;
|
|
|
15992
15866
|
exports.DBEntryManagerPanel = DBEntryManagerPanel;
|
|
15993
15867
|
exports.DayOfWeek = DayOfWeek$1;
|
|
15994
15868
|
exports.Drawer = Drawer;
|
|
15995
|
-
exports.Dropdown = Dropdown;
|
|
15996
|
-
exports.DropdownItemType = DropdownItemType$1;
|
|
15997
15869
|
exports.DynamicWord = DynamicWord;
|
|
15998
15870
|
exports.ErrorBox = ErrorBox;
|
|
15999
15871
|
exports.ErrorWithCode = ErrorWithCode;
|