Updated FileSelector and removed old component (#3076)

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
This commit is contained in:
Alex
2023-10-06 11:12:13 -05:00
committed by GitHub
parent 71681b710c
commit 476eb673bb
10 changed files with 141 additions and 467 deletions

View File

@@ -17,7 +17,7 @@
"local-storage-fallback": "^4.1.1",
"lodash": "^4.17.21",
"luxon": "^3.4.3",
"mds": "https://github.com/minio/mds.git#v0.9.3",
"mds": "https://github.com/minio/mds.git#v0.9.4",
"react": "^18.1.0",
"react-component-export-image": "^1.0.6",
"react-copy-to-clipboard": "^5.0.2",

View File

@@ -1,177 +0,0 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React, { useState } from "react";
import get from "lodash/get";
import { Grid, InputLabel, Tooltip, IconButton } from "mds";
import AttachFileIcon from "@mui/icons-material/AttachFile";
import CancelIcon from "@mui/icons-material/Cancel";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import {
fieldBasic,
fileInputStyles,
tooltipHelper,
} from "../common/styleLibrary";
import { fileProcess } from "./utils";
import { HelpIcon } from "mds";
import ErrorBlock from "../../../../shared/ErrorBlock";
interface InputBoxProps {
label: string;
classes: any;
onChange: (e: string, i: string) => void;
id: string;
name: string;
disabled?: boolean;
tooltip?: string;
required?: boolean;
error?: string;
accept?: string;
value?: string;
}
const styles = (theme: Theme) =>
createStyles({
...fieldBasic,
...tooltipHelper,
valueString: {
maxWidth: 350,
whiteSpace: "nowrap",
overflow: "hidden",
textOverflow: "ellipsis",
marginTop: 2,
},
fileInputField: {
margin: "13px 0",
"@media (max-width: 900px)": {
flexFlow: "column",
},
},
...fileInputStyles,
inputLabel: {
...fieldBasic.inputLabel,
fontWeight: "normal",
},
textBoxContainer: {
...fieldBasic.textBoxContainer,
maxWidth: "100%",
border: "1px solid #eaeaea",
paddingLeft: "15px",
},
});
const FileSelector = ({
label,
classes,
onChange,
id,
name,
disabled = false,
tooltip = "",
required,
error = "",
accept = "",
value = "",
}: InputBoxProps) => {
const [showFileSelector, setShowSelector] = useState(false);
return (
<React.Fragment>
<Grid
item
xs={12}
className={`inputItem ${classes.fileInputField} ${
classes.fieldBottom
} ${classes.fieldContainer} ${
error !== "" ? classes.errorInField : ""
}`}
>
{label !== "" && (
<InputLabel
htmlFor={id}
className={`${error !== "" ? classes.fieldLabelError : ""}`}
>
<span>
{label}
{required ? "*" : ""}
</span>
{tooltip !== "" && (
<div className={classes.tooltipContainer}>
<Tooltip tooltip={tooltip} placement="top">
<div className={classes.tooltip}>
<HelpIcon />
</div>
</Tooltip>
</div>
)}
</InputLabel>
)}
{showFileSelector || value === "" ? (
<div className={classes.textBoxContainer}>
<input
type="file"
name={name}
onChange={(e) => {
const fileName = get(e, "target.files[0].name", "");
fileProcess(e, (data: any) => {
onChange(data, fileName);
});
}}
accept={accept}
required={required}
disabled={disabled}
className={classes.fileInputField}
/>
{value !== "" && (
<IconButton
color="primary"
aria-label="upload picture"
onClick={() => {
setShowSelector(false);
}}
size="small"
>
<CancelIcon />
</IconButton>
)}
{error !== "" && <ErrorBlock errorMessage={error} />}
</div>
) : (
<div className={classes.fileReselect}>
<div className={classes.valueString}>{value}</div>
<IconButton
color="primary"
aria-label="upload picture"
onClick={() => {
setShowSelector(true);
}}
size="small"
>
<AttachFileIcon />
</IconButton>
</div>
)}
</Grid>
</React.Fragment>
);
};
export default withStyles(styles)(FileSelector);

View File

@@ -1,34 +0,0 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
export const fileProcess = (evt: any, callback: any) => {
const file = evt.target.files[0];
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => {
// reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU
// we care only about the actual base64 part (everything after "data:application/x-x509-ca-cert;base64,")
const fileBase64 = reader.result;
if (fileBase64) {
const fileArray = fileBase64.toString().split("base64,");
if (fileArray.length === 2) {
callback(fileArray[1]);
}
}
};
};

View File

@@ -693,36 +693,6 @@ export const formFieldStyles: any = {
},
};
export const fileInputStyles = {
fieldBottom: {
borderBottom: 0,
},
fileReselect: {
border: "1px solid #EAEAEA",
width: "100%",
paddingLeft: 10,
display: "flex",
alignItems: "center",
justifyContent: "center",
height: 36,
maxWidth: 300,
},
textBoxContainer: {
border: "1px solid #EAEAEA",
borderRadius: 3,
height: 36,
padding: 5,
"& input": {
width: "100%",
margin: "auto",
},
display: "flex",
alignItems: "center",
justifyContent: "center",
maxWidth: 300,
},
};
export const deleteDialogStyles: any = {
root: {
"& .MuiPaper-root": {

View File

@@ -18,26 +18,20 @@ import React, { Fragment, useCallback, useEffect, useState } from "react";
import { useNavigate, useParams } from "react-router-dom";
import get from "lodash/get";
import { Theme } from "@mui/material/styles";
import {
BackLink,
breakPoints,
Button,
FileSelector,
Grid,
PageLayout,
InputBox,
PageLayout,
SectionTitle,
} from "mds";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import {
fileInputStyles,
formFieldStyles,
modalBasic,
modalStyleUtils,
settingsCommon,
} from "../../Common/FormComponents/common/styleLibrary";
import FileSelector from "../../Common/FormComponents/FileSelector/FileSelector";
import { api } from "api";
import { errorToHandler } from "api/errors";
import { ApiError } from "api/consoleApi";
import { modalStyleUtils } from "../../Common/FormComponents/common/styleLibrary";
import {
azureServiceName,
gcsServiceName,
@@ -45,48 +39,14 @@ import {
s3ServiceName,
tierTypes,
} from "./utils";
import { IAM_PAGES } from "../../../../common/SecureComponent/permissions";
import RegionSelectWrapper from "./RegionSelectWrapper";
import { setErrorSnackMessage, setHelpName } from "../../../../systemSlice";
import { useAppDispatch } from "../../../../store";
import RegionSelectWrapper from "./RegionSelectWrapper";
import PageHeaderWrapper from "../../Common/PageHeaderWrapper/PageHeaderWrapper";
import HelpMenu from "../../HelpMenu";
import { api } from "api";
import { errorToHandler } from "api/errors";
import { ApiError } from "api/consoleApi";
const styles = (theme: Theme) =>
createStyles({
...modalBasic,
...settingsCommon,
...formFieldStyles,
lambdaNotifTitle: {
color: "#07193E",
fontSize: 16,
fontFamily: "Inter,sans-serif",
paddingLeft: 18,
},
fileInputFieldCss: {
margin: "0",
},
fileTextBoxContainer: {
maxWidth: " 100%",
flex: 1,
},
fileReselectCss: {
maxWidth: " 100%",
flex: 1,
},
...fileInputStyles,
});
interface IAddNotificationEndpointProps {
classes: any;
}
const AddTierConfiguration = ({ classes }: IAddNotificationEndpointProps) => {
const AddTierConfiguration = () => {
const dispatch = useAppDispatch();
const navigate = useNavigate();
const params = useParams();
@@ -425,17 +385,15 @@ const AddTierConfiguration = ({ classes }: IAddNotificationEndpointProps) => {
{type === gcsServiceName && (
<FileSelector
accept=".json"
classes={{
fileInputField: classes.fileInputFieldCss,
textBoxContainer: classes.fileTextBoxContainer,
fileReselect: classes.fileReselectCss,
}}
id="creds"
label="Credentials"
name="creds"
onChange={(encodedValue, fileName) => {
setEncodedCreds(encodedValue);
setCreds(fileName);
returnEncodedData
onChange={(_, fileName, encodedValue) => {
if (encodedValue) {
setEncodedCreds(encodedValue);
setCreds(fileName);
}
}}
value={creds}
required
@@ -530,4 +488,4 @@ const AddTierConfiguration = ({ classes }: IAddNotificationEndpointProps) => {
);
};
export default withStyles(styles)(AddTierConfiguration);
export default AddTierConfiguration;

View File

@@ -16,14 +16,21 @@
import React, { Fragment, useEffect, useState } from "react";
import get from "lodash/get";
import { Button, FormLayout, Grid, InputBox, LockIcon, ProgressBar } from "mds";
import {
Button,
FileSelector,
FormLayout,
Grid,
InputBox,
LockIcon,
ProgressBar,
} from "mds";
import { Tier } from "api/consoleApi";
import { api } from "api";
import { errorToHandler } from "api/errors";
import { modalStyleUtils } from "../../Common/FormComponents/common/styleLibrary";
import { setModalErrorSnackMessage } from "../../../../systemSlice";
import { useAppDispatch } from "../../../../store";
import FileSelector from "../../Common/FormComponents/FileSelector/FileSelector";
import ModalWrapper from "../../Common/ModalWrapper/ModalWrapper";
interface ITierCredentialsModal {
@@ -152,9 +159,12 @@ const UpdateTierCredentialsModal = ({
id="creds"
label="Credentials"
name="creds"
onChange={(encodedValue, fileName) => {
setEncodedCreds(encodedValue);
setCreds(fileName);
returnEncodedData
onChange={(_, fileName, encodedValue) => {
if (encodedValue) {
setEncodedCreds(encodedValue);
setCreds(fileName);
}
}}
value={creds}
/>

View File

@@ -15,9 +15,8 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import Box from "@mui/material/Box";
import { PageLayout, Box } from "mds";
import Copyright from "../common/Copyright";
import { PageLayout } from "mds";
const NotFound: React.FC = () => {
return (
@@ -51,7 +50,7 @@ const NotFound: React.FC = () => {
>
Sorry, the page could not be found.
</Box>
<Box mt={5}>
<Box sx={{ marginTop: 20 }}>
<Copyright />
</Box>
</Box>

View File

@@ -1,36 +0,0 @@
import React from "react";
import Typography from "@mui/material/Typography";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
const styles = (theme: Theme) =>
createStyles({
errorBlock: {
color: theme.palette?.error.main || "#C83B51",
},
});
interface IErrorBlockProps {
classes: any;
errorMessage: string;
withBreak?: boolean;
}
const ErrorBlock = ({
classes,
errorMessage,
withBreak = true,
}: IErrorBlockProps) => {
return (
<React.Fragment>
{withBreak && <br />}
<Typography component="p" variant="body1" className={classes.errorBlock}>
{errorMessage}
</Typography>
</React.Fragment>
);
};
export default withStyles(styles)(ErrorBlock);

View File

@@ -1,23 +0,0 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import ReactDOM from "react-dom";
import ErrorBlock from "../ErrorBlock";
it("renders without crashing", () => {
const div = document.createElement("div");
ReactDOM.render(<ErrorBlock errorMessage={""} />, div);
});

View File

@@ -1146,7 +1146,7 @@
resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.0", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.18.9", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.15", "@babel/runtime@^7.22.6", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.0", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.18.9", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.6", "@babel/runtime@^7.23.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
version "7.23.1"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d"
integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==
@@ -1828,56 +1828,56 @@
resolved "https://registry.yarnpkg.com/@miherlosev/esm/-/esm-3.2.26.tgz#a516b35d8b8b4eac29598f1c2c23e30a4d260200"
integrity sha512-TaW4jTGVE1/ln2VGFChnheMh589QCAZy1MVnLvjjSzZ4pEAa4WYAWPwFkDVZbSdPQdLfZy7LuTyZjWRkhX9/Gg==
"@mui/base@5.0.0-beta.17":
version "5.0.0-beta.17"
resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.17.tgz#98b7ef6a3176b7aaf59ac8862d3271acb6876bc0"
integrity sha512-xNbk7iOXrglNdIxFBN0k3ySsPIFLWCnFxqsAYl7CIcDkD9low4kJ7IUuy6ctwx/HAy2fenrT3KXHr1sGjAMgpQ==
"@mui/base@5.0.0-beta.18":
version "5.0.0-beta.18"
resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.18.tgz#f95d393cf80974e77c0823170cc15c854d5af84b"
integrity sha512-e9ZCy/ndhyt5MTshAS3qAUy/40UiO0jX+kAo6a+XirrPJE+rrQW+mKPSI0uyp+5z4Vh+z0pvNoJ2S2gSrNz3BQ==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime" "^7.23.1"
"@floating-ui/react-dom" "^2.0.2"
"@mui/types" "^7.2.4"
"@mui/utils" "^5.14.11"
"@mui/types" "^7.2.5"
"@mui/utils" "^5.14.12"
"@popperjs/core" "^2.11.8"
clsx "^2.0.0"
prop-types "^15.8.1"
"@mui/core-downloads-tracker@^5.14.11":
version "5.14.11"
resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.11.tgz#e829aceb5c0bbfc3383ed90a6a85445344dd65a7"
integrity sha512-uY8FLQURhXe3f3O4dS5OSGML9KDm9+IE226cBu78jarVIzdQGPlXwGIlSI9VJR8MvZDA6C0+6XfWDhWCHruC5Q==
"@mui/core-downloads-tracker@^5.14.12":
version "5.14.12"
resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.12.tgz#7be13094ef0c2fc7c3854da2b90a7eae456ebefd"
integrity sha512-WZhCkKqhrXaSVBzoC6LNcVkIawS000OOt7gmnp4g9HhyvN0PSclRXc/JrkC7EwfzUAZJh+hiK2LaVsbtOpNuOg==
"@mui/icons-material@^5.11.16":
version "5.14.11"
resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.11.tgz#ce563d1b6c7abc76f8a8048c970135601e7b49b5"
integrity sha512-aHReLasBuS/+hhPzbZCgZ0eTcZ2QRnoC2WNK7XvdAf3l+LjC1flzjh6GWw1tZJ5NHnZ+bivdwtLFQ8XTR96JkA==
version "5.14.12"
resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.12.tgz#6634cdc3198bc438e8d38ce591c96d63d5df99a0"
integrity sha512-aFm6g/AIB3RQN9h/4MKoBoBybLZXeR3aDHWNx6KzemEpIlElUxv5uXRX5Qk1VC6v/YPkhbaPsiLLjsRSTiZF3w==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime" "^7.23.1"
"@mui/lab@^5.0.0-alpha.122":
version "5.0.0-alpha.146"
resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.146.tgz#45623ffb856378654ec0b08099a9ce5b45b7d0a4"
integrity sha512-azkSNz/F4VAzXdXG1Yu/pdWiMQY8dRpwHycLCQCK7oql5AOVh1pVEmw5+nMT161oc5bOzxBkIsNGPCBwXIZ7Ww==
version "5.0.0-alpha.147"
resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.147.tgz#5586ef727c355617c499d0e13ab7dbd33ece1e09"
integrity sha512-AZjDEl31/co9baYrOBHMlXI8BCrV9JTCGDE2+IswVm32HNPYL5V2gHL3wKqn+MIFeCEg+z2es+8CU/Bau0JNSQ==
dependencies:
"@babel/runtime" "^7.22.15"
"@mui/base" "5.0.0-beta.17"
"@mui/system" "^5.14.11"
"@mui/types" "^7.2.4"
"@mui/utils" "^5.14.11"
"@babel/runtime" "^7.23.1"
"@mui/base" "5.0.0-beta.18"
"@mui/system" "^5.14.12"
"@mui/types" "^7.2.5"
"@mui/utils" "^5.14.12"
"@mui/x-tree-view" "6.0.0-alpha.1"
clsx "^2.0.0"
prop-types "^15.8.1"
"@mui/material@^5.12.1":
version "5.14.11"
resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.11.tgz#7537f07c383a6cfa32a00fabc9959593478bc5c4"
integrity sha512-DnSdJzcR7lwG12JA5L2t8JF+RDzMygu5rCNW+logWb/KW2/TRzwLyVWO+CorHTBjBRd38DBxnwOCDiYkDd+N3A==
version "5.14.12"
resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.12.tgz#8fa5bebd1a096796a288b548f1ba867e068601c8"
integrity sha512-EelF2L46VcVqhg3KjzIGBBpOtcBgRh0MMy9Efuk6Do81QdcZsFC9RebCVAflo5jIdbHiBmxBs5/l5Q9NjONozg==
dependencies:
"@babel/runtime" "^7.22.15"
"@mui/base" "5.0.0-beta.17"
"@mui/core-downloads-tracker" "^5.14.11"
"@mui/system" "^5.14.11"
"@mui/types" "^7.2.4"
"@mui/utils" "^5.14.11"
"@babel/runtime" "^7.23.1"
"@mui/base" "5.0.0-beta.18"
"@mui/core-downloads-tracker" "^5.14.12"
"@mui/system" "^5.14.12"
"@mui/types" "^7.2.5"
"@mui/utils" "^5.14.12"
"@types/react-transition-group" "^4.4.6"
clsx "^2.0.0"
csstype "^3.1.2"
@@ -1885,35 +1885,35 @@
react-is "^18.2.0"
react-transition-group "^4.4.5"
"@mui/private-theming@^5.14.11":
version "5.14.11"
resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.11.tgz#1543b4d13d5cb32018c5bd41b516db1c33f70344"
integrity sha512-MSnNNzTu9pfKLCKs1ZAKwOTgE4bz+fQA0fNr8Jm7NDmuWmw0CaN9Vq2/MHsatE7+S0A25IAKby46Uv1u53rKVQ==
"@mui/private-theming@^5.14.12":
version "5.14.12"
resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.12.tgz#b07f710b9794c928052ee4c91bf67fc3e0a442ea"
integrity sha512-TWwm+9+BgHFpoR3w04FG+IqID4ALa74A27RuKq2CEaWgxliBZB24EVeI6djfjFt5t4FYmIb8BMw2ZJEir7YjLQ==
dependencies:
"@babel/runtime" "^7.22.15"
"@mui/utils" "^5.14.11"
"@babel/runtime" "^7.23.1"
"@mui/utils" "^5.14.12"
prop-types "^15.8.1"
"@mui/styled-engine@^5.14.11":
version "5.14.11"
resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.11.tgz#22cb0047f211be4dbc133a5d1015369293bdff00"
integrity sha512-jdUlqRgTYQ8RMtPX4MbRZqar6W2OiIb6J5KEFbIu4FqvPrk44Each4ppg/LAqp1qNlBYq5i+7Q10MYLMpDxX9A==
"@mui/styled-engine@^5.14.12":
version "5.14.12"
resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.12.tgz#bfacc045f14f8f8bef735c76ecfd90bc99427c43"
integrity sha512-bocxt1nDmXfB3gpLfCCmFCyJ7sVmscFs+PuheO210QagZwHVp47UIRT1AiswLDYSQo1ZqmVGn7KLEJEYK0d4Xw==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime" "^7.23.1"
"@emotion/cache" "^11.11.0"
csstype "^3.1.2"
prop-types "^15.8.1"
"@mui/styles@^5.12.0":
version "5.14.11"
resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.14.11.tgz#3a9c31e927b9115c62c5260c5614c178f849aa43"
integrity sha512-43TTaH/QBNAvwFfN0Dz1UREZLs5Yd8X4XrsiYgIJJgdGsr2TtlKz/WRHqDNwWkNg/gs3qcWIbtNweTIoTkov/g==
version "5.14.12"
resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.14.12.tgz#8a2e9b1165dd0a746fb15e64591bffab398122d7"
integrity sha512-nrtF23SRd7eRHTRebE1qnBQ4u5XojNlp3kvL54xIhuAi+mMuSXtJgwkRL04uoz0NZPalfdF8RaeFVN2INIkHKg==
dependencies:
"@babel/runtime" "^7.22.15"
"@babel/runtime" "^7.23.1"
"@emotion/hash" "^0.9.1"
"@mui/private-theming" "^5.14.11"
"@mui/types" "^7.2.4"
"@mui/utils" "^5.14.11"
"@mui/private-theming" "^5.14.12"
"@mui/types" "^7.2.5"
"@mui/utils" "^5.14.12"
clsx "^2.0.0"
csstype "^3.1.2"
hoist-non-react-statics "^3.3.2"
@@ -1927,32 +1927,32 @@
jss-plugin-vendor-prefixer "^10.10.0"
prop-types "^15.8.1"
"@mui/system@^5.14.11":
version "5.14.11"
resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.11.tgz#4f3aaf3e3d6d039e41a60f939056aa5fd371d291"
integrity sha512-yl8xV+y0k7j6dzBsHabKwoShmjqLa8kTxrhUI3JpqLG358VRVMJRW/ES0HhvfcCi4IVXde+Tc2P3K1akGL8zoA==
"@mui/system@^5.14.12":
version "5.14.12"
resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.12.tgz#da5b32c2a10bbe58f8b4839c5d5de449dc35e425"
integrity sha512-6DXfjjLhW0/ia5qU3Crke7j+MnfDbMBOHlLIrqbrEqNs0AuSBv8pXniEGb+kqO0H804NJreRTEJRjCngwOX5CA==
dependencies:
"@babel/runtime" "^7.22.15"
"@mui/private-theming" "^5.14.11"
"@mui/styled-engine" "^5.14.11"
"@mui/types" "^7.2.4"
"@mui/utils" "^5.14.11"
"@babel/runtime" "^7.23.1"
"@mui/private-theming" "^5.14.12"
"@mui/styled-engine" "^5.14.12"
"@mui/types" "^7.2.5"
"@mui/utils" "^5.14.12"
clsx "^2.0.0"
csstype "^3.1.2"
prop-types "^15.8.1"
"@mui/types@^7.2.4":
version "7.2.4"
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.4.tgz#b6fade19323b754c5c6de679a38f068fd50b9328"
integrity sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==
"@mui/types@^7.2.5":
version "7.2.5"
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.5.tgz#cd62a1fc5eb1044137ccab2053b431dd7cfc3cb8"
integrity sha512-S2BwfNczr7VwS6ki8GoAXJyARoeSJDLuxOEPs3vEMyTALlf9PrdHv+sluX7kk3iKrCg/ML2mIWwapZvWbkMCQA==
"@mui/utils@^5.10.3", "@mui/utils@^5.14.11", "@mui/utils@^5.14.3":
version "5.14.11"
resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.11.tgz#d19a1d8725ffd16c6c6817f00b5172931958fb9a"
integrity sha512-fmkIiCPKyDssYrJ5qk+dime1nlO3dmWfCtaPY/uVBqCRMBZ11JhddB9m8sjI2mgqQQwRJG5bq3biaosNdU/s4Q==
"@mui/utils@^5.10.3", "@mui/utils@^5.14.12", "@mui/utils@^5.14.3":
version "5.14.12"
resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.12.tgz#58b570839e22e0fba71e17d37d9c083fe233704d"
integrity sha512-RFNXnhKQlzIkIUig6mmv0r5VbtjPdWoaBPYicq25LETdZux59HAqoRdWw15T7lp3c7gXOoE8y67+hTB8C64m2g==
dependencies:
"@babel/runtime" "^7.22.15"
"@types/prop-types" "^15.7.5"
"@babel/runtime" "^7.23.1"
"@types/prop-types" "^15.7.7"
prop-types "^15.8.1"
react-is "^18.2.0"
@@ -2078,9 +2078,9 @@
integrity sha512-Ba7HmkFgfQxZqqaeIWWkNK0rEhpxVQHIoVyW1YDSkGsGIXzcaW4deC8B0pZrNSSyLTdIk7y+5olKt5+g0GmFIQ==
"@reduxjs/toolkit@^1.9.6":
version "1.9.6"
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.6.tgz#fc968b45fe5b17ff90932c4556960d9c1078365a"
integrity sha512-Gc4ikl90ORF4viIdAkY06JNUnODjKfGxZRwATM30EdHq8hLSVoSrwXne5dd739yenP5bJxAX7tLuOWK5RPGtrw==
version "1.9.7"
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.7.tgz#7fc07c0b0ebec52043f8cb43510cf346405f78a6"
integrity sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==
dependencies:
immer "^9.0.21"
redux "^4.2.1"
@@ -2596,9 +2596,9 @@
integrity sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==
"@types/node@*":
version "20.8.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.1.tgz#53452f1c4a6d88b9ab1b8a9cb190c41d52bafc23"
integrity sha512-iN6stS2QGMl50pjH0h/dIfmcEUogljAreQZ+cubPw3ISWp5fJrZw9NOh/sDHJfw92A41hCU+Ls5zTIsNYzcnuA==
version "20.8.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.2.tgz#d76fb80d87d0d8abfe334fc6d292e83e5524efc4"
integrity sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==
"@types/node@18.16.0":
version "18.16.0"
@@ -2630,7 +2630,7 @@
resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.1.tgz#aae6739d8f0d14a3bc9e6dd83e6d791ad75d4d76"
integrity sha512-Q7jDsRbzcNHIQje15CS/piKhu6lMLb9jwjxSfEIi4KcFKXW23GoJMkwQiJ8VObyfx+VmUaDcJxXaWN+cTCjVog==
"@types/prop-types@*", "@types/prop-types@^15.0.0", "@types/prop-types@^15.7.5":
"@types/prop-types@*", "@types/prop-types@^15.0.0", "@types/prop-types@^15.7.7":
version "15.7.8"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.8.tgz#805eae6e8f41bd19e88917d2ea200dc992f405d3"
integrity sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==
@@ -2709,7 +2709,16 @@
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@18.2.24":
"@types/react@*":
version "18.2.25"
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.25.tgz#99fa44154132979e870ff409dc5b6e67f06f0199"
integrity sha512-24xqse6+VByVLIr+xWaQ9muX1B4bXJKXBbjszbld/UEDslGLY53+ZucF44HCmLbMPejTzGG9XgR+3m2/Wqu1kw==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
csstype "^3.0.2"
"@types/react@18.2.24":
version "18.2.24"
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.24.tgz#3c7d68c02e0205a472f04abe4a0c1df35d995c05"
integrity sha512-Ee0Jt4sbJxMu1iDcetZEIKQr99J1Zfb6D4F3qfUWoR1JpInkY1Wdg4WwCyBjL257D0+jGqSl1twBjV8iCaC0Aw==
@@ -3940,9 +3949,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541:
version "1.0.30001542"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001542.tgz#823ddb5aed0a70d5e2bfb49126478e84e9514b85"
integrity sha512-UrtAXVcj1mvPBFQ4sKd38daP8dEcXXr5sQe6QNNinaPd0iA/cxg9/l3VrSdL73jgw5sKyuQ6jNgiKO12W3SsVA==
version "1.0.30001546"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz#10fdad03436cfe3cc632d3af7a99a0fb497407f0"
integrity sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==
canvg@^3.0.6:
version "3.0.10"
@@ -4073,9 +4082,9 @@ ci-info@^1.5.0:
integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
ci-info@^3.2.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91"
integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==
version "3.9.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
cjs-module-lexer@^1.0.0:
version "1.2.3"
@@ -5131,9 +5140,9 @@ ejs@^3.1.6:
jake "^10.8.5"
electron-to-chromium@^1.4.535:
version "1.4.538"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.538.tgz#86d6b60a8b7e0af3d2aaad3f4ba5a33838cc72ea"
integrity sha512-1a2m63NEookb1beNFTGDihgF3CKL7ksZ7PSA0VloON5DpTEhnOVgaDes8xkrDhkXRxlcN8JymQDGnv+Nn+uvhg==
version "1.4.543"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.543.tgz#51116ffc9fba1ee93514d6a40d34676aa6d7d1c4"
integrity sha512-t2ZP4AcGE0iKCCQCBx/K2426crYdxD3YU6l0uK2EO3FZH0pbC4pFz/sZm2ruZsND6hQBTcDWWlo/MLpiOdif5g==
elegant-spinner@^1.0.1:
version "1.0.1"
@@ -6304,9 +6313,9 @@ globals@^11.1.0:
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
globals@^13.19.0:
version "13.22.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.22.0.tgz#0c9fcb9c48a2494fbb5edbfee644285543eba9d8"
integrity sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==
version "13.23.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02"
integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==
dependencies:
type-fest "^0.20.2"
@@ -6435,11 +6444,9 @@ has-tostringtag@^1.0.0:
has-symbols "^1.0.2"
has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
function-bind "^1.1.1"
version "1.0.4"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6"
integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==
hasha@^5.0.0:
version "5.2.2"
@@ -8408,9 +8415,9 @@ mdn-data@2.0.4:
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
"mds@https://github.com/minio/mds.git#v0.9.3":
version "0.9.2"
resolved "https://github.com/minio/mds.git#36a8ba5be7e5c0ce5b10e1b7aba54f40edccc0e8"
"mds@https://github.com/minio/mds.git#v0.9.4":
version "0.9.4"
resolved "https://github.com/minio/mds.git#4c723cdbf1944546abba740b03845ef8877e5911"
dependencies:
"@types/styled-components" "^5.1.28"
"@uiw/react-textarea-code-editor" "^2.1.9"
@@ -11705,9 +11712,9 @@ terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7:
terser "^5.16.8"
terser@^5.0.0, terser@^5.10.0, terser@^5.16.8:
version "5.20.0"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.20.0.tgz#ea42aea62578703e33def47d5c5b93c49772423e"
integrity sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==
version "5.21.0"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.21.0.tgz#d2b27e92b5e56650bc83b6defa00a110f0b124b2"
integrity sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.8.2"