@quoreadmin/ui 1.7.12 → 1.7.14

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 (145) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index140.js +2 -2
  3. package/dist/index142.js +1 -1
  4. package/dist/index144.js +4 -4
  5. package/dist/index172.js +14 -14
  6. package/dist/index173.js +3 -3
  7. package/dist/index176.js +4 -4
  8. package/dist/index183.js +10 -10
  9. package/dist/index185.js +10 -10
  10. package/dist/index187.js +36 -1190
  11. package/dist/index188.js +46 -0
  12. package/dist/index189.js +1077 -5825
  13. package/dist/index191.js +5922 -19
  14. package/dist/index192.js +199 -10
  15. package/dist/index193.js +35 -36
  16. package/dist/index194.js +17 -43
  17. package/dist/index20.js +15 -14
  18. package/dist/index202.js +4 -4
  19. package/dist/index203.js +67 -106
  20. package/dist/index204.js +395 -26
  21. package/dist/index205.js +21 -406
  22. package/dist/index206.js +33 -80
  23. package/dist/index207.js +115 -19
  24. package/dist/index208.js +31 -83
  25. package/dist/index209.js +26 -20
  26. package/dist/index210.js +35 -19
  27. package/dist/index211.js +9 -20
  28. package/dist/index212.js +18 -19
  29. package/dist/index213.js +10 -22
  30. package/dist/index214.js +10 -22
  31. package/dist/index215.js +50 -19
  32. package/dist/index216.js +42 -835
  33. package/dist/index217.js +3 -701
  34. package/dist/index218.js +38 -175
  35. package/dist/index219.js +21 -22
  36. package/dist/index220.js +160 -19
  37. package/dist/index221.js +4 -4
  38. package/dist/index222.js +20 -3
  39. package/dist/index223.js +21 -186
  40. package/dist/index224.js +168 -102
  41. package/dist/index225.js +49 -140
  42. package/dist/index226.js +34 -1223
  43. package/dist/index227.js +39 -19
  44. package/dist/index228.js +126 -21
  45. package/dist/index229.js +37 -19
  46. package/dist/index230.js +80 -22
  47. package/dist/index231.js +13 -22
  48. package/dist/index232.js +12 -12
  49. package/dist/index233.js +9 -9
  50. package/dist/index234.js +20 -2
  51. package/dist/index235.js +161 -2
  52. package/dist/index236.js +224 -157
  53. package/dist/index237.js +31 -222
  54. package/dist/index238.js +10 -37
  55. package/dist/index239.js +22 -10
  56. package/dist/index240.js +21 -21
  57. package/dist/index241.js +19 -32
  58. package/dist/index242.js +830 -110
  59. package/dist/index243.js +696 -30
  60. package/dist/index244.js +176 -26
  61. package/dist/index245.js +21 -35
  62. package/dist/index246.js +20 -9
  63. package/dist/index247.js +19 -18
  64. package/dist/index248.js +3 -10
  65. package/dist/index249.js +186 -9
  66. package/dist/index250.js +130 -48
  67. package/dist/index251.js +1218 -38
  68. package/dist/index252.js +19 -3
  69. package/dist/index253.js +21 -38
  70. package/dist/index254.js +22 -21
  71. package/dist/index255.js +20 -13
  72. package/dist/index256.js +19 -198
  73. package/dist/index257.js +18 -68
  74. package/dist/index258.js +2 -34
  75. package/dist/index259.js +2 -40
  76. package/dist/index260.js +6 -6
  77. package/dist/index261.js +1 -1
  78. package/dist/index262.js +1 -1
  79. package/dist/index275.js +2 -2
  80. package/dist/index277.js +8 -2
  81. package/dist/index280.js +46 -71
  82. package/dist/index281.js +79 -8
  83. package/dist/index282.js +25 -78
  84. package/dist/index283.js +12 -12
  85. package/dist/index284.js +22 -935
  86. package/dist/index285.js +16 -22
  87. package/dist/index286.js +17 -20
  88. package/dist/index287.js +23 -20
  89. package/dist/index288.js +2 -69
  90. package/dist/index289.js +3 -19
  91. package/dist/index290.js +27 -19
  92. package/dist/index291.js +63 -38
  93. package/dist/index292.js +16 -16
  94. package/dist/index293.js +935 -22
  95. package/dist/index294.js +22 -63
  96. package/dist/index295.js +12 -18
  97. package/dist/index296.js +11 -13
  98. package/dist/index297.js +68 -21
  99. package/dist/index298.js +17 -14
  100. package/dist/index299.js +16 -14
  101. package/dist/index300.js +22 -23
  102. package/dist/index301.js +22 -1518
  103. package/dist/index302.js +63 -386
  104. package/dist/index303.js +1275 -2488
  105. package/dist/index304.js +370 -70
  106. package/dist/index305.js +2396 -3435
  107. package/dist/index306.js +77 -51
  108. package/dist/index307.js +3768 -13
  109. package/dist/index308.js +55 -79
  110. package/dist/index309.js +15 -202
  111. package/dist/index310.js +70 -232
  112. package/dist/index311.js +202 -3
  113. package/dist/index312.js +240 -21
  114. package/dist/index331.js +8 -19
  115. package/dist/index332.js +12 -19
  116. package/dist/index333.js +51 -60
  117. package/dist/index334.js +12 -37
  118. package/dist/index335.js +13 -8
  119. package/dist/index336.js +57 -12
  120. package/dist/index337.js +48 -51
  121. package/dist/index338.js +28 -9
  122. package/dist/index339.js +2 -14
  123. package/dist/index340.js +5 -58
  124. package/dist/index341.js +2 -52
  125. package/dist/index342.js +22 -30
  126. package/dist/index343.js +41 -2
  127. package/dist/index344.js +2 -5
  128. package/dist/index345.js +11 -2
  129. package/dist/index346.js +19 -22
  130. package/dist/index347.js +14 -38
  131. package/dist/index348.js +10 -2
  132. package/dist/index349.js +9 -10
  133. package/dist/index350.js +2 -20
  134. package/dist/index351.js +8 -16
  135. package/dist/index352.js +10 -10
  136. package/dist/index353.js +13 -9
  137. package/dist/index354.js +20 -2
  138. package/dist/index355.js +20 -9
  139. package/dist/index356.js +63 -9
  140. package/dist/index357.js +37 -14
  141. package/dist/index371.js +98 -95
  142. package/dist/index372.js +90 -100
  143. package/dist/index373.js +98 -91
  144. package/package.json +1 -1
  145. package/dist/index190.js +0 -209
