@useago/sdk 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/dist/{AgoClient--y10UXUV.cjs → AgoClient-B3-WGVne.cjs} +3 -3
- package/dist/{AgoClient-DYdIe_R4.js → AgoClient-QcTtrN7u.js} +3 -0
- package/dist/angular.cjs +1 -1
- package/dist/angular.d.cts +24 -0
- package/dist/angular.d.ts +24 -0
- package/dist/angular.js +1 -1
- package/dist/{createConversationSession-lJWANT6T.cjs → createConversationSession-BwYNMZWq.cjs} +1 -1
- package/dist/{createConversationSession-Boi0PjDU.js → createConversationSession-DrCMdwkV.js} +1 -1
- package/dist/createFormCollector-BHHEW6uX.cjs +1 -0
- package/dist/createFormCollector-QyojCH_-.js +297 -0
- package/dist/devtools.d.cts +24 -0
- package/dist/devtools.d.ts +24 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +58 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.js +53 -45
- package/dist/react.cjs +2 -2
- package/dist/react.d.cts +41 -0
- package/dist/react.d.ts +41 -0
- package/dist/react.js +43 -41
- package/dist/testing.d.cts +24 -0
- package/dist/testing.d.ts +24 -0
- package/dist/vue.cjs +1 -1
- package/dist/vue.d.cts +24 -0
- package/dist/vue.d.ts +24 -0
- package/dist/vue.js +1 -1
- package/dist/widget.cjs +4 -4
- package/dist/widget.d.cts +63 -0
- package/dist/widget.d.ts +63 -0
- package/dist/widget.js +362 -310
- package/package.json +1 -1
- package/dist/createFormCollector-BUqSA2Qw.js +0 -257
- package/dist/createFormCollector-CSG5ioym.cjs +0 -1
package/dist/widget.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { r as
|
|
3
|
-
import { t as
|
|
4
|
-
var
|
|
1
|
+
import { t as nt, u as ot } from "./AgoClient-QcTtrN7u.js";
|
|
2
|
+
import { r as rt, t as at } from "./createFormCollector-QyojCH_-.js";
|
|
3
|
+
import { t as st } from "./createConversationSession-DrCMdwkV.js";
|
|
4
|
+
var it = {
|
|
5
5
|
"&": "&",
|
|
6
6
|
"<": "<",
|
|
7
7
|
">": ">",
|
|
@@ -9,41 +9,41 @@ var Ye = {
|
|
|
9
9
|
"'": "'"
|
|
10
10
|
};
|
|
11
11
|
function U(o) {
|
|
12
|
-
return o.replace(/[&<>"']/g, (n) =>
|
|
12
|
+
return o.replace(/[&<>"']/g, (n) => it[n]);
|
|
13
13
|
}
|
|
14
|
-
function
|
|
14
|
+
function De(o) {
|
|
15
15
|
const n = o.trim();
|
|
16
16
|
return /^(https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(n) || !/^[a-z][a-z0-9+.-]*:/i.test(n) ? n : null;
|
|
17
17
|
}
|
|
18
|
-
var
|
|
19
|
-
function
|
|
20
|
-
const n = [],
|
|
18
|
+
var He = '"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace', Q = "";
|
|
19
|
+
function F(o) {
|
|
20
|
+
const n = [], a = (u) => (n.push(u), `${Q}${n.length - 1}${Q}`);
|
|
21
21
|
let t = o;
|
|
22
|
-
return t = t.replace(/`([^`]+)`/g, (u, i) =>
|
|
23
|
-
const
|
|
24
|
-
return
|
|
22
|
+
return t = t.replace(/`([^`]+)`/g, (u, i) => a(`<code style="background:#f0f2f5;padding:2px 5px;border-radius:4px;font-size:13px;font-family:${He}">${U(i)}</code>`)), t = t.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g, (u, i, f) => {
|
|
23
|
+
const l = De(f);
|
|
24
|
+
return l ? a(`<img alt="${U(i)}" src="${U(l)}" style="max-width:100%;border-radius:8px;margin:4px 0" />`) : u;
|
|
25
25
|
}), t = t.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, (u, i, f) => {
|
|
26
|
-
const
|
|
27
|
-
return
|
|
26
|
+
const l = De(f);
|
|
27
|
+
return l ? a(`<a href="${U(l)}" target="_blank" rel="noopener noreferrer" style="color:#1b5fc4;text-decoration:underline">${F(i)}</a>`) : u;
|
|
28
28
|
}), t = U(t), t = t.replace(/\*\*([^*]+?)\*\*/g, "<strong>$1</strong>").replace(/__([^_]+?)__/g, "<strong>$1</strong>").replace(/~~([^~]+?)~~/g, "<del>$1</del>").replace(/(^|[^*])\*(?!\s)([^*]+?)\*/g, "$1<em>$2</em>").replace(/(^|[^\w_])_(?!\s)([^_]+?)_/g, "$1<em>$2</em>"), t = t.replace(new RegExp(`${Q}(\\d+)${Q}`, "g"), (u, i) => n[Number(i)]), t;
|
|
29
29
|
}
|
|
30
|
-
function R(o, n,
|
|
30
|
+
function R(o, n, a) {
|
|
31
31
|
const t = document.createElement(o);
|
|
32
|
-
return Object.assign(t.style, n),
|
|
32
|
+
return Object.assign(t.style, n), a !== void 0 && (t.innerHTML = a), t;
|
|
33
33
|
}
|
|
34
|
-
var
|
|
34
|
+
var Ue = /^ {0,3}([-*_])( *\1){2,} *$/, We = /^ {0,3}(#{1,6})\s+(.*?)\s*#*\s*$/, Pe = /^ {0,3}(```+|~~~+)/, Z = /^ {0,3}>\s?/, W = /^(\s*)([-*+]|\d+[.)])\s+(.*)$/, lt = [
|
|
35
35
|
"20px",
|
|
36
36
|
"18px",
|
|
37
37
|
"16px",
|
|
38
38
|
"15px",
|
|
39
39
|
"14px",
|
|
40
40
|
"13px"
|
|
41
|
-
],
|
|
42
|
-
function
|
|
43
|
-
return o.trim() === "" ||
|
|
41
|
+
], me = (o) => o.match(/^\s*/)?.[0].length ?? 0;
|
|
42
|
+
function dt(o) {
|
|
43
|
+
return o.trim() === "" || Ue.test(o) || We.test(o) || Pe.test(o) || Z.test(o) || W.test(o);
|
|
44
44
|
}
|
|
45
|
-
function
|
|
46
|
-
const n = o[0].match(
|
|
45
|
+
function Ge(o) {
|
|
46
|
+
const n = o[0].match(W), a = n[1].length, t = /\d/.test(n[2]), u = R(t ? "ol" : "ul", {
|
|
47
47
|
margin: "0 0 8px 0",
|
|
48
48
|
paddingLeft: "20px",
|
|
49
49
|
listStyleType: t ? "decimal" : "disc",
|
|
@@ -51,20 +51,20 @@ function Me(o) {
|
|
|
51
51
|
});
|
|
52
52
|
let i = 0;
|
|
53
53
|
for (; i < o.length; ) {
|
|
54
|
-
const f = o[i].match(
|
|
55
|
-
for (i++; i < o.length &&
|
|
56
|
-
|
|
54
|
+
const f = o[i].match(W), l = [];
|
|
55
|
+
for (i++; i < o.length && me(o[i]) > a; )
|
|
56
|
+
l.push(o[i]), i++;
|
|
57
57
|
const p = R("li", {
|
|
58
58
|
display: "list-item",
|
|
59
59
|
margin: "2px 0",
|
|
60
60
|
lineHeight: "1.6"
|
|
61
61
|
}), c = f[3].match(/^\[([ xX])\]\s+(.*)$/);
|
|
62
|
-
c ? (p.style.listStyleType = "none", p.style.marginLeft = "-20px", p.innerHTML = `<span style="margin-right:6px">${c[1].toLowerCase() === "x" ? "☑" : "☐"}</span>${
|
|
62
|
+
c ? (p.style.listStyleType = "none", p.style.marginLeft = "-20px", p.innerHTML = `<span style="margin-right:6px">${c[1].toLowerCase() === "x" ? "☑" : "☐"}</span>${F(c[2])}`) : p.innerHTML = F(f[3]), l.filter((m) => W.test(m)).length > 0 && p.appendChild(Ge(l.filter((m) => m.trim() !== ""))), u.appendChild(p);
|
|
63
63
|
}
|
|
64
64
|
return u;
|
|
65
65
|
}
|
|
66
|
-
function
|
|
67
|
-
const n = (
|
|
66
|
+
function ct(o) {
|
|
67
|
+
const n = (l) => l.replace(/^\s*\|?/, "").replace(/\|?\s*$/, "").split("|").map((p) => p.trim()), a = R("div", {
|
|
68
68
|
overflowX: "auto",
|
|
69
69
|
margin: "0 0 8px 0"
|
|
70
70
|
}), t = R("table", {
|
|
@@ -72,58 +72,58 @@ function et(o) {
|
|
|
72
72
|
width: "100%",
|
|
73
73
|
fontSize: "13px"
|
|
74
74
|
}), u = document.createElement("thead"), i = document.createElement("tr");
|
|
75
|
-
for (const
|
|
75
|
+
for (const l of n(o[0])) i.appendChild(R("th", {
|
|
76
76
|
border: "1px solid #dee3e8",
|
|
77
77
|
padding: "6px 10px",
|
|
78
78
|
textAlign: "left",
|
|
79
79
|
backgroundColor: "#f5f7fa",
|
|
80
80
|
fontWeight: "600"
|
|
81
|
-
},
|
|
81
|
+
}, F(l)));
|
|
82
82
|
u.appendChild(i), t.appendChild(u);
|
|
83
83
|
const f = document.createElement("tbody");
|
|
84
|
-
for (const
|
|
84
|
+
for (const l of o.slice(2)) {
|
|
85
85
|
const p = document.createElement("tr");
|
|
86
|
-
for (const c of n(
|
|
86
|
+
for (const c of n(l)) p.appendChild(R("td", {
|
|
87
87
|
border: "1px solid #dee3e8",
|
|
88
88
|
padding: "6px 10px"
|
|
89
|
-
},
|
|
89
|
+
}, F(c)));
|
|
90
90
|
f.appendChild(p);
|
|
91
91
|
}
|
|
92
|
-
return t.appendChild(f),
|
|
92
|
+
return t.appendChild(f), a.appendChild(t), a;
|
|
93
93
|
}
|
|
94
|
-
var
|
|
95
|
-
function
|
|
96
|
-
const n = document.createDocumentFragment(),
|
|
94
|
+
var pt = (o) => !!o && /^\s*\|?\s*:?-{1,}:?\s*(\|\s*:?-{1,}:?\s*)*\|?\s*$/.test(o);
|
|
95
|
+
function he(o) {
|
|
96
|
+
const n = document.createDocumentFragment(), a = o.replace(/\r\n?/g, `
|
|
97
97
|
`).split(`
|
|
98
98
|
`);
|
|
99
99
|
let t = 0;
|
|
100
|
-
for (; t <
|
|
101
|
-
const i =
|
|
100
|
+
for (; t < a.length; ) {
|
|
101
|
+
const i = a[t];
|
|
102
102
|
if (i.trim() === "") {
|
|
103
103
|
t++;
|
|
104
104
|
continue;
|
|
105
105
|
}
|
|
106
|
-
const f = i.match(
|
|
106
|
+
const f = i.match(Pe);
|
|
107
107
|
if (f) {
|
|
108
|
-
const c = f[1][0],
|
|
109
|
-
for (t++; t <
|
|
110
|
-
|
|
108
|
+
const c = f[1][0], m = [];
|
|
109
|
+
for (t++; t < a.length && !new RegExp(`^ {0,3}${c === "`" ? "`{3,}" : "~{3,}"}\\s*$`).test(a[t]); )
|
|
110
|
+
m.push(a[t]), t++;
|
|
111
111
|
t++;
|
|
112
|
-
const
|
|
113
|
-
|
|
112
|
+
const T = R("pre", { margin: "0 0 8px 0" });
|
|
113
|
+
T.appendChild(R("code", {
|
|
114
114
|
display: "block",
|
|
115
115
|
background: "#f5f5f5",
|
|
116
116
|
padding: "8px 12px",
|
|
117
117
|
borderRadius: "6px",
|
|
118
118
|
fontSize: "13px",
|
|
119
119
|
overflowX: "auto",
|
|
120
|
-
fontFamily:
|
|
120
|
+
fontFamily: He,
|
|
121
121
|
whiteSpace: "pre"
|
|
122
|
-
}, U(
|
|
123
|
-
`)))), n.appendChild(
|
|
122
|
+
}, U(m.join(`
|
|
123
|
+
`)))), n.appendChild(T);
|
|
124
124
|
continue;
|
|
125
125
|
}
|
|
126
|
-
if (
|
|
126
|
+
if (Ue.test(i)) {
|
|
127
127
|
n.appendChild(R("hr", {
|
|
128
128
|
border: "none",
|
|
129
129
|
borderTop: "1px solid #dee3e8",
|
|
@@ -131,60 +131,60 @@ function fe(o) {
|
|
|
131
131
|
})), t++;
|
|
132
132
|
continue;
|
|
133
133
|
}
|
|
134
|
-
const
|
|
135
|
-
if (
|
|
136
|
-
const c =
|
|
134
|
+
const l = i.match(We);
|
|
135
|
+
if (l) {
|
|
136
|
+
const c = l[1].length;
|
|
137
137
|
n.appendChild(R(`h${c}`, {
|
|
138
138
|
margin: "16px 0 8px 0",
|
|
139
|
-
fontSize:
|
|
139
|
+
fontSize: lt[c - 1],
|
|
140
140
|
fontWeight: "600",
|
|
141
141
|
lineHeight: "1.3"
|
|
142
|
-
},
|
|
142
|
+
}, F(l[2]))), t++;
|
|
143
143
|
continue;
|
|
144
144
|
}
|
|
145
145
|
if (Z.test(i)) {
|
|
146
146
|
const c = [];
|
|
147
|
-
for (; t <
|
|
148
|
-
c.push(
|
|
149
|
-
const
|
|
147
|
+
for (; t < a.length && Z.test(a[t]); )
|
|
148
|
+
c.push(a[t].replace(Z, "")), t++;
|
|
149
|
+
const m = R("blockquote", {
|
|
150
150
|
borderLeft: "4px solid #dee3e8",
|
|
151
151
|
paddingLeft: "12px",
|
|
152
152
|
margin: "0 0 8px 0",
|
|
153
153
|
fontStyle: "italic",
|
|
154
154
|
color: "#6b6d6f"
|
|
155
155
|
});
|
|
156
|
-
|
|
157
|
-
`))), n.appendChild(
|
|
156
|
+
m.appendChild(he(c.join(`
|
|
157
|
+
`))), n.appendChild(m);
|
|
158
158
|
continue;
|
|
159
159
|
}
|
|
160
|
-
if (i.includes("|") &&
|
|
161
|
-
const c = [i,
|
|
162
|
-
for (t += 2; t <
|
|
163
|
-
c.push(
|
|
164
|
-
n.appendChild(
|
|
160
|
+
if (i.includes("|") && pt(a[t + 1])) {
|
|
161
|
+
const c = [i, a[t + 1]];
|
|
162
|
+
for (t += 2; t < a.length && a[t].includes("|") && a[t].trim(); )
|
|
163
|
+
c.push(a[t]), t++;
|
|
164
|
+
n.appendChild(ct(c));
|
|
165
165
|
continue;
|
|
166
166
|
}
|
|
167
|
-
if (
|
|
168
|
-
const c = [],
|
|
169
|
-
for (; t <
|
|
170
|
-
if (
|
|
171
|
-
c.push(
|
|
167
|
+
if (W.test(i)) {
|
|
168
|
+
const c = [], m = me(i);
|
|
169
|
+
for (; t < a.length && a[t].trim() !== ""; )
|
|
170
|
+
if (W.test(a[t]) || me(a[t]) > m)
|
|
171
|
+
c.push(a[t]), t++;
|
|
172
172
|
else break;
|
|
173
|
-
n.appendChild(
|
|
173
|
+
n.appendChild(Ge(c));
|
|
174
174
|
continue;
|
|
175
175
|
}
|
|
176
176
|
const p = [i];
|
|
177
|
-
for (t++; t <
|
|
178
|
-
p.push(
|
|
177
|
+
for (t++; t < a.length && !dt(a[t]); )
|
|
178
|
+
p.push(a[t]), t++;
|
|
179
179
|
n.appendChild(R("p", {
|
|
180
180
|
margin: "0 0 8px 0",
|
|
181
181
|
lineHeight: "1.6"
|
|
182
|
-
}, p.map((c) =>
|
|
182
|
+
}, p.map((c) => F(c)).join("<br>")));
|
|
183
183
|
}
|
|
184
184
|
const u = n.lastElementChild;
|
|
185
185
|
return u && (u.style.marginBottom = "0"), n;
|
|
186
186
|
}
|
|
187
|
-
var
|
|
187
|
+
var xe = 'var(--ago-font, "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)', Me = {
|
|
188
188
|
font: "--ago-font",
|
|
189
189
|
radius: "--ago-radius",
|
|
190
190
|
messageRadius: "--ago-message-radius",
|
|
@@ -198,172 +198,195 @@ var ue = 'var(--ago-font, "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "S
|
|
|
198
198
|
mutedText: "--ago-muted-text-color",
|
|
199
199
|
border: "--ago-border-color",
|
|
200
200
|
accent: "--ago-accent-color"
|
|
201
|
-
},
|
|
202
|
-
function
|
|
201
|
+
}, be = "var(--ago-brand-color, #03182f)", Ce = "var(--ago-brand-text-color, #fff)", ft = "var(--ago-header-background, var(--ago-brand-color, #03182f))", Fe = "var(--ago-header-text-color, #e8f0fe)", j = "var(--ago-panel-background, #fff)", ut = "var(--ago-messages-background, #fbfbfb)", Y = "var(--ago-text-color, #30373e)", gt = "var(--ago-muted-text-color, #6b6d6f)", I = "var(--ago-border-color, #dee3e8)", ue = "var(--ago-accent-color, #1b5fc4)", mt = "var(--ago-radius, 16px)", ge = "var(--ago-message-radius, 16px)";
|
|
202
|
+
function ht(o, n) {
|
|
203
203
|
if (n)
|
|
204
|
-
for (const
|
|
205
|
-
const t = n[
|
|
206
|
-
t != null && o.style.setProperty(
|
|
204
|
+
for (const a of Object.keys(Me)) {
|
|
205
|
+
const t = n[a];
|
|
206
|
+
t != null && o.style.setProperty(Me[a], t);
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
function
|
|
209
|
+
function E(o, n) {
|
|
210
210
|
Object.assign(o.style, n);
|
|
211
211
|
}
|
|
212
|
-
function
|
|
212
|
+
function b(o = {}) {
|
|
213
213
|
const n = document.createElement("div");
|
|
214
|
-
return
|
|
214
|
+
return E(n, o), n;
|
|
215
|
+
}
|
|
216
|
+
var Be = "Form submitted.";
|
|
217
|
+
function xt(o) {
|
|
218
|
+
if (typeof o == "string") return o || null;
|
|
219
|
+
if (!o || typeof o != "object") return null;
|
|
220
|
+
const n = o;
|
|
221
|
+
if (typeof n.message == "string" && n.message) return n.message;
|
|
222
|
+
const a = n.result;
|
|
223
|
+
if (typeof a == "string" && a) return a;
|
|
224
|
+
if (a && typeof a == "object") {
|
|
225
|
+
const t = a.message;
|
|
226
|
+
if (typeof t == "string" && t) return t;
|
|
227
|
+
}
|
|
228
|
+
return null;
|
|
215
229
|
}
|
|
216
|
-
var
|
|
217
|
-
function
|
|
218
|
-
if (typeof document > "u" || document.getElementById(
|
|
230
|
+
var ze = "ago-chat-widget-keyframes";
|
|
231
|
+
function bt() {
|
|
232
|
+
if (typeof document > "u" || document.getElementById(ze)) return;
|
|
219
233
|
const o = document.createElement("style");
|
|
220
|
-
o.id =
|
|
234
|
+
o.id = ze, o.textContent = "@keyframes ago-pulse { 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); } 40% { opacity: 1; transform: scale(1); } }", document.head.appendChild(o);
|
|
221
235
|
}
|
|
222
|
-
function
|
|
236
|
+
function Ct(o) {
|
|
223
237
|
const n = typeof o == "string" ? document.querySelector(o) : o;
|
|
224
238
|
if (!n) throw new Error(`mountChatWidget: target "${String(o)}" not found.`);
|
|
225
239
|
return n;
|
|
226
240
|
}
|
|
227
|
-
function
|
|
228
|
-
const { title:
|
|
229
|
-
if (!n.client && !n.config?.baseUrl) throw new
|
|
230
|
-
const g = n.client ?? new
|
|
231
|
-
let
|
|
232
|
-
const
|
|
233
|
-
let k = n.conversationId ?? K?.getLastActiveThread() ?? void 0, d = [], O = !1,
|
|
234
|
-
const
|
|
241
|
+
function St(o, n) {
|
|
242
|
+
const { title: a = "Chat", welcomeMessage: t = "Hello! How can I help you today?", placeholder: u = "Type a message...", allowFiles: i = !1, height: f = 500, placement: l = "inline", width: p = 400, defaultOpen: c = !1, logoUrl: m, showAgentName: T = !1, theme: h, loadThreads: _ = !1, forms: X, formSubmittedMessage: L = Be, onFollowUpClick: $, onMessageSent: ye, onMessageReceived: J, onFormSubmitted: ee, onFormError: te } = n;
|
|
243
|
+
if (!n.client && !n.config?.baseUrl) throw new ot("mountChatWidget requires either `client` or `config` (with a baseUrl).", "config_missing_base_url");
|
|
244
|
+
const g = n.client ?? new nt(n.config), ve = Ct(o), B = l === "left" || l === "right", je = B && (n.launcher ?? !0);
|
|
245
|
+
let z = B ? c : !0;
|
|
246
|
+
const ne = n.persistConversation, K = ne ? st(ne === !0 ? {} : ne) : void 0;
|
|
247
|
+
let k = n.conversationId ?? K?.getLastActiveThread() ?? void 0, d = [], O = !1, P = null;
|
|
248
|
+
const Ee = [];
|
|
249
|
+
function Xe(e) {
|
|
250
|
+
if (typeof L == "function") {
|
|
251
|
+
const s = L(e);
|
|
252
|
+
if (typeof s == "string" && s) return s;
|
|
253
|
+
}
|
|
254
|
+
const r = xt(e);
|
|
255
|
+
return r || (typeof L == "string" ? L : Be);
|
|
256
|
+
}
|
|
257
|
+
const q = [], H = b({
|
|
235
258
|
display: "flex",
|
|
236
259
|
flexDirection: "column",
|
|
237
|
-
height:
|
|
238
|
-
border: `1px solid ${
|
|
239
|
-
borderRadius:
|
|
260
|
+
height: B ? "100%" : typeof f == "number" ? `${f}px` : f,
|
|
261
|
+
border: `1px solid ${I}`,
|
|
262
|
+
borderRadius: mt,
|
|
240
263
|
overflow: "hidden",
|
|
241
264
|
backgroundColor: j,
|
|
242
|
-
fontFamily:
|
|
265
|
+
fontFamily: xe,
|
|
243
266
|
textAlign: "left",
|
|
244
267
|
boxShadow: "rgba(15, 15, 15, 0.08) 0px 2px 16px 0px"
|
|
245
268
|
});
|
|
246
|
-
|
|
247
|
-
const G =
|
|
269
|
+
H.className = "ago-chat-widget", ht(H, h);
|
|
270
|
+
const G = b({
|
|
248
271
|
padding: "14px 16px",
|
|
249
|
-
borderBottom: `1px solid ${
|
|
250
|
-
backgroundColor:
|
|
251
|
-
color:
|
|
272
|
+
borderBottom: `1px solid ${I}`,
|
|
273
|
+
backgroundColor: ft,
|
|
274
|
+
color: Fe,
|
|
252
275
|
display: "flex",
|
|
253
276
|
alignItems: "center",
|
|
254
277
|
gap: "10px"
|
|
255
278
|
});
|
|
256
|
-
if (G.className = "ago-chat-widget__header",
|
|
279
|
+
if (G.className = "ago-chat-widget__header", m) {
|
|
257
280
|
const e = document.createElement("img");
|
|
258
|
-
e.src =
|
|
281
|
+
e.src = m, e.alt = "Logo", E(e, {
|
|
259
282
|
height: "24px",
|
|
260
283
|
width: "auto"
|
|
261
284
|
}), G.appendChild(e);
|
|
262
285
|
}
|
|
263
|
-
const
|
|
264
|
-
if (
|
|
286
|
+
const oe = document.createElement("h3");
|
|
287
|
+
if (oe.textContent = a, E(oe, {
|
|
265
288
|
margin: "0",
|
|
266
289
|
fontSize: "15px",
|
|
267
290
|
fontWeight: "600"
|
|
268
|
-
}), G.appendChild(
|
|
291
|
+
}), G.appendChild(oe), B) {
|
|
269
292
|
const e = document.createElement("button");
|
|
270
|
-
e.type = "button", e.className = "ago-chat-widget__close", e.setAttribute("aria-label", "Close"), e.textContent = "×",
|
|
293
|
+
e.type = "button", e.className = "ago-chat-widget__close", e.setAttribute("aria-label", "Close"), e.textContent = "×", E(e, {
|
|
271
294
|
marginLeft: "auto",
|
|
272
295
|
background: "transparent",
|
|
273
296
|
border: "none",
|
|
274
|
-
color:
|
|
297
|
+
color: Fe,
|
|
275
298
|
fontSize: "22px",
|
|
276
299
|
lineHeight: "1",
|
|
277
300
|
cursor: "pointer",
|
|
278
301
|
padding: "0 2px"
|
|
279
|
-
}), e.addEventListener("click", () =>
|
|
302
|
+
}), e.addEventListener("click", () => pe()), G.appendChild(e);
|
|
280
303
|
}
|
|
281
|
-
const
|
|
304
|
+
const N = b({
|
|
282
305
|
flex: "1",
|
|
283
306
|
overflow: "auto",
|
|
284
307
|
padding: "16px",
|
|
285
|
-
backgroundColor:
|
|
308
|
+
backgroundColor: ut
|
|
286
309
|
});
|
|
287
|
-
|
|
288
|
-
const { inputRow:
|
|
310
|
+
N.className = "ago-chat-widget__messages";
|
|
311
|
+
const { inputRow: Ke, setDisabled: qe, focus: re } = yt({
|
|
289
312
|
placeholder: u,
|
|
290
313
|
allowFiles: i,
|
|
291
|
-
onSend: (e,
|
|
292
|
-
|
|
314
|
+
onSend: (e, r) => {
|
|
315
|
+
ie(e, r);
|
|
293
316
|
}
|
|
294
317
|
});
|
|
295
|
-
|
|
296
|
-
let V =
|
|
297
|
-
const
|
|
298
|
-
if (
|
|
318
|
+
bt(), H.append(G, N, Ke);
|
|
319
|
+
let V = H, D, S;
|
|
320
|
+
const ae = l === "left" ? "left" : "right";
|
|
321
|
+
if (B && (D = b({
|
|
299
322
|
position: "fixed",
|
|
300
323
|
top: "0",
|
|
301
324
|
bottom: "0",
|
|
302
|
-
[
|
|
325
|
+
[ae]: "0",
|
|
303
326
|
width: typeof p == "number" ? `${p}px` : p,
|
|
304
327
|
maxWidth: "100vw",
|
|
305
328
|
display: "flex",
|
|
306
329
|
zIndex: "2147483000",
|
|
307
330
|
transition: "transform 0.3s ease",
|
|
308
331
|
boxShadow: "rgba(15, 15, 15, 0.18) 0px 0px 24px 0px"
|
|
309
|
-
}),
|
|
332
|
+
}), D.className = "ago-chat-widget-panel", E(H, {
|
|
310
333
|
height: "100%",
|
|
311
334
|
width: "100%",
|
|
312
335
|
borderRadius: "0",
|
|
313
336
|
border: "none",
|
|
314
337
|
boxShadow: "none",
|
|
315
|
-
[
|
|
316
|
-
}),
|
|
317
|
-
if (
|
|
338
|
+
[ae === "left" ? "borderRight" : "borderLeft"]: `1px solid ${I}`
|
|
339
|
+
}), D.appendChild(H), V = D), je) {
|
|
340
|
+
if (S = document.createElement("button"), S.type = "button", S.className = "ago-chat-widget-launcher", S.setAttribute("aria-label", `Open ${a}`), E(S, {
|
|
318
341
|
position: "fixed",
|
|
319
342
|
bottom: "20px",
|
|
320
|
-
[
|
|
343
|
+
[ae]: "20px",
|
|
321
344
|
width: "56px",
|
|
322
345
|
height: "56px",
|
|
323
346
|
borderRadius: "50%",
|
|
324
347
|
border: "none",
|
|
325
|
-
backgroundColor:
|
|
326
|
-
color:
|
|
348
|
+
backgroundColor: be,
|
|
349
|
+
color: Ce,
|
|
327
350
|
cursor: "pointer",
|
|
328
351
|
display: "flex",
|
|
329
352
|
alignItems: "center",
|
|
330
353
|
justifyContent: "center",
|
|
331
354
|
zIndex: "2147483000",
|
|
332
355
|
boxShadow: "rgba(15, 15, 15, 0.2) 0px 4px 14px 0px",
|
|
333
|
-
fontFamily:
|
|
334
|
-
}),
|
|
356
|
+
fontFamily: xe
|
|
357
|
+
}), m) {
|
|
335
358
|
const e = document.createElement("img");
|
|
336
|
-
e.src =
|
|
359
|
+
e.src = m, e.alt = "", E(e, {
|
|
337
360
|
width: "26px",
|
|
338
361
|
height: "26px",
|
|
339
362
|
objectFit: "contain"
|
|
340
|
-
}),
|
|
341
|
-
} else
|
|
342
|
-
|
|
363
|
+
}), S.appendChild(e);
|
|
364
|
+
} else S.appendChild(et());
|
|
365
|
+
S.addEventListener("click", () => ce());
|
|
343
366
|
}
|
|
344
|
-
|
|
345
|
-
const
|
|
346
|
-
|
|
367
|
+
ve.appendChild(V), S && ve.appendChild(S), de();
|
|
368
|
+
const we = $ !== !1, Se = $ === !1 ? void 0 : $ ?? ((e) => {
|
|
369
|
+
ie(e);
|
|
347
370
|
});
|
|
348
|
-
function
|
|
349
|
-
const
|
|
371
|
+
function Ve(e, r) {
|
|
372
|
+
const s = e.role === "user", x = b({
|
|
350
373
|
display: "flex",
|
|
351
374
|
flexDirection: "column",
|
|
352
|
-
alignItems:
|
|
375
|
+
alignItems: s ? "flex-end" : "flex-start",
|
|
353
376
|
marginBottom: "16px"
|
|
354
377
|
});
|
|
355
|
-
if (
|
|
356
|
-
const
|
|
378
|
+
if (x.className = `ago-message ago-message--${e.role}`, !s && T && e.agent) {
|
|
379
|
+
const C = b({
|
|
357
380
|
fontSize: "13px",
|
|
358
381
|
fontWeight: "500",
|
|
359
382
|
color: Y,
|
|
360
383
|
marginBottom: "6px",
|
|
361
384
|
padding: "0 4px"
|
|
362
385
|
});
|
|
363
|
-
|
|
386
|
+
C.className = "ago-message__agent", C.textContent = e.agent.displayName || e.agent.name, x.appendChild(C);
|
|
364
387
|
}
|
|
365
|
-
if (!
|
|
366
|
-
const
|
|
388
|
+
if (!s && e.sources && e.sources.length > 0) {
|
|
389
|
+
const C = b({
|
|
367
390
|
display: "grid",
|
|
368
391
|
gridTemplateColumns: "1fr 1fr",
|
|
369
392
|
gap: "6px",
|
|
@@ -371,14 +394,14 @@ function ut(o, n) {
|
|
|
371
394
|
width: "100%",
|
|
372
395
|
maxWidth: "85%"
|
|
373
396
|
});
|
|
374
|
-
|
|
375
|
-
const
|
|
376
|
-
|
|
397
|
+
C.className = "ago-message__sources", e.sources.forEach((y, w) => {
|
|
398
|
+
const M = y.url ? document.createElement("a") : document.createElement("div");
|
|
399
|
+
y.url && M instanceof HTMLAnchorElement && (M.href = y.url, M.target = "_blank", M.rel = "noopener noreferrer"), E(M, {
|
|
377
400
|
display: "flex",
|
|
378
401
|
alignItems: "center",
|
|
379
402
|
gap: "8px",
|
|
380
403
|
padding: "8px 10px",
|
|
381
|
-
border: `1px solid ${
|
|
404
|
+
border: `1px solid ${I}`,
|
|
382
405
|
borderRadius: "8px",
|
|
383
406
|
backgroundColor: j,
|
|
384
407
|
textDecoration: "none",
|
|
@@ -386,13 +409,13 @@ function ut(o, n) {
|
|
|
386
409
|
fontSize: "12px",
|
|
387
410
|
overflow: "hidden"
|
|
388
411
|
});
|
|
389
|
-
const
|
|
412
|
+
const Oe = b({
|
|
390
413
|
flexShrink: "0",
|
|
391
414
|
width: "18px",
|
|
392
415
|
height: "18px",
|
|
393
416
|
borderRadius: "3px",
|
|
394
|
-
border: `1px solid ${
|
|
395
|
-
color:
|
|
417
|
+
border: `1px solid ${ue}`,
|
|
418
|
+
color: ue,
|
|
396
419
|
fontSize: "11px",
|
|
397
420
|
fontWeight: "500",
|
|
398
421
|
display: "flex",
|
|
@@ -400,69 +423,89 @@ function ut(o, n) {
|
|
|
400
423
|
justifyContent: "center",
|
|
401
424
|
backgroundColor: "#f0f4ff"
|
|
402
425
|
});
|
|
403
|
-
|
|
404
|
-
const
|
|
426
|
+
Oe.textContent = String(w + 1);
|
|
427
|
+
const fe = b({
|
|
405
428
|
overflow: "hidden",
|
|
406
429
|
textOverflow: "ellipsis",
|
|
407
430
|
whiteSpace: "nowrap"
|
|
408
431
|
});
|
|
409
|
-
|
|
410
|
-
}),
|
|
432
|
+
fe.textContent = y.title, fe.title = y.title, M.append(Oe, fe), C.appendChild(M);
|
|
433
|
+
}), x.appendChild(C);
|
|
411
434
|
}
|
|
412
|
-
const v =
|
|
413
|
-
maxWidth:
|
|
414
|
-
padding:
|
|
415
|
-
borderRadius:
|
|
416
|
-
backgroundColor:
|
|
417
|
-
color:
|
|
435
|
+
const v = b({
|
|
436
|
+
maxWidth: s ? "75%" : "100%",
|
|
437
|
+
padding: s ? "10px 14px" : "2px 8px",
|
|
438
|
+
borderRadius: s ? ge : "0",
|
|
439
|
+
backgroundColor: s ? be : "transparent",
|
|
440
|
+
color: s ? Ce : Y,
|
|
418
441
|
wordBreak: "break-word",
|
|
419
|
-
fontSize: "
|
|
442
|
+
fontSize: "16px",
|
|
420
443
|
lineHeight: "1.6"
|
|
421
444
|
});
|
|
422
|
-
if (v.className = "ago-message__content", e.content ? v.appendChild(
|
|
423
|
-
const
|
|
445
|
+
if (v.className = "ago-message__content", e.content ? v.appendChild(he(e.content)) : e.status === "IN_PROGRESS" && v.appendChild(tt()), x.appendChild(v), r && e.followUpReplies && e.followUpReplies.length > 0) {
|
|
446
|
+
const C = b({
|
|
424
447
|
display: "flex",
|
|
425
448
|
flexWrap: "wrap",
|
|
426
449
|
gap: "8px",
|
|
427
450
|
marginTop: "10px"
|
|
428
451
|
});
|
|
429
|
-
|
|
430
|
-
for (const
|
|
452
|
+
C.className = "ago-message__followups";
|
|
453
|
+
for (const y of e.followUpReplies) {
|
|
431
454
|
const w = document.createElement("button");
|
|
432
|
-
w.type = "button", w.className = "ago-message__followup-btn", w.textContent =
|
|
455
|
+
w.type = "button", w.className = "ago-message__followup-btn", w.textContent = y, w.disabled = !we, E(w, {
|
|
433
456
|
padding: "6px 14px",
|
|
434
457
|
fontSize: "14px",
|
|
435
|
-
borderRadius:
|
|
436
|
-
border: `1px solid ${
|
|
458
|
+
borderRadius: ge,
|
|
459
|
+
border: `1px solid ${I}`,
|
|
437
460
|
backgroundColor: j,
|
|
438
461
|
color: Y,
|
|
439
|
-
cursor:
|
|
462
|
+
cursor: we ? "pointer" : "default",
|
|
440
463
|
transition: "border-color 0.15s"
|
|
441
|
-
}),
|
|
442
|
-
w.style.borderColor =
|
|
464
|
+
}), Se && w.addEventListener("click", () => Se(y)), w.addEventListener("mouseenter", () => {
|
|
465
|
+
w.style.borderColor = ue;
|
|
443
466
|
}), w.addEventListener("mouseleave", () => {
|
|
444
|
-
w.style.borderColor =
|
|
445
|
-
}),
|
|
467
|
+
w.style.borderColor = I;
|
|
468
|
+
}), C.appendChild(w);
|
|
446
469
|
}
|
|
447
|
-
|
|
470
|
+
x.appendChild(C);
|
|
448
471
|
}
|
|
449
|
-
return
|
|
472
|
+
return x;
|
|
450
473
|
}
|
|
451
|
-
function
|
|
452
|
-
|
|
453
|
-
|
|
474
|
+
function Qe(e) {
|
|
475
|
+
const r = b({
|
|
476
|
+
display: "flex",
|
|
477
|
+
alignItems: "center",
|
|
478
|
+
gap: "8px",
|
|
479
|
+
padding: "10px 14px",
|
|
480
|
+
backgroundColor: "#f0fdf4",
|
|
481
|
+
color: "#15803d",
|
|
482
|
+
borderRadius: ge,
|
|
483
|
+
marginTop: "8px",
|
|
484
|
+
fontSize: "13px",
|
|
485
|
+
border: "1px solid #bbf7d0"
|
|
486
|
+
});
|
|
487
|
+
r.className = "ago-form-notice", r.setAttribute("role", "status");
|
|
488
|
+
const s = document.createElement("span");
|
|
489
|
+
s.textContent = "✓", s.setAttribute("aria-hidden", "true"), E(s, { fontWeight: "700" });
|
|
490
|
+
const x = document.createElement("span");
|
|
491
|
+
return x.textContent = e, r.append(s, x), r;
|
|
492
|
+
}
|
|
493
|
+
function A() {
|
|
494
|
+
if (N.replaceChildren(), d.length === 0) {
|
|
495
|
+
const r = b({
|
|
454
496
|
textAlign: "center",
|
|
455
|
-
color:
|
|
497
|
+
color: gt,
|
|
456
498
|
padding: "24px 16px",
|
|
457
|
-
fontSize: "
|
|
499
|
+
fontSize: "16px",
|
|
458
500
|
lineHeight: "1.5"
|
|
459
501
|
});
|
|
460
|
-
|
|
461
|
-
} else d.forEach((
|
|
462
|
-
|
|
502
|
+
r.appendChild(he(t)), N.appendChild(r);
|
|
503
|
+
} else d.forEach((r, s) => {
|
|
504
|
+
N.appendChild(Ve(r, s === d.length - 1));
|
|
463
505
|
});
|
|
464
|
-
|
|
465
|
-
|
|
506
|
+
for (const r of Ee) N.appendChild(Qe(r));
|
|
507
|
+
if (P) {
|
|
508
|
+
const r = b({
|
|
466
509
|
padding: "10px 14px",
|
|
467
510
|
backgroundColor: "#fef2f2",
|
|
468
511
|
color: "#dc2626",
|
|
@@ -471,79 +514,88 @@ function ut(o, n) {
|
|
|
471
514
|
fontSize: "13px",
|
|
472
515
|
border: "1px solid #fecaca"
|
|
473
516
|
});
|
|
474
|
-
|
|
517
|
+
r.textContent = P, N.appendChild(r);
|
|
475
518
|
}
|
|
476
|
-
|
|
519
|
+
N.scrollTop = N.scrollHeight;
|
|
477
520
|
const e = d[d.length - 1];
|
|
478
|
-
|
|
521
|
+
qe(O && e?.role === "assistant" && e.status === "IN_PROGRESS");
|
|
479
522
|
}
|
|
480
|
-
function
|
|
523
|
+
function Ye() {
|
|
481
524
|
for (let e = d.length - 1; e >= 0; e--) {
|
|
482
|
-
const
|
|
483
|
-
if (
|
|
525
|
+
const r = d[e];
|
|
526
|
+
if (r.role === "assistant" && r.status === "IN_PROGRESS") return r;
|
|
484
527
|
}
|
|
485
528
|
}
|
|
486
|
-
const
|
|
529
|
+
const Re = (e) => {
|
|
487
530
|
k || (k = e.conversationId);
|
|
488
|
-
},
|
|
489
|
-
const
|
|
490
|
-
|
|
491
|
-
},
|
|
492
|
-
const
|
|
493
|
-
|
|
494
|
-
},
|
|
495
|
-
const
|
|
496
|
-
|
|
531
|
+
}, _e = (e) => {
|
|
532
|
+
const r = Ye();
|
|
533
|
+
r && (r.content += e.content, A());
|
|
534
|
+
}, ke = (e) => {
|
|
535
|
+
const r = d.findIndex((s) => s.id === e.id || s.role === "assistant" && s.status === "IN_PROGRESS");
|
|
536
|
+
r >= 0 ? d[r] = e : d.push(e), A(), re();
|
|
537
|
+
}, Ae = (e) => {
|
|
538
|
+
const r = d.findIndex((s) => s.id === e.id || s.role === "assistant" && s.status === "IN_PROGRESS");
|
|
539
|
+
r >= 0 ? d[r] = e : d.push(e), O = !1, A(), e.status === "DONE" && J?.({
|
|
497
540
|
id: e.id,
|
|
498
541
|
content: e.content
|
|
499
542
|
});
|
|
500
|
-
},
|
|
501
|
-
|
|
543
|
+
}, Ie = (e) => {
|
|
544
|
+
P = e.error, O = !1, d = d.filter((r) => !r.id.startsWith("temp-")), A();
|
|
502
545
|
};
|
|
503
|
-
g.on("message:start",
|
|
504
|
-
const
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
546
|
+
g.on("message:start", Re), g.on("message:chunk", _e), g.on("message:answer-complete", ke), g.on("message:complete", Ae), g.on("message:error", Ie);
|
|
547
|
+
const $e = (e) => ee?.(e), Ne = (e) => te?.(e);
|
|
548
|
+
ee && g.on("form:submitted", $e), te && g.on("form:error", Ne);
|
|
549
|
+
const se = [];
|
|
550
|
+
let Te = !1;
|
|
551
|
+
const Le = (e) => {
|
|
552
|
+
if (Te) return;
|
|
553
|
+
se.push(e.install(g));
|
|
554
|
+
let r = e.store.get().submitted;
|
|
555
|
+
const s = e.store.subscribe((x) => {
|
|
556
|
+
x.submitted && !r && (Ee.push(Xe(x.submitResult)), A()), r = x.submitted;
|
|
557
|
+
});
|
|
558
|
+
se.push(s);
|
|
559
|
+
};
|
|
560
|
+
for (const e of X ?? []) e.schema != null ? Le(at(e)) : rt(g, e).then((r) => Le(r)).catch(() => {
|
|
509
561
|
});
|
|
510
|
-
async function
|
|
511
|
-
const
|
|
512
|
-
if (!
|
|
513
|
-
|
|
514
|
-
const
|
|
562
|
+
async function ie(e, r) {
|
|
563
|
+
const s = e.trim();
|
|
564
|
+
if (!s && !r?.length || O) return;
|
|
565
|
+
ye?.(s), O = !0, P = null;
|
|
566
|
+
const x = Date.now();
|
|
515
567
|
d.push({
|
|
516
|
-
id: `temp-user-${
|
|
568
|
+
id: `temp-user-${x}`,
|
|
517
569
|
conversationId: k || "",
|
|
518
|
-
content:
|
|
570
|
+
content: s,
|
|
519
571
|
role: "user",
|
|
520
572
|
status: "DONE",
|
|
521
573
|
createdAt: /* @__PURE__ */ new Date()
|
|
522
574
|
}), d.push({
|
|
523
|
-
id: `temp-assistant-${
|
|
575
|
+
id: `temp-assistant-${x}`,
|
|
524
576
|
conversationId: k || "",
|
|
525
577
|
content: "",
|
|
526
578
|
role: "assistant",
|
|
527
579
|
status: "IN_PROGRESS",
|
|
528
580
|
createdAt: /* @__PURE__ */ new Date()
|
|
529
|
-
}),
|
|
581
|
+
}), A();
|
|
530
582
|
try {
|
|
531
|
-
const v = await g.sendMessage(
|
|
583
|
+
const v = await g.sendMessage(s, {
|
|
532
584
|
conversationId: k,
|
|
533
|
-
files:
|
|
585
|
+
files: r
|
|
534
586
|
});
|
|
535
587
|
v.conversationId && (k || (k = v.conversationId), K?.setActiveThread(v.conversationId, v.createdAt));
|
|
536
|
-
const
|
|
537
|
-
if (
|
|
538
|
-
const
|
|
539
|
-
|
|
588
|
+
const C = d.find((y) => y.id === `temp-user-${x}`);
|
|
589
|
+
if (C && (C.id = `user-${x}`, C.conversationId = v.conversationId), !d.some((y) => y.id === v.id)) {
|
|
590
|
+
const y = d.findIndex((w) => w.id === `temp-assistant-${x}`);
|
|
591
|
+
y >= 0 ? d[y] = v : d.push(v);
|
|
540
592
|
}
|
|
541
|
-
d = d.filter((
|
|
593
|
+
d = d.filter((y) => !y.id.startsWith("temp-")), O = !1, A(), _ && le();
|
|
542
594
|
} catch (v) {
|
|
543
|
-
|
|
595
|
+
P = v instanceof Error ? v.message : "Failed to send message", O = !1, d = d.filter((C) => !C.id.startsWith("temp-")), A();
|
|
544
596
|
}
|
|
545
597
|
}
|
|
546
|
-
async function
|
|
598
|
+
async function le() {
|
|
547
599
|
try {
|
|
548
600
|
const e = await g.getConversations();
|
|
549
601
|
q.splice(0, q.length, ...e);
|
|
@@ -551,173 +603,173 @@ function ut(o, n) {
|
|
|
551
603
|
}
|
|
552
604
|
return q;
|
|
553
605
|
}
|
|
554
|
-
async function
|
|
606
|
+
async function Ze(e) {
|
|
555
607
|
try {
|
|
556
|
-
const
|
|
557
|
-
|
|
608
|
+
const r = (await g.getConversation(e))?.messages ?? [];
|
|
609
|
+
r.length > 0 && d.length === 0 && (d = r, A());
|
|
558
610
|
} catch {
|
|
559
611
|
d.length === 0 && (K?.clear(), k = void 0);
|
|
560
612
|
}
|
|
561
613
|
}
|
|
562
|
-
return
|
|
614
|
+
return A(), re(), k && Ze(k), _ && le(), {
|
|
563
615
|
client: g,
|
|
564
616
|
element: V,
|
|
565
|
-
sendMessage:
|
|
566
|
-
...
|
|
567
|
-
open:
|
|
568
|
-
close:
|
|
569
|
-
toggle:
|
|
617
|
+
sendMessage: ie,
|
|
618
|
+
...B ? {
|
|
619
|
+
open: ce,
|
|
620
|
+
close: pe,
|
|
621
|
+
toggle: Je
|
|
570
622
|
} : {},
|
|
571
623
|
session: K,
|
|
572
624
|
threads: q,
|
|
573
|
-
refreshThreads:
|
|
625
|
+
refreshThreads: le,
|
|
574
626
|
destroy() {
|
|
575
|
-
g.off("message:start",
|
|
627
|
+
g.off("message:start", Re), g.off("message:chunk", _e), g.off("message:answer-complete", ke), g.off("message:complete", Ae), g.off("message:error", Ie), ee && g.off("form:submitted", $e), te && g.off("form:error", Ne), Te = !0, se.forEach((e) => e()), V.remove(), S?.remove(), n.client || g.destroy();
|
|
576
628
|
}
|
|
577
629
|
};
|
|
578
|
-
function
|
|
579
|
-
if (!
|
|
580
|
-
const e =
|
|
581
|
-
|
|
630
|
+
function de() {
|
|
631
|
+
if (!D) return;
|
|
632
|
+
const e = l === "left" ? "translateX(-100%)" : "translateX(100%)";
|
|
633
|
+
D.style.transform = z ? "translateX(0)" : e, D.setAttribute("aria-hidden", z ? "false" : "true"), S && (S.style.display = z ? "none" : "flex");
|
|
582
634
|
}
|
|
583
|
-
function
|
|
584
|
-
|
|
635
|
+
function ce() {
|
|
636
|
+
z = !0, de(), re();
|
|
585
637
|
}
|
|
586
|
-
function
|
|
587
|
-
|
|
638
|
+
function pe() {
|
|
639
|
+
z = !1, de();
|
|
588
640
|
}
|
|
589
|
-
function
|
|
590
|
-
|
|
641
|
+
function Je() {
|
|
642
|
+
z ? pe() : ce();
|
|
591
643
|
}
|
|
592
|
-
function
|
|
593
|
-
const e = "http://www.w3.org/2000/svg",
|
|
594
|
-
|
|
595
|
-
const
|
|
596
|
-
return
|
|
644
|
+
function et() {
|
|
645
|
+
const e = "http://www.w3.org/2000/svg", r = document.createElementNS(e, "svg");
|
|
646
|
+
r.setAttribute("width", "26"), r.setAttribute("height", "26"), r.setAttribute("viewBox", "0 0 24 24"), r.setAttribute("fill", "none");
|
|
647
|
+
const s = document.createElementNS(e, "path");
|
|
648
|
+
return s.setAttribute("d", "M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.5 8.5 0 0 1-3.8-.9L3 21l1.9-5.7a8.5 8.5 0 0 1-.9-3.8 8.38 8.38 0 0 1 8.5-8.5 8.38 8.38 0 0 1 8.5 8.5z"), s.setAttribute("stroke", "currentColor"), s.setAttribute("stroke-width", "2"), s.setAttribute("stroke-linecap", "round"), s.setAttribute("stroke-linejoin", "round"), r.appendChild(s), r;
|
|
597
649
|
}
|
|
598
|
-
function
|
|
599
|
-
const e =
|
|
650
|
+
function tt() {
|
|
651
|
+
const e = b({
|
|
600
652
|
display: "flex",
|
|
601
653
|
gap: "4px",
|
|
602
654
|
padding: "4px 0"
|
|
603
655
|
});
|
|
604
|
-
for (let
|
|
605
|
-
const
|
|
656
|
+
for (let r = 0; r < 3; r++) {
|
|
657
|
+
const s = b({
|
|
606
658
|
width: "6px",
|
|
607
659
|
height: "6px",
|
|
608
660
|
borderRadius: "50%",
|
|
609
661
|
backgroundColor: "#b5bfc8",
|
|
610
662
|
animation: "ago-pulse 1.2s ease-in-out infinite",
|
|
611
|
-
animationDelay: `${
|
|
663
|
+
animationDelay: `${r * 0.2}s`
|
|
612
664
|
});
|
|
613
|
-
e.appendChild(
|
|
665
|
+
e.appendChild(s);
|
|
614
666
|
}
|
|
615
667
|
return e;
|
|
616
668
|
}
|
|
617
669
|
}
|
|
618
|
-
function
|
|
670
|
+
function yt(o) {
|
|
619
671
|
let n = [];
|
|
620
|
-
const
|
|
621
|
-
|
|
672
|
+
const a = document.createElement("form");
|
|
673
|
+
E(a, {
|
|
622
674
|
display: "flex",
|
|
623
675
|
flexDirection: "column",
|
|
624
676
|
gap: "8px",
|
|
625
677
|
padding: "12px",
|
|
626
|
-
borderTop: `1px solid ${
|
|
678
|
+
borderTop: `1px solid ${I}`,
|
|
627
679
|
backgroundColor: j
|
|
628
|
-
}),
|
|
629
|
-
const t =
|
|
680
|
+
}), a.className = "ago-chat-input";
|
|
681
|
+
const t = b({
|
|
630
682
|
display: "flex",
|
|
631
683
|
flexWrap: "wrap",
|
|
632
684
|
gap: "6px"
|
|
633
|
-
}), u =
|
|
685
|
+
}), u = b({
|
|
634
686
|
display: "flex",
|
|
635
687
|
gap: "8px",
|
|
636
688
|
alignItems: "flex-end"
|
|
637
689
|
}), i = document.createElement("textarea");
|
|
638
|
-
i.placeholder = o.placeholder, i.rows = 1,
|
|
690
|
+
i.placeholder = o.placeholder, i.rows = 1, E(i, {
|
|
639
691
|
flex: "1",
|
|
640
692
|
resize: "none",
|
|
641
693
|
padding: "10px 12px",
|
|
642
|
-
border: `1px solid ${
|
|
694
|
+
border: `1px solid ${I}`,
|
|
643
695
|
borderRadius: "12px",
|
|
644
|
-
fontSize: "
|
|
645
|
-
fontFamily:
|
|
696
|
+
fontSize: "16px",
|
|
697
|
+
fontFamily: xe,
|
|
646
698
|
lineHeight: "1.4",
|
|
647
699
|
maxHeight: "120px",
|
|
648
700
|
outline: "none"
|
|
649
701
|
});
|
|
650
702
|
const f = document.createElement("button");
|
|
651
|
-
f.type = "submit", f.textContent = "Send",
|
|
703
|
+
f.type = "submit", f.textContent = "Send", E(f, {
|
|
652
704
|
padding: "10px 16px",
|
|
653
705
|
border: "none",
|
|
654
706
|
borderRadius: "12px",
|
|
655
|
-
backgroundColor:
|
|
656
|
-
color:
|
|
657
|
-
fontSize: "
|
|
707
|
+
backgroundColor: be,
|
|
708
|
+
color: Ce,
|
|
709
|
+
fontSize: "16px",
|
|
658
710
|
fontWeight: "500",
|
|
659
711
|
cursor: "pointer"
|
|
660
712
|
});
|
|
661
|
-
let
|
|
662
|
-
o.allowFiles && (
|
|
713
|
+
let l = null, p = null;
|
|
714
|
+
o.allowFiles && (l = document.createElement("input"), l.type = "file", l.multiple = !0, E(l, { display: "none" }), p = document.createElement("button"), p.type = "button", p.textContent = "📎", E(p, {
|
|
663
715
|
padding: "10px 12px",
|
|
664
|
-
border: `1px solid ${
|
|
716
|
+
border: `1px solid ${I}`,
|
|
665
717
|
borderRadius: "12px",
|
|
666
718
|
backgroundColor: j,
|
|
667
719
|
cursor: "pointer",
|
|
668
720
|
fontSize: "14px"
|
|
669
|
-
}), p.addEventListener("click", () =>
|
|
670
|
-
n = [...n, ...Array.from(
|
|
721
|
+
}), p.addEventListener("click", () => l?.click()), l.addEventListener("change", () => {
|
|
722
|
+
n = [...n, ...Array.from(l?.files ?? [])], c();
|
|
671
723
|
}));
|
|
672
724
|
function c() {
|
|
673
|
-
t.replaceChildren(), n.forEach((
|
|
674
|
-
const X =
|
|
725
|
+
t.replaceChildren(), n.forEach((h, _) => {
|
|
726
|
+
const X = b({
|
|
675
727
|
display: "flex",
|
|
676
728
|
alignItems: "center",
|
|
677
729
|
gap: "4px",
|
|
678
730
|
padding: "4px 8px",
|
|
679
731
|
backgroundColor: "#f0f4ff",
|
|
680
|
-
border: `1px solid ${
|
|
732
|
+
border: `1px solid ${I}`,
|
|
681
733
|
borderRadius: "8px",
|
|
682
734
|
fontSize: "12px"
|
|
683
|
-
}),
|
|
684
|
-
|
|
685
|
-
const
|
|
686
|
-
|
|
735
|
+
}), L = document.createElement("span");
|
|
736
|
+
L.textContent = h.name;
|
|
737
|
+
const $ = document.createElement("button");
|
|
738
|
+
$.type = "button", $.textContent = "×", E($, {
|
|
687
739
|
border: "none",
|
|
688
740
|
background: "transparent",
|
|
689
741
|
cursor: "pointer",
|
|
690
742
|
fontSize: "14px",
|
|
691
743
|
lineHeight: "1"
|
|
692
|
-
}),
|
|
693
|
-
n = n.filter((
|
|
694
|
-
}), X.append(
|
|
744
|
+
}), $.addEventListener("click", () => {
|
|
745
|
+
n = n.filter((ye, J) => J !== _), c();
|
|
746
|
+
}), X.append(L, $), t.appendChild(X);
|
|
695
747
|
});
|
|
696
748
|
}
|
|
697
|
-
const
|
|
698
|
-
const
|
|
749
|
+
const m = () => {
|
|
750
|
+
const h = i.value, _ = n;
|
|
699
751
|
return i.value = "", n = [], c(), {
|
|
700
|
-
content:
|
|
752
|
+
content: h,
|
|
701
753
|
files: _
|
|
702
754
|
};
|
|
703
|
-
},
|
|
704
|
-
const { content:
|
|
705
|
-
(
|
|
755
|
+
}, T = () => {
|
|
756
|
+
const { content: h, files: _ } = m();
|
|
757
|
+
(h.trim() || _.length > 0) && o.onSend(h.trim(), _.length > 0 ? _ : void 0);
|
|
706
758
|
};
|
|
707
|
-
return
|
|
708
|
-
|
|
709
|
-
}), i.addEventListener("keydown", (
|
|
710
|
-
|
|
711
|
-
}), p && u.appendChild(p), u.append(i, f),
|
|
712
|
-
inputRow:
|
|
713
|
-
getValueAndClear:
|
|
714
|
-
setDisabled: (
|
|
715
|
-
i.disabled =
|
|
759
|
+
return a.addEventListener("submit", (h) => {
|
|
760
|
+
h.preventDefault(), T();
|
|
761
|
+
}), i.addEventListener("keydown", (h) => {
|
|
762
|
+
h.key === "Enter" && !h.shiftKey && (h.preventDefault(), T());
|
|
763
|
+
}), p && u.appendChild(p), u.append(i, f), l && a.appendChild(l), a.append(t, u), {
|
|
764
|
+
inputRow: a,
|
|
765
|
+
getValueAndClear: m,
|
|
766
|
+
setDisabled: (h) => {
|
|
767
|
+
i.disabled = h, f.disabled = h, f.style.opacity = h ? "0.6" : "1", f.style.cursor = h ? "not-allowed" : "pointer";
|
|
716
768
|
},
|
|
717
769
|
focus: () => i.focus()
|
|
718
770
|
};
|
|
719
771
|
}
|
|
720
772
|
export {
|
|
721
|
-
|
|
722
|
-
|
|
773
|
+
St as mountChatWidget,
|
|
774
|
+
he as renderMarkdown
|
|
723
775
|
};
|