@flozy/editor 3.6.9 → 3.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. package/dist/Editor/CommonEditor.js +111 -169
  2. package/dist/Editor/Elements/Accordion/Accordion.js +7 -74
  3. package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +2 -3
  4. package/dist/Editor/Elements/Accordion/AccordionSummary.js +60 -4
  5. package/dist/Editor/Elements/AppHeader/AppHeader.js +4 -26
  6. package/dist/Editor/Elements/Button/EditorButton.js +18 -34
  7. package/dist/Editor/Elements/ChipText/ChipText.js +3 -3
  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/Emoji/EmojiButton.js +2 -2
  14. package/dist/Editor/Elements/Emoji/EmojiPicker.js +0 -16
  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 +1 -3
  18. package/dist/Editor/Elements/Grid/GridItem.js +2 -4
  19. package/dist/Editor/Elements/InlineIcon/InlineIcon.js +3 -2
  20. package/dist/Editor/Elements/Link/Link.js +1 -6
  21. package/dist/Editor/Elements/Link/LinkButton.js +2 -4
  22. package/dist/Editor/Elements/Link/LinkPopup.js +3 -11
  23. package/dist/Editor/Elements/List/CheckList.js +2 -6
  24. package/dist/Editor/Elements/Table/TableCell.js +1 -1
  25. package/dist/Editor/MiniEditor.js +1 -3
  26. package/dist/Editor/Styles/EditorStyles.js +2 -3
  27. package/dist/Editor/Toolbar/Basic/index.js +2 -4
  28. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +2 -26
  29. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +2 -2
  30. package/dist/Editor/Toolbar/FormatTools/TextSize.js +11 -5
  31. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +11 -4
  32. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +86 -213
  33. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
  34. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +13 -20
  35. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +7 -52
  36. package/dist/Editor/Toolbar/PopupTool/index.js +2 -9
  37. package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
  38. package/dist/Editor/common/ColorPickerButton.js +9 -25
  39. package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
  40. package/dist/Editor/common/Icon.js +2 -30
  41. package/dist/Editor/common/MentionsPopup/MentionsListCard.js +2 -5
  42. package/dist/Editor/common/MentionsPopup/Styles.js +3 -6
  43. package/dist/Editor/common/Shorthands/elements.js +0 -54
  44. package/dist/Editor/common/StyleBuilder/accordionTitleBtnStyle.js +7 -7
  45. package/dist/Editor/common/StyleBuilder/accordionTitleStyle.js +16 -16
  46. package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
  47. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +3 -13
  48. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +7 -15
  49. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +7 -31
  50. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
  51. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +28 -12
  52. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +4 -14
  53. package/dist/Editor/common/StyleBuilder/formStyle.js +26 -25
  54. package/dist/Editor/common/StyleBuilder/index.js +1 -1
  55. package/dist/Editor/helper/index.js +0 -15
  56. package/dist/Editor/helper/theme.js +4 -190
  57. package/dist/Editor/hooks/useMouseMove.js +6 -15
  58. package/dist/Editor/plugins/withEmbeds.js +1 -1
  59. package/dist/Editor/plugins/withHTML.js +5 -47
  60. package/dist/Editor/plugins/withLayout.js +10 -15
  61. package/dist/Editor/plugins/withTable.js +2 -2
  62. package/dist/Editor/theme/ThemeList.js +173 -50
  63. package/dist/Editor/utils/SlateUtilityFunctions.js +25 -157
  64. package/dist/Editor/utils/button.js +17 -1
  65. package/dist/Editor/utils/events.js +4 -11
  66. package/dist/Editor/utils/font.js +37 -40
  67. package/dist/Editor/utils/form.js +2 -2
  68. package/dist/Editor/utils/helper.js +12 -71
  69. package/dist/Editor/utils/serializeToHTML.js +13 -25
  70. package/dist/index.js +1 -5
  71. package/package.json +4 -4
  72. package/dist/Editor/ChatEditor.js +0 -211
  73. package/dist/Editor/Elements/Link/LinkPopupStyles.js +0 -28
  74. package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -438
  75. package/dist/Editor/assets/svg/ThemeIcons.js +0 -291
  76. package/dist/Editor/common/CustomColorPicker/index.js +0 -106
  77. package/dist/Editor/common/CustomColorPicker/style.js +0 -53
  78. package/dist/Editor/common/CustomDialog/index.js +0 -94
  79. package/dist/Editor/common/CustomDialog/style.js +0 -67
  80. package/dist/Editor/common/CustomSelect.js +0 -33
  81. package/dist/Editor/common/EditorCmds.js +0 -35
  82. package/dist/Editor/common/MUIIcon/index.js +0 -48
  83. package/dist/Editor/common/StyleBuilder/fieldTypes/loadIcon.js +0 -13
  84. package/dist/Editor/common/StyleBuilder/fieldTypes/mui_filled_icons.js +0 -2
  85. package/dist/Editor/hooks/useEditorTheme.js +0 -139
  86. package/dist/Editor/theme/index.js +0 -144
  87. package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
  88. package/dist/Editor/themeSettings/buttons/index.js +0 -290
  89. package/dist/Editor/themeSettings/buttons/style.js +0 -21
  90. package/dist/Editor/themeSettings/colorTheme/index.js +0 -290
  91. package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
  92. package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -123
  93. package/dist/Editor/themeSettings/fonts/index.js +0 -213
  94. package/dist/Editor/themeSettings/fonts/style.js +0 -44
  95. package/dist/Editor/themeSettings/icons.js +0 -60
  96. package/dist/Editor/themeSettings/index.js +0 -320
  97. package/dist/Editor/themeSettings/style.js +0 -152
  98. package/dist/Editor/themeSettingsAI/icons.js +0 -96
  99. package/dist/Editor/themeSettingsAI/index.js +0 -356
  100. package/dist/Editor/themeSettingsAI/saveTheme.js +0 -190
  101. package/dist/Editor/themeSettingsAI/style.js +0 -247
  102. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +0 -361
