@flozy/editor 10.9.4 → 10.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Editor/ChatEditor.js +16 -17
- package/dist/Editor/CommonEditor.js +27 -138
- package/dist/Editor/DialogWrapper.js +25 -31
- package/dist/Editor/Editor.css +11 -39
- package/dist/Editor/Elements/AI/PopoverAIInput.js +3 -11
- package/dist/Editor/Elements/AI/Styles.js +0 -1
- package/dist/Editor/Elements/Accordion/Accordion.js +22 -28
- package/dist/Editor/Elements/Accordion/AccordionButton.js +3 -12
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Attachments/Attachments.js +11 -153
- package/dist/Editor/Elements/Attachments/AttachmentsButton.js +3 -8
- package/dist/Editor/Elements/Button/EditorButton.js +7 -23
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +14 -61
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +7 -10
- package/dist/Editor/Elements/Color Picker/Styles.js +13 -15
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +454 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +55 -134
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SelectV1.js +8 -7
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +3 -8
- package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +1 -1
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +1 -1
- package/dist/Editor/Elements/Embed/Embed.js +43 -36
- package/dist/Editor/Elements/Embed/Image.js +23 -236
- package/dist/Editor/Elements/Embed/Video.js +15 -246
- package/dist/Editor/Elements/Form/FormField.js +1 -1
- package/dist/Editor/Elements/Form/Workflow/Styles.js +22 -24
- package/dist/Editor/Elements/Form/Workflow/constant.js +1 -25
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +33 -39
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +4 -7
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +0 -1
- package/dist/Editor/Elements/FreeGrid/Options/More.js +7 -7
- package/dist/Editor/Elements/FreeGrid/styles.js +0 -15
- package/dist/Editor/Elements/Grid/GridItem.js +1 -1
- package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +1 -2
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/Table.js +4 -5
- package/dist/Editor/Elements/Table/TableCell.js +3 -10
- package/dist/Editor/Elements/Title/title.js +11 -10
- package/dist/Editor/Elements/TopBanner/TopBanner.js +2 -4
- package/dist/Editor/Elements/TopBanner/TopBannerButton.js +3 -5
- package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
- package/dist/Editor/MiniEditor.js +1 -2
- package/dist/Editor/Styles/EditorStyles.js +8 -20
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +3 -27
- package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +3 -4
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +29 -33
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +2 -4
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +23 -25
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +7 -25
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +42 -167
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +8 -24
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +10 -70
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +14 -73
- package/dist/Editor/Toolbar/PopupTool/index.js +4 -7
- package/dist/Editor/Toolbar/toolbarGroups.js +10 -56
- package/dist/Editor/common/ColorPickerButton.js +16 -38
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +0 -4
- package/dist/Editor/common/Icon.js +0 -28
- package/dist/Editor/common/ImageSelector/ImageSelector.js +7 -45
- package/dist/Editor/common/ImageSelector/Options/Upload.js +11 -26
- package/dist/Editor/common/ImageSelector/Styles.js +9 -3
- package/dist/Editor/common/LinkSettings/NavComponents.js +2 -6
- package/dist/Editor/common/MentionsPopup/index.js +1 -9
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +1 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +2 -4
- package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +7 -20
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +1 -9
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +7 -20
- package/dist/Editor/common/RnD/GuideLines/styles.js +1 -1
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -11
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +18 -28
- package/dist/Editor/common/RnD/Utils/index.js +1 -3
- package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +58 -45
- package/dist/Editor/common/RnD/VirtualElement/helper.js +130 -320
- package/dist/Editor/common/RnD/VirtualElement/styles.js +0 -22
- package/dist/Editor/common/RnD/index.js +13 -48
- package/dist/Editor/common/Shorthands/elements.js +4 -62
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
- package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +0 -4
- package/dist/Editor/common/StyleBuilder/fieldStyle.js +0 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +2 -15
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +2 -12
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
- package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +8 -16
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +10 -36
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +7 -16
- package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +1 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +0 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +1 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
- package/dist/Editor/common/StyleBuilder/formStyle.js +13 -19
- package/dist/Editor/common/StyleBuilder/index.js +4 -8
- package/dist/Editor/common/Uploader.js +17 -125
- package/dist/Editor/common/iconslist.js +0 -21
- package/dist/Editor/commonStyle.js +45 -64
- package/dist/Editor/helper/index.js +2 -10
- package/dist/Editor/helper/theme.js +2 -203
- package/dist/Editor/hooks/useMouseMove.js +3 -9
- package/dist/Editor/hooks/useTable.js +1 -62
- package/dist/Editor/plugins/withEmbeds.js +1 -12
- package/dist/Editor/plugins/withHTML.js +3 -58
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/service/fileupload.js +0 -70
- package/dist/Editor/theme/ThemeList.js +173 -50
- package/dist/Editor/utils/SlateUtilityFunctions.js +40 -189
- package/dist/Editor/utils/accordion.js +40 -68
- package/dist/Editor/utils/button.js +17 -1
- package/dist/Editor/utils/draftToSlate.js +2 -3
- package/dist/Editor/utils/events.js +89 -94
- package/dist/Editor/utils/font.js +37 -40
- package/dist/Editor/utils/formfield.js +2 -2
- package/dist/Editor/utils/helper.js +22 -98
- package/dist/Editor/utils/insertAppHeader.js +4 -8
- package/package.json +4 -4
- package/dist/Editor/Elements/Attachments/AttachmentStyles.js +0 -16
- package/dist/Editor/Elements/FreeGrid/helper.js +0 -115
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -439
- package/dist/Editor/assets/svg/BackIcon.js +0 -18
- package/dist/Editor/assets/svg/ThemeIcons.js +0 -293
- package/dist/Editor/common/CustomColorPicker/index.js +0 -130
- package/dist/Editor/common/CustomColorPicker/style.js +0 -53
- package/dist/Editor/common/CustomDialog2/index.js +0 -94
- package/dist/Editor/common/CustomDialog2/style.js +0 -67
- package/dist/Editor/common/CustomSelect.js +0 -43
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
- package/dist/Editor/common/StyleBuilder/fieldTypes/embedUpload.js +0 -115
- package/dist/Editor/common/UploaderWithProgress.js +0 -183
- package/dist/Editor/helper/textIndeces.js +0 -58
- package/dist/Editor/hooks/useEditorTheme.js +0 -153
- package/dist/Editor/hooks/useThemeValues.js +0 -63
- package/dist/Editor/theme/index.js +0 -149
- package/dist/Editor/themeSettings/ActiveTheme.js +0 -82
- package/dist/Editor/themeSettings/buttons/index.js +0 -300
- package/dist/Editor/themeSettings/buttons/style.js +0 -23
- package/dist/Editor/themeSettings/colorTheme/index.js +0 -310
- package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
- package/dist/Editor/themeSettings/fonts/index.js +0 -240
- package/dist/Editor/themeSettings/fonts/style.js +0 -62
- package/dist/Editor/themeSettings/icons.js +0 -60
- package/dist/Editor/themeSettings/index.js +0 -380
- package/dist/Editor/themeSettings/style.js +0 -299
- package/dist/Editor/themeSettingsAI/icons.js +0 -96
- package/dist/Editor/themeSettingsAI/index.js +0 -355
- package/dist/Editor/themeSettingsAI/saveTheme.js +0 -202
- package/dist/Editor/themeSettingsAI/style.js +0 -332
@@ -1,17 +1,10 @@
|
|
1
|
-
import React, { useEffect,
|
1
|
+
import React, { useEffect, 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";
|
13
5
|
import useResize from "../../utils/customHooks/useResize";
|
14
6
|
import EmbedPopup from "./EmbedPopup";
|
7
|
+
import { IconButton, Tooltip, Box, useTheme, useMediaQuery } from "@mui/material";
|
15
8
|
import { LinkIcon } from "../../common/iconslist";
|
16
9
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
17
10
|
import { getTRBLBreakPoints, getBreakPointsValue, groupByBreakpoint } from "../../helper/theme";
|
@@ -23,11 +16,8 @@ import { handleLinkType } from "../../utils/helper";
|
|
23
16
|
import { wrapThemeBreakpoints } from "../FreeGrid/breakpointConstants";
|
24
17
|
import useCommonStyle from "../../commonStyle";
|
25
18
|
import SettingsIcon from "../../assets/svg/SettingsIcon";
|
26
|
-
import ImageSelector from "../../common/ImageSelector/ImageSelector";
|
27
|
-
import { buildUpdateData } from "../../service/fileupload";
|
28
19
|
import { jsx as _jsx } from "react/jsx-runtime";
|
29
20
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
30
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
31
21
|
const ToolBar = ({
|
32
22
|
isEmpty,
|
33
23
|
onSettings,
|
@@ -77,105 +67,27 @@ const ImageContent = props => {
|
|
77
67
|
objectFit,
|
78
68
|
webAddress,
|
79
69
|
readOnly,
|
70
|
+
setOpenSettings,
|
80
71
|
handleImageClick,
|
81
72
|
onTouchEnd,
|
82
73
|
path,
|
83
74
|
theme,
|
84
75
|
classes,
|
85
|
-
translation
|
86
|
-
setUploadPopupOpen,
|
87
|
-
uploadStatus,
|
88
|
-
setUploadStatus,
|
89
|
-
uniqueId,
|
90
|
-
uploadTerminator,
|
91
|
-
editor
|
76
|
+
translation
|
92
77
|
} = props;
|
93
|
-
|
94
|
-
e.stopPropagation();
|
95
|
-
uploadTerminator(uniqueId, setUploadStatus);
|
96
|
-
Transforms.setNodes(editor, {
|
97
|
-
isUpload: false,
|
98
|
-
isUploading: false,
|
99
|
-
file: null
|
100
|
-
}, {
|
101
|
-
at: path
|
102
|
-
});
|
103
|
-
};
|
104
|
-
return !url ? !readOnly ? /*#__PURE__*/_jsx(Box, {
|
78
|
+
return !url ? !readOnly ? /*#__PURE__*/_jsxs(Box, {
|
105
79
|
component: "button",
|
106
80
|
className: "element-empty-btn",
|
107
81
|
contentEditable: false,
|
108
82
|
onClick: () => {
|
109
|
-
|
83
|
+
setOpenSettings(true);
|
110
84
|
},
|
111
85
|
sx: {
|
112
86
|
...classes.emptyThumbBtn
|
113
87
|
},
|
114
|
-
children:
|
115
|
-
|
116
|
-
|
117
|
-
sx: {
|
118
|
-
justifyContent: "space-between",
|
119
|
-
alignItems: "center"
|
120
|
-
},
|
121
|
-
children: [/*#__PURE__*/_jsx(Grid, {
|
122
|
-
children: /*#__PURE__*/_jsxs(Grid, {
|
123
|
-
container: true,
|
124
|
-
direction: "row",
|
125
|
-
sx: {
|
126
|
-
justifyContent: "space-between",
|
127
|
-
alignItems: "center",
|
128
|
-
gap: 1
|
129
|
-
},
|
130
|
-
children: [/*#__PURE__*/_jsx(Grid, {
|
131
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
132
|
-
icon: "image"
|
133
|
-
})
|
134
|
-
}), /*#__PURE__*/_jsx(Grid, {
|
135
|
-
children: /*#__PURE__*/_jsxs(Box, {
|
136
|
-
display: "flex",
|
137
|
-
flexDirection: "column",
|
138
|
-
alignItems: "flex-start",
|
139
|
-
justifyContent: "space-between",
|
140
|
-
children: [/*#__PURE__*/_jsx(Box, {
|
141
|
-
className: "truncateText",
|
142
|
-
children: uploadStatus?.fileName
|
143
|
-
}), /*#__PURE__*/_jsxs(Box, {
|
144
|
-
display: "flex",
|
145
|
-
alignItems: "center",
|
146
|
-
gap: 1,
|
147
|
-
marginTop: 1,
|
148
|
-
children: [/*#__PURE__*/_jsx(Box, {
|
149
|
-
children: uploadStatus?.fileSize
|
150
|
-
}), /*#__PURE__*/_jsx(CircularProgress, {
|
151
|
-
variant: "determinate",
|
152
|
-
value: uploadStatus?.uploadPercentage ?? 0,
|
153
|
-
className: "circularProgress-cls",
|
154
|
-
size: 15,
|
155
|
-
thickness: 8
|
156
|
-
}), /*#__PURE__*/_jsx(Box, {
|
157
|
-
children: `${uploadStatus?.uploadPercentage?.toFixed(0) ?? 0}%`
|
158
|
-
})]
|
159
|
-
})]
|
160
|
-
})
|
161
|
-
})]
|
162
|
-
})
|
163
|
-
}), /*#__PURE__*/_jsx(Grid, {
|
164
|
-
children: /*#__PURE__*/_jsx(HighlightOffRoundedIcon, {
|
165
|
-
className: "uploadCancel",
|
166
|
-
sx: {
|
167
|
-
cursor: "pointer"
|
168
|
-
},
|
169
|
-
onClick: e => {
|
170
|
-
cancelUpload(e);
|
171
|
-
}
|
172
|
-
})
|
173
|
-
})]
|
174
|
-
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
175
|
-
children: [/*#__PURE__*/_jsx(Icon, {
|
176
|
-
icon: "image"
|
177
|
-
}), translation("Add Image")]
|
178
|
-
})
|
88
|
+
children: [/*#__PURE__*/_jsx(Icon, {
|
89
|
+
icon: "image"
|
90
|
+
}), translation("Add Image")]
|
179
91
|
}) : /*#__PURE__*/_jsxs(Box, {
|
180
92
|
sx: {
|
181
93
|
color: "#64748B !important",
|
@@ -231,20 +143,11 @@ const Image = props => {
|
|
231
143
|
webAddress,
|
232
144
|
isNewTab,
|
233
145
|
linkType,
|
234
|
-
framePos
|
235
|
-
file,
|
236
|
-
isUploading,
|
237
|
-
uniqueId,
|
238
|
-
fromFreeGrid
|
146
|
+
framePos
|
239
147
|
} = element;
|
240
148
|
const {
|
241
149
|
readOnly,
|
242
|
-
translation
|
243
|
-
services,
|
244
|
-
uploadFile,
|
245
|
-
resumeUploadState,
|
246
|
-
uploadTerminator,
|
247
|
-
isUploadInProgress = () => false
|
150
|
+
translation
|
248
151
|
} = customProps;
|
249
152
|
const {
|
250
153
|
vertical,
|
@@ -259,12 +162,6 @@ const Image = props => {
|
|
259
162
|
const path = ReactEditor.findPath(editor, element);
|
260
163
|
const [openNav, setOpenNav] = useState(false);
|
261
164
|
const isEmpty = !url && !readOnly;
|
262
|
-
const [openUploadPopup, setUploadPopupOpen] = useState(false);
|
263
|
-
const [uploadStatus, setUploadStatus] = useState({
|
264
|
-
isUploading: false,
|
265
|
-
uploadPercentage: 0
|
266
|
-
});
|
267
|
-
const xhrRef = useRef(null);
|
268
165
|
const getSize = () => {
|
269
166
|
if (element?.size === undefined) {
|
270
167
|
return {
|
@@ -320,120 +217,32 @@ const Image = props => {
|
|
320
217
|
console.log(err);
|
321
218
|
}
|
322
219
|
};
|
323
|
-
const noUploadTracks = () => {
|
324
|
-
setUploadStatus({
|
325
|
-
isUploading: false,
|
326
|
-
uploadPercentage: 0,
|
327
|
-
fileName: null,
|
328
|
-
fileSize: null
|
329
|
-
});
|
330
|
-
Transforms.setNodes(editor, {
|
331
|
-
isUploading: false
|
332
|
-
}, {
|
333
|
-
at: path
|
334
|
-
});
|
335
|
-
};
|
336
|
-
useEffect(() => {
|
337
|
-
const isUploading = isUploadInProgress(uniqueId);
|
338
|
-
if (fromFreeGrid) {
|
339
|
-
if (isUploading) {
|
340
|
-
resumeUploadState(uniqueId, setUploadStatus, onSave, noUploadTracks, "image");
|
341
|
-
} else {
|
342
|
-
if (!isUploading) {
|
343
|
-
handleImageUpload({
|
344
|
-
file: file
|
345
|
-
});
|
346
|
-
}
|
347
|
-
}
|
348
|
-
}
|
349
|
-
}, [uniqueId, isUploading, file]);
|
350
220
|
useEffect(() => {
|
351
221
|
if (editor && ele && ele[1] !== undefined) {
|
352
222
|
const dom = ReactEditor.toDOMNode(editor, element);
|
353
223
|
setParentDOM(dom);
|
354
224
|
onLoad(getSize());
|
355
225
|
}
|
356
|
-
if (uniqueId && isUploading) {
|
357
|
-
resumeUploadState(uniqueId, setUploadStatus, onSave, noUploadTracks, "image");
|
358
|
-
} else if (file && isUploading) {
|
359
|
-
handleImageUpload({
|
360
|
-
file: file
|
361
|
-
});
|
362
|
-
}
|
363
226
|
}, []);
|
364
227
|
const onSettings = () => {
|
365
228
|
setOpenSettings(true);
|
366
229
|
};
|
367
230
|
const onSave = data => {
|
368
231
|
try {
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
}, {
|
380
|
-
at: path
|
381
|
-
});
|
382
|
-
onClose();
|
383
|
-
} else {
|
384
|
-
handleImageUpload({
|
385
|
-
file: data?.url?.file,
|
386
|
-
isUpload: true,
|
387
|
-
setUploadStatus,
|
388
|
-
services: services
|
389
|
-
});
|
390
|
-
onClose();
|
391
|
-
onSave("");
|
392
|
-
}
|
232
|
+
const updateData = {
|
233
|
+
...data
|
234
|
+
};
|
235
|
+
delete updateData.children;
|
236
|
+
Transforms.setNodes(editor, {
|
237
|
+
...updateData
|
238
|
+
}, {
|
239
|
+
at: path
|
240
|
+
});
|
241
|
+
onClose();
|
393
242
|
} catch (err) {
|
394
243
|
console.log(err);
|
395
244
|
}
|
396
245
|
};
|
397
|
-
const handleImageUpload = async uploadProp => {
|
398
|
-
try {
|
399
|
-
if (uploadProp?.isUpload === false) {
|
400
|
-
onSave(uploadProp?.embedURL);
|
401
|
-
} else {
|
402
|
-
const isAlreadyUploading = isUploadInProgress(uniqueId);
|
403
|
-
let result = {};
|
404
|
-
if (uploadProp?.file && !isAlreadyUploading) {
|
405
|
-
result = await services("uploadFile", uploadProp?.file);
|
406
|
-
}
|
407
|
-
const uploadUrl = result?.data?.[0];
|
408
|
-
if (uploadUrl) {
|
409
|
-
const id = !uniqueId ? crypto?.randomUUID() : uniqueId;
|
410
|
-
const fileEntry = {
|
411
|
-
...uploadProp,
|
412
|
-
xhrRef,
|
413
|
-
presidnedURL: uploadUrl,
|
414
|
-
status: "uploading"
|
415
|
-
};
|
416
|
-
uploadFile(id, fileEntry, setUploadStatus, onSave, "image");
|
417
|
-
if (!fromFreeGrid) {
|
418
|
-
Transforms.setNodes(editor, {
|
419
|
-
uniqueId: id,
|
420
|
-
isUploading: true
|
421
|
-
}, {
|
422
|
-
at: path
|
423
|
-
});
|
424
|
-
} else {
|
425
|
-
Transforms.setNodes(editor, {
|
426
|
-
isUploading: true
|
427
|
-
}, {
|
428
|
-
at: path
|
429
|
-
});
|
430
|
-
}
|
431
|
-
}
|
432
|
-
}
|
433
|
-
} catch (error) {
|
434
|
-
console.log(error);
|
435
|
-
}
|
436
|
-
};
|
437
246
|
const onClose = () => {
|
438
247
|
setOpenSettings(false);
|
439
248
|
};
|
@@ -515,16 +324,7 @@ const Image = props => {
|
|
515
324
|
path: path,
|
516
325
|
theme: theme,
|
517
326
|
classes: classes,
|
518
|
-
translation: translation
|
519
|
-
setUploadPopupOpen: setUploadPopupOpen,
|
520
|
-
openUploadPopup: openUploadPopup,
|
521
|
-
uploadStatus: uploadStatus,
|
522
|
-
setUploadStatus: setUploadStatus,
|
523
|
-
xhrRef: xhrRef,
|
524
|
-
onClose: onClose,
|
525
|
-
uniqueId: uniqueId,
|
526
|
-
uploadTerminator: uploadTerminator,
|
527
|
-
editor: editor
|
327
|
+
translation: translation
|
528
328
|
}), url && frames[frame] ? /*#__PURE__*/_jsx(Box, {
|
529
329
|
component: "div",
|
530
330
|
className: "image-frame",
|
@@ -572,20 +372,7 @@ const Image = props => {
|
|
572
372
|
navValue: webAddress,
|
573
373
|
openInNewTab: isNewTab,
|
574
374
|
customProps: customProps
|
575
|
-
}) : null
|
576
|
-
open: true,
|
577
|
-
title: "Image",
|
578
|
-
onClose: () => setUploadPopupOpen(false),
|
579
|
-
customProps: customProps,
|
580
|
-
onSelectImage: img => {
|
581
|
-
handleImageUpload(img);
|
582
|
-
setUploadPopupOpen(false);
|
583
|
-
},
|
584
|
-
openUploadPopup: openUploadPopup,
|
585
|
-
setUploadPopupOpen: setUploadPopupOpen,
|
586
|
-
setUploadStatus: setUploadStatus,
|
587
|
-
xhrRef: xhrRef
|
588
|
-
})]
|
375
|
+
}) : null]
|
589
376
|
});
|
590
377
|
};
|
591
378
|
export default Image;
|
@@ -1,15 +1,9 @@
|
|
1
1
|
import React, { useState, useEffect, useRef } from "react";
|
2
2
|
import { useSlateStatic, ReactEditor } from "slate-react";
|
3
3
|
import { Node, Transforms } from "slate";
|
4
|
-
import IconButton from
|
5
|
-
import Tooltip from '@mui/material/Tooltip';
|
6
|
-
import Box from '@mui/material/Box';
|
7
|
-
import useTheme from '@mui/material/styles/useTheme';
|
8
|
-
import Grid from '@mui/material/Grid';
|
9
|
-
import CircularProgress from '@mui/material/CircularProgress';
|
4
|
+
import { IconButton, Tooltip, Box, useTheme } from "@mui/material";
|
10
5
|
import DeleteIcon from "@mui/icons-material/Delete";
|
11
6
|
import AspectRatioIcon from "@mui/icons-material/AspectRatio";
|
12
|
-
import HighlightOffRoundedIcon from "@mui/icons-material/HighlightOffRounded";
|
13
7
|
import Icon from "../../common/Icon";
|
14
8
|
import useResize from "../../utils/customHooks/useResize";
|
15
9
|
import EmbedPopup from "./EmbedPopup";
|
@@ -19,10 +13,8 @@ import { getEmbedURL } from "../../helper";
|
|
19
13
|
import { getBreakPointsValue, getTRBLBreakPoints, groupByBreakpoint } from "../../helper/theme";
|
20
14
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
21
15
|
import useCommonStyle from "../../commonStyle";
|
22
|
-
import ImageSelector from "../../common/ImageSelector/ImageSelector";
|
23
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
24
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
25
|
-
import { Fragment as _Fragment } from "react/jsx-runtime";
|
26
18
|
const TYPE_LABELS = {
|
27
19
|
calendly: "Embed Calendly or Other",
|
28
20
|
video: "Embed Video or Other",
|
@@ -86,97 +78,18 @@ const VideoPlaceholder = props => {
|
|
86
78
|
onSettings,
|
87
79
|
classes,
|
88
80
|
type,
|
89
|
-
translation
|
90
|
-
uploadStatus,
|
91
|
-
setUploadStatus,
|
92
|
-
uploadTerminator,
|
93
|
-
uniqueId,
|
94
|
-
editor,
|
95
|
-
path
|
81
|
+
translation
|
96
82
|
} = props;
|
97
|
-
|
98
|
-
e.stopPropagation();
|
99
|
-
uploadTerminator(uniqueId, setUploadStatus);
|
100
|
-
Transforms.setNodes(editor, {
|
101
|
-
isUpload: false,
|
102
|
-
isUploading: false,
|
103
|
-
file: null
|
104
|
-
}, {
|
105
|
-
at: path
|
106
|
-
});
|
107
|
-
};
|
108
|
-
return !url ? !readOnly ? /*#__PURE__*/_jsx(Box, {
|
83
|
+
return !url ? !readOnly ? /*#__PURE__*/_jsxs(Box, {
|
109
84
|
component: "button",
|
110
85
|
className: "element-empty-btn",
|
111
|
-
onClick:
|
86
|
+
onClick: onSettings,
|
112
87
|
sx: {
|
113
88
|
...classes.emptyThumbBtn
|
114
89
|
},
|
115
|
-
children:
|
116
|
-
|
117
|
-
|
118
|
-
sx: {
|
119
|
-
justifyContent: "space-between",
|
120
|
-
alignItems: "center"
|
121
|
-
},
|
122
|
-
children: [/*#__PURE__*/_jsx(Grid, {
|
123
|
-
children: /*#__PURE__*/_jsxs(Grid, {
|
124
|
-
container: true,
|
125
|
-
direction: "row",
|
126
|
-
sx: {
|
127
|
-
justifyContent: "space-between",
|
128
|
-
alignItems: "center",
|
129
|
-
gap: 1
|
130
|
-
},
|
131
|
-
children: [/*#__PURE__*/_jsx(Grid, {
|
132
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
133
|
-
icon: "image"
|
134
|
-
})
|
135
|
-
}), /*#__PURE__*/_jsx(Grid, {
|
136
|
-
children: /*#__PURE__*/_jsxs(Box, {
|
137
|
-
display: "flex",
|
138
|
-
flexDirection: "column",
|
139
|
-
alignItems: "flex-start",
|
140
|
-
justifyContent: "space-between",
|
141
|
-
children: [/*#__PURE__*/_jsx(Box, {
|
142
|
-
className: "truncateText",
|
143
|
-
children: uploadStatus?.fileName
|
144
|
-
}), /*#__PURE__*/_jsxs(Box, {
|
145
|
-
display: "flex",
|
146
|
-
alignItems: "center",
|
147
|
-
gap: 1,
|
148
|
-
marginTop: 1,
|
149
|
-
children: [/*#__PURE__*/_jsx(Box, {
|
150
|
-
children: uploadStatus?.fileSize
|
151
|
-
}), /*#__PURE__*/_jsx(CircularProgress, {
|
152
|
-
variant: "determinate",
|
153
|
-
value: uploadStatus?.uploadPercentage ?? 0,
|
154
|
-
className: "circularProgress-cls",
|
155
|
-
size: 15,
|
156
|
-
thickness: 8
|
157
|
-
}), /*#__PURE__*/_jsx(Box, {
|
158
|
-
children: `${uploadStatus?.uploadPercentage?.toFixed(0) ?? 0}%`
|
159
|
-
})]
|
160
|
-
})]
|
161
|
-
})
|
162
|
-
})]
|
163
|
-
})
|
164
|
-
}), /*#__PURE__*/_jsx(Grid, {
|
165
|
-
children: /*#__PURE__*/_jsx(HighlightOffRoundedIcon, {
|
166
|
-
className: "uploadCancel",
|
167
|
-
sx: {
|
168
|
-
cursor: "pointer"
|
169
|
-
},
|
170
|
-
onClick: e => {
|
171
|
-
cancelUpload(e);
|
172
|
-
}
|
173
|
-
})
|
174
|
-
})]
|
175
|
-
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
176
|
-
children: [/*#__PURE__*/_jsx(Icon, {
|
177
|
-
icon: "video"
|
178
|
-
}), TYPE_LABELS[type] || translation("Embed Video or Other")]
|
179
|
-
})
|
90
|
+
children: [/*#__PURE__*/_jsx(Icon, {
|
91
|
+
icon: "video"
|
92
|
+
}), TYPE_LABELS[type] || translation("Embed Video or Other")]
|
180
93
|
}) : /*#__PURE__*/_jsxs(Box, {
|
181
94
|
sx: {
|
182
95
|
color: "#64748B !important",
|
@@ -207,23 +120,14 @@ const Video = ({
|
|
207
120
|
xsHidden,
|
208
121
|
width: oldWidth,
|
209
122
|
bannerSpacing,
|
210
|
-
aspectRatio
|
211
|
-
file,
|
212
|
-
isUploading,
|
213
|
-
uniqueId,
|
214
|
-
fromFreeGrid
|
123
|
+
aspectRatio
|
215
124
|
} = element;
|
216
125
|
const editor = useSlateStatic();
|
217
126
|
const [openSetttings, setOpenSettings] = useState(false);
|
218
127
|
const [parentDOM, setParentDOM] = useState(null);
|
219
128
|
const {
|
220
129
|
readOnly,
|
221
|
-
translation
|
222
|
-
services,
|
223
|
-
uploadFile,
|
224
|
-
resumeUploadState,
|
225
|
-
uploadTerminator,
|
226
|
-
isUploadInProgress = () => false
|
130
|
+
translation
|
227
131
|
} = customProps;
|
228
132
|
const {
|
229
133
|
vertical,
|
@@ -244,63 +148,6 @@ const Video = ({
|
|
244
148
|
return element?.size || {};
|
245
149
|
}
|
246
150
|
};
|
247
|
-
const xhrRef = useRef(null);
|
248
|
-
const [openUploadPopup, setUploadPopupOpen] = useState(false);
|
249
|
-
const [uploadStatus, setUploadStatus] = useState({
|
250
|
-
isUploading: false,
|
251
|
-
uploadPercentage: 0
|
252
|
-
});
|
253
|
-
const onClickUpload = () => {
|
254
|
-
setUploadPopupOpen(true);
|
255
|
-
};
|
256
|
-
const onSelectVideo = async video => {
|
257
|
-
handleClose();
|
258
|
-
let finalURL = null;
|
259
|
-
try {
|
260
|
-
if (video?.isUpload === false) {
|
261
|
-
finalURL = video?.embedURL;
|
262
|
-
} else {
|
263
|
-
const id = !uniqueId ? crypto?.randomUUID() : uniqueId;
|
264
|
-
const result = await services("uploadFile", video?.file);
|
265
|
-
const uploadUrl = result?.data?.[0];
|
266
|
-
const fileEntry = {
|
267
|
-
...video,
|
268
|
-
xhrRef,
|
269
|
-
presidnedURL: uploadUrl,
|
270
|
-
status: "uploading"
|
271
|
-
};
|
272
|
-
uploadFile(id, fileEntry, setUploadStatus, onSave, "video");
|
273
|
-
if (!fromFreeGrid) {
|
274
|
-
Transforms.setNodes(editor, {
|
275
|
-
uniqueId: id,
|
276
|
-
isUploading: true
|
277
|
-
}, {
|
278
|
-
at: path
|
279
|
-
});
|
280
|
-
} else {
|
281
|
-
Transforms.setNodes(editor, {
|
282
|
-
isUploading: true
|
283
|
-
}, {
|
284
|
-
at: path
|
285
|
-
});
|
286
|
-
}
|
287
|
-
}
|
288
|
-
if (finalURL) {
|
289
|
-
const updateObject = {
|
290
|
-
...element,
|
291
|
-
url: finalURL
|
292
|
-
};
|
293
|
-
onSave(updateObject);
|
294
|
-
} else {
|
295
|
-
return;
|
296
|
-
}
|
297
|
-
} catch (error) {
|
298
|
-
console.log(error);
|
299
|
-
}
|
300
|
-
};
|
301
|
-
const handleClose = () => {
|
302
|
-
setUploadPopupOpen(false);
|
303
|
-
};
|
304
151
|
const [size, onMouseDown, resizing, onLoad] = useResize({
|
305
152
|
parentDOM,
|
306
153
|
size: getSize(),
|
@@ -314,49 +161,12 @@ const Video = ({
|
|
314
161
|
});
|
315
162
|
const arr = Array.from(Node.elements(editor));
|
316
163
|
const ele = arr.find(([elem]) => element === elem);
|
317
|
-
const noUploadTracks = () => {
|
318
|
-
setUploadStatus({
|
319
|
-
isUploading: false,
|
320
|
-
uploadPercentage: 0,
|
321
|
-
fileName: null,
|
322
|
-
fileSize: null
|
323
|
-
});
|
324
|
-
};
|
325
|
-
useEffect(() => {
|
326
|
-
const isUploading = isUploadInProgress(uniqueId);
|
327
|
-
if (fromFreeGrid) {
|
328
|
-
if (isUploading) {
|
329
|
-
resumeUploadState(uniqueId, setUploadStatus, onSave, noUploadTracks, "image");
|
330
|
-
} else {
|
331
|
-
if (!isUploading && file) {
|
332
|
-
onSelectVideo({
|
333
|
-
file: file
|
334
|
-
});
|
335
|
-
}
|
336
|
-
}
|
337
|
-
}
|
338
|
-
return () => {
|
339
|
-
// Transforms.setNodes(editor, { isUploading: false }, { at: path });
|
340
|
-
};
|
341
|
-
}, [uniqueId, isUploading, file]);
|
342
164
|
useEffect(() => {
|
343
165
|
if (editor && ele && ele[1] !== undefined) {
|
344
166
|
const dom = ReactEditor.toDOMNode(editor, Node.get(editor, ele[1]));
|
345
167
|
setParentDOM(dom);
|
346
168
|
onLoad(element?.size || {});
|
347
169
|
}
|
348
|
-
if (!fromFreeGrid) {
|
349
|
-
if (uniqueId && isUploading) {
|
350
|
-
resumeUploadState(uniqueId, setUploadStatus, onSave, noUploadTracks, "video");
|
351
|
-
} else if (file && isUploading) {
|
352
|
-
onSelectVideo({
|
353
|
-
file: file
|
354
|
-
});
|
355
|
-
}
|
356
|
-
}
|
357
|
-
return () => {
|
358
|
-
// xhrRef?.current?.abort();
|
359
|
-
};
|
360
170
|
}, []);
|
361
171
|
const ToolBar = () => {
|
362
172
|
return /*#__PURE__*/_jsxs("div", {
|
@@ -384,35 +194,12 @@ const Video = ({
|
|
384
194
|
};
|
385
195
|
const onSave = data => {
|
386
196
|
try {
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
url: data,
|
391
|
-
uniqueId: undefined,
|
392
|
-
isUploading: false
|
393
|
-
};
|
394
|
-
} else if (typeof data?.url !== "string") {
|
395
|
-
updateData = {
|
396
|
-
...data,
|
397
|
-
url: ""
|
398
|
-
};
|
399
|
-
onSelectVideo({
|
400
|
-
file: data?.url?.file,
|
401
|
-
isUpload: true,
|
402
|
-
setUploadStatus,
|
403
|
-
services: customProps?.services
|
404
|
-
});
|
405
|
-
} else {
|
406
|
-
updateData = data;
|
407
|
-
}
|
197
|
+
const updateData = {
|
198
|
+
...data
|
199
|
+
};
|
408
200
|
delete updateData.children;
|
409
|
-
Transforms.select(editor, path);
|
410
|
-
ReactEditor.focus(editor);
|
411
201
|
Transforms.setNodes(editor, {
|
412
|
-
...updateData
|
413
|
-
isUpload: false,
|
414
|
-
isUploading: false,
|
415
|
-
file: null
|
202
|
+
...updateData
|
416
203
|
}, {
|
417
204
|
at: path
|
418
205
|
});
|
@@ -494,19 +281,13 @@ const Video = ({
|
|
494
281
|
children: [!readOnly && url && /*#__PURE__*/_jsx(ToolBar, {}), /*#__PURE__*/_jsx(VideoPlaceholder, {
|
495
282
|
...element,
|
496
283
|
embedURL: embedURL,
|
497
|
-
onSettings:
|
284
|
+
onSettings: onSettings,
|
498
285
|
videoSX: videoSX,
|
499
286
|
url: url,
|
500
287
|
readOnly: readOnly,
|
501
288
|
resizing: resizing,
|
502
289
|
classes: classes,
|
503
|
-
translation: translation
|
504
|
-
uploadStatus: uploadStatus,
|
505
|
-
setUploadStatus: setUploadStatus,
|
506
|
-
uploadTerminator: uploadTerminator,
|
507
|
-
uniqueId: uniqueId,
|
508
|
-
editor: editor,
|
509
|
-
path: path
|
290
|
+
translation: translation
|
510
291
|
}), !readOnly && url ? /*#__PURE__*/_jsx(IconButton, {
|
511
292
|
onPointerDown: onMouseDown,
|
512
293
|
style: {
|
@@ -514,18 +295,6 @@ const Video = ({
|
|
514
295
|
},
|
515
296
|
className: "resize-br visible-on-hover",
|
516
297
|
children: /*#__PURE__*/_jsx(AspectRatioIcon, {})
|
517
|
-
}) : null, openUploadPopup ? /*#__PURE__*/_jsx(ImageSelector, {
|
518
|
-
open: true,
|
519
|
-
Add: true,
|
520
|
-
commentMore: true,
|
521
|
-
actions: true,
|
522
|
-
title: "Video",
|
523
|
-
onClose: handleClose,
|
524
|
-
customProps: customProps,
|
525
|
-
onSelectImage: onSelectVideo,
|
526
|
-
setUploadPopupOpen: setUploadPopupOpen,
|
527
|
-
setUploadStatus: setUploadStatus,
|
528
|
-
xhrRef: xhrRef
|
529
298
|
}) : null]
|
530
299
|
}), children]
|
531
300
|
});
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React, { useState } from "react";
|
2
|
-
import { Transforms } from "slate";
|
2
|
+
import { Transforms, Node } from "slate";
|
3
3
|
import { useSlateStatic, ReactEditor } from "slate-react";
|
4
4
|
import { IconButton, Tooltip, Grid, useTheme } from "@mui/material";
|
5
5
|
import FormElements from "./FormElements";
|