@flozy/editor 3.7.3 → 3.7.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. package/dist/Editor/ChatEditor.js +29 -2
  2. package/dist/Editor/CommonEditor.js +111 -169
  3. package/dist/Editor/Elements/Accordion/Accordion.js +7 -74
  4. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +2 -3
  5. package/dist/Editor/Elements/Accordion/AccordionSummary.js +60 -4
  6. package/dist/Editor/Elements/AppHeader/AppHeader.js +4 -26
  7. package/dist/Editor/Elements/Button/EditorButton.js +14 -25
  8. package/dist/Editor/Elements/Color Picker/ColorButtons.js +17 -60
  9. package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
  10. package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
  11. package/dist/Editor/Elements/Color Picker/Styles.js +1 -2
  12. package/dist/Editor/Elements/Embed/Frames/ImageFrame.js +0 -1
  13. package/dist/Editor/Elements/Embed/Image.js +20 -28
  14. package/dist/Editor/Elements/Embed/Video.js +11 -15
  15. package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +3 -12
  16. package/dist/Editor/Elements/Form/Workflow/UserInputs.js +1 -2
  17. package/dist/Editor/Elements/Grid/Grid.js +0 -2
  18. package/dist/Editor/Elements/Grid/GridItem.js +1 -3
  19. package/dist/Editor/Elements/Link/Link.js +1 -6
  20. package/dist/Editor/Elements/Link/LinkButton.js +2 -4
  21. package/dist/Editor/Elements/Link/LinkPopup.js +3 -11
  22. package/dist/Editor/Elements/Table/TableCell.js +1 -1
  23. package/dist/Editor/MiniEditor.js +1 -3
  24. package/dist/Editor/Toolbar/Basic/index.js +2 -4
  25. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +2 -26
  26. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  27. package/dist/Editor/Toolbar/FormatTools/TextSize.js +11 -5
  28. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +11 -4
  29. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +86 -213
  30. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  31. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +13 -20
  32. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +7 -52
  33. package/dist/Editor/Toolbar/PopupTool/index.js +11 -7
  34. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  35. package/dist/Editor/common/ColorPickerButton.js +9 -25
  36. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  37. package/dist/Editor/common/Icon.js +2 -30
  38. package/dist/Editor/common/MentionsPopup/Styles.js +3 -6
  39. package/dist/Editor/common/Shorthands/elements.js +0 -54
  40. package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +7 -7
  41. package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +16 -16
  42. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  43. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +3 -13
  44. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  45. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +7 -31
  46. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  47. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +4 -14
  48. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  49. package/dist/Editor/helper/theme.js +4 -190
  50. package/dist/Editor/hooks/useMouseMove.js +2 -4
  51. package/dist/Editor/plugins/withEmbeds.js +1 -1
  52. package/dist/Editor/plugins/withHTML.js +5 -47
  53. package/dist/Editor/plugins/withLayout.js +10 -15
  54. package/dist/Editor/plugins/withTable.js +2 -2
  55. package/dist/Editor/theme/ThemeList.js +173 -50
  56. package/dist/Editor/utils/SlateUtilityFunctions.js +25 -157
  57. package/dist/Editor/utils/button.js +17 -1
  58. package/dist/Editor/utils/events.js +4 -11
  59. package/dist/Editor/utils/font.js +37 -40
  60. package/dist/Editor/utils/helper.js +12 -71
  61. package/package.json +1 -1
  62. package/dist/Editor/Elements/Link/LinkPopupStyles.js +0 -28
  63. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  64. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  65. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  66. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  67. package/dist/Editor/common/CustomDialog/index.js +0 -94
  68. package/dist/Editor/common/CustomDialog/style.js +0 -67
  69. package/dist/Editor/common/CustomSelect.js +0 -33
  70. package/dist/Editor/common/EditorCmds.js +0 -35
  71. package/dist/Editor/hooks/useEditorTheme.js +0 -139
  72. package/dist/Editor/theme/index.js +0 -144
  73. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  74. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  75. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  76. package/dist/Editor/themeSettings/colorTheme/index.js +0 -290
  77. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  78. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -123
  79. package/dist/Editor/themeSettings/fonts/index.js +0 -213
  80. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  81. package/dist/Editor/themeSettings/icons.js +0 -60
  82. package/dist/Editor/themeSettings/index.js +0 -320
  83. package/dist/Editor/themeSettings/style.js +0 -152
  84. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  85. package/dist/Editor/themeSettingsAI/index.js +0 -356
  86. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -190
  87. package/dist/Editor/themeSettingsAI/style.js +0 -247
