forked from Yuvaleros/material-ui-dropzone
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js.map
1 lines (1 loc) · 74.6 KB
/
index.js.map
1
{"version":3,"file":"index.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 // I know, not technically correct...\n if (filesize >= 1000000) {\n size = (filesize / 1000000) + ' megabytes';\n } else if (filesize >= 1000) {\n size = (filesize / 1000) + ' 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 '@material-ui/core/Chip';\nimport Fab from '@material-ui/core/Fab';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport {withStyles} from '@material-ui/core/styles';\nimport DeleteIcon from '@material-ui/icons/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 '@material-ui/core/IconButton';\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\nimport {withStyles} from '@material-ui/core/styles';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CloseIcon from '@material-ui/icons/Close';\nimport ErrorIcon from '@material-ui/icons/Error';\nimport InfoIcon from '@material-ui/icons/Info';\nimport WarningIcon from '@material-ui/icons/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 '@material-ui/core/Snackbar';\nimport Typography from '@material-ui/core/Typography';\nimport {withStyles} from '@material-ui/core/styles';\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport CloudUploadIcon from '@material-ui/icons/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});\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 } = 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 {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 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 * 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);\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 */\n onDelete: PropTypes.func,\n};\n\nexport default DropzoneArea;\n","import Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/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.string,\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","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","acceptFiles","join","isMultiple","previewsVisible","previewsInDropzoneVisible","Fragment","getRootProps","getInputProps","isDragActive","isDragReject","Array","isArray","includes","React","defaultProps","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","DropzoneDialog","handleClose","handleSave"],"mappings":"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"}