component-shared 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Components/Charts/AreaChart.d.ts +19 -0
- package/Components/Charts/AreaChart.js +59 -0
- package/Components/Charts/AreaChart.js.map +1 -0
- package/Components/Charts/BarChart.d.ts +20 -0
- package/Components/Charts/BarChart.js +81 -0
- package/Components/Charts/BarChart.js.map +1 -0
- package/Components/Charts/DoughnutChart.d.ts +12 -0
- package/Components/Charts/DoughnutChart.js +81 -0
- package/Components/Charts/DoughnutChart.js.map +1 -0
- package/Components/Charts/HorizontalBarChart.d.ts +38 -0
- package/Components/Charts/HorizontalBarChart.js +83 -0
- package/Components/Charts/HorizontalBarChart.js.map +1 -0
- package/Components/Charts/LineChart.d.ts +21 -0
- package/Components/Charts/LineChart.js +133 -0
- package/Components/Charts/LineChart.js.map +1 -0
- package/Components/Charts/PieChart.d.ts +20 -0
- package/Components/Charts/PieChart.js +123 -0
- package/Components/Charts/PieChart.js.map +1 -0
- package/Components/Charts/index.d.ts +5 -0
- package/Components/Charts/index.js +6 -0
- package/Components/Charts/index.js.map +1 -0
- package/Components/Charts/type.d.ts +6 -0
- package/Components/Charts/type.js +2 -0
- package/Components/Charts/type.js.map +1 -0
- package/Components/CopyToClipboard/index.d.ts +23 -0
- package/Components/CopyToClipboard/index.js +54 -0
- package/Components/CopyToClipboard/index.js.map +1 -0
- package/Components/CopyToClipboard/indexv2.d.ts +30 -0
- package/Components/CopyToClipboard/indexv2.js +63 -0
- package/Components/CopyToClipboard/indexv2.js.map +1 -0
- package/Components/DropZone/components/DropzoneArea.d.ts +31 -0
- package/Components/DropZone/components/DropzoneArea.js +221 -0
- package/Components/DropZone/components/DropzoneArea.js.map +1 -0
- package/Components/DropZone/components/DropzoneAreaBase.d.ts +4 -0
- package/Components/DropZone/components/DropzoneAreaBase.js +555 -0
- package/Components/DropZone/components/DropzoneAreaBase.js.map +1 -0
- package/Components/DropZone/components/DropzoneDialog.d.ts +33 -0
- package/Components/DropZone/components/DropzoneDialog.js +222 -0
- package/Components/DropZone/components/DropzoneDialog.js.map +1 -0
- package/Components/DropZone/components/DropzoneDialogBase.d.ts +27 -0
- package/Components/DropZone/components/DropzoneDialogBase.js +152 -0
- package/Components/DropZone/components/DropzoneDialogBase.js.map +1 -0
- package/Components/DropZone/components/PreviewList.d.ts +3 -0
- package/Components/DropZone/components/PreviewList.js +132 -0
- package/Components/DropZone/components/PreviewList.js.map +1 -0
- package/Components/DropZone/components/SnackbarContentWrapper.d.ts +3 -0
- package/Components/DropZone/components/SnackbarContentWrapper.js +94 -0
- package/Components/DropZone/components/SnackbarContentWrapper.js.map +1 -0
- package/Components/DropZone/helpers.d.ts +5 -0
- package/Components/DropZone/helpers.js +64 -0
- package/Components/DropZone/helpers.js.map +1 -0
- package/Components/DropZone/index.d.ts +120 -0
- package/Components/EditAvatar/index.d.ts +26 -0
- package/Components/EditAvatar/index.js +137 -0
- package/Components/EditAvatar/index.js.map +1 -0
- package/Components/FlexInfiniteScroll/index.d.ts +26 -0
- package/Components/FlexInfiniteScroll/index.js +82 -0
- package/Components/FlexInfiniteScroll/index.js.map +1 -0
- package/Components/Helper/LazySpinner.d.ts +5 -0
- package/Components/Helper/LazySpinner.js +33 -0
- package/Components/Helper/LazySpinner.js.map +1 -0
- package/Components/Helper/RoleKey.d.ts +9 -0
- package/Components/Helper/RoleKey.js +15 -0
- package/Components/Helper/RoleKey.js.map +1 -0
- package/Components/Helper/index.d.ts +41 -0
- package/Components/Helper/index.js +247 -0
- package/Components/Helper/index.js.map +1 -0
- package/Components/HocLazyView/index.d.ts +51 -0
- package/Components/HocLazyView/index.js +123 -0
- package/Components/HocLazyView/index.js.map +1 -0
- package/Components/HtmlTooltip/index.d.ts +3 -0
- package/Components/HtmlTooltip/index.js +28 -0
- package/Components/HtmlTooltip/index.js.map +1 -0
- package/Components/Icons/index.d.ts +6 -0
- package/Components/Icons/index.js +52 -0
- package/Components/Icons/index.js.map +1 -0
- package/Components/LazySpinner.css +6 -0
- package/Components/MapLayout/index.d.ts +33 -0
- package/Components/MapLayout/index.js +80 -0
- package/Components/MapLayout/index.js.map +1 -0
- package/Components/MessageBox/index.d.ts +28 -0
- package/Components/MessageBox/index.js +93 -0
- package/Components/MessageBox/index.js.map +1 -0
- package/Components/Models/index.d.ts +641 -0
- package/Components/Models/index.js +87 -0
- package/Components/Models/index.js.map +1 -0
- package/Components/Redux/core/CRUDSlice.d.ts +20 -0
- package/Components/Redux/core/CRUDSlice.js +62 -0
- package/Components/Redux/core/CRUDSlice.js.map +1 -0
- package/Components/Redux/core/type.d.ts +11 -0
- package/Components/Redux/core/type.js +9 -0
- package/Components/Redux/core/type.js.map +1 -0
- package/Components/SkeletonLazyView/index.d.ts +9 -0
- package/Components/SkeletonLazyView/index.js +38 -0
- package/Components/SkeletonLazyView/index.js.map +1 -0
- package/Components/SkeletonService/index.d.ts +15 -0
- package/Components/SkeletonService/index.js +57 -0
- package/Components/SkeletonService/index.js.map +1 -0
- package/Components/SubComponent/index.d.ts +151 -0
- package/Components/SubComponent/index.js +883 -0
- package/Components/SubComponent/index.js.map +1 -0
- package/Components/SubComponent/v2/index.d.ts +20 -0
- package/Components/SubComponent/v2/index.js +58 -0
- package/Components/SubComponent/v2/index.js.map +1 -0
- package/Components/SubUserInputModels/ContactInfoForm/index.d.ts +11 -0
- package/Components/SubUserInputModels/ContactInfoForm/index.js +130 -0
- package/Components/SubUserInputModels/ContactInfoForm/index.js.map +1 -0
- package/Components/SubUserInputModels/index.d.ts +59 -0
- package/Components/SubUserInputModels/index.js +928 -0
- package/Components/SubUserInputModels/index.js.map +1 -0
- package/Components/SwitchComponent/index.d.ts +21 -0
- package/Components/SwitchComponent/index.js +71 -0
- package/Components/SwitchComponent/index.js.map +1 -0
- package/Components/TemplateModal/index.d.ts +29 -0
- package/Components/TemplateModal/index.js +94 -0
- package/Components/TemplateModal/index.js.map +1 -0
- package/Components/TemplateTable/FormTest/index.d.ts +4 -0
- package/Components/TemplateTable/FormTest/index.js +22 -0
- package/Components/TemplateTable/FormTest/index.js.map +1 -0
- package/Components/TemplateTable/InputFormBase/index.d.ts +23 -0
- package/Components/TemplateTable/InputFormBase/index.js +111 -0
- package/Components/TemplateTable/InputFormBase/index.js.map +1 -0
- package/Components/TemplateTable/InputFormModal/index.d.ts +22 -0
- package/Components/TemplateTable/InputFormModal/index.js +103 -0
- package/Components/TemplateTable/InputFormModal/index.js.map +1 -0
- package/Components/TemplateTable/ItemRowMenu/index.d.ts +13 -0
- package/Components/TemplateTable/ItemRowMenu/index.js +49 -0
- package/Components/TemplateTable/ItemRowMenu/index.js.map +1 -0
- package/Components/TemplateTable/PanelAction/index.d.ts +11 -0
- package/Components/TemplateTable/PanelAction/index.js +51 -0
- package/Components/TemplateTable/PanelAction/index.js.map +1 -0
- package/Components/TemplateTable/TableContext/index.d.ts +1 -0
- package/Components/TemplateTable/TableContext/index.js +2 -0
- package/Components/TemplateTable/TableContext/index.js.map +1 -0
- package/Components/TemplateTable/helper.d.ts +3 -0
- package/Components/TemplateTable/helper.js +20 -0
- package/Components/TemplateTable/helper.js.map +1 -0
- package/Components/TemplateTable/index.d.ts +49 -0
- package/Components/TemplateTable/index.js +208 -0
- package/Components/TemplateTable/index.js.map +1 -0
- package/Components/UploadLayout/ProgressItem.d.ts +27 -0
- package/Components/UploadLayout/ProgressItem.js +210 -0
- package/Components/UploadLayout/ProgressItem.js.map +1 -0
- package/Components/UploadLayout/UploadArea.d.ts +9 -0
- package/Components/UploadLayout/UploadArea.js +58 -0
- package/Components/UploadLayout/UploadArea.js.map +1 -0
- package/Components/UploadLayout/UploadMonitor.d.ts +42 -0
- package/Components/UploadLayout/UploadMonitor.js +259 -0
- package/Components/UploadLayout/UploadMonitor.js.map +1 -0
- package/Components/UploadLayout/UploadPannel.d.ts +4 -0
- package/Components/UploadLayout/UploadPannel.js +20 -0
- package/Components/UploadLayout/UploadPannel.js.map +1 -0
- package/Components/UploadLayout/UploadStatus.d.ts +21 -0
- package/Components/UploadLayout/UploadStatus.js +184 -0
- package/Components/UploadLayout/UploadStatus.js.map +1 -0
- package/Components/UploadLayout/index.d.ts +69 -0
- package/Components/UploadLayout/index.js +265 -0
- package/Components/UploadLayout/index.js.map +1 -0
- package/Components/UploadLayout/types.d.ts +10 -0
- package/Components/UploadLayout/types.js +2 -0
- package/Components/UploadLayout/types.js.map +1 -0
- package/Components/Views/Billing/BillingForm/index.d.ts +16 -0
- package/Components/Views/Billing/BillingForm/index.js +49 -0
- package/Components/Views/Billing/BillingForm/index.js.map +1 -0
- package/Components/Views/Billing/ItemBillingRowMenu/index.d.ts +23 -0
- package/Components/Views/Billing/ItemBillingRowMenu/index.js +153 -0
- package/Components/Views/Billing/ItemBillingRowMenu/index.js.map +1 -0
- package/Components/Views/Billing/MenuMore/index.d.ts +6 -0
- package/Components/Views/Billing/MenuMore/index.js +89 -0
- package/Components/Views/Billing/MenuMore/index.js.map +1 -0
- package/Components/Views/Billing/SubBillingFormComponent/index.d.ts +14 -0
- package/Components/Views/Billing/SubBillingFormComponent/index.js +306 -0
- package/Components/Views/Billing/SubBillingFormComponent/index.js.map +1 -0
- package/Components/Views/BillingDetail/BillingDetailForm/index.d.ts +16 -0
- package/Components/Views/BillingDetail/BillingDetailForm/index.js +49 -0
- package/Components/Views/BillingDetail/BillingDetailForm/index.js.map +1 -0
- package/Components/Views/BillingDetail/SubComponent/index.d.ts +10 -0
- package/Components/Views/BillingDetail/SubComponent/index.js +152 -0
- package/Components/Views/BillingDetail/SubComponent/index.js.map +1 -0
- package/Components/Views/DashBoard/Common/index.d.ts +18 -0
- package/Components/Views/DashBoard/Common/index.js +55 -0
- package/Components/Views/DashBoard/Common/index.js.map +1 -0
- package/Components/Views/DashBoard/DeliveryInfo/index.d.ts +17 -0
- package/Components/Views/DashBoard/DeliveryInfo/index.js +92 -0
- package/Components/Views/DashBoard/DeliveryInfo/index.js.map +1 -0
- package/Components/Views/DashBoard/OverViewInfo/index.d.ts +29 -0
- package/Components/Views/DashBoard/OverViewInfo/index.js +237 -0
- package/Components/Views/DashBoard/OverViewInfo/index.js.map +1 -0
- package/Components/Views/DashBoard/PanelIntro/index.d.ts +4 -0
- package/Components/Views/DashBoard/PanelIntro/index.js +76 -0
- package/Components/Views/DashBoard/PanelIntro/index.js.map +1 -0
- package/Components/Views/DashBoard/SummaryPanel/index.d.ts +20 -0
- package/Components/Views/DashBoard/SummaryPanel/index.js +229 -0
- package/Components/Views/DashBoard/SummaryPanel/index.js.map +1 -0
- package/Components/Views/DashBoard/TopChannel/index.d.ts +13 -0
- package/Components/Views/DashBoard/TopChannel/index.js +89 -0
- package/Components/Views/DashBoard/TopChannel/index.js.map +1 -0
- package/Components/Views/DashBoard/TopViewTable/index.d.ts +12 -0
- package/Components/Views/DashBoard/TopViewTable/index.js +79 -0
- package/Components/Views/DashBoard/TopViewTable/index.js.map +1 -0
- package/Components/Views/DashBoard/type.d.ts +9 -0
- package/Components/Views/DashBoard/type.js +2 -0
- package/Components/Views/DashBoard/type.js.map +1 -0
- package/Components/Views/Helper/index.d.ts +2 -0
- package/Components/Views/Helper/index.js +10 -0
- package/Components/Views/Helper/index.js.map +1 -0
- package/Components/YoutubeImage/index.d.ts +45 -0
- package/Components/YoutubeImage/index.js +52 -0
- package/Components/YoutubeImage/index.js.map +1 -0
- package/Components/excel-icon-disabled.svg +16 -0
- package/Components/excel-icon.svg +9 -0
- package/Components/index.css +0 -0
- package/Components/index.d.ts +120 -0
- package/ComponentsV2/GlobalModal/index.d.ts +37 -0
- package/ComponentsV2/GlobalModal/index.js +100 -0
- package/ComponentsV2/GlobalModal/index.js.map +1 -0
- package/ComponentsV2/HeightEqualWidth/index.d.ts +8 -0
- package/ComponentsV2/HeightEqualWidth/index.js +41 -0
- package/ComponentsV2/HeightEqualWidth/index.js.map +1 -0
- package/ComponentsV2/LazyView/index.d.ts +6 -0
- package/ComponentsV2/LazyView/index.js +30 -0
- package/ComponentsV2/LazyView/index.js.map +1 -0
- package/ComponentsV2/LoadingAnimation/LoadingSquare.d.ts +3 -0
- package/ComponentsV2/LoadingAnimation/LoadingSquare.js +203 -0
- package/ComponentsV2/LoadingAnimation/LoadingSquare.js.map +1 -0
- package/ComponentsV2/LoadingAnimation/index.d.ts +9 -0
- package/ComponentsV2/LoadingAnimation/index.js +25 -0
- package/ComponentsV2/LoadingAnimation/index.js.map +1 -0
- package/ComponentsV2/TableTemplate/CRUDPannel.d.ts +22 -0
- package/ComponentsV2/TableTemplate/CRUDPannel.js +199 -0
- package/ComponentsV2/TableTemplate/CRUDPannel.js.map +1 -0
- package/ComponentsV2/TableTemplate/CreateTableTemplate.d.ts +60 -0
- package/ComponentsV2/TableTemplate/CreateTableTemplate.js +330 -0
- package/ComponentsV2/TableTemplate/CreateTableTemplate.js.map +1 -0
- package/ComponentsV2/TableTemplate/CustomGridFilterPanel.d.ts +6 -0
- package/ComponentsV2/TableTemplate/CustomGridFilterPanel.js +71 -0
- package/ComponentsV2/TableTemplate/CustomGridFilterPanel.js.map +1 -0
- package/ComponentsV2/TableTemplate/CustomerGridToolbar.d.ts +2 -0
- package/ComponentsV2/TableTemplate/CustomerGridToolbar.js +45 -0
- package/ComponentsV2/TableTemplate/CustomerGridToolbar.js.map +1 -0
- package/ComponentsV2/TableTemplate/ItemRowMenu/index.d.ts +14 -0
- package/ComponentsV2/TableTemplate/ItemRowMenu/index.js +49 -0
- package/ComponentsV2/TableTemplate/ItemRowMenu/index.js.map +1 -0
- package/ComponentsV2/TableTemplate/MapOperators.d.ts +5 -0
- package/ComponentsV2/TableTemplate/MapOperators.js +49 -0
- package/ComponentsV2/TableTemplate/MapOperators.js.map +1 -0
- package/ComponentsV2/TableTemplate/NoRowsOverlay.d.ts +5 -0
- package/ComponentsV2/TableTemplate/NoRowsOverlay.js +39 -0
- package/ComponentsV2/TableTemplate/NoRowsOverlay.js.map +1 -0
- package/ComponentsV2/TableTemplate/TableConverter.d.ts +33 -0
- package/ComponentsV2/TableTemplate/TableConverter.js +112 -0
- package/ComponentsV2/TableTemplate/TableConverter.js.map +1 -0
- package/ComponentsV2/TableTemplate/TableFormatter.d.ts +10 -0
- package/ComponentsV2/TableTemplate/TableFormatter.js +122 -0
- package/ComponentsV2/TableTemplate/TableFormatter.js.map +1 -0
- package/ComponentsV2/TableTemplate/TableTemplateContext.d.ts +16 -0
- package/ComponentsV2/TableTemplate/TableTemplateContext.js +6 -0
- package/ComponentsV2/TableTemplate/TableTemplateContext.js.map +1 -0
- package/ComponentsV2/TableTemplate/index.d.ts +14 -0
- package/ComponentsV2/TableTemplate/index.js +9 -0
- package/ComponentsV2/TableTemplate/index.js.map +1 -0
- package/ComponentsV2/TableTemplate/type.d.ts +59 -0
- package/ComponentsV2/TableTemplate/type.js +14 -0
- package/ComponentsV2/TableTemplate/type.js.map +1 -0
- package/ComponentsV2/index.css +4 -0
- package/ComponentsV2/index.d.ts +4 -0
- package/ComponentsV2/index.js +6 -0
- package/ComponentsV2/index.js.map +1 -0
- package/Services/Getway/RequestHelper.d.ts +2 -0
- package/Services/Getway/RequestHelper.js +51 -0
- package/Services/Getway/RequestHelper.js.map +1 -0
- package/Services/Getway/index.d.ts +3 -0
- package/Services/Getway/index.js +14 -0
- package/Services/Getway/index.js.map +1 -0
- package/Services/ServiceBase.d.ts +32 -0
- package/Services/ServiceBase.js +523 -0
- package/Services/ServiceBase.js.map +1 -0
- package/_virtual/_rollupPluginBabelHelpers.js +393 -0
- package/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/index.css +2 -0
- package/index.css.map +1 -0
- package/package.json +118 -0
- package/types/clipboard-copy.d.ts +6 -0
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
import { inherits as _inherits, createClass as _createClass, objectSpread2 as _objectSpread2, classCallCheck as _classCallCheck, callSuper as _callSuper, defineProperty as _defineProperty, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import Snackbar from '@mui/material/Snackbar';
|
|
3
|
+
import Typography from '@mui/material/Typography';
|
|
4
|
+
import { withStyles } from '@mui/styles';
|
|
5
|
+
import AttachFileIcon from '@mui/icons-material/AttachFile';
|
|
6
|
+
import CloudUploadIcon from '@mui/icons-material/CloudUpload';
|
|
7
|
+
import clsx from 'clsx';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
import { Fragment } from 'react';
|
|
11
|
+
import Dropzone from 'react-dropzone';
|
|
12
|
+
import { defaultTheme, isImage, convertBytesToMbsOrKbs } from '../helpers.js';
|
|
13
|
+
import PreviewList from './PreviewList.js';
|
|
14
|
+
import SnackbarContentWrapper from './SnackbarContentWrapper.js';
|
|
15
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
16
|
+
|
|
17
|
+
var styles = function styles(_ref) {
|
|
18
|
+
var palette = _ref.palette,
|
|
19
|
+
shape = _ref.shape,
|
|
20
|
+
spacing = _ref.spacing;
|
|
21
|
+
return {
|
|
22
|
+
"@keyframes progress": {
|
|
23
|
+
"0%": {
|
|
24
|
+
backgroundPosition: "0 0"
|
|
25
|
+
},
|
|
26
|
+
"100%": {
|
|
27
|
+
backgroundPosition: "-70px 0"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
root: {
|
|
31
|
+
position: "relative",
|
|
32
|
+
width: "100%",
|
|
33
|
+
minHeight: "250px",
|
|
34
|
+
backgroundColor: palette.background.paper,
|
|
35
|
+
border: "dashed",
|
|
36
|
+
borderColor: palette.divider,
|
|
37
|
+
borderRadius: shape.borderRadius,
|
|
38
|
+
boxSizing: "border-box",
|
|
39
|
+
cursor: "pointer",
|
|
40
|
+
overflow: "hidden"
|
|
41
|
+
},
|
|
42
|
+
active: {
|
|
43
|
+
animation: "$progress 2s linear infinite !important",
|
|
44
|
+
// eslint-disable-next-line max-len
|
|
45
|
+
backgroundImage: "repeating-linear-gradient(-45deg, ".concat(palette.background.paper, ", ").concat(palette.background.paper, " 25px, ").concat(palette.divider, " 25px, ").concat(palette.divider, " 50px)"),
|
|
46
|
+
backgroundSize: "150% 100%",
|
|
47
|
+
border: "solid",
|
|
48
|
+
borderColor: palette.primary.light
|
|
49
|
+
},
|
|
50
|
+
invalid: {
|
|
51
|
+
// eslint-disable-next-line max-len
|
|
52
|
+
backgroundImage: "repeating-linear-gradient(-45deg, ".concat(palette.error.light, ", ").concat(palette.error.light, " 25px, ").concat(palette.error.dark, " 25px, ").concat(palette.error.dark, " 50px)"),
|
|
53
|
+
borderColor: palette.error.main
|
|
54
|
+
},
|
|
55
|
+
textContainer: {
|
|
56
|
+
textAlign: "center"
|
|
57
|
+
},
|
|
58
|
+
text: {
|
|
59
|
+
marginBottom: spacing(3),
|
|
60
|
+
marginTop: spacing(3)
|
|
61
|
+
},
|
|
62
|
+
icon: {
|
|
63
|
+
width: 51,
|
|
64
|
+
height: 51,
|
|
65
|
+
color: palette.text.primary
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
var defaultSnackbarAnchorOrigin = {
|
|
70
|
+
horizontal: "left",
|
|
71
|
+
vertical: "bottom"
|
|
72
|
+
};
|
|
73
|
+
var defaultGetPreviewIcon = function defaultGetPreviewIcon(fileObject, classes) {
|
|
74
|
+
if (isImage(fileObject.file)) {
|
|
75
|
+
return /*#__PURE__*/jsx("img", {
|
|
76
|
+
className: classes.image,
|
|
77
|
+
role: "presentation",
|
|
78
|
+
alt: "",
|
|
79
|
+
src: fileObject.data
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return /*#__PURE__*/jsx(AttachFileIcon, {
|
|
83
|
+
className: classes.image
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* This components creates a Material-UI Dropzone, with previews and snackbar notifications.
|
|
89
|
+
*/
|
|
90
|
+
var DropzoneAreaBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
91
|
+
function DropzoneAreaBase() {
|
|
92
|
+
var _this;
|
|
93
|
+
_classCallCheck(this, DropzoneAreaBase);
|
|
94
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
95
|
+
args[_key] = arguments[_key];
|
|
96
|
+
}
|
|
97
|
+
_this = _callSuper(this, DropzoneAreaBase, [].concat(args));
|
|
98
|
+
_defineProperty(_this, "state", {
|
|
99
|
+
openSnackBar: false,
|
|
100
|
+
snackbarMessage: "",
|
|
101
|
+
snackbarVariant: "success"
|
|
102
|
+
});
|
|
103
|
+
_defineProperty(_this, "handleDropAccepted", /*#__PURE__*/function () {
|
|
104
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(acceptedFiles, evt) {
|
|
105
|
+
var _this$props, fileObjects, filesLimit, getFileAddedMessage, getFileLimitExceedMessage, onAdd, onDrop, fileObjs, message;
|
|
106
|
+
return _regenerator().w(function (_context) {
|
|
107
|
+
while (1) switch (_context.n) {
|
|
108
|
+
case 0:
|
|
109
|
+
_this$props = _this.props, fileObjects = _this$props.fileObjects, filesLimit = _this$props.filesLimit, getFileAddedMessage = _this$props.getFileAddedMessage, getFileLimitExceedMessage = _this$props.getFileLimitExceedMessage, onAdd = _this$props.onAdd, onDrop = _this$props.onDrop;
|
|
110
|
+
if (!(filesLimit > 1 && fileObjects.length + acceptedFiles.length > filesLimit)) {
|
|
111
|
+
_context.n = 1;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
_this.setState({
|
|
115
|
+
openSnackBar: true,
|
|
116
|
+
snackbarMessage: getFileLimitExceedMessage(filesLimit),
|
|
117
|
+
snackbarVariant: "error"
|
|
118
|
+
}, _this.notifyAlert);
|
|
119
|
+
return _context.a(2);
|
|
120
|
+
case 1:
|
|
121
|
+
// Notify Drop event
|
|
122
|
+
if (onDrop) {
|
|
123
|
+
onDrop(acceptedFiles, evt);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Retrieve fileObjects data
|
|
127
|
+
// const fileObjs = await Promise.all(
|
|
128
|
+
// acceptedFiles.map(async (file) => {
|
|
129
|
+
// const data = await readFile(file);
|
|
130
|
+
// return {
|
|
131
|
+
// file,
|
|
132
|
+
// data,
|
|
133
|
+
// };
|
|
134
|
+
// })
|
|
135
|
+
// );
|
|
136
|
+
fileObjs = acceptedFiles.map(function (file) {
|
|
137
|
+
return {
|
|
138
|
+
file: file
|
|
139
|
+
};
|
|
140
|
+
}); // Notify added files
|
|
141
|
+
if (onAdd) {
|
|
142
|
+
onAdd(fileObjs);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Display message
|
|
146
|
+
message = fileObjs.reduce(function (msg, fileObj) {
|
|
147
|
+
return msg + getFileAddedMessage(fileObj.file.name);
|
|
148
|
+
}, "");
|
|
149
|
+
_this.setState({
|
|
150
|
+
openSnackBar: true,
|
|
151
|
+
snackbarMessage: message,
|
|
152
|
+
snackbarVariant: "success"
|
|
153
|
+
}, _this.notifyAlert);
|
|
154
|
+
case 2:
|
|
155
|
+
return _context.a(2);
|
|
156
|
+
}
|
|
157
|
+
}, _callee);
|
|
158
|
+
}));
|
|
159
|
+
return function (_x, _x2) {
|
|
160
|
+
return _ref2.apply(this, arguments);
|
|
161
|
+
};
|
|
162
|
+
}());
|
|
163
|
+
_defineProperty(_this, "handleDropRejected", function (rejectedFiles, evt) {
|
|
164
|
+
var _this$props2 = _this.props,
|
|
165
|
+
acceptedFiles = _this$props2.acceptedFiles,
|
|
166
|
+
filesLimit = _this$props2.filesLimit,
|
|
167
|
+
fileObjects = _this$props2.fileObjects,
|
|
168
|
+
getDropRejectMessage = _this$props2.getDropRejectMessage,
|
|
169
|
+
getFileLimitExceedMessage = _this$props2.getFileLimitExceedMessage,
|
|
170
|
+
maxFileSize = _this$props2.maxFileSize,
|
|
171
|
+
onDropRejected = _this$props2.onDropRejected;
|
|
172
|
+
var message = "";
|
|
173
|
+
if (fileObjects.length + rejectedFiles.length > filesLimit) {
|
|
174
|
+
message = getFileLimitExceedMessage(filesLimit);
|
|
175
|
+
} else {
|
|
176
|
+
rejectedFiles.forEach(function (rejectedFile) {
|
|
177
|
+
message = getDropRejectMessage(rejectedFile.file, acceptedFiles, maxFileSize);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (onDropRejected) {
|
|
181
|
+
onDropRejected(rejectedFiles, evt);
|
|
182
|
+
}
|
|
183
|
+
_this.setState({
|
|
184
|
+
openSnackBar: true,
|
|
185
|
+
snackbarMessage: message,
|
|
186
|
+
snackbarVariant: "error"
|
|
187
|
+
}, _this.notifyAlert);
|
|
188
|
+
});
|
|
189
|
+
_defineProperty(_this, "handleRemove", function (fileIndex) {
|
|
190
|
+
return function (event) {
|
|
191
|
+
event.stopPropagation();
|
|
192
|
+
var _this$props3 = _this.props,
|
|
193
|
+
fileObjects = _this$props3.fileObjects,
|
|
194
|
+
getFileRemovedMessage = _this$props3.getFileRemovedMessage,
|
|
195
|
+
onDelete = _this$props3.onDelete;
|
|
196
|
+
|
|
197
|
+
// Find removed fileObject
|
|
198
|
+
var removedFileObj = fileObjects[fileIndex];
|
|
199
|
+
|
|
200
|
+
// Notify removed file
|
|
201
|
+
if (onDelete) {
|
|
202
|
+
onDelete(removedFileObj, fileIndex);
|
|
203
|
+
}
|
|
204
|
+
_this.setState({
|
|
205
|
+
openSnackBar: true,
|
|
206
|
+
snackbarMessage: getFileRemovedMessage(removedFileObj.file.name),
|
|
207
|
+
snackbarVariant: "info"
|
|
208
|
+
}, _this.notifyAlert);
|
|
209
|
+
};
|
|
210
|
+
});
|
|
211
|
+
_defineProperty(_this, "handleCloseSnackbar", function () {
|
|
212
|
+
_this.setState({
|
|
213
|
+
openSnackBar: false
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
return _this;
|
|
217
|
+
}
|
|
218
|
+
_inherits(DropzoneAreaBase, _React$PureComponent);
|
|
219
|
+
return _createClass(DropzoneAreaBase, [{
|
|
220
|
+
key: "notifyAlert",
|
|
221
|
+
value: function notifyAlert() {
|
|
222
|
+
var onAlert = this.props.onAlert;
|
|
223
|
+
var _this$state = this.state,
|
|
224
|
+
openSnackBar = _this$state.openSnackBar,
|
|
225
|
+
snackbarMessage = _this$state.snackbarMessage,
|
|
226
|
+
snackbarVariant = _this$state.snackbarVariant;
|
|
227
|
+
if (openSnackBar && onAlert) {
|
|
228
|
+
onAlert(snackbarMessage, snackbarVariant);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}, {
|
|
232
|
+
key: "render",
|
|
233
|
+
value: function render() {
|
|
234
|
+
var _this2 = this;
|
|
235
|
+
var _this$props4 = this.props,
|
|
236
|
+
acceptedFiles = _this$props4.acceptedFiles,
|
|
237
|
+
alertSnackbarProps = _this$props4.alertSnackbarProps,
|
|
238
|
+
classes = _this$props4.classes,
|
|
239
|
+
disableRejectionFeedback = _this$props4.disableRejectionFeedback,
|
|
240
|
+
dropzoneClass = _this$props4.dropzoneClass,
|
|
241
|
+
dropzoneParagraphClass = _this$props4.dropzoneParagraphClass,
|
|
242
|
+
dropzoneProps = _this$props4.dropzoneProps,
|
|
243
|
+
dropzoneText = _this$props4.dropzoneText,
|
|
244
|
+
fileObjects = _this$props4.fileObjects,
|
|
245
|
+
filesLimit = _this$props4.filesLimit,
|
|
246
|
+
getPreviewIcon = _this$props4.getPreviewIcon,
|
|
247
|
+
Icon = _this$props4.Icon,
|
|
248
|
+
inputProps = _this$props4.inputProps,
|
|
249
|
+
maxFileSize = _this$props4.maxFileSize,
|
|
250
|
+
previewChipProps = _this$props4.previewChipProps,
|
|
251
|
+
previewGridClasses = _this$props4.previewGridClasses,
|
|
252
|
+
previewGridProps = _this$props4.previewGridProps,
|
|
253
|
+
previewText = _this$props4.previewText,
|
|
254
|
+
showAlerts = _this$props4.showAlerts,
|
|
255
|
+
showFileNames = _this$props4.showFileNames,
|
|
256
|
+
showFileNamesInPreview = _this$props4.showFileNamesInPreview,
|
|
257
|
+
showPreviews = _this$props4.showPreviews,
|
|
258
|
+
showPreviewsInDropzone = _this$props4.showPreviewsInDropzone,
|
|
259
|
+
useChipsForPreview = _this$props4.useChipsForPreview;
|
|
260
|
+
var _this$state2 = this.state,
|
|
261
|
+
openSnackBar = _this$state2.openSnackBar,
|
|
262
|
+
snackbarMessage = _this$state2.snackbarMessage,
|
|
263
|
+
snackbarVariant = _this$state2.snackbarVariant;
|
|
264
|
+
|
|
265
|
+
// const acceptFiles = acceptedFiles?.join(",");
|
|
266
|
+
var isMultiple = filesLimit > 1;
|
|
267
|
+
var previewsVisible = showPreviews && fileObjects.length > 0;
|
|
268
|
+
var previewsInDropzoneVisible = showPreviewsInDropzone && fileObjects.length > 0;
|
|
269
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
270
|
+
children: [/*#__PURE__*/jsx(Dropzone, _objectSpread2(_objectSpread2({}, dropzoneProps), {}, {
|
|
271
|
+
accept: acceptedFiles,
|
|
272
|
+
onDropAccepted: this.handleDropAccepted,
|
|
273
|
+
onDropRejected: this.handleDropRejected,
|
|
274
|
+
maxSize: maxFileSize,
|
|
275
|
+
multiple: isMultiple,
|
|
276
|
+
children: function children(_ref3) {
|
|
277
|
+
var getRootProps = _ref3.getRootProps,
|
|
278
|
+
getInputProps = _ref3.getInputProps,
|
|
279
|
+
isDragActive = _ref3.isDragActive,
|
|
280
|
+
isDragReject = _ref3.isDragReject;
|
|
281
|
+
return /*#__PURE__*/jsxs("div", _objectSpread2(_objectSpread2({}, getRootProps({
|
|
282
|
+
className: clsx(classes.root, dropzoneClass, isDragActive && classes.active, !disableRejectionFeedback && isDragReject && classes.invalid)
|
|
283
|
+
})), {}, {
|
|
284
|
+
children: [/*#__PURE__*/jsx("input", _objectSpread2({}, getInputProps(inputProps))), /*#__PURE__*/jsxs("div", {
|
|
285
|
+
className: classes.textContainer,
|
|
286
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
287
|
+
variant: "h5",
|
|
288
|
+
component: "p",
|
|
289
|
+
className: clsx(classes.text, dropzoneParagraphClass),
|
|
290
|
+
children: dropzoneText
|
|
291
|
+
}), Icon ? /*#__PURE__*/jsx(Icon, {
|
|
292
|
+
className: classes.icon
|
|
293
|
+
}) : /*#__PURE__*/jsx(CloudUploadIcon, {
|
|
294
|
+
className: classes.icon
|
|
295
|
+
})]
|
|
296
|
+
}), previewsInDropzoneVisible && /*#__PURE__*/jsx(PreviewList, {
|
|
297
|
+
fileObjects: fileObjects,
|
|
298
|
+
handleRemove: _this2.handleRemove,
|
|
299
|
+
getPreviewIcon: getPreviewIcon,
|
|
300
|
+
showFileNames: showFileNames,
|
|
301
|
+
useChipsForPreview: useChipsForPreview,
|
|
302
|
+
previewChipProps: previewChipProps,
|
|
303
|
+
previewGridClasses: previewGridClasses,
|
|
304
|
+
previewGridProps: previewGridProps
|
|
305
|
+
})]
|
|
306
|
+
}));
|
|
307
|
+
}
|
|
308
|
+
})), previewsVisible && /*#__PURE__*/jsxs(Fragment, {
|
|
309
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
310
|
+
variant: "subtitle1",
|
|
311
|
+
component: "span",
|
|
312
|
+
children: previewText
|
|
313
|
+
}), /*#__PURE__*/jsx(PreviewList, {
|
|
314
|
+
fileObjects: fileObjects,
|
|
315
|
+
handleRemove: this.handleRemove,
|
|
316
|
+
getPreviewIcon: getPreviewIcon,
|
|
317
|
+
showFileNames: showFileNamesInPreview,
|
|
318
|
+
useChipsForPreview: useChipsForPreview,
|
|
319
|
+
previewChipProps: previewChipProps,
|
|
320
|
+
previewGridClasses: previewGridClasses,
|
|
321
|
+
previewGridProps: previewGridProps
|
|
322
|
+
})]
|
|
323
|
+
}), (typeof showAlerts === "boolean" && showAlerts || Array.isArray(showAlerts) && showAlerts.includes(snackbarVariant)) && /*#__PURE__*/jsx(Snackbar, _objectSpread2(_objectSpread2({
|
|
324
|
+
anchorOrigin: defaultSnackbarAnchorOrigin,
|
|
325
|
+
autoHideDuration: 6000
|
|
326
|
+
}, alertSnackbarProps), {}, {
|
|
327
|
+
open: openSnackBar,
|
|
328
|
+
onClose: this.handleCloseSnackbar,
|
|
329
|
+
children: /*#__PURE__*/jsx(SnackbarContentWrapper, {
|
|
330
|
+
onClose: this.handleCloseSnackbar,
|
|
331
|
+
variant: snackbarVariant,
|
|
332
|
+
message: snackbarMessage
|
|
333
|
+
})
|
|
334
|
+
}))]
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
}]);
|
|
338
|
+
}(React.PureComponent);
|
|
339
|
+
DropzoneAreaBase.defaultProps = {
|
|
340
|
+
acceptedFiles: [],
|
|
341
|
+
filesLimit: 3,
|
|
342
|
+
fileObjects: [],
|
|
343
|
+
maxFileSize: 3000000,
|
|
344
|
+
dropzoneText: "Drag and drop a file here or click",
|
|
345
|
+
previewText: "Preview:",
|
|
346
|
+
disableRejectionFeedback: false,
|
|
347
|
+
showPreviews: false,
|
|
348
|
+
// By default previews show up under in the dialog and inside in the standalone
|
|
349
|
+
showPreviewsInDropzone: true,
|
|
350
|
+
showFileNames: false,
|
|
351
|
+
showFileNamesInPreview: false,
|
|
352
|
+
useChipsForPreview: false,
|
|
353
|
+
previewChipProps: {},
|
|
354
|
+
previewGridClasses: {},
|
|
355
|
+
previewGridProps: {},
|
|
356
|
+
showAlerts: true,
|
|
357
|
+
alertSnackbarProps: {
|
|
358
|
+
anchorOrigin: {
|
|
359
|
+
horizontal: "left",
|
|
360
|
+
vertical: "bottom"
|
|
361
|
+
},
|
|
362
|
+
autoHideDuration: 6000
|
|
363
|
+
},
|
|
364
|
+
getFileLimitExceedMessage: function getFileLimitExceedMessage(filesLimit) {
|
|
365
|
+
return "Maximum allowed number of files exceeded. Only ".concat(filesLimit, " allowed");
|
|
366
|
+
},
|
|
367
|
+
getFileAddedMessage: function getFileAddedMessage(fileName) {
|
|
368
|
+
return "File ".concat(fileName, " successfully added.");
|
|
369
|
+
},
|
|
370
|
+
getPreviewIcon: defaultGetPreviewIcon,
|
|
371
|
+
getFileRemovedMessage: function getFileRemovedMessage(fileName) {
|
|
372
|
+
return "File ".concat(fileName, " removed.");
|
|
373
|
+
},
|
|
374
|
+
getDropRejectMessage: function getDropRejectMessage(rejectedFile, acceptedFiles, maxFileSize) {
|
|
375
|
+
var message = "File ".concat(rejectedFile.name, " was rejected. ");
|
|
376
|
+
if (!acceptedFiles.includes(rejectedFile.type)) {
|
|
377
|
+
message += "File type not supported. ";
|
|
378
|
+
}
|
|
379
|
+
if (rejectedFile.size > maxFileSize) {
|
|
380
|
+
message += "File is too big. Size limit is " + convertBytesToMbsOrKbs(maxFileSize) + ". ";
|
|
381
|
+
}
|
|
382
|
+
return message;
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
var FileObjectShape = PropTypes.shape({
|
|
386
|
+
file: PropTypes.object,
|
|
387
|
+
data: PropTypes.any
|
|
388
|
+
});
|
|
389
|
+
DropzoneAreaBase.propTypes = {
|
|
390
|
+
/** @ignore */
|
|
391
|
+
classes: PropTypes.object.isRequired,
|
|
392
|
+
/** A list of file types to accept.
|
|
393
|
+
* @see See [here](https://react-dropzone.js.org/#section-accepting-specific-file-types) for more details.
|
|
394
|
+
*/
|
|
395
|
+
acceptedFiles: PropTypes.object,
|
|
396
|
+
/** Maximum number of files that can be loaded into the dropzone. */
|
|
397
|
+
filesLimit: PropTypes.number,
|
|
398
|
+
/** Icon to be displayed inside the dropzone area. */
|
|
399
|
+
Icon: PropTypes.elementType,
|
|
400
|
+
/** Currently loaded files. */
|
|
401
|
+
fileObjects: PropTypes.arrayOf(FileObjectShape),
|
|
402
|
+
/** Maximum file size (in bytes) that the dropzone will accept. */
|
|
403
|
+
maxFileSize: PropTypes.number,
|
|
404
|
+
/** Text inside the dropzone. */
|
|
405
|
+
dropzoneText: PropTypes.string,
|
|
406
|
+
/** Custom CSS class name for dropzone container. */
|
|
407
|
+
dropzoneClass: PropTypes.string,
|
|
408
|
+
/** Custom CSS class name for text inside the container. */
|
|
409
|
+
dropzoneParagraphClass: PropTypes.string,
|
|
410
|
+
/** Disable feedback effect when dropping rejected files. */
|
|
411
|
+
disableRejectionFeedback: PropTypes.bool,
|
|
412
|
+
/** Shows previews **BELOW** the dropzone. */
|
|
413
|
+
showPreviews: PropTypes.bool,
|
|
414
|
+
/** Shows preview **INSIDE** the dropzone area. */
|
|
415
|
+
showPreviewsInDropzone: PropTypes.bool,
|
|
416
|
+
/** Shows file name under the dropzone image. */
|
|
417
|
+
showFileNames: PropTypes.bool,
|
|
418
|
+
/** Shows file name under the image. */
|
|
419
|
+
showFileNamesInPreview: PropTypes.bool,
|
|
420
|
+
/** Uses deletable Material-UI Chip components to display file names. */
|
|
421
|
+
useChipsForPreview: PropTypes.bool,
|
|
422
|
+
/**
|
|
423
|
+
* Props to pass to the Material-UI Chip components.<br/>Requires `useChipsForPreview` prop to be `true`.
|
|
424
|
+
*
|
|
425
|
+
* @see See [Material-UI Chip](https://material-ui.com/api/chip/#props) for available values.
|
|
426
|
+
*/
|
|
427
|
+
previewChipProps: PropTypes.object,
|
|
428
|
+
/**
|
|
429
|
+
* Custom CSS classNames for preview Grid components.<br/>
|
|
430
|
+
* Should be in the form {container: string, item: string, image: string}.
|
|
431
|
+
*/
|
|
432
|
+
previewGridClasses: PropTypes.object,
|
|
433
|
+
/**
|
|
434
|
+
* Props to pass to the Material-UI Grid components.<br/>
|
|
435
|
+
* Should be in the form {container: GridProps, item: GridProps}.
|
|
436
|
+
*
|
|
437
|
+
* @see See [Material-UI Grid](https://material-ui.com/api/grid/#props) for available GridProps values.
|
|
438
|
+
*/
|
|
439
|
+
previewGridProps: PropTypes.object,
|
|
440
|
+
/** The label for the file preview section. */
|
|
441
|
+
previewText: PropTypes.string,
|
|
442
|
+
/**
|
|
443
|
+
* Shows styled Material-UI Snackbar when files are dropped, deleted or rejected.
|
|
444
|
+
*
|
|
445
|
+
* - can be a boolean ("global" `true` or `false` for all alerts).
|
|
446
|
+
* - can be an array, with values 'error', 'info', 'success' to select to view only certain alerts:
|
|
447
|
+
* - showAlerts={['error']} for only errors.
|
|
448
|
+
* - showAlerts={['error', 'info']} for both errors and info.
|
|
449
|
+
* - showAlerts={['error', 'success', 'info']} is same as showAlerts={true}.
|
|
450
|
+
* - showAlerts={[]} is same as showAlerts={false}.
|
|
451
|
+
*/
|
|
452
|
+
showAlerts: PropTypes.oneOfType([PropTypes.bool, PropTypes.arrayOf(PropTypes.oneOf(["error", "success", "info"]))]),
|
|
453
|
+
/**
|
|
454
|
+
* Props to pass to the Material-UI Snackbar components.<br/>Requires `showAlerts` prop to be `true`.
|
|
455
|
+
*
|
|
456
|
+
* @see See [Material-UI Snackbar](https://material-ui.com/api/snackbar/#props) for available values.
|
|
457
|
+
*/
|
|
458
|
+
alertSnackbarProps: PropTypes.object,
|
|
459
|
+
/**
|
|
460
|
+
* Props to pass to the Dropzone component.
|
|
461
|
+
*
|
|
462
|
+
* @see See [Dropzone props](https://react-dropzone.js.org/#src) for available values.
|
|
463
|
+
*/
|
|
464
|
+
dropzoneProps: PropTypes.object,
|
|
465
|
+
/**
|
|
466
|
+
* Attributes applied to the input element.
|
|
467
|
+
*
|
|
468
|
+
* @see See [MDN Input File attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Additional_attributes) for available values.
|
|
469
|
+
*/
|
|
470
|
+
inputProps: PropTypes.object,
|
|
471
|
+
/**
|
|
472
|
+
* Get alert message to display when files limit is exceed.
|
|
473
|
+
*
|
|
474
|
+
* *Default*: "Maximum allowed number of files exceeded. Only ${filesLimit} allowed"
|
|
475
|
+
*
|
|
476
|
+
* @param {number} filesLimit The `filesLimit` currently set for the component.
|
|
477
|
+
*/
|
|
478
|
+
getFileLimitExceedMessage: PropTypes.func,
|
|
479
|
+
/**
|
|
480
|
+
* Get alert message to display when a new file is added.
|
|
481
|
+
*
|
|
482
|
+
* *Default*: "File ${fileName} successfully added."
|
|
483
|
+
*
|
|
484
|
+
* @param {string} fileName The newly added file name.
|
|
485
|
+
*/
|
|
486
|
+
getFileAddedMessage: PropTypes.func,
|
|
487
|
+
/**
|
|
488
|
+
* Get alert message to display when a file is removed.
|
|
489
|
+
*
|
|
490
|
+
* *Default*: "File ${fileName} removed."
|
|
491
|
+
*
|
|
492
|
+
* @param {string} fileName The name of the removed file.
|
|
493
|
+
*/
|
|
494
|
+
getFileRemovedMessage: PropTypes.func,
|
|
495
|
+
/**
|
|
496
|
+
* Get alert message to display when a file is rejected onDrop.
|
|
497
|
+
*
|
|
498
|
+
* *Default*: "File ${rejectedFile.name} was rejected."
|
|
499
|
+
*
|
|
500
|
+
* @param {Object} rejectedFile The file that got rejected
|
|
501
|
+
* @param {Object} acceptedFiles The `acceptedFiles` prop currently set for the component
|
|
502
|
+
* @param {number} maxFileSize The `maxFileSize` prop currently set for the component
|
|
503
|
+
*/
|
|
504
|
+
getDropRejectMessage: PropTypes.func,
|
|
505
|
+
/**
|
|
506
|
+
* A function which determines which icon to display for a file preview.
|
|
507
|
+
*
|
|
508
|
+
* *Default*: If its an image then displays a preview the image, otherwise it will display an attachment icon
|
|
509
|
+
*
|
|
510
|
+
* @param {FileObject} objectFile The file which the preview will belong to
|
|
511
|
+
* @param {Object} classes The classes for the file preview icon, in the default case we use the 'image' className.
|
|
512
|
+
*/
|
|
513
|
+
getPreviewIcon: PropTypes.func,
|
|
514
|
+
/**
|
|
515
|
+
* Fired when new files are added to dropzone.
|
|
516
|
+
*
|
|
517
|
+
* @param {FileObject[]} newFiles The new files added to the dropzone.
|
|
518
|
+
*/
|
|
519
|
+
onAdd: PropTypes.func,
|
|
520
|
+
/**
|
|
521
|
+
* Fired when a file is deleted from the previews panel.
|
|
522
|
+
*
|
|
523
|
+
* @param {FileObject} deletedFileObject The file that was removed.
|
|
524
|
+
* @param {number} index The index of the removed file object.
|
|
525
|
+
*/
|
|
526
|
+
onDelete: PropTypes.func,
|
|
527
|
+
/**
|
|
528
|
+
* Fired when the user drops files into the dropzone.
|
|
529
|
+
*
|
|
530
|
+
* @param {File[]} droppedFiles All the files dropped into the dropzone.
|
|
531
|
+
* @param {Event} event The react-dropzone drop event.
|
|
532
|
+
*/
|
|
533
|
+
onDrop: PropTypes.func,
|
|
534
|
+
/**
|
|
535
|
+
* Fired when a file is rejected because of wrong file type, size or goes beyond the filesLimit.
|
|
536
|
+
*
|
|
537
|
+
* @param {File[]} rejectedFiles All the rejected files.
|
|
538
|
+
* @param {Event} event The react-dropzone drop event.
|
|
539
|
+
*/
|
|
540
|
+
onDropRejected: PropTypes.func,
|
|
541
|
+
/**
|
|
542
|
+
* Fired when an alert is triggered.
|
|
543
|
+
*
|
|
544
|
+
* @param {string} message Alert message.
|
|
545
|
+
* @param {string} variant One of "error", "info", "success".
|
|
546
|
+
*/
|
|
547
|
+
onAlert: PropTypes.func
|
|
548
|
+
};
|
|
549
|
+
var DropzoneAreaBase$1 = withStyles(styles, {
|
|
550
|
+
name: "MuiDropzoneArea",
|
|
551
|
+
defaultTheme: defaultTheme
|
|
552
|
+
})(DropzoneAreaBase);
|
|
553
|
+
|
|
554
|
+
export { FileObjectShape, DropzoneAreaBase$1 as default };
|
|
555
|
+
//# sourceMappingURL=DropzoneAreaBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropzoneAreaBase.js","sources":["../../../../src/Components/DropZone/components/DropzoneAreaBase.jsx"],"sourcesContent":["import Snackbar from \"@mui/material/Snackbar\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport { withStyles } from \"@mui/styles\";\r\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\r\nimport CloudUploadIcon from \"@mui/icons-material/CloudUpload\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport * as React from \"react\";\r\nimport { Fragment } from \"react\";\r\nimport Dropzone from \"react-dropzone\";\r\nimport {\r\n convertBytesToMbsOrKbs,\r\n defaultTheme,\r\n isImage,\r\n readFile,\r\n} from \"../helpers\";\r\nimport PreviewList from \"./PreviewList\";\r\nimport SnackbarContentWrapper from \"./SnackbarContentWrapper\";\r\n\r\nconst styles = ({ palette, shape, spacing }) => ({\r\n \"@keyframes progress\": {\r\n \"0%\": {\r\n backgroundPosition: \"0 0\",\r\n },\r\n \"100%\": {\r\n backgroundPosition: \"-70px 0\",\r\n },\r\n },\r\n root: {\r\n position: \"relative\",\r\n width: \"100%\",\r\n minHeight: \"250px\",\r\n backgroundColor: palette.background.paper,\r\n border: \"dashed\",\r\n borderColor: palette.divider,\r\n borderRadius: shape.borderRadius,\r\n boxSizing: \"border-box\",\r\n cursor: \"pointer\",\r\n overflow: \"hidden\",\r\n },\r\n active: {\r\n animation: \"$progress 2s linear infinite !important\",\r\n // eslint-disable-next-line max-len\r\n backgroundImage: `repeating-linear-gradient(-45deg, ${palette.background.paper}, ${palette.background.paper} 25px, ${palette.divider} 25px, ${palette.divider} 50px)`,\r\n backgroundSize: \"150% 100%\",\r\n border: \"solid\",\r\n borderColor: palette.primary.light,\r\n },\r\n invalid: {\r\n // eslint-disable-next-line max-len\r\n backgroundImage: `repeating-linear-gradient(-45deg, ${palette.error.light}, ${palette.error.light} 25px, ${palette.error.dark} 25px, ${palette.error.dark} 50px)`,\r\n borderColor: palette.error.main,\r\n },\r\n textContainer: {\r\n textAlign: \"center\",\r\n },\r\n text: {\r\n marginBottom: spacing(3),\r\n marginTop: spacing(3),\r\n },\r\n icon: {\r\n width: 51,\r\n height: 51,\r\n color: palette.text.primary,\r\n },\r\n});\r\n\r\nconst defaultSnackbarAnchorOrigin = {\r\n horizontal: \"left\",\r\n vertical: \"bottom\",\r\n};\r\n\r\nconst defaultGetPreviewIcon = (fileObject, classes) => {\r\n if (isImage(fileObject.file)) {\r\n return (\r\n <img\r\n className={classes.image}\r\n role=\"presentation\"\r\n alt=\"\"\r\n src={fileObject.data}\r\n />\r\n );\r\n }\r\n\r\n return <AttachFileIcon className={classes.image} />;\r\n};\r\n\r\n/**\r\n * This components creates a Material-UI Dropzone, with previews and snackbar notifications.\r\n */\r\nclass DropzoneAreaBase extends React.PureComponent {\r\n state = {\r\n openSnackBar: false,\r\n snackbarMessage: \"\",\r\n snackbarVariant: \"success\",\r\n };\r\n\r\n notifyAlert() {\r\n const { onAlert } = this.props;\r\n const { openSnackBar, snackbarMessage, snackbarVariant } = this.state;\r\n if (openSnackBar && onAlert) {\r\n onAlert(snackbarMessage, snackbarVariant);\r\n }\r\n }\r\n\r\n handleDropAccepted = async (acceptedFiles, evt) => {\r\n const {\r\n fileObjects,\r\n filesLimit,\r\n getFileAddedMessage,\r\n getFileLimitExceedMessage,\r\n onAdd,\r\n onDrop,\r\n } = this.props;\r\n\r\n if (\r\n filesLimit > 1 &&\r\n fileObjects.length + acceptedFiles.length > filesLimit\r\n ) {\r\n this.setState(\r\n {\r\n openSnackBar: true,\r\n snackbarMessage: getFileLimitExceedMessage(filesLimit),\r\n snackbarVariant: \"error\",\r\n },\r\n this.notifyAlert\r\n );\r\n return;\r\n }\r\n\r\n // Notify Drop event\r\n if (onDrop) {\r\n onDrop(acceptedFiles, evt);\r\n }\r\n\r\n // Retrieve fileObjects data\r\n // const fileObjs = await Promise.all(\r\n // acceptedFiles.map(async (file) => {\r\n // const data = await readFile(file);\r\n // return {\r\n // file,\r\n // data,\r\n // };\r\n // })\r\n // );\r\n\r\n const fileObjs = acceptedFiles.map((file) => {\r\n return {\r\n file,\r\n };\r\n });\r\n // Notify added files\r\n if (onAdd) {\r\n onAdd(fileObjs);\r\n }\r\n\r\n // Display message\r\n const message = fileObjs.reduce(\r\n (msg, fileObj) => msg + getFileAddedMessage(fileObj.file.name),\r\n \"\"\r\n );\r\n this.setState(\r\n {\r\n openSnackBar: true,\r\n snackbarMessage: message,\r\n snackbarVariant: \"success\",\r\n },\r\n this.notifyAlert\r\n );\r\n };\r\n\r\n handleDropRejected = (rejectedFiles, evt) => {\r\n const {\r\n acceptedFiles,\r\n filesLimit,\r\n fileObjects,\r\n getDropRejectMessage,\r\n getFileLimitExceedMessage,\r\n maxFileSize,\r\n onDropRejected,\r\n } = this.props;\r\n\r\n let message = \"\";\r\n if (fileObjects.length + rejectedFiles.length > filesLimit) {\r\n message = getFileLimitExceedMessage(filesLimit);\r\n } else {\r\n rejectedFiles.forEach((rejectedFile) => {\r\n message = getDropRejectMessage(\r\n rejectedFile.file,\r\n acceptedFiles,\r\n maxFileSize\r\n );\r\n });\r\n }\r\n\r\n if (onDropRejected) {\r\n onDropRejected(rejectedFiles, evt);\r\n }\r\n\r\n this.setState(\r\n {\r\n openSnackBar: true,\r\n snackbarMessage: message,\r\n snackbarVariant: \"error\",\r\n },\r\n this.notifyAlert\r\n );\r\n };\r\n\r\n handleRemove = (fileIndex) => (event) => {\r\n event.stopPropagation();\r\n\r\n const { fileObjects, getFileRemovedMessage, onDelete } = this.props;\r\n\r\n // Find removed fileObject\r\n const removedFileObj = fileObjects[fileIndex];\r\n\r\n // Notify removed file\r\n if (onDelete) {\r\n onDelete(removedFileObj, fileIndex);\r\n }\r\n\r\n this.setState(\r\n {\r\n openSnackBar: true,\r\n snackbarMessage: getFileRemovedMessage(removedFileObj.file.name),\r\n snackbarVariant: \"info\",\r\n },\r\n this.notifyAlert\r\n );\r\n };\r\n\r\n handleCloseSnackbar = () => {\r\n this.setState({\r\n openSnackBar: false,\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n acceptedFiles,\r\n alertSnackbarProps,\r\n classes,\r\n disableRejectionFeedback,\r\n dropzoneClass,\r\n dropzoneParagraphClass,\r\n dropzoneProps,\r\n dropzoneText,\r\n fileObjects,\r\n filesLimit,\r\n getPreviewIcon,\r\n Icon,\r\n inputProps,\r\n maxFileSize,\r\n previewChipProps,\r\n previewGridClasses,\r\n previewGridProps,\r\n previewText,\r\n showAlerts,\r\n showFileNames,\r\n showFileNamesInPreview,\r\n showPreviews,\r\n showPreviewsInDropzone,\r\n useChipsForPreview,\r\n } = this.props;\r\n const { openSnackBar, snackbarMessage, snackbarVariant } = this.state;\r\n\r\n // const acceptFiles = acceptedFiles?.join(\",\");\r\n const isMultiple = filesLimit > 1;\r\n const previewsVisible = showPreviews && fileObjects.length > 0;\r\n const previewsInDropzoneVisible =\r\n showPreviewsInDropzone && fileObjects.length > 0;\r\n return (\r\n <Fragment>\r\n <Dropzone\r\n {...dropzoneProps}\r\n accept={acceptedFiles}\r\n onDropAccepted={this.handleDropAccepted}\r\n onDropRejected={this.handleDropRejected}\r\n maxSize={maxFileSize}\r\n multiple={isMultiple}\r\n >\r\n {({ getRootProps, getInputProps, isDragActive, isDragReject }) => (\r\n <div\r\n {...getRootProps({\r\n className: clsx(\r\n classes.root,\r\n dropzoneClass,\r\n isDragActive && classes.active,\r\n !disableRejectionFeedback && isDragReject && classes.invalid\r\n ),\r\n })}\r\n >\r\n <input {...getInputProps(inputProps)} />\r\n\r\n <div className={classes.textContainer}>\r\n <Typography\r\n variant=\"h5\"\r\n component=\"p\"\r\n className={clsx(classes.text, dropzoneParagraphClass)}\r\n >\r\n {dropzoneText}\r\n </Typography>\r\n {Icon ? (\r\n <Icon className={classes.icon} />\r\n ) : (\r\n <CloudUploadIcon className={classes.icon} />\r\n )}\r\n </div>\r\n\r\n {previewsInDropzoneVisible && (\r\n <PreviewList\r\n fileObjects={fileObjects}\r\n handleRemove={this.handleRemove}\r\n getPreviewIcon={getPreviewIcon}\r\n showFileNames={showFileNames}\r\n useChipsForPreview={useChipsForPreview}\r\n previewChipProps={previewChipProps}\r\n previewGridClasses={previewGridClasses}\r\n previewGridProps={previewGridProps}\r\n />\r\n )}\r\n </div>\r\n )}\r\n </Dropzone>\r\n\r\n {previewsVisible && (\r\n <Fragment>\r\n <Typography variant=\"subtitle1\" component=\"span\">\r\n {previewText}\r\n </Typography>\r\n\r\n <PreviewList\r\n fileObjects={fileObjects}\r\n handleRemove={this.handleRemove}\r\n getPreviewIcon={getPreviewIcon}\r\n showFileNames={showFileNamesInPreview}\r\n useChipsForPreview={useChipsForPreview}\r\n previewChipProps={previewChipProps}\r\n previewGridClasses={previewGridClasses}\r\n previewGridProps={previewGridProps}\r\n />\r\n </Fragment>\r\n )}\r\n\r\n {((typeof showAlerts === \"boolean\" && showAlerts) ||\r\n (Array.isArray(showAlerts) &&\r\n showAlerts.includes(snackbarVariant))) && (\r\n <Snackbar\r\n anchorOrigin={defaultSnackbarAnchorOrigin}\r\n autoHideDuration={6000}\r\n {...alertSnackbarProps}\r\n open={openSnackBar}\r\n onClose={this.handleCloseSnackbar}\r\n >\r\n <SnackbarContentWrapper\r\n onClose={this.handleCloseSnackbar}\r\n variant={snackbarVariant}\r\n message={snackbarMessage}\r\n />\r\n </Snackbar>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n\r\nDropzoneAreaBase.defaultProps = {\r\n acceptedFiles: [],\r\n filesLimit: 3,\r\n fileObjects: [],\r\n maxFileSize: 3000000,\r\n dropzoneText: \"Drag and drop a file here or click\",\r\n previewText: \"Preview:\",\r\n disableRejectionFeedback: false,\r\n showPreviews: false, // By default previews show up under in the dialog and inside in the standalone\r\n showPreviewsInDropzone: true,\r\n showFileNames: false,\r\n showFileNamesInPreview: false,\r\n useChipsForPreview: false,\r\n previewChipProps: {},\r\n previewGridClasses: {},\r\n previewGridProps: {},\r\n showAlerts: true,\r\n alertSnackbarProps: {\r\n anchorOrigin: {\r\n horizontal: \"left\",\r\n vertical: \"bottom\",\r\n },\r\n autoHideDuration: 6000,\r\n },\r\n getFileLimitExceedMessage: (filesLimit) =>\r\n `Maximum allowed number of files exceeded. Only ${filesLimit} allowed`,\r\n getFileAddedMessage: (fileName) => `File ${fileName} successfully added.`,\r\n getPreviewIcon: defaultGetPreviewIcon,\r\n getFileRemovedMessage: (fileName) => `File ${fileName} removed.`,\r\n getDropRejectMessage: (rejectedFile, acceptedFiles, maxFileSize) => {\r\n let message = `File ${rejectedFile.name} was rejected. `;\r\n if (!acceptedFiles.includes(rejectedFile.type)) {\r\n message += \"File type not supported. \";\r\n }\r\n if (rejectedFile.size > maxFileSize) {\r\n message +=\r\n \"File is too big. Size limit is \" +\r\n convertBytesToMbsOrKbs(maxFileSize) +\r\n \". \";\r\n }\r\n return message;\r\n },\r\n};\r\n\r\nexport const FileObjectShape = PropTypes.shape({\r\n file: PropTypes.object,\r\n data: PropTypes.any,\r\n});\r\n\r\nDropzoneAreaBase.propTypes = {\r\n /** @ignore */\r\n classes: PropTypes.object.isRequired,\r\n /** A list of file types to accept.\r\n * @see See [here](https://react-dropzone.js.org/#section-accepting-specific-file-types) for more details.\r\n */\r\n acceptedFiles: PropTypes.object,\r\n /** Maximum number of files that can be loaded into the dropzone. */\r\n filesLimit: PropTypes.number,\r\n /** Icon to be displayed inside the dropzone area. */\r\n Icon: PropTypes.elementType,\r\n /** Currently loaded files. */\r\n fileObjects: PropTypes.arrayOf(FileObjectShape),\r\n /** Maximum file size (in bytes) that the dropzone will accept. */\r\n maxFileSize: PropTypes.number,\r\n /** Text inside the dropzone. */\r\n dropzoneText: PropTypes.string,\r\n /** Custom CSS class name for dropzone container. */\r\n dropzoneClass: PropTypes.string,\r\n /** Custom CSS class name for text inside the container. */\r\n dropzoneParagraphClass: PropTypes.string,\r\n /** Disable feedback effect when dropping rejected files. */\r\n disableRejectionFeedback: PropTypes.bool,\r\n /** Shows previews **BELOW** the dropzone. */\r\n showPreviews: PropTypes.bool,\r\n /** Shows preview **INSIDE** the dropzone area. */\r\n showPreviewsInDropzone: PropTypes.bool,\r\n /** Shows file name under the dropzone image. */\r\n showFileNames: PropTypes.bool,\r\n /** Shows file name under the image. */\r\n showFileNamesInPreview: PropTypes.bool,\r\n /** Uses deletable Material-UI Chip components to display file names. */\r\n useChipsForPreview: PropTypes.bool,\r\n /**\r\n * Props to pass to the Material-UI Chip components.<br/>Requires `useChipsForPreview` prop to be `true`.\r\n *\r\n * @see See [Material-UI Chip](https://material-ui.com/api/chip/#props) for available values.\r\n */\r\n previewChipProps: PropTypes.object,\r\n /**\r\n * Custom CSS classNames for preview Grid components.<br/>\r\n * Should be in the form {container: string, item: string, image: string}.\r\n */\r\n previewGridClasses: PropTypes.object,\r\n /**\r\n * Props to pass to the Material-UI Grid components.<br/>\r\n * Should be in the form {container: GridProps, item: GridProps}.\r\n *\r\n * @see See [Material-UI Grid](https://material-ui.com/api/grid/#props) for available GridProps values.\r\n */\r\n previewGridProps: PropTypes.object,\r\n /** The label for the file preview section. */\r\n previewText: PropTypes.string,\r\n /**\r\n * Shows styled Material-UI Snackbar when files are dropped, deleted or rejected.\r\n *\r\n * - can be a boolean (\"global\" `true` or `false` for all alerts).\r\n * - can be an array, with values 'error', 'info', 'success' to select to view only certain alerts:\r\n * - showAlerts={['error']} for only errors.\r\n * - showAlerts={['error', 'info']} for both errors and info.\r\n * - showAlerts={['error', 'success', 'info']} is same as showAlerts={true}.\r\n * - showAlerts={[]} is same as showAlerts={false}.\r\n */\r\n showAlerts: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.arrayOf(PropTypes.oneOf([\"error\", \"success\", \"info\"])),\r\n ]),\r\n /**\r\n * Props to pass to the Material-UI Snackbar components.<br/>Requires `showAlerts` prop to be `true`.\r\n *\r\n * @see See [Material-UI Snackbar](https://material-ui.com/api/snackbar/#props) for available values.\r\n */\r\n alertSnackbarProps: PropTypes.object,\r\n /**\r\n * Props to pass to the Dropzone component.\r\n *\r\n * @see See [Dropzone props](https://react-dropzone.js.org/#src) for available values.\r\n */\r\n dropzoneProps: PropTypes.object,\r\n /**\r\n * Attributes applied to the input element.\r\n *\r\n * @see See [MDN Input File attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Additional_attributes) for available values.\r\n */\r\n inputProps: PropTypes.object,\r\n /**\r\n * Get alert message to display when files limit is exceed.\r\n *\r\n * *Default*: \"Maximum allowed number of files exceeded. Only ${filesLimit} allowed\"\r\n *\r\n * @param {number} filesLimit The `filesLimit` currently set for the component.\r\n */\r\n getFileLimitExceedMessage: PropTypes.func,\r\n /**\r\n * Get alert message to display when a new file is added.\r\n *\r\n * *Default*: \"File ${fileName} successfully added.\"\r\n *\r\n * @param {string} fileName The newly added file name.\r\n */\r\n getFileAddedMessage: PropTypes.func,\r\n /**\r\n * Get alert message to display when a file is removed.\r\n *\r\n * *Default*: \"File ${fileName} removed.\"\r\n *\r\n * @param {string} fileName The name of the removed file.\r\n */\r\n getFileRemovedMessage: PropTypes.func,\r\n /**\r\n * Get alert message to display when a file is rejected onDrop.\r\n *\r\n * *Default*: \"File ${rejectedFile.name} was rejected.\"\r\n *\r\n * @param {Object} rejectedFile The file that got rejected\r\n * @param {Object} acceptedFiles The `acceptedFiles` prop currently set for the component\r\n * @param {number} maxFileSize The `maxFileSize` prop currently set for the component\r\n */\r\n getDropRejectMessage: PropTypes.func,\r\n /**\r\n * A function which determines which icon to display for a file preview.\r\n *\r\n * *Default*: If its an image then displays a preview the image, otherwise it will display an attachment icon\r\n *\r\n * @param {FileObject} objectFile The file which the preview will belong to\r\n * @param {Object} classes The classes for the file preview icon, in the default case we use the 'image' className.\r\n */\r\n getPreviewIcon: PropTypes.func,\r\n /**\r\n * Fired when new files are added to dropzone.\r\n *\r\n * @param {FileObject[]} newFiles The new files added to the dropzone.\r\n */\r\n onAdd: PropTypes.func,\r\n /**\r\n * Fired when a file is deleted from the previews panel.\r\n *\r\n * @param {FileObject} deletedFileObject The file that was removed.\r\n * @param {number} index The index of the removed file object.\r\n */\r\n onDelete: PropTypes.func,\r\n /**\r\n * Fired when the user drops files into the dropzone.\r\n *\r\n * @param {File[]} droppedFiles All the files dropped into the dropzone.\r\n * @param {Event} event The react-dropzone drop event.\r\n */\r\n onDrop: PropTypes.func,\r\n /**\r\n * Fired when a file is rejected because of wrong file type, size or goes beyond the filesLimit.\r\n *\r\n * @param {File[]} rejectedFiles All the rejected files.\r\n * @param {Event} event The react-dropzone drop event.\r\n */\r\n onDropRejected: PropTypes.func,\r\n /**\r\n * Fired when an alert is triggered.\r\n *\r\n * @param {string} message Alert message.\r\n * @param {string} variant One of \"error\", \"info\", \"success\".\r\n */\r\n onAlert: PropTypes.func,\r\n};\r\n\r\nexport default withStyles(styles, { name: \"MuiDropzoneArea\", defaultTheme })(\r\n DropzoneAreaBase\r\n);\r\n"],"names":["styles","_ref","palette","shape","spacing","backgroundPosition","root","position","width","minHeight","backgroundColor","background","paper","border","borderColor","divider","borderRadius","boxSizing","cursor","overflow","active","animation","backgroundImage","concat","backgroundSize","primary","light","invalid","error","dark","main","textContainer","textAlign","text","marginBottom","marginTop","icon","height","color","defaultSnackbarAnchorOrigin","horizontal","vertical","defaultGetPreviewIcon","fileObject","classes","isImage","file","_jsx","className","image","role","alt","src","data","AttachFileIcon","DropzoneAreaBase","_React$PureComponent","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","_defineProperty","openSnackBar","snackbarMessage","snackbarVariant","_ref2","_asyncToGenerator","_regenerator","m","_callee","acceptedFiles","evt","_this$props","fileObjects","filesLimit","getFileAddedMessage","getFileLimitExceedMessage","onAdd","onDrop","fileObjs","message","w","_context","n","props","setState","notifyAlert","a","map","reduce","msg","fileObj","name","_x","_x2","apply","rejectedFiles","_this$props2","getDropRejectMessage","maxFileSize","onDropRejected","forEach","rejectedFile","fileIndex","event","stopPropagation","_this$props3","getFileRemovedMessage","onDelete","removedFileObj","_inherits","_createClass","key","value","onAlert","_this$state","state","render","_this2","_this$props4","alertSnackbarProps","disableRejectionFeedback","dropzoneClass","dropzoneParagraphClass","dropzoneProps","dropzoneText","getPreviewIcon","Icon","inputProps","previewChipProps","previewGridClasses","previewGridProps","previewText","showAlerts","showFileNames","showFileNamesInPreview","showPreviews","showPreviewsInDropzone","useChipsForPreview","_this$state2","isMultiple","previewsVisible","previewsInDropzoneVisible","_jsxs","Fragment","children","Dropzone","_objectSpread","accept","onDropAccepted","handleDropAccepted","handleDropRejected","maxSize","multiple","_ref3","getRootProps","getInputProps","isDragActive","isDragReject","clsx","Typography","variant","component","CloudUploadIcon","PreviewList","handleRemove","isArray","includes","Snackbar","anchorOrigin","autoHideDuration","open","onClose","handleCloseSnackbar","SnackbarContentWrapper","React","PureComponent","defaultProps","fileName","type","size","convertBytesToMbsOrKbs","FileObjectShape","PropTypes","object","any","propTypes","isRequired","number","elementType","arrayOf","string","bool","oneOfType","oneOf","func","withStyles","defaultTheme"],"mappings":"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IAAI;AAClC;AACF;AACA;AACA;AACA;EACE/D,gBAAgB,EAAEsD,SAAS,CAACC,MAAM;AAClC;AACF;AACA;AACA;EACEtD,kBAAkB,EAAEqD,SAAS,CAACC,MAAM;AACpC;AACF;AACA;AACA;AACA;AACA;EACErD,gBAAgB,EAAEoD,SAAS,CAACC,MAAM;AAClC;EACApD,WAAW,EAAEmD,SAAS,CAACQ,MAAM;AAC7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE1D,EAAAA,UAAU,EAAEkD,SAAS,CAACU,SAAS,CAAC,CAC9BV,SAAS,CAACS,IAAI,EACdT,SAAS,CAACO,OAAO,CAACP,SAAS,CAACW,KAAK,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CACjE,CAAC;AACF;AACF;AACA;AACA;AACA;EACE1E,kBAAkB,EAAE+D,SAAS,CAACC,MAAM;AACpC;AACF;AACA;AACA;AACA;EACE5D,aAAa,EAAE2D,SAAS,CAACC,MAAM;AAC/B;AACF;AACA;AACA;AACA;EACExD,UAAU,EAAEuD,SAAS,CAACC,MAAM;AAC5B;AACF;AACA;AACA;AACA;AACA;AACA;EACE5G,yBAAyB,EAAE2G,SAAS,CAACY,IAAI;AACzC;AACF;AACA;AACA;AACA;AACA;AACA;EACExH,mBAAmB,EAAE4G,SAAS,CAACY,IAAI;AACnC;AACF;AACA;AACA;AACA;AACA;AACA;EACExF,qBAAqB,EAAE4E,SAAS,CAACY,IAAI;AACrC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEjG,oBAAoB,EAAEqF,SAAS,CAACY,IAAI;AACpC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACErE,cAAc,EAAEyD,SAAS,CAACY,IAAI;AAC9B;AACF;AACA;AACA;AACA;EACEtH,KAAK,EAAE0G,SAAS,CAACY,IAAI;AACrB;AACF;AACA;AACA;AACA;AACA;EACEvF,QAAQ,EAAE2E,SAAS,CAACY,IAAI;AACxB;AACF;AACA;AACA;AACA;AACA;EACErH,MAAM,EAAEyG,SAAS,CAACY,IAAI;AACtB;AACF;AACA;AACA;AACA;AACA;EACE/F,cAAc,EAAEmF,SAAS,CAACY,IAAI;AAC9B;AACF;AACA;AACA;AACA;AACA;EACEjF,OAAO,EAAEqE,SAAS,CAACY;AACrB,CAAC;AAED,yBAAeC,UAAU,CAACzM,MAAM,EAAE;AAAEiG,EAAAA,IAAI,EAAE,iBAAiB;AAAEyG,EAAAA,YAAY,EAAZA;AAAa,CAAC,CAAC,CAC1EnJ,gBACF,CAAC;;;;"}
|