package/dist/index310.js CHANGED
@@ -1,248 +1,86 @@
1
- import P from "./index371.js";
2
- import { Mapping as k } from "./index301.js";
3
- import { Plugin as H, PluginKey as O } from "./index275.js";
4
- const D = 500;
5
- class c {
6
- constructor(t, e) {
7
- this.items = t, this.eventCount = e;
8
- }
9
- // Pop the latest event off the branch's history and apply it
10
- // to a document transform.
11
- popEvent(t, e) {
12
- if (this.eventCount == 0)
13
- return null;
14
- let i = this.items.length;
15
- for (; ; i--)
16
- if (this.items.get(i - 1).selection) {
17
- --i;
18
- break;
19
- }
20
- let s, p;
21
- e && (s = this.remapping(i, this.items.length), p = s.maps.length);
22
- let l = t.tr, r, m, u = [], f = [];
23
- return this.items.forEach((a, o) => {
24
- if (!a.step) {
25
- s || (s = this.remapping(i, o + 1), p = s.maps.length), p--, f.push(a);
26
- return;
27
- }
28
- if (s) {
29
- f.push(new g(a.map));
30
- let d = a.step.map(s.slice(p)), v;
31
- d && l.maybeStep(d).doc && (v = l.mapping.maps[l.mapping.maps.length - 1], u.push(new g(v, void 0, void 0, u.length + f.length))), p--, v && s.appendMap(v, p);
32
- } else
33
- l.maybeStep(a.step);
34
- if (a.selection)
35
- return r = s ? a.selection.map(s.slice(p)) : a.selection, m = new c(this.items.slice(0, i).append(f.reverse().concat(u)), this.eventCount - 1), !1;
36
- }, this.items.length, 0), { remaining: m, transform: l, selection: r };
37
- }
38
- // Create a new branch with the given transform added.
39
- addTransform(t, e, i, s) {
40
- let p = [], l = this.eventCount, r = this.items, m = !s && r.length ? r.get(r.length - 1) : null;
41
- for (let f = 0; f < t.steps.length; f++) {
42
- let a = t.steps[f].invert(t.docs[f]), o = new g(t.mapping.maps[f], a, e), d;
43
- (d = m && m.merge(o)) && (o = d, f ? p.pop() : r = r.slice(0, r.length - 1)), p.push(o), e && (l++, e = void 0), s || (m = o);
1
+ import { Plugin as w } from "./index275.js";
2
+ import { dropPoint as v } from "./index303.js";
3
+ function y(m = {}) {
4
+ return new w({
5
+ view(e) {
6
+ return new C(e, m);
44
7
  }
45
- let u = l - i.depth;
46
- return u > y && (r = x(r, u), l -= u), new c(r.append(p), l);
47
- }
48
- remapping(t, e) {
49
- let i = new k();
50
- return this.items.forEach((s, p) => {
51
- let l = s.mirrorOffset != null && p - s.mirrorOffset >= t ? i.maps.length - s.mirrorOffset : void 0;
52
- i.appendMap(s.map, l);
53
- }, t, e), i;
8
+ });
9
+ }
10
+ class C {
11
+ constructor(e, t) {
12
+ var i;
13
+ this.editorView = e, this.cursorPos = null, this.element = null, this.timeout = -1, this.width = (i = t.width) !== null && i !== void 0 ? i : 1, this.color = t.color === !1 ? void 0 : t.color || "black", this.class = t.class, this.handlers = ["dragover", "dragend", "drop", "dragleave"].map((s) => {
14
+ let d = (r) => {
15
+ this[s](r);
16
+ };
17
+ return e.dom.addEventListener(s, d), { name: s, handler: d };
18
+ });
54
19
  }
55
- addMaps(t) {
56
- return this.eventCount == 0 ? this : new c(this.items.append(t.map((e) => new g(e))), this.eventCount);
20
+ destroy() {
21
+ this.handlers.forEach(({ name: e, handler: t }) => this.editorView.dom.removeEventListener(e, t));
57
22
  }
58
- // When the collab module receives remote changes, the history has
59
- // to know about those, so that it can adjust the steps that were
60
- // rebased on top of the remote changes, and include the position
61
- // maps for the remote changes in its array of items.
62
- rebased(t, e) {
63
- if (!this.eventCount)
64
- return this;
65
- let i = [], s = Math.max(0, this.items.length - e), p = t.mapping, l = t.steps.length, r = this.eventCount;
66
- this.items.forEach((o) => {
67
- o.selection && r--;
68
- }, s);
69
- let m = e;
70
- this.items.forEach((o) => {
71
- let d = p.getMirror(--m);
72
- if (d == null)
73
- return;
74
- l = Math.min(l, d);
75
- let v = p.maps[d];
76
- if (o.step) {
77
- let S = t.steps[d].invert(t.docs[d]), E = o.selection && o.selection.map(p.slice(m + 1, d));
78
- E && r++, i.push(new g(v, S, E));
79
- } else
80
- i.push(new g(v));
81
- }, s);
82
- let u = [];
83
- for (let o = e; o < l; o++)
84
- u.push(new g(p.maps[o]));
85
- let f = this.items.slice(0, s).append(u).append(i), a = new c(f, r);
86
- return a.emptyItemCount() > D && (a = a.compress(this.items.length - i.length)), a;
23
+ update(e, t) {
24
+ this.cursorPos != null && t.doc != e.state.doc && (this.cursorPos > e.state.doc.content.size ? this.setCursor(null) : this.updateOverlay());
87
25
  }
88
- emptyItemCount() {
89
- let t = 0;
90
- return this.items.forEach((e) => {
91
- e.step || t++;
92
- }), t;
26
+ setCursor(e) {
27
+ e != this.cursorPos && (this.cursorPos = e, e == null ? (this.element.parentNode.removeChild(this.element), this.element = null) : this.updateOverlay());
93
28
  }
94
- // Compressing a branch means rewriting it to push the air (map-only
95
- // items) out. During collaboration, these naturally accumulate
96
- // because each remote change adds one. The `upto` argument is used
97
- // to ensure that only the items below a given level are compressed,
98
- // because `rebased` relies on a clean, untouched set of items in
99
- // order to associate old items with rebased steps.
100
- compress(t = this.items.length) {
101
- let e = this.remapping(0, t), i = e.maps.length, s = [], p = 0;
102
- return this.items.forEach((l, r) => {
103
- if (r >= t)
104
- s.push(l), l.selection && p++;
105
- else if (l.step) {
106
- let m = l.step.map(e.slice(i)), u = m && m.getMap();
107
- if (i--, u && e.appendMap(u, i), m) {
108
- let f = l.selection && l.selection.map(e.slice(i));
109
- f && p++;
110
- let a = new g(u.invert(), m, f), o, d = s.length - 1;
111
- (o = s.length && s[d].merge(a)) ? s[d] = o : s.push(a);
29
+ updateOverlay() {
30
+ let e = this.editorView.state.doc.resolve(this.cursorPos), t = !e.parent.inlineContent, i, s = this.editorView.dom, d = s.getBoundingClientRect(), r = d.width / s.offsetWidth, h = d.height / s.offsetHeight;
31
+ if (t) {
32
+ let o = e.nodeBefore, n = e.nodeAfter;
33
+ if (o || n) {
34
+ let a = this.editorView.nodeDOM(this.cursorPos - (o ? o.nodeSize : 0));
35
+ if (a) {
36
+ let c = a.getBoundingClientRect(), u = o ? c.bottom : c.top;
37
+ o && n && (u = (u + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2);
38
+ let g = this.width / 2 * h;
39
+ i = { left: c.left, right: c.right, top: u - g, bottom: u + g };
112
40
  }
113
- } else l.map && i--;
114
- }, this.items.length, 0), new c(P.from(s.reverse()), p);
41
+ }
42
+ }
43
+ if (!i) {
44
+ let o = this.editorView.coordsAtPos(this.cursorPos), n = this.width / 2 * r;
45
+ i = { left: o.left - n, right: o.left + n, top: o.top, bottom: o.bottom };
46
+ }
47
+ let l = this.editorView.dom.offsetParent;
48
+ this.element || (this.element = l.appendChild(document.createElement("div")), this.class && (this.element.className = this.class), this.element.style.cssText = "position: absolute; z-index: 50; pointer-events: none;", this.color && (this.element.style.backgroundColor = this.color)), this.element.classList.toggle("prosemirror-dropcursor-block", t), this.element.classList.toggle("prosemirror-dropcursor-inline", !t);
49
+ let f, p;
50
+ if (!l || l == document.body && getComputedStyle(l).position == "static")
51
+ f = -pageXOffset, p = -pageYOffset;
52
+ else {
53
+ let o = l.getBoundingClientRect(), n = o.width / l.offsetWidth, a = o.height / l.offsetHeight;
54
+ f = o.left - l.scrollLeft * n, p = o.top - l.scrollTop * a;
55
+ }
56
+ this.element.style.left = (i.left - f) / r + "px", this.element.style.top = (i.top - p) / h + "px", this.element.style.width = (i.right - i.left) / r + "px", this.element.style.height = (i.bottom - i.top) / h + "px";
115
57
  }
116
- }
117
- c.empty = new c(P.empty, 0);
118
- function x(n, t) {
119
- let e;
120
- return n.forEach((i, s) => {
121
- if (i.selection && t-- == 0)
122
- return e = s, !1;
123
- }), n.slice(e);
124
- }
125
- class g {
126
- constructor(t, e, i, s) {
127
- this.map = t, this.step = e, this.selection = i, this.mirrorOffset = s;
58
+ scheduleRemoval(e) {
59
+ clearTimeout(this.timeout), this.timeout = setTimeout(() => this.setCursor(null), e);
128
60
  }
129
- merge(t) {
130
- if (this.step && t.step && !t.selection) {
131
- let e = t.step.merge(this.step);
132
- if (e)
133
- return new g(e.getMap().invert(), e, this.selection);
61
+ dragover(e) {
62
+ if (!this.editorView.editable)
63
+ return;
64
+ let t = this.editorView.posAtCoords({ left: e.clientX, top: e.clientY }), i = t && t.inside >= 0 && this.editorView.state.doc.nodeAt(t.inside), s = i && i.type.spec.disableDropCursor, d = typeof s == "function" ? s(this.editorView, t, e) : s;
65
+ if (t && !d) {
66
+ let r = t.pos;
67
+ if (this.editorView.dragging && this.editorView.dragging.slice) {
68
+ let h = v(this.editorView.state.doc, r, this.editorView.dragging.slice);
69
+ h != null && (r = h);
70
+ }
71
+ this.setCursor(r), this.scheduleRemoval(5e3);
134
72
  }
135
73
  }
136
- }
137
- class h {
138
- constructor(t, e, i, s, p) {
139
- this.done = t, this.undone = e, this.prevRanges = i, this.prevTime = s, this.prevComposition = p;
74
+ dragend() {
75
+ this.scheduleRemoval(20);
140
76
  }
141
- }
142
- const y = 20;
143
- function F(n, t, e, i) {
144
- let s = e.getMeta(w), p;
145
- if (s)
146
- return s.historyState;
147
- e.getMeta(j) && (n = new h(n.done, n.undone, null, 0, -1));
148
- let l = e.getMeta("appendedTransaction");
149
- if (e.steps.length == 0)
150
- return n;
151
- if (l && l.getMeta(w))
152
- return l.getMeta(w).redo ? new h(n.done.addTransform(e, void 0, i, M(t)), n.undone, I(e.mapping.maps), n.prevTime, n.prevComposition) : new h(n.done, n.undone.addTransform(e, void 0, i, M(t)), null, n.prevTime, n.prevComposition);
153
- if (e.getMeta("addToHistory") !== !1 && !(l && l.getMeta("addToHistory") === !1)) {
154
- let r = e.getMeta("composition"), m = n.prevTime == 0 || !l && n.prevComposition != r && (n.prevTime < (e.time || 0) - i.newGroupDelay || !G(e, n.prevRanges)), u = l ? C(n.prevRanges, e.mapping) : I(e.mapping.maps);
155
- return new h(n.done.addTransform(e, m ? t.selection.getBookmark() : void 0, i, M(t)), c.empty, u, e.time, r ?? n.prevComposition);
156
- } else return (p = e.getMeta("rebased")) ? new h(n.done.rebased(e, p), n.undone.rebased(e, p), C(n.prevRanges, e.mapping), n.prevTime, n.prevComposition) : new h(n.done.addMaps(e.mapping.maps), n.undone.addMaps(e.mapping.maps), C(n.prevRanges, e.mapping), n.prevTime, n.prevComposition);
157
- }
158
- function G(n, t) {
159
- if (!t)
160
- return !1;
161
- if (!n.docChanged)
162
- return !0;
163
- let e = !1;
164
- return n.mapping.maps[0].forEach((i, s) => {
165
- for (let p = 0; p < t.length; p += 2)
166
- i <= t[p + 1] && s >= t[p] && (e = !0);
167
- }), e;
168
- }
169
- function I(n) {
170
- let t = [];
171
- for (let e = n.length - 1; e >= 0 && t.length == 0; e--)
172
- n[e].forEach((i, s, p, l) => t.push(p, l));
173
- return t;
174
- }
175
- function C(n, t) {
176
- if (!n)
177
- return null;
178
- let e = [];
179
- for (let i = 0; i < n.length; i += 2) {
180
- let s = t.map(n[i], 1), p = t.map(n[i + 1], -1);
181
- s <= p && e.push(s, p);
77
+ drop() {
78
+ this.scheduleRemoval(20);
182
79
  }
183
- return e;
184
- }
185
- function K(n, t, e) {
186
- let i = M(t), s = w.get(t).spec.config, p = (e ? n.undone : n.done).popEvent(t, i);
187
- if (!p)
188
- return null;
189
- let l = p.selection.resolve(p.transform.doc), r = (e ? n.done : n.undone).addTransform(p.transform, t.selection.getBookmark(), s, i), m = new h(e ? r : p.remaining, e ? p.remaining : r, null, 0, -1);
190
- return p.transform.setSelection(l).setMeta(w, { redo: e, historyState: m });
191
- }
192
- let T = !1, b = null;
193
- function M(n) {
194
- let t = n.plugins;
195
- if (b != t) {
196
- T = !1, b = t;
197
- for (let e = 0; e < t.length; e++)
198
- if (t[e].spec.historyPreserveItems) {
199
- T = !0;
200
- break;
201
- }
80
+ dragleave(e) {
81
+ this.editorView.dom.contains(e.relatedTarget) || this.setCursor(null);
202
82
  }
203
- return T;
204
- }
205
- const w = new O("history"), j = new O("closeHistory");
206
- function W(n = {}) {
207
- return n = {
208
- depth: n.depth || 100,
209
- newGroupDelay: n.newGroupDelay || 500
210
- }, new H({
211
- key: w,
212
- state: {
213
- init() {
214
- return new h(c.empty, c.empty, null, 0, -1);
215
- },
216
- apply(t, e, i) {
217
- return F(e, i, t, n);
218
- }
219
- },
220
- config: n,
221
- props: {
222
- handleDOMEvents: {
223
- beforeinput(t, e) {
224
- let i = e.inputType, s = i == "historyUndo" ? A : i == "historyRedo" ? U : null;
225
- return !s || !t.editable ? !1 : (e.preventDefault(), s(t.state, t.dispatch));
226
- }
227
- }
228
- }
229
- });
230
- }
231
- function R(n, t) {
232
- return (e, i) => {
233
- let s = w.getState(e);
234
- if (!s || (n ? s.undone : s.done).eventCount == 0)
235
- return !1;
236
- if (i) {
237
- let p = K(s, e, n);
238
- p && i(t ? p.scrollIntoView() : p);
239
- }
240
- return !0;
241
- };
242
83
  }
243
- const A = R(!1, !0), U = R(!0, !0);
244
84
  export {
245
- W as history,
246
- U as redo,
247
- A as undo
85
+ y as dropCursor
248
86
  };
package/dist/index311.js CHANGED
@@ -1,5 +1,204 @@
1
- const n = 16.666666666666668, t = typeof performance < "u" ? () => performance.now() : () => Date.now(), o = typeof window < "u" ? (e) => window.requestAnimationFrame(e) : (e) => setTimeout(() => e(t()), n);
1
+ import { keydownHandler as v } from "./index308.js";
2
+ import { Plugin as w, TextSelection as m, NodeSelection as x, Selection as u } from "./index275.js";
3
+ import { Fragment as h, Slice as g } from "./index305.js";
4
+ import { DecorationSet as S, Decoration as A } from "./index307.js";
5
+ class i extends u {
6
+ /**
7
+ Create a gap cursor.
8
+ */
9
+ constructor(e) {
10
+ super(e, e);
11
+ }
12
+ map(e, t) {
13
+ let o = e.resolve(t.map(this.head));
14
+ return i.valid(o) ? new i(o) : u.near(o);
15
+ }
16
+ content() {
17
+ return g.empty;
18
+ }
19
+ eq(e) {
20
+ return e instanceof i && e.head == this.head;
21
+ }
22
+ toJSON() {
23
+ return { type: "gapcursor", pos: this.head };
24
+ }
25
+ /**
26
+ @internal
27
+ */
28
+ static fromJSON(e, t) {
29
+ if (typeof t.pos != "number")
30
+ throw new RangeError("Invalid input for GapCursor.fromJSON");
31
+ return new i(e.resolve(t.pos));
32
+ }
33
+ /**
34
+ @internal
35
+ */
36
+ getBookmark() {
37
+ return new d(this.anchor);
38
+ }
39
+ /**
40
+ @internal
41
+ */
42
+ static valid(e) {
43
+ let t = e.parent;
44
+ if (t.isTextblock || !b(e) || !y(e))
45
+ return !1;
46
+ let o = t.type.spec.allowGapCursor;
47
+ if (o != null)
48
+ return o;
49
+ let r = t.contentMatchAt(e.index()).defaultType;
50
+ return r && r.isTextblock;
51
+ }
52
+ /**
53
+ @internal
54
+ */
55
+ static findGapCursorFrom(e, t, o = !1) {
56
+ e: for (; ; ) {
57
+ if (!o && i.valid(e))
58
+ return e;
59
+ let r = e.pos, s = null;
60
+ for (let l = e.depth; ; l--) {
61
+ let a = e.node(l);
62
+ if (t > 0 ? e.indexAfter(l) < a.childCount : e.index(l) > 0) {
63
+ s = a.child(t > 0 ? e.indexAfter(l) : e.index(l) - 1);
64
+ break;
65
+ } else if (l == 0)
66
+ return null;
67
+ r += t;
68
+ let f = e.doc.resolve(r);
69
+ if (i.valid(f))
70
+ return f;
71
+ }
72
+ for (; ; ) {
73
+ let l = t > 0 ? s.firstChild : s.lastChild;
74
+ if (!l) {
75
+ if (s.isAtom && !s.isText && !x.isSelectable(s)) {
76
+ e = e.doc.resolve(r + s.nodeSize * t), o = !1;
77
+ continue e;
78
+ }
79
+ break;
80
+ }
81
+ s = l, r += t;
82
+ let a = e.doc.resolve(r);
83
+ if (i.valid(a))
84
+ return a;
85
+ }
86
+ return null;
87
+ }
88
+ }
89
+ }
90
+ i.prototype.visible = !1;
91
+ i.findFrom = i.findGapCursorFrom;
92
+ u.jsonID("gapcursor", i);
93
+ class d {
94
+ constructor(e) {
95
+ this.pos = e;
96
+ }
97
+ map(e) {
98
+ return new d(e.map(this.pos));
99
+ }
100
+ resolve(e) {
101
+ let t = e.resolve(this.pos);
102
+ return i.valid(t) ? new i(t) : u.near(t);
103
+ }
104
+ }
105
+ function C(n) {
106
+ return n.isAtom || n.spec.isolating || n.spec.createGapCursor;
107
+ }
108
+ function b(n) {
109
+ for (let e = n.depth; e >= 0; e--) {
110
+ let t = n.index(e), o = n.node(e);
111
+ if (t == 0) {
112
+ if (o.type.spec.isolating)
113
+ return !0;
114
+ continue;
115
+ }
116
+ for (let r = o.child(t - 1); ; r = r.lastChild) {
117
+ if (r.childCount == 0 && !r.inlineContent || C(r.type))
118
+ return !0;
119
+ if (r.inlineContent)
120
+ return !1;
121
+ }
122
+ }
123
+ return !0;
124
+ }
125
+ function y(n) {
126
+ for (let e = n.depth; e >= 0; e--) {
127
+ let t = n.indexAfter(e), o = n.node(e);
128
+ if (t == o.childCount) {
129
+ if (o.type.spec.isolating)
130
+ return !0;
131
+ continue;
132
+ }
133
+ for (let r = o.child(t); ; r = r.firstChild) {
134
+ if (r.childCount == 0 && !r.inlineContent || C(r.type))
135
+ return !0;
136
+ if (r.inlineContent)
137
+ return !1;
138
+ }
139
+ }
140
+ return !0;
141
+ }
142
+ function B() {
143
+ return new w({
144
+ props: {
145
+ decorations: F,
146
+ createSelectionBetween(n, e, t) {
147
+ return e.pos == t.pos && i.valid(t) ? new i(t) : null;
148
+ },
149
+ handleClick: T,
150
+ handleKeyDown: k,
151
+ handleDOMEvents: { beforeinput: D }
152
+ }
153
+ });
154
+ }
155
+ const k = v({
156
+ ArrowLeft: c("horiz", -1),
157
+ ArrowRight: c("horiz", 1),
158
+ ArrowUp: c("vert", -1),
159
+ ArrowDown: c("vert", 1)
160
+ });
161
+ function c(n, e) {
162
+ const t = n == "vert" ? e > 0 ? "down" : "up" : e > 0 ? "right" : "left";
163
+ return function(o, r, s) {
164
+ let l = o.selection, a = e > 0 ? l.$to : l.$from, f = l.empty;
165
+ if (l instanceof m) {
166
+ if (!s.endOfTextblock(t) || a.depth == 0)
167
+ return !1;
168
+ f = !1, a = o.doc.resolve(e > 0 ? a.after() : a.before());
169
+ }
170
+ let p = i.findGapCursorFrom(a, e, f);
171
+ return p ? (r && r(o.tr.setSelection(new i(p))), !0) : !1;
172
+ };
173
+ }
174
+ function T(n, e, t) {
175
+ if (!n || !n.editable)
176
+ return !1;
177
+ let o = n.state.doc.resolve(e);
178
+ if (!i.valid(o))
179
+ return !1;
180
+ let r = n.posAtCoords({ left: t.clientX, top: t.clientY });
181
+ return r && r.inside > -1 && x.isSelectable(n.state.doc.nodeAt(r.inside)) ? !1 : (n.dispatch(n.state.tr.setSelection(new i(o))), !0);
182
+ }
183
+ function D(n, e) {
184
+ if (e.inputType != "insertCompositionText" || !(n.state.selection instanceof i))
185
+ return !1;
186
+ let { $from: t } = n.state.selection, o = t.parent.contentMatchAt(t.index()).findWrapping(n.state.schema.nodes.text);
187
+ if (!o)
188
+ return !1;
189
+ let r = h.empty;
190
+ for (let l = o.length - 1; l >= 0; l--)
191
+ r = h.from(o[l].createAndFill(null, r));
192
+ let s = n.state.tr.replace(t.pos, t.pos, new g(r, 0, 0));
193
+ return s.setSelection(m.near(s.doc.resolve(t.pos + 1))), n.dispatch(s), !1;
194
+ }
195
+ function F(n) {
196
+ if (!(n.selection instanceof i))
197
+ return null;
198
+ let e = document.createElement("div");
199
+ return e.className = "ProseMirror-gapcursor", S.create(n.doc, [A.widget(n.selection.head, e, { key: "gapcursor" })]);
200
+ }
2
201
  export {
3
- n as defaultTimestep,
4
- o as onNextFrame
202
+ i as GapCursor,
203
+ B as gapCursor
5
204
  };