@@ -1,44 +1,22 @@
1
- import React, { useEffect, useMemo, useState } from "react";
1
+ import React, { useEffect, useState } from "react";
2
2
  import { Grid, TextField, InputAdornment, Typography } from "@mui/material";
3
3
  import ColorPickerButton from "../../ColorPickerButton";
4
- import { useSlateStatic } from "slate-react";
5
- import { getElementStyle, getVariableValue } from "../../../helper/theme";
6
4
  import { jsx as _jsx } from "react/jsx-runtime";
7
5
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
- const MAP_STYLE_PROPS = {
9
- bgColor: "background-color",
10
- textColor: "color"
11
- };
12
6
  const Color = props => {
13
7
  const {
14
- value: val,
8
+ value,
15
9
  data,
16
10
  onChange,
17
- classes,
18
- elementProps,
19
- handleClose,
20
- customProps
11
+ classes
21
12
  } = props;
22
13
  const {
23
14
  key,
24
15
  label
25
16
  } = data;
26
17
  const [recentColors, setRecentColors] = useState({});
27
- const editor = useSlateStatic();
28
- const {
29
- value,
30
- inputValue
31
- } = useMemo(() => {
32
- const isVariable = val && val.startsWith("var");
33
- const value = isVariable ? val : getElementStyle(editor, elementProps, MAP_STYLE_PROPS[key]);
34
- const inputValue = isVariable ? getVariableValue(val) : getElementStyle(editor, elementProps, MAP_STYLE_PROPS[key]);
35
- return {
36
- value: value || val,
37
- inputValue: inputValue || val
38
- };
39
- }, [editor, val]);
40
18
  useEffect(() => {
41
- const storedColors = JSON.parse(localStorage.getItem("recentColors"));
19
+ const storedColors = JSON.parse(localStorage.getItem('recentColors'));
42
20
  if (storedColors) {
43
21
  setRecentColors(storedColors);
44
22
  }
@@ -61,7 +39,7 @@ const Color = props => {
61
39
  [key]: updatedColors
62
40
  };
63
41
  setRecentColors(updatedColors);
64
- localStorage.setItem("recentColors", JSON.stringify(updatedColors));
42
+ localStorage.setItem('recentColors', JSON.stringify(updatedColors));
65
43
  };
66
44
  return /*#__PURE__*/_jsxs(Grid, {
67
45
  item: true,
@@ -78,7 +56,7 @@ const Color = props => {
78
56
  children: label
79
57
  }), /*#__PURE__*/_jsx(TextField, {
80
58
  fullWidth: true,
81
- value: inputValue,
59
+ value: value,
82
60
  placeholder: `${label} color code`,
83
61
  InputLabelProps: {
84
62
  shrink: true
@@ -90,9 +68,7 @@ const Color = props => {
90
68
  classes: classes,
91
69
  value: value,
92
70
  onSave: onSave,
93
- recentColors: recentColors[key],
94
- handleClose: handleClose,
95
- disableEditTheme: customProps?.disableEditTheme
71
+ recentColors: recentColors[key]
96
72
  })
97
73
  })
98
74
  }
@@ -1,26 +1,19 @@
1
- import React, { useMemo } from "react";
1
+ import React from "react";
2
2
  import { TextField, IconButton, Grid, Typography } from "@mui/material";
3
3
  import { sizeMap } from "../../../utils/font.js";
4
4
  import { TextMinusIcon, TextPlusIcon } from "../../../common/iconslist.js";
5
- import { getElementStyle } from "../../../helper/theme.js";
6
- import { useSlateStatic } from "slate-react";
7
5
  import { jsx as _jsx } from "react/jsx-runtime";
8
6
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
7
  const FontSize = props => {
10
8
  const {
11
- value: val,
9
+ value,
12
10
  data,
13
- onChange,
14
- elementProps
11
+ onChange
15
12
  } = props;
16
13
  const {
17
14
  key,
18
15
  width
19
16
  } = data;
20
- const editor = useSlateStatic();
21
- const value = useMemo(() => {
22
- return getElementStyle(editor, elementProps, "font-size") || val;
23
- }, [editor, val]);
24
17
  const handleChange = e => {
25
18
  let inc = parseInt(e.target.value) || 16;
26
19
  inc = inc > 200 ? 200 : inc;
@@ -31,9 +24,7 @@ const FontSize = props => {
31
24
  const getSizeVal = () => {
32
25
  try {
33
26
  const size = `${value}`?.indexOf("px") >= 0 ? value : sizeMap[value] || value;
34
- const defaultSize = 16;
35
- const val = parseInt(size || defaultSize);
36
- return isNaN(val) ? defaultSize : val;
27
+ return parseInt(size || 16);
37
28
  } catch (err) {
38
29
  return "";
39
30
  }
@@ -1,8 +1,7 @@
1
- import React, { useMemo } from "react";
1
+ import React from "react";
2
2
  import { FormControl, Grid, ListItemIcon, ListSubheader, MenuItem, Select, Typography } from "@mui/material";
3
- import { getBreakPointsValue, getElementStyle } from "../../../helper/theme";
3
+ import { getBreakPointsValue } from "../../../helper/theme";
4
4
  import useWindowResize from "../../../hooks/useWindowResize";
5
- import { useSlateStatic } from "slate-react";
6
5
  import { jsx as _jsx } from "react/jsx-runtime";
7
6
  import { jsxs as _jsxs } from "react/jsx-runtime";
8
7
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -23,19 +22,10 @@ const TextOptions = props => {
23
22
  isBreakpoint,
24
23
  options,
25
24
  renderOption,
26
- width,
27
- themeEnabled
25
+ width
28
26
  } = data;
29
27
  const [size] = useWindowResize();
30
- const editor = useSlateStatic();
31
- const value = useMemo(() => {
32
- const userValue = isBreakpoint ? getBreakPointsValue(val, size?.device) : val;
33
- if (themeEnabled) {
34
- // editor takes a little amount of time to update the new style in element, in that case userValue will be returned
35
- return getElementStyle(editor, elementProps, key) || userValue;
36
- }
37
- return userValue;
38
- }, [editor, isBreakpoint, val, size?.device]);
28
+ const value = isBreakpoint ? getBreakPointsValue(val, size?.device) : val;
39
29
  const metaDataMappingOptions = metaMappings?.boards || [];
40
30
  const updatedOption = elementProps?.metadatamapping ? [...options, ...metaDataMappingOptions] : options;
41
31
  const handleChange = (e, d) => {
@@ -87,7 +87,7 @@ const StyleBuilder = props => {
87
87
  ...data,
88
88
  field_type: data?.element
89
89
  });
90
- if (data?.hasOwnProperty("name")) {
90
+ if (data?.hasOwnProperty('name')) {
91
91
  setElementProps({
92
92
  ...elementProps,
93
93
  ...data,
@@ -1,6 +1,4 @@
1
- import { ReactEditor } from "slate-react";
2
- import { fontFamilyMap, sizeMap } from "../utils/font";
3
- import { Editor, Node } from "slate";
1
+ import { sizeMap } from "../utils/font";
4
2
  export const breakpoints = {
5
3
  small: 0,
6
4
  mobile: 600,
@@ -29,7 +27,7 @@ const overrideValues = (value, ot) => {
29
27
  return Object.keys(value).reduce((a, b) => {
30
28
  return {
31
29
  ...a,
32
- [b]: overrides[ot] ? overrides[ot](value[b], value) : value
30
+ [b]: overrides[ot] ? overrides[ot](value[b]) : value
33
31
  };
34
32
  }, {});
35
33
  };
@@ -46,15 +44,7 @@ const overrides = {
46
44
  overrideReSizeH: val => {
47
45
  return `${val?.height}px`;
48
46
  },
49
- overrideBorderRadius: (val, breakpointValues) => {
50
- if (!val?.topLeft) {
51
- Object.values(breakpointValues || {}).forEach(v => {
52
- if (v) {
53
- // Applying the values from breakpoints that exist to those that do not have
54
- val = v;
55
- }
56
- });
57
- }
47
+ overrideBorderRadius: val => {
58
48
  return `${val?.topLeft}px ${val?.topRight}px ${val?.bottomLeft}px ${val?.bottomRight}px`;
59
49
  }
60
50
  };
@@ -107,180 +97,4 @@ export const getTRBLBreakPoints = (value, breakpoint) => {
107
97
  } catch (err) {
108
98
  console.log(err);
109
99
  }
110
- };
111
- export function getElementStyle(editor, element, stylePropertyName) {
112
- try {
113
- const path = ReactEditor.findPath(editor, element);
114
- if (path?.length) {
115
- const currentEle = Node.get(editor, path);
116
- const dom = ReactEditor.toDOMNode(editor, currentEle);
117
- const editorBtn = dom?.querySelector("button.theme-element");
118
- const elementStyle = window.getComputedStyle(editorBtn);
119
- const style = elementStyle[stylePropertyName];
120
- if (stylePropertyName === "fontFamily") {
121
- const val = Object.entries(fontFamilyMap).find(([key, value]) => value === style)?.[0];
122
- return val;
123
- }
124
- return style;
125
- }
126
- } catch (err) {
127
- // console.log(err);
128
- }
129
- }
130
- export function getTextSizeVal(editor) {
131
- try {
132
- const currentNode = Node.get(editor, editor.selection.anchor.path);
133
- const currentElement = ReactEditor.toDOMNode(editor, currentNode);
134
- if (currentElement) {
135
- const element = document.querySelector('span[data-slate-string="true"]');
136
- const computedStyle = window.getComputedStyle(element);
137
- return computedStyle.getPropertyValue("font-size") || "";
138
- }
139
- } catch (err) {
140
- // console.log(err);
141
- }
142
- }
143
- export function getVariableValue(val) {
144
- const bodyElement = document.body;
145
- const computedStyle = getComputedStyle(bodyElement);
146
- const [, variableName] = val?.match(/var\((--[^)]+)\)/) || [];
147
- const varValue = computedStyle.getPropertyValue(variableName).trim();
148
- return varValue;
149
- }
150
- export const textThemeFields = ["fontFamily", "fontSize", "color", "bold", "italic"
151
- // "underline",
152
- // "strikethrough",
153
- ];
154
-
155
- const themeElements = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
156
- export const isTextCustomized = editor => {
157
- try {
158
- if (editor.selection) {
159
- const currentElement = Node.parent(editor, editor?.selection?.anchor?.path);
160
- if (!currentElement) {
161
- return false;
162
- }
163
- const {
164
- children,
165
- type
166
- } = currentElement;
167
- if (!themeElements.includes(type)) {
168
- return false;
169
- }
170
- if (children?.length > 1) {
171
- return true;
172
- }
173
- const customized = textThemeFields.some(field => {
174
- const element = children[0] || {};
175
- const value = element[field];
176
- if (field === "fontSize") {
177
- return Object.keys(value || {}).length;
178
- } else {
179
- return value;
180
- }
181
- });
182
- return customized;
183
- } else {
184
- return null;
185
- }
186
- } catch (err) {
187
- return null;
188
- }
189
- };
190
- const addToTheme = (field, value, element) => {
191
- switch (field) {
192
- case "fontFamily":
193
- return {
194
- fontFamily: fontFamilyMap[value]
195
- };
196
- case "fontSize":
197
- return {
198
- fontSize: value?.lg
199
- };
200
- case "color":
201
- return {
202
- color: value
203
- };
204
- case "bold":
205
- return {
206
- fontWeight: "bold"
207
- };
208
- case "italic":
209
- return {
210
- fontStyle: "italic"
211
- };
212
- // case "underline":
213
- // case "strikethrough":
214
- // let textDecoration = "";
215
-
216
- // if (element.underline) {
217
- // textDecoration = "underline";
218
- // }
219
-
220
- // if (element.strikethrough) {
221
- // textDecoration += " strikethrough";
222
- // }
223
-
224
- // return { textDecoration };
225
- default:
226
- return {};
227
- }
228
- };
229
- const MAP_TEXT_THEME_FIELD = {
230
- headingOne: "h1",
231
- headingTwo: "h2",
232
- headingThree: "h3",
233
- headingFour: "h4",
234
- headingFive: "h5",
235
- headingSix: "h6",
236
- paragraphOne: "para1",
237
- paragraphTwo: "para2",
238
- paragraphThree: "para3"
239
- };
240
- export const saveToTheme = editor => {
241
- try {
242
- if (editor.selection) {
243
- const currentElement = Node.parent(editor, editor?.selection?.anchor?.path);
244
- if (!currentElement) {
245
- return false;
246
- }
247
- const {
248
- children
249
- } = currentElement;
250
- if (children?.length > 1) {
251
- return true;
252
- }
253
- let theme = {};
254
- textThemeFields.forEach(field => {
255
- const element = children[0] || {};
256
- const value = element[field];
257
- let style = {};
258
- let isValueExist = false;
259
- if (value) {
260
- isValueExist = true;
261
- if (field === "fontSize") {
262
- isValueExist = !!Object.keys(value).length;
263
- }
264
- }
265
- if (isValueExist) {
266
- style = addToTheme(field, value, element);
267
- }
268
- theme = {
269
- ...theme,
270
- ...style
271
- };
272
- });
273
- textThemeFields.forEach(field => {
274
- Editor.removeMark(editor, field);
275
- });
276
- return {
277
- field: MAP_TEXT_THEME_FIELD[currentElement?.type],
278
- theme
279
- };
280
- }
281
- } catch (err) {
282
- return;
283
- }
284
- };
285
- export const HEADING_THEME_FIELDS = ["h1", "h2", "h3", "h4", "h5", "h6"];
286
- export const PARAGRAPH_THEME_FIELDS = ["para1", "para2", "para3"];
100
+ };
@@ -29,7 +29,6 @@ export const EditorProvider = ({
29
29
  const path = event?.target?.getAttribute("data-path");
30
30
  const [popupType, setPopupType] = useState(""); // opened popup name in the editor will be stored
31
31
  const [openAI, setOpenAI] = useState("");
32
- const [selectedTheme, setSelectedTheme] = useState({});
33
32
  const onDrop = () => {
34
33
  setDrop(drop + 1);
35
34
  };
@@ -56,9 +55,7 @@ export const EditorProvider = ({
56
55
  popupType,
57
56
  setPopupType,
58
57
  openAI,
59
- setOpenAI,
60
- selectedTheme,
61
- setSelectedTheme
58
+ setOpenAI
62
59
  },
63
60
  children: children
64
61
  });
@@ -78,6 +75,7 @@ const useMouseMove = () => {
78
75
  }, []);
79
76
  const onMouseMove = e => {
80
77
  const dpath = e?.target?.closest(".dpath");
78
+ console.log(dpath);
81
79
  if (dpath) {
82
80
  console.log(`Stopped position: (${e.clientX}, ${e.clientY})`, dpath);
83
81
  setEvent({
@@ -1,5 +1,5 @@
1
1
  import { Transforms, Path, Node } from "slate";
2
- const AvoidCopying = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree", "blockquote"];
2
+ const AvoidCopying = ["headingOne", "headingTwo", "headingThree", "blockquote"];
3
3
  const withEmbeds = editor => {
4
4
  const {
5
5
  isVoid,
@@ -1,4 +1,4 @@
1
- import { Transforms, Editor, Element, Node, Path } from "slate";
1
+ import { Transforms, Editor, Element, Node } from "slate";
2
2
  import deserialize from "../helper/deserialize";
3
3
  import { decodeAndParseBase64 } from "../utils/helper";
4
4
  const avoidDefaultInsert = ["table", "grid"];
@@ -15,7 +15,7 @@ const loopChildren = (children = [], defaultInsert) => {
15
15
  }
16
16
  return defaultInsert;
17
17
  };
18
- export const getCurrentElement = editor => {
18
+ const getCurrentElement = editor => {
19
19
  try {
20
20
  if (editor.selection) {
21
21
  return Node.parent(editor, editor?.selection?.anchor?.path);
@@ -26,48 +26,6 @@ export const getCurrentElement = editor => {
26
26
  return null;
27
27
  }
28
28
  };
29
- const getCurrentElementText = editor => {
30
- try {
31
- if (editor.selection) {
32
- return Editor.string(editor, editor?.selection?.anchor?.path);
33
- } else {
34
- return null;
35
- }
36
- } catch (err) {
37
- return null;
38
- }
39
- };
40
- const insertAtNextNode = (editor, formattedFragment) => {
41
- try {
42
- const {
43
- selection
44
- } = editor;
45
- if (selection) {
46
- const parentPath = Path.parent(editor?.selection?.anchor?.path);
47
- const nextPath = Path.next(parentPath);
48
- Transforms.insertNodes(editor, {
49
- type: "paragraph",
50
- children: [{
51
- text: ""
52
- }]
53
- }, {
54
- at: nextPath
55
- });
56
- Transforms.insertFragment(editor, formattedFragment, {
57
- at: nextPath
58
- });
59
- }
60
- } catch (err) {
61
- console.log(err);
62
- }
63
- };
64
- const handleInsert = (editor, defaultInsert, fragment = []) => {
65
- if (getCurrentElementText(editor) && fragment.some(f => f.type === "table")) {
66
- insertAtNextNode(editor, fragment);
67
- } else {
68
- defaultInsert();
69
- }
70
- };
71
29
  const formatFragment = {
72
30
  "list-item": fragment => {
73
31
  let refactorFragment = [];
@@ -106,11 +64,11 @@ const withHtml = editor => {
106
64
  const currentEl = getCurrentElement(editor);
107
65
  const eltype = currentEl?.type;
108
66
  if (slateHTML && !formatFragment[eltype]) {
109
- const decoded = decodeAndParseBase64(slateHTML);
110
67
  const [tableNode] = Editor.nodes(editor, {
111
68
  match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table"
112
69
  });
113
70
  if (tableNode && tableNode[0]) {
71
+ const decoded = decodeAndParseBase64(slateHTML);
114
72
  const defaultInsert = loopChildren(decoded, true);
115
73
  if (defaultInsert) {
116
74
  insertData(data);
@@ -121,7 +79,7 @@ const withHtml = editor => {
121
79
  Transforms.insertText(editor, text);
122
80
  }
123
81
  } else {
124
- handleInsert(editor, () => insertData(data), decoded);
82
+ insertData(data);
125
83
  }
126
84
  } else if (html) {
127
85
  const parsed = new DOMParser().parseFromString(html, "text/html");
@@ -138,7 +96,7 @@ const withHtml = editor => {
138
96
  }
139
97
  const fragment = deserialize(parsed.body);
140
98
  const formattedFragment = formatFragment[eltype] ? formatFragment[eltype](fragment) : fragment;
141
- handleInsert(editor, () => Transforms.insertFragment(editor, formattedFragment), formattedFragment);
99
+ Transforms.insertFragment(editor, formattedFragment);
142
100
  return;
143
101
  } else {
144
102
  insertData(data);
@@ -32,21 +32,16 @@ const withLayout = editor => {
32
32
  editor.normalizeNode = ([node, path]) => {
33
33
  if (path.length === 0) {
34
34
  if (editor.children.length <= 1 && Editor.string(editor, [0, 0]) === "") {
35
- const {
36
- anchor
37
- } = editor?.selection || {};
38
- if (anchor?.offset !== 0) {
39
- const title = {
40
- type: "title",
41
- children: [{
42
- text: "Untitled"
43
- }]
44
- };
45
- Transforms.insertNodes(editor, title, {
46
- at: path.concat(0),
47
- select: true
48
- });
49
- }
35
+ const title = {
36
+ type: "title",
37
+ children: [{
38
+ text: "Untitled"
39
+ }]
40
+ };
41
+ Transforms.insertNodes(editor, title, {
42
+ at: path.concat(0),
43
+ select: true
44
+ });
50
45
  }
51
46
  if (editor.children.length === 0) {
52
47
  const paragraph = {
@@ -1,6 +1,6 @@
1
1
  import { Editor, Range, Point, Element, Transforms, Node } from "slate";
2
2
  import { TableUtil, createTableCell } from "../utils/table";
3
- const NON_DELETABLE_BLOCKS = ["table-cell", "carousel-item", "page-settings"];
3
+ const NON_DELETABLE_BLOCKS = ["table-cell", "carousel-item"];
4
4
  const withTable = editor => {
5
5
  const {
6
6
  deleteBackward,
@@ -8,7 +8,7 @@ const withTable = editor => {
8
8
  delete: slateDelete
9
9
  } = editor;
10
10
  editor.delete = arg => {
11
- if (arg?.reverse) {
11
+ if (arg.reverse) {
12
12
  const table = new TableUtil(editor);
13
13
  const cellsSelected = table.isCellSelected(editor.selection);
14
14
  if (cellsSelected && cellsSelected.length > 1) {