@telicent-oss/ds 4.4.2 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ds.cjs +450 -162
- package/dist/ds.cjs.map +1 -1
- package/dist/ds.d.ts +125 -72
- package/dist/ds.js +448 -161
- package/dist/ds.js.map +1 -1
- package/dist/llms.txt +70 -8
- package/package.json +1 -1
package/dist/ds.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { SvgIcon as SvgIcon$1, useTheme as useTheme$1,
|
|
4
|
+
import { SvgIcon as SvgIcon$1, useTheme as useTheme$1, Button as Button$1, ButtonBase, InputLabel, Select as Select$2, MenuItem as MenuItem$1, Divider as Divider$1, Box as Box$1, FormHelperText as FormHelperText$1, FormControl as FormControl$1, CircularProgress, Dialog as Dialog$1, DialogContent, DialogActions, TextField as TextField$1, Typography as Typography$1, Autocomplete as Autocomplete$1, Switch as Switch$1, FormControlLabel as FormControlLabel$1, Checkbox as Checkbox$1, tooltipClasses, Tooltip as Tooltip$1, Radio as Radio$1, Toolbar as Toolbar$1, alpha as alpha$1, toggleButtonGroupClasses, ThemeProvider, Avatar, IconButton as IconButton$1, Paper as Paper$1 } from "@mui/material";
|
|
5
5
|
import { DialogActions as DialogActions2, DialogContent as DialogContent2, DialogTitle } from "@mui/material";
|
|
6
6
|
import * as React$1 from "react";
|
|
7
|
-
import React__default, { useState, useEffect, forwardRef,
|
|
7
|
+
import React__default, { useState, useEffect, forwardRef, useId as useId$1, useMemo, useCallback, createContext, useContext, memo, PureComponent, createElement as createElement$1, useRef, useImperativeHandle } from "react";
|
|
8
8
|
import { useTheme, useThemeProps, styled, alpha, createTheme as createTheme$1 } from "@mui/material/styles";
|
|
9
9
|
import { alpha as alpha2 } from "@mui/material/styles";
|
|
10
10
|
import { j as jsx, a as jsxs, F as Fragment, b as jsxRuntimeExports } from "./emotion-react-jsx-runtime.browser.esm-CBxARxuG.js";
|
|
@@ -24,6 +24,7 @@ import MUIListItemText from "@mui/material/ListItemText";
|
|
|
24
24
|
import MUIMenu from "@mui/material/Menu";
|
|
25
25
|
import MUIMenuItem from "@mui/material/MenuItem";
|
|
26
26
|
import MUIIconButton from "@mui/material/IconButton";
|
|
27
|
+
import MuiBadge from "@mui/material/Badge";
|
|
27
28
|
import MUIChip from "@mui/material/Chip";
|
|
28
29
|
import MUIDivider from "@mui/material/Divider";
|
|
29
30
|
import { dividerClasses } from "@mui/material/Divider";
|
|
@@ -34,12 +35,12 @@ import TableBodyRaw from "@mui/material/TableBody";
|
|
|
34
35
|
import TableCellRaw from "@mui/material/TableCell";
|
|
35
36
|
import TableHeadRaw from "@mui/material/TableHead";
|
|
36
37
|
import TableRowRaw from "@mui/material/TableRow";
|
|
37
|
-
import LinearProgressRaw from "@mui/material/LinearProgress";
|
|
38
38
|
import MUIButton from "@mui/material/Button";
|
|
39
|
+
import SkeletonRaw from "@mui/material/Skeleton";
|
|
40
|
+
import LinearProgressRaw from "@mui/material/LinearProgress";
|
|
39
41
|
import Alert from "@mui/material/Alert";
|
|
40
42
|
import { default as default2 } from "@mui/material/Alert";
|
|
41
43
|
import { default as default3 } from "@mui/material/AlertTitle";
|
|
42
|
-
import SkeletonRaw from "@mui/material/Skeleton";
|
|
43
44
|
import { useSnackbar as useSnackbar$1, enqueueSnackbar, SnackbarProvider as SnackbarProvider$1 } from "notistack";
|
|
44
45
|
import { closeSnackbar } from "notistack";
|
|
45
46
|
import MUITooltip from "@mui/material/Tooltip";
|
|
@@ -67,10 +68,10 @@ import MUICardHeader from "@mui/material/CardHeader";
|
|
|
67
68
|
import MUICardContent from "@mui/material/CardContent";
|
|
68
69
|
import MUICardAction from "@mui/material/CardActions";
|
|
69
70
|
import ReactDOM, { flushSync } from "react-dom";
|
|
71
|
+
import MuiDrawer from "@mui/material/Drawer";
|
|
70
72
|
import { common, grey } from "@mui/material/colors";
|
|
71
73
|
import MUICssBaseline from "@mui/material/CssBaseline";
|
|
72
74
|
import MUIModal from "@mui/material/Modal";
|
|
73
|
-
import MuiDrawer from "@mui/material/Drawer";
|
|
74
75
|
import Collapse from "@mui/material/Collapse";
|
|
75
76
|
const useDebounce = (value, delay = 300) => {
|
|
76
77
|
const [debouncedValue, setDebouncedValue] = useState(value);
|
|
@@ -17510,7 +17511,7 @@ const H6 = ({
|
|
|
17510
17511
|
}) => /* @__PURE__ */ jsx(Typography, { component: "h6", variant, ...headingProps });
|
|
17511
17512
|
const List = (listProps) => /* @__PURE__ */ jsx(MUIList, { ...listProps });
|
|
17512
17513
|
const ListItem = (listItemProps) => /* @__PURE__ */ jsx(MUIListItem, { ...listItemProps });
|
|
17513
|
-
const ListItemButton =
|
|
17514
|
+
const ListItemButton = MUIListItemButton;
|
|
17514
17515
|
const ListItemIcon = (listItemIconProps) => /* @__PURE__ */ jsx(MUIListItemIcon, { ...listItemIconProps });
|
|
17515
17516
|
const ListItemText = (props) => /* @__PURE__ */ jsx(MUIListItemText, { ...props });
|
|
17516
17517
|
var util;
|
|
@@ -21671,8 +21672,6 @@ const AppSwitchLibrarySchema = z.object({
|
|
|
21671
21672
|
id: z.string(),
|
|
21672
21673
|
name: z.string(),
|
|
21673
21674
|
url: z.string(),
|
|
21674
|
-
/** @deprecated Use `iconDark` and `iconLight` for theme-aware icons. */
|
|
21675
|
-
icon: z.string().optional(),
|
|
21676
21675
|
iconDark: z.string().optional(),
|
|
21677
21676
|
iconLight: z.string().optional()
|
|
21678
21677
|
});
|
|
@@ -21681,7 +21680,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
21681
21680
|
styles: "width:25px;height:25px"
|
|
21682
21681
|
} : {
|
|
21683
21682
|
name: "9qz4wy-AppSwitch",
|
|
21684
|
-
styles: "width:25px;height:25px;label:AppSwitch;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
21683
|
+
styles: "width:25px;height:25px;label:AppSwitch;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3RlbGljZW50LWRzL3RlbGljZW50LWRzL3NyYy9jb21wb25lbnRzL2RhdGEtZGlzcGxheS9BcHBTd2l0Y2gvQXBwU3dpdGNoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5RzhEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3RlbGljZW50LWRzL3RlbGljZW50LWRzL3NyYy9jb21wb25lbnRzL2RhdGEtZGlzcGxheS9BcHBTd2l0Y2gvQXBwU3dpdGNoLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB6b2QgZnJvbSBcInpvZFwiO1xuaW1wb3J0IE1VSU1lbnUgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTWVudVwiO1xuaW1wb3J0IE1VSU1lbnVJdGVtIGZyb20gXCJAbXVpL21hdGVyaWFsL01lbnVJdGVtXCI7XG5cbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVGV4dC9UZXh0XCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tIFwiLi4vLi4vYnV0dG9ucy9CdXR0b24vSWNvbkJ1dHRvblwiO1xuaW1wb3J0IEdyaWRJY29uIGZyb20gXCIuLi9JY29ucy9HcmlkSWNvblwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcIi4uLy4uL2xheW91dC9GbGV4Qm94XCI7XG5pbXBvcnQgTVVJVHlwb2dyYXBoeSBmcm9tIFwiQG11aS9tYXRlcmlhbC9UeXBvZ3JhcGh5XCI7XG5pbXBvcnQgTVVJTGlzdEl0ZW1JY29uIGZyb20gXCJAbXVpL21hdGVyaWFsL0xpc3RJdGVtSWNvblwiO1xuaW1wb3J0IE1VSUxpc3RJdGVtVGV4dCBmcm9tIFwiQG11aS9tYXRlcmlhbC9MaXN0SXRlbVRleHRcIjtcbmltcG9ydCB7IHVzZUV4dGVuZGVkVGhlbWUgfSBmcm9tIFwiLi4vLi4vLi4vZXhwb3J0XCI7XG5cbmV4cG9ydCBjb25zdCBBcHBTd2l0Y2hMaWJyYXJ5U2NoZW1hID0gem9kLm9iamVjdCh7XG4gIGlkOiB6b2Quc3RyaW5nKCksXG4gIG5hbWU6IHpvZC5zdHJpbmcoKSxcbiAgdXJsOiB6b2Quc3RyaW5nKCksXG4gIGljb25EYXJrOiB6b2Quc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaWNvbkxpZ2h0OiB6b2Quc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBBcHBTd2l0Y2hMaWJyYXJ5VHlwZSA9IHpvZC5pbmZlcjx0eXBlb2YgQXBwU3dpdGNoTGlicmFyeVNjaGVtYT5bXTtcblxuY29uc3QgQXBwU3dpdGNoOiBSZWFjdC5GQzx7IGFwcHM6IEFwcFN3aXRjaExpYnJhcnlUeXBlIH0+ID0gKHsgYXBwcyB9KSA9PiB7XG4gIGNvbnN0IFthbmNob3JFbCwgc2V0QW5jaG9yRWxdID0gUmVhY3QudXNlU3RhdGU8bnVsbCB8IEhUTUxFbGVtZW50PihudWxsKTtcbiAgY29uc3QgdGhlbWUgPSB1c2VFeHRlbmRlZFRoZW1lKCk7XG4gIGNvbnN0IG9wZW4gPSBCb29sZWFuKGFuY2hvckVsKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICBzZXRBbmNob3JFbChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBzZXRBbmNob3JFbChudWxsKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8SWNvbkJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPVwiYXBwLXN3aXRjaFwiXG4gICAgICAgIGFyaWEtY29udHJvbHM9e29wZW4gPyBcImFwcC1zd2l0Y2gtbWVudVwiIDogdW5kZWZpbmVkfVxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e29wZW4gPyBcInRydWVcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICA+XG4gICAgICAgIDxHcmlkSWNvbiBzeD17eyBoZWlnaHQ6IDI0LCB3aWR0aDogMjQgfX0gLz5cbiAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIDxNVUlNZW51XG4gICAgICAgIGlkPVwiYXBwLXN3aXRjaC1tZW51XCJcbiAgICAgICAgYW5jaG9yRWw9e2FuY2hvckVsfVxuICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgTWVudUxpc3RQcm9wcz17e1xuICAgICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IFwiYXBwLXN3aXRjaC1idXR0b25cIixcbiAgICAgICAgfX1cbiAgICAgICAgc3g9e3tcbiAgICAgICAgICBcIiYgLk11aVBhcGVyLXJvb3RcIjoge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLm1vZGUgPT09IFwiZGFya1wiID8gXCIjMkEyQTJBXCIgOiBcIiNmZmZmZmZcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7YXBwcy5tYXAoKGFwcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWxpZGF0ZUFwcHNTY2hlbWEgPSBBcHBTd2l0Y2hMaWJyYXJ5U2NoZW1hLnNhZmVQYXJzZShhcHApO1xuXG4gICAgICAgICAgaWYgKCF2YWxpZGF0ZUFwcHNTY2hlbWEuc3VjY2Vzcykge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0gdmFsaWRhdGVBcHBzU2NoZW1hLmVycm9yLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBgJHtpc3N1ZS5wYXRoLnRvU3RyaW5nKCkucmVwbGFjZShcIixcIiwgXCIgPiBcIil9OiAke2lzc3VlLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNc2cgPSBmb3JtYXR0ZWRFcnJvcnMuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxGbGV4Qm94IGtleT17ZXJyb3JNc2d9IHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgTWlzY29uZmlndXJhdGlvbiBlcnJvcjogQXBwIFN3aXRjaCBsaWJyYXJ5IHthcHA/LmlkID8gYGZvciBpZCAke2FwcC5pZH1gIDogYGF0IGluZGV4ICR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgPFRleHQ+e2Vycm9yTXNnfTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpY29uU3JjID0gdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImRhcmtcIiA/IGFwcC5pY29uRGFyayA6IGFwcC5pY29uTGlnaHQ7XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE1VSU1lbnVJdGVtXG4gICAgICAgICAgICAgIGtleT17YXBwLmlkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oYXBwLnVybCwgXCJfYmxhbmtcIik7XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2xvc2UoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICAgIG1hcmdpblg6IDEsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjRweFwiLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogXCIxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwKVwiLFxuICAgICAgICAgICAgICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6XG4gICAgICAgICAgICAgICAgICAgIHRoZW1lLnBhbGV0dGUubW9kZSA9PT0gXCJkYXJrXCIgPyB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQuZGVmYXVsdCA6IFwicmdiYSgwLCAwLCAwLCAwLjA0KVwiLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aWNvblNyYyAmJiAoXG4gICAgICAgICAgICAgICAgPE1VSUxpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtpY29uU3JjfSBhbHQ9e2Ake2FwcC5uYW1lfSBpY29uYH0gY3NzPXt7IHdpZHRoOiAyNSwgaGVpZ2h0OiAyNSB9fSAvPlxuICAgICAgICAgICAgICAgIDwvTVVJTGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8TVVJTGlzdEl0ZW1UZXh0PlxuICAgICAgICAgICAgICAgIDxNVUlUeXBvZ3JhcGh5XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiaDFcIlxuICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAwLjUsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk6IFwiRmlndHJlZVwiLFxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IFwicHJpbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2FwcC5uYW1lLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgPC9NVUlUeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8L01VSUxpc3RJdGVtVGV4dD5cbiAgICAgICAgICAgIDwvTVVJTWVudUl0ZW0+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L01VSU1lbnU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHBTd2l0Y2g7XG4iXX0= */",
|
|
21685
21684
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
21686
21685
|
};
|
|
21687
21686
|
const AppSwitch = ({
|
|
@@ -21722,8 +21721,7 @@ const AppSwitch = ({
|
|
|
21722
21721
|
/* @__PURE__ */ jsx(Text$1, { children: errorMsg })
|
|
21723
21722
|
] }, errorMsg);
|
|
21724
21723
|
}
|
|
21725
|
-
const
|
|
21726
|
-
const iconSrc = themedIcon ?? app.icon;
|
|
21724
|
+
const iconSrc = theme.palette.mode === "dark" ? app.iconDark : app.iconLight;
|
|
21727
21725
|
return /* @__PURE__ */ jsxs(MUIMenuItem, { onClick: () => {
|
|
21728
21726
|
window.open(app.url, "_blank");
|
|
21729
21727
|
handleClose();
|
|
@@ -21752,6 +21750,20 @@ const AppSwitch = ({
|
|
|
21752
21750
|
}) })
|
|
21753
21751
|
] });
|
|
21754
21752
|
};
|
|
21753
|
+
const hideFromAssistiveTech = (badge) => typeof badge === "function" ? (ownerState) => ({
|
|
21754
|
+
"aria-hidden": true,
|
|
21755
|
+
...badge(ownerState)
|
|
21756
|
+
}) : {
|
|
21757
|
+
"aria-hidden": true,
|
|
21758
|
+
...badge
|
|
21759
|
+
};
|
|
21760
|
+
const Badge = ({
|
|
21761
|
+
slotProps,
|
|
21762
|
+
...props
|
|
21763
|
+
}) => /* @__PURE__ */ jsx(MuiBadge, { color: "primary", ...props, slotProps: {
|
|
21764
|
+
...slotProps,
|
|
21765
|
+
badge: hideFromAssistiveTech(slotProps == null ? void 0 : slotProps.badge)
|
|
21766
|
+
} });
|
|
21755
21767
|
const Chip = ({
|
|
21756
21768
|
variant = "filled",
|
|
21757
21769
|
color = "primary",
|
|
@@ -24608,28 +24620,16 @@ const TableBody = (props) => /* @__PURE__ */ jsx(TableBodyRaw, { ...props });
|
|
|
24608
24620
|
const TableCell = (props) => /* @__PURE__ */ jsx(TableCellRaw, { ...props });
|
|
24609
24621
|
const TableHead = (props) => /* @__PURE__ */ jsx(TableHeadRaw, { ...props });
|
|
24610
24622
|
const TableRow = (props) => /* @__PURE__ */ jsx(TableRowRaw, { ...props });
|
|
24611
|
-
const
|
|
24612
|
-
|
|
24613
|
-
|
|
24614
|
-
|
|
24615
|
-
|
|
24616
|
-
|
|
24617
|
-
|
|
24618
|
-
|
|
24619
|
-
|
|
24620
|
-
|
|
24621
|
-
);
|
|
24622
|
-
};
|
|
24623
|
-
const Spinner = (props) => {
|
|
24624
|
-
return /* @__PURE__ */ jsx(CircularProgress, { "aria-label": "Loading", ...props });
|
|
24625
|
-
};
|
|
24626
|
-
const Dialog = ({
|
|
24627
|
-
open,
|
|
24628
|
-
onClose,
|
|
24629
|
-
children,
|
|
24630
|
-
...otherProps
|
|
24631
|
-
}) => {
|
|
24632
|
-
return /* @__PURE__ */ jsx(Dialog$1, { open, onClose, ...otherProps, children });
|
|
24623
|
+
const visuallyHidden = {
|
|
24624
|
+
border: 0,
|
|
24625
|
+
clip: "rect(0 0 0 0)",
|
|
24626
|
+
height: "1px",
|
|
24627
|
+
margin: "-1px",
|
|
24628
|
+
overflow: "hidden",
|
|
24629
|
+
padding: 0,
|
|
24630
|
+
position: "absolute",
|
|
24631
|
+
whiteSpace: "nowrap",
|
|
24632
|
+
width: "1px"
|
|
24633
24633
|
};
|
|
24634
24634
|
const PrimaryButton = forwardRef((buttonProps, ref) => /* @__PURE__ */ jsx(Button$1, { variant: "contained", ref, color: "primary", ...buttonProps, children: buttonProps.children }));
|
|
24635
24635
|
const SecondaryButton = forwardRef((buttonProps, ref) => {
|
|
@@ -24687,6 +24687,365 @@ const Button = forwardRef((props, ref) => {
|
|
|
24687
24687
|
return /* @__PURE__ */ jsx(PrimaryButton, { ...buttonProps, ref });
|
|
24688
24688
|
});
|
|
24689
24689
|
Button.displayName = "Button";
|
|
24690
|
+
const Select$1 = React__default.forwardRef(({
|
|
24691
|
+
label,
|
|
24692
|
+
value,
|
|
24693
|
+
id,
|
|
24694
|
+
options,
|
|
24695
|
+
width,
|
|
24696
|
+
onChange: onChange2,
|
|
24697
|
+
disabled: disabled2 = false,
|
|
24698
|
+
sx,
|
|
24699
|
+
helperText,
|
|
24700
|
+
error: error2 = false,
|
|
24701
|
+
required = false,
|
|
24702
|
+
fullWidth = false,
|
|
24703
|
+
footer,
|
|
24704
|
+
renderOption,
|
|
24705
|
+
...rest
|
|
24706
|
+
}, ref) => {
|
|
24707
|
+
const reactId = useId$1();
|
|
24708
|
+
const selectedId = id ?? `select-${reactId}`;
|
|
24709
|
+
const labelId = label ? `${selectedId}-label` : void 0;
|
|
24710
|
+
const helperTextId = helperText ? `${selectedId}-helper-text` : void 0;
|
|
24711
|
+
const [openInternal, setOpenInternal] = React__default.useState(false);
|
|
24712
|
+
const isOpenControlled = "open" in rest;
|
|
24713
|
+
const openProp = isOpenControlled ? rest.open : openInternal;
|
|
24714
|
+
const handleOpen = (event) => {
|
|
24715
|
+
var _a;
|
|
24716
|
+
setOpenInternal(true);
|
|
24717
|
+
(_a = rest.onOpen) == null ? void 0 : _a.call(rest, event);
|
|
24718
|
+
};
|
|
24719
|
+
const handleClose = (event) => {
|
|
24720
|
+
var _a;
|
|
24721
|
+
setOpenInternal(false);
|
|
24722
|
+
(_a = rest.onClose) == null ? void 0 : _a.call(rest, event);
|
|
24723
|
+
};
|
|
24724
|
+
const closeMenu = React__default.useCallback(() => setOpenInternal(false), []);
|
|
24725
|
+
const consumerSx = Array.isArray(sx) ? sx : sx ? [sx] : [];
|
|
24726
|
+
const composedSx = [{
|
|
24727
|
+
minWidth: 88,
|
|
24728
|
+
...width && {
|
|
24729
|
+
width
|
|
24730
|
+
},
|
|
24731
|
+
...fullWidth && {
|
|
24732
|
+
width: "100%"
|
|
24733
|
+
}
|
|
24734
|
+
}, ...consumerSx];
|
|
24735
|
+
return /* @__PURE__ */ jsxs(FormControl$1, { sx: composedSx, size: "small", error: error2, required, fullWidth, disabled: disabled2, children: [
|
|
24736
|
+
label && /* @__PURE__ */ jsx(InputLabel, { id: labelId, required, htmlFor: selectedId, children: label }),
|
|
24737
|
+
/* @__PURE__ */ jsxs(Select$2, { ...rest, open: openProp, onOpen: handleOpen, onClose: handleClose, color: "primary", variant: "outlined", labelId, label, id: selectedId, value, onChange: onChange2, inputRef: ref, "aria-describedby": helperText ? helperTextId : void 0, children: [
|
|
24738
|
+
options.map((option) => /* @__PURE__ */ jsx(MenuItem$1, { value: option.value, "aria-label": renderOption ? option.label : void 0, disableRipple: true, disabled: option.disabled, children: renderOption ? renderOption(option) : option.label }, option.value)),
|
|
24739
|
+
footer && options.length > 0 && /* @__PURE__ */ jsx(Divider$1, { component: "li", role: "separator", sx: {
|
|
24740
|
+
my: 0.5
|
|
24741
|
+
} }, "__ds-select-footer-divider"),
|
|
24742
|
+
footer && /* @__PURE__ */ jsx(
|
|
24743
|
+
Box$1,
|
|
24744
|
+
{
|
|
24745
|
+
component: "li",
|
|
24746
|
+
role: "presentation",
|
|
24747
|
+
sx: {
|
|
24748
|
+
px: 1.5,
|
|
24749
|
+
py: 0.5,
|
|
24750
|
+
listStyle: "none"
|
|
24751
|
+
},
|
|
24752
|
+
onClick: (e) => e.stopPropagation(),
|
|
24753
|
+
onKeyDown: (e) => {
|
|
24754
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
24755
|
+
e.stopPropagation();
|
|
24756
|
+
}
|
|
24757
|
+
},
|
|
24758
|
+
children: typeof footer === "function" ? footer({
|
|
24759
|
+
closeMenu
|
|
24760
|
+
}) : footer
|
|
24761
|
+
},
|
|
24762
|
+
"__ds-select-footer"
|
|
24763
|
+
)
|
|
24764
|
+
] }),
|
|
24765
|
+
helperText && /* @__PURE__ */ jsx(FormHelperText$1, { error: error2, id: helperTextId, children: helperText })
|
|
24766
|
+
] });
|
|
24767
|
+
});
|
|
24768
|
+
const Skeleton = SkeletonRaw;
|
|
24769
|
+
const DEFAULT_PAGE_SIZE = 10;
|
|
24770
|
+
const DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];
|
|
24771
|
+
const compareValues = (a, b) => {
|
|
24772
|
+
if (a == null && b == null) return 0;
|
|
24773
|
+
if (a == null) return 1;
|
|
24774
|
+
if (b == null) return -1;
|
|
24775
|
+
if (a instanceof Date && b instanceof Date) return a.getTime() - b.getTime();
|
|
24776
|
+
if (typeof a === "number" && typeof b === "number") return a - b;
|
|
24777
|
+
return String(a).localeCompare(String(b));
|
|
24778
|
+
};
|
|
24779
|
+
const nextDirection = (current) => current === "asc" ? "desc" : "asc";
|
|
24780
|
+
const EntityList = ({
|
|
24781
|
+
items,
|
|
24782
|
+
columns,
|
|
24783
|
+
getItemKey,
|
|
24784
|
+
getItemHref,
|
|
24785
|
+
getItemLabel,
|
|
24786
|
+
onItemClick,
|
|
24787
|
+
ariaLabelledBy,
|
|
24788
|
+
ariaLabel,
|
|
24789
|
+
initialSort,
|
|
24790
|
+
isLoading,
|
|
24791
|
+
defaultPageSize = DEFAULT_PAGE_SIZE,
|
|
24792
|
+
pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,
|
|
24793
|
+
renderEmpty
|
|
24794
|
+
}) => {
|
|
24795
|
+
const pageSizeSelectId = useId$1();
|
|
24796
|
+
const pageSizeLabelId = useId$1();
|
|
24797
|
+
const {
|
|
24798
|
+
palette
|
|
24799
|
+
} = useTheme();
|
|
24800
|
+
const borderColor = palette.divider;
|
|
24801
|
+
const [sort, setSort] = useState(initialSort ?? null);
|
|
24802
|
+
const [page, setPage] = useState(0);
|
|
24803
|
+
const [currentPageSize, setCurrentPageSize] = useState(defaultPageSize);
|
|
24804
|
+
const sortedItems = useMemo(() => {
|
|
24805
|
+
if (!sort) return items;
|
|
24806
|
+
const column = columns.find((c) => c.key === sort.key);
|
|
24807
|
+
if (!(column == null ? void 0 : column.getSortValue)) return items;
|
|
24808
|
+
const getSortValue = column.getSortValue;
|
|
24809
|
+
const copy = [...items];
|
|
24810
|
+
copy.sort((a, b) => {
|
|
24811
|
+
const result = compareValues(getSortValue(a), getSortValue(b));
|
|
24812
|
+
return sort.direction === "asc" ? result : -result;
|
|
24813
|
+
});
|
|
24814
|
+
return copy;
|
|
24815
|
+
}, [items, sort, columns]);
|
|
24816
|
+
const pageCount = Math.max(1, Math.ceil(sortedItems.length / currentPageSize));
|
|
24817
|
+
const safePage = Math.min(page, pageCount - 1);
|
|
24818
|
+
const pageStart = safePage * currentPageSize;
|
|
24819
|
+
const pageItems = sortedItems.slice(pageStart, pageStart + currentPageSize);
|
|
24820
|
+
const handleSort = (key) => {
|
|
24821
|
+
setSort((current) => {
|
|
24822
|
+
if ((current == null ? void 0 : current.key) === key) {
|
|
24823
|
+
return {
|
|
24824
|
+
key,
|
|
24825
|
+
direction: nextDirection(current.direction)
|
|
24826
|
+
};
|
|
24827
|
+
}
|
|
24828
|
+
return {
|
|
24829
|
+
key,
|
|
24830
|
+
direction: "asc"
|
|
24831
|
+
};
|
|
24832
|
+
});
|
|
24833
|
+
setPage(0);
|
|
24834
|
+
};
|
|
24835
|
+
const columnFlexBasis = (column) => {
|
|
24836
|
+
if (column.width != null) {
|
|
24837
|
+
return typeof column.width === "number" ? `${column.width}px` : column.width;
|
|
24838
|
+
}
|
|
24839
|
+
return "0";
|
|
24840
|
+
};
|
|
24841
|
+
const columnFlexGrow = (column) => {
|
|
24842
|
+
if (column.width != null) return 0;
|
|
24843
|
+
return column.flex ?? 1;
|
|
24844
|
+
};
|
|
24845
|
+
const sectionProps = ariaLabelledBy ? {
|
|
24846
|
+
"aria-labelledby": ariaLabelledBy
|
|
24847
|
+
} : {
|
|
24848
|
+
"aria-label": ariaLabel
|
|
24849
|
+
};
|
|
24850
|
+
const showEmpty = !isLoading && sortedItems.length === 0;
|
|
24851
|
+
const pageSizeOptionsForSelect = useMemo(() => pageSizeOptions.map((n) => ({
|
|
24852
|
+
value: n,
|
|
24853
|
+
label: String(n)
|
|
24854
|
+
})), [pageSizeOptions]);
|
|
24855
|
+
return /* @__PURE__ */ jsxs(MUIBox, { component: "section", ...sectionProps, sx: {
|
|
24856
|
+
width: "100%"
|
|
24857
|
+
}, children: [
|
|
24858
|
+
/* @__PURE__ */ jsx(FlexBox, { direction: "row", role: "presentation", sx: {
|
|
24859
|
+
px: 2,
|
|
24860
|
+
py: 1,
|
|
24861
|
+
borderBottom: `1px solid ${borderColor}`,
|
|
24862
|
+
gap: 2
|
|
24863
|
+
}, children: columns.map((column) => {
|
|
24864
|
+
const active = (sort == null ? void 0 : sort.key) === column.key;
|
|
24865
|
+
const direction = active ? sort.direction : "asc";
|
|
24866
|
+
const sortable = column.getSortValue != null;
|
|
24867
|
+
const alignStyle = column.align === "right" ? {
|
|
24868
|
+
justifyContent: "flex-end",
|
|
24869
|
+
textAlign: "right"
|
|
24870
|
+
} : void 0;
|
|
24871
|
+
const sharedStyle = {
|
|
24872
|
+
flexGrow: columnFlexGrow(column),
|
|
24873
|
+
flexShrink: 1,
|
|
24874
|
+
flexBasis: columnFlexBasis(column),
|
|
24875
|
+
minWidth: 0,
|
|
24876
|
+
fontWeight: 600,
|
|
24877
|
+
...alignStyle
|
|
24878
|
+
};
|
|
24879
|
+
if (!sortable) {
|
|
24880
|
+
return /* @__PURE__ */ jsx(MUIBox, { sx: sharedStyle, children: column.header }, column.key);
|
|
24881
|
+
}
|
|
24882
|
+
return /* @__PURE__ */ jsxs(Button, { variant: "base", disableRipple: true, onClick: () => handleSort(column.key), sx: {
|
|
24883
|
+
...sharedStyle,
|
|
24884
|
+
justifyContent: column.align === "right" ? "flex-end" : "flex-start",
|
|
24885
|
+
gap: 0.5,
|
|
24886
|
+
padding: 0,
|
|
24887
|
+
color: "inherit",
|
|
24888
|
+
font: "inherit",
|
|
24889
|
+
// ButtonBase sets outline: 0 and relies on the theme to style
|
|
24890
|
+
// keyboard focus. Draw a primary-coloured ring on focus-visible
|
|
24891
|
+
// so Tab-through stays legible.
|
|
24892
|
+
"&:focus-visible": {
|
|
24893
|
+
outline: `2px solid ${palette.primary.main}`,
|
|
24894
|
+
outlineOffset: "2px"
|
|
24895
|
+
},
|
|
24896
|
+
// Hover-reveal matches MUI DataGrid: inactive header shows a
|
|
24897
|
+
// faint asc indicator on hover to telegraph what the click
|
|
24898
|
+
// will do. Default opacity lives in CSS (not inline style)
|
|
24899
|
+
// so the hover rule can actually win on specificity.
|
|
24900
|
+
"& .entity-list-sort-hint": {
|
|
24901
|
+
opacity: 0,
|
|
24902
|
+
transition: "opacity 120ms ease"
|
|
24903
|
+
},
|
|
24904
|
+
"&:hover .entity-list-sort-hint": {
|
|
24905
|
+
opacity: 0.5
|
|
24906
|
+
}
|
|
24907
|
+
}, children: [
|
|
24908
|
+
/* @__PURE__ */ jsx("span", { children: column.header }),
|
|
24909
|
+
active && // Visually-hidden text puts the sort direction into the
|
|
24910
|
+
// button's accessible name, so screen readers announce
|
|
24911
|
+
// "Name, sorted ascending, button". ARIA 1.2 limits
|
|
24912
|
+
// aria-sort to columnheader/rowheader roles, and EntityList
|
|
24913
|
+
// is a list — not a grid — so we convey the state through
|
|
24914
|
+
// the name instead.
|
|
24915
|
+
/* @__PURE__ */ jsxs(MUIBox, { component: "span", sx: visuallyHidden, children: [
|
|
24916
|
+
", sorted ",
|
|
24917
|
+
direction === "asc" ? "ascending" : "descending"
|
|
24918
|
+
] }),
|
|
24919
|
+
active ? direction === "asc" ? /* @__PURE__ */ jsx(ExpandLessIcon, { "aria-hidden": "true", sx: {
|
|
24920
|
+
fontSize: "1em",
|
|
24921
|
+
color: palette.primary.main
|
|
24922
|
+
} }) : /* @__PURE__ */ jsx(ExpandMoreIcon, { "aria-hidden": "true", sx: {
|
|
24923
|
+
fontSize: "1em",
|
|
24924
|
+
color: palette.primary.main
|
|
24925
|
+
} }) : /* @__PURE__ */ jsx(ExpandLessIcon, { className: "entity-list-sort-hint", "aria-hidden": "true", sx: {
|
|
24926
|
+
fontSize: "1em"
|
|
24927
|
+
} })
|
|
24928
|
+
] }, column.key);
|
|
24929
|
+
}) }),
|
|
24930
|
+
isLoading && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
24931
|
+
/* @__PURE__ */ jsx(MUIBox, { role: "status", "aria-live": "polite", sx: visuallyHidden, children: "Loading" }),
|
|
24932
|
+
/* @__PURE__ */ jsx(List, { disablePadding: true, "aria-hidden": "true", children: Array.from({
|
|
24933
|
+
length: currentPageSize
|
|
24934
|
+
}).map((_, i) => /* @__PURE__ */ jsx(ListItem, { disablePadding: true, children: /* @__PURE__ */ jsxs(MUIBox, { sx: {
|
|
24935
|
+
display: "flex",
|
|
24936
|
+
alignItems: "center",
|
|
24937
|
+
gap: 2,
|
|
24938
|
+
px: 2,
|
|
24939
|
+
py: 1.5,
|
|
24940
|
+
borderBottom: `1px solid ${borderColor}`,
|
|
24941
|
+
width: "100%"
|
|
24942
|
+
}, children: [
|
|
24943
|
+
columns.map((column) => /* @__PURE__ */ jsx(MUIBox, { sx: {
|
|
24944
|
+
flexGrow: columnFlexGrow(column),
|
|
24945
|
+
flexShrink: 1,
|
|
24946
|
+
flexBasis: columnFlexBasis(column),
|
|
24947
|
+
minWidth: 0
|
|
24948
|
+
}, children: /* @__PURE__ */ jsx(Skeleton, { variant: "text" }) }, column.key)),
|
|
24949
|
+
getItemHref && /* @__PURE__ */ jsx(Skeleton, { variant: "text", sx: {
|
|
24950
|
+
width: 16
|
|
24951
|
+
} })
|
|
24952
|
+
] }) }, i)) })
|
|
24953
|
+
] }),
|
|
24954
|
+
showEmpty && /* @__PURE__ */ jsx(MUIBox, { sx: {
|
|
24955
|
+
px: 2,
|
|
24956
|
+
py: 4
|
|
24957
|
+
}, children: renderEmpty ? renderEmpty() : /* @__PURE__ */ jsx(Text$1, { children: "No items" }) }),
|
|
24958
|
+
!isLoading && !showEmpty && /* @__PURE__ */ jsx(List, { disablePadding: true, children: pageItems.map((item) => {
|
|
24959
|
+
const href = getItemHref == null ? void 0 : getItemHref(item);
|
|
24960
|
+
const label = getItemLabel == null ? void 0 : getItemLabel(item);
|
|
24961
|
+
const interactive = typeof href === "string";
|
|
24962
|
+
const rowContentStyle = {
|
|
24963
|
+
display: "flex",
|
|
24964
|
+
alignItems: "center",
|
|
24965
|
+
gap: 2,
|
|
24966
|
+
px: 2,
|
|
24967
|
+
py: 1.5,
|
|
24968
|
+
borderBottom: `1px solid ${borderColor}`
|
|
24969
|
+
};
|
|
24970
|
+
const cells = columns.map((column) => /* @__PURE__ */ jsx(MUIBox, { sx: {
|
|
24971
|
+
flexGrow: columnFlexGrow(column),
|
|
24972
|
+
flexShrink: 1,
|
|
24973
|
+
flexBasis: columnFlexBasis(column),
|
|
24974
|
+
minWidth: 0,
|
|
24975
|
+
overflow: "hidden",
|
|
24976
|
+
textOverflow: "ellipsis",
|
|
24977
|
+
whiteSpace: "nowrap",
|
|
24978
|
+
textAlign: column.align === "right" ? "right" : "left"
|
|
24979
|
+
}, children: column.render(item) }, column.key));
|
|
24980
|
+
return /* @__PURE__ */ jsx(ListItem, { disablePadding: true, children: interactive ? /* @__PURE__ */ jsxs(ListItemButton, { component: "a", href, "aria-label": label, onClick: (e) => {
|
|
24981
|
+
if (!onItemClick) return;
|
|
24982
|
+
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
|
|
24983
|
+
if (e.button !== 0) return;
|
|
24984
|
+
e.preventDefault();
|
|
24985
|
+
onItemClick(item, href);
|
|
24986
|
+
}, disableRipple: true, sx: {
|
|
24987
|
+
...rowContentStyle,
|
|
24988
|
+
color: "inherit",
|
|
24989
|
+
textDecoration: "none"
|
|
24990
|
+
}, children: [
|
|
24991
|
+
cells,
|
|
24992
|
+
/* @__PURE__ */ jsx(ChevronRightIcon, { "aria-hidden": "true", sx: {
|
|
24993
|
+
fontSize: "1em"
|
|
24994
|
+
} })
|
|
24995
|
+
] }) : /* @__PURE__ */ jsx(MUIBox, { sx: {
|
|
24996
|
+
...rowContentStyle,
|
|
24997
|
+
width: "100%"
|
|
24998
|
+
}, children: cells }) }, getItemKey(item));
|
|
24999
|
+
}) }),
|
|
25000
|
+
!isLoading && !showEmpty && /* @__PURE__ */ jsxs(FlexBox, { direction: "row", alignItems: "center", justifyContent: "flex-end", gap: 2, sx: {
|
|
25001
|
+
px: 2,
|
|
25002
|
+
py: 1
|
|
25003
|
+
}, children: [
|
|
25004
|
+
/* @__PURE__ */ jsx(MUIBox, { component: "label", htmlFor: pageSizeSelectId, id: pageSizeLabelId, children: /* @__PURE__ */ jsx(Text$1, { component: "span", children: "Rows per page:" }) }),
|
|
25005
|
+
/* @__PURE__ */ jsx(
|
|
25006
|
+
Select$1,
|
|
25007
|
+
{
|
|
25008
|
+
id: pageSizeSelectId,
|
|
25009
|
+
value: currentPageSize,
|
|
25010
|
+
options: pageSizeOptionsForSelect,
|
|
25011
|
+
SelectDisplayProps: {
|
|
25012
|
+
"aria-labelledby": pageSizeLabelId
|
|
25013
|
+
},
|
|
25014
|
+
onChange: (e) => {
|
|
25015
|
+
setCurrentPageSize(Number(e.target.value));
|
|
25016
|
+
setPage(0);
|
|
25017
|
+
}
|
|
25018
|
+
}
|
|
25019
|
+
),
|
|
25020
|
+
/* @__PURE__ */ jsx(Text$1, { children: sortedItems.length === 0 ? "0 of 0" : `${pageStart + 1}–${Math.min(pageStart + currentPageSize, sortedItems.length)} of ${sortedItems.length}` }),
|
|
25021
|
+
/* @__PURE__ */ jsx(IconButton, { onClick: () => setPage((p5) => Math.max(0, p5 - 1)), disabled: safePage === 0, "aria-label": "Previous page", size: "small", children: /* @__PURE__ */ jsx(ChevronLeftIcon, {}) }),
|
|
25022
|
+
/* @__PURE__ */ jsx(IconButton, { onClick: () => setPage((p5) => Math.min(pageCount - 1, p5 + 1)), disabled: safePage >= pageCount - 1, "aria-label": "Next page", size: "small", children: /* @__PURE__ */ jsx(ChevronRightIcon, {}) })
|
|
25023
|
+
] })
|
|
25024
|
+
] });
|
|
25025
|
+
};
|
|
25026
|
+
const LinearProgress = ({
|
|
25027
|
+
// isActive,
|
|
25028
|
+
// transition = 500,
|
|
25029
|
+
...linearProgressProps
|
|
25030
|
+
}) => {
|
|
25031
|
+
return /* @__PURE__ */ jsx(
|
|
25032
|
+
LinearProgressRaw,
|
|
25033
|
+
{
|
|
25034
|
+
...linearProgressProps
|
|
25035
|
+
}
|
|
25036
|
+
);
|
|
25037
|
+
};
|
|
25038
|
+
const Spinner = (props) => {
|
|
25039
|
+
return /* @__PURE__ */ jsx(CircularProgress, { "aria-label": "Loading", ...props });
|
|
25040
|
+
};
|
|
25041
|
+
const Dialog = ({
|
|
25042
|
+
open,
|
|
25043
|
+
onClose,
|
|
25044
|
+
children,
|
|
25045
|
+
...otherProps
|
|
25046
|
+
}) => {
|
|
25047
|
+
return /* @__PURE__ */ jsx(Dialog$1, { open, onClose, ...otherProps, children });
|
|
25048
|
+
};
|
|
24690
25049
|
const noop$1 = () => {
|
|
24691
25050
|
};
|
|
24692
25051
|
const defaultIconFor = (variant) => {
|
|
@@ -24798,7 +25157,6 @@ const ConfirmDialog = ({
|
|
|
24798
25157
|
] })
|
|
24799
25158
|
] });
|
|
24800
25159
|
};
|
|
24801
|
-
const Skeleton = SkeletonRaw;
|
|
24802
25160
|
const snackbar = ({
|
|
24803
25161
|
type,
|
|
24804
25162
|
message,
|
|
@@ -25042,84 +25400,6 @@ const TextField = React__default.forwardRef(({
|
|
|
25042
25400
|
}, ref) => {
|
|
25043
25401
|
return /* @__PURE__ */ jsx(TextField$1, { ...rest, inputRef: ref, error: Boolean(error2 ?? errorText), helperText: error2 ? errorText ?? helperText : helperText });
|
|
25044
25402
|
});
|
|
25045
|
-
const Select$1 = React__default.forwardRef(({
|
|
25046
|
-
label,
|
|
25047
|
-
value,
|
|
25048
|
-
id,
|
|
25049
|
-
options,
|
|
25050
|
-
width,
|
|
25051
|
-
onChange: onChange2,
|
|
25052
|
-
disabled: disabled2 = false,
|
|
25053
|
-
sx,
|
|
25054
|
-
helperText,
|
|
25055
|
-
error: error2 = false,
|
|
25056
|
-
required = false,
|
|
25057
|
-
fullWidth = false,
|
|
25058
|
-
footer,
|
|
25059
|
-
renderOption,
|
|
25060
|
-
...rest
|
|
25061
|
-
}, ref) => {
|
|
25062
|
-
const reactId = useId$1();
|
|
25063
|
-
const selectedId = id ?? `select-${reactId}`;
|
|
25064
|
-
const labelId = label ? `${selectedId}-label` : void 0;
|
|
25065
|
-
const helperTextId = helperText ? `${selectedId}-helper-text` : void 0;
|
|
25066
|
-
const [openInternal, setOpenInternal] = React__default.useState(false);
|
|
25067
|
-
const isOpenControlled = "open" in rest;
|
|
25068
|
-
const openProp = isOpenControlled ? rest.open : openInternal;
|
|
25069
|
-
const handleOpen = (event) => {
|
|
25070
|
-
var _a;
|
|
25071
|
-
setOpenInternal(true);
|
|
25072
|
-
(_a = rest.onOpen) == null ? void 0 : _a.call(rest, event);
|
|
25073
|
-
};
|
|
25074
|
-
const handleClose = (event) => {
|
|
25075
|
-
var _a;
|
|
25076
|
-
setOpenInternal(false);
|
|
25077
|
-
(_a = rest.onClose) == null ? void 0 : _a.call(rest, event);
|
|
25078
|
-
};
|
|
25079
|
-
const closeMenu = React__default.useCallback(() => setOpenInternal(false), []);
|
|
25080
|
-
const consumerSx = Array.isArray(sx) ? sx : sx ? [sx] : [];
|
|
25081
|
-
const composedSx = [{
|
|
25082
|
-
minWidth: 88,
|
|
25083
|
-
...width && {
|
|
25084
|
-
width
|
|
25085
|
-
},
|
|
25086
|
-
...fullWidth && {
|
|
25087
|
-
width: "100%"
|
|
25088
|
-
}
|
|
25089
|
-
}, ...consumerSx];
|
|
25090
|
-
return /* @__PURE__ */ jsxs(FormControl$1, { sx: composedSx, size: "small", error: error2, required, fullWidth, disabled: disabled2, children: [
|
|
25091
|
-
label && /* @__PURE__ */ jsx(InputLabel, { id: labelId, required, htmlFor: selectedId, children: label }),
|
|
25092
|
-
/* @__PURE__ */ jsxs(Select$2, { ...rest, open: openProp, onOpen: handleOpen, onClose: handleClose, color: "primary", variant: "outlined", labelId, label, id: selectedId, value, onChange: onChange2, inputRef: ref, "aria-describedby": helperText ? helperTextId : void 0, children: [
|
|
25093
|
-
options.map((option) => /* @__PURE__ */ jsx(MenuItem$1, { value: option.value, "aria-label": renderOption ? option.label : void 0, disableRipple: true, disabled: option.disabled, children: renderOption ? renderOption(option) : option.label }, option.value)),
|
|
25094
|
-
footer && options.length > 0 && /* @__PURE__ */ jsx(Divider$1, { component: "li", role: "separator", sx: {
|
|
25095
|
-
my: 0.5
|
|
25096
|
-
} }, "__ds-select-footer-divider"),
|
|
25097
|
-
footer && /* @__PURE__ */ jsx(
|
|
25098
|
-
Box$1,
|
|
25099
|
-
{
|
|
25100
|
-
component: "li",
|
|
25101
|
-
role: "presentation",
|
|
25102
|
-
sx: {
|
|
25103
|
-
px: 1.5,
|
|
25104
|
-
py: 0.5,
|
|
25105
|
-
listStyle: "none"
|
|
25106
|
-
},
|
|
25107
|
-
onClick: (e) => e.stopPropagation(),
|
|
25108
|
-
onKeyDown: (e) => {
|
|
25109
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
25110
|
-
e.stopPropagation();
|
|
25111
|
-
}
|
|
25112
|
-
},
|
|
25113
|
-
children: typeof footer === "function" ? footer({
|
|
25114
|
-
closeMenu
|
|
25115
|
-
}) : footer
|
|
25116
|
-
},
|
|
25117
|
-
"__ds-select-footer"
|
|
25118
|
-
)
|
|
25119
|
-
] }),
|
|
25120
|
-
helperText && /* @__PURE__ */ jsx(FormHelperText$1, { error: error2, id: helperTextId, children: helperText })
|
|
25121
|
-
] });
|
|
25122
|
-
});
|
|
25123
25403
|
const SingleAutocomplete = forwardRef(({
|
|
25124
25404
|
label,
|
|
25125
25405
|
value,
|
|
@@ -28511,6 +28791,20 @@ const Panel = ({
|
|
|
28511
28791
|
}, children: !(context == null ? void 0 : context.get(targetId, "minimised")) && children })
|
|
28512
28792
|
] });
|
|
28513
28793
|
};
|
|
28794
|
+
const Drawer = ({
|
|
28795
|
+
width,
|
|
28796
|
+
PaperProps,
|
|
28797
|
+
...props
|
|
28798
|
+
}) => {
|
|
28799
|
+
const paperSx = PaperProps == null ? void 0 : PaperProps.sx;
|
|
28800
|
+
const consumerSx = Array.isArray(paperSx) ? paperSx : paperSx ? [paperSx] : [];
|
|
28801
|
+
return /* @__PURE__ */ jsx(MuiDrawer, { PaperProps: width === void 0 ? PaperProps : {
|
|
28802
|
+
...PaperProps,
|
|
28803
|
+
sx: [{
|
|
28804
|
+
width
|
|
28805
|
+
}, ...consumerSx]
|
|
28806
|
+
}, ...props });
|
|
28807
|
+
};
|
|
28514
28808
|
const Popper = (props) => /* @__PURE__ */ jsx(MUIPopper, { ...props });
|
|
28515
28809
|
const Toolbar = ({
|
|
28516
28810
|
children,
|
|
@@ -28530,17 +28824,6 @@ const Toolbar = ({
|
|
|
28530
28824
|
const Paper = forwardRef(function Paper2(props, ref) {
|
|
28531
28825
|
return /* @__PURE__ */ jsx(MUIPaper, { ref, ...props });
|
|
28532
28826
|
});
|
|
28533
|
-
const main$4 = "#2F44CA";
|
|
28534
|
-
const DataNavy = {
|
|
28535
|
-
light: {
|
|
28536
|
-
primary: {
|
|
28537
|
-
main: main$4,
|
|
28538
|
-
dark: alpha(main$4, 0.7),
|
|
28539
|
-
light: alpha(main$4, 0.5),
|
|
28540
|
-
contrastText: "#FFFFFF"
|
|
28541
|
-
}
|
|
28542
|
-
}
|
|
28543
|
-
};
|
|
28544
28827
|
const main$3 = "#F56AAA";
|
|
28545
28828
|
const mainLight$1 = "#B70071";
|
|
28546
28829
|
const DocumentPink = {
|
|
@@ -28675,9 +28958,8 @@ const Blank = {
|
|
|
28675
28958
|
}
|
|
28676
28959
|
}
|
|
28677
28960
|
};
|
|
28678
|
-
const UIThemeSchema = z.enum(["
|
|
28961
|
+
const UIThemeSchema = z.enum(["DocumentPink", "GraphOrange", "AdminBlue", "GeoGreen", "Blank"]);
|
|
28679
28962
|
const THEME_COLORS = {
|
|
28680
|
-
DataNavy,
|
|
28681
28963
|
DocumentPink,
|
|
28682
28964
|
GraphOrange,
|
|
28683
28965
|
AdminBlue,
|
|
@@ -28719,6 +29001,27 @@ const generateAccordionOverrides = (_uiTheme) => ({
|
|
|
28719
29001
|
}
|
|
28720
29002
|
}
|
|
28721
29003
|
});
|
|
29004
|
+
const generateBadgeOverrides = (_uiTheme) => ({
|
|
29005
|
+
MuiBadge: {
|
|
29006
|
+
styleOverrides: {
|
|
29007
|
+
badge: ({
|
|
29008
|
+
theme
|
|
29009
|
+
}) => ({
|
|
29010
|
+
// Clicks go to what the badge sits on.
|
|
29011
|
+
pointerEvents: "none",
|
|
29012
|
+
"&.MuiBadge-standard": {
|
|
29013
|
+
minWidth: 20,
|
|
29014
|
+
height: 20,
|
|
29015
|
+
padding: "0 5px",
|
|
29016
|
+
borderRadius: 999,
|
|
29017
|
+
fontSize: 11,
|
|
29018
|
+
fontWeight: 700,
|
|
29019
|
+
border: `2px solid ${theme.palette.background.default}`
|
|
29020
|
+
}
|
|
29021
|
+
})
|
|
29022
|
+
}
|
|
29023
|
+
}
|
|
29024
|
+
});
|
|
28722
29025
|
const generateButtonOverrides = (_uiTheme) => ({
|
|
28723
29026
|
MuiButton: {
|
|
28724
29027
|
styleOverrides: {
|
|
@@ -28802,6 +29105,17 @@ const generateCardOverrides = (_uiTheme) => ({
|
|
|
28802
29105
|
}
|
|
28803
29106
|
}
|
|
28804
29107
|
});
|
|
29108
|
+
const generateDrawerOverrides = (_uiTheme) => ({
|
|
29109
|
+
MuiDrawer: {
|
|
29110
|
+
styleOverrides: {
|
|
29111
|
+
paper: ({
|
|
29112
|
+
ownerState
|
|
29113
|
+
}) => ownerState.variant === "temporary" ? {
|
|
29114
|
+
maxWidth: "100vw"
|
|
29115
|
+
} : {}
|
|
29116
|
+
}
|
|
29117
|
+
}
|
|
29118
|
+
});
|
|
28805
29119
|
const generateTabsOverrides = (_uiTheme) => ({
|
|
28806
29120
|
MuiTabs: {
|
|
28807
29121
|
styleOverrides: {
|
|
@@ -28980,8 +29294,10 @@ const FONT_FACES_CSS = `
|
|
|
28980
29294
|
const generateComponentOverrides = (uiTheme) => ({
|
|
28981
29295
|
...AVATAR_OVERRIDES,
|
|
28982
29296
|
...generateAccordionOverrides(),
|
|
29297
|
+
...generateBadgeOverrides(),
|
|
28983
29298
|
...generateButtonOverrides(),
|
|
28984
29299
|
...generateCardOverrides(),
|
|
29300
|
+
...generateDrawerOverrides(),
|
|
28985
29301
|
...generateTabsOverrides(),
|
|
28986
29302
|
...generateToggleButtonOverrides(),
|
|
28987
29303
|
MuiPaper: {
|
|
@@ -30350,7 +30666,7 @@ function useDrawer(args) {
|
|
|
30350
30666
|
}
|
|
30351
30667
|
};
|
|
30352
30668
|
}
|
|
30353
|
-
const
|
|
30669
|
+
const InsetDrawer = forwardRef(({
|
|
30354
30670
|
initialOpen = true,
|
|
30355
30671
|
onVisibilityChange,
|
|
30356
30672
|
children,
|
|
@@ -30365,7 +30681,7 @@ const Drawer = forwardRef(({
|
|
|
30365
30681
|
});
|
|
30366
30682
|
return /* @__PURE__ */ jsx(DrawerPresentational, { ...drawerProps, ...rest, children });
|
|
30367
30683
|
});
|
|
30368
|
-
|
|
30684
|
+
InsetDrawer.displayName = "InsetDrawer";
|
|
30369
30685
|
const ControlArea$1 = ({
|
|
30370
30686
|
position,
|
|
30371
30687
|
children,
|
|
@@ -80229,39 +80545,6 @@ const polygonToOLFeature = (polygon) => {
|
|
|
80229
80545
|
if (id) feature.setId(id);
|
|
80230
80546
|
return feature;
|
|
80231
80547
|
};
|
|
80232
|
-
const mapLegacyConfigToLayers = (legacy) => {
|
|
80233
|
-
const layers = [];
|
|
80234
|
-
if (legacy.vectorStyles) {
|
|
80235
|
-
layers.push({
|
|
80236
|
-
id: legacy.vectorStyles.label,
|
|
80237
|
-
kind: "base-vector-tiles",
|
|
80238
|
-
provider: "custom",
|
|
80239
|
-
url: legacy.vectorStyles.uri,
|
|
80240
|
-
styleUrl: legacy.vectorStyles.uri,
|
|
80241
|
-
visible: false,
|
|
80242
|
-
previewImage: legacy.vectorStyles.image,
|
|
80243
|
-
label: legacy.vectorStyles.label
|
|
80244
|
-
});
|
|
80245
|
-
}
|
|
80246
|
-
if (legacy.tileSets && Array.isArray(legacy.tileSets)) {
|
|
80247
|
-
legacy.tileSets.forEach((tileset) => {
|
|
80248
|
-
layers.push({
|
|
80249
|
-
id: tileset.label,
|
|
80250
|
-
kind: "base-raster",
|
|
80251
|
-
url: tileset.uri,
|
|
80252
|
-
attribution: tileset.attribution,
|
|
80253
|
-
visible: false,
|
|
80254
|
-
previewImage: tileset.image,
|
|
80255
|
-
label: tileset.label
|
|
80256
|
-
});
|
|
80257
|
-
});
|
|
80258
|
-
}
|
|
80259
|
-
return layers.map((layer2, idx) => ({
|
|
80260
|
-
...layer2,
|
|
80261
|
-
visible: idx === 0
|
|
80262
|
-
// set the first layer to be visible
|
|
80263
|
-
}));
|
|
80264
|
-
};
|
|
80265
80548
|
const extractMarkerIcons = (markers) => {
|
|
80266
80549
|
var _a;
|
|
80267
80550
|
const icons2 = /* @__PURE__ */ new Set();
|
|
@@ -80284,7 +80567,7 @@ const BasicMapV2 = React__default.forwardRef((props, ref) => {
|
|
|
80284
80567
|
const mapInstance = useRef(null);
|
|
80285
80568
|
const showLayerSelector = ((_a = props.controls) == null ? void 0 : _a.showLayerSelector) ?? true;
|
|
80286
80569
|
const effectiveLayers = useMemo(() => {
|
|
80287
|
-
const baseLayers = Array.isArray(props.layers)
|
|
80570
|
+
const baseLayers = Array.isArray(props.layers) ? props.layers : [];
|
|
80288
80571
|
const overlayVectorLayers = [
|
|
80289
80572
|
// Marker layer
|
|
80290
80573
|
{
|
|
@@ -85674,6 +85957,7 @@ export {
|
|
|
85674
85957
|
AuthProvider,
|
|
85675
85958
|
AuthRedirectUri,
|
|
85676
85959
|
Autocomplete,
|
|
85960
|
+
Badge,
|
|
85677
85961
|
BasicMapV2,
|
|
85678
85962
|
BinIcon,
|
|
85679
85963
|
Box,
|
|
@@ -85687,6 +85971,7 @@ export {
|
|
|
85687
85971
|
CardContent,
|
|
85688
85972
|
CardHeader,
|
|
85689
85973
|
Checkbox,
|
|
85974
|
+
ChevronLeftIcon,
|
|
85690
85975
|
ChevronRightIcon,
|
|
85691
85976
|
Chip,
|
|
85692
85977
|
ClockIcon,
|
|
@@ -85709,6 +85994,7 @@ export {
|
|
|
85709
85994
|
DropdownButton,
|
|
85710
85995
|
ENCODE_SEARCH_PARAMS_MODES_Schema,
|
|
85711
85996
|
EditableTextField,
|
|
85997
|
+
EntityList,
|
|
85712
85998
|
ErrorFallback,
|
|
85713
85999
|
ErrorFallbackText,
|
|
85714
86000
|
ErrorFallbackWrapper,
|
|
@@ -85736,6 +86022,7 @@ export {
|
|
|
85736
86022
|
IESType,
|
|
85737
86023
|
IconButton,
|
|
85738
86024
|
InfoIcon,
|
|
86025
|
+
InsetDrawer,
|
|
85739
86026
|
InsetInMap,
|
|
85740
86027
|
LabeledSwitch,
|
|
85741
86028
|
LayerSelectorV2,
|