@seafile/sdoc-editor 2.0.53 → 2.0.55
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/basic-sdk/comment/components/comment-delete-popover.js +1 -0
- package/dist/basic-sdk/comment/components/comment-item-reply.js +0 -5
- package/dist/basic-sdk/extension/commons/color-menu/index.js +9 -17
- package/dist/basic-sdk/extension/commons/file-insert-dialog/index.js +3 -1
- package/dist/basic-sdk/extension/commons/menu/menu-group.js +1 -5
- package/dist/basic-sdk/extension/plugins/callout/render-elem/index.js +1 -0
- package/dist/basic-sdk/extension/plugins/chart/render-elem.js +8 -3
- package/dist/basic-sdk/extension/plugins/code-block/hover-menu/index.js +2 -0
- package/dist/basic-sdk/extension/plugins/list/menu/index.js +3 -6
- package/dist/basic-sdk/extension/plugins/list/transforms/toggle-list.js +0 -1
- package/dist/basic-sdk/extension/plugins/mention/render-elem/participant-popover.js +1 -0
- package/dist/basic-sdk/extension/plugins/multi-column/resize-handlers/index.js +1 -0
- package/dist/basic-sdk/extension/plugins/seatable-tables/draggable/index.js +14 -17
- package/dist/basic-sdk/extension/plugins/seatable-tables/formatter/index.js +1 -4
- package/dist/basic-sdk/extension/plugins/seatable-tables/render-element/seatable-table.js +5 -8
- package/dist/basic-sdk/extension/plugins/seatable-tables/seatable-settings/dtable-search-input/index.js +3 -8
- package/dist/basic-sdk/extension/plugins/seatable-tables/seatable-settings/filter-setter/filter-popover.js +1 -4
- package/dist/basic-sdk/extension/plugins/seatable-tables/seatable-settings/filter-setter/index.js +3 -6
- package/dist/basic-sdk/extension/plugins/seatable-tables/seatable-settings/hide-column-setter/index.js +1 -4
- package/dist/basic-sdk/extension/plugins/seatable-tables/seatable-settings/sort-setter/index.js +3 -6
- package/dist/basic-sdk/extension/plugins/table/menu/active-table-menu/common-menu.js +6 -9
- package/dist/basic-sdk/extension/plugins/table/menu/color-selector-popover/index.js +1 -7
- package/dist/basic-sdk/extension/plugins/video/plugin.js +0 -1
- package/dist/basic-sdk/extension/toolbar/insert-element-toolbar/index.js +1 -0
- package/dist/basic-sdk/extension/utils/index.js +12 -2
- package/dist/components/doc-operations/collaborators-operation/index.js +2 -3
- package/dist/components/toast/toast.js +2 -5
- package/package.json +3 -2
|
@@ -12,7 +12,6 @@ var _reactstrap = require("reactstrap");
|
|
|
12
12
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
13
13
|
var _context = _interopRequireDefault(require("../../../context"));
|
|
14
14
|
var _commentEditor = _interopRequireDefault(require("./comment-editor"));
|
|
15
|
-
var _notificationHooks = require("../hooks/notification-hooks");
|
|
16
15
|
var _commentDeletePopover = _interopRequireDefault(require("./comment-delete-popover"));
|
|
17
16
|
var _mdToHtml = _interopRequireDefault(require("../../../slate-convert/md-to-html"));
|
|
18
17
|
const CommentItemReply = _ref => {
|
|
@@ -25,11 +24,7 @@ const CommentItemReply = _ref => {
|
|
|
25
24
|
t
|
|
26
25
|
} = _ref;
|
|
27
26
|
const [isDropdownOpen, setDropdownOpen] = (0, _react.useState)(false);
|
|
28
|
-
const {
|
|
29
|
-
notificationsInfo
|
|
30
|
-
} = (0, _notificationHooks.useNotificationContext)();
|
|
31
27
|
const itemRef = (0, _react.useRef)(null);
|
|
32
|
-
const isUnseen = notificationsInfo.notifications_map[`sdoc_notification_${reply.comment_id}_${reply.id}`] ? true : false;
|
|
33
28
|
const [isEditing, setIsEditing] = (0, _react.useState)(false);
|
|
34
29
|
const [editorContent, setEditorContent] = (0, _react.useState)('');
|
|
35
30
|
const replyOpToolsId = `replyOpTools_${reply.id}`;
|
|
@@ -64,52 +64,44 @@ const ColorMenu = _ref => {
|
|
|
64
64
|
const color = event.target.dataset.color;
|
|
65
65
|
onSetColor(color);
|
|
66
66
|
}
|
|
67
|
-
|
|
68
67
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
69
68
|
}, [recentUsedColors, recentUsedColorsKey, isShowMenu, isPickerShow]);
|
|
70
69
|
const toggle = (0, _react.useCallback)(() => {
|
|
71
70
|
if (isPickerShow) return;
|
|
72
71
|
popoverRef.current.toggle();
|
|
73
72
|
setMenuShow(!isShowMenu);
|
|
74
|
-
|
|
75
73
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
76
74
|
}, [isShowMenu, isPickerShow]);
|
|
77
75
|
const moreColorsPopoverToggle = (0, _react.useCallback)(() => {
|
|
78
76
|
moreColorsPopoverRef.current.toggle();
|
|
79
77
|
setPickerShow(!isPickerShow);
|
|
80
|
-
|
|
81
78
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
82
79
|
}, [moreColorsPopoverRef, isPickerShow]);
|
|
83
80
|
const onClick = (0, _react.useCallback)(event => {
|
|
84
81
|
(0, _mouseEvent.eventStopPropagation)(event);
|
|
85
|
-
|
|
86
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
87
82
|
}, []);
|
|
88
83
|
const onChange = (0, _react.useCallback)(color => {
|
|
89
84
|
const validColor = color.hex;
|
|
90
85
|
onSetColor(validColor, false);
|
|
91
|
-
|
|
92
86
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
93
87
|
}, [disabled]);
|
|
94
|
-
const validClassName = (0, _classnames.default)(className, 'sdoc-color-menu sdoc-menu-with-dropdown', {
|
|
95
|
-
'menu-show': isShowMenu,
|
|
96
|
-
'disabled': disabled,
|
|
97
|
-
'rich-icon-btn d-flex': isRichEditor,
|
|
98
|
-
'rich-icon-btn-disabled': isRichEditor && disabled,
|
|
99
|
-
'rich-icon-btn-hover': isRichEditor && !disabled,
|
|
100
|
-
'btn btn-icon btn-secondary btn-active d-flex': !isRichEditor
|
|
101
|
-
});
|
|
102
88
|
const setLastUsedColor = (0, _react.useCallback)(event => {
|
|
103
89
|
(0, _mouseEvent.eventStopPropagation)(event);
|
|
104
90
|
onSetColor(lastUsedColor, false);
|
|
105
|
-
|
|
106
91
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
107
92
|
}, [recentUsedColors, lastUsedColor, disabled]);
|
|
108
93
|
const buttonId = `button-${id}`;
|
|
109
94
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("button", {
|
|
110
95
|
type: "button",
|
|
111
96
|
"aria-label": ariaLabel,
|
|
112
|
-
className:
|
|
97
|
+
className: (0, _classnames.default)(className, 'sdoc-color-menu sdoc-menu-with-dropdown', {
|
|
98
|
+
'menu-show': isShowMenu,
|
|
99
|
+
'disabled': disabled,
|
|
100
|
+
'rich-icon-btn d-flex': isRichEditor,
|
|
101
|
+
'rich-icon-btn-disabled': isRichEditor && disabled,
|
|
102
|
+
'rich-icon-btn-hover': isRichEditor && !disabled,
|
|
103
|
+
'btn btn-icon btn-secondary btn-active d-flex': !isRichEditor
|
|
104
|
+
}),
|
|
113
105
|
id: buttonId,
|
|
114
106
|
disabled: disabled
|
|
115
107
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -199,7 +191,7 @@ const ColorMenu = _ref => {
|
|
|
199
191
|
target: "sdoc-more-colors",
|
|
200
192
|
className: "sdoc-more-colors-popover",
|
|
201
193
|
trigger: "hover",
|
|
202
|
-
placement: "
|
|
194
|
+
placement: "right",
|
|
203
195
|
hideArrow: true,
|
|
204
196
|
fade: false,
|
|
205
197
|
toggle: moreColorsPopoverToggle,
|
|
@@ -150,7 +150,8 @@ const FileLinkInsertDialog = _ref => {
|
|
|
150
150
|
document.removeEventListener('keydown', onKeydown);
|
|
151
151
|
unsubscribeCloseDialog();
|
|
152
152
|
};
|
|
153
|
-
|
|
153
|
+
// eslint-disable-next-line
|
|
154
|
+
}, [closeDialog, eventBus, getPosition, onClick, onKeydown, onScroll]);
|
|
154
155
|
const onSearch = (0, _react.useCallback)((0, _debounce.default)(async searchText => {
|
|
155
156
|
// Show history files when search is empty
|
|
156
157
|
if (searchText.trim().length === 0) {
|
|
@@ -223,6 +224,7 @@ const FileLinkInsertDialog = _ref => {
|
|
|
223
224
|
newFileName: createName,
|
|
224
225
|
...external_props
|
|
225
226
|
});
|
|
227
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
226
228
|
}, [editor, element, newFileName]);
|
|
227
229
|
const createFileTipDefault = (0, _react.useMemo)(() => {
|
|
228
230
|
return 'Create_a_new_file';
|
|
@@ -5,17 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
8
|
var _react = _interopRequireDefault(require("react"));
|
|
10
9
|
class MenuGroup extends _react.default.PureComponent {
|
|
11
10
|
render() {
|
|
12
11
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
13
|
-
className: 'btn-group ' + this.props.className,
|
|
12
|
+
className: 'btn-group ' + (this.props.className || 'menu-group'),
|
|
14
13
|
role: 'group'
|
|
15
14
|
}, this.props.children);
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
|
-
(0, _defineProperty2.default)(MenuGroup, "defaultProps", {
|
|
19
|
-
className: 'menu-group'
|
|
20
|
-
});
|
|
21
17
|
var _default = exports.default = MenuGroup;
|
|
@@ -65,6 +65,7 @@ const renderCallout = (_ref, editor) => {
|
|
|
65
65
|
if (isContainUnitElement) return false;
|
|
66
66
|
const elementContent = _slate.Node.string(element);
|
|
67
67
|
return !elementContent.length;
|
|
68
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
68
69
|
}, [element, isSelected]);
|
|
69
70
|
const handleCloseColorSelector = (0, _react.useCallback)(() => {
|
|
70
71
|
setIsShowColorSelector(false);
|
|
@@ -17,6 +17,7 @@ var _chartEditDialog = _interopRequireDefault(require("./chart-edit-dialog"));
|
|
|
17
17
|
var _context = _interopRequireDefault(require("../../../../context"));
|
|
18
18
|
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
19
19
|
var _helpers = require("./helpers");
|
|
20
|
+
var _utils = require("../../utils");
|
|
20
21
|
var _constants = require("../../constants");
|
|
21
22
|
require("./render-elem.css");
|
|
22
23
|
const Chart = _ref => {
|
|
@@ -50,11 +51,15 @@ const Chart = _ref => {
|
|
|
50
51
|
top,
|
|
51
52
|
left
|
|
52
53
|
} = chartRef.current.getBoundingClientRect();
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
const curTop = top - 42; // top = top distance - menu height
|
|
55
|
+
const curLeft = left - 3;
|
|
56
|
+
const newMenuPosition = (0, _utils.checkOverflow)(editor, {
|
|
57
|
+
top: curTop,
|
|
58
|
+
left: curLeft
|
|
56
59
|
});
|
|
60
|
+
setMenuPosition(newMenuPosition);
|
|
57
61
|
}
|
|
62
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
58
63
|
}, []);
|
|
59
64
|
const onScroll = (0, _react.useCallback)(e => {
|
|
60
65
|
setPosition();
|
|
@@ -17,7 +17,7 @@ class ListMenu extends _react.default.Component {
|
|
|
17
17
|
(0, _defineProperty2.default)(this, "isActive", () => {
|
|
18
18
|
const {
|
|
19
19
|
editor,
|
|
20
|
-
type
|
|
20
|
+
type = _constants.UNORDERED_LIST
|
|
21
21
|
} = this.props;
|
|
22
22
|
return (0, _helpers.getListType)(editor, type) === type;
|
|
23
23
|
});
|
|
@@ -34,7 +34,7 @@ class ListMenu extends _react.default.Component {
|
|
|
34
34
|
if (this.isDisabled()) return;
|
|
35
35
|
const {
|
|
36
36
|
editor,
|
|
37
|
-
type
|
|
37
|
+
type = _constants.UNORDERED_LIST
|
|
38
38
|
} = this.props;
|
|
39
39
|
|
|
40
40
|
// 执行命令
|
|
@@ -46,7 +46,7 @@ class ListMenu extends _react.default.Component {
|
|
|
46
46
|
const {
|
|
47
47
|
isRichEditor,
|
|
48
48
|
className,
|
|
49
|
-
type,
|
|
49
|
+
type = _constants.UNORDERED_LIST,
|
|
50
50
|
ariaLabel
|
|
51
51
|
} = this.props;
|
|
52
52
|
const menuConfig = _constants.MENUS_CONFIG_MAP[type];
|
|
@@ -62,7 +62,4 @@ class ListMenu extends _react.default.Component {
|
|
|
62
62
|
return /*#__PURE__*/_react.default.createElement(_commons.MenuItem, props);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
(0, _defineProperty2.default)(ListMenu, "defaultProps", {
|
|
66
|
-
type: _constants.UNORDERED_LIST
|
|
67
|
-
});
|
|
68
65
|
var _default = exports.default = ListMenu;
|
|
@@ -10,7 +10,6 @@ var _core = require("../../../core");
|
|
|
10
10
|
var _queries = require("../queries");
|
|
11
11
|
var _unwrapList = require("./unwrap-list");
|
|
12
12
|
var _model = require("../model");
|
|
13
|
-
var _slateReact = require("@seafile/slate-react");
|
|
14
13
|
const wrapLineList = (editor, type) => {
|
|
15
14
|
const list = (0, _model.generateEmptyList)(type);
|
|
16
15
|
_slate.Transforms.wrapNodes(editor, list);
|
|
@@ -187,6 +187,7 @@ const ParticipantPopover = _ref => {
|
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
189
|
handleInvolvedKeyUp(event);
|
|
190
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
190
191
|
}, [editor, handleInvolvedKeyUp, handleSelectCollaborator, handleSelectingCollaborator]);
|
|
191
192
|
|
|
192
193
|
// Add the Enter keydown event listener during the capture phase
|
|
@@ -116,6 +116,7 @@ const ResizeHandlers = _ref => {
|
|
|
116
116
|
'mouseleave': onMouseUp
|
|
117
117
|
});
|
|
118
118
|
};
|
|
119
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
119
120
|
}, [handleResizeColumn, column, isDraggingResizeHandler, isMouseNearBorder]);
|
|
120
121
|
let leftAccumulator = 0;
|
|
121
122
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -18,21 +18,23 @@ class Draggable extends _react.default.Component {
|
|
|
18
18
|
drag: null
|
|
19
19
|
});
|
|
20
20
|
(0, _defineProperty2.default)(this, "onMouseDown", e => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
e.preventDefault
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
if (this.props.onDragStart) {
|
|
22
|
+
const drag = this.props.onDragStart(e);
|
|
23
|
+
if (e.preventDefault) {
|
|
24
|
+
e.preventDefault();
|
|
25
|
+
}
|
|
26
|
+
(0, _mouseEvent.eventStopPropagation)(e);
|
|
27
|
+
if (drag === null && e.button !== 0) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.setState({
|
|
31
|
+
drag
|
|
32
|
+
});
|
|
28
33
|
}
|
|
29
34
|
window.addEventListener('mouseup', this.onMouseUp);
|
|
30
35
|
window.addEventListener('mousemove', this.onMouseMove);
|
|
31
36
|
window.addEventListener('touchend', this.onMouseUp);
|
|
32
37
|
window.addEventListener('touchmove', this.onMouseMove);
|
|
33
|
-
this.setState({
|
|
34
|
-
drag
|
|
35
|
-
});
|
|
36
38
|
});
|
|
37
39
|
(0, _defineProperty2.default)(this, "onMouseMove", e => {
|
|
38
40
|
if (this.state.drag === null) {
|
|
@@ -42,12 +44,12 @@ class Draggable extends _react.default.Component {
|
|
|
42
44
|
e.preventDefault();
|
|
43
45
|
}
|
|
44
46
|
(0, _mouseEvent.eventStopPropagation)(e);
|
|
45
|
-
this.props.onDrag(e);
|
|
47
|
+
this.props.onDrag && this.props.onDrag(e);
|
|
46
48
|
});
|
|
47
49
|
(0, _defineProperty2.default)(this, "onMouseUp", e => {
|
|
48
50
|
(0, _mouseEvent.eventStopPropagation)(e);
|
|
49
51
|
this.cleanUp();
|
|
50
|
-
this.props.onDragEnd(e, this.state.drag);
|
|
52
|
+
this.props.onDragEnd && this.props.onDragEnd(e, this.state.drag);
|
|
51
53
|
this.setState({
|
|
52
54
|
drag: null
|
|
53
55
|
});
|
|
@@ -73,9 +75,4 @@ class Draggable extends _react.default.Component {
|
|
|
73
75
|
}));
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
|
-
(0, _defineProperty2.default)(Draggable, "defaultProps", {
|
|
77
|
-
onDragStart: () => true,
|
|
78
|
-
onDragEnd: () => {},
|
|
79
|
-
onDrag: () => {}
|
|
80
|
-
});
|
|
81
78
|
var _default = exports.default = Draggable;
|
|
@@ -55,7 +55,7 @@ class CellFormatter extends _react.default.Component {
|
|
|
55
55
|
column,
|
|
56
56
|
cellValue,
|
|
57
57
|
collaborators,
|
|
58
|
-
isSample,
|
|
58
|
+
isSample = true,
|
|
59
59
|
isSeatableRow
|
|
60
60
|
} = this.props;
|
|
61
61
|
const {
|
|
@@ -287,7 +287,4 @@ class CellFormatter extends _react.default.Component {
|
|
|
287
287
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, this.renderFormatter());
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
|
-
(0, _defineProperty2.default)(CellFormatter, "defaultProps", {
|
|
291
|
-
isSample: true
|
|
292
|
-
});
|
|
293
290
|
var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(CellFormatter);
|
|
@@ -18,6 +18,7 @@ var _recordList = _interopRequireDefault(require("./record-list"));
|
|
|
18
18
|
var _opMenu = _interopRequireDefault(require("../op-menu"));
|
|
19
19
|
var _useScrollContext = require("../../../../hooks/use-scroll-context");
|
|
20
20
|
var _helpers = require("../../seatable-column/helpers");
|
|
21
|
+
var _utils = require("../../../utils");
|
|
21
22
|
var _helpers2 = require("../helpers");
|
|
22
23
|
require("./index.css");
|
|
23
24
|
function SeaTableTable(_ref) {
|
|
@@ -197,17 +198,13 @@ function SeaTableTable(_ref) {
|
|
|
197
198
|
left
|
|
198
199
|
} = seaTableRef.current.getBoundingClientRect();
|
|
199
200
|
const menuTop = top - 42; // top = top distance - menu height
|
|
200
|
-
const newMenuPosition = {
|
|
201
|
+
const newMenuPosition = (0, _utils.checkOverflow)(editor, {
|
|
201
202
|
top: menuTop,
|
|
202
|
-
left
|
|
203
|
-
};
|
|
204
|
-
// 201 is distance with browser top
|
|
205
|
-
if (menuTop < 201) {
|
|
206
|
-
newMenuPosition['display'] = 'none';
|
|
207
|
-
}
|
|
203
|
+
left
|
|
204
|
+
});
|
|
208
205
|
setMenuPosition(newMenuPosition);
|
|
209
206
|
}
|
|
210
|
-
}, [isShowMenu, readOnly]);
|
|
207
|
+
}, [editor, isShowMenu, readOnly]);
|
|
211
208
|
(0, _react.useEffect)(() => {
|
|
212
209
|
if (readOnly) return;
|
|
213
210
|
let observerRefValue = null;
|
|
@@ -23,7 +23,7 @@ class DtableSearchInput extends _react.Component {
|
|
|
23
23
|
this.timer && clearTimeout(this.timer);
|
|
24
24
|
const {
|
|
25
25
|
onChange,
|
|
26
|
-
wait
|
|
26
|
+
wait = 100
|
|
27
27
|
} = this.props;
|
|
28
28
|
let text = e.target.value;
|
|
29
29
|
this.setState({
|
|
@@ -85,7 +85,7 @@ class DtableSearchInput extends _react.Component {
|
|
|
85
85
|
}, "\xD7");
|
|
86
86
|
});
|
|
87
87
|
this.state = {
|
|
88
|
-
searchValue: props.value
|
|
88
|
+
searchValue: props.value || ''
|
|
89
89
|
};
|
|
90
90
|
this.isInputtingChinese = false;
|
|
91
91
|
this.timer = null;
|
|
@@ -109,7 +109,7 @@ class DtableSearchInput extends _react.Component {
|
|
|
109
109
|
autoFocus,
|
|
110
110
|
className,
|
|
111
111
|
onKeyDown,
|
|
112
|
-
disabled,
|
|
112
|
+
disabled = false,
|
|
113
113
|
style
|
|
114
114
|
} = this.props;
|
|
115
115
|
const {
|
|
@@ -131,9 +131,4 @@ class DtableSearchInput extends _react.Component {
|
|
|
131
131
|
}), this.renderClear());
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
(0, _defineProperty2.default)(DtableSearchInput, "defaultProps", {
|
|
135
|
-
wait: 100,
|
|
136
|
-
disabled: false,
|
|
137
|
-
value: ''
|
|
138
|
-
});
|
|
139
134
|
var _default = exports.default = DtableSearchInput;
|
|
@@ -163,7 +163,7 @@ class FilterPopover extends _react.Component {
|
|
|
163
163
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
164
164
|
ref: ref => this.dtablePopoverRef = ref,
|
|
165
165
|
onClick: this.onPopoverInsideClick,
|
|
166
|
-
className: this.props.filtersClassName
|
|
166
|
+
className: this.props.filtersClassName || ''
|
|
167
167
|
}, /*#__PURE__*/_react.default.createElement(_filtersList.default, {
|
|
168
168
|
filterConjunction: filterConjunction,
|
|
169
169
|
filters: filters,
|
|
@@ -194,7 +194,4 @@ class FilterPopover extends _react.Component {
|
|
|
194
194
|
});
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
-
(0, _defineProperty2.default)(FilterPopover, "defaultProps", {
|
|
198
|
-
filtersClassName: ''
|
|
199
|
-
});
|
|
200
197
|
var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(FilterPopover);
|
package/dist/basic-sdk/extension/plugins/seatable-tables/seatable-settings/filter-setter/index.js
CHANGED
|
@@ -37,7 +37,8 @@ class FilterSetter extends _react.default.Component {
|
|
|
37
37
|
filters,
|
|
38
38
|
columns,
|
|
39
39
|
collaborators,
|
|
40
|
-
|
|
40
|
+
target = 'sdoc-editor-filter-popover',
|
|
41
|
+
isNeedSubmit = false,
|
|
41
42
|
isShowFilterPopover,
|
|
42
43
|
container
|
|
43
44
|
} = this.props;
|
|
@@ -47,7 +48,7 @@ class FilterSetter extends _react.default.Component {
|
|
|
47
48
|
container: container,
|
|
48
49
|
filtersClassName: filtersClassName,
|
|
49
50
|
popperClassName: popperClassName,
|
|
50
|
-
target:
|
|
51
|
+
target: target,
|
|
51
52
|
isNeedSubmit: isNeedSubmit,
|
|
52
53
|
columns: columns,
|
|
53
54
|
collaborators: collaborators,
|
|
@@ -59,8 +60,4 @@ class FilterSetter extends _react.default.Component {
|
|
|
59
60
|
}));
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
(0, _defineProperty2.default)(FilterSetter, "defaultProps", {
|
|
63
|
-
target: 'sdoc-editor-filter-popover',
|
|
64
|
-
isNeedSubmit: false
|
|
65
|
-
});
|
|
66
63
|
var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(FilterSetter);
|
|
@@ -26,7 +26,7 @@ class HideColumnSetter extends _react.Component {
|
|
|
26
26
|
}
|
|
27
27
|
render() {
|
|
28
28
|
const {
|
|
29
|
-
target,
|
|
29
|
+
target = 'sdoc-editor-hide-column-popover',
|
|
30
30
|
columns,
|
|
31
31
|
isShowHideColumnSetter,
|
|
32
32
|
container,
|
|
@@ -47,7 +47,4 @@ class HideColumnSetter extends _react.Component {
|
|
|
47
47
|
}));
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
(0, _defineProperty2.default)(HideColumnSetter, "defaultProps", {
|
|
51
|
-
target: 'sdoc-editor-hide-column-popover'
|
|
52
|
-
});
|
|
53
50
|
var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(HideColumnSetter);
|
package/dist/basic-sdk/extension/plugins/seatable-tables/seatable-settings/sort-setter/index.js
CHANGED
|
@@ -23,9 +23,10 @@ class SortSetter extends _react.Component {
|
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
25
25
|
const {
|
|
26
|
+
target = 'sdoc-editor-sort-popover',
|
|
27
|
+
isNeedSubmit = false,
|
|
26
28
|
sorts,
|
|
27
29
|
columns,
|
|
28
|
-
isNeedSubmit,
|
|
29
30
|
isShowSortPopover,
|
|
30
31
|
container,
|
|
31
32
|
popperClassName,
|
|
@@ -33,7 +34,7 @@ class SortSetter extends _react.Component {
|
|
|
33
34
|
} = this.props;
|
|
34
35
|
if (!columns) return null;
|
|
35
36
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isShowSortPopover && /*#__PURE__*/_react.default.createElement(_sortPopover.default, {
|
|
36
|
-
target:
|
|
37
|
+
target: target,
|
|
37
38
|
popperClassName: popperClassName,
|
|
38
39
|
container: container,
|
|
39
40
|
isNeedSubmit: isNeedSubmit,
|
|
@@ -44,8 +45,4 @@ class SortSetter extends _react.Component {
|
|
|
44
45
|
}));
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
|
-
(0, _defineProperty2.default)(SortSetter, "defaultProps", {
|
|
48
|
-
target: 'sdoc-editor-sort-popover',
|
|
49
|
-
isNeedSubmit: false
|
|
50
|
-
});
|
|
51
48
|
var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(SortSetter);
|
|
@@ -14,12 +14,14 @@ class CommonMenu extends _react.Component {
|
|
|
14
14
|
super(props);
|
|
15
15
|
(0, _defineProperty2.default)(this, "getClassName", () => {
|
|
16
16
|
const {
|
|
17
|
-
isRichEditor,
|
|
18
|
-
className,
|
|
17
|
+
isRichEditor = true,
|
|
18
|
+
className = 'menu-group-item',
|
|
19
19
|
disabled
|
|
20
20
|
} = this.props;
|
|
21
21
|
let itemClass = 'btn btn-icon btn-secondary btn-active d-flex';
|
|
22
|
-
if (!isRichEditor)
|
|
22
|
+
if (!isRichEditor) {
|
|
23
|
+
return itemClass + ' ' + className + ' sdoc-menu-with-dropdown';
|
|
24
|
+
}
|
|
23
25
|
itemClass = `rich-icon-btn d-flex ${disabled ? 'rich-icon-btn-disabled' : 'rich-icon-btn-hover'}`;
|
|
24
26
|
return itemClass + ' ' + className + ' sdoc-menu-with-dropdown';
|
|
25
27
|
});
|
|
@@ -53,11 +55,10 @@ class CommonMenu extends _react.Component {
|
|
|
53
55
|
const {
|
|
54
56
|
isShowMenu
|
|
55
57
|
} = this.state;
|
|
56
|
-
const className = this.getClassName();
|
|
57
58
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("button", {
|
|
58
59
|
id: id,
|
|
59
60
|
type: "button",
|
|
60
|
-
className:
|
|
61
|
+
className: this.getClassName()
|
|
61
62
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
62
63
|
className: "sdoc-menu-with-dropdown-icon"
|
|
63
64
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
@@ -79,8 +80,4 @@ class CommonMenu extends _react.Component {
|
|
|
79
80
|
}, children)));
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
|
-
(0, _defineProperty2.default)(CommonMenu, "defaultProps", {
|
|
83
|
-
isRichEditor: true,
|
|
84
|
-
className: 'menu-group-item'
|
|
85
|
-
});
|
|
86
83
|
var _default = exports.default = CommonMenu;
|
|
@@ -67,31 +67,25 @@ const ColorSelectorPopover = _ref => {
|
|
|
67
67
|
const color = event.target.dataset.color;
|
|
68
68
|
onSetColor(color);
|
|
69
69
|
}
|
|
70
|
-
|
|
71
70
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
71
|
}, [recentUsedColors, recentUsedColorsKey, isShowMenu, isPickerShow]);
|
|
73
72
|
const toggle = (0, _react.useCallback)(() => {
|
|
74
73
|
if (isPickerShow) return;
|
|
75
74
|
popoverRef.current.toggle();
|
|
76
75
|
setMenuShow(!isShowMenu);
|
|
77
|
-
|
|
78
76
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
79
77
|
}, [isShowMenu, isPickerShow]);
|
|
80
78
|
const moreColorsPopoverToggle = (0, _react.useCallback)(() => {
|
|
81
79
|
moreColorsPopoverRef.current.toggle();
|
|
82
80
|
setPickerShow(!isPickerShow);
|
|
83
|
-
|
|
84
81
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
85
82
|
}, [moreColorsPopoverRef, isPickerShow]);
|
|
86
83
|
const onMouseDown = (0, _react.useCallback)(event => {
|
|
87
84
|
(0, _mouseEvent.eventStopPropagation)(event);
|
|
88
|
-
|
|
89
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
90
85
|
}, []);
|
|
91
86
|
const onChange = (0, _react.useCallback)(color => {
|
|
92
87
|
const validColor = color.hex;
|
|
93
88
|
onSetColor(validColor, false);
|
|
94
|
-
|
|
95
89
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
96
90
|
}, [readonly]);
|
|
97
91
|
return /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledPopover, {
|
|
@@ -162,7 +156,7 @@ const ColorSelectorPopover = _ref => {
|
|
|
162
156
|
target: "sdoc-more-colors",
|
|
163
157
|
className: "sdoc-more-colors-popover sdoc-table-more-colors",
|
|
164
158
|
trigger: "hover",
|
|
165
|
-
placement: "right
|
|
159
|
+
placement: "right",
|
|
166
160
|
hideArrow: true,
|
|
167
161
|
fade: false,
|
|
168
162
|
toggle: moreColorsPopoverToggle,
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
8
|
var _slate = require("@seafile/slate");
|
|
10
9
|
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
11
10
|
var _core = require("../../core");
|
|
@@ -291,6 +291,7 @@ const QuickInsertBlockMenu = _ref => {
|
|
|
291
291
|
delete items[_constants.VIDEO];
|
|
292
292
|
}
|
|
293
293
|
return items;
|
|
294
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
294
295
|
}, [quickInsertMenuSearchMap, isDisableImage, onInsertImageToggle, isDisableVideo, isDisableMultiColumn, onInsertVideoToggle, isDisableTable, editor, createTable, callback, handleClosePopover, openLinkDialog, onInsertCodeBlock, isDisableCallout, onInsertCheckList, isEmptyNode, onInsertCallout, onInsertList, onInsert, createMultiColumn]);
|
|
295
296
|
const getSelectItemDom = selectIndex => {
|
|
296
297
|
const dropDownItemWrapper = downDownWrapperRef.current;
|
|
@@ -4,8 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.onHandleOverflowScroll = exports.isSameDomain = exports.isOverflowPortByDirection = exports.isImage = exports.IMAGE_TYPES = void 0;
|
|
7
|
+
exports.onHandleOverflowScroll = exports.isSameDomain = exports.isOverflowPortByDirection = exports.isImage = exports.checkOverflow = exports.IMAGE_TYPES = void 0;
|
|
8
8
|
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
9
|
+
var _constants = require("../../constants");
|
|
9
10
|
const IMAGE_TYPES = exports.IMAGE_TYPES = ['png', 'jpg', 'gif'];
|
|
10
11
|
const isImage = url => {
|
|
11
12
|
if (!url) return false;
|
|
@@ -68,4 +69,13 @@ const onHandleOverflowScroll = (currentSelectItem, downDownWrapperRef) => {
|
|
|
68
69
|
});
|
|
69
70
|
}
|
|
70
71
|
};
|
|
71
|
-
exports.onHandleOverflowScroll = onHandleOverflowScroll;
|
|
72
|
+
exports.onHandleOverflowScroll = onHandleOverflowScroll;
|
|
73
|
+
const checkOverflow = (editor, position) => {
|
|
74
|
+
if (editor.editorType === _constants.DOCUMENT_PLUGIN_EDITOR) {
|
|
75
|
+
if (position.top < 201 || position.top + 42 > window.innerHeight) {
|
|
76
|
+
position['display'] = 'none';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return position;
|
|
80
|
+
};
|
|
81
|
+
exports.checkOverflow = checkOverflow;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
10
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
10
|
var _basicSdk = require("../../../basic-sdk");
|
|
12
11
|
var _context = _interopRequireDefault(require("../../../context"));
|
|
13
12
|
var _collaboratorsPopover = _interopRequireDefault(require("./collaborators-popover"));
|
|
@@ -73,7 +72,7 @@ class CollaboratorsOperation extends _react.default.PureComponent {
|
|
|
73
72
|
const {
|
|
74
73
|
collaborators
|
|
75
74
|
} = this.state;
|
|
76
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
75
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
77
76
|
className: "op-item collaborators-op-item",
|
|
78
77
|
id: "collaborators"
|
|
79
78
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
@@ -93,7 +93,7 @@ class Toast extends _react.default.PureComponent {
|
|
|
93
93
|
padding: 8
|
|
94
94
|
}
|
|
95
95
|
}, /*#__PURE__*/_react.default.createElement(_alert.default, {
|
|
96
|
-
intent: this.props.intent,
|
|
96
|
+
intent: this.props.intent || 'none',
|
|
97
97
|
title: this.props.title,
|
|
98
98
|
children: this.props.children || '',
|
|
99
99
|
isRemovable: this.props.hasCloseButton,
|
|
@@ -101,7 +101,4 @@ class Toast extends _react.default.PureComponent {
|
|
|
101
101
|
}))));
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
exports.default = Toast;
|
|
105
|
-
(0, _defineProperty2.default)(Toast, "defaultProps", {
|
|
106
|
-
intent: 'none'
|
|
107
|
-
});
|
|
104
|
+
exports.default = Toast;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.55",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "This is a sdoc editor",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"remark-parse": "11.0.0",
|
|
40
40
|
"remark-rehype": "11.0.0",
|
|
41
41
|
"remark-stringify": "11.0.0",
|
|
42
|
-
"sea-chart": "2.0.
|
|
42
|
+
"sea-chart": "2.0.11",
|
|
43
43
|
"slugid": "3.2.0",
|
|
44
44
|
"socket.io-client": "4.8.1",
|
|
45
45
|
"type-of": "2.0.1",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"url-parse": "1.5.10"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
|
+
"lint-fix": "eslint --ext .jsx,.js ./src --fix",
|
|
51
52
|
"clean": "rm -rf dist && mkdir dist",
|
|
52
53
|
"start.bak": "node scripts/start.js",
|
|
53
54
|
"start": "cross-env NODE_ENV=development node dev-server.js",
|