@flozy/editor 5.5.8 → 5.6.0
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 +25 -34
- package/dist/Editor/CommonEditor.js +26 -13
- package/dist/Editor/Editor.css +106 -20
- package/dist/Editor/Elements/AI/AIInput.js +0 -1
- package/dist/Editor/Elements/AI/CustomSelect.js +17 -10
- package/dist/Editor/Elements/AI/PopoverAIInput.js +59 -53
- package/dist/Editor/Elements/AI/Styles.js +24 -6
- package/dist/Editor/Elements/Accordion/Accordion.js +8 -1
- package/dist/Editor/Elements/AppHeader/AppHeader.js +6 -6
- package/dist/Editor/Elements/Button/EditorButton.js +6 -1
- package/dist/Editor/Elements/Carousel/CarouselItem.js +11 -3
- package/dist/Editor/Elements/Color Picker/ColorButtons.js +7 -5
- package/dist/Editor/Elements/Color Picker/Styles.js +8 -3
- package/dist/Editor/Elements/Color Picker/defaultColors.js +2 -2
- package/dist/Editor/Elements/DataView/DataView.js +124 -0
- package/dist/Editor/Elements/DataView/DataViewButton.js +23 -0
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +83 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/CheckType.js +33 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +180 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SimpleSelect.js +62 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +68 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +35 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +39 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/NumberType.js +30 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +30 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/SelectType.js +35 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +36 -0
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/index.js +17 -0
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseField.js +29 -0
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +38 -0
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +86 -0
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +71 -0
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/styles.js +138 -0
- package/dist/Editor/Elements/DataView/Layouts/FilterView.js +213 -0
- package/dist/Editor/Elements/DataView/Layouts/Formula.js +29 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +113 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +44 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +146 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +79 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/ColumnsList.js +57 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/Constants.js +101 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +174 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +241 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +45 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +32 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/index.js +110 -0
- package/dist/Editor/Elements/DataView/Layouts/Options/styles.js +217 -0
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +131 -0
- package/dist/Editor/Elements/DataView/Layouts/TableView.js +253 -0
- package/dist/Editor/Elements/DataView/Layouts/ViewData.js +85 -0
- package/dist/Editor/Elements/DataView/Layouts/colStyles.js +10 -0
- package/dist/Editor/Elements/DataView/Layouts/index.js +25 -0
- package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +277 -0
- package/dist/Editor/Elements/DataView/Utils/globalSearch.js +15 -0
- package/dist/Editor/Elements/DataView/Utils/multiSortRows.js +88 -0
- package/dist/Editor/Elements/DataView/styles.js +169 -0
- package/dist/Editor/Elements/Divider/Divider.js +36 -20
- package/dist/Editor/Elements/Embed/Image.js +51 -16
- package/dist/Editor/Elements/Embed/Video.js +26 -3
- package/dist/Editor/Elements/Form/Form.js +38 -2
- package/dist/Editor/Elements/Form/FormElements/FormCheckbox.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormDate.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormEmail.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormNumbers.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormRadioButton.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormText.js +7 -1
- package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +6 -1
- package/dist/Editor/Elements/Form/FormPopup.js +12 -9
- package/dist/Editor/Elements/Form/Workflow/Styles.js +2 -0
- package/dist/Editor/Elements/FreeGrid/FreeGrid.js +1 -1
- package/dist/Editor/Elements/FreeGrid/FreeGridBox.js +4 -2
- package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +20 -1
- package/dist/Editor/Elements/FreeGrid/breakpointConstants.js +4 -4
- package/dist/Editor/Elements/FreeGrid/styles.js +1 -1
- package/dist/Editor/Elements/Grid/GridButton.js +2 -2
- package/dist/Editor/Elements/Grid/GridItem.js +47 -36
- package/dist/Editor/Elements/Grid/Styles.js +50 -0
- package/dist/Editor/Elements/Link/LinkButton.js +1 -1
- package/dist/Editor/Elements/Search/SearchButton.js +1 -0
- package/dist/Editor/Elements/Signature/Signature.css +1 -1
- package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -2
- package/dist/Editor/Elements/Signature/SignaturePopup.js +17 -52
- package/dist/Editor/Elements/SimpleText/index.js +3 -2
- package/dist/Editor/Elements/SimpleText/style.js +15 -0
- package/dist/Editor/Elements/Table/AddRowCol.js +77 -0
- package/dist/Editor/Elements/Table/DragButton.js +142 -0
- package/dist/Editor/Elements/Table/DragStyles.js +70 -0
- package/dist/Editor/Elements/Table/Draggable.js +25 -0
- package/dist/Editor/Elements/Table/Droppable.js +53 -0
- package/dist/Editor/Elements/Table/Styles.js +88 -78
- package/dist/Editor/Elements/Table/Table.js +263 -140
- package/dist/Editor/Elements/Table/TableCell.js +365 -111
- package/dist/Editor/Elements/Table/TablePopup.js +9 -3
- package/dist/Editor/Elements/Table/TableRow.js +10 -2
- package/dist/Editor/Elements/Table/TableTool.js +101 -0
- package/dist/Editor/Elements/Table/tableHelper.js +71 -0
- package/dist/Editor/Elements/TopBanner/TopBanner.js +2 -1
- package/dist/Editor/MiniEditor.js +21 -2
- package/dist/Editor/Styles/EditorStyles.js +13 -4
- package/dist/Editor/Toolbar/FormatTools/BlockButton.js +10 -0
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +7 -12
- package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +26 -4
- package/dist/Editor/Toolbar/FormatTools/MarkButton.js +3 -0
- package/dist/Editor/Toolbar/FormatTools/TextSize.js +5 -5
- package/dist/Editor/Toolbar/Mini/MiniToolbar.js +8 -8
- package/dist/Editor/Toolbar/Mini/Styles.js +9 -1
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/InfinityAITool.js +7 -3
- package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +6 -4
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +19 -15
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +547 -58
- package/dist/Editor/Toolbar/PopupTool/TextFormat.js +28 -16
- package/dist/Editor/Toolbar/PopupTool/index.js +3 -5
- package/dist/Editor/Toolbar/Toolbar.js +6 -0
- package/dist/Editor/Toolbar/toolbarGroups.js +4 -0
- package/dist/Editor/assets/svg/ArrowDownIcon.js +25 -0
- package/dist/Editor/assets/svg/ArrowUpIcon.js +25 -0
- package/dist/Editor/assets/svg/BrainIcon.js +2 -2
- package/dist/Editor/assets/svg/CalenderIconTick.js +64 -0
- package/dist/Editor/assets/svg/ChervDown.js +18 -0
- package/dist/Editor/assets/svg/ChervUp.js +18 -0
- package/dist/Editor/assets/svg/DataTableIcon.js +50 -0
- package/dist/Editor/assets/svg/DuplicateIcon.js +23 -0
- package/dist/Editor/assets/svg/EyeIcon.js +23 -0
- package/dist/Editor/assets/svg/EyeSlash.js +43 -0
- package/dist/Editor/assets/svg/HashtagIcon.js +33 -0
- package/dist/Editor/assets/svg/PlusIcon.js +23 -0
- package/dist/Editor/assets/svg/SelectRoundedIcon.js +24 -0
- package/dist/Editor/assets/svg/SettingsIcon.js +4 -4
- package/dist/Editor/assets/svg/SortByIcon.js +33 -0
- package/dist/Editor/assets/svg/TableIcons.js +220 -0
- package/dist/Editor/assets/svg/TickOutlined.js +23 -0
- package/dist/Editor/assets/svg/TrashCanIcon.js +38 -0
- package/dist/Editor/common/ColorPickerButton.js +85 -45
- package/dist/Editor/common/DnD/Draggable.js +2 -1
- package/dist/Editor/common/FontLoader/FontLoader.js +2 -2
- package/dist/Editor/common/Icon.js +54 -21
- package/dist/Editor/common/ImageSelector/Options/Upload.js +2 -1
- package/dist/Editor/common/ImageSelector/Styles.js +47 -6
- package/dist/Editor/common/ImageSelector/UploadStyles.js +18 -6
- package/dist/Editor/common/LinkSettings/NavComponents.js +2 -1
- package/dist/Editor/common/LinkSettings/index.js +2 -1
- package/dist/Editor/common/MentionsPopup/Styles.js +142 -8
- package/dist/Editor/common/MentionsPopup/index.js +1 -1
- package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +107 -12
- package/dist/Editor/common/RnD/GuideLines/styles.js +3 -3
- package/dist/Editor/common/RnD/ShadowElement.js +1 -1
- package/dist/Editor/common/RnD/VirtualElement/index.js +5 -1
- package/dist/Editor/common/RnD/index.js +4 -3
- package/dist/Editor/common/Section/index.js +3 -3
- package/dist/Editor/common/Section/styles.js +5 -1
- package/dist/Editor/common/Select/index.js +20 -0
- package/dist/Editor/common/Select/styles.js +17 -0
- package/dist/Editor/common/Shorthands/elements.js +13 -1
- package/dist/Editor/common/StyleBuilder/fieldStyle.js +2 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +4 -3
- package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +35 -7
- package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +15 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +2 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +1 -1
- package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +2 -0
- package/dist/Editor/common/StyleBuilder/fieldTypes/radiusStyle.js +11 -11
- package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +22 -6
- package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +21 -2
- package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +20 -4
- package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +12 -2
- package/dist/Editor/common/StyleBuilder/formStyle.js +268 -149
- package/dist/Editor/common/StyleBuilder/index.js +101 -20
- package/dist/Editor/common/StyleBuilder/tableStyle.js +69 -25
- package/dist/Editor/common/SwipeableDrawer/style.js +15 -4
- package/dist/Editor/common/ToolbarIcon.js +1 -1
- package/dist/Editor/common/Uploader.js +39 -37
- package/dist/Editor/common/iconListV2.js +598 -74
- package/dist/Editor/common/iconslist.js +25 -19
- package/dist/Editor/commonStyle.js +421 -15
- package/dist/Editor/helper/deserialize/index.js +31 -2
- package/dist/Editor/helper/enforceDateFormat.js +41 -0
- package/dist/Editor/helper/index.js +15 -2
- package/dist/Editor/helper/theme.js +15 -1
- package/dist/Editor/hooks/useBreakpoints.js +1 -1
- package/dist/Editor/hooks/useTable.js +210 -0
- package/dist/Editor/plugins/withCustomDeleteBackward.js +1 -1
- package/dist/Editor/plugins/withEmbeds.js +30 -26
- package/dist/Editor/plugins/withHTML.js +100 -12
- package/dist/Editor/plugins/withLayout.js +1 -0
- package/dist/Editor/utils/SlateUtilityFunctions.js +31 -11
- package/dist/Editor/utils/brains.js +1 -1
- package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +75 -6
- package/dist/Editor/utils/customHooks/useResize.js +7 -4
- package/dist/Editor/utils/customHooks/useTableResize.js +6 -2
- package/dist/Editor/utils/dataView.js +43 -0
- package/dist/Editor/utils/embed.js +2 -1
- package/dist/Editor/utils/events.js +0 -1
- package/dist/Editor/utils/font.js +11 -4
- package/dist/Editor/utils/formfield.js +8 -4
- package/dist/Editor/utils/helper.js +100 -2
- package/dist/Editor/utils/insertNewLine.js +19 -1
- package/dist/Editor/utils/serializeToText.js +2 -0
- package/dist/Editor/utils/table.js +228 -24
- package/package.json +2 -2
@@ -4,9 +4,9 @@ import Styles from "./Styles";
|
|
4
4
|
import { Fade, Paper, Popper } from "@mui/material";
|
5
5
|
import AIInput from "./AIInput";
|
6
6
|
import { ReactEditor, useSlate } from "slate-react";
|
7
|
-
import { Node, Transforms } from "slate";
|
7
|
+
import { Node, Range, Transforms } from "slate";
|
8
8
|
import { MODES } from "./helper";
|
9
|
-
import { getSelectedText } from "../../utils/helper";
|
9
|
+
import { getSelectedText, getSlateDom } from "../../utils/helper";
|
10
10
|
import { VoiceToText } from "./VoiceToText";
|
11
11
|
import deserialize from "../../helper/deserialize";
|
12
12
|
import useEditorScroll from "../../hooks/useEditorScroll";
|
@@ -23,7 +23,7 @@ const scrollToAIInput = editor => {
|
|
23
23
|
const slateWrapper = document.getElementById("slate-wrapper-scroll-container");
|
24
24
|
let selectionRect;
|
25
25
|
if (getSelectedText(editor)) {
|
26
|
-
selectionRect =
|
26
|
+
selectionRect = ReactEditor.toDOMRange(editor, editor.selection)?.getBoundingClientRect();
|
27
27
|
} else {
|
28
28
|
selectionRect = ReactEditor.toDOMRange(editor, getNextLine(editor).at).getBoundingClientRect();
|
29
29
|
}
|
@@ -62,7 +62,7 @@ const getNextLine = editor => {
|
|
62
62
|
} = editor;
|
63
63
|
const {
|
64
64
|
focus
|
65
|
-
} = selection;
|
65
|
+
} = selection || {};
|
66
66
|
if (focus?.path?.length > 0) {
|
67
67
|
const {
|
68
68
|
text = ""
|
@@ -102,56 +102,47 @@ const getNextLine = editor => {
|
|
102
102
|
return null;
|
103
103
|
}
|
104
104
|
};
|
105
|
+
const getNextLineDom = editor => {
|
106
|
+
let caret;
|
107
|
+
const sel = getNextLine(editor);
|
108
|
+
if (sel) {
|
109
|
+
const domElement = ReactEditor.toDOMRange(editor, sel.at);
|
110
|
+
const {
|
111
|
+
textContent,
|
112
|
+
parentElement
|
113
|
+
} = domElement?.commonAncestorContainer || {};
|
114
|
+
caret = textContent ? domElement : parentElement; // in mobile, if textContent in not available, it is pointing some <br> tag (getBoundingClientRect not working correctly for <br>), to avoid that, we are pointing the parent element as caret
|
115
|
+
}
|
116
|
+
|
117
|
+
return caret;
|
118
|
+
};
|
105
119
|
const updateAnchorEl = (setAnchorEl, editor, openAI, selectedElement) => {
|
106
120
|
try {
|
107
|
-
|
108
|
-
|
109
|
-
}
|
110
|
-
const
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
// selected text as caret
|
119
|
-
caret = selection.getRangeAt(0);
|
120
|
-
} else {
|
121
|
-
const sel = getNextLine(editor);
|
122
|
-
if (sel) {
|
123
|
-
const domElement = ReactEditor.toDOMRange(editor, sel.at);
|
124
|
-
const {
|
125
|
-
textContent,
|
126
|
-
parentElement
|
127
|
-
} = domElement?.commonAncestorContainer || {};
|
128
|
-
caret = textContent ? domElement : parentElement; // in mobile, if textContent in not available, it is pointing some <br> tag (getBoundingClientRect not working correctly for <br>), to avoid that, we are pointing the parent element as caret
|
129
|
-
}
|
130
|
-
}
|
131
|
-
|
132
|
-
const getBoundingClientRect = () => {
|
133
|
-
const editorContainer = document.querySelector("#slate-wrapper-scroll-container")?.getBoundingClientRect();
|
134
|
-
const caretPos = caret.getBoundingClientRect();
|
135
|
-
const sectionEle = selectedElement?.anchorEl || document.querySelector(".ed-section-inner");
|
136
|
-
const selectedSectionRect = sectionEle?.getBoundingClientRect();
|
137
|
-
const isAIInputReachTop = caretPos.height + caretPos.y <= editorContainer.y;
|
138
|
-
const yValue = isAIInputReachTop ? "-500" : caretPos.y; // -500 is to hide the AI input if the toolbar reached the top
|
121
|
+
const {
|
122
|
+
selection
|
123
|
+
} = editor || {};
|
124
|
+
const isHavingSelection = selection && !Range.isCollapsed(selection) && getSelectedText(editor).trim();
|
125
|
+
const caret = isHavingSelection ? getSlateDom(editor, editor.selection) : getNextLineDom(editor);
|
126
|
+
const caretPos = caret?.getBoundingClientRect() || {};
|
127
|
+
const editorContainer = document.querySelector("#slate-wrapper-scroll-container")?.getBoundingClientRect();
|
128
|
+
const sectionEle = selectedElement?.anchorEl || document.querySelector(".ed-section-inner");
|
129
|
+
const selectedSectionRect = sectionEle?.getBoundingClientRect() || {};
|
130
|
+
const isAIInputReachTop = caretPos.height + caretPos.y <= editorContainer.y;
|
131
|
+
const yValue = isAIInputReachTop ? "-500" : caretPos.y; // -500 is to hide the AI input if the toolbar reached the top
|
139
132
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
});
|
154
|
-
}
|
133
|
+
const rect = {
|
134
|
+
y: yValue,
|
135
|
+
height: caretPos.height,
|
136
|
+
top: yValue,
|
137
|
+
right: caretPos.right,
|
138
|
+
bottom: caretPos.bottom,
|
139
|
+
x: selectedSectionRect.x,
|
140
|
+
left: selectedSectionRect.left,
|
141
|
+
width: selectedSectionRect.width
|
142
|
+
};
|
143
|
+
setAnchorEl({
|
144
|
+
getBoundingClientRect: () => rect
|
145
|
+
});
|
155
146
|
} catch (err) {
|
156
147
|
console.log(err);
|
157
148
|
}
|
@@ -180,7 +171,7 @@ function PopoverAIInput({
|
|
180
171
|
const editor = useSlate();
|
181
172
|
const updateAnchor = useCallback(() => {
|
182
173
|
updateAnchorEl(setAnchorEl, editor, openAI, selectedEleRef.current);
|
183
|
-
}, [
|
174
|
+
}, [editor?.selection, openAI, selectedEleRef.current]);
|
184
175
|
useEditorScroll(editorWrapper, updateAnchor);
|
185
176
|
const onClickOutside = () => {
|
186
177
|
setAnchorEl(null);
|
@@ -293,9 +284,24 @@ function PopoverAIInput({
|
|
293
284
|
const onInputChange = e => {
|
294
285
|
setInputValue(e.target.value);
|
295
286
|
};
|
287
|
+
useEffect(() => {
|
288
|
+
if (openAI && getSelectedText(editor).trim()) {
|
289
|
+
const customSelection = document.querySelectorAll(".slate-highlight");
|
290
|
+
const selectionBg = "rgba(35, 131, 226, 0.35)";
|
291
|
+
if (customSelection?.length) {
|
292
|
+
customSelection?.forEach(el => el.style.background = selectionBg);
|
293
|
+
|
294
|
+
// if ai is opened, remove the window selection class and open then slate selection, To resolve: focussing on the ai input removes window selection automatically
|
295
|
+
const selection = window.getSelection();
|
296
|
+
if (selection) {
|
297
|
+
selection.removeAllRanges(); // Clears the selection
|
298
|
+
}
|
299
|
+
}
|
300
|
+
}
|
301
|
+
}, [editor.selection, openAI]);
|
296
302
|
return /*#__PURE__*/_jsxs("div", {
|
297
303
|
children: [/*#__PURE__*/_jsx(Popper, {
|
298
|
-
open: Boolean(openAI),
|
304
|
+
open: Boolean(openAI) && anchorEl,
|
299
305
|
anchorEl: anchorEl,
|
300
306
|
transition: true,
|
301
307
|
placement: "bottom-start",
|
@@ -39,7 +39,13 @@ const Styles = theme => ({
|
|
39
39
|
color: "#94A3B8",
|
40
40
|
opacity: 1 /* Firefox */,
|
41
41
|
fontFamily: '"Inter", sans-serif',
|
42
|
-
fontWeight: 500
|
42
|
+
fontWeight: 500,
|
43
|
+
whiteSpace: "nowrap",
|
44
|
+
overflow: "hidden",
|
45
|
+
textOverflow: "ellipsis"
|
46
|
+
},
|
47
|
+
"&:placeholder-shown": {
|
48
|
+
height: "auto !important"
|
43
49
|
},
|
44
50
|
"&::-ms-input-placeholder": {
|
45
51
|
/* Edge 12-18 */color: "#94A3B8",
|
@@ -115,7 +121,7 @@ const Styles = theme => ({
|
|
115
121
|
overflow: "auto",
|
116
122
|
// width: "240px",
|
117
123
|
minWidth: "200px",
|
118
|
-
border:
|
124
|
+
border: `1px solid ${theme?.palette?.editor?.popUpBorderColor}`,
|
119
125
|
padding: "6px"
|
120
126
|
},
|
121
127
|
optionWrapper: {
|
@@ -142,16 +148,28 @@ const Styles = theme => ({
|
|
142
148
|
gap: "8px"
|
143
149
|
},
|
144
150
|
"&:hover": {
|
145
|
-
|
151
|
+
backgroundColor: `${theme?.palette?.editor?.menuOptionSelectedOption} !important`,
|
152
|
+
"& svg path": {
|
153
|
+
stroke: `${theme?.palette?.editor?.textColor} !important`
|
154
|
+
},
|
155
|
+
"& svg": {
|
156
|
+
color: `${theme?.palette?.editor?.textColor} !important`
|
157
|
+
}
|
158
|
+
},
|
159
|
+
"& svg path": {
|
160
|
+
stroke: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
|
161
|
+
},
|
162
|
+
"& svg": {
|
163
|
+
color: `${theme?.palette?.editor?.closeButtonSvgStroke} !important`
|
146
164
|
},
|
147
165
|
"&.active": {
|
148
166
|
background: `${theme?.palette?.containers?.bg3 || "#E9F3FE"}`,
|
149
|
-
color:
|
167
|
+
color: theme?.palette?.editor?.menuOptionsSelectedTextColor,
|
150
168
|
"& svg path": {
|
151
|
-
stroke:
|
169
|
+
stroke: theme?.palette?.editor?.menuOptionsSelectedTextColor
|
152
170
|
},
|
153
171
|
"& svg": {
|
154
|
-
color:
|
172
|
+
color: `${theme?.palette?.editor?.menuOptionsSelectedTextColor} !important`
|
155
173
|
}
|
156
174
|
}
|
157
175
|
},
|
@@ -6,7 +6,8 @@ import { IconButton, Tooltip, Box } from "@mui/material";
|
|
6
6
|
import DeleteIcon from "@mui/icons-material/Delete";
|
7
7
|
import { GridSettingsIcon } from "../../common/iconslist";
|
8
8
|
import Icon from "../../common/Icon";
|
9
|
-
import { useEditorSelection } from "../../hooks/useMouseMove";
|
9
|
+
import { useEditorContext, useEditorSelection } from "../../hooks/useMouseMove";
|
10
|
+
import useCommonStyle from "../../commonStyle";
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
11
12
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
12
13
|
const accordionBtnStyleKeys = {
|
@@ -78,6 +79,10 @@ const Accordion = props => {
|
|
78
79
|
textColor,
|
79
80
|
bgColor
|
80
81
|
} = element;
|
82
|
+
const {
|
83
|
+
theme
|
84
|
+
} = useEditorContext();
|
85
|
+
const classes = useCommonStyle(theme);
|
81
86
|
const onToggle = () => {
|
82
87
|
setToggle(!toggle);
|
83
88
|
};
|
@@ -97,6 +102,7 @@ const Accordion = props => {
|
|
97
102
|
children: /*#__PURE__*/_jsx(IconButton, {
|
98
103
|
size: "small",
|
99
104
|
onClick: onSettings,
|
105
|
+
sx: classes.buttonMoreOption,
|
100
106
|
children: /*#__PURE__*/_jsx(GridSettingsIcon, {})
|
101
107
|
})
|
102
108
|
}), /*#__PURE__*/_jsx(Tooltip, {
|
@@ -105,6 +111,7 @@ const Accordion = props => {
|
|
105
111
|
children: /*#__PURE__*/_jsx(IconButton, {
|
106
112
|
size: "small",
|
107
113
|
onClick: onDelete,
|
114
|
+
sx: classes.buttonMoreOption2,
|
108
115
|
children: /*#__PURE__*/_jsx(DeleteIcon, {})
|
109
116
|
})
|
110
117
|
})]
|
@@ -250,10 +250,10 @@ function AppHeader(props) {
|
|
250
250
|
},
|
251
251
|
sx: {
|
252
252
|
mr: 2,
|
253
|
-
[theme
|
253
|
+
[theme?.breakpoints?.up("sm")]: {
|
254
254
|
display: "none"
|
255
255
|
},
|
256
|
-
[theme
|
256
|
+
[theme?.breakpoints.between("xs", "md")]: {
|
257
257
|
display: "block"
|
258
258
|
}
|
259
259
|
},
|
@@ -272,10 +272,10 @@ function AppHeader(props) {
|
|
272
272
|
},
|
273
273
|
sx: {
|
274
274
|
flexGrow: 1,
|
275
|
-
[theme
|
275
|
+
[theme?.breakpoints?.up("sm")]: {
|
276
276
|
display: "block"
|
277
277
|
},
|
278
|
-
[theme
|
278
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
279
279
|
display: "none"
|
280
280
|
},
|
281
281
|
"& img": {
|
@@ -293,10 +293,10 @@ function AppHeader(props) {
|
|
293
293
|
}) : null, appTitle]
|
294
294
|
}), /*#__PURE__*/_jsxs(Box, {
|
295
295
|
sx: {
|
296
|
-
[theme
|
296
|
+
[theme?.breakpoints?.up("sm")]: {
|
297
297
|
display: "block"
|
298
298
|
},
|
299
|
-
[theme
|
299
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
300
300
|
display: "none"
|
301
301
|
}
|
302
302
|
},
|
@@ -11,6 +11,7 @@ import { handleLinkType, windowVar } from "../../utils/helper";
|
|
11
11
|
import LinkSettings from "../../common/LinkSettings";
|
12
12
|
import Icon from "../../common/Icon";
|
13
13
|
import { useEditorContext } from "../../hooks/useMouseMove";
|
14
|
+
import useCommonStyle from "../../commonStyle";
|
14
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
15
16
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
16
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
@@ -36,6 +37,7 @@ const EditorButton = props => {
|
|
36
37
|
const [edit, setEdit] = useState(false);
|
37
38
|
const [openNav, setOpenNav] = useState(false);
|
38
39
|
const [openMoreOptions, setOpenMoreOptions] = useState(false);
|
40
|
+
const classes = useCommonStyle(appTheme);
|
39
41
|
const {
|
40
42
|
label,
|
41
43
|
bgColor,
|
@@ -136,6 +138,7 @@ const EditorButton = props => {
|
|
136
138
|
arrow: true,
|
137
139
|
children: /*#__PURE__*/_jsx(IconButton, {
|
138
140
|
onClick: onMenuClick("edit"),
|
141
|
+
sx: classes.buttonMoreOption,
|
139
142
|
children: /*#__PURE__*/_jsx(Icon, {
|
140
143
|
icon: "pagesSettings"
|
141
144
|
})
|
@@ -145,6 +148,7 @@ const EditorButton = props => {
|
|
145
148
|
arrow: true,
|
146
149
|
children: /*#__PURE__*/_jsx(IconButton, {
|
147
150
|
onClick: onMenuClick("nav"),
|
151
|
+
sx: classes.buttonMoreOption,
|
148
152
|
children: /*#__PURE__*/_jsx(Icon, {
|
149
153
|
icon: "link"
|
150
154
|
})
|
@@ -157,7 +161,8 @@ const EditorButton = props => {
|
|
157
161
|
sx: {
|
158
162
|
display: "inline-flex",
|
159
163
|
color: "rgba(0, 0, 0, 0.54)",
|
160
|
-
marginBottom: "0px !important"
|
164
|
+
marginBottom: "0px !important",
|
165
|
+
...classes.buttonMoreOption3
|
161
166
|
},
|
162
167
|
...btnProps,
|
163
168
|
children: /*#__PURE__*/_jsx(Icon, {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import { Node, Transforms } from "slate";
|
3
3
|
import { useSlateStatic, ReactEditor } from "slate-react";
|
4
|
-
import { Tooltip, IconButton } from "@mui/material";
|
4
|
+
import { Tooltip, IconButton, Box } from "@mui/material";
|
5
5
|
import DeleteIcon from "@mui/icons-material/Delete";
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
7
7
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
@@ -37,7 +37,7 @@ const CarouselItem = props => {
|
|
37
37
|
className: "element-toolbar hr",
|
38
38
|
style: {
|
39
39
|
top: "0px",
|
40
|
-
|
40
|
+
left: "0px"
|
41
41
|
},
|
42
42
|
contentEditable: false,
|
43
43
|
children: /*#__PURE__*/_jsx(Tooltip, {
|
@@ -53,7 +53,7 @@ const CarouselItem = props => {
|
|
53
53
|
return /*#__PURE__*/_jsx("div", {
|
54
54
|
...attributes,
|
55
55
|
className: "carousel-item",
|
56
|
-
children: /*#__PURE__*/_jsxs(
|
56
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
57
57
|
className: "carousel-item-inner",
|
58
58
|
style: {
|
59
59
|
minHeight: "50px",
|
@@ -61,6 +61,14 @@ const CarouselItem = props => {
|
|
61
61
|
justifyContent: "center",
|
62
62
|
alignItems: "center"
|
63
63
|
},
|
64
|
+
sx: {
|
65
|
+
"& .ico-grp-ss": {
|
66
|
+
position: "absolute",
|
67
|
+
top: "0px",
|
68
|
+
right: "0px",
|
69
|
+
display: "flex"
|
70
|
+
}
|
71
|
+
},
|
64
72
|
children: [children, /*#__PURE__*/_jsx(Toolbar, {})]
|
65
73
|
})
|
66
74
|
});
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React, { useState } from "react";
|
2
2
|
import { Box, IconButton, Popover } from "@mui/material";
|
3
|
-
import
|
3
|
+
import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
|
4
4
|
import Button from "../../common/Button";
|
5
5
|
import { colors } from "./defaultColors";
|
6
6
|
import ColorPicker from "./colorPicker.svg";
|
@@ -46,7 +46,7 @@ const SingleColorButton = ({
|
|
46
46
|
id: `in_${id}`,
|
47
47
|
onClick: handleMore,
|
48
48
|
className: "more-btn-cbs",
|
49
|
-
children: /*#__PURE__*/_jsx(
|
49
|
+
children: /*#__PURE__*/_jsx(KeyboardArrowDownRoundedIcon, {})
|
50
50
|
}) : null]
|
51
51
|
}, `ci_bs_row_${index}}`);
|
52
52
|
};
|
@@ -82,7 +82,7 @@ export const AllColors = props => {
|
|
82
82
|
children: /*#__PURE__*/_jsx(Box, {
|
83
83
|
className: "buttonsWrpr",
|
84
84
|
style: {
|
85
|
-
padding: "
|
85
|
+
padding: "5px"
|
86
86
|
},
|
87
87
|
children: all.map((m, i) => {
|
88
88
|
return /*#__PURE__*/_jsx(SingleColorButton, {
|
@@ -109,11 +109,13 @@ const ColorButtons = props => {
|
|
109
109
|
forMiniTool,
|
110
110
|
openColorTool,
|
111
111
|
onClose,
|
112
|
-
onColorPickerClick
|
112
|
+
onColorPickerClick,
|
113
|
+
defaultColors = []
|
113
114
|
} = props;
|
114
115
|
const [row1, ...restRows] = ColorChunks([]);
|
115
116
|
const [anchorEl, setAnchorEl] = useState(null);
|
116
117
|
const open = Boolean(anchorEl);
|
118
|
+
const firstRow = defaultColors?.length ? defaultColors : row1;
|
117
119
|
const handleMore = e => {
|
118
120
|
setAnchorEl(e.currentTarget);
|
119
121
|
};
|
@@ -131,7 +133,7 @@ const ColorButtons = props => {
|
|
131
133
|
sx: classes.colorButtons,
|
132
134
|
children: [forMiniTool ? null : /*#__PURE__*/_jsx(Box, {
|
133
135
|
className: "buttonsWrpr first",
|
134
|
-
children: [
|
136
|
+
children: [firstRow].map((m, i) => {
|
135
137
|
return /*#__PURE__*/_jsx(SingleColorButton, {
|
136
138
|
id: `p1_${id}`,
|
137
139
|
crs: m,
|
@@ -9,13 +9,18 @@ const ColorPickerStyles = theme => ({
|
|
9
9
|
width: "24px",
|
10
10
|
height: "24px",
|
11
11
|
marginRight: "8px",
|
12
|
-
border: "
|
12
|
+
border: "unset"
|
13
13
|
}
|
14
14
|
},
|
15
15
|
colorPopper: {
|
16
16
|
marginTop: "20px",
|
17
|
+
borderRadius: "7px !important",
|
17
18
|
"& .MuiPaper-root": {
|
18
|
-
backgroundColor: theme?.palette?.editor?.
|
19
|
+
backgroundColor: `${theme?.palette?.editor?.miniToolBarBackground} !important`,
|
20
|
+
background: `${theme?.palette?.editor?.miniToolBarBackground}`,
|
21
|
+
border: `1px solid ${theme?.palette?.editor?.miniToolBarBorder} !important`,
|
22
|
+
borderRadius: "7px !important",
|
23
|
+
padding: "0px 5px",
|
19
24
|
'@media only screen and (max-width: 600px)': {
|
20
25
|
marginTop: "-40px"
|
21
26
|
}
|
@@ -54,7 +59,7 @@ const ColorPickerStyles = theme => ({
|
|
54
59
|
width: "24px",
|
55
60
|
height: "24px",
|
56
61
|
margin: "0px 4px",
|
57
|
-
border: "
|
62
|
+
border: "unset"
|
58
63
|
}
|
59
64
|
},
|
60
65
|
colorPickerIcon: {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export const colors = ["#
|
1
|
+
export const colors = ["#000000", "#578CFF", "#A58CFF", "#46BBFF", "#FFC93A", "#33B24F", "#F06C83", "#64748B", "#82A9FE", "#C4B3FF", "#71CBFF", "#FFD055", "#61D57A", "#FA91A4", "#A2B0B9", "#A4C1FF", "#D7CBFF", "#9FDCFF", "#FFDC80", "#8AE59E", "#FCB0BE", "#E4ECF3", "#CDDCFF", "#E0D7FF", "#BEE7FF", "#FFE49E", "#B9F6C6", "#FDCAD3", "#FFFFFF", "#489FF8", "#FE7A00", "linear-gradient(327.62deg, #EBB9E0 13.53%, #9CEEE5 86.82%)", "linear-gradient(310.6deg, #7FA4F4 15.53%, #805EF5 83.64%)", "linear-gradient(95.19deg, #A831E7 4.17%, #F05339 88.89%)", "linear-gradient(90deg, #3F2AB7 12.5%, #0DC9B5 100%)", "#0F172A", "#2563EB", "#8360FD", "#19A9FC", "#FDB52A", "#0E8E2A", "#E1425E"
|
2
2
|
// "#E6E6E6",
|
3
|
-
// "#BEBEBE"
|
3
|
+
// "#BEBEBE",
|
4
4
|
];
|
@@ -0,0 +1,124 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { Node, Path, Transforms } from "slate";
|
3
|
+
import { ReactEditor, useSlateStatic } from "slate-react";
|
4
|
+
import { Box, useTheme } from "@mui/material";
|
5
|
+
import { DataViewProvider } from "./Providers/DataViewProvider";
|
6
|
+
import useDataViewStyles from "./styles";
|
7
|
+
import LayoutView from "./Layouts";
|
8
|
+
import FilterView from "./Layouts/FilterView";
|
9
|
+
import { insertLineBreakAtEndOfPath } from "../../utils/helper";
|
10
|
+
import { useEditorContext } from "../../hooks/useMouseMove";
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
12
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
13
|
+
const DataView = props => {
|
14
|
+
const {
|
15
|
+
theme: appTheme
|
16
|
+
} = useEditorContext();
|
17
|
+
const theme = useTheme();
|
18
|
+
const editor = useSlateStatic();
|
19
|
+
const {
|
20
|
+
attributes,
|
21
|
+
children,
|
22
|
+
element,
|
23
|
+
customProps
|
24
|
+
} = props;
|
25
|
+
const {
|
26
|
+
CHARACTERS,
|
27
|
+
readOnly
|
28
|
+
} = customProps || {};
|
29
|
+
const {
|
30
|
+
properties,
|
31
|
+
layouts,
|
32
|
+
rows,
|
33
|
+
title
|
34
|
+
} = element;
|
35
|
+
const classes = useDataViewStyles(theme, appTheme);
|
36
|
+
const path = ReactEditor.findPath(editor, element);
|
37
|
+
const users = CHARACTERS?.map(m => {
|
38
|
+
const name = [m?.first_name || "", m?.last_name || ""]?.join(" ").trim();
|
39
|
+
return {
|
40
|
+
value: m?.email,
|
41
|
+
label: name || m?.username || m?.email,
|
42
|
+
avatar: m?.avatar || null
|
43
|
+
};
|
44
|
+
});
|
45
|
+
const onDuplicate = () => {
|
46
|
+
try {
|
47
|
+
const newPath = ReactEditor.findPath(editor, element);
|
48
|
+
const dataViewNode = Node.get(editor, newPath);
|
49
|
+
const cloneNode = JSON.parse(JSON.stringify(dataViewNode));
|
50
|
+
const toPath = Path.next(Path.parent(newPath));
|
51
|
+
Transforms.insertNodes(editor, [{
|
52
|
+
type: "paragraph",
|
53
|
+
children: [{
|
54
|
+
...cloneNode
|
55
|
+
}]
|
56
|
+
}], {
|
57
|
+
at: toPath
|
58
|
+
});
|
59
|
+
} catch (err) {
|
60
|
+
console.log(err);
|
61
|
+
}
|
62
|
+
};
|
63
|
+
const onDelete = () => {
|
64
|
+
try {
|
65
|
+
const newPath = ReactEditor.findPath(editor, element);
|
66
|
+
Transforms.removeNodes(editor, {
|
67
|
+
at: newPath
|
68
|
+
});
|
69
|
+
} catch (err) {
|
70
|
+
console.log(err);
|
71
|
+
}
|
72
|
+
};
|
73
|
+
const onEnter = () => {
|
74
|
+
try {
|
75
|
+
const newPath = ReactEditor.findPath(editor, element);
|
76
|
+
const toPath = Path.previous(Path.parent(newPath));
|
77
|
+
insertLineBreakAtEndOfPath(editor, toPath);
|
78
|
+
} catch (err) {
|
79
|
+
console.log(err);
|
80
|
+
}
|
81
|
+
};
|
82
|
+
const onTitleChange = value => {
|
83
|
+
try {
|
84
|
+
Transforms.setNodes(editor, {
|
85
|
+
title: value
|
86
|
+
}, {
|
87
|
+
at: path
|
88
|
+
});
|
89
|
+
} catch (err) {
|
90
|
+
console.log(err);
|
91
|
+
}
|
92
|
+
};
|
93
|
+
return /*#__PURE__*/_jsx(Box, {
|
94
|
+
...attributes,
|
95
|
+
className: "fe-dataview",
|
96
|
+
sx: classes.root,
|
97
|
+
contentEditable: false,
|
98
|
+
"data-title": title,
|
99
|
+
children: /*#__PURE__*/_jsxs(DataViewProvider, {
|
100
|
+
data: {
|
101
|
+
properties,
|
102
|
+
layouts,
|
103
|
+
rows
|
104
|
+
},
|
105
|
+
path: path,
|
106
|
+
editor: editor,
|
107
|
+
title: title,
|
108
|
+
users: users,
|
109
|
+
children: [/*#__PURE__*/_jsx(FilterView, {
|
110
|
+
classes: classes,
|
111
|
+
onEnter: onEnter,
|
112
|
+
onDelete: onDelete,
|
113
|
+
onDuplicate: onDuplicate,
|
114
|
+
readOnly: readOnly,
|
115
|
+
title: title,
|
116
|
+
onTitleChange: onTitleChange
|
117
|
+
}), /*#__PURE__*/_jsx(LayoutView, {
|
118
|
+
readOnly: readOnly,
|
119
|
+
children: children
|
120
|
+
})]
|
121
|
+
})
|
122
|
+
});
|
123
|
+
};
|
124
|
+
export default DataView;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import ToolbarIcon from "../../common/ToolbarIcon";
|
3
|
+
import Icon from "../../common/Icon";
|
4
|
+
import { insertDataView } from "../../utils/dataView";
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
6
|
+
const DataViewButton = props => {
|
7
|
+
const {
|
8
|
+
editor,
|
9
|
+
icoBtnType
|
10
|
+
} = props;
|
11
|
+
const onClick = () => {
|
12
|
+
insertDataView(editor);
|
13
|
+
};
|
14
|
+
return /*#__PURE__*/_jsx(ToolbarIcon, {
|
15
|
+
title: "Dynamic Table",
|
16
|
+
onClick: onClick,
|
17
|
+
icon: /*#__PURE__*/_jsx(Icon, {
|
18
|
+
icon: "dataView"
|
19
|
+
}),
|
20
|
+
icoBtnType: icoBtnType
|
21
|
+
});
|
22
|
+
};
|
23
|
+
export default DataViewButton;
|