@titaui/pc 1.10.40 → 1.10.44-beta.1
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/lib/components/dynamic/dynamic-item/dynamic-chart/index.js +18 -3
- package/lib/components/okr-detail/components/okr-tree/tree-node/e-node/e-project.js +5 -1
- package/lib/components/okr-detail/components/okr-tree/tree-node/e-node/index.css +19 -1
- package/lib/components/superset-charts/utils/axios.js +2 -2
- package/lib/components/upload/index.js +2 -4
- package/lib/index.js +0 -8
- package/package.json +2 -20
- package/lib/components/rich-editor/basic/schema.js +0 -47
- package/lib/components/rich-editor/consts/events.js +0 -12
- package/lib/components/rich-editor/enums.js +0 -42
- package/lib/components/rich-editor/index.js +0 -58
- package/lib/components/rich-editor/keymap.js +0 -119
- package/lib/components/rich-editor/keymaps/index.js +0 -241
- package/lib/components/rich-editor/models/controller.js +0 -18
- package/lib/components/rich-editor/models/editor.js +0 -47
- package/lib/components/rich-editor/models/plugin.js +0 -20
- package/lib/components/rich-editor/models/schema.js +0 -121
- package/lib/components/rich-editor/plugins/block/block-quote/commond.js +0 -27
- package/lib/components/rich-editor/plugins/block/block-quote/index.js +0 -126
- package/lib/components/rich-editor/plugins/block/heading/commonds.js +0 -31
- package/lib/components/rich-editor/plugins/block/heading/index.js +0 -188
- package/lib/components/rich-editor/plugins/block/index.js +0 -57
- package/lib/components/rich-editor/plugins/block/lists/actions/conversions.js +0 -172
- package/lib/components/rich-editor/plugins/block/lists/actions/indent-list-items-selected.js +0 -163
- package/lib/components/rich-editor/plugins/block/lists/actions/indent-list.js +0 -59
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-forward.js +0 -74
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/index.js +0 -45
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-list-item-with-paragraph.js +0 -104
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-list-item-with-parent-nested-list.js +0 -92
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-nested-list-with-parent-list-item.js +0 -89
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-paragraph-with-list.js +0 -48
- package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-sibling-list-items.js +0 -61
- package/lib/components/rich-editor/plugins/block/lists/actions/merge-lists.js +0 -34
- package/lib/components/rich-editor/plugins/block/lists/actions/outdent-list-items-selected.js +0 -289
- package/lib/components/rich-editor/plugins/block/lists/actions/wrap-and-join-lists.js +0 -180
- package/lib/components/rich-editor/plugins/block/lists/baseCommand.js +0 -328
- package/lib/components/rich-editor/plugins/block/lists/commond/indent-list.js +0 -60
- package/lib/components/rich-editor/plugins/block/lists/commond/index.js +0 -398
- package/lib/components/rich-editor/plugins/block/lists/commond/join-list-item-forward.js +0 -45
- package/lib/components/rich-editor/plugins/block/lists/commond/listBackspace.js +0 -302
- package/lib/components/rich-editor/plugins/block/lists/commond/outdent-list.js +0 -43
- package/lib/components/rich-editor/plugins/block/lists/index.js +0 -222
- package/lib/components/rich-editor/plugins/block/lists/messages.js +0 -38
- package/lib/components/rich-editor/plugins/block/lists/pm-plugins/input-rule.js +0 -152
- package/lib/components/rich-editor/plugins/block/lists/pm-plugins/keymap.js +0 -33
- package/lib/components/rich-editor/plugins/block/lists/pm-plugins/main.js +0 -94
- package/lib/components/rich-editor/plugins/block/lists/styles.js +0 -15
- package/lib/components/rich-editor/plugins/block/lists/transforms.js +0 -347
- package/lib/components/rich-editor/plugins/block/lists/utils/analytics.js +0 -48
- package/lib/components/rich-editor/plugins/block/lists/utils/find.js +0 -126
- package/lib/components/rich-editor/plugins/block/lists/utils/indentation.js +0 -87
- package/lib/components/rich-editor/plugins/block/lists/utils/node.js +0 -144
- package/lib/components/rich-editor/plugins/block/lists/utils/replace-content.js +0 -31
- package/lib/components/rich-editor/plugins/block/lists/utils/selection.js +0 -201
- package/lib/components/rich-editor/plugins/block/lists/utils.js +0 -52
- package/lib/components/rich-editor/plugins/block/paragraph/index.js +0 -91
- package/lib/components/rich-editor/plugins/core/index.js +0 -90
- package/lib/components/rich-editor/plugins/core/pm-plugins/focus-handler.js +0 -67
- package/lib/components/rich-editor/plugins/core/pm-plugins/keymap.js +0 -29
- package/lib/components/rich-editor/plugins/core/pm-plugins/reactNodeView.js +0 -80
- package/lib/components/rich-editor/plugins/extension/alignment/commond.js +0 -24
- package/lib/components/rich-editor/plugins/extension/alignment/index.js +0 -111
- package/lib/components/rich-editor/plugins/extension/alignment/utils.js +0 -19
- package/lib/components/rich-editor/plugins/extension/index.js +0 -18
- package/lib/components/rich-editor/plugins/index.js +0 -44
- package/lib/components/rich-editor/plugins/inline/color/commond.js +0 -128
- package/lib/components/rich-editor/plugins/inline/color/consts.js +0 -43
- package/lib/components/rich-editor/plugins/inline/color/index.css +0 -61
- package/lib/components/rich-editor/plugins/inline/color/index.js +0 -209
- package/lib/components/rich-editor/plugins/inline/color/selector.js +0 -250
- package/lib/components/rich-editor/plugins/inline/delete-line/index.js +0 -147
- package/lib/components/rich-editor/plugins/inline/em/index.js +0 -93
- package/lib/components/rich-editor/plugins/inline/index.js +0 -83
- package/lib/components/rich-editor/plugins/inline/link/commands.js +0 -256
- package/lib/components/rich-editor/plugins/inline/link/index.js +0 -149
- package/lib/components/rich-editor/plugins/inline/link/pm-plugins/fake-cursor-for-toolbar.js +0 -77
- package/lib/components/rich-editor/plugins/inline/link/pm-plugins/main.js +0 -293
- package/lib/components/rich-editor/plugins/inline/link/ui/index.css +0 -79
- package/lib/components/rich-editor/plugins/inline/link/ui/linkEditor.js +0 -148
- package/lib/components/rich-editor/plugins/inline/link/ui/linkToolbar.js +0 -88
- package/lib/components/rich-editor/plugins/inline/link/ui/toolbarBtn.js +0 -117
- package/lib/components/rich-editor/plugins/inline/link/utils.js +0 -33
- package/lib/components/rich-editor/plugins/inline/strong/index.js +0 -137
- package/lib/components/rich-editor/plugins/inline/under-line/index.js +0 -145
- package/lib/components/rich-editor/plugins/util.js +0 -281
- package/lib/components/rich-editor/react/reactNodeView.js +0 -383
- package/lib/components/rich-editor/react/uiProvider.js +0 -185
- package/lib/components/rich-editor/schemas/basic.js +0 -309
- package/lib/components/rich-editor/schemas/index.js +0 -19
- package/lib/components/rich-editor/schemas/list.js +0 -342
- package/lib/components/rich-editor/types/commond.js +0 -5
- package/lib/components/rich-editor/types/index.js +0 -18
- package/lib/components/rich-editor/ui/Popup/index.js +0 -247
- package/lib/components/rich-editor/ui/Popup/utils.js +0 -399
- package/lib/components/rich-editor/ui/editor/index.css +0 -144
- package/lib/components/rich-editor/ui/editor/index.js +0 -143
- package/lib/components/rich-editor/ui/normal-toolbar/index.css +0 -29
- package/lib/components/rich-editor/ui/normal-toolbar/index.js +0 -109
- package/lib/components/rich-editor/utils/browser.js +0 -35
- package/lib/components/rich-editor/utils/commands.js +0 -266
- package/lib/components/rich-editor/utils/document.js +0 -160
- package/lib/components/rich-editor/utils/event.js +0 -79
- package/lib/components/rich-editor/utils/helpers.js +0 -16
- package/lib/components/rich-editor/utils/mark.js +0 -168
- package/lib/components/rich-editor/utils/slice.js +0 -85
- package/lib/components/rich-editor/utils/toolbar.js +0 -228
- package/yarn-error.log +0 -22184
package/lib/components/rich-editor/plugins/block/lists/actions/outdent-list-items-selected.js
DELETED
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.outdentListItemsSelected = void 0;
|
|
7
|
-
|
|
8
|
-
var _prosemirrorState = require("prosemirror-state");
|
|
9
|
-
|
|
10
|
-
var _prosemirrorModel = require("prosemirror-model");
|
|
11
|
-
|
|
12
|
-
var _prosemirrorTransform = require("prosemirror-transform");
|
|
13
|
-
|
|
14
|
-
var _node = require("../utils/node");
|
|
15
|
-
|
|
16
|
-
var _find = require("../utils/find");
|
|
17
|
-
|
|
18
|
-
var _selection = require("../utils/selection");
|
|
19
|
-
|
|
20
|
-
// import { GapCursorSelection } from '../../selection/gap-cursor-selection';
|
|
21
|
-
var outdentListItemsSelected = function outdentListItemsSelected(tr) {
|
|
22
|
-
var originalSelection = tr.selection;
|
|
23
|
-
var normalizedSelection = (0, _selection.normalizeListItemsSelection)({
|
|
24
|
-
selection: tr.selection,
|
|
25
|
-
doc: tr.doc
|
|
26
|
-
});
|
|
27
|
-
var rootList = (0, _find.findRootParentListNode)(normalizedSelection.$from);
|
|
28
|
-
|
|
29
|
-
if (!rootList) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
var commonList = normalizedSelection.$from.blockRange(rootList, _node.isListNode);
|
|
34
|
-
|
|
35
|
-
if (!commonList) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
var hasNormalizedToPositionLiftedOut = false;
|
|
40
|
-
var hasNormalizedFromPositionLiftedOut = false;
|
|
41
|
-
var oldFrom = normalizedSelection.from,
|
|
42
|
-
oldTo = normalizedSelection.to;
|
|
43
|
-
var nodeRanges = splitRangeSelection(normalizedSelection);
|
|
44
|
-
nodeRanges.forEach(function (range) {
|
|
45
|
-
var $from = tr.doc.resolve(tr.mapping.map(range.from));
|
|
46
|
-
var $to = tr.doc.resolve(tr.mapping.map(range.to));
|
|
47
|
-
var mappedRange = $from.blockRange($to, _node.isListNode);
|
|
48
|
-
|
|
49
|
-
if (!mappedRange) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if ((0, _node.isListItemNode)($from.node(mappedRange.depth - 1))) {
|
|
54
|
-
outdentRangeToParentList({
|
|
55
|
-
tr: tr,
|
|
56
|
-
range: mappedRange
|
|
57
|
-
});
|
|
58
|
-
} else {
|
|
59
|
-
extractListItemsRangeFromList({
|
|
60
|
-
tr: tr,
|
|
61
|
-
range: mappedRange
|
|
62
|
-
});
|
|
63
|
-
hasNormalizedToPositionLiftedOut = hasNormalizedToPositionLiftedOut || oldTo >= range.from && oldTo < range.to;
|
|
64
|
-
hasNormalizedFromPositionLiftedOut = hasNormalizedFromPositionLiftedOut || oldFrom >= range.from && oldFrom < range.to;
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
var hasCommonListMoved = commonList.start !== tr.mapping.map(commonList.start);
|
|
68
|
-
var nextSelection = calculateNewSelection({
|
|
69
|
-
originalSelection: originalSelection,
|
|
70
|
-
normalizedSelection: normalizedSelection,
|
|
71
|
-
tr: tr,
|
|
72
|
-
hasCommonListMoved: hasCommonListMoved,
|
|
73
|
-
hasNormalizedToPositionLiftedOut: hasNormalizedToPositionLiftedOut,
|
|
74
|
-
hasNormalizedFromPositionLiftedOut: hasNormalizedFromPositionLiftedOut
|
|
75
|
-
});
|
|
76
|
-
tr.setSelection(nextSelection);
|
|
77
|
-
(0, _node.joinSiblingLists)({
|
|
78
|
-
tr: tr,
|
|
79
|
-
direction: _node.JoinDirection.RIGHT
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
exports.outdentListItemsSelected = outdentListItemsSelected;
|
|
84
|
-
|
|
85
|
-
var calculateNewSelection = function calculateNewSelection(_ref) {
|
|
86
|
-
var tr = _ref.tr,
|
|
87
|
-
originalSelection = _ref.originalSelection,
|
|
88
|
-
normalizedSelection = _ref.normalizedSelection,
|
|
89
|
-
hasCommonListMoved = _ref.hasCommonListMoved,
|
|
90
|
-
hasNormalizedToPositionLiftedOut = _ref.hasNormalizedToPositionLiftedOut,
|
|
91
|
-
hasNormalizedFromPositionLiftedOut = _ref.hasNormalizedFromPositionLiftedOut;
|
|
92
|
-
var $from = normalizedSelection.$from,
|
|
93
|
-
$to = normalizedSelection.$to;
|
|
94
|
-
var isCursorSelection = normalizedSelection.empty;
|
|
95
|
-
var from = tr.mapping.map($from.pos);
|
|
96
|
-
var to = tr.mapping.map($to.pos);
|
|
97
|
-
var LIST_STRUCTURE_CHANGED_OFFSET = 2;
|
|
98
|
-
var isToFromSameListItem = $from.sameParent($to);
|
|
99
|
-
|
|
100
|
-
if (hasNormalizedFromPositionLiftedOut) {
|
|
101
|
-
var fromMapped = isToFromSameListItem ? $from.pos : from;
|
|
102
|
-
from = hasNormalizedFromPositionLiftedOut ? $from.pos : fromMapped;
|
|
103
|
-
from = hasCommonListMoved ? from - LIST_STRUCTURE_CHANGED_OFFSET : from;
|
|
104
|
-
from = Math.max(from, 0);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (hasNormalizedToPositionLiftedOut) {
|
|
108
|
-
var toMapped = isToFromSameListItem ? $to.pos : to;
|
|
109
|
-
to = hasNormalizedToPositionLiftedOut ? $to.pos : toMapped;
|
|
110
|
-
to = hasCommonListMoved ? to - LIST_STRUCTURE_CHANGED_OFFSET : to;
|
|
111
|
-
to = Math.min(to, tr.doc.nodeSize - 2);
|
|
112
|
-
} // if (normalizedSelection instanceof GapCursorSelection) {
|
|
113
|
-
// const nextSelectionFrom = tr.doc.resolve(from);
|
|
114
|
-
// return new GapCursorSelection(nextSelectionFrom, normalizedSelection.side);
|
|
115
|
-
// }
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (originalSelection instanceof _prosemirrorState.NodeSelection) {
|
|
119
|
-
return _prosemirrorState.NodeSelection.create(tr.doc, from);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (isCursorSelection) {
|
|
123
|
-
return _prosemirrorState.TextSelection.between(tr.doc.resolve(to), tr.doc.resolve(to), -1);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return _prosemirrorState.TextSelection.between(tr.doc.resolve(from), tr.doc.resolve(to), -1);
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
var splitRangeSelection = function splitRangeSelection(selection) {
|
|
130
|
-
var commonListRange = (0, _selection.createListNodeRange)({
|
|
131
|
-
selection: selection
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
if (!commonListRange) {
|
|
135
|
-
return [];
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
var $from = selection.$from,
|
|
139
|
-
$to = selection.$to;
|
|
140
|
-
|
|
141
|
-
if ($from.pos === $to.pos && $from.sameParent($to)) {
|
|
142
|
-
return [{
|
|
143
|
-
from: commonListRange.start,
|
|
144
|
-
to: commonListRange.end,
|
|
145
|
-
depth: commonListRange.depth
|
|
146
|
-
}];
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
var lastListItem = findPreviousListItemSibling($from);
|
|
150
|
-
|
|
151
|
-
if (!lastListItem) {
|
|
152
|
-
return [];
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
var nodeRanges = [];
|
|
156
|
-
var doc = $from.doc;
|
|
157
|
-
var previousListItem = findPreviousListItemSibling($to);
|
|
158
|
-
|
|
159
|
-
while (previousListItem && previousListItem.pos >= lastListItem.pos && previousListItem.pos >= commonListRange.start) {
|
|
160
|
-
var node = doc.nodeAt(previousListItem.pos);
|
|
161
|
-
|
|
162
|
-
if (!node || !(0, _node.isListItemNode)(node)) {
|
|
163
|
-
return [];
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
var offset = 0;
|
|
167
|
-
|
|
168
|
-
if (node && node.lastChild && (0, _node.isListNode)(node.lastChild)) {
|
|
169
|
-
offset = node.lastChild.nodeSize;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
var start = previousListItem.pos + 1;
|
|
173
|
-
nodeRanges.push({
|
|
174
|
-
from: start,
|
|
175
|
-
to: doc.resolve(start).end() - offset,
|
|
176
|
-
depth: previousListItem.depth
|
|
177
|
-
});
|
|
178
|
-
previousListItem = findPreviousListItemSibling(previousListItem);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
return nodeRanges;
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
var outdentRangeToParentList = function outdentRangeToParentList(_ref2) {
|
|
185
|
-
var tr = _ref2.tr,
|
|
186
|
-
range = _ref2.range;
|
|
187
|
-
var end = range.end;
|
|
188
|
-
var endOfList = range.$to.end(range.depth);
|
|
189
|
-
var listItem = tr.doc.type.schema.nodes.listItem;
|
|
190
|
-
|
|
191
|
-
if (end < endOfList) {
|
|
192
|
-
var slice = new _prosemirrorModel.Slice(_prosemirrorModel.Fragment.from(listItem.create(null, range.parent.copy())), 1, 0);
|
|
193
|
-
var step = new _prosemirrorTransform.ReplaceAroundStep(end - 1, endOfList, end, endOfList, slice, 1, true);
|
|
194
|
-
tr.step(step);
|
|
195
|
-
range = new _prosemirrorModel.NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
var target = (0, _prosemirrorTransform.liftTarget)(range);
|
|
199
|
-
|
|
200
|
-
if (target) {
|
|
201
|
-
tr.lift(range, target);
|
|
202
|
-
}
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
var extractListItemsRangeFromList = function extractListItemsRangeFromList(_ref3) {
|
|
206
|
-
var tr = _ref3.tr,
|
|
207
|
-
range = _ref3.range;
|
|
208
|
-
var list = range.parent;
|
|
209
|
-
var $start = tr.doc.resolve(range.start);
|
|
210
|
-
var listStart = $start.start(range.depth);
|
|
211
|
-
var listEnd = $start.end(range.depth);
|
|
212
|
-
var isAtTop = listStart === range.start;
|
|
213
|
-
var isAtBottom = listEnd === range.end;
|
|
214
|
-
var isTheEntireList = isAtTop && isAtBottom;
|
|
215
|
-
var listItemContent = isAtTop ? _prosemirrorModel.Fragment.empty : _prosemirrorModel.Fragment.from(list.copy(_prosemirrorModel.Fragment.empty));
|
|
216
|
-
|
|
217
|
-
for (var i = range.startIndex; i < range.endIndex; i++) {
|
|
218
|
-
listItemContent = listItemContent.append(list.child(i).content);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
if (isAtTop) {
|
|
222
|
-
for (var _i = 0; _i < listItemContent.childCount; _i++) {
|
|
223
|
-
var child = listItemContent.child(_i);
|
|
224
|
-
|
|
225
|
-
if (child && (0, _node.isListNode)(child) && child.type !== list.type) {
|
|
226
|
-
var newNestedList = list.type.create(null, child.content);
|
|
227
|
-
listItemContent = listItemContent.replaceChild(_i, newNestedList);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
var nextListFragment = listItemContent.append(_prosemirrorModel.Fragment.from(list.copy(_prosemirrorModel.Fragment.empty)));
|
|
233
|
-
|
|
234
|
-
if (isTheEntireList) {
|
|
235
|
-
var slice = new _prosemirrorModel.Slice(listItemContent, 0, 0);
|
|
236
|
-
var step = new _prosemirrorTransform.ReplaceStep($start.pos - 1, range.end + 1, slice, false);
|
|
237
|
-
tr.step(step);
|
|
238
|
-
} else if (isAtTop) {
|
|
239
|
-
var _slice = new _prosemirrorModel.Slice(nextListFragment, 0, 1);
|
|
240
|
-
|
|
241
|
-
var _step = new _prosemirrorTransform.ReplaceStep($start.pos - 1, range.end, _slice, false);
|
|
242
|
-
|
|
243
|
-
tr.step(_step);
|
|
244
|
-
} else if (isAtBottom) {
|
|
245
|
-
var _slice2 = new _prosemirrorModel.Slice(listItemContent, 1, 0);
|
|
246
|
-
|
|
247
|
-
var _step2 = new _prosemirrorTransform.ReplaceStep($start.pos, listEnd + 1, _slice2, false);
|
|
248
|
-
|
|
249
|
-
tr.step(_step2);
|
|
250
|
-
} else {
|
|
251
|
-
var _slice3 = new _prosemirrorModel.Slice(nextListFragment, 1, 1);
|
|
252
|
-
|
|
253
|
-
var _step3 = new _prosemirrorTransform.ReplaceAroundStep($start.pos, listEnd, range.end, listEnd, _slice3, _slice3.size, false);
|
|
254
|
-
|
|
255
|
-
tr.step(_step3);
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
|
|
259
|
-
var findPreviousListItemSibling = function findPreviousListItemSibling($pos) {
|
|
260
|
-
var doc = $pos.doc;
|
|
261
|
-
var isPositionListItem = (0, _node.isListNode)($pos.node());
|
|
262
|
-
var listItemPosition = $pos;
|
|
263
|
-
|
|
264
|
-
if (!isPositionListItem) {
|
|
265
|
-
var listItem = (0, _find.findFirstParentListItemNode)($pos);
|
|
266
|
-
|
|
267
|
-
if (!listItem) {
|
|
268
|
-
return null;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
return doc.resolve(listItem.pos);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
var resolved = doc.resolve(listItemPosition.pos);
|
|
275
|
-
|
|
276
|
-
var foundPosition = _prosemirrorState.Selection.findFrom(resolved, -1);
|
|
277
|
-
|
|
278
|
-
if (!foundPosition) {
|
|
279
|
-
return null;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
var parentListItemNode = (0, _find.findFirstParentListItemNode)(foundPosition.$from);
|
|
283
|
-
|
|
284
|
-
if (!parentListItemNode) {
|
|
285
|
-
return null;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
return doc.resolve(parentListItemNode.pos);
|
|
289
|
-
};
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.autoJoin = autoJoin;
|
|
7
|
-
exports.wrapInList = wrapInList;
|
|
8
|
-
exports.wrapInListAndJoin = wrapInListAndJoin;
|
|
9
|
-
|
|
10
|
-
var _prosemirrorModel = require("prosemirror-model");
|
|
11
|
-
|
|
12
|
-
var _prosemirrorTransform = require("prosemirror-transform");
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Wraps the selection in a list with the given type. If this results in
|
|
16
|
-
* two adjacent lists of the same type, those will be joined together.
|
|
17
|
-
*/
|
|
18
|
-
function wrapInListAndJoin(nodeType, tr) {
|
|
19
|
-
wrapInList(nodeType)(tr);
|
|
20
|
-
autoJoin(tr, function (before, after) {
|
|
21
|
-
return before.type === after.type && before.type === nodeType;
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Wraps the selection in a list with the given type and attributes.
|
|
26
|
-
*
|
|
27
|
-
* Adapted from https://github.com/ProseMirror/prosemirror-schema-list/blob/master/src/schema-list.js#L64-L89
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
function wrapInList(listType, attrs) {
|
|
32
|
-
return function (tr) {
|
|
33
|
-
var _tr$selection = tr.selection,
|
|
34
|
-
$from = _tr$selection.$from,
|
|
35
|
-
$to = _tr$selection.$to;
|
|
36
|
-
var range = $from.blockRange($to);
|
|
37
|
-
var doJoin = false;
|
|
38
|
-
var outerRange = range;
|
|
39
|
-
|
|
40
|
-
if (!range) {
|
|
41
|
-
return false;
|
|
42
|
-
} // This is at the top of an existing list item
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (range.depth >= 2 && // @ts-ignore - missing type for compatibleContent
|
|
46
|
-
$from.node(range.depth - 1).type.compatibleContent(listType) && range.startIndex === 0) {
|
|
47
|
-
// Don't do anything if this is the top of the list
|
|
48
|
-
if ($from.index(range.depth - 1) === 0) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
var $insert = tr.doc.resolve(range.start - 2);
|
|
53
|
-
outerRange = new _prosemirrorModel.NodeRange($insert, $insert, range.depth);
|
|
54
|
-
|
|
55
|
-
if (range.endIndex < range.parent.childCount) {
|
|
56
|
-
range = new _prosemirrorModel.NodeRange($from, tr.doc.resolve($to.end(range.depth)), range.depth);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
doJoin = true;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
var wrap = (0, _prosemirrorTransform.findWrapping)(outerRange, listType, attrs, range);
|
|
63
|
-
|
|
64
|
-
if (!wrap) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
tr = doWrapInList(tr, range, wrap, doJoin, listType);
|
|
69
|
-
return true;
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Internal function used by wrapInList
|
|
74
|
-
*
|
|
75
|
-
* Adapted from https://github.com/ProseMirror/prosemirror-schema-list/blob/master/src/schema-list.js#L91-L112
|
|
76
|
-
*/
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
function doWrapInList(tr, range, wrappers, joinBefore, listType) {
|
|
80
|
-
var content = _prosemirrorModel.Fragment.empty;
|
|
81
|
-
|
|
82
|
-
for (var i = wrappers.length - 1; i >= 0; i--) {
|
|
83
|
-
content = _prosemirrorModel.Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
tr.step(new _prosemirrorTransform.ReplaceAroundStep(range.start - (joinBefore ? 2 : 0), range.end, range.start, range.end, new _prosemirrorModel.Slice(content, 0, 0), wrappers.length, true));
|
|
87
|
-
var found = 0;
|
|
88
|
-
|
|
89
|
-
for (var _i = 0; _i < wrappers.length; _i++) {
|
|
90
|
-
if (wrappers[_i].type === listType) {
|
|
91
|
-
found = _i + 1;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
var splitDepth = wrappers.length - found;
|
|
96
|
-
var splitPos = range.start + wrappers.length - (joinBefore ? 2 : 0);
|
|
97
|
-
var parent = range.parent;
|
|
98
|
-
|
|
99
|
-
for (var _i2 = range.startIndex, e = range.endIndex, first = true; _i2 < e; _i2++, first = false) {
|
|
100
|
-
if (!first && (0, _prosemirrorTransform.canSplit)(tr.doc, splitPos, splitDepth)) {
|
|
101
|
-
tr.split(splitPos, splitDepth);
|
|
102
|
-
splitPos += 2 * splitDepth;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
splitPos += parent.child(_i2).nodeSize;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return tr;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Checks whether two adjacent nodes can be joined. If so, the document
|
|
112
|
-
* will be updated to join those nodes. If not, the original transaction
|
|
113
|
-
* remains untouched.
|
|
114
|
-
*
|
|
115
|
-
* Nodes are considered joinable if the `isJoinable` predicate returns true.
|
|
116
|
-
*
|
|
117
|
-
* Adapted from https://github.com/ProseMirror/prosemirror-commands/blob/master/src/commands.js#L597-L610
|
|
118
|
-
*/
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
function autoJoin(tr, isJoinable) {
|
|
122
|
-
if (!tr.isGeneric) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
var ranges = [];
|
|
127
|
-
|
|
128
|
-
for (var i = 0; i < tr.mapping.maps.length; i++) {
|
|
129
|
-
var map = tr.mapping.maps[i];
|
|
130
|
-
|
|
131
|
-
for (var j = 0; j < ranges.length; j++) {
|
|
132
|
-
ranges[j] = map.map(ranges[j]);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
map.forEach(function (_s, _e, from, to) {
|
|
136
|
-
return ranges.push(from, to);
|
|
137
|
-
});
|
|
138
|
-
} // Figure out which joinable points exist inside those ranges,
|
|
139
|
-
// by checking all node boundaries in their parent nodes.
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
var joinable = [];
|
|
143
|
-
|
|
144
|
-
for (var _i3 = 0; _i3 < ranges.length; _i3 += 2) {
|
|
145
|
-
var from = ranges[_i3];
|
|
146
|
-
var to = ranges[_i3 + 1];
|
|
147
|
-
var $from = tr.doc.resolve(from);
|
|
148
|
-
var depth = $from.sharedDepth(to);
|
|
149
|
-
var parent = $from.node(depth);
|
|
150
|
-
|
|
151
|
-
for (var index = $from.indexAfter(depth), pos = $from.after(depth + 1); pos <= to; ++index) {
|
|
152
|
-
var _after = parent.maybeChild(index);
|
|
153
|
-
|
|
154
|
-
if (!_after) {
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if (index && joinable.indexOf(pos) === -1) {
|
|
159
|
-
var _before = parent.child(index - 1);
|
|
160
|
-
|
|
161
|
-
if (_before.type === _after.type && isJoinable(_before, _after)) {
|
|
162
|
-
joinable.push(pos);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
pos += _after.nodeSize;
|
|
167
|
-
}
|
|
168
|
-
} // Join the joinable points
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
joinable.sort(function (a, b) {
|
|
172
|
-
return a - b;
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
for (var _i4 = joinable.length - 1; _i4 >= 0; _i4--) {
|
|
176
|
-
if ((0, _prosemirrorTransform.canJoin)(tr.doc, joinable[_i4])) {
|
|
177
|
-
tr.join(joinable[_i4]);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|