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.
Files changed (283) hide show
  1. package/Components/Charts/AreaChart.d.ts +19 -0
  2. package/Components/Charts/AreaChart.js +59 -0
  3. package/Components/Charts/AreaChart.js.map +1 -0
  4. package/Components/Charts/BarChart.d.ts +20 -0
  5. package/Components/Charts/BarChart.js +81 -0
  6. package/Components/Charts/BarChart.js.map +1 -0
  7. package/Components/Charts/DoughnutChart.d.ts +12 -0
  8. package/Components/Charts/DoughnutChart.js +81 -0
  9. package/Components/Charts/DoughnutChart.js.map +1 -0
  10. package/Components/Charts/HorizontalBarChart.d.ts +38 -0
  11. package/Components/Charts/HorizontalBarChart.js +83 -0
  12. package/Components/Charts/HorizontalBarChart.js.map +1 -0
  13. package/Components/Charts/LineChart.d.ts +21 -0
  14. package/Components/Charts/LineChart.js +133 -0
  15. package/Components/Charts/LineChart.js.map +1 -0
  16. package/Components/Charts/PieChart.d.ts +20 -0
  17. package/Components/Charts/PieChart.js +123 -0
  18. package/Components/Charts/PieChart.js.map +1 -0
  19. package/Components/Charts/index.d.ts +5 -0
  20. package/Components/Charts/index.js +6 -0
  21. package/Components/Charts/index.js.map +1 -0
  22. package/Components/Charts/type.d.ts +6 -0
  23. package/Components/Charts/type.js +2 -0
  24. package/Components/Charts/type.js.map +1 -0
  25. package/Components/CopyToClipboard/index.d.ts +23 -0
  26. package/Components/CopyToClipboard/index.js +54 -0
  27. package/Components/CopyToClipboard/index.js.map +1 -0
  28. package/Components/CopyToClipboard/indexv2.d.ts +30 -0
  29. package/Components/CopyToClipboard/indexv2.js +63 -0
  30. package/Components/CopyToClipboard/indexv2.js.map +1 -0
  31. package/Components/DropZone/components/DropzoneArea.d.ts +31 -0
  32. package/Components/DropZone/components/DropzoneArea.js +221 -0
  33. package/Components/DropZone/components/DropzoneArea.js.map +1 -0
  34. package/Components/DropZone/components/DropzoneAreaBase.d.ts +4 -0
  35. package/Components/DropZone/components/DropzoneAreaBase.js +555 -0
  36. package/Components/DropZone/components/DropzoneAreaBase.js.map +1 -0
  37. package/Components/DropZone/components/DropzoneDialog.d.ts +33 -0
  38. package/Components/DropZone/components/DropzoneDialog.js +222 -0
  39. package/Components/DropZone/components/DropzoneDialog.js.map +1 -0
  40. package/Components/DropZone/components/DropzoneDialogBase.d.ts +27 -0
  41. package/Components/DropZone/components/DropzoneDialogBase.js +152 -0
  42. package/Components/DropZone/components/DropzoneDialogBase.js.map +1 -0
  43. package/Components/DropZone/components/PreviewList.d.ts +3 -0
  44. package/Components/DropZone/components/PreviewList.js +132 -0
  45. package/Components/DropZone/components/PreviewList.js.map +1 -0
  46. package/Components/DropZone/components/SnackbarContentWrapper.d.ts +3 -0
  47. package/Components/DropZone/components/SnackbarContentWrapper.js +94 -0
  48. package/Components/DropZone/components/SnackbarContentWrapper.js.map +1 -0
  49. package/Components/DropZone/helpers.d.ts +5 -0
  50. package/Components/DropZone/helpers.js +64 -0
  51. package/Components/DropZone/helpers.js.map +1 -0
  52. package/Components/DropZone/index.d.ts +120 -0
  53. package/Components/EditAvatar/index.d.ts +26 -0
  54. package/Components/EditAvatar/index.js +137 -0
  55. package/Components/EditAvatar/index.js.map +1 -0
  56. package/Components/FlexInfiniteScroll/index.d.ts +26 -0
  57. package/Components/FlexInfiniteScroll/index.js +82 -0
  58. package/Components/FlexInfiniteScroll/index.js.map +1 -0
  59. package/Components/Helper/LazySpinner.d.ts +5 -0
  60. package/Components/Helper/LazySpinner.js +33 -0
  61. package/Components/Helper/LazySpinner.js.map +1 -0
  62. package/Components/Helper/RoleKey.d.ts +9 -0
  63. package/Components/Helper/RoleKey.js +15 -0
  64. package/Components/Helper/RoleKey.js.map +1 -0
  65. package/Components/Helper/index.d.ts +41 -0
  66. package/Components/Helper/index.js +247 -0
  67. package/Components/Helper/index.js.map +1 -0
  68. package/Components/HocLazyView/index.d.ts +51 -0
  69. package/Components/HocLazyView/index.js +123 -0
  70. package/Components/HocLazyView/index.js.map +1 -0
  71. package/Components/HtmlTooltip/index.d.ts +3 -0
  72. package/Components/HtmlTooltip/index.js +28 -0
  73. package/Components/HtmlTooltip/index.js.map +1 -0
  74. package/Components/Icons/index.d.ts +6 -0
  75. package/Components/Icons/index.js +52 -0
  76. package/Components/Icons/index.js.map +1 -0
  77. package/Components/LazySpinner.css +6 -0
  78. package/Components/MapLayout/index.d.ts +33 -0
  79. package/Components/MapLayout/index.js +80 -0
  80. package/Components/MapLayout/index.js.map +1 -0
  81. package/Components/MessageBox/index.d.ts +28 -0
  82. package/Components/MessageBox/index.js +93 -0
  83. package/Components/MessageBox/index.js.map +1 -0
  84. package/Components/Models/index.d.ts +641 -0
  85. package/Components/Models/index.js +87 -0
  86. package/Components/Models/index.js.map +1 -0
  87. package/Components/Redux/core/CRUDSlice.d.ts +20 -0
  88. package/Components/Redux/core/CRUDSlice.js +62 -0
  89. package/Components/Redux/core/CRUDSlice.js.map +1 -0
  90. package/Components/Redux/core/type.d.ts +11 -0
  91. package/Components/Redux/core/type.js +9 -0
  92. package/Components/Redux/core/type.js.map +1 -0
  93. package/Components/SkeletonLazyView/index.d.ts +9 -0
  94. package/Components/SkeletonLazyView/index.js +38 -0
  95. package/Components/SkeletonLazyView/index.js.map +1 -0
  96. package/Components/SkeletonService/index.d.ts +15 -0
  97. package/Components/SkeletonService/index.js +57 -0
  98. package/Components/SkeletonService/index.js.map +1 -0
  99. package/Components/SubComponent/index.d.ts +151 -0
  100. package/Components/SubComponent/index.js +883 -0
  101. package/Components/SubComponent/index.js.map +1 -0
  102. package/Components/SubComponent/v2/index.d.ts +20 -0
  103. package/Components/SubComponent/v2/index.js +58 -0
  104. package/Components/SubComponent/v2/index.js.map +1 -0
  105. package/Components/SubUserInputModels/ContactInfoForm/index.d.ts +11 -0
  106. package/Components/SubUserInputModels/ContactInfoForm/index.js +130 -0
  107. package/Components/SubUserInputModels/ContactInfoForm/index.js.map +1 -0
  108. package/Components/SubUserInputModels/index.d.ts +59 -0
  109. package/Components/SubUserInputModels/index.js +928 -0
  110. package/Components/SubUserInputModels/index.js.map +1 -0
  111. package/Components/SwitchComponent/index.d.ts +21 -0
  112. package/Components/SwitchComponent/index.js +71 -0
  113. package/Components/SwitchComponent/index.js.map +1 -0
  114. package/Components/TemplateModal/index.d.ts +29 -0
  115. package/Components/TemplateModal/index.js +94 -0
  116. package/Components/TemplateModal/index.js.map +1 -0
  117. package/Components/TemplateTable/FormTest/index.d.ts +4 -0
  118. package/Components/TemplateTable/FormTest/index.js +22 -0
  119. package/Components/TemplateTable/FormTest/index.js.map +1 -0
  120. package/Components/TemplateTable/InputFormBase/index.d.ts +23 -0
  121. package/Components/TemplateTable/InputFormBase/index.js +111 -0
  122. package/Components/TemplateTable/InputFormBase/index.js.map +1 -0
  123. package/Components/TemplateTable/InputFormModal/index.d.ts +22 -0
  124. package/Components/TemplateTable/InputFormModal/index.js +103 -0
  125. package/Components/TemplateTable/InputFormModal/index.js.map +1 -0
  126. package/Components/TemplateTable/ItemRowMenu/index.d.ts +13 -0
  127. package/Components/TemplateTable/ItemRowMenu/index.js +49 -0
  128. package/Components/TemplateTable/ItemRowMenu/index.js.map +1 -0
  129. package/Components/TemplateTable/PanelAction/index.d.ts +11 -0
  130. package/Components/TemplateTable/PanelAction/index.js +51 -0
  131. package/Components/TemplateTable/PanelAction/index.js.map +1 -0
  132. package/Components/TemplateTable/TableContext/index.d.ts +1 -0
  133. package/Components/TemplateTable/TableContext/index.js +2 -0
  134. package/Components/TemplateTable/TableContext/index.js.map +1 -0
  135. package/Components/TemplateTable/helper.d.ts +3 -0
  136. package/Components/TemplateTable/helper.js +20 -0
  137. package/Components/TemplateTable/helper.js.map +1 -0
  138. package/Components/TemplateTable/index.d.ts +49 -0
  139. package/Components/TemplateTable/index.js +208 -0
  140. package/Components/TemplateTable/index.js.map +1 -0
  141. package/Components/UploadLayout/ProgressItem.d.ts +27 -0
  142. package/Components/UploadLayout/ProgressItem.js +210 -0
  143. package/Components/UploadLayout/ProgressItem.js.map +1 -0
  144. package/Components/UploadLayout/UploadArea.d.ts +9 -0
  145. package/Components/UploadLayout/UploadArea.js +58 -0
  146. package/Components/UploadLayout/UploadArea.js.map +1 -0
  147. package/Components/UploadLayout/UploadMonitor.d.ts +42 -0
  148. package/Components/UploadLayout/UploadMonitor.js +259 -0
  149. package/Components/UploadLayout/UploadMonitor.js.map +1 -0
  150. package/Components/UploadLayout/UploadPannel.d.ts +4 -0
  151. package/Components/UploadLayout/UploadPannel.js +20 -0
  152. package/Components/UploadLayout/UploadPannel.js.map +1 -0
  153. package/Components/UploadLayout/UploadStatus.d.ts +21 -0
  154. package/Components/UploadLayout/UploadStatus.js +184 -0
  155. package/Components/UploadLayout/UploadStatus.js.map +1 -0
  156. package/Components/UploadLayout/index.d.ts +69 -0
  157. package/Components/UploadLayout/index.js +265 -0
  158. package/Components/UploadLayout/index.js.map +1 -0
  159. package/Components/UploadLayout/types.d.ts +10 -0
  160. package/Components/UploadLayout/types.js +2 -0
  161. package/Components/UploadLayout/types.js.map +1 -0
  162. package/Components/Views/Billing/BillingForm/index.d.ts +16 -0
  163. package/Components/Views/Billing/BillingForm/index.js +49 -0
  164. package/Components/Views/Billing/BillingForm/index.js.map +1 -0
  165. package/Components/Views/Billing/ItemBillingRowMenu/index.d.ts +23 -0
  166. package/Components/Views/Billing/ItemBillingRowMenu/index.js +153 -0
  167. package/Components/Views/Billing/ItemBillingRowMenu/index.js.map +1 -0
  168. package/Components/Views/Billing/MenuMore/index.d.ts +6 -0
  169. package/Components/Views/Billing/MenuMore/index.js +89 -0
  170. package/Components/Views/Billing/MenuMore/index.js.map +1 -0
  171. package/Components/Views/Billing/SubBillingFormComponent/index.d.ts +14 -0
  172. package/Components/Views/Billing/SubBillingFormComponent/index.js +306 -0
  173. package/Components/Views/Billing/SubBillingFormComponent/index.js.map +1 -0
  174. package/Components/Views/BillingDetail/BillingDetailForm/index.d.ts +16 -0
  175. package/Components/Views/BillingDetail/BillingDetailForm/index.js +49 -0
  176. package/Components/Views/BillingDetail/BillingDetailForm/index.js.map +1 -0
  177. package/Components/Views/BillingDetail/SubComponent/index.d.ts +10 -0
  178. package/Components/Views/BillingDetail/SubComponent/index.js +152 -0
  179. package/Components/Views/BillingDetail/SubComponent/index.js.map +1 -0
  180. package/Components/Views/DashBoard/Common/index.d.ts +18 -0
  181. package/Components/Views/DashBoard/Common/index.js +55 -0
  182. package/Components/Views/DashBoard/Common/index.js.map +1 -0
  183. package/Components/Views/DashBoard/DeliveryInfo/index.d.ts +17 -0
  184. package/Components/Views/DashBoard/DeliveryInfo/index.js +92 -0
  185. package/Components/Views/DashBoard/DeliveryInfo/index.js.map +1 -0
  186. package/Components/Views/DashBoard/OverViewInfo/index.d.ts +29 -0
  187. package/Components/Views/DashBoard/OverViewInfo/index.js +237 -0
  188. package/Components/Views/DashBoard/OverViewInfo/index.js.map +1 -0
  189. package/Components/Views/DashBoard/PanelIntro/index.d.ts +4 -0
  190. package/Components/Views/DashBoard/PanelIntro/index.js +76 -0
  191. package/Components/Views/DashBoard/PanelIntro/index.js.map +1 -0
  192. package/Components/Views/DashBoard/SummaryPanel/index.d.ts +20 -0
  193. package/Components/Views/DashBoard/SummaryPanel/index.js +229 -0
  194. package/Components/Views/DashBoard/SummaryPanel/index.js.map +1 -0
  195. package/Components/Views/DashBoard/TopChannel/index.d.ts +13 -0
  196. package/Components/Views/DashBoard/TopChannel/index.js +89 -0
  197. package/Components/Views/DashBoard/TopChannel/index.js.map +1 -0
  198. package/Components/Views/DashBoard/TopViewTable/index.d.ts +12 -0
  199. package/Components/Views/DashBoard/TopViewTable/index.js +79 -0
  200. package/Components/Views/DashBoard/TopViewTable/index.js.map +1 -0
  201. package/Components/Views/DashBoard/type.d.ts +9 -0
  202. package/Components/Views/DashBoard/type.js +2 -0
  203. package/Components/Views/DashBoard/type.js.map +1 -0
  204. package/Components/Views/Helper/index.d.ts +2 -0
  205. package/Components/Views/Helper/index.js +10 -0
  206. package/Components/Views/Helper/index.js.map +1 -0
  207. package/Components/YoutubeImage/index.d.ts +45 -0
  208. package/Components/YoutubeImage/index.js +52 -0
  209. package/Components/YoutubeImage/index.js.map +1 -0
  210. package/Components/excel-icon-disabled.svg +16 -0
  211. package/Components/excel-icon.svg +9 -0
  212. package/Components/index.css +0 -0
  213. package/Components/index.d.ts +120 -0
  214. package/ComponentsV2/GlobalModal/index.d.ts +37 -0
  215. package/ComponentsV2/GlobalModal/index.js +100 -0
  216. package/ComponentsV2/GlobalModal/index.js.map +1 -0
  217. package/ComponentsV2/HeightEqualWidth/index.d.ts +8 -0
  218. package/ComponentsV2/HeightEqualWidth/index.js +41 -0
  219. package/ComponentsV2/HeightEqualWidth/index.js.map +1 -0
  220. package/ComponentsV2/LazyView/index.d.ts +6 -0
  221. package/ComponentsV2/LazyView/index.js +30 -0
  222. package/ComponentsV2/LazyView/index.js.map +1 -0
  223. package/ComponentsV2/LoadingAnimation/LoadingSquare.d.ts +3 -0
  224. package/ComponentsV2/LoadingAnimation/LoadingSquare.js +203 -0
  225. package/ComponentsV2/LoadingAnimation/LoadingSquare.js.map +1 -0
  226. package/ComponentsV2/LoadingAnimation/index.d.ts +9 -0
  227. package/ComponentsV2/LoadingAnimation/index.js +25 -0
  228. package/ComponentsV2/LoadingAnimation/index.js.map +1 -0
  229. package/ComponentsV2/TableTemplate/CRUDPannel.d.ts +22 -0
  230. package/ComponentsV2/TableTemplate/CRUDPannel.js +199 -0
  231. package/ComponentsV2/TableTemplate/CRUDPannel.js.map +1 -0
  232. package/ComponentsV2/TableTemplate/CreateTableTemplate.d.ts +60 -0
  233. package/ComponentsV2/TableTemplate/CreateTableTemplate.js +330 -0
  234. package/ComponentsV2/TableTemplate/CreateTableTemplate.js.map +1 -0
  235. package/ComponentsV2/TableTemplate/CustomGridFilterPanel.d.ts +6 -0
  236. package/ComponentsV2/TableTemplate/CustomGridFilterPanel.js +71 -0
  237. package/ComponentsV2/TableTemplate/CustomGridFilterPanel.js.map +1 -0
  238. package/ComponentsV2/TableTemplate/CustomerGridToolbar.d.ts +2 -0
  239. package/ComponentsV2/TableTemplate/CustomerGridToolbar.js +45 -0
  240. package/ComponentsV2/TableTemplate/CustomerGridToolbar.js.map +1 -0
  241. package/ComponentsV2/TableTemplate/ItemRowMenu/index.d.ts +14 -0
  242. package/ComponentsV2/TableTemplate/ItemRowMenu/index.js +49 -0
  243. package/ComponentsV2/TableTemplate/ItemRowMenu/index.js.map +1 -0
  244. package/ComponentsV2/TableTemplate/MapOperators.d.ts +5 -0
  245. package/ComponentsV2/TableTemplate/MapOperators.js +49 -0
  246. package/ComponentsV2/TableTemplate/MapOperators.js.map +1 -0
  247. package/ComponentsV2/TableTemplate/NoRowsOverlay.d.ts +5 -0
  248. package/ComponentsV2/TableTemplate/NoRowsOverlay.js +39 -0
  249. package/ComponentsV2/TableTemplate/NoRowsOverlay.js.map +1 -0
  250. package/ComponentsV2/TableTemplate/TableConverter.d.ts +33 -0
  251. package/ComponentsV2/TableTemplate/TableConverter.js +112 -0
  252. package/ComponentsV2/TableTemplate/TableConverter.js.map +1 -0
  253. package/ComponentsV2/TableTemplate/TableFormatter.d.ts +10 -0
  254. package/ComponentsV2/TableTemplate/TableFormatter.js +122 -0
  255. package/ComponentsV2/TableTemplate/TableFormatter.js.map +1 -0
  256. package/ComponentsV2/TableTemplate/TableTemplateContext.d.ts +16 -0
  257. package/ComponentsV2/TableTemplate/TableTemplateContext.js +6 -0
  258. package/ComponentsV2/TableTemplate/TableTemplateContext.js.map +1 -0
  259. package/ComponentsV2/TableTemplate/index.d.ts +14 -0
  260. package/ComponentsV2/TableTemplate/index.js +9 -0
  261. package/ComponentsV2/TableTemplate/index.js.map +1 -0
  262. package/ComponentsV2/TableTemplate/type.d.ts +59 -0
  263. package/ComponentsV2/TableTemplate/type.js +14 -0
  264. package/ComponentsV2/TableTemplate/type.js.map +1 -0
  265. package/ComponentsV2/index.css +4 -0
  266. package/ComponentsV2/index.d.ts +4 -0
  267. package/ComponentsV2/index.js +6 -0
  268. package/ComponentsV2/index.js.map +1 -0
  269. package/Services/Getway/RequestHelper.d.ts +2 -0
  270. package/Services/Getway/RequestHelper.js +51 -0
  271. package/Services/Getway/RequestHelper.js.map +1 -0
  272. package/Services/Getway/index.d.ts +3 -0
  273. package/Services/Getway/index.js +14 -0
  274. package/Services/Getway/index.js.map +1 -0
  275. package/Services/ServiceBase.d.ts +32 -0
  276. package/Services/ServiceBase.js +523 -0
  277. package/Services/ServiceBase.js.map +1 -0
  278. package/_virtual/_rollupPluginBabelHelpers.js +393 -0
  279. package/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  280. package/index.css +2 -0
  281. package/index.css.map +1 -0
  282. package/package.json +118 -0
  283. 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":";;;;;;;;;;;;;;;;AAmBA,IAAMA,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;EAAA,OAAQ;AAC/C,IAAA,qBAAqB,EAAE;AACrB,MAAA,IAAI,EAAE;AACJC,QAAAA,kBAAkB,EAAE;OACrB;AACD,MAAA,MAAM,EAAE;AACNA,QAAAA,kBAAkB,EAAE;AACtB;KACD;AACDC,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE,UAAU;AACpBC,MAAAA,KAAK,EAAE,MAAM;AACbC,MAAAA,SAAS,EAAE,OAAO;AAClBC,MAAAA,eAAe,EAAER,OAAO,CAACS,UAAU,CAACC,KAAK;AACzCC,MAAAA,MAAM,EAAE,QAAQ;MAChBC,WAAW,EAAEZ,OAAO,CAACa,OAAO;MAC5BC,YAAY,EAAEb,KAAK,CAACa,YAAY;AAChCC,MAAAA,SAAS,EAAE,YAAY;AACvBC,MAAAA,MAAM,EAAE,SAAS;AACjBC,MAAAA,QAAQ,EAAE;KACX;AACDC,IAAAA,MAAM,EAAE;AACNC,MAAAA,SAAS,EAAE,yCAAyC;AACpD;AACAC,MAAAA,eAAe,EAAAC,oCAAAA,CAAAA,MAAA,CAAuCrB,OAAO,CAACS,UAAU,CAACC,KAAK,EAAAW,IAAAA,CAAAA,CAAAA,MAAA,CAAKrB,OAAO,CAACS,UAAU,CAACC,KAAK,EAAAW,SAAAA,CAAAA,CAAAA,MAAA,CAAUrB,OAAO,CAACa,OAAO,EAAAQ,SAAAA,CAAAA,CAAAA,MAAA,CAAUrB,OAAO,CAACa,OAAO,EAAQ,QAAA,CAAA;AACrKS,MAAAA,cAAc,EAAE,WAAW;AAC3BX,MAAAA,MAAM,EAAE,OAAO;AACfC,MAAAA,WAAW,EAAEZ,OAAO,CAACuB,OAAO,CAACC;KAC9B;AACDC,IAAAA,OAAO,EAAE;AACP;AACAL,MAAAA,eAAe,EAAAC,oCAAAA,CAAAA,MAAA,CAAuCrB,OAAO,CAAC0B,KAAK,CAACF,KAAK,EAAA,IAAA,CAAA,CAAAH,MAAA,CAAKrB,OAAO,CAAC0B,KAAK,CAACF,KAAK,EAAAH,SAAAA,CAAAA,CAAAA,MAAA,CAAUrB,OAAO,CAAC0B,KAAK,CAACC,IAAI,EAAA,SAAA,CAAA,CAAAN,MAAA,CAAUrB,OAAO,CAAC0B,KAAK,CAACC,IAAI,EAAQ,QAAA,CAAA;AACjKf,MAAAA,WAAW,EAAEZ,OAAO,CAAC0B,KAAK,CAACE;KAC5B;AACDC,IAAAA,aAAa,EAAE;AACbC,MAAAA,SAAS,EAAE;KACZ;AACDC,IAAAA,IAAI,EAAE;AACJC,MAAAA,YAAY,EAAE9B,OAAO,CAAC,CAAC,CAAC;MACxB+B,SAAS,EAAE/B,OAAO,CAAC,CAAC;KACrB;AACDgC,IAAAA,IAAI,EAAE;AACJ5B,MAAAA,KAAK,EAAE,EAAE;AACT6B,MAAAA,MAAM,EAAE,EAAE;AACVC,MAAAA,KAAK,EAAEpC,OAAO,CAAC+B,IAAI,CAACR;AACtB;GACD;AAAA,CAAC;AAEF,IAAMc,2BAA2B,GAAG;AAClCC,EAAAA,UAAU,EAAE,MAAM;AAClBC,EAAAA,QAAQ,EAAE;AACZ,CAAC;AAED,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,UAAU,EAAEC,OAAO,EAAK;AACrD,EAAA,IAAIC,OAAO,CAACF,UAAU,CAACG,IAAI,CAAC,EAAE;AAC5B,IAAA,oBACEC,GAAA,CAAA,KAAA,EAAA;MACEC,SAAS,EAAEJ,OAAO,CAACK,KAAM;AACzBC,MAAAA,IAAI,EAAC,cAAc;AACnBC,MAAAA,GAAG,EAAC,EAAE;MACNC,GAAG,EAAET,UAAU,CAACU;AAAK,KACtB,CAAC;AAEN;EAEA,oBAAON,GAAA,CAACO,cAAc,EAAA;IAACN,SAAS,EAAEJ,OAAO,CAACK;AAAM,GAAE,CAAC;AACrD,CAAC;;AAED;AACA;AACA;AAFA,IAGMM,gBAAgB,0BAAAC,oBAAA,EAAA;AAAA,EAAA,SAAAD,gBAAA,GAAA;AAAA,IAAA,IAAAE,KAAA;AAAAC,IAAAA,eAAA,OAAAH,gBAAA,CAAA;AAAA,IAAA,KAAA,IAAAI,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,GAAAC,IAAAA,KAAA,CAAAJ,IAAA,GAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAAF,MAAAA,IAAA,CAAAE,IAAA,CAAAJ,GAAAA,SAAA,CAAAI,IAAA,CAAA;AAAA;AAAAP,IAAAA,KAAA,GAAAQ,UAAA,CAAA,IAAA,EAAAV,gBAAA,EAAAhC,EAAAA,CAAAA,MAAA,CAAAuC,IAAA,CAAA,CAAA;IAAAI,eAAA,CAAAT,KAAA,EACZ,OAAA,EAAA;AACNU,MAAAA,YAAY,EAAE,KAAK;AACnBC,MAAAA,eAAe,EAAE,EAAE;AACnBC,MAAAA,eAAe,EAAE;KAClB,CAAA;AAAAH,IAAAA,eAAA,CAAAT,KAAA,EAAA,oBAAA,eAAA,YAAA;AAAA,MAAA,IAAAa,KAAA,GAAAC,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAUoB,SAAAC,OAAAA,CAAOC,aAAa,EAAEC,GAAG,EAAA;AAAA,QAAA,IAAAC,WAAA,EAAAC,WAAA,EAAAC,UAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,QAAA,EAAAC,OAAA;AAAA,QAAA,OAAAb,YAAA,EAAA,CAAAc,CAAA,CAAA,UAAAC,QAAA,EAAA;UAAA,OAAAA,CAAAA,EAAAA,QAAAA,QAAA,CAAAC,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAX,cAAAA,WAAA,GAQxCpB,KAAA,CAAKgC,KAAK,EANZX,WAAW,GAAAD,WAAA,CAAXC,WAAW,EACXC,UAAU,GAAAF,WAAA,CAAVE,UAAU,EACVC,mBAAmB,GAAAH,WAAA,CAAnBG,mBAAmB,EACnBC,yBAAyB,GAAAJ,WAAA,CAAzBI,yBAAyB,EACzBC,KAAK,GAAAL,WAAA,CAALK,KAAK,EACLC,MAAM,GAAAN,WAAA,CAANM,MAAM;AAAA,cAAA,IAAA,EAINJ,UAAU,GAAG,CAAC,IACdD,WAAW,CAACjB,MAAM,GAAGc,aAAa,CAACd,MAAM,GAAGkB,UAAU,CAAA,EAAA;AAAAQ,gBAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA;cAEtD/B,KAAA,CAAKiC,QAAQ,CACX;AACEvB,gBAAAA,YAAY,EAAE,IAAI;AAClBC,gBAAAA,eAAe,EAAEa,yBAAyB,CAACF,UAAU,CAAC;AACtDV,gBAAAA,eAAe,EAAE;AACnB,eAAC,EACDZ,KAAA,CAAKkC,WACP,CAAC;cAAC,OAAAJ,QAAA,CAAAK,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAIJ;AACA,cAAA,IAAIT,MAAM,EAAE;AACVA,gBAAAA,MAAM,CAACR,aAAa,EAAEC,GAAG,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEMQ,cAAAA,QAAQ,GAAGT,aAAa,CAACkB,GAAG,CAAC,UAAC/C,IAAI,EAAK;gBAC3C,OAAO;AACLA,kBAAAA,IAAI,EAAJA;iBACD;AACH,eAAC,CAAC,CACF;AACA,cAAA,IAAIoC,KAAK,EAAE;gBACTA,KAAK,CAACE,QAAQ,CAAC;AACjB;;AAEA;cACMC,OAAO,GAAGD,QAAQ,CAACU,MAAM,CAC7B,UAACC,GAAG,EAAEC,OAAO,EAAA;gBAAA,OAAKD,GAAG,GAAGf,mBAAmB,CAACgB,OAAO,CAAClD,IAAI,CAACmD,IAAI,CAAC;AAAA,eAAA,EAC9D,EACF,CAAC;cACDxC,KAAA,CAAKiC,QAAQ,CACX;AACEvB,gBAAAA,YAAY,EAAE,IAAI;AAClBC,gBAAAA,eAAe,EAAEiB,OAAO;AACxBhB,gBAAAA,eAAe,EAAE;AACnB,eAAC,EACDZ,KAAA,CAAKkC,WACP,CAAC;AAAC,YAAA,KAAA,CAAA;cAAA,OAAAJ,QAAA,CAAAK,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,SAAA,EAAAlB,OAAA,CAAA;OACH,CAAA,CAAA;MAAA,OAAAwB,UAAAA,EAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAA7B,KAAA,CAAA8B,KAAA,CAAA,IAAA,EAAAxC,SAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAA,CAAA;AAAAM,IAAAA,eAAA,CAAAT,KAAA,EAAA,oBAAA,EAEoB,UAAC4C,aAAa,EAAEzB,GAAG,EAAK;AAC3C,MAAA,IAAA0B,YAAA,GAQI7C,KAAA,CAAKgC,KAAK;QAPZd,aAAa,GAAA2B,YAAA,CAAb3B,aAAa;QACbI,UAAU,GAAAuB,YAAA,CAAVvB,UAAU;QACVD,WAAW,GAAAwB,YAAA,CAAXxB,WAAW;QACXyB,oBAAoB,GAAAD,YAAA,CAApBC,oBAAoB;QACpBtB,yBAAyB,GAAAqB,YAAA,CAAzBrB,yBAAyB;QACzBuB,WAAW,GAAAF,YAAA,CAAXE,WAAW;QACXC,cAAc,GAAAH,YAAA,CAAdG,cAAc;MAGhB,IAAIpB,OAAO,GAAG,EAAE;MAChB,IAAIP,WAAW,CAACjB,MAAM,GAAGwC,aAAa,CAACxC,MAAM,GAAGkB,UAAU,EAAE;AAC1DM,QAAAA,OAAO,GAAGJ,yBAAyB,CAACF,UAAU,CAAC;AACjD,OAAC,MAAM;AACLsB,QAAAA,aAAa,CAACK,OAAO,CAAC,UAACC,YAAY,EAAK;UACtCtB,OAAO,GAAGkB,oBAAoB,CAC5BI,YAAY,CAAC7D,IAAI,EACjB6B,aAAa,EACb6B,WACF,CAAC;AACH,SAAC,CAAC;AACJ;AAEA,MAAA,IAAIC,cAAc,EAAE;AAClBA,QAAAA,cAAc,CAACJ,aAAa,EAAEzB,GAAG,CAAC;AACpC;MAEAnB,KAAA,CAAKiC,QAAQ,CACX;AACEvB,QAAAA,YAAY,EAAE,IAAI;AAClBC,QAAAA,eAAe,EAAEiB,OAAO;AACxBhB,QAAAA,eAAe,EAAE;AACnB,OAAC,EACDZ,KAAA,CAAKkC,WACP,CAAC;KACF,CAAA;AAAAzB,IAAAA,eAAA,CAAAT,KAAA,EAEc,cAAA,EAAA,UAACmD,SAAS,EAAA;MAAA,OAAK,UAACC,KAAK,EAAK;QACvCA,KAAK,CAACC,eAAe,EAAE;AAEvB,QAAA,IAAAC,YAAA,GAAyDtD,KAAA,CAAKgC,KAAK;UAA3DX,WAAW,GAAAiC,YAAA,CAAXjC,WAAW;UAAEkC,qBAAqB,GAAAD,YAAA,CAArBC,qBAAqB;UAAEC,QAAQ,GAAAF,YAAA,CAARE,QAAQ;;AAEpD;AACA,QAAA,IAAMC,cAAc,GAAGpC,WAAW,CAAC8B,SAAS,CAAC;;AAE7C;AACA,QAAA,IAAIK,QAAQ,EAAE;AACZA,UAAAA,QAAQ,CAACC,cAAc,EAAEN,SAAS,CAAC;AACrC;QAEAnD,KAAA,CAAKiC,QAAQ,CACX;AACEvB,UAAAA,YAAY,EAAE,IAAI;UAClBC,eAAe,EAAE4C,qBAAqB,CAACE,cAAc,CAACpE,IAAI,CAACmD,IAAI,CAAC;AAChE5B,UAAAA,eAAe,EAAE;AACnB,SAAC,EACDZ,KAAA,CAAKkC,WACP,CAAC;OACF;AAAA,KAAA,CAAA;IAAAzB,eAAA,CAAAT,KAAA,EAAA,qBAAA,EAEqB,YAAM;MAC1BA,KAAA,CAAKiC,QAAQ,CAAC;AACZvB,QAAAA,YAAY,EAAE;AAChB,OAAC,CAAC;KACH,CAAA;AAAA,IAAA,OAAAV,KAAA;AAAA;EAAA0D,SAAA,CAAA5D,gBAAA,EAAAC,oBAAA,CAAA;EAAA,OAAA4D,YAAA,CAAA7D,gBAAA,EAAA,CAAA;IAAA8D,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EA3ID,SAAA3B,WAAWA,GAAG;AACZ,MAAA,IAAQ4B,OAAO,GAAK,IAAI,CAAC9B,KAAK,CAAtB8B,OAAO;AACf,MAAA,IAAAC,WAAA,GAA2D,IAAI,CAACC,KAAK;QAA7DtD,YAAY,GAAAqD,WAAA,CAAZrD,YAAY;QAAEC,eAAe,GAAAoD,WAAA,CAAfpD,eAAe;QAAEC,eAAe,GAAAmD,WAAA,CAAfnD,eAAe;MACtD,IAAIF,YAAY,IAAIoD,OAAO,EAAE;AAC3BA,QAAAA,OAAO,CAACnD,eAAe,EAAEC,eAAe,CAAC;AAC3C;AACF;AAAC,GAAA,EAAA;IAAAgD,GAAA,EAAA,QAAA;AAAAC,IAAAA,KAAA,EAuID,SAAAI,MAAMA,GAAG;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA;AACP,MAAA,IAAAC,YAAA,GAyBI,IAAI,CAACnC,KAAK;QAxBZd,aAAa,GAAAiD,YAAA,CAAbjD,aAAa;QACbkD,kBAAkB,GAAAD,YAAA,CAAlBC,kBAAkB;QAClBjF,OAAO,GAAAgF,YAAA,CAAPhF,OAAO;QACPkF,wBAAwB,GAAAF,YAAA,CAAxBE,wBAAwB;QACxBC,aAAa,GAAAH,YAAA,CAAbG,aAAa;QACbC,sBAAsB,GAAAJ,YAAA,CAAtBI,sBAAsB;QACtBC,aAAa,GAAAL,YAAA,CAAbK,aAAa;QACbC,YAAY,GAAAN,YAAA,CAAZM,YAAY;QACZpD,WAAW,GAAA8C,YAAA,CAAX9C,WAAW;QACXC,UAAU,GAAA6C,YAAA,CAAV7C,UAAU;QACVoD,cAAc,GAAAP,YAAA,CAAdO,cAAc;QACdC,IAAI,GAAAR,YAAA,CAAJQ,IAAI;QACJC,UAAU,GAAAT,YAAA,CAAVS,UAAU;QACV7B,WAAW,GAAAoB,YAAA,CAAXpB,WAAW;QACX8B,gBAAgB,GAAAV,YAAA,CAAhBU,gBAAgB;QAChBC,kBAAkB,GAAAX,YAAA,CAAlBW,kBAAkB;QAClBC,gBAAgB,GAAAZ,YAAA,CAAhBY,gBAAgB;QAChBC,WAAW,GAAAb,YAAA,CAAXa,WAAW;QACXC,UAAU,GAAAd,YAAA,CAAVc,UAAU;QACVC,aAAa,GAAAf,YAAA,CAAbe,aAAa;QACbC,sBAAsB,GAAAhB,YAAA,CAAtBgB,sBAAsB;QACtBC,YAAY,GAAAjB,YAAA,CAAZiB,YAAY;QACZC,sBAAsB,GAAAlB,YAAA,CAAtBkB,sBAAsB;QACtBC,kBAAkB,GAAAnB,YAAA,CAAlBmB,kBAAkB;AAEpB,MAAA,IAAAC,YAAA,GAA2D,IAAI,CAACvB,KAAK;QAA7DtD,YAAY,GAAA6E,YAAA,CAAZ7E,YAAY;QAAEC,eAAe,GAAA4E,YAAA,CAAf5E,eAAe;QAAEC,eAAe,GAAA2E,YAAA,CAAf3E,eAAe;;AAEtD;AACA,MAAA,IAAM4E,UAAU,GAAGlE,UAAU,GAAG,CAAC;MACjC,IAAMmE,eAAe,GAAGL,YAAY,IAAI/D,WAAW,CAACjB,MAAM,GAAG,CAAC;MAC9D,IAAMsF,yBAAyB,GAC7BL,sBAAsB,IAAIhE,WAAW,CAACjB,MAAM,GAAG,CAAC;MAClD,oBACEuF,IAAA,CAACC,QAAQ,EAAA;QAAAC,QAAA,EAAA,cACPvG,GAAA,CAACwG,QAAQ,EAAAC,cAAA,CAAAA,cAAA,CAAA,EAAA,EACHvB,aAAa,CAAA,EAAA,EAAA,EAAA;AACjBwB,UAAAA,MAAM,EAAE9E,aAAc;UACtB+E,cAAc,EAAE,IAAI,CAACC,kBAAmB;UACxClD,cAAc,EAAE,IAAI,CAACmD,kBAAmB;AACxCC,UAAAA,OAAO,EAAErD,WAAY;AACrBsD,UAAAA,QAAQ,EAAEb,UAAW;UAAAK,QAAA,EAEpB,SAAAA,QAAAA,CAAAS,KAAA,EAAA;AAAA,YAAA,IAAGC,YAAY,GAAAD,KAAA,CAAZC,YAAY;cAAEC,aAAa,GAAAF,KAAA,CAAbE,aAAa;cAAEC,YAAY,GAAAH,KAAA,CAAZG,YAAY;cAAEC,YAAY,GAAAJ,KAAA,CAAZI,YAAY;AAAA,YAAA,oBACzDf,IAAA,CAAAI,KAAAA,EAAAA,cAAA,CAAAA,cAAA,CAAA,EAAA,EACMQ,YAAY,CAAC;cACfhH,SAAS,EAAEoH,IAAI,CACbxH,OAAO,CAACtC,IAAI,EACZyH,aAAa,EACbmC,YAAY,IAAItH,OAAO,CAACxB,MAAM,EAC9B,CAAC0G,wBAAwB,IAAIqC,YAAY,IAAIvH,OAAO,CAACjB,OACvD;AACF,aAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAA2H,cAAAA,QAAA,EAEFvG,cAAAA,GAAA,CAAAyG,OAAAA,EAAAA,cAAA,CAAWS,EAAAA,EAAAA,aAAa,CAAC5B,UAAU,CAAC,CAAG,CAAC,eAExCe,IAAA,CAAA,KAAA,EAAA;gBAAKpG,SAAS,EAAEJ,OAAO,CAACb,aAAc;gBAAAuH,QAAA,EAAA,cACpCvG,GAAA,CAACsH,UAAU,EAAA;AACTC,kBAAAA,OAAO,EAAC,IAAI;AACZC,kBAAAA,SAAS,EAAC,GAAG;kBACbvH,SAAS,EAAEoH,IAAI,CAACxH,OAAO,CAACX,IAAI,EAAE+F,sBAAsB,CAAE;AAAAsB,kBAAAA,QAAA,EAErDpB;AAAY,iBACH,CAAC,EACZE,IAAI,gBACHrF,GAAA,CAACqF,IAAI,EAAA;kBAACpF,SAAS,EAAEJ,OAAO,CAACR;AAAK,iBAAE,CAAC,gBAEjCW,GAAA,CAACyH,eAAe,EAAA;kBAACxH,SAAS,EAAEJ,OAAO,CAACR;AAAK,iBAAE,CAC5C;AAAA,eACE,CAAC,EAEL+G,yBAAyB,iBACxBpG,GAAA,CAAC0H,WAAW,EAAA;AACV3F,gBAAAA,WAAW,EAAEA,WAAY;gBACzB4F,YAAY,EAAE/C,MAAI,CAAC+C,YAAa;AAChCvC,gBAAAA,cAAc,EAAEA,cAAe;AAC/BQ,gBAAAA,aAAa,EAAEA,aAAc;AAC7BI,gBAAAA,kBAAkB,EAAEA,kBAAmB;AACvCT,gBAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,gBAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,gBAAAA,gBAAgB,EAAEA;AAAiB,eACpC,CACF;AAAA,aAAA,CACE,CAAC;AAAA;AACP,SAAA,CACO,CAAC,EAEVU,eAAe,iBACdE,IAAA,CAACC,QAAQ,EAAA;UAAAC,QAAA,EAAA,cACPvG,GAAA,CAACsH,UAAU,EAAA;AAACC,YAAAA,OAAO,EAAC,WAAW;AAACC,YAAAA,SAAS,EAAC,MAAM;AAAAjB,YAAAA,QAAA,EAC7Cb;AAAW,WACF,CAAC,eAEb1F,GAAA,CAAC0H,WAAW,EAAA;AACV3F,YAAAA,WAAW,EAAEA,WAAY;YACzB4F,YAAY,EAAE,IAAI,CAACA,YAAa;AAChCvC,YAAAA,cAAc,EAAEA,cAAe;AAC/BQ,YAAAA,aAAa,EAAEC,sBAAuB;AACtCG,YAAAA,kBAAkB,EAAEA,kBAAmB;AACvCT,YAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,YAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,YAAAA,gBAAgB,EAAEA;AAAiB,WACpC,CAAC;AAAA,SACM,CACX,EAEA,CAAE,OAAOE,UAAU,KAAK,SAAS,IAAIA,UAAU,IAC7C3E,KAAK,CAAC4G,OAAO,CAACjC,UAAU,CAAC,IACxBA,UAAU,CAACkC,QAAQ,CAACvG,eAAe,CAAE,kBACrCtB,GAAA,CAAC8H,QAAQ,EAAArB,cAAA,CAAAA,cAAA,CAAA;AACPsB,UAAAA,YAAY,EAAEvI,2BAA4B;AAC1CwI,UAAAA,gBAAgB,EAAE;AAAK,SAAA,EACnBlD,kBAAkB,CAAA,EAAA,EAAA,EAAA;AACtBmD,UAAAA,IAAI,EAAE7G,YAAa;UACnB8G,OAAO,EAAE,IAAI,CAACC,mBAAoB;UAAA5B,QAAA,eAElCvG,GAAA,CAACoI,sBAAsB,EAAA;YACrBF,OAAO,EAAE,IAAI,CAACC,mBAAoB;AAClCZ,YAAAA,OAAO,EAAEjG,eAAgB;AACzBgB,YAAAA,OAAO,EAAEjB;WACV;AAAC,SAAA,CACM,CACX;AAAA,OACK,CAAC;AAEf;AAAC,GAAA,CAAA,CAAA;AAAA,CAlR4BgH,CAAAA,KAAK,CAACC,aAAa,CAAA;AAqRlD9H,gBAAgB,CAAC+H,YAAY,GAAG;AAC9B3G,EAAAA,aAAa,EAAE,EAAE;AACjBI,EAAAA,UAAU,EAAE,CAAC;AACbD,EAAAA,WAAW,EAAE,EAAE;AACf0B,EAAAA,WAAW,EAAE,OAAO;AACpB0B,EAAAA,YAAY,EAAE,oCAAoC;AAClDO,EAAAA,WAAW,EAAE,UAAU;AACvBX,EAAAA,wBAAwB,EAAE,KAAK;AAC/Be,EAAAA,YAAY,EAAE,KAAK;AAAE;AACrBC,EAAAA,sBAAsB,EAAE,IAAI;AAC5BH,EAAAA,aAAa,EAAE,KAAK;AACpBC,EAAAA,sBAAsB,EAAE,KAAK;AAC7BG,EAAAA,kBAAkB,EAAE,KAAK;EACzBT,gBAAgB,EAAE,EAAE;EACpBC,kBAAkB,EAAE,EAAE;EACtBC,gBAAgB,EAAE,EAAE;AACpBE,EAAAA,UAAU,EAAE,IAAI;AAChBb,EAAAA,kBAAkB,EAAE;AAClBiD,IAAAA,YAAY,EAAE;AACZtI,MAAAA,UAAU,EAAE,MAAM;AAClBC,MAAAA,QAAQ,EAAE;KACX;AACDsI,IAAAA,gBAAgB,EAAE;GACnB;AACD9F,EAAAA,yBAAyB,EAAE,SAA3BA,yBAAyBA,CAAGF,UAAU,EAAA;IAAA,OAAAxD,iDAAAA,CAAAA,MAAA,CACcwD,UAAU,EAAA,UAAA,CAAA;GAAU;AACxEC,EAAAA,mBAAmB,EAAE,SAArBA,mBAAmBA,CAAGuG,QAAQ,EAAA;IAAA,OAAAhK,OAAAA,CAAAA,MAAA,CAAagK,QAAQ,EAAA,sBAAA,CAAA;GAAsB;AACzEpD,EAAAA,cAAc,EAAEzF,qBAAqB;AACrCsE,EAAAA,qBAAqB,EAAE,SAAvBA,qBAAqBA,CAAGuE,QAAQ,EAAA;IAAA,OAAAhK,OAAAA,CAAAA,MAAA,CAAagK,QAAQ,EAAA,WAAA,CAAA;GAAW;EAChEhF,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAGI,YAAY,EAAEhC,aAAa,EAAE6B,WAAW,EAAK;AAClE,IAAA,IAAInB,OAAO,GAAA9D,OAAAA,CAAAA,MAAA,CAAWoF,YAAY,CAACV,IAAI,EAAiB,iBAAA,CAAA;IACxD,IAAI,CAACtB,aAAa,CAACiG,QAAQ,CAACjE,YAAY,CAAC6E,IAAI,CAAC,EAAE;AAC9CnG,MAAAA,OAAO,IAAI,2BAA2B;AACxC;AACA,IAAA,IAAIsB,YAAY,CAAC8E,IAAI,GAAGjF,WAAW,EAAE;MACnCnB,OAAO,IACL,iCAAiC,GACjCqG,sBAAsB,CAAClF,WAAW,CAAC,GACnC,IAAI;AACR;AACA,IAAA,OAAOnB,OAAO;AAChB;AACF,CAAC;IAEYsG,eAAe,GAAGC,SAAS,CAACzL,KAAK,CAAC;EAC7C2C,IAAI,EAAE8I,SAAS,CAACC,MAAM;EACtBxI,IAAI,EAAEuI,SAAS,CAACE;AAClB,CAAC;AAEDvI,gBAAgB,CAACwI,SAAS,GAAG;AAC3B;AACAnJ,EAAAA,OAAO,EAAEgJ,SAAS,CAACC,MAAM,CAACG,UAAU;AACpC;AACF;AACA;EACErH,aAAa,EAAEiH,SAAS,CAACC,MAAM;AAC/B;EACA9G,UAAU,EAAE6G,SAAS,CAACK,MAAM;AAC5B;EACA7D,IAAI,EAAEwD,SAAS,CAACM,WAAW;AAC3B;AACApH,EAAAA,WAAW,EAAE8G,SAAS,CAACO,OAAO,CAACR,eAAe,CAAC;AAC/C;EACAnF,WAAW,EAAEoF,SAAS,CAACK,MAAM;AAC7B;EACA/D,YAAY,EAAE0D,SAAS,CAACQ,MAAM;AAC9B;EACArE,aAAa,EAAE6D,SAAS,CAACQ,MAAM;AAC/B;EACApE,sBAAsB,EAAE4D,SAAS,CAACQ,MAAM;AACxC;EACAtE,wBAAwB,EAAE8D,SAAS,CAACS,IAAI;AACxC;EACAxD,YAAY,EAAE+C,SAAS,CAACS,IAAI;AAC5B;EACAvD,sBAAsB,EAAE8C,SAAS,CAACS,IAAI;AACtC;EACA1D,aAAa,EAAEiD,SAAS,CAACS,IAAI;AAC7B;EACAzD,sBAAsB,EAAEgD,SAAS,CAACS,IAAI;AACtC;EACAtD,kBAAkB,EAAE6C,SAAS,CAACS,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;;;;"}