@flozy/editor 9.3.7 → 9.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Editor/ChatEditor.js +52 -16
- package/dist/Editor/CommonEditor.js +133 -23
- package/dist/Editor/DialogWrapper.js +31 -25
- package/dist/Editor/Editor.css +19 -9
- package/dist/Editor/Elements/AI/AIInput.js +5 -3
- package/dist/Editor/Elements/AI/CustomSelect.js +9 -5
- package/dist/Editor/Elements/AI/PopoverAIInput.js +4 -2
- package/dist/Editor/Elements/Accordion/Accordion.js +4 -3
- package/dist/Editor/Elements/Accordion/AccordionBtnPopup.js +4 -1
- package/dist/Editor/Elements/Accordion/AccordionButton.js +6 -2
- package/dist/Editor/Elements/Accordion/AccordionTitlePopup.js +4 -1
- package/dist/Editor/Elements/AppHeader/AppHeader.js +3 -3
- package/dist/Editor/Elements/AppHeader/AppHeaderButton.js +6 -2
- package/dist/Editor/Elements/AppHeader/AppHeaderPopup.js +4 -1
- package/dist/Editor/Elements/Attachments/AttachmentsButton.js +4 -1
- package/dist/Editor/Elements/Button/ButtonPopup.js +4 -1
- package/dist/Editor/Elements/Button/ButtonToolIcon.js +6 -2
- package/dist/Editor/Elements/Button/EditorButton.js +31 -14
- package/dist/Editor/Elements/Carousel/Carousel.js +5 -4
- package/dist/Editor/Elements/Carousel/CarouselButton.js +6 -2
- package/dist/Editor/Elements/Carousel/CarouselItem.js +3 -2
- package/dist/Editor/Elements/ChipText/ChipTextPopup.js +4 -1
- package/dist/Editor/Elements/CodeToText/CodeToText.js +5 -4
- package/dist/Editor/Elements/CodeToText/HtmlContextMenu.js +6 -2
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +60 -14
- package/dist/Editor/Elements/Color Picker/ColorPicker.css +25 -1
- package/dist/Editor/Elements/Color Picker/ColorPicker.js +4 -4
- package/dist/Editor/Elements/Color Picker/Styles.js +3 -3
- package/dist/Editor/Elements/Colorbox/ColorboxButton.js +6 -2
- package/dist/Editor/Elements/DataView/DataView.js +5 -2
- package/dist/Editor/Elements/DataView/DataViewButton.js +6 -2
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +4 -1
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/MultiSelect.js +422 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +4 -3
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +23 -5
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +7 -2
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +13 -12
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +7 -4
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +7 -5
- package/dist/Editor/Elements/DataView/Layouts/FilterView.js +9 -7
- package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +8 -3
- package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +5 -3
- package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +6 -5
- package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +5 -3
- package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +9 -7
- package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +64 -38
- package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +3 -2
- package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +3 -2
- package/dist/Editor/Elements/DataView/Layouts/Options/index.js +23 -6
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +4 -1
- package/dist/Editor/Elements/DataView/Layouts/TableView.js +6 -4
- package/dist/Editor/Elements/DataView/Layouts/index.js +3 -1
- package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +5 -2
- package/dist/Editor/Elements/Divider/Divider.js +5 -3
- package/dist/Editor/Elements/Divider/DividerButton.js +6 -2
- package/dist/Editor/Elements/Divider/DividerPopup.js +3 -2
- package/dist/Editor/Elements/Embed/Embed.js +4 -1
- package/dist/Editor/Elements/Embed/EmbedPopup.js +4 -1
- package/dist/Editor/Elements/Embed/Frames/Slider.js +16 -14
- package/dist/Editor/Elements/Embed/Image.js +18 -12
- package/dist/Editor/Elements/Embed/Video.js +10 -7
- package/dist/Editor/Elements/EmbedScript/Code.js +7 -4
- package/dist/Editor/Elements/EmbedScript/EmbedScript.js +6 -2
- package/dist/Editor/Elements/EmbedScript/EmbedScriptPopup.js +8 -5
- package/dist/Editor/Elements/Emoji/EmojiButton.js +6 -2
- package/dist/Editor/Elements/Form/FieldPopup.js +4 -1
- package/dist/Editor/Elements/Form/Form.js +12 -9
- package/dist/Editor/Elements/Form/FormButton.js +6 -2
- package/dist/Editor/Elements/Form/FormPopup.js +3 -2
- package/dist/Editor/Elements/Form/Workflow/FormWorkflow.js +18 -12
- package/dist/Editor/Elements/Form/Workflow/ListWorkflow.js +13 -8
- package/dist/Editor/Elements/Form/Workflow/MoreOptions.js +3 -2
- package/dist/Editor/Elements/Form/Workflow/UserInputs.js +4 -2
- package/dist/Editor/Elements/Form/Workflow/index.js +15 -9
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +63 -25
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +22 -4
- package/dist/Editor/Elements/FreeGrid/FreeGridButton.js +6 -2
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +34 -5
- package/dist/Editor/Elements/FreeGrid/Options/AddElement.js +3 -2
- package/dist/Editor/Elements/FreeGrid/Options/More.js +10 -4
- package/dist/Editor/Elements/FreeGrid/styles.js +3 -0
- package/dist/Editor/Elements/Grid/Grid.js +13 -10
- package/dist/Editor/Elements/Grid/GridButton.js +9 -5
- package/dist/Editor/Elements/Grid/GridItem.js +14 -8
- package/dist/Editor/Elements/Grid/GridItemPopup.js +4 -1
- package/dist/Editor/Elements/Grid/GridPopup.js +4 -1
- package/dist/Editor/Elements/Grid/SectionPopup.js +4 -1
- package/dist/Editor/Elements/Link/Link.js +14 -7
- package/dist/Editor/Elements/Link/LinkButton.js +4 -1
- package/dist/Editor/Elements/List/CheckList.js +14 -9
- package/dist/Editor/Elements/NewLine/NewLineButton.js +6 -2
- package/dist/Editor/Elements/PageSettings/PageSettingsButton.js +16 -5
- package/dist/Editor/Elements/PageSettings/PageSettingsPopup.js +4 -1
- package/dist/Editor/Elements/Search/SearchButton.js +6 -3
- package/dist/Editor/Elements/Search/SearchList.js +7 -3
- package/dist/Editor/Elements/Signature/SignatureButton.js +6 -2
- package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +6 -2
- package/dist/Editor/Elements/Signature/SignatureOptions/UploadSignature.js +4 -1
- package/dist/Editor/Elements/Signature/SignaturePopup.js +17 -16
- package/dist/Editor/Elements/SimpleText/index.js +5 -4
- package/dist/Editor/Elements/SimpleText/style.js +2 -2
- package/dist/Editor/Elements/Table/DragButton.js +4 -2
- package/dist/Editor/Elements/Table/Table.js +48 -25
- package/dist/Editor/Elements/Table/TableCell.js +10 -27
- package/dist/Editor/Elements/Table/TablePopup.js +4 -1
- package/dist/Editor/Elements/Table/TableSelector.js +10 -6
- package/dist/Editor/Elements/Table/TableTool.js +8 -4
- package/dist/Editor/Elements/Title/title.js +10 -0
- package/dist/Editor/Elements/TopBanner/TopBannerButton.js +4 -1
- package/dist/Editor/Elements/Variables/VariableButton.js +10 -1
- package/dist/Editor/MiniEditor.js +10 -3
- package/dist/Editor/Styles/EditorStyles.js +5 -5
- package/dist/Editor/Toolbar/Basic/index.js +2 -1
- package/dist/Editor/Toolbar/FormatTools/BlockButton.js +6 -2
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +27 -3
- package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -3
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +8 -4
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +7 -13
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +20 -15
- package/dist/Editor/Toolbar/PopupTool/AddTemplates.js +10 -5
- package/dist/Editor/Toolbar/PopupTool/ButtonTemplatesCard.js +10 -4
- package/dist/Editor/Toolbar/PopupTool/FullViewCard.js +10 -4
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/MiniColorPicker.js +6 -2
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectAlignment.js +42 -35
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectFontSize.js +6 -13
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectList.js +58 -51
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectSuperSubscript.js +29 -22
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/SelectTypography.js +226 -87
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +15 -7
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +8 -4
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +16 -9
- package/dist/Editor/Toolbar/PopupTool/TemplateCard.js +11 -5
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +126 -44
- package/dist/Editor/Toolbar/PopupTool/ThemeTextFormat.js +441 -0
- package/dist/Editor/Toolbar/PopupTool/index.js +15 -17
- package/dist/Editor/Toolbar/Toolbar.js +20 -10
- package/dist/Editor/Toolbar/toolbarGroups.js +48 -6
- package/dist/Editor/assets/svg/CalenderIconTick.js +1 -0
- package/dist/Editor/assets/svg/ClearAllRounded.js +31 -0
- package/dist/Editor/assets/svg/ThemeIcons.js +291 -0
- package/dist/Editor/common/ColorPickerButton.js +45 -10
- package/dist/Editor/common/CustomColorPicker/index.js +125 -0
- package/dist/Editor/common/CustomColorPicker/style.js +53 -0
- package/dist/Editor/common/CustomDialog/index.js +8 -10
- package/dist/Editor/common/CustomDialog/styles.js +1 -1
- package/dist/Editor/common/CustomDialog2/index.js +94 -0
- package/dist/Editor/common/CustomDialog2/style.js +67 -0
- package/dist/Editor/common/CustomSelect.js +33 -0
- package/dist/Editor/common/DnD/DragHandleButton.js +1 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +3 -0
- package/dist/Editor/common/Icon.js +46 -1
- package/dist/Editor/common/ImageSelector/ImageSelector.js +10 -8
- package/dist/Editor/common/ImageSelector/Options/AddLink.js +6 -4
- package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -1
- package/dist/Editor/common/ImageSelector/Styles.js +3 -9
- package/dist/Editor/common/ImageSelector/UploadStyles.js +9 -9
- package/dist/Editor/common/LinkSettings/NavComponents.js +14 -10
- package/dist/Editor/common/LinkSettings/index.js +20 -14
- package/dist/Editor/common/LinkSettings/navOptions.js +1 -1
- package/dist/Editor/common/MentionsPopup/Styles.js +111 -73
- package/dist/Editor/common/MentionsPopup/index.js +8 -4
- package/dist/Editor/common/RnD/ContextMenu/CMenus.js +22 -22
- package/dist/Editor/common/RnD/ContextMenu/index.js +3 -2
- package/dist/Editor/common/RnD/ElementOptions/index.js +7 -2
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/SaveAsTemplate.js +8 -3
- package/dist/Editor/common/RnD/ElementSettings/OtherSettings/Settings.js +7 -3
- package/dist/Editor/common/RnD/ElementSettings/Settings/AppHeaderSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/BoxSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/ButtonSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/CodeSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +7 -4
- package/dist/Editor/common/RnD/ElementSettings/Settings/ImageSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/TableSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/TextSettings.js +6 -2
- package/dist/Editor/common/RnD/ElementSettings/Settings/VideoSettings.js +3 -2
- package/dist/Editor/common/RnD/ElementSettings/styles.js +0 -1
- package/dist/Editor/common/RnD/OptionsPopup/index.js +4 -3
- package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +11 -4
- package/dist/Editor/common/RnD/Theme/MainThemeProvider.js +17 -0
- package/dist/Editor/common/RnD/Theme/ViewportStimulator.js +20 -8
- package/dist/Editor/common/RnD/Utils/gridDropItem.js +58 -7
- package/dist/Editor/common/RnD/Utils/index.js +48 -0
- package/dist/Editor/common/RnD/VirtualElement/ForceAutoAlignment.js +110 -0
- package/dist/Editor/common/RnD/VirtualElement/VirtualTextElement.js +112 -0
- package/dist/Editor/common/RnD/VirtualElement/helper.js +267 -0
- package/dist/Editor/common/RnD/VirtualElement/index.js +186 -104
- package/dist/Editor/common/RnD/VirtualElement/styles.js +95 -8
- package/dist/Editor/common/RnD/VirtualElement/updateAutoProps.js +5 -3
- package/dist/Editor/common/RnD/index.js +82 -10
- package/dist/Editor/common/Section/index.js +7 -4
- package/dist/Editor/common/Shorthands/elements.js +98 -10
- package/dist/Editor/common/SnackBar/index.js +43 -0
- package/dist/Editor/common/StyleBuilder/appHeaderStyle.js +4 -4
- package/dist/Editor/common/StyleBuilder/boxStyle.js +2 -2
- package/dist/Editor/common/StyleBuilder/buttonStyle.js +6 -4
- package/dist/Editor/common/StyleBuilder/dividerStyles.js +2 -2
- package/dist/Editor/common/StyleBuilder/embedVideoStyle.js +6 -6
- package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/alignment.js +13 -9
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +11 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +19 -5
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +22 -10
- package/dist/Editor/common/StyleBuilder/fieldTypes/buttonLink.js +6 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +27 -13
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +41 -14
- package/dist/Editor/common/StyleBuilder/fieldTypes/elementSize.js +10 -6
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +19 -6
- package/dist/Editor/common/StyleBuilder/fieldTypes/gridSize.js +6 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +5 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/menusArray.js +9 -6
- package/dist/Editor/common/StyleBuilder/fieldTypes/metaDataMapping.js +8 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +12 -11
- package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +6 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +8 -4
- package/dist/Editor/common/StyleBuilder/fieldTypes/textAlign.js +6 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +21 -12
- package/dist/Editor/common/StyleBuilder/formStyle.js +7 -7
- package/dist/Editor/common/StyleBuilder/gridItemStyle.js +6 -6
- package/dist/Editor/common/StyleBuilder/gridStyle.js +5 -5
- package/dist/Editor/common/StyleBuilder/index.js +8 -5
- package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +5 -7
- package/dist/Editor/common/Uploader.js +16 -5
- package/dist/Editor/commonStyle.js +13 -23
- package/dist/Editor/helper/index.js +8 -12
- package/dist/Editor/helper/textIndeces.js +58 -0
- package/dist/Editor/helper/theme.js +200 -2
- package/dist/Editor/hooks/useAutoScroll.js +38 -0
- package/dist/Editor/hooks/useDrag.js +17 -11
- package/dist/Editor/hooks/useEditorScroll.js +10 -6
- package/dist/Editor/hooks/useEditorTheme.js +153 -0
- package/dist/Editor/hooks/useMouseMove.js +28 -13
- package/dist/Editor/hooks/useTable.js +5 -2
- package/dist/Editor/plugins/withEmbeds.js +1 -1
- package/dist/Editor/plugins/withHTML.js +19 -15
- package/dist/Editor/plugins/withLayout.js +3 -2
- package/dist/Editor/plugins/withTable.js +1 -1
- package/dist/Editor/theme/ThemeList.js +50 -173
- package/dist/Editor/theme/index.js +144 -0
- package/dist/Editor/themeSettings/ActiveTheme.js +72 -0
- package/dist/Editor/themeSettings/buttons/index.js +285 -0
- package/dist/Editor/themeSettings/buttons/style.js +23 -0
- package/dist/Editor/themeSettings/colorTheme/index.js +297 -0
- package/dist/Editor/themeSettings/colorTheme/style.js +81 -0
- package/dist/Editor/themeSettings/fonts/PreviewElement.js +121 -0
- package/dist/Editor/themeSettings/fonts/index.js +222 -0
- package/dist/Editor/themeSettings/fonts/style.js +59 -0
- package/dist/Editor/themeSettings/icons.js +60 -0
- package/dist/Editor/themeSettings/index.js +328 -0
- package/dist/Editor/themeSettings/style.js +193 -0
- package/dist/Editor/themeSettingsAI/icons.js +96 -0
- package/dist/Editor/themeSettingsAI/index.js +355 -0
- package/dist/Editor/themeSettingsAI/saveTheme.js +215 -0
- package/dist/Editor/themeSettingsAI/style.js +250 -0
- package/dist/Editor/utils/SlateUtilityFunctions.js +171 -47
- package/dist/Editor/utils/button.js +7 -2
- package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +23 -0
- package/dist/Editor/utils/dataView.js +5 -2
- package/dist/Editor/utils/divider.js +18 -2
- package/dist/Editor/utils/draftToSlate.js +3 -2
- package/dist/Editor/utils/embed.js +9 -4
- package/dist/Editor/utils/font.js +40 -37
- package/dist/Editor/utils/freegrid.js +2 -2
- package/dist/Editor/utils/helper.js +136 -29
- package/dist/Editor/utils/signature.js +5 -2
- package/dist/Editor/utils/table.js +53 -37
- package/package.json +2 -2
@@ -1,12 +1,28 @@
|
|
1
|
-
import { Transforms } from "slate";
|
1
|
+
import { Editor, Path, Transforms } from "slate";
|
2
2
|
import insertNewLine from "./insertNewLine";
|
3
|
+
import { getCurrentEntry, getCurrentNodeText } from "./helper";
|
3
4
|
export const insertDivider = editor => {
|
5
|
+
Transforms.delete(editor, editor.selection);
|
6
|
+
const blockText = getCurrentNodeText(editor);
|
7
|
+
const {
|
8
|
+
currentPath
|
9
|
+
} = getCurrentEntry(editor) || {};
|
4
10
|
const divider = {
|
5
11
|
type: "divider",
|
6
12
|
children: [{
|
7
13
|
text: ""
|
8
14
|
}]
|
9
15
|
};
|
10
|
-
|
16
|
+
if (!blockText) {
|
17
|
+
Transforms.removeNodes(editor, {
|
18
|
+
at: editor?.selection
|
19
|
+
});
|
20
|
+
}
|
21
|
+
const insertPath = blockText ? Path.next(currentPath) : currentPath;
|
22
|
+
Transforms.insertNodes(editor, divider, {
|
23
|
+
at: insertPath
|
24
|
+
});
|
11
25
|
insertNewLine(editor);
|
26
|
+
const newLinePath = Path.next(insertPath);
|
27
|
+
Transforms.select(editor, Editor.start(editor, newLinePath));
|
12
28
|
};
|
@@ -82,7 +82,8 @@ const splitInlineStyleRanges = (text, inlineStyleRanges, data) => {
|
|
82
82
|
};
|
83
83
|
export const draftToSlate = props => {
|
84
84
|
const {
|
85
|
-
data
|
85
|
+
data,
|
86
|
+
needLayout
|
86
87
|
} = props;
|
87
88
|
if (data?.blocks && data?.blocks?.length > 0) {
|
88
89
|
const converted = data?.blocks?.reduce((a, b) => {
|
@@ -104,7 +105,7 @@ export const draftToSlate = props => {
|
|
104
105
|
return data;
|
105
106
|
} else {
|
106
107
|
return [{
|
107
|
-
type: "paragraph",
|
108
|
+
type: needLayout ? "title" : "paragraph",
|
108
109
|
children: [{
|
109
110
|
text: ""
|
110
111
|
}]
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Transforms } from "slate";
|
2
2
|
import insertNewLine, { insertNewLineAfterCurrentPath } from "./insertNewLine";
|
3
|
+
import { getCurrentNodeText } from "./helper";
|
3
4
|
export const insertDefaultEmbed = (editor, type, defaultURL = "", extProps = {}) => {
|
4
5
|
try {
|
5
6
|
const url = defaultURL ? defaultURL : type === "image" ? "" : "";
|
@@ -51,11 +52,15 @@ export const createEmbedNode = (type, {
|
|
51
52
|
});
|
52
53
|
export const insertEmbed = (editor, embedData, format) => {
|
53
54
|
try {
|
55
|
+
const blockText = getCurrentNodeText(editor);
|
54
56
|
const embed = createEmbedNode(format, embedData);
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
57
|
+
if (!blockText) {
|
58
|
+
Transforms.removeNodes(editor, {
|
59
|
+
at: editor?.selection
|
60
|
+
});
|
61
|
+
insertNewLine(editor);
|
62
|
+
}
|
63
|
+
Transforms.insertNodes(editor, embed);
|
59
64
|
insertNewLineAfterCurrentPath(editor);
|
60
65
|
} catch (err) {
|
61
66
|
console.log(err);
|
@@ -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: "
|
14
|
-
qwitcher: "
|
15
|
-
garamond: "
|
16
|
-
anton: "
|
17
|
-
dmserif: "
|
18
|
-
inter: "
|
19
|
-
libre: "
|
20
|
-
montserrat: "
|
21
|
-
opensans: "
|
22
|
-
publicsans: "
|
23
|
-
raleway: "
|
24
|
-
spacemono: "
|
25
|
-
bulgarian: "
|
26
|
-
impact: "
|
27
|
-
redacted: "
|
28
|
-
greatVibes: "
|
29
|
-
zeyada: "
|
30
|
-
allura: "
|
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: "
|
38
|
-
gaegu: "
|
39
|
-
ingridDarling: "
|
40
|
-
kitaOne: "
|
41
|
-
laBelleAurore: "
|
42
|
-
lobster: "
|
43
|
-
meaCulpa: "
|
44
|
-
meddon: "
|
45
|
-
merriWeather: "
|
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: "Times",
|
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,7 +62,10 @@ 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"
|
65
|
+
headingThree: "19px",
|
66
|
+
headingFour: "16px",
|
67
|
+
headingFive: "13px",
|
68
|
+
headingSix: "11px"
|
66
69
|
};
|
67
70
|
export const fontWeightOptions = [{
|
68
71
|
text: "Bold",
|
@@ -22,8 +22,8 @@ export const insertFreeGridItem = (childType, childTypeNode, extProps = {}, type
|
|
22
22
|
top_xs: 24,
|
23
23
|
marginTop_xs: 12,
|
24
24
|
width_xs: 250,
|
25
|
-
height_xs: 300,
|
26
|
-
gridArea_xs: "1 / 1 / 2 / 2",
|
25
|
+
// height_xs: 300,
|
26
|
+
// gridArea_xs: "1 / 1 / 2 / 2",
|
27
27
|
sectionBgColor: "rgb(240, 108, 131)",
|
28
28
|
...(extProps || {})
|
29
29
|
};
|
@@ -261,7 +261,15 @@ export const customInsertNode = (editor, insertNode, defaultInsertOptions = {})
|
|
261
261
|
if (isListItem) {
|
262
262
|
insertOptions.at = editor.selection.focus;
|
263
263
|
}
|
264
|
-
|
264
|
+
const hasText = getCurrentNodeText(editor);
|
265
|
+
if (hasText) {
|
266
|
+
Transforms.insertNodes(editor, insertNode, {
|
267
|
+
at: Path.next(Path.parent(editor?.selection.focus.path)),
|
268
|
+
select: true
|
269
|
+
});
|
270
|
+
} else {
|
271
|
+
Transforms.insertNodes(editor, insertNode, insertOptions);
|
272
|
+
}
|
265
273
|
insertNewLine(editor);
|
266
274
|
};
|
267
275
|
export const decodeAndParseBase64 = encodedString => {
|
@@ -472,6 +480,34 @@ export const decodeString = str => {
|
|
472
480
|
console.log(err);
|
473
481
|
}
|
474
482
|
};
|
483
|
+
export const getContrastColor = color => {
|
484
|
+
let r, g, b;
|
485
|
+
|
486
|
+
// Check if the color is in hex format
|
487
|
+
if (color.startsWith("#")) {
|
488
|
+
r = parseInt(color.substring(1, 3), 16);
|
489
|
+
g = parseInt(color.substring(3, 5), 16);
|
490
|
+
b = parseInt(color.substring(5, 7), 16);
|
491
|
+
}
|
492
|
+
// Check if the color is in RGB/RGBA format
|
493
|
+
else if (color.startsWith("rgb")) {
|
494
|
+
const rgbValues = color.replace(/^rgba?\(|\s+|\)$/g, "") // Remove the rgb/rgba and spaces
|
495
|
+
.split(","); // Split the values into an array
|
496
|
+
|
497
|
+
r = parseInt(rgbValues[0]);
|
498
|
+
g = parseInt(rgbValues[1]);
|
499
|
+
b = parseInt(rgbValues[2]);
|
500
|
+
} else {
|
501
|
+
// If the format is not recognized, default to black text
|
502
|
+
return "#000000";
|
503
|
+
}
|
504
|
+
|
505
|
+
// Calculate relative luminance
|
506
|
+
const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
507
|
+
|
508
|
+
// Return black for light colors, white for dark colors
|
509
|
+
return luminance > 0.5 ? "#000000" : "#FFFFFF";
|
510
|
+
};
|
475
511
|
export const onDeleteKey = (event, {
|
476
512
|
editor
|
477
513
|
}) => {
|
@@ -588,20 +624,38 @@ export const getNextNode = editor => {
|
|
588
624
|
return;
|
589
625
|
}
|
590
626
|
};
|
591
|
-
export const
|
627
|
+
export const getPreviousEntry = editor => {
|
592
628
|
try {
|
593
|
-
const
|
594
|
-
|
595
|
-
|
629
|
+
const prevEntry = Editor.previous(editor, {
|
630
|
+
at: editor.selection,
|
631
|
+
match: n => Element.isElement(n)
|
632
|
+
});
|
633
|
+
if (!prevEntry) return null;
|
634
|
+
const [previousNode, previousPath] = prevEntry;
|
596
635
|
return {
|
597
636
|
previousNode,
|
598
637
|
previousPath
|
599
638
|
};
|
600
|
-
} catch (
|
639
|
+
} catch (error) {
|
640
|
+
return;
|
641
|
+
}
|
642
|
+
};
|
643
|
+
export const getCurrentEntry = editor => {
|
644
|
+
try {
|
645
|
+
const currentEntry = Editor.node(editor, editor.selection, {
|
646
|
+
depth: 1
|
647
|
+
});
|
648
|
+
if (!currentEntry) return null;
|
649
|
+
const [currentNode, currentPath] = currentEntry;
|
650
|
+
return {
|
651
|
+
currentNode,
|
652
|
+
currentPath
|
653
|
+
};
|
654
|
+
} catch (error) {
|
601
655
|
return;
|
602
656
|
}
|
603
657
|
};
|
604
|
-
const isRestricted = node => node?.type === "page-settings" || node?.type === "site-settings" || node?.children?.some(child => child.type === "dataView");
|
658
|
+
const isRestricted = node => node?.type === "page-settings" || node?.type === "site-settings" || node?.type === "viewData" || node?.children?.some(child => child.type === "dataView");
|
605
659
|
export const isRestrictedNode = (event, editor) => {
|
606
660
|
let isNodeRestricted = false;
|
607
661
|
try {
|
@@ -615,15 +669,50 @@ export const isRestrictedNode = (event, editor) => {
|
|
615
669
|
const {
|
616
670
|
previousNode,
|
617
671
|
previousPath
|
618
|
-
} =
|
619
|
-
|
672
|
+
} = getPreviousEntry(editor) || {};
|
673
|
+
const {
|
674
|
+
currentNode
|
675
|
+
} = getCurrentEntry(editor) || {};
|
676
|
+
if (currentNode?.type === "orderedList" || currentNode?.type === "unorderedList") {
|
677
|
+
event.preventDefault();
|
678
|
+
const path = selection?.anchor?.path;
|
679
|
+
if (!path) return;
|
680
|
+
|
681
|
+
// Lift the selected list-item out of the list
|
682
|
+
Transforms.liftNodes(editor, {
|
683
|
+
match: n => n.type === "list-item"
|
684
|
+
});
|
685
|
+
|
686
|
+
// Convert the lifted list-item into a paragraph
|
687
|
+
Transforms.setNodes(editor, {
|
688
|
+
type: "paragraph"
|
689
|
+
}, {
|
690
|
+
match: n => n.type === "list-item"
|
691
|
+
});
|
692
|
+
|
693
|
+
// Move focus to the modified paragraph (same path)
|
694
|
+
Transforms.select(editor, path);
|
695
|
+
} else if (isRestricted(previousNode)) {
|
620
696
|
event.preventDefault(); // stops deleting backward
|
621
697
|
|
622
698
|
// move the cursor to node which is before page-settings node
|
623
|
-
const pathBeforePageSettings = Path.previous(previousPath);
|
699
|
+
const pathBeforePageSettings = Path.previous([previousPath[0]]);
|
624
700
|
const endPath = Editor.end(editor, pathBeforePageSettings);
|
625
701
|
Transforms.select(editor, endPath);
|
626
702
|
isNodeRestricted = true;
|
703
|
+
} else if (previousNode?.type === "divider") {
|
704
|
+
event.preventDefault();
|
705
|
+
Transforms.removeNodes(editor, {
|
706
|
+
at: previousPath
|
707
|
+
});
|
708
|
+
Transforms.insertNodes(editor, {
|
709
|
+
type: "paragraph",
|
710
|
+
children: [{
|
711
|
+
text: " "
|
712
|
+
}]
|
713
|
+
}, {
|
714
|
+
at: previousPath
|
715
|
+
});
|
627
716
|
}
|
628
717
|
}
|
629
718
|
return isNodeRestricted;
|
@@ -633,6 +722,10 @@ export const isRestrictedNode = (event, editor) => {
|
|
633
722
|
return isNodeRestricted;
|
634
723
|
}
|
635
724
|
};
|
725
|
+
export function capitalizeFirstLetter(str) {
|
726
|
+
if (!str) return str;
|
727
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
728
|
+
}
|
636
729
|
export const insertLineBreakAtEndOfPath = (editor, path) => {
|
637
730
|
try {
|
638
731
|
const [node, nodePath] = Editor.node(editor, path); // Get the node at the specified path
|
@@ -651,6 +744,13 @@ export const insertLineBreakAtEndOfPath = (editor, path) => {
|
|
651
744
|
console.log(err);
|
652
745
|
}
|
653
746
|
};
|
747
|
+
export function isHavingSelection(editor) {
|
748
|
+
try {
|
749
|
+
return editor?.selection && !Range.isCollapsed(editor.selection);
|
750
|
+
} catch (err) {
|
751
|
+
console.log(err);
|
752
|
+
}
|
753
|
+
}
|
654
754
|
const omitNodes = ["site-settings", "page-settings"];
|
655
755
|
export function getInitialValue(value = [], readOnly) {
|
656
756
|
if (readOnly === "readonly" && value?.length) {
|
@@ -681,20 +781,17 @@ export function getInitialValue(value = [], readOnly) {
|
|
681
781
|
}
|
682
782
|
return value;
|
683
783
|
}
|
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
|
-
}
|
695
784
|
export function getSelectedCls(defaultCls = "", selected, selectedClsName = "selected") {
|
696
785
|
return `${defaultCls} ${selected ? selectedClsName : ""}`;
|
697
786
|
}
|
787
|
+
export function handleNegativeInteger(val) {
|
788
|
+
return val < 0 ? 0 : val;
|
789
|
+
}
|
790
|
+
export const containsSurrogatePair = text => {
|
791
|
+
// Match surrogate pairs (high and low surrogate)
|
792
|
+
const surrogatePairRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
|
793
|
+
return surrogatePairRegex.test(text);
|
794
|
+
};
|
698
795
|
export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
|
699
796
|
try {
|
700
797
|
const options = {
|
@@ -708,11 +805,6 @@ export const getNodeWithType = (editor, nodeType = "", otherOptions) => {
|
|
708
805
|
return [];
|
709
806
|
}
|
710
807
|
};
|
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
|
-
};
|
716
808
|
export const getSlateDom = (editor, range) => {
|
717
809
|
try {
|
718
810
|
const slateDom = ReactEditor.toDOMRange(editor, range);
|
@@ -762,9 +854,6 @@ export const hideSlateSelection = () => {
|
|
762
854
|
const root = document.documentElement;
|
763
855
|
root.style.setProperty("--slate-highlight-bg", "none");
|
764
856
|
};
|
765
|
-
export function handleNegativeInteger(val) {
|
766
|
-
return val < 0 ? 0 : val;
|
767
|
-
}
|
768
857
|
export const isEverythingSelected = editor => {
|
769
858
|
const {
|
770
859
|
selection
|
@@ -776,4 +865,22 @@ export const isEverythingSelected = editor => {
|
|
776
865
|
return false;
|
777
866
|
}
|
778
867
|
}
|
868
|
+
};
|
869
|
+
export const getCurrentNodeText = editor => {
|
870
|
+
try {
|
871
|
+
const {
|
872
|
+
selection
|
873
|
+
} = editor;
|
874
|
+
if (selection) {
|
875
|
+
const [block] = Editor.node(editor, selection, {
|
876
|
+
match: n => Editor.isBlock(editor, n)
|
877
|
+
});
|
878
|
+
const blockText = block?.text;
|
879
|
+
return blockText;
|
880
|
+
} else {
|
881
|
+
return;
|
882
|
+
}
|
883
|
+
} catch (error) {
|
884
|
+
console.log("Error:", error);
|
885
|
+
}
|
779
886
|
};
|
@@ -1,6 +1,9 @@
|
|
1
|
-
import { Transforms } from "slate";
|
1
|
+
import { Path, Transforms } from "slate";
|
2
2
|
import insertNewLine from "./insertNewLine";
|
3
|
+
import { getCurrentElementText } from "../plugins/withHTML";
|
3
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;
|
4
7
|
const signature = {
|
5
8
|
type: "signature",
|
6
9
|
alignment: "center",
|
@@ -15,7 +18,7 @@ export const insertSignature = editor => {
|
|
15
18
|
}]
|
16
19
|
};
|
17
20
|
Transforms.insertNodes(editor, signature, {
|
18
|
-
at:
|
21
|
+
at: insertPath
|
19
22
|
});
|
20
23
|
insertNewLine(editor);
|
21
24
|
};
|
@@ -174,6 +174,14 @@ 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
|
+
}
|
177
185
|
}
|
178
186
|
};
|
179
187
|
duplicateTable = () => {
|
@@ -442,51 +450,53 @@ export class TableUtil {
|
|
442
450
|
at: currentTablePath
|
443
451
|
});
|
444
452
|
Transforms.setNodes(this.editor, {
|
445
|
-
...rowProps
|
446
|
-
tableBorder: tableProps?.borderColor
|
453
|
+
...rowProps
|
447
454
|
}, {
|
448
455
|
at: currentRowPath
|
449
456
|
});
|
450
457
|
Transforms.setNodes(this.editor, {
|
451
|
-
...cellProps
|
452
|
-
rowBorder: rowProps?.borderColor,
|
453
|
-
tableBorder: tableProps?.borderColor
|
458
|
+
...cellProps
|
454
459
|
}, {
|
455
460
|
at: currentCellPath
|
456
461
|
});
|
457
462
|
applyColumnStyle(this.editor, currentCellPath, currentTablePath, cellProps, tableProps?.rows);
|
458
463
|
|
459
464
|
// cell bg entire
|
460
|
-
if (
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
465
|
+
// if (
|
466
|
+
// cellProps?.entireBgColor ||
|
467
|
+
// tableProps?.borderColor ||
|
468
|
+
// rowProps?.borderColor
|
469
|
+
// ) {
|
470
|
+
// const { rows } = tableProps;
|
471
|
+
|
472
|
+
// for (let r = 0; r < rows; r++) {
|
473
|
+
// Transforms.setNodes(
|
474
|
+
// this.editor,
|
475
|
+
// {
|
476
|
+
// entireBgColor: cellProps?.entireBgColor,
|
477
|
+
// },
|
478
|
+
// { at: [currentCellPath[0], r, currentCellPath[2]] }
|
479
|
+
// );
|
480
|
+
// }
|
481
|
+
// }
|
472
482
|
|
473
483
|
// cell border all
|
474
|
-
if (tableProps?.borderColor || rowProps?.borderColor) {
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
}
|
484
|
+
// if (tableProps?.borderColor || rowProps?.borderColor) {
|
485
|
+
// const { rows, columns } = tableProps;
|
486
|
+
|
487
|
+
// for (let r = 0; r < rows; r++) {
|
488
|
+
// for (let c = 0; c < columns; c++) {
|
489
|
+
// Transforms.setNodes(
|
490
|
+
// this.editor,
|
491
|
+
// {
|
492
|
+
// entireBorderColor: tableProps?.borderColor,
|
493
|
+
// rowBorder: rowProps?.borderColor,
|
494
|
+
// },
|
495
|
+
// { at: [currentCellPath[0], r, c] }
|
496
|
+
// );
|
497
|
+
// }
|
498
|
+
// }
|
499
|
+
// }
|
490
500
|
}
|
491
501
|
} catch (err) {
|
492
502
|
console.log(err);
|
@@ -500,19 +510,25 @@ export class TableUtil {
|
|
500
510
|
at: path
|
501
511
|
});
|
502
512
|
};
|
503
|
-
getTableProps =
|
513
|
+
getTableProps = otherOptions => {
|
504
514
|
const {
|
505
515
|
selection
|
506
516
|
} = this.editor;
|
517
|
+
const options = {
|
518
|
+
...(otherOptions || {})
|
519
|
+
};
|
507
520
|
if (!!selection && Range.isCollapsed(selection)) {
|
508
521
|
const [tableNode] = Editor.nodes(this.editor, {
|
509
|
-
match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table"
|
522
|
+
match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table",
|
523
|
+
...options
|
510
524
|
});
|
511
525
|
const [tableCellNode] = Editor.nodes(this.editor, {
|
512
|
-
match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table-cell"
|
526
|
+
match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table-cell",
|
527
|
+
...options
|
513
528
|
});
|
514
529
|
const [tableRowNode] = Editor.nodes(this.editor, {
|
515
|
-
match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table-row"
|
530
|
+
match: n => !Editor.isEditor(n) && Element.isElement(n) && n.type === "table-row",
|
531
|
+
...options
|
516
532
|
});
|
517
533
|
if (tableNode && tableCellNode && tableRowNode) {
|
518
534
|
const [currentTable, currentTablePath] = tableNode;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@flozy/editor",
|
3
|
-
"version": "9.3.
|
3
|
+
"version": "9.3.8",
|
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/.
|
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",
|