miyuan-editor 0.0.3

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.
Files changed (58) hide show
  1. package/README.md +525 -0
  2. package/dist/core/index.cjs.js +40 -0
  3. package/dist/core/index.esm.js +4 -0
  4. package/dist/dist-5Q_Z9Ell.js +6390 -0
  5. package/dist/dist-5Q_Z9Ell.js.map +1 -0
  6. package/dist/dist-CMM6n8DO.cjs +4629 -0
  7. package/dist/dist-CMM6n8DO.cjs.map +1 -0
  8. package/dist/dist-CRSJDo2G.cjs +6617 -0
  9. package/dist/dist-CRSJDo2G.cjs.map +1 -0
  10. package/dist/dist-CZw77IJK.js +4612 -0
  11. package/dist/dist-CZw77IJK.js.map +1 -0
  12. package/dist/dist-CnVrDtsI.js +556 -0
  13. package/dist/dist-CnVrDtsI.js.map +1 -0
  14. package/dist/dist-rItBfhNb.cjs +591 -0
  15. package/dist/dist-rItBfhNb.cjs.map +1 -0
  16. package/dist/export-utils-CYaNoyVg.cjs +167 -0
  17. package/dist/export-utils-CYaNoyVg.cjs.map +1 -0
  18. package/dist/export-utils-DN0Gu8Vu.js +144 -0
  19. package/dist/export-utils-DN0Gu8Vu.js.map +1 -0
  20. package/dist/extension-BPFuYyzN.cjs +338 -0
  21. package/dist/extension-BPFuYyzN.cjs.map +1 -0
  22. package/dist/extension-Cl6x5MDR.js +321 -0
  23. package/dist/extension-Cl6x5MDR.js.map +1 -0
  24. package/dist/extensions/index.cjs.js +3462 -0
  25. package/dist/extensions/index.cjs.js.map +1 -0
  26. package/dist/extensions/index.esm.js +3412 -0
  27. package/dist/extensions/index.esm.js.map +1 -0
  28. package/dist/prompt-B4AOP8f_.js +24143 -0
  29. package/dist/prompt-B4AOP8f_.js.map +1 -0
  30. package/dist/prompt-CGLw2O21.cjs +25530 -0
  31. package/dist/prompt-CGLw2O21.cjs.map +1 -0
  32. package/dist/react/index.cjs.js +839 -0
  33. package/dist/react/index.cjs.js.map +1 -0
  34. package/dist/react/index.esm.js +820 -0
  35. package/dist/react/index.esm.js.map +1 -0
  36. package/dist/shortcut-panel-BskGXV8n.js +49468 -0
  37. package/dist/shortcut-panel-BskGXV8n.js.map +1 -0
  38. package/dist/shortcut-panel-yP4RPTFt.cjs +49563 -0
  39. package/dist/shortcut-panel-yP4RPTFt.cjs.map +1 -0
  40. package/dist/toc-extension-BESc0uEW.js +150 -0
  41. package/dist/toc-extension-BESc0uEW.js.map +1 -0
  42. package/dist/toc-extension-SRvSuskn.cjs +173 -0
  43. package/dist/toc-extension-SRvSuskn.cjs.map +1 -0
  44. package/dist/toolbar-config-Cgc9mV2v.js +243 -0
  45. package/dist/toolbar-config-Cgc9mV2v.js.map +1 -0
  46. package/dist/toolbar-config-Cjt_fPMi.cjs +260 -0
  47. package/dist/toolbar-config-Cjt_fPMi.cjs.map +1 -0
  48. package/dist/ui/index.cjs.js +18 -0
  49. package/dist/ui/index.esm.js +3 -0
  50. package/dist/vue/index.cjs.js +323 -0
  51. package/dist/vue/index.cjs.js.map +1 -0
  52. package/dist/vue/index.esm.js +307 -0
  53. package/dist/vue/index.esm.js.map +1 -0
  54. package/dist/vue2/index.cjs.js +323 -0
  55. package/dist/vue2/index.cjs.js.map +1 -0
  56. package/dist/vue2/index.esm.js +307 -0
  57. package/dist/vue2/index.esm.js.map +1 -0
  58. package/package.json +116 -0