@@ -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,10 +1,29 @@
1
1
  import React, { useState } from "react";
2
2
  import { Grid, IconButton, TextField, Tooltip } from "@mui/material";
3
- import MUIIcon from "./loadIcon";
4
- import MUIFilledIcons from "./mui_filled_icons";
3
+ import * as fIcons from "@mui/icons-material";
5
4
  import { jsx as _jsx } from "react/jsx-runtime";
6
5
  import { jsxs as _jsxs } from "react/jsx-runtime";
7
6
  import { Fragment as _Fragment } from "react/jsx-runtime";
7
+ const MUIIcons = Object.keys(fIcons).reduce((a, b) => {
8
+ if (b.indexOf("Outlined") > -1) {
9
+ a.outlined.push(b);
10
+ } else if (b.indexOf("Rounded") > -1) {
11
+ a.rounded.push(b);
12
+ } else if (b.indexOf("Sharp") > -1) {
13
+ a.sharp.push(b);
14
+ } else if (b.indexOf("TwoTone") > -1) {
15
+ a.tt.push(b);
16
+ } else {
17
+ a.filled.push(b);
18
+ }
19
+ return a;
20
+ }, {
21
+ filled: [],
22
+ outlined: [],
23
+ rounded: [],
24
+ tt: [],
25
+ sharp: []
26
+ });
8
27
  const Icons = props => {
9
28
  const {
10
29
  value,
@@ -15,7 +34,7 @@ const Icons = props => {
15
34
  key
16
35
  } = data;
17
36
  const [val, setVal] = useState("");
18
- const [list, setList] = useState(MUIFilledIcons.slice(0, 90));
37
+ const [list, setList] = useState(MUIIcons.filled.slice(0, 90));
19
38
  const onSelectIcon = ico => () => {
20
39
  onChange({
21
40
  [key]: ico
@@ -25,11 +44,11 @@ const Icons = props => {
25
44
  const keyVal = e.target.value?.toLowerCase();
26
45
  setVal(keyVal);
27
46
  if (keyVal) {
28
- setList(MUIFilledIcons.filter(f => {
47
+ setList(MUIIcons.filled.filter(f => {
29
48
  return f.toLowerCase().indexOf(keyVal) > -1;
30
49
  }).slice(0, 90));
31
50
  } else {
32
- setList(MUIFilledIcons.slice(0, 90));
51
+ setList(MUIIcons.filled.slice(0, 90));
33
52
  }
34
53
  };
35
54
  const onRemoveIcon = () => {
@@ -37,7 +56,7 @@ const Icons = props => {
37
56
  [key]: null
38
57
  });
39
58
  };
40
- const SelectedIcon = value ? value : null;
59
+ const SelectedIcon = value ? fIcons[value] : null;
41
60
  return /*#__PURE__*/_jsxs(_Fragment, {
42
61
  children: [/*#__PURE__*/_jsx(Grid, {
43
62
  item: true,
@@ -73,9 +92,7 @@ const Icons = props => {
73
92
  arrow: true,
74
93
  children: /*#__PURE__*/_jsx(IconButton, {
75
94
  onClick: onRemoveIcon,
76
- children: /*#__PURE__*/_jsx(MUIIcon, {
77
- iconName: value
78
- })
95
+ children: /*#__PURE__*/_jsx(SelectedIcon, {})
79
96
  })
80
97
  }) : ""
81
98
  })]
@@ -90,14 +107,13 @@ const Icons = props => {
90
107
  paddingTop: "5px"
91
108
  },
92
109
  children: list.map(m => {
110
+ const Ico = fIcons[m];
93
111
  return /*#__PURE__*/_jsx(Tooltip, {
94
112
  title: m,
95
113
  arrow: true,
96
114
  children: /*#__PURE__*/_jsx(IconButton, {
97
115
  onClick: onSelectIcon(m),
98
- children: /*#__PURE__*/_jsx(MUIIcon, {
99
- iconName: m
100
- })
116
+ children: /*#__PURE__*/_jsx(Ico, {})
101
117
  })
102
118
  }, `mui_ico_${m}`);
103
119
  })
@@ -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) => {
@@ -129,31 +129,32 @@ const formStyle = [{
129
129
  key: "backgroundImage",
130
130
  type: "backgroundImage"
131
131
  }]
132
- }, {
133
- tab: "Add to Boards",
134
- value: "metadatamapping",
135
- fields: [{
136
- label: "Add response to contacts board",
137
- key: "metadatamapping",
138
- type: "metadatamapping",
139
- compType: "card",
140
- content: "By default, form responses are added as separate cards on the default contact board.",
141
- value: "mappingToContactBoard",
142
- infoIcon: /*#__PURE__*/_jsx(Icon, {
143
- icon: "info"
144
- })
145
- }, {
146
- label: "Create a separate board",
147
- key: "metadatamapping",
148
- type: "metadatamapping",
149
- compType: "card",
150
- content: "By default, form responses are added as separate cards on a new board (Contact Us).",
151
- value: "mappingToSeparateBoard",
152
- infoIcon: /*#__PURE__*/_jsx(Icon, {
153
- icon: "info"
154
- })
155
- }]
156
- }, {
132
+ },
133
+ // {
134
+ // tab: "Add to Boards",
135
+ // value: "metadatamapping",
136
+ // fields: [
137
+ // {
138
+ // label: "Add response to contacts board",
139
+ // key: "metadatamapping",
140
+ // type: "metadatamapping",
141
+ // compType: "card",
142
+ // content: "By default, form responses are added as separate cards on the default contact board.",
143
+ // value: "mappingToContactBoard",
144
+ // infoIcon: <Icon icon="info" />
145
+ // },
146
+ // {
147
+ // label: "Create a separate board",
148
+ // key: "metadatamapping",
149
+ // type: "metadatamapping",
150
+ // compType: "card",
151
+ // content: "By default, form responses are added as separate cards on a new board (Contact Us).",
152
+ // value: "mappingToSeparateBoard",
153
+ // infoIcon: <Icon icon="info" />
154
+ // },
155
+ // ],
156
+ // },
157
+ {
157
158
  tab: "Save As Template",
158
159
  value: "saveAsTemplate",
159
160
  needActions: false,
@@ -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,
@@ -139,19 +139,4 @@ export const isEmptyTextNode = element => {
139
139
  console.log(err);
140
140
  return false;
141
141
  }
142
- };
143
- export const debounce = function (func, wait, immediate) {
144
- let timeout;
145
- return function () {
146
- const context = this,
147
- args = arguments,
148
- later = function () {
149
- timeout = null;
150
- if (!immediate) func.apply(context, args);
151
- },
152
- callNow = immediate && !timeout;
153
- clearTimeout(timeout);
154
- timeout = setTimeout(later, wait);
155
- if (callNow) func.apply(context, args);
156
- };
157
142
  };
@@ -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
+ };
@@ -1,6 +1,5 @@
1
1
  import { useEffect, useState, createContext, useContext, useMemo } from "react";
2
2
  import { getSelectedText } from "../utils/helper";
3
- import { debounce } from "../helper";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  const EditorContext = /*#__PURE__*/createContext();
6
5
  export const useEditorSelection = editor => {
@@ -29,7 +28,6 @@ export const EditorProvider = ({
29
28
  const path = event?.target?.getAttribute("data-path");
30
29
  const [popupType, setPopupType] = useState(""); // opened popup name in the editor will be stored
31
30
  const [openAI, setOpenAI] = useState("");
32
- const [selectedTheme, setSelectedTheme] = useState({});
33
31
  const onDrop = () => {
34
32
  setDrop(drop + 1);
35
33
  };
@@ -56,9 +54,7 @@ export const EditorProvider = ({
56
54
  popupType,
57
55
  setPopupType,
58
56
  openAI,
59
- setOpenAI,
60
- selectedTheme,
61
- setSelectedTheme
57
+ setOpenAI
62
58
  },
63
59
  children: children
64
60
  });
@@ -77,20 +73,15 @@ const useMouseMove = () => {
77
73
  };
78
74
  }, []);
79
75
  const onMouseMove = e => {
80
- const dpath = e?.target?.closest(".dpath");
81
- if (dpath) {
82
- console.log(`Stopped position: (${e.clientX}, ${e.clientY})`, dpath);
83
- setEvent({
84
- target: dpath
85
- });
86
- }
76
+ setEvent({
77
+ target: e.target
78
+ });
87
79
  };
88
- const debounceMouseMove = debounce(onMouseMove, 100);
89
80
  const addListener = () => {
90
- document.addEventListener("mousemove", debounceMouseMove);
81
+ document.addEventListener("mousemove", onMouseMove);
91
82
  };
92
83
  const removeListener = () => {
93
- document.removeEventListener("mousemove", debounceMouseMove);
84
+ document.removeEventListener("mousemove", onMouseMove);
94
85
  };
95
86
  return [event];
96
87
  };
@@ -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,