dce-reactkit 5.0.1 → 5.0.3
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 +338 -167
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/FakeProgressBar.d.ts +27 -0
- package/dist/cjs/types/components/SimpleDateChooser.d.ts +1 -0
- package/dist/cjs/types/components/SimpleMonthChooser.d.ts +23 -0
- package/dist/cjs/types/index.d.ts +3 -1
- package/dist/esm/index.js +337 -168
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/FakeProgressBar.d.ts +27 -0
- package/dist/esm/types/components/SimpleDateChooser.d.ts +1 -0
- package/dist/esm/types/components/SimpleMonthChooser.d.ts +23 -0
- package/dist/esm/types/index.d.ts +3 -1
- package/dist/index.d.ts +98 -49
- package/package.json +1 -1
- package/src/components/FakeProgressBar.tsx +274 -0
- package/src/components/SimpleDateChooser.tsx +31 -22
- package/src/components/SimpleMonthChooser.tsx +98 -0
- package/src/index.ts +4 -0
package/dist/esm/index.js
CHANGED
|
@@ -1763,11 +1763,11 @@ var View;
|
|
|
1763
1763
|
})(View || (View = {}));
|
|
1764
1764
|
/* ------------- Actions ------------ */
|
|
1765
1765
|
// Types of actions
|
|
1766
|
-
var ActionType$
|
|
1766
|
+
var ActionType$b;
|
|
1767
1767
|
(function (ActionType) {
|
|
1768
1768
|
// Fix invalid date so it is now in range
|
|
1769
1769
|
ActionType["FixInvalidDate"] = "FixInvalidDate";
|
|
1770
|
-
})(ActionType$
|
|
1770
|
+
})(ActionType$b || (ActionType$b = {}));
|
|
1771
1771
|
/**
|
|
1772
1772
|
* Reducer that executes actions
|
|
1773
1773
|
* @author Gardenia Liu
|
|
@@ -1775,9 +1775,9 @@ var ActionType$a;
|
|
|
1775
1775
|
* @param action action to execute
|
|
1776
1776
|
* @returns updated state
|
|
1777
1777
|
*/
|
|
1778
|
-
const reducer$
|
|
1778
|
+
const reducer$c = (state, action) => {
|
|
1779
1779
|
switch (action.type) {
|
|
1780
|
-
case ActionType$
|
|
1780
|
+
case ActionType$b.FixInvalidDate: {
|
|
1781
1781
|
return Object.assign(Object.assign({}, state), { view: View.DateChooser });
|
|
1782
1782
|
}
|
|
1783
1783
|
default: {
|
|
@@ -1904,7 +1904,7 @@ const SimpleDateChooser = (props) => {
|
|
|
1904
1904
|
/* -------------------------------- Setup ------------------------------- */
|
|
1905
1905
|
/*------------------------------------------------------------------------*/
|
|
1906
1906
|
/* -------------- Props ------------- */
|
|
1907
|
-
const { ariaLabel, name, dontAllowPast, dontAllowFuture, numMonthsToShow, onChange, month, day, year, isDisabled = false, } = props;
|
|
1907
|
+
const { ariaLabel, name, dontAllowPast, dontAllowFuture, numMonthsToShow, onChange, month, day, year, isDisabled = false, hideDay, } = props;
|
|
1908
1908
|
// Get choices
|
|
1909
1909
|
const choices = getChoices({
|
|
1910
1910
|
numMonthsToShow,
|
|
@@ -1926,7 +1926,7 @@ const SimpleDateChooser = (props) => {
|
|
|
1926
1926
|
: View.DateChooser),
|
|
1927
1927
|
};
|
|
1928
1928
|
// Initialize state
|
|
1929
|
-
const [state, dispatch] = useReducer(reducer$
|
|
1929
|
+
const [state, dispatch] = useReducer(reducer$c, initialState);
|
|
1930
1930
|
// Destructure common state
|
|
1931
1931
|
const { view, } = state;
|
|
1932
1932
|
/*------------------------------------------------------------------------*/
|
|
@@ -1949,7 +1949,7 @@ const SimpleDateChooser = (props) => {
|
|
|
1949
1949
|
onChange(today.month, today.day, today.year);
|
|
1950
1950
|
// Update state
|
|
1951
1951
|
dispatch({
|
|
1952
|
-
type: ActionType$
|
|
1952
|
+
type: ActionType$b.FixInvalidDate,
|
|
1953
1953
|
});
|
|
1954
1954
|
}
|
|
1955
1955
|
});
|
|
@@ -1990,20 +1990,21 @@ const SimpleDateChooser = (props) => {
|
|
|
1990
1990
|
// Change day, month, and year
|
|
1991
1991
|
onChange(choice.month, choice.days[0], choice.year);
|
|
1992
1992
|
}, disabled: isDisabled }, monthOptions),
|
|
1993
|
-
React__default.createElement("select", { "aria-label": `day for ${ariaLabel}`, className: "custom-select form-select d-inline-block", style: { width: 'auto' }, id: `SimpleDateChooser-${name}-day`, value: day, onChange: (e) => {
|
|
1993
|
+
!hideDay && (React__default.createElement("select", { "aria-label": `day for ${ariaLabel}`, className: "custom-select form-select d-inline-block", style: { width: 'auto' }, id: `SimpleDateChooser-${name}-day`, value: day, onChange: (e) => {
|
|
1994
1994
|
// Only change the day
|
|
1995
1995
|
onChange(month, Number.parseInt(e.target.value, 10), year);
|
|
1996
|
-
}, disabled: isDisabled }, dayOptions)));
|
|
1996
|
+
}, disabled: isDisabled }, dayOptions))));
|
|
1997
1997
|
}
|
|
1998
1998
|
/* --------- DateOutOfRange --------- */
|
|
1999
1999
|
if (view === View.InvalidDate) {
|
|
2000
2000
|
body = (React__default.createElement("div", { className: "SimpleDateChooser-inner-container d-inline-block" },
|
|
2001
2001
|
React__default.createElement("button", { type: "button", className: "btn btn-light", onClick: askToEditInvalidDate, "aria-label": `edit date for ${ariaLabel}` },
|
|
2002
2002
|
getMonthName(month).full,
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2003
|
+
!hideDay && (React__default.createElement(React__default.Fragment, null,
|
|
2004
|
+
' ',
|
|
2005
|
+
day,
|
|
2006
|
+
getOrdinal(day),
|
|
2007
|
+
",")),
|
|
2007
2008
|
' ',
|
|
2008
2009
|
year),
|
|
2009
2010
|
React__default.createElement("button", { type: "button", className: "btn btn-secondary", onClick: askToEditInvalidDate, "aria-label": `edit date for ${ariaLabel}` }, "Edit")));
|
|
@@ -2014,6 +2015,30 @@ const SimpleDateChooser = (props) => {
|
|
|
2014
2015
|
return (React__default.createElement("span", { className: "SimpleDateChooser-outer-container" }, body));
|
|
2015
2016
|
};
|
|
2016
2017
|
|
|
2018
|
+
/**
|
|
2019
|
+
* A very simple, lightweight month chooser
|
|
2020
|
+
* @author Gabe Abrams
|
|
2021
|
+
*/
|
|
2022
|
+
/*------------------------------------------------------------------------*/
|
|
2023
|
+
/* ------------------------------ Component ----------------------------- */
|
|
2024
|
+
/*------------------------------------------------------------------------*/
|
|
2025
|
+
const SimpleMonthChooser = (props) => {
|
|
2026
|
+
/*------------------------------------------------------------------------*/
|
|
2027
|
+
/* -------------------------------- Setup ------------------------------- */
|
|
2028
|
+
/*------------------------------------------------------------------------*/
|
|
2029
|
+
/* -------------- Props ------------- */
|
|
2030
|
+
const { ariaLabel, name, dontAllowPast, dontAllowFuture, numMonthsToShow, onChange, month, year, isDisabled, } = props;
|
|
2031
|
+
/*------------------------------------------------------------------------*/
|
|
2032
|
+
/* ------------------------------- Render ------------------------------- */
|
|
2033
|
+
/*------------------------------------------------------------------------*/
|
|
2034
|
+
/*----------------------------------------*/
|
|
2035
|
+
/* --------------- Main UI -------------- */
|
|
2036
|
+
/*----------------------------------------*/
|
|
2037
|
+
return (React__default.createElement(SimpleDateChooser, { ariaLabel: ariaLabel, name: name, month: month, day: 1, year: year, numMonthsToShow: numMonthsToShow, dontAllowPast: dontAllowPast, dontAllowFuture: dontAllowFuture, isDisabled: isDisabled, hideDay: true, onChange: (newMonth, newDay, newYear) => {
|
|
2038
|
+
onChange(newMonth, newYear);
|
|
2039
|
+
} }));
|
|
2040
|
+
};
|
|
2041
|
+
|
|
2017
2042
|
/**
|
|
2018
2043
|
* A very simple, lightweight time chooser
|
|
2019
2044
|
* @author Gardenia Liu
|
|
@@ -2496,27 +2521,27 @@ const PopPendingMark = (props) => {
|
|
|
2496
2521
|
*/
|
|
2497
2522
|
/* ------------- Actions ------------ */
|
|
2498
2523
|
// Types of actions
|
|
2499
|
-
var ActionType$
|
|
2524
|
+
var ActionType$a;
|
|
2500
2525
|
(function (ActionType) {
|
|
2501
2526
|
// Indicate that the text was recently copied
|
|
2502
2527
|
ActionType["IndicateRecentlyCopied"] = "indicate-recently-copied";
|
|
2503
2528
|
// Clear the status
|
|
2504
2529
|
ActionType["ClearRecentlyCopiedStatus"] = "clear-recently-copied-status";
|
|
2505
|
-
})(ActionType$
|
|
2530
|
+
})(ActionType$a || (ActionType$a = {}));
|
|
2506
2531
|
/**
|
|
2507
2532
|
* Reducer that executes actions
|
|
2508
2533
|
* @author Gabe Abrams
|
|
2509
2534
|
* @param state current state
|
|
2510
2535
|
* @param action action to execute
|
|
2511
2536
|
*/
|
|
2512
|
-
const reducer$
|
|
2537
|
+
const reducer$b = (state, action) => {
|
|
2513
2538
|
switch (action.type) {
|
|
2514
|
-
case ActionType$
|
|
2539
|
+
case ActionType$a.IndicateRecentlyCopied: {
|
|
2515
2540
|
return {
|
|
2516
2541
|
recentlyCopied: true,
|
|
2517
2542
|
};
|
|
2518
2543
|
}
|
|
2519
|
-
case ActionType$
|
|
2544
|
+
case ActionType$a.ClearRecentlyCopiedStatus: {
|
|
2520
2545
|
return {
|
|
2521
2546
|
recentlyCopied: false,
|
|
2522
2547
|
};
|
|
@@ -2542,7 +2567,7 @@ const CopiableBox = (props) => {
|
|
|
2542
2567
|
recentlyCopied: false,
|
|
2543
2568
|
};
|
|
2544
2569
|
// Initialize state
|
|
2545
|
-
const [state, dispatch] = useReducer(reducer$
|
|
2570
|
+
const [state, dispatch] = useReducer(reducer$b, initialState);
|
|
2546
2571
|
// Destructure common state
|
|
2547
2572
|
const { recentlyCopied, } = state;
|
|
2548
2573
|
/*------------------------------------------------------------------------*/
|
|
@@ -2562,13 +2587,13 @@ const CopiableBox = (props) => {
|
|
|
2562
2587
|
}
|
|
2563
2588
|
// Show copied notice
|
|
2564
2589
|
dispatch({
|
|
2565
|
-
type: ActionType$
|
|
2590
|
+
type: ActionType$a.IndicateRecentlyCopied,
|
|
2566
2591
|
});
|
|
2567
2592
|
// Wait a moment
|
|
2568
2593
|
yield waitMs(4000);
|
|
2569
2594
|
// Hide copied notice
|
|
2570
2595
|
dispatch({
|
|
2571
|
-
type: ActionType$
|
|
2596
|
+
type: ActionType$a.ClearRecentlyCopiedStatus,
|
|
2572
2597
|
});
|
|
2573
2598
|
});
|
|
2574
2599
|
/*------------------------------------------------------------------------*/
|
|
@@ -2624,20 +2649,20 @@ const CopiableBox = (props) => {
|
|
|
2624
2649
|
*/
|
|
2625
2650
|
/* ------------- Actions ------------ */
|
|
2626
2651
|
// Types of actions
|
|
2627
|
-
var ActionType$
|
|
2652
|
+
var ActionType$9;
|
|
2628
2653
|
(function (ActionType) {
|
|
2629
2654
|
// Toggle whether a child are being shown
|
|
2630
2655
|
ActionType["ToggleChild"] = "toggle-child";
|
|
2631
|
-
})(ActionType$
|
|
2656
|
+
})(ActionType$9 || (ActionType$9 = {}));
|
|
2632
2657
|
/**
|
|
2633
2658
|
* Reducer that executes actions
|
|
2634
2659
|
* @author Gabe Abrams
|
|
2635
2660
|
* @param state current state
|
|
2636
2661
|
* @param action action to execute
|
|
2637
2662
|
*/
|
|
2638
|
-
const reducer$
|
|
2663
|
+
const reducer$a = (state, action) => {
|
|
2639
2664
|
switch (action.type) {
|
|
2640
|
-
case ActionType$
|
|
2665
|
+
case ActionType$9.ToggleChild: {
|
|
2641
2666
|
return Object.assign(Object.assign({}, state), { childExpanded: Object.assign(Object.assign({}, state.childExpanded), { [String(action.id)]: !state.childExpanded[String(action.id)] }) });
|
|
2642
2667
|
}
|
|
2643
2668
|
default: {
|
|
@@ -2666,7 +2691,7 @@ const NestableItemList = (props) => {
|
|
|
2666
2691
|
childExpanded: initChildExpanded,
|
|
2667
2692
|
};
|
|
2668
2693
|
// Initialize state
|
|
2669
|
-
const [state, dispatch] = useReducer(reducer$
|
|
2694
|
+
const [state, dispatch] = useReducer(reducer$a, initialState);
|
|
2670
2695
|
// Destructure common state
|
|
2671
2696
|
const { childExpanded, } = state;
|
|
2672
2697
|
/*------------------------------------------------------------------------*/
|
|
@@ -2756,7 +2781,7 @@ const NestableItemList = (props) => {
|
|
|
2756
2781
|
backgroundColor: 'transparent',
|
|
2757
2782
|
}, type: "button", onClick: () => {
|
|
2758
2783
|
dispatch({
|
|
2759
|
-
type: ActionType$
|
|
2784
|
+
type: ActionType$9.ToggleChild,
|
|
2760
2785
|
id: item.id,
|
|
2761
2786
|
});
|
|
2762
2787
|
}, "aria-label": `${childExpanded[item.id] ? 'Hide' : 'Show'} items in ${item.name}` },
|
|
@@ -2891,7 +2916,7 @@ var SortType;
|
|
|
2891
2916
|
})(SortType || (SortType = {}));
|
|
2892
2917
|
/* ------------- Actions ------------ */
|
|
2893
2918
|
// Types of actions
|
|
2894
|
-
var ActionType$
|
|
2919
|
+
var ActionType$8;
|
|
2895
2920
|
(function (ActionType) {
|
|
2896
2921
|
// Toggle sort column param
|
|
2897
2922
|
ActionType["ToggleSortColumn"] = "toggle-sort-column";
|
|
@@ -2903,16 +2928,16 @@ var ActionType$7;
|
|
|
2903
2928
|
ActionType["ShowAllColumns"] = "show-all-columns";
|
|
2904
2929
|
// Hide all columns
|
|
2905
2930
|
ActionType["HideAllColumns"] = "hide-all-columns";
|
|
2906
|
-
})(ActionType$
|
|
2931
|
+
})(ActionType$8 || (ActionType$8 = {}));
|
|
2907
2932
|
/**
|
|
2908
2933
|
* Reducer that executes actions
|
|
2909
2934
|
* @author Gabe Abrams
|
|
2910
2935
|
* @param state current state
|
|
2911
2936
|
* @param action action to execute
|
|
2912
2937
|
*/
|
|
2913
|
-
const reducer$
|
|
2938
|
+
const reducer$9 = (state, action) => {
|
|
2914
2939
|
switch (action.type) {
|
|
2915
|
-
case ActionType$
|
|
2940
|
+
case ActionType$8.ToggleSortColumn: {
|
|
2916
2941
|
if (action.param !== state.sortColumnParam) {
|
|
2917
2942
|
// Different column param
|
|
2918
2943
|
return Object.assign(Object.assign({}, state), { sortColumnParam: action.param, sortType: SortType.Ascending });
|
|
@@ -2924,22 +2949,22 @@ const reducer$8 = (state, action) => {
|
|
|
2924
2949
|
// Stop sorting by column
|
|
2925
2950
|
return Object.assign(Object.assign({}, state), { sortColumnParam: undefined, sortType: SortType.Ascending });
|
|
2926
2951
|
}
|
|
2927
|
-
case ActionType$
|
|
2952
|
+
case ActionType$8.UpdateColumnVisibility: {
|
|
2928
2953
|
const { columnVisibilityMap } = state;
|
|
2929
2954
|
columnVisibilityMap[action.param] = action.visible;
|
|
2930
2955
|
return Object.assign(Object.assign({}, state), { columnVisibilityMap });
|
|
2931
2956
|
}
|
|
2932
|
-
case ActionType$
|
|
2957
|
+
case ActionType$8.ToggleColVisCusModalVisibility: {
|
|
2933
2958
|
return Object.assign(Object.assign({}, state), { columnVisibilityCustomizationModalVisible: !state.columnVisibilityCustomizationModalVisible });
|
|
2934
2959
|
}
|
|
2935
|
-
case ActionType$
|
|
2960
|
+
case ActionType$8.ShowAllColumns: {
|
|
2936
2961
|
const { columnVisibilityMap } = state;
|
|
2937
2962
|
Object.keys(columnVisibilityMap).forEach((param) => {
|
|
2938
2963
|
columnVisibilityMap[param] = true;
|
|
2939
2964
|
});
|
|
2940
2965
|
return Object.assign(Object.assign({}, state), { columnVisibilityMap });
|
|
2941
2966
|
}
|
|
2942
|
-
case ActionType$
|
|
2967
|
+
case ActionType$8.HideAllColumns: {
|
|
2943
2968
|
const { columnVisibilityMap } = state;
|
|
2944
2969
|
Object.keys(columnVisibilityMap).forEach((param) => {
|
|
2945
2970
|
columnVisibilityMap[param] = false;
|
|
@@ -2986,7 +3011,7 @@ const IntelliTable = (props) => {
|
|
|
2986
3011
|
columnVisibilityCustomizationModalVisible: false,
|
|
2987
3012
|
};
|
|
2988
3013
|
// Initialize state
|
|
2989
|
-
const [state, dispatch] = useReducer(reducer$
|
|
3014
|
+
const [state, dispatch] = useReducer(reducer$9, initialState);
|
|
2990
3015
|
// Destructure common state
|
|
2991
3016
|
const { sortColumnParam, sortType, columnVisibilityMap, columnVisibilityCustomizationModalVisible, } = state;
|
|
2992
3017
|
/*------------------------------------------------------------------------*/
|
|
@@ -3009,13 +3034,13 @@ const IntelliTable = (props) => {
|
|
|
3009
3034
|
return alert('Choose at least one column', 'To continue, you have to choose at least one column to show');
|
|
3010
3035
|
}
|
|
3011
3036
|
dispatch({
|
|
3012
|
-
type: ActionType$
|
|
3037
|
+
type: ActionType$8.ToggleColVisCusModalVisibility,
|
|
3013
3038
|
});
|
|
3014
3039
|
}, okayVariant: Variant$1.Light },
|
|
3015
3040
|
columns.map((column) => {
|
|
3016
3041
|
return (React__default.createElement(CheckboxButton, { key: column.param, id: `IntelliTable-${id}-toggle-visibility-${column.param}`, className: "mb-2", text: column.title, onChanged: (checked) => {
|
|
3017
3042
|
dispatch({
|
|
3018
|
-
type: ActionType$
|
|
3043
|
+
type: ActionType$8.UpdateColumnVisibility,
|
|
3019
3044
|
param: column.param,
|
|
3020
3045
|
visible: checked,
|
|
3021
3046
|
});
|
|
@@ -3024,12 +3049,12 @@ const IntelliTable = (props) => {
|
|
|
3024
3049
|
React__default.createElement("div", { className: "mt-3" }, "Or you can:"),
|
|
3025
3050
|
React__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: () => {
|
|
3026
3051
|
dispatch({
|
|
3027
|
-
type: ActionType$
|
|
3052
|
+
type: ActionType$8.ShowAllColumns,
|
|
3028
3053
|
});
|
|
3029
3054
|
} }, "Select All"),
|
|
3030
3055
|
React__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: () => {
|
|
3031
3056
|
dispatch({
|
|
3032
|
-
type: ActionType$
|
|
3057
|
+
type: ActionType$8.HideAllColumns,
|
|
3033
3058
|
});
|
|
3034
3059
|
} }, "Deselect All")));
|
|
3035
3060
|
}
|
|
@@ -3080,7 +3105,7 @@ const IntelliTable = (props) => {
|
|
|
3080
3105
|
React__default.createElement("div", null,
|
|
3081
3106
|
React__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: () => {
|
|
3082
3107
|
dispatch({
|
|
3083
|
-
type: ActionType$
|
|
3108
|
+
type: ActionType$8.ToggleSortColumn,
|
|
3084
3109
|
param: column.param,
|
|
3085
3110
|
});
|
|
3086
3111
|
} },
|
|
@@ -3269,7 +3294,7 @@ const IntelliTable = (props) => {
|
|
|
3269
3294
|
React__default.createElement(CSVDownloadButton, { "aria-label": `download data as csv for ${title}`, id: `IntelliTable-${id}-download-as-csv`, filename: filename, csv: csv }),
|
|
3270
3295
|
React__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: () => {
|
|
3271
3296
|
dispatch({
|
|
3272
|
-
type: ActionType$
|
|
3297
|
+
type: ActionType$8.ToggleColVisCusModalVisibility,
|
|
3273
3298
|
});
|
|
3274
3299
|
} },
|
|
3275
3300
|
"Show/Hide Cols",
|
|
@@ -3692,7 +3717,7 @@ const genHumanReadableName = (machineReadableName) => {
|
|
|
3692
3717
|
};
|
|
3693
3718
|
/* ------------- Actions ------------ */
|
|
3694
3719
|
// Types of actions
|
|
3695
|
-
var ActionType$
|
|
3720
|
+
var ActionType$7;
|
|
3696
3721
|
(function (ActionType) {
|
|
3697
3722
|
// Show the loading bar
|
|
3698
3723
|
ActionType["StartLoading"] = "start-loading";
|
|
@@ -3722,57 +3747,57 @@ var ActionType$6;
|
|
|
3722
3747
|
ActionType["SetPageNumber"] = "set-page-number";
|
|
3723
3748
|
// Reset user made filter change indicator
|
|
3724
3749
|
ActionType["ResetUserMadeFilterChange"] = "reset-user-made-filter-change";
|
|
3725
|
-
})(ActionType$
|
|
3750
|
+
})(ActionType$7 || (ActionType$7 = {}));
|
|
3726
3751
|
/**
|
|
3727
3752
|
* Reducer that executes actions
|
|
3728
3753
|
* @author Gabe Abrams
|
|
3729
3754
|
* @param state current state
|
|
3730
3755
|
* @param action action to execute
|
|
3731
3756
|
*/
|
|
3732
|
-
const reducer$
|
|
3757
|
+
const reducer$8 = (state, action) => {
|
|
3733
3758
|
switch (action.type) {
|
|
3734
|
-
case ActionType$
|
|
3759
|
+
case ActionType$7.StartLoading: {
|
|
3735
3760
|
return Object.assign(Object.assign({}, state), { loading: true });
|
|
3736
3761
|
}
|
|
3737
|
-
case ActionType$
|
|
3762
|
+
case ActionType$7.FinishLoading: {
|
|
3738
3763
|
return Object.assign(Object.assign({}, state), { loading: false, logs: action.logs });
|
|
3739
3764
|
}
|
|
3740
|
-
case ActionType$
|
|
3765
|
+
case ActionType$7.ToggleFilterDrawer: {
|
|
3741
3766
|
return Object.assign(Object.assign({}, state), { expandedFilterDrawer: (state.expandedFilterDrawer === action.filterDrawer
|
|
3742
3767
|
? undefined // hide
|
|
3743
3768
|
: action.filterDrawer) });
|
|
3744
3769
|
}
|
|
3745
|
-
case ActionType$
|
|
3770
|
+
case ActionType$7.HideFilterDrawer: {
|
|
3746
3771
|
return Object.assign(Object.assign({}, state), { expandedFilterDrawer: undefined });
|
|
3747
3772
|
}
|
|
3748
|
-
case ActionType$
|
|
3773
|
+
case ActionType$7.ResetFilters: {
|
|
3749
3774
|
return Object.assign(Object.assign({}, state), { pendingDateFilterState: action.initDateFilterState, pendingContextFilterState: action.initContextFilterState, pendingTagFilterState: action.initTagFilterState, pendingActionErrorFilterState: action.initActionErrorFilterState, pendingAdvancedFilterState: action.initAdvancedFilterState, pageNumber: 1 });
|
|
3750
3775
|
}
|
|
3751
|
-
case ActionType$
|
|
3776
|
+
case ActionType$7.UpdateDateFilterState: {
|
|
3752
3777
|
return Object.assign(Object.assign({}, state), { pendingDateFilterState: action.dateFilterState, userMadeFilterChange: true });
|
|
3753
3778
|
}
|
|
3754
|
-
case ActionType$
|
|
3779
|
+
case ActionType$7.UpdateContextFilterState: {
|
|
3755
3780
|
return Object.assign(Object.assign({}, state), { pendingContextFilterState: action.contextFilterState, userMadeFilterChange: true });
|
|
3756
3781
|
}
|
|
3757
|
-
case ActionType$
|
|
3782
|
+
case ActionType$7.UpdateTagFilterState: {
|
|
3758
3783
|
return Object.assign(Object.assign({}, state), { pendingTagFilterState: action.tagFilterState, userMadeFilterChange: true });
|
|
3759
3784
|
}
|
|
3760
|
-
case ActionType$
|
|
3785
|
+
case ActionType$7.UpdateActionErrorFilterState: {
|
|
3761
3786
|
return Object.assign(Object.assign({}, state), { pendingActionErrorFilterState: action.actionErrorFilterState, userMadeFilterChange: true });
|
|
3762
3787
|
}
|
|
3763
|
-
case ActionType$
|
|
3788
|
+
case ActionType$7.UpdateAdvancedFilterState: {
|
|
3764
3789
|
return Object.assign(Object.assign({}, state), { pendingAdvancedFilterState: action.advancedFilterState, userMadeFilterChange: true });
|
|
3765
3790
|
}
|
|
3766
|
-
case ActionType$
|
|
3791
|
+
case ActionType$7.SetHasAnotherPage: {
|
|
3767
3792
|
return Object.assign(Object.assign({}, state), { hasAnotherPage: action.hasAnotherPage });
|
|
3768
3793
|
}
|
|
3769
|
-
case ActionType$
|
|
3794
|
+
case ActionType$7.SetNumPages: {
|
|
3770
3795
|
return Object.assign(Object.assign({}, state), { numPages: action.numPages });
|
|
3771
3796
|
}
|
|
3772
|
-
case ActionType$
|
|
3797
|
+
case ActionType$7.SetPageNumber: {
|
|
3773
3798
|
return Object.assign(Object.assign({}, state), { pageNumber: action.pageNumber });
|
|
3774
3799
|
}
|
|
3775
|
-
case ActionType$
|
|
3800
|
+
case ActionType$7.ResetUserMadeFilterChange: {
|
|
3776
3801
|
return Object.assign(Object.assign({}, state), { userMadeFilterChange: false });
|
|
3777
3802
|
}
|
|
3778
3803
|
default: {
|
|
@@ -3905,7 +3930,7 @@ const LogReviewer = (props) => {
|
|
|
3905
3930
|
userMadeFilterChange: false,
|
|
3906
3931
|
};
|
|
3907
3932
|
// Initialize state
|
|
3908
|
-
const [state, dispatch] = useReducer(reducer$
|
|
3933
|
+
const [state, dispatch] = useReducer(reducer$8, initialState);
|
|
3909
3934
|
// Destructure common state
|
|
3910
3935
|
const { loading, logs, expandedFilterDrawer, pendingDateFilterState, pendingContextFilterState, pendingTagFilterState, pendingActionErrorFilterState, pendingAdvancedFilterState, pageNumber, numPages, userMadeFilterChange, } = state;
|
|
3911
3936
|
/* -------------- Refs -------------- */
|
|
@@ -3931,7 +3956,7 @@ const LogReviewer = (props) => {
|
|
|
3931
3956
|
const fetchLogs = (opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
3932
3957
|
const { filters, pageNum, filtersChanged, } = opts;
|
|
3933
3958
|
dispatch({
|
|
3934
|
-
type: ActionType$
|
|
3959
|
+
type: ActionType$7.StartLoading,
|
|
3935
3960
|
});
|
|
3936
3961
|
try {
|
|
3937
3962
|
// Send filters to the server
|
|
@@ -3948,23 +3973,23 @@ const LogReviewer = (props) => {
|
|
|
3948
3973
|
});
|
|
3949
3974
|
fetchedLogs = fetchedLogs.concat(response.items);
|
|
3950
3975
|
dispatch({
|
|
3951
|
-
type: ActionType$
|
|
3976
|
+
type: ActionType$7.SetHasAnotherPage,
|
|
3952
3977
|
hasAnotherPage: response.hasAnotherPage,
|
|
3953
3978
|
});
|
|
3954
3979
|
if (filtersChanged && response.numPages !== undefined) {
|
|
3955
3980
|
dispatch({
|
|
3956
|
-
type: ActionType$
|
|
3981
|
+
type: ActionType$7.SetNumPages,
|
|
3957
3982
|
numPages: response.numPages,
|
|
3958
3983
|
});
|
|
3959
3984
|
}
|
|
3960
3985
|
// Update logs in state
|
|
3961
3986
|
dispatch({
|
|
3962
|
-
type: ActionType$
|
|
3987
|
+
type: ActionType$7.FinishLoading,
|
|
3963
3988
|
logs: fetchedLogs,
|
|
3964
3989
|
});
|
|
3965
3990
|
// Update page number
|
|
3966
3991
|
dispatch({
|
|
3967
|
-
type: ActionType$
|
|
3992
|
+
type: ActionType$7.SetPageNumber,
|
|
3968
3993
|
pageNumber: pageNum,
|
|
3969
3994
|
});
|
|
3970
3995
|
}
|
|
@@ -4023,7 +4048,7 @@ const LogReviewer = (props) => {
|
|
|
4023
4048
|
React__default.createElement("div", { className: "LogReviewer-filter-toggle-buttons alert alert-secondary p-2 m-0" },
|
|
4024
4049
|
React__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: () => {
|
|
4025
4050
|
dispatch({
|
|
4026
|
-
type: ActionType$
|
|
4051
|
+
type: ActionType$7.ToggleFilterDrawer,
|
|
4027
4052
|
filterDrawer: FilterDrawer.Date,
|
|
4028
4053
|
});
|
|
4029
4054
|
} },
|
|
@@ -4031,7 +4056,7 @@ const LogReviewer = (props) => {
|
|
|
4031
4056
|
"Date"),
|
|
4032
4057
|
React__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: () => {
|
|
4033
4058
|
dispatch({
|
|
4034
|
-
type: ActionType$
|
|
4059
|
+
type: ActionType$7.ToggleFilterDrawer,
|
|
4035
4060
|
filterDrawer: FilterDrawer.Context,
|
|
4036
4061
|
});
|
|
4037
4062
|
} },
|
|
@@ -4039,7 +4064,7 @@ const LogReviewer = (props) => {
|
|
|
4039
4064
|
"Context"),
|
|
4040
4065
|
(LogMetadata.Tag && Object.keys(LogMetadata.Tag).length > 0) && (React__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: () => {
|
|
4041
4066
|
dispatch({
|
|
4042
|
-
type: ActionType$
|
|
4067
|
+
type: ActionType$7.ToggleFilterDrawer,
|
|
4043
4068
|
filterDrawer: FilterDrawer.Tag,
|
|
4044
4069
|
});
|
|
4045
4070
|
} },
|
|
@@ -4047,7 +4072,7 @@ const LogReviewer = (props) => {
|
|
|
4047
4072
|
"Tag")),
|
|
4048
4073
|
React__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: () => {
|
|
4049
4074
|
dispatch({
|
|
4050
|
-
type: ActionType$
|
|
4075
|
+
type: ActionType$7.ToggleFilterDrawer,
|
|
4051
4076
|
filterDrawer: FilterDrawer.Action,
|
|
4052
4077
|
});
|
|
4053
4078
|
} },
|
|
@@ -4055,7 +4080,7 @@ const LogReviewer = (props) => {
|
|
|
4055
4080
|
"Action"),
|
|
4056
4081
|
React__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: () => {
|
|
4057
4082
|
dispatch({
|
|
4058
|
-
type: ActionType$
|
|
4083
|
+
type: ActionType$7.ToggleFilterDrawer,
|
|
4059
4084
|
filterDrawer: FilterDrawer.Advanced,
|
|
4060
4085
|
});
|
|
4061
4086
|
} },
|
|
@@ -4084,7 +4109,7 @@ const LogReviewer = (props) => {
|
|
|
4084
4109
|
filtersChanged: true,
|
|
4085
4110
|
});
|
|
4086
4111
|
dispatch({
|
|
4087
|
-
type: ActionType$
|
|
4112
|
+
type: ActionType$7.ResetFilters,
|
|
4088
4113
|
initActionErrorFilterState,
|
|
4089
4114
|
initAdvancedFilterState,
|
|
4090
4115
|
initContextFilterState,
|
|
@@ -4092,7 +4117,7 @@ const LogReviewer = (props) => {
|
|
|
4092
4117
|
initTagFilterState,
|
|
4093
4118
|
});
|
|
4094
4119
|
dispatch({
|
|
4095
|
-
type: ActionType$
|
|
4120
|
+
type: ActionType$7.HideFilterDrawer,
|
|
4096
4121
|
});
|
|
4097
4122
|
} },
|
|
4098
4123
|
React__default.createElement(FontAwesomeIcon, { icon: faTimes }),
|
|
@@ -4100,11 +4125,11 @@ const LogReviewer = (props) => {
|
|
|
4100
4125
|
"Reset"),
|
|
4101
4126
|
userMadeFilterChange && (React__default.createElement("button", { type: "button", id: "LogReviewer-submit-filters-button", className: "btn btn-primary ms-2", "aria-label": "submit filters", onClick: () => {
|
|
4102
4127
|
dispatch({
|
|
4103
|
-
type: ActionType$
|
|
4128
|
+
type: ActionType$7.HideFilterDrawer,
|
|
4104
4129
|
});
|
|
4105
4130
|
// Reset user made filter change indicator
|
|
4106
4131
|
dispatch({
|
|
4107
|
-
type: ActionType$
|
|
4132
|
+
type: ActionType$7.ResetUserMadeFilterChange,
|
|
4108
4133
|
});
|
|
4109
4134
|
// Save active filters
|
|
4110
4135
|
// Deep clone the pending filter states to avoid any reference issues
|
|
@@ -4139,7 +4164,7 @@ const LogReviewer = (props) => {
|
|
|
4139
4164
|
React__default.createElement(SimpleDateChooser, { ariaLabel: "filter start date", name: "filter-start-date", year: pendingDateFilterState.startDate.year, month: pendingDateFilterState.startDate.month, day: pendingDateFilterState.startDate.day, dontAllowFuture: true, numMonthsToShow: 36, onChange: (month, day, year) => {
|
|
4140
4165
|
const newDateFilterState = Object.assign(Object.assign({}, pendingDateFilterState), { startDate: { month, day, year } });
|
|
4141
4166
|
dispatch({
|
|
4142
|
-
type: ActionType$
|
|
4167
|
+
type: ActionType$7.UpdateDateFilterState,
|
|
4143
4168
|
dateFilterState: newDateFilterState,
|
|
4144
4169
|
});
|
|
4145
4170
|
} }),
|
|
@@ -4157,7 +4182,7 @@ const LogReviewer = (props) => {
|
|
|
4157
4182
|
}
|
|
4158
4183
|
const newDateFilterState = Object.assign(Object.assign({}, pendingDateFilterState), { endDate: { month, day, year } });
|
|
4159
4184
|
dispatch({
|
|
4160
|
-
type: ActionType$
|
|
4185
|
+
type: ActionType$7.UpdateDateFilterState,
|
|
4161
4186
|
dateFilterState: newDateFilterState,
|
|
4162
4187
|
});
|
|
4163
4188
|
} })));
|
|
@@ -4250,7 +4275,7 @@ const LogReviewer = (props) => {
|
|
|
4250
4275
|
});
|
|
4251
4276
|
// Update state
|
|
4252
4277
|
dispatch({
|
|
4253
|
-
type: ActionType$
|
|
4278
|
+
type: ActionType$7.UpdateContextFilterState,
|
|
4254
4279
|
contextFilterState: newContextFilterState,
|
|
4255
4280
|
});
|
|
4256
4281
|
} }));
|
|
@@ -4265,7 +4290,7 @@ const LogReviewer = (props) => {
|
|
|
4265
4290
|
return (React__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: pendingTagFilterState[tag], onChanged: (checked) => {
|
|
4266
4291
|
const newTagFilterState = Object.assign(Object.assign({}, pendingTagFilterState), { [tag]: checked });
|
|
4267
4292
|
dispatch({
|
|
4268
|
-
type: ActionType$
|
|
4293
|
+
type: ActionType$7.UpdateTagFilterState,
|
|
4269
4294
|
tagFilterState: newTagFilterState,
|
|
4270
4295
|
});
|
|
4271
4296
|
}, checkedVariant: Variant$1.Light, uncheckedVariant: Variant$1.Light }));
|
|
@@ -4278,21 +4303,21 @@ const LogReviewer = (props) => {
|
|
|
4278
4303
|
React__default.createElement(RadioButton, { id: "LogReviewer-type-all", text: "All Logs", onSelected: () => {
|
|
4279
4304
|
const newActionErrorFilterState = Object.assign(Object.assign({}, pendingActionErrorFilterState), { type: undefined });
|
|
4280
4305
|
dispatch({
|
|
4281
|
-
type: ActionType$
|
|
4306
|
+
type: ActionType$7.UpdateActionErrorFilterState,
|
|
4282
4307
|
actionErrorFilterState: newActionErrorFilterState,
|
|
4283
4308
|
});
|
|
4284
4309
|
}, ariaLabel: "show logs of all types", selected: pendingActionErrorFilterState.type === undefined, unselectedVariant: Variant$1.Light }),
|
|
4285
4310
|
React__default.createElement(RadioButton, { id: "LogReviewer-type-action-only", text: "Action Logs Only", onSelected: () => {
|
|
4286
4311
|
const newActionErrorFilterState = Object.assign(Object.assign({}, pendingActionErrorFilterState), { type: LogType.Action });
|
|
4287
4312
|
dispatch({
|
|
4288
|
-
type: ActionType$
|
|
4313
|
+
type: ActionType$7.UpdateActionErrorFilterState,
|
|
4289
4314
|
actionErrorFilterState: newActionErrorFilterState,
|
|
4290
4315
|
});
|
|
4291
4316
|
}, ariaLabel: "only show action logs", selected: pendingActionErrorFilterState.type === LogType.Action, unselectedVariant: Variant$1.Light }),
|
|
4292
4317
|
React__default.createElement(RadioButton, { id: "LogReviewer-type-error-only", text: "Action Error Only", onSelected: () => {
|
|
4293
4318
|
const newActionErrorFilterState = Object.assign(Object.assign({}, pendingActionErrorFilterState), { type: LogType.Error });
|
|
4294
4319
|
dispatch({
|
|
4295
|
-
type: ActionType$
|
|
4320
|
+
type: ActionType$7.UpdateActionErrorFilterState,
|
|
4296
4321
|
actionErrorFilterState: newActionErrorFilterState,
|
|
4297
4322
|
});
|
|
4298
4323
|
}, ariaLabel: "only show error logs", selected: pendingActionErrorFilterState.type === LogType.Error, noMarginOnRight: true, selectedVariant: Variant$1.Light, unselectedVariant: Variant$1.Light })),
|
|
@@ -4304,7 +4329,7 @@ const LogReviewer = (props) => {
|
|
|
4304
4329
|
return (React__default.createElement(CheckboxButton, { key: action, id: `LogReviewer-action-${action}-checkbox`, text: description, ariaLabel: `include logs with action type "${description}" in results`, noMarginOnRight: true, checked: pendingActionErrorFilterState.action[action], onChanged: (checked) => {
|
|
4305
4330
|
const newActionErrorFilterState = Object.assign(Object.assign({}, pendingActionErrorFilterState), { action: Object.assign(Object.assign({}, pendingActionErrorFilterState.action), { [action]: checked }) });
|
|
4306
4331
|
dispatch({
|
|
4307
|
-
type: ActionType$
|
|
4332
|
+
type: ActionType$7.UpdateActionErrorFilterState,
|
|
4308
4333
|
actionErrorFilterState: newActionErrorFilterState,
|
|
4309
4334
|
});
|
|
4310
4335
|
}, checkedVariant: Variant$1.Light, uncheckedVariant: Variant$1.Light }));
|
|
@@ -4315,7 +4340,7 @@ const LogReviewer = (props) => {
|
|
|
4315
4340
|
return (React__default.createElement(CheckboxButton, { key: target, id: `LogReviewer-target-${target}-checkbox`, text: description, ariaLabel: `include logs with target "${description}" in results`, checked: pendingActionErrorFilterState.target[target], noMarginOnRight: true, onChanged: (checked) => {
|
|
4316
4341
|
const newActionErrorFilterState = Object.assign(Object.assign({}, pendingActionErrorFilterState), { target: Object.assign(Object.assign({}, pendingActionErrorFilterState.target), { [target]: checked }) });
|
|
4317
4342
|
dispatch({
|
|
4318
|
-
type: ActionType$
|
|
4343
|
+
type: ActionType$7.UpdateActionErrorFilterState,
|
|
4319
4344
|
actionErrorFilterState: newActionErrorFilterState,
|
|
4320
4345
|
});
|
|
4321
4346
|
}, checkedVariant: Variant$1.Light, uncheckedVariant: Variant$1.Light }));
|
|
@@ -4327,7 +4352,7 @@ const LogReviewer = (props) => {
|
|
|
4327
4352
|
React__default.createElement("input", { type: "text", className: "form-control", "aria-label": "query for error message", value: pendingActionErrorFilterState.errorMessage, placeholder: "e.g. undefined is not a function", onChange: (e) => {
|
|
4328
4353
|
const newActionErrorFilterState = Object.assign(Object.assign({}, pendingActionErrorFilterState), { errorMessage: e.target.value });
|
|
4329
4354
|
dispatch({
|
|
4330
|
-
type: ActionType$
|
|
4355
|
+
type: ActionType$7.UpdateActionErrorFilterState,
|
|
4331
4356
|
actionErrorFilterState: newActionErrorFilterState,
|
|
4332
4357
|
});
|
|
4333
4358
|
} })),
|
|
@@ -4338,7 +4363,7 @@ const LogReviewer = (props) => {
|
|
|
4338
4363
|
.trim()
|
|
4339
4364
|
.toUpperCase()) });
|
|
4340
4365
|
dispatch({
|
|
4341
|
-
type: ActionType$
|
|
4366
|
+
type: ActionType$7.UpdateActionErrorFilterState,
|
|
4342
4367
|
actionErrorFilterState: newActionErrorFilterState,
|
|
4343
4368
|
});
|
|
4344
4369
|
} }))))));
|
|
@@ -4352,7 +4377,7 @@ const LogReviewer = (props) => {
|
|
|
4352
4377
|
React__default.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user first name", value: pendingAdvancedFilterState.userFirstName, placeholder: "e.g. Divardo", onChange: (e) => {
|
|
4353
4378
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { userFirstName: e.target.value });
|
|
4354
4379
|
dispatch({
|
|
4355
|
-
type: ActionType$
|
|
4380
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4356
4381
|
advancedFilterState: newAdvancedFilterState,
|
|
4357
4382
|
});
|
|
4358
4383
|
} })),
|
|
@@ -4361,7 +4386,7 @@ const LogReviewer = (props) => {
|
|
|
4361
4386
|
React__default.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user last name", value: pendingAdvancedFilterState.userLastName, placeholder: "e.g. Calicci", onChange: (e) => {
|
|
4362
4387
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { userLastName: e.target.value });
|
|
4363
4388
|
dispatch({
|
|
4364
|
-
type: ActionType$
|
|
4389
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4365
4390
|
advancedFilterState: newAdvancedFilterState,
|
|
4366
4391
|
});
|
|
4367
4392
|
} })),
|
|
@@ -4371,7 +4396,7 @@ const LogReviewer = (props) => {
|
|
|
4371
4396
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { userEmail: ((e.target.value)
|
|
4372
4397
|
.trim()) });
|
|
4373
4398
|
dispatch({
|
|
4374
|
-
type: ActionType$
|
|
4399
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4375
4400
|
advancedFilterState: newAdvancedFilterState,
|
|
4376
4401
|
});
|
|
4377
4402
|
} })),
|
|
@@ -4384,7 +4409,7 @@ const LogReviewer = (props) => {
|
|
|
4384
4409
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { userId: ((e.target.value)
|
|
4385
4410
|
.trim()) });
|
|
4386
4411
|
dispatch({
|
|
4387
|
-
type: ActionType$
|
|
4412
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4388
4413
|
advancedFilterState: newAdvancedFilterState,
|
|
4389
4414
|
});
|
|
4390
4415
|
}
|
|
@@ -4393,21 +4418,21 @@ const LogReviewer = (props) => {
|
|
|
4393
4418
|
React__default.createElement(CheckboxButton, { text: "Students", onChanged: (checked) => {
|
|
4394
4419
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { includeLearners: checked });
|
|
4395
4420
|
dispatch({
|
|
4396
|
-
type: ActionType$
|
|
4421
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4397
4422
|
advancedFilterState: newAdvancedFilterState,
|
|
4398
4423
|
});
|
|
4399
4424
|
}, checked: pendingAdvancedFilterState.includeLearners, ariaLabel: "show logs from students", checkedVariant: Variant$1.Light, uncheckedVariant: Variant$1.Light }),
|
|
4400
4425
|
React__default.createElement(CheckboxButton, { text: "Teaching Team Members", onChanged: (checked) => {
|
|
4401
4426
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { includeTTMs: checked });
|
|
4402
4427
|
dispatch({
|
|
4403
|
-
type: ActionType$
|
|
4428
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4404
4429
|
advancedFilterState: newAdvancedFilterState,
|
|
4405
4430
|
});
|
|
4406
4431
|
}, checked: pendingAdvancedFilterState.includeTTMs, ariaLabel: "show logs from teaching team members", checkedVariant: Variant$1.Light, uncheckedVariant: Variant$1.Light }),
|
|
4407
4432
|
React__default.createElement(CheckboxButton, { text: "Admins", onChanged: (checked) => {
|
|
4408
4433
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { includeAdmins: checked });
|
|
4409
4434
|
dispatch({
|
|
4410
|
-
type: ActionType$
|
|
4435
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4411
4436
|
advancedFilterState: newAdvancedFilterState,
|
|
4412
4437
|
});
|
|
4413
4438
|
}, checked: pendingAdvancedFilterState.includeAdmins, ariaLabel: "show logs from admins", checkedVariant: Variant$1.Light, uncheckedVariant: Variant$1.Light }))),
|
|
@@ -4417,7 +4442,7 @@ const LogReviewer = (props) => {
|
|
|
4417
4442
|
React__default.createElement("input", { type: "text", className: "form-control", "aria-label": "query for course name", value: pendingAdvancedFilterState.courseName, placeholder: "e.g. GLC 200", onChange: (e) => {
|
|
4418
4443
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { courseName: e.target.value });
|
|
4419
4444
|
dispatch({
|
|
4420
|
-
type: ActionType$
|
|
4445
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4421
4446
|
advancedFilterState: newAdvancedFilterState,
|
|
4422
4447
|
});
|
|
4423
4448
|
} })),
|
|
@@ -4430,7 +4455,7 @@ const LogReviewer = (props) => {
|
|
|
4430
4455
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { courseId: ((e.target.value)
|
|
4431
4456
|
.trim()) });
|
|
4432
4457
|
dispatch({
|
|
4433
|
-
type: ActionType$
|
|
4458
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4434
4459
|
advancedFilterState: newAdvancedFilterState,
|
|
4435
4460
|
});
|
|
4436
4461
|
}
|
|
@@ -4440,21 +4465,21 @@ const LogReviewer = (props) => {
|
|
|
4440
4465
|
React__default.createElement(RadioButton, { text: "All Devices", ariaLabel: "show logs from all devices", selected: pendingAdvancedFilterState.isMobile === undefined, onSelected: () => {
|
|
4441
4466
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { isMobile: undefined });
|
|
4442
4467
|
dispatch({
|
|
4443
|
-
type: ActionType$
|
|
4468
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4444
4469
|
advancedFilterState: newAdvancedFilterState,
|
|
4445
4470
|
});
|
|
4446
4471
|
}, selectedVariant: Variant$1.Light, unselectedVariant: Variant$1.Light }),
|
|
4447
4472
|
React__default.createElement(RadioButton, { text: "Mobile Only", ariaLabel: "show logs from mobile devices", selected: pendingAdvancedFilterState.isMobile === true, onSelected: () => {
|
|
4448
4473
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { isMobile: true });
|
|
4449
4474
|
dispatch({
|
|
4450
|
-
type: ActionType$
|
|
4475
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4451
4476
|
advancedFilterState: newAdvancedFilterState,
|
|
4452
4477
|
});
|
|
4453
4478
|
}, selectedVariant: Variant$1.Light, unselectedVariant: Variant$1.Light }),
|
|
4454
4479
|
React__default.createElement(RadioButton, { text: "Desktop Only", ariaLabel: "show logs from desktop devices", selected: pendingAdvancedFilterState.isMobile === false, onSelected: () => {
|
|
4455
4480
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { isMobile: false });
|
|
4456
4481
|
dispatch({
|
|
4457
|
-
type: ActionType$
|
|
4482
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4458
4483
|
advancedFilterState: newAdvancedFilterState,
|
|
4459
4484
|
});
|
|
4460
4485
|
}, noMarginOnRight: true, selectedVariant: Variant$1.Light, unselectedVariant: Variant$1.Light }))),
|
|
@@ -4463,21 +4488,21 @@ const LogReviewer = (props) => {
|
|
|
4463
4488
|
React__default.createElement(RadioButton, { text: "Both", ariaLabel: "show logs from all sources", selected: pendingAdvancedFilterState.source === undefined, onSelected: () => {
|
|
4464
4489
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { source: undefined });
|
|
4465
4490
|
dispatch({
|
|
4466
|
-
type: ActionType$
|
|
4491
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4467
4492
|
advancedFilterState: newAdvancedFilterState,
|
|
4468
4493
|
});
|
|
4469
4494
|
}, selectedVariant: Variant$1.Light, unselectedVariant: Variant$1.Light }),
|
|
4470
4495
|
React__default.createElement(RadioButton, { text: "Client Only", ariaLabel: "show logs from client source", selected: pendingAdvancedFilterState.source === LogSource.Client, onSelected: () => {
|
|
4471
4496
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { source: LogSource.Client });
|
|
4472
4497
|
dispatch({
|
|
4473
|
-
type: ActionType$
|
|
4498
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4474
4499
|
advancedFilterState: newAdvancedFilterState,
|
|
4475
4500
|
});
|
|
4476
4501
|
}, selectedVariant: Variant$1.Light, unselectedVariant: Variant$1.Light }),
|
|
4477
4502
|
React__default.createElement(RadioButton, { text: "Server Only", ariaLabel: "show logs from server source", selected: pendingAdvancedFilterState.source === LogSource.Server, onSelected: () => {
|
|
4478
4503
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { source: LogSource.Server });
|
|
4479
4504
|
dispatch({
|
|
4480
|
-
type: ActionType$
|
|
4505
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4481
4506
|
advancedFilterState: newAdvancedFilterState,
|
|
4482
4507
|
});
|
|
4483
4508
|
}, noMarginOnRight: true, selectedVariant: Variant$1.Light, unselectedVariant: Variant$1.Light })),
|
|
@@ -4488,7 +4513,7 @@ const LogReviewer = (props) => {
|
|
|
4488
4513
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { routePath: ((e.target.value)
|
|
4489
4514
|
.trim()) });
|
|
4490
4515
|
dispatch({
|
|
4491
|
-
type: ActionType$
|
|
4516
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4492
4517
|
advancedFilterState: newAdvancedFilterState,
|
|
4493
4518
|
});
|
|
4494
4519
|
} })),
|
|
@@ -4498,7 +4523,7 @@ const LogReviewer = (props) => {
|
|
|
4498
4523
|
const newAdvancedFilterState = Object.assign(Object.assign({}, pendingAdvancedFilterState), { routeTemplate: ((e.target.value)
|
|
4499
4524
|
.trim()) });
|
|
4500
4525
|
dispatch({
|
|
4501
|
-
type: ActionType$
|
|
4526
|
+
type: ActionType$7.UpdateAdvancedFilterState,
|
|
4502
4527
|
advancedFilterState: newAdvancedFilterState,
|
|
4503
4528
|
});
|
|
4504
4529
|
} })))))));
|
|
@@ -12595,11 +12620,11 @@ var CreatableSelect$1 = CreatableSelect;
|
|
|
12595
12620
|
*/
|
|
12596
12621
|
/* ------------- Actions ------------ */
|
|
12597
12622
|
// Types of actions
|
|
12598
|
-
var ActionType$
|
|
12623
|
+
var ActionType$6;
|
|
12599
12624
|
(function (ActionType) {
|
|
12600
12625
|
// Update the input value
|
|
12601
12626
|
ActionType["SetInputValue"] = "SetInputValue";
|
|
12602
|
-
})(ActionType$
|
|
12627
|
+
})(ActionType$6 || (ActionType$6 = {}));
|
|
12603
12628
|
/**
|
|
12604
12629
|
* Reducer that executes actions
|
|
12605
12630
|
* @author Yuen Ler Chow
|
|
@@ -12607,9 +12632,9 @@ var ActionType$5;
|
|
|
12607
12632
|
* @param action action to execute
|
|
12608
12633
|
* @returns updated state
|
|
12609
12634
|
*/
|
|
12610
|
-
const reducer$
|
|
12635
|
+
const reducer$7 = (state, action) => {
|
|
12611
12636
|
switch (action.type) {
|
|
12612
|
-
case ActionType$
|
|
12637
|
+
case ActionType$6.SetInputValue: {
|
|
12613
12638
|
return Object.assign(Object.assign({}, state), { inputValue: action.value });
|
|
12614
12639
|
}
|
|
12615
12640
|
default: {
|
|
@@ -12629,7 +12654,7 @@ const CreatableMultiselect = (props) => {
|
|
|
12629
12654
|
inputValue: '',
|
|
12630
12655
|
};
|
|
12631
12656
|
// Initialize state
|
|
12632
|
-
const [state, dispatch] = useReducer(reducer$
|
|
12657
|
+
const [state, dispatch] = useReducer(reducer$7, initialState);
|
|
12633
12658
|
// Destructure common state
|
|
12634
12659
|
const { inputValue } = state;
|
|
12635
12660
|
/*------------------------------------------------------------------------*/
|
|
@@ -12706,7 +12731,7 @@ const CreatableMultiselect = (props) => {
|
|
|
12706
12731
|
}
|
|
12707
12732
|
// Reset text field to empty because the values have been added
|
|
12708
12733
|
dispatch({
|
|
12709
|
-
type: ActionType$
|
|
12734
|
+
type: ActionType$6.SetInputValue,
|
|
12710
12735
|
value: '',
|
|
12711
12736
|
});
|
|
12712
12737
|
};
|
|
@@ -12745,7 +12770,7 @@ const CreatableMultiselect = (props) => {
|
|
|
12745
12770
|
else {
|
|
12746
12771
|
// simply update the input value to the new input value
|
|
12747
12772
|
dispatch({
|
|
12748
|
-
type: ActionType$
|
|
12773
|
+
type: ActionType$6.SetInputValue,
|
|
12749
12774
|
value: newValue,
|
|
12750
12775
|
});
|
|
12751
12776
|
}
|
|
@@ -12797,13 +12822,13 @@ const style$2 = `
|
|
|
12797
12822
|
`;
|
|
12798
12823
|
/* ------------- Actions ------------ */
|
|
12799
12824
|
// Types of actions
|
|
12800
|
-
var ActionType$
|
|
12825
|
+
var ActionType$5;
|
|
12801
12826
|
(function (ActionType) {
|
|
12802
12827
|
// Update the DBEntry
|
|
12803
12828
|
ActionType["UpdateDBEntry"] = "UpdateDBEntry";
|
|
12804
12829
|
// Start the save spinner
|
|
12805
12830
|
ActionType["StartSave"] = "StartSave";
|
|
12806
|
-
})(ActionType$
|
|
12831
|
+
})(ActionType$5 || (ActionType$5 = {}));
|
|
12807
12832
|
/**
|
|
12808
12833
|
* Reducer that executes actions
|
|
12809
12834
|
* @author Yuen Ler Chow
|
|
@@ -12811,12 +12836,12 @@ var ActionType$4;
|
|
|
12811
12836
|
* @param action action to execute
|
|
12812
12837
|
* @returns updated state
|
|
12813
12838
|
*/
|
|
12814
|
-
const reducer$
|
|
12839
|
+
const reducer$6 = (state, action) => {
|
|
12815
12840
|
switch (action.type) {
|
|
12816
|
-
case ActionType$
|
|
12841
|
+
case ActionType$5.UpdateDBEntry: {
|
|
12817
12842
|
return Object.assign(Object.assign({}, state), { entry: action.dbEntry });
|
|
12818
12843
|
}
|
|
12819
|
-
case ActionType$
|
|
12844
|
+
case ActionType$5.StartSave: {
|
|
12820
12845
|
return Object.assign(Object.assign({}, state), { saving: true });
|
|
12821
12846
|
}
|
|
12822
12847
|
default: {
|
|
@@ -12841,7 +12866,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12841
12866
|
saving: false,
|
|
12842
12867
|
};
|
|
12843
12868
|
// Initialize state
|
|
12844
|
-
const [state, dispatch] = useReducer(reducer$
|
|
12869
|
+
const [state, dispatch] = useReducer(reducer$6, initialState);
|
|
12845
12870
|
// Destructure common state
|
|
12846
12871
|
const { entry, saving, } = state;
|
|
12847
12872
|
/*------------------------------------------------------------------------*/
|
|
@@ -12853,7 +12878,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
12853
12878
|
*/
|
|
12854
12879
|
const save = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
12855
12880
|
// Start the save loading indicator
|
|
12856
|
-
dispatch({ type: ActionType$
|
|
12881
|
+
dispatch({ type: ActionType$5.StartSave });
|
|
12857
12882
|
// add all default values to the entry
|
|
12858
12883
|
entryFields.forEach((field) => {
|
|
12859
12884
|
if (field.defaultValue && !entry[field.objectKey]) {
|
|
@@ -13036,7 +13061,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
13036
13061
|
return (React__default.createElement(RadioButton, { key: choice.value, text: choice.title, selected: entry[field.objectKey] === choice.value, onSelected: () => {
|
|
13037
13062
|
entry[field.objectKey] = choice.value;
|
|
13038
13063
|
dispatch({
|
|
13039
|
-
type: ActionType$
|
|
13064
|
+
type: ActionType$5.UpdateDBEntry,
|
|
13040
13065
|
dbEntry: entry,
|
|
13041
13066
|
});
|
|
13042
13067
|
}, ariaLabel: choice.title }));
|
|
@@ -13048,7 +13073,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
13048
13073
|
React__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) => {
|
|
13049
13074
|
entry[field.objectKey] = (e.target.value);
|
|
13050
13075
|
dispatch({
|
|
13051
|
-
type: ActionType$
|
|
13076
|
+
type: ActionType$5.UpdateDBEntry,
|
|
13052
13077
|
dbEntry: entry,
|
|
13053
13078
|
});
|
|
13054
13079
|
} }))));
|
|
@@ -13061,7 +13086,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
13061
13086
|
entry[field.objectKey] = (e.target.value
|
|
13062
13087
|
.replace(/[^0-9]/g, ''));
|
|
13063
13088
|
dispatch({
|
|
13064
|
-
type: ActionType$
|
|
13089
|
+
type: ActionType$5.UpdateDBEntry,
|
|
13065
13090
|
dbEntry: entry,
|
|
13066
13091
|
});
|
|
13067
13092
|
} }))));
|
|
@@ -13091,7 +13116,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
13091
13116
|
}
|
|
13092
13117
|
// Save
|
|
13093
13118
|
dispatch({
|
|
13094
|
-
type: ActionType$
|
|
13119
|
+
type: ActionType$5.UpdateDBEntry,
|
|
13095
13120
|
dbEntry: entry,
|
|
13096
13121
|
});
|
|
13097
13122
|
}, ariaLabel: choice.title }));
|
|
@@ -13106,7 +13131,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
13106
13131
|
// Update entry and save
|
|
13107
13132
|
entry[field.objectKey] = values;
|
|
13108
13133
|
dispatch({
|
|
13109
|
-
type: ActionType$
|
|
13134
|
+
type: ActionType$5.UpdateDBEntry,
|
|
13110
13135
|
dbEntry: entry,
|
|
13111
13136
|
});
|
|
13112
13137
|
} })))));
|
|
@@ -13119,7 +13144,7 @@ const AddOrEditDBEntry = (props) => {
|
|
|
13119
13144
|
React__default.createElement(CreatableMultiselect, { disabled: disabled, type: DBEntryFieldType$1.NumberArray, values: entry[field.objectKey] || [], onChange: (values) => {
|
|
13120
13145
|
entry[field.objectKey] = values;
|
|
13121
13146
|
dispatch({
|
|
13122
|
-
type: ActionType$
|
|
13147
|
+
type: ActionType$5.UpdateDBEntry,
|
|
13123
13148
|
dbEntry: entry,
|
|
13124
13149
|
});
|
|
13125
13150
|
} })))));
|
|
@@ -13193,7 +13218,7 @@ const generateEndpointPath = (collectionName, adminsOnly = true) => {
|
|
|
13193
13218
|
*/
|
|
13194
13219
|
/* ------------- Actions ------------ */
|
|
13195
13220
|
// Types of actions
|
|
13196
|
-
var ActionType$
|
|
13221
|
+
var ActionType$4;
|
|
13197
13222
|
(function (ActionType) {
|
|
13198
13223
|
// Show adder
|
|
13199
13224
|
ActionType["ShowAdder"] = "ShowAdder";
|
|
@@ -13207,7 +13232,7 @@ var ActionType$3;
|
|
|
13207
13232
|
ActionType["StartDelete"] = "StartDelete";
|
|
13208
13233
|
// Finish deletion process
|
|
13209
13234
|
ActionType["FinishDelete"] = "FinishDelete";
|
|
13210
|
-
})(ActionType$
|
|
13235
|
+
})(ActionType$4 || (ActionType$4 = {}));
|
|
13211
13236
|
/**
|
|
13212
13237
|
* Reducer that executes actions
|
|
13213
13238
|
* @author Yuen Ler Chow
|
|
@@ -13215,18 +13240,18 @@ var ActionType$3;
|
|
|
13215
13240
|
* @param action action to execute
|
|
13216
13241
|
* @returns updated state
|
|
13217
13242
|
*/
|
|
13218
|
-
const reducer$
|
|
13243
|
+
const reducer$5 = (state, action) => {
|
|
13219
13244
|
switch (action.type) {
|
|
13220
|
-
case ActionType$
|
|
13245
|
+
case ActionType$4.FinishLoading: {
|
|
13221
13246
|
return Object.assign(Object.assign({}, state), { loading: false, dbEntries: action.dbEntries });
|
|
13222
13247
|
}
|
|
13223
|
-
case ActionType$
|
|
13248
|
+
case ActionType$4.ShowAdder: {
|
|
13224
13249
|
return Object.assign(Object.assign({}, state), { adding: true, dbEntryToEdit: undefined });
|
|
13225
13250
|
}
|
|
13226
|
-
case ActionType$
|
|
13251
|
+
case ActionType$4.ShowEditor: {
|
|
13227
13252
|
return Object.assign(Object.assign({}, state), { adding: false, dbEntryToEdit: action.dbEntry });
|
|
13228
13253
|
}
|
|
13229
|
-
case ActionType$
|
|
13254
|
+
case ActionType$4.FinishAdd: {
|
|
13230
13255
|
// Handle cancel
|
|
13231
13256
|
const finishedEntry = action.dbEntry;
|
|
13232
13257
|
if (!finishedEntry) {
|
|
@@ -13250,10 +13275,10 @@ const reducer$4 = (state, action) => {
|
|
|
13250
13275
|
// Update the state
|
|
13251
13276
|
return Object.assign(Object.assign({}, state), { adding: false, dbEntryToEdit: undefined, dbEntries: updatedDbEntries });
|
|
13252
13277
|
}
|
|
13253
|
-
case ActionType$
|
|
13278
|
+
case ActionType$4.StartDelete: {
|
|
13254
13279
|
return Object.assign(Object.assign({}, state), { loading: true });
|
|
13255
13280
|
}
|
|
13256
|
-
case ActionType$
|
|
13281
|
+
case ActionType$4.FinishDelete: {
|
|
13257
13282
|
return Object.assign(Object.assign({}, state), { loading: false,
|
|
13258
13283
|
// Remove the deleted entry from the list
|
|
13259
13284
|
dbEntries: state.dbEntries.filter((entry) => {
|
|
@@ -13279,7 +13304,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
13279
13304
|
loading: true,
|
|
13280
13305
|
};
|
|
13281
13306
|
// Initialize state
|
|
13282
|
-
const [state, dispatch] = useReducer(reducer$
|
|
13307
|
+
const [state, dispatch] = useReducer(reducer$5, initialState);
|
|
13283
13308
|
// Destructure common state
|
|
13284
13309
|
const { adding, dbEntryToEdit, dbEntries, loading, } = state;
|
|
13285
13310
|
/*------------------------------------------------------------------------*/
|
|
@@ -13305,7 +13330,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
13305
13330
|
try {
|
|
13306
13331
|
// Start loader
|
|
13307
13332
|
dispatch({
|
|
13308
|
-
type: ActionType$
|
|
13333
|
+
type: ActionType$4.StartDelete,
|
|
13309
13334
|
});
|
|
13310
13335
|
// Perform deletion
|
|
13311
13336
|
yield visitServerEndpoint({
|
|
@@ -13314,7 +13339,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
13314
13339
|
});
|
|
13315
13340
|
// Finish loader
|
|
13316
13341
|
dispatch({
|
|
13317
|
-
type: ActionType$
|
|
13342
|
+
type: ActionType$4.FinishDelete,
|
|
13318
13343
|
dbEntry: entry,
|
|
13319
13344
|
idPropName,
|
|
13320
13345
|
});
|
|
@@ -13343,7 +13368,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
13343
13368
|
});
|
|
13344
13369
|
// Save loaded data
|
|
13345
13370
|
dispatch({
|
|
13346
|
-
type: ActionType$
|
|
13371
|
+
type: ActionType$4.FinishLoading,
|
|
13347
13372
|
dbEntries: data,
|
|
13348
13373
|
});
|
|
13349
13374
|
}
|
|
@@ -13386,7 +13411,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
13386
13411
|
React__default.createElement("span", { className: "d-none d-md-inline ms-1" }, "Remove")),
|
|
13387
13412
|
!disableEdit && (React__default.createElement("button", { type: "button", id: `DBEntryManagerPanel-edit-with-id-${entry[idPropName]}`, className: "btn btn-primary", "aria-label": `edit db entry: ${entry[titlePropName]}`, onClick: () => {
|
|
13388
13413
|
dispatch({
|
|
13389
|
-
type: ActionType$
|
|
13414
|
+
type: ActionType$4.ShowEditor,
|
|
13390
13415
|
dbEntry: entry,
|
|
13391
13416
|
});
|
|
13392
13417
|
} },
|
|
@@ -13396,7 +13421,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
13396
13421
|
React__default.createElement("div", { className: "d-grid" },
|
|
13397
13422
|
React__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: () => {
|
|
13398
13423
|
dispatch({
|
|
13399
|
-
type: ActionType$
|
|
13424
|
+
type: ActionType$4.ShowAdder,
|
|
13400
13425
|
});
|
|
13401
13426
|
} },
|
|
13402
13427
|
React__default.createElement(FontAwesomeIcon, { icon: faPlus, className: "me-2" }),
|
|
@@ -13408,7 +13433,7 @@ const DBEntryManagerPanel = (props) => {
|
|
|
13408
13433
|
if (!loading && (adding || dbEntryToEdit)) {
|
|
13409
13434
|
body = (React__default.createElement(AddOrEditDBEntry, { saveEndpointPath: endpoint, validateEntry: validateEntry, modifyEntry: modifyEntry, entryFields: entryFields, dbEntryToEdit: dbEntryToEdit, idPropName: idPropName, entries: dbEntries, itemName: itemName, onFinished: (entry) => {
|
|
13410
13435
|
dispatch({
|
|
13411
|
-
type: ActionType$
|
|
13436
|
+
type: ActionType$4.FinishAdd,
|
|
13412
13437
|
dbEntry: entry,
|
|
13413
13438
|
idPropName,
|
|
13414
13439
|
});
|
|
@@ -13584,25 +13609,25 @@ const getItemIds = (items) => {
|
|
|
13584
13609
|
};
|
|
13585
13610
|
/* ------------- Actions ------------ */
|
|
13586
13611
|
// Types of actions
|
|
13587
|
-
var ActionType$
|
|
13612
|
+
var ActionType$3;
|
|
13588
13613
|
(function (ActionType) {
|
|
13589
13614
|
// Hide the "jump to bottom" button
|
|
13590
13615
|
ActionType["HideJumpToBottomButton"] = "HideJumpToBottomButton";
|
|
13591
13616
|
// Show the "jump to bottom" button
|
|
13592
13617
|
ActionType["ShowJumpToBottomButton"] = "ShowJumpToBottomButton";
|
|
13593
|
-
})(ActionType$
|
|
13618
|
+
})(ActionType$3 || (ActionType$3 = {}));
|
|
13594
13619
|
/**
|
|
13595
13620
|
* Reducer that executes actions
|
|
13596
13621
|
* @author Gabe Abrams
|
|
13597
13622
|
* @param state current state
|
|
13598
13623
|
* @param action action to execute
|
|
13599
13624
|
*/
|
|
13600
|
-
const reducer$
|
|
13625
|
+
const reducer$4 = (state, action) => {
|
|
13601
13626
|
switch (action.type) {
|
|
13602
|
-
case ActionType$
|
|
13627
|
+
case ActionType$3.HideJumpToBottomButton: {
|
|
13603
13628
|
return Object.assign(Object.assign({}, state), { jumpToBottomButtonVisible: false });
|
|
13604
13629
|
}
|
|
13605
|
-
case ActionType$
|
|
13630
|
+
case ActionType$3.ShowJumpToBottomButton: {
|
|
13606
13631
|
return Object.assign(Object.assign({}, state), { jumpToBottomButtonVisible: true });
|
|
13607
13632
|
}
|
|
13608
13633
|
default: {
|
|
@@ -13626,7 +13651,7 @@ const AutoscrollToBottomContainer = (props) => {
|
|
|
13626
13651
|
jumpToBottomButtonVisible: false,
|
|
13627
13652
|
};
|
|
13628
13653
|
// Initialize state
|
|
13629
|
-
const [state, dispatch] = useReducer(reducer$
|
|
13654
|
+
const [state, dispatch] = useReducer(reducer$4, initialState);
|
|
13630
13655
|
// Destructure common state
|
|
13631
13656
|
const { jumpToBottomButtonVisible, } = state;
|
|
13632
13657
|
/* -------------- Refs -------------- */
|
|
@@ -13672,7 +13697,7 @@ const AutoscrollToBottomContainer = (props) => {
|
|
|
13672
13697
|
}
|
|
13673
13698
|
// Update state
|
|
13674
13699
|
dispatch({
|
|
13675
|
-
type: ActionType$
|
|
13700
|
+
type: ActionType$3.HideJumpToBottomButton,
|
|
13676
13701
|
});
|
|
13677
13702
|
// Scroll to bottom
|
|
13678
13703
|
container.current.scrollTop = (container.current.scrollHeight
|
|
@@ -13696,7 +13721,7 @@ const AutoscrollToBottomContainer = (props) => {
|
|
|
13696
13721
|
if (isScrolledToBottom()) {
|
|
13697
13722
|
// Hide button
|
|
13698
13723
|
dispatch({
|
|
13699
|
-
type: ActionType$
|
|
13724
|
+
type: ActionType$3.HideJumpToBottomButton,
|
|
13700
13725
|
});
|
|
13701
13726
|
}
|
|
13702
13727
|
};
|
|
@@ -13738,7 +13763,7 @@ const AutoscrollToBottomContainer = (props) => {
|
|
|
13738
13763
|
else {
|
|
13739
13764
|
// Not scrolled to bottom. Show "jump to bottom" button.
|
|
13740
13765
|
dispatch({
|
|
13741
|
-
type: ActionType$
|
|
13766
|
+
type: ActionType$3.ShowJumpToBottomButton,
|
|
13742
13767
|
});
|
|
13743
13768
|
}
|
|
13744
13769
|
}, [items]);
|
|
@@ -13808,25 +13833,25 @@ const combineClassNames = (classNames) => {
|
|
|
13808
13833
|
*/
|
|
13809
13834
|
/* ------------- Actions ------------ */
|
|
13810
13835
|
// Types of actions
|
|
13811
|
-
var ActionType$
|
|
13836
|
+
var ActionType$2;
|
|
13812
13837
|
(function (ActionType) {
|
|
13813
13838
|
// Start hovering on an option
|
|
13814
13839
|
ActionType["StartHover"] = "StartHover";
|
|
13815
13840
|
// Stop hovering on an option
|
|
13816
13841
|
ActionType["StopHover"] = "StopHover";
|
|
13817
|
-
})(ActionType$
|
|
13842
|
+
})(ActionType$2 || (ActionType$2 = {}));
|
|
13818
13843
|
/**
|
|
13819
13844
|
* Reducer that executes actions
|
|
13820
13845
|
* @author Gabe Abrams
|
|
13821
13846
|
* @param state current state
|
|
13822
13847
|
* @param action action to execute
|
|
13823
13848
|
*/
|
|
13824
|
-
const reducer$
|
|
13849
|
+
const reducer$3 = (state, action) => {
|
|
13825
13850
|
switch (action.type) {
|
|
13826
|
-
case ActionType$
|
|
13851
|
+
case ActionType$2.StartHover: {
|
|
13827
13852
|
return Object.assign(Object.assign({}, state), { hoveredOptionId: action.hoveredOptionId });
|
|
13828
13853
|
}
|
|
13829
|
-
case ActionType$
|
|
13854
|
+
case ActionType$2.StopHover: {
|
|
13830
13855
|
return Object.assign(Object.assign({}, state), { hoveredOptionId: undefined });
|
|
13831
13856
|
}
|
|
13832
13857
|
default: {
|
|
@@ -13850,7 +13875,7 @@ const MultiSwitch = (props) => {
|
|
|
13850
13875
|
hoveredOptionId: undefined,
|
|
13851
13876
|
};
|
|
13852
13877
|
// Initialize state
|
|
13853
|
-
const [state, dispatch] = useReducer(reducer$
|
|
13878
|
+
const [state, dispatch] = useReducer(reducer$3, initialState);
|
|
13854
13879
|
// Destructure common state
|
|
13855
13880
|
const { hoveredOptionId, } = state;
|
|
13856
13881
|
/*------------------------------------------------------------------------*/
|
|
@@ -13982,27 +14007,27 @@ const MultiSwitch = (props) => {
|
|
|
13982
14007
|
: `click to select option "${option.label}"`), onClick: () => {
|
|
13983
14008
|
// Remove hover
|
|
13984
14009
|
dispatch({
|
|
13985
|
-
type: ActionType$
|
|
14010
|
+
type: ActionType$2.StopHover,
|
|
13986
14011
|
});
|
|
13987
14012
|
// Notify parent
|
|
13988
14013
|
onChange(option.id);
|
|
13989
14014
|
}, onMouseEnter: () => {
|
|
13990
14015
|
dispatch({
|
|
13991
|
-
type: ActionType$
|
|
14016
|
+
type: ActionType$2.StartHover,
|
|
13992
14017
|
hoveredOptionId: option.id,
|
|
13993
14018
|
});
|
|
13994
14019
|
}, onMouseLeave: () => {
|
|
13995
14020
|
dispatch({
|
|
13996
|
-
type: ActionType$
|
|
14021
|
+
type: ActionType$2.StopHover,
|
|
13997
14022
|
});
|
|
13998
14023
|
}, onFocus: () => {
|
|
13999
14024
|
dispatch({
|
|
14000
|
-
type: ActionType$
|
|
14025
|
+
type: ActionType$2.StartHover,
|
|
14001
14026
|
hoveredOptionId: option.id,
|
|
14002
14027
|
});
|
|
14003
14028
|
}, onBlur: () => {
|
|
14004
14029
|
dispatch({
|
|
14005
|
-
type: ActionType$
|
|
14030
|
+
type: ActionType$2.StopHover,
|
|
14006
14031
|
});
|
|
14007
14032
|
}, style: {
|
|
14008
14033
|
pointerEvents: ((option.id === selectedOptionId)
|
|
@@ -14041,13 +14066,13 @@ var DropdownItemType$1 = DropdownItemType;
|
|
|
14041
14066
|
*/
|
|
14042
14067
|
/* ------------- Actions ------------ */
|
|
14043
14068
|
// Types of actions
|
|
14044
|
-
var ActionType;
|
|
14069
|
+
var ActionType$1;
|
|
14045
14070
|
(function (ActionType) {
|
|
14046
14071
|
// Toggle opening the dropdown menu
|
|
14047
14072
|
ActionType["ToggleDropdown"] = "ToggleDropdown";
|
|
14048
14073
|
// Close the dropdown menu
|
|
14049
14074
|
ActionType["CloseDropdown"] = "CloseDropdown";
|
|
14050
|
-
})(ActionType || (ActionType = {}));
|
|
14075
|
+
})(ActionType$1 || (ActionType$1 = {}));
|
|
14051
14076
|
/**
|
|
14052
14077
|
* Reducer that executes actions
|
|
14053
14078
|
* @author Alessandra De Lucas
|
|
@@ -14055,12 +14080,12 @@ var ActionType;
|
|
|
14055
14080
|
* @param state current state
|
|
14056
14081
|
* @param action action to execute
|
|
14057
14082
|
*/
|
|
14058
|
-
const reducer$
|
|
14083
|
+
const reducer$2 = (state, action) => {
|
|
14059
14084
|
switch (action.type) {
|
|
14060
|
-
case ActionType.ToggleDropdown: {
|
|
14085
|
+
case ActionType$1.ToggleDropdown: {
|
|
14061
14086
|
return Object.assign(Object.assign({}, state), { isDropdownOpen: !state.isDropdownOpen });
|
|
14062
14087
|
}
|
|
14063
|
-
case ActionType.CloseDropdown: {
|
|
14088
|
+
case ActionType$1.CloseDropdown: {
|
|
14064
14089
|
return Object.assign(Object.assign({}, state), { isDropdownOpen: false });
|
|
14065
14090
|
}
|
|
14066
14091
|
default: {
|
|
@@ -14084,7 +14109,7 @@ const Dropdown = (props) => {
|
|
|
14084
14109
|
isDropdownOpen: false,
|
|
14085
14110
|
};
|
|
14086
14111
|
// Initialize state
|
|
14087
|
-
const [state, dispatch] = useReducer(reducer$
|
|
14112
|
+
const [state, dispatch] = useReducer(reducer$2, initialState);
|
|
14088
14113
|
// Destructure common state
|
|
14089
14114
|
const { isDropdownOpen, } = state;
|
|
14090
14115
|
/* -------------- Refs -------------- */
|
|
@@ -14104,7 +14129,7 @@ const Dropdown = (props) => {
|
|
|
14104
14129
|
dropdownRef.current
|
|
14105
14130
|
// Click occurred outside the dropdown
|
|
14106
14131
|
&& !dropdownRef.current.contains(event.target)) {
|
|
14107
|
-
dispatch({ type: ActionType.CloseDropdown });
|
|
14132
|
+
dispatch({ type: ActionType$1.CloseDropdown });
|
|
14108
14133
|
}
|
|
14109
14134
|
};
|
|
14110
14135
|
/*------------------------------------------------------------------------*/
|
|
@@ -14133,7 +14158,7 @@ const Dropdown = (props) => {
|
|
|
14133
14158
|
dropdownButton.variant === Variant$1.Light && 'text-dark',
|
|
14134
14159
|
]), type: "button", id: dropdownButton.id, "aria-expanded": isDropdownOpen, "aria-label": dropdownButton.ariaLabel, onClick: () => {
|
|
14135
14160
|
dispatch({
|
|
14136
|
-
type: ActionType.ToggleDropdown,
|
|
14161
|
+
type: ActionType$1.ToggleDropdown,
|
|
14137
14162
|
});
|
|
14138
14163
|
} }, dropdownButton.content),
|
|
14139
14164
|
React__default.createElement("ul", { className: combineClassNames([
|
|
@@ -14155,7 +14180,7 @@ const Dropdown = (props) => {
|
|
|
14155
14180
|
React__default.createElement("button", { type: "button", "aria-label": item.ariaLabel, className: "dropdown-item", onClick: (e) => {
|
|
14156
14181
|
e.preventDefault();
|
|
14157
14182
|
dispatch({
|
|
14158
|
-
type: ActionType.CloseDropdown,
|
|
14183
|
+
type: ActionType$1.CloseDropdown,
|
|
14159
14184
|
});
|
|
14160
14185
|
item.onClick();
|
|
14161
14186
|
} }, item.content)));
|
|
@@ -14363,6 +14388,150 @@ const ProgressBar = (props) => {
|
|
|
14363
14388
|
"\u00A0"))));
|
|
14364
14389
|
};
|
|
14365
14390
|
|
|
14391
|
+
/**
|
|
14392
|
+
* Fake progress bar that approaches completion but never fully finishes.
|
|
14393
|
+
* Built on top of the existing ProgressBar component.
|
|
14394
|
+
*
|
|
14395
|
+
* Two phases:
|
|
14396
|
+
* 1. Fast phase (0–90%): random jumps of 1–5% at randomized intervals,
|
|
14397
|
+
* paced to reach ~90% in roughly estimatedTimeSec seconds.
|
|
14398
|
+
* 2. Slow phase (90–99%): crawls 1% at a time with longer random delays,
|
|
14399
|
+
* never reaching 100% on its own.
|
|
14400
|
+
*
|
|
14401
|
+
* When isFinished becomes true, the bar immediately jumps to 100%.
|
|
14402
|
+
* @author Yuen Ler Chow
|
|
14403
|
+
*/
|
|
14404
|
+
/*------------------------------------------------------------------------*/
|
|
14405
|
+
/* ------------------------------ Constants ----------------------------- */
|
|
14406
|
+
/*------------------------------------------------------------------------*/
|
|
14407
|
+
// Percent where the bar switches from fast random jumps to a slow crawl
|
|
14408
|
+
const SLOW_PHASE_START_PERCENT = 90;
|
|
14409
|
+
// Highest percent the bar will reach on its own (before isFinished is true)
|
|
14410
|
+
const MAX_UNFINISHED_PERCENT = 99;
|
|
14411
|
+
// Average step size during the fast phase (uniform random from 1–5)
|
|
14412
|
+
const AVG_FAST_PHASE_STEP = 3;
|
|
14413
|
+
// Minimum delay (ms) between steps during the slow phase
|
|
14414
|
+
const SLOW_PHASE_MIN_DELAY_MS = 2000;
|
|
14415
|
+
// Maximum delay (ms) between steps during the slow phase
|
|
14416
|
+
const SLOW_PHASE_MAX_DELAY_MS = 5000;
|
|
14417
|
+
/* ------------- Actions ------------ */
|
|
14418
|
+
// Types of actions
|
|
14419
|
+
var ActionType;
|
|
14420
|
+
(function (ActionType) {
|
|
14421
|
+
// Advance the progress by a given step
|
|
14422
|
+
ActionType["Advance"] = "Advance";
|
|
14423
|
+
// Set progress to 100% (task complete)
|
|
14424
|
+
ActionType["Complete"] = "Complete";
|
|
14425
|
+
})(ActionType || (ActionType = {}));
|
|
14426
|
+
/**
|
|
14427
|
+
* Reducer that executes actions
|
|
14428
|
+
* @author Yuen Ler Chow
|
|
14429
|
+
* @param state current state
|
|
14430
|
+
* @param action action to execute
|
|
14431
|
+
*/
|
|
14432
|
+
const reducer$1 = (state, action) => {
|
|
14433
|
+
switch (action.type) {
|
|
14434
|
+
case ActionType.Advance: {
|
|
14435
|
+
return Object.assign(Object.assign({}, state), { progress: Math.min(100, state.progress + action.step) });
|
|
14436
|
+
}
|
|
14437
|
+
case ActionType.Complete: {
|
|
14438
|
+
return Object.assign(Object.assign({}, state), { progress: 100 });
|
|
14439
|
+
}
|
|
14440
|
+
default: {
|
|
14441
|
+
return state;
|
|
14442
|
+
}
|
|
14443
|
+
}
|
|
14444
|
+
};
|
|
14445
|
+
/*------------------------------------------------------------------------*/
|
|
14446
|
+
/* ------------------------------ Component ----------------------------- */
|
|
14447
|
+
/*------------------------------------------------------------------------*/
|
|
14448
|
+
const FakeProgressBar = (props) => {
|
|
14449
|
+
/*------------------------------------------------------------------------*/
|
|
14450
|
+
/* -------------------------------- Setup ------------------------------- */
|
|
14451
|
+
/*------------------------------------------------------------------------*/
|
|
14452
|
+
/* -------------- Props ------------- */
|
|
14453
|
+
// Destructure props
|
|
14454
|
+
const { isFinished, estimatedTimeSec = 8, striped, variant, bgVariant, showOutline, size, } = props;
|
|
14455
|
+
/* -------------- State ------------- */
|
|
14456
|
+
// Initial state
|
|
14457
|
+
const initialState = {
|
|
14458
|
+
progress: 0,
|
|
14459
|
+
};
|
|
14460
|
+
// Initialize state
|
|
14461
|
+
const [state, dispatch] = useReducer(reducer$1, initialState);
|
|
14462
|
+
// Destructure common state
|
|
14463
|
+
const { progress, } = state;
|
|
14464
|
+
// Convert estimate to milliseconds
|
|
14465
|
+
const estimatedMs = estimatedTimeSec * 1000;
|
|
14466
|
+
// Average interval between updates to reach ~90% in the estimated time
|
|
14467
|
+
const avgIntervalMs = (estimatedMs / SLOW_PHASE_START_PERCENT) * AVG_FAST_PHASE_STEP;
|
|
14468
|
+
/*------------------------------------------------------------------------*/
|
|
14469
|
+
/* ------------------------- Lifecycle Functions ------------------------ */
|
|
14470
|
+
/*------------------------------------------------------------------------*/
|
|
14471
|
+
/**
|
|
14472
|
+
* Animate to 100% when isFinished becomes true
|
|
14473
|
+
* @author Yuen Ler Chow
|
|
14474
|
+
*/
|
|
14475
|
+
useEffect(() => {
|
|
14476
|
+
if (isFinished) {
|
|
14477
|
+
dispatch({
|
|
14478
|
+
type: ActionType.Complete,
|
|
14479
|
+
});
|
|
14480
|
+
}
|
|
14481
|
+
}, [isFinished]);
|
|
14482
|
+
/**
|
|
14483
|
+
* Advance the progress in two phases:
|
|
14484
|
+
* 1) Random jumps up to 90%
|
|
14485
|
+
* 2) Slow crawl from 90% to 99%
|
|
14486
|
+
* @author Yuen Ler Chow
|
|
14487
|
+
*/
|
|
14488
|
+
useEffect(() => {
|
|
14489
|
+
// Stop if already finished or at max
|
|
14490
|
+
if (isFinished || progress >= MAX_UNFINISHED_PERCENT) {
|
|
14491
|
+
return;
|
|
14492
|
+
}
|
|
14493
|
+
// Determine which phase we are in
|
|
14494
|
+
const inFastPhase = progress < SLOW_PHASE_START_PERCENT;
|
|
14495
|
+
// Default values
|
|
14496
|
+
let delay = avgIntervalMs;
|
|
14497
|
+
let step = 1;
|
|
14498
|
+
if (inFastPhase) {
|
|
14499
|
+
// Randomize delay around the average interval for variability
|
|
14500
|
+
const randomnessMultiplier = 0.5 + (Math.random());
|
|
14501
|
+
delay = avgIntervalMs * randomnessMultiplier;
|
|
14502
|
+
// Randomly move forward by 1-5%, capped at 90%
|
|
14503
|
+
step = Math.min(1 + Math.floor(Math.random() * 5), SLOW_PHASE_START_PERCENT - progress);
|
|
14504
|
+
}
|
|
14505
|
+
else {
|
|
14506
|
+
// Crawl slowly 1% at a time, clamped so we don't exceed 99%
|
|
14507
|
+
delay = SLOW_PHASE_MIN_DELAY_MS + (Math.random() * (SLOW_PHASE_MAX_DELAY_MS - SLOW_PHASE_MIN_DELAY_MS));
|
|
14508
|
+
step = Math.min(1, MAX_UNFINISHED_PERCENT - progress);
|
|
14509
|
+
}
|
|
14510
|
+
// Track whether this effect invocation is still current
|
|
14511
|
+
let cancelled = false;
|
|
14512
|
+
// Wait then dispatch the next progress update
|
|
14513
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
14514
|
+
yield waitMs(delay);
|
|
14515
|
+
if (!cancelled) {
|
|
14516
|
+
dispatch({
|
|
14517
|
+
type: ActionType.Advance,
|
|
14518
|
+
step,
|
|
14519
|
+
});
|
|
14520
|
+
}
|
|
14521
|
+
}))();
|
|
14522
|
+
return () => {
|
|
14523
|
+
cancelled = true;
|
|
14524
|
+
};
|
|
14525
|
+
}, [progress, avgIntervalMs, isFinished]);
|
|
14526
|
+
/*------------------------------------------------------------------------*/
|
|
14527
|
+
/* ------------------------------- Render ------------------------------- */
|
|
14528
|
+
/*------------------------------------------------------------------------*/
|
|
14529
|
+
/*----------------------------------------*/
|
|
14530
|
+
/* --------------- Main UI -------------- */
|
|
14531
|
+
/*----------------------------------------*/
|
|
14532
|
+
return (React__default.createElement(ProgressBar, { percentProgress: progress, striped: striped, variant: variant, bgVariant: bgVariant, showOutline: showOutline, size: size }));
|
|
14533
|
+
};
|
|
14534
|
+
|
|
14366
14535
|
// True if user is on mobile or tablet
|
|
14367
14536
|
let cachedResult;
|
|
14368
14537
|
/**
|
|
@@ -14590,5 +14759,5 @@ const isSelectAdmin = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
14590
14759
|
}
|
|
14591
14760
|
});
|
|
14592
14761
|
|
|
14593
|
-
export { AppWrapper, AutoscrollToBottomContainer, ButtonInputGroup, CSVDownloadButton, CheckboxButton, CopiableBox, DBEntryFieldType$1 as DBEntryFieldType, DBEntryManagerPanel, Drawer, Dropdown, DropdownItemType$1 as DropdownItemType, DynamicWord, ErrorBox, IntelliTable, ItemPicker, LoadingSpinner, LogReviewer, Modal, ModalButtonType$1 as ModalButtonType, ModalSize$1 as ModalSize, ModalType$1 as ModalType, MultiSwitch, PopFailureMark, PopPendingMark, PopSuccessMark, ProgressBar, ProgressBarSize$1 as ProgressBarSize, RadioButton, SimpleDateChooser, SimpleTimeChooser, TabBox, ToggleSwitch, Tooltip, Variant$1 as Variant, addFatalErrorHandler, alert, canReviewLogs, combineClassNames, confirm, initClient, isMobileOrTablet, isSelectAdmin, leaveToURL, logClientEvent, makeLinksClickable, prompt, setClientEventMetadataPopulator, showFatalError, stubServerEndpoint, useForceRender, visitServerEndpoint };
|
|
14762
|
+
export { AppWrapper, AutoscrollToBottomContainer, ButtonInputGroup, CSVDownloadButton, CheckboxButton, CopiableBox, DBEntryFieldType$1 as DBEntryFieldType, DBEntryManagerPanel, Drawer, Dropdown, DropdownItemType$1 as DropdownItemType, DynamicWord, ErrorBox, FakeProgressBar, IntelliTable, ItemPicker, LoadingSpinner, LogReviewer, Modal, ModalButtonType$1 as ModalButtonType, ModalSize$1 as ModalSize, ModalType$1 as ModalType, MultiSwitch, PopFailureMark, PopPendingMark, PopSuccessMark, ProgressBar, ProgressBarSize$1 as ProgressBarSize, RadioButton, SimpleDateChooser, SimpleMonthChooser, SimpleTimeChooser, TabBox, ToggleSwitch, Tooltip, Variant$1 as Variant, addFatalErrorHandler, alert, canReviewLogs, combineClassNames, confirm, initClient, isMobileOrTablet, isSelectAdmin, leaveToURL, logClientEvent, makeLinksClickable, prompt, setClientEventMetadataPopulator, showFatalError, stubServerEndpoint, useForceRender, visitServerEndpoint };
|
|
14594
14763
|
//# sourceMappingURL=index.js.map
|