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