@quoreadmin/ui 1.6.5 → 1.6.6
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/index15.js +19 -19
- package/dist/index174.js +4 -4
- package/dist/index181.js +8 -8
- package/dist/index183.js +8 -8
- package/dist/index190.js +26 -26
- package/dist/index191.js +1 -1
- package/dist/index192.js +1 -1
- package/dist/index195.js +2 -2
- package/dist/index197.js +14 -14
- package/dist/index198.js +1 -1
- package/dist/index199.js +1 -1
- package/dist/index200.js +3 -3
- package/dist/index201.js +2 -2
- package/dist/index216.js +2 -2
- package/dist/index217.js +2 -2
- package/dist/index218.js +1 -1
- package/dist/index219.js +160 -21
- package/dist/index220.js +228 -22
- package/dist/index221.js +36 -19
- package/dist/index222.js +9 -835
- package/dist/index223.js +104 -679
- package/dist/index224.js +36 -174
- package/dist/index225.js +80 -20
- package/dist/index226.js +12 -12
- package/dist/index227.js +12 -14
- package/dist/index228.js +10 -10
- package/dist/index229.js +11 -11
- package/dist/index230.js +9 -9
- package/dist/index231.js +161 -3
- package/dist/index232.js +19 -186
- package/dist/index233.js +21 -132
- package/dist/index234.js +167 -129
- package/dist/index235.js +46 -1199
- package/dist/index236.js +31 -124
- package/dist/index237.js +39 -19
- package/dist/index238.js +11 -11
- package/dist/index239.js +13 -11
- package/dist/index240.js +11 -13
- package/dist/index241.js +819 -21
- package/dist/index242.js +701 -28
- package/dist/index243.js +176 -20
- package/dist/index244.js +14 -12
- package/dist/index245.js +20 -2
- package/dist/index246.js +20 -2
- package/dist/index247.js +3 -22
- package/dist/index248.js +155 -167
- package/dist/index249.js +112 -49
- package/dist/index250.js +1223 -34
- package/dist/index251.js +19 -39
- package/dist/index252.js +21 -160
- package/dist/index253.js +22 -228
- package/dist/index254.js +28 -36
- package/dist/index255.js +20 -10
- package/dist/index256.js +20 -253
- package/dist/index257.js +2 -8
- package/dist/index258.js +2 -138
- package/dist/index259.js +3621 -72
- package/dist/index260.js +39 -3616
- package/dist/index261.js +52 -30
- package/dist/index262.js +22 -47
- package/dist/index263.js +188 -25
- package/dist/index264.js +8 -213
- package/dist/index265.js +56 -9
- package/dist/index266.js +45 -41
- package/dist/index267.js +39 -46
- package/dist/index268.js +57 -36
- package/dist/index269.js +689 -41
- package/dist/index270.js +21 -705
- package/dist/index271.js +47 -22
- package/dist/index272.js +10 -63
- package/dist/index273.js +704 -10
- package/dist/index274.js +770 -655
- package/dist/index275.js +234 -801
- package/dist/index276.js +7 -79
- package/dist/index277.js +138 -20
- package/dist/index278.js +83 -20
- package/dist/index281.js +2 -79
- package/dist/index282.js +71 -71
- package/dist/index283.js +53 -21
- package/dist/index284.js +26 -935
- package/dist/index285.js +12 -12
- package/dist/index286.js +15 -13
- package/dist/index287.js +16 -20
- package/dist/index288.js +16 -68
- package/dist/index289.js +19 -15
- package/dist/index290.js +76 -16
- package/dist/index291.js +21 -53
- package/dist/index292.js +935 -22
- package/dist/index293.js +11 -11
- package/dist/index294.js +19 -62
- package/dist/index295.js +20 -2
- package/dist/index296.js +68 -25
- package/dist/index297.js +19 -22
- package/dist/index298.js +19 -22
- package/dist/index299.js +22 -16
- package/dist/index300.js +22 -17
- package/dist/index301.js +61 -21
- package/dist/index303.js +1 -1
- package/dist/index306.js +1 -1
- package/dist/index307.js +1 -1
- package/dist/index309.js +1 -1
- package/dist/index310.js +1 -1
- package/dist/index311.js +1 -1
- package/dist/index352.js +1 -1
- package/dist/index353.js +1 -1
- package/dist/index354.js +1 -1
- package/dist/index356.js +1 -1
- package/dist/index369.js +1 -1
- package/dist/index85.js +21 -17
- package/dist/src/components/data-filter/data-filter.d.ts +9 -0
- package/dist/src/components/data-list/data-list.d.ts +9 -0
- package/dist/src/components/grid/grid.stories.d.ts +9 -0
- package/dist/src/views/lists.vue.d.ts +18 -0
- package/dist/src/views/tables.vue.d.ts +9 -0
- package/package.json +1 -1
package/dist/index274.js
CHANGED
|
@@ -1,707 +1,822 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { Slice as m, Fragment as B, Node as x, Mark as R } from "./index304.js";
|
|
2
|
+
import { ReplaceStep as P, ReplaceAroundStep as K, Transform as $ } from "./index302.js";
|
|
3
|
+
const O = /* @__PURE__ */ Object.create(null);
|
|
4
|
+
class l {
|
|
5
|
+
/**
|
|
6
|
+
Initialize a selection with the head and anchor and ranges. If no
|
|
7
|
+
ranges are given, constructs a single range across `$anchor` and
|
|
8
|
+
`$head`.
|
|
9
|
+
*/
|
|
10
|
+
constructor(e, t, r) {
|
|
11
|
+
this.$anchor = e, this.$head = t, this.ranges = r || [new q(e.min(t), e.max(t))];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
The selection's anchor, as an unresolved position.
|
|
15
|
+
*/
|
|
16
|
+
get anchor() {
|
|
17
|
+
return this.$anchor.pos;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
The selection's head.
|
|
21
|
+
*/
|
|
22
|
+
get head() {
|
|
23
|
+
return this.$head.pos;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
The lower bound of the selection's main range.
|
|
27
|
+
*/
|
|
28
|
+
get from() {
|
|
29
|
+
return this.$from.pos;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
The upper bound of the selection's main range.
|
|
33
|
+
*/
|
|
34
|
+
get to() {
|
|
35
|
+
return this.$to.pos;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
The resolved lower bound of the selection's main range.
|
|
39
|
+
*/
|
|
40
|
+
get $from() {
|
|
41
|
+
return this.ranges[0].$from;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
The resolved upper bound of the selection's main range.
|
|
45
|
+
*/
|
|
46
|
+
get $to() {
|
|
47
|
+
return this.ranges[0].$to;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
Indicates whether the selection contains any content.
|
|
51
|
+
*/
|
|
52
|
+
get empty() {
|
|
53
|
+
let e = this.ranges;
|
|
54
|
+
for (let t = 0; t < e.length; t++)
|
|
55
|
+
if (e[t].$from.pos != e[t].$to.pos)
|
|
56
|
+
return !1;
|
|
57
|
+
return !0;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
Get the content of this selection as a slice.
|
|
61
|
+
*/
|
|
62
|
+
content() {
|
|
63
|
+
return this.$from.doc.slice(this.from, this.to, !0);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
Replace the selection with a slice or, if no slice is given,
|
|
67
|
+
delete the selection. Will append to the given transaction.
|
|
68
|
+
*/
|
|
69
|
+
replace(e, t = m.empty) {
|
|
70
|
+
let r = t.content.lastChild, n = null;
|
|
71
|
+
for (let a = 0; a < t.openEnd; a++)
|
|
72
|
+
n = r, r = r.lastChild;
|
|
73
|
+
let s = e.steps.length, o = this.ranges;
|
|
74
|
+
for (let a = 0; a < o.length; a++) {
|
|
75
|
+
let { $from: c, $to: u } = o[a], h = e.mapping.slice(s);
|
|
76
|
+
e.replaceRange(h.map(c.pos), h.map(u.pos), a ? m.empty : t), a == 0 && E(e, s, (r ? r.isInline : n && n.isTextblock) ? -1 : 1);
|
|
77
|
+
}
|
|
10
78
|
}
|
|
11
|
-
}
|
|
12
|
-
function ke(t, n) {
|
|
13
|
-
const e = {};
|
|
14
|
-
for (const s in n)
|
|
15
|
-
n[s].indexOf(t) >= 0 && (e[s] = !0);
|
|
16
|
-
return e;
|
|
17
|
-
}
|
|
18
|
-
function p(t = null) {
|
|
19
|
-
this.j = {}, this.jr = [], this.jd = null, this.t = t;
|
|
20
|
-
}
|
|
21
|
-
p.groups = {};
|
|
22
|
-
p.prototype = {
|
|
23
|
-
accepts() {
|
|
24
|
-
return !!this.t;
|
|
25
|
-
},
|
|
26
79
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return e;
|
|
36
|
-
for (let s = 0; s < n.jr.length; s++) {
|
|
37
|
-
const i = n.jr[s][0], r = n.jr[s][1];
|
|
38
|
-
if (r && i.test(t))
|
|
39
|
-
return r;
|
|
80
|
+
Replace the selection with the given node, appending the changes
|
|
81
|
+
to the given transaction.
|
|
82
|
+
*/
|
|
83
|
+
replaceWith(e, t) {
|
|
84
|
+
let r = e.steps.length, n = this.ranges;
|
|
85
|
+
for (let s = 0; s < n.length; s++) {
|
|
86
|
+
let { $from: o, $to: a } = n[s], c = e.mapping.slice(r), u = c.map(o.pos), h = c.map(a.pos);
|
|
87
|
+
s ? e.deleteRange(u, h) : (e.replaceRangeWith(u, h, t), E(e, r, t.isInline ? -1 : 1));
|
|
40
88
|
}
|
|
41
|
-
|
|
42
|
-
},
|
|
89
|
+
}
|
|
43
90
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
91
|
+
Find a valid cursor or leaf node selection starting at the given
|
|
92
|
+
position and searching back if `dir` is negative, and forward if
|
|
93
|
+
positive. When `textOnly` is true, only consider cursor
|
|
94
|
+
selections. Will return null when no valid selection position is
|
|
95
|
+
found.
|
|
96
|
+
*/
|
|
97
|
+
static findFrom(e, t, r = !1) {
|
|
98
|
+
let n = e.parent.inlineContent ? new f(e) : g(e.node(0), e.parent, e.pos, e.index(), t, r);
|
|
99
|
+
if (n)
|
|
100
|
+
return n;
|
|
101
|
+
for (let s = e.depth - 1; s >= 0; s--) {
|
|
102
|
+
let o = t < 0 ? g(e.node(0), e.node(s), e.before(s + 1), e.index(s), t, r) : g(e.node(0), e.node(s), e.after(s + 1), e.index(s) + 1, t, r);
|
|
103
|
+
if (o)
|
|
104
|
+
return o;
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
53
108
|
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
ta(t, n, e, s) {
|
|
62
|
-
for (let i = 0; i < t.length; i++)
|
|
63
|
-
this.tt(t[i], n, e, s);
|
|
64
|
-
},
|
|
109
|
+
Find a valid cursor or leaf node selection near the given
|
|
110
|
+
position. Searches forward first by default, but if `bias` is
|
|
111
|
+
negative, it will search backwards first.
|
|
112
|
+
*/
|
|
113
|
+
static near(e, t = 1) {
|
|
114
|
+
return this.findFrom(e, t) || this.findFrom(e, -t) || new d(e.node(0));
|
|
115
|
+
}
|
|
65
116
|
/**
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
tr(t, n, e, s) {
|
|
75
|
-
s = s || p.groups;
|
|
76
|
-
let i;
|
|
77
|
-
return n && n.j ? i = n : (i = new p(n), e && s && j(n, e, s)), this.jr.push([t, i]), i;
|
|
78
|
-
},
|
|
117
|
+
Find the cursor or leaf node selection closest to the start of
|
|
118
|
+
the given document. Will return an
|
|
119
|
+
[`AllSelection`](https://prosemirror.net/docs/ref/#state.AllSelection) if no valid position
|
|
120
|
+
exists.
|
|
121
|
+
*/
|
|
122
|
+
static atStart(e) {
|
|
123
|
+
return g(e, e, 0, 0, 1) || new d(e);
|
|
124
|
+
}
|
|
79
125
|
/**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
126
|
+
Find the cursor or leaf node selection closest to the end of the
|
|
127
|
+
given document.
|
|
128
|
+
*/
|
|
129
|
+
static atEnd(e) {
|
|
130
|
+
return g(e, e, e.content.size, e.childCount, -1) || new d(e);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
Deserialize the JSON representation of a selection. Must be
|
|
134
|
+
implemented for custom classes (as a static class method).
|
|
135
|
+
*/
|
|
136
|
+
static fromJSON(e, t) {
|
|
137
|
+
if (!t || !t.type)
|
|
138
|
+
throw new RangeError("Invalid input for Selection.fromJSON");
|
|
139
|
+
let r = O[t.type];
|
|
92
140
|
if (!r)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
141
|
+
throw new RangeError(`No selection type ${t.type} defined`);
|
|
142
|
+
return r.fromJSON(e, t);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
To be able to deserialize selections from JSON, custom selection
|
|
146
|
+
classes must register themselves with an ID string, so that they
|
|
147
|
+
can be disambiguated. Try to pick something that's unlikely to
|
|
148
|
+
clash with classes from other modules.
|
|
149
|
+
*/
|
|
150
|
+
static jsonID(e, t) {
|
|
151
|
+
if (e in O)
|
|
152
|
+
throw new RangeError("Duplicate use of selection JSON ID " + e);
|
|
153
|
+
return O[e] = t, t.prototype.jsonID = e, t;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
Get a [bookmark](https://prosemirror.net/docs/ref/#state.SelectionBookmark) for this selection,
|
|
157
|
+
which is a value that can be mapped without having access to a
|
|
158
|
+
current document, and later resolved to a real selection for a
|
|
159
|
+
given document again. (This is used mostly by the history to
|
|
160
|
+
track and restore old selections.) The default implementation of
|
|
161
|
+
this method just converts the selection to a text selection and
|
|
162
|
+
returns the bookmark for that.
|
|
163
|
+
*/
|
|
164
|
+
getBookmark() {
|
|
165
|
+
return f.between(this.$anchor, this.$head).getBookmark();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
l.prototype.visible = !0;
|
|
169
|
+
class q {
|
|
170
|
+
/**
|
|
171
|
+
Create a range.
|
|
172
|
+
*/
|
|
173
|
+
constructor(e, t) {
|
|
174
|
+
this.$from = e, this.$to = t;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
let I = !1;
|
|
178
|
+
function T(i) {
|
|
179
|
+
!I && !i.parent.inlineContent && (I = !0, console.warn("TextSelection endpoint not pointing into a node with inline content (" + i.parent.type.name + ")"));
|
|
180
|
+
}
|
|
181
|
+
class f extends l {
|
|
182
|
+
/**
|
|
183
|
+
Construct a text selection between the given points.
|
|
184
|
+
*/
|
|
185
|
+
constructor(e, t = e) {
|
|
186
|
+
T(e), T(t), super(e, t);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
Returns a resolved position if this is a cursor selection (an
|
|
190
|
+
empty text selection), and null otherwise.
|
|
191
|
+
*/
|
|
192
|
+
get $cursor() {
|
|
193
|
+
return this.$anchor.pos == this.$head.pos ? this.$head : null;
|
|
194
|
+
}
|
|
195
|
+
map(e, t) {
|
|
196
|
+
let r = e.resolve(t.map(this.head));
|
|
197
|
+
if (!r.parent.inlineContent)
|
|
198
|
+
return l.near(r);
|
|
199
|
+
let n = e.resolve(t.map(this.anchor));
|
|
200
|
+
return new f(n.parent.inlineContent ? n : r, r);
|
|
201
|
+
}
|
|
202
|
+
replace(e, t = m.empty) {
|
|
203
|
+
if (super.replace(e, t), t == m.empty) {
|
|
204
|
+
let r = this.$from.marksAcross(this.$to);
|
|
205
|
+
r && e.ensureMarks(r);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
eq(e) {
|
|
209
|
+
return e instanceof f && e.anchor == this.anchor && e.head == this.head;
|
|
210
|
+
}
|
|
211
|
+
getBookmark() {
|
|
212
|
+
return new y(this.anchor, this.head);
|
|
213
|
+
}
|
|
214
|
+
toJSON() {
|
|
215
|
+
return { type: "text", anchor: this.anchor, head: this.head };
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
@internal
|
|
219
|
+
*/
|
|
220
|
+
static fromJSON(e, t) {
|
|
221
|
+
if (typeof t.anchor != "number" || typeof t.head != "number")
|
|
222
|
+
throw new RangeError("Invalid input for TextSelection.fromJSON");
|
|
223
|
+
return new f(e.resolve(t.anchor), e.resolve(t.head));
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
Create a text selection from non-resolved positions.
|
|
227
|
+
*/
|
|
228
|
+
static create(e, t, r = t) {
|
|
229
|
+
let n = e.resolve(t);
|
|
230
|
+
return new this(n, r == t ? n : e.resolve(r));
|
|
231
|
+
}
|
|
98
232
|
/**
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
* If a state is given for the second argument, that state will be
|
|
111
|
-
* transitioned to on the given input regardless of what that input
|
|
112
|
-
* previously did.
|
|
113
|
-
*
|
|
114
|
-
* Specify a token group flags to define groups that this token belongs to.
|
|
115
|
-
* The token will be added to corresponding entires in the given groups
|
|
116
|
-
* object.
|
|
117
|
-
*
|
|
118
|
-
* @param {string} input character, token type to transition on
|
|
119
|
-
* @param {T | State<T>} [next] Transition options
|
|
120
|
-
* @param {Flags} [flags] Collections flags to add token to
|
|
121
|
-
* @param {Collections<T>} [groups] Master list of groups
|
|
122
|
-
* @returns {State<T>} taken after the given input
|
|
123
|
-
*/
|
|
124
|
-
tt(t, n, e, s) {
|
|
125
|
-
s = s || p.groups;
|
|
126
|
-
const i = this;
|
|
127
|
-
if (n && n.j)
|
|
128
|
-
return i.j[t] = n, n;
|
|
129
|
-
const r = n;
|
|
130
|
-
let a, c = i.go(t);
|
|
131
|
-
if (c ? (a = new p(), Object.assign(a.j, c.j), a.jr.push.apply(a.jr, c.jr), a.jd = c.jd, a.t = c.t) : a = new p(), r) {
|
|
233
|
+
Return a text selection that spans the given positions or, if
|
|
234
|
+
they aren't text positions, find a text selection near them.
|
|
235
|
+
`bias` determines whether the method searches forward (default)
|
|
236
|
+
or backwards (negative number) first. Will fall back to calling
|
|
237
|
+
[`Selection.near`](https://prosemirror.net/docs/ref/#state.Selection^near) when the document
|
|
238
|
+
doesn't contain a valid text position.
|
|
239
|
+
*/
|
|
240
|
+
static between(e, t, r) {
|
|
241
|
+
let n = e.pos - t.pos;
|
|
242
|
+
if ((!r || n) && (r = n >= 0 ? 1 : -1), !t.parent.inlineContent) {
|
|
243
|
+
let s = l.findFrom(t, r, !0) || l.findFrom(t, -r, !0);
|
|
132
244
|
if (s)
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
} else e && j(r, e, s);
|
|
137
|
-
a.t = r;
|
|
245
|
+
t = s.$head;
|
|
246
|
+
else
|
|
247
|
+
return l.near(t, r);
|
|
138
248
|
}
|
|
139
|
-
return
|
|
249
|
+
return e.parent.inlineContent || (n == 0 ? e = t : (e = (l.findFrom(e, -r, !0) || l.findFrom(e, r, !0)).$anchor, e.pos < t.pos != n < 0 && (e = t))), new f(e, t);
|
|
140
250
|
}
|
|
141
|
-
};
|
|
142
|
-
const l = (t, n, e, s, i) => t.ta(n, e, s, i), f = (t, n, e, s, i) => t.tr(n, e, s, i), se = (t, n, e, s, i) => t.ts(n, e, s, i), o = (t, n, e, s, i) => t.tt(n, e, s, i), I = "WORD", Wt = "UWORD", ue = "ASCIINUMERICAL", he = "ALPHANUMERICAL", _ = "LOCALHOST", Gt = "TLD", Qt = "UTLD", tt = "SCHEME", U = "SLASH_SCHEME", qt = "NUM", $t = "WS", _t = "NL", W = "OPENBRACE", G = "CLOSEBRACE", et = "OPENBRACKET", nt = "CLOSEBRACKET", st = "OPENPAREN", it = "CLOSEPAREN", ot = "OPENANGLEBRACKET", rt = "CLOSEANGLEBRACKET", at = "FULLWIDTHLEFTPAREN", ct = "FULLWIDTHRIGHTPAREN", lt = "LEFTCORNERBRACKET", ut = "RIGHTCORNERBRACKET", ht = "LEFTWHITECORNERBRACKET", dt = "RIGHTWHITECORNERBRACKET", Et = "FULLWIDTHLESSTHAN", ft = "FULLWIDTHGREATERTHAN", mt = "AMPERSAND", gt = "APOSTROPHE", At = "ASTERISK", P = "AT", Tt = "BACKSLASH", Lt = "BACKTICK", Rt = "CARET", v = "COLON", Jt = "COMMA", Ct = "DOLLAR", y = "DOT", pt = "EQUALS", Yt = "EXCLAMATION", O = "HYPHEN", Q = "PERCENT", St = "PIPE", Ot = "PLUS", yt = "POUND", $ = "QUERY", Xt = "QUOTE", de = "FULLWIDTHMIDDLEDOT", Vt = "SEMI", k = "SLASH", q = "TILDE", kt = "UNDERSCORE", Ee = "EMOJI", bt = "SYM";
|
|
143
|
-
var fe = /* @__PURE__ */ Object.freeze({
|
|
144
|
-
__proto__: null,
|
|
145
|
-
ALPHANUMERICAL: he,
|
|
146
|
-
AMPERSAND: mt,
|
|
147
|
-
APOSTROPHE: gt,
|
|
148
|
-
ASCIINUMERICAL: ue,
|
|
149
|
-
ASTERISK: At,
|
|
150
|
-
AT: P,
|
|
151
|
-
BACKSLASH: Tt,
|
|
152
|
-
BACKTICK: Lt,
|
|
153
|
-
CARET: Rt,
|
|
154
|
-
CLOSEANGLEBRACKET: rt,
|
|
155
|
-
CLOSEBRACE: G,
|
|
156
|
-
CLOSEBRACKET: nt,
|
|
157
|
-
CLOSEPAREN: it,
|
|
158
|
-
COLON: v,
|
|
159
|
-
COMMA: Jt,
|
|
160
|
-
DOLLAR: Ct,
|
|
161
|
-
DOT: y,
|
|
162
|
-
EMOJI: Ee,
|
|
163
|
-
EQUALS: pt,
|
|
164
|
-
EXCLAMATION: Yt,
|
|
165
|
-
FULLWIDTHGREATERTHAN: ft,
|
|
166
|
-
FULLWIDTHLEFTPAREN: at,
|
|
167
|
-
FULLWIDTHLESSTHAN: Et,
|
|
168
|
-
FULLWIDTHMIDDLEDOT: de,
|
|
169
|
-
FULLWIDTHRIGHTPAREN: ct,
|
|
170
|
-
HYPHEN: O,
|
|
171
|
-
LEFTCORNERBRACKET: lt,
|
|
172
|
-
LEFTWHITECORNERBRACKET: ht,
|
|
173
|
-
LOCALHOST: _,
|
|
174
|
-
NL: _t,
|
|
175
|
-
NUM: qt,
|
|
176
|
-
OPENANGLEBRACKET: ot,
|
|
177
|
-
OPENBRACE: W,
|
|
178
|
-
OPENBRACKET: et,
|
|
179
|
-
OPENPAREN: st,
|
|
180
|
-
PERCENT: Q,
|
|
181
|
-
PIPE: St,
|
|
182
|
-
PLUS: Ot,
|
|
183
|
-
POUND: yt,
|
|
184
|
-
QUERY: $,
|
|
185
|
-
QUOTE: Xt,
|
|
186
|
-
RIGHTCORNERBRACKET: ut,
|
|
187
|
-
RIGHTWHITECORNERBRACKET: dt,
|
|
188
|
-
SCHEME: tt,
|
|
189
|
-
SEMI: Vt,
|
|
190
|
-
SLASH: k,
|
|
191
|
-
SLASH_SCHEME: U,
|
|
192
|
-
SYM: bt,
|
|
193
|
-
TILDE: q,
|
|
194
|
-
TLD: Gt,
|
|
195
|
-
UNDERSCORE: kt,
|
|
196
|
-
UTLD: Qt,
|
|
197
|
-
UWORD: Wt,
|
|
198
|
-
WORD: I,
|
|
199
|
-
WS: $t
|
|
200
|
-
});
|
|
201
|
-
const b = /[a-z]/, B = new RegExp("\\p{L}", "u"), vt = new RegExp("\\p{Emoji}", "u"), N = /\d/, jt = /\s/, ie = "\r", xt = `
|
|
202
|
-
`, be = "️", Ne = "", Ut = "";
|
|
203
|
-
let X = null, V = null;
|
|
204
|
-
function Ie(t = []) {
|
|
205
|
-
const n = {};
|
|
206
|
-
p.groups = n;
|
|
207
|
-
const e = new p();
|
|
208
|
-
X == null && (X = oe(Ce)), V == null && (V = oe(pe)), o(e, "'", gt), o(e, "{", W), o(e, "}", G), o(e, "[", et), o(e, "]", nt), o(e, "(", st), o(e, ")", it), o(e, "<", ot), o(e, ">", rt), o(e, "(", at), o(e, ")", ct), o(e, "「", lt), o(e, "」", ut), o(e, "『", ht), o(e, "』", dt), o(e, "<", Et), o(e, ">", ft), o(e, "&", mt), o(e, "*", At), o(e, "@", P), o(e, "`", Lt), o(e, "^", Rt), o(e, ":", v), o(e, ",", Jt), o(e, "$", Ct), o(e, ".", y), o(e, "=", pt), o(e, "!", Yt), o(e, "-", O), o(e, "%", Q), o(e, "|", St), o(e, "+", Ot), o(e, "#", yt), o(e, "?", $), o(e, '"', Xt), o(e, "/", k), o(e, ";", Vt), o(e, "~", q), o(e, "_", kt), o(e, "\\", Tt), o(e, "・", de);
|
|
209
|
-
const s = f(e, N, qt, {
|
|
210
|
-
[zt]: !0
|
|
211
|
-
});
|
|
212
|
-
f(s, N, s);
|
|
213
|
-
const i = f(s, b, ue, {
|
|
214
|
-
[K]: !0
|
|
215
|
-
}), r = f(s, B, he, {
|
|
216
|
-
[F]: !0
|
|
217
|
-
}), a = f(e, b, I, {
|
|
218
|
-
[Bt]: !0
|
|
219
|
-
});
|
|
220
|
-
f(a, N, i), f(a, b, a), f(i, N, i), f(i, b, i);
|
|
221
|
-
const c = f(e, B, Wt, {
|
|
222
|
-
[Ft]: !0
|
|
223
|
-
});
|
|
224
|
-
f(c, b), f(c, N, r), f(c, B, c), f(r, N, r), f(r, b), f(r, B, r);
|
|
225
|
-
const d = o(e, xt, _t, {
|
|
226
|
-
[Pt]: !0
|
|
227
|
-
}), m = o(e, ie, $t, {
|
|
228
|
-
[Pt]: !0
|
|
229
|
-
}), E = f(e, jt, $t, {
|
|
230
|
-
[Pt]: !0
|
|
231
|
-
});
|
|
232
|
-
o(e, Ut, E), o(m, xt, d), o(m, Ut, E), f(m, jt, E), o(E, ie), o(E, xt), f(E, jt, E), o(E, Ut, E);
|
|
233
|
-
const u = f(e, vt, Ee, {
|
|
234
|
-
[le]: !0
|
|
235
|
-
});
|
|
236
|
-
o(u, "#"), f(u, vt, u), o(u, be, u);
|
|
237
|
-
const g = o(u, Ne);
|
|
238
|
-
o(g, "#"), f(g, vt, u);
|
|
239
|
-
const A = [[b, a], [N, i]], H = [[b, null], [B, c], [N, r]];
|
|
240
|
-
for (let T = 0; T < X.length; T++)
|
|
241
|
-
D(e, X[T], Gt, I, A);
|
|
242
|
-
for (let T = 0; T < V.length; T++)
|
|
243
|
-
D(e, V[T], Qt, Wt, H);
|
|
244
|
-
j(Gt, {
|
|
245
|
-
tld: !0,
|
|
246
|
-
ascii: !0
|
|
247
|
-
}, n), j(Qt, {
|
|
248
|
-
utld: !0,
|
|
249
|
-
alpha: !0
|
|
250
|
-
}, n), D(e, "file", tt, I, A), D(e, "mailto", tt, I, A), D(e, "http", U, I, A), D(e, "https", U, I, A), D(e, "ftp", U, I, A), D(e, "ftps", U, I, A), j(tt, {
|
|
251
|
-
scheme: !0,
|
|
252
|
-
ascii: !0
|
|
253
|
-
}, n), j(U, {
|
|
254
|
-
slashscheme: !0,
|
|
255
|
-
ascii: !0
|
|
256
|
-
}, n), t = t.sort((T, C) => T[0] > C[0] ? 1 : -1);
|
|
257
|
-
for (let T = 0; T < t.length; T++) {
|
|
258
|
-
const C = t[T][0], L = t[T][1] ? {
|
|
259
|
-
[Se]: !0
|
|
260
|
-
} : {
|
|
261
|
-
[Oe]: !0
|
|
262
|
-
};
|
|
263
|
-
C.indexOf("-") >= 0 ? L[Kt] = !0 : b.test(C) ? N.test(C) ? L[K] = !0 : L[Bt] = !0 : L[zt] = !0, se(e, C, C, L);
|
|
264
|
-
}
|
|
265
|
-
return se(e, "localhost", _, {
|
|
266
|
-
ascii: !0
|
|
267
|
-
}), e.jd = new p(bt), {
|
|
268
|
-
start: e,
|
|
269
|
-
tokens: Object.assign({
|
|
270
|
-
groups: n
|
|
271
|
-
}, fe)
|
|
272
|
-
};
|
|
273
251
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
v: n.slice(r - m, r),
|
|
285
|
-
// string value
|
|
286
|
-
s: r - m,
|
|
287
|
-
// start index
|
|
288
|
-
e: r
|
|
289
|
-
// end index (excluding)
|
|
290
|
-
});
|
|
252
|
+
l.jsonID("text", f);
|
|
253
|
+
class y {
|
|
254
|
+
constructor(e, t) {
|
|
255
|
+
this.anchor = e, this.head = t;
|
|
256
|
+
}
|
|
257
|
+
map(e) {
|
|
258
|
+
return new y(e.map(this.anchor), e.map(this.head));
|
|
259
|
+
}
|
|
260
|
+
resolve(e) {
|
|
261
|
+
return f.between(e.resolve(this.anchor), e.resolve(this.head));
|
|
291
262
|
}
|
|
292
|
-
return i;
|
|
293
263
|
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
264
|
+
class p extends l {
|
|
265
|
+
/**
|
|
266
|
+
Create a node selection. Does not verify the validity of its
|
|
267
|
+
argument.
|
|
268
|
+
*/
|
|
269
|
+
constructor(e) {
|
|
270
|
+
let t = e.nodeAfter, r = e.node(0).resolve(e.pos + t.nodeSize);
|
|
271
|
+
super(e, r), this.node = t;
|
|
272
|
+
}
|
|
273
|
+
map(e, t) {
|
|
274
|
+
let { deleted: r, pos: n } = t.mapResult(this.anchor), s = e.resolve(n);
|
|
275
|
+
return r ? l.near(s) : new p(s);
|
|
276
|
+
}
|
|
277
|
+
content() {
|
|
278
|
+
return new m(B.from(this.node), 0, 0);
|
|
279
|
+
}
|
|
280
|
+
eq(e) {
|
|
281
|
+
return e instanceof p && e.anchor == this.anchor;
|
|
282
|
+
}
|
|
283
|
+
toJSON() {
|
|
284
|
+
return { type: "node", anchor: this.anchor };
|
|
285
|
+
}
|
|
286
|
+
getBookmark() {
|
|
287
|
+
return new J(this.anchor);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
@internal
|
|
291
|
+
*/
|
|
292
|
+
static fromJSON(e, t) {
|
|
293
|
+
if (typeof t.anchor != "number")
|
|
294
|
+
throw new RangeError("Invalid input for NodeSelection.fromJSON");
|
|
295
|
+
return new p(e.resolve(t.anchor));
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
Create a node selection from non-resolved positions.
|
|
299
|
+
*/
|
|
300
|
+
static create(e, t) {
|
|
301
|
+
return new p(e.resolve(t));
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
Determines whether the given node may be selected as a node
|
|
305
|
+
selection.
|
|
306
|
+
*/
|
|
307
|
+
static isSelectable(e) {
|
|
308
|
+
return !e.isText && e.type.spec.selectable !== !1;
|
|
309
|
+
}
|
|
302
310
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
+
p.prototype.visible = !1;
|
|
312
|
+
l.jsonID("node", p);
|
|
313
|
+
class J {
|
|
314
|
+
constructor(e) {
|
|
315
|
+
this.anchor = e;
|
|
316
|
+
}
|
|
317
|
+
map(e) {
|
|
318
|
+
let { deleted: t, pos: r } = e.mapResult(this.anchor);
|
|
319
|
+
return t ? new y(r, r) : new J(r);
|
|
320
|
+
}
|
|
321
|
+
resolve(e) {
|
|
322
|
+
let t = e.resolve(this.anchor), r = t.nodeAfter;
|
|
323
|
+
return r && p.isSelectable(r) ? new p(t) : l.near(t);
|
|
324
|
+
}
|
|
311
325
|
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
326
|
+
class d extends l {
|
|
327
|
+
/**
|
|
328
|
+
Create an all-selection over the given document.
|
|
329
|
+
*/
|
|
330
|
+
constructor(e) {
|
|
331
|
+
super(e.resolve(0), e.resolve(e.content.size));
|
|
332
|
+
}
|
|
333
|
+
replace(e, t = m.empty) {
|
|
334
|
+
if (t == m.empty) {
|
|
335
|
+
e.delete(0, e.doc.content.size);
|
|
336
|
+
let r = l.atStart(e.doc);
|
|
337
|
+
r.eq(e.selection) || e.setSelection(r);
|
|
324
338
|
} else
|
|
325
|
-
|
|
339
|
+
super.replace(e, t);
|
|
340
|
+
}
|
|
341
|
+
toJSON() {
|
|
342
|
+
return { type: "all" };
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
@internal
|
|
346
|
+
*/
|
|
347
|
+
static fromJSON(e) {
|
|
348
|
+
return new d(e);
|
|
349
|
+
}
|
|
350
|
+
map(e) {
|
|
351
|
+
return new d(e);
|
|
352
|
+
}
|
|
353
|
+
eq(e) {
|
|
354
|
+
return e instanceof d;
|
|
355
|
+
}
|
|
356
|
+
getBookmark() {
|
|
357
|
+
return z;
|
|
326
358
|
}
|
|
327
|
-
return n;
|
|
328
359
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
rel: null,
|
|
338
|
-
validate: !0,
|
|
339
|
-
truncate: 1 / 0,
|
|
340
|
-
className: null,
|
|
341
|
-
attributes: null,
|
|
342
|
-
ignoreTags: [],
|
|
343
|
-
render: null
|
|
360
|
+
l.jsonID("all", d);
|
|
361
|
+
const z = {
|
|
362
|
+
map() {
|
|
363
|
+
return this;
|
|
364
|
+
},
|
|
365
|
+
resolve(i) {
|
|
366
|
+
return new d(i);
|
|
367
|
+
}
|
|
344
368
|
};
|
|
345
|
-
function
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
369
|
+
function g(i, e, t, r, n, s = !1) {
|
|
370
|
+
if (e.inlineContent)
|
|
371
|
+
return f.create(i, t);
|
|
372
|
+
for (let o = r - (n > 0 ? 0 : 1); n > 0 ? o < e.childCount : o >= 0; o += n) {
|
|
373
|
+
let a = e.child(o);
|
|
374
|
+
if (a.isAtom) {
|
|
375
|
+
if (!s && p.isSelectable(a))
|
|
376
|
+
return p.create(i, t - (n < 0 ? a.nodeSize : 0));
|
|
377
|
+
} else {
|
|
378
|
+
let c = g(i, a, t + n, n < 0 ? a.childCount : 0, n, s);
|
|
379
|
+
if (c)
|
|
380
|
+
return c;
|
|
381
|
+
}
|
|
382
|
+
t += a.nodeSize * n;
|
|
383
|
+
}
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
function E(i, e, t) {
|
|
387
|
+
let r = i.steps.length - 1;
|
|
388
|
+
if (r < e)
|
|
389
|
+
return;
|
|
390
|
+
let n = i.steps[r];
|
|
391
|
+
if (!(n instanceof P || n instanceof K))
|
|
392
|
+
return;
|
|
393
|
+
let s = i.mapping.maps[r], o;
|
|
394
|
+
s.forEach((a, c, u, h) => {
|
|
395
|
+
o == null && (o = h);
|
|
396
|
+
}), i.setSelection(l.near(i.doc.resolve(o), t));
|
|
352
397
|
}
|
|
353
|
-
|
|
354
|
-
|
|
398
|
+
const b = 1, k = 2, F = 4;
|
|
399
|
+
class W extends $ {
|
|
355
400
|
/**
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
401
|
+
@internal
|
|
402
|
+
*/
|
|
403
|
+
constructor(e) {
|
|
404
|
+
super(e.doc), this.curSelectionFor = 0, this.updated = 0, this.meta = /* @__PURE__ */ Object.create(null), this.time = Date.now(), this.curSelection = e.selection, this.storedMarks = e.storedMarks;
|
|
405
|
+
}
|
|
359
406
|
/**
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
407
|
+
The transaction's current selection. This defaults to the editor
|
|
408
|
+
selection [mapped](https://prosemirror.net/docs/ref/#state.Selection.map) through the steps in the
|
|
409
|
+
transaction, but can be overwritten with
|
|
410
|
+
[`setSelection`](https://prosemirror.net/docs/ref/#state.Transaction.setSelection).
|
|
411
|
+
*/
|
|
412
|
+
get selection() {
|
|
413
|
+
return this.curSelectionFor < this.steps.length && (this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor)), this.curSelectionFor = this.steps.length), this.curSelection;
|
|
414
|
+
}
|
|
366
415
|
/**
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
return this.
|
|
374
|
-
}
|
|
375
|
-
// Private methods
|
|
376
|
-
/**
|
|
377
|
-
* Resolve an option's value based on the value of the option and the given
|
|
378
|
-
* params. If operator and token are specified and the target option is
|
|
379
|
-
* callable, automatically calls the function with the given argument.
|
|
380
|
-
* @template {keyof Opts} K
|
|
381
|
-
* @param {K} key Name of option to use
|
|
382
|
-
* @param {string} [operator] will be passed to the target option if it's a
|
|
383
|
-
* function. If not specified, RAW function value gets returned
|
|
384
|
-
* @param {MultiToken} [token] The token from linkify.tokenize
|
|
385
|
-
* @returns {Opts[K] | any}
|
|
386
|
-
*/
|
|
387
|
-
get(t, n, e) {
|
|
388
|
-
const s = n != null;
|
|
389
|
-
let i = this.o[t];
|
|
390
|
-
return i && (typeof i == "object" ? (i = e.t in i ? i[e.t] : J[t], typeof i == "function" && s && (i = i(n, e))) : typeof i == "function" && s && (i = i(n, e.t, e)), i);
|
|
391
|
-
},
|
|
416
|
+
Update the transaction's current selection. Will determine the
|
|
417
|
+
selection that the editor gets when the transaction is applied.
|
|
418
|
+
*/
|
|
419
|
+
setSelection(e) {
|
|
420
|
+
if (e.$from.doc != this.doc)
|
|
421
|
+
throw new RangeError("Selection passed to setSelection must point at the current document");
|
|
422
|
+
return this.curSelection = e, this.curSelectionFor = this.steps.length, this.updated = (this.updated | b) & ~k, this.storedMarks = null, this;
|
|
423
|
+
}
|
|
392
424
|
/**
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
*/
|
|
399
|
-
getObj(t, n, e) {
|
|
400
|
-
let s = this.o[t];
|
|
401
|
-
return typeof s == "function" && n != null && (s = s(n, e.t, e)), s;
|
|
402
|
-
},
|
|
425
|
+
Whether the selection was explicitly updated by this transaction.
|
|
426
|
+
*/
|
|
427
|
+
get selectionSet() {
|
|
428
|
+
return (this.updated & b) > 0;
|
|
429
|
+
}
|
|
403
430
|
/**
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
* Component, etc.
|
|
409
|
-
*/
|
|
410
|
-
render(t) {
|
|
411
|
-
const n = t.render(this);
|
|
412
|
-
return (this.get("render", null, t) || this.defaultRender)(n, t.t, t);
|
|
431
|
+
Set the current stored marks.
|
|
432
|
+
*/
|
|
433
|
+
setStoredMarks(e) {
|
|
434
|
+
return this.storedMarks = e, this.updated |= k, this;
|
|
413
435
|
}
|
|
414
|
-
};
|
|
415
|
-
function re(t) {
|
|
416
|
-
return t;
|
|
417
|
-
}
|
|
418
|
-
function ge(t, n) {
|
|
419
|
-
this.t = "token", this.v = t, this.tk = n;
|
|
420
|
-
}
|
|
421
|
-
ge.prototype = {
|
|
422
|
-
isLink: !1,
|
|
423
|
-
/**
|
|
424
|
-
* Return the string this token represents.
|
|
425
|
-
* @return {string}
|
|
426
|
-
*/
|
|
427
|
-
toString() {
|
|
428
|
-
return this.v;
|
|
429
|
-
},
|
|
430
436
|
/**
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
},
|
|
437
|
+
Make sure the current stored marks or, if that is null, the marks
|
|
438
|
+
at the selection, match the given set of marks. Does nothing if
|
|
439
|
+
this is already the case.
|
|
440
|
+
*/
|
|
441
|
+
ensureMarks(e) {
|
|
442
|
+
return R.sameSet(this.storedMarks || this.selection.$from.marks(), e) || this.setStoredMarks(e), this;
|
|
443
|
+
}
|
|
439
444
|
/**
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
return e && s.length > e ? s.substring(0, e) + "…" : s;
|
|
446
|
-
},
|
|
445
|
+
Add a mark to the set of stored marks.
|
|
446
|
+
*/
|
|
447
|
+
addStoredMark(e) {
|
|
448
|
+
return this.ensureMarks(e.addToSet(this.storedMarks || this.selection.$head.marks()));
|
|
449
|
+
}
|
|
447
450
|
/**
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
return t.get("formatHref", this.toHref(t.get("defaultProtocol")), this);
|
|
454
|
-
},
|
|
451
|
+
Remove a mark or mark type from the set of stored marks.
|
|
452
|
+
*/
|
|
453
|
+
removeStoredMark(e) {
|
|
454
|
+
return this.ensureMarks(e.removeFromSet(this.storedMarks || this.selection.$head.marks()));
|
|
455
|
+
}
|
|
455
456
|
/**
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
},
|
|
457
|
+
Whether the stored marks were explicitly set for this transaction.
|
|
458
|
+
*/
|
|
459
|
+
get storedMarksSet() {
|
|
460
|
+
return (this.updated & k) > 0;
|
|
461
|
+
}
|
|
462
462
|
/**
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
return this.tk[this.tk.length - 1].e;
|
|
469
|
-
},
|
|
463
|
+
@internal
|
|
464
|
+
*/
|
|
465
|
+
addStep(e, t) {
|
|
466
|
+
super.addStep(e, t), this.updated = this.updated & ~k, this.storedMarks = null;
|
|
467
|
+
}
|
|
470
468
|
/**
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
@method toObject
|
|
477
|
-
@param {string} [protocol] `'http'` by default
|
|
478
|
-
*/
|
|
479
|
-
toObject(t = J.defaultProtocol) {
|
|
480
|
-
return {
|
|
481
|
-
type: this.t,
|
|
482
|
-
value: this.toString(),
|
|
483
|
-
isLink: this.isLink,
|
|
484
|
-
href: this.toHref(t),
|
|
485
|
-
start: this.startIndex(),
|
|
486
|
-
end: this.endIndex()
|
|
487
|
-
};
|
|
488
|
-
},
|
|
469
|
+
Update the timestamp for the transaction.
|
|
470
|
+
*/
|
|
471
|
+
setTime(e) {
|
|
472
|
+
return this.time = e, this;
|
|
473
|
+
}
|
|
489
474
|
/**
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
type: this.t,
|
|
496
|
-
value: this.toFormattedString(t),
|
|
497
|
-
isLink: this.isLink,
|
|
498
|
-
href: this.toFormattedHref(t),
|
|
499
|
-
start: this.startIndex(),
|
|
500
|
-
end: this.endIndex()
|
|
501
|
-
};
|
|
502
|
-
},
|
|
475
|
+
Replace the current selection with the given slice.
|
|
476
|
+
*/
|
|
477
|
+
replaceSelection(e) {
|
|
478
|
+
return this.selection.replace(this, e), this;
|
|
479
|
+
}
|
|
503
480
|
/**
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
481
|
+
Replace the selection with the given node. When `inheritMarks` is
|
|
482
|
+
true and the content is inline, it inherits the marks from the
|
|
483
|
+
place where it is inserted.
|
|
484
|
+
*/
|
|
485
|
+
replaceSelectionWith(e, t = !0) {
|
|
486
|
+
let r = this.selection;
|
|
487
|
+
return t && (e = e.mark(this.storedMarks || (r.empty ? r.$from.marks() : r.$from.marksAcross(r.$to) || R.none))), r.replaceWith(this, e), this;
|
|
488
|
+
}
|
|
511
489
|
/**
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
const n = this, e = this.toHref(t.get("defaultProtocol")), s = t.get("formatHref", e, this), i = t.get("tagName", e, n), r = this.toFormattedString(t), a = {}, c = t.get("className", e, n), d = t.get("target", e, n), m = t.get("rel", e, n), E = t.getObj("attributes", e, n), u = t.getObj("events", e, n);
|
|
517
|
-
return a.href = s, c && (a.class = c), d && (a.target = d), m && (a.rel = m), E && Object.assign(a, E), {
|
|
518
|
-
tagName: i,
|
|
519
|
-
attributes: a,
|
|
520
|
-
content: r,
|
|
521
|
-
eventListeners: u
|
|
522
|
-
};
|
|
490
|
+
Delete the selection.
|
|
491
|
+
*/
|
|
492
|
+
deleteSelection() {
|
|
493
|
+
return this.selection.replace(this), this;
|
|
523
494
|
}
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
495
|
+
/**
|
|
496
|
+
Replace the given range, or the selection if no range is given,
|
|
497
|
+
with a text node containing the given string.
|
|
498
|
+
*/
|
|
499
|
+
insertText(e, t, r) {
|
|
500
|
+
let n = this.doc.type.schema;
|
|
501
|
+
if (t == null)
|
|
502
|
+
return e ? this.replaceSelectionWith(n.text(e), !0) : this.deleteSelection();
|
|
503
|
+
{
|
|
504
|
+
if (r == null && (r = t), !e)
|
|
505
|
+
return this.deleteRange(t, r);
|
|
506
|
+
let s = this.storedMarks;
|
|
507
|
+
if (!s) {
|
|
508
|
+
let o = this.doc.resolve(t);
|
|
509
|
+
s = r == t ? o.marks() : o.marksAcross(this.doc.resolve(r));
|
|
510
|
+
}
|
|
511
|
+
return this.replaceRangeWith(t, r, n.text(e, s)), !this.selection.empty && this.selection.to == t + e.length && this.setSelection(l.near(this.selection.$to)), this;
|
|
529
512
|
}
|
|
530
513
|
}
|
|
531
|
-
for (const s in n)
|
|
532
|
-
e.prototype[s] = n[s];
|
|
533
|
-
return e.t = t, e;
|
|
534
|
-
}
|
|
535
|
-
const ae = Nt("email", {
|
|
536
|
-
isLink: !0,
|
|
537
|
-
toHref() {
|
|
538
|
-
return "mailto:" + this.toString();
|
|
539
|
-
}
|
|
540
|
-
}), ce = Nt("text"), we = Nt("nl"), Z = Nt("url", {
|
|
541
|
-
isLink: !0,
|
|
542
|
-
/**
|
|
543
|
-
Lowercases relevant parts of the domain and adds the protocol if
|
|
544
|
-
required. Note that this will not escape unsafe HTML characters in the
|
|
545
|
-
URL.
|
|
546
|
-
@param {string} [scheme] default scheme (e.g., 'https')
|
|
547
|
-
@return {string} the full href
|
|
548
|
-
*/
|
|
549
|
-
toHref(t = J.defaultProtocol) {
|
|
550
|
-
return this.hasProtocol() ? this.v : `${t}://${this.v}`;
|
|
551
|
-
},
|
|
552
514
|
/**
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
l(Te, t.numeric, te);
|
|
588
|
-
const R = S(Z), M = S();
|
|
589
|
-
l(R, n, R), l(R, e, M), l(M, n, R), l(M, e, M), o(L, k, R), o(te, k, R);
|
|
590
|
-
const It = o(c, v), Le = o(d, v), Re = o(Le, k), Ht = o(Re, k);
|
|
591
|
-
l(c, t.domain, a), o(c, y, w), o(c, O, C), l(d, t.domain, a), o(d, y, w), o(d, O, C), l(It, t.domain, R), o(It, k, R), o(It, $, R), l(Ht, t.domain, R), l(Ht, n, R), o(Ht, k, R);
|
|
592
|
-
const ee = [
|
|
593
|
-
[W, G],
|
|
594
|
-
// {}
|
|
595
|
-
[et, nt],
|
|
596
|
-
// []
|
|
597
|
-
[st, it],
|
|
598
|
-
// ()
|
|
599
|
-
[ot, rt],
|
|
600
|
-
// <>
|
|
601
|
-
[at, ct],
|
|
602
|
-
// ()
|
|
603
|
-
[lt, ut],
|
|
604
|
-
// 「」
|
|
605
|
-
[ht, dt],
|
|
606
|
-
// 『』
|
|
607
|
-
[Et, ft]
|
|
608
|
-
// <>
|
|
609
|
-
];
|
|
610
|
-
for (let wt = 0; wt < ee.length; wt++) {
|
|
611
|
-
const [ne, Dt] = ee[wt], Y = o(R, ne);
|
|
612
|
-
o(M, ne, Y), o(Y, Dt, R);
|
|
613
|
-
const x = S(Z);
|
|
614
|
-
l(Y, n, x);
|
|
615
|
-
const z = S();
|
|
616
|
-
l(Y, e), l(x, n, x), l(x, e, z), l(z, n, x), l(z, e, z), o(x, Dt, R), o(z, Dt, R);
|
|
617
|
-
}
|
|
618
|
-
return o(i, _, L), o(i, _t, we), {
|
|
619
|
-
start: i,
|
|
620
|
-
tokens: fe
|
|
621
|
-
};
|
|
515
|
+
Store a metadata property in this transaction, keyed either by
|
|
516
|
+
name or by plugin.
|
|
517
|
+
*/
|
|
518
|
+
setMeta(e, t) {
|
|
519
|
+
return this.meta[typeof e == "string" ? e : e.key] = t, this;
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
Retrieve a metadata property for a given name or plugin.
|
|
523
|
+
*/
|
|
524
|
+
getMeta(e) {
|
|
525
|
+
return this.meta[typeof e == "string" ? e : e.key];
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
Returns true if this transaction doesn't contain any metadata,
|
|
529
|
+
and can thus safely be extended.
|
|
530
|
+
*/
|
|
531
|
+
get isGeneric() {
|
|
532
|
+
for (let e in this.meta)
|
|
533
|
+
return !1;
|
|
534
|
+
return !0;
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
Indicate that the editor should scroll the selection into view
|
|
538
|
+
when updated to the state produced by this transaction.
|
|
539
|
+
*/
|
|
540
|
+
scrollIntoView() {
|
|
541
|
+
return this.updated |= F, this;
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
True when this transaction has had `scrollIntoView` called on it.
|
|
545
|
+
*/
|
|
546
|
+
get scrolledIntoView() {
|
|
547
|
+
return (this.updated & F) > 0;
|
|
548
|
+
}
|
|
622
549
|
}
|
|
623
|
-
function
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
for (; i < s && (m = d || c.go(e[i].t)); )
|
|
630
|
-
d = null, c = m, c.accepts() ? (g = 0, u = c) : g >= 0 && g++, i++, E++;
|
|
631
|
-
if (g < 0)
|
|
632
|
-
i -= E, i < s && (a.push(e[i]), i++);
|
|
633
|
-
else {
|
|
634
|
-
a.length > 0 && (r.push(Mt(ce, n, a)), a = []), i -= g, E -= g;
|
|
635
|
-
const A = u.t, H = e.slice(i - E, i);
|
|
636
|
-
r.push(Mt(A, n, H));
|
|
637
|
-
}
|
|
550
|
+
function D(i, e) {
|
|
551
|
+
return !e || !i ? i : i.bind(e);
|
|
552
|
+
}
|
|
553
|
+
class S {
|
|
554
|
+
constructor(e, t, r) {
|
|
555
|
+
this.name = e, this.init = D(t.init, r), this.apply = D(t.apply, r);
|
|
638
556
|
}
|
|
639
|
-
return a.length > 0 && r.push(Mt(ce, n, a)), r;
|
|
640
557
|
}
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
558
|
+
const L = [
|
|
559
|
+
new S("doc", {
|
|
560
|
+
init(i) {
|
|
561
|
+
return i.doc || i.schema.topNodeType.createAndFill();
|
|
562
|
+
},
|
|
563
|
+
apply(i) {
|
|
564
|
+
return i.doc;
|
|
565
|
+
}
|
|
566
|
+
}),
|
|
567
|
+
new S("selection", {
|
|
568
|
+
init(i, e) {
|
|
569
|
+
return i.selection || l.atStart(e.doc);
|
|
570
|
+
},
|
|
571
|
+
apply(i) {
|
|
572
|
+
return i.selection;
|
|
573
|
+
}
|
|
574
|
+
}),
|
|
575
|
+
new S("storedMarks", {
|
|
576
|
+
init(i) {
|
|
577
|
+
return i.storedMarks || null;
|
|
578
|
+
},
|
|
579
|
+
apply(i, e, t, r) {
|
|
580
|
+
return r.selection.$cursor ? i.storedMarks : null;
|
|
581
|
+
}
|
|
582
|
+
}),
|
|
583
|
+
new S("scrollToSelection", {
|
|
584
|
+
init() {
|
|
585
|
+
return 0;
|
|
586
|
+
},
|
|
587
|
+
apply(i, e) {
|
|
588
|
+
return i.scrolledIntoView ? e + 1 : e;
|
|
589
|
+
}
|
|
590
|
+
})
|
|
591
|
+
];
|
|
592
|
+
class v {
|
|
593
|
+
constructor(e, t) {
|
|
594
|
+
this.schema = e, this.plugins = [], this.pluginsByKey = /* @__PURE__ */ Object.create(null), this.fields = L.slice(), t && t.forEach((r) => {
|
|
595
|
+
if (this.pluginsByKey[r.key])
|
|
596
|
+
throw new RangeError("Adding different instances of a keyed plugin (" + r.key + ")");
|
|
597
|
+
this.plugins.push(r), this.pluginsByKey[r.key] = r, r.spec.state && this.fields.push(new S(r.key, r.spec.state, r));
|
|
598
|
+
});
|
|
599
|
+
}
|
|
644
600
|
}
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
601
|
+
class w {
|
|
602
|
+
/**
|
|
603
|
+
@internal
|
|
604
|
+
*/
|
|
605
|
+
constructor(e) {
|
|
606
|
+
this.config = e;
|
|
607
|
+
}
|
|
608
|
+
/**
|
|
609
|
+
The schema of the state's document.
|
|
610
|
+
*/
|
|
611
|
+
get schema() {
|
|
612
|
+
return this.config.schema;
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
The plugins that are active in this state.
|
|
616
|
+
*/
|
|
617
|
+
get plugins() {
|
|
618
|
+
return this.config.plugins;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
Apply the given transaction to produce a new state.
|
|
622
|
+
*/
|
|
623
|
+
apply(e) {
|
|
624
|
+
return this.applyTransaction(e).state;
|
|
625
|
+
}
|
|
626
|
+
/**
|
|
627
|
+
@internal
|
|
628
|
+
*/
|
|
629
|
+
filterTransaction(e, t = -1) {
|
|
630
|
+
for (let r = 0; r < this.config.plugins.length; r++)
|
|
631
|
+
if (r != t) {
|
|
632
|
+
let n = this.config.plugins[r];
|
|
633
|
+
if (n.spec.filterTransaction && !n.spec.filterTransaction.call(n, e, this))
|
|
634
|
+
return !1;
|
|
635
|
+
}
|
|
636
|
+
return !0;
|
|
637
|
+
}
|
|
638
|
+
/**
|
|
639
|
+
Verbose variant of [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) that
|
|
640
|
+
returns the precise transactions that were applied (which might
|
|
641
|
+
be influenced by the [transaction
|
|
642
|
+
hooks](https://prosemirror.net/docs/ref/#state.PluginSpec.filterTransaction) of
|
|
643
|
+
plugins) along with the new state.
|
|
644
|
+
*/
|
|
645
|
+
applyTransaction(e) {
|
|
646
|
+
if (!this.filterTransaction(e))
|
|
647
|
+
return { state: this, transactions: [] };
|
|
648
|
+
let t = [e], r = this.applyInner(e), n = null;
|
|
649
|
+
for (; ; ) {
|
|
650
|
+
let s = !1;
|
|
651
|
+
for (let o = 0; o < this.config.plugins.length; o++) {
|
|
652
|
+
let a = this.config.plugins[o];
|
|
653
|
+
if (a.spec.appendTransaction) {
|
|
654
|
+
let c = n ? n[o].n : 0, u = n ? n[o].state : this, h = c < t.length && a.spec.appendTransaction.call(a, c ? t.slice(c) : t, u, r);
|
|
655
|
+
if (h && r.filterTransaction(h, o)) {
|
|
656
|
+
if (h.setMeta("appendedTransaction", e), !n) {
|
|
657
|
+
n = [];
|
|
658
|
+
for (let M = 0; M < this.config.plugins.length; M++)
|
|
659
|
+
n.push(M < o ? { state: r, n: t.length } : { state: this, n: 0 });
|
|
660
|
+
}
|
|
661
|
+
t.push(h), r = r.applyInner(h), s = !0;
|
|
662
|
+
}
|
|
663
|
+
n && (n[o] = { state: r, n: t.length });
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
if (!s)
|
|
667
|
+
return { state: r, transactions: t };
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
/**
|
|
671
|
+
@internal
|
|
672
|
+
*/
|
|
673
|
+
applyInner(e) {
|
|
674
|
+
if (!e.before.eq(this.doc))
|
|
675
|
+
throw new RangeError("Applying a mismatched transaction");
|
|
676
|
+
let t = new w(this.config), r = this.config.fields;
|
|
677
|
+
for (let n = 0; n < r.length; n++) {
|
|
678
|
+
let s = r[n];
|
|
679
|
+
t[s.name] = s.apply(e, this[s.name], this, t);
|
|
680
|
+
}
|
|
681
|
+
return t;
|
|
682
|
+
}
|
|
683
|
+
/**
|
|
684
|
+
Accessor that constructs and returns a new [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.
|
|
685
|
+
*/
|
|
686
|
+
get tr() {
|
|
687
|
+
return new W(this);
|
|
688
|
+
}
|
|
689
|
+
/**
|
|
690
|
+
Create a new state.
|
|
691
|
+
*/
|
|
692
|
+
static create(e) {
|
|
693
|
+
let t = new v(e.doc ? e.doc.type.schema : e.schema, e.plugins), r = new w(t);
|
|
694
|
+
for (let n = 0; n < t.fields.length; n++)
|
|
695
|
+
r[t.fields[n].name] = t.fields[n].init(e, r);
|
|
696
|
+
return r;
|
|
697
|
+
}
|
|
698
|
+
/**
|
|
699
|
+
Create a new state based on this one, but with an adjusted set
|
|
700
|
+
of active plugins. State fields that exist in both sets of
|
|
701
|
+
plugins are kept unchanged. Those that no longer exist are
|
|
702
|
+
dropped, and those that are new are initialized using their
|
|
703
|
+
[`init`](https://prosemirror.net/docs/ref/#state.StateField.init) method, passing in the new
|
|
704
|
+
configuration object..
|
|
705
|
+
*/
|
|
706
|
+
reconfigure(e) {
|
|
707
|
+
let t = new v(this.schema, e.plugins), r = t.fields, n = new w(t);
|
|
708
|
+
for (let s = 0; s < r.length; s++) {
|
|
709
|
+
let o = r[s].name;
|
|
710
|
+
n[o] = this.hasOwnProperty(o) ? this[o] : r[s].init(e, n);
|
|
711
|
+
}
|
|
712
|
+
return n;
|
|
713
|
+
}
|
|
714
|
+
/**
|
|
715
|
+
Serialize this state to JSON. If you want to serialize the state
|
|
716
|
+
of plugins, pass an object mapping property names to use in the
|
|
717
|
+
resulting JSON object to plugin objects. The argument may also be
|
|
718
|
+
a string or number, in which case it is ignored, to support the
|
|
719
|
+
way `JSON.stringify` calls `toString` methods.
|
|
720
|
+
*/
|
|
721
|
+
toJSON(e) {
|
|
722
|
+
let t = { doc: this.doc.toJSON(), selection: this.selection.toJSON() };
|
|
723
|
+
if (this.storedMarks && (t.storedMarks = this.storedMarks.map((r) => r.toJSON())), e && typeof e == "object")
|
|
724
|
+
for (let r in e) {
|
|
725
|
+
if (r == "doc" || r == "selection")
|
|
726
|
+
throw new RangeError("The JSON fields `doc` and `selection` are reserved");
|
|
727
|
+
let n = e[r], s = n.spec.state;
|
|
728
|
+
s && s.toJSON && (t[r] = s.toJSON.call(n, this[n.key]));
|
|
729
|
+
}
|
|
730
|
+
return t;
|
|
731
|
+
}
|
|
732
|
+
/**
|
|
733
|
+
Deserialize a JSON representation of a state. `config` should
|
|
734
|
+
have at least a `schema` field, and should contain array of
|
|
735
|
+
plugins to initialize the state with. `pluginFields` can be used
|
|
736
|
+
to deserialize the state of plugins, by associating plugin
|
|
737
|
+
instances with the property names they use in the JSON object.
|
|
738
|
+
*/
|
|
739
|
+
static fromJSON(e, t, r) {
|
|
740
|
+
if (!t)
|
|
741
|
+
throw new RangeError("Invalid input for EditorState.fromJSON");
|
|
742
|
+
if (!e.schema)
|
|
743
|
+
throw new RangeError("Required config field 'schema' missing");
|
|
744
|
+
let n = new v(e.schema, e.plugins), s = new w(n);
|
|
745
|
+
return n.fields.forEach((o) => {
|
|
746
|
+
if (o.name == "doc")
|
|
747
|
+
s.doc = x.fromJSON(e.schema, t.doc);
|
|
748
|
+
else if (o.name == "selection")
|
|
749
|
+
s.selection = l.fromJSON(s.doc, t.selection);
|
|
750
|
+
else if (o.name == "storedMarks")
|
|
751
|
+
t.storedMarks && (s.storedMarks = t.storedMarks.map(e.schema.markFromJSON));
|
|
752
|
+
else {
|
|
753
|
+
if (r)
|
|
754
|
+
for (let a in r) {
|
|
755
|
+
let c = r[a], u = c.spec.state;
|
|
756
|
+
if (c.key == o.name && u && u.fromJSON && Object.prototype.hasOwnProperty.call(t, a)) {
|
|
757
|
+
s[o.name] = u.fromJSON.call(c, e, t[a], s);
|
|
758
|
+
return;
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
s[o.name] = o.init(e, s);
|
|
762
|
+
}
|
|
763
|
+
}), s;
|
|
764
|
+
}
|
|
656
765
|
}
|
|
657
|
-
function
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
h.customSchemes.push([t, n]);
|
|
766
|
+
function A(i, e, t) {
|
|
767
|
+
for (let r in i) {
|
|
768
|
+
let n = i[r];
|
|
769
|
+
n instanceof Function ? n = n.bind(e) : r == "handleDOMEvents" && (n = A(n, e, {})), t[r] = n;
|
|
770
|
+
}
|
|
771
|
+
return t;
|
|
664
772
|
}
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
});
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
773
|
+
class G {
|
|
774
|
+
/**
|
|
775
|
+
Create a plugin.
|
|
776
|
+
*/
|
|
777
|
+
constructor(e) {
|
|
778
|
+
this.spec = e, this.props = {}, e.props && A(e.props, this, this.props), this.key = e.key ? e.key.key : C("plugin");
|
|
779
|
+
}
|
|
780
|
+
/**
|
|
781
|
+
Extract the plugin's state field from an editor state.
|
|
782
|
+
*/
|
|
783
|
+
getState(e) {
|
|
784
|
+
return e[this.key];
|
|
785
|
+
}
|
|
678
786
|
}
|
|
679
|
-
|
|
680
|
-
|
|
787
|
+
const N = /* @__PURE__ */ Object.create(null);
|
|
788
|
+
function C(i) {
|
|
789
|
+
return i in N ? i + "$" + ++N[i] : (N[i] = 0, i + "$");
|
|
681
790
|
}
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
}
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
791
|
+
class H {
|
|
792
|
+
/**
|
|
793
|
+
Create a plugin key.
|
|
794
|
+
*/
|
|
795
|
+
constructor(e = "key") {
|
|
796
|
+
this.key = C(e);
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
Get the active plugin with this key, if any, from an editor
|
|
800
|
+
state.
|
|
801
|
+
*/
|
|
802
|
+
get(e) {
|
|
803
|
+
return e.config.pluginsByKey[this.key];
|
|
804
|
+
}
|
|
805
|
+
/**
|
|
806
|
+
Get the plugin's state from an editor state.
|
|
807
|
+
*/
|
|
808
|
+
getState(e) {
|
|
809
|
+
return e[this.key];
|
|
810
|
+
}
|
|
695
811
|
}
|
|
696
812
|
export {
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
p as
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
Ae as tokenize
|
|
813
|
+
d as AllSelection,
|
|
814
|
+
w as EditorState,
|
|
815
|
+
p as NodeSelection,
|
|
816
|
+
G as Plugin,
|
|
817
|
+
H as PluginKey,
|
|
818
|
+
l as Selection,
|
|
819
|
+
q as SelectionRange,
|
|
820
|
+
f as TextSelection,
|
|
821
|
+
W as Transaction
|
|
707
822
|
};
|