@flozy/editor 5.4.0 → 5.4.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.
Files changed (192) hide show
  1. package/dist/Editor/ChatEditor.js +34 -25
  2. package/dist/Editor/CommonEditor.js +15 -29
  3. package/dist/Editor/Editor.css +18 -100
  4. package/dist/Editor/Elements/AI/AIInput.js +1 -0
  5. package/dist/Editor/Elements/AI/CustomSelect.js +11 -19
  6. package/dist/Editor/Elements/AI/PopoverAIInput.js +52 -58
  7. package/dist/Editor/Elements/AI/Styles.js +6 -24
  8. package/dist/Editor/Elements/Accordion/Accordion.js +1 -8
  9. package/dist/Editor/Elements/AppHeader/AppHeader.js +6 -6
  10. package/dist/Editor/Elements/Button/EditorButton.js +2 -9
  11. package/dist/Editor/Elements/Carousel/CarouselItem.js +3 -11
  12. package/dist/Editor/Elements/Color Picker/ColorButtons.js +5 -7
  13. package/dist/Editor/Elements/Color Picker/Styles.js +3 -7
  14. package/dist/Editor/Elements/Color Picker/defaultColors.js +2 -2
  15. package/dist/Editor/Elements/Divider/Divider.js +20 -36
  16. package/dist/Editor/Elements/Embed/Image.js +16 -51
  17. package/dist/Editor/Elements/Embed/Video.js +3 -26
  18. package/dist/Editor/Elements/Form/Form.js +2 -39
  19. package/dist/Editor/Elements/Form/FormElements/FormCheckbox.js +1 -7
  20. package/dist/Editor/Elements/Form/FormElements/FormDate.js +1 -7
  21. package/dist/Editor/Elements/Form/FormElements/FormEmail.js +1 -7
  22. package/dist/Editor/Elements/Form/FormElements/FormNumbers.js +1 -7
  23. package/dist/Editor/Elements/Form/FormElements/FormRadioButton.js +1 -7
  24. package/dist/Editor/Elements/Form/FormElements/FormText.js +1 -7
  25. package/dist/Editor/Elements/Form/FormElements/FormTextArea.js +1 -6
  26. package/dist/Editor/Elements/Form/FormPopup.js +9 -12
  27. package/dist/Editor/Elements/FreeGrid/FreeGrid.js +1 -1
  28. package/dist/Editor/Elements/FreeGrid/FreeGridItem.js +1 -20
  29. package/dist/Editor/Elements/FreeGrid/breakpointConstants.js +4 -4
  30. package/dist/Editor/Elements/FreeGrid/styles.js +1 -2
  31. package/dist/Editor/Elements/Grid/GridButton.js +2 -2
  32. package/dist/Editor/Elements/Grid/GridItem.js +36 -47
  33. package/dist/Editor/Elements/Grid/Styles.js +0 -50
  34. package/dist/Editor/Elements/Link/LinkButton.js +1 -1
  35. package/dist/Editor/Elements/List/CheckList.js +1 -2
  36. package/dist/Editor/Elements/Search/SearchAttachment.js +0 -1
  37. package/dist/Editor/Elements/Search/SearchButton.js +0 -1
  38. package/dist/Editor/Elements/Signature/Signature.css +1 -1
  39. package/dist/Editor/Elements/Signature/SignatureOptions/TypeSignature.js +2 -2
  40. package/dist/Editor/Elements/Signature/SignaturePopup.js +52 -17
  41. package/dist/Editor/Elements/SimpleText/index.js +1 -8
  42. package/dist/Editor/Elements/SimpleText/style.js +1 -20
  43. package/dist/Editor/Elements/Table/Styles.js +79 -82
  44. package/dist/Editor/Elements/Table/Table.js +140 -258
  45. package/dist/Editor/Elements/Table/TableCell.js +111 -365
  46. package/dist/Editor/Elements/Table/TablePopup.js +3 -9
  47. package/dist/Editor/Elements/Table/TableRow.js +2 -10
  48. package/dist/Editor/Elements/TopBanner/TopBanner.js +1 -2
  49. package/dist/Editor/MiniEditor.js +1 -15
  50. package/dist/Editor/Styles/EditorStyles.js +4 -13
  51. package/dist/Editor/Toolbar/FormatTools/BlockButton.js +0 -10
  52. package/dist/Editor/Toolbar/FormatTools/Dropdown.js +12 -7
  53. package/dist/Editor/Toolbar/FormatTools/FontFamilyAutocomplete.js +4 -26
  54. package/dist/Editor/Toolbar/FormatTools/MarkButton.js +0 -3
  55. package/dist/Editor/Toolbar/FormatTools/TextSize.js +5 -5
  56. package/dist/Editor/Toolbar/Mini/MiniToolbar.js +6 -3
  57. package/dist/Editor/Toolbar/Mini/Styles.js +1 -4
  58. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/InfinityAITool.js +3 -7
  59. package/dist/Editor/Toolbar/PopupTool/MiniTextFormat/index.js +4 -6
  60. package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +15 -19
  61. package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +57 -555
  62. package/dist/Editor/Toolbar/PopupTool/TextFormat.js +16 -73
  63. package/dist/Editor/Toolbar/PopupTool/index.js +5 -3
  64. package/dist/Editor/Toolbar/Toolbar.js +0 -6
  65. package/dist/Editor/Toolbar/toolbarGroups.js +0 -4
  66. package/dist/Editor/assets/svg/BrainIcon.js +2 -2
  67. package/dist/Editor/assets/svg/SettingsIcon.js +4 -4
  68. package/dist/Editor/common/ColorPickerButton.js +45 -85
  69. package/dist/Editor/common/DnD/Draggable.js +1 -2
  70. package/dist/Editor/common/FontLoader/FontLoader.js +4 -4
  71. package/dist/Editor/common/Icon.js +20 -23
  72. package/dist/Editor/common/ImageSelector/Options/Upload.js +1 -2
  73. package/dist/Editor/common/ImageSelector/Styles.js +6 -47
  74. package/dist/Editor/common/ImageSelector/UploadStyles.js +6 -18
  75. package/dist/Editor/common/LinkSettings/NavComponents.js +1 -2
  76. package/dist/Editor/common/LinkSettings/index.js +1 -2
  77. package/dist/Editor/common/MentionsPopup/Styles.js +8 -143
  78. package/dist/Editor/common/MentionsPopup/index.js +1 -1
  79. package/dist/Editor/common/RnD/ElementSettings/Settings/FormSettings.js +12 -108
  80. package/dist/Editor/common/RnD/GuideLines/styles.js +3 -3
  81. package/dist/Editor/common/RnD/ShadowElement.js +1 -1
  82. package/dist/Editor/common/RnD/SwitchViewport/SwitchViewport.js +2 -14
  83. package/dist/Editor/common/RnD/Utils/gridDropItem.js +6 -9
  84. package/dist/Editor/common/RnD/VirtualElement/index.js +1 -5
  85. package/dist/Editor/common/RnD/index.js +2 -3
  86. package/dist/Editor/common/Section/index.js +3 -3
  87. package/dist/Editor/common/Section/styles.js +1 -5
  88. package/dist/Editor/common/Shorthands/elements.js +1 -13
  89. package/dist/Editor/common/StyleBuilder/fieldStyle.js +1 -2
  90. package/dist/Editor/common/StyleBuilder/fieldTypes/backgroundImage.js +3 -9
  91. package/dist/Editor/common/StyleBuilder/fieldTypes/bannerSpacing.js +7 -35
  92. package/dist/Editor/common/StyleBuilder/fieldTypes/borderRadius.js +2 -15
  93. package/dist/Editor/common/StyleBuilder/fieldTypes/card.js +2 -10
  94. package/dist/Editor/common/StyleBuilder/fieldTypes/color.js +1 -2
  95. package/dist/Editor/common/StyleBuilder/fieldTypes/fontSize.js +1 -1
  96. package/dist/Editor/common/StyleBuilder/fieldTypes/icons.js +0 -2
  97. package/dist/Editor/common/StyleBuilder/fieldTypes/index.js +1 -3
  98. package/dist/Editor/common/StyleBuilder/fieldTypes/radiusStyle.js +11 -11
  99. package/dist/Editor/common/StyleBuilder/fieldTypes/saveAsTemplate.js +6 -22
  100. package/dist/Editor/common/StyleBuilder/fieldTypes/selectBox.js +2 -21
  101. package/dist/Editor/common/StyleBuilder/fieldTypes/text.js +4 -20
  102. package/dist/Editor/common/StyleBuilder/fieldTypes/textOptions.js +2 -12
  103. package/dist/Editor/common/StyleBuilder/formStyle.js +149 -268
  104. package/dist/Editor/common/StyleBuilder/index.js +20 -101
  105. package/dist/Editor/common/StyleBuilder/pageSettingsStyle.js +0 -4
  106. package/dist/Editor/common/StyleBuilder/tableStyle.js +25 -69
  107. package/dist/Editor/common/SwipeableDrawer/style.js +4 -15
  108. package/dist/Editor/common/ToolbarIcon.js +1 -1
  109. package/dist/Editor/common/Uploader.js +36 -46
  110. package/dist/Editor/common/iconListV2.js +60 -616
  111. package/dist/Editor/common/iconslist.js +17 -23
  112. package/dist/Editor/commonStyle.js +11 -417
  113. package/dist/Editor/helper/deserialize/index.js +1 -4
  114. package/dist/Editor/helper/index.js +4 -17
  115. package/dist/Editor/helper/theme.js +1 -24
  116. package/dist/Editor/hooks/useMouseMove.js +2 -5
  117. package/dist/Editor/plugins/withCustomDeleteBackward.js +4 -36
  118. package/dist/Editor/plugins/withEmbeds.js +26 -30
  119. package/dist/Editor/plugins/withHTML.js +10 -61
  120. package/dist/Editor/plugins/withLayout.js +0 -1
  121. package/dist/Editor/utils/SlateUtilityFunctions.js +12 -39
  122. package/dist/Editor/utils/brains.js +1 -1
  123. package/dist/Editor/utils/button.js +4 -4
  124. package/dist/Editor/utils/chatEditor/SlateUtilityFunctions.js +1 -26
  125. package/dist/Editor/utils/customHooks/useResize.js +4 -7
  126. package/dist/Editor/utils/customHooks/useTableResize.js +2 -6
  127. package/dist/Editor/utils/embed.js +1 -2
  128. package/dist/Editor/utils/events.js +1 -0
  129. package/dist/Editor/utils/font.js +4 -11
  130. package/dist/Editor/utils/formfield.js +4 -8
  131. package/dist/Editor/utils/helper.js +2 -103
  132. package/dist/Editor/utils/insertNewLine.js +1 -19
  133. package/dist/Editor/utils/pageSettings.js +2 -14
  134. package/dist/Editor/utils/serializeToText.js +0 -2
  135. package/dist/Editor/utils/table.js +24 -228
  136. package/package.json +2 -2
  137. package/dist/Editor/Elements/DataView/DataView.js +0 -124
  138. package/dist/Editor/Elements/DataView/DataViewButton.js +0 -23
  139. package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +0 -67
  140. package/dist/Editor/Elements/DataView/Layouts/DataTypes/CheckType.js +0 -33
  141. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +0 -162
  142. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/SimpleSelect.js +0 -40
  143. package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +0 -67
  144. package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +0 -35
  145. package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +0 -39
  146. package/dist/Editor/Elements/DataView/Layouts/DataTypes/NumberType.js +0 -30
  147. package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +0 -30
  148. package/dist/Editor/Elements/DataView/Layouts/DataTypes/SelectType.js +0 -35
  149. package/dist/Editor/Elements/DataView/Layouts/DataTypes/TextType.js +0 -36
  150. package/dist/Editor/Elements/DataView/Layouts/DataTypes/index.js +0 -17
  151. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseField.js +0 -29
  152. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/ChooseSort.js +0 -38
  153. package/dist/Editor/Elements/DataView/Layouts/FilterSort/SortOptions/index.js +0 -74
  154. package/dist/Editor/Elements/DataView/Layouts/FilterSort/index.js +0 -64
  155. package/dist/Editor/Elements/DataView/Layouts/FilterSort/styles.js +0 -106
  156. package/dist/Editor/Elements/DataView/Layouts/FilterView.js +0 -174
  157. package/dist/Editor/Elements/DataView/Layouts/Formula.js +0 -29
  158. package/dist/Editor/Elements/DataView/Layouts/Options/AddOptions.js +0 -113
  159. package/dist/Editor/Elements/DataView/Layouts/Options/AddProperty.js +0 -37
  160. package/dist/Editor/Elements/DataView/Layouts/Options/AllProperties.js +0 -111
  161. package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +0 -60
  162. package/dist/Editor/Elements/DataView/Layouts/Options/ColumnsList.js +0 -36
  163. package/dist/Editor/Elements/DataView/Layouts/Options/Constants.js +0 -101
  164. package/dist/Editor/Elements/DataView/Layouts/Options/EditOption.js +0 -160
  165. package/dist/Editor/Elements/DataView/Layouts/Options/EditProperty.js +0 -190
  166. package/dist/Editor/Elements/DataView/Layouts/Options/FilterProperty.js +0 -42
  167. package/dist/Editor/Elements/DataView/Layouts/Options/PropertyList.js +0 -30
  168. package/dist/Editor/Elements/DataView/Layouts/Options/index.js +0 -110
  169. package/dist/Editor/Elements/DataView/Layouts/Options/styles.js +0 -179
  170. package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +0 -112
  171. package/dist/Editor/Elements/DataView/Layouts/TableView.js +0 -227
  172. package/dist/Editor/Elements/DataView/Layouts/ViewData.js +0 -80
  173. package/dist/Editor/Elements/DataView/Layouts/colStyles.js +0 -10
  174. package/dist/Editor/Elements/DataView/Layouts/index.js +0 -25
  175. package/dist/Editor/Elements/DataView/Providers/DataViewProvider.js +0 -281
  176. package/dist/Editor/Elements/DataView/Utils/globalSearch.js +0 -15
  177. package/dist/Editor/Elements/DataView/Utils/multiSortRows.js +0 -74
  178. package/dist/Editor/Elements/DataView/styles.js +0 -154
  179. package/dist/Editor/Elements/Table/AddRowCol.js +0 -77
  180. package/dist/Editor/Elements/Table/DragButton.js +0 -142
  181. package/dist/Editor/Elements/Table/DragStyles.js +0 -70
  182. package/dist/Editor/Elements/Table/Draggable.js +0 -25
  183. package/dist/Editor/Elements/Table/Droppable.js +0 -53
  184. package/dist/Editor/Elements/Table/TableTool.js +0 -101
  185. package/dist/Editor/Elements/Table/tableHelper.js +0 -71
  186. package/dist/Editor/assets/svg/TableIcons.js +0 -220
  187. package/dist/Editor/common/Select/index.js +0 -20
  188. package/dist/Editor/common/Select/styles.js +0 -17
  189. package/dist/Editor/common/StyleBuilder/fieldTypes/lineSpacing.js +0 -79
  190. package/dist/Editor/helper/enforceDateFormat.js +0 -41
  191. package/dist/Editor/hooks/useTable.js +0 -210
  192. package/dist/Editor/utils/dataView.js +0 -43