@@ -0,0 +1,591 @@
1
+ const require_dist = require("./dist-CRSJDo2G.cjs");
2
+ //#region node_modules/.pnpm/prosemirror-schema-list@1.5.1/node_modules/prosemirror-schema-list/dist/index.js
3
+ /**
4
+ Build a command that splits a non-empty textblock at the top level
5
+ of a list item by also splitting that list item.
6
+ */
7
+ function splitListItem(itemType, itemAttrs) {
8
+ return function(state, dispatch) {
9
+ let { $from, $to, node } = state.selection;
10
+ if (node && node.isBlock || $from.depth < 2 || !$from.sameParent($to)) return false;
11
+ let grandParent = $from.node(-1);
12
+ if (grandParent.type != itemType) return false;
13
+ if ($from.parent.content.size == 0 && $from.node(-1).childCount == $from.indexAfter(-1)) {
14
+ if ($from.depth == 3 || $from.node(-3).type != itemType || $from.index(-2) != $from.node(-2).childCount - 1) return false;
15
+ if (dispatch) {
16
+ let wrap = require_dist.Fragment.empty;
17
+ let depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;
18
+ for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d--) wrap = require_dist.Fragment.from($from.node(d).copy(wrap));
19
+ let depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3;
20
+ wrap = wrap.append(require_dist.Fragment.from(itemType.createAndFill()));
21
+ let start = $from.before($from.depth - (depthBefore - 1));
22
+ let tr = state.tr.replace(start, $from.after(-depthAfter), new require_dist.Slice(wrap, 4 - depthBefore, 0));
23
+ let sel = -1;
24
+ tr.doc.nodesBetween(start, tr.doc.content.size, (node, pos) => {
25
+ if (sel > -1) return false;
26
+ if (node.isTextblock && node.content.size == 0) sel = pos + 1;
27
+ });
28
+ if (sel > -1) tr.setSelection(require_dist.Selection.near(tr.doc.resolve(sel)));
29
+ dispatch(tr.scrollIntoView());
30
+ }
31
+ return true;
32
+ }
33
+ let nextType = $to.pos == $from.end() ? grandParent.contentMatchAt(0).defaultType : null;
34
+ let tr = state.tr.delete($from.pos, $to.pos);
35
+ let types = nextType ? [itemAttrs ? {
36
+ type: itemType,
37
+ attrs: itemAttrs
38
+ } : null, { type: nextType }] : void 0;
39
+ if (!require_dist.canSplit(tr.doc, $from.pos, 2, types)) return false;
40
+ if (dispatch) dispatch(tr.split($from.pos, 2, types).scrollIntoView());
41
+ return true;
42
+ };
43
+ }
44
+ /**
45
+ Create a command to lift the list item around the selection up into
46
+ a wrapping list.
47
+ */
48
+ function liftListItem(itemType) {
49
+ return function(state, dispatch) {
50
+ let { $from, $to } = state.selection;
51
+ let range = $from.blockRange($to, (node) => node.childCount > 0 && node.firstChild.type == itemType);
52
+ if (!range) return false;
53
+ if (!dispatch) return true;
54
+ if ($from.node(range.depth - 1).type == itemType) return liftToOuterList(state, dispatch, itemType, range);
55
+ else return liftOutOfList(state, dispatch, range);
56
+ };
57
+ }
58
+ function liftToOuterList(state, dispatch, itemType, range) {
59
+ let tr = state.tr, end = range.end, endOfList = range.$to.end(range.depth);
60
+ if (end < endOfList) {
61
+ tr.step(new require_dist.ReplaceAroundStep(end - 1, endOfList, end, endOfList, new require_dist.Slice(require_dist.Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));
62
+ range = new require_dist.NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);
63
+ }
64
+ const target = require_dist.liftTarget(range);
65
+ if (target == null) return false;
66
+ tr.lift(range, target);
67
+ let $after = tr.doc.resolve(tr.mapping.map(end, -1) - 1);
68
+ if (require_dist.canJoin(tr.doc, $after.pos) && $after.nodeBefore.type == $after.nodeAfter.type) tr.join($after.pos);
69
+ dispatch(tr.scrollIntoView());
70
+ return true;
71
+ }
72
+ function liftOutOfList(state, dispatch, range) {
73
+ let tr = state.tr, list = range.parent;
74
+ for (let pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) {
75
+ pos -= list.child(i).nodeSize;
76
+ tr.delete(pos - 1, pos + 1);
77
+ }
78
+ let $start = tr.doc.resolve(range.start), item = $start.nodeAfter;
79
+ if (tr.mapping.map(range.end) != range.start + $start.nodeAfter.nodeSize) return false;
80
+ let atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;
81
+ let parent = $start.node(-1), indexBefore = $start.index(-1);
82
+ if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ? require_dist.Fragment.empty : require_dist.Fragment.from(list)))) return false;
83
+ let start = $start.pos, end = start + item.nodeSize;
84
+ tr.step(new require_dist.ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new require_dist.Slice((atStart ? require_dist.Fragment.empty : require_dist.Fragment.from(list.copy(require_dist.Fragment.empty))).append(atEnd ? require_dist.Fragment.empty : require_dist.Fragment.from(list.copy(require_dist.Fragment.empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));
85
+ dispatch(tr.scrollIntoView());
86
+ return true;
87
+ }
88
+ /**
89
+ Create a command to sink the list item around the selection down
90
+ into an inner list.
91
+ */
92
+ function sinkListItem(itemType) {
93
+ return function(state, dispatch) {
94
+ let { $from, $to } = state.selection;
95
+ let range = $from.blockRange($to, (node) => node.childCount > 0 && node.firstChild.type == itemType);
96
+ if (!range) return false;
97
+ let startIndex = range.startIndex;
98
+ if (startIndex == 0) return false;
99
+ let parent = range.parent, nodeBefore = parent.child(startIndex - 1);
100
+ if (nodeBefore.type != itemType) return false;
101
+ if (dispatch) {
102
+ let nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type;
103
+ let inner = require_dist.Fragment.from(nestedBefore ? itemType.create() : null);
104
+ let slice = new require_dist.Slice(require_dist.Fragment.from(itemType.create(null, require_dist.Fragment.from(parent.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);
105
+ let before = range.start, after = range.end;
106
+ dispatch(state.tr.step(new require_dist.ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, before, after, slice, 1, true)).scrollIntoView());
107
+ }
108
+ return true;
109
+ };
110
+ }
111
+ //#endregion
112
+ //#region node_modules/.pnpm/rope-sequence@1.3.4/node_modules/rope-sequence/dist/index.js
113
+ var GOOD_LEAF_SIZE = 200;
114
+ var RopeSequence = function RopeSequence() {};
115
+ RopeSequence.prototype.append = function append(other) {
116
+ if (!other.length) return this;
117
+ other = RopeSequence.from(other);
118
+ return !this.length && other || other.length < GOOD_LEAF_SIZE && this.leafAppend(other) || this.length < GOOD_LEAF_SIZE && other.leafPrepend(this) || this.appendInner(other);
119
+ };
120
+ RopeSequence.prototype.prepend = function prepend(other) {
121
+ if (!other.length) return this;
122
+ return RopeSequence.from(other).append(this);
123
+ };
124
+ RopeSequence.prototype.appendInner = function appendInner(other) {
125
+ return new Append(this, other);
126
+ };
127
+ RopeSequence.prototype.slice = function slice(from, to) {
128
+ if (from === void 0) from = 0;
129
+ if (to === void 0) to = this.length;
130
+ if (from >= to) return RopeSequence.empty;
131
+ return this.sliceInner(Math.max(0, from), Math.min(this.length, to));
132
+ };
133
+ RopeSequence.prototype.get = function get(i) {
134
+ if (i < 0 || i >= this.length) return;
135
+ return this.getInner(i);
136
+ };
137
+ RopeSequence.prototype.forEach = function forEach(f, from, to) {
138
+ if (from === void 0) from = 0;
139
+ if (to === void 0) to = this.length;
140
+ if (from <= to) this.forEachInner(f, from, to, 0);
141
+ else this.forEachInvertedInner(f, from, to, 0);
142
+ };
143
+ RopeSequence.prototype.map = function map(f, from, to) {
144
+ if (from === void 0) from = 0;
145
+ if (to === void 0) to = this.length;
146
+ var result = [];
147
+ this.forEach(function(elt, i) {
148
+ return result.push(f(elt, i));
149
+ }, from, to);
150
+ return result;
151
+ };
152
+ RopeSequence.from = function from(values) {
153
+ if (values instanceof RopeSequence) return values;
154
+ return values && values.length ? new Leaf(values) : RopeSequence.empty;
155
+ };
156
+ var Leaf = /* @__PURE__ */ function(RopeSequence) {
157
+ function Leaf(values) {
158
+ RopeSequence.call(this);
159
+ this.values = values;
160
+ }
161
+ if (RopeSequence) Leaf.__proto__ = RopeSequence;
162
+ Leaf.prototype = Object.create(RopeSequence && RopeSequence.prototype);
163
+ Leaf.prototype.constructor = Leaf;
164
+ var prototypeAccessors = {
165
+ length: { configurable: true },
166
+ depth: { configurable: true }
167
+ };
168
+ Leaf.prototype.flatten = function flatten() {
169
+ return this.values;
170
+ };
171
+ Leaf.prototype.sliceInner = function sliceInner(from, to) {
172
+ if (from == 0 && to == this.length) return this;
173
+ return new Leaf(this.values.slice(from, to));
174
+ };
175
+ Leaf.prototype.getInner = function getInner(i) {
176
+ return this.values[i];
177
+ };
178
+ Leaf.prototype.forEachInner = function forEachInner(f, from, to, start) {
179
+ for (var i = from; i < to; i++) if (f(this.values[i], start + i) === false) return false;
180
+ };
181
+ Leaf.prototype.forEachInvertedInner = function forEachInvertedInner(f, from, to, start) {
182
+ for (var i = from - 1; i >= to; i--) if (f(this.values[i], start + i) === false) return false;
183
+ };
184
+ Leaf.prototype.leafAppend = function leafAppend(other) {
185
+ if (this.length + other.length <= GOOD_LEAF_SIZE) return new Leaf(this.values.concat(other.flatten()));
186
+ };
187
+ Leaf.prototype.leafPrepend = function leafPrepend(other) {
188
+ if (this.length + other.length <= GOOD_LEAF_SIZE) return new Leaf(other.flatten().concat(this.values));
189
+ };
190
+ prototypeAccessors.length.get = function() {
191
+ return this.values.length;
192
+ };
193
+ prototypeAccessors.depth.get = function() {
194
+ return 0;
195
+ };
196
+ Object.defineProperties(Leaf.prototype, prototypeAccessors);
197
+ return Leaf;
198
+ }(RopeSequence);
199
+ RopeSequence.empty = new Leaf([]);
200
+ var Append = /* @__PURE__ */ function(RopeSequence) {
201
+ function Append(left, right) {
202
+ RopeSequence.call(this);
203
+ this.left = left;
204
+ this.right = right;
205
+ this.length = left.length + right.length;
206
+ this.depth = Math.max(left.depth, right.depth) + 1;
207
+ }
208
+ if (RopeSequence) Append.__proto__ = RopeSequence;
209
+ Append.prototype = Object.create(RopeSequence && RopeSequence.prototype);
210
+ Append.prototype.constructor = Append;
211
+ Append.prototype.flatten = function flatten() {
212
+ return this.left.flatten().concat(this.right.flatten());
213
+ };
214
+ Append.prototype.getInner = function getInner(i) {
215
+ return i < this.left.length ? this.left.get(i) : this.right.get(i - this.left.length);
216
+ };
217
+ Append.prototype.forEachInner = function forEachInner(f, from, to, start) {
218
+ var leftLen = this.left.length;
219
+ if (from < leftLen && this.left.forEachInner(f, from, Math.min(to, leftLen), start) === false) return false;
220
+ if (to > leftLen && this.right.forEachInner(f, Math.max(from - leftLen, 0), Math.min(this.length, to) - leftLen, start + leftLen) === false) return false;
221
+ };
222
+ Append.prototype.forEachInvertedInner = function forEachInvertedInner(f, from, to, start) {
223
+ var leftLen = this.left.length;
224
+ if (from > leftLen && this.right.forEachInvertedInner(f, from - leftLen, Math.max(to, leftLen) - leftLen, start + leftLen) === false) return false;
225
+ if (to < leftLen && this.left.forEachInvertedInner(f, Math.min(from, leftLen), to, start) === false) return false;
226
+ };
227
+ Append.prototype.sliceInner = function sliceInner(from, to) {
228
+ if (from == 0 && to == this.length) return this;
229
+ var leftLen = this.left.length;
230
+ if (to <= leftLen) return this.left.slice(from, to);
231
+ if (from >= leftLen) return this.right.slice(from - leftLen, to - leftLen);
232
+ return this.left.slice(from, leftLen).append(this.right.slice(0, to - leftLen));
233
+ };
234
+ Append.prototype.leafAppend = function leafAppend(other) {
235
+ var inner = this.right.leafAppend(other);
236
+ if (inner) return new Append(this.left, inner);
237
+ };
238
+ Append.prototype.leafPrepend = function leafPrepend(other) {
239
+ var inner = this.left.leafPrepend(other);
240
+ if (inner) return new Append(inner, this.right);
241
+ };
242
+ Append.prototype.appendInner = function appendInner(other) {
243
+ if (this.left.depth >= Math.max(this.right.depth, other.depth) + 1) return new Append(this.left, new Append(this.right, other));
244
+ return new Append(this, other);
245
+ };
246
+ return Append;
247
+ }(RopeSequence);
248
+ //#endregion
249
+ //#region node_modules/.pnpm/prosemirror-history@1.5.0/node_modules/prosemirror-history/dist/index.js
250
+ var max_empty_items = 500;
251
+ var Branch = class Branch {
252
+ constructor(items, eventCount) {
253
+ this.items = items;
254
+ this.eventCount = eventCount;
255
+ }
256
+ popEvent(state, preserveItems) {
257
+ if (this.eventCount == 0) return null;
258
+ let end = this.items.length;
259
+ for (;; end--) if (this.items.get(end - 1).selection) {
260
+ --end;
261
+ break;
262
+ }
263
+ let remap, mapFrom;
264
+ if (preserveItems) {
265
+ remap = this.remapping(end, this.items.length);
266
+ mapFrom = remap.maps.length;
267
+ }
268
+ let transform = state.tr;
269
+ let selection, remaining;
270
+ let addAfter = [], addBefore = [];
271
+ this.items.forEach((item, i) => {
272
+ if (!item.step) {
273
+ if (!remap) {
274
+ remap = this.remapping(end, i + 1);
275
+ mapFrom = remap.maps.length;
276
+ }
277
+ mapFrom--;
278
+ addBefore.push(item);
279
+ return;
280
+ }
281
+ if (remap) {
282
+ addBefore.push(new Item(item.map));
283
+ let step = item.step.map(remap.slice(mapFrom)), map;
284
+ if (step && transform.maybeStep(step).doc) {
285
+ map = transform.mapping.maps[transform.mapping.maps.length - 1];
286
+ addAfter.push(new Item(map, void 0, void 0, addAfter.length + addBefore.length));
287
+ }
288
+ mapFrom--;
289
+ if (map) remap.appendMap(map, mapFrom);
290
+ } else transform.maybeStep(item.step);
291
+ if (item.selection) {
292
+ selection = remap ? item.selection.map(remap.slice(mapFrom)) : item.selection;
293
+ remaining = new Branch(this.items.slice(0, end).append(addBefore.reverse().concat(addAfter)), this.eventCount - 1);
294
+ return false;
295
+ }
296
+ }, this.items.length, 0);
297
+ return {
298
+ remaining,
299
+ transform,
300
+ selection
301
+ };
302
+ }
303
+ addTransform(transform, selection, histOptions, preserveItems) {
304
+ let newItems = [], eventCount = this.eventCount;
305
+ let oldItems = this.items, lastItem = !preserveItems && oldItems.length ? oldItems.get(oldItems.length - 1) : null;
306
+ for (let i = 0; i < transform.steps.length; i++) {
307
+ let step = transform.steps[i].invert(transform.docs[i]);
308
+ let item = new Item(transform.mapping.maps[i], step, selection), merged;
309
+ if (merged = lastItem && lastItem.merge(item)) {
310
+ item = merged;
311
+ if (i) newItems.pop();
312
+ else oldItems = oldItems.slice(0, oldItems.length - 1);
313
+ }
314
+ newItems.push(item);
315
+ if (selection) {
316
+ eventCount++;
317
+ selection = void 0;
318
+ }
319
+ if (!preserveItems) lastItem = item;
320
+ }
321
+ let overflow = eventCount - histOptions.depth;
322
+ if (overflow > DEPTH_OVERFLOW) {
323
+ oldItems = cutOffEvents(oldItems, overflow);
324
+ eventCount -= overflow;
325
+ }
326
+ return new Branch(oldItems.append(newItems), eventCount);
327
+ }
328
+ remapping(from, to) {
329
+ let maps = new require_dist.Mapping();
330
+ this.items.forEach((item, i) => {
331
+ let mirrorPos = item.mirrorOffset != null && i - item.mirrorOffset >= from ? maps.maps.length - item.mirrorOffset : void 0;
332
+ maps.appendMap(item.map, mirrorPos);
333
+ }, from, to);
334
+ return maps;
335
+ }
336
+ addMaps(array) {
337
+ if (this.eventCount == 0) return this;
338
+ return new Branch(this.items.append(array.map((map) => new Item(map))), this.eventCount);
339
+ }
340
+ rebased(rebasedTransform, rebasedCount) {
341
+ if (!this.eventCount) return this;
342
+ let rebasedItems = [], start = Math.max(0, this.items.length - rebasedCount);
343
+ let mapping = rebasedTransform.mapping;
344
+ let newUntil = rebasedTransform.steps.length;
345
+ let eventCount = this.eventCount;
346
+ this.items.forEach((item) => {
347
+ if (item.selection) eventCount--;
348
+ }, start);
349
+ let iRebased = rebasedCount;
350
+ this.items.forEach((item) => {
351
+ let pos = mapping.getMirror(--iRebased);
352
+ if (pos == null) return;
353
+ newUntil = Math.min(newUntil, pos);
354
+ let map = mapping.maps[pos];
355
+ if (item.step) {
356
+ let step = rebasedTransform.steps[pos].invert(rebasedTransform.docs[pos]);
357
+ let selection = item.selection && item.selection.map(mapping.slice(iRebased + 1, pos));
358
+ if (selection) eventCount++;
359
+ rebasedItems.push(new Item(map, step, selection));
360
+ } else rebasedItems.push(new Item(map));
361
+ }, start);
362
+ let newMaps = [];
363
+ for (let i = rebasedCount; i < newUntil; i++) newMaps.push(new Item(mapping.maps[i]));
364
+ let branch = new Branch(this.items.slice(0, start).append(newMaps).append(rebasedItems), eventCount);
365
+ if (branch.emptyItemCount() > max_empty_items) branch = branch.compress(this.items.length - rebasedItems.length);
366
+ return branch;
367
+ }
368
+ emptyItemCount() {
369
+ let count = 0;
370
+ this.items.forEach((item) => {
371
+ if (!item.step) count++;
372
+ });
373
+ return count;
374
+ }
375
+ compress(upto = this.items.length) {
376
+ let remap = this.remapping(0, upto), mapFrom = remap.maps.length;
377
+ let items = [], events = 0;
378
+ this.items.forEach((item, i) => {
379
+ if (i >= upto) {
380
+ items.push(item);
381
+ if (item.selection) events++;
382
+ } else if (item.step) {
383
+ let step = item.step.map(remap.slice(mapFrom)), map = step && step.getMap();
384
+ mapFrom--;
385
+ if (map) remap.appendMap(map, mapFrom);
386
+ if (step) {
387
+ let selection = item.selection && item.selection.map(remap.slice(mapFrom));
388
+ if (selection) events++;
389
+ let newItem = new Item(map.invert(), step, selection), merged, last = items.length - 1;
390
+ if (merged = items.length && items[last].merge(newItem)) items[last] = merged;
391
+ else items.push(newItem);
392
+ }
393
+ } else if (item.map) mapFrom--;
394
+ }, this.items.length, 0);
395
+ return new Branch(RopeSequence.from(items.reverse()), events);
396
+ }
397
+ };
398
+ Branch.empty = new Branch(RopeSequence.empty, 0);
399
+ function cutOffEvents(items, n) {
400
+ let cutPoint;
401
+ items.forEach((item, i) => {
402
+ if (item.selection && n-- == 0) {
403
+ cutPoint = i;
404
+ return false;
405
+ }
406
+ });
407
+ return items.slice(cutPoint);
408
+ }
409
+ var Item = class Item {
410
+ constructor(map, step, selection, mirrorOffset) {
411
+ this.map = map;
412
+ this.step = step;
413
+ this.selection = selection;
414
+ this.mirrorOffset = mirrorOffset;
415
+ }
416
+ merge(other) {
417
+ if (this.step && other.step && !other.selection) {
418
+ let step = other.step.merge(this.step);
419
+ if (step) return new Item(step.getMap().invert(), step, this.selection);
420
+ }
421
+ }
422
+ };
423
+ var HistoryState = class {
424
+ constructor(done, undone, prevRanges, prevTime, prevComposition) {
425
+ this.done = done;
426
+ this.undone = undone;
427
+ this.prevRanges = prevRanges;
428
+ this.prevTime = prevTime;
429
+ this.prevComposition = prevComposition;
430
+ }
431
+ };
432
+ var DEPTH_OVERFLOW = 20;
433
+ function applyTransaction(history, state, tr, options) {
434
+ let historyTr = tr.getMeta(historyKey), rebased;
435
+ if (historyTr) return historyTr.historyState;
436
+ if (tr.getMeta(closeHistoryKey)) history = new HistoryState(history.done, history.undone, null, 0, -1);
437
+ let appended = tr.getMeta("appendedTransaction");
438
+ if (tr.steps.length == 0) return history;
439
+ else if (appended && appended.getMeta(historyKey)) if (appended.getMeta(historyKey).redo) return new HistoryState(history.done.addTransform(tr, void 0, options, mustPreserveItems(state)), history.undone, rangesFor(tr.mapping.maps), history.prevTime, history.prevComposition);
440
+ else return new HistoryState(history.done, history.undone.addTransform(tr, void 0, options, mustPreserveItems(state)), null, history.prevTime, history.prevComposition);
441
+ else if (tr.getMeta("addToHistory") !== false && !(appended && appended.getMeta("addToHistory") === false)) {
442
+ let composition = tr.getMeta("composition");
443
+ let newGroup = history.prevTime == 0 || !appended && history.prevComposition != composition && (history.prevTime < (tr.time || 0) - options.newGroupDelay || !isAdjacentTo(tr, history.prevRanges));
444
+ let prevRanges = appended ? mapRanges(history.prevRanges, tr.mapping) : rangesFor(tr.mapping.maps);
445
+ return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : void 0, options, mustPreserveItems(state)), Branch.empty, prevRanges, tr.time, composition == null ? history.prevComposition : composition);
446
+ } else if (rebased = tr.getMeta("rebased")) return new HistoryState(history.done.rebased(tr, rebased), history.undone.rebased(tr, rebased), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);
447
+ else return new HistoryState(history.done.addMaps(tr.mapping.maps), history.undone.addMaps(tr.mapping.maps), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);
448
+ }
449
+ function isAdjacentTo(transform, prevRanges) {
450
+ if (!prevRanges) return false;
451
+ if (!transform.docChanged) return true;
452
+ let adjacent = false;
453
+ transform.mapping.maps[0].forEach((start, end) => {
454
+ for (let i = 0; i < prevRanges.length; i += 2) if (start <= prevRanges[i + 1] && end >= prevRanges[i]) adjacent = true;
455
+ });
456
+ return adjacent;
457
+ }
458
+ function rangesFor(maps) {
459
+ let result = [];
460
+ for (let i = maps.length - 1; i >= 0 && result.length == 0; i--) maps[i].forEach((_from, _to, from, to) => result.push(from, to));
461
+ return result;
462
+ }
463
+ function mapRanges(ranges, mapping) {
464
+ if (!ranges) return null;
465
+ let result = [];
466
+ for (let i = 0; i < ranges.length; i += 2) {
467
+ let from = mapping.map(ranges[i], 1), to = mapping.map(ranges[i + 1], -1);
468
+ if (from <= to) result.push(from, to);
469
+ }
470
+ return result;
471
+ }
472
+ function histTransaction(history, state, redo) {
473
+ let preserveItems = mustPreserveItems(state);
474
+ let histOptions = historyKey.get(state).spec.config;
475
+ let pop = (redo ? history.undone : history.done).popEvent(state, preserveItems);
476
+ if (!pop) return null;
477
+ let selection = pop.selection.resolve(pop.transform.doc);
478
+ let added = (redo ? history.done : history.undone).addTransform(pop.transform, state.selection.getBookmark(), histOptions, preserveItems);
479
+ let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0, -1);
480
+ return pop.transform.setSelection(selection).setMeta(historyKey, {
481
+ redo,
482
+ historyState: newHist
483
+ });
484
+ }
485
+ var cachedPreserveItems = false, cachedPreserveItemsPlugins = null;
486
+ function mustPreserveItems(state) {
487
+ let plugins = state.plugins;
488
+ if (cachedPreserveItemsPlugins != plugins) {
489
+ cachedPreserveItems = false;
490
+ cachedPreserveItemsPlugins = plugins;
491
+ for (let i = 0; i < plugins.length; i++) if (plugins[i].spec.historyPreserveItems) {
492
+ cachedPreserveItems = true;
493
+ break;
494
+ }
495
+ }
496
+ return cachedPreserveItems;
497
+ }
498
+ var historyKey = new require_dist.PluginKey("history");
499
+ var closeHistoryKey = new require_dist.PluginKey("closeHistory");
500
+ /**
501
+ Returns a plugin that enables the undo history for an editor. The
502
+ plugin will track undo and redo stacks, which can be used with the
503
+ [`undo`](https://prosemirror.net/docs/ref/#history.undo) and [`redo`](https://prosemirror.net/docs/ref/#history.redo) commands.
504
+
505
+ You can set an `"addToHistory"` [metadata
506
+ property](https://prosemirror.net/docs/ref/#state.Transaction.setMeta) of `false` on a transaction
507
+ to prevent it from being rolled back by undo.
508
+ */
509
+ function history(config = {}) {
510
+ config = {
511
+ depth: config.depth || 100,
512
+ newGroupDelay: config.newGroupDelay || 500
513
+ };
514
+ return new require_dist.Plugin({
515
+ key: historyKey,
516
+ state: {
517
+ init() {
518
+ return new HistoryState(Branch.empty, Branch.empty, null, 0, -1);
519
+ },
520
+ apply(tr, hist, state) {
521
+ return applyTransaction(hist, state, tr, config);
522
+ }
523
+ },
524
+ config,
525
+ props: { handleDOMEvents: { beforeinput(view, e) {
526
+ let inputType = e.inputType;
527
+ let command = inputType == "historyUndo" ? undo : inputType == "historyRedo" ? redo : null;
528
+ if (!command || !view.editable) return false;
529
+ e.preventDefault();
530
+ return command(view.state, view.dispatch);
531
+ } } }
532
+ });
533
+ }
534
+ function buildCommand(redo, scroll) {
535
+ return (state, dispatch) => {
536
+ let hist = historyKey.getState(state);
537
+ if (!hist || (redo ? hist.undone : hist.done).eventCount == 0) return false;
538
+ if (dispatch) {
539
+ let tr = histTransaction(hist, state, redo);
540
+ if (tr) dispatch(scroll ? tr.scrollIntoView() : tr);
541
+ }
542
+ return true;
543
+ };
544
+ }
545
+ /**
546
+ A command function that undoes the last change, if any.
547
+ */
548
+ var undo = buildCommand(false, true);
549
+ /**
550
+ A command function that redoes the last undone change, if any.
551
+ */
552
+ var redo = buildCommand(true, true);
553
+ //#endregion
554
+ Object.defineProperty(exports, "history", {
555
+ enumerable: true,
556
+ get: function() {
557
+ return history;
558
+ }
559
+ });
560
+ Object.defineProperty(exports, "liftListItem", {
561
+ enumerable: true,
562
+ get: function() {
563
+ return liftListItem;
564
+ }
565
+ });
566
+ Object.defineProperty(exports, "redo", {
567
+ enumerable: true,
568
+ get: function() {
569
+ return redo;
570
+ }
571
+ });
572
+ Object.defineProperty(exports, "sinkListItem", {
573
+ enumerable: true,
574
+ get: function() {
575
+ return sinkListItem;
576
+ }
577
+ });
578
+ Object.defineProperty(exports, "splitListItem", {
579
+ enumerable: true,
580
+ get: function() {
581
+ return splitListItem;
582
+ }
583
+ });
584
+ Object.defineProperty(exports, "undo", {
585
+ enumerable: true,
586
+ get: function() {
587
+ return undo;
588
+ }
589
+ });
590
+
591
+ //# sourceMappingURL=dist-rItBfhNb.cjs.map