@flozy/editor 5.1.6 → 5.1.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/Elements/AppHeader/AppHeader.js +6 -6
- package/dist/Editor/Elements/DataView/DataView.js +9 -1
- package/dist/Editor/Elements/DataView/Layouts/ColumnView.js +10 -3
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/Select.js +27 -5
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/Components/styles.js +9 -1
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/DateType.js +5 -1
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/MultiSelectType.js +2 -1
- package/dist/Editor/Elements/DataView/Layouts/DataTypes/PersonType.js +3 -3
- package/dist/Editor/Elements/DataView/Layouts/FilterSort/styles.js +1 -1
- package/dist/Editor/Elements/DataView/Layouts/Options/ChangeProperty.js +1 -3
- package/dist/Editor/Elements/DataView/Layouts/Options/styles.js +2 -2
- package/dist/Editor/Elements/DataView/Layouts/TableStyles.js +13 -1
- package/dist/Editor/Elements/DataView/styles.js +3 -3
- 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 +0 -1
- package/dist/Editor/Elements/Grid/GridItem.js +21 -30
- package/dist/Editor/Elements/SimpleText/style.js +5 -0
- package/dist/Editor/Elements/Table/Styles.js +77 -59
- package/dist/Editor/Elements/Table/Table.js +51 -28
- package/dist/Editor/Elements/Table/TableCell.js +4 -1
- package/dist/Editor/Toolbar/FormatTools/Dropdown.js +1 -2
- package/dist/Editor/Toolbar/PopupTool/PopperHeader.js +3 -4
- package/dist/Editor/Toolbar/PopupTool/PopupToolStyle.js +0 -5
- package/dist/Editor/common/Icon.js +5 -5
- package/dist/Editor/common/MentionsPopup/Styles.js +0 -1
- package/dist/Editor/common/RnD/GuideLines/styles.js +3 -3
- package/dist/Editor/common/RnD/ShadowElement.js +1 -1
- package/dist/Editor/hooks/useTable.js +18 -6
- package/dist/Editor/utils/customHooks/useTableResize.js +6 -2
- package/dist/Editor/utils/helper.js +3 -0
- package/package.json +1 -1
|
@@ -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
|
},
|
|
@@ -34,6 +34,14 @@ const DataView = props => {
|
|
|
34
34
|
} = element;
|
|
35
35
|
const classes = useDataViewStyles(theme, appTheme);
|
|
36
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
|
+
name: name || m?.username || m?.email,
|
|
42
|
+
avatar: m?.avatar || null
|
|
43
|
+
};
|
|
44
|
+
});
|
|
37
45
|
const onDuplicate = () => {
|
|
38
46
|
try {
|
|
39
47
|
const newPath = ReactEditor.findPath(editor, element);
|
|
@@ -80,7 +88,7 @@ const DataView = props => {
|
|
|
80
88
|
properties,
|
|
81
89
|
layouts,
|
|
82
90
|
rows,
|
|
83
|
-
users:
|
|
91
|
+
users: users,
|
|
84
92
|
tableTitle: title
|
|
85
93
|
},
|
|
86
94
|
path: path,
|
|
@@ -27,8 +27,13 @@ const ColumnView = props => {
|
|
|
27
27
|
};
|
|
28
28
|
return /*#__PURE__*/_jsxs(Box, {
|
|
29
29
|
component: "td",
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
children: [needAnchor ? /*#__PURE__*/_jsx("span", {
|
|
31
|
+
ref: anchorRef,
|
|
32
|
+
style: {
|
|
33
|
+
position: "absolute",
|
|
34
|
+
width: "1px"
|
|
35
|
+
}
|
|
36
|
+
}) : null, /*#__PURE__*/_jsx(DataType, {
|
|
32
37
|
options: property?.options,
|
|
33
38
|
property: property?.key,
|
|
34
39
|
value: row[property?.key] || "",
|
|
@@ -37,13 +42,15 @@ const ColumnView = props => {
|
|
|
37
42
|
readOnly: readOnly
|
|
38
43
|
}), needAnchor && !readOnly ? /*#__PURE__*/_jsx(Popper, {
|
|
39
44
|
sx: {
|
|
40
|
-
zIndex: 1000
|
|
45
|
+
zIndex: 1000,
|
|
46
|
+
marginTop: "20px !important"
|
|
41
47
|
},
|
|
42
48
|
open: open,
|
|
43
49
|
anchorEl: anchorEl,
|
|
44
50
|
placement: "left",
|
|
45
51
|
container: anchorRef?.current,
|
|
46
52
|
className: `tv-tr-pop ${selected ? "active" : ""}`,
|
|
53
|
+
disablePortal: true,
|
|
47
54
|
children: /*#__PURE__*/_jsx(Checkbox, {
|
|
48
55
|
onClick: handleSelect(row?.id),
|
|
49
56
|
size: "small",
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import TextField from "@mui/material/TextField";
|
|
3
3
|
import Autocomplete from "@mui/material/Autocomplete";
|
|
4
|
-
import { Box, Chip, useTheme } from "@mui/material";
|
|
4
|
+
import { Avatar, Box, Chip, useTheme } from "@mui/material";
|
|
5
5
|
import { useEditorContext } from "../../../../../hooks/useMouseMove";
|
|
6
6
|
import useCompStyles from "./styles";
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const AvatarIcon = props => {
|
|
9
|
+
const {
|
|
10
|
+
option,
|
|
11
|
+
avatar
|
|
12
|
+
} = props;
|
|
13
|
+
const nameIndex = option.label || option.value;
|
|
14
|
+
return avatar ? /*#__PURE__*/_jsx(Avatar, {
|
|
15
|
+
alt: option.label || option.value,
|
|
16
|
+
src: option.avatar || null,
|
|
17
|
+
children: nameIndex[0] || ""
|
|
18
|
+
}) : null;
|
|
19
|
+
};
|
|
8
20
|
const filter = (opt, params, selectedOpt) => {
|
|
9
21
|
const selectedVals = selectedOpt?.map(m => m?.value);
|
|
10
22
|
const fv = opt?.filter(f => !selectedVals.includes(f.value));
|
|
@@ -20,14 +32,16 @@ export default function Select(props) {
|
|
|
20
32
|
} = useEditorContext();
|
|
21
33
|
const classes = useCompStyles(theme, appTheme);
|
|
22
34
|
const {
|
|
23
|
-
value,
|
|
35
|
+
value: pValue,
|
|
24
36
|
onChange,
|
|
25
37
|
options,
|
|
26
38
|
multiple = false,
|
|
27
39
|
limitTags = 2,
|
|
28
40
|
placeholder = "",
|
|
29
|
-
disabled = false
|
|
41
|
+
disabled = false,
|
|
42
|
+
optionAvatar = false
|
|
30
43
|
} = props;
|
|
44
|
+
const value = Array.isArray(pValue) ? pValue : [];
|
|
31
45
|
return /*#__PURE__*/_jsx(Autocomplete, {
|
|
32
46
|
disabled: disabled,
|
|
33
47
|
className: "tv-ac-field",
|
|
@@ -101,7 +115,11 @@ export default function Select(props) {
|
|
|
101
115
|
sx: {
|
|
102
116
|
background: option?.color || "#CCC",
|
|
103
117
|
border: "none"
|
|
104
|
-
}
|
|
118
|
+
},
|
|
119
|
+
avatar: /*#__PURE__*/_jsx(AvatarIcon, {
|
|
120
|
+
option: option,
|
|
121
|
+
avatar: optionAvatar
|
|
122
|
+
})
|
|
105
123
|
}, key) : null;
|
|
106
124
|
})
|
|
107
125
|
});
|
|
@@ -117,7 +135,11 @@ export default function Select(props) {
|
|
|
117
135
|
label: option.label || option.value || "",
|
|
118
136
|
sx: {
|
|
119
137
|
backgroundColor: option.color || "#CCC"
|
|
120
|
-
}
|
|
138
|
+
},
|
|
139
|
+
avatar: /*#__PURE__*/_jsx(AvatarIcon, {
|
|
140
|
+
option: option,
|
|
141
|
+
avatar: optionAvatar
|
|
142
|
+
})
|
|
121
143
|
})
|
|
122
144
|
}, key);
|
|
123
145
|
},
|
|
@@ -4,7 +4,7 @@ const useCompStyles = (theme, appTheme) => ({
|
|
|
4
4
|
background: appTheme?.palette?.editor?.tv_pop_bg,
|
|
5
5
|
color: appTheme?.palette?.editor?.tv_text_primary,
|
|
6
6
|
borderRadius: "8px",
|
|
7
|
-
[theme
|
|
7
|
+
[theme?.breakpoints?.between("xs", "md")]: {},
|
|
8
8
|
"& ul": {
|
|
9
9
|
padding: "4px",
|
|
10
10
|
"& li": {
|
|
@@ -40,6 +40,14 @@ const useCompStyles = (theme, appTheme) => ({
|
|
|
40
40
|
borderRadius: "8px",
|
|
41
41
|
color: appTheme?.palette?.editor?.tv_text_primary,
|
|
42
42
|
fontSize: "14px",
|
|
43
|
+
"& .MuiAvatar-root": {
|
|
44
|
+
width: "20px",
|
|
45
|
+
height: "20px",
|
|
46
|
+
marginLeft: "8px",
|
|
47
|
+
fontSize: "16px",
|
|
48
|
+
padding: "2px",
|
|
49
|
+
textTransform: "capitalize"
|
|
50
|
+
},
|
|
43
51
|
"&.Mui-selected": {
|
|
44
52
|
background: appTheme?.palette?.editor?.tv_hover_bg,
|
|
45
53
|
color: appTheme?.palette?.editor?.tv_hover_text,
|
|
@@ -2,6 +2,10 @@ import React from "react";
|
|
|
2
2
|
import DatePicker from "react-datepicker";
|
|
3
3
|
import { useDataView } from "../../Providers/DataViewProvider";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
function isValidDate(dateString) {
|
|
6
|
+
const date = new Date(dateString);
|
|
7
|
+
return !isNaN(date.getTime());
|
|
8
|
+
}
|
|
5
9
|
const DateType = props => {
|
|
6
10
|
const {
|
|
7
11
|
rowIndex,
|
|
@@ -19,7 +23,7 @@ const DateType = props => {
|
|
|
19
23
|
};
|
|
20
24
|
return /*#__PURE__*/_jsx(DatePicker, {
|
|
21
25
|
disabled: readOnly,
|
|
22
|
-
selected: value ? new Date(value) : "",
|
|
26
|
+
selected: isValidDate(value) ? new Date(value) : "",
|
|
23
27
|
onChange: handleChange
|
|
24
28
|
});
|
|
25
29
|
};
|
|
@@ -6,7 +6,7 @@ const MultiSelectType = props => {
|
|
|
6
6
|
const {
|
|
7
7
|
rowIndex,
|
|
8
8
|
property,
|
|
9
|
-
value,
|
|
9
|
+
value: pValue,
|
|
10
10
|
options,
|
|
11
11
|
label = "",
|
|
12
12
|
readOnly
|
|
@@ -14,6 +14,7 @@ const MultiSelectType = props => {
|
|
|
14
14
|
const {
|
|
15
15
|
onChange
|
|
16
16
|
} = useDataView();
|
|
17
|
+
const value = Array.isArray(pValue) ? pValue : [];
|
|
17
18
|
const coloredValues = [...(value || [])]?.map(m => {
|
|
18
19
|
return {
|
|
19
20
|
...m,
|
|
@@ -13,7 +13,6 @@ const PersonType = props => {
|
|
|
13
13
|
onChange,
|
|
14
14
|
users
|
|
15
15
|
} = useDataView();
|
|
16
|
-
console.log(users);
|
|
17
16
|
const handleChange = data => {
|
|
18
17
|
onChange(rowIndex, {
|
|
19
18
|
[property]: data?.filter(f => f?.value)
|
|
@@ -22,9 +21,10 @@ const PersonType = props => {
|
|
|
22
21
|
return /*#__PURE__*/_jsx(Select, {
|
|
23
22
|
value: value || [],
|
|
24
23
|
onChange: handleChange,
|
|
25
|
-
options: users,
|
|
24
|
+
options: users || [],
|
|
26
25
|
multiple: false,
|
|
27
|
-
disabled: readOnly
|
|
26
|
+
disabled: readOnly,
|
|
27
|
+
optionAvatar: true
|
|
28
28
|
});
|
|
29
29
|
};
|
|
30
30
|
export default PersonType;
|
|
@@ -6,7 +6,7 @@ const useFilterSortStyles = (theme, appTheme) => ({
|
|
|
6
6
|
background: appTheme?.palette?.editor?.tv_pop_bg,
|
|
7
7
|
color: appTheme?.palette?.editor?.tv_text_primary,
|
|
8
8
|
borderRadius: "12px",
|
|
9
|
-
[theme
|
|
9
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
10
10
|
borderRadius: "16px 16px 0px 0px",
|
|
11
11
|
maxHeight: "50%"
|
|
12
12
|
},
|
|
@@ -2,7 +2,6 @@ import React from "react";
|
|
|
2
2
|
import { Box, IconButton } from "@mui/material";
|
|
3
3
|
import CloseIcon from "@mui/icons-material/Close";
|
|
4
4
|
import PropertyList from "./PropertyList";
|
|
5
|
-
import { TYPE_LABELS } from "./Constants";
|
|
6
5
|
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
|
|
7
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
7
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -16,8 +15,7 @@ const ChangeProperty = props => {
|
|
|
16
15
|
const onSelect = property => () => {
|
|
17
16
|
onEvent("updateProperty", {
|
|
18
17
|
...(mode?.edit || {}),
|
|
19
|
-
type: property?.type
|
|
20
|
-
label: TYPE_LABELS[mode?.type] === mode?.label ? property?.label : mode?.label
|
|
18
|
+
type: property?.type
|
|
21
19
|
});
|
|
22
20
|
};
|
|
23
21
|
const onBack = () => {
|
|
@@ -6,7 +6,7 @@ const useOptionsStyles = (theme, appTheme) => ({
|
|
|
6
6
|
borderRadius: "12px",
|
|
7
7
|
background: appTheme?.palette?.editor?.tv_pop_bg,
|
|
8
8
|
color: appTheme?.palette?.editor?.tv_text_primary,
|
|
9
|
-
[theme
|
|
9
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
10
10
|
borderRadius: "16px 16px 0px 0px",
|
|
11
11
|
maxHeight: "50%"
|
|
12
12
|
},
|
|
@@ -171,7 +171,7 @@ const useOptionsStyles = (theme, appTheme) => ({
|
|
|
171
171
|
justifyContent: "space-between",
|
|
172
172
|
marginBottom: "8px"
|
|
173
173
|
},
|
|
174
|
-
[theme
|
|
174
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
175
175
|
width: "calc(100% - 24px)"
|
|
176
176
|
}
|
|
177
177
|
}
|
|
@@ -3,7 +3,7 @@ const useTableStyles = (theme, appTheme) => ({
|
|
|
3
3
|
border: `1px solid ${appTheme?.palette?.editor?.tv_border}`,
|
|
4
4
|
borderRadius: "7px 7px 0px 0px",
|
|
5
5
|
overflowX: "auto",
|
|
6
|
-
[theme
|
|
6
|
+
[theme?.breakpoints?.between("xs", "md")]: {}
|
|
7
7
|
},
|
|
8
8
|
table: {
|
|
9
9
|
borderCollapse: "separate",
|
|
@@ -86,6 +86,18 @@ const useTableStyles = (theme, appTheme) => ({
|
|
|
86
86
|
"& svg": {
|
|
87
87
|
color: appTheme?.palette?.editor?.tv_text
|
|
88
88
|
}
|
|
89
|
+
},
|
|
90
|
+
"& .MuiAvatar-root": {
|
|
91
|
+
width: "20px",
|
|
92
|
+
height: "20px",
|
|
93
|
+
marginLeft: "8px",
|
|
94
|
+
fontSize: "16px",
|
|
95
|
+
padding: "2px",
|
|
96
|
+
textTransform: "capitalize"
|
|
97
|
+
},
|
|
98
|
+
"& .MuiChip-label": {
|
|
99
|
+
paddingLeft: "6px",
|
|
100
|
+
paddingRight: "8px"
|
|
89
101
|
}
|
|
90
102
|
}
|
|
91
103
|
},
|
|
@@ -34,7 +34,7 @@ const useDataViewStyles = (theme, appTheme) => ({
|
|
|
34
34
|
"& .mr": {
|
|
35
35
|
marginRight: "4px"
|
|
36
36
|
},
|
|
37
|
-
[theme
|
|
37
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
38
38
|
display: "flex",
|
|
39
39
|
flexDirection: "column"
|
|
40
40
|
}
|
|
@@ -105,13 +105,13 @@ const useDataViewStyles = (theme, appTheme) => ({
|
|
|
105
105
|
"& .MuiInputBase-root": {
|
|
106
106
|
width: "100%"
|
|
107
107
|
},
|
|
108
|
-
[theme
|
|
108
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
109
109
|
width: "100%",
|
|
110
110
|
marginRight: "0px"
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
"& .tv-fi-wrpr": {
|
|
114
|
-
[theme
|
|
114
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
115
115
|
width: "100%",
|
|
116
116
|
justifyContent: "end"
|
|
117
117
|
}
|
|
@@ -47,22 +47,22 @@ export function wrapThemeBreakpoints(sxProp, prop, theme) {
|
|
|
47
47
|
const formatedSxProp = Object.keys(sxProp).reduce((a, b) => {
|
|
48
48
|
switch (b) {
|
|
49
49
|
case "md":
|
|
50
|
-
a[theme
|
|
50
|
+
a[theme?.breakpoints?.up("lg")] = {
|
|
51
51
|
[prop]: sxProp["md"] || sxProp["lg"]
|
|
52
52
|
};
|
|
53
53
|
break;
|
|
54
54
|
case "sm":
|
|
55
|
-
a[theme
|
|
55
|
+
a[theme?.breakpoints?.up("lg")] = {
|
|
56
56
|
[prop]: sxProp["sm"] || sxProp["lg"]
|
|
57
57
|
};
|
|
58
58
|
break;
|
|
59
59
|
case "xs":
|
|
60
|
-
a[theme
|
|
60
|
+
a[theme?.breakpoints?.between("xs", "md")] = {
|
|
61
61
|
[prop]: sxProp["xs"] || sxProp["lg"]
|
|
62
62
|
};
|
|
63
63
|
break;
|
|
64
64
|
default:
|
|
65
|
-
a[theme
|
|
65
|
+
a[theme?.breakpoints?.up("lg")] = {
|
|
66
66
|
[prop]: sxProp["lg"]
|
|
67
67
|
};
|
|
68
68
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
2
|
import { Button, Dialog, DialogContent, DialogTitle, Grid, Tooltip, Box } from "@mui/material";
|
|
3
3
|
import { insertGrid, insertPlainGrid } from "../../utils/grid";
|
|
4
|
-
import { GridIcon } from "../../common/iconslist";
|
|
5
4
|
import ToolbarIcon from "../../common/ToolbarIcon";
|
|
6
5
|
import GridStyles from "./Styles";
|
|
7
6
|
import { GridElement } from "../../common/iconListV2";
|
|
@@ -51,18 +51,7 @@ const GridItemToolbar = props => {
|
|
|
51
51
|
placement: "top-end",
|
|
52
52
|
sx: classes.popTools,
|
|
53
53
|
className: "gi-tool-pp",
|
|
54
|
-
|
|
55
|
-
modifiers: [{
|
|
56
|
-
name: "preventOverflow",
|
|
57
|
-
options: {
|
|
58
|
-
boundary: "clippingParents" // Ensure it respects parent boundaries
|
|
59
|
-
}
|
|
60
|
-
}, {
|
|
61
|
-
name: "hide",
|
|
62
|
-
options: {
|
|
63
|
-
padding: 8 // Adjust padding for visibility
|
|
64
|
-
}
|
|
65
|
-
}],
|
|
54
|
+
disablePortal: true,
|
|
66
55
|
children: [/*#__PURE__*/_jsx(Tooltip, {
|
|
67
56
|
title: "Column Settings",
|
|
68
57
|
arrow: true,
|
|
@@ -305,24 +294,26 @@ const GridItem = props => {
|
|
|
305
294
|
},
|
|
306
295
|
"data-path": path.join(","),
|
|
307
296
|
"data-info": "handle-outside-editor-click",
|
|
308
|
-
children: [!readOnly && /*#__PURE__*/_jsxs(
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
297
|
+
children: [!readOnly && /*#__PURE__*/_jsxs(_Fragment, {
|
|
298
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
299
|
+
className: `element-selector ${selected ? "selected" : ""}`,
|
|
300
|
+
contentEditable: false,
|
|
301
|
+
style: {
|
|
302
|
+
zIndex: 1000
|
|
303
|
+
},
|
|
304
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
305
|
+
className: "element-selector-dots tl",
|
|
306
|
+
children: " "
|
|
307
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
308
|
+
className: "element-selector-dots tr",
|
|
309
|
+
children: " "
|
|
310
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
311
|
+
className: "element-selector-dots bl",
|
|
312
|
+
children: " "
|
|
313
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
314
|
+
className: "element-selector-dots br",
|
|
315
|
+
children: " "
|
|
316
|
+
})]
|
|
326
317
|
}), /*#__PURE__*/_jsx(GridItemToolbar, {
|
|
327
318
|
classes: classes,
|
|
328
319
|
selected: selected,
|
|
@@ -1,70 +1,88 @@
|
|
|
1
|
-
const TableStyles = theme =>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
1
|
+
const TableStyles = theme => {
|
|
2
|
+
const {
|
|
3
|
+
background,
|
|
4
|
+
closeButtonSvgStroke,
|
|
5
|
+
activeColor,
|
|
6
|
+
signaturePopUpTabButtonSelectedBg,
|
|
7
|
+
signaturePopUpTabButtonSelectedSvg
|
|
8
|
+
} = theme?.palette?.editor || {};
|
|
9
|
+
return {
|
|
10
|
+
tableToolBar: {
|
|
11
|
+
position: "absolute",
|
|
12
|
+
top: "-24px",
|
|
13
|
+
left: 0,
|
|
14
|
+
transition: "all 0.3s",
|
|
15
|
+
"& button": {
|
|
16
|
+
backgroundColor: background,
|
|
17
|
+
border: "1px solid rgba(37, 99, 235, 0.32)",
|
|
18
|
+
boxShadow: "0px 0px 10px 0px rgba(0, 0, 0, 0.16)",
|
|
19
|
+
borderRadius: "50%",
|
|
20
|
+
padding: "4px",
|
|
21
|
+
margin: "2px",
|
|
22
|
+
"&:hover": {
|
|
23
|
+
backgroundColor: background
|
|
24
|
+
},
|
|
25
|
+
"& svg": {
|
|
26
|
+
width: "18px",
|
|
27
|
+
height: "18px",
|
|
28
|
+
"& path": {
|
|
29
|
+
stroke: closeButtonSvgStroke
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"&.selected": {
|
|
33
|
+
outline: `1.5px solid ${activeColor || "#2563EB"}`,
|
|
34
|
+
background: signaturePopUpTabButtonSelectedBg,
|
|
35
|
+
"& svg": {
|
|
36
|
+
"& path": {
|
|
37
|
+
stroke: signaturePopUpTabButtonSelectedSvg
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
16
41
|
},
|
|
17
|
-
"
|
|
18
|
-
width: "
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
42
|
+
"&.active": {
|
|
43
|
+
width: "auto",
|
|
44
|
+
"& .toggle": {
|
|
45
|
+
rotate: "180deg"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"& .toolbtn": {
|
|
49
|
+
"& svg": {
|
|
50
|
+
stroke: "rgb(100, 116, 139)"
|
|
22
51
|
}
|
|
23
52
|
}
|
|
24
53
|
},
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
54
|
+
table: {
|
|
55
|
+
"& td": {
|
|
56
|
+
padding: "8px 8px"
|
|
57
|
+
},
|
|
58
|
+
"& .selection-area-tc": {
|
|
59
|
+
position: "absolute",
|
|
60
|
+
width: "100%",
|
|
61
|
+
height: "100%",
|
|
62
|
+
top: 0,
|
|
63
|
+
left: 0,
|
|
64
|
+
outline: "1px solid #2563EB",
|
|
65
|
+
pointerEvents: "none"
|
|
66
|
+
},
|
|
67
|
+
"& .hide-drag-btn-wrapper": {
|
|
68
|
+
"& .row-drag-btn": {
|
|
69
|
+
display: "none"
|
|
70
|
+
}
|
|
34
71
|
}
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
table: {
|
|
38
|
-
"& td": {
|
|
39
|
-
padding: "8px 8px"
|
|
40
72
|
},
|
|
41
|
-
|
|
73
|
+
cellResizer: {
|
|
42
74
|
position: "absolute",
|
|
43
|
-
|
|
44
|
-
|
|
75
|
+
cursor: "col-resize",
|
|
76
|
+
right: "-2px",
|
|
45
77
|
top: 0,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
display: "none"
|
|
78
|
+
background: "transparent",
|
|
79
|
+
width: "3px",
|
|
80
|
+
borderRadius: "0px",
|
|
81
|
+
zIndex: 1,
|
|
82
|
+
"&:hover": {
|
|
83
|
+
background: "#2563EB"
|
|
53
84
|
}
|
|
54
85
|
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
position: "absolute",
|
|
58
|
-
cursor: "col-resize",
|
|
59
|
-
right: "-2px",
|
|
60
|
-
top: 0,
|
|
61
|
-
background: "transparent",
|
|
62
|
-
width: "3px",
|
|
63
|
-
borderRadius: "0px",
|
|
64
|
-
zIndex: 1,
|
|
65
|
-
"&:hover": {
|
|
66
|
-
background: "#2563EB"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
});
|
|
86
|
+
};
|
|
87
|
+
};
|
|
70
88
|
export default TableStyles;
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useState } from "react";
|
|
2
2
|
import { Editor, Transforms } from "slate";
|
|
3
3
|
import { ReactEditor, useSelected, useSlateStatic } from "slate-react";
|
|
4
|
-
import { Box, IconButton, Tooltip, Table as TableComp, TableBody, useTheme, Popper, Fade } from "@mui/material";
|
|
4
|
+
import { Box, IconButton, Tooltip, Table as TableComp, TableBody, useTheme, Popper, Fade, ClickAwayListener } from "@mui/material";
|
|
5
5
|
import { TableUtil } from "../../utils/table";
|
|
6
6
|
import TablePopup from "./TablePopup";
|
|
7
7
|
import { useEditorContext, useEditorSelection } from "../../hooks/useMouseMove";
|
|
8
8
|
import TableStyles from "./Styles";
|
|
9
9
|
import "./table.css";
|
|
10
10
|
import { groupByBreakpoint } from "../../helper/theme";
|
|
11
|
-
import useTable, { TableProvider } from "../../hooks/useTable";
|
|
11
|
+
import useTable, { TableProvider, getDefaultTableSelection } from "../../hooks/useTable";
|
|
12
12
|
import AddRowCol from "./AddRowCol";
|
|
13
13
|
import TableTool from "./TableTool";
|
|
14
14
|
import { MoreIcon, SettingsIcon } from "../../assets/svg/TableIcons";
|
|
15
|
+
import { getSelectedCls } from "../../utils/helper";
|
|
15
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
18
|
const hideRowDragBtns = (hide, dragRowBtnCls) => {
|
|
@@ -20,6 +21,40 @@ const hideRowDragBtns = (hide, dragRowBtnCls) => {
|
|
|
20
21
|
rowDragBtns?.forEach(btn => btn.style.display = hide);
|
|
21
22
|
}
|
|
22
23
|
};
|
|
24
|
+
const MoreTableSettings = props => {
|
|
25
|
+
const {
|
|
26
|
+
exandTools,
|
|
27
|
+
handleAction,
|
|
28
|
+
editorTheme,
|
|
29
|
+
setExpandTools
|
|
30
|
+
} = props;
|
|
31
|
+
const {
|
|
32
|
+
updateTableSelection
|
|
33
|
+
} = useTable();
|
|
34
|
+
return /*#__PURE__*/_jsx(Popper, {
|
|
35
|
+
open: Boolean(exandTools),
|
|
36
|
+
anchorEl: exandTools,
|
|
37
|
+
contentEditable: false,
|
|
38
|
+
sx: {
|
|
39
|
+
zIndex: 2000
|
|
40
|
+
},
|
|
41
|
+
placement: "bottom-start",
|
|
42
|
+
children: /*#__PURE__*/_jsx(ClickAwayListener, {
|
|
43
|
+
onClickAway: () => setExpandTools(false),
|
|
44
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
45
|
+
children: /*#__PURE__*/_jsx(TableTool, {
|
|
46
|
+
theme: editorTheme,
|
|
47
|
+
handleToolAction: (type, option) => {
|
|
48
|
+
handleAction(type, option);
|
|
49
|
+
if (type === "duplicate") {
|
|
50
|
+
updateTableSelection(getDefaultTableSelection());
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
};
|
|
23
58
|
const ToolBar = props => {
|
|
24
59
|
const {
|
|
25
60
|
selected,
|
|
@@ -27,7 +62,8 @@ const ToolBar = props => {
|
|
|
27
62
|
classes,
|
|
28
63
|
handleExpand,
|
|
29
64
|
handleAction,
|
|
30
|
-
exandTools
|
|
65
|
+
exandTools,
|
|
66
|
+
openSetttings
|
|
31
67
|
} = props;
|
|
32
68
|
const {
|
|
33
69
|
getSelectedCells
|
|
@@ -43,7 +79,7 @@ const ToolBar = props => {
|
|
|
43
79
|
arrow: true,
|
|
44
80
|
onClick: () => handleAction("settings"),
|
|
45
81
|
children: /*#__PURE__*/_jsx(IconButton, {
|
|
46
|
-
className: "toolbtn toggle",
|
|
82
|
+
className: getSelectedCls("toolbtn toggle", openSetttings),
|
|
47
83
|
children: /*#__PURE__*/_jsx(SettingsIcon, {})
|
|
48
84
|
})
|
|
49
85
|
}), /*#__PURE__*/_jsx(Tooltip, {
|
|
@@ -51,7 +87,7 @@ const ToolBar = props => {
|
|
|
51
87
|
arrow: true,
|
|
52
88
|
onClick: handleExpand,
|
|
53
89
|
children: /*#__PURE__*/_jsx(IconButton, {
|
|
54
|
-
className: "toolbtn toggle",
|
|
90
|
+
className: getSelectedCls("toolbtn toggle", exandTools),
|
|
55
91
|
children: /*#__PURE__*/_jsx(MoreIcon, {})
|
|
56
92
|
})
|
|
57
93
|
})]
|
|
@@ -100,6 +136,7 @@ const Table = props => {
|
|
|
100
136
|
break;
|
|
101
137
|
case "duplicate":
|
|
102
138
|
table.duplicateTable();
|
|
139
|
+
setExpandTools(false);
|
|
103
140
|
break;
|
|
104
141
|
case "settings":
|
|
105
142
|
if (tableProps) {
|
|
@@ -198,7 +235,8 @@ const Table = props => {
|
|
|
198
235
|
otherProps: {
|
|
199
236
|
dragRowBtnCls,
|
|
200
237
|
tablePath: path,
|
|
201
|
-
openSetttings
|
|
238
|
+
openSetttings,
|
|
239
|
+
exandTools
|
|
202
240
|
},
|
|
203
241
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
204
242
|
style: {
|
|
@@ -249,28 +287,13 @@ const Table = props => {
|
|
|
249
287
|
classes: classes,
|
|
250
288
|
handleExpand: handleExpand,
|
|
251
289
|
handleAction: handleAction,
|
|
252
|
-
exandTools: exandTools
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
zIndex: 2000
|
|
260
|
-
},
|
|
261
|
-
placement: "bottom-start",
|
|
262
|
-
children: ({
|
|
263
|
-
TransitionProps
|
|
264
|
-
}) => /*#__PURE__*/_jsx(Fade, {
|
|
265
|
-
...TransitionProps,
|
|
266
|
-
timeout: 350,
|
|
267
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
268
|
-
children: /*#__PURE__*/_jsx(TableTool, {
|
|
269
|
-
theme: editorTheme,
|
|
270
|
-
handleToolAction: handleAction
|
|
271
|
-
})
|
|
272
|
-
})
|
|
273
|
-
})
|
|
290
|
+
exandTools: exandTools,
|
|
291
|
+
openSetttings: openSetttings
|
|
292
|
+
}), /*#__PURE__*/_jsx(MoreTableSettings, {
|
|
293
|
+
exandTools: exandTools,
|
|
294
|
+
handleAction: handleAction,
|
|
295
|
+
editorTheme: editorTheme,
|
|
296
|
+
setExpandTools: setExpandTools
|
|
274
297
|
}), openSetttings ? /*#__PURE__*/_jsx(TablePopup, {
|
|
275
298
|
element: tableProps?.styleProps || {},
|
|
276
299
|
onSave: onSave,
|
|
@@ -87,7 +87,10 @@ const TableCell = props => {
|
|
|
87
87
|
const isHeader = path.length >= 2 ? path[path.length - 2] === 0 : false;
|
|
88
88
|
const [size, onMouseDown, resizing, onLoad] = useTableResize({
|
|
89
89
|
parentDOM,
|
|
90
|
-
size: element?.size
|
|
90
|
+
size: element?.size,
|
|
91
|
+
minMaxProps: {
|
|
92
|
+
minWidth: 30
|
|
93
|
+
}
|
|
91
94
|
});
|
|
92
95
|
const [tableSize, setTableSize] = useState({});
|
|
93
96
|
const [openSettings, setOpenSettings] = useState(false);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Select, MenuItem } from "@mui/material";
|
|
3
3
|
import { addMarkData, activeMark } from "../../utils/SlateUtilityFunctions.js";
|
|
4
|
-
import
|
|
5
|
-
import KeyboardArrowDownRoundedIcon from '@mui/icons-material/KeyboardArrowDownRounded';
|
|
4
|
+
import KeyboardArrowDownRoundedIcon from "@mui/icons-material/KeyboardArrowDownRounded";
|
|
6
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
6
|
const Dropdown = ({
|
|
8
7
|
classes,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
2
|
import { Grid, Typography, IconButton, Tooltip, TextField, InputAdornment } from "@mui/material";
|
|
3
3
|
import CloseIcon from "@mui/icons-material/Close";
|
|
4
|
-
import OpenInFullIcon from "@mui/icons-material/OpenInFull";
|
|
5
4
|
import CloseFullscreenIcon from "@mui/icons-material/CloseFullscreen";
|
|
6
5
|
import Icon from "../../common/Icon";
|
|
7
6
|
import { ToggleFullScreenIcon } from "../../common/iconListV2";
|
|
@@ -68,14 +67,14 @@ const PopperHeader = props => {
|
|
|
68
67
|
justifyContent: "end",
|
|
69
68
|
children: [needFullscreen ? /*#__PURE__*/_jsxs(Grid, {
|
|
70
69
|
sx: {
|
|
71
|
-
position:
|
|
70
|
+
position: "relative"
|
|
72
71
|
},
|
|
73
72
|
className: "inputField",
|
|
74
73
|
children: [/*#__PURE__*/_jsx(IconButton, {
|
|
75
|
-
className: openSearch ?
|
|
74
|
+
className: openSearch ? "searchContainer" : "",
|
|
76
75
|
onClick: handleSearchButton,
|
|
77
76
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
78
|
-
icon: openSearch ?
|
|
77
|
+
icon: openSearch ? "closeIcon" : "SearchIcon"
|
|
79
78
|
})
|
|
80
79
|
}), openSearch && /*#__PURE__*/_jsx(SearchBox, {
|
|
81
80
|
classes: classes,
|
|
@@ -177,11 +177,6 @@ const usePopupStyle = theme => ({
|
|
|
177
177
|
justifyContent: "start",
|
|
178
178
|
borderRadius: "10px !important",
|
|
179
179
|
transition: "background-color 0.3s ease",
|
|
180
|
-
"& .colorBoxElementIcon": {
|
|
181
|
-
"& path": {
|
|
182
|
-
fill: theme?.palette?.type === "dark" ? "none" : ""
|
|
183
|
-
}
|
|
184
|
-
},
|
|
185
180
|
"& .signatureElementIcon": {
|
|
186
181
|
"& path": {
|
|
187
182
|
fill: `${theme?.palette?.editor?.closeButtonSvgStroke}`
|
|
@@ -21,11 +21,11 @@ import TextIcon from "../assets/svg/TextIcon";
|
|
|
21
21
|
import AddElementIcon from "../assets/svg/AddElementIcon";
|
|
22
22
|
import AddTemplateIcon from "../assets/svg/AddTemplateIcon";
|
|
23
23
|
import OpenLinkIcon from "../assets/svg/OpenLinkIcon";
|
|
24
|
+
import EditIcon from "@mui/icons-material/Edit";
|
|
25
|
+
import DeleteIcon from "@mui/icons-material/Delete";
|
|
24
26
|
import { BrainIcon } from "../assets/svg/BrainIcon";
|
|
25
27
|
import DocsIcon from "../assets/svg/DocsIcon";
|
|
26
28
|
import UserIcon from "../assets/svg/UserIcon";
|
|
27
|
-
import EditIcon from "@mui/icons-material/Edit";
|
|
28
|
-
import DeleteIcon from "@mui/icons-material/Delete";
|
|
29
29
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
30
30
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
31
31
|
const iconList = {
|
|
@@ -276,11 +276,11 @@ const iconList = {
|
|
|
276
276
|
fill: "#64748B"
|
|
277
277
|
}
|
|
278
278
|
}),
|
|
279
|
+
editIcon: /*#__PURE__*/_jsx(EditIcon, {}),
|
|
280
|
+
deleteIcon: /*#__PURE__*/_jsx(DeleteIcon, {}),
|
|
279
281
|
brain: /*#__PURE__*/_jsx(BrainIcon, {}),
|
|
280
282
|
docsIcon: /*#__PURE__*/_jsx(DocsIcon, {}),
|
|
281
|
-
userIcon: /*#__PURE__*/_jsx(UserIcon, {})
|
|
282
|
-
editIcon: /*#__PURE__*/_jsx(EditIcon, {}),
|
|
283
|
-
deleteIcon: /*#__PURE__*/_jsx(DeleteIcon, {})
|
|
283
|
+
userIcon: /*#__PURE__*/_jsx(UserIcon, {})
|
|
284
284
|
};
|
|
285
285
|
export const icons = {
|
|
286
286
|
...iconList
|
|
@@ -22,7 +22,7 @@ const useGuideLineStyle = ({
|
|
|
22
22
|
backgroundColor: "#FFF",
|
|
23
23
|
pointerEvents: "none",
|
|
24
24
|
zIndex: 1,
|
|
25
|
-
[theme
|
|
25
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
26
26
|
left: "calc(50% - 160px)"
|
|
27
27
|
}
|
|
28
28
|
},
|
|
@@ -35,13 +35,13 @@ const useGuideLineStyle = ({
|
|
|
35
35
|
backgroundColor: "#FFF",
|
|
36
36
|
pointerEvents: "none",
|
|
37
37
|
zIndex: 1,
|
|
38
|
-
[theme
|
|
38
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
39
39
|
left: "calc(50% + 160px)"
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
"& .white-wrapper": {
|
|
43
43
|
overflowX: "hidden",
|
|
44
|
-
[theme
|
|
44
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
45
45
|
position: "absolute",
|
|
46
46
|
width: "calc(50% - 162px)",
|
|
47
47
|
height: "calc(100% - 2px)",
|
|
@@ -10,7 +10,7 @@ const useShadowElementStyles = ({
|
|
|
10
10
|
position: "relative",
|
|
11
11
|
backgroundColor: "rgba(0,0,0,0)",
|
|
12
12
|
marginLeft: `calc((100% - 980px) * 0.5)`,
|
|
13
|
-
[theme
|
|
13
|
+
[theme?.breakpoints?.between("xs", "md")]: {
|
|
14
14
|
marginLeft: `calc((100% - 320px) * 0.5)`
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -8,6 +8,19 @@ import { serializeToText } from "../utils/serializeToText";
|
|
|
8
8
|
import { createCopiedTableStructure, getRectangleBounds, tableNodeToDom } from "../Elements/Table/tableHelper";
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const selectFirstCell = (tablePath, editor, updateTableSelection) => {
|
|
12
|
+
const firstCell = [...tablePath, 0, 0];
|
|
13
|
+
const end = Editor.end(editor, firstCell);
|
|
14
|
+
Transforms.select(editor, {
|
|
15
|
+
anchor: end,
|
|
16
|
+
focus: end
|
|
17
|
+
});
|
|
18
|
+
updateTableSelection({
|
|
19
|
+
startCellPath: firstCell,
|
|
20
|
+
endCellPath: [],
|
|
21
|
+
isDragging: false
|
|
22
|
+
});
|
|
23
|
+
};
|
|
11
24
|
const handleDragEnd = (dragData, editor, resetAll) => {
|
|
12
25
|
const {
|
|
13
26
|
active,
|
|
@@ -65,7 +78,7 @@ export const TableProvider = ({
|
|
|
65
78
|
otherProps = {}
|
|
66
79
|
}) => {
|
|
67
80
|
const {
|
|
68
|
-
|
|
81
|
+
tablePath
|
|
69
82
|
} = otherProps;
|
|
70
83
|
const [hoverPath, setHoverPath] = useState(null);
|
|
71
84
|
const [tableSelection, setTableSelection] = useState(getDefaultTableSelection());
|
|
@@ -105,7 +118,8 @@ export const TableProvider = ({
|
|
|
105
118
|
tableSelection,
|
|
106
119
|
tableResizing,
|
|
107
120
|
setTableResizing,
|
|
108
|
-
otherProps
|
|
121
|
+
otherProps,
|
|
122
|
+
resetAll
|
|
109
123
|
};
|
|
110
124
|
}, [hoverPath, editor?.selection, tableSelection, tableResizing]);
|
|
111
125
|
useEffect(() => {
|
|
@@ -171,10 +185,8 @@ export const TableProvider = ({
|
|
|
171
185
|
};
|
|
172
186
|
}, [tableSelection, editor, tableSelection]);
|
|
173
187
|
useEffect(() => {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
}, [openSetttings]);
|
|
188
|
+
selectFirstCell(tablePath, editor, updateTableSelection);
|
|
189
|
+
}, []);
|
|
178
190
|
return /*#__PURE__*/_jsx(TableContext.Provider, {
|
|
179
191
|
value: values,
|
|
180
192
|
children: /*#__PURE__*/_jsxs(DndContext, {
|
|
@@ -2,7 +2,8 @@ import { useState } from "react";
|
|
|
2
2
|
const useTableResize = ({
|
|
3
3
|
parentDOM,
|
|
4
4
|
size: defaultSize,
|
|
5
|
-
onDone
|
|
5
|
+
onDone,
|
|
6
|
+
minMaxProps = {}
|
|
6
7
|
}) => {
|
|
7
8
|
const {
|
|
8
9
|
width
|
|
@@ -38,10 +39,13 @@ const useTableResize = ({
|
|
|
38
39
|
setIsDone(1);
|
|
39
40
|
};
|
|
40
41
|
const onMouseMove = e => {
|
|
42
|
+
const {
|
|
43
|
+
minWidth
|
|
44
|
+
} = minMaxProps || {};
|
|
41
45
|
setSize(currentSize => {
|
|
42
46
|
const calcWidth = currentSize?.width + e.movementX;
|
|
43
47
|
return {
|
|
44
|
-
width: calcWidth,
|
|
48
|
+
width: minWidth && calcWidth < minWidth ? minWidth : calcWidth,
|
|
45
49
|
height: currentSize.height + e.movementY,
|
|
46
50
|
widthInPercent: calcWidth / width * 100
|
|
47
51
|
};
|
|
@@ -676,4 +676,7 @@ export function getInitialValue(value = [], readOnly) {
|
|
|
676
676
|
return newValue;
|
|
677
677
|
}
|
|
678
678
|
return value;
|
|
679
|
+
}
|
|
680
|
+
export function getSelectedCls(defaultCls = "", selected, selectedClsName = "selected") {
|
|
681
|
+
return `${defaultCls} ${selected ? selectedClsName : ""}`;
|
|
679
682
|
}
|