@@ -1,165 +1,121 @@
1
- import React, { useEffect, useRef, useState } from "react";
2
- import { Editor, Transforms } from "slate";
3
- import { ReactEditor, useSelected, useSlateStatic } from "slate-react";
4
- import { Box, IconButton, Tooltip, Table as TableComp, TableBody, useTheme, Popper, ClickAwayListener } from "@mui/material";
1
+ import React, { useState } from "react";
2
+ import { Transforms } from "slate";
3
+ import { useSelected, useSlateStatic } from "slate-react";
4
+ import { Box, IconButton, Tooltip, Table as TableComp, TableBody, useTheme } from "@mui/material";
5
+ import AlignHorizontalLeftIcon from "@mui/icons-material/AlignHorizontalLeft";
6
+ import AlignHorizontalRightIcon from "@mui/icons-material/AlignHorizontalRight";
7
+ import AlignVerticalTopIcon from "@mui/icons-material/AlignVerticalTop";
8
+ import AlignVerticalBottomIcon from "@mui/icons-material/AlignVerticalBottom";
9
+ import DeleteForeverIcon from "@mui/icons-material/DeleteForever";
10
+ import MoreVertIcon from "@mui/icons-material/MoreVert";
11
+ import SettingsIcon from "@mui/icons-material/Settings";
12
+ import DeleteCellIcon from "./DeleteCellIcon";
13
+ import DeleteRowIcon from "./DeleteRowIcon";
5
14
  import { TableUtil } from "../../utils/table";
