\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 from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n FormControl,\n InputBase,\n InputLabel,\n MenuItem,\n Select,\n SelectChangeEvent,\n Tooltip,\n} from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport { HelpIcon } from \"mds\";\n\nexport interface selectorTypes {\n label: string;\n value: string;\n}\n\ninterface SelectProps {\n options: selectorTypes[];\n value: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n onChange: (e: SelectChangeEvent) => void;\n disabled?: boolean;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n fieldContainer: {\n display: \"flex\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n height: 38,\n lineHeight: 1,\n \"label + &\": {\n marginTop: theme.spacing(3),\n },\n },\n input: {\n height: 38,\n position: \"relative\",\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n padding: \"8px 20px 10px 10px\",\n border: \"#e5e5e5 1px solid\",\n borderRadius: 4,\n display: \"flex\",\n alignItems: \"center\",\n \"&:hover\": {\n borderColor: \"#393939\",\n },\n \"&:focus\": {\n backgroundColor: \"#fff\",\n },\n },\n }),\n)(InputBase);\n\nconst SelectWrapper = ({\n classes,\n id,\n name,\n onChange,\n options,\n label,\n tooltip = \"\",\n value,\n disabled = false,\n}: SelectProps) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n \n
\n )}\n \n )}\n \n }\n disabled={disabled}\n >\n {options.map((option) => (\n \n ))}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(SelectWrapper);\n","import { Box, Grid, Link } from \"@mui/material\";\nimport { Fragment, useState } from \"react\";\nimport { CopyIcon, SettingsIcon } from \"mds\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RegistrationStatusBanner from \"./RegistrationStatusBanner\";\n\nexport const FormTitle = ({\n icon = null,\n title,\n}: {\n icon?: any;\n title: any;\n}) => {\n return (\n \n {icon}\n
\n \n \n For airgap/firewalled environments it is possible to{\" \"}\n \n configure a proxy\n {\" \"}\n to connect to SUBNET .\n \n \n {displaySubnetProxy && (\n {}}\n label=\"\"\n value={proxyConfigurationCommand}\n overlayIcon={}\n extraInputProps={{\n readOnly: true,\n }}\n overlayAction={() =>\n navigator.clipboard.writeText(proxyConfigurationCommand)\n }\n />\n )}\n \n \n \n ) => {\n setDisplaySubnetProxy(event.target.checked);\n }}\n />\n \n \n \n );\n};\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport LockOutlinedIcon from \"@mui/icons-material/LockOutlined\";\nimport {\n containerForHeader,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport React, { useState } from \"react\";\nimport { InfoIcon, UsersIcon } from \"mds\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useAppDispatch } from \"../../../store\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...containerForHeader,\n ...spacingUtils,\n });\n\ninterface IGetApiKeyModalProps {\n open: boolean;\n closeModal: () => void;\n onSet: (apiKey: string) => void;\n classes: any;\n}\n\nconst GetApiKeyModal = ({\n open,\n closeModal,\n classes,\n onSet,\n}: IGetApiKeyModalProps) => {\n const dispatch = useAppDispatch();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [showPassword, setShowPassword] = useState(false);\n const [mfaToken, setMfaToken] = useState(\"\");\n const [subnetOTP, setSubnetOTP] = useState(\"\");\n\n const onError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n closeModal();\n setEmail(\"\");\n setPassword(\"\");\n setShowPassword(false);\n setMfaToken(\"\");\n setSubnetOTP(\"\");\n };\n\n const onSuccess = (res: any) => {\n if (res.mfa_token) {\n setMfaToken(res.mfa_token);\n } else if (res.access_token) {\n invokeApi(\"GET\", `/api/v1/subnet/apikey?token=${res.access_token}`);\n } else {\n onSet(res.apiKey);\n closeModal();\n }\n };\n\n const [isLoading, invokeApi] = useApi(onSuccess, onError);\n\n const onConfirm = () => {\n if (mfaToken !== \"\") {\n invokeApi(\"POST\", \"/api/v1/subnet/login/mfa\", {\n username: email,\n otp: subnetOTP,\n mfa_token: mfaToken,\n });\n } else {\n invokeApi(\"POST\", \"/api/v1/subnet/login\", { username: email, password });\n }\n };\n\n const getDialogContent = () => {\n if (mfaToken === \"\") {\n return getCredentialsDialog();\n }\n return getMFADialog();\n };\n\n const getCredentialsDialog = () => {\n return (\n \n ) =>\n setEmail(event.target.value)\n }\n label=\"Email\"\n value={email}\n overlayIcon={}\n />\n ) =>\n setPassword(event.target.value)\n }\n label=\"Password\"\n type={showPassword ? \"text\" : \"password\"}\n value={password}\n overlayIcon={\n showPassword ? : \n }\n overlayAction={() => setShowPassword(!showPassword)}\n />\n \n );\n };\n\n const getMFADialog = () => {\n return (\n \n \n \n Two-Factor Authentication\n \n\n \n Please enter the 6-digit verification code that was sent to your\n email address. This code will be valid for 5 minutes.\n \n\n \n }\n id=\"subnet-otp\"\n name=\"subnet-otp\"\n onChange={(event: React.ChangeEvent) =>\n setSubnetOTP(event.target.value)\n }\n placeholder=\"\"\n label=\"\"\n value={subnetOTP}\n />\n \n \n \n \n );\n };\n\n return open ? (\n }\n isLoading={isLoading}\n cancelText={\"Cancel\"}\n onConfirm={onConfirm}\n onClose={closeModal}\n confirmButtonProps={{\n variant: \"callAction\",\n disabled: !email || !password || isLoading,\n hidden: true,\n }}\n cancelButtonProps={{\n disabled: isLoading,\n }}\n confirmationContent={getDialogContent()}\n />\n ) : null;\n};\n\nexport default withStyles(styles)(GetApiKeyModal);\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\";\nimport { Box, Link } from \"@mui/material\";\nimport {\n CallHomeFeatureIcon,\n DiagnosticsFeatureIcon,\n ExtraFeaturesIcon,\n HelpIconFilled,\n PerformanceFeatureIcon,\n} from \"mds\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string | React.ReactNode;\n}) => {\n return (\n \n {icon}{\" \"}\n
\n \n \n Registering this cluster with the MinIO Subscription Network (SUBNET)\n provides the following benefits in addition to the commercial license\n and SLA backed support.\n \n\n \n }\n description={`Call Home Monitoring`}\n />\n }\n description={`Health Diagnostics`}\n />\n }\n description={`Performance Analysis`}\n />\n }\n description={\n \n More Features\n \n }\n />\n \n \n );\n};\n\nexport default RegisterHelpBox;\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, useCallback, useEffect, useState } from \"react\";\nimport { Box } from \"@mui/material\";\nimport { Button, OnlineRegistrationIcon } from \"mds\";\nimport { FormTitle } from \"./utils\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport GetApiKeyModal from \"./GetApiKeyModal\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { SubnetLoginRequest, SubnetLoginResponse } from \"../License/types\";\nimport api from \"../../../common/api\";\nimport { useAppDispatch } from \"../../../store\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { spacingUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { useNavigate } from \"react-router-dom\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\ninterface IApiKeyRegister {\n classes: any;\n registerEndpoint: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...spacingUtils,\n });\n\nconst ApiKeyRegister = ({ classes, registerEndpoint }: IApiKeyRegister) => {\n const navigate = useNavigate();\n\n const [showApiKeyModal, setShowApiKeyModal] = useState(false);\n const [apiKey, setApiKey] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [fromModal, setFromModal] = useState(false);\n const dispatch = useAppDispatch();\n\n const onRegister = useCallback(() => {\n if (loading) {\n return;\n }\n setLoading(true);\n let request: SubnetLoginRequest = { apiKey };\n api\n .invoke(\"POST\", registerEndpoint, request)\n .then((resp: SubnetLoginResponse) => {\n setLoading(false);\n if (resp && resp.registered) {\n dispatch(setServerNeedsRestart(true));\n navigate(IAM_PAGES.LICENSE);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n reset();\n });\n }, [apiKey, dispatch, loading, registerEndpoint, navigate]);\n\n useEffect(() => {\n if (fromModal) {\n onRegister();\n }\n }, [fromModal, onRegister]);\n\n const reset = () => {\n setApiKey(\"\");\n setFromModal(false);\n };\n\n return (\n \n \n }\n title={`Register cluster with API key`}\n />\n \n \n \n \n Use your MinIO Subscription Network API Key to register this\n cluster.\n \n \n ) =>\n setApiKey(event.target.value)\n }\n label=\"API Key\"\n value={apiKey}\n />\n\n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(ApiKeyRegister);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 {\n resetRegisterForm,\n setClusterRegistered,\n setLicenseInfo,\n setLoading,\n setLoadingLicenseInfo,\n setSelectedSubnetOrganization,\n setSubnetAccessToken,\n setSubnetMFAToken,\n setSubnetOrganizations,\n setSubnetOTP,\n} from \"./registerSlice\";\nimport api from \"../../../common/api\";\nimport {\n SubnetInfo,\n SubnetLoginRequest,\n SubnetLoginResponse,\n SubnetLoginWithMFARequest,\n SubnetRegisterRequest,\n} from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { AppState } from \"../../../store\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../common/SecureComponent/permissions\";\n\nexport const fetchLicenseInfo = createAsyncThunk(\n \"register/fetchLicenseInfo\",\n async (_, { getState, dispatch }) => {\n const state = getState() as AppState;\n\n const getSubnetInfo = hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.LICENSE],\n true,\n );\n\n const loadingLicenseInfo = state.register.loadingLicenseInfo;\n\n if (loadingLicenseInfo) {\n return;\n }\n if (getSubnetInfo) {\n dispatch(setLoadingLicenseInfo(true));\n api\n .invoke(\"GET\", `/api/v1/subnet/info`)\n .then((res: SubnetInfo) => {\n dispatch(setLicenseInfo(res));\n dispatch(setClusterRegistered(true));\n dispatch(setLoadingLicenseInfo(false));\n })\n .catch((err: ErrorResponseHandler) => {\n if (\n err.detailedError.toLowerCase() !==\n \"License is not present\".toLowerCase() &&\n err.detailedError.toLowerCase() !==\n \"license not found\".toLowerCase()\n ) {\n dispatch(setErrorSnackMessage(err));\n }\n dispatch(setClusterRegistered(false));\n dispatch(setLoadingLicenseInfo(false));\n });\n } else {\n dispatch(setLoadingLicenseInfo(false));\n }\n },\n);\n\nexport interface ClassRegisterArgs {\n token: string;\n account_id: string;\n}\n\nexport const callRegister = createAsyncThunk(\n \"register/callRegister\",\n async (args: ClassRegisterArgs, { dispatch }) => {\n const request: SubnetRegisterRequest = {\n token: args.token,\n account_id: args.account_id,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/register\", request)\n .then(() => {\n dispatch(setLoading(false));\n dispatch(setServerNeedsRestart(true));\n dispatch(resetRegisterForm());\n dispatch(fetchLicenseInfo());\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n });\n },\n);\n\nexport const subnetLoginWithMFA = createAsyncThunk(\n \"register/subnetLoginWithMFA\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const subnetEmail = state.register.subnetEmail;\n const subnetMFAToken = state.register.subnetMFAToken;\n const subnetOTP = state.register.subnetOTP;\n const loading = state.register.loading;\n\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n const request: SubnetLoginWithMFARequest = {\n username: subnetEmail,\n otp: subnetOTP,\n mfa_token: subnetMFAToken,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/login/mfa\", request)\n .then((resp: SubnetLoginResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.access_token && resp.organizations.length > 0) {\n if (resp.organizations.length === 1) {\n dispatch(\n callRegister({\n token: resp.access_token,\n account_id: resp.organizations[0].accountId.toString(),\n }),\n );\n } else {\n dispatch(setSubnetAccessToken(resp.access_token));\n dispatch(setSubnetOrganizations(resp.organizations));\n dispatch(\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString(),\n ),\n );\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n dispatch(setSubnetOTP(\"\"));\n });\n },\n);\n\nexport const subnetLogin = createAsyncThunk(\n \"register/subnetLogin\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const license = state.register.license;\n const subnetPassword = state.register.subnetPassword;\n const subnetEmail = state.register.subnetEmail;\n const loading = state.register.loading;\n\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n let request: SubnetLoginRequest = {\n username: subnetEmail,\n password: subnetPassword,\n apiKey: license,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/login\", request)\n .then((resp: SubnetLoginResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.registered) {\n dispatch(resetRegisterForm());\n dispatch(fetchLicenseInfo());\n } else if (resp && resp.mfa_token) {\n dispatch(setSubnetMFAToken(resp.mfa_token));\n } else if (resp && resp.access_token && resp.organizations.length > 0) {\n dispatch(setSubnetAccessToken(resp.access_token));\n dispatch(setSubnetOrganizations(resp.organizations));\n dispatch(\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString(),\n ),\n );\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n dispatch(resetRegisterForm());\n });\n },\n);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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, useState } from \"react\";\nimport { Box, Link } from \"@mui/material\";\nimport { ClusterRegistered, FormTitle } from \"./utils\";\nimport { Button, CopyIcon, OfflineRegistrationIcon } from \"mds\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { useSelector } from \"react-redux\";\nimport CommentBoxWrapper from \"../Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport { fetchLicenseInfo } from \"./registerThunks\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\n\nconst OfflineRegistration = () => {\n const dispatch = useAppDispatch();\n const subnetRegToken = useSelector(\n (state: AppState) => state.register.subnetRegToken,\n );\n const clusterRegistered = useSelector(\n (state: AppState) => state.register.clusterRegistered,\n );\n const licenseInfo = useSelector(\n (state: AppState) => state.register.licenseInfo,\n );\n\n const offlineRegUrl = `https://subnet.min.io/cluster/register?token=${subnetRegToken}`;\n\n const [licenseKey, setLicenseKey] = useState(\"\");\n\n const [isSaving, invokeApplyLicenseApi] = useApi(\n () => {\n dispatch(fetchLicenseInfo());\n dispatch(setServerNeedsRestart(true));\n },\n (err) => {\n dispatch(setErrorSnackMessage(err));\n },\n );\n\n const applyAirGapLicense = () => {\n invokeApplyLicenseApi(\"PUT\", `/api/v1/configs/subnet`, {\n key_values: [{ key: \"license\", value: licenseKey }],\n });\n };\n\n return (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n \n \n }\n title={`Register cluster in an Air-gap environment`}\n />\n \n\n \n \n \n \n
\n Click on the link to register this cluster in SUBNET and\n get a License Key for this Air-Gap deployment\n
\n Note: If this machine does not have internet connection,\n Copy paste the following URL in a browser where you access\n SUBNET and follow the instructions to complete the\n registration\n
\n\n \n \n {\n setLicenseKey(e.target.value);\n }}\n />\n \n \n \n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default OfflineRegistration;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { Box } from \"@mui/material\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport LockOutlinedIcon from \"@mui/icons-material/LockOutlined\";\nimport { setSubnetOTP } from \"./registerSlice\";\nimport { Button } from \"mds\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { useSelector } from \"react-redux\";\nimport { subnetLoginWithMFA } from \"./registerThunks\";\n\nconst SubnetMFAToken = () => {\n const dispatch = useAppDispatch();\n\n const subnetMFAToken = useSelector(\n (state: AppState) => state.register.subnetMFAToken,\n );\n const subnetOTP = useSelector((state: AppState) => state.register.subnetOTP);\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n \n \n \n Two-Factor Authentication\n \n\n \n Please enter the 6-digit verification code that was sent to your email\n address. This code will be valid for 5 minutes.\n \n\n \n }\n id=\"subnet-otp\"\n name=\"subnet-otp\"\n onChange={(event: React.ChangeEvent) =>\n dispatch(setSubnetOTP(event.target.value))\n }\n placeholder=\"\"\n label=\"\"\n value={subnetOTP}\n />\n \n \n dispatch(subnetLoginWithMFA())}\n disabled={\n loading ||\n subnetOTP.trim().length === 0 ||\n subnetMFAToken.trim().length === 0\n }\n variant=\"callAction\"\n label={\"Verify\"}\n />\n \n \n\n \n \n );\n};\nexport default SubnetMFAToken;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { Box } from \"@mui/material\";\nimport { FormTitle } from \"./utils\";\nimport SelectWrapper from \"../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { setLoading, setSelectedSubnetOrganization } from \"./registerSlice\";\nimport { Button } from \"mds\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { callRegister } from \"./registerThunks\";\n\nconst ClusterRegistrationForm = () => {\n const dispatch = useAppDispatch();\n\n const subnetAccessToken = useSelector(\n (state: AppState) => state.register.subnetAccessToken,\n );\n const selectedSubnetOrganization = useSelector(\n (state: AppState) => state.register.selectedSubnetOrganization,\n );\n const subnetOrganizations = useSelector(\n (state: AppState) => state.register.subnetOrganizations,\n );\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n \n \n \n \n \n \n \n dispatch(setSelectedSubnetOrganization(e.target.value as string))\n }\n label=\"Select an organization\"\n value={selectedSubnetOrganization}\n options={subnetOrganizations.map((organization) => ({\n label: organization.company,\n value: organization.accountId.toString(),\n }))}\n />\n \n () => {\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n if (subnetAccessToken && selectedSubnetOrganization) {\n dispatch(\n callRegister({\n token: subnetAccessToken,\n account_id: selectedSubnetOrganization,\n }),\n );\n }\n }}\n disabled={loading || subnetAccessToken.trim().length === 0}\n variant=\"callAction\"\n label={\"Register\"}\n />\n \n \n \n \n \n );\n};\n\nexport default ClusterRegistrationForm;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { Box } from \"@mui/material\";\nimport { FormTitle } from \"./utils\";\nimport { Button, OnlineRegistrationIcon, UsersIcon } from \"mds\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { spacingUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport {\n setShowPassword,\n setSubnetEmail,\n setSubnetPassword,\n} from \"./registerSlice\";\nimport { subnetLogin } from \"./registerThunks\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...spacingUtils,\n }),\n);\n\nconst OnlineRegistration = () => {\n const classes = useStyles();\n const dispatch = useAppDispatch();\n\n const subnetPassword = useSelector(\n (state: AppState) => state.register.subnetPassword,\n );\n const subnetEmail = useSelector(\n (state: AppState) => state.register.subnetEmail,\n );\n const showPassword = useSelector(\n (state: AppState) => state.register.showPassword,\n );\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n \n \n }\n title={`Online activation of MinIO Subscription Network License`}\n />\n \n \n \n \n Use your MinIO Subscription Network login credentials to register\n this cluster.\n \n \n ) =>\n dispatch(setSubnetEmail(event.target.value))\n }\n label=\"Email\"\n value={subnetEmail}\n overlayIcon={}\n />\n ) =>\n dispatch(setSubnetPassword(event.target.value))\n }\n label=\"Password\"\n type={showPassword ? \"text\" : \"password\"}\n value={subnetPassword}\n overlayIcon={\n showPassword ? : \n }\n overlayAction={() => dispatch(setShowPassword(!showPassword))}\n />\n\n \n {\n e.preventDefault();\n window.open(`https://min.io/signup?ref=con`, \"_blank\");\n }}\n label={\"Sign up\"}\n />\n dispatch(subnetLogin())}\n label={\"Register\"}\n />\n \n \n \n \n \n \n );\n};\n\nexport default OnlineRegistration;\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, useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { spacingUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box } from \"@mui/material\";\nimport api from \"../../../common/api\";\n\nimport { SubnetRegTokenResponse } from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { useSelector } from \"react-redux\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport { TabPanel } from \"../../shared/tabs\";\nimport { ClusterRegistered, ProxyConfiguration } from \"./utils\";\nimport ApiKeyRegister from \"./ApiKeyRegister\";\nimport { fetchLicenseInfo } from \"./registerThunks\";\nimport {\n resetRegisterForm,\n setCurTab,\n setLoading,\n setSubnetRegToken,\n} from \"./registerSlice\";\nimport OfflineRegistration from \"./OfflineRegistration\";\nimport SubnetMFAToken from \"./SubnetMFAToken\";\nimport ClusterRegistrationForm from \"./ClusterRegistrationForm\";\nimport OnlineRegistration from \"./OnlineRegistration\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport { PageLayout } from \"mds\";\nimport HelpMenu from \"../HelpMenu\";\n\ninterface IRegister {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...spacingUtils,\n });\n\nconst Register = ({ classes }: IRegister) => {\n const dispatch = useAppDispatch();\n\n const subnetMFAToken = useSelector(\n (state: AppState) => state.register.subnetMFAToken,\n );\n const subnetAccessToken = useSelector(\n (state: AppState) => state.register.subnetAccessToken,\n );\n\n const subnetRegToken = useSelector(\n (state: AppState) => state.register.subnetRegToken,\n );\n const subnetOrganizations = useSelector(\n (state: AppState) => state.register.subnetOrganizations,\n );\n\n const loading = useSelector((state: AppState) => state.register.loading);\n const loadingLicenseInfo = useSelector(\n (state: AppState) => state.register.loadingLicenseInfo,\n );\n const clusterRegistered = useSelector(\n (state: AppState) => state.register.clusterRegistered,\n );\n const licenseInfo = useSelector(\n (state: AppState) => state.register.licenseInfo,\n );\n const curTab = useSelector((state: AppState) => state.register.curTab);\n\n const [initialLicenseLoading, setInitialLicenseLoading] =\n useState(true);\n\n useEffect(() => {\n // when unmounted, reset\n return () => {\n dispatch(resetRegisterForm());\n };\n }, [dispatch]);\n\n const fetchSubnetRegToken = () => {\n if (loading || subnetRegToken) {\n return;\n }\n dispatch(setLoading(true));\n api\n .invoke(\"GET\", \"/api/v1/subnet/registration-token\")\n .then((resp: SubnetRegTokenResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.regToken) {\n dispatch(setSubnetRegToken(resp.regToken));\n }\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n });\n };\n\n useEffect(() => {\n if (initialLicenseLoading) {\n dispatch(fetchLicenseInfo());\n setInitialLicenseLoading(false);\n }\n }, [initialLicenseLoading, setInitialLicenseLoading, dispatch]);\n\n let clusterRegistrationForm: JSX.Element = ;\n\n if (subnetAccessToken && subnetOrganizations.length > 0) {\n clusterRegistrationForm = ;\n } else if (subnetMFAToken) {\n clusterRegistrationForm = ;\n } else {\n clusterRegistrationForm = ;\n }\n\n const apiKeyRegistration = (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n \n )}\n \n \n \n );\n\n const offlineRegistration = ;\n\n const regUi = (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n clusterRegistrationForm\n )}\n \n\n {!clusterRegistered && }\n \n );\n\n const loadingUi =
Loading..
;\n const uiToShow = loadingLicenseInfo ? loadingUi : regUi;\n\n useEffect(() => {\n dispatch(setHelpName(\"register\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n }\n />\n\n \n , newValue: number) => {\n dispatch(setCurTab(newValue));\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n aria-label=\"cluster-tabs\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n \n \n fetchSubnetRegToken()}\n />\n \n\n \n {uiToShow}\n \n \n {apiKeyRegistration}\n \n \n {offlineRegistration}\n \n \n \n );\n};\n\nexport default withStyles(styles)(Register);\n","import React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { VerifiedIcon } from \"mds\";\n\nconst RegistrationStatusBanner = ({ email = \"\" }: { email?: string }) => {\n return (\n \n \n Register status:\n \n \n \n Registered\n \n \n \n\n \n Registered to:\n {email}\n \n \n );\n};\nexport default RegistrationStatusBanner;\n"],"names":["withStyles","theme","createStyles","_objectSpread","fieldBasic","tooltipHelper","inputLabel","fontSize","margin","alignItems","paddingTop","flexWrap","display","textBoxContainer","flexGrow","position","cssOutlinedInput","borderColor","padding","rootContainer","minHeight","borderWidth","color","fontWeight","opacity","_ref","label","onChange","value","id","name","_ref$disabled","disabled","_ref$tooltip","tooltip","_ref$index","index","_ref$error","error","_ref$required","required","_ref$placeholder","placeholder","classes","inputProps","_jsx","React","children","_jsxs","Grid","item","xs","className","concat","fieldContainer","errorInField","InputLabel","htmlFor","tooltipContainer","Tooltip","title","placement","HelpIcon","TextField","fullWidth","multiline","rows","helperText","InputLabelProps","shrink","InputProps","notchedOutline","root","variant","StyledSwitch","width","height","switchBase","transform","palette","common","white","backgroundColor","boxShadow","border","thumb","marginLeft","track","borderRadius","transition","transitions","create","checked","focusVisible","switchContainer","justifyContent","Switch","indicatorLabelOn","indicatorLabel","fieldDescription","marginTop","actionsTray","_ref$label","_ref$checked","_ref$switchOnly","switchOnly","_ref$description","description","indicatorLabels","_ref$extraInputProps","extraInputProps","switchComponent","clsx","_defineProperty","length","disableRipple","disableFocusRipple","disableTouchRipple","container","sm","md","textAlign","Typography","component","inputStyles","makeStyles","inputFieldStyles","InputField","props","overlayAction","right","top","maxWidth","maxHeight","_ref$type","type","_ref$autoComplete","autoComplete","_ref$multiline","min","max","overlayId","_ref$overlayIcon","overlayIcon","_ref$overlayObject","overlayObject","_ref$noLabelMinWidth","noLabelMinWidth","_ref$pattern","pattern","_ref$autoFocus","autoFocus","_ref$className","onKeyPress","onFocus","onPaste","_useState","useState","_useState2","_slicedToArray","toggleTextInput","setToggleTextInput","inputBoxWrapperIcon","inputBoxWrapperType","VisibilityOffIcon","RemoveRedEyeIcon","inputBoxContainer","noMinWidthLabel","inputRebase","IconButton","onClick","size","SelectStyled","lineHeight","spacing","input","InputBase","flexFlow","options","FormControl","Select","map","option","MenuItem","FormTitle","_ref$icon","icon","Box","sx","ClusterRegistered","_ref2","email","Fragment","RegistrationStatusBanner","cursor","Link","href","target","style","ProxyConfiguration","proxyConfigurationCommand","displaySubnetProxy","setDisplaySubnetProxy","SettingsIcon","marginBottom","InputBoxWrapper","CopyIcon","readOnly","navigator","clipboard","writeText","FormSwitchWrapper","event","sizedLabel","minWidth","containerForHeader","spacingUtils","open","closeModal","onSet","dispatch","useAppDispatch","setEmail","_useState3","_useState4","password","setPassword","_useState5","_useState6","showPassword","setShowPassword","_useState7","_useState8","mfaToken","setMfaToken","_useState9","_useState10","subnetOTP","setSubnetOTP","_useApi","useApi","res","mfa_token","access_token","invokeApi","apiKey","err","setErrorSnackMessage","_useApi2","isLoading","getCredentialsDialog","spacerBottom","UsersIcon","getMFADialog","flex","LockOutlinedIcon","ConfirmDialog","confirmText","isOpen","titleIcon","InfoIcon","cancelText","onConfirm","username","otp","onClose","confirmButtonProps","hidden","cancelButtonProps","confirmationContent","FeatureItem","marginRight","fontStyle","_ref2$hasMargin","hasMargin","HelpIconFilled","CallHomeFeatureIcon","DiagnosticsFeatureIcon","PerformanceFeatureIcon","ExtraFeaturesIcon","registerEndpoint","navigate","useNavigate","showApiKeyModal","setShowApiKeyModal","setApiKey","loading","setLoading","fromModal","setFromModal","onRegister","useCallback","request","api","invoke","then","resp","registered","setServerNeedsRestart","IAM_PAGES","LICENSE","catch","reset","useEffect","OnlineRegistrationIcon","Button","spacerRight","trim","GetApiKeyModal","RegisterHelpBox","fetchLicenseInfo","createAsyncThunk","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_","getState","state","getSubnetInfo","wrap","_context","prev","next","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","register","loadingLicenseInfo","abrupt","setLoadingLicenseInfo","setLicenseInfo","setClusterRegistered","detailedError","toLowerCase","stop","_x","_x2","apply","arguments","callRegister","_ref4","_callee2","args","_ref3","_context2","token","account_id","resetRegisterForm","_x3","_x4","subnetLoginWithMFA","_ref6","_callee3","_ref5","subnetEmail","subnetMFAToken","_context3","rejectWithValue","organizations","accountId","toString","setSubnetAccessToken","setSubnetOrganizations","setSelectedSubnetOrganization","_x5","_x6","subnetLogin","_ref8","_callee4","_ref7","license","subnetPassword","_context4","setSubnetMFAToken","_x7","_x8","subnetRegToken","useSelector","clusterRegistered","licenseInfo","offlineRegUrl","licenseKey","setLicenseKey","isSaving","invokeApplyLicenseApi","OfflineRegistrationIcon","background","gap","TooltipWrapper","CopyToClipboard","text","flexDirection","CommentBoxWrapper","e","key_values","key","subnetAccessToken","selectedSubnetOrganization","subnetOrganizations","SelectWrapper","organization","company","useStyles","setSubnetEmail","setSubnetPassword","preventDefault","window","curTab","initialLicenseLoading","setInitialLicenseLoading","clusterRegistrationForm","ClusterRegistrationForm","SubnetMFAToken","OnlineRegistration","apiKeyRegistration","ApiKeyRegister","offlineRegistration","OfflineRegistration","regUi","uiToShow","setHelpName","PageHeaderWrapper","actions","HelpMenu","PageLayout","Tabs","newValue","setCurTab","indicatorColor","textColor","scrollButtons","Tab","regToken","setSubnetRegToken","console","TabPanel","_ref$email","left","fill","VerifiedIcon"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1516.b3513b8c.chunk.js b/portal-ui/build/static/js/1516.b3513b8c.chunk.js
deleted file mode 100644
index e74e25bd4..000000000
--- a/portal-ui/build/static/js/1516.b3513b8c.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1516],{57314:function(e,t,n){"use strict";var r=n(1413),i=n(72791),o=n(61889),s=n(30829),a=n(20068),l=n(27391),c=n(11135),u=n(25787),d=n(23814),p=n(29945),f=n(80184);t.Z=(0,u.Z)((function(e){return(0,c.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},d.YI),d.Hr),{},{inputLabel:(0,r.Z)((0,r.Z)({},d.YI.inputLabel),{},{fontSize:14,margin:0,alignItems:"flex-start",paddingTop:"20px",flexWrap:"wrap",display:"flex"}),textBoxContainer:{flexGrow:1,position:"relative"},cssOutlinedInput:{borderColor:"#EAEAEA",padding:16},rootContainer:{"& .MuiOutlinedInput-inputMultiline":(0,r.Z)((0,r.Z)({},d.YI.inputLabel),{},{fontSize:13,minHeight:150}),"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"& textarea":{color:"#07193E",fontSize:13,fontWeight:600,"&:placeholder":{color:"#858585",opacity:1,fontWeight:400}}}}))}))((function(e){var t=e.label,n=e.onChange,r=e.value,c=e.id,u=e.name,d=e.disabled,x=void 0!==d&&d,h=e.tooltip,g=void 0===h?"":h,m=e.index,b=void 0===m?0:m,v=e.error,y=void 0===v?"":v,j=e.required,Z=void 0!==j&&j,w=e.placeholder,C=void 0===w?"":w,k=e.classes,S={"data-index":b};return(0,f.jsx)(i.Fragment,{children:(0,f.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(k.fieldContainer," ").concat(""!==y?k.errorInField:""),children:[""!==t&&(0,f.jsxs)(s.Z,{htmlFor:c,className:k.inputLabel,children:[(0,f.jsxs)("span",{children:[t,Z?"*":""]}),""!==g&&(0,f.jsx)("div",{className:k.tooltipContainer,children:(0,f.jsx)(a.Z,{title:g,placement:"top-start",children:(0,f.jsx)("div",{className:k.tooltip,children:(0,f.jsx)(p.byK,{})})})})]}),(0,f.jsx)("div",{className:k.textBoxContainer,children:(0,f.jsx)(l.Z,{id:c,name:u,fullWidth:!0,value:r,disabled:x,onChange:n,multiline:!0,rows:5,inputProps:S,error:""!==y,helperText:y,placeholder:C,InputLabelProps:{shrink:!0},InputProps:{classes:{notchedOutline:k.cssOutlinedInput,root:k.rootContainer}},variant:"outlined"})})]})})}))},21435:function(e,t,n){"use strict";var r=n(29439),i=n(1413),o=n(72791),s=n(27391),a=n(61889),l=n(30829),c=n(20068),u=n(13400),d=n(20165),p=n(3579),f=n(11135),x=n(72455),h=n(25787),g=n(23814),m=n(29945),b=n(28182),v=n(80184),y=(0,x.Z)((function(e){return(0,f.Z)((0,i.Z)({},g.gM))}));function j(e){var t=y();return(0,v.jsx)(s.Z,(0,i.Z)({InputProps:{classes:t}},e))}t.Z=(0,h.Z)((function(e){return(0,f.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},g.YI),g.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative"},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}}}))}))((function(e){var t=e.label,n=e.onChange,s=e.value,f=e.id,x=e.name,h=e.type,g=void 0===h?"text":h,y=e.autoComplete,Z=void 0===y?"off":y,w=e.disabled,C=void 0!==w&&w,k=e.multiline,S=void 0!==k&&k,I=e.tooltip,T=void 0===I?"":I,P=e.index,O=void 0===P?0:P,L=e.error,z=void 0===L?"":L,E=e.required,F=void 0!==E&&E,R=e.placeholder,N=void 0===R?"":R,A=e.min,_=e.max,B=e.overlayId,M=e.overlayIcon,K=void 0===M?null:M,W=e.overlayObject,D=void 0===W?null:W,U=e.extraInputProps,H=void 0===U?{}:U,G=e.overlayAction,V=e.noLabelMinWidth,Y=void 0!==V&&V,q=e.pattern,X=void 0===q?"":q,Q=e.autoFocus,J=void 0!==Q&&Q,$=e.classes,ee=e.className,te=void 0===ee?"":ee,ne=e.onKeyPress,re=e.onFocus,ie=e.onPaste,oe=(0,i.Z)({"data-index":O},H),se=(0,o.useState)(!1),ae=(0,r.Z)(se,2),le=ae[0],ce=ae[1];"number"===g&&A&&(oe.min=A),"number"===g&&_&&(oe.max=_),""!==X&&(oe.pattern=X);var ue=K,de=g;return"password"===g&&null===K&&(ue=le?(0,v.jsx)(d.Z,{}):(0,v.jsx)(p.Z,{}),de=le?"text":"password"),(0,v.jsx)(o.Fragment,{children:(0,v.jsxs)(a.ZP,{container:!0,className:(0,b.Z)(""!==te?te:"",""!==z?$.errorInField:$.inputBoxContainer),children:[""!==t&&(0,v.jsxs)(l.Z,{htmlFor:f,className:Y?$.noMinWidthLabel:$.inputLabel,children:[(0,v.jsxs)("span",{children:[t,F?"*":""]}),""!==T&&(0,v.jsx)("div",{className:$.tooltipContainer,children:(0,v.jsx)(c.Z,{title:T,placement:"top-start",children:(0,v.jsx)("div",{className:$.tooltip,children:(0,v.jsx)(m.byK,{})})})})]}),(0,v.jsxs)("div",{className:$.textBoxContainer,children:[(0,v.jsx)(j,{id:f,name:x,fullWidth:!0,value:s,autoFocus:J,disabled:C,onChange:n,type:de,multiline:S,autoComplete:Z,inputProps:oe,error:""!==z,helperText:z,placeholder:N,className:$.inputRebase,onKeyPress:ne,onFocus:re,onPaste:ie}),ue&&(0,v.jsx)("div",{className:"".concat($.overlayAction," ").concat(""!==t?"withLabel":""),children:(0,v.jsx)(u.Z,{onClick:G?function(){G()}:function(){return ce(!le)},id:B,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:ue})}),D&&(0,v.jsx)("div",{className:"".concat($.overlayAction," ").concat(""!==t?"withLabel":""),children:D})]})]})})}))},90673:function(e,t,n){"use strict";var r=n(1413),i=n(72791),o=n(61889),s=n(886),a=n(30829),l=n(20068),c=n(68096),u=n(58406),d=n(77865),p=n(11135),f=n(25787),x=n(23814),h=n(29945),g=n(80184),m=(0,f.Z)((function(e){return(0,p.Z)({root:{height:38,lineHeight:1,"label + &":{marginTop:e.spacing(3)}},input:{height:38,position:"relative",color:"#07193E",fontSize:13,fontWeight:600,padding:"8px 20px 10px 10px",border:"#e5e5e5 1px solid",borderRadius:4,display:"flex",alignItems:"center","&:hover":{borderColor:"#393939"},"&:focus":{backgroundColor:"#fff"}}})}))(s.ZP);t.Z=(0,f.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},x.YI),x.Hr),{},{fieldContainer:{display:"flex","@media (max-width: 600px)":{flexFlow:"column"}}}))}))((function(e){var t=e.classes,n=e.id,r=e.name,s=e.onChange,p=e.options,f=e.label,x=e.tooltip,b=void 0===x?"":x,v=e.value,y=e.disabled,j=void 0!==y&&y;return(0,g.jsx)(i.Fragment,{children:(0,g.jsxs)(o.ZP,{item:!0,xs:12,className:t.fieldContainer,children:[""!==f&&(0,g.jsxs)(a.Z,{htmlFor:n,className:t.inputLabel,children:[(0,g.jsx)("span",{children:f}),""!==b&&(0,g.jsx)("div",{className:t.tooltipContainer,children:(0,g.jsx)(l.Z,{title:b,placement:"top-start",children:(0,g.jsx)("div",{className:t.tooltip,children:(0,g.jsx)(h.byK,{})})})})]}),(0,g.jsx)(c.Z,{fullWidth:!0,children:(0,g.jsx)(u.Z,{id:n,name:r,value:v,onChange:s,input:(0,g.jsx)(m,{}),disabled:j,children:p.map((function(e){return(0,g.jsx)(d.Z,{value:e.value,children:e.label},"select-".concat(r,"-").concat(e.label))}))})})]})})}))},51516:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return oe}});var r=n(29439),i=n(1413),o=n(72791),s=n(11135),a=n(23814),l=n(25787),c=n(64554),u=n(81207),d=n(78687),p=n(87995),f=n(81551),x=n(18073),h=n(43896),g=n(19847),m=n(61889),b=n(50533),v=n(29945),y=n(81159),j=n(21435),Z=n(74440),w=n(80184),C=function(e){var t=e.icon,n=void 0===t?null:t,r=e.title;return(0,w.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start"},children:[n,(0,w.jsx)("div",{className:"title-text",children:r})]})},k=function(e){var t=e.email;return(0,w.jsxs)(o.Fragment,{children:[(0,w.jsx)(Z.Z,{email:t}),(0,w.jsx)(m.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,w.jsxs)(c.Z,{sx:{padding:"20px","& a":{color:"#2781B0",cursor:"pointer"}},children:["Login to"," ",(0,w.jsx)(b.Z,{href:"https://subnet.min.io",target:"_blank",style:{color:"#2781B0",cursor:"pointer"},children:"SUBNET"})," ","to avail support for this MinIO cluster"]})})]})},S=function(){var e="mc admin config set {alias} subnet proxy={proxy}",t=(0,o.useState)(!1),n=(0,r.Z)(t,2),i=n[0],s=n[1];return(0,w.jsx)(o.Fragment,{children:(0,w.jsxs)(c.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",padding:"23px",marginTop:"40px",alignItems:"start",justifyContent:"space-between"},children:[(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,w.jsxs)(c.Z,{sx:{display:"flex","& .min-icon":{height:"22px",width:"22px"}},children:[(0,w.jsx)(v.ewm,{}),(0,w.jsx)("div",{style:{marginLeft:"10px",fontWeight:600},children:"Proxy Configuration"})]}),(0,w.jsxs)(c.Z,{sx:{marginTop:"10px",marginBottom:"10px",fontSize:"14px"},children:["For airgap/firewalled environments it is possible to"," ",(0,w.jsx)(b.Z,{style:{color:"#2781B0",cursor:"pointer"},href:"https://min.io/docs/minio/linux/reference/minio-mc-admin/mc-admin-config.html?ref=con",target:"_blank",children:"configure a proxy"})," ","to connect to SUBNET ."]}),(0,w.jsx)(c.Z,{children:i&&(0,w.jsx)(j.Z,{disabled:!0,id:"subnetProxy",name:"subnetProxy",placeholder:"",onChange:function(){},label:"",value:e,overlayIcon:(0,w.jsx)(v.TIy,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(e)}})})]}),(0,w.jsx)(c.Z,{sx:{display:"flex"},children:(0,w.jsx)(y.Z,{value:"enableProxy",id:"enableProxy",name:"enableProxy",checked:i,onChange:function(e){s(e.target.checked)}})})]})})},I=n(3579),T=n(20165),P=n(30403),O=n(23508),L=n(9505),z=(0,l.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)({sizedLabel:{minWidth:"75px"}},a.Bz),a.bK))}))((function(e){var t=e.open,n=e.closeModal,i=e.classes,s=e.onSet,a=(0,f.TL)(),l=(0,o.useState)(""),u=(0,r.Z)(l,2),d=u[0],x=u[1],h=(0,o.useState)(""),g=(0,r.Z)(h,2),m=g[0],b=g[1],y=(0,o.useState)(!1),Z=(0,r.Z)(y,2),C=Z[0],k=Z[1],S=(0,o.useState)(""),z=(0,r.Z)(S,2),E=z[0],F=z[1],R=(0,o.useState)(""),N=(0,r.Z)(R,2),A=N[0],_=N[1],B=(0,L.Z)((function(e){e.mfa_token?F(e.mfa_token):e.access_token?W("GET","/api/v1/subnet/apikey?token=".concat(e.access_token)):(s(e.apiKey),n())}),(function(e){a((0,p.Ih)(e)),n(),x(""),b(""),k(!1),F(""),_("")})),M=(0,r.Z)(B,2),K=M[0],W=M[1],D=function(){return(0,w.jsxs)(c.Z,{sx:{width:500},children:[(0,w.jsx)(j.Z,{className:i.spacerBottom,classes:{inputLabel:i.sizedLabel},id:"subnet-email",name:"subnet-email",onChange:function(e){return x(e.target.value)},label:"Email",value:d,overlayIcon:(0,w.jsx)(v.oyc,{})}),(0,w.jsx)(j.Z,{className:i.spacerBottom,classes:{inputLabel:i.sizedLabel},id:"subnet-password",name:"subnet-password",onChange:function(e){return b(e.target.value)},label:"Password",type:C?"text":"password",value:m,overlayIcon:C?(0,w.jsx)(T.Z,{}):(0,w.jsx)(I.Z,{}),overlayAction:function(){return k(!C)}})]})},U=function(){return(0,w.jsx)(c.Z,{sx:{display:"flex"},children:(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,w.jsx)(c.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Two-Factor Authentication"}),(0,w.jsx)(c.Z,{children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,w.jsx)(c.Z,{sx:{flex:"1",marginTop:"30px"},children:(0,w.jsx)(j.Z,{overlayIcon:(0,w.jsx)(P.Z,{}),id:"subnet-otp",name:"subnet-otp",onChange:function(e){return _(e.target.value)},placeholder:"",label:"",value:A})}),(0,w.jsx)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"}})]})})};return t?(0,w.jsx)(O.Z,{title:"Get API Key from SUBNET",confirmText:"Get API Key",isOpen:t,titleIcon:(0,w.jsx)(v.szr,{}),isLoading:K,cancelText:"Cancel",onConfirm:function(){""!==E?W("POST","/api/v1/subnet/login/mfa",{username:d,otp:A,mfa_token:E}):W("POST","/api/v1/subnet/login",{username:d,password:m})},onClose:n,confirmButtonProps:{variant:"callAction",disabled:!d||!m||K,hidden:!0},cancelButtonProps:{disabled:K},confirmationContent:""===E?D():U()}):null})),E=function(e){var t=e.icon,n=e.description;return(0,w.jsxs)(c.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[t," ",(0,w.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:n})]})},F=function(e){var t=e.hasMargin,n=void 0===t||t;return(0,w.jsxs)(c.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginLeft:{xs:"0px",sm:"0px",md:n?"30px":""},marginTop:{xs:"0px",sm:n?"30px":""}},children:[(0,w.jsxs)(c.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,w.jsx)(v.M9A,{}),(0,w.jsx)("div",{children:"Why should I register?"})]}),(0,w.jsx)(c.Z,{sx:{fontSize:"14px",marginBottom:"15px"},children:"Registering this cluster with the MinIO Subscription Network (SUBNET) provides the following benefits in addition to the commercial license and SLA backed support."}),(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,w.jsx)(E,{icon:(0,w.jsx)(v._qw,{}),description:"Call Home Monitoring"}),(0,w.jsx)(E,{icon:(0,w.jsx)(v.toM,{}),description:"Health Diagnostics"}),(0,w.jsx)(E,{icon:(0,w.jsx)(v.Fsz,{}),description:"Performance Analysis"}),(0,w.jsx)(E,{icon:(0,w.jsx)(v.EQx,{}),description:(0,w.jsx)(b.Z,{href:"https://min.io/signup?ref=con",target:"_blank",sx:{color:"#2781B0",cursor:"pointer"},children:"More Features"})})]})]})},R=n(57689),N=n(56087),A=(0,l.Z)((function(e){return(0,s.Z)((0,i.Z)({sizedLabel:{minWidth:"75px"}},a.bK))}))((function(e){var t=e.classes,n=e.registerEndpoint,i=(0,R.s0)(),s=(0,o.useState)(!1),a=(0,r.Z)(s,2),l=a[0],d=a[1],x=(0,o.useState)(""),h=(0,r.Z)(x,2),g=h[0],m=h[1],b=(0,o.useState)(!1),y=(0,r.Z)(b,2),Z=y[0],k=y[1],S=(0,o.useState)(!1),I=(0,r.Z)(S,2),T=I[0],P=I[1],O=(0,f.TL)(),L=(0,o.useCallback)((function(){if(!Z){k(!0);var e={apiKey:g};u.Z.invoke("POST",n,e).then((function(e){k(!1),e&&e.registered&&(O((0,p.cN)(!0)),i(N.gA.LICENSE))})).catch((function(e){O((0,p.Ih)(e)),k(!1),E()}))}}),[g,O,Z,n,i]);(0,o.useEffect)((function(){T&&L()}),[T,L]);var E=function(){m(""),P(!1)};return(0,w.jsxs)(o.Fragment,{children:[(0,w.jsx)(c.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,w.jsx)(C,{icon:(0,w.jsx)(v.dRy,{}),title:"Register cluster with API key"})}),(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:{xs:"column",md:"row"}},children:[(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,w.jsx)(c.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Use your MinIO Subscription Network API Key to register this cluster."}),(0,w.jsxs)(c.Z,{sx:{flex:"1"},children:[(0,w.jsx)(j.Z,{className:t.spacerBottom,classes:{inputLabel:t.sizedLabel},id:"api-key",name:"api-key",onChange:function(e){return m(e.target.value)},label:"API Key",value:g}),(0,w.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end","& button":{marginLeft:"8px"}},children:[(0,w.jsx)(v.zxk,{id:"get-from-subnet",variant:"regular",className:t.spacerRight,disabled:Z,onClick:function(){return d(!0)},label:"Get from SUBNET"}),(0,w.jsx)(v.zxk,{id:"register",type:"submit",variant:"callAction",disabled:Z||0===g.trim().length,onClick:function(){return L()},label:"Register"}),(0,w.jsx)(z,{open:l,closeModal:function(){return d(!1)},onSet:function(e){m(e),P(!0)}})]})]})]}),(0,w.jsx)(F,{})]})]})})),_=n(74165),B=n(15861),M=n(36825),K=n(96382),W=n(38442),D=(0,K.hg)("register/fetchLicenseInfo",function(){var e=(0,B.Z)((0,_.Z)().mark((function e(t,n){var r,i,o,s;return(0,_.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getState,i=n.dispatch,o=r(),s=(0,W.F)(N.C3,N.LC[N.gA.LICENSE],!0),!o.register.loadingLicenseInfo){e.next=6;break}return e.abrupt("return");case 6:s?(i((0,M.pI)(!0)),u.Z.invoke("GET","/api/v1/subnet/info").then((function(e){i((0,M.aO)(e)),i((0,M.Dr)(!0)),i((0,M.pI)(!1))})).catch((function(e){e.detailedError.toLowerCase()!=="License is not present".toLowerCase()&&e.detailedError.toLowerCase()!=="license not found".toLowerCase()&&i((0,p.Ih)(e)),i((0,M.Dr)(!1)),i((0,M.pI)(!1))}))):i((0,M.pI)(!1));case 7:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),U=(0,K.hg)("register/callRegister",function(){var e=(0,B.Z)((0,_.Z)().mark((function e(t,n){var r,i;return(0,_.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=n.dispatch,i={token:t.token,account_id:t.account_id},u.Z.invoke("POST","/api/v1/subnet/register",i).then((function(){r((0,M.K4)(!1)),r((0,p.cN)(!0)),r((0,M.jS)()),r(D())})).catch((function(e){r((0,p.Ih)(e)),r((0,M.K4)(!1))}));case 3:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),H=(0,K.hg)("register/subnetLoginWithMFA",function(){var e=(0,B.Z)((0,_.Z)().mark((function e(t,n){var r,i,o,s,a,l,c;return(0,_.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getState,n.rejectWithValue,i=n.dispatch,o=r(),s=o.register.subnetEmail,a=o.register.subnetMFAToken,l=o.register.subnetOTP,!o.register.loading){e.next=8;break}return e.abrupt("return");case 8:i((0,M.K4)(!0)),c={username:s,otp:l,mfa_token:a},u.Z.invoke("POST","/api/v1/subnet/login/mfa",c).then((function(e){i((0,M.K4)(!1)),e&&e.access_token&&e.organizations.length>0&&(1===e.organizations.length?i(U({token:e.access_token,account_id:e.organizations[0].accountId.toString()})):(i((0,M.t2)(e.access_token)),i((0,M.dl)(e.organizations)),i((0,M.wK)(e.organizations[0].accountId.toString()))))})).catch((function(e){i((0,p.Ih)(e)),i((0,M.K4)(!1)),i((0,M.Z7)(""))}));case 11:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),G=(0,K.hg)("register/subnetLogin",function(){var e=(0,B.Z)((0,_.Z)().mark((function e(t,n){var r,i,o,s,a,l,c;return(0,_.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getState,n.rejectWithValue,i=n.dispatch,o=r(),s=o.register.license,a=o.register.subnetPassword,l=o.register.subnetEmail,!o.register.loading){e.next=8;break}return e.abrupt("return");case 8:i((0,M.K4)(!0)),c={username:l,password:a,apiKey:s},u.Z.invoke("POST","/api/v1/subnet/login",c).then((function(e){i((0,M.K4)(!1)),e&&e.registered?(i((0,M.jS)()),i(D())):e&&e.mfa_token?i((0,M.dK)(e.mfa_token)):e&&e.access_token&&e.organizations.length>0&&(i((0,M.t2)(e.access_token)),i((0,M.dl)(e.organizations)),i((0,M.wK)(e.organizations[0].accountId.toString())))})).catch((function(e){i((0,p.Ih)(e)),i((0,M.K4)(!1)),i((0,M.jS)())}));case 11:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),V=n(27454),Y=n(78029),q=n.n(Y),X=n(57314),Q=function(){var e=(0,f.TL)(),t=(0,d.v9)((function(e){return e.register.subnetRegToken})),n=(0,d.v9)((function(e){return e.register.clusterRegistered})),i=(0,d.v9)((function(e){return e.register.licenseInfo})),s="https://subnet.min.io/cluster/register?token=".concat(t),a=(0,o.useState)(""),l=(0,r.Z)(a,2),u=l[0],x=l[1],h=(0,L.Z)((function(){e(D()),e((0,p.cN)(!0))}),(function(t){e((0,p.Ih)(t))})),g=(0,r.Z)(h,2),m=g[0],y=g[1];return(0,w.jsx)(o.Fragment,{children:(0,w.jsx)(c.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"43px"},children:n&&i?(0,w.jsx)(k,{email:i.email}):(0,w.jsxs)(o.Fragment,{children:[(0,w.jsx)(c.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,w.jsx)(C,{icon:(0,w.jsx)(v.YL8,{}),title:"Register cluster in an Air-gap environment"})}),(0,w.jsxs)(c.Z,{sx:{display:"flex"},children:[(0,w.jsx)(c.Z,{sx:{display:"flex",flexFlow:"column",flex:"2",marginTop:"15px","& .step-number":{color:"#ffffff",height:"25px",width:"25px",background:"#081C42",marginRight:"10px",textAlign:"center",fontWeight:600,borderRadius:"50%"},"& .step-row":{fontSize:"16px",display:"flex",marginTop:"15px",marginBottom:"15px"}},children:(0,w.jsxs)(c.Z,{children:[(0,w.jsx)(c.Z,{className:"step-row",children:(0,w.jsx)("div",{className:"step-text",children:"Click on the link to register this cluster in SUBNET and get a License Key for this Air-Gap deployment"})}),(0,w.jsxs)(c.Z,{sx:{flex:"1",display:"flex",alignItems:"center",gap:3},children:[(0,w.jsx)(b.Z,{style:{color:"#2781B0",cursor:"pointer"},color:"inherit",href:s,target:"_blank",children:"https://subnet.min.io/cluster/register"}),(0,w.jsx)(V.Z,{tooltip:"Copy to Clipboard",children:(0,w.jsx)(q(),{text:s,children:(0,w.jsx)(v.zxk,{type:"button",id:"copy-ult-to-clip-board",icon:(0,w.jsx)(v.TIy,{}),color:"primary",variant:"regular"})})})]}),(0,w.jsx)("div",{style:{marginTop:"25px",fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:"Note: If this machine does not have internet connection, Copy paste the following URL in a browser where you access SUBNET and follow the instructions to complete the registration"}),(0,w.jsxs)(c.Z,{sx:{marginTop:"25px",display:"flex",flexDirection:"column"},children:[(0,w.jsxs)("label",{style:{fontWeight:"bold",marginBottom:"10px"},children:["Paste the License Key"," "]}),(0,w.jsx)(X.Z,{value:u,disabled:m,label:"",id:"licenseKey",name:"licenseKey",placeholder:"License Key",onChange:function(e){x(e.target.value)}})]}),(0,w.jsx)(c.Z,{sx:{marginTop:"25px"},children:(0,w.jsx)(v.zxk,{id:"apply-license-key",onClick:function(){y("PUT","/api/v1/configs/subnet",{key_values:[{key:"license",value:u}]})},variant:"callAction",disabled:!u||m,label:"Apply Cluster License"})})]})}),(0,w.jsx)(F,{})]})]})})})},J=function(){var e=(0,f.TL)(),t=(0,d.v9)((function(e){return e.register.subnetMFAToken})),n=(0,d.v9)((function(e){return e.register.subnetOTP})),r=(0,d.v9)((function(e){return e.register.loading}));return(0,w.jsxs)(c.Z,{sx:{display:"flex"},children:[(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,w.jsx)(c.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Two-Factor Authentication"}),(0,w.jsx)(c.Z,{children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,w.jsx)(c.Z,{sx:{flex:"1",marginTop:"30px"},children:(0,w.jsx)(j.Z,{overlayIcon:(0,w.jsx)(P.Z,{}),id:"subnet-otp",name:"subnet-otp",onChange:function(t){return e((0,M.Z7)(t.target.value))},placeholder:"",label:"",value:n})}),(0,w.jsx)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:(0,w.jsx)(v.zxk,{id:"verify",onClick:function(){return e(H())},disabled:r||0===n.trim().length||0===t.trim().length,variant:"callAction",label:"Verify"})})]}),(0,w.jsx)(F,{})]})},$=n(90673),ee=function(){var e=(0,f.TL)(),t=(0,d.v9)((function(e){return e.register.subnetAccessToken})),n=(0,d.v9)((function(e){return e.register.selectedSubnetOrganization})),r=(0,d.v9)((function(e){return e.register.subnetOrganizations})),i=(0,d.v9)((function(e){return e.register.loading}));return(0,w.jsxs)(c.Z,{sx:{display:"flex"},children:[(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,w.jsx)(c.Z,{sx:{marginTop:"15px",marginBottom:"15px","& .title-text":{marginLeft:"0px"}},children:(0,w.jsx)(C,{title:"Register MinIO cluster"})}),(0,w.jsxs)(c.Z,{children:[(0,w.jsx)($.Z,{id:"subnet-organization",name:"subnet-organization",onChange:function(t){return e((0,M.wK)(t.target.value))},label:"Select an organization",value:n,options:r.map((function(e){return{label:e.company,value:e.accountId.toString()}}))}),(0,w.jsx)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"15px"},children:(0,w.jsx)(v.zxk,{id:"register-cluster",onClick:function(){return function(){i||(e((0,M.K4)(!0)),t&&n&&e(U({token:t,account_id:n})))}},disabled:i||0===t.trim().length,variant:"callAction",label:"Register"})})]})]}),(0,w.jsx)(F,{})]})},te=(0,n(72455).Z)((function(e){return(0,s.Z)((0,i.Z)({sizedLabel:{minWidth:"75px"}},a.bK))})),ne=function(){var e=te(),t=(0,f.TL)(),n=(0,d.v9)((function(e){return e.register.subnetPassword})),r=(0,d.v9)((function(e){return e.register.subnetEmail})),i=(0,d.v9)((function(e){return e.register.showPassword})),s=(0,d.v9)((function(e){return e.register.loading}));return(0,w.jsxs)(o.Fragment,{children:[(0,w.jsx)(c.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,w.jsx)(C,{icon:(0,w.jsx)(v.dRy,{}),title:"Online activation of MinIO Subscription Network License"})}),(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:{xs:"column",md:"row"}},children:[(0,w.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,w.jsx)(c.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Use your MinIO Subscription Network login credentials to register this cluster."}),(0,w.jsxs)(c.Z,{sx:{flex:"1"},children:[(0,w.jsx)(j.Z,{className:e.spacerBottom,classes:{inputLabel:e.sizedLabel},id:"subnet-email",name:"subnet-email",onChange:function(e){return t((0,M.Ze)(e.target.value))},label:"Email",value:r,overlayIcon:(0,w.jsx)(v.oyc,{})}),(0,w.jsx)(j.Z,{className:e.spacerBottom,classes:{inputLabel:e.sizedLabel},id:"subnet-password",name:"subnet-password",onChange:function(e){return t((0,M.lr)(e.target.value))},label:"Password",type:i?"text":"password",value:n,overlayIcon:i?(0,w.jsx)(T.Z,{}):(0,w.jsx)(I.Z,{}),overlayAction:function(){return t((0,M.R5)(!i))}}),(0,w.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end","& button":{marginLeft:"8px"}},children:[(0,w.jsx)(v.zxk,{id:"sign-up",type:"submit",className:e.spacerRight,variant:"regular",onClick:function(e){e.preventDefault(),window.open("https://min.io/signup?ref=con","_blank")},label:"Sign up"}),(0,w.jsx)(v.zxk,{id:"register-credentials",type:"submit",variant:"callAction",disabled:s||0===r.trim().length||0===n.trim().length,onClick:function(){return t(G())},label:"Register"})]})]})]}),(0,w.jsx)(F,{})]})]})},re=n(47974),ie=n(99670),oe=(0,l.Z)((function(e){return(0,s.Z)((0,i.Z)({sizedLabel:{minWidth:"75px"}},a.bK))}))((function(e){e.classes;var t=(0,f.TL)(),n=(0,d.v9)((function(e){return e.register.subnetMFAToken})),i=(0,d.v9)((function(e){return e.register.subnetAccessToken})),s=(0,d.v9)((function(e){return e.register.subnetRegToken})),a=(0,d.v9)((function(e){return e.register.subnetOrganizations})),l=(0,d.v9)((function(e){return e.register.loading})),m=(0,d.v9)((function(e){return e.register.loadingLicenseInfo})),b=(0,d.v9)((function(e){return e.register.clusterRegistered})),y=(0,d.v9)((function(e){return e.register.licenseInfo})),j=(0,d.v9)((function(e){return e.register.curTab})),Z=(0,o.useState)(!0),C=(0,r.Z)(Z,2),I=C[0],T=C[1];(0,o.useEffect)((function(){return function(){t((0,M.jS)())}}),[t]);(0,o.useEffect)((function(){I&&(t(D()),T(!1))}),[I,T,t]);var P=(0,w.jsx)(o.Fragment,{});P=i&&a.length>0?(0,w.jsx)(ee,{}):n?(0,w.jsx)(J,{}):(0,w.jsx)(ne,{});var O=(0,w.jsxs)(o.Fragment,{children:[(0,w.jsx)(c.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"43px"},children:b&&y?(0,w.jsx)(k,{email:y.email}):(0,w.jsx)(A,{registerEndpoint:"/api/v1/subnet/login"})}),(0,w.jsx)(S,{})]}),L=(0,w.jsx)(Q,{}),z=(0,w.jsxs)(o.Fragment,{children:[(0,w.jsx)(c.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"43px"},children:b&&y?(0,w.jsx)(k,{email:y.email}):P}),!b&&(0,w.jsx)(S,{})]}),E=m?(0,w.jsx)("div",{children:"Loading.."}):z;return(0,o.useEffect)((function(){t((0,p.Sc)("register"))}),[]),(0,w.jsxs)(o.Fragment,{children:[(0,w.jsx)(re.Z,{label:"Register to MinIO Subscription Network",actions:(0,w.jsx)(ie.Z,{})}),(0,w.jsxs)(v.Xgh,{children:[(0,w.jsxs)(x.Z,{value:j,onChange:function(e,n){t((0,M.m)(n))},indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",children:[(0,w.jsx)(h.Z,{label:"Credentials",id:"simple-tab-0","aria-controls":"simple-tab-panel-0"}),(0,w.jsx)(h.Z,{label:"API Key",id:"simple-tab-1","aria-controls":"simple-tab-panel-1"}),(0,w.jsx)(h.Z,{label:"Air-Gap",id:"simple-tab-2","aria-controls":"simple-tab-panel-2",onClick:function(){l||s||(t((0,M.K4)(!0)),u.Z.invoke("GET","/api/v1/subnet/registration-token").then((function(e){t((0,M.K4)(!1)),e&&e.regToken&&t((0,M.wz)(e.regToken))})).catch((function(e){console.error(e),t((0,p.Ih)(e)),t((0,M.K4)(!1))})))}})]}),(0,w.jsx)(g.x,{index:0,value:j,children:E}),(0,w.jsx)(g.x,{index:1,value:j,children:O}),(0,w.jsx)(g.x,{index:2,value:j,children:L})]})]})}))},74440:function(e,t,n){"use strict";n(72791);var r=n(64554),i=n(29945),o=n(80184);t.Z=function(e){var t=e.email,n=void 0===t?"":t;return(0,o.jsxs)(r.Z,{sx:{height:"67px",color:"#ffffff",display:"flex",position:"relative",top:"-30px",left:"-32px",width:"calc(100% + 64px)",alignItems:"center",justifyContent:"space-between",backgroundColor:"#2781B0",padding:"0 25px 0 25px","& .registered-box, .reg-badge-box":{display:"flex",alignItems:"center",justifyContent:"flex-start"},"& .reg-badge-box":{marginLeft:"20px","& .min-icon":{fill:"#2781B0"}}},children:[(0,o.jsxs)(r.Z,{className:"registered-box",children:[(0,o.jsx)(r.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Register status:"}),(0,o.jsxs)(r.Z,{className:"reg-badge-box",children:[(0,o.jsx)(i.SA,{}),(0,o.jsx)(r.Z,{sx:{fontWeight:600},children:"Registered"})]})]}),(0,o.jsxs)(r.Z,{className:"registered-acc-box",sx:{alignItems:"center",justifyContent:"flex-start",display:{sm:"flex",xs:"none"}},children:[(0,o.jsx)(r.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Registered to:"}),(0,o.jsx)(r.Z,{sx:{marginLeft:"8px",fontWeight:600},children:n})]})]})}},30403:function(e,t,n){"use strict";var r=n(64836);t.Z=void 0;var i=r(n(45649)),o=n(80184),s=(0,i.default)((0,o.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"}),"LockOutlined");t.Z=s},3579:function(e,t,n){"use strict";var r=n(64836);t.Z=void 0;var i=r(n(45649)),o=n(80184),s=(0,i.default)((0,o.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");t.Z=s},20165:function(e,t,n){"use strict";var r=n(64836);t.Z=void 0;var i=r(n(45649)),o=n(80184),s=(0,i.default)((0,o.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");t.Z=s},45649:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=n(28610)},31260:function(e,t,n){"use strict";var r=n(78949);t.Z=r.Z},28610:function(e,t,n){"use strict";n.r(t),n.d(t,{capitalize:function(){return i.Z},createChainedFunction:function(){return o.Z},createSvgIcon:function(){return s.Z},debounce:function(){return a.Z},deprecatedPropType:function(){return l},isMuiElement:function(){return c.Z},ownerDocument:function(){return u.Z},ownerWindow:function(){return d.Z},requirePropFactory:function(){return p},setRef:function(){return f},unstable_ClassNameGenerator:function(){return j},unstable_useEnhancedEffect:function(){return x.Z},unstable_useId:function(){return h.Z},unsupportedProp:function(){return g},useControlled:function(){return m.Z},useEventCallback:function(){return b.Z},useForkRef:function(){return v.Z},useIsFocusVisible:function(){return y.Z}});var r=n(55902),i=n(14036),o=n(31260),s=n(76189),a=n(83199);var l=function(e,t){return function(){return null}},c=n(19103),u=n(98301),d=n(17602);n(87462);var p=function(e,t){return function(){return null}},f=n(62971).Z,x=n(40162),h=n(67384);var g=function(e,t,n,r,i){return null},m=n(98278),b=n(89683),v=n(42071),y=n(23031),j={configure:function(e){r.Z.configure(e)}}},19103:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(72791);var i=function(e,t){return r.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}},76998:function(e,t,n){"use strict";var r=n(42458),i={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,s,a,l,c,u=!1;t||(t={}),n=t.debug||!1;try{if(s=r(),a=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.ariaHidden="true",c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=i[t.format]||i.default;window.clipboardData.setData(o,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(c),a.selectNodeContents(c),l.addRange(a),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),o=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(o,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(a):l.removeAllRanges()),c&&document.body.removeChild(c),s()}return u}},568:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var i=a(n(72791)),o=a(n(76998)),s=["text","onCopy","options","children"];function a(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function d(e,t){for(var n=0;n.\n\nimport React from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport { HelpIcon } from \"mds\";\n\ninterface CommentBoxProps {\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 index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: 14,\n margin: 0,\n alignItems: \"flex-start\",\n paddingTop: \"20px\",\n flexWrap: \"wrap\",\n display: \"flex\",\n },\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n },\n cssOutlinedInput: {\n borderColor: \"#EAEAEA\",\n padding: 16,\n },\n rootContainer: {\n \"& .MuiOutlinedInput-inputMultiline\": {\n ...fieldBasic.inputLabel,\n fontSize: 13,\n minHeight: 150,\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderColor: \"#07193E\",\n borderWidth: 1,\n },\n \"& textarea\": {\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n \"&:placeholder\": {\n color: \"#858585\",\n opacity: 1,\n fontWeight: 400,\n },\n },\n },\n });\n\nconst CommentBoxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n placeholder = \"\",\n classes,\n}: CommentBoxProps) => {\n let inputProps: any = { \"data-index\": index };\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n \n
\n )}\n \n )}\n\n
\n \n
\n \n \n );\n};\n\nexport default withStyles(styles)(CommentBoxWrapper);\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, { ClipboardEvent, useState } 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 VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\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 \"mds\";\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 onFocus?: () => void;\n onPaste?: (e: ClipboardEvent) => 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 });\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 onFocus,\n onPaste,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n const [toggleTextInput, setToggleTextInput] = useState(false);\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 let inputBoxWrapperIcon = overlayIcon;\n let inputBoxWrapperType = type;\n\n if (type === \"password\" && overlayIcon === null) {\n inputBoxWrapperIcon = toggleTextInput ? (\n \n ) : (\n \n );\n inputBoxWrapperType = toggleTextInput ? \"text\" : \"password\";\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 from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n FormControl,\n InputBase,\n InputLabel,\n MenuItem,\n Select,\n SelectChangeEvent,\n Tooltip,\n} from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport { HelpIcon } from \"mds\";\n\nexport interface selectorTypes {\n label: string;\n value: string;\n}\n\ninterface SelectProps {\n options: selectorTypes[];\n value: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n onChange: (e: SelectChangeEvent) => void;\n disabled?: boolean;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n fieldContainer: {\n display: \"flex\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n height: 38,\n lineHeight: 1,\n \"label + &\": {\n marginTop: theme.spacing(3),\n },\n },\n input: {\n height: 38,\n position: \"relative\",\n color: \"#07193E\",\n fontSize: 13,\n fontWeight: 600,\n padding: \"8px 20px 10px 10px\",\n border: \"#e5e5e5 1px solid\",\n borderRadius: 4,\n display: \"flex\",\n alignItems: \"center\",\n \"&:hover\": {\n borderColor: \"#393939\",\n },\n \"&:focus\": {\n backgroundColor: \"#fff\",\n },\n },\n }),\n)(InputBase);\n\nconst SelectWrapper = ({\n classes,\n id,\n name,\n onChange,\n options,\n label,\n tooltip = \"\",\n value,\n disabled = false,\n}: SelectProps) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n \n
\n )}\n \n )}\n \n }\n disabled={disabled}\n >\n {options.map((option) => (\n \n ))}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(SelectWrapper);\n","import { Box, Grid, Link } from \"@mui/material\";\nimport { Fragment, useState } from \"react\";\nimport { CopyIcon, SettingsIcon } from \"mds\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RegistrationStatusBanner from \"./RegistrationStatusBanner\";\n\nexport const FormTitle = ({\n icon = null,\n title,\n}: {\n icon?: any;\n title: any;\n}) => {\n return (\n \n {icon}\n
\n \n \n For airgap/firewalled environments it is possible to{\" \"}\n \n configure a proxy\n {\" \"}\n to connect to SUBNET .\n \n \n {displaySubnetProxy && (\n {}}\n label=\"\"\n value={proxyConfigurationCommand}\n overlayIcon={}\n extraInputProps={{\n readOnly: true,\n }}\n overlayAction={() =>\n navigator.clipboard.writeText(proxyConfigurationCommand)\n }\n />\n )}\n \n \n \n ) => {\n setDisplaySubnetProxy(event.target.checked);\n }}\n />\n \n \n \n );\n};\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport LockOutlinedIcon from \"@mui/icons-material/LockOutlined\";\nimport {\n containerForHeader,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport React, { useState } from \"react\";\nimport { InfoIcon, UsersIcon } from \"mds\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { useAppDispatch } from \"../../../store\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...containerForHeader,\n ...spacingUtils,\n });\n\ninterface IGetApiKeyModalProps {\n open: boolean;\n closeModal: () => void;\n onSet: (apiKey: string) => void;\n classes: any;\n}\n\nconst GetApiKeyModal = ({\n open,\n closeModal,\n classes,\n onSet,\n}: IGetApiKeyModalProps) => {\n const dispatch = useAppDispatch();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [showPassword, setShowPassword] = useState(false);\n const [mfaToken, setMfaToken] = useState(\"\");\n const [subnetOTP, setSubnetOTP] = useState(\"\");\n\n const onError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n closeModal();\n setEmail(\"\");\n setPassword(\"\");\n setShowPassword(false);\n setMfaToken(\"\");\n setSubnetOTP(\"\");\n };\n\n const onSuccess = (res: any) => {\n if (res.mfa_token) {\n setMfaToken(res.mfa_token);\n } else if (res.access_token) {\n invokeApi(\"GET\", `/api/v1/subnet/apikey?token=${res.access_token}`);\n } else {\n onSet(res.apiKey);\n closeModal();\n }\n };\n\n const [isLoading, invokeApi] = useApi(onSuccess, onError);\n\n const onConfirm = () => {\n if (mfaToken !== \"\") {\n invokeApi(\"POST\", \"/api/v1/subnet/login/mfa\", {\n username: email,\n otp: subnetOTP,\n mfa_token: mfaToken,\n });\n } else {\n invokeApi(\"POST\", \"/api/v1/subnet/login\", { username: email, password });\n }\n };\n\n const getDialogContent = () => {\n if (mfaToken === \"\") {\n return getCredentialsDialog();\n }\n return getMFADialog();\n };\n\n const getCredentialsDialog = () => {\n return (\n \n ) =>\n setEmail(event.target.value)\n }\n label=\"Email\"\n value={email}\n overlayIcon={}\n />\n ) =>\n setPassword(event.target.value)\n }\n label=\"Password\"\n type={showPassword ? \"text\" : \"password\"}\n value={password}\n overlayIcon={\n showPassword ? : \n }\n overlayAction={() => setShowPassword(!showPassword)}\n />\n \n );\n };\n\n const getMFADialog = () => {\n return (\n \n \n \n Two-Factor Authentication\n \n\n \n Please enter the 6-digit verification code that was sent to your\n email address. This code will be valid for 5 minutes.\n \n\n \n }\n id=\"subnet-otp\"\n name=\"subnet-otp\"\n onChange={(event: React.ChangeEvent) =>\n setSubnetOTP(event.target.value)\n }\n placeholder=\"\"\n label=\"\"\n value={subnetOTP}\n />\n \n \n \n \n );\n };\n\n return open ? (\n }\n isLoading={isLoading}\n cancelText={\"Cancel\"}\n onConfirm={onConfirm}\n onClose={closeModal}\n confirmButtonProps={{\n variant: \"callAction\",\n disabled: !email || !password || isLoading,\n hidden: true,\n }}\n cancelButtonProps={{\n disabled: isLoading,\n }}\n confirmationContent={getDialogContent()}\n />\n ) : null;\n};\n\nexport default withStyles(styles)(GetApiKeyModal);\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\";\nimport { Box, Link } from \"@mui/material\";\nimport {\n CallHomeFeatureIcon,\n DiagnosticsFeatureIcon,\n ExtraFeaturesIcon,\n HelpIconFilled,\n PerformanceFeatureIcon,\n} from \"mds\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string | React.ReactNode;\n}) => {\n return (\n \n {icon}{\" \"}\n
\n \n \n Registering this cluster with the MinIO Subscription Network (SUBNET)\n provides the following benefits in addition to the commercial license\n and SLA backed support.\n \n\n \n }\n description={`Call Home Monitoring`}\n />\n }\n description={`Health Diagnostics`}\n />\n }\n description={`Performance Analysis`}\n />\n }\n description={\n \n More Features\n \n }\n />\n \n \n );\n};\n\nexport default RegisterHelpBox;\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, useCallback, useEffect, useState } from \"react\";\nimport { Box } from \"@mui/material\";\nimport { Button, OnlineRegistrationIcon } from \"mds\";\nimport { FormTitle } from \"./utils\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport GetApiKeyModal from \"./GetApiKeyModal\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { SubnetLoginRequest, SubnetLoginResponse } from \"../License/types\";\nimport api from \"../../../common/api\";\nimport { useAppDispatch } from \"../../../store\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { spacingUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { useNavigate } from \"react-router-dom\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\ninterface IApiKeyRegister {\n classes: any;\n registerEndpoint: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...spacingUtils,\n });\n\nconst ApiKeyRegister = ({ classes, registerEndpoint }: IApiKeyRegister) => {\n const navigate = useNavigate();\n\n const [showApiKeyModal, setShowApiKeyModal] = useState(false);\n const [apiKey, setApiKey] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [fromModal, setFromModal] = useState(false);\n const dispatch = useAppDispatch();\n\n const onRegister = useCallback(() => {\n if (loading) {\n return;\n }\n setLoading(true);\n let request: SubnetLoginRequest = { apiKey };\n api\n .invoke(\"POST\", registerEndpoint, request)\n .then((resp: SubnetLoginResponse) => {\n setLoading(false);\n if (resp && resp.registered) {\n dispatch(setServerNeedsRestart(true));\n navigate(IAM_PAGES.LICENSE);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n setLoading(false);\n reset();\n });\n }, [apiKey, dispatch, loading, registerEndpoint, navigate]);\n\n useEffect(() => {\n if (fromModal) {\n onRegister();\n }\n }, [fromModal, onRegister]);\n\n const reset = () => {\n setApiKey(\"\");\n setFromModal(false);\n };\n\n return (\n \n \n }\n title={`Register cluster with API key`}\n />\n \n \n \n \n Use your MinIO Subscription Network API Key to register this\n cluster.\n \n \n ) =>\n setApiKey(event.target.value)\n }\n label=\"API Key\"\n value={apiKey}\n />\n\n \n setShowApiKeyModal(true)}\n label={\"Get from SUBNET\"}\n />\n onRegister()}\n label={\"Register\"}\n />\n setShowApiKeyModal(false)}\n onSet={(value) => {\n setApiKey(value);\n setFromModal(true);\n }}\n />\n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(ApiKeyRegister);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 {\n resetRegisterForm,\n setClusterRegistered,\n setLicenseInfo,\n setLoading,\n setLoadingLicenseInfo,\n setSelectedSubnetOrganization,\n setSubnetAccessToken,\n setSubnetMFAToken,\n setSubnetOrganizations,\n setSubnetOTP,\n} from \"./registerSlice\";\nimport api from \"../../../common/api\";\nimport {\n SubnetInfo,\n SubnetLoginRequest,\n SubnetLoginResponse,\n SubnetLoginWithMFARequest,\n SubnetRegisterRequest,\n} from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { AppState } from \"../../../store\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../common/SecureComponent/permissions\";\n\nexport const fetchLicenseInfo = createAsyncThunk(\n \"register/fetchLicenseInfo\",\n async (_, { getState, dispatch }) => {\n const state = getState() as AppState;\n\n const getSubnetInfo = hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.LICENSE],\n true,\n );\n\n const loadingLicenseInfo = state.register.loadingLicenseInfo;\n\n if (loadingLicenseInfo) {\n return;\n }\n if (getSubnetInfo) {\n dispatch(setLoadingLicenseInfo(true));\n api\n .invoke(\"GET\", `/api/v1/subnet/info`)\n .then((res: SubnetInfo) => {\n dispatch(setLicenseInfo(res));\n dispatch(setClusterRegistered(true));\n dispatch(setLoadingLicenseInfo(false));\n })\n .catch((err: ErrorResponseHandler) => {\n if (\n err.detailedError.toLowerCase() !==\n \"License is not present\".toLowerCase() &&\n err.detailedError.toLowerCase() !==\n \"license not found\".toLowerCase()\n ) {\n dispatch(setErrorSnackMessage(err));\n }\n dispatch(setClusterRegistered(false));\n dispatch(setLoadingLicenseInfo(false));\n });\n } else {\n dispatch(setLoadingLicenseInfo(false));\n }\n },\n);\n\nexport interface ClassRegisterArgs {\n token: string;\n account_id: string;\n}\n\nexport const callRegister = createAsyncThunk(\n \"register/callRegister\",\n async (args: ClassRegisterArgs, { dispatch }) => {\n const request: SubnetRegisterRequest = {\n token: args.token,\n account_id: args.account_id,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/register\", request)\n .then(() => {\n dispatch(setLoading(false));\n dispatch(setServerNeedsRestart(true));\n dispatch(resetRegisterForm());\n dispatch(fetchLicenseInfo());\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n });\n },\n);\n\nexport const subnetLoginWithMFA = createAsyncThunk(\n \"register/subnetLoginWithMFA\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const subnetEmail = state.register.subnetEmail;\n const subnetMFAToken = state.register.subnetMFAToken;\n const subnetOTP = state.register.subnetOTP;\n const loading = state.register.loading;\n\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n const request: SubnetLoginWithMFARequest = {\n username: subnetEmail,\n otp: subnetOTP,\n mfa_token: subnetMFAToken,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/login/mfa\", request)\n .then((resp: SubnetLoginResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.access_token && resp.organizations.length > 0) {\n if (resp.organizations.length === 1) {\n dispatch(\n callRegister({\n token: resp.access_token,\n account_id: resp.organizations[0].accountId.toString(),\n }),\n );\n } else {\n dispatch(setSubnetAccessToken(resp.access_token));\n dispatch(setSubnetOrganizations(resp.organizations));\n dispatch(\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString(),\n ),\n );\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n dispatch(setSubnetOTP(\"\"));\n });\n },\n);\n\nexport const subnetLogin = createAsyncThunk(\n \"register/subnetLogin\",\n async (_, { getState, rejectWithValue, dispatch }) => {\n const state = getState() as AppState;\n\n const license = state.register.license;\n const subnetPassword = state.register.subnetPassword;\n const subnetEmail = state.register.subnetEmail;\n const loading = state.register.loading;\n\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n let request: SubnetLoginRequest = {\n username: subnetEmail,\n password: subnetPassword,\n apiKey: license,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/login\", request)\n .then((resp: SubnetLoginResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.registered) {\n dispatch(resetRegisterForm());\n dispatch(fetchLicenseInfo());\n } else if (resp && resp.mfa_token) {\n dispatch(setSubnetMFAToken(resp.mfa_token));\n } else if (resp && resp.access_token && resp.organizations.length > 0) {\n dispatch(setSubnetAccessToken(resp.access_token));\n dispatch(setSubnetOrganizations(resp.organizations));\n dispatch(\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString(),\n ),\n );\n }\n })\n .catch((err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n dispatch(resetRegisterForm());\n });\n },\n);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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, useState } from \"react\";\nimport { Box, Link } from \"@mui/material\";\nimport { ClusterRegistered, FormTitle } from \"./utils\";\nimport { Button, CopyIcon, OfflineRegistrationIcon } from \"mds\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { useSelector } from \"react-redux\";\nimport CommentBoxWrapper from \"../Common/FormComponents/CommentBoxWrapper/CommentBoxWrapper\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport { fetchLicenseInfo } from \"./registerThunks\";\nimport {\n setErrorSnackMessage,\n setServerNeedsRestart,\n} from \"../../../systemSlice\";\n\nconst OfflineRegistration = () => {\n const dispatch = useAppDispatch();\n const subnetRegToken = useSelector(\n (state: AppState) => state.register.subnetRegToken,\n );\n const clusterRegistered = useSelector(\n (state: AppState) => state.register.clusterRegistered,\n );\n const licenseInfo = useSelector(\n (state: AppState) => state.register.licenseInfo,\n );\n\n const offlineRegUrl = `https://subnet.min.io/cluster/register?token=${subnetRegToken}`;\n\n const [licenseKey, setLicenseKey] = useState(\"\");\n\n const [isSaving, invokeApplyLicenseApi] = useApi(\n () => {\n dispatch(fetchLicenseInfo());\n dispatch(setServerNeedsRestart(true));\n },\n (err) => {\n dispatch(setErrorSnackMessage(err));\n },\n );\n\n const applyAirGapLicense = () => {\n invokeApplyLicenseApi(\"PUT\", `/api/v1/configs/subnet`, {\n key_values: [{ key: \"license\", value: licenseKey }],\n });\n };\n\n return (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n \n \n }\n title={`Register cluster in an Air-gap environment`}\n />\n \n\n \n \n \n \n
\n Click on the link to register this cluster in SUBNET and\n get a License Key for this Air-Gap deployment\n
\n Note: If this machine does not have internet connection,\n Copy paste the following URL in a browser where you access\n SUBNET and follow the instructions to complete the\n registration\n
\n\n \n \n {\n setLicenseKey(e.target.value);\n }}\n />\n \n \n \n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default OfflineRegistration;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { Box } from \"@mui/material\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport LockOutlinedIcon from \"@mui/icons-material/LockOutlined\";\nimport { setSubnetOTP } from \"./registerSlice\";\nimport { Button } from \"mds\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { useSelector } from \"react-redux\";\nimport { subnetLoginWithMFA } from \"./registerThunks\";\n\nconst SubnetMFAToken = () => {\n const dispatch = useAppDispatch();\n\n const subnetMFAToken = useSelector(\n (state: AppState) => state.register.subnetMFAToken,\n );\n const subnetOTP = useSelector((state: AppState) => state.register.subnetOTP);\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n \n \n \n Two-Factor Authentication\n \n\n \n Please enter the 6-digit verification code that was sent to your email\n address. This code will be valid for 5 minutes.\n \n\n \n }\n id=\"subnet-otp\"\n name=\"subnet-otp\"\n onChange={(event: React.ChangeEvent) =>\n dispatch(setSubnetOTP(event.target.value))\n }\n placeholder=\"\"\n label=\"\"\n value={subnetOTP}\n />\n \n \n dispatch(subnetLoginWithMFA())}\n disabled={\n loading ||\n subnetOTP.trim().length === 0 ||\n subnetMFAToken.trim().length === 0\n }\n variant=\"callAction\"\n label={\"Verify\"}\n />\n \n \n\n \n \n );\n};\nexport default SubnetMFAToken;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { Box } from \"@mui/material\";\nimport { FormTitle } from \"./utils\";\nimport SelectWrapper from \"../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { setLoading, setSelectedSubnetOrganization } from \"./registerSlice\";\nimport { Button } from \"mds\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { callRegister } from \"./registerThunks\";\n\nconst ClusterRegistrationForm = () => {\n const dispatch = useAppDispatch();\n\n const subnetAccessToken = useSelector(\n (state: AppState) => state.register.subnetAccessToken,\n );\n const selectedSubnetOrganization = useSelector(\n (state: AppState) => state.register.selectedSubnetOrganization,\n );\n const subnetOrganizations = useSelector(\n (state: AppState) => state.register.subnetOrganizations,\n );\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n \n \n \n \n \n \n \n dispatch(setSelectedSubnetOrganization(e.target.value as string))\n }\n label=\"Select an organization\"\n value={selectedSubnetOrganization}\n options={subnetOrganizations.map((organization) => ({\n label: organization.company,\n value: organization.accountId.toString(),\n }))}\n />\n \n () => {\n if (loading) {\n return;\n }\n dispatch(setLoading(true));\n if (subnetAccessToken && selectedSubnetOrganization) {\n dispatch(\n callRegister({\n token: subnetAccessToken,\n account_id: selectedSubnetOrganization,\n }),\n );\n }\n }}\n disabled={loading || subnetAccessToken.trim().length === 0}\n variant=\"callAction\"\n label={\"Register\"}\n />\n \n \n \n \n \n );\n};\n\nexport default ClusterRegistrationForm;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { Box } from \"@mui/material\";\nimport { FormTitle } from \"./utils\";\nimport { Button, OnlineRegistrationIcon, UsersIcon } from \"mds\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { spacingUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { useSelector } from \"react-redux\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport {\n setShowPassword,\n setSubnetEmail,\n setSubnetPassword,\n} from \"./registerSlice\";\nimport { subnetLogin } from \"./registerThunks\";\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...spacingUtils,\n }),\n);\n\nconst OnlineRegistration = () => {\n const classes = useStyles();\n const dispatch = useAppDispatch();\n\n const subnetPassword = useSelector(\n (state: AppState) => state.register.subnetPassword,\n );\n const subnetEmail = useSelector(\n (state: AppState) => state.register.subnetEmail,\n );\n const showPassword = useSelector(\n (state: AppState) => state.register.showPassword,\n );\n const loading = useSelector((state: AppState) => state.register.loading);\n\n return (\n \n \n }\n title={`Online activation of MinIO Subscription Network License`}\n />\n \n \n \n \n Use your MinIO Subscription Network login credentials to register\n this cluster.\n \n \n ) =>\n dispatch(setSubnetEmail(event.target.value))\n }\n label=\"Email\"\n value={subnetEmail}\n overlayIcon={}\n />\n ) =>\n dispatch(setSubnetPassword(event.target.value))\n }\n label=\"Password\"\n type={showPassword ? \"text\" : \"password\"}\n value={subnetPassword}\n overlayIcon={\n showPassword ? : \n }\n overlayAction={() => dispatch(setShowPassword(!showPassword))}\n />\n\n \n {\n e.preventDefault();\n window.open(`https://min.io/signup?ref=con`, \"_blank\");\n }}\n label={\"Sign up\"}\n />\n dispatch(subnetLogin())}\n label={\"Register\"}\n />\n \n \n \n \n \n \n );\n};\n\nexport default OnlineRegistration;\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, useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { spacingUtils } from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box } from \"@mui/material\";\nimport api from \"../../../common/api\";\n\nimport { SubnetRegTokenResponse } from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { useSelector } from \"react-redux\";\nimport { setErrorSnackMessage, setHelpName } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport { TabPanel } from \"../../shared/tabs\";\nimport { ClusterRegistered, ProxyConfiguration } from \"./utils\";\nimport ApiKeyRegister from \"./ApiKeyRegister\";\nimport { fetchLicenseInfo } from \"./registerThunks\";\nimport {\n resetRegisterForm,\n setCurTab,\n setLoading,\n setSubnetRegToken,\n} from \"./registerSlice\";\nimport OfflineRegistration from \"./OfflineRegistration\";\nimport SubnetMFAToken from \"./SubnetMFAToken\";\nimport ClusterRegistrationForm from \"./ClusterRegistrationForm\";\nimport OnlineRegistration from \"./OnlineRegistration\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport { PageLayout } from \"mds\";\nimport HelpMenu from \"../HelpMenu\";\n\ninterface IRegister {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...spacingUtils,\n });\n\nconst Register = ({ classes }: IRegister) => {\n const dispatch = useAppDispatch();\n\n const subnetMFAToken = useSelector(\n (state: AppState) => state.register.subnetMFAToken,\n );\n const subnetAccessToken = useSelector(\n (state: AppState) => state.register.subnetAccessToken,\n );\n\n const subnetRegToken = useSelector(\n (state: AppState) => state.register.subnetRegToken,\n );\n const subnetOrganizations = useSelector(\n (state: AppState) => state.register.subnetOrganizations,\n );\n\n const loading = useSelector((state: AppState) => state.register.loading);\n const loadingLicenseInfo = useSelector(\n (state: AppState) => state.register.loadingLicenseInfo,\n );\n const clusterRegistered = useSelector(\n (state: AppState) => state.register.clusterRegistered,\n );\n const licenseInfo = useSelector(\n (state: AppState) => state.register.licenseInfo,\n );\n const curTab = useSelector((state: AppState) => state.register.curTab);\n\n const [initialLicenseLoading, setInitialLicenseLoading] =\n useState(true);\n\n useEffect(() => {\n // when unmounted, reset\n return () => {\n dispatch(resetRegisterForm());\n };\n }, [dispatch]);\n\n const fetchSubnetRegToken = () => {\n if (loading || subnetRegToken) {\n return;\n }\n dispatch(setLoading(true));\n api\n .invoke(\"GET\", \"/api/v1/subnet/registration-token\")\n .then((resp: SubnetRegTokenResponse) => {\n dispatch(setLoading(false));\n if (resp && resp.regToken) {\n dispatch(setSubnetRegToken(resp.regToken));\n }\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n dispatch(setErrorSnackMessage(err));\n dispatch(setLoading(false));\n });\n };\n\n useEffect(() => {\n if (initialLicenseLoading) {\n dispatch(fetchLicenseInfo());\n setInitialLicenseLoading(false);\n }\n }, [initialLicenseLoading, setInitialLicenseLoading, dispatch]);\n\n let clusterRegistrationForm: JSX.Element = ;\n\n if (subnetAccessToken && subnetOrganizations.length > 0) {\n clusterRegistrationForm = ;\n } else if (subnetMFAToken) {\n clusterRegistrationForm = ;\n } else {\n clusterRegistrationForm = ;\n }\n\n const apiKeyRegistration = (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n \n )}\n \n \n \n );\n\n const offlineRegistration = ;\n\n const regUi = (\n \n \n {clusterRegistered && licenseInfo ? (\n \n ) : (\n clusterRegistrationForm\n )}\n \n\n {!clusterRegistered && }\n \n );\n\n const loadingUi =
Loading..
;\n const uiToShow = loadingLicenseInfo ? loadingUi : regUi;\n\n useEffect(() => {\n dispatch(setHelpName(\"register\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n }\n />\n\n \n , newValue: number) => {\n dispatch(setCurTab(newValue));\n }}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n aria-label=\"cluster-tabs\"\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n >\n \n \n fetchSubnetRegToken()}\n />\n \n\n \n {uiToShow}\n \n \n {apiKeyRegistration}\n \n \n {offlineRegistration}\n \n \n \n );\n};\n\nexport default withStyles(styles)(Register);\n","import React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { VerifiedIcon } from \"mds\";\n\nconst RegistrationStatusBanner = ({ email = \"\" }: { email?: string }) => {\n return (\n \n \n Register status:\n \n \n \n Registered\n \n \n \n\n \n Registered to:\n {email}\n \n \n );\n};\nexport default RegistrationStatusBanner;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"\n}), 'LockOutlined');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["withStyles","theme","createStyles","_objectSpread","fieldBasic","tooltipHelper","inputLabel","fontSize","margin","alignItems","paddingTop","flexWrap","display","textBoxContainer","flexGrow","position","cssOutlinedInput","borderColor","padding","rootContainer","minHeight","borderWidth","color","fontWeight","opacity","_ref","label","onChange","value","id","name","_ref$disabled","disabled","_ref$tooltip","tooltip","_ref$index","index","_ref$error","error","_ref$required","required","_ref$placeholder","placeholder","classes","inputProps","_jsx","React","children","_jsxs","Grid","item","xs","className","concat","fieldContainer","errorInField","InputLabel","htmlFor","tooltipContainer","Tooltip","title","placement","HelpIcon","TextField","fullWidth","multiline","rows","helperText","InputLabelProps","shrink","InputProps","notchedOutline","root","variant","inputStyles","makeStyles","inputFieldStyles","InputField","props","overlayAction","right","top","maxWidth","maxHeight","_ref$type","type","_ref$autoComplete","autoComplete","_ref$multiline","min","max","overlayId","_ref$overlayIcon","overlayIcon","_ref$overlayObject","overlayObject","_ref$extraInputProps","extraInputProps","_ref$noLabelMinWidth","noLabelMinWidth","_ref$pattern","pattern","_ref$autoFocus","autoFocus","_ref$className","onKeyPress","onFocus","onPaste","_useState","useState","_useState2","_slicedToArray","toggleTextInput","setToggleTextInput","inputBoxWrapperIcon","inputBoxWrapperType","VisibilityOffIcon","RemoveRedEyeIcon","container","clsx","inputBoxContainer","noMinWidthLabel","inputRebase","IconButton","onClick","size","disableFocusRipple","disableRipple","disableTouchRipple","SelectStyled","height","lineHeight","marginTop","spacing","input","border","borderRadius","backgroundColor","InputBase","flexFlow","options","FormControl","Select","map","option","MenuItem","FormTitle","_ref$icon","icon","Box","sx","justifyContent","ClusterRegistered","_ref2","email","Fragment","RegistrationStatusBanner","cursor","Link","href","target","style","ProxyConfiguration","proxyConfigurationCommand","displaySubnetProxy","setDisplaySubnetProxy","width","SettingsIcon","marginLeft","marginBottom","InputBoxWrapper","CopyIcon","readOnly","navigator","clipboard","writeText","FormSwitchWrapper","checked","event","sizedLabel","minWidth","containerForHeader","spacingUtils","open","closeModal","onSet","dispatch","useAppDispatch","setEmail","_useState3","_useState4","password","setPassword","_useState5","_useState6","showPassword","setShowPassword","_useState7","_useState8","mfaToken","setMfaToken","_useState9","_useState10","subnetOTP","setSubnetOTP","_useApi","useApi","res","mfa_token","access_token","invokeApi","apiKey","err","setErrorSnackMessage","_useApi2","isLoading","getCredentialsDialog","spacerBottom","UsersIcon","getMFADialog","flex","LockOutlinedIcon","ConfirmDialog","confirmText","isOpen","titleIcon","InfoIcon","cancelText","onConfirm","username","otp","onClose","confirmButtonProps","hidden","cancelButtonProps","confirmationContent","FeatureItem","description","marginRight","fontStyle","_ref2$hasMargin","hasMargin","sm","md","HelpIconFilled","CallHomeFeatureIcon","DiagnosticsFeatureIcon","PerformanceFeatureIcon","ExtraFeaturesIcon","registerEndpoint","navigate","useNavigate","showApiKeyModal","setShowApiKeyModal","setApiKey","loading","setLoading","fromModal","setFromModal","onRegister","useCallback","request","api","invoke","then","resp","registered","setServerNeedsRestart","IAM_PAGES","LICENSE","catch","reset","useEffect","OnlineRegistrationIcon","Button","spacerRight","trim","length","GetApiKeyModal","RegisterHelpBox","fetchLicenseInfo","createAsyncThunk","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_","getState","state","getSubnetInfo","wrap","_context","prev","next","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","register","loadingLicenseInfo","abrupt","setLoadingLicenseInfo","setLicenseInfo","setClusterRegistered","detailedError","toLowerCase","stop","_x","_x2","apply","arguments","callRegister","_ref4","_callee2","args","_ref3","_context2","token","account_id","resetRegisterForm","_x3","_x4","subnetLoginWithMFA","_ref6","_callee3","_ref5","subnetEmail","subnetMFAToken","_context3","rejectWithValue","organizations","accountId","toString","setSubnetAccessToken","setSubnetOrganizations","setSelectedSubnetOrganization","_x5","_x6","subnetLogin","_ref8","_callee4","_ref7","license","subnetPassword","_context4","setSubnetMFAToken","_x7","_x8","subnetRegToken","useSelector","clusterRegistered","licenseInfo","offlineRegUrl","licenseKey","setLicenseKey","isSaving","invokeApplyLicenseApi","OfflineRegistrationIcon","background","textAlign","gap","TooltipWrapper","CopyToClipboard","text","flexDirection","CommentBoxWrapper","e","key_values","key","subnetAccessToken","selectedSubnetOrganization","subnetOrganizations","SelectWrapper","organization","company","useStyles","setSubnetEmail","setSubnetPassword","preventDefault","window","curTab","initialLicenseLoading","setInitialLicenseLoading","clusterRegistrationForm","ClusterRegistrationForm","SubnetMFAToken","OnlineRegistration","apiKeyRegistration","ApiKeyRegister","offlineRegistration","OfflineRegistration","regUi","uiToShow","setHelpName","PageHeaderWrapper","actions","HelpMenu","PageLayout","Tabs","newValue","setCurTab","indicatorColor","textColor","scrollButtons","Tab","regToken","setSubnetRegToken","console","TabPanel","_ref$email","left","fill","VerifiedIcon","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","Object","defineProperty","enumerable","get","_utils","createSvgIcon","createChainedFunction","validator","reason","componentNameInError","Component","propName","componentName","location","propFullName","unstable_ClassNameGenerator","configure","generator","ClassNameGenerator","element","muiNames","indexOf","muiName","deselectCurrent","clipboardToIE11Formatting","module","debug","message","reselectPrevious","range","selection","success","document","createRange","getSelection","createElement","textContent","ariaHidden","all","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","warn","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","Error","copyKey","test","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","_typeof","obj","Symbol","iterator","constructor","prototype","_react","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","i","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_defineProperties","descriptor","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","self","TypeError","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","_React$PureComponent","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","_len","Array","_key","_this$props","elem","Children","only","_this$props2","cloneElement","PureComponent","undefined","rangeCount","active","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1690.f30e8f7f.chunk.js b/portal-ui/build/static/js/1690.f30e8f7f.chunk.js
deleted file mode 100644
index dd545a49c..000000000
--- a/portal-ui/build/static/js/1690.f30e8f7f.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1690],{14917:function(e,n,t){"use strict";t(72791);var r=t(61889),i=t(72455),o=t(80184),s=(0,i.Z)((function(e){return{headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44},"@media (max-width: 600px)":{display:"none"}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},stContainer:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:8,borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column",width:"100%"}},rightItems:{display:"flex",alignItems:"center","& button":{marginLeft:8},"@media (max-width: 600px)":{width:"100%"}}}}));n.Z=function(e){var n=e.icon,t=e.title,i=e.subTitle,a=e.actions,l=e.className,c=s();return(0,o.jsx)(r.ZP,{container:!0,children:(0,o.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(c.stContainer," ").concat(l||""),children:[(0,o.jsxs)("div",{className:c.leftItems,children:[n?(0,o.jsx)("div",{className:c.headerBarIcon,children:n}):null,(0,o.jsxs)("div",{className:c.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:t}),(0,o.jsx)("span",{className:c.headerBarSubheader,children:i})]})]}),(0,o.jsx)("div",{className:c.rightItems,children:a})]})})}},59197:function(e,n,t){"use strict";t.d(n,{Z:function(){return _}});var r=t(1413),i=t(72791),o=t(4942),s=t(63366),a=t(87462),l=t(28182),c=t(82466),u=t(94419),d=t(21217),f=(0,t(44046).ZP)(),p=t(86083),x=t(78519),h=t(85080),m=t(51184),g=t(45682),v=t(80184),y=["component","direction","spacing","divider","children","className","useFlexGap"],j=(0,h.Z)(),b=f("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,n){return n.root}});function Z(e){return(0,p.Z)({props:e,name:"MuiStack",defaultTheme:j})}function k(e,n){var t=i.Children.toArray(e).filter(Boolean);return t.reduce((function(e,r,o){return e.push(r),o0?l[t[n-1]]:"column";l[e]=r}}));r=(0,c.Z)(r,(0,m.k9)({theme:t},u,(function(e,t){return n.useFlexGap?{gap:(0,g.NA)(i,e)}:{"& > :not(style) + :not(style)":(0,o.Z)({margin:0},"margin".concat((r=t?l[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[r])),(0,g.NA)(i,e))};var r})))}return r=(0,m.dt)(t.breakpoints,r)};var w=t(66934),S=t(31402),D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.createStyledComponent,t=void 0===n?b:n,r=e.useThemeProps,o=void 0===r?Z:r,c=e.componentName,f=void 0===c?"MuiStack":c,p=t(C),h=i.forwardRef((function(e,n){var t=o(e),r=(0,x.Z)(t),i=r.component,c=void 0===i?"div":i,h=r.direction,m=void 0===h?"column":h,g=r.spacing,j=void 0===g?0:g,b=r.divider,Z=r.children,C=r.className,w=r.useFlexGap,S=void 0!==w&&w,D=(0,s.Z)(r,y),P={direction:m,spacing:j,useFlexGap:S},_=(0,u.Z)({root:["root"]},(function(e){return(0,d.Z)(f,e)}),{});return(0,v.jsx)(p,(0,a.Z)({as:c,ownerState:P,ref:n,className:(0,l.Z)(_.root,C)},D,{children:b?k(Z,b):Z}))}));return h}({createStyledComponent:(0,w.ZP)("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,n){return n.root}}),useThemeProps:function(e){return(0,S.Z)({props:e,name:"MuiStack"})}}),P=D,_=function(e){var n=e.label,t=void 0===n?null:n,i=e.value,o=void 0===i?"-":i,s=e.orientation,a=void 0===s?"column":s,l=e.stkProps,c=void 0===l?{}:l,u=e.lblProps,d=void 0===u?{}:u,f=e.valProps,p=void 0===f?{}:f;return(0,v.jsxs)(P,(0,r.Z)((0,r.Z)({direction:{xs:"column",sm:a}},c),{},{children:[(0,v.jsx)("label",(0,r.Z)((0,r.Z)({style:{marginRight:5,fontWeight:600}},d),{},{children:t})),(0,v.jsx)("label",(0,r.Z)((0,r.Z)({style:{marginRight:5,fontWeight:500}},p),{},{children:o}))]}))}},90767:function(e,n,t){"use strict";var r=t(29439),i=t(72791),o=t(31776),s=t(82342),a=t(23508),l=t(40986),c=t(29945),u=t(87995),d=t(81551),f=t(80184);n.Z=function(e){var n=e.configurationName,t=e.closeResetModalAndRefresh,p=e.resetOpen,x=(0,d.TL)(),h=(0,i.useState)(!1),m=(0,r.Z)(h,2),g=m[0],v=m[1];(0,i.useEffect)((function(){g&&o.h.configs.resetConfig(n).then((function(){v(!1),t(!0)})).catch((function(e){v(!1),x((0,u.Ih)((0,s.g)(e.error)))}))}),[t,n,g,x]);return(0,f.jsx)(a.Z,{title:"Restore Defaults",confirmText:"Yes, Reset Configuration",isOpen:p,titleIcon:(0,f.jsx)(c.NvT,{}),isLoading:g,onConfirm:function(){v(!0)},onClose:function(){t(!1)},confirmationContent:(0,f.jsxs)(i.Fragment,{children:[g&&(0,f.jsx)(l.Z,{}),(0,f.jsxs)(i.Fragment,{children:["Are you sure you want to restore these configurations to default values?",(0,f.jsx)("br",{}),(0,f.jsx)("b",{style:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"},children:"Please note that this may cause your system to not be accessible"})]})]})})}},37099:function(e,n,t){"use strict";var r=t(72791),i=t(29945),o=t(80184),s=function(e){var n=e.icon,t=e.description;return(0,o.jsxs)(i.xuv,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,o.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})};n.Z=function(e){var n=e.helpText,t=e.docLink,a=e.docText,l=e.contents;return(0,o.jsxs)(i.xuv,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px"},children:[(0,o.jsxs)(i.xuv,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,o.jsx)(i.M9A,{}),(0,o.jsx)("div",{children:n})]}),(0,o.jsxs)(i.xuv,{sx:{fontSize:"14px",marginBottom:"15px"},children:[l.map((function(e,n){return(0,o.jsxs)(r.Fragment,{children:[e.icon&&(0,o.jsx)(i.xuv,{sx:{paddingBottom:"20px"},children:(0,o.jsx)(s,{icon:e.icon,description:e.iconDescription})}),(0,o.jsx)(i.xuv,{sx:{paddingBottom:"20px"},children:e.text})]},"feature-item-".concat(n))})),(0,o.jsx)(i.xuv,{sx:{paddingBottom:"20px"},children:(0,o.jsx)("a",{href:t,target:"_blank",rel:"noopener",children:a})})]})]})}},11690:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return I}});var r=t(4942),i=t(1413),o=t(74165),s=t(15861),a=t(29439),l=t(72791),c=t(29945),u=t(31776),d=t(82342),f=t(81551),p=t(87995),x=t(79979),h=t(14917),m=t(59197),g=t(47974),v=t(37099),y=t(93433),j=t(78687),b=t(99779),Z=t(80184),k=function(e){var n=e.name;return(0,Z.jsxs)("h4",{children:[(0,Z.jsx)(c.ZyT,{style:{transform:"rotateZ(90deg)"}}),n]})},C=function(e){var n=e.blockName,t=e.results;return(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsxs)("strong",{children:[n,":"]}),(0,Z.jsx)("ul",{children:t.map((function(e,t){return(0,Z.jsx)("li",{children:e},"policy-".concat(n,"-").concat(t))}))})]})},w=function(e){var n,t,r,i,o,s,a=e.entityName,u=e.results,d=0;switch(a){case"Group":d=(null===(n=u.groups)||void 0===n?void 0:n.length)||0;break;case"Policy":d=(null===(t=u.policies)||void 0===t?void 0:t.length)||0;break;case"User":d=(null===(r=u.users)||void 0===r?void 0:r.length)||0}return(0,Z.jsxs)(c.xuv,{className:"resultElement",sx:{marginTop:50,"&:first-of-type":{marginTop:0}},children:[(0,Z.jsxs)(c.NZf,{separator:!0,sx:{fontSize:12},icon:(0,Z.jsx)(c.anK,{style:{width:17,height:17}}),actions:(0,Z.jsxs)(c.xuv,{sx:{fontSize:14},children:[(0,Z.jsx)("strong",{children:d})," Entit",1===d?"y":"ies"," Found"]}),children:[a," Mappings"]}),(0,Z.jsxs)(c.xuv,{className:"resultsList",sx:{h4:{borderBottom:"#e2e2e2 1px solid",padding:"12px 0",margin:0,marginBottom:15,display:"flex",alignItems:"center","& svg":{marginRight:10,fill:"#3C77A7"}}},children:["Group"===a&&(null===(i=u.groups)||void 0===i?void 0:i.map((function(e,n){return(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(k,{name:e.group||""}),e.policies&&(0,Z.jsx)(C,{blockName:"Policies",results:e.policies})]},"policy-res-".concat(n))}))),"User"===a&&(null===(o=u.users)||void 0===o?void 0:o.map((function(e,n){return(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(k,{name:e.user||""}),e.policies&&(0,Z.jsx)(C,{blockName:"Policies",results:e.policies})]},"users-res-".concat(n))}))),"Policy"===a&&(null===(s=u.policies)||void 0===s?void 0:s.map((function(e,n){return(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(k,{name:e.policy||""}),e.groups&&(0,Z.jsx)(C,{blockName:"Groups",results:e.groups}),e.users&&(0,Z.jsx)(C,{blockName:"Users",results:e.users})]},"policy-map-".concat(n))})))]})]})},S=t(58400),D=function(){var e=(0,f.TL)(),n=(0,l.useState)(!1),t=(0,a.Z)(n,2),r=t[0],i=t[1],o=(0,l.useState)([""]),s=(0,a.Z)(o,2),x=s[0],h=s[1],m=(0,l.useState)([""]),g=(0,a.Z)(m,2),v=g[0],k=g[1],C=(0,l.useState)(null),D=(0,a.Z)(C,2),P=D[0],_=D[1],N=(0,j.v9)((function(e){return e.createUser.selectedPolicies}));return(0,Z.jsxs)(c.xuv,{sx:{marginTop:15,paddingTop:0},children:[(0,Z.jsxs)(c.rjZ,{container:!0,sx:{marginTop:5},children:[(0,Z.jsxs)(c.rjZ,{item:!0,sm:12,md:6,lg:5,sx:{padding:10,paddingTop:0},children:[(0,Z.jsx)(c.NZf,{children:"Query Filters"}),(0,Z.jsxs)(c.xuv,{sx:{padding:"0 10px",display:"flex",flexDirection:"column",gap:40},children:[(0,Z.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,Z.jsx)(c.xuv,{sx:{display:"flex"},children:(0,Z.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Users"})}),(0,Z.jsx)(c.xuv,{sx:{overflowY:"auto",minHeight:50,maxHeight:250,"& > div > div":{width:"100%"}},children:x.map((function(e,n){return(0,Z.jsx)(c.Wzg,{id:"search-user-".concat(n),value:e,onChange:function(e){var t=(0,y.Z)(x);t[n]=e.target.value,h(t)},overlayIcon:x.length===n+1?(0,Z.jsx)(c.dtP,{}):(0,Z.jsx)(c.HFL,{}),overlayAction:function(){!function(e,n){if(e){var t=[].concat((0,y.Z)(x),[""]);h(t)}else{var r=x.filter((function(e,t){return t!==n}));h(r)}}(x.length===n+1,n)}},"search-user-".concat(n))}))})]}),(0,Z.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,Z.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Groups"}),(0,Z.jsx)(c.xuv,{sx:{overflowY:"auto",minHeight:50,maxHeight:"calc(100vh - 340px)","& > div > div":{width:"100%"}},children:v.map((function(e,n){return(0,Z.jsx)(c.Wzg,{id:"search-group-".concat(n),value:e,onChange:function(e){var t=(0,y.Z)(v);t[n]=e.target.value,k(t)},overlayIcon:v.length===n+1?(0,Z.jsx)(c.dtP,{}):(0,Z.jsx)(c.HFL,{}),overlayAction:function(){!function(e,n){if(e){var t=[].concat((0,y.Z)(v),[""]);k(t)}else{var r=v.filter((function(e,t){return t!==n}));k(r)}}(v.length===n+1,n)}},"search-group-".concat(n))}))})]}),(0,Z.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,Z.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Policies"}),(0,Z.jsx)(c.xuv,{sx:{minHeight:265,maxHeight:"calc(100vh - 740px)"},children:(0,Z.jsx)(S.Z,{selectedPolicy:N,noTitle:!0})})]})]})]}),(0,Z.jsx)(c.rjZ,{item:!0,sm:12,md:6,lg:7,sx:{padding:10,paddingTop:0,display:"flex",flexDirection:"column"},children:r?(0,Z.jsx)(c.xuv,{sx:{textAlign:"center"},children:(0,Z.jsx)(c.aNw,{})}):(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(c.NZf,{actions:(0,Z.jsx)(c.xuv,{sx:{display:"flex",flexDirection:"row",alignItems:"center",fontSize:14},children:null!==P&&void 0!==P&&P.timestamp?(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(c.wZd,{style:{width:14,height:14,marginRight:5,fill:"#BEBFBF"}}),b.ou.fromISO(P.timestamp).toFormat("D HH:mm:ss")]}):""}),children:"Query Results"}),P?(0,Z.jsxs)(c.xuv,{sx:{backgroundColor:"#FBFAFA",padding:"8px 22px",flexGrow:1,overflowY:"auto"},children:[!P.groups&&!P.users&&!P.policies&&(0,Z.jsx)(c.xuv,{sx:{textAlign:"center"},children:(0,Z.jsx)("h4",{children:"No Results Available"})}),!!P.groups&&(0,Z.jsx)(w,{results:P,entityName:"Group"}),!!P.users&&(0,Z.jsx)(w,{results:P,entityName:"User"}),!!P.policies&&(0,Z.jsx)(w,{results:P,entityName:"Policy"})]}):(0,Z.jsx)(c.xuv,{sx:{textAlign:"center"},children:"No query results yet"})]})})]}),(0,Z.jsx)(c.rjZ,{container:!0,children:(0,Z.jsx)(c.rjZ,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start",marginTop:45,padding:"0 20px"},children:(0,Z.jsx)(c.zxk,{id:"search-entity",type:"button",variant:"callAction",onClick:function(){i(!0);var n={},t=N.filter((function(e){return""!==e})),r=x.filter((function(e){return""!==e})),o=v.filter((function(e){return""!==e}));t.length>0&&(n.policies=t),r.length>0&&(n.users=r),o.length>0&&(n.groups=o),u.h.ldapEntities.getLdapEntities(n).then((function(e){_(e.data),i(!1)})).catch((function(n){e((0,p.Ih)((0,d.g)(n.error))),i(!1)}))},icon:(0,Z.jsx)(c.W1M,{}),children:"Search"})})})]})},P=t(90767),_=t(99670),N=["server_addr","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter"],I=function(){var e=(0,f.TL)(),n=x.iR,t=(0,l.useState)(!0),y=(0,a.Z)(t,2),j=y[0],b=y[1],k=(0,l.useState)(!1),C=(0,a.Z)(k,2),w=C[0],S=C[1],I=(0,l.useState)(!1),E=(0,a.Z)(I,2),A=E[0],F=E[1],L=(0,l.useState)({}),B=(0,a.Z)(L,2),R=B[0],q=B[1],T=(0,l.useState)(void 0),O=(0,a.Z)(T,2),M=O[0],z=O[1],U=(0,l.useState)(!1),G=(0,a.Z)(U,2),H=G[0],K=G[1],W=(0,l.useState)(!1),Y=(0,a.Z)(W,2),Q=Y[0],V=Y[1],$=(0,l.useState)("configuration"),X=(0,a.Z)($,2),J=X[0],ee=X[1],ne=function(){H&&M&&te(M),K(!H)},te=function(e){var n={};if(e&&e.length>0){var t=e.find((function(e){return"enable"===e.key})),r=0;e.forEach((function(e){n[e.key]=e.value,N.includes(e.key)&&e.value&&""!==e.value&&"off"!==e.value&&r++}));var i=r===N.length;t&&"on"!==t.value||!i?S(!1):S(!0),F(i)}q(n)};(0,l.useEffect)((function(){j&&u.h.configs.configInfo("identity_ldap").then((function(e){e.data.length>0&&(z(e.data[0].key_values),te(e.data[0].key_values||[])),b(!1)})).catch((function(n){b(!1),e((0,p.Ih)((0,d.g)(n.error)))}))}),[e,j]);var re=function(){var n=(0,s.Z)((0,o.Z)().mark((function n(t){return(0,o.Z)().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:V(!1),t&&(e((0,p.cN)(t)),z(void 0),q({}),S(!1),F(!1),K(!1));case 2:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}();return(0,l.useEffect)((function(){e((0,p.Sc)("LDAP"))}),[]),(0,Z.jsxs)(c.rjZ,{item:!0,xs:12,children:[Q&&(0,Z.jsx)(P.Z,{configurationName:"identity_ldap",closeResetModalAndRefresh:re,resetOpen:Q}),(0,Z.jsx)(g.Z,{label:"LDAP",actions:(0,Z.jsx)(_.Z,{})}),(0,Z.jsx)(c.Xgh,{variant:"constrained",children:(0,Z.jsx)(c.mQc,{horizontal:!0,options:[{tabConfig:{id:"configuration",label:"Configuration"},content:(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(h.Z,{title:H?"Edit Configuration":"",actions:H?null:(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(c.zxk,{id:"edit",type:"button",variant:"callAction",icon:(0,Z.jsx)(c.dY8,{}),onClick:ne,label:"Edit Configuration",disabled:j}),A&&(0,Z.jsx)(c.zxk,{id:"is-configuration-enabled",onClick:function(){return function(n){var t={key_values:[{key:"enable",value:n?"on":"off"}]};u.h.configs.setConfig("identity_ldap",t).then((function(n){S(!w),e((0,p.cN)(n.data.restart||!1)),n.data.restart||e((0,p.y1)("Configuration saved successfully"))})).catch((function(n){e((0,p.Ih)((0,d.g)(n.error)))}))}(!w)},label:w?"Disable LDAP":"Enable LDAP",variant:w?"secondary":"regular"}),(0,Z.jsx)(c.zxk,{id:"refresh-idp-config",onClick:function(){return b(!0)},label:"Refresh",icon:(0,Z.jsx)(c.DuK,{})})]})}),(0,Z.jsx)("br",{}),j?(0,Z.jsx)(c.xuv,{sx:{display:"flex",justifyContent:"center",marginTop:10},children:(0,Z.jsx)(c.aNw,{})}):(0,Z.jsx)(l.Fragment,{children:H?(0,Z.jsx)(l.Fragment,{children:(0,Z.jsxs)(c.ltY,{helpBox:(0,Z.jsx)(v.Z,{helpText:"Learn more about LDAP Configurations",contents:x.Si,docLink:"https://min.io/docs/minio/linux/operations/external-iam.html?ref=con#minio-external-iam-ad-ldap",docText:"Learn more about LDAP Configurations"}),children:[Object.entries(n).map((function(e){var n=(0,a.Z)(e,2);return function(e,n){return"toggle"===n.type?(0,Z.jsx)(c.rsf,{indicatorLabels:["Enabled","Disabled"],checked:"on"===R[e],value:"is-field-enabled",id:"is-field-enabled",name:"is-field-enabled",label:n.label,tooltip:n.tooltip,onChange:function(n){return q((0,i.Z)((0,i.Z)({},R),{},(0,r.Z)({},e,n.target.checked?"on":"off")))},description:"",disabled:!H},e):(0,Z.jsx)(c.Wzg,{id:e,required:n.required,name:e,label:n.label,tooltip:n.tooltip,error:n.hasError(R[e],H),value:R[e]?R[e]:"",onChange:function(n){return q((0,i.Z)((0,i.Z)({},R),{},(0,r.Z)({},e,n.target.value)))},placeholder:n.placeholder,disabled:!H,type:n.type},e)}(n[0],n[1])})),(0,Z.jsxs)(c.xuv,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[H&&(0,Z.jsx)(c.zxk,{id:"clear",type:"button",variant:"secondary",onClick:function(){return V(!0)},label:"Reset Configuration"}),H&&(0,Z.jsx)(c.zxk,{id:"cancel",type:"button",variant:"regular",onClick:ne,label:"Cancel"}),H&&(0,Z.jsx)(c.zxk,{id:"save-key",type:"submit",variant:"callAction",color:"primary",disabled:j||!function(){for(var e=0,t=Object.entries(n);e0?(0,h.jsxs)(o.Fragment,{children:[(0,h.jsx)(a.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,h.jsx)(c.Z,{placeholder:"Start typing to search for a Policy",onChange:function(e){P(e)},value:D,label:t?"":"Assign Policies"})}),(0,h.jsx)(a.wQF,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,i=n.checked,o=(0,r.Z)(_);i?o.push(t):o=o.filter((function(e){return e!==t})),o=o.filter((function(e){return""!==e})),m((0,f.ue)(o))},selectedItems:_,isLoading:k,records:I,entityName:"Policies",idField:"name",customPaperHeight:"200px"})]}):(0,h.jsx)(a.xuv,{sx:{textAlign:"center",padding:"10px 0"},children:"No Policies Available"})]})}},21639:function(e,n,t){"use strict";t.d(n,{KE:function(){return s},LQ:function(){return r},V2:function(){return o},g4:function(){return i}});var r=function(e,n){if(e.accessKey&&n.accessKey){if(e.accessKey>n.accessKey)return 1;if(e.accessKeyn.name?1:e.namen?1:en.policy?1:e.policy.\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\n\ninterface IScreenTitle {\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n \"@media (max-width: 600px)\": {\n display: \"none\",\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n stContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: 8,\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n width: \"100%\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"& button\": {\n marginLeft: 8,\n },\n \"@media (max-width: 600px)\": {\n width: \"100%\",\n },\n },\n}));\n\nconst ScreenTitle = ({\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n const classes = useStyles();\n return (\n \n \n
\n {icon ?
{icon}
: null}\n
\n
{title}
\n {subTitle}\n
\n
\n\n
{actions}
\n \n \n );\n};\n\nexport default ScreenTitle;\n","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\", \"className\", \"useFlexGap\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { deepmerge, unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';\nimport systemStyled from '../styled';\nimport useThemePropsSystem from '../useThemeProps';\nimport { extendSxProp } from '../styleFunctionSx';\nimport createTheme from '../createTheme';\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from '../breakpoints';\nimport { createUnarySpacing, getValue } from '../spacing';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex',\n flexDirection: 'column'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","import PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\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 * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which 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 * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\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 { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { LinearProgress } from \"@mui/material\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IResetConfiguration {\n configurationName: string;\n closeResetModalAndRefresh: (reloadConfiguration: boolean) => void;\n resetOpen: boolean;\n}\n\nconst ResetConfigurationModal = ({\n configurationName,\n closeResetModalAndRefresh,\n resetOpen,\n}: IResetConfiguration) => {\n const dispatch = useAppDispatch();\n const [resetLoading, setResetLoading] = useState(false);\n\n useEffect(() => {\n if (resetLoading) {\n api.configs\n .resetConfig(configurationName)\n .then(() => {\n setResetLoading(false);\n closeResetModalAndRefresh(true);\n })\n .catch((err) => {\n setResetLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [closeResetModalAndRefresh, configurationName, resetLoading, dispatch]);\n\n const resetConfiguration = () => {\n setResetLoading(true);\n };\n\n return (\n }\n isLoading={resetLoading}\n onConfirm={resetConfiguration}\n onClose={() => {\n closeResetModalAndRefresh(false);\n }}\n confirmationContent={\n \n {resetLoading && }\n \n Are you sure you want to restore these configurations to default\n values?\n \n \n Please note that this may cause your system to not be accessible\n \n \n \n }\n />\n );\n};\n\nexport default ResetConfigurationModal;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { HelpIconFilled, Box } from \"mds\";\n\ninterface IContent {\n icon: React.ReactNode;\n text: string;\n iconDescription: string;\n}\n\ninterface IAddIDPConfigurationHelpBoxProps {\n helpText: string;\n docLink: string;\n docText: string;\n contents: IContent[];\n}\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n
\n \n \n {contents.map((content, index) => (\n \n {content.icon && (\n \n \n \n )}\n {content.text}\n \n ))}\n \n \n {docText}\n \n \n \n \n );\n};\n\nexport default AddIDPConfigurationHelpBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { Box, CollapseCaret, GroupsMenuIcon, SectionTitle } from \"mds\";\nimport { LdapEntities } from \"api/consoleApi\";\n\ninterface IResultBlock {\n entityName: \"Group\" | \"User\" | \"Policy\";\n results: LdapEntities;\n}\n\ninterface IEntityResultName {\n name: string;\n}\n\ninterface IEntityResultItem {\n blockName: \"Policies\" | \"Groups\" | \"Users\";\n results: string[];\n}\n\nconst EntityResultTitle = ({ name }: IEntityResultName) => {\n return (\n
\n \n )}\n {!!results.groups && (\n \n )}\n {!!results.users && (\n \n )}\n {!!results.policies && (\n \n )}\n \n ) : (\n No query results yet\n )}\n \n )}\n \n \n \n \n }\n >\n Search\n \n \n \n \n );\n};\n\nexport default LDAPEntitiesQuery;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 {\n Box,\n Button,\n EditIcon,\n FormLayout,\n Grid,\n InputBox,\n Loader,\n PageLayout,\n RefreshIcon,\n Switch,\n Tabs,\n} from \"mds\";\nimport { api } from \"api\";\nimport { ConfigurationKV } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport { useAppDispatch } from \"../../../../store\";\nimport {\n setErrorSnackMessage,\n setHelpName,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { ldapFormFields, ldapHelpBoxContents } from \"../utils\";\nimport ScreenTitle from \"../../Common/ScreenTitle/ScreenTitle\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport AddIDPConfigurationHelpBox from \"../AddIDPConfigurationHelpbox\";\nimport LDAPEntitiesQuery from \"./LDAPEntitiesQuery\";\nimport ResetConfigurationModal from \"../../EventDestinations/CustomForms/ResetConfigurationModal\";\nimport HelpMenu from \"../../HelpMenu\";\n\nconst enabledConfigLDAP = [\n \"server_addr\",\n \"lookup_bind_dn\",\n \"lookup_bind_password\",\n \"user_dn_search_base_dn\",\n \"user_dn_search_filter\",\n];\n\nconst IDPLDAPConfigurationDetails = () => {\n const dispatch = useAppDispatch();\n\n const formFields = ldapFormFields;\n\n const [loading, setLoading] = useState(true);\n const [isEnabled, setIsEnabled] = useState(false);\n const [hasConfiguration, setHasConfiguration] = useState(false);\n const [fields, setFields] = useState({});\n const [record, setRecord] = useState(\n undefined,\n );\n const [editMode, setEditMode] = useState(false);\n const [resetOpen, setResetOpen] = useState(false);\n const [curTab, setCurTab] = useState(\"configuration\");\n\n const toggleEditMode = () => {\n if (editMode && record) {\n parseFields(record);\n }\n setEditMode(!editMode);\n };\n\n const parseFields = (record: ConfigurationKV[]) => {\n let fields: any = {};\n if (record && record.length > 0) {\n const enabled = record.find((item: any) => item.key === \"enable\");\n\n let totalCoincidences = 0;\n\n record.forEach((item: any) => {\n fields[item.key] = item.value;\n\n if (\n enabledConfigLDAP.includes(item.key) &&\n item.value &&\n item.value !== \"\" &&\n item.value !== \"off\"\n ) {\n totalCoincidences++;\n }\n });\n\n const hasConfig = totalCoincidences === enabledConfigLDAP.length;\n\n if ((!enabled || enabled.value === \"on\") && hasConfig) {\n setIsEnabled(true);\n } else {\n setIsEnabled(false);\n }\n\n setHasConfiguration(hasConfig);\n }\n setFields(fields);\n };\n\n useEffect(() => {\n const loadRecord = () => {\n api.configs\n .configInfo(\"identity_ldap\")\n .then((res) => {\n if (res.data.length > 0) {\n setRecord(res.data[0].key_values);\n parseFields(res.data[0].key_values || []);\n }\n setLoading(false);\n })\n .catch((err) => {\n setLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n if (loading) {\n loadRecord();\n }\n }, [dispatch, loading]);\n\n const validSave = () => {\n for (const [key, value] of Object.entries(formFields)) {\n if (\n value.required &&\n !(\n fields[key] !== undefined &&\n fields[key] !== null &&\n fields[key] !== \"\"\n )\n ) {\n return false;\n }\n }\n return true;\n };\n\n const saveRecord = () => {\n const keyVals = Object.keys(formFields).map((key) => {\n return {\n key,\n value: fields[key],\n };\n });\n\n api.configs\n .setConfig(\"identity_ldap\", {\n key_values: keyVals,\n })\n .then((res) => {\n setEditMode(false);\n setRecord(keyVals);\n parseFields(keyVals);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const closeDeleteModalAndRefresh = async (refresh: boolean) => {\n setResetOpen(false);\n\n if (refresh) {\n dispatch(setServerNeedsRestart(refresh));\n setRecord(undefined);\n setFields({});\n setIsEnabled(false);\n setHasConfiguration(false);\n setEditMode(false);\n }\n };\n\n const toggleConfiguration = (value: boolean) => {\n const payload = {\n key_values: [\n {\n key: \"enable\",\n value: value ? \"on\" : \"off\",\n },\n ],\n };\n\n api.configs\n .setConfig(\"identity_ldap\", payload)\n .then((res) => {\n setIsEnabled(!isEnabled);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const renderFormField = (key: string, value: any) => {\n switch (value.type) {\n case \"toggle\":\n return (\n \n setFields({ ...fields, [key]: e.target.checked ? \"on\" : \"off\" })\n }\n description=\"\"\n disabled={!editMode}\n />\n );\n default:\n return (\n ) =>\n setFields({ ...fields, [key]: e.target.value })\n }\n placeholder={value.placeholder}\n disabled={!editMode}\n type={value.type}\n />\n );\n }\n };\n\n useEffect(() => {\n dispatch(setHelpName(\"LDAP\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {resetOpen && (\n \n )}\n } />\n \n \n \n }\n onClick={toggleEditMode}\n label={\"Edit Configuration\"}\n disabled={loading}\n />\n {hasConfiguration && (\n toggleConfiguration(!isEnabled)}\n label={isEnabled ? \"Disable LDAP\" : \"Enable LDAP\"}\n variant={isEnabled ? \"secondary\" : \"regular\"}\n />\n )}\n setLoading(true)}\n label={\"Refresh\"}\n icon={}\n />\n \n ) : null\n }\n />\n \n {loading ? (\n \n \n \n ) : (\n \n {editMode ? (\n \n \n }\n >\n {Object.entries(formFields).map(([key, value]) =>\n renderFormField(key, value),\n )}\n \n {editMode && (\n setResetOpen(true)}\n label={\"Reset Configuration\"}\n />\n )}\n {editMode && (\n \n )}\n {editMode && (\n \n )}\n \n \n \n ) : (\n \n \n \n {hasConfiguration && (\n \n {Object.entries(formFields).map(\n ([key, value]) => (\n \n ),\n )}\n \n )}\n \n \n )}\n \n )}\n \n ),\n },\n {\n tabConfig: {\n id: \"entities\",\n label: \"Entities\",\n disabled: !hasConfiguration || !isEnabled,\n },\n content: (\n \n {hasConfiguration && (\n \n \n \n )}\n \n ),\n },\n ]}\n currentTabOrPath={curTab}\n onTabClick={(newTab) => {\n setCurTab(newTab);\n setEditMode(false);\n }}\n />\n \n \n );\n};\n\nexport default IDPLDAPConfigurationDetails;\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 LoginIcon from \"@mui/icons-material/Login\";\nimport { LockIcon } from \"mds\";\n\nexport const ldapHelpBoxContents = [\n {\n text: \"MinIO supports using an Active Directory or LDAP (AD/LDAP) service for external management of user identities. Configuring an external IDentity Provider (IDP) enables Single-Sign On (SSO) workflows, where applications authenticate against the external IDP before accessing MinIO.\",\n icon: ,\n iconDescription: \"Create Configurations\",\n },\n {\n text: \"MinIO queries the configured Active Directory / LDAP server to verify the credentials specified by the application and optionally return a list of groups in which the user has membership. MinIO supports two modes (Lookup-Bind Mode and Username-Bind Mode) for performing these queries\",\n icon: null,\n iconDescription: \"\",\n },\n {\n text: \"MinIO recommends using Lookup-Bind mode as the preferred method for verifying AD/LDAP credentials. Username-Bind mode is a legacy method retained for backwards compatibility only.\",\n icon: null,\n iconDescription: \"\",\n },\n];\n\nexport const openIDHelpBoxContents = [\n {\n text: \"MinIO supports using an OpenID Connect (OIDC) compatible IDentity Provider (IDP) such as Okta, KeyCloak, Dex, Google, or Facebook for external management of user identities.\",\n icon: ,\n iconDescription: \"Create Configurations\",\n },\n {\n text: \"Configuring an external IDP enables Single-Sign On workflows, where applications authenticate against the external IDP before accessing MinIO.\",\n icon: null,\n iconDescription: \"\",\n },\n];\n\nexport const openIDFormFields = {\n config_url: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Config URL is required\" : \"\";\n },\n label: \"Config URL\",\n tooltip: \"Config URL for identity provider configuration\",\n placeholder:\n \"https://identity-provider-url/.well-known/openid-configuration\",\n type: \"text\",\n },\n client_id: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Client ID is required\" : \"\";\n },\n label: \"Client ID\",\n tooltip: \"Identity provider Client ID\",\n placeholder: \"Enter Client ID\",\n type: \"text\",\n },\n client_secret: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Client Secret is required\" : \"\";\n },\n label: \"Client Secret\",\n tooltip: \"Identity provider Client Secret\",\n placeholder: \"Enter Client Secret\",\n type: \"password\",\n },\n claim_name: {\n required: false,\n label: \"Claim Name\",\n tooltip: \"Claim from which MinIO will read the policy or role to use\",\n placeholder: \"Enter Claim Name\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n display_name: {\n required: false,\n label: \"Display Name\",\n tooltip: \"\",\n placeholder: \"Enter Display Name\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n claim_prefix: {\n required: false,\n label: \"Claim Prefix\",\n tooltip: \"\",\n placeholder: \"Enter Claim Prefix\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n scopes: {\n required: false,\n label: \"Scopes\",\n tooltip: \"\",\n placeholder: \"openid,profile,email\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n redirect_uri: {\n required: false,\n label: \"Redirect URI\",\n tooltip: \"\",\n placeholder: \"https://console-endpoint-url/oauth_callback\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n role_policy: {\n required: false,\n label: \"Role Policy\",\n tooltip: \"\",\n placeholder: \"readonly\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n claim_userinfo: {\n required: false,\n label: \"Claim User Info\",\n tooltip: \"\",\n placeholder: \"Claim User Info\",\n type: \"toggle\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n redirect_uri_dynamic: {\n required: false,\n label: \"Redirect URI Dynamic\",\n tooltip: \"\",\n placeholder: \"Redirect URI Dynamic\",\n type: \"toggle\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n};\n\nexport const ldapFormFields = {\n server_insecure: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Server Address is required\" : \"\";\n },\n label: \"Server Insecure\",\n tooltip: \"Disable SSL certificate verification \",\n placeholder: \"myldapserver.com:636\",\n type: \"toggle\",\n },\n server_addr: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Server Address is required\" : \"\";\n },\n label: \"Server Address\",\n tooltip: 'AD/LDAP server address e.g. \"myldapserver.com:636\"',\n placeholder: \"myldapserver.com:636\",\n type: \"text\",\n },\n lookup_bind_dn: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Lookup Bind DN is required\" : \"\";\n },\n label: \"Lookup Bind DN\",\n tooltip:\n \"DN (Distinguished Name) for LDAP read-only service account used to perform DN and group lookups\",\n placeholder: \"cn=admin,dc=min,dc=io\",\n type: \"text\",\n },\n lookup_bind_password: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Lookup Bind Password is required\" : \"\";\n },\n label: \"Lookup Bind Password\",\n tooltip:\n \"Password for LDAP read-only service account used to perform DN and group lookups\",\n placeholder: \"admin\",\n type: \"password\",\n },\n user_dn_search_base_dn: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"User DN Search Base DN is required\" : \"\";\n },\n label: \"User DN Search Base\",\n tooltip: \"\",\n placeholder: \"DC=example,DC=net\",\n type: \"text\",\n },\n user_dn_search_filter: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"User DN Search Filter is required\" : \"\";\n },\n label: \"User DN Search Filter\",\n tooltip: \"\",\n placeholder: \"(sAMAcountName=%s)\",\n type: \"text\",\n },\n group_search_base_dn: {\n required: false,\n hasError: (s: string, editMode: boolean) => \"\",\n label: \"Group Search Base DN\",\n tooltip: \"\",\n placeholder: \"ou=swengg,dc=min,dc=io\",\n type: \"text\",\n },\n group_search_filter: {\n required: false,\n hasError: (s: string, editMode: boolean) => \"\",\n label: \"Group Search Filter\",\n tooltip: \"\",\n placeholder: \"(&(objectclass=groupofnames)(member=%d))\",\n type: \"text\",\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 .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { LinearProgress } from \"@mui/material\";\nimport { DataTable, Grid, Box } from \"mds\";\nimport { policySort } from \"../../../utils/sortFunctions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"../../../api\";\nimport {\n Error,\n HttpResponse,\n ListPoliciesResponse,\n} from \"../../../api/consoleApi\";\n\ninterface ISelectPolicyProps {\n selectedPolicy?: string[];\n noTitle?: boolean;\n}\n\nconst PolicySelectors = ({ noTitle = false }: ISelectPolicyProps) => {\n const dispatch = useAppDispatch();\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const currentPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n\n const fetchPolicies = useCallback(() => {\n isLoading(true);\n\n api.policies\n .listPolicies()\n .then((res: HttpResponse) => {\n const policies = res.data.policies ?? [];\n isLoading(false);\n setRecords(policies.sort(policySort));\n })\n .catch((err: ErrorResponseHandler) => {\n isLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchPolicies();\n }\n }, [loading, fetchPolicies]);\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...currentPolicies]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n // remove empty values\n elements = elements.filter((element) => element !== \"\");\n\n dispatch(setSelectedPolicies(elements));\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filter),\n );\n\n return (\n \n {loading && }\n {records.length > 0 ? (\n \n \n {\n setFilter(value);\n }}\n value={filter}\n label={!noTitle ? \"Assign Policies\" : \"\"}\n />\n \n\n \n \n ) : (\n \n No Policies Available\n \n )}\n \n );\n};\n\nexport default PolicySelectors;\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 { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z\"\n}), 'Login');\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["useStyles","makeStyles","theme","headerBarIcon","marginRight","color","palette","primary","main","width","height","display","headerBarSubheader","maxWidth","stContainer","alignItems","justifyContent","padding","borderBottom","flexFlow","titleColumn","fontSize","leftItems","rightItems","marginLeft","_ref","icon","title","subTitle","actions","className","classes","_jsx","Grid","container","children","_jsxs","item","xs","concat","style","margin","createStyled","_excluded","defaultTheme","createTheme","defaultCreateStyledComponent","systemStyled","name","slot","overridesResolver","props","styles","root","useThemePropsDefault","useThemePropsSystem","joinChildren","separator","childrenArray","React","toArray","filter","Boolean","reduce","output","child","index","push","length","key","ownerState","_extends","flexDirection","handleBreakpoints","resolveBreakpointValues","values","direction","breakpoints","propValue","spacing","transformer","createUnarySpacing","base","Object","keys","acc","breakpoint","directionValues","spacingValues","forEach","previousDirectionValue","deepmerge","useFlexGap","gap","getValue","_defineProperty","row","column","mergeBreakpointsInOrder","Stack","options","arguments","undefined","_options$createStyled","createStyledComponent","_options$useThemeProp","useThemeProps","_options$componentNam","componentName","StackRoot","inProps","ref","themeProps","extendSxProp","_props$component","component","_props$direction","_props$spacing","divider","_props$useFlexGap","other","_objectWithoutPropertiesLoose","composeClasses","generateUtilityClass","as","clsx","createStack","styled","_ref$label","label","_ref$value","value","_ref$orientation","orientation","_ref$stkProps","stkProps","_ref$lblProps","lblProps","_ref$valProps","valProps","_objectSpread","sm","fontWeight","configurationName","closeResetModalAndRefresh","resetOpen","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","resetLoading","setResetLoading","useEffect","api","configs","resetConfig","then","catch","err","setErrorSnackMessage","errorToHandler","error","ConfirmDialog","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onClose","confirmationContent","Fragment","LinearProgress","whiteSpace","wordWrap","FeatureItem","description","Box","sx","marginBottom","fontStyle","_ref2","helpText","docLink","docText","contents","flex","border","borderRadius","paddingBottom","HelpIconFilled","map","content","iconDescription","text","href","target","rel","EntityResultTitle","CollapseCaret","transform","EntityResultItems","blockName","results","res","_ref3","_results$groups","_results$policies","_results$users","_results$groups2","_results$users2","_results$policies2","entityName","entityLength","groups","policies","users","marginTop","SectionTitle","GroupsMenuIcon","h4","fill","groupData","group","user","policy","loading","setLoading","_useState3","_useState4","setUsers","_useState5","_useState6","setGroups","_useState7","_useState8","setResults","selectedPolicies","useSelector","state","createUser","paddingTop","md","lg","withBorders","overflowY","minHeight","maxHeight","userDat","InputBox","id","onChange","e","usersElements","_toConsumableArray","overlayIcon","AddIcon","RemoveIcon","overlayAction","addItem","alterUsers","filteredUsers","_","indx","alterUsersList","groupDat","groupsElements","alterGroups","filteredGroups","alterGroupsList","PolicySelectors","selectedPolicy","noTitle","textAlign","Loader","timestamp","TimeIcon","DateTime","fromISO","toFormat","backgroundColor","flexGrow","LDAPResultsBlock","Button","type","variant","onClick","data","cleanPolicies","pol","cleanUsers","usr","cleanGroups","grp","ldapEntities","getLdapEntities","result","SearchIcon","enabledConfigLDAP","formFields","ldapFormFields","isEnabled","setIsEnabled","hasConfiguration","setHasConfiguration","fields","setFields","_useState9","_useState10","record","setRecord","_useState11","_useState12","editMode","setEditMode","_useState13","_useState14","setResetOpen","_useState15","_useState16","curTab","setCurTab","toggleEditMode","parseFields","enabled","find","totalCoincidences","includes","hasConfig","configInfo","key_values","closeDeleteModalAndRefresh","_asyncToGenerator","_regeneratorRuntime","mark","_callee","refresh","wrap","_context","prev","next","setServerNeedsRestart","stop","_x","apply","setHelpName","ResetConfigurationModal","PageHeaderWrapper","HelpMenu","PageLayout","Tabs","horizontal","tabConfig","ScreenTitle","EditIcon","disabled","payload","setConfig","restart","setSnackBarMessage","toggleConfiguration","RefreshIcon","FormLayout","helpBox","AddIDPConfigurationHelpBox","ldapHelpBoxContents","entries","Switch","indicatorLabels","checked","tooltip","required","hasError","placeholder","renderFormField","_i","_Object$entries","_Object$entries$_i","validSave","keyVals","gridTemplateColumns","gridAutoFlow","LabelValuePair","_ref5","_ref6","LDAPEntitiesQuery","currentTabOrPath","onTabClick","newTab","LoginIcon","openIDHelpBoxContents","LockIcon","openIDFormFields","config_url","s","client_id","client_secret","claim_name","display_name","claim_prefix","scopes","redirect_uri","role_policy","claim_userinfo","redirect_uri_dynamic","server_insecure","server_addr","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter","group_search_base_dn","group_search_filter","_ref$noTitle","records","setRecords","setFilter","currentPolicies","fetchPolicies","useCallback","listPolicies","_res$data$policies","sort","policySort","setModalErrorSnackMessage","filteredRecords","elementItem","SearchBox","DataTable","columns","elementKey","onSelect","targetD","elements","element","setSelectedPolicies","selectedItems","idField","customPaperHeight","usersSort","a","b","accessKey","stringSort","policyDetailsSort","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","defineProperty","enumerable","get","_utils","createSvgIcon","createChainedFunction","validator","reason","componentNameInError","Component","propName","location","propFullName","unstable_ClassNameGenerator","configure","generator","ClassNameGenerator","muiNames","indexOf","muiName","_len","funcs","Array","_key","func","_len2","args","_key2","this","module","obj","__esModule"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1690.fa631de9.chunk.js b/portal-ui/build/static/js/1690.fa631de9.chunk.js
new file mode 100644
index 000000000..dd1832073
--- /dev/null
+++ b/portal-ui/build/static/js/1690.fa631de9.chunk.js
@@ -0,0 +1,2 @@
+(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1690],{14917:function(e,n,t){"use strict";t(72791);var r=t(61889),i=t(72455),o=t(80184),s=(0,i.Z)((function(e){return{headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44},"@media (max-width: 600px)":{display:"none"}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},stContainer:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:8,borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column",width:"100%"}},rightItems:{display:"flex",alignItems:"center","& button":{marginLeft:8},"@media (max-width: 600px)":{width:"100%"}}}}));n.Z=function(e){var n=e.icon,t=e.title,i=e.subTitle,a=e.actions,l=e.className,c=s();return(0,o.jsx)(r.ZP,{container:!0,children:(0,o.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(c.stContainer," ").concat(l||""),children:[(0,o.jsxs)("div",{className:c.leftItems,children:[n?(0,o.jsx)("div",{className:c.headerBarIcon,children:n}):null,(0,o.jsxs)("div",{className:c.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:t}),(0,o.jsx)("span",{className:c.headerBarSubheader,children:i})]})]}),(0,o.jsx)("div",{className:c.rightItems,children:a})]})})}},45902:function(e,n,t){"use strict";var r=t(1413),i=(t(72791),t(1582)),o=t(80184);n.Z=function(e){var n=e.label,t=void 0===n?null:n,s=e.value,a=void 0===s?"-":s,l=e.orientation,c=void 0===l?"column":l,u=e.stkProps,d=void 0===u?{}:u,f=e.lblProps,p=void 0===f?{}:f,x=e.valProps,h=void 0===x?{}:x;return(0,o.jsxs)(i.Z,(0,r.Z)((0,r.Z)({direction:{xs:"column",sm:c}},d),{},{children:[(0,o.jsx)("label",(0,r.Z)((0,r.Z)({style:{marginRight:5,fontWeight:600}},p),{},{children:t})),(0,o.jsx)("label",(0,r.Z)((0,r.Z)({style:{marginRight:5,fontWeight:500}},h),{},{children:a}))]}))}},90767:function(e,n,t){"use strict";var r=t(29439),i=t(72791),o=t(31776),s=t(82342),a=t(23508),l=t(40986),c=t(29945),u=t(87995),d=t(81551),f=t(80184);n.Z=function(e){var n=e.configurationName,t=e.closeResetModalAndRefresh,p=e.resetOpen,x=(0,d.TL)(),h=(0,i.useState)(!1),m=(0,r.Z)(h,2),g=m[0],v=m[1];(0,i.useEffect)((function(){g&&o.h.configs.resetConfig(n).then((function(){v(!1),t(!0)})).catch((function(e){v(!1),x((0,u.Ih)((0,s.g)(e.error)))}))}),[t,n,g,x]);return(0,f.jsx)(a.Z,{title:"Restore Defaults",confirmText:"Yes, Reset Configuration",isOpen:p,titleIcon:(0,f.jsx)(c.NvT,{}),isLoading:g,onConfirm:function(){v(!0)},onClose:function(){t(!1)},confirmationContent:(0,f.jsxs)(i.Fragment,{children:[g&&(0,f.jsx)(l.Z,{}),(0,f.jsxs)(i.Fragment,{children:["Are you sure you want to restore these configurations to default values?",(0,f.jsx)("br",{}),(0,f.jsx)("b",{style:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"},children:"Please note that this may cause your system to not be accessible"})]})]})})}},37099:function(e,n,t){"use strict";var r=t(72791),i=t(29945),o=t(80184),s=function(e){var n=e.icon,t=e.description;return(0,o.jsxs)(i.xuv,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,o.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})};n.Z=function(e){var n=e.helpText,t=e.docLink,a=e.docText,l=e.contents;return(0,o.jsxs)(i.xuv,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px"},children:[(0,o.jsxs)(i.xuv,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px",paddingBottom:"20px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,o.jsx)(i.M9A,{}),(0,o.jsx)("div",{children:n})]}),(0,o.jsxs)(i.xuv,{sx:{fontSize:"14px",marginBottom:"15px"},children:[l.map((function(e,n){return(0,o.jsxs)(r.Fragment,{children:[e.icon&&(0,o.jsx)(i.xuv,{sx:{paddingBottom:"20px"},children:(0,o.jsx)(s,{icon:e.icon,description:e.iconDescription})}),(0,o.jsx)(i.xuv,{sx:{paddingBottom:"20px"},children:e.text})]},"feature-item-".concat(n))})),(0,o.jsx)(i.xuv,{sx:{paddingBottom:"20px"},children:(0,o.jsx)("a",{href:t,target:"_blank",rel:"noopener",children:a})})]})]})}},11690:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return I}});var r=t(4942),i=t(1413),o=t(74165),s=t(15861),a=t(29439),l=t(72791),c=t(29945),u=t(31776),d=t(82342),f=t(81551),p=t(87995),x=t(79979),h=t(14917),m=t(45902),g=t(47974),v=t(37099),y=t(93433),j=t(78687),b=t(99779),Z=t(80184),k=function(e){var n=e.name;return(0,Z.jsxs)("h4",{children:[(0,Z.jsx)(c.ZyT,{style:{transform:"rotateZ(90deg)"}}),n]})},C=function(e){var n=e.blockName,t=e.results;return(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsxs)("strong",{children:[n,":"]}),(0,Z.jsx)("ul",{children:t.map((function(e,t){return(0,Z.jsx)("li",{children:e},"policy-".concat(n,"-").concat(t))}))})]})},w=function(e){var n,t,r,i,o,s,a=e.entityName,u=e.results,d=0;switch(a){case"Group":d=(null===(n=u.groups)||void 0===n?void 0:n.length)||0;break;case"Policy":d=(null===(t=u.policies)||void 0===t?void 0:t.length)||0;break;case"User":d=(null===(r=u.users)||void 0===r?void 0:r.length)||0}return(0,Z.jsxs)(c.xuv,{className:"resultElement",sx:{marginTop:50,"&:first-of-type":{marginTop:0}},children:[(0,Z.jsxs)(c.NZf,{separator:!0,sx:{fontSize:12},icon:(0,Z.jsx)(c.anK,{style:{width:17,height:17}}),actions:(0,Z.jsxs)(c.xuv,{sx:{fontSize:14},children:[(0,Z.jsx)("strong",{children:d})," Entit",1===d?"y":"ies"," Found"]}),children:[a," Mappings"]}),(0,Z.jsxs)(c.xuv,{className:"resultsList",sx:{h4:{borderBottom:"#e2e2e2 1px solid",padding:"12px 0",margin:0,marginBottom:15,display:"flex",alignItems:"center","& svg":{marginRight:10,fill:"#3C77A7"}}},children:["Group"===a&&(null===(i=u.groups)||void 0===i?void 0:i.map((function(e,n){return(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(k,{name:e.group||""}),e.policies&&(0,Z.jsx)(C,{blockName:"Policies",results:e.policies})]},"policy-res-".concat(n))}))),"User"===a&&(null===(o=u.users)||void 0===o?void 0:o.map((function(e,n){return(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(k,{name:e.user||""}),e.policies&&(0,Z.jsx)(C,{blockName:"Policies",results:e.policies})]},"users-res-".concat(n))}))),"Policy"===a&&(null===(s=u.policies)||void 0===s?void 0:s.map((function(e,n){return(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(k,{name:e.policy||""}),e.groups&&(0,Z.jsx)(C,{blockName:"Groups",results:e.groups}),e.users&&(0,Z.jsx)(C,{blockName:"Users",results:e.users})]},"policy-map-".concat(n))})))]})]})},S=t(58400),D=function(){var e=(0,f.TL)(),n=(0,l.useState)(!1),t=(0,a.Z)(n,2),r=t[0],i=t[1],o=(0,l.useState)([""]),s=(0,a.Z)(o,2),x=s[0],h=s[1],m=(0,l.useState)([""]),g=(0,a.Z)(m,2),v=g[0],k=g[1],C=(0,l.useState)(null),D=(0,a.Z)(C,2),P=D[0],_=D[1],N=(0,j.v9)((function(e){return e.createUser.selectedPolicies}));return(0,Z.jsxs)(c.xuv,{sx:{marginTop:15,paddingTop:0},children:[(0,Z.jsxs)(c.rjZ,{container:!0,sx:{marginTop:5},children:[(0,Z.jsxs)(c.rjZ,{item:!0,sm:12,md:6,lg:5,sx:{padding:10,paddingTop:0},children:[(0,Z.jsx)(c.NZf,{children:"Query Filters"}),(0,Z.jsxs)(c.xuv,{sx:{padding:"0 10px",display:"flex",flexDirection:"column",gap:40},children:[(0,Z.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,Z.jsx)(c.xuv,{sx:{display:"flex"},children:(0,Z.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Users"})}),(0,Z.jsx)(c.xuv,{sx:{overflowY:"auto",minHeight:50,maxHeight:250,"& > div > div":{width:"100%"}},children:x.map((function(e,n){return(0,Z.jsx)(c.Wzg,{id:"search-user-".concat(n),value:e,onChange:function(e){var t=(0,y.Z)(x);t[n]=e.target.value,h(t)},overlayIcon:x.length===n+1?(0,Z.jsx)(c.dtP,{}):(0,Z.jsx)(c.HFL,{}),overlayAction:function(){!function(e,n){if(e){var t=[].concat((0,y.Z)(x),[""]);h(t)}else{var r=x.filter((function(e,t){return t!==n}));h(r)}}(x.length===n+1,n)}},"search-user-".concat(n))}))})]}),(0,Z.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,Z.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Groups"}),(0,Z.jsx)(c.xuv,{sx:{overflowY:"auto",minHeight:50,maxHeight:"calc(100vh - 340px)","& > div > div":{width:"100%"}},children:v.map((function(e,n){return(0,Z.jsx)(c.Wzg,{id:"search-group-".concat(n),value:e,onChange:function(e){var t=(0,y.Z)(v);t[n]=e.target.value,k(t)},overlayIcon:v.length===n+1?(0,Z.jsx)(c.dtP,{}):(0,Z.jsx)(c.HFL,{}),overlayAction:function(){!function(e,n){if(e){var t=[].concat((0,y.Z)(v),[""]);k(t)}else{var r=v.filter((function(e,t){return t!==n}));k(r)}}(v.length===n+1,n)}},"search-group-".concat(n))}))})]}),(0,Z.jsxs)(c.xuv,{sx:{padding:"10px 26px"},withBorders:!0,children:[(0,Z.jsx)("h4",{style:{margin:0,marginBottom:10,fontSize:14},children:"Policies"}),(0,Z.jsx)(c.xuv,{sx:{minHeight:265,maxHeight:"calc(100vh - 740px)"},children:(0,Z.jsx)(S.Z,{selectedPolicy:N,noTitle:!0})})]})]})]}),(0,Z.jsx)(c.rjZ,{item:!0,sm:12,md:6,lg:7,sx:{padding:10,paddingTop:0,display:"flex",flexDirection:"column"},children:r?(0,Z.jsx)(c.xuv,{sx:{textAlign:"center"},children:(0,Z.jsx)(c.aNw,{})}):(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(c.NZf,{actions:(0,Z.jsx)(c.xuv,{sx:{display:"flex",flexDirection:"row",alignItems:"center",fontSize:14},children:null!==P&&void 0!==P&&P.timestamp?(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(c.wZd,{style:{width:14,height:14,marginRight:5,fill:"#BEBFBF"}}),b.ou.fromISO(P.timestamp).toFormat("D HH:mm:ss")]}):""}),children:"Query Results"}),P?(0,Z.jsxs)(c.xuv,{sx:{backgroundColor:"#FBFAFA",padding:"8px 22px",flexGrow:1,overflowY:"auto"},children:[!P.groups&&!P.users&&!P.policies&&(0,Z.jsx)(c.xuv,{sx:{textAlign:"center"},children:(0,Z.jsx)("h4",{children:"No Results Available"})}),!!P.groups&&(0,Z.jsx)(w,{results:P,entityName:"Group"}),!!P.users&&(0,Z.jsx)(w,{results:P,entityName:"User"}),!!P.policies&&(0,Z.jsx)(w,{results:P,entityName:"Policy"})]}):(0,Z.jsx)(c.xuv,{sx:{textAlign:"center"},children:"No query results yet"})]})})]}),(0,Z.jsx)(c.rjZ,{container:!0,children:(0,Z.jsx)(c.rjZ,{item:!0,xs:12,sx:{display:"flex",justifyContent:"flex-start",marginTop:45,padding:"0 20px"},children:(0,Z.jsx)(c.zxk,{id:"search-entity",type:"button",variant:"callAction",onClick:function(){i(!0);var n={},t=N.filter((function(e){return""!==e})),r=x.filter((function(e){return""!==e})),o=v.filter((function(e){return""!==e}));t.length>0&&(n.policies=t),r.length>0&&(n.users=r),o.length>0&&(n.groups=o),u.h.ldapEntities.getLdapEntities(n).then((function(e){_(e.data),i(!1)})).catch((function(n){e((0,p.Ih)((0,d.g)(n.error))),i(!1)}))},icon:(0,Z.jsx)(c.W1M,{}),children:"Search"})})})]})},P=t(90767),_=t(99670),N=["server_addr","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter"],I=function(){var e=(0,f.TL)(),n=x.iR,t=(0,l.useState)(!0),y=(0,a.Z)(t,2),j=y[0],b=y[1],k=(0,l.useState)(!1),C=(0,a.Z)(k,2),w=C[0],S=C[1],I=(0,l.useState)(!1),E=(0,a.Z)(I,2),A=E[0],F=E[1],L=(0,l.useState)({}),B=(0,a.Z)(L,2),R=B[0],q=B[1],T=(0,l.useState)(void 0),O=(0,a.Z)(T,2),M=O[0],z=O[1],U=(0,l.useState)(!1),G=(0,a.Z)(U,2),H=G[0],K=G[1],W=(0,l.useState)(!1),Y=(0,a.Z)(W,2),Q=Y[0],V=Y[1],$=(0,l.useState)("configuration"),X=(0,a.Z)($,2),J=X[0],ee=X[1],ne=function(){H&&M&&te(M),K(!H)},te=function(e){var n={};if(e&&e.length>0){var t=e.find((function(e){return"enable"===e.key})),r=0;e.forEach((function(e){n[e.key]=e.value,N.includes(e.key)&&e.value&&""!==e.value&&"off"!==e.value&&r++}));var i=r===N.length;t&&"on"!==t.value||!i?S(!1):S(!0),F(i)}q(n)};(0,l.useEffect)((function(){j&&u.h.configs.configInfo("identity_ldap").then((function(e){e.data.length>0&&(z(e.data[0].key_values),te(e.data[0].key_values||[])),b(!1)})).catch((function(n){b(!1),e((0,p.Ih)((0,d.g)(n.error)))}))}),[e,j]);var re=function(){var n=(0,s.Z)((0,o.Z)().mark((function n(t){return(0,o.Z)().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:V(!1),t&&(e((0,p.cN)(t)),z(void 0),q({}),S(!1),F(!1),K(!1));case 2:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}();return(0,l.useEffect)((function(){e((0,p.Sc)("LDAP"))}),[]),(0,Z.jsxs)(c.rjZ,{item:!0,xs:12,children:[Q&&(0,Z.jsx)(P.Z,{configurationName:"identity_ldap",closeResetModalAndRefresh:re,resetOpen:Q}),(0,Z.jsx)(g.Z,{label:"LDAP",actions:(0,Z.jsx)(_.Z,{})}),(0,Z.jsx)(c.Xgh,{variant:"constrained",children:(0,Z.jsx)(c.mQc,{horizontal:!0,options:[{tabConfig:{id:"configuration",label:"Configuration"},content:(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(h.Z,{title:H?"Edit Configuration":"",actions:H?null:(0,Z.jsxs)(l.Fragment,{children:[(0,Z.jsx)(c.zxk,{id:"edit",type:"button",variant:"callAction",icon:(0,Z.jsx)(c.dY8,{}),onClick:ne,label:"Edit Configuration",disabled:j}),A&&(0,Z.jsx)(c.zxk,{id:"is-configuration-enabled",onClick:function(){return function(n){var t={key_values:[{key:"enable",value:n?"on":"off"}]};u.h.configs.setConfig("identity_ldap",t).then((function(n){S(!w),e((0,p.cN)(n.data.restart||!1)),n.data.restart||e((0,p.y1)("Configuration saved successfully"))})).catch((function(n){e((0,p.Ih)((0,d.g)(n.error)))}))}(!w)},label:w?"Disable LDAP":"Enable LDAP",variant:w?"secondary":"regular"}),(0,Z.jsx)(c.zxk,{id:"refresh-idp-config",onClick:function(){return b(!0)},label:"Refresh",icon:(0,Z.jsx)(c.DuK,{})})]})}),(0,Z.jsx)("br",{}),j?(0,Z.jsx)(c.xuv,{sx:{display:"flex",justifyContent:"center",marginTop:10},children:(0,Z.jsx)(c.aNw,{})}):(0,Z.jsx)(l.Fragment,{children:H?(0,Z.jsx)(l.Fragment,{children:(0,Z.jsxs)(c.ltY,{helpBox:(0,Z.jsx)(v.Z,{helpText:"Learn more about LDAP Configurations",contents:x.Si,docLink:"https://min.io/docs/minio/linux/operations/external-iam.html?ref=con#minio-external-iam-ad-ldap",docText:"Learn more about LDAP Configurations"}),children:[Object.entries(n).map((function(e){var n=(0,a.Z)(e,2);return function(e,n){return"toggle"===n.type?(0,Z.jsx)(c.rsf,{indicatorLabels:["Enabled","Disabled"],checked:"on"===R[e],value:"is-field-enabled",id:"is-field-enabled",name:"is-field-enabled",label:n.label,tooltip:n.tooltip,onChange:function(n){return q((0,i.Z)((0,i.Z)({},R),{},(0,r.Z)({},e,n.target.checked?"on":"off")))},description:"",disabled:!H},e):(0,Z.jsx)(c.Wzg,{id:e,required:n.required,name:e,label:n.label,tooltip:n.tooltip,error:n.hasError(R[e],H),value:R[e]?R[e]:"",onChange:function(n){return q((0,i.Z)((0,i.Z)({},R),{},(0,r.Z)({},e,n.target.value)))},placeholder:n.placeholder,disabled:!H,type:n.type},e)}(n[0],n[1])})),(0,Z.jsxs)(c.xuv,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[H&&(0,Z.jsx)(c.zxk,{id:"clear",type:"button",variant:"secondary",onClick:function(){return V(!0)},label:"Reset Configuration"}),H&&(0,Z.jsx)(c.zxk,{id:"cancel",type:"button",variant:"regular",onClick:ne,label:"Cancel"}),H&&(0,Z.jsx)(c.zxk,{id:"save-key",type:"submit",variant:"callAction",color:"primary",disabled:j||!function(){for(var e=0,t=Object.entries(n);e0?(0,h.jsxs)(o.Fragment,{children:[(0,h.jsx)(a.rjZ,{item:!0,xs:12,className:"inputItem",children:(0,h.jsx)(c.Z,{placeholder:"Start typing to search for a Policy",onChange:function(e){P(e)},value:D,label:t?"":"Assign Policies"})}),(0,h.jsx)(a.wQF,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,i=n.checked,o=(0,r.Z)(_);i?o.push(t):o=o.filter((function(e){return e!==t})),o=o.filter((function(e){return""!==e})),m((0,f.ue)(o))},selectedItems:_,isLoading:k,records:I,entityName:"Policies",idField:"name",customPaperHeight:"200px"})]}):(0,h.jsx)(a.xuv,{sx:{textAlign:"center",padding:"10px 0"},children:"No Policies Available"})]})}},21639:function(e,n,t){"use strict";t.d(n,{KE:function(){return s},LQ:function(){return r},V2:function(){return o},g4:function(){return i}});var r=function(e,n){if(e.accessKey&&n.accessKey){if(e.accessKey>n.accessKey)return 1;if(e.accessKeyn.name?1:e.namen?1:en.policy?1:e.policy0?c[t[n-1]]:"column";c[e]=r}}));i=(0,l.Z)(i,(0,h.k9)({theme:t},u,(function(e,t){return n.useFlexGap?{gap:(0,m.NA)(s,e)}:{"& > :not(style) ~ :not(style)":(0,r.Z)({margin:0},"margin".concat((i=t?c[t]:n.direction,{row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"}[i])),(0,m.NA)(s,e))};var i})))}return i=(0,h.dt)(t.breakpoints,i)};var C=t(66934),w=t(31402),S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.createStyledComponent,t=void 0===n?j:n,r=e.useThemeProps,l=void 0===r?b:r,d=e.componentName,f=void 0===d?"MuiStack":d,x=t(k),h=s.forwardRef((function(e,n){var t=l(e),r=(0,p.Z)(t),s=r.component,d=void 0===s?"div":s,h=r.direction,m=void 0===h?"column":h,y=r.spacing,j=void 0===y?0:y,b=r.divider,k=r.children,C=r.className,w=r.useFlexGap,S=void 0!==w&&w,D=(0,i.Z)(r,v),P={direction:m,spacing:j,useFlexGap:S},_=(0,c.Z)({root:["root"]},(function(e){return(0,u.Z)(f,e)}),{});return(0,g.jsx)(x,(0,o.Z)({as:d,ownerState:P,ref:n,className:(0,a.Z)(_.root,C)},D,{children:b?Z(k,b):k}))}));return h}({createStyledComponent:(0,C.ZP)("div",{name:"MuiStack",slot:"Root",overridesResolver:function(e,n){return n.root}}),useThemeProps:function(e){return(0,w.Z)({props:e,name:"MuiStack"})}}),D=S},31260:function(e,n,t){"use strict";var r=t(78949);n.Z=r.Z},28610:function(e,n,t){"use strict";t.r(n),t.d(n,{capitalize:function(){return i.Z},createChainedFunction:function(){return o.Z},createSvgIcon:function(){return s.Z},debounce:function(){return a.Z},deprecatedPropType:function(){return l},isMuiElement:function(){return c.Z},ownerDocument:function(){return u.Z},ownerWindow:function(){return d.Z},requirePropFactory:function(){return f},setRef:function(){return p},unstable_ClassNameGenerator:function(){return b},unstable_useEnhancedEffect:function(){return x.Z},unstable_useId:function(){return h.Z},unsupportedProp:function(){return m},useControlled:function(){return g.Z},useEventCallback:function(){return v.Z},useForkRef:function(){return y.Z},useIsFocusVisible:function(){return j.Z}});var r=t(55902),i=t(14036),o=t(31260),s=t(76189),a=t(83199);var l=function(e,n){return function(){return null}},c=t(19103),u=t(98301),d=t(17602);t(87462);var f=function(e,n){return function(){return null}},p=t(62971).Z,x=t(40162),h=t(67384);var m=function(e,n,t,r,i){return null},g=t(98278),v=t(89683),y=t(42071),j=t(23031),b={configure:function(e){r.Z.configure(e)}}},19103:function(e,n,t){"use strict";t.d(n,{Z:function(){return i}});var r=t(72791);var i=function(e,n){return r.isValidElement(e)&&-1!==n.indexOf(e.type.muiName)}},78949:function(e,n,t){"use strict";function r(){for(var e=arguments.length,n=new Array(e),t=0;t.\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\n\ninterface IScreenTitle {\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n \"@media (max-width: 600px)\": {\n display: \"none\",\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n stContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: 8,\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n width: \"100%\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"& button\": {\n marginLeft: 8,\n },\n \"@media (max-width: 600px)\": {\n width: \"100%\",\n },\n },\n}));\n\nconst ScreenTitle = ({\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n const classes = useStyles();\n return (\n \n \n
\n {icon ?
{icon}
: null}\n
\n
{title}
\n {subTitle}\n
\n
\n\n
{actions}
\n \n \n );\n};\n\nexport default ScreenTitle;\n","import React from \"react\";\nimport { Stack } from \"@mui/material\";\n\ntype LabelValuePairProps = {\n label?: any;\n value?: any;\n orientation?: any;\n stkProps?: any;\n lblProps?: any;\n valProps?: any;\n};\n\nconst LabelValuePair = ({\n label = null,\n value = \"-\",\n orientation = \"column\",\n stkProps = {},\n lblProps = {},\n valProps = {},\n}: LabelValuePairProps) => {\n return (\n \n \n \n \n );\n};\n\nexport default LabelValuePair;\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 { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { LinearProgress } from \"@mui/material\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IResetConfiguration {\n configurationName: string;\n closeResetModalAndRefresh: (reloadConfiguration: boolean) => void;\n resetOpen: boolean;\n}\n\nconst ResetConfigurationModal = ({\n configurationName,\n closeResetModalAndRefresh,\n resetOpen,\n}: IResetConfiguration) => {\n const dispatch = useAppDispatch();\n const [resetLoading, setResetLoading] = useState(false);\n\n useEffect(() => {\n if (resetLoading) {\n api.configs\n .resetConfig(configurationName)\n .then(() => {\n setResetLoading(false);\n closeResetModalAndRefresh(true);\n })\n .catch((err) => {\n setResetLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n }\n }, [closeResetModalAndRefresh, configurationName, resetLoading, dispatch]);\n\n const resetConfiguration = () => {\n setResetLoading(true);\n };\n\n return (\n }\n isLoading={resetLoading}\n onConfirm={resetConfiguration}\n onClose={() => {\n closeResetModalAndRefresh(false);\n }}\n confirmationContent={\n \n {resetLoading && }\n \n Are you sure you want to restore these configurations to default\n values?\n \n \n Please note that this may cause your system to not be accessible\n \n \n \n }\n />\n );\n};\n\nexport default ResetConfigurationModal;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { HelpIconFilled, Box } from \"mds\";\n\ninterface IContent {\n icon: React.ReactNode;\n text: string;\n iconDescription: string;\n}\n\ninterface IAddIDPConfigurationHelpBoxProps {\n helpText: string;\n docLink: string;\n docText: string;\n contents: IContent[];\n}\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n
\n \n \n {contents.map((content, index) => (\n \n {content.icon && (\n \n \n \n )}\n {content.text}\n \n ))}\n \n \n {docText}\n \n \n \n \n );\n};\n\nexport default AddIDPConfigurationHelpBox;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { Box, CollapseCaret, GroupsMenuIcon, SectionTitle } from \"mds\";\nimport { LdapEntities } from \"api/consoleApi\";\n\ninterface IResultBlock {\n entityName: \"Group\" | \"User\" | \"Policy\";\n results: LdapEntities;\n}\n\ninterface IEntityResultName {\n name: string;\n}\n\ninterface IEntityResultItem {\n blockName: \"Policies\" | \"Groups\" | \"Users\";\n results: string[];\n}\n\nconst EntityResultTitle = ({ name }: IEntityResultName) => {\n return (\n
\n \n )}\n {!!results.groups && (\n \n )}\n {!!results.users && (\n \n )}\n {!!results.policies && (\n \n )}\n \n ) : (\n No query results yet\n )}\n \n )}\n \n \n \n \n }\n >\n Search\n \n \n \n \n );\n};\n\nexport default LDAPEntitiesQuery;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 {\n Box,\n Button,\n EditIcon,\n FormLayout,\n Grid,\n InputBox,\n Loader,\n PageLayout,\n RefreshIcon,\n Switch,\n Tabs,\n} from \"mds\";\nimport { api } from \"api\";\nimport { ConfigurationKV } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport { useAppDispatch } from \"../../../../store\";\nimport {\n setErrorSnackMessage,\n setHelpName,\n setServerNeedsRestart,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { ldapFormFields, ldapHelpBoxContents } from \"../utils\";\nimport ScreenTitle from \"../../Common/ScreenTitle/ScreenTitle\";\nimport LabelValuePair from \"../../Common/UsageBarWrapper/LabelValuePair\";\nimport PageHeaderWrapper from \"../../Common/PageHeaderWrapper/PageHeaderWrapper\";\nimport AddIDPConfigurationHelpBox from \"../AddIDPConfigurationHelpbox\";\nimport LDAPEntitiesQuery from \"./LDAPEntitiesQuery\";\nimport ResetConfigurationModal from \"../../EventDestinations/CustomForms/ResetConfigurationModal\";\nimport HelpMenu from \"../../HelpMenu\";\n\nconst enabledConfigLDAP = [\n \"server_addr\",\n \"lookup_bind_dn\",\n \"lookup_bind_password\",\n \"user_dn_search_base_dn\",\n \"user_dn_search_filter\",\n];\n\nconst IDPLDAPConfigurationDetails = () => {\n const dispatch = useAppDispatch();\n\n const formFields = ldapFormFields;\n\n const [loading, setLoading] = useState(true);\n const [isEnabled, setIsEnabled] = useState(false);\n const [hasConfiguration, setHasConfiguration] = useState(false);\n const [fields, setFields] = useState({});\n const [record, setRecord] = useState(\n undefined,\n );\n const [editMode, setEditMode] = useState(false);\n const [resetOpen, setResetOpen] = useState(false);\n const [curTab, setCurTab] = useState(\"configuration\");\n\n const toggleEditMode = () => {\n if (editMode && record) {\n parseFields(record);\n }\n setEditMode(!editMode);\n };\n\n const parseFields = (record: ConfigurationKV[]) => {\n let fields: any = {};\n if (record && record.length > 0) {\n const enabled = record.find((item: any) => item.key === \"enable\");\n\n let totalCoincidences = 0;\n\n record.forEach((item: any) => {\n fields[item.key] = item.value;\n\n if (\n enabledConfigLDAP.includes(item.key) &&\n item.value &&\n item.value !== \"\" &&\n item.value !== \"off\"\n ) {\n totalCoincidences++;\n }\n });\n\n const hasConfig = totalCoincidences === enabledConfigLDAP.length;\n\n if ((!enabled || enabled.value === \"on\") && hasConfig) {\n setIsEnabled(true);\n } else {\n setIsEnabled(false);\n }\n\n setHasConfiguration(hasConfig);\n }\n setFields(fields);\n };\n\n useEffect(() => {\n const loadRecord = () => {\n api.configs\n .configInfo(\"identity_ldap\")\n .then((res) => {\n if (res.data.length > 0) {\n setRecord(res.data[0].key_values);\n parseFields(res.data[0].key_values || []);\n }\n setLoading(false);\n })\n .catch((err) => {\n setLoading(false);\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n if (loading) {\n loadRecord();\n }\n }, [dispatch, loading]);\n\n const validSave = () => {\n for (const [key, value] of Object.entries(formFields)) {\n if (\n value.required &&\n !(\n fields[key] !== undefined &&\n fields[key] !== null &&\n fields[key] !== \"\"\n )\n ) {\n return false;\n }\n }\n return true;\n };\n\n const saveRecord = () => {\n const keyVals = Object.keys(formFields).map((key) => {\n return {\n key,\n value: fields[key],\n };\n });\n\n api.configs\n .setConfig(\"identity_ldap\", {\n key_values: keyVals,\n })\n .then((res) => {\n setEditMode(false);\n setRecord(keyVals);\n parseFields(keyVals);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const closeDeleteModalAndRefresh = async (refresh: boolean) => {\n setResetOpen(false);\n\n if (refresh) {\n dispatch(setServerNeedsRestart(refresh));\n setRecord(undefined);\n setFields({});\n setIsEnabled(false);\n setHasConfiguration(false);\n setEditMode(false);\n }\n };\n\n const toggleConfiguration = (value: boolean) => {\n const payload = {\n key_values: [\n {\n key: \"enable\",\n value: value ? \"on\" : \"off\",\n },\n ],\n };\n\n api.configs\n .setConfig(\"identity_ldap\", payload)\n .then((res) => {\n setIsEnabled(!isEnabled);\n dispatch(setServerNeedsRestart(res.data.restart || false));\n if (!res.data.restart) {\n dispatch(setSnackBarMessage(\"Configuration saved successfully\"));\n }\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n });\n };\n\n const renderFormField = (key: string, value: any) => {\n switch (value.type) {\n case \"toggle\":\n return (\n \n setFields({ ...fields, [key]: e.target.checked ? \"on\" : \"off\" })\n }\n description=\"\"\n disabled={!editMode}\n />\n );\n default:\n return (\n ) =>\n setFields({ ...fields, [key]: e.target.value })\n }\n placeholder={value.placeholder}\n disabled={!editMode}\n type={value.type}\n />\n );\n }\n };\n\n useEffect(() => {\n dispatch(setHelpName(\"LDAP\"));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {resetOpen && (\n \n )}\n } />\n \n \n \n }\n onClick={toggleEditMode}\n label={\"Edit Configuration\"}\n disabled={loading}\n />\n {hasConfiguration && (\n toggleConfiguration(!isEnabled)}\n label={isEnabled ? \"Disable LDAP\" : \"Enable LDAP\"}\n variant={isEnabled ? \"secondary\" : \"regular\"}\n />\n )}\n setLoading(true)}\n label={\"Refresh\"}\n icon={}\n />\n \n ) : null\n }\n />\n \n {loading ? (\n \n \n \n ) : (\n \n {editMode ? (\n \n \n }\n >\n {Object.entries(formFields).map(([key, value]) =>\n renderFormField(key, value),\n )}\n \n {editMode && (\n setResetOpen(true)}\n label={\"Reset Configuration\"}\n />\n )}\n {editMode && (\n \n )}\n {editMode && (\n \n )}\n \n \n \n ) : (\n \n \n \n {hasConfiguration && (\n \n {Object.entries(formFields).map(\n ([key, value]) => (\n \n ),\n )}\n \n )}\n \n \n )}\n \n )}\n \n ),\n },\n {\n tabConfig: {\n id: \"entities\",\n label: \"Entities\",\n disabled: !hasConfiguration || !isEnabled,\n },\n content: (\n \n {hasConfiguration && (\n \n \n \n )}\n \n ),\n },\n ]}\n currentTabOrPath={curTab}\n onTabClick={(newTab) => {\n setCurTab(newTab);\n setEditMode(false);\n }}\n />\n \n \n );\n};\n\nexport default IDPLDAPConfigurationDetails;\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 LoginIcon from \"@mui/icons-material/Login\";\nimport { LockIcon } from \"mds\";\n\nexport const ldapHelpBoxContents = [\n {\n text: \"MinIO supports using an Active Directory or LDAP (AD/LDAP) service for external management of user identities. Configuring an external IDentity Provider (IDP) enables Single-Sign On (SSO) workflows, where applications authenticate against the external IDP before accessing MinIO.\",\n icon: ,\n iconDescription: \"Create Configurations\",\n },\n {\n text: \"MinIO queries the configured Active Directory / LDAP server to verify the credentials specified by the application and optionally return a list of groups in which the user has membership. MinIO supports two modes (Lookup-Bind Mode and Username-Bind Mode) for performing these queries\",\n icon: null,\n iconDescription: \"\",\n },\n {\n text: \"MinIO recommends using Lookup-Bind mode as the preferred method for verifying AD/LDAP credentials. Username-Bind mode is a legacy method retained for backwards compatibility only.\",\n icon: null,\n iconDescription: \"\",\n },\n];\n\nexport const openIDHelpBoxContents = [\n {\n text: \"MinIO supports using an OpenID Connect (OIDC) compatible IDentity Provider (IDP) such as Okta, KeyCloak, Dex, Google, or Facebook for external management of user identities.\",\n icon: ,\n iconDescription: \"Create Configurations\",\n },\n {\n text: \"Configuring an external IDP enables Single-Sign On workflows, where applications authenticate against the external IDP before accessing MinIO.\",\n icon: null,\n iconDescription: \"\",\n },\n];\n\nexport const openIDFormFields = {\n config_url: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Config URL is required\" : \"\";\n },\n label: \"Config URL\",\n tooltip: \"Config URL for identity provider configuration\",\n placeholder:\n \"https://identity-provider-url/.well-known/openid-configuration\",\n type: \"text\",\n },\n client_id: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Client ID is required\" : \"\";\n },\n label: \"Client ID\",\n tooltip: \"Identity provider Client ID\",\n placeholder: \"Enter Client ID\",\n type: \"text\",\n },\n client_secret: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Client Secret is required\" : \"\";\n },\n label: \"Client Secret\",\n tooltip: \"Identity provider Client Secret\",\n placeholder: \"Enter Client Secret\",\n type: \"password\",\n },\n claim_name: {\n required: false,\n label: \"Claim Name\",\n tooltip: \"Claim from which MinIO will read the policy or role to use\",\n placeholder: \"Enter Claim Name\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n display_name: {\n required: false,\n label: \"Display Name\",\n tooltip: \"\",\n placeholder: \"Enter Display Name\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n claim_prefix: {\n required: false,\n label: \"Claim Prefix\",\n tooltip: \"\",\n placeholder: \"Enter Claim Prefix\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n scopes: {\n required: false,\n label: \"Scopes\",\n tooltip: \"\",\n placeholder: \"openid,profile,email\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n redirect_uri: {\n required: false,\n label: \"Redirect URI\",\n tooltip: \"\",\n placeholder: \"https://console-endpoint-url/oauth_callback\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n role_policy: {\n required: false,\n label: \"Role Policy\",\n tooltip: \"\",\n placeholder: \"readonly\",\n type: \"text\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n claim_userinfo: {\n required: false,\n label: \"Claim User Info\",\n tooltip: \"\",\n placeholder: \"Claim User Info\",\n type: \"toggle\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n redirect_uri_dynamic: {\n required: false,\n label: \"Redirect URI Dynamic\",\n tooltip: \"\",\n placeholder: \"Redirect URI Dynamic\",\n type: \"toggle\",\n hasError: (s: string, editMode: boolean) => \"\",\n },\n};\n\nexport const ldapFormFields = {\n server_insecure: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Server Address is required\" : \"\";\n },\n label: \"Server Insecure\",\n tooltip: \"Disable SSL certificate verification \",\n placeholder: \"myldapserver.com:636\",\n type: \"toggle\",\n },\n server_addr: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Server Address is required\" : \"\";\n },\n label: \"Server Address\",\n tooltip: 'AD/LDAP server address e.g. \"myldapserver.com:636\"',\n placeholder: \"myldapserver.com:636\",\n type: \"text\",\n },\n lookup_bind_dn: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Lookup Bind DN is required\" : \"\";\n },\n label: \"Lookup Bind DN\",\n tooltip:\n \"DN (Distinguished Name) for LDAP read-only service account used to perform DN and group lookups\",\n placeholder: \"cn=admin,dc=min,dc=io\",\n type: \"text\",\n },\n lookup_bind_password: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"Lookup Bind Password is required\" : \"\";\n },\n label: \"Lookup Bind Password\",\n tooltip:\n \"Password for LDAP read-only service account used to perform DN and group lookups\",\n placeholder: \"admin\",\n type: \"password\",\n },\n user_dn_search_base_dn: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"User DN Search Base DN is required\" : \"\";\n },\n label: \"User DN Search Base\",\n tooltip: \"\",\n placeholder: \"DC=example,DC=net\",\n type: \"text\",\n },\n user_dn_search_filter: {\n required: true,\n hasError: (s: string, editMode: boolean) => {\n return !s && editMode ? \"User DN Search Filter is required\" : \"\";\n },\n label: \"User DN Search Filter\",\n tooltip: \"\",\n placeholder: \"(sAMAcountName=%s)\",\n type: \"text\",\n },\n group_search_base_dn: {\n required: false,\n hasError: (s: string, editMode: boolean) => \"\",\n label: \"Group Search Base DN\",\n tooltip: \"\",\n placeholder: \"ou=swengg,dc=min,dc=io\",\n type: \"text\",\n },\n group_search_filter: {\n required: false,\n hasError: (s: string, editMode: boolean) => \"\",\n label: \"Group Search Filter\",\n tooltip: \"\",\n placeholder: \"(&(objectclass=groupofnames)(member=%d))\",\n type: \"text\",\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 .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { LinearProgress } from \"@mui/material\";\nimport { DataTable, Grid, Box } from \"mds\";\nimport { policySort } from \"../../../utils/sortFunctions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport SearchBox from \"../Common/SearchBox\";\nimport { setModalErrorSnackMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setSelectedPolicies } from \"../Users/AddUsersSlice\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"../../../api\";\nimport {\n Error,\n HttpResponse,\n ListPoliciesResponse,\n} from \"../../../api/consoleApi\";\n\ninterface ISelectPolicyProps {\n selectedPolicy?: string[];\n noTitle?: boolean;\n}\n\nconst PolicySelectors = ({ noTitle = false }: ISelectPolicyProps) => {\n const dispatch = useAppDispatch();\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const currentPolicies = useSelector(\n (state: AppState) => state.createUser.selectedPolicies,\n );\n\n const fetchPolicies = useCallback(() => {\n isLoading(true);\n\n api.policies\n .listPolicies()\n .then((res: HttpResponse) => {\n const policies = res.data.policies ?? [];\n isLoading(false);\n setRecords(policies.sort(policySort));\n })\n .catch((err: ErrorResponseHandler) => {\n isLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n }, [dispatch]);\n\n //Effects\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n if (loading) {\n fetchPolicies();\n }\n }, [loading, fetchPolicies]);\n\n const selectionChanged = (e: React.ChangeEvent) => {\n const targetD = e.target;\n const value = targetD.value;\n const checked = targetD.checked;\n\n let elements: string[] = [...currentPolicies]; // We clone the checkedUsers array\n\n if (checked) {\n // If the user has checked this field we need to push this to checkedUsersList\n elements.push(value);\n } else {\n // User has unchecked this field, we need to remove it from the list\n elements = elements.filter((element) => element !== value);\n }\n // remove empty values\n elements = elements.filter((element) => element !== \"\");\n\n dispatch(setSelectedPolicies(elements));\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filter),\n );\n\n return (\n \n {loading && }\n {records.length > 0 ? (\n \n \n {\n setFilter(value);\n }}\n value={filter}\n label={!noTitle ? \"Assign Policies\" : \"\"}\n />\n \n\n \n \n ) : (\n \n No Policies Available\n \n )}\n \n );\n};\n\nexport default PolicySelectors;\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 { Policy, User } from \"api/consoleApi\";\n\ninterface policyDetailsInterface {\n policy: string;\n}\n\nexport const usersSort = (a: User, b: User) => {\n if (a.accessKey && b.accessKey) {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: Policy, b: Policy) => {\n if (a.name! > b.name!) {\n return 1;\n }\n if (a.name! < b.name!) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const stringSort = (a: string, b: string) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policyDetailsSort = (\n a: policyDetailsInterface,\n b: policyDetailsInterface,\n) => {\n if (a.policy > b.policy) {\n return 1;\n }\n if (a.policy < b.policy) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11 7 9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z\"\n}), 'Login');\nexports.default = _default;","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\", \"className\", \"useFlexGap\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { deepmerge, unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';\nimport systemStyled from '../styled';\nimport useThemePropsSystem from '../useThemeProps';\nimport { extendSxProp } from '../styleFunctionSx';\nimport createTheme from '../createTheme';\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from '../breakpoints';\nimport { createUnarySpacing, getValue } from '../spacing';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex',\n flexDirection: 'column'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n '& > :not(style) ~ :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\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 * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which 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 * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["useStyles","makeStyles","theme","headerBarIcon","marginRight","color","palette","primary","main","width","height","display","headerBarSubheader","maxWidth","stContainer","alignItems","justifyContent","padding","borderBottom","flexFlow","titleColumn","fontSize","leftItems","rightItems","marginLeft","_ref","icon","title","subTitle","actions","className","classes","_jsx","Grid","container","children","_jsxs","item","xs","concat","style","margin","_ref$label","label","_ref$value","value","_ref$orientation","orientation","_ref$stkProps","stkProps","_ref$lblProps","lblProps","_ref$valProps","valProps","Stack","_objectSpread","direction","sm","fontWeight","configurationName","closeResetModalAndRefresh","resetOpen","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","resetLoading","setResetLoading","useEffect","api","configs","resetConfig","then","catch","err","setErrorSnackMessage","errorToHandler","error","ConfirmDialog","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onClose","confirmationContent","Fragment","LinearProgress","whiteSpace","wordWrap","FeatureItem","description","Box","sx","marginBottom","fontStyle","_ref2","helpText","docLink","docText","contents","flex","border","borderRadius","paddingBottom","HelpIconFilled","map","content","index","iconDescription","text","href","target","rel","EntityResultTitle","name","CollapseCaret","transform","EntityResultItems","blockName","results","res","_ref3","_results$groups","_results$policies","_results$users","_results$groups2","_results$users2","_results$policies2","entityName","entityLength","groups","length","policies","users","marginTop","SectionTitle","separator","GroupsMenuIcon","h4","fill","groupData","group","user","policy","loading","setLoading","_useState3","_useState4","setUsers","_useState5","_useState6","setGroups","_useState7","_useState8","setResults","selectedPolicies","useSelector","state","createUser","paddingTop","md","lg","flexDirection","gap","withBorders","overflowY","minHeight","maxHeight","userDat","InputBox","id","onChange","e","usersElements","_toConsumableArray","overlayIcon","AddIcon","RemoveIcon","overlayAction","addItem","alterUsers","filteredUsers","filter","_","indx","alterUsersList","groupDat","groupsElements","alterGroups","filteredGroups","alterGroupsList","PolicySelectors","selectedPolicy","noTitle","textAlign","Loader","timestamp","TimeIcon","DateTime","fromISO","toFormat","backgroundColor","flexGrow","LDAPResultsBlock","Button","type","variant","onClick","data","cleanPolicies","pol","cleanUsers","usr","cleanGroups","grp","ldapEntities","getLdapEntities","result","SearchIcon","enabledConfigLDAP","formFields","ldapFormFields","isEnabled","setIsEnabled","hasConfiguration","setHasConfiguration","fields","setFields","_useState9","undefined","_useState10","record","setRecord","_useState11","_useState12","editMode","setEditMode","_useState13","_useState14","setResetOpen","_useState15","_useState16","curTab","setCurTab","toggleEditMode","parseFields","enabled","find","key","totalCoincidences","forEach","includes","hasConfig","configInfo","key_values","closeDeleteModalAndRefresh","_asyncToGenerator","_regeneratorRuntime","mark","_callee","refresh","wrap","_context","prev","next","setServerNeedsRestart","stop","_x","apply","arguments","setHelpName","ResetConfigurationModal","PageHeaderWrapper","HelpMenu","PageLayout","Tabs","horizontal","options","tabConfig","ScreenTitle","EditIcon","disabled","payload","setConfig","restart","setSnackBarMessage","toggleConfiguration","RefreshIcon","FormLayout","helpBox","AddIDPConfigurationHelpBox","ldapHelpBoxContents","Object","entries","Switch","indicatorLabels","checked","tooltip","_defineProperty","required","hasError","placeholder","renderFormField","_i","_Object$entries","_Object$entries$_i","validSave","keyVals","keys","gridTemplateColumns","gridAutoFlow","LabelValuePair","_ref5","_ref6","LDAPEntitiesQuery","currentTabOrPath","onTabClick","newTab","LoginIcon","openIDHelpBoxContents","LockIcon","openIDFormFields","config_url","s","client_id","client_secret","claim_name","display_name","claim_prefix","scopes","redirect_uri","role_policy","claim_userinfo","redirect_uri_dynamic","server_insecure","server_addr","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter","group_search_base_dn","group_search_filter","_ref$noTitle","records","setRecords","setFilter","currentPolicies","fetchPolicies","useCallback","listPolicies","_res$data$policies","sort","policySort","setModalErrorSnackMessage","filteredRecords","elementItem","SearchBox","DataTable","columns","elementKey","onSelect","targetD","elements","push","element","setSelectedPolicies","selectedItems","idField","customPaperHeight","usersSort","a","b","accessKey","stringSort","policyDetailsSort","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","defineProperty","enumerable","get","_utils","createSvgIcon","createStyled","_excluded","defaultTheme","createTheme","defaultCreateStyledComponent","systemStyled","slot","overridesResolver","props","styles","root","useThemePropsDefault","useThemePropsSystem","joinChildren","childrenArray","React","toArray","Boolean","reduce","output","child","ownerState","_extends","handleBreakpoints","resolveBreakpointValues","values","breakpoints","propValue","spacing","transformer","createUnarySpacing","base","acc","breakpoint","directionValues","spacingValues","previousDirectionValue","deepmerge","useFlexGap","getValue","row","column","mergeBreakpointsInOrder","_options$createStyled","createStyledComponent","_options$useThemeProp","useThemeProps","_options$componentNam","componentName","StackRoot","inProps","ref","themeProps","extendSxProp","_props$component","component","_props$direction","_props$spacing","divider","_props$useFlexGap","other","_objectWithoutPropertiesLoose","composeClasses","generateUtilityClass","as","clsx","createStack","styled","createChainedFunction","validator","reason","componentNameInError","Component","propName","location","propFullName","unstable_ClassNameGenerator","configure","generator","ClassNameGenerator","muiNames","indexOf","muiName","_len","funcs","Array","_key","func","_len2","args","_key2","this","module","obj","__esModule"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1715.b85c256f.chunk.js.map b/portal-ui/build/static/js/1715.b85c256f.chunk.js.map
index 87f492e82..1779e9662 100644
--- a/portal-ui/build/static/js/1715.b85c256f.chunk.js.map
+++ b/portal-ui/build/static/js/1715.b85c256f.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/1715.b85c256f.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js"],"sourcesContent":["import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getListUtilityClass(slot) {\n return generateUtilityClass('MuiList', slot);\n}\nconst listClasses = generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);\nexport default listClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ListContext from './ListContext';\nimport { getListUtilityClass } from './listClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePadding,\n dense,\n subheader\n } = ownerState;\n const slots = {\n root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']\n };\n return composeClasses(slots, getListUtilityClass, classes);\n};\nconst ListRoot = styled('ul', {\n name: 'MuiList',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];\n }\n})(({\n ownerState\n}) => _extends({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n}, !ownerState.disablePadding && {\n paddingTop: 8,\n paddingBottom: 8\n}, ownerState.subheader && {\n paddingTop: 0\n}));\nconst List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiList'\n });\n const {\n children,\n className,\n component = 'ul',\n dense = false,\n disablePadding = false,\n subheader\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const context = React.useMemo(() => ({\n dense\n }), [dense]);\n const ownerState = _extends({}, props, {\n component,\n dense,\n disablePadding\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsxs(ListRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [subheader, children]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? List.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\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 * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\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} : void 0;\nexport default List;","import { unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\nexport default getScrollbarSize;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n let text = nextFocus.innerText;\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n text = text.trim().toLowerCase();\n if (text.length === 0) {\n return false;\n }\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return false;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return true;\n }\n }\n return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n autoFocus = false,\n autoFocusItem = false,\n children,\n className,\n disabledItemsFocusable = false,\n disableListWrap = false,\n onKeyDown,\n variant = 'selectedMenu'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const listRef = React.useRef(null);\n const textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(() => {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, () => ({\n adjustStyleForScrollbar: (containerElement, theme) => {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n const noExplicitWidth = !listRef.current.style.width;\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;\n listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n }\n return listRef.current;\n }\n }), []);\n const handleKeyDown = event => {\n const list = listRef.current;\n const key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n const currentFocus = ownerDocument(list).activeElement;\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n const criteria = textCriteriaRef.current;\n const lowerKey = key.toLowerCase();\n const currTime = performance.now();\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleRef = useForkRef(listRef, ref);\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.forEach(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n if (activeItemIndex === index) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n });\n const items = React.Children.map(children, (child, index) => {\n if (index === activeItemIndex) {\n const newChildProps = {};\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n return child;\n });\n return /*#__PURE__*/_jsx(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other, {\n children: items\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes /* remove-proptypes */ = {\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 * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n * @default false\n */\n autoFocusItem: PropTypes.bool,\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the menu items will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getMenuUtilityClass(slot) {\n return generateUtilityClass('MuiMenu', slot);\n}\nconst menuClasses = generateUtilityClasses('MuiMenu', ['root', 'paper', 'list']);\nexport default menuClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onEntering\"],\n _excluded2 = [\"autoFocus\", \"children\", \"disableAutoFocusItem\", \"MenuListProps\", \"onClose\", \"open\", \"PaperProps\", \"PopoverClasses\", \"transitionDuration\", \"TransitionProps\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { HTMLElementType } from '@mui/utils';\nimport MenuList from '../MenuList';\nimport Popover, { PopoverPaper } from '../Popover';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getMenuUtilityClass } from './menuClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RTL_ORIGIN = {\n vertical: 'top',\n horizontal: 'right'\n};\nconst LTR_ORIGIN = {\n vertical: 'top',\n horizontal: 'left'\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper'],\n list: ['list']\n };\n return composeClasses(slots, getMenuUtilityClass, classes);\n};\nconst MenuRoot = styled(Popover, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiMenu',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nexport const MenuPaper = styled(PopoverPaper, {\n name: 'MuiMenu',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})({\n // specZ: The maximum height of a simple menu should be one or more rows less than the view\n // height. This ensures a tappable area outside of the simple menu with which to dismiss\n // the menu.\n maxHeight: 'calc(100% - 96px)',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch'\n});\nconst MenuMenuList = styled(MenuList, {\n name: 'MuiMenu',\n slot: 'List',\n overridesResolver: (props, styles) => styles.list\n})({\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n});\nconst Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMenu'\n });\n const {\n autoFocus = true,\n children,\n disableAutoFocusItem = false,\n MenuListProps = {},\n onClose,\n open,\n PaperProps = {},\n PopoverClasses,\n transitionDuration = 'auto',\n TransitionProps: {\n onEntering\n } = {},\n variant = 'selectedMenu'\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const ownerState = _extends({}, props, {\n autoFocus,\n disableAutoFocusItem,\n MenuListProps,\n onEntering,\n PaperProps,\n transitionDuration,\n TransitionProps,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n const menuListActionsRef = React.useRef(null);\n const handleEntering = (element, isAppearing) => {\n if (menuListActionsRef.current) {\n menuListActionsRef.current.adjustStyleForScrollbar(element, theme);\n }\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n };\n const handleListKeyDown = event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (onClose) {\n onClose(event, 'tabKeyDown');\n }\n }\n };\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.map(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n return /*#__PURE__*/_jsx(MenuRoot, _extends({\n onClose: onClose,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: isRtl ? 'right' : 'left'\n },\n transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,\n slots: {\n paper: MenuPaper\n },\n slotProps: {\n paper: _extends({}, PaperProps, {\n classes: _extends({}, PaperProps.classes, {\n root: classes.paper\n })\n })\n },\n className: classes.root,\n open: open,\n ref: ref,\n transitionDuration: transitionDuration,\n TransitionProps: _extends({\n onEntering: handleEntering\n }, TransitionProps),\n ownerState: ownerState\n }, other, {\n classes: PopoverClasses,\n children: /*#__PURE__*/_jsx(MenuMenuList, _extends({\n onKeyDown: handleListKeyDown,\n actions: menuListActionsRef,\n autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n autoFocusItem: autoFocusItem,\n variant: variant\n }, MenuListProps, {\n className: clsx(classes.list, MenuListProps.className),\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Menu.propTypes /* remove-proptypes */ = {\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 * An HTML element, or a function that returns one.\n * It's used to set the position of the menu.\n */\n anchorEl: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true` (Default) will focus the `[role=\"menu\"]` if no focusable child is found. Disabled\n * children are not focusable. If you set this prop to `false` focus will be placed\n * on the parent modal container. This has severe accessibility implications\n * and should only be considered if you manage focus otherwise.\n * @default true\n */\n autoFocus: PropTypes.bool,\n /**\n * Menu contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * When opening the menu will not focus the active item but the `[role=\"menu\"]`\n * unless `autoFocus` is also set to `false`. Not using the default means not\n * following WAI-ARIA authoring practices. Please be considerate about possible\n * accessibility implications.\n * @default false\n */\n disableAutoFocusItem: PropTypes.bool,\n /**\n * Props applied to the [`MenuList`](/material-ui/api/menu-list/) element.\n * @default {}\n */\n MenuListProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`, `\"tabKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * @ignore\n */\n PaperProps: PropTypes.object,\n /**\n * `classes` prop applied to the [`Popover`](/material-ui/api/popover/) element.\n */\n PopoverClasses: PropTypes.object,\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 * The length of the transition in `ms`, or 'auto'\n * @default 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default Menu;"],"names":["getListUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","ListRoot","styled","name","overridesResolver","props","styles","ownerState","root","disablePadding","padding","dense","subheader","_ref","_extends","listStyle","margin","position","paddingTop","paddingBottom","React","inProps","ref","useThemeProps","children","className","_props$component","component","_props$dense","_props$disablePadding","other","_objectWithoutPropertiesLoose","context","classes","slots","composeClasses","useUtilityClasses","_jsx","ListContext","Provider","value","_jsxs","as","clsx","nextItem","list","item","disableListWrap","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","undefined","text","innerText","textContent","trim","toLowerCase","length","repeating","keys","indexOf","join","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","disabled","getAttribute","hasAttribute","focus","actions","_props$autoFocus","autoFocus","_props$autoFocusItem","autoFocusItem","_props$disabledItemsF","_props$disableListWra","onKeyDown","_props$variant","variant","listRef","textCriteriaRef","previousKeyMatched","lastTime","useEnhancedEffect","current","adjustStyleForScrollbar","containerElement","theme","noExplicitWidth","style","width","clientHeight","scrollbarSize","concat","getScrollbarSize","ownerDocument","direction","handleRef","useForkRef","activeItemIndex","forEach","child","index","selected","muiSkipListHighlight","type","items","map","newChildProps","tabIndex","List","role","event","key","activeElement","preventDefault","criteria","lowerKey","currTime","performance","now","push","keepFocusOnCurrent","getMenuUtilityClass","_excluded2","RTL_ORIGIN","vertical","horizontal","LTR_ORIGIN","MenuRoot","Popover","shouldForwardProp","prop","rootShouldForwardProp","MenuPaper","PopoverPaper","paper","maxHeight","WebkitOverflowScrolling","MenuMenuList","MenuList","outline","_props$disableAutoFoc","disableAutoFocusItem","_props$MenuListProps","MenuListProps","onClose","open","_props$PaperProps","PaperProps","PopoverClasses","_props$transitionDura","transitionDuration","_props$TransitionProp","TransitionProps","onEntering","useTheme","isRtl","menuListActionsRef","anchorOrigin","transformOrigin","slotProps","element","isAppearing"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/1715.b85c256f.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js"],"sourcesContent":["import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getListUtilityClass(slot) {\n return generateUtilityClass('MuiList', slot);\n}\nconst listClasses = generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);\nexport default listClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ListContext from './ListContext';\nimport { getListUtilityClass } from './listClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePadding,\n dense,\n subheader\n } = ownerState;\n const slots = {\n root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']\n };\n return composeClasses(slots, getListUtilityClass, classes);\n};\nconst ListRoot = styled('ul', {\n name: 'MuiList',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];\n }\n})(({\n ownerState\n}) => _extends({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n}, !ownerState.disablePadding && {\n paddingTop: 8,\n paddingBottom: 8\n}, ownerState.subheader && {\n paddingTop: 0\n}));\nconst List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiList'\n });\n const {\n children,\n className,\n component = 'ul',\n dense = false,\n disablePadding = false,\n subheader\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const context = React.useMemo(() => ({\n dense\n }), [dense]);\n const ownerState = _extends({}, props, {\n component,\n dense,\n disablePadding\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsxs(ListRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [subheader, children]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? List.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\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 * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\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} : void 0;\nexport default List;","import { unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\nexport default getScrollbarSize;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n let text = nextFocus.innerText;\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n text = text.trim().toLowerCase();\n if (text.length === 0) {\n return false;\n }\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return false;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return true;\n }\n }\n return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n autoFocus = false,\n autoFocusItem = false,\n children,\n className,\n disabledItemsFocusable = false,\n disableListWrap = false,\n onKeyDown,\n variant = 'selectedMenu'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const listRef = React.useRef(null);\n const textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(() => {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, () => ({\n adjustStyleForScrollbar: (containerElement, theme) => {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n const noExplicitWidth = !listRef.current.style.width;\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;\n listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n }\n return listRef.current;\n }\n }), []);\n const handleKeyDown = event => {\n const list = listRef.current;\n const key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n const currentFocus = ownerDocument(list).activeElement;\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n const criteria = textCriteriaRef.current;\n const lowerKey = key.toLowerCase();\n const currTime = performance.now();\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleRef = useForkRef(listRef, ref);\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.forEach(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n if (activeItemIndex === index) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n });\n const items = React.Children.map(children, (child, index) => {\n if (index === activeItemIndex) {\n const newChildProps = {};\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n return child;\n });\n return /*#__PURE__*/_jsx(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other, {\n children: items\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes /* remove-proptypes */ = {\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 * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n * @default false\n */\n autoFocusItem: PropTypes.bool,\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the menu items will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getMenuUtilityClass(slot) {\n return generateUtilityClass('MuiMenu', slot);\n}\nconst menuClasses = generateUtilityClasses('MuiMenu', ['root', 'paper', 'list']);\nexport default menuClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onEntering\"],\n _excluded2 = [\"autoFocus\", \"children\", \"disableAutoFocusItem\", \"MenuListProps\", \"onClose\", \"open\", \"PaperProps\", \"PopoverClasses\", \"transitionDuration\", \"TransitionProps\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { HTMLElementType } from '@mui/utils';\nimport MenuList from '../MenuList';\nimport Popover, { PopoverPaper } from '../Popover';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getMenuUtilityClass } from './menuClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RTL_ORIGIN = {\n vertical: 'top',\n horizontal: 'right'\n};\nconst LTR_ORIGIN = {\n vertical: 'top',\n horizontal: 'left'\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper'],\n list: ['list']\n };\n return composeClasses(slots, getMenuUtilityClass, classes);\n};\nconst MenuRoot = styled(Popover, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiMenu',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nexport const MenuPaper = styled(PopoverPaper, {\n name: 'MuiMenu',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})({\n // specZ: The maximum height of a simple menu should be one or more rows less than the view\n // height. This ensures a tappable area outside of the simple menu with which to dismiss\n // the menu.\n maxHeight: 'calc(100% - 96px)',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch'\n});\nconst MenuMenuList = styled(MenuList, {\n name: 'MuiMenu',\n slot: 'List',\n overridesResolver: (props, styles) => styles.list\n})({\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n});\nconst Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMenu'\n });\n const {\n autoFocus = true,\n children,\n disableAutoFocusItem = false,\n MenuListProps = {},\n onClose,\n open,\n PaperProps = {},\n PopoverClasses,\n transitionDuration = 'auto',\n TransitionProps: {\n onEntering\n } = {},\n variant = 'selectedMenu'\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const ownerState = _extends({}, props, {\n autoFocus,\n disableAutoFocusItem,\n MenuListProps,\n onEntering,\n PaperProps,\n transitionDuration,\n TransitionProps,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n const menuListActionsRef = React.useRef(null);\n const handleEntering = (element, isAppearing) => {\n if (menuListActionsRef.current) {\n menuListActionsRef.current.adjustStyleForScrollbar(element, theme);\n }\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n };\n const handleListKeyDown = event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (onClose) {\n onClose(event, 'tabKeyDown');\n }\n }\n };\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.map(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n return /*#__PURE__*/_jsx(MenuRoot, _extends({\n onClose: onClose,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: isRtl ? 'right' : 'left'\n },\n transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,\n slots: {\n paper: MenuPaper\n },\n slotProps: {\n paper: _extends({}, PaperProps, {\n classes: _extends({}, PaperProps.classes, {\n root: classes.paper\n })\n })\n },\n className: classes.root,\n open: open,\n ref: ref,\n transitionDuration: transitionDuration,\n TransitionProps: _extends({\n onEntering: handleEntering\n }, TransitionProps),\n ownerState: ownerState\n }, other, {\n classes: PopoverClasses,\n children: /*#__PURE__*/_jsx(MenuMenuList, _extends({\n onKeyDown: handleListKeyDown,\n actions: menuListActionsRef,\n autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n autoFocusItem: autoFocusItem,\n variant: variant\n }, MenuListProps, {\n className: clsx(classes.list, MenuListProps.className),\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Menu.propTypes /* remove-proptypes */ = {\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 * An HTML element, or a function that returns one.\n * It's used to set the position of the menu.\n */\n anchorEl: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true` (Default) will focus the `[role=\"menu\"]` if no focusable child is found. Disabled\n * children are not focusable. If you set this prop to `false` focus will be placed\n * on the parent modal container. This has severe accessibility implications\n * and should only be considered if you manage focus otherwise.\n * @default true\n */\n autoFocus: PropTypes.bool,\n /**\n * Menu contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * When opening the menu will not focus the active item but the `[role=\"menu\"]`\n * unless `autoFocus` is also set to `false`. Not using the default means not\n * following WAI-ARIA authoring practices. Please be considerate about possible\n * accessibility implications.\n * @default false\n */\n disableAutoFocusItem: PropTypes.bool,\n /**\n * Props applied to the [`MenuList`](/material-ui/api/menu-list/) element.\n * @default {}\n */\n MenuListProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`, `\"tabKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * @ignore\n */\n PaperProps: PropTypes.object,\n /**\n * `classes` prop applied to the [`Popover`](/material-ui/api/popover/) element.\n */\n PopoverClasses: PropTypes.object,\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 * The length of the transition in `ms`, or 'auto'\n * @default 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default Menu;"],"names":["getListUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","ListRoot","styled","name","overridesResolver","props","styles","ownerState","root","disablePadding","padding","dense","subheader","_ref","_extends","listStyle","margin","position","paddingTop","paddingBottom","React","inProps","ref","useThemeProps","children","className","_props$component","component","_props$dense","_props$disablePadding","other","_objectWithoutPropertiesLoose","context","classes","slots","composeClasses","useUtilityClasses","_jsx","ListContext","Provider","value","_jsxs","as","clsx","nextItem","list","item","disableListWrap","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","undefined","text","innerText","textContent","trim","toLowerCase","length","repeating","keys","indexOf","join","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","disabled","getAttribute","hasAttribute","focus","actions","_props$autoFocus","autoFocus","_props$autoFocusItem","autoFocusItem","_props$disabledItemsF","_props$disableListWra","onKeyDown","_props$variant","variant","listRef","textCriteriaRef","previousKeyMatched","lastTime","useEnhancedEffect","current","adjustStyleForScrollbar","containerElement","theme","noExplicitWidth","style","width","clientHeight","scrollbarSize","concat","getScrollbarSize","ownerDocument","direction","handleRef","useForkRef","activeItemIndex","forEach","child","index","selected","muiSkipListHighlight","type","items","map","newChildProps","tabIndex","List","role","event","key","activeElement","preventDefault","criteria","lowerKey","currTime","performance","now","push","keepFocusOnCurrent","getMenuUtilityClass","_excluded2","RTL_ORIGIN","vertical","horizontal","LTR_ORIGIN","MenuRoot","Popover","shouldForwardProp","prop","rootShouldForwardProp","MenuPaper","PopoverPaper","paper","maxHeight","WebkitOverflowScrolling","MenuMenuList","MenuList","outline","_props$disableAutoFoc","disableAutoFocusItem","_props$MenuListProps","MenuListProps","onClose","open","_props$PaperProps","PaperProps","PopoverClasses","_props$transitionDura","transitionDuration","_props$TransitionProp","TransitionProps","onEntering","useTheme","isRtl","menuListActionsRef","anchorOrigin","transformOrigin","slotProps","element","isAppearing"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1829.0e821c64.chunk.js b/portal-ui/build/static/js/1829.0e821c64.chunk.js
new file mode 100644
index 000000000..e58f09394
--- /dev/null
+++ b/portal-ui/build/static/js/1829.0e821c64.chunk.js
@@ -0,0 +1,2 @@
+(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1829],{47986:function(e,n,t){"use strict";t(72791);var a=t(61889),o=t(64554),r=t(29945),i=t(80184);n.Z=function(e){var n=e.iconComponent,t=e.entity;return(0,i.jsx)(a.ZP,{container:!0,alignItems:"center",children:(0,i.jsx)(a.ZP,{item:!0,xs:12,children:(0,i.jsx)(r.KfX,{title:"".concat(t," not available"),iconComponent:n,help:(0,i.jsxs)(o.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(e){return e.colors.link},textDecoration:"underline"}},children:[(0,i.jsx)("div",{children:"This feature is not available for a single-disk setup."}),(0,i.jsxs)("div",{children:["Please deploy a server in"," ",(0,i.jsx)("a",{href:"https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html?ref=con",target:"_blank",rel:"noopener",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},34866:function(e,n,t){"use strict";var a=t(1413),o=t(72791),r=t(61889),i=t(94454),s=t(30829),c=t(20068),l=t(11135),d=t(25787),u=t(23814),f=t(29945),h=t(80184);n.Z=(0,d.Z)((function(e){return(0,l.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},u.YI),u.Hr),u.lM),{},{fieldContainer:(0,a.Z)((0,a.Z)({},u.YI.fieldContainer),{},{display:"flex",justifyContent:"flex-start",alignItems:"center",margin:"15px 0",marginBottom:0,flexBasis:"initial",flexWrap:"nowrap"}),noTopMargin:{marginTop:0}}))}))((function(e){var n=e.label,t=e.onChange,a=e.value,l=e.id,d=e.name,u=e.checked,p=void 0!==u&&u,x=e.disabled,b=void 0!==x&&x,m=e.noTopMargin,g=void 0!==m&&m,j=e.tooltip,v=void 0===j?"":j,Z=e.overrideLabelClasses,y=void 0===Z?"":Z,k=e.overrideCheckboxStyles,C=e.classes,S=e.className;return(0,h.jsx)(o.Fragment,{children:(0,h.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(C.fieldContainer," ").concat(g?C.noTopMargin:""," ").concat(S||""),children:[(0,h.jsx)("div",{children:(0,h.jsx)(i.Z,{name:d,id:l,value:a,color:"primary",inputProps:{"aria-label":"secondary checkbox"},checked:p,onChange:t,checkedIcon:(0,h.jsx)("span",{className:C.checkedIcon}),icon:(0,h.jsx)("span",{className:C.unCheckedIcon}),disabled:b,disableRipple:!0,disableFocusRipple:!0,focusRipple:!1,centerRipple:!1,disableTouchRipple:!0,style:k||{}})}),""!==n&&(0,h.jsxs)(s.Z,{htmlFor:l,className:"".concat(C.noMinWidthLabel," ").concat(y),children:[(0,h.jsx)("span",{children:n}),""!==v&&(0,h.jsx)("div",{className:C.tooltipContainer,children:(0,h.jsx)(c.Z,{title:v,placement:"top-start",children:(0,h.jsx)("div",{className:C.tooltip,children:(0,h.jsx)(f.byK,{})})})})]})]})})}))},61829:function(e,n,t){"use strict";t.r(n);var a=t(29439),o=t(1413),r=t(72791),i=t(78687),s=t(76098),c=t(61889),l=t(68096),d=t(58406),u=t(77865),f=t(27391),h=t(95087),p=t(29945),x=t(11135),b=t(25787),m=t(26824),g=t(45248),j=t(23814),v=t(56087),Z=t(34866),y=t(38442),k=t(47986),C=t(87995),S=t(72455),w=t(47974),N=t(20601),T=t(38725),H=t(82839),E=t(90466),D=t(12891),I=t(35667),P=t(57702),B=t(83672),R=t(99670),_=t(81551),A=t(31776),F=t(82342),O=t(80184),G=(0,S.Z)((function(e){return(0,x.Z)((0,o.Z)((0,o.Z)((0,o.Z)({graphContainer:{backgroundColor:"#fff",border:"#EAEDEE 1px solid",borderRadius:3,padding:"19px 38px",marginTop:15},scanInfo:{marginTop:20,display:"flex",flexDirection:"row",justifyContent:"space-between"},scanData:{fontSize:13},formBox:{padding:15,border:"1px solid #EAEAEA"},buttonBar:{display:"flex",alignItems:"center",justifyContent:"flex-end"},bucketField:{flex:1},prefixField:(0,o.Z)((0,o.Z)({},j.qg.searchField),{},{marginLeft:10,flex:1}),actionsTray:(0,o.Z)((0,o.Z)({},j.OR.actionsTray),{},{marginBottom:0})},j.IX),j.qg),j.Bz))})),z=(0,b.Z)((function(e){return(0,x.Z)({root:{lineHeight:"50px",marginRight:15,"label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}}})}))(s.ZP);n.default=function(){var e=G(),n=(0,i.v9)(C.N5),t=(0,r.useState)(!1),o=(0,a.Z)(t,2),s=o[0],x=o[1],b=(0,r.useState)(""),j=(0,a.Z)(b,2),S=j[0],M=j[1],L=(0,r.useState)([]),K=(0,a.Z)(L,2),Y=K[0],U=K[1],W=(0,r.useState)(""),q=(0,a.Z)(W,2),X=q[0],$=q[1],J=(0,r.useState)(!1),V=(0,a.Z)(J,2),Q=V[0],ee=V[1],ne=(0,r.useState)(!1),te=(0,a.Z)(ne,2),ae=te[0],oe=te[1],re=(0,r.useState)(!1),ie=(0,a.Z)(re,2),se=ie[0],ce=ie[1],le=(0,r.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""}),de=(0,a.Z)(le,2),ue=de[0],fe=de[1];(0,r.useEffect)((function(){A.h.buckets.listBuckets().then((function(e){var n=[];e.data.buckets&&(n=e.data.buckets),U(n)})).catch((function(e){console.error((0,F.g)(e.error))}))}),[]),(0,r.useEffect)((function(){!0===ae&&ce(!1)}),[ae]),(0,r.useEffect)((function(){!0===se&&oe(!1)}),[se]);var he=function(e){return[e.Green,e.Yellow,e.Red,e.Grey]};(0,r.useEffect)((function(){if(s){var e={Green:0,Yellow:0,Red:0,Grey:0},n={Green:0,Yellow:0,Red:0,Grey:0},t=new URL(window.location.toString()),o=t.port,r=new URL(document.baseURI).pathname,i=(0,m.x2)(t.protocol),c=new h.w3cwebsocket("".concat(i,"://").concat(t.hostname,":").concat(o).concat(r,"ws/heal/").concat(S,"?prefix=").concat(X,"&recursive=").concat(Q,"&force-start=").concat(ae,"&force-stop=").concat(se));if(null!==c)return c.onopen=function(){console.log("WebSocket Client Connected"),c.send("ok")},c.onmessage=function(t){for(var o=JSON.parse(t.data.toString()),r=0,i=Object.entries(o.healthAfterCols);r.\n\nimport React from \"react\";\nimport { Box, Grid } from \"@mui/material\";\nimport { HelpBox } from \"mds\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n theme.colors.link,\n textDecoration: \"underline\",\n },\n }}\n >\n
This feature is not available for a single-disk setup.
\n\n
\n Please deploy a server in{\" \"}\n \n Distributed Mode\n {\" \"}\n to use this feature.\n
\n \n }\n />\n \n \n );\n};\n\nexport default DistributedOnly;\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 { Checkbox, Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n checkboxIcons,\n fieldBasic,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { HelpIcon } from \"mds\";\n\ninterface CheckBoxProps {\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 overrideLabelClasses?: string;\n overrideCheckboxStyles?: React.CSSProperties;\n index?: number;\n noTopMargin?: boolean;\n checked: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n ...checkboxIcons,\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n margin: \"15px 0\",\n marginBottom: 0,\n flexBasis: \"initial\",\n flexWrap: \"nowrap\",\n },\n noTopMargin: {\n marginTop: 0,\n },\n });\n\nconst CheckboxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n checked = false,\n disabled = false,\n noTopMargin = false,\n tooltip = \"\",\n overrideLabelClasses = \"\",\n overrideCheckboxStyles,\n classes,\n className,\n}: CheckBoxProps) => {\n return (\n \n \n
\n \n \n \n )}\n \n \n );\n};\n\nexport default Heal;\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","module.exports = require('../package.json').version;\n"],"names":["_ref","iconComponent","entity","_jsx","Grid","container","alignItems","children","item","xs","HelpBox","title","concat","help","_jsxs","Box","sx","fontSize","display","border","flexFlow","md","color","theme","colors","link","textDecoration","href","target","rel","withStyles","createStyles","_objectSpread","fieldBasic","tooltipHelper","checkboxIcons","fieldContainer","justifyContent","margin","marginBottom","flexBasis","flexWrap","noTopMargin","marginTop","label","onChange","value","id","name","_ref$checked","checked","_ref$disabled","disabled","_ref$noTopMargin","_ref$tooltip","tooltip","_ref$overrideLabelCla","overrideLabelClasses","overrideCheckboxStyles","classes","className","React","Checkbox","inputProps","checkedIcon","icon","unCheckedIcon","disableRipple","disableFocusRipple","focusRipple","centerRipple","disableTouchRipple","style","InputLabel","htmlFor","noMinWidthLabel","tooltipContainer","Tooltip","placement","HelpIcon","useStyles","makeStyles","graphContainer","backgroundColor","borderRadius","padding","scanInfo","flexDirection","scanData","formBox","buttonBar","bucketField","flex","prefixField","searchField","marginLeft","actionsTray","inlineCheckboxes","containerForHeader","SelectStyled","root","lineHeight","marginRight","spacing","InputBase","distributedSetup","useSelector","selDistSet","_useState","useState","_useState2","_slicedToArray","start","setStart","_useState3","_useState4","bucketName","setBucketName","_useState5","_useState6","bucketList","setBucketList","_useState7","_useState8","prefix","setPrefix","_useState9","_useState10","recursive","setRecursive","_useState11","_useState12","forceStart","setForceStart","_useState13","_useState14","forceStop","setForceStop","_useState15","beforeHeal","afterHeal","objectsHealed","objectsScanned","healDuration","sizeScanned","_useState16","hStatus","setHStatus","useEffect","api","buckets","listBuckets","then","res","data","catch","err","console","error","errorToHandler","colorHealthArr","Green","Yellow","Red","Grey","cB","cA","url","URL","window","location","toString","port","baseUrl","document","baseURI","pathname","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","onopen","log","send","onmessage","message","m","JSON","parse","_i","_Object$entries","Object","entries","healthAfterCols","length","_Object$entries$_i","key","itemsScanned","_i2","_Object$entries2","healthBeforeCols","_Object$entries2$_i","niceBytes","bytesScanned","onclose","close","ah","bh","amt","bucketNames","map","dispatch","useAppDispatch","setHelpName","Fragment","PageHeaderWrapper","actions","HelpMenu","PageLayout","SecureComponent","scopes","IAM_SCOPES","ADMIN_HEAL","resource","CONSOLE_UI_RESOURCE","FormControl","variant","Select","e","input","displayEmpty","MenuItem","option","TextField","InputProps","disableUnderline","CheckboxWrapper","Button","type","onClick","ResponsiveContainer","width","height","BarChart","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","Legend","verticalAlign","layout","Bar","fill","stroke","DistributedOnly","HealIcon","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","naiveFallback","self","Error","module","exports","this","globalThis","defineProperty","prototype","get","configurable","__global__","generateCategoricalChart","chartName","GraphicalChild","defaultTooltipEventType","validateTooltipEventTypes","axisComponents","axisType","AxisComp","formatAxisMap","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","prop"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1829.11d4b426.chunk.js b/portal-ui/build/static/js/1829.11d4b426.chunk.js
deleted file mode 100644
index ea2e50ad0..000000000
--- a/portal-ui/build/static/js/1829.11d4b426.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1829],{47986:function(e,n,t){"use strict";t(72791);var a=t(61889),o=t(64554),r=t(29945),i=t(80184);n.Z=function(e){var n=e.iconComponent,t=e.entity;return(0,i.jsx)(a.ZP,{container:!0,alignItems:"center",children:(0,i.jsx)(a.ZP,{item:!0,xs:12,children:(0,i.jsx)(r.KfX,{title:"".concat(t," not available"),iconComponent:n,help:(0,i.jsxs)(o.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(e){return e.colors.link},textDecoration:"underline"}},children:[(0,i.jsx)("div",{children:"This feature is not available for a single-disk setup."}),(0,i.jsxs)("div",{children:["Please deploy a server in"," ",(0,i.jsx)("a",{href:"https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html?ref=con",target:"_blank",rel:"noopener",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},34866:function(e,n,t){"use strict";var a=t(1413),o=t(72791),r=t(61889),i=t(94454),c=t(30829),s=t(20068),l=t(11135),d=t(25787),u=t(23814),f=t(29945),h=t(80184);n.Z=(0,d.Z)((function(e){return(0,l.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},u.YI),u.Hr),u.lM),{},{fieldContainer:(0,a.Z)((0,a.Z)({},u.YI.fieldContainer),{},{display:"flex",justifyContent:"flex-start",alignItems:"center",margin:"15px 0",marginBottom:0,flexBasis:"initial",flexWrap:"nowrap"}),noTopMargin:{marginTop:0}}))}))((function(e){var n=e.label,t=e.onChange,a=e.value,l=e.id,d=e.name,u=e.checked,p=void 0!==u&&u,m=e.disabled,b=void 0!==m&&m,x=e.noTopMargin,v=void 0!==x&&x,g=e.tooltip,Z=void 0===g?"":g,j=e.overrideLabelClasses,k=void 0===j?"":j,y=e.overrideCheckboxStyles,C=e.classes,S=e.className;return(0,h.jsx)(o.Fragment,{children:(0,h.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(C.fieldContainer," ").concat(v?C.noTopMargin:""," ").concat(S||""),children:[(0,h.jsx)("div",{children:(0,h.jsx)(i.Z,{name:d,id:l,value:a,color:"primary",inputProps:{"aria-label":"secondary checkbox"},checked:p,onChange:t,checkedIcon:(0,h.jsx)("span",{className:C.checkedIcon}),icon:(0,h.jsx)("span",{className:C.unCheckedIcon}),disabled:b,disableRipple:!0,disableFocusRipple:!0,focusRipple:!1,centerRipple:!1,disableTouchRipple:!0,style:y||{}})}),""!==n&&(0,h.jsxs)(c.Z,{htmlFor:l,className:"".concat(C.noMinWidthLabel," ").concat(k),children:[(0,h.jsx)("span",{children:n}),""!==Z&&(0,h.jsx)("div",{className:C.tooltipContainer,children:(0,h.jsx)(s.Z,{title:Z,placement:"top-start",children:(0,h.jsx)("div",{className:C.tooltip,children:(0,h.jsx)(f.byK,{})})})})]})]})})}))},61829:function(e,n,t){"use strict";t.r(n);var a=t(29439),o=t(1413),r=t(72791),i=t(78687),c=t(886),s=t(61889),l=t(68096),d=t(58406),u=t(77865),f=t(27391),h=t(95087),p=t(29945),m=t(11135),b=t(25787),x=t(26824),v=t(45248),g=t(23814),Z=t(56087),j=t(34866),k=t(38442),y=t(47986),C=t(87995),S=t(72455),w=t(47974),N=t(20601),I=t(38725),P=t(82839),R=t(90466),B=t(12891),H=t(35667),F=t(57702),E=t(83672),z=t(99670),T=t(81551),O=t(31776),D=t(82342),M=t(80184),_=(0,S.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)((0,o.Z)({graphContainer:{backgroundColor:"#fff",border:"#EAEDEE 1px solid",borderRadius:3,padding:"19px 38px",marginTop:15},scanInfo:{marginTop:20,display:"flex",flexDirection:"row",justifyContent:"space-between"},scanData:{fontSize:13},formBox:{padding:15,border:"1px solid #EAEAEA"},buttonBar:{display:"flex",alignItems:"center",justifyContent:"flex-end"},bucketField:{flex:1},prefixField:(0,o.Z)((0,o.Z)({},g.qg.searchField),{},{marginLeft:10,flex:1}),actionsTray:(0,o.Z)((0,o.Z)({},g.OR.actionsTray),{},{marginBottom:0})},g.IX),g.qg),g.Bz))})),A=(0,b.Z)((function(e){return(0,m.Z)({root:{lineHeight:"50px",marginRight:15,"label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}}})}))(c.ZP);n.default=function(){var e=_(),n=(0,i.v9)(C.N5),t=(0,r.useState)(!1),o=(0,a.Z)(t,2),c=o[0],m=o[1],b=(0,r.useState)(""),g=(0,a.Z)(b,2),S=g[0],L=g[1],G=(0,r.useState)([]),q=(0,a.Z)(G,2),K=q[0],Y=q[1],U=(0,r.useState)(""),V=(0,a.Z)(U,2),W=V[0],X=V[1],$=(0,r.useState)(!1),J=(0,a.Z)($,2),Q=J[0],ee=J[1],ne=(0,r.useState)(!1),te=(0,a.Z)(ne,2),ae=te[0],oe=te[1],re=(0,r.useState)(!1),ie=(0,a.Z)(re,2),ce=ie[0],se=ie[1],le=(0,r.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""}),de=(0,a.Z)(le,2),ue=de[0],fe=de[1];(0,r.useEffect)((function(){O.h.buckets.listBuckets().then((function(e){var n=[];e.data.buckets&&(n=e.data.buckets),Y(n)})).catch((function(e){console.error((0,D.g)(e.error))}))}),[]),(0,r.useEffect)((function(){!0===ae&&se(!1)}),[ae]),(0,r.useEffect)((function(){!0===ce&&oe(!1)}),[ce]);var he=function(e){return[e.Green,e.Yellow,e.Red,e.Grey]};(0,r.useEffect)((function(){if(c){var e={Green:0,Yellow:0,Red:0,Grey:0},n={Green:0,Yellow:0,Red:0,Grey:0},t=new URL(window.location.toString()),o=t.port,r=new URL(document.baseURI).pathname,i=(0,x.x2)(t.protocol),s=new h.w3cwebsocket("".concat(i,"://").concat(t.hostname,":").concat(o).concat(r,"ws/heal/").concat(S,"?prefix=").concat(W,"&recursive=").concat(Q,"&force-start=").concat(ae,"&force-stop=").concat(ce));if(null!==s)return s.onopen=function(){console.log("WebSocket Client Connected"),s.send("ok")},s.onmessage=function(t){for(var o=JSON.parse(t.data.toString()),r=0,i=Object.entries(o.healthAfterCols);r.\n\nimport React from \"react\";\nimport { Box, Grid } from \"@mui/material\";\nimport { HelpBox } from \"mds\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n theme.colors.link,\n textDecoration: \"underline\",\n },\n }}\n >\n
This feature is not available for a single-disk setup.
\n\n
\n Please deploy a server in{\" \"}\n \n Distributed Mode\n {\" \"}\n to use this feature.\n
\n \n }\n />\n \n \n );\n};\n\nexport default DistributedOnly;\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 { Checkbox, Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n checkboxIcons,\n fieldBasic,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { HelpIcon } from \"mds\";\n\ninterface CheckBoxProps {\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 overrideLabelClasses?: string;\n overrideCheckboxStyles?: React.CSSProperties;\n index?: number;\n noTopMargin?: boolean;\n checked: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n ...checkboxIcons,\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n margin: \"15px 0\",\n marginBottom: 0,\n flexBasis: \"initial\",\n flexWrap: \"nowrap\",\n },\n noTopMargin: {\n marginTop: 0,\n },\n });\n\nconst CheckboxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n checked = false,\n disabled = false,\n noTopMargin = false,\n tooltip = \"\",\n overrideLabelClasses = \"\",\n overrideCheckboxStyles,\n classes,\n className,\n}: CheckBoxProps) => {\n return (\n \n \n
\n \n \n \n )}\n \n \n );\n};\n\nexport default Heal;\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${ownerState.color === 'default' ? theme.vars.palette.action.activeChannel : theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n}));\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium',\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes /* remove-proptypes */ = {\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 * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\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 * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSwitchBaseUtilityClass(slot) {\n return generateUtilityClass('PrivateSwitchBase', slot);\n}\nconst switchBaseClasses = generateUtilityClasses('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);\nexport default switchBaseClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"checked\", \"checkedIcon\", \"className\", \"defaultChecked\", \"disabled\", \"disableFocusRipple\", \"edge\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport ButtonBase from '../ButtonBase';\nimport { getSwitchBaseUtilityClass } from './switchBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n checked,\n disabled,\n edge\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n input: ['input']\n };\n return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\nconst SwitchBaseRoot = styled(ButtonBase)(({\n ownerState\n}) => _extends({\n padding: 9,\n borderRadius: '50%'\n}, ownerState.edge === 'start' && {\n marginLeft: ownerState.size === 'small' ? -3 : -12\n}, ownerState.edge === 'end' && {\n marginRight: ownerState.size === 'small' ? -3 : -12\n}));\nconst SwitchBaseInput = styled('input')({\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n});\n\n/**\n * @ignore - internal component.\n */\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n const {\n autoFocus,\n checked: checkedProp,\n checkedIcon,\n className,\n defaultChecked,\n disabled: disabledProp,\n disableFocusRipple = false,\n edge = false,\n icon,\n id,\n inputProps,\n inputRef,\n name,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n required = false,\n tabIndex,\n type,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n });\n const muiFormControl = useFormControl();\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n const handleInputChange = event => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n if (onChange) {\n // TODO v6: remove the second argument.\n onChange(event, newChecked);\n }\n };\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n const hasLabelFor = type === 'checkbox' || type === 'radio';\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n disableFocusRipple,\n edge\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SwitchBaseRoot, _extends({\n component: \"span\",\n className: clsx(classes.root, className),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SwitchBaseInput, _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor ? id : undefined,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n ownerState: ownerState,\n tabIndex: tabIndex,\n type: type\n }, type === 'checkbox' && value === undefined ? {} : {\n value\n }, inputProps)), checked ? checkedIcon : icon]\n }));\n});\n\n// NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /*\n * @ignore\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object,\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default SwitchBase;","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","module.exports = require('../package.json').version;\n"],"names":["_ref","iconComponent","entity","_jsx","Grid","container","alignItems","children","item","xs","HelpBox","title","concat","help","_jsxs","Box","sx","fontSize","display","border","flexFlow","md","color","theme","colors","link","textDecoration","href","target","rel","withStyles","createStyles","_objectSpread","fieldBasic","tooltipHelper","checkboxIcons","fieldContainer","justifyContent","margin","marginBottom","flexBasis","flexWrap","noTopMargin","marginTop","label","onChange","value","id","name","_ref$checked","checked","_ref$disabled","disabled","_ref$noTopMargin","_ref$tooltip","tooltip","_ref$overrideLabelCla","overrideLabelClasses","overrideCheckboxStyles","classes","className","React","Checkbox","inputProps","checkedIcon","icon","unCheckedIcon","disableRipple","disableFocusRipple","focusRipple","centerRipple","disableTouchRipple","style","InputLabel","htmlFor","noMinWidthLabel","tooltipContainer","Tooltip","placement","HelpIcon","useStyles","makeStyles","graphContainer","backgroundColor","borderRadius","padding","scanInfo","flexDirection","scanData","formBox","buttonBar","bucketField","flex","prefixField","searchField","marginLeft","actionsTray","inlineCheckboxes","containerForHeader","SelectStyled","root","lineHeight","marginRight","spacing","InputBase","distributedSetup","useSelector","selDistSet","_useState","useState","_useState2","_slicedToArray","start","setStart","_useState3","_useState4","bucketName","setBucketName","_useState5","_useState6","bucketList","setBucketList","_useState7","_useState8","prefix","setPrefix","_useState9","_useState10","recursive","setRecursive","_useState11","_useState12","forceStart","setForceStart","_useState13","_useState14","forceStop","setForceStop","_useState15","beforeHeal","afterHeal","objectsHealed","objectsScanned","healDuration","sizeScanned","_useState16","hStatus","setHStatus","useEffect","api","buckets","listBuckets","then","res","data","catch","err","console","error","errorToHandler","colorHealthArr","Green","Yellow","Red","Grey","cB","cA","url","URL","window","location","toString","port","baseUrl","document","baseURI","pathname","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","onopen","log","send","onmessage","message","m","JSON","parse","_i","_Object$entries","Object","entries","healthAfterCols","length","_Object$entries$_i","key","itemsScanned","_i2","_Object$entries2","healthBeforeCols","_Object$entries2$_i","niceBytes","bytesScanned","onclose","close","ah","bh","amt","bucketNames","map","dispatch","useAppDispatch","setHelpName","Fragment","PageHeaderWrapper","actions","HelpMenu","PageLayout","SecureComponent","scopes","IAM_SCOPES","ADMIN_HEAL","resource","CONSOLE_UI_RESOURCE","FormControl","variant","Select","e","input","displayEmpty","MenuItem","option","TextField","InputProps","disableUnderline","CheckboxWrapper","Button","type","onClick","ResponsiveContainer","width","height","BarChart","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","Legend","verticalAlign","layout","Bar","fill","stroke","DistributedOnly","HealIcon","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","createSvgIcon","d","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","overridesResolver","props","styles","ownerState","indeterminate","capitalize","_ref2","_extends","vars","palette","text","secondary","action","activeChannel","primary","mainChannel","hoverOpacity","alpha","active","main","_defineProperty","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","_props$checkedIcon","_props$color","_props$icon","iconProp","_props$indeterminate","_props$indeterminateI","indeterminateIcon","indeterminateIconProp","_props$size","size","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","clsx","getSwitchBaseUtilityClass","SwitchBaseRoot","ButtonBase","edge","SwitchBaseInput","cursor","position","opacity","zIndex","autoFocus","checkedProp","defaultChecked","disabledProp","_props$disableFocusRi","_props$edge","inputRef","onBlur","onFocus","readOnly","_props$required","required","tabIndex","_useControlled","useControlled","controlled","default","Boolean","state","_useControlled2","setCheckedState","muiFormControl","useFormControl","hasLabelFor","component","role","undefined","event","nativeEvent","defaultPrevented","newChecked","naiveFallback","self","Error","module","exports","this","globalThis","defineProperty","prototype","get","configurable","__global__","generateCategoricalChart","chartName","GraphicalChild","defaultTooltipEventType","validateTooltipEventTypes","axisComponents","axisType","AxisComp","formatAxisMap","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/2032.54dedb37.chunk.js.map b/portal-ui/build/static/js/2032.54dedb37.chunk.js.map
index 91ee405c2..761bf0270 100644
--- a/portal-ui/build/static/js/2032.54dedb37.chunk.js.map
+++ b/portal-ui/build/static/js/2032.54dedb37.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/2032.54dedb37.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","screens/Console/Common/WarningMessage/WarningMessage.tsx","screens/Console/KMS/DeleteKMSModal.tsx","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.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 .\nimport React, { ClipboardEvent, useState } 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 VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\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 \"mds\";\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 onFocus?: () => void;\n onPaste?: (e: ClipboardEvent) => 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 });\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 onFocus,\n onPaste,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n const [toggleTextInput, setToggleTextInput] = useState(false);\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 let inputBoxWrapperIcon = overlayIcon;\n let inputBoxWrapperType = type;\n\n if (type === \"password\" && overlayIcon === null) {\n inputBoxWrapperIcon = toggleTextInput ? (\n \n ) : (\n \n );\n inputBoxWrapperType = toggleTextInput ? \"text\" : \"password\";\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) 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\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IWarningMessage {\n classes: any;\n label: any;\n title: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n backgroundColor: \"#e78794\",\n borderRadius: 3,\n marginBottom: 20,\n padding: 1,\n paddingBottom: 15,\n },\n labelHeadline: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n },\n labelText: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n marginRight: 40,\n },\n });\n\nconst WarningMessage = ({ classes, label, title }: IWarningMessage) => {\n return (\n
\n
{title}
\n
{label}
\n
\n );\n};\n\nexport default withStyles(styles)(WarningMessage);\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, { useState } from \"react\";\n\nimport { DialogContentText, Grid } from \"@mui/material\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport WarningMessage from \"../Common/WarningMessage/WarningMessage\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { ConfirmDeleteIcon } from \"mds\";\n\ninterface IDeleteKMSModalProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedItem: string;\n endpoint: string;\n element: string;\n}\n\nconst DeleteKMSModal = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedItem,\n endpoint,\n element,\n}: IDeleteKMSModalProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [retypeKey, setRetypeKey] = useState(\"\");\n\n if (!selectedItem) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `${endpoint}${selectedItem}`);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypeKey !== selectedItem || deleteLoading,\n }}\n confirmationContent={\n \n \n \n \n To continue please type {selectedItem} in the box.\n \n ) => {\n setRetypeKey(event.target.value);\n }}\n onPaste={(e) => e.preventDefault()}\n label=\"\"\n value={retypeKey}\n />\n \n \n }\n />\n );\n};\n\nexport default DeleteKMSModal;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\nexports.default = _default;"],"names":["inputStyles","makeStyles","theme","createStyles","_objectSpread","inputFieldStyles","InputField","props","classes","_jsx","TextField","InputProps","withStyles","fieldBasic","tooltipHelper","textBoxContainer","flexGrow","position","overlayAction","right","top","maxWidth","maxHeight","_ref","label","onChange","value","id","name","_ref$type","type","_ref$autoComplete","autoComplete","_ref$disabled","disabled","_ref$multiline","multiline","_ref$tooltip","tooltip","_ref$index","index","_ref$error","error","_ref$required","required","_ref$placeholder","placeholder","min","max","overlayId","_ref$overlayIcon","overlayIcon","_ref$overlayObject","overlayObject","_ref$extraInputProps","extraInputProps","_ref$noLabelMinWidth","noLabelMinWidth","_ref$pattern","pattern","_ref$autoFocus","autoFocus","_ref$className","className","onKeyPress","onFocus","onPaste","inputProps","_useState","useState","_useState2","_slicedToArray","toggleTextInput","setToggleTextInput","inputBoxWrapperIcon","inputBoxWrapperType","VisibilityOffIcon","RemoveRedEyeIcon","React","children","_jsxs","Grid","container","clsx","errorInField","inputBoxContainer","InputLabel","htmlFor","noMinWidthLabel","inputLabel","tooltipContainer","Tooltip","title","placement","HelpIcon","fullWidth","helperText","inputRebase","concat","IconButton","onClick","size","disableFocusRipple","disableRipple","disableTouchRipple","headerContainer","backgroundColor","borderRadius","marginBottom","padding","paddingBottom","labelHeadline","color","fontSize","marginLeft","labelText","marginRight","closeDeleteModalAndRefresh","deleteOpen","selectedItem","endpoint","element","dispatch","useAppDispatch","_useApi","useApi","err","setErrorSnackMessage","_useApi2","deleteLoading","invokeDeleteApi","retypeKey","setRetypeKey","ConfirmDialog","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onClose","confirmButtonProps","confirmationContent","DialogContentText","item","xs","WarningMessage","InputBoxWrapper","event","target","e","preventDefault","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/2032.54dedb37.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","screens/Console/Common/WarningMessage/WarningMessage.tsx","screens/Console/KMS/DeleteKMSModal.tsx","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.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 .\nimport React, { ClipboardEvent, useState } 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 VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\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 \"mds\";\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 onFocus?: () => void;\n onPaste?: (e: ClipboardEvent) => 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 });\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 onFocus,\n onPaste,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n const [toggleTextInput, setToggleTextInput] = useState(false);\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 let inputBoxWrapperIcon = overlayIcon;\n let inputBoxWrapperType = type;\n\n if (type === \"password\" && overlayIcon === null) {\n inputBoxWrapperIcon = toggleTextInput ? (\n \n ) : (\n \n );\n inputBoxWrapperType = toggleTextInput ? \"text\" : \"password\";\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) 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\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IWarningMessage {\n classes: any;\n label: any;\n title: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n backgroundColor: \"#e78794\",\n borderRadius: 3,\n marginBottom: 20,\n padding: 1,\n paddingBottom: 15,\n },\n labelHeadline: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n },\n labelText: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n marginRight: 40,\n },\n });\n\nconst WarningMessage = ({ classes, label, title }: IWarningMessage) => {\n return (\n
\n
{title}
\n
{label}
\n
\n );\n};\n\nexport default withStyles(styles)(WarningMessage);\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, { useState } from \"react\";\n\nimport { DialogContentText, Grid } from \"@mui/material\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport WarningMessage from \"../Common/WarningMessage/WarningMessage\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { ConfirmDeleteIcon } from \"mds\";\n\ninterface IDeleteKMSModalProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedItem: string;\n endpoint: string;\n element: string;\n}\n\nconst DeleteKMSModal = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedItem,\n endpoint,\n element,\n}: IDeleteKMSModalProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [retypeKey, setRetypeKey] = useState(\"\");\n\n if (!selectedItem) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `${endpoint}${selectedItem}`);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypeKey !== selectedItem || deleteLoading,\n }}\n confirmationContent={\n \n \n \n \n To continue please type {selectedItem} in the box.\n \n ) => {\n setRetypeKey(event.target.value);\n }}\n onPaste={(e) => e.preventDefault()}\n label=\"\"\n value={retypeKey}\n />\n \n \n }\n />\n );\n};\n\nexport default DeleteKMSModal;\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\nexports.default = _default;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\nexports.default = _default;"],"names":["inputStyles","makeStyles","theme","createStyles","_objectSpread","inputFieldStyles","InputField","props","classes","_jsx","TextField","InputProps","withStyles","fieldBasic","tooltipHelper","textBoxContainer","flexGrow","position","overlayAction","right","top","maxWidth","maxHeight","_ref","label","onChange","value","id","name","_ref$type","type","_ref$autoComplete","autoComplete","_ref$disabled","disabled","_ref$multiline","multiline","_ref$tooltip","tooltip","_ref$index","index","_ref$error","error","_ref$required","required","_ref$placeholder","placeholder","min","max","overlayId","_ref$overlayIcon","overlayIcon","_ref$overlayObject","overlayObject","_ref$extraInputProps","extraInputProps","_ref$noLabelMinWidth","noLabelMinWidth","_ref$pattern","pattern","_ref$autoFocus","autoFocus","_ref$className","className","onKeyPress","onFocus","onPaste","inputProps","_useState","useState","_useState2","_slicedToArray","toggleTextInput","setToggleTextInput","inputBoxWrapperIcon","inputBoxWrapperType","VisibilityOffIcon","RemoveRedEyeIcon","React","children","_jsxs","Grid","container","clsx","errorInField","inputBoxContainer","InputLabel","htmlFor","noMinWidthLabel","inputLabel","tooltipContainer","Tooltip","title","placement","HelpIcon","fullWidth","helperText","inputRebase","concat","IconButton","onClick","size","disableFocusRipple","disableRipple","disableTouchRipple","headerContainer","backgroundColor","borderRadius","marginBottom","padding","paddingBottom","labelHeadline","color","fontSize","marginLeft","labelText","marginRight","closeDeleteModalAndRefresh","deleteOpen","selectedItem","endpoint","element","dispatch","useAppDispatch","_useApi","useApi","err","setErrorSnackMessage","_useApi2","deleteLoading","invokeDeleteApi","retypeKey","setRetypeKey","ConfirmDialog","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onClose","confirmButtonProps","confirmationContent","DialogContentText","item","xs","WarningMessage","InputBoxWrapper","event","target","e","preventDefault","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/222.7f3906bd.chunk.js b/portal-ui/build/static/js/222.7f3906bd.chunk.js
deleted file mode 100644
index 19d2f890d..000000000
--- a/portal-ui/build/static/js/222.7f3906bd.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[222],{93840:function(e,t,r){var o=r(72791).createContext(void 0);t.Z=o},76147:function(e,t,r){function o(e){var t=e.props,r=e.states,o=e.muiFormControl;return r.reduce((function(e,r){return e[r]=t[r],o&&"undefined"===typeof t[r]&&(e[r]=o[r]),e}),{})}r.d(t,{Z:function(){return o}})},52930:function(e,t,r){r.d(t,{Z:function(){return n}});var o=r(72791),a=r(93840);function n(){return o.useContext(a.Z)}},17133:function(e,t,r){var o=r(4942),a=r(63366),n=r(87462),i=r(72791),c=r(28182),s=r(94419),l=r(76147),d=r(52930),u=r(14036),p=r(31402),m=r(66934),h=r(10843),f=r(80184),v=["children","className","color","component","disabled","error","filled","focused","required"],Z=(0,m.ZP)("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:function(e,t){var r=e.ownerState;return(0,n.Z)({},t.root,"secondary"===r.color&&t.colorSecondary,r.filled&&t.filled)}})((function(e){var t,r=e.theme,a=e.ownerState;return(0,n.Z)({color:(r.vars||r).palette.text.secondary},r.typography.body1,(t={lineHeight:"1.4375em",padding:0,position:"relative"},(0,o.Z)(t,"&.".concat(h.Z.focused),{color:(r.vars||r).palette[a.color].main}),(0,o.Z)(t,"&.".concat(h.Z.disabled),{color:(r.vars||r).palette.text.disabled}),(0,o.Z)(t,"&.".concat(h.Z.error),{color:(r.vars||r).palette.error.main}),t))})),b=(0,m.ZP)("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:function(e,t){return t.asterisk}})((function(e){var t=e.theme;return(0,o.Z)({},"&.".concat(h.Z.error),{color:(t.vars||t).palette.error.main})})),k=i.forwardRef((function(e,t){var r=(0,p.Z)({props:e,name:"MuiFormLabel"}),o=r.children,i=r.className,m=r.component,k=void 0===m?"label":m,g=(0,a.Z)(r,v),x=(0,d.Z)(),w=(0,l.Z)({props:r,muiFormControl:x,states:["color","required","focused","disabled","error","filled"]}),S=(0,n.Z)({},r,{color:w.color||"primary",component:k,disabled:w.disabled,error:w.error,filled:w.filled,focused:w.focused,required:w.required}),y=function(e){var t=e.classes,r=e.color,o=e.focused,a=e.disabled,n=e.error,i=e.filled,c=e.required,l={root:["root","color".concat((0,u.Z)(r)),a&&"disabled",n&&"error",i&&"filled",o&&"focused",c&&"required"],asterisk:["asterisk",n&&"error"]};return(0,s.Z)(l,h.M,t)}(S);return(0,f.jsxs)(Z,(0,n.Z)({as:k,ownerState:S,className:(0,c.Z)(y.root,i),ref:t},g,{children:[o,w.required&&(0,f.jsxs)(b,{ownerState:S,"aria-hidden":!0,className:y.asterisk,children:["\u2009","*"]})]}))}));t.Z=k},10843:function(e,t,r){r.d(t,{M:function(){return n}});var o=r(75878),a=r(21217);function n(e){return(0,a.Z)("MuiFormLabel",e)}var i=(0,o.Z)("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]);t.Z=i},30829:function(e,t,r){r.d(t,{Z:function(){return x}});var o=r(4942),a=r(63366),n=r(87462),i=r(72791),c=r(94419),s=r(28182),l=r(76147),d=r(52930),u=r(17133),p=r(10843),m=r(31402),h=r(66934),f=r(75878),v=r(21217);function Z(e){return(0,v.Z)("MuiInputLabel",e)}(0,f.Z)("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);var b=r(80184),k=["disableAnimation","margin","shrink","variant","className"],g=(0,h.ZP)(u.Z,{shouldForwardProp:function(e){return(0,h.FO)(e)||"classes"===e},name:"MuiInputLabel",slot:"Root",overridesResolver:function(e,t){var r=e.ownerState;return[(0,o.Z)({},"& .".concat(p.Z.asterisk),t.asterisk),t.root,r.formControl&&t.formControl,"small"===r.size&&t.sizeSmall,r.shrink&&t.shrink,!r.disableAnimation&&t.animated,t[r.variant]]}})((function(e){var t=e.theme,r=e.ownerState;return(0,n.Z)({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},r.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},"small"===r.size&&{transform:"translate(0, 17px) scale(1)"},r.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!r.disableAnimation&&{transition:t.transitions.create(["color","transform","max-width"],{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut})},"filled"===r.variant&&(0,n.Z)({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===r.size&&{transform:"translate(12px, 13px) scale(1)"},r.shrink&&(0,n.Z)({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},"small"===r.size&&{transform:"translate(12px, 4px) scale(0.75)"})),"outlined"===r.variant&&(0,n.Z)({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===r.size&&{transform:"translate(14px, 9px) scale(1)"},r.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))})),x=i.forwardRef((function(e,t){var r=(0,m.Z)({name:"MuiInputLabel",props:e}),o=r.disableAnimation,i=void 0!==o&&o,u=r.shrink,p=r.className,h=(0,a.Z)(r,k),f=(0,d.Z)(),v=u;"undefined"===typeof v&&f&&(v=f.filled||f.focused||f.adornedStart);var x=(0,l.Z)({props:r,muiFormControl:f,states:["size","variant","required"]}),w=(0,n.Z)({},r,{disableAnimation:i,formControl:f,shrink:v,size:x.size,variant:x.variant,required:x.required}),S=function(e){var t=e.classes,r=e.formControl,o=e.size,a=e.shrink,i={root:["root",r&&"formControl",!e.disableAnimation&&"animated",a&&"shrink","small"===o&&"sizeSmall",e.variant],asterisk:[e.required&&"asterisk"]},s=(0,c.Z)(i,Z,t);return(0,n.Z)({},t,s)}(w);return(0,b.jsx)(g,(0,n.Z)({"data-shrink":v,ownerState:w,ref:t,className:(0,s.Z)(S.root,p)},h,{classes:S}))}))},9955:function(e,t,r){r.d(t,{Z:function(){return y}});var o=r(4942),a=r(63366),n=r(87462),i=r(72791),c=r(28182),s=r(94419),l=r(12065),d=r(14036),u=r(97278),p=r(31402),m=r(66934),h=r(75878),f=r(21217);function v(e){return(0,f.Z)("MuiSwitch",e)}var Z=(0,h.Z)("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),b=r(80184),k=["className","color","edge","size","sx"],g=(0,m.ZP)("span",{name:"MuiSwitch",slot:"Root",overridesResolver:function(e,t){var r=e.ownerState;return[t.root,r.edge&&t["edge".concat((0,d.Z)(r.edge))],t["size".concat((0,d.Z)(r.size))]]}})((function(e){var t,r=e.ownerState;return(0,n.Z)({display:"inline-flex",width:58,height:38,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"}},"start"===r.edge&&{marginLeft:-8},"end"===r.edge&&{marginRight:-8},"small"===r.size&&(t={width:40,height:24,padding:7},(0,o.Z)(t,"& .".concat(Z.thumb),{width:16,height:16}),(0,o.Z)(t,"& .".concat(Z.switchBase),(0,o.Z)({padding:4},"&.".concat(Z.checked),{transform:"translateX(16px)"})),t))})),x=(0,m.ZP)(u.Z,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:function(e,t){var r=e.ownerState;return[t.switchBase,(0,o.Z)({},"& .".concat(Z.input),t.input),"default"!==r.color&&t["color".concat((0,d.Z)(r.color))]]}})((function(e){var t,r=e.theme;return t={position:"absolute",top:0,left:0,zIndex:1,color:r.vars?r.vars.palette.Switch.defaultColor:"".concat("light"===r.palette.mode?r.palette.common.white:r.palette.grey[300]),transition:r.transitions.create(["left","transform"],{duration:r.transitions.duration.shortest})},(0,o.Z)(t,"&.".concat(Z.checked),{transform:"translateX(20px)"}),(0,o.Z)(t,"&.".concat(Z.disabled),{color:r.vars?r.vars.palette.Switch.defaultDisabledColor:"".concat("light"===r.palette.mode?r.palette.grey[100]:r.palette.grey[600])}),(0,o.Z)(t,"&.".concat(Z.checked," + .").concat(Z.track),{opacity:.5}),(0,o.Z)(t,"&.".concat(Z.disabled," + .").concat(Z.track),{opacity:r.vars?r.vars.opacity.switchTrackDisabled:"".concat("light"===r.palette.mode?.12:.2)}),(0,o.Z)(t,"& .".concat(Z.input),{left:"-100%",width:"300%"}),t}),(function(e){var t,r=e.theme,a=e.ownerState;return(0,n.Z)({"&:hover":{backgroundColor:r.vars?"rgba(".concat(r.vars.palette.action.activeChannel," / ").concat(r.vars.palette.action.hoverOpacity,")"):(0,l.Fq)(r.palette.action.active,r.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==a.color&&(t={},(0,o.Z)(t,"&.".concat(Z.checked),(0,o.Z)({color:(r.vars||r).palette[a.color].main,"&:hover":{backgroundColor:r.vars?"rgba(".concat(r.vars.palette[a.color].mainChannel," / ").concat(r.vars.palette.action.hoverOpacity,")"):(0,l.Fq)(r.palette[a.color].main,r.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&.".concat(Z.disabled),{color:r.vars?r.vars.palette.Switch["".concat(a.color,"DisabledColor")]:"".concat("light"===r.palette.mode?(0,l.$n)(r.palette[a.color].main,.62):(0,l._j)(r.palette[a.color].main,.55))})),(0,o.Z)(t,"&.".concat(Z.checked," + .").concat(Z.track),{backgroundColor:(r.vars||r).palette[a.color].main}),t))})),w=(0,m.ZP)("span",{name:"MuiSwitch",slot:"Track",overridesResolver:function(e,t){return t.track}})((function(e){var t=e.theme;return{height:"100%",width:"100%",borderRadius:7,zIndex:-1,transition:t.transitions.create(["opacity","background-color"],{duration:t.transitions.duration.shortest}),backgroundColor:t.vars?t.vars.palette.common.onBackground:"".concat("light"===t.palette.mode?t.palette.common.black:t.palette.common.white),opacity:t.vars?t.vars.opacity.switchTrack:"".concat("light"===t.palette.mode?.38:.3)}})),S=(0,m.ZP)("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:function(e,t){return t.thumb}})((function(e){var t=e.theme;return{boxShadow:(t.vars||t).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}})),y=i.forwardRef((function(e,t){var r=(0,p.Z)({props:e,name:"MuiSwitch"}),o=r.className,i=r.color,l=void 0===i?"primary":i,u=r.edge,m=void 0!==u&&u,h=r.size,f=void 0===h?"medium":h,Z=r.sx,y=(0,a.Z)(r,k),C=(0,n.Z)({},r,{color:l,edge:m,size:f}),z=function(e){var t=e.classes,r=e.edge,o=e.size,a=e.color,i=e.checked,c=e.disabled,l={root:["root",r&&"edge".concat((0,d.Z)(r)),"size".concat((0,d.Z)(o))],switchBase:["switchBase","color".concat((0,d.Z)(a)),i&&"checked",c&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},u=(0,s.Z)(l,v,t);return(0,n.Z)({},t,u)}(C),R=(0,b.jsx)(S,{className:z.thumb,ownerState:C});return(0,b.jsxs)(g,{className:(0,c.Z)(z.root,o),sx:Z,ownerState:C,children:[(0,b.jsx)(x,(0,n.Z)({type:"checkbox",icon:R,checkedIcon:R,ref:t,ownerState:C},y,{classes:(0,n.Z)({},z,{root:z.switchBase})})),(0,b.jsx)(w,{className:z.track,ownerState:C})]})}))},97278:function(e,t,r){r.d(t,{Z:function(){return x}});var o=r(29439),a=r(63366),n=r(87462),i=r(72791),c=r(28182),s=r(94419),l=r(14036),d=r(66934),u=r(98278),p=r(52930),m=r(95080),h=r(75878),f=r(21217);function v(e){return(0,f.Z)("PrivateSwitchBase",e)}(0,h.Z)("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);var Z=r(80184),b=["autoFocus","checked","checkedIcon","className","defaultChecked","disabled","disableFocusRipple","edge","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"],k=(0,d.ZP)(m.Z)((function(e){var t=e.ownerState;return(0,n.Z)({padding:9,borderRadius:"50%"},"start"===t.edge&&{marginLeft:"small"===t.size?-3:-12},"end"===t.edge&&{marginRight:"small"===t.size?-3:-12})})),g=(0,d.ZP)("input")({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),x=i.forwardRef((function(e,t){var r=e.autoFocus,i=e.checked,d=e.checkedIcon,m=e.className,h=e.defaultChecked,f=e.disabled,x=e.disableFocusRipple,w=void 0!==x&&x,S=e.edge,y=void 0!==S&&S,C=e.icon,z=e.id,R=e.inputProps,F=e.inputRef,M=e.name,q=e.onBlur,B=e.onChange,I=e.onFocus,N=e.readOnly,P=e.required,O=void 0!==P&&P,j=e.tabIndex,L=e.type,A=e.value,E=(0,a.Z)(e,b),W=(0,u.Z)({controlled:i,default:Boolean(h),name:"SwitchBase",state:"checked"}),T=(0,o.Z)(W,2),D=T[0],_=T[1],X=(0,p.Z)(),H=f;X&&"undefined"===typeof H&&(H=X.disabled);var $="checkbox"===L||"radio"===L,G=(0,n.Z)({},e,{checked:D,disabled:H,disableFocusRipple:w,edge:y}),J=function(e){var t=e.classes,r=e.checked,o=e.disabled,a=e.edge,n={root:["root",r&&"checked",o&&"disabled",a&&"edge".concat((0,l.Z)(a))],input:["input"]};return(0,s.Z)(n,v,t)}(G);return(0,Z.jsxs)(k,(0,n.Z)({component:"span",className:(0,c.Z)(J.root,m),centerRipple:!0,focusRipple:!w,disabled:H,tabIndex:null,role:void 0,onFocus:function(e){I&&I(e),X&&X.onFocus&&X.onFocus(e)},onBlur:function(e){q&&q(e),X&&X.onBlur&&X.onBlur(e)},ownerState:G,ref:t},E,{children:[(0,Z.jsx)(g,(0,n.Z)({autoFocus:r,checked:i,defaultChecked:h,className:J.input,disabled:H,id:$?z:void 0,name:M,onChange:function(e){if(!e.nativeEvent.defaultPrevented){var t=e.target.checked;_(t),B&&B(e,t)}},readOnly:N,ref:F,required:O,ownerState:G,tabIndex:j,type:L},"checkbox"===L&&void 0===A?{}:{value:A},R)),D?d:C]}))}))}}]);
-//# sourceMappingURL=222.7f3906bd.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/222.7f3906bd.chunk.js.map b/portal-ui/build/static/js/222.7f3906bd.chunk.js.map
deleted file mode 100644
index 7625e7292..000000000
--- a/portal-ui/build/static/js/222.7f3906bd.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/222.7f3906bd.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/Switch/switchClasses.js","../node_modules/@mui/material/Switch/Switch.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js"],"sourcesContent":["import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst FormControlContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\nexport default FormControlContext;","export default function formControlState({\n props,\n states,\n muiFormControl\n}) {\n return states.reduce((acc, state) => {\n acc[state] = props[state];\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n return acc;\n }, {});\n}","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"required\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport formLabelClasses, { getFormLabelUtilityClasses } from './formLabelClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n focused,\n disabled,\n error,\n filled,\n required\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', filled && 'filled', focused && 'focused', required && 'required'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormLabelUtilityClasses, classes);\n};\nexport const FormLabelRoot = styled('label', {\n name: 'MuiFormLabel',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return _extends({}, styles.root, ownerState.color === 'secondary' && styles.colorSecondary, ownerState.filled && styles.filled);\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, theme.typography.body1, {\n lineHeight: '1.4375em',\n padding: 0,\n position: 'relative',\n [`&.${formLabelClasses.focused}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main\n },\n [`&.${formLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(({\n theme\n}) => ({\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\nconst FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormLabel'\n });\n const {\n children,\n className,\n component = 'label'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']\n });\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n component,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(FormLabelRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [children, fcs.required && /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormLabel.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\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 * If `true`, the label should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the label should use filled classes key.\n */\n filled: PropTypes.bool,\n /**\n * If `true`, the input of this label is focused (used by `FormGroup` components).\n */\n focused: PropTypes.bool,\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\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} : void 0;\nexport default FormLabel;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormLabel', slot);\n}\nconst formLabelClasses = generateUtilityClasses('MuiFormLabel', ['root', 'colorSecondary', 'focused', 'disabled', 'error', 'filled', 'required', 'asterisk']);\nexport default formLabelClasses;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getInputLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiInputLabel', slot);\n}\nconst inputLabelClasses = generateUtilityClasses('MuiInputLabel', ['root', 'focused', 'disabled', 'error', 'required', 'asterisk', 'formControl', 'sizeSmall', 'shrink', 'animated', 'standard', 'filled', 'outlined']);\nexport default inputLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableAnimation\", \"margin\", \"shrink\", \"variant\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport clsx from 'clsx';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport FormLabel, { formLabelClasses } from '../FormLabel';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { getInputLabelUtilityClasses } from './inputLabelClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n formControl,\n size,\n shrink,\n disableAnimation,\n variant,\n required\n } = ownerState;\n const slots = {\n root: ['root', formControl && 'formControl', !disableAnimation && 'animated', shrink && 'shrink', size === 'small' && 'sizeSmall', variant],\n asterisk: [required && 'asterisk']\n };\n const composedClasses = composeClasses(slots, getInputLabelUtilityClasses, classes);\n return _extends({}, classes, composedClasses);\n};\nconst InputLabelRoot = styled(FormLabel, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInputLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formLabelClasses.asterisk}`]: styles.asterisk\n }, styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, styles[ownerState.variant]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'block',\n transformOrigin: 'top left',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%'\n}, ownerState.formControl && {\n position: 'absolute',\n left: 0,\n top: 0,\n // slight alteration to spec spacing to match visual spec result\n transform: 'translate(0, 20px) scale(1)'\n}, ownerState.size === 'small' && {\n // Compensation for the `Input.inputSizeSmall` style.\n transform: 'translate(0, 17px) scale(1)'\n}, ownerState.shrink && {\n transform: 'translate(0, -1.5px) scale(0.75)',\n transformOrigin: 'top left',\n maxWidth: '133%'\n}, !ownerState.disableAnimation && {\n transition: theme.transitions.create(['color', 'transform', 'max-width'], {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n })\n}, ownerState.variant === 'filled' && _extends({\n // Chrome's autofill feature gives the input field a yellow background.\n // Since the input field is behind the label in the HTML tree,\n // the input field is drawn last and hides the label with an opaque background color.\n // zIndex: 1 will raise the label above opaque background-colors of input.\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(12px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 13px) scale(1)'\n}, ownerState.shrink && _extends({\n userSelect: 'none',\n pointerEvents: 'auto',\n transform: 'translate(12px, 7px) scale(0.75)',\n maxWidth: 'calc(133% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 4px) scale(0.75)'\n})), ownerState.variant === 'outlined' && _extends({\n // see comment above on filled.zIndex\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(14px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(14px, 9px) scale(1)'\n}, ownerState.shrink && {\n userSelect: 'none',\n pointerEvents: 'auto',\n // Theoretically, we should have (8+5)*2/0.75 = 34px\n // but it feels a better when it bleeds a bit on the left, so 32px.\n maxWidth: 'calc(133% - 32px)',\n transform: 'translate(14px, -9px) scale(0.75)'\n})));\nconst InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(inProps, ref) {\n const props = useThemeProps({\n name: 'MuiInputLabel',\n props: inProps\n });\n const {\n disableAnimation = false,\n shrink: shrinkProp,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n let shrink = shrinkProp;\n if (typeof shrink === 'undefined' && muiFormControl) {\n shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['size', 'variant', 'required']\n });\n const ownerState = _extends({}, props, {\n disableAnimation,\n formControl: muiFormControl,\n shrink,\n size: fcs.size,\n variant: fcs.variant,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(InputLabelRoot, _extends({\n \"data-shrink\": shrink,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? InputLabel.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the transition animation is disabled.\n * @default false\n */\n disableAnimation: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` of this label is focused.\n */\n focused: PropTypes.bool,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n /**\n * if `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * If `true`, the label is shrunk.\n */\n shrink: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'normal'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['normal', 'small']), PropTypes.string]),\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 * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputLabel;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSwitchUtilityClass(slot) {\n return generateUtilityClass('MuiSwitch', slot);\n}\nconst switchClasses = generateUtilityClasses('MuiSwitch', ['root', 'edgeStart', 'edgeEnd', 'switchBase', 'colorPrimary', 'colorSecondary', 'sizeSmall', 'sizeMedium', 'checked', 'disabled', 'input', 'thumb', 'track']);\nexport default switchClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"edge\", \"size\", \"sx\"];\n// @inheritedComponent IconButton\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha, darken, lighten } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport SwitchBase from '../internal/SwitchBase';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport switchClasses, { getSwitchUtilityClass } from './switchClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n edge,\n size,\n color,\n checked,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', edge && `edge${capitalize(edge)}`, `size${capitalize(size)}`],\n switchBase: ['switchBase', `color${capitalize(color)}`, checked && 'checked', disabled && 'disabled'],\n thumb: ['thumb'],\n track: ['track'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getSwitchUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst SwitchRoot = styled('span', {\n name: 'MuiSwitch',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.edge && styles[`edge${capitalize(ownerState.edge)}`], styles[`size${capitalize(ownerState.size)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'inline-flex',\n width: 34 + 12 * 2,\n height: 14 + 12 * 2,\n overflow: 'hidden',\n padding: 12,\n boxSizing: 'border-box',\n position: 'relative',\n flexShrink: 0,\n zIndex: 0,\n // Reset the stacking context.\n verticalAlign: 'middle',\n // For correct alignment with the text.\n '@media print': {\n colorAdjust: 'exact'\n }\n}, ownerState.edge === 'start' && {\n marginLeft: -8\n}, ownerState.edge === 'end' && {\n marginRight: -8\n}, ownerState.size === 'small' && {\n width: 40,\n height: 24,\n padding: 7,\n [`& .${switchClasses.thumb}`]: {\n width: 16,\n height: 16\n },\n [`& .${switchClasses.switchBase}`]: {\n padding: 4,\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(16px)'\n }\n }\n}));\nconst SwitchSwitchBase = styled(SwitchBase, {\n name: 'MuiSwitch',\n slot: 'SwitchBase',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.switchBase, {\n [`& .${switchClasses.input}`]: styles.input\n }, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme\n}) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n // Render above the focus ripple.\n color: theme.vars ? theme.vars.palette.Switch.defaultColor : `${theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.grey[300]}`,\n transition: theme.transitions.create(['left', 'transform'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(20px)'\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.vars ? theme.vars.palette.Switch.defaultDisabledColor : `${theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[600]}`\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n opacity: 0.5\n },\n [`&.${switchClasses.disabled} + .${switchClasses.track}`]: {\n opacity: theme.vars ? theme.vars.opacity.switchTrackDisabled : `${theme.palette.mode === 'light' ? 0.12 : 0.2}`\n },\n [`& .${switchClasses.input}`]: {\n left: '-100%',\n width: '300%'\n }\n}), ({\n theme,\n ownerState\n}) => _extends({\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${switchClasses.checked}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main,\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.vars ? theme.vars.palette.Switch[`${ownerState.color}DisabledColor`] : `${theme.palette.mode === 'light' ? lighten(theme.palette[ownerState.color].main, 0.62) : darken(theme.palette[ownerState.color].main, 0.55)}`\n }\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main\n }\n}));\nconst SwitchTrack = styled('span', {\n name: 'MuiSwitch',\n slot: 'Track',\n overridesResolver: (props, styles) => styles.track\n})(({\n theme\n}) => ({\n height: '100%',\n width: '100%',\n borderRadius: 14 / 2,\n zIndex: -1,\n transition: theme.transitions.create(['opacity', 'background-color'], {\n duration: theme.transitions.duration.shortest\n }),\n backgroundColor: theme.vars ? theme.vars.palette.common.onBackground : `${theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white}`,\n opacity: theme.vars ? theme.vars.opacity.switchTrack : `${theme.palette.mode === 'light' ? 0.38 : 0.3}`\n}));\nconst SwitchThumb = styled('span', {\n name: 'MuiSwitch',\n slot: 'Thumb',\n overridesResolver: (props, styles) => styles.thumb\n})(({\n theme\n}) => ({\n boxShadow: (theme.vars || theme).shadows[1],\n backgroundColor: 'currentColor',\n width: 20,\n height: 20,\n borderRadius: '50%'\n}));\nconst Switch = /*#__PURE__*/React.forwardRef(function Switch(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSwitch'\n });\n const {\n className,\n color = 'primary',\n edge = false,\n size = 'medium',\n sx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n edge,\n size\n });\n const classes = useUtilityClasses(ownerState);\n const icon = /*#__PURE__*/_jsx(SwitchThumb, {\n className: classes.thumb,\n ownerState: ownerState\n });\n return /*#__PURE__*/_jsxs(SwitchRoot, {\n className: clsx(classes.root, className),\n sx: sx,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(SwitchSwitchBase, _extends({\n type: \"checkbox\",\n icon: icon,\n checkedIcon: icon,\n ref: ref,\n ownerState: ownerState\n }, other, {\n classes: _extends({}, classes, {\n root: classes.switchBase\n })\n })), /*#__PURE__*/_jsx(SwitchTrack, {\n className: classes.track,\n ownerState: ownerState\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Switch.propTypes /* remove-proptypes */ = {\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 * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense switch styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\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 * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Switch;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSwitchBaseUtilityClass(slot) {\n return generateUtilityClass('PrivateSwitchBase', slot);\n}\nconst switchBaseClasses = generateUtilityClasses('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);\nexport default switchBaseClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"checked\", \"checkedIcon\", \"className\", \"defaultChecked\", \"disabled\", \"disableFocusRipple\", \"edge\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport ButtonBase from '../ButtonBase';\nimport { getSwitchBaseUtilityClass } from './switchBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n checked,\n disabled,\n edge\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n input: ['input']\n };\n return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\nconst SwitchBaseRoot = styled(ButtonBase)(({\n ownerState\n}) => _extends({\n padding: 9,\n borderRadius: '50%'\n}, ownerState.edge === 'start' && {\n marginLeft: ownerState.size === 'small' ? -3 : -12\n}, ownerState.edge === 'end' && {\n marginRight: ownerState.size === 'small' ? -3 : -12\n}));\nconst SwitchBaseInput = styled('input')({\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n});\n\n/**\n * @ignore - internal component.\n */\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n const {\n autoFocus,\n checked: checkedProp,\n checkedIcon,\n className,\n defaultChecked,\n disabled: disabledProp,\n disableFocusRipple = false,\n edge = false,\n icon,\n id,\n inputProps,\n inputRef,\n name,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n required = false,\n tabIndex,\n type,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n });\n const muiFormControl = useFormControl();\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n const handleInputChange = event => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n if (onChange) {\n // TODO v6: remove the second argument.\n onChange(event, newChecked);\n }\n };\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n const hasLabelFor = type === 'checkbox' || type === 'radio';\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n disableFocusRipple,\n edge\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SwitchBaseRoot, _extends({\n component: \"span\",\n className: clsx(classes.root, className),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SwitchBaseInput, _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor ? id : undefined,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n ownerState: ownerState,\n tabIndex: tabIndex,\n type: type\n }, type === 'checkbox' && value === undefined ? {} : {\n value\n }, inputProps)), checked ? checkedIcon : icon]\n }));\n});\n\n// NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /*\n * @ignore\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object,\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default SwitchBase;"],"names":["FormControlContext","React","undefined","formControlState","_ref","props","states","muiFormControl","reduce","acc","state","useFormControl","_excluded","FormLabelRoot","styled","name","slot","overridesResolver","styles","ownerState","_extends","root","color","colorSecondary","filled","_ref2","_extends2","theme","vars","palette","text","secondary","typography","body1","lineHeight","padding","position","_defineProperty","concat","formLabelClasses","focused","main","disabled","error","AsteriskComponent","asterisk","_ref3","FormLabel","inProps","ref","useThemeProps","children","className","_props$component","component","other","_objectWithoutPropertiesLoose","fcs","required","classes","slots","capitalize","composeClasses","getFormLabelUtilityClasses","useUtilityClasses","_jsxs","as","clsx","generateUtilityClass","generateUtilityClasses","getInputLabelUtilityClasses","InputLabelRoot","shouldForwardProp","prop","rootShouldForwardProp","formControl","size","sizeSmall","shrink","disableAnimation","animated","variant","display","transformOrigin","whiteSpace","overflow","textOverflow","maxWidth","left","top","transform","transition","transitions","create","duration","shorter","easing","easeOut","zIndex","pointerEvents","userSelect","_props$disableAnimati","shrinkProp","adornedStart","composedClasses","_jsx","getSwitchUtilityClass","SwitchRoot","edge","width","height","boxSizing","flexShrink","verticalAlign","colorAdjust","marginLeft","marginRight","switchClasses","thumb","switchBase","checked","SwitchSwitchBase","SwitchBase","input","_ref4","_ref5","Switch","defaultColor","mode","common","white","grey","shortest","defaultDisabledColor","track","opacity","switchTrackDisabled","_ref6","_ref7","backgroundColor","action","activeChannel","hoverOpacity","alpha","active","mainChannel","lighten","darken","SwitchTrack","_ref8","borderRadius","onBackground","black","switchTrack","SwitchThumb","_ref9","boxShadow","shadows","_props$color","_props$edge","_props$size","sx","icon","type","checkedIcon","getSwitchBaseUtilityClass","SwitchBaseRoot","ButtonBase","SwitchBaseInput","cursor","margin","autoFocus","checkedProp","defaultChecked","disabledProp","_props$disableFocusRi","disableFocusRipple","id","inputProps","inputRef","onBlur","onChange","onFocus","readOnly","_props$required","tabIndex","value","_useControlled","useControlled","controlled","default","Boolean","_useControlled2","_slicedToArray","setCheckedState","hasLabelFor","centerRipple","focusRipple","role","event","nativeEvent","defaultPrevented","newChecked","target"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/225.a62217d0.chunk.js b/portal-ui/build/static/js/225.a62217d0.chunk.js
new file mode 100644
index 000000000..d1b0d0fc3
--- /dev/null
+++ b/portal-ui/build/static/js/225.a62217d0.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[225],{81918:function(e,a,o){o.d(a,{Z:function(){return w}});var t=o(4942),c=o(63366),l=o(87462),r=o(72791),n=o(28182),i=o(94419),s=o(12065),d=o(76189),p=o(80184),v=(0,d.Z)((0,p.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"),u=o(42071),m=o(14036),b=o(95080),Z=o(31402),f=o(66934),g=o(75878),C=o(21217);function h(e){return(0,C.Z)("MuiChip",e)}var y=(0,g.Z)("MuiChip",["root","sizeSmall","sizeMedium","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),k=["avatar","className","clickable","color","component","deleteIcon","disabled","icon","label","onClick","onDelete","onKeyDown","onKeyUp","size","variant","tabIndex","skipFocusWhenDisabled"],S=(0,f.ZP)("div",{name:"MuiChip",slot:"Root",overridesResolver:function(e,a){var o=e.ownerState,c=o.color,l=o.iconColor,r=o.clickable,n=o.onDelete,i=o.size,s=o.variant;return[(0,t.Z)({},"& .".concat(y.avatar),a.avatar),(0,t.Z)({},"& .".concat(y.avatar),a["avatar".concat((0,m.Z)(i))]),(0,t.Z)({},"& .".concat(y.avatar),a["avatarColor".concat((0,m.Z)(c))]),(0,t.Z)({},"& .".concat(y.icon),a.icon),(0,t.Z)({},"& .".concat(y.icon),a["icon".concat((0,m.Z)(i))]),(0,t.Z)({},"& .".concat(y.icon),a["iconColor".concat((0,m.Z)(l))]),(0,t.Z)({},"& .".concat(y.deleteIcon),a.deleteIcon),(0,t.Z)({},"& .".concat(y.deleteIcon),a["deleteIcon".concat((0,m.Z)(i))]),(0,t.Z)({},"& .".concat(y.deleteIcon),a["deleteIconColor".concat((0,m.Z)(c))]),(0,t.Z)({},"& .".concat(y.deleteIcon),a["deleteIcon".concat((0,m.Z)(s),"Color").concat((0,m.Z)(c))]),a.root,a["size".concat((0,m.Z)(i))],a["color".concat((0,m.Z)(c))],r&&a.clickable,r&&"default"!==c&&a["clickableColor".concat((0,m.Z)(c),")")],n&&a.deletable,n&&"default"!==c&&a["deletableColor".concat((0,m.Z)(c))],a[s],a["".concat(s).concat((0,m.Z)(c))]]}})((function(e){var a,o=e.theme,c=e.ownerState,r="light"===o.palette.mode?o.palette.grey[700]:o.palette.grey[300];return(0,l.Z)((a={maxWidth:"100%",fontFamily:o.typography.fontFamily,fontSize:o.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(o.vars||o).palette.text.primary,backgroundColor:(o.vars||o).palette.action.selected,borderRadius:16,whiteSpace:"nowrap",transition:o.transitions.create(["background-color","box-shadow"]),outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box"},(0,t.Z)(a,"&.".concat(y.disabled),{opacity:(o.vars||o).palette.action.disabledOpacity,pointerEvents:"none"}),(0,t.Z)(a,"& .".concat(y.avatar),{marginLeft:5,marginRight:-6,width:24,height:24,color:o.vars?o.vars.palette.Chip.defaultAvatarColor:r,fontSize:o.typography.pxToRem(12)}),(0,t.Z)(a,"& .".concat(y.avatarColorPrimary),{color:(o.vars||o).palette.primary.contrastText,backgroundColor:(o.vars||o).palette.primary.dark}),(0,t.Z)(a,"& .".concat(y.avatarColorSecondary),{color:(o.vars||o).palette.secondary.contrastText,backgroundColor:(o.vars||o).palette.secondary.dark}),(0,t.Z)(a,"& .".concat(y.avatarSmall),{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:o.typography.pxToRem(10)}),(0,t.Z)(a,"& .".concat(y.icon),(0,l.Z)({marginLeft:5,marginRight:-6},"small"===c.size&&{fontSize:18,marginLeft:4,marginRight:-4},c.iconColor===c.color&&(0,l.Z)({color:o.vars?o.vars.palette.Chip.defaultIconColor:r},"default"!==c.color&&{color:"inherit"}))),(0,t.Z)(a,"& .".concat(y.deleteIcon),(0,l.Z)({WebkitTapHighlightColor:"transparent",color:o.vars?"rgba(".concat(o.vars.palette.text.primaryChannel," / 0.26)"):(0,s.Fq)(o.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:o.vars?"rgba(".concat(o.vars.palette.text.primaryChannel," / 0.4)"):(0,s.Fq)(o.palette.text.primary,.4)}},"small"===c.size&&{fontSize:16,marginRight:4,marginLeft:-4},"default"!==c.color&&{color:o.vars?"rgba(".concat(o.vars.palette[c.color].contrastTextChannel," / 0.7)"):(0,s.Fq)(o.palette[c.color].contrastText,.7),"&:hover, &:active":{color:(o.vars||o).palette[c.color].contrastText}})),a),"small"===c.size&&{height:24},"default"!==c.color&&{backgroundColor:(o.vars||o).palette[c.color].main,color:(o.vars||o).palette[c.color].contrastText},c.onDelete&&(0,t.Z)({},"&.".concat(y.focusVisible),{backgroundColor:o.vars?"rgba(".concat(o.vars.palette.action.selectedChannel," / calc(").concat(o.vars.palette.action.selectedOpacity," + ").concat(o.vars.palette.action.focusOpacity,"))"):(0,s.Fq)(o.palette.action.selected,o.palette.action.selectedOpacity+o.palette.action.focusOpacity)}),c.onDelete&&"default"!==c.color&&(0,t.Z)({},"&.".concat(y.focusVisible),{backgroundColor:(o.vars||o).palette[c.color].dark}))}),(function(e){var a,o=e.theme,c=e.ownerState;return(0,l.Z)({},c.clickable&&(a={userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:o.vars?"rgba(".concat(o.vars.palette.action.selectedChannel," / calc(").concat(o.vars.palette.action.selectedOpacity," + ").concat(o.vars.palette.action.hoverOpacity,"))"):(0,s.Fq)(o.palette.action.selected,o.palette.action.selectedOpacity+o.palette.action.hoverOpacity)}},(0,t.Z)(a,"&.".concat(y.focusVisible),{backgroundColor:o.vars?"rgba(".concat(o.vars.palette.action.selectedChannel," / calc(").concat(o.vars.palette.action.selectedOpacity," + ").concat(o.vars.palette.action.focusOpacity,"))"):(0,s.Fq)(o.palette.action.selected,o.palette.action.selectedOpacity+o.palette.action.focusOpacity)}),(0,t.Z)(a,"&:active",{boxShadow:(o.vars||o).shadows[1]}),a),c.clickable&&"default"!==c.color&&(0,t.Z)({},"&:hover, &.".concat(y.focusVisible),{backgroundColor:(o.vars||o).palette[c.color].dark}))}),(function(e){var a,o,c=e.theme,r=e.ownerState;return(0,l.Z)({},"outlined"===r.variant&&(a={backgroundColor:"transparent",border:c.vars?"1px solid ".concat(c.vars.palette.Chip.defaultBorder):"1px solid ".concat("light"===c.palette.mode?c.palette.grey[400]:c.palette.grey[700])},(0,t.Z)(a,"&.".concat(y.clickable,":hover"),{backgroundColor:(c.vars||c).palette.action.hover}),(0,t.Z)(a,"&.".concat(y.focusVisible),{backgroundColor:(c.vars||c).palette.action.focus}),(0,t.Z)(a,"& .".concat(y.avatar),{marginLeft:4}),(0,t.Z)(a,"& .".concat(y.avatarSmall),{marginLeft:2}),(0,t.Z)(a,"& .".concat(y.icon),{marginLeft:4}),(0,t.Z)(a,"& .".concat(y.iconSmall),{marginLeft:2}),(0,t.Z)(a,"& .".concat(y.deleteIcon),{marginRight:5}),(0,t.Z)(a,"& .".concat(y.deleteIconSmall),{marginRight:3}),a),"outlined"===r.variant&&"default"!==r.color&&(o={color:(c.vars||c).palette[r.color].main,border:"1px solid ".concat(c.vars?"rgba(".concat(c.vars.palette[r.color].mainChannel," / 0.7)"):(0,s.Fq)(c.palette[r.color].main,.7))},(0,t.Z)(o,"&.".concat(y.clickable,":hover"),{backgroundColor:c.vars?"rgba(".concat(c.vars.palette[r.color].mainChannel," / ").concat(c.vars.palette.action.hoverOpacity,")"):(0,s.Fq)(c.palette[r.color].main,c.palette.action.hoverOpacity)}),(0,t.Z)(o,"&.".concat(y.focusVisible),{backgroundColor:c.vars?"rgba(".concat(c.vars.palette[r.color].mainChannel," / ").concat(c.vars.palette.action.focusOpacity,")"):(0,s.Fq)(c.palette[r.color].main,c.palette.action.focusOpacity)}),(0,t.Z)(o,"& .".concat(y.deleteIcon),{color:c.vars?"rgba(".concat(c.vars.palette[r.color].mainChannel," / 0.7)"):(0,s.Fq)(c.palette[r.color].main,.7),"&:hover, &:active":{color:(c.vars||c).palette[r.color].main}}),o))})),I=(0,f.ZP)("span",{name:"MuiChip",slot:"Label",overridesResolver:function(e,a){var o=e.ownerState.size;return[a.label,a["label".concat((0,m.Z)(o))]]}})((function(e){var a=e.ownerState;return(0,l.Z)({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap"},"small"===a.size&&{paddingLeft:8,paddingRight:8})}));function x(e){return"Backspace"===e.key||"Delete"===e.key}var w=r.forwardRef((function(e,a){var o=(0,Z.Z)({props:e,name:"MuiChip"}),t=o.avatar,s=o.className,d=o.clickable,f=o.color,g=void 0===f?"default":f,C=o.component,y=o.deleteIcon,w=o.disabled,z=void 0!==w&&w,O=o.icon,R=o.label,F=o.onClick,D=o.onDelete,P=o.onKeyDown,L=o.onKeyUp,T=o.size,V=void 0===T?"medium":T,N=o.variant,E=void 0===N?"filled":N,M=o.tabIndex,q=o.skipFocusWhenDisabled,K=void 0!==q&&q,W=(0,c.Z)(o,k),j=r.useRef(null),U=(0,u.Z)(j,a),A=function(e){e.stopPropagation(),D&&D(e)},B=!(!1===d||!F)||d,H=B||D?b.Z:C||"div",_=(0,l.Z)({},o,{component:H,disabled:z,size:V,color:g,iconColor:r.isValidElement(O)&&O.props.color||g,onDelete:!!D,clickable:B,variant:E}),G=function(e){var a=e.classes,o=e.disabled,t=e.size,c=e.color,l=e.iconColor,r=e.onDelete,n=e.clickable,s=e.variant,d={root:["root",s,o&&"disabled","size".concat((0,m.Z)(t)),"color".concat((0,m.Z)(c)),n&&"clickable",n&&"clickableColor".concat((0,m.Z)(c)),r&&"deletable",r&&"deletableColor".concat((0,m.Z)(c)),"".concat(s).concat((0,m.Z)(c))],label:["label","label".concat((0,m.Z)(t))],avatar:["avatar","avatar".concat((0,m.Z)(t)),"avatarColor".concat((0,m.Z)(c))],icon:["icon","icon".concat((0,m.Z)(t)),"iconColor".concat((0,m.Z)(l))],deleteIcon:["deleteIcon","deleteIcon".concat((0,m.Z)(t)),"deleteIconColor".concat((0,m.Z)(c)),"deleteIcon".concat((0,m.Z)(s),"Color").concat((0,m.Z)(c))]};return(0,i.Z)(d,h,a)}(_),J=H===b.Z?(0,l.Z)({component:C||"div",focusVisibleClassName:G.focusVisible},D&&{disableRipple:!0}):{},Q=null;D&&(Q=y&&r.isValidElement(y)?r.cloneElement(y,{className:(0,n.Z)(y.props.className,G.deleteIcon),onClick:A}):(0,p.jsx)(v,{className:(0,n.Z)(G.deleteIcon),onClick:A}));var X=null;t&&r.isValidElement(t)&&(X=r.cloneElement(t,{className:(0,n.Z)(G.avatar,t.props.className)}));var Y=null;return O&&r.isValidElement(O)&&(Y=r.cloneElement(O,{className:(0,n.Z)(G.icon,O.props.className)})),(0,p.jsxs)(S,(0,l.Z)({as:H,className:(0,n.Z)(G.root,s),disabled:!(!B||!z)||void 0,onClick:F,onKeyDown:function(e){e.currentTarget===e.target&&x(e)&&e.preventDefault(),P&&P(e)},onKeyUp:function(e){e.currentTarget===e.target&&(D&&x(e)?D(e):"Escape"===e.key&&j.current&&j.current.blur()),L&&L(e)},ref:U,tabIndex:K&&z?-1:M,ownerState:_},J,W,{children:[X||Y,(0,p.jsx)(I,{className:(0,n.Z)(G.label),ownerState:_,children:R}),Q]}))}))},36229:function(e,a,o){var t=o(72791);a.Z=function(e){var a=t.useRef({});return t.useEffect((function(){a.current=e})),a.current}}}]);
+//# sourceMappingURL=225.a62217d0.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/225.a62217d0.chunk.js.map b/portal-ui/build/static/js/225.a62217d0.chunk.js.map
new file mode 100644
index 000000000..eee288e26
--- /dev/null
+++ b/portal-ui/build/static/js/225.a62217d0.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/225.a62217d0.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/internal/svg-icons/Cancel.js","../node_modules/@mui/material/Chip/chipClasses.js","../node_modules/@mui/material/Chip/Chip.js","../node_modules/@mui/utils/esm/usePreviousProps.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_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');","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getChipUtilityClass(slot) {\n return generateUtilityClass('MuiChip', slot);\n}\nconst chipClasses = generateUtilityClasses('MuiChip', ['root', 'sizeSmall', 'sizeMedium', 'colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning', 'disabled', 'clickable', 'clickableColorPrimary', 'clickableColorSecondary', 'deletable', 'deletableColorPrimary', 'deletableColorSecondary', 'outlined', 'filled', 'outlinedPrimary', 'outlinedSecondary', 'filledPrimary', 'filledSecondary', 'avatar', 'avatarSmall', 'avatarMedium', 'avatarColorPrimary', 'avatarColorSecondary', 'icon', 'iconSmall', 'iconMedium', 'iconColorPrimary', 'iconColorSecondary', 'label', 'labelSmall', 'labelMedium', 'deleteIcon', 'deleteIconSmall', 'deleteIconMedium', 'deleteIconColorPrimary', 'deleteIconColorSecondary', 'deleteIconOutlinedColorPrimary', 'deleteIconOutlinedColorSecondary', 'deleteIconFilledColorPrimary', 'deleteIconFilledColorSecondary', 'focusVisible']);\nexport default chipClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"avatar\", \"className\", \"clickable\", \"color\", \"component\", \"deleteIcon\", \"disabled\", \"icon\", \"label\", \"onClick\", \"onDelete\", \"onKeyDown\", \"onKeyUp\", \"size\", \"variant\", \"tabIndex\", \"skipFocusWhenDisabled\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport CancelIcon from '../internal/svg-icons/Cancel';\nimport useForkRef from '../utils/useForkRef';\nimport unsupportedProp from '../utils/unsupportedProp';\nimport capitalize from '../utils/capitalize';\nimport ButtonBase from '../ButtonBase';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport chipClasses, { getChipUtilityClass } from './chipClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disabled,\n size,\n color,\n iconColor,\n onDelete,\n clickable,\n variant\n } = ownerState;\n const slots = {\n root: ['root', variant, disabled && 'disabled', `size${capitalize(size)}`, `color${capitalize(color)}`, clickable && 'clickable', clickable && `clickableColor${capitalize(color)}`, onDelete && 'deletable', onDelete && `deletableColor${capitalize(color)}`, `${variant}${capitalize(color)}`],\n label: ['label', `label${capitalize(size)}`],\n avatar: ['avatar', `avatar${capitalize(size)}`, `avatarColor${capitalize(color)}`],\n icon: ['icon', `icon${capitalize(size)}`, `iconColor${capitalize(iconColor)}`],\n deleteIcon: ['deleteIcon', `deleteIcon${capitalize(size)}`, `deleteIconColor${capitalize(color)}`, `deleteIcon${capitalize(variant)}Color${capitalize(color)}`]\n };\n return composeClasses(slots, getChipUtilityClass, classes);\n};\nconst ChipRoot = styled('div', {\n name: 'MuiChip',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n color,\n iconColor,\n clickable,\n onDelete,\n size,\n variant\n } = ownerState;\n return [{\n [`& .${chipClasses.avatar}`]: styles.avatar\n }, {\n [`& .${chipClasses.avatar}`]: styles[`avatar${capitalize(size)}`]\n }, {\n [`& .${chipClasses.avatar}`]: styles[`avatarColor${capitalize(color)}`]\n }, {\n [`& .${chipClasses.icon}`]: styles.icon\n }, {\n [`& .${chipClasses.icon}`]: styles[`icon${capitalize(size)}`]\n }, {\n [`& .${chipClasses.icon}`]: styles[`iconColor${capitalize(iconColor)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles.deleteIcon\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIcon${capitalize(size)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIconColor${capitalize(color)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIcon${capitalize(variant)}Color${capitalize(color)}`]\n }, styles.root, styles[`size${capitalize(size)}`], styles[`color${capitalize(color)}`], clickable && styles.clickable, clickable && color !== 'default' && styles[`clickableColor${capitalize(color)})`], onDelete && styles.deletable, onDelete && color !== 'default' && styles[`deletableColor${capitalize(color)}`], styles[variant], styles[`${variant}${capitalize(color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const textColor = theme.palette.mode === 'light' ? theme.palette.grey[700] : theme.palette.grey[300];\n return _extends({\n maxWidth: '100%',\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(13),\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 32,\n color: (theme.vars || theme).palette.text.primary,\n backgroundColor: (theme.vars || theme).palette.action.selected,\n borderRadius: 32 / 2,\n whiteSpace: 'nowrap',\n transition: theme.transitions.create(['background-color', 'box-shadow']),\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n textDecoration: 'none',\n border: 0,\n // Remove `button` border\n padding: 0,\n // Remove `button` padding\n verticalAlign: 'middle',\n boxSizing: 'border-box',\n [`&.${chipClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`& .${chipClasses.avatar}`]: {\n marginLeft: 5,\n marginRight: -6,\n width: 24,\n height: 24,\n color: theme.vars ? theme.vars.palette.Chip.defaultAvatarColor : textColor,\n fontSize: theme.typography.pxToRem(12)\n },\n [`& .${chipClasses.avatarColorPrimary}`]: {\n color: (theme.vars || theme).palette.primary.contrastText,\n backgroundColor: (theme.vars || theme).palette.primary.dark\n },\n [`& .${chipClasses.avatarColorSecondary}`]: {\n color: (theme.vars || theme).palette.secondary.contrastText,\n backgroundColor: (theme.vars || theme).palette.secondary.dark\n },\n [`& .${chipClasses.avatarSmall}`]: {\n marginLeft: 4,\n marginRight: -4,\n width: 18,\n height: 18,\n fontSize: theme.typography.pxToRem(10)\n },\n [`& .${chipClasses.icon}`]: _extends({\n marginLeft: 5,\n marginRight: -6\n }, ownerState.size === 'small' && {\n fontSize: 18,\n marginLeft: 4,\n marginRight: -4\n }, ownerState.iconColor === ownerState.color && _extends({\n color: theme.vars ? theme.vars.palette.Chip.defaultIconColor : textColor\n }, ownerState.color !== 'default' && {\n color: 'inherit'\n })),\n [`& .${chipClasses.deleteIcon}`]: _extends({\n WebkitTapHighlightColor: 'transparent',\n color: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.26)` : alpha(theme.palette.text.primary, 0.26),\n fontSize: 22,\n cursor: 'pointer',\n margin: '0 5px 0 -6px',\n '&:hover': {\n color: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.4)` : alpha(theme.palette.text.primary, 0.4)\n }\n }, ownerState.size === 'small' && {\n fontSize: 16,\n marginRight: 4,\n marginLeft: -4\n }, ownerState.color !== 'default' && {\n color: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].contrastTextChannel} / 0.7)` : alpha(theme.palette[ownerState.color].contrastText, 0.7),\n '&:hover, &:active': {\n color: (theme.vars || theme).palette[ownerState.color].contrastText\n }\n })\n }, ownerState.size === 'small' && {\n height: 24\n }, ownerState.color !== 'default' && {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].main,\n color: (theme.vars || theme).palette[ownerState.color].contrastText\n }, ownerState.onDelete && {\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n }, ownerState.onDelete && ownerState.color !== 'default' && {\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].dark\n }\n });\n}, ({\n theme,\n ownerState\n}) => _extends({}, ownerState.clickable && {\n userSelect: 'none',\n WebkitTapHighlightColor: 'transparent',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n },\n '&:active': {\n boxShadow: (theme.vars || theme).shadows[1]\n }\n}, ownerState.clickable && ownerState.color !== 'default' && {\n [`&:hover, &.${chipClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette[ownerState.color].dark\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.variant === 'outlined' && {\n backgroundColor: 'transparent',\n border: theme.vars ? `1px solid ${theme.vars.palette.Chip.defaultBorder}` : `1px solid ${theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[700]}`,\n [`&.${chipClasses.clickable}:hover`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`& .${chipClasses.avatar}`]: {\n marginLeft: 4\n },\n [`& .${chipClasses.avatarSmall}`]: {\n marginLeft: 2\n },\n [`& .${chipClasses.icon}`]: {\n marginLeft: 4\n },\n [`& .${chipClasses.iconSmall}`]: {\n marginLeft: 2\n },\n [`& .${chipClasses.deleteIcon}`]: {\n marginRight: 5\n },\n [`& .${chipClasses.deleteIconSmall}`]: {\n marginRight: 3\n }\n}, ownerState.variant === 'outlined' && ownerState.color !== 'default' && {\n color: (theme.vars || theme).palette[ownerState.color].main,\n border: `1px solid ${theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.7)` : alpha(theme.palette[ownerState.color].main, 0.7)}`,\n [`&.${chipClasses.clickable}:hover`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity)\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette[ownerState.color].main, theme.palette.action.focusOpacity)\n },\n [`& .${chipClasses.deleteIcon}`]: {\n color: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / 0.7)` : alpha(theme.palette[ownerState.color].main, 0.7),\n '&:hover, &:active': {\n color: (theme.vars || theme).palette[ownerState.color].main\n }\n }\n}));\nconst ChipLabel = styled('span', {\n name: 'MuiChip',\n slot: 'Label',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n size\n } = ownerState;\n return [styles.label, styles[`label${capitalize(size)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingLeft: 12,\n paddingRight: 12,\n whiteSpace: 'nowrap'\n}, ownerState.size === 'small' && {\n paddingLeft: 8,\n paddingRight: 8\n}));\nfunction isDeleteKeyboardEvent(keyboardEvent) {\n return keyboardEvent.key === 'Backspace' || keyboardEvent.key === 'Delete';\n}\n\n/**\n * Chips represent complex entities in small blocks, such as a contact.\n */\nconst Chip = /*#__PURE__*/React.forwardRef(function Chip(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiChip'\n });\n const {\n avatar: avatarProp,\n className,\n clickable: clickableProp,\n color = 'default',\n component: ComponentProp,\n deleteIcon: deleteIconProp,\n disabled = false,\n icon: iconProp,\n label,\n onClick,\n onDelete,\n onKeyDown,\n onKeyUp,\n size = 'medium',\n variant = 'filled',\n tabIndex,\n skipFocusWhenDisabled = false // TODO v6: Rename to `focusableWhenDisabled`.\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const chipRef = React.useRef(null);\n const handleRef = useForkRef(chipRef, ref);\n const handleDeleteIconClick = event => {\n // Stop the event from bubbling up to the `Chip`\n event.stopPropagation();\n if (onDelete) {\n onDelete(event);\n }\n };\n const handleKeyDown = event => {\n // Ignore events from children of `Chip`.\n if (event.currentTarget === event.target && isDeleteKeyboardEvent(event)) {\n // Will be handled in keyUp, otherwise some browsers\n // might init navigation\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleKeyUp = event => {\n // Ignore events from children of `Chip`.\n if (event.currentTarget === event.target) {\n if (onDelete && isDeleteKeyboardEvent(event)) {\n onDelete(event);\n } else if (event.key === 'Escape' && chipRef.current) {\n chipRef.current.blur();\n }\n }\n if (onKeyUp) {\n onKeyUp(event);\n }\n };\n const clickable = clickableProp !== false && onClick ? true : clickableProp;\n const component = clickable || onDelete ? ButtonBase : ComponentProp || 'div';\n const ownerState = _extends({}, props, {\n component,\n disabled,\n size,\n color,\n iconColor: /*#__PURE__*/React.isValidElement(iconProp) ? iconProp.props.color || color : color,\n onDelete: !!onDelete,\n clickable,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const moreProps = component === ButtonBase ? _extends({\n component: ComponentProp || 'div',\n focusVisibleClassName: classes.focusVisible\n }, onDelete && {\n disableRipple: true\n }) : {};\n let deleteIcon = null;\n if (onDelete) {\n deleteIcon = deleteIconProp && /*#__PURE__*/React.isValidElement(deleteIconProp) ? /*#__PURE__*/React.cloneElement(deleteIconProp, {\n className: clsx(deleteIconProp.props.className, classes.deleteIcon),\n onClick: handleDeleteIconClick\n }) : /*#__PURE__*/_jsx(CancelIcon, {\n className: clsx(classes.deleteIcon),\n onClick: handleDeleteIconClick\n });\n }\n let avatar = null;\n if (avatarProp && /*#__PURE__*/React.isValidElement(avatarProp)) {\n avatar = /*#__PURE__*/React.cloneElement(avatarProp, {\n className: clsx(classes.avatar, avatarProp.props.className)\n });\n }\n let icon = null;\n if (iconProp && /*#__PURE__*/React.isValidElement(iconProp)) {\n icon = /*#__PURE__*/React.cloneElement(iconProp, {\n className: clsx(classes.icon, iconProp.props.className)\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n if (avatar && icon) {\n console.error('MUI: The Chip component can not handle the avatar ' + 'and the icon prop at the same time. Pick one.');\n }\n }\n return /*#__PURE__*/_jsxs(ChipRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n disabled: clickable && disabled ? true : undefined,\n onClick: onClick,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n ref: handleRef,\n tabIndex: skipFocusWhenDisabled && disabled ? -1 : tabIndex,\n ownerState: ownerState\n }, moreProps, other, {\n children: [avatar || icon, /*#__PURE__*/_jsx(ChipLabel, {\n className: clsx(classes.label),\n ownerState: ownerState,\n children: label\n }), deleteIcon]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Chip.propTypes /* remove-proptypes */ = {\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 * The Avatar element to display.\n */\n avatar: PropTypes.element,\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the chip will appear clickable, and will raise when pressed,\n * even if the onClick prop is not defined.\n * If `false`, the chip will not appear clickable, even if onClick prop is defined.\n * This can be used, for example,\n * along with the component prop to indicate an anchor Chip is clickable.\n * Note: this controls the UI and does not affect the onClick event.\n */\n clickable: PropTypes.bool,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'default'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\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 * Override the default delete icon element. Shown only if `onDelete` is set.\n */\n deleteIcon: PropTypes.element,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * Icon element.\n */\n icon: PropTypes.element,\n /**\n * The content of the component.\n */\n label: PropTypes.node,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * Callback fired when the delete icon is clicked.\n * If set, the delete icon will be shown.\n */\n onDelete: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * If `true`, allows the disabled chip to escape focus.\n * If `false`, allows the disabled chip to receive focus.\n * @default false\n */\n skipFocusWhenDisabled: PropTypes.bool,\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 * @ignore\n */\n tabIndex: PropTypes.number,\n /**\n * The variant to use.\n * @default 'filled'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['filled', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Chip;","'use client';\n\nimport * as React from 'react';\nconst usePreviousProps = value => {\n const ref = React.useRef({});\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\nexport default usePreviousProps;"],"names":["createSvgIcon","_jsx","d","getChipUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","ChipRoot","styled","name","overridesResolver","props","styles","ownerState","color","iconColor","clickable","onDelete","size","variant","_defineProperty","concat","chipClasses","avatar","capitalize","icon","deleteIcon","root","deletable","_ref11","_extends2","theme","textColor","palette","mode","grey","_extends","maxWidth","fontFamily","typography","fontSize","pxToRem","display","alignItems","justifyContent","height","vars","text","primary","backgroundColor","action","selected","borderRadius","whiteSpace","transition","transitions","create","outline","textDecoration","border","padding","verticalAlign","boxSizing","disabled","opacity","disabledOpacity","pointerEvents","marginLeft","marginRight","width","Chip","defaultAvatarColor","avatarColorPrimary","contrastText","dark","avatarColorSecondary","secondary","avatarSmall","defaultIconColor","WebkitTapHighlightColor","primaryChannel","alpha","cursor","margin","contrastTextChannel","main","focusVisible","selectedChannel","selectedOpacity","focusOpacity","_ref14","_ref15","userSelect","hoverOpacity","boxShadow","shadows","_ref17","_ref18","_ref19","defaultBorder","hover","focus","iconSmall","deleteIconSmall","mainChannel","ChipLabel","label","_ref20","overflow","textOverflow","paddingLeft","paddingRight","isDeleteKeyboardEvent","keyboardEvent","key","React","inProps","ref","useThemeProps","avatarProp","className","clickableProp","_props$color","ComponentProp","component","deleteIconProp","_props$disabled","iconProp","onClick","onKeyDown","onKeyUp","_props$size","_props$variant","tabIndex","_props$skipFocusWhenD","skipFocusWhenDisabled","other","_objectWithoutPropertiesLoose","chipRef","handleRef","useForkRef","handleDeleteIconClick","event","stopPropagation","ButtonBase","classes","slots","composeClasses","useUtilityClasses","moreProps","focusVisibleClassName","disableRipple","clsx","CancelIcon","_jsxs","as","undefined","currentTarget","target","preventDefault","current","blur","children","value"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/2260.c0246fc5.chunk.js b/portal-ui/build/static/js/2260.c0246fc5.chunk.js
deleted file mode 100644
index e870768fe..000000000
--- a/portal-ui/build/static/js/2260.c0246fc5.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2260],{67252:function(e,t,n){n.d(t,{Z:function(){return oe}});var o=n(4942),r=n(63366),a=n(87462),i=n(72791),l=n(28182),c=n(94419),s=n(29439),u=n(18252),p=n(88637),d=n(36229),f=n(97054),v=n(62971);function g(e){return"undefined"!==typeof e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function m(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.ignoreAccents,n=void 0===t||t,o=e.ignoreCase,r=void 0===o||o,a=e.limit,i=e.matchFrom,l=void 0===i?"any":i,c=e.stringify,s=e.trim,u=void 0!==s&&s;return function(e,t){var o=t.inputValue,i=t.getOptionLabel,s=u?o.trim():o;r&&(s=s.toLowerCase()),n&&(s=g(s));var p=s?e.filter((function(e){var t=(c||i)(e);return r&&(t=t.toLowerCase()),n&&(t=g(t)),"start"===l?0===t.indexOf(s):t.indexOf(s)>-1})):e;return"number"===typeof a?p.slice(0,a):p}}(),b=function(e){var t;return null!==e.current&&(null==(t=e.current.parentElement)?void 0:t.contains(document.activeElement))};function Z(e){var t,n=e.unstable_isActiveElementInListbox,o=void 0===n?b:n,r=e.unstable_classNamePrefix,l=void 0===r?"Mui":r,c=e.autoComplete,g=void 0!==c&&c,Z=e.autoHighlight,x=void 0!==Z&&Z,y=e.autoSelect,S=void 0!==y&&y,O=e.blurOnSelect,I=void 0!==O&&O,k=e.clearOnBlur,C=void 0===k?!e.freeSolo:k,P=e.clearOnEscape,w=void 0!==P&&P,L=e.componentName,A=void 0===L?"useAutocomplete":L,R=e.defaultValue,T=void 0===R?e.multiple?[]:null:R,M=e.disableClearable,z=void 0!==M&&M,N=e.disableCloseOnSelect,F=void 0!==N&&N,D=e.disabled,E=e.disabledItemsFocusable,W=void 0!==E&&E,j=e.disableListWrap,q=void 0!==j&&j,H=e.filterOptions,V=void 0===H?h:H,B=e.filterSelectedOptions,G=void 0!==B&&B,K=e.freeSolo,U=void 0!==K&&K,_=e.getOptionDisabled,J=e.getOptionLabel,Q=void 0===J?function(e){var t;return null!=(t=e.label)?t:e}:J,X=e.groupBy,Y=e.handleHomeEndKeys,$=void 0===Y?!e.freeSolo:Y,ee=e.id,te=e.includeInputInList,ne=void 0!==te&&te,oe=e.inputValue,re=e.isOptionEqualToValue,ae=void 0===re?function(e,t){return e===t}:re,ie=e.multiple,le=void 0!==ie&&ie,ce=e.onChange,se=e.onClose,ue=e.onHighlightChange,pe=e.onInputChange,de=e.onOpen,fe=e.open,ve=e.openOnFocus,ge=void 0!==ve&&ve,me=e.options,he=e.readOnly,be=void 0!==he&&he,Ze=e.selectOnFocus,xe=void 0===Ze?!e.freeSolo:Ze,ye=e.value,Se=(0,u.Z)(ee);t=function(e){var t=Q(e);return"string"!==typeof t?String(t):t};var Oe=i.useRef(!1),Ie=i.useRef(!0),ke=i.useRef(null),Ce=i.useRef(null),Pe=i.useState(null),we=(0,s.Z)(Pe,2),Le=we[0],Ae=we[1],Re=i.useState(-1),Te=(0,s.Z)(Re,2),Me=Te[0],ze=Te[1],Ne=x?0:-1,Fe=i.useRef(Ne),De=(0,p.Z)({controlled:ye,default:T,name:A}),Ee=(0,s.Z)(De,2),We=Ee[0],je=Ee[1],qe=(0,p.Z)({controlled:oe,default:"",name:A,state:"inputValue"}),He=(0,s.Z)(qe,2),Ve=He[0],Be=He[1],Ge=i.useState(!1),Ke=(0,s.Z)(Ge,2),Ue=Ke[0],_e=Ke[1],Je=i.useCallback((function(e,n){if((le?We.length0&&!be,st=(0,f.Z)((function(e){-1===e?ke.current.focus():Le.querySelector('[data-tag-index="'.concat(e,'"]')).focus()}));i.useEffect((function(){le&&Me>We.length-1&&(ze(-1),st(-1))}),[We,le,Me,st]);var ut=(0,f.Z)((function(e){var t=e.event,n=e.index,o=e.reason,r=void 0===o?"auto":o;if(Fe.current=n,-1===n?ke.current.removeAttribute("aria-activedescendant"):ke.current.setAttribute("aria-activedescendant","".concat(Se,"-option-").concat(n)),ue&&ue(t,-1===n?null:it[n],r),Ce.current){var a=Ce.current.querySelector('[role="option"].'.concat(l,"-focused"));a&&(a.classList.remove("".concat(l,"-focused")),a.classList.remove("".concat(l,"-focusVisible")));var i=Ce.current;if("listbox"!==Ce.current.getAttribute("role")&&(i=Ce.current.parentElement.querySelector('[role="listbox"]')),i)if(-1!==n){var c=Ce.current.querySelector('[data-option-index="'.concat(n,'"]'));if(c&&(c.classList.add("".concat(l,"-focused")),"keyboard"===r&&c.classList.add("".concat(l,"-focusVisible")),i.scrollHeight>i.clientHeight&&"mouse"!==r)){var s=c,u=i.clientHeight+i.scrollTop,p=s.offsetTop+s.offsetHeight;p>u?i.scrollTop=p-i.clientHeight:s.offsetTop-s.offsetHeight*(X?1.3:0)1?0:e:t>e?t===e+1&&ne?-1:q||Math.abs(o)>1?e:0:t}(),a);if(ut({index:c,reason:l,event:n}),g&&"reset"!==o)if(-1===c)ke.current.value=Ve;else{var s=t(it[c]);ke.current.value=s,0===s.toLowerCase().indexOf(Ve.toLowerCase())&&Ve.length>0&&ke.current.setSelectionRange(Ve.length,s.length)}}})),dt=i.useCallback((function(){if(at&&!function(){var e,n;if(-1!==Fe.current&<.filteredOptions&<.filteredOptions.length!==it.length&<.inputValue===Ve&&(le?We.length===lt.value.length&<.value.every((function(e,n){return t(We[n])===t(e)})):(e=lt.value,n=We,(e?t(e):"")===(n?t(n):"")))){var o=lt.filteredOptions[Fe.current];if(o&&it.some((function(e){return t(e)===t(o)})))return!0}return!1}()){var e=le?We[0]:We;if(0!==it.length&&null!=e){if(Ce.current)if(null==e)Fe.current>=it.length-1?ut({index:it.length-1}):ut({index:Fe.current});else{var n=it[Fe.current];if(le&&n&&-1!==m(We,(function(e){return ae(n,e)})))return;var o=m(it,(function(t){return ae(t,e)}));-1===o?pt({diff:"reset"}):ut({index:o})}}else pt({diff:"reset"})}}),[it.length,!le&&We,G,pt,ut,at,Ve,le]),ft=(0,f.Z)((function(e){(0,v.Z)(Ce,e),e&&dt()}));i.useEffect((function(){dt()}),[dt]);var vt=function(e){Ye||($e(!0),ot(!0),de&&de(e))},gt=function(e,t){Ye&&($e(!1),se&&se(e,t))},mt=function(e,t,n,o){if(le){if(We.length===t.length&&We.every((function(e,n){return e===t[n]})))return}else if(We===t)return;ce&&ce(e,t,n,o),je(t)},ht=i.useRef(!1),bt=function(e,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"options",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"selectOption",r=t;if(le){var a=m(r=Array.isArray(We)?We.slice():[],(function(e){return ae(t,e)}));-1===a?r.push(t):"freeSolo"!==n&&(r.splice(a,1),o="removeOption")}Je(e,r),mt(e,r,o,{option:t}),F||e&&(e.ctrlKey||e.metaKey)||gt(e,o),(!0===I||"touch"===I&&ht.current||"mouse"===I&&!ht.current)&&ke.current.blur()};var Zt=function(e,t){if(le){""===Ve&>(e,"toggleInput");var n=Me;-1===Me?""===Ve&&"previous"===t&&(n=We.length-1):((n+="next"===t?1:-1)<0&&(n=0),n===We.length&&(n=-1)),n=function(e,t){if(-1===e)return-1;for(var n=e;;){if("next"===t&&n===We.length||"previous"===t&&-1===n)return-1;var o=Le.querySelector('[data-tag-index="'.concat(n,'"]'));if(o&&o.hasAttribute("tabindex")&&!o.disabled&&"true"!==o.getAttribute("aria-disabled"))return n;n+="next"===t?1:-1}}(n,t),ze(n),st(n)}},xt=function(e){Oe.current=!0,Be(""),pe&&pe(e,"","clear"),mt(e,le?[]:null,"clear")},yt=function(e){return function(t){if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(-1!==Me&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(ze(-1),st(-1)),229!==t.which))switch(t.key){case"Home":at&&$&&(t.preventDefault(),pt({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":at&&$&&(t.preventDefault(),pt({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),pt({diff:-5,direction:"previous",reason:"keyboard",event:t}),vt(t);break;case"PageDown":t.preventDefault(),pt({diff:5,direction:"next",reason:"keyboard",event:t}),vt(t);break;case"ArrowDown":t.preventDefault(),pt({diff:1,direction:"next",reason:"keyboard",event:t}),vt(t);break;case"ArrowUp":t.preventDefault(),pt({diff:-1,direction:"previous",reason:"keyboard",event:t}),vt(t);break;case"ArrowLeft":Zt(t,"previous");break;case"ArrowRight":Zt(t,"next");break;case"Enter":if(-1!==Fe.current&&at){var n=it[Fe.current],o=!!_&&_(n);if(t.preventDefault(),o)return;bt(t,n,"selectOption"),g&&ke.current.setSelectionRange(ke.current.value.length,ke.current.value.length)}else U&&""!==Ve&&!1===rt&&(le&&t.preventDefault(),bt(t,Ve,"createOption","freeSolo"));break;case"Escape":at?(t.preventDefault(),t.stopPropagation(),gt(t,"escape")):w&&(""!==Ve||le&&We.length>0)&&(t.preventDefault(),t.stopPropagation(),xt(t));break;case"Backspace":if(le&&!be&&""===Ve&&We.length>0){var r=-1===Me?We.length-1:Me,a=We.slice();a.splice(r,1),mt(t,a,"removeOption",{option:We[r]})}break;case"Delete":if(le&&!be&&""===Ve&&We.length>0&&-1!==Me){var i=Me,l=We.slice();l.splice(i,1),mt(t,l,"removeOption",{option:We[i]})}}}},St=function(e){_e(!0),ge&&!Oe.current&&vt(e)},Ot=function(e){o(Ce)?ke.current.focus():(_e(!1),Ie.current=!0,Oe.current=!1,S&&-1!==Fe.current&&at?bt(e,it[Fe.current],"blur"):S&&U&&""!==Ve?bt(e,Ve,"blur","freeSolo"):C&&Je(e,We),gt(e,"blur"))},It=function(e){var t=e.target.value;Ve!==t&&(Be(t),ot(!1),pe&&pe(e,t,"input")),""===t?z||le||mt(e,null,"clear"):vt(e)},kt=function(e){var t=Number(e.currentTarget.getAttribute("data-option-index"));Fe.current!==t&&ut({event:e,index:t,reason:"mouse"})},Ct=function(e){ut({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),ht.current=!0},Pt=function(e){var t=Number(e.currentTarget.getAttribute("data-option-index"));bt(e,it[t],"selectOption"),ht.current=!1},wt=function(e){return function(t){var n=We.slice();n.splice(e,1),mt(t,n,"removeOption",{option:We[e]})}},Lt=function(e){Ye?gt(e,"toggleInput"):vt(e)},At=function(e){e.currentTarget.contains(e.target)&&e.target.getAttribute("id")!==Se&&e.preventDefault()},Rt=function(e){e.currentTarget.contains(e.target)&&(ke.current.focus(),xe&&Ie.current&&ke.current.selectionEnd-ke.current.selectionStart===0&&ke.current.select(),Ie.current=!1)},Tt=function(e){""!==Ve&&Ye||Lt(e)},Mt=U&&Ve.length>0;Mt=Mt||(le?We.length>0:null!==We);var zt=it;if(X){new Map;zt=it.reduce((function(e,t,n){var o=X(t);return e.length>0&&e[e.length-1].group===o?e[e.length-1].options.push(t):e.push({key:n,index:n,group:o,options:[t]}),e}),[])}return D&&Ue&&Ot(),{getRootProps:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,a.Z)({"aria-owns":ct?"".concat(Se,"-listbox"):null},e,{onKeyDown:yt(e),onMouseDown:At,onClick:Rt})},getInputLabelProps:function(){return{id:"".concat(Se,"-label"),htmlFor:Se}},getInputProps:function(){return{id:Se,value:Ve,onBlur:Ot,onFocus:St,onChange:It,onMouseDown:Tt,"aria-activedescendant":at?"":null,"aria-autocomplete":g?"both":"list","aria-controls":ct?"".concat(Se,"-listbox"):void 0,"aria-expanded":ct,autoComplete:"off",ref:ke,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:D}},getClearProps:function(){return{tabIndex:-1,onClick:xt}},getPopupIndicatorProps:function(){return{tabIndex:-1,onClick:Lt}},getTagProps:function(e){var t=e.index;return(0,a.Z)({key:t,"data-tag-index":t,tabIndex:-1},!be&&{onDelete:wt(t)})},getListboxProps:function(){return{role:"listbox",id:"".concat(Se,"-listbox"),"aria-labelledby":"".concat(Se,"-label"),ref:ft,onMouseDown:function(e){e.preventDefault()}}},getOptionProps:function(e){var n=e.index,o=e.option,r=(le?We:[We]).some((function(e){return null!=e&&ae(o,e)})),a=!!_&&_(o);return{key:t(o),tabIndex:-1,role:"option",id:"".concat(Se,"-option-").concat(n),onMouseMove:kt,onClick:Pt,onTouchStart:Ct,"data-option-index":n,"aria-disabled":a,"aria-selected":r}},id:Se,inputValue:Ve,value:We,dirty:Mt,expanded:at&&Le,popupOpen:at,focused:Ue||-1!==Me,anchorEl:Le,setAnchorEl:Ae,focusedTag:Me,groupedOptions:zt}}var x=n(12065),y=n(41),S=n(79834),O=n(35527),I=n(13400),k=n(81918),C=n(86779),P=n(55891),w=n(56059),L=n(96285),A=n(76189),R=n(80184),T=(0,A.Z)((0,R.jsx)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),M=n(89059),z=n(31402),N=n(66934),F=n(75878),D=n(21217);function E(e){return(0,D.Z)("MuiAutocomplete",e)}var W,j,q=(0,F.Z)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]),H=n(14036),V=n(42071),B=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","slotProps","value"],G=["ref"],K=(0,N.ZP)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState,r=n.fullWidth,a=n.hasClearIcon,i=n.hasPopupIcon,l=n.inputFocused,c=n.size;return[(0,o.Z)({},"& .".concat(q.tag),t.tag),(0,o.Z)({},"& .".concat(q.tag),t["tagSize".concat((0,H.Z)(c))]),(0,o.Z)({},"& .".concat(q.inputRoot),t.inputRoot),(0,o.Z)({},"& .".concat(q.input),t.input),(0,o.Z)({},"& .".concat(q.input),l&&t.inputFocused),t.root,r&&t.fullWidth,i&&t.hasPopupIcon,a&&t.hasClearIcon]}})((function(e){var t,n,r,i,l,c=e.ownerState;return(0,a.Z)((t={},(0,o.Z)(t,"&.".concat(q.focused," .").concat(q.clearIndicator),{visibility:"visible"}),(0,o.Z)(t,"@media (pointer: fine)",(0,o.Z)({},"&:hover .".concat(q.clearIndicator),{visibility:"visible"})),t),c.fullWidth&&{width:"100%"},(l={},(0,o.Z)(l,"& .".concat(q.tag),(0,a.Z)({margin:3,maxWidth:"calc(100% - 6px)"},"small"===c.size&&{margin:2,maxWidth:"calc(100% - 4px)"})),(0,o.Z)(l,"& .".concat(q.inputRoot),(n={flexWrap:"wrap"},(0,o.Z)(n,".".concat(q.hasPopupIcon,"&, .").concat(q.hasClearIcon,"&"),{paddingRight:30}),(0,o.Z)(n,".".concat(q.hasPopupIcon,".").concat(q.hasClearIcon,"&"),{paddingRight:56}),(0,o.Z)(n,"& .".concat(q.input),{width:0,minWidth:30}),n)),(0,o.Z)(l,"& .".concat(C.Z.root),{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}}),(0,o.Z)(l,"& .".concat(C.Z.root,".").concat(P.Z.sizeSmall),(0,o.Z)({},"& .".concat(C.Z.input),{padding:"2px 4px 3px 0"})),(0,o.Z)(l,"& .".concat(w.Z.root),(r={padding:9},(0,o.Z)(r,".".concat(q.hasPopupIcon,"&, .").concat(q.hasClearIcon,"&"),{paddingRight:39}),(0,o.Z)(r,".".concat(q.hasPopupIcon,".").concat(q.hasClearIcon,"&"),{paddingRight:65}),(0,o.Z)(r,"& .".concat(q.input),{padding:"7.5px 4px 7.5px 5px"}),(0,o.Z)(r,"& .".concat(q.endAdornment),{right:9}),r)),(0,o.Z)(l,"& .".concat(w.Z.root,".").concat(P.Z.sizeSmall),(0,o.Z)({paddingTop:6,paddingBottom:6,paddingLeft:6},"& .".concat(q.input),{padding:"2.5px 4px 2.5px 8px"})),(0,o.Z)(l,"& .".concat(L.Z.root),(i={paddingTop:19,paddingLeft:8},(0,o.Z)(i,".".concat(q.hasPopupIcon,"&, .").concat(q.hasClearIcon,"&"),{paddingRight:39}),(0,o.Z)(i,".".concat(q.hasPopupIcon,".").concat(q.hasClearIcon,"&"),{paddingRight:65}),(0,o.Z)(i,"& .".concat(L.Z.input),{padding:"7px 4px"}),(0,o.Z)(i,"& .".concat(q.endAdornment),{right:9}),i)),(0,o.Z)(l,"& .".concat(L.Z.root,".").concat(P.Z.sizeSmall),(0,o.Z)({paddingBottom:1},"& .".concat(L.Z.input),{padding:"2.5px 4px"})),(0,o.Z)(l,"& .".concat(P.Z.hiddenLabel),{paddingTop:8}),(0,o.Z)(l,"& .".concat(L.Z.root,".").concat(P.Z.hiddenLabel),(0,o.Z)({paddingTop:0,paddingBottom:0},"& .".concat(q.input),{paddingTop:16,paddingBottom:17})),(0,o.Z)(l,"& .".concat(L.Z.root,".").concat(P.Z.hiddenLabel,".").concat(P.Z.sizeSmall),(0,o.Z)({},"& .".concat(q.input),{paddingTop:8,paddingBottom:9})),(0,o.Z)(l,"& .".concat(q.input),(0,a.Z)({flexGrow:1,textOverflow:"ellipsis",opacity:0},c.inputFocused&&{opacity:1})),l))})),U=(0,N.ZP)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:function(e,t){return t.endAdornment}})({position:"absolute",right:0,top:"calc(50% - 14px)"}),_=(0,N.ZP)(I.Z,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:function(e,t){return t.clearIndicator}})({marginRight:-2,padding:4,visibility:"hidden"}),J=(0,N.ZP)(I.Z,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:function(e,t){var n=e.ownerState;return(0,a.Z)({},t.popupIndicator,n.popupOpen&&t.popupIndicatorOpen)}})((function(e){var t=e.ownerState;return(0,a.Z)({padding:2,marginRight:-2},t.popupOpen&&{transform:"rotate(180deg)"})})),Q=(0,N.ZP)(y.Z,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:function(e,t){var n=e.ownerState;return[(0,o.Z)({},"& .".concat(q.option),t.option),t.popper,n.disablePortal&&t.popperDisablePortal]}})((function(e){var t=e.theme,n=e.ownerState;return(0,a.Z)({zIndex:(t.vars||t).zIndex.modal},n.disablePortal&&{position:"absolute"})})),X=(0,N.ZP)(O.Z,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:function(e,t){return t.paper}})((function(e){var t=e.theme;return(0,a.Z)({},t.typography.body1,{overflow:"auto"})})),Y=(0,N.ZP)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:function(e,t){return t.loading}})((function(e){var t=e.theme;return{color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}})),$=(0,N.ZP)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:function(e,t){return t.noOptions}})((function(e){var t=e.theme;return{color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}})),ee=(0,N.ZP)("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:function(e,t){return t.listbox}})((function(e){var t,n,r=e.theme;return(0,o.Z)({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative"},"& .".concat(q.option),(n={minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16},(0,o.Z)(n,r.breakpoints.up("sm"),{minHeight:"auto"}),(0,o.Z)(n,"&.".concat(q.focused),{backgroundColor:(r.vars||r).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}),(0,o.Z)(n,'&[aria-disabled="true"]',{opacity:(r.vars||r).palette.action.disabledOpacity,pointerEvents:"none"}),(0,o.Z)(n,"&.".concat(q.focusVisible),{backgroundColor:(r.vars||r).palette.action.focus}),(0,o.Z)(n,'&[aria-selected="true"]',(t={backgroundColor:r.vars?"rgba(".concat(r.vars.palette.primary.mainChannel," / ").concat(r.vars.palette.action.selectedOpacity,")"):(0,x.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity)},(0,o.Z)(t,"&.".concat(q.focused),{backgroundColor:r.vars?"rgba(".concat(r.vars.palette.primary.mainChannel," / calc(").concat(r.vars.palette.action.selectedOpacity," + ").concat(r.vars.palette.action.hoverOpacity,"))"):(0,x.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity+r.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(r.vars||r).palette.action.selected}}),(0,o.Z)(t,"&.".concat(q.focusVisible),{backgroundColor:r.vars?"rgba(".concat(r.vars.palette.primary.mainChannel," / calc(").concat(r.vars.palette.action.selectedOpacity," + ").concat(r.vars.palette.action.focusOpacity,"))"):(0,x.Fq)(r.palette.primary.main,r.palette.action.selectedOpacity+r.palette.action.focusOpacity)}),t)),n))})),te=(0,N.ZP)(S.Z,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:function(e,t){return t.groupLabel}})((function(e){var t=e.theme;return{backgroundColor:(t.vars||t).palette.background.paper,top:-8}})),ne=(0,N.ZP)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:function(e,t){return t.groupUl}})((0,o.Z)({padding:0},"& .".concat(q.option),{paddingLeft:24})),oe=i.forwardRef((function(e,t){var n,o,s,u,p,d=(0,z.Z)({props:e,name:"MuiAutocomplete"}),f=(d.autoComplete,d.autoHighlight,d.autoSelect,d.blurOnSelect,d.ChipProps),v=d.className,g=d.clearIcon,m=void 0===g?W||(W=(0,R.jsx)(T,{fontSize:"small"})):g,h=d.clearOnBlur,b=(void 0===h&&d.freeSolo,d.clearOnEscape,d.clearText),x=void 0===b?"Clear":b,S=d.closeText,I=void 0===S?"Close":S,C=d.componentsProps,P=void 0===C?{}:C,w=d.defaultValue,L=(void 0===w&&d.multiple,d.disableClearable),A=void 0!==L&&L,N=(d.disableCloseOnSelect,d.disabled),F=void 0!==N&&N,D=(d.disabledItemsFocusable,d.disableListWrap,d.disablePortal),q=void 0!==D&&D,oe=(d.filterSelectedOptions,d.forcePopupIcon),re=void 0===oe?"auto":oe,ae=d.freeSolo,ie=void 0!==ae&&ae,le=d.fullWidth,ce=void 0!==le&&le,se=d.getLimitTagsText,ue=void 0===se?function(e){return"+".concat(e)}:se,pe=d.getOptionLabel,de=void 0===pe?function(e){var t;return null!=(t=e.label)?t:e}:pe,fe=d.groupBy,ve=d.handleHomeEndKeys,ge=(void 0===ve&&d.freeSolo,d.includeInputInList,d.limitTags),me=void 0===ge?-1:ge,he=d.ListboxComponent,be=void 0===he?"ul":he,Ze=d.ListboxProps,xe=d.loading,ye=void 0!==xe&&xe,Se=d.loadingText,Oe=void 0===Se?"Loading\u2026":Se,Ie=d.multiple,ke=void 0!==Ie&&Ie,Ce=d.noOptionsText,Pe=void 0===Ce?"No options":Ce,we=(d.openOnFocus,d.openText),Le=void 0===we?"Open":we,Ae=d.PaperComponent,Re=void 0===Ae?O.Z:Ae,Te=d.PopperComponent,Me=void 0===Te?y.Z:Te,ze=d.popupIcon,Ne=void 0===ze?j||(j=(0,R.jsx)(M.Z,{})):ze,Fe=d.readOnly,De=void 0!==Fe&&Fe,Ee=d.renderGroup,We=d.renderInput,je=d.renderOption,qe=d.renderTags,He=d.selectOnFocus,Ve=(void 0===He&&d.freeSolo,d.size),Be=void 0===Ve?"medium":Ve,Ge=d.slotProps,Ke=void 0===Ge?{}:Ge,Ue=(0,r.Z)(d,B),_e=Z((0,a.Z)({},d,{componentName:"Autocomplete"})),Je=_e.getRootProps,Qe=_e.getInputProps,Xe=_e.getInputLabelProps,Ye=_e.getPopupIndicatorProps,$e=_e.getClearProps,et=_e.getTagProps,tt=_e.getListboxProps,nt=_e.getOptionProps,ot=_e.value,rt=_e.dirty,at=_e.expanded,it=_e.id,lt=_e.popupOpen,ct=_e.focused,st=_e.focusedTag,ut=_e.anchorEl,pt=_e.setAnchorEl,dt=_e.inputValue,ft=_e.groupedOptions,vt=!A&&!F&&rt&&!De,gt=(!ie||!0===re)&&!1!==re,mt=Qe().onMouseDown,ht=(null!=Ze?Ze:{}).ref,bt=tt(),Zt=bt.ref,xt=(0,r.Z)(bt,G),yt=(0,V.Z)(Zt,ht),St=(0,a.Z)({},d,{disablePortal:q,expanded:at,focused:ct,fullWidth:ce,hasClearIcon:vt,hasPopupIcon:gt,inputFocused:-1===st,popupOpen:lt,size:Be}),Ot=function(e){var t=e.classes,n=e.disablePortal,o=e.expanded,r=e.focused,a=e.fullWidth,i=e.hasClearIcon,l=e.hasPopupIcon,s=e.inputFocused,u=e.popupOpen,p=e.size,d={root:["root",o&&"expanded",r&&"focused",a&&"fullWidth",i&&"hasClearIcon",l&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",s&&"inputFocused"],tag:["tag","tagSize".concat((0,H.Z)(p))],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",u&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,c.Z)(d,E,t)}(St);if(ke&&ot.length>0){var It=function(e){return(0,a.Z)({className:Ot.tag,disabled:F},et(e))};p=qe?qe(ot,It,St):ot.map((function(e,t){return(0,R.jsx)(k.Z,(0,a.Z)({label:de(e),size:Be},It({index:t}),f))}))}if(me>-1&&Array.isArray(p)){var kt=p.length-me;!ct&&kt>0&&(p=p.splice(0,me)).push((0,R.jsx)("span",{className:Ot.tag,children:ue(kt)},p.length))}var Ct=Ee||function(e){return(0,R.jsxs)("li",{children:[(0,R.jsx)(te,{className:Ot.groupLabel,ownerState:St,component:"div",children:e.group}),(0,R.jsx)(ne,{className:Ot.groupUl,ownerState:St,children:e.children})]},e.key)},Pt=je||function(e,t){return(0,R.jsx)("li",(0,a.Z)({},e,{children:de(t)}))},wt=function(e,t){var n=nt({option:e,index:t});return Pt((0,a.Z)({},n,{className:Ot.option}),e,{selected:n["aria-selected"],index:t,inputValue:dt})},Lt=null!=(n=Ke.clearIndicator)?n:P.clearIndicator,At=null!=(o=Ke.paper)?o:P.paper,Rt=null!=(s=Ke.popper)?s:P.popper,Tt=null!=(u=Ke.popupIndicator)?u:P.popupIndicator;return(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(K,(0,a.Z)({ref:t,className:(0,l.Z)(Ot.root,v),ownerState:St},Je(Ue),{children:We({id:it,disabled:F,fullWidth:!0,size:"small"===Be?"small":void 0,InputLabelProps:Xe(),InputProps:(0,a.Z)({ref:pt,className:Ot.inputRoot,startAdornment:p,onClick:function(e){e.target===e.currentTarget&&mt(e)}},(vt||gt)&&{endAdornment:(0,R.jsxs)(U,{className:Ot.endAdornment,ownerState:St,children:[vt?(0,R.jsx)(_,(0,a.Z)({},$e(),{"aria-label":x,title:x,ownerState:St},Lt,{className:(0,l.Z)(Ot.clearIndicator,null==Lt?void 0:Lt.className),children:m})):null,gt?(0,R.jsx)(J,(0,a.Z)({},Ye(),{disabled:F,"aria-label":lt?I:Le,title:lt?I:Le,ownerState:St},Tt,{className:(0,l.Z)(Ot.popupIndicator,null==Tt?void 0:Tt.className),children:Ne})):null]})}),inputProps:(0,a.Z)({className:Ot.input,disabled:F,readOnly:De},Qe())})})),ut?(0,R.jsx)(Q,(0,a.Z)({as:Me,disablePortal:q,style:{width:ut?ut.clientWidth:null},ownerState:St,role:"presentation",anchorEl:ut,open:lt},Rt,{className:(0,l.Z)(Ot.popper,null==Rt?void 0:Rt.className),children:(0,R.jsxs)(X,(0,a.Z)({ownerState:St,as:Re},At,{className:(0,l.Z)(Ot.paper,null==At?void 0:At.className),children:[ye&&0===ft.length?(0,R.jsx)(Y,{className:Ot.loading,ownerState:St,children:Oe}):null,0!==ft.length||ie||ye?null:(0,R.jsx)($,{className:Ot.noOptions,ownerState:St,role:"presentation",onMouseDown:function(e){e.preventDefault()},children:Pe}),ft.length>0?(0,R.jsx)(ee,(0,a.Z)({as:be,className:Ot.listbox,ownerState:St},xt,Ze,{ref:yt,children:ft.map((function(e,t){return fe?Ct({key:e.key,group:e.group,children:e.options.map((function(t,n){return wt(t,e.index+n)}))}):wt(e,t)}))})):null]}))})):null]})}))},93840:function(e,t,n){var o=n(72791).createContext(void 0);t.Z=o},76147:function(e,t,n){function o(e){var t=e.props,n=e.states,o=e.muiFormControl;return n.reduce((function(e,n){return e[n]=t[n],o&&"undefined"===typeof t[n]&&(e[n]=o[n]),e}),{})}n.d(t,{Z:function(){return o}})},52930:function(e,t,n){n.d(t,{Z:function(){return a}});var o=n(72791),r=n(93840);function a(){return o.useContext(r.Z)}},17133:function(e,t,n){var o=n(4942),r=n(63366),a=n(87462),i=n(72791),l=n(28182),c=n(94419),s=n(76147),u=n(52930),p=n(14036),d=n(31402),f=n(66934),v=n(10843),g=n(80184),m=["children","className","color","component","disabled","error","filled","focused","required"],h=(0,f.ZP)("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return(0,a.Z)({},t.root,"secondary"===n.color&&t.colorSecondary,n.filled&&t.filled)}})((function(e){var t,n=e.theme,r=e.ownerState;return(0,a.Z)({color:(n.vars||n).palette.text.secondary},n.typography.body1,(t={lineHeight:"1.4375em",padding:0,position:"relative"},(0,o.Z)(t,"&.".concat(v.Z.focused),{color:(n.vars||n).palette[r.color].main}),(0,o.Z)(t,"&.".concat(v.Z.disabled),{color:(n.vars||n).palette.text.disabled}),(0,o.Z)(t,"&.".concat(v.Z.error),{color:(n.vars||n).palette.error.main}),t))})),b=(0,f.ZP)("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:function(e,t){return t.asterisk}})((function(e){var t=e.theme;return(0,o.Z)({},"&.".concat(v.Z.error),{color:(t.vars||t).palette.error.main})})),Z=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiFormLabel"}),o=n.children,i=n.className,f=n.component,Z=void 0===f?"label":f,x=(0,r.Z)(n,m),y=(0,u.Z)(),S=(0,s.Z)({props:n,muiFormControl:y,states:["color","required","focused","disabled","error","filled"]}),O=(0,a.Z)({},n,{color:S.color||"primary",component:Z,disabled:S.disabled,error:S.error,filled:S.filled,focused:S.focused,required:S.required}),I=function(e){var t=e.classes,n=e.color,o=e.focused,r=e.disabled,a=e.error,i=e.filled,l=e.required,s={root:["root","color".concat((0,p.Z)(n)),r&&"disabled",a&&"error",i&&"filled",o&&"focused",l&&"required"],asterisk:["asterisk",a&&"error"]};return(0,c.Z)(s,v.M,t)}(O);return(0,g.jsxs)(h,(0,a.Z)({as:Z,ownerState:O,className:(0,l.Z)(I.root,i),ref:t},x,{children:[o,S.required&&(0,g.jsxs)(b,{ownerState:O,"aria-hidden":!0,className:I.asterisk,children:["\u2009","*"]})]}))}));t.Z=Z},10843:function(e,t,n){n.d(t,{M:function(){return a}});var o=n(75878),r=n(21217);function a(e){return(0,r.Z)("MuiFormLabel",e)}var i=(0,o.Z)("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]);t.Z=i},30829:function(e,t,n){n.d(t,{Z:function(){return y}});var o=n(4942),r=n(63366),a=n(87462),i=n(72791),l=n(94419),c=n(28182),s=n(76147),u=n(52930),p=n(17133),d=n(10843),f=n(31402),v=n(66934),g=n(75878),m=n(21217);function h(e){return(0,m.Z)("MuiInputLabel",e)}(0,g.Z)("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);var b=n(80184),Z=["disableAnimation","margin","shrink","variant","className"],x=(0,v.ZP)(p.Z,{shouldForwardProp:function(e){return(0,v.FO)(e)||"classes"===e},name:"MuiInputLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[(0,o.Z)({},"& .".concat(d.Z.asterisk),t.asterisk),t.root,n.formControl&&t.formControl,"small"===n.size&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,a.Z)({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},n.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},"small"===n.size&&{transform:"translate(0, 17px) scale(1)"},n.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!n.disableAnimation&&{transition:t.transitions.create(["color","transform","max-width"],{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut})},"filled"===n.variant&&(0,a.Z)({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===n.size&&{transform:"translate(12px, 13px) scale(1)"},n.shrink&&(0,a.Z)({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},"small"===n.size&&{transform:"translate(12px, 4px) scale(0.75)"})),"outlined"===n.variant&&(0,a.Z)({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===n.size&&{transform:"translate(14px, 9px) scale(1)"},n.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))})),y=i.forwardRef((function(e,t){var n=(0,f.Z)({name:"MuiInputLabel",props:e}),o=n.disableAnimation,i=void 0!==o&&o,p=n.shrink,d=n.className,v=(0,r.Z)(n,Z),g=(0,u.Z)(),m=p;"undefined"===typeof m&&g&&(m=g.filled||g.focused||g.adornedStart);var y=(0,s.Z)({props:n,muiFormControl:g,states:["size","variant","required"]}),S=(0,a.Z)({},n,{disableAnimation:i,formControl:g,shrink:m,size:y.size,variant:y.variant,required:y.required}),O=function(e){var t=e.classes,n=e.formControl,o=e.size,r=e.shrink,i={root:["root",n&&"formControl",!e.disableAnimation&&"animated",r&&"shrink","small"===o&&"sizeSmall",e.variant],asterisk:[e.required&&"asterisk"]},c=(0,l.Z)(i,h,t);return(0,a.Z)({},t,c)}(S);return(0,b.jsx)(x,(0,a.Z)({"data-shrink":m,ownerState:S,ref:t,className:(0,c.Z)(O.root,d)},v,{classes:O}))}))},79834:function(e,t,n){n.d(t,{Z:function(){return b}});var o=n(63366),r=n(87462),a=n(72791),i=n(28182),l=n(94419),c=n(66934),s=n(31402),u=n(14036),p=n(75878),d=n(21217);function f(e){return(0,d.Z)("MuiListSubheader",e)}(0,p.Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);var v=n(80184),g=["className","color","component","disableGutters","disableSticky","inset"],m=(0,c.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,"default"!==n.color&&t["color".concat((0,u.Z)(n.color))],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(t.vars||t).palette.text.secondary,fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(14)},"primary"===n.color&&{color:(t.vars||t).palette.primary.main},"inherit"===n.color&&{color:"inherit"},!n.disableGutters&&{paddingLeft:16,paddingRight:16},n.inset&&{paddingLeft:72},!n.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:(t.vars||t).palette.background.paper})})),h=a.forwardRef((function(e,t){var n=(0,s.Z)({props:e,name:"MuiListSubheader"}),a=n.className,c=n.color,p=void 0===c?"default":c,d=n.component,h=void 0===d?"li":d,b=n.disableGutters,Z=void 0!==b&&b,x=n.disableSticky,y=void 0!==x&&x,S=n.inset,O=void 0!==S&&S,I=(0,o.Z)(n,g),k=(0,r.Z)({},n,{color:p,component:h,disableGutters:Z,disableSticky:y,inset:O}),C=function(e){var t=e.classes,n=e.color,o=e.disableGutters,r=e.inset,a=e.disableSticky,i={root:["root","default"!==n&&"color".concat((0,u.Z)(n)),!o&&"gutters",r&&"inset",!a&&"sticky"]};return(0,l.Z)(i,f,t)}(k);return(0,v.jsx)(m,(0,r.Z)({as:h,className:(0,i.Z)(C.root,a),ref:t,ownerState:k},I))}));h.muiSkipListHighlight=!0;var b=h}}]);
-//# sourceMappingURL=2260.c0246fc5.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/2260.c0246fc5.chunk.js.map b/portal-ui/build/static/js/2260.c0246fc5.chunk.js.map
deleted file mode 100644
index d3de922cb..000000000
--- a/portal-ui/build/static/js/2260.c0246fc5.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/2260.c0246fc5.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/node_modules/@mui/base/useAutocomplete/useAutocomplete.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/Autocomplete/autocompleteClasses.js","../node_modules/@mui/material/Autocomplete/Autocomplete.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/ListSubheader/listSubheaderClasses.js","../node_modules/@mui/material/ListSubheader/ListSubheader.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\n/* eslint-disable no-constant-condition */\nimport * as React from 'react';\nimport { unstable_setRef as setRef, unstable_useEventCallback as useEventCallback, unstable_useControlled as useControlled, unstable_useId as useId, usePreviousProps } from '@mui/utils';\n\n// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\n// Give up on IE11 support for this feature\nfunction stripDiacritics(string) {\n return typeof string.normalize !== 'undefined' ? string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : string;\n}\nexport function createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n const filteredOptions = !input ? options : options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.indexOf(input) === 0 : candidate.indexOf(input) > -1;\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n}\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n return -1;\n}\nconst defaultFilterOptions = createFilterOptions();\n\n// Number of options to jump in list box when `Page Up` and `Page Down` keys are used.\nconst pageSize = 5;\nconst defaultIsActiveElementInListbox = listboxRef => {\n var _listboxRef$current$p;\n return listboxRef.current !== null && ((_listboxRef$current$p = listboxRef.current.parentElement) == null ? void 0 : _listboxRef$current$p.contains(document.activeElement));\n};\nexport default function useAutocomplete(props) {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_isActiveElementInListbox = defaultIsActiveElementInListbox,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_classNamePrefix = 'Mui',\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled: disabledProp,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionLabel: getOptionLabelProp = option => {\n var _option$label;\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n isOptionEqualToValue = (option, value) => option === value,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n readOnly = false,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = useId(idProp);\n let getOptionLabel = getOptionLabelProp;\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n if (typeof optionLabel !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n const erroneousReturn = optionLabel === undefined ? 'undefined' : `${typeof optionLabel} (${optionLabel})`;\n console.error(`MUI: The \\`getOptionLabel\\` method of ${componentName} returned ${erroneousReturn} instead of a string for ${JSON.stringify(option)}.`);\n }\n return String(optionLabel);\n }\n return optionLabel;\n };\n const ignoreFocus = React.useRef(false);\n const firstFocus = React.useRef(true);\n const inputRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [focusedTag, setFocusedTag] = React.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = React.useRef(defaultHighlighted);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = useControlled({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = React.useState(false);\n const resetInputValue = React.useCallback((event, newValue) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n let newInputValue;\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n if (inputValue === newInputValue) {\n return;\n }\n setInputValueState(newInputValue);\n if (onInputChange) {\n onInputChange(event, newInputValue, 'reset');\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = React.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open && !readOnly;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n return true;\n }),\n // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const previousProps = usePreviousProps({\n filteredOptions,\n value,\n inputValue\n });\n React.useEffect(() => {\n const valueChange = value !== previousProps.value;\n if (focused && !valueChange) {\n return;\n }\n\n // Only reset the input's value when freeSolo if the component's value changes.\n if (freeSolo && !valueChange) {\n return;\n }\n resetInputValue(null, value);\n }, [value, resetInputValue, focused, previousProps.value, freeSolo]);\n const listboxAvailable = open && filteredOptions.length > 0 && !readOnly;\n if (process.env.NODE_ENV !== 'production') {\n if (value !== null && !freeSolo && options.length > 0) {\n const missingValue = (multiple ? value : [value]).filter(value2 => !options.some(option => isOptionEqualToValue(option, value2)));\n if (missingValue.length > 0) {\n console.warn([`MUI: The value provided to ${componentName} is invalid.`, `None of the options match with \\`${missingValue.length > 1 ? JSON.stringify(missingValue) : JSON.stringify(missingValue[0])}\\`.`, 'You can use the `isOptionEqualToValue` prop to customize the equality test.'].join('\\n'));\n }\n }\n }\n const focusTag = useEventCallback(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n });\n\n // Ensure the focusedTag is never inconsistent\n React.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index === -1) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === filteredOptions.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n if (option && !option.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n const setHighlightedIndex = useEventCallback(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index;\n\n // does the index exist?\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n if (!listboxRef.current) {\n return;\n }\n const prev = listboxRef.current.querySelector(`[role=\"option\"].${unstable_classNamePrefix}-focused`);\n if (prev) {\n prev.classList.remove(`${unstable_classNamePrefix}-focused`);\n prev.classList.remove(`${unstable_classNamePrefix}-focusVisible`);\n }\n let listboxNode = listboxRef.current;\n if (listboxRef.current.getAttribute('role') !== 'listbox') {\n listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]');\n }\n\n // \"No results\"\n if (!listboxNode) {\n return;\n }\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n if (!option) {\n return;\n }\n option.classList.add(`${unstable_classNamePrefix}-focused`);\n if (reason === 'keyboard') {\n option.classList.add(`${unstable_classNamePrefix}-focusVisible`);\n }\n\n // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/WAI/content-assets/wai-aria-practices/patterns/combobox/examples/js/select-only.js\n //\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = useEventCallback(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n if (diff === 'start') {\n return 0;\n }\n if (diff === 'end') {\n return maxIndex;\n }\n const newIndex = highlightedIndexRef.current + diff;\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n return maxIndex;\n }\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n return 0;\n }\n return newIndex;\n };\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n });\n\n // Sync the content of the input with the highlighted option.\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option;\n\n // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const checkHighlightedOptionExists = () => {\n const isSameValue = (value1, value2) => {\n const label1 = value1 ? getOptionLabel(value1) : '';\n const label2 = value2 ? getOptionLabel(value2) : '';\n return label1 === label2;\n };\n if (highlightedIndexRef.current !== -1 && previousProps.filteredOptions && previousProps.filteredOptions.length !== filteredOptions.length && previousProps.inputValue === inputValue && (multiple ? value.length === previousProps.value.length && previousProps.value.every((val, i) => getOptionLabel(value[i]) === getOptionLabel(val)) : isSameValue(previousProps.value, value))) {\n const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];\n if (previousHighlightedOption) {\n const previousHighlightedOptionExists = filteredOptions.some(option => {\n return getOptionLabel(option) === getOptionLabel(previousHighlightedOption);\n });\n if (previousHighlightedOptionExists) {\n return true;\n }\n }\n }\n return false;\n };\n const syncHighlightedIndex = React.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n // Check if the previously highlighted option still exists in the updated filtered options list and if the value and inputValue haven't changed\n // If it exists and the value and the inputValue haven't changed, return, otherwise continue execution\n if (checkHighlightedOptionExists()) {\n return;\n }\n const valueItem = multiple ? value[0] : value;\n\n // The popup is empty, reset\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n if (!listboxRef.current) {\n return;\n }\n\n // Synchronize the value with the highlighted index\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current];\n\n // Keep the current highlighted index if possible\n if (multiple && currentOption && findIndex(value, val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n const itemIndex = findIndex(filteredOptions, optionItem => isOptionEqualToValue(optionItem, valueItem));\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n return;\n }\n\n // Prevent the highlighted index to leak outside the boundaries.\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n }\n\n // Restore the focus to the previous index.\n setHighlightedIndex({\n index: highlightedIndexRef.current\n });\n // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length,\n // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = useEventCallback(node => {\n setRef(listboxRef, node);\n if (!node) {\n return;\n }\n syncHighlightedIndex();\n });\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputRef.current || inputRef.current.nodeName !== 'INPUT') {\n if (inputRef.current && inputRef.current.nodeName === 'TEXTAREA') {\n console.warn([`A textarea element was provided to ${componentName} where input was expected.`, `This is not a supported scenario but it may work under certain conditions.`, `A textarea keyboard navigation may conflict with Autocomplete controls (e.g. enter and arrow keys).`, `Make sure to test keyboard navigation and add custom event handlers if necessary.`].join('\\n'));\n } else {\n console.error([`MUI: Unable to find the input element. It was resolved to ${inputRef.current} while an HTMLInputElement was expected.`, `Instead, ${componentName} expects an input element.`, '', componentName === 'useAutocomplete' ? 'Make sure you have bound getInputProps correctly and that the normal ref/effect resolutions order is guaranteed.' : 'Make sure you have customized the input component correctly.'].join('\\n'));\n }\n }\n }, [componentName]);\n }\n React.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n const handleOpen = event => {\n if (open) {\n return;\n }\n setOpenState(true);\n setInputPristine(true);\n if (onOpen) {\n onOpen(event);\n }\n };\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n setOpenState(false);\n if (onClose) {\n onClose(event, reason);\n }\n };\n const handleValue = (event, newValue, reason, details) => {\n if (multiple) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n setValueState(newValue);\n };\n const isTouch = React.useRef(false);\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n if (process.env.NODE_ENV !== 'production') {\n const matches = newValue.filter(val => isOptionEqualToValue(option, val));\n if (matches.length > 1) {\n console.error([`MUI: The \\`isOptionEqualToValue\\` method of ${componentName} does not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${matches.length} matches.`].join('\\n'));\n }\n }\n const itemIndex = findIndex(newValue, valueItem => isOptionEqualToValue(option, valueItem));\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n resetInputValue(event, newValue);\n handleValue(event, newValue, reason, {\n option\n });\n if (!disableCloseOnSelect && (!event || !event.ctrlKey && !event.metaKey)) {\n handleClose(event, reason);\n }\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n if (inputValue === '') {\n handleClose(event, 'toggleInput');\n }\n let nextTag = focusedTag;\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n if (nextTag < 0) {\n nextTag = 0;\n }\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n handleValue(event, multiple ? [] : null, 'clear');\n };\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n if (event.defaultMuiPrevented) {\n return;\n }\n if (focusedTag !== -1 && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) === -1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n\n // Wait until IME is settled.\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n\n // Avoid early form validation, let the end-users continue filling the form.\n event.preventDefault();\n if (disabled) {\n return;\n }\n selectNewValue(event, option, 'selectOption');\n\n // Move the selection to the end.\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n break;\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClear(event);\n }\n break;\n case 'Backspace':\n if (multiple && !readOnly && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n case 'Delete':\n if (multiple && !readOnly && inputValue === '' && value.length > 0 && focusedTag !== -1) {\n const index = focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n default:\n }\n }\n };\n const handleFocus = event => {\n setFocused(true);\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (unstable_isActiveElementInListbox(listboxRef)) {\n inputRef.current.focus();\n return;\n }\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value);\n }\n handleClose(event, 'blur');\n };\n const handleInputChange = event => {\n const newValue = event.target.value;\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n const handleOptionMouseMove = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n if (highlightedIndexRef.current !== index) {\n setHighlightedIndex({\n event,\n index,\n reason: 'mouse'\n });\n }\n };\n const handleOptionTouchStart = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'touch'\n });\n isTouch.current = true;\n };\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n };\n\n // Prevent input blur when interacting with the combobox\n const handleMouseDown = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n };\n\n // Focus the input when interacting with the combobox\n const handleClick = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n inputRef.current.focus();\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n firstFocus.current = false;\n };\n const handleInputMouseDown = event => {\n if (inputValue === '' || !open) {\n handlePopupIndicator(event);\n }\n };\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (indexBy.get(group) && !warn) {\n console.warn(`MUI: The options provided combined with the \\`groupBy\\` method of ${componentName} returns duplicated headers.`, 'You can solve the issue by sorting the options with the output of `groupBy`.');\n warn = true;\n }\n indexBy.set(group, true);\n }\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n return acc;\n }, []);\n }\n if (disabledProp && focused) {\n handleBlur();\n }\n return {\n getRootProps: (other = {}) => _extends({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null\n }, other, {\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperatively so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n 'aria-expanded': listboxAvailable,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false',\n role: 'combobox',\n disabled: disabledProp\n }),\n getClearProps: () => ({\n tabIndex: -1,\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n onClick: handlePopupIndicator\n }),\n getTagProps: ({\n index\n }) => _extends({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1\n }, !readOnly && {\n onDelete: handleTagDelete(index)\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseMove: handleOptionMouseMove,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n expanded: popupOpen && anchorEl,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n *\n * Alias to `Clear`.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getAutocompleteUtilityClass(slot) {\n return generateUtilityClass('MuiAutocomplete', slot);\n}\nconst autocompleteClasses = generateUtilityClasses('MuiAutocomplete', ['root', 'expanded', 'fullWidth', 'focused', 'focusVisible', 'tag', 'tagSizeSmall', 'tagSizeMedium', 'hasPopupIcon', 'hasClearIcon', 'inputRoot', 'input', 'inputFocused', 'endAdornment', 'clearIndicator', 'popupIndicator', 'popupIndicatorOpen', 'popper', 'popperDisablePortal', 'paper', 'listbox', 'loading', 'noOptions', 'option', 'groupLabel', 'groupUl']);\nexport default autocompleteClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _ClearIcon, _ArrowDropDownIcon;\nconst _excluded = [\"autoComplete\", \"autoHighlight\", \"autoSelect\", \"blurOnSelect\", \"ChipProps\", \"className\", \"clearIcon\", \"clearOnBlur\", \"clearOnEscape\", \"clearText\", \"closeText\", \"componentsProps\", \"defaultValue\", \"disableClearable\", \"disableCloseOnSelect\", \"disabled\", \"disabledItemsFocusable\", \"disableListWrap\", \"disablePortal\", \"filterOptions\", \"filterSelectedOptions\", \"forcePopupIcon\", \"freeSolo\", \"fullWidth\", \"getLimitTagsText\", \"getOptionDisabled\", \"getOptionLabel\", \"isOptionEqualToValue\", \"groupBy\", \"handleHomeEndKeys\", \"id\", \"includeInputInList\", \"inputValue\", \"limitTags\", \"ListboxComponent\", \"ListboxProps\", \"loading\", \"loadingText\", \"multiple\", \"noOptionsText\", \"onChange\", \"onClose\", \"onHighlightChange\", \"onInputChange\", \"onOpen\", \"open\", \"openOnFocus\", \"openText\", \"options\", \"PaperComponent\", \"PopperComponent\", \"popupIcon\", \"readOnly\", \"renderGroup\", \"renderInput\", \"renderOption\", \"renderTags\", \"selectOnFocus\", \"size\", \"slotProps\", \"value\"],\n _excluded2 = [\"ref\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes, integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, useAutocomplete, createFilterOptions } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport Popper from '../Popper';\nimport ListSubheader from '../ListSubheader';\nimport Paper from '../Paper';\nimport IconButton from '../IconButton';\nimport Chip from '../Chip';\nimport inputClasses from '../Input/inputClasses';\nimport inputBaseClasses from '../InputBase/inputBaseClasses';\nimport outlinedInputClasses from '../OutlinedInput/outlinedInputClasses';\nimport filledInputClasses from '../FilledInput/filledInputClasses';\nimport ClearIcon from '../internal/svg-icons/Close';\nimport ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport autocompleteClasses, { getAutocompleteUtilityClass } from './autocompleteClasses';\nimport capitalize from '../utils/capitalize';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePortal,\n expanded,\n focused,\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n popupOpen,\n size\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', focused && 'focused', fullWidth && 'fullWidth', hasClearIcon && 'hasClearIcon', hasPopupIcon && 'hasPopupIcon'],\n inputRoot: ['inputRoot'],\n input: ['input', inputFocused && 'inputFocused'],\n tag: ['tag', `tagSize${capitalize(size)}`],\n endAdornment: ['endAdornment'],\n clearIndicator: ['clearIndicator'],\n popupIndicator: ['popupIndicator', popupOpen && 'popupIndicatorOpen'],\n popper: ['popper', disablePortal && 'popperDisablePortal'],\n paper: ['paper'],\n listbox: ['listbox'],\n loading: ['loading'],\n noOptions: ['noOptions'],\n option: ['option'],\n groupLabel: ['groupLabel'],\n groupUl: ['groupUl']\n };\n return composeClasses(slots, getAutocompleteUtilityClass, classes);\n};\nconst AutocompleteRoot = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n size\n } = ownerState;\n return [{\n [`& .${autocompleteClasses.tag}`]: styles.tag\n }, {\n [`& .${autocompleteClasses.tag}`]: styles[`tagSize${capitalize(size)}`]\n }, {\n [`& .${autocompleteClasses.inputRoot}`]: styles.inputRoot\n }, {\n [`& .${autocompleteClasses.input}`]: styles.input\n }, {\n [`& .${autocompleteClasses.input}`]: inputFocused && styles.inputFocused\n }, styles.root, fullWidth && styles.fullWidth, hasPopupIcon && styles.hasPopupIcon, hasClearIcon && styles.hasClearIcon];\n }\n})(({\n ownerState\n}) => _extends({\n [`&.${autocompleteClasses.focused} .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n },\n /* Avoid double tap issue on iOS */\n '@media (pointer: fine)': {\n [`&:hover .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n }\n }\n}, ownerState.fullWidth && {\n width: '100%'\n}, {\n [`& .${autocompleteClasses.tag}`]: _extends({\n margin: 3,\n maxWidth: 'calc(100% - 6px)'\n }, ownerState.size === 'small' && {\n margin: 2,\n maxWidth: 'calc(100% - 4px)'\n }),\n [`& .${autocompleteClasses.inputRoot}`]: {\n flexWrap: 'wrap',\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4\n },\n [`& .${autocompleteClasses.input}`]: {\n width: 0,\n minWidth: 30\n }\n },\n [`& .${inputClasses.root}`]: {\n paddingBottom: 1,\n '& .MuiInput-input': {\n padding: '4px 4px 4px 0px'\n }\n },\n [`& .${inputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n [`& .${inputClasses.input}`]: {\n padding: '2px 4px 3px 0'\n }\n },\n [`& .${outlinedInputClasses.root}`]: {\n padding: 9,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${autocompleteClasses.input}`]: {\n padding: '7.5px 4px 7.5px 5px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${outlinedInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n // Don't specify paddingRight, as it overrides the default value set when there is only\n // one of the popup or clear icon as the specificity is equal so the latter one wins\n paddingTop: 6,\n paddingBottom: 6,\n paddingLeft: 6,\n [`& .${autocompleteClasses.input}`]: {\n padding: '2.5px 4px 2.5px 8px'\n }\n },\n [`& .${filledInputClasses.root}`]: {\n paddingTop: 19,\n paddingLeft: 8,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${filledInputClasses.input}`]: {\n padding: '7px 4px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n paddingBottom: 1,\n [`& .${filledInputClasses.input}`]: {\n padding: '2.5px 4px'\n }\n },\n [`& .${inputBaseClasses.hiddenLabel}`]: {\n paddingTop: 8\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.hiddenLabel}`]: {\n paddingTop: 0,\n paddingBottom: 0,\n [`& .${autocompleteClasses.input}`]: {\n paddingTop: 16,\n paddingBottom: 17\n }\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.hiddenLabel}.${inputBaseClasses.sizeSmall}`]: {\n [`& .${autocompleteClasses.input}`]: {\n paddingTop: 8,\n paddingBottom: 9\n }\n },\n [`& .${autocompleteClasses.input}`]: _extends({\n flexGrow: 1,\n textOverflow: 'ellipsis',\n opacity: 0\n }, ownerState.inputFocused && {\n opacity: 1\n })\n}));\nconst AutocompleteEndAdornment = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'EndAdornment',\n overridesResolver: (props, styles) => styles.endAdornment\n})({\n // We use a position absolute to support wrapping tags.\n position: 'absolute',\n right: 0,\n top: 'calc(50% - 14px)' // Center vertically\n});\n\nconst AutocompleteClearIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'ClearIndicator',\n overridesResolver: (props, styles) => styles.clearIndicator\n})({\n marginRight: -2,\n padding: 4,\n visibility: 'hidden'\n});\nconst AutocompletePopupIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'PopupIndicator',\n overridesResolver: ({\n ownerState\n }, styles) => _extends({}, styles.popupIndicator, ownerState.popupOpen && styles.popupIndicatorOpen)\n})(({\n ownerState\n}) => _extends({\n padding: 2,\n marginRight: -2\n}, ownerState.popupOpen && {\n transform: 'rotate(180deg)'\n}));\nconst AutocompletePopper = styled(Popper, {\n name: 'MuiAutocomplete',\n slot: 'Popper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${autocompleteClasses.option}`]: styles.option\n }, styles.popper, ownerState.disablePortal && styles.popperDisablePortal];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n zIndex: (theme.vars || theme).zIndex.modal\n}, ownerState.disablePortal && {\n position: 'absolute'\n}));\nconst AutocompletePaper = styled(Paper, {\n name: 'MuiAutocomplete',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})(({\n theme\n}) => _extends({}, theme.typography.body1, {\n overflow: 'auto'\n}));\nconst AutocompleteLoading = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Loading',\n overridesResolver: (props, styles) => styles.loading\n})(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n padding: '14px 16px'\n}));\nconst AutocompleteNoOptions = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'NoOptions',\n overridesResolver: (props, styles) => styles.noOptions\n})(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n padding: '14px 16px'\n}));\nconst AutocompleteListbox = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Listbox',\n overridesResolver: (props, styles) => styles.listbox\n})(({\n theme\n}) => ({\n listStyle: 'none',\n margin: 0,\n padding: '8px 0',\n maxHeight: '40vh',\n overflow: 'auto',\n position: 'relative',\n [`& .${autocompleteClasses.option}`]: {\n minHeight: 48,\n display: 'flex',\n overflow: 'hidden',\n justifyContent: 'flex-start',\n alignItems: 'center',\n cursor: 'pointer',\n paddingTop: 6,\n boxSizing: 'border-box',\n outline: '0',\n WebkitTapHighlightColor: 'transparent',\n paddingBottom: 6,\n paddingLeft: 16,\n paddingRight: 16,\n [theme.breakpoints.up('sm')]: {\n minHeight: 'auto'\n },\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&[aria-disabled=\"true\"]': {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n '&[aria-selected=\"true\"]': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n }\n }\n}));\nconst AutocompleteGroupLabel = styled(ListSubheader, {\n name: 'MuiAutocomplete',\n slot: 'GroupLabel',\n overridesResolver: (props, styles) => styles.groupLabel\n})(({\n theme\n}) => ({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n top: -8\n}));\nconst AutocompleteGroupUl = styled('ul', {\n name: 'MuiAutocomplete',\n slot: 'GroupUl',\n overridesResolver: (props, styles) => styles.groupUl\n})({\n padding: 0,\n [`& .${autocompleteClasses.option}`]: {\n paddingLeft: 24\n }\n});\nexport { createFilterOptions };\nconst Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps, ref) {\n var _slotProps$clearIndic, _slotProps$paper, _slotProps$popper, _slotProps$popupIndic;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAutocomplete'\n });\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const {\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n ChipProps,\n className,\n clearIcon = _ClearIcon || (_ClearIcon = /*#__PURE__*/_jsx(ClearIcon, {\n fontSize: \"small\"\n })),\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n clearText = 'Clear',\n closeText = 'Close',\n componentsProps = {},\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled = false,\n disabledItemsFocusable = false,\n disableListWrap = false,\n disablePortal = false,\n filterSelectedOptions = false,\n forcePopupIcon = 'auto',\n freeSolo = false,\n fullWidth = false,\n getLimitTagsText = more => `+${more}`,\n getOptionLabel = option => {\n var _option$label;\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n includeInputInList = false,\n limitTags = -1,\n ListboxComponent = 'ul',\n ListboxProps,\n loading = false,\n loadingText = 'Loading…',\n multiple = false,\n noOptionsText = 'No options',\n openOnFocus = false,\n openText = 'Open',\n PaperComponent = Paper,\n PopperComponent = Popper,\n popupIcon = _ArrowDropDownIcon || (_ArrowDropDownIcon = /*#__PURE__*/_jsx(ArrowDropDownIcon, {})),\n readOnly = false,\n renderGroup: renderGroupProp,\n renderInput,\n renderOption: renderOptionProp,\n renderTags,\n selectOnFocus = !props.freeSolo,\n size = 'medium',\n slotProps = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n\n const {\n getRootProps,\n getInputProps,\n getInputLabelProps,\n getPopupIndicatorProps,\n getClearProps,\n getTagProps,\n getListboxProps,\n getOptionProps,\n value,\n dirty,\n expanded,\n id,\n popupOpen,\n focused,\n focusedTag,\n anchorEl,\n setAnchorEl,\n inputValue,\n groupedOptions\n } = useAutocomplete(_extends({}, props, {\n componentName: 'Autocomplete'\n }));\n const hasClearIcon = !disableClearable && !disabled && dirty && !readOnly;\n const hasPopupIcon = (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false;\n const {\n onMouseDown: handleInputMouseDown\n } = getInputProps();\n const {\n ref: externalListboxRef\n } = ListboxProps != null ? ListboxProps : {};\n const _getListboxProps = getListboxProps(),\n {\n ref: listboxRef\n } = _getListboxProps,\n otherListboxProps = _objectWithoutPropertiesLoose(_getListboxProps, _excluded2);\n const combinedListboxRef = useForkRef(listboxRef, externalListboxRef);\n\n // If you modify this, make sure to keep the `AutocompleteOwnerState` type in sync.\n const ownerState = _extends({}, props, {\n disablePortal,\n expanded,\n focused,\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused: focusedTag === -1,\n popupOpen,\n size\n });\n const classes = useUtilityClasses(ownerState);\n let startAdornment;\n if (multiple && value.length > 0) {\n const getCustomizedTagProps = params => _extends({\n className: classes.tag,\n disabled\n }, getTagProps(params));\n if (renderTags) {\n startAdornment = renderTags(value, getCustomizedTagProps, ownerState);\n } else {\n startAdornment = value.map((option, index) => /*#__PURE__*/_jsx(Chip, _extends({\n label: getOptionLabel(option),\n size: size\n }, getCustomizedTagProps({\n index\n }), ChipProps)));\n }\n }\n if (limitTags > -1 && Array.isArray(startAdornment)) {\n const more = startAdornment.length - limitTags;\n if (!focused && more > 0) {\n startAdornment = startAdornment.splice(0, limitTags);\n startAdornment.push( /*#__PURE__*/_jsx(\"span\", {\n className: classes.tag,\n children: getLimitTagsText(more)\n }, startAdornment.length));\n }\n }\n const defaultRenderGroup = params => /*#__PURE__*/_jsxs(\"li\", {\n children: [/*#__PURE__*/_jsx(AutocompleteGroupLabel, {\n className: classes.groupLabel,\n ownerState: ownerState,\n component: \"div\",\n children: params.group\n }), /*#__PURE__*/_jsx(AutocompleteGroupUl, {\n className: classes.groupUl,\n ownerState: ownerState,\n children: params.children\n })]\n }, params.key);\n const renderGroup = renderGroupProp || defaultRenderGroup;\n const defaultRenderOption = (props2, option) => /*#__PURE__*/_jsx(\"li\", _extends({}, props2, {\n children: getOptionLabel(option)\n }));\n const renderOption = renderOptionProp || defaultRenderOption;\n const renderListOption = (option, index) => {\n const optionProps = getOptionProps({\n option,\n index\n });\n return renderOption(_extends({}, optionProps, {\n className: classes.option\n }), option, {\n selected: optionProps['aria-selected'],\n index,\n inputValue\n });\n };\n const clearIndicatorSlotProps = (_slotProps$clearIndic = slotProps.clearIndicator) != null ? _slotProps$clearIndic : componentsProps.clearIndicator;\n const paperSlotProps = (_slotProps$paper = slotProps.paper) != null ? _slotProps$paper : componentsProps.paper;\n const popperSlotProps = (_slotProps$popper = slotProps.popper) != null ? _slotProps$popper : componentsProps.popper;\n const popupIndicatorSlotProps = (_slotProps$popupIndic = slotProps.popupIndicator) != null ? _slotProps$popupIndic : componentsProps.popupIndicator;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(AutocompleteRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, getRootProps(other), {\n children: renderInput({\n id,\n disabled,\n fullWidth: true,\n size: size === 'small' ? 'small' : undefined,\n InputLabelProps: getInputLabelProps(),\n InputProps: _extends({\n ref: setAnchorEl,\n className: classes.inputRoot,\n startAdornment,\n onClick: event => {\n if (event.target === event.currentTarget) {\n handleInputMouseDown(event);\n }\n }\n }, (hasClearIcon || hasPopupIcon) && {\n endAdornment: /*#__PURE__*/_jsxs(AutocompleteEndAdornment, {\n className: classes.endAdornment,\n ownerState: ownerState,\n children: [hasClearIcon ? /*#__PURE__*/_jsx(AutocompleteClearIndicator, _extends({}, getClearProps(), {\n \"aria-label\": clearText,\n title: clearText,\n ownerState: ownerState\n }, clearIndicatorSlotProps, {\n className: clsx(classes.clearIndicator, clearIndicatorSlotProps == null ? void 0 : clearIndicatorSlotProps.className),\n children: clearIcon\n })) : null, hasPopupIcon ? /*#__PURE__*/_jsx(AutocompletePopupIndicator, _extends({}, getPopupIndicatorProps(), {\n disabled: disabled,\n \"aria-label\": popupOpen ? closeText : openText,\n title: popupOpen ? closeText : openText,\n ownerState: ownerState\n }, popupIndicatorSlotProps, {\n className: clsx(classes.popupIndicator, popupIndicatorSlotProps == null ? void 0 : popupIndicatorSlotProps.className),\n children: popupIcon\n })) : null]\n })\n }),\n inputProps: _extends({\n className: classes.input,\n disabled,\n readOnly\n }, getInputProps())\n })\n })), anchorEl ? /*#__PURE__*/_jsx(AutocompletePopper, _extends({\n as: PopperComponent,\n disablePortal: disablePortal,\n style: {\n width: anchorEl ? anchorEl.clientWidth : null\n },\n ownerState: ownerState,\n role: \"presentation\",\n anchorEl: anchorEl,\n open: popupOpen\n }, popperSlotProps, {\n className: clsx(classes.popper, popperSlotProps == null ? void 0 : popperSlotProps.className),\n children: /*#__PURE__*/_jsxs(AutocompletePaper, _extends({\n ownerState: ownerState,\n as: PaperComponent\n }, paperSlotProps, {\n className: clsx(classes.paper, paperSlotProps == null ? void 0 : paperSlotProps.className),\n children: [loading && groupedOptions.length === 0 ? /*#__PURE__*/_jsx(AutocompleteLoading, {\n className: classes.loading,\n ownerState: ownerState,\n children: loadingText\n }) : null, groupedOptions.length === 0 && !freeSolo && !loading ? /*#__PURE__*/_jsx(AutocompleteNoOptions, {\n className: classes.noOptions,\n ownerState: ownerState,\n role: \"presentation\",\n onMouseDown: event => {\n // Prevent input blur when interacting with the \"no options\" content\n event.preventDefault();\n },\n children: noOptionsText\n }) : null, groupedOptions.length > 0 ? /*#__PURE__*/_jsx(AutocompleteListbox, _extends({\n as: ListboxComponent,\n className: classes.listbox,\n ownerState: ownerState\n }, otherListboxProps, ListboxProps, {\n ref: combinedListboxRef,\n children: groupedOptions.map((option, index) => {\n if (groupBy) {\n return renderGroup({\n key: option.key,\n group: option.group,\n children: option.options.map((option2, index2) => renderListOption(option2, option.index + index2))\n });\n }\n return renderListOption(option, index);\n })\n })) : null]\n }))\n })) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Autocomplete.propTypes /* remove-proptypes */ = {\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 * If `true`, the portion of the selected suggestion that has not been typed by the user,\n * known as the completion string, appears inline after the input cursor in the textbox.\n * The inline completion string is visually highlighted and has a selected state.\n * @default false\n */\n autoComplete: PropTypes.bool,\n /**\n * If `true`, the first option is automatically highlighted.\n * @default false\n */\n autoHighlight: PropTypes.bool,\n /**\n * If `true`, the selected option becomes the value of the input\n * when the Autocomplete loses focus unless the user chooses\n * a different option or changes the character string in the input.\n *\n * When using `freeSolo` mode, the typed value will be the input value\n * if the Autocomplete loses focus without highlighting an option.\n * @default false\n */\n autoSelect: PropTypes.bool,\n /**\n * Control if the input should be blurred when an option is selected:\n *\n * - `false` the input is not blurred.\n * - `true` the input is always blurred.\n * - `touch` the input is blurred after a touch event.\n * - `mouse` the input is blurred after a mouse event.\n * @default false\n */\n blurOnSelect: PropTypes.oneOfType([PropTypes.oneOf(['mouse', 'touch']), PropTypes.bool]),\n /**\n * Props applied to the [`Chip`](/material-ui/api/chip/) element.\n */\n ChipProps: PropTypes.object,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The icon to display in place of the default clear icon.\n * @default \n */\n clearIcon: PropTypes.node,\n /**\n * If `true`, the input's text is cleared on blur if no value is selected.\n *\n * Set to `true` if you want to help the user enter a new value.\n * Set to `false` if you want to help the user resume their search.\n * @default !props.freeSolo\n */\n clearOnBlur: PropTypes.bool,\n /**\n * If `true`, clear all values when the user presses escape and the popup is closed.\n * @default false\n */\n clearOnEscape: PropTypes.bool,\n /**\n * Override the default text for the *clear* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Clear'\n */\n clearText: PropTypes.string,\n /**\n * Override the default text for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n clearIndicator: PropTypes.object,\n paper: PropTypes.object,\n popper: PropTypes.object,\n popupIndicator: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n * @default props.multiple ? [] : null\n */\n defaultValue: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.defaultValue !== undefined && !Array.isArray(props.defaultValue)) {\n return new Error(['MUI: The Autocomplete expects the `defaultValue` prop to be an array when `multiple={true}` or undefined.', `However, ${props.defaultValue} was provided.`].join('\\n'));\n }\n return null;\n }),\n /**\n * If `true`, the input can't be cleared.\n * @default false\n */\n disableClearable: PropTypes.bool,\n /**\n * If `true`, the popup won't close when a value is selected.\n * @default false\n */\n disableCloseOnSelect: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the list box in the popup will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * If `true`, the `Popper` content will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * A function that determines the filtered options to be rendered on search.\n *\n * @default createFilterOptions()\n * @param {T[]} options The options to render.\n * @param {object} state The state of the component.\n * @returns {T[]}\n */\n filterOptions: PropTypes.func,\n /**\n * If `true`, hide the selected options from the list box.\n * @default false\n */\n filterSelectedOptions: PropTypes.bool,\n /**\n * Force the visibility display of the popup icon.\n * @default 'auto'\n */\n forcePopupIcon: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.bool]),\n /**\n * If `true`, the Autocomplete is free solo, meaning that the user input is not bound to provided options.\n * @default false\n */\n freeSolo: PropTypes.bool,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The label to display when the tags are truncated (`limitTags`).\n *\n * @param {number} more The number of truncated tags.\n * @returns {ReactNode}\n * @default (more) => `+${more}`\n */\n getLimitTagsText: PropTypes.func,\n /**\n * Used to determine the disabled state for a given option.\n *\n * @param {T} option The option to test.\n * @returns {boolean}\n */\n getOptionDisabled: PropTypes.func,\n /**\n * Used to determine the string value for a given option.\n * It's used to fill the input (and the list box options if `renderOption` is not provided).\n *\n * If used in free solo mode, it must accept both the type of the options and a string.\n *\n * @param {T} option\n * @returns {string}\n * @default (option) => option.label ?? option\n */\n getOptionLabel: PropTypes.func,\n /**\n * If provided, the options will be grouped under the returned string.\n * The groupBy value is also used as the text for group headings when `renderGroup` is not provided.\n *\n * @param {T} options The options to group.\n * @returns {string}\n */\n groupBy: PropTypes.func,\n /**\n * If `true`, the component handles the \"Home\" and \"End\" keys when the popup is open.\n * It should move focus to the first option and last option, respectively.\n * @default !props.freeSolo\n */\n handleHomeEndKeys: PropTypes.bool,\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide an id it will fall back to a randomly generated one.\n */\n id: PropTypes.string,\n /**\n * If `true`, the highlight can move to the input.\n * @default false\n */\n includeInputInList: PropTypes.bool,\n /**\n * The input value.\n */\n inputValue: PropTypes.string,\n /**\n * Used to determine if the option represents the given value.\n * Uses strict equality by default.\n * ⚠️ Both arguments need to be handled, an option can only match with one value.\n *\n * @param {T} option The option to test.\n * @param {T} value The value to test against.\n * @returns {boolean}\n */\n isOptionEqualToValue: PropTypes.func,\n /**\n * The maximum number of tags that will be visible when not focused.\n * Set `-1` to disable the limit.\n * @default -1\n */\n limitTags: integerPropType,\n /**\n * The component used to render the listbox.\n * @default 'ul'\n */\n ListboxComponent: PropTypes.elementType,\n /**\n * Props applied to the Listbox element.\n */\n ListboxProps: PropTypes.object,\n /**\n * If `true`, the component is in a loading state.\n * This shows the `loadingText` in place of suggestions (only if there are no suggestions to show, e.g. `options` are empty).\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Text to display when in a loading state.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Loading…'\n */\n loadingText: PropTypes.node,\n /**\n * If `true`, `value` must be an array and the menu will support multiple selections.\n * @default false\n */\n multiple: PropTypes.bool,\n /**\n * Text to display when there are no options.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'No options'\n */\n noOptionsText: PropTypes.node,\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {T|T[]} value The new value of the component.\n * @param {string} reason One of \"createOption\", \"selectOption\", \"removeOption\", \"blur\" or \"clear\".\n * @param {string} [details]\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} reason Can be: `\"toggleInput\"`, `\"escape\"`, `\"selectOption\"`, `\"removeOption\"`, `\"blur\"`.\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the highlight option changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {T} option The highlighted option.\n * @param {string} reason Can be: `\"keyboard\"`, `\"auto\"`, `\"mouse\"`, `\"touch\"`.\n */\n onHighlightChange: PropTypes.func,\n /**\n * Callback fired when the input value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} value The new value of the text input.\n * @param {string} reason Can be: `\"input\"` (user input), `\"reset\"` (programmatic change), `\"clear\"`.\n */\n onInputChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onOpen: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n /**\n * If `true`, the popup will open on input focus.\n * @default false\n */\n openOnFocus: PropTypes.bool,\n /**\n * Override the default text for the *open popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Open'\n */\n openText: PropTypes.string,\n /**\n * Array of options.\n */\n options: PropTypes.array.isRequired,\n /**\n * The component used to render the body of the popup.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * The component used to position the popup.\n * @default Popper\n */\n PopperComponent: PropTypes.elementType,\n /**\n * The icon to display in place of the default popup icon.\n * @default \n */\n popupIcon: PropTypes.node,\n /**\n * If `true`, the component becomes readonly. It is also supported for multiple tags where the tag cannot be deleted.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * Render the group.\n *\n * @param {AutocompleteRenderGroupParams} params The group to render.\n * @returns {ReactNode}\n */\n renderGroup: PropTypes.func,\n /**\n * Render the input.\n *\n * @param {object} params\n * @returns {ReactNode}\n */\n renderInput: PropTypes.func.isRequired,\n /**\n * Render the option, use `getOptionLabel` by default.\n *\n * @param {object} props The props to apply on the li element.\n * @param {T} option The option to render.\n * @param {object} state The state of the component.\n * @returns {ReactNode}\n */\n renderOption: PropTypes.func,\n /**\n * Render the selected value.\n *\n * @param {T[]} value The `value` provided to the component.\n * @param {function} getTagProps A tag props getter.\n * @param {object} ownerState The state of the Autocomplete component.\n * @returns {ReactNode}\n */\n renderTags: PropTypes.func,\n /**\n * If `true`, the input's text is selected on focus.\n * It helps the user clear the selected value.\n * @default !props.freeSolo\n */\n selectOnFocus: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n clearIndicator: PropTypes.object,\n paper: PropTypes.object,\n popper: PropTypes.object,\n popupIndicator: PropTypes.object\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 * The value of the autocomplete.\n *\n * The value must have reference equality with the option in order to be selected.\n * You can customize the equality behavior with the `isOptionEqualToValue` prop.\n */\n value: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.value !== undefined && !Array.isArray(props.value)) {\n return new Error(['MUI: The Autocomplete expects the `value` prop to be an array when `multiple={true}` or undefined.', `However, ${props.value} was provided.`].join('\\n'));\n }\n return null;\n })\n} : void 0;\nexport default Autocomplete;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst FormControlContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\nexport default FormControlContext;","export default function formControlState({\n props,\n states,\n muiFormControl\n}) {\n return states.reduce((acc, state) => {\n acc[state] = props[state];\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n return acc;\n }, {});\n}","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"required\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport formLabelClasses, { getFormLabelUtilityClasses } from './formLabelClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n focused,\n disabled,\n error,\n filled,\n required\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', filled && 'filled', focused && 'focused', required && 'required'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormLabelUtilityClasses, classes);\n};\nexport const FormLabelRoot = styled('label', {\n name: 'MuiFormLabel',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return _extends({}, styles.root, ownerState.color === 'secondary' && styles.colorSecondary, ownerState.filled && styles.filled);\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, theme.typography.body1, {\n lineHeight: '1.4375em',\n padding: 0,\n position: 'relative',\n [`&.${formLabelClasses.focused}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main\n },\n [`&.${formLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(({\n theme\n}) => ({\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\nconst FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormLabel'\n });\n const {\n children,\n className,\n component = 'label'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']\n });\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n component,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(FormLabelRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [children, fcs.required && /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormLabel.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\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 * If `true`, the label should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the label should use filled classes key.\n */\n filled: PropTypes.bool,\n /**\n * If `true`, the input of this label is focused (used by `FormGroup` components).\n */\n focused: PropTypes.bool,\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\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} : void 0;\nexport default FormLabel;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormLabel', slot);\n}\nconst formLabelClasses = generateUtilityClasses('MuiFormLabel', ['root', 'colorSecondary', 'focused', 'disabled', 'error', 'filled', 'required', 'asterisk']);\nexport default formLabelClasses;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getInputLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiInputLabel', slot);\n}\nconst inputLabelClasses = generateUtilityClasses('MuiInputLabel', ['root', 'focused', 'disabled', 'error', 'required', 'asterisk', 'formControl', 'sizeSmall', 'shrink', 'animated', 'standard', 'filled', 'outlined']);\nexport default inputLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableAnimation\", \"margin\", \"shrink\", \"variant\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport clsx from 'clsx';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport FormLabel, { formLabelClasses } from '../FormLabel';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { getInputLabelUtilityClasses } from './inputLabelClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n formControl,\n size,\n shrink,\n disableAnimation,\n variant,\n required\n } = ownerState;\n const slots = {\n root: ['root', formControl && 'formControl', !disableAnimation && 'animated', shrink && 'shrink', size === 'small' && 'sizeSmall', variant],\n asterisk: [required && 'asterisk']\n };\n const composedClasses = composeClasses(slots, getInputLabelUtilityClasses, classes);\n return _extends({}, classes, composedClasses);\n};\nconst InputLabelRoot = styled(FormLabel, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInputLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formLabelClasses.asterisk}`]: styles.asterisk\n }, styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, styles[ownerState.variant]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'block',\n transformOrigin: 'top left',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%'\n}, ownerState.formControl && {\n position: 'absolute',\n left: 0,\n top: 0,\n // slight alteration to spec spacing to match visual spec result\n transform: 'translate(0, 20px) scale(1)'\n}, ownerState.size === 'small' && {\n // Compensation for the `Input.inputSizeSmall` style.\n transform: 'translate(0, 17px) scale(1)'\n}, ownerState.shrink && {\n transform: 'translate(0, -1.5px) scale(0.75)',\n transformOrigin: 'top left',\n maxWidth: '133%'\n}, !ownerState.disableAnimation && {\n transition: theme.transitions.create(['color', 'transform', 'max-width'], {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n })\n}, ownerState.variant === 'filled' && _extends({\n // Chrome's autofill feature gives the input field a yellow background.\n // Since the input field is behind the label in the HTML tree,\n // the input field is drawn last and hides the label with an opaque background color.\n // zIndex: 1 will raise the label above opaque background-colors of input.\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(12px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 13px) scale(1)'\n}, ownerState.shrink && _extends({\n userSelect: 'none',\n pointerEvents: 'auto',\n transform: 'translate(12px, 7px) scale(0.75)',\n maxWidth: 'calc(133% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 4px) scale(0.75)'\n})), ownerState.variant === 'outlined' && _extends({\n // see comment above on filled.zIndex\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(14px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(14px, 9px) scale(1)'\n}, ownerState.shrink && {\n userSelect: 'none',\n pointerEvents: 'auto',\n // Theoretically, we should have (8+5)*2/0.75 = 34px\n // but it feels a better when it bleeds a bit on the left, so 32px.\n maxWidth: 'calc(133% - 32px)',\n transform: 'translate(14px, -9px) scale(0.75)'\n})));\nconst InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(inProps, ref) {\n const props = useThemeProps({\n name: 'MuiInputLabel',\n props: inProps\n });\n const {\n disableAnimation = false,\n shrink: shrinkProp,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n let shrink = shrinkProp;\n if (typeof shrink === 'undefined' && muiFormControl) {\n shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['size', 'variant', 'required']\n });\n const ownerState = _extends({}, props, {\n disableAnimation,\n formControl: muiFormControl,\n shrink,\n size: fcs.size,\n variant: fcs.variant,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(InputLabelRoot, _extends({\n \"data-shrink\": shrink,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? InputLabel.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the transition animation is disabled.\n * @default false\n */\n disableAnimation: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` of this label is focused.\n */\n focused: PropTypes.bool,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n /**\n * if `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * If `true`, the label is shrunk.\n */\n shrink: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'normal'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['normal', 'small']), PropTypes.string]),\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 * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputLabel;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getListSubheaderUtilityClass(slot) {\n return generateUtilityClass('MuiListSubheader', slot);\n}\nconst listSubheaderClasses = generateUtilityClasses('MuiListSubheader', ['root', 'colorPrimary', 'colorInherit', 'gutters', 'inset', 'sticky']);\nexport default listSubheaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"disableGutters\", \"disableSticky\", \"inset\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport { getListSubheaderUtilityClass } from './listSubheaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disableGutters,\n inset,\n disableSticky\n } = ownerState;\n const slots = {\n root: ['root', color !== 'default' && `color${capitalize(color)}`, !disableGutters && 'gutters', inset && 'inset', !disableSticky && 'sticky']\n };\n return composeClasses(slots, getListSubheaderUtilityClass, classes);\n};\nconst ListSubheaderRoot = styled('li', {\n name: 'MuiListSubheader',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], !ownerState.disableGutters && styles.gutters, ownerState.inset && styles.inset, !ownerState.disableSticky && styles.sticky];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n boxSizing: 'border-box',\n lineHeight: '48px',\n listStyle: 'none',\n color: (theme.vars || theme).palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(14)\n}, ownerState.color === 'primary' && {\n color: (theme.vars || theme).palette.primary.main\n}, ownerState.color === 'inherit' && {\n color: 'inherit'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.inset && {\n paddingLeft: 72\n}, !ownerState.disableSticky && {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n backgroundColor: (theme.vars || theme).palette.background.paper\n}));\nconst ListSubheader = /*#__PURE__*/React.forwardRef(function ListSubheader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListSubheader'\n });\n const {\n className,\n color = 'default',\n component = 'li',\n disableGutters = false,\n disableSticky = false,\n inset = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n component,\n disableGutters,\n disableSticky,\n inset\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListSubheaderRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nListSubheader.muiSkipListHighlight = true;\nprocess.env.NODE_ENV !== \"production\" ? ListSubheader.propTypes /* remove-proptypes */ = {\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 * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary']),\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 * If `true`, the List Subheader will not have gutters.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, the List Subheader will not stick to the top during scroll.\n * @default false\n */\n disableSticky: PropTypes.bool,\n /**\n * If `true`, the List Subheader is indented.\n * @default false\n */\n inset: PropTypes.bool,\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} : void 0;\nexport default ListSubheader;"],"names":["stripDiacritics","string","normalize","replace","findIndex","array","comp","i","length","defaultFilterOptions","config","arguments","undefined","_config$ignoreAccents","ignoreAccents","_config$ignoreCase","ignoreCase","limit","_config$matchFrom","matchFrom","stringify","_config$trim","trim","options","_ref","inputValue","getOptionLabel","input","toLowerCase","filteredOptions","filter","option","candidate","indexOf","slice","createFilterOptions","defaultIsActiveElementInListbox","listboxRef","_listboxRef$current$p","current","parentElement","contains","document","activeElement","useAutocomplete","props","_props$unstable_isAct","unstable_isActiveElementInListbox","_props$unstable_class","unstable_classNamePrefix","_props$autoComplete","autoComplete","_props$autoHighlight","autoHighlight","_props$autoSelect","autoSelect","_props$blurOnSelect","blurOnSelect","_props$clearOnBlur","clearOnBlur","freeSolo","_props$clearOnEscape","clearOnEscape","_props$componentName","componentName","_props$defaultValue","defaultValue","multiple","_props$disableClearab","disableClearable","_props$disableCloseOn","disableCloseOnSelect","disabledProp","disabled","_props$disabledItemsF","disabledItemsFocusable","_props$disableListWra","disableListWrap","_props$filterOptions","filterOptions","_props$filterSelected","filterSelectedOptions","_props$freeSolo","getOptionDisabled","_props$getOptionLabel","getOptionLabelProp","_option$label","label","groupBy","_props$handleHomeEndK","handleHomeEndKeys","idProp","id","_props$includeInputIn","includeInputInList","inputValueProp","_props$isOptionEqualT","isOptionEqualToValue","value","_props$multiple","onChange","onClose","onHighlightChange","onInputChange","onOpen","openProp","open","_props$openOnFocus","openOnFocus","_props$readOnly","readOnly","_props$selectOnFocus","selectOnFocus","valueProp","useId","optionLabel","String","ignoreFocus","React","firstFocus","inputRef","_React$useState","_React$useState2","_slicedToArray","anchorEl","setAnchorEl","_React$useState3","_React$useState4","focusedTag","setFocusedTag","defaultHighlighted","highlightedIndexRef","_useControlled","useControlled","controlled","default","name","_useControlled2","setValueState","_useControlled3","state","_useControlled4","setInputValueState","_React$useState5","_React$useState6","focused","setFocused","resetInputValue","event","newValue","newInputValue","_useControlled5","_useControlled6","setOpenState","_React$useState7","_React$useState8","inputPristine","setInputPristine","inputValueIsSelectedValue","popupOpen","some","value2","previousProps","usePreviousProps","valueChange","listboxAvailable","focusTag","useEventCallback","tagToFocus","focus","querySelector","concat","setHighlightedIndex","_ref2","index","_ref2$reason","reason","removeAttribute","setAttribute","prev","classList","remove","listboxNode","getAttribute","add","scrollHeight","clientHeight","element","scrollBottom","scrollTop","elementBottom","offsetTop","offsetHeight","changeHighlightedIndex","_ref3","diff","_ref3$direction","direction","_ref3$reason","nextIndex","nextFocus","nextFocusDisabled","hasAttribute","validOptionIndex","maxIndex","newIndex","Math","abs","getNextIndex","setSelectionRange","syncHighlightedIndex","value1","every","val","previousHighlightedOption","checkHighlightedOptionExists","valueItem","currentOption","itemIndex","optionItem","handleListboxRef","node","setRef","handleOpen","handleClose","handleValue","details","isTouch","selectNewValue","origin","Array","isArray","push","splice","ctrlKey","metaKey","blur","handleFocusTag","nextTag","validTagIndex","handleClear","handleKeyDown","other","onKeyDown","defaultMuiPrevented","key","which","preventDefault","stopPropagation","handleFocus","handleBlur","handleInputChange","target","handleOptionMouseMove","Number","currentTarget","handleOptionTouchStart","handleOptionClick","handleTagDelete","handlePopupIndicator","handleMouseDown","handleClick","selectionEnd","selectionStart","select","handleInputMouseDown","dirty","groupedOptions","Map","reduce","acc","group","getRootProps","_extends","onMouseDown","onClick","getInputLabelProps","htmlFor","getInputProps","onBlur","onFocus","ref","autoCapitalize","spellCheck","role","getClearProps","tabIndex","getPopupIndicatorProps","getTagProps","_ref4","onDelete","getListboxProps","getOptionProps","_ref5","selected","onMouseMove","onTouchStart","expanded","createSvgIcon","_jsx","d","getAutocompleteUtilityClass","slot","generateUtilityClass","_ClearIcon","_ArrowDropDownIcon","generateUtilityClasses","_excluded","_excluded2","AutocompleteRoot","styled","overridesResolver","styles","ownerState","fullWidth","hasClearIcon","hasPopupIcon","inputFocused","size","_defineProperty","autocompleteClasses","tag","capitalize","inputRoot","root","_ref6","_extends2","_$concat","_$concat2","_$concat3","_extends3","clearIndicator","visibility","width","margin","maxWidth","flexWrap","paddingRight","minWidth","inputClasses","paddingBottom","padding","inputBaseClasses","sizeSmall","outlinedInputClasses","endAdornment","right","paddingTop","paddingLeft","filledInputClasses","hiddenLabel","flexGrow","textOverflow","opacity","AutocompleteEndAdornment","position","top","AutocompleteClearIndicator","IconButton","marginRight","AutocompletePopupIndicator","_ref7","popupIndicator","popupIndicatorOpen","_ref8","transform","AutocompletePopper","Popper","popper","disablePortal","popperDisablePortal","_ref10","theme","zIndex","vars","modal","AutocompletePaper","Paper","paper","_ref11","typography","body1","overflow","AutocompleteLoading","loading","_ref12","color","palette","text","secondary","AutocompleteNoOptions","noOptions","_ref13","AutocompleteListbox","listbox","_ref14","_ariaSelectedTru","_$concat4","listStyle","maxHeight","minHeight","display","justifyContent","alignItems","cursor","boxSizing","outline","WebkitTapHighlightColor","breakpoints","up","backgroundColor","action","hover","disabledOpacity","pointerEvents","focusVisible","primary","mainChannel","selectedOpacity","alpha","main","hoverOpacity","focusOpacity","AutocompleteGroupLabel","ListSubheader","groupLabel","_ref16","background","AutocompleteGroupUl","groupUl","inProps","_slotProps$clearIndic","_slotProps$paper","_slotProps$popper","_slotProps$popupIndic","startAdornment","useThemeProps","ChipProps","className","_props$clearIcon","clearIcon","ClearIcon","fontSize","_props$clearText","clearText","_props$closeText","closeText","_props$componentsProp","componentsProps","_props$disabled","_props$disablePortal","_props$forcePopupIcon","forcePopupIcon","_props$fullWidth","_props$getLimitTagsTe","getLimitTagsText","more","_props$limitTags","limitTags","_props$ListboxCompone","ListboxComponent","ListboxProps","_props$loading","_props$loadingText","loadingText","_props$noOptionsText","noOptionsText","_props$openText","openText","_props$PaperComponent","PaperComponent","_props$PopperComponen","PopperComponent","_props$popupIcon","popupIcon","ArrowDropDownIcon","renderGroupProp","renderGroup","renderInput","renderOptionProp","renderOption","renderTags","_props$size","_props$slotProps","slotProps","_objectWithoutPropertiesLoose","_useAutocomplete","externalListboxRef","_getListboxProps","otherListboxProps","combinedListboxRef","useForkRef","classes","slots","composeClasses","useUtilityClasses","getCustomizedTagProps","params","map","Chip","children","_jsxs","component","props2","renderListOption","optionProps","clearIndicatorSlotProps","paperSlotProps","popperSlotProps","popupIndicatorSlotProps","clsx","InputLabelProps","InputProps","title","inputProps","as","style","clientWidth","option2","index2","FormControlContext","formControlState","states","muiFormControl","useFormControl","FormLabelRoot","colorSecondary","filled","lineHeight","formLabelClasses","error","AsteriskComponent","asterisk","FormLabel","_props$component","fcs","required","getFormLabelUtilityClasses","getInputLabelUtilityClasses","InputLabelRoot","shouldForwardProp","prop","rootShouldForwardProp","formControl","shrink","disableAnimation","animated","variant","transformOrigin","whiteSpace","left","transition","transitions","create","duration","shorter","easing","easeOut","userSelect","_props$disableAnimati","shrinkProp","adornedStart","composedClasses","getListSubheaderUtilityClass","ListSubheaderRoot","disableGutters","gutters","inset","disableSticky","sticky","fontFamily","fontWeight","fontWeightMedium","pxToRem","_props$color","_props$disableGutters","_props$disableSticky","_props$inset","muiSkipListHighlight"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/247.2a7f8e21.chunk.js.map b/portal-ui/build/static/js/247.2a7f8e21.chunk.js.map
index 2f36ac683..816b19352 100644
--- a/portal-ui/build/static/js/247.2a7f8e21.chunk.js.map
+++ b/portal-ui/build/static/js/247.2a7f8e21.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/247.2a7f8e21.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddBucketTagModal.tsx","screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.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, { useState } from \"react\";\nimport { AddNewTagIcon, Button } from \"mds\";\nimport { 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 InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IBucketTagModal {\n modalOpen: boolean;\n currentTags: any;\n bucketName: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n\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\n classes,\n}: IBucketTagModal) => {\n const dispatch = useAppDispatch();\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.buckets\n .putBucketTags(bucketName, {\n tags: newTagList,\n })\n .then(() => {\n setIsSending(false);\n onCloseAndUpdate(true);\n })\n .catch((error) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(error.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\nexport default withStyles(styles)(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, { ClipboardEvent, useState } 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 VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\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 \"mds\";\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 onFocus?: () => void;\n onPaste?: (e: ClipboardEvent) => 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 });\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 onFocus,\n onPaste,\n}: InputBoxProps) => {\n let inputProps: any = { \"data-index\": index, ...extraInputProps };\n const [toggleTextInput, setToggleTextInput] = useState(false);\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 let inputBoxWrapperIcon = overlayIcon;\n let inputBoxWrapperType = type;\n\n if (type === \"password\" && overlayIcon === null) {\n inputBoxWrapperIcon = toggleTextInput ? (\n \n ) : (\n \n );\n inputBoxWrapperType = toggleTextInput ? \"text\" : \"password\";\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n );\n};\n\nexport default BrowserBreadcrumbs;\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, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { CSSObject } from \"styled-components\";\nimport { Menu, MenuItem } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport { Button, UploadFolderIcon, UploadIcon } from \"mds\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\nimport { getSessionGrantsWildCard } from \"./UploadPermissionUtils\";\n\ninterface IUploadFilesButton {\n uploadPath: string;\n bucketName: string;\n forceDisable?: boolean;\n uploadFileFunction: (closeFunction: () => void) => void;\n uploadFolderFunction: (closeFunction: () => void) => void;\n classes: any;\n overrideStyles?: CSSObject;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n listUploadIcons: {\n height: 20,\n \"& .min-icon\": {\n width: 18,\n fill: \"rgba(0,0,0,0.87)\",\n },\n },\n });\n\nconst UploadFilesButton = ({\n uploadPath,\n bucketName,\n forceDisable = false,\n uploadFileFunction,\n uploadFolderFunction,\n classes,\n overrideStyles = {},\n}: IUploadFilesButton) => {\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n uploadPath,\n putObjectPermScopes,\n );\n\n const [anchorEl, setAnchorEl] = useState(null);\n const openUploadMenu = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleCloseUpload = () => {\n setAnchorEl(null);\n };\n\n const uploadObjectAllowed =\n hasPermission(\n [uploadPath, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) || anonymousMode;\n\n const uploadFolderAllowed = hasPermission(\n [bucketName, ...sessionGrantWildCards],\n putObjectPermScopes,\n false,\n true,\n );\n\n const uploadEnabled: boolean = uploadObjectAllowed || uploadFolderAllowed;\n\n return (\n \n \n }\n variant={\"callAction\"}\n disabled={forceDisable || !uploadEnabled}\n sx={overrideStyles}\n />\n \n \n \n );\n};\n\nexport default withStyles(styles)(UploadFilesButton);\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\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Button, ClosePanelIcon, Grid } from \"mds\";\nimport makeStyles from \"@mui/styles/makeStyles\";\n\ninterface IDetailsListPanel {\n open: boolean;\n className?: string;\n closePanel: () => void;\n children: React.ReactNode;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n detailsList: {\n borderColor: \"#EAEDEE\",\n borderWidth: 0,\n borderStyle: \"solid\",\n borderRadius: 3,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n width: 0,\n transitionDuration: \"0.3s\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n position: \"relative\",\n opacity: 0,\n marginLeft: -1,\n \"&.open\": {\n width: 300,\n minWidth: 300,\n borderLeftWidth: 1,\n opacity: 1,\n },\n \"@media (max-width: 799px)\": {\n \"&.open\": {\n width: \"100%\",\n minWidth: \"100%\",\n borderLeftWidth: 0,\n },\n },\n },\n }),\n);\n\nconst DetailsListPanel = ({\n open,\n closePanel,\n className = \"\",\n children,\n}: IDetailsListPanel) => {\n const classes = useStyles();\n\n return (\n \n }\n sx={{\n position: \"absolute\",\n right: 5,\n top: 18,\n padding: 0,\n height: 14,\n \"&:hover:not(:disabled)\": {\n backgroundColor: \"transparent\",\n },\n }}\n />\n {children}\n \n );\n};\n\nexport default DetailsListPanel;\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 months = [\n { value: \"01\", label: \"January\" },\n { value: \"02\", label: \"February\" },\n { value: \"03\", label: \"March\" },\n { value: \"04\", label: \"April\" },\n { value: \"05\", label: \"May\" },\n { value: \"06\", label: \"June\" },\n { value: \"07\", label: \"July\" },\n { value: \"08\", label: \"August\" },\n { value: \"09\", label: \"September\" },\n { value: \"10\", label: \"October\" },\n { value: \"11\", label: \"November\" },\n { value: \"12\", label: \"December\" },\n];\n\nexport const days = Array.from(Array(31), (_, num) => ({\n value: (num + 1).toString(),\n label: (num + 1).toString(),\n}));\n\nconst currentYear = new Date().getFullYear();\n\nexport const years = Array.from(Array(50), (_, numYear) => ({\n value: (numYear + currentYear).toString(),\n label: (numYear + currentYear).toString(),\n}));\n\nexport const validDate = (year: string, month: string, day: string): any[] => {\n const currentDate = Date.parse(`${year}-${month}-${day}`);\n\n if (isNaN(currentDate)) {\n return [false, \"\"];\n }\n\n const parsedMonth = parseInt(month);\n const parsedDay = parseInt(day);\n\n const monthForString = parsedMonth < 10 ? `0${parsedMonth}` : parsedMonth;\n const dayForString = parsedDay < 10 ? `0${parsedDay}` : parsedDay;\n\n const parsedDate = new Date(currentDate).toISOString().split(\"T\")[0];\n const dateString = `${year}-${monthForString}-${dayForString}`;\n\n return [parsedDate === dateString, dateString];\n};\n\n// twoDigitDate gets a two digit string number used for months or days\n// returns \"NaN\" if number is NaN\nexport const twoDigitDate = (num: number): string => {\n return num < 10 ? `0${num}` : `${num}`;\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, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Box, Grid, HelpIcon, InputLabel, Select, Switch, Tooltip } from \"mds\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport { days, months, validDate, years } from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingBottom: 10,\n marginTop: 11,\n marginBottom: 6,\n },\n });\n\ninterface IDateSelectorProps {\n classes: any;\n id: string;\n label: string;\n disableOptions?: boolean;\n addSwitch?: boolean;\n tooltip?: string;\n borderBottom?: boolean;\n value?: string;\n onDateChange: (date: string, isValid: boolean) => any;\n}\n\nconst DateSelector = forwardRef(\n (\n {\n classes,\n id,\n label,\n disableOptions = false,\n addSwitch = false,\n tooltip = \"\",\n borderBottom = false,\n onDateChange,\n value = \"\",\n }: IDateSelectorProps,\n ref: any,\n ) => {\n useImperativeHandle(ref, () => ({ resetDate }));\n\n const [dateEnabled, setDateEnabled] = useState(false);\n const [month, setMonth] = useState(\"\");\n const [day, setDay] = useState(\"\");\n const [year, setYear] = useState(\"\");\n\n useEffect(() => {\n // verify if there is a current value\n // assume is in the format \"2021-12-30\"\n if (value !== \"\") {\n const valueSplit = value.split(\"-\");\n\n setYear(valueSplit[0]);\n setMonth(valueSplit[1]);\n // Turn to single digit to be displayed on dropdown buttons\n setDay(`${parseInt(valueSplit[2])}`);\n }\n }, [value]);\n\n useEffect(() => {\n const [isValid, dateString] = validDate(year, month, day);\n onDateChange(dateString, isValid);\n }, [month, day, year, onDateChange]);\n\n const resetDate = () => {\n setMonth(\"\");\n setDay(\"\");\n setYear(\"\");\n };\n\n const isDateDisabled = () => {\n if (disableOptions) {\n return disableOptions;\n } else if (addSwitch) {\n return !dateEnabled;\n } else {\n return false;\n }\n };\n\n const monthForDropDown = [{ value: \"\", label: \"\" }, ...months];\n const daysForDrop = [{ value: \"\", label: \"\" }, ...days];\n const yearsForDrop = [{ value: \"\", label: \"\" }, ...years];\n\n return (\n \n
\n \n \n \n );\n },\n);\n\nexport default withStyles(styles)(DateSelector);\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, useRef, useState } from \"react\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, Grid, RadioGroup, Switch } from \"mds\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nimport { twoDigitDate } from \"../../../../Common/FormComponents/DateSelector/utils\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport DateSelector from \"../../../../Common/FormComponents/DateSelector/DateSelector\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { useSelector } from \"react-redux\";\nimport { BucketObject, ObjectRetentionMode } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { encodeURLString } from \"common/utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\ninterface ISetRetentionProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (updateInfo: boolean) => void;\n objectName: string;\n bucketName: string;\n objectInfo: BucketObject;\n}\n\ninterface IRefObject {\n resetDate: () => void;\n}\n\nconst SetRetention = ({\n classes,\n open,\n closeModalAndRefresh,\n objectName,\n objectInfo,\n bucketName,\n}: ISetRetentionProps) => {\n const dispatch = useAppDispatch();\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const [statusEnabled, setStatusEnabled] = useState(true);\n const [type, setType] = useState(\"\");\n const [date, setDate] = useState(\"\");\n const [isDateValid, setIsDateValid] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const [alreadyConfigured, setAlreadyConfigured] = useState(false);\n\n useEffect(() => {\n if (objectInfo.retention_mode) {\n setType(retentionConfig?.mode || ObjectRetentionMode.Governance);\n setAlreadyConfigured(true);\n }\n // get retention_until_date if defined\n if (objectInfo.retention_until_date) {\n const valueDate = new Date(objectInfo.retention_until_date);\n if (valueDate.toString() !== \"Invalid Date\") {\n const year = valueDate.getFullYear();\n const month = twoDigitDate(valueDate.getMonth() + 1);\n const day = valueDate.getDate();\n if (!isNaN(day) && month !== \"NaN\" && !isNaN(year)) {\n setDate(`${year}-${month}-${day}`);\n }\n }\n setAlreadyConfigured(true);\n }\n }, [objectInfo, retentionConfig?.mode]);\n\n const dateElement = useRef(null);\n\n const dateFieldDisabled = () => {\n return !(statusEnabled && (type === \"governance\" || type === \"compliance\"));\n };\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n };\n\n const resetForm = () => {\n setStatusEnabled(false);\n setType(ObjectRetentionMode.Governance);\n if (dateElement.current) {\n dateElement.current.resetDate();\n }\n };\n\n const addRetention = (\n selectedObject: string,\n versionId: string | null,\n expireDate: string,\n ) => {\n api.buckets\n .putObjectRetention(\n bucketName,\n {\n prefix: encodeURLString(selectedObject),\n version_id: versionId || \"\",\n },\n {\n expires: expireDate,\n mode: type as ObjectRetentionMode,\n },\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const disableRetention = (\n selectedObject: string,\n versionId: string | null,\n ) => {\n api.buckets\n .deleteObjectRetention(bucketName, {\n prefix: encodeURLString(selectedObject),\n version_id: versionId || \"\",\n })\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const saveNewRetentionPolicy = () => {\n setIsSaving(true);\n const selectedObject = objectInfo.name || \"\";\n const versionId = objectInfo.version_id || null;\n\n const expireDate =\n !statusEnabled && type === \"governance\" ? \"\" : `${date}T23:59:59Z`;\n\n if (!statusEnabled && type === \"governance\") {\n disableRetention(selectedObject, versionId);\n\n return;\n }\n\n addRetention(selectedObject, versionId, expireDate);\n };\n\n const showSwitcher =\n alreadyConfigured && (type === \"governance\" || type === \"\");\n\n return (\n {\n resetForm();\n closeModalAndRefresh(false);\n }}\n >\n
\n Selected Object: {objectName}\n
\n \n \n );\n};\n\nexport default withStyles(styles)(SetRetention);\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 isVersionedMode = (status: string | undefined) => {\n return status === \"Enabled\" || status === \"Suspended\";\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, useState } from \"react\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeURLString } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon, Switch } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { isVersionedMode } from \"../../../../../../utils/validationFunctions\";\nimport { BucketVersioningResponse } from \"api/consoleApi\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n\n versioningInfo: BucketVersioningResponse | undefined;\n selectedVersion?: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n versioningInfo,\n selectedVersion = \"\",\n}: IDeleteObjectProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => {\n dispatch(setErrorSnackMessage(err));\n\n // We close the modal box on access denied.\n if (err.detailedError === \"Access Denied.\") {\n closeDeleteModalAndRefresh(true);\n }\n };\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [deleteVersions, setDeleteVersions] = useState(false);\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n if (!selectedObject) {\n return null;\n }\n const onConfirmDelete = () => {\n const decodedSelectedObject = decodeURLString(selectedObject);\n const recursive = decodedSelectedObject.endsWith(\"/\");\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/objects?path=${selectedObject}${\n selectedVersion !== \"\"\n ? `&version_id=${selectedVersion}`\n : `&recursive=${recursive}&all_versions=${deleteVersions}`\n }${bypassGovernance ? \"&bypass=true\" : \"\"}`,\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete: \n {decodeURLString(selectedObject)}{\" \"}\n {selectedVersion !== \"\" ? (\n \n \n \n Version ID:\n \n {selectedVersion}\n \n ) : (\n \"\"\n )}\n ? \n \n {isVersionedMode(versioningInfo?.status) &&\n selectedVersion === \"\" && (\n \n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\n />\n \n )}\n {canBypass && (deleteVersions || selectedVersion !== \"\") && (\n \n
\n This will remove the object as well as all of its versions,{\" \"}\n \n This action is irreversible.\n
\n \n Are you sure you want to continue?\n \n )}\n \n }\n />\n );\n};\n\nexport default DeleteObject;\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport { Button, Grid, Switch } from \"mds\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\n\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport { BucketObject, ObjectLegalHoldStatus } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\ninterface ISetRetentionProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (reload: boolean) => void;\n objectName: string;\n bucketName: string;\n actualInfo: BucketObject;\n}\n\nconst SetLegalHoldModal = ({\n classes,\n open,\n closeModalAndRefresh,\n objectName,\n bucketName,\n actualInfo,\n}: ISetRetentionProps) => {\n const dispatch = useAppDispatch();\n const [legalHoldEnabled, setLegalHoldEnabled] = useState(false);\n const [isSaving, setIsSaving] = useState(false);\n const versionId = actualInfo.version_id;\n\n useEffect(() => {\n const status = get(actualInfo, \"legal_hold_status\", \"OFF\");\n setLegalHoldEnabled(status === \"ON\");\n }, [actualInfo]);\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n setIsSaving(true);\n\n api.buckets\n .putObjectLegalHold(\n bucketName,\n {\n prefix: encodeURLString(objectName),\n version_id: versionId || \"\",\n },\n {\n status: legalHoldEnabled\n ? ObjectLegalHoldStatus.Enabled\n : ObjectLegalHoldStatus.Disabled,\n },\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setIsSaving(false);\n });\n };\n\n const resetForm = () => {\n setLegalHoldEnabled(false);\n };\n\n return (\n {\n resetForm();\n closeModalAndRefresh(false);\n }}\n >\n \n Object: {bucketName}\n \n\n \n \n );\n};\n\nexport default withStyles(styles)(SetLegalHoldModal);\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 { withStyles } from \"@mui/styles\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, Table, TableBody, TableCell, TableRow } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n detailsPanel,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { safeDecodeURIComponent } from \"../../../../../../common/utils\";\n\ninterface IObjectMetadata {\n metaData: any;\n classes?: any;\n linear?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n titleItem: {\n width: \"35%\",\n },\n ...spacingUtils,\n ...detailsPanel,\n });\n\nconst itemRendererFn = (element: any) => {\n return Array.isArray(element)\n ? element.map(safeDecodeURIComponent).join(\", \")\n : safeDecodeURIComponent(element);\n};\n\nconst ObjectMetaData = ({\n metaData,\n classes,\n linear = false,\n}: IObjectMetadata) => {\n const metaKeys = Object.keys(metaData);\n\n if (linear) {\n return (\n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = itemRendererFn(metaData[element]);\n return (\n \n {element}\n \n {renderItem}\n \n );\n })}\n \n );\n }\n\n return (\n \n \n
\n Current Tags:\n \n {currTagKeys.length === 0 ? (\n \n There are no tags for this object\n \n ) : (\n \n )}\n \n {currTagKeys.map((tagKey: string, index: number) => {\n const tag = get(currentTags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n }\n onDelete={() => {\n onDeleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n
\n \n \n \n \n } separator={false}>\n Add New Tag\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 \n \n );\n};\n\nexport default withStyles(styles)(AddTagModal);\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, { useState } from \"react\";\nimport {\n Button,\n InspectMenuIcon,\n PasswordKeyIcon,\n Switch,\n Grid,\n Box,\n} from \"mds\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n decodeURLString,\n deleteCookie,\n encodeURLString,\n getCookieValue,\n performDownload,\n} from \"../../../../../../common/utils\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { DialogContentText } from \"@mui/material\";\nimport KeyRevealer from \"../../../../Tools/KeyRevealer\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\ninterface IInspectObjectProps {\n classes: any;\n closeInspectModalAndRefresh: (refresh: boolean) => void;\n inspectOpen: boolean;\n inspectPath: string;\n volumeName: string;\n}\n\nconst InspectObject = ({\n classes,\n closeInspectModalAndRefresh,\n inspectOpen,\n inspectPath,\n volumeName,\n}: IInspectObjectProps) => {\n const dispatch = useAppDispatch();\n const onClose = () => closeInspectModalAndRefresh(false);\n const [isEncrypt, setIsEncrypt] = useState(true);\n const [decryptionKey, setDecryptionKey] = useState(\"\");\n const [insFileName, setInsFileName] = useState(\"\");\n\n if (!inspectPath) {\n return null;\n }\n const makeRequest = async (url: string) => {\n return await fetch(url, { method: \"GET\" });\n };\n\n const performInspect = async () => {\n const file = encodeURLString(inspectPath + \"/xl.meta\");\n const volume = encodeURLString(volumeName);\n\n const urlOfInspectApi = `/api/v1/admin/inspect?volume=${volume}&file=${file}&encrypt=${isEncrypt}`;\n\n makeRequest(urlOfInspectApi)\n .then(async (res) => {\n if (!res.ok) {\n const resErr: any = await res.json();\n\n dispatch(\n setErrorSnackMessage({\n errorMessage: resErr.message,\n detailedError: resErr.code,\n }),\n );\n }\n const blob: Blob = await res.blob();\n\n //@ts-ignore\n const filename = res.headers.get(\"content-disposition\").split('\"')[1];\n const decryptKey = getCookieValue(filename) || \"\";\n\n performDownload(blob, filename);\n setInsFileName(filename);\n if (decryptKey === \"\") {\n onClose();\n return;\n }\n setDecryptionKey(decryptKey);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(err));\n });\n };\n\n const onCloseDecKeyModal = () => {\n deleteCookie(insFileName);\n onClose();\n setDecryptionKey(\"\");\n };\n\n const onSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n };\n\n return (\n \n {!decryptionKey && (\n }\n title={`Inspect Object`}\n onClose={onClose}\n >\n \n \n )}\n {decryptionKey ? (\n }\n >\n \n \n This will be displayed only once. It cannot be recovered.\n \n Use secure medium to share this key.\n \n \n \n \n \n \n ) : null}\n \n );\n};\n\nexport default withStyles(styles)(InspectObject);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 { encodeURLString, getClientOS } from \"../../../common/utils\";\nimport { makeid, storeCallForObjectWithID } from \"./transferManager\";\nimport { download } from \"../Buckets/ListBuckets/Objects/utils\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setLongFileOpen,\n setNewObject,\n updateProgress,\n} from \"./objectBrowserSlice\";\nimport { AppDispatch } from \"../../../store\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { BucketObject } from \"api/consoleApi\";\n\nexport const downloadObject = (\n dispatch: AppDispatch,\n bucketName: string,\n internalPaths: string,\n object: BucketObject,\n) => {\n const identityDownload = encodeURLString(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`,\n );\n\n const isWinOs = getClientOS().toLowerCase().includes(\"win\");\n\n if ((object.name?.length || 0) > 200 && isWinOs) {\n dispatch(setLongFileOpen(true));\n return;\n }\n\n const ID = makeid(8);\n\n const downloadCall = download(\n bucketName,\n internalPaths,\n object.version_id,\n object.size || 0,\n null,\n ID,\n (progress) => {\n dispatch(\n updateProgress({\n instanceID: identityDownload,\n progress: progress,\n }),\n );\n },\n () => {\n dispatch(completeObject(identityDownload));\n },\n (msg: string) => {\n dispatch(failObject({ instanceID: identityDownload, msg }));\n },\n () => {\n dispatch(cancelObjectInList(identityDownload));\n },\n () => {\n dispatch(\n setSnackBarMessage(\n \"File download will be handled directly by the browser.\",\n ),\n );\n },\n );\n\n storeCallForObjectWithID(ID, downloadCall);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name || \"\",\n type: \"download\",\n waitingForFile: true,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\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 .\n\nimport React, { useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Button, EditIcon } from \"mds\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n containerForHeader,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { useAppDispatch } from \"../../../store\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { downloadObject } from \"./utils\";\nimport { BucketObject } from \"api/consoleApi\";\n\ninterface IRenameLongFilename {\n open: boolean;\n bucketName: string;\n internalPaths: string;\n currentItem: string;\n actualInfo: BucketObject;\n closeModal: () => void;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...modalStyleUtils,\n ...formFieldStyles,\n ...spacingUtils,\n ...containerForHeader,\n }),\n);\n\nconst RenameLongFileName = ({\n open,\n closeModal,\n currentItem,\n internalPaths,\n actualInfo,\n bucketName,\n}: IRenameLongFilename) => {\n const classes = useStyles();\n const dispatch = useAppDispatch();\n\n const [newFileName, setNewFileName] = useState(currentItem);\n const [acceptLongName, setAcceptLongName] = useState(false);\n\n const doDownload = (e: React.FormEvent) => {\n e.preventDefault();\n downloadObject(dispatch, bucketName, internalPaths, actualInfo);\n closeModal();\n };\n\n return (\n }\n >\n
\n The file you are trying to download has a long name.\n \n This can cause issues on Windows Systems by trimming the file name after\n download.\n \n We recommend to rename the file download\n
\n \n \n );\n};\n\nexport default RenameLongFileName;\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, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"@mui/material\";\nimport { withStyles } from \"@mui/styles\";\nimport {\n ActionsList,\n Button,\n DeleteIcon,\n DownloadIcon,\n InspectMenuIcon,\n LegalHoldIcon,\n Loader,\n MetadataIcon,\n ObjectInfoIcon,\n PreviewIcon,\n RetentionIcon,\n ShareIcon,\n SimpleHeader,\n TagsIcon,\n VersionsIcon,\n} from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n detailsPanel,\n spacingUtils,\n textStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { AllowedPreviews, previewObjectType } from \"../utils\";\n\nimport {\n decodeURLString,\n niceBytes,\n niceBytesInt,\n niceDaysInt,\n} from \"../../../../../../common/utils\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../../../common/SecureComponent/permissions\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport ShareFile from \"../ObjectDetails/ShareFile\";\nimport SetRetention from \"../ObjectDetails/SetRetention\";\nimport DeleteObject from \"../ListObjects/DeleteObject\";\nimport SetLegalHoldModal from \"../ObjectDetails/SetLegalHoldModal\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../../../common/SecureComponent\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport ObjectMetaData from \"../ObjectDetails/ObjectMetaData\";\nimport { displayFileIconName } from \"./utils\";\nimport TagsModal from \"../ObjectDetails/TagsModal\";\nimport InspectObject from \"./InspectObject\";\nimport { selDistSet } from \"../../../../../../systemSlice\";\nimport {\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n setVersionsModeEnabled,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport RenameLongFileName from \"../../../../ObjectBrowser/RenameLongFilename\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\nimport { downloadObject } from \"../../../../ObjectBrowser/utils\";\nimport { BucketObject, BucketVersioningResponse } from \"api/consoleApi\";\nimport { api } from \"api\";\n\nconst styles = () =>\n createStyles({\n ObjectDetailsTitle: {\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n width: 26,\n height: 26,\n minWidth: 26,\n minHeight: 26,\n },\n },\n objectNameContainer: {\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n alignItems: \"center\",\n marginLeft: 10,\n },\n capitalizeFirst: {\n textTransform: \"capitalize\",\n },\n\n ...actionsTray,\n ...spacingUtils,\n ...textStyleUtils,\n ...detailsPanel,\n });\n\nconst emptyFile: BucketObject = {\n is_latest: true,\n last_modified: \"\",\n legal_hold_status: \"\",\n name: \"\",\n retention_mode: \"\",\n retention_until_date: \"\",\n size: 0,\n tags: {},\n version_id: undefined,\n};\n\ninterface IObjectDetailPanelProps {\n classes: any;\n internalPaths: string;\n bucketName: string;\n versioningInfo: BucketVersioningResponse;\n locking: boolean | undefined;\n onClosePanel: (hardRefresh: boolean) => void;\n}\n\nconst ObjectDetailPanel = ({\n classes,\n internalPaths,\n bucketName,\n versioningInfo,\n locking,\n onClosePanel,\n}: IObjectDetailPanelProps) => {\n const dispatch = useAppDispatch();\n\n const distributedSetup = useSelector(selDistSet);\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode,\n );\n const selectedVersion = useSelector(\n (state: AppState) => state.objectBrowser.selectedVersion,\n );\n const loadingObjectInfo = useSelector(\n (state: AppState) => state.objectBrowser.loadingObjectInfo,\n );\n\n const [shareFileModalOpen, setShareFileModalOpen] = useState(false);\n const [retentionModalOpen, setRetentionModalOpen] = useState(false);\n const [tagModalOpen, setTagModalOpen] = useState(false);\n const [legalholdOpen, setLegalholdOpen] = useState(false);\n const [inspectModalOpen, setInspectModalOpen] = useState(false);\n const [actualInfo, setActualInfo] = useState(null);\n const [allInfoElements, setAllInfoElements] = useState([]);\n const [objectToShare, setObjectToShare] = useState(null);\n const [versions, setVersions] = useState([]);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [previewOpen, setPreviewOpen] = useState(false);\n const [totalVersionsSize, setTotalVersionsSize] = useState(0);\n const [longFileOpen, setLongFileOpen] = useState(false);\n const [metaData, setMetaData] = useState(null);\n const [loadMetadata, setLoadingMetadata] = useState(false);\n\n const internalPathsDecoded = decodeURLString(internalPaths) || \"\";\n const allPathData = internalPathsDecoded.split(\"/\");\n const currentItem = allPathData.pop() || \"\";\n\n // calculate object name to display\n let objectNameArray: string[] = [];\n if (actualInfo && actualInfo.name) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (distributedSetup && allInfoElements && allInfoElements.length >= 1) {\n let infoElement =\n allInfoElements.find((el: BucketObject) => el.is_latest) || emptyFile;\n\n if (selectedVersion !== \"\") {\n infoElement =\n allInfoElements.find(\n (el: BucketObject) => el.version_id === selectedVersion,\n ) || emptyFile;\n }\n\n if (!infoElement.is_delete_marker) {\n setLoadingMetadata(true);\n }\n\n setActualInfo(infoElement);\n }\n }, [selectedVersion, distributedSetup, allInfoElements]);\n\n useEffect(() => {\n if (loadingObjectInfo && internalPaths !== \"\") {\n api.buckets\n .listObjects(bucketName, {\n prefix: internalPaths,\n with_versions: distributedSetup,\n })\n .then((res) => {\n const result: BucketObject[] = res.data.objects || [];\n if (distributedSetup) {\n setAllInfoElements(result);\n setVersions(result);\n\n const tVersionSize = result.reduce(\n (acc: number, currValue: BucketObject): number => {\n if (currValue?.size) {\n return acc + currValue.size;\n }\n return acc;\n },\n 0,\n );\n\n setTotalVersionsSize(tVersionSize);\n } else {\n const resInfo = result[0];\n\n setActualInfo(resInfo);\n setVersions([]);\n\n if (!resInfo.is_delete_marker) {\n setLoadingMetadata(true);\n }\n }\n\n dispatch(setLoadingObjectInfo(false));\n })\n .catch((err) => {\n console.error(\"Error loading object details\", err.error);\n dispatch(setLoadingObjectInfo(false));\n });\n }\n }, [\n loadingObjectInfo,\n bucketName,\n internalPaths,\n dispatch,\n distributedSetup,\n selectedVersion,\n ]);\n\n useEffect(() => {\n if (loadMetadata && internalPaths !== \"\") {\n api.buckets\n .getObjectMetadata(bucketName, {\n prefix: internalPaths,\n })\n .then((res) => {\n let metadata = get(res.data, \"objectMetadata\", {});\n\n setMetaData(metadata);\n setLoadingMetadata(false);\n })\n .catch((err) => {\n console.error(\"Error Getting Metadata Status: \", err.detailedError);\n setLoadingMetadata(false);\n });\n }\n }, [bucketName, internalPaths, loadMetadata]);\n\n let tagKeys: string[] = [];\n\n if (actualInfo && actualInfo.tags) {\n tagKeys = Object.keys(actualInfo.tags);\n }\n\n const openRetentionModal = () => {\n setRetentionModalOpen(true);\n };\n\n const closeRetentionModal = (updateInfo: boolean) => {\n setRetentionModalOpen(false);\n if (updateInfo) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const shareObject = () => {\n setShareFileModalOpen(true);\n };\n\n const closeShareModal = () => {\n setObjectToShare(null);\n setShareFileModalOpen(false);\n };\n\n const closeFileOpen = () => {\n setLongFileOpen(false);\n };\n\n const closeDeleteModal = (closeAndReload: boolean) => {\n setDeleteOpen(false);\n\n if (closeAndReload && selectedVersion === \"\") {\n onClosePanel(true);\n } else {\n dispatch(setLoadingVersions(true));\n dispatch(setSelectedVersion(\"\"));\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeAddTagModal = (reloadObjectData: boolean) => {\n setTagModalOpen(false);\n if (reloadObjectData) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeInspectModal = (reloadObjectData: boolean) => {\n setInspectModalOpen(false);\n if (reloadObjectData) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const closeLegalholdModal = (reload: boolean) => {\n setLegalholdOpen(false);\n if (reload) {\n dispatch(setLoadingObjectInfo(true));\n }\n };\n\n const loaderForContainer = (\n
\n \n {selectedVersion !== \"\" && (\n \n Version ID:\n \n {selectedVersion}\n \n )}\n \n Size:\n \n {niceBytes(`${actualInfo.size || \"0\"}`)}\n \n {actualInfo.version_id &&\n actualInfo.version_id !== \"null\" &&\n selectedVersion === \"\" && (\n \n Versions:\n \n {versions.length} version{versions.length !== 1 ? \"s\" : \"\"},{\" \"}\n {niceBytesInt(totalVersionsSize)}\n \n )}\n {selectedVersion === \"\" && (\n \n Last Modified:\n \n {calculateLastModifyTime(actualInfo.last_modified || \"\")}\n \n )}\n \n ETAG:\n \n {actualInfo.etag || \"N/A\"}\n \n \n Tags:\n \n {tagKeys.length === 0\n ? \"N/A\"\n : tagKeys.map((tagKey, index) => {\n return (\n \n {tagKey}:{get(actualInfo, `tags.${tagKey}`, \"\")}\n {index < tagKeys.length - 1 ? \", \" : \"\"}\n \n );\n })}\n \n \n \n \n Legal Hold:\n \n {actualInfo.legal_hold_status ? \"On\" : \"Off\"}\n \n \n \n \n \n \n Retention Policy:\n \n \n {actualInfo.version_id && actualInfo.version_id !== \"null\" ? (\n \n {actualInfo.retention_mode\n ? actualInfo.retention_mode.toLowerCase()\n : \"None\"}\n \n ) : (\n \n {actualInfo.retention_mode\n ? actualInfo.retention_mode.toLowerCase()\n : \"None\"}\n \n )}\n \n \n \n \n {!actualInfo.is_delete_marker && (\n \n } />\n \n {actualInfo && metaData ? (\n \n ) : null}\n \n \n )}\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(ObjectDetailPanel);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { modalBasic } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { Box, RecoverIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport { restoreLocalObjectList } from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IRestoreFileVersion {\n classes: any;\n restoreOpen: boolean;\n bucketName: string;\n versionToRestore: BucketObject;\n objectPath: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst RestoreFileVersion = ({\n classes,\n versionToRestore,\n bucketName,\n objectPath,\n restoreOpen,\n onCloseAndUpdate,\n}: IRestoreFileVersion) => {\n const dispatch = useAppDispatch();\n const [restoreLoading, setRestoreLoading] = useState(false);\n\n const restoreVersion = () => {\n setRestoreLoading(true);\n\n api.buckets\n .putObjectRestore(bucketName, {\n prefix: encodeURLString(objectPath),\n version_id: versionToRestore.version_id || \"\",\n })\n .then(() => {\n setRestoreLoading(false);\n onCloseAndUpdate(true);\n dispatch(\n restoreLocalObjectList({\n prefix: objectPath,\n objectInfo: versionToRestore,\n }),\n );\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setRestoreLoading(false);\n });\n };\n\n return (\n }\n onConfirm={restoreVersion}\n confirmButtonProps={{\n variant: \"secondary\",\n disabled: restoreLoading,\n }}\n onClose={() => {\n onCloseAndUpdate(false);\n }}\n confirmationContent={\n \n Are you sure you want to restore \n {objectPath} with Version ID:\n \n {versionToRestore.version_id}?\n \n }\n />\n );\n};\n\nexport default withStyles(styles)(RestoreFileVersion);\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\ninterface ISpecificVersionPillProps {\n type: \"null\" | \"current\" | \"deleted\";\n}\n\nconst SpecificVersionPill = ({ type }: ISpecificVersionPillProps) => {\n let bgColor = \"#000\";\n let message = \"\";\n\n switch (type) {\n case \"null\":\n bgColor = \"#07193E\";\n message = \"NULL VERSION\";\n break;\n case \"deleted\":\n bgColor = \"#868686\";\n message = \"DELETED\";\n break;\n default:\n bgColor = \"#174551\";\n message = \"CURRENT VERSION\";\n }\n\n return (\n \n {message}\n \n );\n};\n\nexport default SpecificVersionPill;\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\";\nimport { DateTime } from \"luxon\";\nimport styled from \"styled-components\";\nimport get from \"lodash/get\";\nimport { displayFileIconName } from \"../ListObjects/utils\";\nimport {\n DownloadIcon,\n PreviewIcon,\n RecoverIcon,\n ShareIcon,\n IconButton,\n Tooltip,\n Grid,\n} from \"mds\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport SpecificVersionPill from \"./SpecificVersionPill\";\nimport CheckboxWrapper from \"../../../../Common/FormComponents/CheckboxWrapper/CheckboxWrapper\";\nimport { BucketObject } from \"api/consoleApi\";\n\ninterface IFileVersionItem {\n fileName: string;\n versionInfo: BucketObject;\n index: number;\n isSelected?: boolean;\n checkable: boolean;\n isChecked: boolean;\n onCheck: (versionID: string) => void;\n onShare: (versionInfo: BucketObject) => void;\n onDownload: (versionInfo: BucketObject) => void;\n onRestore: (versionInfo: BucketObject) => void;\n onPreview: (versionInfo: BucketObject) => void;\n globalClick: (versionInfo: BucketObject) => void;\n key: any;\n style: any;\n}\n\nconst FileVersionStyled = styled.div(({ theme }) => {\n return {\n \"&:before\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n width: \"2px\",\n height: \"calc(100% + 2px)\",\n backgroundColor: get(theme, \"borderColor\", \"#F8F8F8\"),\n left: \"24px\",\n },\n \"& .mainFileVersionItem\": {\n borderBottom: `${get(theme, \"borderColor\", \"#F8F8F8\")} 1px solid`,\n padding: \"1rem 0\",\n margin: \"0 0.5rem 0 2.5rem\",\n cursor: \"pointer\",\n \"&.deleted\": {\n color: \"#868686\",\n },\n },\n \"& .intermediateLayer\": {\n margin: \"0 1.5rem 0 1.5rem\",\n \"&:hover, &.selected\": {\n backgroundColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n \"& > div\": {\n borderBottomColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n },\n },\n },\n \"& .versionContainer\": {\n fontSize: 16,\n fontWeight: \"bold\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg.min-icon\": {\n width: 18,\n height: 18,\n minWidth: 18,\n minHeight: 18,\n marginRight: 10,\n },\n },\n \"& .buttonContainer\": {\n textAlign: \"right\",\n \"& button\": {\n marginLeft: \"1.5rem\",\n },\n },\n \"& .versionID\": {\n fontSize: \"12px\",\n margin: \"2px 0\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n maxWidth: \"95%\",\n overflow: \"hidden\",\n },\n \"& .versionData\": {\n marginRight: \"10px\",\n fontSize: 12,\n color: \"#868686\",\n },\n \"@media (max-width: 600px)\": {\n \"& .buttonContainer\": {\n \"& button\": {\n marginLeft: \"5px\",\n },\n },\n },\n \"@media (max-width: 799px)\": {\n \"&:before\": {\n display: \"none\",\n },\n \"& .mainFileVersionItem\": {\n padding: \"5px 0px\",\n margin: 0,\n },\n \"& .intermediateLayer\": {\n margin: 0,\n \"&:hover, &.selected\": {\n backgroundColor: \"transparent\",\n \"& > div\": {\n borderBottomColor: get(theme, \"boxBackground\", \"#F8F8F8\"),\n },\n },\n },\n \"& .versionContainer\": {\n fontSize: 14,\n \"& svg.min-icon\": {\n display: \"none\",\n },\n },\n \"& .versionData\": {\n textOverflow: \"ellipsis\",\n maxWidth: \"95%\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n },\n \"& .collapsableInfo\": {\n display: \"flex\",\n flexDirection: \"column\",\n },\n \"& .versionItem\": {\n display: \"none\",\n },\n },\n };\n});\n\nconst FileVersionItem = ({\n fileName,\n versionInfo,\n isSelected,\n checkable,\n isChecked,\n onCheck,\n onShare,\n onDownload,\n onRestore,\n onPreview,\n globalClick,\n index,\n key,\n style,\n}: IFileVersionItem) => {\n const disableButtons = versionInfo.is_delete_marker;\n\n const versionItemButtons = [\n {\n icon: ,\n action: onPreview,\n tooltip: \"Preview\",\n },\n {\n icon: ,\n action: onDownload,\n tooltip: \"Download this version\",\n },\n {\n icon: ,\n action: onShare,\n tooltip: \"Share this version\",\n },\n {\n icon: ,\n action: onRestore,\n tooltip: \"Restore this version\",\n },\n ];\n\n let pill: \"deleted\" | \"current\" | \"null\" | null = null;\n\n if (versionInfo.is_delete_marker) {\n pill = \"deleted\";\n } else if (versionInfo.is_latest) {\n pill = \"current\";\n } else if (versionInfo.version_id === \"null\") {\n pill = \"null\";\n }\n\n let lastModified = DateTime.now();\n\n if (versionInfo.last_modified) {\n lastModified = DateTime.fromISO(versionInfo.last_modified);\n }\n\n return (\n \n {\n globalClick(versionInfo);\n }}\n key={key}\n style={style}\n >\n \n \n \n \n \n {checkable && (\n {\n e.stopPropagation();\n e.preventDefault();\n onCheck(versionInfo.version_id || \"\");\n }}\n value={versionInfo.version_id || \"\"}\n disabled={versionInfo.is_delete_marker}\n overrideCheckboxStyles={{\n paddingLeft: 0,\n height: 34,\n width: 25,\n }}\n noTopMargin\n />\n )}\n {displayFileIconName(fileName, true)} v{index.toString()}\n \n {pill && }\n \n \n \n {versionItemButtons.map((button, index) => {\n return (\n \n {\n e.stopPropagation();\n if (!disableButtons) {\n button.action(versionInfo);\n } else {\n e.preventDefault();\n }\n }}\n sx={{\n backgroundColor: \"#F8F8F8\",\n borderRadius: \"100%\",\n width: \"28px\",\n height: \"28px\",\n padding: \"5px\",\n \"& .min-icon\": {\n width: \"14px\",\n height: \"14px\",\n },\n }}\n >\n {button.icon}\n \n \n );\n })}\n \n \n \n \n {versionInfo.version_id !== \"null\" ? versionInfo.version_id : \"-\"}\n \n \n \n Last modified:{\" \"}\n {lastModified.toFormat(\"ccc, LLL dd yyyy HH:mm:ss (ZZZZ)\")}\n \n \n Size: {niceBytes(`${versionInfo.size || \"0\"}`)}\n \n \n \n \n \n \n );\n};\n\nexport default FileVersionItem;\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, useEffect, useState } from \"react\";\n\nimport { decodeURLString } from \"../../../../../../common/utils\";\nimport { ConfirmDeleteIcon, Switch, Grid, InputBox } from \"mds\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IDeleteNonCurrentProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n}\n\nconst DeleteNonCurrentVersions = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n}: IDeleteNonCurrentProps) => {\n const dispatch = useAppDispatch();\n const [deleteLoading, setDeleteLoading] = useState(false);\n const [typeConfirm, setTypeConfirm] = useState(\"\");\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n useEffect(() => {\n if (deleteLoading) {\n api.buckets\n .deleteObject(selectedBucket, {\n path: selectedObject,\n non_current_versions: true,\n bypass: bypassGovernance,\n })\n .then(() => {\n closeDeleteModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setDeleteLoading(false);\n });\n }\n }, [\n deleteLoading,\n closeDeleteModalAndRefresh,\n dispatch,\n selectedObject,\n selectedBucket,\n bypassGovernance,\n ]);\n\n if (!selectedObject) {\n return null;\n }\n const onConfirmDelete = () => {\n setDeleteLoading(true);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={() => closeDeleteModalAndRefresh(false)}\n confirmButtonProps={{\n disabled: typeConfirm !== \"YES, PROCEED\" || deleteLoading,\n }}\n confirmationContent={\n \n Are you sure you want to delete all the non-current versions for:{\" \"}\n {decodeURLString(selectedObject)}? \n {canBypass && (\n \n
\n \n )}\n \n To continue please type YES, PROCEED in the box.\n \n \n \n ) => {\n setTypeConfirm(event.target.value);\n }}\n label=\"\"\n value={typeConfirm}\n />\n \n \n }\n />\n );\n};\n\nexport default DeleteNonCurrentVersions;\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, useEffect, useState } from \"react\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon, Switch } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../../../../store\";\nimport { hasPermission } from \"../../../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { useSelector } from \"react-redux\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IDeleteSelectedVersionsProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedVersions: string[];\n selectedObject: string;\n selectedBucket: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedVersions,\n selectedObject,\n}: IDeleteSelectedVersionsProps) => {\n const dispatch = useAppDispatch();\n const [deleteLoading, setDeleteLoading] = useState(false);\n const [bypassGovernance, setBypassGovernance] = useState(false);\n\n const retentionConfig = useSelector(\n (state: AppState) => state.objectBrowser.retentionConfig,\n );\n\n const canBypass =\n hasPermission(\n [selectedBucket],\n [IAM_SCOPES.S3_BYPASS_GOVERNANCE_RETENTION],\n ) && retentionConfig?.mode === \"governance\";\n\n const onClose = () => closeDeleteModalAndRefresh(false);\n const onConfirmDelete = () => {\n setDeleteLoading(true);\n };\n\n useEffect(() => {\n if (deleteLoading) {\n const selectedObjectsRequest = selectedVersions.map((versionID) => {\n return {\n path: selectedObject,\n versionID: versionID,\n recursive: false,\n };\n });\n\n if (selectedObjectsRequest.length > 0) {\n api.buckets\n .deleteMultipleObjects(selectedBucket, selectedObjectsRequest, {\n all_versions: false,\n bypass: bypassGovernance,\n })\n .then(() => {\n setDeleteLoading(false);\n closeDeleteModalAndRefresh(true);\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err.error)));\n setDeleteLoading(false);\n });\n }\n }\n }, [\n deleteLoading,\n closeDeleteModalAndRefresh,\n selectedBucket,\n selectedObject,\n selectedVersions,\n bypassGovernance,\n dispatch,\n ]);\n\n if (!selectedVersions) {\n return null;\n }\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete the selected {selectedVersions.length}{\" \"}\n versions for {selectedObject}?\n {canBypass && (\n \n
\n )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(DaysSelector);\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 { useSelector } from \"react-redux\";\nimport { Button, CopyIcon, ReadBox, ShareIcon, Grid } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\n\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport DaysSelector from \"../../../../Common/FormComponents/DaysSelector/DaysSelector\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport {\n selDistSet,\n setModalErrorSnackMessage,\n setModalSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\nimport { BucketObject } from \"api/consoleApi\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IShareFileProps {\n open: boolean;\n bucketName: string;\n dataObject: BucketObject;\n closeModalAndRefresh: () => void;\n}\n\nconst ShareFile = ({\n open,\n closeModalAndRefresh,\n bucketName,\n dataObject,\n}: IShareFileProps) => {\n const dispatch = useAppDispatch();\n const distributedSetup = useSelector(selDistSet);\n const [shareURL, setShareURL] = useState(\"\");\n const [isLoadingVersion, setIsLoadingVersion] = useState(true);\n const [isLoadingFile, setIsLoadingFile] = useState(false);\n const [selectedDate, setSelectedDate] = useState(\"\");\n const [dateValid, setDateValid] = useState(true);\n const [versionID, setVersionID] = useState(\"null\");\n\n const initialDate = new Date();\n\n const dateChanged = (newDate: string, isValid: boolean) => {\n setDateValid(isValid);\n if (isValid) {\n setSelectedDate(newDate);\n return;\n }\n setSelectedDate(\"\");\n setShareURL(\"\");\n };\n\n useEffect(() => {\n // In case version is undefined, we get the latest version of the object\n if (dataObject.version_id === undefined) {\n // In case it is not distributed setup, then we default to \"null\";\n if (distributedSetup) {\n api.buckets\n .listObjects(bucketName, {\n prefix: encodeURLString(dataObject.name || \"\"),\n with_versions: distributedSetup,\n })\n .then((res) => {\n const result: BucketObject[] = res.data.objects || [];\n\n const latestVersion: BucketObject | undefined = result.find(\n (elem: BucketObject) => elem.is_latest,\n );\n\n if (latestVersion) {\n setVersionID(`${latestVersion.version_id}`);\n return;\n }\n\n // Version couldn't be retrieved, we default\n setVersionID(\"null\");\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n });\n\n setIsLoadingVersion(false);\n return;\n }\n setVersionID(\"null\");\n setIsLoadingVersion(false);\n return;\n }\n setVersionID(dataObject.version_id || \"null\");\n setIsLoadingVersion(false);\n }, [bucketName, dataObject, distributedSetup, dispatch]);\n\n useEffect(() => {\n if (dateValid && !isLoadingVersion) {\n setIsLoadingFile(true);\n setShareURL(\"\");\n\n const slDate = new Date(`${selectedDate}`);\n const currDate = new Date();\n\n const diffDate = Math.ceil(\n (slDate.getTime() - currDate.getTime()) / 1000,\n );\n\n if (diffDate > 0) {\n api.buckets\n .shareObject(bucketName, {\n prefix: encodeURLString(dataObject.name || \"\"),\n version_id: versionID,\n expires: selectedDate !== \"\" ? `${diffDate}s` : \"\",\n })\n .then((res) => {\n setShareURL(res.data);\n setIsLoadingFile(false);\n })\n .catch((err) => {\n dispatch(setModalErrorSnackMessage(errorToHandler(err.error)));\n setShareURL(\"\");\n setIsLoadingFile(false);\n });\n }\n }\n }, [\n dataObject,\n selectedDate,\n bucketName,\n dateValid,\n setShareURL,\n dispatch,\n distributedSetup,\n isLoadingVersion,\n versionID,\n ]);\n\n return (\n \n }\n modalOpen={open}\n onClose={() => {\n closeModalAndRefresh();\n }}\n >\n {isLoadingVersion && (\n \n \n \n )}\n {!isLoadingVersion && (\n \n \n This is a temporary URL with integrated access credentials for\n sharing objects valid for up to 7 days.\n \n \n The temporary URL expires after the configured time limit.\n \n \n \n \n \n \n \n {\n dispatch(\n setModalSnackMessage(\"Share URL Copied to clipboard\"),\n );\n }}\n disabled={shareURL === \"\" || isLoadingFile}\n style={{\n width: \"28px\",\n height: \"28px\",\n padding: \"0px\",\n }}\n icon={}\n />\n \n }\n >\n {shareURL}\n \n \n \n )}\n \n \n );\n};\n\nexport default ShareFile;\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 createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, LinearProgress } from \"@mui/material\";\nimport { BucketObjectItem } from \"../ListObjects/types\";\nimport { AllowedPreviews, previewObjectType } from \"../utils\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport clsx from \"clsx\";\nimport WarningMessage from \"../../../../Common/WarningMessage/WarningMessage\";\nimport { api } from \"../../../../../../api\";\nimport get from \"lodash/get\";\n\nconst styles = () =>\n createStyles({\n iframeContainer: {\n border: \"0px\",\n flex: \"1 1 auto\",\n width: \"100%\",\n height: 250,\n backgroundColor: \"transparent\",\n borderRadius: 5,\n\n \"&.image\": {\n height: 500,\n },\n \"&.text\": {\n height: 700,\n },\n \"&.audio\": {\n height: 150,\n },\n \"&.video\": {\n height: 350,\n },\n \"&.fullHeight\": {\n height: \"calc(100vh - 185px)\",\n },\n },\n iframeBase: {\n backgroundColor: \"#fff\",\n },\n iframeHidden: {\n display: \"none\",\n },\n });\n\ninterface IPreviewFileProps {\n bucketName: string;\n object: BucketObjectItem | null;\n isFullscreen?: boolean;\n classes: any;\n}\n\nconst PreviewFile = ({\n bucketName,\n object,\n isFullscreen = false,\n classes,\n}: IPreviewFileProps) => {\n const [loading, setLoading] = useState(true);\n\n const [metaData, setMetaData] = useState(null);\n const [isMetaDataLoaded, setIsMetaDataLoaded] = useState(false);\n\n const objectName = object?.name || \"\";\n\n const fetchMetadata = useCallback(() => {\n if (!isMetaDataLoaded) {\n const encodedPath = encodeURLString(objectName);\n api.buckets\n .getObjectMetadata(bucketName, {\n prefix: encodedPath,\n })\n .then((res) => {\n let metadata = get(res.data, \"objectMetadata\", {});\n setIsMetaDataLoaded(true);\n setMetaData(metadata);\n })\n .catch((err) => {\n console.error(\n \"Error Getting Metadata Status: \",\n err,\n err?.detailedError,\n );\n setIsMetaDataLoaded(true);\n });\n }\n }, [bucketName, objectName, isMetaDataLoaded]);\n\n useEffect(() => {\n if (bucketName && objectName) {\n fetchMetadata();\n }\n }, [bucketName, objectName, fetchMetadata]);\n\n let path = \"\";\n\n if (object) {\n const encodedPath = encodeURLString(object.name);\n let basename = document.baseURI.replace(window.location.origin, \"\");\n path = `${window.location.origin}${basename}api/v1/buckets/${bucketName}/objects/download?preview=true&prefix=${encodedPath}`;\n if (object.version_id) {\n path = path.concat(`&version_id=${object.version_id}`);\n }\n }\n\n let objectType: AllowedPreviews = previewObjectType(metaData, objectName);\n\n const iframeLoaded = () => {\n setLoading(false);\n };\n\n return (\n \n {objectType !== \"none\" && loading && (\n \n \n \n )}\n {isMetaDataLoaded ? (\n
\n ) : null}\n \n );\n};\nexport default withStyles(styles)(PreviewFile);\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 ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport PreviewFileContent from \"./PreviewFileContent\";\nimport { BucketObjectItem } from \"../ListObjects/types\";\nimport { ObjectPreviewIcon } from \"mds\";\n\ninterface IPreviewFileProps {\n open: boolean;\n bucketName: string;\n object: BucketObjectItem | null;\n onClosePreview: () => void;\n}\n\nconst PreviewFileModal = ({\n open,\n bucketName,\n object,\n onClosePreview,\n}: IPreviewFileProps) => {\n return (\n \n }\n >\n \n \n \n );\n};\n\nexport default PreviewFileModal;\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 { BucketObjectItem } from \"./ListObjects/types\";\nimport { encodeURLString } from \"../../../../../common/utils\";\nimport { removeTrace } from \"../../../ObjectBrowser/transferManager\";\nimport store from \"../../../../../store\";\nimport { ContentType, PermissionResource } from \"api/consoleApi\";\nimport { api } from \"../../../../../api\";\nimport { setErrorSnackMessage } from \"../../../../../systemSlice\";\n\nconst downloadWithLink = (href: string, downloadFileName: string) => {\n const link = document.createElement(\"a\");\n link.href = href;\n link.download = downloadFileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\nexport const downloadSelectedAsZip = async (\n bucketName: string,\n objectList: string[],\n resultFileName: string,\n) => {\n const state = store.getState();\n const anonymousMode = state.system.anonymousMode;\n\n try {\n const resp = await api.buckets.downloadMultipleObjects(\n bucketName,\n objectList,\n {\n type: ContentType.Json,\n headers: anonymousMode\n ? {\n \"X-Anonymous\": \"1\",\n }\n : undefined,\n },\n );\n const blob = await resp.blob();\n const href = window.URL.createObjectURL(blob);\n downloadWithLink(href, resultFileName);\n } catch (err: any) {\n store.dispatch(\n setErrorSnackMessage({\n errorMessage: `Download of multiple files failed. ${err.statusText}`,\n detailedError: \"\",\n }),\n );\n }\n};\nexport const download = (\n bucketName: string,\n objectPath: string,\n versionID: any,\n fileSize: number,\n overrideFileName: string | null = null,\n id: string,\n progressCallback: (progress: number) => void,\n completeCallback: () => void,\n errorCallback: (msg: string) => void,\n abortCallback: () => void,\n toastCallback: () => void,\n) => {\n let basename = document.baseURI.replace(window.location.origin, \"\");\n const state = store.getState();\n const anonymousMode = state.system.anonymousMode;\n\n let path = `${\n window.location.origin\n }${basename}api/v1/buckets/${bucketName}/objects/download?prefix=${objectPath}${\n overrideFileName !== null && overrideFileName.trim() !== \"\"\n ? `&override_file_name=${encodeURLString(overrideFileName || \"\")}`\n : \"\"\n }`;\n if (versionID) {\n path = path.concat(`&version_id=${versionID}`);\n }\n\n // If file is greater than 50GiB then we force browser download, if not then we use HTTP Request for Object Manager\n if (fileSize > 53687091200) {\n return new BrowserDownload(path, id, completeCallback, toastCallback);\n }\n\n let req = new XMLHttpRequest();\n req.open(\"GET\", path, true);\n if (anonymousMode) {\n req.setRequestHeader(\"X-Anonymous\", \"1\");\n }\n req.addEventListener(\n \"progress\",\n function (evt) {\n let percentComplete = Math.round((evt.loaded / fileSize) * 100);\n\n if (progressCallback) {\n progressCallback(percentComplete);\n }\n },\n false,\n );\n\n req.responseType = \"blob\";\n req.onreadystatechange = () => {\n if (req.readyState === 4) {\n if (req.status === 200) {\n const rspHeader = req.getResponseHeader(\"Content-Disposition\");\n\n let filename = \"download\";\n if (rspHeader) {\n let rspHeaderDecoded = decodeURIComponent(rspHeader);\n filename = rspHeaderDecoded.split('\"')[1];\n }\n\n if (completeCallback) {\n completeCallback();\n }\n\n removeTrace(id);\n\n downloadWithLink(window.URL.createObjectURL(req.response), filename);\n } else {\n if (req.getResponseHeader(\"Content-Type\") === \"application/json\") {\n const rspBody: { detailedMessage?: string } = JSON.parse(\n req.response,\n );\n if (rspBody.detailedMessage) {\n errorCallback(rspBody.detailedMessage);\n return;\n }\n }\n errorCallback(`Unexpected response status code (${req.status}).`);\n }\n }\n };\n req.onerror = () => {\n if (errorCallback) {\n errorCallback(\"A network error occurred.\");\n }\n };\n req.onabort = () => {\n if (abortCallback) {\n abortCallback();\n }\n };\n\n return req;\n};\n\nclass BrowserDownload {\n path: string;\n id: string;\n completeCallback: () => void;\n toastCallback: () => void;\n\n constructor(\n path: string,\n id: string,\n completeCallback: () => void,\n toastCallback: () => void,\n ) {\n this.path = path;\n this.id = id;\n this.completeCallback = completeCallback;\n this.toastCallback = toastCallback;\n }\n\n send(): void {\n this.toastCallback();\n const link = document.createElement(\"a\");\n link.href = this.path;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n this.completeCallback();\n removeTrace(this.id);\n }\n}\n\nexport type AllowedPreviews = \"image\" | \"text\" | \"audio\" | \"video\" | \"none\";\nexport const contentTypePreview = (contentType: string): AllowedPreviews => {\n if (contentType) {\n const mimeObjectType = (contentType || \"\").toLowerCase();\n\n if (mimeObjectType.includes(\"image\")) {\n return \"image\";\n }\n if (mimeObjectType.includes(\"text\")) {\n return \"text\";\n }\n if (mimeObjectType.includes(\"audio\")) {\n return \"audio\";\n }\n if (mimeObjectType.includes(\"video\")) {\n return \"video\";\n }\n }\n\n return \"none\";\n};\n\n// Review file extension by name & returns the type of preview browser that can be used\nexport const extensionPreview = (fileName: string): AllowedPreviews => {\n const imageExtensions = [\n \"jif\",\n \"jfif\",\n \"apng\",\n \"avif\",\n \"svg\",\n \"webp\",\n \"bmp\",\n \"ico\",\n \"jpg\",\n \"jpe\",\n \"jpeg\",\n \"gif\",\n \"png\",\n \"heic\",\n ];\n const textExtensions = [\"pdf\"];\n const audioExtensions = [\"wav\", \"mp3\", \"alac\", \"aiff\", \"dsd\", \"pcm\"];\n const videoExtensions = [\n \"mp4\",\n \"avi\",\n \"mpg\",\n \"webm\",\n \"mov\",\n \"flv\",\n \"mkv\",\n \"wmv\",\n \"avchd\",\n \"mpeg-4\",\n ];\n\n let fileExtension = fileName.split(\".\").pop();\n\n if (!fileExtension) {\n return \"none\";\n }\n\n fileExtension = fileExtension.toLowerCase();\n\n if (imageExtensions.includes(fileExtension)) {\n return \"image\";\n }\n\n if (textExtensions.includes(fileExtension)) {\n return \"text\";\n }\n\n if (audioExtensions.includes(fileExtension)) {\n return \"audio\";\n }\n\n if (videoExtensions.includes(fileExtension)) {\n return \"video\";\n }\n\n return \"none\";\n};\n\nexport const previewObjectType = (\n metaData: Record,\n objectName: string,\n) => {\n const metaContentType = (\n (metaData && metaData[\"Content-Type\"]) ||\n \"\"\n ).toString();\n\n const extensionType = extensionPreview(objectName || \"\");\n const contentType = contentTypePreview(metaContentType);\n\n let objectType: AllowedPreviews = extensionType;\n\n if (extensionType === contentType) {\n objectType = extensionType;\n } else if (extensionType === \"none\" && contentType !== \"none\") {\n objectType = contentType;\n } else if (contentType === \"none\" && extensionType !== \"none\") {\n objectType = extensionType;\n }\n\n return objectType;\n};\nexport const sortListObjects = (fieldSort: string) => {\n switch (fieldSort) {\n case \"name\":\n return (a: BucketObjectItem, b: BucketObjectItem) =>\n a.name.localeCompare(b.name);\n case \"last_modified\":\n return (a: BucketObjectItem, b: BucketObjectItem) =>\n new Date(a.last_modified).getTime() -\n new Date(b.last_modified).getTime();\n case \"size\":\n return (a: BucketObjectItem, b: BucketObjectItem) =>\n (a.size || -1) - (b.size || -1);\n }\n};\n\nexport const permissionItems = (\n bucketName: string,\n currentPath: string,\n permissionsArray: PermissionResource[],\n): BucketObjectItem[] | null => {\n if (permissionsArray.length === 0) {\n return null;\n }\n\n // We get permissions applied to the current bucket\n const filteredPermissionsForBucket = permissionsArray.filter(\n (permissionItem) =>\n permissionItem.resource?.endsWith(`:${bucketName}`) ||\n permissionItem.resource?.includes(`:${bucketName}/`),\n );\n\n // No permissions for this bucket. we can throw the error message at this point\n if (filteredPermissionsForBucket.length === 0) {\n return null;\n }\n\n let returnElements: BucketObjectItem[] = [];\n\n // We split current path\n const splitCurrentPath = currentPath.split(\"/\");\n\n filteredPermissionsForBucket.forEach((permissionElement) => {\n // We review paths in resource address\n\n // We split ARN & get the last item to check the URL\n const splitARN = permissionElement.resource?.split(\":\");\n const urlARN = splitARN?.pop() || \"\";\n\n // We split the paths of the URL & compare against current location to see if there are more items to include. In case current level is a wildcard or is the last one, we omit this validation\n\n const splitURLARN = urlARN.split(\"/\");\n\n // splitURL has more items than bucket name, we can continue validating\n if (splitURLARN.length > 1) {\n splitURLARN.every((currentElementInPath, index) => {\n // It is a wildcard element. We can store the verification as value should be included (?)\n if (currentElementInPath === \"*\") {\n return false;\n }\n\n // Element is not included in the path. The user is trying to browse something else.\n if (\n splitCurrentPath[index] &&\n splitCurrentPath[index] !== currentElementInPath\n ) {\n return false;\n }\n\n // This element is not included by index in the current paths list. We add it so user can browse into it\n if (!splitCurrentPath[index]) {\n returnElements.push({\n name: `${currentElementInPath}/`,\n size: 0,\n last_modified: \"\",\n version_id: \"\",\n });\n }\n\n return true;\n });\n }\n\n // We review prefixes in allow resources for StringEquals variant only.\n if (\n permissionElement.conditionOperator === \"StringEquals\" ||\n permissionElement.conditionOperator === \"StringLike\"\n ) {\n permissionElement.prefixes?.forEach((prefixItem) => {\n // Prefix Item is not empty?\n if (prefixItem !== \"\") {\n const splitItems = prefixItem.split(\"/\");\n\n let pathToRouteElements: string[] = [];\n\n // We verify if currentPath is contained in the path begin, if is not contained the user has no access to this subpath\n const cleanCurrPath = currentPath.replace(/\\/$/, \"\");\n\n if (!prefixItem.startsWith(cleanCurrPath) && currentPath !== \"\") {\n return;\n }\n\n // For every split element we iterate and check if we can construct a URL\n splitItems.every((splitElement, index) => {\n if (!splitElement.includes(\"*\") && splitElement !== \"\") {\n if (splitElement !== splitCurrentPath[index]) {\n returnElements.push({\n name: `${pathToRouteElements.join(\"/\")}${\n pathToRouteElements.length > 0 ? \"/\" : \"\"\n }${splitElement}/`,\n size: 0,\n last_modified: \"\",\n version_id: \"\",\n });\n return false;\n }\n if (splitElement !== \"\") {\n pathToRouteElements.push(splitElement);\n }\n\n return true;\n }\n return false;\n });\n }\n });\n }\n });\n\n // We clean duplicated name entries\n if (returnElements.length > 0) {\n let clElements: BucketObjectItem[] = [];\n let keys: string[] = [];\n\n returnElements.forEach((itm) => {\n if (!keys.includes(itm.name)) {\n clElements.push(itm);\n keys.push(itm.name);\n }\n });\n\n returnElements = clElements;\n }\n\n return returnElements;\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, { ComponentType, Suspense, SuspenseProps } from \"react\";\n\nfunction withSuspense
(\n WrappedComponent: ComponentType
,\n fallback: SuspenseProps[\"fallback\"] = null,\n) {\n function ComponentWithSuspense(props: P) {\n return (\n \n \n \n );\n }\n\n return ComponentWithSuspense;\n}\n\nexport default withSuspense;\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 { Checkbox, Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n checkboxIcons,\n fieldBasic,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { HelpIcon } from \"mds\";\n\ninterface CheckBoxProps {\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 overrideLabelClasses?: string;\n overrideCheckboxStyles?: React.CSSProperties;\n index?: number;\n noTopMargin?: boolean;\n checked: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n ...checkboxIcons,\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n margin: \"15px 0\",\n marginBottom: 0,\n flexBasis: \"initial\",\n flexWrap: \"nowrap\",\n },\n noTopMargin: {\n marginTop: 0,\n },\n });\n\nconst CheckboxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n checked = false,\n disabled = false,\n noTopMargin = false,\n tooltip = \"\",\n overrideLabelClasses = \"\",\n overrideCheckboxStyles,\n classes,\n className,\n}: CheckBoxProps) => {\n return (\n \n \n
\n \n \n );\n};\n\nexport default withStyles(styles)(InputBoxWrapper);\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\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IWarningMessage {\n classes: any;\n label: any;\n title: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n backgroundColor: \"#e78794\",\n borderRadius: 3,\n marginBottom: 20,\n padding: 1,\n paddingBottom: 15,\n },\n labelHeadline: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n },\n labelText: {\n color: \"#000000\",\n fontSize: 14,\n marginLeft: 20,\n marginRight: 40,\n },\n });\n\nconst WarningMessage = ({ classes, label, title }: IWarningMessage) => {\n return (\n
\n
{title}
\n
{label}
\n
\n );\n};\n\nexport default withStyles(styles)(WarningMessage);\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, { useState } from \"react\";\nimport { Box } from \"@mui/material\";\nimport { Button, CopyIcon } from \"mds\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\nconst KeyRevealer = ({ value }: { value: string }) => {\n const [shown, setShown] = useState(false);\n\n return (\n \n {}}\n value={value}\n overlayIcon={}\n extraInputProps={{\n readOnly: true,\n }}\n overlayAction={() => navigator.clipboard.writeText(value)}\n />\n\n setShown(!shown)}\n label={\"Show/Hide\"}\n />\n \n );\n};\n\nexport default KeyRevealer;\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n"],"names":["_ref","modalOpen","onClose","bucket","prefilledRoute","dispatch","useAppDispatch","_useState","useState","_useState2","_slicedToArray","prefix","setPrefix","_useState3","_useState4","selectedAccess","setSelectedAccess","useEffect","_jsx","ModalWrapper","title","titleIcon","AddAccessRuleIcon","children","_jsxs","FormLayout","withBorders","containerPadding","InputBox","value","label","id","name","placeholder","onChange","e","target","tooltip","Select","options","disabled","Grid","item","xs","sx","modalStyleUtils","modalButtonBar","Button","type","variant","onClick","trim","api","setAccessRuleWithBucket","access","then","res","setSnackBarMessage","catch","err","setErrorSnackMessage","errorToHandler","objectsWS","extractFileExtn","resourceStr","match","getSessionGrantsWildCard","sessionGrants","uploadPath","scopes","arguments","length","undefined","grantsWithExtension","Object","keys","reduce","acc","grantKey","includes","filter","sessionGrantKey","hasScope","some","actionKey","find","scopeKey","wildCardMatch","indexOf","scopeActionKey","substring","isUploadPathMatching","concat","CreatePathModal","withSuspense","React","useStyles","makeStyles","theme","createStyles","_objectSpread","objectBrowserCommon","slashSpacingStyle","margin","bucketName","internalPaths","hidePathButton","additionalOptions","navigate","useNavigate","classes","rewindEnabled","useSelector","state","objectBrowser","rewind","versionsMode","versionedFile","anonymousMode","system","createFolderOpen","setCreateFolderOpen","putObjectPermScopes","IAM_SCOPES","S3_PUT_OBJECT","S3_PUT_ACTIONS","console","session","permissions","paths","splitPaths","split","path","lastBreadcrumbsIndex","pathToCheckPerms","sessionGrantWildCards","canCreatePath","hasPermission","_toConsumableArray","breadcrumbsMap","map","objectItem","index","subSplit","slice","join","route","encodeURLString","Fragment","className","style","cursor","whiteSpace","safeDecodeURIComponent","Link","to","setVersionsModeEnabled","status","objectName","toString","versionsItem","listBreadcrumbs","breadcrumbsMain","folderName","Breadcrumbs","goBackFunction","prevPath","CopyToClipboard","text","icon","CopyIcon","width","height","fill","marginTop","color","border","marginRight","Tooltip","permissionTooltipHelper","NewPathIcon","breadcrumbsSecond","withStyles","listUploadIcons","_ref$forceDisable","forceDisable","uploadFileFunction","uploadFolderFunction","_ref$overrideStyles","overrideStyles","anchorEl","setAnchorEl","openUploadMenu","Boolean","handleCloseUpload","uploadObjectAllowed","uploadFolderAllowed","uploadEnabled","TooltipWrapper","event","currentTarget","UploadIcon","Menu","open","anchorOrigin","vertical","horizontal","transformOrigin","MenuItem","ListItemIcon","ListItemText","UploadFolderIcon","detailsList","borderColor","borderWidth","borderStyle","borderRadius","borderBottomLeftRadius","borderBottomRightRadius","transitionDuration","overflowX","overflowY","position","opacity","marginLeft","minWidth","borderLeftWidth","closePanel","_ref$className","ClosePanelIcon","right","top","padding","backgroundColor","months","days","Array","from","_","num","currentYear","Date","getFullYear","years","numYear","DateSelector","forwardRef","ref","_ref$disableOptions","disableOptions","_ref$addSwitch","addSwitch","_ref$tooltip","_ref$borderBottom","borderBottom","onDateChange","_ref$value","useImperativeHandle","resetDate","dateEnabled","setDateEnabled","month","setMonth","_useState5","_useState6","day","setDay","_useState7","_useState8","year","setYear","valueSplit","parseInt","_validDate","currentDate","parse","isNaN","parsedMonth","parsedDay","monthForString","dayForString","parsedDate","toISOString","dateString","validDate","_validDate2","isValid","isDateDisabled","monthForDropDown","daysForDrop","yearsForDrop","clsx","fieldContainer","_defineProperty","fieldContainerBorder","labelContainer","container","InputLabel","htmlFor","tooltipContainer","placement","HelpIcon","Switch","indicatorLabels","checked","switchOnly","Box","display","gap","newValue","fieldBasic","tooltipHelper","alignItems","justifyContent","paddingBottom","marginBottom","formFieldStyles","spacingUtils","closeModalAndRefresh","objectInfo","retentionConfig","statusEnabled","setStatusEnabled","setType","date","setDate","isDateValid","setIsDateValid","_useState9","_useState10","isSaving","setIsSaving","_useState11","_useState12","alreadyConfigured","setAlreadyConfigured","retention_mode","mode","ObjectRetentionMode","Governance","retention_until_date","valueDate","getMonth","getDate","dateElement","useRef","resetForm","current","showSwitcher","spacerBottom","noValidate","autoComplete","onSubmit","preventDefault","formFieldRow","RadioGroup","currentValue","selectorOptions","Compliance","dateSelector","selectedObject","versionId","version_id","expireDate","buckets","putObjectRetention","expires","setModalErrorSnackMessage","error","addRetention","deleteObjectRetention","disableRetention","isVersionedMode","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","versioningInfo","_ref$selectedVersion","selectedVersion","_useApi","useApi","detailedError","_useApi2","deleteLoading","invokeDeleteApi","deleteVersions","setDeleteVersions","bypassGovernance","setBypassGovernance","canBypass","S3_BYPASS_GOVERNANCE_RETENTION","ConfirmDialog","confirmText","isOpen","ConfirmDeleteIcon","isLoading","onConfirm","recursive","decodeURLString","endsWith","confirmationContent","description","actualInfo","legalHoldEnabled","setLegalHoldEnabled","get","putObjectLegalHold","ObjectLegalHoldStatus","Enabled","Disabled","itemRendererFn","element","isArray","titleItem","detailsPanel","metaData","_ref$linear","linear","metaKeys","renderItem","metadataLinear","Table","table","TableBody","TableRow","TableCell","component","scope","align","fileName","minHeight","fileNameText","overflow","textOverflow","strings","replaceUnicodeChar","extensionToIcon","FileVideoIcon","extensions","FileMusicIcon","FilePdfIcon","FilePptIcon","FileXlsIcon","FileLockIcon","FileCodeIcon","FileConfigIcon","FileDbIcon","FileFontIcon","FileTxtIcon","FileZipIcon","FileBookIcon","FileImageIcon","displayFileIconName","returnOnlyIcon","elementString","FileNonType","FolderBrowserIcon","lowercaseElement","toLowerCase","_i","_extensionToIcon","_step","etc","_iterator","_createForOfIteratorHelper","s","n","done","ext","f","FileMissingIcon","splitItem","IconWithLabel","newTileHeader","fontSize","fontWeight","tagsForLabel","currentTagsContainer","noTagsForObject","deleteTag","_actualInfo$name","onCloseAndUpdate","distributedSetup","selDistSet","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","deleteEnabled","setDeleteEnabled","deleteKey","setDeleteKey","deleteLabel","setDeleteLabel","currentTags","tags","currTagKeys","allPathData","currentItem","pop","tagsFor","plural","DisabledIcon","EditTagIcon","cleanObject","verID","putObjectTags","SecureComponent","S3_GET_OBJECT_TAGGING","S3_GET_ACTIONS","resource","flexFlow","tagKey","tag","S3_DELETE_OBJECT_TAGGING","errorProps","deleteIcon","onDelete","Chip","textTransform","size","CloseIcon","onDeleteTag","S3_PUT_OBJECT_TAGGING","SectionTitle","AddNewTagIcon","separator","newTag","newTagList","closeInspectModalAndRefresh","inspectOpen","inspectPath","volumeName","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","makeRequest","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","url","wrap","_context","prev","next","fetch","method","abrupt","sent","stop","_x","apply","performInspect","_ref3","_callee3","file","volume","urlOfInspectApi","_context3","_ref4","_callee2","resErr","blob","filename","decryptKey","_context2","ok","json","errorMessage","message","code","headers","getCookieValue","performDownload","_x2","InspectMenuIcon","deleteCookie","PasswordKeyIcon","DialogContentText","KeyRevealer","downloadObject","object","_object$name","identityDownload","getTime","Math","random","isWinOs","getClientOS","setLongFileOpen","ID","makeid","downloadCall","download","progress","updateProgress","instanceID","completeObject","msg","failObject","cancelObjectInList","storeCallForObjectWithID","setNewObject","percentage","waitingForFile","failed","cancelled","containerForHeader","closeModal","newFileName","setNewFileName","acceptLongName","setAcceptLongName","EditIcon","doDownload","modalFormScrollable","InputBoxWrapper","FormSwitchWrapper","emptyFile","is_latest","last_modified","legal_hold_status","ObjectDetailsTitle","objectNameContainer","capitalizeFirst","actionsTray","textStyleUtils","locking","onClosePanel","loadingObjectInfo","shareFileModalOpen","setShareFileModalOpen","retentionModalOpen","setRetentionModalOpen","tagModalOpen","setTagModalOpen","legalholdOpen","setLegalholdOpen","inspectModalOpen","setInspectModalOpen","setActualInfo","_useState13","_useState14","allInfoElements","setAllInfoElements","_useState15","_useState16","objectToShare","setObjectToShare","_useState17","_useState18","versions","setVersions","_useState19","_useState20","setDeleteOpen","_useState21","_useState22","previewOpen","setPreviewOpen","_useState23","_useState24","totalVersionsSize","setTotalVersionsSize","_useState25","_useState26","longFileOpen","_useState27","_useState28","setMetaData","_useState29","_useState30","loadMetadata","setLoadingMetadata","objectNameArray","infoElement","el","is_delete_marker","listObjects","with_versions","result","data","objects","tVersionSize","currValue","resInfo","setLoadingObjectInfo","getObjectMetadata","metadata","tagKeys","loaderForContainer","textAlign","Loader","objectResources","canSetLegalHold","S3_PUT_OBJECT_LEGAL_HOLD","canSetTags","canChangeRetention","S3_GET_OBJECT_RETENTION","S3_PUT_OBJECT_RETENTION","canInspect","ADMIN_INSPECT_DATA","canChangeVersioning","S3_GET_BUCKET_VERSIONING","S3_PUT_BUCKET_VERSIONING","S3_GET_OBJECT_VERSION","canGetObject","S3_GET_OBJECT","canDelete","S3_DELETE_OBJECT","objectType","previewObjectType","multiActionButtons","action","DownloadIcon","ShareIcon","PreviewIcon","LegalHoldIcon","RetentionIcon","TagsIcon","VersionsIcon","ShareFile","dataObject","SetRetention","updateInfo","DeleteObject","closeAndReload","setLoadingVersions","setSelectedVersion","SetLegalHoldModal","reload","PreviewFileModal","content_type","onClosePreview","TagsModal","reloadObjectData","InspectObject","RenameLongFileName","ActionsList","items","DeleteIcon","iconLocation","fullWidth","SimpleHeader","ObjectInfoIcon","detailContainer","overflowWrap","niceBytes","niceBytesInt","lastModified","currentTime","modifiedTime","difTime","formatTime","niceDaysInt","calculateLastModifyTime","etag","S3_GET_OBJECT_LEGAL_HOLD","MetadataIcon","ObjectMetaData","modalBasic","versionToRestore","objectPath","restoreOpen","restoreLoading","setRestoreLoading","RecoverIcon","putObjectRestore","restoreLocalObjectList","confirmButtonProps","wrapText","bgColor","FileVersionStyled","styled","div","content","left","borderBottomColor","maxWidth","flexDirection","versionInfo","isSelected","checkable","isChecked","onCheck","onShare","onDownload","onRestore","onPreview","globalClick","key","disableButtons","versionItemButtons","pill","DateTime","now","fromISO","md","CheckboxWrapper","stopPropagation","overrideCheckboxStyles","paddingLeft","noTopMargin","SpecificVersionPill","button","IconButton","toFormat","setDeleteLoading","typeConfirm","setTypeConfirm","deleteObject","non_current_versions","bypass","selectedVersions","selectedObjectsRequest","versionID","deleteMultipleObjects","all_versions","versionsContainer","noBottomBorder","versionsVirtualPanel","flexGrow","screenTitleContainer","sortByLabel","tableStyles","objectBrowserExtras","searchVersions","loadingVersions","restoreVersionOpen","setRestoreVersionOpen","restoreVersion","setRestoreVersion","sortValue","setSortValue","deleteNonCurrentOpen","setDeleteNonCurrentOpen","selectEnabled","setSelectEnabled","selectedItems","setSelectedItems","delSelectedVOpen","setDelSelectedVOpen","decodedInternalPaths","filteredPrefixes","onShareItem","onPreviewItem","onRestoreItem","onDownloadItem","onGlobalClick","filteredRecords","version","totalSpace","sort","a","b","dateA","dateB","onCheckVersion","filteredItems","cloneState","push","RestoreFileVersion","DeleteNonCurrent","reloadAfterDelete","DeleteSelectedVersions","reloadOnComplete","LinearProgress","BrowserBreadcrumbs","ScreenTitle","listIcon","subTitle","detailsSpacer","actions","SelectMultipleIcon","DeleteNonCurrentIcon","noLabelMinWidth","bottomBorder","List","containerStyle","rowCount","rowHeight","rowRenderer","isScrolling","isVisible","versOrd","FileVersionItem","displayParsedDate","currTime","objectTime","hasSame","displayNiceBytes","String","listModeColumns","elementKey","renderFunction","enableSort","renderFullObject","rewindModeColumns","browsePaper","parentWrapper","backgroundImage","params","useParams","sortDirection","setSortDirection","currentSortField","setCurrentSortField","detailsOpen","objectDetailsOpen","loadingObjects","features","selFeatures","obOnly","records","searchObjects","selectedObjects","connectionError","displayListObjects","S3_LIST_BUCKET","S3_ALL_LIST_BUCKET","sortASC","sortListObjects","payload","reverse","tableActions","idElement","newPath","setSelectedObjects","setObjectDetailsView","setIsOpeningOD","setSelectedObjectView","sendOnlyId","customPaperHeight","DataTable","itemActions","columns","entityName","idField","onSelect","targetD","elements","customEmptyMessage","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","sortBy","setLoadingObjects","onSelectAll","rowStyle","_payload$index","delete_flag","parentClassName","noBackground","downloadSelected","createAsyncThunk","getState","itemsToDownload","filterFunction","multiObjList","rejectWithValue","setDownloadRenameModal","dwList","bi","isDeleted","log","downloadSelectedAsZip","openPreview","fileObject","findFunction","setSelectedPreview","_x3","_x4","openShare","_ref6","_ref5","_x5","_x6","openAnonymousAccess","_ref8","_callee4","_ref7","_context4","setAnonymousAccessOpen","_x7","_x8","SearchBox","setSearchObjects","DeleteMultipleObjects","RewindEnable","badgeOverlap","searchField","labelStyle","breadcrumbsContainer","fullContainer","hideListOnSmall","actionsSection","baseDnDStyle","outline","activeDnDStyle","acceptDnDStyle","_downloadRenameModal$","location","useLocation","bucketToRewind","showDeleted","selectedInternalPaths","simplePath","versioningConfig","lockingEnabled","downloadRenameModal","selectedPreview","anonymousAccessOpen","loadingBucket","selBucketDetailsLoading","bucketInfo","selBucketDetailsInfo","deleteMultipleOpen","setDeleteMultipleOpen","rewindSelect","setRewindSelect","iniLoad","setIniLoad","canShareFile","setCanShareFile","canPreviewFile","setCanPreviewFile","quota","setQuota","isMetaDataLoaded","setIsMetaDataLoaded","isVersioningApplied","pathSegment","pathname","pageTitle","currentPath","i","fileUpload","folderUpload","pathAsResourceInPolicy","allowedFileExtensions","cv","extension","Set","getPolicyAllowedFileExtensions","canDownload","canUpload","canSetAnonymousAccess","S3_GET_BUCKET_POLICY","S3_PUT_BUCKET_POLICY","fetchMetadata","useCallback","encodedPath","resetRewind","setAttribute","getBucketQuota","quotaVals","detailedMessage","setBucketDetailsLoad","setBucketInfo","setSelectedBucket","getBucketRetentionConfig","setRetentionConfig","handleUploadButton","files","newFiles","uploadObject","folderPath","pathPrefix","uploadPromise","Promise","resolve","reject","uploadUrl","blobFile","Blob","filePath","fileWebkitRelativePath","relativeFolderPath","finalFolderPath","pathClean","startsWith","identity","xhr","XMLHttpRequest","setRequestHeader","areMultipleFiles","errorMessages","withCredentials","onload","removeTrace","response","JSON","upload","addEventListener","floor","loaded","total","onerror","onloadend","onabort","formData","FormData","append","storeFormDataWithID","uploadFilePromises","openList","allSettled","results","errors","totalFiles","successUploadedFiles","onDrop","acceptedFiles","_console","_console2","newFolderPath","allowedFiles","fileExtn","_useDropzone","useDropzone","noClick","getRootProps","getInputProps","isDragActive","isDragAccept","dndStyles","useMemo","forceRefresh","splitURLS","URLItem","createdTime","creation_date","downloadToolTip","AccessRuleIcon","refresh","versioning","AddAccessRule","PageLayout","FilterObjectsSB","BucketsIcon","Badge","badgeContent","invisible","HistoryIcon","RefreshIcon","resetMessages","setLoadingRecords","multiple","accept","UploadFilesButton","closeMenu","click","tableBlock","borderTop","VersionsNavigator","setShowDeletedObjects","overrideLabelClasses","overrideShowDeleted","ListObjectsTable","DetailsListPanel","ObjectDetailPanel","configureBucketAllowed","S3_GET_BUCKET_ENCRYPTION_CONFIGURATION","S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION","S3_DELETE_BUCKET","S3_GET_BUCKET_NOTIFICATIONS","S3_PUT_BUCKET_NOTIFICATIONS","S3_GET_REPLICATION_CONFIGURATION","S3_PUT_REPLICATION_CONFIGURATION","S3_GET_LIFECYCLE_CONFIGURATION","S3_PUT_LIFECYCLE_CONFIGURATION","ADMIN_GET_BUCKET_QUOTA","ADMIN_SET_BUCKET_QUOTA","S3_PUT_BUCKET_TAGGING","S3_GET_BUCKET_TAGGING","S3_LIST_BUCKET_VERSIONS","S3_GET_BUCKET_POLICY_STATUS","S3_DELETE_BUCKET_POLICY","searchBar","setSearchVersions","setHelpName","AutoColorIcon","ObjectManagerButton","PageHeaderWrapper","BackLink","IAM_PAGES","OBJECT_BROWSER_VIEW","IAM_PERMISSIONS","IAM_ROLES","BUCKET_ADMIN","SettingsIcon","HelpMenu","middleComponent","currentRequestID","errorCounter","wsInFlight","initWSConnection","openCallback","onMessageCallback","connErrorCallback","URL","window","port","baseUrl","document","baseURI","wsProt","wsProtocol","protocol","WebSocket","hostname","onopen","onmessage","reconnectFn","onclose","warn","setTimeout","loadingVersioning","rewindDate","dateToRewind","allowResources","loadingLocking","loadRecords","isOpeningOD","isOpeningObjectDetail","onMessageCallBack","request_id","internalPathsPrefix","decodedPath","permitItems","permissionItems","setRecords","request_end","newMessage","initWSRequest","readyState","newRequestID","errorInConnection","request","bucket_name","send","stringify","decodedIPaths","setLoadingVersioning","setSimplePathHandler","setLoadingLocking","parentPath","requestDate","getBucketVersioning","setIsVersioned","getBucketObjectLockingStatus","setLockingEnabled","object_locking_enabled","OBHeader","ListObjects","durationInputs","validityIndicator","invalidDurationText","reverseInput","validityText","validTill","initialDate","maxDays","entity","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","setValidDate","dateSelected","setDateSelected","hours","minutes","fromJSDate","plus","calculateNewTime","formattedDate","valid","extraStyles","paddingRight","dateInputContainer","min","max","LinkIcon","validityLabel","shareURL","setShareURL","isLoadingVersion","setIsLoadingVersion","isLoadingFile","setIsLoadingFile","selectedDate","setSelectedDate","dateValid","setDateValid","setVersionID","latestVersion","elem","slDate","currDate","diffDate","ceil","shareObject","DaysSelector","newDate","ReadBox","actionButton","setModalSnackMessage","iframeContainer","flex","iframeBase","iframeHidden","_ref$isFullscreen","isFullscreen","loading","setLoading","basename","replace","origin","iframeLoaded","maxHeight","autoPlay","controls","muted","playsInline","onPlay","src","alt","onLoad","WarningMessage","allowTransparency","wideLimit","ObjectPreviewIcon","PreviewFileContent","downloadWithLink","href","downloadFileName","link","createElement","body","appendChild","removeChild","objectList","resultFileName","resp","store","downloadMultipleObjects","ContentType","Json","createObjectURL","t0","statusText","fileSize","overrideFileName","progressCallback","completeCallback","errorCallback","abortCallback","toastCallback","BrowserDownload","req","evt","percentComplete","round","responseType","onreadystatechange","rspHeader","getResponseHeader","decodeURIComponent","rspBody","_classCallCheck","this","_createClass","metaContentType","extensionType","fileExtension","extensionPreview","contentType","mimeObjectType","contentTypePreview","fieldSort","localeCompare","permissionsArray","filteredPermissionsForBucket","permissionItem","_permissionItem$resou","_permissionItem$resou2","returnElements","splitCurrentPath","forEach","permissionElement","_permissionElement$re","_permissionElement$pr","splitARN","splitURLARN","every","currentElementInPath","conditionOperator","prefixes","prefixItem","splitItems","pathToRouteElements","cleanCurrPath","splitElement","clElements","itm","WrappedComponent","fallback","props","Suspense","checkboxIcons","flexBasis","flexWrap","_ref$checked","_ref$disabled","_ref$noTopMargin","_ref$overrideLabelCla","Checkbox","inputProps","checkedIcon","unCheckedIcon","disableRipple","disableFocusRipple","focusRipple","centerRipple","disableTouchRipple","noMinWidthLabel","StyledSwitch","root","switchBase","transform","palette","common","white","boxShadow","thumb","track","transition","transitions","create","focusVisible","switchContainer","indicatorLabelOn","indicatorLabel","fieldDescription","_ref$label","_ref$switchOnly","_ref$description","_ref$extraInputProps","extraInputProps","switchComponent","sm","inputLabel","Typography","inputStyles","inputFieldStyles","InputField","TextField","InputProps","textBoxContainer","overlayAction","_ref$type","_ref$autoComplete","_ref$multiline","multiline","_ref$index","_ref$error","_ref$required","required","_ref$placeholder","overlayId","_ref$overlayIcon","overlayIcon","_ref$overlayObject","overlayObject","_ref$noLabelMinWidth","_ref$pattern","pattern","_ref$autoFocus","autoFocus","onKeyPress","onFocus","onPaste","toggleTextInput","setToggleTextInput","inputBoxWrapperIcon","inputBoxWrapperType","VisibilityOffIcon","RemoveRedEyeIcon","errorInField","inputBoxContainer","helperText","inputRebase","headerContainer","labelHeadline","labelText","shown","setShown","readOnly","navigator","clipboard","writeText","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/2603.500676d6.chunk.js b/portal-ui/build/static/js/2603.500676d6.chunk.js
deleted file mode 100644
index 03588a218..000000000
--- a/portal-ui/build/static/js/2603.500676d6.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2603,4619],{94619:function(e,n,t){t.r(n);var i=t(29439),o=t(72791),r=t(56028),a=t(29945),s=t(31776),c=t(82342),l=t(23814),d=t(87995),u=t(81551),h=t(80184);n.default=function(e){var n=e.modalOpen,t=e.onClose,f=e.bucket,m=e.prefilledRoute,p=(0,u.TL)(),x=(0,o.useState)(""),b=(0,i.Z)(x,2),v=b[0],j=b[1],g=(0,o.useState)("readonly"),_=(0,i.Z)(g,2),S=_[0],C=_[1];(0,o.useEffect)((function(){m&&j(m)}),[m]);return(0,h.jsx)(r.Z,{modalOpen:n,title:"Add Anonymous Access Rule",onClose:t,titleIcon:(0,h.jsx)(a.sR0,{}),children:(0,h.jsxs)(a.ltY,{withBorders:!1,containerPadding:!1,children:[(0,h.jsx)(a.Wzg,{value:v,label:"Prefix",id:"prefix",name:"prefix",placeholder:"Enter Prefix",onChange:function(e){j(e.target.value)},tooltip:"Enter '/' to apply the rule to all prefixes and objects at the bucket root. Do not include the wildcard asterisk '*' as part of the prefix *unless* it is an explicit part of the prefix name. The Console automatically appends an asterisk to the appropriate sections of the resulting IAM policy."}),(0,h.jsx)(a.PhF,{id:"access",name:"Access",onChange:function(e){C(e)},label:"Access",value:S,options:[{label:"readonly",value:"readonly"},{label:"writeonly",value:"writeonly"},{label:"readwrite",value:"readwrite"}],disabled:!1}),(0,h.jsxs)(a.rjZ,{item:!0,xs:12,sx:l.ID.modalButtonBar,children:[(0,h.jsx)(a.zxk,{id:"clear",type:"button",variant:"regular",onClick:function(){j(""),C("readonly")},label:"Clear"}),(0,h.jsx)(a.zxk,{id:"add-access-save",type:"submit",variant:"callAction",disabled:""===v.trim(),onClick:function(){s.h.bucket.setAccessRuleWithBucket(f,{prefix:v,access:S}).then((function(e){p((0,d.y1)("Access Rule added successfully")),t()})).catch((function(e){p((0,d.Ih)((0,c.g)(e))),t()}))},label:"Save"})]})]})})}},32603:function(e,n,t){t.r(n),t.d(n,{default:function(){return Ln}});var i,o=t(1413),r=t(72791),a=t(78687),s=t(57689),c=t(11135),l=t(25787),d=t(81551),u=t(23814),h=t(93433),f=t(29439),m=t(43954),p=t(29945),x=t(99779),b=t(61889),v=t(26181),j=t.n(v),g=t(45248),_=t(63021),S=t(78029),C=t.n(S),Z=t(72455),w=t(11087),T=t(38442),y=t(56087),N=t(75578),F=t(87995),E=t(54756),O=function(e){return(e.match(/\.([^.]*?)(?=\?|#|$)/)||[])[1]},I=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=Object.keys(e).reduce((function(t,i){return O(i)&&i.includes(n)&&(t[i]=e[i]),t}),{});return Object.keys(i).filter((function(e){var o=i[e].some((function(e){return t.find((function(n){var t=!1;if(-1!==n.indexOf("*")){var i=n.substring(0,n.length-1);t=e.includes(i)}return t||e===n}))})),r=e.substring(0,e.indexOf("/*."))==="arn:aws:s3:::".concat(n);return o&&(r&&"arn:aws:s3:::*"!==e)}))},k=t(80184),L=(0,N.Z)(r.lazy((function(){return t.e(2185).then(t.bind(t,62185))}))),B=(0,Z.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({},u.cx),{},{slashSpacingStyle:{margin:"0 5px"}}))})),P=function(e){var n=e.bucketName,t=e.internalPaths,i=e.hidePathButton,o=e.additionalOptions,c=(0,d.TL)(),l=(0,s.s0)(),u=B(),m=(0,a.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),x=(0,a.v9)((function(e){return e.objectBrowser.versionsMode})),b=(0,a.v9)((function(e){return e.objectBrowser.versionedFile})),v=(0,a.v9)((function(e){return e.system.anonymousMode})),j=(0,r.useState)(!1),_=(0,f.Z)(j,2),S=_[0],Z=_[1],N=[y.Ft.S3_PUT_OBJECT,y.Ft.S3_PUT_ACTIONS],O=(0,a.v9)((function(e){return e.console.session&&e.console.session.permissions||{}})),P=t;""!==t&&(P="/".concat(t));var A=P.split("/").filter((function(e){return""!==e})),D=A.length-1,R=P||n,M=I(O,R,N),U=(0,T.F)([R].concat((0,h.Z)(M)),N)||v,z=A.map((function(e,t){var i="".concat(A.slice(0,t+1).join("/"),"/"),o="/browser/".concat(n,"/").concat(i?"".concat((0,g.LL)(i)):"");return t===D&&e===b?null:(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("span",{className:u.slashSpacingStyle,children:"/"}),t===D?(0,k.jsx)("span",{style:{cursor:"default",whiteSpace:"pre"},children:(0,g.eC)(e)}):(0,k.jsx)(w.rU,{style:{whiteSpace:"pre"},to:o,onClick:function(){c((0,E.db)({status:!1,objectName:""}))},children:(0,g.eC)(e)})]},"breadcrumbs-".concat(t.toString()))})),G=[];x&&(G=[(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)("span",{children:[(0,k.jsx)("span",{className:u.slashSpacingStyle,children:"/"}),b," - Versions"]})},"breadcrumbs-versionedItem")]);var W=[(0,k.jsx)(r.Fragment,{children:(0,k.jsx)(w.rU,{to:"/browser/".concat(n),onClick:function(){c((0,E.db)({status:!1,objectName:""}))},children:n})},"breadcrumbs-root-path")].concat((0,h.Z)(z),(0,h.Z)(G));return(0,k.jsxs)(r.Fragment,{children:[(0,k.jsxs)("div",{className:u.breadcrumbsMain,children:[S&&(0,k.jsx)(L,{modalOpen:S,bucketName:n,folderName:t,onClose:function(){Z(!1)}}),(0,k.jsx)(p.OoM,{sx:{whiteSpace:"pre"},goBackFunction:function(){if(x)c((0,E.db)({status:!1,objectName:""}));else{if(0===A.length)return void l("/browser");var e=A.slice(0,-1);l("/browser/".concat(n).concat(e.length>0?"/".concat((0,g.LL)("".concat(e.join("/"),"/"))):""))}},additionalOptions:(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(C(),{text:"".concat(n,"/").concat(A.join("/")),children:(0,k.jsx)(p.zxk,{id:"copy-path",icon:(0,k.jsx)(p.TIy,{style:{width:"12px",height:"12px",fill:"#969FA8",marginTop:-1}}),variant:"regular",onClick:function(){c((0,F.y1)("Path copied to clipboard"))},style:{width:"28px",height:"28px",color:"#969FA8",border:"#969FA8 1px solid",marginRight:5}})}),(0,k.jsx)("div",{className:u.additionalOptions,children:o})]}),children:W}),!i&&(0,k.jsx)(p.ua7,{tooltip:U?"Choose or create a new path":(0,y.MK)([y.Ft.S3_PUT_OBJECT,y.Ft.S3_PUT_ACTIONS],"create a new path"),children:(0,k.jsx)(p.zxk,{id:"new-path",onClick:function(){Z(!0)},disabled:!v&&(m||!U),icon:(0,k.jsx)(p.N$q,{style:{fill:"#969FA8"}}),style:{whiteSpace:"nowrap"},variant:"regular",label:"Create new path"})})]}),(0,k.jsx)("div",{className:u.breadcrumbsSecond,children:o})]})},A=t(47922),D=t(71715),R=t(77865),M=t(49900),U=t(57064),z=t(27454),G=(0,l.Z)((function(e){return(0,c.Z)({listUploadIcons:{height:20,"& .min-icon":{width:18,fill:"rgba(0,0,0,0.87)"}}})}))((function(e){var n=e.uploadPath,t=e.bucketName,i=e.forceDisable,o=void 0!==i&&i,s=e.uploadFileFunction,c=e.uploadFolderFunction,l=e.classes,d=e.overrideStyles,u=void 0===d?{}:d,m=(0,a.v9)((function(e){return e.system.anonymousMode})),x=(0,a.v9)((function(e){return e.console.session&&e.console.session.permissions||{}})),b=[y.Ft.S3_PUT_OBJECT,y.Ft.S3_PUT_ACTIONS],v=I(x,n,b),j=(0,r.useState)(null),g=(0,f.Z)(j,2),_=g[0],S=g[1],C=Boolean(_),Z=function(){S(null)},w=(0,T.F)([n].concat((0,h.Z)(v)),b)||m,N=(0,T.F)([t].concat((0,h.Z)(v)),b,!1,!0),F=w||N;return(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(z.Z,{tooltip:F?"Upload Files":(0,y.MK)([y.Ft.S3_PUT_OBJECT,y.Ft.S3_PUT_ACTIONS],"upload files to this bucket"),children:(0,k.jsx)(p.zxk,{id:"upload-main","aria-controls":"upload-main-menu","aria-haspopup":"true","aria-expanded":C?"true":void 0,onClick:function(e){S(e.currentTarget)},label:"Upload",icon:(0,k.jsx)(p.rG2,{}),variant:"callAction",disabled:o||!F,sx:u})}),(0,k.jsxs)(D.Z,{id:"upload-main-menu","aria-labelledby":"upload-main",anchorEl:_,open:C,onClose:function(){Z()},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[(0,k.jsxs)(R.Z,{onClick:function(){s(Z)},disabled:!w||o,children:[(0,k.jsx)(U.Z,{className:l.listUploadIcons,children:(0,k.jsx)(p.rG2,{})}),(0,k.jsx)(M.Z,{children:"Upload File"})]}),(0,k.jsxs)(R.Z,{onClick:function(){c(Z)},disabled:!N||o,children:[(0,k.jsx)(U.Z,{className:l.listUploadIcons,children:(0,k.jsx)(p.oXh,{})}),(0,k.jsx)(M.Z,{children:"Upload Folder"})]})]})]})})),W=(0,Z.Z)((function(e){return(0,c.Z)({detailsList:{borderColor:"#EAEDEE",borderWidth:0,borderStyle:"solid",borderRadius:3,borderBottomLeftRadius:0,borderBottomRightRadius:0,width:0,transitionDuration:"0.3s",overflowX:"hidden",overflowY:"auto",position:"relative",opacity:0,marginLeft:-1,"&.open":{width:300,minWidth:300,borderLeftWidth:1,opacity:1},"@media (max-width: 799px)":{"&.open":{width:"100%",minWidth:"100%",borderLeftWidth:0}}}})})),K=function(e){var n=e.open,t=e.closePanel,i=e.className,o=void 0===i?"":i,r=e.children,a=W();return(0,k.jsxs)(p.rjZ,{item:!0,className:"".concat(a.detailsList," ").concat(n?"open":""," ").concat(o),children:[(0,k.jsx)(p.zxk,{variant:"text",id:"close-details-list",onClick:t,icon:(0,k.jsx)(p.oto,{}),sx:{position:"absolute",right:5,top:18,padding:0,height:14,"&:hover:not(:disabled)":{backgroundColor:"transparent"}}}),r]})},H=t(64554),V=t(34433),J=[{value:"01",label:"January"},{value:"02",label:"February"},{value:"03",label:"March"},{value:"04",label:"April"},{value:"05",label:"May"},{value:"06",label:"June"},{value:"07",label:"July"},{value:"08",label:"August"},{value:"09",label:"September"},{value:"10",label:"October"},{value:"11",label:"November"},{value:"12",label:"December"}],Y=Array.from(Array(31),(function(e,n){return{value:(n+1).toString(),label:(n+1).toString()}})),q=(new Date).getFullYear(),$=Array.from(Array(50),(function(e,n){return{value:(n+q).toString(),label:(n+q).toString()}})),X=t(56028),Q=t(4942),ee=t(28182),ne=(0,r.forwardRef)((function(e,n){var t=e.classes,i=e.id,o=e.label,a=e.disableOptions,s=void 0!==a&&a,c=e.addSwitch,l=void 0!==c&&c,d=e.tooltip,u=void 0===d?"":d,m=e.borderBottom,x=void 0!==m&&m,b=e.onDateChange,v=e.value,j=void 0===v?"":v;(0,r.useImperativeHandle)(n,(function(){return{resetDate:A}}));var g=(0,r.useState)(!1),_=(0,f.Z)(g,2),S=_[0],C=_[1],Z=(0,r.useState)(""),w=(0,f.Z)(Z,2),T=w[0],y=w[1],N=(0,r.useState)(""),F=(0,f.Z)(N,2),E=F[0],O=F[1],I=(0,r.useState)(""),L=(0,f.Z)(I,2),B=L[0],P=L[1];(0,r.useEffect)((function(){if(""!==j){var e=j.split("-");P(e[0]),y(e[1]),O("".concat(parseInt(e[2])))}}),[j]),(0,r.useEffect)((function(){var e=function(e,n,t){var i=Date.parse("".concat(e,"-").concat(n,"-").concat(t));if(isNaN(i))return[!1,""];var o=parseInt(n),r=parseInt(t),a=o<10?"0".concat(o):o,s=r<10?"0".concat(r):r,c=new Date(i).toISOString().split("T")[0],l="".concat(e,"-").concat(a,"-").concat(s);return[c===l,l]}(B,T,E),n=(0,f.Z)(e,2),t=n[0],i=n[1];b(i,t)}),[T,E,B,b]);var A=function(){y(""),O(""),P("")},D=function(){return s||!!l&&!S},R=[{value:"",label:""}].concat((0,h.Z)(J)),M=[{value:"",label:""}].concat((0,h.Z)(Y)),U=[{value:"",label:""}].concat((0,h.Z)($));return(0,k.jsxs)(p.rjZ,{item:!0,xs:12,className:(0,ee.Z)(t.fieldContainer,(0,Q.Z)({},t.fieldContainerBorder,x)),children:[(0,k.jsx)("div",{className:t.labelContainer,children:(0,k.jsxs)(p.rjZ,{container:!0,children:[(0,k.jsxs)(p.AZs,{htmlFor:i,children:[(0,k.jsx)("span",{children:o}),""!==u&&(0,k.jsx)("div",{className:t.tooltipContainer,children:(0,k.jsx)(p.ua7,{tooltip:u,placement:"top",children:(0,k.jsx)("div",{className:t.tooltip,children:(0,k.jsx)(p.byK,{})})})})]}),l&&(0,k.jsx)(p.rsf,{indicatorLabels:["Specific Date","Default (7 Days)"],checked:S,value:"date_enabled",id:"date-status",name:"date-status",onChange:function(e){C(e.target.checked),e.target.checked||b("",!0)},switchOnly:!0})]})}),(0,k.jsxs)(p.xuv,{sx:{display:"flex",gap:12},children:[(0,k.jsx)(p.PhF,{id:"".concat(i,"-month"),name:"".concat(i,"-month"),value:T,onChange:function(e){y(e)},options:R,label:"",disabled:D()}),(0,k.jsx)(p.PhF,{id:"".concat(i,"-day"),name:"".concat(i,"-day"),value:E,onChange:function(e){O(e)},options:M,label:"",disabled:D()}),(0,k.jsx)(p.PhF,{id:"".concat(i,"-year"),name:"".concat(i,"-year"),value:B,onChange:function(e){P(e)},options:U,label:"",disabled:D()})]})]})})),te=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},u.YI),u.Hr),{},{fieldContainer:(0,o.Z)((0,o.Z)({},u.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6})}))}))(ne),ie=t(66315),oe=t(31776),re=t(82342),ae=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},u.DF),u.ID),u.bK))}))((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,o=e.objectName,s=e.objectInfo,c=e.bucketName,l=(0,d.TL)(),u=(0,a.v9)((function(e){return e.objectBrowser.retentionConfig})),h=(0,r.useState)(!0),m=(0,f.Z)(h,2),x=m[0],b=m[1],v=(0,r.useState)(""),j=(0,f.Z)(v,2),_=j[0],S=j[1],C=(0,r.useState)(""),Z=(0,f.Z)(C,2),w=Z[0],T=Z[1],y=(0,r.useState)(!1),N=(0,f.Z)(y,2),E=N[0],O=N[1],I=(0,r.useState)(!1),L=(0,f.Z)(I,2),B=L[0],P=L[1],A=(0,r.useState)(!1),D=(0,f.Z)(A,2),R=D[0],M=D[1];(0,r.useEffect)((function(){if(s.retention_mode&&(S((null===u||void 0===u?void 0:u.mode)||ie.oO.Governance),M(!0)),s.retention_until_date){var e=new Date(s.retention_until_date);if("Invalid Date"!==e.toString()){var n=e.getFullYear(),t=(o=e.getMonth()+1)<10?"0".concat(o):"".concat(o),i=e.getDate();isNaN(i)||"NaN"===t||isNaN(n)||T("".concat(n,"-").concat(t,"-").concat(i))}M(!0)}var o}),[s,null===u||void 0===u?void 0:u.mode]);var U=(0,r.useRef)(null),z=function(){b(!1),S(ie.oO.Governance),U.current&&U.current.resetDate()},G=R&&("governance"===_||""===_);return(0,k.jsxs)(X.Z,{title:"Set Retention Policy",modalOpen:t,onClose:function(){z(),i(!1)},children:[(0,k.jsxs)("div",{className:n.spacerBottom,children:[(0,k.jsx)("strong",{children:"Selected Object"}),": ",o]}),(0,k.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:[G&&(0,k.jsx)(p.rjZ,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(p.rsf,{value:"status",id:"status",name:"status",checked:x,onChange:function(e){b(!x)},label:"Status",indicatorLabels:["Enabled","Disabled"]})}),(0,k.jsx)(p.rjZ,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(p.Eep,{currentValue:_,id:"type",name:"type",label:"Type",disableOptions:!x||R&&""!==_,onChange:function(e){S(e.target.value)},selectorOptions:[{label:"Governance",value:ie.oO.Governance},{label:"Compliance",value:ie.oO.Compliance}]})}),(0,k.jsx)(p.rjZ,{item:!0,xs:12,className:"".concat(n.dateSelector," "),children:(0,k.jsx)(te,{id:"date",label:"Date",disableOptions:!(x&&("governance"===_||"compliance"===_)),ref:U,value:w,borderBottom:!0,onDateChange:function(e,n){O(n),n&&T(e)}})}),(0,k.jsxs)(p.rjZ,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,k.jsx)(p.zxk,{id:"reset",type:"button",variant:"regular",onClick:z,label:"Reset"}),(0,k.jsx)(p.zxk,{id:"save",type:"submit",variant:"callAction",disabled:x&&""===_||x&&!E||B,onClick:function(){P(!0);var e=s.name||"",n=s.version_id||null,t=x||"governance"!==_?"".concat(w,"T23:59:59Z"):"";x||"governance"!==_?function(e,n,t){oe.h.buckets.putObjectRetention(c,{prefix:(0,g.LL)(e),version_id:n||""},{expires:t,mode:_}).then((function(){P(!1),i(!0)})).catch((function(e){l((0,F.zb)((0,re.g)(e.error))),P(!1)}))}(e,n,t):function(e,n){oe.h.buckets.deleteObjectRetention(c,{prefix:(0,g.LL)(e),version_id:n||""}).then((function(){P(!1),i(!0)})).catch((function(e){l((0,F.zb)((0,re.g)(e.error))),P(!1)}))}(e,n)},label:"Save"})]})]})]})})),se=t(23508),ce=t(9505),le=function(e){return"Enabled"===e||"Suspended"===e},de=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,o=e.selectedObject,s=e.versioningInfo,c=e.selectedVersion,l=void 0===c?"":c,u=(0,d.TL)(),h=(0,ce.Z)((function(){return n(!0)}),(function(e){u((0,F.Ih)(e)),"Access Denied."===e.detailedError&&n(!0)})),m=(0,f.Z)(h,2),x=m[0],b=m[1],v=(0,r.useState)(!1),j=(0,f.Z)(v,2),_=j[0],S=j[1],C=(0,r.useState)(!1),Z=(0,f.Z)(C,2),w=Z[0],N=Z[1],E=(0,a.v9)((function(e){return e.objectBrowser.retentionConfig})),O=(0,T.F)([i],[y.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===E||void 0===E?void 0:E.mode);if(!o)return null;return(0,k.jsx)(se.Z,{title:"Delete Object",confirmText:"Delete",isOpen:t,titleIcon:(0,k.jsx)(p.NvT,{}),isLoading:x,onConfirm:function(){var e=(0,g.IO)(o).endsWith("/");b("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(o).concat(""!==l?"&version_id=".concat(l):"&recursive=".concat(e,"&all_versions=").concat(_)).concat(w?"&bypass=true":""))},onClose:function(){return n(!1)},confirmationContent:(0,k.jsxs)(r.Fragment,{children:["Are you sure you want to delete: ",(0,k.jsx)("br",{}),(0,k.jsx)("b",{children:(0,g.IO)(o)})," ",""!==l?(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),"Version ID:",(0,k.jsx)("br",{}),(0,k.jsx)("strong",{children:l})]}):"","? ",(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),le(null===s||void 0===s?void 0:s.status)&&""===l&&(0,k.jsx)(r.Fragment,{children:(0,k.jsx)(p.rsf,{label:"Delete All Versions",indicatorLabels:["Yes","No"],checked:_,value:"delete_versions",id:"delete-versions",name:"delete-versions",onChange:function(e){S(!_)},description:""})}),O&&(_||""!==l)&&(0,k.jsx)(r.Fragment,{children:(0,k.jsx)("div",{style:{marginTop:10},children:(0,k.jsx)(p.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:w,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:function(e){N(!w)},description:""})})}),_&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsxs)("div",{style:{marginTop:10,border:"#c83b51 1px solid",borderRadius:3,padding:5,backgroundColor:"#c83b5120",color:"#c83b51"},children:["This will remove the object as well as all of its versions,"," ",(0,k.jsx)("br",{}),"This action is irreversible."]}),(0,k.jsx)("br",{}),"Are you sure you want to continue?"]})]})})},ue=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},u.DF),u.ID),u.bK))}))((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,o=e.objectName,a=e.bucketName,s=e.actualInfo,c=(0,d.TL)(),l=(0,r.useState)(!1),u=(0,f.Z)(l,2),h=u[0],m=u[1],x=(0,r.useState)(!1),b=(0,f.Z)(x,2),v=b[0],_=b[1],S=s.version_id;(0,r.useEffect)((function(){var e=j()(s,"legal_hold_status","OFF");m("ON"===e)}),[s]);var C=function(){m(!1)};return(0,k.jsxs)(X.Z,{title:"Set Legal Hold",modalOpen:t,onClose:function(){C(),i(!1)},children:[(0,k.jsxs)(p.rjZ,{item:!0,xs:12,className:n.spacerBottom,children:["Object: ",a]}),(0,k.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),_(!0),oe.h.buckets.putObjectLegalHold(a,{prefix:(0,g.LL)(o),version_id:S||""},{status:h?ie.nY.Enabled:ie.nY.Disabled}).then((function(){_(!1),i(!0)})).catch((function(e){c((0,F.zb)((0,re.g)(e.error))),_(!1)}))}(e)},children:[(0,k.jsx)(p.rjZ,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(p.rsf,{value:"legalhold",id:"legalhold",name:"legalhold",checked:h,onChange:function(e){m(!h)},label:"Legal Hold Status",indicatorLabels:["Enabled","Disabled"],tooltip:"To enable this feature you need to enable versioning on the bucket before creation"})}),(0,k.jsxs)(p.rjZ,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,k.jsx)(p.zxk,{id:"clear",type:"button",variant:"regular",onClick:C,label:"Clear"}),(0,k.jsx)(p.zxk,{id:"save",type:"submit",variant:"callAction",disabled:v,label:" Save"})]})]})]})})),he=t(78562),fe=t(79836),me=t(53382),pe=t(35855),xe=t(53994),be=function(e){return Array.isArray(e)?e.map(g.eC).join(", "):(0,g.eC)(e)},ve=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({titleItem:{width:"35%"}},u.bK),u.$b))}))((function(e){var n=e.metaData,t=e.classes,i=e.linear,o=void 0!==i&&i,a=Object.keys(n);return o?(0,k.jsx)(r.Fragment,{children:a.map((function(e,i){var o=be(n[e]);return(0,k.jsxs)(H.Z,{className:t.metadataLinear,children:[(0,k.jsx)("strong",{children:e}),(0,k.jsx)("br",{}),o]},"box-meta-".concat(e,"-").concat(i.toString()))}))}):(0,k.jsxs)(b.ZP,{container:!0,children:[(0,k.jsx)(b.ZP,{item:!0,xs:12,sx:{marginTop:"25px",marginBottom:"5px"},children:(0,k.jsx)("h3",{style:{marginTop:"0",marginBottom:"0"},children:"Object Metadata"})}),(0,k.jsx)(b.ZP,{item:!0,xs:12,children:(0,k.jsx)(fe.Z,{className:t.table,"aria-label":"simple table",children:(0,k.jsx)(me.Z,{children:a.map((function(e,i){var o=be(n[e]);return(0,k.jsxs)(pe.Z,{children:[(0,k.jsx)(xe.Z,{component:"th",scope:"row",className:t.titleItem,children:e}),(0,k.jsx)(xe.Z,{align:"right",children:o})]},"tRow-".concat(i.toString()))}))})})})]})})),je=t(37762),ge=(0,l.Z)((function(e){return(0,c.Z)({fileName:{display:"flex",alignItems:"center","& .min-icon":{width:16,height:16,marginRight:4,minWidth:16,minHeight:16}},fileNameText:{whiteSpace:"pre",overflow:"hidden",textOverflow:"ellipsis"}})}))((function(e){var n=e.classes,t=e.icon,i=e.strings;return(0,k.jsxs)("div",{className:n.fileName,children:[t,(0,k.jsx)("span",{className:n.fileNameText,children:(0,g.e3)(i[i.length-1])})]})})),_e=[{icon:(0,k.jsx)(p.n9O,{}),extensions:["mp4","mov","avi","mpeg","mpg"]},{icon:(0,k.jsx)(p.mYf,{}),extensions:["mp3","m4a","aac"]},{icon:(0,k.jsx)(p.UU9,{}),extensions:["pdf"]},{icon:(0,k.jsx)(p.hjP,{}),extensions:["ppt","pptx"]},{icon:(0,k.jsx)(p.hz9,{}),extensions:["xls","xlsx"]},{icon:(0,k.jsx)(p.xDw,{}),extensions:["cer","crt","pem"]},{icon:(0,k.jsx)(p.jG9,{}),extensions:["html","xml","css","py","go","php","cpp","h","java"]},{icon:(0,k.jsx)(p.NqG,{}),extensions:["cfg","yaml"]},{icon:(0,k.jsx)(p.OkY,{}),extensions:["sql"]},{icon:(0,k.jsx)(p.ZAy,{}),extensions:["ttf","otf"]},{icon:(0,k.jsx)(p.p2x,{}),extensions:["doc","docx","txt","rtf"]},{icon:(0,k.jsx)(p.xhr,{}),extensions:["zip","rar","tar","gz"]},{icon:(0,k.jsx)(p.rtI,{}),extensions:["epub","mobi","azw","azw3"]},{icon:(0,k.jsx)(p.q$4,{}),extensions:["jpeg","jpg","gif","tiff","png","heic","dng"]}],Se=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=e,i=(0,k.jsx)(p.MoH,{});e.endsWith("/")&&(i=(0,k.jsx)(p.BI,{}),t=e.slice(0,-1));for(var o=e.toLowerCase(),r=0,a=_e;r svg":{marginRight:10}},tagsForLabel:{fontSize:16,margin:"20px 0 30px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",width:"100%"},currentTagsContainer:{fontSize:14,fontWeight:"normal"},noTagsForObject:{color:"#858585"},deleteTag:{color:"#C83B51",marginLeft:5}},u.DF),u.ID),u.bK))}))((function(e){var n,t=e.modalOpen,i=e.onCloseAndUpdate,s=e.bucketName,c=e.actualInfo,l=e.classes,u=(0,d.TL)(),h=(0,a.v9)(F.N5),m=(0,r.useState)(""),x=(0,f.Z)(m,2),v=x[0],_=x[1],S=(0,r.useState)(""),C=(0,f.Z)(S,2),Z=C[0],w=C[1],N=(0,r.useState)(!1),E=(0,f.Z)(N,2),O=E[0],I=E[1],L=(0,r.useState)(!1),B=(0,f.Z)(L,2),P=B[0],A=B[1],D=(0,r.useState)(""),R=(0,f.Z)(D,2),M=R[0],U=R[1],z=(0,r.useState)(""),G=(0,f.Z)(z,2),W=G[0],K=G[1],V=(0,g.LL)(c.name||""),J=c.tags,Y=Object.keys(J||{}),q=null===(n=c.name)||void 0===n?void 0:n.split("/"),$=(null===q||void 0===q?void 0:q.pop())||"",Q=function(e){return(0,k.jsxs)("div",{className:l.tagsForLabel,children:["Tag",e?"s":""," for: ",(0,k.jsx)("strong",{children:$})]})};return(0,k.jsx)(r.Fragment,{children:(0,k.jsx)(X.Z,{modalOpen:t,title:P?"Delete Tag":"Edit Tags",onClose:function(){i(!0)},titleIcon:P?(0,k.jsx)(p.dRf,{style:{fill:"#C83B51"}}):(0,k.jsx)(p.T0F,{}),children:P?(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)(b.ZP,{container:!0,children:[Q(!1),"Are you sure you want to delete the tag"," ",(0,k.jsxs)("b",{className:l.deleteTag,children:[M," : ",W]})," ","?",(0,k.jsxs)(b.ZP,{item:!0,xs:12,className:l.modalButtonBar,children:[(0,k.jsx)(p.zxk,{id:"cancel",type:"button",variant:"regular",onClick:function(){U(""),K(""),A(!1)},label:"Cancel"}),(0,k.jsx)(p.zxk,{type:"submit",variant:"secondary",onClick:function(){var e=(0,o.Z)({},J);delete e[M];var n=h?c.version_id||"":"null";oe.h.buckets.putObjectTags(s,{prefix:V,version_id:n},{tags:e}).then((function(){i(!0),I(!1)})).catch((function(e){u((0,F.zb)((0,re.g)(e.error))),I(!1)}))},id:"deleteTag",label:"Delete Tag"})]})]})}):(0,k.jsxs)(b.ZP,{container:!0,children:[(0,k.jsx)(T.s,{scopes:[y.Ft.S3_GET_OBJECT_TAGGING,y.Ft.S3_GET_ACTIONS],resource:s,children:(0,k.jsxs)(H.Z,{sx:{display:"flex",flexFlow:"column",width:"100%"},children:[Q(!0),(0,k.jsxs)("div",{className:l.currentTagsContainer,children:["Current Tags:",(0,k.jsx)("br",{}),0===Y.length?(0,k.jsx)("span",{className:l.noTagsForObject,children:"There are no tags for this object"}):(0,k.jsx)(r.Fragment,{}),(0,k.jsx)(H.Z,{sx:{marginTop:"5px",marginBottom:"15px"},children:Y.map((function(e,n){var t=j()(J,"".concat(e),"");return""!==t?(0,k.jsx)(T.s,{scopes:[y.Ft.S3_DELETE_OBJECT_TAGGING],resource:s,errorProps:{deleteIcon:null,onDelete:null},children:(0,k.jsx)(Ce.Z,{style:{textTransform:"none",marginRight:"5px",marginBottom:"5px"},size:"small",label:"".concat(e," : ").concat(t),color:"primary",deleteIcon:(0,k.jsx)(Ze.Z,{}),onDelete:function(){!function(e,n){U(e),K(n),A(!0)}(e,t)}})},"chip-".concat(n)):null}))})]})]})}),(0,k.jsx)(T.s,{scopes:[y.Ft.S3_PUT_OBJECT_TAGGING,y.Ft.S3_PUT_ACTIONS],resource:s,errorProps:{disabled:!0,onClick:null},children:(0,k.jsxs)(b.ZP,{container:!0,children:[(0,k.jsx)(p.NZf,{icon:(0,k.jsx)(p.OCT,{}),separator:!1,children:"Add New Tag"}),(0,k.jsx)(b.ZP,{item:!0,xs:12,className:l.formFieldRow,children:(0,k.jsx)(p.Wzg,{value:v,label:"Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter Tag Key",onChange:function(e){_(e.target.value)}})}),(0,k.jsx)(b.ZP,{item:!0,xs:12,className:l.formFieldRow,children:(0,k.jsx)(p.Wzg,{value:Z,label:"Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter Tag Label",onChange:function(e){w(e.target.value)}})}),(0,k.jsxs)(b.ZP,{item:!0,xs:12,className:l.modalButtonBar,children:[(0,k.jsx)(p.zxk,{id:"clear",type:"button",variant:"regular",color:"primary",onClick:function(){w(""),_("")},label:"Clear"}),(0,k.jsx)(p.zxk,{type:"submit",variant:"callAction",disabled:""===Z.trim()||""===v.trim()||O,onClick:function(){I(!0);var e={};e[v]=Z;var n=(0,o.Z)((0,o.Z)({},J),e),t=h?c.version_id||"":"null";oe.h.buckets.putObjectTags(s,{prefix:V,version_id:t},{tags:n}).then((function(){i(!0),I(!1)})).catch((function(e){u((0,F.zb)((0,re.g)(e.error))),I(!1)}))},id:"saveTag",label:"Save"})]})]})})]})})})})),Te=t(74165),ye=t(15861),Ne=t(51691),Fe=t(73669),Ee=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},u.DF),u.ID),u.bK))}))((function(e){var n=e.classes,t=e.closeInspectModalAndRefresh,i=e.inspectOpen,o=e.inspectPath,a=e.volumeName,s=(0,d.TL)(),c=function(){return t(!1)},l=(0,r.useState)(!0),u=(0,f.Z)(l,2),h=u[0],m=u[1],x=(0,r.useState)(""),b=(0,f.Z)(x,2),v=b[0],j=b[1],_=(0,r.useState)(""),S=(0,f.Z)(_,2),C=S[0],Z=S[1];if(!o)return null;var w=function(){var e=(0,ye.Z)((0,Te.Z)().mark((function e(n){return(0,Te.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(n,{method:"GET"});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),T=function(){var e=(0,ye.Z)((0,Te.Z)().mark((function e(){var n,t,i;return(0,Te.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=(0,g.LL)(o+"/xl.meta"),t=(0,g.LL)(a),i="/api/v1/admin/inspect?volume=".concat(t,"&file=").concat(n,"&encrypt=").concat(h),w(i).then(function(){var e=(0,ye.Z)((0,Te.Z)().mark((function e(n){var t,i,o,r;return(0,Te.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.ok){e.next=5;break}return e.next=3,n.json();case 3:t=e.sent,s((0,F.Ih)({errorMessage:t.message,detailedError:t.code}));case 5:return e.next=7,n.blob();case 7:if(i=e.sent,o=n.headers.get("content-disposition").split('"')[1],r=(0,g.Do)(o)||"",(0,g.zZ)(i,o),Z(o),""!==r){e.next=15;break}return c(),e.abrupt("return");case 15:j(r);case 16:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()).catch((function(e){s((0,F.Ih)(e))}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,k.jsxs)(r.Fragment,{children:[!v&&(0,k.jsx)(X.Z,{modalOpen:i,titleIcon:(0,k.jsx)(p.Gp8,{}),title:"Inspect Object",onClose:c,children:(0,k.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:["Would you like to encrypt ",(0,k.jsx)("b",{children:(0,g.IO)(o)}),"?"," ",(0,k.jsx)("br",{}),(0,k.jsx)(p.rsf,{label:"Encrypt",indicatorLabels:["Yes","No"],checked:h,value:"encrypt",id:"encrypt",name:"encrypt",onChange:function(e){m(!h)},description:""}),(0,k.jsx)(p.rjZ,{item:!0,xs:12,className:n.modalButtonBar,children:(0,k.jsx)(p.zxk,{id:"inspect",type:"submit",variant:"callAction",color:"primary",onClick:T,label:"Inspect"})})]})}),v?(0,k.jsx)(X.Z,{modalOpen:i,title:"Inspect Decryption Key",onClose:function(){(0,g.kT)(C),c(),j("")},titleIcon:(0,k.jsx)(p.tvm,{}),children:(0,k.jsxs)(Ne.Z,{children:[(0,k.jsxs)(p.xuv,{children:["This will be displayed only once. It cannot be recovered.",(0,k.jsx)("br",{}),"Use secure medium to share this key."]}),(0,k.jsx)(p.xuv,{children:(0,k.jsx)(Fe.Z,{value:v})})]})}):null]})})),Oe=t(21435),Ie=t(81159),ke=t(76610),Le=function(e,n,t,i){var o,r=(0,g.LL)("".concat(n,"-").concat(i.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),a=(0,g.mv)().toLowerCase().includes("win");if(((null===(o=i.name)||void 0===o?void 0:o.length)||0)>200&&a)e((0,E.Hg)(!0));else{var s=(0,ke.YO)(8),c=(0,A.LR)(n,t,i.version_id,i.size||0,null,s,(function(n){e((0,E.RO)({instanceID:r,progress:n}))}),(function(){e((0,E.oK)(r))}),(function(n){e((0,E.qJ)({instanceID:r,msg:n}))}),(function(){e((0,E.Im)(r))}),(function(){e((0,F.y1)("File download will be handled directly by the browser."))}));(0,ke.EN)(s,c),e((0,E.Mc)({ID:s,bucketName:n,done:!1,instanceID:r,percentage:0,prefix:i.name||"",type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))}},Be=(0,Z.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},u.ID),u.DF),u.bK),u.Bz))})),Pe=function(e){var n=e.open,t=e.closeModal,i=e.currentItem,o=e.internalPaths,a=e.actualInfo,s=e.bucketName,c=Be(),l=(0,d.TL)(),u=(0,r.useState)(i),h=(0,f.Z)(u,2),m=h[0],x=h[1],v=(0,r.useState)(!1),j=(0,f.Z)(v,2),g=j[0],_=j[1];return(0,k.jsxs)(X.Z,{title:"Rename Download",modalOpen:n,onClose:t,titleIcon:(0,k.jsx)(p.dY8,{}),children:[(0,k.jsxs)("div",{children:["The file you are trying to download has a long name.",(0,k.jsx)("br",{}),"This can cause issues on Windows Systems by trimming the file name after download.",(0,k.jsx)("br",{}),(0,k.jsx)("br",{})," We recommend to rename the file download"]}),(0,k.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),Le(l,s,o,a),t()}(e)},children:(0,k.jsxs)(b.ZP,{container:!0,children:[(0,k.jsxs)(b.ZP,{item:!0,xs:12,className:c.modalFormScrollable,children:[(0,k.jsx)(b.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,k.jsx)(Oe.Z,{id:"download-filename",name:"download-filename",onChange:function(e){x(e.target.value)},label:"",type:"text",value:m,error:m.length>200&&!g?"Filename should be less than 200 characters long.":""})}),(0,k.jsx)(b.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,k.jsx)(Ie.Z,{value:"acceptLongName",id:"acceptLongName",name:"acceptLongName",checked:g,onChange:function(e){_(e.target.checked),e.target.checked&&x(i)},label:"Use Original Name"})})]}),(0,k.jsx)(b.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:(0,k.jsx)(p.zxk,{id:"download-file",type:"submit",variant:"callAction",color:"primary",disabled:m.length>200&&!g,label:"Download File"})})]})})]})},Ae={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:0,tags:{},version_id:void 0},De=(0,l.Z)((function(){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({ObjectDetailsTitle:{display:"flex",alignItems:"center","& .min-icon":{width:26,height:26,minWidth:26,minHeight:26}},objectNameContainer:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",alignItems:"center",marginLeft:10},capitalizeFirst:{textTransform:"capitalize"}},u.OR),u.bK),u.VI),u.$b))}))((function(e){var n=e.classes,t=e.internalPaths,i=e.bucketName,o=e.versioningInfo,s=e.locking,c=e.onClosePanel,l=(0,d.TL)(),u=(0,a.v9)(F.N5),h=(0,a.v9)((function(e){return e.objectBrowser.versionsMode})),m=(0,a.v9)((function(e){return e.objectBrowser.selectedVersion})),x=(0,a.v9)((function(e){return e.objectBrowser.loadingObjectInfo})),v=(0,r.useState)(!1),_=(0,f.Z)(v,2),S=_[0],C=_[1],Z=(0,r.useState)(!1),w=(0,f.Z)(Z,2),N=w[0],O=w[1],I=(0,r.useState)(!1),L=(0,f.Z)(I,2),B=L[0],P=L[1],D=(0,r.useState)(!1),R=(0,f.Z)(D,2),M=R[0],U=R[1],G=(0,r.useState)(!1),W=(0,f.Z)(G,2),K=W[0],J=W[1],Y=(0,r.useState)(null),q=(0,f.Z)(Y,2),$=q[0],X=q[1],Q=(0,r.useState)([]),ee=(0,f.Z)(Q,2),ne=ee[0],te=ee[1],ie=(0,r.useState)(null),re=(0,f.Z)(ie,2),se=re[0],ce=re[1],le=(0,r.useState)([]),fe=(0,f.Z)(le,2),me=fe[0],pe=fe[1],xe=(0,r.useState)(!1),be=(0,f.Z)(xe,2),je=be[0],ge=be[1],_e=(0,r.useState)(!1),Ce=(0,f.Z)(_e,2),Ze=Ce[0],Te=Ce[1],ye=(0,r.useState)(0),Ne=(0,f.Z)(ye,2),Fe=Ne[0],Oe=Ne[1],Ie=(0,r.useState)(!1),ke=(0,f.Z)(Ie,2),Be=ke[0],De=ke[1],Re=(0,r.useState)(null),Me=(0,f.Z)(Re,2),Ue=Me[0],ze=Me[1],Ge=(0,r.useState)(!1),We=(0,f.Z)(Ge,2),Ke=We[0],He=We[1],Ve=((0,g.IO)(t)||"").split("/").pop()||"",Je=[];$&&$.name&&(Je=$.name.split("/")),(0,r.useEffect)((function(){if(u&&ne&&ne.length>=1){var e=ne.find((function(e){return e.is_latest}))||Ae;""!==m&&(e=ne.find((function(e){return e.version_id===m}))||Ae),e.is_delete_marker||He(!0),X(e)}}),[m,u,ne]),(0,r.useEffect)((function(){x&&""!==t&&oe.h.buckets.listObjects(i,{prefix:t,with_versions:u}).then((function(e){var n=e.data.objects||[];if(u){te(n),pe(n);var t=n.reduce((function(e,n){return null!==n&&void 0!==n&&n.size?e+n.size:e}),0);Oe(t)}else{var i=n[0];X(i),pe([]),i.is_delete_marker||He(!0)}l((0,E.vH)(!1))})).catch((function(e){console.error("Error loading object details",e.error),l((0,E.vH)(!1))}))}),[x,i,t,l,u,m]),(0,r.useEffect)((function(){Ke&&""!==t&&oe.h.buckets.getObjectMetadata(i,{prefix:t}).then((function(e){var n=j()(e.data,"objectMetadata",{});ze(n),He(!1)})).catch((function(e){console.error("Error Getting Metadata Status: ",e.detailedError),He(!1)}))}),[i,t,Ke]);var Ye=[];$&&$.tags&&(Ye=Object.keys($.tags));var qe=(0,k.jsx)("div",{style:{textAlign:"center",marginTop:35},children:(0,k.jsx)(p.aNw,{})});if(!$)return x?qe:null;var $e=Je.length>0?Je[Je.length-1]:$.name,Xe=[i,Ve,[i,$.name].join("/")],Qe=(0,T.F)(i,[y.Ft.S3_PUT_OBJECT_LEGAL_HOLD,y.Ft.S3_PUT_ACTIONS]),en=(0,T.F)(Xe,[y.Ft.S3_PUT_OBJECT_TAGGING,y.Ft.S3_PUT_ACTIONS]),nn=(0,T.F)(Xe,[y.Ft.S3_GET_OBJECT_RETENTION,y.Ft.S3_PUT_OBJECT_RETENTION,y.Ft.S3_GET_ACTIONS,y.Ft.S3_PUT_ACTIONS],!0),tn=(0,T.F)(Xe,[y.Ft.ADMIN_INSPECT_DATA]),on=(0,T.F)(Xe,[y.Ft.S3_GET_BUCKET_VERSIONING,y.Ft.S3_PUT_BUCKET_VERSIONING,y.Ft.S3_GET_OBJECT_VERSION,y.Ft.S3_GET_ACTIONS,y.Ft.S3_PUT_ACTIONS]),rn=(0,T.F)(Xe,[y.Ft.S3_GET_OBJECT,y.Ft.S3_GET_ACTIONS]),an=(0,T.F)([i,Ve,[i,$.name].join("/")],[y.Ft.S3_DELETE_OBJECT]),sn=(0,A.s7)(Ue,Ve),cn=[{action:function(){Le(l,i,t,$)},label:"Download",disabled:!!$.is_delete_marker||!rn,icon:(0,k.jsx)(p._8t,{}),tooltip:rn?"Download this Object":(0,y.MK)([y.Ft.S3_GET_OBJECT,y.Ft.S3_GET_ACTIONS],"download this object")},{action:function(){C(!0)},label:"Share",disabled:!!$.is_delete_marker||!rn,icon:(0,k.jsx)(p.aAc,{}),tooltip:rn?"Share this File":(0,y.MK)([y.Ft.S3_GET_OBJECT,y.Ft.S3_GET_ACTIONS],"share this object")},{action:function(){Te(!0)},label:"Preview",disabled:!!$.is_delete_marker||"none"===sn&&!rn,icon:(0,k.jsx)(p.P99,{}),tooltip:rn?"Preview this File":(0,y.MK)([y.Ft.S3_GET_OBJECT,y.Ft.S3_GET_ACTIONS],"preview this object")},{action:function(){U(!0)},label:"Legal Hold",disabled:!s||!u||!!$.is_delete_marker||!Qe||""!==m,icon:(0,k.jsx)(p.fNL,{}),tooltip:Qe?s?"Change Legal Hold rules for this File":"Object Locking must be enabled on this bucket in order to set Legal Hold":(0,y.MK)([y.Ft.S3_PUT_OBJECT_LEGAL_HOLD,y.Ft.S3_PUT_ACTIONS],"change legal hold settings for this object")},{action:function(){O(!0)},label:"Retention",disabled:!u||!!$.is_delete_marker||!nn||""!==m||!s,icon:(0,k.jsx)(p.E9d,{}),tooltip:nn?s?"Change Retention rules for this File":"Object Locking must be enabled on this bucket in order to set Retention Rules":(0,y.MK)([y.Ft.S3_GET_OBJECT_RETENTION,y.Ft.S3_PUT_OBJECT_RETENTION,y.Ft.S3_GET_ACTIONS,y.Ft.S3_PUT_ACTIONS],"change Retention Rules for this object")},{action:function(){P(!0)},label:"Tags",disabled:!!$.is_delete_marker||""!==m||!en,icon:(0,k.jsx)(p.DgT,{}),tooltip:en?"Change Tags for this File":(0,y.MK)([y.Ft.S3_PUT_OBJECT_TAGGING,y.Ft.S3_GET_OBJECT_TAGGING,y.Ft.S3_GET_ACTIONS,y.Ft.S3_PUT_ACTIONS],"set Tags on this object")},{action:function(){J(!0)},label:"Inspect",disabled:!u||!!$.is_delete_marker||""!==m||!tn,icon:(0,k.jsx)(p.Gp8,{}),tooltip:tn?"Inspect this file":(0,y.MK)([y.Ft.ADMIN_INSPECT_DATA],"inspect this file")},{action:function(){l((0,E.db)({status:!h,objectName:$e}))},label:h?"Hide Object Versions":"Display Object Versions",icon:(0,k.jsx)(p.cRd,{}),disabled:!u||!($.version_id&&"null"!==$.version_id)||!on,tooltip:on?$.version_id&&"null"!==$.version_id?"Display Versions for this file":"":(0,y.MK)([y.Ft.S3_GET_BUCKET_VERSIONING,y.Ft.S3_PUT_BUCKET_VERSIONING,y.Ft.S3_GET_OBJECT_VERSION,y.Ft.S3_GET_ACTIONS,y.Ft.S3_PUT_ACTIONS],"display all versions of this object")}];return(0,k.jsxs)(r.Fragment,{children:[S&&$&&(0,k.jsx)(V.default,{open:S,closeModalAndRefresh:function(){ce(null),C(!1)},bucketName:i,dataObject:se||$}),N&&$&&(0,k.jsx)(ae,{open:N,closeModalAndRefresh:function(e){O(!1),e&&l((0,E.vH)(!0))},objectName:Ve,objectInfo:$,bucketName:i}),je&&(0,k.jsx)(de,{deleteOpen:je,selectedBucket:i,selectedObject:t,closeDeleteModalAndRefresh:function(e){ge(!1),e&&""===m?c(!0):(l((0,E.Eq)(!0)),l((0,E.M3)("")),l((0,E.vH)(!0)))},versioningInfo:u?o:void 0,selectedVersion:m}),M&&$&&(0,k.jsx)(ue,{open:M,closeModalAndRefresh:function(e){U(!1),e&&l((0,E.vH)(!0))},objectName:$.name||"",bucketName:i,actualInfo:$}),Ze&&$&&(0,k.jsx)(he.default,{open:Ze,bucketName:i,object:{name:$.name||"",version_id:$.version_id||"null",size:$.size||0,content_type:"",last_modified:$.last_modified||""},onClosePreview:function(){Te(!1)}}),B&&$&&(0,k.jsx)(we,{modalOpen:B,bucketName:i,actualInfo:$,onCloseAndUpdate:function(e){P(!1),e&&l((0,E.vH)(!0))}}),K&&$&&(0,k.jsx)(Ee,{inspectOpen:K,volumeName:i,inspectPath:$.name||"",closeInspectModalAndRefresh:function(e){J(!1),e&&l((0,E.vH)(!0))}}),Be&&$&&(0,k.jsx)(Pe,{open:Be,closeModal:function(){De(!1)},currentItem:Ve,bucketName:i,internalPaths:t,actualInfo:$}),x?(0,k.jsx)(r.Fragment,{children:qe}):(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(p.Wk,{title:(0,k.jsxs)("div",{className:n.ObjectDetailsTitle,children:[Se($e||"",!0),(0,k.jsx)("span",{className:n.objectNameContainer,children:$e})]}),items:cn}),(0,k.jsx)(z.Z,{tooltip:an?"":(0,y.MK)([y.Ft.S3_DELETE_OBJECT],"delete this object"),children:(0,k.jsx)(b.ZP,{item:!0,xs:12,sx:{justifyContent:"center",display:"flex"},children:(0,k.jsx)(T.s,{resource:[i,Ve,[i,$.name].join("/")],scopes:[y.Ft.S3_DELETE_OBJECT],errorProps:{disabled:!0},children:(0,k.jsx)(p.zxk,{id:"delete-element-click",icon:(0,k.jsx)(p.pJl,{}),iconLocation:"start",fullWidth:!0,variant:"secondary",onClick:function(){ge(!0)},disabled:""===m&&$.is_delete_marker,sx:{width:"calc(100% - 44px)",margin:"8px 0"},label:"Delete".concat(""!==m?" version":"")})})})}),(0,k.jsx)(p.AG2,{icon:(0,k.jsx)(p.Gvh,{}),label:"Object Info"}),(0,k.jsxs)(H.Z,{className:n.detailContainer,children:[(0,k.jsx)("strong",{children:"Name:"}),(0,k.jsx)("br",{}),(0,k.jsx)("div",{style:{overflowWrap:"break-word"},children:$e})]}),""!==m&&(0,k.jsxs)(H.Z,{className:n.detailContainer,children:[(0,k.jsx)("strong",{children:"Version ID:"}),(0,k.jsx)("br",{}),m]}),(0,k.jsxs)(H.Z,{className:n.detailContainer,children:[(0,k.jsx)("strong",{children:"Size:"}),(0,k.jsx)("br",{}),(0,g.ae)("".concat($.size||"0"))]}),$.version_id&&"null"!==$.version_id&&""===m&&(0,k.jsxs)(H.Z,{className:n.detailContainer,children:[(0,k.jsx)("strong",{children:"Versions:"}),(0,k.jsx)("br",{}),me.length," version",1!==me.length?"s":"",","," ",(0,g.l5)(Fe)]}),""===m&&(0,k.jsxs)(H.Z,{className:n.detailContainer,children:[(0,k.jsx)("strong",{children:"Last Modified:"}),(0,k.jsx)("br",{}),function(e){var n=new Date,t=new Date(e),i=n.getTime()-t.getTime(),o=(0,g.nF)(i,"ms");return""!==o.trim()?"".concat(o," ago"):"Just now"}($.last_modified||"")]}),(0,k.jsxs)(H.Z,{className:n.detailContainer,children:[(0,k.jsx)("strong",{children:"ETAG:"}),(0,k.jsx)("br",{}),$.etag||"N/A"]}),(0,k.jsxs)(H.Z,{className:n.detailContainer,children:[(0,k.jsx)("strong",{children:"Tags:"}),(0,k.jsx)("br",{}),0===Ye.length?"N/A":Ye.map((function(e,n){return(0,k.jsxs)("span",{children:[e,":",j()($,"tags.".concat(e),""),n div":{borderBottomColor:j()(n,"boxBackground","#F8F8F8")}}},"& .versionContainer":{fontSize:16,fontWeight:"bold",display:"flex",alignItems:"center","& svg.min-icon":{width:18,height:18,minWidth:18,minHeight:18,marginRight:10}},"& .buttonContainer":{textAlign:"right","& button":{marginLeft:"1.5rem"}},"& .versionID":{fontSize:"12px",margin:"2px 0",whiteSpace:"nowrap",textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden"},"& .versionData":{marginRight:"10px",fontSize:12,color:"#868686"},"@media (max-width: 600px)":{"& .buttonContainer":{"& button":{marginLeft:"5px"}}},"@media (max-width: 799px)":{"&:before":{display:"none"},"& .mainFileVersionItem":{padding:"5px 0px",margin:0},"& .intermediateLayer":{margin:0,"&:hover, &.selected":{backgroundColor:"transparent","& > div":{borderBottomColor:j()(n,"boxBackground","#F8F8F8")}}},"& .versionContainer":{fontSize:14,"& svg.min-icon":{display:"none"}},"& .versionData":{textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden",whiteSpace:"nowrap"},"& .collapsableInfo":{display:"flex",flexDirection:"column"},"& .versionItem":{display:"none"}}}})),Ke=function(e){var n=e.fileName,t=e.versionInfo,i=e.isSelected,o=e.checkable,r=e.isChecked,a=e.onCheck,s=e.onShare,c=e.onDownload,l=e.onRestore,d=e.onPreview,u=e.globalClick,h=e.index,f=e.key,m=e.style,b=t.is_delete_marker,v=[{icon:(0,k.jsx)(p.P99,{}),action:d,tooltip:"Preview"},{icon:(0,k.jsx)(p._8t,{}),action:c,tooltip:"Download this version"},{icon:(0,k.jsx)(p.aAc,{}),action:s,tooltip:"Share this version"},{icon:(0,k.jsx)(p.D7Y,{}),action:l,tooltip:"Restore this version"}],j=null;t.is_delete_marker?j="deleted":t.is_latest?j="current":"null"===t.version_id&&(j="null");var _=x.ou.now();return t.last_modified&&(_=x.ou.fromISO(t.last_modified)),(0,k.jsx)(We,{children:(0,k.jsx)(p.rjZ,{container:!0,className:"ctrItem",onClick:function(){u(t)},style:m,children:(0,k.jsx)(p.rjZ,{item:!0,xs:12,className:"intermediateLayer".concat(" ",i?"selected":""),children:(0,k.jsxs)(p.rjZ,{item:!0,xs:!0,className:"mainFileVersionItem ".concat(t.is_delete_marker?"deleted":""),children:[(0,k.jsx)(p.rjZ,{item:!0,xs:12,children:(0,k.jsxs)(p.rjZ,{container:!0,children:[(0,k.jsxs)(p.rjZ,{item:!0,xs:!0,md:4,className:"versionContainer",children:[o&&(0,k.jsx)(Ge.Z,{checked:r,id:"select-".concat(t.version_id),label:"",name:"select-".concat(t.version_id),onChange:function(e){e.stopPropagation(),e.preventDefault(),a(t.version_id||"")},value:t.version_id||"",disabled:t.is_delete_marker,overrideCheckboxStyles:{paddingLeft:0,height:34,width:25},noTopMargin:!0}),Se(n,!0)," v",h.toString(),(0,k.jsx)("span",{className:"versionItem",children:j&&(0,k.jsx)(ze,{type:j})})]}),(0,k.jsx)(p.rjZ,{item:!0,xs:10,md:8,className:"buttonContainer",children:v.map((function(e,n){return(0,k.jsx)(p.ua7,{tooltip:e.tooltip,children:(0,k.jsx)(p.hU,{size:"small",id:"version-action-".concat(e.tooltip,"-").concat(n.toString()),className:"spacing".concat(" ",b?"buttonDisabled":""),disabled:b,onClick:function(n){n.stopPropagation(),b?n.preventDefault():e.action(t)},sx:{backgroundColor:"#F8F8F8",borderRadius:"100%",width:"28px",height:"28px",padding:"5px","& .min-icon":{width:"14px",height:"14px"}},children:e.icon})},"version-action-".concat(e.tooltip,"-").concat(n.toString()))}))})]})}),(0,k.jsx)(p.rjZ,{item:!0,xs:12,className:"versionID",children:"null"!==t.version_id?t.version_id:"-"}),(0,k.jsxs)(p.rjZ,{item:!0,xs:12,className:"collapsableInfo",children:[(0,k.jsxs)("span",{className:"versionData",children:[(0,k.jsx)("strong",{children:"Last modified:"})," ",_.toFormat("ccc, LLL dd yyyy HH:mm:ss (ZZZZ)")]}),(0,k.jsxs)("span",{className:"versionData",children:[(0,k.jsx)("strong",{children:"Size:"})," ",(0,g.ae)("".concat(t.size||"0"))]})]})]})})},f)})},He=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,o=e.selectedObject,s=(0,d.TL)(),c=(0,r.useState)(!1),l=(0,f.Z)(c,2),u=l[0],h=l[1],m=(0,r.useState)(""),x=(0,f.Z)(m,2),b=x[0],v=x[1],j=(0,r.useState)(!1),_=(0,f.Z)(j,2),S=_[0],C=_[1],Z=(0,a.v9)((function(e){return e.objectBrowser.retentionConfig})),w=(0,T.F)([i],[y.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===Z||void 0===Z?void 0:Z.mode);if((0,r.useEffect)((function(){u&&oe.h.buckets.deleteObject(i,{path:o,non_current_versions:!0,bypass:S}).then((function(){n(!0)})).catch((function(e){s((0,F.Ih)((0,re.g)(e.error))),h(!1)}))}),[u,n,s,o,i,S]),!o)return null;return(0,k.jsx)(se.Z,{title:"Delete Non-Current versions",confirmText:"Delete",isOpen:t,titleIcon:(0,k.jsx)(p.NvT,{}),isLoading:u,onConfirm:function(){h(!0)},onClose:function(){return n(!1)},confirmButtonProps:{disabled:"YES, PROCEED"!==b||u},confirmationContent:(0,k.jsxs)(r.Fragment,{children:["Are you sure you want to delete all the non-current versions for:"," ",(0,k.jsx)("b",{children:(0,g.IO)(o)}),"? ",(0,k.jsx)("br",{}),w&&(0,k.jsx)(r.Fragment,{children:(0,k.jsx)("div",{style:{marginTop:10},children:(0,k.jsx)(p.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:S,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:function(e){C(!S)},description:""})})}),(0,k.jsx)("br",{}),"To continue please type ",(0,k.jsx)("b",{children:"YES, PROCEED"})," in the box.",(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),(0,k.jsx)(p.rjZ,{item:!0,xs:12,children:(0,k.jsx)(p.Wzg,{id:"type-confirm",name:"retype-tenant",onChange:function(e){v(e.target.value)},label:"",value:b})})]})})},Ve=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,o=e.selectedVersions,s=e.selectedObject,c=(0,d.TL)(),l=(0,r.useState)(!1),u=(0,f.Z)(l,2),h=u[0],m=u[1],x=(0,r.useState)(!1),b=(0,f.Z)(x,2),v=b[0],j=b[1],g=(0,a.v9)((function(e){return e.objectBrowser.retentionConfig})),_=(0,T.F)([i],[y.Ft.S3_BYPASS_GOVERNANCE_RETENTION])&&"governance"===(null===g||void 0===g?void 0:g.mode);return(0,r.useEffect)((function(){if(h){var e=o.map((function(e){return{path:s,versionID:e,recursive:!1}}));e.length>0&&oe.h.buckets.deleteMultipleObjects(i,e,{all_versions:!1,bypass:v}).then((function(){m(!1),n(!0)})).catch((function(e){c((0,F.Ih)((0,re.g)(e.error))),m(!1)}))}}),[h,n,i,s,o,v,c]),o?(0,k.jsx)(se.Z,{title:"Delete Selected Versions",confirmText:"Delete",isOpen:t,titleIcon:(0,k.jsx)(p.NvT,{}),isLoading:h,onConfirm:function(){m(!0)},onClose:function(){return n(!1)},confirmationContent:(0,k.jsxs)(r.Fragment,{children:["Are you sure you want to delete the selected ",o.length," ","versions for ",(0,k.jsx)("strong",{children:s}),"?",_&&(0,k.jsx)(r.Fragment,{children:(0,k.jsx)("div",{style:{marginTop:10},children:(0,k.jsx)(p.rsf,{label:"Bypass Governance Mode",indicatorLabels:["Yes","No"],checked:v,value:"bypass_governance",id:"bypass_governance",name:"bypass_governance",onChange:function(e){j(!v)},description:""})})})]})}):null},Je=t(5171),Ye={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:0,tags:{},version_id:void 0},qe=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({versionsContainer:{padding:10,"@media (max-width: 799px)":{minHeight:800}},noBottomBorder:{borderBottom:0},versionsVirtualPanel:{flexGrow:1,height:"calc(100% - 120px)",overflow:"auto","@media (max-width: 799px)":{height:600}},screenTitleContainer:{position:"relative","@media (max-width: 799px)":{"&::before":{display:"none"}}},sortByLabel:{color:"#838383",fontWeight:"bold",whiteSpace:"nowrap",marginRight:12,fontSize:14,"@media (max-width: 600px)":{display:"none"}}},u.OR),u.VX),u.bK),u.VI),u.cx),u.C4),u.Bz))}))((function(e){var n=e.classes,t=e.internalPaths,i=e.bucketName,o=(0,d.TL)(),s=(0,a.v9)((function(e){return e.objectBrowser.searchVersions})),c=(0,a.v9)((function(e){return e.objectBrowser.loadingVersions})),l=(0,a.v9)((function(e){return e.objectBrowser.selectedVersion})),u=(0,a.v9)(F.N5),m=(0,r.useState)(!1),x=(0,f.Z)(m,2),v=x[0],_=x[1],S=(0,r.useState)(null),C=(0,f.Z)(S,2),Z=C[0],w=C[1],T=(0,r.useState)(null),y=(0,f.Z)(T,2),N=y[0],O=y[1],I=(0,r.useState)([]),L=(0,f.Z)(I,2),B=L[0],A=L[1],D=(0,r.useState)(!1),R=(0,f.Z)(D,2),M=R[0],U=R[1],G=(0,r.useState)(null),W=(0,f.Z)(G,2),K=W[0],H=W[1],J=(0,r.useState)("date"),Y=(0,f.Z)(J,2),q=Y[0],$=Y[1],X=(0,r.useState)(!1),Q=(0,f.Z)(X,2),ee=Q[0],ne=Q[1],te=(0,r.useState)(!1),ie=(0,f.Z)(te,2),ae=ie[0],se=ie[1],ce=(0,r.useState)(!1),le=(0,f.Z)(ce,2),de=le[0],ue=le[1],fe=(0,r.useState)([]),me=(0,f.Z)(fe,2),pe=me[0],xe=me[1],be=(0,r.useState)(!1),ve=(0,f.Z)(be,2),je=ve[0],ge=ve[1],_e=[];Z&&Z.name&&(_e=Z.name.split("/")),(0,r.useEffect)((function(){c||Z||o((0,E.Eq)(!0))}),[c,Z,o]),(0,r.useEffect)((function(){c&&""!==t&&oe.h.buckets.listObjects(i,{prefix:t,with_versions:u}).then((function(e){var n=j()(e.data,"objects",[]),i=(0,g.IO)(t),r=n.filter((function(e){return e.name===i}));u?(w(r.find((function(e){return e.is_latest}))||Ye),A(r)):(w(r[0]),A([])),o((0,E.Eq)(!1))})).catch((function(e){o((0,F.Ih)((0,re.g)(e.error))),o((0,E.Eq)(!1))}))}),[c,i,t,o,u]);var Se=function(e){O(e),_(!0)},Ce=function(e){O(e),ne(!0)},Ze=function(e){H(e),U(!0)},we=function(e){Le(o,i,t,e)},Te=function(e){o((0,E.M3)(e.version_id||""))},ye=B.filter((function(e){return!!e.version_id&&e.version_id.includes(s)})),Ne=B.reduce((function(e,n){return n.size?e+n.size:e}),0);ye.sort((function(e,n){if("size"===q)return e.size&&n.size?e.sizen.size?1:0:0;var t=new Date(e.last_modified||"").getTime(),i=new Date(n.last_modified||"").getTime();return ti?-1:0}));var Fe=function(e){if(pe.includes(e)){var n=pe.filter((function(n){return n!==e}));xe(n)}else{var t=(0,h.Z)(pe);t.push(e),xe(t)}};return(0,k.jsxs)(r.Fragment,{children:[v&&Z&&(0,k.jsx)(V.default,{open:v,closeModalAndRefresh:function(){O(null),_(!1),ne(!1)},bucketName:i,dataObject:N||Z}),M&&Z&&K&&(0,k.jsx)(Me,{restoreOpen:M,bucketName:i,versionToRestore:K,objectPath:Z.name||"",onCloseAndUpdate:function(e){U(!1),H(null),e&&(o((0,E.Eq)(!0)),o((0,E.vH)(!0)))}}),ee&&Z&&(0,k.jsx)(he.default,{open:ee,bucketName:i,object:{name:Z.name||"",version_id:N&&N.version_id?N.version_id:"null",size:N&&N.size?N.size:0,content_type:"",last_modified:Z.last_modified||""},onClosePreview:function(){ne(!1)}}),ae&&(0,k.jsx)(He,{deleteOpen:ae,closeDeleteModalAndRefresh:function(e){se(!1),e&&(o((0,E.Eq)(!0)),o((0,E.M3)("")),o((0,E.vH)(!0)))},selectedBucket:i,selectedObject:t}),je&&(0,k.jsx)(Ve,{selectedBucket:i,selectedObject:(0,g.IO)(t),deleteOpen:je,selectedVersions:pe,closeDeleteModalAndRefresh:function(e){ge(!1),e&&(o((0,E.Eq)(!0)),o((0,E.M3)("")),o((0,E.vH)(!0)),xe([]))}}),(0,k.jsxs)(b.ZP,{container:!0,className:n.versionsContainer,children:[!Z&&(0,k.jsx)(b.ZP,{item:!0,xs:12,children:(0,k.jsx)(Re.Z,{})}),Z&&(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(b.ZP,{item:!0,xs:12,children:(0,k.jsx)(P,{bucketName:i,internalPaths:(0,g.IO)(t),hidePathButton:!0})}),(0,k.jsx)(b.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,k.jsx)(p.UHn,{icon:(0,k.jsx)("span",{className:n.listIcon,children:(0,k.jsx)(p.cRd,{})}),title:"".concat(_e.length>0?_e[_e.length-1]:Z.name," Versions"),subTitle:(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)("span",{className:n.detailsSpacer,children:(0,k.jsxs)("strong",{children:[B.length," Version",1===B.length?"":"s","\xa0\xa0\xa0"]})}),(0,k.jsx)("span",{className:n.detailsSpacer,children:(0,k.jsx)("strong",{children:(0,g.l5)(Ne)})})]}),actions:(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(z.Z,{tooltip:"Select Multiple Versions",children:(0,k.jsx)(p.zxk,{id:"select-multiple-versions",onClick:function(){ue(!de)},icon:(0,k.jsx)(p.amE,{}),variant:de?"callAction":"regular",style:{marginRight:8}})}),de&&(0,k.jsx)(z.Z,{tooltip:"Delete Selected Versions",children:(0,k.jsx)(p.zxk,{id:"delete-multiple-versions",onClick:function(){ge(!0)},icon:(0,k.jsx)(p.pJl,{}),variant:"secondary",style:{marginRight:8},disabled:0===pe.length})}),(0,k.jsx)(z.Z,{tooltip:"Delete Non Current Versions",children:(0,k.jsx)(p.zxk,{id:"delete-non-current",onClick:function(){se(!0)},icon:(0,k.jsx)(p.utM,{}),variant:"secondary",style:{marginRight:15},disabled:B.length<=1})}),(0,k.jsx)(p.PhF,{id:"sort-by",options:[{label:"Date",value:"date"},{label:"Size",value:"size"}],value:q,label:"Sort by",onChange:function(e){$(e)},noLabelMinWidth:!0})]}),bottomBorder:!1})}),(0,k.jsx)(b.ZP,{item:!0,xs:12,className:n.versionsVirtualPanel,children:Z.version_id&&"null"!==Z.version_id&&(0,k.jsx)(Je.aV,{style:{width:"100%"},containerStyle:{width:"100%",maxWidth:"100%"},width:1,height:800,rowCount:ye.length,rowHeight:108,rowRenderer:function(e){var n=e.key,t=e.index,i=(e.isScrolling,e.isVisible,e.style),o=B.length-t;return(0,k.jsx)(Ke,{style:i,fileName:(null===Z||void 0===Z?void 0:Z.name)||"",versionInfo:ye[t],index:o,onDownload:we,onRestore:Ze,onShare:Se,onPreview:Ce,globalClick:Te,isSelected:l===ye[t].version_id,checkable:de,onCheck:Fe,isChecked:pe.includes(ye[t].version_id||"")},n)}})})]})]})]})})),$e=t(9859),Xe=function(e){if(e.name.endsWith("/"))return"";var n=x.ou.now(),t=x.ou.fromISO(e.last_modified);return n.hasSame(t,"day")&&n.hasSame(t,"month")&&n.hasSame(t,"year")?"Today, ".concat(t.toFormat("HH:mm")):t.toFormat("ccc, LLL dd yyyy HH:mm (ZZZZ)")},Qe=function(e){return e.name.endsWith("/")||!e.size?"-":(0,g.ae)(String(e.size))},en=[{label:"Name",elementKey:"name",renderFunction:Se,enableSort:!0},{label:"Last Modified",elementKey:"last_modified",renderFunction:Xe,renderFullObject:!0,enableSort:!0},{label:"Size",elementKey:"size",renderFunction:Qe,renderFullObject:!0,width:100,enableSort:!0}],nn=[{label:"Name",elementKey:"name",renderFunction:Se,enableSort:!0},{label:"Object Date",elementKey:"last_modified",renderFunction:Xe,renderFullObject:!0,enableSort:!0},{label:"Size",elementKey:"size",renderFunction:Qe,renderFullObject:!0,width:100,enableSort:!0},{label:"Deleted",elementKey:"delete_flag",renderFunction:function(e){return e?"Yes":"No"},width:60}],tn=t(46078),on=(0,Z.Z)((function(e){return(0,c.Z)({browsePaper:{border:0,"@media (max-width: 800px)":{width:800}},parentWrapper:{position:"relative",height:"calc(100% - 60px)","@media (max-width: 800px)":{overflowX:"auto"},"@media (max-width: 1060px)":{height:"calc(100% - 115px)"}},"@global":{".rowLine:hover .iconFileElm":{backgroundImage:"url(/images/ob_file_filled.svg)"},".rowLine:hover .iconFolderElm":{backgroundImage:"url(/images/ob_folder_filled.svg)"}}})})),rn=function(e){var n=e.internalPaths,t=on(),i=(0,d.TL)(),o=(0,s.UO)(),c=(0,s.s0)(),l=(0,r.useState)("ASC"),u=(0,f.Z)(l,2),m=u[0],x=u[1],b=(0,r.useState)("name"),v=(0,f.Z)(b,2),_=v[0],S=v[1],C=o.bucketName||"",Z=(0,a.v9)((function(e){return e.objectBrowser.objectDetailsOpen})),w=(0,a.v9)((function(e){return e.objectBrowser.loadingObjects})),N=(0,a.v9)(tn.$4),F=!(null===N||void 0===N||!N.includes("object-browser-only")),O=(0,a.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),I=(0,a.v9)((function(e){return e.objectBrowser.records})),L=(0,a.v9)((function(e){return e.objectBrowser.searchObjects})),B=(0,a.v9)((function(e){return e.objectBrowser.selectedObjects})),P=(0,a.v9)((function(e){return e.objectBrowser.connectionError})),D=(0,a.v9)((function(e){return e.system.anonymousMode})),R=(0,T.F)(C,[y.Ft.S3_LIST_BUCKET,y.Ft.S3_ALL_LIST_BUCKET]),M=I.filter((function(e){return""===L||e.name.toLowerCase().indexOf(L.toLowerCase())>=0})).sort((0,A.P_)(_)),U=[];U="ASC"===m?M:M.reverse();var z=[{type:"view",label:"View",onClick:function(e){var t,o=e.name||"",r="/browser/".concat(C).concat(o?"/".concat((0,g.LL)(o)):"");!D||null===n||null!==(t=e.name)&&void 0!==t&&t.endsWith("/")?(i((0,E.S2)([])),c(r),D||(i((0,E.vb)(!0)),i((0,E.Eq)(!0)),i((0,E.d_)(!0))),i((0,E.EE)("".concat(o?"".concat((0,g.LL)(o)):"")))):Le(i,C,"".concat((0,g.LL)(o)),e)},sendOnlyId:!1}],G=R||D?"This location is empty".concat(O?"":", please try uploading a new file"):(0,y.MK)([y.Ft.S3_LIST_BUCKET,y.Ft.S3_ALL_LIST_BUCKET],"view Objects in this bucket");P&&(G="Objects List unavailable. Please review your WebSockets configuration and try again");var W="calc(100vh - 290px)";return F&&(W="calc(100vh - 315px)"),(0,k.jsx)(p.wQF,{itemActions:z,columns:O?nn:en,isLoading:w,entityName:"Objects",idField:"name",records:U,customPaperHeight:W,selectedItems:B,onSelect:D?void 0:function(e){var n=e.target,t=n.value,o=n.checked,r=(0,h.Z)(B);return o?r.push(t):r=r.filter((function(e){return e!==t})),i((0,E.S2)(r)),i((0,E.EE)(null)),r},customEmptyMessage:G,sortConfig:{currentSort:_,currentDirection:m,triggerSort:function(e){var n=j()(e,"sortDirection","DESC");S(e.sortBy),x(n),i((0,E.Cn)(!0))}},onSelectAll:function(){if(i((0,E.EE)(null)),B.length!==U.length){var e=U.map((function(e){return e.name}));i((0,E.S2)(e))}else i((0,E.S2)([]))},rowStyle:function(e){var n,t=e.index;return null!==(n=U[t])&&void 0!==n&&n.delete_flag?"deleted":""},parentClassName:t.parentWrapper,sx:{minHeight:Z?"100%":"initial"},noBackground:!0})},an=t(96382),sn=(0,an.hg)("objectBrowser/downloadSelected",function(){var e=(0,ye.Z)((0,Te.Z)().mark((function e(n,t){var i,o,r,a,s,c;return(0,Te.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=t.getState,t.rejectWithValue,o=t.dispatch,r=i(),a=function(e){var t=(0,g.LL)("".concat(n,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),i=(0,ke.YO)(8),r=(0,A.LR)(n,(0,g.LL)(e.name),e.version_id,e.size,null,i,(function(e){o((0,E.RO)({instanceID:t,progress:e}))}),(function(){o((0,E.oK)(t))}),(function(e){o((0,E.qJ)({instanceID:t,msg:e}))}),(function(){o((0,E.Im)(t))}),(function(){o((0,F.y1)("File download will be handled directly by the browser."))}));(0,ke.EN)(i,r),o((0,E.Mc)({ID:i,bucketName:n,done:!1,instanceID:t,percentage:0,prefix:e.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))},0===r.objectBrowser.selectedObjects.length){e.next=12;break}if(s=[],c=function(e){return r.objectBrowser.selectedObjects.includes(e.name)},1!==(s=r.objectBrowser.records.filter(c)).length){e.next=11;break}if(!(s[0].name.length>200&&(0,g.mv)().toLowerCase().includes("win"))){e.next=11;break}return o((0,E.$y)(s[0])),e.abrupt("return");case 11:s.forEach((function(e){a(e)}));case 12:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}()),cn=(0,an.hg)("objectBrowser/openPreview",function(){var e=(0,ye.Z)((0,Te.Z)().mark((function e(n,t){var i,o,r,a,s;return(0,Te.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=t.getState,t.rejectWithValue,o=t.dispatch,1===(r=i()).objectBrowser.selectedObjects.length&&(s=function(e){return r.objectBrowser.selectedObjects.includes(e.name)},(a=r.objectBrowser.records.find(s))&&(o((0,E.eP)(a)),o((0,E.ei)(!0))));case 3:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}()),ln=(0,an.hg)("objectBrowser/openShare",function(){var e=(0,ye.Z)((0,Te.Z)().mark((function e(n,t){var i,o,r,a,s;return(0,Te.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=t.getState,t.rejectWithValue,o=t.dispatch,1===(r=i()).objectBrowser.selectedObjects.length&&(s=function(e){return r.objectBrowser.selectedObjects.includes(e.name)},(a=r.objectBrowser.records.find(s))&&(o((0,E.eP)(a)),o((0,E.Qf)(!0))));case 3:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}()),dn=(0,an.hg)("objectBrowser/openAnonymousAccess",function(){var e=(0,ye.Z)((0,Te.Z)().mark((function e(n,t){var i,o,r;return(0,Te.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:i=t.getState,o=t.dispatch,1===(r=i()).objectBrowser.selectedObjects.length&&r.objectBrowser.selectedObjects[0].endsWith("/")&&o((0,E.xV)(!0));case 3:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}()),un=t(59114),hn=function(){var e=(0,d.TL)(),n=(0,a.v9)((function(e){return e.objectBrowser.searchObjects}));return(0,k.jsx)(un.Z,{placeholder:"Start typing to filter objects in the bucket",onChange:function(n){e((0,E.G4)(n))},value:n})},fn=t(94619),mn=(0,N.Z)(r.lazy((function(){return t.e(711).then(t.bind(t,50711))}))),pn=(0,N.Z)(r.lazy((function(){return Promise.resolve().then(t.bind(t,34433))}))),xn=(0,N.Z)(r.lazy((function(){return Promise.all([t.e(7847),t.e(6901)]).then(t.bind(t,26901))}))),bn=(0,N.Z)(r.lazy((function(){return Promise.resolve().then(t.bind(t,78562))}))),vn=(0,Z.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({badgeOverlap:{"& .MuiBadge-badge":{top:10,right:1,width:5,height:5,minWidth:5}}},u.VX),u.OR),u.qg),{},{searchField:(0,o.Z)((0,o.Z)({},u.qg.searchField),{},{maxWidth:380}),screenTitleContainer:{border:"#EAEDEE 1px solid",padding:"0 5px"},labelStyle:{color:"#969FA8",fontSize:"12px"},breadcrumbsContainer:{padding:"12px 14px 5px"},fullContainer:{width:"100%",position:"relative","&.detailsOpen":{"@media (max-width: 799px)":{display:"none"}}},hideListOnSmall:{"@media (max-width: 799px)":{display:"none"}},actionsSection:{display:"flex",justifyContent:"space-between",width:"100%"}},u.C4),u.cx),u.Bz))})),jn={borderWidth:2,borderRadius:2,borderColor:"#eeeeee",outline:"none"},gn={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#2196f3"},_n={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#00e676"},Sn=function(){var e,n=vn(),t=(0,d.TL)(),i=(0,s.UO)(),c=(0,s.s0)(),l=(0,s.TH)(),u=(0,a.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),v=(0,a.v9)((function(e){return e.objectBrowser.rewind.bucketToRewind})),S=(0,a.v9)((function(e){return e.objectBrowser.versionsMode})),C=(0,a.v9)((function(e){return e.objectBrowser.showDeleted})),Z=(0,a.v9)((function(e){return e.objectBrowser.objectDetailsOpen})),w=(0,a.v9)((function(e){return e.objectBrowser.selectedInternalPaths})),N=(0,a.v9)((function(e){return e.objectBrowser.loadingObjects})),L=(0,a.v9)((function(e){return e.objectBrowser.simplePath})),B=(0,a.v9)((function(e){return e.objectBrowser.versionInfo})),D=(0,a.v9)((function(e){return e.objectBrowser.lockingEnabled})),R=(0,a.v9)((function(e){return e.objectBrowser.downloadRenameModal})),M=(0,a.v9)((function(e){return e.objectBrowser.selectedPreview})),U=(0,a.v9)((function(e){return e.objectBrowser.shareFileModalOpen})),W=(0,a.v9)((function(e){return e.objectBrowser.previewOpen})),H=(0,a.v9)((function(e){return e.objectBrowser.selectedBucket})),V=(0,a.v9)((function(e){return e.system.anonymousMode})),J=(0,a.v9)((function(e){return e.objectBrowser.anonymousAccessOpen})),Y=(0,a.v9)($e.HQ),q=(0,a.v9)($e.G6),$=(0,r.useState)(!1),X=(0,f.Z)($,2),Q=X[0],ee=X[1],ne=(0,r.useState)(!1),te=(0,f.Z)(ne,2),ie=te[0],ae=te[1],se=(0,r.useState)(!1),ce=(0,f.Z)(se,2),de=ce[0],ue=ce[1],he=(0,r.useState)(!1),fe=(0,f.Z)(he,2),me=fe[0],pe=fe[1],xe=(0,r.useState)(!1),be=(0,f.Z)(xe,2),ve=be[0],je=be[1],ge=(0,r.useState)(null),_e=(0,f.Z)(ge,2),Se=_e[0],Ce=_e[1],Ze=(0,r.useState)(null),we=(0,f.Z)(Ze,2),Te=we[0],ye=we[1],Ne=(0,r.useState)(!1),Fe=(0,f.Z)(Ne,2),Ee=Fe[0],Oe=Fe[1],Ie=le(B.status),Le=i.bucketName||"",Be=l.pathname.split("/browser/".concat(Le,"/")),Ae=2===Be.length?Be[1]:"",Re=(0,g.IO)(Ae),Me=Re.split("/").filter((function(e){return""!==e})),Ue=[Le];Me.length>0&&(Ue=Ue.concat(Me));var ze=(0,r.useRef)(null),We=(0,r.useRef)(null),Ke=(0,a.v9)((function(e){return e.console.session&&e.console.session.permissions||{}})),He=[y.Ft.S3_PUT_OBJECT,y.Ft.S3_PUT_ACTIONS],Ve=Ue.join("/"),Je=function(e,n){var t=I(e,n,arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]).reduce((function(e,n){var t=O(n);return t&&e.push(".".concat(t)),e}),[]);return(0,h.Z)(new Set(t)).join(",")}(Ke,Ve,He),Ye=I(Ke,Ve,He),Xe=(0,T.F)([Ve].concat((0,h.Z)(Ye)),[y.Ft.S3_GET_OBJECT,y.Ft.S3_GET_ACTIONS]),Qe=(0,T.F)([Ve].concat((0,h.Z)(Ye)),[y.Ft.S3_DELETE_OBJECT]),en=(0,T.F)([Ve].concat((0,h.Z)(Ye)),He)||V,nn=(0,T.F)(Le,[y.Ft.S3_GET_BUCKET_POLICY,y.Ft.S3_PUT_BUCKET_POLICY,y.Ft.S3_GET_ACTIONS,y.Ft.S3_PUT_ACTIONS]),tn=(0,a.v9)((function(e){return e.objectBrowser.selectedObjects})),on=(0,r.useCallback)((function(){var e=tn[0];if(!Ee){var n=(0,g.LL)(e);oe.h.buckets.getObjectMetadata(Le,{prefix:n}).then((function(e){var n=j()(e.data,"objectMetadata",{});Oe(!0),ye(n)})).catch((function(e){console.error("Error Getting Metadata Status: ",e,null===e||void 0===e?void 0:e.detailedError),Oe(!0)}))}}),[Le,tn,Ee]);(0,r.useEffect)((function(){Le&&1===tn.length&&on()}),[Le,tn,on]),(0,r.useEffect)((function(){t((0,E.G4)("")),t((0,E.Cn)(!0)),t((0,E.S2)([]))}),[L,t]),(0,r.useEffect)((function(){u&&v!==Le&&t((0,E._w)())}),[u,v,Le,t]),(0,r.useEffect)((function(){null!==We.current&&(We.current.setAttribute("directory",""),We.current.setAttribute("webkitdirectory",""))}),[We]),(0,r.useEffect)((function(){if(1===tn.length){var e=tn[0],n=(0,A.s7)(Te,e);je(!("none"===n||!Xe)),e.endsWith("/")||Xe?pe(!0):pe(!1)}else pe(!1),je(!1)}),[tn,Xe,Te]),(0,r.useEffect)((function(){Se||V||oe.h.buckets.getBucketQuota(Le).then((function(e){var n=null;e.data.quota&&(n=e.data),Ce(n)})).catch((function(e){console.error("Error Getting Quota Status: ",e.error.detailedMessage),Ce(null)}))}),[Se,Le,V]),(0,r.useEffect)((function(){tn.length>0?t((0,E.vb)(!0)):0!==tn.length||null!==w||N||t((0,E.vb)(!1))}),[tn,w,t,N]),(0,r.useEffect)((function(){de||(t((0,$e.d5)(!0)),ue(!0))}),[de,t,ue]),(0,r.useEffect)((function(){!N&&!Y||V||oe.h.buckets.bucketInfo(Le).then((function(e){t((0,$e.d5)(!1)),t((0,$e.f4)(e.data)),t((0,E.RS)(Le))})).catch((function(e){t((0,$e.d5)(!1)),t((0,F.Ih)((0,re.g)(e)))}))}),[Le,Y,t,V,N]),(0,r.useEffect)((function(){""!==H&&oe.h.buckets.getBucketRetentionConfig(H).then((function(e){t((0,E.c8)(e.data))})).catch((function(){t((0,E.c8)(null))}))}),[H,t]);var an=function(e){if(null!==e&&void 0!==e&&null!==e.target.files&&void 0!==e.target.files){e.preventDefault();for(var n=[],t=0;t1,C="An error occurred while uploading the file".concat(S?"s":"","."),Z={413:"Error - File size too large"};_.withCredentials=!1,_.onload=function(e){if(_.status>=200&&_.status<300)t((0,E.oK)(v)),a({status:_.status}),(0,ke.GM)(p);else{if(Z[_.status])C=Z[_.status];else if(_.response)try{var n=JSON.parse(_.response);C=n.detailedMessage}catch(i){C="something went wrong"}t((0,E.qJ)({instanceID:v,msg:C})),s({status:_.status,message:C}),(0,ke.GM)(p)}},_.upload.addEventListener("error",(function(e){s(C),t((0,E.qJ)({instanceID:v,msg:"A network error occurred."}))})),_.upload.addEventListener("progress",(function(e){var n=Math.floor(100*e.loaded/e.total);t((0,E.RO)({instanceID:v,progress:n}))})),_.onerror=function(){s(C),t((0,E.qJ)({instanceID:v,msg:"A network error occurred."}))},_.onloadend=function(){0===e.length&&t((0,E.Cn)(!0))},_.onabort=function(){t((0,E.Im)(v))};var w=new FormData;void 0!==r.size&&(w.append(r.size.toString(),d,l),(0,ke.EN)(p,_),t((0,E.Mc)({ID:p,bucketName:n,done:!1,instanceID:v,percentage:0,prefix:"".concat((0,g.IO)(u)).concat(l),type:"upload",waitingForFile:!1,failed:!1,cancelled:!1,errorMessage:""})),(0,ke.N5)(p,w))}))},a=[];t((0,E.LD)());for(var s=0;s0){var i=a.length,o=a.length-n.length,r={errorMessage:"There were some errors during file upload",detailedError:"Uploaded files ".concat(o,"/").concat(i)};t((0,F.Ih)(r))}t((0,E.Cn)(!0)),t((0,E.S2)([]))}))}(e,Le,i,n)}),[Le,t,L,V]),Sn=(0,r.useCallback)((function(e){if(e&&e.length>0&&en){var n,i,o=e[0].path,r=[];if((r=Je.length>0?e.filter((function(e){var n=O(e.name);return Je.includes(n)})):e).length)un(r,o),(n=console).log.apply(n,["".concat(r.length," Allowed Files Processed out of ").concat(e.length,"."),Ve].concat((0,h.Z)(Ye))),r.length!==e.length&&t((0,F.Ih)({errorMessage:"Upload is restricted.",detailedError:(0,y.MK)([y.Ft.S3_PUT_OBJECT,y.Ft.S3_PUT_ACTIONS],"upload objects to this location")}));else t((0,F.Ih)({errorMessage:"Could not process drag and drop.",detailedError:(0,y.MK)([y.Ft.S3_PUT_OBJECT,y.Ft.S3_PUT_ACTIONS],"upload objects to this location")})),(i=console).error.apply(i,["Could not process drag and drop . upload may be restricted.",Ve].concat((0,h.Z)(Ye)))}en||t((0,F.Ih)({errorMessage:"Upload not allowed",detailedError:(0,y.MK)([y.Ft.S3_PUT_OBJECT,y.Ft.S3_PUT_ACTIONS],"upload objects to this location")}))}),[un]),Cn=(0,m.uI)({noClick:!0,onDrop:Sn}),Zn=Cn.getRootProps,wn=Cn.getInputProps,Tn=Cn.isDragActive,yn=Cn.isDragAccept,Nn=(0,r.useMemo)((function(){return(0,o.Z)((0,o.Z)((0,o.Z)({},jn),Tn?gn:{}),yn?_n:{})}),[Tn,yn]),Fn=function(e){if(t((0,E.EE)(null)),t((0,E.db)({status:!1})),Z&&null!==w){var n=(0,g.IO)(Ae).split("/");n.pop();var i="";n&&n.length>0&&(i="".concat(n.join("/"),"/")),c("/browser/".concat(Le,"/").concat((0,g.LL)(i)))}t((0,E.vb)(!1)),t((0,E.S2)([])),e&&t((0,E.Cn)(!0))},En=x.ou.now();null!==q&&void 0!==q&&q.creation_date&&(En=x.ou.fromISO(q.creation_date));var On=[{action:function(){t(sn(Le))},label:"Download",disabled:!Xe||0===(null===tn||void 0===tn?void 0:tn.length),icon:(0,k.jsx)(p._8t,{}),tooltip:Xe?"Download Selected":(0,y.MK)([y.Ft.S3_GET_OBJECT,y.Ft.S3_GET_ACTIONS],"download objects from this bucket")},{action:function(){t(ln())},label:"Share",disabled:1!==tn.length||!me,icon:(0,k.jsx)(p.aAc,{}),tooltip:me?"Share Selected File":"Sharing unavailable"},{action:function(){t(cn())},label:"Preview",disabled:1!==tn.length||!ve,icon:(0,k.jsx)(p.P99,{}),tooltip:ve?"Preview Selected File":"Preview unavailable"},{action:function(){t(dn())},label:"Anonymous Access",disabled:1!==tn.length||!tn[0].endsWith("/")||!nn,icon:(0,k.jsx)(p.cuP,{}),tooltip:1===tn.length&&tn[0].endsWith("/")?"Set Anonymous Access to this Folder":"Anonymous Access unavailable"},{action:function(){ee(!0)},label:"Delete",icon:(0,k.jsx)(p.pJl,{}),disabled:!Qe||0===tn.length,tooltip:Qe?"Delete Selected Files":(0,y.MK)([y.Ft.S3_DELETE_OBJECT],"delete objects in this bucket")}];return(0,k.jsxs)(r.Fragment,{children:[U&&M&&(0,k.jsx)(pn,{open:U,closeModalAndRefresh:function(){t((0,E.Qf)(!1)),t((0,E.eP)(null))},bucketName:Le,dataObject:{name:M.name,last_modified:"",version_id:M.version_id}}),Q&&(0,k.jsx)(mn,{deleteOpen:Q,selectedBucket:Le,selectedObjects:tn,closeDeleteModalAndRefresh:function(e){ee(!1),e&&(t((0,F.y1)("Objects deleted successfully.")),t((0,E.S2)([])),t((0,E.Cn)(!0)))},versioning:B}),ie&&(0,k.jsx)(xn,{open:ie,closeModalAndRefresh:function(){ae(!1)},bucketName:Le}),W&&(0,k.jsx)(bn,{open:W,bucketName:Le,object:M,onClosePreview:function(){t((0,E.ei)(!1)),t((0,E.eP)(null))}}),!!R&&(0,k.jsx)(Pe,{open:!!R,closeModal:function(){t((0,E.$y)(null))},currentItem:(null===(e=R.name.split("/"))||void 0===e?void 0:e.pop())||"",bucketName:Le,internalPaths:Ae,actualInfo:{name:R.name,last_modified:"",version_id:R.version_id,size:R.size}}),J&&(0,k.jsx)(fn.default,{onClose:function(){t((0,E.xV)(!1))},bucket:Le,modalOpen:J,prefilledRoute:"".concat(tn[0],"*")}),(0,k.jsxs)(p.Xgh,{variant:"full",children:[V&&(0,k.jsx)("div",{style:{paddingBottom:16},children:(0,k.jsx)(hn,{})}),(0,k.jsx)(b.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,k.jsx)(p.UHn,{icon:(0,k.jsx)("span",{children:(0,k.jsx)(p.wNb,{style:{width:30}})}),title:Le,subTitle:V?null:(0,k.jsxs)(r.Fragment,{children:[(0,k.jsxs)("span",{className:n.detailsSpacer,children:["Created on:\xa0\xa0",(0,k.jsx)("strong",{children:null!==q&&void 0!==q&&q.creation_date?En.toFormat("ccc, LLL dd yyyy HH:mm:ss (ZZZZ)"):""})]}),(0,k.jsxs)("span",{className:n.detailsSpacer,children:["Access:\xa0\xa0\xa0",(0,k.jsx)("strong",{children:(null===q||void 0===q?void 0:q.access)||""})]}),q&&(0,k.jsx)(r.Fragment,{children:(0,k.jsxs)("span",{className:n.detailsSpacer,children:[q.size&&(0,k.jsx)(r.Fragment,{children:(0,g.l5)(q.size)}),q.size&&Se&&(0,k.jsxs)(r.Fragment,{children:[" ","/ ",(0,g.l5)(Se.quota||0)]}),q.size&&q.objects?" - ":"",q.objects&&(0,k.jsxs)(r.Fragment,{children:[q.objects,"\xa0Object",q.objects&&1!==q.objects?"s":""]})]})})]}),actions:(0,k.jsxs)(r.Fragment,{children:[!V&&(0,k.jsx)(z.Z,{tooltip:"Rewind Bucket",children:(0,k.jsx)(p.zxk,{id:"rewind-objects-list",label:"Rewind",icon:(0,k.jsx)(_.Z,{badgeContent:" ",color:"secondary",variant:"dot",invisible:!u,className:n.badgeOverlap,sx:{height:16},children:(0,k.jsx)(p.F_y,{style:{minWidth:16,minHeight:16,width:16,height:16,marginTop:-3}})}),variant:"regular",onClick:function(){ae(!0)},disabled:!Ie||!(0,T.F)(Le,[y.Ft.S3_GET_OBJECT,y.Ft.S3_GET_ACTIONS])})}),(0,k.jsx)(z.Z,{tooltip:"Reload List",children:(0,k.jsx)(p.zxk,{id:"refresh-objects-list",label:"Refresh",icon:(0,k.jsx)(p.DuK,{}),variant:"regular",onClick:function(){S?t((0,E.Eq)(!0)):(t((0,E.o_)()),t((0,E._D)(!0)),t((0,E.Cn)(!0)))},disabled:!V&&(!(0,T.F)(Le,[y.Ft.S3_LIST_BUCKET,y.Ft.S3_ALL_LIST_BUCKET])||u)})}),(0,k.jsx)("input",{type:"file",multiple:!0,accept:Je||void 0,onChange:an,style:{display:"none"},ref:ze}),(0,k.jsx)("input",{type:"file",multiple:!0,onChange:an,style:{display:"none"},ref:We}),(0,k.jsx)(G,{bucketName:Le,uploadPath:Ve,uploadFileFunction:function(e){ze&&ze.current&&ze.current.click(),e()},uploadFolderFunction:function(e){We&&We.current&&We.current.click(),e()}})]}),bottomBorder:!1})}),(0,k.jsxs)("div",(0,o.Z)((0,o.Z)({id:"object-list-wrapper"},Zn({style:(0,o.Z)({},Nn)})),{},{children:[(0,k.jsx)("input",(0,o.Z)({},wn())),(0,k.jsxs)(b.ZP,{item:!0,xs:12,className:n.tableBlock,sx:{border:"#EAEDEE 1px solid",borderTop:0},children:[S?(0,k.jsx)(r.Fragment,{children:null!==w&&(0,k.jsx)(qe,{internalPaths:w,bucketName:Le})}):(0,k.jsx)(T.s,{scopes:[y.Ft.S3_LIST_BUCKET,y.Ft.S3_ALL_LIST_BUCKET],resource:Le,errorProps:{disabled:!0},children:(0,k.jsxs)(b.ZP,{item:!0,xs:12,className:"".concat(n.fullContainer," ").concat(Z?"detailsOpen":""," "),children:[!V&&(0,k.jsx)(b.ZP,{item:!0,xs:12,className:n.breadcrumbsContainer,children:(0,k.jsx)(P,{bucketName:Le,internalPaths:Re,additionalOptions:!Ie||u?null:(0,k.jsx)("div",{children:(0,k.jsx)(Ge.Z,{name:"deleted_objects",id:"showDeletedObjects",value:"deleted_on",label:"Show deleted objects",onChange:function(){t((0,E.o_)()),t((0,E.mz)(!C)),Fn(!0)},checked:C,overrideLabelClasses:n.labelStyle,className:n.overrideShowDeleted,noTopMargin:!0})}),hidePathButton:!1})}),(0,k.jsx)(rn,{internalPaths:w})]})}),!V&&(0,k.jsx)(T.s,{scopes:[y.Ft.S3_LIST_BUCKET,y.Ft.S3_ALL_LIST_BUCKET],resource:Le,errorProps:{disabled:!0},children:(0,k.jsxs)(K,{open:Z,closePanel:function(){Fn(!1)},className:"".concat(S?n.hideListOnSmall:""),children:[tn.length>0&&(0,k.jsx)(p.Wk,{items:On,title:"Selected Objects:"}),null!==w&&(0,k.jsx)(De,{internalPaths:w,bucketName:Le,onClosePanel:Fn,versioningInfo:B,locking:D})]})})]})]}))]})]})},Cn=t(49535),Zn=t(26824),wn=t(73996),Tn=t(47974),yn=t(4677),Nn=t(99670),Fn=function(e){var n=e.bucketName,t=(0,d.TL)(),i=(0,a.v9)(tn.$4),o=(0,a.v9)((function(e){return e.objectBrowser.versionsMode})),c=(0,a.v9)((function(e){return e.objectBrowser.versionedFile})),l=(0,a.v9)((function(e){return e.objectBrowser.searchVersions})),u=!(null===i||void 0===i||!i.includes("object-browser-only")),h=(0,s.s0)(),f=(0,Cn.Z)(n,[y.Ft.S3_GET_BUCKET_POLICY,y.Ft.S3_PUT_BUCKET_POLICY,y.Ft.S3_GET_BUCKET_VERSIONING,y.Ft.S3_PUT_BUCKET_VERSIONING,y.Ft.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,y.Ft.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION,y.Ft.S3_DELETE_BUCKET,y.Ft.S3_GET_BUCKET_NOTIFICATIONS,y.Ft.S3_PUT_BUCKET_NOTIFICATIONS,y.Ft.S3_GET_REPLICATION_CONFIGURATION,y.Ft.S3_PUT_REPLICATION_CONFIGURATION,y.Ft.S3_GET_LIFECYCLE_CONFIGURATION,y.Ft.S3_PUT_LIFECYCLE_CONFIGURATION,y.Ft.ADMIN_GET_BUCKET_QUOTA,y.Ft.ADMIN_SET_BUCKET_QUOTA,y.Ft.S3_PUT_BUCKET_TAGGING,y.Ft.S3_GET_BUCKET_TAGGING,y.Ft.S3_LIST_BUCKET_VERSIONS,y.Ft.S3_GET_BUCKET_POLICY_STATUS,y.Ft.S3_DELETE_BUCKET_POLICY,y.Ft.S3_GET_ACTIONS,y.Ft.S3_PUT_ACTIONS]),m=(0,k.jsx)(r.Fragment,{children:o?(0,k.jsx)(r.Fragment,{children:(0,k.jsx)(un.Z,{placeholder:"Start typing to filter versions of ".concat(c),onChange:function(e){t((0,E.Pr)(e))},value:l})}):(0,k.jsx)(T.s,{scopes:[y.Ft.S3_LIST_BUCKET,y.Ft.S3_ALL_LIST_BUCKET],resource:n,errorProps:{disabled:!0},children:(0,k.jsx)(hn,{})})});return(0,r.useEffect)((function(){t((0,F.Sc)("object_browser"))}),[]),(0,k.jsx)(r.Fragment,{children:u?(0,k.jsxs)(p.rjZ,{container:!0,sx:{padding:"20px 32px 0"},children:[(0,k.jsx)(p.rjZ,{children:(0,k.jsx)(wn.Z,{marginRight:30,marginTop:10})}),(0,k.jsxs)(p.rjZ,{item:!0,xs:!0,sx:{display:"flex",gap:10},children:[m,(0,k.jsx)(yn.Z,{})]})]}):(0,k.jsx)(Tn.Z,{label:(0,k.jsx)(p.hbI,{label:"Object Browser",onClick:function(){h(y.gA.OBJECT_BROWSER_VIEW)}}),actions:(0,k.jsxs)(r.Fragment,{children:[(0,k.jsx)(T.s,{scopes:y.D[y.EI.BUCKET_ADMIN],resource:n,errorProps:{disabled:!0},children:(0,k.jsx)(z.Z,{tooltip:f?"Configure Bucket":"You do not have the required permissions to configure this bucket. Please contact your MinIO administrator to request "+y.EI.BUCKET_ADMIN+" permisions.",children:(0,k.jsx)(p.zxk,{id:"configure-bucket-main",color:"primary","aria-label":"Configure Bucket",onClick:function(){return h("/buckets/".concat(n,"/admin"))},icon:(0,k.jsx)(p.ewm,{style:{width:20,height:20,marginTop:-3}}),style:{padding:"0 10px"}})})}),(0,k.jsx)(Nn.Z,{})]}),middleComponent:m})})},En=0,On=0,In=!1,kn=function e(n,t,o){if(!In){In=!0;var r=new URL(window.location.toString()),a=r.port,s=new URL(document.baseURI).pathname,c=(0,Zn.x2)(r.protocol);(i=new WebSocket("".concat(c,"://").concat(r.hostname,":").concat(a).concat(s,"ws/objectManager"))).onopen=function(){In=!1,n&&n(),On=0},t&&(i.onmessage=t);var l=function(){On<=5?(e((function(){}),t,o),On+=1):(console.error("Websocket not available. Please review that your environment settings are enabled to allow websocket connections and that requests are made from the same origin."),o&&o("Couldn't establish WebSocket connection. Please review your configuration and try again."))};i.onclose=function(){In=!1,console.warn("Websocket Disconnected. Attempting Reconnection..."),setTimeout(l,3e3)},i.onerror=function(){In=!1,console.error("Error in websocket connection. Attempting reconnection...")}}},Ln=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)({},u.Bz))}))((function(){var e=(0,d.TL)(),n=(0,s.UO)(),t=(0,s.TH)(),o=(0,a.v9)((function(e){return e.objectBrowser.loadingVersioning})),c=(0,a.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),l=(0,a.v9)((function(e){return e.objectBrowser.rewind.dateToRewind})),u=(0,a.v9)((function(e){return e.objectBrowser.showDeleted})),h=(0,a.v9)((function(e){return e.console.session.allowResources})),f=(0,a.v9)((function(e){return e.objectBrowser.loadingObjects})),m=(0,a.v9)((function(e){return e.objectBrowser.loadingLocking})),p=(0,a.v9)((function(e){return e.objectBrowser.loadRecords})),x=(0,a.v9)((function(e){return e.objectBrowser.selectedInternalPaths})),b=(0,a.v9)((function(e){return e.objectBrowser.simplePath})),v=(0,a.v9)((function(e){return e.objectBrowser.isOpeningObjectDetail})),j=(0,a.v9)((function(e){return e.system.anonymousMode})),_=n.bucketName||"",S=t.pathname.split("/browser/".concat(_,"/")),C=2===S.length?S[1]:"",Z=(0,r.useCallback)((function(n){e((0,E.Cn)(!1));var t=JSON.parse(n.data.toString());if(En===t.request_id){if(t.request_id!==En)return;if("The Access Key Id you provided does not exist in our records."===t.error)window.location.reload();else if("Access Denied."===t.error){var i=t.prefix,o="";if(i){var r=(0,g.IO)(i);o=r.endsWith("/")?r:r+"/"}var a=(0,A.kh)(t.bucketName||_,o,h||[]);return void(a&&0!==a.length?e((0,E.ZJ)(a)):e((0,F.Ih)({errorMessage:t.error,detailedError:t.error})))}if(t.request_end)return e((0,E.Cn)(!1)),void e((0,E._D)(!1));t.data&&e((0,E.rW)(t.data))}}),[e,h,_]),w=(0,r.useCallback)((function(n,t){if(i&&1===i.readyState)try{var o=En+1;e((0,E.o_)()),e((0,E.ZR)(!1));var r={bucket_name:_,prefix:(0,g.LL)(n),mode:c||u?"rewind":"objects",date:t.toISOString(),request_id:o};i.send(JSON.stringify(r)),En=o}catch(a){console.error(a)}else{kn((function(){w(n,t)}),Z,(function(n){e((0,F.Ih)({errorMessage:n,detailedError:n})),e((0,E.ZR)(!0))}))}}),[_,c,u,e,Z]);(0,r.useEffect)((function(){return function(){var e={mode:"cancel",request_id:En};i&&1===i.readyState&&i.send(JSON.stringify(e))}}),[]),(0,r.useEffect)((function(){var n=(0,g.IO)(C);e((0,E.IJ)(!0)),n.endsWith("/")||""===n?(e((0,E.vb)(!1)),e((0,E.EE)(null)),e((0,E.Su)(""===n?"/":n)),e((0,E.Jn)(!0))):(e((0,E.vH)(!0)),e((0,E.vb)(!0)),e((0,E.Eq)(!0)),e((0,E.EE)("".concat(n?"".concat((0,g.LL)(n)):""))),e((0,E.Su)("".concat(n.split("/").slice(0,-1).join("/"),"/"))))}),[_,C,l,c,e]),(0,r.useEffect)((function(){if(!f&&!p&&!c&&!v){var n=(0,g.IO)(C);if(!n.endsWith("/")&&b!==n&&""!==n){(0,E._D)(!0);var t="".concat(n.split("/").slice(0,-1).join("/"),"/");w(t,new Date)}}e((0,E.d_)(!1))}),[f,p,e,C,w,c,b]);var T=(0,Cn.Z)(_,[y.Ft.S3_LIST_BUCKET,y.Ft.S3_ALL_LIST_BUCKET])||j;return(0,r.useEffect)((function(){if(f&&T){var n="";if(C){var t=(0,g.IO)(C);n=x===C?"".concat((0,g.IO)(C).split("/").slice(0,-1).join("/"),"/"):t.endsWith("/")?t:t+"/"}var i=new Date;c&&l&&(i=new Date(l)),w(n,i)}else e((0,E.Cn)(!1))}),[f,C,e,l,c,T,w]),(0,r.useEffect)((function(){e((0,E.db)({status:!1}))}),[C,e]),(0,r.useEffect)((function(){o&&!j&&(T?oe.h.buckets.getBucketVersioning(_).then((function(n){e((0,E.lS)(n.data)),e((0,E.IJ)(!1))})).catch((function(n){console.error("Error Getting Object Versioning Status: ",n.error.detailedMessage),e((0,E.IJ)(!1))})):(e((0,E.IJ)(!1)),e((0,E.o_)())))}),[_,o,e,T,j]),(0,r.useEffect)((function(){m&&(T?oe.h.buckets.getBucketObjectLockingStatus(_).then((function(n){e((0,E.lY)(n.data.object_locking_enabled)),e((0,E.Jn)(!1))})).catch((function(n){console.error("Error Getting Object Locking Status: ",n.error.detailedMessage),e((0,E.Jn)(!1))})):(e((0,E.o_)()),e((0,E.Jn)(!1))))}),[_,m,e,T]),(0,r.useEffect)((function(){var n=(0,A.kh)(_,"",h||[]);if(_&&(!n||0===n.length)){e((0,E.o_)()),e((0,E._D)(!0)),e((0,E.Cn)(!0));var t="";if(C){var i=(0,g.IO)(C);t=x===C?"".concat((0,g.IO)(C).split("/").slice(0,-1).join("/"),"/"):i.endsWith("/")?i:i+"/"}w(t,new Date)}}),[_,e,w,h,C,x]),(0,k.jsxs)(r.Fragment,{children:[!j&&(0,k.jsx)(Fn,{bucketName:_}),(0,k.jsx)(Sn,{})]})}))},34433:function(e,n,t){t.r(n),t.d(n,{default:function(){return C}});var i=t(29439),o=t(72791),r=t(78687),a=t(29945),s=t(78029),c=t.n(s),l=t(40986),d=t(56028),u=t(1413),h=t(99779),f=t(11135),m=t(25787),p=t(23814),x=t(80184),b=(0,m.Z)((function(e){return(0,f.Z)((0,u.Z)((0,u.Z)((0,u.Z)({},p.YI),p.Hr),{},{labelContainer:{display:"flex",alignItems:"center",marginBottom:15},fieldContainer:(0,u.Z)((0,u.Z)({},p.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),durationInputs:{display:"flex",alignItems:"flex-start",justifyContent:"flex-start",gap:10},validityIndicator:{display:"flex",alignItems:"center",justifyContent:"flex-start",marginTop:25,marginLeft:10},invalidDurationText:{marginTop:15,display:"flex",color:"red",fontSize:11},reverseInput:{flexFlow:"row-reverse","& > label":{fontWeight:400,marginLeft:15,marginRight:25}},validityText:{fontSize:14,marginTop:15,display:"flex",alignItems:"center",justifyContent:"center","@media (max-width: 900px)":{flexFlow:"column"},"& > .min-icon":{color:"#5E5E5E",width:15,height:15,marginRight:10}},validTill:{fontWeight:"bold",marginLeft:15}}))}))((function(e){var n=e.classes,t=e.id,r=e.initialDate,s=e.label,c=e.maxDays,l=e.entity,d=e.onChange,u=(0,o.useState)(7),f=(0,i.Z)(u,2),m=f[0],p=f[1],b=(0,o.useState)(0),v=(0,i.Z)(b,2),j=v[0],g=v[1],_=(0,o.useState)(0),S=(0,i.Z)(_,2),C=S[0],Z=S[1],w=(0,o.useState)(!0),T=(0,i.Z)(w,2),y=T[0],N=T[1],F=(0,o.useState)(h.ou.now()),E=(0,i.Z)(F,2),O=E[0],I=E[1];(0,o.useEffect)((function(){isNaN(j)||isNaN(m)||isNaN(C)||I(function(e,n,t,i){return h.ou.fromJSDate(e).plus({days:n,hours:t,minutes:i})}(r,m,j,C))}),[r,m,j,C]),(0,o.useEffect)((function(){if(y){var e=O.toFormat("yyyy-MM-dd HH:mm:ss");d(e.split(" ").join("T"),!0)}else d("0000-00-00",!1)}),[O,d,y]),(0,o.useEffect)((function(){var e=!0;(m<0||c&&m>c||isNaN(m))&&(e=!1),(j<0||j>23||isNaN(j))&&(e=!1),(C<0||C>59||isNaN(C))&&(e=!1),!c||m!==c||0===j&&0===C||(e=!1),m<=0&&j<=0&&C<=0&&(e=!1),N(e)}),[O,c,d,m,j,C]);var k={"& .textBoxContainer":{minWidth:0},"& input":{textAlign:"center",paddingRight:10,paddingLeft:10,width:40}};return(0,x.jsx)(o.Fragment,{children:(0,x.jsxs)(a.rjZ,{container:!0,className:n.fieldContainer,children:[(0,x.jsx)(a.rjZ,{item:!0,xs:12,className:n.labelContainer,children:(0,x.jsx)(a.AZs,{htmlFor:t,children:s})}),(0,x.jsxs)(a.rjZ,{item:!0,xs:12,className:n.durationInputs,children:[(0,x.jsx)(a.rjZ,{item:!0,xs:!0,className:n.dateInputContainer,children:(0,x.jsx)(a.Wzg,{id:t,className:"".concat(n.reverseInput," removeArrows"),type:"number",min:"0",max:c?c.toString():"999",label:"Days",name:t,onChange:function(e){p(parseInt(e.target.value))},value:m.toString(),sx:k,noLabelMinWidth:!0})}),(0,x.jsx)(a.rjZ,{item:!0,xs:!0,className:n.dateInputContainer,children:(0,x.jsx)(a.Wzg,{id:t,className:"".concat(n.reverseInput," removeArrows"),type:"number",min:"0",max:"23",label:"Hours",name:t,onChange:function(e){g(parseInt(e.target.value))},value:j.toString(),sx:k,noLabelMinWidth:!0})}),(0,x.jsx)(a.rjZ,{item:!0,xs:!0,className:n.dateInputContainer,children:(0,x.jsx)(a.Wzg,{id:t,className:"".concat(n.reverseInput," removeArrows"),type:"number",min:"0",max:"59",label:"Minutes",name:t,onChange:function(e){Z(parseInt(e.target.value))},value:C.toString(),sx:k,noLabelMinWidth:!0})})]}),(0,x.jsx)(a.rjZ,{item:!0,xs:12,className:"".concat(n.validityIndicator," ").concat(n.formFieldRow),children:y?(0,x.jsxs)("div",{className:n.validityText,children:[(0,x.jsx)(a.xPt,{}),(0,x.jsxs)("div",{className:n.validityLabel,children:[l," will be available until:"]})," ",(0,x.jsx)("div",{className:n.validTill,children:O.toFormat("MM/dd/yyyy HH:mm:ss")})]}):(0,x.jsx)("div",{className:n.invalidDurationText,children:"Please select a valid duration."})})]})})})),v=t(45248),j=t(87995),g=t(81551),_=t(31776),S=t(82342),C=function(e){var n=e.open,t=e.closeModalAndRefresh,s=e.bucketName,u=e.dataObject,h=(0,g.TL)(),f=(0,r.v9)(j.N5),m=(0,o.useState)(""),p=(0,i.Z)(m,2),C=p[0],Z=p[1],w=(0,o.useState)(!0),T=(0,i.Z)(w,2),y=T[0],N=T[1],F=(0,o.useState)(!1),E=(0,i.Z)(F,2),O=E[0],I=E[1],k=(0,o.useState)(""),L=(0,i.Z)(k,2),B=L[0],P=L[1],A=(0,o.useState)(!0),D=(0,i.Z)(A,2),R=D[0],M=D[1],U=(0,o.useState)("null"),z=(0,i.Z)(U,2),G=z[0],W=z[1],K=new Date;return(0,o.useEffect)((function(){if(void 0===u.version_id)return f?(_.h.buckets.listObjects(s,{prefix:(0,v.LL)(u.name||""),with_versions:f}).then((function(e){var n=(e.data.objects||[]).find((function(e){return e.is_latest}));W(n?"".concat(n.version_id):"null")})).catch((function(e){h((0,j.zb)((0,S.g)(e.error)))})),void N(!1)):(W("null"),void N(!1));W(u.version_id||"null"),N(!1)}),[s,u,f,h]),(0,o.useEffect)((function(){if(R&&!y){I(!0),Z("");var e=new Date("".concat(B)),n=new Date,t=Math.ceil((e.getTime()-n.getTime())/1e3);t>0&&_.h.buckets.shareObject(s,{prefix:(0,v.LL)(u.name||""),version_id:G,expires:""!==B?"".concat(t,"s"):""}).then((function(e){Z(e.data),I(!1)})).catch((function(e){h((0,j.zb)((0,S.g)(e.error))),Z(""),I(!1)}))}}),[u,B,s,R,Z,h,f,y,G]),(0,x.jsx)(o.Fragment,{children:(0,x.jsxs)(d.Z,{title:"Share File",titleIcon:(0,x.jsx)(a.aAc,{style:{fill:"#4CCB92"}}),modalOpen:n,onClose:function(){t()},children:[y&&(0,x.jsx)(a.rjZ,{item:!0,xs:12,children:(0,x.jsx)(l.Z,{})}),!y&&(0,x.jsxs)(o.Fragment,{children:[(0,x.jsxs)(a.rjZ,{item:!0,xs:12,sx:{fontSize:14,fontWeight:400},children:["This is a temporary URL with integrated access credentials for sharing objects valid for up to 7 days.",(0,x.jsx)("br",{}),(0,x.jsx)("br",{}),"The temporary URL expires after the configured time limit."]}),(0,x.jsx)("br",{}),(0,x.jsx)(a.rjZ,{item:!0,xs:12,children:(0,x.jsx)(b,{initialDate:K,id:"date",label:"Active for",maxDays:7,onChange:function(e,n){M(n),n?P(e):(P(""),Z(""))},entity:"Link"})}),(0,x.jsx)(a.rjZ,{item:!0,xs:12,sx:{marginBottom:10},children:(0,x.jsx)(a.bSr,{actionButton:(0,x.jsx)(c(),{text:C,children:(0,x.jsx)(a.zxk,{id:"copy-path",variant:"regular",onClick:function(){h((0,j.MK)("Share URL Copied to clipboard"))},disabled:""===C||O,style:{width:"28px",height:"28px",padding:"0px"},icon:(0,x.jsx)(a.TIy,{})})}),children:C})})]})]})})}},78562:function(e,n,t){t.r(n),t.d(n,{default:function(){return _}});var i=t(72791),o=t(56028),r=t(4942),a=t(29439),s=t(11135),c=t(25787),l=t(61889),d=t(40986),u=t(47922),h=t(45248),f=t(28182),m=t(16502),p=t(31776),x=t(26181),b=t.n(x),v=t(80184),j=(0,c.Z)((function(){return(0,s.Z)({iframeContainer:{border:"0px",flex:"1 1 auto",width:"100%",height:250,backgroundColor:"transparent",borderRadius:5,"&.image":{height:500},"&.text":{height:700},"&.audio":{height:150},"&.video":{height:350},"&.fullHeight":{height:"calc(100vh - 185px)"}},iframeBase:{backgroundColor:"#fff"},iframeHidden:{display:"none"}})}))((function(e){var n=e.bucketName,t=e.object,o=e.isFullscreen,s=void 0!==o&&o,c=e.classes,x=(0,i.useState)(!0),j=(0,a.Z)(x,2),g=j[0],_=j[1],S=(0,i.useState)(null),C=(0,a.Z)(S,2),Z=C[0],w=C[1],T=(0,i.useState)(!1),y=(0,a.Z)(T,2),N=y[0],F=y[1],E=(null===t||void 0===t?void 0:t.name)||"",O=(0,i.useCallback)((function(){if(!N){var e=(0,h.LL)(E);p.h.buckets.getObjectMetadata(n,{prefix:e}).then((function(e){var n=b()(e.data,"objectMetadata",{});F(!0),w(n)})).catch((function(e){console.error("Error Getting Metadata Status: ",e,null===e||void 0===e?void 0:e.detailedError),F(!0)}))}}),[n,E,N]);(0,i.useEffect)((function(){n&&E&&O()}),[n,E,O]);var I="";if(t){var k=(0,h.LL)(t.name),L=document.baseURI.replace(window.location.origin,"");I="".concat(window.location.origin).concat(L,"api/v1/buckets/").concat(n,"/objects/download?preview=true&prefix=").concat(k),t.version_id&&(I=I.concat("&version_id=".concat(t.version_id)))}var B=(0,u.s7)(Z,E),P=function(){_(!1)};return(0,v.jsxs)(i.Fragment,{children:["none"!==B&&g&&(0,v.jsx)(l.ZP,{item:!0,xs:12,children:(0,v.jsx)(d.Z,{})}),N?(0,v.jsxs)("div",{style:{textAlign:"center"},children:["video"===B&&(0,v.jsx)("video",{style:{width:"auto",height:"auto",maxWidth:"calc(100vw - 100px)",maxHeight:"calc(100vh - 200px)"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:P,children:(0,v.jsx)("source",{src:I,type:"video/mp4"})}),"audio"===B&&(0,v.jsx)("audio",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:P,children:(0,v.jsx)("source",{src:I,type:"audio/mpeg"})}),"image"===B&&(0,v.jsx)("img",{style:{width:"auto",height:"auto",maxWidth:"100vw",maxHeight:"100vh"},src:I,alt:"preview",onLoad:P}),"none"===B&&(0,v.jsx)("div",{children:(0,v.jsx)(m.Z,{label:" File couldn't be previewed using file extension or mime type. Please try Download instead",title:"Preview unavailable "})}),"none"!==B&&"video"!==B&&"audio"!==B&&"image"!==B&&(0,v.jsx)("div",{className:(0,f.Z)(c.iframeBase,(0,r.Z)({},c.iframeHidden,g)),children:(0,v.jsx)("iframe",{src:I,title:"File Preview",allowTransparency:!0,className:"".concat(c.iframeContainer," ").concat(s?"fullHeight":B),onLoad:P,children:"File couldn't be loaded. Please try Download instead"})})]}):null]})})),g=t(29945),_=function(e){var n=e.open,t=e.bucketName,r=e.object,a=e.onClosePreview;return(0,v.jsx)(i.Fragment,{children:(0,v.jsx)(o.Z,{modalOpen:n,title:"Preview - ".concat(null===r||void 0===r?void 0:r.name),onClose:a,wideLimit:!1,titleIcon:(0,v.jsx)(g.$30,{}),children:(0,v.jsx)(j,{bucketName:t,object:r})})})}},47922:function(e,n,t){t.d(n,{LR:function(){return c},P_:function(){return u},kh:function(){return h},s7:function(){return d}});var i=t(15671),o=t(43144),r=t(45248),a=t(76610),s=t(81551),c=function(e,n,t,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,c=arguments.length>5?arguments[5]:void 0,d=arguments.length>6?arguments[6]:void 0,u=arguments.length>7?arguments[7]:void 0,h=arguments.length>8?arguments[8]:void 0,f=arguments.length>9?arguments[9]:void 0,m=arguments.length>10?arguments[10]:void 0,p=document.createElement("a");document.body.appendChild(p);var x=document.baseURI.replace(window.location.origin,""),b=s.ZP.getState().system.anonymousMode,v="".concat(window.location.origin).concat(x,"api/v1/buckets/").concat(e,"/objects/download?prefix=").concat(n).concat(null!==o&&""!==o.trim()?"&override_file_name=".concat((0,r.LL)(o||"")):"");if(t&&(v=v.concat("&version_id=".concat(t))),i>53687091200)return new l(v,c,u,m);var j=new XMLHttpRequest;return j.open("GET",v,!0),b&&j.setRequestHeader("X-Anonymous","1"),j.addEventListener("progress",(function(e){var n=Math.round(e.loaded/i*100);d&&d(n)}),!1),j.responseType="blob",j.onreadystatechange=function(){if(4===j.readyState)if(200===j.status){var e=j.getResponseHeader("Content-Disposition"),n="download";if(e)n=decodeURIComponent(e).split('"')[1];u&&u(),(0,a.GM)(c);var t=document.createElement("a");t.href=window.URL.createObjectURL(j.response),t.download=n,document.body.appendChild(t),t.click(),document.body.removeChild(t)}else{if("application/json"===j.getResponseHeader("Content-Type")){var i=JSON.parse(j.response);if(i.detailedMessage)return void h(i.detailedMessage)}h("Unexpected response status code (".concat(j.status,")."))}},j.onerror=function(){h&&h("A network error occurred.")},j.onabort=function(){f&&f()},j},l=function(){function e(n,t,o,r){(0,i.Z)(this,e),this.path=void 0,this.id=void 0,this.completeCallback=void 0,this.toastCallback=void 0,this.path=n,this.id=t,this.completeCallback=o,this.toastCallback=r}return(0,o.Z)(e,[{key:"send",value:function(){this.toastCallback();var e=document.createElement("a");e.href=this.path,document.body.appendChild(e),e.click(),document.body.removeChild(e),this.completeCallback(),(0,a.GM)(this.id)}}]),e}(),d=function(e,n){var t=(e&&e["Content-Type"]||"").toString(),i=function(e){var n=e.split(".").pop();return n?(n=n.toLowerCase(),["jif","jfif","apng","avif","svg","webp","bmp","ico","jpg","jpe","jpeg","gif","png","heic"].includes(n)?"image":["pdf"].includes(n)?"text":["wav","mp3","alac","aiff","dsd","pcm"].includes(n)?"audio":["mp4","avi","mpg","webm","mov","flv","mkv","wmv","avchd","mpeg-4"].includes(n)?"video":"none"):"none"}(n||""),o=function(e){if(e){var n=(e||"").toLowerCase();if(n.includes("image"))return"image";if(n.includes("text"))return"text";if(n.includes("audio"))return"audio";if(n.includes("video"))return"video"}return"none"}(t),r=i;return i===o?r=i:"none"===i&&"none"!==o?r=o:"none"===o&&"none"!==i&&(r=i),r},u=function(e){switch(e){case"name":return function(e,n){return e.name.localeCompare(n.name)};case"last_modified":return function(e,n){return new Date(e.last_modified).getTime()-new Date(n.last_modified).getTime()};case"size":return function(e,n){return(e.size||-1)-(n.size||-1)}}},h=function(e,n,t){if(0===t.length)return null;var i=t.filter((function(n){var t,i;return(null===(t=n.resource)||void 0===t?void 0:t.endsWith(":".concat(e)))||(null===(i=n.resource)||void 0===i?void 0:i.includes(":".concat(e,"/")))}));if(0===i.length)return null;var o=[],r=n.split("/");if(i.forEach((function(e){var t,i,a=null===(t=e.resource)||void 0===t?void 0:t.split(":"),s=((null===a||void 0===a?void 0:a.pop())||"").split("/");(s.length>1&&s.every((function(e,n){return"*"!==e&&((!r[n]||r[n]===e)&&(r[n]||o.push({name:"".concat(e,"/"),size:0,last_modified:"",version_id:""}),!0))})),"StringEquals"===e.conditionOperator||"StringLike"===e.conditionOperator)&&(null===(i=e.prefixes)||void 0===i||i.forEach((function(e){if(""!==e){var t=e.split("/"),i=[],a=n.replace(/\/$/,"");if(!e.startsWith(a)&&""!==n)return;t.every((function(e,n){return!e.includes("*")&&""!==e&&(e!==r[n]?(o.push({name:"".concat(i.join("/")).concat(i.length>0?"/":"").concat(e,"/"),size:0,last_modified:"",version_id:""}),!1):(""!==e&&i.push(e),!0))}))}})))})),o.length>0){var a=[],s=[];o.forEach((function(e){s.includes(e.name)||(a.push(e),s.push(e.name))})),o=a}return o}},75578:function(e,n,t){var i=t(1413),o=t(72791),r=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(t){return(0,r.jsx)(o.Suspense,{fallback:n,children:(0,r.jsx)(e,(0,i.Z)({},t))})}}},34866:function(e,n,t){var i=t(1413),o=t(72791),r=t(61889),a=t(94454),s=t(30829),c=t(20068),l=t(11135),d=t(25787),u=t(23814),h=t(29945),f=t(80184);n.Z=(0,d.Z)((function(e){return(0,l.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},u.YI),u.Hr),u.lM),{},{fieldContainer:(0,i.Z)((0,i.Z)({},u.YI.fieldContainer),{},{display:"flex",justifyContent:"flex-start",alignItems:"center",margin:"15px 0",marginBottom:0,flexBasis:"initial",flexWrap:"nowrap"}),noTopMargin:{marginTop:0}}))}))((function(e){var n=e.label,t=e.onChange,i=e.value,l=e.id,d=e.name,u=e.checked,m=void 0!==u&&u,p=e.disabled,x=void 0!==p&&p,b=e.noTopMargin,v=void 0!==b&&b,j=e.tooltip,g=void 0===j?"":j,_=e.overrideLabelClasses,S=void 0===_?"":_,C=e.overrideCheckboxStyles,Z=e.classes,w=e.className;return(0,f.jsx)(o.Fragment,{children:(0,f.jsxs)(r.ZP,{item:!0,xs:12,className:"".concat(Z.fieldContainer," ").concat(v?Z.noTopMargin:""," ").concat(w||""),children:[(0,f.jsx)("div",{children:(0,f.jsx)(a.Z,{name:d,id:l,value:i,color:"primary",inputProps:{"aria-label":"secondary checkbox"},checked:m,onChange:t,checkedIcon:(0,f.jsx)("span",{className:Z.checkedIcon}),icon:(0,f.jsx)("span",{className:Z.unCheckedIcon}),disabled:x,disableRipple:!0,disableFocusRipple:!0,focusRipple:!1,centerRipple:!1,disableTouchRipple:!0,style:C||{}})}),""!==n&&(0,f.jsxs)(s.Z,{htmlFor:l,className:"".concat(Z.noMinWidthLabel," ").concat(S),children:[(0,f.jsx)("span",{children:n}),""!==g&&(0,f.jsx)("div",{className:Z.tooltipContainer,children:(0,f.jsx)(c.Z,{title:g,placement:"top-start",children:(0,f.jsx)("div",{className:Z.tooltip,children:(0,f.jsx)(h.byK,{})})})})]})]})})}))},81159:function(e,n,t){var i=t(4942),o=t(1413),r=t(72791),a=t(11135),s=t(25787),c=t(9955),l=t(30829),d=t(20068),u=t(20890),h=t(61889),f=t(23814),m=t(29945),p=t(28182),x=t(80184),b=(0,s.Z)((function(e){return{root:{width:50,height:24,padding:0,margin:0},switchBase:{padding:1,"&$checked":{transform:"translateX(24px)",color:e.palette.common.white,"& + $track":{backgroundColor:"#4CCB92",boxShadow:"inset 0px 1px 4px rgba(0,0,0,0.1)",opacity:1,border:"none"}},"&$focusVisible $thumb":{color:"#4CCB92",border:"6px solid #fff"}},thumb:{width:22,height:22,backgroundColor:"#FAFAFA",border:"2px solid #FFFFFF",marginLeft:1},track:{borderRadius:12,backgroundColor:"#E2E2E2",boxShadow:"inset 0px 1px 4px rgba(0,0,0,0.1)",opacity:1,transition:e.transitions.create(["background-color","border"])},checked:{},focusVisible:{},switchContainer:{display:"flex",alignItems:"center",justifyContent:"flex-end"}}}))(c.Z);n.Z=(0,s.Z)((function(e){return(0,a.Z)((0,o.Z)((0,o.Z)({indicatorLabelOn:{fontWeight:"bold",color:"#081C42 !important"},indicatorLabel:{fontSize:12,color:"#E2E2E2",margin:"0 8px 0 10px"},fieldDescription:{marginTop:4,color:"#999999"},tooltip:{fontSize:16}},f.OR),f.YI))}))((function(e){var n=e.label,t=void 0===n?"":n,a=e.onChange,s=e.value,c=e.id,f=e.name,v=e.checked,j=void 0!==v&&v,g=e.disabled,_=void 0!==g&&g,S=e.switchOnly,C=void 0!==S&&S,Z=e.tooltip,w=void 0===Z?"":Z,T=e.description,y=void 0===T?"":T,N=e.classes,F=e.indicatorLabels,E=e.extraInputProps,O=void 0===E?{}:E,I=(0,x.jsxs)(r.Fragment,{children:[!C&&(0,x.jsx)("span",{className:(0,p.Z)(N.indicatorLabel,(0,i.Z)({},N.indicatorLabelOn,!j)),children:F&&F.length>1?F[1]:"OFF"}),(0,x.jsx)(b,{checked:j,onChange:a,color:"primary",name:f,inputProps:(0,o.Z)({"aria-label":"primary checkbox"},O),disabled:_,disableRipple:!0,disableFocusRipple:!0,disableTouchRipple:!0,value:s,id:c}),!C&&(0,x.jsx)("span",{className:(0,p.Z)(N.indicatorLabel,(0,i.Z)({},N.indicatorLabelOn,j)),children:F?F[0]:"ON"})]});return C?I:(0,x.jsx)("div",{children:(0,x.jsxs)(h.ZP,{container:!0,alignItems:"center",children:[(0,x.jsx)(h.ZP,{item:!0,xs:12,sm:8,md:8,children:""!==t&&(0,x.jsxs)(l.Z,{htmlFor:c,className:N.inputLabel,children:[(0,x.jsx)("span",{children:t}),""!==w&&(0,x.jsx)("div",{className:N.tooltipContainer,children:(0,x.jsx)(d.Z,{title:w,placement:"top-start",children:(0,x.jsx)("div",{className:N.tooltip,children:(0,x.jsx)(m.byK,{})})})})]})}),(0,x.jsx)(h.ZP,{item:!0,xs:12,sm:""!==t?4:12,md:""!==t?4:12,textAlign:"right",justifyContent:"end",className:N.switchContainer,children:I}),""!==y&&(0,x.jsx)(h.ZP,{item:!0,xs:12,textAlign:"left",children:(0,x.jsx)(u.Z,{component:"p",className:N.fieldDescription,children:y})})]})})}))},21435:function(e,n,t){var i=t(29439),o=t(1413),r=t(72791),a=t(27391),s=t(61889),c=t(30829),l=t(20068),d=t(13400),u=t(20165),h=t(3579),f=t(11135),m=t(72455),p=t(25787),x=t(23814),b=t(29945),v=t(28182),j=t(80184),g=(0,m.Z)((function(e){return(0,f.Z)((0,o.Z)({},x.gM))}));function _(e){var n=g();return(0,j.jsx)(a.Z,(0,o.Z)({InputProps:{classes:n}},e))}n.Z=(0,p.Z)((function(e){return(0,f.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},x.YI),x.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative"},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}}}))}))((function(e){var n=e.label,t=e.onChange,a=e.value,f=e.id,m=e.name,p=e.type,x=void 0===p?"text":p,g=e.autoComplete,S=void 0===g?"off":g,C=e.disabled,Z=void 0!==C&&C,w=e.multiline,T=void 0!==w&&w,y=e.tooltip,N=void 0===y?"":y,F=e.index,E=void 0===F?0:F,O=e.error,I=void 0===O?"":O,k=e.required,L=void 0!==k&&k,B=e.placeholder,P=void 0===B?"":B,A=e.min,D=e.max,R=e.overlayId,M=e.overlayIcon,U=void 0===M?null:M,z=e.overlayObject,G=void 0===z?null:z,W=e.extraInputProps,K=void 0===W?{}:W,H=e.overlayAction,V=e.noLabelMinWidth,J=void 0!==V&&V,Y=e.pattern,q=void 0===Y?"":Y,$=e.autoFocus,X=void 0!==$&&$,Q=e.classes,ee=e.className,ne=void 0===ee?"":ee,te=e.onKeyPress,ie=e.onFocus,oe=e.onPaste,re=(0,o.Z)({"data-index":E},K),ae=(0,r.useState)(!1),se=(0,i.Z)(ae,2),ce=se[0],le=se[1];"number"===x&&A&&(re.min=A),"number"===x&&D&&(re.max=D),""!==q&&(re.pattern=q);var de=U,ue=x;return"password"===x&&null===U&&(de=ce?(0,j.jsx)(u.Z,{}):(0,j.jsx)(h.Z,{}),ue=ce?"text":"password"),(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)(s.ZP,{container:!0,className:(0,v.Z)(""!==ne?ne:"",""!==I?Q.errorInField:Q.inputBoxContainer),children:[""!==n&&(0,j.jsxs)(c.Z,{htmlFor:f,className:J?Q.noMinWidthLabel:Q.inputLabel,children:[(0,j.jsxs)("span",{children:[n,L?"*":""]}),""!==N&&(0,j.jsx)("div",{className:Q.tooltipContainer,children:(0,j.jsx)(l.Z,{title:N,placement:"top-start",children:(0,j.jsx)("div",{className:Q.tooltip,children:(0,j.jsx)(b.byK,{})})})})]}),(0,j.jsxs)("div",{className:Q.textBoxContainer,children:[(0,j.jsx)(_,{id:f,name:m,fullWidth:!0,value:a,autoFocus:X,disabled:Z,onChange:t,type:ue,multiline:T,autoComplete:S,inputProps:re,error:""!==I,helperText:I,placeholder:P,className:Q.inputRebase,onKeyPress:te,onFocus:ie,onPaste:oe}),de&&(0,j.jsx)("div",{className:"".concat(Q.overlayAction," ").concat(""!==n?"withLabel":""),children:(0,j.jsx)(d.Z,{onClick:H?function(){H()}:function(){return le(!ce)},id:R,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:de})}),G&&(0,j.jsx)("div",{className:"".concat(Q.overlayAction," ").concat(""!==n?"withLabel":""),children:G})]})]})})}))},16502:function(e,n,t){t(72791);var i=t(11135),o=t(25787),r=t(80184);n.Z=(0,o.Z)((function(e){return(0,i.Z)({headerContainer:{backgroundColor:"#e78794",borderRadius:3,marginBottom:20,padding:1,paddingBottom:15},labelHeadline:{color:"#000000",fontSize:14,marginLeft:20},labelText:{color:"#000000",fontSize:14,marginLeft:20,marginRight:40}})}))((function(e){var n=e.classes,t=e.label,i=e.title;return(0,r.jsxs)("div",{className:n.headerContainer,children:[(0,r.jsx)("h4",{className:n.labelHeadline,children:i}),(0,r.jsx)("div",{className:n.labelText,children:t})]})}))},73669:function(e,n,t){var i=t(29439),o=t(72791),r=t(64554),a=t(29945),s=t(21435),c=t(80184);n.Z=function(e){var n=e.value,t=(0,o.useState)(!1),l=(0,i.Z)(t,2),d=l[0],u=l[1];return(0,c.jsxs)(r.Z,{sx:{display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,c.jsx)(s.Z,{id:"inspect-dec-key",name:"inspect-dec-key",placeholder:"",label:"",type:d?"text":"password",onChange:function(){},value:n,overlayIcon:(0,c.jsx)(a.TIy,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(n)}}),(0,c.jsx)(a.zxk,{id:"show-hide-key",style:{marginLeft:"10px"},variant:"callAction",onClick:function(){return u(!d)},label:"Show/Hide"})]})}},26824:function(e,n,t){t.d(n,{HE:function(){return r},V9:function(){return i},ci:function(){return o},x2:function(){return a}});var i=1006,o=1008,r=1011,a=function(e){var n="ws";return"https:"===e&&(n="wss"),n}}}]);
-//# sourceMappingURL=2603.500676d6.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/2603.500676d6.chunk.js.map b/portal-ui/build/static/js/2603.500676d6.chunk.js.map
deleted file mode 100644
index 1357a5027..000000000
--- a/portal-ui/build/static/js/2603.500676d6.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/2603.500676d6.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddAccessRule.tsx","screens/Console/Buckets/BucketDetails/BrowserHandler.tsx","screens/Console/Buckets/ListBuckets/UploadPermissionUtils.ts","screens/Console/ObjectBrowser/BrowserBreadcrumbs.tsx","screens/Console/Buckets/ListBuckets/UploadFilesButton.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DetailsListPanel.tsx","screens/Console/Common/FormComponents/DateSelector/utils.ts","screens/Console/Common/FormComponents/DateSelector/DateSelector.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SetRetention.tsx","utils/validationFunctions.ts","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DeleteObject.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SetLegalHoldModal.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/ObjectMetaData.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/IconWithLabel.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/utils.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/TagsModal.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/InspectObject.tsx","screens/Console/ObjectBrowser/utils.ts","screens/Console/ObjectBrowser/RenameLongFilename.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/RestoreFileVersion.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/SpecificVersionPill.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/FileVersionItem.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DeleteNonCurrent.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/DeleteSelectedVersions.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/VersionsNavigator.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsHelpers.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsTable.tsx","screens/Console/ObjectBrowser/objectBrowserThunks.ts","screens/Console/ObjectBrowser/FilterObjectsSB.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx","screens/Console/ObjectBrowser/OBHeader.tsx","screens/Console/Common/FormComponents/DaysSelector/DaysSelector.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/ShareFile.tsx","screens/Console/Buckets/ListBuckets/Objects/Preview/PreviewFileContent.tsx","screens/Console/Buckets/ListBuckets/Objects/Preview/PreviewFileModal.tsx","screens/Console/Buckets/ListBuckets/Objects/utils.ts","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/FormComponents/CheckboxWrapper/CheckboxWrapper.tsx","screens/Console/Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper.tsx","screens/Console/Common/FormComponents/InputBoxWrapper/InputBoxWrapper.tsx","screens/Console/Common/WarningMessage/WarningMessage.tsx","screens/Console/Tools/KeyRevealer.tsx","utils/wsUtils.ts"],"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 ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport {\n AddAccessRuleIcon,\n Button,\n FormLayout,\n Grid,\n InputBox,\n Select,\n} from \"mds\";\nimport { api } from \"api\";\nimport { errorToHandler } from \"api/errors\";\nimport { modalStyleUtils } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IAddAccessRule {\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n prefilledRoute?: string;\n}\n\nconst AddAccessRule = ({\n modalOpen,\n onClose,\n bucket,\n prefilledRoute,\n}: IAddAccessRule) => {\n const dispatch = useAppDispatch();\n\n const [prefix, setPrefix] = useState(\"\");\n const [selectedAccess, setSelectedAccess] = useState(\"readonly\");\n\n useEffect(() => {\n if (prefilledRoute) {\n setPrefix(prefilledRoute);\n }\n }, [prefilledRoute]);\n\n const accessOptions = [\n { label: \"readonly\", value: \"readonly\" },\n { label: \"writeonly\", value: \"writeonly\" },\n { label: \"readwrite\", value: \"readwrite\" },\n ];\n\n const resetForm = () => {\n setPrefix(\"\");\n setSelectedAccess(\"readonly\");\n };\n\n const createProcess = () => {\n api.bucket\n .setAccessRuleWithBucket(bucket, {\n prefix: prefix,\n access: selectedAccess,\n })\n .then((res: any) => {\n dispatch(setSnackBarMessage(\"Access Rule added successfully\"));\n onClose();\n })\n .catch((err) => {\n dispatch(setErrorSnackMessage(errorToHandler(err)));\n onClose();\n });\n };\n\n return (\n }\n >\n \n {\n setPrefix(e.target.value);\n }}\n tooltip={\n \"Enter '/' to apply the rule to all prefixes and objects at the bucket root. Do not include the wildcard asterisk '*' as part of the prefix *unless* it is an explicit part of the prefix name. The Console automatically appends an asterisk to the appropriate sections of the resulting IAM policy.\"\n }\n />\n {\n setSelectedAccess(value);\n }}\n label=\"Access\"\n value={selectedAccess}\n options={accessOptions}\n disabled={false}\n />\n \n \n\n \n \n \n \n );\n};\n\nexport default AddAccessRule;\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 } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useLocation, useParams } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\n\nimport ListObjects from \"../ListBuckets/Objects/ListObjects/ListObjects\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport {\n errorInConnection,\n newMessage,\n resetMessages,\n setIsOpeningOD,\n setIsVersioned,\n setLoadingLocking,\n setLoadingObjectInfo,\n setLoadingObjects,\n setLoadingRecords,\n setLoadingVersioning,\n setLoadingVersions,\n setLockingEnabled,\n setObjectDetailsView,\n setRecords,\n setSelectedObjectView,\n setSimplePathHandler,\n setVersionsModeEnabled,\n} from \"../../ObjectBrowser/objectBrowserSlice\";\nimport hasPermission from \"../../../../common/SecureComponent/accessControl\";\nimport { IMessageEvent } from \"websocket\";\nimport { wsProtocol } from \"../../../../utils/wsUtils\";\nimport {\n WebsocketRequest,\n WebsocketResponse,\n} from \"../ListBuckets/Objects/ListObjects/types\";\nimport { decodeURLString, encodeURLString } from \"../../../../common/utils\";\nimport { permissionItems } from \"../ListBuckets/Objects/utils\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport OBHeader from \"../../ObjectBrowser/OBHeader\";\nimport { api } from \"api\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...containerForHeader,\n });\n\nlet objectsWS: WebSocket;\nlet currentRequestID: number = 0;\nlet errorCounter: number = 0;\nlet wsInFlight: boolean = false;\n\nconst initWSConnection = (\n openCallback?: () => void,\n onMessageCallback?: (message: IMessageEvent) => void,\n connErrorCallback?: (message: string) => void,\n) => {\n if (wsInFlight) {\n return;\n }\n wsInFlight = true;\n const url = new URL(window.location.toString());\n const isDev = process.env.NODE_ENV === \"development\";\n const port = isDev ? \"9090\" : url.port;\n\n // check if we are using base path, if not this always is `/`\n const baseLocation = new URL(document.baseURI);\n const baseUrl = baseLocation.pathname;\n\n const wsProt = wsProtocol(url.protocol);\n\n objectsWS = new WebSocket(\n `${wsProt}://${url.hostname}:${port}${baseUrl}ws/objectManager`,\n );\n\n objectsWS.onopen = () => {\n wsInFlight = false;\n if (openCallback) {\n openCallback();\n }\n errorCounter = 0;\n };\n\n if (onMessageCallback) {\n objectsWS.onmessage = onMessageCallback;\n }\n\n const reconnectFn = () => {\n if (errorCounter <= 5) {\n initWSConnection(() => {}, onMessageCallback, connErrorCallback);\n errorCounter += 1;\n } else {\n console.error(\n \"Websocket not available. Please review that your environment settings are enabled to allow websocket connections and that requests are made from the same origin.\",\n );\n if (connErrorCallback) {\n connErrorCallback(\n \"Couldn't establish WebSocket connection. Please review your configuration and try again.\",\n );\n }\n }\n };\n\n objectsWS.onclose = () => {\n wsInFlight = false;\n console.warn(\"Websocket Disconnected. Attempting Reconnection...\");\n\n // We reconnect after 3 seconds\n setTimeout(reconnectFn, 3000);\n };\n\n objectsWS.onerror = () => {\n wsInFlight = false;\n console.error(\"Error in websocket connection. Attempting reconnection...\");\n // Onclose will be triggered by specification, reconnect function will be executed there to avoid duplicated requests\n };\n};\n\nconst BrowserHandler = () => {\n const dispatch = useAppDispatch();\n const params = useParams();\n const location = useLocation();\n\n const loadingVersioning = useSelector(\n (state: AppState) => state.objectBrowser.loadingVersioning,\n );\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled,\n );\n const rewindDate = useSelector(\n (state: AppState) => state.objectBrowser.rewind.dateToRewind,\n );\n const showDeleted = useSelector(\n (state: AppState) => state.objectBrowser.showDeleted,\n );\n const allowResources = useSelector(\n (state: AppState) => state.console.session.allowResources,\n );\n const loadingObjects = useSelector(\n (state: AppState) => state.objectBrowser.loadingObjects,\n );\n const loadingLocking = useSelector(\n (state: AppState) => state.objectBrowser.loadingLocking,\n );\n const loadRecords = useSelector(\n (state: AppState) => state.objectBrowser.loadRecords,\n );\n const selectedInternalPaths = useSelector(\n (state: AppState) => state.objectBrowser.selectedInternalPaths,\n );\n const simplePath = useSelector(\n (state: AppState) => state.objectBrowser.simplePath,\n );\n const isOpeningOD = useSelector(\n (state: AppState) => state.objectBrowser.isOpeningObjectDetail,\n );\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const bucketName = params.bucketName || \"\";\n const pathSegment = location.pathname.split(`/browser/${bucketName}/`);\n const internalPaths = pathSegment.length === 2 ? pathSegment[1] : \"\";\n\n /*WS Request Handlers*/\n const onMessageCallBack = useCallback(\n (message: IMessageEvent) => {\n // reset start status\n dispatch(setLoadingObjects(false));\n\n const response: WebsocketResponse = JSON.parse(message.data.toString());\n if (currentRequestID === response.request_id) {\n // If response is not from current request, we can omit\n if (response.request_id !== currentRequestID) {\n return;\n }\n\n if (\n response.error ===\n \"The Access Key Id you provided does not exist in our records.\"\n ) {\n // Session expired.\n window.location.reload();\n } else if (response.error === \"Access Denied.\") {\n const internalPathsPrefix = response.prefix;\n let pathPrefix = \"\";\n\n if (internalPathsPrefix) {\n const decodedPath = decodeURLString(internalPathsPrefix);\n\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n\n const permitItems = permissionItems(\n response.bucketName || bucketName,\n pathPrefix,\n allowResources || [],\n );\n\n if (!permitItems || permitItems.length === 0) {\n dispatch(\n setErrorSnackMessage({\n errorMessage: response.error,\n detailedError: response.error,\n }),\n );\n } else {\n dispatch(setRecords(permitItems));\n }\n\n return;\n }\n\n // This indicates final messages is received.\n if (response.request_end) {\n dispatch(setLoadingObjects(false));\n dispatch(setLoadingRecords(false));\n return;\n }\n\n if (response.data) {\n dispatch(newMessage(response.data));\n }\n }\n },\n [dispatch, allowResources, bucketName],\n );\n\n const initWSRequest = useCallback(\n (path: string, date: Date) => {\n if (objectsWS && objectsWS.readyState === 1) {\n try {\n const newRequestID = currentRequestID + 1;\n dispatch(resetMessages());\n dispatch(errorInConnection(false));\n\n const request: WebsocketRequest = {\n bucket_name: bucketName,\n prefix: encodeURLString(path),\n mode: rewindEnabled || showDeleted ? \"rewind\" : \"objects\",\n date: date.toISOString(),\n request_id: newRequestID,\n };\n\n objectsWS.send(JSON.stringify(request));\n\n // We store the new ID for the requestID\n currentRequestID = newRequestID;\n } catch (e) {\n console.error(e);\n }\n } else {\n // Socket is disconnected, we request reconnection but will need to recreate call\n const dupRequest = () => {\n initWSRequest(path, date);\n };\n\n const fatalWSError = (message: string) => {\n dispatch(\n setErrorSnackMessage({\n errorMessage: message,\n detailedError: message,\n }),\n );\n dispatch(errorInConnection(true));\n };\n\n initWSConnection(dupRequest, onMessageCallBack, fatalWSError);\n }\n },\n [bucketName, rewindEnabled, showDeleted, dispatch, onMessageCallBack],\n );\n\n useEffect(() => {\n return () => {\n const request: WebsocketRequest = {\n mode: \"cancel\",\n request_id: currentRequestID,\n };\n\n if (objectsWS && objectsWS.readyState === 1) {\n objectsWS.send(JSON.stringify(request));\n }\n };\n }, []);\n\n useEffect(() => {\n const decodedIPaths = decodeURLString(internalPaths);\n\n dispatch(setLoadingVersioning(true));\n\n if (decodedIPaths.endsWith(\"/\") || decodedIPaths === \"\") {\n dispatch(setObjectDetailsView(false));\n dispatch(setSelectedObjectView(null));\n dispatch(\n setSimplePathHandler(decodedIPaths === \"\" ? \"/\" : decodedIPaths),\n );\n dispatch(setLoadingLocking(true));\n } else {\n dispatch(setLoadingObjectInfo(true));\n dispatch(setObjectDetailsView(true));\n dispatch(setLoadingVersions(true));\n dispatch(\n setSelectedObjectView(\n `${decodedIPaths ? `${encodeURLString(decodedIPaths)}` : ``}`,\n ),\n );\n dispatch(\n setSimplePathHandler(\n `${decodedIPaths.split(\"/\").slice(0, -1).join(\"/\")}/`,\n ),\n );\n }\n }, [bucketName, internalPaths, rewindDate, rewindEnabled, dispatch]);\n\n // Direct file access effect / prefix\n useEffect(() => {\n if (!loadingObjects && !loadRecords && !rewindEnabled && !isOpeningOD) {\n // No requests are in progress, We review current path, if it doesn't end in '/' and current list is empty then we trigger a new request.\n const decodedInternalPaths = decodeURLString(internalPaths);\n\n if (\n !decodedInternalPaths.endsWith(\"/\") &&\n simplePath !== decodedInternalPaths &&\n decodedInternalPaths !== \"\"\n ) {\n setLoadingRecords(true);\n const parentPath = `${decodedInternalPaths\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\")}/`;\n\n initWSRequest(parentPath, new Date());\n }\n }\n dispatch(setIsOpeningOD(false));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n loadingObjects,\n loadRecords,\n dispatch,\n internalPaths,\n initWSRequest,\n rewindEnabled,\n simplePath,\n ]);\n\n const displayListObjects =\n hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n IAM_SCOPES.S3_ALL_LIST_BUCKET,\n ]) || anonymousMode;\n\n // Common objects list\n useEffect(() => {\n // begin watch if bucketName in bucketList and start pressed\n if (loadingObjects && displayListObjects) {\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeURLString(internalPaths);\n\n // internalPaths are selected (file details), we split and get parent folder\n if (selectedInternalPaths === internalPaths) {\n pathPrefix = `${decodeURLString(internalPaths)\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\")}/`;\n } else {\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n }\n\n let requestDate = new Date();\n\n if (rewindEnabled && rewindDate) {\n requestDate = new Date(rewindDate);\n }\n initWSRequest(pathPrefix, requestDate);\n } else {\n dispatch(setLoadingObjects(false));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n loadingObjects,\n internalPaths,\n dispatch,\n rewindDate,\n rewindEnabled,\n displayListObjects,\n initWSRequest,\n ]);\n\n useEffect(() => {\n dispatch(setVersionsModeEnabled({ status: false }));\n }, [internalPaths, dispatch]);\n\n useEffect(() => {\n if (loadingVersioning && !anonymousMode) {\n if (displayListObjects) {\n api.buckets\n .getBucketVersioning(bucketName)\n .then((res) => {\n dispatch(setIsVersioned(res.data));\n dispatch(setLoadingVersioning(false));\n })\n .catch((err) => {\n console.error(\n \"Error Getting Object Versioning Status: \",\n err.error.detailedMessage,\n );\n dispatch(setLoadingVersioning(false));\n });\n } else {\n dispatch(setLoadingVersioning(false));\n dispatch(resetMessages());\n }\n }\n }, [\n bucketName,\n loadingVersioning,\n dispatch,\n displayListObjects,\n anonymousMode,\n ]);\n\n useEffect(() => {\n if (loadingLocking) {\n if (displayListObjects) {\n api.buckets\n .getBucketObjectLockingStatus(bucketName)\n .then((res) => {\n dispatch(setLockingEnabled(res.data.object_locking_enabled));\n dispatch(setLoadingLocking(false));\n })\n .catch((err) => {\n console.error(\n \"Error Getting Object Locking Status: \",\n err.error.detailedMessage,\n );\n dispatch(setLoadingLocking(false));\n });\n } else {\n dispatch(resetMessages());\n dispatch(setLoadingLocking(false));\n }\n }\n }, [bucketName, loadingLocking, dispatch, displayListObjects]);\n\n useEffect(() => {\n // when a bucket param changes, (i.e /browser/:bucketName), re-init e.g with KBar, this should not apply for resources prefixes.\n const permitItems = permissionItems(bucketName, \"\", allowResources || []);\n\n if (bucketName && (!permitItems || permitItems.length === 0)) {\n dispatch(resetMessages());\n dispatch(setLoadingRecords(true));\n dispatch(setLoadingObjects(true));\n\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeURLString(internalPaths);\n\n // internalPaths are selected (file details), we split and get parent folder\n if (selectedInternalPaths === internalPaths) {\n pathPrefix = `${decodeURLString(internalPaths)\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\")}/`;\n } else {\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n }\n\n initWSRequest(pathPrefix, new Date());\n }\n }, [\n bucketName,\n dispatch,\n initWSRequest,\n allowResources,\n internalPaths,\n selectedInternalPaths,\n ]);\n\n return (\n \n {!anonymousMode && }\n \n \n );\n};\n\nexport default withStyles(styles)(BrowserHandler);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2023 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 extractFileExtn = (resourceStr: string) => {\n //file extensions may contain query string. so exclude query strings !\n return (resourceStr.match(/\\.([^.]*?)(?=\\?|#|$)/) || [])[1];\n};\nexport const getPolicyAllowedFileExtensions = (\n sessionGrants: Record,\n uploadPath: string,\n scopes: string[] = [],\n) => {\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n uploadPath,\n scopes,\n );\n\n //get acceptable files if any in the policy.\n const allowedFileExtensions = sessionGrantWildCards.reduce(\n (acc: string[], cv: string) => {\n const extension: string = extractFileExtn(cv);\n if (extension) {\n acc.push(`.${extension}`); //strict extension matching.\n }\n return acc;\n },\n [],\n );\n\n const uniqueExtensions = [...new Set(allowedFileExtensions)];\n return uniqueExtensions.join(\",\");\n};\n\n// The resource should not have the extensions (*.ext) for the hasPermission to work.\n// so sanitize this and also use to extract the allowed extensions outside of permission check.\nexport const getSessionGrantsWildCard = (\n sessionGrants: Record,\n uploadPath: string,\n scopes: string[] = [],\n) => {\n //get only the path matching grants to reduce processing.\n const grantsWithExtension = Object.keys(sessionGrants).reduce(\n (acc: Record, grantKey: string) => {\n if (extractFileExtn(grantKey) && grantKey.includes(uploadPath)) {\n acc[grantKey] = sessionGrants[grantKey];\n }\n return acc;\n },\n {},\n );\n\n const checkPathsForPermission = (sessionGrantKey: string) => {\n const grantActions = grantsWithExtension[sessionGrantKey];\n const hasScope = grantActions.some((actionKey) =>\n scopes.find((scopeKey) => {\n let wildCardMatch = false;\n const hasWildCard = scopeKey.indexOf(\"*\") !== -1;\n if (hasWildCard) {\n const scopeActionKey = scopeKey.substring(0, scopeKey.length - 1);\n\n wildCardMatch = actionKey.includes(scopeActionKey);\n }\n\n return wildCardMatch || actionKey === scopeKey;\n }),\n );\n\n const sessionGrantKeyPath = sessionGrantKey.substring(\n 0,\n sessionGrantKey.indexOf(\"/*.\"), //start of extension part.\n );\n const isUploadPathMatching =\n sessionGrantKeyPath === `arn:aws:s3:::${uploadPath}`;\n\n const hasGrant =\n isUploadPathMatching && sessionGrantKey !== \"arn:aws:s3:::*\";\n\n return hasScope && hasGrant;\n };\n\n return Object.keys(grantsWithExtension).filter(checkPathsForPermission);\n};\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, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { objectBrowserCommon } from \"../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString, safeDecodeURIComponent } from \"../../../common/utils\";\nimport { Button, CopyIcon, NewPathIcon, Tooltip, Breadcrumbs } from \"mds\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../common/SecureComponent/permissions\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setVersionsModeEnabled } from \"./objectBrowserSlice\";\nimport { getSessionGrantsWildCard } from \"../Buckets/ListBuckets/UploadPermissionUtils\";\n\nconst CreatePathModal = withSuspense(\n React.lazy(\n () => import(\"../Buckets/ListBuckets/Objects/ListObjects/CreatePathModal\"),\n ),\n);\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...objectBrowserCommon,\n slashSpacingStyle: {\n margin: \"0 5px\",\n },\n }),\n);\n\ninterface IObjectBrowser {\n bucketName: string;\n internalPaths: string;\n hidePathButton?: boolean;\n additionalOptions?: React.ReactNode;\n}\n\nconst BrowserBreadcrumbs = ({\n bucketName,\n internalPaths,\n hidePathButton,\n additionalOptions,\n}: IObjectBrowser) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const classes = useStyles();\n\n const rewindEnabled = useSelector(\n (state: AppState) => state.objectBrowser.rewind.rewindEnabled,\n );\n const versionsMode = useSelector(\n (state: AppState) => state.objectBrowser.versionsMode,\n );\n const versionedFile = useSelector(\n (state: AppState) => state.objectBrowser.versionedFile,\n );\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const [createFolderOpen, setCreateFolderOpen] = useState(false);\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\n\n let paths = internalPaths;\n\n if (internalPaths !== \"\") {\n paths = `/${internalPaths}`;\n }\n\n const splitPaths = paths.split(\"/\").filter((path) => path !== \"\");\n const lastBreadcrumbsIndex = splitPaths.length - 1;\n\n const pathToCheckPerms = paths || bucketName;\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n pathToCheckPerms,\n putObjectPermScopes,\n );\n\n const canCreatePath =\n hasPermission(\n [pathToCheckPerms, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) || anonymousMode;\n\n let breadcrumbsMap = splitPaths.map((objectItem: string, index: number) => {\n const subSplit = `${splitPaths.slice(0, index + 1).join(\"/\")}/`;\n const route = `/browser/${bucketName}/${\n subSplit ? `${encodeURLString(subSplit)}` : ``\n }`;\n\n if (index === lastBreadcrumbsIndex && objectItem === versionedFile) {\n return null;\n }\n\n return (\n \n /\n {index === lastBreadcrumbsIndex ? (\n \n {safeDecodeURIComponent(objectItem) /*Only for display*/}\n \n ) : (\n {\n dispatch(\n setVersionsModeEnabled({ status: false, objectName: \"\" }),\n );\n }}\n >\n {\n safeDecodeURIComponent(\n objectItem,\n ) /*Only for display to preserve */\n }\n \n )}\n \n );\n });\n\n let versionsItem: any[] = [];\n\n if (versionsMode) {\n versionsItem = [\n \n \n /\n {versionedFile} - Versions\n \n ,\n ];\n }\n\n const listBreadcrumbs: any[] = [\n \n {\n dispatch(setVersionsModeEnabled({ status: false, objectName: \"\" }));\n }}\n >\n {bucketName}\n \n ,\n ...breadcrumbsMap,\n ...versionsItem,\n ];\n\n const closeAddFolderModal = () => {\n setCreateFolderOpen(false);\n };\n\n const goBackFunction = () => {\n if (versionsMode) {\n dispatch(setVersionsModeEnabled({ status: false, objectName: \"\" }));\n } else {\n if (splitPaths.length === 0) {\n navigate(\"/browser\");\n\n return;\n }\n\n const prevPath = splitPaths.slice(0, -1);\n\n navigate(\n `/browser/${bucketName}${\n prevPath.length > 0\n ? `/${encodeURLString(`${prevPath.join(\"/\")}/`)}`\n : \"\"\n }`,\n );\n }\n };\n\n return (\n \n
\n \n );\n};\n\nexport default BrowserBreadcrumbs;\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, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { CSSObject } from \"styled-components\";\nimport { Menu, MenuItem } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport { Button, UploadFolderIcon, UploadIcon } from \"mds\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport { useSelector } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\nimport { getSessionGrantsWildCard } from \"./UploadPermissionUtils\";\n\ninterface IUploadFilesButton {\n uploadPath: string;\n bucketName: string;\n forceDisable?: boolean;\n uploadFileFunction: (closeFunction: () => void) => void;\n uploadFolderFunction: (closeFunction: () => void) => void;\n classes: any;\n overrideStyles?: CSSObject;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n listUploadIcons: {\n height: 20,\n \"& .min-icon\": {\n width: 18,\n fill: \"rgba(0,0,0,0.87)\",\n },\n },\n });\n\nconst UploadFilesButton = ({\n uploadPath,\n bucketName,\n forceDisable = false,\n uploadFileFunction,\n uploadFolderFunction,\n classes,\n overrideStyles = {},\n}: IUploadFilesButton) => {\n const anonymousMode = useSelector(\n (state: AppState) => state.system.anonymousMode,\n );\n\n const sessionGrants = useSelector((state: AppState) =>\n state.console.session ? state.console.session.permissions || {} : {},\n );\n\n const putObjectPermScopes = [\n IAM_SCOPES.S3_PUT_OBJECT,\n IAM_SCOPES.S3_PUT_ACTIONS,\n ];\n\n const sessionGrantWildCards = getSessionGrantsWildCard(\n sessionGrants,\n uploadPath,\n putObjectPermScopes,\n );\n\n const [anchorEl, setAnchorEl] = useState(null);\n const openUploadMenu = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleCloseUpload = () => {\n setAnchorEl(null);\n };\n\n const uploadObjectAllowed =\n hasPermission(\n [uploadPath, ...sessionGrantWildCards],\n putObjectPermScopes,\n ) || anonymousMode;\n\n const uploadFolderAllowed = hasPermission(\n [bucketName, ...sessionGrantWildCards],\n putObjectPermScopes,\n false,\n true,\n );\n\n const uploadEnabled: boolean = uploadObjectAllowed || uploadFolderAllowed;\n\n return (\n \n \n }\n variant={\"callAction\"}\n disabled={forceDisable || !uploadEnabled}\n sx={overrideStyles}\n />\n \n \n \n );\n};\n\nexport default withStyles(styles)(UploadFilesButton);\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\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Button, ClosePanelIcon, Grid } from \"mds\";\nimport makeStyles from \"@mui/styles/makeStyles\";\n\ninterface IDetailsListPanel {\n open: boolean;\n className?: string;\n closePanel: () => void;\n children: React.ReactNode;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n detailsList: {\n borderColor: \"#EAEDEE\",\n borderWidth: 0,\n borderStyle: \"solid\",\n borderRadius: 3,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n width: 0,\n transitionDuration: \"0.3s\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n position: \"relative\",\n opacity: 0,\n marginLeft: -1,\n \"&.open\": {\n width: 300,\n minWidth: 300,\n borderLeftWidth: 1,\n opacity: 1,\n },\n \"@media (max-width: 799px)\": {\n \"&.open\": {\n width: \"100%\",\n minWidth: \"100%\",\n borderLeftWidth: 0,\n },\n },\n },\n }),\n);\n\nconst DetailsListPanel = ({\n open,\n closePanel,\n className = \"\",\n children,\n}: IDetailsListPanel) => {\n const classes = useStyles();\n\n return (\n \n }\n sx={{\n position: \"absolute\",\n right: 5,\n top: 18,\n padding: 0,\n height: 14,\n \"&:hover:not(:disabled)\": {\n backgroundColor: \"transparent\",\n },\n }}\n />\n {children}\n \n );\n};\n\nexport default DetailsListPanel;\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 months = [\n { value: \"01\", label: \"January\" },\n { value: \"02\", label: \"February\" },\n { value: \"03\", label: \"March\" },\n { value: \"04\", label: \"April\" },\n { value: \"05\", label: \"May\" },\n { value: \"06\", label: \"June\" },\n { value: \"07\", label: \"July\" },\n { value: \"08\", label: \"August\" },\n { value: \"09\", label: \"September\" },\n { value: \"10\", label: \"October\" },\n { value: \"11\", label: \"November\" },\n { value: \"12\", label: \"December\" },\n];\n\nexport const days = Array.from(Array(31), (_, num) => ({\n value: (num + 1).toString(),\n label: (num + 1).toString(),\n}));\n\nconst currentYear = new Date().getFullYear();\n\nexport const years = Array.from(Array(50), (_, numYear) => ({\n value: (numYear + currentYear).toString(),\n label: (numYear + currentYear).toString(),\n}));\n\nexport const validDate = (year: string, month: string, day: string): any[] => {\n const currentDate = Date.parse(`${year}-${month}-${day}`);\n\n if (isNaN(currentDate)) {\n return [false, \"\"];\n }\n\n const parsedMonth = parseInt(month);\n const parsedDay = parseInt(day);\n\n const monthForString = parsedMonth < 10 ? `0${parsedMonth}` : parsedMonth;\n const dayForString = parsedDay < 10 ? `0${parsedDay}` : parsedDay;\n\n const parsedDate = new Date(currentDate).toISOString().split(\"T\")[0];\n const dateString = `${year}-${monthForString}-${dayForString}`;\n\n return [parsedDate === dateString, dateString];\n};\n\n// twoDigitDate gets a two digit string number used for months or days\n// returns \"NaN\" if number is NaN\nexport const twoDigitDate = (num: number): string => {\n return num < 10 ? `0${num}` : `${num}`;\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, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Box, Grid, HelpIcon, InputLabel, Select, Switch, Tooltip } from \"mds\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport { days, months, validDate, years } from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingBottom: 10,\n marginTop: 11,\n marginBottom: 6,\n },\n });\n\ninterface IDateSelectorProps {\n classes: any;\n id: string;\n label: string;\n disableOptions?: boolean;\n addSwitch?: boolean;\n tooltip?: string;\n borderBottom?: boolean;\n value?: string;\n onDateChange: (date: string, isValid: boolean) => any;\n}\n\nconst DateSelector = forwardRef(\n (\n {\n classes,\n id,\n label,\n disableOptions = false,\n addSwitch = false,\n tooltip = \"\",\n borderBottom = false,\n onDateChange,\n value = \"\",\n }: IDateSelectorProps,\n ref: any,\n ) => {\n useImperativeHandle(ref, () => ({ resetDate }));\n\n const [dateEnabled, setDateEnabled] = useState(false);\n const [month, setMonth] = useState(\"\");\n const [day, setDay] = useState(\"\");\n const [year, setYear] = useState(\"\");\n\n useEffect(() => {\n // verify if there is a current value\n // assume is in the format \"2021-12-30\"\n if (value !== \"\") {\n const valueSplit = value.split(\"-\");\n\n setYear(valueSplit[0]);\n setMonth(valueSplit[1]);\n // Turn to single digit to be displayed on dropdown buttons\n setDay(`${parseInt(valueSplit[2])}`);\n }\n }, [value]);\n\n useEffect(() => {\n const [isValid, dateString] = validDate(year, month, day);\n onDateChange(dateString, isValid);\n }, [month, day, year, onDateChange]);\n\n const resetDate = () => {\n setMonth(\"\");\n setDay(\"\");\n setYear(\"\");\n };\n\n const isDateDisabled = () => {\n if (disableOptions) {\n return disableOptions;\n } else if (addSwitch) {\n return !dateEnabled;\n } else {\n return false;\n }\n };\n\n const monthForDropDown = [{ value: \"\", label: \"\" }, ...months];\n const daysForDrop = [{ value: \"\", label: \"\" }, ...days];\n const yearsForDrop = [{ value: \"\", label: \"\" }, ...years];\n\n return (\n \n