@flozy/editor 9.1.4 → 9.1.6
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 +2 -19
- package/dist/Editor/CommonEditor.js +37 -104
- package/dist/Editor/DialogWrapper.js +25 -31
- package/dist/Editor/Editor.css +3 -21
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Button/EditorButton.js +9 -25
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +12 -57
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +5 -5
- package/dist/Editor/Elements/Color Picker/Styles.js +1 -1
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +1 -4
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +4 -3
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +1 -6
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +9 -19
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +2 -32
- package/dist/Editor/Elements/DataView/Layouts/TableView.js +29 -126
- package/dist/Editor/Elements/DataView/Layouts/ViewData.js +3 -3
- package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +1 -1
- package/dist/Editor/Elements/DataView/styles.js +8 -8
- package/dist/Editor/Elements/Embed/Image.js +2 -2
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +14 -0
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +1 -2
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -2
- package/dist/Editor/Elements/FreeGrid/styles.js +0 -3
- package/dist/Editor/Elements/Grid/GridItem.js +3 -2
- package/dist/Editor/Elements/Link/Link.js +43 -70
- package/dist/Editor/Elements/SimpleText/index.js +1 -0
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/Table.js +27 -43
- package/dist/Editor/Elements/Table/TableCell.js +5 -5
- package/dist/Editor/Elements/Title/title.js +31 -13
- package/dist/Editor/Elements/Variables/Style.js +2 -28
- package/dist/Editor/Elements/Variables/VariableButton.js +4 -17
- package/dist/Editor/Styles/EditorStyles.js +5 -5
- 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 +15 -7
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +0 -1
- package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +8 -9
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +85 -210
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -16
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +7 -54
- package/dist/Editor/Toolbar/PopupTool/index.js +17 -6
- package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
- package/dist/Editor/common/ColorPickerButton.js +9 -35
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/DnD/Draggable.js +1 -0
- package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
- package/dist/Editor/common/Icon.js +0 -28
- package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
- package/dist/Editor/common/ImageSelector/Styles.js +9 -3
- package/dist/Editor/common/ImageSelector/UploadStyles.js +10 -9
- package/dist/Editor/common/MentionsPopup/Styles.js +12 -6
- 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 +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/styles.js +1 -0
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -8
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +10 -31
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +4 -5
- package/dist/Editor/common/RnD/Utils/index.js +0 -45
- package/dist/Editor/common/RnD/VirtualElement/index.js +2 -1
- package/dist/Editor/common/RnD/index.js +3 -23
- package/dist/Editor/common/Shorthands/elements.js +0 -54
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +2 -4
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +0 -5
- 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 +2 -10
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +11 -35
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +4 -13
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
- package/dist/Editor/common/Uploader.js +0 -8
- package/dist/Editor/commonStyle.js +69 -114
- package/dist/Editor/helper/index.js +12 -8
- package/dist/Editor/helper/theme.js +2 -200
- package/dist/Editor/hooks/useDrag.js +11 -17
- package/dist/Editor/hooks/useEditorScroll.js +6 -10
- package/dist/Editor/hooks/useMouseMove.js +13 -25
- package/dist/Editor/hooks/useTable.js +1 -1
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +16 -20
- package/dist/Editor/plugins/withLayout.js +1 -1
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +173 -50
- package/dist/Editor/utils/SlateUtilityFunctions.js +37 -150
- package/dist/Editor/utils/button.js +14 -0
- package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +0 -23
- package/dist/Editor/utils/draftToSlate.js +2 -3
- package/dist/Editor/utils/font.js +37 -40
- package/dist/Editor/utils/helper.js +27 -59
- package/dist/Editor/utils/link.js +1 -1
- package/dist/Editor/utils/table.js +0 -8
- package/package.json +3 -6
- 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 -90
- package/dist/Editor/common/CustomDialog/styles.js +0 -80
- 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 -33
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
- package/dist/Editor/hooks/useEditorTheme.js +0 -153
- package/dist/Editor/theme/index.js +0 -144
- package/dist/Editor/themeSettings/ActiveTheme.js +0 -72
- package/dist/Editor/themeSettings/buttons/index.js +0 -283
- package/dist/Editor/themeSettings/buttons/style.js +0 -21
- package/dist/Editor/themeSettings/colorTheme/index.js +0 -292
- package/dist/Editor/themeSettings/colorTheme/style.js +0 -77
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
- package/dist/Editor/themeSettings/fonts/index.js +0 -220
- 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 -197
- package/dist/Editor/themeSettingsAI/style.js +0 -250
@@ -34,12 +34,12 @@ import SimpleText from "../Elements/SimpleText";
|
|
34
34
|
import CheckList from "../Elements/List/CheckList";
|
35
35
|
import { getTextColor, isEmptyTextNode } from "../helper";
|
36
36
|
import Attachments from "../Elements/Attachments/Attachments";
|
37
|
-
import { getBreakPointsValue,
|
37
|
+
import { getBreakPointsValue, groupByBreakpoint } from "../helper/theme";
|
38
38
|
import Variables from "../Elements/Variables/Variable";
|
39
|
+
import insertNewLine from "./insertNewLine";
|
39
40
|
import Divider from "../Elements/Divider/Divider";
|
40
41
|
import { getBorderColor, getSlateDom } from "./helper";
|
41
42
|
import Code from "../Elements/EmbedScript/Code";
|
42
|
-
import { ReactEditor } from "slate-react";
|
43
43
|
import FreeGrid from "../Elements/FreeGrid/FreeGrid";
|
44
44
|
import FreeGridItem from "../Elements/FreeGrid/FreeGridItem";
|
45
45
|
import FreeGridBox from "../Elements/FreeGrid/FreeGridBox";
|
@@ -47,7 +47,7 @@ import DataView from "../Elements/DataView/DataView";
|
|
47
47
|
import ViewData from "../Elements/DataView/Layouts/ViewData";
|
48
48
|
import ColumnView from "../Elements/DataView/Layouts/ColumnView";
|
49
49
|
import SearchAttachment from "../Elements/Search/SearchAttachment";
|
50
|
-
import { wrapThemeBreakpoints } from "../Elements/FreeGrid/breakpointConstants";
|
50
|
+
// import { wrapThemeBreakpoints } from "../Elements/FreeGrid/breakpointConstants";
|
51
51
|
import { jsx as _jsx } from "react/jsx-runtime";
|
52
52
|
const alignment = ["alignLeft", "alignRight", "alignCenter", "alignJustify"];
|
53
53
|
const list_types = ["orderedList", "unorderedList"];
|
@@ -55,17 +55,7 @@ const LIST_FORMAT_TYPE = {
|
|
55
55
|
orderedList: "list-item",
|
56
56
|
unorderedList: "list-item"
|
57
57
|
};
|
58
|
-
|
59
|
-
// const NEWLINESAFTER = [
|
60
|
-
// "headingOne",
|
61
|
-
// "headingTwo",
|
62
|
-
// "headingThree",
|
63
|
-
// "headingFour",
|
64
|
-
// "headingFive",
|
65
|
-
// "headingSix",
|
66
|
-
// ];
|
67
|
-
|
68
|
-
const THEME_BLOCK_FIELDS = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
|
58
|
+
const NEWLINESAFTER = ["headingOne", "headingTwo", "headingThree"];
|
69
59
|
export const toggleBlock = (editor, format, selection = true, attr = {}) => {
|
70
60
|
const isActive = isBlockActive(editor, format);
|
71
61
|
const isList = list_types.includes(format);
|
@@ -98,9 +88,8 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
|
|
98
88
|
if (!selection) {
|
99
89
|
Transforms.insertText(editor, "");
|
100
90
|
}
|
101
|
-
const forActiveType = THEME_BLOCK_FIELDS.some(f => f === format) ? format : "paragraph";
|
102
91
|
Transforms.setNodes(editor, {
|
103
|
-
type: isActive ?
|
92
|
+
type: isActive ? "paragraph" : isList ? LIST_FORMAT_TYPE[format] : format,
|
104
93
|
...attr
|
105
94
|
});
|
106
95
|
if (isList && !isActive) {
|
@@ -109,12 +98,10 @@ export const toggleBlock = (editor, format, selection = true, attr = {}) => {
|
|
109
98
|
children: []
|
110
99
|
});
|
111
100
|
}
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
// }
|
101
|
+
if (NEWLINESAFTER.indexOf(format) > -1) {
|
102
|
+
insertNewLine(editor);
|
103
|
+
}
|
116
104
|
};
|
117
|
-
|
118
105
|
export const addMarkData = (editor, data) => {
|
119
106
|
try {
|
120
107
|
Editor.addMark(editor, data.format, data.value);
|
@@ -123,14 +110,9 @@ export const addMarkData = (editor, data) => {
|
|
123
110
|
}
|
124
111
|
};
|
125
112
|
export const toggleMark = (editor, format) => {
|
126
|
-
const isActive =
|
113
|
+
const isActive = isMarkActive(editor, format);
|
127
114
|
if (isActive) {
|
128
|
-
|
129
|
-
if (isThemeSupportedMark) {
|
130
|
-
Editor.addMark(editor, format, false);
|
131
|
-
} else {
|
132
|
-
Editor.removeMark(editor, format);
|
133
|
-
}
|
115
|
+
Editor.removeMark(editor, format);
|
134
116
|
} else {
|
135
117
|
Editor.addMark(editor, format, true);
|
136
118
|
}
|
@@ -144,52 +126,6 @@ export const isMarkActive = (editor, format) => {
|
|
144
126
|
return null;
|
145
127
|
}
|
146
128
|
};
|
147
|
-
export const isMarkBtnActive = (editor, format) => {
|
148
|
-
switch (format) {
|
149
|
-
case "bold":
|
150
|
-
{
|
151
|
-
const style = getSelectedElementStyle("font-weight", editor);
|
152
|
-
return style === "700";
|
153
|
-
}
|
154
|
-
case "italic":
|
155
|
-
{
|
156
|
-
const style = getSelectedElementStyle("font-style", editor);
|
157
|
-
return style === format;
|
158
|
-
}
|
159
|
-
// case "underline": {
|
160
|
-
// const style = getSelectedElementStyle("text-decoration");
|
161
|
-
|
162
|
-
// return style?.includes(format);
|
163
|
-
// }
|
164
|
-
// case "strikethrough": {
|
165
|
-
// const style = getSelectedElementStyle("text-decoration");
|
166
|
-
|
167
|
-
// return style?.includes("line-through");
|
168
|
-
// }
|
169
|
-
default:
|
170
|
-
return isMarkActive(editor, format);
|
171
|
-
}
|
172
|
-
};
|
173
|
-
export const getSelectedElementStyle = (styleProperty, editor) => {
|
174
|
-
try {
|
175
|
-
if (!editor.selection) {
|
176
|
-
return "";
|
177
|
-
}
|
178
|
-
if (Range.isCollapsed(editor.selection)) {
|
179
|
-
return "";
|
180
|
-
}
|
181
|
-
const domRange = ReactEditor.toDOMRange(editor, editor.selection);
|
182
|
-
const selectedDomNode = domRange.commonAncestorContainer;
|
183
|
-
|
184
|
-
// If it's a text node, get its parent element
|
185
|
-
const selectedElement = selectedDomNode.nodeType === 3 ? selectedDomNode.parentElement : selectedDomNode;
|
186
|
-
if (selectedElement) {
|
187
|
-
return getElementProperty(selectedElement, styleProperty);
|
188
|
-
}
|
189
|
-
} catch (err) {
|
190
|
-
console.log(err);
|
191
|
-
}
|
192
|
-
};
|
193
129
|
export const isBlockActive = (editor, format) => {
|
194
130
|
const [match] = Editor.nodes(editor, {
|
195
131
|
match: n => !Editor.isEditor(n) && SlateElement.isElement(n) && n.type === format
|
@@ -242,31 +178,6 @@ export const activeMark = (editor, format) => {
|
|
242
178
|
return null;
|
243
179
|
}
|
244
180
|
};
|
245
|
-
|
246
|
-
// to avoid the styles, that automatically assign from themes
|
247
|
-
const getThemeMarkedLeaf = (leaf, children) => {
|
248
|
-
const {
|
249
|
-
italic,
|
250
|
-
bold
|
251
|
-
} = leaf || {};
|
252
|
-
const style = {};
|
253
|
-
if (italic === false) {
|
254
|
-
style.fontStyle = "normal";
|
255
|
-
}
|
256
|
-
if (bold === false) {
|
257
|
-
style.fontWeight = "normal";
|
258
|
-
}
|
259
|
-
if (Object.keys(style).length) {
|
260
|
-
children = /*#__PURE__*/_jsx(Box, {
|
261
|
-
component: "span",
|
262
|
-
sx: {
|
263
|
-
"& span": style
|
264
|
-
},
|
265
|
-
children: children
|
266
|
-
});
|
267
|
-
}
|
268
|
-
return children;
|
269
|
-
};
|
270
181
|
export const getMarked = (leaf, children, theme) => {
|
271
182
|
const className = leaf?.doublequote ? "doublequote" : "";
|
272
183
|
if (leaf.highlight) {
|
@@ -293,7 +204,6 @@ export const getMarked = (leaf, children, theme) => {
|
|
293
204
|
children: children
|
294
205
|
});
|
295
206
|
}
|
296
|
-
children = getThemeMarkedLeaf(leaf, children);
|
297
207
|
if (leaf.strikethrough) {
|
298
208
|
children = /*#__PURE__*/_jsx("span", {
|
299
209
|
style: {
|
@@ -321,27 +231,20 @@ export const getMarked = (leaf, children, theme) => {
|
|
321
231
|
if (leaf.color || leaf.bgColor || leaf.fontSize || leaf.fontFamily || leaf.fontWeight || className) {
|
322
232
|
const family = leaf?.fontFamily;
|
323
233
|
const textStyles = getTextColor(leaf?.color);
|
324
|
-
const fontSize = {
|
325
|
-
lg: sizeMap[leaf.fontSize] || leaf.fontSize,
|
326
|
-
...getBreakPointsValue(leaf.fontSize, null, "overrideText")
|
327
|
-
};
|
328
|
-
const fontSizesImportant = {};
|
329
|
-
Object.entries(fontSize).forEach(([key, value]) => {
|
330
|
-
fontSizesImportant[key] = `${value} !important`;
|
331
|
-
});
|
332
|
-
const fontSizeWithBreakpoints = wrapThemeBreakpoints(fontSizesImportant, "fontSize", theme);
|
333
234
|
children = /*#__PURE__*/_jsx("span", {
|
235
|
+
style: {
|
236
|
+
background: leaf.bgColor
|
237
|
+
},
|
334
238
|
children: /*#__PURE__*/_jsx(Box, {
|
335
239
|
className: className,
|
336
240
|
component: "span",
|
337
241
|
sx: {
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
},
|
344
|
-
...fontSizeWithBreakpoints,
|
242
|
+
...groupByBreakpoint({
|
243
|
+
fontSize: {
|
244
|
+
lg: sizeMap[leaf.fontSize] || leaf.fontSize,
|
245
|
+
...getBreakPointsValue(leaf.fontSize, null, "overrideText")
|
246
|
+
}
|
247
|
+
}, theme),
|
345
248
|
// ...wrapThemeBreakpoints(
|
346
249
|
// {
|
347
250
|
// lg: sizeMap[leaf.fontSize] || leaf.fontSize,
|
@@ -383,71 +286,55 @@ export const getBlock = props => {
|
|
383
286
|
} = props;
|
384
287
|
const attributes = props.attributes ?? {};
|
385
288
|
const isEmpty = isEmptyTextNode(element);
|
386
|
-
const commonHeadingProps = () => ({
|
387
|
-
...attributes,
|
388
|
-
...element.attr,
|
389
|
-
className: `edt-headings content-editable ${isEmpty ? "empty" : ""} theme-element`
|
390
|
-
});
|
391
|
-
const commonParaProps = paraType => ({
|
392
|
-
...attributes,
|
393
|
-
...element.attr,
|
394
|
-
className: `content-editable ${isEmpty ? "empty" : ""} theme-element ${paraType}`
|
395
|
-
});
|
396
289
|
switch (element.type) {
|
397
290
|
case "headingOne":
|
398
291
|
return /*#__PURE__*/_jsx("h1", {
|
399
|
-
...
|
292
|
+
...attributes,
|
293
|
+
...element.attr,
|
294
|
+
className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
|
400
295
|
placeholder: "Heading 1",
|
401
296
|
children: children
|
402
297
|
});
|
403
298
|
case "headingTwo":
|
404
299
|
return /*#__PURE__*/_jsx("h2", {
|
405
|
-
...
|
300
|
+
...attributes,
|
301
|
+
...element.attr,
|
302
|
+
className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
|
406
303
|
placeholder: "Heading 2",
|
407
304
|
children: children
|
408
305
|
});
|
409
306
|
case "headingThree":
|
410
307
|
return /*#__PURE__*/_jsx("h3", {
|
411
|
-
...
|
308
|
+
...attributes,
|
309
|
+
...element.attr,
|
310
|
+
className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
|
412
311
|
placeholder: "Heading 3",
|
413
312
|
children: children
|
414
313
|
});
|
415
314
|
case "headingFour":
|
416
315
|
return /*#__PURE__*/_jsx("h4", {
|
417
|
-
...
|
316
|
+
...attributes,
|
317
|
+
...element.attr,
|
318
|
+
className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
|
418
319
|
placeholder: "Heading 4",
|
419
320
|
children: children
|
420
321
|
});
|
421
322
|
case "headingFive":
|
422
323
|
return /*#__PURE__*/_jsx("h5", {
|
423
|
-
...
|
324
|
+
...attributes,
|
325
|
+
...element.attr,
|
326
|
+
className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
|
424
327
|
placeholder: "Heading 5",
|
425
328
|
children: children
|
426
329
|
});
|
427
330
|
case "headingSix":
|
428
331
|
return /*#__PURE__*/_jsx("h6", {
|
429
|
-
...
|
332
|
+
...attributes,
|
333
|
+
...element.attr,
|
334
|
+
className: `edt-headings content-editable ${isEmpty ? "empty" : ""}`,
|
430
335
|
placeholder: "Heading 6",
|
431
336
|
children: children
|
432
337
|
});
|
433
|
-
case "paragraphOne":
|
434
|
-
return /*#__PURE__*/_jsx("p", {
|
435
|
-
...commonParaProps("para1"),
|
436
|
-
placeholder: "Paragraph 1",
|
437
|
-
children: children
|
438
|
-
});
|
439
|
-
case "paragraphTwo":
|
440
|
-
return /*#__PURE__*/_jsx("p", {
|
441
|
-
...commonParaProps("para2"),
|
442
|
-
placeholder: "Paragraph 2",
|
443
|
-
children: children
|
444
|
-
});
|
445
|
-
case "paragraphThree":
|
446
|
-
return /*#__PURE__*/_jsx("p", {
|
447
|
-
...commonParaProps("para3"),
|
448
|
-
placeholder: "Paragraph 3",
|
449
|
-
children: children
|
450
|
-
});
|
451
338
|
case "blockquote":
|
452
339
|
return /*#__PURE__*/_jsx("blockquote", {
|
453
340
|
...attributes,
|
@@ -11,6 +11,20 @@ export const insertButton = editor => {
|
|
11
11
|
linkType: "webAddress"
|
12
12
|
},
|
13
13
|
iconPosition: "start",
|
14
|
+
bgColor: "#2563EB",
|
15
|
+
textColor: "#FFF",
|
16
|
+
borderRadius: {
|
17
|
+
topLeft: 30,
|
18
|
+
topRight: 30,
|
19
|
+
bottomLeft: 30,
|
20
|
+
bottomRight: 30
|
21
|
+
},
|
22
|
+
bannerSpacing: {
|
23
|
+
left: 16,
|
24
|
+
top: 8,
|
25
|
+
right: 16,
|
26
|
+
bottom: 8
|
27
|
+
},
|
14
28
|
...(windowVar.lastButtonProps || {})
|
15
29
|
};
|
16
30
|
Transforms.insertNodes(editor, button);
|
@@ -8,9 +8,6 @@ import { isEmptyTextNode } from "../../helper";
|
|
8
8
|
import { getBreakPointsValue } from "../../helper/theme";
|
9
9
|
import insertNewLine from "../insertNewLine";
|
10
10
|
import { getBorderColor } from "../helper";
|
11
|
-
import Table from "../../Elements/Table/Table";
|
12
|
-
import TableRow from "../../Elements/Table/TableRow";
|
13
|
-
import TableCell from "../../Elements/Table/TableCell";
|
14
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
15
12
|
const alignment = ["alignLeft", "alignRight", "alignCenter"];
|
16
13
|
const list_types = ["orderedList", "unorderedList"];
|
@@ -409,26 +406,6 @@ export const getBlock = props => {
|
|
409
406
|
return /*#__PURE__*/_jsx(Mentions, {
|
410
407
|
...props
|
411
408
|
});
|
412
|
-
case "table":
|
413
|
-
return /*#__PURE__*/_jsx(Table, {
|
414
|
-
...props
|
415
|
-
});
|
416
|
-
case "table-head":
|
417
|
-
return /*#__PURE__*/_jsx("thead", {
|
418
|
-
children: children
|
419
|
-
});
|
420
|
-
case "table-body":
|
421
|
-
return /*#__PURE__*/_jsx("tbody", {
|
422
|
-
children: children
|
423
|
-
});
|
424
|
-
case "table-row":
|
425
|
-
return /*#__PURE__*/_jsx(TableRow, {
|
426
|
-
...props
|
427
|
-
});
|
428
|
-
case "table-cell":
|
429
|
-
return /*#__PURE__*/_jsx(TableCell, {
|
430
|
-
...props
|
431
|
-
});
|
432
409
|
default:
|
433
410
|
return /*#__PURE__*/_jsx(SimpleText, {
|
434
411
|
...props,
|
@@ -82,8 +82,7 @@ const splitInlineStyleRanges = (text, inlineStyleRanges, data) => {
|
|
82
82
|
};
|
83
83
|
export const draftToSlate = props => {
|
84
84
|
const {
|
85
|
-
data
|
86
|
-
needLayout
|
85
|
+
data
|
87
86
|
} = props;
|
88
87
|
if (data?.blocks && data?.blocks?.length > 0) {
|
89
88
|
const converted = data?.blocks?.reduce((a, b) => {
|
@@ -105,7 +104,7 @@ export const draftToSlate = props => {
|
|
105
104
|
return data;
|
106
105
|
} else {
|
107
106
|
return [{
|
108
|
-
type:
|
107
|
+
type: "paragraph",
|
109
108
|
children: [{
|
110
109
|
text: ""
|
111
110
|
}]
|
@@ -7,43 +7,43 @@ export const sizeMap = {
|
|
7
7
|
export const fontFamilyMap = {
|
8
8
|
PoppinsRegular: "PoppinsRegular",
|
9
9
|
PoppinsBold: "PoppinsBold",
|
10
|
-
sans:
|
11
|
-
serif:
|
12
|
-
monospace:
|
13
|
-
roboto: "Roboto, sans-serif",
|
14
|
-
qwitcher: '
|
15
|
-
garamond: '
|
16
|
-
anton: "Anton, sans-serif",
|
17
|
-
dmserif: '
|
18
|
-
inter: "Inter, sans-serif",
|
19
|
-
libre: '
|
20
|
-
montserrat: "Montserrat, sans-serif",
|
21
|
-
opensans: '
|
22
|
-
publicsans: '
|
23
|
-
raleway: "Raleway, sans-serif",
|
24
|
-
spacemono: '
|
25
|
-
bulgarian: '
|
26
|
-
impact: "Impact, serif",
|
27
|
-
redacted: '
|
28
|
-
greatVibes: '
|
29
|
-
zeyada: "Zeyada, cursive",
|
30
|
-
allura: "Allura, cursive",
|
31
|
-
pinyon: '
|
32
|
-
muellerhoff: '
|
33
|
-
dawning: '
|
10
|
+
sans: "Helvetica,Arial, sans serif",
|
11
|
+
serif: "Georgia, Times New Roaman,serif",
|
12
|
+
monospace: "Monaco, Courier New,monospace",
|
13
|
+
roboto: "'Roboto', sans-serif",
|
14
|
+
qwitcher: "'Qwitcher Grypen', cursive",
|
15
|
+
garamond: "'EB Garamond', serif",
|
16
|
+
anton: "'Anton', sans-serif",
|
17
|
+
dmserif: "'DM Serif Text', serif",
|
18
|
+
inter: "'Inter', sans-serif",
|
19
|
+
libre: "'Libre Baskerville', serif",
|
20
|
+
montserrat: "'Montserrat', sans-serif",
|
21
|
+
opensans: "'Open Sans', sans-serif",
|
22
|
+
publicsans: "'Public Sans', sans-serif",
|
23
|
+
raleway: "'Raleway', sans-serif",
|
24
|
+
spacemono: "'Space Mono', sans-serif",
|
25
|
+
bulgarian: "'Bulgarian Garamond', monospace",
|
26
|
+
impact: "'Impact', serif",
|
27
|
+
redacted: "'Redacted Script', cursive",
|
28
|
+
greatVibes: "'Great Vibes', cursive",
|
29
|
+
zeyada: "'Zeyada', cursive",
|
30
|
+
allura: "'Allura', cursive",
|
31
|
+
pinyon: "'Pinyon Script', cursive",
|
32
|
+
muellerhoff: "'Herr Von Muellerhoff', cursive",
|
33
|
+
dawning: "'Dawning of a New Day', cursive",
|
34
34
|
// New Font Added for Type Signature
|
35
|
-
comingsoon: '
|
36
|
-
dancingScript: '
|
37
|
-
engagement: "Engagement, cursive",
|
38
|
-
gaegu: "Gaegu, cursive",
|
39
|
-
ingridDarling: '
|
40
|
-
kitaOne: "
|
41
|
-
laBelleAurore: '
|
42
|
-
lobster: "Lobster, cursive",
|
43
|
-
meaCulpa: '
|
44
|
-
meddon: "Meddon, cursive",
|
45
|
-
merriWeather: "Merriweather, serif",
|
46
|
-
theGirlNextDoor: '
|
35
|
+
comingsoon: "'Coming Soon', cursive",
|
36
|
+
dancingScript: "'Dancing Script', cursive",
|
37
|
+
engagement: "'Engagement', cursive",
|
38
|
+
gaegu: "'Gaegu', cursive",
|
39
|
+
ingridDarling: "'Ingrid Darling', cursive",
|
40
|
+
kitaOne: "'Kite One', sans - serif",
|
41
|
+
laBelleAurore: "'La Belle Aurore', cursive",
|
42
|
+
lobster: "'Lobster', cursive",
|
43
|
+
meaCulpa: "'Mea Culpa', cursive",
|
44
|
+
meddon: "'Meddon', cursive",
|
45
|
+
merriWeather: "'Merriweather', serif",
|
46
|
+
theGirlNextDoor: "'The Girl Next Door', cursive"
|
47
47
|
};
|
48
48
|
export const fontOptions = Object.keys(fontFamilyMap).map(m => {
|
49
49
|
return {
|
@@ -62,10 +62,7 @@ export const signedTextFonts = Object.keys(fontFamilyMap).slice(-12).map(m => {
|
|
62
62
|
export const headingMap = {
|
63
63
|
headingOne: "32px",
|
64
64
|
headingTwo: "24px",
|
65
|
-
headingThree: "19px"
|
66
|
-
headingFour: "16px",
|
67
|
-
headingFive: "13px",
|
68
|
-
headingSix: "11px"
|
65
|
+
headingThree: "19px"
|
69
66
|
};
|
70
67
|
export const fontWeightOptions = [{
|
71
68
|
text: "Bold",
|
@@ -100,6 +100,14 @@ export const getSelectedText = editor => {
|
|
100
100
|
return "";
|
101
101
|
}
|
102
102
|
};
|
103
|
+
export const getNodeText = node => {
|
104
|
+
try {
|
105
|
+
return Node.string(node);
|
106
|
+
} catch (err) {
|
107
|
+
console.log(err);
|
108
|
+
return "";
|
109
|
+
}
|
110
|
+
};
|
103
111
|
export const isEmptyNode = (editor, children, path) => {
|
104
112
|
try {
|
105
113
|
const isEmptyText = Node.string(Node.get(editor, path))?.length === 0;
|
@@ -464,34 +472,6 @@ export const decodeString = str => {
|
|
464
472
|
console.log(err);
|
465
473
|
}
|
466
474
|
};
|
467
|
-
export const getContrastColor = color => {
|
468
|
-
let r, g, b;
|
469
|
-
|
470
|
-
// Check if the color is in hex format
|
471
|
-
if (color.startsWith("#")) {
|
472
|
-
r = parseInt(color.substring(1, 3), 16);
|
473
|
-
g = parseInt(color.substring(3, 5), 16);
|
474
|
-
b = parseInt(color.substring(5, 7), 16);
|
475
|
-
}
|
476
|
-
// Check if the color is in RGB/RGBA format
|
477
|
-
else if (color.startsWith("rgb")) {
|
478
|
-
const rgbValues = color.replace(/^rgba?\(|\s+|\)$/g, "") // Remove the rgb/rgba and spaces
|
479
|
-
.split(","); // Split the values into an array
|
480
|
-
|
481
|
-
r = parseInt(rgbValues[0]);
|
482
|
-
g = parseInt(rgbValues[1]);
|
483
|
-
b = parseInt(rgbValues[2]);
|
484
|
-
} else {
|
485
|
-
// If the format is not recognized, default to black text
|
486
|
-
return "#000000";
|
487
|
-
}
|
488
|
-
|
489
|
-
// Calculate relative luminance
|
490
|
-
const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
491
|
-
|
492
|
-
// Return black for light colors, white for dark colors
|
493
|
-
return luminance > 0.5 ? "#000000" : "#FFFFFF";
|
494
|
-
};
|
495
475
|
export const onDeleteKey = (event, {
|
496
476
|
editor
|
497
477
|
}) => {
|
@@ -653,10 +633,6 @@ export const isRestrictedNode = (event, editor) => {
|
|
653
633
|
return isNodeRestricted;
|
654
634
|
}
|
655
635
|
};
|
656
|
-
export function capitalizeFirstLetter(str) {
|
657
|
-
if (!str) return str;
|
658
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
659
|
-
}
|
660
636
|
export const insertLineBreakAtEndOfPath = (editor, path) => {
|
661
637
|
try {
|
662
638
|
const [node, nodePath] = Editor.node(editor, path); // Get the node at the specified path
|
@@ -675,13 +651,6 @@ export const insertLineBreakAtEndOfPath = (editor, path) => {
|
|
675
651
|
console.log(err);
|
676
652
|
}
|
677
653
|
};
|
678
|
-
export function isHavingSelection(editor) {
|
679
|
-
try {
|
680
|
-
return editor?.selection && !Range.isCollapsed(editor.selection);
|
681
|
-
} catch (err) {
|
682
|
-
console.log(err);
|
683
|
-
}
|
684
|
-
}
|
685
654
|
const omitNodes = ["site-settings", "page-settings"];
|
686
655
|
export function getInitialValue(value = [], readOnly) {
|
687
656
|
if (readOnly === "readonly" && value?.length) {
|
@@ -712,17 +681,20 @@ export function getInitialValue(value = [], readOnly) {
|
|
712
681
|
}
|
713
682
|
return value;
|
714
683
|
}
|
684
|
+
export function capitalizeFirstLetter(str) {
|
685
|
+
if (!str) return str;
|
686
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
687
|
+
}
|
688
|
+
export function isHavingSelection(editor) {
|
689
|
+
try {
|
690
|
+
return editor?.selection && !Range.isCollapsed(editor.selection);
|
691
|
+
} catch (err) {
|
692
|
+
console.log(err);
|
693
|
+
}
|
694
|
+
}
|
715
695
|
export function getSelectedCls(defaultCls = "", selected, selectedClsName = "selected") {
|
716
696
|
return `${defaultCls} ${selected ? selectedClsName : ""}`;
|
717
697
|
}
|
718
|
-
export function handleNegativeInteger(val) {
|
719
|
-
return val < 0 ? 0 : val;
|
720
|
-
}
|
721
|
-
export const containsSurrogatePair = text => {
|
722
|
-
// Match surrogate pairs (high and low surrogate)
|
723
|
-
const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
|
724
|
-
return surrogatePairRegex.test(text);
|
725
|
-
};
|
726
698
|
export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
|
727
699
|
try {
|
728
700
|
const options = {
|
@@ -736,6 +708,11 @@ export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
|
|
736
708
|
return [];
|
737
709
|
}
|
738
710
|
};
|
711
|
+
export const containsSurrogatePair = text => {
|
712
|
+
// Match surrogate pairs (high and low surrogate)
|
713
|
+
const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
|
714
|
+
return surrogatePairRegex.test(text);
|
715
|
+
};
|
739
716
|
export const getSlateDom = (editor, range) => {
|
740
717
|
try {
|
741
718
|
const slateDom = ReactEditor.toDOMRange(editor, range);
|
@@ -785,15 +762,6 @@ export const hideSlateSelection = () => {
|
|
785
762
|
const root = document.documentElement;
|
786
763
|
root.style.setProperty("--slate-highlight-bg", "none");
|
787
764
|
};
|
788
|
-
export
|
789
|
-
|
790
|
-
|
791
|
-
} = editor;
|
792
|
-
if (selection && Range.isExpanded(selection)) {
|
793
|
-
if (Range.includes(selection, Editor.start(editor, [])) && Range.includes(selection, Editor.end(editor, []))) {
|
794
|
-
return true;
|
795
|
-
} else {
|
796
|
-
return false;
|
797
|
-
}
|
798
|
-
}
|
799
|
-
};
|
765
|
+
export function handleNegativeInteger(val) {
|
766
|
+
return val < 0 ? 0 : val;
|
767
|
+
}
|
@@ -3,7 +3,7 @@ import { isBlockActive } from "./SlateUtilityFunctions";
|
|
3
3
|
export const createLinkNode = (href, showInNewTab, text, linkType) => ({
|
4
4
|
type: "link",
|
5
5
|
href,
|
6
|
-
target: showInNewTab
|
6
|
+
target: showInNewTab ? "_blank" : "_self",
|
7
7
|
linkType,
|
8
8
|
children: [{
|
9
9
|
text
|
@@ -174,14 +174,6 @@ export class TableUtil {
|
|
174
174
|
Transforms.removeNodes(this.editor, {
|
175
175
|
match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table"
|
176
176
|
});
|
177
|
-
if (this.editor.children.length === 0) {
|
178
|
-
Transforms.insertNodes(this.editor, {
|
179
|
-
type: "paragraph",
|
180
|
-
children: [{
|
181
|
-
text: ""
|
182
|
-
}]
|
183
|
-
});
|
184
|
-
}
|
185
177
|
}
|
186
178
|
};
|
187
179
|
duplicateTable = () => {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@flozy/editor",
|
3
|
-
"version": "9.1.
|
3
|
+
"version": "9.1.6",
|
4
4
|
"description": "An Editor for flozy app brain",
|
5
5
|
"files": [
|
6
6
|
"dist"
|
@@ -61,7 +61,7 @@
|
|
61
61
|
"scripts": {
|
62
62
|
"prepare": "husky install .husky",
|
63
63
|
"analyze": "source-map-explorer build/static/js/*.js",
|
64
|
-
"lint": "./node_modules/.bin/eslint --ignore-path .gitignore .",
|
64
|
+
"lint": "./node_modules/. bin/eslint --ignore-path .gitignore .",
|
65
65
|
"start": "craco start",
|
66
66
|
"build": "NODE_OPTIONS='--max_old_space_size=4096' craco build",
|
67
67
|
"test": "craco test --passWithNoTests",
|
@@ -69,10 +69,7 @@
|
|
69
69
|
"storybook": "storybook dev -p 6006",
|
70
70
|
"build-storybook": "NODE_OPTIONS='--max_old_space_size=4096' storybook build",
|
71
71
|
"publish:npm": "rm -rf dist && mkdir dist && babel src/components -d dist --copy-files",
|
72
|
-
"publish:local": "rm -rf /Users/agmac03/flozy/client/node_modules/@flozy/editor/dist && babel src/components -d /Users/agmac03/flozy/client/node_modules/@flozy/editor/dist --copy-files"
|
73
|
-
"publish:flozy": "./publish-flozy.sh",
|
74
|
-
"publish:flozy2": "./publish-flozy2.sh",
|
75
|
-
"publish:permission": "chmod +x publish-flozy.sh && chmod +x publish-flozy2.sh"
|
72
|
+
"publish:local": "rm -rf /Users/agmac03/flozy/client/node_modules/@flozy/editor/dist && babel src/components -d /Users/agmac03/flozy/client/node_modules/@flozy/editor/dist --copy-files"
|
76
73
|
},
|
77
74
|
"eslintConfig": {
|
78
75
|
"extends": [
|