6
15
  import TablePopup from "./TablePopup";
7
- import { useEditorContext, useEditorSelection } from "../../hooks/useMouseMove";
16
+ import { useEditorSelection } from "../../hooks/useMouseMove";
8
17
  import TableStyles from "./Styles";
9
18
  import "./table.css";
10
19
  import { groupByBreakpoint } from "../../helper/theme";
11
- import useTable, { TableProvider, getDefaultTableSelection } from "../../hooks/useTable";
12
- import AddRowCol from "./AddRowCol";
13
- import TableTool from "./TableTool";
14
- import { MoreIcon, SettingsIcon } from "../../assets/svg/TableIcons";
15
- import { getSelectedCls } from "../../utils/helper";
16
- import SwipeableDrawerComponent from "../../common/SwipeableDrawer";
17
20
  import { jsx as _jsx } from "react/jsx-runtime";
18
21
  import { jsxs as _jsxs } from "react/jsx-runtime";
19
- const hideRowDragBtns = (hide, dragRowBtnCls) => {
20
- const rowDragBtns = document.querySelectorAll(`.${dragRowBtnCls}`);
21
- if (rowDragBtns?.length) {
22
- rowDragBtns?.forEach(btn => btn.style.display = hide);
22
+ const TABLE_MENUS = [{
23
+ Icon: AlignHorizontalRightIcon,
24
+ text: "Insert Columns to the Right",
25
+ action: {
26
+ type: "insertColumn",
27
+ position: "after"
23
28
  }
24
- };
25
- const ToolTableComponent = props => {
26
- const {
27
- handleAction,
28
- editorTheme
29
- } = props;
30
- const {
31
- updateTableSelection
32
- } = useTable();
33
- return /*#__PURE__*/_jsx("div", {
34
- children: /*#__PURE__*/_jsx(TableTool, {
35
- theme: editorTheme,
36
- handleToolAction: (type, option) => {
37
- handleAction(type, option);
38
- if (type === "duplicate") {
39
- updateTableSelection(getDefaultTableSelection());
40
- }
41
- }
42
- })
43
- });
44
- };
45
- const MoreTableSettings = props => {
46
- const {
47
- exandTools,
48
- handleAction,
49
- editorTheme,
50
- setExpandTools
51
- } = props;
52
- const isMobile = window.matchMedia("(max-width: 899px)")?.matches || false;
53
- return isMobile ? /*#__PURE__*/_jsx(SwipeableDrawerComponent, {
54
- open: Boolean(exandTools),
55
- onClose: () => {
56
- setExpandTools(false);
57
- },
58
- swipeableDrawer: false,
59
- children: /*#__PURE__*/_jsx(ToolTableComponent, {
60
- handleAction: handleAction,
61
- editorTheme: editorTheme
62
- })
63
- }) : /*#__PURE__*/_jsx(Popper, {
64
- open: Boolean(exandTools),
65
- anchorEl: exandTools,
66
- contentEditable: false,
67
- sx: {
68
- zIndex: 2000
69
- },
70
- placement: "bottom-start",
71
- children: /*#__PURE__*/_jsx(ClickAwayListener, {
72
- onClickAway: () => setExpandTools(false),
73
- children: /*#__PURE__*/_jsx(ToolTableComponent, {
74
- handleAction: handleAction,
75
- editorTheme: editorTheme
76
- })
77
- })
78
- });
79
- };
80
- const ToolBar = props => {
81
- const {
82
- selected,
83
- showTool,
84
- classes,
85
- handleExpand,
86
- handleAction,
87
- exandTools,
88
- openSetttings
89
- } = props;
90
- const {
91
- getSelectedCells
92
- } = useTable();
93
- const viewTool = selected && !showTool && getSelectedCells()?.length <= 1;
94
- return viewTool ? /*#__PURE__*/_jsxs(Box, {
95
- component: "div",
96
- contentEditable: false,
97
- className: `tableToolBar ${exandTools ? "active" : ""}`,
98
- sx: classes.tableToolBar,
99
- children: [/*#__PURE__*/_jsx(Tooltip, {
100
- title: "Settings",
101
- arrow: true,
102
- onClick: () => handleAction("settings"),
103
- children: /*#__PURE__*/_jsx(IconButton, {
104
- className: getSelectedCls("toolbtn toggle", openSetttings),
105
- children: /*#__PURE__*/_jsx(SettingsIcon, {})
106
- })
107
- }), /*#__PURE__*/_jsx(Tooltip, {
108
- title: "Show Tools",
109
- arrow: true,
110
- onClick: handleExpand,
111
- children: /*#__PURE__*/_jsx(IconButton, {
112
- className: getSelectedCls("toolbtn toggle", exandTools),
113
- children: /*#__PURE__*/_jsx(MoreIcon, {})
114
- })
115
- })]
116
- }) : null;
117
- };
29
+ }, {
30
+ Icon: AlignHorizontalLeftIcon,
31
+ text: "Insert Columns to the Left",
32
+ action: {
33
+ type: "insertColumn",
34
+ position: "at"
35
+ }
36
+ }, {
37
+ Icon: AlignVerticalTopIcon,
38
+ text: "Insert Row Above",
39
+ action: {
40
+ type: "insertRow",
41
+ positon: "at"
42
+ }
43
+ }, {
44
+ Icon: AlignVerticalBottomIcon,
45
+ text: "Insert Row Below",
46
+ action: {
47
+ type: "insertRow",
48
+ position: "after"
49
+ }
50
+ }, {
51
+ Icon: DeleteRowIcon,
52
+ text: "Delete Row",
53
+ action: {
54
+ type: "deleteRow"
55
+ }
56
+ }, {
57
+ Icon: DeleteCellIcon,
58
+ text: "Delete Column",
59
+ action: {
60
+ type: "deleteColumn"
61
+ }
62
+ }, {
63
+ Icon: SettingsIcon,
64
+ text: "Settings",
65
+ action: {
66
+ type: "settings"
67
+ }
68
+ }, {
69
+ Icon: DeleteForeverIcon,
70
+ text: "Remove Table",
71
+ action: {
72
+ type: "remove"
73
+ }
74
+ }];
118
75
  const Table = props => {
119
76
  const theme = useTheme();
120
- const {
121
- theme: editorTheme
122
- } = useEditorContext();
123
77
  const {
124
78
  element,
125
79
  attributes,
126
80
  children,
127
81
  customProps
128
82
  } = props;
129
- const classes = TableStyles(editorTheme);
83
+ const classes = TableStyles();
130
84
  const {
131
- readOnly,
132
- isMobile
85
+ readOnly
133
86
  } = customProps;
134
87
  const [openSetttings, setOpenSettings] = useState(false);
135
- const [exandTools, setExpandTools] = useState(null);
88
+ const [exandTools, setExpandTools] = useState(false);
136
89
  const {
137
90
  bgColor,
138
91
  borderColor,
139
- xsHidden,
140
- fontFamily,
141
- fontWeight,
142
- textSize,
143
- textColor
92
+ xsHidden
144
93
  } = element;
145
94
  const editor = useSlateStatic();
146
95
  const selected = useSelected();
147
96
  const table = new TableUtil(editor);
148
97
  const tableProps = table.getTableProps();
149
98
  const [showTool] = useEditorSelection(editor);
150
- const tableRef = useRef(null);
151
- const containerRef = useRef(null);
152
- const path = ReactEditor.findPath(editor, element);
153
- const dragRowBtnCls = `table-${path?.toString()?.replaceAll(",", "-")}-row-drag-btn`;
154
- const handleAction = type => {
99
+ const handleAction = ({
100
+ type,
101
+ position
102
+ }) => () => {
155
103
  Transforms.select(editor, editor.selection);
156
104
  switch (type) {
157
- case "delete":
158
- table.removeTable();
105
+ case "insertRow":
106
+ table.insertRow(position);
107
+ break;
108
+ case "insertColumn":
109
+ table.insertColumn(position);
110
+ break;
111
+ case "deleteRow":
112
+ table.deleteRow();
159
113
  break;
160
- case "duplicate":
161
- table.duplicateTable();
162
- setExpandTools(false);
114
+ case "deleteColumn":
115
+ table.deleteColumn();
116
+ break;
117
+ case "remove":
118
+ table.removeTable();
163
119
  break;
164
120
  case "settings":
165
121
  if (tableProps) {
@@ -170,16 +126,42 @@ const Table = props => {
170
126
  return;
171
127
  }
172
128
  };
173
- const handleExpand = e => {
174
- setExpandTools(prev => prev ? false : e.currentTarget);
129
+ const handleExpand = () => {
130
+ setExpandTools(!exandTools);
131
+ };
132
+ const ToolBar = () => {
133
+ return selected && !showTool ? /*#__PURE__*/_jsxs(Box, {
134
+ component: "div",
135
+ contentEditable: false,
136
+ className: `tableToolBar ${exandTools ? "active" : ""}`,
137
+ sx: classes.tableToolBar,
138
+ children: [/*#__PURE__*/_jsx(Tooltip, {
139
+ title: "Show Tools",
140
+ arrow: true,
141
+ onClick: handleExpand,
142
+ children: /*#__PURE__*/_jsx(IconButton, {
143
+ className: "toolbtn toggle",
144
+ children: /*#__PURE__*/_jsx(MoreVertIcon, {})
145
+ })
146
+ }), TABLE_MENUS.map(({
147
+ Icon,
148
+ text,
149
+ action
150
+ }) => {
151
+ return /*#__PURE__*/_jsx(Tooltip, {
152
+ title: text,
153
+ arrow: true,
154
+ children: /*#__PURE__*/_jsx(IconButton, {
155
+ className: `toolbtn ${action?.type}`,
156
+ onClick: handleAction(action),
157
+ children: /*#__PURE__*/_jsx(Icon, {})
158
+ })
159
+ }, text);
160
+ })]
161
+ }) : null;
175
162
  };
176
- useEffect(() => {
177
- if (!selected) {
178
- setExpandTools(false);
179
- }
180
- }, [selected]);
181
163
  const onSettings = () => {
182
- setOpenSettings(!openSetttings);
164
+ setOpenSettings(true);
183
165
  };
184
166
  const onSave = data => {
185
167
  const updateData = {
@@ -201,128 +183,28 @@ const Table = props => {
201
183
  lg: "inline-block"
202
184
  }
203
185
  }, theme);
204
- const addRow = () => {
205
- const lastRow = element?.rows - 1;
206
- const firstCol = 0;
207
- const lastRowPath = [...path, lastRow, firstCol];
208
- const position = Editor.start(editor, lastRowPath);
209
- const selection = {
210
- anchor: position,
211
- focus: position
212
- };
213
-
214
- // select the last row first col to insert row below
215
- Transforms.select(editor, selection);
216
- table.insertRow("after");
217
- Transforms.deselect(editor);
218
- };
219
- const addCol = () => {
220
- const lastCol = element?.columns - 1;
221
- const firstRow = 0;
222
- const lastColumnPath = [...path, firstRow, lastCol];
223
- const position = Editor.start(editor, lastColumnPath);
224
- const selection = {
225
- anchor: position,
226
- focus: position
227
- };
228
-
229
- // select the last row first col to insert row below
230
- Transforms.select(editor, selection);
231
- table.insertColumn("after");
232
- Transforms.deselect(editor);
233
- };
234
- const handleRowDragBtns = () => {
235
- if (containerRef?.current?.scrollLeft > 0) {
236
- hideRowDragBtns("none", dragRowBtnCls);
237
- } else {
238
- hideRowDragBtns("", dragRowBtnCls);
239
- }
240
- };
241
- const handleScroll = () => {
242
- handleRowDragBtns();
243
- };
244
- const onMouseOver = () => {
245
- if (!isMobile) {
246
- containerRef?.current?.classList.remove("hideScroll");
247
- }
248
- };
249
- const onMouseLeave = () => {
250
- if (!isMobile) {
251
- containerRef?.current?.classList.add("hideScroll");
252
- }
253
- };
254
- const commonAddBtnProps = {
255
- tableRef,
256
- containerRef,
257
- readOnly,
258
- tableNode: element
259
- };
260
- return /*#__PURE__*/_jsxs(TableProvider, {
261
- editor: editor,
262
- otherProps: {
263
- dragRowBtnCls,
264
- tablePath: path,
265
- openSetttings,
266
- exandTools
186
+ return /*#__PURE__*/_jsxs("div", {
187
+ style: {
188
+ minWidth: "100%",
189
+ maxWidth: "100%",
190
+ position: "relative"
267
191
  },
268
- children: [/*#__PURE__*/_jsxs("div", {
192
+ children: [/*#__PURE__*/_jsx(TableComp, {
193
+ className: readOnly ? "readOnly" : "",
194
+ sx: {
195
+ ...classes.table,
196
+ ...tableSX
197
+ },
269
198
  style: {
270
- minWidth: "100%",
271
- maxWidth: "100%",
272
- position: "relative",
273
- overflowX: "auto",
274
- display: "flex",
275
- paddingTop: "10px",
276
- lineHeight: 1.43
199
+ background: bgColor,
200
+ border: borderColor ? `1px solid ${borderColor}` : "",
201
+ width: "auto"
277
202
  },
278
- ref: containerRef,
279
- onScroll: handleScroll,
280
- onMouseOver: onMouseOver,
281
- onMouseLeave: onMouseLeave,
282
- className: "custom-scroll",
283
- children: [/*#__PURE__*/_jsx(TableComp, {
284
- className: readOnly ? "readOnly" : "",
285
- sx: {
286
- ...classes.table,
287
- ...tableSX
288
- },
289
- style: {
290
- background: bgColor,
291
- border: borderColor ? `1px solid ${borderColor}` : "",
292
- width: "auto",
293
- fontFamily,
294
- fontWeight,
295
- fontSize: textSize,
296
- color: textColor
297
- },
298
- ref: tableRef,
299
- children: /*#__PURE__*/_jsx(TableBody, {
300
- ...attributes,
301
- children: children
302
- })
303
- }), /*#__PURE__*/_jsx(AddRowCol, {
304
- ...commonAddBtnProps,
305
- addType: "col",
306
- onAdd: addCol
307
- })]
308
- }), /*#__PURE__*/_jsx(AddRowCol, {
309
- ...commonAddBtnProps,
310
- addType: "row",
311
- onAdd: addRow
312
- }), !readOnly && /*#__PURE__*/_jsx(ToolBar, {
313
- selected: selected,
314
- showTool: showTool,
315
- classes: classes,
316
- handleExpand: handleExpand,
317
- handleAction: handleAction,
318
- exandTools: exandTools,
319
- openSetttings: openSetttings
320
- }), /*#__PURE__*/_jsx(MoreTableSettings, {
321
- exandTools: exandTools,
322
- handleAction: handleAction,
323
- editorTheme: editorTheme,
324
- setExpandTools: setExpandTools
325
- }), openSetttings ? /*#__PURE__*/_jsx(TablePopup, {
203
+ children: /*#__PURE__*/_jsx(TableBody, {
204
+ ...attributes,
205
+ children: children
206
+ })
207
+ }), !readOnly && /*#__PURE__*/_jsx(ToolBar, {}), openSetttings ? /*#__PURE__*/_jsx(TablePopup, {
326
208
  element: tableProps?.styleProps || {},
327
209
  onSave: onSave,
328
210
  onClose: onClose,