@flozy/editor 3.7.7 → 3.7.8
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 +86 -17
- package/dist/Editor/CommonEditor.js +111 -169
- package/dist/Editor/Elements/Accordion/Accordion.js +7 -74
- package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +2 -3
- package/dist/Editor/Elements/Accordion/AccordionSummary.js +60 -4
- package/dist/Editor/Elements/AppHeader/AppHeader.js +4 -26
- package/dist/Editor/Elements/Button/EditorButton.js +20 -30
- package/dist/Editor/Elements/ChipText/ChipText.js +2 -1
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +17 -60
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
- package/dist/Editor/Elements/Color Picker/Styles.js +1 -2
- package/dist/Editor/Elements/Embed/Image.js +20 -28
- package/dist/Editor/Elements/Embed/Video.js +11 -15
- package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +3 -12
- package/dist/Editor/Elements/Form/Workflow/UserInputs.js +1 -2
- package/dist/Editor/Elements/Grid/Grid.js +0 -2
- package/dist/Editor/Elements/Grid/GridItem.js +1 -3
- package/dist/Editor/Elements/Link/Link.js +1 -6
- package/dist/Editor/Elements/Link/LinkButton.js +2 -4
- package/dist/Editor/Elements/Link/LinkPopup.js +3 -11
- package/dist/Editor/Elements/Table/TableCell.js +1 -1
- package/dist/Editor/MiniEditor.js +1 -3
- package/dist/Editor/Toolbar/Basic/index.js +2 -4
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +2 -26
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +11 -5
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +11 -4
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +86 -213
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +13 -20
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +7 -52
- package/dist/Editor/Toolbar/PopupTool/index.js +11 -12
- package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
- package/dist/Editor/common/ColorPickerButton.js +9 -25
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/Icon.js +2 -30
- package/dist/Editor/common/LinkSettings/NavComponents.js +2 -5
- package/dist/Editor/common/LinkSettings/index.js +1 -2
- package/dist/Editor/common/LinkSettings/navOptions.js +2 -7
- package/dist/Editor/common/MUIIcon/index.js +8 -3
- package/dist/Editor/common/MentionsPopup/Styles.js +3 -6
- package/dist/Editor/common/Shorthands/elements.js +0 -54
- package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +7 -7
- package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +16 -16
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +3 -13
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
- package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +1 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +7 -31
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
- package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +6 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +4 -14
- package/dist/Editor/common/StyleBuilder/index.js +1 -1
- package/dist/Editor/helper/theme.js +4 -190
- package/dist/Editor/hooks/useMouseMove.js +2 -4
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +5 -47
- package/dist/Editor/plugins/withLayout.js +10 -15
- package/dist/Editor/plugins/withTable.js +2 -2
- package/dist/Editor/theme/ThemeList.js +173 -50
- package/dist/Editor/utils/SlateUtilityFunctions.js +25 -157
- package/dist/Editor/utils/button.js +17 -1
- package/dist/Editor/utils/events.js +4 -11
- package/dist/Editor/utils/font.js +37 -40
- package/dist/Editor/utils/helper.js +13 -73
- package/package.json +1 -1
- package/dist/Editor/Elements/Link/LinkPopupStyles.js +0 -28
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
- package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
- package/dist/Editor/common/CustomColorPicker/index.js +0 -106
- package/dist/Editor/common/CustomColorPicker/style.js +0 -53
- package/dist/Editor/common/CustomDialog/index.js +0 -94
- package/dist/Editor/common/CustomDialog/style.js +0 -67
- package/dist/Editor/common/CustomSelect.js +0 -33
- package/dist/Editor/common/EditorCmds.js +0 -35
- package/dist/Editor/hooks/useEditorTheme.js +0 -139
- package/dist/Editor/theme/index.js +0 -144
- package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
- package/dist/Editor/themeSettings/buttons/index.js +0 -290
- package/dist/Editor/themeSettings/buttons/style.js +0 -21
- package/dist/Editor/themeSettings/colorTheme/index.js +0 -290
- package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -123
- package/dist/Editor/themeSettings/fonts/index.js +0 -213
- package/dist/Editor/themeSettings/fonts/style.js +0 -44
- package/dist/Editor/themeSettings/icons.js +0 -60
- package/dist/Editor/themeSettings/index.js +0 -320
- package/dist/Editor/themeSettings/style.js +0 -152
- package/dist/Editor/themeSettingsAI/icons.js +0 -96
- package/dist/Editor/themeSettingsAI/index.js +0 -356
- package/dist/Editor/themeSettingsAI/saveTheme.js +0 -190
- package/dist/Editor/themeSettingsAI/style.js +0 -247
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useCallback, useMemo, useRef, useState, useEffect, useImperativeHandle, forwardRef } from "react";
|
|
2
2
|
import { Editable, Slate, ReactEditor } from 'slate-react';
|
|
3
|
-
import { createEditor } from 'slate';
|
|
3
|
+
import { createEditor, Transforms } from 'slate';
|
|
4
4
|
import { useDebounce } from "use-debounce";
|
|
5
5
|
import withCommon from "./hooks/withCommon";
|
|
6
6
|
import { getBlock, getMarked } from "./utils/chatEditor/SlateUtilityFunctions";
|
|
@@ -26,7 +26,8 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
26
26
|
needLayout = false,
|
|
27
27
|
toolBar = true,
|
|
28
28
|
onSave,
|
|
29
|
-
onsubmit
|
|
29
|
+
onsubmit,
|
|
30
|
+
onBlur = () => {}
|
|
30
31
|
} = props;
|
|
31
32
|
const classes = usePopupStyle(theme);
|
|
32
33
|
const convertedContent = draftToSlate({
|
|
@@ -36,6 +37,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
36
37
|
const [value, setValue] = useState(convertedContent);
|
|
37
38
|
const [loadedValue] = useState(value);
|
|
38
39
|
const [deboundedValue] = useDebounce(value, 500);
|
|
40
|
+
const [isExternalUpdate, setIsExternalUpdate] = useState(false);
|
|
39
41
|
const editor = useMemo(() => {
|
|
40
42
|
return withCommon(createEditor(), {
|
|
41
43
|
needLayout
|
|
@@ -46,17 +48,60 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
46
48
|
emojiClick: emoji => {
|
|
47
49
|
if (editor) {
|
|
48
50
|
insertEmoji(editor, emoji?.native, editor.selection);
|
|
51
|
+
if (editor.selection) {
|
|
52
|
+
const path = editor.selection.anchor.path;
|
|
53
|
+
const offset = editor.selection.anchor.offset + emoji?.native.length;
|
|
54
|
+
const position = {
|
|
55
|
+
anchor: {
|
|
56
|
+
path: [0],
|
|
57
|
+
offset: 0
|
|
58
|
+
},
|
|
59
|
+
focus: {
|
|
60
|
+
path: [0],
|
|
61
|
+
offset: 0
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
// Create a new selection
|
|
65
|
+
Transforms.select(editor, position);
|
|
66
|
+
}
|
|
49
67
|
ReactEditor.focus(editor);
|
|
50
68
|
}
|
|
51
69
|
},
|
|
70
|
+
setContent: newContent => {
|
|
71
|
+
setIsExternalUpdate(true);
|
|
72
|
+
setValue(newContent);
|
|
73
|
+
ReactEditor.focus(editor);
|
|
74
|
+
},
|
|
52
75
|
// Focus enable
|
|
53
|
-
enableFocus: () => {
|
|
54
|
-
|
|
55
|
-
|
|
76
|
+
// enableFocus: () => {
|
|
77
|
+
// if (editor) {
|
|
78
|
+
// const position = {
|
|
79
|
+
// anchor: { path: [0], offset: 0 },
|
|
80
|
+
// focus: { path: [0], offset: 0 },
|
|
81
|
+
// };
|
|
82
|
+
// Transforms.select(editor, position);
|
|
83
|
+
// ReactEditor.focus(editor);
|
|
84
|
+
// }
|
|
85
|
+
// },
|
|
86
|
+
|
|
87
|
+
clearAll: () => {
|
|
88
|
+
if (!editor) return;
|
|
89
|
+
while (editor.children.length > 0) {
|
|
90
|
+
Transforms.removeNodes(editor, {
|
|
91
|
+
at: [0]
|
|
92
|
+
});
|
|
56
93
|
}
|
|
94
|
+
Transforms.insertNodes(editor, {
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
children: [{
|
|
97
|
+
text: ''
|
|
98
|
+
}]
|
|
99
|
+
});
|
|
100
|
+
ReactEditor.focus(editor);
|
|
57
101
|
}
|
|
58
102
|
}));
|
|
59
103
|
useEffect(() => {
|
|
104
|
+
setIsExternalUpdate(true);
|
|
60
105
|
setValue(draftToSlate({
|
|
61
106
|
data: content
|
|
62
107
|
}));
|
|
@@ -123,9 +168,14 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
123
168
|
});
|
|
124
169
|
};
|
|
125
170
|
const handleEditorChange = newValue => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
171
|
+
if (isExternalUpdate) {
|
|
172
|
+
setIsExternalUpdate(false);
|
|
173
|
+
return;
|
|
174
|
+
} else {
|
|
175
|
+
setValue(newValue);
|
|
176
|
+
if (!isInteracted) {
|
|
177
|
+
setIsInteracted(true);
|
|
178
|
+
}
|
|
129
179
|
}
|
|
130
180
|
};
|
|
131
181
|
const Element = props => {
|
|
@@ -162,18 +212,36 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
162
212
|
event,
|
|
163
213
|
editor
|
|
164
214
|
});
|
|
165
|
-
} else if (event.key === "Enter"
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
215
|
+
} else if (event.key === "Enter") {
|
|
216
|
+
const isEmpty = value.length === 1 && value[0].type === 'paragraph' && value[0].children.length === 1 && value[0].children[0].text === '';
|
|
217
|
+
if (isEmpty) {
|
|
218
|
+
event.preventDefault();
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
if (!event.shiftKey) {
|
|
222
|
+
const {
|
|
223
|
+
value: strVal,
|
|
224
|
+
...restVal
|
|
225
|
+
} = getOnSaveData(value);
|
|
226
|
+
onsubmit(false, {
|
|
227
|
+
strVal,
|
|
228
|
+
restVal
|
|
229
|
+
});
|
|
230
|
+
event.preventDefault();
|
|
231
|
+
}
|
|
174
232
|
}
|
|
175
233
|
}, [chars, editor, target, mentions, setMentions, search, type, mentionsRef]);
|
|
176
234
|
const handleClose = () => {};
|
|
235
|
+
const handleBlur = () => {
|
|
236
|
+
const {
|
|
237
|
+
value: strVal,
|
|
238
|
+
...restVal
|
|
239
|
+
} = getOnSaveData(value);
|
|
240
|
+
onBlur({
|
|
241
|
+
strVal,
|
|
242
|
+
restVal
|
|
243
|
+
});
|
|
244
|
+
};
|
|
177
245
|
return /*#__PURE__*/_jsx(EditorProvider, {
|
|
178
246
|
theme: theme,
|
|
179
247
|
editor: editor,
|
|
@@ -192,6 +260,7 @@ const ChatEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
192
260
|
placeholder: "Start typing ...",
|
|
193
261
|
spellCheck: true,
|
|
194
262
|
autoFocus: true,
|
|
263
|
+
onBlur: handleBlur,
|
|
195
264
|
onKeyDown: onKeyDown
|
|
196
265
|
}), !readOnly ? /*#__PURE__*/_jsx(MentionsPopup, {
|
|
197
266
|
ref: mentionsRef,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-unused-vars */
|
|
2
|
-
import React, { useRef, useCallback, useEffect, useMemo, useState, forwardRef, useImperativeHandle
|
|
2
|
+
import React, { useRef, useCallback, useEffect, useMemo, useState, forwardRef, useImperativeHandle } from "react";
|
|
3
3
|
import { createEditor, Transforms } from "slate";
|
|
4
4
|
import { Slate, Editable, ReactEditor } from "slate-react";
|
|
5
5
|
import { useDebounce, useDebouncedCallback } from "use-debounce";
|
|
@@ -18,7 +18,7 @@ import { getThumbnailImage, invertColor } from "./helper";
|
|
|
18
18
|
import PopupTool from "./Toolbar/PopupTool";
|
|
19
19
|
import "./font.css";
|
|
20
20
|
import "./Editor.css";
|
|
21
|
-
import { Box,
|
|
21
|
+
import { Box, Button, Typography } from "@mui/material";
|
|
22
22
|
import Shorthands from "./common/Shorthands";
|
|
23
23
|
import MiniToolbar from "./Toolbar/Mini/MiniToolbar";
|
|
24
24
|
import { EditorProvider } from "./hooks/useMouseMove";
|
|
@@ -28,19 +28,12 @@ import DragAndDrop from "./common/DnD";
|
|
|
28
28
|
import Section from "./common/Section";
|
|
29
29
|
import "animate.css";
|
|
30
30
|
import decorators from "./utils/Decorators";
|
|
31
|
-
import { getTRBLBreakPoints
|
|
32
|
-
import { handleInsertLastElement,
|
|
31
|
+
import { getTRBLBreakPoints } from "./helper/theme";
|
|
32
|
+
import { handleInsertLastElement, outsideEditorClickLabel } from "./utils/helper";
|
|
33
33
|
import useWindowResize from "./hooks/useWindowResize";
|
|
34
|
-
import { getTheme } from "./theme";
|
|
35
|
-
import { useTheme } from "@emotion/react";
|
|
36
|
-
import ThemeSettings from "./themeSettings";
|
|
37
|
-
import ThemeSettingsAI from "./themeSettingsAI";
|
|
38
|
-
import { Experimental_CssVarsProvider as CssVarsProvider, experimental_extendTheme as extendTheme } from "@mui/material/styles";
|
|
39
34
|
import PopoverAIInput from "./Elements/AI/PopoverAIInput";
|
|
40
|
-
import { ThemeAIIcon, ThemePaintIcon } from "./assets/svg/ThemeIcons";
|
|
41
35
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
42
36
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
43
|
-
export const ThemeContext = /*#__PURE__*/createContext(null);
|
|
44
37
|
const Item = /*#__PURE__*/forwardRef(({
|
|
45
38
|
children,
|
|
46
39
|
...props
|
|
@@ -67,8 +60,7 @@ const Leaf = ({
|
|
|
67
60
|
children,
|
|
68
61
|
leaf
|
|
69
62
|
}) => {
|
|
70
|
-
|
|
71
|
-
children = getMarked(leaf, children, theme);
|
|
63
|
+
children = getMarked(leaf, children);
|
|
72
64
|
return /*#__PURE__*/_jsx("span", {
|
|
73
65
|
...attributes,
|
|
74
66
|
children: children
|
|
@@ -87,8 +79,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
87
79
|
toolbarOptions,
|
|
88
80
|
otherProps,
|
|
89
81
|
isIframe,
|
|
90
|
-
theme
|
|
91
|
-
showThemeButtons
|
|
82
|
+
theme
|
|
92
83
|
} = props;
|
|
93
84
|
const editorWrapper = useRef();
|
|
94
85
|
const mentionsRef = useRef();
|
|
@@ -132,11 +123,10 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
132
123
|
const {
|
|
133
124
|
bannerSpacing,
|
|
134
125
|
pageBgImage,
|
|
135
|
-
pageColor
|
|
126
|
+
pageColor,
|
|
136
127
|
color: pageTextColor,
|
|
137
128
|
pageWidth,
|
|
138
|
-
maxWidth: pageMaxWidth
|
|
139
|
-
theme: selectedTheme
|
|
129
|
+
maxWidth: pageMaxWidth
|
|
140
130
|
} = pageSt?.pageProps || {
|
|
141
131
|
bannerSpacing: {
|
|
142
132
|
left: 0,
|
|
@@ -147,11 +137,9 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
147
137
|
};
|
|
148
138
|
const classes = editorStyles({
|
|
149
139
|
padHeight: !fullScreen ? otherProps?.padHeight : 20,
|
|
150
|
-
placeHolderColor: invertColor(pageColor
|
|
140
|
+
placeHolderColor: invertColor(pageColor || "#FFF"),
|
|
151
141
|
theme
|
|
152
142
|
});
|
|
153
|
-
const [openTheme, setOpenTheme] = useState(false);
|
|
154
|
-
const [openAITheme, setOpenAITheme] = useState(false);
|
|
155
143
|
useEffect(() => {
|
|
156
144
|
setValue(draftToSlate({
|
|
157
145
|
data: content
|
|
@@ -251,12 +239,6 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
251
239
|
redo() {
|
|
252
240
|
editor?.redo();
|
|
253
241
|
},
|
|
254
|
-
toggleTheme() {
|
|
255
|
-
setOpenTheme(!openTheme);
|
|
256
|
-
},
|
|
257
|
-
toggleAITheme() {
|
|
258
|
-
setOpenAITheme(!openAITheme);
|
|
259
|
-
},
|
|
260
242
|
getPageSettings: {
|
|
261
243
|
background: pageBgImage && pageBgImage !== "none" ? `url(${pageBgImage})` : pageColor || ""
|
|
262
244
|
}
|
|
@@ -337,8 +319,7 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
337
319
|
} else if (isCtrlKey) {
|
|
338
320
|
commands({
|
|
339
321
|
event,
|
|
340
|
-
editor
|
|
341
|
-
needLayout
|
|
322
|
+
editor
|
|
342
323
|
});
|
|
343
324
|
} else if (event.key === "Tab") {
|
|
344
325
|
event.preventDefault();
|
|
@@ -404,152 +385,113 @@ const CommonEditor = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
404
385
|
}
|
|
405
386
|
return style;
|
|
406
387
|
}, [pageBgImage, pageColor]);
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
children: /*#__PURE__*/
|
|
416
|
-
|
|
417
|
-
editor:
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
...dotBg
|
|
448
|
-
},
|
|
449
|
-
children: /*#__PURE__*/_jsxs(Slate, {
|
|
450
|
-
editor: editor,
|
|
451
|
-
initialValue: value,
|
|
452
|
-
onChange: handleEditorChange,
|
|
453
|
-
children: [/*#__PURE__*/_jsx(DragAndDrop, {
|
|
454
|
-
children: /*#__PURE__*/_jsxs(Overlay, {
|
|
455
|
-
children: [/*#__PURE__*/_jsx(Box, {
|
|
456
|
-
className: `${hasTopBanner() ? "has-topbanner" : ""} ${!pageColor ? "no-color" : ""} ${isScrolling ? "" : "hideScroll"} scrollable-content scrollSmooth`,
|
|
457
|
-
sx: classes.slateWrapper,
|
|
458
|
-
id: "slate-wrapper-scroll-container"
|
|
459
|
-
// style={editorWrapperStyle}
|
|
460
|
-
,
|
|
461
|
-
ref: editorWrapper,
|
|
462
|
-
onClick: e => {
|
|
463
|
-
handleInsertLastElement(e, editor);
|
|
464
|
-
},
|
|
465
|
-
onScroll: handleScroll,
|
|
466
|
-
style: editorWrapperStyle,
|
|
388
|
+
return /*#__PURE__*/_jsx(EditorProvider, {
|
|
389
|
+
theme: theme,
|
|
390
|
+
editor: editor,
|
|
391
|
+
children: /*#__PURE__*/_jsx(DialogWrapper, {
|
|
392
|
+
classes: classes,
|
|
393
|
+
...props,
|
|
394
|
+
fullScreen: fullScreen,
|
|
395
|
+
footer: footer || "",
|
|
396
|
+
children: /*#__PURE__*/_jsx(Box, {
|
|
397
|
+
component: "div",
|
|
398
|
+
className: `${editorClass || ""} ${isIframe ? "iframe-editor" : ""}`,
|
|
399
|
+
sx: classes.root,
|
|
400
|
+
style: {
|
|
401
|
+
...dotBg
|
|
402
|
+
},
|
|
403
|
+
children: /*#__PURE__*/_jsxs(Slate, {
|
|
404
|
+
editor: editor,
|
|
405
|
+
initialValue: value,
|
|
406
|
+
onChange: handleEditorChange,
|
|
407
|
+
children: [/*#__PURE__*/_jsx(DragAndDrop, {
|
|
408
|
+
children: /*#__PURE__*/_jsxs(Overlay, {
|
|
409
|
+
children: [/*#__PURE__*/_jsx(Box, {
|
|
410
|
+
className: `${hasTopBanner() ? "has-topbanner" : ""} ${!pageColor ? "no-color" : ""} ${isScrolling ? "" : "hideScroll"} scrollable-content scrollSmooth`,
|
|
411
|
+
sx: classes.slateWrapper,
|
|
412
|
+
id: "slate-wrapper-scroll-container"
|
|
413
|
+
// style={editorWrapperStyle}
|
|
414
|
+
,
|
|
415
|
+
ref: editorWrapper,
|
|
416
|
+
onClick: e => {
|
|
417
|
+
handleInsertLastElement(e, editor);
|
|
418
|
+
},
|
|
419
|
+
onScroll: handleScroll,
|
|
420
|
+
style: editorWrapperStyle,
|
|
421
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
|
422
|
+
component: "div",
|
|
423
|
+
className: "max-content",
|
|
424
|
+
"data-info": outsideEditorClickLabel,
|
|
425
|
+
children: [renderTopBanner(), /*#__PURE__*/_jsx("div", {
|
|
426
|
+
className: "scroll-area",
|
|
427
|
+
"data-info": outsideEditorClickLabel,
|
|
467
428
|
children: /*#__PURE__*/_jsxs(Box, {
|
|
468
429
|
component: "div",
|
|
469
|
-
className:
|
|
470
|
-
sx:
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
"data-info": outsideEditorClickLabel,
|
|
475
|
-
children: /*#__PURE__*/_jsxs(Box, {
|
|
476
|
-
component: "div",
|
|
477
|
-
className: `editor-wrapper ${pageWidth === "fixed" ? "fixed" : "full"}`,
|
|
478
|
-
sx: {
|
|
479
|
-
backgroundColor: "transparent",
|
|
480
|
-
padding: {
|
|
481
|
-
...getTRBLBreakPoints(bannerSpacing)
|
|
482
|
-
},
|
|
483
|
-
width: !pageWidth || pageWidth === "fixed" ? fixedWidth : fullWidth,
|
|
484
|
-
height: viewport.h ? `${viewport.h}px` : `100%`,
|
|
485
|
-
alignSelf: "center",
|
|
486
|
-
transformOrigin: "left top",
|
|
487
|
-
transition: "all 0.3s",
|
|
488
|
-
minHeight: "87%",
|
|
489
|
-
maxWidth: pageMaxWidth ? `${parseInt(pageMaxWidth)}px !important` : "auto"
|
|
490
|
-
},
|
|
491
|
-
"data-info": outsideEditorClickLabel,
|
|
492
|
-
children: [/*#__PURE__*/_jsx(Editable, {
|
|
493
|
-
className: "innert-editor-textbox",
|
|
494
|
-
readOnly: isReadOnly,
|
|
495
|
-
renderElement: renderElement,
|
|
496
|
-
renderLeaf: renderLeaf,
|
|
497
|
-
decorate: decorators,
|
|
498
|
-
onKeyDown: onKeyDown
|
|
499
|
-
}), !readOnly ? /*#__PURE__*/_jsx(MentionsPopup, {
|
|
500
|
-
ref: mentionsRef,
|
|
501
|
-
mentions: mentions,
|
|
502
|
-
setMentions: setMentions,
|
|
503
|
-
editor: editor,
|
|
504
|
-
target: target,
|
|
505
|
-
index: index,
|
|
506
|
-
chars: chars,
|
|
507
|
-
type: type,
|
|
508
|
-
theme: theme
|
|
509
|
-
}) : null]
|
|
510
|
-
})
|
|
511
|
-
}), !hideMiniToolBar ? /*#__PURE__*/_jsx(MiniToolbar, {
|
|
512
|
-
customProps: customProps,
|
|
513
|
-
toolbarOptions: toolbarOptions,
|
|
514
|
-
theme: theme
|
|
515
|
-
}) : null, /*#__PURE__*/_jsx(PopoverAIInput, {
|
|
516
|
-
otherProps: otherProps || {}
|
|
517
|
-
}), footer && (fullScreen || readOnly) && /*#__PURE__*/_jsx(Typography, {
|
|
518
|
-
sx: {
|
|
519
|
-
color: "rgb(100, 116, 139)",
|
|
520
|
-
fontSize: "13px",
|
|
521
|
-
paddingBottom: hideMiniToolBar ? "0px" : "12px",
|
|
522
|
-
cursor: "pointer"
|
|
430
|
+
className: `editor-wrapper ${pageWidth === "fixed" ? "fixed" : "full"}`,
|
|
431
|
+
sx: {
|
|
432
|
+
backgroundColor: "transparent",
|
|
433
|
+
padding: {
|
|
434
|
+
...getTRBLBreakPoints(bannerSpacing)
|
|
523
435
|
},
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
436
|
+
width: !pageWidth || pageWidth === "fixed" ? fixedWidth : fullWidth,
|
|
437
|
+
height: viewport.h ? `${viewport.h}px` : `100%`,
|
|
438
|
+
alignSelf: "center",
|
|
439
|
+
transformOrigin: "left top",
|
|
440
|
+
transition: "all 0.3s",
|
|
441
|
+
minHeight: "87%",
|
|
442
|
+
maxWidth: pageMaxWidth ? `${parseInt(pageMaxWidth)}px !important` : "auto"
|
|
443
|
+
},
|
|
444
|
+
"data-info": outsideEditorClickLabel,
|
|
445
|
+
children: [/*#__PURE__*/_jsx(Editable, {
|
|
446
|
+
className: "innert-editor-textbox",
|
|
447
|
+
readOnly: isReadOnly,
|
|
448
|
+
renderElement: renderElement,
|
|
449
|
+
renderLeaf: renderLeaf,
|
|
450
|
+
decorate: decorators,
|
|
451
|
+
onKeyDown: onKeyDown
|
|
452
|
+
}), !readOnly ? /*#__PURE__*/_jsx(MentionsPopup, {
|
|
453
|
+
ref: mentionsRef,
|
|
454
|
+
mentions: mentions,
|
|
455
|
+
setMentions: setMentions,
|
|
531
456
|
editor: editor,
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
})]
|
|
457
|
+
target: target,
|
|
458
|
+
index: index,
|
|
459
|
+
chars: chars,
|
|
460
|
+
type: type,
|
|
461
|
+
theme: theme
|
|
462
|
+
}) : null]
|
|
538
463
|
})
|
|
539
|
-
}), !
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
464
|
+
}), !hideMiniToolBar ? /*#__PURE__*/_jsx(MiniToolbar, {
|
|
465
|
+
customProps: customProps,
|
|
466
|
+
toolbarOptions: toolbarOptions,
|
|
467
|
+
theme: theme
|
|
468
|
+
}) : null, /*#__PURE__*/_jsx(PopoverAIInput, {
|
|
469
|
+
otherProps: otherProps || {}
|
|
470
|
+
}), footer && (fullScreen || readOnly) && /*#__PURE__*/_jsx(Typography, {
|
|
471
|
+
sx: {
|
|
472
|
+
color: "rgb(100, 116, 139)",
|
|
473
|
+
fontSize: "13px",
|
|
474
|
+
paddingBottom: hideMiniToolBar ? "0px" : "12px",
|
|
475
|
+
cursor: "pointer"
|
|
476
|
+
},
|
|
477
|
+
align: "center",
|
|
478
|
+
"data-info": outsideEditorClickLabel,
|
|
479
|
+
onClick: handleFooterClick,
|
|
480
|
+
children: footer
|
|
481
|
+
})]
|
|
545
482
|
})
|
|
546
|
-
}),
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
483
|
+
}), !readOnly ? /*#__PURE__*/_jsx(PopupTool, {
|
|
484
|
+
onDrawerOpen: onDrawerOpen,
|
|
485
|
+
theme: theme,
|
|
486
|
+
setIsTextSelected: setIsTextSelected,
|
|
487
|
+
customProps: customProps
|
|
488
|
+
}) : null]
|
|
489
|
+
})
|
|
490
|
+
}), htmlAction.showInput && /*#__PURE__*/_jsx(CodeToText, {
|
|
491
|
+
...htmlAction,
|
|
492
|
+
handleCodeToText: handleCodeToText
|
|
493
|
+
})]
|
|
494
|
+
}, id)
|
|
553
495
|
})
|
|
554
496
|
})
|
|
555
497
|
});
|
|
@@ -9,55 +9,6 @@ import Icon from "../../common/Icon";
|
|
|
9
9
|
import { useEditorSelection } from "../../hooks/useMouseMove";
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
-
const accordionBtnStyleKeys = {
|
|
13
|
-
accordionTextColor: "textColor",
|
|
14
|
-
accordionBgColor: "bgColor",
|
|
15
|
-
accordionBorderColor: "borderColor"
|
|
16
|
-
};
|
|
17
|
-
const getAccordionData = updateData => {
|
|
18
|
-
const accordionBtnStyle = {}; // accordion btn style will come under type: accordion node
|
|
19
|
-
const accordionTitleStyle = {}; // accordion title style will come under type: accordion-summary node
|
|
20
|
-
|
|
21
|
-
Object.entries(updateData).forEach(([key, value]) => {
|
|
22
|
-
const accordionBtnStyleKey = accordionBtnStyleKeys[key];
|
|
23
|
-
if (accordionBtnStyleKey) {
|
|
24
|
-
// converting accordion button elementProp keys to node keys e.g: accordionTextColor -> textColor
|
|
25
|
-
accordionBtnStyle[accordionBtnStyleKey] = value;
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
accordionTitleStyle[key] = value;
|
|
29
|
-
});
|
|
30
|
-
return {
|
|
31
|
-
accordionBtnStyle,
|
|
32
|
-
accordionTitleStyle
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
const convertAccordionBtnStyleKeys = (data = {}) => {
|
|
36
|
-
const style = {
|
|
37
|
-
...data
|
|
38
|
-
};
|
|
39
|
-
Object.entries(accordionBtnStyleKeys).forEach(([key, value]) => {
|
|
40
|
-
const val = data[value];
|
|
41
|
-
if (val) {
|
|
42
|
-
// deleting the existing style key in node e.g: textColor
|
|
43
|
-
delete style[value];
|
|
44
|
-
|
|
45
|
-
// convertint into new key in element props e.g: accordionTextColor
|
|
46
|
-
style[key] = val;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
return style;
|
|
50
|
-
};
|
|
51
|
-
const getElementProps = element => {
|
|
52
|
-
const accordionSummary = element.children?.find(c => c.type === "accordion-summary");
|
|
53
|
-
|
|
54
|
-
// joining accordion title and button styles
|
|
55
|
-
const elementProps = {
|
|
56
|
-
...accordionSummary,
|
|
57
|
-
...convertAccordionBtnStyleKeys(element)
|
|
58
|
-
};
|
|
59
|
-
return elementProps;
|
|
60
|
-
};
|
|
61
12
|
const Accordion = props => {
|
|
62
13
|
const {
|
|
63
14
|
attributes,
|
|
@@ -118,34 +69,16 @@ const Accordion = props => {
|
|
|
118
69
|
at: path
|
|
119
70
|
});
|
|
120
71
|
};
|
|
121
|
-
const setNodes = (data, path) => {
|
|
122
|
-
Transforms.setNodes(editor, data, {
|
|
123
|
-
at: path
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
72
|
const onSave = data => {
|
|
127
73
|
const updateData = {
|
|
128
74
|
...data
|
|
129
75
|
};
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const accordionSummary = data.children?.find(c => c.type === "accordion-summary");
|
|
137
|
-
const accordionSummaryPath = ReactEditor.findPath(editor, accordionSummary);
|
|
138
|
-
setNodes({
|
|
139
|
-
...accordionTitleStyle,
|
|
140
|
-
type: "accordion-summary",
|
|
141
|
-
children: accordionSummary.children
|
|
142
|
-
}, accordionSummaryPath);
|
|
143
|
-
|
|
144
|
-
// applying accordion button style
|
|
145
|
-
delete accordionBtnStyle.children;
|
|
146
|
-
setNodes({
|
|
147
|
-
...accordionBtnStyle
|
|
148
|
-
}, path);
|
|
76
|
+
delete updateData.children;
|
|
77
|
+
Transforms.setNodes(editor, {
|
|
78
|
+
...updateData
|
|
79
|
+
}, {
|
|
80
|
+
at: path
|
|
81
|
+
});
|
|
149
82
|
onClose();
|
|
150
83
|
};
|
|
151
84
|
const onClose = () => {
|
|
@@ -190,7 +123,7 @@ const Accordion = props => {
|
|
|
190
123
|
},
|
|
191
124
|
children: children[1]
|
|
192
125
|
}), !readOnly && /*#__PURE__*/_jsx(ToolBar, {}), openSetttings ? /*#__PURE__*/_jsx(AccordionBtnPopup, {
|
|
193
|
-
element:
|
|
126
|
+
element: element,
|
|
194
127
|
onSave: onSave,
|
|
195
128
|
onClose: onClose,
|
|
196
129
|
customProps: customProps
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import StyleBuilder from "../../common/StyleBuilder";
|
|
3
3
|
import accordionTitleBtnStyle from "../../common/StyleBuilder/accordionTitleBtnStyle";
|
|
4
|
-
import accordionTitleStyle from "../../common/StyleBuilder/accordionTitleStyle";
|
|
5
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
5
|
const AccordionBtnPopup = props => {
|
|
7
6
|
const {
|
|
@@ -11,12 +10,12 @@ const AccordionBtnPopup = props => {
|
|
|
11
10
|
customProps
|
|
12
11
|
} = props;
|
|
13
12
|
return /*#__PURE__*/_jsx(StyleBuilder, {
|
|
14
|
-
title: "Accordion
|
|
13
|
+
title: "Accordion Collapse Button",
|
|
15
14
|
type: "accordionTitleBtnStyle",
|
|
16
15
|
element: element,
|
|
17
16
|
onSave: onSave,
|
|
18
17
|
onClose: onClose,
|
|
19
|
-
renderTabs:
|
|
18
|
+
renderTabs: accordionTitleBtnStyle,
|
|
20
19
|
customProps: customProps
|
|
21
20
|
});
|
|
22
21
|
};
|