@flozy/editor 11.1.1 → 11.1.3

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 (143) hide show
  1. package/dist/Editor/ChatEditor.js +6 -6
  2. package/dist/Editor/CommonEditor.js +82 -21
  3. package/dist/Editor/DialogWrapper.js +31 -25
  4. package/dist/Editor/Editor.css +37 -4
  5. package/dist/Editor/Elements/AI/PopoverAIInput.js +11 -3
  6. package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
  7. package/dist/Editor/Elements/Attachments/AttachmentStyles.js +16 -0
  8. package/dist/Editor/Elements/Attachments/Attachments.js +154 -11
  9. package/dist/Editor/Elements/Attachments/AttachmentsButton.js +8 -3
  10. package/dist/Editor/Elements/Button/EditorButton.js +22 -7
  11. package/dist/Editor/Elements/Color Picker/ColorButtons.js +61 -14
  12. package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
  13. package/dist/Editor/Elements/Color Picker/ColorPicker.js +10 -7
  14. package/dist/Editor/Elements/Color Picker/Styles.js +15 -13
  15. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +134 -55
  16. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SelectV1.js +7 -8
  17. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +8 -3
  18. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +1 -1
  19. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +1 -1
  20. package/dist/Editor/Elements/Embed/Embed.css +5 -0
  21. package/dist/Editor/Elements/Embed/Embed.js +37 -43
  22. package/dist/Editor/Elements/Embed/Image.js +242 -22
  23. package/dist/Editor/Elements/Embed/Video.js +277 -32
  24. package/dist/Editor/Elements/Form/Form.js +10 -35
  25. package/dist/Editor/Elements/Form/FormField.js +1 -1
  26. package/dist/Editor/Elements/Form/Workflow/Styles.js +24 -22
  27. package/dist/Editor/Elements/Form/Workflow/constant.js +25 -1
  28. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +34 -75
  29. package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +9 -5
  30. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +3 -1
  31. package/dist/Editor/Elements/FreeGrid/helper.js +194 -0
  32. package/dist/Editor/Elements/FreeGrid/styles.js +15 -0
  33. package/dist/Editor/Elements/Grid/GridItem.js +1 -1
  34. package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +2 -1
  35. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -3
  36. package/dist/Editor/Elements/Signature/SignaturePopup.js +2 -13
  37. package/dist/Editor/Elements/SimpleText/index.js +4 -1
  38. package/dist/Editor/Elements/Table/Table.js +2 -1
  39. package/dist/Editor/Elements/Table/TableCell.js +10 -3
  40. package/dist/Editor/Elements/Title/title.js +4 -5
  41. package/dist/Editor/Elements/TopBanner/TopBanner.js +4 -2
  42. package/dist/Editor/Elements/TopBanner/TopBannerButton.js +5 -3
  43. package/dist/Editor/Styles/EditorStyles.js +16 -5
  44. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
  45. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
  46. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  47. package/dist/Editor/Toolbar/FormatTools/TextSize.js +33 -29
  48. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +2 -1
  49. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +3 -1
  50. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +25 -23
  51. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +167 -42
  52. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +15 -5
  53. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +2 -1
  54. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +65 -7
  55. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +66 -12
  56. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +439 -0
  57. package/dist/Editor/Toolbar/PopupTool/index.js +7 -4
  58. package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
  59. package/dist/Editor/assets/svg/BackIcon.js +18 -0
  60. package/dist/Editor/assets/svg/ThemeIcons.js +293 -0
  61. package/dist/Editor/common/ColorPickerButton.js +38 -19
  62. package/dist/Editor/common/CustomColorPicker/index.js +130 -0
  63. package/dist/Editor/common/CustomColorPicker/style.js +53 -0
  64. package/dist/Editor/common/CustomDialog2/index.js +94 -0
  65. package/dist/Editor/common/CustomDialog2/style.js +67 -0
  66. package/dist/Editor/common/CustomSelect.js +43 -0
  67. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  68. package/dist/Editor/common/FontLoader/FontLoader.js +1 -0
  69. package/dist/Editor/common/Icon.js +28 -0
  70. package/dist/Editor/common/ImageSelector/ImageSelector.js +45 -7
  71. package/dist/Editor/common/ImageSelector/Options/Upload.js +26 -11
  72. package/dist/Editor/common/ImageSelector/Styles.js +3 -9
  73. package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +2 -1
  74. package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
  75. package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
  76. package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
  77. package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
  78. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +3 -2
  79. package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +20 -7
  80. package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
  81. package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +2 -0
  82. package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +20 -7
  83. package/dist/Editor/common/RnD/GuideLines/styles.js +1 -1
  84. package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
  85. package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +6 -3
  86. package/dist/Editor/common/RnD/Utils/gridDropItem.js +28 -11
  87. package/dist/Editor/common/RnD/Utils/index.js +3 -1
  88. package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +52 -63
  89. package/dist/Editor/common/RnD/VirtualElement/helper.js +248 -68
  90. package/dist/Editor/common/RnD/VirtualElement/styles.js +22 -0
  91. package/dist/Editor/common/RnD/index.js +61 -14
  92. package/dist/Editor/common/Shorthands/elements.js +54 -0
  93. package/dist/Editor/common/StyleBuilder/buttonStyle.js +4 -2
  94. package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +4 -0
  95. package/dist/Editor/common/StyleBuilder/fieldStyle.js +1 -0
  96. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +18 -4
  97. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +12 -2
  98. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -7
  99. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +36 -10
  100. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +13 -4
  101. package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +2 -0
  102. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +15 -4
  103. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +15 -7
  104. package/dist/Editor/common/StyleBuilder/formStyle.js +19 -13
  105. package/dist/Editor/common/StyleBuilder/index.js +8 -4
  106. package/dist/Editor/common/Uploader.js +118 -17
  107. package/dist/Editor/common/UploaderWithProgress.js +183 -0
  108. package/dist/Editor/common/iconslist.js +21 -0
  109. package/dist/Editor/commonStyle.js +37 -3
  110. package/dist/Editor/helper/index.js +4 -1
  111. package/dist/Editor/helper/theme.js +203 -2
  112. package/dist/Editor/hooks/useEditorTheme.js +153 -0
  113. package/dist/Editor/hooks/useMouseMove.js +12 -3
  114. package/dist/Editor/hooks/useTable.js +62 -1
  115. package/dist/Editor/hooks/useThemeValues.js +63 -0
  116. package/dist/Editor/plugins/withEmbeds.js +1 -1
  117. package/dist/Editor/plugins/withHTML.js +56 -3
  118. package/dist/Editor/plugins/withTable.js +1 -1
  119. package/dist/Editor/service/fileupload.js +70 -0
  120. package/dist/Editor/theme/ThemeList.js +50 -173
  121. package/dist/Editor/theme/index.js +149 -0
  122. package/dist/Editor/themeSettings/ActiveTheme.js +82 -0
  123. package/dist/Editor/themeSettings/buttons/index.js +300 -0
  124. package/dist/Editor/themeSettings/buttons/style.js +23 -0
  125. package/dist/Editor/themeSettings/colorTheme/index.js +310 -0
  126. package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
  127. package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
  128. package/dist/Editor/themeSettings/fonts/index.js +240 -0
  129. package/dist/Editor/themeSettings/fonts/style.js +62 -0
  130. package/dist/Editor/themeSettings/icons.js +60 -0
  131. package/dist/Editor/themeSettings/index.js +380 -0
  132. package/dist/Editor/themeSettings/style.js +299 -0
  133. package/dist/Editor/themeSettingsAI/icons.js +96 -0
  134. package/dist/Editor/themeSettingsAI/index.js +355 -0
  135. package/dist/Editor/themeSettingsAI/saveTheme.js +202 -0
  136. package/dist/Editor/themeSettingsAI/style.js +332 -0
  137. package/dist/Editor/utils/SlateUtilityFunctions.js +162 -38
  138. package/dist/Editor/utils/accordion.js +1 -1
  139. package/dist/Editor/utils/button.js +1 -17
  140. package/dist/Editor/utils/font.js +40 -37
  141. package/dist/Editor/utils/helper.js +76 -3
  142. package/dist/Editor/utils/insertAppHeader.js +8 -4
  143. package/package.json +1 -1
