@seafile/sdoc-editor 0.2.28 → 0.2.29
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/extension/constants/element-type.js +0 -1
- package/dist/basic-sdk/extension/constants/index.js +2 -2
- package/dist/basic-sdk/extension/plugins/html/helper.js +0 -1
- package/dist/basic-sdk/extension/plugins/html/rules/list.js +3 -3
- package/dist/basic-sdk/extension/plugins/list/helpers.js +0 -1
- package/dist/basic-sdk/extension/plugins/list/model.js +3 -3
- package/dist/basic-sdk/extension/plugins/list/plugin/insert-fragment-list.js +4 -4
- package/dist/basic-sdk/extension/plugins/list/plugin/normalize-list.js +2 -13
- package/dist/basic-sdk/extension/plugins/list/transforms/insert-list-item.js +13 -11
- package/dist/basic-sdk/extension/plugins/list/transforms/move-list-items.js +2 -2
- package/dist/basic-sdk/extension/plugins/list/transforms/normalize-list-item.js +7 -7
- package/dist/basic-sdk/extension/plugins/list/transforms/toggle-list.js +16 -19
- package/dist/basic-sdk/extension/plugins/list/transforms/unwrap-list.js +5 -13
- package/dist/basic-sdk/extension/plugins/table/helpers.js +0 -1
- package/dist/basic-sdk/extension/render/custom-element.js +14 -14
- package/dist/components/tip-dialog/index.css +17 -0
- package/dist/components/tip-dialog/index.js +7 -0
- package/package.json +1 -1
|
@@ -11,7 +11,6 @@ export var HEADER6 = 'header6';
|
|
|
11
11
|
export var ORDERED_LIST = 'ordered_list';
|
|
12
12
|
export var UNORDERED_LIST = 'unordered_list';
|
|
13
13
|
export var LIST_ITEM = 'list_item';
|
|
14
|
-
export var LIST_LIC = 'list_lic'; // placeholder
|
|
15
14
|
export var CHECK_LIST_ITEM = 'check_list_item';
|
|
16
15
|
export var PARAGRAPH = 'paragraph';
|
|
17
16
|
export var CODE_BLOCK = 'code_block';
|
|
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
var _HEADER_TITLE_MAP, _FILE_TYPE;
|
|
3
3
|
// extension plugin
|
|
4
4
|
import * as ELEMENT_TYPE from './element-type';
|
|
5
|
-
import { BLOCKQUOTE, TITLE, SUBTITLE, HEADER, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, PARAGRAPH, ORDERED_LIST, UNORDERED_LIST, LIST_ITEM,
|
|
5
|
+
import { BLOCKQUOTE, TITLE, SUBTITLE, HEADER, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, PARAGRAPH, ORDERED_LIST, UNORDERED_LIST, LIST_ITEM, CHECK_LIST_ITEM, CODE_BLOCK, CODE_LINE, TABLE, TABLE_CELL, TABLE_ROW, LINK, SDOC_LINK, FILE_LINK, IMAGE, TOP_LEVEL_TYPES, INLINE_LEVEL_TYPES } from './element-type';
|
|
6
6
|
export { DEFAULT_COLORS, STANDARD_COLORS, DEFAULT_RECENT_USED_LIST, DEFAULT_FONT_COLOR, RECENT_USED_HIGHLIGHT_COLORS_KEY, RECENT_USED_FONT_COLORS_KEY, RECENT_USED_TABLE_CELL_BACKGROUND_COLORS_KEY, DEFAULT_LAST_USED_FONT_COLOR, DEFAULT_LAST_USED_HIGHLIGHT_COLOR, DEFAULT_LAST_USED_TABLE_CELL_BACKGROUND_COLOR } from './color';
|
|
7
7
|
export { FONT_SIZE, DEFAULT_FONT, FONT, GOOGLE_FONT_CLASS, RECENT_USED_FONTS_KEY, SDOC_FONT_SIZE } from './font';
|
|
8
8
|
export { DIFF_TYPE, ADDED_STYLE, DELETED_STYLE } from './diff-view';
|
|
@@ -25,4 +25,4 @@ export var LIST_ITEM_CORRELATION_TYPE = [UNORDERED_LIST, ORDERED_LIST, LIST_ITEM
|
|
|
25
25
|
export var LIST_ITEM_SUPPORTED_TRANSFORMATION = [UNORDERED_LIST, ORDERED_LIST, 'left', 'center', 'right', BLOCKQUOTE];
|
|
26
26
|
export var ADD_POSITION_OFFSET_TYPE = [PARAGRAPH, SUBTITLE, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, CHECK_LIST_ITEM];
|
|
27
27
|
export var FILE_TYPE = (_FILE_TYPE = {}, _defineProperty(_FILE_TYPE, FILE_LINK, 'file'), _defineProperty(_FILE_TYPE, SDOC_LINK, 'sdoc'), _FILE_TYPE);
|
|
28
|
-
export { ELEMENT_TYPE, BLOCKQUOTE, TITLE, SUBTITLE, HEADER, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, PARAGRAPH, ORDERED_LIST, UNORDERED_LIST, LIST_ITEM,
|
|
28
|
+
export { ELEMENT_TYPE, BLOCKQUOTE, TITLE, SUBTITLE, HEADER, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, PARAGRAPH, ORDERED_LIST, UNORDERED_LIST, LIST_ITEM, CHECK_LIST_ITEM, CODE_BLOCK, CODE_LINE, TABLE, TABLE_CELL, TABLE_ROW, LINK, SDOC_LINK, FILE_LINK, IMAGE, TOP_LEVEL_TYPES, INLINE_LEVEL_TYPES };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import slugid from 'slugid';
|
|
2
|
-
import { LIST_ITEM,
|
|
2
|
+
import { LIST_ITEM, ORDERED_LIST, PARAGRAPH, UNORDERED_LIST } from '../../../constants';
|
|
3
3
|
var PARAGRAPH_TAGS = ['DIV', 'P'];
|
|
4
4
|
var listRule = function listRule(element, parseChild) {
|
|
5
5
|
var nodeName = element.nodeName,
|
|
@@ -31,7 +31,7 @@ var listRule = function listRule(element, parseChild) {
|
|
|
31
31
|
type: LIST_ITEM,
|
|
32
32
|
children: [{
|
|
33
33
|
id: slugid.nice(),
|
|
34
|
-
type:
|
|
34
|
+
type: PARAGRAPH,
|
|
35
35
|
children: parseChild(childNodes)
|
|
36
36
|
}]
|
|
37
37
|
};
|
|
@@ -39,7 +39,7 @@ var listRule = function listRule(element, parseChild) {
|
|
|
39
39
|
if (PARAGRAPH_TAGS.includes(nodeName) && element.parentElement.nodeName === 'LI') {
|
|
40
40
|
return {
|
|
41
41
|
id: slugid.nice(),
|
|
42
|
-
type:
|
|
42
|
+
type: PARAGRAPH,
|
|
43
43
|
children: parseChild(childNodes)
|
|
44
44
|
};
|
|
45
45
|
}
|
|
@@ -2,7 +2,6 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
2
2
|
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
3
3
|
import { Editor, Element, Node, Range, Text } from '@seafile/slate';
|
|
4
4
|
import { CHECK_LIST_ITEM, CODE_BLOCK, CODE_LINE, LIST_ITEM, PARAGRAPH, TABLE } from '../../constants';
|
|
5
|
-
import { isRangeAcrossBlocks } from '../../core';
|
|
6
5
|
import { toggleList } from './transforms';
|
|
7
6
|
import { getListTypes } from './queries';
|
|
8
7
|
export var isMenuDisabled = function isMenuDisabled(editor, readonly) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
2
2
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
3
|
import slugid from 'slugid';
|
|
4
|
-
import { LIST_ITEM,
|
|
4
|
+
import { LIST_ITEM, PARAGRAPH, UNORDERED_LIST } from '../../constants';
|
|
5
5
|
import { generateEmptyElement } from '../../core';
|
|
6
6
|
var List = /*#__PURE__*/_createClass(function List(options) {
|
|
7
7
|
_classCallCheck(this, List);
|
|
@@ -18,8 +18,8 @@ export var generateEmptyListItem = function generateEmptyListItem() {
|
|
|
18
18
|
children: []
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
-
export var
|
|
22
|
-
return generateEmptyElement(
|
|
21
|
+
export var generateEmptyListContent = function generateEmptyListContent() {
|
|
22
|
+
return generateEmptyElement(PARAGRAPH);
|
|
23
23
|
};
|
|
24
24
|
export var generateEmptyList = function generateEmptyList(type) {
|
|
25
25
|
return {
|
|
@@ -3,7 +3,7 @@ import _toArray from "@babel/runtime/helpers/esm/toArray";
|
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
4
|
import { Element, Path, Transforms, Node, Editor } from '@seafile/slate';
|
|
5
5
|
import slugid from 'slugid';
|
|
6
|
-
import { LIST_ITEM,
|
|
6
|
+
import { LIST_ITEM, PARAGRAPH } from '../../../constants';
|
|
7
7
|
import { findNode, generateDefaultText, getCommonNode, getNode, getNodes } from '../../../core';
|
|
8
8
|
import { getListTypes } from '../queries';
|
|
9
9
|
var isListRoot = function isListRoot(node) {
|
|
@@ -20,7 +20,7 @@ var getFirstAncestorOfType = function getFirstAncestorOfType(root, entry, _ref)
|
|
|
20
20
|
var findListItemsWithContent = function findListItemsWithContent(first) {
|
|
21
21
|
var prev = null;
|
|
22
22
|
var node = first;
|
|
23
|
-
while (isListRoot(node) || node.type === LIST_ITEM && node.children[0].type !==
|
|
23
|
+
while (isListRoot(node) || node.type === LIST_ITEM && node.children[0].type !== PARAGRAPH) {
|
|
24
24
|
prev = node;
|
|
25
25
|
var _node$children = _slicedToArray(node.children, 1);
|
|
26
26
|
node = _node$children[0];
|
|
@@ -63,7 +63,7 @@ var isSingleLic = function isSingleLic(fragment) {
|
|
|
63
63
|
}).filter(function (_ref4) {
|
|
64
64
|
var _ref5 = _slicedToArray(_ref4, 1),
|
|
65
65
|
node = _ref5[0];
|
|
66
|
-
return node.type ===
|
|
66
|
+
return node.type === PARAGRAPH;
|
|
67
67
|
}).length === 1;
|
|
68
68
|
};
|
|
69
69
|
export var getTextAndListItemNodes = function getTextAndListItemNodes(editor, fragment, liEntry, licEntry) {
|
|
@@ -159,7 +159,7 @@ export var insertFragmentList = function insertFragmentList(editor) {
|
|
|
159
159
|
});
|
|
160
160
|
var licEntry = findNode(editor, {
|
|
161
161
|
match: {
|
|
162
|
-
type:
|
|
162
|
+
type: PARAGRAPH
|
|
163
163
|
},
|
|
164
164
|
mode: 'lowest'
|
|
165
165
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import {
|
|
3
|
-
import { LIST_ITEM
|
|
2
|
+
import { Element, Transforms, Path } from '@seafile/slate';
|
|
3
|
+
import { LIST_ITEM } from '../../../constants';
|
|
4
4
|
import { getChildren, getNode, getPreviousPath, match } from '../../../core';
|
|
5
5
|
import { getListTypes } from '../queries';
|
|
6
6
|
import { moveListItemsToList, normalizeListItem, normalizeNestedList } from '../transforms';
|
|
@@ -71,17 +71,6 @@ export var normalizeList = function normalizeList(editor) {
|
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
if (node.type === LIST_LIC && LIST_LIC !== PARAGRAPH) {
|
|
75
|
-
var _node = Node.parent(editor, path);
|
|
76
|
-
if ((_node === null || _node === void 0 ? void 0 : _node.type) !== LIST_ITEM) {
|
|
77
|
-
Transforms.setNodes(editor, {
|
|
78
|
-
type: PARAGRAPH
|
|
79
|
-
}, {
|
|
80
|
-
at: path
|
|
81
|
-
});
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
74
|
normalizeNode([node, path]);
|
|
86
75
|
};
|
|
87
76
|
};
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import { Transforms, Editor, Path, Range } from '@seafile/slate';
|
|
4
|
-
import { LIST_ITEM,
|
|
4
|
+
import { LIST_ITEM, PARAGRAPH } from '../../../constants';
|
|
5
5
|
import { getAboveNode, isBlockTextEmptyAfterSelection, isStartPoint } from '../../../core';
|
|
6
|
-
import {
|
|
6
|
+
import { generateEmptyListContent, generateEmptyListItem } from '../model';
|
|
7
|
+
|
|
8
|
+
// list > list_item > paragraph
|
|
7
9
|
export var insertListItem = function insertListItem(editor) {
|
|
8
|
-
var
|
|
10
|
+
var paragraphEntry = getAboveNode(editor, {
|
|
9
11
|
match: {
|
|
10
|
-
type:
|
|
12
|
+
type: PARAGRAPH
|
|
11
13
|
}
|
|
12
14
|
});
|
|
13
|
-
if (!
|
|
14
|
-
var
|
|
15
|
-
paragraphPath =
|
|
15
|
+
if (!paragraphEntry) return false;
|
|
16
|
+
var _paragraphEntry = _slicedToArray(paragraphEntry, 2),
|
|
17
|
+
paragraphPath = _paragraphEntry[1];
|
|
16
18
|
var listItemEntry = Editor.parent(editor, paragraphPath);
|
|
17
19
|
if (!listItemEntry) return false;
|
|
18
20
|
var _listItemEntry = _slicedToArray(listItemEntry, 2),
|
|
@@ -34,8 +36,8 @@ export var insertListItem = function insertListItem(editor) {
|
|
|
34
36
|
var nextListItemPath = Path.next(listItemPath);
|
|
35
37
|
if (_isStartPoint) {
|
|
36
38
|
// listItem 有内容,光标在开始
|
|
37
|
-
var
|
|
38
|
-
Transforms.insertNodes(editor,
|
|
39
|
+
var itemContent = generateEmptyListContent();
|
|
40
|
+
Transforms.insertNodes(editor, itemContent, {
|
|
39
41
|
at: listItemPath
|
|
40
42
|
});
|
|
41
43
|
var listItem = generateEmptyListItem();
|
|
@@ -65,8 +67,8 @@ export var insertListItem = function insertListItem(editor) {
|
|
|
65
67
|
var _Editor$marks;
|
|
66
68
|
// listItem 有内容,光标在结尾
|
|
67
69
|
var marks = (_Editor$marks = Editor.marks(editor)) === null || _Editor$marks === void 0 ? void 0 : _Editor$marks.key;
|
|
68
|
-
var
|
|
69
|
-
Transforms.insertNodes(editor, _objectSpread(_objectSpread({},
|
|
70
|
+
var _itemContent = generateEmptyListContent();
|
|
71
|
+
Transforms.insertNodes(editor, _objectSpread(_objectSpread({}, _itemContent), marks), {
|
|
70
72
|
at: nextListItemPath
|
|
71
73
|
});
|
|
72
74
|
var _listItem2 = generateEmptyListItem();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Editor, Path } from '@seafile/slate';
|
|
2
|
-
import {
|
|
2
|
+
import { PARAGRAPH } from '../../../constants';
|
|
3
3
|
import { getNodeEntries } from '../../../core';
|
|
4
4
|
import { isListNested } from '../queries';
|
|
5
5
|
import { movedListItemDown } from './move-list-item-down';
|
|
@@ -15,7 +15,7 @@ export var moveListItems = function moveListItems(editor) {
|
|
|
15
15
|
var _nodes = getNodeEntries(editor, {
|
|
16
16
|
at: at,
|
|
17
17
|
match: {
|
|
18
|
-
type: [
|
|
18
|
+
type: [PARAGRAPH]
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
var lics = Array.from(_nodes);
|
|
@@ -2,15 +2,15 @@ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIt
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
4
|
import { Transforms, Editor, Path, Element } from '@seafile/slate';
|
|
5
|
-
import {
|
|
5
|
+
import { PARAGRAPH } from '../../../constants';
|
|
6
6
|
import { getChildren, getDeepInlineChildren, match } from '../../../core';
|
|
7
7
|
import { getListTypes } from '../queries';
|
|
8
8
|
import { movedListItemUp } from './move-list-item-up';
|
|
9
|
-
import {
|
|
9
|
+
import { generateEmptyListContent } from '../model';
|
|
10
10
|
export var normalizeListItem = function normalizeListItem(editor, _ref) {
|
|
11
11
|
var listItem = _ref.listItem;
|
|
12
12
|
var changed = false;
|
|
13
|
-
var validLiChildrenTypes = [].concat(_toConsumableArray(getListTypes()), [
|
|
13
|
+
var validLiChildrenTypes = [].concat(_toConsumableArray(getListTypes()), [PARAGRAPH]);
|
|
14
14
|
var _listItem = _slicedToArray(listItem, 2),
|
|
15
15
|
liPath = _listItem[1];
|
|
16
16
|
var liChildren = getChildren(listItem);
|
|
@@ -29,14 +29,14 @@ export var normalizeListItem = function normalizeListItem(editor, _ref) {
|
|
|
29
29
|
firstLiChildNode = _ref7[0],
|
|
30
30
|
firstLiChildPath = _ref7[1];
|
|
31
31
|
if (!firstLiChild || !Editor.isBlock(editor, firstLiChildNode)) {
|
|
32
|
-
var
|
|
33
|
-
Transforms.insertNodes(editor,
|
|
32
|
+
var itemContent = generateEmptyListContent();
|
|
33
|
+
Transforms.insertNodes(editor, itemContent, {
|
|
34
34
|
at: liPath.concat([0])
|
|
35
35
|
});
|
|
36
36
|
return true;
|
|
37
37
|
}
|
|
38
38
|
if (Editor.isBlock(editor, firstLiChildNode) && !match(firstLiChildNode, [], {
|
|
39
|
-
type: [
|
|
39
|
+
type: [PARAGRAPH]
|
|
40
40
|
})) {
|
|
41
41
|
if (match(firstLiChildNode, [], {
|
|
42
42
|
type: getListTypes()
|
|
@@ -59,7 +59,7 @@ export var normalizeListItem = function normalizeListItem(editor, _ref) {
|
|
|
59
59
|
return true;
|
|
60
60
|
}
|
|
61
61
|
Transforms.setNodes(editor, {
|
|
62
|
-
type:
|
|
62
|
+
type: PARAGRAPH
|
|
63
63
|
}, {
|
|
64
64
|
at: firstLiChildPath
|
|
65
65
|
});
|
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import { Node, Range, Transforms, Element, Editor } from '@seafile/slate';
|
|
4
|
-
import { LIST_ITEM,
|
|
5
|
-
import { findNode, getNodeEntries, getNodeType, getSelectedNodeEntryByType, isRangeAcrossBlocks
|
|
4
|
+
import { LIST_ITEM, PARAGRAPH, INSERT_POSITION } from '../../../constants';
|
|
5
|
+
import { findNode, getNodeEntries, getNodeType, getSelectedNodeEntryByType, isRangeAcrossBlocks } from '../../../core';
|
|
6
6
|
import { getListItemEntry, getListTypes } from '../queries';
|
|
7
7
|
import { unwrapList } from './unwrap-list';
|
|
8
|
-
import { generateEmptyList, generateEmptyListItem } from '../model';
|
|
8
|
+
import { generateEmptyList, generateEmptyListContent, generateEmptyListItem } from '../model';
|
|
9
9
|
var wrapLineList = function wrapLineList(editor, type) {
|
|
10
10
|
var list = generateEmptyList(type);
|
|
11
11
|
Transforms.wrapNodes(editor, list);
|
|
12
12
|
var nodeEntry = getSelectedNodeEntryByType(editor, PARAGRAPH);
|
|
13
13
|
if (!nodeEntry) return;
|
|
14
|
+
|
|
15
|
+
// select is paragraph
|
|
16
|
+
// 1 handle paragraph
|
|
17
|
+
|
|
18
|
+
// 2 wrap list_item
|
|
14
19
|
var _nodeEntry = _slicedToArray(nodeEntry, 2),
|
|
15
|
-
node = _nodeEntry[0],
|
|
16
20
|
path = _nodeEntry[1];
|
|
17
|
-
if (node.type !== LIST_LIC) {
|
|
18
|
-
// paragraph to list-lic
|
|
19
|
-
Transforms.setNodes(editor, {
|
|
20
|
-
type: LIST_LIC
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
21
|
var listItem = generateEmptyListItem();
|
|
24
22
|
Transforms.wrapNodes(editor, listItem, {
|
|
25
23
|
at: path
|
|
@@ -91,17 +89,16 @@ var wrapRangeList = function wrapRangeList(editor, type) {
|
|
|
91
89
|
mode: 'all'
|
|
92
90
|
});
|
|
93
91
|
} else {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
at: n[1]
|
|
99
|
-
});
|
|
100
|
-
}
|
|
92
|
+
// select content is paragraph
|
|
93
|
+
// 1 handle content
|
|
94
|
+
|
|
95
|
+
// 2. wrap list_item
|
|
101
96
|
var listItem = generateEmptyListItem();
|
|
102
97
|
Transforms.wrapNodes(editor, listItem, {
|
|
103
98
|
at: n[1]
|
|
104
99
|
});
|
|
100
|
+
|
|
101
|
+
// 3. wrap list
|
|
105
102
|
var list = generateEmptyList(type);
|
|
106
103
|
Transforms.wrapNodes(editor, list, {
|
|
107
104
|
at: n[1]
|
|
@@ -113,9 +110,9 @@ var wrapRangeList = function wrapRangeList(editor, type) {
|
|
|
113
110
|
var toggleList = function toggleList(editor, type, insertPosition) {
|
|
114
111
|
if (insertPosition === INSERT_POSITION.AFTER) {
|
|
115
112
|
var list = generateEmptyList(type);
|
|
116
|
-
var
|
|
113
|
+
var listContent = generateEmptyListContent();
|
|
117
114
|
var path = Editor.path(editor, editor.selection);
|
|
118
|
-
Transforms.insertNodes(editor,
|
|
115
|
+
Transforms.insertNodes(editor, listContent, {
|
|
119
116
|
at: [path[0] + 1]
|
|
120
117
|
});
|
|
121
118
|
Transforms.select(editor, [path[0] + 1]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Editor, Transforms, Element, Node } from '@seafile/slate';
|
|
2
|
-
import { LIST_ITEM
|
|
3
|
-
import {
|
|
2
|
+
import { LIST_ITEM } from '../../../constants';
|
|
3
|
+
import { getAboveNode, getNodeType } from '../../../core';
|
|
4
4
|
import { getListTypes } from '../queries';
|
|
5
5
|
export var unwrapList = function unwrapList(editor) {
|
|
6
6
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
@@ -25,17 +25,7 @@ export var unwrapList = function unwrapList(editor) {
|
|
|
25
25
|
};
|
|
26
26
|
Editor.withoutNormalizing(editor, function () {
|
|
27
27
|
do {
|
|
28
|
-
|
|
29
|
-
at: at,
|
|
30
|
-
match: {
|
|
31
|
-
type: LIST_LIC
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
if (licEntry) {
|
|
35
|
-
Transforms.setNodes(editor, {
|
|
36
|
-
type: PARAGRAPH
|
|
37
|
-
});
|
|
38
|
-
}
|
|
28
|
+
// unwrap list_item
|
|
39
29
|
Transforms.unwrapNodes(editor, {
|
|
40
30
|
at: at,
|
|
41
31
|
match: function match(n) {
|
|
@@ -43,6 +33,8 @@ export var unwrapList = function unwrapList(editor) {
|
|
|
43
33
|
},
|
|
44
34
|
split: true
|
|
45
35
|
});
|
|
36
|
+
|
|
37
|
+
// unwrap list
|
|
46
38
|
Transforms.unwrapNodes(editor, {
|
|
47
39
|
at: at,
|
|
48
40
|
match: function match(n) {
|
|
@@ -31,7 +31,6 @@ export var isTableMenuDisabled = function isTableMenuDisabled(editor, readonly)
|
|
|
31
31
|
if (type === ELEMENT_TYPE.UNORDERED_LIST) return true;
|
|
32
32
|
if (type === ELEMENT_TYPE.BLOCKQUOTE) return true;
|
|
33
33
|
if (type === ELEMENT_TYPE.LIST_ITEM) return true;
|
|
34
|
-
if (type === ELEMENT_TYPE.LIST_LIC) return true;
|
|
35
34
|
if (type === ELEMENT_TYPE.TABLE) return true;
|
|
36
35
|
if (type === ELEMENT_TYPE.TABLE_CELL) return true;
|
|
37
36
|
if (type === ELEMENT_TYPE.TABLE_ROW) return true;
|
|
@@ -2,7 +2,7 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
4
|
import { useSlateStatic } from '@seafile/slate-react';
|
|
5
|
-
import { BLOCKQUOTE, LINK, CHECK_LIST_ITEM, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, LIST_ITEM,
|
|
5
|
+
import { BLOCKQUOTE, LINK, CHECK_LIST_ITEM, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, LIST_ITEM, ORDERED_LIST, PARAGRAPH, UNORDERED_LIST, CODE_BLOCK, CODE_LINE, IMAGE, ELEMENT_TYPE, SDOC_LINK, FILE_LINK, TITLE, SUBTITLE } from '../constants';
|
|
6
6
|
import { BlockquotePlugin, LinkPlugin, CheckListPlugin, HeaderPlugin, ListPlugin, CodeBlockPlugin, ImagePlugin, TablePlugin, SdocLinkPlugin, ParagraphPlugin, FileLinkPlugin } from '../plugins';
|
|
7
7
|
import EventBus from '../../utils/event-bus';
|
|
8
8
|
import { INTERNAL_EVENT } from '../../constants';
|
|
@@ -19,9 +19,15 @@ var CustomRenderElement = function CustomRenderElement(props) {
|
|
|
19
19
|
switch (element.type) {
|
|
20
20
|
case PARAGRAPH:
|
|
21
21
|
{
|
|
22
|
+
var parentNode = getParentNode(editor.children, element.id);
|
|
23
|
+
if (parentNode && parentNode.type === LIST_ITEM) {
|
|
24
|
+
var _ParagraphPlugin$rend = _slicedToArray(ParagraphPlugin.renderElements, 1),
|
|
25
|
+
_renderParagraph = _ParagraphPlugin$rend[0];
|
|
26
|
+
return _renderParagraph(props);
|
|
27
|
+
}
|
|
22
28
|
attributes['onMouseEnter'] = onMouseEnter;
|
|
23
|
-
var _ParagraphPlugin$
|
|
24
|
-
renderParagraph = _ParagraphPlugin$
|
|
29
|
+
var _ParagraphPlugin$rend2 = _slicedToArray(ParagraphPlugin.renderElements, 1),
|
|
30
|
+
renderParagraph = _ParagraphPlugin$rend2[0];
|
|
25
31
|
return renderParagraph(props);
|
|
26
32
|
}
|
|
27
33
|
case TITLE:
|
|
@@ -76,12 +82,6 @@ var CustomRenderElement = function CustomRenderElement(props) {
|
|
|
76
82
|
renderListItem = _ListPlugin$renderEle2[1];
|
|
77
83
|
return renderListItem(props, editor);
|
|
78
84
|
}
|
|
79
|
-
case LIST_LIC:
|
|
80
|
-
{
|
|
81
|
-
var _ListPlugin$renderEle3 = _slicedToArray(ListPlugin.renderElements, 3),
|
|
82
|
-
renderListLic = _ListPlugin$renderEle3[2];
|
|
83
|
-
return renderListLic(props, editor);
|
|
84
|
-
}
|
|
85
85
|
case CHECK_LIST_ITEM:
|
|
86
86
|
{
|
|
87
87
|
attributes['onMouseEnter'] = onMouseEnter;
|
|
@@ -105,8 +105,8 @@ var CustomRenderElement = function CustomRenderElement(props) {
|
|
|
105
105
|
case IMAGE:
|
|
106
106
|
{
|
|
107
107
|
var _editor$element_comme;
|
|
108
|
-
var
|
|
109
|
-
var comments = ((_editor$element_comme = editor.element_comments_map) === null || _editor$element_comme === void 0 ? void 0 : _editor$element_comme[
|
|
108
|
+
var _parentNode = getParentNode(editor.children, element.id);
|
|
109
|
+
var comments = ((_editor$element_comme = editor.element_comments_map) === null || _editor$element_comme === void 0 ? void 0 : _editor$element_comme[_parentNode.id]) || [];
|
|
110
110
|
var unresolvedComments = comments && comments.filter(function (item) {
|
|
111
111
|
return !item.resolved;
|
|
112
112
|
});
|
|
@@ -153,9 +153,9 @@ var CustomRenderElement = function CustomRenderElement(props) {
|
|
|
153
153
|
}
|
|
154
154
|
default:
|
|
155
155
|
{
|
|
156
|
-
var _ParagraphPlugin$
|
|
157
|
-
|
|
158
|
-
return
|
|
156
|
+
var _ParagraphPlugin$rend3 = _slicedToArray(ParagraphPlugin.renderElements, 1),
|
|
157
|
+
_renderParagraph2 = _ParagraphPlugin$rend3[0];
|
|
158
|
+
return _renderParagraph2(props);
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
};
|
|
@@ -29,3 +29,20 @@
|
|
|
29
29
|
.sdoc-tip-dialog .sdoc-tip-dialog-custom-container .sdoc-tip-operation-btn {
|
|
30
30
|
min-width: 140px;
|
|
31
31
|
}
|
|
32
|
+
|
|
33
|
+
.sdoc-tip-dialog .sdoc-tip-dialog-custom-container.publishing {
|
|
34
|
+
padding: 2rem;
|
|
35
|
+
height: 180px;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.sdoc-tip-dialog .sdoc-tip-dialog-custom-container.publishing .common-loading-tip {
|
|
40
|
+
width: 30px;
|
|
41
|
+
height: 30px;
|
|
42
|
+
border-width: 4px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.sdoc-tip-dialog .sdoc-tip-dialog-custom-container.publishing .sdoc-tip-content {
|
|
46
|
+
margin-top: 8px;
|
|
47
|
+
padding: 0;
|
|
48
|
+
}
|
|
@@ -69,6 +69,13 @@ var TipDialog = function TipDialog(_ref) {
|
|
|
69
69
|
onClick: refreshPage
|
|
70
70
|
}, t('Refresh'))));
|
|
71
71
|
}
|
|
72
|
+
if (tipType === TIP_TYPE.PUBLISHING) {
|
|
73
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
74
|
+
className: "sdoc-tip-dialog-custom-container publishing"
|
|
75
|
+
}, /*#__PURE__*/React.createElement(CommonLoading, null), /*#__PURE__*/React.createElement("div", {
|
|
76
|
+
className: "sdoc-tip-content"
|
|
77
|
+
}, t(TIP_CONTENT[tipType])));
|
|
78
|
+
}
|
|
72
79
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ModalHeader, {
|
|
73
80
|
toggle: NOT_CLOSE_DIALOG_TIP_TYPE.includes(tipType) ? undefined : closeDialog
|
|
74
81
|
}, t(TIP_TITLE[tipType])), /*#__PURE__*/React.createElement(ModalBody, {
|