@flozy/editor 10.1.9 → 10.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Editor/ChatEditor.js +16 -17
- package/dist/Editor/CommonEditor.js +16 -120
- package/dist/Editor/DialogWrapper.js +25 -31
- package/dist/Editor/Editor.css +8 -46
- package/dist/Editor/Elements/AI/PopoverAIInput.js +3 -11
- package/dist/Editor/Elements/Accordion/Accordion.js +2 -6
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/Button/EditorButton.js +10 -26
- package/dist/Editor/Elements/Carousel/CarouselItem.js +1 -2
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +14 -61
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +1 -25
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +7 -10
- package/dist/Editor/Elements/Color Picker/Styles.js +13 -15
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +2 -4
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +6 -21
- package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +1 -5
- package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +2 -3
- package/dist/Editor/Elements/DataView/Layouts/Options/index.js +0 -11
- package/dist/Editor/Elements/DataView/Layouts/ViewData.js +4 -8
- package/dist/Editor/Elements/Embed/Image.js +2 -3
- package/dist/Editor/Elements/Embed/Video.js +1 -1
- package/dist/Editor/Elements/EmbedScript/Code.js +2 -14
- package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +28 -57
- package/dist/Editor/Elements/Form/Form.js +168 -181
- package/dist/Editor/Elements/Form/FormElements/FormText.js +6 -23
- package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +2 -3
- package/dist/Editor/Elements/Form/FormField.js +6 -13
- package/dist/Editor/Elements/Form/Workflow/Styles.js +22 -24
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +31 -36
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +4 -7
- package/dist/Editor/Elements/FreeGrid/Options/More.js +8 -8
- package/dist/Editor/Elements/FreeGrid/styles.js +7 -67
- package/dist/Editor/Elements/Grid/Grid.js +2 -14
- package/dist/Editor/Elements/Grid/GridItem.js +1 -1
- package/dist/Editor/Elements/List/CheckList.js +2 -3
- package/dist/Editor/Elements/Search/SearchAttachment.js +9 -40
- package/dist/Editor/Elements/Search/SearchButton.js +8 -9
- package/dist/Editor/Elements/Search/SearchList.js +7 -9
- package/dist/Editor/Elements/Signature/Signature.css +1 -2
- package/dist/Editor/Elements/Signature/SignatureOptions/DrawSignature.js +5 -18
- package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +3 -16
- package/dist/Editor/Elements/SimpleText/index.js +1 -6
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/DragButton.js +1 -0
- package/dist/Editor/Elements/Table/Draggable.js +2 -6
- package/dist/Editor/Elements/Table/Styles.js +0 -7
- package/dist/Editor/Elements/Table/Table.js +3 -3
- package/dist/Editor/Elements/Table/TableCell.js +5 -24
- package/dist/Editor/Elements/Title/title.js +6 -6
- package/dist/Editor/Elements/Variables/VariableButton.js +1 -10
- package/dist/Editor/MiniEditor.js +1 -2
- 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 +13 -10
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +2 -4
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +13 -6
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +42 -167
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +4 -7
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +12 -72
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +27 -100
- package/dist/Editor/Toolbar/PopupTool/index.js +1 -1
- package/dist/Editor/Toolbar/toolbarGroups.js +6 -48
- package/dist/Editor/assets/svg/SettingsIcon.js +0 -1
- package/dist/Editor/common/ColorPickerButton.js +16 -38
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +0 -3
- package/dist/Editor/common/Icon.js +1 -31
- package/dist/Editor/common/ImageSelector/Styles.js +9 -3
- package/dist/Editor/common/LinkSettings/NavComponents.js +8 -34
- package/dist/Editor/common/LinkSettings/index.js +68 -84
- package/dist/Editor/common/LinkSettings/style.js +30 -245
- package/dist/Editor/common/RnD/ElementOptions/Actions.js +14 -13
- package/dist/Editor/common/RnD/ElementOptions/Icons/LinkIcon.js +0 -1
- package/dist/Editor/common/RnD/ElementOptions/index.js +2 -2
- package/dist/Editor/common/RnD/ElementOptions/styles.js +1 -28
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +5 -6
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Signature.js +3 -4
- 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/TextSettings.js +1 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +2 -3
- package/dist/Editor/common/RnD/ElementSettings/styles.js +12 -147
- package/dist/Editor/common/RnD/OptionsPopup/index.js +5 -8
- package/dist/Editor/common/RnD/OptionsPopup/style.js +19 -121
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +5 -8
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +3 -6
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +19 -28
- package/dist/Editor/common/RnD/Utils/index.js +1 -3
- package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +54 -48
- package/dist/Editor/common/RnD/VirtualElement/helper.js +131 -143
- package/dist/Editor/common/RnD/VirtualElement/styles.js +0 -16
- package/dist/Editor/common/RnD/index.js +11 -6
- package/dist/Editor/common/Select/index.js +0 -2
- 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 +8 -16
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +10 -36
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +7 -16
- package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +6 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +6 -13
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +7 -15
- package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +7 -5
- package/dist/Editor/common/Uploader.js +0 -8
- package/dist/Editor/common/iconListV2.js +6 -156
- package/dist/Editor/common/iconslist.js +0 -24
- package/dist/Editor/commonStyle.js +62 -168
- package/dist/Editor/helper/index.js +0 -4
- package/dist/Editor/helper/theme.js +2 -203
- package/dist/Editor/hooks/useMouseMove.js +5 -8
- package/dist/Editor/hooks/useTable.js +4 -5
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +1 -3
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +173 -50
- package/dist/Editor/utils/SlateUtilityFunctions.js +45 -169
- package/dist/Editor/utils/accordion.js +4 -14
- package/dist/Editor/utils/button.js +17 -1
- package/dist/Editor/utils/customHooks/useTableResize.js +9 -49
- package/dist/Editor/utils/draftToSlate.js +2 -3
- package/dist/Editor/utils/events.js +6 -50
- package/dist/Editor/utils/font.js +37 -40
- package/dist/Editor/utils/form.js +4 -4
- package/dist/Editor/utils/formfield.js +2 -8
- package/dist/Editor/utils/helper.js +29 -114
- package/dist/Editor/utils/signature.js +9 -2
- package/package.json +4 -4
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +0 -454
- package/dist/Editor/Elements/EmbedScript/styles.js +0 -89
- package/dist/Editor/Elements/FreeGrid/helper.js +0 -113
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +0 -439
- package/dist/Editor/assets/svg/BackIcon.js +0 -18
- package/dist/Editor/assets/svg/ClearAllRounded.js +0 -31
- package/dist/Editor/assets/svg/ResetIconNew.js +0 -23
- package/dist/Editor/assets/svg/ThemeIcons.js +0 -293
- package/dist/Editor/common/CustomColorPicker/index.js +0 -130
- package/dist/Editor/common/CustomColorPicker/style.js +0 -53
- package/dist/Editor/common/CustomDialog2/index.js +0 -94
- package/dist/Editor/common/CustomDialog2/style.js +0 -67
- package/dist/Editor/common/CustomSelect.js +0 -43
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +0 -17
- package/dist/Editor/common/SnackBar/index.js +0 -43
- package/dist/Editor/helper/textIndeces.js +0 -58
- package/dist/Editor/hooks/useEditorTheme.js +0 -153
- package/dist/Editor/hooks/useThemeValues.js +0 -63
- package/dist/Editor/theme/index.js +0 -149
- package/dist/Editor/themeSettings/ActiveTheme.js +0 -82
- package/dist/Editor/themeSettings/buttons/index.js +0 -300
- package/dist/Editor/themeSettings/buttons/style.js +0 -23
- package/dist/Editor/themeSettings/colorTheme/index.js +0 -310
- package/dist/Editor/themeSettings/colorTheme/style.js +0 -81
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +0 -121
- package/dist/Editor/themeSettings/fonts/index.js +0 -240
- package/dist/Editor/themeSettings/fonts/style.js +0 -62
- package/dist/Editor/themeSettings/icons.js +0 -60
- package/dist/Editor/themeSettings/index.js +0 -361
- package/dist/Editor/themeSettings/style.js +0 -299
- package/dist/Editor/themeSettingsAI/icons.js +0 -96
- package/dist/Editor/themeSettingsAI/index.js +0 -355
- package/dist/Editor/themeSettingsAI/saveTheme.js +0 -202
- package/dist/Editor/themeSettingsAI/style.js +0 -332
@@ -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",
|
@@ -22,14 +22,8 @@ export const formField = data => {
|
|
22
22
|
},
|
23
23
|
fontFamily: data?.fontFamily ? data?.fontFamily : "",
|
24
24
|
textSize: data?.textSize ? data?.textSize : "",
|
25
|
-
textColor: data?.textColor
|
26
|
-
fontWeight: data?.fontWeight ? data?.fontWeight : "500"
|
27
|
-
borderRadius: {
|
28
|
-
topLeft: 8,
|
29
|
-
topRight: 8,
|
30
|
-
bottomLeft: 8,
|
31
|
-
bottomRight: 8
|
32
|
-
}
|
25
|
+
textColor: data?.textColor ? data?.textColor : "",
|
26
|
+
fontWeight: data?.fontWeight ? data?.fontWeight : "500"
|
33
27
|
};
|
34
28
|
};
|
35
29
|
export const insertGridItem = editor => {
|
@@ -2,8 +2,6 @@ import { Editor, Node, Transforms, Element, Path, Range, Text } from "slate";
|
|
2
2
|
import { ReactEditor } from "slate-react";
|
3
3
|
import insertNewLine from "./insertNewLine";
|
4
4
|
import { getDevice } from "../helper/theme";
|
5
|
-
import { activeMark, getSelectedElementStyle } from "./SlateUtilityFunctions";
|
6
|
-
import { getCurrentElementText } from "../plugins/withHTML";
|
7
5
|
export const windowVar = {};
|
8
6
|
let ST_TIMEOUT = null;
|
9
7
|
const BLOCKS = ["grid", "dataView"];
|
@@ -306,15 +304,20 @@ const getScrollElement = () => {
|
|
306
304
|
const scrollFrom = isSlateWrapperScroll ? slateWrapper : window;
|
307
305
|
return scrollFrom;
|
308
306
|
};
|
309
|
-
const handleLinkBtnClick = (e, props, isMobilePreview) => {
|
307
|
+
const handleLinkBtnClick = (e, props, isMobilePreview, metadata) => {
|
310
308
|
if (e) {
|
311
309
|
e.preventDefault();
|
312
310
|
e.stopPropagation();
|
313
311
|
}
|
312
|
+
const mobileAppRedirect = metadata?.buttonLink?.inAppRedirection;
|
314
313
|
if (props.target) {
|
315
314
|
window.open(props.href);
|
316
315
|
} else {
|
317
|
-
|
316
|
+
if (typeof mobileAppRedirect === "function") {
|
317
|
+
mobileAppRedirect(props.href);
|
318
|
+
} else {
|
319
|
+
window.location.href = props.href;
|
320
|
+
}
|
318
321
|
if (isMobilePreview) {
|
319
322
|
// on iframe - mobile preview, window.location.href is not scrolling to the element correctly
|
320
323
|
const [, elementId] = props.href?.split("#");
|
@@ -330,7 +333,7 @@ const handleLinkBtnClick = (e, props, isMobilePreview) => {
|
|
330
333
|
}
|
331
334
|
}
|
332
335
|
};
|
333
|
-
export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick = () => {}) => {
|
336
|
+
export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick = () => {}, metadata = {}) => {
|
334
337
|
const props = {};
|
335
338
|
if (!readOnly) {
|
336
339
|
return {
|
@@ -429,13 +432,13 @@ export const handleLinkType = (url, linkType, readOnly, openInNewTab, onClick =
|
|
429
432
|
let touchEndClicked = false;
|
430
433
|
props.onTouchEnd = e => {
|
431
434
|
touchEndClicked = true;
|
432
|
-
handleLinkBtnClick(e, props);
|
435
|
+
handleLinkBtnClick(e, props, false, metadata);
|
433
436
|
};
|
434
437
|
props.onClick = e => {
|
435
438
|
// This condition is used for mobile preview in the page editor.
|
436
439
|
// 'touchEnd' will not work in the mobile page preview.
|
437
440
|
if (!touchEndClicked && isMobile) {
|
438
|
-
handleLinkBtnClick(e, props, true);
|
441
|
+
handleLinkBtnClick(e, props, true, metadata);
|
439
442
|
}
|
440
443
|
return false;
|
441
444
|
};
|
@@ -482,34 +485,6 @@ export const decodeString = str => {
|
|
482
485
|
console.log(err);
|
483
486
|
}
|
484
487
|
};
|
485
|
-
export const getContrastColor = color => {
|
486
|
-
let r, g, b;
|
487
|
-
|
488
|
-
// Check if the color is in hex format
|
489
|
-
if (color.startsWith("#")) {
|
490
|
-
r = parseInt(color.substring(1, 3), 16);
|
491
|
-
g = parseInt(color.substring(3, 5), 16);
|
492
|
-
b = parseInt(color.substring(5, 7), 16);
|
493
|
-
}
|
494
|
-
// Check if the color is in RGB/RGBA format
|
495
|
-
else if (color.startsWith("rgb")) {
|
496
|
-
const rgbValues = color.replace(/^rgba?\(|\s+|\)$/g, "") // Remove the rgb/rgba and spaces
|
497
|
-
.split(","); // Split the values into an array
|
498
|
-
|
499
|
-
r = parseInt(rgbValues[0]);
|
500
|
-
g = parseInt(rgbValues[1]);
|
501
|
-
b = parseInt(rgbValues[2]);
|
502
|
-
} else {
|
503
|
-
// If the format is not recognized, default to black text
|
504
|
-
return "#000000";
|
505
|
-
}
|
506
|
-
|
507
|
-
// Calculate relative luminance
|
508
|
-
const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
509
|
-
|
510
|
-
// Return black for light colors, white for dark colors
|
511
|
-
return luminance > 0.5 ? "#000000" : "#FFFFFF";
|
512
|
-
};
|
513
488
|
export const onDeleteKey = (event, {
|
514
489
|
editor
|
515
490
|
}) => {
|
@@ -727,10 +702,6 @@ export const isRestrictedNode = (event, editor) => {
|
|
727
702
|
return isNodeRestricted;
|
728
703
|
}
|
729
704
|
};
|
730
|
-
export function capitalizeFirstLetter(str) {
|
731
|
-
if (!str) return str;
|
732
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
733
|
-
}
|
734
705
|
export const insertLineBreakAtEndOfPath = (editor, path) => {
|
735
706
|
try {
|
736
707
|
const [node, nodePath] = Editor.node(editor, path); // Get the node at the specified path
|
@@ -749,13 +720,6 @@ export const insertLineBreakAtEndOfPath = (editor, path) => {
|
|
749
720
|
console.log(err);
|
750
721
|
}
|
751
722
|
};
|
752
|
-
export function isHavingSelection(editor) {
|
753
|
-
try {
|
754
|
-
return editor?.selection && !Range.isCollapsed(editor.selection);
|
755
|
-
} catch (err) {
|
756
|
-
console.log(err);
|
757
|
-
}
|
758
|
-
}
|
759
723
|
const omitNodes = ["site-settings", "page-settings"];
|
760
724
|
export function getInitialValue(value = [], readOnly) {
|
761
725
|
if (readOnly === "readonly" && value?.length) {
|
@@ -786,17 +750,20 @@ export function getInitialValue(value = [], readOnly) {
|
|
786
750
|
}
|
787
751
|
return value;
|
788
752
|
}
|
753
|
+
export function capitalizeFirstLetter(str) {
|
754
|
+
if (!str) return str;
|
755
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
756
|
+
}
|
757
|
+
export function isHavingSelection(editor) {
|
758
|
+
try {
|
759
|
+
return editor?.selection && !Range.isCollapsed(editor.selection);
|
760
|
+
} catch (err) {
|
761
|
+
console.log(err);
|
762
|
+
}
|
763
|
+
}
|
789
764
|
export function getSelectedCls(defaultCls = "", selected, selectedClsName = "selected") {
|
790
765
|
return `${defaultCls} ${selected ? selectedClsName : ""}`;
|
791
766
|
}
|
792
|
-
export function handleNegativeInteger(val) {
|
793
|
-
return val < 0 ? 0 : val;
|
794
|
-
}
|
795
|
-
export const containsSurrogatePair = text => {
|
796
|
-
// Match surrogate pairs (high and low surrogate)
|
797
|
-
const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
|
798
|
-
return surrogatePairRegex.test(text);
|
799
|
-
};
|
800
767
|
export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
|
801
768
|
try {
|
802
769
|
const options = {
|
@@ -810,6 +777,11 @@ export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
|
|
810
777
|
return [];
|
811
778
|
}
|
812
779
|
};
|
780
|
+
export const containsSurrogatePair = text => {
|
781
|
+
// Match surrogate pairs (high and low surrogate)
|
782
|
+
const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
|
783
|
+
return surrogatePairRegex.test(text);
|
784
|
+
};
|
813
785
|
export const getSlateDom = (editor, range) => {
|
814
786
|
try {
|
815
787
|
const slateDom = ReactEditor.toDOMRange(editor, range);
|
@@ -859,24 +831,9 @@ export const hideSlateSelection = () => {
|
|
859
831
|
const root = document.documentElement;
|
860
832
|
root.style.setProperty("--slate-highlight-bg", "none");
|
861
833
|
};
|
862
|
-
export
|
863
|
-
|
864
|
-
|
865
|
-
editor.deleteFragment();
|
866
|
-
const currentText = getCurrentElementText(editor);
|
867
|
-
const currentPath = editor?.selection?.anchor?.path;
|
868
|
-
let insertAt = currentPath;
|
869
|
-
if (currentText?.trim()) {
|
870
|
-
const parentPath = Path.parent(currentPath);
|
871
|
-
insertAt = Path.next(parentPath);
|
872
|
-
}
|
873
|
-
Transforms.insertNodes(editor, insertNode, {
|
874
|
-
at: insertAt
|
875
|
-
});
|
876
|
-
} catch (err) {
|
877
|
-
console.log(err);
|
878
|
-
}
|
879
|
-
};
|
834
|
+
export function handleNegativeInteger(val) {
|
835
|
+
return val < 0 ? 0 : val;
|
836
|
+
}
|
880
837
|
export const isEverythingSelected = editor => {
|
881
838
|
const {
|
882
839
|
selection
|
@@ -906,46 +863,4 @@ export const getCurrentNodeText = editor => {
|
|
906
863
|
} catch (error) {
|
907
864
|
console.log("Error:", error);
|
908
865
|
}
|
909
|
-
};
|
910
|
-
function convertColorToRgb(color) {
|
911
|
-
if (color?.startsWith("#")) {
|
912
|
-
// HEX to RGB
|
913
|
-
let hex = color.replace("#", "");
|
914
|
-
let r, g, b;
|
915
|
-
if (hex.length === 3) {
|
916
|
-
hex = hex.split("").map(x => x + x).join("");
|
917
|
-
}
|
918
|
-
if (hex.length === 6) {
|
919
|
-
[r, g, b] = [hex.substring(0, 2), hex.substring(2, 4), hex.substring(4, 6)].map(val => parseInt(val, 16));
|
920
|
-
return `rgb(${r}, ${g}, ${b})`;
|
921
|
-
}
|
922
|
-
} else {
|
923
|
-
return color;
|
924
|
-
}
|
925
|
-
}
|
926
|
-
export const getSelectedColor = (selectedColor, theme, hideThemeColors) => {
|
927
|
-
const colorVars = hideThemeColors ? null : theme?.vars?.colors;
|
928
|
-
let selectedValue = selectedColor;
|
929
|
-
if (colorVars) {
|
930
|
-
const convertedColor = convertColorToRgb(selectedColor);
|
931
|
-
Object.entries(theme.colors).forEach(([key, value]) => {
|
932
|
-
const convertedThemeColor = convertColorToRgb(value);
|
933
|
-
if (convertedThemeColor === convertedColor) {
|
934
|
-
selectedValue = colorVars[key];
|
935
|
-
}
|
936
|
-
});
|
937
|
-
}
|
938
|
-
return selectedValue;
|
939
|
-
};
|
940
|
-
const themeTextFormats = ["headingOne", "headingTwo", "headingThree", "headingFour", "headingFive", "headingSix", "paragraphOne", "paragraphTwo", "paragraphThree"];
|
941
|
-
export const getSelectedElementColor = (editor, format, theme) => {
|
942
|
-
const [isThemeText] = Editor.nodes(editor, {
|
943
|
-
at: editor.selection,
|
944
|
-
match: n => themeTextFormats.includes(n?.type)
|
945
|
-
});
|
946
|
-
if (!isThemeText) {
|
947
|
-
return activeMark(editor, "color") || "#000000";
|
948
|
-
}
|
949
|
-
const color = getSelectedElementStyle(format, editor, format);
|
950
|
-
return getSelectedColor(color, theme);
|
951
866
|
};
|
@@ -1,5 +1,9 @@
|
|
1
|
-
import {
|
1
|
+
import { Path, Transforms } from "slate";
|
2
|
+
import insertNewLine from "./insertNewLine";
|
3
|
+
import { getCurrentElementText } from "../plugins/withHTML";
|
2
4
|
export const insertSignature = editor => {
|
5
|
+
const hasText = getCurrentElementText(editor);
|
6
|
+
const insertPath = hasText ? Path.next(Path.parent(editor?.selection.focus.path)) : editor.selection.anchor.path;
|
3
7
|
const signature = {
|
4
8
|
type: "signature",
|
5
9
|
alignment: "center",
|
@@ -13,5 +17,8 @@ export const insertSignature = editor => {
|
|
13
17
|
text: " "
|
14
18
|
}]
|
15
19
|
};
|
16
|
-
|
20
|
+
Transforms.insertNodes(editor, signature, {
|
21
|
+
at: insertPath
|
22
|
+
});
|
23
|
+
insertNewLine(editor);
|
17
24
|
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@flozy/editor",
|
3
|
-
"version": "10.1
|
3
|
+
"version": "10.2.1",
|
4
4
|
"description": "An Editor for flozy app brain",
|
5
5
|
"files": [
|
6
6
|
"dist"
|
@@ -38,6 +38,7 @@
|
|
38
38
|
"react-icons": "^4.10.1",
|
39
39
|
"react-katex": "^3.0.1",
|
40
40
|
"react-rnd": "^10.4.11",
|
41
|
+
"react-scripts": "5.0.1",
|
41
42
|
"react-signature-canvas": "^1.0.6",
|
42
43
|
"react-slick": "^0.29.0",
|
43
44
|
"sanitize-html": "^2.13.0",
|
@@ -68,7 +69,7 @@
|
|
68
69
|
"storybook": "storybook dev -p 6006",
|
69
70
|
"build-storybook": "NODE_OPTIONS='--max_old_space_size=4096' storybook build",
|
70
71
|
"publish:npm": "rm -rf dist && mkdir dist && babel src/components -d dist --copy-files",
|
71
|
-
"publish:local": "rm -rf /Users/
|
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",
|
72
73
|
"publish:flozy": "./publish-flozy.sh",
|
73
74
|
"publish:flozy2": "./publish-flozy2.sh",
|
74
75
|
"publish:permission": "chmod +x publish-flozy.sh && chmod +x publish-flozy2.sh"
|
@@ -121,8 +122,7 @@
|
|
121
122
|
"prop-types": "^15.8.1",
|
122
123
|
"source-map-explorer": "^2.5.3",
|
123
124
|
"storybook": "^7.4.0",
|
124
|
-
"webpack": "^5.88.2"
|
125
|
-
"react-scripts": "5.0.1"
|
125
|
+
"webpack": "^5.88.2"
|
126
126
|
},
|
127
127
|
"overrides": {
|
128
128
|
"react-refresh": "0.11.0"
|