@@ -1,10 +1,17 @@
1
- import React, { useEffect, useState } from "react";
1
+ import React, { useEffect, useRef, useState } from "react";
2
2
  import { useSlateStatic, ReactEditor } from "slate-react";
3
3
  import { Node, Transforms, Editor } from "slate";
4
4
  import AspectRatioIcon from "@mui/icons-material/AspectRatio";
5
+ import IconButton from "@mui/material/IconButton";
6
+ import Tooltip from "@mui/material/Tooltip";
7
+ import Box from "@mui/material/Box";
8
+ import useTheme from "@mui/material/styles/useTheme";
9
+ import useMediaQuery from "@mui/material/useMediaQuery";
10
+ import Grid from "@mui/material/Grid";
11
+ import CircularProgress from "@mui/material/CircularProgress";
12
+ import HighlightOffRoundedIcon from "@mui/icons-material/HighlightOffRounded";
5
13
  import useResize from "../../utils/customHooks/useResize";
6
14
  import EmbedPopup from "./EmbedPopup";
7
- import { IconButton, Tooltip, Box, useTheme, useMediaQuery } from "@mui/material";
8
15
  import { LinkIcon } from "../../common/iconslist";
9
16
  import { useEditorContext } from "../../hooks/useMouseMove";
10
17
  import { getTRBLBreakPoints, getBreakPointsValue, groupByBreakpoint } from "../../helper/theme";
