@seafile/sdoc-editor 0.1.125 → 0.1.127
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/comment/editor-comment.js +11 -2
- package/dist/basic-sdk/comment/comment/style.css +1 -0
- package/dist/basic-sdk/constants/index.js +2 -1
- package/dist/basic-sdk/editor.js +2 -1
- package/dist/basic-sdk/extension/constants/index.js +71 -0
- package/dist/basic-sdk/extension/index.js +2 -2
- package/dist/basic-sdk/extension/plugins/blockquote/render-elem.js +2 -1
- package/dist/basic-sdk/extension/plugins/check-list/index.js +2 -2
- package/dist/basic-sdk/extension/plugins/check-list/render-elem.js +7 -10
- package/dist/basic-sdk/extension/plugins/code-block/render-elem.js +8 -9
- package/dist/basic-sdk/extension/plugins/header/render-elem.js +2 -2
- package/dist/basic-sdk/extension/plugins/link/menu/add-link-dialog.js +7 -2
- package/dist/basic-sdk/extension/plugins/list/render-elem.js +3 -1
- package/dist/basic-sdk/extension/plugins/paragraph/render-elem.js +2 -1
- package/dist/basic-sdk/extension/plugins/sdoc-link/dialogs/select-sdoc-file-dialog/index.css +55 -0
- package/dist/basic-sdk/extension/plugins/sdoc-link/{menu/sdoc-link-file-dialog.js → dialogs/select-sdoc-file-dialog/index.js} +36 -29
- package/dist/basic-sdk/extension/plugins/sdoc-link/dialogs/select-sdoc-file-dialog/local-files/index.css +75 -0
- package/dist/basic-sdk/extension/plugins/sdoc-link/{menu/local-files.js → dialogs/select-sdoc-file-dialog/local-files/index.js} +42 -32
- package/dist/basic-sdk/extension/plugins/sdoc-link/{menu/sdoc-link-hover-menu.js → hover-menu/index.js} +1 -1
- package/dist/basic-sdk/extension/plugins/sdoc-link/menu/index.js +3 -3
- package/dist/basic-sdk/extension/plugins/sdoc-link/render-elem.js +2 -2
- package/dist/basic-sdk/extension/plugins/table/popover/table-size-popover/index.js +11 -4
- package/dist/basic-sdk/extension/plugins/table/render/table-root.js +1 -0
- package/dist/basic-sdk/extension/render/render-element.js +20 -7
- package/dist/basic-sdk/extension/toolbar/index.js +2 -1
- package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +121 -0
- package/dist/basic-sdk/extension/toolbar/side-toolbar/index.css +24 -0
- package/dist/basic-sdk/extension/toolbar/side-toolbar/index.js +123 -0
- package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-below-menu.js +23 -0
- package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-block-menu.js +95 -0
- package/dist/basic-sdk/extension/toolbar/side-toolbar/side-menu-item.js +35 -0
- package/dist/basic-sdk/extension/toolbar/side-toolbar/side-menu.css +64 -0
- package/dist/basic-sdk/extension/toolbar/side-toolbar/side-menu.js +76 -0
- package/dist/basic-sdk/extension/toolbar/side-toolbar/transform-menus.js +41 -0
- package/dist/basic-sdk/layout/article-container.js +3 -2
- package/dist/basic-sdk/outline/index.js +6 -6
- package/dist/basic-sdk/socket/socket-client.js +1 -1
- package/dist/basic-sdk/socket/socket-manager.js +0 -4
- package/package.json +1 -1
- package/public/locales/en/sdoc-editor.json +7 -1
- package/public/locales/zh-CN/sdoc-editor.json +8 -1
- package/dist/basic-sdk/extension/plugins/sdoc-link/menu/local-files.css +0 -98
- package/dist/basic-sdk/extension/plugins/sdoc-link/menu/sdoc-link-file-dialog.css +0 -35
- /package/dist/basic-sdk/extension/plugins/sdoc-link/{menu/sdoc-link-hover-menu.css → hover-menu/index.css} +0 -0
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import { useSlateStatic } from '@seafile/slate-react';
|
|
4
|
+
import { Node } from '@seafile/slate';
|
|
3
5
|
import useSelectionUpdate from '../../hooks/use-selection-update';
|
|
4
6
|
import { useCursorPosition } from '../helper';
|
|
5
7
|
import CommentList from './comment-list';
|
|
@@ -7,6 +9,7 @@ import { useSelectionElement } from '../../hooks/use-selection-element';
|
|
|
7
9
|
import { useCommentContext } from '../hooks/use-comment-context';
|
|
8
10
|
var EditorComment = function EditorComment() {
|
|
9
11
|
useSelectionUpdate();
|
|
12
|
+
var editor = useSlateStatic();
|
|
10
13
|
var selectionElement = useSelectionElement();
|
|
11
14
|
var _useState = useState(false),
|
|
12
15
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -17,10 +20,16 @@ var EditorComment = function EditorComment() {
|
|
|
17
20
|
}, []);
|
|
18
21
|
var cursor = useCursorPosition();
|
|
19
22
|
var style = useMemo(function () {
|
|
23
|
+
var _Node$string;
|
|
24
|
+
if (selectionElement && ((_Node$string = Node.string(selectionElement)) === null || _Node$string === void 0 ? void 0 : _Node$string.length) === 0) {
|
|
25
|
+
return {
|
|
26
|
+
top: '-99999px'
|
|
27
|
+
};
|
|
28
|
+
}
|
|
20
29
|
return {
|
|
21
30
|
top: cursor.y === 0 || isShowComments ? '-99999px' : cursor.y
|
|
22
31
|
};
|
|
23
|
-
}, [cursor, isShowComments]);
|
|
32
|
+
}, [cursor, isShowComments, selectionElement]);
|
|
24
33
|
|
|
25
34
|
// When selectionElement update, recalculate comment's panel state
|
|
26
35
|
var _useState3 = useState([]),
|
|
@@ -41,7 +50,7 @@ var EditorComment = function EditorComment() {
|
|
|
41
50
|
}
|
|
42
51
|
setComments([]);
|
|
43
52
|
setIsShowComments(false);
|
|
44
|
-
}, [element_comments_map, selectionElement]);
|
|
53
|
+
}, [element_comments_map, selectionElement, editor.selection]);
|
|
45
54
|
return /*#__PURE__*/React.createElement("div", {
|
|
46
55
|
className: "sdoc-comment-container"
|
|
47
56
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export var INTERNAL_EVENT = {
|
|
2
2
|
CANCEL_TABLE_SELECT_RANGE: 'cancel_table_select_range',
|
|
3
3
|
SET_TABLE_SELECT_RANGE: 'set_table_select_range',
|
|
4
|
-
HIDDEN_CODE_BLOCK_HOVER_MENU: 'hidden_code_block_hover_menu'
|
|
4
|
+
HIDDEN_CODE_BLOCK_HOVER_MENU: 'hidden_code_block_hover_menu',
|
|
5
|
+
ON_MOUSE_ENTER_BLOCK: 'on_mouse_enter_block'
|
|
5
6
|
};
|
|
6
7
|
export var PAGE_EDIT_AREA_WIDTH = 672; // 672 = 794 - 2[borderLeft + borderRight] - 120[paddingLeft + paddingRight]
|
package/dist/basic-sdk/editor.js
CHANGED
|
@@ -22,6 +22,7 @@ import ArticleContainer from './layout/article-container';
|
|
|
22
22
|
import './assets/css/layout.css';
|
|
23
23
|
import './assets/css/sdoc-editor-plugins.css';
|
|
24
24
|
import './assets/css/dropdown-menu.css';
|
|
25
|
+
import SideToolbar from './extension/toolbar/side-toolbar';
|
|
25
26
|
var SDocEditor = forwardRef(function (_ref, ref) {
|
|
26
27
|
var document = _ref.document,
|
|
27
28
|
config = _ref.config;
|
|
@@ -241,6 +242,6 @@ var SDocEditor = forwardRef(function (_ref, ref) {
|
|
|
241
242
|
onMouseDown: onMouseDown,
|
|
242
243
|
decorate: decorate,
|
|
243
244
|
onCut: eventProxy.onCut
|
|
244
|
-
})), /*#__PURE__*/React.createElement(CommentContextProvider, null, /*#__PURE__*/React.createElement(CommentWrapper, null)))))))))));
|
|
245
|
+
})), /*#__PURE__*/React.createElement(SideToolbar, null), /*#__PURE__*/React.createElement(CommentContextProvider, null, /*#__PURE__*/React.createElement(CommentWrapper, null)))))))))));
|
|
245
246
|
});
|
|
246
247
|
export default SDocEditor;
|
|
@@ -161,4 +161,75 @@ export var LIST_TYPE_ARRAY = ['unordered_list', 'ordered_list'];
|
|
|
161
161
|
export var TRANSPARENT = 'transparent';
|
|
162
162
|
export var CLIPBOARD_FORMAT_KEY = 'x-slate-fragment';
|
|
163
163
|
export var INSERT_FILE_DISPLAY_TYPE = ['text_link', 'icon_link', 'card_link'];
|
|
164
|
+
export var SIDE_MENUS_CONFIG = [{
|
|
165
|
+
id: PARAGRAPH,
|
|
166
|
+
iconClass: 'sdocfont sdoc-text',
|
|
167
|
+
type: PARAGRAPH,
|
|
168
|
+
title: 'Paragraph'
|
|
169
|
+
}, {
|
|
170
|
+
id: HEADER1,
|
|
171
|
+
iconClass: 'sdocfont sdoc-header1',
|
|
172
|
+
type: HEADER1,
|
|
173
|
+
title: 'Header_one'
|
|
174
|
+
}, {
|
|
175
|
+
id: HEADER2,
|
|
176
|
+
iconClass: 'sdocfont sdoc-header2',
|
|
177
|
+
type: HEADER2,
|
|
178
|
+
title: 'Header_two'
|
|
179
|
+
}, {
|
|
180
|
+
id: HEADER3,
|
|
181
|
+
iconClass: 'sdocfont sdoc-header3',
|
|
182
|
+
type: HEADER3,
|
|
183
|
+
title: 'Header_three'
|
|
184
|
+
}, {
|
|
185
|
+
id: HEADER4,
|
|
186
|
+
iconClass: 'sdocfont sdoc-header4',
|
|
187
|
+
type: HEADER4,
|
|
188
|
+
title: 'Header_four'
|
|
189
|
+
}, {
|
|
190
|
+
id: HEADER5,
|
|
191
|
+
iconClass: 'sdocfont sdoc-header5',
|
|
192
|
+
type: HEADER5,
|
|
193
|
+
title: 'Header_five'
|
|
194
|
+
}, {
|
|
195
|
+
id: HEADER6,
|
|
196
|
+
iconClass: 'sdocfont sdoc-header6',
|
|
197
|
+
type: HEADER6,
|
|
198
|
+
title: 'Header_six'
|
|
199
|
+
}, {
|
|
200
|
+
id: UNORDERED_LIST,
|
|
201
|
+
iconClass: 'sdocfont sdoc-list-ul',
|
|
202
|
+
type: UNORDERED_LIST,
|
|
203
|
+
title: 'Unordered_list'
|
|
204
|
+
}, {
|
|
205
|
+
id: ORDERED_LIST,
|
|
206
|
+
iconClass: 'sdocfont sdoc-list-ol',
|
|
207
|
+
type: ORDERED_LIST,
|
|
208
|
+
title: 'Ordered_list'
|
|
209
|
+
}, {
|
|
210
|
+
id: CHECK_LIST_ITEM,
|
|
211
|
+
iconClass: 'sdocfont sdoc-check-square',
|
|
212
|
+
type: CHECK_LIST_ITEM,
|
|
213
|
+
title: 'Check_list_item'
|
|
214
|
+
}, {
|
|
215
|
+
id: ALIGN_LEFT,
|
|
216
|
+
iconClass: 'sdocfont sdoc-align-left',
|
|
217
|
+
type: 'left',
|
|
218
|
+
title: 'Left'
|
|
219
|
+
}, {
|
|
220
|
+
id: ALIGN_CENTER,
|
|
221
|
+
iconClass: 'sdocfont sdoc-align-center',
|
|
222
|
+
type: 'center',
|
|
223
|
+
title: 'Center'
|
|
224
|
+
}, {
|
|
225
|
+
id: ALIGN_RIGHT,
|
|
226
|
+
iconClass: 'sdocfont sdoc-align-right',
|
|
227
|
+
type: 'right',
|
|
228
|
+
title: 'Right'
|
|
229
|
+
}, {
|
|
230
|
+
id: BLOCKQUOTE,
|
|
231
|
+
iconClass: 'sdocfont sdoc-quote1',
|
|
232
|
+
type: BLOCKQUOTE,
|
|
233
|
+
title: 'Quote'
|
|
234
|
+
}];
|
|
164
235
|
export { BLOCKQUOTE, HEADER, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, PARAGRAPH, BOLD, ITALIC, UNDERLINE, STRIKETHROUGH, SUPERSCRIPT, SUBSCRIPT, ORDERED_LIST, UNORDERED_LIST, LIST_ITEM, LIST_LIC, CHECK_LIST, CHECK_LIST_ITEM, LINK, HTML, CODE_BLOCK, CODE_LINE, IMAGE, TABLE, TABLE_CELL, TABLE_ROW, FORMULA, COLUMN, TEXT_STYLE, TEXT_STYLE_MORE, BOLD_ITALIC, TEXT_ALIGN, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER, ELEMENT_TYPE, KEYBOARD, DEFAULT_COLORS, STANDARD_COLORS, DEFAULT_RECENT_USED_LIST, CLEAR_FORMAT, DEFAULT_FONT_COLOR, RECENT_USED_HIGHLIGHT_COLORS_KEY, RECENT_USED_FONT_COLORS_KEY, RECENT_USED_TABLE_CELL_BG_COLORS_KEY, DEFAULT_LAST_USED_FONT_COLOR, DEFAULT_LAST_USED_HIGHLIGHT_COLOR, DEFAULT_LAST_USED_TABLE_CELL_BG_COLOR, SPECIAL_FONT_SIZE_NAME, DEFAULT_COMMON_FONT_SIZE, FONT_SIZE, DEFAULT_FONT, FONT, GOOGLE_FONT_CLASS, RECENT_USED_FONTS_KEY, HEADER_FONT_SIZE, SDOC_LINK };
|
|
@@ -4,7 +4,7 @@ import { withHistory } from '@seafile/slate-history';
|
|
|
4
4
|
import Plugins from './plugins';
|
|
5
5
|
import renderElement from './render/render-element';
|
|
6
6
|
import renderLeaf from './render/render-leaf';
|
|
7
|
-
import { Toolbar, ContextToolbar } from './toolbar';
|
|
7
|
+
import { Toolbar, ContextToolbar, SideToolbar } from './toolbar';
|
|
8
8
|
var baseEditor = withHistory(withReact(createEditor()));
|
|
9
9
|
var defaultEditor = Plugins === null || Plugins === void 0 ? void 0 : Plugins.reduce(function (editor, pluginItem) {
|
|
10
10
|
var withPlugin = pluginItem.editorPlugin;
|
|
@@ -14,4 +14,4 @@ var defaultEditor = Plugins === null || Plugins === void 0 ? void 0 : Plugins.re
|
|
|
14
14
|
return editor;
|
|
15
15
|
}, baseEditor);
|
|
16
16
|
export default defaultEditor;
|
|
17
|
-
export { renderLeaf, renderElement, Toolbar, ContextToolbar };
|
|
17
|
+
export { renderLeaf, renderElement, Toolbar, ContextToolbar, SideToolbar };
|
|
@@ -7,7 +7,8 @@ var renderBlockquote = function renderBlockquote(props, editor) {
|
|
|
7
7
|
textAlign: element.align
|
|
8
8
|
};
|
|
9
9
|
return /*#__PURE__*/React.createElement("blockquote", Object.assign({
|
|
10
|
-
"data-id": element.id
|
|
10
|
+
"data-id": element.id,
|
|
11
|
+
"data-root": "true"
|
|
11
12
|
}, attributes, {
|
|
12
13
|
style: style
|
|
13
14
|
}), children);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import withCheckList from './plugin';
|
|
2
|
-
import {
|
|
2
|
+
import { renderCheckListItem } from './render-elem';
|
|
3
3
|
var CheckListPlugin = {
|
|
4
4
|
editorPlugin: withCheckList,
|
|
5
|
-
renderElements: [
|
|
5
|
+
renderElements: [renderCheckListItem]
|
|
6
6
|
};
|
|
7
7
|
export default CheckListPlugin;
|
|
@@ -5,14 +5,6 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { Transforms } from '@seafile/slate';
|
|
7
7
|
import { ReactEditor } from '@seafile/slate-react';
|
|
8
|
-
var renderCheckList = function renderCheckList(props, editor) {
|
|
9
|
-
var attributes = props.attributes,
|
|
10
|
-
children = props.children,
|
|
11
|
-
style = props.style;
|
|
12
|
-
return /*#__PURE__*/React.createElement("p", Object.assign({}, attributes, {
|
|
13
|
-
style: style
|
|
14
|
-
}), children);
|
|
15
|
-
};
|
|
16
8
|
var CheckListItem = /*#__PURE__*/function (_React$PureComponent) {
|
|
17
9
|
_inherits(CheckListItem, _React$PureComponent);
|
|
18
10
|
var _super = _createSuper(CheckListItem);
|
|
@@ -53,7 +45,8 @@ var CheckListItem = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
53
45
|
textAlign: align
|
|
54
46
|
};
|
|
55
47
|
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
56
|
-
"data-id": id
|
|
48
|
+
"data-id": id,
|
|
49
|
+
"data-root": "true"
|
|
57
50
|
}, attributes, {
|
|
58
51
|
style: style
|
|
59
52
|
}), /*#__PURE__*/React.createElement("span", {
|
|
@@ -70,4 +63,8 @@ var CheckListItem = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
70
63
|
}]);
|
|
71
64
|
return CheckListItem;
|
|
72
65
|
}(React.PureComponent);
|
|
73
|
-
export
|
|
66
|
+
export var renderCheckListItem = function renderCheckListItem(props, editor) {
|
|
67
|
+
return /*#__PURE__*/React.createElement(CheckListItem, Object.assign({}, props, {
|
|
68
|
+
editor: editor
|
|
69
|
+
}));
|
|
70
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import React, { useCallback, useEffect, useState, useRef } from 'react';
|
|
4
|
-
import { ReactEditor,
|
|
4
|
+
import { ReactEditor, useReadOnly } from '@seafile/slate-react';
|
|
5
5
|
import { Transforms } from '@seafile/slate';
|
|
6
6
|
import EventBus from '../../../utils/event-bus';
|
|
7
7
|
import { useScrollContext } from '../../../hooks/use-scroll-context';
|
|
@@ -10,14 +10,13 @@ import { setClipboardData } from './helpers';
|
|
|
10
10
|
import { INTERNAL_EVENT } from '../../../constants';
|
|
11
11
|
import '../../../assets/css/code-block.css';
|
|
12
12
|
var CodeBlock = function CodeBlock(_ref) {
|
|
13
|
-
var
|
|
13
|
+
var attributes = _ref.attributes,
|
|
14
|
+
children = _ref.children,
|
|
15
|
+
element = _ref.element,
|
|
16
|
+
editor = _ref.editor;
|
|
14
17
|
var readOnly = useReadOnly();
|
|
15
|
-
var editor = useSlateStatic();
|
|
16
18
|
var codeBlockRef = useRef();
|
|
17
19
|
var scrollRef = useScrollContext();
|
|
18
|
-
var attributes = codeBlockProps.attributes,
|
|
19
|
-
children = codeBlockProps.children,
|
|
20
|
-
element = codeBlockProps.element;
|
|
21
20
|
var _element$style = element.style,
|
|
22
21
|
style = _element$style === void 0 ? {
|
|
23
22
|
white_space: 'nowrap'
|
|
@@ -127,6 +126,7 @@ var CodeBlock = function CodeBlock(_ref) {
|
|
|
127
126
|
}, []);
|
|
128
127
|
return /*#__PURE__*/React.createElement("div", {
|
|
129
128
|
"data-id": element.id,
|
|
129
|
+
"data-root": "true",
|
|
130
130
|
ref: codeBlockRef,
|
|
131
131
|
className: 'sdoc-code-block-container',
|
|
132
132
|
onClick: onFocusCodeBlock,
|
|
@@ -148,10 +148,9 @@ var CodeBlock = function CodeBlock(_ref) {
|
|
|
148
148
|
}));
|
|
149
149
|
};
|
|
150
150
|
export var renderCodeBlock = function renderCodeBlock(props, editor) {
|
|
151
|
-
return /*#__PURE__*/React.createElement(CodeBlock, {
|
|
152
|
-
codeBlockProps: _objectSpread({}, props),
|
|
151
|
+
return /*#__PURE__*/React.createElement(CodeBlock, Object.assign({}, props, {
|
|
153
152
|
editor: editor
|
|
154
|
-
});
|
|
153
|
+
}));
|
|
155
154
|
};
|
|
156
155
|
export var renderCodeLine = function renderCodeLine(props, editor) {
|
|
157
156
|
var element = props.element,
|
|
@@ -19,8 +19,8 @@ var renderHeader = function renderHeader(props, editor) {
|
|
|
19
19
|
isShowPlaceHolder = true;
|
|
20
20
|
}
|
|
21
21
|
return /*#__PURE__*/React.createElement(Tag, Object.assign({
|
|
22
|
-
id: element.id,
|
|
23
|
-
"data-
|
|
22
|
+
"data-id": element.id,
|
|
23
|
+
"data-root": "true"
|
|
24
24
|
}, attributes, {
|
|
25
25
|
style: _objectSpread({
|
|
26
26
|
position: isShowPlaceHolder ? 'relative' : ''
|
|
@@ -56,12 +56,17 @@ var AddLinkDialog = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
56
56
|
var _this$props = _this.props,
|
|
57
57
|
editor = _this$props.editor,
|
|
58
58
|
propsUrl = _this$props.url,
|
|
59
|
-
propsTitle = _this$props.title
|
|
59
|
+
propsTitle = _this$props.title,
|
|
60
|
+
propsInsertLink = _this$props.insertLink;
|
|
60
61
|
var isEdit = propsUrl && propsTitle;
|
|
61
62
|
if (isEdit) {
|
|
62
63
|
updateLink(editor, title, url);
|
|
63
64
|
} else {
|
|
64
|
-
|
|
65
|
+
if (propsInsertLink) {
|
|
66
|
+
propsInsertLink(editor, title, url);
|
|
67
|
+
} else {
|
|
68
|
+
insertLink(editor, title, url);
|
|
69
|
+
}
|
|
65
70
|
}
|
|
66
71
|
_this.props.onLinkDialogToggle();
|
|
67
72
|
};
|
|
@@ -7,6 +7,7 @@ var renderList = function renderList(props, editor) {
|
|
|
7
7
|
var Tag = node.type === ORDERED_LIST ? 'ol' : 'ul';
|
|
8
8
|
return /*#__PURE__*/React.createElement(Tag, Object.assign({
|
|
9
9
|
"data-id": node.id,
|
|
10
|
+
"data-root": "true",
|
|
10
11
|
className: "list-container d-flex flex-column"
|
|
11
12
|
}, attributes), children);
|
|
12
13
|
};
|
|
@@ -27,7 +28,8 @@ var renderListItem = function renderListItem(props, editor) {
|
|
|
27
28
|
className = '';
|
|
28
29
|
}
|
|
29
30
|
return /*#__PURE__*/React.createElement("li", Object.assign({
|
|
30
|
-
"data-id": element.id
|
|
31
|
+
"data-id": element.id,
|
|
32
|
+
"data-root": "true"
|
|
31
33
|
}, attributes, {
|
|
32
34
|
className: className
|
|
33
35
|
}), children);
|
|
@@ -21,7 +21,8 @@ var Paragraph = function Paragraph(_ref) {
|
|
|
21
21
|
textAlign: element.align
|
|
22
22
|
};
|
|
23
23
|
return /*#__PURE__*/React.createElement("p", Object.assign({
|
|
24
|
-
"data-id": element.id
|
|
24
|
+
"data-id": element.id,
|
|
25
|
+
"data-root": "true"
|
|
25
26
|
}, attributes, {
|
|
26
27
|
style: _objectSpread({
|
|
27
28
|
position: isShowPlaceHolder ? 'relative' : ''
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
.sdoc-file-select-dialog {
|
|
2
|
+
max-width: 620px;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.sdoc-file-select-dialog .sdoc-file-select-modal {
|
|
6
|
+
width: 620px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.sdoc-file-select-dialog .sdoc-file-select-container {
|
|
10
|
+
display: flex;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.sdoc-file-select-dialog .sdoc-file-select-left {
|
|
14
|
+
border-right: 1px solid #e9ecef;
|
|
15
|
+
width: 150px;
|
|
16
|
+
padding: 12px 8px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.sdoc-file-select-dialog .sdoc-file-select-left .sdoc-file-select-nav-item {
|
|
20
|
+
padding: 5px 0 5px 8px;
|
|
21
|
+
border-radius: 3px;
|
|
22
|
+
display: inline-block;
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.sdoc-file-select-dialog .sdoc-file-select-left .sdoc-file-select-nav-item:hover {
|
|
28
|
+
background-color: #f5f5f5;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.sdoc-file-select-dialog .sdoc-file-select-container .sdoc-file-select-left .selected-sdoc-file-select-nav-item {
|
|
32
|
+
background-color: #ff8000;
|
|
33
|
+
color: #fff;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.sdoc-file-select-dialog .sdoc-file-select-right {
|
|
37
|
+
height: 440px;
|
|
38
|
+
width: 468px;
|
|
39
|
+
display: flex;
|
|
40
|
+
padding: 0;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.sdoc-file-select-dialog .sdoc-file-select-footer {
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
justify-content: flex-end;
|
|
48
|
+
padding: 1rem;
|
|
49
|
+
border-top: 1px solid #e9ecef;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.sdoc-file-select-dialog .highlight-bg-color {
|
|
53
|
+
background-color: #FF8000;
|
|
54
|
+
border-color: #FF8000;
|
|
55
|
+
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import React, { useCallback, useState } from 'react';
|
|
3
|
-
import { Button, Modal, ModalHeader, ModalBody
|
|
4
|
-
import {
|
|
3
|
+
import { Button, Modal, ModalHeader, ModalBody } from 'reactstrap';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
5
|
import LocalFiles from './local-files';
|
|
6
|
-
import { insertSdocFileLink } from '
|
|
7
|
-
import './
|
|
8
|
-
var
|
|
6
|
+
import { insertSdocFileLink } from '../../helpers';
|
|
7
|
+
import './index.css';
|
|
8
|
+
var SelectSdocFileDialog = function SelectSdocFileDialog(_ref) {
|
|
9
9
|
var editor = _ref.editor,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
toggle = _ref.toggle;
|
|
11
|
+
var _useTranslation = useTranslation(),
|
|
12
|
+
t = _useTranslation.t;
|
|
12
13
|
var _useState = useState(null),
|
|
13
14
|
_useState2 = _slicedToArray(_useState, 2),
|
|
14
15
|
currentSelectedFile = _useState2[0],
|
|
@@ -16,8 +17,13 @@ var SdocLinkFileDialog = function SdocLinkFileDialog(_ref) {
|
|
|
16
17
|
var onSelectedFile = useCallback(function (fileInfo) {
|
|
17
18
|
setCurrentSelectedFile(fileInfo);
|
|
18
19
|
}, []);
|
|
20
|
+
var closeDialog = useCallback(function () {
|
|
21
|
+
toggle(false);
|
|
22
|
+
|
|
23
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
|
+
}, []);
|
|
19
25
|
var onSubmit = useCallback(function () {
|
|
20
|
-
|
|
26
|
+
closeDialog(false);
|
|
21
27
|
if (currentSelectedFile) {
|
|
22
28
|
insertSdocFileLink(editor, currentSelectedFile.name, currentSelectedFile.doc_uuid);
|
|
23
29
|
}
|
|
@@ -27,36 +33,37 @@ var SdocLinkFileDialog = function SdocLinkFileDialog(_ref) {
|
|
|
27
33
|
isOpen: true,
|
|
28
34
|
autoFocus: false,
|
|
29
35
|
zIndex: 1071,
|
|
30
|
-
returnFocusAfterClose: false
|
|
36
|
+
returnFocusAfterClose: false,
|
|
37
|
+
className: "sdoc-file-select-dialog",
|
|
38
|
+
contentClassName: "sdoc-file-select-modal"
|
|
31
39
|
}, /*#__PURE__*/React.createElement(ModalHeader, {
|
|
32
|
-
toggle:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}, t('Select_sdoc_document')), /*#__PURE__*/React.createElement(ModalBody, null, /*#__PURE__*/React.createElement("div", {
|
|
36
|
-
className: "sdoc-file-addition-container"
|
|
40
|
+
toggle: closeDialog
|
|
41
|
+
}, t('Select_sdoc_document')), /*#__PURE__*/React.createElement(ModalBody, {
|
|
42
|
+
className: "p-0"
|
|
37
43
|
}, /*#__PURE__*/React.createElement("div", {
|
|
38
|
-
className: "sdoc-file-
|
|
44
|
+
className: "sdoc-file-select-container"
|
|
39
45
|
}, /*#__PURE__*/React.createElement("div", {
|
|
40
|
-
className: "sdoc-file-
|
|
46
|
+
className: "sdoc-file-select-left"
|
|
41
47
|
}, /*#__PURE__*/React.createElement("div", {
|
|
42
|
-
className:
|
|
43
|
-
|
|
48
|
+
className: "sdoc-file-select-nav"
|
|
49
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
50
|
+
className: "sdoc-file-select-nav-item selected-sdoc-file-select-nav-item"
|
|
44
51
|
}, t('Local_file')))), /*#__PURE__*/React.createElement("div", {
|
|
45
|
-
className: "sdoc-file-
|
|
52
|
+
className: "sdoc-file-select-right"
|
|
46
53
|
}, /*#__PURE__*/React.createElement(LocalFiles, {
|
|
47
54
|
onSelectedFile: onSelectedFile,
|
|
48
|
-
toggle:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
55
|
+
toggle: closeDialog
|
|
56
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
57
|
+
className: "sdoc-file-select-footer"
|
|
58
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
52
59
|
color: "secondary",
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
60
|
+
className: "mr-2",
|
|
61
|
+
onClick: closeDialog
|
|
56
62
|
}, t('Cancel')), /*#__PURE__*/React.createElement(Button, {
|
|
57
63
|
color: "primary",
|
|
58
|
-
|
|
64
|
+
className: "highlight-bg-color",
|
|
65
|
+
disabled: !currentSelectedFile,
|
|
59
66
|
onClick: onSubmit
|
|
60
|
-
}, t('Confirm'))));
|
|
67
|
+
}, t('Confirm')))))));
|
|
61
68
|
};
|
|
62
|
-
export default
|
|
69
|
+
export default SelectSdocFileDialog;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
.sdoc-files-tree {
|
|
2
|
+
flex: 1;
|
|
3
|
+
padding: 16px;
|
|
4
|
+
overflow: auto;
|
|
5
|
+
width: 100%;
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.sdoc-files-tree .sdoc-file-info {
|
|
11
|
+
border-radius: 2px;
|
|
12
|
+
height: 1.5rem;
|
|
13
|
+
line-height: 1.625;
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
text-overflow: ellipsis;
|
|
16
|
+
white-space: nowrap;
|
|
17
|
+
position: relative;
|
|
18
|
+
padding-left: 2.8rem;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.sdoc-files-tree .sdoc-file-info:hover {
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
background: #fdefb9;
|
|
24
|
+
box-shadow: inset 0 0 1px #999;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.sdoc-files-tree .sdoc-file-info .sdoc-file-icon-container {
|
|
28
|
+
width: 2.8rem;
|
|
29
|
+
height: 100%;
|
|
30
|
+
padding-left: 1.5rem;
|
|
31
|
+
position: absolute;
|
|
32
|
+
left: 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.sdoc-files-tree .sdoc-file-info .sdoc-file-icon {
|
|
36
|
+
color: #9aa0ac;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.sdoc-files-tree .sdoc-file-info.active {
|
|
40
|
+
background: #ff8000;
|
|
41
|
+
box-shadow: inset 0 0 1px #999;
|
|
42
|
+
color: #fff;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.sdoc-files-tree .sdoc-file-info.active .sdoc-file-icon {
|
|
46
|
+
color: #fff;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.sdoc-files-tree .sdoc-file-icon-toggle {
|
|
50
|
+
height: 1.5rem;
|
|
51
|
+
width: 1.5rem;
|
|
52
|
+
line-height: 1.5rem !important;
|
|
53
|
+
font-size: 12px !important;
|
|
54
|
+
transform: scale(.8);
|
|
55
|
+
text-align: center;
|
|
56
|
+
position: absolute;
|
|
57
|
+
left: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.sdoc-files-tree .sdoc-file-info.expanded .sdoc-file-icon-toggle {
|
|
61
|
+
transform: rotate(90deg) scale(.8);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.sdoc-files-tree .sdoc-file-info .sdoc-file-name {
|
|
65
|
+
font-size: 14px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.sdoc-files-tree .sdoc-folder-children {
|
|
69
|
+
padding-left: 20px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.sdoc-files-tree .sdoc-folder-children-empty {
|
|
73
|
+
color: #999;
|
|
74
|
+
padding: 4px 20px;
|
|
75
|
+
}
|