\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport {\n Grid,\n IconButton,\n InputLabel,\n TextField,\n TextFieldProps,\n Tooltip,\n} from \"@mui/material\";\nimport { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n onKeyPress?: (e: any) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n multiline?: boolean;\n type?: string;\n tooltip?: string;\n autoComplete?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n min?: string;\n max?: string;\n overlayId?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nfunction InputField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n }\n {...props}\n />\n );\n}\n\nconst InputBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n type = \"text\",\n autoComplete = \"off\",\n disabled = false,\n multiline = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n min,\n max,\n overlayId,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n pattern = \"\",\n autoFocus = false,\n classes,\n className = \"\",\n onKeyPress,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n\n if (type === \"number\" && min) {\n inputProps[\"min\"] = min;\n }\n\n if (type === \"number\" && max) {\n inputProps[\"max\"] = max;\n }\n\n if (pattern !== \"\") {\n inputProps[\"pattern\"] = pattern;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport {\n Grid,\n IconButton,\n InputLabel,\n TextField,\n TextFieldProps,\n Tooltip,\n} from \"@mui/material\";\nimport { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n onKeyPress?: (e: any) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n multiline?: boolean;\n type?: string;\n tooltip?: string;\n autoComplete?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n min?: string;\n max?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nfunction InputField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n }\n {...props}\n />\n );\n}\n\nconst InputBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n type = \"text\",\n autoComplete = \"off\",\n disabled = false,\n multiline = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n min,\n max,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n pattern = \"\",\n autoFocus = false,\n classes,\n className = \"\",\n onKeyPress,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n\n if (type === \"number\" && min) {\n inputProps[\"min\"] = min;\n }\n\n if (type === \"number\" && max) {\n inputProps[\"max\"] = max;\n }\n\n if (pattern !== \"\") {\n inputProps[\"pattern\"] = pattern;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\n// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport ArrowRightIcon from \"@mui/icons-material/ArrowRight\";\nimport ErrorOutlineIcon from \"@mui/icons-material/ErrorOutline\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport {\n setErrorSnackMessage,\n setModalErrorSnackMessage,\n} from \"../../../../../actions\";\nimport { snackBarMessage } from \"../../../../../types\";\n\ninterface ImodalErrorProps {\n customStyle?: any;\n classes: any;\n modalSnackMessage: snackBarMessage;\n displayErrorMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n modalErrorContainer: {\n position: \"absolute\",\n marginTop: 10,\n width: \"80%\",\n backgroundColor: \"#fff\",\n border: \"#C72C48 1px solid\",\n borderLeftWidth: 12,\n borderRadius: 3,\n zIndex: 1000,\n padding: \"10px 15px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n opacity: 0,\n transitionDuration: \"0.2s\",\n },\n modalErrorShow: {\n opacity: 1,\n },\n closeButton: {\n position: \"absolute\",\n right: 5,\n fontSize: \"small\",\n border: 0,\n backgroundColor: \"#fff\",\n cursor: \"pointer\",\n },\n errorTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n errorLabel: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 500,\n marginLeft: 5,\n marginRight: 25,\n },\n messageIcon: {\n color: \"#C72C48\",\n display: \"flex\",\n \"& svg\": {\n width: 32,\n height: 32,\n },\n },\n detailsButton: {\n color: \"#9C9C9C\",\n display: \"flex\",\n alignItems: \"center\",\n border: 0,\n backgroundColor: \"transparent\",\n paddingLeft: 5,\n fontSize: 14,\n transformDuration: \"0.3s\",\n cursor: \"pointer\",\n },\n extraDetailsContainer: {\n fontStyle: \"italic\",\n color: \"#9C9C9C\",\n lineHeight: 0,\n padding: \"0 10px\",\n transition: \"all .2s ease-in-out\",\n overflow: \"hidden\",\n },\n extraDetailsOpen: {\n lineHeight: 1,\n padding: \"3px 10px\",\n },\n arrowElement: {\n marginLeft: -5,\n },\n arrowOpen: {\n transform: \"rotateZ(90deg)\",\n transformDuration: \"0.3s\",\n },\n });\n\nvar timerI: any;\n\nconst startHideTimer = (callbackFunction: () => void) => {\n timerI = setInterval(callbackFunction, 10000);\n};\n\nconst stopHideTimer = () => {\n clearInterval(timerI);\n};\n\nconst ModalError = ({\n classes,\n modalSnackMessage,\n displayErrorMessage,\n customStyle,\n}: ImodalErrorProps) => {\n const [detailsOpen, setDetailsOpen] = useState(false);\n const [displayErrorMsg, setDisplayErrorMsg] = useState(false);\n\n const closeErrorMessage = useCallback(() => {\n setDisplayErrorMsg(false);\n }, []);\n\n useEffect(() => {\n if (!displayErrorMsg) {\n displayErrorMessage({ detailedError: \"\", errorMessage: \"\" });\n setDetailsOpen(false);\n //clearInterval(timerI);\n }\n }, [displayErrorMessage, displayErrorMsg]);\n\n useEffect(() => {\n if (\n modalSnackMessage.message !== \"\" &&\n modalSnackMessage.type === \"error\"\n ) {\n //Error message received, we trigger the animation\n setDisplayErrorMsg(true);\n //startHideTimer(closeErrorMessage);\n }\n }, [closeErrorMessage, modalSnackMessage.message, modalSnackMessage.type]);\n\n const detailsToggle = () => {\n setDetailsOpen(!detailsOpen);\n };\n\n const message = get(modalSnackMessage, \"message\", \"\");\n const messageDetails = get(modalSnackMessage, \"detailedErrorMsg\", \"\");\n\n if (modalSnackMessage.type !== \"error\" || message === \"\") {\n return null;\n }\n\n return (\n \n
startHideTimer(closeErrorMessage)}\n >\n \n
\n \n \n \n {message}\n
\n {messageDetails !== \"\" && (\n \n
\n \n
\n
\n {messageDetails}\n
\n \n )}\n
\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst mapDispatchToProps = {\n displayErrorMessage: setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(ModalError));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport ModalError from \"../FormComponents/ModalError/ModalError\";\nimport CloseIcon from \"@mui/icons-material/Close\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n root: {\n \"& .MuiPaper-root\": {\n padding: \"0 2rem 2rem 1rem\",\n },\n },\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport api from \"../../../../common/api\";\nimport { ITierElement } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { LockIcon } from \"../../../../icons\";\n\ninterface ITierCredentialsModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n tierData: ITierElement;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst UpdateTierCredentialsModal = ({\n open,\n closeModalAndRefresh,\n classes,\n tierData,\n setModalErrorSnackMessage,\n}: ITierCredentialsModal) => {\n const [savingTiers, setSavingTiers] = useState(false);\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n\n const [creds, setCreds] = useState(\"\");\n const [encodedCreds, setEncodedCreds] = useState(\"\");\n\n const [accountName, setAccountName] = useState(\"\");\n const [accountKey, setAccountKey] = useState(\"\");\n\n // Validations\n const [isFormValid, setIsFormValid] = useState(true);\n\n const type = get(tierData, \"type\", \"\");\n const name = get(tierData, `${type}.name`, \"\");\n\n useEffect(() => {\n let valid = true;\n\n if (type === \"s3\" || type === \"azure\") {\n if (accountName === \"\" || accountKey === \"\") {\n valid = false;\n }\n } else if (type === \"gcs\") {\n if (encodedCreds === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [accountKey, accountName, encodedCreds, type]);\n\n const addRecord = () => {\n let rules = {};\n\n if (type === \"s3\" || type === \"azure\") {\n rules = {\n access_key: accountName,\n secret_key: accountKey,\n };\n } else if (type === \"gcs\") {\n rules = {\n creds: encodedCreds,\n };\n }\n if (name !== \"\") {\n api\n .invoke(\"PUT\", `/api/v1/admin/tiers/${type}/${name}/credentials`, rules)\n .then(() => {\n setSavingTiers(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setSavingTiers(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n setModalErrorSnackMessage({\n errorMessage: \"There was an error retrieving tier information\",\n detailedError: \"\",\n });\n }\n };\n\n return (\n }\n onClose={() => {\n closeModalAndRefresh(false);\n }}\n title={`Update Credentials - ${type} / ${name}`}\n >\n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(UpdateTierCredentialsModal));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak && }\n \n {errorMessage}\n \n \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","inputLabel","fontWeight","textBoxContainer","border","paddingLeft","label","classes","onChange","id","name","disabled","tooltip","required","error","accept","value","useState","showFileSelector","setShowSelector","Grid","item","xs","className","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","title","placement","HelpIcon","type","e","fileName","get","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","color","component","onClick","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","inputStyles","makeStyles","inputFieldStyles","InputField","props","InputProps","flexGrow","position","overlayAction","right","top","maxHeight","autoComplete","multiline","index","placeholder","min","max","overlayIcon","overlayObject","extraInputProps","noLabelMinWidth","pattern","autoFocus","onKeyPress","inputProps","container","clsx","inputBoxContainer","noMinWidthLabel","fullWidth","helperText","inputRebase","disableTouchRipple","timerI","stopHideTimer","clearInterval","mapDispatchToProps","displayErrorMessage","setModalErrorSnackMessage","connect","state","modalSnackMessage","system","modalSnackBar","modalErrorContainer","width","backgroundColor","borderLeftWidth","borderRadius","zIndex","padding","left","transform","opacity","transitionDuration","modalErrorShow","closeButton","fontSize","cursor","errorTitle","display","alignItems","errorLabel","marginLeft","marginRight","messageIcon","height","detailsButton","transformDuration","extraDetailsContainer","fontStyle","lineHeight","transition","extraDetailsOpen","arrowElement","arrowOpen","customStyle","detailsOpen","setDetailsOpen","displayErrorMsg","setDisplayErrorMsg","closeErrorMessage","useCallback","useEffect","detailedError","message","messageDetails","Fragment","style","onMouseOver","onMouseLeave","setInterval","Close","ErrorOutline","detailsContainerLink","ArrowRight","connector","setModalSnackMessage","deleteDialogStyles","root","content","paddingBottom","customDialogSize","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","customSize","paper","detailedErrorMsg","Dialog","open","scroll","event","reason","DialogTitle","titleText","closeContainer","Snackbar","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","DialogContent","buttonContainer","textAlign","modalBasic","formFieldStyles","closeModalAndRefresh","tierData","savingTiers","setSavingTiers","accessKey","setAccessKey","secretKey","setSecretKey","creds","setCreds","encodedCreds","setEncodedCreds","accountName","setAccountName","accountKey","setAccountKey","isFormValid","setIsFormValid","valid","noValidate","onSubmit","preventDefault","rules","access_key","secret_key","api","then","catch","err","addRecord","formFieldRow","encodedValue","variant","errorBlock","palette","main","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1140.49ee98af.chunk.js b/portal-ui/build/static/js/1140.044ef809.chunk.js
similarity index 95%
rename from portal-ui/build/static/js/1140.49ee98af.chunk.js
rename to portal-ui/build/static/js/1140.044ef809.chunk.js
index 8a1b1c93a..760a53564 100644
--- a/portal-ui/build/static/js/1140.49ee98af.chunk.js
+++ b/portal-ui/build/static/js/1140.044ef809.chunk.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1140],{39080:function(e,n,t){t.r(n),t.d(n,{default:function(){return Z}});var i=t(18489),r=t(35531),a=t(50390),s=t(38342),l=t.n(s),o=t(86509),c=t(4285),d=t(66946),u=t(76352),m=t(25594),h=t(58217),p=t(65771),x=t(70758),y=t(33034),g=t.n(y),f=t(85204),v=t(72462),j=t(62559),b=(0,c.Z)((function(e){return(0,o.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,i.Z)((0,i.Z)({},v.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var n=e.label,t=void 0===n?"":n,i=e.value,r=void 0===i?"":i,a=e.classes,s=void 0===a?{}:a;return(0,j.jsxs)("div",{className:s.container,children:[(0,j.jsxs)("div",{className:s.inputLabel,children:[t,":"]}),(0,j.jsx)("div",{className:s.inputWithCopy,children:(0,j.jsx)(h.Z,{value:r,readOnly:!0,endAdornment:(0,j.jsx)(p.Z,{position:"end",children:(0,j.jsx)(g(),{text:r,children:(0,j.jsx)(x.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,j.jsx)(f.TI,{})})})})})})]})})),w=t(47424),Z=(0,c.Z)((function(e){return(0,o.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"},promptIcon:{marginRight:".1rem",display:"flex",alignItems:"center",height:"2rem",width:"2rem"}})}))((function(e){var n=e.classes,t=e.newServiceAccount,s=e.open,o=e.closeModal,c=e.entity;if(!t)return null;var h=l()(t,"console",null),p=l()(t,"idp",!1);return(0,j.jsx)(u.Z,{modalOpen:s,onClose:function(){o()},title:(0,j.jsx)("div",{className:n.promptTitle,children:(0,j.jsxs)("div",{children:["New ",c," Created"]})}),titleIcon:(0,j.jsx)(f.tV,{}),children:(0,j.jsxs)(m.ZP,{container:!0,children:[(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:n.formScrollable,children:["A new ",c," has been created with the following details:",!p&&h&&(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:n.credentialsPanel,children:[(0,j.jsx)("div",{className:n.credentialTitle,children:"Console Credentials"}),Array.isArray(h)&&h.map((function(e,n){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(b,{label:"Access Key",value:e.accessKey}),(0,j.jsx)(b,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(h)&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(b,{label:"Access Key",value:h.accessKey}),(0,j.jsx)(b,{label:"Secret Key",value:h.secretKey})]})]})}),p?(0,j.jsx)("div",{className:n.warningBlock,children:"Please Login via the configured external identity provider."}):(0,j.jsxs)("div",{className:n.warningBlock,children:[(0,j.jsx)(w.Z,{}),(0,j.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,j.jsx)(d.Z,{id:"done-button",variant:"outlined",className:n.buttonSpacer,onClick:function(){o()},color:"primary",children:"Done"}),!p&&(0,j.jsx)(d.Z,{id:"download-button",onClick:function(){var e={};if(h)if(Array.isArray(h)){var n=h.map((function(e){return{url:e.url,access_key:e.accessKey,secret_key:e.secretKey,api:"s3v4",path:"auto"}}));e={console:(0,r.Z)(n)}}else e={console:[{url:h.url,access_key:h.accessKey,secret_key:h.secretKey,api:"s3v4",path:"auto"}]};!function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(n)),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}("credentials.json",JSON.stringify((0,i.Z)({},e)))},endIcon:(0,j.jsx)(f._8,{}),variant:"contained",color:"primary",children:"Download"})]})]})})}))}}]);
-//# sourceMappingURL=1140.49ee98af.chunk.js.map
\ No newline at end of file
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1140],{39080:function(e,n,t){t.r(n),t.d(n,{default:function(){return Z}});var i=t(18489),r=t(35531),a=t(50390),s=t(38342),l=t.n(s),o=t(86509),c=t(4285),d=t(66946),u=t(51002),m=t(25594),h=t(58217),p=t(65771),x=t(70758),y=t(33034),g=t.n(y),f=t(86362),v=t(72462),j=t(62559),b=(0,c.Z)((function(e){return(0,o.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,i.Z)((0,i.Z)({},v.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var n=e.label,t=void 0===n?"":n,i=e.value,r=void 0===i?"":i,a=e.classes,s=void 0===a?{}:a;return(0,j.jsxs)("div",{className:s.container,children:[(0,j.jsxs)("div",{className:s.inputLabel,children:[t,":"]}),(0,j.jsx)("div",{className:s.inputWithCopy,children:(0,j.jsx)(h.Z,{value:r,readOnly:!0,endAdornment:(0,j.jsx)(p.Z,{position:"end",children:(0,j.jsx)(g(),{text:r,children:(0,j.jsx)(x.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,j.jsx)(f.TI,{})})})})})})]})})),w=t(47424),Z=(0,c.Z)((function(e){return(0,o.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"},promptIcon:{marginRight:".1rem",display:"flex",alignItems:"center",height:"2rem",width:"2rem"}})}))((function(e){var n=e.classes,t=e.newServiceAccount,s=e.open,o=e.closeModal,c=e.entity;if(!t)return null;var h=l()(t,"console",null),p=l()(t,"idp",!1);return(0,j.jsx)(u.Z,{modalOpen:s,onClose:function(){o()},title:(0,j.jsx)("div",{className:n.promptTitle,children:(0,j.jsxs)("div",{children:["New ",c," Created"]})}),titleIcon:(0,j.jsx)(f.tV,{}),children:(0,j.jsxs)(m.ZP,{container:!0,children:[(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:n.formScrollable,children:["A new ",c," has been created with the following details:",!p&&h&&(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:n.credentialsPanel,children:[(0,j.jsx)("div",{className:n.credentialTitle,children:"Console Credentials"}),Array.isArray(h)&&h.map((function(e,n){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(b,{label:"Access Key",value:e.accessKey}),(0,j.jsx)(b,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(h)&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(b,{label:"Access Key",value:h.accessKey}),(0,j.jsx)(b,{label:"Secret Key",value:h.secretKey})]})]})}),p?(0,j.jsx)("div",{className:n.warningBlock,children:"Please Login via the configured external identity provider."}):(0,j.jsxs)("div",{className:n.warningBlock,children:[(0,j.jsx)(w.Z,{}),(0,j.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,j.jsxs)(m.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,j.jsx)(d.Z,{id:"done-button",variant:"outlined",className:n.buttonSpacer,onClick:function(){o()},color:"primary",children:"Done"}),!p&&(0,j.jsx)(d.Z,{id:"download-button",onClick:function(){var e={};if(h)if(Array.isArray(h)){var n=h.map((function(e){return{url:e.url,access_key:e.accessKey,secret_key:e.secretKey,api:"s3v4",path:"auto"}}));e={console:(0,r.Z)(n)}}else e={console:[{url:h.url,access_key:h.accessKey,secret_key:h.secretKey,api:"s3v4",path:"auto"}]};!function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(n)),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}("credentials.json",JSON.stringify((0,i.Z)({},e)))},endIcon:(0,j.jsx)(f._8,{}),variant:"contained",color:"primary",children:"Download"})]})]})})}))}}]);
+//# sourceMappingURL=1140.044ef809.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1140.49ee98af.chunk.js.map b/portal-ui/build/static/js/1140.044ef809.chunk.js.map
similarity index 99%
rename from portal-ui/build/static/js/1140.49ee98af.chunk.js.map
rename to portal-ui/build/static/js/1140.044ef809.chunk.js.map
index 4672e9c5c..194b8ac8f 100644
--- a/portal-ui/build/static/js/1140.49ee98af.chunk.js.map
+++ b/portal-ui/build/static/js/1140.044ef809.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/1140.49ee98af.chunk.js","mappings":"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","sources":["screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport { Button } from \"@mui/material\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n promptIcon: {\n marginRight: \".1rem\",\n display: \"flex\",\n alignItems: \"center\",\n height: \"2rem\",\n width: \"2rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text)\n );\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n
\n
New {entity} Created
\n
\n }\n titleIcon={}\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n
\n Please Login via the configured external identity provider.\n
\n ) : (\n
\n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n \n\n {!idp && (\n \n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n"],"names":["withStyles","theme","createStyles","container","display","flexFlow","padding","inputWithCopy","width","background","height","marginRight","inputLabel","fieldBasic","fontSize","label","value","classes","className","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onClick","onMouseDown","edge","warningBlock","color","margin","alignItems","credentialTitle","fontWeight","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","promptIcon","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Grid","item","xs","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","WarnIcon","Button","id","variant","consoleExtras","cCreds","itemMap","url","access_key","secret_key","api","path","console","filename","element","document","createElement","setAttribute","encodeURIComponent","style","body","appendChild","click","removeChild","download","JSON","stringify","endIcon"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/1140.044ef809.chunk.js","mappings":"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","sources":["screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport { Button } from \"@mui/material\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n promptIcon: {\n marginRight: \".1rem\",\n display: \"flex\",\n alignItems: \"center\",\n height: \"2rem\",\n width: \"2rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text)\n );\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n
\n
New {entity} Created
\n
\n }\n titleIcon={}\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n
\n Please Login via the configured external identity provider.\n
\n ) : (\n
\n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n \n \n \n\n {!idp && (\n \n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n"],"names":["withStyles","theme","createStyles","container","display","flexFlow","padding","inputWithCopy","width","background","height","marginRight","inputLabel","fieldBasic","fontSize","label","value","classes","className","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onClick","onMouseDown","edge","warningBlock","color","margin","alignItems","credentialTitle","fontWeight","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","promptIcon","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Grid","item","xs","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","WarnIcon","Button","id","variant","consoleExtras","cCreds","itemMap","url","access_key","secret_key","api","path","console","filename","element","document","createElement","setAttribute","encodeURIComponent","style","body","appendChild","click","removeChild","download","JSON","stringify","endIcon"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1660.0a544a1c.chunk.js b/portal-ui/build/static/js/1660.0a544a1c.chunk.js
new file mode 100644
index 000000000..55737ac34
--- /dev/null
+++ b/portal-ui/build/static/js/1660.0a544a1c.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1660],{61660:function(e,t,n){n.r(t),n.d(t,{default:function(){return T}});var i,a=n(23430),r=n(18489),o=n(50390),s=n(34424),l=n(65771),c=n(81378),d=n(18201),m=n(86509),h=n(62449),g=n(4285),u=n(66946),p=n(12066),x=n(25594);!function(e){e.unknown="unknown",e.form="form",e.redirect="redirect",e.serviceAccount="service-account"}(i||(i={}));var f=n(44149),v=n(30324),j=n(24442),Z=n(18221),b=n(45980),w=n(28948),S=n(86362),P=n(72462),y=n(52971),N=n(62559),k=function(e){return(0,N.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 12"},e),{},{children:(0,N.jsx)("path",{id:"Path_7819","data-name":"Path 7819",d:"M9.884,3.523H8.537V2.27A2.417,2.417,0,0,0,6,0,2.417,2.417,0,0,0,3.463,2.27V3.523H2.116A2.019,2.019,0,0,0,0,5.423V9.413a2.012,2.012,0,0,0,2.062,1.9L6,12l3.938-.688A2.012,2.012,0,0,0,12,9.413V5.423a2.019,2.019,0,0,0-2.116-1.9M6.5,7.658v.724a.474.474,0,0,1-.472.474H5.971A.474.474,0,0,1,5.5,8.381V7.658a.9.9,0,0,1-.394-.744h0a.894.894,0,1,1,1.4.744m.985-4.135H4.514V2.27A1.416,1.416,0,0,1,6,.94,1.416,1.416,0,0,1,7.486,2.27Z",fill:"#071d43"})}))},L=function(e){return(0,N.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 9.008 12"},e),{},{children:[(0,N.jsx)("defs",{children:(0,N.jsx)("clipPath",{id:"clip-path",children:(0,N.jsx)("rect",{id:"Rectangle_991","data-name":"Rectangle 991",width:"9.008",height:"12",fill:"#071d43"})})}),(0,N.jsxs)("g",{id:"Group_2365","data-name":"Group 2365","clip-path":"url(#clip-path)",children:[(0,N.jsx)("path",{id:"Path_7088","data-name":"Path 7088",d:"M26.843,6.743a3.4,3.4,0,0,0,3.411-3.372,3.411,3.411,0,0,0-6.822,0,3.4,3.4,0,0,0,3.411,3.372",transform:"translate(-22.334)",fill:"#071d43"}),(0,N.jsx)("path",{id:"Path_7089","data-name":"Path 7089",d:"M8.639,157.057a5.164,5.164,0,0,0-1.957-1.538,5.438,5.438,0,0,0-1.083-.362,5.2,5.2,0,0,0-1.117-.123c-.075,0-.151,0-.225.005H4.231a4.928,4.928,0,0,0-.549.059,5.236,5.236,0,0,0-3.276,1.92c-.029.039-.059.078-.086.116h0a1.723,1.723,0,0,0-.134,1.784,1.583,1.583,0,0,0,.255.356,1.559,1.559,0,0,0,.337.267,1.613,1.613,0,0,0,.4.167,1.742,1.742,0,0,0,.449.058H7.389a1.747,1.747,0,0,0,.452-.058,1.593,1.593,0,0,0,.4-.169,1.524,1.524,0,0,0,.335-.271,1.548,1.548,0,0,0,.251-.361,1.761,1.761,0,0,0-.191-1.85",transform:"translate(0.001 -147.766)",fill:"#071d43"})]})]}))},A=n(50364),I=function(e){return(0,N.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 7.819 7.621"},e),{},{children:(0,N.jsx)("path",{id:"github",d:"M8.543,4.917a4.146,4.146,0,0,1-.038.424,3.8,3.8,0,0,1-.8,1.816,3.982,3.982,0,0,1-.514.542,3.72,3.72,0,0,1-.8.531,4.287,4.287,0,0,1-.471.2.286.286,0,0,1-.149.02.174.174,0,0,1-.153-.163c0-.028,0-.056,0-.084V7.214A1.867,1.867,0,0,0,5.6,6.94a.794.794,0,0,0-.239-.477l.229-.035a2.168,2.168,0,0,0,.821-.291,1.347,1.347,0,0,0,.572-.691,2.291,2.291,0,0,0,.14-.592,2.689,2.689,0,0,0,.01-.488,1.44,1.44,0,0,0-.341-.824L6.747,3.49a.076.076,0,0,1-.007-.013A1.352,1.352,0,0,0,6.7,2.445a.478.478,0,0,0-.317.019,2.726,2.726,0,0,0-.62.289l-.137.086a4.467,4.467,0,0,0-.645-.114,4.047,4.047,0,0,0-.663,0,4.241,4.241,0,0,0-.651.115l-.126-.08a2.786,2.786,0,0,0-.643-.3.5.5,0,0,0-.311-.022,1.364,1.364,0,0,0-.038,1.031l-.154.206a1.392,1.392,0,0,0-.227.6,2.519,2.519,0,0,0,0,.578,2.17,2.17,0,0,0,.178.675,1.356,1.356,0,0,0,.609.65,2.294,2.294,0,0,0,.84.258l.131.02a.874.874,0,0,0-.243.515.793.793,0,0,1-.254.085c-.071.012-.141.014-.212.019a.623.623,0,0,1-.495-.2A1.545,1.545,0,0,1,2.578,6.7c-.047-.061-.084-.128-.135-.185a.8.8,0,0,0-.432-.256.347.347,0,0,0-.189.005.389.389,0,0,0-.048.025.126.126,0,0,0,.049.121.521.521,0,0,0,.112.091.712.712,0,0,1,.188.165,1.542,1.542,0,0,1,.233.41.721.721,0,0,0,.585.456,1.773,1.773,0,0,0,.424.032l.212-.022.083-.01.005.069,0,.527,0,.152a.176.176,0,0,1-.2.165.344.344,0,0,1-.1-.021,3.873,3.873,0,0,1-.74-.341,3.772,3.772,0,0,1-.838-.681,4.309,4.309,0,0,1-.445-.57A3.833,3.833,0,0,1,1,6.16a3.936,3.936,0,0,1-.216-.793L.749,5.079a4.242,4.242,0,0,1,0-.7,3.848,3.848,0,0,1,.57-1.705A3.9,3.9,0,0,1,3.053,1.159,3.716,3.716,0,0,1,4,.878,4.223,4.223,0,0,1,4.768.831a4.158,4.158,0,0,1,.523.047,3.674,3.674,0,0,1,.862.246,3.964,3.964,0,0,1,.975.59,3.793,3.793,0,0,1,.609.629,3.933,3.933,0,0,1,.585,1.066,4.2,4.2,0,0,1,.23,1.136l-.011.372h0Z",transform:"translate(-0.734 -0.829)"})}))},C=n(44977),E=(0,h.Z)((function(e){return(0,m.Z)({root:{"& .MuiOutlinedInput-root":{paddingLeft:0,"& svg":{marginLeft:4,height:14,color:e.palette.primary.main},"& input":{padding:10,fontSize:14,paddingLeft:0,"&::placeholder":{fontSize:12},"@media (max-width: 900px)":{padding:10}},"& fieldset":{},"& fieldset:hover":{borderBottom:"2px solid #000000",borderRadius:0}}}})}));function B(e){var t=E();return(0,N.jsx)(p.Z,(0,r.Z)({classes:{root:t.root},variant:"standard"},e))}var T=(0,s.$j)((function(e){return{loggedIn:e.loggedIn}}),{userLoggedIn:f.nD,setErrorSnackMessage:f.Ih})((0,g.Z)((function(e){return(0,m.Z)((0,r.Z)({root:{backgroundImage:"url('/images/background-wave-orig.svg'), url('/images/background.svg')",backgroundPosition:"center 250px, center center",backgroundRepeat:"no-repeat",backgroundSize:"2547px 980px,cover",backgroundBlendMode:"color-dodge",position:"absolute",top:0,left:0,width:"100%",height:"100%"},form:{width:"100%"},submit:{margin:"30px 0px 8px",height:40,width:"100%",boxShadow:"none",padding:"16px 30px"},learnMore:{textAlign:"center",fontSize:10,"& a":{color:"#2781B0"},"& .min-icon":{marginLeft:12,marginTop:2,width:10}},separator:{marginLeft:8,marginRight:8},linkHolder:{marginTop:20},miniLinks:{margin:"auto",fontSize:10,textAlign:"center",color:"#B2DEF5","& a":{color:"#B2DEF5",textDecoration:"none"},"& .min-icon":{height:10,color:"#B2DEF5"}},miniLogo:{marginTop:8,"& .min-icon":{height:12,paddingTop:2}},loginPage:{height:"100%",maxWidth:360,margin:"auto"},loginContainer:{"& .right-items":{backgroundColor:"white",borderRadius:3,boxShadow:"6px 6px 50",padding:20},"& .consoleTextBanner":{fontWeight:300,fontSize:"calc(3vw + 3vh + 1.5vmin)",lineHeight:1.15,color:"#ffffff",flex:1,textAlign:"center",height:"100%",display:"flex",justifyContent:"flex-start",margin:"auto","& .logoLine":{display:"flex",alignItems:"center",fontSize:18,marginTop:40},"& .left-items":{margin:"auto",paddingTop:100,paddingBottom:60},"& .left-logo":{"& .min-icon":{color:"white",width:108},marginBottom:10},"& .text-line1":{font:" 100 44px 'Lato'"},"& .text-line2":{fontSize:80,fontWeight:100,textTransform:"uppercase"},"& .text-line3":{fontSize:14,fontWeight:"bold"},"& .logo-console":{display:"flex",alignItems:"center","@media (max-width: 900px)":{marginTop:20,flexFlow:"column","& svg":{width:"50%"}}}}},"@media (max-width: 900px)":{loginContainer:{display:"flex",flexFlow:"column","& .consoleTextBanner":{margin:0,flex:2,"& .left-items":{alignItems:"center",textAlign:"center"},"& .logoLine":{justifyContent:"center"}}}},loadingLoginStrategy:{textAlign:"center"},headerTitle:{marginRight:"auto",marginBottom:15},submitContainer:{textAlign:"right"},linearPredef:{height:10},loaderAlignment:{display:"flex",width:"100%",height:"100%",justifyContent:"center",alignItems:"center",flexDirection:"column"},retryButton:{alignSelf:"flex-end"}},P.bK))}))((function(e){var t=e.classes,n=e.userLoggedIn,r=e.setErrorSnackMessage,s=(0,o.useState)(""),m=(0,a.Z)(s,2),h=m[0],g=m[1],p=(0,o.useState)(""),f=(0,a.Z)(p,2),P=f[0],E=f[1],T=(0,o.useState)(""),_=(0,a.Z)(T,2),M=_[0],z=_[1],F=(0,o.useState)({loginStrategy:i.unknown,redirect:""}),R=(0,a.Z)(F,2),H=R[0],V=R[1],D=(0,o.useState)(!1),W=(0,a.Z)(D,2),K=W[0],G=W[1],O=(0,o.useState)(!0),Y=(0,a.Z)(O,2),q=Y[0],J=Y[1],U=(0,o.useState)(""),$=(0,a.Z)(U,2),Q=$[0],X=$[1],ee=(0,o.useState)(!0),te=(0,a.Z)(ee,2),ne=te[0],ie=te[1],ae={form:"/api/v1/login","service-account":"/api/v1/login/operator"},re={form:{accessKey:h,secretKey:M},"service-account":{jwt:P}},oe=function(e){e.preventDefault(),G(!0),v.Z.invoke("POST",ae[H.loginStrategy]||"/api/v1/login",re[H.loginStrategy]).then((function(){n(!0),H.loginStrategy===i.form&&localStorage.setItem("userLoggedIn",(0,w.ug)(h));var e="/";localStorage.getItem("redirect-path")&&""!==localStorage.getItem("redirect-path")&&(e="".concat(localStorage.getItem("redirect-path")),localStorage.setItem("redirect-path","")),j.Z.push(e)})).catch((function(e){G(!1),r(e)}))};(0,o.useEffect)((function(){q&&v.Z.invoke("GET","/api/v1/login").then((function(e){V(e),J(!1)})).catch((function(e){r(e),J(!1)}))}),[q,r]),(0,o.useEffect)((function(){ne&&v.Z.invoke("GET","/api/v1/check-version").then((function(e){e.current_version;var t=e.latest_version;X(t),ie(!1)})).catch((function(e){v.Z.invoke("GET","/api/v1/check-operator-version").then((function(e){e.current_version;var t=e.latest_version;X(t),ie(!1)})).catch((function(e){ie(!1)}))}))}),[ne,ie,X]);var se=null;switch(H.loginStrategy){case i.form:se=(0,N.jsx)(o.Fragment,{children:(0,N.jsxs)("form",{className:t.form,noValidate:!0,onSubmit:oe,children:[(0,N.jsxs)(x.ZP,{container:!0,spacing:2,children:[(0,N.jsx)(x.ZP,{item:!0,xs:12,className:t.spacerBottom,children:(0,N.jsx)(B,{fullWidth:!0,id:"accessKey",className:t.inputField,value:h,onChange:function(e){return g(e.target.value)},placeholder:"Username",name:"accessKey",autoComplete:"username",disabled:K,variant:"outlined",InputProps:{startAdornment:(0,N.jsx)(l.Z,{position:"start",className:t.iconColor,children:(0,N.jsx)(L,{})})}})}),(0,N.jsx)(x.ZP,{item:!0,xs:12,children:(0,N.jsx)(B,{fullWidth:!0,className:t.inputField,value:M,onChange:function(e){return z(e.target.value)},name:"secretKey",type:"password",id:"secretKey",autoComplete:"current-password",disabled:K,placeholder:"Password",variant:"outlined",InputProps:{startAdornment:(0,N.jsx)(l.Z,{position:"start",className:t.iconColor,children:(0,N.jsx)(k,{})})}})})]}),(0,N.jsx)(x.ZP,{item:!0,xs:12,className:t.submitContainer,children:(0,N.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",id:"do-login",className:t.submit,disabled:""===M||""===h||K,children:"Login"})}),(0,N.jsx)(x.ZP,{item:!0,xs:12,className:t.linearPredef,children:K&&(0,N.jsx)(c.Z,{})})]})});break;case i.redirect:se=(0,N.jsx)(o.Fragment,{children:(0,N.jsx)(u.Z,{component:"a",href:H.redirect,type:"submit",variant:"contained",color:"primary",id:"sso-login",className:t.submit,children:"Login with SSO"})});break;case i.serviceAccount:se=(0,N.jsx)(o.Fragment,{children:(0,N.jsxs)("form",{className:t.form,noValidate:!0,onSubmit:oe,children:[(0,N.jsx)(x.ZP,{container:!0,spacing:2,children:(0,N.jsx)(x.ZP,{item:!0,xs:12,children:(0,N.jsx)(B,{required:!0,className:t.inputField,fullWidth:!0,id:"jwt",value:P,onChange:function(e){return E(e.target.value)},name:"jwt",autoComplete:"off",disabled:K,placeholder:"Enter JWT",variant:"outlined",InputProps:{startAdornment:(0,N.jsx)(l.Z,{position:"start",children:(0,N.jsx)(S.mB,{})})}})})}),(0,N.jsx)(x.ZP,{item:!0,xs:12,className:t.submitContainer,children:(0,N.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",id:"do-login",className:t.submit,disabled:""===P||K,children:"Login"})}),(0,N.jsx)(x.ZP,{item:!0,xs:12,className:t.linearPredef,children:K&&(0,N.jsx)(c.Z,{})})]})});break;default:se=(0,N.jsx)("div",{className:t.loaderAlignment,children:q?(0,N.jsx)(d.Z,{className:t.loadingLoginStrategy}):(0,N.jsxs)(o.Fragment,{children:[(0,N.jsx)("div",{children:(0,N.jsx)("p",{children:"An error has occurred, the backend cannot be reached."})}),(0,N.jsx)("div",{children:(0,N.jsx)(u.Z,{onClick:function(){J(!0)},endIcon:(0,N.jsx)(Z.default,{}),color:"primary",variant:"outlined",id:"retry",className:t.retryButton,children:"Retry"})})]})})}var le=H.loginStrategy===i.serviceAccount?"Operator":"Console";return(0,N.jsxs)("div",{className:t.root,children:[(0,N.jsx)(y.ZP,{}),(0,N.jsx)(b.Z,{}),(0,N.jsx)("div",{className:t.loginPage,children:(0,N.jsxs)(x.ZP,{container:!0,className:t.loginContainer,children:[(0,N.jsx)(x.ZP,{item:!0,className:"consoleTextBanner",xs:12,children:(0,N.jsxs)("div",{className:"left-items",children:[(0,N.jsx)("div",{className:"left-logo",children:(0,N.jsx)(S.BH,{})}),(0,N.jsx)("div",{className:"text-line1",children:"Welcome to"}),(0,N.jsx)("div",{className:"text-line2",children:le}),(0,N.jsx)("div",{className:"text-line3",children:"Multi-Cloud Object Storage"})]})}),(0,N.jsxs)(x.ZP,{item:!0,className:"right-items",xs:12,children:[se,(0,N.jsx)("div",{className:t.learnMore,children:(0,N.jsxs)("a",{href:"https://docs.min.io/minio/baremetal/console/minio-console.html?ref=con",target:"_blank",rel:"noreferrer",children:["Learn more about Console ",(0,N.jsx)(S.LZ,{})]})})]}),(0,N.jsxs)(x.ZP,{item:!0,xs:12,className:t.linkHolder,children:[(0,N.jsxs)("div",{className:t.miniLinks,children:[(0,N.jsxs)("a",{href:"https://docs.min.io/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,N.jsx)(S.cY,{})," Documentation"]}),(0,N.jsx)("span",{className:t.separator,children:"|"}),(0,N.jsxs)("a",{href:"https://github.com/minio/minio",target:"_blank",rel:"noreferrer",children:[(0,N.jsx)(I,{})," Github"]}),(0,N.jsx)("span",{className:t.separator,children:"|"}),(0,N.jsxs)("a",{href:"https://subnet.min.io/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,N.jsx)(A.aw,{})," Support"]}),(0,N.jsx)("span",{className:t.separator,children:"|"}),(0,N.jsxs)("a",{href:"https://min.io/download/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,N.jsx)(S._8,{})," Download"]})]}),(0,N.jsx)("div",{className:(0,C.Z)(t.miniLinks,t.miniLogo),children:(0,N.jsxs)("a",{href:"https://github.com/minio/minio/releases",target:"_blank",rel:"noreferrer",children:[(0,N.jsx)(S.YE,{})," Latest Version"," ",!ne&&""!==Q&&(0,N.jsx)(o.Fragment,{children:Q})]})})]})]})})]})})))},65771:function(e,t,n){n.d(t,{Z:function(){return w}});var i=n(36222),a=n(1048),r=n(32793),o=n(50390),s=n(44977),l=n(50076),c=n(91442),d=n(35477),m=n(14478),h=n(23060),g=n(8208),u=n(10594);function p(e){return(0,u.Z)("MuiInputAdornment",e)}var x,f=(0,n(43349).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),v=n(15573),j=n(62559),Z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=(0,g.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,c.Z)(n.position))],!0===n.disablePointerEvents&&t.disablePointerEvents,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:t.palette.action.active},"filled"===n.variant&&(0,i.Z)({},"&.".concat(f.positionStart,"&:not(.").concat(f.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),w=o.forwardRef((function(e,t){var n=(0,v.Z)({props:e,name:"MuiInputAdornment"}),i=n.children,g=n.className,u=n.component,f=void 0===u?"div":u,w=n.disablePointerEvents,S=void 0!==w&&w,P=n.disableTypography,y=void 0!==P&&P,N=n.position,k=n.variant,L=(0,a.Z)(n,Z),A=(0,h.Z)()||{},I=k;k&&A.variant,A&&!I&&(I=A.variant);var C=(0,r.Z)({},n,{hiddenLabel:A.hiddenLabel,size:A.size,disablePointerEvents:S,position:N,variant:I}),E=function(e){var t=e.classes,n=e.disablePointerEvents,i=e.hiddenLabel,a=e.position,r=e.size,o=e.variant,s={root:["root",n&&"disablePointerEvents",a&&"position".concat((0,c.Z)(a)),o,i&&"hiddenLabel",r&&"size".concat((0,c.Z)(r))]};return(0,l.Z)(s,p,t)}(C);return(0,j.jsx)(m.Z.Provider,{value:null,children:(0,j.jsx)(b,(0,r.Z)({as:f,ownerState:C,className:(0,s.Z)(E.root,g),ref:t},L,{children:"string"!==typeof i||y?(0,j.jsxs)(o.Fragment,{children:["start"===N?x||(x=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))}}]);
+//# sourceMappingURL=1660.0a544a1c.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1660.0a544a1c.chunk.js.map b/portal-ui/build/static/js/1660.0a544a1c.chunk.js.map
new file mode 100644
index 000000000..cf9f5c089
--- /dev/null
+++ b/portal-ui/build/static/js/1660.0a544a1c.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1660.0a544a1c.chunk.js","mappings":"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","sources":["screens/LoginPage/types.ts","icons/LockFilledIcon.tsx","icons/UsersFilledIcon.tsx","icons/GithubIcon.tsx","screens/LoginPage/LoginPage.tsx","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport interface ILoginDetails {\n loginStrategy: loginStrategyType;\n redirect: string;\n}\n\nexport enum loginStrategyType {\n unknown = \"unknown\",\n form = \"form\",\n redirect = \"redirect\",\n serviceAccount = \"service-account\",\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst LockFilledIcon = (props: SVGProps) => (\n \n);\n\nexport default LockFilledIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst UserFilledIcon = (props: SVGProps) => (\n \n);\n\nexport default UserFilledIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst GithubIcon = (props: SVGProps) => (\n \n);\n\nexport default GithubIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n CircularProgress,\n InputAdornment,\n LinearProgress,\n TextFieldProps,\n} from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Button from \"@mui/material/Button\";\nimport TextField from \"@mui/material/TextField\";\nimport Grid from \"@mui/material/Grid\";\nimport { ILoginDetails, loginStrategyType } from \"./types\";\nimport { SystemState } from \"../../types\";\nimport { setErrorSnackMessage, userLoggedIn } from \"../../actions\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport api from \"../../common/api\";\nimport history from \"../../history\";\nimport RefreshIcon from \"../../icons/RefreshIcon\";\nimport MainError from \"../Console/Common/MainError/MainError\";\nimport { encodeFileName } from \"../../common/utils\";\nimport {\n ArrowRightIcon,\n DocumentationIcon,\n DownloadIcon,\n LockIcon,\n LoginMinIOLogo,\n MinIOTierIconXs,\n} from \"../../icons\";\nimport { spacingUtils } from \"../Console/Common/FormComponents/common/styleLibrary\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport LockFilledIcon from \"../../icons/LockFilledIcon\";\nimport UserFilledIcon from \"../../icons/UsersFilledIcon\";\nimport { SupportMenuIcon } from \"../../icons/SidebarMenus\";\nimport GithubIcon from \"../../icons/GithubIcon\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n backgroundImage: `url('/images/background-wave-orig.svg'), url('/images/background.svg')`,\n backgroundPosition: \"center 250px, center center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"2547px 980px,cover\",\n backgroundBlendMode: \"color-dodge\",\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n },\n form: {\n width: \"100%\", // Fix IE 11 issue.\n },\n submit: {\n margin: \"30px 0px 8px\",\n height: 40,\n width: \"100%\",\n boxShadow: \"none\",\n padding: \"16px 30px\",\n },\n learnMore: {\n textAlign: \"center\",\n fontSize: 10,\n \"& a\": {\n color: \"#2781B0\",\n },\n \"& .min-icon\": {\n marginLeft: 12,\n marginTop: 2,\n width: 10,\n },\n },\n separator: {\n marginLeft: 8,\n marginRight: 8,\n },\n linkHolder: {\n marginTop: 20,\n },\n miniLinks: {\n margin: \"auto\",\n fontSize: 10,\n textAlign: \"center\",\n color: \"#B2DEF5\",\n \"& a\": {\n color: \"#B2DEF5\",\n textDecoration: \"none\",\n },\n \"& .min-icon\": {\n height: 10,\n color: \"#B2DEF5\",\n },\n },\n miniLogo: {\n marginTop: 8,\n \"& .min-icon\": {\n height: 12,\n paddingTop: 2,\n },\n },\n loginPage: {\n height: \"100%\",\n maxWidth: 360,\n margin: \"auto\",\n },\n loginContainer: {\n \"& .right-items\": {\n backgroundColor: \"white\",\n borderRadius: 3,\n boxShadow: \"6px 6px 50\",\n padding: 20,\n },\n \"& .consoleTextBanner\": {\n fontWeight: 300,\n fontSize: \"calc(3vw + 3vh + 1.5vmin)\",\n lineHeight: 1.15,\n color: \"#ffffff\",\n flex: 1,\n textAlign: \"center\",\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n margin: \"auto\",\n\n \"& .logoLine\": {\n display: \"flex\",\n alignItems: \"center\",\n fontSize: 18,\n marginTop: 40,\n },\n \"& .left-items\": {\n margin: \"auto\",\n paddingTop: 100,\n paddingBottom: 60,\n },\n \"& .left-logo\": {\n \"& .min-icon\": {\n color: \"white\",\n width: 108,\n },\n marginBottom: 10,\n },\n \"& .text-line1\": {\n font: \" 100 44px 'Lato'\",\n },\n \"& .text-line2\": {\n fontSize: 80,\n fontWeight: 100,\n textTransform: \"uppercase\",\n },\n \"& .text-line3\": {\n fontSize: 14,\n fontWeight: \"bold\",\n },\n \"& .logo-console\": {\n display: \"flex\",\n alignItems: \"center\",\n\n \"@media (max-width: 900px)\": {\n marginTop: 20,\n flexFlow: \"column\",\n\n \"& svg\": {\n width: \"50%\",\n },\n },\n },\n },\n },\n \"@media (max-width: 900px)\": {\n loginContainer: {\n display: \"flex\",\n flexFlow: \"column\",\n\n \"& .consoleTextBanner\": {\n margin: 0,\n flex: 2,\n\n \"& .left-items\": {\n alignItems: \"center\",\n textAlign: \"center\",\n },\n\n \"& .logoLine\": {\n justifyContent: \"center\",\n },\n },\n },\n },\n loadingLoginStrategy: {\n textAlign: \"center\",\n },\n headerTitle: {\n marginRight: \"auto\",\n marginBottom: 15,\n },\n submitContainer: {\n textAlign: \"right\",\n },\n linearPredef: {\n height: 10,\n },\n\n loaderAlignment: {\n display: \"flex\",\n width: \"100%\",\n height: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n },\n retryButton: {\n alignSelf: \"flex-end\",\n },\n ...spacingUtils,\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n \"& .MuiOutlinedInput-root\": {\n paddingLeft: 0,\n \"& svg\": {\n marginLeft: 4,\n height: 14,\n color: theme.palette.primary.main,\n },\n \"& input\": {\n padding: 10,\n fontSize: 14,\n paddingLeft: 0,\n \"&::placeholder\": {\n fontSize: 12,\n },\n \"@media (max-width: 900px)\": {\n padding: 10,\n },\n },\n \"& fieldset\": {},\n\n \"& fieldset:hover\": {\n borderBottom: \"2px solid #000000\",\n borderRadius: 0,\n },\n },\n },\n })\n);\n\nfunction LoginField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n \n );\n}\n\nconst mapState = (state: SystemState) => ({\n loggedIn: state.loggedIn,\n});\n\nconst connector = connect(mapState, { userLoggedIn, setErrorSnackMessage });\n\n// The inferred type will look like:\n// {isOn: boolean, toggleOn: () => void}\n\ninterface ILoginProps {\n userLoggedIn: typeof userLoggedIn;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n}\n\ninterface LoginStrategyRoutes {\n [key: string]: string;\n}\n\ninterface LoginStrategyPayload {\n [key: string]: any;\n}\n\nconst Login = ({\n classes,\n userLoggedIn,\n setErrorSnackMessage,\n}: ILoginProps) => {\n const [accessKey, setAccessKey] = useState(\"\");\n const [jwt, setJwt] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [loginStrategy, setLoginStrategy] = useState({\n loginStrategy: loginStrategyType.unknown,\n redirect: \"\",\n });\n const [loginSending, setLoginSending] = useState(false);\n const [loadingFetchConfiguration, setLoadingFetchConfiguration] =\n useState(true);\n\n const [latestMinIOVersion, setLatestMinIOVersion] = useState(\"\");\n const [loadingVersion, setLoadingVersion] = useState(true);\n\n const loginStrategyEndpoints: LoginStrategyRoutes = {\n form: \"/api/v1/login\",\n \"service-account\": \"/api/v1/login/operator\",\n };\n const loginStrategyPayload: LoginStrategyPayload = {\n form: { accessKey, secretKey },\n \"service-account\": { jwt },\n };\n\n const fetchConfiguration = () => {\n setLoadingFetchConfiguration(true);\n };\n\n const formSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n setLoginSending(true);\n api\n .invoke(\n \"POST\",\n loginStrategyEndpoints[loginStrategy.loginStrategy] || \"/api/v1/login\",\n loginStrategyPayload[loginStrategy.loginStrategy]\n )\n .then(() => {\n // We set the state in redux\n userLoggedIn(true);\n if (loginStrategy.loginStrategy === loginStrategyType.form) {\n localStorage.setItem(\"userLoggedIn\", encodeFileName(accessKey));\n }\n let targetPath = \"/\";\n if (\n localStorage.getItem(\"redirect-path\") &&\n localStorage.getItem(\"redirect-path\") !== \"\"\n ) {\n targetPath = `${localStorage.getItem(\"redirect-path\")}`;\n localStorage.setItem(\"redirect-path\", \"\");\n }\n history.push(targetPath);\n })\n .catch((err) => {\n setLoginSending(false);\n setErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (loadingFetchConfiguration) {\n api\n .invoke(\"GET\", \"/api/v1/login\")\n .then((loginDetails: ILoginDetails) => {\n setLoginStrategy(loginDetails);\n setLoadingFetchConfiguration(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingFetchConfiguration(false);\n });\n }\n }, [loadingFetchConfiguration, setErrorSnackMessage]);\n\n useEffect(() => {\n if (loadingVersion) {\n api\n .invoke(\"GET\", \"/api/v1/check-version\")\n .then(\n ({\n current_version,\n latest_version,\n }: {\n current_version: string;\n latest_version: string;\n }) => {\n setLatestMinIOVersion(latest_version);\n setLoadingVersion(false);\n }\n )\n .catch((err: ErrorResponseHandler) => {\n // try the operator version\n api\n .invoke(\"GET\", \"/api/v1/check-operator-version\")\n .then(\n ({\n current_version,\n latest_version,\n }: {\n current_version: string;\n latest_version: string;\n }) => {\n setLatestMinIOVersion(latest_version);\n setLoadingVersion(false);\n }\n )\n .catch((err: ErrorResponseHandler) => {\n setLoadingVersion(false);\n });\n });\n }\n }, [loadingVersion, setLoadingVersion, setLatestMinIOVersion]);\n\n let loginComponent = null;\n\n switch (loginStrategy.loginStrategy) {\n case loginStrategyType.form: {\n loginComponent = (\n \n \n \n );\n break;\n }\n case loginStrategyType.redirect: {\n loginComponent = (\n \n \n \n );\n break;\n }\n case loginStrategyType.serviceAccount: {\n loginComponent = (\n \n \n \n );\n break;\n }\n default:\n loginComponent = (\n
\n {loadingFetchConfiguration ? (\n \n ) : (\n \n
\n
An error has occurred, the backend cannot be reached.
\n );\n};\n\nexport default connector(withStyles(styles)(Login));\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;"],"names":["loginStrategyType","props","xmlns","className","fill","viewBox","id","d","width","height","transform","inputStyles","makeStyles","theme","createStyles","root","paddingLeft","marginLeft","color","palette","primary","main","padding","fontSize","borderBottom","borderRadius","LoginField","classes","TextField","variant","connect","state","loggedIn","userLoggedIn","setErrorSnackMessage","withStyles","backgroundImage","backgroundPosition","backgroundRepeat","backgroundSize","backgroundBlendMode","position","top","left","form","submit","margin","boxShadow","learnMore","textAlign","marginTop","separator","marginRight","linkHolder","miniLinks","textDecoration","miniLogo","paddingTop","loginPage","maxWidth","loginContainer","backgroundColor","fontWeight","lineHeight","flex","display","justifyContent","alignItems","paddingBottom","marginBottom","font","textTransform","flexFlow","loadingLoginStrategy","headerTitle","submitContainer","linearPredef","loaderAlignment","flexDirection","retryButton","alignSelf","spacingUtils","useState","accessKey","setAccessKey","jwt","setJwt","secretKey","setSecretKey","loginStrategy","unknown","redirect","setLoginStrategy","loginSending","setLoginSending","loadingFetchConfiguration","setLoadingFetchConfiguration","latestMinIOVersion","setLatestMinIOVersion","loadingVersion","setLoadingVersion","loginStrategyEndpoints","loginStrategyPayload","formSubmit","e","preventDefault","api","then","localStorage","setItem","encodeFileName","targetPath","getItem","history","catch","err","useEffect","loginDetails","current_version","latest_version","loginComponent","noValidate","onSubmit","Grid","container","spacing","item","xs","spacerBottom","fullWidth","inputField","value","onChange","target","placeholder","name","autoComplete","disabled","InputProps","startAdornment","InputAdornment","iconColor","type","Button","LinearProgress","component","href","serviceAccount","required","CircularProgress","onClick","endIcon","RefreshIcon","consoleText","CssBaseline","MainError","rel","clsx","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","styles","ownerState","capitalize","disablePointerEvents","_extends","maxHeight","whiteSpace","action","active","inputAdornmentClasses","pointerEvents","React","inProps","ref","useThemeProps","children","disableTypography","variantProp","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","hiddenLabel","size","slots","composeClasses","useUtilityClasses","_jsx","FormControlContext","as","_jsxs","Typography"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1666.3eefd4d5.chunk.js b/portal-ui/build/static/js/1666.3eefd4d5.chunk.js
deleted file mode 100644
index 918cc6b3d..000000000
--- a/portal-ui/build/static/js/1666.3eefd4d5.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1666],{23152:function(e,a,n){n.r(a);var t=n(23430),o=n(18489),r=n(50390),s=n(38342),i=n.n(s),l=n(34424),c=n(25594),d=n(66946),u=n(86509),m=n(4285),p=n(72462),x=n(44149),f=n(66964),h=n(76352),g=n(30324),v=n(85204),Z=n(62559),b={setModalErrorSnackMessage:x.zb},j=(0,l.$j)((function(e){var a=e.system;return{distributedSetup:i()(a,"distributedSetup",!1)}}),b);a.default=(0,m.Z)((function(e){return(0,u.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},p.DF),p.ID),p.bK))}))(j((function(e){var a=e.modalOpen,n=e.currentTags,s=e.onCloseAndUpdate,i=e.bucketName,l=e.setModalErrorSnackMessage,u=e.classes,m=(0,r.useState)(""),p=(0,t.Z)(m,2),x=p[0],b=p[1],j=(0,r.useState)(""),C=(0,t.Z)(j,2),y=C[0],N=C[1],k=(0,r.useState)(!1),w=(0,t.Z)(k,2),S=w[0],M=w[1];return(0,Z.jsx)(h.Z,{modalOpen:a,title:"Add New Tag ",onClose:function(){s(!1)},titleIcon:(0,Z.jsx)(v.OC,{}),children:(0,Z.jsxs)(c.ZP,{container:!0,children:[(0,Z.jsxs)("div",{className:u.spacerBottom,children:[(0,Z.jsx)("strong",{children:"Bucket"}),": ",i]}),(0,Z.jsx)(c.ZP,{item:!0,xs:12,className:u.formFieldRow,children:(0,Z.jsx)(f.Z,{value:x,label:"New Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter New Tag Key",onChange:function(e){b(e.target.value)}})}),(0,Z.jsx)(c.ZP,{item:!0,xs:12,className:u.formFieldRow,children:(0,Z.jsx)(f.Z,{value:y,label:"New Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter New Tag Label",onChange:function(e){N(e.target.value)}})}),(0,Z.jsxs)(c.ZP,{item:!0,xs:12,className:u.modalButtonBar,children:[(0,Z.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){N(""),b("")},children:"Clear"}),(0,Z.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===y.trim()||""===x.trim()||S,onClick:function(){M(!0);var e={};e[x]=y;var a=(0,o.Z)((0,o.Z)({},n),e);g.Z.invoke("PUT","/api/v1/buckets/".concat(i,"/tags"),{tags:a}).then((function(e){M(!1),s(!0)})).catch((function(e){l(e),M(!1)}))},children:"Save"})]})]})})})))},66964:function(e,a,n){var t=n(18489),o=n(50390),r=n(12066),s=n(25594),i=n(36554),l=n(94187),c=n(95467),d=n(86509),u=n(62449),m=n(4285),p=n(72462),x=n(97538),f=n(44977),h=n(62559),g=(0,u.Z)((function(e){return(0,d.Z)((0,t.Z)({},p.gM))}));function v(e){var a=g();return(0,h.jsx)(r.Z,(0,t.Z)({InputProps:{classes:a}},e))}a.Z=(0,m.Z)((function(e){return(0,d.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},p.YI),p.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative"},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}},inputLabel:(0,t.Z)((0,t.Z)({},p.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var a=e.label,n=e.onChange,r=e.value,d=e.id,u=e.name,m=e.type,p=void 0===m?"text":m,g=e.autoComplete,Z=void 0===g?"off":g,b=e.disabled,j=void 0!==b&&b,C=e.multiline,y=void 0!==C&&C,N=e.tooltip,k=void 0===N?"":N,w=e.index,S=void 0===w?0:w,M=e.error,E=void 0===M?"":M,L=e.required,B=void 0!==L&&L,T=e.placeholder,I=void 0===T?"":T,P=e.min,D=e.max,F=e.overlayIcon,z=void 0===F?null:F,O=e.overlayObject,W=void 0===O?null:O,R=e.extraInputProps,K=void 0===R?{}:R,A=e.overlayAction,H=e.noLabelMinWidth,$=void 0!==H&&H,U=e.pattern,Y=void 0===U?"":U,_=e.autoFocus,q=void 0!==_&&_,G=e.classes,Q=e.className,X=void 0===Q?"":Q,J=e.onKeyPress,V=(0,t.Z)({"data-index":S},K);return"number"===p&&P&&(V.min=P),"number"===p&&D&&(V.max=D),""!==Y&&(V.pattern=Y),(0,h.jsx)(o.Fragment,{children:(0,h.jsxs)(s.ZP,{container:!0,className:(0,f.Z)(""!==X?X:"",""!==E?G.errorInField:G.inputBoxContainer),children:[""!==a&&(0,h.jsxs)(i.Z,{htmlFor:d,className:$?G.noMinWidthLabel:G.inputLabel,children:[(0,h.jsxs)("span",{children:[a,B?"*":""]}),""!==k&&(0,h.jsx)("div",{className:G.tooltipContainer,children:(0,h.jsx)(l.Z,{title:k,placement:"top-start",children:(0,h.jsx)("div",{className:G.tooltip,children:(0,h.jsx)(x.Z,{})})})})]}),(0,h.jsxs)("div",{className:G.textBoxContainer,children:[(0,h.jsx)(v,{id:d,name:u,fullWidth:!0,value:r,autoFocus:q,disabled:j,onChange:n,type:p,multiline:y,autoComplete:Z,inputProps:V,error:""!==E,helperText:E,placeholder:I,className:G.inputRebase,onKeyPress:J}),z&&(0,h.jsx)("div",{className:"".concat(G.overlayAction," ").concat(""!==a?"withLabel":""),children:(0,h.jsx)(c.Z,{onClick:A?function(){A()}:function(){return null},size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:z})}),W&&(0,h.jsx)("div",{className:"".concat(G.overlayAction," ").concat(""!==a?"withLabel":""),children:W})]})]})})}))},76352:function(e,a,n){n.d(a,{Z:function(){return S}});var t,o=n(23430),r=n(18489),s=n(50390),i=n(34424),l=n(95467),c=n(97771),d=n(84402),u=n(78426),m=n(93085),p=n(86509),x=n(4285),f=n(72462),h=n(44149),g=n(38342),v=n.n(g),Z=n(92125),b=n(19538),j=n(21278),C=n(62559),y=function(){clearInterval(t)},N={displayErrorMessage:h.zb},k=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),N)((0,x.Z)((function(e){return(0,p.Z)({modalErrorContainer:{position:"absolute",marginTop:10,width:"80%",backgroundColor:"#fff",border:"#C72C48 1px solid",borderLeftWidth:12,borderRadius:3,zIndex:1e3,padding:"10px 15px",left:"50%",transform:"translateX(-50%)",opacity:0,transitionDuration:"0.2s"},modalErrorShow:{opacity:1},closeButton:{position:"absolute",right:5,fontSize:"small",border:0,backgroundColor:"#fff",cursor:"pointer"},errorTitle:{display:"flex",alignItems:"center"},errorLabel:{color:"#000",fontSize:18,fontWeight:500,marginLeft:5,marginRight:25},messageIcon:{color:"#C72C48",display:"flex","& svg":{width:32,height:32}},detailsButton:{color:"#9C9C9C",display:"flex",alignItems:"center",border:0,backgroundColor:"transparent",paddingLeft:5,fontSize:14,transformDuration:"0.3s",cursor:"pointer"},extraDetailsContainer:{fontStyle:"italic",color:"#9C9C9C",lineHeight:0,padding:"0 10px",transition:"all .2s ease-in-out",overflow:"hidden"},extraDetailsOpen:{lineHeight:1,padding:"3px 10px"},arrowElement:{marginLeft:-5},arrowOpen:{transform:"rotateZ(90deg)",transformDuration:"0.3s"}})}))((function(e){var a=e.classes,n=e.modalSnackMessage,r=e.displayErrorMessage,i=e.customStyle,l=(0,s.useState)(!1),c=(0,o.Z)(l,2),d=c[0],u=c[1],m=(0,s.useState)(!1),p=(0,o.Z)(m,2),x=p[0],f=p[1],h=(0,s.useCallback)((function(){f(!1)}),[]);(0,s.useEffect)((function(){x||(r({detailedError:"",errorMessage:""}),u(!1))}),[r,x]),(0,s.useEffect)((function(){""!==n.message&&"error"===n.type&&f(!0)}),[h,n.message,n.type]);var g=v()(n,"message",""),N=v()(n,"detailedErrorMsg","");return"error"!==n.type||""===g?null:(0,C.jsx)(s.Fragment,{children:(0,C.jsxs)("div",{className:"".concat(a.modalErrorContainer," ").concat(x?a.modalErrorShow:""),style:i,onMouseOver:y,onMouseLeave:function(){t=setInterval(h,1e4)},children:[(0,C.jsx)("button",{className:a.closeButton,onClick:h,children:(0,C.jsx)(j.Z,{})}),(0,C.jsxs)("div",{className:a.errorTitle,children:[(0,C.jsx)("span",{className:a.messageIcon,children:(0,C.jsx)(b.Z,{})}),(0,C.jsx)("span",{className:a.errorLabel,children:g})]}),""!==N&&(0,C.jsxs)(s.Fragment,{children:[(0,C.jsx)("div",{className:a.detailsContainerLink,children:(0,C.jsxs)("button",{className:a.detailsButton,onClick:function(){u(!d)},children:["Details",(0,C.jsx)(Z.Z,{className:"".concat(a.arrowElement," ").concat(d?a.arrowOpen:"")})]})}),(0,C.jsx)("div",{className:"".concat(a.extraDetailsContainer," ").concat(d?a.extraDetailsOpen:""),children:N})]})]})})}))),w=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:h.MK}),S=(0,x.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)({},f.Qw),{},{root:{"& .MuiPaper-root":{padding:"0 2rem 2rem 1rem"}},content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(w((function(e){var a=e.onClose,n=e.modalOpen,t=e.title,i=e.children,p=e.classes,x=e.wideLimit,f=void 0===x||x,h=e.modalSnackMessage,g=e.noContentPadding,v=e.setModalSnackMessage,Z=e.titleIcon,b=void 0===Z?null:Z,y=(0,s.useState)(!1),N=(0,o.Z)(y,2),w=N[0],S=N[1];(0,s.useEffect)((function(){v("")}),[v]),(0,s.useEffect)((function(){if(h){if(""===h.message)return void S(!1);"error"!==h.type&&S(!0)}}),[h]);var M=f?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return h&&(E=h.detailedErrorMsg,(""===h.detailedErrorMsg||h.detailedErrorMsg.length<5)&&(E=h.message)),(0,C.jsxs)(d.Z,(0,r.Z)((0,r.Z)({open:n,classes:p},M),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&a()},className:p.root,children:[(0,C.jsxs)(u.Z,{className:p.title,children:[(0,C.jsxs)("div",{className:p.titleText,children:[b," ",t]}),(0,C.jsx)("div",{className:p.closeContainer,children:(0,C.jsx)(l.Z,{"aria-label":"close",className:p.closeButton,onClick:a,disableRipple:!0,size:"small",children:(0,C.jsx)(j.Z,{})})})]}),(0,C.jsx)(k,{}),(0,C.jsx)(c.Z,{open:w,className:p.snackBarModal,onClose:function(){S(!1),v("")},message:E,ContentProps:{className:"".concat(p.snackBar," ").concat(h&&"error"===h.type?p.errorSnackBar:"")},autoHideDuration:h&&"error"===h.type?1e4:5e3}),(0,C.jsx)(m.Z,{className:g?"":p.content,children:i})]}))})))}}]);
-//# sourceMappingURL=1666.3eefd4d5.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1666.3eefd4d5.chunk.js.map b/portal-ui/build/static/js/1666.3eefd4d5.chunk.js.map
deleted file mode 100644
index 9653cf3ab..000000000
--- a/portal-ui/build/static/js/1666.3eefd4d5.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1666.3eefd4d5.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddBucketTagModal.tsx","screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","screens/Console/Common/FormComponents/ModalError/ModalError.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport { AddNewTagIcon } from \"../../../../icons\";\n\ninterface IBucketTagModal {\n modalOpen: boolean;\n currentTags: any;\n bucketName: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\nconst AddBucketTagModal = ({\n modalOpen,\n currentTags,\n onCloseAndUpdate,\n bucketName,\n setModalErrorSnackMessage,\n classes,\n}: IBucketTagModal) => {\n const [newKey, setNewKey] = useState(\"\");\n const [newLabel, setNewLabel] = useState(\"\");\n const [isSending, setIsSending] = useState(false);\n\n const resetForm = () => {\n setNewLabel(\"\");\n setNewKey(\"\");\n };\n\n const addTagProcess = () => {\n setIsSending(true);\n const newTag: any = {};\n\n newTag[newKey] = newLabel;\n const newTagList = { ...currentTags, ...newTag };\n\n api\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/tags`, {\n tags: newTagList,\n })\n .then((res: any) => {\n setIsSending(false);\n onCloseAndUpdate(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setIsSending(false);\n });\n };\n\n return (\n {\n onCloseAndUpdate(false);\n }}\n titleIcon={}\n >\n \n
\n Bucket: {bucketName}\n
\n \n {\n setNewKey(e.target.value);\n }}\n />\n \n \n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddBucketTagModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport {\n Grid,\n IconButton,\n InputLabel,\n TextField,\n TextFieldProps,\n Tooltip,\n} from \"@mui/material\";\nimport { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n onKeyPress?: (e: any) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n multiline?: boolean;\n type?: string;\n tooltip?: string;\n autoComplete?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n min?: string;\n max?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nfunction InputField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n }\n {...props}\n />\n );\n}\n\nconst InputBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n type = \"text\",\n autoComplete = \"off\",\n disabled = false,\n multiline = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n min,\n max,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n pattern = \"\",\n autoFocus = false,\n classes,\n className = \"\",\n onKeyPress,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n\n if (type === \"number\" && min) {\n inputProps[\"min\"] = min;\n }\n\n if (type === \"number\" && max) {\n inputProps[\"max\"] = max;\n }\n\n if (pattern !== \"\") {\n inputProps[\"pattern\"] = pattern;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\n// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport ArrowRightIcon from \"@mui/icons-material/ArrowRight\";\nimport ErrorOutlineIcon from \"@mui/icons-material/ErrorOutline\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport {\n setErrorSnackMessage,\n setModalErrorSnackMessage,\n} from \"../../../../../actions\";\nimport { snackBarMessage } from \"../../../../../types\";\n\ninterface ImodalErrorProps {\n customStyle?: any;\n classes: any;\n modalSnackMessage: snackBarMessage;\n displayErrorMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n modalErrorContainer: {\n position: \"absolute\",\n marginTop: 10,\n width: \"80%\",\n backgroundColor: \"#fff\",\n border: \"#C72C48 1px solid\",\n borderLeftWidth: 12,\n borderRadius: 3,\n zIndex: 1000,\n padding: \"10px 15px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n opacity: 0,\n transitionDuration: \"0.2s\",\n },\n modalErrorShow: {\n opacity: 1,\n },\n closeButton: {\n position: \"absolute\",\n right: 5,\n fontSize: \"small\",\n border: 0,\n backgroundColor: \"#fff\",\n cursor: \"pointer\",\n },\n errorTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n errorLabel: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 500,\n marginLeft: 5,\n marginRight: 25,\n },\n messageIcon: {\n color: \"#C72C48\",\n display: \"flex\",\n \"& svg\": {\n width: 32,\n height: 32,\n },\n },\n detailsButton: {\n color: \"#9C9C9C\",\n display: \"flex\",\n alignItems: \"center\",\n border: 0,\n backgroundColor: \"transparent\",\n paddingLeft: 5,\n fontSize: 14,\n transformDuration: \"0.3s\",\n cursor: \"pointer\",\n },\n extraDetailsContainer: {\n fontStyle: \"italic\",\n color: \"#9C9C9C\",\n lineHeight: 0,\n padding: \"0 10px\",\n transition: \"all .2s ease-in-out\",\n overflow: \"hidden\",\n },\n extraDetailsOpen: {\n lineHeight: 1,\n padding: \"3px 10px\",\n },\n arrowElement: {\n marginLeft: -5,\n },\n arrowOpen: {\n transform: \"rotateZ(90deg)\",\n transformDuration: \"0.3s\",\n },\n });\n\nvar timerI: any;\n\nconst startHideTimer = (callbackFunction: () => void) => {\n timerI = setInterval(callbackFunction, 10000);\n};\n\nconst stopHideTimer = () => {\n clearInterval(timerI);\n};\n\nconst ModalError = ({\n classes,\n modalSnackMessage,\n displayErrorMessage,\n customStyle,\n}: ImodalErrorProps) => {\n const [detailsOpen, setDetailsOpen] = useState(false);\n const [displayErrorMsg, setDisplayErrorMsg] = useState(false);\n\n const closeErrorMessage = useCallback(() => {\n setDisplayErrorMsg(false);\n }, []);\n\n useEffect(() => {\n if (!displayErrorMsg) {\n displayErrorMessage({ detailedError: \"\", errorMessage: \"\" });\n setDetailsOpen(false);\n //clearInterval(timerI);\n }\n }, [displayErrorMessage, displayErrorMsg]);\n\n useEffect(() => {\n if (\n modalSnackMessage.message !== \"\" &&\n modalSnackMessage.type === \"error\"\n ) {\n //Error message received, we trigger the animation\n setDisplayErrorMsg(true);\n //startHideTimer(closeErrorMessage);\n }\n }, [closeErrorMessage, modalSnackMessage.message, modalSnackMessage.type]);\n\n const detailsToggle = () => {\n setDetailsOpen(!detailsOpen);\n };\n\n const message = get(modalSnackMessage, \"message\", \"\");\n const messageDetails = get(modalSnackMessage, \"detailedErrorMsg\", \"\");\n\n if (modalSnackMessage.type !== \"error\" || message === \"\") {\n return null;\n }\n\n return (\n \n
startHideTimer(closeErrorMessage)}\n >\n \n
\n \n \n \n {message}\n
\n {messageDetails !== \"\" && (\n \n
\n \n
\n
\n {messageDetails}\n
\n \n )}\n
\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst mapDispatchToProps = {\n displayErrorMessage: setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(ModalError));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport ModalError from \"../FormComponents/ModalError/ModalError\";\nimport CloseIcon from \"@mui/icons-material/Close\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n root: {\n \"& .MuiPaper-root\": {\n padding: \"0 2rem 2rem 1rem\",\n },\n },\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n"],"names":["mapDispatchToProps","setModalErrorSnackMessage","connector","connect","system","distributedSetup","get","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","spacingUtils","modalOpen","currentTags","onCloseAndUpdate","bucketName","classes","useState","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","title","onClose","titleIcon","container","className","spacerBottom","item","xs","formFieldRow","value","label","id","name","placeholder","onChange","e","target","modalButtonBar","type","variant","color","onClick","disabled","trim","newTag","newTagList","api","tags","then","res","catch","error","inputStyles","makeStyles","inputFieldStyles","InputField","props","InputProps","fieldBasic","tooltipHelper","textBoxContainer","flexGrow","position","overlayAction","right","top","maxWidth","maxHeight","inputLabel","fontWeight","autoComplete","multiline","tooltip","index","required","min","max","overlayIcon","overlayObject","extraInputProps","noLabelMinWidth","pattern","autoFocus","onKeyPress","inputProps","clsx","errorInField","inputBoxContainer","htmlFor","noMinWidthLabel","tooltipContainer","placement","fullWidth","helperText","inputRebase","size","disableFocusRipple","disableRipple","disableTouchRipple","timerI","stopHideTimer","clearInterval","displayErrorMessage","state","modalSnackMessage","modalSnackBar","modalErrorContainer","marginTop","width","backgroundColor","border","borderLeftWidth","borderRadius","zIndex","padding","left","transform","opacity","transitionDuration","modalErrorShow","closeButton","fontSize","cursor","errorTitle","display","alignItems","errorLabel","marginLeft","marginRight","messageIcon","height","detailsButton","paddingLeft","transformDuration","extraDetailsContainer","fontStyle","lineHeight","transition","overflow","extraDetailsOpen","arrowElement","arrowOpen","customStyle","detailsOpen","setDetailsOpen","displayErrorMsg","setDisplayErrorMsg","closeErrorMessage","useCallback","useEffect","detailedError","errorMessage","message","messageDetails","Fragment","style","onMouseOver","onMouseLeave","setInterval","Close","ErrorOutline","detailsContainerLink","ArrowRight","setModalSnackMessage","deleteDialogStyles","root","content","paddingBottom","customDialogSize","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","customSize","paper","detailedErrorMsg","length","Dialog","open","scroll","event","reason","DialogTitle","titleText","closeContainer","IconButton","Snackbar","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","DialogContent"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1666.9098f0d4.chunk.js b/portal-ui/build/static/js/1666.9098f0d4.chunk.js
new file mode 100644
index 000000000..69462d3aa
--- /dev/null
+++ b/portal-ui/build/static/js/1666.9098f0d4.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1666],{23152:function(e,a,n){n.r(a);var t=n(23430),i=n(18489),o=n(50390),s=n(38342),l=n.n(s),r=n(34424),c=n(25594),d=n(66946),u=n(86509),m=n(4285),p=n(72462),h=n(44149),v=n(66964),x=n(51002),Z=n(30324),g=n(86362),f=n(62559),b={setModalErrorSnackMessage:h.zb},j=(0,r.$j)((function(e){var a=e.system;return{distributedSetup:l()(a,"distributedSetup",!1)}}),b);a.default=(0,m.Z)((function(e){return(0,u.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.DF),p.ID),p.bK))}))(j((function(e){var a=e.modalOpen,n=e.currentTags,s=e.onCloseAndUpdate,l=e.bucketName,r=e.setModalErrorSnackMessage,u=e.classes,m=(0,o.useState)(""),p=(0,t.Z)(m,2),h=p[0],b=p[1],j=(0,o.useState)(""),N=(0,t.Z)(j,2),C=N[0],k=N[1],y=(0,o.useState)(!1),w=(0,t.Z)(y,2),M=w[0],S=w[1];return(0,f.jsx)(x.Z,{modalOpen:a,title:"Add New Tag ",onClose:function(){s(!1)},titleIcon:(0,f.jsx)(g.OC,{}),children:(0,f.jsxs)(c.ZP,{container:!0,children:[(0,f.jsxs)("div",{className:u.spacerBottom,children:[(0,f.jsx)("strong",{children:"Bucket"}),": ",l]}),(0,f.jsx)(c.ZP,{item:!0,xs:12,className:u.formFieldRow,children:(0,f.jsx)(v.Z,{value:h,label:"New Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter New Tag Key",onChange:function(e){b(e.target.value)}})}),(0,f.jsx)(c.ZP,{item:!0,xs:12,className:u.formFieldRow,children:(0,f.jsx)(v.Z,{value:C,label:"New Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter New Tag Label",onChange:function(e){k(e.target.value)}})}),(0,f.jsxs)(c.ZP,{item:!0,xs:12,className:u.modalButtonBar,children:[(0,f.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){k(""),b("")},children:"Clear"}),(0,f.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===C.trim()||""===h.trim()||M,onClick:function(){S(!0);var e={};e[h]=C;var a=(0,i.Z)((0,i.Z)({},n),e);Z.Z.invoke("PUT","/api/v1/buckets/".concat(l,"/tags"),{tags:a}).then((function(e){S(!1),s(!0)})).catch((function(e){r(e),S(!1)}))},children:"Save"})]})]})})})))},66964:function(e,a,n){var t=n(18489),i=n(50390),o=n(12066),s=n(25594),l=n(36554),r=n(94187),c=n(95467),d=n(86509),u=n(62449),m=n(4285),p=n(72462),h=n(97538),v=n(44977),x=n(62559),Z=(0,u.Z)((function(e){return(0,d.Z)((0,t.Z)({},p.gM))}));function g(e){var a=Z();return(0,x.jsx)(o.Z,(0,t.Z)({InputProps:{classes:a}},e))}a.Z=(0,m.Z)((function(e){return(0,d.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},p.YI),p.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative"},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}},inputLabel:(0,t.Z)((0,t.Z)({},p.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var a=e.label,n=e.onChange,o=e.value,d=e.id,u=e.name,m=e.type,p=void 0===m?"text":m,Z=e.autoComplete,f=void 0===Z?"off":Z,b=e.disabled,j=void 0!==b&&b,N=e.multiline,C=void 0!==N&&N,k=e.tooltip,y=void 0===k?"":k,w=e.index,M=void 0===w?0:w,S=e.error,P=void 0===S?"":S,T=e.required,B=void 0!==T&&T,L=e.placeholder,I=void 0===L?"":L,E=e.min,F=e.max,K=e.overlayId,W=e.overlayIcon,R=void 0===W?null:W,A=e.overlayObject,z=void 0===A?null:A,D=e.extraInputProps,O=void 0===D?{}:D,H=e.overlayAction,U=e.noLabelMinWidth,Y=void 0!==U&&U,$=e.pattern,_=void 0===$?"":$,q=e.autoFocus,G=void 0!==q&&q,Q=e.classes,J=e.className,V=void 0===J?"":J,X=e.onKeyPress,ee=(0,t.Z)({"data-index":M},O);return"number"===p&&E&&(ee.min=E),"number"===p&&F&&(ee.max=F),""!==_&&(ee.pattern=_),(0,x.jsx)(i.Fragment,{children:(0,x.jsxs)(s.ZP,{container:!0,className:(0,v.Z)(""!==V?V:"",""!==P?Q.errorInField:Q.inputBoxContainer),children:[""!==a&&(0,x.jsxs)(l.Z,{htmlFor:d,className:Y?Q.noMinWidthLabel:Q.inputLabel,children:[(0,x.jsxs)("span",{children:[a,B?"*":""]}),""!==y&&(0,x.jsx)("div",{className:Q.tooltipContainer,children:(0,x.jsx)(r.Z,{title:y,placement:"top-start",children:(0,x.jsx)("div",{className:Q.tooltip,children:(0,x.jsx)(h.Z,{})})})})]}),(0,x.jsxs)("div",{className:Q.textBoxContainer,children:[(0,x.jsx)(g,{id:d,name:u,fullWidth:!0,value:o,autoFocus:G,disabled:j,onChange:n,type:p,multiline:C,autoComplete:f,inputProps:ee,error:""!==P,helperText:P,placeholder:I,className:Q.inputRebase,onKeyPress:X}),R&&(0,x.jsx)("div",{className:"".concat(Q.overlayAction," ").concat(""!==a?"withLabel":""),children:(0,x.jsx)(c.Z,{onClick:H?function(){H()}:function(){return null},id:K,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:R})}),z&&(0,x.jsx)("div",{className:"".concat(Q.overlayAction," ").concat(""!==a?"withLabel":""),children:z})]})]})})}))},51002:function(e,a,n){var t=n(23430),i=n(18489),o=n(50390),s=n(34424),l=n(95467),r=n(97771),c=n(84402),d=n(78426),u=n(93085),m=n(86509),p=n(4285),h=n(72462),v=n(44149),x=n(21278),Z=n(45980),g=n(62559),f=(0,s.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:v.MK});a.Z=(0,p.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},h.Qw),{},{root:{"& .MuiPaper-root":{padding:"0 2rem 2rem 1rem"}},content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},h.sN))}))(f((function(e){var a=e.onClose,n=e.modalOpen,s=e.title,m=e.children,p=e.classes,h=e.wideLimit,v=void 0===h||h,f=e.modalSnackMessage,b=e.noContentPadding,j=e.setModalSnackMessage,N=e.titleIcon,C=void 0===N?null:N,k=(0,o.useState)(!1),y=(0,t.Z)(k,2),w=y[0],M=y[1];(0,o.useEffect)((function(){j("")}),[j]),(0,o.useEffect)((function(){if(f){if(""===f.message)return void M(!1);"error"!==f.type&&M(!0)}}),[f]);var S=v?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},P="";return f&&(P=f.detailedErrorMsg,(""===f.detailedErrorMsg||f.detailedErrorMsg.length<5)&&(P=f.message)),(0,g.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:n,classes:p},S),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&a()},className:p.root,children:[(0,g.jsxs)(d.Z,{className:p.title,children:[(0,g.jsxs)("div",{className:p.titleText,children:[C," ",s]}),(0,g.jsx)("div",{className:p.closeContainer,children:(0,g.jsx)(l.Z,{"aria-label":"close",className:p.closeButton,onClick:a,disableRipple:!0,size:"small",children:(0,g.jsx)(x.Z,{})})})]}),(0,g.jsx)(Z.Z,{isModal:!0}),(0,g.jsx)(r.Z,{open:w,className:p.snackBarModal,onClose:function(){M(!1),j("")},message:P,ContentProps:{className:"".concat(p.snackBar," ").concat(f&&"error"===f.type?p.errorSnackBar:"")},autoHideDuration:f&&"error"===f.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:b?"":p.content,children:m})]}))})))}}]);
+//# sourceMappingURL=1666.9098f0d4.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1666.9098f0d4.chunk.js.map b/portal-ui/build/static/js/1666.9098f0d4.chunk.js.map
new file mode 100644
index 000000000..aa92b1cd6
--- /dev/null
+++ b/portal-ui/build/static/js/1666.9098f0d4.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1666.9098f0d4.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddBucketTagModal.tsx","screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport { AddNewTagIcon } from \"../../../../icons\";\n\ninterface IBucketTagModal {\n modalOpen: boolean;\n currentTags: any;\n bucketName: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\nconst AddBucketTagModal = ({\n modalOpen,\n currentTags,\n onCloseAndUpdate,\n bucketName,\n setModalErrorSnackMessage,\n classes,\n}: IBucketTagModal) => {\n const [newKey, setNewKey] = useState(\"\");\n const [newLabel, setNewLabel] = useState(\"\");\n const [isSending, setIsSending] = useState(false);\n\n const resetForm = () => {\n setNewLabel(\"\");\n setNewKey(\"\");\n };\n\n const addTagProcess = () => {\n setIsSending(true);\n const newTag: any = {};\n\n newTag[newKey] = newLabel;\n const newTagList = { ...currentTags, ...newTag };\n\n api\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/tags`, {\n tags: newTagList,\n })\n .then((res: any) => {\n setIsSending(false);\n onCloseAndUpdate(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setIsSending(false);\n });\n };\n\n return (\n {\n onCloseAndUpdate(false);\n }}\n titleIcon={}\n >\n \n
\n Bucket: {bucketName}\n
\n \n {\n setNewKey(e.target.value);\n }}\n />\n \n \n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddBucketTagModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport {\n Grid,\n IconButton,\n InputLabel,\n TextField,\n TextFieldProps,\n Tooltip,\n} from \"@mui/material\";\nimport { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n onKeyPress?: (e: any) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n multiline?: boolean;\n type?: string;\n tooltip?: string;\n autoComplete?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n min?: string;\n max?: string;\n overlayId?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nfunction InputField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n }\n {...props}\n />\n );\n}\n\nconst InputBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n type = \"text\",\n autoComplete = \"off\",\n disabled = false,\n multiline = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n min,\n max,\n overlayId,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n pattern = \"\",\n autoFocus = false,\n classes,\n className = \"\",\n onKeyPress,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n\n if (type === \"number\" && min) {\n inputProps[\"min\"] = min;\n }\n\n if (type === \"number\" && max) {\n inputProps[\"max\"] = max;\n }\n\n if (pattern !== \"\") {\n inputProps[\"pattern\"] = pattern;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n root: {\n \"& .MuiPaper-root\": {\n padding: \"0 2rem 2rem 1rem\",\n },\n },\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n"],"names":["mapDispatchToProps","setModalErrorSnackMessage","connector","connect","system","distributedSetup","get","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","spacingUtils","modalOpen","currentTags","onCloseAndUpdate","bucketName","classes","useState","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","title","onClose","titleIcon","container","className","spacerBottom","item","xs","formFieldRow","value","label","id","name","placeholder","onChange","e","target","modalButtonBar","type","variant","color","onClick","disabled","trim","newTag","newTagList","api","tags","then","res","catch","error","inputStyles","makeStyles","inputFieldStyles","InputField","props","InputProps","fieldBasic","tooltipHelper","textBoxContainer","flexGrow","position","overlayAction","right","top","maxWidth","maxHeight","inputLabel","fontWeight","autoComplete","multiline","tooltip","index","required","min","max","overlayId","overlayIcon","overlayObject","extraInputProps","noLabelMinWidth","pattern","autoFocus","onKeyPress","inputProps","clsx","errorInField","inputBoxContainer","htmlFor","noMinWidthLabel","tooltipContainer","placement","fullWidth","helperText","inputRebase","size","disableFocusRipple","disableRipple","disableTouchRipple","state","modalSnackMessage","modalSnackBar","setModalSnackMessage","deleteDialogStyles","root","padding","content","paddingBottom","customDialogSize","width","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1711.1d689e21.chunk.js b/portal-ui/build/static/js/1711.1d689e21.chunk.js
deleted file mode 100644
index 7fa1ebe79..000000000
--- a/portal-ui/build/static/js/1711.1d689e21.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1711],{31711:function(e,n,t){t.r(n);var a=t(23430),o=t(18489),i=t(50390),r=t(34424),s=t(66946),l=t(81378),c=t(86509),d=t(4285),u=t(25594),m=t(28948),p=t(44149),h=t(72462),x=t(92440),f=t(66964),b=t(76352),g=t(30324),v=t(85204),Z=t(1365),j=t(62559),C=(0,r.$j)(null,{setModalErrorSnackMessage:p.zb});n.default=(0,d.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({},h.DF),h.ID))}))(C((function(e){var n=e.classes,t=e.open,o=e.enabled,r=e.cfg,c=e.selectedBucket,d=e.closeModalAndRefresh,p=e.setModalErrorSnackMessage,h=(0,i.useState)(!1),C=(0,a.Z)(h,2),k=C[0],y=C[1],N=(0,i.useState)(!1),S=(0,a.Z)(N,2),w=S[0],F=S[1],M=(0,i.useState)("1"),E=(0,a.Z)(M,2),L=E[0],P=E[1],B=(0,i.useState)("TiB"),I=(0,a.Z)(B,2),z=I[0],D=I[1];(0,i.useEffect)((function(){if(o&&(F(!0),r)){P("".concat(r.quota)),D("Gi");for(var e="B",n=r.quota,t=0;t1?M[1]:"OFF"}),(0,f.jsx)(b,{checked:v,onChange:r,color:"primary",name:p,inputProps:(0,o.Z)({"aria-label":"primary checkbox"},L),disabled:j,disableRipple:!0,disableFocusRipple:!0,disableTouchRipple:!0,value:s}),!k&&(0,f.jsx)("span",{className:(0,x.Z)(F.indicatorLabel,(0,a.Z)({},F.indicatorLabelOn,v)),children:M?M[0]:"ON"})]});return k?P:(0,f.jsx)("div",{className:F.divContainer,children:(0,f.jsxs)(m.ZP,{container:!0,alignItems:"center",children:[(0,f.jsx)(m.ZP,{item:!0,xs:!0,children:(0,f.jsxs)(m.ZP,{container:!0,children:[(0,f.jsx)(m.ZP,{item:!0,xs:12,sm:""!==w?4:10,md:""!==w?3:9,children:""!==t&&(0,f.jsxs)(c.Z,{htmlFor:l,className:F.inputLabel,children:[(0,f.jsx)("span",{children:t}),""!==N&&(0,f.jsx)("div",{className:F.tooltipContainer,children:(0,f.jsx)(d.Z,{title:N,placement:"top-start",children:(0,f.jsx)("div",{className:F.tooltip,children:(0,f.jsx)(h.Z,{})})})})]})}),(0,f.jsx)(m.ZP,{item:!0,xs:12,sm:!0,textAlign:"left",children:""!==w&&(0,f.jsx)(u.Z,{component:"p",className:F.fieldDescription,children:w})})]})}),(0,f.jsx)(m.ZP,{item:!0,xs:12,sm:2,textAlign:"right",className:F.switchContainer,children:P})]})})}))},66964:function(e,n,t){var a=t(18489),o=t(50390),i=t(12066),r=t(25594),s=t(36554),l=t(94187),c=t(95467),d=t(86509),u=t(62449),m=t(4285),p=t(72462),h=t(97538),x=t(44977),f=t(62559),b=(0,u.Z)((function(e){return(0,d.Z)((0,a.Z)({},p.gM))}));function g(e){var n=b();return(0,f.jsx)(i.Z,(0,a.Z)({InputProps:{classes:n}},e))}n.Z=(0,m.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},p.YI),p.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative"},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}},inputLabel:(0,a.Z)((0,a.Z)({},p.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var n=e.label,t=e.onChange,i=e.value,d=e.id,u=e.name,m=e.type,p=void 0===m?"text":m,b=e.autoComplete,v=void 0===b?"off":b,Z=e.disabled,j=void 0!==Z&&Z,C=e.multiline,k=void 0!==C&&C,y=e.tooltip,N=void 0===y?"":y,S=e.index,w=void 0===S?0:S,F=e.error,M=void 0===F?"":F,E=e.required,L=void 0!==E&&E,P=e.placeholder,B=void 0===P?"":P,I=e.min,z=e.max,D=e.overlayIcon,O=void 0===D?null:D,R=e.overlayObject,q=void 0===R?null:R,T=e.extraInputProps,W=void 0===T?{}:T,A=e.overlayAction,_=e.noLabelMinWidth,$=void 0!==_&&_,H=e.pattern,K=void 0===H?"":H,Q=e.autoFocus,U=void 0!==Q&&Q,V=e.classes,Y=e.className,G=void 0===Y?"":Y,X=e.onKeyPress,J=(0,a.Z)({"data-index":w},W);return"number"===p&&I&&(J.min=I),"number"===p&&z&&(J.max=z),""!==K&&(J.pattern=K),(0,f.jsx)(o.Fragment,{children:(0,f.jsxs)(r.ZP,{container:!0,className:(0,x.Z)(""!==G?G:"",""!==M?V.errorInField:V.inputBoxContainer),children:[""!==n&&(0,f.jsxs)(s.Z,{htmlFor:d,className:$?V.noMinWidthLabel:V.inputLabel,children:[(0,f.jsxs)("span",{children:[n,L?"*":""]}),""!==N&&(0,f.jsx)("div",{className:V.tooltipContainer,children:(0,f.jsx)(l.Z,{title:N,placement:"top-start",children:(0,f.jsx)("div",{className:V.tooltip,children:(0,f.jsx)(h.Z,{})})})})]}),(0,f.jsxs)("div",{className:V.textBoxContainer,children:[(0,f.jsx)(g,{id:d,name:u,fullWidth:!0,value:i,autoFocus:U,disabled:j,onChange:t,type:p,multiline:k,autoComplete:v,inputProps:J,error:""!==M,helperText:M,placeholder:B,className:V.inputRebase,onKeyPress:X}),O&&(0,f.jsx)("div",{className:"".concat(V.overlayAction," ").concat(""!==n?"withLabel":""),children:(0,f.jsx)(c.Z,{onClick:A?function(){A()}:function(){return null},size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:O})}),q&&(0,f.jsx)("div",{className:"".concat(V.overlayAction," ").concat(""!==n?"withLabel":""),children:q})]})]})})}))},1365:function(e,n,t){var a=t(23430),o=t(50390),i=t(86509),r=t(4285),s=t(26936),l=t(31680),c=t(62559);n.Z=(0,r.Z)((function(e){return(0,i.Z)({buttonTrigger:{border:"#F0F2F2 1px solid",borderRadius:3,color:"#838383",backgroundColor:"#fff",fontSize:12}})}))((function(e){var n=e.classes,t=e.id,i=e.unitSelected,r=e.unitsList,d=e.disabled,u=void 0!==d&&d,m=e.onUnitChange,p=o.useState(null),h=(0,a.Z)(p,2),x=h[0],f=h[1],b=Boolean(x),g=function(e){f(null),""!==e&&m&&m(e)};return(0,c.jsxs)(o.Fragment,{children:[(0,c.jsx)("button",{id:"".concat(t,"-button"),"aria-controls":"".concat(t,"-menu"),"aria-haspopup":"true","aria-expanded":b?"true":void 0,onClick:function(e){f(e.currentTarget)},className:n.buttonTrigger,disabled:u,type:"button",children:i}),(0,c.jsx)(s.Z,{id:"".concat(t,"-menu"),"aria-labelledby":"".concat(t,"-button"),anchorEl:x,open:b,onClose:function(){g("")},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:r.map((function(e){return(0,c.jsx)(l.Z,{onClick:function(){return g(e.value)},children:e.label},"itemUnit-".concat(e.value,"-").concat(e.label))}))})]})}))},76352:function(e,n,t){t.d(n,{Z:function(){return w}});var a,o=t(23430),i=t(18489),r=t(50390),s=t(34424),l=t(95467),c=t(97771),d=t(84402),u=t(78426),m=t(93085),p=t(86509),h=t(4285),x=t(72462),f=t(44149),b=t(38342),g=t.n(b),v=t(92125),Z=t(19538),j=t(21278),C=t(62559),k=function(){clearInterval(a)},y={displayErrorMessage:f.zb},N=(0,s.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),y)((0,h.Z)((function(e){return(0,p.Z)({modalErrorContainer:{position:"absolute",marginTop:10,width:"80%",backgroundColor:"#fff",border:"#C72C48 1px solid",borderLeftWidth:12,borderRadius:3,zIndex:1e3,padding:"10px 15px",left:"50%",transform:"translateX(-50%)",opacity:0,transitionDuration:"0.2s"},modalErrorShow:{opacity:1},closeButton:{position:"absolute",right:5,fontSize:"small",border:0,backgroundColor:"#fff",cursor:"pointer"},errorTitle:{display:"flex",alignItems:"center"},errorLabel:{color:"#000",fontSize:18,fontWeight:500,marginLeft:5,marginRight:25},messageIcon:{color:"#C72C48",display:"flex","& svg":{width:32,height:32}},detailsButton:{color:"#9C9C9C",display:"flex",alignItems:"center",border:0,backgroundColor:"transparent",paddingLeft:5,fontSize:14,transformDuration:"0.3s",cursor:"pointer"},extraDetailsContainer:{fontStyle:"italic",color:"#9C9C9C",lineHeight:0,padding:"0 10px",transition:"all .2s ease-in-out",overflow:"hidden"},extraDetailsOpen:{lineHeight:1,padding:"3px 10px"},arrowElement:{marginLeft:-5},arrowOpen:{transform:"rotateZ(90deg)",transformDuration:"0.3s"}})}))((function(e){var n=e.classes,t=e.modalSnackMessage,i=e.displayErrorMessage,s=e.customStyle,l=(0,r.useState)(!1),c=(0,o.Z)(l,2),d=c[0],u=c[1],m=(0,r.useState)(!1),p=(0,o.Z)(m,2),h=p[0],x=p[1],f=(0,r.useCallback)((function(){x(!1)}),[]);(0,r.useEffect)((function(){h||(i({detailedError:"",errorMessage:""}),u(!1))}),[i,h]),(0,r.useEffect)((function(){""!==t.message&&"error"===t.type&&x(!0)}),[f,t.message,t.type]);var b=g()(t,"message",""),y=g()(t,"detailedErrorMsg","");return"error"!==t.type||""===b?null:(0,C.jsx)(r.Fragment,{children:(0,C.jsxs)("div",{className:"".concat(n.modalErrorContainer," ").concat(h?n.modalErrorShow:""),style:s,onMouseOver:k,onMouseLeave:function(){a=setInterval(f,1e4)},children:[(0,C.jsx)("button",{className:n.closeButton,onClick:f,children:(0,C.jsx)(j.Z,{})}),(0,C.jsxs)("div",{className:n.errorTitle,children:[(0,C.jsx)("span",{className:n.messageIcon,children:(0,C.jsx)(Z.Z,{})}),(0,C.jsx)("span",{className:n.errorLabel,children:b})]}),""!==y&&(0,C.jsxs)(r.Fragment,{children:[(0,C.jsx)("div",{className:n.detailsContainerLink,children:(0,C.jsxs)("button",{className:n.detailsButton,onClick:function(){u(!d)},children:["Details",(0,C.jsx)(v.Z,{className:"".concat(n.arrowElement," ").concat(d?n.arrowOpen:"")})]})}),(0,C.jsx)("div",{className:"".concat(n.extraDetailsContainer," ").concat(d?n.extraDetailsOpen:""),children:y})]})]})})}))),S=(0,s.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK}),w=(0,h.Z)((function(e){return(0,p.Z)((0,i.Z)((0,i.Z)({},x.Qw),{},{root:{"& .MuiPaper-root":{padding:"0 2rem 2rem 1rem"}},content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},x.sN))}))(S((function(e){var n=e.onClose,t=e.modalOpen,a=e.title,s=e.children,p=e.classes,h=e.wideLimit,x=void 0===h||h,f=e.modalSnackMessage,b=e.noContentPadding,g=e.setModalSnackMessage,v=e.titleIcon,Z=void 0===v?null:v,k=(0,r.useState)(!1),y=(0,o.Z)(k,2),S=y[0],w=y[1];(0,r.useEffect)((function(){g("")}),[g]),(0,r.useEffect)((function(){if(f){if(""===f.message)return void w(!1);"error"!==f.type&&w(!0)}}),[f]);var F=x?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},M="";return f&&(M=f.detailedErrorMsg,(""===f.detailedErrorMsg||f.detailedErrorMsg.length<5)&&(M=f.message)),(0,C.jsxs)(d.Z,(0,i.Z)((0,i.Z)({open:t,classes:p},F),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,C.jsxs)(u.Z,{className:p.title,children:[(0,C.jsxs)("div",{className:p.titleText,children:[Z," ",a]}),(0,C.jsx)("div",{className:p.closeContainer,children:(0,C.jsx)(l.Z,{"aria-label":"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,C.jsx)(j.Z,{})})})]}),(0,C.jsx)(N,{}),(0,C.jsx)(c.Z,{open:S,className:p.snackBarModal,onClose:function(){w(!1),g("")},message:M,ContentProps:{className:"".concat(p.snackBar," ").concat(f&&"error"===f.type?p.errorSnackBar:"")},autoHideDuration:f&&"error"===f.type?1e4:5e3}),(0,C.jsx)(m.Z,{className:b?"":p.content,children:s})]}))})))}}]);
-//# sourceMappingURL=1711.1d689e21.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1711.1d689e21.chunk.js.map b/portal-ui/build/static/js/1711.1d689e21.chunk.js.map
deleted file mode 100644
index ac4c7c5d7..000000000
--- a/portal-ui/build/static/js/1711.1d689e21.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1711.1d689e21.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EnableQuota.tsx","screens/Console/Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper.tsx","screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","screens/Console/Common/FormComponents/InputUnitMenu/InputUnitMenu.tsx","screens/Console/Common/FormComponents/ModalError/ModalError.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n getBytes,\n k8sScalarUnitsExcluding,\n units,\n} from \"../../../../common/utils\";\nimport { BucketQuota } from \"../types\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport { BucketQuotaIcon } from \"../../../../icons\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\ninterface IEnableQuotaProps {\n classes: any;\n open: boolean;\n enabled: boolean;\n cfg: BucketQuota | null;\n selectedBucket: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EnableQuota = ({\n classes,\n open,\n enabled,\n cfg,\n selectedBucket,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: IEnableQuotaProps) => {\n const [loading, setLoading] = useState(false);\n const [quotaEnabled, setQuotaEnabled] = useState(false);\n const [quotaSize, setQuotaSize] = useState(\"1\");\n const [quotaUnit, setQuotaUnit] = useState(\"TiB\");\n\n useEffect(() => {\n if (enabled) {\n setQuotaEnabled(true);\n if (cfg) {\n setQuotaSize(`${cfg.quota}`);\n setQuotaUnit(`Gi`);\n\n let maxUnit = \"B\";\n let maxQuota = cfg.quota;\n\n for (let i = 0; i < units.length; i++) {\n if (cfg.quota % Math.pow(1024, i) === 0) {\n maxQuota = cfg.quota / Math.pow(1024, i);\n maxUnit = units[i];\n } else {\n break;\n }\n }\n setQuotaSize(`${maxQuota}`);\n setQuotaUnit(maxUnit);\n }\n }\n }, [enabled, cfg]);\n\n const enableBucketEncryption = () => {\n if (loading) {\n return;\n }\n let req = {\n enabled: quotaEnabled,\n amount: parseInt(getBytes(quotaSize, quotaUnit, true)),\n quota_type: \"hard\",\n };\n\n api\n .invoke(\"PUT\", `/api/v1/buckets/${selectedBucket}/quota`, req)\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n return (\n {\n closeModalAndRefresh();\n }}\n title=\"Enable Bucket Quota\"\n titleIcon={}\n >\n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(EnableQuota));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { InputLabel, Switch, Tooltip, Typography } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { actionsTray, fieldBasic } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input/Input\";\n\ninterface IFormSwitch {\n label?: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n description?: string;\n index?: number;\n checked: boolean;\n switchOnly?: boolean;\n indicatorLabels?: string[];\n extraInputProps?: StandardInputProps[\"inputProps\"];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n divContainer: {\n marginBottom: 20,\n },\n indicatorLabelOn: {\n fontWeight: \"bold\",\n color: \"#081C42 !important\",\n },\n indicatorLabel: {\n fontSize: 12,\n color: \"#E2E2E2\",\n margin: \"0 8px 0 10px\",\n },\n fieldDescription: {\n marginTop: 4,\n color: \"#999999\",\n },\n tooltip: {\n fontSize: 16,\n },\n ...actionsTray,\n ...fieldBasic,\n });\n\nconst StyledSwitch = withStyles((theme) => ({\n root: {\n width: 50,\n height: 24,\n padding: 0,\n margin: 0,\n },\n switchBase: {\n padding: 1,\n \"&$checked\": {\n transform: \"translateX(24px)\",\n color: theme.palette.common.white,\n \"& + $track\": {\n backgroundColor: \"#4CCB92\",\n boxShadow: \"inset 0px 1px 4px rgba(0,0,0,0.1)\",\n opacity: 1,\n border: \"none\",\n },\n },\n \"&$focusVisible $thumb\": {\n color: \"#4CCB92\",\n border: \"6px solid #fff\",\n },\n },\n thumb: {\n width: 22,\n height: 22,\n backgroundColor: \"#FAFAFA\",\n border: \"2px solid #FFFFFF\",\n marginLeft: 1,\n },\n track: {\n borderRadius: 24 / 2,\n backgroundColor: \"#E2E2E2\",\n boxShadow: \"inset 0px 1px 4px rgba(0,0,0,0.1)\",\n opacity: 1,\n transition: theme.transitions.create([\"background-color\", \"border\"]),\n },\n checked: {},\n focusVisible: {},\n switchContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n}))(Switch);\n\nconst FormSwitchWrapper = ({\n label = \"\",\n onChange,\n value,\n id,\n name,\n checked = false,\n disabled = false,\n switchOnly = false,\n tooltip = \"\",\n description = \"\",\n classes,\n indicatorLabels,\n extraInputProps = {},\n}: IFormSwitch) => {\n const switchComponent = (\n \n {!switchOnly && (\n \n {indicatorLabels && indicatorLabels.length > 1\n ? indicatorLabels[1]\n : \"OFF\"}\n \n )}\n \n {!switchOnly && (\n \n {indicatorLabels ? indicatorLabels[0] : \"ON\"}\n \n )}\n \n );\n\n if (switchOnly) {\n return switchComponent;\n }\n\n return (\n
\n );\n};\n\nexport default withStyles(styles)(FormSwitchWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport {\n Grid,\n IconButton,\n InputLabel,\n TextField,\n TextFieldProps,\n Tooltip,\n} from \"@mui/material\";\nimport { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n onKeyPress?: (e: any) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n multiline?: boolean;\n type?: string;\n tooltip?: string;\n autoComplete?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n min?: string;\n max?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nfunction InputField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n }\n {...props}\n />\n );\n}\n\nconst InputBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n type = \"text\",\n autoComplete = \"off\",\n disabled = false,\n multiline = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n min,\n max,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n pattern = \"\",\n autoFocus = false,\n classes,\n className = \"\",\n onKeyPress,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n\n if (type === \"number\" && min) {\n inputProps[\"min\"] = min;\n }\n\n if (type === \"number\" && max) {\n inputProps[\"max\"] = max;\n }\n\n if (pattern !== \"\") {\n inputProps[\"pattern\"] = pattern;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { selectorTypes } from \"../SelectWrapper/SelectWrapper\";\nimport { Menu, MenuItem } from \"@mui/material\";\n\ninterface IInputUnitBox {\n classes: any;\n id: string;\n unitSelected: string;\n unitsList: selectorTypes[];\n disabled?: boolean;\n onUnitChange?: (newValue: string) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonTrigger: {\n border: \"#F0F2F2 1px solid\",\n borderRadius: 3,\n color: \"#838383\",\n backgroundColor: \"#fff\",\n fontSize: 12,\n },\n });\n\nconst InputUnitMenu = ({\n classes,\n id,\n unitSelected,\n unitsList,\n disabled = false,\n onUnitChange,\n}: IInputUnitBox) => {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = (newUnit: string) => {\n setAnchorEl(null);\n if (newUnit !== \"\" && onUnitChange) {\n onUnitChange(newUnit);\n }\n };\n\n return (\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(InputUnitMenu);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\n// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport ArrowRightIcon from \"@mui/icons-material/ArrowRight\";\nimport ErrorOutlineIcon from \"@mui/icons-material/ErrorOutline\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport {\n setErrorSnackMessage,\n setModalErrorSnackMessage,\n} from \"../../../../../actions\";\nimport { snackBarMessage } from \"../../../../../types\";\n\ninterface ImodalErrorProps {\n customStyle?: any;\n classes: any;\n modalSnackMessage: snackBarMessage;\n displayErrorMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n modalErrorContainer: {\n position: \"absolute\",\n marginTop: 10,\n width: \"80%\",\n backgroundColor: \"#fff\",\n border: \"#C72C48 1px solid\",\n borderLeftWidth: 12,\n borderRadius: 3,\n zIndex: 1000,\n padding: \"10px 15px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n opacity: 0,\n transitionDuration: \"0.2s\",\n },\n modalErrorShow: {\n opacity: 1,\n },\n closeButton: {\n position: \"absolute\",\n right: 5,\n fontSize: \"small\",\n border: 0,\n backgroundColor: \"#fff\",\n cursor: \"pointer\",\n },\n errorTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n errorLabel: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 500,\n marginLeft: 5,\n marginRight: 25,\n },\n messageIcon: {\n color: \"#C72C48\",\n display: \"flex\",\n \"& svg\": {\n width: 32,\n height: 32,\n },\n },\n detailsButton: {\n color: \"#9C9C9C\",\n display: \"flex\",\n alignItems: \"center\",\n border: 0,\n backgroundColor: \"transparent\",\n paddingLeft: 5,\n fontSize: 14,\n transformDuration: \"0.3s\",\n cursor: \"pointer\",\n },\n extraDetailsContainer: {\n fontStyle: \"italic\",\n color: \"#9C9C9C\",\n lineHeight: 0,\n padding: \"0 10px\",\n transition: \"all .2s ease-in-out\",\n overflow: \"hidden\",\n },\n extraDetailsOpen: {\n lineHeight: 1,\n padding: \"3px 10px\",\n },\n arrowElement: {\n marginLeft: -5,\n },\n arrowOpen: {\n transform: \"rotateZ(90deg)\",\n transformDuration: \"0.3s\",\n },\n });\n\nvar timerI: any;\n\nconst startHideTimer = (callbackFunction: () => void) => {\n timerI = setInterval(callbackFunction, 10000);\n};\n\nconst stopHideTimer = () => {\n clearInterval(timerI);\n};\n\nconst ModalError = ({\n classes,\n modalSnackMessage,\n displayErrorMessage,\n customStyle,\n}: ImodalErrorProps) => {\n const [detailsOpen, setDetailsOpen] = useState(false);\n const [displayErrorMsg, setDisplayErrorMsg] = useState(false);\n\n const closeErrorMessage = useCallback(() => {\n setDisplayErrorMsg(false);\n }, []);\n\n useEffect(() => {\n if (!displayErrorMsg) {\n displayErrorMessage({ detailedError: \"\", errorMessage: \"\" });\n setDetailsOpen(false);\n //clearInterval(timerI);\n }\n }, [displayErrorMessage, displayErrorMsg]);\n\n useEffect(() => {\n if (\n modalSnackMessage.message !== \"\" &&\n modalSnackMessage.type === \"error\"\n ) {\n //Error message received, we trigger the animation\n setDisplayErrorMsg(true);\n //startHideTimer(closeErrorMessage);\n }\n }, [closeErrorMessage, modalSnackMessage.message, modalSnackMessage.type]);\n\n const detailsToggle = () => {\n setDetailsOpen(!detailsOpen);\n };\n\n const message = get(modalSnackMessage, \"message\", \"\");\n const messageDetails = get(modalSnackMessage, \"detailedErrorMsg\", \"\");\n\n if (modalSnackMessage.type !== \"error\" || message === \"\") {\n return null;\n }\n\n return (\n \n
startHideTimer(closeErrorMessage)}\n >\n \n
\n \n \n \n {message}\n
\n {messageDetails !== \"\" && (\n \n
\n \n
\n
\n {messageDetails}\n
\n \n )}\n
\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst mapDispatchToProps = {\n displayErrorMessage: setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(ModalError));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport ModalError from \"../FormComponents/ModalError/ModalError\";\nimport CloseIcon from \"@mui/icons-material/Close\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n root: {\n \"& .MuiPaper-root\": {\n padding: \"0 2rem 2rem 1rem\",\n },\n },\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n"],"names":["connector","connect","setModalErrorSnackMessage","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","classes","open","enabled","cfg","selectedBucket","closeModalAndRefresh","useState","loading","setLoading","quotaEnabled","setQuotaEnabled","quotaSize","setQuotaSize","quotaUnit","setQuotaUnit","useEffect","quota","maxUnit","maxQuota","i","units","Math","pow","modalOpen","onClose","title","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","req","amount","parseInt","getBytes","quota_type","api","then","catch","err","enableBucketEncryption","container","item","xs","className","formScrollable","formFieldRow","value","id","name","checked","onChange","event","target","label","validity","valid","pattern","required","min","overlayObject","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","disabled","modalButtonBar","type","variant","color","onClick","StyledSwitch","root","width","height","padding","margin","switchBase","transform","palette","common","white","backgroundColor","boxShadow","opacity","border","thumb","marginLeft","track","borderRadius","transition","transitions","create","focusVisible","switchContainer","display","alignItems","justifyContent","Switch","divContainer","marginBottom","indicatorLabelOn","fontWeight","indicatorLabel","fontSize","fieldDescription","marginTop","tooltip","actionsTray","fieldBasic","switchOnly","description","indicatorLabels","extraInputProps","switchComponent","clsx","length","inputProps","disableRipple","disableFocusRipple","disableTouchRipple","sm","md","htmlFor","inputLabel","tooltipContainer","placement","textAlign","component","inputStyles","makeStyles","inputFieldStyles","InputField","props","InputProps","tooltipHelper","textBoxContainer","flexGrow","position","overlayAction","right","top","maxWidth","maxHeight","multiline","index","error","placeholder","max","overlayIcon","noLabelMinWidth","autoFocus","onKeyPress","errorInField","inputBoxContainer","noMinWidthLabel","fullWidth","helperText","inputRebase","size","buttonTrigger","React","anchorEl","setAnchorEl","Boolean","handleClose","newUnit","Fragment","undefined","currentTarget","anchorOrigin","vertical","horizontal","transformOrigin","map","unit","timerI","stopHideTimer","clearInterval","mapDispatchToProps","displayErrorMessage","state","modalSnackMessage","system","modalSnackBar","modalErrorContainer","borderLeftWidth","zIndex","left","transitionDuration","modalErrorShow","closeButton","cursor","errorTitle","errorLabel","marginRight","messageIcon","detailsButton","paddingLeft","transformDuration","extraDetailsContainer","fontStyle","lineHeight","overflow","extraDetailsOpen","arrowElement","arrowOpen","customStyle","detailsOpen","setDetailsOpen","displayErrorMsg","setDisplayErrorMsg","closeErrorMessage","useCallback","detailedError","errorMessage","message","get","messageDetails","style","onMouseOver","onMouseLeave","setInterval","Close","ErrorOutline","detailsContainerLink","ArrowRight","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","customSize","paper","detailedErrorMsg","Dialog","scroll","reason","DialogTitle","titleText","closeContainer","IconButton","Snackbar","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","DialogContent"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1711.dfdfce0a.chunk.js b/portal-ui/build/static/js/1711.dfdfce0a.chunk.js
new file mode 100644
index 000000000..da5fdcf14
--- /dev/null
+++ b/portal-ui/build/static/js/1711.dfdfce0a.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1711],{31711:function(e,n,t){t.r(n);var i=t(23430),a=t(18489),o=t(50390),r=t(34424),l=t(66946),s=t(81378),c=t(86509),d=t(4285),u=t(25594),p=t(28948),m=t(44149),h=t(72462),x=t(92440),b=t(66964),f=t(51002),Z=t(30324),v=t(86362),g=t(1365),j=t(62559),C=(0,r.$j)(null,{setModalErrorSnackMessage:m.zb});n.default=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},h.DF),h.ID))}))(C((function(e){var n=e.classes,t=e.open,a=e.enabled,r=e.cfg,c=e.selectedBucket,d=e.closeModalAndRefresh,m=e.setModalErrorSnackMessage,h=(0,o.useState)(!1),C=(0,i.Z)(h,2),k=C[0],N=C[1],y=(0,o.useState)(!1),F=(0,i.Z)(y,2),P=F[0],S=F[1],w=(0,o.useState)("1"),M=(0,i.Z)(w,2),B=M[0],L=M[1],E=(0,o.useState)("TiB"),q=(0,i.Z)(E,2),I=q[0],R=q[1];(0,o.useEffect)((function(){if(a&&(S(!0),r)){L("".concat(r.quota)),R("Gi");for(var e="B",n=r.quota,t=0;t1?w[1]:"OFF"}),(0,b.jsx)(f,{checked:v,onChange:r,color:"primary",name:m,inputProps:(0,a.Z)({"aria-label":"primary checkbox"},B),disabled:j,disableRipple:!0,disableFocusRipple:!0,disableTouchRipple:!0,value:l,id:s}),!k&&(0,b.jsx)("span",{className:(0,x.Z)(S.indicatorLabel,(0,i.Z)({},S.indicatorLabelOn,v)),children:w?w[0]:"ON"})]});return k?L:(0,b.jsx)("div",{className:S.divContainer,children:(0,b.jsxs)(p.ZP,{container:!0,alignItems:"center",children:[(0,b.jsx)(p.ZP,{item:!0,xs:!0,children:(0,b.jsxs)(p.ZP,{container:!0,children:[(0,b.jsx)(p.ZP,{item:!0,xs:12,sm:""!==P?4:10,md:""!==P?3:9,children:""!==t&&(0,b.jsxs)(c.Z,{htmlFor:s,className:S.inputLabel,children:[(0,b.jsx)("span",{children:t}),""!==y&&(0,b.jsx)("div",{className:S.tooltipContainer,children:(0,b.jsx)(d.Z,{title:y,placement:"top-start",children:(0,b.jsx)("div",{className:S.tooltip,children:(0,b.jsx)(h.Z,{})})})})]})}),(0,b.jsx)(p.ZP,{item:!0,xs:12,sm:!0,textAlign:"left",children:""!==P&&(0,b.jsx)(u.Z,{component:"p",className:S.fieldDescription,children:P})})]})}),(0,b.jsx)(p.ZP,{item:!0,xs:12,sm:2,textAlign:"right",className:S.switchContainer,children:L})]})})}))},66964:function(e,n,t){var i=t(18489),a=t(50390),o=t(12066),r=t(25594),l=t(36554),s=t(94187),c=t(95467),d=t(86509),u=t(62449),p=t(4285),m=t(72462),h=t(97538),x=t(44977),b=t(62559),f=(0,u.Z)((function(e){return(0,d.Z)((0,i.Z)({},m.gM))}));function Z(e){var n=f();return(0,b.jsx)(o.Z,(0,i.Z)({InputProps:{classes:n}},e))}n.Z=(0,p.Z)((function(e){return(0,d.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},m.YI),m.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative"},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}},inputLabel:(0,i.Z)((0,i.Z)({},m.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var n=e.label,t=e.onChange,o=e.value,d=e.id,u=e.name,p=e.type,m=void 0===p?"text":p,f=e.autoComplete,v=void 0===f?"off":f,g=e.disabled,j=void 0!==g&&g,C=e.multiline,k=void 0!==C&&C,N=e.tooltip,y=void 0===N?"":N,F=e.index,P=void 0===F?0:F,S=e.error,w=void 0===S?"":S,M=e.required,B=void 0!==M&&M,L=e.placeholder,E=void 0===L?"":L,q=e.min,I=e.max,R=e.overlayId,z=e.overlayIcon,O=void 0===z?null:z,A=e.overlayObject,D=void 0===A?null:A,T=e.extraInputProps,W=void 0===T?{}:T,_=e.overlayAction,$=e.noLabelMinWidth,K=void 0!==$&&$,Q=e.pattern,U=void 0===Q?"":Q,H=e.autoFocus,V=void 0!==H&&H,Y=e.classes,G=e.className,X=void 0===G?"":G,J=e.onKeyPress,ee=(0,i.Z)({"data-index":P},W);return"number"===m&&q&&(ee.min=q),"number"===m&&I&&(ee.max=I),""!==U&&(ee.pattern=U),(0,b.jsx)(a.Fragment,{children:(0,b.jsxs)(r.ZP,{container:!0,className:(0,x.Z)(""!==X?X:"",""!==w?Y.errorInField:Y.inputBoxContainer),children:[""!==n&&(0,b.jsxs)(l.Z,{htmlFor:d,className:K?Y.noMinWidthLabel:Y.inputLabel,children:[(0,b.jsxs)("span",{children:[n,B?"*":""]}),""!==y&&(0,b.jsx)("div",{className:Y.tooltipContainer,children:(0,b.jsx)(s.Z,{title:y,placement:"top-start",children:(0,b.jsx)("div",{className:Y.tooltip,children:(0,b.jsx)(h.Z,{})})})})]}),(0,b.jsxs)("div",{className:Y.textBoxContainer,children:[(0,b.jsx)(Z,{id:d,name:u,fullWidth:!0,value:o,autoFocus:V,disabled:j,onChange:t,type:m,multiline:k,autoComplete:v,inputProps:ee,error:""!==w,helperText:w,placeholder:E,className:Y.inputRebase,onKeyPress:J}),O&&(0,b.jsx)("div",{className:"".concat(Y.overlayAction," ").concat(""!==n?"withLabel":""),children:(0,b.jsx)(c.Z,{onClick:_?function(){_()}:function(){return null},id:R,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:O})}),D&&(0,b.jsx)("div",{className:"".concat(Y.overlayAction," ").concat(""!==n?"withLabel":""),children:D})]})]})})}))},1365:function(e,n,t){var i=t(23430),a=t(50390),o=t(86509),r=t(4285),l=t(26936),s=t(31680),c=t(62559);n.Z=(0,r.Z)((function(e){return(0,o.Z)({buttonTrigger:{border:"#F0F2F2 1px solid",borderRadius:3,color:"#838383",backgroundColor:"#fff",fontSize:12}})}))((function(e){var n=e.classes,t=e.id,o=e.unitSelected,r=e.unitsList,d=e.disabled,u=void 0!==d&&d,p=e.onUnitChange,m=a.useState(null),h=(0,i.Z)(m,2),x=h[0],b=h[1],f=Boolean(x),Z=function(e){b(null),""!==e&&p&&p(e)};return(0,c.jsxs)(a.Fragment,{children:[(0,c.jsx)("button",{id:"".concat(t,"-button"),"aria-controls":"".concat(t,"-menu"),"aria-haspopup":"true","aria-expanded":f?"true":void 0,onClick:function(e){b(e.currentTarget)},className:n.buttonTrigger,disabled:u,type:"button",children:o}),(0,c.jsx)(l.Z,{id:"".concat(t,"-menu"),"aria-labelledby":"".concat(t,"-button"),anchorEl:x,open:f,onClose:function(){Z("")},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:r.map((function(e){return(0,c.jsx)(s.Z,{onClick:function(){return Z(e.value)},children:e.label},"itemUnit-".concat(e.value,"-").concat(e.label))}))})]})}))},51002:function(e,n,t){var i=t(23430),a=t(18489),o=t(50390),r=t(34424),l=t(95467),s=t(97771),c=t(84402),d=t(78426),u=t(93085),p=t(86509),m=t(4285),h=t(72462),x=t(44149),b=t(21278),f=t(45980),Z=t(62559),v=(0,r.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,m.Z)((function(e){return(0,p.Z)((0,a.Z)((0,a.Z)({},h.Qw),{},{root:{"& .MuiPaper-root":{padding:"0 2rem 2rem 1rem"}},content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},h.sN))}))(v((function(e){var n=e.onClose,t=e.modalOpen,r=e.title,p=e.children,m=e.classes,h=e.wideLimit,x=void 0===h||h,v=e.modalSnackMessage,g=e.noContentPadding,j=e.setModalSnackMessage,C=e.titleIcon,k=void 0===C?null:C,N=(0,o.useState)(!1),y=(0,i.Z)(N,2),F=y[0],P=y[1];(0,o.useEffect)((function(){j("")}),[j]),(0,o.useEffect)((function(){if(v){if(""===v.message)return void P(!1);"error"!==v.type&&P(!0)}}),[v]);var S=x?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return v&&(w=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(w=v.message)),(0,Z.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:m},S),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:m.root,children:[(0,Z.jsxs)(d.Z,{className:m.title,children:[(0,Z.jsxs)("div",{className:m.titleText,children:[k," ",r]}),(0,Z.jsx)("div",{className:m.closeContainer,children:(0,Z.jsx)(l.Z,{"aria-label":"close",className:m.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,Z.jsx)(b.Z,{})})})]}),(0,Z.jsx)(f.Z,{isModal:!0}),(0,Z.jsx)(s.Z,{open:F,className:m.snackBarModal,onClose:function(){P(!1),j("")},message:w,ContentProps:{className:"".concat(m.snackBar," ").concat(v&&"error"===v.type?m.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:g?"":m.content,children:p})]}))})))}}]);
+//# sourceMappingURL=1711.dfdfce0a.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1711.dfdfce0a.chunk.js.map b/portal-ui/build/static/js/1711.dfdfce0a.chunk.js.map
new file mode 100644
index 000000000..831261dd1
--- /dev/null
+++ b/portal-ui/build/static/js/1711.dfdfce0a.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1711.dfdfce0a.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EnableQuota.tsx","screens/Console/Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper.tsx","screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","screens/Console/Common/FormComponents/InputUnitMenu/InputUnitMenu.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n getBytes,\n k8sScalarUnitsExcluding,\n units,\n} from \"../../../../common/utils\";\nimport { BucketQuota } from \"../types\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport { BucketQuotaIcon } from \"../../../../icons\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\ninterface IEnableQuotaProps {\n classes: any;\n open: boolean;\n enabled: boolean;\n cfg: BucketQuota | null;\n selectedBucket: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EnableQuota = ({\n classes,\n open,\n enabled,\n cfg,\n selectedBucket,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: IEnableQuotaProps) => {\n const [loading, setLoading] = useState(false);\n const [quotaEnabled, setQuotaEnabled] = useState(false);\n const [quotaSize, setQuotaSize] = useState(\"1\");\n const [quotaUnit, setQuotaUnit] = useState(\"TiB\");\n\n useEffect(() => {\n if (enabled) {\n setQuotaEnabled(true);\n if (cfg) {\n setQuotaSize(`${cfg.quota}`);\n setQuotaUnit(`Gi`);\n\n let maxUnit = \"B\";\n let maxQuota = cfg.quota;\n\n for (let i = 0; i < units.length; i++) {\n if (cfg.quota % Math.pow(1024, i) === 0) {\n maxQuota = cfg.quota / Math.pow(1024, i);\n maxUnit = units[i];\n } else {\n break;\n }\n }\n setQuotaSize(`${maxQuota}`);\n setQuotaUnit(maxUnit);\n }\n }\n }, [enabled, cfg]);\n\n const enableBucketEncryption = () => {\n if (loading) {\n return;\n }\n let req = {\n enabled: quotaEnabled,\n amount: parseInt(getBytes(quotaSize, quotaUnit, true)),\n quota_type: \"hard\",\n };\n\n api\n .invoke(\"PUT\", `/api/v1/buckets/${selectedBucket}/quota`, req)\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n return (\n {\n closeModalAndRefresh();\n }}\n title=\"Enable Bucket Quota\"\n titleIcon={}\n >\n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(EnableQuota));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { InputLabel, Switch, Tooltip, Typography } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { actionsTray, fieldBasic } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input/Input\";\n\ninterface IFormSwitch {\n label?: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n description?: string;\n index?: number;\n checked: boolean;\n switchOnly?: boolean;\n indicatorLabels?: string[];\n extraInputProps?: StandardInputProps[\"inputProps\"];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n divContainer: {\n marginBottom: 20,\n },\n indicatorLabelOn: {\n fontWeight: \"bold\",\n color: \"#081C42 !important\",\n },\n indicatorLabel: {\n fontSize: 12,\n color: \"#E2E2E2\",\n margin: \"0 8px 0 10px\",\n },\n fieldDescription: {\n marginTop: 4,\n color: \"#999999\",\n },\n tooltip: {\n fontSize: 16,\n },\n ...actionsTray,\n ...fieldBasic,\n });\n\nconst StyledSwitch = withStyles((theme) => ({\n root: {\n width: 50,\n height: 24,\n padding: 0,\n margin: 0,\n },\n switchBase: {\n padding: 1,\n \"&$checked\": {\n transform: \"translateX(24px)\",\n color: theme.palette.common.white,\n \"& + $track\": {\n backgroundColor: \"#4CCB92\",\n boxShadow: \"inset 0px 1px 4px rgba(0,0,0,0.1)\",\n opacity: 1,\n border: \"none\",\n },\n },\n \"&$focusVisible $thumb\": {\n color: \"#4CCB92\",\n border: \"6px solid #fff\",\n },\n },\n thumb: {\n width: 22,\n height: 22,\n backgroundColor: \"#FAFAFA\",\n border: \"2px solid #FFFFFF\",\n marginLeft: 1,\n },\n track: {\n borderRadius: 24 / 2,\n backgroundColor: \"#E2E2E2\",\n boxShadow: \"inset 0px 1px 4px rgba(0,0,0,0.1)\",\n opacity: 1,\n transition: theme.transitions.create([\"background-color\", \"border\"]),\n },\n checked: {},\n focusVisible: {},\n switchContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n}))(Switch);\n\nconst FormSwitchWrapper = ({\n label = \"\",\n onChange,\n value,\n id,\n name,\n checked = false,\n disabled = false,\n switchOnly = false,\n tooltip = \"\",\n description = \"\",\n classes,\n indicatorLabels,\n extraInputProps = {},\n}: IFormSwitch) => {\n const switchComponent = (\n \n {!switchOnly && (\n \n {indicatorLabels && indicatorLabels.length > 1\n ? indicatorLabels[1]\n : \"OFF\"}\n \n )}\n \n {!switchOnly && (\n \n {indicatorLabels ? indicatorLabels[0] : \"ON\"}\n \n )}\n \n );\n\n if (switchOnly) {\n return switchComponent;\n }\n\n return (\n
\n );\n};\n\nexport default withStyles(styles)(FormSwitchWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport {\n Grid,\n IconButton,\n InputLabel,\n TextField,\n TextFieldProps,\n Tooltip,\n} from \"@mui/material\";\nimport { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n onKeyPress?: (e: any) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n multiline?: boolean;\n type?: string;\n tooltip?: string;\n autoComplete?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n min?: string;\n max?: string;\n overlayId?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nfunction InputField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n }\n {...props}\n />\n );\n}\n\nconst InputBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n type = \"text\",\n autoComplete = \"off\",\n disabled = false,\n multiline = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n min,\n max,\n overlayId,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n pattern = \"\",\n autoFocus = false,\n classes,\n className = \"\",\n onKeyPress,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n\n if (type === \"number\" && min) {\n inputProps[\"min\"] = min;\n }\n\n if (type === \"number\" && max) {\n inputProps[\"max\"] = max;\n }\n\n if (pattern !== \"\") {\n inputProps[\"pattern\"] = pattern;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\ninterface IDeletePod {\n deleteOpen: boolean;\n selectedPod: IPodListElement;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeletePod = ({\n deleteOpen,\n selectedPod,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeletePod) => {\n const [retypePod, setRetypePod] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePod !== selectedPod.name) {\n setErrorSnackMessage({\n errorMessage: \"Tenant name is incorrect\",\n detailedError: \"\",\n });\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPod.namespace}/tenants/${selectedPod.tenant}/pods/${selectedPod.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePod !== selectedPod.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPod.name} in the box.\n \n ) => {\n setRetypePod(event.target.value);\n }}\n label=\"\"\n value={retypePod}\n />\n \n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeletePod);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport DeletePod from \"./DeletePod\";\nimport { Grid, InputAdornment, TextField } from \"@mui/material\";\nimport SearchIcon from \"../../../../icons/SearchIcon\";\n\ninterface IPodsSummary {\n classes: any;\n match: any;\n history: any;\n loadingTenant: boolean;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PodsSummary = ({\n classes,\n match,\n history,\n loadingTenant,\n}: IPodsSummary) => {\n const [pods, setPods] = useState([]);\n const [loadingPods, setLoadingPods] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedPod, setSelectedPod] = useState(null);\n const [filter, setFilter] = useState(\"\");\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n const podViewAction = (pod: IPodListElement) => {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}/pods/${pod.name}`\n );\n return;\n };\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n setLoadingPods(true);\n };\n\n const confirmDeletePod = (pod: IPodListElement) => {\n pod.tenant = tenantName;\n pod.namespace = tenantNamespace;\n setSelectedPod(pod);\n setDeleteOpen(true);\n };\n\n const filteredRecords: IPodListElement[] = pods.filter((elementItem) =>\n elementItem.name.toLowerCase().includes(filter.toLowerCase())\n );\n\n const podTableActions = [\n { type: \"view\", onClick: podViewAction },\n { type: \"delete\", onClick: confirmDeletePod },\n ];\n\n useEffect(() => {\n if (loadingTenant) {\n setLoadingPods(true);\n }\n }, [loadingTenant]);\n\n useEffect(() => {\n if (loadingPods) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/pods`\n )\n .then((result: IPodListElement[]) => {\n for (let i = 0; i < result.length; i++) {\n let currentTime = (Date.now() / 1000) | 0;\n result[i].time = niceDays(\n (currentTime - parseInt(result[i].timeCreated)).toString()\n );\n }\n setPods(result);\n setLoadingPods(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error loading pods\",\n detailedError: err.detailedError,\n });\n });\n }\n }, [loadingPods, tenantName, tenantNamespace]);\n\n return (\n \n {deleteOpen && (\n \n )}\n
\n \n \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\ninterface IDeletePod {\n deleteOpen: boolean;\n selectedPod: IPodListElement;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeletePod = ({\n deleteOpen,\n selectedPod,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeletePod) => {\n const [retypePod, setRetypePod] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePod !== selectedPod.name) {\n setErrorSnackMessage({\n errorMessage: \"Tenant name is incorrect\",\n detailedError: \"\",\n });\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPod.namespace}/tenants/${selectedPod.tenant}/pods/${selectedPod.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePod !== selectedPod.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPod.name} in the box.\n \n ) => {\n setRetypePod(event.target.value);\n }}\n label=\"\"\n value={retypePod}\n />\n \n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeletePod);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport DeletePod from \"./DeletePod\";\nimport { Grid, InputAdornment, TextField } from \"@mui/material\";\nimport SearchIcon from \"../../../../icons/SearchIcon\";\n\ninterface IPodsSummary {\n classes: any;\n match: any;\n history: any;\n loadingTenant: boolean;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PodsSummary = ({\n classes,\n match,\n history,\n loadingTenant,\n}: IPodsSummary) => {\n const [pods, setPods] = useState([]);\n const [loadingPods, setLoadingPods] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedPod, setSelectedPod] = useState(null);\n const [filter, setFilter] = useState(\"\");\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n const podViewAction = (pod: IPodListElement) => {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}/pods/${pod.name}`\n );\n return;\n };\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n setLoadingPods(true);\n };\n\n const confirmDeletePod = (pod: IPodListElement) => {\n pod.tenant = tenantName;\n pod.namespace = tenantNamespace;\n setSelectedPod(pod);\n setDeleteOpen(true);\n };\n\n const filteredRecords: IPodListElement[] = pods.filter((elementItem) =>\n elementItem.name.toLowerCase().includes(filter.toLowerCase())\n );\n\n const podTableActions = [\n { type: \"view\", onClick: podViewAction },\n { type: \"delete\", onClick: confirmDeletePod },\n ];\n\n useEffect(() => {\n if (loadingTenant) {\n setLoadingPods(true);\n }\n }, [loadingTenant]);\n\n useEffect(() => {\n if (loadingPods) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/pods`\n )\n .then((result: IPodListElement[]) => {\n for (let i = 0; i < result.length; i++) {\n let currentTime = (Date.now() / 1000) | 0;\n result[i].time = niceDays(\n (currentTime - parseInt(result[i].timeCreated)).toString()\n );\n }\n setPods(result);\n setLoadingPods(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error loading pods\",\n detailedError: err.detailedError,\n });\n });\n }\n }, [loadingPods, tenantName, tenantNamespace]);\n\n return (\n \n {deleteOpen && (\n \n )}\n
Pods
\n \n \n \n \n ),\n }}\n onChange={(e) => {\n setFilter(e.target.value);\n }}\n variant=\"standard\"\n />\n \n \n {\n return input !== null ? input : 0;\n },\n },\n { label: \"Node\", elementKey: \"node\" },\n ]}\n isLoading={loadingPods}\n records={filteredRecords}\n itemActions={podTableActions}\n entityName=\"Pods\"\n idField=\"name\"\n />\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(PodsSummary));\n"],"names":["inputStyles","makeStyles","theme","createStyles","inputFieldStyles","InputField","props","classes","InputProps","withStyles","fieldBasic","tooltipHelper","textBoxContainer","flexGrow","position","overlayAction","right","top","maxWidth","maxHeight","inputLabel","fontWeight","label","onChange","value","id","name","type","autoComplete","disabled","multiline","tooltip","index","error","required","placeholder","min","max","overlayIcon","overlayObject","extraInputProps","noLabelMinWidth","pattern","autoFocus","className","onKeyPress","inputProps","container","clsx","errorInField","inputBoxContainer","htmlFor","noMinWidthLabel","tooltipContainer","title","placement","fullWidth","helperText","inputRebase","onClick","size","disableFocusRipple","disableRipple","disableTouchRipple","onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","root","sx","padding","titleText","closeContainer","closeButton","content","actions","cancelButton","variant","color","confirmButton","loading","loadingPosition","startIcon","connect","setErrorSnackMessage","deleteOpen","selectedPod","closeDeleteModalAndRefresh","retypePod","setRetypePod","useApi","deleteLoading","invokeDeleteApi","ConfirmDialog","namespace","tenant","errorMessage","detailedError","DialogContentText","Grid","item","xs","InputBoxWrapper","target","connector","state","loadingTenant","tenants","tenantDetails","tenantDetailsStyles","tableStyles","containerForHeader","spacing","match","history","pods","setPods","loadingPods","setLoadingPods","setDeleteOpen","setSelectedPod","filter","setFilter","tenantName","params","tenantNamespace","filteredRecords","elementItem","toLowerCase","includes","podTableActions","pod","push","useEffect","result","i","length","currentTime","Date","now","time","niceDays","parseInt","timeCreated","toString","Fragment","reloadData","sectionTitle","actionsTray","TextField","searchField","disableUnderline","startAdornment","InputAdornment","SearchIcon","e","tableBlock","TableWrapper","columns","elementKey","width","renderFunction","input","records","itemActions","entityName","idField"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1796.26462172.chunk.js b/portal-ui/build/static/js/1796.26462172.chunk.js
new file mode 100644
index 000000000..a16538ca2
--- /dev/null
+++ b/portal-ui/build/static/js/1796.26462172.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1796],{29316:function(e,a,l){l(50390);var t=l(6369),n=l(86509),i=l(4285),s=l(86362),r=l(62559);a.Z=(0,i.Z)((function(e){return(0,n.Z)({link:{display:"flex",alignItems:"center",textDecoration:"none",maxWidth:"300px",padding:"2rem 2rem 0rem 2rem",color:e.palette.primary.light,fontSize:".8rem","&:hover":{textDecoration:"underline"}},icon:{marginRight:".3rem",display:"flex",alignItems:"center",justifyContent:"center","& svg.min-icon":{width:12}}})}))((function(e){var a=e.to,l=e.label,n=e.classes,i=e.className,o=e.executeOnClick;return(0,r.jsxs)(t.rU,{to:a,className:"".concat(n.link," ").concat(i||""),onClick:function(){o&&o()},children:[(0,r.jsx)("div",{className:n.icon,children:(0,r.jsx)(s.xN,{})}),(0,r.jsx)("div",{className:n.label,children:l})]})}))},82461:function(e,a,l){l.d(a,{Z:function(){return S}});var t=l(23430),n=l(18489),i=l(50390),s=l(38342),r=l.n(s),o=l(25594),u=l(36554),c=l(94187),d=l(95467),v=l(46529),p=l(94258),b=l(86509),h=l(4285),m=l(72462),x=l(97538),f=l(82981),g=l(62559),S=(0,h.Z)((function(e){return(0,b.Z)((0,n.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},m.YI),m.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},m.bV),{},{inputLabel:(0,n.Z)((0,n.Z)({},m.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,n.Z)((0,n.Z)({},m.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var a=e.label,l=e.classes,n=e.onChange,s=e.id,b=e.name,h=e.disabled,m=void 0!==h&&h,S=e.tooltip,Z=void 0===S?"":S,j=e.required,C=e.error,A=void 0===C?"":C,E=e.accept,y=void 0===E?"":E,N=e.value,w=void 0===N?"":N,T=(0,i.useState)(!1),I=(0,t.Z)(T,2),U=I[0],W=I[1];return(0,g.jsx)(i.Fragment,{children:(0,g.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(l.fileInputField," ").concat(l.fieldBottom," ").concat(l.fieldContainer," ").concat(""!==A?l.errorInField:""),children:[""!==a&&(0,g.jsxs)(u.Z,{htmlFor:s,className:"".concat(""!==A?l.fieldLabelError:""," ").concat(l.inputLabel),children:[(0,g.jsxs)("span",{children:[a,j?"*":""]}),""!==Z&&(0,g.jsx)("div",{className:l.tooltipContainer,children:(0,g.jsx)(c.Z,{title:Z,placement:"top-start",children:(0,g.jsx)("div",{className:l.tooltip,children:(0,g.jsx)(x.Z,{})})})})]}),U||""===w?(0,g.jsxs)("div",{className:l.textBoxContainer,children:[(0,g.jsx)("input",{type:"file",name:b,onChange:function(e){var a=r()(e,"target.files[0].name","");!function(e,a){var l=e.target.files[0],t=new FileReader;t.readAsDataURL(l),t.onload=function(){var e=t.result;if(e){var l=e.toString().split("base64,");2===l.length&&a(l[1])}}}(e,(function(e){n(e,a)}))},accept:y,required:j,disabled:m,className:l.fileInputField}),""!==w&&(0,g.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){W(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,g.jsx)(p.Z,{})}),""!==A&&(0,g.jsx)(f.Z,{errorMessage:A})]}):(0,g.jsxs)("div",{className:l.fileReselect,children:[(0,g.jsx)("div",{className:l.valueString,children:w}),(0,g.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){W(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,g.jsx)(v.Z,{})})]})]})})}))},66964:function(e,a,l){var t=l(18489),n=l(50390),i=l(12066),s=l(25594),r=l(36554),o=l(94187),u=l(95467),c=l(86509),d=l(62449),v=l(4285),p=l(72462),b=l(97538),h=l(44977),m=l(62559),x=(0,d.Z)((function(e){return(0,c.Z)((0,t.Z)({},p.gM))}));function f(e){var a=x();return(0,m.jsx)(i.Z,(0,t.Z)({InputProps:{classes:a}},e))}a.Z=(0,v.Z)((function(e){return(0,c.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},p.YI),p.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative"},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}},inputLabel:(0,t.Z)((0,t.Z)({},p.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var a=e.label,l=e.onChange,i=e.value,c=e.id,d=e.name,v=e.type,p=void 0===v?"text":v,x=e.autoComplete,g=void 0===x?"off":x,S=e.disabled,Z=void 0!==S&&S,j=e.multiline,C=void 0!==j&&j,A=e.tooltip,E=void 0===A?"":A,y=e.index,N=void 0===y?0:y,w=e.error,T=void 0===w?"":w,I=e.required,U=void 0!==I&&I,W=e.placeholder,O=void 0===W?"":W,k=e.min,P=e.max,R=e.overlayId,L=e.overlayIcon,F=void 0===L?null:L,M=e.overlayObject,z=void 0===M?null:M,B=e.extraInputProps,H=void 0===B?{}:B,K=e.overlayAction,V=e.noLabelMinWidth,q=void 0!==V&&V,G=e.pattern,D=void 0===G?"":G,J=e.autoFocus,Y=void 0!==J&&J,X=e.classes,$=e.className,_=void 0===$?"":$,Q=e.onKeyPress,ee=(0,t.Z)({"data-index":N},H);return"number"===p&&k&&(ee.min=k),"number"===p&&P&&(ee.max=P),""!==D&&(ee.pattern=D),(0,m.jsx)(n.Fragment,{children:(0,m.jsxs)(s.ZP,{container:!0,className:(0,h.Z)(""!==_?_:"",""!==T?X.errorInField:X.inputBoxContainer),children:[""!==a&&(0,m.jsxs)(r.Z,{htmlFor:c,className:q?X.noMinWidthLabel:X.inputLabel,children:[(0,m.jsxs)("span",{children:[a,U?"*":""]}),""!==E&&(0,m.jsx)("div",{className:X.tooltipContainer,children:(0,m.jsx)(o.Z,{title:E,placement:"top-start",children:(0,m.jsx)("div",{className:X.tooltip,children:(0,m.jsx)(b.Z,{})})})})]}),(0,m.jsxs)("div",{className:X.textBoxContainer,children:[(0,m.jsx)(f,{id:c,name:d,fullWidth:!0,value:i,autoFocus:Y,disabled:Z,onChange:l,type:p,multiline:C,autoComplete:g,inputProps:ee,error:""!==T,helperText:T,placeholder:O,className:X.inputRebase,onKeyPress:Q}),F&&(0,m.jsx)("div",{className:"".concat(X.overlayAction," ").concat(""!==a?"withLabel":""),children:(0,m.jsx)(u.Z,{onClick:K?function(){K()}:function(){return null},id:R,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:F})}),z&&(0,m.jsx)("div",{className:"".concat(X.overlayAction," ").concat(""!==a?"withLabel":""),children:z})]})]})})}))},25534:function(e,a,l){var t=l(18489),n=(l(50390),l(25594)),i=l(86509),s=l(4285),r=l(72462),o=l(62559);a.Z=(0,s.Z)((function(e){return(0,i.Z)((0,t.Z)({},r.Bw))}))((function(e){var a=e.classes,l=e.className,t=void 0===l?"":l,i=e.children;return(0,o.jsx)("div",{className:a.contentSpacer,children:(0,o.jsx)(n.ZP,{container:!0,children:(0,o.jsx)(n.ZP,{item:!0,xs:12,className:t,children:i})})})}))},35721:function(e,a,l){var t=l(50390),n=l(34424),i=l(25594),s=l(86509),r=l(4285),o=l(35477),u=l(95467),c=l(26805),d=l(44078),v=l(5265),p=l(86362),b=l(62559),h={toggleList:v.kQ},m=(0,n.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);a.Z=m((0,r.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:34,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var a=e.classes,l=e.label,n=e.actions,s=e.sidebarOpen,r=e.operatorMode,v=e.managerObjects,h=e.toggleList,m=e.middleComponent;return e.features.includes("hide-menu")?(0,b.jsx)(t.Fragment,{}):(0,b.jsxs)(i.ZP,{container:!0,className:"".concat(a.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,b.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:m?3:6,className:a.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,b.jsx)("div",{className:a.logo,children:r?(0,b.jsx)(c.Z,{}):(0,b.jsx)(d.Z,{})}),(0,b.jsx)(o.Z,{variant:"h4",className:a.labelStyle,children:l})]}),m&&(0,b.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:a.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:m}),(0,b.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:m?3:6,className:a.rightMenu,children:[n&&n,v&&v.length>0&&(0,b.jsx)(u.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},size:"large",children:(0,b.jsx)(p.gx,{})})]})]})})))},41796:function(e,a,l){l.r(a),l.d(a,{default:function(){return B}});var t=l(23430),n=l(18489),i=l(50390),s=l(34424),r=l(38342),o=l.n(r),u=l(25594),c=l(86509),d=l(4285),v=l(56805),p=l(66946),b=l(44149),h=l(72462),m=l(30324),x=l(66964),f=l(82461),g=l(35721),S=l(51444),Z=l(29316),j=l(25534),C=l(49495),A=l(36554),E=l(94187),y=l(95467),N=l(62449),w=l(97538),T=l(44977),I=l(10728),U=l(12066),W=[{label:"US East (Ohio)",value:"us-east-2"},{label:"US East (N. Virginia)",value:"us-east-1"},{label:"US West (N. California)",value:"us-west-1"},{label:"US West (Oregon)",value:"us-west-2"},{label:"Africa (Cape Town)",value:"af-south-1"},{label:"Asia Pacific (Hong Kong)***",value:"ap-east-1"},{label:"Asia Pacific (Jakarta)",value:"ap-southeast-3"},{label:"Asia Pacific (Mumbai)",value:"ap-south-1"},{label:"Asia Pacific (Osaka)",value:"ap-northeast-3"},{label:"Asia Pacific (Seoul)",value:"ap-northeast-2"},{label:"Asia Pacific (Singapore)",value:"ap-southeast-1"},{label:"Asia Pacific (Sydney)",value:"ap-southeast-2"},{label:"Asia Pacific (Tokyo)",value:"ap-northeast-1"},{label:"Canada (Central)",value:"ca-central-1"},{label:"China (Beijing)",value:"cn-north-1"},{label:"China (Ningxia)",value:"cn-northwest-1"},{label:"Europe (Frankfurt)",value:"eu-central-1"},{label:"Europe (Ireland)",value:"eu-west-1"},{label:"Europe (London)",value:"eu-west-2"},{label:"Europe (Milan)",value:"eu-south-1"},{label:"Europe (Paris)",value:"eu-west-3"},{label:"Europe (Stockholm)",value:"eu-north-1"},{label:"South America (S\xe3o Paulo)",value:"sa-east-1"},{label:"Middle East (Bahrain)",value:"me-south-1"},{label:"AWS GovCloud (US-East)",value:"us-gov-east-1"},{label:"AWS GovCloud (US-West)",value:"us-gov-west-1"}],O=[{label:"Montr\xe9al",value:"NORTHAMERICA-NORTHEAST1"},{label:"Toronto",value:"NORTHAMERICA-NORTHEAST2"},{label:"Iowa",value:"US-CENTRAL1"},{label:"South Carolina",value:"US-EAST1"},{label:"Northern Virginia",value:"US-EAST4"},{label:"Oregon",value:"US-WEST1"},{label:"Los Angeles",value:"US-WEST2"},{label:"Salt Lake City",value:"US-WEST3"},{label:"Las Vegas",value:"US-WEST4"},{label:"S\xe3o Paulo",value:"SOUTHAMERICA-EAST1"},{label:"Santiago",value:"SOUTHAMERICA-WEST1"},{label:"Warsaw",value:"EUROPE-CENTRAL2"},{label:"Finland",value:"EUROPE-NORTH1"},{label:"Belgium",value:"EUROPE-WEST1"},{label:"London",value:"EUROPE-WEST2"},{label:"Frankfurt",value:"EUROPE-WEST3"},{label:"Netherlands",value:"EUROPE-WEST4"},{label:"Z\xfcrich",value:"EUROPE-WEST6"},{label:"Taiwan",value:"ASIA-EAST1"},{label:"Hong Kong",value:"ASIA-EAST2"},{label:"Tokyo",value:"ASIA-NORTHEAST1"},{label:"Osaka",value:"ASIA-NORTHEAST2"},{label:"Seoul",value:"ASIA-NORTHEAST3"},{label:"Mumbai",value:"ASIA-SOUTH1"},{label:"Delhi",value:"ASIA-SOUTH2"},{label:"Singapore",value:"ASIA-SOUTHEAST1"},{label:"Jakarta",value:"ASIA-SOUTHEAST2"},{label:"Sydney",value:"AUSTRALIA-SOUTHEAST1"},{label:"Melbourne",value:"AUSTRALIA-SOUTHEAST2"}],k=[{label:"Asia",value:"asia"},{label:"Asia Pacific",value:"asiapacific"},{label:"Australia",value:"australia"},{label:"Australia Central",value:"australiacentral"},{label:"Australia Central 2",value:"australiacentral2"},{label:"Australia East",value:"australiaeast"},{label:"Australia Southeast",value:"australiasoutheast"},{label:"Brazil",value:"brazil"},{label:"Brazil South",value:"brazilsouth"},{label:"Brazil Southeast",value:"brazilsoutheast"},{label:"Canada",value:"canada"},{label:"Canada Central",value:"canadacentral"},{label:"Canada East",value:"canadaeast"},{label:"Central India",value:"centralindia"},{label:"Central US",value:"centralus"},{label:"Central US (Stage)",value:"centralusstage"},{label:"Central US EUAP",value:"centraluseuap"},{label:"East Asia",value:"eastasia"},{label:"East Asia (Stage)",value:"eastasiastage"},{label:"East US",value:"eastus"},{label:"East US (Stage)",value:"eastusstage"},{label:"East US 2",value:"eastus2"},{label:"East US 2 (Stage)",value:"eastus2stage"},{label:"East US 2 EUAP",value:"eastus2euap"},{label:"Europe",value:"europe"},{label:"France",value:"france"},{label:"France Central",value:"francecentral"},{label:"France South",value:"francesouth"},{label:"Germany",value:"germany"},{label:"Germany North",value:"germanynorth"},{label:"Germany West Central",value:"germanywestcentral"},{label:"Global",value:"global"},{label:"India",value:"india"},{label:"Japan",value:"japan"},{label:"Japan East",value:"japaneast"},{label:"Japan West",value:"japanwest"},{label:"Jio India Central",value:"jioindiacentral"},{label:"Jio India West",value:"jioindiawest"},{label:"Korea",value:"korea"},{label:"Korea Central",value:"koreacentral"},{label:"Korea South",value:"koreasouth"},{label:"North Central US",value:"northcentralus"},{label:"North Central US (Stage)",value:"northcentralusstage"},{label:"North Europe",value:"northeurope"},{label:"Norway",value:"norway"},{label:"Norway East",value:"norwayeast"},{label:"Norway West",value:"norwaywest"},{label:"South Africa",value:"southafrica"},{label:"South Africa North",value:"southafricanorth"},{label:"South Africa West",value:"southafricawest"},{label:"South Central US",value:"southcentralus"},{label:"South Central US (Stage)",value:"southcentralusstage"},{label:"South India",value:"southindia"},{label:"Southeast Asia",value:"southeastasia"},{label:"Southeast Asia (Stage)",value:"southeastasiastage"},{label:"Sweden Central",value:"swedencentral"},{label:"Switzerland",value:"switzerland"},{label:"Switzerland North",value:"switzerlandnorth"},{label:"Switzerland West",value:"switzerlandwest"},{label:"UAE Central",value:"uaecentral"},{label:"UAE North",value:"uaenorth"},{label:"UK South",value:"uksouth"},{label:"UK West",value:"ukwest"},{label:"United Arab Emirates",value:"uae"},{label:"United Kingdom",value:"uk"},{label:"United States",value:"unitedstates"},{label:"United States EUAP",value:"unitedstateseuap"},{label:"West Central US",value:"westcentralus"},{label:"West Europe",value:"westeurope"},{label:"West India",value:"westindia"},{label:"West US",value:"westus"},{label:"West US (Stage)",value:"westusstage"},{label:"West US 2",value:"westus2"},{label:"West US 2 (Stage)",value:"westus2stage"},{label:"West US 3",value:"westus3"}],P=l(62559),R=function(e){var a=e.type,l=e.onChange,s=e.inputProps,r=function(e){return"s3"===e?W:"gcs"===e?O:"azure"===e?k:[]}(a),o=i.useState(""),u=(0,t.Z)(o,2),c=u[0],d=u[1];return(0,P.jsx)(I.Z,{sx:{"& .MuiOutlinedInput-root":{padding:0,paddingLeft:"10px",fontSize:13,fontWeight:600},"& .MuiAutocomplete-inputRoot":{"& .MuiOutlinedInput-notchedOutline":{borderColor:"#e5e5e5",borderWidth:1},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1}}},freeSolo:!0,selectOnFocus:!0,handleHomeEndKeys:!0,onChange:function(e,a){var t,n=a;n="string"===typeof a?{label:a}:a&&a.inputValue?{label:a.inputValue}:a,d(n),l(null===(t=n)||void 0===t?void 0:t.value)},value:c,onInputChange:function(e){var a=(e||{}).target,t=(a=void 0===a?{}:a).value;l(void 0===t?"":t)},getOptionLabel:function(e){return"string"===typeof e?e:e.inputValue?e.inputValue:e.value},options:r,filterOptions:function(e,a){var l=a.inputValue.toLowerCase();return e.filter((function(e){return"".concat(e.label.toLowerCase()).concat(e.value.toLowerCase()).includes(l)}))},renderOption:function(e,a){return(0,P.jsx)("li",(0,n.Z)((0,n.Z)({},e),{},{children:(0,P.jsxs)(v.Z,{sx:{display:"flex",flexFlow:"column",alignItems:"baseline",padding:"4px",borderBottom:"1px solid #eaeaea",cursor:"pointer",width:"100%","& .label":{fontSize:"13px",fontWeight:500},"& .value":{fontSize:"11px",fontWeight:400}},children:[(0,P.jsx)("span",{className:"label",children:a.value}),(0,P.jsx)("span",{className:"value",children:a.label})]})}))},renderInput:function(e){return(0,P.jsx)(U.Z,(0,n.Z)((0,n.Z)((0,n.Z)({},e),s),{},{fullWidth:!0}))}})},L=(0,N.Z)((function(e){return(0,c.Z)((0,n.Z)({},h.gM))})),F=(0,d.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},h.YI),h.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative",minWidth:160},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}},inputLabel:(0,n.Z)((0,n.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var a=e.label,l=e.onChange,t=e.id,s=e.name,r=e.type,o=e.tooltip,c=void 0===o?"":o,d=e.index,v=void 0===d?0:d,p=e.error,b=void 0===p?"":p,h=e.required,m=void 0!==h&&h,x=e.overlayId,f=e.overlayIcon,g=void 0===f?null:f,S=e.overlayObject,Z=void 0===S?null:S,j=e.extraInputProps,C=void 0===j?{}:j,N=e.overlayAction,I=e.noLabelMinWidth,U=void 0!==I&&I,W=e.classes,O=e.className,k=void 0===O?"":O,F=L(),M=(0,n.Z)((0,n.Z)({"data-index":v},C),{},{name:s,id:t,classes:F});return(0,P.jsx)(i.Fragment,{children:(0,P.jsxs)(u.ZP,{container:!0,className:(0,T.Z)(""!==k?k:"",""!==b?W.errorInField:W.inputBoxContainer),children:[""!==a&&(0,P.jsxs)(A.Z,{htmlFor:t,className:U?W.noMinWidthLabel:W.inputLabel,children:[(0,P.jsxs)("span",{children:[a,m?"*":""]}),""!==c&&(0,P.jsx)("div",{className:W.tooltipContainer,children:(0,P.jsx)(E.Z,{title:c,placement:"top-start",children:(0,P.jsx)("div",{className:W.tooltip,children:(0,P.jsx)(w.Z,{})})})})]}),(0,P.jsxs)("div",{className:W.textBoxContainer,children:[(0,P.jsx)(R,{type:r,inputProps:M,onChange:l}),g&&(0,P.jsx)("div",{className:"".concat(W.overlayAction," ").concat(""!==a?"withLabel":""),children:(0,P.jsx)(y.Z,{onClick:N?function(){N()}:function(){return null},id:x,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:g})}),Z&&(0,P.jsx)("div",{className:"".concat(W.overlayAction," ").concat(""!==a?"withLabel":""),children:Z})]})]})})})),M={setErrorSnackMessage:b.Ih},z=(0,s.$j)(null,M),B=(0,d.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},h.oO),h.Je),h.DF),{},{lambdaNotifTitle:{color:"#07193E",fontSize:16,fontFamily:"Lato,sans-serif",paddingLeft:18},fileInputFieldCss:{margin:"0"},fileTextBoxContainer:{maxWidth:" 100%",flex:1},fileReselectCss:{maxWidth:" 100%",flex:1}},h.bV))}))(z((function(e){var a=e.classes,l=e.setErrorSnackMessage,s=e.match,r=e.history,c=(0,i.useState)(!1),d=(0,t.Z)(c,2),b=d[0],h=d[1],A=(0,i.useState)(""),E=(0,t.Z)(A,2),y=E[0],N=E[1],w=(0,i.useState)(""),T=(0,t.Z)(w,2),I=T[0],U=T[1],W=(0,i.useState)(""),O=(0,t.Z)(W,2),k=O[0],R=O[1],L=(0,i.useState)(""),M=(0,t.Z)(L,2),z=M[0],B=M[1],H=(0,i.useState)(""),K=(0,t.Z)(H,2),V=K[0],q=K[1],G=(0,i.useState)(""),D=(0,t.Z)(G,2),J=D[0],Y=D[1],X=(0,i.useState)(""),$=(0,t.Z)(X,2),_=$[0],Q=$[1],ee=(0,i.useState)(""),ae=(0,t.Z)(ee,2),le=ae[0],te=ae[1],ne=(0,i.useState)(""),ie=(0,t.Z)(ne,2),se=ie[0],re=ie[1],oe=(0,i.useState)(""),ue=(0,t.Z)(oe,2),ce=ue[0],de=ue[1],ve=(0,i.useState)(""),pe=(0,t.Z)(ve,2),be=pe[0],he=pe[1],me=(0,i.useState)(""),xe=(0,t.Z)(me,2),fe=xe[0],ge=xe[1],Se=(0,i.useState)(""),Ze=(0,t.Z)(Se,2),je=Ze[0],Ce=Ze[1],Ae=o()(s,"params.service","s3"),Ee=(0,i.useState)(!0),ye=(0,t.Z)(Ee,2),Ne=ye[0],we=ye[1],Te=(0,i.useState)(""),Ie=(0,t.Z)(Te,2),Ue=Ie[0],We=Ie[1],Oe=(0,i.useCallback)((function(){return/^[A-Z0-9-_]+$/.test(y)?(We(""),!0):(We("Please verify that string is uppercase only and contains valid characters (numbers, dashes & underscores)."),!1)}),[y]);(0,i.useEffect)((function(){if(b){var e={},a={name:y,endpoint:I,bucket:k,prefix:z,region:V},t=Ae;switch("minio"===Ae&&(t="s3"),Ae){case"minio":case"s3":e={s3:(0,n.Z)((0,n.Z)({},a),{},{accesskey:_,secretkey:le,storageclass:J})};break;case"gcs":e={gcs:(0,n.Z)((0,n.Z)({},a),{},{creds:ce})};break;case"azure":e={azure:(0,n.Z)((0,n.Z)({},a),{},{accountname:be,accountkey:fe})}}var i=(0,n.Z)({type:t},e);m.Z.invoke("POST","/api/v1/admin/tiers",i).then((function(){h(!1),r.push(C.gA.TIERS)})).catch((function(e){h(!1),l(e)}))}}),[_,fe,be,k,ce,I,r,y,z,V,b,le,l,J,Ae]),(0,i.useEffect)((function(){var e=!0;""===Ae&&(e=!1),""!==y&&Oe()||(e=!1),""===I&&(e=!1),""===k&&(e=!1),""===z&&(e=!1),""===V&&"minio"!==Ae&&(e=!1),"s3"!==Ae&&"minio"!==Ae||(""===_&&(e=!1),""===le&&(e=!1)),"gcs"===Ae&&""===ce&&(e=!1),"azure"===Ae&&(""===be&&(e=!1),""===fe&&(e=!1)),we(e)}),[_,fe,be,k,ce,I,Ne,y,z,V,le,J,Ae,Oe]),(0,i.useEffect)((function(){switch(Ae){case"gcs":U("https://storage.googleapis.com/"),Ce("Google Cloud");break;case"s3":U("https://s3.amazonaws.com"),Ce("Amazon S3");break;case"azure":U("http://blob.core.windows.net"),Ce("Azure");break;case"minio":U(""),Ce("MinIO")}}),[Ae]);var ke=S.Bh.find((function(e){return e.serviceName===Ae}));return(0,P.jsxs)(i.Fragment,{children:[(0,P.jsx)(g.Z,{label:"Tiers"}),(0,P.jsx)(Z.Z,{to:C.gA.TIERS_ADD,label:"Back To Tier Type Selection"}),(0,P.jsx)(j.Z,{children:(0,P.jsx)(u.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea",padding:"25px"},children:(0,P.jsxs)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),h(!0)},children:[""!==Ae&&ke?(0,P.jsxs)(u.ZP,{item:!0,xs:12,sx:{display:"flex",alignItems:"center",justifyContent:"start",marginBottom:"20px"},children:[ke.logo?(0,P.jsx)(v.Z,{sx:{"& .min-icon":{height:"60px",width:"60px"}},children:ke.logo}):null,(0,P.jsx)("div",{className:a.lambdaNotifTitle,children:(0,P.jsxs)("b",{children:[je||""," - Add Tier Configuration"]})})]},"icon-".concat(ke.targetTitle)):null,(0,P.jsx)(u.ZP,{item:!0,xs:12,sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gridRowGap:25,gridColumnGap:50},children:""!==Ae&&(0,P.jsxs)(i.Fragment,{children:[(0,P.jsx)(x.Z,{id:"name",name:"name",label:"Name",placeholder:"Enter Name (Eg. REMOTE-TIER)",value:y,onChange:function(e){N(e.target.value.toUpperCase())},error:Ue,required:!0}),(0,P.jsx)(x.Z,{id:"endpoint",name:"endpoint",label:"Endpoint",placeholder:"Enter Endpoint",value:I,onChange:function(e){U(e.target.value)},required:!0}),(Ae===S.b2||Ae===S.Pp)&&(0,P.jsxs)(i.Fragment,{children:[(0,P.jsx)(x.Z,{id:"accessKey",name:"accessKey",label:"Access Key",placeholder:"Enter Access Key",value:_,onChange:function(e){Q(e.target.value)},required:!0}),(0,P.jsx)(x.Z,{id:"secretKey",name:"secretKey",label:"Secret Key",placeholder:"Enter Secret Key",value:le,onChange:function(e){te(e.target.value)},required:!0})]}),Ae===S.f0&&(0,P.jsx)(f.Z,{accept:".json",classes:{fileInputField:a.fileInputFieldCss,textBoxContainer:a.fileTextBoxContainer,fileReselect:a.fileReselectCss},id:"creds",label:"Credentials",name:"creds",onChange:function(e,a){de(e),re(a)},value:se,required:!0}),Ae===S.vB&&(0,P.jsxs)(i.Fragment,{children:[(0,P.jsx)(x.Z,{id:"accountName",name:"accountName",label:"Account Name",placeholder:"Enter Account Name",value:be,onChange:function(e){he(e.target.value)},required:!0}),(0,P.jsx)(x.Z,{id:"accountKey",name:"accountKey",label:"Account Key",placeholder:"Enter Account Key",value:fe,onChange:function(e){ge(e.target.value)},required:!0})]}),(0,P.jsx)(x.Z,{id:"bucket",name:"bucket",label:"Bucket",placeholder:"Enter Bucket",value:k,onChange:function(e){R(e.target.value)},required:!0}),(0,P.jsx)(x.Z,{id:"prefix",name:"prefix",label:"Prefix",placeholder:"Enter Prefix",value:z,onChange:function(e){B(e.target.value)},required:!0}),(0,P.jsx)(F,{onChange:function(e){q(e)},required:"minio"!==Ae,label:"Region",id:"region",name:"region",type:Ae}),Ae===S.b2||Ae===S.Pp&&(0,P.jsx)(x.Z,{id:"storageClass",name:"storageClass",label:"Storage Class",placeholder:"Enter Storage Class",value:J,onChange:function(e){Y(e.target.value)}})]})}),(0,P.jsx)(u.ZP,{item:!0,xs:12,className:a.settingsButtonContainer,children:(0,P.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:b||!Ne,children:"Save Tier Configuration"})})]})})})]})})))},51444:function(e,a,l){l.d(a,{Pp:function(){return i},f0:function(){return s},b2:function(){return r},vB:function(){return o},Bh:function(){return u}});var t=l(86362),n=l(62559),i="minio",s="gcs",r="s3",o="azure",u=[{serviceName:i,targetTitle:"MinIO",logo:(0,n.jsx)(t.$E,{}),logoXs:(0,n.jsx)(t.YE,{})},{serviceName:s,targetTitle:"Google Cloud Storage",logo:(0,n.jsx)(t.UQ,{}),logoXs:(0,n.jsx)(t.Vw,{})},{serviceName:r,targetTitle:"AWS S3",logo:(0,n.jsx)(t.fe,{}),logoXs:(0,n.jsx)(t.Xj,{})},{serviceName:o,targetTitle:"Azure",logo:(0,n.jsx)(t.jz,{}),logoXs:(0,n.jsx)(t.nA,{})}]},82981:function(e,a,l){var t=l(50390),n=l(35477),i=l(86509),s=l(4285),r=l(62559);a.Z=(0,s.Z)((function(e){var a;return(0,i.Z)({errorBlock:{color:(null===(a=e.palette)||void 0===a?void 0:a.error.main)||"#C83B51"}})}))((function(e){var a=e.classes,l=e.errorMessage,i=e.withBreak,s=void 0===i||i;return(0,r.jsxs)(t.Fragment,{children:[s&&(0,r.jsx)("br",{}),(0,r.jsx)(n.Z,{component:"p",variant:"body1",className:a.errorBlock,children:l})]})}))},46529:function(e,a,l){var t=l(64119);a.Z=void 0;var n=t(l(66830)),i=l(62559),s=(0,n.default)((0,i.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");a.Z=s},94258:function(e,a,l){var t=l(64119);a.Z=void 0;var n=t(l(66830)),i=l(62559),s=(0,n.default)((0,i.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");a.Z=s}}]);
+//# sourceMappingURL=1796.26462172.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1796.26462172.chunk.js.map b/portal-ui/build/static/js/1796.26462172.chunk.js.map
new file mode 100644
index 000000000..0961ce345
--- /dev/null
+++ b/portal-ui/build/static/js/1796.26462172.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1796.26462172.chunk.js","mappings":"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MAAO,QACP6B,MAAO,SAET,CACE7B,MAAO,aACP6B,MAAO,aAET,CACE7B,MAAO,aACP6B,MAAO,aAET,CACE7B,MAAO,oBACP6B,MAAO,mBAET,CACE7B,MAAO,iBACP6B,MAAO,gBAET,CACE7B,MAAO,QACP6B,MAAO,SAET,CACE7B,MAAO,gBACP6B,MAAO,gBAET,CACE7B,MAAO,cACP6B,MAAO,cAET,CACE7B,MAAO,mBACP6B,MAAO,kBAET,CACE7B,MAAO,2BACP6B,MAAO,uBAET,CACE7B,MAAO,eACP6B,MAAO,eAET,CACE7B,MAAO,SACP6B,MAAO,UAET,CACE7B,MAAO,cACP6B,MAAO,cAET,CACE7B,MAAO,cACP6B,MAAO,cAET,CACE7B,MAAO,eACP6B,MAAO,eAET,CACE7B,MAAO,qBACP6B,MAAO,oBAET,CACE7B,MAAO,oBACP6B,MAAO,mBAET,CACE7B,MAAO,mBACP6B,MAAO,kBAET,CACE7B,MAAO,2BACP6B,MAAO,uBAET,CACE7B,MAAO,cACP6B,MAAO,cAET,CACE7B,MAAO,iBACP6B,MAAO,iBAET,CACE7B,MAAO,yBACP6B,MAAO,sBAET,CACE7B,MAAO,iBACP6B,MAAO,iBAET,CACE7B,MAAO,cACP6B,MAAO,eAET,CACE7B,MAAO,oBACP6B,MAAO,oBAET,CACE7B,MAAO,mBACP6B,MAAO,mBAET,CACE7B,MAAO,cACP6B,MAAO,cAET,CACE7B,MAAO,YACP6B,MAAO,YAET,CACE7B,MAAO,WACP6B,MAAO,WAET,CACE7B,MAAO,UACP6B,MAAO,UAET,CACE7B,MAAO,uBACP6B,MAAO,OAET,CACE7B,MAAO,iBACP6B,MAAO,MAET,CACE7B,MAAO,gBACP6B,MAAO,gBAET,CACE7B,MAAO,qBACP6B,MAAO,oBAET,CACE7B,MAAO,kBACP6B,MAAO,iBAET,CACE7B,MAAO,cACP6B,MAAO,cAET,CACE7B,MAAO,aACP6B,MAAO,aAET,CACE7B,MAAO,UACP6B,MAAO,UAET,CACE7B,MAAO,kBACP6B,MAAO,eAET,CACE7B,MAAO,YACP6B,MAAO,WAET,CACE7B,MAA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","sources":["common/BackLink.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Configurations/TiersConfiguration/s3-regions.tsx","screens/Console/Configurations/TiersConfiguration/gcs-regions.ts","screens/Console/Configurations/TiersConfiguration/azure-regions.ts","screens/Console/Configurations/TiersConfiguration/RegionSelect.tsx","screens/Console/Configurations/TiersConfiguration/RegionSelectWrapper.tsx","screens/Console/Configurations/TiersConfiguration/AddTierConfiguration.tsx","screens/Console/Configurations/TiersConfiguration/utils.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"flex\",\n alignItems: \"center\",\n textDecoration: \"none\",\n maxWidth: \"300px\",\n padding: \"2rem 2rem 0rem 2rem\",\n color: theme.palette.primary.light,\n fontSize: \".8rem\",\n \"&:hover\": {\n textDecoration: \"underline\",\n },\n },\n icon: {\n marginRight: \".3rem\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"& svg.min-icon\": {\n width: 12,\n },\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
\n \n
\n
{label}
\n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport {\n Grid,\n IconButton,\n InputLabel,\n TextField,\n TextFieldProps,\n Tooltip,\n} from \"@mui/material\";\nimport { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n onKeyPress?: (e: any) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n multiline?: boolean;\n type?: string;\n tooltip?: string;\n autoComplete?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n min?: string;\n max?: string;\n overlayId?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nfunction InputField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n }\n {...props}\n />\n );\n}\n\nconst InputBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n type = \"text\",\n autoComplete = \"off\",\n disabled = false,\n multiline = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n min,\n max,\n overlayId,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n pattern = \"\",\n autoFocus = false,\n classes,\n className = \"\",\n onKeyPress,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n\n if (type === \"number\" && min) {\n inputProps[\"min\"] = min;\n }\n\n if (type === \"number\" && max) {\n inputProps[\"max\"] = max;\n }\n\n if (pattern !== \"\") {\n inputProps[\"pattern\"] = pattern;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
\n \n \n {children}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(PageLayout);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 34,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
\n {operatorMode ? : }\n
\n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { RegionEntry } from \"./types\";\n\nconst s3Regions: RegionEntry[] = [\n { label: \"US East (Ohio)\", value: \"us-east-2\" },\n { label: \"US East (N. Virginia)\", value: \"us-east-1\" },\n { label: \"US West (N. California)\", value: \"us-west-1\" },\n { label: \"US West (Oregon)\", value: \"us-west-2\" },\n { label: \"Africa (Cape Town)\", value: \"af-south-1\" },\n { label: \"Asia Pacific (Hong Kong)***\", value: \"ap-east-1\" },\n { label: \"Asia Pacific (Jakarta)\", value: \"ap-southeast-3\" },\n { label: \"Asia Pacific (Mumbai)\", value: \"ap-south-1\" },\n { label: \"Asia Pacific (Osaka)\", value: \"ap-northeast-3\" },\n { label: \"Asia Pacific (Seoul)\", value: \"ap-northeast-2\" },\n { label: \"Asia Pacific (Singapore)\", value: \"ap-southeast-1\" },\n { label: \"Asia Pacific (Sydney)\", value: \"ap-southeast-2\" },\n { label: \"Asia Pacific (Tokyo)\", value: \"ap-northeast-1\" },\n { label: \"Canada (Central)\", value: \"ca-central-1\" },\n { label: \"China (Beijing)\", value: \"cn-north-1\" },\n { label: \"China (Ningxia)\", value: \"cn-northwest-1\" },\n { label: \"Europe (Frankfurt)\", value: \"eu-central-1\" },\n { label: \"Europe (Ireland)\", value: \"eu-west-1\" },\n { label: \"Europe (London)\", value: \"eu-west-2\" },\n { label: \"Europe (Milan)\", value: \"eu-south-1\" },\n { label: \"Europe (Paris)\", value: \"eu-west-3\" },\n { label: \"Europe (Stockholm)\", value: \"eu-north-1\" },\n { label: \"South America (São Paulo)\", value: \"sa-east-1\" },\n { label: \"Middle East (Bahrain)\", value: \"me-south-1\" },\n { label: \"AWS GovCloud (US-East)\", value: \"us-gov-east-1\" },\n { label: \"AWS GovCloud (US-West)\", value: \"us-gov-west-1\" },\n];\n\nexport default s3Regions;\n","import { RegionEntry } from \"./types\";\n\nconst gcsRegions: RegionEntry[] = [\n { label: \"Montréal\", value: \"NORTHAMERICA-NORTHEAST1\" },\n { label: \"Toronto\", value: \"NORTHAMERICA-NORTHEAST2\" },\n { label: \"Iowa\", value: \"US-CENTRAL1\" },\n { label: \"South Carolina\", value: \"US-EAST1\" },\n { label: \"Northern Virginia\", value: \"US-EAST4\" },\n { label: \"Oregon\", value: \"US-WEST1\" },\n { label: \"Los Angeles\", value: \"US-WEST2\" },\n { label: \"Salt Lake City\", value: \"US-WEST3\" },\n { label: \"Las Vegas\", value: \"US-WEST4\" },\n { label: \"São Paulo\", value: \"SOUTHAMERICA-EAST1\" },\n { label: \"Santiago\", value: \"SOUTHAMERICA-WEST1\" },\n { label: \"Warsaw\", value: \"EUROPE-CENTRAL2\" },\n { label: \"Finland\", value: \"EUROPE-NORTH1\" },\n { label: \"Belgium\", value: \"EUROPE-WEST1\" },\n { label: \"London\", value: \"EUROPE-WEST2\" },\n { label: \"Frankfurt\", value: \"EUROPE-WEST3\" },\n { label: \"Netherlands\", value: \"EUROPE-WEST4\" },\n { label: \"Zürich\", value: \"EUROPE-WEST6\" },\n { label: \"Taiwan\", value: \"ASIA-EAST1\" },\n { label: \"Hong Kong\", value: \"ASIA-EAST2\" },\n { label: \"Tokyo\", value: \"ASIA-NORTHEAST1\" },\n { label: \"Osaka\", value: \"ASIA-NORTHEAST2\" },\n { label: \"Seoul\", value: \"ASIA-NORTHEAST3\" },\n { label: \"Mumbai\", value: \"ASIA-SOUTH1\" },\n { label: \"Delhi\", value: \"ASIA-SOUTH2\" },\n { label: \"Singapore\", value: \"ASIA-SOUTHEAST1\" },\n { label: \"Jakarta\", value: \"ASIA-SOUTHEAST2\" },\n { label: \"Sydney\", value: \"AUSTRALIA-SOUTHEAST1\" },\n { label: \"Melbourne\", value: \"AUSTRALIA-SOUTHEAST2\" },\n];\n\nexport default gcsRegions;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { RegionEntry } from \"./types\";\n\nconst azureRegions: RegionEntry[] = [\n {\n label: \"Asia\",\n value: \"asia\",\n },\n {\n label: \"Asia Pacific\",\n value: \"asiapacific\",\n },\n {\n label: \"Australia\",\n value: \"australia\",\n },\n {\n label: \"Australia Central\",\n value: \"australiacentral\",\n },\n {\n label: \"Australia Central 2\",\n value: \"australiacentral2\",\n },\n {\n label: \"Australia East\",\n value: \"australiaeast\",\n },\n {\n label: \"Australia Southeast\",\n value: \"australiasoutheast\",\n },\n {\n label: \"Brazil\",\n value: \"brazil\",\n },\n {\n label: \"Brazil South\",\n value: \"brazilsouth\",\n },\n {\n label: \"Brazil Southeast\",\n value: \"brazilsoutheast\",\n },\n {\n label: \"Canada\",\n value: \"canada\",\n },\n {\n label: \"Canada Central\",\n value: \"canadacentral\",\n },\n {\n label: \"Canada East\",\n value: \"canadaeast\",\n },\n {\n label: \"Central India\",\n value: \"centralindia\",\n },\n {\n label: \"Central US\",\n value: \"centralus\",\n },\n {\n label: \"Central US (Stage)\",\n value: \"centralusstage\",\n },\n {\n label: \"Central US EUAP\",\n value: \"centraluseuap\",\n },\n {\n label: \"East Asia\",\n value: \"eastasia\",\n },\n {\n label: \"East Asia (Stage)\",\n value: \"eastasiastage\",\n },\n {\n label: \"East US\",\n value: \"eastus\",\n },\n {\n label: \"East US (Stage)\",\n value: \"eastusstage\",\n },\n {\n label: \"East US 2\",\n value: \"eastus2\",\n },\n {\n label: \"East US 2 (Stage)\",\n value: \"eastus2stage\",\n },\n {\n label: \"East US 2 EUAP\",\n value: \"eastus2euap\",\n },\n {\n label: \"Europe\",\n value: \"europe\",\n },\n {\n label: \"France\",\n value: \"france\",\n },\n {\n label: \"France Central\",\n value: \"francecentral\",\n },\n {\n label: \"France South\",\n value: \"francesouth\",\n },\n {\n label: \"Germany\",\n value: \"germany\",\n },\n {\n label: \"Germany North\",\n value: \"germanynorth\",\n },\n {\n label: \"Germany West Central\",\n value: \"germanywestcentral\",\n },\n {\n label: \"Global\",\n value: \"global\",\n },\n {\n label: \"India\",\n value: \"india\",\n },\n {\n label: \"Japan\",\n value: \"japan\",\n },\n {\n label: \"Japan East\",\n value: \"japaneast\",\n },\n {\n label: \"Japan West\",\n value: \"japanwest\",\n },\n {\n label: \"Jio India Central\",\n value: \"jioindiacentral\",\n },\n {\n label: \"Jio India West\",\n value: \"jioindiawest\",\n },\n {\n label: \"Korea\",\n value: \"korea\",\n },\n {\n label: \"Korea Central\",\n value: \"koreacentral\",\n },\n {\n label: \"Korea South\",\n value: \"koreasouth\",\n },\n {\n label: \"North Central US\",\n value: \"northcentralus\",\n },\n {\n label: \"North Central US (Stage)\",\n value: \"northcentralusstage\",\n },\n {\n label: \"North Europe\",\n value: \"northeurope\",\n },\n {\n label: \"Norway\",\n value: \"norway\",\n },\n {\n label: \"Norway East\",\n value: \"norwayeast\",\n },\n {\n label: \"Norway West\",\n value: \"norwaywest\",\n },\n {\n label: \"South Africa\",\n value: \"southafrica\",\n },\n {\n label: \"South Africa North\",\n value: \"southafricanorth\",\n },\n {\n label: \"South Africa West\",\n value: \"southafricawest\",\n },\n {\n label: \"South Central US\",\n value: \"southcentralus\",\n },\n {\n label: \"South Central US (Stage)\",\n value: \"southcentralusstage\",\n },\n {\n label: \"South India\",\n value: \"southindia\",\n },\n {\n label: \"Southeast Asia\",\n value: \"southeastasia\",\n },\n {\n label: \"Southeast Asia (Stage)\",\n value: \"southeastasiastage\",\n },\n {\n label: \"Sweden Central\",\n value: \"swedencentral\",\n },\n {\n label: \"Switzerland\",\n value: \"switzerland\",\n },\n {\n label: \"Switzerland North\",\n value: \"switzerlandnorth\",\n },\n {\n label: \"Switzerland West\",\n value: \"switzerlandwest\",\n },\n {\n label: \"UAE Central\",\n value: \"uaecentral\",\n },\n {\n label: \"UAE North\",\n value: \"uaenorth\",\n },\n {\n label: \"UK South\",\n value: \"uksouth\",\n },\n {\n label: \"UK West\",\n value: \"ukwest\",\n },\n {\n label: \"United Arab Emirates\",\n value: \"uae\",\n },\n {\n label: \"United Kingdom\",\n value: \"uk\",\n },\n {\n label: \"United States\",\n value: \"unitedstates\",\n },\n {\n label: \"United States EUAP\",\n value: \"unitedstateseuap\",\n },\n {\n label: \"West Central US\",\n value: \"westcentralus\",\n },\n {\n label: \"West Europe\",\n value: \"westeurope\",\n },\n {\n label: \"West India\",\n value: \"westindia\",\n },\n {\n label: \"West US\",\n value: \"westus\",\n },\n {\n label: \"West US (Stage)\",\n value: \"westusstage\",\n },\n {\n label: \"West US 2\",\n value: \"westus2\",\n },\n {\n label: \"West US 2 (Stage)\",\n value: \"westus2stage\",\n },\n {\n label: \"West US 3\",\n value: \"westus3\",\n },\n];\nexport default azureRegions;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\n\nimport { Autocomplete, Box, TextField } from \"@mui/material\";\n\nimport s3Regions from \"./s3-regions\";\nimport gcsRegions from \"./gcs-regions\";\nimport azRegions from \"./azure-regions\";\n\nconst getRegions = (type: string): any => {\n if (type === \"s3\") {\n return s3Regions;\n }\n if (type === \"gcs\") {\n return gcsRegions;\n }\n if (type === \"azure\") {\n return azRegions;\n }\n\n return [];\n};\n\nconst RegionSelect = ({\n type,\n onChange,\n inputProps,\n}: {\n type: \"minio\" | \"s3\" | \"gcs\" | \"azure\" | \"unsupported\";\n onChange: (obj: any) => void;\n inputProps?: any;\n}) => {\n const regionList = getRegions(type);\n const [value, setValue] = React.useState(\"\");\n\n return (\n {\n let newVal: any = newValue;\n\n if (typeof newValue === \"string\") {\n newVal = {\n label: newValue,\n };\n } else if (newValue && newValue.inputValue) {\n // Create a new value from the user input\n newVal = {\n label: newValue.inputValue,\n };\n } else {\n newVal = newValue;\n }\n setValue(newVal);\n onChange(newVal?.value);\n }}\n value={value}\n onInputChange={(e: any) => {\n const { target: { value = \"\" } = {} } = e || {};\n onChange(value);\n }}\n getOptionLabel={(option) => {\n // Value selected with enter, right from the input\n if (typeof option === \"string\") {\n return option;\n }\n // Add \"xxx\" option created dynamically\n if (option.inputValue) {\n return option.inputValue;\n }\n // Regular option\n return option.value;\n }}\n options={regionList}\n filterOptions={(opts: any[], state: any) => {\n const filterText = state.inputValue.toLowerCase();\n\n return opts.filter((opt) =>\n `${opt.label.toLowerCase()}${opt.value.toLowerCase()}`.includes(\n filterText\n )\n );\n }}\n renderOption={(props: any, opt: any) => {\n return (\n
\n \n {opt.value}\n {opt.label}\n \n
\n );\n }}\n renderInput={(params) => (\n \n )}\n />\n );\n};\n\nexport default RegionSelect;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Grid, IconButton, InputLabel, Tooltip } from \"@mui/material\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport HelpIcon from \"../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\nimport RegionSelect from \"./RegionSelect\";\n\ninterface RegionSelectBoxProps {\n label: string;\n classes?: any;\n onChange: (value: string) => void;\n onKeyPress?: (e: any) => void;\n value?: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n type: \"minio\" | \"s3\" | \"gcs\" | \"azure\";\n tooltip?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n overlayId?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n minWidth: 160,\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nconst RegionSelectWrapper = ({\n label,\n onChange,\n id,\n name,\n type,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n overlayId,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n classes,\n className = \"\",\n}: RegionSelectBoxProps) => {\n const inputClasses = inputStyles();\n\n let inputProps: any = {\n \"data-index\": index,\n ...extraInputProps,\n name: name,\n id: id,\n classes: inputClasses,\n };\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n );\n };\n\n return (\n \n \n {metricValue !== \"\" && (\n }\n subheader={\n \n \n \n }\n classes={{\n root: subStyles.root,\n title: subStyles.title,\n content: subStyles.content,\n }}\n />\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(CommonCard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport CommonCard from \"../CommonCard\";\n\ninterface IMergedWidgets {\n title: string;\n leftComponent: any;\n rightComponent: any;\n}\n\nconst MergedWidgets = ({\n title,\n leftComponent,\n rightComponent,\n}: IMergedWidgets) => {\n return (\n \n \n \n );\n};\n\nexport default MergedWidgets;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst BarChartTooltip = ({\n active,\n payload,\n label,\n barChartConfiguration,\n classes,\n}: any) => {\n if (active) {\n return (\n
\n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(BarChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n Bar,\n BarChart,\n Cell,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { CircularProgress, useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ZoomOutMapIcon from \"@mui/icons-material/ZoomOutMap\";\nimport { IBarChartConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport BarChartTooltip from \"./tooltips/BarChartTooltip\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport { openZoomPage } from \"../../actions\";\nimport { useTheme } from \"@mui/styles\";\n\ninterface IBarChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n displayErrorMessage: any;\n apiPrefix: string;\n zoomActivated?: boolean;\n openZoomPage: typeof openZoomPage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n });\n\nconst CustomizedAxisTick = ({ y, payload }: any) => {\n return (\n \n {payload.value}\n \n );\n};\n\nconst BarChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n displayErrorMessage,\n apiPrefix,\n zoomActivated = false,\n openZoomPage,\n}: IBarChartWidget) => {\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, displayErrorMessage, apiPrefix]);\n\n const barChartConfiguration = result\n ? (result.widgetConfiguration as IBarChartConfiguration[])\n : [];\n\n let greatestIndex = 0;\n let currentValue = 0;\n\n if (barChartConfiguration.length === 1) {\n const dataGraph = barChartConfiguration[0];\n data.forEach((item: any, index: number) => {\n if (item[dataGraph.dataKey] > currentValue) {\n currentValue = item[dataGraph.dataKey];\n greatestIndex = index;\n }\n });\n }\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n
\n );\n};\n\nconst connector = connect(null, {\n displayErrorMessage: setErrorSnackMessage,\n openZoomPage: openZoomPage,\n});\n\nexport default withStyles(styles)(connector(BarChartWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { getTimeFromTimestamp } from \"../../../../../../common/utils\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst LineChartTooltip = ({\n active,\n payload,\n label,\n linearConfiguration,\n yAxisFormatter,\n classes,\n}: any) => {\n if (active) {\n return (\n
\n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(LineChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { CircularProgress, useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ZoomOutMapIcon from \"@mui/icons-material/ZoomOutMap\";\nimport { ILinearGraphConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport LineChartTooltip from \"./tooltips/LineChartTooltip\";\nimport { openZoomPage } from \"../../actions\";\nimport { useTheme } from \"@mui/styles\";\n\ninterface ILinearGraphWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n displayErrorMessage: any;\n apiPrefix: string;\n hideYAxis?: boolean;\n yAxisFormatter?: (item: string) => string;\n xAxisFormatter?: (item: string) => string;\n areaWidget?: boolean;\n zoomActivated?: boolean;\n openZoomPage: typeof openZoomPage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n containerElements: {\n display: \"flex\",\n flexDirection: \"row\",\n height: \"100%\",\n flexGrow: 1,\n },\n verticalAlignment: {\n flexDirection: \"column\",\n },\n chartCont: {\n position: \"relative\",\n height: 140,\n width: \"100%\",\n },\n legendChart: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: \"0 1 auto\",\n maxHeight: 130,\n margin: 0,\n overflowY: \"auto\",\n position: \"relative\",\n textAlign: \"center\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n color: \"#404143\",\n fontWeight: \"bold\",\n fontSize: 12,\n },\n loadingAlign: {\n margin: \"auto\",\n },\n });\n\nconst LinearGraphWidget = ({\n classes,\n title,\n displayErrorMessage,\n timeStart,\n timeEnd,\n propLoading,\n panelItem,\n apiPrefix,\n hideYAxis = false,\n areaWidget = false,\n yAxisFormatter = (item: string) => item,\n xAxisFormatter = (item: string) => item,\n zoomActivated = false,\n openZoomPage,\n}: ILinearGraphWidget) => {\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState