-
Notifications
You must be signed in to change notification settings - Fork 247
/
Copy pathindex.es.js.map
1 lines (1 loc) · 76.5 KB
/
index.es.js.map
1
{"version":3,"file":"index.es.js","sources":["../src/helpers.js","../src/components/PreviewList.js","../src/components/SnackbarContentWrapper.js","../src/components/DropzoneAreaBase.js","../src/components/DropzoneArea.js","../src/components/DropzoneDialogBase.js","../src/components/DropzoneDialog.js"],"sourcesContent":["export function isImage(file) {\n if (file.type.split('/')[0] === 'image') {\n return true;\n }\n}\n\nexport function convertBytesToMbsOrKbs(filesize) {\n let size = '';\n if (filesize >= 1048576) {\n size = (filesize / 1048576) + ' megabytes';\n } else if (filesize >= 1024) {\n size = (filesize / 1024) + ' kilobytes';\n } else {\n size = filesize + ' bytes';\n }\n return size;\n}\n\nexport async function createFileFromUrl(url) {\n const response = await fetch(url);\n const data = await response.blob();\n const metadata = {type: data.type};\n const filename = url.replace(/\\?.+/, '').split('/').pop();\n return new File([data], filename, metadata);\n}\n\nexport function readFile(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => {\n resolve(event?.target?.result);\n };\n reader.onerror = (event) => {\n reader.abort();\n reject(event);\n };\n reader.readAsDataURL(file);\n });\n}\n","import Chip from '@mui/material/Chip';\nimport Fab from '@mui/material/Fab';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport {withStyles} from '@mui/styles';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport clsx from 'clsx';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nconst styles = ({palette, shape, spacing}) => ({\n root: {},\n imageContainer: {\n position: 'relative',\n zIndex: 10,\n textAlign: 'center',\n '&:hover $image': {\n opacity: 0.3,\n },\n '&:hover $removeButton': {\n opacity: 1,\n },\n },\n image: {\n height: 100,\n width: 'initial',\n maxWidth: '100%',\n color: palette.text.primary,\n transition: 'all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms',\n boxSizing: 'border-box',\n boxShadow: 'rgba(0, 0, 0, 0.12) 0 1px 6px, rgba(0, 0, 0, 0.12) 0 1px 4px',\n borderRadius: shape.borderRadius,\n zIndex: 5,\n opacity: 1,\n },\n removeButton: {\n transition: '.5s ease',\n position: 'absolute',\n opacity: 0,\n top: spacing(-1),\n right: spacing(-1),\n width: 40,\n height: 40,\n '&:focus': {\n opacity: 1,\n },\n },\n});\n\nfunction PreviewList({\n fileObjects,\n handleRemove,\n showFileNames,\n useChipsForPreview,\n previewChipProps,\n previewGridClasses,\n previewGridProps,\n classes,\n getPreviewIcon,\n}) {\n if (useChipsForPreview) {\n return (\n <Grid\n spacing={1}\n direction=\"row\"\n {...previewGridProps.container}\n container={true}\n className={clsx(classes.root, previewGridClasses.container)}\n >\n {fileObjects.map((fileObject, i) => {\n return (\n <Grid\n {...previewGridProps.item}\n item={true}\n key={`${fileObject.file?.name ?? 'file'}-${i}`}\n className={classes.imageContainer}\n >\n <Chip\n variant=\"outlined\"\n {...previewChipProps}\n label={fileObject.file.name}\n onDelete={handleRemove(i)}\n />\n </Grid>\n );\n })}\n </Grid>\n );\n }\n\n return (\n <Grid\n spacing={8}\n {...previewGridProps.container}\n container={true}\n className={clsx(classes.root, previewGridClasses.container)}\n >\n {fileObjects.map((fileObject, i) => {\n return (\n <Grid\n xs={4}\n {...previewGridProps.item}\n item={true}\n key={`${fileObject.file?.name ?? 'file'}-${i}`}\n className={clsx(classes.imageContainer, previewGridClasses.item)}\n >\n {getPreviewIcon(fileObject, classes)}\n\n {showFileNames && (\n <Typography variant=\"body1\" component=\"p\">\n {fileObject.file.name}\n </Typography>\n )}\n\n <Fab\n onClick={handleRemove(i)}\n aria-label=\"Delete\"\n className={classes.removeButton}\n >\n <DeleteIcon />\n </Fab>\n </Grid>\n );\n })}\n </Grid>\n );\n}\n\nPreviewList.propTypes = {\n classes: PropTypes.object.isRequired,\n fileObjects: PropTypes.arrayOf(PropTypes.object).isRequired,\n getPreviewIcon: PropTypes.func.isRequired,\n handleRemove: PropTypes.func.isRequired,\n previewChipProps: PropTypes.object,\n previewGridClasses: PropTypes.object,\n previewGridProps: PropTypes.object,\n showFileNames: PropTypes.bool,\n useChipsForPreview: PropTypes.bool,\n};\n\nexport default withStyles(styles, {name: 'MuiDropzonePreviewList'})(PreviewList);\n","import IconButton from '@mui/material/IconButton';\nimport SnackbarContent from '@mui/material/SnackbarContent';\nimport {withStyles} from '@mui/styles';\nimport CheckCircleIcon from '@mui/icons-material/CheckCircle';\nimport CloseIcon from '@mui/icons-material/Close';\nimport ErrorIcon from '@mui/icons-material/Error';\nimport InfoIcon from '@mui/icons-material/Info';\nimport WarningIcon from '@mui/icons-material/Warning';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n\nconst variantIcon = {\n success: CheckCircleIcon,\n warning: WarningIcon,\n error: ErrorIcon,\n info: InfoIcon,\n};\n\nconst styles = (theme) => ({\n successAlert: {\n backgroundColor: theme.palette.success.main,\n },\n errorAlert: {\n backgroundColor: theme.palette.error.main,\n },\n infoAlert: {\n backgroundColor: theme.palette.info.main,\n },\n warningAlert: {\n backgroundColor: theme.palette.warning.main,\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: theme.spacing(1),\n },\n },\n icon: {\n fontSize: 20,\n opacity: 0.9,\n },\n closeButton: {},\n});\n\nfunction SnackbarContentWrapper(props) {\n const {classes, className, message, onClose, variant, ...other} = props;\n const Icon = variantIcon[variant];\n\n return (\n <SnackbarContent\n className={clsx(classes[`${variant}Alert`], className)}\n aria-describedby=\"client-snackbar\"\n message={\n <span id=\"client-snackbar\" className={classes.message}>\n <Icon className={classes.icon} />\n {message}\n </span>\n }\n action={[\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n className={classes.closeButton}\n onClick={onClose}\n >\n <CloseIcon className={classes.icon} />\n </IconButton>,\n ]}\n {...other}\n />\n );\n}\n\nSnackbarContentWrapper.propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n message: PropTypes.node,\n onClose: PropTypes.func,\n variant: PropTypes.oneOf(['success', 'warning', 'error', 'info']).isRequired,\n};\n\nexport default withStyles(styles, {name: 'MuiDropzoneSnackbar'})(SnackbarContentWrapper);\n","import Snackbar from '@mui/material/Snackbar';\nimport Typography from '@mui/material/Typography';\nimport Button from '@material-ui/core/Button';\nimport {withStyles} from '@mui/styles';\nimport AttachFileIcon from '@mui/icons-material/AttachFile';\nimport CloudUploadIcon from '@mui/icons-material/CloudUpload';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport {Fragment} from 'react';\nimport Dropzone from 'react-dropzone';\nimport {convertBytesToMbsOrKbs, isImage, readFile} from '../helpers';\nimport PreviewList from './PreviewList';\nimport SnackbarContentWrapper from './SnackbarContentWrapper';\n\nconst styles = ({palette, shape, spacing}) => ({\n '@keyframes progress': {\n '0%': {\n backgroundPosition: '0 0',\n },\n '100%': {\n backgroundPosition: '-70px 0',\n },\n },\n root: {\n position: 'relative',\n width: '100%',\n minHeight: '250px',\n backgroundColor: palette.background.paper,\n border: 'dashed',\n borderColor: palette.divider,\n borderRadius: shape.borderRadius,\n boxSizing: 'border-box',\n cursor: 'pointer',\n overflow: 'hidden',\n },\n active: {\n animation: '$progress 2s linear infinite !important',\n // eslint-disable-next-line max-len\n backgroundImage: `repeating-linear-gradient(-45deg, ${palette.background.paper}, ${palette.background.paper} 25px, ${palette.divider} 25px, ${palette.divider} 50px)`,\n backgroundSize: '150% 100%',\n border: 'solid',\n borderColor: palette.primary.light,\n },\n invalid: {\n // eslint-disable-next-line max-len\n backgroundImage: `repeating-linear-gradient(-45deg, ${palette.error.light}, ${palette.error.light} 25px, ${palette.error.dark} 25px, ${palette.error.dark} 50px)`,\n borderColor: palette.error.main,\n },\n textContainer: {\n textAlign: 'center',\n },\n text: {\n marginBottom: spacing(3),\n marginTop: spacing(3),\n },\n icon: {\n width: 51,\n height: 51,\n color: palette.text.primary,\n },\n resetButton: {\n display: 'block',\n margin: '10px 0',\n },\n});\n\nconst defaultSnackbarAnchorOrigin = {\n horizontal: 'left',\n vertical: 'bottom',\n};\n\nconst defaultGetPreviewIcon = (fileObject, classes) => {\n if (isImage(fileObject.file)) {\n return (<img\n className={classes.image}\n role=\"presentation\"\n src={fileObject.data}\n />);\n }\n\n return <AttachFileIcon className={classes.image} />;\n};\n\n/**\n * This components creates a Material-UI Dropzone, with previews and snackbar notifications.\n */\nclass DropzoneAreaBase extends React.PureComponent {\n state = {\n openSnackBar: false,\n snackbarMessage: '',\n snackbarVariant: 'success',\n };\n\n notifyAlert() {\n const {onAlert} = this.props;\n const {openSnackBar, snackbarMessage, snackbarVariant} = this.state;\n if (openSnackBar && onAlert) {\n onAlert(snackbarMessage, snackbarVariant);\n }\n }\n\n handleDropAccepted = async(acceptedFiles, evt) => {\n const {fileObjects, filesLimit, getFileAddedMessage, getFileLimitExceedMessage, onAdd, onDrop} = this.props;\n\n if (filesLimit > 1 && fileObjects.length + acceptedFiles.length > filesLimit) {\n this.setState({\n openSnackBar: true,\n snackbarMessage: getFileLimitExceedMessage(filesLimit),\n snackbarVariant: 'error',\n }, this.notifyAlert);\n return;\n }\n\n // Notify Drop event\n if (onDrop) {\n onDrop(acceptedFiles, evt);\n }\n\n // Retrieve fileObjects data\n const fileObjs = await Promise.all(\n acceptedFiles.map(async(file) => {\n const data = await readFile(file);\n return {\n file,\n data,\n };\n })\n );\n\n // Notify added files\n if (onAdd) {\n onAdd(fileObjs);\n }\n\n // Display message\n const message = fileObjs.reduce((msg, fileObj) => msg + getFileAddedMessage(fileObj.file.name), '');\n this.setState({\n openSnackBar: true,\n snackbarMessage: message,\n snackbarVariant: 'success',\n }, this.notifyAlert);\n }\n\n handleDropRejected = (rejectedFiles, evt) => {\n const {\n acceptedFiles,\n filesLimit,\n fileObjects,\n getDropRejectMessage,\n getFileLimitExceedMessage,\n maxFileSize,\n onDropRejected,\n } = this.props;\n\n let message = '';\n if (fileObjects.length + rejectedFiles.length > filesLimit) {\n message = getFileLimitExceedMessage(filesLimit);\n } else {\n rejectedFiles.forEach((rejectedFile) => {\n message = getDropRejectMessage(rejectedFile, acceptedFiles, maxFileSize);\n });\n }\n\n if (onDropRejected) {\n onDropRejected(rejectedFiles, evt);\n }\n\n this.setState({\n openSnackBar: true,\n snackbarMessage: message,\n snackbarVariant: 'error',\n }, this.notifyAlert);\n }\n\n handleRemove = (fileIndex) => (event) => {\n event.stopPropagation();\n\n const {fileObjects, getFileRemovedMessage, onDelete} = this.props;\n\n // Find removed fileObject\n const removedFileObj = fileObjects[fileIndex];\n\n // Notify removed file\n if (onDelete) {\n onDelete(removedFileObj, fileIndex);\n }\n\n this.setState({\n openSnackBar: true,\n snackbarMessage: getFileRemovedMessage(removedFileObj.file.name),\n snackbarVariant: 'info',\n }, this.notifyAlert);\n };\n\n handleCloseSnackbar = () => {\n this.setState({\n openSnackBar: false,\n });\n };\n\n render() {\n const {\n acceptedFiles,\n alertSnackbarProps,\n classes,\n disableRejectionFeedback,\n dropzoneClass,\n dropzoneParagraphClass,\n dropzoneProps,\n dropzoneText,\n fileObjects,\n filesLimit,\n getPreviewIcon,\n Icon,\n inputProps,\n maxFileSize,\n previewChipProps,\n previewGridClasses,\n previewGridProps,\n previewText,\n showAlerts,\n showFileNames,\n showFileNamesInPreview,\n showPreviews,\n showPreviewsInDropzone,\n useChipsForPreview,\n reset,\n } = this.props;\n const {openSnackBar, snackbarMessage, snackbarVariant} = this.state;\n\n const acceptFiles = acceptedFiles?.join(',');\n const isMultiple = filesLimit > 1;\n const previewsVisible = showPreviews && fileObjects.length > 0;\n const previewsInDropzoneVisible = showPreviewsInDropzone && fileObjects.length > 0;\n\n return (\n <Fragment>\n <Dropzone\n {...dropzoneProps}\n accept={acceptFiles}\n onDropAccepted={this.handleDropAccepted}\n onDropRejected={this.handleDropRejected}\n maxSize={maxFileSize}\n multiple={isMultiple}\n >\n {({getRootProps, getInputProps, isDragActive, isDragReject}) => (\n <div\n {...getRootProps({\n className: clsx(\n classes.root,\n dropzoneClass,\n isDragActive && classes.active,\n (!disableRejectionFeedback && isDragReject) && classes.invalid,\n ),\n })}\n >\n <input {...getInputProps(inputProps)} />\n\n <div className={classes.textContainer}>\n <Typography\n variant=\"h5\"\n component=\"p\"\n className={clsx(classes.text, dropzoneParagraphClass)}\n >\n {dropzoneText}\n </Typography>\n {Icon ? (\n <Icon className={classes.icon} />\n ) : (\n <CloudUploadIcon className={classes.icon} />\n )}\n </div>\n\n {previewsInDropzoneVisible &&\n <PreviewList\n fileObjects={fileObjects}\n handleRemove={this.handleRemove}\n getPreviewIcon={getPreviewIcon}\n showFileNames={showFileNames}\n useChipsForPreview={useChipsForPreview}\n previewChipProps={previewChipProps}\n previewGridClasses={previewGridClasses}\n previewGridProps={previewGridProps}\n />\n }\n </div>\n )}\n </Dropzone>\n\n {\n reset && (\n React.isValidElement(reset) ?\n reset :\n <Button\n onClick={reset.onClick}\n variant=\"outlined\"\n className={classes.resetButton}\n >\n {reset.text || 'reset'}\n </Button>\n )\n }\n\n {previewsVisible &&\n <Fragment>\n <Typography variant=\"subtitle1\" component=\"span\">\n {previewText}\n </Typography>\n\n <PreviewList\n fileObjects={fileObjects}\n handleRemove={this.handleRemove}\n getPreviewIcon={getPreviewIcon}\n showFileNames={showFileNamesInPreview}\n useChipsForPreview={useChipsForPreview}\n previewChipProps={previewChipProps}\n previewGridClasses={previewGridClasses}\n previewGridProps={previewGridProps}\n />\n </Fragment>\n }\n\n {((typeof showAlerts === 'boolean' && showAlerts) ||\n (Array.isArray(showAlerts) && showAlerts.includes(snackbarVariant))) &&\n <Snackbar\n anchorOrigin={defaultSnackbarAnchorOrigin}\n autoHideDuration={6000}\n {...alertSnackbarProps}\n open={openSnackBar}\n onClose={this.handleCloseSnackbar}\n >\n <SnackbarContentWrapper\n onClose={this.handleCloseSnackbar}\n variant={snackbarVariant}\n message={snackbarMessage}\n />\n </Snackbar>\n }\n </Fragment>\n );\n }\n}\n\nDropzoneAreaBase.defaultProps = {\n acceptedFiles: [],\n filesLimit: 3,\n fileObjects: [],\n maxFileSize: 3000000,\n dropzoneText: 'Drag and drop a file here or click',\n previewText: 'Preview:',\n disableRejectionFeedback: false,\n showPreviews: false, // By default previews show up under in the dialog and inside in the standalone\n showPreviewsInDropzone: true,\n showFileNames: false,\n showFileNamesInPreview: false,\n useChipsForPreview: false,\n previewChipProps: {},\n previewGridClasses: {},\n previewGridProps: {},\n reset: undefined,\n showAlerts: true,\n alertSnackbarProps: {\n anchorOrigin: {\n horizontal: 'left',\n vertical: 'bottom',\n },\n autoHideDuration: 6000,\n },\n getFileLimitExceedMessage: (filesLimit) => (`Maximum allowed number of files exceeded. Only ${filesLimit} allowed`),\n getFileAddedMessage: (fileName) => (`File ${fileName} successfully added.`),\n getPreviewIcon: defaultGetPreviewIcon,\n getFileRemovedMessage: (fileName) => (`File ${fileName} removed.`),\n getDropRejectMessage: (rejectedFile, acceptedFiles, maxFileSize) => {\n let message = `File ${rejectedFile.name} was rejected. `;\n if (!acceptedFiles.includes(rejectedFile.type)) {\n message += 'File type not supported. ';\n }\n if (rejectedFile.size > maxFileSize) {\n message += 'File is too big. Size limit is ' + convertBytesToMbsOrKbs(maxFileSize) + '. ';\n }\n return message;\n },\n};\n\nexport const FileObjectShape = PropTypes.shape({\n file: PropTypes.object,\n data: PropTypes.any,\n});\n\nDropzoneAreaBase.propTypes = {\n /** @ignore */\n classes: PropTypes.object.isRequired,\n /** A list of file types to accept.\n * @see See [here](https://react-dropzone.js.org/#section-accepting-specific-file-types) for more details.\n */\n acceptedFiles: PropTypes.arrayOf(PropTypes.string),\n /** Maximum number of files that can be loaded into the dropzone. */\n filesLimit: PropTypes.number,\n /** Icon to be displayed inside the dropzone area. */\n Icon: PropTypes.elementType,\n /** Currently loaded files. */\n fileObjects: PropTypes.arrayOf(FileObjectShape),\n /** Maximum file size (in bytes) that the dropzone will accept. */\n maxFileSize: PropTypes.number,\n /** Text inside the dropzone. */\n dropzoneText: PropTypes.string,\n /** Custom CSS class name for dropzone container. */\n dropzoneClass: PropTypes.string,\n /** Custom CSS class name for text inside the container. */\n dropzoneParagraphClass: PropTypes.string,\n /** Disable feedback effect when dropping rejected files. */\n disableRejectionFeedback: PropTypes.bool,\n /** Shows previews **BELOW** the dropzone. */\n showPreviews: PropTypes.bool,\n /** Shows preview **INSIDE** the dropzone area. */\n showPreviewsInDropzone: PropTypes.bool,\n /** Shows file name under the dropzone image. */\n showFileNames: PropTypes.bool,\n /** Shows file name under the image. */\n showFileNamesInPreview: PropTypes.bool,\n /** Uses deletable Material-UI Chip components to display file names. */\n useChipsForPreview: PropTypes.bool,\n /**\n * Props to pass to the Material-UI Chip components.<br/>Requires `useChipsForPreview` prop to be `true`.\n *\n * @see See [Material-UI Chip](https://material-ui.com/api/chip/#props) for available values.\n */\n previewChipProps: PropTypes.object,\n /**\n * Custom CSS classNames for preview Grid components.<br/>\n * Should be in the form {container: string, item: string, image: string}.\n */\n previewGridClasses: PropTypes.object,\n /**\n * Props to pass to the Material-UI Grid components.<br/>\n * Should be in the form {container: GridProps, item: GridProps}.\n *\n * @see See [Material-UI Grid](https://material-ui.com/api/grid/#props) for available GridProps values.\n */\n previewGridProps: PropTypes.object,\n /** The label for the file preview section. */\n previewText: PropTypes.string,\n /**\n * The node of button to clear dropzone.\n *\n * - can be a node to mount in a placeholder.\n * - can be an object:\n * - text (string) - text of the button\n * - onClick (function) - callback fired when reset button clicked\n */\n reset: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.shape({\n text: PropTypes.string,\n onClick: PropTypes.func,\n }),\n ]),\n /**\n * Shows styled Material-UI Snackbar when files are dropped, deleted or rejected.\n *\n * - can be a boolean (\"global\" `true` or `false` for all alerts).\n * - can be an array, with values 'error', 'info', 'success' to select to view only certain alerts:\n * - showAlerts={['error']} for only errors.\n * - showAlerts={['error', 'info']} for both errors and info.\n * - showAlerts={['error', 'success', 'info']} is same as showAlerts={true}.\n * - showAlerts={[]} is same as showAlerts={false}.\n */\n showAlerts: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.arrayOf(PropTypes.oneOf(['error', 'success', 'info'])),\n ]),\n /**\n * Props to pass to the Material-UI Snackbar components.<br/>Requires `showAlerts` prop to be `true`.\n *\n * @see See [Material-UI Snackbar](https://material-ui.com/api/snackbar/#props) for available values.\n */\n alertSnackbarProps: PropTypes.object,\n /**\n * Props to pass to the Dropzone component.\n *\n * @see See [Dropzone props](https://react-dropzone.js.org/#src) for available values.\n */\n dropzoneProps: PropTypes.object,\n /**\n * Attributes applied to the input element.\n *\n * @see See [MDN Input File attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Additional_attributes) for available values.\n */\n inputProps: PropTypes.object,\n /**\n * Get alert message to display when files limit is exceed.\n *\n * *Default*: \"Maximum allowed number of files exceeded. Only ${filesLimit} allowed\"\n *\n * @param {number} filesLimit The `filesLimit` currently set for the component.\n */\n getFileLimitExceedMessage: PropTypes.func,\n /**\n * Get alert message to display when a new file is added.\n *\n * *Default*: \"File ${fileName} successfully added.\"\n *\n * @param {string} fileName The newly added file name.\n */\n getFileAddedMessage: PropTypes.func,\n /**\n * Get alert message to display when a file is removed.\n *\n * *Default*: \"File ${fileName} removed.\"\n *\n * @param {string} fileName The name of the removed file.\n */\n getFileRemovedMessage: PropTypes.func,\n /**\n * Get alert message to display when a file is rejected onDrop.\n *\n * *Default*: \"File ${rejectedFile.name} was rejected.\"\n *\n * @param {Object} rejectedFile The file that got rejected\n * @param {string[]} acceptedFiles The `acceptedFiles` prop currently set for the component\n * @param {number} maxFileSize The `maxFileSize` prop currently set for the component\n */\n getDropRejectMessage: PropTypes.func,\n /**\n * A function which determines which icon to display for a file preview.\n *\n * *Default*: If its an image then displays a preview the image, otherwise it will display an attachment icon\n *\n * @param {FileObject} objectFile The file which the preview will belong to\n * @param {Object} classes The classes for the file preview icon, in the default case we use the 'image' className.\n */\n getPreviewIcon: PropTypes.func,\n /**\n * Fired when new files are added to dropzone.\n *\n * @param {FileObject[]} newFiles The new files added to the dropzone.\n */\n onAdd: PropTypes.func,\n /**\n * Fired when a file is deleted from the previews panel.\n *\n * @param {FileObject} deletedFileObject The file that was removed.\n * @param {number} index The index of the removed file object.\n */\n onDelete: PropTypes.func,\n /**\n * Fired when the user drops files into the dropzone.\n *\n * @param {File[]} droppedFiles All the files dropped into the dropzone.\n * @param {Event} event The react-dropzone drop event.\n */\n onDrop: PropTypes.func,\n /**\n * Fired when a file is rejected because of wrong file type, size or goes beyond the filesLimit.\n *\n * @param {File[]} rejectedFiles All the rejected files.\n * @param {Event} event The react-dropzone drop event.\n */\n onDropRejected: PropTypes.func,\n /**\n * Fired when an alert is triggered.\n *\n * @param {string} message Alert message.\n * @param {string} variant One of \"error\", \"info\", \"success\".\n */\n onAlert: PropTypes.func,\n};\n\nexport default withStyles(styles, {name: 'MuiDropzoneArea'})(DropzoneAreaBase);\n","import PropTypes from 'prop-types';\nimport * as React from 'react';\n\nimport {createFileFromUrl, readFile} from '../helpers';\n\nimport DropzoneAreaBase from './DropzoneAreaBase';\n\nconst splitDropzoneAreaProps = (props) => {\n const {clearOnUnmount, initialFiles, onChange, onDelete, ...dropzoneAreaProps} = props;\n return [{clearOnUnmount, initialFiles, onChange, onDelete}, dropzoneAreaProps];\n};\n\n/**\n * This components creates an uncontrolled Material-UI Dropzone, with previews and snackbar notifications.\n *\n * It supports all props of `DropzoneAreaBase` but keeps the files state internally.\n *\n * **Note** To listen to file changes use `onChange` event handler and notice that `onDelete` returns a `File` instance instead of `FileObject`.\n */\nclass DropzoneArea extends React.PureComponent {\n state = {\n fileObjects: [],\n }\n\n componentDidMount() {\n this.loadInitialFiles();\n }\n\n componentWillUnmount() {\n const {clearOnUnmount} = this.props;\n\n if (clearOnUnmount) {\n this.setState({\n fileObjects: [],\n }, this.notifyFileChange);\n }\n }\n\n notifyFileChange = () => {\n const {onChange} = this.props;\n const {fileObjects} = this.state;\n\n if (onChange) {\n onChange(fileObjects.map((fileObject) => fileObject.file));\n }\n }\n\n loadInitialFiles = async() => {\n const {initialFiles} = this.props;\n try {\n const fileObjs = await Promise.all(\n initialFiles.map(async(initialFile) => {\n let file;\n if (typeof initialFile === 'string' ) {\n file = await createFileFromUrl(initialFile);\n } else {\n file = initialFile;\n }\n const data = await readFile(file);\n\n return {\n file,\n data,\n };\n })\n );\n\n this.setState((state) => ({\n fileObjects: [].concat(\n state.fileObjects,\n fileObjs\n ),\n }), this.notifyFileChange);\n } catch (err) {\n console.log(err);\n }\n }\n\n addFiles = async(newFileObjects) => {\n const {filesLimit} = this.props;\n // Update component state\n this.setState((state) => {\n // Handle a single file\n if (filesLimit <= 1) {\n return {\n fileObjects: [].concat(newFileObjects[0]),\n };\n }\n\n // Handle multiple files\n return {\n fileObjects: [].concat(\n state.fileObjects,\n newFileObjects\n ),\n };\n }, this.notifyFileChange);\n }\n\n deleteFile = (removedFileObj, removedFileObjIdx) => {\n event.stopPropagation();\n\n const {onDelete} = this.props;\n const {fileObjects} = this.state;\n\n // Calculate remaining fileObjects array\n const remainingFileObjs = fileObjects.filter((fileObject, i) => {\n return i !== removedFileObjIdx;\n });\n\n // Notify removed file\n if (onDelete) {\n onDelete(removedFileObj.file, removedFileObjIdx);\n }\n\n // Update local state\n this.setState({\n fileObjects: remainingFileObjs,\n }, this.notifyFileChange);\n }\n\n render() {\n const [, dropzoneAreaProps] = splitDropzoneAreaProps(this.props);\n const {fileObjects} = this.state;\n\n return (\n <DropzoneAreaBase\n {...dropzoneAreaProps}\n fileObjects={fileObjects}\n onAdd={this.addFiles}\n onDelete={this.deleteFile}\n />\n );\n }\n}\n\nDropzoneArea.defaultProps = {\n clearOnUnmount: true,\n filesLimit: 3,\n initialFiles: [],\n};\n\nDropzoneArea.propTypes = {\n ...DropzoneAreaBase.propTypes,\n /** Clear uploaded files when component is unmounted. */\n clearOnUnmount: PropTypes.bool,\n /** List containing File objects or URL strings.<br/>\n * **Note:** Please take care of CORS.\n */\n initialFiles: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.any,\n ])\n ),\n /** Maximum number of files that can be loaded into the dropzone. */\n filesLimit: PropTypes.number,\n /**\n * Fired when the files inside dropzone change.\n *\n * @param {File[]} loadedFiles All the files currently loaded into the dropzone.\n */\n onChange: PropTypes.func,\n /**\n * Fired when a file is deleted from the previews panel.\n *\n * @param {File} deletedFile The file that was removed.\n * @param {number} index The index of the removed file object.\n */\n onDelete: PropTypes.func,\n};\n\nexport default DropzoneArea;\n","import Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n\nimport DropzoneAreaBase from './DropzoneAreaBase';\n\n// Split props related to DropzoneDialog from DropzoneArea ones\nfunction splitDropzoneDialogProps(allProps) {\n const {\n cancelButtonText,\n dialogProps,\n dialogTitle,\n fullWidth,\n maxWidth,\n onClose,\n onSave,\n open,\n submitButtonText,\n ...dropzoneAreaProps\n } = allProps;\n\n return [\n {\n cancelButtonText,\n dialogProps,\n dialogTitle,\n fullWidth,\n maxWidth,\n onClose,\n onSave,\n open,\n submitButtonText,\n },\n dropzoneAreaProps,\n ];\n}\n\n/**\n * This component provides the DropzoneArea inside of a Material-UI Dialog.\n *\n * It supports all the Props and Methods from `DropzoneAreaBase`.\n */\nclass DropzoneDialogBase extends React.PureComponent {\n render() {\n const [dropzoneDialogProps, dropzoneAreaProps] = splitDropzoneDialogProps(this.props);\n const {\n cancelButtonText,\n dialogProps,\n dialogTitle,\n fullWidth,\n maxWidth,\n onClose,\n onSave,\n open,\n submitButtonText,\n } = dropzoneDialogProps;\n\n // Submit button state\n const submitDisabled = dropzoneAreaProps.fileObjects.length === 0;\n\n return (\n <Dialog\n {...dialogProps}\n fullWidth={fullWidth}\n maxWidth={maxWidth}\n onClose={onClose}\n open={open}\n >\n <DialogTitle>{dialogTitle}</DialogTitle>\n\n <DialogContent>\n <DropzoneAreaBase\n {...dropzoneAreaProps}\n />\n </DialogContent>\n\n <DialogActions>\n <Button\n color=\"primary\"\n onClick={onClose}\n >\n {cancelButtonText}\n </Button>\n\n <Button\n color=\"primary\"\n disabled={submitDisabled}\n onClick={onSave}\n >\n {submitButtonText}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n}\n\nDropzoneDialogBase.defaultProps = {\n open: false,\n dialogTitle: 'Upload file',\n dialogProps: {},\n fullWidth: true,\n maxWidth: 'sm',\n cancelButtonText: 'Cancel',\n submitButtonText: 'Submit',\n showPreviews: true,\n showPreviewsInDropzone: false,\n showFileNamesInPreview: true,\n};\n\nDropzoneDialogBase.propTypes = {\n ...DropzoneAreaBase.propTypes,\n /** Sets whether the dialog is open or closed. */\n open: PropTypes.bool,\n /** The Dialog title. */\n dialogTitle: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n /**\n * Props to pass to the Material-UI Dialog components.\n * @see See [Material-UI Dialog](https://material-ui.com/api/dialog/#props) for available values.\n */\n dialogProps: PropTypes.object,\n /**\n * If `true`, the dialog stretches to `maxWidth`.<br/>\n * Notice that the dialog width grow is limited by the default margin.\n */\n fullWidth: PropTypes.bool,\n /**\n * Determine the max-width of the dialog. The dialog width grows with the size of the screen.<br/>\n * Set to `false` to disable `maxWidth`.\n */\n maxWidth: PropTypes.string,\n /** Cancel button text in dialog. */\n cancelButtonText: PropTypes.string,\n /** Submit button text in dialog. */\n submitButtonText: PropTypes.string,\n /**\n * Fired when the modal is closed.\n *\n * @param {SyntheticEvent} event The react `SyntheticEvent`\n */\n onClose: PropTypes.func,\n /**\n * Fired when the user clicks the Submit button.\n *\n * @param {SyntheticEvent} event The react `SyntheticEvent`\n */\n onSave: PropTypes.func,\n /**\n * Shows previews **BELOW** the dropzone.<br/>\n * **Note:** By default previews show up under in the Dialog and inside in the standalone.\n */\n showPreviews: PropTypes.bool,\n /** Shows preview **INSIDE** the dropzone area. */\n showPreviewsInDropzone: PropTypes.bool,\n /** Shows file name under the image. */\n showFileNamesInPreview: PropTypes.bool,\n};\n\nexport default DropzoneDialogBase;\n","import PropTypes from 'prop-types';\nimport * as React from 'react';\n\nimport {createFileFromUrl, readFile} from '../helpers';\n\nimport DropzoneDialogBase from './DropzoneDialogBase';\n\n\n/**\n * This component provides an uncontrolled version of the DropzoneDialogBase component.\n *\n * It supports all the Props and Methods from `DropzoneDialogBase` but keeps the files state internally.\n *\n * **Note** The `onSave` handler also returns `File[]` with all the accepted files.\n */\nclass DropzoneDialog extends React.PureComponent {\n state = {\n fileObjects: [],\n }\n\n componentDidMount() {\n this.loadInitialFiles();\n }\n\n componentWillUnmount() {\n const {clearOnUnmount} = this.props;\n\n if (clearOnUnmount) {\n this.setState({\n fileObjects: [],\n }, this.notifyFileChange);\n }\n }\n\n notifyFileChange = () => {\n const {onChange} = this.props;\n const {fileObjects} = this.state;\n\n if (onChange) {\n onChange(fileObjects.map((fileObject) => fileObject.file));\n }\n }\n\n loadInitialFiles = async() => {\n const {initialFiles} = this.props;\n try {\n const fileObjs = await Promise.all(\n initialFiles.map(async(initialFile) => {\n let file;\n if (typeof initialFile === 'string' ) {\n file = await createFileFromUrl(initialFile);\n } else {\n file = initialFile;\n }\n const data = await readFile(file);\n\n return {\n file,\n data,\n };\n })\n );\n\n this.setState((state) => ({\n fileObjects: [].concat(\n state.fileObjects,\n fileObjs\n ),\n }), this.notifyFileChange);\n } catch (err) {\n console.log(err);\n }\n }\n\n addFiles = async(newFileObjects) => {\n const {filesLimit} = this.props;\n // Update component state\n this.setState((state) => {\n // Handle a single file\n if (filesLimit <= 1) {\n return {\n fileObjects: [].concat(newFileObjects[0]),\n };\n }\n\n // Handle multiple files\n return {\n fileObjects: [].concat(\n state.fileObjects,\n newFileObjects\n ),\n };\n }, this.notifyFileChange);\n }\n\n deleteFile = (removedFileObj, removedFileObjIdx) => {\n event.stopPropagation();\n\n const {onDelete} = this.props;\n const {fileObjects} = this.state;\n\n // Calculate remaining fileObjects array\n const remainingFileObjs = fileObjects.filter((fileObject, i) => {\n return i !== removedFileObjIdx;\n });\n\n // Notify removed file\n if (onDelete) {\n onDelete(removedFileObj.file);\n }\n\n // Update local state\n this.setState({\n fileObjects: remainingFileObjs,\n }, this.notifyFileChange);\n }\n\n handleClose = (evt) => {\n const {clearOnUnmount, onClose} = this.props;\n\n if (onClose) {\n onClose(evt);\n }\n\n if (clearOnUnmount) {\n this.setState({\n fileObjects: [],\n }, this.notifyFileChange);\n }\n }\n\n handleSave = (evt) => {\n const {clearOnUnmount, onSave} = this.props;\n const {fileObjects} = this.state;\n\n if (onSave) {\n onSave(fileObjects.map((fileObject) => fileObject.file), evt);\n }\n\n if (clearOnUnmount) {\n this.setState({\n fileObjects: [],\n }, this.notifyFileChange);\n }\n }\n\n render() {\n const {fileObjects} = this.state;\n\n return (\n <DropzoneDialogBase\n {...this.props}\n fileObjects={fileObjects}\n onAdd={this.addFiles}\n onDelete={this.deleteFile}\n onClose={this.handleClose}\n onSave={this.handleSave}\n />\n );\n }\n}\n\nDropzoneDialog.defaultProps = {\n clearOnUnmount: true,\n filesLimit: 3,\n initialFiles: [],\n};\n\nDropzoneDialog.propTypes = {\n ...DropzoneDialogBase.propTypes,\n /** Clear uploaded files when component is unmounted. */\n clearOnUnmount: PropTypes.bool,\n /** Maximum number of files that can be loaded into the dropzone. */\n filesLimit: PropTypes.number,\n /** List containing File objects or URL strings.<br/>\n * **Note:** Please take care of CORS.\n */\n initialFiles: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.any,\n ])\n ),\n /**\n * Fired when the user clicks the Submit button.\n *\n * @param {File[]} files All the files currently inside the Dropzone.\n * @param {SyntheticEvent} event The react `SyntheticEvent`.\n */\n onSave: PropTypes.func,\n};\n\nexport default DropzoneDialog;\n"],"names":["isImage","file","type","split","convertBytesToMbsOrKbs","filesize","size","createFileFromUrl","url","fetch","response","blob","data","metadata","filename","replace","pop","File","readFile","Promise","resolve","reject","reader","FileReader","onload","event","target","result","onerror","abort","readAsDataURL","styles","palette","shape","spacing","root","imageContainer","position","zIndex","textAlign","opacity","image","height","width","maxWidth","color","text","primary","transition","boxSizing","boxShadow","borderRadius","removeButton","top","right","React.createElement","PreviewList","fileObjects","handleRemove","showFileNames","useChipsForPreview","previewChipProps","previewGridClasses","previewGridProps","classes","getPreviewIcon","container","clsx","map","fileObject","i","item","name","propTypes","PropTypes","object","isRequired","arrayOf","func","bool","withStyles","variantIcon","success","CheckCircleIcon","warning","WarningIcon","error","ErrorIcon","info","InfoIcon","theme","successAlert","backgroundColor","main","errorAlert","infoAlert","warningAlert","message","display","alignItems","marginRight","icon","fontSize","closeButton","SnackbarContentWrapper","props","className","onClose","variant","other","Icon","string","node","oneOf","backgroundPosition","minHeight","background","paper","border","borderColor","divider","cursor","overflow","active","animation","backgroundImage","backgroundSize","light","invalid","dark","textContainer","marginBottom","marginTop","resetButton","margin","defaultSnackbarAnchorOrigin","horizontal","vertical","defaultGetPreviewIcon","DropzoneAreaBase","state","openSnackBar","snackbarMessage","snackbarVariant","handleDropAccepted","acceptedFiles","evt","filesLimit","getFileAddedMessage","getFileLimitExceedMessage","onAdd","onDrop","length","setState","notifyAlert","all","fileObjs","reduce","msg","fileObj","handleDropRejected","rejectedFiles","getDropRejectMessage","maxFileSize","onDropRejected","forEach","rejectedFile","fileIndex","stopPropagation","getFileRemovedMessage","onDelete","removedFileObj","handleCloseSnackbar","onAlert","alertSnackbarProps","disableRejectionFeedback","dropzoneClass","dropzoneParagraphClass","dropzoneProps","dropzoneText","inputProps","previewText","showAlerts","showFileNamesInPreview","showPreviews","showPreviewsInDropzone","reset","acceptFiles","join","isMultiple","previewsVisible","previewsInDropzoneVisible","getRootProps","getInputProps","isDragActive","isDragReject","React","onClick","Array","isArray","includes","defaultProps","undefined","anchorOrigin","autoHideDuration","fileName","FileObjectShape","any","number","elementType","oneOfType","splitDropzoneAreaProps","clearOnUnmount","initialFiles","onChange","dropzoneAreaProps","DropzoneArea","notifyFileChange","loadInitialFiles","initialFile","concat","console","log","addFiles","newFileObjects","deleteFile","removedFileObjIdx","remainingFileObjs","filter","splitDropzoneDialogProps","allProps","cancelButtonText","dialogProps","dialogTitle","fullWidth","onSave","open","submitButtonText","DropzoneDialogBase","dropzoneDialogProps","submitDisabled","Button","element","DropzoneDialog","handleClose","handleSave"],"mappings":"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"}