@linker-design-plus/tiny-peony 1.4.29 → 1.4.32
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/index.d.ts +6 -6
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +797 -797
- package/dist/index.mjs.map +1 -1
- package/dist/intersection/components/editor/editor.d.ts +2 -2
- package/dist/intersection/components/editor/index.d.ts +6 -6
- package/dist/intersection/hooks/use-editor.d.ts +1 -1
- package/package.json +6 -6
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ var bE = (I, E, B) => E in I ? xE(I, E, { enumerable: !0, configurable: !0, writ
|
|
|
3
3
|
var IA = (I, E, B) => bE(I, typeof E != "symbol" ? E + "" : E, B);
|
|
4
4
|
import { getCurrentScope as TE, onScopeDispose as PE, isRef as jE, ref as yA, toValue as Jg, readonly as WE, watch as gI, computed as pA, shallowRef as rB, getCurrentInstance as yB, onMounted as Hg, toRaw as VE, defineComponent as qA, withDirectives as SI, openBlock as aA, createElementBlock as cA, normalizeClass as MA, unref as uA, withModifiers as RC, Fragment as cg, renderList as fB, createElementVNode as iA, toDisplayString as AI, vShow as LI, createVNode as N, render as FC, createBlock as OE, withCtx as ig, createTextVNode as Ag, inject as gg, normalizeStyle as yg, h as hI, nextTick as NC, resolveComponent as OA, mergeProps as UI, reactive as XE, toRefs as zE, onBeforeUnmount as RB, createCommentVNode as ZE, onUnmounted as GC, provide as FB } from "vue";
|
|
5
5
|
import { Message as Yg, Row as _E, Col as DI, Input as aB, Space as $E, Button as FI, Modal as sB, Popover as Ae } from "@arco-design/web-vue";
|
|
6
|
-
var kC = (I) => Object.prototype.toString.call(I), ge = (I) => kC(I) === "[object Null]", Ie = (I) => kC(I) === "[object Number]", Ce = (I) => kC(I) === "[object String]", wC = (I, E) => E ? typeof E == "string" ? ` ${I}--${E}` : Array.isArray(E) ? E.reduce((B,
|
|
6
|
+
var kC = (I) => Object.prototype.toString.call(I), ge = (I) => kC(I) === "[object Null]", Ie = (I) => kC(I) === "[object Number]", Ce = (I) => kC(I) === "[object String]", wC = (I, E) => E ? typeof E == "string" ? ` ${I}--${E}` : Array.isArray(E) ? E.reduce((B, t) => B + wC(I, t), "") : Object.keys(E).reduce((B, t) => B + (E[t] ? wC(I, t) : ""), "") : "", Be = (I) => (E, B) => (E && typeof E != "string" && (B = E, E = ""), E = E ? `${I}__${E}` : I, `${E}${wC(E, B)}`), NB = (I) => (E) => {
|
|
7
7
|
const B = `${I}-${E}`;
|
|
8
8
|
return [Be(B), B];
|
|
9
9
|
};
|
|
@@ -22,11 +22,11 @@ class ae {
|
|
|
22
22
|
class MI {
|
|
23
23
|
}
|
|
24
24
|
class se extends ae {
|
|
25
|
-
constructor(B,
|
|
25
|
+
constructor(B, t) {
|
|
26
26
|
super();
|
|
27
27
|
IA(this, "contentManager");
|
|
28
28
|
IA(this, "cursorManager");
|
|
29
|
-
this.contentManager = B, this.cursorManager =
|
|
29
|
+
this.contentManager = B, this.cursorManager = t;
|
|
30
30
|
}
|
|
31
31
|
executeUndo() {
|
|
32
32
|
}
|
|
@@ -36,7 +36,7 @@ class se extends ae {
|
|
|
36
36
|
const ce = (I, E) => {
|
|
37
37
|
var f;
|
|
38
38
|
E.preventDefault();
|
|
39
|
-
const B = ((f = E.data) == null ? void 0 : f.length) ?? 0,
|
|
39
|
+
const B = ((f = E.data) == null ? void 0 : f.length) ?? 0, t = I.content.calcTextCount() - B, o = I.maxLength - t;
|
|
40
40
|
if (o >= B || !B) return;
|
|
41
41
|
const r = o <= 0 ? B : B - o, a = window.getSelection(), i = a == null ? void 0 : a.getRangeAt(0);
|
|
42
42
|
if (x(a) || x(i)) return;
|
|
@@ -46,8 +46,8 @@ const ce = (I, E) => {
|
|
|
46
46
|
const { inputType: B } = E;
|
|
47
47
|
I.content.calcTextCount() >= I.maxLength && B.includes("insert") && B !== "insertParagraph" && E.preventDefault();
|
|
48
48
|
}, JI = (I, E) => {
|
|
49
|
-
const B = [],
|
|
50
|
-
let o = I.maxLength -
|
|
49
|
+
const B = [], t = I.content.calcTextCount();
|
|
50
|
+
let o = I.maxLength - t;
|
|
51
51
|
if (o <= 0 || !E.length) return [];
|
|
52
52
|
let r = E.shift();
|
|
53
53
|
for (; o > 0 && r; ) {
|
|
@@ -58,11 +58,11 @@ const ce = (I, E) => {
|
|
|
58
58
|
return B;
|
|
59
59
|
};
|
|
60
60
|
class de extends ne {
|
|
61
|
-
constructor(B,
|
|
61
|
+
constructor(B, t) {
|
|
62
62
|
super();
|
|
63
63
|
IA(this, "_editorElement");
|
|
64
64
|
IA(this, "_editor");
|
|
65
|
-
this._editorElement = B, this._editor =
|
|
65
|
+
this._editorElement = B, this._editor = t;
|
|
66
66
|
}
|
|
67
67
|
// 置入空段落
|
|
68
68
|
insertEmptyPara() {
|
|
@@ -70,7 +70,7 @@ class de extends ne {
|
|
|
70
70
|
}
|
|
71
71
|
// 计算文本字数
|
|
72
72
|
calcTextCount() {
|
|
73
|
-
return this.getTextContent().reduce((B,
|
|
73
|
+
return this.getTextContent().reduce((B, t) => B + t.length, 0);
|
|
74
74
|
}
|
|
75
75
|
// 获取内容
|
|
76
76
|
getContent() {
|
|
@@ -87,12 +87,12 @@ class de extends ne {
|
|
|
87
87
|
this.setContent(B);
|
|
88
88
|
}
|
|
89
89
|
// 增加内容(增量)
|
|
90
|
-
appendContent(B,
|
|
90
|
+
appendContent(B, t) {
|
|
91
91
|
var i;
|
|
92
92
|
const o = JI(this._editor, kB(B) ? B : [B]), r = this.getParas()[0], a = (i = r.textContent) != null && i.length ? void 0 : o.shift();
|
|
93
|
-
a && (r.innerHTML = a,
|
|
93
|
+
a && (r.innerHTML = a, t == null || t(r)), o.forEach((h) => {
|
|
94
94
|
const d = document.createElement("p");
|
|
95
|
-
d.innerHTML = h, d.classList.add(NA), this._editorElement.appendChild(d),
|
|
95
|
+
d.innerHTML = h, d.classList.add(NA), this._editorElement.appendChild(d), t == null || t(d);
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
// 增加内容
|
|
@@ -115,7 +115,7 @@ class de extends ne {
|
|
|
115
115
|
}
|
|
116
116
|
// 获取纯文本内容(段落划分)
|
|
117
117
|
getTextContent() {
|
|
118
|
-
const B = this.getParas(),
|
|
118
|
+
const B = this.getParas(), t = (o) => {
|
|
119
119
|
const r = Array.from(o.childNodes);
|
|
120
120
|
let a = "";
|
|
121
121
|
for (let i = 0; i < r.length; i++) {
|
|
@@ -123,19 +123,19 @@ class de extends ne {
|
|
|
123
123
|
mA(h) ? a += h.textContent ?? "" : $(h) && (a += ((c) => {
|
|
124
124
|
const { type: f, value: u, raw: D } = c.dataset;
|
|
125
125
|
if ([q.anchor, q.placeholderoldSpace].includes(f)) {
|
|
126
|
-
const y =
|
|
126
|
+
const y = t(c);
|
|
127
127
|
return typeof y == "string" ? y : "";
|
|
128
128
|
}
|
|
129
|
-
return f === q.pronunciation ? u ?? "" : D ??
|
|
129
|
+
return f === q.pronunciation ? u ?? "" : D ?? "";
|
|
130
130
|
})(h));
|
|
131
131
|
}
|
|
132
132
|
return a;
|
|
133
133
|
};
|
|
134
|
-
return B.map(
|
|
134
|
+
return B.map(t);
|
|
135
135
|
}
|
|
136
136
|
_insert(B) {
|
|
137
|
-
const
|
|
138
|
-
if (x(
|
|
137
|
+
const t = window.getSelection(), o = this._editor.cursor.isRangeInEditor() ? t == null ? void 0 : t.getRangeAt(0) : this._editor.cursor.range;
|
|
138
|
+
if (x(t) || !t.rangeCount || x(o)) return;
|
|
139
139
|
const r = document.createDocumentFragment();
|
|
140
140
|
if (GB(B)) {
|
|
141
141
|
const d = document.createElement("div");
|
|
@@ -146,7 +146,7 @@ class de extends ne {
|
|
|
146
146
|
const a = r.lastChild;
|
|
147
147
|
(this._calcRange(o) ?? o).insertNode(r);
|
|
148
148
|
const h = document.createRange();
|
|
149
|
-
h.setStartAfter(a), h.setEndAfter(a),
|
|
149
|
+
h.setStartAfter(a), h.setEndAfter(a), t.removeAllRanges(), t.addRange(h);
|
|
150
150
|
}
|
|
151
151
|
_delete() {
|
|
152
152
|
const { range: B } = this._editor.cursor;
|
|
@@ -160,14 +160,14 @@ class de extends ne {
|
|
|
160
160
|
* @param {Range} range - 当前的 Range 对象
|
|
161
161
|
*/
|
|
162
162
|
_calcRange(B) {
|
|
163
|
-
const
|
|
163
|
+
const t = B.commonAncestorContainer;
|
|
164
164
|
if ($(B.startContainer) && B.startContainer.dataset.type === q.highlight && B.endContainer.nodeType === Node.TEXT_NODE) {
|
|
165
165
|
const h = document.createRange();
|
|
166
166
|
return h.setStartAfter(B.startContainer), h.collapse(!0), h;
|
|
167
167
|
}
|
|
168
|
-
if (
|
|
168
|
+
if (t.tagName !== "DIV")
|
|
169
169
|
return B;
|
|
170
|
-
const o = B.startOffset, r = Array.from(
|
|
170
|
+
const o = B.startOffset, r = Array.from(t.children).filter((h) => h.tagName === "P");
|
|
171
171
|
if (o <= 0 || o - 1 >= r.length)
|
|
172
172
|
return console.warn("上一个 <p> 不存在"), B;
|
|
173
173
|
const a = r[o - 1];
|
|
@@ -188,14 +188,14 @@ class we extends ie {
|
|
|
188
188
|
document.removeEventListener("selectionchange", this._recordRange);
|
|
189
189
|
}
|
|
190
190
|
_recordRange(B) {
|
|
191
|
-
var
|
|
192
|
-
this.isRangeInEditor() && (this.range = (
|
|
191
|
+
var t;
|
|
192
|
+
this.isRangeInEditor() && (this.range = (t = window.getSelection()) == null ? void 0 : t.getRangeAt(0).cloneRange());
|
|
193
193
|
}
|
|
194
194
|
isRangeInEditor() {
|
|
195
195
|
const B = window.getSelection();
|
|
196
196
|
if (x(B) || !B.rangeCount) return !1;
|
|
197
|
-
const
|
|
198
|
-
return this._editorElement.contains(
|
|
197
|
+
const t = B.getRangeAt(0);
|
|
198
|
+
return this._editorElement.contains(t.commonAncestorContainer);
|
|
199
199
|
}
|
|
200
200
|
isCaret() {
|
|
201
201
|
var B;
|
|
@@ -210,10 +210,10 @@ class we extends ie {
|
|
|
210
210
|
return this.isCaret() ? "" : ((B = this.range) == null ? void 0 : B.toString()) ?? "";
|
|
211
211
|
}
|
|
212
212
|
toEnd(B) {
|
|
213
|
-
const
|
|
214
|
-
if (x(
|
|
213
|
+
const t = window.getSelection();
|
|
214
|
+
if (x(t)) return;
|
|
215
215
|
const o = document.createRange();
|
|
216
|
-
o.setStartAfter(B), o.setEndAfter(B),
|
|
216
|
+
o.setStartAfter(B), o.setEndAfter(B), t.removeAllRanges(), t.addRange(o);
|
|
217
217
|
}
|
|
218
218
|
getRangeTop() {
|
|
219
219
|
var B;
|
|
@@ -221,14 +221,14 @@ class we extends ie {
|
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
223
|
class he extends re {
|
|
224
|
-
constructor(B,
|
|
224
|
+
constructor(B, t, o) {
|
|
225
225
|
super();
|
|
226
226
|
IA(this, "_editor");
|
|
227
227
|
IA(this, "_onUndoChange");
|
|
228
228
|
IA(this, "contentManager");
|
|
229
229
|
IA(this, "undoStack");
|
|
230
230
|
IA(this, "redoStack");
|
|
231
|
-
this._editor = B, this.contentManager =
|
|
231
|
+
this._editor = B, this.contentManager = t, this.undoStack = [], this.redoStack = [], this._onUndoChange = o, this._handleInput = this._handleInput.bind(this), this._handleUndoOrRedo = this._handleUndoOrRedo.bind(this), this._editor.element.addEventListener("beforeinput", this._handleInput), this._editor.element.addEventListener("keydown", this._handleUndoOrRedo);
|
|
232
232
|
}
|
|
233
233
|
saveState() {
|
|
234
234
|
}
|
|
@@ -240,19 +240,19 @@ class he extends re {
|
|
|
240
240
|
this._editor.element.removeEventListener("beforeinput", this._handleInput), this._editor.element.removeEventListener("keydown", this._handleUndoOrRedo);
|
|
241
241
|
}
|
|
242
242
|
_calcNodePathMatches(B) {
|
|
243
|
-
const
|
|
243
|
+
const t = [];
|
|
244
244
|
let o = B;
|
|
245
245
|
for (; o && o.parentElement; ) {
|
|
246
246
|
const a = Array.from(o.parentElement.childNodes).indexOf(o);
|
|
247
|
-
if (
|
|
247
|
+
if (t.unshift({ index: a }), $(o) && o.tagName === "P" && o.classList.contains(NA))
|
|
248
248
|
break;
|
|
249
249
|
o = o.parentElement;
|
|
250
250
|
}
|
|
251
|
-
return
|
|
251
|
+
return t;
|
|
252
252
|
}
|
|
253
253
|
_record() {
|
|
254
254
|
var c;
|
|
255
|
-
const B = this._editor.cursor.range,
|
|
255
|
+
const B = this._editor.cursor.range, t = this._editor.content.getParas(), o = WA(B.startContainer), r = t.indexOf(o), a = this._calcNodePathMatches(B.startContainer), i = WA(B.endContainer), h = t.indexOf(i), d = this._calcNodePathMatches(B.endContainer);
|
|
256
256
|
return {
|
|
257
257
|
startParaIndex: r,
|
|
258
258
|
startMatchedIndexes: a,
|
|
@@ -270,16 +270,16 @@ class he extends re {
|
|
|
270
270
|
this.undoStack.push(this._record()), this.redoStack = [];
|
|
271
271
|
}
|
|
272
272
|
_handleUndoOrRedo(B) {
|
|
273
|
-
var
|
|
273
|
+
var t;
|
|
274
274
|
if (B.ctrlKey && B.key === "z" && (B.preventDefault(), this.undoStack.length > 0)) {
|
|
275
275
|
this.redoStack.push(this._record());
|
|
276
276
|
const o = this.undoStack.pop();
|
|
277
|
-
this._editor.content.calcTextCount() && requestAnimationFrame(() => this._restoreCursor(o)), this._editor.element.innerHTML = o.content, (
|
|
277
|
+
this._editor.content.calcTextCount() && requestAnimationFrame(() => this._restoreCursor(o)), this._editor.element.innerHTML = o.content, (t = this._onUndoChange) == null || t.call(this, o.anchorContent);
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
_restoreCursor(B) {
|
|
281
|
-
const
|
|
282
|
-
if (x(
|
|
281
|
+
const t = window.getSelection();
|
|
282
|
+
if (x(t)) return;
|
|
283
283
|
const o = (h) => {
|
|
284
284
|
let d = this._editor.content.getParas(), { index: c } = h[0], f = null, u = 0;
|
|
285
285
|
for (; u < h.length; ) {
|
|
@@ -289,7 +289,7 @@ class he extends re {
|
|
|
289
289
|
}
|
|
290
290
|
return f;
|
|
291
291
|
}, r = o(B.startMatchedIndexes), a = o(B.endMatchedIndexes), i = document.createRange();
|
|
292
|
-
i.setStart(r, B.startOffset), i.setEnd(a, B.endOffset),
|
|
292
|
+
i.setStart(r, B.startOffset), i.setEnd(a, B.endOffset), t.removeAllRanges(), t.addRange(i);
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
295
|
const HA = [];
|
|
@@ -314,15 +314,15 @@ function LB(I, E, B) {
|
|
|
314
314
|
if (cB.randomUUID && !I)
|
|
315
315
|
return cB.randomUUID();
|
|
316
316
|
I = I || {};
|
|
317
|
-
const
|
|
318
|
-
if (
|
|
317
|
+
const t = I.random ?? ((o = I.rng) == null ? void 0 : o.call(I)) ?? ye();
|
|
318
|
+
if (t.length < 16)
|
|
319
319
|
throw new Error("Random bytes length must be >= 16");
|
|
320
|
-
return
|
|
320
|
+
return t[6] = t[6] & 15 | 64, t[8] = t[8] & 63 | 128, De(t);
|
|
321
321
|
}
|
|
322
322
|
const yI = (I, E) => {
|
|
323
323
|
var r;
|
|
324
|
-
const B = window.getSelection(),
|
|
325
|
-
x(o) || x(B) || (
|
|
324
|
+
const B = window.getSelection(), t = document.createRange(), o = E.lastChild;
|
|
325
|
+
x(o) || x(B) || (t.setStartAfter(o), t.setEndAfter(o), B.removeAllRanges(), B.addRange(t), (r = I.plugin.pausation) == null || r.add({ delay: 1 }));
|
|
326
326
|
}, YI = (I, E) => {
|
|
327
327
|
const B = new InputEvent("beforeinput", {
|
|
328
328
|
bubbles: !0,
|
|
@@ -331,8 +331,8 @@ const yI = (I, E) => {
|
|
|
331
331
|
data: "Hello"
|
|
332
332
|
});
|
|
333
333
|
I.element.dispatchEvent(B);
|
|
334
|
-
const { range:
|
|
335
|
-
let i =
|
|
334
|
+
const { range: t } = I.cursor, o = E[0], r = E[E.length - 1], a = E.slice(1, -1);
|
|
335
|
+
let i = t;
|
|
336
336
|
if (!o || !i) return;
|
|
337
337
|
let h = null, d = 0, c = null;
|
|
338
338
|
if (I.cursor.isRange() && (h = i.startContainer, d = i.startOffset, c = i.endContainer, i.deleteContents()), E.length === 1) {
|
|
@@ -340,18 +340,18 @@ const yI = (I, E) => {
|
|
|
340
340
|
return;
|
|
341
341
|
}
|
|
342
342
|
if ($(i.commonAncestorContainer) && i.commonAncestorContainer.tagName === "DIV") {
|
|
343
|
-
const
|
|
343
|
+
const K = WA(h), P = WA(c), z = document.createDocumentFragment();
|
|
344
344
|
for (; P != null && P.firstChild; )
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
const
|
|
348
|
-
W.setStart(h, d), W.setEnd(h, d),
|
|
345
|
+
z.appendChild(P.firstChild);
|
|
346
|
+
K == null || K.appendChild(z), P == null || P.remove();
|
|
347
|
+
const v = window.getSelection(), W = document.createRange();
|
|
348
|
+
W.setStart(h, d), W.setEnd(h, d), v == null || v.removeAllRanges(), v == null || v.addRange(W);
|
|
349
349
|
}
|
|
350
|
-
i = I.cursor.isRangeInEditor() ? window.getSelection().getRangeAt(0) :
|
|
350
|
+
i = I.cursor.isRangeInEditor() ? window.getSelection().getRangeAt(0) : t, i = mA(i.commonAncestorContainer) && i.commonAncestorContainer.textContent === "粘贴文本" ? t : i;
|
|
351
351
|
const [u] = vA(
|
|
352
352
|
i.commonAncestorContainer,
|
|
353
|
-
(
|
|
354
|
-
), [D] = vA(i.startContainer, (
|
|
353
|
+
(K) => K.tagName === "P" && K.classList.contains(NA)
|
|
354
|
+
), [D] = vA(i.startContainer, (K) => K.tagName === "SPAN" && K.dataset.type === q.anchor), y = document.createRange(), F = !!D;
|
|
355
355
|
y.setStart(i.startContainer, i.startOffset), y.setEndAfter(u.lastChild);
|
|
356
356
|
const p = y.extractContents();
|
|
357
357
|
if (!(u != null && u.textContent))
|
|
@@ -359,8 +359,8 @@ const yI = (I, E) => {
|
|
|
359
359
|
else if (mA(u.lastChild))
|
|
360
360
|
u.lastChild.textContent += o;
|
|
361
361
|
else if ($(u.lastChild) && u.lastChild.dataset.type === q.anchor) {
|
|
362
|
-
const { lastChild:
|
|
363
|
-
mA(
|
|
362
|
+
const { lastChild: K } = u.lastChild;
|
|
363
|
+
mA(K) ? K.textContent += o : K == null || K.appendChild(document.createTextNode(o));
|
|
364
364
|
} else
|
|
365
365
|
u.appendChild(document.createTextNode(o));
|
|
366
366
|
yI(
|
|
@@ -368,12 +368,12 @@ const yI = (I, E) => {
|
|
|
368
368
|
F ? u.lastChild : u
|
|
369
369
|
);
|
|
370
370
|
let { nextSibling: G } = u;
|
|
371
|
-
if (a.forEach((
|
|
372
|
-
var
|
|
371
|
+
if (a.forEach((K) => {
|
|
372
|
+
var z;
|
|
373
373
|
const P = document.createElement("p");
|
|
374
|
-
if (P.classList.add(NA), P.textContent =
|
|
375
|
-
const
|
|
376
|
-
|
|
374
|
+
if (P.classList.add(NA), P.textContent = K, (z = u == null ? void 0 : u.parentNode) == null || z.insertBefore(P, G), G = P.nextSibling, yI(I, P), F) {
|
|
375
|
+
const v = D.cloneNode(!1);
|
|
376
|
+
v.innerHTML = P.innerHTML, P.innerHTML = v.outerHTML;
|
|
377
377
|
}
|
|
378
378
|
}), !r) return;
|
|
379
379
|
const S = document.createElement("p");
|
|
@@ -382,17 +382,17 @@ const yI = (I, E) => {
|
|
|
382
382
|
else if (mA(S.firstChild))
|
|
383
383
|
S.firstChild.textContent = r + S.firstChild.textContent;
|
|
384
384
|
else if ($(S.firstChild) && S.firstChild.dataset.type === q.anchor) {
|
|
385
|
-
const { firstChild:
|
|
386
|
-
mA(
|
|
385
|
+
const { firstChild: K } = S.firstChild;
|
|
386
|
+
mA(K) ? K.textContent = r + K.textContent : K == null || K.insertBefore(document.createTextNode(r), K.firstChild);
|
|
387
387
|
} else
|
|
388
388
|
S.insertBefore(document.createTextNode(r), S.firstChild);
|
|
389
|
-
I.element.insertBefore(S, G), [0.5, 1, 1.5, 2, 2.5].every((
|
|
389
|
+
I.element.insertBefore(S, G), [0.5, 1, 1.5, 2, 2.5].every((K) => {
|
|
390
390
|
var P;
|
|
391
|
-
return !((P = S.textContent) != null && P.trim().endsWith(`停顿: ${
|
|
391
|
+
return !((P = S.textContent) != null && P.trim().endsWith(`停顿: ${K}S`));
|
|
392
392
|
}) && yI(I, S);
|
|
393
393
|
}, [Re] = ZA("paragraph"), NA = Re(), Fe = `<p class="${NA}"><br /></p>`;
|
|
394
394
|
class Ne extends oe {
|
|
395
|
-
constructor(B,
|
|
395
|
+
constructor(B, t) {
|
|
396
396
|
super();
|
|
397
397
|
IA(this, "_observer", null);
|
|
398
398
|
IA(this, "_onchange");
|
|
@@ -404,10 +404,10 @@ class Ne extends oe {
|
|
|
404
404
|
IA(this, "command");
|
|
405
405
|
IA(this, "maxLength");
|
|
406
406
|
IA(this, "plugin");
|
|
407
|
-
this._uid = LB(), this._editorElement = B, this.content = new de(B, this), this.cursor = new we(B), this.undo = new he(this, this.content,
|
|
407
|
+
this._uid = LB(), this._editorElement = B, this.content = new de(B, this), this.cursor = new we(B), this.undo = new he(this, this.content, t == null ? void 0 : t.onUndoChange), this.command = new se(this.content, this.cursor), this.maxLength = (t == null ? void 0 : t.maxLength) ?? 1e4, this.plugin = ((t == null ? void 0 : t.plugins) ?? []).reduce((o, r) => {
|
|
408
408
|
const a = new r(this), i = a.prefix;
|
|
409
409
|
return o[i] = a, o;
|
|
410
|
-
}, {}), this._onchange =
|
|
410
|
+
}, {}), this._onchange = t == null ? void 0 : t.onChange, this._handleBackspace = this._handleBackspace.bind(this), this._handlePaste = this._handlePaste.bind(this), this._handleBeforeInput = this._handleBeforeInput.bind(this), this._handleCompositionEnd = this._handleCompositionEnd.bind(this), this._setup();
|
|
411
411
|
}
|
|
412
412
|
destroy() {
|
|
413
413
|
this._teardown();
|
|
@@ -419,14 +419,14 @@ class Ne extends oe {
|
|
|
419
419
|
return this._editorElement.getBoundingClientRect().left;
|
|
420
420
|
}
|
|
421
421
|
appendContent(B) {
|
|
422
|
-
this.content.appendContent(B, (
|
|
422
|
+
this.content.appendContent(B, (t) => yI(this, t));
|
|
423
423
|
}
|
|
424
424
|
get element() {
|
|
425
425
|
return this._editorElement;
|
|
426
426
|
}
|
|
427
427
|
_setup() {
|
|
428
428
|
this._observer = new MutationObserver(([B]) => {
|
|
429
|
-
var
|
|
429
|
+
var t;
|
|
430
430
|
if (B.removedNodes.length) {
|
|
431
431
|
const o = B.removedNodes[0];
|
|
432
432
|
if ($(o) && o.dataset.type === q.highlight) {
|
|
@@ -438,7 +438,7 @@ class Ne extends oe {
|
|
|
438
438
|
}
|
|
439
439
|
B.addedNodes.forEach((o) => {
|
|
440
440
|
$(o) && o.tagName === "P" && !o.classList.contains(NA) && o.classList.add(NA);
|
|
441
|
-
}), B.removedNodes.length && !this.content.getParas().length && this.content.insertEmptyPara(), (
|
|
441
|
+
}), B.removedNodes.length && !this.content.getParas().length && this.content.insertEmptyPara(), (t = this._onchange) == null || t.call(this, this.content.calcTextCount()), Array.from(document.querySelectorAll("p")).forEach((o) => {
|
|
442
442
|
Array.from(o.style).includes("text-indent") && o.removeAttribute("style"), Array.from(o.childNodes).forEach((a) => {
|
|
443
443
|
var i;
|
|
444
444
|
if ($(a) && a.tagName === "FONT" && $(a.firstChild) && ((i = a.firstChild) == null ? void 0 : i.tagName) === "SPAN") {
|
|
@@ -450,7 +450,7 @@ class Ne extends oe {
|
|
|
450
450
|
var u;
|
|
451
451
|
const r = o.parentNode, a = o.firstChild;
|
|
452
452
|
if (o && o.getAttribute("data-placeholder") !== null) return;
|
|
453
|
-
const h = o && o.style.textIndent === "20px"
|
|
453
|
+
const h = o && o.style.textIndent === "20px", d = o && o.style.backgroundColor && ((u = o.parentElement) == null ? void 0 : u.style.textIndent) === "0px", c = o && Array.from(o.childNodes).every((D) => mA(D) && !D.textContent || $(D) && D.tagName === "BR"), f = o && $(o.firstChild) && o.firstChild.tagName === "BR";
|
|
454
454
|
if (h || d) {
|
|
455
455
|
for (; o.firstChild; )
|
|
456
456
|
r == null || r.insertBefore(o.firstChild, o);
|
|
@@ -476,12 +476,12 @@ class Ne extends oe {
|
|
|
476
476
|
}
|
|
477
477
|
_teardown() {
|
|
478
478
|
var B;
|
|
479
|
-
(B = this._observer) == null || B.disconnect(), this._observer = null, this.cursor.destroy(), this.undo.destroy(), this._editorElement.removeEventListener("keydown", this._handleBackspace), this._editorElement.removeEventListener("paste", this._handlePaste), this._editorElement.removeEventListener("beforeinput", this._handleBeforeInput), this._editorElement.removeEventListener("compositionend", this._handleCompositionEnd), Object.values(this.plugin).forEach((
|
|
479
|
+
(B = this._observer) == null || B.disconnect(), this._observer = null, this.cursor.destroy(), this.undo.destroy(), this._editorElement.removeEventListener("keydown", this._handleBackspace), this._editorElement.removeEventListener("paste", this._handlePaste), this._editorElement.removeEventListener("beforeinput", this._handleBeforeInput), this._editorElement.removeEventListener("compositionend", this._handleCompositionEnd), Object.values(this.plugin).forEach((t) => t.destroy());
|
|
480
480
|
}
|
|
481
481
|
// TODO 待优化删除逻辑(太多重复range操作, 抽象API至 contentManger 类)
|
|
482
482
|
_handleBackspace(B) {
|
|
483
483
|
var r, a, i, h, d;
|
|
484
|
-
const
|
|
484
|
+
const t = window.getSelection(), o = t.getRangeAt(0);
|
|
485
485
|
if (B.key === "Backspace" && o.startOffset === 0 && o.collapsed) {
|
|
486
486
|
const [c] = vA(o.startContainer, (u) => u.tagName === "P" && u.classList.contains(NA)), f = c == null ? void 0 : c.previousElementSibling;
|
|
487
487
|
if (f) {
|
|
@@ -495,16 +495,16 @@ class Ne extends oe {
|
|
|
495
495
|
) {
|
|
496
496
|
f.remove();
|
|
497
497
|
const y = document.createRange();
|
|
498
|
-
y.setStart(c.firstChild, 0), y.collapse(!0),
|
|
498
|
+
y.setStart(c.firstChild, 0), y.collapse(!0), t.removeAllRanges(), t.addRange(y);
|
|
499
499
|
} else {
|
|
500
500
|
const y = document.createRange();
|
|
501
|
-
y.selectNodeContents(f), y.collapse(!1),
|
|
501
|
+
y.selectNodeContents(f), y.collapse(!1), t.removeAllRanges(), t.addRange(y);
|
|
502
502
|
const F = document.createDocumentFragment(), p = c.firstChild;
|
|
503
503
|
for (; c.firstChild; )
|
|
504
504
|
F.appendChild(c.firstChild);
|
|
505
505
|
y.insertNode(F), c.remove();
|
|
506
506
|
const G = document.createRange();
|
|
507
|
-
G.setStartBefore(p), G.setEndBefore(p),
|
|
507
|
+
G.setStartBefore(p), G.setEndBefore(p), t.removeAllRanges(), t.addRange(G);
|
|
508
508
|
}
|
|
509
509
|
}
|
|
510
510
|
}
|
|
@@ -535,13 +535,13 @@ class Ne extends oe {
|
|
|
535
535
|
const y = document.createElement("p");
|
|
536
536
|
y.innerHTML = "<br />", D == null || D.appendChild(y);
|
|
537
537
|
const F = document.createRange();
|
|
538
|
-
F.setStart(y.firstChild || y, 0), F.collapse(!0),
|
|
538
|
+
F.setStart(y.firstChild || y, 0), F.collapse(!0), t.removeAllRanges(), t.addRange(F);
|
|
539
539
|
} else if (c.startOffset === 0) {
|
|
540
540
|
B.preventDefault();
|
|
541
541
|
const y = document.createElement("p");
|
|
542
542
|
y.classList.add(NA), y.innerHTML = "<br />", (h = D == null ? void 0 : D.textContent) != null && h.length ? D == null || D.before(y) : D == null || D.after(y);
|
|
543
543
|
const F = document.createRange();
|
|
544
|
-
F.setStart(y.firstChild || y, 0), F.collapse(!0),
|
|
544
|
+
F.setStart(y.firstChild || y, 0), F.collapse(!0), t.removeAllRanges(), t.addRange(F);
|
|
545
545
|
} else {
|
|
546
546
|
B.preventDefault();
|
|
547
547
|
const y = document.createElement("p");
|
|
@@ -551,22 +551,22 @@ class Ne extends oe {
|
|
|
551
551
|
const p = F.extractContents();
|
|
552
552
|
y.appendChild(p), y.textContent || (y.innerHTML = "<br />"), (d = D == null ? void 0 : D.parentNode) == null || d.insertBefore(y, D.nextSibling);
|
|
553
553
|
const G = document.createRange();
|
|
554
|
-
G.setStart(y.firstChild || y, 0), G.collapse(!0),
|
|
554
|
+
G.setStart(y.firstChild || y, 0), G.collapse(!0), t.removeAllRanges(), t.addRange(G);
|
|
555
555
|
}
|
|
556
556
|
}
|
|
557
557
|
}
|
|
558
558
|
if (o.startOffset === 0 && o.endContainer.tagName === "P" && WA(o.startContainer) === WA(o.endContainer)) {
|
|
559
559
|
const c = WA(o.endContainer);
|
|
560
560
|
if (x(c)) return;
|
|
561
|
-
B.key === "Backspace" && Se(c,
|
|
561
|
+
B.key === "Backspace" && Se(c, t);
|
|
562
562
|
}
|
|
563
563
|
}
|
|
564
564
|
// 粘贴事件处理函数
|
|
565
565
|
_handlePaste(B) {
|
|
566
566
|
var o, r;
|
|
567
567
|
B.preventDefault(), ke(this._editorElement);
|
|
568
|
-
const
|
|
569
|
-
YI(this, JI(this,
|
|
568
|
+
const t = ((r = (o = B.clipboardData) == null ? void 0 : o.getData("text/plain")) == null ? void 0 : r.split(/(?:\r?\n){2,}/).map((a) => a.trim()).filter((a) => a)) ?? [];
|
|
569
|
+
YI(this, JI(this, t));
|
|
570
570
|
}
|
|
571
571
|
_handleBeforeInput(B) {
|
|
572
572
|
le(this, B);
|
|
@@ -575,26 +575,26 @@ class Ne extends oe {
|
|
|
575
575
|
ce(this, B);
|
|
576
576
|
}
|
|
577
577
|
}
|
|
578
|
-
const Kg = (I, E, B,
|
|
578
|
+
const Kg = (I, E, B, t) => {
|
|
579
579
|
if (Object.keys(E).forEach((o) => {
|
|
580
580
|
I.setAttribute(o, String(E[o]));
|
|
581
581
|
}), Object.keys(B).forEach((o) => {
|
|
582
582
|
I.dataset[o] = String(B[o]);
|
|
583
|
-
}), !x(
|
|
584
|
-
if (GB(
|
|
583
|
+
}), !x(t))
|
|
584
|
+
if (GB(t)) {
|
|
585
585
|
const o = document.createDocumentFragment(), r = document.createElement("div");
|
|
586
|
-
for (r.innerHTML =
|
|
586
|
+
for (r.innerHTML = t; r.firstChild; )
|
|
587
587
|
o.appendChild(r.firstChild);
|
|
588
588
|
I.appendChild(o);
|
|
589
589
|
} else
|
|
590
|
-
I.appendChild(
|
|
590
|
+
I.appendChild(t);
|
|
591
591
|
}, vA = (I, E) => {
|
|
592
592
|
const B = kB(E) ? E : [E];
|
|
593
|
-
let
|
|
594
|
-
for (;
|
|
595
|
-
const o =
|
|
593
|
+
let t = I;
|
|
594
|
+
for (; t; ) {
|
|
595
|
+
const o = t, r = B.map((a) => a(o)).map((a) => a ? o : null);
|
|
596
596
|
if (r.some((a) => a)) return r;
|
|
597
|
-
|
|
597
|
+
t = t.parentElement;
|
|
598
598
|
}
|
|
599
599
|
return new Array(B.length).fill(null);
|
|
600
600
|
}, WA = (I) => {
|
|
@@ -606,38 +606,38 @@ const Kg = (I, E, B, e) => {
|
|
|
606
606
|
}, hC = (I, E) => {
|
|
607
607
|
if (I === E) return [];
|
|
608
608
|
const B = [];
|
|
609
|
-
let
|
|
610
|
-
for (;
|
|
611
|
-
B.push(
|
|
609
|
+
let t = I.nextElementSibling;
|
|
610
|
+
for (; t && t !== E; )
|
|
611
|
+
B.push(t), t = t.nextElementSibling;
|
|
612
612
|
return B;
|
|
613
613
|
}, SC = (I) => {
|
|
614
614
|
const E = document.createElement("div");
|
|
615
615
|
return E.setAttribute("class", `editor-${I}-tag-modal`), E;
|
|
616
616
|
}, lg = (I, E, B) => {
|
|
617
617
|
var a, i, h;
|
|
618
|
-
const
|
|
618
|
+
const t = I.previousSibling, o = I.nextSibling, r = E ?? I.textContent ?? "";
|
|
619
619
|
if (B && // 空节点
|
|
620
|
-
(!
|
|
621
|
-
$(
|
|
622
|
-
$(
|
|
620
|
+
(!t && !o || // 相邻停顿节点
|
|
621
|
+
$(t) && t.dataset.type === q.pausation || // 相邻功能节点
|
|
622
|
+
$(t) && [
|
|
623
623
|
q.anchor,
|
|
624
624
|
q.homophones,
|
|
625
625
|
q.pausation,
|
|
626
626
|
q.pronunciation
|
|
627
|
-
].includes(
|
|
627
|
+
].includes(t.dataset.type))) {
|
|
628
628
|
$(I) && I.dataset.type !== q.pausation ? I.replaceWith(I.dataset.raw ?? "") : (a = I.parentNode) == null || a.removeChild(I);
|
|
629
629
|
return;
|
|
630
630
|
}
|
|
631
|
-
if (mA(
|
|
632
|
-
|
|
631
|
+
if (mA(t)) {
|
|
632
|
+
t.textContent += r, (i = I.parentNode) == null || i.removeChild(I), lg(t, t.textContent, !1);
|
|
633
633
|
return;
|
|
634
634
|
}
|
|
635
635
|
mA(o) && (o.textContent = r + o.textContent, (h = I.parentNode) == null || h.removeChild(I), lg(o, o.textContent, !1));
|
|
636
636
|
}, IC = (I, E) => {
|
|
637
|
-
const B = I.length,
|
|
637
|
+
const B = I.length, t = E.length, o = new Array(t).fill(0);
|
|
638
638
|
let r = o[0], a = 0, i = 0;
|
|
639
639
|
for (let h = 1; h <= B; h++) {
|
|
640
|
-
for (let d = 1; d <=
|
|
640
|
+
for (let d = 1; d <= t; d++) {
|
|
641
641
|
const c = o[d];
|
|
642
642
|
I[h - 1] === E[d - 1] ? (o[d] = r + 1, o[d] > a && (a = Math.max(a, o[d]), i = d - 1)) : o[d] = 0, r = c;
|
|
643
643
|
}
|
|
@@ -652,20 +652,20 @@ const Kg = (I, E, B, e) => {
|
|
|
652
652
|
for (; B && B.nodeName !== "P"; )
|
|
653
653
|
B = B.parentNode;
|
|
654
654
|
if (!B) return !1;
|
|
655
|
-
const
|
|
656
|
-
return
|
|
655
|
+
const t = E.cloneRange();
|
|
656
|
+
return t.setEndAfter(B), t.toString().length === 0;
|
|
657
657
|
}, ke = (I) => {
|
|
658
658
|
const E = window.getSelection();
|
|
659
659
|
if (!E.rangeCount) return;
|
|
660
660
|
const B = Array.from(I.querySelectorAll("p"));
|
|
661
661
|
if (B.length === 0) return;
|
|
662
|
-
let
|
|
662
|
+
let t = !1;
|
|
663
663
|
for (const o of B)
|
|
664
664
|
if (o.contains(E.anchorNode)) {
|
|
665
|
-
|
|
665
|
+
t = !0;
|
|
666
666
|
break;
|
|
667
667
|
}
|
|
668
|
-
if (!
|
|
668
|
+
if (!t) {
|
|
669
669
|
const o = document.createRange(), r = B[B.length - 1];
|
|
670
670
|
o.selectNodeContents(r), o.collapse(!1), E.removeAllRanges(), E.addRange(o);
|
|
671
671
|
}
|
|
@@ -677,7 +677,7 @@ const Kg = (I, E, B, e) => {
|
|
|
677
677
|
B.selectNodeContents(I), B.collapse(!1), E.removeAllRanges(), E.addRange(B);
|
|
678
678
|
}, UB = (I, E, B = 0) => {
|
|
679
679
|
if (!I || !E) return { top: 0, left: 0, width: 0, height: 0 };
|
|
680
|
-
const
|
|
680
|
+
const t = I, o = E, r = o.bottom - t.top + B, a = o.left - t.left;
|
|
681
681
|
return { top: r, left: a, width: o.width, height: o.height };
|
|
682
682
|
}, Le = (I) => {
|
|
683
683
|
const E = Array.from(
|
|
@@ -698,8 +698,8 @@ function Me(I) {
|
|
|
698
698
|
return E || (E = I()), E;
|
|
699
699
|
}
|
|
700
700
|
return B.reset = async () => {
|
|
701
|
-
const
|
|
702
|
-
E = void 0,
|
|
701
|
+
const t = E;
|
|
702
|
+
E = void 0, t && await t;
|
|
703
703
|
}, B;
|
|
704
704
|
}
|
|
705
705
|
function lB(I) {
|
|
@@ -707,7 +707,7 @@ function lB(I) {
|
|
|
707
707
|
}
|
|
708
708
|
function Je(I, E, B = {}) {
|
|
709
709
|
const {
|
|
710
|
-
immediate:
|
|
710
|
+
immediate: t = !0
|
|
711
711
|
} = B, o = yA(!1);
|
|
712
712
|
let r = null;
|
|
713
713
|
function a() {
|
|
@@ -721,7 +721,7 @@ function Je(I, E, B = {}) {
|
|
|
721
721
|
o.value = !1, r = null, I(...d);
|
|
722
722
|
}, Jg(E));
|
|
723
723
|
}
|
|
724
|
-
return
|
|
724
|
+
return t && (o.value = !0, LC && h()), pB(i), {
|
|
725
725
|
isPending: WE(o),
|
|
726
726
|
start: h,
|
|
727
727
|
stop: i
|
|
@@ -730,14 +730,14 @@ function Je(I, E, B = {}) {
|
|
|
730
730
|
function fI(I = !1, E = {}) {
|
|
731
731
|
const {
|
|
732
732
|
truthyValue: B = !0,
|
|
733
|
-
falsyValue:
|
|
733
|
+
falsyValue: t = !1
|
|
734
734
|
} = E, o = jE(I), r = yA(I);
|
|
735
735
|
function a(i) {
|
|
736
736
|
if (arguments.length)
|
|
737
737
|
return r.value = i, r.value;
|
|
738
738
|
{
|
|
739
739
|
const h = Jg(B);
|
|
740
|
-
return r.value = r.value === h ? Jg(
|
|
740
|
+
return r.value = r.value === h ? Jg(t) : h, r.value;
|
|
741
741
|
}
|
|
742
742
|
}
|
|
743
743
|
return o ? a : [r, a];
|
|
@@ -749,10 +749,10 @@ function Ye(I) {
|
|
|
749
749
|
return (E = B == null ? void 0 : B.$el) != null ? E : B;
|
|
750
750
|
}
|
|
751
751
|
function Ug(...I) {
|
|
752
|
-
let E, B,
|
|
753
|
-
if (typeof I[0] == "string" || Array.isArray(I[0]) ? ([B,
|
|
752
|
+
let E, B, t, o;
|
|
753
|
+
if (typeof I[0] == "string" || Array.isArray(I[0]) ? ([B, t, o] = I, E = MB) : [E, B, t, o] = I, !E)
|
|
754
754
|
return DC;
|
|
755
|
-
B = lB(B),
|
|
755
|
+
B = lB(B), t = lB(t);
|
|
756
756
|
const r = [], a = () => {
|
|
757
757
|
r.forEach((c) => c()), r.length = 0;
|
|
758
758
|
}, i = (c, f, u, D) => (c.addEventListener(f, u, D), () => c.removeEventListener(f, u, D)), h = gI(
|
|
@@ -762,7 +762,7 @@ function Ug(...I) {
|
|
|
762
762
|
return;
|
|
763
763
|
const u = pe(f) ? { ...f } : f;
|
|
764
764
|
r.push(
|
|
765
|
-
...B.flatMap((D) =>
|
|
765
|
+
...B.flatMap((D) => t.map((y) => i(c, D, y, u)))
|
|
766
766
|
);
|
|
767
767
|
},
|
|
768
768
|
{ immediate: !0, flush: "post" }
|
|
@@ -784,8 +784,8 @@ function YB(I) {
|
|
|
784
784
|
function dB(I, E = {}) {
|
|
785
785
|
const {
|
|
786
786
|
controls: B = !1,
|
|
787
|
-
navigator:
|
|
788
|
-
} = E, o = YB(() =>
|
|
787
|
+
navigator: t = JB
|
|
788
|
+
} = E, o = YB(() => t && "permissions" in t), r = rB(), a = typeof I == "string" ? { name: I } : I, i = rB(), h = () => {
|
|
789
789
|
var c, f;
|
|
790
790
|
i.value = (f = (c = r.value) == null ? void 0 : c.state) != null ? f : "prompt";
|
|
791
791
|
};
|
|
@@ -794,7 +794,7 @@ function dB(I, E = {}) {
|
|
|
794
794
|
if (o.value) {
|
|
795
795
|
if (!r.value)
|
|
796
796
|
try {
|
|
797
|
-
r.value = await
|
|
797
|
+
r.value = await t.permissions.query(a);
|
|
798
798
|
} catch {
|
|
799
799
|
r.value = void 0;
|
|
800
800
|
} finally {
|
|
@@ -814,7 +814,7 @@ function He(I = {}) {
|
|
|
814
814
|
const {
|
|
815
815
|
navigator: E = JB,
|
|
816
816
|
read: B = !1,
|
|
817
|
-
source:
|
|
817
|
+
source: t,
|
|
818
818
|
copiedDuring: o = 1500,
|
|
819
819
|
legacy: r = !1
|
|
820
820
|
} = I, a = YB(() => E && "clipboard" in E), i = dB("clipboard-read"), h = dB("clipboard-write"), d = pA(() => a.value || r), c = yA(""), f = yA(!1), u = Je(() => f.value = !1, o, { immediate: !1 });
|
|
@@ -824,16 +824,16 @@ function He(I = {}) {
|
|
|
824
824
|
}) : c.value = p();
|
|
825
825
|
}
|
|
826
826
|
d.value && B && Ug(["copy", "cut"], D, { passive: !0 });
|
|
827
|
-
async function y(S = Jg(
|
|
827
|
+
async function y(S = Jg(t)) {
|
|
828
828
|
d.value && S != null && (a.value && G(h.value) ? await E.clipboard.writeText(S) : F(S), c.value = S, f.value = !0, u.start());
|
|
829
829
|
}
|
|
830
830
|
function F(S) {
|
|
831
|
-
const
|
|
832
|
-
|
|
831
|
+
const J = document.createElement("textarea");
|
|
832
|
+
J.value = S ?? "", J.style.position = "absolute", J.style.opacity = "0", document.body.appendChild(J), J.select(), document.execCommand("copy"), J.remove();
|
|
833
833
|
}
|
|
834
834
|
function p() {
|
|
835
|
-
var S,
|
|
836
|
-
return (
|
|
835
|
+
var S, J, K;
|
|
836
|
+
return (K = (J = (S = document == null ? void 0 : document.getSelection) == null ? void 0 : S.call(document)) == null ? void 0 : J.toString()) != null ? K : "";
|
|
837
837
|
}
|
|
838
838
|
function G(S) {
|
|
839
839
|
return S === "granted" || S === "prompt";
|
|
@@ -855,7 +855,7 @@ function mI(I = {}) {
|
|
|
855
855
|
const {
|
|
856
856
|
type: E = "page",
|
|
857
857
|
touch: B = !0,
|
|
858
|
-
resetOnTouchEnds:
|
|
858
|
+
resetOnTouchEnds: t = !1,
|
|
859
859
|
initialValue: o = { x: 0, y: 0 },
|
|
860
860
|
window: r = MB,
|
|
861
861
|
target: a = r,
|
|
@@ -863,25 +863,25 @@ function mI(I = {}) {
|
|
|
863
863
|
eventFilter: h
|
|
864
864
|
} = I;
|
|
865
865
|
let d = null, c = 0, f = 0;
|
|
866
|
-
const u = yA(o.x), D = yA(o.y), y = yA(null), F = typeof E == "function" ? E : Ke[E], p = (
|
|
867
|
-
const W = F(
|
|
868
|
-
d =
|
|
869
|
-
}, G = (
|
|
870
|
-
if (
|
|
871
|
-
const W = F(
|
|
866
|
+
const u = yA(o.x), D = yA(o.y), y = yA(null), F = typeof E == "function" ? E : Ke[E], p = (v) => {
|
|
867
|
+
const W = F(v);
|
|
868
|
+
d = v, W && ([u.value, D.value] = W, y.value = "mouse"), r && (c = r.scrollX, f = r.scrollY);
|
|
869
|
+
}, G = (v) => {
|
|
870
|
+
if (v.touches.length > 0) {
|
|
871
|
+
const W = F(v.touches[0]);
|
|
872
872
|
W && ([u.value, D.value] = W, y.value = "touch");
|
|
873
873
|
}
|
|
874
874
|
}, S = () => {
|
|
875
875
|
if (!d || !r)
|
|
876
876
|
return;
|
|
877
|
-
const
|
|
878
|
-
d instanceof MouseEvent &&
|
|
879
|
-
},
|
|
877
|
+
const v = F(d);
|
|
878
|
+
d instanceof MouseEvent && v && (u.value = v[0] + r.scrollX - c, D.value = v[1] + r.scrollY - f);
|
|
879
|
+
}, J = () => {
|
|
880
880
|
u.value = o.x, D.value = o.y;
|
|
881
|
-
},
|
|
881
|
+
}, K = h ? (v) => h(() => p(v), {}) : (v) => p(v), P = h ? (v) => h(() => G(v), {}) : (v) => G(v), z = h ? () => h(() => S(), {}) : () => S();
|
|
882
882
|
if (a) {
|
|
883
|
-
const
|
|
884
|
-
Ug(a, ["mousemove", "dragover"],
|
|
883
|
+
const v = { passive: !0 };
|
|
884
|
+
Ug(a, ["mousemove", "dragover"], K, v), B && E !== "movement" && (Ug(a, ["touchstart", "touchmove"], P, v), t && Ug(a, "touchend", J, v)), i && E === "page" && Ug(r, "scroll", z, v);
|
|
885
885
|
}
|
|
886
886
|
return {
|
|
887
887
|
x: u,
|
|
@@ -896,7 +896,7 @@ const ve = ["onClick"], qe = /* @__PURE__ */ qA({
|
|
|
896
896
|
},
|
|
897
897
|
emits: ["ok"],
|
|
898
898
|
setup(I, { emit: E }) {
|
|
899
|
-
const B = I,
|
|
899
|
+
const B = I, t = E, [o] = ZA("pausation-tag-selector"), r = [
|
|
900
900
|
{ label: "0.5S", value: 0.5 },
|
|
901
901
|
{ label: "1S", value: 1 },
|
|
902
902
|
{ label: "1.5S", value: 1.5 },
|
|
@@ -912,7 +912,7 @@ const ve = ["onClick"], qe = /* @__PURE__ */ qA({
|
|
|
912
912
|
(aA(), cA(cg, null, fB(r, (h, d) => iA("li", {
|
|
913
913
|
key: d,
|
|
914
914
|
class: MA(uA(o)("item")),
|
|
915
|
-
onClick: (c) =>
|
|
915
|
+
onClick: (c) => t("ok", c, h.value)
|
|
916
916
|
}, AI(h.label), 11, ve)), 64))
|
|
917
917
|
], 2)), [
|
|
918
918
|
[LI, B.visible]
|
|
@@ -920,8 +920,8 @@ const ve = ["onClick"], qe = /* @__PURE__ */ qA({
|
|
|
920
920
|
}
|
|
921
921
|
}), JA = (I, E) => {
|
|
922
922
|
const B = I.__vccOpts || I;
|
|
923
|
-
for (const [
|
|
924
|
-
B[
|
|
923
|
+
for (const [t, o] of E)
|
|
924
|
+
B[t] = o;
|
|
925
925
|
return B;
|
|
926
926
|
}, mB = /* @__PURE__ */ JA(qe, [["__scopeId", "data-v-a957cba2"]]), xe = 0, pg = q.pausation, [uC] = II(pg), HB = uC("close"), { x: be, y: Te } = mI(), Pe = `<svg class="${HB}" width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
927
927
|
<g id="V1.0" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
@@ -950,8 +950,8 @@ const ve = ["onClick"], qe = /* @__PURE__ */ qA({
|
|
|
950
950
|
`
|
|
951
951
|
), E;
|
|
952
952
|
}, We = (I, E) => {
|
|
953
|
-
const B = SC(q.pausation), { onOK:
|
|
954
|
-
|
|
953
|
+
const B = SC(q.pausation), { onOK: t } = E, o = (d, c) => {
|
|
954
|
+
t == null || t(d, c), r();
|
|
955
955
|
}, r = () => {
|
|
956
956
|
h.component && (h.component.props.visible = !1);
|
|
957
957
|
}, a = (d) => {
|
|
@@ -1003,8 +1003,8 @@ class Ve extends MI {
|
|
|
1003
1003
|
Yg.warning("请输入文稿内容再插入停顿!");
|
|
1004
1004
|
return;
|
|
1005
1005
|
}
|
|
1006
|
-
const
|
|
1007
|
-
this.editor.content.insert(
|
|
1006
|
+
const t = je(B);
|
|
1007
|
+
this.editor.content.insert(t);
|
|
1008
1008
|
}
|
|
1009
1009
|
/**
|
|
1010
1010
|
* 停顿标签点击事件回调
|
|
@@ -1012,11 +1012,11 @@ class Ve extends MI {
|
|
|
1012
1012
|
*/
|
|
1013
1013
|
_triggerPausationTagClick(B) {
|
|
1014
1014
|
var a;
|
|
1015
|
-
const
|
|
1016
|
-
|
|
1015
|
+
const t = B.target, [o] = vA(
|
|
1016
|
+
t,
|
|
1017
1017
|
(i) => i.tagName === "svg" && i.classList.contains(HB)
|
|
1018
1018
|
), [r] = vA(
|
|
1019
|
-
|
|
1019
|
+
t,
|
|
1020
1020
|
(i) => i.tagName === "SPAN" && i.dataset.type === pg
|
|
1021
1021
|
);
|
|
1022
1022
|
if (o || x(r)) {
|
|
@@ -1056,15 +1056,15 @@ const Oe = { style: { display: "none" } }, Xe = /* @__PURE__ */ qA({
|
|
|
1056
1056
|
},
|
|
1057
1057
|
emits: ["ok", "cancel"],
|
|
1058
1058
|
setup(I, { emit: E }) {
|
|
1059
|
-
const B = I,
|
|
1059
|
+
const B = I, t = E, [o] = ZA("pronunciationor"), r = (h) => {
|
|
1060
1060
|
var d;
|
|
1061
1061
|
if (i.value = (d = i.value) == null ? void 0 : d.trim(), !/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(i.value)) {
|
|
1062
1062
|
Yg.warning({ id: "message-replacer", content: "不能使用特殊字符替换读音!" });
|
|
1063
1063
|
return;
|
|
1064
1064
|
}
|
|
1065
|
-
|
|
1065
|
+
t("ok", h, i.value ?? "", B.oldText);
|
|
1066
1066
|
}, a = (h) => {
|
|
1067
|
-
|
|
1067
|
+
t("cancel", h);
|
|
1068
1068
|
}, i = yA();
|
|
1069
1069
|
return gI([() => B.visible, () => B.oldText, () => B.modelValue], () => {
|
|
1070
1070
|
i.value = B.modelValue;
|
|
@@ -1166,7 +1166,7 @@ const kg = q.pronunciation, [Sg] = II(kg), KB = Sg("close"), { x: _e, y: $e } =
|
|
|
1166
1166
|
</g>
|
|
1167
1167
|
</g>
|
|
1168
1168
|
</svg>`, gt = (I, E) => {
|
|
1169
|
-
const B = SC(q.pronunciation), { oldText:
|
|
1169
|
+
const B = SC(q.pronunciation), { oldText: t, onOk: o, onCancel: r, onTryPlay: a } = E, i = (y, F, p) => {
|
|
1170
1170
|
o == null || o(y, F, p), d();
|
|
1171
1171
|
}, h = (y) => {
|
|
1172
1172
|
r == null || r(y), d();
|
|
@@ -1179,7 +1179,7 @@ const kg = q.pronunciation, [Sg] = II(kg), KB = Sg("close"), { x: _e, y: $e } =
|
|
|
1179
1179
|
}, D = N(I, {
|
|
1180
1180
|
visible: !1,
|
|
1181
1181
|
modelValue: void 0,
|
|
1182
|
-
oldText:
|
|
1182
|
+
oldText: t,
|
|
1183
1183
|
onOk: i,
|
|
1184
1184
|
onCancel: h,
|
|
1185
1185
|
onTryPlay: (y, F, p) => {
|
|
@@ -1210,11 +1210,11 @@ class It extends MI {
|
|
|
1210
1210
|
}
|
|
1211
1211
|
_triggerPronunciationTagClick(B) {
|
|
1212
1212
|
var a;
|
|
1213
|
-
const
|
|
1214
|
-
|
|
1213
|
+
const t = B.target, [o] = vA(
|
|
1214
|
+
t,
|
|
1215
1215
|
(i) => i.tagName === "svg" && i.classList.contains(KB)
|
|
1216
1216
|
), [r] = vA(
|
|
1217
|
-
|
|
1217
|
+
t,
|
|
1218
1218
|
(i) => i.tagName === "SPAN" && i.dataset.type === kg
|
|
1219
1219
|
);
|
|
1220
1220
|
if (o || x(r)) {
|
|
@@ -1239,9 +1239,9 @@ class It extends MI {
|
|
|
1239
1239
|
});
|
|
1240
1240
|
}
|
|
1241
1241
|
_insertPronunciationTag(B) {
|
|
1242
|
-
const
|
|
1242
|
+
const t = document.createElement("span"), o = this.editor.cursor.getRangeContent();
|
|
1243
1243
|
Kg(
|
|
1244
|
-
|
|
1244
|
+
t,
|
|
1245
1245
|
{ class: Sg(), contenteditable: !1 },
|
|
1246
1246
|
{
|
|
1247
1247
|
type: kg,
|
|
@@ -1256,7 +1256,7 @@ class It extends MI {
|
|
|
1256
1256
|
${At}
|
|
1257
1257
|
</span>
|
|
1258
1258
|
`
|
|
1259
|
-
), this.editor.content.update(
|
|
1259
|
+
), this.editor.content.update(t);
|
|
1260
1260
|
}
|
|
1261
1261
|
setup() {
|
|
1262
1262
|
}
|
|
@@ -1295,8 +1295,8 @@ class Ct extends MI {
|
|
|
1295
1295
|
this._insertOverlapAnchor(B) || this._insertAnchorTag(B.anchor);
|
|
1296
1296
|
}
|
|
1297
1297
|
remove(B) {
|
|
1298
|
-
const { top:
|
|
1299
|
-
i > -1 && this.data[
|
|
1298
|
+
const { top: t, id: o, uid: r } = B.dataset, a = o.split("_")[1], i = this.data[t].findIndex((c) => c.data.uid ? c.data.uid === r : c.id === Number(a));
|
|
1299
|
+
i > -1 && this.data[t].splice(i, 1);
|
|
1300
1300
|
const h = Array.from(B.childNodes);
|
|
1301
1301
|
if (h.every((c) => mA(c))) {
|
|
1302
1302
|
B.replaceWith(B.textContent), this.editor._editorElement.normalize();
|
|
@@ -1306,46 +1306,46 @@ class Ct extends MI {
|
|
|
1306
1306
|
h.forEach((c) => d.appendChild(c)), B.replaceWith(d), this.editor._editorElement.normalize();
|
|
1307
1307
|
}
|
|
1308
1308
|
_insertOverlapAnchor(B) {
|
|
1309
|
-
const { range:
|
|
1310
|
-
if (x(
|
|
1311
|
-
const o = (
|
|
1309
|
+
const { range: t } = this.editor.cursor;
|
|
1310
|
+
if (x(t)) return !1;
|
|
1311
|
+
const o = (v) => {
|
|
1312
1312
|
var W;
|
|
1313
|
-
return Array.prototype.indexOf.call((W =
|
|
1314
|
-
}, r = (
|
|
1315
|
-
let W =
|
|
1313
|
+
return Array.prototype.indexOf.call((W = v.parentNode) == null ? void 0 : W.childNodes, v);
|
|
1314
|
+
}, r = (v) => {
|
|
1315
|
+
let W = v;
|
|
1316
1316
|
for (; W && !($(W.parentNode) && W.parentNode.tagName === "P"); )
|
|
1317
1317
|
W = W.parentNode;
|
|
1318
1318
|
return W;
|
|
1319
|
-
}, a = (
|
|
1320
|
-
let
|
|
1319
|
+
}, a = (v) => v.some((W) => $(W) && W.classList.contains(zg())), i = () => {
|
|
1320
|
+
let v, W;
|
|
1321
1321
|
const EA = S.length === 1;
|
|
1322
1322
|
S.forEach((CA, nA) => {
|
|
1323
1323
|
if (nA === 0) {
|
|
1324
1324
|
const kA = () => {
|
|
1325
|
-
var
|
|
1326
|
-
const AA = (
|
|
1325
|
+
var H, O, X;
|
|
1326
|
+
const AA = (H = getSelection()) == null ? void 0 : H.getRangeAt(0), fA = AA == null ? void 0 : AA.startContainer, U = AA == null ? void 0 : AA.endContainer;
|
|
1327
1327
|
if (x(AA) || x(U) || x(fA))
|
|
1328
1328
|
return null;
|
|
1329
1329
|
if (fA === U) {
|
|
1330
1330
|
if ($(fA) && fA.classList.contains(zg())) {
|
|
1331
|
-
const
|
|
1331
|
+
const M = document.createDocumentFragment(), m = AA.endContainer, dA = m.cloneNode(!1), wA = m.childNodes[AA.endOffset];
|
|
1332
1332
|
for (; m.firstChild && m.firstChild !== wA; )
|
|
1333
|
-
|
|
1334
|
-
return dA.appendChild(
|
|
1333
|
+
M.appendChild(m.firstChild);
|
|
1334
|
+
return dA.appendChild(M), (O = m.parentNode) == null || O.insertBefore(dA, m), m;
|
|
1335
1335
|
}
|
|
1336
1336
|
if (mA(fA)) {
|
|
1337
|
-
const
|
|
1337
|
+
const M = fA.textContent;
|
|
1338
1338
|
let m = fA.parentNode, dA = AA.startContainer;
|
|
1339
1339
|
m.dataset.type === q.highlight && (dA = m.nextSibling, m = m.parentNode);
|
|
1340
1340
|
const wA = m.cloneNode(!1), RA = document.createDocumentFragment();
|
|
1341
1341
|
for (; m.firstChild && m.firstChild !== dA; )
|
|
1342
1342
|
RA.appendChild(m.firstChild);
|
|
1343
|
-
return wA.appendChild(RA), wA.appendChild(document.createTextNode(
|
|
1343
|
+
return wA.appendChild(RA), wA.appendChild(document.createTextNode(M.slice(0, AA.startOffset))), fA.replaceWith(M.slice(AA.startOffset)), (X = m.parentNode) == null || X.insertBefore(wA, m), m;
|
|
1344
1344
|
}
|
|
1345
1345
|
}
|
|
1346
1346
|
return $(U) && U.classList.contains(NA) ? U.childNodes[AA.endOffset] : U;
|
|
1347
1347
|
};
|
|
1348
|
-
[
|
|
1348
|
+
[J, K, P, z] = h(
|
|
1349
1349
|
CA,
|
|
1350
1350
|
c,
|
|
1351
1351
|
f,
|
|
@@ -1357,7 +1357,7 @@ class Ct extends MI {
|
|
|
1357
1357
|
return;
|
|
1358
1358
|
}
|
|
1359
1359
|
if (nA === S.length - 1) {
|
|
1360
|
-
[
|
|
1360
|
+
[v, W, P, z] = h(
|
|
1361
1361
|
CA,
|
|
1362
1362
|
CA[0],
|
|
1363
1363
|
0,
|
|
@@ -1377,58 +1377,58 @@ class Ct extends MI {
|
|
|
1377
1377
|
null
|
|
1378
1378
|
);
|
|
1379
1379
|
});
|
|
1380
|
-
}, h = (
|
|
1380
|
+
}, h = (v, W, EA, CA, nA, kA, AA) => {
|
|
1381
1381
|
var Z, eA, BA, tA;
|
|
1382
|
-
const fA = Array.isArray(AA) ? AA : [AA], [U] =
|
|
1383
|
-
|
|
1384
|
-
const O =
|
|
1385
|
-
Array.from(
|
|
1382
|
+
const fA = Array.isArray(AA) ? AA : [AA], [U] = v, H = document.createRange();
|
|
1383
|
+
H.setStart(W, EA), H.setEnd(CA, nA), (Z = getSelection()) == null || Z.removeAllRanges(), (eA = getSelection()) == null || eA.addRange(H);
|
|
1384
|
+
const O = H.startContainer === H.endContainer && ((tA = (BA = H.startContainer.parentElement) == null ? void 0 : BA.dataset) == null ? void 0 : tA.type) === q.highlight ? H.startContainer.parentElement.cloneNode(!1) : null, X = H.cloneContents(), M = document.createDocumentFragment();
|
|
1385
|
+
Array.from(X.childNodes).forEach((DA) => {
|
|
1386
1386
|
if (!$(DA) || !DA.classList.contains(zg())) {
|
|
1387
|
-
O && O.appendChild(DA),
|
|
1387
|
+
O && O.appendChild(DA), M.appendChild(O ?? DA);
|
|
1388
1388
|
return;
|
|
1389
1389
|
}
|
|
1390
|
-
|
|
1390
|
+
M.append(...Array.from(DA.childNodes));
|
|
1391
1391
|
});
|
|
1392
1392
|
let m = document.createTextNode(""), dA = 0, wA = document.createTextNode(""), RA = 0;
|
|
1393
|
-
return fA.includes("start") && (m =
|
|
1394
|
-
}, d = async (
|
|
1393
|
+
return fA.includes("start") && (m = M.firstChild, dA = 0), fA.includes("end") && (wA = M.lastChild, RA = mA(wA) ? wA.data.length : $(M.lastChild) && M.lastChild.dataset.type === q.highlight ? M.lastChild.childNodes.length : M.childNodes.length), H.deleteContents(), U.insertBefore(M, typeof kA == "function" ? kA() : kA), [m, dA, wA, RA];
|
|
1394
|
+
}, d = async (v) => {
|
|
1395
1395
|
var EA, CA;
|
|
1396
1396
|
const W = document.createRange();
|
|
1397
|
-
|
|
1398
|
-
}, { startContainer: c, startOffset: f, endContainer: u, endOffset: D } =
|
|
1399
|
-
let EA = [], CA = 0, nA =
|
|
1397
|
+
J === P && $(J) && J.dataset.type === q.highlight ? W.selectNode(J) : (W.setStart(J, K), W.setEnd(P, z)), (EA = getSelection()) == null || EA.removeAllRanges(), (CA = getSelection()) == null || CA.addRange(W), this.editor.cursor.range = W, this._insertAnchorTag(B.anchor, v);
|
|
1398
|
+
}, { startContainer: c, startOffset: f, endContainer: u, endOffset: D } = t, y = r(u), F = WA(c), p = WA(u), G = F === p ? [F] : [F, ...hC(F, p), p], S = G.map((v, W) => {
|
|
1399
|
+
let EA = [], CA = 0, nA = v.childNodes.length;
|
|
1400
1400
|
switch (W) {
|
|
1401
1401
|
case 0: {
|
|
1402
1402
|
CA = $(c) && c.classList.contains(NA) ? 0 : o(r(c)), nA = // 同一段落
|
|
1403
1403
|
G.length - 1 === W && // 非P段落
|
|
1404
|
-
!($(u) && u.classList.contains(NA)) ? o(r(u)) + 1 :
|
|
1404
|
+
!($(u) && u.classList.contains(NA)) ? o(r(u)) + 1 : v.childNodes.length, EA = Array.from(v.childNodes).slice(CA, nA);
|
|
1405
1405
|
break;
|
|
1406
1406
|
}
|
|
1407
1407
|
case G.length - 1:
|
|
1408
|
-
CA = 0, nA = $(u) && u.classList.contains(NA) ?
|
|
1408
|
+
CA = 0, nA = $(u) && u.classList.contains(NA) ? v.childNodes.length : o(r(u)) + 1, EA = Array.from(v.childNodes).slice(0, nA);
|
|
1409
1409
|
break;
|
|
1410
1410
|
default:
|
|
1411
|
-
CA = 0, nA =
|
|
1411
|
+
CA = 0, nA = v.childNodes.length, EA = Array.from(v.childNodes).slice(CA, nA);
|
|
1412
1412
|
break;
|
|
1413
1413
|
}
|
|
1414
|
-
return [
|
|
1414
|
+
return [v, a(EA)];
|
|
1415
1415
|
});
|
|
1416
|
-
let
|
|
1417
|
-
return S.some(([
|
|
1416
|
+
let J, K = 0, P, z = 0;
|
|
1417
|
+
return S.some(([v, W]) => W) ? (i(), d(y), !0) : !1;
|
|
1418
1418
|
}
|
|
1419
|
-
_recordAnchor(B,
|
|
1419
|
+
_recordAnchor(B, t, o, r) {
|
|
1420
1420
|
const a = this.data[o] ?? (this.data[o] = []);
|
|
1421
|
-
B.id =
|
|
1421
|
+
B.id = t, B.top = o, a.push({ background: r, data: B, id: t });
|
|
1422
1422
|
}
|
|
1423
1423
|
get _newAnchorId() {
|
|
1424
|
-
const B = Object.values(this.data).flat().map((
|
|
1424
|
+
const B = Object.values(this.data).flat().map((t) => t.id);
|
|
1425
1425
|
return B.length ? Math.max(...B) + 1 : 1;
|
|
1426
1426
|
}
|
|
1427
|
-
_insertAnchorTag(B,
|
|
1428
|
-
const o = this._newAnchorId, r = String(Date.now()), a = vB[(o - 1) % 10], i = this.editor.cursor.range, { startContainer: h, startOffset: d, endContainer: c, endOffset: f } = i, u = (
|
|
1429
|
-
const
|
|
1427
|
+
_insertAnchorTag(B, t) {
|
|
1428
|
+
const o = this._newAnchorId, r = String(Date.now()), a = vB[(o - 1) % 10], i = this.editor.cursor.range, { startContainer: h, startOffset: d, endContainer: c, endOffset: f } = i, u = (J) => $(J) && J.tagName === "DIV" ? J.firstElementChild : $(J) && J.tagName === "P" ? J : WA(J), D = (J) => {
|
|
1429
|
+
const K = document.createElement("span");
|
|
1430
1430
|
return Kg(
|
|
1431
|
-
|
|
1431
|
+
K,
|
|
1432
1432
|
{
|
|
1433
1433
|
class: zg(),
|
|
1434
1434
|
style: `background-color: ${a}`
|
|
@@ -1447,15 +1447,15 @@ class Ct extends MI {
|
|
|
1447
1447
|
name: B.name,
|
|
1448
1448
|
uid: r
|
|
1449
1449
|
},
|
|
1450
|
-
|
|
1451
|
-
),
|
|
1452
|
-
}, y = (
|
|
1450
|
+
J
|
|
1451
|
+
), K;
|
|
1452
|
+
}, y = (J, K, P, z, v = !1) => {
|
|
1453
1453
|
const W = document.createRange();
|
|
1454
|
-
if (F(
|
|
1455
|
-
W.selectNode(Array.from(
|
|
1454
|
+
if (F(J, P))
|
|
1455
|
+
W.selectNode(Array.from(J.childNodes).slice(K, z)[0]);
|
|
1456
1456
|
else {
|
|
1457
|
-
const AA = $(P) && [q.pausation].includes(P.dataset.type) ? P.childNodes.length :
|
|
1458
|
-
$(
|
|
1457
|
+
const AA = $(P) && [q.pausation].includes(P.dataset.type) ? P.childNodes.length : z;
|
|
1458
|
+
$(J) && J.tagName === "P" ? (W.setStart(J.firstChild, 0), W.setEnd(J, J.childNodes.length)) : (W.setStart(J, K), W.setEnd(P, AA));
|
|
1459
1459
|
}
|
|
1460
1460
|
const EA = window.getSelection();
|
|
1461
1461
|
EA.removeAllRanges(), EA.addRange(W), this.editor.cursor.range = W;
|
|
@@ -1464,24 +1464,24 @@ class Ct extends MI {
|
|
|
1464
1464
|
const nA = D(CA.innerHTML);
|
|
1465
1465
|
this.editor.content.update(nA);
|
|
1466
1466
|
const kA = this._calcTopValue(nA.getBoundingClientRect());
|
|
1467
|
-
return nA.dataset.top = String(kA), B.uid = nA.dataset.uid,
|
|
1468
|
-
}, F = (
|
|
1469
|
-
var P,
|
|
1470
|
-
return $(
|
|
1471
|
-
((
|
|
1467
|
+
return nA.dataset.top = String(kA), B.uid = nA.dataset.uid, v && this._recordAnchor(B, o, kA, a), nA;
|
|
1468
|
+
}, F = (J, K) => {
|
|
1469
|
+
var P, z;
|
|
1470
|
+
return $(J) && J.tagName === "P" && J === K && // @ts-ignore
|
|
1471
|
+
((z = (P = Array.from(J.childNodes).slice(i.startOffset, i.endOffset)[0]) == null ? void 0 : P.dataset) == null ? void 0 : z.type) === q.highlight;
|
|
1472
1472
|
}, p = u(h), G = u(c), S = hC(p, G);
|
|
1473
1473
|
if (p === G) {
|
|
1474
|
-
const
|
|
1474
|
+
const J = F(h, c);
|
|
1475
1475
|
y(
|
|
1476
|
-
|
|
1477
|
-
|
|
1476
|
+
J ? h : $(h) && h.tagName === "P" ? h.firstChild : h,
|
|
1477
|
+
J ? d : $(h) && h.tagName === "P" ? 0 : d,
|
|
1478
1478
|
c,
|
|
1479
1479
|
f,
|
|
1480
1480
|
!0
|
|
1481
|
-
), this._fixedAnchorSelection(
|
|
1481
|
+
), this._fixedAnchorSelection(t), this._fixedAnchorOrder(B), this._fixedAnchorHighlightContent();
|
|
1482
1482
|
return;
|
|
1483
1483
|
}
|
|
1484
|
-
y(h, d, p, p.childNodes.length, !0), S.forEach((
|
|
1484
|
+
y(h, d, p, p.childNodes.length, !0), S.forEach((J) => y(J, 0, J, J.childNodes.length)), y(G.firstChild, 0, c, f, !1), this._fixedAnchorSelection(t), this._fixedAnchorOrder(B), this._fixedAnchorHighlightContent();
|
|
1485
1485
|
}
|
|
1486
1486
|
_isIntersectOtherAnchors() {
|
|
1487
1487
|
const { range: B } = this.editor.cursor;
|
|
@@ -1493,9 +1493,9 @@ class Ct extends MI {
|
|
|
1493
1493
|
_fixedAnchorSelection(B) {
|
|
1494
1494
|
var y;
|
|
1495
1495
|
if (!($(B) && B.classList.contains(zg()))) return;
|
|
1496
|
-
const
|
|
1496
|
+
const t = B, o = Array.from(
|
|
1497
1497
|
document.querySelectorAll(`.tag-${q.anchor}`)
|
|
1498
|
-
), r =
|
|
1498
|
+
), r = t.dataset.id, a = Number((y = t.dataset.id) == null ? void 0 : y.split("_")[1]), i = o.indexOf(t), h = this._calcTopValue(t.getBoundingClientRect()), d = [];
|
|
1499
1499
|
if (i < 0) return;
|
|
1500
1500
|
for (let F = i; F < o.length && r === o[F].dataset.id; F++)
|
|
1501
1501
|
d.push(o[F]);
|
|
@@ -1505,16 +1505,16 @@ class Ct extends MI {
|
|
|
1505
1505
|
}), this._recordAnchor(D.data, D.id, h, f.background);
|
|
1506
1506
|
}
|
|
1507
1507
|
_fixedAnchorOrder(B) {
|
|
1508
|
-
const
|
|
1508
|
+
const t = this.data[B.top], r = Array.from(document.querySelectorAll(`span[data-top="${B.top}"]`)).map((a) => [Number(a.dataset.id.split("_")[1]), a.dataset.uid]).reduce((a, i) => {
|
|
1509
1509
|
const [h, d] = i;
|
|
1510
1510
|
return d ? (a.push(
|
|
1511
|
-
...
|
|
1512
|
-
|
|
1511
|
+
...t.splice(
|
|
1512
|
+
t.findIndex((c) => c.data.uid === d),
|
|
1513
1513
|
1
|
|
1514
1514
|
)
|
|
1515
1515
|
), a) : (a.push(
|
|
1516
|
-
...
|
|
1517
|
-
|
|
1516
|
+
...t.splice(
|
|
1517
|
+
t.findIndex((c) => c.data.id === h && !c.data.uid),
|
|
1518
1518
|
1
|
|
1519
1519
|
)
|
|
1520
1520
|
), a);
|
|
@@ -1542,7 +1542,7 @@ class Ct extends MI {
|
|
|
1542
1542
|
async _syncAnchorTopValue() {
|
|
1543
1543
|
const B = Array.from(
|
|
1544
1544
|
this.editor.element.querySelectorAll(`span[data-type="${Lg}"]`)
|
|
1545
|
-
),
|
|
1545
|
+
), t = B.reduce((a, i) => {
|
|
1546
1546
|
const h = i.dataset.uid ?? i.dataset.id.split("_")[1];
|
|
1547
1547
|
if (a.has(h))
|
|
1548
1548
|
return i.dataset.top = String(a.get(h)), a;
|
|
@@ -1551,7 +1551,7 @@ class Ct extends MI {
|
|
|
1551
1551
|
}, /* @__PURE__ */ new Map()), o = Object.values(this.data).flat().filter((a) => B.some((i) => i.dataset.uid ? i.dataset.uid === a.data.uid : Number(i.dataset.id.split("_")[1]) === a.id));
|
|
1552
1552
|
Object.keys(this.data).forEach((a) => delete this.data[a]);
|
|
1553
1553
|
const r = o.reduce((a, i) => {
|
|
1554
|
-
const h = i.data.uid ?? i.id, d =
|
|
1554
|
+
const h = i.data.uid ?? i.id, d = t.get(String(h)), c = a[d] ?? (a[d] = []);
|
|
1555
1555
|
return i.data.top = d, c.push(i), a;
|
|
1556
1556
|
}, {});
|
|
1557
1557
|
Object.keys(r).forEach((a) => this.data[a] = r[a]);
|
|
@@ -1566,8 +1566,8 @@ class Ct extends MI {
|
|
|
1566
1566
|
});
|
|
1567
1567
|
}
|
|
1568
1568
|
destroy() {
|
|
1569
|
-
var B,
|
|
1570
|
-
(B = this.observer) == null || B.disconnect(), this.observer = null, (
|
|
1569
|
+
var B, t;
|
|
1570
|
+
(B = this.observer) == null || B.disconnect(), this.observer = null, (t = this.resizeObserver) == null || t.disconnect(), this.resizeObserver = null;
|
|
1571
1571
|
}
|
|
1572
1572
|
}
|
|
1573
1573
|
const Bt = ["onClick"], Qt = /* @__PURE__ */ qA({
|
|
@@ -1579,8 +1579,8 @@ const Bt = ["onClick"], Qt = /* @__PURE__ */ qA({
|
|
|
1579
1579
|
},
|
|
1580
1580
|
emits: ["ok", "cancel"],
|
|
1581
1581
|
setup(I, { emit: E }) {
|
|
1582
|
-
const B = I,
|
|
1583
|
-
|
|
1582
|
+
const B = I, t = E, [o] = ZA("homophones"), r = (a, i) => {
|
|
1583
|
+
t("ok", a, i);
|
|
1584
1584
|
};
|
|
1585
1585
|
return (a, i) => SI((aA(), cA("ul", {
|
|
1586
1586
|
class: MA(uA(o)()),
|
|
@@ -1610,7 +1610,7 @@ const Bt = ["onClick"], Qt = /* @__PURE__ */ qA({
|
|
|
1610
1610
|
</g>
|
|
1611
1611
|
</g>
|
|
1612
1612
|
</g>
|
|
1613
|
-
</svg>`, it = (I, E, B,
|
|
1613
|
+
</svg>`, it = (I, E, B, t, o) => {
|
|
1614
1614
|
const r = document.createElement("span");
|
|
1615
1615
|
return Kg(
|
|
1616
1616
|
r,
|
|
@@ -1621,7 +1621,7 @@ const Bt = ["onClick"], Qt = /* @__PURE__ */ qA({
|
|
|
1621
1621
|
value: E,
|
|
1622
1622
|
formattedValue: B,
|
|
1623
1623
|
raw: I,
|
|
1624
|
-
data:
|
|
1624
|
+
data: t.join(),
|
|
1625
1625
|
formattedData: o.join()
|
|
1626
1626
|
},
|
|
1627
1627
|
`
|
|
@@ -1630,7 +1630,7 @@ const Bt = ["onClick"], Qt = /* @__PURE__ */ qA({
|
|
|
1630
1630
|
`
|
|
1631
1631
|
), r;
|
|
1632
1632
|
}, rt = (I, E) => {
|
|
1633
|
-
const B = SC(q.homophones), { word:
|
|
1633
|
+
const B = SC(q.homophones), { word: t, data: o, onOK: r, onCancel: a } = E, i = (D, y) => {
|
|
1634
1634
|
r == null || r(D, y), d();
|
|
1635
1635
|
}, h = (D) => {
|
|
1636
1636
|
a == null || a(D), d();
|
|
@@ -1641,16 +1641,16 @@ const Bt = ["onClick"], Qt = /* @__PURE__ */ qA({
|
|
|
1641
1641
|
if (u.component) {
|
|
1642
1642
|
let p = ot.value, G = tt.value;
|
|
1643
1643
|
if (D.popupContainer) {
|
|
1644
|
-
const { offsetTop: S, offsetLeft:
|
|
1645
|
-
p = S +
|
|
1644
|
+
const { offsetTop: S, offsetLeft: J, offsetHeight: K, offsetWidth: P } = D.popupContainer;
|
|
1645
|
+
p = S + K + 5 + (((y = D.extraPos) == null ? void 0 : y.top) ?? 0), G = J - (88 - P) / 2 + (((F = D.extraPos) == null ? void 0 : F.left) ?? 0);
|
|
1646
1646
|
}
|
|
1647
|
-
B.setAttribute("style", `top: ${p}px; left: ${G}px`), Object.entries(D).forEach(([S,
|
|
1648
|
-
u.component.props[S] =
|
|
1647
|
+
B.setAttribute("style", `top: ${p}px; left: ${G}px`), Object.entries(D).forEach(([S, J]) => {
|
|
1648
|
+
u.component.props[S] = J;
|
|
1649
1649
|
});
|
|
1650
1650
|
}
|
|
1651
1651
|
}, u = N(I, {
|
|
1652
1652
|
visible: !1,
|
|
1653
|
-
word:
|
|
1653
|
+
word: t,
|
|
1654
1654
|
data: o,
|
|
1655
1655
|
onOk: i,
|
|
1656
1656
|
onCancel: h
|
|
@@ -1672,9 +1672,9 @@ class at extends MI {
|
|
|
1672
1672
|
this.editor = B, this.name = `tiny-peony-plugin__${Mg}-tag`, this.prefix = Mg, this.modalInstance = null, this.data = [], this._triggerHomophonesTagClick = this._triggerHomophonesTagClick.bind(this), document.body.addEventListener("click", this._triggerHomophonesTagClick);
|
|
1673
1673
|
}
|
|
1674
1674
|
add(B) {
|
|
1675
|
-
const
|
|
1676
|
-
x(
|
|
1677
|
-
this._calc(
|
|
1675
|
+
const t = this.editor.cursor.range;
|
|
1676
|
+
x(t) || B.forEach((o) => {
|
|
1677
|
+
this._calc(t.startContainer, t.startOffset, o);
|
|
1678
1678
|
});
|
|
1679
1679
|
}
|
|
1680
1680
|
remove(B) {
|
|
@@ -1682,11 +1682,11 @@ class at extends MI {
|
|
|
1682
1682
|
}
|
|
1683
1683
|
_triggerHomophonesTagClick(B) {
|
|
1684
1684
|
var a, i, h;
|
|
1685
|
-
const
|
|
1686
|
-
|
|
1685
|
+
const t = B.target, [o] = vA(
|
|
1686
|
+
t,
|
|
1687
1687
|
(d) => d.tagName === "svg" && d.classList.contains(qB)
|
|
1688
1688
|
), [r] = vA(
|
|
1689
|
-
|
|
1689
|
+
t,
|
|
1690
1690
|
(d) => d.tagName === "SPAN" && d.dataset.type === Mg
|
|
1691
1691
|
);
|
|
1692
1692
|
if (o || x(r)) {
|
|
@@ -1718,7 +1718,7 @@ class at extends MI {
|
|
|
1718
1718
|
});
|
|
1719
1719
|
}
|
|
1720
1720
|
_insertHomophonesTag(B) {
|
|
1721
|
-
const
|
|
1721
|
+
const t = this.editor.content.getParas(), o = (r, a, i) => {
|
|
1722
1722
|
var d;
|
|
1723
1723
|
let h = a;
|
|
1724
1724
|
for (let c = 0; c < r.length; c++) {
|
|
@@ -1747,12 +1747,12 @@ class at extends MI {
|
|
|
1747
1747
|
}
|
|
1748
1748
|
};
|
|
1749
1749
|
B.forEach((r) => {
|
|
1750
|
-
const a =
|
|
1750
|
+
const a = t[r.paraIndex], i = Array.from(a.childNodes);
|
|
1751
1751
|
o(i, -1, r);
|
|
1752
1752
|
});
|
|
1753
1753
|
}
|
|
1754
1754
|
// 累计计算并更新索引属性
|
|
1755
|
-
_calc(B,
|
|
1755
|
+
_calc(B, t, o) {
|
|
1756
1756
|
const r = window.getSelection(), a = document.createRange();
|
|
1757
1757
|
if (B.nodeType === Node.TEXT_NODE) {
|
|
1758
1758
|
const i = it(
|
|
@@ -1762,7 +1762,7 @@ class at extends MI {
|
|
|
1762
1762
|
o.pinyin1,
|
|
1763
1763
|
o.pinyin2
|
|
1764
1764
|
);
|
|
1765
|
-
a.selectNode(B), a.setStart(B,
|
|
1765
|
+
a.selectNode(B), a.setStart(B, t), a.setEnd(B, t + 1), a.deleteContents(), a.insertNode(i), r == null || r.removeAllRanges(), r == null || r.addRange(a), this.editor.cursor.toEnd(i);
|
|
1766
1766
|
}
|
|
1767
1767
|
$(B) && B.dataset.type === q.homophones && (B.dataset.value = o.modify, B.firstElementChild.innerHTML = `${o.word}[${o.modify}]`);
|
|
1768
1768
|
}
|
|
@@ -1777,16 +1777,16 @@ const st = {
|
|
|
1777
1777
|
withAuditHighlight: !1,
|
|
1778
1778
|
withRefineHighlight: !1
|
|
1779
1779
|
}, fg = Symbol("Editor"), UC = "highlight", [ct] = II("audit-highlight"), yC = ct(), xB = (I, E) => {
|
|
1780
|
-
const [B,
|
|
1780
|
+
const [B, t] = E.split("_").map((r, a) => a ? r : Number(r)), o = Array.from(
|
|
1781
1781
|
I.element.querySelectorAll(`span[data-frag-id="anchor_${B}"]`)
|
|
1782
1782
|
);
|
|
1783
|
-
return
|
|
1783
|
+
return t ? o.filter((r) => r.dataset.uid === t) : o.filter((r) => !r.dataset.uid);
|
|
1784
1784
|
}, lt = (I) => I.classList.contains(UC), dt = (I, E) => {
|
|
1785
|
-
xB(I, E).forEach((
|
|
1786
|
-
!lt(
|
|
1785
|
+
xB(I, E).forEach((t) => {
|
|
1786
|
+
!lt(t) && t.classList.add(UC);
|
|
1787
1787
|
});
|
|
1788
1788
|
}, wt = (I, E) => {
|
|
1789
|
-
xB(I, E).forEach((
|
|
1789
|
+
xB(I, E).forEach((t) => t.classList.remove(UC));
|
|
1790
1790
|
}, ht = (I, E) => {
|
|
1791
1791
|
gI(
|
|
1792
1792
|
() => E.listenAnchorId,
|
|
@@ -1801,7 +1801,7 @@ const st = {
|
|
|
1801
1801
|
{ class: yC },
|
|
1802
1802
|
{ type: q.highlight, raw: i }
|
|
1803
1803
|
), h;
|
|
1804
|
-
},
|
|
1804
|
+
}, t = (i) => {
|
|
1805
1805
|
var c;
|
|
1806
1806
|
return (((c = I.value) == null ? void 0 : c.content.getTextContent()) ?? []).reduce((f, u, D) => {
|
|
1807
1807
|
const y = [];
|
|
@@ -1897,7 +1897,7 @@ const st = {
|
|
|
1897
1897
|
F.setStart(D.node, D.startOffset), F.setEnd(D.node, D.endOffset), F.surroundContents(B(D.matchedContent)), y.removeAllRanges(), y.addRange(F), F.collapse(!1);
|
|
1898
1898
|
});
|
|
1899
1899
|
};
|
|
1900
|
-
|
|
1900
|
+
t(i).forEach(h);
|
|
1901
1901
|
},
|
|
1902
1902
|
unrenderHighlight: () => {
|
|
1903
1903
|
var h;
|
|
@@ -1910,16 +1910,16 @@ const st = {
|
|
|
1910
1910
|
}
|
|
1911
1911
|
};
|
|
1912
1912
|
}, Dt = Symbol("ArcoConfigProvider"), ut = "arco", yt = "$arco", vg = (I) => {
|
|
1913
|
-
var E, B,
|
|
1913
|
+
var E, B, t;
|
|
1914
1914
|
const o = yB(), r = gg(Dt, void 0);
|
|
1915
|
-
return `${(
|
|
1915
|
+
return `${(t = (B = r == null ? void 0 : r.prefixCls) != null ? B : (E = o == null ? void 0 : o.appContext.config.globalProperties[yt]) == null ? void 0 : E.classPrefix) != null ? t : ut}-${I}`;
|
|
1916
1916
|
}, ft = Object.prototype.toString;
|
|
1917
1917
|
function qg(I) {
|
|
1918
1918
|
return ft.call(I) === "[object Number]" && I === I;
|
|
1919
1919
|
}
|
|
1920
1920
|
var xg = (I, E) => {
|
|
1921
|
-
for (const [B,
|
|
1922
|
-
I[B] =
|
|
1921
|
+
for (const [B, t] of E)
|
|
1922
|
+
I[B] = t;
|
|
1923
1923
|
return I;
|
|
1924
1924
|
};
|
|
1925
1925
|
const Rt = qA({
|
|
@@ -1949,12 +1949,12 @@ const Rt = qA({
|
|
|
1949
1949
|
click: (I) => !0
|
|
1950
1950
|
},
|
|
1951
1951
|
setup(I, { emit: E }) {
|
|
1952
|
-
const B = vg("icon"),
|
|
1952
|
+
const B = vg("icon"), t = pA(() => [B, `${B}-right`, { [`${B}-spin`]: I.spin }]), o = pA(() => {
|
|
1953
1953
|
const a = {};
|
|
1954
1954
|
return I.size && (a.fontSize = qg(I.size) ? `${I.size}px` : I.size), I.rotate && (a.transform = `rotate(${I.rotate}deg)`), a;
|
|
1955
1955
|
});
|
|
1956
1956
|
return {
|
|
1957
|
-
cls:
|
|
1957
|
+
cls: t,
|
|
1958
1958
|
innerStyle: o,
|
|
1959
1959
|
onClick: (a) => {
|
|
1960
1960
|
E("click", a);
|
|
@@ -1964,7 +1964,7 @@ const Rt = qA({
|
|
|
1964
1964
|
}), Ft = ["stroke-width", "stroke-linecap", "stroke-linejoin"], Nt = /* @__PURE__ */ iA("path", { d: "m16 39.513 15.556-15.557L16 8.4" }, null, -1), Gt = [
|
|
1965
1965
|
Nt
|
|
1966
1966
|
];
|
|
1967
|
-
function kt(I, E, B,
|
|
1967
|
+
function kt(I, E, B, t, o, r) {
|
|
1968
1968
|
return aA(), cA("svg", {
|
|
1969
1969
|
viewBox: "0 0 48 48",
|
|
1970
1970
|
fill: "none",
|
|
@@ -1982,8 +1982,8 @@ var CC = /* @__PURE__ */ xg(Rt, [["render", kt]]);
|
|
|
1982
1982
|
const St = Object.assign(CC, {
|
|
1983
1983
|
install: (I, E) => {
|
|
1984
1984
|
var B;
|
|
1985
|
-
const
|
|
1986
|
-
I.component(
|
|
1985
|
+
const t = (B = E == null ? void 0 : E.iconPrefix) != null ? B : "";
|
|
1986
|
+
I.component(t + CC.name, CC);
|
|
1987
1987
|
}
|
|
1988
1988
|
}), Lt = qA({
|
|
1989
1989
|
name: "IconCheckCircleFill",
|
|
@@ -2012,12 +2012,12 @@ const St = Object.assign(CC, {
|
|
|
2012
2012
|
click: (I) => !0
|
|
2013
2013
|
},
|
|
2014
2014
|
setup(I, { emit: E }) {
|
|
2015
|
-
const B = vg("icon"),
|
|
2015
|
+
const B = vg("icon"), t = pA(() => [B, `${B}-check-circle-fill`, { [`${B}-spin`]: I.spin }]), o = pA(() => {
|
|
2016
2016
|
const a = {};
|
|
2017
2017
|
return I.size && (a.fontSize = qg(I.size) ? `${I.size}px` : I.size), I.rotate && (a.transform = `rotate(${I.rotate}deg)`), a;
|
|
2018
2018
|
});
|
|
2019
2019
|
return {
|
|
2020
|
-
cls:
|
|
2020
|
+
cls: t,
|
|
2021
2021
|
innerStyle: o,
|
|
2022
2022
|
onClick: (a) => {
|
|
2023
2023
|
E("click", a);
|
|
@@ -2033,7 +2033,7 @@ const St = Object.assign(CC, {
|
|
|
2033
2033
|
}, null, -1), Mt = [
|
|
2034
2034
|
pt
|
|
2035
2035
|
];
|
|
2036
|
-
function Jt(I, E, B,
|
|
2036
|
+
function Jt(I, E, B, t, o, r) {
|
|
2037
2037
|
return aA(), cA("svg", {
|
|
2038
2038
|
viewBox: "0 0 48 48",
|
|
2039
2039
|
fill: "none",
|
|
@@ -2051,8 +2051,8 @@ var BC = /* @__PURE__ */ xg(Lt, [["render", Jt]]);
|
|
|
2051
2051
|
const Yt = Object.assign(BC, {
|
|
2052
2052
|
install: (I, E) => {
|
|
2053
2053
|
var B;
|
|
2054
|
-
const
|
|
2055
|
-
I.component(
|
|
2054
|
+
const t = (B = E == null ? void 0 : E.iconPrefix) != null ? B : "";
|
|
2055
|
+
I.component(t + BC.name, BC);
|
|
2056
2056
|
}
|
|
2057
2057
|
}), mt = qA({
|
|
2058
2058
|
name: "IconCloseCircleFill",
|
|
@@ -2081,12 +2081,12 @@ const Yt = Object.assign(BC, {
|
|
|
2081
2081
|
click: (I) => !0
|
|
2082
2082
|
},
|
|
2083
2083
|
setup(I, { emit: E }) {
|
|
2084
|
-
const B = vg("icon"),
|
|
2084
|
+
const B = vg("icon"), t = pA(() => [B, `${B}-close-circle-fill`, { [`${B}-spin`]: I.spin }]), o = pA(() => {
|
|
2085
2085
|
const a = {};
|
|
2086
2086
|
return I.size && (a.fontSize = qg(I.size) ? `${I.size}px` : I.size), I.rotate && (a.transform = `rotate(${I.rotate}deg)`), a;
|
|
2087
2087
|
});
|
|
2088
2088
|
return {
|
|
2089
|
-
cls:
|
|
2089
|
+
cls: t,
|
|
2090
2090
|
innerStyle: o,
|
|
2091
2091
|
onClick: (a) => {
|
|
2092
2092
|
E("click", a);
|
|
@@ -2102,7 +2102,7 @@ const Yt = Object.assign(BC, {
|
|
|
2102
2102
|
}, null, -1), vt = [
|
|
2103
2103
|
Kt
|
|
2104
2104
|
];
|
|
2105
|
-
function qt(I, E, B,
|
|
2105
|
+
function qt(I, E, B, t, o, r) {
|
|
2106
2106
|
return aA(), cA("svg", {
|
|
2107
2107
|
viewBox: "0 0 48 48",
|
|
2108
2108
|
fill: "none",
|
|
@@ -2120,8 +2120,8 @@ var QC = /* @__PURE__ */ xg(mt, [["render", qt]]);
|
|
|
2120
2120
|
const xt = Object.assign(QC, {
|
|
2121
2121
|
install: (I, E) => {
|
|
2122
2122
|
var B;
|
|
2123
|
-
const
|
|
2124
|
-
I.component(
|
|
2123
|
+
const t = (B = E == null ? void 0 : E.iconPrefix) != null ? B : "";
|
|
2124
|
+
I.component(t + QC.name, QC);
|
|
2125
2125
|
}
|
|
2126
2126
|
}), bt = qA({
|
|
2127
2127
|
name: "IconExclamationCircleFill",
|
|
@@ -2150,12 +2150,12 @@ const xt = Object.assign(QC, {
|
|
|
2150
2150
|
click: (I) => !0
|
|
2151
2151
|
},
|
|
2152
2152
|
setup(I, { emit: E }) {
|
|
2153
|
-
const B = vg("icon"),
|
|
2153
|
+
const B = vg("icon"), t = pA(() => [B, `${B}-exclamation-circle-fill`, { [`${B}-spin`]: I.spin }]), o = pA(() => {
|
|
2154
2154
|
const a = {};
|
|
2155
2155
|
return I.size && (a.fontSize = qg(I.size) ? `${I.size}px` : I.size), I.rotate && (a.transform = `rotate(${I.rotate}deg)`), a;
|
|
2156
2156
|
});
|
|
2157
2157
|
return {
|
|
2158
|
-
cls:
|
|
2158
|
+
cls: t,
|
|
2159
2159
|
innerStyle: o,
|
|
2160
2160
|
onClick: (a) => {
|
|
2161
2161
|
E("click", a);
|
|
@@ -2171,7 +2171,7 @@ const xt = Object.assign(QC, {
|
|
|
2171
2171
|
}, null, -1), jt = [
|
|
2172
2172
|
Pt
|
|
2173
2173
|
];
|
|
2174
|
-
function Wt(I, E, B,
|
|
2174
|
+
function Wt(I, E, B, t, o, r) {
|
|
2175
2175
|
return aA(), cA("svg", {
|
|
2176
2176
|
viewBox: "0 0 48 48",
|
|
2177
2177
|
fill: "none",
|
|
@@ -2189,8 +2189,8 @@ var EC = /* @__PURE__ */ xg(bt, [["render", Wt]]);
|
|
|
2189
2189
|
const eC = Object.assign(EC, {
|
|
2190
2190
|
install: (I, E) => {
|
|
2191
2191
|
var B;
|
|
2192
|
-
const
|
|
2193
|
-
I.component(
|
|
2192
|
+
const t = (B = E == null ? void 0 : E.iconPrefix) != null ? B : "";
|
|
2193
|
+
I.component(t + EC.name, EC);
|
|
2194
2194
|
}
|
|
2195
2195
|
}), Vt = qA({
|
|
2196
2196
|
name: "IconInfoCircleFill",
|
|
@@ -2219,12 +2219,12 @@ const eC = Object.assign(EC, {
|
|
|
2219
2219
|
click: (I) => !0
|
|
2220
2220
|
},
|
|
2221
2221
|
setup(I, { emit: E }) {
|
|
2222
|
-
const B = vg("icon"),
|
|
2222
|
+
const B = vg("icon"), t = pA(() => [B, `${B}-info-circle-fill`, { [`${B}-spin`]: I.spin }]), o = pA(() => {
|
|
2223
2223
|
const a = {};
|
|
2224
2224
|
return I.size && (a.fontSize = qg(I.size) ? `${I.size}px` : I.size), I.rotate && (a.transform = `rotate(${I.rotate}deg)`), a;
|
|
2225
2225
|
});
|
|
2226
2226
|
return {
|
|
2227
|
-
cls:
|
|
2227
|
+
cls: t,
|
|
2228
2228
|
innerStyle: o,
|
|
2229
2229
|
onClick: (a) => {
|
|
2230
2230
|
E("click", a);
|
|
@@ -2240,7 +2240,7 @@ const eC = Object.assign(EC, {
|
|
|
2240
2240
|
}, null, -1), zt = [
|
|
2241
2241
|
Xt
|
|
2242
2242
|
];
|
|
2243
|
-
function Zt(I, E, B,
|
|
2243
|
+
function Zt(I, E, B, t, o, r) {
|
|
2244
2244
|
return aA(), cA("svg", {
|
|
2245
2245
|
viewBox: "0 0 48 48",
|
|
2246
2246
|
fill: "none",
|
|
@@ -2258,8 +2258,8 @@ var tC = /* @__PURE__ */ xg(Vt, [["render", Zt]]);
|
|
|
2258
2258
|
const fC = Object.assign(tC, {
|
|
2259
2259
|
install: (I, E) => {
|
|
2260
2260
|
var B;
|
|
2261
|
-
const
|
|
2262
|
-
I.component(
|
|
2261
|
+
const t = (B = E == null ? void 0 : E.iconPrefix) != null ? B : "";
|
|
2262
|
+
I.component(t + tC.name, tC);
|
|
2263
2263
|
}
|
|
2264
2264
|
}), _t = qA({
|
|
2265
2265
|
name: "IconMore",
|
|
@@ -2288,12 +2288,12 @@ const fC = Object.assign(tC, {
|
|
|
2288
2288
|
click: (I) => !0
|
|
2289
2289
|
},
|
|
2290
2290
|
setup(I, { emit: E }) {
|
|
2291
|
-
const B = vg("icon"),
|
|
2291
|
+
const B = vg("icon"), t = pA(() => [B, `${B}-more`, { [`${B}-spin`]: I.spin }]), o = pA(() => {
|
|
2292
2292
|
const a = {};
|
|
2293
2293
|
return I.size && (a.fontSize = qg(I.size) ? `${I.size}px` : I.size), I.rotate && (a.transform = `rotate(${I.rotate}deg)`), a;
|
|
2294
2294
|
});
|
|
2295
2295
|
return {
|
|
2296
|
-
cls:
|
|
2296
|
+
cls: t,
|
|
2297
2297
|
innerStyle: o,
|
|
2298
2298
|
onClick: (a) => {
|
|
2299
2299
|
E("click", a);
|
|
@@ -2308,7 +2308,7 @@ const fC = Object.assign(tC, {
|
|
|
2308
2308
|
Ao,
|
|
2309
2309
|
go
|
|
2310
2310
|
];
|
|
2311
|
-
function Co(I, E, B,
|
|
2311
|
+
function Co(I, E, B, t, o, r) {
|
|
2312
2312
|
return aA(), cA("svg", {
|
|
2313
2313
|
viewBox: "0 0 48 48",
|
|
2314
2314
|
fill: "none",
|
|
@@ -2326,45 +2326,45 @@ var oC = /* @__PURE__ */ xg(_t, [["render", Co]]);
|
|
|
2326
2326
|
const Bo = Object.assign(oC, {
|
|
2327
2327
|
install: (I, E) => {
|
|
2328
2328
|
var B;
|
|
2329
|
-
const
|
|
2330
|
-
I.component(
|
|
2329
|
+
const t = (B = E == null ? void 0 : E.iconPrefix) != null ? B : "";
|
|
2330
|
+
I.component(t + oC.name, oC);
|
|
2331
2331
|
}
|
|
2332
2332
|
});
|
|
2333
2333
|
var Qo = Object.create, bB = Object.defineProperty, Eo = Object.getOwnPropertyDescriptor, eo = Object.getOwnPropertyNames, to = Object.getPrototypeOf, oo = Object.prototype.hasOwnProperty, nC = ((I) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(I, { get: (E, B) => (typeof require < "u" ? require : E)[B] }) : I)(function(I) {
|
|
2334
2334
|
if (typeof require < "u") return require.apply(this, arguments);
|
|
2335
2335
|
throw Error('Dynamic require of "' + I + '" is not supported');
|
|
2336
|
-
}), no = (I, E) => () => (E || I((E = { exports: {} }).exports, E), E.exports), io = (I, E, B,
|
|
2337
|
-
if (E && typeof E == "object" || typeof E == "function") for (let o of eo(E)) !oo.call(I, o) && o !== B && bB(I, o, { get: () => E[o], enumerable: !(
|
|
2336
|
+
}), no = (I, E) => () => (E || I((E = { exports: {} }).exports, E), E.exports), io = (I, E, B, t) => {
|
|
2337
|
+
if (E && typeof E == "object" || typeof E == "function") for (let o of eo(E)) !oo.call(I, o) && o !== B && bB(I, o, { get: () => E[o], enumerable: !(t = Eo(E, o)) || t.enumerable });
|
|
2338
2338
|
return I;
|
|
2339
2339
|
}, ro = (I, E, B) => (B = I != null ? Qo(to(I)) : {}, io(!I || !I.__esModule ? bB(B, "default", { value: I, enumerable: !0 }) : B, I)), ao = no((I, E) => {
|
|
2340
2340
|
var B = (() => {
|
|
2341
2341
|
var o;
|
|
2342
|
-
var
|
|
2343
|
-
return typeof __filename < "u" && (
|
|
2342
|
+
var t = typeof document < "u" ? (o = document.currentScript) == null ? void 0 : o.src : void 0;
|
|
2343
|
+
return typeof __filename < "u" && (t || (t = __filename)), function(r = {}) {
|
|
2344
2344
|
var a, i = Object.assign({}, r), h, d, c = new Promise((A, g) => {
|
|
2345
2345
|
h = A, d = g;
|
|
2346
2346
|
}), f = typeof window == "object", u = typeof importScripts == "function", D = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string", y = Object.assign({}, i), F = "./this.program", p = (A, g) => {
|
|
2347
2347
|
throw g;
|
|
2348
|
-
}, G = "", S,
|
|
2348
|
+
}, G = "", S, J, K;
|
|
2349
2349
|
if (D) {
|
|
2350
|
-
var P = nC("fs"),
|
|
2351
|
-
G = __dirname + "/", S = (A, g) => (A = bg(A) ? new URL(A) :
|
|
2350
|
+
var P = nC("fs"), z = nC("path");
|
|
2351
|
+
G = __dirname + "/", S = (A, g) => (A = bg(A) ? new URL(A) : z.normalize(A), P.readFileSync(A, g ? void 0 : "utf8")), K = (A) => {
|
|
2352
2352
|
var g = S(A, !0);
|
|
2353
2353
|
return g.buffer || (g = new Uint8Array(g)), g;
|
|
2354
|
-
},
|
|
2355
|
-
A = bg(A) ? new URL(A) :
|
|
2354
|
+
}, J = (A, g, C, Q = !0) => {
|
|
2355
|
+
A = bg(A) ? new URL(A) : z.normalize(A), P.readFile(A, Q ? void 0 : "utf8", (n, s) => {
|
|
2356
2356
|
n ? C(n) : g(Q ? s.buffer : s);
|
|
2357
2357
|
});
|
|
2358
2358
|
}, !i.thisProgram && process.argv.length > 1 && (F = process.argv[1].replace(/\\/g, "/")), process.argv.slice(2), p = (A, g) => {
|
|
2359
2359
|
throw process.exitCode = A, g;
|
|
2360
2360
|
};
|
|
2361
|
-
} else (f || u) && (u ? G = self.location.href : typeof document < "u" && document.currentScript && (G = document.currentScript.src),
|
|
2361
|
+
} else (f || u) && (u ? G = self.location.href : typeof document < "u" && document.currentScript && (G = document.currentScript.src), t && (G = t), G.startsWith("blob:") ? G = "" : G = G.substr(0, G.replace(/[?#].*/, "").lastIndexOf("/") + 1), S = (A) => {
|
|
2362
2362
|
var g = new XMLHttpRequest();
|
|
2363
2363
|
return g.open("GET", A, !1), g.send(null), g.responseText;
|
|
2364
|
-
}, u && (
|
|
2364
|
+
}, u && (K = (A) => {
|
|
2365
2365
|
var g = new XMLHttpRequest();
|
|
2366
2366
|
return g.open("GET", A, !1), g.responseType = "arraybuffer", g.send(null), new Uint8Array(g.response);
|
|
2367
|
-
}),
|
|
2367
|
+
}), J = (A, g, C) => {
|
|
2368
2368
|
var Q = new XMLHttpRequest();
|
|
2369
2369
|
Q.open("GET", A, !0), Q.responseType = "arraybuffer", Q.onload = () => {
|
|
2370
2370
|
if (Q.status == 200 || Q.status == 0 && Q.response) {
|
|
@@ -2374,7 +2374,7 @@ var Qo = Object.create, bB = Object.defineProperty, Eo = Object.getOwnPropertyDe
|
|
|
2374
2374
|
C();
|
|
2375
2375
|
}, Q.onerror = C, Q.send(null);
|
|
2376
2376
|
});
|
|
2377
|
-
var
|
|
2377
|
+
var v = i.print || console.log.bind(console), W = i.printErr || console.error.bind(console);
|
|
2378
2378
|
Object.assign(i, y), y = null, i.arguments && i.arguments, i.thisProgram && (F = i.thisProgram), i.quit && (p = i.quit);
|
|
2379
2379
|
var EA;
|
|
2380
2380
|
i.wasmBinary && (EA = i.wasmBinary);
|
|
@@ -2389,10 +2389,10 @@ var Qo = Object.create, bB = Object.defineProperty, Eo = Object.getOwnPropertyDe
|
|
|
2389
2389
|
function nA(A) {
|
|
2390
2390
|
if (BI(A)) return CA(A.slice(dg.length));
|
|
2391
2391
|
}
|
|
2392
|
-
var kA, AA = !1, fA, U,
|
|
2392
|
+
var kA, AA = !1, fA, U, H, O, X, M, m, dA, wA;
|
|
2393
2393
|
function RA() {
|
|
2394
2394
|
var A = kA.buffer;
|
|
2395
|
-
i.HEAP8 = U = new Int8Array(A), i.HEAP16 = O = new Int16Array(A), i.HEAPU8 =
|
|
2395
|
+
i.HEAP8 = U = new Int8Array(A), i.HEAP16 = O = new Int16Array(A), i.HEAPU8 = H = new Uint8Array(A), i.HEAPU16 = X = new Uint16Array(A), i.HEAP32 = M = new Int32Array(A), i.HEAPU32 = m = new Uint32Array(A), i.HEAPF32 = dA = new Float32Array(A), i.HEAPF64 = wA = new Float64Array(A);
|
|
2396
2396
|
}
|
|
2397
2397
|
var Z = [], eA = [], BA = [];
|
|
2398
2398
|
function tA() {
|
|
@@ -2400,7 +2400,7 @@ var Qo = Object.create, bB = Object.defineProperty, Eo = Object.getOwnPropertyDe
|
|
|
2400
2400
|
HI(Z);
|
|
2401
2401
|
}
|
|
2402
2402
|
function DA() {
|
|
2403
|
-
!i.noFSInit && !
|
|
2403
|
+
!i.noFSInit && !e.init.initialized && e.init(), e.ignorePermissions = !1, HI(eA);
|
|
2404
2404
|
}
|
|
2405
2405
|
function SA() {
|
|
2406
2406
|
if (i.postRun) for (typeof i.postRun == "function" && (i.postRun = [i.postRun]); i.postRun.length; ) Ig(i.postRun.shift());
|
|
@@ -2443,7 +2443,7 @@ var Qo = Object.create, bB = Object.defineProperty, Eo = Object.getOwnPropertyDe
|
|
|
2443
2443
|
if (A == $A && EA) return new Uint8Array(EA);
|
|
2444
2444
|
var g = nA(A);
|
|
2445
2445
|
if (g) return g;
|
|
2446
|
-
if (
|
|
2446
|
+
if (K) return K(A);
|
|
2447
2447
|
throw "both async and sync fetching of the wasm failed";
|
|
2448
2448
|
}
|
|
2449
2449
|
function OB(A) {
|
|
@@ -2540,7 +2540,7 @@ var Qo = Object.create, bB = Object.defineProperty, Eo = Object.getOwnPropertyDe
|
|
|
2540
2540
|
for (var A = new Array(256), g = 0; g < 256; ++g) A[g] = String.fromCharCode(g);
|
|
2541
2541
|
mC = A;
|
|
2542
2542
|
}, mC, zA = (A) => {
|
|
2543
|
-
for (var g = "", C = A;
|
|
2543
|
+
for (var g = "", C = A; H[C]; ) g += mC[H[C++]];
|
|
2544
2544
|
return g;
|
|
2545
2545
|
}, Fg = {}, wg = {}, EI = {}, Ng, oA = (A) => {
|
|
2546
2546
|
throw new Ng(A);
|
|
@@ -2583,7 +2583,7 @@ var Qo = Object.create, bB = Object.defineProperty, Eo = Object.getOwnPropertyDe
|
|
|
2583
2583
|
}, toWireType: function(n, s) {
|
|
2584
2584
|
return s ? C : Q;
|
|
2585
2585
|
}, argPackAdvance: og, readValueFromPointer: function(n) {
|
|
2586
|
-
return this.fromWireType(
|
|
2586
|
+
return this.fromWireType(H[n]);
|
|
2587
2587
|
}, destructorFunction: null });
|
|
2588
2588
|
}, eQ = (A) => ({ count: A.count, deleteScheduled: A.deleteScheduled, preservePointerOnDelete: A.preservePointerOnDelete, ptr: A.ptr, ptrType: A.ptrType, smartPtr: A.smartPtr, smartPtrType: A.smartPtrType }), vI = (A) => {
|
|
2589
2589
|
function g(C) {
|
|
@@ -2957,11 +2957,11 @@ return ret;
|
|
|
2957
2957
|
}, PQ = (A, g, C) => {
|
|
2958
2958
|
switch (g) {
|
|
2959
2959
|
case 1:
|
|
2960
|
-
return C ? (Q) => U[Q] : (Q) =>
|
|
2960
|
+
return C ? (Q) => U[Q] : (Q) => H[Q];
|
|
2961
2961
|
case 2:
|
|
2962
|
-
return C ? (Q) => O[Q >> 1] : (Q) =>
|
|
2962
|
+
return C ? (Q) => O[Q >> 1] : (Q) => X[Q >> 1];
|
|
2963
2963
|
case 4:
|
|
2964
|
-
return C ? (Q) =>
|
|
2964
|
+
return C ? (Q) => M[Q >> 2] : (Q) => m[Q >> 2];
|
|
2965
2965
|
default:
|
|
2966
2966
|
throw new TypeError(`invalid integer width (${g}): ${A}`);
|
|
2967
2967
|
}
|
|
@@ -3011,7 +3011,7 @@ return ret;
|
|
|
3011
3011
|
}
|
|
3012
3012
|
}
|
|
3013
3013
|
return g[C] = 0, C - n;
|
|
3014
|
-
}, VC = (A, g, C) => OI(A,
|
|
3014
|
+
}, VC = (A, g, C) => OI(A, H, g, C), XI = (A) => {
|
|
3015
3015
|
for (var g = 0, C = 0; C < A.length; ++C) {
|
|
3016
3016
|
var Q = A.charCodeAt(C);
|
|
3017
3017
|
Q <= 127 ? g++ : Q <= 2047 ? g += 2 : Q >= 55296 && Q <= 57343 ? (g += 4, ++C) : g += 3;
|
|
@@ -3039,20 +3039,20 @@ return ret;
|
|
|
3039
3039
|
}
|
|
3040
3040
|
}
|
|
3041
3041
|
return s;
|
|
3042
|
-
}, cI = (A, g) => A ? Gg(
|
|
3042
|
+
}, cI = (A, g) => A ? Gg(H, A, g) : "", OQ = (A, g) => {
|
|
3043
3043
|
g = zA(g);
|
|
3044
3044
|
var C = g === "std::string";
|
|
3045
3045
|
Eg(A, { name: g, fromWireType(Q) {
|
|
3046
3046
|
var n = m[Q >> 2], s = Q + 4, l;
|
|
3047
3047
|
if (C) for (var w = s, R = 0; R <= n; ++R) {
|
|
3048
3048
|
var k = s + R;
|
|
3049
|
-
if (R == n ||
|
|
3049
|
+
if (R == n || H[k] == 0) {
|
|
3050
3050
|
var Y = k - w, j = cI(w, Y);
|
|
3051
3051
|
l === void 0 ? l = j : (l += "\0", l += j), w = k + 1;
|
|
3052
3052
|
}
|
|
3053
3053
|
}
|
|
3054
3054
|
else {
|
|
3055
|
-
for (var b = new Array(n), R = 0; R < n; ++R) b[R] = String.fromCharCode(
|
|
3055
|
+
for (var b = new Array(n), R = 0; R < n; ++R) b[R] = String.fromCharCode(H[s + R]);
|
|
3056
3056
|
l = b.join("");
|
|
3057
3057
|
}
|
|
3058
3058
|
return tg(Q), l;
|
|
@@ -3064,16 +3064,16 @@ return ret;
|
|
|
3064
3064
|
if (m[w >> 2] = s, C && l) VC(n, R, s + 1);
|
|
3065
3065
|
else if (l) for (var k = 0; k < s; ++k) {
|
|
3066
3066
|
var Y = n.charCodeAt(k);
|
|
3067
|
-
Y > 255 && (tg(R), oA("String has UTF-16 code units that do not fit in 8 bits")),
|
|
3067
|
+
Y > 255 && (tg(R), oA("String has UTF-16 code units that do not fit in 8 bits")), H[R + k] = Y;
|
|
3068
3068
|
}
|
|
3069
|
-
else for (var k = 0; k < s; ++k)
|
|
3069
|
+
else for (var k = 0; k < s; ++k) H[R + k] = n[k];
|
|
3070
3070
|
return Q !== null && Q.push(tg, w), w;
|
|
3071
3071
|
}, argPackAdvance: og, readValueFromPointer: iI, destructorFunction(Q) {
|
|
3072
3072
|
tg(Q);
|
|
3073
3073
|
} });
|
|
3074
3074
|
}, XC = typeof TextDecoder < "u" ? new TextDecoder("utf-16le") : void 0, XQ = (A, g) => {
|
|
3075
|
-
for (var C = A, Q = C >> 1, n = Q + g / 2; !(Q >= n) &&
|
|
3076
|
-
if (C = Q << 1, C - A > 32 && XC) return XC.decode(
|
|
3075
|
+
for (var C = A, Q = C >> 1, n = Q + g / 2; !(Q >= n) && X[Q]; ) ++Q;
|
|
3076
|
+
if (C = Q << 1, C - A > 32 && XC) return XC.decode(H.subarray(A, C));
|
|
3077
3077
|
for (var s = "", l = 0; !(l >= g / 2); ++l) {
|
|
3078
3078
|
var w = O[A + l * 2 >> 1];
|
|
3079
3079
|
if (w == 0) break;
|
|
@@ -3090,7 +3090,7 @@ return ret;
|
|
|
3090
3090
|
return O[g >> 1] = 0, g - Q;
|
|
3091
3091
|
}, ZQ = (A) => A.length * 2, _Q = (A, g) => {
|
|
3092
3092
|
for (var C = 0, Q = ""; !(C >= g / 4); ) {
|
|
3093
|
-
var n =
|
|
3093
|
+
var n = M[A + C * 4 >> 2];
|
|
3094
3094
|
if (n == 0) break;
|
|
3095
3095
|
if (++C, n >= 65536) {
|
|
3096
3096
|
var s = n - 65536;
|
|
@@ -3106,9 +3106,9 @@ return ret;
|
|
|
3106
3106
|
var w = A.charCodeAt(++s);
|
|
3107
3107
|
l = 65536 + ((l & 1023) << 10) | w & 1023;
|
|
3108
3108
|
}
|
|
3109
|
-
if (
|
|
3109
|
+
if (M[g >> 2] = l, g += 4, g + 4 > n) break;
|
|
3110
3110
|
}
|
|
3111
|
-
return
|
|
3111
|
+
return M[g >> 2] = 0, g - Q;
|
|
3112
3112
|
}, AE = (A) => {
|
|
3113
3113
|
for (var g = 0, C = 0; C < A.length; ++C) {
|
|
3114
3114
|
var Q = A.charCodeAt(C);
|
|
@@ -3118,7 +3118,7 @@ return ret;
|
|
|
3118
3118
|
}, gE = (A, g, C) => {
|
|
3119
3119
|
C = zA(C);
|
|
3120
3120
|
var Q, n, s, l;
|
|
3121
|
-
g === 2 ? (Q = XQ, n = zQ, l = ZQ, s = (w) =>
|
|
3121
|
+
g === 2 ? (Q = XQ, n = zQ, l = ZQ, s = (w) => X[w >> 1]) : g === 4 && (Q = _Q, n = $Q, l = AE, s = (w) => m[w >> 2]), Eg(A, { name: C, fromWireType: (w) => {
|
|
3122
3122
|
for (var R = m[w >> 2], k, Y = w + 4, j = 0; j <= R; ++j) {
|
|
3123
3123
|
var b = w + 4 + j * g;
|
|
3124
3124
|
if (j == R || s(b) == 0) {
|
|
@@ -3140,7 +3140,7 @@ return ret;
|
|
|
3140
3140
|
} });
|
|
3141
3141
|
}, zC = () => F || "./this.program", CE = (A, g) => {
|
|
3142
3142
|
VC(zC(), A, g);
|
|
3143
|
-
}, BE = (A, g, C) =>
|
|
3143
|
+
}, BE = (A, g, C) => H.copyWithin(A, g, g + C), QE = () => {
|
|
3144
3144
|
MC = !1, _C = 0;
|
|
3145
3145
|
}, EE = (A, g) => {
|
|
3146
3146
|
var C = wg[A];
|
|
@@ -3180,7 +3180,7 @@ return ret;
|
|
|
3180
3180
|
}, aE = (A) => {
|
|
3181
3181
|
Qg("OOM");
|
|
3182
3182
|
}, sE = (A) => {
|
|
3183
|
-
|
|
3183
|
+
H.length, aE();
|
|
3184
3184
|
}, zI = {}, Og = () => {
|
|
3185
3185
|
if (!Og.strings) {
|
|
3186
3186
|
var A = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8", g = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: A, _: zC() };
|
|
@@ -3237,7 +3237,7 @@ return ret;
|
|
|
3237
3237
|
Qg("initRandomDevice");
|
|
3238
3238
|
}, IB = (A) => (IB = wE())(A), eg = { resolve: (...A) => {
|
|
3239
3239
|
for (var g = "", C = !1, Q = A.length - 1; Q >= -1 && !C; Q--) {
|
|
3240
|
-
var n = Q >= 0 ? A[Q] :
|
|
3240
|
+
var n = Q >= 0 ? A[Q] : e.cwd();
|
|
3241
3241
|
if (typeof n != "string") throw new TypeError("Arguments to path.resolve must be strings");
|
|
3242
3242
|
if (!n) return "";
|
|
3243
3243
|
g = n + "/" + g, C = lA.isAbs(n);
|
|
@@ -3283,43 +3283,43 @@ return ret;
|
|
|
3283
3283
|
}, ug = { ttys: [], init() {
|
|
3284
3284
|
}, shutdown() {
|
|
3285
3285
|
}, register(A, g) {
|
|
3286
|
-
ug.ttys[A] = { input: [], output: [], ops: g },
|
|
3286
|
+
ug.ttys[A] = { input: [], output: [], ops: g }, e.registerDevice(A, ug.stream_ops);
|
|
3287
3287
|
}, stream_ops: { open(A) {
|
|
3288
3288
|
var g = ug.ttys[A.node.rdev];
|
|
3289
|
-
if (!g) throw new
|
|
3289
|
+
if (!g) throw new e.ErrnoError(43);
|
|
3290
3290
|
A.tty = g, A.seekable = !1;
|
|
3291
3291
|
}, close(A) {
|
|
3292
3292
|
A.tty.ops.fsync(A.tty);
|
|
3293
3293
|
}, fsync(A) {
|
|
3294
3294
|
A.tty.ops.fsync(A.tty);
|
|
3295
3295
|
}, read(A, g, C, Q, n) {
|
|
3296
|
-
if (!A.tty || !A.tty.ops.get_char) throw new
|
|
3296
|
+
if (!A.tty || !A.tty.ops.get_char) throw new e.ErrnoError(60);
|
|
3297
3297
|
for (var s = 0, l = 0; l < Q; l++) {
|
|
3298
3298
|
var w;
|
|
3299
3299
|
try {
|
|
3300
3300
|
w = A.tty.ops.get_char(A.tty);
|
|
3301
3301
|
} catch {
|
|
3302
|
-
throw new
|
|
3302
|
+
throw new e.ErrnoError(29);
|
|
3303
3303
|
}
|
|
3304
|
-
if (w === void 0 && s === 0) throw new
|
|
3304
|
+
if (w === void 0 && s === 0) throw new e.ErrnoError(6);
|
|
3305
3305
|
if (w == null) break;
|
|
3306
3306
|
s++, g[C + l] = w;
|
|
3307
3307
|
}
|
|
3308
3308
|
return s && (A.node.timestamp = Date.now()), s;
|
|
3309
3309
|
}, write(A, g, C, Q, n) {
|
|
3310
|
-
if (!A.tty || !A.tty.ops.put_char) throw new
|
|
3310
|
+
if (!A.tty || !A.tty.ops.put_char) throw new e.ErrnoError(60);
|
|
3311
3311
|
try {
|
|
3312
3312
|
for (var s = 0; s < Q; s++) A.tty.ops.put_char(A.tty, g[C + s]);
|
|
3313
3313
|
} catch {
|
|
3314
|
-
throw new
|
|
3314
|
+
throw new e.ErrnoError(29);
|
|
3315
3315
|
}
|
|
3316
3316
|
return Q && (A.node.timestamp = Date.now()), s;
|
|
3317
3317
|
} }, default_tty_ops: { get_char(A) {
|
|
3318
3318
|
return hE();
|
|
3319
3319
|
}, put_char(A, g) {
|
|
3320
|
-
g === null || g === 10 ? (
|
|
3320
|
+
g === null || g === 10 ? (v(Gg(A.output, 0)), A.output = []) : g != 0 && A.output.push(g);
|
|
3321
3321
|
}, fsync(A) {
|
|
3322
|
-
A.output && A.output.length > 0 && (
|
|
3322
|
+
A.output && A.output.length > 0 && (v(Gg(A.output, 0)), A.output = []);
|
|
3323
3323
|
}, ioctl_tcgets(A) {
|
|
3324
3324
|
return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] };
|
|
3325
3325
|
}, ioctl_tcsets(A, g, C) {
|
|
@@ -3330,17 +3330,17 @@ return ret;
|
|
|
3330
3330
|
g === null || g === 10 ? (W(Gg(A.output, 0)), A.output = []) : g != 0 && A.output.push(g);
|
|
3331
3331
|
}, fsync(A) {
|
|
3332
3332
|
A.output && A.output.length > 0 && (W(Gg(A.output, 0)), A.output = []);
|
|
3333
|
-
} } }, DE = (A, g) => (
|
|
3333
|
+
} } }, DE = (A, g) => (H.fill(0, A, A + g), A), uE = (A, g) => Math.ceil(A / g) * g, CB = (A) => {
|
|
3334
3334
|
A = uE(A, 65536);
|
|
3335
3335
|
var g = eB(65536, A);
|
|
3336
3336
|
return g ? DE(g, A) : 0;
|
|
3337
3337
|
}, gA = { ops_table: null, mount(A) {
|
|
3338
3338
|
return gA.createNode(null, "/", 16895, 0);
|
|
3339
3339
|
}, createNode(A, g, C, Q) {
|
|
3340
|
-
if (
|
|
3341
|
-
gA.ops_table || (gA.ops_table = { dir: { node: { getattr: gA.node_ops.getattr, setattr: gA.node_ops.setattr, lookup: gA.node_ops.lookup, mknod: gA.node_ops.mknod, rename: gA.node_ops.rename, unlink: gA.node_ops.unlink, rmdir: gA.node_ops.rmdir, readdir: gA.node_ops.readdir, symlink: gA.node_ops.symlink }, stream: { llseek: gA.stream_ops.llseek } }, file: { node: { getattr: gA.node_ops.getattr, setattr: gA.node_ops.setattr }, stream: { llseek: gA.stream_ops.llseek, read: gA.stream_ops.read, write: gA.stream_ops.write, allocate: gA.stream_ops.allocate, mmap: gA.stream_ops.mmap, msync: gA.stream_ops.msync } }, link: { node: { getattr: gA.node_ops.getattr, setattr: gA.node_ops.setattr, readlink: gA.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: gA.node_ops.getattr, setattr: gA.node_ops.setattr }, stream:
|
|
3342
|
-
var n =
|
|
3343
|
-
return
|
|
3340
|
+
if (e.isBlkdev(C) || e.isFIFO(C)) throw new e.ErrnoError(63);
|
|
3341
|
+
gA.ops_table || (gA.ops_table = { dir: { node: { getattr: gA.node_ops.getattr, setattr: gA.node_ops.setattr, lookup: gA.node_ops.lookup, mknod: gA.node_ops.mknod, rename: gA.node_ops.rename, unlink: gA.node_ops.unlink, rmdir: gA.node_ops.rmdir, readdir: gA.node_ops.readdir, symlink: gA.node_ops.symlink }, stream: { llseek: gA.stream_ops.llseek } }, file: { node: { getattr: gA.node_ops.getattr, setattr: gA.node_ops.setattr }, stream: { llseek: gA.stream_ops.llseek, read: gA.stream_ops.read, write: gA.stream_ops.write, allocate: gA.stream_ops.allocate, mmap: gA.stream_ops.mmap, msync: gA.stream_ops.msync } }, link: { node: { getattr: gA.node_ops.getattr, setattr: gA.node_ops.setattr, readlink: gA.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: gA.node_ops.getattr, setattr: gA.node_ops.setattr }, stream: e.chrdev_stream_ops } });
|
|
3342
|
+
var n = e.createNode(A, g, C, Q);
|
|
3343
|
+
return e.isDir(n.mode) ? (n.node_ops = gA.ops_table.dir.node, n.stream_ops = gA.ops_table.dir.stream, n.contents = {}) : e.isFile(n.mode) ? (n.node_ops = gA.ops_table.file.node, n.stream_ops = gA.ops_table.file.stream, n.usedBytes = 0, n.contents = null) : e.isLink(n.mode) ? (n.node_ops = gA.ops_table.link.node, n.stream_ops = gA.ops_table.link.stream) : e.isChrdev(n.mode) && (n.node_ops = gA.ops_table.chrdev.node, n.stream_ops = gA.ops_table.chrdev.stream), n.timestamp = Date.now(), A && (A.contents[g] = n, A.timestamp = n.timestamp), n;
|
|
3344
3344
|
}, getFileDataAsTypedArray(A) {
|
|
3345
3345
|
return A.contents ? A.contents.subarray ? A.contents.subarray(0, A.usedBytes) : new Uint8Array(A.contents) : new Uint8Array(0);
|
|
3346
3346
|
}, expandFileStorage(A, g) {
|
|
@@ -3359,28 +3359,28 @@ return ret;
|
|
|
3359
3359
|
}
|
|
3360
3360
|
}, node_ops: { getattr(A) {
|
|
3361
3361
|
var g = {};
|
|
3362
|
-
return g.dev =
|
|
3362
|
+
return g.dev = e.isChrdev(A.mode) ? A.id : 1, g.ino = A.id, g.mode = A.mode, g.nlink = 1, g.uid = 0, g.gid = 0, g.rdev = A.rdev, e.isDir(A.mode) ? g.size = 4096 : e.isFile(A.mode) ? g.size = A.usedBytes : e.isLink(A.mode) ? g.size = A.link.length : g.size = 0, g.atime = new Date(A.timestamp), g.mtime = new Date(A.timestamp), g.ctime = new Date(A.timestamp), g.blksize = 4096, g.blocks = Math.ceil(g.size / g.blksize), g;
|
|
3363
3363
|
}, setattr(A, g) {
|
|
3364
3364
|
g.mode !== void 0 && (A.mode = g.mode), g.timestamp !== void 0 && (A.timestamp = g.timestamp), g.size !== void 0 && gA.resizeFileStorage(A, g.size);
|
|
3365
3365
|
}, lookup(A, g) {
|
|
3366
|
-
throw
|
|
3366
|
+
throw e.genericErrors[44];
|
|
3367
3367
|
}, mknod(A, g, C, Q) {
|
|
3368
3368
|
return gA.createNode(A, g, C, Q);
|
|
3369
3369
|
}, rename(A, g, C) {
|
|
3370
|
-
if (
|
|
3370
|
+
if (e.isDir(A.mode)) {
|
|
3371
3371
|
var Q;
|
|
3372
3372
|
try {
|
|
3373
|
-
Q =
|
|
3373
|
+
Q = e.lookupNode(g, C);
|
|
3374
3374
|
} catch {
|
|
3375
3375
|
}
|
|
3376
|
-
if (Q) for (var n in Q.contents) throw new
|
|
3376
|
+
if (Q) for (var n in Q.contents) throw new e.ErrnoError(55);
|
|
3377
3377
|
}
|
|
3378
3378
|
delete A.parent.contents[A.name], A.parent.timestamp = Date.now(), A.name = C, g.contents[C] = A, g.timestamp = A.parent.timestamp, A.parent = g;
|
|
3379
3379
|
}, unlink(A, g) {
|
|
3380
3380
|
delete A.contents[g], A.timestamp = Date.now();
|
|
3381
3381
|
}, rmdir(A, g) {
|
|
3382
|
-
var C =
|
|
3383
|
-
for (var Q in C.contents) throw new
|
|
3382
|
+
var C = e.lookupNode(A, g);
|
|
3383
|
+
for (var Q in C.contents) throw new e.ErrnoError(55);
|
|
3384
3384
|
delete A.contents[g], A.timestamp = Date.now();
|
|
3385
3385
|
}, readdir(A) {
|
|
3386
3386
|
var g = [".", ".."];
|
|
@@ -3390,7 +3390,7 @@ return ret;
|
|
|
3390
3390
|
var Q = gA.createNode(A, g, 41471, 0);
|
|
3391
3391
|
return Q.link = C, Q;
|
|
3392
3392
|
}, readlink(A) {
|
|
3393
|
-
if (!
|
|
3393
|
+
if (!e.isLink(A.mode)) throw new e.ErrnoError(28);
|
|
3394
3394
|
return A.link;
|
|
3395
3395
|
} }, stream_ops: { read(A, g, C, Q, n) {
|
|
3396
3396
|
var s = A.node.contents;
|
|
@@ -3412,16 +3412,16 @@ return ret;
|
|
|
3412
3412
|
return l.usedBytes = Math.max(l.usedBytes, n + Q), Q;
|
|
3413
3413
|
}, llseek(A, g, C) {
|
|
3414
3414
|
var Q = g;
|
|
3415
|
-
if (C === 1 ? Q += A.position : C === 2 &&
|
|
3415
|
+
if (C === 1 ? Q += A.position : C === 2 && e.isFile(A.node.mode) && (Q += A.node.usedBytes), Q < 0) throw new e.ErrnoError(28);
|
|
3416
3416
|
return Q;
|
|
3417
3417
|
}, allocate(A, g, C) {
|
|
3418
3418
|
gA.expandFileStorage(A.node, g + C), A.node.usedBytes = Math.max(A.node.usedBytes, g + C);
|
|
3419
3419
|
}, mmap(A, g, C, Q, n) {
|
|
3420
|
-
if (!
|
|
3420
|
+
if (!e.isFile(A.node.mode)) throw new e.ErrnoError(43);
|
|
3421
3421
|
var s, l, w = A.node.contents;
|
|
3422
3422
|
if (!(n & 2) && w.buffer === U.buffer) l = !1, s = w.byteOffset;
|
|
3423
3423
|
else {
|
|
3424
|
-
if ((C > 0 || C + g < w.length) && (w.subarray ? w = w.subarray(C, C + g) : w = Array.prototype.slice.call(w, C, C + g)), l = !0, s = CB(g), !s) throw new
|
|
3424
|
+
if ((C > 0 || C + g < w.length) && (w.subarray ? w = w.subarray(C, C + g) : w = Array.prototype.slice.call(w, C, C + g)), l = !0, s = CB(g), !s) throw new e.ErrnoError(48);
|
|
3425
3425
|
U.set(w, s);
|
|
3426
3426
|
}
|
|
3427
3427
|
return { ptr: s, allocated: l };
|
|
@@ -3429,14 +3429,14 @@ return ret;
|
|
|
3429
3429
|
return gA.stream_ops.write(A, g, 0, Q, C, !1), 0;
|
|
3430
3430
|
} } }, yE = (A, g, C, Q) => {
|
|
3431
3431
|
var n = `al ${A}`;
|
|
3432
|
-
|
|
3432
|
+
J(A, (s) => {
|
|
3433
3433
|
g(new Uint8Array(s)), n && Cg();
|
|
3434
3434
|
}, (s) => {
|
|
3435
3435
|
if (C) C();
|
|
3436
3436
|
else throw `Loading data file "${A}" failed.`;
|
|
3437
3437
|
}), n && _A();
|
|
3438
3438
|
}, fE = (A, g, C, Q, n, s) => {
|
|
3439
|
-
|
|
3439
|
+
e.createDataFile(A, g, C, Q, n, s);
|
|
3440
3440
|
}, RE = i.preloadPlugins || [], FE = (A, g, C, Q) => {
|
|
3441
3441
|
typeof Browser < "u" && Browser.init();
|
|
3442
3442
|
var n = !1;
|
|
@@ -3461,7 +3461,7 @@ return ret;
|
|
|
3461
3461
|
}, _I = (A, g) => {
|
|
3462
3462
|
var C = 0;
|
|
3463
3463
|
return A && (C |= 365), g && (C |= 146), C;
|
|
3464
|
-
},
|
|
3464
|
+
}, e = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: !1, ignorePermissions: !0, ErrnoError: class {
|
|
3465
3465
|
constructor(A) {
|
|
3466
3466
|
this.name = "ErrnoError", this.errno = A;
|
|
3467
3467
|
}
|
|
@@ -3498,7 +3498,7 @@ return ret;
|
|
|
3498
3498
|
}
|
|
3499
3499
|
}, FSNode: class {
|
|
3500
3500
|
constructor(A, g, C, Q) {
|
|
3501
|
-
A || (A = this), this.parent = A, this.mount = A.mount, this.mounted = null, this.id =
|
|
3501
|
+
A || (A = this), this.parent = A, this.mount = A.mount, this.mounted = null, this.id = e.nextInode++, this.name = g, this.mode = C, this.node_ops = {}, this.stream_ops = {}, this.rdev = Q, this.readMode = 365, this.writeMode = 146;
|
|
3502
3502
|
}
|
|
3503
3503
|
get read() {
|
|
3504
3504
|
return (this.mode & this.readMode) === this.readMode;
|
|
@@ -3513,29 +3513,29 @@ return ret;
|
|
|
3513
3513
|
A ? this.mode |= this.writeMode : this.mode &= ~this.writeMode;
|
|
3514
3514
|
}
|
|
3515
3515
|
get isFolder() {
|
|
3516
|
-
return
|
|
3516
|
+
return e.isDir(this.mode);
|
|
3517
3517
|
}
|
|
3518
3518
|
get isDevice() {
|
|
3519
|
-
return
|
|
3519
|
+
return e.isChrdev(this.mode);
|
|
3520
3520
|
}
|
|
3521
3521
|
}, lookupPath(A, g = {}) {
|
|
3522
3522
|
if (A = eg.resolve(A), !A) return { path: "", node: null };
|
|
3523
3523
|
var C = { follow_mount: !0, recurse_count: 0 };
|
|
3524
|
-
if (g = Object.assign(C, g), g.recurse_count > 8) throw new
|
|
3525
|
-
for (var Q = A.split("/").filter((j) => !!j), n =
|
|
3524
|
+
if (g = Object.assign(C, g), g.recurse_count > 8) throw new e.ErrnoError(32);
|
|
3525
|
+
for (var Q = A.split("/").filter((j) => !!j), n = e.root, s = "/", l = 0; l < Q.length; l++) {
|
|
3526
3526
|
var w = l === Q.length - 1;
|
|
3527
3527
|
if (w && g.parent) break;
|
|
3528
|
-
if (n =
|
|
3529
|
-
var k =
|
|
3528
|
+
if (n = e.lookupNode(n, Q[l]), s = lA.join2(s, Q[l]), e.isMountpoint(n) && (!w || w && g.follow_mount) && (n = n.mounted.root), !w || g.follow) for (var R = 0; e.isLink(n.mode); ) {
|
|
3529
|
+
var k = e.readlink(s);
|
|
3530
3530
|
s = eg.resolve(lA.dirname(s), k);
|
|
3531
|
-
var Y =
|
|
3532
|
-
if (n = Y.node, R++ > 40) throw new
|
|
3531
|
+
var Y = e.lookupPath(s, { recurse_count: g.recurse_count + 1 });
|
|
3532
|
+
if (n = Y.node, R++ > 40) throw new e.ErrnoError(32);
|
|
3533
3533
|
}
|
|
3534
3534
|
}
|
|
3535
3535
|
return { path: s, node: n };
|
|
3536
3536
|
}, getPath(A) {
|
|
3537
3537
|
for (var g; ; ) {
|
|
3538
|
-
if (
|
|
3538
|
+
if (e.isRoot(A)) {
|
|
3539
3539
|
var C = A.mount.mountpoint;
|
|
3540
3540
|
return g ? C[C.length - 1] !== "/" ? `${C}/${g}` : C + g : C;
|
|
3541
3541
|
}
|
|
@@ -3543,14 +3543,14 @@ return ret;
|
|
|
3543
3543
|
}
|
|
3544
3544
|
}, hashName(A, g) {
|
|
3545
3545
|
for (var C = 0, Q = 0; Q < g.length; Q++) C = (C << 5) - C + g.charCodeAt(Q) | 0;
|
|
3546
|
-
return (A + C >>> 0) %
|
|
3546
|
+
return (A + C >>> 0) % e.nameTable.length;
|
|
3547
3547
|
}, hashAddNode(A) {
|
|
3548
|
-
var g =
|
|
3549
|
-
A.name_next =
|
|
3548
|
+
var g = e.hashName(A.parent.id, A.name);
|
|
3549
|
+
A.name_next = e.nameTable[g], e.nameTable[g] = A;
|
|
3550
3550
|
}, hashRemoveNode(A) {
|
|
3551
|
-
var g =
|
|
3552
|
-
if (
|
|
3553
|
-
else for (var C =
|
|
3551
|
+
var g = e.hashName(A.parent.id, A.name);
|
|
3552
|
+
if (e.nameTable[g] === A) e.nameTable[g] = A.name_next;
|
|
3553
|
+
else for (var C = e.nameTable[g]; C; ) {
|
|
3554
3554
|
if (C.name_next === A) {
|
|
3555
3555
|
C.name_next = A.name_next;
|
|
3556
3556
|
break;
|
|
@@ -3558,18 +3558,18 @@ return ret;
|
|
|
3558
3558
|
C = C.name_next;
|
|
3559
3559
|
}
|
|
3560
3560
|
}, lookupNode(A, g) {
|
|
3561
|
-
var C =
|
|
3562
|
-
if (C) throw new
|
|
3563
|
-
for (var Q =
|
|
3561
|
+
var C = e.mayLookup(A);
|
|
3562
|
+
if (C) throw new e.ErrnoError(C);
|
|
3563
|
+
for (var Q = e.hashName(A.id, g), n = e.nameTable[Q]; n; n = n.name_next) {
|
|
3564
3564
|
var s = n.name;
|
|
3565
3565
|
if (n.parent.id === A.id && s === g) return n;
|
|
3566
3566
|
}
|
|
3567
|
-
return
|
|
3567
|
+
return e.lookup(A, g);
|
|
3568
3568
|
}, createNode(A, g, C, Q) {
|
|
3569
|
-
var n = new
|
|
3570
|
-
return
|
|
3569
|
+
var n = new e.FSNode(A, g, C, Q);
|
|
3570
|
+
return e.hashAddNode(n), n;
|
|
3571
3571
|
}, destroyNode(A) {
|
|
3572
|
-
|
|
3572
|
+
e.hashRemoveNode(A);
|
|
3573
3573
|
}, isRoot(A) {
|
|
3574
3574
|
return A === A.parent;
|
|
3575
3575
|
}, isMountpoint(A) {
|
|
@@ -3592,68 +3592,68 @@ return ret;
|
|
|
3592
3592
|
var g = ["r", "w", "rw"][A & 3];
|
|
3593
3593
|
return A & 512 && (g += "w"), g;
|
|
3594
3594
|
}, nodePermissions(A, g) {
|
|
3595
|
-
return
|
|
3595
|
+
return e.ignorePermissions ? 0 : g.includes("r") && !(A.mode & 292) || g.includes("w") && !(A.mode & 146) || g.includes("x") && !(A.mode & 73) ? 2 : 0;
|
|
3596
3596
|
}, mayLookup(A) {
|
|
3597
|
-
if (!
|
|
3598
|
-
var g =
|
|
3597
|
+
if (!e.isDir(A.mode)) return 54;
|
|
3598
|
+
var g = e.nodePermissions(A, "x");
|
|
3599
3599
|
return g || (A.node_ops.lookup ? 0 : 2);
|
|
3600
3600
|
}, mayCreate(A, g) {
|
|
3601
3601
|
try {
|
|
3602
|
-
var C =
|
|
3602
|
+
var C = e.lookupNode(A, g);
|
|
3603
3603
|
return 20;
|
|
3604
3604
|
} catch {
|
|
3605
3605
|
}
|
|
3606
|
-
return
|
|
3606
|
+
return e.nodePermissions(A, "wx");
|
|
3607
3607
|
}, mayDelete(A, g, C) {
|
|
3608
3608
|
var Q;
|
|
3609
3609
|
try {
|
|
3610
|
-
Q =
|
|
3610
|
+
Q = e.lookupNode(A, g);
|
|
3611
3611
|
} catch (s) {
|
|
3612
3612
|
return s.errno;
|
|
3613
3613
|
}
|
|
3614
|
-
var n =
|
|
3614
|
+
var n = e.nodePermissions(A, "wx");
|
|
3615
3615
|
if (n) return n;
|
|
3616
3616
|
if (C) {
|
|
3617
|
-
if (!
|
|
3618
|
-
if (
|
|
3619
|
-
} else if (
|
|
3617
|
+
if (!e.isDir(Q.mode)) return 54;
|
|
3618
|
+
if (e.isRoot(Q) || e.getPath(Q) === e.cwd()) return 10;
|
|
3619
|
+
} else if (e.isDir(Q.mode)) return 31;
|
|
3620
3620
|
return 0;
|
|
3621
3621
|
}, mayOpen(A, g) {
|
|
3622
|
-
return A ?
|
|
3622
|
+
return A ? e.isLink(A.mode) ? 32 : e.isDir(A.mode) && (e.flagsToPermissionString(g) !== "r" || g & 512) ? 31 : e.nodePermissions(A, e.flagsToPermissionString(g)) : 44;
|
|
3623
3623
|
}, MAX_OPEN_FDS: 4096, nextfd() {
|
|
3624
|
-
for (var A = 0; A <=
|
|
3625
|
-
throw new
|
|
3624
|
+
for (var A = 0; A <= e.MAX_OPEN_FDS; A++) if (!e.streams[A]) return A;
|
|
3625
|
+
throw new e.ErrnoError(33);
|
|
3626
3626
|
}, getStreamChecked(A) {
|
|
3627
|
-
var g =
|
|
3628
|
-
if (!g) throw new
|
|
3627
|
+
var g = e.getStream(A);
|
|
3628
|
+
if (!g) throw new e.ErrnoError(8);
|
|
3629
3629
|
return g;
|
|
3630
|
-
}, getStream: (A) =>
|
|
3631
|
-
return A = Object.assign(new
|
|
3630
|
+
}, getStream: (A) => e.streams[A], createStream(A, g = -1) {
|
|
3631
|
+
return A = Object.assign(new e.FSStream(), A), g == -1 && (g = e.nextfd()), A.fd = g, e.streams[g] = A, A;
|
|
3632
3632
|
}, closeStream(A) {
|
|
3633
|
-
|
|
3633
|
+
e.streams[A] = null;
|
|
3634
3634
|
}, dupStream(A, g = -1) {
|
|
3635
3635
|
var Q, n;
|
|
3636
|
-
var C =
|
|
3636
|
+
var C = e.createStream(A, g);
|
|
3637
3637
|
return (n = (Q = C.stream_ops) == null ? void 0 : Q.dup) == null || n.call(Q, C), C;
|
|
3638
3638
|
}, chrdev_stream_ops: { open(A) {
|
|
3639
3639
|
var C, Q;
|
|
3640
|
-
var g =
|
|
3640
|
+
var g = e.getDevice(A.node.rdev);
|
|
3641
3641
|
A.stream_ops = g.stream_ops, (Q = (C = A.stream_ops).open) == null || Q.call(C, A);
|
|
3642
3642
|
}, llseek() {
|
|
3643
|
-
throw new
|
|
3643
|
+
throw new e.ErrnoError(70);
|
|
3644
3644
|
} }, major: (A) => A >> 8, minor: (A) => A & 255, makedev: (A, g) => A << 8 | g, registerDevice(A, g) {
|
|
3645
|
-
|
|
3646
|
-
}, getDevice: (A) =>
|
|
3645
|
+
e.devices[A] = { stream_ops: g };
|
|
3646
|
+
}, getDevice: (A) => e.devices[A], getMounts(A) {
|
|
3647
3647
|
for (var g = [], C = [A]; C.length; ) {
|
|
3648
3648
|
var Q = C.pop();
|
|
3649
3649
|
g.push(Q), C.push(...Q.mounts);
|
|
3650
3650
|
}
|
|
3651
3651
|
return g;
|
|
3652
3652
|
}, syncfs(A, g) {
|
|
3653
|
-
typeof A == "function" && (g = A, A = !1),
|
|
3654
|
-
var C =
|
|
3653
|
+
typeof A == "function" && (g = A, A = !1), e.syncFSRequests++, e.syncFSRequests > 1 && W(`warning: ${e.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);
|
|
3654
|
+
var C = e.getMounts(e.root.mount), Q = 0;
|
|
3655
3655
|
function n(l) {
|
|
3656
|
-
return
|
|
3656
|
+
return e.syncFSRequests--, g(l);
|
|
3657
3657
|
}
|
|
3658
3658
|
function s(l) {
|
|
3659
3659
|
if (l) return s.errored ? void 0 : (s.errored = !0, n(l));
|
|
@@ -3665,22 +3665,22 @@ return ret;
|
|
|
3665
3665
|
});
|
|
3666
3666
|
}, mount(A, g, C) {
|
|
3667
3667
|
var Q = C === "/", n = !C, s;
|
|
3668
|
-
if (Q &&
|
|
3668
|
+
if (Q && e.root) throw new e.ErrnoError(10);
|
|
3669
3669
|
if (!Q && !n) {
|
|
3670
|
-
var l =
|
|
3671
|
-
if (C = l.path, s = l.node,
|
|
3672
|
-
if (!
|
|
3670
|
+
var l = e.lookupPath(C, { follow_mount: !1 });
|
|
3671
|
+
if (C = l.path, s = l.node, e.isMountpoint(s)) throw new e.ErrnoError(10);
|
|
3672
|
+
if (!e.isDir(s.mode)) throw new e.ErrnoError(54);
|
|
3673
3673
|
}
|
|
3674
3674
|
var w = { type: A, opts: g, mountpoint: C, mounts: [] }, R = A.mount(w);
|
|
3675
|
-
return R.mount = w, w.root = R, Q ?
|
|
3675
|
+
return R.mount = w, w.root = R, Q ? e.root = R : s && (s.mounted = w, s.mount && s.mount.mounts.push(w)), R;
|
|
3676
3676
|
}, unmount(A) {
|
|
3677
|
-
var g =
|
|
3678
|
-
if (!
|
|
3679
|
-
var C = g.node, Q = C.mounted, n =
|
|
3680
|
-
Object.keys(
|
|
3681
|
-
for (var w =
|
|
3677
|
+
var g = e.lookupPath(A, { follow_mount: !1 });
|
|
3678
|
+
if (!e.isMountpoint(g.node)) throw new e.ErrnoError(28);
|
|
3679
|
+
var C = g.node, Q = C.mounted, n = e.getMounts(Q);
|
|
3680
|
+
Object.keys(e.nameTable).forEach((l) => {
|
|
3681
|
+
for (var w = e.nameTable[l]; w; ) {
|
|
3682
3682
|
var R = w.name_next;
|
|
3683
|
-
n.includes(w.mount) &&
|
|
3683
|
+
n.includes(w.mount) && e.destroyNode(w), w = R;
|
|
3684
3684
|
}
|
|
3685
3685
|
}), C.mounted = null;
|
|
3686
3686
|
var s = C.mount.mounts.indexOf(Q);
|
|
@@ -3688,298 +3688,298 @@ return ret;
|
|
|
3688
3688
|
}, lookup(A, g) {
|
|
3689
3689
|
return A.node_ops.lookup(A, g);
|
|
3690
3690
|
}, mknod(A, g, C) {
|
|
3691
|
-
var Q =
|
|
3692
|
-
if (!s || s === "." || s === "..") throw new
|
|
3693
|
-
var l =
|
|
3694
|
-
if (l) throw new
|
|
3695
|
-
if (!n.node_ops.mknod) throw new
|
|
3691
|
+
var Q = e.lookupPath(A, { parent: !0 }), n = Q.node, s = lA.basename(A);
|
|
3692
|
+
if (!s || s === "." || s === "..") throw new e.ErrnoError(28);
|
|
3693
|
+
var l = e.mayCreate(n, s);
|
|
3694
|
+
if (l) throw new e.ErrnoError(l);
|
|
3695
|
+
if (!n.node_ops.mknod) throw new e.ErrnoError(63);
|
|
3696
3696
|
return n.node_ops.mknod(n, s, g, C);
|
|
3697
3697
|
}, create(A, g) {
|
|
3698
|
-
return g = g !== void 0 ? g : 438, g &= 4095, g |= 32768,
|
|
3698
|
+
return g = g !== void 0 ? g : 438, g &= 4095, g |= 32768, e.mknod(A, g, 0);
|
|
3699
3699
|
}, mkdir(A, g) {
|
|
3700
|
-
return g = g !== void 0 ? g : 511, g &= 1023, g |= 16384,
|
|
3700
|
+
return g = g !== void 0 ? g : 511, g &= 1023, g |= 16384, e.mknod(A, g, 0);
|
|
3701
3701
|
}, mkdirTree(A, g) {
|
|
3702
3702
|
for (var C = A.split("/"), Q = "", n = 0; n < C.length; ++n) if (C[n]) {
|
|
3703
3703
|
Q += "/" + C[n];
|
|
3704
3704
|
try {
|
|
3705
|
-
|
|
3705
|
+
e.mkdir(Q, g);
|
|
3706
3706
|
} catch (s) {
|
|
3707
3707
|
if (s.errno != 20) throw s;
|
|
3708
3708
|
}
|
|
3709
3709
|
}
|
|
3710
3710
|
}, mkdev(A, g, C) {
|
|
3711
|
-
return typeof C > "u" && (C = g, g = 438), g |= 8192,
|
|
3711
|
+
return typeof C > "u" && (C = g, g = 438), g |= 8192, e.mknod(A, g, C);
|
|
3712
3712
|
}, symlink(A, g) {
|
|
3713
|
-
if (!eg.resolve(A)) throw new
|
|
3714
|
-
var C =
|
|
3715
|
-
if (!Q) throw new
|
|
3716
|
-
var n = lA.basename(g), s =
|
|
3717
|
-
if (s) throw new
|
|
3718
|
-
if (!Q.node_ops.symlink) throw new
|
|
3713
|
+
if (!eg.resolve(A)) throw new e.ErrnoError(44);
|
|
3714
|
+
var C = e.lookupPath(g, { parent: !0 }), Q = C.node;
|
|
3715
|
+
if (!Q) throw new e.ErrnoError(44);
|
|
3716
|
+
var n = lA.basename(g), s = e.mayCreate(Q, n);
|
|
3717
|
+
if (s) throw new e.ErrnoError(s);
|
|
3718
|
+
if (!Q.node_ops.symlink) throw new e.ErrnoError(63);
|
|
3719
3719
|
return Q.node_ops.symlink(Q, n, A);
|
|
3720
3720
|
}, rename(A, g) {
|
|
3721
3721
|
var C = lA.dirname(A), Q = lA.dirname(g), n = lA.basename(A), s = lA.basename(g), l, w, R;
|
|
3722
|
-
if (l =
|
|
3723
|
-
if (w.mount !== R.mount) throw new
|
|
3724
|
-
var k =
|
|
3725
|
-
if (Y.charAt(0) !== ".") throw new
|
|
3726
|
-
if (Y = eg.relative(g, C), Y.charAt(0) !== ".") throw new
|
|
3722
|
+
if (l = e.lookupPath(A, { parent: !0 }), w = l.node, l = e.lookupPath(g, { parent: !0 }), R = l.node, !w || !R) throw new e.ErrnoError(44);
|
|
3723
|
+
if (w.mount !== R.mount) throw new e.ErrnoError(75);
|
|
3724
|
+
var k = e.lookupNode(w, n), Y = eg.relative(A, Q);
|
|
3725
|
+
if (Y.charAt(0) !== ".") throw new e.ErrnoError(28);
|
|
3726
|
+
if (Y = eg.relative(g, C), Y.charAt(0) !== ".") throw new e.ErrnoError(55);
|
|
3727
3727
|
var j;
|
|
3728
3728
|
try {
|
|
3729
|
-
j =
|
|
3729
|
+
j = e.lookupNode(R, s);
|
|
3730
3730
|
} catch {
|
|
3731
3731
|
}
|
|
3732
3732
|
if (k !== j) {
|
|
3733
|
-
var b =
|
|
3734
|
-
if (V) throw new
|
|
3735
|
-
if (V = j ?
|
|
3736
|
-
if (!w.node_ops.rename) throw new
|
|
3737
|
-
if (
|
|
3738
|
-
if (R !== w && (V =
|
|
3739
|
-
|
|
3733
|
+
var b = e.isDir(k.mode), V = e.mayDelete(w, n, b);
|
|
3734
|
+
if (V) throw new e.ErrnoError(V);
|
|
3735
|
+
if (V = j ? e.mayDelete(R, s, b) : e.mayCreate(R, s), V) throw new e.ErrnoError(V);
|
|
3736
|
+
if (!w.node_ops.rename) throw new e.ErrnoError(63);
|
|
3737
|
+
if (e.isMountpoint(k) || j && e.isMountpoint(j)) throw new e.ErrnoError(10);
|
|
3738
|
+
if (R !== w && (V = e.nodePermissions(w, "w"), V)) throw new e.ErrnoError(V);
|
|
3739
|
+
e.hashRemoveNode(k);
|
|
3740
3740
|
try {
|
|
3741
3741
|
w.node_ops.rename(k, R, s);
|
|
3742
3742
|
} catch (_) {
|
|
3743
3743
|
throw _;
|
|
3744
3744
|
} finally {
|
|
3745
|
-
|
|
3745
|
+
e.hashAddNode(k);
|
|
3746
3746
|
}
|
|
3747
3747
|
}
|
|
3748
3748
|
}, rmdir(A) {
|
|
3749
|
-
var g =
|
|
3750
|
-
if (s) throw new
|
|
3751
|
-
if (!C.node_ops.rmdir) throw new
|
|
3752
|
-
if (
|
|
3753
|
-
C.node_ops.rmdir(C, Q),
|
|
3749
|
+
var g = e.lookupPath(A, { parent: !0 }), C = g.node, Q = lA.basename(A), n = e.lookupNode(C, Q), s = e.mayDelete(C, Q, !0);
|
|
3750
|
+
if (s) throw new e.ErrnoError(s);
|
|
3751
|
+
if (!C.node_ops.rmdir) throw new e.ErrnoError(63);
|
|
3752
|
+
if (e.isMountpoint(n)) throw new e.ErrnoError(10);
|
|
3753
|
+
C.node_ops.rmdir(C, Q), e.destroyNode(n);
|
|
3754
3754
|
}, readdir(A) {
|
|
3755
|
-
var g =
|
|
3756
|
-
if (!C.node_ops.readdir) throw new
|
|
3755
|
+
var g = e.lookupPath(A, { follow: !0 }), C = g.node;
|
|
3756
|
+
if (!C.node_ops.readdir) throw new e.ErrnoError(54);
|
|
3757
3757
|
return C.node_ops.readdir(C);
|
|
3758
3758
|
}, unlink(A) {
|
|
3759
|
-
var g =
|
|
3760
|
-
if (!C) throw new
|
|
3761
|
-
var Q = lA.basename(A), n =
|
|
3762
|
-
if (s) throw new
|
|
3763
|
-
if (!C.node_ops.unlink) throw new
|
|
3764
|
-
if (
|
|
3765
|
-
C.node_ops.unlink(C, Q),
|
|
3759
|
+
var g = e.lookupPath(A, { parent: !0 }), C = g.node;
|
|
3760
|
+
if (!C) throw new e.ErrnoError(44);
|
|
3761
|
+
var Q = lA.basename(A), n = e.lookupNode(C, Q), s = e.mayDelete(C, Q, !1);
|
|
3762
|
+
if (s) throw new e.ErrnoError(s);
|
|
3763
|
+
if (!C.node_ops.unlink) throw new e.ErrnoError(63);
|
|
3764
|
+
if (e.isMountpoint(n)) throw new e.ErrnoError(10);
|
|
3765
|
+
C.node_ops.unlink(C, Q), e.destroyNode(n);
|
|
3766
3766
|
}, readlink(A) {
|
|
3767
|
-
var g =
|
|
3768
|
-
if (!C) throw new
|
|
3769
|
-
if (!C.node_ops.readlink) throw new
|
|
3770
|
-
return eg.resolve(
|
|
3767
|
+
var g = e.lookupPath(A), C = g.node;
|
|
3768
|
+
if (!C) throw new e.ErrnoError(44);
|
|
3769
|
+
if (!C.node_ops.readlink) throw new e.ErrnoError(28);
|
|
3770
|
+
return eg.resolve(e.getPath(C.parent), C.node_ops.readlink(C));
|
|
3771
3771
|
}, stat(A, g) {
|
|
3772
|
-
var C =
|
|
3773
|
-
if (!Q) throw new
|
|
3774
|
-
if (!Q.node_ops.getattr) throw new
|
|
3772
|
+
var C = e.lookupPath(A, { follow: !g }), Q = C.node;
|
|
3773
|
+
if (!Q) throw new e.ErrnoError(44);
|
|
3774
|
+
if (!Q.node_ops.getattr) throw new e.ErrnoError(63);
|
|
3775
3775
|
return Q.node_ops.getattr(Q);
|
|
3776
3776
|
}, lstat(A) {
|
|
3777
|
-
return
|
|
3777
|
+
return e.stat(A, !0);
|
|
3778
3778
|
}, chmod(A, g, C) {
|
|
3779
3779
|
var Q;
|
|
3780
3780
|
if (typeof A == "string") {
|
|
3781
|
-
var n =
|
|
3781
|
+
var n = e.lookupPath(A, { follow: !C });
|
|
3782
3782
|
Q = n.node;
|
|
3783
3783
|
} else Q = A;
|
|
3784
|
-
if (!Q.node_ops.setattr) throw new
|
|
3784
|
+
if (!Q.node_ops.setattr) throw new e.ErrnoError(63);
|
|
3785
3785
|
Q.node_ops.setattr(Q, { mode: g & 4095 | Q.mode & -4096, timestamp: Date.now() });
|
|
3786
3786
|
}, lchmod(A, g) {
|
|
3787
|
-
|
|
3787
|
+
e.chmod(A, g, !0);
|
|
3788
3788
|
}, fchmod(A, g) {
|
|
3789
|
-
var C =
|
|
3790
|
-
|
|
3789
|
+
var C = e.getStreamChecked(A);
|
|
3790
|
+
e.chmod(C.node, g);
|
|
3791
3791
|
}, chown(A, g, C, Q) {
|
|
3792
3792
|
var n;
|
|
3793
3793
|
if (typeof A == "string") {
|
|
3794
|
-
var s =
|
|
3794
|
+
var s = e.lookupPath(A, { follow: !Q });
|
|
3795
3795
|
n = s.node;
|
|
3796
3796
|
} else n = A;
|
|
3797
|
-
if (!n.node_ops.setattr) throw new
|
|
3797
|
+
if (!n.node_ops.setattr) throw new e.ErrnoError(63);
|
|
3798
3798
|
n.node_ops.setattr(n, { timestamp: Date.now() });
|
|
3799
3799
|
}, lchown(A, g, C) {
|
|
3800
|
-
|
|
3800
|
+
e.chown(A, g, C, !0);
|
|
3801
3801
|
}, fchown(A, g, C) {
|
|
3802
|
-
var Q =
|
|
3803
|
-
|
|
3802
|
+
var Q = e.getStreamChecked(A);
|
|
3803
|
+
e.chown(Q.node, g, C);
|
|
3804
3804
|
}, truncate(A, g) {
|
|
3805
|
-
if (g < 0) throw new
|
|
3805
|
+
if (g < 0) throw new e.ErrnoError(28);
|
|
3806
3806
|
var C;
|
|
3807
3807
|
if (typeof A == "string") {
|
|
3808
|
-
var Q =
|
|
3808
|
+
var Q = e.lookupPath(A, { follow: !0 });
|
|
3809
3809
|
C = Q.node;
|
|
3810
3810
|
} else C = A;
|
|
3811
|
-
if (!C.node_ops.setattr) throw new
|
|
3812
|
-
if (
|
|
3813
|
-
if (!
|
|
3814
|
-
var n =
|
|
3815
|
-
if (n) throw new
|
|
3811
|
+
if (!C.node_ops.setattr) throw new e.ErrnoError(63);
|
|
3812
|
+
if (e.isDir(C.mode)) throw new e.ErrnoError(31);
|
|
3813
|
+
if (!e.isFile(C.mode)) throw new e.ErrnoError(28);
|
|
3814
|
+
var n = e.nodePermissions(C, "w");
|
|
3815
|
+
if (n) throw new e.ErrnoError(n);
|
|
3816
3816
|
C.node_ops.setattr(C, { size: g, timestamp: Date.now() });
|
|
3817
3817
|
}, ftruncate(A, g) {
|
|
3818
|
-
var C =
|
|
3819
|
-
if (!(C.flags & 2097155)) throw new
|
|
3820
|
-
|
|
3818
|
+
var C = e.getStreamChecked(A);
|
|
3819
|
+
if (!(C.flags & 2097155)) throw new e.ErrnoError(28);
|
|
3820
|
+
e.truncate(C.node, g);
|
|
3821
3821
|
}, utime(A, g, C) {
|
|
3822
|
-
var Q =
|
|
3822
|
+
var Q = e.lookupPath(A, { follow: !0 }), n = Q.node;
|
|
3823
3823
|
n.node_ops.setattr(n, { timestamp: Math.max(g, C) });
|
|
3824
3824
|
}, open(A, g, C) {
|
|
3825
|
-
if (A === "") throw new
|
|
3825
|
+
if (A === "") throw new e.ErrnoError(44);
|
|
3826
3826
|
g = typeof g == "string" ? GE(g) : g, C = typeof C > "u" ? 438 : C, g & 64 ? C = C & 4095 | 32768 : C = 0;
|
|
3827
3827
|
var Q;
|
|
3828
3828
|
if (typeof A == "object") Q = A;
|
|
3829
3829
|
else {
|
|
3830
3830
|
A = lA.normalize(A);
|
|
3831
3831
|
try {
|
|
3832
|
-
var n =
|
|
3832
|
+
var n = e.lookupPath(A, { follow: !(g & 131072) });
|
|
3833
3833
|
Q = n.node;
|
|
3834
3834
|
} catch {
|
|
3835
3835
|
}
|
|
3836
3836
|
}
|
|
3837
3837
|
var s = !1;
|
|
3838
3838
|
if (g & 64) if (Q) {
|
|
3839
|
-
if (g & 128) throw new
|
|
3840
|
-
} else Q =
|
|
3841
|
-
if (!Q) throw new
|
|
3842
|
-
if (
|
|
3839
|
+
if (g & 128) throw new e.ErrnoError(20);
|
|
3840
|
+
} else Q = e.mknod(A, C, 0), s = !0;
|
|
3841
|
+
if (!Q) throw new e.ErrnoError(44);
|
|
3842
|
+
if (e.isChrdev(Q.mode) && (g &= -513), g & 65536 && !e.isDir(Q.mode)) throw new e.ErrnoError(54);
|
|
3843
3843
|
if (!s) {
|
|
3844
|
-
var l =
|
|
3845
|
-
if (l) throw new
|
|
3844
|
+
var l = e.mayOpen(Q, g);
|
|
3845
|
+
if (l) throw new e.ErrnoError(l);
|
|
3846
3846
|
}
|
|
3847
|
-
g & 512 && !s &&
|
|
3848
|
-
var w =
|
|
3849
|
-
return w.stream_ops.open && w.stream_ops.open(w), i.logReadFiles && !(g & 1) && (
|
|
3847
|
+
g & 512 && !s && e.truncate(Q, 0), g &= -131713;
|
|
3848
|
+
var w = e.createStream({ node: Q, path: e.getPath(Q), flags: g, seekable: !0, position: 0, stream_ops: Q.stream_ops, ungotten: [], error: !1 });
|
|
3849
|
+
return w.stream_ops.open && w.stream_ops.open(w), i.logReadFiles && !(g & 1) && (e.readFiles || (e.readFiles = {}), A in e.readFiles || (e.readFiles[A] = 1)), w;
|
|
3850
3850
|
}, close(A) {
|
|
3851
|
-
if (
|
|
3851
|
+
if (e.isClosed(A)) throw new e.ErrnoError(8);
|
|
3852
3852
|
A.getdents && (A.getdents = null);
|
|
3853
3853
|
try {
|
|
3854
3854
|
A.stream_ops.close && A.stream_ops.close(A);
|
|
3855
3855
|
} catch (g) {
|
|
3856
3856
|
throw g;
|
|
3857
3857
|
} finally {
|
|
3858
|
-
|
|
3858
|
+
e.closeStream(A.fd);
|
|
3859
3859
|
}
|
|
3860
3860
|
A.fd = null;
|
|
3861
3861
|
}, isClosed(A) {
|
|
3862
3862
|
return A.fd === null;
|
|
3863
3863
|
}, llseek(A, g, C) {
|
|
3864
|
-
if (
|
|
3865
|
-
if (!A.seekable || !A.stream_ops.llseek) throw new
|
|
3866
|
-
if (C != 0 && C != 1 && C != 2) throw new
|
|
3864
|
+
if (e.isClosed(A)) throw new e.ErrnoError(8);
|
|
3865
|
+
if (!A.seekable || !A.stream_ops.llseek) throw new e.ErrnoError(70);
|
|
3866
|
+
if (C != 0 && C != 1 && C != 2) throw new e.ErrnoError(28);
|
|
3867
3867
|
return A.position = A.stream_ops.llseek(A, g, C), A.ungotten = [], A.position;
|
|
3868
3868
|
}, read(A, g, C, Q, n) {
|
|
3869
|
-
if (Q < 0 || n < 0) throw new
|
|
3870
|
-
if (
|
|
3871
|
-
if ((A.flags & 2097155) === 1) throw new
|
|
3872
|
-
if (
|
|
3873
|
-
if (!A.stream_ops.read) throw new
|
|
3869
|
+
if (Q < 0 || n < 0) throw new e.ErrnoError(28);
|
|
3870
|
+
if (e.isClosed(A)) throw new e.ErrnoError(8);
|
|
3871
|
+
if ((A.flags & 2097155) === 1) throw new e.ErrnoError(8);
|
|
3872
|
+
if (e.isDir(A.node.mode)) throw new e.ErrnoError(31);
|
|
3873
|
+
if (!A.stream_ops.read) throw new e.ErrnoError(28);
|
|
3874
3874
|
var s = typeof n < "u";
|
|
3875
3875
|
if (!s) n = A.position;
|
|
3876
|
-
else if (!A.seekable) throw new
|
|
3876
|
+
else if (!A.seekable) throw new e.ErrnoError(70);
|
|
3877
3877
|
var l = A.stream_ops.read(A, g, C, Q, n);
|
|
3878
3878
|
return s || (A.position += l), l;
|
|
3879
3879
|
}, write(A, g, C, Q, n, s) {
|
|
3880
|
-
if (Q < 0 || n < 0) throw new
|
|
3881
|
-
if (
|
|
3882
|
-
if (!(A.flags & 2097155)) throw new
|
|
3883
|
-
if (
|
|
3884
|
-
if (!A.stream_ops.write) throw new
|
|
3885
|
-
A.seekable && A.flags & 1024 &&
|
|
3880
|
+
if (Q < 0 || n < 0) throw new e.ErrnoError(28);
|
|
3881
|
+
if (e.isClosed(A)) throw new e.ErrnoError(8);
|
|
3882
|
+
if (!(A.flags & 2097155)) throw new e.ErrnoError(8);
|
|
3883
|
+
if (e.isDir(A.node.mode)) throw new e.ErrnoError(31);
|
|
3884
|
+
if (!A.stream_ops.write) throw new e.ErrnoError(28);
|
|
3885
|
+
A.seekable && A.flags & 1024 && e.llseek(A, 0, 2);
|
|
3886
3886
|
var l = typeof n < "u";
|
|
3887
3887
|
if (!l) n = A.position;
|
|
3888
|
-
else if (!A.seekable) throw new
|
|
3888
|
+
else if (!A.seekable) throw new e.ErrnoError(70);
|
|
3889
3889
|
var w = A.stream_ops.write(A, g, C, Q, n, s);
|
|
3890
3890
|
return l || (A.position += w), w;
|
|
3891
3891
|
}, allocate(A, g, C) {
|
|
3892
|
-
if (
|
|
3893
|
-
if (g < 0 || C <= 0) throw new
|
|
3894
|
-
if (!(A.flags & 2097155)) throw new
|
|
3895
|
-
if (!
|
|
3896
|
-
if (!A.stream_ops.allocate) throw new
|
|
3892
|
+
if (e.isClosed(A)) throw new e.ErrnoError(8);
|
|
3893
|
+
if (g < 0 || C <= 0) throw new e.ErrnoError(28);
|
|
3894
|
+
if (!(A.flags & 2097155)) throw new e.ErrnoError(8);
|
|
3895
|
+
if (!e.isFile(A.node.mode) && !e.isDir(A.node.mode)) throw new e.ErrnoError(43);
|
|
3896
|
+
if (!A.stream_ops.allocate) throw new e.ErrnoError(138);
|
|
3897
3897
|
A.stream_ops.allocate(A, g, C);
|
|
3898
3898
|
}, mmap(A, g, C, Q, n) {
|
|
3899
|
-
if (Q & 2 && !(n & 2) && (A.flags & 2097155) !== 2) throw new
|
|
3900
|
-
if ((A.flags & 2097155) === 1) throw new
|
|
3901
|
-
if (!A.stream_ops.mmap) throw new
|
|
3899
|
+
if (Q & 2 && !(n & 2) && (A.flags & 2097155) !== 2) throw new e.ErrnoError(2);
|
|
3900
|
+
if ((A.flags & 2097155) === 1) throw new e.ErrnoError(2);
|
|
3901
|
+
if (!A.stream_ops.mmap) throw new e.ErrnoError(43);
|
|
3902
3902
|
return A.stream_ops.mmap(A, g, C, Q, n);
|
|
3903
3903
|
}, msync(A, g, C, Q, n) {
|
|
3904
3904
|
return A.stream_ops.msync ? A.stream_ops.msync(A, g, C, Q, n) : 0;
|
|
3905
3905
|
}, ioctl(A, g, C) {
|
|
3906
|
-
if (!A.stream_ops.ioctl) throw new
|
|
3906
|
+
if (!A.stream_ops.ioctl) throw new e.ErrnoError(59);
|
|
3907
3907
|
return A.stream_ops.ioctl(A, g, C);
|
|
3908
3908
|
}, readFile(A, g = {}) {
|
|
3909
3909
|
if (g.flags = g.flags || 0, g.encoding = g.encoding || "binary", g.encoding !== "utf8" && g.encoding !== "binary") throw new Error(`Invalid encoding type "${g.encoding}"`);
|
|
3910
|
-
var C, Q =
|
|
3911
|
-
return
|
|
3910
|
+
var C, Q = e.open(A, g.flags), n = e.stat(A), s = n.size, l = new Uint8Array(s);
|
|
3911
|
+
return e.read(Q, l, 0, s, 0), g.encoding === "utf8" ? C = Gg(l, 0) : g.encoding === "binary" && (C = l), e.close(Q), C;
|
|
3912
3912
|
}, writeFile(A, g, C = {}) {
|
|
3913
3913
|
C.flags = C.flags || 577;
|
|
3914
|
-
var Q =
|
|
3914
|
+
var Q = e.open(A, C.flags, C.mode);
|
|
3915
3915
|
if (typeof g == "string") {
|
|
3916
3916
|
var n = new Uint8Array(XI(g) + 1), s = OI(g, n, 0, n.length);
|
|
3917
|
-
|
|
3918
|
-
} else if (ArrayBuffer.isView(g))
|
|
3917
|
+
e.write(Q, n, 0, s, void 0, C.canOwn);
|
|
3918
|
+
} else if (ArrayBuffer.isView(g)) e.write(Q, g, 0, g.byteLength, void 0, C.canOwn);
|
|
3919
3919
|
else throw new Error("Unsupported data type");
|
|
3920
|
-
|
|
3921
|
-
}, cwd: () =>
|
|
3922
|
-
var g =
|
|
3923
|
-
if (g.node === null) throw new
|
|
3924
|
-
if (!
|
|
3925
|
-
var C =
|
|
3926
|
-
if (C) throw new
|
|
3927
|
-
|
|
3920
|
+
e.close(Q);
|
|
3921
|
+
}, cwd: () => e.currentPath, chdir(A) {
|
|
3922
|
+
var g = e.lookupPath(A, { follow: !0 });
|
|
3923
|
+
if (g.node === null) throw new e.ErrnoError(44);
|
|
3924
|
+
if (!e.isDir(g.node.mode)) throw new e.ErrnoError(54);
|
|
3925
|
+
var C = e.nodePermissions(g.node, "x");
|
|
3926
|
+
if (C) throw new e.ErrnoError(C);
|
|
3927
|
+
e.currentPath = g.path;
|
|
3928
3928
|
}, createDefaultDirectories() {
|
|
3929
|
-
|
|
3929
|
+
e.mkdir("/tmp"), e.mkdir("/home"), e.mkdir("/home/web_user");
|
|
3930
3930
|
}, createDefaultDevices() {
|
|
3931
|
-
|
|
3931
|
+
e.mkdir("/dev"), e.registerDevice(e.makedev(1, 3), { read: () => 0, write: (Q, n, s, l, w) => l }), e.mkdev("/dev/null", e.makedev(1, 3)), ug.register(e.makedev(5, 0), ug.default_tty_ops), ug.register(e.makedev(6, 0), ug.default_tty1_ops), e.mkdev("/dev/tty", e.makedev(5, 0)), e.mkdev("/dev/tty1", e.makedev(6, 0));
|
|
3932
3932
|
var A = new Uint8Array(1024), g = 0, C = () => (g === 0 && (g = IB(A).byteLength), A[--g]);
|
|
3933
|
-
|
|
3933
|
+
e.createDevice("/dev", "random", C), e.createDevice("/dev", "urandom", C), e.mkdir("/dev/shm"), e.mkdir("/dev/shm/tmp");
|
|
3934
3934
|
}, createSpecialDirectories() {
|
|
3935
|
-
|
|
3936
|
-
var A =
|
|
3937
|
-
|
|
3938
|
-
var g =
|
|
3935
|
+
e.mkdir("/proc");
|
|
3936
|
+
var A = e.mkdir("/proc/self");
|
|
3937
|
+
e.mkdir("/proc/self/fd"), e.mount({ mount() {
|
|
3938
|
+
var g = e.createNode(A, "fd", 16895, 73);
|
|
3939
3939
|
return g.node_ops = { lookup(C, Q) {
|
|
3940
|
-
var n = +Q, s =
|
|
3940
|
+
var n = +Q, s = e.getStreamChecked(n), l = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => s.path } };
|
|
3941
3941
|
return l.parent = l, l;
|
|
3942
3942
|
} }, g;
|
|
3943
3943
|
} }, {}, "/proc/self/fd");
|
|
3944
3944
|
}, createStandardStreams() {
|
|
3945
|
-
i.stdin ?
|
|
3945
|
+
i.stdin ? e.createDevice("/dev", "stdin", i.stdin) : e.symlink("/dev/tty", "/dev/stdin"), i.stdout ? e.createDevice("/dev", "stdout", null, i.stdout) : e.symlink("/dev/tty", "/dev/stdout"), i.stderr ? e.createDevice("/dev", "stderr", null, i.stderr) : e.symlink("/dev/tty1", "/dev/stderr"), e.open("/dev/stdin", 0), e.open("/dev/stdout", 1), e.open("/dev/stderr", 1);
|
|
3946
3946
|
}, staticInit() {
|
|
3947
3947
|
[44].forEach((A) => {
|
|
3948
|
-
|
|
3949
|
-
}),
|
|
3948
|
+
e.genericErrors[A] = new e.ErrnoError(A), e.genericErrors[A].stack = "<generic error, no stack>";
|
|
3949
|
+
}), e.nameTable = new Array(4096), e.mount(gA, {}, "/"), e.createDefaultDirectories(), e.createDefaultDevices(), e.createSpecialDirectories(), e.filesystems = { MEMFS: gA };
|
|
3950
3950
|
}, init(A, g, C) {
|
|
3951
|
-
|
|
3951
|
+
e.init.initialized = !0, i.stdin = A || i.stdin, i.stdout = g || i.stdout, i.stderr = C || i.stderr, e.createStandardStreams();
|
|
3952
3952
|
}, quit() {
|
|
3953
|
-
|
|
3954
|
-
for (var A = 0; A <
|
|
3955
|
-
var g =
|
|
3956
|
-
g &&
|
|
3953
|
+
e.init.initialized = !1;
|
|
3954
|
+
for (var A = 0; A < e.streams.length; A++) {
|
|
3955
|
+
var g = e.streams[A];
|
|
3956
|
+
g && e.close(g);
|
|
3957
3957
|
}
|
|
3958
3958
|
}, findObject(A, g) {
|
|
3959
|
-
var C =
|
|
3959
|
+
var C = e.analyzePath(A, g);
|
|
3960
3960
|
return C.exists ? C.object : null;
|
|
3961
3961
|
}, analyzePath(A, g) {
|
|
3962
3962
|
try {
|
|
3963
|
-
var C =
|
|
3963
|
+
var C = e.lookupPath(A, { follow: !g });
|
|
3964
3964
|
A = C.path;
|
|
3965
3965
|
} catch {
|
|
3966
3966
|
}
|
|
3967
3967
|
var Q = { isRoot: !1, exists: !1, error: 0, name: null, path: null, object: null, parentExists: !1, parentPath: null, parentObject: null };
|
|
3968
3968
|
try {
|
|
3969
|
-
var C =
|
|
3970
|
-
Q.parentExists = !0, Q.parentPath = C.path, Q.parentObject = C.node, Q.name = lA.basename(A), C =
|
|
3969
|
+
var C = e.lookupPath(A, { parent: !0 });
|
|
3970
|
+
Q.parentExists = !0, Q.parentPath = C.path, Q.parentObject = C.node, Q.name = lA.basename(A), C = e.lookupPath(A, { follow: !g }), Q.exists = !0, Q.path = C.path, Q.object = C.node, Q.name = C.node.name, Q.isRoot = C.path === "/";
|
|
3971
3971
|
} catch (n) {
|
|
3972
3972
|
Q.error = n.errno;
|
|
3973
3973
|
}
|
|
3974
3974
|
return Q;
|
|
3975
3975
|
}, createPath(A, g, C, Q) {
|
|
3976
|
-
A = typeof A == "string" ? A :
|
|
3976
|
+
A = typeof A == "string" ? A : e.getPath(A);
|
|
3977
3977
|
for (var n = g.split("/").reverse(); n.length; ) {
|
|
3978
3978
|
var s = n.pop();
|
|
3979
3979
|
if (s) {
|
|
3980
3980
|
var l = lA.join2(A, s);
|
|
3981
3981
|
try {
|
|
3982
|
-
|
|
3982
|
+
e.mkdir(l);
|
|
3983
3983
|
} catch {
|
|
3984
3984
|
}
|
|
3985
3985
|
A = l;
|
|
@@ -3987,26 +3987,26 @@ return ret;
|
|
|
3987
3987
|
}
|
|
3988
3988
|
return l;
|
|
3989
3989
|
}, createFile(A, g, C, Q, n) {
|
|
3990
|
-
var s = lA.join2(typeof A == "string" ? A :
|
|
3991
|
-
return
|
|
3990
|
+
var s = lA.join2(typeof A == "string" ? A : e.getPath(A), g), l = _I(Q, n);
|
|
3991
|
+
return e.create(s, l);
|
|
3992
3992
|
}, createDataFile(A, g, C, Q, n, s) {
|
|
3993
3993
|
var l = g;
|
|
3994
|
-
A && (A = typeof A == "string" ? A :
|
|
3995
|
-
var w = _I(Q, n), R =
|
|
3994
|
+
A && (A = typeof A == "string" ? A : e.getPath(A), l = g ? lA.join2(A, g) : A);
|
|
3995
|
+
var w = _I(Q, n), R = e.create(l, w);
|
|
3996
3996
|
if (C) {
|
|
3997
3997
|
if (typeof C == "string") {
|
|
3998
3998
|
for (var k = new Array(C.length), Y = 0, j = C.length; Y < j; ++Y) k[Y] = C.charCodeAt(Y);
|
|
3999
3999
|
C = k;
|
|
4000
4000
|
}
|
|
4001
|
-
|
|
4002
|
-
var b =
|
|
4003
|
-
|
|
4001
|
+
e.chmod(R, w | 146);
|
|
4002
|
+
var b = e.open(R, 577);
|
|
4003
|
+
e.write(b, C, 0, C.length, 0, s), e.close(b), e.chmod(R, w);
|
|
4004
4004
|
}
|
|
4005
4005
|
}, createDevice(A, g, C, Q) {
|
|
4006
|
-
var n = lA.join2(typeof A == "string" ? A :
|
|
4007
|
-
|
|
4008
|
-
var l =
|
|
4009
|
-
return
|
|
4006
|
+
var n = lA.join2(typeof A == "string" ? A : e.getPath(A), g), s = _I(!!C, !!Q);
|
|
4007
|
+
e.createDevice.major || (e.createDevice.major = 64);
|
|
4008
|
+
var l = e.makedev(e.createDevice.major++, 0);
|
|
4009
|
+
return e.registerDevice(l, { open(w) {
|
|
4010
4010
|
w.seekable = !1;
|
|
4011
4011
|
}, close(w) {
|
|
4012
4012
|
var R;
|
|
@@ -4017,9 +4017,9 @@ return ret;
|
|
|
4017
4017
|
try {
|
|
4018
4018
|
_ = C();
|
|
4019
4019
|
} catch {
|
|
4020
|
-
throw new
|
|
4020
|
+
throw new e.ErrnoError(29);
|
|
4021
4021
|
}
|
|
4022
|
-
if (_ === void 0 && b === 0) throw new
|
|
4022
|
+
if (_ === void 0 && b === 0) throw new e.ErrnoError(6);
|
|
4023
4023
|
if (_ == null) break;
|
|
4024
4024
|
b++, R[k + V] = _;
|
|
4025
4025
|
}
|
|
@@ -4028,17 +4028,17 @@ return ret;
|
|
|
4028
4028
|
for (var b = 0; b < Y; b++) try {
|
|
4029
4029
|
Q(R[k + b]);
|
|
4030
4030
|
} catch {
|
|
4031
|
-
throw new
|
|
4031
|
+
throw new e.ErrnoError(29);
|
|
4032
4032
|
}
|
|
4033
4033
|
return Y && (w.node.timestamp = Date.now()), b;
|
|
4034
|
-
} }),
|
|
4034
|
+
} }), e.mkdev(n, s, l);
|
|
4035
4035
|
}, forceLoadFile(A) {
|
|
4036
4036
|
if (A.isDevice || A.isFolder || A.link || A.contents) return !0;
|
|
4037
4037
|
if (typeof XMLHttpRequest < "u") throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
|
|
4038
4038
|
if (S) try {
|
|
4039
4039
|
A.contents = lI(S(A.url), !0), A.usedBytes = A.contents.length;
|
|
4040
4040
|
} catch {
|
|
4041
|
-
throw new
|
|
4041
|
+
throw new e.ErrnoError(29);
|
|
4042
4042
|
}
|
|
4043
4043
|
else throw new Error("Cannot load without read() or XMLHttpRequest.");
|
|
4044
4044
|
}, createLazyFile(A, g, C, Q, n) {
|
|
@@ -4071,7 +4071,7 @@ return ret;
|
|
|
4071
4071
|
var VA = sA * L, GA = (sA + 1) * L - 1;
|
|
4072
4072
|
if (GA = Math.min(GA, _ - 1), typeof UA.chunks[sA] > "u" && (UA.chunks[sA] = T(VA, GA)), typeof UA.chunks[sA] > "u") throw new Error("doXHR failed!");
|
|
4073
4073
|
return UA.chunks[sA];
|
|
4074
|
-
}), (LA || !_) && (L = _ = 1, _ = this.getter(0).length, L = _,
|
|
4074
|
+
}), (LA || !_) && (L = _ = 1, _ = this.getter(0).length, L = _, v("LazyFiles on gzip forces download of the whole file when length is accessed")), this._length = _, this._chunkSize = L, this.lengthKnown = !0;
|
|
4075
4075
|
}
|
|
4076
4076
|
get length() {
|
|
4077
4077
|
return this.lengthKnown || this.cacheLength(), this._length;
|
|
@@ -4084,14 +4084,14 @@ return ret;
|
|
|
4084
4084
|
if (!u) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
|
|
4085
4085
|
var l = new s(), w = { isDevice: !1, contents: l };
|
|
4086
4086
|
} else var w = { isDevice: !1, url: C };
|
|
4087
|
-
var R =
|
|
4087
|
+
var R = e.createFile(A, g, w, Q, n);
|
|
4088
4088
|
w.contents ? R.contents = w.contents : w.url && (R.contents = null, R.url = w.url), Object.defineProperties(R, { usedBytes: { get: function() {
|
|
4089
4089
|
return this.contents.length;
|
|
4090
4090
|
} } });
|
|
4091
4091
|
var k = {}, Y = Object.keys(R.stream_ops);
|
|
4092
4092
|
Y.forEach((b) => {
|
|
4093
4093
|
var V = R.stream_ops[b];
|
|
4094
|
-
k[b] = (..._) => (
|
|
4094
|
+
k[b] = (..._) => (e.forceLoadFile(R), V(..._));
|
|
4095
4095
|
});
|
|
4096
4096
|
function j(b, V, _, hA, FA) {
|
|
4097
4097
|
var LA = b.node.contents;
|
|
@@ -4101,37 +4101,37 @@ return ret;
|
|
|
4101
4101
|
else for (var T = 0; T < L; T++) V[_ + T] = LA.get(FA + T);
|
|
4102
4102
|
return L;
|
|
4103
4103
|
}
|
|
4104
|
-
return k.read = (b, V, _, hA, FA) => (
|
|
4105
|
-
|
|
4104
|
+
return k.read = (b, V, _, hA, FA) => (e.forceLoadFile(R), j(b, V, _, hA, FA)), k.mmap = (b, V, _, hA, FA) => {
|
|
4105
|
+
e.forceLoadFile(R);
|
|
4106
4106
|
var LA = CB(V);
|
|
4107
|
-
if (!LA) throw new
|
|
4107
|
+
if (!LA) throw new e.ErrnoError(48);
|
|
4108
4108
|
return j(b, U, LA, V, _), { ptr: LA, allocated: !0 };
|
|
4109
4109
|
}, R.stream_ops = k, R;
|
|
4110
4110
|
} }, Xg = { DEFAULT_POLLMASK: 5, calculateAt(A, g, C) {
|
|
4111
4111
|
if (lA.isAbs(g)) return g;
|
|
4112
4112
|
var Q;
|
|
4113
|
-
if (A === -100) Q =
|
|
4113
|
+
if (A === -100) Q = e.cwd();
|
|
4114
4114
|
else {
|
|
4115
4115
|
var n = Xg.getStreamFromFD(A);
|
|
4116
4116
|
Q = n.path;
|
|
4117
4117
|
}
|
|
4118
4118
|
if (g.length == 0) {
|
|
4119
|
-
if (!C) throw new
|
|
4119
|
+
if (!C) throw new e.ErrnoError(44);
|
|
4120
4120
|
return Q;
|
|
4121
4121
|
}
|
|
4122
4122
|
return lA.join2(Q, g);
|
|
4123
4123
|
}, doStat(A, g, C) {
|
|
4124
4124
|
var Q = A(g);
|
|
4125
|
-
|
|
4125
|
+
M[C >> 2] = Q.dev, M[C + 4 >> 2] = Q.mode, m[C + 8 >> 2] = Q.nlink, M[C + 12 >> 2] = Q.uid, M[C + 16 >> 2] = Q.gid, M[C + 20 >> 2] = Q.rdev, YA = [Q.size >>> 0, (QA = Q.size, +Math.abs(QA) >= 1 ? QA > 0 ? +Math.floor(QA / 4294967296) >>> 0 : ~~+Math.ceil((QA - +(~~QA >>> 0)) / 4294967296) >>> 0 : 0)], M[C + 24 >> 2] = YA[0], M[C + 28 >> 2] = YA[1], M[C + 32 >> 2] = 4096, M[C + 36 >> 2] = Q.blocks;
|
|
4126
4126
|
var n = Q.atime.getTime(), s = Q.mtime.getTime(), l = Q.ctime.getTime();
|
|
4127
|
-
return YA = [Math.floor(n / 1e3) >>> 0, (QA = Math.floor(n / 1e3), +Math.abs(QA) >= 1 ? QA > 0 ? +Math.floor(QA / 4294967296) >>> 0 : ~~+Math.ceil((QA - +(~~QA >>> 0)) / 4294967296) >>> 0 : 0)],
|
|
4127
|
+
return YA = [Math.floor(n / 1e3) >>> 0, (QA = Math.floor(n / 1e3), +Math.abs(QA) >= 1 ? QA > 0 ? +Math.floor(QA / 4294967296) >>> 0 : ~~+Math.ceil((QA - +(~~QA >>> 0)) / 4294967296) >>> 0 : 0)], M[C + 40 >> 2] = YA[0], M[C + 44 >> 2] = YA[1], m[C + 48 >> 2] = n % 1e3 * 1e3, YA = [Math.floor(s / 1e3) >>> 0, (QA = Math.floor(s / 1e3), +Math.abs(QA) >= 1 ? QA > 0 ? +Math.floor(QA / 4294967296) >>> 0 : ~~+Math.ceil((QA - +(~~QA >>> 0)) / 4294967296) >>> 0 : 0)], M[C + 56 >> 2] = YA[0], M[C + 60 >> 2] = YA[1], m[C + 64 >> 2] = s % 1e3 * 1e3, YA = [Math.floor(l / 1e3) >>> 0, (QA = Math.floor(l / 1e3), +Math.abs(QA) >= 1 ? QA > 0 ? +Math.floor(QA / 4294967296) >>> 0 : ~~+Math.ceil((QA - +(~~QA >>> 0)) / 4294967296) >>> 0 : 0)], M[C + 72 >> 2] = YA[0], M[C + 76 >> 2] = YA[1], m[C + 80 >> 2] = l % 1e3 * 1e3, YA = [Q.ino >>> 0, (QA = Q.ino, +Math.abs(QA) >= 1 ? QA > 0 ? +Math.floor(QA / 4294967296) >>> 0 : ~~+Math.ceil((QA - +(~~QA >>> 0)) / 4294967296) >>> 0 : 0)], M[C + 88 >> 2] = YA[0], M[C + 92 >> 2] = YA[1], 0;
|
|
4128
4128
|
}, doMsync(A, g, C, Q, n) {
|
|
4129
|
-
if (!
|
|
4129
|
+
if (!e.isFile(g.node.mode)) throw new e.ErrnoError(43);
|
|
4130
4130
|
if (Q & 2) return 0;
|
|
4131
|
-
var s =
|
|
4132
|
-
|
|
4131
|
+
var s = H.slice(A, A + C);
|
|
4132
|
+
e.msync(g, s, n, C, Q);
|
|
4133
4133
|
}, getStreamFromFD(A) {
|
|
4134
|
-
var g =
|
|
4134
|
+
var g = e.getStreamChecked(A);
|
|
4135
4135
|
return g;
|
|
4136
4136
|
}, varargs: void 0, getStr(A) {
|
|
4137
4137
|
var g = cI(A);
|
|
@@ -4140,9 +4140,9 @@ return ret;
|
|
|
4140
4140
|
function kE(A) {
|
|
4141
4141
|
try {
|
|
4142
4142
|
var g = Xg.getStreamFromFD(A);
|
|
4143
|
-
return
|
|
4143
|
+
return e.close(g), 0;
|
|
4144
4144
|
} catch (C) {
|
|
4145
|
-
if (typeof
|
|
4145
|
+
if (typeof e > "u" || C.name !== "ErrnoError") throw C;
|
|
4146
4146
|
return C.errno;
|
|
4147
4147
|
}
|
|
4148
4148
|
}
|
|
@@ -4150,7 +4150,7 @@ return ret;
|
|
|
4150
4150
|
for (var n = 0, s = 0; s < C; s++) {
|
|
4151
4151
|
var l = m[g >> 2], w = m[g + 4 >> 2];
|
|
4152
4152
|
g += 8;
|
|
4153
|
-
var R =
|
|
4153
|
+
var R = e.read(A, U, l, w, Q);
|
|
4154
4154
|
if (R < 0) return -1;
|
|
4155
4155
|
if (n += R, R < w) break;
|
|
4156
4156
|
}
|
|
@@ -4161,7 +4161,7 @@ return ret;
|
|
|
4161
4161
|
var n = Xg.getStreamFromFD(A), s = SE(n, g, C);
|
|
4162
4162
|
return m[Q >> 2] = s, 0;
|
|
4163
4163
|
} catch (l) {
|
|
4164
|
-
if (typeof
|
|
4164
|
+
if (typeof e > "u" || l.name !== "ErrnoError") throw l;
|
|
4165
4165
|
return l.errno;
|
|
4166
4166
|
}
|
|
4167
4167
|
}
|
|
@@ -4171,9 +4171,9 @@ return ret;
|
|
|
4171
4171
|
try {
|
|
4172
4172
|
if (isNaN(s)) return 61;
|
|
4173
4173
|
var l = Xg.getStreamFromFD(A);
|
|
4174
|
-
return
|
|
4174
|
+
return e.llseek(l, s, Q), YA = [l.position >>> 0, (QA = l.position, +Math.abs(QA) >= 1 ? QA > 0 ? +Math.floor(QA / 4294967296) >>> 0 : ~~+Math.ceil((QA - +(~~QA >>> 0)) / 4294967296) >>> 0 : 0)], M[n >> 2] = YA[0], M[n + 4 >> 2] = YA[1], l.getdents && s === 0 && Q === 0 && (l.getdents = null), 0;
|
|
4175
4175
|
} catch (w) {
|
|
4176
|
-
if (typeof
|
|
4176
|
+
if (typeof e > "u" || w.name !== "ErrnoError") throw w;
|
|
4177
4177
|
return w.errno;
|
|
4178
4178
|
}
|
|
4179
4179
|
}
|
|
@@ -4181,7 +4181,7 @@ return ret;
|
|
|
4181
4181
|
for (var n = 0, s = 0; s < C; s++) {
|
|
4182
4182
|
var l = m[g >> 2], w = m[g + 4 >> 2];
|
|
4183
4183
|
g += 8;
|
|
4184
|
-
var R =
|
|
4184
|
+
var R = e.write(A, U, l, w, Q);
|
|
4185
4185
|
if (R < 0) return -1;
|
|
4186
4186
|
n += R;
|
|
4187
4187
|
}
|
|
@@ -4192,7 +4192,7 @@ return ret;
|
|
|
4192
4192
|
var n = Xg.getStreamFromFD(A), s = ME(n, g, C);
|
|
4193
4193
|
return m[Q >> 2] = s, 0;
|
|
4194
4194
|
} catch (l) {
|
|
4195
|
-
if (typeof
|
|
4195
|
+
if (typeof e > "u" || l.name !== "ErrnoError") throw l;
|
|
4196
4196
|
return l.errno;
|
|
4197
4197
|
}
|
|
4198
4198
|
}
|
|
@@ -4209,7 +4209,7 @@ return ret;
|
|
|
4209
4209
|
}, HE = (A, g) => {
|
|
4210
4210
|
U.set(A, g);
|
|
4211
4211
|
}, KE = (A, g, C, Q) => {
|
|
4212
|
-
var n = m[Q + 40 >> 2], s = { tm_sec:
|
|
4212
|
+
var n = m[Q + 40 >> 2], s = { tm_sec: M[Q >> 2], tm_min: M[Q + 4 >> 2], tm_hour: M[Q + 8 >> 2], tm_mday: M[Q + 12 >> 2], tm_mon: M[Q + 16 >> 2], tm_year: M[Q + 20 >> 2], tm_wday: M[Q + 24 >> 2], tm_yday: M[Q + 28 >> 2], tm_isdst: M[Q + 32 >> 2], tm_gmtoff: M[Q + 36 >> 2], tm_zone: n ? cI(n) : "" }, l = cI(C), w = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S", "%Ec": "%c", "%EC": "%C", "%Ex": "%m/%d/%y", "%EX": "%H:%M:%S", "%Ey": "%y", "%EY": "%Y", "%Od": "%d", "%Oe": "%e", "%OH": "%H", "%OI": "%I", "%Om": "%m", "%OM": "%M", "%OS": "%S", "%Ou": "%u", "%OU": "%U", "%OV": "%V", "%Ow": "%w", "%OW": "%W", "%Oy": "%y" };
|
|
4213
4213
|
for (var R in w) l = l.replace(new RegExp(R, "g"), w[R]);
|
|
4214
4214
|
var k = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], Y = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
4215
4215
|
function j(L, T, UA) {
|
|
@@ -4292,7 +4292,7 @@ return ret;
|
|
|
4292
4292
|
constructor(A) {
|
|
4293
4293
|
super(A), this.name = "InternalError";
|
|
4294
4294
|
}
|
|
4295
|
-
}, lQ(), rQ(), FQ(), bC = i.UnboundTypeError = LQ(Error, "UnboundTypeError"), qQ(),
|
|
4295
|
+
}, lQ(), rQ(), FQ(), bC = i.UnboundTypeError = LQ(Error, "UnboundTypeError"), qQ(), e.createPreloadedFile = NE, e.staticInit();
|
|
4296
4296
|
var qE = { t: $B, f: gQ, x: IQ, p: CQ, k: EQ, j: UQ, d: YQ, o: mQ, c: HQ, E: WC, i: TQ, b: jQ, a: WQ, y: VQ, h: OQ, e: gE, l: IE, v: CE, w: BE, u: QE, m: eE, r: rE, s: sE, B: lE, C: dE, A: kE, z: LE, n: pE, g: JE, D: AB, q: vE }, TA = _B(), EB = (A) => (EB = TA.H)(A), $I = (A) => ($I = TA.J)(A), tg = (A) => (tg = TA.K)(A), eB = (A, g) => (eB = TA.L)(A, g), tB = (A, g) => (tB = TA.M)(A, g), oB = (A) => (oB = TA.N)(A);
|
|
4297
4297
|
i.dynCall_jiji = (A, g, C, Q, n) => (i.dynCall_jiji = TA.O)(A, g, C, Q, n), i.dynCall_viijii = (A, g, C, Q, n, s, l) => (i.dynCall_viijii = TA.P)(A, g, C, Q, n, s, l), i.dynCall_iiiiij = (A, g, C, Q, n, s, l) => (i.dynCall_iiiiij = TA.Q)(A, g, C, Q, n, s, l), i.dynCall_iiiiijj = (A, g, C, Q, n, s, l, w, R) => (i.dynCall_iiiiijj = TA.R)(A, g, C, Q, n, s, l, w, R), i.dynCall_iiiiiijj = (A, g, C, Q, n, s, l, w, R, k) => (i.dynCall_iiiiiijj = TA.S)(A, g, C, Q, n, s, l, w, R, k);
|
|
4298
4298
|
var wI;
|
|
@@ -4318,7 +4318,7 @@ return ret;
|
|
|
4318
4318
|
}), TB = (I) => Object.prototype.toString.call(I), iC = (I) => TB(I) === "[object String]", so = (I) => TB(I) === "[object Array]", co = (I, E) => {
|
|
4319
4319
|
let B = { ...I };
|
|
4320
4320
|
E = so(E) ? E : [E];
|
|
4321
|
-
for (let
|
|
4321
|
+
for (let t of E) delete B[t];
|
|
4322
4322
|
return B;
|
|
4323
4323
|
}, lo = typeof globalThis == "object" && globalThis !== null && globalThis.Object === Object && globalThis, wo = typeof self == "object" && self !== null && self.Object === Object && self;
|
|
4324
4324
|
lo || wo || Function("return this")();
|
|
@@ -4407,7 +4407,7 @@ const ho = [
|
|
|
4407
4407
|
slots: E,
|
|
4408
4408
|
attrs: B
|
|
4409
4409
|
}) {
|
|
4410
|
-
const
|
|
4410
|
+
const t = {
|
|
4411
4411
|
titleAlign: "start",
|
|
4412
4412
|
closable: !1,
|
|
4413
4413
|
draggable: !0,
|
|
@@ -4441,7 +4441,7 @@ const ho = [
|
|
|
4441
4441
|
return () => N(OA("a-modal"), UI({
|
|
4442
4442
|
id: o.value,
|
|
4443
4443
|
class: ["common-modal", `common-modal-footer__${I.footerAlign}`, I.hideHeaderBorder && "hide-header-border", I.hideFooterBorder && "hide-footer-border"]
|
|
4444
|
-
},
|
|
4444
|
+
}, t), {
|
|
4445
4445
|
...i
|
|
4446
4446
|
});
|
|
4447
4447
|
}
|
|
@@ -4451,67 +4451,67 @@ const ho = [
|
|
|
4451
4451
|
I.component(rC.name, rC);
|
|
4452
4452
|
const E = {};
|
|
4453
4453
|
for (const B of Object.keys(aC))
|
|
4454
|
-
E[B] = (
|
|
4454
|
+
E[B] = (t, o = I._context) => aC[B](t, o);
|
|
4455
4455
|
I.config.globalProperties.$modal = E;
|
|
4456
4456
|
}
|
|
4457
4457
|
}), KA = (I, E, B) => {
|
|
4458
|
-
const
|
|
4458
|
+
const t = XE({ value: I }), { value: o } = zE(t);
|
|
4459
4459
|
return [o, (a) => {
|
|
4460
|
-
|
|
4460
|
+
t.value = a, E == null || E(t.value);
|
|
4461
4461
|
}];
|
|
4462
4462
|
}, GI = "tag-range-highlight", fo = () => {
|
|
4463
4463
|
const I = gg(fg), [E, B] = KA({
|
|
4464
4464
|
index: -1,
|
|
4465
4465
|
offset: -1
|
|
4466
|
-
}), [
|
|
4466
|
+
}), [t, o] = KA({
|
|
4467
4467
|
index: -1,
|
|
4468
4468
|
offset: -1
|
|
4469
4469
|
}), r = () => {
|
|
4470
4470
|
if (x(I) || x(I.editorCore.value)) return;
|
|
4471
4471
|
const { cursor: h, content: d } = I.editorCore.value, { range: c } = h;
|
|
4472
4472
|
if (x(c)) return;
|
|
4473
|
-
const { startContainer: f, endContainer: u, startOffset: D, endOffset: y } = c, F = WA(c.startContainer), p = WA(c.endContainer), G = hC(F, p), S = d.getParas(),
|
|
4473
|
+
const { startContainer: f, endContainer: u, startOffset: D, endOffset: y } = c, F = WA(c.startContainer), p = WA(c.endContainer), G = hC(F, p), S = d.getParas(), J = F === p;
|
|
4474
4474
|
B({
|
|
4475
4475
|
index: S.indexOf(F),
|
|
4476
|
-
offset:
|
|
4476
|
+
offset: J && D > y ? y : D
|
|
4477
4477
|
}), o({
|
|
4478
4478
|
index: S.indexOf(p),
|
|
4479
|
-
offset:
|
|
4479
|
+
offset: J ? y > D ? y : D : y
|
|
4480
4480
|
});
|
|
4481
|
-
const
|
|
4482
|
-
const
|
|
4481
|
+
const K = (z) => {
|
|
4482
|
+
const v = document.createElement("span");
|
|
4483
4483
|
return Kg(
|
|
4484
|
-
|
|
4484
|
+
v,
|
|
4485
4485
|
{
|
|
4486
4486
|
class: GI,
|
|
4487
4487
|
style: "background: #3367d1;color: #fff;line-height: 34px;padding: 8px 0 8.5px 0;"
|
|
4488
4488
|
},
|
|
4489
4489
|
{
|
|
4490
|
-
raw:
|
|
4490
|
+
raw: z
|
|
4491
4491
|
},
|
|
4492
|
-
|
|
4493
|
-
),
|
|
4494
|
-
}, P = (
|
|
4492
|
+
z
|
|
4493
|
+
), v;
|
|
4494
|
+
}, P = (z, v, W, EA) => {
|
|
4495
4495
|
var AA;
|
|
4496
|
-
$(
|
|
4496
|
+
$(z) && z.tagName === "P" ? (c.setStart(z.firstChild, 0), c.setEnd(z, z.childNodes.length)) : (c.setStart(z, v), c.setEnd(W, EA));
|
|
4497
4497
|
const CA = window.getSelection();
|
|
4498
4498
|
CA.removeAllRanges(), CA.addRange(c);
|
|
4499
4499
|
const nA = document.createElement("div");
|
|
4500
4500
|
nA.appendChild(c.cloneContents());
|
|
4501
|
-
const kA =
|
|
4501
|
+
const kA = K(nA.innerHTML);
|
|
4502
4502
|
(AA = I.editorCore.value) == null || AA.content.update(kA);
|
|
4503
4503
|
};
|
|
4504
4504
|
if (F === p) {
|
|
4505
|
-
const
|
|
4505
|
+
const z = $(f) && f.tagName === "P";
|
|
4506
4506
|
P(
|
|
4507
|
-
|
|
4508
|
-
|
|
4507
|
+
z ? f.firstChild : f,
|
|
4508
|
+
z ? 0 : D,
|
|
4509
4509
|
u,
|
|
4510
4510
|
y
|
|
4511
4511
|
);
|
|
4512
4512
|
return;
|
|
4513
4513
|
}
|
|
4514
|
-
P(f, D, F, F.childNodes.length), G.forEach((
|
|
4514
|
+
P(f, D, F, F.childNodes.length), G.forEach((z) => P(z, 0, z, z.childNodes.length)), P(p.firstChild, 0, u, y);
|
|
4515
4515
|
}, a = () => {
|
|
4516
4516
|
var d;
|
|
4517
4517
|
Array.from(
|
|
@@ -4530,16 +4530,16 @@ const ho = [
|
|
|
4530
4530
|
d[E.value.index].firstChild,
|
|
4531
4531
|
E.value.offset ?? 0
|
|
4532
4532
|
), c.setEnd(
|
|
4533
|
-
d[
|
|
4534
|
-
|
|
4533
|
+
d[t.value.index].firstChild,
|
|
4534
|
+
t.value.offset ?? 0
|
|
4535
4535
|
), (f = getSelection()) == null || f.removeAllRanges(), (u = getSelection()) == null || u.addRange(c), I.editorCore.value.cursor._recordRange();
|
|
4536
4536
|
}
|
|
4537
4537
|
};
|
|
4538
4538
|
}, Ro = (I, E, B) => {
|
|
4539
|
-
const
|
|
4539
|
+
const t = yA(), o = yA(), r = yA(0), a = yA(!1);
|
|
4540
4540
|
let i;
|
|
4541
|
-
const { renderHighlight: h, unrenderHighlight: d } = ht(
|
|
4542
|
-
|
|
4541
|
+
const { renderHighlight: h, unrenderHighlight: d } = ht(t, E), c = () => {
|
|
4542
|
+
t.value = new Ne(I.value, {
|
|
4543
4543
|
plugins: E.simple ? [] : [
|
|
4544
4544
|
Ve,
|
|
4545
4545
|
It,
|
|
@@ -4548,33 +4548,33 @@ const ho = [
|
|
|
4548
4548
|
],
|
|
4549
4549
|
maxLength: E.maxLength,
|
|
4550
4550
|
onChange: (U) => {
|
|
4551
|
-
var
|
|
4552
|
-
r.value = U, a.value = !!((
|
|
4551
|
+
var H;
|
|
4552
|
+
r.value = U, a.value = !!((H = t.value) != null && H.element.querySelector(
|
|
4553
4553
|
`span[data-type=${q.pausation}]`
|
|
4554
4554
|
)), B("update:textCount", U), B("change", U);
|
|
4555
4555
|
},
|
|
4556
4556
|
onUndoChange: (U) => {
|
|
4557
|
-
var
|
|
4558
|
-
x((
|
|
4557
|
+
var H;
|
|
4558
|
+
x((H = o.value.plugin[q.anchor]) == null ? void 0 : H.data) || (o.value.plugin[q.anchor].data = JSON.parse(U));
|
|
4559
4559
|
}
|
|
4560
4560
|
}), o.value = {
|
|
4561
4561
|
base: {
|
|
4562
|
-
content:
|
|
4563
|
-
cursor:
|
|
4564
|
-
undo:
|
|
4565
|
-
command:
|
|
4562
|
+
content: t.value.content,
|
|
4563
|
+
cursor: t.value.cursor,
|
|
4564
|
+
undo: t.value.undo,
|
|
4565
|
+
command: t.value.command
|
|
4566
4566
|
},
|
|
4567
4567
|
plugin: {
|
|
4568
|
-
[q.pausation]:
|
|
4569
|
-
[q.pronunciation]:
|
|
4570
|
-
[q.homophones]:
|
|
4571
|
-
[q.anchor]:
|
|
4568
|
+
[q.pausation]: t.value.plugin.pausation,
|
|
4569
|
+
[q.pronunciation]: t.value.plugin.pronunciation,
|
|
4570
|
+
[q.homophones]: t.value.plugin.homophones,
|
|
4571
|
+
[q.anchor]: t.value.plugin.anchor
|
|
4572
4572
|
}
|
|
4573
4573
|
}, i = new MutationObserver(([U]) => {
|
|
4574
|
-
var
|
|
4575
|
-
Object.keys(((O = (
|
|
4574
|
+
var H, O;
|
|
4575
|
+
Object.keys(((O = (H = o.value) == null ? void 0 : H.plugin[q.anchor]) == null ? void 0 : O.data) ?? []).forEach((X) => {
|
|
4576
4576
|
var wA, RA;
|
|
4577
|
-
const
|
|
4577
|
+
const M = ((RA = (wA = o.value) == null ? void 0 : wA.plugin[q.anchor]) == null ? void 0 : RA.data[X]) ?? [], [m, dA] = M.reduce(
|
|
4578
4578
|
(Z, eA) => {
|
|
4579
4579
|
const BA = Array.from(
|
|
4580
4580
|
document.body.querySelectorAll(`span[data-frag-id="anchor_${eA.id}"]`)
|
|
@@ -4583,7 +4583,7 @@ const ho = [
|
|
|
4583
4583
|
},
|
|
4584
4584
|
[[], []]
|
|
4585
4585
|
);
|
|
4586
|
-
o.value.plugin[q.anchor].data[
|
|
4586
|
+
o.value.plugin[q.anchor].data[X] = m, dA.forEach((Z) => B("anchorRemove", Z.data));
|
|
4587
4587
|
});
|
|
4588
4588
|
}), i.observe(I.value, {
|
|
4589
4589
|
childList: !0,
|
|
@@ -4592,65 +4592,65 @@ const ho = [
|
|
|
4592
4592
|
});
|
|
4593
4593
|
}, f = () => {
|
|
4594
4594
|
var U;
|
|
4595
|
-
(U =
|
|
4595
|
+
(U = t.value) == null || U.destroy(), t.value = void 0, o.value = void 0, i == null || i.disconnect(), i = null;
|
|
4596
4596
|
}, u = (U) => {
|
|
4597
|
-
const
|
|
4598
|
-
return
|
|
4599
|
-
}, D = async (U) =>
|
|
4600
|
-
var
|
|
4601
|
-
E.simple ? (
|
|
4597
|
+
const H = { ...st, ...U ?? {} };
|
|
4598
|
+
return H.withAuditHighlight ? t.value.content.getContent() : AA(H);
|
|
4599
|
+
}, D = async (U) => t.value.content.setContent(U), y = async (U) => {
|
|
4600
|
+
var H, O;
|
|
4601
|
+
E.simple ? (H = t.value) == null || H.content.appendContent(U) : (O = t.value) == null || O.appendContent(U);
|
|
4602
4602
|
}, F = () => {
|
|
4603
4603
|
var U;
|
|
4604
|
-
return ((U =
|
|
4605
|
-
}, p = (U) =>
|
|
4606
|
-
var
|
|
4607
|
-
const U = (
|
|
4604
|
+
return ((U = t.value) == null ? void 0 : U.content.getTextContent()) ?? [];
|
|
4605
|
+
}, p = (U) => t.value.content.insert(U), G = () => t.value.content.delete(), S = (U) => t.value.content.update(U), J = () => t.value.cursor.isCaret(), K = () => t.value.cursor.isRange(), P = () => {
|
|
4606
|
+
var X;
|
|
4607
|
+
const U = (X = o.value) == null ? void 0 : X.base.cursor.range;
|
|
4608
4608
|
if (x(U)) return !1;
|
|
4609
|
-
const [
|
|
4610
|
-
return !(x(
|
|
4611
|
-
},
|
|
4612
|
-
var
|
|
4613
|
-
const
|
|
4614
|
-
return x(
|
|
4615
|
-
},
|
|
4616
|
-
var
|
|
4617
|
-
return mA(U) ? ((
|
|
4618
|
-
}, W = (U,
|
|
4609
|
+
const [H] = vA(U.startContainer, (M) => M.tagName === "P" && M.classList.contains(NA)), [O] = vA(U.endContainer, (M) => M.tagName === "P" && M.classList.contains(NA));
|
|
4610
|
+
return !(x(H) || x(O) || H === O);
|
|
4611
|
+
}, z = (U) => {
|
|
4612
|
+
var M, m;
|
|
4613
|
+
const H = (M = o.value) == null ? void 0 : M.base.cursor.range, O = (m = t.value) == null ? void 0 : m.content.getParas(), X = O == null ? void 0 : O.map((dA) => Array.from(dA.querySelectorAll(`span[data-type="${U}"]`))).flat();
|
|
4614
|
+
return x(H) || x(O) || x(X) ? !1 : X.some((dA) => H.intersectsNode(dA));
|
|
4615
|
+
}, v = (U) => {
|
|
4616
|
+
var H;
|
|
4617
|
+
return mA(U) ? ((H = U.textContent) == null ? void 0 : H.replace(/</g, "<").replace(/>/g, ">")) ?? "" : U.dataset.type === q.pausation ? `<break time="${Number(U.dataset.value) * 1e3}"/>` : U.dataset.type === q.pronunciation ? U.dataset.value : U.dataset.type === q.highlight ? U.dataset.raw : U.dataset.type === q.homophones ? `<phoneme alphabet="py" ph="${U.dataset.formattedValue}">${U.dataset.raw}</phoneme>` : "";
|
|
4618
|
+
}, W = (U, H) => {
|
|
4619
4619
|
var wA;
|
|
4620
4620
|
const O = Le(U);
|
|
4621
|
-
let
|
|
4621
|
+
let X = [];
|
|
4622
4622
|
if (!O.length) return "";
|
|
4623
|
-
const
|
|
4623
|
+
const M = (wA = t.value) == null ? void 0 : wA.cursor.range;
|
|
4624
4624
|
let m = -1;
|
|
4625
|
-
if (
|
|
4626
|
-
const [RA] = vA(
|
|
4627
|
-
m = O.findIndex((Z) => Z === RA),
|
|
4625
|
+
if (H && (M != null && M.collapse)) {
|
|
4626
|
+
const [RA] = vA(M == null ? void 0 : M.startContainer, (Z) => $(Z) && Z.dataset.type === q.anchor);
|
|
4627
|
+
m = O.findIndex((Z) => Z === RA), X = m > -1 ? O.slice(m) : O;
|
|
4628
4628
|
}
|
|
4629
|
-
return
|
|
4629
|
+
return X.map((RA, Z) => {
|
|
4630
4630
|
let eA = [];
|
|
4631
4631
|
if (Z === 0 && m > -1) {
|
|
4632
4632
|
const BA = document.createRange();
|
|
4633
|
-
BA.setStart(
|
|
4633
|
+
BA.setStart(M.startContainer, M.startOffset), BA.setEnd(RA, RA.childNodes.length), eA = Array.from(BA.cloneContents().childNodes);
|
|
4634
4634
|
} else
|
|
4635
4635
|
eA = Array.from(RA.childNodes);
|
|
4636
|
-
return eA.map((BA) =>
|
|
4637
|
-
}).join("") || O.map((RA) => Array.from(RA.childNodes).map((Z) =>
|
|
4636
|
+
return eA.map((BA) => v(BA)).join("");
|
|
4637
|
+
}).join("") || O.map((RA) => Array.from(RA.childNodes).map((Z) => v(Z)).join("")).join("");
|
|
4638
4638
|
}, EA = (U) => {
|
|
4639
|
-
var
|
|
4640
|
-
const
|
|
4639
|
+
var X;
|
|
4640
|
+
const H = U.uid ? `span[data-uid="${U.uid}"]` : `span[data-id="anchor_${U.id}"]`, O = (X = I.value) == null ? void 0 : X.querySelector(H);
|
|
4641
4641
|
return [O.dataset.emotion, O.dataset.role];
|
|
4642
4642
|
}, CA = () => {
|
|
4643
4643
|
var O;
|
|
4644
|
-
return (((O =
|
|
4645
|
-
(
|
|
4646
|
-
var
|
|
4647
|
-
return (
|
|
4644
|
+
return (((O = t.value) == null ? void 0 : O.content.getParas()) ?? []).filter(
|
|
4645
|
+
(X) => {
|
|
4646
|
+
var M;
|
|
4647
|
+
return (M = X.textContent) == null ? void 0 : M.trim();
|
|
4648
4648
|
}
|
|
4649
|
-
).map((
|
|
4649
|
+
).map((X) => Array.from(X.childNodes)).flat().every((X) => mA(X) && ["", " ", null].includes(X.textContent) || $(X) && X.dataset.type === q.anchor || $(X) && X.tagName === "BR");
|
|
4650
4650
|
}, nA = (U) => {
|
|
4651
|
-
U.forEach((
|
|
4652
|
-
var
|
|
4653
|
-
(((
|
|
4651
|
+
U.forEach((H) => {
|
|
4652
|
+
var X;
|
|
4653
|
+
(((X = o.value) == null ? void 0 : X.plugin.anchor.data[H.top]) ?? (o.value.plugin.anchor.data[H.top] = [])).push({ background: vB[(H.id - 1) % 10], data: H, id: H.id });
|
|
4654
4654
|
});
|
|
4655
4655
|
}, kA = () => {
|
|
4656
4656
|
yo.confirm({
|
|
@@ -4658,38 +4658,38 @@ const ho = [
|
|
|
4658
4658
|
content: "确定清空全部内容吗?",
|
|
4659
4659
|
onOk: () => {
|
|
4660
4660
|
D(""), B("clear"), setTimeout(() => {
|
|
4661
|
-
var
|
|
4662
|
-
const U = window.getSelection(),
|
|
4663
|
-
if (x(U) ||
|
|
4661
|
+
var M, m;
|
|
4662
|
+
const U = window.getSelection(), H = U != null && U.rangeCount ? U == null ? void 0 : U.getRangeAt(0) : null;
|
|
4663
|
+
if (x(U) || H && $(H.commonAncestorContainer) && H.commonAncestorContainer.classList.contains(NA))
|
|
4664
4664
|
return;
|
|
4665
|
-
const O = document.createRange(),
|
|
4666
|
-
x(
|
|
4665
|
+
const O = document.createRange(), X = (m = (M = t.value) == null ? void 0 : M.content.getParas()) == null ? void 0 : m[0];
|
|
4666
|
+
x(X) || (O.selectNodeContents(X), O.collapse(!1), U.removeAllRanges(), U.addRange(O));
|
|
4667
4667
|
});
|
|
4668
4668
|
}
|
|
4669
4669
|
});
|
|
4670
4670
|
}, AA = (U) => {
|
|
4671
|
-
const
|
|
4672
|
-
return O.innerHTML =
|
|
4671
|
+
const H = t.value.content.getContent(), O = document.createElement("div");
|
|
4672
|
+
return O.innerHTML = H, U.withAuditHighlight || Array.from(
|
|
4673
4673
|
O.querySelectorAll(`.${yC}`)
|
|
4674
|
-
).forEach((
|
|
4674
|
+
).forEach((M) => {
|
|
4675
4675
|
const m = document.createDocumentFragment();
|
|
4676
|
-
Array.from(
|
|
4676
|
+
Array.from(M.childNodes).forEach((dA) => m.appendChild(dA)), M.replaceWith(m);
|
|
4677
4677
|
}), U.withRefineHighlight || Array.from(
|
|
4678
4678
|
O.querySelectorAll(`.${GI}`)
|
|
4679
|
-
).forEach((
|
|
4680
|
-
|
|
4679
|
+
).forEach((M) => {
|
|
4680
|
+
M.replaceWith(M.textContent ?? "");
|
|
4681
4681
|
}), O.innerHTML;
|
|
4682
|
-
}, fA = (U) => {
|
|
4683
|
-
var
|
|
4684
|
-
const
|
|
4685
|
-
if (
|
|
4682
|
+
}, fA = (U, H) => {
|
|
4683
|
+
var M;
|
|
4684
|
+
const O = Array.isArray(U) ? U : [U], X = (((M = t.value) == null ? void 0 : M.cursor.isRangeInEditor()) && J()) ?? !1;
|
|
4685
|
+
if (H == null || H(X), !X) {
|
|
4686
4686
|
Yg.warning("请选择要插入的位置!");
|
|
4687
4687
|
return;
|
|
4688
4688
|
}
|
|
4689
|
-
YI(
|
|
4689
|
+
YI(t.value, JI(t.value, O));
|
|
4690
4690
|
};
|
|
4691
4691
|
return Hg(c), RB(f), {
|
|
4692
|
-
editorCore:
|
|
4692
|
+
editorCore: t,
|
|
4693
4693
|
editorAction: o,
|
|
4694
4694
|
count: r,
|
|
4695
4695
|
hasPausationTag: a,
|
|
@@ -4700,11 +4700,11 @@ const ho = [
|
|
|
4700
4700
|
insertContent: p,
|
|
4701
4701
|
deleteContent: G,
|
|
4702
4702
|
updateContent: S,
|
|
4703
|
-
isCaret:
|
|
4704
|
-
isRange:
|
|
4703
|
+
isCaret: J,
|
|
4704
|
+
isRange: K,
|
|
4705
4705
|
isSelectionInDifferentParas: P,
|
|
4706
|
-
isSelectionContainsTag:
|
|
4707
|
-
convertToContent:
|
|
4706
|
+
isSelectionContainsTag: z,
|
|
4707
|
+
convertToContent: v,
|
|
4708
4708
|
getAnchorTtsMark: W,
|
|
4709
4709
|
getAnchorTtsEmotionAndRole: EA,
|
|
4710
4710
|
isAllMarkedByAnchor: CA,
|
|
@@ -4717,20 +4717,20 @@ const ho = [
|
|
|
4717
4717
|
}, Fo = "data:image/png;base64,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lzqLgAiIgAiIgAiIgAhkm4AEarYJa34REAEREAEREAEREIG0CEigpoVLnUVABERABERABERABLJNQAI124Q1vwiIgAiIgAiIgAiIQFoEJFDTwqXOIiACIiACIiACIiAC2SYggZptwppfBERABERABERABEQgLQISqGnhUmcREAEREAEREAEREIFsE5BAzTZhzS8CIiACIiACIiACIpAWAQnUtHCpswiIgAiIgAiIgAiIQLYJSKBmm7DmFwEREAEREAEREAERSIuABGpauNRZBERABERABERABESuZgeMAAAaXklEQVQg2wQkULNNWPOLgAiIgAiIgAiIgAikRUACNS1c6iwCIiACIiACIiACIpBtAhKo2Sas+UVABERABERABERABNIiIIGaFi51FgEREAEREAEREAERyDYBCdRsE9b8IiACIiACIiACIiACaRGQQE0LlzqLgAiIgAiIgAiIgAhkm4AEarYJa34REAEREAEREAEREIG0CEigpoVLnUVABERABERABERABLJNQAI124Q1vwiIgAiIgAiIgAiIQFoEJFDTwqXOIiACIiACIiACIiAC2SYggZptwppfBERABERABERABEQgLQISqGnhUmcREAEREAEREAEREIFsE5BAzTZhzS8CIiACIiACIiACIpAWAQnUtHCpswiIgAiIgAiIgAiIQLYJSKBmm7DmFwEREAEREAEREAERSIuABGpauNRZBERABERABERABEQg2wQkULNNWPOLgAiIgAiIgAiIgAikRUACNS1c6iwCIiACIiACIiACIpBtAhKo2Sas+UVABERABERABERABNIiIIGaFi51FgEREAEREAEREAERyDYBCdRsE9b8IiACIiACIiACIiACaRGQQE0LlzqLgAiIgAiIgAiIgAhkm4AEarYJa34REAEREAEREAEREIG0CEigpoVLnUVABERABERABERABLJNQAI124Q1vwiIgAiIgAiIgAiIQFoEJFDTwqXOIiACIiACIiACIiAC2SYggZptwppfBERABERABERABEQgLQISqGnhUmcREAEREAEREAEREIFsE5BAzTZhzS8CIiACIiACIiACIpAWAQnUtHCpswiIgAiIgAiIgAiIQLYJSKBmm7DmFwEREAEREAEREAERSIuABGpauNRZBERABERABERABEQg2wQkULNNWPOLgAiIgAiI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s65U+lJoVMY67gHAn/jGQCZ+JlF40To2VjOPWtmHlstEFiwKEgZBZVquNJX74p4k+sLBey2PZQjINO8tr88vBzwmt/oQ8/d00aBISlUc0T3BbBTCmTRarM0je/rGJuNKSzC/nLH4wXgag+H4XPBeudcMPEv2fIznehorAiKQAwQkUHNgE7QEERABERABERABERCBAwQkUPU0iIAIiIAIiIAIiIAI5BQBCdSc2g4tRgREQAREQAREQAREQAJVz4AIiIAIiIAIiIAIiEBOEZBAzant0GJEQAREQAREQAREQAQkUPUMiIAIiIAIiIAIiIAI5BQBCdSc2g4tRgREQAREQAREQAREQAJVz4AIiIAIiIAIiIAIiEBOEZBAzant0GJEQAREQAREQAREQAQkUPUMiIAIiIAIiIAIiIAI5BQBCdSc2g4tRgREQAREQAREQAREQAJVz4AIiIAIiIAIiIAIiEBOEZBAzant0GJEQAREQAREQAREQAQkUPUMiIAIiIAIiIAIiIAI5BQBCdSc2g4tRgREQAREQAREQAREQAJVz4AIiIAIiIAIiIAIiEBOEZBAzant0GJEQAREQAREQAREQAQkUPUMiIAIiIAIiIAIiIAI5BQBCdSc2g4tRgREQAREQAREQAREQAJVz4AIiIAIiIAIiIAIiEBOEZBAzant0GJEQAREQAREQAREQAQkUPUMiIAIiIAIiIAIiIAI5BQBCdSc2g4tRgREQAREQAREQAREQAJVz4AIiIAIiIAIiIAIiEBOEZBAzant0GJEQAREQAREQAREQAQkUPUMiIAIiIAIiIAIiIAI5BQBCdSc2g4tRgREQAREQAREQAREQAJVz4AIiIAIiIAIiIAIiEBOEZBAzant0GJEQAREQAREQAREQAT+P/dWXtNA9tK8AAAAAElFTkSuQmCC", No = { style: { display: "none" } }, Go = { class: "pausation" }, ko = "c-editor-container__core-content-editor-content", So = /* @__PURE__ */ qA({
|
|
4718
4718
|
__name: "contextMenu",
|
|
4719
4719
|
setup(I) {
|
|
4720
|
-
const [E] = ZA("quick-context-menu"), B = gg(fg), { x:
|
|
4721
|
-
var
|
|
4722
|
-
(
|
|
4720
|
+
const [E] = ZA("quick-context-menu"), B = gg(fg), { x: t, y: o } = mI(), r = (G, S) => {
|
|
4721
|
+
var J, K;
|
|
4722
|
+
(K = (J = B == null ? void 0 : B.editorAction.value) == null ? void 0 : J.plugin.pausation) == null || K.add({ delay: S }), f(!1);
|
|
4723
4723
|
}, a = async () => {
|
|
4724
4724
|
let G = "", S = [];
|
|
4725
|
-
G = await (window.microApp ? window.rawWindow.navigator : window.navigator).clipboard.readText(), S = (G == null ? void 0 : G.split(/(?:\r?\n){2,}/).map((
|
|
4725
|
+
G = await (window.microApp ? window.rawWindow.navigator : window.navigator).clipboard.readText(), S = (G == null ? void 0 : G.split(/(?:\r?\n){2,}/).map((K) => K.trim()).filter((K) => K)) ?? [], YI(
|
|
4726
4726
|
B.editorCore.value,
|
|
4727
4727
|
JI(B.editorCore.value, S)
|
|
4728
4728
|
), f(!1);
|
|
4729
4729
|
}, i = yA(), h = yA(!1), d = yA({ zIndex: -10 }), c = Qe(), f = (G) => {
|
|
4730
4730
|
h.value = G ?? !h.value, F(!1);
|
|
4731
4731
|
}, u = (G) => {
|
|
4732
|
-
const S = G.target, [
|
|
4733
|
-
|
|
4732
|
+
const S = G.target, [J] = vA(S, (K) => K.classList.contains(ko));
|
|
4733
|
+
J && (G.preventDefault(), G.stopPropagation(), d.value = { top: `${o.value}px`, left: `${t.value}px` }, f(!0));
|
|
4734
4734
|
}, D = (G) => {
|
|
4735
4735
|
var S;
|
|
4736
4736
|
(S = i.value) != null && S.contains(G.target) || (d.value = { zIndex: -10 }, f(!1));
|
|
@@ -4738,8 +4738,8 @@ const ho = [
|
|
|
4738
4738
|
var S;
|
|
4739
4739
|
(S = y.value) == null || S.$el.setAttribute("style", G ? "display: block" : "display: none");
|
|
4740
4740
|
}, p = (G) => {
|
|
4741
|
-
const S = G.target, [
|
|
4742
|
-
F(!!
|
|
4741
|
+
const S = G.target, [J] = vA(S, (K) => K.dataset.type === "pausation" || K.classList.contains("pausation"));
|
|
4742
|
+
F(!!J);
|
|
4743
4743
|
};
|
|
4744
4744
|
return Hg(() => {
|
|
4745
4745
|
document.addEventListener("contextmenu", u), document.addEventListener("click", D), document.addEventListener("mouseover", p);
|
|
@@ -4782,14 +4782,14 @@ const ho = [
|
|
|
4782
4782
|
}
|
|
4783
4783
|
}), Lo = /* @__PURE__ */ JA(So, [["__scopeId", "data-v-2c4a9bcb"]]);
|
|
4784
4784
|
function kI(I) {
|
|
4785
|
-
let E = null, B = null,
|
|
4785
|
+
let E = null, B = null, t = null;
|
|
4786
4786
|
const o = function(...r) {
|
|
4787
|
-
B = r,
|
|
4788
|
-
E = null, B && (I.apply(
|
|
4787
|
+
B = r, t = this, E == null && (E = requestAnimationFrame(() => {
|
|
4788
|
+
E = null, B && (I.apply(t, B), B = t = null);
|
|
4789
4789
|
}));
|
|
4790
4790
|
};
|
|
4791
4791
|
return o.cancel = () => {
|
|
4792
|
-
E != null && (cancelAnimationFrame(E), E = null), B =
|
|
4792
|
+
E != null && (cancelAnimationFrame(E), E = null), B = t = null;
|
|
4793
4793
|
}, o;
|
|
4794
4794
|
}
|
|
4795
4795
|
const Uo = {}, po = {
|
|
@@ -4995,16 +4995,16 @@ function on(I, E) {
|
|
|
4995
4995
|
}
|
|
4996
4996
|
const nn = /* @__PURE__ */ JA(en, [["render", on]]), jB = () => {
|
|
4997
4997
|
const { copy: I, isSupported: E } = He({ legacy: !0 });
|
|
4998
|
-
return { textCopyFun: (
|
|
4998
|
+
return { textCopyFun: (t, o = !0) => {
|
|
4999
4999
|
if (!E) {
|
|
5000
5000
|
Yg.error("您的浏览器不支持Clipboard API");
|
|
5001
5001
|
return;
|
|
5002
5002
|
}
|
|
5003
5003
|
if (!window.microApp)
|
|
5004
|
-
I(
|
|
5004
|
+
I(t);
|
|
5005
5005
|
else {
|
|
5006
5006
|
const r = document.createElement("input");
|
|
5007
|
-
document.body.appendChild(r), r.setAttribute("value",
|
|
5007
|
+
document.body.appendChild(r), r.setAttribute("value", t), r.select(), document.execCommand("copy") && document.execCommand("copy"), document.body.removeChild(r);
|
|
5008
5008
|
}
|
|
5009
5009
|
o && Yg.success("复制成功");
|
|
5010
5010
|
} };
|
|
@@ -5021,7 +5021,7 @@ const nn = /* @__PURE__ */ JA(en, [["render", on]]), jB = () => {
|
|
|
5021
5021
|
},
|
|
5022
5022
|
setup: (I) => {
|
|
5023
5023
|
const E = gg(fg), B = gg(CI) ?? {}, {
|
|
5024
|
-
textCopyFun:
|
|
5024
|
+
textCopyFun: t
|
|
5025
5025
|
} = jB(), o = pA(() => {
|
|
5026
5026
|
var d, c;
|
|
5027
5027
|
return (B == null ? void 0 : B.contentVisible.value) && ((c = (d = I.modelValue[I.modelValue.length - 1]) == null ? void 0 : d.content) == null ? void 0 : c.length);
|
|
@@ -5029,11 +5029,11 @@ const nn = /* @__PURE__ */ JA(en, [["render", on]]), jB = () => {
|
|
|
5029
5029
|
var d;
|
|
5030
5030
|
x(E) || x(E.editorCore.value) || (B.revertRange(), YI(E == null ? void 0 : E.editorCore.value, (((d = B.activedContent.value) == null ? void 0 : d.content) ?? "").split($g)), B.setVisible(!1));
|
|
5031
5031
|
}, a = () => {
|
|
5032
|
-
var
|
|
5032
|
+
var K;
|
|
5033
5033
|
if (x(E) || x(E.editorCore.value)) return;
|
|
5034
5034
|
const d = (P) => {
|
|
5035
|
-
const
|
|
5036
|
-
return
|
|
5035
|
+
const z = document.createElement("p");
|
|
5036
|
+
return z.textContent = P, z.classList.add(NA), z;
|
|
5037
5037
|
};
|
|
5038
5038
|
B.revertRange();
|
|
5039
5039
|
const {
|
|
@@ -5044,7 +5044,7 @@ const nn = /* @__PURE__ */ JA(en, [["render", on]]), jB = () => {
|
|
|
5044
5044
|
if (x(f) || x(f.parentNode)) return;
|
|
5045
5045
|
const u = document.createRange();
|
|
5046
5046
|
u.setStart(c.endContainer, c.endOffset), u.setEndAfter(f);
|
|
5047
|
-
const D = u.extractContents(), y = (((
|
|
5047
|
+
const D = u.extractContents(), y = (((K = B.activedContent.value) == null ? void 0 : K.content) ?? "").split($g), F = document.createDocumentFragment();
|
|
5048
5048
|
y.forEach((P) => {
|
|
5049
5049
|
F.appendChild(d(P));
|
|
5050
5050
|
});
|
|
@@ -5052,8 +5052,8 @@ const nn = /* @__PURE__ */ JA(en, [["render", on]]), jB = () => {
|
|
|
5052
5052
|
G.insertBefore(F, f.nextSibling), G.insertBefore(D, p.nextSibling);
|
|
5053
5053
|
const S = window.getSelection();
|
|
5054
5054
|
if (!S) return;
|
|
5055
|
-
const
|
|
5056
|
-
|
|
5055
|
+
const J = document.createRange();
|
|
5056
|
+
J.selectNodeContents(p), J.collapse(!1), S.removeAllRanges(), S.addRange(J), B.setVisible(!1);
|
|
5057
5057
|
}, i = () => {
|
|
5058
5058
|
const {
|
|
5059
5059
|
content: d,
|
|
@@ -5125,7 +5125,7 @@ const nn = /* @__PURE__ */ JA(en, [["render", on]]), jB = () => {
|
|
|
5125
5125
|
}), N(OA("a-button"), {
|
|
5126
5126
|
onClick: () => {
|
|
5127
5127
|
var c;
|
|
5128
|
-
return
|
|
5128
|
+
return t((((c = B == null ? void 0 : B.activedContent.value) == null ? void 0 : c.content) ?? "").replaceAll($g, `
|
|
5129
5129
|
|
|
5130
5130
|
`));
|
|
5131
5131
|
}
|
|
@@ -5202,7 +5202,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5202
5202
|
setup: (I, {
|
|
5203
5203
|
emit: E
|
|
5204
5204
|
}) => {
|
|
5205
|
-
const B = gg(CI) ?? {},
|
|
5205
|
+
const B = gg(CI) ?? {}, t = pA(() => (B == null ? void 0 : B.contentState.value) === jA.未生成 ? "请输入优化文本的指令" : "AI撰写中..."), o = pA(() => {
|
|
5206
5206
|
var a;
|
|
5207
5207
|
return (a = B == null ? void 0 : B.prompt.value) == null ? void 0 : a.length;
|
|
5208
5208
|
}), r = () => {
|
|
@@ -5219,7 +5219,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5219
5219
|
}, [N(OA("a-input"), {
|
|
5220
5220
|
modelValue: I.modelValue,
|
|
5221
5221
|
disabled: B == null ? void 0 : B.generating.value,
|
|
5222
|
-
placeholder:
|
|
5222
|
+
placeholder: t.value,
|
|
5223
5223
|
onInput: (a) => E("update:modelValue", a),
|
|
5224
5224
|
onPressEnter: r
|
|
5225
5225
|
}, {
|
|
@@ -5263,19 +5263,19 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5263
5263
|
var d, c;
|
|
5264
5264
|
if ((d = i.children) != null && d.length) {
|
|
5265
5265
|
if (I.shortcutPosition.value === ag.底部) {
|
|
5266
|
-
const f = Number.parseFloat(getComputedStyle(I.scrollElm.value).height), u = ((c = I.scrollElm.value) == null ? void 0 : c.scrollTop) ?? 0, D = f + u, y = Number.parseFloat(getComputedStyle(I.refineGeneratorRef.value).top), F = Number.parseFloat(getComputedStyle(I.refineGeneratorRef.value).height), p = sC.length * Zg + _g * 2, G = i.children.length * Zg, S = (sC.length - h) * Zg + _g,
|
|
5266
|
+
const f = Number.parseFloat(getComputedStyle(I.scrollElm.value).height), u = ((c = I.scrollElm.value) == null ? void 0 : c.scrollTop) ?? 0, D = f + u, y = Number.parseFloat(getComputedStyle(I.refineGeneratorRef.value).top), F = Number.parseFloat(getComputedStyle(I.refineGeneratorRef.value).height), p = sC.length * Zg + _g * 2, G = i.children.length * Zg, S = (sC.length - h) * Zg + _g, J = (
|
|
5267
5267
|
// 弹窗定位 + 高度
|
|
5268
5268
|
y + F + // 指令列表高度 + marginTop 8px
|
|
5269
5269
|
p + 8 + // 子指令列表高度 + bottomTop 8px
|
|
5270
5270
|
G + _g - // 子指令列表移动距离 + 指令列表 paddingTop 8px
|
|
5271
5271
|
S
|
|
5272
5272
|
);
|
|
5273
|
-
I.setSubShortcutPosition(D >
|
|
5273
|
+
I.setSubShortcutPosition(D > J ? sg.顶部对齐 : sg.底部对齐);
|
|
5274
5274
|
} else
|
|
5275
5275
|
I.setSubShortcutPosition(sg.底部对齐);
|
|
5276
5276
|
a(h), o(!0);
|
|
5277
5277
|
}
|
|
5278
|
-
}, [
|
|
5278
|
+
}, [t, o] = fI(), [r, a] = KA(-1);
|
|
5279
5279
|
return () => {
|
|
5280
5280
|
const i = (d, c, f = !0) => {
|
|
5281
5281
|
var u, D;
|
|
@@ -5299,7 +5299,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5299
5299
|
})]), (u = d.children) != null && u.length ? N("div", {
|
|
5300
5300
|
class: "sub-wrapper",
|
|
5301
5301
|
style: {
|
|
5302
|
-
display:
|
|
5302
|
+
display: t.value && r.value === c ? "block" : "none",
|
|
5303
5303
|
// top: `${32 * index - 8}px`,
|
|
5304
5304
|
top: I.subShortcutPosition.value === sg.顶部对齐 ? `${0 + Zg * c}px` : `${0 + (c + 1 - d.children.length) * Zg}px`,
|
|
5305
5305
|
padding: I.shortcutPosition.value === ag.底部 ? "8px" : "0 8px"
|
|
@@ -5333,7 +5333,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5333
5333
|
props: {},
|
|
5334
5334
|
emits: {},
|
|
5335
5335
|
setup: () => {
|
|
5336
|
-
const I = gg(fg), E = gg(CI), B = yA(), [
|
|
5336
|
+
const I = gg(fg), E = gg(CI), B = yA(), [t, o] = KA(!1, (p) => {
|
|
5337
5337
|
p || a({
|
|
5338
5338
|
zIndex: -10
|
|
5339
5339
|
});
|
|
@@ -5342,8 +5342,8 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5342
5342
|
});
|
|
5343
5343
|
let i;
|
|
5344
5344
|
const h = async () => {
|
|
5345
|
-
var P,
|
|
5346
|
-
if (await new Promise((
|
|
5345
|
+
var P, z;
|
|
5346
|
+
if (await new Promise((v) => setTimeout(v, 100)), x(I) || x(I.editorCore.value)) return;
|
|
5347
5347
|
const {
|
|
5348
5348
|
cursor: p
|
|
5349
5349
|
} = I.editorCore.value;
|
|
@@ -5354,19 +5354,19 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5354
5354
|
!p.isRangeInEditor() || // 调优组件可见时,工具栏隐藏
|
|
5355
5355
|
E.visible.value
|
|
5356
5356
|
) return;
|
|
5357
|
-
const G = UB((P = E.scrollElm.value) == null ? void 0 : P.getBoundingClientRect(), p.range.getBoundingClientRect(), 10), S = 0,
|
|
5357
|
+
const G = UB((P = E.scrollElm.value) == null ? void 0 : P.getBoundingClientRect(), p.range.getBoundingClientRect(), 10), S = 0, J = (
|
|
5358
5358
|
// 容器宽度
|
|
5359
5359
|
E.scrollElm.value.getBoundingClientRect().width - // 工具栏宽度
|
|
5360
5360
|
172 - // 容器内边距
|
|
5361
5361
|
16
|
|
5362
|
-
),
|
|
5362
|
+
), K = G.left + (G.width - 172) / 2;
|
|
5363
5363
|
a({
|
|
5364
|
-
top: `${G.top + (((
|
|
5365
|
-
left: `${
|
|
5364
|
+
top: `${G.top + (((z = E.scrollElm.value) == null ? void 0 : z.scrollTop) ?? 0)}px`,
|
|
5365
|
+
left: `${K <= 0 ? S : K >= J ? J : K}px`
|
|
5366
5366
|
});
|
|
5367
5367
|
}, d = (p) => {
|
|
5368
5368
|
var G;
|
|
5369
|
-
i = p,
|
|
5369
|
+
i = p, t.value && ((G = B.value) != null && G.contains(p.target) || (E.unhighlightRange(), o(!1)));
|
|
5370
5370
|
}, c = async (p) => {
|
|
5371
5371
|
if (await new Promise((S) => setTimeout(S, 100)), x(I) || x(I.editorCore.value)) return;
|
|
5372
5372
|
const {
|
|
@@ -5384,11 +5384,11 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5384
5384
|
}
|
|
5385
5385
|
h(), o(!0);
|
|
5386
5386
|
}, f = kI(() => {
|
|
5387
|
-
|
|
5387
|
+
t.value && h();
|
|
5388
5388
|
}), u = kI(async (p) => {
|
|
5389
|
-
var S,
|
|
5390
|
-
if (!
|
|
5391
|
-
const G = (
|
|
5389
|
+
var S, J;
|
|
5390
|
+
if (!t.value || (S = B.value) != null && S.contains(i.target)) return;
|
|
5391
|
+
const G = (J = I == null ? void 0 : I.editorCore.value) == null ? void 0 : J.cursor;
|
|
5392
5392
|
// 空上下文
|
|
5393
5393
|
(x(I) || // 空编辑器实例
|
|
5394
5394
|
x(I.editorCore.value) || // 空选区
|
|
@@ -5419,7 +5419,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5419
5419
|
class: lC(),
|
|
5420
5420
|
style: {
|
|
5421
5421
|
...r.value,
|
|
5422
|
-
display:
|
|
5422
|
+
display: t.value ? "flex" : "none"
|
|
5423
5423
|
}
|
|
5424
5424
|
}, [N("div", {
|
|
5425
5425
|
class: lC("item", "refine"),
|
|
@@ -5443,7 +5443,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5443
5443
|
}
|
|
5444
5444
|
}), hB = 144, Gn = 200, kn = (I) => {
|
|
5445
5445
|
gg(fg);
|
|
5446
|
-
const { refineGeneratorRef: E, scrollElm: B } = I, [
|
|
5446
|
+
const { refineGeneratorRef: E, scrollElm: B } = I, [t, o] = KA(
|
|
5447
5447
|
RI.底部
|
|
5448
5448
|
), [r, a] = KA(ag.底部), [i, h] = KA(
|
|
5449
5449
|
sg.顶部对齐
|
|
@@ -5467,7 +5467,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5467
5467
|
var f;
|
|
5468
5468
|
(f = B.value) == null || f.removeEventListener("scroll", c);
|
|
5469
5469
|
}), {
|
|
5470
|
-
generatorPosition:
|
|
5470
|
+
generatorPosition: t,
|
|
5471
5471
|
shortcutPosition: r,
|
|
5472
5472
|
subShortcutPosition: i,
|
|
5473
5473
|
setGeneratorPosition: o,
|
|
@@ -5488,7 +5488,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5488
5488
|
const {
|
|
5489
5489
|
highlightRange: E,
|
|
5490
5490
|
unhighlightRange: B,
|
|
5491
|
-
revertRange:
|
|
5491
|
+
revertRange: t
|
|
5492
5492
|
} = fo(), o = gg(fg), {
|
|
5493
5493
|
agentId: r,
|
|
5494
5494
|
createSession: a,
|
|
@@ -5499,7 +5499,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5499
5499
|
})), u = yA(), [D, y] = KA({
|
|
5500
5500
|
zIndex: -10
|
|
5501
5501
|
}), [F, p] = KA(!1, (rA) => {
|
|
5502
|
-
rA || (d.value && [jA.等待生成, jA.正在生成].includes(
|
|
5502
|
+
rA || (d.value && [jA.等待生成, jA.正在生成].includes(H.value) && f(), c(void 0), EA(!1), nA(void 0), U(!1), O(jA.未生成), M(0), dA([]), RA(void 0), AA(!0), y({
|
|
5503
5503
|
zIndex: -10
|
|
5504
5504
|
}));
|
|
5505
5505
|
}), G = () => {
|
|
@@ -5513,32 +5513,32 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5513
5513
|
});
|
|
5514
5514
|
}, S = () => {
|
|
5515
5515
|
x(o) || x(o.editorCore.value) || (G(), p(!0));
|
|
5516
|
-
},
|
|
5516
|
+
}, J = (rA) => {
|
|
5517
5517
|
var _A;
|
|
5518
5518
|
F.value && ((_A = u.value) != null && _A.contains(rA.target) || (B(), p(!1)));
|
|
5519
|
-
},
|
|
5519
|
+
}, K = kI(() => {
|
|
5520
5520
|
F.value && G();
|
|
5521
|
-
}), [P,
|
|
5521
|
+
}), [P, z] = KA(void 0);
|
|
5522
5522
|
Hg(() => {
|
|
5523
5523
|
var rA;
|
|
5524
|
-
|
|
5524
|
+
z(document.body.querySelector(".c-editor-container--refinable")), document.addEventListener("mousedown", J), (rA = P.value) == null || rA.addEventListener("scroll", K);
|
|
5525
5525
|
}), GC(() => {
|
|
5526
5526
|
var rA;
|
|
5527
|
-
document.removeEventListener("mousedown",
|
|
5527
|
+
document.removeEventListener("mousedown", J), (rA = P.value) == null || rA.removeEventListener("scroll", K);
|
|
5528
5528
|
});
|
|
5529
|
-
const
|
|
5529
|
+
const v = Ie(I.width) ? `${I.width}px` : I.width, [W, EA] = fI(), [CA, nA] = KA(void 0), [kA, AA] = fI(!0), [fA, U] = fI(), [H, O] = KA(jA.未生成), [X, M] = KA(0), [m, dA] = KA([]), [wA, RA] = KA(void 0), eA = {
|
|
5530
5530
|
name: "RefineGenerator",
|
|
5531
5531
|
refineGeneratorRef: u,
|
|
5532
5532
|
visible: F,
|
|
5533
|
-
width:
|
|
5533
|
+
width: v,
|
|
5534
5534
|
generating: W,
|
|
5535
5535
|
prompt: CA,
|
|
5536
5536
|
shortcutVisible: kA,
|
|
5537
5537
|
content: m,
|
|
5538
5538
|
activedContent: wA,
|
|
5539
5539
|
contentVisible: fA,
|
|
5540
|
-
contentPage:
|
|
5541
|
-
contentState:
|
|
5540
|
+
contentPage: X,
|
|
5541
|
+
contentState: H,
|
|
5542
5542
|
setVisible: p,
|
|
5543
5543
|
setRefineGenerating: EA,
|
|
5544
5544
|
setRefinePrompt: nA,
|
|
@@ -5549,9 +5549,9 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5549
5549
|
var BI, bg;
|
|
5550
5550
|
if (W.value) return;
|
|
5551
5551
|
EA(!0), nA(void 0), dA((rA == null ? void 0 : rA.generateType) === mg.刷新 ? [...m.value, {
|
|
5552
|
-
...m.value[
|
|
5552
|
+
...m.value[X.value - 1],
|
|
5553
5553
|
content: ""
|
|
5554
|
-
}] : [dg(rA)]), RA(m.value[m.value.length - 1]),
|
|
5554
|
+
}] : [dg(rA)]), RA(m.value[m.value.length - 1]), M(m.value.length), O(jA.等待生成), c(LB());
|
|
5555
5555
|
const _A = await a({
|
|
5556
5556
|
agentId: r,
|
|
5557
5557
|
sessionId: d.value
|
|
@@ -5595,7 +5595,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5595
5595
|
};
|
|
5596
5596
|
}
|
|
5597
5597
|
},
|
|
5598
|
-
setContentPage:
|
|
5598
|
+
setContentPage: M,
|
|
5599
5599
|
setContentVisible: U,
|
|
5600
5600
|
setContentState: O,
|
|
5601
5601
|
showRefineGenerator: S,
|
|
@@ -5604,7 +5604,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5604
5604
|
scrollElm: P,
|
|
5605
5605
|
highlightRange: E,
|
|
5606
5606
|
unhighlightRange: B,
|
|
5607
|
-
revertRange:
|
|
5607
|
+
revertRange: t
|
|
5608
5608
|
}, {
|
|
5609
5609
|
generatorPosition: BA,
|
|
5610
5610
|
shortcutPosition: tA,
|
|
@@ -5636,7 +5636,7 @@ const WB = /* @__PURE__ */ JA(un, [["render", fn]]), [wB] = ZA("refine-input"),
|
|
|
5636
5636
|
}, [N("div", {
|
|
5637
5637
|
class: Sn(),
|
|
5638
5638
|
style: {
|
|
5639
|
-
width:
|
|
5639
|
+
width: v
|
|
5640
5640
|
}
|
|
5641
5641
|
}, [N(rn, {
|
|
5642
5642
|
modelValue: m.value,
|
|
@@ -5801,7 +5801,7 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
5801
5801
|
slots: E,
|
|
5802
5802
|
emit: B
|
|
5803
5803
|
}) => {
|
|
5804
|
-
const
|
|
5804
|
+
const t = yA(), o = yA(), {
|
|
5805
5805
|
editorCore: r,
|
|
5806
5806
|
editorAction: a,
|
|
5807
5807
|
count: i,
|
|
@@ -5816,17 +5816,17 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
5816
5816
|
isCaret: p,
|
|
5817
5817
|
isRange: G,
|
|
5818
5818
|
isSelectionInDifferentParas: S,
|
|
5819
|
-
isSelectionContainsTag:
|
|
5820
|
-
convertToContent:
|
|
5819
|
+
isSelectionContainsTag: J,
|
|
5820
|
+
convertToContent: K,
|
|
5821
5821
|
getAnchorTtsMark: P,
|
|
5822
|
-
getAnchorTtsEmotionAndRole:
|
|
5823
|
-
isAllMarkedByAnchor:
|
|
5822
|
+
getAnchorTtsEmotionAndRole: z,
|
|
5823
|
+
isAllMarkedByAnchor: v,
|
|
5824
5824
|
addExtraAnchors: W,
|
|
5825
5825
|
clearContent: EA,
|
|
5826
5826
|
insertContentAtCursor: CA,
|
|
5827
5827
|
renderHighlight: nA,
|
|
5828
5828
|
unrenderHighlight: kA
|
|
5829
|
-
} = Ro(
|
|
5829
|
+
} = Ro(t, I, B);
|
|
5830
5830
|
FB(fg, {
|
|
5831
5831
|
name: "Editor",
|
|
5832
5832
|
editorCore: r,
|
|
@@ -5840,10 +5840,10 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
5840
5840
|
updateContent: F,
|
|
5841
5841
|
isCaret: p,
|
|
5842
5842
|
isRange: G,
|
|
5843
|
-
isSelectionContainsTag:
|
|
5843
|
+
isSelectionContainsTag: J,
|
|
5844
5844
|
getAnchorTtsMark: P,
|
|
5845
|
-
getAnchorTtsEmotionAndRole:
|
|
5846
|
-
isAllMarkedByAnchor:
|
|
5845
|
+
getAnchorTtsEmotionAndRole: z,
|
|
5846
|
+
isAllMarkedByAnchor: v,
|
|
5847
5847
|
addExtraAnchors: W,
|
|
5848
5848
|
clearContent: EA,
|
|
5849
5849
|
renderHighlight: nA,
|
|
@@ -5853,7 +5853,7 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
5853
5853
|
const AA = pA(() => {
|
|
5854
5854
|
var Z, eA;
|
|
5855
5855
|
return ((eA = (Z = r.value) == null ? void 0 : Z.plugin.anchor) == null ? void 0 : eA.data) ?? {};
|
|
5856
|
-
}), fA = pA(() => Object.values(AA.value).flat().length), U = pA(() => i.value <= 0 && !h.value),
|
|
5856
|
+
}), fA = pA(() => Object.values(AA.value).flat().length), U = pA(() => i.value <= 0 && !h.value), H = (Z, eA, BA) => {
|
|
5857
5857
|
let tA = Array.from(document.body.querySelectorAll(BA.uid ? `span[data-uid="${BA.uid}"]` : `span[data-frag-id="anchor_${Z}"]`));
|
|
5858
5858
|
BA.uid || (tA = tA.filter((DA) => !DA.dataset.uid)), tA.forEach((DA) => {
|
|
5859
5859
|
var SA, xA;
|
|
@@ -5872,7 +5872,7 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
5872
5872
|
background: DA,
|
|
5873
5873
|
data: SA,
|
|
5874
5874
|
id: xA
|
|
5875
|
-
}) =>
|
|
5875
|
+
}) => X(xA, eA, DA, SA, !0)) : X(BA[0].id, eA, BA[0].background, BA[0].data, !1), BA.length > 6 ? N(Ae, {
|
|
5876
5876
|
trigger: "click",
|
|
5877
5877
|
position: "left",
|
|
5878
5878
|
popupContainer: ".c-editor-container__core-anchor",
|
|
@@ -5897,8 +5897,8 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
5897
5897
|
background: DA,
|
|
5898
5898
|
data: SA,
|
|
5899
5899
|
id: xA
|
|
5900
|
-
}) =>
|
|
5901
|
-
}) : null])),
|
|
5900
|
+
}) => X(xA, eA, DA, SA, !0, `.anchor-popover-wrapper_${tA}`))])
|
|
5901
|
+
}) : null])), X = (Z, eA, BA, tA, DA = !1, SA = void 0) => {
|
|
5902
5902
|
const xA = () => I.listenMode === SB.multiple || I.listenAnchorId !== `${tA.id}_${tA.uid}` ? N("span", {
|
|
5903
5903
|
onClick: () => B("anchorListen", tA, P(tA))
|
|
5904
5904
|
}, [N(Mn, {
|
|
@@ -5919,7 +5919,7 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
5919
5919
|
popupContainer: SA,
|
|
5920
5920
|
listen: Ig,
|
|
5921
5921
|
listenStop: bA,
|
|
5922
|
-
update:
|
|
5922
|
+
update: M
|
|
5923
5923
|
})) ?? N("img", {
|
|
5924
5924
|
src: tA.avatar,
|
|
5925
5925
|
class: Bg("avatar")
|
|
@@ -5934,18 +5934,18 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
5934
5934
|
}, [tA.name]), N("label", {
|
|
5935
5935
|
class: Bg("info-speed-volume")
|
|
5936
5936
|
}, [Ag("语速: "), tA.speed, Ag(", 音量: "), tA.volume]), N("div", {
|
|
5937
|
-
onClick: () =>
|
|
5937
|
+
onClick: () => H(Z, eA, tA)
|
|
5938
5938
|
}, [N(DB, {
|
|
5939
5939
|
class: Bg("info-rem")
|
|
5940
5940
|
}, null)]), xA()]), DA ? N("div", {
|
|
5941
5941
|
class: Bg("rem"),
|
|
5942
|
-
onClick: () =>
|
|
5942
|
+
onClick: () => H(Z, eA, tA)
|
|
5943
5943
|
}, [N(DB, {
|
|
5944
5944
|
class: Bg("info-rem")
|
|
5945
5945
|
}, null)]) : null]);
|
|
5946
5946
|
}, Ig = () => B("anchorListen", tA, P(tA)), bA = () => B("anchorListenStop", tA);
|
|
5947
5947
|
return Rg();
|
|
5948
|
-
},
|
|
5948
|
+
}, M = (Z) => {
|
|
5949
5949
|
const {
|
|
5950
5950
|
uid: eA
|
|
5951
5951
|
} = Z, {
|
|
@@ -6022,7 +6022,7 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
6022
6022
|
display: U.value ? "block" : "none"
|
|
6023
6023
|
}
|
|
6024
6024
|
}, [I.placeholder]), N("div", {
|
|
6025
|
-
ref:
|
|
6025
|
+
ref: t,
|
|
6026
6026
|
class: PA("core-content-editor-content"),
|
|
6027
6027
|
contenteditable: !I.disabled,
|
|
6028
6028
|
onDragover: (Z) => Z.preventDefault(),
|
|
@@ -6053,13 +6053,13 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
6053
6053
|
innerIsCaret: p,
|
|
6054
6054
|
innerIsRange: G,
|
|
6055
6055
|
innerIsSelectionInDifferentParas: S,
|
|
6056
|
-
innerIsSelectionContainsTag:
|
|
6057
|
-
innerConvertToContent:
|
|
6056
|
+
innerIsSelectionContainsTag: J,
|
|
6057
|
+
innerConvertToContent: K,
|
|
6058
6058
|
innerGetAnchorTtsMark: P,
|
|
6059
|
-
innerGetAnchorTtsEmotionAndRole:
|
|
6060
|
-
innerIsAllMarkedByAnchor:
|
|
6059
|
+
innerGetAnchorTtsEmotionAndRole: z,
|
|
6060
|
+
innerIsAllMarkedByAnchor: v,
|
|
6061
6061
|
innerAddExtraAnchors: W,
|
|
6062
|
-
innerUpdateAnchor:
|
|
6062
|
+
innerUpdateAnchor: M,
|
|
6063
6063
|
innerClearContent: EA,
|
|
6064
6064
|
innerInsertContentAtCursor: CA,
|
|
6065
6065
|
innerRenderHightlight: nA,
|
|
@@ -6127,8 +6127,8 @@ const DB = /* @__PURE__ */ JA(Hn, [["render", Kn]]), [PA] = ZA("editor-container
|
|
|
6127
6127
|
clearContent() {
|
|
6128
6128
|
return this.innerClearContent();
|
|
6129
6129
|
},
|
|
6130
|
-
insertContentAtCursor(I) {
|
|
6131
|
-
return this.innerInsertContentAtCursor(I);
|
|
6130
|
+
insertContentAtCursor(I, E) {
|
|
6131
|
+
return this.innerInsertContentAtCursor(I, E);
|
|
6132
6132
|
},
|
|
6133
6133
|
clear() {
|
|
6134
6134
|
return this.setContent(`<p class="${NA}"><br /></p>`);
|