bridgerte 0.9.19 → 0.9.21
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/dom.cjs +1 -1
- package/dist/dom.js +2 -2
- package/dist/{index-B_MWgqcn.js → index-B1raum97.js} +2 -2
- package/dist/{index-B_MWgqcn.js.map → index-B1raum97.js.map} +1 -1
- package/dist/{index-CXDaDnyQ.js → index-BJMFpGLi.js} +937 -918
- package/dist/index-BJMFpGLi.js.map +1 -0
- package/dist/index-BnlTw-Yj.cjs +4 -0
- package/dist/index-BnlTw-Yj.cjs.map +1 -0
- package/dist/{index-Q05JF4JK.cjs → index-D1a91Ek0.cjs} +2 -2
- package/dist/{index-Q05JF4JK.cjs.map → index-D1a91Ek0.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/style.css +1 -1
- package/dist/webview.cjs +1 -1
- package/dist/webview.js +1 -1
- package/package.json +1 -1
- package/dist/index-BkJ7H4Ee.cjs +0 -4
- package/dist/index-BkJ7H4Ee.cjs.map +0 -1
- package/dist/index-CXDaDnyQ.js.map +0 -1
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { BRIDGE_CONTENT_CHANGE_DEBOUNCE_MS as
|
|
5
|
-
import { B as
|
|
6
|
-
import { DecoratorNode as
|
|
7
|
-
import { $isHeadingNode as
|
|
8
|
-
import { $isCodeNode as X, $createCodeNode as
|
|
9
|
-
import { $isListNode as
|
|
10
|
-
import { $isTableSelection as
|
|
11
|
-
import { $isLinkNode as
|
|
12
|
-
import { registerHistory as
|
|
13
|
-
import { $generateNodesFromDOM as
|
|
14
|
-
import { $getSelectionStyleValueForProperty as
|
|
15
|
-
import { $getNearestNodeOfType as
|
|
16
|
-
import { codeBlockLanguagePanel as
|
|
17
|
-
import { r as
|
|
18
|
-
import { computePosition as
|
|
19
|
-
import { normalizeCodeLanguage as
|
|
20
|
-
const
|
|
1
|
+
var lr = Object.defineProperty;
|
|
2
|
+
var cr = (e, t, n) => t in e ? lr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
|
|
3
|
+
var $e = (e, t, n) => cr(e, typeof t != "symbol" ? t + "" : t, n);
|
|
4
|
+
import { BRIDGE_CONTENT_CHANGE_DEBOUNCE_MS as dr, isBridgeMessage as ur, BRIDGE_HEIGHT_CHANGE_THROTTLE_MS as mr, defaultBridgeEventTiming as gr } from "./bridge.js";
|
|
5
|
+
import { B as Ae, b as tn, a as nn } from "./index-CuNKUHed.js";
|
|
6
|
+
import { DecoratorNode as rn, $applyNodeReplacement as rt, $getRoot as F, $isElementNode as ie, $createParagraphNode as z, KEY_BACKSPACE_COMMAND as on, COMMAND_PRIORITY_HIGH as G, KEY_DELETE_COMMAND as an, DELETE_CHARACTER_COMMAND as sn, $getSelection as D, $isNodeSelection as hr, $isRangeSelection as O, TextNode as Y, $isParagraphNode as pr, $insertNodes as W, FORMAT_ELEMENT_COMMAND as fr, $createTextNode as Be, FORMAT_TEXT_COMMAND as br, REDO_COMMAND as yr, UNDO_COMMAND as vr, OUTDENT_CONTENT_COMMAND as wr, INDENT_CONTENT_COMMAND as Cr, SKIP_SCROLL_INTO_VIEW_TAG as _r, $getNodeByKey as he, $setSelection as kr, SELECTION_CHANGE_COMMAND as ln, COMMAND_PRIORITY_LOW as j, KEY_ESCAPE_COMMAND as cn, KEY_ARROW_DOWN_COMMAND as Er, KEY_ARROW_UP_COMMAND as xr, KEY_ENTER_COMMAND as Mr, mergeRegister as dn, INSERT_PARAGRAPH_COMMAND as Tr, INSERT_LINE_BREAK_COMMAND as Lr, $isLineBreakNode as un, $getNearestNodeFromDOMNode as Sr, CAN_UNDO_COMMAND as Nr, CAN_REDO_COMMAND as Pr, createEditor as Ir, CLEAR_HISTORY_COMMAND as Rr } from "lexical";
|
|
7
|
+
import { $isHeadingNode as Ar, $isQuoteNode as mn, $createQuoteNode as Br, $createHeadingNode as Dr, registerRichText as Hr, HeadingNode as Or, QuoteNode as $r } from "@lexical/rich-text";
|
|
8
|
+
import { $isCodeNode as X, $createCodeNode as Fr, $isCodeHighlightNode as zr, $createCodeHighlightNode as Vr, CodeNode as gn, CodeHighlightNode as Wr } from "@lexical/code";
|
|
9
|
+
import { $isListNode as Ur, ListNode as hn, INSERT_CHECK_LIST_COMMAND as jr, INSERT_UNORDERED_LIST_COMMAND as Kr, INSERT_ORDERED_LIST_COMMAND as qr, $isListItemNode as Gr, registerList as Xr, registerCheckList as Yr, ListItemNode as Jr } from "@lexical/list";
|
|
10
|
+
import { $isTableSelection as pn, $findTableNode as Qr, $deleteTableColumnAtSelection as Zr, $deleteTableRowAtSelection as eo, $insertTableColumnAtSelection as to, $insertTableRowAtSelection as no, INSERT_TABLE_COMMAND as ro, $findCellNode as oo, TableNode as Ge, $isTableRowNode as ao, $isTableCellNode as so, registerTablePlugin as io, TableRowNode as lo, TableCellNode as co, setScrollableTablesActive as uo } from "@lexical/table";
|
|
11
|
+
import { $isLinkNode as Se, $toggleLink as ft, formatUrl as mo, $createLinkNode as go, registerAutoLink as ho, createLinkMatcherWithRegExp as bt, LinkNode as po, AutoLinkNode as fo } from "@lexical/link";
|
|
12
|
+
import { registerHistory as bo, createEmptyHistoryState as yo } from "@lexical/history";
|
|
13
|
+
import { $generateNodesFromDOM as fn, $generateHtmlFromNodes as vo } from "@lexical/html";
|
|
14
|
+
import { $getSelectionStyleValueForProperty as wo, $setBlocksType as Fe, $patchStyleText as yt, $trimTextContentFromAnchor as vt } from "@lexical/selection";
|
|
15
|
+
import { $getNearestNodeOfType as Co, $findMatchingParent as _o, $insertNodeToNearestRoot as bn } from "@lexical/utils";
|
|
16
|
+
import { codeBlockLanguagePanel as Xe, isCommandStateForCommand as ko, resolveToolbarMenu as ot, defaultMenuSchema as De, tableHeaderMenuItems as Eo } from "./native-spec.js";
|
|
17
|
+
import { r as yn } from "./index-sbZNOcCB.js";
|
|
18
|
+
import { computePosition as vn, platform as wn, offset as Cn, flip as _n, shift as kn, autoUpdate as xo } from "@floating-ui/dom";
|
|
19
|
+
import { normalizeCodeLanguage as Mo, getCodeLanguageOptions as To, ShikiTokenizer as wt, isCodeLanguageLoaded as En, loadCodeLanguage as Lo, loadCodeTheme as So, registerCodeHighlighting as No } from "@lexical/code-shiki";
|
|
20
|
+
const Ct = "bridgerte-media", xn = "Loading", _t = (e, t) => `${e}:${t}`, oe = (e) => typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.floor(e) : void 0, kt = (e) => typeof e == "number" && Number.isFinite(e) ? Math.min(Math.max(e, 0), 100) : void 0, Po = (e) => e === 20 || e === 50 || e === 100, Et = (e) => Po(e) ? e : void 0, xt = (e) => e === "center" || e === "right" ? e : void 0, Io = (e) => e.status === "error" ? e.errorMessage ?? "媒体加载失败" : xn, Ro = (e, t) => !t || e.status === void 0 || e.status === "success", ze = (e, t, n) => {
|
|
21
21
|
n && e.setAttribute(t, n);
|
|
22
|
-
},
|
|
22
|
+
}, Mt = (e, t, n) => {
|
|
23
23
|
n !== void 0 && e.setAttribute(t, String(n));
|
|
24
24
|
};
|
|
25
|
-
class le extends
|
|
25
|
+
class le extends rn {
|
|
26
26
|
constructor(n, r) {
|
|
27
27
|
super(r);
|
|
28
|
-
|
|
28
|
+
$e(this, "__payload");
|
|
29
29
|
this.__payload = {
|
|
30
30
|
...n,
|
|
31
|
-
assetId: n.assetId ??
|
|
31
|
+
assetId: n.assetId ?? _t(n.mediaType, n.url),
|
|
32
32
|
width: oe(n.width),
|
|
33
33
|
height: oe(n.height),
|
|
34
34
|
duration: oe(n.duration),
|
|
35
|
-
progress:
|
|
36
|
-
displayWidthPercent:
|
|
37
|
-
align:
|
|
35
|
+
progress: kt(n.progress),
|
|
36
|
+
displayWidthPercent: Et(n.displayWidthPercent),
|
|
37
|
+
align: xt(n.align)
|
|
38
38
|
}, this.__payload.displayWidthPercent === void 0 && delete this.__payload.displayWidthPercent, this.__payload.align === void 0 && delete this.__payload.align;
|
|
39
39
|
}
|
|
40
40
|
static getType() {
|
|
41
|
-
return
|
|
41
|
+
return Ct;
|
|
42
42
|
}
|
|
43
43
|
static clone(n) {
|
|
44
44
|
return new le(n.__payload, n.__key);
|
|
@@ -57,11 +57,11 @@ class le extends nn {
|
|
|
57
57
|
static importDOM() {
|
|
58
58
|
return {
|
|
59
59
|
img: () => ({
|
|
60
|
-
conversion:
|
|
60
|
+
conversion: Ao,
|
|
61
61
|
priority: 1
|
|
62
62
|
}),
|
|
63
63
|
video: () => ({
|
|
64
|
-
conversion:
|
|
64
|
+
conversion: Bo,
|
|
65
65
|
priority: 1
|
|
66
66
|
})
|
|
67
67
|
};
|
|
@@ -73,7 +73,7 @@ class le extends nn {
|
|
|
73
73
|
return {
|
|
74
74
|
...super.exportJSON(),
|
|
75
75
|
...this.__payload,
|
|
76
|
-
type:
|
|
76
|
+
type: Ct
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
getTextContent() {
|
|
@@ -84,7 +84,7 @@ class le extends nn {
|
|
|
84
84
|
}
|
|
85
85
|
getAsset() {
|
|
86
86
|
const n = this.__payload, r = {
|
|
87
|
-
id: n.assetId ??
|
|
87
|
+
id: n.assetId ?? _t(n.mediaType, n.url),
|
|
88
88
|
type: n.mediaType,
|
|
89
89
|
url: n.url,
|
|
90
90
|
status: n.status,
|
|
@@ -108,12 +108,12 @@ class le extends nn {
|
|
|
108
108
|
width: oe(n.width ?? r.__payload.width),
|
|
109
109
|
height: oe(n.height ?? r.__payload.height),
|
|
110
110
|
duration: oe(n.duration ?? r.__payload.duration),
|
|
111
|
-
progress:
|
|
111
|
+
progress: kt(n.progress ?? r.__payload.progress),
|
|
112
112
|
displayWidthPercent: Object.prototype.hasOwnProperty.call(
|
|
113
113
|
n,
|
|
114
114
|
"displayWidthPercent"
|
|
115
|
-
) ?
|
|
116
|
-
align: Object.prototype.hasOwnProperty.call(n, "align") ?
|
|
115
|
+
) ? Et(n.displayWidthPercent) : r.__payload.displayWidthPercent,
|
|
116
|
+
align: Object.prototype.hasOwnProperty.call(n, "align") ? xt(n.align) : r.__payload.align
|
|
117
117
|
}, r.__payload.displayWidthPercent === void 0 && delete r.__payload.displayWidthPercent, r.__payload.align === void 0 && delete r.__payload.align;
|
|
118
118
|
}
|
|
119
119
|
createMediaElement(n) {
|
|
@@ -133,19 +133,19 @@ class le extends nn {
|
|
|
133
133
|
), a.addEventListener("error", () => {
|
|
134
134
|
o.dataset.loadState = "error";
|
|
135
135
|
}, { once: !0 }));
|
|
136
|
-
const l =
|
|
137
|
-
if (r.mediaType === "image" ? (l && a.setAttribute("src", r.url), a.setAttribute("loading", "lazy"),
|
|
136
|
+
const l = Ro(r, n);
|
|
137
|
+
if (r.mediaType === "image" ? (l && a.setAttribute("src", r.url), a.setAttribute("loading", "lazy"), ze(a, "alt", r.alt ?? r.title)) : (l && a.setAttribute("src", r.url), a.setAttribute("controls", "true"), a.setAttribute("preload", "metadata"), ze(a, "poster", r.poster)), ze(a, "title", r.title), Mt(a, "width", r.width), Mt(a, "height", r.height), n) {
|
|
138
138
|
const d = document.createElement("div"), i = document.createElement("span"), g = document.createElement("span");
|
|
139
|
-
d.className = "bridgerte__media-placeholder", d.setAttribute("aria-hidden", "true"), i.className = "bridgerte__media-placeholder-icon", i.textContent = r.mediaType === "image" ? "IMG" : "VIDEO", g.className = "bridgerte__media-placeholder-text", g.textContent =
|
|
139
|
+
d.className = "bridgerte__media-placeholder", d.setAttribute("aria-hidden", "true"), i.className = "bridgerte__media-placeholder-icon", i.textContent = r.mediaType === "image" ? "IMG" : "VIDEO", g.className = "bridgerte__media-placeholder-text", g.textContent = Io(r), d.append(i, g), o.append(d);
|
|
140
140
|
}
|
|
141
141
|
if (o.append(a), r.status === "uploading" || r.status === "error") {
|
|
142
142
|
const d = document.createElement("figcaption");
|
|
143
|
-
d.className = "bridgerte__media-status", d.textContent = r.status === "error" ? r.errorMessage ?? "上传失败" :
|
|
143
|
+
d.className = "bridgerte__media-status", d.textContent = r.status === "error" ? r.errorMessage ?? "上传失败" : xn, o.append(d);
|
|
144
144
|
}
|
|
145
145
|
return o;
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
-
const
|
|
148
|
+
const Ao = (e) => {
|
|
149
149
|
const t = e instanceof HTMLImageElement ? e : null;
|
|
150
150
|
return {
|
|
151
151
|
/*
|
|
@@ -162,7 +162,7 @@ const Po = (e) => {
|
|
|
162
162
|
status: "success"
|
|
163
163
|
}) : null
|
|
164
164
|
};
|
|
165
|
-
},
|
|
165
|
+
}, Bo = (e) => {
|
|
166
166
|
const t = e instanceof HTMLVideoElement ? e : null;
|
|
167
167
|
return {
|
|
168
168
|
/*
|
|
@@ -178,7 +178,7 @@ const Po = (e) => {
|
|
|
178
178
|
status: "success"
|
|
179
179
|
}) : null
|
|
180
180
|
};
|
|
181
|
-
}, ce = (e) =>
|
|
181
|
+
}, ce = (e) => rt(new le(e)), Do = (e) => ce({
|
|
182
182
|
mediaType: "image",
|
|
183
183
|
url: e.url,
|
|
184
184
|
alt: e.alt,
|
|
@@ -189,7 +189,7 @@ const Po = (e) => {
|
|
|
189
189
|
align: e.align,
|
|
190
190
|
assetId: e.assetId,
|
|
191
191
|
status: "success"
|
|
192
|
-
}),
|
|
192
|
+
}), Ho = (e) => ce({
|
|
193
193
|
mediaType: "video",
|
|
194
194
|
url: e.url,
|
|
195
195
|
poster: e.poster,
|
|
@@ -200,9 +200,9 @@ const Po = (e) => {
|
|
|
200
200
|
align: e.align,
|
|
201
201
|
assetId: e.assetId,
|
|
202
202
|
status: "success"
|
|
203
|
-
}),
|
|
203
|
+
}), Mn = (e) => e instanceof le, ge = (e) => {
|
|
204
204
|
const t = (n) => {
|
|
205
|
-
if (
|
|
205
|
+
if (Mn(n) && n.getAsset().id === e) return n;
|
|
206
206
|
if (!ie(n)) return null;
|
|
207
207
|
for (const r of n.getChildren()) {
|
|
208
208
|
const o = t(r);
|
|
@@ -211,29 +211,47 @@ const Po = (e) => {
|
|
|
211
211
|
return null;
|
|
212
212
|
};
|
|
213
213
|
return t(F());
|
|
214
|
-
},
|
|
214
|
+
}, Oo = ".bridgerte__table-cell", $o = "75px", Fo = "1px solid black", zo = "top", Vo = "start", Wo = /* @__PURE__ */ new Set([
|
|
215
|
+
"#f2f3f5",
|
|
216
|
+
"rgb(242,243,245)"
|
|
217
|
+
]), Tn = (e) => e.trim().toLowerCase().replace(/\s+/g, " "), Uo = (e) => Tn(e).replace(/\s*,\s*/g, ","), ve = (e, t, n) => {
|
|
218
|
+
Tn(e.getPropertyValue(t)) === n && e.removeProperty(t);
|
|
219
|
+
}, jo = (e, t) => {
|
|
220
|
+
const n = Uo(t.getPropertyValue("background-color"));
|
|
221
|
+
(e.classList.contains("bridgerte__table-cell--header") || e.tagName.toLowerCase() === "th") && Wo.has(n) && t.removeProperty("background-color");
|
|
222
|
+
}, Ko = (e) => {
|
|
223
|
+
var t;
|
|
224
|
+
((t = e.getAttribute("style")) == null ? void 0 : t.trim()) === "" && e.removeAttribute("style");
|
|
225
|
+
}, Ln = (e) => {
|
|
226
|
+
if (!e || !e.includes("bridgerte__table-cell")) return e;
|
|
227
|
+
const t = document.createElement("template");
|
|
228
|
+
return t.innerHTML = e, t.content.querySelectorAll(Oo).forEach((n) => {
|
|
229
|
+
const { style: r } = n;
|
|
230
|
+
ve(r, "border", Fo), ve(r, "vertical-align", zo), ve(r, "text-align", Vo), ve(r, "width", $o), jo(n, r), Ko(n);
|
|
231
|
+
}), t.innerHTML;
|
|
232
|
+
}, Sn = {
|
|
215
233
|
root: {
|
|
216
234
|
type: "root",
|
|
217
235
|
version: 1,
|
|
218
236
|
children: []
|
|
219
237
|
}
|
|
220
238
|
};
|
|
221
|
-
function
|
|
239
|
+
function Ye(e = {}) {
|
|
222
240
|
return {
|
|
223
241
|
html: e.html ?? "",
|
|
224
|
-
json: e.json ??
|
|
242
|
+
json: e.json ?? Sn,
|
|
225
243
|
plainText: e.plainText ?? "",
|
|
226
244
|
assets: e.assets ?? [],
|
|
227
|
-
version: e.version ??
|
|
245
|
+
version: e.version ?? Ae
|
|
228
246
|
};
|
|
229
247
|
}
|
|
230
|
-
const
|
|
248
|
+
const qo = (e) => e.toJSON(), Go = (e) => {
|
|
231
249
|
var t;
|
|
232
250
|
return ((t = e.root.children) == null ? void 0 : t.length) === 0;
|
|
233
|
-
},
|
|
251
|
+
}, Xo = (e) => e.read(() => {
|
|
234
252
|
const t = /* @__PURE__ */ new Map(), n = (r) => {
|
|
235
253
|
ie(r) && r.getChildren().forEach((o) => {
|
|
236
|
-
if (
|
|
254
|
+
if (Mn(o)) {
|
|
237
255
|
const a = o.getAsset();
|
|
238
256
|
t.set(a.id, a);
|
|
239
257
|
return;
|
|
@@ -242,20 +260,20 @@ const Ao = (e) => e.toJSON(), Do = (e) => {
|
|
|
242
260
|
});
|
|
243
261
|
};
|
|
244
262
|
return n(F()), [...t.values()];
|
|
245
|
-
}),
|
|
246
|
-
const n = t.read(() =>
|
|
263
|
+
}), Nn = (e, t) => {
|
|
264
|
+
const n = Ln(t.read(() => vo(t))), r = e.read(() => F().getTextContent()), o = Xo(e);
|
|
247
265
|
return {
|
|
248
266
|
html: n,
|
|
249
|
-
json:
|
|
267
|
+
json: qo(e),
|
|
250
268
|
plainText: r,
|
|
251
269
|
assets: o,
|
|
252
|
-
version:
|
|
270
|
+
version: Ae
|
|
253
271
|
};
|
|
254
|
-
},
|
|
255
|
-
const n =
|
|
256
|
-
return
|
|
257
|
-
},
|
|
258
|
-
if (t.json !==
|
|
272
|
+
}, Yo = (e, t) => {
|
|
273
|
+
const n = Ye(t);
|
|
274
|
+
return Pn(e, n), Nn(e.getEditorState(), e);
|
|
275
|
+
}, Pn = (e, t) => {
|
|
276
|
+
if (t.json !== Sn && !Go(t.json)) {
|
|
259
277
|
const o = t.json;
|
|
260
278
|
e.setEditorState(e.parseEditorState(o));
|
|
261
279
|
return;
|
|
@@ -270,15 +288,15 @@ const Ao = (e) => e.toJSON(), Do = (e) => {
|
|
|
270
288
|
);
|
|
271
289
|
return;
|
|
272
290
|
}
|
|
273
|
-
const r = new DOMParser().parseFromString(t.html, "text/html");
|
|
291
|
+
const r = new DOMParser().parseFromString(Ln(t.html), "text/html");
|
|
274
292
|
e.update(
|
|
275
293
|
() => {
|
|
276
|
-
const o = F(), a =
|
|
294
|
+
const o = F(), a = fn(e, r);
|
|
277
295
|
o.clear(), o.append(...a);
|
|
278
296
|
},
|
|
279
297
|
{ discrete: !0 }
|
|
280
298
|
);
|
|
281
|
-
},
|
|
299
|
+
}, Jo = "bridgerte-divider", In = (e) => (e == null ? void 0 : e.getType()) === Jo, Qo = (e, t, n) => {
|
|
282
300
|
const r = F();
|
|
283
301
|
if (r.getChildrenSize() === 0) {
|
|
284
302
|
const o = z();
|
|
@@ -290,18 +308,18 @@ const Ao = (e) => e.toJSON(), Do = (e) => {
|
|
|
290
308
|
return;
|
|
291
309
|
}
|
|
292
310
|
t == null || t.selectStart(), t || e == null || e.selectEnd();
|
|
293
|
-
},
|
|
311
|
+
}, Zo = (e, t) => {
|
|
294
312
|
const n = e.getPreviousSibling(), r = e.getNextSibling();
|
|
295
|
-
e.remove(),
|
|
296
|
-
},
|
|
313
|
+
e.remove(), Qo(n, r, t);
|
|
314
|
+
}, ea = () => {
|
|
297
315
|
const e = D();
|
|
298
|
-
if (!
|
|
316
|
+
if (!hr(e)) return null;
|
|
299
317
|
const t = e.getNodes();
|
|
300
|
-
return t.length === 1 &&
|
|
301
|
-
},
|
|
318
|
+
return t.length === 1 && In(t[0]) ? t[0] : null;
|
|
319
|
+
}, ta = (e) => e.getKey() === "root" ? null : e.getTopLevelElement(), na = (e) => {
|
|
302
320
|
const t = D();
|
|
303
|
-
if (!
|
|
304
|
-
const n = t.anchor, r = n.getNode(), o =
|
|
321
|
+
if (!O(t) || !t.isCollapsed()) return null;
|
|
322
|
+
const n = t.anchor, r = n.getNode(), o = ta(r);
|
|
305
323
|
if (!o || !ie(o)) return null;
|
|
306
324
|
if (ie(r)) {
|
|
307
325
|
const l = r.isEmpty() && n.offset === 0, d = r === o && n.offset === 0, i = r === o && n.offset === o.getChildrenSize();
|
|
@@ -310,37 +328,37 @@ const Ao = (e) => e.toJSON(), Do = (e) => {
|
|
|
310
328
|
if (!(r instanceof Y)) return null;
|
|
311
329
|
const a = e ? o.getFirstDescendant() : o.getLastDescendant(), s = e ? 0 : r.getTextContentSize();
|
|
312
330
|
return a === r && n.offset === s ? o : null;
|
|
313
|
-
},
|
|
314
|
-
const t =
|
|
315
|
-
return
|
|
316
|
-
},
|
|
331
|
+
}, ra = (e) => {
|
|
332
|
+
const t = na(e), n = e ? t == null ? void 0 : t.getPreviousSibling() : t == null ? void 0 : t.getNextSibling();
|
|
333
|
+
return In(n) ? n : null;
|
|
334
|
+
}, oa = (e, t) => {
|
|
317
335
|
const n = (o) => {
|
|
318
336
|
if (t()) return !1;
|
|
319
|
-
const a =
|
|
320
|
-
return a ? (
|
|
337
|
+
const a = ea() ?? ra(o);
|
|
338
|
+
return a ? (Zo(a, o), !0) : !1;
|
|
321
339
|
}, r = (o, a) => {
|
|
322
340
|
const s = n(a);
|
|
323
341
|
return s && o.preventDefault(), s;
|
|
324
342
|
};
|
|
325
343
|
return [
|
|
326
344
|
e.registerCommand(
|
|
327
|
-
|
|
345
|
+
on,
|
|
328
346
|
(o) => r(o, !0),
|
|
329
347
|
G
|
|
330
348
|
),
|
|
331
349
|
e.registerCommand(
|
|
332
|
-
|
|
350
|
+
an,
|
|
333
351
|
(o) => r(o, !1),
|
|
334
352
|
G
|
|
335
353
|
),
|
|
336
354
|
e.registerCommand(
|
|
337
|
-
|
|
355
|
+
sn,
|
|
338
356
|
(o) => n(o),
|
|
339
357
|
G
|
|
340
358
|
)
|
|
341
359
|
];
|
|
342
360
|
};
|
|
343
|
-
class pe extends
|
|
361
|
+
class pe extends rn {
|
|
344
362
|
static getType() {
|
|
345
363
|
return "bridgerte-divider";
|
|
346
364
|
}
|
|
@@ -364,13 +382,13 @@ class pe extends nn {
|
|
|
364
382
|
static importDOM() {
|
|
365
383
|
return {
|
|
366
384
|
hr: () => ({
|
|
367
|
-
conversion:
|
|
385
|
+
conversion: aa,
|
|
368
386
|
priority: 0
|
|
369
387
|
})
|
|
370
388
|
};
|
|
371
389
|
}
|
|
372
390
|
static importJSON(t) {
|
|
373
|
-
return
|
|
391
|
+
return at().updateFromJSON(t);
|
|
374
392
|
}
|
|
375
393
|
exportJSON() {
|
|
376
394
|
return {
|
|
@@ -386,50 +404,50 @@ class pe extends nn {
|
|
|
386
404
|
return !1;
|
|
387
405
|
}
|
|
388
406
|
}
|
|
389
|
-
const
|
|
390
|
-
node:
|
|
391
|
-
}),
|
|
407
|
+
const aa = (e) => ({
|
|
408
|
+
node: at()
|
|
409
|
+
}), at = () => rt(new pe()), Tt = "bridgerte-mention", st = "mention", Rn = (e) => e.label.startsWith("@") ? e.label : `@${e.label}`, sa = (e) => {
|
|
392
410
|
const t = document.createElement("span");
|
|
393
|
-
return t.className = "bridgerte__mention", t.dataset.type =
|
|
411
|
+
return t.className = "bridgerte__mention", t.dataset.type = st, t.dataset.id = e.id, t.dataset.value = e.value, t.contentEditable = "false", t.textContent = Rn(e), e.description && (t.dataset.description = e.description), t;
|
|
394
412
|
};
|
|
395
413
|
class ye extends Y {
|
|
396
|
-
constructor(n, r =
|
|
414
|
+
constructor(n, r = Rn(n), o) {
|
|
397
415
|
super(r, o);
|
|
398
|
-
|
|
416
|
+
$e(this, "__item");
|
|
399
417
|
this.__item = n;
|
|
400
418
|
}
|
|
401
419
|
static getType() {
|
|
402
|
-
return
|
|
420
|
+
return Tt;
|
|
403
421
|
}
|
|
404
422
|
static clone(n) {
|
|
405
423
|
return new ye(n.__item, n.__text, n.__key);
|
|
406
424
|
}
|
|
407
425
|
createDOM(n) {
|
|
408
426
|
const r = super.createDOM(n);
|
|
409
|
-
return r.className = "bridgerte__mention", r.dataset.type =
|
|
427
|
+
return r.className = "bridgerte__mention", r.dataset.type = st, r.dataset.id = this.__item.id, r.dataset.value = this.__item.value, r.contentEditable = "false", this.__item.description && (r.dataset.description = this.__item.description), r;
|
|
410
428
|
}
|
|
411
429
|
updateDOM(n, r, o) {
|
|
412
430
|
return super.updateDOM(n, r, o) ? !0 : (r.dataset.id = this.__item.id, r.dataset.value = this.__item.value, this.__item.description ? r.dataset.description = this.__item.description : delete r.dataset.description, !1);
|
|
413
431
|
}
|
|
414
432
|
exportDOM(n) {
|
|
415
|
-
return { element:
|
|
433
|
+
return { element: sa(this.__item) };
|
|
416
434
|
}
|
|
417
435
|
static importDOM() {
|
|
418
436
|
return {
|
|
419
437
|
span: () => ({
|
|
420
|
-
conversion:
|
|
438
|
+
conversion: ia,
|
|
421
439
|
priority: 2
|
|
422
440
|
})
|
|
423
441
|
};
|
|
424
442
|
}
|
|
425
443
|
static importJSON(n) {
|
|
426
|
-
return
|
|
444
|
+
return it(n).updateFromJSON(n);
|
|
427
445
|
}
|
|
428
446
|
exportJSON() {
|
|
429
447
|
return {
|
|
430
448
|
...super.exportJSON(),
|
|
431
449
|
...this.__item,
|
|
432
|
-
type:
|
|
450
|
+
type: Tt
|
|
433
451
|
};
|
|
434
452
|
}
|
|
435
453
|
isTextEntity() {
|
|
@@ -442,33 +460,33 @@ class ye extends Y {
|
|
|
442
460
|
return this.__item;
|
|
443
461
|
}
|
|
444
462
|
}
|
|
445
|
-
const
|
|
463
|
+
const ia = (e) => {
|
|
446
464
|
var a;
|
|
447
465
|
const t = e instanceof HTMLElement ? e : null;
|
|
448
|
-
if (!t || t.dataset.type !==
|
|
466
|
+
if (!t || t.dataset.type !== st)
|
|
449
467
|
return { node: null };
|
|
450
468
|
const n = ((a = t.textContent) == null ? void 0 : a.replace(/^@/, "")) || t.dataset.value || "", r = t.dataset.id || t.dataset.value || n, o = t.dataset.value || r;
|
|
451
469
|
return !n || !r || !o ? { node: null } : {
|
|
452
|
-
node:
|
|
470
|
+
node: it({
|
|
453
471
|
id: r,
|
|
454
472
|
label: n,
|
|
455
473
|
value: o,
|
|
456
474
|
description: t.dataset.description
|
|
457
475
|
})
|
|
458
476
|
};
|
|
459
|
-
},
|
|
477
|
+
}, it = (e) => rt(new ye(e).setMode("token")), Lt = (e) => e instanceof ye, la = "请输入内容", ca = () => {
|
|
460
478
|
const t = F().getChildren();
|
|
461
479
|
if (t.length === 0) return !0;
|
|
462
480
|
if (t.length > 1) return !1;
|
|
463
481
|
const n = t[0];
|
|
464
|
-
return
|
|
465
|
-
},
|
|
482
|
+
return pr(n) && n.getChildrenSize() === 0;
|
|
483
|
+
}, da = ({
|
|
466
484
|
editor: e,
|
|
467
485
|
contentElement: t
|
|
468
486
|
}) => {
|
|
469
|
-
const n = e.getEditorState().read(
|
|
487
|
+
const n = e.getEditorState().read(ca);
|
|
470
488
|
t.dataset.empty = String(n);
|
|
471
|
-
},
|
|
489
|
+
}, ua = ({
|
|
472
490
|
editor: e,
|
|
473
491
|
contentElement: t,
|
|
474
492
|
isReadonly: n
|
|
@@ -483,7 +501,7 @@ const Xo = (e) => {
|
|
|
483
501
|
return t.addEventListener("pointerdown", r), () => {
|
|
484
502
|
t.removeEventListener("pointerdown", r);
|
|
485
503
|
};
|
|
486
|
-
},
|
|
504
|
+
}, ma = [
|
|
487
505
|
{ command: "format.bold", format: "bold" },
|
|
488
506
|
{ command: "format.italic", format: "italic" },
|
|
489
507
|
{ command: "format.underline", format: "underline" },
|
|
@@ -491,35 +509,35 @@ const Xo = (e) => {
|
|
|
491
509
|
{ command: "format.inlineCode", format: "code" },
|
|
492
510
|
{ command: "format.superscript", format: "superscript" },
|
|
493
511
|
{ command: "format.subscript", format: "subscript" }
|
|
494
|
-
],
|
|
512
|
+
], ga = [
|
|
495
513
|
{ command: "format.color", property: "color" },
|
|
496
514
|
{ command: "format.backgroundColor", property: "background-color" },
|
|
497
515
|
{ command: "format.fontSize", property: "font-size" },
|
|
498
516
|
{ command: "format.fontFamily", property: "font-family" },
|
|
499
517
|
{ command: "format.lineHeight", property: "line-height" }
|
|
500
|
-
],
|
|
518
|
+
], ha = [
|
|
501
519
|
{ command: "list.ordered", listType: "ordered" },
|
|
502
520
|
{ command: "list.unordered", listType: "unordered" },
|
|
503
521
|
{ command: "list.todo", listType: "todo" }
|
|
504
|
-
],
|
|
522
|
+
], pa = [
|
|
505
523
|
"media.pickImage",
|
|
506
524
|
"media.pickVideo"
|
|
507
|
-
],
|
|
525
|
+
], An = () => {
|
|
508
526
|
const e = D();
|
|
509
|
-
if (!
|
|
527
|
+
if (!O(e)) return null;
|
|
510
528
|
const t = e.anchor.getNode();
|
|
511
529
|
return t.getKey() === "root" ? t : t.getTopLevelElementOrThrow();
|
|
512
|
-
},
|
|
513
|
-
const e =
|
|
530
|
+
}, fa = () => {
|
|
531
|
+
const e = An();
|
|
514
532
|
if (!e) return null;
|
|
515
|
-
if (
|
|
533
|
+
if (Ar(e)) {
|
|
516
534
|
const t = Number(e.getTag().replace("h", ""));
|
|
517
535
|
return {
|
|
518
536
|
command: "block.heading",
|
|
519
537
|
value: Number.isNaN(t) ? void 0 : t
|
|
520
538
|
};
|
|
521
539
|
}
|
|
522
|
-
if (
|
|
540
|
+
if (mn(e))
|
|
523
541
|
return {
|
|
524
542
|
command: "block.quote"
|
|
525
543
|
};
|
|
@@ -533,44 +551,44 @@ const Xo = (e) => {
|
|
|
533
551
|
return {
|
|
534
552
|
command: "block.paragraph"
|
|
535
553
|
};
|
|
536
|
-
},
|
|
537
|
-
const e =
|
|
554
|
+
}, ba = () => {
|
|
555
|
+
const e = An();
|
|
538
556
|
if (!e || !("getFormatType" in e)) return;
|
|
539
557
|
const t = e.getFormatType();
|
|
540
558
|
return t === "" ? void 0 : t;
|
|
541
|
-
},
|
|
559
|
+
}, ya = () => {
|
|
542
560
|
const e = D();
|
|
543
|
-
if (!
|
|
544
|
-
const t = e.anchor.getNode(), n =
|
|
561
|
+
if (!O(e)) return null;
|
|
562
|
+
const t = e.anchor.getNode(), n = Ur(t) ? t : Co(t, hn);
|
|
545
563
|
return n ? n.getListType() === "check" ? "todo" : n.getTag() === "ol" ? "ordered" : "unordered" : null;
|
|
546
|
-
},
|
|
564
|
+
}, va = (e) => {
|
|
547
565
|
const t = D();
|
|
548
|
-
if (!
|
|
549
|
-
const n =
|
|
566
|
+
if (!O(t)) return;
|
|
567
|
+
const n = wo(t, e);
|
|
550
568
|
return n === "" ? void 0 : n;
|
|
551
|
-
},
|
|
569
|
+
}, wa = () => {
|
|
552
570
|
const e = D();
|
|
553
|
-
if (!
|
|
571
|
+
if (!O(e)) return !1;
|
|
554
572
|
const t = e.anchor.getNode(), n = t.getParent();
|
|
555
|
-
return
|
|
556
|
-
},
|
|
557
|
-
const t = D(), n =
|
|
573
|
+
return Se(t) || Se(n);
|
|
574
|
+
}, Ca = (e) => {
|
|
575
|
+
const t = D(), n = O(t), r = fa(), o = ya(), a = ba(), s = wa(), l = e.readonly || !n, d = ma.map((b) => ({
|
|
558
576
|
command: b.command,
|
|
559
577
|
active: n && t.hasFormat(b.format),
|
|
560
578
|
disabled: l
|
|
561
|
-
})), i =
|
|
562
|
-
const T =
|
|
579
|
+
})), i = ga.map((b) => {
|
|
580
|
+
const T = va(b.property);
|
|
563
581
|
return {
|
|
564
582
|
command: b.command,
|
|
565
583
|
active: T !== void 0,
|
|
566
584
|
disabled: l,
|
|
567
585
|
value: T
|
|
568
586
|
};
|
|
569
|
-
}), g =
|
|
587
|
+
}), g = ha.map((b) => ({
|
|
570
588
|
command: b.command,
|
|
571
589
|
active: o === b.listType,
|
|
572
590
|
disabled: l
|
|
573
|
-
})), v =
|
|
591
|
+
})), v = pa.map((b) => ({
|
|
574
592
|
command: b,
|
|
575
593
|
active: !1,
|
|
576
594
|
disabled: e.readonly || !e.canUploadMedia
|
|
@@ -669,7 +687,7 @@ const Xo = (e) => {
|
|
|
669
687
|
disabled: !1
|
|
670
688
|
}
|
|
671
689
|
];
|
|
672
|
-
},
|
|
690
|
+
}, _a = (e, t) => e.length === t.length && e.every((n, r) => {
|
|
673
691
|
const o = t[r];
|
|
674
692
|
return o !== void 0 && n.command === o.command && n.active === o.active && n.disabled === o.disabled && n.value === o.value;
|
|
675
693
|
}), K = (e, t, n, r) => {
|
|
@@ -679,14 +697,14 @@ const Xo = (e) => {
|
|
|
679
697
|
} catch (a) {
|
|
680
698
|
console.error("[BridgeRTE] onError callback failed.", a);
|
|
681
699
|
}
|
|
682
|
-
},
|
|
700
|
+
}, ka = (e, t) => {
|
|
683
701
|
var n;
|
|
684
702
|
try {
|
|
685
703
|
(n = e.onChange) == null || n.call(e, t);
|
|
686
704
|
} catch (r) {
|
|
687
705
|
K(e, "callback.onChange", "onChange callback failed.", r);
|
|
688
706
|
}
|
|
689
|
-
},
|
|
707
|
+
}, Ea = (e, t) => {
|
|
690
708
|
var n;
|
|
691
709
|
try {
|
|
692
710
|
(n = e.onContentChange) == null || n.call(e, t);
|
|
@@ -698,7 +716,7 @@ const Xo = (e) => {
|
|
|
698
716
|
r
|
|
699
717
|
);
|
|
700
718
|
}
|
|
701
|
-
},
|
|
719
|
+
}, xa = (e, t) => {
|
|
702
720
|
var n;
|
|
703
721
|
try {
|
|
704
722
|
(n = e.onCommandStateChange) == null || n.call(e, [...t]);
|
|
@@ -710,28 +728,28 @@ const Xo = (e) => {
|
|
|
710
728
|
r
|
|
711
729
|
);
|
|
712
730
|
}
|
|
713
|
-
},
|
|
731
|
+
}, Ma = (e) => {
|
|
714
732
|
var t;
|
|
715
733
|
try {
|
|
716
734
|
(t = e.onFocus) == null || t.call(e);
|
|
717
735
|
} catch (n) {
|
|
718
736
|
K(e, "callback.onFocus", "onFocus callback failed.", n);
|
|
719
737
|
}
|
|
720
|
-
},
|
|
738
|
+
}, Ta = (e) => {
|
|
721
739
|
var t;
|
|
722
740
|
try {
|
|
723
741
|
(t = e.onBlur) == null || t.call(e);
|
|
724
742
|
} catch (n) {
|
|
725
743
|
K(e, "callback.onBlur", "onBlur callback failed.", n);
|
|
726
744
|
}
|
|
727
|
-
},
|
|
745
|
+
}, La = (e, t) => {
|
|
728
746
|
var n;
|
|
729
747
|
try {
|
|
730
748
|
(n = e.onReady) == null || n.call(e, t);
|
|
731
749
|
} catch (r) {
|
|
732
750
|
K(e, "callback.onReady", "onReady callback failed.", r);
|
|
733
751
|
}
|
|
734
|
-
},
|
|
752
|
+
}, Sa = ({
|
|
735
753
|
lexicalEditor: e,
|
|
736
754
|
options: t,
|
|
737
755
|
isDestroyed: n,
|
|
@@ -757,13 +775,13 @@ const Xo = (e) => {
|
|
|
757
775
|
if (n()) return;
|
|
758
776
|
const b = l;
|
|
759
777
|
e.getEditorState().read(() => {
|
|
760
|
-
l =
|
|
778
|
+
l = Ca({
|
|
761
779
|
canUndo: a,
|
|
762
780
|
canRedo: s,
|
|
763
781
|
readonly: o(),
|
|
764
782
|
canUploadMedia: r()
|
|
765
783
|
});
|
|
766
|
-
}), v && !
|
|
784
|
+
}), v && !_a(b, l) && (xa(t, l), i());
|
|
767
785
|
};
|
|
768
786
|
return {
|
|
769
787
|
refreshCommandStates: g,
|
|
@@ -789,14 +807,14 @@ const Xo = (e) => {
|
|
|
789
807
|
d.clear();
|
|
790
808
|
}
|
|
791
809
|
};
|
|
792
|
-
},
|
|
810
|
+
}, Na = (e) => `upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`, Pa = (e) => typeof URL.createObjectURL == "function" ? URL.createObjectURL(e) : e.name, we = (e) => {
|
|
793
811
|
typeof URL.revokeObjectURL == "function" && e.startsWith("blob:") && URL.revokeObjectURL(e);
|
|
794
|
-
},
|
|
812
|
+
}, St = (e) => ({
|
|
795
813
|
name: e.name,
|
|
796
814
|
mimeType: e.type || void 0,
|
|
797
815
|
size: e.size,
|
|
798
816
|
data: e
|
|
799
|
-
}),
|
|
817
|
+
}), Ia = (e) => typeof DOMException < "u" && e instanceof DOMException && e.name === "AbortError", Ra = (e) => new Promise((t) => {
|
|
800
818
|
const n = new Image(), r = () => {
|
|
801
819
|
n.onload = null, n.onerror = null;
|
|
802
820
|
};
|
|
@@ -809,7 +827,7 @@ const Xo = (e) => {
|
|
|
809
827
|
}, n.onerror = () => {
|
|
810
828
|
r(), t({});
|
|
811
829
|
}, n.src = e;
|
|
812
|
-
}),
|
|
830
|
+
}), Aa = (e) => new Promise((t) => {
|
|
813
831
|
const n = document.createElement("video"), r = () => {
|
|
814
832
|
n.removeAttribute("src"), n.load(), n.onloadedmetadata = null, n.onerror = null;
|
|
815
833
|
};
|
|
@@ -823,12 +841,12 @@ const Xo = (e) => {
|
|
|
823
841
|
}, n.onerror = () => {
|
|
824
842
|
r(), t({});
|
|
825
843
|
}, n.src = e, n.load();
|
|
826
|
-
}),
|
|
844
|
+
}), Ba = (e, t) => t.startsWith("blob:") ? e === "image" ? Ra(t) : Aa(t) : Promise.resolve({}), Da = (e, t) => ({
|
|
827
845
|
...e,
|
|
828
846
|
width: e.width ?? t.width,
|
|
829
847
|
height: e.height ?? t.height,
|
|
830
848
|
duration: e.duration ?? t.duration
|
|
831
|
-
}),
|
|
849
|
+
}), Ha = ({
|
|
832
850
|
container: e,
|
|
833
851
|
lexicalEditor: t,
|
|
834
852
|
options: n,
|
|
@@ -872,11 +890,11 @@ const Xo = (e) => {
|
|
|
872
890
|
(p = u.abortController) == null || p.abort();
|
|
873
891
|
}, g = (u, p) => {
|
|
874
892
|
const E = o.get(u);
|
|
875
|
-
return E ? (i(E),
|
|
893
|
+
return E ? (i(E), we(E.previewUrl), o.delete(u), !0) : !1;
|
|
876
894
|
}, v = (u, p, E, _) => {
|
|
877
895
|
t.update(
|
|
878
896
|
() => {
|
|
879
|
-
const
|
|
897
|
+
const B = ce({
|
|
880
898
|
mediaType: u,
|
|
881
899
|
url: _,
|
|
882
900
|
assetId: E,
|
|
@@ -885,8 +903,8 @@ const Xo = (e) => {
|
|
|
885
903
|
title: p.name,
|
|
886
904
|
mimeType: p.type || void 0,
|
|
887
905
|
size: p.size
|
|
888
|
-
}),
|
|
889
|
-
D() || F().selectEnd(),
|
|
906
|
+
}), H = z();
|
|
907
|
+
D() || F().selectEnd(), W([B, H]), H.selectStart();
|
|
890
908
|
},
|
|
891
909
|
{ discrete: !0 }
|
|
892
910
|
);
|
|
@@ -903,10 +921,10 @@ const Xo = (e) => {
|
|
|
903
921
|
status: "success",
|
|
904
922
|
progress: 100,
|
|
905
923
|
errorMessage: void 0
|
|
906
|
-
}),
|
|
924
|
+
}), we(E);
|
|
907
925
|
}, T = (u, p, E) => {
|
|
908
926
|
var _;
|
|
909
|
-
|
|
927
|
+
Ia(E) || (s(p, {
|
|
910
928
|
mediaType: u,
|
|
911
929
|
status: "error",
|
|
912
930
|
errorMessage: "上传失败"
|
|
@@ -920,7 +938,7 @@ const Xo = (e) => {
|
|
|
920
938
|
if (!p) return;
|
|
921
939
|
const E = typeof AbortController == "function" ? new AbortController() : null, _ = a + 1;
|
|
922
940
|
a = _, u.runId = _, u.abortController = E, o.set(u.assetId, u);
|
|
923
|
-
const
|
|
941
|
+
const B = {
|
|
924
942
|
assetId: u.assetId,
|
|
925
943
|
signal: E == null ? void 0 : E.signal,
|
|
926
944
|
onProgress: (c) => {
|
|
@@ -931,17 +949,17 @@ const Xo = (e) => {
|
|
|
931
949
|
});
|
|
932
950
|
}
|
|
933
951
|
};
|
|
934
|
-
let
|
|
935
|
-
const I =
|
|
952
|
+
let H = {};
|
|
953
|
+
const I = Ba(u.type, u.previewUrl);
|
|
936
954
|
let w;
|
|
937
955
|
try {
|
|
938
|
-
w = u.type === "image" ? p.uploadImage(
|
|
956
|
+
w = u.type === "image" ? p.uploadImage(St(u.file), B) : p.uploadVideo(St(u.file), B);
|
|
939
957
|
} catch (c) {
|
|
940
958
|
d(u.assetId, _) && T(u.type, u.assetId, c);
|
|
941
959
|
return;
|
|
942
960
|
}
|
|
943
961
|
I.then((c) => {
|
|
944
|
-
|
|
962
|
+
H = c, !(r() || !d(u.assetId, _)) && (c.width === void 0 && c.height === void 0 || s(u.assetId, {
|
|
945
963
|
mediaType: u.type,
|
|
946
964
|
width: c.width,
|
|
947
965
|
height: c.height,
|
|
@@ -952,14 +970,14 @@ const Xo = (e) => {
|
|
|
952
970
|
u.type,
|
|
953
971
|
u.assetId,
|
|
954
972
|
u.previewUrl,
|
|
955
|
-
|
|
973
|
+
Da(c, H)
|
|
956
974
|
), o.delete(u.assetId));
|
|
957
975
|
}).catch((c) => {
|
|
958
976
|
r() || !d(u.assetId, _) || T(u.type, u.assetId, c);
|
|
959
977
|
});
|
|
960
978
|
}, y = (u, p) => {
|
|
961
979
|
if (!n.uploadAdapter) return;
|
|
962
|
-
const E =
|
|
980
|
+
const E = Na(u), _ = Pa(p), B = {
|
|
963
981
|
assetId: E,
|
|
964
982
|
type: u,
|
|
965
983
|
file: p,
|
|
@@ -967,7 +985,7 @@ const Xo = (e) => {
|
|
|
967
985
|
runId: 0,
|
|
968
986
|
abortController: null
|
|
969
987
|
};
|
|
970
|
-
v(u, p, E, _), f(
|
|
988
|
+
v(u, p, E, _), f(B);
|
|
971
989
|
};
|
|
972
990
|
return {
|
|
973
991
|
pickMediaFile: (u) => {
|
|
@@ -982,7 +1000,7 @@ const Xo = (e) => {
|
|
|
982
1000
|
uploadMediaFile: y,
|
|
983
1001
|
removeMedia(u) {
|
|
984
1002
|
const p = l(u);
|
|
985
|
-
!g(u) && (p != null && p.url.startsWith("blob:")) &&
|
|
1003
|
+
!g(u) && (p != null && p.url.startsWith("blob:")) && we(p.url);
|
|
986
1004
|
},
|
|
987
1005
|
retryMedia(u) {
|
|
988
1006
|
const p = o.get(u);
|
|
@@ -996,18 +1014,18 @@ const Xo = (e) => {
|
|
|
996
1014
|
},
|
|
997
1015
|
destroy() {
|
|
998
1016
|
o.forEach((u) => {
|
|
999
|
-
i(u),
|
|
1017
|
+
i(u), we(u.previewUrl);
|
|
1000
1018
|
}), o.clear();
|
|
1001
1019
|
}
|
|
1002
1020
|
};
|
|
1003
|
-
},
|
|
1021
|
+
}, Bn = (e) => Fr(e), Oa = {
|
|
1004
1022
|
1: "h1",
|
|
1005
1023
|
2: "h2",
|
|
1006
1024
|
3: "h3",
|
|
1007
1025
|
4: "h4",
|
|
1008
1026
|
5: "h5",
|
|
1009
1027
|
6: "h6"
|
|
1010
|
-
},
|
|
1028
|
+
}, $a = {
|
|
1011
1029
|
code: "bridgerte__code-block",
|
|
1012
1030
|
codeHighlight: {
|
|
1013
1031
|
attr: "bridgerte__code-token bridgerte__code-token--attr",
|
|
@@ -1068,41 +1086,41 @@ const Xo = (e) => {
|
|
|
1068
1086
|
tableCellHeader: "bridgerte__table-cell bridgerte__table-cell--header",
|
|
1069
1087
|
tableRow: "bridgerte__table-row",
|
|
1070
1088
|
tableScrollableWrapper: "bridgerte__table-wrapper"
|
|
1071
|
-
},
|
|
1089
|
+
}, Fa = (e) => ({
|
|
1072
1090
|
setBlockHeading: (i) => {
|
|
1073
1091
|
e.update(() => {
|
|
1074
1092
|
const g = D();
|
|
1075
|
-
|
|
1093
|
+
O(g) && Fe(g, () => Dr(Oa[i]));
|
|
1076
1094
|
});
|
|
1077
1095
|
},
|
|
1078
1096
|
setParagraphBlock: () => {
|
|
1079
1097
|
e.update(() => {
|
|
1080
1098
|
const i = D();
|
|
1081
|
-
|
|
1099
|
+
O(i) && Fe(i, () => z());
|
|
1082
1100
|
});
|
|
1083
1101
|
},
|
|
1084
1102
|
setQuoteBlock: () => {
|
|
1085
1103
|
e.update(() => {
|
|
1086
1104
|
const i = D();
|
|
1087
|
-
|
|
1105
|
+
O(i) && Fe(i, () => Br());
|
|
1088
1106
|
});
|
|
1089
1107
|
},
|
|
1090
1108
|
insertDividerBlock: () => {
|
|
1091
1109
|
e.update(() => {
|
|
1092
1110
|
const i = z();
|
|
1093
|
-
|
|
1111
|
+
W([at(), i]), i.selectStart();
|
|
1094
1112
|
});
|
|
1095
1113
|
},
|
|
1096
1114
|
insertCodeBlock: (i) => {
|
|
1097
1115
|
e.update(() => {
|
|
1098
|
-
const g =
|
|
1099
|
-
|
|
1116
|
+
const g = Bn(i), v = z();
|
|
1117
|
+
W([g, v]), g.selectEnd();
|
|
1100
1118
|
});
|
|
1101
1119
|
},
|
|
1102
1120
|
setSelectedCodeBlockLanguage: (i) => {
|
|
1103
1121
|
e.update(() => {
|
|
1104
1122
|
const g = D();
|
|
1105
|
-
if (!
|
|
1123
|
+
if (!O(g)) return;
|
|
1106
1124
|
const v = g.anchor.getNode(), b = v.getKey() === "root" ? v : v.getTopLevelElementOrThrow();
|
|
1107
1125
|
X(b) && b.setLanguage(i);
|
|
1108
1126
|
});
|
|
@@ -1114,22 +1132,22 @@ const Xo = (e) => {
|
|
|
1114
1132
|
});
|
|
1115
1133
|
},
|
|
1116
1134
|
formatAlign: (i) => {
|
|
1117
|
-
e.dispatchCommand(
|
|
1135
|
+
e.dispatchCommand(fr, i);
|
|
1118
1136
|
}
|
|
1119
|
-
}),
|
|
1137
|
+
}), za = (e) => ({
|
|
1120
1138
|
setLink: (o, a) => {
|
|
1121
1139
|
e.update(() => {
|
|
1122
|
-
const s = D(), l =
|
|
1123
|
-
if (!(!
|
|
1140
|
+
const s = D(), l = mo(o), d = (a == null ? void 0 : a.trim()) || o.trim();
|
|
1141
|
+
if (!(!O(s) || !o.trim())) {
|
|
1124
1142
|
if (s.isCollapsed()) {
|
|
1125
|
-
const i =
|
|
1143
|
+
const i = go(l, {
|
|
1126
1144
|
rel: "noreferrer noopener",
|
|
1127
1145
|
target: "_blank"
|
|
1128
1146
|
});
|
|
1129
|
-
i.append(Be(d)),
|
|
1147
|
+
i.append(Be(d)), W([i]);
|
|
1130
1148
|
return;
|
|
1131
1149
|
}
|
|
1132
|
-
|
|
1150
|
+
ft(l, {
|
|
1133
1151
|
rel: "noreferrer noopener",
|
|
1134
1152
|
target: "_blank"
|
|
1135
1153
|
});
|
|
@@ -1138,15 +1156,15 @@ const Xo = (e) => {
|
|
|
1138
1156
|
},
|
|
1139
1157
|
unsetLink: () => {
|
|
1140
1158
|
e.update(() => {
|
|
1141
|
-
|
|
1159
|
+
ft(null);
|
|
1142
1160
|
});
|
|
1143
1161
|
},
|
|
1144
1162
|
openSelectedLink: () => {
|
|
1145
1163
|
if (typeof window > "u") return;
|
|
1146
1164
|
const o = e.getEditorState().read(() => {
|
|
1147
1165
|
const a = D();
|
|
1148
|
-
if (!
|
|
1149
|
-
const s = a.anchor.getNode(), l =
|
|
1166
|
+
if (!O(a)) return null;
|
|
1167
|
+
const s = a.anchor.getNode(), l = Se(s) ? s : _o(s, Se);
|
|
1150
1168
|
return l ? {
|
|
1151
1169
|
target: l.getTarget() ?? "_blank",
|
|
1152
1170
|
url: l.sanitizeUrl(l.getURL())
|
|
@@ -1154,17 +1172,17 @@ const Xo = (e) => {
|
|
|
1154
1172
|
});
|
|
1155
1173
|
o && window.open(o.url, o.target, "noopener,noreferrer");
|
|
1156
1174
|
}
|
|
1157
|
-
}),
|
|
1175
|
+
}), Va = (e) => ({
|
|
1158
1176
|
insertImage: (s) => {
|
|
1159
1177
|
s.url.trim() && e.update(() => {
|
|
1160
1178
|
const l = z();
|
|
1161
|
-
|
|
1179
|
+
W([Do(s), l]), l.selectStart();
|
|
1162
1180
|
});
|
|
1163
1181
|
},
|
|
1164
1182
|
insertVideo: (s) => {
|
|
1165
1183
|
s.url.trim() && e.update(() => {
|
|
1166
1184
|
const l = z();
|
|
1167
|
-
|
|
1185
|
+
W([Ho(s), l]), l.selectStart();
|
|
1168
1186
|
});
|
|
1169
1187
|
},
|
|
1170
1188
|
resizeMedia: (s) => {
|
|
@@ -1191,21 +1209,21 @@ const Xo = (e) => {
|
|
|
1191
1209
|
});
|
|
1192
1210
|
});
|
|
1193
1211
|
}
|
|
1194
|
-
}),
|
|
1212
|
+
}), Wa = (e) => ({
|
|
1195
1213
|
insertMention: (n) => {
|
|
1196
1214
|
e.update(() => {
|
|
1197
1215
|
const r = D();
|
|
1198
|
-
|
|
1199
|
-
|
|
1216
|
+
O(r) && W([
|
|
1217
|
+
it(n),
|
|
1200
1218
|
Be(" ")
|
|
1201
1219
|
]);
|
|
1202
1220
|
});
|
|
1203
1221
|
}
|
|
1204
|
-
}),
|
|
1222
|
+
}), Ua = (e) => ({
|
|
1205
1223
|
clearSelectionFormat: () => {
|
|
1206
1224
|
e.update(() => {
|
|
1207
1225
|
const r = D();
|
|
1208
|
-
|
|
1226
|
+
O(r) && (r.setFormat(0), yt(r, {
|
|
1209
1227
|
color: null,
|
|
1210
1228
|
"background-color": null,
|
|
1211
1229
|
"font-size": null,
|
|
@@ -1217,18 +1235,18 @@ const Xo = (e) => {
|
|
|
1217
1235
|
setSelectionStyle: (r, o) => {
|
|
1218
1236
|
e.update(() => {
|
|
1219
1237
|
const a = D();
|
|
1220
|
-
|
|
1238
|
+
O(a) && yt(a, {
|
|
1221
1239
|
[r]: o === "" ? null : o
|
|
1222
1240
|
});
|
|
1223
1241
|
});
|
|
1224
1242
|
}
|
|
1225
|
-
}),
|
|
1243
|
+
}), ja = 20, Nt = (e, t) => Number.isFinite(e) && e > 0 ? Math.min(Math.floor(e), t) : 1, Ce = (e) => Number.isFinite(e) && (e ?? 0) > 0 ? Math.min(Math.floor(e ?? 1), ja) : 1, _e = () => {
|
|
1226
1244
|
const e = D();
|
|
1227
|
-
return !
|
|
1228
|
-
},
|
|
1245
|
+
return !O(e) && !pn(e) ? !1 : oo(e.anchor.getNode()) !== null;
|
|
1246
|
+
}, Ka = (e) => ({
|
|
1229
1247
|
insertTable: (l, d) => {
|
|
1230
|
-
const i =
|
|
1231
|
-
e.dispatchCommand(
|
|
1248
|
+
const i = Nt(l, tn), g = Nt(d, nn);
|
|
1249
|
+
e.dispatchCommand(ro, {
|
|
1232
1250
|
rows: String(i),
|
|
1233
1251
|
columns: String(g),
|
|
1234
1252
|
/*
|
|
@@ -1243,50 +1261,50 @@ const Xo = (e) => {
|
|
|
1243
1261
|
},
|
|
1244
1262
|
insertTableRow: (l) => {
|
|
1245
1263
|
e.update(() => {
|
|
1246
|
-
if (!
|
|
1247
|
-
const d =
|
|
1264
|
+
if (!_e()) return;
|
|
1265
|
+
const d = Ce(l.count);
|
|
1248
1266
|
for (let i = 0; i < d; i += 1)
|
|
1249
|
-
|
|
1267
|
+
no(l.direction !== "before");
|
|
1250
1268
|
});
|
|
1251
1269
|
},
|
|
1252
1270
|
insertTableColumn: (l) => {
|
|
1253
1271
|
e.update(() => {
|
|
1254
|
-
if (!
|
|
1255
|
-
const d =
|
|
1272
|
+
if (!_e()) return;
|
|
1273
|
+
const d = Ce(l.count);
|
|
1256
1274
|
for (let i = 0; i < d; i += 1)
|
|
1257
|
-
|
|
1275
|
+
to(l.direction !== "before");
|
|
1258
1276
|
});
|
|
1259
1277
|
},
|
|
1260
1278
|
deleteTableRow: (l) => {
|
|
1261
1279
|
e.update(() => {
|
|
1262
|
-
const d =
|
|
1280
|
+
const d = Ce(l.count);
|
|
1263
1281
|
for (let i = 0; i < d; i += 1) {
|
|
1264
|
-
if (!
|
|
1265
|
-
|
|
1282
|
+
if (!_e()) return;
|
|
1283
|
+
eo();
|
|
1266
1284
|
}
|
|
1267
1285
|
});
|
|
1268
1286
|
},
|
|
1269
1287
|
deleteTableColumn: (l) => {
|
|
1270
1288
|
e.update(() => {
|
|
1271
|
-
const d =
|
|
1289
|
+
const d = Ce(l.count);
|
|
1272
1290
|
for (let i = 0; i < d; i += 1) {
|
|
1273
|
-
if (!
|
|
1274
|
-
|
|
1291
|
+
if (!_e()) return;
|
|
1292
|
+
Zr();
|
|
1275
1293
|
}
|
|
1276
1294
|
});
|
|
1277
1295
|
},
|
|
1278
1296
|
deleteTable: () => {
|
|
1279
1297
|
e.update(() => {
|
|
1280
1298
|
const l = D();
|
|
1281
|
-
if (!
|
|
1282
|
-
const d =
|
|
1299
|
+
if (!O(l) && !pn(l)) return;
|
|
1300
|
+
const d = Qr(l.anchor.getNode());
|
|
1283
1301
|
if (!d) return;
|
|
1284
1302
|
const i = z();
|
|
1285
1303
|
d.insertAfter(i), d.remove(), i.selectStart();
|
|
1286
1304
|
});
|
|
1287
1305
|
}
|
|
1288
|
-
}),
|
|
1289
|
-
const t =
|
|
1306
|
+
}), qa = (e) => {
|
|
1307
|
+
const t = Ka(e);
|
|
1290
1308
|
return {
|
|
1291
1309
|
insertTable: (n) => {
|
|
1292
1310
|
t.insertTable(n.rows, n.cols);
|
|
@@ -1307,7 +1325,7 @@ const Xo = (e) => {
|
|
|
1307
1325
|
t.deleteTable();
|
|
1308
1326
|
}
|
|
1309
1327
|
};
|
|
1310
|
-
},
|
|
1328
|
+
}, Ga = {
|
|
1311
1329
|
"format.bold": "bold",
|
|
1312
1330
|
"format.italic": "italic",
|
|
1313
1331
|
"format.underline": "underline",
|
|
@@ -1315,22 +1333,22 @@ const Xo = (e) => {
|
|
|
1315
1333
|
"format.inlineCode": "code",
|
|
1316
1334
|
"format.superscript": "superscript",
|
|
1317
1335
|
"format.subscript": "subscript"
|
|
1318
|
-
},
|
|
1319
|
-
"list.ordered":
|
|
1320
|
-
"list.unordered":
|
|
1321
|
-
"list.todo":
|
|
1322
|
-
},
|
|
1323
|
-
"indent.increase":
|
|
1324
|
-
"indent.decrease":
|
|
1325
|
-
"history.undo":
|
|
1326
|
-
"history.redo":
|
|
1327
|
-
},
|
|
1336
|
+
}, Xa = {
|
|
1337
|
+
"list.ordered": qr,
|
|
1338
|
+
"list.unordered": Kr,
|
|
1339
|
+
"list.todo": jr
|
|
1340
|
+
}, Ya = {
|
|
1341
|
+
"indent.increase": Cr,
|
|
1342
|
+
"indent.decrease": wr,
|
|
1343
|
+
"history.undo": vr,
|
|
1344
|
+
"history.redo": yr
|
|
1345
|
+
}, Ja = {
|
|
1328
1346
|
"format.color": "color",
|
|
1329
1347
|
"format.backgroundColor": "background-color",
|
|
1330
1348
|
"format.fontSize": "font-size",
|
|
1331
1349
|
"format.fontFamily": "font-family",
|
|
1332
1350
|
"format.lineHeight": "line-height"
|
|
1333
|
-
},
|
|
1351
|
+
}, Qa = ({
|
|
1334
1352
|
container: e,
|
|
1335
1353
|
lexicalEditor: t,
|
|
1336
1354
|
options: n,
|
|
@@ -1338,12 +1356,12 @@ const Xo = (e) => {
|
|
|
1338
1356
|
isReadonly: o,
|
|
1339
1357
|
reportError: a
|
|
1340
1358
|
}) => {
|
|
1341
|
-
const s =
|
|
1359
|
+
const s = Ha({
|
|
1342
1360
|
container: e,
|
|
1343
1361
|
lexicalEditor: t,
|
|
1344
1362
|
options: n,
|
|
1345
1363
|
isDestroyed: r
|
|
1346
|
-
}), l =
|
|
1364
|
+
}), l = Fa(t), d = za(t), i = Va(t), g = Wa(t), v = Ua(t), b = qa(t), T = () => {
|
|
1347
1365
|
var x, u;
|
|
1348
1366
|
if (document.fullscreenElement) {
|
|
1349
1367
|
(x = document.exitFullscreen) == null || x.call(document).catch((p) => {
|
|
@@ -1356,22 +1374,22 @@ const Xo = (e) => {
|
|
|
1356
1374
|
});
|
|
1357
1375
|
}, f = ((y) => {
|
|
1358
1376
|
if (r() || o()) return;
|
|
1359
|
-
const x =
|
|
1377
|
+
const x = Ga[y.type];
|
|
1360
1378
|
if (x) {
|
|
1361
|
-
t.dispatchCommand(
|
|
1379
|
+
t.dispatchCommand(br, x);
|
|
1362
1380
|
return;
|
|
1363
1381
|
}
|
|
1364
|
-
const u =
|
|
1382
|
+
const u = Xa[y.type];
|
|
1365
1383
|
if (u) {
|
|
1366
1384
|
t.dispatchCommand(u, void 0);
|
|
1367
1385
|
return;
|
|
1368
1386
|
}
|
|
1369
|
-
const p =
|
|
1387
|
+
const p = Ya[y.type];
|
|
1370
1388
|
if (p) {
|
|
1371
1389
|
t.dispatchCommand(p, void 0);
|
|
1372
1390
|
return;
|
|
1373
1391
|
}
|
|
1374
|
-
const E =
|
|
1392
|
+
const E = Ja[y.type];
|
|
1375
1393
|
if (E && "value" in y) {
|
|
1376
1394
|
v.setSelectionStyle(E, y.value);
|
|
1377
1395
|
return;
|
|
@@ -1469,18 +1487,18 @@ const Xo = (e) => {
|
|
|
1469
1487
|
return f.uploadMediaFile = s.uploadMediaFile, f.destroy = () => {
|
|
1470
1488
|
s.destroy();
|
|
1471
1489
|
}, f;
|
|
1472
|
-
},
|
|
1490
|
+
}, Za = 300, es = "BridgeRTE", Pt = ({
|
|
1473
1491
|
editor: e,
|
|
1474
1492
|
overflowLength: t
|
|
1475
1493
|
}) => {
|
|
1476
1494
|
if (t <= 0) return !1;
|
|
1477
1495
|
const n = D();
|
|
1478
|
-
if (
|
|
1479
|
-
return
|
|
1496
|
+
if (O(n))
|
|
1497
|
+
return vt(e, n.anchor, t), !0;
|
|
1480
1498
|
F().selectEnd();
|
|
1481
1499
|
const r = D();
|
|
1482
|
-
return
|
|
1483
|
-
},
|
|
1500
|
+
return O(r) ? (vt(e, r.anchor, t), !0) : !1;
|
|
1501
|
+
}, ts = ({
|
|
1484
1502
|
lexicalEditor: e,
|
|
1485
1503
|
options: t,
|
|
1486
1504
|
isDestroyed: n,
|
|
@@ -1492,23 +1510,23 @@ const Xo = (e) => {
|
|
|
1492
1510
|
s && (clearTimeout(s), s = null);
|
|
1493
1511
|
}, d = (u) => {
|
|
1494
1512
|
if (n()) return;
|
|
1495
|
-
const p =
|
|
1496
|
-
r(p), u &&
|
|
1513
|
+
const p = Nn(e.getEditorState(), e);
|
|
1514
|
+
r(p), u && ka(t, p);
|
|
1497
1515
|
}, i = (u) => {
|
|
1498
1516
|
const p = t.maxLength !== void 0 && t.maxLength >= 0 ? t.maxLength : void 0;
|
|
1499
1517
|
return {
|
|
1500
1518
|
dirty: !0,
|
|
1501
1519
|
plainTextLength: u,
|
|
1502
|
-
version:
|
|
1520
|
+
version: Ae,
|
|
1503
1521
|
maxLength: p,
|
|
1504
1522
|
isOverMaxLength: p === void 0 ? !1 : u > p
|
|
1505
1523
|
};
|
|
1506
1524
|
}, g = (u) => {
|
|
1507
|
-
|
|
1525
|
+
Ea(t, i(u));
|
|
1508
1526
|
}, v = () => {
|
|
1509
1527
|
t.onChange && (l(), s = setTimeout(() => {
|
|
1510
1528
|
d(!0);
|
|
1511
|
-
},
|
|
1529
|
+
}, dr));
|
|
1512
1530
|
}, b = (u) => {
|
|
1513
1531
|
if (a > 0) {
|
|
1514
1532
|
a -= 1;
|
|
@@ -1516,14 +1534,14 @@ const Xo = (e) => {
|
|
|
1516
1534
|
}
|
|
1517
1535
|
g(u), v();
|
|
1518
1536
|
}, T = () => e.getEditorState().read(() => F().getTextContent().length), f = (u) => t.maxLength === void 0 || t.maxLength < 0 ? 0 : u - t.maxLength, y = (u) => u <= 0 ? !1 : (e.update(() => {
|
|
1519
|
-
|
|
1537
|
+
Pt({ editor: e, overflowLength: u });
|
|
1520
1538
|
}, { discrete: !0 }), !0);
|
|
1521
1539
|
return {
|
|
1522
1540
|
clearContentChangeTimer: l,
|
|
1523
1541
|
enforceCurrentMaxLength: () => {
|
|
1524
1542
|
t.maxLength === void 0 || t.maxLength < 0 || e.update(() => {
|
|
1525
1543
|
const u = F().getTextContent().length - (t.maxLength ?? 0);
|
|
1526
|
-
|
|
1544
|
+
Pt({ editor: e, overflowLength: u });
|
|
1527
1545
|
}, { discrete: !0 });
|
|
1528
1546
|
},
|
|
1529
1547
|
syncContent: d,
|
|
@@ -1539,14 +1557,14 @@ const Xo = (e) => {
|
|
|
1539
1557
|
o(), b(u);
|
|
1540
1558
|
}
|
|
1541
1559
|
};
|
|
1542
|
-
},
|
|
1543
|
-
|
|
1560
|
+
}, He = "data-language", Dn = "纯文本", ns = "language", rs = /* @__PURE__ */ new Set(["plain", "plaintext", "text", "txt"]), os = new Set(To().map(([e]) => e)), as = [
|
|
1561
|
+
He,
|
|
1544
1562
|
"data-lang",
|
|
1545
1563
|
"data-code-language",
|
|
1546
1564
|
"data-highlight-language",
|
|
1547
1565
|
"lang",
|
|
1548
1566
|
"language"
|
|
1549
|
-
],
|
|
1567
|
+
], ss = /^[a-z][a-z0-9_+#.-]{0,31}$/i, is = /^(?:language|lang)-([a-z][a-z0-9_+#.-]{0,31})$/i, ls = /^brush:\s*([a-z][a-z0-9_+#.-]{0,31})$/i, cs = /* @__PURE__ */ new Map([
|
|
1550
1568
|
["dockerfile", "docker"],
|
|
1551
1569
|
["shell", "shellscript"],
|
|
1552
1570
|
["sh", "shellscript"],
|
|
@@ -1559,56 +1577,56 @@ const Xo = (e) => {
|
|
|
1559
1577
|
["ts", "typescript"],
|
|
1560
1578
|
["tsx", "tsx"],
|
|
1561
1579
|
["yml", "yaml"]
|
|
1562
|
-
]),
|
|
1580
|
+
]), ds = (e) => e.type === "select", It = (e) => e.find((t) => t.name === ns && ds(t)), ne = (e) => {
|
|
1563
1581
|
const t = e == null ? void 0 : e.trim().toLowerCase();
|
|
1564
|
-
if (!t || !
|
|
1565
|
-
if (
|
|
1566
|
-
const n =
|
|
1567
|
-
return
|
|
1568
|
-
},
|
|
1569
|
-
for (const t of
|
|
1582
|
+
if (!t || !ss.test(t)) return null;
|
|
1583
|
+
if (rs.has(t)) return "";
|
|
1584
|
+
const n = cs.get(t) ?? Mo(t);
|
|
1585
|
+
return os.has(n) ? n : null;
|
|
1586
|
+
}, us = (e) => {
|
|
1587
|
+
for (const t of as) {
|
|
1570
1588
|
const n = ne(e.getAttribute(t));
|
|
1571
1589
|
if (n) return n;
|
|
1572
1590
|
}
|
|
1573
1591
|
return null;
|
|
1574
|
-
},
|
|
1575
|
-
const [, t] = e.match(
|
|
1592
|
+
}, ms = (e) => {
|
|
1593
|
+
const [, t] = e.match(ls) ?? [], n = ne(t);
|
|
1576
1594
|
if (n) return n;
|
|
1577
1595
|
for (const r of e.split(/\s+/)) {
|
|
1578
|
-
const [, o] = r.match(
|
|
1596
|
+
const [, o] = r.match(is) ?? [], a = ne(o);
|
|
1579
1597
|
if (a) return a;
|
|
1580
1598
|
}
|
|
1581
1599
|
return null;
|
|
1582
|
-
},
|
|
1600
|
+
}, Hn = (e = Xe) => {
|
|
1583
1601
|
var t, n;
|
|
1584
|
-
return ((t =
|
|
1585
|
-
},
|
|
1602
|
+
return ((t = It(e.fields)) == null ? void 0 : t.options) ?? ((n = It(Xe.fields)) == null ? void 0 : n.options) ?? [{ label: Dn, value: "" }];
|
|
1603
|
+
}, On = (e, t) => {
|
|
1586
1604
|
var n, r, o;
|
|
1587
|
-
return ((n = e.find((a) => a.value === t)) == null ? void 0 : n.label) ?? ((r = e.find((a) => ne(a.value) === ne(t))) == null ? void 0 : r.label) ?? ((o = e[0]) == null ? void 0 : o.label) ??
|
|
1605
|
+
return ((n = e.find((a) => a.value === t)) == null ? void 0 : n.label) ?? ((r = e.find((a) => ne(a.value) === ne(t))) == null ? void 0 : r.label) ?? ((o = e[0]) == null ? void 0 : o.label) ?? Dn;
|
|
1588
1606
|
};
|
|
1589
|
-
|
|
1590
|
-
const
|
|
1607
|
+
Hn();
|
|
1608
|
+
const gs = (e) => {
|
|
1591
1609
|
[...e.querySelectorAll("pre,code")].forEach((t) => {
|
|
1592
|
-
const n =
|
|
1593
|
-
r && n && r.setAttribute(
|
|
1610
|
+
const n = us(t) ?? ms(t.className), r = t.tagName === "PRE" ? t : t.closest("pre");
|
|
1611
|
+
r && n && r.setAttribute(He, n);
|
|
1594
1612
|
});
|
|
1595
|
-
},
|
|
1613
|
+
}, hs = (e) => {
|
|
1596
1614
|
e.querySelectorAll("pre").forEach((t) => {
|
|
1597
1615
|
[...t.children].forEach((r) => {
|
|
1598
1616
|
r.tagName === "CODE" && r.replaceWith(...r.childNodes);
|
|
1599
1617
|
});
|
|
1600
1618
|
});
|
|
1601
|
-
},
|
|
1619
|
+
}, ps = (e, t) => {
|
|
1602
1620
|
const n = [...t.querySelectorAll("pre[data-language]")];
|
|
1603
1621
|
let r = 0;
|
|
1604
1622
|
e.forEach((o) => {
|
|
1605
1623
|
if (!X(o)) return;
|
|
1606
1624
|
const a = n[r];
|
|
1607
1625
|
if (r += 1, !a) return;
|
|
1608
|
-
const s = a.getAttribute(
|
|
1626
|
+
const s = a.getAttribute(He);
|
|
1609
1627
|
s && !o.getLanguage() && o.setLanguage(s);
|
|
1610
1628
|
});
|
|
1611
|
-
},
|
|
1629
|
+
}, $n = "one-light", Q = {
|
|
1612
1630
|
keyword: "#a626a4",
|
|
1613
1631
|
function: "#4078f2",
|
|
1614
1632
|
operator: "#0184bc",
|
|
@@ -1616,7 +1634,7 @@ const ts = (e) => {
|
|
|
1616
1634
|
property: "#e45649",
|
|
1617
1635
|
string: "#50a14f",
|
|
1618
1636
|
attrName: "#986801"
|
|
1619
|
-
},
|
|
1637
|
+
}, fs = {
|
|
1620
1638
|
[Q.keyword]: "keyword",
|
|
1621
1639
|
[Q.function]: "function",
|
|
1622
1640
|
[Q.operator]: "operator",
|
|
@@ -1624,25 +1642,25 @@ const ts = (e) => {
|
|
|
1624
1642
|
[Q.property]: "property",
|
|
1625
1643
|
[Q.string]: "string",
|
|
1626
1644
|
[Q.attrName]: "attr-name"
|
|
1627
|
-
},
|
|
1645
|
+
}, bs = (e) => {
|
|
1628
1646
|
const [, t] = e.match(/(?:^|;)color:\s*(#[0-9a-f]{3,8})/i) ?? [];
|
|
1629
|
-
return t ?
|
|
1630
|
-
},
|
|
1631
|
-
...
|
|
1647
|
+
return t ? fs[t.toLowerCase()] : void 0;
|
|
1648
|
+
}, ys = {
|
|
1649
|
+
...wt,
|
|
1632
1650
|
defaultLanguage: null,
|
|
1633
|
-
defaultTheme:
|
|
1651
|
+
defaultTheme: $n,
|
|
1634
1652
|
$tokenize(e, t) {
|
|
1635
|
-
const n =
|
|
1636
|
-
return e.getStyle() && e.setStyle(""), n.map((r) =>
|
|
1653
|
+
const n = wt.$tokenize.call(this, e, t);
|
|
1654
|
+
return e.getStyle() && e.setStyle(""), n.map((r) => zr(r) ? Vr(
|
|
1637
1655
|
r.getTextContent(),
|
|
1638
|
-
|
|
1656
|
+
bs(r.getStyle())
|
|
1639
1657
|
) : r);
|
|
1640
1658
|
}
|
|
1641
|
-
},
|
|
1642
|
-
let Z = 0, ae = null,
|
|
1643
|
-
const
|
|
1659
|
+
}, vs = 1200, fe = /* @__PURE__ */ new Set(), Ne = /* @__PURE__ */ new Set(), Je = /* @__PURE__ */ new Set(), Pe = [];
|
|
1660
|
+
let Z = 0, ae = null, ke = !1, Ee = null, Rt = !1;
|
|
1661
|
+
const ws = (e) => "requestIdleCallback" in window ? {
|
|
1644
1662
|
id: window.requestIdleCallback(e, {
|
|
1645
|
-
timeout:
|
|
1663
|
+
timeout: vs
|
|
1646
1664
|
}),
|
|
1647
1665
|
kind: "idle"
|
|
1648
1666
|
} : {
|
|
@@ -1653,72 +1671,72 @@ const ls = (e) => "requestIdleCallback" in window ? {
|
|
|
1653
1671
|
});
|
|
1654
1672
|
}, 0),
|
|
1655
1673
|
kind: "timeout"
|
|
1656
|
-
},
|
|
1674
|
+
}, Cs = (e) => {
|
|
1657
1675
|
if (e.kind === "idle") {
|
|
1658
1676
|
window.cancelIdleCallback(e.id);
|
|
1659
1677
|
return;
|
|
1660
1678
|
}
|
|
1661
1679
|
globalThis.clearTimeout(e.id);
|
|
1662
|
-
},
|
|
1663
|
-
|
|
1664
|
-
if (fe.has(t) ||
|
|
1680
|
+
}, _s = (e) => e.map((t) => t.value).filter((t) => t !== ""), ks = (e) => {
|
|
1681
|
+
_s(e).forEach((t) => {
|
|
1682
|
+
if (fe.has(t) || Ne.has(t) || Je.has(t) || En(t)) {
|
|
1665
1683
|
fe.add(t);
|
|
1666
1684
|
return;
|
|
1667
1685
|
}
|
|
1668
|
-
|
|
1686
|
+
Je.add(t), Pe.push(t);
|
|
1669
1687
|
});
|
|
1670
|
-
},
|
|
1671
|
-
for (;
|
|
1672
|
-
const e =
|
|
1673
|
-
if (e && (
|
|
1674
|
-
if (
|
|
1688
|
+
}, Es = () => {
|
|
1689
|
+
for (; Pe.length > 0; ) {
|
|
1690
|
+
const e = Pe.shift();
|
|
1691
|
+
if (e && (Je.delete(e), !(fe.has(e) || Ne.has(e)))) {
|
|
1692
|
+
if (En(e)) {
|
|
1675
1693
|
fe.add(e);
|
|
1676
1694
|
continue;
|
|
1677
1695
|
}
|
|
1678
1696
|
return e;
|
|
1679
1697
|
}
|
|
1680
1698
|
}
|
|
1681
|
-
},
|
|
1682
|
-
if (!
|
|
1683
|
-
if (!
|
|
1684
|
-
const e =
|
|
1685
|
-
|
|
1686
|
-
|
|
1699
|
+
}, xs = async () => {
|
|
1700
|
+
if (!Rt) {
|
|
1701
|
+
if (!Ee) {
|
|
1702
|
+
const e = So($n);
|
|
1703
|
+
Ee = Promise.resolve(e ?? void 0).then(() => {
|
|
1704
|
+
Rt = !0;
|
|
1687
1705
|
}).catch(() => {
|
|
1688
1706
|
}).finally(() => {
|
|
1689
|
-
|
|
1707
|
+
Ee = null;
|
|
1690
1708
|
});
|
|
1691
1709
|
}
|
|
1692
|
-
await
|
|
1710
|
+
await Ee;
|
|
1693
1711
|
}
|
|
1694
|
-
},
|
|
1695
|
-
Z += 1,
|
|
1712
|
+
}, Ms = (e) => {
|
|
1713
|
+
Z += 1, ks(e);
|
|
1696
1714
|
const t = async () => {
|
|
1697
|
-
if (!(Z <= 0 ||
|
|
1698
|
-
|
|
1715
|
+
if (!(Z <= 0 || ke)) {
|
|
1716
|
+
ke = !0;
|
|
1699
1717
|
try {
|
|
1700
|
-
if (await
|
|
1701
|
-
const r =
|
|
1718
|
+
if (await xs(), Z <= 0) return;
|
|
1719
|
+
const r = Es();
|
|
1702
1720
|
if (!r) return;
|
|
1703
|
-
|
|
1721
|
+
Ne.add(r), await Promise.resolve(Lo(r) ?? void 0).then(() => {
|
|
1704
1722
|
fe.add(r);
|
|
1705
1723
|
}).catch(() => {
|
|
1706
1724
|
}).finally(() => {
|
|
1707
|
-
|
|
1725
|
+
Ne.delete(r);
|
|
1708
1726
|
});
|
|
1709
1727
|
} finally {
|
|
1710
|
-
|
|
1728
|
+
ke = !1, n();
|
|
1711
1729
|
}
|
|
1712
1730
|
}
|
|
1713
1731
|
}, n = () => {
|
|
1714
|
-
Z <= 0 || ae !== null ||
|
|
1732
|
+
Z <= 0 || ae !== null || ke || Pe.length === 0 || (ae = ws(() => {
|
|
1715
1733
|
ae = null, t();
|
|
1716
1734
|
}));
|
|
1717
1735
|
};
|
|
1718
1736
|
return n(), () => {
|
|
1719
|
-
Z = Math.max(0, Z - 1), Z === 0 && ae !== null && (
|
|
1737
|
+
Z = Math.max(0, Z - 1), Z === 0 && ae !== null && (Cs(ae), ae = null);
|
|
1720
1738
|
};
|
|
1721
|
-
},
|
|
1739
|
+
}, V = 12, Ts = 6, Ie = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Fn = () => {
|
|
1722
1740
|
const e = window.visualViewport;
|
|
1723
1741
|
return {
|
|
1724
1742
|
left: (e == null ? void 0 : e.offsetLeft) ?? 0,
|
|
@@ -1726,7 +1744,7 @@ const ls = (e) => "requestIdleCallback" in window ? {
|
|
|
1726
1744
|
width: (e == null ? void 0 : e.width) ?? window.innerWidth,
|
|
1727
1745
|
height: (e == null ? void 0 : e.height) ?? window.innerHeight
|
|
1728
1746
|
};
|
|
1729
|
-
},
|
|
1747
|
+
}, Ls = (e, t) => ({
|
|
1730
1748
|
/*
|
|
1731
1749
|
* dialog request 里传的是 viewport 坐标。用 virtual reference 交给 floating-ui,
|
|
1732
1750
|
* 让 dialog 和 toolbar group、hoverbar 等轻浮层复用同一套翻转和边界避让逻辑。
|
|
@@ -1742,21 +1760,21 @@ const ls = (e) => "requestIdleCallback" in window ? {
|
|
|
1742
1760
|
width: t.width,
|
|
1743
1761
|
height: t.height
|
|
1744
1762
|
})
|
|
1745
|
-
}),
|
|
1746
|
-
const n = e.getBoundingClientRect(), r =
|
|
1763
|
+
}), Ss = (e, t) => {
|
|
1764
|
+
const n = e.getBoundingClientRect(), r = Fn(), o = t.getBoundingClientRect(), a = o.left + V, s = o.top + V, l = r.left + V, d = r.top + V, i = r.left + r.width - n.width - V, g = r.top + r.height - n.height - V;
|
|
1747
1765
|
return {
|
|
1748
|
-
left:
|
|
1749
|
-
top:
|
|
1766
|
+
left: Ie(a, l, i),
|
|
1767
|
+
top: Ie(s, d, g),
|
|
1750
1768
|
viewportHeight: r.height
|
|
1751
1769
|
};
|
|
1752
|
-
},
|
|
1753
|
-
const r = e.getBoundingClientRect(), o =
|
|
1770
|
+
}, Ns = (e, t, n) => {
|
|
1771
|
+
const r = e.getBoundingClientRect(), o = Fn(), a = o.left + V, s = o.top + V, l = o.left + o.width - r.width - V, d = o.top + o.height - r.height - V;
|
|
1754
1772
|
return {
|
|
1755
|
-
left:
|
|
1756
|
-
top:
|
|
1773
|
+
left: Ie(t, a, l),
|
|
1774
|
+
top: Ie(n, s, d),
|
|
1757
1775
|
viewportHeight: o.height
|
|
1758
1776
|
};
|
|
1759
|
-
},
|
|
1777
|
+
}, zn = (e) => {
|
|
1760
1778
|
var i, g;
|
|
1761
1779
|
const t = document.createElement("div"), n = document.createElement("div"), r = document.createElement("div");
|
|
1762
1780
|
let o;
|
|
@@ -1769,24 +1787,24 @@ const ls = (e) => "requestIdleCallback" in window ? {
|
|
|
1769
1787
|
);
|
|
1770
1788
|
}, l = async () => {
|
|
1771
1789
|
if (!o) {
|
|
1772
|
-
const T =
|
|
1790
|
+
const T = Ss(n, e.root);
|
|
1773
1791
|
s(T.left, T.top, T.viewportHeight);
|
|
1774
1792
|
return;
|
|
1775
1793
|
}
|
|
1776
|
-
const v = await
|
|
1777
|
-
|
|
1794
|
+
const v = await vn(
|
|
1795
|
+
Ls(e.root, o),
|
|
1778
1796
|
n,
|
|
1779
1797
|
{
|
|
1780
1798
|
placement: "bottom-start",
|
|
1781
1799
|
strategy: "fixed",
|
|
1782
|
-
platform:
|
|
1800
|
+
platform: wn,
|
|
1783
1801
|
middleware: [
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1802
|
+
Cn(Ts),
|
|
1803
|
+
_n(),
|
|
1804
|
+
kn({ padding: V })
|
|
1787
1805
|
]
|
|
1788
1806
|
}
|
|
1789
|
-
), b =
|
|
1807
|
+
), b = Ns(n, v.x, v.y);
|
|
1790
1808
|
s(
|
|
1791
1809
|
b.left,
|
|
1792
1810
|
b.top,
|
|
@@ -1808,7 +1826,7 @@ const ls = (e) => "requestIdleCallback" in window ? {
|
|
|
1808
1826
|
a(), (v = window.visualViewport) == null || v.removeEventListener("resize", l), (b = window.visualViewport) == null || b.removeEventListener("scroll", l), window.removeEventListener("resize", l), t.remove(), n.remove();
|
|
1809
1827
|
}
|
|
1810
1828
|
};
|
|
1811
|
-
},
|
|
1829
|
+
}, Re = (e) => typeof requestAnimationFrame == "function" ? requestAnimationFrame(e) : window.setTimeout(e, 0), lt = (e) => {
|
|
1812
1830
|
if (typeof cancelAnimationFrame == "function") {
|
|
1813
1831
|
cancelAnimationFrame(e);
|
|
1814
1832
|
return;
|
|
@@ -1835,7 +1853,7 @@ const ls = (e) => "requestIdleCallback" in window ? {
|
|
|
1835
1853
|
return e.addEventListener("pointerdown", o), e.addEventListener("pointerup", a), e.addEventListener("pointercancel", a), e.addEventListener("lostpointercapture", a), () => {
|
|
1836
1854
|
a(), e.removeEventListener("pointerdown", o), e.removeEventListener("pointerup", a), e.removeEventListener("pointercancel", a), e.removeEventListener("lostpointercapture", a);
|
|
1837
1855
|
};
|
|
1838
|
-
},
|
|
1856
|
+
}, ct = (e) => {
|
|
1839
1857
|
const t = (o) => {
|
|
1840
1858
|
const a = e.getBlockFromTarget(o.target);
|
|
1841
1859
|
if (a) {
|
|
@@ -1855,49 +1873,49 @@ const ls = (e) => "requestIdleCallback" in window ? {
|
|
|
1855
1873
|
e.content.removeEventListener("pointerdown", t), e.content.removeEventListener("focusin", n), document.removeEventListener("pointerdown", r);
|
|
1856
1874
|
}
|
|
1857
1875
|
};
|
|
1858
|
-
},
|
|
1876
|
+
}, Ps = (e, t, n) => {
|
|
1859
1877
|
e.update(
|
|
1860
1878
|
t,
|
|
1861
1879
|
{
|
|
1862
|
-
tag:
|
|
1880
|
+
tag: _r,
|
|
1863
1881
|
onUpdate: n
|
|
1864
1882
|
}
|
|
1865
1883
|
);
|
|
1866
|
-
},
|
|
1867
|
-
let
|
|
1868
|
-
const
|
|
1884
|
+
}, At = "language", Is = "bridgerte-code-block-language", Bt = 8, Rs = ".bridgerte__code-block-controls", Le = ".bridgerte__code-block-control-button";
|
|
1885
|
+
let Dt = 0;
|
|
1886
|
+
const As = () => (Dt += 1, `${Is}-${Dt}`), Bs = (e, t, n) => {
|
|
1869
1887
|
var o;
|
|
1870
1888
|
const r = e.querySelector(".bridgerte__code-block-control-label");
|
|
1871
|
-
e.dataset.language = n ?? "", (o = e.querySelector(
|
|
1889
|
+
e.dataset.language = n ?? "", (o = e.querySelector(Le)) == null || o.setAttribute(
|
|
1872
1890
|
"data-language",
|
|
1873
1891
|
n ?? ""
|
|
1874
|
-
), r && (r.textContent =
|
|
1875
|
-
},
|
|
1892
|
+
), r && (r.textContent = On(t, n));
|
|
1893
|
+
}, Ds = (e, t) => {
|
|
1876
1894
|
const n = document.createElement("div"), r = document.createElement("button"), o = document.createElement("span"), a = document.createElement("span");
|
|
1877
|
-
return n.className = "bridgerte__code-block-controls", n.contentEditable = "false", n.dataset.language = t ?? "", n.setAttribute("aria-label", "代码块操作"), r.type = "button", r.className = "bridgerte__code-block-control-button", r.dataset.language = t ?? "", r.setAttribute("aria-label", "选择代码块语言"), o.className = "bridgerte__code-block-control-label", o.textContent =
|
|
1878
|
-
},
|
|
1879
|
-
const t = document.createElement("div"), n = e.root.querySelector(".bridgerte__content") ?? e.root, r =
|
|
1880
|
-
e.languagePanel ??
|
|
1895
|
+
return n.className = "bridgerte__code-block-controls", n.contentEditable = "false", n.dataset.language = t ?? "", n.setAttribute("aria-label", "代码块操作"), r.type = "button", r.className = "bridgerte__code-block-control-button", r.dataset.language = t ?? "", r.setAttribute("aria-label", "选择代码块语言"), o.className = "bridgerte__code-block-control-label", o.textContent = On(e, t), a.className = "bridgerte__code-block-control-arrow", r.append(o, a), n.append(r), n;
|
|
1896
|
+
}, Hs = (e) => {
|
|
1897
|
+
const t = document.createElement("div"), n = e.root.querySelector(".bridgerte__content") ?? e.root, r = yn(
|
|
1898
|
+
e.languagePanel ?? Xe,
|
|
1881
1899
|
e.payloadPanelConfig
|
|
1882
|
-
), o =
|
|
1900
|
+
), o = Hn(r);
|
|
1883
1901
|
let a = null, s = null, l = null, d = null, i = null, g = null;
|
|
1884
1902
|
const v = () => {
|
|
1885
|
-
l ?? (l =
|
|
1903
|
+
l ?? (l = Ms(o));
|
|
1886
1904
|
}, b = () => {
|
|
1887
1905
|
a == null || a.close();
|
|
1888
1906
|
}, T = (M, L) => {
|
|
1889
|
-
e.isReadonly() ||
|
|
1907
|
+
e.isReadonly() || Ps(e.editor, () => {
|
|
1890
1908
|
const N = he(M);
|
|
1891
1909
|
X(N) && N.setLanguage(L);
|
|
1892
1910
|
});
|
|
1893
1911
|
}, f = (M, L) => {
|
|
1894
|
-
|
|
1912
|
+
Re(() => {
|
|
1895
1913
|
T(M, L);
|
|
1896
1914
|
});
|
|
1897
1915
|
}, y = (M, L, N) => {
|
|
1898
1916
|
var R;
|
|
1899
1917
|
return ((R = e.onRequest) == null ? void 0 : R.call(e, {
|
|
1900
|
-
id:
|
|
1918
|
+
id: As(),
|
|
1901
1919
|
readonly: e.isReadonly(),
|
|
1902
1920
|
menuId: "code-block-language",
|
|
1903
1921
|
command: { type: "block.setCodeLanguage", language: N },
|
|
@@ -1909,24 +1927,24 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
1909
1927
|
height: L.height
|
|
1910
1928
|
},
|
|
1911
1929
|
currentValues: {
|
|
1912
|
-
[
|
|
1930
|
+
[At]: N
|
|
1913
1931
|
},
|
|
1914
1932
|
submit: (S) => {
|
|
1915
|
-
b(), f(M, S[
|
|
1933
|
+
b(), f(M, S[At] ?? "");
|
|
1916
1934
|
},
|
|
1917
1935
|
cancel: b
|
|
1918
1936
|
})) === !0;
|
|
1919
1937
|
}, x = (M, L) => {
|
|
1920
1938
|
const N = e.root.getBoundingClientRect(), R = L.getBoundingClientRect(), S = R.bottom < N.top || R.top > N.bottom;
|
|
1921
1939
|
M.hidden = S;
|
|
1922
|
-
const k = Math.max(8, N.width - M.offsetWidth - 8),
|
|
1940
|
+
const k = Math.max(8, N.width - M.offsetWidth - 8), A = Math.min(
|
|
1923
1941
|
Math.max(R.left - N.left + Bt, 8),
|
|
1924
1942
|
k
|
|
1925
1943
|
), $ = Math.max(
|
|
1926
1944
|
8,
|
|
1927
1945
|
R.top - N.top - M.offsetHeight - Bt
|
|
1928
1946
|
);
|
|
1929
|
-
M.style.transform = `translate(${
|
|
1947
|
+
M.style.transform = `translate(${A}px, ${$}px)`;
|
|
1930
1948
|
}, u = () => {
|
|
1931
1949
|
i && (g == null || g(), g = null, i.remove(), i = null);
|
|
1932
1950
|
}, p = (M) => {
|
|
@@ -1938,22 +1956,22 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
1938
1956
|
v(), L.dataset.lexicalKey = M;
|
|
1939
1957
|
const N = L.getAttribute("data-language");
|
|
1940
1958
|
if (i) {
|
|
1941
|
-
|
|
1959
|
+
Bs(i, o, N), x(i, L);
|
|
1942
1960
|
return;
|
|
1943
1961
|
}
|
|
1944
|
-
const R =
|
|
1962
|
+
const R = Ds(o, N);
|
|
1945
1963
|
g = U(R, {
|
|
1946
|
-
targetSelector:
|
|
1964
|
+
targetSelector: Le
|
|
1947
1965
|
}), R.dataset.lexicalKey = M, i = R, t.append(R), x(R, L);
|
|
1948
1966
|
}, E = (M) => {
|
|
1949
1967
|
const L = M.dataset.lexicalKey;
|
|
1950
1968
|
!L || d === L || (d !== null && (b(), u()), d = L, p(L));
|
|
1951
1969
|
}, _ = () => {
|
|
1952
1970
|
d !== null && (d = null, b(), u());
|
|
1953
|
-
},
|
|
1971
|
+
}, B = (M) => M instanceof HTMLElement ? M.closest(".bridgerte__code-block") : null, H = ct({
|
|
1954
1972
|
root: e.root,
|
|
1955
1973
|
content: n,
|
|
1956
|
-
getBlockFromTarget:
|
|
1974
|
+
getBlockFromTarget: B,
|
|
1957
1975
|
activateBlock: E,
|
|
1958
1976
|
clearBlock: _
|
|
1959
1977
|
}), I = (M, L) => {
|
|
@@ -1963,19 +1981,19 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
1963
1981
|
b();
|
|
1964
1982
|
return;
|
|
1965
1983
|
}
|
|
1966
|
-
a || (a =
|
|
1984
|
+
a || (a = zn({
|
|
1967
1985
|
root: e.root,
|
|
1968
1986
|
className: "bridgerte__code-block-menu",
|
|
1969
1987
|
onBackdropClick: b
|
|
1970
1988
|
}));
|
|
1971
1989
|
const S = document.createElement("div");
|
|
1972
1990
|
a.content.replaceChildren(), a.element.style.minWidth = "180px", S.className = "bridgerte__code-block-menu-list", o.forEach((k) => {
|
|
1973
|
-
const
|
|
1974
|
-
|
|
1991
|
+
const A = document.createElement("button");
|
|
1992
|
+
A.type = "button", A.className = "bridgerte__menu-item bridgerte__code-block-menu-item", A.textContent = k.label, U(A), A.addEventListener("pointerdown", ($) => {
|
|
1975
1993
|
$.preventDefault();
|
|
1976
|
-
}),
|
|
1994
|
+
}), A.addEventListener("click", () => {
|
|
1977
1995
|
b(), f(L, k.value);
|
|
1978
|
-
}), S.append(
|
|
1996
|
+
}), S.append(A);
|
|
1979
1997
|
}), a.content.append(S), a.open({
|
|
1980
1998
|
x: N.left,
|
|
1981
1999
|
y: N.top,
|
|
@@ -1985,15 +2003,15 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
1985
2003
|
}, w = (M) => {
|
|
1986
2004
|
const L = M.target;
|
|
1987
2005
|
if (!(L instanceof HTMLElement)) return;
|
|
1988
|
-
const N = L.closest(
|
|
2006
|
+
const N = L.closest(Le);
|
|
1989
2007
|
if (!N) return;
|
|
1990
|
-
const R = N.closest(
|
|
2008
|
+
const R = N.closest(Rs);
|
|
1991
2009
|
if (!R) return;
|
|
1992
2010
|
const S = R.dataset.lexicalKey;
|
|
1993
2011
|
S && (M.preventDefault(), M.stopPropagation(), I(R, S));
|
|
1994
2012
|
}, c = (M) => {
|
|
1995
2013
|
const L = M.target;
|
|
1996
|
-
L instanceof HTMLElement && L.closest(
|
|
2014
|
+
L instanceof HTMLElement && L.closest(Le) && M.preventDefault();
|
|
1997
2015
|
}, h = (M) => {
|
|
1998
2016
|
const L = M.target;
|
|
1999
2017
|
if (!(L instanceof HTMLElement)) return;
|
|
@@ -2009,13 +2027,13 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2009
2027
|
X(S) && S.selectEnd();
|
|
2010
2028
|
}), e.editor.focus());
|
|
2011
2029
|
}, m = () => {
|
|
2012
|
-
s === null && (s =
|
|
2030
|
+
s === null && (s = Re(() => {
|
|
2013
2031
|
s = null, d !== null && p(d);
|
|
2014
2032
|
}));
|
|
2015
2033
|
};
|
|
2016
2034
|
t.className = "bridgerte__code-block-controls-layer", e.root.append(t);
|
|
2017
2035
|
const C = e.editor.registerMutationListener(
|
|
2018
|
-
|
|
2036
|
+
gn,
|
|
2019
2037
|
(M) => {
|
|
2020
2038
|
M.forEach((L, N) => {
|
|
2021
2039
|
if (L === "destroyed") {
|
|
@@ -2029,22 +2047,22 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2029
2047
|
), P = e.editor.registerUpdateListener(m);
|
|
2030
2048
|
return t.addEventListener("pointerdown", c), t.addEventListener("click", w), n.addEventListener("pointerdown", h), n.addEventListener("scroll", m, { passive: !0 }), window.addEventListener("resize", m), {
|
|
2031
2049
|
destroy() {
|
|
2032
|
-
|
|
2050
|
+
H.destroy(), C(), P(), l == null || l(), l = null, s !== null && (lt(s), s = null), t.removeEventListener("pointerdown", c), t.removeEventListener("click", w), n.removeEventListener("pointerdown", h), n.removeEventListener("scroll", m), window.removeEventListener("resize", m), u(), t.remove(), a == null || a.destroy(), a = null;
|
|
2033
2051
|
}
|
|
2034
2052
|
};
|
|
2035
|
-
},
|
|
2053
|
+
}, dt = (e, t = {}) => e.map((n) => {
|
|
2036
2054
|
var a;
|
|
2037
|
-
const r = (a = t.menuLabels) == null ? void 0 : a[n.id], o = n.payloadPanel ?
|
|
2055
|
+
const r = (a = t.menuLabels) == null ? void 0 : a[n.id], o = n.payloadPanel ? yn(n.payloadPanel, t.payloadPanelConfig) : void 0;
|
|
2038
2056
|
return {
|
|
2039
2057
|
...n,
|
|
2040
2058
|
...r === void 0 ? {} : { label: r },
|
|
2041
2059
|
...o === void 0 ? {} : { payloadPanel: o }
|
|
2042
2060
|
};
|
|
2043
|
-
}),
|
|
2061
|
+
}), Os = (e, t) => {
|
|
2044
2062
|
const n = t.find((r) => r.command === e.command.type);
|
|
2045
2063
|
return (n == null ? void 0 : n.value) === void 0 ? void 0 : { value: String(n.value) };
|
|
2046
|
-
},
|
|
2047
|
-
const n = t.find((o) =>
|
|
2064
|
+
}, $s = (e, t) => {
|
|
2065
|
+
const n = t.find((o) => ko(e.command, o)), r = t.find((o) => o.command === e.command.type);
|
|
2048
2066
|
return {
|
|
2049
2067
|
active: (n == null ? void 0 : n.active) === !0,
|
|
2050
2068
|
disabled: e.payloadPanel ? (r == null ? void 0 : r.disabled) === !0 : (n == null ? void 0 : n.disabled) === !0 || (r == null ? void 0 : r.disabled) === !0
|
|
@@ -2053,7 +2071,7 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2053
2071
|
"media-resize-20",
|
|
2054
2072
|
"media-resize-50",
|
|
2055
2073
|
"media-resize-100"
|
|
2056
|
-
],
|
|
2074
|
+
], Fs = [
|
|
2057
2075
|
"media-align-left",
|
|
2058
2076
|
"media-align-center",
|
|
2059
2077
|
"media-align-right",
|
|
@@ -2061,11 +2079,11 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2061
2079
|
...be,
|
|
2062
2080
|
"|",
|
|
2063
2081
|
"media-remove"
|
|
2064
|
-
],
|
|
2082
|
+
], zs = [
|
|
2065
2083
|
"media-retry",
|
|
2066
2084
|
"|",
|
|
2067
2085
|
"media-remove"
|
|
2068
|
-
],
|
|
2086
|
+
], Vs = [
|
|
2069
2087
|
{
|
|
2070
2088
|
id: "media-align-left",
|
|
2071
2089
|
command: { type: "media.align", assetId: "", value: "left" },
|
|
@@ -2114,7 +2132,7 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2114
2132
|
label: "删除",
|
|
2115
2133
|
icon: "trash-2"
|
|
2116
2134
|
}
|
|
2117
|
-
],
|
|
2135
|
+
], Vn = (e) => be.includes(e), Ws = (e) => typeof e == "object" && Array.isArray(e.menuKeys), Us = (e) => new Set(e.flatMap((t) => t === "|" ? [] : typeof t == "string" ? [t] : Ws(t) ? [t.key, ...t.menuKeys] : [])), Ve = (e) => typeof e == "string" && Vn(e), js = (e) => {
|
|
2118
2136
|
const t = e.findIndex((r) => r === "media-remove"), n = t === -1 ? e.length : t;
|
|
2119
2137
|
return [
|
|
2120
2138
|
...e.slice(0, n),
|
|
@@ -2123,24 +2141,24 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2123
2141
|
"|",
|
|
2124
2142
|
...e.slice(n)
|
|
2125
2143
|
];
|
|
2126
|
-
},
|
|
2127
|
-
const t =
|
|
2144
|
+
}, Ks = (e) => {
|
|
2145
|
+
const t = Us(e);
|
|
2128
2146
|
if (be.filter((o) => !t.has(o)).length === 0) return e;
|
|
2129
|
-
const r = e.findIndex(
|
|
2130
|
-
return r === -1 ?
|
|
2131
|
-
...e.slice(0, r).filter((o) => !
|
|
2147
|
+
const r = e.findIndex(Ve);
|
|
2148
|
+
return r === -1 ? js(e) : [
|
|
2149
|
+
...e.slice(0, r).filter((o) => !Ve(o)),
|
|
2132
2150
|
...be,
|
|
2133
|
-
...e.slice(r + 1).filter((o) => !
|
|
2151
|
+
...e.slice(r + 1).filter((o) => !Ve(o))
|
|
2134
2152
|
];
|
|
2135
|
-
},
|
|
2153
|
+
}, qs = (e) => {
|
|
2136
2154
|
var r;
|
|
2137
|
-
const t = (e == null ? void 0 : e.toolbarKeys) ??
|
|
2155
|
+
const t = (e == null ? void 0 : e.toolbarKeys) ?? Fs;
|
|
2138
2156
|
return {
|
|
2139
2157
|
...e,
|
|
2140
|
-
toolbarKeys:
|
|
2141
|
-
excludeKeys: (r = e == null ? void 0 : e.excludeKeys) == null ? void 0 : r.filter((o) =>
|
|
2158
|
+
toolbarKeys: Ks(t),
|
|
2159
|
+
excludeKeys: (r = e == null ? void 0 : e.excludeKeys) == null ? void 0 : r.filter((o) => !Vn(o))
|
|
2142
2160
|
};
|
|
2143
|
-
},
|
|
2161
|
+
}, Gs = (e, t) => {
|
|
2144
2162
|
switch (e.command.type) {
|
|
2145
2163
|
case "media.retry":
|
|
2146
2164
|
return { ...e.command, assetId: t };
|
|
@@ -2153,38 +2171,38 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2153
2171
|
default:
|
|
2154
2172
|
return null;
|
|
2155
2173
|
}
|
|
2156
|
-
},
|
|
2157
|
-
const n =
|
|
2174
|
+
}, Xs = (e, t, n) => e.command.type === "media.resize" ? e.command.widthPercent === t : e.command.type === "media.align" && e.command.value === n, Wn = (e, t = {}) => {
|
|
2175
|
+
const n = dt(Vs, {
|
|
2158
2176
|
menuLabels: t.menuLabels
|
|
2159
|
-
}), r = e === "error" ? { toolbarKeys:
|
|
2160
|
-
return
|
|
2161
|
-
}, se = 8, de = "bridgerte__media-controls-button",
|
|
2177
|
+
}), r = e === "error" ? { toolbarKeys: zs } : qs(t.config);
|
|
2178
|
+
return ot(r, n);
|
|
2179
|
+
}, se = 8, de = "bridgerte__media-controls-button", Ys = (e) => e.querySelector(".bridgerte__content") ?? e, Js = (e) => e instanceof Element ? e.closest(".bridgerte__media") : null, Qs = (e, t = !1) => {
|
|
2162
2180
|
const n = document.createElement("button");
|
|
2163
2181
|
return n.type = "button", n.className = de, n.textContent = e.label, n.dataset.menuItemId = e.id, n.dataset.action = e.id.replace(/^media-/, ""), t && (n.dataset.active = "true"), n.setAttribute("aria-label", e.label), n;
|
|
2164
|
-
},
|
|
2182
|
+
}, Un = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), Zs = (e, t, n, r) => {
|
|
2165
2183
|
if (t.type === "separator") {
|
|
2166
2184
|
const a = document.createElement("span");
|
|
2167
2185
|
a.className = "bridgerte__media-controls-separator", a.dataset.separatorId = t.key, a.setAttribute("aria-hidden", "true"), e.append(a);
|
|
2168
2186
|
return;
|
|
2169
2187
|
}
|
|
2170
2188
|
(t.type === "button" ? [t.item] : t.items).forEach((a) => {
|
|
2171
|
-
e.append(
|
|
2189
|
+
e.append(Qs(
|
|
2172
2190
|
a,
|
|
2173
|
-
|
|
2191
|
+
Xs(a, n, r)
|
|
2174
2192
|
));
|
|
2175
2193
|
});
|
|
2176
|
-
},
|
|
2194
|
+
}, ei = (e, t, n) => {
|
|
2177
2195
|
const r = document.createElement("div"), o = e.dataset.status, a = Number(
|
|
2178
2196
|
e.dataset.displayWidthPercent ?? t
|
|
2179
|
-
), s = e.dataset.align ?? "left", l =
|
|
2197
|
+
), s = e.dataset.align ?? "left", l = Wn(o, {
|
|
2180
2198
|
config: n.mediaControlsConfig,
|
|
2181
2199
|
menuLabels: n.menuLabels
|
|
2182
2200
|
});
|
|
2183
|
-
return r.className = "bridgerte__media-controls", r.contentEditable = "false", r.setAttribute("aria-label", "媒体操作"), r.dataset.status = o ?? "success", r.dataset.displayWidthPercent = e.dataset.displayWidthPercent ?? "", r.dataset.align = e.dataset.align ?? "", r.dataset.menuItemIds =
|
|
2184
|
-
|
|
2201
|
+
return r.className = "bridgerte__media-controls", r.contentEditable = "false", r.setAttribute("aria-label", "媒体操作"), r.dataset.status = o ?? "success", r.dataset.displayWidthPercent = e.dataset.displayWidthPercent ?? "", r.dataset.align = e.dataset.align ?? "", r.dataset.menuItemIds = Un(l).map((d) => d.id).join("|"), l.forEach((d) => {
|
|
2202
|
+
Zs(r, d, a, s);
|
|
2185
2203
|
}), r;
|
|
2186
|
-
},
|
|
2187
|
-
const t = document.createElement("div"), n =
|
|
2204
|
+
}, ti = (e) => {
|
|
2205
|
+
const t = document.createElement("div"), n = Ys(e.root), r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
|
|
2188
2206
|
let s = null, l = null, d = !1, i = null;
|
|
2189
2207
|
const g = (c) => {
|
|
2190
2208
|
var m;
|
|
@@ -2222,7 +2240,7 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2222
2240
|
}
|
|
2223
2241
|
g(c);
|
|
2224
2242
|
}
|
|
2225
|
-
const C =
|
|
2243
|
+
const C = ei(h, e.defaultWidthPercent, e), P = U(C, {
|
|
2226
2244
|
targetSelector: `.${de}`
|
|
2227
2245
|
});
|
|
2228
2246
|
C.dataset.lexicalKey = c, C.dataset.assetId = h.dataset.assetId, r.set(c, C), o.set(C, P), t.append(C), b(C, h);
|
|
@@ -2236,14 +2254,14 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2236
2254
|
T(h);
|
|
2237
2255
|
}), i !== null && T(i);
|
|
2238
2256
|
}, y = () => {
|
|
2239
|
-
s === null && (s =
|
|
2257
|
+
s === null && (s = Re(f));
|
|
2240
2258
|
}, x = (c, h) => {
|
|
2241
|
-
const m = h.dataset.assetId, C =
|
|
2259
|
+
const m = h.dataset.assetId, C = Un(Wn(h.dataset.status, {
|
|
2242
2260
|
config: e.mediaControlsConfig,
|
|
2243
2261
|
menuLabels: e.menuLabels
|
|
2244
2262
|
})).find((M) => M.id === c.dataset.menuItemId);
|
|
2245
2263
|
if (!m || !C) return;
|
|
2246
|
-
const P =
|
|
2264
|
+
const P = Gs(C, m);
|
|
2247
2265
|
P && e.executeCommand(P);
|
|
2248
2266
|
}, u = (c) => {
|
|
2249
2267
|
if (!c) {
|
|
@@ -2266,7 +2284,7 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2266
2284
|
C === l && m && (c.preventDefault(), c.stopPropagation(), x(C, m), d = !0), l = null;
|
|
2267
2285
|
}, _ = () => {
|
|
2268
2286
|
l = null;
|
|
2269
|
-
},
|
|
2287
|
+
}, B = (c) => {
|
|
2270
2288
|
if (d) {
|
|
2271
2289
|
d = !1, c.preventDefault(), c.stopPropagation();
|
|
2272
2290
|
return;
|
|
@@ -2275,7 +2293,7 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2275
2293
|
if (!(h instanceof HTMLElement)) return;
|
|
2276
2294
|
const m = h.closest(`.${de}`), C = h.closest(".bridgerte__media-controls");
|
|
2277
2295
|
!m || !C || (c.preventDefault(), c.stopPropagation(), x(m, C));
|
|
2278
|
-
},
|
|
2296
|
+
}, H = e.editor.registerMutationListener(
|
|
2279
2297
|
le,
|
|
2280
2298
|
(c) => {
|
|
2281
2299
|
c.forEach((h, m) => {
|
|
@@ -2286,32 +2304,32 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2286
2304
|
T(m);
|
|
2287
2305
|
});
|
|
2288
2306
|
}
|
|
2289
|
-
), I = e.editor.registerUpdateListener(y), w =
|
|
2307
|
+
), I = e.editor.registerUpdateListener(y), w = ct({
|
|
2290
2308
|
root: e.root,
|
|
2291
2309
|
content: n,
|
|
2292
|
-
getBlockFromTarget:
|
|
2310
|
+
getBlockFromTarget: Js,
|
|
2293
2311
|
activateBlock: u,
|
|
2294
2312
|
clearBlock: () => u(null)
|
|
2295
2313
|
});
|
|
2296
|
-
return t.className = "bridgerte__media-controls-layer", e.root.append(t), t.addEventListener("pointerdown", p), t.addEventListener("pointerup", E), t.addEventListener("pointercancel", _), t.addEventListener("click",
|
|
2314
|
+
return t.className = "bridgerte__media-controls-layer", e.root.append(t), t.addEventListener("pointerdown", p), t.addEventListener("pointerup", E), t.addEventListener("pointercancel", _), t.addEventListener("click", B), n.addEventListener("scroll", y, { passive: !0 }), window.addEventListener("resize", y), {
|
|
2297
2315
|
destroy() {
|
|
2298
|
-
|
|
2316
|
+
H(), I(), s !== null && (lt(s), s = null), t.removeEventListener("pointerdown", p), t.removeEventListener("pointerup", E), t.removeEventListener("pointercancel", _), t.removeEventListener("click", B), w.destroy(), n.removeEventListener("scroll", y), window.removeEventListener("resize", y), r.forEach((c) => {
|
|
2299
2317
|
var h;
|
|
2300
2318
|
(h = o.get(c)) == null || h(), c.remove();
|
|
2301
2319
|
}), r.clear(), o.clear(), a.clear(), t.remove();
|
|
2302
2320
|
}
|
|
2303
2321
|
};
|
|
2304
|
-
},
|
|
2322
|
+
}, ni = ["width", "height"], q = (e, t) => {
|
|
2305
2323
|
var r;
|
|
2306
2324
|
const n = (r = e[t]) == null ? void 0 : r.trim();
|
|
2307
2325
|
return n || void 0;
|
|
2308
|
-
},
|
|
2326
|
+
}, Qe = (e, t) => {
|
|
2309
2327
|
const n = Number.parseInt(e[t] ?? "", 10);
|
|
2310
2328
|
return Number.isFinite(n) && n > 0 ? n : void 0;
|
|
2311
|
-
},
|
|
2312
|
-
const o =
|
|
2329
|
+
}, Ht = (e, t) => ni.reduce((n, r) => {
|
|
2330
|
+
const o = Qe(t, r);
|
|
2313
2331
|
return o === void 0 ? n : { ...n, [r]: o };
|
|
2314
|
-
}, e),
|
|
2332
|
+
}, e), ri = (e, t) => {
|
|
2315
2333
|
if (e.type === "format.color" || e.type === "format.backgroundColor" || e.type === "format.fontSize" || e.type === "format.fontFamily" || e.type === "format.lineHeight")
|
|
2316
2334
|
return t.value !== void 0 ? { ...e, value: t.value } : e;
|
|
2317
2335
|
if (e.type === "link.set") {
|
|
@@ -2323,12 +2341,12 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2323
2341
|
if (e.type === "block.setCodeLanguage")
|
|
2324
2342
|
return t.language !== void 0 ? { ...e, language: t.language } : e;
|
|
2325
2343
|
if (e.type === "table.insert") {
|
|
2326
|
-
const n =
|
|
2344
|
+
const n = Qe(t, "rows"), r = Qe(t, "cols");
|
|
2327
2345
|
return n && r ? { type: "table.insert", rows: n, cols: r } : null;
|
|
2328
2346
|
}
|
|
2329
2347
|
if (e.type === "media.insertImage") {
|
|
2330
2348
|
const n = q(t, "url");
|
|
2331
|
-
return n ?
|
|
2349
|
+
return n ? Ht({
|
|
2332
2350
|
...e,
|
|
2333
2351
|
url: n,
|
|
2334
2352
|
alt: q(t, "alt"),
|
|
@@ -2337,7 +2355,7 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2337
2355
|
}
|
|
2338
2356
|
if (e.type === "media.insertVideo") {
|
|
2339
2357
|
const n = q(t, "url");
|
|
2340
|
-
return n ?
|
|
2358
|
+
return n ? Ht({
|
|
2341
2359
|
...e,
|
|
2342
2360
|
url: n,
|
|
2343
2361
|
poster: q(t, "poster"),
|
|
@@ -2345,7 +2363,7 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2345
2363
|
}, t) : null;
|
|
2346
2364
|
}
|
|
2347
2365
|
return e;
|
|
2348
|
-
}, ee = (e) => Math.min(Math.max(Math.round(e), 0), 255),
|
|
2366
|
+
}, ee = (e) => Math.min(Math.max(Math.round(e), 0), 255), Ze = ({ r: e, g: t, b: n }) => `#${[e, t, n].map((r) => ee(r).toString(16).padStart(2, "0")).join("")}`, jn = (e) => {
|
|
2349
2367
|
const n = e.trim().match(/^#([0-9a-f]{6})$/i);
|
|
2350
2368
|
if (!n) return null;
|
|
2351
2369
|
const r = n[1] ?? "";
|
|
@@ -2354,7 +2372,7 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2354
2372
|
g: Number.parseInt(r.slice(2, 4), 16),
|
|
2355
2373
|
b: Number.parseInt(r.slice(4, 6), 16)
|
|
2356
2374
|
};
|
|
2357
|
-
},
|
|
2375
|
+
}, oi = (e) => {
|
|
2358
2376
|
const t = e.trim().match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i);
|
|
2359
2377
|
return t ? {
|
|
2360
2378
|
r: ee(Number(t[1])),
|
|
@@ -2362,9 +2380,9 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2362
2380
|
b: ee(Number(t[3]))
|
|
2363
2381
|
} : null;
|
|
2364
2382
|
}, We = (e) => {
|
|
2365
|
-
const t =
|
|
2366
|
-
return t ?
|
|
2367
|
-
},
|
|
2383
|
+
const t = jn(e) ?? oi(e);
|
|
2384
|
+
return t ? Ze(t) : null;
|
|
2385
|
+
}, Kn = (e) => Math.min(Math.max(e, 0), 1), ai = ({ r: e, g: t, b: n }) => {
|
|
2368
2386
|
const r = ee(e) / 255, o = ee(t) / 255, a = ee(n) / 255, s = Math.max(r, o, a), l = Math.min(r, o, a), d = s - l;
|
|
2369
2387
|
let i = 0;
|
|
2370
2388
|
return d !== 0 && (s === r ? i = 60 * ((o - a) / d % 6) : s === o ? i = 60 * ((a - r) / d + 2) : i = 60 * ((r - o) / d + 4)), {
|
|
@@ -2384,30 +2402,30 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2384
2402
|
g: (l + a) * 255,
|
|
2385
2403
|
b: (d + a) * 255
|
|
2386
2404
|
};
|
|
2387
|
-
},
|
|
2388
|
-
const n = e * Math.PI / 180, r =
|
|
2405
|
+
}, si = ({ h: e, s: t }) => {
|
|
2406
|
+
const n = e * Math.PI / 180, r = Kn(t) * 50;
|
|
2389
2407
|
return {
|
|
2390
2408
|
x: 50 + Math.cos(n) * r,
|
|
2391
2409
|
y: 50 + Math.sin(n) * r
|
|
2392
2410
|
};
|
|
2393
|
-
},
|
|
2411
|
+
}, $t = (e, t) => {
|
|
2394
2412
|
const n = t.getBoundingClientRect(), r = n.left + n.width / 2, o = n.top + n.height / 2, a = e.clientX - r, s = e.clientY - o, l = Math.min(Math.sqrt(a * a + s * s), n.width / 2), d = Math.atan2(s, a) * 180 / Math.PI;
|
|
2395
2413
|
return {
|
|
2396
2414
|
h: d < 0 ? d + 360 : d,
|
|
2397
|
-
s:
|
|
2415
|
+
s: Kn(l / (n.width / 2)),
|
|
2398
2416
|
v: 1
|
|
2399
2417
|
};
|
|
2400
|
-
},
|
|
2418
|
+
}, ii = [
|
|
2401
2419
|
"#000000",
|
|
2402
2420
|
"#ffffff"
|
|
2403
|
-
],
|
|
2421
|
+
], li = (e) => {
|
|
2404
2422
|
var t;
|
|
2405
|
-
return (t = e.options) != null && t.length ? e.options :
|
|
2406
|
-
},
|
|
2423
|
+
return (t = e.options) != null && t.length ? e.options : ii.map((n) => ({ label: n, value: n }));
|
|
2424
|
+
}, qn = () => {
|
|
2407
2425
|
const e = document.createElement("section");
|
|
2408
2426
|
return e.className = "bridgerte__payload-panel-field", e;
|
|
2409
|
-
},
|
|
2410
|
-
const r =
|
|
2427
|
+
}, ci = (e, t, n) => {
|
|
2428
|
+
const r = qn(), o = document.createElement("div");
|
|
2411
2429
|
return o.className = "bridgerte__payload-panel-option-list", e.options.forEach((a) => {
|
|
2412
2430
|
const s = document.createElement("button");
|
|
2413
2431
|
s.type = "button", s.className = "bridgerte__payload-panel-option", s.textContent = a.label, s.dataset.bridgertePayloadOption = a.value, s.dataset.active = t[e.name] === a.value ? "true" : "false", U(s), s.addEventListener("pointerdown", (l) => {
|
|
@@ -2419,8 +2437,8 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2419
2437
|
});
|
|
2420
2438
|
}), o.append(s);
|
|
2421
2439
|
}), r.append(o), r;
|
|
2422
|
-
},
|
|
2423
|
-
const r =
|
|
2440
|
+
}, di = (e, t, n) => {
|
|
2441
|
+
const r = qn(), o = document.createElement("div"), a = document.createElement("div"), s = document.createElement("span"), l = document.createElement("div"), d = document.createElement("div"), i = li(e), g = i.length === 2;
|
|
2424
2442
|
let v = { h: 0, s: 0, v: 1 }, b = null;
|
|
2425
2443
|
const T = (u) => {
|
|
2426
2444
|
const p = We(u);
|
|
@@ -2428,8 +2446,8 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2428
2446
|
}, f = (u, p = !0) => {
|
|
2429
2447
|
const E = We(u);
|
|
2430
2448
|
if (!E) return;
|
|
2431
|
-
t[e.name] = E, d.style.background = E, v =
|
|
2432
|
-
const _ =
|
|
2449
|
+
t[e.name] = E, d.style.background = E, v = ai(jn(E) ?? { r: 255, g: 255, b: 255 });
|
|
2450
|
+
const _ = si(v);
|
|
2433
2451
|
a.dataset.active = p ? "true" : "false", d.dataset.empty = "false", p && (s.style.left = `${_.x}%`, s.style.top = `${_.y}%`);
|
|
2434
2452
|
}, y = () => {
|
|
2435
2453
|
const u = t[e.name];
|
|
@@ -2446,9 +2464,9 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2446
2464
|
f(E, !1), y();
|
|
2447
2465
|
}), l.append(p);
|
|
2448
2466
|
}), a.addEventListener("pointerdown", (u) => {
|
|
2449
|
-
b = u.pointerId, a.setPointerCapture(u.pointerId), v =
|
|
2467
|
+
b = u.pointerId, a.setPointerCapture(u.pointerId), v = $t(u, a), f(Ze(Ot(v))), u.preventDefault();
|
|
2450
2468
|
}), a.addEventListener("pointermove", (u) => {
|
|
2451
|
-
b === u.pointerId && (v =
|
|
2469
|
+
b === u.pointerId && (v = $t(u, a), f(Ze(Ot(v))));
|
|
2452
2470
|
}), a.addEventListener("pointerup", (u) => {
|
|
2453
2471
|
b === u.pointerId && (b = null, a.releasePointerCapture(u.pointerId), y());
|
|
2454
2472
|
}), a.addEventListener("pointercancel", (u) => {
|
|
@@ -2456,35 +2474,35 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2456
2474
|
});
|
|
2457
2475
|
const x = t[e.name];
|
|
2458
2476
|
return x && f(x, !(g && T(x))), o.append(a, l), r.append(o, d), r;
|
|
2459
|
-
},
|
|
2477
|
+
}, ui = (e, t, n) => {
|
|
2460
2478
|
const r = document.createElement("label"), o = document.createElement("input");
|
|
2461
2479
|
return r.className = "bridgerte__payload-panel-text-field", r.textContent = e.label, o.type = e.name === "href" || e.name === "url" ? "url" : "text", o.className = "bridgerte__payload-panel-text-input", o.value = t[e.name] ?? "", o.placeholder = e.placeholder ?? "", o.spellcheck = !1, o.addEventListener("input", () => {
|
|
2462
2480
|
t[e.name] = o.value;
|
|
2463
2481
|
}), o.addEventListener("keydown", (a) => {
|
|
2464
2482
|
a.key === "Enter" && (a.preventDefault(), n(t));
|
|
2465
2483
|
}), r.append(o), r;
|
|
2466
|
-
},
|
|
2484
|
+
}, mi = (e, t, n) => {
|
|
2467
2485
|
const r = document.createElement("label"), o = document.createElement("input");
|
|
2468
2486
|
return r.className = "bridgerte__payload-panel-text-field", r.textContent = e.label, o.type = "number", o.className = "bridgerte__payload-panel-text-input", o.value = t[e.name] ?? "", o.placeholder = e.placeholder ?? "", e.min !== void 0 && (o.min = String(e.min)), e.max !== void 0 && (o.max = String(e.max)), e.step !== void 0 && (o.step = String(e.step)), o.addEventListener("input", () => {
|
|
2469
2487
|
t[e.name] = o.value;
|
|
2470
2488
|
}), o.addEventListener("keydown", (a) => {
|
|
2471
2489
|
a.key === "Enter" && (a.preventDefault(), n(t));
|
|
2472
2490
|
}), r.append(o), r;
|
|
2473
|
-
},
|
|
2491
|
+
}, gi = ({
|
|
2474
2492
|
field: e,
|
|
2475
2493
|
values: t,
|
|
2476
2494
|
onSubmit: n
|
|
2477
|
-
}) => e.type === "color" ?
|
|
2495
|
+
}) => e.type === "color" ? di(e, t, n) : e.type === "text" ? ui(e, t, n) : e.type === "number" ? mi(e, t, n) : ci(e, t, n), hi = (e) => {
|
|
2478
2496
|
var t, n, r;
|
|
2479
2497
|
return e.defaultValue ?? (e.type === "select" ? (t = e.options[0]) == null ? void 0 : t.value : void 0) ?? (e.type === "color" ? (r = (n = e.options) == null ? void 0 : n[0]) == null ? void 0 : r.value : void 0) ?? "";
|
|
2480
|
-
},
|
|
2498
|
+
}, pi = (e, t) => (t == null ? void 0 : t[e.name]) ?? (e.type === "color" ? "" : hi(e)), Ft = (e) => e.some((t) => t.type === "text" || t.type === "number"), fi = (e) => {
|
|
2481
2499
|
const t = e.querySelector(
|
|
2482
2500
|
".bridgerte__payload-panel-text-input"
|
|
2483
2501
|
);
|
|
2484
2502
|
queueMicrotask(() => {
|
|
2485
2503
|
t == null || t.focus(), t == null || t.select();
|
|
2486
2504
|
});
|
|
2487
|
-
},
|
|
2505
|
+
}, bi = (e, t, n) => {
|
|
2488
2506
|
const r = document.createElement("div"), o = document.createElement("span"), a = (n == null ? void 0 : n(e)) ?? null;
|
|
2489
2507
|
if (r.className = "bridgerte__payload-panel-title", o.textContent = e.panel.title, r.append(o), a) {
|
|
2490
2508
|
const s = document.createElement("button");
|
|
@@ -2495,20 +2513,20 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2495
2513
|
}), r.append(s);
|
|
2496
2514
|
}
|
|
2497
2515
|
return r;
|
|
2498
|
-
},
|
|
2516
|
+
}, yi = (e) => (
|
|
2499
2517
|
/*
|
|
2500
2518
|
* 字体类面板只需要紧凑候选列表,颜色面板需要保留一点横向空间给圆盘和黑白按钮。
|
|
2501
2519
|
* 输入型面板保留默认宽度;table-insert 会按 schema 网格列数单独计算。
|
|
2502
2520
|
*/
|
|
2503
2521
|
e === "font-size" || e === "font-family" || e === "line-height" ? "180px" : "220px"
|
|
2504
|
-
),
|
|
2522
|
+
), vi = 3, wi = 3, Ci = 10, Gn = 10, _i = 16, ki = 2, Ei = 24, xi = () => {
|
|
2505
2523
|
var e;
|
|
2506
2524
|
return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(hover: hover) and (pointer: fine)").matches) === !0;
|
|
2507
2525
|
}, ue = (e, t) => {
|
|
2508
2526
|
const n = Number.parseInt(e ?? "", 10);
|
|
2509
2527
|
return Number.isFinite(n) ? Math.min(Math.max(n, t.min), t.max) : t.defaultValue;
|
|
2510
|
-
},
|
|
2511
|
-
const o = e.find((g) =>
|
|
2528
|
+
}, Mi = (e, t) => e.type === "number" && e.name === t, zt = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.floor(e) : t, Vt = (e, t, n, r) => {
|
|
2529
|
+
const o = e.find((g) => Mi(g, t)), a = zt(o == null ? void 0 : o.min, 1), s = zt(o == null ? void 0 : o.max, n), l = Math.max(a, s), d = Math.min(Math.max(r, a), l), i = ue(o == null ? void 0 : o.defaultValue, {
|
|
2512
2530
|
min: a,
|
|
2513
2531
|
max: l,
|
|
2514
2532
|
defaultValue: d
|
|
@@ -2518,28 +2536,28 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2518
2536
|
max: l,
|
|
2519
2537
|
defaultValue: i
|
|
2520
2538
|
};
|
|
2521
|
-
},
|
|
2522
|
-
rows:
|
|
2539
|
+
}, Xn = (e) => ({
|
|
2540
|
+
rows: Vt(
|
|
2523
2541
|
e,
|
|
2524
2542
|
"rows",
|
|
2525
|
-
|
|
2526
|
-
|
|
2543
|
+
tn,
|
|
2544
|
+
vi
|
|
2527
2545
|
),
|
|
2528
|
-
cols:
|
|
2546
|
+
cols: Vt(
|
|
2529
2547
|
e,
|
|
2530
2548
|
"cols",
|
|
2531
|
-
|
|
2532
|
-
|
|
2549
|
+
nn,
|
|
2550
|
+
wi
|
|
2533
2551
|
)
|
|
2534
|
-
}),
|
|
2535
|
-
const t = Math.min(e.cols.max,
|
|
2536
|
-
return `${t *
|
|
2537
|
-
},
|
|
2552
|
+
}), Ti = (e) => {
|
|
2553
|
+
const t = Math.min(e.cols.max, Gn);
|
|
2554
|
+
return `${t * _i + Math.max(t - 1, 0) * ki + Ei}px`;
|
|
2555
|
+
}, Li = ({
|
|
2538
2556
|
fields: e,
|
|
2539
2557
|
values: t,
|
|
2540
2558
|
onSubmit: n
|
|
2541
2559
|
}) => {
|
|
2542
|
-
const r =
|
|
2560
|
+
const r = Xn(e), o = document.createElement("section"), a = document.createElement("div"), s = document.createElement("div"), l = [], d = xi(), i = Math.min(r.rows.max, Ci), g = Math.min(r.cols.max, Gn), v = {
|
|
2543
2561
|
...r.rows,
|
|
2544
2562
|
max: i,
|
|
2545
2563
|
defaultValue: Math.min(r.rows.defaultValue, i)
|
|
@@ -2581,9 +2599,9 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2581
2599
|
});
|
|
2582
2600
|
}, _ = () => {
|
|
2583
2601
|
y = null;
|
|
2584
|
-
},
|
|
2602
|
+
}, B = () => {
|
|
2585
2603
|
window.setTimeout(_, 0);
|
|
2586
|
-
},
|
|
2604
|
+
}, H = (I, w) => {
|
|
2587
2605
|
if (I.detail > 0 && y !== w) {
|
|
2588
2606
|
I.preventDefault(), I.stopPropagation();
|
|
2589
2607
|
return;
|
|
@@ -2595,8 +2613,8 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2595
2613
|
const c = document.createElement("button");
|
|
2596
2614
|
c.type = "button", c.className = "bridgerte__payload-panel-table-cell", c.dataset.rows = String(I), c.dataset.cols = String(w), c.setAttribute("aria-label", `插入 ${I} 行 ${w} 列表格`), U(c), c.addEventListener("pointerdown", (h) => {
|
|
2597
2615
|
y = c, p(c), h.preventDefault();
|
|
2598
|
-
}), c.addEventListener("pointerup",
|
|
2599
|
-
|
|
2616
|
+
}), c.addEventListener("pointerup", B), c.addEventListener("pointercancel", _), c.addEventListener("click", (h) => {
|
|
2617
|
+
H(h, c);
|
|
2600
2618
|
}), d && c.addEventListener("pointerenter", () => {
|
|
2601
2619
|
p(c);
|
|
2602
2620
|
}), l.push(c), a.append(c);
|
|
@@ -2607,18 +2625,18 @@ const _s = () => (At += 1, `${ws}-${At}`), ks = (e, t, n) => {
|
|
|
2607
2625
|
), s.className = "bridgerte__payload-panel-table-status", s.setAttribute("aria-live", "polite"), a.addEventListener("pointermove", (I) => {
|
|
2608
2626
|
d || p(u(I));
|
|
2609
2627
|
}), x(T, f), o.append(a, s), o;
|
|
2610
|
-
},
|
|
2628
|
+
}, Si = "bridgerte-payload-panel";
|
|
2611
2629
|
let Wt = 0;
|
|
2612
|
-
const
|
|
2630
|
+
const Ni = () => (Wt += 1, `${Si}-${Wt}`), xe = (e) => e.panel.id === "table-insert", Pi = (e, t) => {
|
|
2613
2631
|
const n = document.createElement("button");
|
|
2614
2632
|
return n.type = "button", n.className = "bridgerte__payload-panel-submit", n.textContent = "应用", U(n), n.addEventListener("pointerdown", (r) => {
|
|
2615
2633
|
r.preventDefault();
|
|
2616
2634
|
}), n.addEventListener("click", () => {
|
|
2617
2635
|
t(e);
|
|
2618
2636
|
}), n;
|
|
2619
|
-
},
|
|
2637
|
+
}, Ii = (e) => {
|
|
2620
2638
|
let t = null, n = {};
|
|
2621
|
-
const r =
|
|
2639
|
+
const r = zn({
|
|
2622
2640
|
root: e.editorRoot,
|
|
2623
2641
|
className: "bridgerte__payload-panel",
|
|
2624
2642
|
onBackdropClick: () => {
|
|
@@ -2631,7 +2649,7 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2631
2649
|
const a = (i) => {
|
|
2632
2650
|
var v;
|
|
2633
2651
|
if (!t || t.readonly || e.isReadonly()) return;
|
|
2634
|
-
const g =
|
|
2652
|
+
const g = ri(t.command, i);
|
|
2635
2653
|
g && ((v = e.restoreEditorFocus) == null || v.call(e, () => {
|
|
2636
2654
|
o(), e.isReadonly() || e.executeCommand(g);
|
|
2637
2655
|
}));
|
|
@@ -2641,19 +2659,19 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2641
2659
|
o(), e.isReadonly() || e.executeCommand(i);
|
|
2642
2660
|
});
|
|
2643
2661
|
}, l = (i) => {
|
|
2644
|
-
n = i.panel.fields.reduce((v, b) => (v[b.name] =
|
|
2645
|
-
const g =
|
|
2646
|
-
r.element.style.width = `min(${g}, calc(100vw - 24px))`, r.content.append(
|
|
2662
|
+
n = i.panel.fields.reduce((v, b) => (v[b.name] = pi(b, i.currentValues), v), {});
|
|
2663
|
+
const g = xe(i) ? Ti(Xn(i.panel.fields)) : yi(i.panel.id);
|
|
2664
|
+
r.element.style.width = `min(${g}, calc(100vw - 24px))`, r.content.append(bi(i, s, e.getClearCommand)), xe(i) ? r.content.append(Li({
|
|
2647
2665
|
fields: i.panel.fields,
|
|
2648
2666
|
values: n,
|
|
2649
2667
|
onSubmit: a
|
|
2650
2668
|
})) : i.panel.fields.forEach((v) => {
|
|
2651
|
-
r.content.append(
|
|
2669
|
+
r.content.append(gi({
|
|
2652
2670
|
field: v,
|
|
2653
2671
|
values: n,
|
|
2654
2672
|
onSubmit: a
|
|
2655
2673
|
}));
|
|
2656
|
-
}), !
|
|
2674
|
+
}), !xe(i) && Ft(i.panel.fields) && r.content.append(Pi(n, a)), r.open(i.anchorRect), !xe(i) && Ft(i.panel.fields) && fi(r.content);
|
|
2657
2675
|
};
|
|
2658
2676
|
return {
|
|
2659
2677
|
open: (i) => {
|
|
@@ -2661,7 +2679,7 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2661
2679
|
o();
|
|
2662
2680
|
const g = {
|
|
2663
2681
|
...i,
|
|
2664
|
-
id:
|
|
2682
|
+
id: Ni(),
|
|
2665
2683
|
readonly: e.isReadonly(),
|
|
2666
2684
|
submit: a,
|
|
2667
2685
|
cancel: o
|
|
@@ -2679,36 +2697,36 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2679
2697
|
o(), r.destroy();
|
|
2680
2698
|
}
|
|
2681
2699
|
};
|
|
2682
|
-
}, me = "bridgerte__table-controls-button",
|
|
2700
|
+
}, me = "bridgerte__table-controls-button", Ri = [
|
|
2683
2701
|
"table-insert-row-after",
|
|
2684
2702
|
"table-delete-row",
|
|
2685
2703
|
"table-insert-column-after",
|
|
2686
2704
|
"table-delete-column",
|
|
2687
2705
|
"table-delete"
|
|
2688
|
-
],
|
|
2689
|
-
const e = new Map(
|
|
2690
|
-
return
|
|
2691
|
-
},
|
|
2706
|
+
], Ai = () => {
|
|
2707
|
+
const e = new Map(De.map((t) => [t.id, t]));
|
|
2708
|
+
return Ri.map((t) => Eo.find((n) => n.id === t) ?? e.get(t)).filter((t) => t !== void 0);
|
|
2709
|
+
}, Yn = Ai(), Bi = new Map(
|
|
2692
2710
|
/*
|
|
2693
2711
|
* Controls 按钮用 MenuItem.id 查完整 command,同类命令的不同 payload 不能用 command.type 合并。
|
|
2694
2712
|
* 后续加入插入前/后、合并/拆分等表格菜单时,只要 id 稳定,就不会互相覆盖。
|
|
2695
2713
|
*/
|
|
2696
|
-
|
|
2697
|
-
),
|
|
2714
|
+
Yn.map((e) => [e.id, e])
|
|
2715
|
+
), Di = (e) => e.matches(".bridgerte__table") ? e : e.querySelector(".bridgerte__table") ?? e, Hi = (e, t) => e.classList.contains("bridgerte__table-wrapper") ? e : t.parentElement instanceof HTMLElement ? t.parentElement : t, Oi = (e) => e.querySelector(".bridgerte__content") ?? e, $i = (e) => e instanceof Element ? e.closest(".bridgerte__table-wrapper") : null, Fi = (e) => {
|
|
2698
2716
|
const t = e.getFirstChild();
|
|
2699
|
-
if (!
|
|
2717
|
+
if (!ao(t)) return null;
|
|
2700
2718
|
const n = t.getFirstChild();
|
|
2701
|
-
return
|
|
2702
|
-
},
|
|
2719
|
+
return so(n) ? n : null;
|
|
2720
|
+
}, zi = (e) => {
|
|
2703
2721
|
const t = document.createElement("button");
|
|
2704
2722
|
return t.type = "button", t.className = me, t.textContent = e.label, t.dataset.menuItemId = e.id, t.setAttribute("aria-label", e.label), t;
|
|
2705
|
-
},
|
|
2723
|
+
}, Vi = () => {
|
|
2706
2724
|
const e = document.createElement("div");
|
|
2707
|
-
return e.className = "bridgerte__table-controls", e.contentEditable = "false", e.setAttribute("aria-label", "表格操作"),
|
|
2708
|
-
e.append(
|
|
2725
|
+
return e.className = "bridgerte__table-controls", e.contentEditable = "false", e.setAttribute("aria-label", "表格操作"), Yn.forEach((t) => {
|
|
2726
|
+
e.append(zi(t));
|
|
2709
2727
|
}), e;
|
|
2710
|
-
},
|
|
2711
|
-
const t = document.createElement("div"), n =
|
|
2728
|
+
}, Wi = (e) => {
|
|
2729
|
+
const t = document.createElement("div"), n = Oi(e.root), r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
|
|
2712
2730
|
let s = null, l = null, d = !1, i = null;
|
|
2713
2731
|
const g = (m, C) => {
|
|
2714
2732
|
const P = e.root.getBoundingClientRect(), M = C.getBoundingClientRect(), L = M.bottom < P.top || M.top > P.bottom, N = Math.max(
|
|
@@ -2726,7 +2744,7 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2726
2744
|
return;
|
|
2727
2745
|
}
|
|
2728
2746
|
C.dataset.lexicalKey = m;
|
|
2729
|
-
const P =
|
|
2747
|
+
const P = Di(C), M = Hi(C, P);
|
|
2730
2748
|
a.set(M, m);
|
|
2731
2749
|
const L = r.get(m);
|
|
2732
2750
|
if (!v(m)) {
|
|
@@ -2737,7 +2755,7 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2737
2755
|
g(L, M);
|
|
2738
2756
|
return;
|
|
2739
2757
|
}
|
|
2740
|
-
const N =
|
|
2758
|
+
const N = Vi(), R = U(N, {
|
|
2741
2759
|
targetSelector: `.${me}`
|
|
2742
2760
|
});
|
|
2743
2761
|
N.dataset.lexicalKey = m, r.set(m, N), o.set(N, R), t.append(N), g(N, M);
|
|
@@ -2755,17 +2773,17 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2755
2773
|
b(C);
|
|
2756
2774
|
}), i !== null && b(i);
|
|
2757
2775
|
}, y = () => {
|
|
2758
|
-
s === null && (s =
|
|
2776
|
+
s === null && (s = Re(f));
|
|
2759
2777
|
}, x = (m) => {
|
|
2760
2778
|
e.editor.update(() => {
|
|
2761
2779
|
var P;
|
|
2762
2780
|
const C = he(m);
|
|
2763
|
-
C instanceof
|
|
2781
|
+
C instanceof Ge && ((P = Fi(C)) == null || P.selectStart());
|
|
2764
2782
|
}), e.editor.focus();
|
|
2765
2783
|
}, u = (m, C) => {
|
|
2766
2784
|
x(m), e.executeCommand(C);
|
|
2767
2785
|
}, p = (m, C) => {
|
|
2768
|
-
const P = C.dataset.lexicalKey, M = m.dataset.menuItemId, L = M ?
|
|
2786
|
+
const P = C.dataset.lexicalKey, M = m.dataset.menuItemId, L = M ? Bi.get(M) : void 0;
|
|
2769
2787
|
!P || !L || u(P, L.command);
|
|
2770
2788
|
}, E = (m) => {
|
|
2771
2789
|
if (!m) {
|
|
@@ -2782,11 +2800,11 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2782
2800
|
if (!(C instanceof HTMLElement)) return;
|
|
2783
2801
|
const P = C.closest(`.${me}`);
|
|
2784
2802
|
P && (m.preventDefault(), l = m.pointerType === "mouse" ? null : P);
|
|
2785
|
-
},
|
|
2803
|
+
}, B = (m) => {
|
|
2786
2804
|
if (m.pointerType === "mouse" || !l) return;
|
|
2787
2805
|
const C = m.target, P = C instanceof HTMLElement ? C.closest(".bridgerte__table-controls") : null, M = C instanceof HTMLElement ? C.closest(`.${me}`) : null;
|
|
2788
2806
|
M === l && P && (m.preventDefault(), m.stopPropagation(), p(M, P), d = !0), l = null;
|
|
2789
|
-
},
|
|
2807
|
+
}, H = () => {
|
|
2790
2808
|
l = null;
|
|
2791
2809
|
}, I = (m) => {
|
|
2792
2810
|
if (d) {
|
|
@@ -2798,7 +2816,7 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2798
2816
|
const P = C.closest(`.${me}`), M = C.closest(".bridgerte__table-controls");
|
|
2799
2817
|
!P || !M || (m.preventDefault(), m.stopPropagation(), p(P, M));
|
|
2800
2818
|
}, w = e.editor.registerMutationListener(
|
|
2801
|
-
|
|
2819
|
+
Ge,
|
|
2802
2820
|
(m) => {
|
|
2803
2821
|
m.forEach((C, P) => {
|
|
2804
2822
|
if (C === "destroyed") {
|
|
@@ -2808,41 +2826,41 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2808
2826
|
b(P);
|
|
2809
2827
|
});
|
|
2810
2828
|
}
|
|
2811
|
-
), c = e.editor.registerUpdateListener(y), h =
|
|
2829
|
+
), c = e.editor.registerUpdateListener(y), h = ct({
|
|
2812
2830
|
root: e.root,
|
|
2813
2831
|
content: n,
|
|
2814
|
-
getBlockFromTarget:
|
|
2832
|
+
getBlockFromTarget: $i,
|
|
2815
2833
|
activateBlock: E,
|
|
2816
2834
|
clearBlock: () => E(null)
|
|
2817
2835
|
});
|
|
2818
|
-
return t.className = "bridgerte__table-controls-layer", e.root.append(t), t.addEventListener("pointerdown", _), t.addEventListener("pointerup",
|
|
2836
|
+
return t.className = "bridgerte__table-controls-layer", e.root.append(t), t.addEventListener("pointerdown", _), t.addEventListener("pointerup", B), t.addEventListener("pointercancel", H), t.addEventListener("click", I), n.addEventListener("scroll", y, { passive: !0 }), window.addEventListener("resize", y), {
|
|
2819
2837
|
destroy() {
|
|
2820
|
-
w(), c(), s !== null && (
|
|
2838
|
+
w(), c(), s !== null && (lt(s), s = null), t.removeEventListener("pointerdown", _), t.removeEventListener("pointerup", B), t.removeEventListener("pointercancel", H), t.removeEventListener("click", I), h.destroy(), n.removeEventListener("scroll", y), window.removeEventListener("resize", y), r.forEach((m) => {
|
|
2821
2839
|
var C;
|
|
2822
2840
|
(C = o.get(m)) == null || C(), m.remove();
|
|
2823
2841
|
}), r.clear(), o.clear(), a.clear(), t.remove();
|
|
2824
2842
|
}
|
|
2825
2843
|
};
|
|
2826
|
-
},
|
|
2827
|
-
const t =
|
|
2844
|
+
}, Ui = (e) => {
|
|
2845
|
+
const t = Ii({
|
|
2828
2846
|
editorRoot: e.editorRoot,
|
|
2829
2847
|
isReadonly: e.isReadonly,
|
|
2830
2848
|
restoreEditorFocus: e.restoreEditorFocus,
|
|
2831
2849
|
executeCommand: e.executeCommand,
|
|
2832
2850
|
getClearCommand: e.getClearCommand,
|
|
2833
2851
|
onRequest: e.onRequest
|
|
2834
|
-
}), n =
|
|
2852
|
+
}), n = Hs({
|
|
2835
2853
|
editor: e.lexicalEditor,
|
|
2836
2854
|
root: e.editorRoot,
|
|
2837
2855
|
isReadonly: e.isReadonly,
|
|
2838
2856
|
languagePanel: e.codeBlockLanguagePanel,
|
|
2839
2857
|
payloadPanelConfig: e.payloadPanelConfig,
|
|
2840
2858
|
onRequest: e.onRequest
|
|
2841
|
-
}), r =
|
|
2859
|
+
}), r = Wi({
|
|
2842
2860
|
editor: e.lexicalEditor,
|
|
2843
2861
|
root: e.editorRoot,
|
|
2844
2862
|
executeCommand: e.executeCommand
|
|
2845
|
-
}), o =
|
|
2863
|
+
}), o = ti({
|
|
2846
2864
|
editor: e.lexicalEditor,
|
|
2847
2865
|
root: e.editorRoot,
|
|
2848
2866
|
defaultWidthPercent: e.defaultMediaWidthPercent,
|
|
@@ -2859,14 +2877,15 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2859
2877
|
t.destroy(), n.destroy(), r.destroy(), o.destroy();
|
|
2860
2878
|
}
|
|
2861
2879
|
};
|
|
2862
|
-
},
|
|
2863
|
-
const n = document.createElement("div"), r = document.createElement("div"), o = document.createElement("div");
|
|
2864
|
-
return e.classList.add("bridgerte"), e.textContent = "", n.className = "bridgerte__editor", r.className = "bridgerte__body", o.className = "bridgerte__content", o.dataset.placeholder = t.placeholder, o.setAttribute("role", "textbox"), o.setAttribute("aria-multiline", "true"), r.append(o), n.append(r), e.append(n), {
|
|
2880
|
+
}, ji = (e, t) => {
|
|
2881
|
+
const n = document.createElement("div"), r = document.createElement("div"), o = document.createElement("div"), a = document.createElement("div");
|
|
2882
|
+
return e.classList.add("bridgerte"), e.textContent = "", n.className = "bridgerte__editor", r.className = "bridgerte__body", o.className = "bridgerte__content", a.className = "bridgerte__placeholder", a.textContent = t.placeholder, a.setAttribute("aria-hidden", "true"), o.dataset.placeholder = t.placeholder, o.setAttribute("role", "textbox"), o.setAttribute("aria-multiline", "true"), r.append(o, a), n.append(r), e.append(n), {
|
|
2865
2883
|
rootElement: n,
|
|
2866
2884
|
bodyElement: r,
|
|
2867
|
-
contentElement: o
|
|
2885
|
+
contentElement: o,
|
|
2886
|
+
placeholderElement: a
|
|
2868
2887
|
};
|
|
2869
|
-
},
|
|
2888
|
+
}, Ki = ({
|
|
2870
2889
|
editor: e
|
|
2871
2890
|
}) => {
|
|
2872
2891
|
let t = null;
|
|
@@ -2879,23 +2898,23 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2879
2898
|
},
|
|
2880
2899
|
restore() {
|
|
2881
2900
|
t && e.update(() => {
|
|
2882
|
-
|
|
2901
|
+
kr((t == null ? void 0 : t.clone()) ?? null);
|
|
2883
2902
|
});
|
|
2884
2903
|
},
|
|
2885
2904
|
clear() {
|
|
2886
2905
|
t = null;
|
|
2887
2906
|
}
|
|
2888
2907
|
};
|
|
2889
|
-
},
|
|
2908
|
+
}, qi = /((https?:\/\/|www\.)[^\s<>()]+[^\s<>().,;:!?])/i, Gi = /([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/i, Xi = {
|
|
2890
2909
|
changeHandlers: [],
|
|
2891
2910
|
excludeParents: [],
|
|
2892
2911
|
matchers: [
|
|
2893
|
-
|
|
2894
|
-
|
|
2912
|
+
bt(qi, (e) => e.startsWith("http://") || e.startsWith("https://") ? e : `https://${e}`),
|
|
2913
|
+
bt(Gi, (e) => `mailto:${e}`)
|
|
2895
2914
|
]
|
|
2896
|
-
},
|
|
2915
|
+
}, Yi = ({
|
|
2897
2916
|
editor: e
|
|
2898
|
-
}) =>
|
|
2917
|
+
}) => ho(e, Xi), Ji = [
|
|
2899
2918
|
".bridgerte__code-header",
|
|
2900
2919
|
".bridgerte__code-block-controls",
|
|
2901
2920
|
".bridgerte__code-block-control-button",
|
|
@@ -2909,32 +2928,32 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2909
2928
|
".bridgerte__dialog-backdrop",
|
|
2910
2929
|
".bridgerte__dialog",
|
|
2911
2930
|
".bridgerte__payload-panel"
|
|
2912
|
-
].join(","),
|
|
2931
|
+
].join(","), Qi = (e, t) => {
|
|
2913
2932
|
const n = e.anchorNode, r = e.focusNode;
|
|
2914
2933
|
return n !== null && r !== null && t.contains(n) && t.contains(r);
|
|
2915
|
-
},
|
|
2916
|
-
e.querySelectorAll(
|
|
2934
|
+
}, Zi = (e) => {
|
|
2935
|
+
e.querySelectorAll(Ji).forEach((t) => {
|
|
2917
2936
|
t.remove();
|
|
2918
2937
|
}), e.querySelectorAll('[contenteditable="false"]').forEach((t) => {
|
|
2919
2938
|
t.classList.contains("bridgerte__media") || t.remove();
|
|
2920
2939
|
});
|
|
2921
|
-
},
|
|
2940
|
+
}, el = (e) => {
|
|
2922
2941
|
const t = e.ownerDocument.getSelection();
|
|
2923
|
-
if (!t || t.rangeCount === 0 || !
|
|
2942
|
+
if (!t || t.rangeCount === 0 || !Qi(t, e))
|
|
2924
2943
|
return null;
|
|
2925
2944
|
const n = t.getRangeAt(0).cloneContents();
|
|
2926
|
-
|
|
2945
|
+
Zi(n);
|
|
2927
2946
|
const r = e.ownerDocument.createElement("div");
|
|
2928
2947
|
return r.append(n), {
|
|
2929
2948
|
html: r.innerHTML,
|
|
2930
2949
|
text: r.textContent ?? ""
|
|
2931
2950
|
};
|
|
2932
|
-
},
|
|
2951
|
+
}, tl = ({
|
|
2933
2952
|
target: e,
|
|
2934
2953
|
isReadonly: t
|
|
2935
2954
|
}) => {
|
|
2936
2955
|
const n = (o) => {
|
|
2937
|
-
const a =
|
|
2956
|
+
const a = el(e);
|
|
2938
2957
|
!a || !o.clipboardData || (o.clipboardData.setData("text/html", a.html), o.clipboardData.setData("text/plain", a.text), o.preventDefault(), o.stopImmediatePropagation());
|
|
2939
2958
|
}, r = (o) => {
|
|
2940
2959
|
if (t()) {
|
|
@@ -2946,7 +2965,7 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2946
2965
|
return e.addEventListener("copy", n, { capture: !0 }), e.addEventListener("cut", r, { capture: !0 }), () => {
|
|
2947
2966
|
e.removeEventListener("copy", n, { capture: !0 }), e.removeEventListener("cut", r, { capture: !0 });
|
|
2948
2967
|
};
|
|
2949
|
-
},
|
|
2968
|
+
}, Me = 8, nl = () => {
|
|
2950
2969
|
const e = window.visualViewport;
|
|
2951
2970
|
return {
|
|
2952
2971
|
left: (e == null ? void 0 : e.offsetLeft) ?? 0,
|
|
@@ -2954,24 +2973,24 @@ const yi = () => (Wt += 1, `${bi}-${Wt}`), Ee = (e) => e.panel.id === "table-ins
|
|
|
2954
2973
|
width: (e == null ? void 0 : e.width) ?? window.innerWidth,
|
|
2955
2974
|
height: (e == null ? void 0 : e.height) ?? window.innerHeight
|
|
2956
2975
|
};
|
|
2957
|
-
},
|
|
2958
|
-
function
|
|
2976
|
+
}, Ut = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n));
|
|
2977
|
+
function Jn(e, t, n = {}) {
|
|
2959
2978
|
const r = n.placement ?? "bottom-start", o = n.offset ?? 8, a = n.shiftPadding ?? 8, s = n.strategy ?? "absolute";
|
|
2960
2979
|
let l = null, d = !1;
|
|
2961
2980
|
const i = () => {
|
|
2962
2981
|
t.style.position = s, t.style.left = "0px", t.style.top = "0px", t.style.opacity = "0", t.style.pointerEvents = "none";
|
|
2963
2982
|
}, g = (f, y) => {
|
|
2964
|
-
const x =
|
|
2965
|
-
t.style.left = `${
|
|
2983
|
+
const x = nl(), u = t.getBoundingClientRect(), p = x.left + Me, E = x.top + Me, _ = x.left + x.width - u.width - Me, B = x.top + x.height - u.height - Me;
|
|
2984
|
+
t.style.left = `${Ut(f, p, _)}px`, t.style.top = `${Ut(y, E, B)}px`, t.style.opacity = "", t.style.pointerEvents = "";
|
|
2966
2985
|
}, v = async () => {
|
|
2967
|
-
const f = await
|
|
2986
|
+
const f = await vn(e, t, {
|
|
2968
2987
|
placement: r,
|
|
2969
2988
|
strategy: s,
|
|
2970
|
-
platform:
|
|
2989
|
+
platform: wn,
|
|
2971
2990
|
middleware: [
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2991
|
+
Cn(o),
|
|
2992
|
+
_n(),
|
|
2993
|
+
kn({ padding: a })
|
|
2975
2994
|
]
|
|
2976
2995
|
});
|
|
2977
2996
|
g(f.x, f.y);
|
|
@@ -2980,7 +2999,7 @@ function Gn(e, t, n = {}) {
|
|
|
2980
2999
|
}, T = (f) => {
|
|
2981
3000
|
if (d !== f) {
|
|
2982
3001
|
if (d = f, b(), d) {
|
|
2983
|
-
i(), t.hidden = !1, l =
|
|
3002
|
+
i(), t.hidden = !1, l = xo(e, t, v), v();
|
|
2984
3003
|
return;
|
|
2985
3004
|
}
|
|
2986
3005
|
t.hidden = !0, t.style.opacity = "", t.style.pointerEvents = "";
|
|
@@ -2994,7 +3013,7 @@ function Gn(e, t, n = {}) {
|
|
|
2994
3013
|
}
|
|
2995
3014
|
};
|
|
2996
3015
|
}
|
|
2997
|
-
const
|
|
3016
|
+
const Qn = {
|
|
2998
3017
|
// 居中对齐菜单使用,和 align 命令的 center value 对应。
|
|
2999
3018
|
"align-center": '<svg aria-hidden="true" class="lucide lucide-align-center" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M17 12H7" /> <path d="M19 19H5" /> </svg>',
|
|
3000
3019
|
// 两端对齐菜单使用,保留段落排版语义,不和普通居中/左右对齐混用。
|
|
@@ -3087,19 +3106,19 @@ const Xn = {
|
|
|
3087
3106
|
"upload-video": '<svg aria-hidden="true" class="lucide lucide-film" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M7 3v18" /> <path d="M3 7.5h4" /> <path d="M3 12h18" /> <path d="M3 16.5h4" /> <path d="M17 3v18" /> <path d="M17 7.5h4" /> <path d="M17 16.5h4" /> </svg>',
|
|
3088
3107
|
// 行高菜单使用,表示 format.lineHeight。
|
|
3089
3108
|
"wrap-text": '<svg aria-hidden="true" class="lucide lucide-wrap-text" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m16 16-3 3 3 3" /> <path d="M3 12h14.5a1 1 0 0 1 0 7H13" /> <path d="M3 19h6" /> <path d="M3 5h18" /> </svg>'
|
|
3090
|
-
},
|
|
3109
|
+
}, rl = (e) => {
|
|
3091
3110
|
const t = document.createElement("span");
|
|
3092
3111
|
return t.className = "bridgerte__menu-icon-text", t.textContent = e, t;
|
|
3093
|
-
},
|
|
3112
|
+
}, Zn = (e, t, n) => {
|
|
3094
3113
|
if (t) {
|
|
3095
3114
|
e.innerHTML = t;
|
|
3096
3115
|
return;
|
|
3097
3116
|
}
|
|
3098
|
-
e.append(
|
|
3099
|
-
},
|
|
3117
|
+
e.append(rl(n));
|
|
3118
|
+
}, et = () => {
|
|
3100
3119
|
const e = window.getSelection(), t = e != null && e.rangeCount ? e.getRangeAt(0) : null, n = t == null ? void 0 : t.getBoundingClientRect();
|
|
3101
3120
|
return !n || n.width === 0 && n.height === 0 ? null : n;
|
|
3102
|
-
},
|
|
3121
|
+
}, ol = 160, al = {
|
|
3103
3122
|
toolbarKeys: [
|
|
3104
3123
|
"bold",
|
|
3105
3124
|
"italic",
|
|
@@ -3114,16 +3133,16 @@ const Xn = {
|
|
|
3114
3133
|
"font-family",
|
|
3115
3134
|
"line-height"
|
|
3116
3135
|
]
|
|
3117
|
-
},
|
|
3136
|
+
}, sl = () => {
|
|
3118
3137
|
const e = D();
|
|
3119
|
-
return
|
|
3120
|
-
},
|
|
3138
|
+
return O(e) && !e.isCollapsed();
|
|
3139
|
+
}, jt = (e, t) => e.target instanceof Node && t.contains(e.target), Kt = (e) => e instanceof Element ? e.closest(".bridgerte__hoverbar-button") : null, il = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), ll = (e) => {
|
|
3121
3140
|
const t = document.createElement("span");
|
|
3122
3141
|
return t.className = "bridgerte__hoverbar-separator", t.dataset.separatorId = e.key, t.setAttribute("aria-hidden", "true"), t;
|
|
3123
|
-
},
|
|
3124
|
-
const r =
|
|
3125
|
-
return o.type = "button", o.className = "bridgerte__hoverbar-button", o.dataset.hoverbarItemId = e.id, o.dataset.active = String(r.active), o.disabled = r.disabled, o.setAttribute("aria-label", e.label), o.setAttribute("aria-pressed", String(r.active)),
|
|
3126
|
-
},
|
|
3142
|
+
}, cl = (e, t, n) => {
|
|
3143
|
+
const r = $s(e, t), o = document.createElement("button");
|
|
3144
|
+
return o.type = "button", o.className = "bridgerte__hoverbar-button", o.dataset.hoverbarItemId = e.id, o.dataset.active = String(r.active), o.disabled = r.disabled, o.setAttribute("aria-label", e.label), o.setAttribute("aria-pressed", String(r.active)), Zn(o, n[e.icon] ?? Qn[e.icon], e.label), o;
|
|
3145
|
+
}, dl = ({
|
|
3127
3146
|
editorRoot: e,
|
|
3128
3147
|
contentElement: t,
|
|
3129
3148
|
editor: n,
|
|
@@ -3137,56 +3156,56 @@ const Xn = {
|
|
|
3137
3156
|
payloadPanelConfig: g,
|
|
3138
3157
|
icons: v = {}
|
|
3139
3158
|
}) => {
|
|
3140
|
-
const b =
|
|
3159
|
+
const b = dt(l ?? De, {
|
|
3141
3160
|
menuLabels: i,
|
|
3142
3161
|
payloadPanelConfig: g
|
|
3143
|
-
}), T =
|
|
3162
|
+
}), T = ot(d ?? al, b), f = il(T), y = document.createElement("span"), x = document.createElement("div");
|
|
3144
3163
|
let u = null, p = !1, E = null;
|
|
3145
3164
|
const _ = U(x, {
|
|
3146
3165
|
targetSelector: ".bridgerte__hoverbar-button"
|
|
3147
3166
|
});
|
|
3148
|
-
y.className = "bridgerte__hoverbar-anchor", y.setAttribute("aria-hidden", "true"), x.className = "bridgerte__floating-menu bridgerte__hoverbar", x.setAttribute("role", "toolbar"), x.setAttribute("aria-label", "BridgeRTE hoverbar"), e.append(y, x), u =
|
|
3167
|
+
y.className = "bridgerte__hoverbar-anchor", y.setAttribute("aria-hidden", "true"), x.className = "bridgerte__floating-menu bridgerte__hoverbar", x.setAttribute("role", "toolbar"), x.setAttribute("aria-label", "BridgeRTE hoverbar"), e.append(y, x), u = Jn(y, x, {
|
|
3149
3168
|
placement: "top",
|
|
3150
3169
|
offset: 8,
|
|
3151
3170
|
strategy: "fixed"
|
|
3152
3171
|
});
|
|
3153
|
-
const
|
|
3172
|
+
const B = () => {
|
|
3154
3173
|
E && (window.clearTimeout(E), E = null);
|
|
3155
|
-
},
|
|
3156
|
-
|
|
3174
|
+
}, H = () => {
|
|
3175
|
+
B(), p = !1, x.replaceChildren(), x.dataset.visible = "false", u == null || u.setOpen(!1);
|
|
3157
3176
|
}, I = () => {
|
|
3158
|
-
const S =
|
|
3177
|
+
const S = et(), k = t.getBoundingClientRect();
|
|
3159
3178
|
y.style.left = `${(S == null ? void 0 : S.left) ?? k.left}px`, y.style.top = `${(S == null ? void 0 : S.top) ?? k.top}px`, y.style.width = `${(S == null ? void 0 : S.width) || 1}px`, y.style.height = `${(S == null ? void 0 : S.height) || 1}px`;
|
|
3160
3179
|
}, w = () => {
|
|
3161
3180
|
const S = s();
|
|
3162
|
-
x.replaceChildren(...T.flatMap((k) => k.type === "separator" ? [
|
|
3163
|
-
}, c = () => r() ? !1 : n.getEditorState().read(
|
|
3164
|
-
if (
|
|
3165
|
-
|
|
3181
|
+
x.replaceChildren(...T.flatMap((k) => k.type === "separator" ? [ll(k)] : (k.type === "button" ? [k.item] : k.items).map(($) => cl($, S, v)))), I(), p = !0, x.dataset.visible = "true", u == null || u.setOpen(!0), u == null || u.update();
|
|
3182
|
+
}, c = () => r() ? !1 : n.getEditorState().read(sl), h = (S = !1) => {
|
|
3183
|
+
if (B(), !c()) {
|
|
3184
|
+
H();
|
|
3166
3185
|
return;
|
|
3167
3186
|
}
|
|
3168
3187
|
if (S) {
|
|
3169
3188
|
w();
|
|
3170
3189
|
return;
|
|
3171
3190
|
}
|
|
3172
|
-
p &&
|
|
3191
|
+
p && H(), E = window.setTimeout(() => {
|
|
3173
3192
|
E = null, c() && w();
|
|
3174
|
-
},
|
|
3193
|
+
}, ol);
|
|
3175
3194
|
}, m = (S) => {
|
|
3176
|
-
const k = f.find((
|
|
3195
|
+
const k = f.find((A) => A.id === S.dataset.hoverbarItemId);
|
|
3177
3196
|
if (!(!k || S.disabled)) {
|
|
3178
3197
|
if (k.payloadPanel) {
|
|
3179
|
-
const
|
|
3198
|
+
const A = S.getBoundingClientRect();
|
|
3180
3199
|
a({
|
|
3181
3200
|
menuId: k.id,
|
|
3182
3201
|
command: k.command,
|
|
3183
3202
|
panel: k.payloadPanel,
|
|
3184
|
-
currentValues:
|
|
3203
|
+
currentValues: Os(k, s()),
|
|
3185
3204
|
anchorRect: {
|
|
3186
|
-
x:
|
|
3187
|
-
y:
|
|
3188
|
-
width:
|
|
3189
|
-
height:
|
|
3205
|
+
x: A.left,
|
|
3206
|
+
y: A.top,
|
|
3207
|
+
width: A.width,
|
|
3208
|
+
height: A.height
|
|
3190
3209
|
}
|
|
3191
3210
|
}), h(!0);
|
|
3192
3211
|
return;
|
|
@@ -3194,38 +3213,38 @@ const Xn = {
|
|
|
3194
3213
|
o(k.command), h(!0);
|
|
3195
3214
|
}
|
|
3196
3215
|
}, C = (S) => {
|
|
3197
|
-
|
|
3216
|
+
Kt(S.target) && S.preventDefault();
|
|
3198
3217
|
}, P = (S) => {
|
|
3199
|
-
const k =
|
|
3218
|
+
const k = Kt(S.target);
|
|
3200
3219
|
k && (S.preventDefault(), m(k));
|
|
3201
3220
|
}, M = (S) => {
|
|
3202
|
-
!p ||
|
|
3221
|
+
!p || jt(S, x) || jt(S, t) || H();
|
|
3203
3222
|
}, L = n.registerCommand(
|
|
3204
|
-
|
|
3223
|
+
ln,
|
|
3205
3224
|
() => (h(), !1),
|
|
3206
3225
|
j
|
|
3207
3226
|
), N = n.registerUpdateListener(() => {
|
|
3208
3227
|
h();
|
|
3209
3228
|
}), R = n.registerCommand(
|
|
3210
|
-
|
|
3211
|
-
(S) => p ? (S == null || S.preventDefault(),
|
|
3229
|
+
cn,
|
|
3230
|
+
(S) => p ? (S == null || S.preventDefault(), H(), !0) : !1,
|
|
3212
3231
|
j
|
|
3213
3232
|
);
|
|
3214
3233
|
return x.addEventListener("pointerdown", C), x.addEventListener("click", P), document.addEventListener("pointerdown", M, !0), () => {
|
|
3215
|
-
|
|
3234
|
+
B(), L(), N(), R(), x.removeEventListener("pointerdown", C), x.removeEventListener("click", P), document.removeEventListener("pointerdown", M, !0), _(), u == null || u.destroy(), y.remove(), x.remove();
|
|
3216
3235
|
};
|
|
3217
|
-
},
|
|
3236
|
+
}, ul = (e) => e.metaKey || e.ctrlKey, ml = {
|
|
3218
3237
|
b: { type: "format.bold" },
|
|
3219
3238
|
i: { type: "format.italic" },
|
|
3220
3239
|
u: { type: "format.underline" },
|
|
3221
3240
|
"\\": { type: "format.clear" }
|
|
3222
|
-
},
|
|
3241
|
+
}, gl = {
|
|
3223
3242
|
x: { type: "format.strike" },
|
|
3224
3243
|
l: { type: "align", value: "left" },
|
|
3225
3244
|
e: { type: "align", value: "center" },
|
|
3226
3245
|
r: { type: "align", value: "right" },
|
|
3227
3246
|
j: { type: "align", value: "justify" }
|
|
3228
|
-
},
|
|
3247
|
+
}, hl = {
|
|
3229
3248
|
0: { type: "block.paragraph" },
|
|
3230
3249
|
1: { type: "block.heading", level: 1 },
|
|
3231
3250
|
2: { type: "block.heading", level: 2 },
|
|
@@ -3233,45 +3252,45 @@ const Xn = {
|
|
|
3233
3252
|
4: { type: "block.heading", level: 4 },
|
|
3234
3253
|
5: { type: "block.heading", level: 5 },
|
|
3235
3254
|
6: { type: "block.heading", level: 6 }
|
|
3236
|
-
},
|
|
3255
|
+
}, pl = (e) => {
|
|
3237
3256
|
const t = e.key.toLowerCase(), n = e.code;
|
|
3238
|
-
if (!e.metaKey && !e.ctrlKey && !e.altKey && !e.shiftKey || !
|
|
3257
|
+
if (!e.metaKey && !e.ctrlKey && !e.altKey && !e.shiftKey || !ul(e)) return null;
|
|
3239
3258
|
if (e.altKey) {
|
|
3240
3259
|
if (e.shiftKey) return null;
|
|
3241
3260
|
if (t === "c" || n === "KeyC") return { type: "block.code" };
|
|
3242
3261
|
const r = n.startsWith("Digit") ? n.slice(5) : t;
|
|
3243
|
-
return
|
|
3262
|
+
return hl[r] ?? null;
|
|
3244
3263
|
}
|
|
3245
|
-
return e.shiftKey ? t === "z" ? { type: "history.redo" } : t === "." || t === ">" || n === "Period" ? { type: "block.quote" } : t === "7" || t === "&" || n === "Digit7" ? { type: "list.ordered" } : t === "8" || t === "*" || n === "Digit8" ? { type: "list.unordered" } : t === "9" || t === "(" || n === "Digit9" ? { type: "list.todo" } : t === "-" || t === "_" || n === "Minus" ? { type: "block.divider" } :
|
|
3246
|
-
},
|
|
3264
|
+
return e.shiftKey ? t === "z" ? { type: "history.redo" } : t === "." || t === ">" || n === "Period" ? { type: "block.quote" } : t === "7" || t === "&" || n === "Digit7" ? { type: "list.ordered" } : t === "8" || t === "*" || n === "Digit8" ? { type: "list.unordered" } : t === "9" || t === "(" || n === "Digit9" ? { type: "list.todo" } : t === "-" || t === "_" || n === "Minus" ? { type: "block.divider" } : gl[t] ?? null : t === "z" ? { type: "history.undo" } : t === "y" && e.ctrlKey && !e.metaKey ? { type: "history.redo" } : t === "`" || t === "~" || n === "Backquote" ? { type: "format.inlineCode" } : ml[t] ?? null;
|
|
3265
|
+
}, fl = ({
|
|
3247
3266
|
target: e,
|
|
3248
3267
|
isReadonly: t,
|
|
3249
3268
|
executeCommand: n
|
|
3250
3269
|
}) => {
|
|
3251
3270
|
const r = (o) => {
|
|
3252
3271
|
if (t()) return;
|
|
3253
|
-
const a =
|
|
3272
|
+
const a = pl(o);
|
|
3254
3273
|
a && (o.preventDefault(), n(a));
|
|
3255
3274
|
};
|
|
3256
3275
|
return e.addEventListener("keydown", r), () => {
|
|
3257
3276
|
e.removeEventListener("keydown", r);
|
|
3258
3277
|
};
|
|
3259
|
-
},
|
|
3278
|
+
}, bl = (e, t) => {
|
|
3260
3279
|
const n = t.offsetTop, r = n + t.offsetHeight, o = e.scrollTop, a = o + e.clientHeight;
|
|
3261
3280
|
if (n < o) {
|
|
3262
3281
|
e.scrollTop = n;
|
|
3263
3282
|
return;
|
|
3264
3283
|
}
|
|
3265
3284
|
r > a && (e.scrollTop = r - e.clientHeight);
|
|
3266
|
-
},
|
|
3285
|
+
}, ut = (e, t) => {
|
|
3267
3286
|
var n;
|
|
3268
3287
|
if (e instanceof Text && t <= (((n = e.textContent) == null ? void 0 : n.length) ?? 0)) return e;
|
|
3269
3288
|
for (const r of Array.from((e == null ? void 0 : e.childNodes) ?? [])) {
|
|
3270
|
-
const o =
|
|
3289
|
+
const o = ut(r, t);
|
|
3271
3290
|
if (o) return o;
|
|
3272
3291
|
}
|
|
3273
3292
|
return null;
|
|
3274
|
-
},
|
|
3293
|
+
}, er = ({
|
|
3275
3294
|
editorRoot: e,
|
|
3276
3295
|
contentElement: t,
|
|
3277
3296
|
editor: n,
|
|
@@ -3290,42 +3309,42 @@ const Xn = {
|
|
|
3290
3309
|
let f = null, y = 0;
|
|
3291
3310
|
const x = U(o, {
|
|
3292
3311
|
targetSelector: s
|
|
3293
|
-
}), u =
|
|
3312
|
+
}), u = Jn(a, o, {
|
|
3294
3313
|
placement: "bottom-start",
|
|
3295
3314
|
offset: 2,
|
|
3296
3315
|
strategy: "fixed"
|
|
3297
3316
|
});
|
|
3298
3317
|
e.append(a, o);
|
|
3299
3318
|
const p = () => {
|
|
3300
|
-
const k = f ? d(f.trigger) ??
|
|
3301
|
-
return k ??
|
|
3319
|
+
const k = f ? d(f.trigger) ?? et() : et(), A = t.getBoundingClientRect();
|
|
3320
|
+
return k ?? A;
|
|
3302
3321
|
}, E = () => {
|
|
3303
3322
|
const k = p();
|
|
3304
3323
|
a.style.left = `${k.left}px`, a.style.top = `${k.top}px`, a.style.height = `${k.height || 1}px`;
|
|
3305
3324
|
}, _ = (k = !0) => {
|
|
3306
3325
|
f = null, o.dataset.visible = "false", k && o.replaceChildren(), u.setOpen(!1);
|
|
3307
|
-
},
|
|
3326
|
+
}, B = () => {
|
|
3308
3327
|
const k = o.querySelector(`${s}[data-active="true"]`);
|
|
3309
|
-
k &&
|
|
3310
|
-
},
|
|
3311
|
-
!f || f.requestId !==
|
|
3328
|
+
k && bl(o, k);
|
|
3329
|
+
}, H = (k, A) => {
|
|
3330
|
+
!f || f.requestId !== A.requestId || (_(), T(k, A.trigger));
|
|
3312
3331
|
}, I = () => {
|
|
3313
3332
|
if (!f) {
|
|
3314
3333
|
_();
|
|
3315
3334
|
return;
|
|
3316
3335
|
}
|
|
3317
|
-
const k = f,
|
|
3336
|
+
const k = f, A = p();
|
|
3318
3337
|
if ((b == null ? void 0 : b(k, {
|
|
3319
|
-
anchorRect:
|
|
3338
|
+
anchorRect: A,
|
|
3320
3339
|
close: _,
|
|
3321
|
-
selectItem: (re) =>
|
|
3340
|
+
selectItem: (re) => H(re, k)
|
|
3322
3341
|
})) === !0) {
|
|
3323
3342
|
o.replaceChildren(), o.dataset.visible = "false", u.setOpen(!1);
|
|
3324
3343
|
return;
|
|
3325
3344
|
}
|
|
3326
3345
|
if (k.status === "success")
|
|
3327
3346
|
o.replaceChildren(
|
|
3328
|
-
...k.items.map((re,
|
|
3347
|
+
...k.items.map((re, pt) => g(re, pt, pt === k.activeIndex))
|
|
3329
3348
|
);
|
|
3330
3349
|
else {
|
|
3331
3350
|
const re = v == null ? void 0 : v(
|
|
@@ -3336,13 +3355,13 @@ const Xn = {
|
|
|
3336
3355
|
o.replaceChildren(...re ? [re] : []);
|
|
3337
3356
|
}
|
|
3338
3357
|
const J = o.children.length > 0;
|
|
3339
|
-
o.dataset.visible = String(J), E(), u.setOpen(J),
|
|
3340
|
-
}, w = async (k,
|
|
3358
|
+
o.dataset.visible = String(J), E(), u.setOpen(J), B(), u.update();
|
|
3359
|
+
}, w = async (k, A) => {
|
|
3341
3360
|
let $;
|
|
3342
3361
|
try {
|
|
3343
3362
|
$ = await Promise.resolve(i(k));
|
|
3344
3363
|
} catch (J) {
|
|
3345
|
-
(f == null ? void 0 : f.requestId) ===
|
|
3364
|
+
(f == null ? void 0 : f.requestId) === A && (f = {
|
|
3346
3365
|
...f,
|
|
3347
3366
|
items: [],
|
|
3348
3367
|
activeIndex: 0,
|
|
@@ -3351,7 +3370,7 @@ const Xn = {
|
|
|
3351
3370
|
}, I());
|
|
3352
3371
|
return;
|
|
3353
3372
|
}
|
|
3354
|
-
!f ||
|
|
3373
|
+
!f || A !== f.requestId || (f = {
|
|
3355
3374
|
...f,
|
|
3356
3375
|
items: $,
|
|
3357
3376
|
activeIndex: Math.min(f.activeIndex, Math.max($.length - 1, 0)),
|
|
@@ -3378,33 +3397,33 @@ const Xn = {
|
|
|
3378
3397
|
}, I(), w(k.query, y);
|
|
3379
3398
|
}, h = () => {
|
|
3380
3399
|
if (!f || f.status !== "success") return !1;
|
|
3381
|
-
const k = f.items[f.activeIndex],
|
|
3382
|
-
return k ? (_(), T(k,
|
|
3400
|
+
const k = f.items[f.activeIndex], A = f.trigger;
|
|
3401
|
+
return k ? (_(), T(k, A), !0) : !1;
|
|
3383
3402
|
}, m = (k) => !f || f.status !== "success" || f.items.length === 0 ? !1 : (f = {
|
|
3384
3403
|
...f,
|
|
3385
3404
|
activeIndex: (f.activeIndex + k + f.items.length) % f.items.length
|
|
3386
3405
|
}, I(), !0), C = (k) => {
|
|
3387
|
-
const
|
|
3406
|
+
const A = k.target, $ = A instanceof HTMLElement ? A.closest(s) : null, J = $ != null && $.dataset.index ? Number.parseInt($.dataset.index, 10) : Number.NaN;
|
|
3388
3407
|
!f || f.status !== "success" || Number.isNaN(J) || (f = { ...f, activeIndex: J }, k.preventDefault(), h());
|
|
3389
3408
|
}, P = (k) => {
|
|
3390
|
-
const
|
|
3391
|
-
|
|
3409
|
+
const A = k.target;
|
|
3410
|
+
A instanceof HTMLElement && A.closest(s) && k.preventDefault();
|
|
3392
3411
|
}, M = n.registerUpdateListener(() => {
|
|
3393
3412
|
c();
|
|
3394
3413
|
}), L = n.registerCommand(
|
|
3395
|
-
|
|
3414
|
+
Er,
|
|
3396
3415
|
(k) => m(1) ? (k == null || k.preventDefault(), !0) : !1,
|
|
3397
3416
|
j
|
|
3398
3417
|
), N = n.registerCommand(
|
|
3399
|
-
|
|
3418
|
+
xr,
|
|
3400
3419
|
(k) => m(-1) ? (k == null || k.preventDefault(), !0) : !1,
|
|
3401
3420
|
j
|
|
3402
3421
|
), R = n.registerCommand(
|
|
3403
|
-
|
|
3422
|
+
Mr,
|
|
3404
3423
|
(k) => h() ? (k == null || k.preventDefault(), !0) : !1,
|
|
3405
3424
|
j
|
|
3406
3425
|
), S = n.registerCommand(
|
|
3407
|
-
|
|
3426
|
+
cn,
|
|
3408
3427
|
(k) => f ? (k == null || k.preventDefault(), _(), !0) : !1,
|
|
3409
3428
|
j
|
|
3410
3429
|
);
|
|
@@ -3414,7 +3433,7 @@ const Xn = {
|
|
|
3414
3433
|
M(), L(), N(), R(), S(), o.removeEventListener("click", C), o.removeEventListener("pointerdown", P), x(), u.destroy(), a.remove(), o.remove();
|
|
3415
3434
|
}
|
|
3416
3435
|
};
|
|
3417
|
-
},
|
|
3436
|
+
}, yl = {
|
|
3418
3437
|
labelField: "label",
|
|
3419
3438
|
descriptionField: "description",
|
|
3420
3439
|
avatarField: "avatar",
|
|
@@ -3425,87 +3444,87 @@ const Xn = {
|
|
|
3425
3444
|
loadingText: "加载中",
|
|
3426
3445
|
emptyText: "没有匹配的提及",
|
|
3427
3446
|
errorText: "提及加载失败"
|
|
3428
|
-
},
|
|
3429
|
-
...
|
|
3447
|
+
}, vl = (e) => ({
|
|
3448
|
+
...yl,
|
|
3430
3449
|
...e
|
|
3431
|
-
}),
|
|
3450
|
+
}), wl = (e, t) => {
|
|
3432
3451
|
var o;
|
|
3433
3452
|
const n = t.slice(5), r = (o = e.data) == null ? void 0 : o[n];
|
|
3434
3453
|
return typeof r == "string" && r ? r : void 0;
|
|
3435
|
-
},
|
|
3436
|
-
if (t.startsWith("data.")) return
|
|
3454
|
+
}, Te = (e, t) => {
|
|
3455
|
+
if (t.startsWith("data.")) return wl(e, t);
|
|
3437
3456
|
const n = t === "id" ? e.id : t === "label" ? e.label : t === "value" ? e.value : t === "avatar" ? e.avatar : e.description;
|
|
3438
3457
|
return typeof n == "string" && n ? n : void 0;
|
|
3439
|
-
},
|
|
3440
|
-
const n =
|
|
3458
|
+
}, Cl = (e) => e.startsWith("@") ? e : `@${e}`, tr = (e, t) => {
|
|
3459
|
+
const n = Te(e, t.labelField) ?? e.label ?? e.value ?? e.id, r = t.showDescription ? Te(e, t.descriptionField) ?? e.description : void 0, o = t.showAvatar ? Te(e, t.avatarField) ?? e.avatar : void 0, a = t.showIcon && !o ? Te(e, t.iconField) : void 0;
|
|
3441
3460
|
return {
|
|
3442
3461
|
item: e,
|
|
3443
|
-
label:
|
|
3462
|
+
label: Cl(n),
|
|
3444
3463
|
...r ? { description: r } : {},
|
|
3445
3464
|
...o ? { avatar: o } : {},
|
|
3446
3465
|
...a ? { icon: a } : {}
|
|
3447
3466
|
};
|
|
3448
|
-
},
|
|
3467
|
+
}, _l = (e, t) => e.map((n) => tr(n, t)), tt = (e) => e instanceof Y && e.getTextContent().startsWith(" "), kl = (e) => {
|
|
3449
3468
|
const n = e.getTextContent().slice(1);
|
|
3450
3469
|
if (!n) {
|
|
3451
3470
|
e.remove();
|
|
3452
3471
|
return;
|
|
3453
3472
|
}
|
|
3454
3473
|
e.setTextContent(n);
|
|
3455
|
-
},
|
|
3456
|
-
const n = e.getPreviousSibling(), r = e.getNextSibling(), o =
|
|
3457
|
-
if (
|
|
3474
|
+
}, El = (e, t) => {
|
|
3475
|
+
const n = e.getPreviousSibling(), r = e.getNextSibling(), o = tt(r) ? r.getNextSibling() : r;
|
|
3476
|
+
if (tt(r) && kl(r), e.remove(), t) {
|
|
3458
3477
|
n == null || n.selectEnd();
|
|
3459
3478
|
return;
|
|
3460
3479
|
}
|
|
3461
3480
|
o == null || o.selectStart();
|
|
3462
|
-
},
|
|
3481
|
+
}, xl = (e) => {
|
|
3463
3482
|
const t = D();
|
|
3464
|
-
if (!
|
|
3483
|
+
if (!O(t) || !t.isCollapsed()) return null;
|
|
3465
3484
|
const n = t.anchor, r = n.getNode();
|
|
3466
|
-
if (
|
|
3485
|
+
if (Lt(r)) return r;
|
|
3467
3486
|
if (!(r instanceof Y)) return null;
|
|
3468
|
-
const o = r.getTextContentSize(), a = r.getPreviousSibling(), s = r.getNextSibling(), l =
|
|
3469
|
-
return
|
|
3470
|
-
},
|
|
3487
|
+
const o = r.getTextContentSize(), a = r.getPreviousSibling(), s = r.getNextSibling(), l = tt(r) && n.offset === 1, d = e ? n.offset === 0 || l ? a : null : n.offset === o ? s : null;
|
|
3488
|
+
return Lt(d) ? d : null;
|
|
3489
|
+
}, Ml = (e, t, n) => {
|
|
3471
3490
|
const r = (a) => {
|
|
3472
3491
|
if (t()) return !1;
|
|
3473
|
-
const s =
|
|
3474
|
-
return s ? (
|
|
3492
|
+
const s = xl(a);
|
|
3493
|
+
return s ? (El(s, a), n(), !0) : !1;
|
|
3475
3494
|
}, o = (a, s) => {
|
|
3476
3495
|
const l = r(s);
|
|
3477
3496
|
return l && a.preventDefault(), l;
|
|
3478
3497
|
};
|
|
3479
3498
|
return [
|
|
3480
3499
|
e.registerCommand(
|
|
3481
|
-
|
|
3500
|
+
on,
|
|
3482
3501
|
(a) => o(a, !0),
|
|
3483
3502
|
G
|
|
3484
3503
|
),
|
|
3485
3504
|
e.registerCommand(
|
|
3486
|
-
|
|
3505
|
+
an,
|
|
3487
3506
|
(a) => o(a, !1),
|
|
3488
3507
|
G
|
|
3489
3508
|
),
|
|
3490
3509
|
e.registerCommand(
|
|
3491
|
-
|
|
3510
|
+
sn,
|
|
3492
3511
|
(a) => r(a),
|
|
3493
3512
|
G
|
|
3494
3513
|
)
|
|
3495
3514
|
];
|
|
3496
|
-
},
|
|
3515
|
+
}, Tl = /(?:^|\s)@([\p{L}\p{N}_-]*)$/u, qt = [
|
|
3497
3516
|
{ id: "bridgerte-team", label: "BridgeRTE Team", value: "bridgerte-team" },
|
|
3498
3517
|
{ id: "frontend", label: "Frontend", value: "frontend" },
|
|
3499
3518
|
{ id: "designer", label: "Designer", value: "designer" }
|
|
3500
|
-
],
|
|
3501
|
-
const t =
|
|
3502
|
-
return t ?
|
|
3503
|
-
},
|
|
3519
|
+
], Ll = (e) => e.trim().toLowerCase(), Sl = (e) => [e.label, e.value, e.description].filter(Boolean).join(" ").toLowerCase(), Nl = (e) => {
|
|
3520
|
+
const t = Ll(e);
|
|
3521
|
+
return t ? qt.filter((n) => Sl(n).includes(t)) : qt;
|
|
3522
|
+
}, Pl = () => {
|
|
3504
3523
|
const e = D();
|
|
3505
|
-
if (!
|
|
3524
|
+
if (!O(e) || !e.isCollapsed()) return null;
|
|
3506
3525
|
const t = e.anchor, n = t.getNode();
|
|
3507
3526
|
if (!(n instanceof Y)) return null;
|
|
3508
|
-
const o = n.getTextContent().slice(0, t.offset).match(
|
|
3527
|
+
const o = n.getTextContent().slice(0, t.offset).match(Tl);
|
|
3509
3528
|
if (!o) return null;
|
|
3510
3529
|
const a = o[1] ?? "", s = o[0] ?? "", l = s.startsWith("@") ? 0 : 1, d = t.offset - s.length + l;
|
|
3511
3530
|
return {
|
|
@@ -3514,19 +3533,19 @@ const Xn = {
|
|
|
3514
3533
|
startOffset: d,
|
|
3515
3534
|
endOffset: t.offset
|
|
3516
3535
|
};
|
|
3517
|
-
},
|
|
3536
|
+
}, Il = () => {
|
|
3518
3537
|
const e = document.createElement("div");
|
|
3519
3538
|
return e.className = "bridgerte__floating-menu bridgerte__mention-menu", e.dataset.visible = "false", e;
|
|
3520
|
-
},
|
|
3539
|
+
}, Rl = () => {
|
|
3521
3540
|
const e = document.createElement("span");
|
|
3522
3541
|
return e.className = "bridgerte__mention-anchor", e.setAttribute("aria-hidden", "true"), e;
|
|
3523
|
-
},
|
|
3542
|
+
}, Al = (e, t) => {
|
|
3524
3543
|
var s;
|
|
3525
|
-
const n = e.getElementByKey(t.nodeKey), r =
|
|
3544
|
+
const n = e.getElementByKey(t.nodeKey), r = ut(n, t.startOffset + 1);
|
|
3526
3545
|
if (!(r instanceof Text)) return null;
|
|
3527
3546
|
const o = document.createRange(), a = Math.min(t.startOffset + 1, ((s = r.textContent) == null ? void 0 : s.length) ?? 0);
|
|
3528
3547
|
return a <= t.startOffset ? null : (o.setStart(r, t.startOffset), o.setEnd(r, a), o.getBoundingClientRect());
|
|
3529
|
-
},
|
|
3548
|
+
}, Bl = (e, t, n) => {
|
|
3530
3549
|
const r = document.createElement("button"), o = document.createElement("span");
|
|
3531
3550
|
if (r.type = "button", r.className = "bridgerte__menu-item bridgerte__mention-item", r.dataset.mentionId = e.item.id, r.dataset.index = String(t), r.dataset.active = String(n), e.avatar) {
|
|
3532
3551
|
const a = document.createElement("img");
|
|
@@ -3540,10 +3559,10 @@ const Xn = {
|
|
|
3540
3559
|
a.className = "bridgerte__mention-item-description", a.textContent = e.description, r.append(a);
|
|
3541
3560
|
}
|
|
3542
3561
|
return r;
|
|
3543
|
-
},
|
|
3562
|
+
}, Dl = (e, t) => {
|
|
3544
3563
|
const n = document.createElement("div");
|
|
3545
3564
|
return n.className = "bridgerte__mention-status", n.dataset.status = e, n.textContent = t, n;
|
|
3546
|
-
},
|
|
3565
|
+
}, Hl = (e, t) => {
|
|
3547
3566
|
switch (e) {
|
|
3548
3567
|
case "loading":
|
|
3549
3568
|
return t.loadingText;
|
|
@@ -3552,12 +3571,12 @@ const Xn = {
|
|
|
3552
3571
|
case "error":
|
|
3553
3572
|
return t.errorText;
|
|
3554
3573
|
}
|
|
3555
|
-
},
|
|
3574
|
+
}, Ol = (e) => e ? {
|
|
3556
3575
|
x: e.x,
|
|
3557
3576
|
y: e.y,
|
|
3558
3577
|
width: e.width,
|
|
3559
3578
|
height: e.height
|
|
3560
|
-
} : void 0,
|
|
3579
|
+
} : void 0, $l = ({
|
|
3561
3580
|
editorRoot: e,
|
|
3562
3581
|
contentElement: t,
|
|
3563
3582
|
editor: n,
|
|
@@ -3567,12 +3586,12 @@ const Xn = {
|
|
|
3567
3586
|
mentionMenuConfig: s,
|
|
3568
3587
|
onMentionMenuRequest: l
|
|
3569
3588
|
}) => {
|
|
3570
|
-
const d =
|
|
3589
|
+
const d = Il(), i = Rl(), g = vl(s), v = (f, y) => {
|
|
3571
3590
|
n.update(() => {
|
|
3572
3591
|
const x = he(y.nodeKey);
|
|
3573
3592
|
x instanceof Y && (x.spliceText(y.startOffset, y.endOffset - y.startOffset, ""), x.select(y.startOffset, y.startOffset));
|
|
3574
3593
|
}), o({ type: "mention.insert", item: f });
|
|
3575
|
-
}, b =
|
|
3594
|
+
}, b = er({
|
|
3576
3595
|
editorRoot: e,
|
|
3577
3596
|
contentElement: t,
|
|
3578
3597
|
editor: n,
|
|
@@ -3580,18 +3599,18 @@ const Xn = {
|
|
|
3580
3599
|
menu: d,
|
|
3581
3600
|
anchor: i,
|
|
3582
3601
|
itemSelector: ".bridgerte__mention-item",
|
|
3583
|
-
getCurrentTrigger:
|
|
3584
|
-
getTriggerRect: (f) =>
|
|
3602
|
+
getCurrentTrigger: Pl,
|
|
3603
|
+
getTriggerRect: (f) => Al(n, f),
|
|
3585
3604
|
resolveItems: async (f) => {
|
|
3586
3605
|
const y = await Promise.resolve(
|
|
3587
|
-
a ? a(f) :
|
|
3606
|
+
a ? a(f) : Nl(f)
|
|
3588
3607
|
);
|
|
3589
|
-
return
|
|
3608
|
+
return _l(y, g);
|
|
3590
3609
|
},
|
|
3591
|
-
renderItem:
|
|
3592
|
-
renderStatus: (f) =>
|
|
3610
|
+
renderItem: Bl,
|
|
3611
|
+
renderStatus: (f) => Dl(
|
|
3593
3612
|
f,
|
|
3594
|
-
|
|
3613
|
+
Hl(f, g)
|
|
3595
3614
|
),
|
|
3596
3615
|
onStateChange: l ? (f, y) => l({
|
|
3597
3616
|
id: `bridgerte-mention-menu-${f.requestId}`,
|
|
@@ -3600,21 +3619,21 @@ const Xn = {
|
|
|
3600
3619
|
items: f.items,
|
|
3601
3620
|
config: g,
|
|
3602
3621
|
readonly: r(),
|
|
3603
|
-
anchorRect:
|
|
3622
|
+
anchorRect: Ol(y.anchorRect),
|
|
3604
3623
|
...f.error ? { error: f.error } : {},
|
|
3605
3624
|
submit: (x) => y.selectItem(
|
|
3606
|
-
|
|
3625
|
+
tr(x, g)
|
|
3607
3626
|
),
|
|
3608
3627
|
cancel: y.close
|
|
3609
3628
|
}) : void 0,
|
|
3610
3629
|
onSelect: (f, y) => v(f.item, y)
|
|
3611
|
-
}), T =
|
|
3612
|
-
...
|
|
3630
|
+
}), T = dn(
|
|
3631
|
+
...Ml(n, r, () => b.close(!1))
|
|
3613
3632
|
);
|
|
3614
3633
|
return () => {
|
|
3615
3634
|
T(), b.destroy();
|
|
3616
3635
|
};
|
|
3617
|
-
},
|
|
3636
|
+
}, Fl = [
|
|
3618
3637
|
"script",
|
|
3619
3638
|
"style",
|
|
3620
3639
|
"iframe",
|
|
@@ -3631,7 +3650,7 @@ const Xn = {
|
|
|
3631
3650
|
"button",
|
|
3632
3651
|
"select",
|
|
3633
3652
|
"textarea"
|
|
3634
|
-
].join(","),
|
|
3653
|
+
].join(","), zl = [
|
|
3635
3654
|
".bridgerte__code-header",
|
|
3636
3655
|
".bridgerte__code-block-controls",
|
|
3637
3656
|
".bridgerte__code-block-control-button",
|
|
@@ -3646,7 +3665,7 @@ const Xn = {
|
|
|
3646
3665
|
".bridgerte__dialog",
|
|
3647
3666
|
".bridgerte__payload-panel",
|
|
3648
3667
|
'[data-bridgerte-clipboard-ui="true"]'
|
|
3649
|
-
].join(","),
|
|
3668
|
+
].join(","), Vl = /* @__PURE__ */ new Set([
|
|
3650
3669
|
"A",
|
|
3651
3670
|
"B",
|
|
3652
3671
|
"BLOCKQUOTE",
|
|
@@ -3683,36 +3702,36 @@ const Xn = {
|
|
|
3683
3702
|
"TT",
|
|
3684
3703
|
"U",
|
|
3685
3704
|
"UL"
|
|
3686
|
-
]),
|
|
3705
|
+
]), Wl = /* @__PURE__ */ new Set(["http:", "https:", "mailto:"]), Ul = "p,div,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table", jl = "p,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table", Kl = /* @__PURE__ */ new Set(["colspan", "rowspan"]), ql = /* @__PURE__ */ new Set(["TD", "TH"]), Gl = /* @__PURE__ */ new Set(["M", "O", "V", "W"]), Xl = /* @__PURE__ */ new Set(["SPAN"]), Yl = /* @__PURE__ */ new Set(["color", "background-color"]), Jl = /^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i, Gt = /* @__PURE__ */ new Map([
|
|
3687
3706
|
["B", "strong"],
|
|
3688
3707
|
["DEL", "s"],
|
|
3689
3708
|
["I", "em"],
|
|
3690
3709
|
["STRIKE", "s"],
|
|
3691
3710
|
["TT", "code"]
|
|
3692
|
-
]),
|
|
3711
|
+
]), Ql = (e) => {
|
|
3693
3712
|
try {
|
|
3694
3713
|
const t = new URL(e, window.location.href);
|
|
3695
|
-
return
|
|
3714
|
+
return Wl.has(t.protocol);
|
|
3696
3715
|
} catch {
|
|
3697
3716
|
return !1;
|
|
3698
3717
|
}
|
|
3699
|
-
},
|
|
3718
|
+
}, mt = (e) => {
|
|
3700
3719
|
e.replaceWith(...e.childNodes);
|
|
3701
|
-
},
|
|
3720
|
+
}, gt = (e, t) => {
|
|
3702
3721
|
const n = e.ownerDocument.createElement(t);
|
|
3703
3722
|
return n.append(...e.childNodes), e.replaceWith(n), n;
|
|
3704
|
-
},
|
|
3723
|
+
}, Zl = (e) => {
|
|
3705
3724
|
const t = e.tagName.split(":")[0] ?? "";
|
|
3706
|
-
return e.tagName.includes(":") &&
|
|
3707
|
-
},
|
|
3725
|
+
return e.tagName.includes(":") && Gl.has(t);
|
|
3726
|
+
}, nr = (e) => {
|
|
3708
3727
|
[...e.childNodes].forEach((t) => {
|
|
3709
3728
|
if (t.nodeType === Node.COMMENT_NODE) {
|
|
3710
3729
|
t.remove();
|
|
3711
3730
|
return;
|
|
3712
3731
|
}
|
|
3713
|
-
|
|
3732
|
+
nr(t);
|
|
3714
3733
|
});
|
|
3715
|
-
},
|
|
3734
|
+
}, rr = (e) => {
|
|
3716
3735
|
[...e.childNodes].forEach((t) => {
|
|
3717
3736
|
if (t.nodeType === Node.TEXT_NODE) {
|
|
3718
3737
|
const n = t.parentElement, r = !!(n != null && n.closest("pre,code,textarea")), o = (t.textContent ?? "").replace(/[\u200B-\u200D\uFEFF]/g, "").replace(/\u00A0/g, r ? " " : " ");
|
|
@@ -3724,25 +3743,25 @@ const Xn = {
|
|
|
3724
3743
|
t.previousSibling || (a = a.trimStart()), t.nextSibling || (a = a.trimEnd()), t.textContent = a;
|
|
3725
3744
|
return;
|
|
3726
3745
|
}
|
|
3727
|
-
|
|
3746
|
+
rr(t);
|
|
3728
3747
|
});
|
|
3729
|
-
},
|
|
3730
|
-
const t = e.trim().toLowerCase(), [, n] = t.match(
|
|
3748
|
+
}, ec = (e) => /^[1-9]\d*$/.test(e.trim()), ht = (e) => {
|
|
3749
|
+
const t = e.trim().toLowerCase(), [, n] = t.match(Jl) ?? [];
|
|
3731
3750
|
return n ? n.length === 8 ? `#${n.slice(2)}` : t : null;
|
|
3732
|
-
},
|
|
3733
|
-
if (!
|
|
3751
|
+
}, tc = (e, t) => {
|
|
3752
|
+
if (!Xl.has(e)) return null;
|
|
3734
3753
|
const n = t.split(";").flatMap((r) => {
|
|
3735
|
-
const [o, ...a] = r.split(":"), s = o == null ? void 0 : o.trim().toLowerCase(), l =
|
|
3736
|
-
return !s || !l || !
|
|
3754
|
+
const [o, ...a] = r.split(":"), s = o == null ? void 0 : o.trim().toLowerCase(), l = ht(a.join(":"));
|
|
3755
|
+
return !s || !l || !Yl.has(s) ? [] : [`${s}: ${l}`];
|
|
3737
3756
|
});
|
|
3738
3757
|
return n.length > 0 ? `${n.join("; ")};` : null;
|
|
3739
|
-
},
|
|
3740
|
-
if (
|
|
3758
|
+
}, nc = (e) => {
|
|
3759
|
+
if (Zl(e)) {
|
|
3741
3760
|
e.remove();
|
|
3742
3761
|
return;
|
|
3743
3762
|
}
|
|
3744
|
-
if (!
|
|
3745
|
-
|
|
3763
|
+
if (!Vl.has(e.tagName)) {
|
|
3764
|
+
mt(e);
|
|
3746
3765
|
return;
|
|
3747
3766
|
}
|
|
3748
3767
|
[...e.attributes].forEach((t) => {
|
|
@@ -3752,7 +3771,7 @@ const Xn = {
|
|
|
3752
3771
|
return;
|
|
3753
3772
|
}
|
|
3754
3773
|
if (n === "style") {
|
|
3755
|
-
const r =
|
|
3774
|
+
const r = tc(e.tagName, t.value);
|
|
3756
3775
|
if (r) {
|
|
3757
3776
|
e.setAttribute(t.name, r);
|
|
3758
3777
|
return;
|
|
@@ -3761,12 +3780,12 @@ const Xn = {
|
|
|
3761
3780
|
return;
|
|
3762
3781
|
}
|
|
3763
3782
|
if (e.tagName === "A" && n === "href") {
|
|
3764
|
-
if (
|
|
3783
|
+
if (Ql(t.value)) return;
|
|
3765
3784
|
e.removeAttribute(t.name);
|
|
3766
3785
|
return;
|
|
3767
3786
|
}
|
|
3768
3787
|
if (!(e.tagName === "A" && ["target", "rel", "title"].includes(n))) {
|
|
3769
|
-
if (e.tagName === "PRE" && n ===
|
|
3788
|
+
if (e.tagName === "PRE" && n === He) {
|
|
3770
3789
|
const r = ne(t.value);
|
|
3771
3790
|
if (r) {
|
|
3772
3791
|
e.setAttribute(t.name, r);
|
|
@@ -3776,43 +3795,43 @@ const Xn = {
|
|
|
3776
3795
|
return;
|
|
3777
3796
|
}
|
|
3778
3797
|
if (e.tagName === "FONT" && n === "color") {
|
|
3779
|
-
if (
|
|
3798
|
+
if (ht(t.value)) return;
|
|
3780
3799
|
e.removeAttribute(t.name);
|
|
3781
3800
|
return;
|
|
3782
3801
|
}
|
|
3783
|
-
|
|
3802
|
+
ql.has(e.tagName) && Kl.has(n) && ec(t.value) || e.removeAttribute(t.name);
|
|
3784
3803
|
}
|
|
3785
3804
|
});
|
|
3786
|
-
},
|
|
3805
|
+
}, rc = (e) => {
|
|
3787
3806
|
[...e.querySelectorAll("font")].forEach((t) => {
|
|
3788
|
-
const n = t.getAttribute("color"), r = n ?
|
|
3807
|
+
const n = t.getAttribute("color"), r = n ? ht(n) : null, o = gt(t, "span");
|
|
3789
3808
|
r && o.setAttribute("style", `color: ${r};`);
|
|
3790
3809
|
});
|
|
3791
|
-
},
|
|
3792
|
-
[...e.querySelectorAll([...
|
|
3793
|
-
const n =
|
|
3794
|
-
n &&
|
|
3810
|
+
}, oc = (e) => {
|
|
3811
|
+
[...e.querySelectorAll([...Gt.keys()].join(","))].forEach((t) => {
|
|
3812
|
+
const n = Gt.get(t.tagName);
|
|
3813
|
+
n && gt(t, n);
|
|
3795
3814
|
});
|
|
3796
|
-
},
|
|
3815
|
+
}, ac = (e) => {
|
|
3797
3816
|
[...e.querySelectorAll("div")].reverse().forEach((t) => {
|
|
3798
|
-
if (t.querySelector(
|
|
3799
|
-
|
|
3817
|
+
if (t.querySelector(jl)) {
|
|
3818
|
+
mt(t);
|
|
3800
3819
|
return;
|
|
3801
3820
|
}
|
|
3802
|
-
|
|
3821
|
+
gt(t, "p");
|
|
3803
3822
|
});
|
|
3804
|
-
},
|
|
3823
|
+
}, sc = (e) => {
|
|
3805
3824
|
[...e.querySelectorAll("span")].forEach((t) => {
|
|
3806
|
-
t.attributes.length === 0 &&
|
|
3825
|
+
t.attributes.length === 0 && mt(t);
|
|
3807
3826
|
});
|
|
3808
|
-
},
|
|
3827
|
+
}, ic = (e) => !["P", "DIV", "SPAN"].includes(e.tagName) || e.querySelector("br,table,ul,ol") ? !1 : !(e.textContent ?? "").trim(), Xt = (e) => {
|
|
3809
3828
|
[...e.querySelectorAll("p,div,span")].reverse().forEach((t) => {
|
|
3810
|
-
|
|
3829
|
+
ic(t) && t.remove();
|
|
3811
3830
|
});
|
|
3812
|
-
},
|
|
3831
|
+
}, lc = (e) => {
|
|
3813
3832
|
var t;
|
|
3814
|
-
return e.nodeType === Node.TEXT_NODE ? !!((t = e.textContent) != null && t.trim()) : e.nodeType !== Node.ELEMENT_NODE ? !1 : !e.matches(
|
|
3815
|
-
},
|
|
3833
|
+
return e.nodeType === Node.TEXT_NODE ? !!((t = e.textContent) != null && t.trim()) : e.nodeType !== Node.ELEMENT_NODE ? !1 : !e.matches(Ul);
|
|
3834
|
+
}, cc = (e) => {
|
|
3816
3835
|
let t = [];
|
|
3817
3836
|
const n = () => {
|
|
3818
3837
|
if (t.length === 0) return;
|
|
@@ -3827,135 +3846,135 @@ const Xn = {
|
|
|
3827
3846
|
r.remove();
|
|
3828
3847
|
return;
|
|
3829
3848
|
}
|
|
3830
|
-
if (
|
|
3849
|
+
if (lc(r)) {
|
|
3831
3850
|
t.push(r);
|
|
3832
3851
|
return;
|
|
3833
3852
|
}
|
|
3834
3853
|
n();
|
|
3835
3854
|
}), n();
|
|
3836
|
-
},
|
|
3855
|
+
}, dc = (e) => {
|
|
3837
3856
|
const t = document.createElement("template");
|
|
3838
|
-
t.innerHTML = e, t.content.querySelectorAll(
|
|
3857
|
+
t.innerHTML = e, t.content.querySelectorAll(Fl).forEach((r) => {
|
|
3839
3858
|
r.remove();
|
|
3840
|
-
}), t.content.querySelectorAll(
|
|
3859
|
+
}), t.content.querySelectorAll(zl).forEach((r) => {
|
|
3841
3860
|
r.remove();
|
|
3842
|
-
}),
|
|
3861
|
+
}), nr(t.content), gs(t.content), [...t.content.querySelectorAll("*")].forEach(nc), rr(t.content), rc(t.content), oc(t.content), ac(t.content), sc(t.content), Xt(t.content);
|
|
3843
3862
|
const n = document.createElement("div");
|
|
3844
|
-
return n.append(t.content.cloneNode(!0)),
|
|
3845
|
-
},
|
|
3863
|
+
return n.append(t.content.cloneNode(!0)), cc(n), Xt(n), n.innerHTML;
|
|
3864
|
+
}, uc = /^https?:\/\/[^\s<>"']+\.[^\s<>"']+$/i, mc = /^www\.[^\s<>"']+\.[^\s<>"']+$/i, gc = new RegExp(
|
|
3846
3865
|
`^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+(?:/[^\\s<>"']*)?$`,
|
|
3847
3866
|
"i"
|
|
3848
|
-
),
|
|
3849
|
-
const n =
|
|
3867
|
+
), hc = /^[^\s@]+@[^\s@]+\.[^\s@]+$/i, pc = /^\s*```([a-z0-9_+#.-]+)\s*\n([\s\S]*?)\n?```\s*$/i, fc = (e) => e.type.startsWith("image/") ? "image" : e.type.startsWith("video/") ? "video" : null, or = (e) => e ? [...e].flatMap((t) => {
|
|
3868
|
+
const n = fc(t);
|
|
3850
3869
|
return n ? [{ type: n, file: t }] : [];
|
|
3851
3870
|
}) : [], Oe = (e) => ({
|
|
3852
3871
|
text: (e == null ? void 0 : e.getData("text/plain")) ?? "",
|
|
3853
3872
|
html: (e == null ? void 0 : e.getData("text/html")) ?? "",
|
|
3854
3873
|
files: e != null && e.files ? [...e.files] : []
|
|
3855
|
-
}),
|
|
3874
|
+
}), bc = (e) => ({
|
|
3856
3875
|
name: e.name,
|
|
3857
3876
|
mimeType: e.type || void 0,
|
|
3858
3877
|
size: e.size,
|
|
3859
3878
|
data: e
|
|
3860
|
-
}),
|
|
3879
|
+
}), yc = (e) => {
|
|
3861
3880
|
const [, t, n] = e.replace(/\r\n/g, `
|
|
3862
|
-
`).match(
|
|
3881
|
+
`).match(pc) ?? [], r = ne(t);
|
|
3863
3882
|
return n !== void 0 && r !== null ? { code: n, language: r } : null;
|
|
3864
|
-
},
|
|
3883
|
+
}, vc = (e) => {
|
|
3865
3884
|
const t = e.trim();
|
|
3866
|
-
return !t || /\s/.test(t) || t.includes("<") || t.includes(">") || /^[a-z][a-z0-9+.-]*:/i.test(t) && !/^https?:\/\//i.test(t) ||
|
|
3867
|
-
},
|
|
3885
|
+
return !t || /\s/.test(t) || t.includes("<") || t.includes(">") || /^[a-z][a-z0-9+.-]*:/i.test(t) && !/^https?:\/\//i.test(t) || hc.test(t) ? !1 : uc.test(t) || mc.test(t) || gc.test(t);
|
|
3886
|
+
}, ar = (e, {
|
|
3868
3887
|
isReadonly: t,
|
|
3869
3888
|
executeCommand: n
|
|
3870
|
-
}) => t() || !
|
|
3889
|
+
}) => t() || !vc(e.text) ? !1 : (n({
|
|
3871
3890
|
type: "link.set",
|
|
3872
3891
|
href: e.text.trim()
|
|
3873
|
-
}), !0),
|
|
3892
|
+
}), !0), nt = (e, {
|
|
3874
3893
|
isReadonly: t,
|
|
3875
3894
|
canUploadMedia: n,
|
|
3876
3895
|
uploadMediaFile: r
|
|
3877
3896
|
}) => {
|
|
3878
3897
|
if (t() || !n()) return !1;
|
|
3879
|
-
const o =
|
|
3898
|
+
const o = or(e.files);
|
|
3880
3899
|
return o.length === 0 ? !1 : (o.forEach(({ type: a, file: s }) => {
|
|
3881
3900
|
r(a, s);
|
|
3882
3901
|
}), !0);
|
|
3883
|
-
},
|
|
3902
|
+
}, wc = (e, t) => {
|
|
3884
3903
|
const r = new DOMParser().parseFromString(t, "text/html");
|
|
3885
|
-
|
|
3886
|
-
const o =
|
|
3887
|
-
return
|
|
3888
|
-
},
|
|
3889
|
-
const n =
|
|
3904
|
+
hs(r.body);
|
|
3905
|
+
const o = fn(e, r);
|
|
3906
|
+
return ps(o, r.body), o;
|
|
3907
|
+
}, Cc = (e, t) => {
|
|
3908
|
+
const n = wc(e, t);
|
|
3890
3909
|
if (n.length === 0) return !1;
|
|
3891
3910
|
if (D() || F().selectEnd(), n.some(X)) {
|
|
3892
3911
|
n.forEach((o) => {
|
|
3893
|
-
|
|
3912
|
+
bn(o);
|
|
3894
3913
|
});
|
|
3895
3914
|
const r = n[n.length - 1];
|
|
3896
|
-
return r && X(r) &&
|
|
3915
|
+
return r && X(r) && W([z()]), !0;
|
|
3897
3916
|
}
|
|
3898
|
-
return
|
|
3899
|
-
},
|
|
3917
|
+
return W(n), !0;
|
|
3918
|
+
}, _c = (e, {
|
|
3900
3919
|
editor: t,
|
|
3901
3920
|
isReadonly: n
|
|
3902
3921
|
}) => {
|
|
3903
3922
|
if (n()) return !1;
|
|
3904
|
-
if (!e.html.trim()) return
|
|
3905
|
-
const r =
|
|
3923
|
+
if (!e.html.trim()) return Ec(e, { editor: t, isReadonly: n });
|
|
3924
|
+
const r = dc(e.html);
|
|
3906
3925
|
return r.trim() ? (t.update(() => {
|
|
3907
|
-
|
|
3926
|
+
Cc(t, r);
|
|
3908
3927
|
}), !0) : !1;
|
|
3909
|
-
},
|
|
3928
|
+
}, kc = (e, {
|
|
3910
3929
|
editor: t,
|
|
3911
3930
|
isReadonly: n
|
|
3912
3931
|
}) => {
|
|
3913
3932
|
if (n() || e.html.trim() || !e.text.trim()) return !1;
|
|
3914
|
-
const r =
|
|
3933
|
+
const r = yc(e.text);
|
|
3915
3934
|
return r ? (t.update(() => {
|
|
3916
|
-
const o =
|
|
3917
|
-
D() || F().selectEnd(), o.append(Be(r.code)),
|
|
3935
|
+
const o = Bn(r.language || void 0), a = z();
|
|
3936
|
+
D() || F().selectEnd(), o.append(Be(r.code)), bn(o), W([a]), a.selectStart();
|
|
3918
3937
|
}), !0) : !1;
|
|
3919
|
-
},
|
|
3938
|
+
}, Ec = (e, {
|
|
3920
3939
|
editor: t,
|
|
3921
3940
|
isReadonly: n
|
|
3922
3941
|
}) => n() || e.html.trim() || !e.text ? !1 : (t.update(() => {
|
|
3923
|
-
D() || F().selectEnd(),
|
|
3924
|
-
}), !0),
|
|
3942
|
+
D() || F().selectEnd(), W([Be(e.text)]);
|
|
3943
|
+
}), !0), sr = (e, t) => kc(e, t) || _c(e, t), te = (e) => {
|
|
3925
3944
|
e.preventDefault(), e.stopImmediatePropagation();
|
|
3926
|
-
},
|
|
3945
|
+
}, xc = (e, t) => nt(e, t) || ar(e, t) || sr(e, t), Mc = (e) => {
|
|
3927
3946
|
const t = (n) => {
|
|
3928
|
-
n.defaultPrevented ||
|
|
3947
|
+
n.defaultPrevented || ar(Oe(n.clipboardData), e) && te(n);
|
|
3929
3948
|
};
|
|
3930
3949
|
return e.target.addEventListener("paste", t, { capture: !0 }), () => {
|
|
3931
3950
|
e.target.removeEventListener("paste", t, { capture: !0 });
|
|
3932
3951
|
};
|
|
3933
|
-
},
|
|
3952
|
+
}, Tc = (e) => {
|
|
3934
3953
|
const t = (o) => {
|
|
3935
|
-
o.defaultPrevented ||
|
|
3954
|
+
o.defaultPrevented || nt(Oe(o.clipboardData), e) && te(o);
|
|
3936
3955
|
}, n = (o) => {
|
|
3937
3956
|
var s;
|
|
3938
3957
|
if (e.isReadonly() || !e.canUploadMedia()) return;
|
|
3939
3958
|
const a = (s = o.dataTransfer) != null && s.files ? [...o.dataTransfer.files] : [];
|
|
3940
|
-
|
|
3959
|
+
or(a).length !== 0 && (o.preventDefault(), o.dataTransfer && (o.dataTransfer.dropEffect = "copy"));
|
|
3941
3960
|
}, r = (o) => {
|
|
3942
3961
|
var s;
|
|
3943
3962
|
const a = {
|
|
3944
3963
|
files: (s = o.dataTransfer) != null && s.files ? [...o.dataTransfer.files] : []
|
|
3945
3964
|
};
|
|
3946
|
-
|
|
3965
|
+
nt(a, e) && te(o);
|
|
3947
3966
|
};
|
|
3948
3967
|
return e.target.addEventListener("paste", t, { capture: !0 }), e.target.addEventListener("dragover", n), e.target.addEventListener("drop", r), () => {
|
|
3949
3968
|
e.target.removeEventListener("paste", t, { capture: !0 }), e.target.removeEventListener("dragover", n), e.target.removeEventListener("drop", r);
|
|
3950
3969
|
};
|
|
3951
|
-
},
|
|
3970
|
+
}, Lc = (e) => {
|
|
3952
3971
|
const t = (n) => {
|
|
3953
|
-
n.defaultPrevented || !
|
|
3972
|
+
n.defaultPrevented || !sr(Oe(n.clipboardData), e) || te(n);
|
|
3954
3973
|
};
|
|
3955
3974
|
return e.target.addEventListener("paste", t, { capture: !0 }), () => {
|
|
3956
3975
|
e.target.removeEventListener("paste", t, { capture: !0 });
|
|
3957
3976
|
};
|
|
3958
|
-
},
|
|
3977
|
+
}, Sc = ({
|
|
3959
3978
|
target: e,
|
|
3960
3979
|
isReadonly: t,
|
|
3961
3980
|
onPaste: n,
|
|
@@ -3964,7 +3983,7 @@ const Xn = {
|
|
|
3964
3983
|
executeCommand: a,
|
|
3965
3984
|
editor: s
|
|
3966
3985
|
}) => {
|
|
3967
|
-
const l = (i, g) =>
|
|
3986
|
+
const l = (i, g) => xc({
|
|
3968
3987
|
text: g.text ?? i.text,
|
|
3969
3988
|
html: g.html ?? i.html,
|
|
3970
3989
|
files: i.files
|
|
@@ -3979,7 +3998,7 @@ const Xn = {
|
|
|
3979
3998
|
const g = Oe(i.clipboardData), v = n({
|
|
3980
3999
|
text: g.text,
|
|
3981
4000
|
html: g.html,
|
|
3982
|
-
files: g.files.map(
|
|
4001
|
+
files: g.files.map(bc)
|
|
3983
4002
|
});
|
|
3984
4003
|
if (v instanceof Promise) {
|
|
3985
4004
|
te(i), v.then((b) => {
|
|
@@ -3996,36 +4015,36 @@ const Xn = {
|
|
|
3996
4015
|
return e.addEventListener("paste", d, { capture: !0 }), () => {
|
|
3997
4016
|
e.removeEventListener("paste", d, { capture: !0 });
|
|
3998
4017
|
};
|
|
3999
|
-
},
|
|
4018
|
+
}, Nc = (e) => e.getKey() === "root" ? null : e.getTopLevelElement(), Pc = (e, t, n) => {
|
|
4000
4019
|
const r = e.getLastDescendant();
|
|
4001
4020
|
return ie(t) ? t === e && n === e.getChildrenSize() : r ? t === r && n === t.getTextContentSize() : !0;
|
|
4002
|
-
},
|
|
4021
|
+
}, Ic = (e) => {
|
|
4003
4022
|
const t = e.getLastChild();
|
|
4004
|
-
return
|
|
4005
|
-
},
|
|
4023
|
+
return un(t);
|
|
4024
|
+
}, Rc = (e) => {
|
|
4006
4025
|
const t = z(), n = e.getLastChild();
|
|
4007
|
-
|
|
4008
|
-
},
|
|
4026
|
+
un(n) && n.remove(), e.insertAfter(t), t.selectStart();
|
|
4027
|
+
}, Ac = (e, t) => {
|
|
4009
4028
|
const n = () => {
|
|
4010
4029
|
if (t()) return !1;
|
|
4011
4030
|
const r = D();
|
|
4012
|
-
if (!
|
|
4013
|
-
const o = r.anchor, a = o.getNode(), s =
|
|
4014
|
-
return !
|
|
4031
|
+
if (!O(r) || !r.isCollapsed()) return !1;
|
|
4032
|
+
const o = r.anchor, a = o.getNode(), s = Nc(a);
|
|
4033
|
+
return !mn(s) || !Pc(s, a, o.offset) ? !1 : Ic(s) ? (Rc(s), !0) : (r.insertLineBreak(), !0);
|
|
4015
4034
|
};
|
|
4016
4035
|
return [
|
|
4017
4036
|
e.registerCommand(
|
|
4018
|
-
|
|
4037
|
+
Tr,
|
|
4019
4038
|
n,
|
|
4020
4039
|
G
|
|
4021
4040
|
),
|
|
4022
4041
|
e.registerCommand(
|
|
4023
|
-
|
|
4042
|
+
Lr,
|
|
4024
4043
|
(r) => r ? !1 : n(),
|
|
4025
4044
|
G
|
|
4026
4045
|
)
|
|
4027
4046
|
];
|
|
4028
|
-
},
|
|
4047
|
+
}, Bc = [
|
|
4029
4048
|
"paragraph",
|
|
4030
4049
|
"heading-1",
|
|
4031
4050
|
"heading-2",
|
|
@@ -4039,18 +4058,18 @@ const Xn = {
|
|
|
4039
4058
|
"upload-image",
|
|
4040
4059
|
"upload-video",
|
|
4041
4060
|
"table"
|
|
4042
|
-
],
|
|
4061
|
+
], Dc = {
|
|
4043
4062
|
showIcon: !0,
|
|
4044
4063
|
loadingText: "加载中",
|
|
4045
4064
|
emptyText: "没有匹配的命令",
|
|
4046
4065
|
errorText: "命令加载失败"
|
|
4047
|
-
},
|
|
4048
|
-
...
|
|
4066
|
+
}, Hc = (e) => ({
|
|
4067
|
+
...Dc,
|
|
4049
4068
|
...e
|
|
4050
|
-
}),
|
|
4069
|
+
}), Oc = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), $c = (e) => ({
|
|
4051
4070
|
...e,
|
|
4052
|
-
toolbarKeys: (e == null ? void 0 : e.toolbarKeys) ??
|
|
4053
|
-
}),
|
|
4071
|
+
toolbarKeys: (e == null ? void 0 : e.toolbarKeys) ?? Bc
|
|
4072
|
+
}), Fc = (e) => ({
|
|
4054
4073
|
id: e.id,
|
|
4055
4074
|
label: e.label,
|
|
4056
4075
|
command: e.command,
|
|
@@ -4058,24 +4077,24 @@ const Xn = {
|
|
|
4058
4077
|
requiresPayload: e.requiresPayload,
|
|
4059
4078
|
payloadPanel: e.payloadPanel,
|
|
4060
4079
|
source: "schema"
|
|
4061
|
-
}),
|
|
4062
|
-
|
|
4080
|
+
}), zc = (e, t) => Oc(ot(
|
|
4081
|
+
$c(t),
|
|
4063
4082
|
e
|
|
4064
|
-
)).map(
|
|
4083
|
+
)).map(Fc), ir = (e) => ({
|
|
4065
4084
|
...e,
|
|
4066
4085
|
source: "provider"
|
|
4067
|
-
}),
|
|
4068
|
-
const n =
|
|
4069
|
-
return n ? e.filter((r) =>
|
|
4070
|
-
},
|
|
4086
|
+
}), Vc = /(?:^|\s)\/([\p{L}\p{N}_-]*)$/u, Wc = (e) => e.trim().toLowerCase(), Uc = (e) => [e.label, e.id, e.description, ...e.keywords ?? []].filter(Boolean).join(" ").toLowerCase(), jc = (e, t) => {
|
|
4087
|
+
const n = Wc(t);
|
|
4088
|
+
return n ? e.filter((r) => Uc(r).includes(n)) : e;
|
|
4089
|
+
}, Kc = async (e, t) => (await Promise.resolve((t == null ? void 0 : t(e)) ?? [])).map(ir), qc = (e) => "source" in e ? e : ir(e), Gc = ({
|
|
4071
4090
|
menuSchema: e,
|
|
4072
4091
|
slashCommandConfig: t
|
|
4073
|
-
}) => e !== void 0 || t !== void 0,
|
|
4092
|
+
}) => e !== void 0 || t !== void 0, Xc = () => {
|
|
4074
4093
|
const e = D();
|
|
4075
|
-
if (!
|
|
4094
|
+
if (!O(e) || !e.isCollapsed()) return null;
|
|
4076
4095
|
const t = e.anchor, n = t.getNode();
|
|
4077
4096
|
if (!(n instanceof Y)) return null;
|
|
4078
|
-
const o = n.getTextContent().slice(0, t.offset).match(
|
|
4097
|
+
const o = n.getTextContent().slice(0, t.offset).match(Vc);
|
|
4079
4098
|
if (!o) return null;
|
|
4080
4099
|
const a = o[1] ?? "", s = o[0] ?? "", l = s.startsWith("/") ? 0 : 1, d = t.offset - s.length + l;
|
|
4081
4100
|
return {
|
|
@@ -4084,33 +4103,33 @@ const Xn = {
|
|
|
4084
4103
|
startOffset: d,
|
|
4085
4104
|
endOffset: t.offset
|
|
4086
4105
|
};
|
|
4087
|
-
},
|
|
4106
|
+
}, Yc = () => {
|
|
4088
4107
|
const e = document.createElement("div");
|
|
4089
4108
|
return e.className = "bridgerte__floating-menu bridgerte__slash-command-menu", e.dataset.visible = "false", e;
|
|
4090
|
-
},
|
|
4109
|
+
}, Jc = () => {
|
|
4091
4110
|
const e = document.createElement("span");
|
|
4092
4111
|
return e.className = "bridgerte__slash-command-anchor", e.setAttribute("aria-hidden", "true"), e;
|
|
4093
|
-
},
|
|
4112
|
+
}, Yt = (e, t) => {
|
|
4094
4113
|
var s;
|
|
4095
|
-
const n = e.getElementByKey(t.nodeKey), r =
|
|
4114
|
+
const n = e.getElementByKey(t.nodeKey), r = ut(n, t.startOffset + 1);
|
|
4096
4115
|
if (!(r instanceof Text)) return null;
|
|
4097
4116
|
const o = document.createRange(), a = Math.min(t.startOffset + 1, ((s = r.textContent) == null ? void 0 : s.length) ?? 0);
|
|
4098
4117
|
return a <= t.startOffset ? null : (o.setStart(r, t.startOffset), o.setEnd(r, a), o.getBoundingClientRect());
|
|
4099
|
-
},
|
|
4118
|
+
}, Qc = (e, t, n, r, o) => {
|
|
4100
4119
|
const a = document.createElement("button"), s = document.createElement("span");
|
|
4101
4120
|
if (a.type = "button", a.className = "bridgerte__menu-item bridgerte__slash-command-item", a.dataset.commandId = e.id, a.dataset.index = String(t), a.dataset.active = String(n), r.showIcon && e.icon) {
|
|
4102
4121
|
const l = document.createElement("span");
|
|
4103
|
-
l.className = "bridgerte__slash-command-item-icon", l.setAttribute("aria-hidden", "true"),
|
|
4122
|
+
l.className = "bridgerte__slash-command-item-icon", l.setAttribute("aria-hidden", "true"), Zn(l, o[e.icon] ?? Qn[e.icon], e.label), a.append(l);
|
|
4104
4123
|
}
|
|
4105
4124
|
if (s.className = "bridgerte__slash-command-item-title", s.textContent = e.label, a.append(s), e.description) {
|
|
4106
4125
|
const l = document.createElement("span");
|
|
4107
4126
|
l.className = "bridgerte__slash-command-item-description", l.textContent = e.description, a.append(l);
|
|
4108
4127
|
}
|
|
4109
4128
|
return a;
|
|
4110
|
-
},
|
|
4129
|
+
}, Zc = (e, t) => {
|
|
4111
4130
|
const n = document.createElement("div");
|
|
4112
4131
|
return n.className = "bridgerte__slash-command-status", n.dataset.status = e, n.textContent = t, n;
|
|
4113
|
-
},
|
|
4132
|
+
}, ed = (e, t) => {
|
|
4114
4133
|
switch (e) {
|
|
4115
4134
|
case "loading":
|
|
4116
4135
|
return t.loadingText;
|
|
@@ -4119,12 +4138,12 @@ const Xn = {
|
|
|
4119
4138
|
case "error":
|
|
4120
4139
|
return t.errorText;
|
|
4121
4140
|
}
|
|
4122
|
-
},
|
|
4141
|
+
}, Jt = (e) => e ? {
|
|
4123
4142
|
x: e.x,
|
|
4124
4143
|
y: e.y,
|
|
4125
4144
|
width: e.width,
|
|
4126
4145
|
height: e.height
|
|
4127
|
-
} : void 0,
|
|
4146
|
+
} : void 0, td = ({
|
|
4128
4147
|
editorRoot: e,
|
|
4129
4148
|
contentElement: t,
|
|
4130
4149
|
editor: n,
|
|
@@ -4140,19 +4159,19 @@ const Xn = {
|
|
|
4140
4159
|
onSlashCommandMenuRequest: b,
|
|
4141
4160
|
slashCommandProvider: T
|
|
4142
4161
|
}) => {
|
|
4143
|
-
const f =
|
|
4162
|
+
const f = Yc(), y = Jc(), x = Hc(v), u = dt(s ?? De, {
|
|
4144
4163
|
menuLabels: i,
|
|
4145
4164
|
payloadPanelConfig: g
|
|
4146
|
-
}), p =
|
|
4165
|
+
}), p = zc(u, l), E = new Map(u.map((c) => [c.id, c])), _ = Gc({
|
|
4147
4166
|
menuSchema: s,
|
|
4148
4167
|
slashCommandConfig: l
|
|
4149
|
-
}),
|
|
4168
|
+
}), B = (c) => {
|
|
4150
4169
|
n.update(() => {
|
|
4151
4170
|
const h = he(c.nodeKey);
|
|
4152
4171
|
h instanceof Y && (h.spliceText(c.startOffset, c.endOffset - c.startOffset, ""), h.select(c.startOffset, c.startOffset));
|
|
4153
4172
|
});
|
|
4154
4173
|
};
|
|
4155
|
-
return
|
|
4174
|
+
return er({
|
|
4156
4175
|
editorRoot: e,
|
|
4157
4176
|
contentElement: t,
|
|
4158
4177
|
editor: n,
|
|
@@ -4160,28 +4179,28 @@ const Xn = {
|
|
|
4160
4179
|
menu: f,
|
|
4161
4180
|
anchor: y,
|
|
4162
4181
|
itemSelector: ".bridgerte__slash-command-item",
|
|
4163
|
-
getCurrentTrigger:
|
|
4164
|
-
getTriggerRect: (c) =>
|
|
4182
|
+
getCurrentTrigger: Xc,
|
|
4183
|
+
getTriggerRect: (c) => Yt(n, c),
|
|
4165
4184
|
resolveItems: async (c) => {
|
|
4166
|
-
const h = _ || !T ?
|
|
4185
|
+
const h = _ || !T ? jc(p, c) : [];
|
|
4167
4186
|
try {
|
|
4168
|
-
const m = await
|
|
4187
|
+
const m = await Kc(c, T);
|
|
4169
4188
|
return [...h, ...m];
|
|
4170
4189
|
} catch (m) {
|
|
4171
4190
|
if (h.length > 0) return h;
|
|
4172
4191
|
throw m;
|
|
4173
4192
|
}
|
|
4174
4193
|
},
|
|
4175
|
-
renderItem: (c, h, m) =>
|
|
4194
|
+
renderItem: (c, h, m) => Qc(
|
|
4176
4195
|
c,
|
|
4177
4196
|
h,
|
|
4178
4197
|
m,
|
|
4179
4198
|
x,
|
|
4180
4199
|
d
|
|
4181
4200
|
),
|
|
4182
|
-
renderStatus: (c) =>
|
|
4201
|
+
renderStatus: (c) => Zc(
|
|
4183
4202
|
c,
|
|
4184
|
-
|
|
4203
|
+
ed(c, x)
|
|
4185
4204
|
),
|
|
4186
4205
|
onStateChange: b ? (c, h) => b({
|
|
4187
4206
|
id: `bridgerte-slash-command-menu-${c.requestId}`,
|
|
@@ -4190,66 +4209,66 @@ const Xn = {
|
|
|
4190
4209
|
items: c.items,
|
|
4191
4210
|
config: x,
|
|
4192
4211
|
readonly: r(),
|
|
4193
|
-
anchorRect:
|
|
4212
|
+
anchorRect: Jt(h.anchorRect),
|
|
4194
4213
|
...c.error ? { error: c.error } : {},
|
|
4195
|
-
submit: (m) => h.selectItem(
|
|
4214
|
+
submit: (m) => h.selectItem(qc(m)),
|
|
4196
4215
|
cancel: h.close
|
|
4197
4216
|
}) : void 0,
|
|
4198
4217
|
onSelect: (c, h) => {
|
|
4199
|
-
|
|
4218
|
+
B(h);
|
|
4200
4219
|
const m = c.source === "schema" ? E.get(c.id) : void 0;
|
|
4201
4220
|
if (m != null && m.payloadPanel) {
|
|
4202
|
-
const C =
|
|
4221
|
+
const C = Yt(n, h);
|
|
4203
4222
|
a({
|
|
4204
4223
|
menuId: m.id,
|
|
4205
4224
|
command: m.command,
|
|
4206
4225
|
panel: m.payloadPanel,
|
|
4207
|
-
anchorRect:
|
|
4226
|
+
anchorRect: Jt(C ?? void 0)
|
|
4208
4227
|
});
|
|
4209
4228
|
return;
|
|
4210
4229
|
}
|
|
4211
4230
|
o(c.command);
|
|
4212
4231
|
}
|
|
4213
4232
|
}).destroy;
|
|
4214
|
-
},
|
|
4233
|
+
}, Qt = 32, Ue = (e) => {
|
|
4215
4234
|
var t;
|
|
4216
4235
|
return e instanceof HTMLElement && e.getAttribute("role") === "checkbox" && ((t = e.parentElement) == null ? void 0 : t.classList.contains("bridgerte__list--todo")) === !0;
|
|
4217
|
-
},
|
|
4236
|
+
}, je = (e) => e instanceof HTMLElement ? e.closest('[role="checkbox"]') : null, nd = (e) => Sr(e), Zt = (e) => e.button === 0, Ke = (e, t) => {
|
|
4218
4237
|
const n = t.getBoundingClientRect();
|
|
4219
|
-
return t.dir === "rtl" ? e.clientX >= n.right -
|
|
4220
|
-
},
|
|
4238
|
+
return t.dir === "rtl" ? e.clientX >= n.right - Qt && e.clientX <= n.right : e.clientX >= n.left && e.clientX <= n.left + Qt;
|
|
4239
|
+
}, en = (e) => {
|
|
4221
4240
|
e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation();
|
|
4222
|
-
},
|
|
4241
|
+
}, rd = ({
|
|
4223
4242
|
contentElement: e,
|
|
4224
4243
|
editor: t,
|
|
4225
4244
|
isReadonly: n
|
|
4226
4245
|
}) => {
|
|
4227
4246
|
let r = 0;
|
|
4228
4247
|
const o = (d) => {
|
|
4229
|
-
if (n() || !
|
|
4230
|
-
const i =
|
|
4231
|
-
!i || !
|
|
4248
|
+
if (n() || !Zt(d)) return;
|
|
4249
|
+
const i = je(d.target);
|
|
4250
|
+
!i || !Ue(i) || Ke(d, i) && en(d);
|
|
4232
4251
|
}, a = (d, i) => {
|
|
4233
|
-
|
|
4234
|
-
const g =
|
|
4235
|
-
|
|
4252
|
+
en(d), t.update(() => {
|
|
4253
|
+
const g = nd(i);
|
|
4254
|
+
Gr(g) && g.toggleChecked();
|
|
4236
4255
|
});
|
|
4237
4256
|
}, s = (d) => {
|
|
4238
|
-
if (n() || !
|
|
4239
|
-
const i =
|
|
4240
|
-
!i || !
|
|
4257
|
+
if (n() || !Zt(d) || Date.now() - r < 700) return;
|
|
4258
|
+
const i = je(d.target);
|
|
4259
|
+
!i || !Ue(i) || Ke(d, i) && a(d, i);
|
|
4241
4260
|
}, l = (d) => {
|
|
4242
4261
|
if (n() || d.pointerType !== "touch") return;
|
|
4243
|
-
const i =
|
|
4244
|
-
!i || !
|
|
4262
|
+
const i = je(d.target);
|
|
4263
|
+
!i || !Ue(i) || Ke(d, i) && (r = Date.now(), a(d, i));
|
|
4245
4264
|
};
|
|
4246
4265
|
return e.addEventListener("pointerdown", o, !0), e.addEventListener("pointerup", l, !0), e.addEventListener("click", s, !0), () => {
|
|
4247
4266
|
e.removeEventListener("pointerdown", o, !0), e.removeEventListener("pointerup", l, !0), e.removeEventListener("click", s, !0);
|
|
4248
4267
|
};
|
|
4249
|
-
},
|
|
4268
|
+
}, qe = (e, t) => {
|
|
4250
4269
|
var n;
|
|
4251
4270
|
return ((n = e.floatingMenus) == null ? void 0 : n[t]) !== !1;
|
|
4252
|
-
},
|
|
4271
|
+
}, od = ({
|
|
4253
4272
|
options: e,
|
|
4254
4273
|
lexicalEditor: t,
|
|
4255
4274
|
editorRoot: n,
|
|
@@ -4267,12 +4286,12 @@ const Xn = {
|
|
|
4267
4286
|
setCanRedo: f,
|
|
4268
4287
|
enableKeyboardShortcuts: y
|
|
4269
4288
|
}) => {
|
|
4270
|
-
const x =
|
|
4289
|
+
const x = qe(e, "mention"), u = qe(e, "slash"), p = qe(e, "hoverbar"), E = dn(
|
|
4271
4290
|
/*
|
|
4272
4291
|
* 业务自定义 paste hook 最先看到原始剪贴板摘要;返回 undefined 时完全不拦截,
|
|
4273
4292
|
* 继续走 BridgeRTE 内置媒体、URL 和 HTML 清洗链路。
|
|
4274
4293
|
*/
|
|
4275
|
-
|
|
4294
|
+
Sc({
|
|
4276
4295
|
target: r,
|
|
4277
4296
|
isReadonly: a,
|
|
4278
4297
|
onPaste: e.onPaste,
|
|
@@ -4285,7 +4304,7 @@ const Xn = {
|
|
|
4285
4304
|
* 媒体文件粘贴/拖拽优先于 URL 粘贴快速路径;剪贴板里有文件时直接进入上传管线,
|
|
4286
4305
|
* 没有文件再交给纯文本 URL 链接处理或 Lexical 默认粘贴。
|
|
4287
4306
|
*/
|
|
4288
|
-
|
|
4307
|
+
Tc({
|
|
4289
4308
|
target: r,
|
|
4290
4309
|
isReadonly: a,
|
|
4291
4310
|
canUploadMedia: i,
|
|
@@ -4295,7 +4314,7 @@ const Xn = {
|
|
|
4295
4314
|
* URL 粘贴是 BridgeRTE 的高意图快捷路径,必须先于 Lexical 默认 paste 监听注册。
|
|
4296
4315
|
* 否则 Lexical 会先把 URL 当普通文本插入,后续就失去“选区变链接”的语义。
|
|
4297
4316
|
*/
|
|
4298
|
-
|
|
4317
|
+
Mc({
|
|
4299
4318
|
target: r,
|
|
4300
4319
|
isReadonly: a,
|
|
4301
4320
|
executeCommand: s
|
|
@@ -4304,32 +4323,32 @@ const Xn = {
|
|
|
4304
4323
|
* HTML 清洗放在媒体和纯文本 URL 之后、Lexical 默认 rich text paste 之前。
|
|
4305
4324
|
* 这样外部网页/办公软件片段会先进入 BridgeRTE 白名单清洗,再转成 Lexical 节点。
|
|
4306
4325
|
*/
|
|
4307
|
-
|
|
4326
|
+
Lc({
|
|
4308
4327
|
target: r,
|
|
4309
4328
|
editor: t,
|
|
4310
4329
|
isReadonly: a
|
|
4311
4330
|
}),
|
|
4312
|
-
|
|
4331
|
+
tl({
|
|
4313
4332
|
target: r,
|
|
4314
4333
|
isReadonly: a
|
|
4315
4334
|
}),
|
|
4316
|
-
|
|
4335
|
+
Hr(t),
|
|
4317
4336
|
/*
|
|
4318
4337
|
* 代码块高亮一刀切使用 Lexical 官方 Shiki 管线。BridgeRTE tokenizer 只保留稳定 class,
|
|
4319
4338
|
* 不把 Shiki theme 的 inline style 写进内容 HTML。
|
|
4320
4339
|
*/
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
...
|
|
4326
|
-
...
|
|
4327
|
-
|
|
4340
|
+
No(t, ys),
|
|
4341
|
+
bo(t, o, Za),
|
|
4342
|
+
Xr(t),
|
|
4343
|
+
Yr(t),
|
|
4344
|
+
...Ac(t, a),
|
|
4345
|
+
...oa(t, a),
|
|
4346
|
+
rd({
|
|
4328
4347
|
contentElement: r,
|
|
4329
4348
|
editor: t,
|
|
4330
4349
|
isReadonly: a
|
|
4331
4350
|
}),
|
|
4332
|
-
x ?
|
|
4351
|
+
x ? $l({
|
|
4333
4352
|
editorRoot: n,
|
|
4334
4353
|
contentElement: r,
|
|
4335
4354
|
editor: t,
|
|
@@ -4340,7 +4359,7 @@ const Xn = {
|
|
|
4340
4359
|
onMentionMenuRequest: e.onMentionMenuRequest
|
|
4341
4360
|
}) : () => {
|
|
4342
4361
|
},
|
|
4343
|
-
p ?
|
|
4362
|
+
p ? dl({
|
|
4344
4363
|
editorRoot: n,
|
|
4345
4364
|
contentElement: r,
|
|
4346
4365
|
editor: t,
|
|
@@ -4355,9 +4374,9 @@ const Xn = {
|
|
|
4355
4374
|
payloadPanelConfig: e.payloadPanelConfig
|
|
4356
4375
|
}) : () => {
|
|
4357
4376
|
},
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
u ?
|
|
4377
|
+
io(t),
|
|
4378
|
+
Yi({ editor: t }),
|
|
4379
|
+
u ? td({
|
|
4361
4380
|
editorRoot: n,
|
|
4362
4381
|
contentElement: r,
|
|
4363
4382
|
editor: t,
|
|
@@ -4374,12 +4393,12 @@ const Xn = {
|
|
|
4374
4393
|
slashCommandProvider: e.slashCommandProvider
|
|
4375
4394
|
}) : () => {
|
|
4376
4395
|
},
|
|
4377
|
-
|
|
4396
|
+
ua({
|
|
4378
4397
|
editor: t,
|
|
4379
4398
|
contentElement: r,
|
|
4380
4399
|
isReadonly: a
|
|
4381
4400
|
}),
|
|
4382
|
-
y ?
|
|
4401
|
+
y ? fl({
|
|
4383
4402
|
target: r,
|
|
4384
4403
|
isReadonly: a,
|
|
4385
4404
|
executeCommand: s
|
|
@@ -4389,17 +4408,17 @@ const Xn = {
|
|
|
4389
4408
|
g(), v();
|
|
4390
4409
|
}),
|
|
4391
4410
|
t.registerCommand(
|
|
4392
|
-
|
|
4411
|
+
ln,
|
|
4393
4412
|
() => (v(), !1),
|
|
4394
4413
|
j
|
|
4395
4414
|
),
|
|
4396
4415
|
t.registerCommand(
|
|
4397
|
-
|
|
4416
|
+
Nr,
|
|
4398
4417
|
(_) => (T(_), !1),
|
|
4399
4418
|
j
|
|
4400
4419
|
),
|
|
4401
4420
|
t.registerCommand(
|
|
4402
|
-
|
|
4421
|
+
Pr,
|
|
4403
4422
|
(_) => (f(_), !1),
|
|
4404
4423
|
j
|
|
4405
4424
|
)
|
|
@@ -4410,39 +4429,39 @@ const Xn = {
|
|
|
4410
4429
|
}
|
|
4411
4430
|
};
|
|
4412
4431
|
};
|
|
4413
|
-
function
|
|
4414
|
-
const n =
|
|
4415
|
-
placeholder: t.placeholder ??
|
|
4432
|
+
function ad(e, t = {}) {
|
|
4433
|
+
const n = yo(), r = t.mediaDefaultWidthPercent ?? 50, { contentElement: o } = ji(e, {
|
|
4434
|
+
placeholder: t.placeholder ?? la
|
|
4416
4435
|
}), a = t.keyboardShortcuts === !0;
|
|
4417
|
-
let s = t.readonly ?? !1, l = !1, d =
|
|
4418
|
-
const i =
|
|
4419
|
-
namespace:
|
|
4436
|
+
let s = t.readonly ?? !1, l = !1, d = Ye(t.value);
|
|
4437
|
+
const i = Ir({
|
|
4438
|
+
namespace: es,
|
|
4420
4439
|
editable: !s,
|
|
4421
4440
|
nodes: [
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
mn,
|
|
4425
|
-
Fr,
|
|
4441
|
+
Or,
|
|
4442
|
+
$r,
|
|
4426
4443
|
gn,
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4432
|
-
|
|
4444
|
+
Wr,
|
|
4445
|
+
hn,
|
|
4446
|
+
Jr,
|
|
4447
|
+
Ge,
|
|
4448
|
+
lo,
|
|
4449
|
+
co,
|
|
4450
|
+
po,
|
|
4451
|
+
fo,
|
|
4433
4452
|
pe,
|
|
4434
4453
|
le,
|
|
4435
4454
|
ye
|
|
4436
4455
|
],
|
|
4437
|
-
theme:
|
|
4456
|
+
theme: $a,
|
|
4438
4457
|
onError: (c) => {
|
|
4439
4458
|
K(t, "lexical.runtime", "Lexical runtime error.", c);
|
|
4440
4459
|
}
|
|
4441
4460
|
});
|
|
4442
|
-
|
|
4461
|
+
uo(i, !0);
|
|
4443
4462
|
const g = () => l, v = () => s, b = () => {
|
|
4444
|
-
g() ||
|
|
4445
|
-
}, T =
|
|
4463
|
+
g() || da({ editor: i, contentElement: o });
|
|
4464
|
+
}, T = Ki({ editor: i }), f = ts({
|
|
4446
4465
|
lexicalEditor: i,
|
|
4447
4466
|
options: t,
|
|
4448
4467
|
isDestroyed: g,
|
|
@@ -4450,13 +4469,13 @@ function qc(e, t = {}) {
|
|
|
4450
4469
|
d = c;
|
|
4451
4470
|
},
|
|
4452
4471
|
syncPlaceholder: b
|
|
4453
|
-
}), y =
|
|
4472
|
+
}), y = Sa({
|
|
4454
4473
|
lexicalEditor: i,
|
|
4455
4474
|
options: t,
|
|
4456
4475
|
isDestroyed: g,
|
|
4457
4476
|
canUploadMedia: () => t.uploadAdapter !== void 0,
|
|
4458
4477
|
isReadonly: v
|
|
4459
|
-
}), x =
|
|
4478
|
+
}), x = Qa({
|
|
4460
4479
|
container: e,
|
|
4461
4480
|
lexicalEditor: i,
|
|
4462
4481
|
options: t,
|
|
@@ -4465,7 +4484,7 @@ function qc(e, t = {}) {
|
|
|
4465
4484
|
reportError: K
|
|
4466
4485
|
}), u = () => {
|
|
4467
4486
|
o.contentEditable = String(!s), i.setEditable(!s);
|
|
4468
|
-
}, E =
|
|
4487
|
+
}, E = Ui({
|
|
4469
4488
|
editorRoot: e,
|
|
4470
4489
|
lexicalEditor: i,
|
|
4471
4490
|
isReadonly: v,
|
|
@@ -4491,14 +4510,14 @@ function qc(e, t = {}) {
|
|
|
4491
4510
|
menuLabels: t.menuLabels,
|
|
4492
4511
|
onRequest: t.onPayloadPanelRequest,
|
|
4493
4512
|
defaultMediaWidthPercent: r
|
|
4494
|
-
}), _ = () =>
|
|
4513
|
+
}), _ = () => Ma(t), B = () => Ta(t), H = (c) => {
|
|
4495
4514
|
g() || (T.capture(), E.payloadPanelController.open(c));
|
|
4496
4515
|
};
|
|
4497
|
-
e.dataset.readonly = String(s), e.addEventListener("focusin", _), e.addEventListener("focusout",
|
|
4516
|
+
e.dataset.readonly = String(s), e.addEventListener("focusin", _), e.addEventListener("focusout", B), e.style.setProperty(
|
|
4498
4517
|
"--bridgerte-media-display-width",
|
|
4499
4518
|
`${r}%`
|
|
4500
4519
|
);
|
|
4501
|
-
const I =
|
|
4520
|
+
const I = od({
|
|
4502
4521
|
options: t,
|
|
4503
4522
|
lexicalEditor: i,
|
|
4504
4523
|
editorRoot: e,
|
|
@@ -4506,7 +4525,7 @@ function qc(e, t = {}) {
|
|
|
4506
4525
|
historyState: n,
|
|
4507
4526
|
isReadonly: v,
|
|
4508
4527
|
executeCommand: x,
|
|
4509
|
-
requestPayloadPanel:
|
|
4528
|
+
requestPayloadPanel: H,
|
|
4510
4529
|
uploadMediaFile: x.uploadMediaFile,
|
|
4511
4530
|
canUploadMedia: () => t.uploadAdapter !== void 0,
|
|
4512
4531
|
syncAfterEditorUpdate: f.syncAfterEditorUpdate,
|
|
@@ -4516,18 +4535,18 @@ function qc(e, t = {}) {
|
|
|
4516
4535
|
setCanRedo: y.setCanRedo,
|
|
4517
4536
|
enableKeyboardShortcuts: a
|
|
4518
4537
|
});
|
|
4519
|
-
i.setRootElement(o), f.suppressNextChange(), d =
|
|
4538
|
+
i.setRootElement(o), f.suppressNextChange(), d = Yo(i, t.value), u();
|
|
4520
4539
|
const w = {
|
|
4521
4540
|
getContent() {
|
|
4522
4541
|
return g() || (f.clearContentChangeTimer(), f.syncContent(!1)), d;
|
|
4523
4542
|
},
|
|
4524
4543
|
setContent(c) {
|
|
4525
|
-
g() || (f.clearContentChangeTimer(), d =
|
|
4544
|
+
g() || (f.clearContentChangeTimer(), d = Ye(c), f.suppressNextChange(), Pn(i, d), f.enforceCurrentMaxLength(), b(), i.dispatchCommand(Rr, void 0), y.setHistoryAvailability(!1, !1), f.syncContent(!0));
|
|
4526
4545
|
},
|
|
4527
4546
|
executeCommand(c) {
|
|
4528
4547
|
x(c);
|
|
4529
4548
|
},
|
|
4530
|
-
requestPayloadPanel:
|
|
4549
|
+
requestPayloadPanel: H,
|
|
4531
4550
|
getCommandStates: y.getCommandStates,
|
|
4532
4551
|
subscribeCommandStateChange: y.subscribeCommandStateChange,
|
|
4533
4552
|
setReadonly(c) {
|
|
@@ -4540,20 +4559,20 @@ function qc(e, t = {}) {
|
|
|
4540
4559
|
g() || o.blur();
|
|
4541
4560
|
},
|
|
4542
4561
|
destroy() {
|
|
4543
|
-
g() || (l = !0, f.clearContentChangeTimer(), E.destroy(), x.destroy(), y.destroy(), T.clear(), I.destroy(), i.setRootElement(null), e.removeEventListener("focusin", _), e.removeEventListener("focusout",
|
|
4562
|
+
g() || (l = !0, f.clearContentChangeTimer(), E.destroy(), x.destroy(), y.destroy(), T.clear(), I.destroy(), i.setRootElement(null), e.removeEventListener("focusin", _), e.removeEventListener("focusout", B), e.classList.remove("bridgerte"), e.textContent = "", delete e.dataset.readonly);
|
|
4544
4563
|
}
|
|
4545
4564
|
};
|
|
4546
|
-
return f.syncContent(!1), b(), y.refreshCommandStates(),
|
|
4565
|
+
return f.syncContent(!1), b(), y.refreshCommandStates(), La(t, w), w;
|
|
4547
4566
|
}
|
|
4548
|
-
const
|
|
4567
|
+
const sd = (e) => !ur(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.type === "editor.executeCommand" || e.type === "editor.setContent" || e.type === "editor.setReadonly" || e.type === "editor.requestContent" || e.type === "editor.payloadPanelResolved" || e.type === "editor.payloadPanelCanceled" || e.type === "editor.uploadResolved" || e.type === "editor.uploadRejected", id = (e) => ({
|
|
4549
4568
|
id: e,
|
|
4550
4569
|
type: "editor.ready",
|
|
4551
4570
|
payload: {
|
|
4552
|
-
menuSchema:
|
|
4553
|
-
eventTiming:
|
|
4554
|
-
version:
|
|
4571
|
+
menuSchema: De,
|
|
4572
|
+
eventTiming: gr,
|
|
4573
|
+
version: Ae
|
|
4555
4574
|
}
|
|
4556
|
-
}),
|
|
4575
|
+
}), ld = (e) => `native-upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`, Md = ({
|
|
4557
4576
|
container: e,
|
|
4558
4577
|
transport: t
|
|
4559
4578
|
}) => {
|
|
@@ -4571,7 +4590,7 @@ const Gc = (e) => !lr(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
|
|
|
4571
4590
|
type: "editor.heightChange",
|
|
4572
4591
|
payload: { height: w }
|
|
4573
4592
|
}));
|
|
4574
|
-
},
|
|
4593
|
+
}, mr);
|
|
4575
4594
|
}, T = (w) => {
|
|
4576
4595
|
if (!n) return;
|
|
4577
4596
|
const c = n.getContent();
|
|
@@ -4633,7 +4652,7 @@ const Gc = (e) => !lr(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
|
|
|
4633
4652
|
}
|
|
4634
4653
|
});
|
|
4635
4654
|
}), u = (w) => {
|
|
4636
|
-
const c =
|
|
4655
|
+
const c = ld(w);
|
|
4637
4656
|
d.set(c, {
|
|
4638
4657
|
type: w,
|
|
4639
4658
|
assetId: c,
|
|
@@ -4653,7 +4672,7 @@ const Gc = (e) => !lr(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
|
|
|
4653
4672
|
const c = i.get(w.payload.requestId);
|
|
4654
4673
|
c && (i.delete(w.payload.requestId), c.request.cancel());
|
|
4655
4674
|
}, _ = (w, c) => {
|
|
4656
|
-
n == null || n.destroy(), o == null || o(), d.clear(), i.clear(), n =
|
|
4675
|
+
n == null || n.destroy(), o == null || o(), d.clear(), i.clear(), n = ad(e, {
|
|
4657
4676
|
...c,
|
|
4658
4677
|
uploadAdapter: {
|
|
4659
4678
|
uploadImage(h, m) {
|
|
@@ -4698,8 +4717,8 @@ const Gc = (e) => !lr(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
|
|
|
4698
4717
|
type: "editor.commandStateChange",
|
|
4699
4718
|
payload: h
|
|
4700
4719
|
});
|
|
4701
|
-
}), g(
|
|
4702
|
-
},
|
|
4720
|
+
}), g(id(w)), b();
|
|
4721
|
+
}, B = (w) => {
|
|
4703
4722
|
if (w.type === "media.pickImage") {
|
|
4704
4723
|
u("image");
|
|
4705
4724
|
return;
|
|
@@ -4709,14 +4728,14 @@ const Gc = (e) => !lr(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
|
|
|
4709
4728
|
return;
|
|
4710
4729
|
}
|
|
4711
4730
|
n == null || n.executeCommand(w);
|
|
4712
|
-
},
|
|
4713
|
-
if (!(r || !
|
|
4731
|
+
}, H = (w) => {
|
|
4732
|
+
if (!(r || !sd(w)))
|
|
4714
4733
|
switch (w.type) {
|
|
4715
4734
|
case "editor.init":
|
|
4716
4735
|
_(w.id, w.payload);
|
|
4717
4736
|
return;
|
|
4718
4737
|
case "editor.executeCommand":
|
|
4719
|
-
|
|
4738
|
+
B(w.payload);
|
|
4720
4739
|
return;
|
|
4721
4740
|
case "editor.setContent":
|
|
4722
4741
|
n == null || n.setContent(w.payload);
|
|
@@ -4741,22 +4760,22 @@ const Gc = (e) => !lr(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
|
|
|
4741
4760
|
return;
|
|
4742
4761
|
}
|
|
4743
4762
|
};
|
|
4744
|
-
return a = ((I = t.addMessageListener) == null ? void 0 : I.call(t,
|
|
4745
|
-
receive:
|
|
4763
|
+
return a = ((I = t.addMessageListener) == null ? void 0 : I.call(t, H)) ?? null, {
|
|
4764
|
+
receive: H,
|
|
4746
4765
|
destroy() {
|
|
4747
4766
|
r || (r = !0, v(), a == null || a(), o == null || o(), d.clear(), i.clear(), n == null || n.destroy(), n = null);
|
|
4748
4767
|
}
|
|
4749
4768
|
};
|
|
4750
4769
|
};
|
|
4751
4770
|
export {
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
|
|
4771
|
+
ad as a,
|
|
4772
|
+
Md as b,
|
|
4773
|
+
Jn as c,
|
|
4774
|
+
Qn as d,
|
|
4775
|
+
Zn as e,
|
|
4757
4776
|
U as f,
|
|
4758
|
-
|
|
4759
|
-
|
|
4760
|
-
|
|
4777
|
+
$s as g,
|
|
4778
|
+
Os as h,
|
|
4779
|
+
dt as r
|
|
4761
4780
|
};
|
|
4762
|
-
//# sourceMappingURL=index-
|
|
4781
|
+
//# sourceMappingURL=index-BJMFpGLi.js.map
|