\n \n );\n};\n\nexport default withStyles(styles)(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 } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\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 { UploadFolderIcon, UploadIcon } from \"../../../../icons\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\nimport { Button } from \"mds\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\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}\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}: IUploadFilesButton) => {\n const [anchorEl, setAnchorEl] = React.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 = hasPermission(uploadPath, [\n IAM_SCOPES.S3_PUT_OBJECT,\n ]);\n const uploadFolderAllowed = hasPermission(\n bucketName,\n [IAM_SCOPES.S3_PUT_OBJECT],\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 />\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 { Grid, IconButton } from \"@mui/material\";\nimport { ClosePanelIcon } from \"../../../../../../icons\";\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 closePanel: {\n position: \"absolute\",\n right: 0,\n top: 8,\n \"& .min-icon\": {\n width: 14,\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 \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) => num + 1);\n\nconst currentYear = new Date().getFullYear();\n\nexport const years = Array.from(\n Array(25),\n (_, numYear) => numYear + currentYear\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 Grid from \"@mui/material/Grid\";\nimport { SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport FormControl from \"@mui/material/FormControl\";\nimport Select from \"@mui/material/Select\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport InputBase from \"@mui/material/InputBase\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport FormSwitchWrapper from \"../FormSwitchWrapper/FormSwitchWrapper\";\nimport { days, months, validDate, years } from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateInput: {\n \"&:not(:last-child)\": {\n marginRight: 22,\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n labelContainer: {\n flex: 1,\n },\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 fieldContainerBorder: {\n borderBottom: \"#9c9c9c 1px solid\",\n marginBottom: 20,\n },\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n \"& .MuiSelect-icon\": {\n color: \"#000\",\n \"&.Mui-disabled\": {\n color: \"#9c9c9c\",\n },\n },\n },\n input: {\n borderBottom: 0,\n fontSize: 12,\n },\n })\n)(InputBase);\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 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 onMonthChange = (e: SelectChangeEvent) => {\n setMonth(e.target.value as string);\n };\n\n const onDayChange = (e: SelectChangeEvent) => {\n setDay(e.target.value as string);\n };\n\n const onYearChange = (e: SelectChangeEvent) => {\n setYear(e.target.value as string);\n };\n\n return (\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 Grid from \"@mui/material/Grid\";\nimport { Button } from \"mds\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"./types\";\n\nimport { twoDigitDate } from \"../../../../Common/FormComponents/DateSelector/utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport RadioGroupSelector from \"../../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport DateSelector from \"../../../../Common/FormComponents/DateSelector/DateSelector\";\nimport api from \"../../../../../../common/api\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n dateSelector: {\n \"& div\": {\n borderBottom: 0,\n marginBottom: 0,\n\n \"& div:nth-child(2)\": {\n border: \"1px solid #EAEAEA\",\n paddingLeft: 5,\n\n \"& div\": {\n border: 0,\n },\n },\n },\n },\n });\n\ninterface ISetRetentionProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (updateInfo: boolean) => void;\n objectName: string;\n bucketName: string;\n objectInfo: IFileInfo;\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 [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(objectInfo.retention_mode.toLowerCase());\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]);\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(\"\");\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/retention?prefix=${encodeURLString(\n selectedObject\n )}&version_id=${versionId}`,\n {\n expires: expireDate,\n mode: type,\n }\n )\n .then((res: any) => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSaving(false);\n });\n };\n\n const disableRetention = (\n selectedObject: string,\n versionId: string | null\n ) => {\n api\n .invoke(\n \"DELETE\",\n `/api/v1/buckets/${bucketName}/objects/retention?prefix=${encodeURLString(\n selectedObject\n )}&version_id=${versionId}`\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSaving(false);\n });\n };\n\n const saveNewRetentionPolicy = () => {\n setIsSaving(true);\n const selectedObject = objectInfo.name;\n const versionId = objectInfo.version_id;\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\nimport React, { Fragment, useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\n\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeURLString } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon } from \"../../../../../../icons\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n\n versioning: boolean;\n selectedVersion?: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n\n versioning,\n selectedVersion = \"\",\n}: IDeleteObjectProps) => {\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 [deleteVersions, setDeleteVersions] = useState(false);\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 }`\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 {versioning && selectedVersion === \"\" && (\n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\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 Grid from \"@mui/material/Grid\";\nimport { Button } from \"mds\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nimport { IFileInfo } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../../common/api\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\n\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\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: IFileInfo;\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/legalhold?prefix=${encodeURLString(\n objectName\n )}&version_id=${versionId}`,\n { status: legalHoldEnabled ? \"enabled\" : \"disabled\" }\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(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","import React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { MetadataResponse } from \"./types\";\nimport get from \"lodash/get\";\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 { withStyles } from \"@mui/styles\";\n\ninterface IObjectMetadata {\n bucketName: string;\n internalPaths: string;\n classes?: any;\n actualInfo: any;\n linear?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n propertiesIcon: {\n marginLeft: 5,\n \"& .min-icon\": {\n height: 12,\n },\n },\n\n capitalizeFirst: {\n textTransform: \"capitalize\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n titleItem: {\n width: \"35%\",\n },\n ...spacingUtils,\n ...detailsPanel,\n });\n\nconst ObjectMetaData = ({\n bucketName,\n internalPaths,\n classes,\n actualInfo,\n linear = false,\n}: IObjectMetadata) => {\n const [metaData, setMetaData] = useState({});\n\n const onMetaDataSuccess = (res: MetadataResponse) => {\n let metadata = get(res, \"objectMetadata\", {});\n\n setMetaData(metadata);\n };\n const onMetaDataError = (err: ErrorResponseHandler) => false;\n\n const [, invokeMetaDataApi] = useApi(onMetaDataSuccess, onMetaDataError);\n\n const metaKeys = Object.keys(metaData);\n const loadMetaData = useCallback(() => {\n invokeMetaDataApi(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects/metadata?prefix=${internalPaths}`\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [bucketName, internalPaths, actualInfo]);\n\n useEffect(() => {\n if (actualInfo) {\n loadMetaData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actualInfo, loadMetaData]);\n\n if (linear) {\n return (\n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = Array.isArray(metaData[element])\n ? metaData[element].map(decodeURIComponent).join(\", \")\n : decodeURIComponent(metaData[element]);\n\n return (\n \n {element}\n \n {renderItem}\n \n );\n })}\n \n );\n }\n\n return (\n \n \n
\n \n \n );\n};\n\nexport default withStyles(styles)(ObjectMetaData);\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 { Button } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport clsx from \"clsx\";\n\ntype ObjectActionButtonProps = {\n disabled?: boolean;\n onClick: () => void | any;\n icon: React.ReactNode;\n label: string;\n [x: string]: any;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: \"0 15px\",\n height: 22,\n margin: 0,\n color: \"#5E5E5E\",\n fontWeight: \"normal\",\n fontSize: 14,\n whiteSpace: \"nowrap\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n \"&:hover\": {\n backgroundColor: \"transparent\",\n color: \"#000\",\n },\n \"& .min-icon\": {\n width: 11,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n });\n\n// TODO: Create an mds version of this.\nconst ObjectActionButton = ({\n disabled,\n onClick,\n icon,\n label,\n classes,\n ...restProps\n}: ObjectActionButtonProps) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(ObjectActionButton);\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 ObjectActionButton from \"./ObjectActionButton\";\nimport { withStyles } from \"@mui/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { detailsPanel } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\n\nconst styles = () =>\n createStyles({\n ...detailsPanel,\n });\n\nexport interface MultiSelectionItem {\n action: () => void;\n label: string;\n disabled: boolean;\n icon: React.ReactNode;\n tooltip: string;\n}\n\ninterface IActionsListSectionProps {\n items: MultiSelectionItem[];\n title: string | React.ReactNode;\n classes: any;\n}\n\nconst ActionsListSection = ({\n items,\n classes,\n title,\n}: IActionsListSectionProps) => {\n return (\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 \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 { Button } from \"mds\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n decodeURLString,\n deleteCookie,\n encodeURLString,\n getCookieValue,\n performDownload,\n} from \"../../../../../../common/utils\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { InspectMenuIcon } from \"../../../../../../icons/SidebarMenus\";\nimport Grid from \"@mui/material/Grid\";\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 { PasswordKeyIcon } from \"../../../../../../icons\";\nimport { Box, 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) 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 } from \"mds\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { EditIcon } from \"../../../icons\";\nimport {\n containerForHeader,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"../Buckets/ListBuckets/Objects/ObjectDetails/types\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { download } from \"../Buckets/ListBuckets/Objects/utils\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setNewObject,\n updateProgress,\n} from \"./objectBrowserSlice\";\nimport { makeid, storeCallForObjectWithID } from \"./transferManager\";\nimport { useAppDispatch } from \"../../../store\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IRenameLongFilename {\n open: boolean;\n bucketName: string;\n internalPaths: string;\n currentItem: string;\n actualInfo: IFileInfo;\n closeModal: () => void;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...modalStyleUtils,\n ...formFieldStyles,\n ...spacingUtils,\n ...containerForHeader(theme.spacing(4)),\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\n const identityDownload = encodeURLString(\n `${bucketName}-${\n actualInfo.name\n }-${new Date().getTime()}-${Math.random()}`\n );\n\n const ID = makeid(8);\n\n const downloadCall = download(\n bucketName,\n internalPaths,\n actualInfo.version_id,\n parseInt(actualInfo.size || \"0\"),\n newFileName,\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\n storeCallForObjectWithID(ID, downloadCall);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: newFileName,\n type: \"download\",\n waitingForFile: true,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\n })\n );\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 { Button } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n buttonsStyles,\n detailsPanel,\n spacingUtils,\n textStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"../ObjectDetails/types\";\nimport { download, extensionPreview } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\n\nimport {\n decodeURLString,\n encodeURLString,\n getClientOS,\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 {\n DeleteIcon,\n DownloadIcon,\n LegalHoldIcon,\n MetadataIcon,\n ObjectInfoIcon,\n PreviewIcon,\n RetentionIcon,\n ShareIcon,\n TagsIcon,\n VersionsIcon,\n} from \"../../../../../../icons\";\nimport { InspectMenuIcon } from \"../../../../../../icons/SidebarMenus\";\nimport api from \"../../../../../../common/api\";\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 ActionsListSection from \"./ActionsListSection\";\nimport { displayFileIconName } from \"./utils\";\nimport TagsModal from \"../ObjectDetails/TagsModal\";\nimport InspectObject from \"./InspectObject\";\nimport Loader from \"../../../../Common/Loader/Loader\";\nimport { selDistSet } from \"../../../../../../systemSlice\";\nimport {\n makeid,\n storeCallForObjectWithID,\n} from \"../../../../ObjectBrowser/transferManager\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setLoadingObjectInfo,\n setLoadingVersions,\n setNewObject,\n setSelectedVersion,\n setVersionsModeEnabled,\n updateProgress,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport RenameLongFileName from \"../../../../ObjectBrowser/RenameLongFilename\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\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 headerForSection: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingBottom: 15,\n borderBottom: \"#E2E2E2 2px solid\",\n fontWeight: \"bold\",\n fontSize: 18,\n color: \"#000\",\n margin: \"20px 22px\",\n },\n capitalizeFirst: {\n textTransform: \"capitalize\",\n },\n ...buttonsStyles,\n ...actionsTray,\n ...spacingUtils,\n ...textStyleUtils,\n ...detailsPanel,\n });\n\nconst emptyFile: IFileInfo = {\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: null,\n};\n\ninterface IObjectDetailPanelProps {\n classes: any;\n internalPaths: string;\n bucketName: string;\n versioning: boolean;\n locking: boolean;\n onClosePanel: (hardRefresh: boolean) => void;\n}\n\nconst ObjectDetailPanel = ({\n classes,\n internalPaths,\n bucketName,\n versioning,\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\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) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (distributedSetup && allInfoElements && allInfoElements.length >= 1) {\n let infoElement =\n allInfoElements.find((el: IFileInfo) => el.is_latest) || emptyFile;\n\n if (selectedVersion !== \"\") {\n infoElement =\n allInfoElements.find(\n (el: IFileInfo) => el.version_id === selectedVersion\n ) || emptyFile;\n }\n\n setActualInfo(infoElement);\n }\n }, [selectedVersion, distributedSetup, allInfoElements]);\n\n useEffect(() => {\n if (loadingObjectInfo && internalPaths !== \"\") {\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${internalPaths}${\n distributedSetup ? \"&with_versions=true\" : \"\"\n }`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n if (distributedSetup) {\n setAllInfoElements(result);\n setVersions(result);\n const tVersionSize = result.reduce(\n (acc: number, currValue: IFileInfo) => {\n if (currValue?.size) {\n return acc + currValue.size;\n }\n return acc;\n },\n 0\n );\n\n setTotalVersionsSize(tVersionSize);\n } else {\n setActualInfo(result[0]);\n setVersions([]);\n }\n\n dispatch(setLoadingObjectInfo(false));\n })\n .catch((error: ErrorResponseHandler) => {\n console.error(\"Error loading object details\", error);\n dispatch(setLoadingObjectInfo(false));\n });\n }\n }, [\n loadingObjectInfo,\n bucketName,\n internalPaths,\n dispatch,\n distributedSetup,\n selectedVersion,\n ]);\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 downloadObject = (object: IFileInfo) => {\n const identityDownload = encodeURLString(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`\n );\n\n if (\n object.name.length > 200 &&\n getClientOS().toLowerCase().includes(\"win\")\n ) {\n 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 parseInt(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\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\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 \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 get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport Grid from \"@mui/material/Grid\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nimport { IFileInfo } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport api from \"../../../../../../common/api\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../../../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport DaysSelector from \"../../../../Common/FormComponents/DaysSelector/DaysSelector\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { ShareIcon } from \"../../../../../../icons\";\nimport {\n selDistSet,\n setModalErrorSnackMessage,\n setModalSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\nconst CopyIcon = React.lazy(() => import(\"../../../../../../icons/CopyIcon\"));\n\nconst styles = (theme: Theme) =>\n createStyles({\n shareLinkInfo: {\n fontSize: 14,\n fontWeight: 400,\n },\n copyShareLink: {\n display: \"flex\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n },\n copyShareLinkInput: {\n \"& div:first-child\": {\n marginTop: 0,\n },\n \"@media (max-width: 900px)\": {\n minWidth: 250,\n },\n },\n copyShareLinkBtn: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"@media (max-width: 900px)\": {\n marginTop: 10,\n },\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\ninterface IShareFileProps {\n classes: any;\n open: boolean;\n bucketName: string;\n dataObject: IFileInfo;\n closeModalAndRefresh: () => void;\n}\n\nconst ShareFile = ({\n classes,\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\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${encodeURLString(\n dataObject.name\n )}${distributedSetup ? \"&with_versions=true\" : \"\"}`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n\n const latestVersion = result.find(\n (elem: IFileInfo) => elem.is_latest\n );\n\n if (latestVersion) {\n setVersionID(latestVersion.version_id);\n return;\n }\n\n // Version couldn't ve retrieved, we default\n setVersionID(\"null\");\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(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\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects/share?prefix=${encodeURLString(\n dataObject.name\n )}&version_id=${versionID}${\n selectedDate !== \"\" ? `&expires=${diffDate}s` : \"\"\n }`\n )\n .then((res: string) => {\n setShareURL(res);\n setIsLoadingFile(false);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(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 \n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(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, 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 { extensionPreview } from \"../utils\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport clsx from \"clsx\";\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 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 const objectType = extensionPreview(object?.name || \"\");\n\n const iframeLoaded = () => {\n setLoading(false);\n };\n\n return (\n \n {loading && (\n \n \n \n )}\n
\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 \"../../../../../../icons\";\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 { IAllowResources } from \"../../../types\";\nimport { encodeURLString } from \"../../../../../common/utils\";\nimport { removeTrace } from \"../../../ObjectBrowser/transferManager\";\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) => {\n const anchor = document.createElement(\"a\");\n document.body.appendChild(anchor);\n let basename = document.baseURI.replace(window.location.origin, \"\");\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 var req = new XMLHttpRequest();\n req.open(\"GET\", path, true);\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 var link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(req.response);\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\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\n// Review file extension by name & returns the type of preview browser that can be used\nexport const extensionPreview = (\n fileName: string\n): \"image\" | \"text\" | \"audio\" | \"video\" | \"none\" => {\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\", \"txt\", \"json\"];\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 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: IAllowResources[]\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 const 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 stor 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: new Date(),\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 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: new Date(),\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 return returnElements;\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 from \"react\";\nimport { LoginMinIOLogo } from \"../../../../icons\";\nimport { useSelector } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\n\ninterface IAutoColorIcon {\n marginRight: number;\n marginTop: number;\n}\n\nconst AutoColorIcon = ({ marginRight, marginTop }: IAutoColorIcon) => {\n let tinycolor = require(\"tinycolor2\");\n\n const colorVariants = useSelector(\n (state: AppState) => state.system.overrideStyles\n );\n\n const isDark =\n tinycolor(colorVariants?.backgroundColor || \"#fff\").getBrightness() <= 128;\n\n return (\n \n );\n};\n\nexport default AutoColorIcon;\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 )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\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 InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\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 } from \"mds\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { CopyIcon } from \"../../../icons\";\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 \n );\n};\n\nexport default KeyRevealer;\n"],"names":["CreatePathModal","withSuspense","React","withStyles","theme","createStyles","objectBrowserCommon","slashSpacingStyle","margin","classes","bucketName","internalPaths","existingFiles","hidePathButton","additionalOptions","dispatch","useAppDispatch","navigate","useNavigate","rewindEnabled","useSelector","state","objectBrowser","rewind","versionsMode","versionedFile","useState","createFolderOpen","setCreateFolderOpen","canCreatePath","hasPermission","IAM_SCOPES","paths","splitPaths","split","filter","path","lastBreadcrumbsIndex","length","breadcrumbsMap","map","objectItem","index","subSplit","slice","join","route","encodeURLString","Fragment","className","style","cursor","to","onClick","setVersionsModeEnabled","status","objectName","toString","versionsItem","listBreadcrumbs","breadcrumbsMain","modalOpen","folderName","onClose","Grid","item","xs","breadcrumbs","IconButton","sx","border","backgroundColor","borderLeft","borderRadius","width","height","marginRight","breadcrumbsList","dir","text","id","icon","fill","marginTop","variant","setSnackBarMessage","color","TooltipWrapper","tooltip","permissionTooltipHelper","disabled","whiteSpace","label","breadcrumbsSecond","listUploadIcons","uploadPath","forceDisable","uploadFileFunction","uploadFolderFunction","anchorEl","setAnchorEl","openUploadMenu","Boolean","handleCloseUpload","uploadObjectAllowed","uploadFolderAllowed","uploadEnabled","undefined","event","currentTarget","Menu","open","anchorOrigin","vertical","horizontal","transformOrigin","MenuItem","ListItemIcon","ListItemText","useStyles","makeStyles","detailsList","borderColor","borderWidth","borderStyle","borderBottomLeftRadius","borderBottomRightRadius","transitionDuration","overflowX","overflowY","position","opacity","marginLeft","minWidth","borderLeftWidth","closePanel","right","top","children","months","value","days","Array","from","_","num","currentYear","Date","getFullYear","years","numYear","SelectStyled","root","input","borderBottom","fontSize","InputBase","DateSelector","forwardRef","ref","disableOptions","addSwitch","onDateChange","useImperativeHandle","resetDate","dateEnabled","setDateEnabled","month","setMonth","day","setDay","year","setYear","useEffect","valueSplit","parseInt","currentDate","parse","isNaN","parsedMonth","parsedDay","monthForString","dayForString","parsedDate","toISOString","dateString","validDate","isValid","isDateDisabled","clsx","fieldContainer","fieldContainerBorder","labelContainer","container","InputLabel","htmlFor","inputLabel","tooltipContainer","Tooltip","title","placement","HelpIcon","FormSwitchWrapper","indicatorLabels","checked","name","onChange","e","target","switchOnly","FormControl","dateInput","Select","displayEmpty","option","dayNumber","fieldBasic","tooltipHelper","flex","display","alignItems","justifyContent","paddingBottom","marginBottom","formFieldStyles","modalStyleUtils","spacingUtils","dateSelector","paddingLeft","closeModalAndRefresh","objectInfo","statusEnabled","setStatusEnabled","type","setType","date","setDate","isDateValid","setIsDateValid","isSaving","setIsSaving","alreadyConfigured","setAlreadyConfigured","retention_mode","toLowerCase","retention_until_date","valueDate","getMonth","getDate","dateElement","useRef","resetForm","current","showSwitcher","ModalWrapper","spacerBottom","noValidate","autoComplete","onSubmit","preventDefault","formFieldRow","RadioGroupSelector","currentSelection","selectorOptions","modalButtonBar","selectedObject","versionId","version_id","expireDate","api","expires","mode","then","res","catch","error","setModalErrorSnackMessage","addRetention","disableRetention","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","versioning","selectedVersion","useApi","err","setErrorSnackMessage","deleteLoading","invokeDeleteApi","deleteVersions","setDeleteVersions","ConfirmDialog","confirmText","isOpen","titleIcon","isLoading","onConfirm","recursive","decodeURLString","endsWith","confirmationContent","DialogContentText","description","actualInfo","legalHoldEnabled","setLegalHoldEnabled","get","propertiesIcon","capitalizeFirst","textTransform","titleItem","detailsPanel","linear","metaData","setMetaData","metadata","invokeMetaDataApi","metaKeys","Object","keys","loadMetaData","useCallback","element","renderItem","isArray","decodeURIComponent","Box","metadataLinear","Table","table","TableBody","TableRow","TableCell","component","scope","align","padding","fontWeight","restProps","Button","startIcon","items","titleLabel","objectActions","actionItem","action","fileName","minHeight","fileNameText","overflow","textOverflow","strings","FileBookIcon","FileCodeIcon","FileConfigIcon","FileDbIcon","FileFontIcon","FileImageIcon","FileLockIcon","FileMissingIcon","FileMusicIcon","FilePdfIcon","FilePptIcon","FileTxtIcon","FileVideoIcon","FileXlsIcon","FileZipIcon","extensionToIcon","extensions","displayFileIconName","returnOnlyIcon","elementString","ObjectBrowserIcon","ObjectBrowserFolderIcon","lowercaseElement","etc","ext","indexOf","splitItem","newTileHeader","tagsForLabel","currentTagsContainer","noTagsForObject","deleteTag","onCloseAndUpdate","distributedSetup","selDistSet","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","deleteEnabled","setDeleteEnabled","deleteKey","setDeleteKey","deleteLabel","setDeleteLabel","currentTags","tags","currTagKeys","currentItem","pop","tagsFor","plural","cleanObject","verID","SecureComponent","scopes","resource","flexFlow","tagKey","tag","errorProps","deleteIcon","onDelete","Chip","size","Close","onDeleteTag","InputBoxWrapper","placeholder","trim","newTag","newTagList","closeInspectModalAndRefresh","inspectOpen","inspectPath","volumeName","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","makeRequest","url","fetch","method","performInspect","file","volume","urlOfInspectApi","ok","json","resErr","errorMessage","message","detailedError","code","blob","filename","headers","decryptKey","getCookieValue","performDownload","deleteCookie","KeyRevealer","containerForHeader","spacing","closeModal","newFileName","setNewFileName","acceptLongName","setAcceptLongName","identityDownload","getTime","Math","random","ID","makeid","downloadCall","download","progress","updateProgress","instanceID","completeObject","msg","failObject","cancelObjectInList","storeCallForObjectWithID","setNewObject","done","percentage","prefix","waitingForFile","failed","cancelled","doDownload","modalFormScrollable","emptyFile","is_latest","last_modified","legal_hold_status","ObjectDetailsTitle","objectNameContainer","headerForSection","buttonsStyles","actionsTray","textStyleUtils","locking","onClosePanel","loadingObjectInfo","shareFileModalOpen","setShareFileModalOpen","retentionModalOpen","setRetentionModalOpen","tagModalOpen","setTagModalOpen","legalholdOpen","setLegalholdOpen","inspectModalOpen","setInspectModalOpen","setActualInfo","allInfoElements","setAllInfoElements","objectToShare","setObjectToShare","versions","setVersions","setDeleteOpen","previewOpen","setPreviewOpen","totalVersionsSize","setTotalVersionsSize","longFileOpen","setLongFileOpen","objectNameArray","infoElement","find","el","result","tVersionSize","reduce","acc","currValue","setLoadingObjectInfo","console","tagKeys","loaderForContainer","textAlign","Loader","objectResources","canSetLegalHold","canSetTags","canChangeRetention","canInspect","canChangeVersioning","canGetObject","canDelete","multiActionButtons","object","getClientOS","includes","downloadObject","is_delete_marker","extensionPreview","ShareFile","dataObject","updateInfo","closeAndReload","setLoadingVersions","setSelectedVersion","reload","PreviewFileModal","content_type","onClosePreview","TagsModal","reloadObjectData","iconLocation","fullWidth","detailContainer","overflowWrap","niceBytes","niceBytesInt","lastModified","currentTime","modifiedTime","difTime","formatTime","niceDaysInt","calculateLastModifyTime","etag","displayParsedDate","displayNiceBytes","String","listModeColumns","elementKey","renderFunction","enableSort","renderFullObject","rewindModeColumns","modalBasic","versionID","objectPath","restoreOpen","restoreLoading","setRestoreLoading","RecoverIcon","confirmButtonProps","wrapText","bgColor","mainFileVersionItem","intermediateLayer","borderBottomColor","versionContainer","buttonContainer","maxWidth","versionData","ctrItem","content","left","collapsableInfo","flexDirection","versionItem","versionInfo","isSelected","checkable","isChecked","onCheck","onShare","onDownload","onRestore","onPreview","globalClick","key","disableButtons","versionItemButtons","pill","md","CheckboxWrapper","stopPropagation","overrideCheckboxStyles","noTopMargin","button","buttonDisabled","setDeleteLoading","typeConfirm","setTypeConfirm","selectedVersions","selectedObjectsRequest","versionsContainer","noBottomBorder","versionsVirtualPanel","flexGrow","screenTitleContainer","bottom","sortByLabel","hrClass","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","DeleteNonCurrent","reloadAfterDelete","DeleteSelectedVersions","reloadOnComplete","LinearProgress","ScreenTitle","listIcon","titleSpacer","subTitle","bucketDetails","detailsSpacer","actions","SelectWrapper","options","containerStyle","rowCount","rowHeight","rowRenderer","isScrolling","isVisible","versOrd","HistoryIcon","RefreshIcon","DeleteIcon","DeleteMultipleObjects","RewindEnable","browsePaper","backgroundImage","badgeOverlap","screenTitle","paddingTop","paddingRight","searchField","labelStyle","breadcrumbsContainer","parentWrapper","fullContainer","hideListOnSmall","baseDnDStyle","outline","activeDnDStyle","acceptDnDStyle","defLoading","Typography","params","useParams","location","useLocation","rewindDate","dateToRewind","bucketToRewind","searchObjects","showDeleted","detailsOpen","objectDetailsOpen","selectedInternalPaths","loading","loadingObjects","simplePath","loadingBucket","selBucketDetailsLoading","bucketInfo","selBucketDetailsInfo","allowResources","session","features","selFeatures","obOnly","records","setRecords","deleteMultipleOpen","setDeleteMultipleOpen","loadingStartTime","setLoadingStartTime","loadingMessage","setLoadingMessage","loadingVersioning","setLoadingVersioning","isVersioned","setIsVersioned","loadingLocking","setLoadingLocking","lockingEnabled","setLockingEnabled","rewindSelect","setRewindSelect","selectedObjects","setSelectedObjects","selectedPreview","setSelectedPreview","sortDirection","setSortDirection","currentSortField","setCurrentSortField","iniLoad","setIniLoad","canShareFile","setCanShareFile","canPreviewFile","setCanPreviewFile","quota","setQuota","downloadRenameModal","setDownloadRenameModal","pathSegment","pathname","pageTitle","currentPath","i","concat","fileUpload","folderUpload","canDownload","canUpload","setAttribute","quotaVals","setObjectDetailsView","displayDeleteObject","displayListObjects","setBucketDetailsLoad","callback","delay","savedCallback","setInterval","clearInterval","useInterval","timeDelta","now","ceil","updateMessage","is_versioned","object_locking_enabled","decodedIPaths","setSelectedObjectView","setSimplePathHandler","setSearchObjects","setLoadingObjectsList","pathPrefix","decodedPath","currentTimestamp","urlTake","resetRewind","rewindParsed","currDateISO","objects","folders","files","forEach","record","recordsInElement","pathTest","found","pathPrefixChopped","parentPath","permitItems","permissionItems","setBucketInfo","handleUploadButton","newFiles","uploadObject","folderPath","uploadPromise","Promise","resolve","reject","uploadUrl","blobFile","Blob","encodedPath","filePath","fileWebkitRelativePath","relativeFolderPath","finalFolderPath","pathClean","startsWith","identity","xhr","XMLHttpRequest","areMultipleFiles","errorMessages","withCredentials","onload","removeTrace","response","JSON","detailedMessage","upload","addEventListener","floor","loaded","total","onerror","onloadend","onabort","formData","FormData","append","storeFormDataWithID","uploadFilePromises","openList","allSettled","results","errors","totalFiles","successUploadedFiles","onDrop","acceptedFiles","newFolderPath","useDropzone","noClick","getRootProps","getInputProps","isDragActive","isDragAccept","dndStyles","useMemo","sortASC","sortListObjects","payload","reverse","forceRefresh","splitURLS","URLItem","tableActions","idElement","newPath","sendOnlyId","itemsToDownload","filteredItem","fileObject","refresh","PageLayout","creation_date","access","actionsSection","Badge","badgeContent","invisible","multiple","closeMenu","click","tableBlock","borderTop","setShowDeletedObjects","overrideLabelClasses","overrideShowDeleted","TableWrapper","itemActions","columns","entityName","idField","customPaperHeight","onSelect","targetD","elements","customEmptyMessage","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","sortBy","onSelectAll","rowStyle","delete_flag","parentClassName","configureBucketAllowed","searchBar","SearchBox","setSearchVersions","AutoColorIcon","PageHeader","BackLink","IAM_PAGES","IAM_PERMISSIONS","IAM_ROLES","SettingsIcon","middleComponent","dateInputContainer","durationInputs","validityIndicator","invalidDurationText","reverseInput","validityText","validTill","initialDate","maxDays","entity","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","setValidDate","moment","dateSelected","setDateSelected","hours","minutes","add","calculateNewTime","format","valid","extraInputProps","min","max","noLabelMinWidth","validityLabel","CopyIcon","shareLinkInfo","copyShareLink","copyShareLinkInput","copyShareLinkBtn","shareURL","setShareURL","isLoadingVersion","setIsLoadingVersion","isLoadingFile","setIsLoadingFile","selectedDate","setSelectedDate","dateValid","setDateValid","setVersionID","latestVersion","elem","slDate","currDate","diffDate","dateContainer","newDate","PredefinedList","actionButton","setModalSnackMessage","iframeContainer","iframeBase","iframeHidden","isFullscreen","setLoading","basename","document","baseURI","replace","window","origin","objectType","iframeLoaded","maxHeight","autoPlay","controls","muted","playsInline","onPlay","src","alt","onLoad","allowTransparency","wideLimit","PreviewFileContent","fileSize","overrideFileName","progressCallback","completeCallback","errorCallback","abortCallback","anchor","createElement","body","appendChild","req","evt","percentComplete","round","responseType","onreadystatechange","readyState","rspHeader","getResponseHeader","link","href","URL","createObjectURL","removeChild","rspBody","fileExtension","fieldSort","localeCompare","permissionsArray","filteredPermissionsForBucket","permissionItem","returnElements","splitCurrentPath","permissionElement","splitURLARN","every","currentElementInPath","conditionOperator","prefixes","prefixItem","splitItems","pathToRouteElements","splitElement","tinycolor","require","colorVariants","system","overrideStyles","isDark","getBrightness","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","predefinedList","multiLine","prefinedContainer","predefinedTitle","includesActionButton","innerContentMultiline","innerContent","overlayShareOption","deleteDialogStyles","customDialogSize","snackBarCommon","noContentPadding","openSnackbar","setOpenSnackbar","modalSnackMessage","modalSnackBar","customSize","paper","detailedErrorMsg","scroll","reason","titleText","closeContainer","closeButton","disableRipple","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","adornment","adornmentPosition","overrideClass","inputProps","disableUnderline","InputProps","shown","setShown","sm","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1379.832f5371.chunk.js b/portal-ui/build/static/js/1379.832f5371.chunk.js
deleted file mode 100644
index 3e520de83c..0000000000
--- a/portal-ui/build/static/js/1379.832f5371.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1379],{41379:function(e,n,t){t.r(n),t.d(n,{default:function(){return Qn}});var i=t(1413),a=t(72791),o=t(60364),s=t(16871),r=t(11135),c=t(25787),l=t(61889),d=t(25469),u=t(23814),h=t(93433),m=t(29439),f=t(57831),p=t(75952),x=t(26181),v=t.n(x),b=t(81207),g=t(92983),j=t(45248),Z=t(20890),S=t(84697),w=t(78029),C=t.n(w),_=t(43504),T=t(13400),E=t(56096),y=t(38442),N=t(56087),I=t(75578),k=t(87995),F=t(54756),O=t(27454),P=t(80184),L=(0,I.Z)(a.lazy((function(){return t.e(2185).then(t.bind(t,62185))}))),D=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)({},u.cx),{},{slashSpacingStyle:{margin:"0 5px"}}))}))((function(e){var n=e.classes,t=e.bucketName,i=e.internalPaths,r=e.existingFiles,c=e.hidePathButton,u=e.additionalOptions,f=(0,d.TL)(),x=(0,s.s0)(),v=(0,o.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),b=(0,o.v9)((function(e){return e.objectBrowser.versionsMode})),g=(0,o.v9)((function(e){return e.objectBrowser.versionedFile})),Z=(0,a.useState)(!1),S=(0,m.Z)(Z,2),w=S[0],I=S[1],D=(0,y.F)(t,[N.Ft.S3_PUT_OBJECT]),B=i;""!==i&&(B="/".concat(i));var R=B.split("/").filter((function(e){return""!==e})),z=R.length-1,M=R.map((function(e,i){var o="".concat(R.slice(0,i+1).join("/"),"/"),s="/buckets/".concat(t,"/browse/").concat(o?"".concat((0,j.LL)(o)):"");return i===z&&e===g?null:(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)("span",{className:n.slashSpacingStyle,children:"/"}),i===z?(0,P.jsx)("span",{style:{cursor:"default"},children:e}):(0,P.jsx)(_.rU,{to:s,onClick:function(){f((0,F.db)({status:!1,objectName:""}))},children:e})]},"breadcrumbs-".concat(i.toString()))})),A=[];b&&(A=[(0,P.jsx)(a.Fragment,{children:(0,P.jsxs)("span",{children:[(0,P.jsx)("span",{className:n.slashSpacingStyle,children:"/"}),g," - Versions"]})},"breadcrumbs-versionedItem")]);var U=[(0,P.jsx)(a.Fragment,{children:(0,P.jsx)(_.rU,{to:"/buckets/".concat(t,"/browse"),onClick:function(){f((0,F.db)({status:!1,objectName:""}))},children:t})},"breadcrumbs-root-path")].concat((0,h.Z)(M),(0,h.Z)(A));return(0,P.jsxs)(a.Fragment,{children:[(0,P.jsxs)("div",{className:n.breadcrumbsMain,children:[w&&(0,P.jsx)(L,{modalOpen:w,bucketName:t,folderName:i,onClose:function(){I(!1)},existingFiles:r}),(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(n.breadcrumbs),children:[(0,P.jsx)(T.Z,{onClick:function(){b?f((0,F.db)({status:!1,objectName:""})):x(-1)},sx:{border:"#EAEDEE 1px solid",backgroundColor:"#fff",borderLeft:0,borderRadius:0,width:38,height:38,marginRight:"10px"},children:(0,P.jsx)(E.ubh,{})}),(0,P.jsx)("div",{className:n.breadcrumbsList,dir:"rtl",children:U}),(0,P.jsx)(C(),{text:"".concat(t,"/").concat(R.join("/")),children:(0,P.jsx)(p.zx,{id:"copy-path",icon:(0,P.jsx)(E.TIy,{style:{width:"12px",height:"12px",fill:"#969FA8",marginTop:-1}}),variant:"regular",onClick:function(){f((0,k.y1)("Path copied to clipboard"))},style:{width:"28px",height:"28px",color:"#969FA8",border:"#969FA8 1px solid",marginRight:5}})}),(0,P.jsx)("div",{className:n.additionalOptions,children:u})]}),!c&&(0,P.jsx)(O.Z,{tooltip:D?"Choose or create a new path":(0,N.MK)([N.Ft.S3_PUT_OBJECT],"create a new path"),children:(0,P.jsx)(p.zx,{id:"new-path",onClick:function(){I(!0)},disabled:v||!D,icon:(0,P.jsx)(E.N$q,{style:{fill:"#969FA8"}}),style:{whiteSpace:"nowrap"},variant:"regular",label:"Create new path"})})]}),(0,P.jsx)("div",{className:n.breadcrumbsSecond,children:u})]})})),B=t(47922),R=t(14917),z=t(74794),M=t(71715),A=t(23786),U=t(49900),G=t(57064),K=(0,c.Z)((function(e){return(0,r.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,r=e.uploadFolderFunction,c=e.classes,l=a.useState(null),d=(0,m.Z)(l,2),u=d[0],h=d[1],f=Boolean(u),x=function(){h(null)},v=(0,y.F)(n,[N.Ft.S3_PUT_OBJECT]),b=(0,y.F)(t,[N.Ft.S3_PUT_OBJECT],!1,!0),g=v||b;return(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)(O.Z,{tooltip:g?"Upload Files":(0,N.MK)([N.Ft.S3_PUT_OBJECT],"upload files to this bucket"),children:(0,P.jsx)(p.zx,{id:"upload-main","aria-controls":"upload-main-menu","aria-haspopup":"true","aria-expanded":f?"true":void 0,onClick:function(e){h(e.currentTarget)},label:"Upload",icon:(0,P.jsx)(E.rG2,{}),variant:"callAction",disabled:o||!g})}),(0,P.jsxs)(M.Z,{id:"upload-main-menu","aria-labelledby":"upload-main",anchorEl:u,open:f,onClose:function(){x()},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[(0,P.jsxs)(A.Z,{onClick:function(){s(x)},disabled:!v||o,children:[(0,P.jsx)(G.Z,{className:c.listUploadIcons,children:(0,P.jsx)(E.rG2,{})}),(0,P.jsx)(U.Z,{children:"Upload File"})]}),(0,P.jsxs)(A.Z,{onClick:function(){r(x)},disabled:!b||o,children:[(0,P.jsx)(G.Z,{className:c.listUploadIcons,children:(0,P.jsx)(E.oXh,{})}),(0,P.jsx)(U.Z,{children:"Upload Folder"})]})]})]})})),W=t(72455),H=(0,W.Z)((function(e){return(0,r.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}}},closePanel:{position:"absolute",right:0,top:8,"& .min-icon":{width:14}}})})),V=function(e){var n=e.open,t=e.closePanel,i=e.className,a=void 0===i?"":i,o=e.children,s=H();return(0,P.jsxs)(l.ZP,{item:!0,className:"".concat(s.detailsList," ").concat(n?"open":""," ").concat(a," detailsListPanel"),children:[(0,P.jsx)(T.Z,{onClick:t,className:s.closePanel,children:(0,P.jsx)(E.oto,{})}),o]})},J=t(64554),Y=t(79976),q=t(34433),X=[{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"}],$=Array.from(Array(31),(function(e,n){return n+1})),Q=(new Date).getFullYear(),ee=Array.from(Array(25),(function(e,n){return n+Q})),ne=t(56028),te=t(37516),ie=t(83679),ae=t(4942),oe=t(28182),se=t(30829),re=t(20068),ce=t(68096),le=t(58406),de=t(4834),ue=t(84570),he=(0,c.Z)((function(e){return(0,r.Z)({root:{"& .MuiSelect-icon":{color:"#000","&.Mui-disabled":{color:"#9c9c9c"}}},input:{borderBottom:0,fontSize:12}})}))(de.ZP),me=(0,a.forwardRef)((function(e,n){var t=e.classes,i=e.id,o=e.label,s=e.disableOptions,r=void 0!==s&&s,c=e.addSwitch,d=void 0!==c&&c,u=e.tooltip,h=void 0===u?"":u,f=e.borderBottom,p=void 0!==f&&f,x=e.onDateChange,v=e.value,b=void 0===v?"":v;(0,a.useImperativeHandle)(n,(function(){return{resetDate:D}}));var g=(0,a.useState)(!1),j=(0,m.Z)(g,2),Z=j[0],S=j[1],w=(0,a.useState)(""),C=(0,m.Z)(w,2),_=C[0],T=C[1],E=(0,a.useState)(""),y=(0,m.Z)(E,2),N=y[0],I=y[1],k=(0,a.useState)(""),F=(0,m.Z)(k,2),O=F[0],L=F[1];(0,a.useEffect)((function(){if(""!==b){var e=b.split("-");L(e[0]),T(e[1]),I("".concat(parseInt(e[2])))}}),[b]),(0,a.useEffect)((function(){var e=function(e,n,t){var i=Date.parse("".concat(e,"-").concat(n,"-").concat(t));if(isNaN(i))return[!1,""];var a=parseInt(n),o=parseInt(t),s=a<10?"0".concat(a):a,r=o<10?"0".concat(o):o,c=new Date(i).toISOString().split("T")[0],l="".concat(e,"-").concat(s,"-").concat(r);return[c===l,l]}(O,_,N),n=(0,m.Z)(e,2),t=n[0],i=n[1];x(i,t)}),[_,N,O,x]);var D=function(){T(""),I(""),L("")},B=function(){return r||!!d&&!Z};return(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:(0,oe.Z)(t.fieldContainer,(0,ae.Z)({},t.fieldContainerBorder,p)),children:[(0,P.jsx)("div",{className:t.labelContainer,children:(0,P.jsxs)(l.ZP,{container:!0,children:[(0,P.jsxs)(se.Z,{htmlFor:i,className:t.inputLabel,children:[(0,P.jsx)("span",{children:o}),""!==h&&(0,P.jsx)("div",{className:t.tooltipContainer,children:(0,P.jsx)(re.Z,{title:h,placement:"top-start",children:(0,P.jsx)("div",{className:t.tooltip,children:(0,P.jsx)(ue.Z,{})})})})]}),d&&(0,P.jsx)(te.Z,{indicatorLabels:["Specific Date","Default (7 Days)"],checked:Z,value:"date_enabled",id:"date-status",name:"date-status",onChange:function(e){S(e.target.checked),e.target.checked||x("",!0)},switchOnly:!0})]})}),(0,P.jsxs)("div",{children:[(0,P.jsx)(ce.Z,{disabled:B(),className:t.dateInput,children:(0,P.jsxs)(le.Z,{id:"".concat(i,"-month"),name:"".concat(i,"-month"),value:_,displayEmpty:!0,onChange:function(e){T(e.target.value)},input:(0,P.jsx)(he,{}),children:[(0,P.jsx)(A.Z,{value:"",disabled:!0,children:""}),X.map((function(e){return(0,P.jsx)(A.Z,{value:e.value,children:e.label},"select-".concat(i,"-monthOP-").concat(e.label))}))]})}),(0,P.jsx)(ce.Z,{disabled:B(),className:t.dateInput,children:(0,P.jsxs)(le.Z,{id:"".concat(i,"-day"),name:"".concat(i,"-day"),value:N,displayEmpty:!0,onChange:function(e){I(e.target.value)},input:(0,P.jsx)(he,{}),children:[(0,P.jsx)(A.Z,{value:"",disabled:!0,children:""}),$.map((function(e){return(0,P.jsx)(A.Z,{value:e,children:e},"select-".concat(i,"-dayOP-").concat(e))}))]})}),(0,P.jsx)(ce.Z,{disabled:B(),className:t.dateInput,children:(0,P.jsxs)(le.Z,{id:"".concat(i,"-year"),name:"".concat(i,"-year"),value:O,displayEmpty:!0,onChange:function(e){L(e.target.value)},input:(0,P.jsx)(he,{}),children:[(0,P.jsx)(A.Z,{value:"",disabled:!0,children:""}),ee.map((function(e){return(0,P.jsx)(A.Z,{value:e,children:e},"select-".concat(i,"-yearOP-").concat(e))}))]})})]})]})})),fe=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({dateInput:{"&:not(:last-child)":{marginRight:22}}},u.YI),u.Hr),{},{labelContainer:{flex:1},fieldContainer:(0,i.Z)((0,i.Z)({},u.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),fieldContainerBorder:{borderBottom:"#9c9c9c 1px solid",marginBottom:20}}))}))(me),pe=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},u.DF),u.ID),u.bK),{},{dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}}}))}))((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,o=e.objectName,s=e.objectInfo,r=e.bucketName,c=(0,d.TL)(),u=(0,a.useState)(!0),h=(0,m.Z)(u,2),f=h[0],x=h[1],v=(0,a.useState)(""),g=(0,m.Z)(v,2),Z=g[0],S=g[1],w=(0,a.useState)(""),C=(0,m.Z)(w,2),_=C[0],T=C[1],E=(0,a.useState)(!1),y=(0,m.Z)(E,2),N=y[0],I=y[1],F=(0,a.useState)(!1),O=(0,m.Z)(F,2),L=O[0],D=O[1],B=(0,a.useState)(!1),R=(0,m.Z)(B,2),z=R[0],M=R[1];(0,a.useEffect)((function(){if(s.retention_mode&&(S(s.retention_mode.toLowerCase()),M(!0)),s.retention_until_date){var e=new Date(s.retention_until_date);if("Invalid Date"!==e.toString()){var n=e.getFullYear(),t=(a=e.getMonth()+1)<10?"0".concat(a):"".concat(a),i=e.getDate();isNaN(i)||"NaN"===t||isNaN(n)||T("".concat(n,"-").concat(t,"-").concat(i))}M(!0)}var a}),[s]);var A=(0,a.useRef)(null),U=function(){x(!1),S(""),A.current&&A.current.resetDate()},G=z&&("governance"===Z||""===Z);return(0,P.jsxs)(ne.Z,{title:"Set Retention Policy",modalOpen:t,onClose:function(){U(),i(!1)},children:[(0,P.jsxs)("div",{className:n.spacerBottom,children:[(0,P.jsx)("strong",{children:"Selected Object"}),": ",o]}),(0,P.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:[G&&(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(te.Z,{value:"status",id:"status",name:"status",checked:f,onChange:function(e){x(!f)},label:"Status",indicatorLabels:["Enabled","Disabled"]})}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(ie.Z,{currentSelection:Z,id:"type",name:"type",label:"Type",disableOptions:!f||z&&""!==Z,onChange:function(e){S(e.target.value)},selectorOptions:[{label:"Governance",value:"governance"},{label:"Compliance",value:"compliance"}]})}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:"".concat(n.dateSelector," "),children:(0,P.jsx)(fe,{id:"date",label:"Date",disableOptions:!(f&&("governance"===Z||"compliance"===Z)),ref:A,value:_,borderBottom:!0,onDateChange:function(e,n){I(n),n&&T(e)}})}),(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,P.jsx)(p.zx,{id:"reset",type:"button",variant:"regular",onClick:U,label:"Reset"}),(0,P.jsx)(p.zx,{id:"save",type:"submit",variant:"callAction",disabled:f&&""===Z||f&&!N||L,onClick:function(){D(!0);var e=s.name,n=s.version_id,t=f||"governance"!==Z?"".concat(_,"T23:59:59Z"):"";f||"governance"!==Z?function(e,n,t){b.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,j.LL)(e),"&version_id=").concat(n),{expires:t,mode:Z}).then((function(e){D(!1),i(!0)})).catch((function(e){c((0,k.zb)(e)),D(!1)}))}(e,n,t):function(e,n){b.Z.invoke("DELETE","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,j.LL)(e),"&version_id=").concat(n)).then((function(){D(!1),i(!0)})).catch((function(e){c((0,k.zb)(e)),D(!1)}))}(e,n)},label:"Save"})]})]})]})})),xe=t(51691),ve=t(23508),be=t(9505),ge=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,o=e.selectedObject,s=e.versioning,r=e.selectedVersion,c=void 0===r?"":r,l=(0,d.TL)(),u=(0,be.Z)((function(){return n(!0)}),(function(e){return l((0,k.Ih)(e))})),h=(0,m.Z)(u,2),f=h[0],p=h[1],x=(0,a.useState)(!1),v=(0,m.Z)(x,2),b=v[0],g=v[1];if(!o)return null;return(0,P.jsx)(ve.Z,{title:"Delete Object",confirmText:"Delete",isOpen:t,titleIcon:(0,P.jsx)(E.NvT,{}),isLoading:f,onConfirm:function(){var e=(0,j.IO)(o).endsWith("/");p("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(o).concat(""!==c?"&version_id=".concat(c):"&recursive=".concat(e,"&all_versions=").concat(b)))},onClose:function(){return n(!1)},confirmationContent:(0,P.jsxs)(xe.Z,{children:["Are you sure you want to delete: ",(0,P.jsx)("br",{}),(0,P.jsx)("b",{children:(0,j.IO)(o)})," ",""!==c?(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),"Version ID:",(0,P.jsx)("br",{}),(0,P.jsx)("strong",{children:c})]}):"","? ",(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),s&&""===c&&(0,P.jsx)(te.Z,{label:"Delete All Versions",indicatorLabels:["Yes","No"],checked:b,value:"delete_versions",id:"delete-versions",name:"delete-versions",onChange:function(e){g(!b)},description:""})]})})},je=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},u.DF),u.ID),u.bK))}))((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,o=e.objectName,s=e.bucketName,r=e.actualInfo,c=(0,d.TL)(),u=(0,a.useState)(!1),h=(0,m.Z)(u,2),f=h[0],x=h[1],g=(0,a.useState)(!1),Z=(0,m.Z)(g,2),S=Z[0],w=Z[1],C=r.version_id;(0,a.useEffect)((function(){var e=v()(r,"legal_hold_status","OFF");x("ON"===e)}),[r]);var _=function(){x(!1)};return(0,P.jsxs)(ne.Z,{title:"Set Legal Hold",modalOpen:t,onClose:function(){_(),i(!1)},children:[(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.spacerBottom,children:["Object: ",s]}),(0,P.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),w(!0),b.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/objects/legalhold?prefix=").concat((0,j.LL)(o),"&version_id=").concat(C),{status:f?"enabled":"disabled"}).then((function(){w(!1),i(!0)})).catch((function(e){c((0,k.zb)(e)),w(!1)}))}(e)},children:[(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,P.jsx)(te.Z,{value:"legalhold",id:"legalhold",name:"legalhold",checked:f,onChange:function(e){x(!f)},label:"Legal Hold Status",indicatorLabels:["Enabled","Disabled"],tooltip:"To enable this feature you need to enable versioning on the bucket before creation"})}),(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,P.jsx)(p.zx,{id:"clear",type:"button",variant:"regular",onClick:_,label:"Clear"}),(0,P.jsx)(p.zx,{id:"save",type:"submit",variant:"callAction",disabled:S,label:" Save"})]})]})]})})),Ze=t(78562),Se=t(79836),we=t(53382),Ce=t(35855),_e=t(53994),Te=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)({propertiesIcon:{marginLeft:5,"& .min-icon":{height:12}},capitalizeFirst:{textTransform:"capitalize","& .min-icon":{width:16,height:16}},titleItem:{width:"35%"}},u.bK),u.$b))}))((function(e){var n=e.bucketName,t=e.internalPaths,i=e.classes,o=e.actualInfo,s=e.linear,r=void 0!==s&&s,c=(0,a.useState)({}),d=(0,m.Z)(c,2),u=d[0],h=d[1],f=(0,be.Z)((function(e){var n=v()(e,"objectMetadata",{});h(n)}),(function(e){return!1})),p=(0,m.Z)(f,2)[1],x=Object.keys(u),b=(0,a.useCallback)((function(){p("GET","/api/v1/buckets/".concat(n,"/objects/metadata?prefix=").concat(t))}),[n,t,o]);return(0,a.useEffect)((function(){o&&b()}),[o,b]),r?(0,P.jsx)(a.Fragment,{children:x.map((function(e,n){var t=Array.isArray(u[e])?u[e].map(decodeURIComponent).join(", "):decodeURIComponent(u[e]);return(0,P.jsxs)(J.Z,{className:i.metadataLinear,children:[(0,P.jsx)("strong",{children:e}),(0,P.jsx)("br",{}),t]},"box-meta-".concat(e,"-").concat(n.toString()))}))}):(0,P.jsxs)(l.ZP,{container:!0,children:[(0,P.jsx)(l.ZP,{item:!0,xs:12,sx:{marginTop:"25px",marginBottom:"5px"},children:(0,P.jsx)("h3",{style:{marginTop:"0",marginBottom:"0"},children:"Object Metadata"})}),(0,P.jsx)(l.ZP,{item:!0,xs:12,children:(0,P.jsx)(Se.Z,{className:i.table,"aria-label":"simple table",children:(0,P.jsx)(we.Z,{children:x.map((function(e,n){var t=Array.isArray(u[e])?u[e].map(decodeURIComponent).join(", "):decodeURIComponent(u[e]);return(0,P.jsxs)(Ce.Z,{children:[(0,P.jsx)(_e.Z,{component:"th",scope:"row",className:i.titleItem,children:e}),(0,P.jsx)(_e.Z,{align:"right",children:t})]},"tRow-".concat(n.toString()))}))})})})]})})),Ee=t(45987),ye=t(36151),Ne=["disabled","onClick","icon","label","classes"],Ie=(0,c.Z)((function(e){return(0,r.Z)({root:{padding:"0 15px",height:22,margin:0,color:"#5E5E5E",fontWeight:"normal",fontSize:14,whiteSpace:"nowrap",width:"100%",justifyContent:"flex-start","&:hover":{backgroundColor:"transparent",color:"#000"},"& .min-icon":{width:11},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}}})}))((function(e){var n=e.disabled,t=e.onClick,a=e.icon,o=e.label,s=e.classes,r=(0,Ee.Z)(e,Ne);return(0,P.jsx)(ye.Z,(0,i.Z)((0,i.Z)({},r),{},{disabled:n,onClick:t,className:(0,oe.Z)(s.root,"noDefaultHeight"),startIcon:a,sx:{height:"initial"},children:(0,P.jsx)("span",{className:"buttonItem",children:o})}))})),ke=(0,c.Z)((function(){return(0,r.Z)((0,i.Z)({},u.$b))}))((function(e){var n=e.items,t=e.classes,i=e.title;return(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)("div",{className:t.titleLabel,children:i}),(0,P.jsxs)("ul",{className:t.objectActions,children:[(0,P.jsx)("li",{children:"Actions:"}),n.map((function(e,n){return(0,P.jsx)("li",{children:(0,P.jsx)(O.Z,{tooltip:e.tooltip||"",children:(0,P.jsx)(Ie,{label:e.label,icon:e.icon,onClick:e.action,disabled:e.disabled})})},"action-element-".concat(n.toString()))}))]})]})})),Fe=t(37762),Oe=t(71863),Pe=t(82314),Le=(0,c.Z)((function(e){return(0,r.Z)({fileName:{display:"flex",alignItems:"center","& .min-icon":{width:16,height:16,marginRight:4,minWidth:16,minHeight:16}},fileNameText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}})}))((function(e){var n=e.classes,t=e.icon,i=e.strings;return(0,P.jsxs)("div",{className:n.fileName,children:[t,(0,P.jsx)("span",{className:n.fileNameText,children:i[i.length-1]})]})})),De=a.lazy((function(){return Promise.resolve().then(t.bind(t,76181))})),Be=a.lazy((function(){return Promise.resolve().then(t.bind(t,49563))})),Re=a.lazy((function(){return Promise.resolve().then(t.bind(t,21733))})),ze=a.lazy((function(){return Promise.resolve().then(t.bind(t,95232))})),Me=a.lazy((function(){return Promise.resolve().then(t.bind(t,27529))})),Ae=a.lazy((function(){return Promise.resolve().then(t.bind(t,60527))})),Ue=a.lazy((function(){return Promise.resolve().then(t.bind(t,69812))})),Ge=a.lazy((function(){return Promise.resolve().then(t.bind(t,46454))})),Ke=a.lazy((function(){return Promise.resolve().then(t.bind(t,84820))})),We=a.lazy((function(){return Promise.resolve().then(t.bind(t,40599))})),He=a.lazy((function(){return Promise.resolve().then(t.bind(t,72995))})),Ve=a.lazy((function(){return Promise.resolve().then(t.bind(t,34171))})),Je=a.lazy((function(){return Promise.resolve().then(t.bind(t,30745))})),Ye=a.lazy((function(){return Promise.resolve().then(t.bind(t,84033))})),qe=a.lazy((function(){return Promise.resolve().then(t.bind(t,52009))})),Xe=[{icon:(0,P.jsx)(Je,{}),extensions:["mp4","mov","avi","mpeg","mpg"]},{icon:(0,P.jsx)(Ke,{}),extensions:["mp3","m4a","aac"]},{icon:(0,P.jsx)(We,{}),extensions:["pdf"]},{icon:(0,P.jsx)(He,{}),extensions:["ppt","pptx"]},{icon:(0,P.jsx)(Ye,{}),extensions:["xls","xlsx"]},{icon:(0,P.jsx)(Ue,{}),extensions:["cer","crt","pem"]},{icon:(0,P.jsx)(Be,{}),extensions:["html","xml","css","py","go","php","cpp","h","java"]},{icon:(0,P.jsx)(Re,{}),extensions:["cfg","yaml"]},{icon:(0,P.jsx)(ze,{}),extensions:["sql"]},{icon:(0,P.jsx)(Me,{}),extensions:["ttf","otf"]},{icon:(0,P.jsx)(Ve,{}),extensions:["txt"]},{icon:(0,P.jsx)(qe,{}),extensions:["zip","rar","tar","gz"]},{icon:(0,P.jsx)(De,{}),extensions:["epub","mobi","azw","azw3"]},{icon:(0,P.jsx)(Ae,{}),extensions:["jpeg","jpg","gif","tiff","png","heic","dng"]}],$e=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=e,i=(0,P.jsx)(Oe.Z,{});e.endsWith("/")&&(i=(0,P.jsx)(Pe.Z,{}),t=e.slice(0,-1));var a,o=e.toLowerCase(),s=(0,Fe.Z)(Xe);try{for(s.s();!(a=s.n()).done;){var r,c=a.value,l=(0,Fe.Z)(c.extensions);try{for(l.s();!(r=l.n()).done;){var d=r.value;o.endsWith(".".concat(d))&&(i=c.icon)}}catch(h){l.e(h)}finally{l.f()}}}catch(h){s.e(h)}finally{s.f()}!e.endsWith("/")&&e.indexOf(".")<0&&(i=(0,P.jsx)(Ge,{}));var u=t.split("/");return n?i:(0,P.jsx)(Le,{icon:i,strings:u})},Qe=t(21435),en=t(81918),nn=t(29823),tn=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({newTileHeader:{fontSize:18,fontWeight:"bold",color:"#000",margin:"35px 0",paddingBottom:15,display:"flex",alignItems:"center","& > 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=e.modalOpen,t=e.onCloseAndUpdate,s=e.bucketName,r=e.actualInfo,c=e.classes,u=(0,d.TL)(),h=(0,o.v9)(k.N5),f=(0,a.useState)(""),x=(0,m.Z)(f,2),g=x[0],Z=x[1],S=(0,a.useState)(""),w=(0,m.Z)(S,2),C=w[0],_=w[1],T=(0,a.useState)(!1),I=(0,m.Z)(T,2),F=I[0],O=I[1],L=(0,a.useState)(!1),D=(0,m.Z)(L,2),B=D[0],R=D[1],z=(0,a.useState)(""),M=(0,m.Z)(z,2),A=M[0],U=M[1],G=(0,a.useState)(""),K=(0,m.Z)(G,2),W=K[0],H=K[1],V=(0,j.LL)(r.name),Y=r.tags,q=Object.keys(Y||{}),X=r.name.split("/").pop()||"",$=function(e){return(0,P.jsxs)("div",{className:c.tagsForLabel,children:["Tag",e?"s":""," for: ",(0,P.jsx)("strong",{children:X})]})};return(0,P.jsx)(a.Fragment,{children:(0,P.jsx)(ne.Z,{modalOpen:n,title:B?(0,P.jsx)("span",{style:{color:"#C83B51"},children:"Delete Tag"}):"Edit Tags",onClose:function(){t(!0)},titleIcon:B?(0,P.jsx)(E.dRf,{style:{fill:"#C83B51"}}):(0,P.jsx)(E.T0F,{}),children:B?(0,P.jsx)(a.Fragment,{children:(0,P.jsxs)(l.ZP,{container:!0,children:[$(!1),"Are you sure you want to delete the tag"," ",(0,P.jsxs)("b",{className:c.deleteTag,children:[A," : ",W]})," ","?",(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,P.jsx)(p.zx,{id:"cancel",type:"button",variant:"regular",onClick:function(){U(""),H(""),R(!1)},label:"Cancel"}),(0,P.jsx)(p.zx,{type:"submit",variant:"secondary",onClick:function(){var e=(0,i.Z)({},Y);delete e[A];var n=h?r.version_id:"null";b.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/objects/tags?prefix=").concat(V,"&version_id=").concat(n),{tags:e}).then((function(e){t(!0),O(!1)})).catch((function(e){u((0,k.zb)(e)),O(!1)}))},id:"deleteTag",label:"Delete Tag"})]})]})}):(0,P.jsxs)(l.ZP,{container:!0,children:[(0,P.jsx)(y.s,{scopes:[N.Ft.S3_GET_OBJECT_TAGGING],resource:s,children:(0,P.jsxs)(J.Z,{sx:{display:"flex",flexFlow:"column",width:"100%"},children:[$(!0),(0,P.jsxs)("div",{className:c.currentTagsContainer,children:["Current Tags:",(0,P.jsx)("br",{}),0===q.length?(0,P.jsx)("span",{className:c.noTagsForObject,children:"There are no tags for this object"}):(0,P.jsx)(a.Fragment,{}),(0,P.jsx)(J.Z,{sx:{marginTop:"5px",marginBottom:"15px"},children:q.map((function(e,n){var t=v()(Y,"".concat(e),"");return""!==t?(0,P.jsx)(y.s,{scopes:[N.Ft.S3_DELETE_OBJECT_TAGGING],resource:s,errorProps:{deleteIcon:null,onDelete:null},children:(0,P.jsx)(en.Z,{style:{textTransform:"none",marginRight:"5px",marginBottom:"5px"},size:"small",label:"".concat(e," : ").concat(t),color:"primary",deleteIcon:(0,P.jsx)(nn.Z,{}),onDelete:function(){!function(e,n){U(e),H(n),R(!0)}(e,t)}})},"chip-".concat(n)):null}))})]})]})}),(0,P.jsx)(y.s,{scopes:[N.Ft.S3_PUT_OBJECT_TAGGING],resource:s,errorProps:{disabled:!0,onClick:null},children:(0,P.jsxs)(l.ZP,{container:!0,children:[(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:c.newTileHeader,children:[(0,P.jsx)(E.OCT,{})," Add New Tag"]}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,P.jsx)(Qe.Z,{value:g,label:"Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter Tag Key",onChange:function(e){Z(e.target.value)}})}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,P.jsx)(Qe.Z,{value:C,label:"Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter Tag Label",onChange:function(e){_(e.target.value)}})}),(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:[(0,P.jsx)(p.zx,{id:"clear",type:"button",variant:"regular",color:"primary",onClick:function(){_(""),Z("")},label:"Clear"}),(0,P.jsx)(p.zx,{type:"submit",variant:"callAction",disabled:""===C.trim()||""===g.trim()||F,onClick:function(){O(!0);var e={};e[g]=C;var n=(0,i.Z)((0,i.Z)({},Y),e),a=h?r.version_id:"null";b.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/objects/tags?prefix=").concat(V,"&version_id=").concat(a),{tags:n}).then((function(e){t(!0),O(!1)})).catch((function(e){u((0,k.zb)(e)),O(!1)}))},id:"saveTag",label:"Save"})]})]})})]})})})})),an=t(74165),on=t(15861),sn=t(73669),rn=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},u.DF),u.ID),u.bK))}))((function(e){var n=e.classes,t=e.closeInspectModalAndRefresh,i=e.inspectOpen,o=e.inspectPath,s=e.volumeName,r=(0,d.TL)(),c=function(){return t(!1)},u=(0,a.useState)(!0),h=(0,m.Z)(u,2),f=h[0],x=h[1],v=(0,a.useState)(""),b=(0,m.Z)(v,2),g=b[0],Z=b[1],S=(0,a.useState)(""),w=(0,m.Z)(S,2),C=w[0],_=w[1];if(!o)return null;var T=function(){var e=(0,on.Z)((0,an.Z)().mark((function e(n){return(0,an.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)}}(),y=function(){var e=(0,on.Z)((0,an.Z)().mark((function e(){var n,t,i;return(0,an.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=(0,j.LL)(o+"/xl.meta"),t=(0,j.LL)(s),i="/api/v1/admin/inspect?volume=".concat(t,"&file=").concat(n,"&encrypt=").concat(f),T(i).then(function(){var e=(0,on.Z)((0,an.Z)().mark((function e(n){var t,i,a,o;return(0,an.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,r((0,k.Ih)({errorMessage:t.message,detailedError:t.code}));case 5:return e.next=7,n.blob();case 7:if(i=e.sent,a=n.headers.get("content-disposition").split('"')[1],o=(0,j.Do)(a)||"",(0,j.zZ)(i,a),_(a),""!==o){e.next=15;break}return c(),e.abrupt("return");case 15:Z(o);case 16:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()).catch((function(e){r((0,k.Ih)(e))}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,P.jsxs)(a.Fragment,{children:[!g&&(0,P.jsx)(ne.Z,{modalOpen:i,titleIcon:(0,P.jsx)(Y.Gp,{}),title:"Inspect Object",onClose:c,children:(0,P.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:["Would you like to encrypt ",(0,P.jsx)("b",{children:(0,j.IO)(o)}),"?"," ",(0,P.jsx)("br",{}),(0,P.jsx)(te.Z,{label:"Encrypt",indicatorLabels:["Yes","No"],checked:f,value:"encrypt",id:"encrypt",name:"encrypt",onChange:function(e){x(!f)},description:""}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:(0,P.jsx)(p.zx,{id:"inspect",type:"submit",variant:"callAction",color:"primary",onClick:y,label:"Inspect"})})]})}),g?(0,P.jsx)(ne.Z,{modalOpen:i,title:"Inspect Decryption Key",onClose:function(){(0,j.kT)(C),c(),Z("")},titleIcon:(0,P.jsx)(E.tvm,{}),children:(0,P.jsxs)(xe.Z,{children:[(0,P.jsxs)(J.Z,{children:["This will be displayed only once. It cannot be recovered.",(0,P.jsx)("br",{}),"Use secure medium to share this key."]}),(0,P.jsx)(J.Z,{children:(0,P.jsx)(sn.Z,{value:g})})]})}):null]})})),cn=t(72401),ln=t(76610),dn=(0,W.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},u.ID),u.DF),u.bK),(0,u.Bz)(e.spacing(4))))})),un=function(e){var n=e.open,t=e.closeModal,i=e.currentItem,o=e.internalPaths,s=e.actualInfo,r=e.bucketName,c=dn(),u=(0,d.TL)(),h=(0,a.useState)(i),f=(0,m.Z)(h,2),x=f[0],v=f[1],b=(0,a.useState)(!1),g=(0,m.Z)(b,2),Z=g[0],S=g[1];return(0,P.jsxs)(ne.Z,{title:"Rename Download",modalOpen:n,onClose:t,titleIcon:(0,P.jsx)(E.dY8,{}),children:[(0,P.jsxs)("div",{children:["The file you are trying to download has a long name.",(0,P.jsx)("br",{}),"This can cause issues on Windows Systems by trimming the file name after download.",(0,P.jsx)("br",{}),(0,P.jsx)("br",{})," We recommend to rename the file download"]}),(0,P.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault();var n=(0,j.LL)("".concat(r,"-").concat(s.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),i=(0,ln.YO)(8),a=(0,B.LR)(r,o,s.version_id,parseInt(s.size||"0"),x,i,(function(e){u((0,F.RO)({instanceID:n,progress:e}))}),(function(){u((0,F.oK)(n))}),(function(e){u((0,F.qJ)({instanceID:n,msg:e}))}),(function(){u((0,F.Im)(n))}));(0,ln.EN)(i,a),u((0,F.Mc)({ID:i,bucketName:r,done:!1,instanceID:n,percentage:0,prefix:x,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""})),t()}(e)},children:(0,P.jsxs)(l.ZP,{container:!0,children:[(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:c.modalFormScrollable,children:[(0,P.jsx)(l.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,P.jsx)(Qe.Z,{id:"download-filename",name:"download-filename",onChange:function(e){v(e.target.value)},label:"",type:"text",value:x,error:x.length>200&&!Z?"Filename should be less than 200 characters long.":""})}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:c.formFieldRow,children:(0,P.jsx)(te.Z,{value:"acceptLongName",id:"acceptLongName",name:"acceptLongName",checked:Z,onChange:function(e){S(e.target.checked),e.target.checked&&v(i)},label:"Use Original Name"})})]}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:c.modalButtonBar,children:(0,P.jsx)(p.zx,{id:"download-file",type:"submit",variant:"callAction",color:"primary",disabled:x.length>200&&!Z,label:"Download File"})})]})})]})},hn={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},mn=(0,c.Z)((function(){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.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},headerForSection:{display:"flex",justifyContent:"space-between",alignItems:"center",paddingBottom:15,borderBottom:"#E2E2E2 2px solid",fontWeight:"bold",fontSize:18,color:"#000",margin:"20px 22px"},capitalizeFirst:{textTransform:"capitalize"}},u.Si),u.OR),u.bK),u.VI),u.$b))}))((function(e){var n=e.classes,t=e.internalPaths,i=e.bucketName,s=e.versioning,r=e.locking,c=e.onClosePanel,u=(0,d.TL)(),h=(0,o.v9)(k.N5),f=(0,o.v9)((function(e){return e.objectBrowser.versionsMode})),x=(0,o.v9)((function(e){return e.objectBrowser.selectedVersion})),g=(0,o.v9)((function(e){return e.objectBrowser.loadingObjectInfo})),Z=(0,a.useState)(!1),S=(0,m.Z)(Z,2),w=S[0],C=S[1],_=(0,a.useState)(!1),T=(0,m.Z)(_,2),I=T[0],L=T[1],D=(0,a.useState)(!1),R=(0,m.Z)(D,2),z=R[0],M=R[1],A=(0,a.useState)(!1),U=(0,m.Z)(A,2),G=U[0],K=U[1],W=(0,a.useState)(!1),H=(0,m.Z)(W,2),V=H[0],X=H[1],$=(0,a.useState)(null),Q=(0,m.Z)($,2),ee=Q[0],ne=Q[1],te=(0,a.useState)([]),ie=(0,m.Z)(te,2),ae=ie[0],oe=ie[1],se=(0,a.useState)(null),re=(0,m.Z)(se,2),ce=re[0],le=re[1],de=(0,a.useState)([]),ue=(0,m.Z)(de,2),he=ue[0],me=ue[1],fe=(0,a.useState)(!1),xe=(0,m.Z)(fe,2),ve=xe[0],be=xe[1],Se=(0,a.useState)(!1),we=(0,m.Z)(Se,2),Ce=we[0],_e=we[1],Ee=(0,a.useState)(0),ye=(0,m.Z)(Ee,2),Ne=ye[0],Ie=ye[1],Fe=(0,a.useState)(!1),Oe=(0,m.Z)(Fe,2),Pe=Oe[0],Le=Oe[1],De=((0,j.IO)(t)||"").split("/").pop()||"",Be=[];ee&&(Be=ee.name.split("/")),(0,a.useEffect)((function(){if(h&&ae&&ae.length>=1){var e=ae.find((function(e){return e.is_latest}))||hn;""!==x&&(e=ae.find((function(e){return e.version_id===x}))||hn),ne(e)}}),[x,h,ae]),(0,a.useEffect)((function(){g&&""!==t&&b.Z.invoke("GET","/api/v1/buckets/".concat(i,"/objects?prefix=").concat(t).concat(h?"&with_versions=true":"")).then((function(e){var n=v()(e,"objects",[]);if(h){oe(n),me(n);var t=n.reduce((function(e,n){return null!==n&&void 0!==n&&n.size?e+n.size:e}),0);Ie(t)}else ne(n[0]),me([]);u((0,F.vH)(!1))})).catch((function(e){console.error("Error loading object details",e),u((0,F.vH)(!1))}))}),[g,i,t,u,h,x]);var Re=[];ee&&ee.tags&&(Re=Object.keys(ee.tags));var ze=(0,P.jsx)("div",{style:{textAlign:"center",marginTop:35},children:(0,P.jsx)(cn.Z,{})});if(!ee)return g?ze:null;var Me=Be.length>0?Be[Be.length-1]:ee.name,Ae=[i,De,[i,ee.name].join("/")],Ue=(0,y.F)(i,[N.Ft.S3_PUT_OBJECT_LEGAL_HOLD]),Ge=(0,y.F)(Ae,[N.Ft.S3_PUT_OBJECT_TAGGING]),Ke=(0,y.F)(Ae,[N.Ft.S3_GET_OBJECT_RETENTION,N.Ft.S3_PUT_OBJECT_RETENTION],!0),We=(0,y.F)(Ae,[N.Ft.ADMIN_INSPECT_DATA]),He=(0,y.F)(Ae,[N.Ft.S3_GET_BUCKET_VERSIONING,N.Ft.S3_PUT_BUCKET_VERSIONING,N.Ft.S3_GET_OBJECT_VERSION]),Ve=(0,y.F)(Ae,[N.Ft.S3_GET_OBJECT]),Je=(0,y.F)([i,De,[i,ee.name].join("/")],[N.Ft.S3_DELETE_OBJECT]),Ye=[{action:function(){!function(e){var n=(0,j.LL)("".concat(i,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));if(e.name.length>200&&(0,j.mv)().toLowerCase().includes("win"))Le(!0);else{var a=(0,ln.YO)(8),o=(0,B.LR)(i,t,e.version_id,parseInt(e.size||"0"),null,a,(function(e){u((0,F.RO)({instanceID:n,progress:e}))}),(function(){u((0,F.oK)(n))}),(function(e){u((0,F.qJ)({instanceID:n,msg:e}))}),(function(){u((0,F.Im)(n))}));(0,ln.EN)(a,o),u((0,F.Mc)({ID:a,bucketName:i,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))}}(ee)},label:"Download",disabled:!!ee.is_delete_marker||!Ve,icon:(0,P.jsx)(E._8t,{}),tooltip:Ve?"Download this Object":(0,N.MK)([N.Ft.S3_GET_OBJECT],"download this object")},{action:function(){C(!0)},label:"Share",disabled:!!ee.is_delete_marker||!Ve,icon:(0,P.jsx)(E.aAc,{}),tooltip:Ve?"Share this File":(0,N.MK)([N.Ft.S3_GET_OBJECT],"share this object")},{action:function(){_e(!0)},label:"Preview",disabled:!!ee.is_delete_marker||"none"===(0,B.Bg)(De)||!Ve,icon:(0,P.jsx)(E.P99,{}),tooltip:Ve?"Preview this File":(0,N.MK)([N.Ft.S3_GET_OBJECT],"preview this object")},{action:function(){K(!0)},label:"Legal Hold",disabled:!r||!h||!!ee.is_delete_marker||!Ue||""!==x,icon:(0,P.jsx)(E.fNL,{}),tooltip:Ue?r?"Change Legal Hold rules for this File":"Object Locking must be enabled on this bucket in order to set Legal Hold":(0,N.MK)([N.Ft.S3_PUT_OBJECT_LEGAL_HOLD],"change legal hold settings for this object")},{action:function(){L(!0)},label:"Retention",disabled:!h||!!ee.is_delete_marker||!Ke||""!==x||!r,icon:(0,P.jsx)(E.E9d,{}),tooltip:Ke?r?"Change Retention rules for this File":"Object Locking must be enabled on this bucket in order to set Retention Rules":(0,N.MK)([N.Ft.S3_GET_OBJECT_RETENTION,N.Ft.S3_PUT_OBJECT_RETENTION],"change Retention Rules for this object")},{action:function(){M(!0)},label:"Tags",disabled:!!ee.is_delete_marker||""!==x||!Ge,icon:(0,P.jsx)(E.DgT,{}),tooltip:Ge?"Change Tags for this File":(0,N.MK)([N.Ft.S3_PUT_OBJECT_TAGGING,N.Ft.S3_GET_OBJECT_TAGGING],"set Tags on this object")},{action:function(){X(!0)},label:"Inspect",disabled:!h||!!ee.is_delete_marker||""!==x||!We,icon:(0,P.jsx)(Y.Gp,{}),tooltip:We?"Inspect this file":(0,N.MK)([N.Ft.ADMIN_INSPECT_DATA],"inspect this file")},{action:function(){u((0,F.db)({status:!f,objectName:Me}))},label:f?"Hide Object Versions":"Display Object Versions",icon:(0,P.jsx)(E.cRd,{}),disabled:!h||!(ee.version_id&&"null"!==ee.version_id)||!He,tooltip:He?ee.version_id&&"null"!==ee.version_id?"Display Versions for this file":"":(0,N.MK)([N.Ft.S3_GET_BUCKET_VERSIONING,N.Ft.S3_PUT_BUCKET_VERSIONING,N.Ft.S3_GET_OBJECT_VERSION],"display all versions of this object")}];return(0,P.jsxs)(a.Fragment,{children:[w&&ee&&(0,P.jsx)(q.default,{open:w,closeModalAndRefresh:function(){le(null),C(!1)},bucketName:i,dataObject:ce||ee}),I&&ee&&(0,P.jsx)(pe,{open:I,closeModalAndRefresh:function(e){L(!1),e&&u((0,F.vH)(!0))},objectName:De,objectInfo:ee,bucketName:i}),ve&&(0,P.jsx)(ge,{deleteOpen:ve,selectedBucket:i,selectedObject:t,closeDeleteModalAndRefresh:function(e){be(!1),e&&""===x?c(!0):(u((0,F.Eq)(!0)),u((0,F.M3)("")),u((0,F.vH)(!0)))},versioning:h&&s,selectedVersion:x}),G&&ee&&(0,P.jsx)(je,{open:G,closeModalAndRefresh:function(e){K(!1),e&&u((0,F.vH)(!0))},objectName:ee.name,bucketName:i,actualInfo:ee}),Ce&&ee&&(0,P.jsx)(Ze.default,{open:Ce,bucketName:i,object:{name:ee.name,version_id:ee.version_id||"null",size:parseInt(ee.size||"0"),content_type:"",last_modified:new Date(ee.last_modified)},onClosePreview:function(){_e(!1)}}),z&&ee&&(0,P.jsx)(tn,{modalOpen:z,bucketName:i,actualInfo:ee,onCloseAndUpdate:function(e){M(!1),e&&u((0,F.vH)(!0))}}),V&&ee&&(0,P.jsx)(rn,{inspectOpen:V,volumeName:i,inspectPath:ee.name,closeInspectModalAndRefresh:function(e){X(!1),e&&u((0,F.vH)(!0))}}),Pe&&ee&&(0,P.jsx)(un,{open:Pe,closeModal:function(){Le(!1)},currentItem:De,bucketName:i,internalPaths:t,actualInfo:ee}),g?(0,P.jsx)(a.Fragment,{children:ze}):(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)(ke,{title:(0,P.jsxs)("div",{className:n.ObjectDetailsTitle,children:[$e(Me,!0),(0,P.jsx)("span",{className:n.objectNameContainer,children:Me})]}),items:Ye}),(0,P.jsx)(O.Z,{tooltip:Je?"":(0,N.MK)([N.Ft.S3_DELETE_OBJECT],"delete this object"),children:(0,P.jsx)(l.ZP,{item:!0,xs:12,sx:{justifyContent:"center",display:"flex"},children:(0,P.jsx)(y.s,{resource:[i,De,[i,ee.name].join("/")],scopes:[N.Ft.S3_DELETE_OBJECT],errorProps:{disabled:!0},children:(0,P.jsx)(p.zx,{id:"delete-element-click",icon:(0,P.jsx)(E.pJl,{}),iconLocation:"start",fullWidth:!0,variant:"secondary",onClick:function(){be(!0)},disabled:""===x&&ee.is_delete_marker,style:{width:"calc(100% - 44px)",margin:"8px 0"},label:"Delete".concat(""!==x?" version":"")})})})}),(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.headerForSection,children:[(0,P.jsx)("span",{children:"Object Info"}),(0,P.jsx)(E.Gvh,{})]}),(0,P.jsxs)(J.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Name:"}),(0,P.jsx)("br",{}),(0,P.jsx)("div",{style:{overflowWrap:"break-word"},children:Me})]}),""!==x&&(0,P.jsxs)(J.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Version ID:"}),(0,P.jsx)("br",{}),x]}),(0,P.jsxs)(J.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Size:"}),(0,P.jsx)("br",{}),(0,j.ae)(ee.size||"0")]}),ee.version_id&&"null"!==ee.version_id&&""===x&&(0,P.jsxs)(J.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Versions:"}),(0,P.jsx)("br",{}),he.length," version",1!==he.length?"s":"",","," ",(0,j.l5)(Ne)]}),""===x&&(0,P.jsxs)(J.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Last Modified:"}),(0,P.jsx)("br",{}),function(e){var n=new Date,t=new Date(e),i=n.getTime()-t.getTime(),a=(0,j.nF)(i,"ms");return""!==a.trim()?"".concat(a," ago"):"Just now"}(ee.last_modified)]}),(0,P.jsxs)(J.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"ETAG:"}),(0,P.jsx)("br",{}),ee.etag||"N/A"]}),(0,P.jsxs)(J.Z,{className:n.detailContainer,children:[(0,P.jsx)("strong",{children:"Tags:"}),(0,P.jsx)("br",{}),0===Re.length?"N/A":Re.map((function(e,n){return(0,P.jsxs)("span",{children:[e,":",v()(ee,"tags.".concat(e),""),n div":{borderBottomColor:"#F8F8F8"}},"@media (max-width: 799px)":{margin:0,"&:hover, &.selected":{backgroundColor:"transparent","& > div":{borderBottomColor:"#E2E2E2"}}}},versionContainer:{fontSize:16,fontWeight:"bold",display:"flex",alignItems:"center","& svg.min-icon":{width:18,height:18,minWidth:18,minHeight:18,marginRight:10},"@media (max-width: 799px)":{fontSize:14,"& svg.min-icon":{display:"none"}}},buttonContainer:{textAlign:"right","& button":{marginLeft:"1.5rem"},"@media (max-width: 600px)":{"& button":{marginLeft:"5px"}}},versionID:{fontSize:"12px",margin:"2px 0",whiteSpace:"nowrap",textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden"},versionData:{marginRight:"10px",fontSize:12,color:"#868686","@media (max-width: 799px)":{textOverflow:"ellipsis",maxWidth:"95%",overflow:"hidden",whiteSpace:"nowrap"}},ctrItem:{position:"relative","&::before":{content:"' '",display:"block",position:"absolute",width:"2px",height:"calc(100% + 2px)",backgroundColor:"#F8F8F8",left:"24px"},"@media (max-width: 799px)":{"&::before":{display:"none"}}},collapsableInfo:{"@media (max-width: 799px)":{display:"flex",flexDirection:"column"}},versionItem:{"@media (max-width: 799px)":{display:"none"}}})}))((function(e){var n=e.classes,t=e.fileName,i=e.versionInfo,a=e.isSelected,o=e.checkable,s=e.isChecked,r=e.onCheck,c=e.onShare,d=e.onDownload,u=e.onRestore,h=e.onPreview,m=e.globalClick,f=e.index,p=e.key,x=e.style,v=i.is_delete_marker,b=[{icon:(0,P.jsx)(E.P99,{}),action:h,tooltip:"Preview"},{icon:(0,P.jsx)(E._8t,{}),action:d,tooltip:"Download this version"},{icon:(0,P.jsx)(E.aAc,{}),action:c,tooltip:"Share this version"},{icon:(0,P.jsx)(E.D7Y,{}),action:u,tooltip:"Restore this version"}],g=null;return i.is_delete_marker?g="deleted":i.is_latest?g="current":"null"===i.version_id&&(g="null"),(0,P.jsx)(l.ZP,{container:!0,flex:1,className:n.ctrItem,onClick:function(){m(i)},style:x,children:(0,P.jsx)(l.ZP,{item:!0,xs:12,className:"".concat(n.intermediateLayer," ").concat(a?"selected":""),children:(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(n.mainFileVersionItem," ").concat(i.is_delete_marker?"deleted":""),children:[(0,P.jsx)(l.ZP,{item:!0,xs:12,justifyContent:"space-between",children:(0,P.jsxs)(l.ZP,{container:!0,children:[(0,P.jsxs)(l.ZP,{item:!0,xs:!0,md:4,className:n.versionContainer,children:[o&&(0,P.jsx)(Cn.Z,{checked:s,id:"select-".concat(i.version_id),label:"",name:"select-".concat(i.version_id),onChange:function(e){e.stopPropagation(),e.preventDefault(),r(i.version_id||"")},value:i.version_id||"",disabled:i.is_delete_marker,overrideCheckboxStyles:{paddingLeft:0,height:34,width:25},noTopMargin:!0}),$e(t,!0)," v",f.toString(),(0,P.jsx)("span",{className:n.versionItem,children:g&&(0,P.jsx)(wn,{type:g})})]}),(0,P.jsx)(l.ZP,{item:!0,xs:10,md:8,className:n.buttonContainer,children:b.map((function(e,t){return(0,P.jsx)(re.Z,{title:e.tooltip,children:(0,P.jsx)(T.Z,{size:"small",id:"version-action-".concat(e.tooltip,"-").concat(t.toString()),className:"".concat(n.spacing," ").concat(v?n.buttonDisabled:""),disabled:v,onClick:function(n){n.stopPropagation(),v?n.preventDefault():e.action(i)},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(t.toString()))}))})]})}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.versionID,children:"null"!==i.version_id?i.version_id:"-"}),(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.collapsableInfo,children:[(0,P.jsxs)("span",{className:n.versionData,children:[(0,P.jsx)("strong",{children:"Last modified:"})," ",(0,P.jsx)(pn(),{children:i.last_modified})]}),(0,P.jsxs)("span",{className:n.versionData,children:[(0,P.jsx)("strong",{children:"Size:"})," ",(0,j.ae)(i.size||"0")]})]})]})})},p)})),Tn=t(90673),En=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,o=e.selectedObject,s=(0,d.TL)(),r=(0,a.useState)(!1),c=(0,m.Z)(r,2),u=c[0],h=c[1],f=(0,a.useState)(""),p=(0,m.Z)(f,2),x=p[0],v=p[1];if((0,a.useEffect)((function(){u&&b.Z.invoke("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(o,"&non_current_versions=true")).then((function(){n(!0)})).catch((function(e){s((0,k.Ih)(e)),h(!1)}))}),[u,n,s,o,i]),!o)return null;return(0,P.jsx)(ve.Z,{title:"Delete Non-Current versions",confirmText:"Delete",isOpen:t,titleIcon:(0,P.jsx)(E.NvT,{}),isLoading:u,onConfirm:function(){h(!0)},onClose:function(){return n(!1)},confirmButtonProps:{disabled:"YES, PROCEED"!==x||u},confirmationContent:(0,P.jsxs)(xe.Z,{children:["Are you sure you want to delete all the non-current versions for:"," ",(0,P.jsx)("b",{children:(0,j.IO)(o)}),"? ",(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),"To continue please type ",(0,P.jsx)("b",{children:"YES, PROCEED"})," in the box.",(0,P.jsx)(l.ZP,{item:!0,xs:12,children:(0,P.jsx)(Qe.Z,{id:"type-confirm",name:"retype-tenant",onChange:function(e){v(e.target.value)},label:"",value:x})})]})})},yn=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,o=e.selectedVersions,s=e.selectedObject,r=(0,d.TL)(),c=(0,a.useState)(!1),l=(0,m.Z)(c,2),u=l[0],h=l[1];return(0,a.useEffect)((function(){if(u){var e=o.map((function(e){return{path:s,versionID:e,recursive:!1}}));e.length>0&&b.Z.invoke("POST","/api/v1/buckets/".concat(i,"/delete-objects?all_versions=false"),e).then((function(){h(!1),n(!0)})).catch((function(e){r((0,k.Ih)(e)),h(!1)}))}}),[u,n,i,s,o,r]),o?(0,P.jsx)(ve.Z,{title:"Delete Selected Versions",confirmText:"Delete",isOpen:t,titleIcon:(0,P.jsx)(E.NvT,{}),isLoading:u,onConfirm:function(){h(!0)},onClose:function(){return n(!1)},confirmationContent:(0,P.jsxs)(xe.Z,{children:["Are you sure you want to delete the selected ",o.length," ","versions for ",(0,P.jsx)("strong",{children:s}),"?"]})}):null},Nn=t(5171),In={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},kn=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.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","&::before":{content:"' '",display:"block",position:"absolute",width:"2px",backgroundColor:"#F8F8F8",left:"24px",height:"40px",bottom:0},"@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.bp),u.Si),u.OR),u.VX),u.bK),u.VI),u.cx),u.C4),(0,u.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.internalPaths,i=e.bucketName,s=(0,d.TL)(),r=(0,o.v9)((function(e){return e.objectBrowser.searchVersions})),c=(0,o.v9)((function(e){return e.objectBrowser.loadingVersions})),u=(0,o.v9)((function(e){return e.objectBrowser.selectedVersion})),f=(0,o.v9)(k.N5),x=(0,a.useState)(!1),g=(0,m.Z)(x,2),Z=g[0],S=g[1],w=(0,a.useState)(null),C=(0,m.Z)(w,2),_=C[0],T=C[1],y=(0,a.useState)(null),N=(0,m.Z)(y,2),I=N[0],L=N[1],z=(0,a.useState)([]),M=(0,m.Z)(z,2),A=M[0],U=M[1],G=(0,a.useState)(!1),K=(0,m.Z)(G,2),W=K[0],H=K[1],V=(0,a.useState)(""),J=(0,m.Z)(V,2),Y=J[0],X=J[1],$=(0,a.useState)("date"),Q=(0,m.Z)($,2),ee=Q[0],ne=Q[1],te=(0,a.useState)(!1),ie=(0,m.Z)(te,2),ae=ie[0],oe=ie[1],se=(0,a.useState)(!1),re=(0,m.Z)(se,2),ce=re[0],le=re[1],de=(0,a.useState)(!1),ue=(0,m.Z)(de,2),he=ue[0],me=ue[1],fe=(0,a.useState)([]),pe=(0,m.Z)(fe,2),xe=pe[0],ve=pe[1],be=(0,a.useState)(!1),ge=(0,m.Z)(be,2),je=ge[0],Se=ge[1],we=[];_&&(we=_.name.split("/")),(0,a.useEffect)((function(){c||_||s((0,F.Eq)(!0))}),[c,_,s]),(0,a.useEffect)((function(){c&&""!==t&&b.Z.invoke("GET","/api/v1/buckets/".concat(i,"/objects?prefix=").concat(t).concat(f?"&with_versions=true":"")).then((function(e){var n=v()(e,"objects",[]),i=(0,j.IO)(t),a=n.filter((function(e){return e.name===i}));f?(T(a.find((function(e){return e.is_latest}))||In),U(a)):(T(a[0]),U([])),s((0,F.Eq)(!1))})).catch((function(e){s((0,k.Ih)(e)),s((0,F.Eq)(!1))}))}),[c,i,t,s,f]);var Ce=function(e){L(e),S(!0)},_e=function(e){L(e),oe(!0)},Te=function(e){X(e.version_id||""),H(!0)},Ee=function(e){!function(e){var n=(0,j.LL)("".concat(i,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),a=(0,ln.YO)(8),o=(0,B.LR)(i,t,e.version_id,parseInt(e.size||"0"),null,a,(function(e){s((0,F.RO)({instanceID:n,progress:e}))}),(function(){s((0,F.oK)(n))}),(function(e){s((0,F.qJ)({instanceID:n,msg:e}))}),(function(){s((0,F.Im)(n))}));(0,ln.EN)(a,o),s((0,F.Mc)({ID:a,bucketName:i,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))}(e)},ye=function(e){s((0,F.M3)(e.version_id||""))},Ne=A.filter((function(e){return!!e.version_id&&e.version_id.includes(r)})),Ie=A.reduce((function(e,n){return n.size?e+parseInt(n.size):e}),0);Ne.sort((function(e,n){if("size"===ee)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 ke=function(e){if(xe.includes(e)){var n=xe.filter((function(n){return n!==e}));ve(n)}else{var t=(0,h.Z)(xe);t.push(e),ve(t)}};return(0,P.jsxs)(a.Fragment,{children:[Z&&_&&(0,P.jsx)(q.default,{open:Z,closeModalAndRefresh:function(){L(null),S(!1),oe(!1)},bucketName:i,dataObject:I||_}),W&&_&&(0,P.jsx)(Sn,{restoreOpen:W,bucketName:i,versionID:Y,objectPath:_.name,onCloseAndUpdate:function(e){H(!1),X(""),e&&(s((0,F.Eq)(!0)),s((0,F.vH)(!0)))}}),ae&&_&&(0,P.jsx)(Ze.default,{open:ae,bucketName:i,object:{name:_.name,version_id:I&&I.version_id?I.version_id:"null",size:parseInt(I&&I.size?I.size:"0"),content_type:"",last_modified:new Date(_.last_modified)},onClosePreview:function(){oe(!1)}}),ce&&(0,P.jsx)(En,{deleteOpen:ce,closeDeleteModalAndRefresh:function(e){le(!1),e&&(s((0,F.Eq)(!0)),s((0,F.M3)("")),s((0,F.vH)(!0)))},selectedBucket:i,selectedObject:t}),je&&(0,P.jsx)(yn,{selectedBucket:i,selectedObject:(0,j.IO)(t),deleteOpen:je,selectedVersions:xe,closeDeleteModalAndRefresh:function(e){Se(!1),e&&(s((0,F.Eq)(!0)),s((0,F.M3)("")),s((0,F.vH)(!0)),ve([]))}}),(0,P.jsxs)(l.ZP,{container:!0,className:n.versionsContainer,children:[!_&&(0,P.jsx)(l.ZP,{item:!0,xs:12,children:(0,P.jsx)(jn.Z,{})}),_&&(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)(l.ZP,{item:!0,xs:12,children:(0,P.jsx)(D,{bucketName:i,internalPaths:(0,j.IO)(t),existingFiles:[],hidePathButton:!0})}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,P.jsx)(R.Z,{icon:(0,P.jsx)("span",{className:n.listIcon,children:(0,P.jsx)(E.cRd,{})}),title:(0,P.jsxs)("span",{className:n.titleSpacer,children:[we.length>0?we[we.length-1]:_.name," ","Versions"]}),subTitle:(0,P.jsx)(a.Fragment,{children:(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,P.jsx)("span",{className:n.detailsSpacer,children:(0,P.jsxs)("strong",{children:[A.length," Version",1===A.length?"":"s","\xa0\xa0\xa0"]})}),(0,P.jsx)("span",{className:n.detailsSpacer,children:(0,P.jsx)("strong",{children:(0,j.l5)(Ie)})})]})}),actions:(0,P.jsxs)(a.Fragment,{children:[(0,P.jsx)(O.Z,{tooltip:"Select Multiple Versions",children:(0,P.jsx)(p.zx,{id:"select-multiple-versions",onClick:function(){me(!he)},icon:(0,P.jsx)(E.amE,{}),variant:he?"callAction":"regular",style:{marginRight:8}})}),he&&(0,P.jsx)(O.Z,{tooltip:"Delete Selected Versions",children:(0,P.jsx)(p.zx,{id:"delete-multiple-versions",onClick:function(){Se(!0)},icon:(0,P.jsx)(E.pJl,{}),variant:"secondary",style:{marginRight:8},disabled:0===xe.length})}),(0,P.jsx)(O.Z,{tooltip:"Delete Non Current Versions",children:(0,P.jsx)(p.zx,{id:"delete-non-current",onClick:function(){le(!0)},icon:(0,P.jsx)(E.utM,{}),variant:"secondary",style:{marginRight:15},disabled:A.length<=1})}),(0,P.jsx)("span",{className:n.sortByLabel,children:"Sort by"}),(0,P.jsx)(Tn.Z,{id:"sort-by",label:"",value:ee,onChange:function(e){ne(e.target.value)},name:"sort-by",options:[{label:"Date",value:"date"},{label:"Size",value:"size"}]})]}),className:n.noBottomBorder})}),(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.versionsVirtualPanel,children:_.version_id&&"null"!==_.version_id&&(0,P.jsx)(Nn.aV,{style:{width:"100%"},containerStyle:{width:"100%",maxWidth:"100%"},width:1,height:800,rowCount:Ne.length,rowHeight:108,rowRenderer:function(e){var n=e.key,t=e.index,i=(e.isScrolling,e.isVisible,e.style),a=A.length-t;return(0,P.jsx)(_n,{style:i,fileName:(null===_||void 0===_?void 0:_.name)||"",versionInfo:Ne[t],index:a,onDownload:Ee,onRestore:Te,onShare:Ce,onPreview:_e,globalClick:ye,isSelected:u===Ne[t].version_id,checkable:he,onCheck:ke,isChecked:xe.includes(Ne[t].version_id||"")},n)}})})]})]})]})})),Fn=t(9859),On=t(46078),Pn=a.lazy((function(){return Promise.resolve().then(t.bind(t,13065))})),Ln=a.lazy((function(){return Promise.resolve().then(t.bind(t,28789))})),Dn=a.lazy((function(){return Promise.resolve().then(t.bind(t,74768))})),Bn=(0,I.Z)(a.lazy((function(){return t.e(711).then(t.bind(t,50711))}))),Rn=(0,I.Z)(a.lazy((function(){return Promise.resolve().then(t.bind(t,34433))}))),zn=(0,I.Z)(a.lazy((function(){return Promise.all([t.e(3691),t.e(2515),t.e(6901)]).then(t.bind(t,26901))}))),Mn=(0,I.Z)(a.lazy((function(){return Promise.resolve().then(t.bind(t,78562))}))),An=(0,W.Z)((function(e){return(0,r.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({browsePaper:{border:0,height:"calc(100vh - 210px)","&.isEmbedded":{height:"calc(100vh - 315px)"},"&.actionsPanelOpen":{minHeight:"100%"},"@media (max-width: 800px)":{width:800}},"@global":{".rowLine:hover .iconFileElm":{backgroundImage:"url(/images/ob_file_filled.svg)"},".rowLine:hover .iconFolderElm":{backgroundImage:"url(/images/ob_folder_filled.svg)"}},badgeOverlap:{"& .MuiBadge-badge":{top:10,right:1,width:5,height:5,minWidth:5}},screenTitle:{borderBottom:0,paddingTop:0,paddingLeft:0,paddingRight:0}},u.VX),u.OR),u.qg),{},{searchField:(0,i.Z)((0,i.Z)({},u.qg.searchField),{},{maxWidth:380}),screenTitleContainer:{border:"#EAEDEE 1px solid",padding:"0.8rem 15px 0"},labelStyle:{color:"#969FA8",fontSize:"12px"},breadcrumbsContainer:{padding:"12px 14px 5px"},parentWrapper:{"@media (max-width: 800px)":{overflowX:"auto"}},fullContainer:{"@media (max-width: 799px)":{width:0}},hideListOnSmall:{"@media (max-width: 799px)":{display:"none"}}},u.C4),u.cx),(0,u.Bz)(e.spacing(4))))})),Un={borderWidth:2,borderRadius:2,borderColor:"#eeeeee",outline:"none"},Gn={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#2196f3"},Kn={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#00e676"};var Wn=(0,P.jsx)(Z.Z,{component:"h3",children:"Loading..."}),Hn=function(){var e,n=An(),t=(0,d.TL)(),r=(0,s.UO)(),c=(0,s.s0)(),u=(0,s.TH)(),x=(0,o.v9)((function(e){return e.objectBrowser.rewind.rewindEnabled})),w=(0,o.v9)((function(e){return e.objectBrowser.rewind.dateToRewind})),C=(0,o.v9)((function(e){return e.objectBrowser.rewind.bucketToRewind})),_=(0,o.v9)((function(e){return e.objectBrowser.versionsMode})),T=(0,o.v9)((function(e){return e.objectBrowser.searchObjects})),I=(0,o.v9)((function(e){return e.objectBrowser.showDeleted})),L=(0,o.v9)((function(e){return e.objectBrowser.objectDetailsOpen})),M=(0,o.v9)((function(e){return e.objectBrowser.selectedInternalPaths})),A=(0,o.v9)((function(e){return e.objectBrowser.loadingObjects})),U=(0,o.v9)((function(e){return e.objectBrowser.simplePath})),G=(0,o.v9)(Fn.HQ),W=(0,o.v9)(Fn.G6),H=(0,o.v9)((function(e){return e.console.session.allowResources})),J=(0,o.v9)(On.$4),Y=!(null===J||void 0===J||!J.includes("object-browser-only")),q=(0,a.useState)([]),X=(0,m.Z)(q,2),$=X[0],Q=X[1],ee=(0,a.useState)(!1),ne=(0,m.Z)(ee,2),te=ne[0],ie=ne[1],ae=(0,a.useState)(0),oe=(0,m.Z)(ae,2),se=oe[0],re=oe[1],ce=(0,a.useState)(Wn),le=(0,m.Z)(ce,2),de=le[0],ue=le[1],he=(0,a.useState)(!0),me=(0,m.Z)(he,2),fe=me[0],pe=me[1],xe=(0,a.useState)(!1),ve=(0,m.Z)(xe,2),be=ve[0],ge=ve[1],je=(0,a.useState)(!0),Ze=(0,m.Z)(je,2),Se=Ze[0],we=Ze[1],Ce=(0,a.useState)(!1),_e=(0,m.Z)(Ce,2),Te=_e[0],Ee=_e[1],ye=(0,a.useState)(!1),Ne=(0,m.Z)(ye,2),Ie=Ne[0],Fe=Ne[1],Oe=(0,a.useState)([]),Pe=(0,m.Z)(Oe,2),Le=Pe[0],De=Pe[1],Be=(0,a.useState)(!1),Re=(0,m.Z)(Be,2),ze=Re[0],Me=Re[1],Ae=(0,a.useState)(null),Ue=(0,m.Z)(Ae,2),Ge=Ue[0],Ke=Ue[1],We=(0,a.useState)(!1),He=(0,m.Z)(We,2),Ve=He[0],Je=He[1],Ye=(0,a.useState)("ASC"),qe=(0,m.Z)(Ye,2),Xe=qe[0],$e=qe[1],Qe=(0,a.useState)("name"),en=(0,m.Z)(Qe,2),nn=en[0],tn=en[1],an=(0,a.useState)(!1),on=(0,m.Z)(an,2),sn=on[0],rn=on[1],cn=(0,a.useState)(!1),dn=(0,m.Z)(cn,2),hn=dn[0],fn=dn[1],pn=(0,a.useState)(!1),xn=(0,m.Z)(pn,2),vn=xn[0],jn=xn[1],Zn=(0,a.useState)(null),Sn=(0,m.Z)(Zn,2),wn=Sn[0],_n=Sn[1],Tn=(0,a.useState)(null),En=(0,m.Z)(Tn,2),yn=En[0],Nn=En[1],In=u.pathname.split("/browse/"),Hn=2===In.length?In[1]:"",Vn=r.bucketName||"",Jn=(0,j.IO)(Hn),Yn=Jn.split("/").filter((function(e){return""!==e})),qn=[Vn];Yn.length>0&&(qn=qn.concat(Yn));var Xn=(0,a.useRef)(null),$n=(0,a.useRef)(null),Qn=(0,y.F)(Vn,[N.Ft.S3_GET_OBJECT]),et=(0,y.F)(Vn,[N.Ft.S3_DELETE_OBJECT]),nt=(0,y.F)(qn,[N.Ft.S3_PUT_OBJECT],!0,!0);(0,a.useEffect)((function(){null!==$n.current&&($n.current.setAttribute("directory",""),$n.current.setAttribute("webkitdirectory",""))}),[$n]),(0,a.useEffect)((function(){if(1===Le.length){var e=Le[0];"none"!==(0,B.Bg)(e)?jn(!0):jn(!1),e.endsWith("/")?fn(!1):fn(!0)}else fn(!1),jn(!1)}),[Le]),(0,a.useEffect)((function(){wn||b.Z.invoke("GET","/api/v1/buckets/".concat(Vn,"/quota")).then((function(e){var n=null;e.quota&&(n=e),_n(n)})).catch((function(e){console.error("Error Getting Quota Status: ",e.detailedError),_n(null)}))}),[wn,Vn]),(0,a.useEffect)((function(){Le.length>0?t((0,F.vb)(!0)):0===Le.length&&null===M&&t((0,F.vb)(!1))}),[Le,M,t]);var tt=(0,y.F)(Vn,[N.Ft.S3_DELETE_OBJECT]),it=(0,y.F)(Vn,[N.Ft.S3_LIST_BUCKET]);(0,a.useEffect)((function(){sn||(t((0,Fn.d5)(!0)),rn(!0))}),[sn,t,rn]),function(e,n){var t=(0,a.useRef)(null);(0,a.useEffect)((function(){t.current=e}),[e]),(0,a.useEffect)((function(){if(null!==n){var e=setInterval((function(){void 0!==t&&t.current&&t.current()}),n);return function(){return clearInterval(e)}}}),[n])}((function(){A&&function(){var e=Date.now()-se;e/1e3>=6?ue((0,P.jsx)(a.Fragment,{children:(0,P.jsxs)(Z.Z,{component:"h3",children:["This operation is taking longer than expected... (",Math.ceil(e/1e3),"s)"]})})):e/1e3>=3&&ue((0,P.jsx)(Z.Z,{component:"h3",children:"This operation is taking longer than expected..."}))}()}),1e3),(0,a.useEffect)((function(){fe&&(it?b.Z.invoke("GET","/api/v1/buckets/".concat(Vn,"/versioning")).then((function(e){ge(e.is_versioned),pe(!1)})).catch((function(e){console.error("Error Getting Object Versioning Status: ",e.detailedError),pe(!1)})):(pe(!1),Q([])))}),[Vn,fe,t,it]),(0,a.useEffect)((function(){Se&&(it?b.Z.invoke("GET","/api/v1/buckets/".concat(Vn,"/object-locking")).then((function(e){Ee(e.object_locking_enabled),we(!1)})).catch((function(e){console.error("Error Getting Object Locking Status: ",e.detailedError),we(!1)})):(Q([]),we(!1)))}),[Vn,Se,t,it]),(0,a.useEffect)((function(){var e=(0,j.IO)(Hn);e.endsWith("/")||""===e?(t((0,F.vb)(!1)),t((0,F.EE)(null)),t((0,F.Su)(""===e?"/":e))):(t((0,F.vH)(!0)),t((0,F.vb)(!0)),t((0,F.Eq)(!0)),t((0,F.EE)("".concat(e?"".concat((0,j.LL)(e)):""))),t((0,F.Su)("".concat(e.split("/").slice(0,-1).join("/"),"/"))))}),[Hn,w,x,t]),(0,a.useEffect)((function(){t((0,F.G4)("")),t((0,F.MU)(!0)),De([])}),[U,t,De]),(0,a.useEffect)((function(){if(A)if(it){var e="";if(Hn){var n=(0,j.IO)(Hn);e=n.endsWith("/")?n:n+"/"}var i=Date.now();re(i),ue(Wn);var a="/api/v1/buckets/".concat(Vn,"/objects");if(x){if(C!==Vn)return void t((0,F._w)());if(w){var o=w.toISOString();a="/api/v1/buckets/".concat(Vn,"/rewind/").concat(o)}}else if(I){var s=(new Date).toISOString();a="/api/v1/buckets/".concat(Vn,"/rewind/").concat(s)}b.Z.invoke("GET","".concat(a).concat(e?"?prefix=".concat((0,j.LL)(e)):"")).then((function(n){var i=n.objects||[],o=[],s=[];i.forEach((function(e){e.name!==(0,j.IO)(Hn)&&(e.name.endsWith("/")?o.push(e):s.push(e))}));var r=[].concat(o,s);if(0===r.length&&""!==e){var c="/api/v1/buckets/".concat(Vn,"/objects").concat(Hn?"?prefix=".concat(Hn):"");if(x){var l=w.toISOString(),d="";if(Hn){var u=(0,j.IO)(Hn);d=u.endsWith("/")?u:u+"/"}c="/api/v1/buckets/".concat(Vn,"/rewind/").concat(l).concat(d?"?prefix=".concat((0,j.LL)(d)):"")}b.Z.invoke("GET",c).then((function(n){if(n.objects){for(var i=!1,o=e.slice(0,e.length-1),s=0;s1,w="An error occurred while uploading the file".concat(S?"s":"","."),C={413:"Error - File size too large"};Z.withCredentials=!1,Z.onload=function(e){if(Z.status>=200&&Z.status<300)t((0,F.oK)(g)),s({status:Z.status}),(0,ln.GM)(p);else{if(C[Z.status])w=C[Z.status];else if(Z.response)try{var n=JSON.parse(Z.response);w=n.detailedMessage}catch(i){w="something went wrong"}t((0,F.qJ)({instanceID:g,msg:w})),r({status:Z.status,message:w}),(0,ln.GM)(p)}},Z.upload.addEventListener("error",(function(e){r(w),t((0,F.qJ)({instanceID:g,msg:"A network error occurred."}))})),Z.upload.addEventListener("progress",(function(e){var n=Math.floor(100*e.loaded/e.total);t((0,F.RO)({instanceID:g,progress:n}))})),Z.onerror=function(){r(w),t((0,F.qJ)({instanceID:g,msg:"A network error occurred."}))},Z.onloadend=function(){0===e.length&&t((0,F.MU)(!0))},Z.onabort=function(){t((0,F.Im)(g))};var _=new FormData;void 0!==o.size&&(_.append(o.size.toString(),d,l),(0,ln.EN)(p,Z),t((0,F.Mc)({ID:p,bucketName:n,done:!1,instanceID:g,percentage:0,prefix:"".concat((0,j.IO)(u)).concat(l),type:"upload",waitingForFile:!1,failed:!1,cancelled:!1,errorMessage:""})),(0,ln.N5)(p,_),(0,ln.EN)(p,Z))}))},s=[];t((0,F.LD)());for(var r=0;r0){var i=s.length,a=s.length-n.length,o={errorMessage:"There were some errors during file upload",detailedError:"Uploaded files ".concat(a,"/").concat(i)};t((0,k.Ih)(o))}t((0,F.MU)(!0)),De([])}))}(e,Vn,i,n)}),[Vn,t,U]),st=(0,a.useCallback)((function(e){if(e&&e.length>0&&nt){var n=e[0].path;ot(e,n)}nt||t((0,k.Ih)({errorMessage:"Upload not allowed",detailedError:(0,N.MK)([N.Ft.S3_PUT_OBJECT],"upload objects to this location")}))}),[ot]),rt=(0,f.uI)({noClick:!0,onDrop:st}),ct=rt.getRootProps,lt=rt.getInputProps,dt=rt.isDragActive,ut=rt.isDragAccept,ht=(0,a.useMemo)((function(){return(0,i.Z)((0,i.Z)((0,i.Z)({},Un),dt?Gn:{}),ut?Kn:{})}),[dt,ut]),mt=$.filter((function(e){return""===T||e.name.toLowerCase().indexOf(T.toLowerCase())>=0})),ft=mt.sort((0,B.P_)(nn)),pt=[];pt="ASC"===Xe?ft:ft.reverse();var xt=function(e){if(t((0,F.EE)(null)),t((0,F.db)({status:!1})),L&&null!==M){var n=(0,j.IO)(Hn).split("/");n.pop();var i="";n&&n.length>0&&(i="".concat(n.join("/"),"/")),c("/buckets/".concat(Vn,"/browse/").concat((0,j.LL)(i)))}t((0,F.vb)(!1)),De([]),e&&t((0,F.MU)(!0))},vt=[{type:"view",label:"View",onClick:function(e){De([]);var n="/buckets/".concat(Vn,"/browse").concat(e?"/".concat((0,j.LL)(e)):"");c(n),t((0,F.vb)(!0)),t((0,F.Eq)(!0)),t((0,F.EE)("".concat(e?"".concat((0,j.LL)(e)):"")))},sendOnlyId:!0}],bt=[{action:function(){if(0!==Le.length){var e=[];if(1===(e=mt.filter((function(e){return Le.includes(e.name)}))).length&&e[0].name.length>200&&(0,j.mv)().toLowerCase().includes("win"))return void Nn(e[0]);e.forEach((function(e){!function(e){var n=(0,j.LL)("".concat(Vn,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random())),i=(0,ln.YO)(8),a=(0,B.LR)(Vn,(0,j.LL)(e.name),e.version_id,e.size,null,i,(function(e){t((0,F.RO)({instanceID:n,progress:e}))}),(function(){t((0,F.oK)(n))}),(function(e){t((0,F.qJ)({instanceID:n,msg:e}))}),(function(){t((0,F.Im)(n))}));(0,ln.EN)(i,a),t((0,F.Mc)({ID:i,bucketName:Vn,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0,failed:!1,cancelled:!1,errorMessage:""}))}(e)}))}},label:"Download",disabled:!Qn||0===Le.length,icon:(0,P.jsx)(E._8t,{}),tooltip:Qn?"Download Selected":(0,N.MK)([N.Ft.S3_GET_OBJECT],"download objects from this bucket")},{action:function(){if(1===Le.length){var e;(e=mt.find((function(e){return Le.includes(e.name)})))&&(Ke(e),Je(!0))}},label:"Share",disabled:1!==Le.length||!hn,icon:(0,P.jsx)(E.aAc,{}),tooltip:hn?"Share Selected File":"Sharing unavailable"},{action:function(){if(1===Le.length){var e;(e=mt.find((function(e){return Le.includes(e.name)})))&&(Ke(e),Me(!0))}},label:"Preview",disabled:1!==Le.length||!vn,icon:(0,P.jsx)(E.P99,{}),tooltip:vn?"Preview Selected File":"Preview unavailable"},{action:function(){ie(!0)},label:"Delete",icon:(0,P.jsx)(Dn,{}),disabled:!et||0===Le.length||!tt,tooltip:et?"Delete Selected Files":(0,N.MK)([N.Ft.S3_DELETE_OBJECT],"delete objects in this bucket")}];return(0,P.jsxs)(a.Fragment,{children:[Ve&&Ge&&(0,P.jsx)(Rn,{open:Ve,closeModalAndRefresh:function(){Je(!1),Ke(null)},bucketName:Vn,dataObject:{name:Ge.name,last_modified:"",version_id:Ge.version_id}}),te&&(0,P.jsx)(Bn,{deleteOpen:te,selectedBucket:Vn,selectedObjects:Le,closeDeleteModalAndRefresh:function(e){ie(!1),e&&(t((0,k.y1)("Objects deleted successfully.")),De([]),t((0,F.MU)(!0)))},versioning:be}),Ie&&(0,P.jsx)(zn,{open:Ie,closeModalAndRefresh:function(){Fe(!1)},bucketName:Vn}),ze&&(0,P.jsx)(Mn,{open:ze,bucketName:Vn,object:Ge,onClosePreview:function(){Me(!1),Ke(null)}}),!!yn&&(0,P.jsx)(un,{open:!!yn,closeModal:function(){Nn(null)},currentItem:(null===(e=yn.name.split("/"))||void 0===e?void 0:e.pop())||"",bucketName:Vn,internalPaths:Hn,actualInfo:{name:yn.name,last_modified:"",version_id:yn.version_id,size:yn.size.toString()}}),(0,P.jsxs)(z.Z,{variant:"full",children:[(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,P.jsx)(R.Z,{className:n.screenTitle,icon:(0,P.jsx)("span",{className:n.listIcon,children:(0,P.jsx)(E.wNb,{})}),title:(0,P.jsx)("span",{className:n.titleSpacer,children:Vn}),subTitle:(0,P.jsx)(a.Fragment,{children:(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,P.jsxs)("span",{className:n.detailsSpacer,children:["Created:\xa0\xa0\xa0",(0,P.jsx)("strong",{children:(null===W||void 0===W?void 0:W.creation_date)||""})]}),(0,P.jsxs)("span",{className:n.detailsSpacer,children:["Access:\xa0\xa0\xa0",(0,P.jsx)("strong",{children:(null===W||void 0===W?void 0:W.access)||""})]}),W&&(0,P.jsx)(a.Fragment,{children:(0,P.jsxs)("span",{className:n.detailsSpacer,children:[W.size&&(0,P.jsx)(a.Fragment,{children:(0,j.l5)(W.size)}),W.size&&wn&&(0,P.jsxs)(a.Fragment,{children:[" / ",(0,j.l5)(wn.quota)]}),W.size&&W.objects?" - ":"",W.objects&&(0,P.jsxs)(a.Fragment,{children:[W.objects,"\xa0Object",W.objects&&1!==W.objects?"s":""]})]})})]})}),actions:(0,P.jsx)(a.Fragment,{children:(0,P.jsxs)("div",{className:n.actionsSection,children:[(0,P.jsx)(O.Z,{tooltip:"Rewind Bucket",children:(0,P.jsx)(p.zx,{id:"rewind-objects-list",label:"Rewind",icon:(0,P.jsx)(S.Z,{badgeContent:" ",color:"secondary",variant:"dot",invisible:!x,className:n.badgeOverlap,sx:{height:16},children:(0,P.jsx)(Pn,{style:{minWidth:16,minHeight:16,width:16,height:16,marginTop:-3}})}),variant:"regular",onClick:function(){Fe(!0)},disabled:!be||!(0,y.F)(Vn,[N.Ft.S3_GET_OBJECT])})}),(0,P.jsx)(O.Z,{tooltip:"Reload List",children:(0,P.jsx)(p.zx,{id:"refresh-objects-list",label:"Refresh",icon:(0,P.jsx)(Ln,{}),variant:"regular",onClick:function(){t(_?(0,F.Eq)(!0):(0,F.MU)(!0))},disabled:!(0,y.F)(Vn,[N.Ft.S3_LIST_BUCKET])||x})}),(0,P.jsx)("input",{type:"file",multiple:!0,onChange:at,style:{display:"none"},ref:Xn}),(0,P.jsx)("input",{type:"file",multiple:!0,onChange:at,style:{display:"none"},ref:$n}),(0,P.jsx)(K,{bucketName:Vn,uploadPath:qn.join("/"),uploadFileFunction:function(e){Xn&&Xn.current&&Xn.current.click(),e()},uploadFolderFunction:function(e){$n&&$n.current&&$n.current.click(),e()}})]})})})}),(0,P.jsxs)("div",(0,i.Z)((0,i.Z)({id:"object-list-wrapper"},ct({style:(0,i.Z)({},ht)})),{},{children:[(0,P.jsx)("input",(0,i.Z)({},lt())),(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.tableBlock,sx:{border:"#EAEDEE 1px solid",borderTop:0},children:[_?(0,P.jsx)(a.Fragment,{children:null!==M&&(0,P.jsx)(kn,{internalPaths:M,bucketName:Vn})}):(0,P.jsx)(y.s,{scopes:[N.Ft.S3_LIST_BUCKET],resource:Vn,errorProps:{disabled:!0},children:(0,P.jsxs)(l.ZP,{item:!0,xs:12,className:n.fullContainer,children:[(0,P.jsx)(l.ZP,{item:!0,xs:12,className:n.breadcrumbsContainer,children:(0,P.jsx)(D,{bucketName:Vn,internalPaths:Jn,existingFiles:$||[],additionalOptions:!be||x?null:(0,P.jsx)("div",{children:(0,P.jsx)(Cn.Z,{name:"deleted_objects",id:"showDeletedObjects",value:"deleted_on",label:"Show deleted objects",onChange:function(){t((0,F.mz)(!I)),xt(!0)},checked:I,overrideLabelClasses:n.labelStyle,className:n.overrideShowDeleted,noTopMargin:!0})}),hidePathButton:!1})}),(0,P.jsx)(g.Z,{itemActions:vt,columns:x?gn:bn,isLoading:A,loadingMessage:de,entityName:"Objects",idField:"name",records:pt,customPaperHeight:"".concat(n.browsePaper," ").concat(Y?"isEmbedded":""," ").concat(L?"actionsPanelOpen":""),selectedItems:Le,onSelect:function(e){var n=e.target,i=n.value,a=n.checked,o=(0,h.Z)(Le);return a?o.push(i):o=o.filter((function(e){return e!==i})),De(o),t((0,F.EE)(null)),o},customEmptyMessage:"This location is empty".concat(x?"":", please try uploading a new file"),sortConfig:{currentSort:nn,currentDirection:Xe,triggerSort:function(e){var n=v()(e,"sortDirection","DESC");tn(e.sortBy),$e(n),t((0,F.MU)(!0))}},onSelectAll:function(){if(t((0,F.EE)(null)),Le.length!==pt.length){var e=pt.map((function(e){return e.name}));De(e)}else De([])},rowStyle:function(e){var n,t=e.index;return null!==(n=pt[t])&&void 0!==n&&n.delete_flag?"deleted":""},parentClassName:n.parentWrapper})]})}),(0,P.jsx)(y.s,{scopes:[N.Ft.S3_LIST_BUCKET],resource:Vn,errorProps:{disabled:!0},children:(0,P.jsxs)(V,{open:L,closePanel:function(){xt(!1)},className:"".concat(_?n.hideListOnSmall:""),children:[Le.length>0&&(0,P.jsx)(ke,{items:bt,title:"Selected Objects:"}),null!==M&&(0,P.jsx)(mn,{internalPaths:M,bucketName:Vn,onClosePanel:xt,versioning:be,locking:Te})]})})]})]}))]})]})},Vn=t(32291),Jn=t(95792),Yn=t(84669),qn=t(59114),Xn=t(73996),$n=t(49535),Qn=(0,c.Z)((function(e){return(0,r.Z)((0,i.Z)({},(0,u.Bz)(e.spacing(4))))}))((function(){var e=(0,d.TL)(),n=(0,s.s0)(),t=(0,s.UO)(),i=(0,s.TH)(),r=(0,o.v9)((function(e){return e.objectBrowser.versionsMode})),c=(0,o.v9)((function(e){return e.objectBrowser.searchObjects})),u=(0,o.v9)((function(e){return e.objectBrowser.versionedFile})),h=(0,o.v9)((function(e){return e.objectBrowser.searchVersions})),m=(0,o.v9)(On.$4),f=t.bucketName||"",x=i.pathname.split("/browse/"),v=2===x.length?x[1]:"",b=!(null===m||void 0===m||!m.includes("object-browser-only"));(0,a.useEffect)((function(){e((0,F.db)({status:!1}))}),[v,e]);var g=(0,$n.Z)(f,[N.Ft.S3_GET_BUCKET_POLICY,N.Ft.S3_PUT_BUCKET_POLICY,N.Ft.S3_GET_BUCKET_VERSIONING,N.Ft.S3_PUT_BUCKET_VERSIONING,N.Ft.S3_GET_BUCKET_ENCRYPTION_CONFIGURATION,N.Ft.S3_PUT_BUCKET_ENCRYPTION_CONFIGURATION,N.Ft.S3_DELETE_BUCKET,N.Ft.S3_GET_BUCKET_NOTIFICATIONS,N.Ft.S3_PUT_BUCKET_NOTIFICATIONS,N.Ft.S3_GET_REPLICATION_CONFIGURATION,N.Ft.S3_PUT_REPLICATION_CONFIGURATION,N.Ft.S3_GET_LIFECYCLE_CONFIGURATION,N.Ft.S3_PUT_LIFECYCLE_CONFIGURATION,N.Ft.ADMIN_GET_BUCKET_QUOTA,N.Ft.ADMIN_SET_BUCKET_QUOTA,N.Ft.S3_PUT_BUCKET_TAGGING,N.Ft.S3_GET_BUCKET_TAGGING,N.Ft.S3_LIST_BUCKET_VERSIONS,N.Ft.S3_GET_BUCKET_POLICY_STATUS,N.Ft.S3_DELETE_BUCKET_POLICY]),j=(0,P.jsx)(a.Fragment,{children:r?(0,P.jsx)(a.Fragment,{children:(0,P.jsx)(qn.Z,{placeholder:"Start typing to filter versions of ".concat(u),onChange:function(n){e((0,F.Pr)(n))},value:h})}):(0,P.jsx)(y.s,{scopes:[N.Ft.S3_LIST_BUCKET],resource:f,errorProps:{disabled:!0},children:(0,P.jsx)(qn.Z,{placeholder:"Start typing to filter objects in the bucket",onChange:function(n){e((0,F.G4)(n))},value:c})})});return(0,P.jsxs)(a.Fragment,{children:[b?(0,P.jsxs)(l.ZP,{container:!0,sx:{padding:"20px 32px 0"},children:[(0,P.jsx)(l.ZP,{children:(0,P.jsx)(Xn.Z,{marginRight:30,marginTop:10})}),(0,P.jsx)(l.ZP,{item:!0,xs:!0,children:j})]}):(0,P.jsx)(Vn.Z,{label:(0,P.jsx)(Yn.Z,{label:"Buckets",to:N.gA.BUCKETS}),actions:(0,P.jsx)(y.s,{scopes:N.D[N.EI.BUCKET_ADMIN],resource:f,errorProps:{disabled:!0},children:(0,P.jsx)(O.Z,{tooltip:g?"Configure Bucket":"You do not have the required permissions to configure this bucket. Please contact your MinIO administrator to request "+N.EI.BUCKET_ADMIN+" permisions.",children:(0,P.jsx)(p.zx,{id:"configure-bucket-main",color:"primary","aria-label":"Configure Bucket",onClick:function(){n("/buckets/".concat(f,"/admin"))},icon:(0,P.jsx)(Jn.Z,{style:{width:20,height:20,marginTop:-3}}),style:{padding:"0 10px"}})})}),middleComponent:j}),(0,P.jsx)(l.ZP,{children:(0,P.jsx)(Hn,{})})]})}))},34433:function(e,n,t){t.r(n),t.d(n,{default:function(){return k}});var i=t(29439),a=t(1413),o=t(72791),s=t(26181),r=t.n(s),c=t(60364),l=t(75952),d=t(11135),u=t(25787),h=t(78029),m=t.n(h),f=t(61889),p=t(40986),x=t(23814),v=t(81207),b=t(56028),g=t(64163),j=t(30829),Z=t(72426),S=t.n(Z),w=t(21435),C=t(56096),_=t(80184),T=(0,u.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},x.YI),x.Hr),{},{labelContainer:{display:"flex",alignItems:"center",marginBottom:15},fieldContainer:(0,a.Z)((0,a.Z)({},x.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),dateInputContainer:{margin:"0 10px"},durationInputs:{display:"flex",alignItems:"center",justifyContent:"flex-start"},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,a=e.initialDate,s=e.label,r=e.maxDays,c=e.entity,l=e.onChange,d=(0,o.useState)(7),u=(0,i.Z)(d,2),h=u[0],m=u[1],p=(0,o.useState)(0),x=(0,i.Z)(p,2),v=x[0],b=x[1],g=(0,o.useState)(0),Z=(0,i.Z)(g,2),T=Z[0],E=Z[1],y=(0,o.useState)(!0),N=(0,i.Z)(y,2),I=N[0],k=N[1],F=(0,o.useState)(S()()),O=(0,i.Z)(F,2),P=O[0],L=O[1];(0,o.useEffect)((function(){L(function(e,n,t,i){return S()(e).add(n,"days").add(t,"hours").add(i,"minutes")}(a,h,v,T))}),[a,h,v,T]),(0,o.useEffect)((function(){I?l(P.format("YYYY-MM-DDTHH:mm:ss"),!0):l("0000-00-00",!1)}),[P,l,I]),(0,o.useEffect)((function(){var e=!0;(h<0||r&&h>r||isNaN(h))&&(e=!1),(v<0||v>23||isNaN(v))&&(e=!1),(T<0||T>59||isNaN(T))&&(e=!1),!r||h!==r||0===v&&0===T||(e=!1),k(e)}),[P,r,l,h,v,T]);var D={style:{textAlign:"center",paddingRight:10,paddingLeft:10,width:25},className:"removeArrows"};return(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(f.ZP,{container:!0,className:n.fieldContainer,children:[(0,_.jsx)(f.ZP,{item:!0,xs:12,className:n.labelContainer,children:(0,_.jsx)(j.Z,{htmlFor:t,className:n.inputLabel,sx:{marginLeft:"10px"},children:(0,_.jsx)("span",{children:s})})}),(0,_.jsxs)(f.ZP,{item:!0,xs:12,className:n.durationInputs,children:[(0,_.jsx)(f.ZP,{item:!0,className:n.dateInputContainer,children:(0,_.jsx)(w.Z,{id:t,className:n.reverseInput,type:"number",min:"0",max:r?r.toString():"999",label:"Days",name:t,onChange:function(e){m(parseInt(e.target.value))},value:h.toString(),extraInputProps:D,noLabelMinWidth:!0})}),(0,_.jsx)(f.ZP,{item:!0,className:n.dateInputContainer,children:(0,_.jsx)(w.Z,{id:t,className:n.reverseInput,type:"number",min:"0",max:"23",label:"Hours",name:t,onChange:function(e){b(parseInt(e.target.value))},value:v.toString(),extraInputProps:D,noLabelMinWidth:!0})}),(0,_.jsx)(f.ZP,{item:!0,className:n.dateInputContainer,children:(0,_.jsx)(w.Z,{id:t,className:n.reverseInput,type:"number",min:"0",max:"59",label:"Minutes",name:t,onChange:function(e){E(parseInt(e.target.value))},value:T.toString(),extraInputProps:D,noLabelMinWidth:!0})})]}),(0,_.jsx)(f.ZP,{item:!0,xs:12,className:"".concat(n.validityIndicator," ").concat(n.formFieldRow),children:I?(0,_.jsxs)("div",{className:n.validityText,children:[(0,_.jsx)(C.xPt,{}),(0,_.jsxs)("div",{className:n.validityLabel,children:[c," will be available until:"]})," ",(0,_.jsx)("div",{className:n.validTill,children:P.format("MM/DD/YYYY HH:mm:ss")})]}):(0,_.jsx)("div",{className:n.invalidDurationText,children:"Please select a valid duration."})})]})})})),E=t(45248),y=t(87995),N=t(25469),I=o.lazy((function(){return Promise.resolve().then(t.bind(t,79880))})),k=(0,u.Z)((function(e){return(0,d.Z)((0,a.Z)((0,a.Z)({shareLinkInfo:{fontSize:14,fontWeight:400},copyShareLink:{display:"flex","@media (max-width: 900px)":{flexFlow:"column",alignItems:"center",justifyContent:"center"}},copyShareLinkInput:{"& div:first-child":{marginTop:0},"@media (max-width: 900px)":{minWidth:250}},copyShareLinkBtn:{display:"flex",alignItems:"center",justifyContent:"center","@media (max-width: 900px)":{marginTop:10}}},x.ID),x.DF))}))((function(e){var n=e.classes,t=e.open,a=e.closeModalAndRefresh,s=e.bucketName,d=e.dataObject,u=(0,N.TL)(),h=(0,c.v9)(y.N5),x=(0,o.useState)(""),j=(0,i.Z)(x,2),Z=j[0],S=j[1],w=(0,o.useState)(!0),k=(0,i.Z)(w,2),F=k[0],O=k[1],P=(0,o.useState)(!1),L=(0,i.Z)(P,2),D=L[0],B=L[1],R=(0,o.useState)(""),z=(0,i.Z)(R,2),M=z[0],A=z[1],U=(0,o.useState)(!0),G=(0,i.Z)(U,2),K=G[0],W=G[1],H=(0,o.useState)("null"),V=(0,i.Z)(H,2),J=V[0],Y=V[1],q=new Date;return(0,o.useEffect)((function(){if(void 0===d.version_id)return h?(v.Z.invoke("GET","/api/v1/buckets/".concat(s,"/objects?prefix=").concat((0,E.LL)(d.name)).concat(h?"&with_versions=true":"")).then((function(e){var n=r()(e,"objects",[]).find((function(e){return e.is_latest}));Y(n?n.version_id:"null")})).catch((function(e){u((0,y.zb)(e))})),void O(!1)):(Y("null"),void O(!1));Y(d.version_id||"null"),O(!1)}),[s,d,h,u]),(0,o.useEffect)((function(){if(K&&!F){B(!0),S("");var e=new Date("".concat(M)),n=new Date,t=Math.ceil((e.getTime()-n.getTime())/1e3);t>0&&v.Z.invoke("GET","/api/v1/buckets/".concat(s,"/objects/share?prefix=").concat((0,E.LL)(d.name),"&version_id=").concat(J).concat(""!==M?"&expires=".concat(t,"s"):"")).then((function(e){S(e),B(!1)})).catch((function(e){u((0,y.zb)(e)),S(""),B(!1)}))}}),[d,M,s,K,S,u,h,F,J]),(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(b.Z,{title:"Share File",titleIcon:(0,_.jsx)(C.aAc,{style:{fill:"#4CCB92"}}),modalOpen:t,onClose:function(){a()},children:[F&&(0,_.jsx)(f.ZP,{item:!0,xs:12,children:(0,_.jsx)(p.Z,{})}),!F&&(0,_.jsxs)(o.Fragment,{children:[(0,_.jsxs)(f.ZP,{item:!0,xs:12,className:n.shareLinkInfo,children:["This is a temporary URL with integrated access credentials for sharing objects valid for up to 7 days.",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"The temporary URL expires after the configured time limit."]}),(0,_.jsx)("br",{}),(0,_.jsx)(f.ZP,{item:!0,xs:12,className:n.dateContainer,children:(0,_.jsx)(T,{initialDate:q,id:"date",label:"Active for",maxDays:7,onChange:function(e,n){W(n),n?A(e):(A(""),S(""))},entity:"Link"})}),(0,_.jsx)(f.ZP,{item:!0,xs:12,className:"".concat(n.copyShareLink," ").concat(n.formFieldRow," "),children:(0,_.jsx)(f.ZP,{item:!0,xs:12,className:n.copyShareLinkInput,children:(0,_.jsx)(g.Z,{content:Z,actionButton:(0,_.jsx)(m(),{text:Z,children:(0,_.jsx)(l.zx,{id:"copy-path",variant:"regular",onClick:function(){u((0,y.MK)("Share URL Copied to clipboard"))},disabled:""===Z||D,style:{marginRight:"5px",width:"28px",height:"28px",padding:"0px"},icon:(0,_.jsx)(I,{})})})})})})]})]})})}))},78562:function(e,n,t){t.r(n),t.d(n,{default:function(){return v}});var i=t(72791),a=t(56028),o=t(4942),s=t(29439),r=t(11135),c=t(25787),l=t(61889),d=t(40986),u=t(47922),h=t(45248),m=t(28182),f=t(80184),p=(0,c.Z)((function(){return(0,r.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,a=e.isFullscreen,r=void 0!==a&&a,c=e.classes,p=(0,i.useState)(!0),x=(0,s.Z)(p,2),v=x[0],b=x[1],g="";if(t){var j=(0,h.LL)(t.name),Z=document.baseURI.replace(window.location.origin,"");g="".concat(window.location.origin).concat(Z,"api/v1/buckets/").concat(n,"/objects/download?preview=true&prefix=").concat(j),t.version_id&&(g=g.concat("&version_id=".concat(t.version_id)))}var S=(0,u.Bg)((null===t||void 0===t?void 0:t.name)||""),w=function(){b(!1)};return(0,f.jsxs)(i.Fragment,{children:[v&&(0,f.jsx)(l.ZP,{item:!0,xs:12,children:(0,f.jsx)(d.Z,{})}),(0,f.jsxs)("div",{style:{textAlign:"center"},children:["video"===S&&(0,f.jsx)("video",{style:{width:"auto",height:"auto",maxWidth:"calc(100vw - 100px)",maxHeight:"calc(100vh - 200px)"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:w,children:(0,f.jsx)("source",{src:g,type:"video/mp4"})}),"audio"===S&&(0,f.jsx)("audio",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:w,children:(0,f.jsx)("source",{src:g,type:"audio/mpeg"})}),"image"===S&&(0,f.jsx)("img",{style:{width:"auto",height:"auto",maxWidth:"100vw",maxHeight:"100vh"},src:g,alt:"preview",onLoad:w}),"video"!==S&&"audio"!==S&&"image"!==S&&(0,f.jsx)("div",{className:(0,m.Z)(c.iframeBase,(0,o.Z)({},c.iframeHidden,v)),children:(0,f.jsx)("iframe",{src:g,title:"File Preview",allowTransparency:!0,className:"".concat(c.iframeContainer," ").concat(r?"fullHeight":S),onLoad:w,children:"File couldn't be loaded. Please try Download instead"})})]})]})})),x=t(56096),v=function(e){var n=e.open,t=e.bucketName,o=e.object,s=e.onClosePreview;return(0,f.jsx)(i.Fragment,{children:(0,f.jsx)(a.Z,{modalOpen:n,title:"Preview - ".concat(null===o||void 0===o?void 0:o.name),onClose:s,wideLimit:!1,titleIcon:(0,f.jsx)(x.$30,{}),children:(0,f.jsx)(p,{bucketName:t,object:o})})})}},47922:function(e,n,t){t.d(n,{Bg:function(){return s},LR:function(){return o},P_:function(){return r},kh:function(){return c}});var i=t(45248),a=t(76610),o=function(e,n,t,o){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,r=arguments.length>5?arguments[5]:void 0,c=arguments.length>6?arguments[6]:void 0,l=arguments.length>7?arguments[7]:void 0,d=arguments.length>8?arguments[8]:void 0,u=arguments.length>9?arguments[9]:void 0,h=document.createElement("a");document.body.appendChild(h);var m=document.baseURI.replace(window.location.origin,""),f="".concat(window.location.origin).concat(m,"api/v1/buckets/").concat(e,"/objects/download?prefix=").concat(n).concat(null!==s&&""!==s.trim()?"&override_file_name=".concat((0,i.LL)(s||"")):"");t&&(f=f.concat("&version_id=".concat(t)));var p=new XMLHttpRequest;return p.open("GET",f,!0),p.addEventListener("progress",(function(e){var n=Math.round(e.loaded/o*100);c&&c(n)}),!1),p.responseType="blob",p.onreadystatechange=function(){if(4===p.readyState)if(200===p.status){var e=p.getResponseHeader("Content-Disposition"),n="download";if(e)n=decodeURIComponent(e).split('"')[1];l&&l(),(0,a.GM)(r);var t=document.createElement("a");t.href=window.URL.createObjectURL(p.response),t.download=n,document.body.appendChild(t),t.click(),document.body.removeChild(t)}else{if("application/json"===p.getResponseHeader("Content-Type")){var i=JSON.parse(p.response);if(i.detailedMessage)return void d(i.detailedMessage)}d("Unexpected response status code (".concat(p.status,")."))}},p.onerror=function(){d&&d("A network error occurred.")},p.onabort=function(){u&&u()},p},s=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","txt","json"].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"},r=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)}}},c=function(e,n,t){if(0===t.length)return null;var i=t.filter((function(n){return n.resource.endsWith(":".concat(e))||n.resource.includes(":".concat(e,"/"))}));if(0===i.length)return null;var a=[],o=n.split("/");return i.forEach((function(e){var n=(e.resource.split(":").pop()||"").split("/");n.length>1&&n.every((function(e,n){return"*"!==e&&((!o[n]||o[n]===e)&&(o[n]||a.push({name:"".concat(e,"/"),size:0,last_modified:new Date,version_id:""}),!0))})),"StringEquals"!==e.conditionOperator&&"StringLike"!==e.conditionOperator||e.prefixes.forEach((function(e){if(""!==e){var n=e.split("/"),t=[];n.every((function(e,n){return!e.includes("*")&&""!==e&&(e!==o[n]?(a.push({name:"".concat(t.join("/")).concat(t.length>0?"/":"").concat(e,"/"),size:0,last_modified:new Date,version_id:""}),!1):(""!==e&&t.push(e),!0))}))}}))})),a}},73996:function(e,n,t){t(72791);var i=t(56096),a=t(60364),o=t(80184);n.Z=function(e){var n=e.marginRight,s=e.marginTop,r=t(47045),c=(0,a.v9)((function(e){return e.system.overrideStyles})),l=r((null===c||void 0===c?void 0:c.backgroundColor)||"#fff").getBrightness()<=128;return(0,o.jsx)(i.BHR,{style:{width:105,marginRight:n,marginTop:s,fill:l?"#fff":"#081C42"}})}},75578:function(e,n,t){var i=t(1413),a=t(72791),o=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,o.jsx)(a.Suspense,{fallback:n,children:(0,o.jsx)(e,(0,i.Z)({},t))})}return t}},64163:function(e,n,t){var i=t(1413),a=t(72791),o=t(61889),s=t(11135),r=t(25787),c=t(23814),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)({},c.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,s=e.content,r=e.multiLine,c=void 0!==r&&r,d=e.actionButton;return(0,l.jsx)(a.Fragment,{children:(0,l.jsxs)(o.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,l.jsx)(o.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,l.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(n.predefinedList," ").concat(d?n.includesActionButton:""),children:[(0,l.jsx)(o.ZP,{item:!0,xs:12,className:c?n.innerContentMultiline:n.innerContent,children:s}),d&&(0,l.jsx)("div",{className:n.overlayShareOption,children:d})]})]})})}))},56028:function(e,n,t){var i=t(29439),a=t(1413),o=t(72791),s=t(60364),r=t(13400),c=t(55646),l=t(5574),d=t(65661),u=t(39157),h=t(11135),m=t(25787),f=t(23814),p=t(25469),x=t(29823),v=t(28057),b=t(87995),g=t(80184);n.Z=(0,m.Z)((function(e){return(0,h.Z)((0,a.Z)((0,a.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,h=e.title,m=e.children,f=e.classes,j=e.wideLimit,Z=void 0===j||j,S=e.noContentPadding,w=e.titleIcon,C=void 0===w?null:w,_=(0,p.TL)(),T=(0,o.useState)(!1),E=(0,i.Z)(T,2),y=E[0],N=E[1],I=(0,s.v9)((function(e){return e.system.modalSnackBar}));(0,o.useEffect)((function(){_((0,b.MK)(""))}),[_]),(0,o.useEffect)((function(){if(I){if(""===I.message)return void N(!1);"error"!==I.type&&N(!0)}}),[I]);var k=Z?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},F="";return I&&(F=I.detailedErrorMsg,(""===I.detailedErrorMsg||I.detailedErrorMsg.length<5)&&(F=I.message)),(0,g.jsxs)(l.Z,(0,a.Z)((0,a.Z)({open:t,classes:f},k),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:f.root,children:[(0,g.jsxs)(d.Z,{className:f.title,children:[(0,g.jsxs)("div",{className:f.titleText,children:[C," ",h]}),(0,g.jsx)("div",{className:f.closeContainer,children:(0,g.jsx)(r.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(x.Z,{})})})]}),(0,g.jsx)(v.Z,{isModal:!0}),(0,g.jsx)(c.Z,{open:y,className:f.snackBarModal,onClose:function(){N(!1),_((0,b.MK)(""))},message:F,ContentProps:{className:"".concat(f.snackBar," ").concat(I&&"error"===I.type?f.errorSnackBar:"")},autoHideDuration:I&&"error"===I.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:S?"":f.content,children:m})]}))}))},59114:function(e,n,t){var i=t(4942),a=t(1413),o=(t(72791),t(63466)),s=t(74900),r=t(27391),c=t(25787),l=t(11135),d=t(23814),u=t(80184);n.Z=(0,c.Z)((function(e){return(0,l.Z)({searchField:(0,a.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,a=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,h=e.overrideClass,m=e.value,f=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(o.Z,{position:d,className:a.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(r.Z,{placeholder:t,className:h||a.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){c(e.target.value)},variant:"standard",value:m})}))},73669:function(e,n,t){var i=t(29439),a=t(72791),o=t(64554),s=t(75952),r=t(21435),c=t(56096),l=t(80184);n.Z=function(e){var n=e.value,t=(0,a.useState)(!1),d=(0,i.Z)(t,2),u=d[0],h=d[1];return(0,l.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,l.jsx)(r.Z,{id:"inspect-dec-key",name:"inspect-dec-key",placeholder:"",label:"",type:u?"text":"password",onChange:function(){},value:n,overlayIcon:(0,l.jsx)(c.TIy,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(n)}}),(0,l.jsx)(s.zx,{id:"show-hide-key",style:{marginLeft:"10px"},variant:"callAction",onClick:function(){return h(!u)},label:"Show/Hide"})]})}}}]);
-//# sourceMappingURL=1379.832f5371.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1379.832f5371.chunk.js.map b/portal-ui/build/static/js/1379.832f5371.chunk.js.map
deleted file mode 100644
index bef7a1c832..0000000000
--- a/portal-ui/build/static/js/1379.832f5371.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1379.832f5371.chunk.js","mappings":"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","sources":["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","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/ObjectActionButton.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ActionsListSection.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/RenameLongFilename.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsHelpers.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/ListObjects.tsx","screens/Console/Buckets/BucketDetails/BrowserHandler.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/AutoColorIcon.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Tools/KeyRevealer.tsx"],"sourcesContent":["// 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 Grid from \"@mui/material/Grid\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { IconButton } from \"@mui/material\";\nimport { objectBrowserCommon } from \"../Common/FormComponents/common/styleLibrary\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { BackCaretIcon, CopyIcon, NewPathIcon } from \"../../../icons\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../common/SecureComponent/permissions\";\nimport { BucketObjectItem } from \"../Buckets/ListBuckets/Objects/ListObjects/types\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { setSnackBarMessage } from \"../../../systemSlice\";\nimport { AppState, useAppDispatch } from \"../../../store\";\nimport { setVersionsModeEnabled } from \"./objectBrowserSlice\";\nimport { Button } from \"mds\";\nimport TooltipWrapper from \"../Common/TooltipWrapper/TooltipWrapper\";\n\nconst CreatePathModal = withSuspense(\n React.lazy(\n () => import(\"../Buckets/ListBuckets/Objects/ListObjects/CreatePathModal\")\n )\n);\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...objectBrowserCommon,\n slashSpacingStyle: {\n margin: \"0 5px\",\n },\n });\n\ninterface IObjectBrowser {\n classes: any;\n bucketName: string;\n internalPaths: string;\n hidePathButton?: boolean;\n existingFiles: BucketObjectItem[];\n additionalOptions?: React.ReactNode;\n}\n\nconst BrowserBreadcrumbs = ({\n classes,\n bucketName,\n internalPaths,\n existingFiles,\n hidePathButton,\n additionalOptions,\n}: IObjectBrowser) => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\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\n const [createFolderOpen, setCreateFolderOpen] = useState(false);\n\n const canCreatePath = hasPermission(bucketName, [IAM_SCOPES.S3_PUT_OBJECT]);\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 let breadcrumbsMap = splitPaths.map((objectItem: string, index: number) => {\n const subSplit = `${splitPaths.slice(0, index + 1).join(\"/\")}/`;\n const route = `/buckets/${bucketName}/browse/${\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 {objectItem}\n ) : (\n {\n dispatch(\n setVersionsModeEnabled({ status: false, objectName: \"\" })\n );\n }}\n >\n {objectItem}\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 navigate(-1);\n }\n };\n\n return (\n \n
\n \n );\n};\n\nexport default withStyles(styles)(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 } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\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 { UploadFolderIcon, UploadIcon } from \"../../../../icons\";\nimport {\n IAM_SCOPES,\n permissionTooltipHelper,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\nimport { Button } from \"mds\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\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}\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}: IUploadFilesButton) => {\n const [anchorEl, setAnchorEl] = React.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 = hasPermission(uploadPath, [\n IAM_SCOPES.S3_PUT_OBJECT,\n ]);\n const uploadFolderAllowed = hasPermission(\n bucketName,\n [IAM_SCOPES.S3_PUT_OBJECT],\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 />\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 { Grid, IconButton } from \"@mui/material\";\nimport { ClosePanelIcon } from \"../../../../../../icons\";\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 closePanel: {\n position: \"absolute\",\n right: 0,\n top: 8,\n \"& .min-icon\": {\n width: 14,\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 \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) => num + 1);\n\nconst currentYear = new Date().getFullYear();\n\nexport const years = Array.from(\n Array(25),\n (_, numYear) => numYear + currentYear\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 Grid from \"@mui/material/Grid\";\nimport { SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport FormControl from \"@mui/material/FormControl\";\nimport Select from \"@mui/material/Select\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport InputBase from \"@mui/material/InputBase\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport FormSwitchWrapper from \"../FormSwitchWrapper/FormSwitchWrapper\";\nimport { days, months, validDate, years } from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateInput: {\n \"&:not(:last-child)\": {\n marginRight: 22,\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n labelContainer: {\n flex: 1,\n },\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 fieldContainerBorder: {\n borderBottom: \"#9c9c9c 1px solid\",\n marginBottom: 20,\n },\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n \"& .MuiSelect-icon\": {\n color: \"#000\",\n \"&.Mui-disabled\": {\n color: \"#9c9c9c\",\n },\n },\n },\n input: {\n borderBottom: 0,\n fontSize: 12,\n },\n })\n)(InputBase);\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 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 onMonthChange = (e: SelectChangeEvent) => {\n setMonth(e.target.value as string);\n };\n\n const onDayChange = (e: SelectChangeEvent) => {\n setDay(e.target.value as string);\n };\n\n const onYearChange = (e: SelectChangeEvent) => {\n setYear(e.target.value as string);\n };\n\n return (\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 Grid from \"@mui/material/Grid\";\nimport { Button } from \"mds\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"./types\";\n\nimport { twoDigitDate } from \"../../../../Common/FormComponents/DateSelector/utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport RadioGroupSelector from \"../../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport DateSelector from \"../../../../Common/FormComponents/DateSelector/DateSelector\";\nimport api from \"../../../../../../common/api\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n dateSelector: {\n \"& div\": {\n borderBottom: 0,\n marginBottom: 0,\n\n \"& div:nth-child(2)\": {\n border: \"1px solid #EAEAEA\",\n paddingLeft: 5,\n\n \"& div\": {\n border: 0,\n },\n },\n },\n },\n });\n\ninterface ISetRetentionProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (updateInfo: boolean) => void;\n objectName: string;\n bucketName: string;\n objectInfo: IFileInfo;\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 [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(objectInfo.retention_mode.toLowerCase());\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]);\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(\"\");\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/retention?prefix=${encodeURLString(\n selectedObject\n )}&version_id=${versionId}`,\n {\n expires: expireDate,\n mode: type,\n }\n )\n .then((res: any) => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSaving(false);\n });\n };\n\n const disableRetention = (\n selectedObject: string,\n versionId: string | null\n ) => {\n api\n .invoke(\n \"DELETE\",\n `/api/v1/buckets/${bucketName}/objects/retention?prefix=${encodeURLString(\n selectedObject\n )}&version_id=${versionId}`\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(error));\n setIsSaving(false);\n });\n };\n\n const saveNewRetentionPolicy = () => {\n setIsSaving(true);\n const selectedObject = objectInfo.name;\n const versionId = objectInfo.version_id;\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\nimport React, { Fragment, useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\n\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeURLString } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon } from \"../../../../../../icons\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\nimport { setErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n\n versioning: boolean;\n selectedVersion?: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n\n versioning,\n selectedVersion = \"\",\n}: IDeleteObjectProps) => {\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 [deleteVersions, setDeleteVersions] = useState(false);\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 }`\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 {versioning && selectedVersion === \"\" && (\n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\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 Grid from \"@mui/material/Grid\";\nimport { Button } from \"mds\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nimport { IFileInfo } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../../common/api\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\n\nimport { setModalErrorSnackMessage } from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\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: IFileInfo;\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/legalhold?prefix=${encodeURLString(\n objectName\n )}&version_id=${versionId}`,\n { status: legalHoldEnabled ? \"enabled\" : \"disabled\" }\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(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","import React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { MetadataResponse } from \"./types\";\nimport get from \"lodash/get\";\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 { withStyles } from \"@mui/styles\";\n\ninterface IObjectMetadata {\n bucketName: string;\n internalPaths: string;\n classes?: any;\n actualInfo: any;\n linear?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n propertiesIcon: {\n marginLeft: 5,\n \"& .min-icon\": {\n height: 12,\n },\n },\n\n capitalizeFirst: {\n textTransform: \"capitalize\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n titleItem: {\n width: \"35%\",\n },\n ...spacingUtils,\n ...detailsPanel,\n });\n\nconst ObjectMetaData = ({\n bucketName,\n internalPaths,\n classes,\n actualInfo,\n linear = false,\n}: IObjectMetadata) => {\n const [metaData, setMetaData] = useState({});\n\n const onMetaDataSuccess = (res: MetadataResponse) => {\n let metadata = get(res, \"objectMetadata\", {});\n\n setMetaData(metadata);\n };\n const onMetaDataError = (err: ErrorResponseHandler) => false;\n\n const [, invokeMetaDataApi] = useApi(onMetaDataSuccess, onMetaDataError);\n\n const metaKeys = Object.keys(metaData);\n const loadMetaData = useCallback(() => {\n invokeMetaDataApi(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects/metadata?prefix=${internalPaths}`\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [bucketName, internalPaths, actualInfo]);\n\n useEffect(() => {\n if (actualInfo) {\n loadMetaData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actualInfo, loadMetaData]);\n\n if (linear) {\n return (\n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = Array.isArray(metaData[element])\n ? metaData[element].map(decodeURIComponent).join(\", \")\n : decodeURIComponent(metaData[element]);\n\n return (\n \n {element}\n \n {renderItem}\n \n );\n })}\n \n );\n }\n\n return (\n \n \n
\n \n \n );\n};\n\nexport default withStyles(styles)(ObjectMetaData);\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 { Button } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport clsx from \"clsx\";\n\ntype ObjectActionButtonProps = {\n disabled?: boolean;\n onClick: () => void | any;\n icon: React.ReactNode;\n label: string;\n [x: string]: any;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: \"0 15px\",\n height: 22,\n margin: 0,\n color: \"#5E5E5E\",\n fontWeight: \"normal\",\n fontSize: 14,\n whiteSpace: \"nowrap\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n \"&:hover\": {\n backgroundColor: \"transparent\",\n color: \"#000\",\n },\n \"& .min-icon\": {\n width: 11,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n });\n\n// TODO: Create an mds version of this.\nconst ObjectActionButton = ({\n disabled,\n onClick,\n icon,\n label,\n classes,\n ...restProps\n}: ObjectActionButtonProps) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(ObjectActionButton);\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 ObjectActionButton from \"./ObjectActionButton\";\nimport { withStyles } from \"@mui/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { detailsPanel } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\n\nconst styles = () =>\n createStyles({\n ...detailsPanel,\n });\n\nexport interface MultiSelectionItem {\n action: () => void;\n label: string;\n disabled: boolean;\n icon: React.ReactNode;\n tooltip: string;\n}\n\ninterface IActionsListSectionProps {\n items: MultiSelectionItem[];\n title: string | React.ReactNode;\n classes: any;\n}\n\nconst ActionsListSection = ({\n items,\n classes,\n title,\n}: IActionsListSectionProps) => {\n return (\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 \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 { Button } from \"mds\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n decodeURLString,\n deleteCookie,\n encodeURLString,\n getCookieValue,\n performDownload,\n} from \"../../../../../../common/utils\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { InspectMenuIcon } from \"../../../../../../icons/SidebarMenus\";\nimport Grid from \"@mui/material/Grid\";\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 { PasswordKeyIcon } from \"../../../../../../icons\";\nimport { Box, 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) 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 } from \"mds\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { EditIcon } from \"../../../icons\";\nimport {\n containerForHeader,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"../Buckets/ListBuckets/Objects/ObjectDetails/types\";\nimport { encodeURLString } from \"../../../common/utils\";\nimport { download } from \"../Buckets/ListBuckets/Objects/utils\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setNewObject,\n updateProgress,\n} from \"./objectBrowserSlice\";\nimport { makeid, storeCallForObjectWithID } from \"./transferManager\";\nimport { useAppDispatch } from \"../../../store\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IRenameLongFilename {\n open: boolean;\n bucketName: string;\n internalPaths: string;\n currentItem: string;\n actualInfo: IFileInfo;\n closeModal: () => void;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...modalStyleUtils,\n ...formFieldStyles,\n ...spacingUtils,\n ...containerForHeader(theme.spacing(4)),\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\n const identityDownload = encodeURLString(\n `${bucketName}-${\n actualInfo.name\n }-${new Date().getTime()}-${Math.random()}`\n );\n\n const ID = makeid(8);\n\n const downloadCall = download(\n bucketName,\n internalPaths,\n actualInfo.version_id,\n parseInt(actualInfo.size || \"0\"),\n newFileName,\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\n storeCallForObjectWithID(ID, downloadCall);\n dispatch(\n setNewObject({\n ID,\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: newFileName,\n type: \"download\",\n waitingForFile: true,\n failed: false,\n cancelled: false,\n errorMessage: \"\",\n })\n );\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 { Button } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n buttonsStyles,\n detailsPanel,\n spacingUtils,\n textStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"../ObjectDetails/types\";\nimport { download, extensionPreview } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\n\nimport {\n decodeURLString,\n encodeURLString,\n getClientOS,\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 {\n DeleteIcon,\n DownloadIcon,\n LegalHoldIcon,\n MetadataIcon,\n ObjectInfoIcon,\n PreviewIcon,\n RetentionIcon,\n ShareIcon,\n TagsIcon,\n VersionsIcon,\n} from \"../../../../../../icons\";\nimport { InspectMenuIcon } from \"../../../../../../icons/SidebarMenus\";\nimport api from \"../../../../../../common/api\";\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 ActionsListSection from \"./ActionsListSection\";\nimport { displayFileIconName } from \"./utils\";\nimport TagsModal from \"../ObjectDetails/TagsModal\";\nimport InspectObject from \"./InspectObject\";\nimport Loader from \"../../../../Common/Loader/Loader\";\nimport { selDistSet } from \"../../../../../../systemSlice\";\nimport {\n makeid,\n storeCallForObjectWithID,\n} from \"../../../../ObjectBrowser/transferManager\";\nimport {\n cancelObjectInList,\n completeObject,\n failObject,\n setLoadingObjectInfo,\n setLoadingVersions,\n setNewObject,\n setSelectedVersion,\n setVersionsModeEnabled,\n updateProgress,\n} from \"../../../../ObjectBrowser/objectBrowserSlice\";\nimport RenameLongFileName from \"../../../../ObjectBrowser/RenameLongFilename\";\nimport TooltipWrapper from \"../../../../Common/TooltipWrapper/TooltipWrapper\";\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 headerForSection: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingBottom: 15,\n borderBottom: \"#E2E2E2 2px solid\",\n fontWeight: \"bold\",\n fontSize: 18,\n color: \"#000\",\n margin: \"20px 22px\",\n },\n capitalizeFirst: {\n textTransform: \"capitalize\",\n },\n ...buttonsStyles,\n ...actionsTray,\n ...spacingUtils,\n ...textStyleUtils,\n ...detailsPanel,\n });\n\nconst emptyFile: IFileInfo = {\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: null,\n};\n\ninterface IObjectDetailPanelProps {\n classes: any;\n internalPaths: string;\n bucketName: string;\n versioning: boolean;\n locking: boolean;\n onClosePanel: (hardRefresh: boolean) => void;\n}\n\nconst ObjectDetailPanel = ({\n classes,\n internalPaths,\n bucketName,\n versioning,\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\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) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (distributedSetup && allInfoElements && allInfoElements.length >= 1) {\n let infoElement =\n allInfoElements.find((el: IFileInfo) => el.is_latest) || emptyFile;\n\n if (selectedVersion !== \"\") {\n infoElement =\n allInfoElements.find(\n (el: IFileInfo) => el.version_id === selectedVersion\n ) || emptyFile;\n }\n\n setActualInfo(infoElement);\n }\n }, [selectedVersion, distributedSetup, allInfoElements]);\n\n useEffect(() => {\n if (loadingObjectInfo && internalPaths !== \"\") {\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${internalPaths}${\n distributedSetup ? \"&with_versions=true\" : \"\"\n }`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n if (distributedSetup) {\n setAllInfoElements(result);\n setVersions(result);\n const tVersionSize = result.reduce(\n (acc: number, currValue: IFileInfo) => {\n if (currValue?.size) {\n return acc + currValue.size;\n }\n return acc;\n },\n 0\n );\n\n setTotalVersionsSize(tVersionSize);\n } else {\n setActualInfo(result[0]);\n setVersions([]);\n }\n\n dispatch(setLoadingObjectInfo(false));\n })\n .catch((error: ErrorResponseHandler) => {\n console.error(\"Error loading object details\", error);\n dispatch(setLoadingObjectInfo(false));\n });\n }\n }, [\n loadingObjectInfo,\n bucketName,\n internalPaths,\n dispatch,\n distributedSetup,\n selectedVersion,\n ]);\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 downloadObject = (object: IFileInfo) => {\n const identityDownload = encodeURLString(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`\n );\n\n if (\n object.name.length > 200 &&\n getClientOS().toLowerCase().includes(\"win\")\n ) {\n 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 parseInt(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\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\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 \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 get from \"lodash/get\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport Grid from \"@mui/material/Grid\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nimport { IFileInfo } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport api from \"../../../../../../common/api\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../../../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport DaysSelector from \"../../../../Common/FormComponents/DaysSelector/DaysSelector\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport { ShareIcon } from \"../../../../../../icons\";\nimport {\n selDistSet,\n setModalErrorSnackMessage,\n setModalSnackMessage,\n} from \"../../../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../../../store\";\n\nconst CopyIcon = React.lazy(() => import(\"../../../../../../icons/CopyIcon\"));\n\nconst styles = (theme: Theme) =>\n createStyles({\n shareLinkInfo: {\n fontSize: 14,\n fontWeight: 400,\n },\n copyShareLink: {\n display: \"flex\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n },\n copyShareLinkInput: {\n \"& div:first-child\": {\n marginTop: 0,\n },\n \"@media (max-width: 900px)\": {\n minWidth: 250,\n },\n },\n copyShareLinkBtn: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"@media (max-width: 900px)\": {\n marginTop: 10,\n },\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\ninterface IShareFileProps {\n classes: any;\n open: boolean;\n bucketName: string;\n dataObject: IFileInfo;\n closeModalAndRefresh: () => void;\n}\n\nconst ShareFile = ({\n classes,\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\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${encodeURLString(\n dataObject.name\n )}${distributedSetup ? \"&with_versions=true\" : \"\"}`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n\n const latestVersion = result.find(\n (elem: IFileInfo) => elem.is_latest\n );\n\n if (latestVersion) {\n setVersionID(latestVersion.version_id);\n return;\n }\n\n // Version couldn't ve retrieved, we default\n setVersionID(\"null\");\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(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\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects/share?prefix=${encodeURLString(\n dataObject.name\n )}&version_id=${versionID}${\n selectedDate !== \"\" ? `&expires=${diffDate}s` : \"\"\n }`\n )\n .then((res: string) => {\n setShareURL(res);\n setIsLoadingFile(false);\n })\n .catch((error: ErrorResponseHandler) => {\n dispatch(setModalErrorSnackMessage(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 \n \n \n )}\n \n \n );\n};\n\nexport default withStyles(styles)(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, 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 { extensionPreview } from \"../utils\";\nimport { encodeURLString } from \"../../../../../../common/utils\";\nimport clsx from \"clsx\";\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 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 const objectType = extensionPreview(object?.name || \"\");\n\n const iframeLoaded = () => {\n setLoading(false);\n };\n\n return (\n \n {loading && (\n \n \n \n )}\n
\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 \"../../../../../../icons\";\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 { IAllowResources } from \"../../../types\";\nimport { encodeURLString } from \"../../../../../common/utils\";\nimport { removeTrace } from \"../../../ObjectBrowser/transferManager\";\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) => {\n const anchor = document.createElement(\"a\");\n document.body.appendChild(anchor);\n let basename = document.baseURI.replace(window.location.origin, \"\");\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 var req = new XMLHttpRequest();\n req.open(\"GET\", path, true);\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 var link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(req.response);\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\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\n// Review file extension by name & returns the type of preview browser that can be used\nexport const extensionPreview = (\n fileName: string\n): \"image\" | \"text\" | \"audio\" | \"video\" | \"none\" => {\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\", \"txt\", \"json\"];\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 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: IAllowResources[]\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 const 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 stor 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: new Date(),\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 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: new Date(),\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 return returnElements;\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 from \"react\";\nimport { LoginMinIOLogo } from \"../../../../icons\";\nimport { useSelector } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\n\ninterface IAutoColorIcon {\n marginRight: number;\n marginTop: number;\n}\n\nconst AutoColorIcon = ({ marginRight, marginTop }: IAutoColorIcon) => {\n let tinycolor = require(\"tinycolor2\");\n\n const colorVariants = useSelector(\n (state: AppState) => state.system.overrideStyles\n );\n\n const isDark =\n tinycolor(colorVariants?.backgroundColor || \"#fff\").getBrightness() <= 128;\n\n return (\n \n );\n};\n\nexport default AutoColorIcon;\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 )}\n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\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 InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\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 } from \"mds\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { CopyIcon } from \"../../../icons\";\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 \n );\n};\n\nexport default KeyRevealer;\n"],"names":["CreatePathModal","withSuspense","React","withStyles","theme","createStyles","objectBrowserCommon","slashSpacingStyle","margin","classes","bucketName","internalPaths","existingFiles","hidePathButton","additionalOptions","dispatch","useAppDispatch","navigate","useNavigate","rewindEnabled","useSelector","state","objectBrowser","rewind","versionsMode","versionedFile","useState","createFolderOpen","setCreateFolderOpen","canCreatePath","hasPermission","IAM_SCOPES","paths","splitPaths","split","filter","path","lastBreadcrumbsIndex","length","breadcrumbsMap","map","objectItem","index","subSplit","slice","join","route","encodeURLString","Fragment","className","style","cursor","to","onClick","setVersionsModeEnabled","status","objectName","toString","versionsItem","listBreadcrumbs","breadcrumbsMain","modalOpen","folderName","onClose","Grid","item","xs","breadcrumbs","IconButton","sx","border","backgroundColor","borderLeft","borderRadius","width","height","marginRight","breadcrumbsList","dir","text","id","icon","fill","marginTop","variant","setSnackBarMessage","color","TooltipWrapper","tooltip","permissionTooltipHelper","disabled","whiteSpace","label","breadcrumbsSecond","listUploadIcons","uploadPath","forceDisable","uploadFileFunction","uploadFolderFunction","anchorEl","setAnchorEl","openUploadMenu","Boolean","handleCloseUpload","uploadObjectAllowed","uploadFolderAllowed","uploadEnabled","undefined","event","currentTarget","Menu","open","anchorOrigin","vertical","horizontal","transformOrigin","MenuItem","ListItemIcon","ListItemText","useStyles","makeStyles","detailsList","borderColor","borderWidth","borderStyle","borderBottomLeftRadius","borderBottomRightRadius","transitionDuration","overflowX","overflowY","position","opacity","marginLeft","minWidth","borderLeftWidth","closePanel","right","top","children","months","value","days","Array","from","_","num","currentYear","Date","getFullYear","years","numYear","SelectStyled","root","input","borderBottom","fontSize","InputBase","DateSelector","forwardRef","ref","disableOptions","addSwitch","onDateChange","useImperativeHandle","resetDate","dateEnabled","setDateEnabled","month","setMonth","day","setDay","year","setYear","useEffect","valueSplit","parseInt","currentDate","parse","isNaN","parsedMonth","parsedDay","monthForString","dayForString","parsedDate","toISOString","dateString","validDate","isValid","isDateDisabled","clsx","fieldContainer","fieldContainerBorder","labelContainer","container","InputLabel","htmlFor","inputLabel","tooltipContainer","Tooltip","title","placement","HelpIcon","FormSwitchWrapper","indicatorLabels","checked","name","onChange","e","target","switchOnly","FormControl","dateInput","Select","displayEmpty","option","dayNumber","fieldBasic","tooltipHelper","flex","display","alignItems","justifyContent","paddingBottom","marginBottom","formFieldStyles","modalStyleUtils","spacingUtils","dateSelector","paddingLeft","closeModalAndRefresh","objectInfo","statusEnabled","setStatusEnabled","type","setType","date","setDate","isDateValid","setIsDateValid","isSaving","setIsSaving","alreadyConfigured","setAlreadyConfigured","retention_mode","toLowerCase","retention_until_date","valueDate","getMonth","getDate","dateElement","useRef","resetForm","current","showSwitcher","ModalWrapper","spacerBottom","noValidate","autoComplete","onSubmit","preventDefault","formFieldRow","RadioGroupSelector","currentSelection","selectorOptions","modalButtonBar","selectedObject","versionId","version_id","expireDate","api","expires","mode","then","res","catch","error","setModalErrorSnackMessage","addRetention","disableRetention","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","versioning","selectedVersion","useApi","err","setErrorSnackMessage","deleteLoading","invokeDeleteApi","deleteVersions","setDeleteVersions","ConfirmDialog","confirmText","isOpen","titleIcon","isLoading","onConfirm","recursive","decodeURLString","endsWith","confirmationContent","DialogContentText","description","actualInfo","legalHoldEnabled","setLegalHoldEnabled","get","propertiesIcon","capitalizeFirst","textTransform","titleItem","detailsPanel","linear","metaData","setMetaData","metadata","invokeMetaDataApi","metaKeys","Object","keys","loadMetaData","useCallback","element","renderItem","isArray","decodeURIComponent","Box","metadataLinear","Table","table","TableBody","TableRow","TableCell","component","scope","align","padding","fontWeight","restProps","Button","startIcon","items","titleLabel","objectActions","actionItem","action","fileName","minHeight","fileNameText","overflow","textOverflow","strings","FileBookIcon","FileCodeIcon","FileConfigIcon","FileDbIcon","FileFontIcon","FileImageIcon","FileLockIcon","FileMissingIcon","FileMusicIcon","FilePdfIcon","FilePptIcon","FileTxtIcon","FileVideoIcon","FileXlsIcon","FileZipIcon","extensionToIcon","extensions","displayFileIconName","returnOnlyIcon","elementString","ObjectBrowserIcon","ObjectBrowserFolderIcon","lowercaseElement","etc","ext","indexOf","splitItem","newTileHeader","tagsForLabel","currentTagsContainer","noTagsForObject","deleteTag","onCloseAndUpdate","distributedSetup","selDistSet","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","deleteEnabled","setDeleteEnabled","deleteKey","setDeleteKey","deleteLabel","setDeleteLabel","currentTags","tags","currTagKeys","currentItem","pop","tagsFor","plural","cleanObject","verID","SecureComponent","scopes","resource","flexFlow","tagKey","tag","errorProps","deleteIcon","onDelete","Chip","size","Close","onDeleteTag","InputBoxWrapper","placeholder","trim","newTag","newTagList","closeInspectModalAndRefresh","inspectOpen","inspectPath","volumeName","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","makeRequest","url","fetch","method","performInspect","file","volume","urlOfInspectApi","ok","json","resErr","errorMessage","message","detailedError","code","blob","filename","headers","decryptKey","getCookieValue","performDownload","deleteCookie","KeyRevealer","containerForHeader","spacing","closeModal","newFileName","setNewFileName","acceptLongName","setAcceptLongName","identityDownload","getTime","Math","random","ID","makeid","downloadCall","download","progress","updateProgress","instanceID","completeObject","msg","failObject","cancelObjectInList","storeCallForObjectWithID","setNewObject","done","percentage","prefix","waitingForFile","failed","cancelled","doDownload","modalFormScrollable","emptyFile","is_latest","last_modified","legal_hold_status","ObjectDetailsTitle","objectNameContainer","headerForSection","buttonsStyles","actionsTray","textStyleUtils","locking","onClosePanel","loadingObjectInfo","shareFileModalOpen","setShareFileModalOpen","retentionModalOpen","setRetentionModalOpen","tagModalOpen","setTagModalOpen","legalholdOpen","setLegalholdOpen","inspectModalOpen","setInspectModalOpen","setActualInfo","allInfoElements","setAllInfoElements","objectToShare","setObjectToShare","versions","setVersions","setDeleteOpen","previewOpen","setPreviewOpen","totalVersionsSize","setTotalVersionsSize","longFileOpen","setLongFileOpen","objectNameArray","infoElement","find","el","result","tVersionSize","reduce","acc","currValue","setLoadingObjectInfo","console","tagKeys","loaderForContainer","textAlign","Loader","objectResources","canSetLegalHold","canSetTags","canChangeRetention","canInspect","canChangeVersioning","canGetObject","canDelete","multiActionButtons","object","getClientOS","includes","downloadObject","is_delete_marker","extensionPreview","ShareFile","dataObject","updateInfo","closeAndReload","setLoadingVersions","setSelectedVersion","reload","PreviewFileModal","content_type","onClosePreview","TagsModal","reloadObjectData","iconLocation","fullWidth","detailContainer","overflowWrap","niceBytes","niceBytesInt","lastModified","currentTime","modifiedTime","difTime","formatTime","niceDaysInt","calculateLastModifyTime","etag","displayParsedDate","displayNiceBytes","String","listModeColumns","elementKey","renderFunction","enableSort","renderFullObject","rewindModeColumns","modalBasic","versionID","objectPath","restoreOpen","restoreLoading","setRestoreLoading","RecoverIcon","confirmButtonProps","wrapText","bgColor","mainFileVersionItem","intermediateLayer","borderBottomColor","versionContainer","buttonContainer","maxWidth","versionData","ctrItem","content","left","collapsableInfo","flexDirection","versionItem","versionInfo","isSelected","checkable","isChecked","onCheck","onShare","onDownload","onRestore","onPreview","globalClick","key","disableButtons","versionItemButtons","pill","md","CheckboxWrapper","stopPropagation","overrideCheckboxStyles","noTopMargin","button","buttonDisabled","setDeleteLoading","typeConfirm","setTypeConfirm","selectedVersions","selectedObjectsRequest","versionsContainer","noBottomBorder","versionsVirtualPanel","flexGrow","screenTitleContainer","bottom","sortByLabel","hrClass","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","DeleteNonCurrent","reloadAfterDelete","DeleteSelectedVersions","reloadOnComplete","LinearProgress","ScreenTitle","listIcon","titleSpacer","subTitle","bucketDetails","detailsSpacer","actions","SelectWrapper","options","containerStyle","rowCount","rowHeight","rowRenderer","isScrolling","isVisible","versOrd","HistoryIcon","RefreshIcon","DeleteIcon","DeleteMultipleObjects","RewindEnable","browsePaper","backgroundImage","badgeOverlap","screenTitle","paddingTop","paddingRight","searchField","labelStyle","breadcrumbsContainer","parentWrapper","fullContainer","hideListOnSmall","baseDnDStyle","outline","activeDnDStyle","acceptDnDStyle","defLoading","Typography","params","useParams","location","useLocation","rewindDate","dateToRewind","bucketToRewind","searchObjects","showDeleted","detailsOpen","objectDetailsOpen","selectedInternalPaths","loading","loadingObjects","simplePath","loadingBucket","selBucketDetailsLoading","bucketInfo","selBucketDetailsInfo","allowResources","session","features","selFeatures","obOnly","records","setRecords","deleteMultipleOpen","setDeleteMultipleOpen","loadingStartTime","setLoadingStartTime","loadingMessage","setLoadingMessage","loadingVersioning","setLoadingVersioning","isVersioned","setIsVersioned","loadingLocking","setLoadingLocking","lockingEnabled","setLockingEnabled","rewindSelect","setRewindSelect","selectedObjects","setSelectedObjects","selectedPreview","setSelectedPreview","sortDirection","setSortDirection","currentSortField","setCurrentSortField","iniLoad","setIniLoad","canShareFile","setCanShareFile","canPreviewFile","setCanPreviewFile","quota","setQuota","downloadRenameModal","setDownloadRenameModal","pathSegment","pathname","pageTitle","currentPath","i","concat","fileUpload","folderUpload","canDownload","canUpload","setAttribute","quotaVals","setObjectDetailsView","displayDeleteObject","displayListObjects","setBucketDetailsLoad","callback","delay","savedCallback","setInterval","clearInterval","useInterval","timeDelta","now","ceil","updateMessage","is_versioned","object_locking_enabled","decodedIPaths","setSelectedObjectView","setSimplePathHandler","setSearchObjects","setLoadingObjectsList","pathPrefix","decodedPath","currentTimestamp","urlTake","resetRewind","rewindParsed","currDateISO","objects","folders","files","forEach","record","recordsInElement","pathTest","found","pathPrefixChopped","parentPath","permitItems","permissionItems","setBucketInfo","handleUploadButton","newFiles","uploadObject","folderPath","uploadPromise","Promise","resolve","reject","uploadUrl","blobFile","Blob","encodedPath","filePath","fileWebkitRelativePath","relativeFolderPath","finalFolderPath","pathClean","startsWith","identity","xhr","XMLHttpRequest","areMultipleFiles","errorMessages","withCredentials","onload","removeTrace","response","JSON","detailedMessage","upload","addEventListener","floor","loaded","total","onerror","onloadend","onabort","formData","FormData","append","storeFormDataWithID","uploadFilePromises","openList","allSettled","results","errors","totalFiles","successUploadedFiles","onDrop","acceptedFiles","newFolderPath","useDropzone","noClick","getRootProps","getInputProps","isDragActive","isDragAccept","dndStyles","useMemo","sortASC","sortListObjects","payload","reverse","forceRefresh","splitURLS","URLItem","tableActions","idElement","newPath","sendOnlyId","itemsToDownload","filteredItem","fileObject","refresh","PageLayout","creation_date","access","actionsSection","Badge","badgeContent","invisible","multiple","closeMenu","click","tableBlock","borderTop","setShowDeletedObjects","overrideLabelClasses","overrideShowDeleted","TableWrapper","itemActions","columns","entityName","idField","customPaperHeight","onSelect","targetD","elements","customEmptyMessage","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","sortBy","onSelectAll","rowStyle","delete_flag","parentClassName","configureBucketAllowed","searchBar","SearchBox","setSearchVersions","AutoColorIcon","PageHeader","BackLink","IAM_PAGES","IAM_PERMISSIONS","IAM_ROLES","SettingsIcon","middleComponent","dateInputContainer","durationInputs","validityIndicator","invalidDurationText","reverseInput","validityText","validTill","initialDate","maxDays","entity","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","setValidDate","moment","dateSelected","setDateSelected","hours","minutes","add","calculateNewTime","format","valid","extraInputProps","min","max","noLabelMinWidth","validityLabel","CopyIcon","shareLinkInfo","copyShareLink","copyShareLinkInput","copyShareLinkBtn","shareURL","setShareURL","isLoadingVersion","setIsLoadingVersion","isLoadingFile","setIsLoadingFile","selectedDate","setSelectedDate","dateValid","setDateValid","setVersionID","latestVersion","elem","slDate","currDate","diffDate","dateContainer","newDate","PredefinedList","actionButton","setModalSnackMessage","iframeContainer","iframeBase","iframeHidden","isFullscreen","setLoading","basename","document","baseURI","replace","window","origin","objectType","iframeLoaded","maxHeight","autoPlay","controls","muted","playsInline","onPlay","src","alt","onLoad","allowTransparency","wideLimit","PreviewFileContent","fileSize","overrideFileName","progressCallback","completeCallback","errorCallback","abortCallback","anchor","createElement","body","appendChild","req","evt","percentComplete","round","responseType","onreadystatechange","readyState","rspHeader","getResponseHeader","link","href","URL","createObjectURL","removeChild","rspBody","fileExtension","fieldSort","localeCompare","permissionsArray","filteredPermissionsForBucket","permissionItem","returnElements","splitCurrentPath","permissionElement","splitURLARN","every","currentElementInPath","conditionOperator","prefixes","prefixItem","splitItems","pathToRouteElements","splitElement","tinycolor","require","colorVariants","system","overrideStyles","isDark","getBrightness","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","predefinedList","multiLine","prefinedContainer","predefinedTitle","includesActionButton","innerContentMultiline","innerContent","overlayShareOption","deleteDialogStyles","customDialogSize","snackBarCommon","noContentPadding","openSnackbar","setOpenSnackbar","modalSnackMessage","modalSnackBar","customSize","paper","detailedErrorMsg","scroll","reason","titleText","closeContainer","closeButton","disableRipple","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","adornment","adornmentPosition","overrideClass","inputProps","disableUnderline","InputProps","shown","setShown","sm","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1913.2b54b9d3.chunk.js b/portal-ui/build/static/js/1913.2b54b9d3.chunk.js
new file mode 100644
index 0000000000..700697bd7d
--- /dev/null
+++ b/portal-ui/build/static/js/1913.2b54b9d3.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1913],{33690:function(e,n,t){t.r(n);var o=t(29439),i=t(1413),a=t(72791),r=t(75952),l=t(11135),s=t(25787),c=t(61889),d=t(23814),u=t(81207),f=t(56028),p=t(90673),m=t(56096),x=t(92217),h=t(87995),Z=t(25469),b=t(19859),g=t(80184);(0,l.Z)((0,i.Z)((0,i.Z)({},d.ID),d.bK));n.default=(0,s.Z)((function(e){return(0,l.Z)((0,i.Z)((0,i.Z)((0,i.Z)({codeMirrorContainer:{marginBottom:20,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},d.DF),d.ID),d.bK))}))((function(e){var n=e.classes,t=e.open,i=e.bucketName,l=e.actualPolicy,s=e.actualDefinition,d=e.closeModalAndRefresh,j=(0,Z.TL)(),v=(0,a.useState)(!1),y=(0,o.Z)(v,2),C=y[0],P=y[1],S=(0,a.useState)(""),N=(0,o.Z)(S,2),k=N[0],w=N[1],M=(0,a.useState)(b.L),B=(0,o.Z)(M,2),O=B[0],T=B[1];return(0,a.useEffect)((function(){w(l),T(s?JSON.stringify(JSON.parse(s),null,4):b.L)}),[w,l,T,s]),(0,g.jsx)(f.Z,{title:"Change Access Policy",modalOpen:t,onClose:function(){d()},titleIcon:(0,g.jsx)(m.QXQ,{}),children:(0,g.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),C||(P(!0),u.Z.invoke("PUT","/api/v1/buckets/".concat(i,"/set-policy"),{access:k,definition:O}).then((function(e){P(!1),d()})).catch((function(e){P(!1),j((0,h.zb)(e))})))},children:(0,g.jsxs)(c.ZP,{container:!0,children:[(0,g.jsxs)(c.ZP,{item:!0,xs:12,className:n.modalFormScrollable,children:[(0,g.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,g.jsx)(p.Z,{value:k,label:"Access Policy",id:"select-access-policy",name:"select-access-policy",onChange:function(e){w(e.target.value)},options:[{value:"PRIVATE",label:"Private"},{value:"PUBLIC",label:"Public"},{value:"CUSTOM",label:"Custom"}]})}),"PUBLIC"===k&&(0,g.jsx)("div",{style:{marginTop:"25px",fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:"* Warning: With Public access anyone will be able to upload, download and delete files from this Bucket *"}),"CUSTOM"===k&&(0,g.jsx)(c.ZP,{item:!0,xs:12,className:n.codeMirrorContainer,children:(0,g.jsx)(x.Z,{label:"Write Policy",value:O,onBeforeChange:function(e,n,t){T(t)},editorHeight:"350px"})})]}),(0,g.jsxs)(c.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,g.jsx)(r.zx,{id:"cancel",type:"button",variant:"regular",onClick:function(){d()},disabled:C,label:"Cancel"}),(0,g.jsx)(r.zx,{id:"set",type:"submit",variant:"callAction",disabled:C||"CUSTOM"===k&&!O,label:"Set"})]})]})})})}))},92217:function(e,n,t){var o=t(1413),i=t(72791),a=t(61889),r=t(30829),l=t(20068),s=t(64554),c=t(11135),d=t(25787),u=t(84570),f=t(23814),p=t(56096),m=t(75952),x=t(78029),h=t.n(x),Z=t(90932),b=t(27454),g=t(80184);n.Z=(0,d.Z)((function(e){return(0,c.Z)((0,o.Z)({},f.YI))}))((function(e){var n=e.value,t=e.label,o=void 0===t?"":t,c=e.tooltip,d=void 0===c?"":c,f=e.mode,x=void 0===f?"json":f,j=e.classes,v=e.onBeforeChange,y=(e.readOnly,e.editorHeight),C=void 0===y?"250px":y;return(0,g.jsxs)(i.Fragment,{children:[(0,g.jsx)(a.ZP,{item:!0,xs:12,sx:{marginBottom:"10px"},children:(0,g.jsxs)(r.Z,{className:j.inputLabel,children:[(0,g.jsx)("span",{children:o}),""!==d&&(0,g.jsx)("div",{className:j.tooltipContainer,children:(0,g.jsx)(l.Z,{title:d,placement:"top-start",children:(0,g.jsx)("div",{className:j.tooltip,children:(0,g.jsx)(u.Z,{})})})})]})}),(0,g.jsx)(a.ZP,{item:!0,xs:12,style:{maxHeight:C,overflow:"auto",border:"1px solid #eaeaea"},children:(0,g.jsx)(Z.Z,{value:n,language:x,onChange:function(e){v(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace",minHeight:C||"initial",color:"#000000"}})}),(0,g.jsx)(a.ZP,{item:!0,xs:12,sx:{background:"#f7f7f7",border:"1px solid #eaeaea",borderTop:0},children:(0,g.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,g.jsx)(b.Z,{tooltip:"Copy to Clipboard",children:(0,g.jsx)(h(),{text:n,children:(0,g.jsx)(m.zx,{type:"button",id:"copy-code-mirror",icon:(0,g.jsx)(p.TIy,{}),color:"primary",variant:"regular"})})})})})]})}))},56028:function(e,n,t){var o=t(29439),i=t(1413),a=t(72791),r=t(60364),l=t(13400),s=t(55646),c=t(5574),d=t(65661),u=t(39157),f=t(11135),p=t(25787),m=t(23814),x=t(25469),h=t(29823),Z=t(28057),b=t(87995),g=t(80184);n.Z=(0,p.Z)((function(e){return(0,f.Z)((0,i.Z)((0,i.Z)({},m.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},m.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,f=e.title,p=e.children,m=e.classes,j=e.wideLimit,v=void 0===j||j,y=e.noContentPadding,C=e.titleIcon,P=void 0===C?null:C,S=(0,x.TL)(),N=(0,a.useState)(!1),k=(0,o.Z)(N,2),w=k[0],M=k[1],B=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,a.useEffect)((function(){S((0,b.MK)(""))}),[S]),(0,a.useEffect)((function(){if(B){if(""===B.message)return void M(!1);"error"!==B.type&&M(!0)}}),[B]);var O=v?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},T="";return B&&(T=B.detailedErrorMsg,(""===B.detailedErrorMsg||B.detailedErrorMsg.length<5)&&(T=B.message)),(0,g.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:t,classes:m},O),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:m.root,children:[(0,g.jsxs)(d.Z,{className:m.title,children:[(0,g.jsxs)("div",{className:m.titleText,children:[P," ",f]}),(0,g.jsx)("div",{className:m.closeContainer,children:(0,g.jsx)(l.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(h.Z,{})})})]}),(0,g.jsx)(Z.Z,{isModal:!0}),(0,g.jsx)(s.Z,{open:w,className:m.snackBarModal,onClose:function(){M(!1),S((0,b.MK)(""))},message:T,ContentProps:{className:"".concat(m.snackBar," ").concat(B&&"error"===B.type?m.errorSnackBar:"")},autoHideDuration:B&&"error"===B.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:y?"":m.content,children:p})]}))}))},19859:function(e,n,t){t.d(n,{L:function(){return o}});var o='{\n "Version": "2012-10-17",\n "Statement": [\n \n ]\n}'},61120:function(e,n,t){function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}t.d(n,{Z:function(){return o}})},60136:function(e,n,t){t.d(n,{Z:function(){return i}});var o=t(89611);function i(e,n){if("function"!==typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&(0,o.Z)(e,n)}},82963:function(e,n,t){t.d(n,{Z:function(){return a}});var o=t(71002),i=t(97326);function a(e,n){if(n&&("object"===(0,o.Z)(n)||"function"===typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(e)}}}]);
+//# sourceMappingURL=1913.2b54b9d3.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1913.2b54b9d3.chunk.js.map b/portal-ui/build/static/js/1913.2b54b9d3.chunk.js.map
new file mode 100644
index 0000000000..048d7f3064
--- /dev/null
+++ b/portal-ui/build/static/js/1913.2b54b9d3.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/1913.2b54b9d3.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SetAccessPolicy.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Policies/utils.ts","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.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, { useEffect, useState } from \"react\";\nimport { SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\n\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { ChangeAccessPolicyIcon } from \"../../../../icons\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { emptyPolicy } from \"../../Policies/utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n codeMirrorContainer: {\n marginBottom: 20,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\ncreateStyles({\n ...modalStyleUtils,\n ...spacingUtils,\n});\n\ninterface ISetAccessPolicyProps {\n classes: any;\n open: boolean;\n bucketName: string;\n actualPolicy: string;\n actualDefinition: string;\n closeModalAndRefresh: () => void;\n}\n\nconst SetAccessPolicy = ({\n classes,\n open,\n bucketName,\n actualPolicy,\n actualDefinition,\n closeModalAndRefresh,\n}: ISetAccessPolicyProps) => {\n const dispatch = useAppDispatch();\n const [addLoading, setAddLoading] = useState(false);\n const [accessPolicy, setAccessPolicy] = useState(\"\");\n const [policyDefinition, setPolicyDefinition] = useState(emptyPolicy);\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/set-policy`, {\n access: accessPolicy,\n definition: policyDefinition,\n })\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n };\n\n useEffect(() => {\n setAccessPolicy(actualPolicy);\n setPolicyDefinition(\n actualDefinition\n ? JSON.stringify(JSON.parse(actualDefinition), null, 4)\n : emptyPolicy\n );\n }, [setAccessPolicy, actualPolicy, setPolicyDefinition, actualDefinition]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n titleIcon={}\n >\n \n \n );\n};\n\nexport default withStyles(styles)(SetAccessPolicy);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport { Button } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n \n
\n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n minHeight: editorHeight || \"initial\",\n color: \"#000000\",\n }}\n />\n \n \n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\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\nexport const emptyPolicy =\n \"{\\n\" +\n ' \"Version\": \"2012-10-17\",\\n' +\n ' \"Statement\": [\\n' +\n \" \\n\" +\n \" ]\\n\" +\n \"}\";\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["createStyles","modalStyleUtils","spacingUtils","withStyles","theme","codeMirrorContainer","marginBottom","display","formFieldStyles","classes","open","bucketName","actualPolicy","actualDefinition","closeModalAndRefresh","dispatch","useAppDispatch","useState","addLoading","setAddLoading","accessPolicy","setAccessPolicy","emptyPolicy","policyDefinition","setPolicyDefinition","useEffect","JSON","stringify","parse","title","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","api","access","definition","then","res","catch","err","setModalErrorSnackMessage","container","item","xs","className","modalFormScrollable","formFieldRow","value","label","id","name","onChange","target","options","style","marginTop","fontSize","fontStyle","color","onBeforeChange","editor","data","editorHeight","modalButtonBar","type","variant","onClick","disabled","fieldBasic","tooltip","mode","readOnly","sx","inputLabel","tooltipContainer","placement","maxHeight","overflow","border","language","evn","padding","backgroundColor","fontFamily","minHeight","background","borderTop","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","icon","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1913.e7ae6234.chunk.js b/portal-ui/build/static/js/1913.e7ae6234.chunk.js
deleted file mode 100644
index 5823089d75..0000000000
--- a/portal-ui/build/static/js/1913.e7ae6234.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1913],{33690:function(e,n,t){t.r(n);var o=t(29439),i=t(1413),a=t(72791),r=t(75952),l=t(11135),s=t(25787),c=t(61889),u=t(23814),d=t(81207),f=t(56028),p=t(90673),m=t(56096),x=t(92217),Z=t(87995),h=t(25469),b=t(19859),g=t(80184);(0,l.Z)((0,i.Z)((0,i.Z)({},u.ID),u.bK));n.default=(0,s.Z)((function(e){return(0,l.Z)((0,i.Z)((0,i.Z)((0,i.Z)({codeMirrorContainer:{marginBottom:20,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},u.DF),u.ID),u.bK))}))((function(e){var n=e.classes,t=e.open,i=e.bucketName,l=e.actualPolicy,s=e.actualDefinition,u=e.closeModalAndRefresh,j=(0,h.TL)(),v=(0,a.useState)(!1),y=(0,o.Z)(v,2),C=y[0],P=y[1],S=(0,a.useState)(""),N=(0,o.Z)(S,2),k=N[0],M=N[1],O=(0,a.useState)(b.L),w=(0,o.Z)(O,2),B=w[0],T=w[1];return(0,a.useEffect)((function(){M(l),T(s?JSON.stringify(JSON.parse(s),null,4):b.L)}),[M,l,T,s]),(0,g.jsx)(f.Z,{title:"Change Access Policy",modalOpen:t,onClose:function(){u()},titleIcon:(0,g.jsx)(m.QXQ,{}),children:(0,g.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),C||(P(!0),d.Z.invoke("PUT","/api/v1/buckets/".concat(i,"/set-policy"),{access:k,definition:B}).then((function(e){P(!1),u()})).catch((function(e){P(!1),j((0,Z.zb)(e))})))},children:(0,g.jsxs)(c.ZP,{container:!0,children:[(0,g.jsxs)(c.ZP,{item:!0,xs:12,className:n.modalFormScrollable,children:[(0,g.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,g.jsx)(p.Z,{value:k,label:"Access Policy",id:"select-access-policy",name:"select-access-policy",onChange:function(e){M(e.target.value)},options:[{value:"PRIVATE",label:"Private"},{value:"PUBLIC",label:"Public"},{value:"CUSTOM",label:"Custom"}]})}),"CUSTOM"===k&&(0,g.jsx)(c.ZP,{item:!0,xs:12,className:n.codeMirrorContainer,children:(0,g.jsx)(x.Z,{label:"Write Policy",value:B,onBeforeChange:function(e,n,t){T(t)},editorHeight:"350px"})})]}),(0,g.jsxs)(c.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,g.jsx)(r.zx,{id:"cancel",type:"button",variant:"regular",onClick:function(){u()},disabled:C,label:"Cancel"}),(0,g.jsx)(r.zx,{id:"set",type:"submit",variant:"callAction",disabled:C||"CUSTOM"===k&&!B,label:"Set"})]})]})})})}))},92217:function(e,n,t){var o=t(1413),i=t(72791),a=t(61889),r=t(30829),l=t(20068),s=t(64554),c=t(11135),u=t(25787),d=t(84570),f=t(23814),p=t(56096),m=t(75952),x=t(78029),Z=t.n(x),h=t(90932),b=t(27454),g=t(80184);n.Z=(0,u.Z)((function(e){return(0,c.Z)((0,o.Z)({},f.YI))}))((function(e){var n=e.value,t=e.label,o=void 0===t?"":t,c=e.tooltip,u=void 0===c?"":c,f=e.mode,x=void 0===f?"json":f,j=e.classes,v=e.onBeforeChange,y=(e.readOnly,e.editorHeight),C=void 0===y?"250px":y;return(0,g.jsxs)(i.Fragment,{children:[(0,g.jsx)(a.ZP,{item:!0,xs:12,sx:{marginBottom:"10px"},children:(0,g.jsxs)(r.Z,{className:j.inputLabel,children:[(0,g.jsx)("span",{children:o}),""!==u&&(0,g.jsx)("div",{className:j.tooltipContainer,children:(0,g.jsx)(l.Z,{title:u,placement:"top-start",children:(0,g.jsx)("div",{className:j.tooltip,children:(0,g.jsx)(d.Z,{})})})})]})}),(0,g.jsx)(a.ZP,{item:!0,xs:12,style:{maxHeight:C,overflow:"auto",border:"1px solid #eaeaea"},children:(0,g.jsx)(h.Z,{value:n,language:x,onChange:function(e){v(null,null,e.target.value)},id:"code_wrapper",padding:15,style:{fontSize:12,backgroundColor:"#fefefe",fontFamily:"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace",minHeight:C||"initial",color:"#000000"}})}),(0,g.jsx)(a.ZP,{item:!0,xs:12,sx:{background:"#f7f7f7",border:"1px solid #eaeaea",borderTop:0},children:(0,g.jsx)(s.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:(0,g.jsx)(b.Z,{tooltip:"Copy to Clipboard",children:(0,g.jsx)(Z(),{text:n,children:(0,g.jsx)(m.zx,{type:"button",id:"copy-code-mirror",icon:(0,g.jsx)(p.TIy,{}),color:"primary",variant:"regular"})})})})})]})}))},56028:function(e,n,t){var o=t(29439),i=t(1413),a=t(72791),r=t(60364),l=t(13400),s=t(55646),c=t(5574),u=t(65661),d=t(39157),f=t(11135),p=t(25787),m=t(23814),x=t(25469),Z=t(29823),h=t(28057),b=t(87995),g=t(80184);n.Z=(0,p.Z)((function(e){return(0,f.Z)((0,i.Z)((0,i.Z)({},m.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},m.sN))}))((function(e){var n=e.onClose,t=e.modalOpen,f=e.title,p=e.children,m=e.classes,j=e.wideLimit,v=void 0===j||j,y=e.noContentPadding,C=e.titleIcon,P=void 0===C?null:C,S=(0,x.TL)(),N=(0,a.useState)(!1),k=(0,o.Z)(N,2),M=k[0],O=k[1],w=(0,r.v9)((function(e){return e.system.modalSnackBar}));(0,a.useEffect)((function(){S((0,b.MK)(""))}),[S]),(0,a.useEffect)((function(){if(w){if(""===w.message)return void O(!1);"error"!==w.type&&O(!0)}}),[w]);var B=v?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},T="";return w&&(T=w.detailedErrorMsg,(""===w.detailedErrorMsg||w.detailedErrorMsg.length<5)&&(T=w.message)),(0,g.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:t,classes:m},B),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:m.root,children:[(0,g.jsxs)(u.Z,{className:m.title,children:[(0,g.jsxs)("div",{className:m.titleText,children:[P," ",f]}),(0,g.jsx)("div",{className:m.closeContainer,children:(0,g.jsx)(l.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(Z.Z,{})})})]}),(0,g.jsx)(h.Z,{isModal:!0}),(0,g.jsx)(s.Z,{open:M,className:m.snackBarModal,onClose:function(){O(!1),S((0,b.MK)(""))},message:T,ContentProps:{className:"".concat(m.snackBar," ").concat(w&&"error"===w.type?m.errorSnackBar:"")},autoHideDuration:w&&"error"===w.type?1e4:5e3}),(0,g.jsx)(d.Z,{className:y?"":m.content,children:p})]}))}))},19859:function(e,n,t){t.d(n,{L:function(){return o}});var o='{\n "Version": "2012-10-17",\n "Statement": [\n \n ]\n}'},61120:function(e,n,t){function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}t.d(n,{Z:function(){return o}})},60136:function(e,n,t){t.d(n,{Z:function(){return i}});var o=t(89611);function i(e,n){if("function"!==typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&(0,o.Z)(e,n)}},82963:function(e,n,t){t.d(n,{Z:function(){return a}});var o=t(71002),i=t(97326);function a(e,n){if(n&&("object"===(0,o.Z)(n)||"function"===typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(e)}}}]);
-//# sourceMappingURL=1913.e7ae6234.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/1913.e7ae6234.chunk.js.map b/portal-ui/build/static/js/1913.e7ae6234.chunk.js.map
deleted file mode 100644
index 61c871482b..0000000000
--- a/portal-ui/build/static/js/1913.e7ae6234.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/1913.e7ae6234.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SetAccessPolicy.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Policies/utils.ts","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.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, { useEffect, useState } from \"react\";\nimport { SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Button } from \"mds\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\n\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { ChangeAccessPolicyIcon } from \"../../../../icons\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { emptyPolicy } from \"../../Policies/utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n codeMirrorContainer: {\n marginBottom: 20,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\ncreateStyles({\n ...modalStyleUtils,\n ...spacingUtils,\n});\n\ninterface ISetAccessPolicyProps {\n classes: any;\n open: boolean;\n bucketName: string;\n actualPolicy: string;\n actualDefinition: string;\n closeModalAndRefresh: () => void;\n}\n\nconst SetAccessPolicy = ({\n classes,\n open,\n bucketName,\n actualPolicy,\n actualDefinition,\n closeModalAndRefresh,\n}: ISetAccessPolicyProps) => {\n const dispatch = useAppDispatch();\n const [addLoading, setAddLoading] = useState(false);\n const [accessPolicy, setAccessPolicy] = useState(\"\");\n const [policyDefinition, setPolicyDefinition] = useState(emptyPolicy);\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/set-policy`, {\n access: accessPolicy,\n definition: policyDefinition,\n })\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n };\n\n useEffect(() => {\n setAccessPolicy(actualPolicy);\n setPolicyDefinition(\n actualDefinition\n ? JSON.stringify(JSON.parse(actualDefinition), null, 4)\n : emptyPolicy\n );\n }, [setAccessPolicy, actualPolicy, setPolicyDefinition, actualDefinition]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n titleIcon={}\n >\n \n \n );\n};\n\nexport default withStyles(styles)(SetAccessPolicy);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon } from \"../../../../../icons\";\nimport { Button } from \"mds\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport CodeEditor from \"@uiw/react-textarea-code-editor\";\nimport TooltipWrapper from \"../../TooltipWrapper/TooltipWrapper\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n });\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n \n
\n )}\n \n \n\n \n {\n onBeforeChange(null, null, evn.target.value);\n }}\n id={\"code_wrapper\"}\n padding={15}\n style={{\n fontSize: 12,\n backgroundColor: \"#fefefe\",\n fontFamily:\n \"ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace\",\n minHeight: editorHeight || \"initial\",\n color: \"#000000\",\n }}\n />\n \n \n \n \n \n }\n color={\"primary\"}\n variant={\"regular\"}\n />\n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\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\nexport const emptyPolicy =\n \"{\\n\" +\n ' \"Version\": \"2012-10-17\",\\n' +\n ' \"Statement\": [\\n' +\n \" \\n\" +\n \" ]\\n\" +\n \"}\";\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["createStyles","modalStyleUtils","spacingUtils","withStyles","theme","codeMirrorContainer","marginBottom","display","formFieldStyles","classes","open","bucketName","actualPolicy","actualDefinition","closeModalAndRefresh","dispatch","useAppDispatch","useState","addLoading","setAddLoading","accessPolicy","setAccessPolicy","emptyPolicy","policyDefinition","setPolicyDefinition","useEffect","JSON","stringify","parse","title","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","api","access","definition","then","res","catch","err","setModalErrorSnackMessage","container","item","xs","className","modalFormScrollable","formFieldRow","value","label","id","name","onChange","target","options","onBeforeChange","editor","data","editorHeight","modalButtonBar","type","variant","onClick","disabled","fieldBasic","tooltip","mode","readOnly","sx","inputLabel","tooltipContainer","placement","style","maxHeight","overflow","border","language","evn","padding","fontSize","backgroundColor","fontFamily","minHeight","color","background","borderTop","alignItems","paddingRight","justifyContent","height","width","marginLeft","text","icon","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_possibleConstructorReturn","self","call"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/3875.7dc3910c.chunk.js b/portal-ui/build/static/js/3875.7dc3910c.chunk.js
new file mode 100644
index 0000000000..0715f2ea4d
--- /dev/null
+++ b/portal-ui/build/static/js/3875.7dc3910c.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3875],{23804:function(e,n,i){i(72791);var t=i(11135),r=i(25787),s=i(61889),a=i(80184);n.Z=(0,r.Z)((function(e){return(0,t.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,i=e.iconComponent,t=e.title,r=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(s.ZP,{container:!0,children:[(0,a.jsxs)(s.ZP,{item:!0,xs:12,className:n.leftItems,children:[i,t]}),(0,a.jsx)(s.ZP,{item:!0,xs:12,className:n.helpText,children:r})]})})}))},93875:function(e,n,i){i.r(n),i.d(n,{default:function(){return B}});var t=i(93433),r=i(4942),s=i(1413),a=i(29439),o=i(72791),c=i(61889),d=i(64554),l=i(40986),p=i(16871),x=i(75952),u=i(9505),f=i(56096),h=i(32291),g=i(84669),m=i(56087),j=i(74794),y=i(23804),v=i(50896),Z=i(87995),K=i(25469),b=i(60364),C=i(46078),w=i(21435),S=i(27454),k=i(80184),T=function(e){var n=e.rowData,i=e.rowId,t=e.onFieldChange,r=e.onAddClick,s=e.onRemoveClick,a=e.canAdd,l=void 0===a||a,p=e.canRemove,u=void 0===p||p,h=e.showRowActions,g=void 0===h||h,m=e.disabledFields,j=void 0===m?[]:m,y=e.fieldErrors,v=void 0===y?{}:y,Z=n.endpoint,K=void 0===Z?"":Z,b=n.accessKey,C=void 0===b?"":b,T=n.secretKey,I=void 0===T?"":T,R=n.name,A=void 0===R?"":R;return(0,k.jsxs)(o.Fragment,{children:[(0,k.jsx)(d.Z,{children:(0,k.jsx)(w.Z,{id:"add-rep-peer-site-".concat(i),name:"add-rep-peer-site-".concat(i),placeholder:"site-name",label:"",extraInputProps:{readOnly:j.includes("name")},value:A,onChange:function(e){t(e,"name",i)},"data-test-id":"add-site-rep-peer-site-".concat(i)})}),(0,k.jsx)(d.Z,{children:(0,k.jsx)(w.Z,{id:"add-rep-peer-site-ep-".concat(i),name:"add-rep-peer-site-ep-".concat(i),placeholder:"https://dr.minio-storage:900".concat(i),label:"",extraInputProps:{readOnly:j.includes("endpoint")},error:v.endpoint,value:K,onChange:function(e){t(e,"endpoint",i)},"data-test-id":"add-site-rep-peer-ep-".concat(i)})}),(0,k.jsx)(d.Z,{children:(0,k.jsx)(w.Z,{id:"add-rep-peer-site-ac-".concat(i),name:"add-rep-peer-site-ac-".concat(i),label:"",required:!0,disabled:j.includes("accessKey"),value:C,error:v.accessKey,onChange:function(e){t(e,"accessKey",i)},"data-test-id":"add-rep-peer-site-ac-".concat(i)})}),(0,k.jsx)(d.Z,{children:(0,k.jsx)(w.Z,{id:"add-rep-peer-site-sk-".concat(i),name:"add-rep-peer-site-sk-".concat(i),label:"",required:!0,type:"password",value:I,error:v.secretKey,disabled:j.includes("secretKey"),onChange:function(e){t(e,"secretKey",i)},"data-test-id":"add-rep-peer-site-sk-".concat(i)})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,alignItems:"center",display:"flex",children:(0,k.jsx)(d.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",alignSelf:"baseline",marginTop:"4px","& button":{borderColor:"#696969",color:"#696969",borderRadius:"50%"}},children:g?(0,k.jsxs)(o.Fragment,{children:[(0,k.jsx)(S.Z,{tooltip:"Add a Row",children:(0,k.jsx)(x.zx,{id:"add-row-".concat(i),variant:"regular",disabled:!l,icon:(0,k.jsx)(f.dtP,{}),onClick:function(e){e.preventDefault(),null===r||void 0===r||r(i)},style:{width:25,height:25,padding:0}})}),(0,k.jsx)(S.Z,{tooltip:"Remove Row",children:(0,k.jsx)(x.zx,{id:"remove-row-".concat(i),variant:"regular",disabled:!u,icon:(0,k.jsx)(f.HFL,{}),onClick:function(e){e.preventDefault(),null===s||void 0===s||s(i)},style:{width:25,height:25,padding:0,marginLeft:8}})})]}):null})})]},"".concat(i))},I=function(e){var n=!1;try{new URL(e),n=!0}catch(i){n=!1}return n?"":"Invalid Endpoint"},R=function(e){return""===(null===e||void 0===e?void 0:e.trim())},A=function(){return(0,k.jsxs)(o.Fragment,{children:[(0,k.jsx)(d.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:"Site Name"}),(0,k.jsxs)(d.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:["Endpoint ","*"]}),(0,k.jsxs)(d.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:["Access Key ","*"]}),(0,k.jsxs)(d.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:["Secret Key ","*"]}),(0,k.jsx)(d.Z,{children:" "})]})},E=function(e){var n=e.title;return(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(d.Z,{sx:{marginBottom:"15px",fontSize:"14px",fontWeight:600},children:n})})},B=function(){var e=(0,K.TL)(),n=(0,p.s0)(),i=(0,b.v9)(C.gK).serverEndPoint,w=void 0===i?"":i,S=(0,o.useState)([{endpoint:w,name:"",accessKey:"",secretKey:""}]),B=(0,a.Z)(S,2),F=B[0],z=B[1],L=(0,o.useState)([]),P=(0,a.Z)(L,2),N=P[0],q=P[1],O=function(){q([{endpoint:"",name:"",accessKey:"",secretKey:""}])},W=(0,u.Z)((function(e){var n=e.sites,i=e.name,t=n.findIndex((function(e){return e.name===i}));if(-1!==t){var r=n[t];r=(0,s.Z)((0,s.Z)({},r),{},{isCurrent:!0,isSaved:!0}),z([r]),n.splice(t,1)}n.sort((function(e,n){return e.name===i?-1:n.name===i?1:0}));var a=n.map((function(e){return(0,s.Z)((0,s.Z)({},e),{},{accessKey:"",secretKey:"",isSaved:!0})}));a.length?q(a):O()}),(function(e){O()})),D=(0,a.Z)(W,2),_=D[0],H=D[1],M=function(){H("GET","api/v1/admin/site-replication")};(0,o.useEffect)((function(){M()}),[]);var Y=N.reduce((function(e,n,i){var t=N[i].endpoint,r=I(t);return""===r&&""!==t&&e.push(r),e}),[]),G=N.map((function(e){return!R(e.accessKey)&&!R(e.secretKey)})).filter(Boolean),U=F[0],V=U.accessKey,J=U.secretKey,Q=!R(V)&&!R(J),X=Y.length===N.length,$=G.length===N.length,ee=Q&&X&&$,ne=(0,u.Z)((function(i){i.success?(e((0,Z.y1)(i.status)),se(),M(),n(m.gA.SITE_REPLICATION)):e((0,Z.Ih)({errorMessage:"Error",detailedError:i.status}))}),(function(n){e((0,Z.Ih)(n))})),ie=(0,a.Z)(ne,2),te=ie[0],re=ie[1],se=function(){O(),z((function(e){return e.map((function(e,n){return(0,s.Z)((0,s.Z)({},e),{},{accessKey:"",secretKey:"",name:""})}))}))};return(0,k.jsxs)(o.Fragment,{children:[(0,k.jsx)(h.Z,{label:(0,k.jsx)(g.Z,{to:m.gA.SITE_REPLICATION,label:"Add Replication Site"})}),(0,k.jsx)(j.Z,{children:(0,k.jsxs)(d.Z,{sx:{display:"grid",padding:"25px",gap:"25px",gridTemplateColumns:"1fr",border:"1px solid #eaeaea"},children:[(0,k.jsxs)(d.Z,{children:[(0,k.jsx)(v.Z,{icon:(0,k.jsx)(f.aWt,{}),children:"Add Sites for Replication"}),_||te?(0,k.jsx)(l.Z,{}):null,(0,k.jsx)(d.Z,{sx:{fontSize:"14px",fontStyle:"italic",marginTop:"10px",marginBottom:"10px"},children:"Note: AccessKey and SecretKey values for every site is required while adding or editing peer sites"}),(0,k.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){return e.preventDefault(),function(){var e=null===F||void 0===F?void 0:F.map((function(e,n){return{accessKey:e.accessKey,secretKey:e.secretKey,name:e.name,endpoint:e.endpoint.trim()}})),n=N.reduce((function(e,n,i){return n.endpoint&&e.push({accessKey:n.accessKey,secretKey:n.secretKey,name:n.name||"dr-site-".concat(i),endpoint:n.endpoint.trim()}),e}),[]),i=e.concat(n);re("POST","api/v1/admin/site-replication",i)}()},children:[(0,k.jsxs)(d.Z,{sx:{marginTop:"15px"},children:[(0,k.jsx)(E,{title:"This Site"}),(0,k.jsxs)(d.Z,{sx:{display:"grid",gridTemplateColumns:".8fr 1.2fr .8fr .8fr .2fr",border:"1px solid #eaeaea",padding:"15px",gap:"10px",maxHeight:"430px",overflowY:"auto"},children:[(0,k.jsx)(A,{}),F.map((function(e,n){var i=R(e.accessKey)?"AccessKey is required":"",t=R(e.secretKey)?"SecretKey is required":"";return(0,k.jsx)(T,{rowData:e,rowId:n,fieldErrors:{accessKey:i,secretKey:t},onFieldChange:function(e,n,i){var t=e.target.value;""!==n&&z((function(e){return e.map((function(e,a){return a===i?(0,s.Z)((0,s.Z)({},e),{},(0,r.Z)({},n,t)):e}))}))},showRowActions:!1},"current-".concat(n))}))]})]}),(0,k.jsxs)(d.Z,{sx:{marginTop:"25px"},children:[(0,k.jsx)(E,{title:"Peer Sites"}),(0,k.jsxs)(d.Z,{sx:{display:"grid",gridTemplateColumns:".8fr 1.2fr .8fr .8fr .2fr",border:"1px solid #eaeaea",padding:"15px",gap:"10px",maxHeight:"430px",overflowY:"auto"},children:[(0,k.jsx)(A,{}),N.map((function(e,n){var i=I(e.endpoint),a=R(e.accessKey)?"AccessKey is required":"",o=R(e.secretKey)?"SecretKey is required":"";return(0,k.jsx)(T,{rowData:e,rowId:n,fieldErrors:{endpoint:i,accessKey:a,secretKey:o},onFieldChange:function(e,n,i){var t=e.target.value;q((function(e){return e.map((function(e,a){return a===i?(0,s.Z)((0,s.Z)({},e),{},(0,r.Z)({},n,t)):e}))}))},canAdd:!0,canRemove:n>0&&!e.isSaved,onAddClick:function(){var e=(0,t.Z)(N);e.splice(n+1,0,{name:"",endpoint:"",accessKey:"",secretKey:""}),q(e)},onRemoveClick:function(e){q(N.filter((function(n,i){return i!==e})))}},"exiting-".concat(n))}))]})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[(0,k.jsx)(x.zx,{id:"clear",type:"button",variant:"regular",disabled:te,onClick:se,label:"Clear"}),(0,k.jsx)(x.zx,{id:"save",type:"submit",variant:"callAction",disabled:te||!ee,label:"Save"})]})})]})]}),(0,k.jsx)(y.Z,{title:"",iconComponent:null,help:(0,k.jsxs)(o.Fragment,{children:[(0,k.jsxs)(d.Z,{sx:{marginTop:"-25px",fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",justifyContent:"flex-start",padding:"2px"},children:[(0,k.jsx)(d.Z,{sx:{backgroundColor:"#07193E",height:"15px",width:"15px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",marginRight:"18px",padding:"3px",paddingLeft:"2px","& .min-icon":{height:"11px",width:"11px",fill:"#ffffff"}},children:(0,k.jsx)(f.aWt,{})}),"About Site Replication"]}),(0,k.jsxs)(d.Z,{sx:{display:"flex",flexFlow:"column",fontSize:"14px",flex:"2","& .step-number":{color:"#ffffff",height:"25px",width:"25px",background:"#081C42",marginRight:"10px",textAlign:"center",fontWeight:600,borderRadius:"50%"},"& li":{fontSize:"14px",display:"flex",marginTop:"15px",marginBottom:"15px",width:"100%","&.step-text":{fontWeight:400},"&:before":{content:"' '",height:"7px",width:"7px",backgroundColor:"#2781B0",marginRight:"10px",marginTop:"12px",flexShrink:0}}},children:[(0,k.jsx)(d.Z,{children:"The following changes are replicated to all other sites"}),(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Creation and deletion of buckets and objects"}),(0,k.jsx)("li",{children:"Creation and deletion of all IAM users, groups, policies and their mappings to users or groups"}),(0,k.jsx)("li",{children:"Creation of STS credentials"}),(0,k.jsx)("li",{children:"Creation and deletion of service accounts (except those owned by the root user)"}),(0,k.jsx)("li",{children:(0,k.jsxs)(d.Z,{style:{display:"flex",flexFlow:"column",justifyContent:"flex-start"},children:[(0,k.jsx)("div",{style:{paddingTop:"1px"},children:"Changes to Bucket features such as"}),(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Bucket Policies"}),(0,k.jsx)("li",{children:"Bucket Tags"}),(0,k.jsx)("li",{children:"Bucket Object-Lock configurations"}),(0,k.jsx)("li",{children:"Bucket Encryption configuration"})]})]})}),(0,k.jsx)("li",{children:(0,k.jsxs)(d.Z,{style:{display:"flex",flexFlow:"column",justifyContent:"flex-start"},children:[(0,k.jsx)("div",{style:{paddingTop:"1px"},children:"The following Bucket features will NOT be replicated"}),(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Bucket notification configuration"}),(0,k.jsx)("li",{children:"Bucket lifecycle (ILM) configuration"})]})]})})]})]})]})})]})})]})}}}]);
+//# sourceMappingURL=3875.7dc3910c.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/3875.7dc3910c.chunk.js.map b/portal-ui/build/static/js/3875.7dc3910c.chunk.js.map
new file mode 100644
index 0000000000..8816072161
--- /dev/null
+++ b/portal-ui/build/static/js/3875.7dc3910c.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/3875.7dc3910c.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Configurations/SiteReplication/SRSiteInputRow.tsx","screens/Console/Configurations/SiteReplication/AddReplicationSites.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string | React.ReactNode;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\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 { Box } from \"@mui/material\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport { Button } from \"mds\";\nimport { AddIcon, RemoveIcon } from \"../../../../icons\";\nimport { SiteInputRow } from \"./Types\";\n\nconst SRSiteInputRow = ({\n rowData,\n rowId: index,\n onFieldChange,\n onAddClick,\n onRemoveClick,\n canAdd = true,\n canRemove = true,\n showRowActions = true,\n disabledFields = [],\n fieldErrors = {},\n}: {\n rowData: SiteInputRow;\n rowId: number;\n onFieldChange: (e: any, fieldName: string, index: number) => void;\n onAddClick?: (index: number) => void;\n onRemoveClick?: (index: number) => void;\n canAdd?: boolean;\n canRemove?: boolean;\n showRowActions?: boolean;\n disabledFields?: string[];\n fieldErrors?: Record;\n}) => {\n const { endpoint = \"\", accessKey = \"\", secretKey = \"\", name = \"\" } = rowData;\n return (\n \n \n {\n onFieldChange(e, \"name\", index);\n }}\n data-test-id={`add-site-rep-peer-site-${index}`}\n />\n \n \n {\n onFieldChange(e, \"endpoint\", index);\n }}\n data-test-id={`add-site-rep-peer-ep-${index}`}\n />\n \n\n \n {\n onFieldChange(e, \"accessKey\", index);\n }}\n data-test-id={`add-rep-peer-site-ac-${index}`}\n />\n \n \n {\n onFieldChange(e, \"secretKey\", index);\n }}\n data-test-id={`add-rep-peer-site-sk-${index}`}\n />\n \n \n \n {showRowActions ? (\n \n \n }\n onClick={(e) => {\n e.preventDefault();\n onAddClick?.(index);\n }}\n style={{\n width: 25,\n height: 25,\n padding: 0,\n }}\n />\n \n \n }\n onClick={(e) => {\n e.preventDefault();\n onRemoveClick?.(index);\n }}\n style={{\n width: 25,\n height: 25,\n padding: 0,\n marginLeft: 8,\n }}\n />\n \n \n ) : null}\n \n \n \n );\n};\n\nexport default SRSiteInputRow;\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 Grid from \"@mui/material/Grid\";\nimport { Box, LinearProgress } from \"@mui/material\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Button } from \"mds\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport { ClustersIcon } from \"../../../../icons\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport BackLink from \"../../../../common/BackLink\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport SectionTitle from \"../../Common/SectionTitle\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { useSelector } from \"react-redux\";\nimport { selSession } from \"../../consoleSlice\";\nimport SRSiteInputRow from \"./SRSiteInputRow\";\nimport { SiteInputRow } from \"./Types\";\n\nconst isValidEndPoint = (ep: string) => {\n let isValidEndPointUrl = false;\n\n try {\n new URL(ep);\n isValidEndPointUrl = true;\n } catch (err) {\n isValidEndPointUrl = false;\n }\n if (isValidEndPointUrl) {\n return \"\";\n } else {\n return \"Invalid Endpoint\";\n }\n};\n\nconst isEmptyValue = (value: string): boolean => {\n return value?.trim() === \"\";\n};\n\nconst TableHeader = () => {\n return (\n \n \n Site Name\n \n Endpoint {\"*\"}\n Access Key {\"*\"}\n Secret Key {\"*\"}\n \n \n );\n};\n\nconst SiteTypeHeader = ({ title }: { title: string }) => {\n return (\n \n \n {title}\n \n \n );\n};\n\nconst AddReplicationSites = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n\n const { serverEndPoint = \"\" } = useSelector(selSession);\n\n const [currentSite, setCurrentSite] = useState([\n {\n endpoint: serverEndPoint,\n name: \"\",\n accessKey: \"\",\n secretKey: \"\",\n },\n ]);\n\n const [existingSites, setExistingSites] = useState([]);\n\n const setDefaultNewRows = () => {\n const defaultNewSites = [\n { endpoint: \"\", name: \"\", accessKey: \"\", secretKey: \"\" },\n ];\n setExistingSites(defaultNewSites);\n };\n\n const [isSiteInfoLoading, invokeSiteInfoApi] = useApi(\n (res: any) => {\n const { sites: siteList, name: curSiteName } = res;\n // current site name to be the fist one.\n const foundIdx = siteList.findIndex((el: any) => el.name === curSiteName);\n if (foundIdx !== -1) {\n let curSite = siteList[foundIdx];\n curSite = {\n ...curSite,\n isCurrent: true,\n isSaved: true,\n };\n\n setCurrentSite([curSite]);\n siteList.splice(foundIdx, 1);\n }\n\n siteList.sort((x: any, y: any) => {\n return x.name === curSiteName ? -1 : y.name === curSiteName ? 1 : 0;\n });\n\n let existingSiteList = siteList.map((si: any) => {\n return {\n ...si,\n accessKey: \"\",\n secretKey: \"\",\n isSaved: true,\n };\n });\n\n if (existingSiteList.length) {\n setExistingSites(existingSiteList);\n } else {\n setDefaultNewRows();\n }\n },\n (err: any) => {\n setDefaultNewRows();\n }\n );\n\n const getSites = () => {\n invokeSiteInfoApi(\"GET\", `api/v1/admin/site-replication`);\n };\n\n useEffect(() => {\n getSites();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const existingEndPointsValidity = existingSites.reduce(\n (acc: string[], cv, i) => {\n const epValue = existingSites[i].endpoint;\n const isEpValid = isValidEndPoint(epValue);\n\n if (isEpValid === \"\" && epValue !== \"\") {\n acc.push(isEpValid);\n }\n return acc;\n },\n []\n );\n\n const isExistingCredsValidity = existingSites\n .map((site) => {\n return !isEmptyValue(site.accessKey) && !isEmptyValue(site.secretKey);\n })\n .filter(Boolean);\n\n const { accessKey: cAccessKey, secretKey: cSecretKey } = currentSite[0];\n\n const isCurCredsValid =\n !isEmptyValue(cAccessKey) && !isEmptyValue(cSecretKey);\n const peerEndpointsValid =\n existingEndPointsValidity.length === existingSites.length;\n const peerCredsValid =\n isExistingCredsValidity.length === existingSites.length;\n\n let isAllFieldsValid =\n isCurCredsValid && peerEndpointsValid && peerCredsValid;\n\n const [isAdding, invokeSiteAddApi] = useApi(\n (res: any) => {\n if (res.success) {\n dispatch(setSnackBarMessage(res.status));\n resetForm();\n getSites();\n navigate(IAM_PAGES.SITE_REPLICATION);\n } else {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"Error\",\n detailedError: res.status,\n })\n );\n }\n },\n (err: any) => {\n dispatch(setErrorSnackMessage(err));\n }\n );\n\n const resetForm = () => {\n setDefaultNewRows();\n setCurrentSite((prevItems) => {\n return prevItems.map((item, ix) => ({\n ...item,\n accessKey: \"\",\n secretKey: \"\",\n name: \"\",\n }));\n });\n };\n\n const addSiteReplication = () => {\n const curSite: any[] = currentSite?.map((es, idx) => {\n return {\n accessKey: es.accessKey,\n secretKey: es.secretKey,\n name: es.name,\n endpoint: es.endpoint.trim(),\n };\n });\n\n const newOrExistingSitesToAdd = existingSites.reduce(\n (acc: any, ns, idx) => {\n if (ns.endpoint) {\n acc.push({\n accessKey: ns.accessKey,\n secretKey: ns.secretKey,\n name: ns.name || `dr-site-${idx}`,\n endpoint: ns.endpoint.trim(),\n });\n }\n return acc;\n },\n []\n );\n\n const sitesToAdd = curSite.concat(newOrExistingSitesToAdd);\n\n invokeSiteAddApi(\"POST\", `api/v1/admin/site-replication`, sitesToAdd);\n };\n\n const renderCurrentSite = () => {\n return (\n \n \n \n \n\n {currentSite.map((cs, index) => {\n const accessKeyError = isEmptyValue(cs.accessKey)\n ? \"AccessKey is required\"\n : \"\";\n const secretKeyError = isEmptyValue(cs.secretKey)\n ? \"SecretKey is required\"\n : \"\";\n return (\n {\n const filedValue = e.target.value;\n if (fieldName !== \"\") {\n setCurrentSite((prevItems) => {\n return prevItems.map((item, ix) =>\n ix === index\n ? { ...item, [fieldName]: filedValue }\n : item\n );\n });\n }\n }}\n showRowActions={false}\n />\n );\n })}\n \n \n );\n };\n\n const renderPeerSites = () => {\n return (\n \n \n \n \n\n {existingSites.map((ps, index) => {\n const endPointError = isValidEndPoint(ps.endpoint);\n\n const accessKeyError = isEmptyValue(ps.accessKey)\n ? \"AccessKey is required\"\n : \"\";\n const secretKeyError = isEmptyValue(ps.secretKey)\n ? \"SecretKey is required\"\n : \"\";\n\n return (\n {\n const filedValue = e.target.value;\n setExistingSites((prevItems) => {\n return prevItems.map((item, ix) =>\n ix === index ? { ...item, [fieldName]: filedValue } : item\n );\n });\n }}\n canAdd={true}\n canRemove={index > 0 && !ps.isSaved}\n onAddClick={() => {\n const newRows = [...existingSites];\n //add at the next index\n newRows.splice(index + 1, 0, {\n name: \"\",\n endpoint: \"\",\n accessKey: \"\",\n secretKey: \"\",\n });\n\n setExistingSites(newRows);\n }}\n onRemoveClick={(index) => {\n setExistingSites(\n existingSites.filter((_, idx) => idx !== index)\n );\n }}\n />\n );\n })}\n \n \n );\n };\n\n return (\n \n \n }\n />\n \n \n \n }>\n Add Sites for Replication\n \n\n {isSiteInfoLoading || isAdding ? : null}\n\n \n Note: AccessKey and SecretKey values for every site is required\n while adding or editing peer sites\n \n \n \n\n \n \n \n \n \n About Site Replication\n \n \n \n The following changes are replicated to all other sites\n \n
\n
Creation and deletion of buckets and objects
\n
\n Creation and deletion of all IAM users, groups, policies\n and their mappings to users or groups\n
\n
Creation of STS credentials
\n
\n Creation and deletion of service accounts (except those\n owned by the root user)\n
\n
\n \n
\n Changes to Bucket features such as\n
\n
\n
Bucket Policies
\n
Bucket Tags
\n
Bucket Object-Lock configurations
\n
Bucket Encryption configuration
\n
\n \n
\n\n
\n \n
\n The following Bucket features will NOT be replicated\n
\n\n
\n
Bucket notification configuration
\n
Bucket lifecycle (ILM) configuration
\n
\n \n
\n
\n \n \n }\n />\n \n \n \n );\n};\n\nexport default AddReplicationSites;\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","rowData","index","rowId","onFieldChange","onAddClick","onRemoveClick","canAdd","canRemove","showRowActions","disabledFields","fieldErrors","endpoint","accessKey","secretKey","name","Fragment","Box","InputBoxWrapper","id","placeholder","label","extraInputProps","readOnly","includes","value","onChange","e","error","required","disabled","type","Grid","sx","justifyContent","alignSelf","marginTop","borderColor","color","TooltipWrapper","tooltip","variant","icon","onClick","preventDefault","style","padding","marginLeft","isValidEndPoint","ep","isValidEndPointUrl","URL","err","isEmptyValue","trim","TableHeader","SiteTypeHeader","dispatch","useAppDispatch","navigate","useNavigate","useSelector","selSession","serverEndPoint","useState","currentSite","setCurrentSite","existingSites","setExistingSites","setDefaultNewRows","useApi","res","siteList","sites","curSiteName","foundIdx","findIndex","el","curSite","isCurrent","isSaved","splice","sort","x","y","existingSiteList","map","si","length","isSiteInfoLoading","invokeSiteInfoApi","getSites","useEffect","existingEndPointsValidity","reduce","acc","cv","i","epValue","isEpValid","push","isExistingCredsValidity","site","filter","Boolean","cAccessKey","cSecretKey","isCurCredsValid","peerEndpointsValid","peerCredsValid","isAllFieldsValid","success","setSnackBarMessage","status","resetForm","IAM_PAGES","setErrorSnackMessage","errorMessage","detailedError","isAdding","invokeSiteAddApi","prevItems","ix","PageHeader","BackLink","to","PageLayout","gap","gridTemplateColumns","SectionTitle","LinearProgress","fontStyle","noValidate","autoComplete","onSubmit","es","idx","newOrExistingSitesToAdd","ns","sitesToAdd","concat","addSiteReplication","maxHeight","overflowY","cs","accessKeyError","secretKeyError","fieldName","filedValue","target","ps","endPointError","newRows","_","HelpBox","fill","flexFlow","flex","background","textAlign","content","flexShrink"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/3875.c9ea9a57.chunk.js b/portal-ui/build/static/js/3875.c9ea9a57.chunk.js
deleted file mode 100644
index ff2610460c..0000000000
--- a/portal-ui/build/static/js/3875.c9ea9a57.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3875],{23804:function(e,n,i){i(72791);var t=i(11135),r=i(25787),s=i(61889),a=i(80184);n.Z=(0,r.Z)((function(e){return(0,t.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,i=e.iconComponent,t=e.title,r=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(s.ZP,{container:!0,children:[(0,a.jsxs)(s.ZP,{item:!0,xs:12,className:n.leftItems,children:[i,t]}),(0,a.jsx)(s.ZP,{item:!0,xs:12,className:n.helpText,children:r})]})})}))},93875:function(e,n,i){i.r(n),i.d(n,{default:function(){return F}});var t=i(93433),r=i(4942),s=i(1413),a=i(29439),o=i(72791),c=i(61889),d=i(64554),l=i(40986),p=i(16871),x=i(75952),u=i(9505),f=i(56096),h=i(32291),g=i(84669),m=i(56087),j=i(74794),y=i(23804),v=i(50896),Z=i(87995),K=i(25469),b=i(60364),C=i(46078),S=i(21435),w=i(27454),k=i(80184),T=function(e){var n=e.rowData,i=e.rowId,t=e.onFieldChange,r=e.onAddClick,s=e.onRemoveClick,a=e.canAdd,l=void 0===a||a,p=e.canRemove,u=void 0===p||p,h=e.showRowActions,g=void 0===h||h,m=e.disabledFields,j=void 0===m?[]:m,y=e.fieldErrors,v=void 0===y?{}:y,Z=n.endpoint,K=void 0===Z?"":Z,b=n.accessKey,C=void 0===b?"":b,T=n.secretKey,I=void 0===T?"":T,R=n.name,A=void 0===R?"":R;return(0,k.jsxs)(o.Fragment,{children:[(0,k.jsx)(d.Z,{children:(0,k.jsx)(S.Z,{id:"add-rep-peer-site-".concat(i),name:"add-rep-peer-site-".concat(i),placeholder:"site-name",label:"",extraInputProps:{readOnly:j.includes("name")},value:A,onChange:function(e){t(e,"name",i)},"data-test-id":"add-site-rep-peer-site-".concat(i)})}),(0,k.jsx)(d.Z,{children:(0,k.jsx)(S.Z,{id:"add-rep-peer-site-ep-".concat(i),name:"add-rep-peer-site-ep-".concat(i),placeholder:"https://dr.minio-storage:900".concat(i),label:"",extraInputProps:{readOnly:j.includes("endpoint")},error:v.endpoint,value:K,onChange:function(e){t(e,"endpoint",i)},"data-test-id":"add-site-rep-peer-ep-".concat(i)})}),(0,k.jsx)(d.Z,{children:(0,k.jsx)(S.Z,{id:"add-rep-peer-site-ac-".concat(i),name:"add-rep-peer-site-ac-".concat(i),label:"",required:!0,disabled:j.includes("accessKey"),value:C,error:v.accessKey,onChange:function(e){t(e,"accessKey",i)},"data-test-id":"add-rep-peer-site-ac-".concat(i)})}),(0,k.jsx)(d.Z,{children:(0,k.jsx)(S.Z,{id:"add-rep-peer-site-sk-".concat(i),name:"add-rep-peer-site-sk-".concat(i),label:"",required:!0,type:"password",value:I,error:v.secretKey,disabled:j.includes("secretKey"),onChange:function(e){t(e,"secretKey",i)},"data-test-id":"add-rep-peer-site-sk-".concat(i)})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,alignItems:"center",display:"flex",children:(0,k.jsx)(d.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",alignSelf:"baseline",marginTop:"4px","& button":{borderColor:"#696969",color:"#696969",borderRadius:"50%"}},children:g?(0,k.jsxs)(o.Fragment,{children:[(0,k.jsx)(w.Z,{tooltip:"Add a Row",children:(0,k.jsx)(x.zx,{id:"add-row-".concat(i),variant:"regular",disabled:!l,icon:(0,k.jsx)(f.dtP,{}),onClick:function(e){e.preventDefault(),null===r||void 0===r||r(i)},style:{width:25,height:25,padding:0}})}),(0,k.jsx)(w.Z,{tooltip:"Remove Row",children:(0,k.jsx)(x.zx,{id:"remove-row-".concat(i),variant:"regular",disabled:!u,icon:(0,k.jsx)(f.HFL,{}),onClick:function(e){e.preventDefault(),null===s||void 0===s||s(i)},style:{width:25,height:25,padding:0,marginLeft:8}})})]}):null})})]},"".concat(i))},I=function(e){var n=!1;try{new URL(e),n=!0}catch(i){n=!1}return n?"":"Invalid Endpoint"},R=function(e){return""===(null===e||void 0===e?void 0:e.trim())},A=function(){return(0,k.jsxs)(o.Fragment,{children:[(0,k.jsx)(d.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:"Site Name"}),(0,k.jsxs)(d.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:["Endpoint ","*"]}),(0,k.jsxs)(d.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:["Access Key ","*"]}),(0,k.jsxs)(d.Z,{sx:{fontSize:"14px",marginLeft:"5px"},children:["Secret Key ","*"]}),(0,k.jsx)(d.Z,{children:" "})]})},E=function(e){var n=e.title;return(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsx)(d.Z,{sx:{marginBottom:"15px",fontSize:"14px",fontWeight:600},children:n})})},F=function(){var e=(0,K.TL)(),n=(0,p.s0)(),i=(0,b.v9)(C.gK).serverEndPoint,S=void 0===i?"":i,w=(0,o.useState)([{endpoint:S,name:"",accessKey:"",secretKey:""}]),F=(0,a.Z)(w,2),B=F[0],z=F[1],L=(0,o.useState)([]),P=(0,a.Z)(L,2),N=P[0],q=P[1],O=function(){q([{endpoint:"",name:"",accessKey:"",secretKey:""}])},W=(0,u.Z)((function(e){var n=e.sites,i=e.name,t=n.findIndex((function(e){return e.name===i}));if(-1!==t){var r=n[t];r=(0,s.Z)((0,s.Z)({},r),{},{isCurrent:!0,isSaved:!0}),z([r]),n.splice(t,1)}n.sort((function(e,n){return e.name===i?-1:n.name===i?1:0}));var a=n.map((function(e){return(0,s.Z)((0,s.Z)({},e),{},{accessKey:"",secretKey:"",isSaved:!0})}));a.length?q(a):O()}),(function(e){O()})),D=(0,a.Z)(W,2),_=D[0],H=D[1],M=function(){H("GET","api/v1/admin/site-replication")};(0,o.useEffect)((function(){M()}),[]);var Y=N.reduce((function(e,n,i){var t=N[i].endpoint,r=I(t);return""===r&&""!==t&&e.push(r),e}),[]),G=N.map((function(e){return!R(e.accessKey)&&!R(e.secretKey)})).filter(Boolean),U=B[0],V=U.accessKey,J=U.secretKey,Q=!R(V)&&!R(J),X=Y.length===N.length,$=G.length===N.length,ee=Q&&X&&$,ne=(0,u.Z)((function(i){i.success?(e((0,Z.y1)(i.status)),se(),M(),n(m.gA.SITE_REPLICATION)):e((0,Z.Ih)({errorMessage:"Error",detailedError:i.status}))}),(function(n){e((0,Z.Ih)(n))})),ie=(0,a.Z)(ne,2),te=ie[0],re=ie[1],se=function(){O(),z((function(e){return e.map((function(e,n){return(0,s.Z)((0,s.Z)({},e),{},{accessKey:"",secretKey:"",name:""})}))}))};return(0,k.jsxs)(o.Fragment,{children:[(0,k.jsx)(h.Z,{label:(0,k.jsx)(g.Z,{to:m.gA.SITE_REPLICATION,label:"Add Replication Site"})}),(0,k.jsx)(j.Z,{children:(0,k.jsxs)(d.Z,{sx:{display:"grid",padding:"25px",gap:"25px",gridTemplateColumns:"1fr",border:"1px solid #eaeaea"},children:[(0,k.jsxs)(d.Z,{children:[(0,k.jsx)(v.Z,{icon:(0,k.jsx)(f.aWt,{}),children:"Add Sites for Replication"}),_||te?(0,k.jsx)(l.Z,{}):null,(0,k.jsx)(d.Z,{sx:{fontSize:"14px",fontStyle:"italic",marginTop:"10px",marginBottom:"10px"},children:"Note: AccessKey and SecretKey values for every site is required while adding or editing peer sites"}),(0,k.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){return e.preventDefault(),function(){var e=null===B||void 0===B?void 0:B.map((function(e,n){return{accessKey:e.accessKey,secretKey:e.secretKey,name:e.name,endpoint:e.endpoint}})),n=N.reduce((function(e,n,i){return n.endpoint&&e.push({accessKey:n.accessKey,secretKey:n.secretKey,name:n.name||"dr-site-".concat(i),endpoint:n.endpoint}),e}),[]),i=e.concat(n);re("POST","api/v1/admin/site-replication",i)}()},children:[(0,k.jsxs)(d.Z,{sx:{marginTop:"15px"},children:[(0,k.jsx)(E,{title:"This Site"}),(0,k.jsxs)(d.Z,{sx:{display:"grid",gridTemplateColumns:".8fr 1.2fr .8fr .8fr .2fr",border:"1px solid #eaeaea",padding:"15px",gap:"10px",maxHeight:"430px",overflowY:"auto"},children:[(0,k.jsx)(A,{}),B.map((function(e,n){var i=R(e.accessKey)?"AccessKey is required":"",t=R(e.secretKey)?"SecretKey is required":"";return(0,k.jsx)(T,{disabledFields:["endpoint"].concat(e.isSaved?"name":""),rowData:e,rowId:n,fieldErrors:{accessKey:i,secretKey:t},onFieldChange:function(e,n,i){var t=e.target.value;""!==n&&z((function(e){return e.map((function(e,a){return a===i?(0,s.Z)((0,s.Z)({},e),{},(0,r.Z)({},n,t)):e}))}))},showRowActions:!1},"current-".concat(n))}))]})]}),(0,k.jsxs)(d.Z,{sx:{marginTop:"25px"},children:[(0,k.jsx)(E,{title:"Peer Sites"}),(0,k.jsxs)(d.Z,{sx:{display:"grid",gridTemplateColumns:".8fr 1.2fr .8fr .8fr .2fr",border:"1px solid #eaeaea",padding:"15px",gap:"10px",maxHeight:"430px",overflowY:"auto"},children:[(0,k.jsx)(A,{}),N.map((function(e,n){var i=I(e.endpoint),a=R(e.accessKey)?"AccessKey is required":"",o=R(e.secretKey)?"SecretKey is required":"";return(0,k.jsx)(T,{rowData:e,rowId:n,fieldErrors:{endpoint:i,accessKey:a,secretKey:o},disabledFields:e.isSaved?["endpoint","name"]:[],onFieldChange:function(e,n,i){var t=e.target.value;q((function(e){return e.map((function(e,a){return a===i?(0,s.Z)((0,s.Z)({},e),{},(0,r.Z)({},n,t)):e}))}))},canAdd:!0,canRemove:n>0&&!e.isSaved,onAddClick:function(){var e=(0,t.Z)(N);e.splice(n+1,0,{name:"",endpoint:"",accessKey:"",secretKey:""}),q(e)},onRemoveClick:function(e){q(N.filter((function(n,i){return i!==e})))}},"exiting-".concat(n))}))]})]}),(0,k.jsx)(c.ZP,{item:!0,xs:12,children:(0,k.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"20px",gap:"15px"},children:[(0,k.jsx)(x.zx,{id:"clear",type:"button",variant:"regular",disabled:te,onClick:se,label:"Clear"}),(0,k.jsx)(x.zx,{id:"save",type:"submit",variant:"callAction",disabled:te||!ee,label:"Save"})]})})]})]}),(0,k.jsx)(y.Z,{title:"",iconComponent:null,help:(0,k.jsxs)(o.Fragment,{children:[(0,k.jsxs)(d.Z,{sx:{marginTop:"-25px",fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",justifyContent:"flex-start",padding:"2px"},children:[(0,k.jsx)(d.Z,{sx:{backgroundColor:"#07193E",height:"15px",width:"15px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",marginRight:"18px",padding:"3px",paddingLeft:"2px","& .min-icon":{height:"11px",width:"11px",fill:"#ffffff"}},children:(0,k.jsx)(f.aWt,{})}),"About Site Replication"]}),(0,k.jsxs)(d.Z,{sx:{display:"flex",flexFlow:"column",fontSize:"14px",flex:"2","& .step-number":{color:"#ffffff",height:"25px",width:"25px",background:"#081C42",marginRight:"10px",textAlign:"center",fontWeight:600,borderRadius:"50%"},"& li":{fontSize:"14px",display:"flex",marginTop:"15px",marginBottom:"15px",width:"100%","&.step-text":{fontWeight:400},"&:before":{content:"' '",height:"7px",width:"7px",backgroundColor:"#2781B0",marginRight:"10px",marginTop:"12px",flexShrink:0}}},children:[(0,k.jsx)(d.Z,{children:"The following changes are replicated to all other sites"}),(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Creation and deletion of buckets and objects"}),(0,k.jsx)("li",{children:"Creation and deletion of all IAM users, groups, policies and their mappings to users or groups"}),(0,k.jsx)("li",{children:"Creation of STS credentials"}),(0,k.jsx)("li",{children:"Creation and deletion of service accounts (except those owned by the root user)"}),(0,k.jsx)("li",{children:(0,k.jsxs)(d.Z,{style:{display:"flex",flexFlow:"column",justifyContent:"flex-start"},children:[(0,k.jsx)("div",{style:{paddingTop:"1px"},children:"Changes to Bucket features such as"}),(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Bucket Policies"}),(0,k.jsx)("li",{children:"Bucket Tags"}),(0,k.jsx)("li",{children:"Bucket Object-Lock configurations"}),(0,k.jsx)("li",{children:"Bucket Encryption configuration"})]})]})}),(0,k.jsx)("li",{children:(0,k.jsxs)(d.Z,{style:{display:"flex",flexFlow:"column",justifyContent:"flex-start"},children:[(0,k.jsx)("div",{style:{paddingTop:"1px"},children:"The following Bucket features will NOT be replicated"}),(0,k.jsxs)("ul",{children:[(0,k.jsx)("li",{children:"Bucket notification configuration"}),(0,k.jsx)("li",{children:"Bucket lifecycle (ILM) configuration"})]})]})})]})]})]})})]})})]})}}}]);
-//# sourceMappingURL=3875.c9ea9a57.chunk.js.map
\ No newline at end of file
diff --git a/portal-ui/build/static/js/3875.c9ea9a57.chunk.js.map b/portal-ui/build/static/js/3875.c9ea9a57.chunk.js.map
deleted file mode 100644
index ea057b0ae5..0000000000
--- a/portal-ui/build/static/js/3875.c9ea9a57.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/3875.c9ea9a57.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Configurations/SiteReplication/SRSiteInputRow.tsx","screens/Console/Configurations/SiteReplication/AddReplicationSites.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string | React.ReactNode;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Button } from \"mds\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\n\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport api from \"../../../../common/api\";\nimport { ITierElement } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { LockIcon } from \"../../../../icons\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface ITierCredentialsModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n tierData: ITierElement;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n },\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst UpdateTierCredentialsModal = ({\n open,\n closeModalAndRefresh,\n classes,\n tierData,\n}: ITierCredentialsModal) => {\n const dispatch = useAppDispatch();\n const [savingTiers, setSavingTiers] = useState(false);\n const [creds, setCreds] = useState(\"\");\n const [encodedCreds, setEncodedCreds] = useState(\"\");\n\n const [accountName, setAccountName] = useState(\"\");\n const [accountKey, setAccountKey] = useState(\"\");\n\n // Validations\n const [isFormValid, setIsFormValid] = useState(true);\n\n const type = get(tierData, \"type\", \"\");\n const name = get(tierData, `${type}.name`, \"\");\n\n useEffect(() => {\n let valid = true;\n\n if (type === \"s3\" || type === \"azure\" || type === \"minio\") {\n if (accountName === \"\" || accountKey === \"\") {\n valid = false;\n }\n } else if (type === \"gcs\") {\n if (encodedCreds === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [accountKey, accountName, encodedCreds, type]);\n\n const addRecord = () => {\n let rules = {};\n\n if (type === \"s3\" || type === \"azure\" || type === \"minio\") {\n rules = {\n access_key: accountName,\n secret_key: accountKey,\n };\n } else if (type === \"gcs\") {\n rules = {\n creds: encodedCreds,\n };\n }\n if (name !== \"\") {\n api\n .invoke(\"PUT\", `/api/v1/admin/tiers/${type}/${name}/credentials`, rules)\n .then(() => {\n setSavingTiers(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setSavingTiers(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n } else {\n setModalErrorSnackMessage({\n errorMessage: \"There was an error retrieving tier information\",\n detailedError: \"\",\n });\n }\n };\n\n return (\n }\n onClose={() => {\n closeModalAndRefresh(false);\n }}\n title={`Update Credentials - ${type} / ${name}`}\n >\n \n \n );\n};\n\nexport default withStyles(styles)(UpdateTierCredentialsModal);\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak && }\n \n {errorMessage}\n \n \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","inputLabel","fontWeight","textBoxContainer","border","paddingLeft","label","classes","onChange","id","name","disabled","tooltip","required","error","accept","value","useState","showFileSelector","setShowSelector","Grid","item","xs","className","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","title","placement","HelpIcon","type","e","fileName","get","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","color","component","onClick","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","dispatch","useAppDispatch","openSnackbar","setOpenSnackbar","modalSnackMessage","useSelector","state","system","modalSnackBar","useEffect","setModalSnackMessage","message","customSize","paper","fullWidth","detailedErrorMsg","open","scroll","event","reason","root","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","buttonContainer","display","justifyContent","modalBasic","formFieldStyles","closeModalAndRefresh","tierData","savingTiers","setSavingTiers","creds","setCreds","encodedCreds","setEncodedCreds","accountName","setAccountName","accountKey","setAccountKey","isFormValid","setIsFormValid","valid","noValidate","autoComplete","onSubmit","preventDefault","rules","access_key","secret_key","api","then","catch","err","setModalErrorSnackMessage","detailedError","addRecord","container","Fragment","formFieldRow","placeholder","encodedValue","variant","errorBlock","palette","main","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""}
\ No newline at end of file
diff --git a/portal-ui/build/static/js/4414.87a40d85.chunk.js.map b/portal-ui/build/static/js/4414.87a40d85.chunk.js.map
deleted file mode 100644
index 7aa7c7f4fb..0000000000
--- a/portal-ui/build/static/js/4414.87a40d85.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/4414.87a40d85.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Configurations/TiersConfiguration/UpdateTierCredentialsModal.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\nimport { setModalSnackMessage } from \"../../../../systemSlice\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n noContentPadding?: boolean;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n noContentPadding,\n titleIcon = null,\n}: IModalProps) => {\n const dispatch = useAppDispatch();\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n const modalSnackMessage = useSelector(\n (state: AppState) => state.system.modalSnackBar\n );\n\n useEffect(() => {\n dispatch(setModalSnackMessage(\"\"));\n }, [dispatch]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n dispatch(setModalSnackMessage(\"\"));\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n \n );\n};\n\nexport default withStyles(styles)(ModalWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Button } from \"mds\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\n\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport api from \"../../../../common/api\";\nimport { ITierElement } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { LockIcon } from \"../../../../icons\";\nimport { setModalErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface ITierCredentialsModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n tierData: ITierElement;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n },\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst UpdateTierCredentialsModal = ({\n open,\n closeModalAndRefresh,\n classes,\n tierData,\n}: ITierCredentialsModal) => {\n const dispatch = useAppDispatch();\n const [savingTiers, setSavingTiers] = useState(false);\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n\n const [creds, setCreds] = useState(\"\");\n const [encodedCreds, setEncodedCreds] = useState(\"\");\n\n const [accountName, setAccountName] = useState(\"\");\n const [accountKey, setAccountKey] = useState(\"\");\n\n // Validations\n const [isFormValid, setIsFormValid] = useState(true);\n\n const type = get(tierData, \"type\", \"\");\n const name = get(tierData, `${type}.name`, \"\");\n\n useEffect(() => {\n let valid = true;\n\n if (type === \"s3\" || type === \"azure\" || type === \"minio\") {\n if (accountName === \"\" || accountKey === \"\") {\n valid = false;\n }\n } else if (type === \"gcs\") {\n if (encodedCreds === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [accountKey, accountName, encodedCreds, type]);\n\n const addRecord = () => {\n let rules = {};\n\n if (type === \"s3\" || type === \"azure\" || type === \"minio\") {\n rules = {\n access_key: accountName,\n secret_key: accountKey,\n };\n } else if (type === \"gcs\") {\n rules = {\n creds: encodedCreds,\n };\n }\n if (name !== \"\") {\n api\n .invoke(\"PUT\", `/api/v1/admin/tiers/${type}/${name}/credentials`, rules)\n .then(() => {\n setSavingTiers(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setSavingTiers(false);\n dispatch(setModalErrorSnackMessage(err));\n });\n } else {\n setModalErrorSnackMessage({\n errorMessage: \"There was an error retrieving tier information\",\n detailedError: \"\",\n });\n }\n };\n\n return (\n }\n onClose={() => {\n closeModalAndRefresh(false);\n }}\n title={`Update Credentials - ${type} / ${name}`}\n >\n