\n )}\n \n\n {previewsVisible &&\n \n \n {previewText}\n \n\n \n \n }\n\n {((typeof showAlerts === 'boolean' && showAlerts) ||\n (Array.isArray(showAlerts) && showAlerts.includes(snackbarVariant))) &&\n \n \n \n }\n \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 or Element inside the dropzone. */\n dropzoneText: PropTypes.string | PropTypes.element,\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. 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. \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. \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. 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 \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. \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} deletedFileIndex The index of 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 \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`. \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. \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. \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 \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. \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","element","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,OAAT,CAAiBC,IAAjB,EAAuB;AAC1B,MAAIA,IAAI,CAACC,IAAL,CAAUC,KAAV,CAAgB,GAAhB,EAAqB,CAArB,MAA4B,OAAhC,EAAyC;AACrC,WAAO,IAAP;AACH;AACJ;AAEM,SAASC,sBAAT,CAAgCC,QAAhC,EAA0C;AAC7C,MAAIC,IAAI,GAAG,EAAX;;AACA,MAAID,QAAQ,IAAI,OAAhB,EAAyB;AACrBC,IAAAA,IAAI,GAAID,QAAQ,GAAG,OAAZ,GAAuB,YAA9B;AACH,GAFD,MAEO,IAAIA,QAAQ,IAAI,IAAhB,EAAsB;AACzBC,IAAAA,IAAI,GAAID,QAAQ,GAAG,IAAZ,GAAoB,YAA3B;AACH,GAFM,MAEA;AACHC,IAAAA,IAAI,GAAGD,QAAQ,GAAG,QAAlB;AACH;;AACD,SAAOC,IAAP;AACH;SAEqBC,iBAAtB;AAAA;AAAA;;;gFAAO,iBAAiCC,GAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBACoBC,KAAK,CAACD,GAAD,CADzB;;AAAA;AACGE,YAAAA,QADH;AAAA;AAAA,mBAEgBA,QAAQ,CAACC,IAAT,EAFhB;;AAAA;AAEGC,YAAAA,IAFH;AAGGC,YAAAA,QAHH,GAGc;AAACX,cAAAA,IAAI,EAAEU,IAAI,CAACV;AAAZ,aAHd;AAIGY,YAAAA,QAJH,GAIcN,GAAG,CAACO,OAAJ,CAAY,MAAZ,EAAoB,EAApB,EAAwBZ,KAAxB,CAA8B,GAA9B,EAAmCa,GAAnC,EAJd;AAAA,6CAKI,IAAIC,IAAJ,CAAS,CAACL,IAAD,CAAT,EAAiBE,QAAjB,EAA2BD,QAA3B,CALJ;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AAQA,SAASK,QAAT,CAAkBjB,IAAlB,EAAwB;AAC3B,SAAO,IAAIkB,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACpC,QAAMC,MAAM,GAAG,IAAIC,UAAJ,EAAf;;AACAD,IAAAA,MAAM,CAACE,MAAP,GAAgB,UAACC,KAAD,EAAW;AAAA;;AACvBL,MAAAA,OAAO,CAACK,KAAD,aAACA,KAAD,wCAACA,KAAK,CAAEC,MAAR,kDAAC,cAAeC,MAAhB,CAAP;AACH,KAFD;;AAGAL,IAAAA,MAAM,CAACM,OAAP,GAAiB,UAACH,KAAD,EAAW;AACxBH,MAAAA,MAAM,CAACO,KAAP;AACAR,MAAAA,MAAM,CAACI,KAAD,CAAN;AACH,KAHD;;AAIAH,IAAAA,MAAM,CAACQ,aAAP,CAAqB7B,IAArB;AACH,GAVM,CAAP;AAWH;;AC5BD,IAAM8B,MAAM,GAAG,SAATA,MAAS;AAAA,MAAEC,OAAF,QAAEA,OAAF;AAAA,MAAWC,KAAX,QAAWA,KAAX;AAAA,MAAkBC,OAAlB,QAAkBA,OAAlB;AAAA,SAAgC;AAC3CC,IAAAA,IAAI,EAAE,EADqC;AAE3CC,IAAAA,cAAc,EAAE;AACZC,MAAAA,QAAQ,EAAE,UADE;AAEZC,MAAAA,MAAM,EAAE,EAFI;AAGZC,MAAAA,SAAS,EAAE,QAHC;AAIZ,wBAAkB;AACdC,QAAAA,OAAO,EAAE;AADK,OAJN;AAOZ,+BAAyB;AACrBA,QAAAA,OAAO,EAAE;AADY;AAPb,KAF2B;AAa3CC,IAAAA,KAAK,EAAE;AACHC,MAAAA,MAAM,EAAE,GADL;AAEHC,MAAAA,KAAK,EAAE,SAFJ;AAGHC,MAAAA,QAAQ,EAAE,MAHP;AAIHC,MAAAA,KAAK,EAAEb,OAAO,CAACc,IAAR,CAAaC,OAJjB;AAKHC,MAAAA,UAAU,EAAE,8CALT;AAMHC,MAAAA,SAAS,EAAE,YANR;AAOHC,MAAAA,SAAS,EAAE,8DAPR;AAQHC,MAAAA,YAAY,EAAElB,KAAK,CAACkB,YARjB;AASHb,MAAAA,MAAM,EAAE,CATL;AAUHE,MAAAA,OAAO,EAAE;AAVN,KAboC;AAyB3CY,IAAAA,YAAY,EAAE;AACVJ,MAAAA,UAAU,EAAE,UADF;AAEVX,MAAAA,QAAQ,EAAE,UAFA;AAGVG,MAAAA,OAAO,EAAE,CAHC;AAIVa,MAAAA,GAAG,EAAEnB,OAAO,CAAC,CAAC,CAAF,CAJF;AAKVoB,MAAAA,KAAK,EAAEpB,OAAO,CAAC,CAAC,CAAF,CALJ;AAMVS,MAAAA,KAAK,EAAE,EANG;AAOVD,MAAAA,MAAM,EAAE,EAPE;AAQV,iBAAW;AACPF,QAAAA,OAAO,EAAE;AADF;AARD;AAzB6B,GAAhC;AAAA,CAAf;;yBA6G4Be,oBAAC,UAAD;;AAtE5B,SAASC,WAAT,QAUG;AAAA,MATCC,WASD,SATCA,WASD;AAAA,MARCC,YAQD,SARCA,YAQD;AAAA,MAPCC,aAOD,SAPCA,aAOD;AAAA,MANCC,kBAMD,SANCA,kBAMD;AAAA,MALCC,gBAKD,SALCA,gBAKD;AAAA,MAJCC,kBAID,SAJCA,kBAID;AAAA,MAHCC,gBAGD,SAHCA,gBAGD;AAAA,MAFCC,OAED,SAFCA,OAED;AAAA,MADCC,cACD,SADCA,cACD;;AACC,MAAIL,kBAAJ,EAAwB;AACpB,wBACIL,oBAAC,IAAD;AACI,MAAA,OAAO,EAAE,CADb;AAEI,MAAA,SAAS,EAAC;AAFd,OAGQQ,gBAAgB,CAACG,SAHzB;AAII,MAAA,SAAS,EAAE,IAJf;AAKI,MAAA,SAAS,EAAEC,IAAI,CAACH,OAAO,CAAC7B,IAAT,EAAe2B,kBAAkB,CAACI,SAAlC;AALnB,QAOKT,WAAW,CAACW,GAAZ,CAAgB,UAACC,UAAD,EAAaC,CAAb,EAAmB;AAAA;;AAChC,0BACIf,oBAAC,IAAD,eACQQ,gBAAgB,CAACQ,IADzB;AAEI,QAAA,IAAI,EAAE,IAFV;AAGI,QAAA,GAAG,yDAAKF,UAAU,CAACpE,IAAhB,qDAAK,iBAAiBuE,IAAtB,yEAA8B,MAA9B,cAAwCF,CAAxC,CAHP;AAII,QAAA,SAAS,EAAEN,OAAO,CAAC5B;AAJvB,uBAMImB,oBAAC,IAAD;AACI,QAAA,OAAO,EAAC;AADZ,SAEQM,gBAFR;AAGI,QAAA,KAAK,EAAEQ,UAAU,CAACpE,IAAX,CAAgBuE,IAH3B;AAII,QAAA,QAAQ,EAAEd,YAAY,CAACY,CAAD;AAJ1B,SANJ,CADJ;AAeH,KAhBA,CAPL,CADJ;AA2BH;;AAED,sBACIf,oBAAC,IAAD;AACI,IAAA,OAAO,EAAE;AADb,KAEQQ,gBAAgB,CAACG,SAFzB;AAGI,IAAA,SAAS,EAAE,IAHf;AAII,IAAA,SAAS,EAAEC,IAAI,CAACH,OAAO,CAAC7B,IAAT,EAAe2B,kBAAkB,CAACI,SAAlC;AAJnB,MAMKT,WAAW,CAACW,GAAZ,CAAgB,UAACC,UAAD,EAAaC,CAAb,EAAmB;AAAA;;AAChC,wBACIf,oBAAC,IAAD;AACI,MAAA,EAAE,EAAE;AADR,OAEQQ,gBAAgB,CAACQ,IAFzB;AAGI,MAAA,IAAI,EAAE,IAHV;AAII,MAAA,GAAG,2DAAKF,UAAU,CAACpE,IAAhB,sDAAK,kBAAiBuE,IAAtB,2EAA8B,MAA9B,cAAwCF,CAAxC,CAJP;AAKI,MAAA,SAAS,EAAEH,IAAI,CAACH,OAAO,CAAC5B,cAAT,EAAyB0B,kBAAkB,CAACS,IAA5C;AALnB,QAOKN,cAAc,CAACI,UAAD,EAAaL,OAAb,CAPnB,EASKL,aAAa,iBACVJ,oBAAC,UAAD;AAAY,MAAA,OAAO,EAAC,OAApB;AAA4B,MAAA,SAAS,EAAC;AAAtC,OACKc,UAAU,CAACpE,IAAX,CAAgBuE,IADrB,CAVR,eAeIjB,oBAAC,GAAD;AACI,MAAA,OAAO,EAAEG,YAAY,CAACY,CAAD,CADzB;AAEI,oBAAW,QAFf;AAGI,MAAA,SAAS,EAAEN,OAAO,CAACZ;AAHvB,aAfJ,CADJ;AAyBH,GA1BA,CANL,CADJ;AAoCH;;AAED,wCAAAI,WAAW,CAACiB,SAAZ,GAAwB;AACpBT,EAAAA,OAAO,EAAEU,SAAS,CAACC,MAAV,CAAiBC,UADN;AAEpBnB,EAAAA,WAAW,EAAEiB,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACC,MAA5B,EAAoCC,UAF7B;AAGpBX,EAAAA,cAAc,EAAES,SAAS,CAACI,IAAV,CAAeF,UAHX;AAIpBlB,EAAAA,YAAY,EAAEgB,SAAS,CAACI,IAAV,CAAeF,UAJT;AAKpBf,EAAAA,gBAAgB,EAAEa,SAAS,CAACC,MALR;AAMpBb,EAAAA,kBAAkB,EAAEY,SAAS,CAACC,MANV;AAOpBZ,EAAAA,gBAAgB,EAAEW,SAAS,CAACC,MAPR;AAQpBhB,EAAAA,aAAa,EAAEe,SAAS,CAACK,IARL;AASpBnB,EAAAA,kBAAkB,EAAEc,SAAS,CAACK;AATV,CAAxB;AAYA,oBAAeC,mBAAU,CAACjD,MAAD,EAAS;AAACyC,EAAAA,IAAI,EAAE;AAAP,CAAT,CAAV,CAAqDhB,WAArD,CAAf;;AChIA,IAAMyB,WAAW,GAAG;AAChBC,EAAAA,OAAO,EAAEC,eADO;AAEhBC,EAAAA,OAAO,EAAEC,WAFO;AAGhBC,EAAAA,KAAK,EAAEC,SAHS;AAIhBC,EAAAA,IAAI,EAAEC;AAJU,CAApB;;AAOA,IAAM1D,QAAM,GAAG,SAATA,MAAS,CAAC2D,KAAD;AAAA,SAAY;AACvBC,IAAAA,YAAY,EAAE;AACVC,MAAAA,eAAe,EAAEF,KAAK,CAAC1D,OAAN,CAAckD,OAAd,CAAsBW;AAD7B,KADS;AAIvBC,IAAAA,UAAU,EAAE;AACRF,MAAAA,eAAe,EAAEF,KAAK,CAAC1D,OAAN,CAAcsD,KAAd,CAAoBO;AAD7B,KAJW;AAOvBE,IAAAA,SAAS,EAAE;AACPH,MAAAA,eAAe,EAAEF,KAAK,CAAC1D,OAAN,CAAcwD,IAAd,CAAmBK;AAD7B,KAPY;AAUvBG,IAAAA,YAAY,EAAE;AACVJ,MAAAA,eAAe,EAAEF,KAAK,CAAC1D,OAAN,CAAcoD,OAAd,CAAsBS;AAD7B,KAVS;AAavBI,IAAAA,OAAO,EAAE;AACLC,MAAAA,OAAO,EAAE,MADJ;AAELC,MAAAA,UAAU,EAAE,QAFP;AAGL,iBAAW;AACPC,QAAAA,WAAW,EAAEV,KAAK,CAACxD,OAAN,CAAc,CAAd;AADN;AAHN,KAbc;AAoBvBmE,IAAAA,IAAI,EAAE;AACFC,MAAAA,QAAQ,EAAE,EADR;AAEF9D,MAAAA,OAAO,EAAE;AAFP,KApBiB;AAwBvB+D,IAAAA,WAAW,EAAE;AAxBU,GAAZ;AAAA,CAAf;;AA2BA,SAASC,sBAAT,CAAgCC,KAAhC,EAAuC;AAAA,MAC5BzC,OAD4B,GAC+ByC,KAD/B,CAC5BzC,OAD4B;AAAA,MACnB0C,SADmB,GAC+BD,KAD/B,CACnBC,SADmB;AAAA,MACRT,OADQ,GAC+BQ,KAD/B,CACRR,OADQ;AAAA,MACCU,OADD,GAC+BF,KAD/B,CACCE,OADD;AAAA,MACUC,OADV,GAC+BH,KAD/B,CACUG,OADV;AAAA,MACsBC,KADtB,4BAC+BJ,KAD/B;;AAEnC,MAAMK,IAAI,GAAG7B,WAAW,CAAC2B,OAAD,CAAxB;AAEA,sBACIrD,oBAAC,eAAD;AACI,IAAA,SAAS,EAAEY,IAAI,CAACH,OAAO,WAAI4C,OAAJ,WAAR,EAA6BF,SAA7B,CADnB;AAEI,wBAAiB,iBAFrB;AAGI,IAAA,OAAO,eACHnD;AAAM,MAAA,EAAE,EAAC,iBAAT;AAA2B,MAAA,SAAS,EAAES,OAAO,CAACiC;AAA9C,oBACI1C,oBAAC,IAAD;AAAM,MAAA,SAAS,EAAES,OAAO,CAACqC;AAAzB,MADJ,EAEKJ,OAFL,CAJR;AASI,IAAA,MAAM,EAAE,cACJ1C,oBAAC,UAAD;AACI,MAAA,GAAG,EAAC,OADR;AAEI,oBAAW,OAFf;AAGI,MAAA,KAAK,EAAC,SAHV;AAII,MAAA,SAAS,EAAES,OAAO,CAACuC,WAJvB;AAKI,MAAA,OAAO,EAAEI;AALb,oBAOIpD,oBAAC,SAAD;AAAW,MAAA,SAAS,EAAES,OAAO,CAACqC;AAA9B,MAPJ,CADI;AATZ,KAoBQQ,KApBR,EADJ;AAwBH;;AAED,wCAAAL,sBAAsB,CAAC/B,SAAvB,GAAmC;AAC/BT,EAAAA,OAAO,EAAEU,SAAS,CAACC,MAAV,CAAiBC,UADK;AAE/B8B,EAAAA,SAAS,EAAEhC,SAAS,CAACqC,MAFU;AAG/Bd,EAAAA,OAAO,EAAEvB,SAAS,CAACsC,IAHY;AAI/BL,EAAAA,OAAO,EAAEjC,SAAS,CAACI,IAJY;AAK/B8B,EAAAA,OAAO,EAAElC,SAAS,CAACuC,KAAV,CAAgB,CAAC,SAAD,EAAY,SAAZ,EAAuB,OAAvB,EAAgC,MAAhC,CAAhB,EAAyDrC;AALnC,CAAnC;AAQA,+BAAeI,mBAAU,CAACjD,QAAD,EAAS;AAACyC,EAAAA,IAAI,EAAE;AAAP,CAAT,CAAV,CAAkDgC,sBAAlD,CAAf;;;;;;ACtEA,IAAMzE,QAAM,GAAG,SAATA,MAAS;AAAA,MAAEC,OAAF,QAAEA,OAAF;AAAA,MAAWC,KAAX,QAAWA,KAAX;AAAA,MAAkBC,OAAlB,QAAkBA,OAAlB;AAAA,SAAgC;AAC3C,2BAAuB;AACnB,YAAM;AACFgF,QAAAA,kBAAkB,EAAE;AADlB,OADa;AAInB,cAAQ;AACJA,QAAAA,kBAAkB,EAAE;AADhB;AAJW,KADoB;AAS3C/E,IAAAA,IAAI,EAAE;AACFE,MAAAA,QAAQ,EAAE,UADR;AAEFM,MAAAA,KAAK,EAAE,MAFL;AAGFwE,MAAAA,SAAS,EAAE,OAHT;AAIFvB,MAAAA,eAAe,EAAE5D,OAAO,CAACoF,UAAR,CAAmBC,KAJlC;AAKFC,MAAAA,MAAM,EAAE,QALN;AAMFC,MAAAA,WAAW,EAAEvF,OAAO,CAACwF,OANnB;AAOFrE,MAAAA,YAAY,EAAElB,KAAK,CAACkB,YAPlB;AAQFF,MAAAA,SAAS,EAAE,YART;AASFwE,MAAAA,MAAM,EAAE,SATN;AAUFC,MAAAA,QAAQ,EAAE;AAVR,KATqC;AAqB3CC,IAAAA,MAAM,EAAE;AACJC,MAAAA,SAAS,EAAE,yCADP;AAEJ;AACAC,MAAAA,eAAe,8CAAuC7F,OAAO,CAACoF,UAAR,CAAmBC,KAA1D,eAAoErF,OAAO,CAACoF,UAAR,CAAmBC,KAAvF,oBAAsGrF,OAAO,CAACwF,OAA9G,oBAA+HxF,OAAO,CAACwF,OAAvI,WAHX;AAIJM,MAAAA,cAAc,EAAE,WAJZ;AAKJR,MAAAA,MAAM,EAAE,OALJ;AAMJC,MAAAA,WAAW,EAAEvF,OAAO,CAACe,OAAR,CAAgBgF;AANzB,KArBmC;AA6B3CC,IAAAA,OAAO,EAAE;AACL;AACAH,MAAAA,eAAe,8CAAuC7F,OAAO,CAACsD,KAAR,CAAcyC,KAArD,eAA+D/F,OAAO,CAACsD,KAAR,CAAcyC,KAA7E,oBAA4F/F,OAAO,CAACsD,KAAR,CAAc2C,IAA1G,oBAAwHjG,OAAO,CAACsD,KAAR,CAAc2C,IAAtI,WAFV;AAGLV,MAAAA,WAAW,EAAEvF,OAAO,CAACsD,KAAR,CAAcO;AAHtB,KA7BkC;AAkC3CqC,IAAAA,aAAa,EAAE;AACX3F,MAAAA,SAAS,EAAE;AADA,KAlC4B;AAqC3CO,IAAAA,IAAI,EAAE;AACFqF,MAAAA,YAAY,EAAEjG,OAAO,CAAC,CAAD,CADnB;AAEFkG,MAAAA,SAAS,EAAElG,OAAO,CAAC,CAAD;AAFhB,KArCqC;AAyC3CmE,IAAAA,IAAI,EAAE;AACF1D,MAAAA,KAAK,EAAE,EADL;AAEFD,MAAAA,MAAM,EAAE,EAFN;AAGFG,MAAAA,KAAK,EAAEb,OAAO,CAACc,IAAR,CAAaC;AAHlB;AAzCqC,GAAhC;AAAA,CAAf;;AAgDA,IAAMsF,2BAA2B,GAAG;AAChCC,EAAAA,UAAU,EAAE,MADoB;AAEhCC,EAAAA,QAAQ,EAAE;AAFsB,CAApC;;AAKA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACnE,UAAD,EAAaL,OAAb,EAAyB;AACnD,MAAIhE,OAAO,CAACqE,UAAU,CAACpE,IAAZ,CAAX,EAA8B;AAC1B,wBAAQsD;AACJ,MAAA,SAAS,EAAES,OAAO,CAACvB,KADf;AAEJ,MAAA,IAAI,EAAC,cAFD;AAGJ,MAAA,GAAG,EAAE4B,UAAU,CAACzD;AAHZ,MAAR;AAKH;;AAED,sBAAO2C,oBAAC,cAAD;AAAgB,IAAA,SAAS,EAAES,OAAO,CAACvB;AAAnC,IAAP;AACH,CAVD;AAYA;;;;;IAGMgG;;;;;;;;;;;;;;;UACFC,QAAQ;AACJC,MAAAA,YAAY,EAAE,KADV;AAEJC,MAAAA,eAAe,EAAE,EAFb;AAGJC,MAAAA,eAAe,EAAE;AAHb;;UAcRC;2EAAqB,kBAAMC,aAAN,EAAqBC,GAArB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,8BACgF,MAAKvC,KADrF,EACVhD,WADU,eACVA,WADU,EACGwF,UADH,eACGA,UADH,EACeC,mBADf,eACeA,mBADf,EACoCC,yBADpC,eACoCA,yBADpC,EAC+DC,KAD/D,eAC+DA,KAD/D,EACsEC,MADtE,eACsEA,MADtE;;AAAA,sBAGbJ,UAAU,GAAG,CAAb,IAAkBxF,WAAW,CAAC6F,MAAZ,GAAqBP,aAAa,CAACO,MAAnC,GAA4CL,UAHjD;AAAA;AAAA;AAAA;;AAIb,sBAAKM,QAAL,CAAc;AACVZ,kBAAAA,YAAY,EAAE,IADJ;AAEVC,kBAAAA,eAAe,EAAEO,yBAAyB,CAACF,UAAD,CAFhC;AAGVJ,kBAAAA,eAAe,EAAE;AAHP,iBAAd,EAIG,MAAKW,WAJR;;AAJa;;AAAA;AAYjB;AACA,oBAAIH,MAAJ,EAAY;AACRA,kBAAAA,MAAM,CAACN,aAAD,EAAgBC,GAAhB,CAAN;AACH,iBAfgB;;;AAAA;AAAA,uBAkBM7H,OAAO,CAACsI,GAAR,CACnBV,aAAa,CAAC3E,GAAd;AAAA,uFAAkB,iBAAMnE,IAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCACKiB,QAAQ,CAACjB,IAAD,CADb;;AAAA;AACRW,4BAAAA,IADQ;AAAA,6DAEP;AACHX,8BAAAA,IAAI,EAAJA,IADG;AAEHW,8BAAAA,IAAI,EAAJA;AAFG,6BAFO;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAlB;;AAAA;AAAA;AAAA;AAAA,oBADmB,CAlBN;;AAAA;AAkBX8I,gBAAAA,QAlBW;;AA4BjB;AACA,oBAAIN,KAAJ,EAAW;AACPA,kBAAAA,KAAK,CAACM,QAAD,CAAL;AACH,iBA/BgB;;;AAkCXzD,gBAAAA,OAlCW,GAkCDyD,QAAQ,CAACC,MAAT,CAAgB,UAACC,GAAD,EAAMC,OAAN;AAAA,yBAAkBD,GAAG,GAAGV,mBAAmB,CAACW,OAAO,CAAC5J,IAAR,CAAauE,IAAd,CAA3C;AAAA,iBAAhB,EAAgF,EAAhF,CAlCC;;AAmCjB,sBAAK+E,QAAL,CAAc;AACVZ,kBAAAA,YAAY,EAAE,IADJ;AAEVC,kBAAAA,eAAe,EAAE3C,OAFP;AAGV4C,kBAAAA,eAAe,EAAE;AAHP,iBAAd,EAIG,MAAKW,WAJR;;AAnCiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;UA0CrBM,qBAAqB,UAACC,aAAD,EAAgBf,GAAhB,EAAwB;AAAA,yBASrC,MAAKvC,KATgC;AAAA,UAErCsC,aAFqC,gBAErCA,aAFqC;AAAA,UAGrCE,UAHqC,gBAGrCA,UAHqC;AAAA,UAIrCxF,WAJqC,gBAIrCA,WAJqC;AAAA,UAKrCuG,oBALqC,gBAKrCA,oBALqC;AAAA,UAMrCb,yBANqC,gBAMrCA,yBANqC;AAAA,UAOrCc,WAPqC,gBAOrCA,WAPqC;AAAA,UAQrCC,cARqC,gBAQrCA,cARqC;AAWzC,UAAIjE,OAAO,GAAG,EAAd;;AACA,UAAIxC,WAAW,CAAC6F,MAAZ,GAAqBS,aAAa,CAACT,MAAnC,GAA4CL,UAAhD,EAA4D;AACxDhD,QAAAA,OAAO,GAAGkD,yBAAyB,CAACF,UAAD,CAAnC;AACH,OAFD,MAEO;AACHc,QAAAA,aAAa,CAACI,OAAd,CAAsB,UAACC,YAAD,EAAkB;AACpCnE,UAAAA,OAAO,GAAG+D,oBAAoB,CAACI,YAAD,EAAerB,aAAf,EAA8BkB,WAA9B,CAA9B;AACH,SAFD;AAGH;;AAED,UAAIC,cAAJ,EAAoB;AAChBA,QAAAA,cAAc,CAACH,aAAD,EAAgBf,GAAhB,CAAd;AACH;;AAED,YAAKO,QAAL,CAAc;AACVZ,QAAAA,YAAY,EAAE,IADJ;AAEVC,QAAAA,eAAe,EAAE3C,OAFP;AAGV4C,QAAAA,eAAe,EAAE;AAHP,OAAd,EAIG,MAAKW,WAJR;AAKH;;UAED9F,eAAe,UAAC2G,SAAD;AAAA,aAAe,UAAC5I,KAAD,EAAW;AACrCA,QAAAA,KAAK,CAAC6I,eAAN;AADqC,2BAGkB,MAAK7D,KAHvB;AAAA,YAG9BhD,WAH8B,gBAG9BA,WAH8B;AAAA,YAGjB8G,qBAHiB,gBAGjBA,qBAHiB;AAAA,YAGMC,QAHN,gBAGMA,QAHN;;AAMrC,YAAMC,cAAc,GAAGhH,WAAW,CAAC4G,SAAD,CAAlC,CANqC;;AASrC,YAAIG,QAAJ,EAAc;AACVA,UAAAA,QAAQ,CAACC,cAAD,EAAiBJ,SAAjB,CAAR;AACH;;AAED,cAAKd,QAAL,CAAc;AACVZ,UAAAA,YAAY,EAAE,IADJ;AAEVC,UAAAA,eAAe,EAAE2B,qBAAqB,CAACE,cAAc,CAACxK,IAAf,CAAoBuE,IAArB,CAF5B;AAGVqE,UAAAA,eAAe,EAAE;AAHP,SAAd,EAIG,MAAKW,WAJR;AAKH,OAlBc;AAAA;;UAoBfkB,sBAAsB,YAAM;AACxB,YAAKnB,QAAL,CAAc;AACVZ,QAAAA,YAAY,EAAE;AADJ,OAAd;AAGH;;;;;;;kCAzGa;AAAA,UACHgC,OADG,GACQ,KAAKlE,KADb,CACHkE,OADG;AAAA,wBAE+C,KAAKjC,KAFpD;AAAA,UAEHC,YAFG,eAEHA,YAFG;AAAA,UAEWC,eAFX,eAEWA,eAFX;AAAA,UAE4BC,eAF5B,eAE4BA,eAF5B;;AAGV,UAAIF,YAAY,IAAIgC,OAApB,EAA6B;AACzBA,QAAAA,OAAO,CAAC/B,eAAD,EAAkBC,eAAlB,CAAP;AACH;AACJ;;;6BAqGQ;AAAA;;AAAA,yBA0BD,KAAKpC,KA1BJ;AAAA,UAEDsC,aAFC,gBAEDA,aAFC;AAAA,UAGD6B,kBAHC,gBAGDA,kBAHC;AAAA,UAID5G,OAJC,gBAIDA,OAJC;AAAA,UAKD6G,wBALC,gBAKDA,wBALC;AAAA,UAMDC,aANC,gBAMDA,aANC;AAAA,UAODC,sBAPC,gBAODA,sBAPC;AAAA,UAQDC,aARC,gBAQDA,aARC;AAAA,UASDC,YATC,gBASDA,YATC;AAAA,UAUDxH,WAVC,gBAUDA,WAVC;AAAA,UAWDwF,UAXC,gBAWDA,UAXC;AAAA,UAYDhF,cAZC,gBAYDA,cAZC;AAAA,UAaD6C,IAbC,gBAaDA,IAbC;AAAA,UAcDoE,UAdC,gBAcDA,UAdC;AAAA,UAeDjB,WAfC,gBAeDA,WAfC;AAAA,UAgBDpG,gBAhBC,gBAgBDA,gBAhBC;AAAA,UAiBDC,kBAjBC,gBAiBDA,kBAjBC;AAAA,UAkBDC,gBAlBC,gBAkBDA,gBAlBC;AAAA,UAmBDoH,WAnBC,gBAmBDA,WAnBC;AAAA,UAoBDC,UApBC,gBAoBDA,UApBC;AAAA,UAqBDzH,aArBC,gBAqBDA,aArBC;AAAA,UAsBD0H,sBAtBC,gBAsBDA,sBAtBC;AAAA,UAuBDC,YAvBC,gBAuBDA,YAvBC;AAAA,UAwBDC,sBAxBC,gBAwBDA,sBAxBC;AAAA,UAyBD3H,kBAzBC,gBAyBDA,kBAzBC;AAAA,yBA2BoD,KAAK8E,KA3BzD;AAAA,UA2BEC,YA3BF,gBA2BEA,YA3BF;AAAA,UA2BgBC,eA3BhB,gBA2BgBA,eA3BhB;AAAA,UA2BiCC,eA3BjC,gBA2BiCA,eA3BjC;AA6BL,UAAM2C,WAAW,GAAGzC,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAE0C,IAAf,CAAoB,GAApB,CAApB;AACA,UAAMC,UAAU,GAAGzC,UAAU,GAAG,CAAhC;AACA,UAAM0C,eAAe,GAAGL,YAAY,IAAI7H,WAAW,CAAC6F,MAAZ,GAAqB,CAA7D;AACA,UAAMsC,yBAAyB,GAAGL,sBAAsB,IAAI9H,WAAW,CAAC6F,MAAZ,GAAqB,CAAjF;AAEA,0BACI/F,oBAACsI,cAAD,qBACItI,oBAAC,QAAD,eACQyH,aADR;AAEI,QAAA,MAAM,EAAEQ,WAFZ;AAGI,QAAA,cAAc,EAAE,KAAK1C,kBAHzB;AAII,QAAA,cAAc,EAAE,KAAKgB,kBAJzB;AAKI,QAAA,OAAO,EAAEG,WALb;AAMI,QAAA,QAAQ,EAAEyB;AANd,UAQK;AAAA,YAAEI,YAAF,SAAEA,YAAF;AAAA,YAAgBC,aAAhB,SAAgBA,aAAhB;AAAA,YAA+BC,YAA/B,SAA+BA,YAA/B;AAAA,YAA6CC,YAA7C,SAA6CA,YAA7C;AAAA,4BACG1I,2BACQuI,YAAY,CAAC;AACbpF,UAAAA,SAAS,EAAEvC,IAAI,CACXH,OAAO,CAAC7B,IADG,EAEX2I,aAFW,EAGXkB,YAHW,IAGKhI,OAAO,CAAC2D,MAHb,EAIV,CAACkD,wBAJS,IAImBoB,YAJnB,IAIoCjI,OAAO,CAACgE,OAJ5C;AADF,SAAD,CADpB,eAUIzE,6BAAWwI,aAAa,CAACb,UAAD,CAAxB,CAVJ,eAYI3H;AAAK,UAAA,SAAS,EAAES,OAAO,CAACkE;AAAxB,WACM,OAAO+C,YAAP,KAAwB,QAAxB,gBACE1H,oBAAC,UAAD;AACI,UAAA,OAAO,EAAC,IADZ;AAEI,UAAA,SAAS,EAAC,GAFd;AAGI,UAAA,SAAS,EAAEY,IAAI,CAACH,OAAO,CAAClB,IAAT,EAAeiI,sBAAf;AAHnB,WAIKE,YAJL,CADF,GAOEA,YARR,EAUKnE,IAAI,gBACDvD,oBAAC,IAAD;AAAM,UAAA,SAAS,EAAES,OAAO,CAACqC;AAAzB,UADC,gBAGD9C,oBAAC,eAAD;AAAiB,UAAA,SAAS,EAAES,OAAO,CAACqC;AAApC,UAbR,CAZJ,EA6BKuF,yBAAyB,iBACtBrI,oBAACC,aAAD;AACI,UAAA,WAAW,EAAEC,WADjB;AAEI,UAAA,YAAY,EAAE,MAAI,CAACC,YAFvB;AAGI,UAAA,cAAc,EAAEO,cAHpB;AAII,UAAA,aAAa,EAAEN,aAJnB;AAKI,UAAA,kBAAkB,EAAEC,kBALxB;AAMI,UAAA,gBAAgB,EAAEC,gBANtB;AAOI,UAAA,kBAAkB,EAAEC,kBAPxB;AAQI,UAAA,gBAAgB,EAAEC;AARtB,UA9BR,CADH;AAAA,OARL,CADJ,EAuDK4H,eAAe,iBACZpI,oBAACsI,cAAD,qBACItI,oBAAC,UAAD;AAAY,QAAA,OAAO,EAAC,WAApB;AAAgC,QAAA,SAAS,EAAC;AAA1C,SACK4H,WADL,CADJ,eAKI5H,oBAACC,aAAD;AACI,QAAA,WAAW,EAAEC,WADjB;AAEI,QAAA,YAAY,EAAE,KAAKC,YAFvB;AAGI,QAAA,cAAc,EAAEO,cAHpB;AAII,QAAA,aAAa,EAAEoH,sBAJnB;AAKI,QAAA,kBAAkB,EAAEzH,kBALxB;AAMI,QAAA,gBAAgB,EAAEC,gBANtB;AAOI,QAAA,kBAAkB,EAAEC,kBAPxB;AAQI,QAAA,gBAAgB,EAAEC;AARtB,QALJ,CAxDR,EA0EK,CAAE,OAAOqH,UAAP,KAAsB,SAAtB,IAAmCA,UAApC,IACGc,KAAK,CAACC,OAAN,CAAcf,UAAd,KAA6BA,UAAU,CAACgB,QAAX,CAAoBvD,eAApB,CADjC,kBAEGtF,oBAAC,QAAD;AACI,QAAA,YAAY,EAAE8E,2BADlB;AAEI,QAAA,gBAAgB,EAAE;AAFtB,SAGQuC,kBAHR;AAII,QAAA,IAAI,EAAEjC,YAJV;AAKI,QAAA,OAAO,EAAE,KAAK+B;AALlB,uBAOInH,oBAACiD,wBAAD;AACI,QAAA,OAAO,EAAE,KAAKkE,mBADlB;AAEI,QAAA,OAAO,EAAE7B,eAFb;AAGI,QAAA,OAAO,EAAED;AAHb,QAPJ,CA5ER,CADJ;AA6FH;;;;EAjP0ByD;;AAoP/B5D,gBAAgB,CAAC6D,YAAjB,GAAgC;AAC5BvD,EAAAA,aAAa,EAAE,EADa;AAE5BE,EAAAA,UAAU,EAAE,CAFgB;AAG5BxF,EAAAA,WAAW,EAAE,EAHe;AAI5BwG,EAAAA,WAAW,EAAE,OAJe;AAK5BgB,EAAAA,YAAY,EAAE,oCALc;AAM5BE,EAAAA,WAAW,EAAE,UANe;AAO5BN,EAAAA,wBAAwB,EAAE,KAPE;AAQ5BS,EAAAA,YAAY,EAAE,KARc;AAQP;AACrBC,EAAAA,sBAAsB,EAAE,IATI;AAU5B5H,EAAAA,aAAa,EAAE,KAVa;AAW5B0H,EAAAA,sBAAsB,EAAE,KAXI;AAY5BzH,EAAAA,kBAAkB,EAAE,KAZQ;AAa5BC,EAAAA,gBAAgB,EAAE,EAbU;AAc5BC,EAAAA,kBAAkB,EAAE,EAdQ;AAe5BC,EAAAA,gBAAgB,EAAE,EAfU;AAgB5BqH,EAAAA,UAAU,EAAE,IAhBgB;AAiB5BR,EAAAA,kBAAkB,EAAE;AAChB2B,IAAAA,YAAY,EAAE;AACVjE,MAAAA,UAAU,EAAE,MADF;AAEVC,MAAAA,QAAQ,EAAE;AAFA,KADE;AAKhBiE,IAAAA,gBAAgB,EAAE;AALF,GAjBQ;AAwB5BrD,EAAAA,yBAAyB,EAAE,mCAACF,UAAD;AAAA,oEAAmEA,UAAnE;AAAA,GAxBC;AAyB5BC,EAAAA,mBAAmB,EAAE,6BAACuD,QAAD;AAAA,0BAAuBA,QAAvB;AAAA,GAzBO;AA0B5BxI,EAAAA,cAAc,EAAEuE,qBA1BY;AA2B5B+B,EAAAA,qBAAqB,EAAE,+BAACkC,QAAD;AAAA,0BAAuBA,QAAvB;AAAA,GA3BK;AA4B5BzC,EAAAA,oBAAoB,EAAE,8BAACI,YAAD,EAAerB,aAAf,EAA8BkB,WAA9B,EAA8C;AAChE,QAAIhE,OAAO,kBAAWmE,YAAY,CAAC5F,IAAxB,oBAAX;;AACA,QAAI,CAACuE,aAAa,CAACqD,QAAd,CAAuBhC,YAAY,CAAClK,IAApC,CAAL,EAAgD;AAC5C+F,MAAAA,OAAO,IAAI,2BAAX;AACH;;AACD,QAAImE,YAAY,CAAC9J,IAAb,GAAoB2J,WAAxB,EAAqC;AACjChE,MAAAA,OAAO,IAAI,oCAAoC7F,sBAAsB,CAAC6J,WAAD,CAA1D,GAA0E,IAArF;AACH;;AACD,WAAOhE,OAAP;AACH;AArC2B,CAAhC;AAwCA,AAAO,IAAMyG,eAAe,GAAGhI,SAAS,CAACzC,KAAV,CAAgB;AAC3ChC,EAAAA,IAAI,EAAEyE,SAAS,CAACC,MAD2B;AAE3C/D,EAAAA,IAAI,EAAE8D,SAAS,CAACiI;AAF2B,CAAhB,CAAxB;AAKP,wCAAAlE,gBAAgB,CAAChE,SAAjB,GAA6B;AACzB;AACAT,EAAAA,OAAO,EAAEU,SAAS,CAACC,MAAV,CAAiBC,UAFD;;AAGzB;;;AAGAmE,EAAAA,aAAa,EAAErE,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACqC,MAA5B,CANU;;AAOzB;AACAkC,EAAAA,UAAU,EAAEvE,SAAS,CAACkI,MARG;;AASzB;AACA9F,EAAAA,IAAI,EAAEpC,SAAS,CAACmI,WAVS;;AAWzB;AACApJ,EAAAA,WAAW,EAAEiB,SAAS,CAACG,OAAV,CAAkB6H,eAAlB,CAZY;;AAazB;AACAzC,EAAAA,WAAW,EAAEvF,SAAS,CAACkI,MAdE;;AAezB;AACA3B,EAAAA,YAAY,EAAEvG,SAAS,CAACqC,MAAV,GAAmBrC,SAAS,CAACoI,OAhBlB;;AAiBzB;AACAhC,EAAAA,aAAa,EAAEpG,SAAS,CAACqC,MAlBA;;AAmBzB;AACAgE,EAAAA,sBAAsB,EAAErG,SAAS,CAACqC,MApBT;;AAqBzB;AACA8D,EAAAA,wBAAwB,EAAEnG,SAAS,CAACK,IAtBX;;AAuBzB;AACAuG,EAAAA,YAAY,EAAE5G,SAAS,CAACK,IAxBC;;AAyBzB;AACAwG,EAAAA,sBAAsB,EAAE7G,SAAS,CAACK,IA1BT;;AA2BzB;AACApB,EAAAA,aAAa,EAAEe,SAAS,CAACK,IA5BA;;AA6BzB;AACAsG,EAAAA,sBAAsB,EAAE3G,SAAS,CAACK,IA9BT;;AA+BzB;AACAnB,EAAAA,kBAAkB,EAAEc,SAAS,CAACK,IAhCL;;AAiCzB;;;;;AAKAlB,EAAAA,gBAAgB,EAAEa,SAAS,CAACC,MAtCH;;AAuCzB;;;;AAIAb,EAAAA,kBAAkB,EAAEY,SAAS,CAACC,MA3CL;;AA4CzB;;;;;;AAMAZ,EAAAA,gBAAgB,EAAEW,SAAS,CAACC,MAlDH;;AAmDzB;AACAwG,EAAAA,WAAW,EAAEzG,SAAS,CAACqC,MApDE;;AAqDzB;;;;;;;;;;AAUAqE,EAAAA,UAAU,EAAE1G,SAAS,CAACqI,SAAV,CAAoB,CAC5BrI,SAAS,CAACK,IADkB,EAE5BL,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACuC,KAAV,CAAgB,CAAC,OAAD,EAAU,SAAV,EAAqB,MAArB,CAAhB,CAAlB,CAF4B,CAApB,CA/Da;;AAmEzB;;;;;AAKA2D,EAAAA,kBAAkB,EAAElG,SAAS,CAACC,MAxEL;;AAyEzB;;;;;AAKAqG,EAAAA,aAAa,EAAEtG,SAAS,CAACC,MA9EA;;AA+EzB;;;;;AAKAuG,EAAAA,UAAU,EAAExG,SAAS,CAACC,MApFG;;AAqFzB;;;;;;;AAOAwE,EAAAA,yBAAyB,EAAEzE,SAAS,CAACI,IA5FZ;;AA6FzB;;;;;;;AAOAoE,EAAAA,mBAAmB,EAAExE,SAAS,CAACI,IApGN;;AAqGzB;;;;;;;AAOAyF,EAAAA,qBAAqB,EAAE7F,SAAS,CAACI,IA5GR;;AA6GzB;;;;;;;;;AASAkF,EAAAA,oBAAoB,EAAEtF,SAAS,CAACI,IAtHP;;AAuHzB;;;;;;;;AAQAb,EAAAA,cAAc,EAAES,SAAS,CAACI,IA/HD;;AAgIzB;;;;;AAKAsE,EAAAA,KAAK,EAAE1E,SAAS,CAACI,IArIQ;;AAsIzB;;;;;;AAMA0F,EAAAA,QAAQ,EAAE9F,SAAS,CAACI,IA5IK;;AA6IzB;;;;;;AAMAuE,EAAAA,MAAM,EAAE3E,SAAS,CAACI,IAnJO;;AAoJzB;;;;;;AAMAoF,EAAAA,cAAc,EAAExF,SAAS,CAACI,IA1JD;;AA2JzB;;;;;;AAMA6F,EAAAA,OAAO,EAAEjG,SAAS,CAACI;AAjKM,CAA7B;AAoKA,yBAAeE,mBAAU,CAACjD,QAAD,EAAS;AAACyC,EAAAA,IAAI,EAAE;AAAP,CAAT,CAAV,CAA8CiE,gBAA9C,CAAf;;;;;;AChhBA,IAAMuE,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACvG,KAAD,EAAW;AAAA,MAC/BwG,cAD+B,GAC2CxG,KAD3C,CAC/BwG,cAD+B;AAAA,MACfC,YADe,GAC2CzG,KAD3C,CACfyG,YADe;AAAA,MACDC,QADC,GAC2C1G,KAD3C,CACD0G,QADC;AAAA,MACS3C,QADT,GAC2C/D,KAD3C,CACS+D,QADT;AAAA,MACsB4C,iBADtB,4BAC2C3G,KAD3C;;AAEtC,SAAO,CAAC;AAACwG,IAAAA,cAAc,EAAdA,cAAD;AAAiBC,IAAAA,YAAY,EAAZA,YAAjB;AAA+BC,IAAAA,QAAQ,EAARA,QAA/B;AAAyC3C,IAAAA,QAAQ,EAARA;AAAzC,GAAD,EAAqD4C,iBAArD,CAAP;AACH,CAHD;AAKA;;;;;;;;;IAOMC;;;;;;;;;;;;;;;UACF3E,QAAQ;AACJjF,MAAAA,WAAW,EAAE;AADT;;UAkBR6J,mBAAmB,YAAM;AAAA,UACdH,QADc,GACF,MAAK1G,KADH,CACd0G,QADc;AAAA,UAEd1J,WAFc,GAEC,MAAKiF,KAFN,CAEdjF,WAFc;;AAIrB,UAAI0J,QAAJ,EAAc;AACVA,QAAAA,QAAQ,CAAC1J,WAAW,CAACW,GAAZ,CAAgB,UAACC,UAAD;AAAA,iBAAgBA,UAAU,CAACpE,IAA3B;AAAA,SAAhB,CAAD,CAAR;AACH;AACJ;;UAEDsN,yFAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AACRL,cAAAA,YADQ,GACQ,MAAKzG,KADb,CACRyG,YADQ;AAAA;AAAA;AAAA,qBAGY/L,OAAO,CAACsI,GAAR,CACnByD,YAAY,CAAC9I,GAAb;AAAA,qFAAiB,iBAAMoJ,WAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAET,OAAOA,WAAP,KAAuB,QAFd;AAAA;AAAA;AAAA;;AAAA;AAAA,iCAGIjN,iBAAiB,CAACiN,WAAD,CAHrB;;AAAA;AAGTvN,0BAAAA,IAHS;AAAA;AAAA;;AAAA;AAKTA,0BAAAA,IAAI,GAAGuN,WAAP;;AALS;AAAA;AAAA,iCAOMtM,QAAQ,CAACjB,IAAD,CAPd;;AAAA;AAOPW,0BAAAA,IAPO;AAAA,2DASN;AACHX,4BAAAA,IAAI,EAAJA,IADG;AAEHW,4BAAAA,IAAI,EAAJA;AAFG,2BATM;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAjB;;AAAA;AAAA;AAAA;AAAA,kBADmB,CAHZ;;AAAA;AAGL8I,cAAAA,QAHK;;AAoBX,oBAAKH,QAAL,CAAc,UAACb,KAAD;AAAA,uBAAY;AACtBjF,kBAAAA,WAAW,EAAE,GAAGgK,MAAH,CACT/E,KAAK,CAACjF,WADG,EAETiG,QAFS;AADS,iBAAZ;AAAA,eAAd,EAKI,MAAK4D,gBALT;;AApBW;AAAA;;AAAA;AAAA;AAAA;AA2BXI,cAAAA,OAAO,CAACC,GAAR;;AA3BW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;UA+BnBC;2EAAW,kBAAMC,cAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AACA5E,gBAAAA,UADA,GACc,MAAKxC,KADnB,CACAwC,UADA;;AAGP,sBAAKM,QAAL,CAAc,UAACb,KAAD,EAAW;AACrB;AACA,sBAAIO,UAAU,IAAI,CAAlB,EAAqB;AACjB,2BAAO;AACHxF,sBAAAA,WAAW,EAAE,GAAGgK,MAAH,CAAUI,cAAc,CAAC,CAAD,CAAxB;AADV,qBAAP;AAGH,mBANoB;;;AASrB,yBAAO;AACHpK,oBAAAA,WAAW,EAAE,GAAGgK,MAAH,CACT/E,KAAK,CAACjF,WADG,EAEToK,cAFS;AADV,mBAAP;AAMH,iBAfD,EAeG,MAAKP,gBAfR;;AAHO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;UAqBXQ,aAAa,UAACrD,cAAD,EAAiBsD,iBAAjB,EAAuC;AAChDtM,MAAAA,KAAK,CAAC6I,eAAN;AADgD,UAGzCE,QAHyC,GAG7B,MAAK/D,KAHwB,CAGzC+D,QAHyC;AAAA,UAIzC/G,WAJyC,GAI1B,MAAKiF,KAJqB,CAIzCjF,WAJyC;;AAOhD,UAAMuK,iBAAiB,GAAGvK,WAAW,CAACwK,MAAZ,CAAmB,UAAC5J,UAAD,EAAaC,CAAb,EAAmB;AAC5D,eAAOA,CAAC,KAAKyJ,iBAAb;AACH,OAFyB,CAA1B,CAPgD;;AAYhD,UAAIvD,QAAJ,EAAc;AACVA,QAAAA,QAAQ,CAACC,cAAc,CAACxK,IAAhB,EAAsB8N,iBAAtB,CAAR;AACH,OAd+C;;;AAiBhD,YAAKxE,QAAL,CAAc;AACV9F,QAAAA,WAAW,EAAEuK;AADH,OAAd,EAEG,MAAKV,gBAFR;AAGH;;;;;;;wCA/FmB;AAChB,WAAKC,gBAAL;AACH;;;2CAEsB;AAAA,UACZN,cADY,GACM,KAAKxG,KADX,CACZwG,cADY;;AAGnB,UAAIA,cAAJ,EAAoB;AAChB,aAAK1D,QAAL,CAAc;AACV9F,UAAAA,WAAW,EAAE;AADH,SAAd,EAEG,KAAK6J,gBAFR;AAGH;AACJ;;;6BAqFQ;AAAA,kCACyBN,sBAAsB,CAAC,KAAKvG,KAAN,CAD/C;AAAA;AAAA,UACI2G,iBADJ;;AAAA,UAEE3J,WAFF,GAEiB,KAAKiF,KAFtB,CAEEjF,WAFF;AAIL,0BACIF,oBAACkF,kBAAD,eACQ2E,iBADR;AAEI,QAAA,WAAW,EAAE3J,WAFjB;AAGI,QAAA,KAAK,EAAE,KAAKmK,QAHhB;AAII,QAAA,QAAQ,EAAE,KAAKE;AAJnB,SADJ;AAQH;;;;EAlHsBzB;;AAqH3BgB,YAAY,CAACf,YAAb,GAA4B;AACxBW,EAAAA,cAAc,EAAE,IADQ;AAExBhE,EAAAA,UAAU,EAAE,CAFY;AAGxBiE,EAAAA,YAAY,EAAE;AAHU,CAA5B;AAMA,wCAAAG,YAAY,CAAC5I,SAAb,gBACOgE,kBAAgB,CAAChE,SADxB;AAEI;AACAwI,EAAAA,cAAc,EAAEvI,SAAS,CAACK,IAH9B;;AAII;;;AAGAmI,EAAAA,YAAY,EAAExI,SAAS,CAACG,OAAV,CACVH,SAAS,CAACqI,SAAV,CAAoB,CAChBrI,SAAS,CAACqC,MADM,EAEhBrC,SAAS,CAACiI,GAFM,CAApB,CADU,CAPlB;;AAaI;AACA1D,EAAAA,UAAU,EAAEvE,SAAS,CAACkI,MAd1B;;AAeI;;;;;AAKAO,EAAAA,QAAQ,EAAEzI,SAAS,CAACI,IApBxB;;AAqBI;;;;;;AAMA0F,EAAAA,QAAQ,EAAE9F,SAAS,CAACI;AA3BxB;;;;;;ACnIA,SAASoJ,wBAAT,CAAkCC,QAAlC,EAA4C;AAAA,MAEpCC,gBAFoC,GAYpCD,QAZoC,CAEpCC,gBAFoC;AAAA,MAGpCC,WAHoC,GAYpCF,QAZoC,CAGpCE,WAHoC;AAAA,MAIpCC,WAJoC,GAYpCH,QAZoC,CAIpCG,WAJoC;AAAA,MAKpCC,SALoC,GAYpCJ,QAZoC,CAKpCI,SALoC;AAAA,MAMpC3L,QANoC,GAYpCuL,QAZoC,CAMpCvL,QANoC;AAAA,MAOpC+D,OAPoC,GAYpCwH,QAZoC,CAOpCxH,OAPoC;AAAA,MAQpC6H,MARoC,GAYpCL,QAZoC,CAQpCK,MARoC;AAAA,MASpCC,IAToC,GAYpCN,QAZoC,CASpCM,IAToC;AAAA,MAUpCC,gBAVoC,GAYpCP,QAZoC,CAUpCO,gBAVoC;AAAA,MAWjCtB,iBAXiC,4BAYpCe,QAZoC;;AAcxC,SAAO,CACH;AACIC,IAAAA,gBAAgB,EAAhBA,gBADJ;AAEIC,IAAAA,WAAW,EAAXA,WAFJ;AAGIC,IAAAA,WAAW,EAAXA,WAHJ;AAIIC,IAAAA,SAAS,EAATA,SAJJ;AAKI3L,IAAAA,QAAQ,EAARA,QALJ;AAMI+D,IAAAA,OAAO,EAAPA,OANJ;AAOI6H,IAAAA,MAAM,EAANA,MAPJ;AAQIC,IAAAA,IAAI,EAAJA,IARJ;AASIC,IAAAA,gBAAgB,EAAhBA;AATJ,GADG,EAYHtB,iBAZG,CAAP;AAcH;AAED;;;;;;;IAKMuB;;;;;;;;;;;;;6BACO;AAAA,kCAC4CT,wBAAwB,CAAC,KAAKzH,KAAN,CADpE;AAAA;AAAA,UACEmI,mBADF;AAAA,UACuBxB,iBADvB;;AAAA,UAGDgB,gBAHC,GAYDQ,mBAZC,CAGDR,gBAHC;AAAA,UAIDC,WAJC,GAYDO,mBAZC,CAIDP,WAJC;AAAA,UAKDC,WALC,GAYDM,mBAZC,CAKDN,WALC;AAAA,UAMDC,SANC,GAYDK,mBAZC,CAMDL,SANC;AAAA,UAOD3L,QAPC,GAYDgM,mBAZC,CAODhM,QAPC;AAAA,UAQD+D,OARC,GAYDiI,mBAZC,CAQDjI,OARC;AAAA,UASD6H,MATC,GAYDI,mBAZC,CASDJ,MATC;AAAA,UAUDC,IAVC,GAYDG,mBAZC,CAUDH,IAVC;AAAA,UAWDC,gBAXC,GAYDE,mBAZC,CAWDF,gBAXC;;AAeL,UAAMG,cAAc,GAAGzB,iBAAiB,CAAC3J,WAAlB,CAA8B6F,MAA9B,KAAyC,CAAhE;AAEA,0BACI/F,oBAAC,MAAD,eACQ8K,WADR;AAEI,QAAA,SAAS,EAAEE,SAFf;AAGI,QAAA,QAAQ,EAAE3L,QAHd;AAII,QAAA,OAAO,EAAE+D,OAJb;AAKI,QAAA,IAAI,EAAE8H;AALV,uBAOIlL,oBAAC,WAAD,QAAc+K,WAAd,CAPJ,eASI/K,oBAAC,aAAD,qBACIA,oBAACkF,kBAAD,EACQ2E,iBADR,CADJ,CATJ,eAeI7J,oBAAC,aAAD,qBACIA,oBAAC,MAAD;AACI,QAAA,KAAK,EAAC,SADV;AAEI,QAAA,OAAO,EAAEoD;AAFb,SAIKyH,gBAJL,CADJ,eAQI7K,oBAAC,MAAD;AACI,QAAA,KAAK,EAAC,SADV;AAEI,QAAA,QAAQ,EAAEsL,cAFd;AAGI,QAAA,OAAO,EAAEL;AAHb,SAKKE,gBALL,CARJ,CAfJ,CADJ;AAkCH;;;;EApD4BrC;;AAuDjCsC,kBAAkB,CAACrC,YAAnB,GAAkC;AAC9BmC,EAAAA,IAAI,EAAE,KADwB;AAE9BH,EAAAA,WAAW,EAAE,aAFiB;AAG9BD,EAAAA,WAAW,EAAE,EAHiB;AAI9BE,EAAAA,SAAS,EAAE,IAJmB;AAK9B3L,EAAAA,QAAQ,EAAE,IALoB;AAM9BwL,EAAAA,gBAAgB,EAAE,QANY;AAO9BM,EAAAA,gBAAgB,EAAE,QAPY;AAQ9BpD,EAAAA,YAAY,EAAE,IARgB;AAS9BC,EAAAA,sBAAsB,EAAE,KATM;AAU9BF,EAAAA,sBAAsB,EAAE;AAVM,CAAlC;AAaA,wCAAAsD,kBAAkB,CAAClK,SAAnB,gBACOgE,kBAAgB,CAAChE,SADxB;AAEI;AACAgK,EAAAA,IAAI,EAAE/J,SAAS,CAACK,IAHpB;;AAII;AACAuJ,EAAAA,WAAW,EAAE5J,SAAS,CAACqI,SAAV,CAAoB,CAC7BrI,SAAS,CAACqC,MADmB,EAE7BrC,SAAS,CAACoI,OAFmB,CAApB,CALjB;;AASI;;;;AAIAuB,EAAAA,WAAW,EAAE3J,SAAS,CAACC,MAb3B;;AAcI;;;;AAIA4J,EAAAA,SAAS,EAAE7J,SAAS,CAACK,IAlBzB;;AAmBI;;;;AAIAnC,EAAAA,QAAQ,EAAE8B,SAAS,CAACqC,MAvBxB;;AAwBI;AACAqH,EAAAA,gBAAgB,EAAE1J,SAAS,CAACqC,MAzBhC;;AA0BI;AACA2H,EAAAA,gBAAgB,EAAEhK,SAAS,CAACqC,MA3BhC;;AA4BI;;;;;AAKAJ,EAAAA,OAAO,EAAEjC,SAAS,CAACI,IAjCvB;;AAkCI;;;;;AAKA0J,EAAAA,MAAM,EAAE9J,SAAS,CAACI,IAvCtB;;AAwCI;;;;AAIAwG,EAAAA,YAAY,EAAE5G,SAAS,CAACK,IA5C5B;;AA6CI;AACAwG,EAAAA,sBAAsB,EAAE7G,SAAS,CAACK,IA9CtC;;AA+CI;AACAsG,EAAAA,sBAAsB,EAAE3G,SAAS,CAACK;AAhDtC;;;;;AC1GA;;;;;;;;IAOM+J;;;;;;;;;;;;;;;UACFpG,QAAQ;AACJjF,MAAAA,WAAW,EAAE;AADT;;UAkBR6J,mBAAmB,YAAM;AAAA,UACdH,QADc,GACF,MAAK1G,KADH,CACd0G,QADc;AAAA,UAEd1J,WAFc,GAEC,MAAKiF,KAFN,CAEdjF,WAFc;;AAIrB,UAAI0J,QAAJ,EAAc;AACVA,QAAAA,QAAQ,CAAC1J,WAAW,CAACW,GAAZ,CAAgB,UAACC,UAAD;AAAA,iBAAgBA,UAAU,CAACpE,IAA3B;AAAA,SAAhB,CAAD,CAAR;AACH;AACJ;;UAEDsN,yFAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AACRL,cAAAA,YADQ,GACQ,MAAKzG,KADb,CACRyG,YADQ;AAAA;AAAA;AAAA,qBAGY/L,OAAO,CAACsI,GAAR,CACnByD,YAAY,CAAC9I,GAAb;AAAA,qFAAiB,iBAAMoJ,WAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAET,OAAOA,WAAP,KAAuB,QAFd;AAAA;AAAA;AAAA;;AAAA;AAAA,iCAGIjN,iBAAiB,CAACiN,WAAD,CAHrB;;AAAA;AAGTvN,0BAAAA,IAHS;AAAA;AAAA;;AAAA;AAKTA,0BAAAA,IAAI,GAAGuN,WAAP;;AALS;AAAA;AAAA,iCAOMtM,QAAQ,CAACjB,IAAD,CAPd;;AAAA;AAOPW,0BAAAA,IAPO;AAAA,2DASN;AACHX,4BAAAA,IAAI,EAAJA,IADG;AAEHW,4BAAAA,IAAI,EAAJA;AAFG,2BATM;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAjB;;AAAA;AAAA;AAAA;AAAA,kBADmB,CAHZ;;AAAA;AAGL8I,cAAAA,QAHK;;AAoBX,oBAAKH,QAAL,CAAc,UAACb,KAAD;AAAA,uBAAY;AACtBjF,kBAAAA,WAAW,EAAE,GAAGgK,MAAH,CACT/E,KAAK,CAACjF,WADG,EAETiG,QAFS;AADS,iBAAZ;AAAA,eAAd,EAKI,MAAK4D,gBALT;;AApBW;AAAA;;AAAA;AAAA;AAAA;AA2BXI,cAAAA,OAAO,CAACC,GAAR;;AA3BW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;UA+BnBC;2EAAW,kBAAMC,cAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AACA5E,gBAAAA,UADA,GACc,MAAKxC,KADnB,CACAwC,UADA;;AAGP,sBAAKM,QAAL,CAAc,UAACb,KAAD,EAAW;AACrB;AACA,sBAAIO,UAAU,IAAI,CAAlB,EAAqB;AACjB,2BAAO;AACHxF,sBAAAA,WAAW,EAAE,GAAGgK,MAAH,CAAUI,cAAc,CAAC,CAAD,CAAxB;AADV,qBAAP;AAGH,mBANoB;;;AASrB,yBAAO;AACHpK,oBAAAA,WAAW,EAAE,GAAGgK,MAAH,CACT/E,KAAK,CAACjF,WADG,EAEToK,cAFS;AADV,mBAAP;AAMH,iBAfD,EAeG,MAAKP,gBAfR;;AAHO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;UAqBXQ,aAAa,UAACrD,cAAD,EAAiBsD,iBAAjB,EAAuC;AAChDtM,MAAAA,KAAK,CAAC6I,eAAN;AADgD,UAGzCE,QAHyC,GAG7B,MAAK/D,KAHwB,CAGzC+D,QAHyC;AAAA,UAIzC/G,WAJyC,GAI1B,MAAKiF,KAJqB,CAIzCjF,WAJyC;;AAOhD,UAAMuK,iBAAiB,GAAGvK,WAAW,CAACwK,MAAZ,CAAmB,UAAC5J,UAAD,EAAaC,CAAb,EAAmB;AAC5D,eAAOA,CAAC,KAAKyJ,iBAAb;AACH,OAFyB,CAA1B,CAPgD;;AAYhD,UAAIvD,QAAJ,EAAc;AACVA,QAAAA,QAAQ,CAACC,cAAc,CAACxK,IAAhB,CAAR;AACH,OAd+C;;;AAiBhD,YAAKsJ,QAAL,CAAc;AACV9F,QAAAA,WAAW,EAAEuK;AADH,OAAd,EAEG,MAAKV,gBAFR;AAGH;;UAEDyB,cAAc,UAAC/F,GAAD,EAAS;AAAA,wBACe,MAAKvC,KADpB;AAAA,UACZwG,cADY,eACZA,cADY;AAAA,UACItG,OADJ,eACIA,OADJ;;AAGnB,UAAIA,OAAJ,EAAa;AACTA,QAAAA,OAAO,CAACqC,GAAD,CAAP;AACH;;AAED,UAAIiE,cAAJ,EAAoB;AAChB,cAAK1D,QAAL,CAAc;AACV9F,UAAAA,WAAW,EAAE;AADH,SAAd,EAEG,MAAK6J,gBAFR;AAGH;AACJ;;UAED0B,aAAa,UAAChG,GAAD,EAAS;AAAA,yBACe,MAAKvC,KADpB;AAAA,UACXwG,cADW,gBACXA,cADW;AAAA,UACKuB,MADL,gBACKA,MADL;AAAA,UAEX/K,WAFW,GAEI,MAAKiF,KAFT,CAEXjF,WAFW;;AAIlB,UAAI+K,MAAJ,EAAY;AACRA,QAAAA,MAAM,CAAC/K,WAAW,CAACW,GAAZ,CAAgB,UAACC,UAAD;AAAA,iBAAgBA,UAAU,CAACpE,IAA3B;AAAA,SAAhB,CAAD,EAAmD+I,GAAnD,CAAN;AACH;;AAED,UAAIiE,cAAJ,EAAoB;AAChB,cAAK1D,QAAL,CAAc;AACV9F,UAAAA,WAAW,EAAE;AADH,SAAd,EAEG,MAAK6J,gBAFR;AAGH;AACJ;;;;;;;wCA5HmB;AAChB,WAAKC,gBAAL;AACH;;;2CAEsB;AAAA,UACZN,cADY,GACM,KAAKxG,KADX,CACZwG,cADY;;AAGnB,UAAIA,cAAJ,EAAoB;AAChB,aAAK1D,QAAL,CAAc;AACV9F,UAAAA,WAAW,EAAE;AADH,SAAd,EAEG,KAAK6J,gBAFR;AAGH;AACJ;;;6BAkHQ;AAAA,UACE7J,WADF,GACiB,KAAKiF,KADtB,CACEjF,WADF;AAGL,0BACIF,oBAAC,kBAAD,eACQ,KAAKkD,KADb;AAEI,QAAA,WAAW,EAAEhD,WAFjB;AAGI,QAAA,KAAK,EAAE,KAAKmK,QAHhB;AAII,QAAA,QAAQ,EAAE,KAAKE,UAJnB;AAKI,QAAA,OAAO,EAAE,KAAKiB,WALlB;AAMI,QAAA,MAAM,EAAE,KAAKC;AANjB,SADJ;AAUH;;;;EAhJwB3C;;AAmJ7ByC,cAAc,CAACxC,YAAf,GAA8B;AAC1BW,EAAAA,cAAc,EAAE,IADU;AAE1BhE,EAAAA,UAAU,EAAE,CAFc;AAG1BiE,EAAAA,YAAY,EAAE;AAHY,CAA9B;AAMA,wCAAA4B,cAAc,CAACrK,SAAf,gBACOkK,kBAAkB,CAAClK,SAD1B;AAEI;AACAwI,EAAAA,cAAc,EAAEvI,SAAS,CAACK,IAH9B;;AAII;AACAkE,EAAAA,UAAU,EAAEvE,SAAS,CAACkI,MAL1B;;AAMI;;;AAGAM,EAAAA,YAAY,EAAExI,SAAS,CAACG,OAAV,CACVH,SAAS,CAACqI,SAAV,CAAoB,CAChBrI,SAAS,CAACqC,MADM,EAEhBrC,SAAS,CAACiI,GAFM,CAApB,CADU,CATlB;;AAeI;;;;;;AAMA6B,EAAAA,MAAM,EAAE9J,SAAS,CAACI;AArBtB;;;;;;;"}
\ No newline at end of file
diff --git a/docs/intro.md b/docs/intro.md
index 37c08f20..c7abb771 100644
--- a/docs/intro.md
+++ b/docs/intro.md
@@ -1,7 +1,8 @@
# material-ui-dropzone
-> Material-UI-dropzone is a set of [React](https://github.com/facebook/react) components using [Material-UI](https://github.com/mui-org/material-ui) and is based on the excellent [react-dropzone](https://github.com/react-dropzone/react-dropzone) library.
+**Material-UI-Dropzone** is a set of [React](https://github.com/facebook/react) components using [Material-UI](https://github.com/mui-org/material-ui) and is based on the excellent [react-dropzone](https://github.com/react-dropzone/react-dropzone) library. These components provide:
-This components provide either a file-upload dropzone or a file-upload dropzone inside of a dialog.
+- File Upload Dropzone
+- File Upload Dropzone inside of a Dialog
-The file-upload dropzone features some snazzy "File Allowed/Not Allowed" effects, previews and alerts.
+Additionally, the File Upload Dropzone features some snazzy "File Allowed/Not Allowed" effects, previews and alerts.
diff --git a/docs/screenshots.md b/docs/screenshots.md
index 7cb8ad89..b1e35f49 100644
--- a/docs/screenshots.md
+++ b/docs/screenshots.md
@@ -1,14 +1,9 @@
-This is the Dialog component:
+Full documentation and samples are available here [https://yuvaleros.github.io/material-ui-dropzone](https://yuvaleros.github.io/material-ui-dropzone).
-
-
+**Preview: Dialog Component** with drag'n'drop effects for accepted and rejected files.
-When you drag a file onto the dropzone, you get a neat effect:
+
+
+
-
-
-And if you drag in a wrong type of file, you'll get yelled at:
-
-
-
-**N.B. This has some limitations (see [here](https://github.com/react-dropzone/react-dropzone/tree/master/examples/accept#browser-limitations) for more details).**
+**Disclaimer:** Drag'n'drop handling has some known limitations, see [here](https://github.com/react-dropzone/react-dropzone/tree/master/examples/accept#browser-limitations) for more details.
diff --git a/pics/dropzone.gif b/pics/dropzone.gif
new file mode 100644
index 00000000..99349a2c
Binary files /dev/null and b/pics/dropzone.gif differ
diff --git a/src/components/DropzoneArea.js b/src/components/DropzoneArea.js
index 10b4a4b1..a916174d 100644
--- a/src/components/DropzoneArea.js
+++ b/src/components/DropzoneArea.js
@@ -110,7 +110,7 @@ class DropzoneArea extends React.PureComponent {
// Notify removed file
if (onDelete) {
- onDelete(removedFileObj.file);
+ onDelete(removedFileObj.file, removedFileObjIdx);
}
// Update local state
@@ -165,6 +165,7 @@ DropzoneArea.propTypes = {
* Fired when a file is deleted from the previews panel.
*
* @param {File} deletedFile The file that was removed.
+ * @param {number} deletedFileIndex The index of the file that was removed.
*/
onDelete: PropTypes.func,
};
diff --git a/src/components/DropzoneAreaBase.js b/src/components/DropzoneAreaBase.js
index c9fe83d0..517d0cd0 100644
--- a/src/components/DropzoneAreaBase.js
+++ b/src/components/DropzoneAreaBase.js
@@ -252,13 +252,15 @@ class DropzoneAreaBase extends React.PureComponent {