@pagelines/sdk 1.0.613 → 1.0.615
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.
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
var Gn = Object.defineProperty;
|
|
2
2
|
var Fs = (a, t, e) => t in a ? Gn(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e;
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
import { defineComponent as
|
|
6
|
-
import { SettingsObject as js, Agent as
|
|
3
|
+
var h = (a, t) => Gn(a, "name", { value: t, configurable: !0 });
|
|
4
|
+
var B = (a, t, e) => Fs(a, typeof t != "symbol" ? t + "" : t, e);
|
|
5
|
+
import { defineComponent as ze, openBlock as m, createElementBlock as x, createElementVNode as w, normalizeClass as $, ref as xe, watch as Bt, computed as I, createCommentVNode as j, renderSlot as fn, onMounted as Wt, unref as cn, Fragment as ae, toDisplayString as Z, normalizeStyle as ne, renderList as me, shallowRef as fs, onBeforeUnmount as gs, createBlock as un, nextTick as Bs, createVNode as rt, withCtx as Us, withModifiers as wt, createTextVNode as Nt, withDirectives as Hs, vModelText as Gs } from "vue";
|
|
6
|
+
import { SettingsObject as js, Agent as Ut, getDefaultAvatarUrl as ms, parseChatVisualFencePayload as Ws, createLogger as qs } from "@pagelines/core";
|
|
7
7
|
import { P as Vs } from "./sdkClient.js";
|
|
8
8
|
const Ys = { class: "spinner max-w-sm" }, Ks = {
|
|
9
9
|
class: "ring-circular h-full w-full origin-center",
|
|
10
10
|
viewBox: "25 25 50 50"
|
|
11
|
-
}, jn = /* @__PURE__ */
|
|
11
|
+
}, jn = /* @__PURE__ */ ze({
|
|
12
12
|
__name: "FSpinner",
|
|
13
13
|
props: {
|
|
14
14
|
width: { type: String, default: "" },
|
|
15
15
|
colorMode: { type: String, default: "primary" }
|
|
16
16
|
},
|
|
17
17
|
setup(a) {
|
|
18
|
-
return (t, e) => (
|
|
19
|
-
(
|
|
20
|
-
|
|
21
|
-
class:
|
|
18
|
+
return (t, e) => (m(), x("div", Ys, [
|
|
19
|
+
(m(), x("svg", Ks, [
|
|
20
|
+
w("circle", {
|
|
21
|
+
class: $([a.colorMode, "ring-path"]),
|
|
22
22
|
cx: "50",
|
|
23
23
|
cy: "50",
|
|
24
24
|
r: "20",
|
|
@@ -44,26 +44,26 @@ function Js(a) {
|
|
|
44
44
|
};
|
|
45
45
|
return e === "account" ? { surface: "transcript", issue: { code: a.code, bucket: e, ...n }, sendBlockedReason: "account" } : ks.has(a.code) ? { surface: "transcript", issue: { code: a.code, bucket: e, ...n }, sendBlockedReason: "agent_deleted" } : { surface: "transient", issue: { code: a.code, message: a.error, ...n } };
|
|
46
46
|
}
|
|
47
|
-
|
|
47
|
+
h(Js, "presentChatStreamError");
|
|
48
48
|
const Sn = class Sn extends js {
|
|
49
49
|
constructor(e) {
|
|
50
50
|
super("AgentChatController", e);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
B(this, "isTextMode", !1);
|
|
52
|
+
B(this, "lastMessage", { hash: "", time: 0 });
|
|
53
|
+
B(this, "isConnecting", !1);
|
|
54
|
+
B(this, "activeTurnGeneration", 0);
|
|
55
55
|
// Chat conversation tracking (server-managed persistence)
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
B(this, "conversationId");
|
|
57
|
+
B(this, "textState", xe({
|
|
58
58
|
isActive: !1,
|
|
59
59
|
isConnected: !1,
|
|
60
60
|
isThinking: !1,
|
|
61
61
|
connectionStatus: "disconnected"
|
|
62
62
|
}));
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this._agent = e.agent instanceof
|
|
63
|
+
B(this, "agentMode", xe("self"));
|
|
64
|
+
B(this, "sharedMessages", xe([]));
|
|
65
|
+
B(this, "_agent");
|
|
66
|
+
this._agent = e.agent instanceof Ut ? e.agent : new Ut({ config: e.agent }), this.setupModeWatcher(), this.setupAvailabilityWatcher();
|
|
67
67
|
}
|
|
68
68
|
get chatEnabled() {
|
|
69
69
|
const e = this._agent.state.value.lifecycle;
|
|
@@ -152,12 +152,12 @@ Current User:
|
|
|
152
152
|
});
|
|
153
153
|
}
|
|
154
154
|
setupModeWatcher() {
|
|
155
|
-
|
|
155
|
+
Bt(this.agentMode, async (e, n) => {
|
|
156
156
|
this.logger.info(`Mode changed from ${n} to ${e}`), this.isTextMode && (n === "talk" || n === "chat") && await this.endConversation();
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
159
|
setupAvailabilityWatcher() {
|
|
160
|
-
|
|
160
|
+
Bt(() => this.chatEnabled, (e) => {
|
|
161
161
|
if (!(!this.isTextMode || this.isConnecting)) {
|
|
162
162
|
if (e) {
|
|
163
163
|
this.textState.value.isConnected || this.updateState(this.textState, {
|
|
@@ -243,105 +243,105 @@ Current User:
|
|
|
243
243
|
this.addMessage(e, "user", n), this.updateState(this.textState, { isThinking: !0, workingDescription: void 0, toolActivities: [], transientIssue: void 0 });
|
|
244
244
|
const l = ++this.activeTurnGeneration, o = `stream-${Date.now()}`;
|
|
245
245
|
let u = !1, c = !1;
|
|
246
|
-
const
|
|
247
|
-
if (!
|
|
246
|
+
const v = /* @__PURE__ */ h(() => l === this.activeTurnGeneration, "isCurrentTurn"), b = /* @__PURE__ */ h((M, P = "assistant") => {
|
|
247
|
+
if (!v())
|
|
248
248
|
return;
|
|
249
249
|
this.updateState(this.textState, { workingDescription: void 0 }), u || (u = !0, this.sharedMessages.value = [
|
|
250
250
|
...this.sharedMessages.value,
|
|
251
251
|
{ id: o, text: "", sender: P === "system" ? "system" : "agent", timestamp: (/* @__PURE__ */ new Date()).toISOString() }
|
|
252
252
|
]);
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
}, "onDelta"), A = /* @__PURE__ */
|
|
256
|
-
if (!
|
|
253
|
+
const F = this.sharedMessages.value, q = F[F.length - 1];
|
|
254
|
+
q?.id === o && (q.text += M, this.sharedMessages.value = [...F]);
|
|
255
|
+
}, "onDelta"), A = /* @__PURE__ */ h((M) => {
|
|
256
|
+
if (!v())
|
|
257
257
|
return;
|
|
258
258
|
c = !0, u = !0, this.updateState(this.textState, { workingDescription: void 0 }), this.finishToolActivities("completed");
|
|
259
|
-
const P = this.sharedMessages.value,
|
|
260
|
-
if (
|
|
259
|
+
const P = this.sharedMessages.value, F = P.findIndex((q) => q.id === M.id);
|
|
260
|
+
if (F >= 0)
|
|
261
261
|
this.sharedMessages.value = [
|
|
262
|
-
...P.slice(0,
|
|
263
|
-
|
|
264
|
-
...P.slice(
|
|
262
|
+
...P.slice(0, F),
|
|
263
|
+
M,
|
|
264
|
+
...P.slice(F + 1)
|
|
265
265
|
];
|
|
266
266
|
else {
|
|
267
|
-
const
|
|
268
|
-
this.sharedMessages.value =
|
|
267
|
+
const q = P[P.length - 1];
|
|
268
|
+
this.sharedMessages.value = q?.id === o ? [...P.slice(0, -1), M] : [...P, M];
|
|
269
269
|
}
|
|
270
|
-
|
|
271
|
-
}, "onMessage"),
|
|
272
|
-
if (!
|
|
270
|
+
M.sender === "system" && M.issue?.bucket === "account" ? this.updateState(this.textState, { sendBlockedReason: "account" }) : M.sender === "system" && M.issue?.code && ks.has(M.issue.code) && this.updateState(this.textState, { sendBlockedReason: "agent_deleted" });
|
|
271
|
+
}, "onMessage"), E = /* @__PURE__ */ h((M) => {
|
|
272
|
+
if (!v())
|
|
273
273
|
return;
|
|
274
274
|
if (!u && !c) {
|
|
275
275
|
G("empty_stream — assistant returned no content");
|
|
276
276
|
return;
|
|
277
277
|
}
|
|
278
278
|
this.finishToolActivities("completed");
|
|
279
|
-
const P = this.sharedMessages.value,
|
|
280
|
-
if (
|
|
281
|
-
let
|
|
282
|
-
for (const
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
}, "onDone"), G = /* @__PURE__ */
|
|
288
|
-
if (!
|
|
279
|
+
const P = this.sharedMessages.value, F = P[P.length - 1];
|
|
280
|
+
if (F?.id === o && F.sender === "agent" && F.text) {
|
|
281
|
+
let q = F.text;
|
|
282
|
+
for (const H of Zs)
|
|
283
|
+
H.pattern.test(q) && (console.debug(`[chat] filtered directive: ${H.label}`), q = q.replace(H.pattern, "").trim(), H.pattern.lastIndex = 0);
|
|
284
|
+
q ? q !== F.text && (F.text = q, this.sharedMessages.value = [...P]) : this.sharedMessages.value = P.slice(0, -1);
|
|
285
|
+
}
|
|
286
|
+
M && (this.conversationId = M), this.updateState(this.textState, { isThinking: !1, workingDescription: void 0, transientIssue: void 0 });
|
|
287
|
+
}, "onDone"), G = /* @__PURE__ */ h((M) => {
|
|
288
|
+
if (!v())
|
|
289
289
|
return;
|
|
290
290
|
this.updateState(this.textState, { workingDescription: void 0 }), this.finishToolActivities("failed");
|
|
291
|
-
const P = this.sharedMessages.value,
|
|
292
|
-
if (
|
|
293
|
-
const J = Js(
|
|
294
|
-
J.surface === "transient" ? this.updateState(this.textState, { isThinking: !1, transientIssue: J.issue }) : J.surface === "transcript" ? (this.addMessage(
|
|
291
|
+
const P = this.sharedMessages.value, F = P[P.length - 1];
|
|
292
|
+
if (F?.id === o && !F.text && (this.sharedMessages.value = P.slice(0, -1)), typeof M == "object" && M.code && M.error) {
|
|
293
|
+
const J = Js(M);
|
|
294
|
+
J.surface === "transient" ? this.updateState(this.textState, { isThinking: !1, transientIssue: J.issue }) : J.surface === "transcript" ? (this.addMessage(M.error, "system", void 0, J.issue), this.updateState(this.textState, {
|
|
295
295
|
isThinking: !1,
|
|
296
296
|
...J.sendBlockedReason ? { sendBlockedReason: J.sendBlockedReason } : {}
|
|
297
|
-
})) : this.handleError(new Error(
|
|
297
|
+
})) : this.handleError(new Error(M.error));
|
|
298
298
|
return;
|
|
299
299
|
}
|
|
300
|
-
const
|
|
301
|
-
this.isTransientError(
|
|
302
|
-
}, "onError"), R = /* @__PURE__ */
|
|
303
|
-
if (!
|
|
300
|
+
const q = typeof M == "string" ? M : M.error, H = this.mapChatError(q);
|
|
301
|
+
this.isTransientError(q) ? (this.logger.warn("Chat turn failed (transient):", { raw: q, friendly: H }), this.addMessage(H, "system"), this.updateState(this.textState, { isThinking: !1 })) : this.handleError(new Error(H), q);
|
|
302
|
+
}, "onError"), R = /* @__PURE__ */ h((M) => {
|
|
303
|
+
if (!v())
|
|
304
304
|
return;
|
|
305
|
-
const P =
|
|
305
|
+
const P = M.trim();
|
|
306
306
|
this.updateState(this.textState, { workingDescription: P || void 0 });
|
|
307
|
-
}, "onStatus"), X = /* @__PURE__ */
|
|
308
|
-
|
|
309
|
-
}, "onToolActivity"),
|
|
310
|
-
|
|
307
|
+
}, "onStatus"), X = /* @__PURE__ */ h((M) => {
|
|
308
|
+
v() && this.updateToolActivity(M);
|
|
309
|
+
}, "onToolActivity"), Q = /* @__PURE__ */ h(() => {
|
|
310
|
+
v() && this.updateState(this.textState, { workingDescription: void 0 });
|
|
311
311
|
}, "onWorkingEnd");
|
|
312
312
|
try {
|
|
313
|
-
const
|
|
313
|
+
const M = i ? i({
|
|
314
314
|
message: e,
|
|
315
315
|
attachments: n,
|
|
316
316
|
conversationId: this.conversationId,
|
|
317
317
|
history: this.buildHistory(),
|
|
318
|
-
onDelta:
|
|
318
|
+
onDelta: b,
|
|
319
319
|
onMessage: A,
|
|
320
|
-
onDone:
|
|
320
|
+
onDone: E,
|
|
321
321
|
onError: G,
|
|
322
322
|
onStatus: R,
|
|
323
323
|
onToolActivity: X,
|
|
324
|
-
onWorkingEnd:
|
|
324
|
+
onWorkingEnd: Q
|
|
325
325
|
}) : s.chat.chatStreamPublic({
|
|
326
326
|
handle: this._agent.handle.value,
|
|
327
327
|
message: e,
|
|
328
328
|
attachments: n,
|
|
329
329
|
anonymousId: s.user.generateAnonId(),
|
|
330
330
|
context: this.getDynamicSettings().context || void 0,
|
|
331
|
-
onDelta:
|
|
331
|
+
onDelta: b,
|
|
332
332
|
onMessage: A,
|
|
333
|
-
onDone:
|
|
333
|
+
onDone: E,
|
|
334
334
|
onError: G,
|
|
335
335
|
onStatus: R,
|
|
336
336
|
onToolActivity: X,
|
|
337
|
-
onWorkingEnd:
|
|
337
|
+
onWorkingEnd: Q
|
|
338
338
|
});
|
|
339
339
|
await Promise.race([
|
|
340
|
-
|
|
341
|
-
new Promise((P,
|
|
340
|
+
M,
|
|
341
|
+
new Promise((P, F) => setTimeout(() => F(new Error("timed out")), Xs))
|
|
342
342
|
]);
|
|
343
|
-
} catch (
|
|
344
|
-
G(
|
|
343
|
+
} catch (M) {
|
|
344
|
+
G(M.message || "Something went wrong");
|
|
345
345
|
}
|
|
346
346
|
}
|
|
347
347
|
async stopChatTurn() {
|
|
@@ -378,30 +378,30 @@ Current User:
|
|
|
378
378
|
await this.endConversation();
|
|
379
379
|
}
|
|
380
380
|
};
|
|
381
|
-
|
|
381
|
+
h(Sn, "AgentChatController");
|
|
382
382
|
let Wn = Sn;
|
|
383
383
|
function qn(a) {
|
|
384
384
|
return a ? typeof a == "string" ? a : a.src || "" : "";
|
|
385
385
|
}
|
|
386
|
-
|
|
386
|
+
h(qn, "getImageSrc");
|
|
387
387
|
function Br(a) {
|
|
388
388
|
return qn(a.cover) || qn(a.avatar) || ms(a.name);
|
|
389
389
|
}
|
|
390
|
-
|
|
390
|
+
h(Br, "getAgentAvatarUrl");
|
|
391
391
|
function Vn(a) {
|
|
392
392
|
const t = a.target;
|
|
393
393
|
t.dataset.fallbackUsed || (t.dataset.fallbackUsed = "true", t.src = ms());
|
|
394
394
|
}
|
|
395
|
-
|
|
395
|
+
h(Vn, "handleImageError");
|
|
396
396
|
function Ur(a) {
|
|
397
397
|
const { template: t, agent: e } = a;
|
|
398
398
|
return t.replace(/{name}/g, e.name || "Assistant").replace(/{title}/g, e.title || "").replace(/{handle}/g, e.handle || "").replace(/{orgName}/g, e.org?.name || "");
|
|
399
399
|
}
|
|
400
|
-
|
|
400
|
+
h(Ur, "parseButtonTemplate");
|
|
401
401
|
const ei = {
|
|
402
402
|
key: 0,
|
|
403
403
|
class: "absolute inset-0 flex items-center justify-center"
|
|
404
|
-
}, Hr = /* @__PURE__ */
|
|
404
|
+
}, Hr = /* @__PURE__ */ ze({
|
|
405
405
|
__name: "ElAgentButton",
|
|
406
406
|
props: {
|
|
407
407
|
theme: { default: "primary" },
|
|
@@ -425,28 +425,28 @@ const ei = {
|
|
|
425
425
|
md: "size-4",
|
|
426
426
|
lg: "size-5"
|
|
427
427
|
})[a.size]);
|
|
428
|
-
return (i, s) => (
|
|
429
|
-
class:
|
|
428
|
+
return (i, s) => (m(), x("button", {
|
|
429
|
+
class: $(["relative inline-flex items-center justify-center gap-2 font-medium rounded-full backdrop-blur-sm border-2 text-white transition-all duration-200 focus:outline-none active:opacity-80 disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer", [t.value, e.value]])
|
|
430
430
|
}, [
|
|
431
|
-
a.loading ? (
|
|
432
|
-
|
|
433
|
-
])])) :
|
|
434
|
-
|
|
435
|
-
class:
|
|
431
|
+
a.loading ? (m(), x("div", ei, [...s[0] || (s[0] = [
|
|
432
|
+
w("i", { class: "i-svg-spinners-90-ring-with-bg size-5" }, null, -1)
|
|
433
|
+
])])) : j("", !0),
|
|
434
|
+
w("span", {
|
|
435
|
+
class: $(["flex items-center gap-2 transition-opacity duration-200", a.loading ? "opacity-0" : "opacity-100"])
|
|
436
436
|
}, [
|
|
437
|
-
a.icon ? (
|
|
437
|
+
a.icon ? (m(), x("i", {
|
|
438
438
|
key: 0,
|
|
439
|
-
class:
|
|
440
|
-
}, null, 2)) :
|
|
439
|
+
class: $([a.icon, n.value])
|
|
440
|
+
}, null, 2)) : j("", !0),
|
|
441
441
|
fn(i.$slots, "default"),
|
|
442
|
-
a.iconAfter ? (
|
|
442
|
+
a.iconAfter ? (m(), x("i", {
|
|
443
443
|
key: 1,
|
|
444
|
-
class:
|
|
445
|
-
}, null, 2)) :
|
|
444
|
+
class: $([a.iconAfter, n.value])
|
|
445
|
+
}, null, 2)) : j("", !0)
|
|
446
446
|
], 2)
|
|
447
447
|
], 2));
|
|
448
448
|
}
|
|
449
|
-
}), ti = ["value"], Gr = /* @__PURE__ */
|
|
449
|
+
}), ti = ["value"], Gr = /* @__PURE__ */ ze({
|
|
450
450
|
__name: "AgentInputEmail",
|
|
451
451
|
props: {
|
|
452
452
|
modelValue: { default: "" }
|
|
@@ -454,7 +454,7 @@ const ei = {
|
|
|
454
454
|
emits: ["update:modelValue"],
|
|
455
455
|
setup(a, { emit: t }) {
|
|
456
456
|
const e = t;
|
|
457
|
-
return (n, i) => (
|
|
457
|
+
return (n, i) => (m(), x("input", {
|
|
458
458
|
name: "username",
|
|
459
459
|
type: "email",
|
|
460
460
|
inputmode: "email",
|
|
@@ -469,7 +469,7 @@ const ei = {
|
|
|
469
469
|
onInput: i[0] || (i[0] = (s) => e("update:modelValue", s.target.value))
|
|
470
470
|
}, null, 40, ti));
|
|
471
471
|
}
|
|
472
|
-
}), ni = ["placeholder", "value"], jr = /* @__PURE__ */
|
|
472
|
+
}), ni = ["placeholder", "value"], jr = /* @__PURE__ */ ze({
|
|
473
473
|
__name: "AgentInputOneTimeCode",
|
|
474
474
|
props: {
|
|
475
475
|
modelValue: {},
|
|
@@ -479,14 +479,14 @@ const ei = {
|
|
|
479
479
|
emits: ["update:modelValue", "autoSubmit"],
|
|
480
480
|
setup(a, { emit: t }) {
|
|
481
481
|
const e = a, n = t, i = xe(null), s = I(() => "0".repeat(e.length));
|
|
482
|
-
|
|
482
|
+
Wt(() => {
|
|
483
483
|
e.focusFirst && !("ontouchstart" in window) && i.value?.focus();
|
|
484
484
|
});
|
|
485
485
|
function l(o) {
|
|
486
486
|
const u = o.target.value.replace(/\D/g, "").slice(0, e.length);
|
|
487
487
|
n("update:modelValue", u), u.length === e.length && n("autoSubmit", u);
|
|
488
488
|
}
|
|
489
|
-
return
|
|
489
|
+
return h(l, "onInput"), (o, u) => (m(), x("input", {
|
|
490
490
|
ref_key: "input",
|
|
491
491
|
ref: i,
|
|
492
492
|
name: "one-time-code",
|
|
@@ -507,7 +507,7 @@ const ei = {
|
|
|
507
507
|
}), si = { class: "relative flex-shrink-0" }, ii = ["src", "alt"], ai = { class: "absolute top-1 right-1" }, ri = {
|
|
508
508
|
key: 1,
|
|
509
509
|
class: "size-3 bg-theme-400 rounded-full ring-2 ring-white"
|
|
510
|
-
}, li = { class: "min-w-0" }, oi = /* @__PURE__ */
|
|
510
|
+
}, li = { class: "min-w-0" }, oi = /* @__PURE__ */ ze({
|
|
511
511
|
__name: "ElModeHeader",
|
|
512
512
|
props: {
|
|
513
513
|
agent: {},
|
|
@@ -516,16 +516,16 @@ const ei = {
|
|
|
516
516
|
layout: { default: "centered" }
|
|
517
517
|
},
|
|
518
518
|
setup(a) {
|
|
519
|
-
return (t, e) => (
|
|
520
|
-
class:
|
|
519
|
+
return (t, e) => (m(), x("div", {
|
|
520
|
+
class: $(["flex gap-4", [
|
|
521
521
|
a.layout === "centered" ? "flex-col items-center text-center" : "flex-row items-center justify-center"
|
|
522
522
|
]])
|
|
523
523
|
}, [
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
class:
|
|
524
|
+
w("div", si, [
|
|
525
|
+
w("div", {
|
|
526
|
+
class: $(["rounded-full overflow-hidden border-white", a.size === "lg" ? "w-20 h-20 sm:w-24 sm:h-24 border-4" : "w-16 sm:size-16 border-2"])
|
|
527
527
|
}, [
|
|
528
|
-
|
|
528
|
+
w("img", {
|
|
529
529
|
src: a.agent.avatarUrl.value,
|
|
530
530
|
alt: a.agent.displayName.value,
|
|
531
531
|
class: "w-full h-full object-cover",
|
|
@@ -533,25 +533,25 @@ const ei = {
|
|
|
533
533
|
(...n) => cn(Vn) && cn(Vn)(...n))
|
|
534
534
|
}, null, 40, ii)
|
|
535
535
|
], 2),
|
|
536
|
-
|
|
537
|
-
a.isOnline ? (
|
|
538
|
-
e[1] || (e[1] =
|
|
536
|
+
w("div", ai, [
|
|
537
|
+
a.isOnline ? (m(), x(ae, { key: 0 }, [
|
|
538
|
+
e[1] || (e[1] = w("div", {
|
|
539
539
|
class: "size-3 bg-green-500 rounded-full ring-2 ring-white absolute animate-ping",
|
|
540
540
|
style: { "animation-duration": "3s" }
|
|
541
541
|
}, null, -1)),
|
|
542
|
-
e[2] || (e[2] =
|
|
543
|
-
], 64)) : (
|
|
542
|
+
e[2] || (e[2] = w("div", { class: "size-3 bg-green-500 rounded-full ring-2 ring-white" }, null, -1))
|
|
543
|
+
], 64)) : (m(), x("div", ri))
|
|
544
544
|
])
|
|
545
545
|
]),
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
class:
|
|
546
|
+
w("div", li, [
|
|
547
|
+
w("h1", {
|
|
548
|
+
class: $(["font-light text-white mb-1 truncate", [
|
|
549
549
|
a.size === "lg" ? "text-3xl mb-2" : "text-xl sm:text-2xl tracking-wide leading-tight",
|
|
550
550
|
a.layout === "horizontal" ? "text-white/95" : ""
|
|
551
551
|
]])
|
|
552
552
|
}, Z(a.agent.displayName.value), 3),
|
|
553
|
-
|
|
554
|
-
class:
|
|
553
|
+
w("p", {
|
|
554
|
+
class: $(["font-light line-clamp-1", [
|
|
555
555
|
a.size === "lg" ? "text-base text-white/60" : "text-sm sm:text-base",
|
|
556
556
|
a.layout === "horizontal" ? "text-white/70 truncate" : "text-white/60"
|
|
557
557
|
]])
|
|
@@ -565,19 +565,19 @@ function Yn(a, t) {
|
|
|
565
565
|
for (var e = 0, n = Array(t); e < t; e++) n[e] = a[e];
|
|
566
566
|
return n;
|
|
567
567
|
}
|
|
568
|
-
|
|
568
|
+
h(Yn, "_arrayLikeToArray");
|
|
569
569
|
function ci(a) {
|
|
570
570
|
if (Array.isArray(a)) return a;
|
|
571
571
|
}
|
|
572
|
-
|
|
572
|
+
h(ci, "_arrayWithHoles");
|
|
573
573
|
function ui(a, t) {
|
|
574
574
|
var e = a == null ? null : typeof Symbol < "u" && a[Symbol.iterator] || a["@@iterator"];
|
|
575
575
|
if (e != null) {
|
|
576
576
|
var n, i, s, l, o = [], u = !0, c = !1;
|
|
577
577
|
try {
|
|
578
578
|
if (s = (e = e.call(a)).next, t !== 0) for (; !(u = (n = s.call(e)).done) && (o.push(n.value), o.length !== t); u = !0) ;
|
|
579
|
-
} catch (
|
|
580
|
-
c = !0, i =
|
|
579
|
+
} catch (v) {
|
|
580
|
+
c = !0, i = v;
|
|
581
581
|
} finally {
|
|
582
582
|
try {
|
|
583
583
|
if (!u && e.return != null && (l = e.return(), Object(l) !== l)) return;
|
|
@@ -588,16 +588,16 @@ function ui(a, t) {
|
|
|
588
588
|
return o;
|
|
589
589
|
}
|
|
590
590
|
}
|
|
591
|
-
|
|
591
|
+
h(ui, "_iterableToArrayLimit");
|
|
592
592
|
function hi() {
|
|
593
593
|
throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
594
594
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
|
|
595
595
|
}
|
|
596
|
-
|
|
596
|
+
h(hi, "_nonIterableRest");
|
|
597
597
|
function di(a, t) {
|
|
598
598
|
return ci(a) || ui(a, t) || pi(a, t) || hi();
|
|
599
599
|
}
|
|
600
|
-
|
|
600
|
+
h(di, "_slicedToArray");
|
|
601
601
|
function pi(a, t) {
|
|
602
602
|
if (a) {
|
|
603
603
|
if (typeof a == "string") return Yn(a, t);
|
|
@@ -605,27 +605,27 @@ function pi(a, t) {
|
|
|
605
605
|
return e === "Object" && a.constructor && (e = a.constructor.name), e === "Map" || e === "Set" ? Array.from(a) : e === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e) ? Yn(a, t) : void 0;
|
|
606
606
|
}
|
|
607
607
|
}
|
|
608
|
-
|
|
608
|
+
h(pi, "_unsupportedIterableToArray");
|
|
609
609
|
const bs = Object.entries, Kn = Object.setPrototypeOf, fi = Object.isFrozen, gi = Object.getPrototypeOf, mi = Object.getOwnPropertyDescriptor;
|
|
610
|
-
let ke = Object.freeze,
|
|
611
|
-
ke || (ke = /* @__PURE__ */
|
|
610
|
+
let ke = Object.freeze, Te = Object.seal, ht = Object.create, vs = typeof Reflect < "u" && Reflect, hn = vs.apply, dn = vs.construct;
|
|
611
|
+
ke || (ke = /* @__PURE__ */ h(function(t) {
|
|
612
612
|
return t;
|
|
613
613
|
}, "freeze"));
|
|
614
|
-
|
|
614
|
+
Te || (Te = /* @__PURE__ */ h(function(t) {
|
|
615
615
|
return t;
|
|
616
616
|
}, "seal"));
|
|
617
|
-
hn || (hn = /* @__PURE__ */
|
|
617
|
+
hn || (hn = /* @__PURE__ */ h(function(t, e) {
|
|
618
618
|
for (var n = arguments.length, i = new Array(n > 2 ? n - 2 : 0), s = 2; s < n; s++)
|
|
619
619
|
i[s - 2] = arguments[s];
|
|
620
620
|
return t.apply(e, i);
|
|
621
621
|
}, "apply"));
|
|
622
|
-
dn || (dn = /* @__PURE__ */
|
|
622
|
+
dn || (dn = /* @__PURE__ */ h(function(t) {
|
|
623
623
|
for (var e = arguments.length, n = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++)
|
|
624
624
|
n[i - 1] = arguments[i];
|
|
625
625
|
return new t(...n);
|
|
626
626
|
}, "construct"));
|
|
627
|
-
const
|
|
628
|
-
function
|
|
627
|
+
const lt = le(Array.prototype.forEach), xi = le(Array.prototype.lastIndexOf), Zn = le(Array.prototype.pop), ot = le(Array.prototype.push), ki = le(Array.prototype.splice), ge = Array.isArray, _t = le(String.prototype.toLowerCase), sn = le(String.prototype.toString), Xn = le(String.prototype.match), ct = le(String.prototype.replace), Qn = le(String.prototype.indexOf), bi = le(String.prototype.trim), vi = le(Number.prototype.toString), yi = le(Boolean.prototype.toString), Jn = typeof BigInt > "u" ? null : le(BigInt.prototype.toString), es = typeof Symbol > "u" ? null : le(Symbol.prototype.toString), ie = le(Object.prototype.hasOwnProperty), Tt = le(Object.prototype.toString), ue = le(RegExp.prototype.test), St = wi(TypeError);
|
|
628
|
+
function le(a) {
|
|
629
629
|
return function(t) {
|
|
630
630
|
t instanceof RegExp && (t.lastIndex = 0);
|
|
631
631
|
for (var e = arguments.length, n = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++)
|
|
@@ -633,7 +633,7 @@ function oe(a) {
|
|
|
633
633
|
return hn(a, t, n);
|
|
634
634
|
};
|
|
635
635
|
}
|
|
636
|
-
|
|
636
|
+
h(le, "unapply");
|
|
637
637
|
function wi(a) {
|
|
638
638
|
return function() {
|
|
639
639
|
for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
|
|
@@ -641,9 +641,9 @@ function wi(a) {
|
|
|
641
641
|
return dn(a, e);
|
|
642
642
|
};
|
|
643
643
|
}
|
|
644
|
-
|
|
645
|
-
function
|
|
646
|
-
let e = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] :
|
|
644
|
+
h(wi, "unconstruct");
|
|
645
|
+
function z(a, t) {
|
|
646
|
+
let e = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : _t;
|
|
647
647
|
if (Kn && Kn(a, null), !ge(t))
|
|
648
648
|
return a;
|
|
649
649
|
let n = t.length;
|
|
@@ -657,23 +657,23 @@ function O(a, t) {
|
|
|
657
657
|
}
|
|
658
658
|
return a;
|
|
659
659
|
}
|
|
660
|
-
|
|
660
|
+
h(z, "addToSet");
|
|
661
661
|
function Ti(a) {
|
|
662
662
|
for (let t = 0; t < a.length; t++)
|
|
663
|
-
|
|
663
|
+
ie(a, t) || (a[t] = null);
|
|
664
664
|
return a;
|
|
665
665
|
}
|
|
666
|
-
|
|
667
|
-
function
|
|
668
|
-
const t =
|
|
666
|
+
h(Ti, "cleanArray");
|
|
667
|
+
function he(a) {
|
|
668
|
+
const t = ht(null);
|
|
669
669
|
for (const n of bs(a)) {
|
|
670
670
|
var e = di(n, 2);
|
|
671
671
|
const i = e[0], s = e[1];
|
|
672
|
-
|
|
672
|
+
ie(a, i) && (ge(s) ? t[i] = Ti(s) : s && typeof s == "object" && s.constructor === Object ? t[i] = he(s) : t[i] = s);
|
|
673
673
|
}
|
|
674
674
|
return t;
|
|
675
675
|
}
|
|
676
|
-
|
|
676
|
+
h(he, "clone");
|
|
677
677
|
function Si(a) {
|
|
678
678
|
switch (typeof a) {
|
|
679
679
|
case "string":
|
|
@@ -687,55 +687,55 @@ function Si(a) {
|
|
|
687
687
|
case "symbol":
|
|
688
688
|
return es ? es(a) : "Symbol()";
|
|
689
689
|
case "undefined":
|
|
690
|
-
return
|
|
690
|
+
return Tt(a);
|
|
691
691
|
case "function":
|
|
692
692
|
case "object": {
|
|
693
693
|
if (a === null)
|
|
694
|
-
return
|
|
695
|
-
const t = a, e =
|
|
694
|
+
return Tt(a);
|
|
695
|
+
const t = a, e = Oe(t, "toString");
|
|
696
696
|
if (typeof e == "function") {
|
|
697
697
|
const n = e(t);
|
|
698
|
-
return typeof n == "string" ? n :
|
|
698
|
+
return typeof n == "string" ? n : Tt(n);
|
|
699
699
|
}
|
|
700
|
-
return
|
|
700
|
+
return Tt(a);
|
|
701
701
|
}
|
|
702
702
|
default:
|
|
703
|
-
return
|
|
703
|
+
return Tt(a);
|
|
704
704
|
}
|
|
705
705
|
}
|
|
706
|
-
|
|
707
|
-
function
|
|
706
|
+
h(Si, "stringifyValue");
|
|
707
|
+
function Oe(a, t) {
|
|
708
708
|
for (; a !== null; ) {
|
|
709
709
|
const n = mi(a, t);
|
|
710
710
|
if (n) {
|
|
711
711
|
if (n.get)
|
|
712
|
-
return
|
|
712
|
+
return le(n.get);
|
|
713
713
|
if (typeof n.value == "function")
|
|
714
|
-
return
|
|
714
|
+
return le(n.value);
|
|
715
715
|
}
|
|
716
716
|
a = gi(a);
|
|
717
717
|
}
|
|
718
718
|
function e() {
|
|
719
719
|
return null;
|
|
720
720
|
}
|
|
721
|
-
return
|
|
721
|
+
return h(e, "fallbackValue"), e;
|
|
722
722
|
}
|
|
723
|
-
|
|
723
|
+
h(Oe, "lookupGetter");
|
|
724
724
|
function Ai(a) {
|
|
725
725
|
try {
|
|
726
|
-
return
|
|
726
|
+
return ue(a, ""), !0;
|
|
727
727
|
} catch {
|
|
728
728
|
return !1;
|
|
729
729
|
}
|
|
730
730
|
}
|
|
731
|
-
|
|
732
|
-
const ts = ke(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), an = ke(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "enterkeyhint", "exportparts", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "inputmode", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "part", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), rn = ke(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), _i = ke(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), ln = ke(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), Ei = ke(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), ns = ke(["#text"]), ss = ke(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "command", "commandfor", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns"]), on = ke(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "mask-type", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), is = ke(["accent", "accentunder", "align", "bevelled", "close", "columnalign", "columnlines", "columnspacing", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lquote", "lspace", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]),
|
|
731
|
+
h(Ai, "isRegex");
|
|
732
|
+
const ts = ke(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), an = ke(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "enterkeyhint", "exportparts", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "inputmode", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "part", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), rn = ke(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), _i = ke(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), ln = ke(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), Ei = ke(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), ns = ke(["#text"]), ss = ke(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "command", "commandfor", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns"]), on = ke(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "mask-type", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), is = ke(["accent", "accentunder", "align", "bevelled", "close", "columnalign", "columnlines", "columnspacing", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lquote", "lspace", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), zt = ke(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), Ri = Te(/{{[\w\W]*|^[\w\W]*}}/g), Ci = Te(/<%[\w\W]*|^[\w\W]*%>/g), Ii = Te(/\${[\w\W]*/g), Di = Te(/^data-[\-\w.\u00B7-\uFFFF]+$/), Mi = Te(/^aria-[\-\w]+$/), as = Te(
|
|
733
733
|
/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
|
|
734
734
|
// eslint-disable-line no-useless-escape
|
|
735
|
-
), $i =
|
|
735
|
+
), $i = Te(/^(?:\w+script|data):/i), Li = Te(
|
|
736
736
|
/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
|
|
737
737
|
// eslint-disable-line no-control-regex
|
|
738
|
-
), Oi =
|
|
738
|
+
), Oi = Te(/^html$/i), Ni = Te(/^[a-z][.\w]*(-[.\w]+)+$/i), Le = {
|
|
739
739
|
element: 1,
|
|
740
740
|
attribute: 2,
|
|
741
741
|
text: 3,
|
|
@@ -751,9 +751,9 @@ const ts = ke(["a", "abbr", "acronym", "address", "area", "article", "aside", "a
|
|
|
751
751
|
documentFragment: 11,
|
|
752
752
|
notation: 12
|
|
753
753
|
// Deprecated
|
|
754
|
-
}, zi = /* @__PURE__ */
|
|
754
|
+
}, zi = /* @__PURE__ */ h(function() {
|
|
755
755
|
return typeof window > "u" ? null : window;
|
|
756
|
-
}, "getGlobal"), Pi = /* @__PURE__ */
|
|
756
|
+
}, "getGlobal"), Pi = /* @__PURE__ */ h(function(t, e) {
|
|
757
757
|
if (typeof t != "object" || typeof t.createPolicy != "function")
|
|
758
758
|
return null;
|
|
759
759
|
let n = null;
|
|
@@ -772,7 +772,7 @@ const ts = ke(["a", "abbr", "acronym", "address", "area", "article", "aside", "a
|
|
|
772
772
|
} catch {
|
|
773
773
|
return console.warn("TrustedTypes policy " + s + " could not be created."), null;
|
|
774
774
|
}
|
|
775
|
-
}, "_createTrustedTypesPolicy"), rs = /* @__PURE__ */
|
|
775
|
+
}, "_createTrustedTypesPolicy"), rs = /* @__PURE__ */ h(function() {
|
|
776
776
|
return {
|
|
777
777
|
afterSanitizeAttributes: [],
|
|
778
778
|
afterSanitizeElements: [],
|
|
@@ -787,29 +787,29 @@ const ts = ke(["a", "abbr", "acronym", "address", "area", "article", "aside", "a
|
|
|
787
787
|
}, "_createHooksMap");
|
|
788
788
|
function ys() {
|
|
789
789
|
let a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : zi();
|
|
790
|
-
const t = /* @__PURE__ */
|
|
791
|
-
if (t.version = "3.4.7", t.removed = [], !a || !a.document || a.document.nodeType !==
|
|
790
|
+
const t = /* @__PURE__ */ h((C) => ys(C), "DOMPurify");
|
|
791
|
+
if (t.version = "3.4.7", t.removed = [], !a || !a.document || a.document.nodeType !== Le.document || !a.Element)
|
|
792
792
|
return t.isSupported = !1, t;
|
|
793
793
|
let e = a.document;
|
|
794
794
|
const n = e, i = n.currentScript;
|
|
795
795
|
a.DocumentFragment;
|
|
796
796
|
const s = a.HTMLTemplateElement, l = a.Node, o = a.Element, u = a.NodeFilter, c = a.NamedNodeMap;
|
|
797
797
|
c === void 0 && (a.NamedNodeMap || a.MozNamedAttrMap), a.HTMLFormElement;
|
|
798
|
-
const
|
|
798
|
+
const v = a.DOMParser, b = a.trustedTypes, A = o.prototype, E = Oe(A, "cloneNode"), G = Oe(A, "remove"), R = Oe(A, "nextSibling"), X = Oe(A, "childNodes"), Q = Oe(A, "parentNode"), M = Oe(A, "shadowRoot"), P = Oe(A, "attributes"), F = l && l.prototype ? Oe(l.prototype, "nodeType") : null, q = l && l.prototype ? Oe(l.prototype, "nodeName") : null;
|
|
799
799
|
if (typeof s == "function") {
|
|
800
800
|
const C = e.createElement("template");
|
|
801
801
|
C.content && C.content.ownerDocument && (e = C.content.ownerDocument);
|
|
802
802
|
}
|
|
803
|
-
let
|
|
804
|
-
const
|
|
805
|
-
let
|
|
806
|
-
t.isSupported = typeof bs == "function" && typeof
|
|
807
|
-
const
|
|
808
|
-
let
|
|
809
|
-
const
|
|
810
|
-
let
|
|
811
|
-
const
|
|
812
|
-
let
|
|
803
|
+
let H, J = "";
|
|
804
|
+
const Re = e, pe = Re.implementation, ve = Re.createNodeIterator, xt = Re.createDocumentFragment, Pe = Re.getElementsByTagName, Be = n.importNode;
|
|
805
|
+
let se = rs();
|
|
806
|
+
t.isSupported = typeof bs == "function" && typeof Q == "function" && pe && pe.createHTMLDocument !== void 0;
|
|
807
|
+
const Ue = Ri, be = Ci, ce = Ii, Ce = Di, N = Mi, Je = $i, He = Li, et = Ni;
|
|
808
|
+
let Ge = as, ee = null;
|
|
809
|
+
const Ye = z({}, [...ts, ...an, ...rn, ...ln, ...ns]);
|
|
810
|
+
let g = null;
|
|
811
|
+
const _ = z({}, [...ss, ...on, ...is, ...zt]);
|
|
812
|
+
let p = Object.seal(ht(null, {
|
|
813
813
|
tagNameCheck: {
|
|
814
814
|
writable: !0,
|
|
815
815
|
configurable: !1,
|
|
@@ -828,8 +828,8 @@ function ys() {
|
|
|
828
828
|
enumerable: !0,
|
|
829
829
|
value: !1
|
|
830
830
|
}
|
|
831
|
-
})),
|
|
832
|
-
const
|
|
831
|
+
})), S = null, D = null;
|
|
832
|
+
const O = Object.seal(ht(null, {
|
|
833
833
|
tagCheck: {
|
|
834
834
|
writable: !0,
|
|
835
835
|
configurable: !1,
|
|
@@ -843,130 +843,130 @@ function ys() {
|
|
|
843
843
|
value: null
|
|
844
844
|
}
|
|
845
845
|
}));
|
|
846
|
-
let
|
|
846
|
+
let y = !0, k = !0, f = !1, L = !0, V = !1, fe = !0, ye = !1, Ie = !1, kt = !1, tt = !1, Ct = !1, It = !1, An = !0, _n = !1;
|
|
847
847
|
const En = "user-content-";
|
|
848
|
-
let Yt = !0,
|
|
849
|
-
const Kt =
|
|
848
|
+
let Yt = !0, bt = !1, nt = {}, De = null;
|
|
849
|
+
const Kt = z({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
|
|
850
850
|
let Rn = null;
|
|
851
|
-
const Cn =
|
|
851
|
+
const Cn = z({}, ["audio", "video", "img", "source", "image", "track"]);
|
|
852
852
|
let Zt = null;
|
|
853
|
-
const In =
|
|
854
|
-
let
|
|
855
|
-
const Ms =
|
|
856
|
-
let Jt =
|
|
857
|
-
const $s =
|
|
858
|
-
let
|
|
853
|
+
const In = z({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), Dt = "http://www.w3.org/1998/Math/MathML", Mt = "http://www.w3.org/2000/svg", Me = "http://www.w3.org/1999/xhtml";
|
|
854
|
+
let st = Me, Xt = !1, Qt = null;
|
|
855
|
+
const Ms = z({}, [Dt, Mt, Me], sn);
|
|
856
|
+
let Jt = z({}, ["mi", "mo", "mn", "ms", "mtext"]), en = z({}, ["annotation-xml"]);
|
|
857
|
+
const $s = z({}, ["title", "style", "font", "a", "script"]);
|
|
858
|
+
let vt = null;
|
|
859
859
|
const Ls = ["application/xhtml+xml", "text/html"], Os = "text/html";
|
|
860
|
-
let
|
|
861
|
-
const Ns = e.createElement("form"), Dn = /* @__PURE__ */
|
|
860
|
+
let re = null, it = null;
|
|
861
|
+
const Ns = e.createElement("form"), Dn = /* @__PURE__ */ h(function(r) {
|
|
862
862
|
return r instanceof RegExp || r instanceof Function;
|
|
863
|
-
}, "isRegexOrFunction"), tn = /* @__PURE__ */
|
|
863
|
+
}, "isRegexOrFunction"), tn = /* @__PURE__ */ h(function() {
|
|
864
864
|
let r = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
865
|
-
if (
|
|
865
|
+
if (it && it === r)
|
|
866
866
|
return;
|
|
867
|
-
(!r || typeof r != "object") && (r = {}), r =
|
|
868
|
-
Ls.indexOf(r.PARSER_MEDIA_TYPE) === -1 ? Os : r.PARSER_MEDIA_TYPE,
|
|
869
|
-
const
|
|
870
|
-
if (
|
|
867
|
+
(!r || typeof r != "object") && (r = {}), r = he(r), vt = // eslint-disable-next-line unicorn/prefer-includes
|
|
868
|
+
Ls.indexOf(r.PARSER_MEDIA_TYPE) === -1 ? Os : r.PARSER_MEDIA_TYPE, re = vt === "application/xhtml+xml" ? sn : _t, ee = ie(r, "ALLOWED_TAGS") && ge(r.ALLOWED_TAGS) ? z({}, r.ALLOWED_TAGS, re) : Ye, g = ie(r, "ALLOWED_ATTR") && ge(r.ALLOWED_ATTR) ? z({}, r.ALLOWED_ATTR, re) : _, Qt = ie(r, "ALLOWED_NAMESPACES") && ge(r.ALLOWED_NAMESPACES) ? z({}, r.ALLOWED_NAMESPACES, sn) : Ms, Zt = ie(r, "ADD_URI_SAFE_ATTR") && ge(r.ADD_URI_SAFE_ATTR) ? z(he(In), r.ADD_URI_SAFE_ATTR, re) : In, Rn = ie(r, "ADD_DATA_URI_TAGS") && ge(r.ADD_DATA_URI_TAGS) ? z(he(Cn), r.ADD_DATA_URI_TAGS, re) : Cn, De = ie(r, "FORBID_CONTENTS") && ge(r.FORBID_CONTENTS) ? z({}, r.FORBID_CONTENTS, re) : Kt, S = ie(r, "FORBID_TAGS") && ge(r.FORBID_TAGS) ? z({}, r.FORBID_TAGS, re) : he({}), D = ie(r, "FORBID_ATTR") && ge(r.FORBID_ATTR) ? z({}, r.FORBID_ATTR, re) : he({}), nt = ie(r, "USE_PROFILES") ? r.USE_PROFILES && typeof r.USE_PROFILES == "object" ? he(r.USE_PROFILES) : r.USE_PROFILES : !1, y = r.ALLOW_ARIA_ATTR !== !1, k = r.ALLOW_DATA_ATTR !== !1, f = r.ALLOW_UNKNOWN_PROTOCOLS || !1, L = r.ALLOW_SELF_CLOSE_IN_ATTR !== !1, V = r.SAFE_FOR_TEMPLATES || !1, fe = r.SAFE_FOR_XML !== !1, ye = r.WHOLE_DOCUMENT || !1, tt = r.RETURN_DOM || !1, Ct = r.RETURN_DOM_FRAGMENT || !1, It = r.RETURN_TRUSTED_TYPE || !1, kt = r.FORCE_BODY || !1, An = r.SANITIZE_DOM !== !1, _n = r.SANITIZE_NAMED_PROPS || !1, Yt = r.KEEP_CONTENT !== !1, bt = r.IN_PLACE || !1, Ge = Ai(r.ALLOWED_URI_REGEXP) ? r.ALLOWED_URI_REGEXP : as, st = typeof r.NAMESPACE == "string" ? r.NAMESPACE : Me, Jt = ie(r, "MATHML_TEXT_INTEGRATION_POINTS") && r.MATHML_TEXT_INTEGRATION_POINTS && typeof r.MATHML_TEXT_INTEGRATION_POINTS == "object" ? he(r.MATHML_TEXT_INTEGRATION_POINTS) : z({}, ["mi", "mo", "mn", "ms", "mtext"]), en = ie(r, "HTML_INTEGRATION_POINTS") && r.HTML_INTEGRATION_POINTS && typeof r.HTML_INTEGRATION_POINTS == "object" ? he(r.HTML_INTEGRATION_POINTS) : z({}, ["annotation-xml"]);
|
|
869
|
+
const d = ie(r, "CUSTOM_ELEMENT_HANDLING") && r.CUSTOM_ELEMENT_HANDLING && typeof r.CUSTOM_ELEMENT_HANDLING == "object" ? he(r.CUSTOM_ELEMENT_HANDLING) : ht(null);
|
|
870
|
+
if (p = ht(null), ie(d, "tagNameCheck") && Dn(d.tagNameCheck) && (p.tagNameCheck = d.tagNameCheck), ie(d, "attributeNameCheck") && Dn(d.attributeNameCheck) && (p.attributeNameCheck = d.attributeNameCheck), ie(d, "allowCustomizedBuiltInElements") && typeof d.allowCustomizedBuiltInElements == "boolean" && (p.allowCustomizedBuiltInElements = d.allowCustomizedBuiltInElements), V && (k = !1), Ct && (tt = !0), nt && (ee = z({}, ns), g = ht(null), nt.html === !0 && (z(ee, ts), z(g, ss)), nt.svg === !0 && (z(ee, an), z(g, on), z(g, zt)), nt.svgFilters === !0 && (z(ee, rn), z(g, on), z(g, zt)), nt.mathMl === !0 && (z(ee, ln), z(g, is), z(g, zt))), O.tagCheck = null, O.attributeCheck = null, ie(r, "ADD_TAGS") && (typeof r.ADD_TAGS == "function" ? O.tagCheck = r.ADD_TAGS : ge(r.ADD_TAGS) && (ee === Ye && (ee = he(ee)), z(ee, r.ADD_TAGS, re))), ie(r, "ADD_ATTR") && (typeof r.ADD_ATTR == "function" ? O.attributeCheck = r.ADD_ATTR : ge(r.ADD_ATTR) && (g === _ && (g = he(g)), z(g, r.ADD_ATTR, re))), ie(r, "ADD_URI_SAFE_ATTR") && ge(r.ADD_URI_SAFE_ATTR) && z(Zt, r.ADD_URI_SAFE_ATTR, re), ie(r, "FORBID_CONTENTS") && ge(r.FORBID_CONTENTS) && (De === Kt && (De = he(De)), z(De, r.FORBID_CONTENTS, re)), ie(r, "ADD_FORBID_CONTENTS") && ge(r.ADD_FORBID_CONTENTS) && (De === Kt && (De = he(De)), z(De, r.ADD_FORBID_CONTENTS, re)), Yt && (ee["#text"] = !0), ye && z(ee, ["html", "head", "body"]), ee.table && (z(ee, ["tbody"]), delete S.tbody), r.TRUSTED_TYPES_POLICY) {
|
|
871
871
|
if (typeof r.TRUSTED_TYPES_POLICY.createHTML != "function")
|
|
872
|
-
throw
|
|
872
|
+
throw St('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
|
|
873
873
|
if (typeof r.TRUSTED_TYPES_POLICY.createScriptURL != "function")
|
|
874
|
-
throw
|
|
875
|
-
|
|
874
|
+
throw St('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
|
|
875
|
+
H = r.TRUSTED_TYPES_POLICY, J = H.createHTML("");
|
|
876
876
|
} else
|
|
877
|
-
|
|
878
|
-
(
|
|
879
|
-
}, "_parseConfig"), Mn =
|
|
880
|
-
let
|
|
881
|
-
(!
|
|
882
|
-
namespaceURI:
|
|
877
|
+
H === void 0 && (H = Pi(b, i)), H !== null && typeof J == "string" && (J = H.createHTML(""));
|
|
878
|
+
(se.uponSanitizeElement.length > 0 || se.uponSanitizeAttribute.length > 0) && ee === Ye && (ee = he(ee)), se.uponSanitizeAttribute.length > 0 && g === _ && (g = he(g)), ke && ke(r), it = r;
|
|
879
|
+
}, "_parseConfig"), Mn = z({}, [...an, ...rn, ..._i]), $n = z({}, [...ln, ...Ei]), zs = /* @__PURE__ */ h(function(r) {
|
|
880
|
+
let d = Q(r);
|
|
881
|
+
(!d || !d.tagName) && (d = {
|
|
882
|
+
namespaceURI: st,
|
|
883
883
|
tagName: "template"
|
|
884
884
|
});
|
|
885
|
-
const
|
|
886
|
-
return Qt[r.namespaceURI] ? r.namespaceURI ===
|
|
887
|
-
}, "_checkValidNamespace"),
|
|
888
|
-
|
|
885
|
+
const T = _t(r.tagName), K = _t(d.tagName);
|
|
886
|
+
return Qt[r.namespaceURI] ? r.namespaceURI === Mt ? d.namespaceURI === Me ? T === "svg" : d.namespaceURI === Dt ? T === "svg" && (K === "annotation-xml" || Jt[K]) : !!Mn[T] : r.namespaceURI === Dt ? d.namespaceURI === Me ? T === "math" : d.namespaceURI === Mt ? T === "math" && en[K] : !!$n[T] : r.namespaceURI === Me ? d.namespaceURI === Mt && !en[K] || d.namespaceURI === Dt && !Jt[K] ? !1 : !$n[T] && ($s[T] || !Mn[T]) : !!(vt === "application/xhtml+xml" && Qt[r.namespaceURI]) : !1;
|
|
887
|
+
}, "_checkValidNamespace"), Se = /* @__PURE__ */ h(function(r) {
|
|
888
|
+
ot(t.removed, {
|
|
889
889
|
element: r
|
|
890
890
|
});
|
|
891
891
|
try {
|
|
892
|
-
|
|
892
|
+
Q(r).removeChild(r);
|
|
893
893
|
} catch {
|
|
894
894
|
G(r);
|
|
895
895
|
}
|
|
896
|
-
}, "_forceRemove"),
|
|
896
|
+
}, "_forceRemove"), Ke = /* @__PURE__ */ h(function(r, d) {
|
|
897
897
|
try {
|
|
898
|
-
|
|
899
|
-
attribute:
|
|
900
|
-
from:
|
|
898
|
+
ot(t.removed, {
|
|
899
|
+
attribute: d.getAttributeNode(r),
|
|
900
|
+
from: d
|
|
901
901
|
});
|
|
902
902
|
} catch {
|
|
903
|
-
|
|
903
|
+
ot(t.removed, {
|
|
904
904
|
attribute: null,
|
|
905
|
-
from:
|
|
905
|
+
from: d
|
|
906
906
|
});
|
|
907
907
|
}
|
|
908
|
-
if (
|
|
909
|
-
if (
|
|
908
|
+
if (d.removeAttribute(r), r === "is")
|
|
909
|
+
if (tt || Ct)
|
|
910
910
|
try {
|
|
911
|
-
|
|
911
|
+
Se(d);
|
|
912
912
|
} catch {
|
|
913
913
|
}
|
|
914
914
|
else
|
|
915
915
|
try {
|
|
916
|
-
|
|
916
|
+
d.setAttribute(r, "");
|
|
917
917
|
} catch {
|
|
918
918
|
}
|
|
919
|
-
}, "_removeAttribute"), Ln = /* @__PURE__ */
|
|
920
|
-
let
|
|
921
|
-
if (
|
|
919
|
+
}, "_removeAttribute"), Ln = /* @__PURE__ */ h(function(r) {
|
|
920
|
+
let d = null, T = null;
|
|
921
|
+
if (kt)
|
|
922
922
|
r = "<remove></remove>" + r;
|
|
923
923
|
else {
|
|
924
|
-
const
|
|
925
|
-
|
|
924
|
+
const te = Xn(r, /^[\r\n\t ]+/);
|
|
925
|
+
T = te && te[0];
|
|
926
926
|
}
|
|
927
|
-
|
|
928
|
-
const K =
|
|
929
|
-
if (
|
|
927
|
+
vt === "application/xhtml+xml" && st === Me && (r = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + r + "</body></html>");
|
|
928
|
+
const K = H ? H.createHTML(r) : r;
|
|
929
|
+
if (st === Me)
|
|
930
930
|
try {
|
|
931
|
-
|
|
931
|
+
d = new v().parseFromString(K, vt);
|
|
932
932
|
} catch {
|
|
933
933
|
}
|
|
934
|
-
if (!
|
|
935
|
-
|
|
934
|
+
if (!d || !d.documentElement) {
|
|
935
|
+
d = pe.createDocument(st, "template", null);
|
|
936
936
|
try {
|
|
937
|
-
|
|
937
|
+
d.documentElement.innerHTML = Xt ? J : K;
|
|
938
938
|
} catch {
|
|
939
939
|
}
|
|
940
940
|
}
|
|
941
|
-
const
|
|
942
|
-
return r &&
|
|
943
|
-
}, "_initDocument"), On = /* @__PURE__ */
|
|
944
|
-
return
|
|
941
|
+
const U = d.body || d.documentElement;
|
|
942
|
+
return r && T && U.insertBefore(e.createTextNode(T), U.childNodes[0] || null), st === Me ? Pe.call(d, ye ? "html" : "body")[0] : ye ? d.documentElement : U;
|
|
943
|
+
}, "_initDocument"), On = /* @__PURE__ */ h(function(r) {
|
|
944
|
+
return ve.call(
|
|
945
945
|
r.ownerDocument || r,
|
|
946
946
|
r,
|
|
947
947
|
// eslint-disable-next-line no-bitwise
|
|
948
948
|
u.SHOW_ELEMENT | u.SHOW_COMMENT | u.SHOW_TEXT | u.SHOW_PROCESSING_INSTRUCTION | u.SHOW_CDATA_SECTION,
|
|
949
949
|
null
|
|
950
950
|
);
|
|
951
|
-
}, "_createNodeIterator"), Nn = /* @__PURE__ */
|
|
951
|
+
}, "_createNodeIterator"), Nn = /* @__PURE__ */ h(function(r) {
|
|
952
952
|
r.normalize();
|
|
953
|
-
const
|
|
953
|
+
const d = ve.call(
|
|
954
954
|
r.ownerDocument || r,
|
|
955
955
|
r,
|
|
956
956
|
// eslint-disable-next-line no-bitwise
|
|
957
957
|
u.SHOW_TEXT | u.SHOW_COMMENT | u.SHOW_CDATA_SECTION | u.SHOW_PROCESSING_INSTRUCTION,
|
|
958
958
|
null
|
|
959
959
|
);
|
|
960
|
-
let
|
|
961
|
-
for (;
|
|
962
|
-
let K =
|
|
963
|
-
|
|
964
|
-
K =
|
|
965
|
-
}),
|
|
966
|
-
}
|
|
967
|
-
}, "_scrubTemplateExpressions"),
|
|
968
|
-
const
|
|
969
|
-
return typeof
|
|
960
|
+
let T = d.nextNode();
|
|
961
|
+
for (; T; ) {
|
|
962
|
+
let K = T.data;
|
|
963
|
+
lt([Ue, be, ce], (U) => {
|
|
964
|
+
K = ct(K, U, " ");
|
|
965
|
+
}), T.data = K, T = d.nextNode();
|
|
966
|
+
}
|
|
967
|
+
}, "_scrubTemplateExpressions"), $t = /* @__PURE__ */ h(function(r) {
|
|
968
|
+
const d = q ? q(r) : null;
|
|
969
|
+
return typeof d != "string" || re(d) !== "form" ? !1 : typeof r.nodeName != "string" || typeof r.textContent != "string" || typeof r.removeChild != "function" || // Realm-safe NamedNodeMap detection: equality against the cached
|
|
970
970
|
// prototype getter. Clobbered .attributes (e.g. <input name="attributes">)
|
|
971
971
|
// makes the direct read diverge from the cached read; a clean form
|
|
972
972
|
// (same-realm OR foreign-realm) has both reads pointing at the same
|
|
@@ -978,7 +978,7 @@ function ys() {
|
|
|
978
978
|
// an internal slot, no serialization cost — and removes a residual
|
|
979
979
|
// clobbering surface used by several mXSS / PI / comment branches
|
|
980
980
|
// in _sanitizeElements that compare currentNode.nodeType directly.
|
|
981
|
-
r.nodeType !==
|
|
981
|
+
r.nodeType !== F(r) || // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named
|
|
982
982
|
// "childNodes" shadows the prototype getter. Direct reads of
|
|
983
983
|
// form.childNodes from a clobbered form return the named child
|
|
984
984
|
// instead of the real NodeList, so any walk that reads it directly
|
|
@@ -990,79 +990,79 @@ function ys() {
|
|
|
990
990
|
// carry a numeric .length, which a typeof-based probe would miss
|
|
991
991
|
// (e.g. HTMLSelectElement.length is a defined unsigned-long).
|
|
992
992
|
r.childNodes !== X(r);
|
|
993
|
-
}, "_isClobbered"),
|
|
994
|
-
if (!
|
|
993
|
+
}, "_isClobbered"), yt = /* @__PURE__ */ h(function(r) {
|
|
994
|
+
if (!F || typeof r != "object" || r === null)
|
|
995
995
|
return !1;
|
|
996
996
|
try {
|
|
997
|
-
return
|
|
997
|
+
return F(r) === Le.documentFragment;
|
|
998
998
|
} catch {
|
|
999
999
|
return !1;
|
|
1000
1000
|
}
|
|
1001
|
-
}, "_isDocumentFragment"),
|
|
1002
|
-
if (!
|
|
1001
|
+
}, "_isDocumentFragment"), Lt = /* @__PURE__ */ h(function(r) {
|
|
1002
|
+
if (!F || typeof r != "object" || r === null)
|
|
1003
1003
|
return !1;
|
|
1004
1004
|
try {
|
|
1005
|
-
return typeof
|
|
1005
|
+
return typeof F(r) == "number";
|
|
1006
1006
|
} catch {
|
|
1007
1007
|
return !1;
|
|
1008
1008
|
}
|
|
1009
1009
|
}, "_isNode");
|
|
1010
|
-
function
|
|
1011
|
-
|
|
1012
|
-
|
|
1010
|
+
function Fe(C, r, d) {
|
|
1011
|
+
lt(C, (T) => {
|
|
1012
|
+
T.call(t, r, d, it);
|
|
1013
1013
|
});
|
|
1014
1014
|
}
|
|
1015
|
-
|
|
1016
|
-
const zn = /* @__PURE__ */
|
|
1017
|
-
let
|
|
1018
|
-
if (
|
|
1019
|
-
return
|
|
1020
|
-
const
|
|
1021
|
-
if (
|
|
1022
|
-
tagName:
|
|
1023
|
-
allowedTags:
|
|
1024
|
-
}),
|
|
1025
|
-
return
|
|
1026
|
-
if (
|
|
1027
|
-
if (!
|
|
1015
|
+
h(Fe, "_executeHooks");
|
|
1016
|
+
const zn = /* @__PURE__ */ h(function(r) {
|
|
1017
|
+
let d = null;
|
|
1018
|
+
if (Fe(se.beforeSanitizeElements, r, null), $t(r))
|
|
1019
|
+
return Se(r), !0;
|
|
1020
|
+
const T = re(r.nodeName);
|
|
1021
|
+
if (Fe(se.uponSanitizeElement, r, {
|
|
1022
|
+
tagName: T,
|
|
1023
|
+
allowedTags: ee
|
|
1024
|
+
}), fe && r.hasChildNodes() && !Lt(r.firstElementChild) && ue(/<[/\w!]/g, r.innerHTML) && ue(/<[/\w!]/g, r.textContent) || fe && r.namespaceURI === Me && T === "style" && Lt(r.firstElementChild) || r.nodeType === Le.progressingInstruction || fe && r.nodeType === Le.comment && ue(/<[/\w]/g, r.data))
|
|
1025
|
+
return Se(r), !0;
|
|
1026
|
+
if (S[T] || !(O.tagCheck instanceof Function && O.tagCheck(T)) && !ee[T]) {
|
|
1027
|
+
if (!S[T] && Fn(T) && (p.tagNameCheck instanceof RegExp && ue(p.tagNameCheck, T) || p.tagNameCheck instanceof Function && p.tagNameCheck(T)))
|
|
1028
1028
|
return !1;
|
|
1029
|
-
if (Yt && !
|
|
1030
|
-
const
|
|
1031
|
-
if (
|
|
1032
|
-
const
|
|
1033
|
-
for (let
|
|
1034
|
-
const
|
|
1035
|
-
|
|
1029
|
+
if (Yt && !De[T]) {
|
|
1030
|
+
const U = Q(r), te = X(r);
|
|
1031
|
+
if (te && U) {
|
|
1032
|
+
const we = te.length;
|
|
1033
|
+
for (let $e = we - 1; $e >= 0; --$e) {
|
|
1034
|
+
const Ae = E(te[$e], !0);
|
|
1035
|
+
U.insertBefore(Ae, R(r));
|
|
1036
1036
|
}
|
|
1037
1037
|
}
|
|
1038
1038
|
}
|
|
1039
|
-
return
|
|
1039
|
+
return Se(r), !0;
|
|
1040
1040
|
}
|
|
1041
|
-
return (
|
|
1042
|
-
|
|
1043
|
-
}), r.textContent !==
|
|
1041
|
+
return (F ? F(r) : r.nodeType) === Le.element && !zs(r) || (T === "noscript" || T === "noembed" || T === "noframes") && ue(/<\/no(script|embed|frames)/i, r.innerHTML) ? (Se(r), !0) : (V && r.nodeType === Le.text && (d = r.textContent, lt([Ue, be, ce], (U) => {
|
|
1042
|
+
d = ct(d, U, " ");
|
|
1043
|
+
}), r.textContent !== d && (ot(t.removed, {
|
|
1044
1044
|
element: r.cloneNode()
|
|
1045
|
-
}), r.textContent =
|
|
1046
|
-
}, "_sanitizeElements"), Pn = /* @__PURE__ */
|
|
1047
|
-
if (
|
|
1045
|
+
}), r.textContent = d)), Fe(se.afterSanitizeElements, r, null), !1);
|
|
1046
|
+
}, "_sanitizeElements"), Pn = /* @__PURE__ */ h(function(r, d, T) {
|
|
1047
|
+
if (D[d] || An && (d === "id" || d === "name") && (T in e || T in Ns))
|
|
1048
1048
|
return !1;
|
|
1049
|
-
const K =
|
|
1050
|
-
if (!(
|
|
1051
|
-
if (!(
|
|
1052
|
-
if (!K ||
|
|
1049
|
+
const K = g[d] || O.attributeCheck instanceof Function && O.attributeCheck(d, r);
|
|
1050
|
+
if (!(k && !D[d] && ue(Ce, d))) {
|
|
1051
|
+
if (!(y && ue(N, d))) {
|
|
1052
|
+
if (!K || D[d]) {
|
|
1053
1053
|
if (
|
|
1054
1054
|
// First condition does a very basic check if a) it's basically a valid custom element tagname AND
|
|
1055
1055
|
// b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
|
|
1056
1056
|
// and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
|
|
1057
|
-
!(Fn(r) && (
|
|
1057
|
+
!(Fn(r) && (p.tagNameCheck instanceof RegExp && ue(p.tagNameCheck, r) || p.tagNameCheck instanceof Function && p.tagNameCheck(r)) && (p.attributeNameCheck instanceof RegExp && ue(p.attributeNameCheck, d) || p.attributeNameCheck instanceof Function && p.attributeNameCheck(d, r)) || // Alternative, second condition checks if it's an `is`-attribute, AND
|
|
1058
1058
|
// the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
|
|
1059
|
-
|
|
1059
|
+
d === "is" && p.allowCustomizedBuiltInElements && (p.tagNameCheck instanceof RegExp && ue(p.tagNameCheck, T) || p.tagNameCheck instanceof Function && p.tagNameCheck(T)))
|
|
1060
1060
|
) return !1;
|
|
1061
|
-
} else if (!Zt[
|
|
1062
|
-
if (!
|
|
1063
|
-
if (!((
|
|
1064
|
-
if (!(
|
|
1065
|
-
if (
|
|
1061
|
+
} else if (!Zt[d]) {
|
|
1062
|
+
if (!ue(Ge, ct(T, He, ""))) {
|
|
1063
|
+
if (!((d === "src" || d === "xlink:href" || d === "href") && r !== "script" && Qn(T, "data:") === 0 && Rn[r])) {
|
|
1064
|
+
if (!(f && !ue(Je, ct(T, He, "")))) {
|
|
1065
|
+
if (T)
|
|
1066
1066
|
return !1;
|
|
1067
1067
|
}
|
|
1068
1068
|
}
|
|
@@ -1071,232 +1071,232 @@ function ys() {
|
|
|
1071
1071
|
}
|
|
1072
1072
|
}
|
|
1073
1073
|
return !0;
|
|
1074
|
-
}, "_isValidAttribute"), Ps =
|
|
1075
|
-
return !Ps[
|
|
1076
|
-
}, "_isBasicCustomElement"), Bn = /* @__PURE__ */
|
|
1077
|
-
|
|
1078
|
-
const
|
|
1079
|
-
if (!
|
|
1074
|
+
}, "_isValidAttribute"), Ps = z({}, ["annotation-xml", "color-profile", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "missing-glyph"]), Fn = /* @__PURE__ */ h(function(r) {
|
|
1075
|
+
return !Ps[_t(r)] && ue(et, r);
|
|
1076
|
+
}, "_isBasicCustomElement"), Bn = /* @__PURE__ */ h(function(r) {
|
|
1077
|
+
Fe(se.beforeSanitizeAttributes, r, null);
|
|
1078
|
+
const d = r.attributes;
|
|
1079
|
+
if (!d || $t(r))
|
|
1080
1080
|
return;
|
|
1081
|
-
const
|
|
1081
|
+
const T = {
|
|
1082
1082
|
attrName: "",
|
|
1083
1083
|
attrValue: "",
|
|
1084
1084
|
keepAttr: !0,
|
|
1085
|
-
allowedAttributes:
|
|
1085
|
+
allowedAttributes: g,
|
|
1086
1086
|
forceKeepAttr: void 0
|
|
1087
1087
|
};
|
|
1088
|
-
let K =
|
|
1088
|
+
let K = d.length;
|
|
1089
1089
|
for (; K--; ) {
|
|
1090
|
-
const
|
|
1091
|
-
let
|
|
1092
|
-
if (
|
|
1093
|
-
|
|
1090
|
+
const U = d[K], te = U.name, we = U.namespaceURI, $e = U.value, Ae = re(te), nn = $e;
|
|
1091
|
+
let oe = te === "value" ? nn : bi(nn);
|
|
1092
|
+
if (T.attrName = Ae, T.attrValue = oe, T.keepAttr = !0, T.forceKeepAttr = void 0, Fe(se.uponSanitizeAttribute, r, T), oe = T.attrValue, _n && (Ae === "id" || Ae === "name") && Qn(oe, En) !== 0 && (Ke(te, r), oe = En + oe), fe && ue(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, oe)) {
|
|
1093
|
+
Ke(te, r);
|
|
1094
1094
|
continue;
|
|
1095
1095
|
}
|
|
1096
|
-
if (
|
|
1097
|
-
|
|
1096
|
+
if (Ae === "attributename" && Xn(oe, "href")) {
|
|
1097
|
+
Ke(te, r);
|
|
1098
1098
|
continue;
|
|
1099
1099
|
}
|
|
1100
|
-
if (
|
|
1100
|
+
if (T.forceKeepAttr)
|
|
1101
1101
|
continue;
|
|
1102
|
-
if (!
|
|
1103
|
-
|
|
1102
|
+
if (!T.keepAttr) {
|
|
1103
|
+
Ke(te, r);
|
|
1104
1104
|
continue;
|
|
1105
1105
|
}
|
|
1106
|
-
if (!L &&
|
|
1107
|
-
|
|
1106
|
+
if (!L && ue(/\/>/i, oe)) {
|
|
1107
|
+
Ke(te, r);
|
|
1108
1108
|
continue;
|
|
1109
1109
|
}
|
|
1110
|
-
|
|
1111
|
-
|
|
1110
|
+
V && lt([Ue, be, ce], (Hn) => {
|
|
1111
|
+
oe = ct(oe, Hn, " ");
|
|
1112
1112
|
});
|
|
1113
|
-
const Un =
|
|
1114
|
-
if (!Pn(Un,
|
|
1115
|
-
|
|
1113
|
+
const Un = re(r.nodeName);
|
|
1114
|
+
if (!Pn(Un, Ae, oe)) {
|
|
1115
|
+
Ke(te, r);
|
|
1116
1116
|
continue;
|
|
1117
1117
|
}
|
|
1118
|
-
if (
|
|
1119
|
-
switch (
|
|
1118
|
+
if (H && typeof b == "object" && typeof b.getAttributeType == "function" && !we)
|
|
1119
|
+
switch (b.getAttributeType(Un, Ae)) {
|
|
1120
1120
|
case "TrustedHTML": {
|
|
1121
|
-
|
|
1121
|
+
oe = H.createHTML(oe);
|
|
1122
1122
|
break;
|
|
1123
1123
|
}
|
|
1124
1124
|
case "TrustedScriptURL": {
|
|
1125
|
-
|
|
1125
|
+
oe = H.createScriptURL(oe);
|
|
1126
1126
|
break;
|
|
1127
1127
|
}
|
|
1128
1128
|
}
|
|
1129
|
-
if (
|
|
1129
|
+
if (oe !== nn)
|
|
1130
1130
|
try {
|
|
1131
|
-
|
|
1131
|
+
we ? r.setAttributeNS(we, te, oe) : r.setAttribute(te, oe), $t(r) ? Se(r) : Zn(t.removed);
|
|
1132
1132
|
} catch {
|
|
1133
|
-
|
|
1133
|
+
Ke(te, r);
|
|
1134
1134
|
}
|
|
1135
1135
|
}
|
|
1136
|
-
|
|
1137
|
-
}, "_sanitizeAttributes"),
|
|
1138
|
-
let
|
|
1139
|
-
const
|
|
1140
|
-
for (
|
|
1141
|
-
if (
|
|
1142
|
-
const
|
|
1143
|
-
|
|
1144
|
-
}
|
|
1145
|
-
|
|
1146
|
-
}, "_sanitizeShadowDOM"),
|
|
1147
|
-
const
|
|
1148
|
-
if (
|
|
1149
|
-
const
|
|
1150
|
-
|
|
1151
|
-
}
|
|
1152
|
-
const
|
|
1153
|
-
if (!
|
|
1136
|
+
Fe(se.afterSanitizeAttributes, r, null);
|
|
1137
|
+
}, "_sanitizeAttributes"), Ot = /* @__PURE__ */ h(function(r) {
|
|
1138
|
+
let d = null;
|
|
1139
|
+
const T = On(r);
|
|
1140
|
+
for (Fe(se.beforeSanitizeShadowDOM, r, null); d = T.nextNode(); )
|
|
1141
|
+
if (Fe(se.uponSanitizeShadowNode, d, null), zn(d), Bn(d), yt(d.content) && Ot(d.content), (F ? F(d) : d.nodeType) === Le.element) {
|
|
1142
|
+
const U = M ? M(d) : d.shadowRoot;
|
|
1143
|
+
yt(U) && (at(U), Ot(U));
|
|
1144
|
+
}
|
|
1145
|
+
Fe(se.afterSanitizeShadowDOM, r, null);
|
|
1146
|
+
}, "_sanitizeShadowDOM"), at = /* @__PURE__ */ h(function(r) {
|
|
1147
|
+
const d = F ? F(r) : r.nodeType;
|
|
1148
|
+
if (d === Le.element) {
|
|
1149
|
+
const U = M ? M(r) : r.shadowRoot;
|
|
1150
|
+
yt(U) && (at(U), Ot(U));
|
|
1151
|
+
}
|
|
1152
|
+
const T = X ? X(r) : r.childNodes;
|
|
1153
|
+
if (!T)
|
|
1154
1154
|
return;
|
|
1155
1155
|
const K = [];
|
|
1156
|
-
|
|
1157
|
-
|
|
1156
|
+
lt(T, (U) => {
|
|
1157
|
+
ot(K, U);
|
|
1158
1158
|
});
|
|
1159
|
-
for (const
|
|
1160
|
-
|
|
1161
|
-
if (
|
|
1162
|
-
const
|
|
1163
|
-
if (typeof
|
|
1164
|
-
const
|
|
1165
|
-
|
|
1159
|
+
for (const U of K)
|
|
1160
|
+
at(U);
|
|
1161
|
+
if (d === Le.element) {
|
|
1162
|
+
const U = q ? q(r) : null;
|
|
1163
|
+
if (typeof U == "string" && re(U) === "template") {
|
|
1164
|
+
const te = r.content;
|
|
1165
|
+
yt(te) && at(te);
|
|
1166
1166
|
}
|
|
1167
1167
|
}
|
|
1168
1168
|
}, "_sanitizeAttachedShadowRoots");
|
|
1169
1169
|
return t.sanitize = function(C) {
|
|
1170
|
-
let r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {},
|
|
1171
|
-
if (Xt = !C, Xt && (C = "<!-->"), typeof C != "string" &&
|
|
1172
|
-
throw
|
|
1170
|
+
let r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, d = null, T = null, K = null, U = null;
|
|
1171
|
+
if (Xt = !C, Xt && (C = "<!-->"), typeof C != "string" && !Lt(C) && (C = Si(C), typeof C != "string"))
|
|
1172
|
+
throw St("dirty is not a string, aborting");
|
|
1173
1173
|
if (!t.isSupported)
|
|
1174
1174
|
return C;
|
|
1175
|
-
if (
|
|
1176
|
-
const
|
|
1177
|
-
if (typeof
|
|
1178
|
-
const
|
|
1179
|
-
if (!
|
|
1180
|
-
throw
|
|
1181
|
-
}
|
|
1182
|
-
if (
|
|
1183
|
-
throw
|
|
1184
|
-
|
|
1185
|
-
} else if (
|
|
1186
|
-
|
|
1175
|
+
if (Ie || tn(r), t.removed = [], typeof C == "string" && (bt = !1), bt) {
|
|
1176
|
+
const $e = q ? q(C) : C.nodeName;
|
|
1177
|
+
if (typeof $e == "string") {
|
|
1178
|
+
const Ae = re($e);
|
|
1179
|
+
if (!ee[Ae] || S[Ae])
|
|
1180
|
+
throw St("root node is forbidden and cannot be sanitized in-place");
|
|
1181
|
+
}
|
|
1182
|
+
if ($t(C))
|
|
1183
|
+
throw St("root node is clobbered and cannot be sanitized in-place");
|
|
1184
|
+
at(C);
|
|
1185
|
+
} else if (Lt(C))
|
|
1186
|
+
d = Ln("<!---->"), T = d.ownerDocument.importNode(C, !0), T.nodeType === Le.element && T.nodeName === "BODY" || T.nodeName === "HTML" ? d = T : d.appendChild(T), at(T);
|
|
1187
1187
|
else {
|
|
1188
|
-
if (!
|
|
1188
|
+
if (!tt && !V && !ye && // eslint-disable-next-line unicorn/prefer-includes
|
|
1189
1189
|
C.indexOf("<") === -1)
|
|
1190
|
-
return
|
|
1191
|
-
if (
|
|
1192
|
-
return
|
|
1193
|
-
}
|
|
1194
|
-
|
|
1195
|
-
const
|
|
1196
|
-
for (; K =
|
|
1197
|
-
zn(K), Bn(K),
|
|
1198
|
-
if (
|
|
1199
|
-
return
|
|
1200
|
-
if (
|
|
1201
|
-
if (
|
|
1202
|
-
for (
|
|
1203
|
-
|
|
1190
|
+
return H && It ? H.createHTML(C) : C;
|
|
1191
|
+
if (d = Ln(C), !d)
|
|
1192
|
+
return tt ? null : It ? J : "";
|
|
1193
|
+
}
|
|
1194
|
+
d && kt && Se(d.firstChild);
|
|
1195
|
+
const te = On(bt ? C : d);
|
|
1196
|
+
for (; K = te.nextNode(); )
|
|
1197
|
+
zn(K), Bn(K), yt(K.content) && Ot(K.content);
|
|
1198
|
+
if (bt)
|
|
1199
|
+
return V && Nn(C), C;
|
|
1200
|
+
if (tt) {
|
|
1201
|
+
if (V && Nn(d), Ct)
|
|
1202
|
+
for (U = xt.call(d.ownerDocument); d.firstChild; )
|
|
1203
|
+
U.appendChild(d.firstChild);
|
|
1204
1204
|
else
|
|
1205
|
-
|
|
1206
|
-
return (
|
|
1207
|
-
}
|
|
1208
|
-
let
|
|
1209
|
-
return
|
|
1210
|
-
` +
|
|
1211
|
-
|
|
1212
|
-
}),
|
|
1205
|
+
U = d;
|
|
1206
|
+
return (g.shadowroot || g.shadowrootmode) && (U = Be.call(n, U, !0)), U;
|
|
1207
|
+
}
|
|
1208
|
+
let we = ye ? d.outerHTML : d.innerHTML;
|
|
1209
|
+
return ye && ee["!doctype"] && d.ownerDocument && d.ownerDocument.doctype && d.ownerDocument.doctype.name && ue(Oi, d.ownerDocument.doctype.name) && (we = "<!DOCTYPE " + d.ownerDocument.doctype.name + `>
|
|
1210
|
+
` + we), V && lt([Ue, be, ce], ($e) => {
|
|
1211
|
+
we = ct(we, $e, " ");
|
|
1212
|
+
}), H && It ? H.createHTML(we) : we;
|
|
1213
1213
|
}, t.setConfig = function() {
|
|
1214
1214
|
let C = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
1215
|
-
tn(C),
|
|
1215
|
+
tn(C), Ie = !0;
|
|
1216
1216
|
}, t.clearConfig = function() {
|
|
1217
|
-
|
|
1218
|
-
}, t.isValidAttribute = function(C, r,
|
|
1219
|
-
|
|
1220
|
-
const
|
|
1221
|
-
return Pn(
|
|
1217
|
+
it = null, Ie = !1;
|
|
1218
|
+
}, t.isValidAttribute = function(C, r, d) {
|
|
1219
|
+
it || tn({});
|
|
1220
|
+
const T = re(C), K = re(r);
|
|
1221
|
+
return Pn(T, K, d);
|
|
1222
1222
|
}, t.addHook = function(C, r) {
|
|
1223
|
-
typeof r == "function" &&
|
|
1223
|
+
typeof r == "function" && ot(se[C], r);
|
|
1224
1224
|
}, t.removeHook = function(C, r) {
|
|
1225
1225
|
if (r !== void 0) {
|
|
1226
|
-
const
|
|
1227
|
-
return
|
|
1226
|
+
const d = xi(se[C], r);
|
|
1227
|
+
return d === -1 ? void 0 : ki(se[C], d, 1)[0];
|
|
1228
1228
|
}
|
|
1229
|
-
return Zn(
|
|
1229
|
+
return Zn(se[C]);
|
|
1230
1230
|
}, t.removeHooks = function(C) {
|
|
1231
|
-
|
|
1231
|
+
se[C] = [];
|
|
1232
1232
|
}, t.removeAllHooks = function() {
|
|
1233
|
-
|
|
1233
|
+
se = rs();
|
|
1234
1234
|
}, t;
|
|
1235
1235
|
}
|
|
1236
|
-
|
|
1236
|
+
h(ys, "createDOMPurify");
|
|
1237
1237
|
var Fi = ys();
|
|
1238
1238
|
function gn() {
|
|
1239
1239
|
return { async: !1, breaks: !1, extensions: null, gfm: !0, hooks: null, pedantic: !1, renderer: null, silent: !1, tokenizer: null, walkTokens: null };
|
|
1240
1240
|
}
|
|
1241
|
-
|
|
1242
|
-
var
|
|
1241
|
+
h(gn, "M");
|
|
1242
|
+
var Qe = gn();
|
|
1243
1243
|
function ws(a) {
|
|
1244
|
-
|
|
1244
|
+
Qe = a;
|
|
1245
1245
|
}
|
|
1246
|
-
|
|
1247
|
-
var
|
|
1248
|
-
function
|
|
1246
|
+
h(ws, "N");
|
|
1247
|
+
var Ze = { exec: /* @__PURE__ */ h(() => null, "exec") };
|
|
1248
|
+
function ut(a) {
|
|
1249
1249
|
let t = [];
|
|
1250
1250
|
return (e) => {
|
|
1251
1251
|
let n = Math.max(0, Math.min(3, e - 1)), i = t[n];
|
|
1252
1252
|
return i || (i = a(n), t[n] = i), i;
|
|
1253
1253
|
};
|
|
1254
1254
|
}
|
|
1255
|
-
|
|
1255
|
+
h(ut, "E");
|
|
1256
1256
|
function W(a, t = "") {
|
|
1257
|
-
let e = typeof a == "string" ? a : a.source, n = { replace: /* @__PURE__ */
|
|
1257
|
+
let e = typeof a == "string" ? a : a.source, n = { replace: /* @__PURE__ */ h((i, s) => {
|
|
1258
1258
|
let l = typeof s == "string" ? s : s.source;
|
|
1259
|
-
return l = l.replace(
|
|
1260
|
-
}, "replace"), getRegex: /* @__PURE__ */
|
|
1259
|
+
return l = l.replace(de.caret, "$1"), e = e.replace(i, l), n;
|
|
1260
|
+
}, "replace"), getRegex: /* @__PURE__ */ h(() => new RegExp(e, t), "getRegex") };
|
|
1261
1261
|
return n;
|
|
1262
1262
|
}
|
|
1263
|
-
|
|
1263
|
+
h(W, "d");
|
|
1264
1264
|
var Bi = ((a = "") => {
|
|
1265
1265
|
try {
|
|
1266
1266
|
return !!new RegExp("(?<=1)(?<!1)" + a);
|
|
1267
1267
|
} catch {
|
|
1268
1268
|
return !1;
|
|
1269
1269
|
}
|
|
1270
|
-
})(),
|
|
1271
|
-
]`).replace("lheading", Ss).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() }, Ji = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, ea = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, _s = /^( {2,}|\\)\n(?!\s*$)/, ta = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,
|
|
1272
|
-
function
|
|
1270
|
+
})(), de = { codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm, outputLinkReplace: /\\([\[\]])/g, indentCodeCompensation: /^(\s+)(?:```)/, beginningSpace: /^\s+/, endingHash: /#$/, startingSpaceChar: /^ /, endingSpaceChar: / $/, nonSpaceChar: /[^ ]/, newLineCharGlobal: /\n/g, tabCharGlobal: /\t/g, multipleSpaceGlobal: /\s+/g, blankLine: /^[ \t]*$/, doubleBlankLine: /\n[ \t]*\n[ \t]*$/, blockquoteStart: /^ {0,3}>/, blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g, blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm, listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g, listIsTask: /^\[[ xX]\] +\S/, listReplaceTask: /^\[[ xX]\] +/, listTaskCheckbox: /\[[ xX]\]/, anyLine: /\n.*\n/, hrefBrackets: /^<(.*)>$/, tableDelimiter: /[:|]/, tableAlignChars: /^\||\| *$/g, tableRowBlankLine: /\n[ \t]*$/, tableAlignRight: /^ *-+: *$/, tableAlignCenter: /^ *:-+: *$/, tableAlignLeft: /^ *:-+ *$/, startATag: /^<a /i, endATag: /^<\/a>/i, startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i, endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i, startAngleBracket: /^</, endAngleBracket: />$/, pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/, unicodeAlphaNumeric: /[\p{L}\p{N}]/u, escapeTest: /[&<>"']/, escapeReplace: /[&<>"']/g, escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g, caret: /(^|[^\[])\^/g, percentDecode: /%25/g, findPipe: /\|/g, splitPipe: / \|/, slashPipe: /\\\|/g, carriageReturn: /\r\n|\r/g, spaceLine: /^ +$/gm, notSpaceStart: /^\S*/, endingNewline: /\n$/, listItemRegex: /* @__PURE__ */ h((a) => new RegExp(`^( {0,3}${a})((?:[ ][^\\n]*)?(?:\\n|$))`), "listItemRegex"), nextBulletRegex: ut((a) => new RegExp(`^ {0,${a}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)), hrRegex: ut((a) => new RegExp(`^ {0,${a}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)), fencesBeginRegex: ut((a) => new RegExp(`^ {0,${a}}(?:\`\`\`|~~~)`)), headingBeginRegex: ut((a) => new RegExp(`^ {0,${a}}#`)), htmlBeginRegex: ut((a) => new RegExp(`^ {0,${a}}<(?:[a-z].*>|!--)`, "i")), blockquoteBeginRegex: ut((a) => new RegExp(`^ {0,${a}}>`)) }, Ui = /^(?:[ \t]*(?:\n|$))+/, Hi = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, Gi = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, Rt = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, ji = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, mn = / {0,3}(?:[*+-]|\d{1,9}[.)])/, Ts = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, Ss = W(Ts).replace(/bull/g, mn).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(), Wi = W(Ts).replace(/bull/g, mn).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(), xn = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, qi = /^[^\n]+/, kn = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/, Vi = W(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", kn).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), Yi = W(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g, mn).getRegex(), qt = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", bn = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, Ki = W("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i").replace("comment", bn).replace("tag", qt).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), As = W(xn).replace("hr", Rt).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", qt).getRegex(), Zi = W(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", As).getRegex(), vn = { blockquote: Zi, code: Hi, def: Vi, fences: Gi, heading: ji, hr: Rt, html: Ki, lheading: Ss, list: Yi, newline: Ui, paragraph: As, table: Ze, text: qi }, ls = W("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", Rt).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", qt).getRegex(), Xi = { ...vn, lheading: Wi, table: ls, paragraph: W(xn).replace("hr", Rt).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", ls).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", qt).getRegex() }, Qi = { ...vn, html: W(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", bn).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(), def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, heading: /^(#{1,6})(.*)(?:\n+|$)/, fences: Ze, lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, paragraph: W(xn).replace("hr", Rt).replace("heading", ` *#{1,6} *[^
|
|
1271
|
+
]`).replace("lheading", Ss).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() }, Ji = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, ea = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, _s = /^( {2,}|\\)\n(?!\s*$)/, ta = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, mt = /[\p{P}\p{S}]/u, Vt = /[\s\p{P}\p{S}]/u, yn = /[^\s\p{P}\p{S}]/u, na = W(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, Vt).getRegex(), Es = /(?!~)[\p{P}\p{S}]/u, sa = /(?!~)[\s\p{P}\p{S}]/u, ia = /(?:[^\s\p{P}\p{S}]|~)/u, aa = W(/link|precode-code|html/, "g").replace("link", /\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", Bi ? "(?<!`)()" : "(^^|[^`])").replace("code", /(?<b>`+)[^`]+\k<b>(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(), Rs = /^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/, ra = W(Rs, "u").replace(/punct/g, mt).getRegex(), la = W(Rs, "u").replace(/punct/g, Es).getRegex(), Cs = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", oa = W(Cs, "gu").replace(/notPunctSpace/g, yn).replace(/punctSpace/g, Vt).replace(/punct/g, mt).getRegex(), ca = W(Cs, "gu").replace(/notPunctSpace/g, ia).replace(/punctSpace/g, sa).replace(/punct/g, Es).getRegex(), ua = W("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, yn).replace(/punctSpace/g, Vt).replace(/punct/g, mt).getRegex(), ha = W(/^~~?(?:((?!~)punct)|[^\s~])/, "u").replace(/punct/g, mt).getRegex(), da = "^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)", pa = W(da, "gu").replace(/notPunctSpace/g, yn).replace(/punctSpace/g, Vt).replace(/punct/g, mt).getRegex(), fa = W(/\\(punct)/, "gu").replace(/punct/g, mt).getRegex(), ga = W(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(), ma = W(bn).replace("(?:-->|$)", "-->").getRegex(), xa = W("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", ma).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), Ht = /(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/, ka = W(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label", Ht).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), Is = W(/^!?\[(label)\]\[(ref)\]/).replace("label", Ht).replace("ref", kn).getRegex(), Ds = W(/^!?\[(ref)\](?:\[\])?/).replace("ref", kn).getRegex(), ba = W("reflink|nolink(?!\\()", "g").replace("reflink", Is).replace("nolink", Ds).getRegex(), os = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/, wn = { _backpedal: Ze, anyPunctuation: fa, autolink: ga, blockSkip: aa, br: _s, code: ea, del: Ze, delLDelim: Ze, delRDelim: Ze, emStrongLDelim: ra, emStrongRDelimAst: oa, emStrongRDelimUnd: ua, escape: Ji, link: ka, nolink: Ds, punctuation: na, reflink: Is, reflinkSearch: ba, tag: xa, text: ta, url: Ze }, va = { ...wn, link: W(/^!?\[(label)\]\((.*?)\)/).replace("label", Ht).getRegex(), reflink: W(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", Ht).getRegex() }, pn = { ...wn, emStrongRDelimAst: ca, emStrongLDelim: la, delLDelim: ha, delRDelim: pa, url: W(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol", os).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(), _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/, text: W(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol", os).getRegex() }, ya = { ...pn, br: W(_s).replace("{2,}", "*").getRegex(), text: W(pn.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex() }, Pt = { normal: vn, gfm: Xi, pedantic: Qi }, At = { normal: wn, gfm: pn, breaks: ya, pedantic: va }, wa = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, cs = /* @__PURE__ */ h((a) => wa[a], "ge");
|
|
1272
|
+
function Ne(a, t) {
|
|
1273
1273
|
if (t) {
|
|
1274
|
-
if (
|
|
1275
|
-
} else if (
|
|
1274
|
+
if (de.escapeTest.test(a)) return a.replace(de.escapeReplace, cs);
|
|
1275
|
+
} else if (de.escapeTestNoEncode.test(a)) return a.replace(de.escapeReplaceNoEncode, cs);
|
|
1276
1276
|
return a;
|
|
1277
1277
|
}
|
|
1278
|
-
|
|
1278
|
+
h(Ne, "O");
|
|
1279
1279
|
function us(a) {
|
|
1280
1280
|
try {
|
|
1281
|
-
a = encodeURI(a).replace(
|
|
1281
|
+
a = encodeURI(a).replace(de.percentDecode, "%");
|
|
1282
1282
|
} catch {
|
|
1283
1283
|
return null;
|
|
1284
1284
|
}
|
|
1285
1285
|
return a;
|
|
1286
1286
|
}
|
|
1287
|
-
|
|
1287
|
+
h(us, "V");
|
|
1288
1288
|
function hs(a, t) {
|
|
1289
|
-
let e = a.replace(
|
|
1289
|
+
let e = a.replace(de.findPipe, (s, l, o) => {
|
|
1290
1290
|
let u = !1, c = l;
|
|
1291
1291
|
for (; --c >= 0 && o[c] === "\\"; ) u = !u;
|
|
1292
1292
|
return u ? "|" : " |";
|
|
1293
|
-
}), n = e.split(
|
|
1293
|
+
}), n = e.split(de.splitPipe), i = 0;
|
|
1294
1294
|
if (n[0].trim() || n.shift(), n.length > 0 && !n.at(-1)?.trim() && n.pop(), t) if (n.length > t) n.splice(t);
|
|
1295
1295
|
else for (; n.length < t; ) n.push("");
|
|
1296
|
-
for (; i < n.length; i++) n[i] = n[i].trim().replace(
|
|
1296
|
+
for (; i < n.length; i++) n[i] = n[i].trim().replace(de.slashPipe, "|");
|
|
1297
1297
|
return n;
|
|
1298
1298
|
}
|
|
1299
|
-
|
|
1299
|
+
h(hs, "Y");
|
|
1300
1300
|
function je(a, t, e) {
|
|
1301
1301
|
let n = a.length;
|
|
1302
1302
|
if (n === 0) return "";
|
|
@@ -1305,15 +1305,15 @@ function je(a, t, e) {
|
|
|
1305
1305
|
i++;
|
|
1306
1306
|
return a.slice(0, n - i);
|
|
1307
1307
|
}
|
|
1308
|
-
|
|
1308
|
+
h(je, "$");
|
|
1309
1309
|
function ds(a) {
|
|
1310
1310
|
let t = a.split(`
|
|
1311
1311
|
`), e = t.length - 1;
|
|
1312
|
-
for (; e >= 0 &&
|
|
1312
|
+
for (; e >= 0 && de.blankLine.test(t[e]); ) e--;
|
|
1313
1313
|
return t.length - e <= 2 ? a : t.slice(0, e + 1).join(`
|
|
1314
1314
|
`);
|
|
1315
1315
|
}
|
|
1316
|
-
|
|
1316
|
+
h(ds, "ee");
|
|
1317
1317
|
function Ta(a, t) {
|
|
1318
1318
|
if (a.indexOf(t[1]) === -1) return -1;
|
|
1319
1319
|
let e = 0;
|
|
@@ -1322,7 +1322,7 @@ function Ta(a, t) {
|
|
|
1322
1322
|
else if (a[n] === t[1] && (e--, e < 0)) return n;
|
|
1323
1323
|
return e > 0 ? -2 : -1;
|
|
1324
1324
|
}
|
|
1325
|
-
|
|
1325
|
+
h(Ta, "fe");
|
|
1326
1326
|
function Sa(a, t = 0) {
|
|
1327
1327
|
let e = t, n = "";
|
|
1328
1328
|
for (let i of a) if (i === " ") {
|
|
@@ -1331,14 +1331,14 @@ function Sa(a, t = 0) {
|
|
|
1331
1331
|
} else n += i, e++;
|
|
1332
1332
|
return n;
|
|
1333
1333
|
}
|
|
1334
|
-
|
|
1334
|
+
h(Sa, "me");
|
|
1335
1335
|
function ps(a, t, e, n, i) {
|
|
1336
1336
|
let s = t.href, l = t.title || null, o = a[1].replace(i.other.outputLinkReplace, "$1");
|
|
1337
1337
|
n.state.inLink = !0;
|
|
1338
1338
|
let u = { type: a[0].charAt(0) === "!" ? "image" : "link", raw: e, href: s, title: l, text: o, tokens: n.inlineTokens(o) };
|
|
1339
1339
|
return n.state.inLink = !1, u;
|
|
1340
1340
|
}
|
|
1341
|
-
|
|
1341
|
+
h(ps, "xe");
|
|
1342
1342
|
function Aa(a, t, e) {
|
|
1343
1343
|
let n = a.match(e.other.indentCodeCompensation);
|
|
1344
1344
|
if (n === null) return t;
|
|
@@ -1352,13 +1352,13 @@ function Aa(a, t, e) {
|
|
|
1352
1352
|
}).join(`
|
|
1353
1353
|
`);
|
|
1354
1354
|
}
|
|
1355
|
-
|
|
1356
|
-
var
|
|
1355
|
+
h(Aa, "st");
|
|
1356
|
+
var dt, Gt = (dt = class {
|
|
1357
1357
|
constructor(t) {
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
this.options = t ||
|
|
1358
|
+
B(this, "options");
|
|
1359
|
+
B(this, "rules");
|
|
1360
|
+
B(this, "lexer");
|
|
1361
|
+
this.options = t || Qe;
|
|
1362
1362
|
}
|
|
1363
1363
|
space(t) {
|
|
1364
1364
|
let e = this.rules.block.newline.exec(t);
|
|
@@ -1407,27 +1407,27 @@ var pt, Ht = (pt = class {
|
|
|
1407
1407
|
else if (!o) u.push(n[c]);
|
|
1408
1408
|
else break;
|
|
1409
1409
|
n = n.slice(c);
|
|
1410
|
-
let
|
|
1411
|
-
`),
|
|
1410
|
+
let v = u.join(`
|
|
1411
|
+
`), b = v.replace(this.rules.other.blockquoteSetextReplace, `
|
|
1412
1412
|
$1`).replace(this.rules.other.blockquoteSetextReplace2, "");
|
|
1413
1413
|
i = i ? `${i}
|
|
1414
|
-
${
|
|
1415
|
-
${
|
|
1414
|
+
${v}` : v, s = s ? `${s}
|
|
1415
|
+
${b}` : b;
|
|
1416
1416
|
let A = this.lexer.state.top;
|
|
1417
|
-
if (this.lexer.state.top = !0, this.lexer.blockTokens(
|
|
1418
|
-
let
|
|
1419
|
-
if (
|
|
1420
|
-
if (
|
|
1421
|
-
let G =
|
|
1417
|
+
if (this.lexer.state.top = !0, this.lexer.blockTokens(b, l, !0), this.lexer.state.top = A, n.length === 0) break;
|
|
1418
|
+
let E = l.at(-1);
|
|
1419
|
+
if (E?.type === "code") break;
|
|
1420
|
+
if (E?.type === "blockquote") {
|
|
1421
|
+
let G = E, R = G.raw + `
|
|
1422
1422
|
` + n.join(`
|
|
1423
1423
|
`), X = this.blockquote(R);
|
|
1424
1424
|
l[l.length - 1] = X, i = i.substring(0, i.length - G.raw.length) + X.raw, s = s.substring(0, s.length - G.text.length) + X.text;
|
|
1425
1425
|
break;
|
|
1426
|
-
} else if (
|
|
1427
|
-
let G =
|
|
1426
|
+
} else if (E?.type === "list") {
|
|
1427
|
+
let G = E, R = G.raw + `
|
|
1428
1428
|
` + n.join(`
|
|
1429
1429
|
`), X = this.list(R);
|
|
1430
|
-
l[l.length - 1] = X, i = i.substring(0, i.length -
|
|
1430
|
+
l[l.length - 1] = X, i = i.substring(0, i.length - E.raw.length) + X.raw, s = s.substring(0, s.length - G.raw.length) + X.raw, n = R.substring(l.at(-1).raw.length).split(`
|
|
1431
1431
|
`);
|
|
1432
1432
|
continue;
|
|
1433
1433
|
}
|
|
@@ -1442,31 +1442,31 @@ ${v}` : v;
|
|
|
1442
1442
|
n = i ? `\\d{1,9}\\${n.slice(-1)}` : `\\${n}`, this.options.pedantic && (n = i ? n : "[*+-]");
|
|
1443
1443
|
let l = this.rules.other.listItemRegex(n), o = !1;
|
|
1444
1444
|
for (; t; ) {
|
|
1445
|
-
let c = !1,
|
|
1445
|
+
let c = !1, v = "", b = "";
|
|
1446
1446
|
if (!(e = l.exec(t)) || this.rules.block.hr.test(t)) break;
|
|
1447
|
-
|
|
1447
|
+
v = e[0], t = t.substring(v.length);
|
|
1448
1448
|
let A = Sa(e[2].split(`
|
|
1449
|
-
`, 1)[0], e[1].length),
|
|
1449
|
+
`, 1)[0], e[1].length), E = t.split(`
|
|
1450
1450
|
`, 1)[0], G = !A.trim(), R = 0;
|
|
1451
|
-
if (this.options.pedantic ? (R = 2,
|
|
1452
|
-
`, t = t.substring(
|
|
1453
|
-
let X = this.rules.other.nextBulletRegex(R),
|
|
1451
|
+
if (this.options.pedantic ? (R = 2, b = A.trimStart()) : G ? R = e[1].length + 1 : (R = A.search(this.rules.other.nonSpaceChar), R = R > 4 ? 1 : R, b = A.slice(R), R += e[1].length), G && this.rules.other.blankLine.test(E) && (v += E + `
|
|
1452
|
+
`, t = t.substring(E.length + 1), c = !0), !c) {
|
|
1453
|
+
let X = this.rules.other.nextBulletRegex(R), Q = this.rules.other.hrRegex(R), M = this.rules.other.fencesBeginRegex(R), P = this.rules.other.headingBeginRegex(R), F = this.rules.other.htmlBeginRegex(R), q = this.rules.other.blockquoteBeginRegex(R);
|
|
1454
1454
|
for (; t; ) {
|
|
1455
|
-
let
|
|
1455
|
+
let H = t.split(`
|
|
1456
1456
|
`, 1)[0], J;
|
|
1457
|
-
if (
|
|
1458
|
-
if (J.search(this.rules.other.nonSpaceChar) >= R || !
|
|
1457
|
+
if (E = H, this.options.pedantic ? (E = E.replace(this.rules.other.listReplaceNesting, " "), J = E) : J = E.replace(this.rules.other.tabCharGlobal, " "), M.test(E) || P.test(E) || F.test(E) || q.test(E) || X.test(E) || Q.test(E)) break;
|
|
1458
|
+
if (J.search(this.rules.other.nonSpaceChar) >= R || !E.trim()) b += `
|
|
1459
1459
|
` + J.slice(R);
|
|
1460
1460
|
else {
|
|
1461
|
-
if (G || A.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4 ||
|
|
1462
|
-
|
|
1463
|
-
` +
|
|
1461
|
+
if (G || A.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4 || M.test(A) || P.test(A) || Q.test(A)) break;
|
|
1462
|
+
b += `
|
|
1463
|
+
` + E;
|
|
1464
1464
|
}
|
|
1465
|
-
G = !
|
|
1466
|
-
`, t = t.substring(
|
|
1465
|
+
G = !E.trim(), v += H + `
|
|
1466
|
+
`, t = t.substring(H.length + 1), A = J.slice(R);
|
|
1467
1467
|
}
|
|
1468
1468
|
}
|
|
1469
|
-
s.loose || (o ? s.loose = !0 : this.rules.other.doubleBlankLine.test(
|
|
1469
|
+
s.loose || (o ? s.loose = !0 : this.rules.other.doubleBlankLine.test(v) && (o = !0)), s.items.push({ type: "list_item", raw: v, task: !!this.options.gfm && this.rules.other.listIsTask.test(b), loose: !1, text: b, tokens: [] }), s.raw += v;
|
|
1470
1470
|
}
|
|
1471
1471
|
let u = s.items.at(-1);
|
|
1472
1472
|
if (u) u.raw = u.raw.trimEnd(), u.text = u.text.trimEnd();
|
|
@@ -1474,27 +1474,27 @@ ${v}` : v;
|
|
|
1474
1474
|
s.raw = s.raw.trimEnd();
|
|
1475
1475
|
for (let c of s.items) {
|
|
1476
1476
|
this.lexer.state.top = !1, c.tokens = this.lexer.blockTokens(c.text, []);
|
|
1477
|
-
let
|
|
1478
|
-
if (c.task && (
|
|
1479
|
-
c.text = c.text.replace(this.rules.other.listReplaceTask, ""),
|
|
1477
|
+
let v = c.tokens[0];
|
|
1478
|
+
if (c.task && (v?.type === "text" || v?.type === "paragraph")) {
|
|
1479
|
+
c.text = c.text.replace(this.rules.other.listReplaceTask, ""), v.raw = v.raw.replace(this.rules.other.listReplaceTask, ""), v.text = v.text.replace(this.rules.other.listReplaceTask, "");
|
|
1480
1480
|
for (let A = this.lexer.inlineQueue.length - 1; A >= 0; A--) if (this.rules.other.listIsTask.test(this.lexer.inlineQueue[A].src)) {
|
|
1481
1481
|
this.lexer.inlineQueue[A].src = this.lexer.inlineQueue[A].src.replace(this.rules.other.listReplaceTask, "");
|
|
1482
1482
|
break;
|
|
1483
1483
|
}
|
|
1484
|
-
let
|
|
1485
|
-
if (
|
|
1486
|
-
let A = { type: "checkbox", raw:
|
|
1484
|
+
let b = this.rules.other.listTaskCheckbox.exec(c.raw);
|
|
1485
|
+
if (b) {
|
|
1486
|
+
let A = { type: "checkbox", raw: b[0] + " ", checked: b[0] !== "[ ]" };
|
|
1487
1487
|
c.checked = A.checked, s.loose ? c.tokens[0] && ["paragraph", "text"].includes(c.tokens[0].type) && "tokens" in c.tokens[0] && c.tokens[0].tokens ? (c.tokens[0].raw = A.raw + c.tokens[0].raw, c.tokens[0].text = A.raw + c.tokens[0].text, c.tokens[0].tokens.unshift(A)) : c.tokens.unshift({ type: "paragraph", raw: A.raw, text: A.raw, tokens: [A] }) : c.tokens.unshift(A);
|
|
1488
1488
|
}
|
|
1489
1489
|
} else c.task && (c.task = !1);
|
|
1490
1490
|
if (!s.loose) {
|
|
1491
|
-
let
|
|
1491
|
+
let b = c.tokens.filter((E) => E.type === "space"), A = b.length > 0 && b.some((E) => this.rules.other.anyLine.test(E.raw));
|
|
1492
1492
|
s.loose = A;
|
|
1493
1493
|
}
|
|
1494
1494
|
}
|
|
1495
1495
|
if (s.loose) for (let c of s.items) {
|
|
1496
1496
|
c.loose = !0;
|
|
1497
|
-
for (let
|
|
1497
|
+
for (let v of c.tokens) v.type === "text" && (v.type = "paragraph");
|
|
1498
1498
|
}
|
|
1499
1499
|
return s;
|
|
1500
1500
|
}
|
|
@@ -1593,8 +1593,8 @@ ${v}` : v;
|
|
|
1593
1593
|
emStrong(t, e, n = "") {
|
|
1594
1594
|
let i = this.rules.inline.emStrongLDelim.exec(t);
|
|
1595
1595
|
if (!(!i || !i[1] && !i[2] && !i[3] && !i[4] || i[4] && n.match(this.rules.other.unicodeAlphaNumeric)) && (!(i[1] || i[3]) || !n || this.rules.inline.punctuation.exec(n))) {
|
|
1596
|
-
let s = [...i[0]].length - 1, l, o, u = s, c = 0,
|
|
1597
|
-
for (
|
|
1596
|
+
let s = [...i[0]].length - 1, l, o, u = s, c = 0, v = i[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
|
|
1597
|
+
for (v.lastIndex = 0, e = e.slice(-1 * t.length + s); (i = v.exec(e)) !== null; ) {
|
|
1598
1598
|
if (l = i[1] || i[2] || i[3] || i[4] || i[5] || i[6], !l) continue;
|
|
1599
1599
|
if (o = [...l].length, i[3] || i[4]) {
|
|
1600
1600
|
u += o;
|
|
@@ -1605,13 +1605,13 @@ ${v}` : v;
|
|
|
1605
1605
|
}
|
|
1606
1606
|
if (u -= o, u > 0) continue;
|
|
1607
1607
|
o = Math.min(o, o + u + c);
|
|
1608
|
-
let
|
|
1608
|
+
let b = [...i[0]][0].length, A = t.slice(0, s + i.index + b + o);
|
|
1609
1609
|
if (Math.min(s, o) % 2) {
|
|
1610
1610
|
let G = A.slice(1, -1);
|
|
1611
1611
|
return { type: "em", raw: A, text: G, tokens: this.lexer.inlineTokens(G) };
|
|
1612
1612
|
}
|
|
1613
|
-
let
|
|
1614
|
-
return { type: "strong", raw: A, text:
|
|
1613
|
+
let E = A.slice(2, -2);
|
|
1614
|
+
return { type: "strong", raw: A, text: E, tokens: this.lexer.inlineTokens(E) };
|
|
1615
1615
|
}
|
|
1616
1616
|
}
|
|
1617
1617
|
}
|
|
@@ -1638,8 +1638,8 @@ ${v}` : v;
|
|
|
1638
1638
|
}
|
|
1639
1639
|
if (u -= o, u > 0) continue;
|
|
1640
1640
|
o = Math.min(o, o + u);
|
|
1641
|
-
let
|
|
1642
|
-
return { type: "del", raw:
|
|
1641
|
+
let v = [...i[0]][0].length, b = t.slice(0, s + i.index + v + o), A = b.slice(s, -s);
|
|
1642
|
+
return { type: "del", raw: b, text: A, tokens: this.lexer.inlineTokens(A) };
|
|
1643
1643
|
}
|
|
1644
1644
|
}
|
|
1645
1645
|
}
|
|
@@ -1672,19 +1672,19 @@ ${v}` : v;
|
|
|
1672
1672
|
return { type: "text", raw: e[0], text: e[0], escaped: n };
|
|
1673
1673
|
}
|
|
1674
1674
|
}
|
|
1675
|
-
},
|
|
1675
|
+
}, h(dt, "w"), dt), qe, _e = (qe = class {
|
|
1676
1676
|
constructor(t) {
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
this.tokens = [], this.tokens.links = /* @__PURE__ */ Object.create(null), this.options = t ||
|
|
1683
|
-
let e = { other:
|
|
1684
|
-
this.options.pedantic ? (e.block =
|
|
1677
|
+
B(this, "tokens");
|
|
1678
|
+
B(this, "options");
|
|
1679
|
+
B(this, "state");
|
|
1680
|
+
B(this, "inlineQueue");
|
|
1681
|
+
B(this, "tokenizer");
|
|
1682
|
+
this.tokens = [], this.tokens.links = /* @__PURE__ */ Object.create(null), this.options = t || Qe, this.options.tokenizer = this.options.tokenizer || new Gt(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = { inLink: !1, inRawBlock: !1, top: !0 };
|
|
1683
|
+
let e = { other: de, block: Pt.normal, inline: At.normal };
|
|
1684
|
+
this.options.pedantic ? (e.block = Pt.pedantic, e.inline = At.pedantic) : this.options.gfm && (e.block = Pt.gfm, this.options.breaks ? e.inline = At.breaks : e.inline = At.gfm), this.tokenizer.rules = e;
|
|
1685
1685
|
}
|
|
1686
1686
|
static get rules() {
|
|
1687
|
-
return { block:
|
|
1687
|
+
return { block: Pt, inline: At };
|
|
1688
1688
|
}
|
|
1689
1689
|
static lex(t, e) {
|
|
1690
1690
|
return new qe(e).lex(t);
|
|
@@ -1693,7 +1693,7 @@ ${v}` : v;
|
|
|
1693
1693
|
return new qe(e).inlineTokens(t);
|
|
1694
1694
|
}
|
|
1695
1695
|
lex(t) {
|
|
1696
|
-
t = t.replace(
|
|
1696
|
+
t = t.replace(de.carriageReturn, `
|
|
1697
1697
|
`), this.blockTokens(t, this.tokens);
|
|
1698
1698
|
for (let e = 0; e < this.inlineQueue.length; e++) {
|
|
1699
1699
|
let n = this.inlineQueue[e];
|
|
@@ -1702,7 +1702,7 @@ ${v}` : v;
|
|
|
1702
1702
|
return this.inlineQueue = [], this.tokens;
|
|
1703
1703
|
}
|
|
1704
1704
|
blockTokens(t, e = [], n = !1) {
|
|
1705
|
-
this.tokenizer.lexer = this, this.options.pedantic && (t = t.replace(
|
|
1705
|
+
this.tokenizer.lexer = this, this.options.pedantic && (t = t.replace(de.tabCharGlobal, " ").replace(de.spaceLine, ""));
|
|
1706
1706
|
let i = 1 / 0;
|
|
1707
1707
|
for (; t; ) {
|
|
1708
1708
|
if (t.length < i) i = t.length;
|
|
@@ -1772,8 +1772,8 @@ ${v}` : v;
|
|
|
1772
1772
|
let l = t;
|
|
1773
1773
|
if (this.options.extensions?.startBlock) {
|
|
1774
1774
|
let o = 1 / 0, u = t.slice(1), c;
|
|
1775
|
-
this.options.extensions.startBlock.forEach((
|
|
1776
|
-
c =
|
|
1775
|
+
this.options.extensions.startBlock.forEach((v) => {
|
|
1776
|
+
c = v.call({ lexer: this }, u), typeof c == "number" && c >= 0 && (o = Math.min(o, c));
|
|
1777
1777
|
}), o < 1 / 0 && o >= 0 && (l = t.substring(0, o + 1));
|
|
1778
1778
|
}
|
|
1779
1779
|
if (this.state.top && (s = this.tokenizer.paragraph(l))) {
|
|
@@ -1823,7 +1823,7 @@ ${v}` : v;
|
|
|
1823
1823
|
}
|
|
1824
1824
|
l || (o = ""), l = !1;
|
|
1825
1825
|
let c;
|
|
1826
|
-
if (this.options.extensions?.inline?.some((
|
|
1826
|
+
if (this.options.extensions?.inline?.some((b) => (c = b.call({ lexer: this }, t, e)) ? (t = t.substring(c.raw.length), e.push(c), !0) : !1)) continue;
|
|
1827
1827
|
if (c = this.tokenizer.escape(t)) {
|
|
1828
1828
|
t = t.substring(c.raw.length), e.push(c);
|
|
1829
1829
|
continue;
|
|
@@ -1838,8 +1838,8 @@ ${v}` : v;
|
|
|
1838
1838
|
}
|
|
1839
1839
|
if (c = this.tokenizer.reflink(t, this.tokens.links)) {
|
|
1840
1840
|
t = t.substring(c.raw.length);
|
|
1841
|
-
let
|
|
1842
|
-
c.type === "text" &&
|
|
1841
|
+
let b = e.at(-1);
|
|
1842
|
+
c.type === "text" && b?.type === "text" ? (b.raw += c.raw, b.text += c.text) : e.push(c);
|
|
1843
1843
|
continue;
|
|
1844
1844
|
}
|
|
1845
1845
|
if (c = this.tokenizer.emStrong(t, n, o)) {
|
|
@@ -1866,17 +1866,17 @@ ${v}` : v;
|
|
|
1866
1866
|
t = t.substring(c.raw.length), e.push(c);
|
|
1867
1867
|
continue;
|
|
1868
1868
|
}
|
|
1869
|
-
let
|
|
1869
|
+
let v = t;
|
|
1870
1870
|
if (this.options.extensions?.startInline) {
|
|
1871
|
-
let
|
|
1871
|
+
let b = 1 / 0, A = t.slice(1), E;
|
|
1872
1872
|
this.options.extensions.startInline.forEach((G) => {
|
|
1873
|
-
|
|
1874
|
-
}),
|
|
1873
|
+
E = G.call({ lexer: this }, A), typeof E == "number" && E >= 0 && (b = Math.min(b, E));
|
|
1874
|
+
}), b < 1 / 0 && b >= 0 && (v = t.substring(0, b + 1));
|
|
1875
1875
|
}
|
|
1876
|
-
if (c = this.tokenizer.inlineText(
|
|
1876
|
+
if (c = this.tokenizer.inlineText(v)) {
|
|
1877
1877
|
t = t.substring(c.raw.length), c.raw.slice(-1) !== "_" && (o = c.raw.slice(-1)), l = !0;
|
|
1878
|
-
let
|
|
1879
|
-
|
|
1878
|
+
let b = e.at(-1);
|
|
1879
|
+
b?.type === "text" ? (b.raw += c.raw, b.text += c.text) : e.push(c);
|
|
1880
1880
|
continue;
|
|
1881
1881
|
}
|
|
1882
1882
|
if (t) {
|
|
@@ -1891,20 +1891,20 @@ ${v}` : v;
|
|
|
1891
1891
|
if (this.options.silent) console.error(e);
|
|
1892
1892
|
else throw new Error(e);
|
|
1893
1893
|
}
|
|
1894
|
-
},
|
|
1894
|
+
}, h(qe, "l"), qe), pt, jt = (pt = class {
|
|
1895
1895
|
constructor(t) {
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
this.options = t ||
|
|
1896
|
+
B(this, "options");
|
|
1897
|
+
B(this, "parser");
|
|
1898
|
+
this.options = t || Qe;
|
|
1899
1899
|
}
|
|
1900
1900
|
space(t) {
|
|
1901
1901
|
return "";
|
|
1902
1902
|
}
|
|
1903
1903
|
code({ text: t, lang: e, escaped: n }) {
|
|
1904
|
-
let i = (e || "").match(
|
|
1904
|
+
let i = (e || "").match(de.notSpaceStart)?.[0], s = t.replace(de.endingNewline, "") + `
|
|
1905
1905
|
`;
|
|
1906
|
-
return i ? '<pre><code class="language-' +
|
|
1907
|
-
` : "<pre><code>" + (n ? s :
|
|
1906
|
+
return i ? '<pre><code class="language-' + Ne(i) + '">' + (n ? s : Ne(s, !0)) + `</code></pre>
|
|
1907
|
+
` : "<pre><code>" + (n ? s : Ne(s, !0)) + `</code></pre>
|
|
1908
1908
|
`;
|
|
1909
1909
|
}
|
|
1910
1910
|
blockquote({ tokens: t }) {
|
|
@@ -1982,7 +1982,7 @@ ${t}</tr>
|
|
|
1982
1982
|
return `<em>${this.parser.parseInline(t)}</em>`;
|
|
1983
1983
|
}
|
|
1984
1984
|
codespan({ text: t }) {
|
|
1985
|
-
return `<code>${
|
|
1985
|
+
return `<code>${Ne(t, !0)}</code>`;
|
|
1986
1986
|
}
|
|
1987
1987
|
br(t) {
|
|
1988
1988
|
return "<br>";
|
|
@@ -1995,20 +1995,20 @@ ${t}</tr>
|
|
|
1995
1995
|
if (s === null) return i;
|
|
1996
1996
|
t = s;
|
|
1997
1997
|
let l = '<a href="' + t + '"';
|
|
1998
|
-
return e && (l += ' title="' +
|
|
1998
|
+
return e && (l += ' title="' + Ne(e) + '"'), l += ">" + i + "</a>", l;
|
|
1999
1999
|
}
|
|
2000
2000
|
image({ href: t, title: e, text: n, tokens: i }) {
|
|
2001
2001
|
i && (n = this.parser.parseInline(i, this.parser.textRenderer));
|
|
2002
2002
|
let s = us(t);
|
|
2003
|
-
if (s === null) return
|
|
2003
|
+
if (s === null) return Ne(n);
|
|
2004
2004
|
t = s;
|
|
2005
|
-
let l = `<img src="${t}" alt="${
|
|
2006
|
-
return e && (l += ` title="${
|
|
2005
|
+
let l = `<img src="${t}" alt="${Ne(n)}"`;
|
|
2006
|
+
return e && (l += ` title="${Ne(e)}"`), l += ">", l;
|
|
2007
2007
|
}
|
|
2008
2008
|
text(t) {
|
|
2009
|
-
return "tokens" in t && t.tokens ? this.parser.parseInline(t.tokens) : "escaped" in t && t.escaped ? t.text :
|
|
2009
|
+
return "tokens" in t && t.tokens ? this.parser.parseInline(t.tokens) : "escaped" in t && t.escaped ? t.text : Ne(t.text);
|
|
2010
2010
|
}
|
|
2011
|
-
},
|
|
2011
|
+
}, h(pt, "y"), pt), ft, Tn = (ft = class {
|
|
2012
2012
|
strong({ text: t }) {
|
|
2013
2013
|
return t;
|
|
2014
2014
|
}
|
|
@@ -2039,12 +2039,12 @@ ${t}</tr>
|
|
|
2039
2039
|
checkbox({ raw: t }) {
|
|
2040
2040
|
return t;
|
|
2041
2041
|
}
|
|
2042
|
-
},
|
|
2042
|
+
}, h(ft, "L"), ft), Ve, Ee = (Ve = class {
|
|
2043
2043
|
constructor(t) {
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
this.options = t ||
|
|
2044
|
+
B(this, "options");
|
|
2045
|
+
B(this, "renderer");
|
|
2046
|
+
B(this, "textRenderer");
|
|
2047
|
+
this.options = t || Qe, this.options.renderer = this.options.renderer || new jt(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new Tn();
|
|
2048
2048
|
}
|
|
2049
2049
|
static parse(t, e) {
|
|
2050
2050
|
return new Ve(e).parse(t);
|
|
@@ -2190,11 +2190,11 @@ ${t}</tr>
|
|
|
2190
2190
|
}
|
|
2191
2191
|
return n;
|
|
2192
2192
|
}
|
|
2193
|
-
},
|
|
2193
|
+
}, h(Ve, "l"), Ve), We, Et = (We = class {
|
|
2194
2194
|
constructor(t) {
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
this.options = t ||
|
|
2195
|
+
B(this, "options");
|
|
2196
|
+
B(this, "block");
|
|
2197
|
+
this.options = t || Qe;
|
|
2198
2198
|
}
|
|
2199
2199
|
preprocess(t) {
|
|
2200
2200
|
return t;
|
|
@@ -2209,23 +2209,23 @@ ${t}</tr>
|
|
|
2209
2209
|
return t;
|
|
2210
2210
|
}
|
|
2211
2211
|
provideLexer(t = this.block) {
|
|
2212
|
-
return t ?
|
|
2212
|
+
return t ? _e.lex : _e.lexInline;
|
|
2213
2213
|
}
|
|
2214
2214
|
provideParser(t = this.block) {
|
|
2215
|
-
return t ?
|
|
2215
|
+
return t ? Ee.parse : Ee.parseInline;
|
|
2216
2216
|
}
|
|
2217
|
-
},
|
|
2217
|
+
}, h(We, "P"), B(We, "passThroughHooks", /* @__PURE__ */ new Set(["preprocess", "postprocess", "processAllTokens", "emStrongMask"])), B(We, "passThroughHooksRespectAsync", /* @__PURE__ */ new Set(["preprocess", "postprocess", "processAllTokens"])), We), gt, _a = (gt = class {
|
|
2218
2218
|
constructor(...t) {
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2219
|
+
B(this, "defaults", gn());
|
|
2220
|
+
B(this, "options", this.setOptions);
|
|
2221
|
+
B(this, "parse", this.parseMarkdown(!0));
|
|
2222
|
+
B(this, "parseInline", this.parseMarkdown(!1));
|
|
2223
|
+
B(this, "Parser", Ee);
|
|
2224
|
+
B(this, "Renderer", jt);
|
|
2225
|
+
B(this, "TextRenderer", Tn);
|
|
2226
|
+
B(this, "Lexer", _e);
|
|
2227
|
+
B(this, "Tokenizer", Gt);
|
|
2228
|
+
B(this, "Hooks", Et);
|
|
2229
2229
|
this.use(...t);
|
|
2230
2230
|
}
|
|
2231
2231
|
walkTokens(t, e) {
|
|
@@ -2272,51 +2272,51 @@ ${t}</tr>
|
|
|
2272
2272
|
}
|
|
2273
2273
|
"childTokens" in s && s.childTokens && (e.childTokens[s.name] = s.childTokens);
|
|
2274
2274
|
}), i.extensions = e), n.renderer) {
|
|
2275
|
-
let s = this.defaults.renderer || new
|
|
2275
|
+
let s = this.defaults.renderer || new jt(this.defaults);
|
|
2276
2276
|
for (let l in n.renderer) {
|
|
2277
2277
|
if (!(l in s)) throw new Error(`renderer '${l}' does not exist`);
|
|
2278
2278
|
if (["options", "parser"].includes(l)) continue;
|
|
2279
2279
|
let o = l, u = n.renderer[o], c = s[o];
|
|
2280
|
-
s[o] = (...
|
|
2281
|
-
let
|
|
2282
|
-
return
|
|
2280
|
+
s[o] = (...v) => {
|
|
2281
|
+
let b = u.apply(s, v);
|
|
2282
|
+
return b === !1 && (b = c.apply(s, v)), b || "";
|
|
2283
2283
|
};
|
|
2284
2284
|
}
|
|
2285
2285
|
i.renderer = s;
|
|
2286
2286
|
}
|
|
2287
2287
|
if (n.tokenizer) {
|
|
2288
|
-
let s = this.defaults.tokenizer || new
|
|
2288
|
+
let s = this.defaults.tokenizer || new Gt(this.defaults);
|
|
2289
2289
|
for (let l in n.tokenizer) {
|
|
2290
2290
|
if (!(l in s)) throw new Error(`tokenizer '${l}' does not exist`);
|
|
2291
2291
|
if (["options", "rules", "lexer"].includes(l)) continue;
|
|
2292
2292
|
let o = l, u = n.tokenizer[o], c = s[o];
|
|
2293
|
-
s[o] = (...
|
|
2294
|
-
let
|
|
2295
|
-
return
|
|
2293
|
+
s[o] = (...v) => {
|
|
2294
|
+
let b = u.apply(s, v);
|
|
2295
|
+
return b === !1 && (b = c.apply(s, v)), b;
|
|
2296
2296
|
};
|
|
2297
2297
|
}
|
|
2298
2298
|
i.tokenizer = s;
|
|
2299
2299
|
}
|
|
2300
2300
|
if (n.hooks) {
|
|
2301
|
-
let s = this.defaults.hooks || new
|
|
2301
|
+
let s = this.defaults.hooks || new Et();
|
|
2302
2302
|
for (let l in n.hooks) {
|
|
2303
2303
|
if (!(l in s)) throw new Error(`hook '${l}' does not exist`);
|
|
2304
2304
|
if (["options", "block"].includes(l)) continue;
|
|
2305
2305
|
let o = l, u = n.hooks[o], c = s[o];
|
|
2306
|
-
|
|
2307
|
-
if (this.defaults.async &&
|
|
2308
|
-
let A = await u.call(s,
|
|
2306
|
+
Et.passThroughHooks.has(l) ? s[o] = (v) => {
|
|
2307
|
+
if (this.defaults.async && Et.passThroughHooksRespectAsync.has(l)) return (async () => {
|
|
2308
|
+
let A = await u.call(s, v);
|
|
2309
2309
|
return c.call(s, A);
|
|
2310
2310
|
})();
|
|
2311
|
-
let
|
|
2312
|
-
return c.call(s,
|
|
2313
|
-
} : s[o] = (...
|
|
2311
|
+
let b = u.call(s, v);
|
|
2312
|
+
return c.call(s, b);
|
|
2313
|
+
} : s[o] = (...v) => {
|
|
2314
2314
|
if (this.defaults.async) return (async () => {
|
|
2315
|
-
let A = await u.apply(s,
|
|
2316
|
-
return A === !1 && (A = await c.apply(s,
|
|
2315
|
+
let A = await u.apply(s, v);
|
|
2316
|
+
return A === !1 && (A = await c.apply(s, v)), A;
|
|
2317
2317
|
})();
|
|
2318
|
-
let
|
|
2319
|
-
return
|
|
2318
|
+
let b = u.apply(s, v);
|
|
2319
|
+
return b === !1 && (b = c.apply(s, v)), b;
|
|
2320
2320
|
};
|
|
2321
2321
|
}
|
|
2322
2322
|
i.hooks = s;
|
|
@@ -2335,10 +2335,10 @@ ${t}</tr>
|
|
|
2335
2335
|
return this.defaults = { ...this.defaults, ...t }, this;
|
|
2336
2336
|
}
|
|
2337
2337
|
lexer(t, e) {
|
|
2338
|
-
return
|
|
2338
|
+
return _e.lex(t, e ?? this.defaults);
|
|
2339
2339
|
}
|
|
2340
2340
|
parser(t, e) {
|
|
2341
|
-
return
|
|
2341
|
+
return Ee.parse(t, e ?? this.defaults);
|
|
2342
2342
|
}
|
|
2343
2343
|
parseMarkdown(t) {
|
|
2344
2344
|
return (e, n) => {
|
|
@@ -2347,16 +2347,16 @@ ${t}</tr>
|
|
|
2347
2347
|
if (typeof e > "u" || e === null) return l(new Error("marked(): input parameter is undefined or null"));
|
|
2348
2348
|
if (typeof e != "string") return l(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(e) + ", string expected"));
|
|
2349
2349
|
if (s.hooks && (s.hooks.options = s, s.hooks.block = t), s.async) return (async () => {
|
|
2350
|
-
let o = s.hooks ? await s.hooks.preprocess(e) : e, u = await (s.hooks ? await s.hooks.provideLexer(t) : t ?
|
|
2350
|
+
let o = s.hooks ? await s.hooks.preprocess(e) : e, u = await (s.hooks ? await s.hooks.provideLexer(t) : t ? _e.lex : _e.lexInline)(o, s), c = s.hooks ? await s.hooks.processAllTokens(u) : u;
|
|
2351
2351
|
s.walkTokens && await Promise.all(this.walkTokens(c, s.walkTokens));
|
|
2352
|
-
let
|
|
2353
|
-
return s.hooks ? await s.hooks.postprocess(
|
|
2352
|
+
let v = await (s.hooks ? await s.hooks.provideParser(t) : t ? Ee.parse : Ee.parseInline)(c, s);
|
|
2353
|
+
return s.hooks ? await s.hooks.postprocess(v) : v;
|
|
2354
2354
|
})().catch(l);
|
|
2355
2355
|
try {
|
|
2356
2356
|
s.hooks && (e = s.hooks.preprocess(e));
|
|
2357
|
-
let o = (s.hooks ? s.hooks.provideLexer(t) : t ?
|
|
2357
|
+
let o = (s.hooks ? s.hooks.provideLexer(t) : t ? _e.lex : _e.lexInline)(e, s);
|
|
2358
2358
|
s.hooks && (o = s.hooks.processAllTokens(o)), s.walkTokens && this.walkTokens(o, s.walkTokens);
|
|
2359
|
-
let u = (s.hooks ? s.hooks.provideParser(t) : t ?
|
|
2359
|
+
let u = (s.hooks ? s.hooks.provideParser(t) : t ? Ee.parse : Ee.parseInline)(o, s);
|
|
2360
2360
|
return s.hooks && (u = s.hooks.postprocess(u)), u;
|
|
2361
2361
|
} catch (o) {
|
|
2362
2362
|
return l(o);
|
|
@@ -2367,53 +2367,53 @@ ${t}</tr>
|
|
|
2367
2367
|
return (n) => {
|
|
2368
2368
|
if (n.message += `
|
|
2369
2369
|
Please report this to https://github.com/markedjs/marked.`, t) {
|
|
2370
|
-
let i = "<p>An error occurred:</p><pre>" +
|
|
2370
|
+
let i = "<p>An error occurred:</p><pre>" + Ne(n.message + "", !0) + "</pre>";
|
|
2371
2371
|
return e ? Promise.resolve(i) : i;
|
|
2372
2372
|
}
|
|
2373
2373
|
if (e) return Promise.reject(n);
|
|
2374
2374
|
throw n;
|
|
2375
2375
|
};
|
|
2376
2376
|
}
|
|
2377
|
-
},
|
|
2377
|
+
}, h(gt, "q"), gt), Xe = new _a();
|
|
2378
2378
|
function Y(a, t) {
|
|
2379
|
-
return
|
|
2379
|
+
return Xe.parse(a, t);
|
|
2380
2380
|
}
|
|
2381
|
-
|
|
2381
|
+
h(Y, "g");
|
|
2382
2382
|
Y.options = Y.setOptions = function(a) {
|
|
2383
|
-
return
|
|
2383
|
+
return Xe.setOptions(a), Y.defaults = Xe.defaults, ws(Y.defaults), Y;
|
|
2384
2384
|
};
|
|
2385
2385
|
Y.getDefaults = gn;
|
|
2386
|
-
Y.defaults =
|
|
2386
|
+
Y.defaults = Qe;
|
|
2387
2387
|
Y.use = function(...a) {
|
|
2388
|
-
return
|
|
2388
|
+
return Xe.use(...a), Y.defaults = Xe.defaults, ws(Y.defaults), Y;
|
|
2389
2389
|
};
|
|
2390
2390
|
Y.walkTokens = function(a, t) {
|
|
2391
|
-
return
|
|
2391
|
+
return Xe.walkTokens(a, t);
|
|
2392
2392
|
};
|
|
2393
|
-
Y.parseInline =
|
|
2394
|
-
Y.Parser =
|
|
2395
|
-
Y.parser =
|
|
2396
|
-
Y.Renderer =
|
|
2393
|
+
Y.parseInline = Xe.parseInline;
|
|
2394
|
+
Y.Parser = Ee;
|
|
2395
|
+
Y.parser = Ee.parse;
|
|
2396
|
+
Y.Renderer = jt;
|
|
2397
2397
|
Y.TextRenderer = Tn;
|
|
2398
|
-
Y.Lexer =
|
|
2399
|
-
Y.lexer =
|
|
2400
|
-
Y.Tokenizer =
|
|
2401
|
-
Y.Hooks =
|
|
2398
|
+
Y.Lexer = _e;
|
|
2399
|
+
Y.lexer = _e.lex;
|
|
2400
|
+
Y.Tokenizer = Gt;
|
|
2401
|
+
Y.Hooks = Et;
|
|
2402
2402
|
Y.parse = Y;
|
|
2403
2403
|
Y.options;
|
|
2404
2404
|
Y.setOptions;
|
|
2405
2405
|
Y.use;
|
|
2406
2406
|
Y.walkTokens;
|
|
2407
2407
|
Y.parseInline;
|
|
2408
|
-
|
|
2409
|
-
|
|
2408
|
+
Ee.parse;
|
|
2409
|
+
_e.lex;
|
|
2410
2410
|
const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-label"], Ra = { class: "mb-2.5" }, Ca = ["aria-label"], Ia = ["viewBox"], Da = ["x1", "x2", "y1", "y2"], Ma = ["x", "y"], $a = ["x", "y", "width", "height"], La = ["d"], Oa = ["cx", "cy"], Na = ["cx", "cy"], za = ["x", "y", "text-anchor"], Pa = {
|
|
2411
2411
|
key: 0,
|
|
2412
2412
|
class: "mt-2.5 flex flex-wrap items-center gap-x-4 gap-y-1.5"
|
|
2413
2413
|
}, Fa = {
|
|
2414
2414
|
key: 1,
|
|
2415
2415
|
class: "grid gap-3"
|
|
2416
|
-
}, Ba = { class: "mb-1 flex items-baseline justify-between gap-3 text-[12px]" }, Ua = { key: 2 }, Ha = { class: "relative flex flex-col items-center" }, Ga = { class: "min-w-0 pb-3.5" }, ja = /* @__PURE__ */
|
|
2416
|
+
}, Ba = { class: "mb-1 flex items-baseline justify-between gap-3 text-[12px]" }, Ua = { key: 2 }, Ha = { class: "relative flex flex-col items-center" }, Ga = { class: "min-w-0 pb-3.5" }, ja = /* @__PURE__ */ ze({
|
|
2417
2417
|
__name: "ChatVisualBlock",
|
|
2418
2418
|
props: {
|
|
2419
2419
|
result: {},
|
|
@@ -2421,379 +2421,389 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
2421
2421
|
},
|
|
2422
2422
|
setup(a) {
|
|
2423
2423
|
const t = a, e = I(() => t.result.ok ? t.result.spec : null), n = I(() => e.value?.visualType === "chart" ? e.value : null), i = I(() => e.value?.visualType === "diagram" ? e.value : null);
|
|
2424
|
-
function s(
|
|
2425
|
-
return
|
|
2424
|
+
function s(g) {
|
|
2425
|
+
return g?.chartType === "bar" || g?.chartType === "line" || g?.chartType === "scatter";
|
|
2426
2426
|
}
|
|
2427
|
-
|
|
2428
|
-
function l(
|
|
2429
|
-
return
|
|
2427
|
+
h(s, "isCartesianChart");
|
|
2428
|
+
function l(g) {
|
|
2429
|
+
return g?.chartType === "pie";
|
|
2430
2430
|
}
|
|
2431
|
-
|
|
2432
|
-
const o = I(() => n.value?.data ?? []), u = I(() => s(n.value) ? n.value : null), c = I(() => u.value?.series ?? []),
|
|
2433
|
-
function
|
|
2434
|
-
return typeof
|
|
2431
|
+
h(l, "isPieChart");
|
|
2432
|
+
const o = I(() => n.value?.data ?? []), u = I(() => s(n.value) ? n.value : null), c = I(() => u.value?.series ?? []), v = I(() => l(n.value) ? n.value : null);
|
|
2433
|
+
function b(g) {
|
|
2434
|
+
return typeof g == "number" && Number.isFinite(g) ? g : null;
|
|
2435
2435
|
}
|
|
2436
|
-
|
|
2436
|
+
h(b, "numericValue");
|
|
2437
2437
|
const A = I(() => {
|
|
2438
|
-
const
|
|
2439
|
-
if (!
|
|
2440
|
-
for (const
|
|
2441
|
-
for (const
|
|
2442
|
-
const
|
|
2443
|
-
|
|
2438
|
+
const g = [], _ = u.value;
|
|
2439
|
+
if (!_) return g;
|
|
2440
|
+
for (const p of _.data)
|
|
2441
|
+
for (const S of _.series) {
|
|
2442
|
+
const D = b(p[S.dataKey]);
|
|
2443
|
+
D !== null && g.push(D);
|
|
2444
2444
|
}
|
|
2445
|
-
return
|
|
2445
|
+
return g;
|
|
2446
2446
|
});
|
|
2447
|
-
function
|
|
2448
|
-
const
|
|
2449
|
-
let
|
|
2450
|
-
return
|
|
2447
|
+
function E(g, _) {
|
|
2448
|
+
const p = g > 0 ? g : 1, S = Math.floor(Math.log10(p)), D = p / 10 ** S;
|
|
2449
|
+
let O;
|
|
2450
|
+
return _ ? O = D < 1.5 ? 1 : D < 3 ? 2 : D < 7 ? 5 : 10 : O = D <= 1 ? 1 : D <= 2 ? 2 : D <= 5 ? 5 : 10, O * 10 ** S;
|
|
2451
2451
|
}
|
|
2452
|
-
|
|
2452
|
+
h(E, "niceNum");
|
|
2453
2453
|
const G = I(() => {
|
|
2454
|
-
const
|
|
2455
|
-
if (
|
|
2456
|
-
return { min: 0, max:
|
|
2457
|
-
const
|
|
2458
|
-
for (let
|
|
2459
|
-
|
|
2460
|
-
return { min:
|
|
2454
|
+
const g = A.value, _ = g.length ? Math.max(...g) : 1, p = g.length ? Math.min(0, ...g) : 0;
|
|
2455
|
+
if (p === _)
|
|
2456
|
+
return { min: 0, max: _ || 1, ticks: [0, _ || 1] };
|
|
2457
|
+
const S = 4, D = E(_ - p, !1), O = E(D / (S - 1), !0), y = Math.floor(p / O) * O, k = Math.ceil(_ / O) * O, f = [];
|
|
2458
|
+
for (let L = y; L <= k + O * 0.5; L += O)
|
|
2459
|
+
f.push(Number(L.toFixed(6)));
|
|
2460
|
+
return { min: y, max: k, ticks: f };
|
|
2461
2461
|
}), R = { width: 360, height: 168, left: 30, right: 12, top: 10, bottom: 24 };
|
|
2462
|
-
function X(
|
|
2463
|
-
const
|
|
2464
|
-
return
|
|
2465
|
-
}
|
|
2466
|
-
|
|
2467
|
-
function
|
|
2468
|
-
const { min:
|
|
2469
|
-
return R.top + (
|
|
2470
|
-
}
|
|
2471
|
-
|
|
2472
|
-
function
|
|
2473
|
-
const
|
|
2474
|
-
return
|
|
2475
|
-
const
|
|
2476
|
-
return `${
|
|
2462
|
+
function X(g, _) {
|
|
2463
|
+
const p = R.width - R.left - R.right;
|
|
2464
|
+
return _ <= 1 ? R.left + p / 2 : R.left + p * g / (_ - 1);
|
|
2465
|
+
}
|
|
2466
|
+
h(X, "xForIndex");
|
|
2467
|
+
function Q(g) {
|
|
2468
|
+
const { min: _, max: p } = G.value, S = R.height - R.top - R.bottom;
|
|
2469
|
+
return R.top + (p - g) / (p - _ || 1) * S;
|
|
2470
|
+
}
|
|
2471
|
+
h(Q, "yForValue");
|
|
2472
|
+
function M(g) {
|
|
2473
|
+
const _ = u.value;
|
|
2474
|
+
return _ ? _.data.map((p, S) => {
|
|
2475
|
+
const D = b(p[g]) ?? 0;
|
|
2476
|
+
return `${S === 0 ? "M" : "L"} ${X(S, _.data.length).toFixed(1)} ${Q(D).toFixed(1)}`;
|
|
2477
2477
|
}).join(" ") : "";
|
|
2478
2478
|
}
|
|
2479
|
-
|
|
2479
|
+
h(M, "pathForSeries");
|
|
2480
2480
|
const P = I(() => {
|
|
2481
|
-
const
|
|
2482
|
-
if (!
|
|
2483
|
-
const
|
|
2484
|
-
return
|
|
2485
|
-
const
|
|
2481
|
+
const g = u.value;
|
|
2482
|
+
if (!g || g.chartType !== "bar") return [];
|
|
2483
|
+
const p = (R.width - R.left - R.right) / Math.max(g.data.length, 1), S = Math.max(g.series.length, 1), D = S > 1 ? 2 : 0, O = Math.max(3, Math.min(20, (p * 0.62 - D * (S - 1)) / S)), y = O * S + D * (S - 1), k = Q(0);
|
|
2484
|
+
return g.data.flatMap((f, L) => g.series.map((V, fe) => {
|
|
2485
|
+
const ye = b(f[V.dataKey]) ?? 0, Ie = Q(ye), kt = R.left + L * p + (p - y) / 2 + fe * (O + D);
|
|
2486
2486
|
return {
|
|
2487
|
-
key: `${
|
|
2488
|
-
x:
|
|
2489
|
-
y: Math.min(
|
|
2490
|
-
width:
|
|
2491
|
-
height: Math.max(1.5, Math.abs(
|
|
2492
|
-
seriesIndex:
|
|
2487
|
+
key: `${L}-${V.dataKey}`,
|
|
2488
|
+
x: kt,
|
|
2489
|
+
y: Math.min(Ie, k),
|
|
2490
|
+
width: O,
|
|
2491
|
+
height: Math.max(1.5, Math.abs(k - Ie)),
|
|
2492
|
+
seriesIndex: fe
|
|
2493
2493
|
};
|
|
2494
2494
|
}));
|
|
2495
|
-
}),
|
|
2496
|
-
const
|
|
2497
|
-
if (!
|
|
2498
|
-
const
|
|
2499
|
-
if (!
|
|
2500
|
-
const
|
|
2501
|
-
for (let
|
|
2502
|
-
|
|
2503
|
-
return [...
|
|
2504
|
-
key: `${
|
|
2505
|
-
label: String(
|
|
2506
|
-
x: X(
|
|
2507
|
-
anchor:
|
|
2508
|
-
})).filter((
|
|
2495
|
+
}), F = I(() => {
|
|
2496
|
+
const g = u.value;
|
|
2497
|
+
if (!g) return [];
|
|
2498
|
+
const _ = g.data;
|
|
2499
|
+
if (!_.length) return [];
|
|
2500
|
+
const p = g.xKey, S = _.length - 1, D = S <= 6 ? 1 : Math.ceil(S / 4), O = /* @__PURE__ */ new Set([0, S]);
|
|
2501
|
+
for (let y = 0; y <= S; y += D)
|
|
2502
|
+
O.add(y);
|
|
2503
|
+
return [...O].sort((y, k) => y - k).map((y) => ({
|
|
2504
|
+
key: `${y}`,
|
|
2505
|
+
label: String(_[y]?.[p] ?? ""),
|
|
2506
|
+
x: X(y, _.length),
|
|
2507
|
+
anchor: y === 0 ? "start" : y === S ? "end" : "middle"
|
|
2508
|
+
})).filter((y) => y.label);
|
|
2509
2509
|
});
|
|
2510
|
-
function
|
|
2511
|
-
const
|
|
2512
|
-
return
|
|
2513
|
-
}
|
|
2514
|
-
|
|
2515
|
-
function
|
|
2516
|
-
const
|
|
2517
|
-
|
|
2518
|
-
|
|
2510
|
+
function q(g) {
|
|
2511
|
+
const _ = Math.abs(g);
|
|
2512
|
+
return _ >= 1e6 ? `${(g / 1e6).toFixed(1).replace(/\.0$/, "")}M` : _ >= 1e3 ? `${(g / 1e3).toFixed(1).replace(/\.0$/, "")}k` : Number.isInteger(g) ? `${g}` : g.toFixed(1);
|
|
2513
|
+
}
|
|
2514
|
+
h(q, "formatValue");
|
|
2515
|
+
function H(g) {
|
|
2516
|
+
const _ = Math.round(Math.abs(g)), p = g < 0 ? "-" : "";
|
|
2517
|
+
if (_ < 60)
|
|
2518
|
+
return `${p}${_}s`;
|
|
2519
|
+
if (_ < 3600) {
|
|
2520
|
+
const O = Math.floor(_ / 60), y = _ % 60;
|
|
2521
|
+
return y ? `${p}${O}m ${y}s` : `${p}${O}m`;
|
|
2522
|
+
}
|
|
2523
|
+
const S = Math.floor(_ / 3600), D = Math.floor(_ % 3600 / 60);
|
|
2524
|
+
return D ? `${p}${S}h ${D}m` : `${p}${S}h`;
|
|
2525
|
+
}
|
|
2526
|
+
h(H, "formatDuration");
|
|
2527
|
+
function J(g, _) {
|
|
2528
|
+
const p = _?.valuePrefix ?? (_?.valueFormat === "currency" ? "$" : ""), S = _?.valueSuffix ?? (_?.valueFormat === "percent" ? "%" : "");
|
|
2529
|
+
let D;
|
|
2530
|
+
switch (_?.valueFormat) {
|
|
2519
2531
|
case "integer":
|
|
2520
|
-
|
|
2532
|
+
D = `${Math.round(g)}`;
|
|
2533
|
+
break;
|
|
2534
|
+
case "duration":
|
|
2535
|
+
D = H(g);
|
|
2521
2536
|
break;
|
|
2522
2537
|
case "raw":
|
|
2523
|
-
|
|
2538
|
+
D = Number.isInteger(g) ? `${g}` : g.toFixed(1);
|
|
2524
2539
|
break;
|
|
2525
2540
|
default:
|
|
2526
|
-
|
|
2541
|
+
D = q(g);
|
|
2527
2542
|
}
|
|
2528
|
-
return `${
|
|
2543
|
+
return `${p}${D}${S}`;
|
|
2529
2544
|
}
|
|
2530
|
-
|
|
2531
|
-
const
|
|
2532
|
-
const
|
|
2533
|
-
if (!
|
|
2534
|
-
const
|
|
2535
|
-
return
|
|
2536
|
-
const
|
|
2545
|
+
h(J, "formatSeriesValue");
|
|
2546
|
+
const Re = I(() => {
|
|
2547
|
+
const g = u.value;
|
|
2548
|
+
if (!g?.data.length) return [];
|
|
2549
|
+
const _ = g.data[g.data.length - 1];
|
|
2550
|
+
return g.series.map((p, S) => {
|
|
2551
|
+
const D = b(_?.[p.dataKey]);
|
|
2537
2552
|
return {
|
|
2538
|
-
key:
|
|
2539
|
-
label:
|
|
2540
|
-
value:
|
|
2541
|
-
seriesIndex:
|
|
2553
|
+
key: p.dataKey,
|
|
2554
|
+
label: p.label || p.dataKey,
|
|
2555
|
+
value: D === null ? "—" : J(D, p),
|
|
2556
|
+
seriesIndex: S
|
|
2542
2557
|
};
|
|
2543
2558
|
});
|
|
2544
|
-
}),
|
|
2545
|
-
const
|
|
2546
|
-
if (!
|
|
2547
|
-
const
|
|
2548
|
-
return
|
|
2549
|
-
const
|
|
2550
|
-
return
|
|
2551
|
-
}).filter((
|
|
2552
|
-
}),
|
|
2553
|
-
const
|
|
2554
|
-
if (!
|
|
2555
|
-
const
|
|
2556
|
-
name: String(
|
|
2557
|
-
value:
|
|
2558
|
-
})).filter((
|
|
2559
|
-
return
|
|
2560
|
-
...
|
|
2561
|
-
key: `${
|
|
2562
|
-
percent:
|
|
2559
|
+
}), pe = I(() => {
|
|
2560
|
+
const g = u.value;
|
|
2561
|
+
if (!g?.data.length || g.chartType !== "line") return [];
|
|
2562
|
+
const _ = g.data.length - 1, p = g.data[_];
|
|
2563
|
+
return g.series.map((S, D) => {
|
|
2564
|
+
const O = b(p?.[S.dataKey]);
|
|
2565
|
+
return O === null ? null : { key: S.dataKey, cx: X(_, g.data.length), cy: Q(O), seriesIndex: D };
|
|
2566
|
+
}).filter((S) => S !== null);
|
|
2567
|
+
}), ve = I(() => {
|
|
2568
|
+
const g = v.value;
|
|
2569
|
+
if (!g) return [];
|
|
2570
|
+
const _ = g.data.map((S) => ({
|
|
2571
|
+
name: String(S[g.nameKey] ?? ""),
|
|
2572
|
+
value: b(S[g.valueKey]) ?? 0
|
|
2573
|
+
})).filter((S) => S.name && S.value >= 0).sort((S, D) => D.value - S.value), p = _.reduce((S, D) => S + D.value, 0) || 1;
|
|
2574
|
+
return _.map((S, D) => ({
|
|
2575
|
+
...S,
|
|
2576
|
+
key: `${D}-${S.name}`,
|
|
2577
|
+
percent: S.value / p
|
|
2563
2578
|
}));
|
|
2564
|
-
}),
|
|
2565
|
-
const
|
|
2566
|
-
for (const
|
|
2567
|
-
|
|
2568
|
-
return
|
|
2569
|
-
}),
|
|
2570
|
-
const
|
|
2571
|
-
if (!
|
|
2572
|
-
const
|
|
2573
|
-
if (!
|
|
2574
|
-
const
|
|
2575
|
-
const
|
|
2576
|
-
|
|
2579
|
+
}), xt = I(() => {
|
|
2580
|
+
const g = /* @__PURE__ */ new Map();
|
|
2581
|
+
for (const _ of i.value?.nodes ?? [])
|
|
2582
|
+
g.set(_.id, _);
|
|
2583
|
+
return g;
|
|
2584
|
+
}), Pe = I(() => {
|
|
2585
|
+
const g = i.value;
|
|
2586
|
+
if (!g?.edges.length) return [];
|
|
2587
|
+
const _ = new Set(g.edges.map((f) => f.to)), p = g.edges.find((f) => !_.has(f.from)) ?? g.edges[0];
|
|
2588
|
+
if (!p) return [];
|
|
2589
|
+
const S = [], D = /* @__PURE__ */ new Set(), O = /* @__PURE__ */ h((f) => `${f.from}->${f.to}`, "edgeKey"), y = /* @__PURE__ */ h((f, L) => {
|
|
2590
|
+
const V = xt.value.get(f);
|
|
2591
|
+
V && S.push({ key: `node-${f}-${S.length}`, label: V.label, note: L });
|
|
2577
2592
|
}, "pushStep");
|
|
2578
|
-
let
|
|
2579
|
-
for (;
|
|
2580
|
-
const
|
|
2581
|
-
if (
|
|
2593
|
+
let k = p.from;
|
|
2594
|
+
for (; k; ) {
|
|
2595
|
+
const f = g.edges.find((L) => L.from === k && !D.has(O(L)));
|
|
2596
|
+
if (y(k, f?.label), !f)
|
|
2582
2597
|
break;
|
|
2583
|
-
|
|
2598
|
+
D.add(O(f)), k = f.to;
|
|
2584
2599
|
}
|
|
2585
|
-
for (const
|
|
2586
|
-
const
|
|
2587
|
-
|
|
2600
|
+
for (const f of g.edges) {
|
|
2601
|
+
const L = O(f);
|
|
2602
|
+
D.has(L) || (y(f.from, f.label), y(f.to, void 0));
|
|
2588
2603
|
}
|
|
2589
|
-
return
|
|
2590
|
-
}),
|
|
2604
|
+
return S;
|
|
2605
|
+
}), Be = I(() => i.value?.nodes ?? []), se = [
|
|
2591
2606
|
"var(--color-theme-900)",
|
|
2592
2607
|
"var(--color-primary-500)",
|
|
2593
2608
|
"color-mix(in oklch, var(--color-primary-500) 55%, var(--color-theme-500))"
|
|
2594
|
-
],
|
|
2609
|
+
], Ue = [
|
|
2595
2610
|
"rgba(255, 255, 255, 0.92)",
|
|
2596
2611
|
"color-mix(in oklch, white 30%, var(--color-primary-500))",
|
|
2597
2612
|
"rgba(255, 255, 255, 0.55)"
|
|
2598
2613
|
];
|
|
2599
|
-
function
|
|
2600
|
-
const
|
|
2601
|
-
return
|
|
2614
|
+
function be(g) {
|
|
2615
|
+
const _ = t.inverted ? Ue : se;
|
|
2616
|
+
return _[g % _.length];
|
|
2602
2617
|
}
|
|
2603
|
-
|
|
2604
|
-
const
|
|
2605
|
-
return (
|
|
2618
|
+
h(be, "seriesColor");
|
|
2619
|
+
const ce = I(() => t.inverted ? "rgba(255, 255, 255, 0.95)" : "var(--color-theme-900)"), Ce = I(() => t.inverted ? "rgba(255, 255, 255, 0.6)" : "var(--color-theme-500)"), N = I(() => t.inverted ? "rgba(255, 255, 255, 0.45)" : "color-mix(in oklch, var(--color-theme-900) 42%, transparent)"), Je = I(() => t.inverted ? "rgba(255, 255, 255, 0.1)" : "color-mix(in oklch, var(--color-theme-900) 8%, transparent)"), He = I(() => t.inverted ? "rgba(255, 255, 255, 0.24)" : "color-mix(in oklch, var(--color-theme-900) 18%, transparent)"), et = I(() => t.inverted ? "rgba(255, 255, 255, 0.16)" : "color-mix(in oklch, var(--color-theme-300) 55%, transparent)"), Ge = I(() => t.inverted ? "rgba(255, 255, 255, 0.18)" : "color-mix(in oklch, var(--color-theme-900) 16%, transparent)"), ee = I(() => t.inverted ? "rgba(255, 255, 255, 0.12)" : "color-mix(in oklch, var(--color-theme-900) 9%, transparent)"), Ye = I(() => t.inverted ? "transparent" : "var(--color-theme-0)");
|
|
2620
|
+
return (g, _) => e.value ? (m(), x("section", {
|
|
2606
2621
|
key: 0,
|
|
2607
2622
|
"data-test": "chat-visual",
|
|
2608
2623
|
"data-visual-type": e.value.visualType,
|
|
2609
2624
|
"data-chart-type": n.value?.chartType,
|
|
2610
2625
|
"data-diagram-type": i.value?.diagramType,
|
|
2611
2626
|
class: "my-6 w-full border-y py-5",
|
|
2612
|
-
style:
|
|
2627
|
+
style: ne({ borderColor: et.value }),
|
|
2613
2628
|
"aria-label": e.value.meta.title
|
|
2614
2629
|
}, [
|
|
2615
|
-
|
|
2616
|
-
|
|
2630
|
+
w("header", Ra, [
|
|
2631
|
+
w("h4", {
|
|
2617
2632
|
class: "text-[13px] font-semibold leading-tight",
|
|
2618
|
-
style:
|
|
2633
|
+
style: ne({ color: ce.value })
|
|
2619
2634
|
}, Z(e.value.meta.title), 5),
|
|
2620
|
-
e.value.meta.description ? (
|
|
2635
|
+
e.value.meta.description ? (m(), x("p", {
|
|
2621
2636
|
key: 0,
|
|
2622
2637
|
class: "mt-0.5 text-[12px] leading-snug",
|
|
2623
|
-
style:
|
|
2624
|
-
}, Z(e.value.meta.description), 5)) :
|
|
2638
|
+
style: ne({ color: Ce.value })
|
|
2639
|
+
}, Z(e.value.meta.description), 5)) : j("", !0)
|
|
2625
2640
|
]),
|
|
2626
|
-
u.value ? (
|
|
2641
|
+
u.value ? (m(), x("div", {
|
|
2627
2642
|
key: 0,
|
|
2628
2643
|
role: "img",
|
|
2629
2644
|
"aria-label": e.value.meta.title
|
|
2630
2645
|
}, [
|
|
2631
|
-
(
|
|
2646
|
+
(m(), x("svg", {
|
|
2632
2647
|
class: "block h-auto w-full overflow-visible",
|
|
2633
2648
|
viewBox: `0 0 ${R.width} ${R.height}`,
|
|
2634
|
-
style:
|
|
2649
|
+
style: ne({ aspectRatio: `${R.width} / ${R.height}` }),
|
|
2635
2650
|
preserveAspectRatio: "xMidYMid meet",
|
|
2636
2651
|
"aria-hidden": "true"
|
|
2637
2652
|
}, [
|
|
2638
|
-
(
|
|
2639
|
-
key: `grid-${
|
|
2653
|
+
(m(!0), x(ae, null, me(G.value.ticks, (p) => (m(), x("line", {
|
|
2654
|
+
key: `grid-${p}`,
|
|
2640
2655
|
x1: R.left,
|
|
2641
2656
|
x2: R.width - R.right,
|
|
2642
|
-
y1:
|
|
2643
|
-
y2:
|
|
2657
|
+
y1: Q(p),
|
|
2658
|
+
y2: Q(p),
|
|
2644
2659
|
"stroke-width": "1",
|
|
2645
2660
|
"vector-effect": "non-scaling-stroke",
|
|
2646
|
-
style:
|
|
2661
|
+
style: ne({ stroke: p === 0 ? He.value : Je.value })
|
|
2647
2662
|
}, null, 12, Da))), 128)),
|
|
2648
|
-
|
|
2649
|
-
(
|
|
2650
|
-
key: `y-${
|
|
2663
|
+
w("g", null, [
|
|
2664
|
+
(m(!0), x(ae, null, me(G.value.ticks, (p) => (m(), x("text", {
|
|
2665
|
+
key: `y-${p}`,
|
|
2651
2666
|
x: R.left - 7,
|
|
2652
|
-
y:
|
|
2667
|
+
y: Q(p) + 3,
|
|
2653
2668
|
"text-anchor": "end",
|
|
2654
2669
|
"font-size": "9.5",
|
|
2655
|
-
style:
|
|
2656
|
-
}, Z(
|
|
2670
|
+
style: ne({ fill: N.value })
|
|
2671
|
+
}, Z(q(p)), 13, Ma))), 128))
|
|
2657
2672
|
]),
|
|
2658
|
-
u.value.chartType === "bar" ? (
|
|
2659
|
-
key:
|
|
2660
|
-
x:
|
|
2661
|
-
y:
|
|
2662
|
-
width:
|
|
2663
|
-
height:
|
|
2673
|
+
u.value.chartType === "bar" ? (m(!0), x(ae, { key: 0 }, me(P.value, (p) => (m(), x("rect", {
|
|
2674
|
+
key: p.key,
|
|
2675
|
+
x: p.x,
|
|
2676
|
+
y: p.y,
|
|
2677
|
+
width: p.width,
|
|
2678
|
+
height: p.height,
|
|
2664
2679
|
rx: "2.5",
|
|
2665
|
-
style:
|
|
2666
|
-
}, null, 12, $a))), 128)) : (
|
|
2667
|
-
(
|
|
2668
|
-
key:
|
|
2680
|
+
style: ne({ fill: be(p.seriesIndex) })
|
|
2681
|
+
}, null, 12, $a))), 128)) : (m(), x(ae, { key: 1 }, [
|
|
2682
|
+
(m(!0), x(ae, null, me(c.value, (p, S) => (m(), x("g", {
|
|
2683
|
+
key: p.dataKey
|
|
2669
2684
|
}, [
|
|
2670
|
-
u.value.chartType === "line" ? (
|
|
2685
|
+
u.value.chartType === "line" ? (m(), x("path", {
|
|
2671
2686
|
key: 0,
|
|
2672
|
-
d:
|
|
2687
|
+
d: M(p.dataKey),
|
|
2673
2688
|
fill: "none",
|
|
2674
2689
|
"stroke-width": "2",
|
|
2675
2690
|
"stroke-linecap": "round",
|
|
2676
2691
|
"stroke-linejoin": "round",
|
|
2677
2692
|
"vector-effect": "non-scaling-stroke",
|
|
2678
|
-
style:
|
|
2679
|
-
}, null, 12, La)) :
|
|
2680
|
-
(
|
|
2681
|
-
key: `${
|
|
2693
|
+
style: ne({ stroke: be(S) })
|
|
2694
|
+
}, null, 12, La)) : j("", !0),
|
|
2695
|
+
(m(!0), x(ae, null, me(o.value, (D, O) => (m(), x(ae, {
|
|
2696
|
+
key: `${p.dataKey}-${O}`
|
|
2682
2697
|
}, [
|
|
2683
|
-
u.value.chartType === "scatter" ? (
|
|
2698
|
+
u.value.chartType === "scatter" ? (m(), x("circle", {
|
|
2684
2699
|
key: 0,
|
|
2685
|
-
cx: X(
|
|
2686
|
-
cy:
|
|
2700
|
+
cx: X(O, o.value.length),
|
|
2701
|
+
cy: Q(b(D[p.dataKey]) ?? 0),
|
|
2687
2702
|
r: "2.6",
|
|
2688
|
-
style:
|
|
2689
|
-
}, null, 12, Oa)) :
|
|
2703
|
+
style: ne({ fill: be(S) })
|
|
2704
|
+
}, null, 12, Oa)) : j("", !0)
|
|
2690
2705
|
], 64))), 128))
|
|
2691
2706
|
]))), 128)),
|
|
2692
|
-
(
|
|
2693
|
-
key: `marker-${
|
|
2694
|
-
cx:
|
|
2695
|
-
cy:
|
|
2707
|
+
(m(!0), x(ae, null, me(pe.value, (p) => (m(), x("circle", {
|
|
2708
|
+
key: `marker-${p.key}`,
|
|
2709
|
+
cx: p.cx,
|
|
2710
|
+
cy: p.cy,
|
|
2696
2711
|
r: "3",
|
|
2697
|
-
style:
|
|
2712
|
+
style: ne({ fill: be(p.seriesIndex) })
|
|
2698
2713
|
}, null, 12, Na))), 128))
|
|
2699
2714
|
], 64)),
|
|
2700
|
-
(
|
|
2701
|
-
key:
|
|
2702
|
-
x:
|
|
2715
|
+
(m(!0), x(ae, null, me(F.value, (p) => (m(), x("text", {
|
|
2716
|
+
key: p.key,
|
|
2717
|
+
x: p.x,
|
|
2703
2718
|
y: R.height - 6,
|
|
2704
|
-
"text-anchor":
|
|
2719
|
+
"text-anchor": p.anchor,
|
|
2705
2720
|
"font-size": "9.5",
|
|
2706
|
-
style:
|
|
2707
|
-
}, Z(
|
|
2721
|
+
style: ne({ fill: N.value })
|
|
2722
|
+
}, Z(p.label), 13, za))), 128))
|
|
2708
2723
|
], 12, Ia)),
|
|
2709
|
-
|
|
2710
|
-
(
|
|
2711
|
-
key:
|
|
2724
|
+
Re.value.length > 1 || u.value.chartType !== "bar" ? (m(), x("div", Pa, [
|
|
2725
|
+
(m(!0), x(ae, null, me(Re.value, (p) => (m(), x("div", {
|
|
2726
|
+
key: p.key,
|
|
2712
2727
|
class: "inline-flex items-center gap-1.5 text-[11.5px] leading-none"
|
|
2713
2728
|
}, [
|
|
2714
|
-
|
|
2729
|
+
w("span", {
|
|
2715
2730
|
class: "size-2.5 shrink-0 rounded-full",
|
|
2716
|
-
style:
|
|
2731
|
+
style: ne({ background: be(p.seriesIndex) })
|
|
2717
2732
|
}, null, 4),
|
|
2718
|
-
|
|
2719
|
-
style:
|
|
2720
|
-
}, Z(
|
|
2721
|
-
|
|
2733
|
+
w("span", {
|
|
2734
|
+
style: ne({ color: Ce.value })
|
|
2735
|
+
}, Z(p.label), 5),
|
|
2736
|
+
w("span", {
|
|
2722
2737
|
class: "font-semibold tabular-nums",
|
|
2723
|
-
style:
|
|
2724
|
-
}, Z(
|
|
2738
|
+
style: ne({ color: ce.value })
|
|
2739
|
+
}, Z(p.value), 5)
|
|
2725
2740
|
]))), 128))
|
|
2726
|
-
])) :
|
|
2727
|
-
], 8, Ca)) :
|
|
2728
|
-
(
|
|
2729
|
-
key:
|
|
2741
|
+
])) : j("", !0)
|
|
2742
|
+
], 8, Ca)) : v.value ? (m(), x("div", Fa, [
|
|
2743
|
+
(m(!0), x(ae, null, me(ve.value, (p, S) => (m(), x("div", {
|
|
2744
|
+
key: p.key
|
|
2730
2745
|
}, [
|
|
2731
|
-
|
|
2732
|
-
|
|
2746
|
+
w("div", Ba, [
|
|
2747
|
+
w("span", {
|
|
2733
2748
|
class: "truncate font-medium",
|
|
2734
|
-
style:
|
|
2735
|
-
}, Z(
|
|
2736
|
-
|
|
2749
|
+
style: ne({ color: ce.value })
|
|
2750
|
+
}, Z(p.name), 5),
|
|
2751
|
+
w("span", {
|
|
2737
2752
|
class: "tabular-nums",
|
|
2738
|
-
style:
|
|
2739
|
-
}, Z(Math.round(
|
|
2753
|
+
style: ne({ color: Ce.value })
|
|
2754
|
+
}, Z(Math.round(p.percent * 100)) + "%", 5)
|
|
2740
2755
|
]),
|
|
2741
|
-
|
|
2756
|
+
w("div", {
|
|
2742
2757
|
class: "h-1.5 w-full overflow-hidden rounded-full",
|
|
2743
|
-
style:
|
|
2758
|
+
style: ne({ background: ee.value })
|
|
2744
2759
|
}, [
|
|
2745
|
-
|
|
2760
|
+
w("div", {
|
|
2746
2761
|
class: "h-full rounded-full",
|
|
2747
|
-
style:
|
|
2762
|
+
style: ne({ width: `${Math.max(2, p.percent * 100)}%`, background: be(S) })
|
|
2748
2763
|
}, null, 4)
|
|
2749
2764
|
], 4)
|
|
2750
2765
|
]))), 128))
|
|
2751
|
-
])) : i.value ? (
|
|
2752
|
-
|
|
2753
|
-
key:
|
|
2766
|
+
])) : i.value ? (m(), x("div", Ua, [
|
|
2767
|
+
Pe.value.length ? (m(!0), x(ae, { key: 0 }, me(Pe.value, (p, S) => (m(), x("div", {
|
|
2768
|
+
key: p.key,
|
|
2754
2769
|
class: "grid grid-cols-[1.5rem_minmax(0,1fr)] items-start gap-x-2.5"
|
|
2755
2770
|
}, [
|
|
2756
|
-
|
|
2757
|
-
|
|
2771
|
+
w("div", Ha, [
|
|
2772
|
+
w("span", {
|
|
2758
2773
|
class: "grid size-5 place-items-center rounded-full border text-[10px] font-semibold leading-none",
|
|
2759
|
-
style:
|
|
2760
|
-
}, Z(
|
|
2761
|
-
|
|
2774
|
+
style: ne({ borderColor: Ge.value, color: Ce.value, background: Ye.value })
|
|
2775
|
+
}, Z(S + 1), 5),
|
|
2776
|
+
S !== Pe.value.length - 1 ? (m(), x("span", {
|
|
2762
2777
|
key: 0,
|
|
2763
2778
|
class: "w-px flex-1",
|
|
2764
|
-
style:
|
|
2765
|
-
}, null, 4)) :
|
|
2779
|
+
style: ne({ background: Ge.value, minHeight: "1.1rem" })
|
|
2780
|
+
}, null, 4)) : j("", !0)
|
|
2766
2781
|
]),
|
|
2767
|
-
|
|
2768
|
-
|
|
2782
|
+
w("div", Ga, [
|
|
2783
|
+
w("div", {
|
|
2769
2784
|
class: "text-[12.5px] font-semibold leading-snug",
|
|
2770
|
-
style:
|
|
2771
|
-
}, Z(
|
|
2772
|
-
|
|
2785
|
+
style: ne({ color: ce.value })
|
|
2786
|
+
}, Z(p.label), 5),
|
|
2787
|
+
p.note ? (m(), x("div", {
|
|
2773
2788
|
key: 0,
|
|
2774
2789
|
class: "mt-0.5 text-[11px] leading-snug",
|
|
2775
|
-
style:
|
|
2776
|
-
}, Z(
|
|
2790
|
+
style: ne({ color: Ce.value })
|
|
2791
|
+
}, Z(p.note), 5)) : j("", !0)
|
|
2777
2792
|
])
|
|
2778
|
-
]))), 128)) : (
|
|
2779
|
-
key:
|
|
2793
|
+
]))), 128)) : (m(!0), x(ae, { key: 1 }, me(Be.value, (p) => (m(), x("div", {
|
|
2794
|
+
key: p.id,
|
|
2780
2795
|
class: "mb-1.5 rounded-xl border px-2.5 py-2 text-[12px] font-medium leading-tight",
|
|
2781
|
-
style:
|
|
2782
|
-
}, Z(
|
|
2783
|
-
])) :
|
|
2784
|
-
e.value.meta.footer ? (
|
|
2796
|
+
style: ne({ borderColor: Ge.value, color: ce.value })
|
|
2797
|
+
}, Z(p.label), 5))), 128))
|
|
2798
|
+
])) : j("", !0),
|
|
2799
|
+
e.value.meta.footer ? (m(), x("footer", {
|
|
2785
2800
|
key: 3,
|
|
2786
2801
|
class: "mt-3 text-[11px] leading-snug",
|
|
2787
|
-
style:
|
|
2788
|
-
}, Z(e.value.meta.footer), 5)) :
|
|
2789
|
-
], 12, Ea)) : (
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
class: "mt-3 mb-2 w-full border-y py-2 text-[12px] leading-snug",
|
|
2793
|
-
style: se({ borderColor: Pe.value, color: ce.value })
|
|
2794
|
-
}, " Visual unavailable. Showing the written answer instead. ", 4));
|
|
2795
|
-
}
|
|
2796
|
-
}), Wa = { class: "chat-msg-rich break-words text-[14px] leading-relaxed @sm/chat:text-[15px] @sm/chat:leading-relaxed" }, qa = ["innerHTML"], Pt = /* @__PURE__ */ Ne({
|
|
2802
|
+
style: ne({ color: N.value })
|
|
2803
|
+
}, Z(e.value.meta.footer), 5)) : j("", !0)
|
|
2804
|
+
], 12, Ea)) : j("", !0);
|
|
2805
|
+
}
|
|
2806
|
+
}), Wa = { class: "chat-msg-rich break-words text-[14px] leading-relaxed @sm/chat:text-[15px] @sm/chat:leading-relaxed" }, qa = ["innerHTML"], Ft = /* @__PURE__ */ ze({
|
|
2797
2807
|
__name: "ChatRichText",
|
|
2798
2808
|
props: {
|
|
2799
2809
|
text: {},
|
|
@@ -2803,7 +2813,7 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
2803
2813
|
setup(a) {
|
|
2804
2814
|
const t = a, e = fs(t.text);
|
|
2805
2815
|
let n;
|
|
2806
|
-
|
|
2816
|
+
Bt(
|
|
2807
2817
|
[() => t.text, () => t.streaming],
|
|
2808
2818
|
([u, c]) => {
|
|
2809
2819
|
if (!c) {
|
|
@@ -2819,60 +2829,65 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
2819
2829
|
});
|
|
2820
2830
|
const i = new Y.Renderer();
|
|
2821
2831
|
i.link = ({ href: u, text: c }) => {
|
|
2822
|
-
const
|
|
2823
|
-
if (!
|
|
2832
|
+
const v = u.trim();
|
|
2833
|
+
if (!v || v === "#")
|
|
2824
2834
|
return c;
|
|
2825
|
-
let
|
|
2835
|
+
let b = !1;
|
|
2826
2836
|
if (typeof window < "u")
|
|
2827
2837
|
try {
|
|
2828
|
-
|
|
2838
|
+
b = new URL(u, window.location.href).origin === window.location.origin;
|
|
2829
2839
|
} catch {
|
|
2830
|
-
|
|
2840
|
+
b = !1;
|
|
2831
2841
|
}
|
|
2832
|
-
return
|
|
2842
|
+
return b ? `<a href="${u}">${c}</a>` : `<a href="${u}" target="_blank" rel="noopener noreferrer">${c}</a>`;
|
|
2833
2843
|
}, Y.setOptions({ breaks: !0, gfm: !0, renderer: i });
|
|
2834
2844
|
function s(u) {
|
|
2835
2845
|
if (!u) return "";
|
|
2836
2846
|
const c = Y.parse(u, { async: !1 });
|
|
2837
2847
|
return Fi.sanitize(c, { ADD_ATTR: ["target"], ADD_DATA_URI_TAGS: ["img"] });
|
|
2838
2848
|
}
|
|
2839
|
-
|
|
2849
|
+
h(s, "renderMarkdown");
|
|
2840
2850
|
function l(u) {
|
|
2841
|
-
const c = [],
|
|
2842
|
-
let
|
|
2843
|
-
for (;
|
|
2844
|
-
const X = u.slice(
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
result:
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2851
|
+
const c = [], v = /```pl-visual[ \t]*\r?\n([\s\S]*?)```/g;
|
|
2852
|
+
let b = 0, A = 0, E = v.exec(u);
|
|
2853
|
+
for (; E !== null; ) {
|
|
2854
|
+
const X = u.slice(b, E.index), Q = s(X);
|
|
2855
|
+
Q && c.push({ kind: "markdown", key: `md-${A}`, html: Q });
|
|
2856
|
+
const M = Ws(E[1].trim());
|
|
2857
|
+
if (M.ok)
|
|
2858
|
+
c.push({ kind: "visual", key: `visual-${A}`, result: M });
|
|
2859
|
+
else {
|
|
2860
|
+
typeof console < "u" && console.warn(`[pl-visual] ${M.reason}: ${M.message}`);
|
|
2861
|
+
const P = M.fallbackMarkdown ? s(M.fallbackMarkdown) : "";
|
|
2862
|
+
P && c.push({ kind: "markdown", key: `visual-${A}`, html: P });
|
|
2863
|
+
}
|
|
2864
|
+
b = E.index + E[0].length, A += 1, E = v.exec(u);
|
|
2865
|
+
}
|
|
2866
|
+
const G = u.slice(b), R = s(G);
|
|
2852
2867
|
return R && c.push({ kind: "markdown", key: `md-${A}`, html: R }), c;
|
|
2853
2868
|
}
|
|
2854
|
-
|
|
2869
|
+
h(l, "richTextSegments");
|
|
2855
2870
|
const o = I(() => {
|
|
2856
2871
|
const u = e.value;
|
|
2857
2872
|
return u ? l(u) : [];
|
|
2858
2873
|
});
|
|
2859
|
-
return (u, c) => (
|
|
2860
|
-
(
|
|
2861
|
-
key:
|
|
2874
|
+
return (u, c) => (m(), x("div", Wa, [
|
|
2875
|
+
(m(!0), x(ae, null, me(o.value, (v) => (m(), x(ae, {
|
|
2876
|
+
key: v.key
|
|
2862
2877
|
}, [
|
|
2863
|
-
|
|
2878
|
+
v.kind === "markdown" ? (m(), x("div", {
|
|
2864
2879
|
key: 0,
|
|
2865
|
-
class:
|
|
2866
|
-
innerHTML:
|
|
2867
|
-
}, null, 10, qa)) : (
|
|
2880
|
+
class: $(["chat-msg-prose", a.inverted ? "chat-msg-prose-invert" : ""]),
|
|
2881
|
+
innerHTML: v.html
|
|
2882
|
+
}, null, 10, qa)) : (m(), un(ja, {
|
|
2868
2883
|
key: 1,
|
|
2869
|
-
result:
|
|
2884
|
+
result: v.result,
|
|
2870
2885
|
inverted: a.inverted
|
|
2871
2886
|
}, null, 8, ["result", "inverted"]))
|
|
2872
2887
|
], 64))), 128))
|
|
2873
2888
|
]));
|
|
2874
2889
|
}
|
|
2875
|
-
}), Va = 80, Ya = /* @__PURE__ */
|
|
2890
|
+
}), Va = 80, Ya = /* @__PURE__ */ ze({
|
|
2876
2891
|
__name: "ChatScroller",
|
|
2877
2892
|
setup(a, { expose: t }) {
|
|
2878
2893
|
const e = xe(), n = xe();
|
|
@@ -2881,16 +2896,16 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
2881
2896
|
const c = e.value;
|
|
2882
2897
|
c && (c.scrollTop = c.scrollHeight);
|
|
2883
2898
|
}
|
|
2884
|
-
|
|
2899
|
+
h(l, "scrollToBottom");
|
|
2885
2900
|
function o() {
|
|
2886
2901
|
const c = e.value;
|
|
2887
2902
|
c && (i = c.scrollHeight - c.scrollTop - c.clientHeight <= Va);
|
|
2888
2903
|
}
|
|
2889
|
-
|
|
2904
|
+
h(o, "onScroll");
|
|
2890
2905
|
function u() {
|
|
2891
2906
|
i = !0, l();
|
|
2892
2907
|
}
|
|
2893
|
-
return
|
|
2908
|
+
return h(u, "pin"), t({ pin: u }), Wt(() => {
|
|
2894
2909
|
requestAnimationFrame(() => {
|
|
2895
2910
|
l(), requestAnimationFrame(l);
|
|
2896
2911
|
}), n.value && (s = new ResizeObserver(() => {
|
|
@@ -2898,13 +2913,13 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
2898
2913
|
}), s.observe(n.value));
|
|
2899
2914
|
}), gs(() => {
|
|
2900
2915
|
s?.disconnect();
|
|
2901
|
-
}), (c,
|
|
2916
|
+
}), (c, v) => (m(), x("div", {
|
|
2902
2917
|
ref_key: "viewport",
|
|
2903
2918
|
ref: e,
|
|
2904
2919
|
class: "overflow-y-auto overflow-x-hidden min-h-0 flex flex-col [overflow-anchor:none] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",
|
|
2905
2920
|
onScrollPassive: o
|
|
2906
2921
|
}, [
|
|
2907
|
-
|
|
2922
|
+
w("div", {
|
|
2908
2923
|
ref_key: "content",
|
|
2909
2924
|
ref: n,
|
|
2910
2925
|
class: "flex-1 flex flex-col"
|
|
@@ -2947,7 +2962,7 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
2947
2962
|
}, $r = {
|
|
2948
2963
|
key: 1,
|
|
2949
2964
|
class: "i-tabler-arrow-up size-5"
|
|
2950
|
-
}, Wr = /* @__PURE__ */
|
|
2965
|
+
}, Wr = /* @__PURE__ */ ze({
|
|
2951
2966
|
__name: "ElAgentChat",
|
|
2952
2967
|
props: {
|
|
2953
2968
|
chatController: {},
|
|
@@ -2965,33 +2980,33 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
2965
2980
|
org: { icon: "i-tabler-users", label: "Workspace", tooltip: "Visible to workspace members" },
|
|
2966
2981
|
public: { icon: "i-tabler-globe", label: "Public", tooltip: "Anyone with the link can see this" }
|
|
2967
2982
|
}, e = I(() => {
|
|
2968
|
-
const
|
|
2969
|
-
return a.scope === "org" && a.scopeName && (
|
|
2983
|
+
const y = { ...t[a.scope] };
|
|
2984
|
+
return a.scope === "org" && a.scopeName && (y.label = a.scopeName, y.tooltip = `Visible to ${a.scopeName} members`), y;
|
|
2970
2985
|
}), n = xe(""), i = xe(!1), s = xe(), l = xe(), o = xe(), u = xe([]), c = xe(!1);
|
|
2971
|
-
function y
|
|
2972
|
-
return
|
|
2973
|
-
}
|
|
2974
|
-
|
|
2975
|
-
function
|
|
2976
|
-
return
|
|
2977
|
-
}
|
|
2978
|
-
|
|
2979
|
-
function A(
|
|
2980
|
-
const
|
|
2981
|
-
return !L || L.sender !==
|
|
2982
|
-
}
|
|
2983
|
-
|
|
2984
|
-
const
|
|
2985
|
-
function J(
|
|
2986
|
-
if (!
|
|
2986
|
+
function v(y) {
|
|
2987
|
+
return y ? /\[[^\]]+\]\([^)]+\)/.test(y) : !1;
|
|
2988
|
+
}
|
|
2989
|
+
h(v, "containsMarkdownLink");
|
|
2990
|
+
function b(y) {
|
|
2991
|
+
return y.sender === "system" && (!!y.issue || y.id === ve.value);
|
|
2992
|
+
}
|
|
2993
|
+
h(b, "isSystemExplainerMessage");
|
|
2994
|
+
function A(y, k) {
|
|
2995
|
+
const f = y[k], L = y[k + 1];
|
|
2996
|
+
return !L || L.sender !== f.sender;
|
|
2997
|
+
}
|
|
2998
|
+
h(A, "shouldShowAvatar");
|
|
2999
|
+
const E = I(() => a.chatController?.textState.value), G = I(() => E.value?.isConnected ?? !1), R = I(() => E.value?.isThinking ?? !1), X = I(() => E.value?.connectionStatus === "disconnected" && !!E.value?.error), Q = I(() => E.value?.connectionStatus !== "connected" && !E.value?.error), M = I(() => E.value?.error), P = I(() => a.chatController?.sharedMessages.value ?? []), F = I(() => E.value?.workingDescription?.trim() || void 0), q = I(() => R.value ? E.value?.toolActivities ?? [] : []), H = I(() => J(q.value));
|
|
3000
|
+
function J(y) {
|
|
3001
|
+
if (!y?.length)
|
|
2987
3002
|
return;
|
|
2988
|
-
const
|
|
2989
|
-
if (
|
|
2990
|
-
return { status: "started", icon: "i-tabler-loader-2 animate-spin", label:
|
|
2991
|
-
const
|
|
2992
|
-
if (
|
|
2993
|
-
return { status: "failed", icon: "i-tabler-alert-circle text-theme-500", label:
|
|
2994
|
-
const L =
|
|
3003
|
+
const k = Re(y, "started");
|
|
3004
|
+
if (k)
|
|
3005
|
+
return { status: "started", icon: "i-tabler-loader-2 animate-spin", label: k.label };
|
|
3006
|
+
const f = Re(y, "failed");
|
|
3007
|
+
if (f)
|
|
3008
|
+
return { status: "failed", icon: "i-tabler-alert-circle text-theme-500", label: f.label };
|
|
3009
|
+
const L = y.filter((V) => V.status === "completed").length;
|
|
2995
3010
|
if (L > 0)
|
|
2996
3011
|
return {
|
|
2997
3012
|
status: "completed",
|
|
@@ -2999,477 +3014,479 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
2999
3014
|
label: L === 1 ? "1 action completed" : `${L} actions completed`
|
|
3000
3015
|
};
|
|
3001
3016
|
}
|
|
3002
|
-
|
|
3003
|
-
function
|
|
3004
|
-
for (let
|
|
3005
|
-
const L =
|
|
3006
|
-
if (L?.status ===
|
|
3017
|
+
h(J, "toolActivityLineFor");
|
|
3018
|
+
function Re(y, k) {
|
|
3019
|
+
for (let f = y.length - 1; f >= 0; f--) {
|
|
3020
|
+
const L = y[f];
|
|
3021
|
+
if (L?.status === k)
|
|
3007
3022
|
return L;
|
|
3008
3023
|
}
|
|
3009
3024
|
}
|
|
3010
|
-
|
|
3011
|
-
const
|
|
3025
|
+
h(Re, "lastToolActivityWithStatus");
|
|
3026
|
+
const pe = I(() => E.value?.transientIssue), ve = I(() => {
|
|
3012
3027
|
if (!R.value) return;
|
|
3013
|
-
const
|
|
3014
|
-
return
|
|
3015
|
-
}),
|
|
3016
|
-
() =>
|
|
3017
|
-
),
|
|
3018
|
-
|
|
3028
|
+
const y = P.value, k = y[y.length - 1];
|
|
3029
|
+
return k?.sender === "agent" || k?.sender === "system" ? k.id : void 0;
|
|
3030
|
+
}), xt = I(() => !R.value || F.value ? !1 : ve.value === void 0), Pe = I(() => E.value?.sendBlockedReason), Be = I(() => !G.value || Pe.value !== void 0), se = I(() => X.value ? "Agent is offline" : Q.value ? "Connecting..." : Pe.value === "agent_deleted" ? "This assistant was deleted" : Pe.value === "account" ? "Resolve the billing issue above to continue" : "Message"), Ue = I(() => (n.value.trim() || u.value.length > 0) && !Be.value && !c.value && !R.value), be = I(() => !!a.chatController && R.value && !c.value), ce = I(() => be.value ? "stop" : Ue.value ? "send" : "idle"), Ce = I(() => ce.value !== "idle"), N = I(() => a.variant === "light"), Je = I(
|
|
3031
|
+
() => N.value ? "bg-gradient-to-r from-transparent via-black/5 to-transparent" : "bg-gradient-to-r from-transparent via-white/5 to-transparent"
|
|
3032
|
+
), He = I(() => N.value ? "text-theme-300" : "text-white/30");
|
|
3033
|
+
Wt(async () => {
|
|
3019
3034
|
a.chatController && !G.value && await a.chatController.startTextConversation();
|
|
3020
3035
|
});
|
|
3021
|
-
async function
|
|
3022
|
-
const
|
|
3023
|
-
if (!
|
|
3036
|
+
async function et() {
|
|
3037
|
+
const y = n.value.trim(), k = u.value.length > 0;
|
|
3038
|
+
if (!y && !k || !a.chatController || Be.value || c.value || R.value)
|
|
3024
3039
|
return;
|
|
3025
|
-
const
|
|
3026
|
-
n.value = "", u.value = [], l.value && (l.value.style.height = "auto", l.value.focus()), s.value?.pin(), await a.chatController.sendChatMessage(
|
|
3040
|
+
const f = n.value, L = k ? [...u.value] : void 0;
|
|
3041
|
+
n.value = "", u.value = [], l.value && (l.value.style.height = "auto", l.value.focus()), s.value?.pin(), await a.chatController.sendChatMessage(f, L);
|
|
3027
3042
|
}
|
|
3028
|
-
|
|
3029
|
-
async function
|
|
3030
|
-
!a.chatController || !
|
|
3043
|
+
h(et, "sendMessage");
|
|
3044
|
+
async function Ge() {
|
|
3045
|
+
!a.chatController || !be.value || await a.chatController.stopChatTurn();
|
|
3031
3046
|
}
|
|
3032
|
-
|
|
3033
|
-
async function
|
|
3047
|
+
h(Ge, "stopMessage");
|
|
3048
|
+
async function ee() {
|
|
3034
3049
|
if (ce.value === "stop") {
|
|
3035
|
-
await
|
|
3050
|
+
await Ge();
|
|
3036
3051
|
return;
|
|
3037
3052
|
}
|
|
3038
|
-
ce.value === "send" && await
|
|
3053
|
+
ce.value === "send" && await et();
|
|
3039
3054
|
}
|
|
3040
|
-
|
|
3041
|
-
async function
|
|
3042
|
-
|
|
3055
|
+
h(ee, "handleComposerAction");
|
|
3056
|
+
async function Ye(y) {
|
|
3057
|
+
y.key === "Enter" && !y.shiftKey && (y.preventDefault(), await et());
|
|
3043
3058
|
}
|
|
3044
|
-
|
|
3045
|
-
function
|
|
3059
|
+
h(Ye, "handleKeydown");
|
|
3060
|
+
function g() {
|
|
3046
3061
|
l.value && (l.value.style.height = "auto", l.value.style.height = `${Math.min(l.value.scrollHeight, 150)}px`);
|
|
3047
3062
|
}
|
|
3048
|
-
|
|
3049
|
-
function
|
|
3063
|
+
h(g, "adjustTextareaHeight"), Bt(n, () => Bs(() => g()));
|
|
3064
|
+
function _() {
|
|
3050
3065
|
o.value?.click();
|
|
3051
3066
|
}
|
|
3052
|
-
|
|
3053
|
-
async function
|
|
3054
|
-
const
|
|
3055
|
-
if (!(!
|
|
3067
|
+
h(_, "triggerFileInput");
|
|
3068
|
+
async function p(y) {
|
|
3069
|
+
const k = y.target, f = k.files?.[0];
|
|
3070
|
+
if (!(!f || !a.uploadFn)) {
|
|
3056
3071
|
c.value = !0;
|
|
3057
3072
|
try {
|
|
3058
|
-
const L = await a.uploadFn(
|
|
3073
|
+
const L = await a.uploadFn(f);
|
|
3059
3074
|
u.value = [...u.value, L];
|
|
3060
3075
|
} catch (L) {
|
|
3061
|
-
const
|
|
3062
|
-
a.chatController?.notify(`Upload failed — ${
|
|
3076
|
+
const V = L instanceof Error ? L.message : "Couldn't attach that file.";
|
|
3077
|
+
a.chatController?.notify(`Upload failed — ${V}`);
|
|
3063
3078
|
} finally {
|
|
3064
|
-
c.value = !1,
|
|
3079
|
+
c.value = !1, k.value = "";
|
|
3065
3080
|
}
|
|
3066
3081
|
}
|
|
3067
3082
|
}
|
|
3068
|
-
|
|
3069
|
-
function
|
|
3070
|
-
u.value = u.value.filter((
|
|
3083
|
+
h(p, "handleFileSelect");
|
|
3084
|
+
function S(y) {
|
|
3085
|
+
u.value = u.value.filter((k, f) => f !== y);
|
|
3071
3086
|
}
|
|
3072
|
-
|
|
3073
|
-
function
|
|
3074
|
-
if (
|
|
3075
|
-
const
|
|
3076
|
-
return
|
|
3087
|
+
h(S, "removeAttachment");
|
|
3088
|
+
function D(y, k) {
|
|
3089
|
+
if (k === 0) {
|
|
3090
|
+
const Ie = y[k];
|
|
3091
|
+
return Ie?.timestamp ? O(new Date(Ie.timestamp)) : null;
|
|
3077
3092
|
}
|
|
3078
|
-
const
|
|
3079
|
-
if (!
|
|
3080
|
-
const
|
|
3081
|
-
return new Date(L.timestamp).getTime() -
|
|
3093
|
+
const f = y[k - 1], L = y[k];
|
|
3094
|
+
if (!f?.timestamp || !L?.timestamp) return null;
|
|
3095
|
+
const V = new Date(f.timestamp).getTime();
|
|
3096
|
+
return new Date(L.timestamp).getTime() - V > 36e5 ? O(new Date(L.timestamp)) : null;
|
|
3082
3097
|
}
|
|
3083
|
-
|
|
3084
|
-
function
|
|
3085
|
-
const
|
|
3098
|
+
h(D, "shouldShowTimeDivider");
|
|
3099
|
+
function O(y) {
|
|
3100
|
+
const k = /* @__PURE__ */ new Date(), f = y.toDateString() === k.toDateString(), L = new Date(k);
|
|
3086
3101
|
L.setDate(L.getDate() - 1);
|
|
3087
|
-
const
|
|
3088
|
-
if (
|
|
3089
|
-
if (
|
|
3090
|
-
const
|
|
3091
|
-
return `${
|
|
3102
|
+
const V = y.toDateString() === L.toDateString(), fe = y.toLocaleTimeString("en-US", { hour: "numeric", minute: "2-digit" });
|
|
3103
|
+
if (f) return fe;
|
|
3104
|
+
if (V) return `Yesterday, ${fe}`;
|
|
3105
|
+
const ye = y.getFullYear() === k.getFullYear();
|
|
3106
|
+
return `${y.toLocaleDateString("en-US", {
|
|
3092
3107
|
weekday: "long",
|
|
3093
3108
|
month: "short",
|
|
3094
3109
|
day: "numeric",
|
|
3095
|
-
...
|
|
3096
|
-
})}, ${
|
|
3110
|
+
...ye ? {} : { year: "numeric" }
|
|
3111
|
+
})}, ${fe}`;
|
|
3097
3112
|
}
|
|
3098
|
-
return
|
|
3099
|
-
|
|
3100
|
-
|
|
3113
|
+
return h(O, "formatTimeDivider"), (y, k) => (m(), x("div", Ka, [
|
|
3114
|
+
N.value ? j("", !0) : (m(), x("div", Za, [
|
|
3115
|
+
rt(oi, {
|
|
3101
3116
|
agent: a.agent,
|
|
3102
3117
|
"is-online": G.value
|
|
3103
3118
|
}, null, 8, ["agent", "is-online"])
|
|
3104
3119
|
])),
|
|
3105
|
-
X.value ? (
|
|
3120
|
+
X.value ? (m(), x("div", {
|
|
3106
3121
|
key: 1,
|
|
3107
|
-
class:
|
|
3122
|
+
class: $(["py-16 flex flex-col items-center justify-center gap-3 text-sm", N.value ? "text-theme-400" : "text-white/60"])
|
|
3108
3123
|
}, [
|
|
3109
|
-
|
|
3110
|
-
class:
|
|
3124
|
+
w("i", {
|
|
3125
|
+
class: $(["i-heroicons-cloud-arrow-down size-8", N.value ? "text-theme-300" : "text-white/40"])
|
|
3111
3126
|
}, null, 2),
|
|
3112
|
-
|
|
3113
|
-
], 2)) :
|
|
3127
|
+
w("span", null, Z(M.value), 1)
|
|
3128
|
+
], 2)) : Q.value ? (m(), x("div", {
|
|
3114
3129
|
key: 2,
|
|
3115
|
-
class:
|
|
3130
|
+
class: $(["py-16 flex flex-col items-center justify-center gap-2 text-sm", N.value ? "text-theme-400" : "text-theme-600"])
|
|
3116
3131
|
}, [
|
|
3117
|
-
|
|
3118
|
-
], 2)) : a.setupHint ? (
|
|
3132
|
+
rt(jn, { class: "size-4" })
|
|
3133
|
+
], 2)) : a.setupHint ? (m(), x("div", {
|
|
3119
3134
|
key: 3,
|
|
3120
|
-
class:
|
|
3135
|
+
class: $(["flex items-center justify-center gap-1.5 py-2 text-[11px]", He.value])
|
|
3121
3136
|
}, [
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
], 2)) :
|
|
3125
|
-
|
|
3137
|
+
k[10] || (k[10] = w("i", { class: "i-tabler-tool size-3" }, null, -1)),
|
|
3138
|
+
w("span", null, Z(a.setupHint), 1)
|
|
3139
|
+
], 2)) : j("", !0),
|
|
3140
|
+
rt(Ya, {
|
|
3126
3141
|
ref_key: "chatScroller",
|
|
3127
3142
|
ref: s,
|
|
3128
3143
|
class: "flex-1"
|
|
3129
3144
|
}, {
|
|
3130
3145
|
default: Us(() => [
|
|
3131
|
-
|
|
3132
|
-
class:
|
|
3146
|
+
w("div", {
|
|
3147
|
+
class: $(P.value.length === 0 ? "flex-1 flex flex-col items-center justify-center px-3" : "pt-4 pb-[120px] px-3 space-y-2")
|
|
3133
3148
|
}, [
|
|
3134
|
-
P.value.length === 0 && !
|
|
3135
|
-
|
|
3136
|
-
|
|
3149
|
+
P.value.length === 0 && !Q.value && !X.value ? (m(), x("div", Xa, [
|
|
3150
|
+
w("div", Qa, [
|
|
3151
|
+
w("img", {
|
|
3137
3152
|
src: a.agent.avatarUrl.value,
|
|
3138
3153
|
alt: a.agent.displayName.value,
|
|
3139
|
-
class:
|
|
3154
|
+
class: $(["size-full rounded-full object-cover ring-1", N.value ? "ring-black/5" : "ring-white/10"])
|
|
3140
3155
|
}, null, 10, Ja),
|
|
3141
|
-
G.value ? (
|
|
3156
|
+
G.value ? (m(), x("span", {
|
|
3142
3157
|
key: 0,
|
|
3143
|
-
class:
|
|
3144
|
-
}, [...
|
|
3145
|
-
|
|
3146
|
-
])], 2)) :
|
|
3158
|
+
class: $(["absolute top-[85%] left-[85%] -translate-x-1/2 -translate-y-1/2 size-[18%] min-w-2.5 min-h-2.5 flex items-center justify-center rounded-full", N.value ? "bg-white" : "bg-theme-900"])
|
|
3159
|
+
}, [...k[11] || (k[11] = [
|
|
3160
|
+
w("span", { class: "size-[70%] inline-flex rounded-full bg-emerald-500" }, null, -1)
|
|
3161
|
+
])], 2)) : j("", !0)
|
|
3147
3162
|
]),
|
|
3148
|
-
|
|
3149
|
-
class:
|
|
3163
|
+
w("div", {
|
|
3164
|
+
class: $(["text-base @sm/chat:text-lg font-semibold", N.value ? "text-theme-900" : "text-white"])
|
|
3150
3165
|
}, Z(a.agent.displayName.value), 3),
|
|
3151
|
-
|
|
3152
|
-
class:
|
|
3166
|
+
w("p", {
|
|
3167
|
+
class: $(["mt-1 text-center text-xs @sm/chat:text-sm", He.value])
|
|
3153
3168
|
}, Z(a.emptyStateMessage || "Type your message to get started."), 3),
|
|
3154
|
-
|
|
3155
|
-
class:
|
|
3169
|
+
w("div", {
|
|
3170
|
+
class: $(["inline-flex items-center gap-1.5 mt-5 px-2.5 py-1 rounded-full text-[11px]", N.value ? "bg-theme-50 border border-theme-100 text-theme-400" : "bg-white/10 border border-white/20 text-white/40"]),
|
|
3156
3171
|
title: e.value.tooltip
|
|
3157
3172
|
}, [
|
|
3158
|
-
|
|
3159
|
-
class:
|
|
3173
|
+
w("i", {
|
|
3174
|
+
class: $([e.value.icon, "size-3"])
|
|
3160
3175
|
}, null, 2),
|
|
3161
|
-
|
|
3176
|
+
w("span", null, Z(e.value.label), 1)
|
|
3162
3177
|
], 10, er)
|
|
3163
|
-
])) :
|
|
3164
|
-
(
|
|
3165
|
-
key:
|
|
3178
|
+
])) : j("", !0),
|
|
3179
|
+
(m(!0), x(ae, null, me(P.value, (f, L) => (m(), x(ae, {
|
|
3180
|
+
key: f.id
|
|
3166
3181
|
}, [
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
class:
|
|
3182
|
+
D(P.value, L) ? (m(), x("div", tr, [
|
|
3183
|
+
w("div", {
|
|
3184
|
+
class: $(["flex-1 h-px", Je.value])
|
|
3170
3185
|
}, null, 2),
|
|
3171
|
-
|
|
3172
|
-
class:
|
|
3173
|
-
}, Z(
|
|
3174
|
-
|
|
3175
|
-
class:
|
|
3186
|
+
w("span", {
|
|
3187
|
+
class: $(["text-[10px] @sm/chat:text-[11px] font-medium shrink-0 tracking-widest uppercase", He.value])
|
|
3188
|
+
}, Z(D(P.value, L)), 3),
|
|
3189
|
+
w("div", {
|
|
3190
|
+
class: $(["flex-1 h-px", Je.value])
|
|
3176
3191
|
}, null, 2)
|
|
3177
|
-
])) :
|
|
3178
|
-
|
|
3192
|
+
])) : j("", !0),
|
|
3193
|
+
b(f) ? (m(), x("div", {
|
|
3179
3194
|
key: 1,
|
|
3180
3195
|
"data-test": "messaging-system-msg",
|
|
3181
|
-
"data-message-id":
|
|
3182
|
-
"data-message-sender":
|
|
3183
|
-
"data-conversation-id":
|
|
3184
|
-
"data-message-sequence":
|
|
3185
|
-
"data-system-kind":
|
|
3186
|
-
"data-issue-code":
|
|
3187
|
-
"data-issue-bucket":
|
|
3188
|
-
"data-issue-action-label":
|
|
3189
|
-
"data-issue-action-url":
|
|
3190
|
-
"data-streaming":
|
|
3196
|
+
"data-message-id": f.id,
|
|
3197
|
+
"data-message-sender": f.sender,
|
|
3198
|
+
"data-conversation-id": f.conversationId,
|
|
3199
|
+
"data-message-sequence": f.sequence,
|
|
3200
|
+
"data-system-kind": f.systemKind,
|
|
3201
|
+
"data-issue-code": f.issue?.code,
|
|
3202
|
+
"data-issue-bucket": f.issue?.bucket,
|
|
3203
|
+
"data-issue-action-label": f.issue?.actionLabel,
|
|
3204
|
+
"data-issue-action-url": f.issue?.actionUrl,
|
|
3205
|
+
"data-streaming": f.id === ve.value ? "true" : void 0,
|
|
3191
3206
|
class: "flex gap-2 items-end justify-start mb-4"
|
|
3192
3207
|
}, [
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
class:
|
|
3208
|
+
w("div", sr, [
|
|
3209
|
+
w("div", {
|
|
3210
|
+
class: $(["mb-1 pl-1 text-[11px] font-medium", N.value ? "text-theme-500" : "text-white/45"])
|
|
3196
3211
|
}, " System Message ", 2),
|
|
3197
|
-
|
|
3198
|
-
class:
|
|
3212
|
+
w("div", {
|
|
3213
|
+
class: $(["rounded-2xl rounded-bl-[4px] px-3.5 py-2 border system-msg-content", N.value ? "bg-theme-100 border-theme-200 text-theme-800" : "bg-white/[0.18] border-white/15 text-white/90"])
|
|
3199
3214
|
}, [
|
|
3200
|
-
|
|
3215
|
+
f.text ? (m(), un(Ft, {
|
|
3201
3216
|
key: 0,
|
|
3202
|
-
text:
|
|
3203
|
-
inverted: !
|
|
3204
|
-
streaming:
|
|
3205
|
-
onClick:
|
|
3217
|
+
text: f.text,
|
|
3218
|
+
inverted: !N.value,
|
|
3219
|
+
streaming: f.id === ve.value,
|
|
3220
|
+
onClick: k[0] || (k[0] = wt(() => {
|
|
3206
3221
|
}, ["stop"]))
|
|
3207
|
-
}, null, 8, ["text", "inverted", "streaming"])) :
|
|
3222
|
+
}, null, 8, ["text", "inverted", "streaming"])) : f.issue?.help ? (m(), un(Ft, {
|
|
3208
3223
|
key: 1,
|
|
3209
|
-
text:
|
|
3210
|
-
inverted: !
|
|
3211
|
-
}, null, 8, ["text", "inverted"])) :
|
|
3212
|
-
|
|
3224
|
+
text: f.issue.help,
|
|
3225
|
+
inverted: !N.value
|
|
3226
|
+
}, null, 8, ["text", "inverted"])) : j("", !0),
|
|
3227
|
+
f.issue?.actionUrl && !v(f.text) ? (m(), x("a", {
|
|
3213
3228
|
key: 2,
|
|
3214
|
-
href:
|
|
3229
|
+
href: f.issue.actionUrl,
|
|
3215
3230
|
"data-test": "messaging-system-msg-action",
|
|
3216
|
-
class:
|
|
3217
|
-
onClick:
|
|
3231
|
+
class: $(["mt-2 text-[12px] font-medium inline-flex items-center gap-1", N.value ? "text-theme-900 hover:text-theme-700" : "text-white hover:text-white/80"]),
|
|
3232
|
+
onClick: k[1] || (k[1] = wt(() => {
|
|
3218
3233
|
}, ["stop"]))
|
|
3219
3234
|
}, [
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
], 10, ir)) :
|
|
3235
|
+
Nt(Z(f.issue.actionLabel) + " ", 1),
|
|
3236
|
+
k[12] || (k[12] = w("i", { class: "i-tabler-arrow-right size-3" }, null, -1))
|
|
3237
|
+
], 10, ir)) : j("", !0)
|
|
3223
3238
|
], 2)
|
|
3224
3239
|
])
|
|
3225
|
-
], 8, nr)) :
|
|
3240
|
+
], 8, nr)) : f.sender === "system" ? (m(), x("div", {
|
|
3226
3241
|
key: 2,
|
|
3227
3242
|
"data-test": "messaging-system-status-msg",
|
|
3228
|
-
"data-message-id":
|
|
3229
|
-
"data-message-sender":
|
|
3230
|
-
"data-conversation-id":
|
|
3231
|
-
"data-message-sequence":
|
|
3232
|
-
"data-system-kind":
|
|
3233
|
-
"data-issue-code":
|
|
3234
|
-
"data-issue-bucket":
|
|
3235
|
-
"data-streaming":
|
|
3236
|
-
class:
|
|
3243
|
+
"data-message-id": f.id,
|
|
3244
|
+
"data-message-sender": f.sender,
|
|
3245
|
+
"data-conversation-id": f.conversationId,
|
|
3246
|
+
"data-message-sequence": f.sequence,
|
|
3247
|
+
"data-system-kind": f.systemKind,
|
|
3248
|
+
"data-issue-code": f.issue?.code,
|
|
3249
|
+
"data-issue-bucket": f.issue?.bucket,
|
|
3250
|
+
"data-streaming": f.id === ve.value ? "true" : void 0,
|
|
3251
|
+
class: $(["flex items-start gap-2 px-3 py-2 text-[13px] leading-relaxed", N.value ? "text-theme-500" : "text-white/60"])
|
|
3237
3252
|
}, [
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
text:
|
|
3241
|
-
inverted: !
|
|
3242
|
-
onClick:
|
|
3253
|
+
k[13] || (k[13] = w("i", { class: "i-tabler-info-circle size-4 mt-0.5 shrink-0" }, null, -1)),
|
|
3254
|
+
rt(Ft, {
|
|
3255
|
+
text: f.text,
|
|
3256
|
+
inverted: !N.value,
|
|
3257
|
+
onClick: k[2] || (k[2] = wt(() => {
|
|
3243
3258
|
}, ["stop"]))
|
|
3244
3259
|
}, null, 8, ["text", "inverted"])
|
|
3245
|
-
], 10, ar)) : (
|
|
3260
|
+
], 10, ar)) : (m(), x("div", {
|
|
3246
3261
|
key: 3,
|
|
3247
|
-
"data-test":
|
|
3248
|
-
"data-message-id":
|
|
3249
|
-
"data-message-sender":
|
|
3250
|
-
"data-conversation-id":
|
|
3251
|
-
"data-message-sequence":
|
|
3252
|
-
"data-system-kind":
|
|
3253
|
-
"data-streaming":
|
|
3254
|
-
class:
|
|
3255
|
-
"justify-end":
|
|
3256
|
-
"justify-start":
|
|
3257
|
-
|
|
3262
|
+
"data-test": f.sender === "agent" ? "messaging-assistant-msg" : f.sender === "user" ? "messaging-user-msg" : void 0,
|
|
3263
|
+
"data-message-id": f.id,
|
|
3264
|
+
"data-message-sender": f.sender,
|
|
3265
|
+
"data-conversation-id": f.conversationId,
|
|
3266
|
+
"data-message-sequence": f.sequence,
|
|
3267
|
+
"data-system-kind": f.systemKind,
|
|
3268
|
+
"data-streaming": f.id === ve.value ? "true" : void 0,
|
|
3269
|
+
class: $(["flex gap-2 items-end", {
|
|
3270
|
+
"justify-end": f.sender === "user",
|
|
3271
|
+
"justify-start": f.sender === "agent",
|
|
3272
|
+
// Group-aware rhythm: tight (space-y) within a speaker's turn,
|
|
3273
|
+
// generous at the boundary between speakers (end of a group).
|
|
3274
|
+
"mb-6": A(P.value, L)
|
|
3258
3275
|
}])
|
|
3259
3276
|
}, [
|
|
3260
|
-
|
|
3261
|
-
A(P.value, L) ? (
|
|
3277
|
+
f.sender === "agent" ? (m(), x("div", lr, [
|
|
3278
|
+
A(P.value, L) ? (m(), x("img", {
|
|
3262
3279
|
key: 0,
|
|
3263
3280
|
src: a.agent.avatarUrl.value,
|
|
3264
3281
|
alt: a.agent.displayName.value,
|
|
3265
|
-
class:
|
|
3266
|
-
}, null, 10, or)) :
|
|
3267
|
-
])) :
|
|
3268
|
-
|
|
3269
|
-
class:
|
|
3282
|
+
class: $(["size-6 @sm/chat:size-7 rounded-full object-cover shadow-sm", N.value ? "ring-1 ring-black/5" : ""])
|
|
3283
|
+
}, null, 10, or)) : j("", !0)
|
|
3284
|
+
])) : j("", !0),
|
|
3285
|
+
w("div", {
|
|
3286
|
+
class: $(f.sender === "user" ? "max-w-[75%]" : "max-w-[92%]")
|
|
3270
3287
|
}, [
|
|
3271
|
-
|
|
3288
|
+
f.attachments?.length ? (m(), x("div", {
|
|
3272
3289
|
key: 0,
|
|
3273
|
-
class:
|
|
3290
|
+
class: $(["mb-1 space-y-1", f.sender === "user" ? "flex flex-col items-end" : ""])
|
|
3274
3291
|
}, [
|
|
3275
|
-
(
|
|
3276
|
-
|
|
3292
|
+
(m(!0), x(ae, null, me(f.attachments, (V, fe) => (m(), x(ae, { key: fe }, [
|
|
3293
|
+
V.type === "image" ? (m(), x("img", {
|
|
3277
3294
|
key: 0,
|
|
3278
|
-
src:
|
|
3279
|
-
alt:
|
|
3295
|
+
src: V.src,
|
|
3296
|
+
alt: V.filename,
|
|
3280
3297
|
class: "rounded-xl object-cover max-h-48 max-w-[240px] @sm/chat:max-w-[320px]"
|
|
3281
|
-
}, null, 8, cr)) :
|
|
3298
|
+
}, null, 8, cr)) : V.type === "audio" ? (m(), x("audio", {
|
|
3282
3299
|
key: 1,
|
|
3283
|
-
src:
|
|
3300
|
+
src: V.src,
|
|
3284
3301
|
controls: "",
|
|
3285
3302
|
class: "max-w-full"
|
|
3286
|
-
}, null, 8, ur)) : (
|
|
3303
|
+
}, null, 8, ur)) : (m(), x("a", {
|
|
3287
3304
|
key: 2,
|
|
3288
|
-
href:
|
|
3305
|
+
href: V.src,
|
|
3289
3306
|
target: "_blank",
|
|
3290
3307
|
rel: "noopener",
|
|
3291
|
-
class:
|
|
3308
|
+
class: $(["inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs", N.value ? "bg-theme-100 text-theme-600 hover:bg-theme-200" : "bg-white/10 text-white/80 hover:bg-white/20"])
|
|
3292
3309
|
}, [
|
|
3293
|
-
|
|
3294
|
-
|
|
3310
|
+
k[14] || (k[14] = w("i", { class: "i-tabler-file size-3.5" }, null, -1)),
|
|
3311
|
+
Nt(" " + Z(V.filename), 1)
|
|
3295
3312
|
], 10, hr))
|
|
3296
3313
|
], 64))), 128))
|
|
3297
|
-
], 2)) :
|
|
3298
|
-
|
|
3314
|
+
], 2)) : j("", !0),
|
|
3315
|
+
f.text ? (m(), x("div", {
|
|
3299
3316
|
key: 1,
|
|
3300
|
-
class:
|
|
3301
|
-
|
|
3302
|
-
|
|
3317
|
+
class: $(
|
|
3318
|
+
f.sender === "user" ? "rounded-2xl rounded-br-[4px] px-3.5 py-2 bg-primary-500 text-white" : N.value ? "text-theme-800" : "text-white/95"
|
|
3319
|
+
)
|
|
3303
3320
|
}, [
|
|
3304
|
-
|
|
3305
|
-
text:
|
|
3306
|
-
inverted:
|
|
3307
|
-
streaming:
|
|
3308
|
-
onClick:
|
|
3321
|
+
rt(Ft, {
|
|
3322
|
+
text: f.text,
|
|
3323
|
+
inverted: f.sender === "user" || !N.value,
|
|
3324
|
+
streaming: f.id === ve.value,
|
|
3325
|
+
onClick: k[3] || (k[3] = wt(() => {
|
|
3309
3326
|
}, ["stop"]))
|
|
3310
3327
|
}, null, 8, ["text", "inverted", "streaming"])
|
|
3311
|
-
], 2)) :
|
|
3312
|
-
J(
|
|
3328
|
+
], 2)) : j("", !0),
|
|
3329
|
+
J(f.toolActivities) ? (m(), x("div", {
|
|
3313
3330
|
key: 2,
|
|
3314
3331
|
"data-test": "messaging-message-tool-activity",
|
|
3315
|
-
"data-tool-activity-status": J(
|
|
3316
|
-
class:
|
|
3332
|
+
"data-tool-activity-status": J(f.toolActivities)?.status,
|
|
3333
|
+
class: $(["mt-1 flex items-center gap-1.5 pl-2 pr-3 text-[12px] leading-none", N.value ? "text-theme-500" : "text-white/45"])
|
|
3317
3334
|
}, [
|
|
3318
|
-
|
|
3319
|
-
class:
|
|
3335
|
+
w("i", {
|
|
3336
|
+
class: $(["size-3.5 shrink-0 opacity-80", J(f.toolActivities)?.icon]),
|
|
3320
3337
|
"aria-hidden": "true"
|
|
3321
3338
|
}, null, 2),
|
|
3322
|
-
|
|
3323
|
-
], 10, dr)) :
|
|
3339
|
+
w("span", pr, Z(J(f.toolActivities)?.label), 1)
|
|
3340
|
+
], 10, dr)) : j("", !0)
|
|
3324
3341
|
], 2)
|
|
3325
3342
|
], 10, rr))
|
|
3326
3343
|
], 64))), 128)),
|
|
3327
|
-
|
|
3344
|
+
F.value ? (m(), x("div", {
|
|
3328
3345
|
key: 1,
|
|
3329
3346
|
"data-test": "messaging-working-state",
|
|
3330
|
-
"data-working-description":
|
|
3331
|
-
class:
|
|
3347
|
+
"data-working-description": F.value,
|
|
3348
|
+
class: $(["flex items-center gap-1.5 pl-2 pr-3 pb-1 mb-3 text-[12px] leading-none", N.value ? "text-theme-500" : "text-white/45"])
|
|
3332
3349
|
}, [
|
|
3333
|
-
|
|
3350
|
+
k[15] || (k[15] = w("i", {
|
|
3334
3351
|
class: "i-tabler-loader-2 size-3.5 shrink-0 animate-spin opacity-70",
|
|
3335
3352
|
"aria-hidden": "true"
|
|
3336
3353
|
}, null, -1)),
|
|
3337
|
-
|
|
3338
|
-
], 10, fr)) :
|
|
3339
|
-
|
|
3354
|
+
w("span", gr, Z(F.value), 1)
|
|
3355
|
+
], 10, fr)) : j("", !0),
|
|
3356
|
+
H.value ? (m(), x("div", {
|
|
3340
3357
|
key: 2,
|
|
3341
3358
|
"data-test": "messaging-tool-activity",
|
|
3342
|
-
"data-tool-activity-status":
|
|
3343
|
-
class:
|
|
3359
|
+
"data-tool-activity-status": H.value.status,
|
|
3360
|
+
class: $(["flex items-center gap-1.5 pl-2 pr-3 pb-1 mb-3 text-[12px] leading-none", N.value ? "text-theme-500" : "text-white/45"])
|
|
3344
3361
|
}, [
|
|
3345
|
-
|
|
3346
|
-
class:
|
|
3362
|
+
w("i", {
|
|
3363
|
+
class: $(["size-3.5 shrink-0 opacity-80", H.value.icon]),
|
|
3347
3364
|
"aria-hidden": "true"
|
|
3348
3365
|
}, null, 2),
|
|
3349
|
-
|
|
3350
|
-
], 10, mr)) :
|
|
3351
|
-
|
|
3366
|
+
w("span", xr, Z(H.value.label), 1)
|
|
3367
|
+
], 10, mr)) : j("", !0),
|
|
3368
|
+
pe.value ? (m(), x("div", {
|
|
3352
3369
|
key: 3,
|
|
3353
3370
|
"data-test": "messaging-transient-issue",
|
|
3354
|
-
"data-issue-code":
|
|
3355
|
-
class:
|
|
3371
|
+
"data-issue-code": pe.value.code,
|
|
3372
|
+
class: $(["flex items-center gap-1.5 pl-2 pr-3 pb-1 mb-3 text-[12px] leading-snug", N.value ? "text-theme-600" : "text-white/60"])
|
|
3356
3373
|
}, [
|
|
3357
|
-
|
|
3374
|
+
k[16] || (k[16] = w("i", {
|
|
3358
3375
|
class: "i-tabler-alert-circle size-3.5 shrink-0 text-red-500",
|
|
3359
3376
|
"aria-hidden": "true"
|
|
3360
3377
|
}, null, -1)),
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
], 64)) :
|
|
3378
|
+
w("span", null, [
|
|
3379
|
+
Nt(Z(pe.value.message), 1),
|
|
3380
|
+
pe.value.help ? (m(), x(ae, { key: 0 }, [
|
|
3381
|
+
Nt(Z(pe.value.help), 1)
|
|
3382
|
+
], 64)) : j("", !0)
|
|
3366
3383
|
]),
|
|
3367
|
-
|
|
3384
|
+
pe.value.actionUrl && pe.value.actionLabel ? (m(), x("a", {
|
|
3368
3385
|
key: 0,
|
|
3369
|
-
href:
|
|
3386
|
+
href: pe.value.actionUrl,
|
|
3370
3387
|
class: "shrink-0 underline underline-offset-2",
|
|
3371
|
-
onClick:
|
|
3388
|
+
onClick: k[4] || (k[4] = wt(() => {
|
|
3372
3389
|
}, ["stop"]))
|
|
3373
|
-
}, Z(
|
|
3374
|
-
], 10, kr)) :
|
|
3375
|
-
|
|
3376
|
-
|
|
3390
|
+
}, Z(pe.value.actionLabel), 9, br)) : j("", !0)
|
|
3391
|
+
], 10, kr)) : j("", !0),
|
|
3392
|
+
xt.value ? (m(), x("div", vr, [
|
|
3393
|
+
w("img", {
|
|
3377
3394
|
src: a.agent.avatarUrl.value,
|
|
3378
3395
|
alt: a.agent.displayName.value,
|
|
3379
|
-
class:
|
|
3396
|
+
class: $(["size-7 @sm/chat:size-8 flex-shrink-0 rounded-full object-cover shadow-sm", N.value ? "ring-1 ring-black/5" : ""])
|
|
3380
3397
|
}, null, 10, yr),
|
|
3381
|
-
|
|
3382
|
-
class:
|
|
3398
|
+
w("div", {
|
|
3399
|
+
class: $(["rounded-2xl px-3.5 py-2.5 flex items-center", N.value ? "bg-theme-100" : "bg-white/15 backdrop-blur-sm"])
|
|
3383
3400
|
}, [
|
|
3384
|
-
|
|
3385
|
-
class:
|
|
3401
|
+
w("i", {
|
|
3402
|
+
class: $(["i-svg-spinners-3-dots-bounce size-7", N.value ? "text-theme-400" : "text-white/50"])
|
|
3386
3403
|
}, null, 2)
|
|
3387
3404
|
], 2)
|
|
3388
|
-
])) :
|
|
3405
|
+
])) : j("", !0)
|
|
3389
3406
|
], 2)
|
|
3390
3407
|
]),
|
|
3391
3408
|
_: 1
|
|
3392
3409
|
}, 512),
|
|
3393
|
-
|
|
3394
|
-
class:
|
|
3410
|
+
w("div", {
|
|
3411
|
+
class: $(["absolute bottom-0 left-0 right-0 z-30 px-5 pb-4 pt-3", N.value ? "bg-gradient-to-t from-theme-50/90 via-theme-50/55 to-transparent" : "bg-gradient-to-t from-black/80 via-black/70 to-black/40"])
|
|
3395
3412
|
}, [
|
|
3396
|
-
u.value.length > 0 ? (
|
|
3397
|
-
(
|
|
3413
|
+
u.value.length > 0 ? (m(), x("div", wr, [
|
|
3414
|
+
(m(!0), x(ae, null, me(u.value, (f, L) => (m(), x("div", {
|
|
3398
3415
|
key: L,
|
|
3399
3416
|
class: "relative shrink-0 group"
|
|
3400
3417
|
}, [
|
|
3401
|
-
|
|
3418
|
+
f.type === "image" ? (m(), x("img", {
|
|
3402
3419
|
key: 0,
|
|
3403
|
-
src:
|
|
3404
|
-
alt:
|
|
3405
|
-
class:
|
|
3406
|
-
}, null, 10, Tr)) : (
|
|
3420
|
+
src: f.src,
|
|
3421
|
+
alt: f.filename,
|
|
3422
|
+
class: $(["size-14 rounded-xl object-cover border", N.value ? "border-black/10" : "border-white/20"])
|
|
3423
|
+
}, null, 10, Tr)) : (m(), x("div", {
|
|
3407
3424
|
key: 1,
|
|
3408
|
-
class:
|
|
3425
|
+
class: $(["h-14 px-3 rounded-xl flex items-center gap-1.5 text-xs border", N.value ? "border-black/10 bg-theme-50 text-theme-600" : "border-white/20 bg-white/10 text-white/70"])
|
|
3409
3426
|
}, [
|
|
3410
|
-
|
|
3411
|
-
|
|
3427
|
+
k[17] || (k[17] = w("i", { class: "i-tabler-file size-4" }, null, -1)),
|
|
3428
|
+
w("span", Sr, Z(f.filename), 1)
|
|
3412
3429
|
], 2)),
|
|
3413
|
-
|
|
3430
|
+
w("button", {
|
|
3414
3431
|
class: "absolute -top-1.5 -right-1.5 size-5 flex items-center justify-center rounded-full bg-theme-800 text-white text-xs scale-0 group-hover:scale-100 transition-transform cursor-pointer",
|
|
3415
|
-
onClick: /* @__PURE__ */
|
|
3416
|
-
}, [...
|
|
3417
|
-
|
|
3432
|
+
onClick: /* @__PURE__ */ h((V) => S(L), "onClick")
|
|
3433
|
+
}, [...k[18] || (k[18] = [
|
|
3434
|
+
w("i", { class: "i-tabler-x size-3" }, null, -1)
|
|
3418
3435
|
])], 8, Ar)
|
|
3419
3436
|
]))), 128)),
|
|
3420
|
-
c.value ? (
|
|
3421
|
-
|
|
3422
|
-
])) :
|
|
3423
|
-
])) :
|
|
3424
|
-
a.uploadFn ? (
|
|
3437
|
+
c.value ? (m(), x("div", _r, [
|
|
3438
|
+
rt(jn, { class: "size-5" })
|
|
3439
|
+
])) : j("", !0)
|
|
3440
|
+
])) : j("", !0),
|
|
3441
|
+
a.uploadFn ? (m(), x("input", {
|
|
3425
3442
|
key: 1,
|
|
3426
3443
|
ref_key: "fileInput",
|
|
3427
3444
|
ref: o,
|
|
3428
3445
|
type: "file",
|
|
3429
3446
|
accept: "image/*,audio/*,video/*",
|
|
3430
3447
|
class: "hidden",
|
|
3431
|
-
onChange:
|
|
3432
|
-
}, null, 544)) :
|
|
3433
|
-
|
|
3434
|
-
class:
|
|
3448
|
+
onChange: p
|
|
3449
|
+
}, null, 544)) : j("", !0),
|
|
3450
|
+
w("div", {
|
|
3451
|
+
class: $(["flex items-end gap-1 w-full rounded-[24px] p-1.5 transition-colors duration-200", N.value ? i.value ? "bg-theme-50 ring-1 ring-theme-300" : "bg-theme-25 ring-1 ring-theme-200 hover:ring-theme-300" : i.value ? "bg-white/15 ring-1 ring-white/25" : "bg-white/10 ring-1 ring-transparent hover:ring-white/15"])
|
|
3435
3452
|
}, [
|
|
3436
|
-
|
|
3437
|
-
class:
|
|
3453
|
+
w("button", {
|
|
3454
|
+
class: $(["shrink-0 flex items-center justify-center rounded-full transition-colors mb-0.5 ml-0.5 size-9 @sm/chat:size-10", [
|
|
3438
3455
|
a.uploadFn ? "cursor-pointer" : "cursor-default",
|
|
3439
|
-
|
|
3456
|
+
N.value ? "text-theme-400 hover:text-theme-600 hover:bg-black/5" : "text-white/50 hover:text-white/80 hover:bg-white/10",
|
|
3440
3457
|
c.value ? "opacity-50 pointer-events-none" : ""
|
|
3441
3458
|
]]),
|
|
3442
|
-
disabled:
|
|
3443
|
-
onClick:
|
|
3459
|
+
disabled: Be.value || c.value || !a.uploadFn,
|
|
3460
|
+
onClick: k[5] || (k[5] = (f) => a.uploadFn && _())
|
|
3444
3461
|
}, [
|
|
3445
|
-
c.value ? (
|
|
3462
|
+
c.value ? (m(), x("i", Rr)) : (m(), x("i", Cr))
|
|
3446
3463
|
], 10, Er),
|
|
3447
|
-
Hs(
|
|
3464
|
+
Hs(w("textarea", {
|
|
3448
3465
|
ref_key: "textarea",
|
|
3449
3466
|
ref: l,
|
|
3450
|
-
"onUpdate:modelValue":
|
|
3467
|
+
"onUpdate:modelValue": k[6] || (k[6] = (f) => n.value = f),
|
|
3451
3468
|
"data-test": "messaging-input",
|
|
3452
3469
|
rows: "1",
|
|
3453
3470
|
enterkeyhint: "send",
|
|
3454
|
-
placeholder:
|
|
3455
|
-
disabled:
|
|
3471
|
+
placeholder: se.value,
|
|
3472
|
+
disabled: Be.value,
|
|
3456
3473
|
style: { fontSize: "16px", resize: "none" },
|
|
3457
|
-
class:
|
|
3458
|
-
onKeydown:
|
|
3459
|
-
onFocus:
|
|
3460
|
-
onBlur:
|
|
3474
|
+
class: $(["flex-1 min-w-0 bg-transparent px-1 py-2 focus:outline-none disabled:opacity-50 overflow-y-auto leading-relaxed [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden", N.value ? "text-theme-800 placeholder-theme-400" : "text-white placeholder-white/50"]),
|
|
3475
|
+
onKeydown: Ye,
|
|
3476
|
+
onFocus: k[7] || (k[7] = (f) => i.value = !0),
|
|
3477
|
+
onBlur: k[8] || (k[8] = (f) => i.value = !1)
|
|
3461
3478
|
}, null, 42, Ir), [
|
|
3462
3479
|
[Gs, n.value]
|
|
3463
3480
|
]),
|
|
3464
|
-
|
|
3481
|
+
w("button", {
|
|
3465
3482
|
"data-test": "messaging-send-btn",
|
|
3466
3483
|
"data-composer-action": ce.value,
|
|
3467
|
-
class:
|
|
3468
|
-
disabled: !
|
|
3484
|
+
class: $(["shrink-0 flex items-center justify-center rounded-full transition-transform duration-200 mb-0.5 mr-0.5 size-9 @sm/chat:size-10", Ce.value ? "bg-primary-500 text-white hover:scale-105 active:scale-95 cursor-pointer" : N.value ? "bg-black/5 text-black/20" : "bg-white/10 text-white/30"]),
|
|
3485
|
+
disabled: !Ce.value,
|
|
3469
3486
|
"aria-label": ce.value === "stop" ? "Stop reply" : "Send message",
|
|
3470
|
-
onClick:
|
|
3487
|
+
onClick: k[9] || (k[9] = (f) => ee())
|
|
3471
3488
|
}, [
|
|
3472
|
-
ce.value === "stop" ? (
|
|
3489
|
+
ce.value === "stop" ? (m(), x("i", Mr)) : (m(), x("i", $r))
|
|
3473
3490
|
], 10, Dr)
|
|
3474
3491
|
], 2)
|
|
3475
3492
|
], 2)
|
|
@@ -3478,7 +3495,7 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
3478
3495
|
}), Lr = { class: "agent-wrap" }, Or = {
|
|
3479
3496
|
key: 0,
|
|
3480
3497
|
class: "flex items-center justify-center h-full"
|
|
3481
|
-
}, qr = /* @__PURE__ */
|
|
3498
|
+
}, qr = /* @__PURE__ */ ze({
|
|
3482
3499
|
__name: "AgentWrap",
|
|
3483
3500
|
props: {
|
|
3484
3501
|
sdk: {},
|
|
@@ -3495,8 +3512,8 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
3495
3512
|
const t = qs("AgentWrap"), e = a, n = e.sdk || Vs.getInstance({
|
|
3496
3513
|
isDev: typeof window < "u" ? window.location.hostname === "localhost" || window.location.hostname.includes("127.0.0.1") : !1,
|
|
3497
3514
|
...e.apiBase && { apiBase: e.apiBase }
|
|
3498
|
-
}), i = xe(!e.agent), s = fs(e.agent ? new
|
|
3499
|
-
return
|
|
3515
|
+
}), i = xe(!e.agent), s = fs(e.agent ? new Ut({ config: e.agent }) : void 0), l = xe();
|
|
3516
|
+
return Wt(async () => {
|
|
3500
3517
|
if (e.agent) {
|
|
3501
3518
|
t.debug("Agent provided via props, skipping fetch", {
|
|
3502
3519
|
agentId: e.agent.agentId,
|
|
@@ -3522,7 +3539,7 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
3522
3539
|
try {
|
|
3523
3540
|
i.value = !0, t.debug("Fetching public agent", { handle: e.handle });
|
|
3524
3541
|
const o = await n.user.getPublicAgent({ handle: e.handle });
|
|
3525
|
-
o ? (s.value = new
|
|
3542
|
+
o ? (s.value = new Ut({ config: o }), t.debug("Successfully fetched public agent", {
|
|
3526
3543
|
agentId: o.agentId,
|
|
3527
3544
|
handle: o.handle
|
|
3528
3545
|
}), o.agentId && n.user.track({
|
|
@@ -3572,9 +3589,9 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
3572
3589
|
}
|
|
3573
3590
|
});
|
|
3574
3591
|
}
|
|
3575
|
-
}), (o, u) => (
|
|
3576
|
-
i.value ? (
|
|
3577
|
-
|
|
3592
|
+
}), (o, u) => (m(), x("div", Lr, [
|
|
3593
|
+
i.value ? (m(), x("div", Or, [...u[0] || (u[0] = [
|
|
3594
|
+
w("div", { class: "animate-spin rounded-full size-6 border-b-2 border-white" }, null, -1)
|
|
3578
3595
|
])])) : s.value ? fn(o.$slots, "default", {
|
|
3579
3596
|
key: 1,
|
|
3580
3597
|
sdk: cn(n),
|
|
@@ -3584,7 +3601,7 @@ const Ea = ["data-visual-type", "data-chart-type", "data-diagram-type", "aria-la
|
|
|
3584
3601
|
buttonText: a.buttonText,
|
|
3585
3602
|
buttonIcon: a.buttonIcon,
|
|
3586
3603
|
loading: i.value
|
|
3587
|
-
}) :
|
|
3604
|
+
}) : j("", !0)
|
|
3588
3605
|
]));
|
|
3589
3606
|
}
|
|
3590
3607
|
});
|