@@ -16,8 +23,11 @@ import { handleLinkType } from "../../utils/helper";
16
23
  import { wrapThemeBreakpoints } from "../FreeGrid/breakpointConstants";
17
24
  import useCommonStyle from "../../commonStyle";
18
25
  import SettingsIcon from "../../assets/svg/SettingsIcon";
26
+ import ImageSelector from "../../common/ImageSelector/ImageSelector";
27
+ import { buildUpdateData } from "../../service/fileupload";
19
28
  import { jsx as _jsx } from "react/jsx-runtime";
20
29
  import { jsxs as _jsxs } from "react/jsx-runtime";
30
+ import { Fragment as _Fragment } from "react/jsx-runtime";
21
31
  const ToolBar = ({
22
32
  isEmpty,
23
33
  onSettings,
@@ -73,21 +83,106 @@ const ImageContent = props => {
73
83
  path,
74
84
  theme,
75
85
  classes,
76
- translation
86
+ translation,
87
+ setUploadPopupOpen,
88
+ uploadStatus,
89
+ setUploadStatus,
90
+ uniqueId,
91
+ uploadTerminator,
92
+ editor
77
93
  } = props;
78
- return !url ? !readOnly ? /*#__PURE__*/_jsxs(Box, {
94
+ const cancelUpload = e => {
95
+ e.stopPropagation();
96
+ uploadTerminator(uniqueId, setUploadStatus);
97
+ Transforms.setNodes(editor, {
98
+ isUpload: false,
99
+ isUploading: false,
100
+ file: null
101
+ }, {
102
+ at: path
103
+ });
104
+ };
105
+ return !url ? !readOnly ? /*#__PURE__*/_jsx(Box, {
79
106
  component: "button",
80
107
  className: "element-empty-btn",
81
108
  contentEditable: false,
82
109
  onClick: () => {
83
- setOpenSettings(true);
110
+ if (!uploadStatus?.isUploading) setUploadPopupOpen(true);
84
111
  },
85
112
  sx: {
86
113
  ...classes.emptyThumbBtn
87
114
  },
88
- children: [/*#__PURE__*/_jsx(Icon, {
89
- icon: "image"
90
- }), translation("Add Image")]
115
+ children: uploadStatus?.isUploading ? /*#__PURE__*/_jsxs(Grid, {
116
+ container: true,
117
+ direction: "row",
118
+ style: {
119
+ display: "flex",
120
+ justifyContent: "space-between"
121
+ },
122
+ children: [/*#__PURE__*/_jsx(Grid, {
123
+ style: {
124
+ width: "80%"
125
+ },
126
+ children: /*#__PURE__*/_jsxs(Grid, {
127
+ container: true,
128
+ direction: "row",
129
+ sx: {
130
+ justifyContent: "flex-start",
131
+ alignItems: "center"
132
+ // gap: 1,
133
+ },
134
+ children: [/*#__PURE__*/_jsx(Grid, {
135
+ children: /*#__PURE__*/_jsx(Icon, {
136
+ icon: "image"
137
+ })
138
+ }), /*#__PURE__*/_jsx(Grid, {
139
+ style: {
140
+ width: "80%"
141
+ },
142
+ children: /*#__PURE__*/_jsxs(Box, {
143
+ display: "flex",
144
+ flexDirection: "column",
145
+ alignItems: "flex-start",
146
+ justifyContent: "flex-start",
147
+ children: [/*#__PURE__*/_jsx(Box, {
148
+ className: "truncateText",
149
+ children: uploadStatus?.fileName
150
+ }), /*#__PURE__*/_jsxs(Box, {
151
+ display: "flex",
152
+ alignItems: "center",
153
+ gap: 1,
154
+ marginTop: 1,
155
+ children: [/*#__PURE__*/_jsx(Box, {
156
+ children: uploadStatus?.fileSize
157
+ }), /*#__PURE__*/_jsx(CircularProgress, {
158
+ variant: "determinate",
159
+ value: uploadStatus?.uploadPercentage ?? 0,
160
+ className: "circularProgress-cls",
161
+ size: 15,
162
+ thickness: 8
163
+ }), /*#__PURE__*/_jsx(Box, {
164
+ children: `${uploadStatus?.uploadPercentage?.toFixed(0) ?? 0}%`
165
+ })]
166
+ })]
167
+ })
168
+ })]
169
+ })
170
+ }), /*#__PURE__*/_jsx(Grid, {
171
+ children: /*#__PURE__*/_jsx(HighlightOffRoundedIcon, {
172
+ className: "uploadCancel",
173
+ sx: {
174
+ cursor: "pointer"
175
+ },
176
+ onClick: e => {
177
+ cancelUpload(e);
178
+ }
179
+ })
180
+ })]
181
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
182
+ children: [/*#__PURE__*/_jsx(Icon, {
183
+ icon: "image"
184
+ }), translation("Add Image")]
185
+ })
91
186
  }) : /*#__PURE__*/_jsxs(Box, {
92
187
  sx: {
93
188
  color: "#64748B !important",
@@ -143,11 +238,20 @@ const Image = props => {
143
238
  webAddress,
144
239
  isNewTab,
145
240
  linkType,
146
- framePos
241
+ framePos,
242
+ file,
243
+ isUploading,
244
+ uniqueId,
245
+ fromFreeGrid
147
246
  } = element;
148
247
  const {
149
248
  readOnly,
150
- translation
249
+ translation,
250
+ services,
251
+ uploadFile,
252
+ resumeUploadState,
253
+ uploadTerminator,
254
+ isUploadInProgress = () => false
151
255
  } = customProps;
152
256
  const {
153
257
  vertical,
@@ -162,6 +266,12 @@ const Image = props => {
162
266
  const path = ReactEditor.findPath(editor, element);
163
267
  const [openNav, setOpenNav] = useState(false);
164
268
  const isEmpty = !url && !readOnly;
269
+ const [openUploadPopup, setUploadPopupOpen] = useState(false);
270
+ const [uploadStatus, setUploadStatus] = useState({
271
+ isUploading: false,
272
+ uploadPercentage: 0
273
+ });
274
+ const xhrRef = useRef(null);
165
275
  const getSize = () => {
166
276
  if (element?.size === undefined) {
167
277
  return {
@@ -217,32 +327,120 @@ const Image = props => {
217
327
  console.log(err);
218
328
  }
219
329
  };
330
+ const noUploadTracks = () => {
331
+ setUploadStatus({
332
+ isUploading: false,
333
+ uploadPercentage: 0,
334
+ fileName: null,
335
+ fileSize: null
336
+ });
337
+ Transforms.setNodes(editor, {
338
+ isUploading: false
339
+ }, {
340
+ at: path
341
+ });
342
+ };
343
+ useEffect(() => {
344
+ const isUploading = isUploadInProgress(uniqueId);
345
+ if (fromFreeGrid) {
346
+ if (isUploading) {
347
+ resumeUploadState(uniqueId, setUploadStatus, onSave, noUploadTracks, "image");
348
+ } else {
349
+ if (!isUploading) {
350
+ handleImageUpload({
351
+ file: file
352
+ });
353
+ }
354
+ }
355
+ }
356
+ }, [uniqueId, isUploading, file]);
220
357
  useEffect(() => {
221
358
  if (editor && ele && ele[1] !== undefined) {
222
359
  const dom = ReactEditor.toDOMNode(editor, element);
223
360
  setParentDOM(dom);
224
361
  onLoad(getSize());
225
362
  }
363
+ if (uniqueId && isUploading) {
364
+ resumeUploadState(uniqueId, setUploadStatus, onSave, noUploadTracks, "image");
365
+ } else if (file && isUploading) {
366
+ handleImageUpload({
367
+ file: file
368
+ });
369
+ }
226
370
  }, []);
227
371
  const onSettings = () => {
228
372
  setOpenSettings(true);
229
373
  };
230
374
  const onSave = data => {
231
375
  try {
232
- const updateData = {
233
- ...data
234
- };
235
- delete updateData.children;
236
- Transforms.setNodes(editor, {
237
- ...updateData
238
- }, {
239
- at: path
240
- });
241
- onClose();
376
+ if (!data?.url?.file) {
377
+ const updateData = buildUpdateData(data, url);
378
+ delete updateData.children;
379
+ Transforms.select(editor, path);
380
+ ReactEditor.focus(editor);
381
+ Transforms.setNodes(editor, {
382
+ ...updateData,
383
+ isUpload: false,
384
+ isUploading: false,
385
+ file: null
386
+ }, {
387
+ at: path
388
+ });
389
+ onClose();
390
+ } else {
391
+ handleImageUpload({
392
+ file: data?.url?.file,
393
+ isUpload: true,
394
+ setUploadStatus,
395
+ services: services
396
+ });
397
+ onClose();
398
+ onSave("");
399
+ }
242
400
  } catch (err) {
243
401
  console.log(err);
244
402
  }
245
403
  };
404
+ const handleImageUpload = async uploadProp => {
405
+ try {
406
+ if (uploadProp?.isUpload === false) {
407
+ onSave(uploadProp?.embedURL);
408
+ } else {
409
+ const isAlreadyUploading = isUploadInProgress(uniqueId);
410
+ let result = {};
411
+ if (uploadProp?.file && !isAlreadyUploading) {
412
+ result = await services("uploadFile", uploadProp?.file);
413
+ }
414
+ const uploadUrl = result?.data?.[0];
415
+ if (uploadUrl) {
416
+ const id = !uniqueId ? crypto?.randomUUID() : uniqueId;
417
+ const fileEntry = {
418
+ ...uploadProp,
419
+ xhrRef,
420
+ presidnedURL: uploadUrl,
421
+ status: "uploading"
422
+ };
423
+ uploadFile(id, fileEntry, setUploadStatus, onSave, "image");
424
+ if (!fromFreeGrid) {
425
+ Transforms.setNodes(editor, {
426
+ uniqueId: id,
427
+ isUploading: true
428
+ }, {
429
+ at: path
430
+ });
431
+ } else {
432
+ Transforms.setNodes(editor, {
433
+ isUploading: true
434
+ }, {
435
+ at: path
436
+ });
437
+ }
438
+ }
439
+ }
440
+ } catch (error) {
441
+ console.log(error);
442
+ }
443
+ };
246
444
  const onClose = () => {
247
445
  setOpenSettings(false);
248
446
  };
@@ -324,7 +522,16 @@ const Image = props => {
324
522
  path: path,
325
523
  theme: theme,
326
524
  classes: classes,
327
- translation: translation
525
+ translation: translation,
526
+ setUploadPopupOpen: setUploadPopupOpen,
527
+ openUploadPopup: openUploadPopup,
528
+ uploadStatus: uploadStatus,
529
+ setUploadStatus: setUploadStatus,
530
+ xhrRef: xhrRef,
531
+ onClose: onClose,
532
+ uniqueId: uniqueId,
533
+ uploadTerminator: uploadTerminator,
534
+ editor: editor
328
535
  }), url && frames[frame] ? /*#__PURE__*/_jsx(Box, {
329
536
  component: "div",
330
537
  className: "image-frame",
@@ -372,7 +579,20 @@ const Image = props => {
372
579
  navValue: webAddress,
373
580
  openInNewTab: isNewTab,
374
581
  customProps: customProps
375
- }) : null]
582
+ }) : null, openUploadPopup && /*#__PURE__*/_jsx(ImageSelector, {
583
+ open: true,
584
+ title: "Image",
585
+ onClose: () => setUploadPopupOpen(false),
586
+ customProps: customProps,
587
+ onSelectImage: img => {
588
+ handleImageUpload(img);
589
+ setUploadPopupOpen(false);
590
+ },
591
+ openUploadPopup: openUploadPopup,
592
+ setUploadPopupOpen: setUploadPopupOpen,
593
+ setUploadStatus: setUploadStatus,
594
+ xhrRef: xhrRef
595
+ })]
376
596
  });
377
597
  };
378
598
  export default Image;