@access-ci/ui 0.8.0 → 0.9.0-beta2
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 +2 -1
- package/dist/access-ci-ui.bundle.js +112 -51
- package/dist/access-ci-ui.js +1 -1
- package/dist/access-ci-ui.umd.cjs +115 -75
- package/dist/access-qa-bot-CSDDOMzA.js +6084 -0
- package/dist/{icon-DO5WLkIr.js → icon-oSIQXq5R.js} +1 -1
- package/dist/{index-CGLHL48j.js → index-0rhVaqkH.js} +585 -572
- package/dist/{resource-group-detail-px8JUvEX.js → resource-group-detail-DKRy5Dk2.js} +2068 -2159
- package/dist/resource-home-Bg-g2QcF.js +260 -0
- package/package.json +3 -2
- package/dist/access-qa-bot-DT5Eikre.js +0 -1898
- package/dist/resource-home-CI6IFYKT.js +0 -248
|
@@ -1,1898 +0,0 @@
|
|
|
1
|
-
import { l as Y, _ as N, b as _, k as SA, H as QA, h as S, g as Xe, p as qe, y as X, a as VA, A as $, F as We, T as uA, q as H, x as pA, P as Ke, G as mA, m as ro, B as YA, D as ao, E as io, u as c } from "./index-CGLHL48j.js";
|
|
2
|
-
var De = /[\s\n\\/='"\0<>]/, Ee = /^(xlink|xmlns|xml)([A-Z])/, so = /^accessK|^auto[A-Z]|^cell|^ch|^col|cont|cross|dateT|encT|form[A-Z]|frame|hrefL|inputM|maxL|minL|noV|playsI|popoverT|readO|rowS|src[A-Z]|tabI|useM|item[A-Z]/, lo = /^ac|^ali|arabic|basel|cap|clipPath$|clipRule$|color|dominant|enable|fill|flood|font|glyph[^R]|horiz|image|letter|lighting|marker[^WUH]|overline|panose|pointe|paint|rendering|shape|stop|strikethrough|stroke|text[^L]|transform|underline|unicode|units|^v[^i]|^w|^xH/, co = /* @__PURE__ */ new Set(["draggable", "spellcheck"]), uo = /["&<]/;
|
|
3
|
-
function FA(A) {
|
|
4
|
-
if (A.length === 0 || uo.test(A) === !1) return A;
|
|
5
|
-
for (var e = 0, t = 0, o = "", n = ""; t < A.length; t++) {
|
|
6
|
-
switch (A.charCodeAt(t)) {
|
|
7
|
-
case 34:
|
|
8
|
-
n = """;
|
|
9
|
-
break;
|
|
10
|
-
case 38:
|
|
11
|
-
n = "&";
|
|
12
|
-
break;
|
|
13
|
-
case 60:
|
|
14
|
-
n = "<";
|
|
15
|
-
break;
|
|
16
|
-
default:
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
|
-
t !== e && (o += A.slice(e, t)), o += n, e = t + 1;
|
|
20
|
-
}
|
|
21
|
-
return t !== e && (o += A.slice(e, t)), o;
|
|
22
|
-
}
|
|
23
|
-
var Qe = {}, fo = /* @__PURE__ */ new Set(["animation-iteration-count", "border-image-outset", "border-image-slice", "border-image-width", "box-flex", "box-flex-group", "box-ordinal-group", "column-count", "fill-opacity", "flex", "flex-grow", "flex-negative", "flex-order", "flex-positive", "flex-shrink", "flood-opacity", "font-weight", "grid-column", "grid-row", "line-clamp", "line-height", "opacity", "order", "orphans", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-miterlimit", "stroke-opacity", "stroke-width", "tab-size", "widows", "z-index", "zoom"]), go = /[A-Z]/g;
|
|
24
|
-
function wo(A) {
|
|
25
|
-
var e = "";
|
|
26
|
-
for (var t in A) {
|
|
27
|
-
var o = A[t];
|
|
28
|
-
if (o != null && o !== "") {
|
|
29
|
-
var n = t[0] == "-" ? t : Qe[t] || (Qe[t] = t.replace(go, "-$&").toLowerCase()), a = ";";
|
|
30
|
-
typeof o != "number" || n.startsWith("--") || fo.has(n) || (a = "px;"), e = e + n + ":" + o + a;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return e || void 0;
|
|
34
|
-
}
|
|
35
|
-
function Ce() {
|
|
36
|
-
this.__d = !0;
|
|
37
|
-
}
|
|
38
|
-
function vo(A, e) {
|
|
39
|
-
return { __v: A, context: e, props: A.props, setState: Ce, forceUpdate: Ce, __d: !0, __h: new Array(0) };
|
|
40
|
-
}
|
|
41
|
-
var ie, kA, jA, OA, fe = {}, xe = [], LA = Array.isArray, se = Object.assign, iA = "";
|
|
42
|
-
function ke(A, e, t) {
|
|
43
|
-
var o = Y.__s;
|
|
44
|
-
Y.__s = !0, ie = Y.__b, kA = Y.diffed, jA = Y.__r, OA = Y.unmount;
|
|
45
|
-
var n = N(_, null);
|
|
46
|
-
n.__k = [A];
|
|
47
|
-
try {
|
|
48
|
-
var a = DA(A, e || fe, !1, void 0, n, !1, t);
|
|
49
|
-
return LA(a) ? a.join(iA) : a;
|
|
50
|
-
} catch (r) {
|
|
51
|
-
throw r.then ? new Error('Use "renderToStringAsync" for suspenseful rendering.') : r;
|
|
52
|
-
} finally {
|
|
53
|
-
Y.__c && Y.__c(A, xe), Y.__s = o, xe.length = 0;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function Ie(A, e) {
|
|
57
|
-
var t, o = A.type, n = !0;
|
|
58
|
-
return A.__c ? (n = !1, (t = A.__c).state = t.__s) : t = new o(A.props, e), A.__c = t, t.__v = A, t.props = A.props, t.context = e, t.__d = !0, t.state == null && (t.state = fe), t.__s == null && (t.__s = t.state), o.getDerivedStateFromProps ? t.state = se({}, t.state, o.getDerivedStateFromProps(t.props, t.state)) : n && t.componentWillMount ? (t.componentWillMount(), t.state = t.__s !== t.state ? t.__s : t.state) : !n && t.componentWillUpdate && t.componentWillUpdate(), jA && jA(A), t.render(t.props, t.state, e);
|
|
59
|
-
}
|
|
60
|
-
function DA(A, e, t, o, n, a, r) {
|
|
61
|
-
if (A == null || A === !0 || A === !1 || A === iA) return iA;
|
|
62
|
-
var i = typeof A;
|
|
63
|
-
if (i != "object") return i == "function" ? iA : i == "string" ? FA(A) : A + iA;
|
|
64
|
-
if (LA(A)) {
|
|
65
|
-
var s, l = iA;
|
|
66
|
-
n.__k = A;
|
|
67
|
-
for (var d = 0; d < A.length; d++) {
|
|
68
|
-
var g = A[d];
|
|
69
|
-
if (g != null && typeof g != "boolean") {
|
|
70
|
-
var p, w = DA(g, e, t, o, n, a, r);
|
|
71
|
-
typeof w == "string" ? l += w : (s || (s = []), l && s.push(l), l = iA, LA(w) ? (p = s).push.apply(p, w) : s.push(w));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return s ? (l && s.push(l), s) : l;
|
|
75
|
-
}
|
|
76
|
-
if (A.constructor !== void 0) return iA;
|
|
77
|
-
A.__ = n, ie && ie(A);
|
|
78
|
-
var u = A.type, f = A.props;
|
|
79
|
-
if (typeof u == "function") {
|
|
80
|
-
var h, v, b, P = e;
|
|
81
|
-
if (u === _) {
|
|
82
|
-
if ("tpl" in f) {
|
|
83
|
-
for (var m = iA, B = 0; B < f.tpl.length; B++) if (m += f.tpl[B], f.exprs && B < f.exprs.length) {
|
|
84
|
-
var y = f.exprs[B];
|
|
85
|
-
if (y == null) continue;
|
|
86
|
-
typeof y != "object" || y.constructor !== void 0 && !LA(y) ? m += y : m += DA(y, e, t, o, A, a, r);
|
|
87
|
-
}
|
|
88
|
-
return m;
|
|
89
|
-
}
|
|
90
|
-
if ("UNSTABLE_comment" in f) return "<!--" + FA(f.UNSTABLE_comment) + "-->";
|
|
91
|
-
v = f.children;
|
|
92
|
-
} else {
|
|
93
|
-
if ((h = u.contextType) != null) {
|
|
94
|
-
var D = e[h.__c];
|
|
95
|
-
P = D ? D.props.value : h.__;
|
|
96
|
-
}
|
|
97
|
-
var U = u.prototype && typeof u.prototype.render == "function";
|
|
98
|
-
if (U) v = Ie(A, P), b = A.__c;
|
|
99
|
-
else {
|
|
100
|
-
A.__c = b = vo(A, P);
|
|
101
|
-
for (var T = 0; b.__d && T++ < 25; ) b.__d = !1, jA && jA(A), v = u.call(b, f, P);
|
|
102
|
-
b.__d = !0;
|
|
103
|
-
}
|
|
104
|
-
if (b.getChildContext != null && (e = se({}, e, b.getChildContext())), U && Y.errorBoundaries && (u.getDerivedStateFromError || b.componentDidCatch)) {
|
|
105
|
-
v = v != null && v.type === _ && v.key == null && v.props.tpl == null ? v.props.children : v;
|
|
106
|
-
try {
|
|
107
|
-
return DA(v, e, t, o, A, a, r);
|
|
108
|
-
} catch (R) {
|
|
109
|
-
return u.getDerivedStateFromError && (b.__s = u.getDerivedStateFromError(R)), b.componentDidCatch && b.componentDidCatch(R, fe), b.__d ? (v = Ie(A, e), (b = A.__c).getChildContext != null && (e = se({}, e, b.getChildContext())), DA(v = v != null && v.type === _ && v.key == null && v.props.tpl == null ? v.props.children : v, e, t, o, A, a, r)) : iA;
|
|
110
|
-
} finally {
|
|
111
|
-
kA && kA(A), A.__ = null, OA && OA(A);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
v = v != null && v.type === _ && v.key == null && v.props.tpl == null ? v.props.children : v;
|
|
116
|
-
try {
|
|
117
|
-
var k = DA(v, e, t, o, A, a, r);
|
|
118
|
-
return kA && kA(A), A.__ = null, Y.unmount && Y.unmount(A), k;
|
|
119
|
-
} catch (R) {
|
|
120
|
-
if (r && r.onError) {
|
|
121
|
-
var M = r.onError(R, A, function(W) {
|
|
122
|
-
return DA(W, e, t, o, A, a, r);
|
|
123
|
-
});
|
|
124
|
-
if (M !== void 0) return M;
|
|
125
|
-
var I = Y.__e;
|
|
126
|
-
return I && I(R, A), iA;
|
|
127
|
-
}
|
|
128
|
-
throw R;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
var x, E = "<" + u, Q = iA;
|
|
132
|
-
for (var C in f) {
|
|
133
|
-
var L = f[C];
|
|
134
|
-
if (typeof L != "function" || C === "class" || C === "className") {
|
|
135
|
-
switch (C) {
|
|
136
|
-
case "children":
|
|
137
|
-
x = L;
|
|
138
|
-
continue;
|
|
139
|
-
case "key":
|
|
140
|
-
case "ref":
|
|
141
|
-
case "__self":
|
|
142
|
-
case "__source":
|
|
143
|
-
continue;
|
|
144
|
-
case "htmlFor":
|
|
145
|
-
if ("for" in f) continue;
|
|
146
|
-
C = "for";
|
|
147
|
-
break;
|
|
148
|
-
case "className":
|
|
149
|
-
if ("class" in f) continue;
|
|
150
|
-
C = "class";
|
|
151
|
-
break;
|
|
152
|
-
case "defaultChecked":
|
|
153
|
-
C = "checked";
|
|
154
|
-
break;
|
|
155
|
-
case "defaultSelected":
|
|
156
|
-
C = "selected";
|
|
157
|
-
break;
|
|
158
|
-
case "defaultValue":
|
|
159
|
-
case "value":
|
|
160
|
-
switch (C = "value", u) {
|
|
161
|
-
case "textarea":
|
|
162
|
-
x = L;
|
|
163
|
-
continue;
|
|
164
|
-
case "select":
|
|
165
|
-
o = L;
|
|
166
|
-
continue;
|
|
167
|
-
case "option":
|
|
168
|
-
o != L || "selected" in f || (E += " selected");
|
|
169
|
-
}
|
|
170
|
-
break;
|
|
171
|
-
case "dangerouslySetInnerHTML":
|
|
172
|
-
Q = L && L.__html;
|
|
173
|
-
continue;
|
|
174
|
-
case "style":
|
|
175
|
-
typeof L == "object" && (L = wo(L));
|
|
176
|
-
break;
|
|
177
|
-
case "acceptCharset":
|
|
178
|
-
C = "accept-charset";
|
|
179
|
-
break;
|
|
180
|
-
case "httpEquiv":
|
|
181
|
-
C = "http-equiv";
|
|
182
|
-
break;
|
|
183
|
-
default:
|
|
184
|
-
if (Ee.test(C)) C = C.replace(Ee, "$1:$2").toLowerCase();
|
|
185
|
-
else {
|
|
186
|
-
if (De.test(C)) continue;
|
|
187
|
-
C[4] !== "-" && !co.has(C) || L == null ? t ? lo.test(C) && (C = C === "panose1" ? "panose-1" : C.replace(/([A-Z])/g, "-$1").toLowerCase()) : so.test(C) && (C = C.toLowerCase()) : L += iA;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
L != null && L !== !1 && (E = L === !0 || L === iA ? E + " " + C : E + " " + C + '="' + (typeof L == "string" ? FA(L) : L + iA) + '"');
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
if (De.test(u)) throw new Error(u + " is not a valid HTML tag name in " + E + ">");
|
|
194
|
-
if (Q || (typeof x == "string" ? Q = FA(x) : x != null && x !== !1 && x !== !0 && (Q = DA(x, e, u === "svg" || u !== "foreignObject" && t, o, A, a, r))), kA && kA(A), A.__ = null, OA && OA(A), !Q && po.has(u)) return E + "/>";
|
|
195
|
-
var z = "</" + u + ">", F = E + ">";
|
|
196
|
-
return LA(Q) ? [F].concat(Q, [z]) : typeof Q != "string" ? [F, Q, z] : F + Q + z;
|
|
197
|
-
}
|
|
198
|
-
var po = /* @__PURE__ */ new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
|
|
199
|
-
function le(A, e) {
|
|
200
|
-
for (var t in A) if (t !== "__source" && !(t in e)) return !0;
|
|
201
|
-
for (var o in e) if (o !== "__source" && A[o] !== e[o]) return !0;
|
|
202
|
-
return !1;
|
|
203
|
-
}
|
|
204
|
-
function ce(A, e) {
|
|
205
|
-
this.props = A, this.context = e;
|
|
206
|
-
}
|
|
207
|
-
function ho(A, e) {
|
|
208
|
-
function t(n) {
|
|
209
|
-
var a = this.props.ref, r = a == n.ref;
|
|
210
|
-
return !r && a && (a.call ? a(null) : a.current = null), e ? !e(this.props, n) || !r : le(this.props, n);
|
|
211
|
-
}
|
|
212
|
-
function o(n) {
|
|
213
|
-
return this.shouldComponentUpdate = t, N(A, n);
|
|
214
|
-
}
|
|
215
|
-
return o.displayName = "Memo(" + (A.displayName || A.name) + ")", o.prototype.isReactComponent = !0, o.__f = !0, o;
|
|
216
|
-
}
|
|
217
|
-
(ce.prototype = new SA()).isPureReactComponent = !0, ce.prototype.shouldComponentUpdate = function(A, e) {
|
|
218
|
-
return le(this.props, A) || le(this.state, e);
|
|
219
|
-
};
|
|
220
|
-
var Se = Y.__b;
|
|
221
|
-
Y.__b = function(A) {
|
|
222
|
-
A.type && A.type.__f && A.ref && (A.props.ref = A.ref, A.ref = null), Se && Se(A);
|
|
223
|
-
};
|
|
224
|
-
var bo = typeof Symbol < "u" && Symbol.for && Symbol.for("react.forward_ref") || 3911;
|
|
225
|
-
function lA(A) {
|
|
226
|
-
function e(t) {
|
|
227
|
-
if (!("ref" in t)) return A(t, null);
|
|
228
|
-
var o = t.ref;
|
|
229
|
-
delete t.ref;
|
|
230
|
-
var n = A(t, o);
|
|
231
|
-
return t.ref = o, n;
|
|
232
|
-
}
|
|
233
|
-
return e.$$typeof = bo, e.render = e, e.prototype.isReactComponent = e.__f = !0, e.displayName = "ForwardRef(" + (A.displayName || A.name) + ")", e;
|
|
234
|
-
}
|
|
235
|
-
var Te = function(A, e) {
|
|
236
|
-
return A == null ? null : QA(QA(A).map(e));
|
|
237
|
-
}, mo = { map: Te, forEach: Te, count: function(A) {
|
|
238
|
-
return A ? QA(A).length : 0;
|
|
239
|
-
}, only: function(A) {
|
|
240
|
-
var e = QA(A);
|
|
241
|
-
if (e.length !== 1) throw "Children.only";
|
|
242
|
-
return e[0];
|
|
243
|
-
}, toArray: QA }, Bo = Y.__e;
|
|
244
|
-
Y.__e = function(A, e, t, o) {
|
|
245
|
-
if (A.then) {
|
|
246
|
-
for (var n, a = e; a = a.__; ) if ((n = a.__c) && n.__c) return e.__e == null && (e.__e = t.__e, e.__k = t.__k), n.__c(A, e);
|
|
247
|
-
}
|
|
248
|
-
Bo(A, e, t, o);
|
|
249
|
-
};
|
|
250
|
-
var Me = Y.unmount;
|
|
251
|
-
function Je(A, e, t) {
|
|
252
|
-
return A && (A.__c && A.__c.__H && (A.__c.__H.__.forEach(function(o) {
|
|
253
|
-
typeof o.__c == "function" && o.__c();
|
|
254
|
-
}), A.__c.__H = null), (A = function(o, n) {
|
|
255
|
-
for (var a in n) o[a] = n[a];
|
|
256
|
-
return o;
|
|
257
|
-
}({}, A)).__c != null && (A.__c.__P === t && (A.__c.__P = e), A.__c = null), A.__k = A.__k && A.__k.map(function(o) {
|
|
258
|
-
return Je(o, e, t);
|
|
259
|
-
})), A;
|
|
260
|
-
}
|
|
261
|
-
function Ve(A, e, t) {
|
|
262
|
-
return A && t && (A.__v = null, A.__k = A.__k && A.__k.map(function(o) {
|
|
263
|
-
return Ve(o, e, t);
|
|
264
|
-
}), A.__c && A.__c.__P === e && (A.__e && t.appendChild(A.__e), A.__c.__e = !0, A.__c.__P = t)), A;
|
|
265
|
-
}
|
|
266
|
-
function RA() {
|
|
267
|
-
this.__u = 0, this.t = null, this.__b = null;
|
|
268
|
-
}
|
|
269
|
-
function Ze(A) {
|
|
270
|
-
var e = A.__.__c;
|
|
271
|
-
return e && e.__a && e.__a(A);
|
|
272
|
-
}
|
|
273
|
-
function yo(A) {
|
|
274
|
-
var e, t, o;
|
|
275
|
-
function n(a) {
|
|
276
|
-
if (e || (e = A()).then(function(r) {
|
|
277
|
-
t = r.default || r;
|
|
278
|
-
}, function(r) {
|
|
279
|
-
o = r;
|
|
280
|
-
}), o) throw o;
|
|
281
|
-
if (!t) throw e;
|
|
282
|
-
return N(t, a);
|
|
283
|
-
}
|
|
284
|
-
return n.displayName = "Lazy", n.__f = !0, n;
|
|
285
|
-
}
|
|
286
|
-
function NA() {
|
|
287
|
-
this.u = null, this.o = null;
|
|
288
|
-
}
|
|
289
|
-
Y.unmount = function(A) {
|
|
290
|
-
var e = A.__c;
|
|
291
|
-
e && e.__R && e.__R(), e && 32 & A.__u && (A.type = null), Me && Me(A);
|
|
292
|
-
}, (RA.prototype = new SA()).__c = function(A, e) {
|
|
293
|
-
var t = e.__c, o = this;
|
|
294
|
-
o.t == null && (o.t = []), o.t.push(t);
|
|
295
|
-
var n = Ze(o.__v), a = !1, r = function() {
|
|
296
|
-
a || (a = !0, t.__R = null, n ? n(i) : i());
|
|
297
|
-
};
|
|
298
|
-
t.__R = r;
|
|
299
|
-
var i = function() {
|
|
300
|
-
if (!--o.__u) {
|
|
301
|
-
if (o.state.__a) {
|
|
302
|
-
var s = o.state.__a;
|
|
303
|
-
o.__v.__k[0] = Ve(s, s.__c.__P, s.__c.__O);
|
|
304
|
-
}
|
|
305
|
-
var l;
|
|
306
|
-
for (o.setState({ __a: o.__b = null }); l = o.t.pop(); ) l.forceUpdate();
|
|
307
|
-
}
|
|
308
|
-
};
|
|
309
|
-
o.__u++ || 32 & e.__u || o.setState({ __a: o.__b = o.__v.__k[0] }), A.then(r, r);
|
|
310
|
-
}, RA.prototype.componentWillUnmount = function() {
|
|
311
|
-
this.t = [];
|
|
312
|
-
}, RA.prototype.render = function(A, e) {
|
|
313
|
-
if (this.__b) {
|
|
314
|
-
if (this.__v.__k) {
|
|
315
|
-
var t = document.createElement("div"), o = this.__v.__k[0].__c;
|
|
316
|
-
this.__v.__k[0] = Je(this.__b, t, o.__O = o.__P);
|
|
317
|
-
}
|
|
318
|
-
this.__b = null;
|
|
319
|
-
}
|
|
320
|
-
var n = e.__a && N(_, null, A.fallback);
|
|
321
|
-
return n && (n.__u &= -33), [N(_, null, e.__a ? null : A.children), n];
|
|
322
|
-
};
|
|
323
|
-
var He = function(A, e, t) {
|
|
324
|
-
if (++t[1] === t[0] && A.o.delete(e), A.props.revealOrder && (A.props.revealOrder[0] !== "t" || !A.o.size)) for (t = A.u; t; ) {
|
|
325
|
-
for (; t.length > 3; ) t.pop()();
|
|
326
|
-
if (t[1] < t[0]) break;
|
|
327
|
-
A.u = t = t[2];
|
|
328
|
-
}
|
|
329
|
-
};
|
|
330
|
-
function Po(A) {
|
|
331
|
-
return this.getChildContext = function() {
|
|
332
|
-
return A.context;
|
|
333
|
-
}, A.children;
|
|
334
|
-
}
|
|
335
|
-
function Do(A) {
|
|
336
|
-
var e = this, t = A.i;
|
|
337
|
-
e.componentWillUnmount = function() {
|
|
338
|
-
YA(null, e.l), e.l = null, e.i = null;
|
|
339
|
-
}, e.i && e.i !== t && e.componentWillUnmount(), e.l || (e.i = t, e.l = { nodeType: 1, parentNode: t, childNodes: [], contains: function() {
|
|
340
|
-
return !0;
|
|
341
|
-
}, appendChild: function(o) {
|
|
342
|
-
this.childNodes.push(o), e.i.appendChild(o);
|
|
343
|
-
}, insertBefore: function(o, n) {
|
|
344
|
-
this.childNodes.push(o), e.i.appendChild(o);
|
|
345
|
-
}, removeChild: function(o) {
|
|
346
|
-
this.childNodes.splice(this.childNodes.indexOf(o) >>> 1, 1), e.i.removeChild(o);
|
|
347
|
-
} }), YA(N(Po, { context: e.context }, A.__v), e.l);
|
|
348
|
-
}
|
|
349
|
-
function Eo(A, e) {
|
|
350
|
-
var t = N(Do, { __v: A, i: e });
|
|
351
|
-
return t.containerInfo = e, t;
|
|
352
|
-
}
|
|
353
|
-
(NA.prototype = new SA()).__a = function(A) {
|
|
354
|
-
var e = this, t = Ze(e.__v), o = e.o.get(A);
|
|
355
|
-
return o[0]++, function(n) {
|
|
356
|
-
var a = function() {
|
|
357
|
-
e.props.revealOrder ? (o.push(n), He(e, A, o)) : n();
|
|
358
|
-
};
|
|
359
|
-
t ? t(a) : a();
|
|
360
|
-
};
|
|
361
|
-
}, NA.prototype.render = function(A) {
|
|
362
|
-
this.u = null, this.o = /* @__PURE__ */ new Map();
|
|
363
|
-
var e = QA(A.children);
|
|
364
|
-
A.revealOrder && A.revealOrder[0] === "b" && e.reverse();
|
|
365
|
-
for (var t = e.length; t--; ) this.o.set(e[t], this.u = [1, 0, this.u]);
|
|
366
|
-
return A.children;
|
|
367
|
-
}, NA.prototype.componentDidUpdate = NA.prototype.componentDidMount = function() {
|
|
368
|
-
var A = this;
|
|
369
|
-
this.o.forEach(function(e, t) {
|
|
370
|
-
He(A, t, e);
|
|
371
|
-
});
|
|
372
|
-
};
|
|
373
|
-
var $e = typeof Symbol < "u" && Symbol.for && Symbol.for("react.element") || 60103, Qo = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, Co = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, xo = /[A-Z0-9]/g, ko = typeof document < "u", Io = function(A) {
|
|
374
|
-
return (typeof Symbol < "u" && typeof Symbol() == "symbol" ? /fil|che|rad/ : /fil|che|ra/).test(A);
|
|
375
|
-
};
|
|
376
|
-
function At(A, e, t) {
|
|
377
|
-
return e.__k == null && (e.textContent = ""), YA(A, e), typeof t == "function" && t(), A ? A.__c : null;
|
|
378
|
-
}
|
|
379
|
-
function et(A, e, t) {
|
|
380
|
-
return ao(A, e), typeof t == "function" && t(), A ? A.__c : null;
|
|
381
|
-
}
|
|
382
|
-
SA.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(A) {
|
|
383
|
-
Object.defineProperty(SA.prototype, A, { configurable: !0, get: function() {
|
|
384
|
-
return this["UNSAFE_" + A];
|
|
385
|
-
}, set: function(e) {
|
|
386
|
-
Object.defineProperty(this, A, { configurable: !0, writable: !0, value: e });
|
|
387
|
-
} });
|
|
388
|
-
});
|
|
389
|
-
var Oe = Y.event;
|
|
390
|
-
function So() {
|
|
391
|
-
}
|
|
392
|
-
function To() {
|
|
393
|
-
return this.cancelBubble;
|
|
394
|
-
}
|
|
395
|
-
function Mo() {
|
|
396
|
-
return this.defaultPrevented;
|
|
397
|
-
}
|
|
398
|
-
Y.event = function(A) {
|
|
399
|
-
return Oe && (A = Oe(A)), A.persist = So, A.isPropagationStopped = To, A.isDefaultPrevented = Mo, A.nativeEvent = A;
|
|
400
|
-
};
|
|
401
|
-
var ge, Ho = { enumerable: !1, configurable: !0, get: function() {
|
|
402
|
-
return this.class;
|
|
403
|
-
} }, Le = Y.vnode;
|
|
404
|
-
Y.vnode = function(A) {
|
|
405
|
-
typeof A.type == "string" && function(e) {
|
|
406
|
-
var t = e.props, o = e.type, n = {}, a = o.indexOf("-") === -1;
|
|
407
|
-
for (var r in t) {
|
|
408
|
-
var i = t[r];
|
|
409
|
-
if (!(r === "value" && "defaultValue" in t && i == null || ko && r === "children" && o === "noscript" || r === "class" || r === "className")) {
|
|
410
|
-
var s = r.toLowerCase();
|
|
411
|
-
r === "defaultValue" && "value" in t && t.value == null ? r = "value" : r === "download" && i === !0 ? i = "" : s === "translate" && i === "no" ? i = !1 : s[0] === "o" && s[1] === "n" ? s === "ondoubleclick" ? r = "ondblclick" : s !== "onchange" || o !== "input" && o !== "textarea" || Io(t.type) ? s === "onfocus" ? r = "onfocusin" : s === "onblur" ? r = "onfocusout" : Co.test(r) && (r = s) : s = r = "oninput" : a && Qo.test(r) ? r = r.replace(xo, "-$&").toLowerCase() : i === null && (i = void 0), s === "oninput" && n[r = s] && (r = "oninputCapture"), n[r] = i;
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
o == "select" && n.multiple && Array.isArray(n.value) && (n.value = QA(t.children).forEach(function(l) {
|
|
415
|
-
l.props.selected = n.value.indexOf(l.props.value) != -1;
|
|
416
|
-
})), o == "select" && n.defaultValue != null && (n.value = QA(t.children).forEach(function(l) {
|
|
417
|
-
l.props.selected = n.multiple ? n.defaultValue.indexOf(l.props.value) != -1 : n.defaultValue == l.props.value;
|
|
418
|
-
})), t.class && !t.className ? (n.class = t.class, Object.defineProperty(n, "className", Ho)) : (t.className && !t.class || t.class && t.className) && (n.class = n.className = t.className), e.props = n;
|
|
419
|
-
}(A), A.$$typeof = $e, Le && Le(A);
|
|
420
|
-
};
|
|
421
|
-
var Ne = Y.__r;
|
|
422
|
-
Y.__r = function(A) {
|
|
423
|
-
Ne && Ne(A), ge = A.__c;
|
|
424
|
-
};
|
|
425
|
-
var je = Y.diffed;
|
|
426
|
-
Y.diffed = function(A) {
|
|
427
|
-
je && je(A);
|
|
428
|
-
var e = A.props, t = A.__e;
|
|
429
|
-
t != null && A.type === "textarea" && "value" in e && e.value !== t.value && (t.value = e.value == null ? "" : e.value), ge = null;
|
|
430
|
-
};
|
|
431
|
-
var Oo = { ReactCurrentDispatcher: { current: { readContext: function(A) {
|
|
432
|
-
return ge.__n[A.__c].props.value;
|
|
433
|
-
}, useCallback: H, useContext: pA, useDebugValue: Ke, useDeferredValue: rt, useEffect: X, useId: Xe, useImperativeHandle: We, useInsertionEffect: it, useLayoutEffect: VA, useMemo: uA, useReducer: qe, useRef: $, useState: S, useSyncExternalStore: st, useTransition: at } } };
|
|
434
|
-
function Lo(A) {
|
|
435
|
-
return N.bind(null, A);
|
|
436
|
-
}
|
|
437
|
-
function TA(A) {
|
|
438
|
-
return !!A && A.$$typeof === $e;
|
|
439
|
-
}
|
|
440
|
-
function No(A) {
|
|
441
|
-
return TA(A) && A.type === _;
|
|
442
|
-
}
|
|
443
|
-
function jo(A) {
|
|
444
|
-
return !!A && !!A.displayName && (typeof A.displayName == "string" || A.displayName instanceof String) && A.displayName.startsWith("Memo(");
|
|
445
|
-
}
|
|
446
|
-
function Uo(A) {
|
|
447
|
-
return TA(A) ? io.apply(null, arguments) : A;
|
|
448
|
-
}
|
|
449
|
-
function tt(A) {
|
|
450
|
-
return !!A.__k && (YA(null, A), !0);
|
|
451
|
-
}
|
|
452
|
-
function zo(A) {
|
|
453
|
-
return A && (A.base || A.nodeType === 1 && A) || null;
|
|
454
|
-
}
|
|
455
|
-
var Fo = function(A, e) {
|
|
456
|
-
return A(e);
|
|
457
|
-
}, Ro = function(A, e) {
|
|
458
|
-
return A(e);
|
|
459
|
-
}, ot = _;
|
|
460
|
-
function nt(A) {
|
|
461
|
-
A();
|
|
462
|
-
}
|
|
463
|
-
function rt(A) {
|
|
464
|
-
return A;
|
|
465
|
-
}
|
|
466
|
-
function at() {
|
|
467
|
-
return [!1, nt];
|
|
468
|
-
}
|
|
469
|
-
var it = VA, _o = TA;
|
|
470
|
-
function st(A, e) {
|
|
471
|
-
var t = e(), o = S({ h: { __: t, v: e } }), n = o[0].h, a = o[1];
|
|
472
|
-
return VA(function() {
|
|
473
|
-
n.__ = t, n.v = e, te(n) && a({ h: n });
|
|
474
|
-
}, [A, t, e]), X(function() {
|
|
475
|
-
return te(n) && a({ h: n }), A(function() {
|
|
476
|
-
te(n) && a({ h: n });
|
|
477
|
-
});
|
|
478
|
-
}, [A]), t;
|
|
479
|
-
}
|
|
480
|
-
function te(A) {
|
|
481
|
-
var e, t, o = A.v, n = A.__;
|
|
482
|
-
try {
|
|
483
|
-
var a = o();
|
|
484
|
-
return !((e = n) === (t = a) && (e !== 0 || 1 / e == 1 / t) || e != e && t != t);
|
|
485
|
-
} catch {
|
|
486
|
-
return !0;
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
var bA = { useState: S, useId: Xe, useReducer: qe, useEffect: X, useLayoutEffect: VA, useInsertionEffect: it, useTransition: at, useDeferredValue: rt, useSyncExternalStore: st, startTransition: nt, useRef: $, useImperativeHandle: We, useMemo: uA, useCallback: H, useContext: pA, useDebugValue: Ke, version: "18.3.1", Children: mo, render: At, hydrate: et, unmountComponentAtNode: tt, createPortal: Eo, createElement: N, createContext: mA, createFactory: Lo, cloneElement: Uo, createRef: ro, Fragment: _, isValidElement: TA, isElement: _o, isFragment: No, isMemo: jo, findDOMNode: zo, Component: SA, PureComponent: ce, memo: ho, forwardRef: lA, flushSync: Ro, unstable_batchedUpdates: Fo, StrictMode: ot, Suspense: RA, SuspenseList: NA, lazy: yo, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: Oo };
|
|
490
|
-
function we(A) {
|
|
491
|
-
return {
|
|
492
|
-
// eslint-disable-next-line
|
|
493
|
-
render: function(e) {
|
|
494
|
-
At(e, A);
|
|
495
|
-
},
|
|
496
|
-
// eslint-disable-next-line
|
|
497
|
-
unmount: function() {
|
|
498
|
-
tt(A);
|
|
499
|
-
}
|
|
500
|
-
};
|
|
501
|
-
}
|
|
502
|
-
function Go(A, e) {
|
|
503
|
-
return et(e, A), we(A);
|
|
504
|
-
}
|
|
505
|
-
const Yo = {
|
|
506
|
-
createRoot: we,
|
|
507
|
-
hydrateRoot: Go
|
|
508
|
-
}, Xo = {
|
|
509
|
-
renderToString: ke,
|
|
510
|
-
renderToStaticMarkup: ke
|
|
511
|
-
};
|
|
512
|
-
function ue() {
|
|
513
|
-
return ue = Object.assign ? Object.assign.bind() : function(A) {
|
|
514
|
-
for (var e = 1; e < arguments.length; e++) {
|
|
515
|
-
var t = arguments[e];
|
|
516
|
-
for (var o in t) ({}).hasOwnProperty.call(t, o) && (A[o] = t[o]);
|
|
517
|
-
}
|
|
518
|
-
return A;
|
|
519
|
-
}, ue.apply(null, arguments);
|
|
520
|
-
}
|
|
521
|
-
function ve(A, e) {
|
|
522
|
-
e === void 0 && (e = {});
|
|
523
|
-
var t = e.insertAt;
|
|
524
|
-
if (A && typeof document < "u") {
|
|
525
|
-
var o = document.head || document.getElementsByTagName("head")[0], n = document.createElement("style");
|
|
526
|
-
n.type = "text/css", t === "top" && o.firstChild ? o.insertBefore(n, o.firstChild) : o.appendChild(n), n.styleSheet ? n.styleSheet.cssText = A : n.appendChild(document.createTextNode(A));
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
ve('.rcb-chat-header-container{border-bottom:1px solid #ccc;color:#fff;display:flex;justify-content:space-between;max-height:55px;padding:12px}.rcb-chat-header{display:flex;flex-direction:row}.rcb-bot-avatar{background-size:cover;border-radius:50%;height:30px;margin-right:12px;width:30px}.rcb-message-prompt-container.visible{align-items:center;animation:rcb-animation-pop-in .3s ease-in-out;bottom:0;display:flex;justify-content:center;margin:auto;opacity:1;pointer-events:auto;position:sticky}.rcb-message-prompt-container.hidden{height:0;opacity:0;pointer-events:none;visibility:hidden}.rcb-message-prompt-text{background-color:#fff;border:.5px solid #adadad;border-radius:20px;color:#adadad;cursor:pointer;font-size:12px;padding:6px 12px;transition:color .3s ease,border-color .3s ease;z-index:9999}.rcb-message-prompt-container.hidden .rcb-message-prompt-text{padding:0}.rcb-user-message-container{display:flex;flex-direction:row;justify-content:right}.rcb-user-message{border-radius:22px;font-size:15px;height:fit-content;margin-right:16px;margin-top:8px;min-height:20px;overflow:hidden;overflow-wrap:anywhere;padding:12px 16px;text-align:right;white-space:pre-wrap;width:fit-content}.rcb-user-message-offset{margin-right:50px}.rcb-user-message-entry{animation:rcb-animation-user-message-entry .3s ease-in backwards}.rcb-message-user-avatar{background-size:cover;border-radius:50%;height:40px;margin-left:-10px;margin-right:6px;margin-top:9px;width:40px}.rcb-bot-message-container{display:flex;flex-direction:row}.rcb-bot-message{border-radius:22px;font-size:15px;height:fit-content;margin-left:16px;margin-top:8px;min-height:20px;overflow:hidden;overflow-wrap:anywhere;padding:12px 16px;text-align:left;white-space:pre-wrap;width:fit-content}.rcb-bot-message-offset{margin-left:50px}.rcb-bot-message-entry{animation:rcb-animation-bot-message-entry .3s ease-in backwards}.rcb-message-bot-avatar{background-size:cover;border-radius:50%;height:40px;margin-left:6px;margin-right:-10px;margin-top:9px;width:40px}.rcb-typing-indicator{align-items:center;display:flex}.rcb-dot{animation:rcb-animation-bot-typing 1s infinite;background-color:#ccc;border-radius:50%;height:8px;margin-right:4px;width:8px}.rcb-dot:nth-child(2){animation-delay:.2s}.rcb-dot:nth-child(3){animation-delay:.4s}.rcb-chat-body-container{height:100%;overflow-x:hidden;overflow-y:scroll;padding-bottom:16px;position:relative;touch-action:pan-y;width:100%}.rcb-chat-body-container::-webkit-scrollbar-track{background-color:#f1f1f1}.rcb-chat-body-container::-webkit-scrollbar-thumb{background-color:#ddd;border-radius:4px}.rcb-chat-body-container::-webkit-scrollbar-thumb:hover{background-color:#cfcfcf}.rcb-chat-body-container::-webkit-scrollbar-corner{background-color:#f1f1f1}.rcb-checkbox-container{display:flex;flex-wrap:wrap;gap:10px;margin-left:16px;padding-top:12px}.rcb-checkbox-offset{margin-left:50px!important}.rcb-checkbox-row-container{align-items:center;animation:rcb-animations-checkboxes-entry .5s ease-out;background-color:#fff;border-radius:10px;border-style:solid;border-width:.5px;cursor:pointer;display:flex;gap:5px;max-height:32px;min-height:30px;overflow:hidden;width:80%}.rcb-checkbox-row-container:hover{box-shadow:0 0 5px #0003}.rcb-checkbox-row{align-items:center;cursor:pointer;display:inline-flex;margin-left:10px}.rcb-checkbox-mark{align-items:center;background-color:#f2f2f2;border:none;border-radius:50%;cursor:pointer;display:flex;height:20px;justify-content:center;margin-right:10px;transition:all .3s ease;width:20px}.rcb-checkbox-mark:hover{background-color:#c2c2c2}.rcb-checkbox-mark:before{content:"✓";transition:all .3s ease}.rcb-checkbox-label{font-size:14px}.rcb-checkbox-next-button{align-items:center;animation:rcb-animations-checkboxes-entry .5s ease-out;background-color:#fff;border-radius:10px;border-style:solid;border-width:.5px;cursor:pointer;display:inline-block;font-size:24px;max-height:32px;min-height:30px;text-align:center;width:80%}.rcb-checkbox-next-button:before{content:"→"}.rcb-checkbox-next-button:hover{box-shadow:0 0 5px #0003}.rcb-options-container{display:flex;flex-wrap:wrap;gap:10px;margin-left:16px;max-width:70%;padding-top:12px}.rcb-options-offset{margin-left:50px!important}.rcb-options{align-items:center;animation:rcb-animation-options-entry .5s ease-out;border-radius:20px;border-style:solid;border-width:.5px;cursor:pointer;display:inline-flex;font-size:14px;justify-content:center;overflow:hidden;padding:10px 20px;transition:background-color .3s ease}.rcb-options:hover{box-shadow:0 0 5px #0003}.rcb-line-break-container{align-items:center;display:flex;justify-content:center;max-height:45px;padding-bottom:5px;padding-top:10px}.rcb-line-break-text{color:#adadad;font-size:12px;padding:6px 12px}.rcb-spinner-container{align-items:center;display:flex;justify-content:center;max-height:45px;min-height:35px;padding-bottom:5px;padding-top:10px}.rcb-spinner{animation:rcb-animation-spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;height:22px;width:22px}.rcb-chat-input{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;padding:8px 16px}.rcb-chat-input::placeholder{color:#999}.rcb-chat-input-textarea{background-color:#fff;border:none;border-radius:4px;color:#000;flex:1;font-family:inherit;font-size:16px;height:auto;min-height:38px;outline:none;overflow-y:scroll;padding:8px;resize:none;touch-action:none}.rcb-chat-input-textarea::-webkit-scrollbar,.rcb-chat-input-textarea::-webkit-scrollbar-thumb{background-color:initial}.rcb-chat-input-textarea::-webkit-scrollbar-thumb:hover{background-color:initial}.rcb-chat-input-char-counter{font-size:14px;margin-left:8px;margin-top:3px}.rcb-chat-footer-container{align-items:flex-end;background-color:#f2f2f2;border-top:1px solid #ccc;color:#000;display:flex;font-size:12px;justify-content:space-between;max-height:55px;padding:12px 16px 8px 10px}.rcb-chat-footer,.rcb-toggle-button{display:flex;flex-direction:row}.rcb-toggle-button{border:none;border-radius:50%;bottom:20px;box-shadow:0 2px 4px #0003;cursor:pointer;height:75px;position:fixed;right:20px;width:75px;z-index:9999}.rcb-toggle-button.rcb-button-hide{animation:rcb-animation-collapse .3s ease-in-out forwards;opacity:0;visibility:hidden}.rcb-toggle-button.rcb-button-show{animation:rcb-animation-expand .3s ease-in-out forwards;opacity:1;visibility:visible}.rcb-toggle-icon{background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:inherit;height:100%;margin:auto;width:100%}.rcb-badge,.rcb-toggle-icon{align-items:center;display:flex;justify-content:center}.rcb-badge{background-color:red;border-radius:50%;color:#fff;height:25px;position:absolute;right:-6px;top:-6px;width:25px}.rcb-chat-tooltip{border-radius:20px;box-shadow:0 2px 6px #0003;cursor:pointer;font-size:20px;padding:16px;position:fixed;transition:transform .3s ease;white-space:nowrap;z-index:9999}.rcb-chat-tooltip-tail{border-style:solid;border-width:10px 0 10px 10px;content:"";margin-top:-10px;position:absolute;right:-10px;top:50%}.rcb-chat-tooltip.rcb-tooltip-hide{animation:rcb-animation-tooltip-out .5s ease-in-out;opacity:0;visibility:hidden}.rcb-chat-tooltip.rcb-tooltip-show{animation:rcb-animation-tooltip-in .5s ease-in-out;opacity:1;visibility:visible}.rcb-toast-prompt{animation:rcb-animation-pop-in .3s ease-in-out;background-color:#fff;border:.5px solid #7a7a7a;border-radius:5px;color:#7a7a7a;cursor:pointer;font-size:12px;margin-top:6px;padding:6px 12px;text-align:center;transition:color .3s ease,border-color .3s ease;width:100%;z-index:9999}.rcb-toast-prompt-container{align-items:center;animation:popIn .3s ease-in-out;bottom:0;display:flex;flex-direction:column;justify-content:flex-end;left:50%;margin:200 auto auto;opacity:1;pointer-events:auto;position:absolute;transform:translate(-50%)}.rcb-media-display-image-container,.rcb-media-display-video-container{border-radius:22px;margin-right:16px;margin-top:8px;padding:16px;width:fit-content}.rcb-media-display-offset{margin-right:50px!important}.rcb-media-display-image{border-radius:22px;height:auto;object-fit:cover;width:100%}.rcb-media-display-video{background-color:#000;border-radius:22px;height:auto;width:100%}.rcb-media-display-audio{border-radius:22px;height:auto;margin-right:16px;margin-top:8px;width:100%}.rcb-media-entry{animation:rcb-animation-user-message-entry .3s ease-in backwards}.rcb-attach-button-disabled,.rcb-attach-button-enabled{background-size:cover;border-radius:6px;display:inline-block;height:30px;position:relative;text-align:center;width:30px}.rcb-attach-button-disabled input[type=file],.rcb-attach-button-enabled input[type=file]{display:none;height:100%;position:absolute;width:100%}.rcb-attach-button-enabled{cursor:pointer}.rcb-attach-button-disabled{opacity:.5}.rcb-attach-button-enabled:after{background-color:#0000001a;border-radius:50%;content:"";height:0;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .2s ease-out,height .2s ease-out,opacity .2s ease-out;width:0}.rcb-attach-button-enabled:hover:after{height:130%;opacity:1;width:130%}.rcb-attach-icon-disabled,.rcb-attach-icon-enabled{background-repeat:no-repeat;background-size:cover;display:inline-block;height:24px;margin-top:2px;transition:background-image .3s ease;width:24px}.rcb-attach-icon-enabled{cursor:pointer}.rcb-emoji-button-disabled,.rcb-emoji-button-enabled{background-size:cover;border-radius:6px;cursor:pointer;display:inline-block;height:30px;position:relative;text-align:center;width:30px}.rcb-emoji-icon-disabled,.rcb-emoji-icon-enabled{background-repeat:no-repeat;background-size:cover;display:inline-block;font-size:20px;height:24px;margin-top:2px;position:relative;width:24px}.rcb-emoji-icon-enabled{cursor:pointer}.rcb-emoji-icon-disabled{opacity:.5}.rcb-emoji-button-enabled:after{background-color:#0000001a;border-radius:50%;content:"";height:0;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .2s ease-out,height .2s ease-out,opacity .2s ease-out;width:0}.rcb-emoji-button-enabled:hover:after{height:130%;opacity:1;width:130%}.rcb-emoji-button-popup{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0003;max-height:200px;overflow-y:auto;padding:8px;position:absolute;transform:translateY(calc(-100% - 30px));width:158px}.rcb-emoji{cursor:pointer;font-size:24px;padding:3px;transition:transform .2s ease-in-out}.rcb-emoji:hover{transform:scale(1.2)}.rcb-audio-icon{background-size:cover;border:none;cursor:pointer;display:inline-block;height:30px;margin-left:5px;position:relative;width:30px}.rcb-audio-icon:after{background-color:#0000001a;border-radius:50%;content:"";height:0;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .2s ease-out,height .2s ease-out,opacity .2s ease-out;width:0}.rcb-audio-icon:hover:after{height:130%;opacity:1;width:130%}.rcb-close-chat-icon{background-size:cover;border:none;cursor:pointer;display:inline-block;height:30px;margin-left:5px;position:relative;width:30px}.rcb-close-chat-icon:after{background-color:#0000001a;border-radius:50%;content:"";height:0;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .2s ease-out,height .2s ease-out,opacity .2s ease-out;width:0}.rcb-close-chat-icon:hover:after{height:130%;opacity:1;width:130%}.rcb-notification-icon{background-size:cover;border:none;cursor:pointer;display:inline-block;height:30px;margin-left:5px;position:relative;width:30px}.rcb-notification-icon:after{background-color:#0000001a;border-radius:50%;content:"";height:0;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .2s ease-out,height .2s ease-out,opacity .2s ease-out;width:0}.rcb-notification-icon:hover:after{height:130%;opacity:1;width:130%}.rcb-voice-button-disabled,.rcb-voice-button-enabled{align-items:center;background-color:#fff;border-radius:4px;box-shadow:0 0 3px #0000004d;cursor:pointer;display:inline-flex;height:32px;justify-content:center;margin-left:8px;text-transform:uppercase;transition:all .3s ease;width:32px}.rcb-voice-button-enabled{border:1px solid red;box-shadow:0 0 3px #ff000080}.rcb-voice-button-enabled:hover{border:1px solid #3d0000}.rcb-voice-button-disabled{border:1px;border-color:#0003;border-style:solid}.rcb-voice-button-disabled:hover{box-shadow:0 0 3px #8a0000}.rcb-voice-icon{background-position:50%;background-repeat:no-repeat;background-size:cover;background-size:contain;height:60%;object-fit:cover;width:60%}.rcb-voice-icon.on{animation:rcb-animation-ping 1s infinite}.rcb-send-button{border:none;border-radius:4px;box-shadow:0 0 3px #0000004d;cursor:pointer;display:inline-flex;height:32px;justify-content:center;margin-left:8px;text-transform:uppercase;transition:background-color .3s ease;width:51px}.rcb-send-icon{background-position:50%;background-repeat:no-repeat;background-size:cover;background-size:contain;height:50%;object-fit:cover;transform:translateY(20%);width:50%}.rcb-view-history-container{align-items:center;display:flex;justify-content:center;max-height:45px;min-height:35px;padding-bottom:5px;padding-top:10px}.rcb-view-history-button{align-items:center;background-color:#fff;border:.5px solid #adadad;border-radius:20px;color:#adadad;cursor:pointer;display:inline-flex;font-size:12px;justify-content:center;max-width:60%;padding:6px 12px;transition:color .3s ease,border-color .3s ease}.rcb-view-history-button>p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rcb-chatbot-global{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;z-index:9999}.rcb-chat-window{background-color:#fff;border-radius:10px;bottom:20px;box-shadow:0 2px 4px #0003;display:flex;flex-direction:column;height:550px;overflow:hidden;position:fixed;right:20px;transition:all .3s ease;width:375px}.rcb-window-embedded .rcb-chat-window{bottom:auto;opacity:1;position:relative;right:auto;visibility:visible}.rcb-window-open .rcb-chat-window{animation:rcb-animation-expand .3s ease-in-out forwards;opacity:1;visibility:visible}.rcb-window-close .rcb-chat-window{animation:rcb-animation-collapse .3s ease-in-out forwards;opacity:0;visibility:hidden}@keyframes rcb-animation-expand{0%{opacity:0;transform:translate(100%,100%) scale(0)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes rcb-animation-collapse{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%,100%) scale(0)}}@keyframes rcb-animation-ping{0%{filter:brightness(100%);opacity:1}50%{filter:brightness(50%);opacity:.8}}@keyframes rcb-animation-bot-message-entry{0%{opacity:0;transform:translate(-100%,50%) scale(0)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes rcb-animation-user-message-entry{0%{opacity:0;transform:translate(100%,50%) scale(0)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes rcb-animation-bot-typing{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes rcb-animation-pop-in{0%{opacity:0;transform:scale(.8)}70%{opacity:1;transform:scale(1.1)}to{transform:scale(1)}}@keyframes rcb-animations-checkboxes-entry{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes rcb-animation-options-entry{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes rcb-animation-tooltip-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes rcb-animation-tooltip-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5px)}}@keyframes rcb-animation-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}', { insertAt: "top" });
|
|
530
|
-
const V = { AUDIO_BUTTON: "audio-button", NOTIFICATION_BUTTON: "notification-button", CLOSE_CHAT_BUTTON: "close-chat-button", SEND_MESSAGE_BUTTON: "send-button", VOICE_MESSAGE_BUTTON: "voice-button", FILE_ATTACHMENT_BUTTON: "file-attachment-button", EMOJI_PICKER_BUTTON: "emoji-button" }, Ue = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e", ze = lA((A, e) => N("svg", { viewBox: "0 0 637 637", ref: e, ...A }, N("path", { d: "m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20", fill: "#fff", fillRule: "evenodd" }), N("path", { d: "M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1" }))), Fe = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z" }))), qo = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z" }))), Wo = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z" }))), Ko = lA((A, e) => N("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 100 100", ref: e, ...A }, N("g", { strokeLinecap: "round", strokeWidth: 10 }, N("path", { d: "m19 19 61 61M80 19 19 80" })))), Jo = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "M94-136v-255l351-93-351-92v-253l816 346L94-136Z" }))), Vo = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z" }))), Zo = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z" }))), Re = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z" }))), $o = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z" }))), An = lA((A, e) => N("svg", { viewBox: "0 -960 960 960", ref: e, ...A }, N("path", { d: "M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z" }))), lt = { general: { primaryColor: "#42b0c5", secondaryColor: "#491d8d", fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", showHeader: !0, showFooter: !0, showInputRow: !0, actionDisabledIcon: "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e", embedded: !1, flowStartTrigger: "ON_LOAD" }, tooltip: { mode: "CLOSE", text: "Talk to me! 😊" }, chatButton: { icon: ze }, header: { title: c("div", { style: { cursor: "pointer", margin: 0, fontSize: 20, fontWeight: "bold" }, onClick: () => window.open("https://github.com/tjtanjin/"), children: "Tan Jin" }), showAvatar: !0, avatar: Ue, buttons: [V.NOTIFICATION_BUTTON, V.AUDIO_BUTTON, V.CLOSE_CHAT_BUTTON], closeChatIcon: Ko }, notification: { disabled: !1, defaultToggledOn: !0, volume: 0.2, icon: qo, iconDisabled: Wo, sound: "data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/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+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//", showCount: !0 }, audio: { disabled: !0, defaultToggledOn: !1, language: "en-US", voiceNames: ["Microsoft David - English (United States)", "Alex (English - United States)"], rate: 1, volume: 1, icon: $o, iconDisabled: An }, chatHistory: { disabled: !1, maxEntries: 30, storageKey: "rcb-history", storageType: "LOCAL_STORAGE", viewChatHistoryButtonText: "Load Chat History ⟳", chatHistoryLineBreakText: "----- Previous Chat History -----", autoLoad: !1 }, chatInput: { disabled: !1, allowNewline: !1, enabledPlaceholderText: "Type your message...", disabledPlaceholderText: "", showCharacterCount: !1, characterLimit: -1, botDelay: 1e3, sendButtonIcon: Jo, blockSpam: !0, sendOptionOutput: !0, sendCheckboxOutput: !0, buttons: [V.VOICE_MESSAGE_BUTTON, V.SEND_MESSAGE_BUTTON] }, chatWindow: { showScrollbar: !1, showTypingIndicator: !0, autoJumpToBottom: !1, showMessagePrompt: !0, messagePromptText: "New Messages ↓", messagePromptOffset: 30, defaultOpen: !1 }, sensitiveInput: { maskInTextArea: !0, maskInUserBubble: !0, asterisksCount: 10, hideInUserBubble: !1 }, userBubble: { animate: !0, showAvatar: !1, avatar: "data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e", simulateStream: !1, streamSpeed: 30 }, botBubble: { animate: !0, showAvatar: !1, avatar: Ue, simulateStream: !1, streamSpeed: 30 }, voice: { disabled: !0, defaultToggledOn: !1, language: "en-US", timeoutPeriod: 1e4, autoSendDisabled: !1, autoSendPeriod: 1e3, sendAsAudio: !1, icon: Vo, iconDisabled: Zo }, footer: { text: c("div", { style: { cursor: "pointer", display: "flex", flexDirection: "row", alignItems: "center", columnGap: 3 }, onClick: () => window.open("https://react-chatbotify.com"), children: [c("span", { children: "Powered By " }, 0), c("div", { style: { borderRadius: "50%", width: 14, height: 14, display: "flex", justifyContent: "center", alignItems: "center", background: "linear-gradient(to right, #42b0c5, #491d8d)" }, children: c(ze, { style: { width: "80%", height: "80%", fill: "#fff" } }) }, 1), c("span", { style: { fontWeight: "bold" }, children: " React ChatBotify" }, 2)] }), buttons: [V.FILE_ATTACHMENT_BUTTON, V.EMOJI_PICKER_BUTTON] }, fileAttachment: { disabled: !1, multiple: !0, accept: ".png", icon: Fe, iconDisabled: Fe, sendFileName: !0, showMediaDisplay: !1 }, emoji: { disabled: !1, icon: Re, iconDisabled: Re, list: ["😀", "😃", "😄", "😅", "😊", "😌", "😇", "🙃", "🤣", "😍", "🥰", "🥳", "🎉", "🎈", "🚀", "⭐️"] }, toast: { maxCount: 3, forbidOnMax: !1, dismissOnClick: !0 }, event: { rcbPreInjectMessage: !1, rcbPostInjectMessage: !1, rcbStartSimulateStreamMessage: !1, rcbStopSimulateStreamMessage: !1, rcbStartStreamMessage: !1, rcbChunkStreamMessage: !1, rcbStopStreamMessage: !1, rcbRemoveMessage: !1, rcbLoadChatHistory: !1, rcbToggleChatWindow: !1, rcbStartSpeakAudio: !1, rcbToggleAudio: !1, rcbToggleNotifications: !1, rcbToggleVoice: !1, rcbChangePath: !1, rcbShowToast: !1, rcbDismissToast: !1, rcbUserSubmitText: !1, rcbUserUploadFile: !1, rcbTextAreaChangeValue: !1, rcbPreLoadChatBot: !1, rcbPostLoadChatBot: !1 }, ariaLabel: { chatButton: "open chat", audioButton: "toggle audio", closeChatButton: "close chat", emojiButton: "emoji picker", fileAttachmentButton: "upload file", notificationButton: "toggle notifications", sendButton: "send message", voiceButton: "toggle voice", inputTextArea: "input text area" }, device: { desktopEnabled: !0, mobileEnabled: !0, applyMobileOptimizations: !0 } }, ct = mA({ settings: {}, setSettings: () => null }), O = () => pA(ct), en = ({ children: A, settings: e = lt, setSettings: t }) => c(ct.Provider, { value: { settings: e, setSettings: t }, children: A }), ut = { tooltipStyle: {}, notificationBadgeStyle: {}, chatWindowStyle: {}, headerStyle: {}, bodyStyle: {}, chatInputContainerStyle: {}, chatInputAreaStyle: {}, chatInputAreaFocusedStyle: {}, chatInputAreaDisabledStyle: {}, userBubbleStyle: {}, botBubbleStyle: {}, botOptionStyle: {}, botOptionHoveredStyle: {}, botCheckboxRowStyle: {}, botCheckboxNextStyle: {}, botCheckMarkStyle: {}, botCheckMarkSelectedStyle: {}, characterLimitStyle: {}, characterLimitReachedStyle: {}, chatHistoryLineBreakStyle: {}, chatMessagePromptStyle: {}, chatMessagePromptHoveredStyle: {}, footerStyle: {}, loadingSpinnerStyle: {}, mediaDisplayContainerStyle: {}, chatButtonStyle: {}, chatHistoryButtonStyle: {}, chatHistoryButtonHoveredStyle: {}, sendButtonStyle: {}, sendButtonHoveredStyle: {}, sendButtonDisabledStyle: {}, audioButtonStyle: {}, audioButtonDisabledStyle: {}, closeChatButtonStyle: {}, emojiButtonStyle: {}, emojiButtonDisabledStyle: {}, fileAttachmentButtonStyle: {}, fileAttachmentButtonDisabledStyle: {}, notificationButtonStyle: {}, notificationButtonDisabledStyle: {}, voiceButtonStyle: {}, voiceButtonDisabledStyle: {}, chatIconStyle: {}, audioIconStyle: {}, audioIconDisabledStyle: {}, closeChatIconStyle: {}, emojiIconStyle: {}, emojiIconDisabledStyle: {}, fileAttachmentIconStyle: {}, fileAttachmentIconDisabledStyle: {}, notificationIconStyle: {}, notificationIconDisabledStyle: {}, voiceIconStyle: {}, voiceIconDisabledStyle: {}, sendIconStyle: {}, sendIconDisabledStyle: {}, sendIconHoveredStyle: {}, rcbTypingIndicatorContainerStyle: {}, rcbTypingIndicatorDotStyle: {}, toastPromptContainerStyle: {}, toastPromptStyle: {}, toastPromptHoveredStyle: {} }, dt = mA({ styles: {}, setStyles: () => null }), G = () => pA(dt), tn = ({ children: A, styles: e = ut, setStyles: t }) => c(dt.Provider, { value: { styles: e, setStyles: t }, children: A }), on = ({ buttons: A }) => {
|
|
531
|
-
var e, t, o, n, a;
|
|
532
|
-
const { settings: r } = O(), { styles: i } = G(), s = { backgroundImage: `linear-gradient(to right, ${(e = r.general) == null ? void 0 : e.secondaryColor},
|
|
533
|
-
${(t = r.general) == null ? void 0 : t.primaryColor})`, ...i.headerStyle };
|
|
534
|
-
return c("div", { style: s, className: "rcb-chat-header-container", children: [c("div", { className: "rcb-chat-header", children: [((o = r.header) == null ? void 0 : o.showAvatar) && c("div", { style: { backgroundImage: `url("${(n = r.header) == null ? void 0 : n.avatar}")` }, className: "rcb-bot-avatar" }), (a = r.header) == null ? void 0 : a.title] }), c("div", { className: "rcb-chat-header", children: A == null ? void 0 : A.map((l, d) => c(_, { children: l }, d)) })] });
|
|
535
|
-
}, ft = mA({}), rA = () => pA(ft), nn = ({ children: A, botIdRef: e, flowRef: t }) => {
|
|
536
|
-
const o = $(null), n = $(""), a = $(/* @__PURE__ */ new Map()), r = $(null), i = $(""), s = $(!1), l = $(null), d = $(null), g = $(null);
|
|
537
|
-
return c(ft.Provider, { value: { botIdRef: e, flowRef: t, inputRef: o, streamMessageMap: a, chatBodyRef: r, paramsInputRef: i, keepVoiceOnRef: s, audioContextRef: l, audioBufferRef: d, gainNodeRef: g, prevInputRef: n }, children: A });
|
|
538
|
-
}, gt = mA({}), oA = () => pA(gt), rn = ({ children: A, settings: e }) => {
|
|
539
|
-
var t, o, n, a, r, i;
|
|
540
|
-
const [s, l] = S(!1), [d, g] = S(((t = e == null ? void 0 : e.chatWindow) == null ? void 0 : t.defaultOpen) ?? !1), [p, w] = S(((o = e == null ? void 0 : e.audio) == null ? void 0 : o.defaultToggledOn) ?? !1), [u, f] = S(((n = e == null ? void 0 : e.voice) == null ? void 0 : n.defaultToggledOn) ?? !1), [h, v] = S(((a = e == null ? void 0 : e.notification) == null ? void 0 : a.defaultToggledOn) ?? !0), [b, P] = S(!1), [m, B] = S(!1), [y, D] = S(!1), [U, T] = S(!0), [k, M] = S(!1), [I, x] = S(!1), [E, Q] = S(!1), [C, L] = S(0), [z, F] = S(0), [R, W] = S(!1), [K, Z] = S(null), [j, J] = S(((r = window.visualViewport) == null ? void 0 : r.height) ?? window.innerHeight), [aA, yA] = S(((i = window.visualViewport) == null ? void 0 : i.width) ?? window.innerWidth);
|
|
541
|
-
return c(gt.Provider, { value: { isBotTyping: s, setIsBotTyping: l, isChatWindowOpen: d, setIsChatWindowOpen: g, audioToggledOn: p, setAudioToggledOn: w, voiceToggledOn: u, setVoiceToggledOn: f, notificationsToggledOn: h, setNotificationsToggledOn: v, isLoadingChatHistory: b, setIsLoadingChatHistory: P, hasChatHistoryLoaded: m, setHasChatHistoryLoaded: B, isScrolling: y, setIsScrolling: D, textAreaDisabled: U, setTextAreaDisabled: T, textAreaSensitiveMode: k, setTextAreaSensitiveMode: M, hasInteractedPage: I, setHasInteractedPage: x, hasFlowStarted: E, setHasFlowStarted: Q, unreadCount: C, setUnreadCount: L, inputLength: z, setInputLength: F, blockAllowsAttachment: R, setBlockAllowsAttachment: W, timeoutId: K, setTimeoutId: Z, viewportHeight: j, setViewportHeight: J, viewportWidth: aA, setViewportWidth: yA }, children: A });
|
|
542
|
-
}, an = () => {
|
|
543
|
-
var A, e, t;
|
|
544
|
-
const { settings: o } = O(), { styles: n } = G(), { unreadCount: a, isScrolling: r, setIsScrolling: i } = oA(), { chatBodyRef: s } = rA(), [l, d] = S(!1), g = { color: (A = o.general) == null ? void 0 : A.primaryColor, borderColor: (e = o.general) == null ? void 0 : e.primaryColor, ...n.chatMessagePromptHoveredStyle }, p = (u, f, h, v) => (u /= v / 2) < 1 ? h / 2 * u * u + f : -h / 2 * (--u * (u - 2) - 1) + f;
|
|
545
|
-
return c("div", { className: "rcb-message-prompt-container " + (s.current && ((w = o.chatWindow) != null && w.showMessagePrompt) && r && a > 0 ? "visible" : "hidden"), children: c("div", { onMouseEnter: () => {
|
|
546
|
-
d(!0);
|
|
547
|
-
}, onMouseLeave: () => {
|
|
548
|
-
d(!1);
|
|
549
|
-
}, style: l ? g : { ...n.chatMessagePromptStyle }, onMouseDown: (u) => {
|
|
550
|
-
u.preventDefault(), function(f) {
|
|
551
|
-
if (!s.current) return;
|
|
552
|
-
const h = s.current.scrollTop, v = s.current.scrollHeight - s.current.clientHeight - h;
|
|
553
|
-
let b = 0;
|
|
554
|
-
(function P() {
|
|
555
|
-
if (!s.current) return;
|
|
556
|
-
b += 20;
|
|
557
|
-
const m = p(b, h, v, f);
|
|
558
|
-
s.current.scrollTop = m, b < f ? requestAnimationFrame(P) : i(!1);
|
|
559
|
-
})();
|
|
560
|
-
}(600);
|
|
561
|
-
}, className: "rcb-message-prompt-text", children: (t = o.chatWindow) == null ? void 0 : t.messagePromptText }) });
|
|
562
|
-
var w;
|
|
563
|
-
}, wt = "rcb-start-speak-audio", vt = "rcb-toggle-audio", pt = "rcb-toggle-notifications", ht = "rcb-toggle-voice", bt = "rcb-toggle-chat-window", mt = "rcb-pre-inject-message", Bt = "rcb-post-inject-message", yt = "rcb-start-simulate-stream-message", Pt = "rcb-stop-simulate-stream-message", Dt = "rcb-start-stream-message", Et = "rcb-chunk-stream-message", Qt = "rcb-stop-stream-message", sn = "rcb-remove-message", Ct = "rcb-load-chat-history", xt = "rcb-change-path", de = "rcb-show-toast", kt = "rcb-dismiss-toast", It = "rcb-user-submit-text", St = "rcb-user-upload-file", Tt = "rcb-text-area-change-value", Mt = "rcb-pre-load-chatbot", Ht = "rcb-post-load-chatbot", ln = { [wt]: !0, [vt]: !0, [ht]: !0, [pt]: !0, [bt]: !0, [mt]: !0, [Bt]: !1, [Mt]: !0, [Ht]: !1, [yt]: !0, [Pt]: !1, [Dt]: !0, [Et]: !0, [Qt]: !0, [Ct]: !0, [xt]: !0, [de]: !0, [kt]: !0, [It]: !0, [St]: !0, [Tt]: !0 }, XA = async (A, e, t) => {
|
|
564
|
-
const o = new CustomEvent(A, { detail: e, cancelable: ln[A] });
|
|
565
|
-
return o.data = t, o.promises = [], window.dispatchEvent(o), await Promise.all(o.promises), o;
|
|
566
|
-
}, Ot = mA({ paths: [], setPaths: () => null }), pe = () => pA(Ot), cn = ({ children: A }) => {
|
|
567
|
-
const [e, t] = S([]);
|
|
568
|
-
return c(Ot.Provider, { value: { paths: e, setPaths: t }, children: A });
|
|
569
|
-
}, ZA = () => {
|
|
570
|
-
const { settings: A } = O(), { paths: e, setPaths: t } = pe(), { setIsBotTyping: o, setTextAreaDisabled: n, setTextAreaSensitiveMode: a, blockAllowsAttachment: r, setBlockAllowsAttachment: i } = oA(), { botIdRef: s } = rA(), l = H(() => e.length > 0 ? e[e.length - 1] : null, [e]), d = H(() => e.length > 1 ? e[e.length - 2] : null, [e]), g = H(async (w) => {
|
|
571
|
-
var u, f;
|
|
572
|
-
if ((u = A.event) != null && u.rcbChangePath) {
|
|
573
|
-
const h = l(), v = d(), b = { botId: s.current, currPath: h, prevPath: v };
|
|
574
|
-
if (event = await XA(xt, b, { currPath: h, prevPath: v, nextPath: w }), event.defaultPrevented) return !1;
|
|
575
|
-
}
|
|
576
|
-
return o(!0), (f = A.chatInput) != null && f.blockSpam && n(!0), a(!1), t((h) => [...h, w]), !0;
|
|
577
|
-
}, [e, t, A]), p = H((w) => {
|
|
578
|
-
t(w);
|
|
579
|
-
}, []);
|
|
580
|
-
return { getCurrPath: l, getPrevPath: d, goToPath: g, blockAllowsAttachment: r, setBlockAllowsAttachment: i, paths: e, replacePaths: p };
|
|
581
|
-
}, hA = () => {
|
|
582
|
-
const { getCurrPath: A, getPrevPath: e, paths: t } = (() => {
|
|
583
|
-
const { getCurrPath: n, getPrevPath: a, goToPath: r, paths: i, replacePaths: s } = ZA();
|
|
584
|
-
return { getCurrPath: n, getPrevPath: a, goToPath: r, paths: i, replacePaths: s };
|
|
585
|
-
})(), { botIdRef: o } = rA();
|
|
586
|
-
return { callRcbEvent: H(async (n, a) => {
|
|
587
|
-
const r = { botId: o.current, currPath: A(), prevPath: e() };
|
|
588
|
-
return await XA(n, r, a);
|
|
589
|
-
}, [t]) };
|
|
590
|
-
}, BA = () => {
|
|
591
|
-
const { settings: A } = O(), { isChatWindowOpen: e, setIsChatWindowOpen: t, viewportHeight: o, setViewportHeight: n, viewportWidth: a, setViewportWidth: r, setUnreadCount: i } = oA(), { callRcbEvent: s } = hA(), [l, d] = S(0), g = H(async () => {
|
|
592
|
-
var w;
|
|
593
|
-
(w = A.event) != null && w.rcbToggleChatWindow && (await s(bt, { currState: e, newState: !e })).defaultPrevented || t((u) => (u || i(0), !u));
|
|
594
|
-
}, [e]), p = H(async (w) => {
|
|
595
|
-
e !== w && await g();
|
|
596
|
-
}, [e]);
|
|
597
|
-
return { isChatWindowOpen: e, setIsChatWindowOpen: t, toggleChatWindow: g, openChat: p, chatScrollHeight: l, setChatScrollHeight: d, viewportHeight: o, setViewportHeight: n, viewportWidth: a, setViewportWidth: r };
|
|
598
|
-
}, Lt = mA({ messages: [], setMessages: () => null }), he = () => pA(Lt), un = ({ children: A }) => {
|
|
599
|
-
const [e, t] = S([]);
|
|
600
|
-
return c(Lt.Provider, { value: { messages: e, setMessages: t }, children: A });
|
|
601
|
-
}, dn = ({ message: A, isNewSender: e }) => {
|
|
602
|
-
var t, o, n, a, r, i;
|
|
603
|
-
const { settings: s } = O(), { styles: l } = G(), d = typeof A.content == "string", g = A.content, p = A.contentWrapper ? c(A.contentWrapper, { children: g }) : g, w = { backgroundColor: (t = s.general) == null ? void 0 : t.primaryColor, color: "#fff", maxWidth: (o = s.userBubble) != null && o.showAvatar ? "65%" : "70%", ...l.userBubbleStyle }, u = (n = s.userBubble) != null && n.animate ? "rcb-user-message-entry" : "", f = ((a = s.userBubble) == null ? void 0 : a.showAvatar) && e, h = "rcb-user-message" + (!e && (r = s.userBubble) != null && r.showAvatar ? " rcb-user-message-offset" : "");
|
|
604
|
-
return c("div", { className: "rcb-user-message-container", children: [d ? c("div", { style: w, className: `${h} ${u}`, children: p }) : c(_, { children: p }), f && c("div", { style: { backgroundImage: `url("${(i = s.userBubble) == null ? void 0 : i.avatar}")` }, className: "rcb-message-user-avatar" })] });
|
|
605
|
-
}, fn = ({ message: A, isNewSender: e }) => {
|
|
606
|
-
var t, o, n, a, r, i;
|
|
607
|
-
const { settings: s } = O(), { styles: l } = G(), d = typeof A.content == "string", g = A.content, p = A.contentWrapper ? c(A.contentWrapper, { children: g }) : g, w = { backgroundColor: (t = s.general) == null ? void 0 : t.secondaryColor, color: "#fff", maxWidth: (o = s.botBubble) != null && o.showAvatar ? "65%" : "70%", ...l.botBubbleStyle }, u = (n = s.botBubble) != null && n.animate ? "rcb-bot-message-entry" : "", f = ((a = s.botBubble) == null ? void 0 : a.showAvatar) && e, h = "rcb-bot-message" + (!e && (r = s.botBubble) != null && r.showAvatar ? " rcb-bot-message-offset" : "");
|
|
608
|
-
return c("div", { className: "rcb-bot-message-container", children: [f && c("div", { style: { backgroundImage: `url("${(i = s.botBubble) == null ? void 0 : i.avatar}")` }, className: "rcb-message-bot-avatar" }), d ? c("div", { style: w, className: `${h} ${u}`, children: p }) : c(_, { children: p })] });
|
|
609
|
-
}, gn = () => {
|
|
610
|
-
var A, e, t;
|
|
611
|
-
const { settings: o } = O(), { styles: n } = G(), a = (A = o.botBubble) != null && A.animate ? "rcb-bot-message-entry" : "";
|
|
612
|
-
return c("div", { className: "rcb-bot-message-container", children: [((e = o.botBubble) == null ? void 0 : e.showAvatar) && c("div", { style: { backgroundImage: `url("${(t = o.botBubble) == null ? void 0 : t.avatar}")` }, className: "rcb-message-bot-avatar" }), c("div", { onMouseDown: (r) => {
|
|
613
|
-
r.preventDefault();
|
|
614
|
-
}, className: `rcb-bot-message ${a}`, children: c("div", { className: "rcb-typing-indicator", style: { ...n == null ? void 0 : n.rcbTypingIndicatorContainerStyle }, children: [c("span", { className: "rcb-dot", style: { ...n == null ? void 0 : n.rcbTypingIndicatorDotStyle } }), c("span", { className: "rcb-dot", style: { ...n == null ? void 0 : n.rcbTypingIndicatorDotStyle } }), c("span", { className: "rcb-dot", style: { ...n == null ? void 0 : n.rcbTypingIndicatorDotStyle } })] }) })] });
|
|
615
|
-
}, wn = ({ setChatScrollHeight: A }) => {
|
|
616
|
-
var e, t, o;
|
|
617
|
-
const { settings: n } = O(), { styles: a } = G(), { messages: r } = he(), { isChatWindowOpen: i } = BA(), { isBotTyping: s, isScrolling: l, setIsScrolling: d, setUnreadCount: g } = oA(), { chatBodyRef: p } = rA(), w = { ...a == null ? void 0 : a.bodyStyle, scrollbarWidth: (e = n.chatWindow) != null && e.showScrollbar ? "auto" : "none" };
|
|
618
|
-
return X(() => {
|
|
619
|
-
p.current && (A(p.current.scrollHeight), l || (p.current.scrollTop = p.current.scrollHeight));
|
|
620
|
-
}, [(t = p.current) == null ? void 0 : t.scrollHeight]), c("div", { style: w, className: "rcb-chat-body-container", ref: p, onScroll: () => {
|
|
621
|
-
var u, f;
|
|
622
|
-
if (!p.current) return;
|
|
623
|
-
A(p.current.scrollHeight);
|
|
624
|
-
const { scrollTop: h, clientHeight: v, scrollHeight: b } = p.current, P = h + v < b - (((u = n.chatWindow) == null ? void 0 : u.messagePromptOffset) ?? 30);
|
|
625
|
-
d(P), P || (h + v >= b - 1 && (p.current.scrollTop = b - v - 1), (i || (f = n.general) != null && f.embedded) && g(0));
|
|
626
|
-
}, children: [r.map((u, f) => {
|
|
627
|
-
const h = ((v) => v === 0 || r[v].sender !== r[v - 1].sender)(f);
|
|
628
|
-
return u.sender.toUpperCase() === "USER" ? c(dn, { message: u, isNewSender: h }, f) : u.sender.toUpperCase() === "BOT" ? c(fn, { message: u, isNewSender: h }, f) : c("div", { children: u.content }, f);
|
|
629
|
-
}), s && ((o = n.chatWindow) == null ? void 0 : o.showTypingIndicator) && c(gn, {}), c(an, {})] });
|
|
630
|
-
}, vn = ({ checkboxes: A, checkedItems: e, path: t }) => {
|
|
631
|
-
var o, n, a, r, i, s, l, d, g, p, w;
|
|
632
|
-
const { settings: u } = O(), { styles: f } = G(), { paths: h } = pe(), { handleSubmitText: v } = HA(), [b, P] = S(/* @__PURE__ */ new Set()), [m, B] = S(!1), y = { cursor: m ? `url("${(o = u.general) == null ? void 0 : o.actionDisabledIcon}"), auto` : "pointer", color: (n = u.general) == null ? void 0 : n.primaryColor, borderColor: (a = u.general) == null ? void 0 : a.primaryColor, ...f.botCheckboxRowStyle }, D = { cursor: m || b.size < A.min ? `url("${(r = u.general) == null ? void 0 : r.actionDisabledIcon}"), auto` : "pointer", color: (i = u.general) == null ? void 0 : i.primaryColor, borderColor: (s = u.general) == null ? void 0 : s.primaryColor, ...f.botCheckboxNextStyle }, U = { cursor: m ? `url("${(l = u.general) == null ? void 0 : l.actionDisabledIcon}"), auto` : "pointer", color: "transparent", ...f.botCheckMarkStyle }, T = { cursor: m ? `url("${(d = u.general) == null ? void 0 : d.actionDisabledIcon}"), auto` : "pointer", color: "#fff", borderColor: (g = u.general) == null ? void 0 : g.primaryColor, backgroundColor: (p = u.general) == null ? void 0 : p.primaryColor, ...f.botCheckMarkSelectedStyle };
|
|
633
|
-
return X(() => {
|
|
634
|
-
h.length > 0 && h[h.length - 1] !== t && B(!A.reusable);
|
|
635
|
-
}, [h]), c("div", { className: "rcb-checkbox-container " + ((w = u.botBubble) != null && w.showAvatar ? "rcb-checkbox-offset" : ""), children: [A.items.map((k) => c("div", { onMouseDown: (M) => {
|
|
636
|
-
M.preventDefault(), ((I) => {
|
|
637
|
-
m || P((x) => {
|
|
638
|
-
const E = new Set(x);
|
|
639
|
-
if (E.has(I)) e.delete(I), E.delete(I);
|
|
640
|
-
else {
|
|
641
|
-
if (b.size == A.max) return x;
|
|
642
|
-
e.add(I), E.add(I);
|
|
643
|
-
}
|
|
644
|
-
return E;
|
|
645
|
-
});
|
|
646
|
-
})(k);
|
|
647
|
-
}, style: y, className: "rcb-checkbox-row-container", children: c("div", { className: "rcb-checkbox-row", children: [c("div", { style: b.has(k) ? T : U, className: "rcb-checkbox-mark" }), c("div", { className: "rcb-checkbox-label", children: k })] }) }, k)), c("div", { style: D, className: "rcb-checkbox-next-button", onMouseDown: (k) => {
|
|
648
|
-
var M;
|
|
649
|
-
if (k.preventDefault(), m || b.size < A.min) return;
|
|
650
|
-
const I = Array.from(e).join(", ");
|
|
651
|
-
let x;
|
|
652
|
-
B(!A.reusable), x = A.sendOutput != null ? A.sendOutput : ((M = u.chatInput) == null ? void 0 : M.sendCheckboxOutput) ?? !0, v(I, x);
|
|
653
|
-
} })] });
|
|
654
|
-
}, pn = async (A, e) => {
|
|
655
|
-
const t = A.checkboxes;
|
|
656
|
-
if (!t) return;
|
|
657
|
-
let o;
|
|
658
|
-
if (typeof t == "function" ? (o = t(e), o instanceof Promise && (o = await o)) : o = t, Array.isArray(o) && (o = { items: o }), !("items" in o) || o.items.length == 0) return;
|
|
659
|
-
o.min == null && (o.min = 1), o.max == null && (o.max = o.items.length), o.min > o.max && (o.min = o.max), o.reusable == null && (o.reusable = !1);
|
|
660
|
-
const n = /* @__PURE__ */ new Set(), a = e.currPath, r = c(vn, { checkboxes: o, checkedItems: n, path: a });
|
|
661
|
-
await e.injectMessage(r);
|
|
662
|
-
}, hn = async (A, e) => {
|
|
663
|
-
const t = A.function;
|
|
664
|
-
if (!t) return;
|
|
665
|
-
const o = t(e);
|
|
666
|
-
return o instanceof Promise ? await o : o;
|
|
667
|
-
}, bn = async (A, e, t) => {
|
|
668
|
-
const o = A.message;
|
|
669
|
-
if (!o) return;
|
|
670
|
-
if (typeof o == "string") return void (o.trim() !== "" && (t ? await e.simulateStreamMessage(o) : await e.injectMessage(o)));
|
|
671
|
-
let n = o(e);
|
|
672
|
-
n instanceof Promise && (n = await n), n && n.trim() !== "" && (t ? await e.simulateStreamMessage(n) : await e.injectMessage(n));
|
|
673
|
-
}, mn = ({ options: A, path: e }) => {
|
|
674
|
-
var t, o, n, a, r, i;
|
|
675
|
-
const { settings: s } = O(), { styles: l } = G(), { paths: d } = pe(), { handleSubmitText: g } = HA(), [p, w] = S([]), [u, f] = S(!1), h = { cursor: u ? `url("${(t = s.general) == null ? void 0 : t.actionDisabledIcon}"), auto` : "pointer", color: (o = s.general) == null ? void 0 : o.primaryColor, borderColor: (n = s.general) == null ? void 0 : n.primaryColor, backgroundColor: "#fff", ...l.botOptionStyle }, v = { color: "#fff", borderColor: (a = s.general) == null ? void 0 : a.primaryColor, backgroundColor: (r = s.general) == null ? void 0 : r.primaryColor, ...l.botOptionHoveredStyle };
|
|
676
|
-
return X(() => {
|
|
677
|
-
d.length > 0 && d[d.length - 1] !== e && f(!A.reusable);
|
|
678
|
-
}, [d]), c("div", { className: "rcb-options-container " + ((i = s.botBubble) != null && i.showAvatar ? "rcb-options-offset" : ""), children: A.items.map((b, P) => {
|
|
679
|
-
const m = p[P] && !u;
|
|
680
|
-
return c("div", { className: "rcb-options", style: m ? v : h, onMouseEnter: () => ((B) => {
|
|
681
|
-
w((y) => {
|
|
682
|
-
const D = [...y];
|
|
683
|
-
return D[B] = !0, D;
|
|
684
|
-
});
|
|
685
|
-
})(P), onMouseLeave: () => ((B) => {
|
|
686
|
-
w((y) => {
|
|
687
|
-
const D = [...y];
|
|
688
|
-
return D[B] = !1, D;
|
|
689
|
-
});
|
|
690
|
-
})(P), onMouseDown: (B) => {
|
|
691
|
-
var y;
|
|
692
|
-
if (B.preventDefault(), u) return;
|
|
693
|
-
let D;
|
|
694
|
-
f(!A.reusable), D = A.sendOutput != null ? A.sendOutput : ((y = s.chatInput) == null ? void 0 : y.sendOptionOutput) ?? !0, g(b, D);
|
|
695
|
-
}, children: b }, b);
|
|
696
|
-
}) });
|
|
697
|
-
}, Bn = async (A, e) => {
|
|
698
|
-
const t = A.options;
|
|
699
|
-
if (!t) return;
|
|
700
|
-
let o;
|
|
701
|
-
if (typeof t == "function" ? (o = t(e), o instanceof Promise && (o = await o)) : o = t, Array.isArray(o) && (o = { items: o }), !("items" in o) || o.items.length == 0) return;
|
|
702
|
-
o.reusable == null && (o.reusable = !1);
|
|
703
|
-
const n = e.currPath, a = c(mn, { options: o, path: n });
|
|
704
|
-
await e.injectMessage(a);
|
|
705
|
-
}, yn = async (A, e) => {
|
|
706
|
-
const t = A.component;
|
|
707
|
-
if (t) {
|
|
708
|
-
if (typeof t == "function") {
|
|
709
|
-
let o = t(e);
|
|
710
|
-
return o instanceof Promise && (o = await o), o ? void await e.injectMessage(o) : void 0;
|
|
711
|
-
}
|
|
712
|
-
await e.injectMessage(t);
|
|
713
|
-
}
|
|
714
|
-
}, Pn = async (A, e, t) => {
|
|
715
|
-
const o = e.currPath, n = A[o];
|
|
716
|
-
if (!n) throw new Error("block is not valid.");
|
|
717
|
-
const a = n.transition;
|
|
718
|
-
let r;
|
|
719
|
-
if (typeof a == "function" ? (r = a(e), r instanceof Promise && (r = await r)) : r = a, typeof r == "number" && (r = { duration: r }), !r || r instanceof Promise || r.duration == null || typeof r.duration != "number") return;
|
|
720
|
-
r.interruptable == null && (r.interruptable = !1);
|
|
721
|
-
const i = setTimeout(async () => {
|
|
722
|
-
await jt(A, e);
|
|
723
|
-
}, r.duration);
|
|
724
|
-
r.interruptable && t(i);
|
|
725
|
-
}, Dn = async (A, e, t) => {
|
|
726
|
-
const o = A.chatDisabled;
|
|
727
|
-
if (o == null) return;
|
|
728
|
-
let n;
|
|
729
|
-
typeof o == "function" ? (n = o(e), n instanceof Promise && (n = await n)) : n = o, t(n);
|
|
730
|
-
}, Nt = async (A, e, t) => {
|
|
731
|
-
const o = A.isSensitive;
|
|
732
|
-
if (!o) return void t(!1);
|
|
733
|
-
let n;
|
|
734
|
-
typeof o == "function" ? (n = o(e), n instanceof Promise && (n = await n)) : n = o, t(n);
|
|
735
|
-
}, jt = async (A, e) => {
|
|
736
|
-
const t = A[e.currPath];
|
|
737
|
-
if (!t) throw new Error("Block is not valid.");
|
|
738
|
-
const o = Object.keys(t);
|
|
739
|
-
for (const n of o) n === "function" && await hn(t, e);
|
|
740
|
-
return !!o.includes("path") && await (async (n, a) => {
|
|
741
|
-
const r = n.path;
|
|
742
|
-
if (!r) return !1;
|
|
743
|
-
if (typeof r == "string") return await a.goToPath(r), !0;
|
|
744
|
-
let i = r(a);
|
|
745
|
-
if (i instanceof Promise && (i = await i), !i) return !1;
|
|
746
|
-
const s = i;
|
|
747
|
-
return await a.goToPath(s), !0;
|
|
748
|
-
})(t, e);
|
|
749
|
-
}, En = () => {
|
|
750
|
-
var A;
|
|
751
|
-
const { settings: e } = O(), { styles: t } = G();
|
|
752
|
-
return c("div", { className: "rcb-line-break-container", children: c("div", { style: { ...t.chatHistoryLineBreakStyle }, className: "rcb-line-break-text", "data-testid": "chat-history-line-break-text", children: (A = e.chatHistory) == null ? void 0 : A.chatHistoryLineBreakText }) });
|
|
753
|
-
}, Qn = () => {
|
|
754
|
-
var A;
|
|
755
|
-
const { settings: e } = O(), { styles: t } = G(), o = { borderTop: `4px solid ${(A = e.general) == null ? void 0 : A.primaryColor}`, ...t.loadingSpinnerStyle };
|
|
756
|
-
return c("div", { className: "rcb-spinner-container", children: c("div", { style: o, className: "rcb-spinner" }) });
|
|
757
|
-
}, qA = () => {
|
|
758
|
-
try {
|
|
759
|
-
if (typeof crypto < "u" && typeof crypto.randomUUID == "function") return crypto.randomUUID();
|
|
760
|
-
throw new Error("crypto.randomUUID not available");
|
|
761
|
-
} catch (A) {
|
|
762
|
-
if (typeof crypto < "u" && typeof crypto.getRandomValues == "function") return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {
|
|
763
|
-
const t = crypto.getRandomValues(new Uint8Array(1))[0] % 16;
|
|
764
|
-
return (e === "x" ? t : 3 & t | 8).toString(16);
|
|
765
|
-
});
|
|
766
|
-
throw console.error(A), new Error("crypto.getRandomValues is also not available");
|
|
767
|
-
}
|
|
768
|
-
}, EA = (A, e) => ({ id: qA(), content: A, sender: e, type: typeof A == "string" ? "string" : "object", timestamp: (/* @__PURE__ */ new Date()).toUTCString(), tags: [] });
|
|
769
|
-
let xA, Ut = !1, WA = "rcb-history", _A = 30, zt = !1, KA = [];
|
|
770
|
-
const oe = async (A) => {
|
|
771
|
-
if (zt || !xA) return;
|
|
772
|
-
const e = [], t = Ut ? KA.length : 0;
|
|
773
|
-
for (let n = A.length - 1; n >= t; n--) {
|
|
774
|
-
const a = A[n];
|
|
775
|
-
if (a.sender.toUpperCase() === "SYSTEM" || (a.content !== "" && e.unshift(a), e.length === _A)) break;
|
|
776
|
-
}
|
|
777
|
-
let o = e.map(kn);
|
|
778
|
-
if (o.length < _A) {
|
|
779
|
-
const n = _A - o.length;
|
|
780
|
-
o = [...KA.slice(-n), ...o];
|
|
781
|
-
}
|
|
782
|
-
Cn(o);
|
|
783
|
-
}, Ft = () => KA, Cn = (A) => {
|
|
784
|
-
xA && xA.setItem(WA, JSON.stringify(A));
|
|
785
|
-
}, xn = (A) => {
|
|
786
|
-
var e, t, o, n, a;
|
|
787
|
-
xA = ((t = (e = A.chatHistory) == null ? void 0 : e.storageType) == null ? void 0 : t.toUpperCase()) === "SESSION_STORAGE" ? sessionStorage : localStorage, WA = (o = A.chatHistory) == null ? void 0 : o.storageKey, _A = (n = A.chatHistory) == null ? void 0 : n.maxEntries, zt = (a = A.chatHistory) == null ? void 0 : a.disabled, KA = ((r) => {
|
|
788
|
-
if (r != null) try {
|
|
789
|
-
return JSON.parse(r);
|
|
790
|
-
} catch {
|
|
791
|
-
return [];
|
|
792
|
-
}
|
|
793
|
-
return [];
|
|
794
|
-
})(xA.getItem(WA));
|
|
795
|
-
}, kn = (A) => TA(A.content) ? structuredClone({ id: A.id, content: Xo.renderToString(A.content), type: A.type, sender: A.sender.toUpperCase(), timestamp: A.timestamp, tags: A.tags }) : A, Rt = (A, e, t) => {
|
|
796
|
-
const o = new DOMParser().parseFromString(A, "text/html");
|
|
797
|
-
return Array.from(o.body.childNodes).map((n, a) => {
|
|
798
|
-
var r;
|
|
799
|
-
if (n.nodeType === Node.TEXT_NODE) return n.textContent;
|
|
800
|
-
{
|
|
801
|
-
const i = n.tagName.toLowerCase();
|
|
802
|
-
let s = Array.from(n.attributes).reduce((l, d) => {
|
|
803
|
-
const g = d.name.toLowerCase();
|
|
804
|
-
if (g === "style") {
|
|
805
|
-
const p = d.value.split(";").filter((u) => u.trim() !== ""), w = {};
|
|
806
|
-
p.forEach((u) => {
|
|
807
|
-
const [f, h] = u.split(":").map((b) => b.trim()), v = f.replace(/-([a-z])/g, (b, P) => P.toUpperCase());
|
|
808
|
-
w[v] = h;
|
|
809
|
-
}), l[g] = w;
|
|
810
|
-
} else i !== "audio" && i !== "video" || g !== "controls" || d.value !== "" ? l[g] = d.value : l[g] = "true";
|
|
811
|
-
return l;
|
|
812
|
-
}, {});
|
|
813
|
-
if (Object.prototype.hasOwnProperty.call(s, "class")) {
|
|
814
|
-
const l = n.classList;
|
|
815
|
-
s.className = l.toString(), delete s.class, (r = e.botBubble) != null && r.showAvatar && (s = In(l, s)), s = Sn(l, s, e, t), s = Tn(l, s, e, t), s = Mn(l, s, e, t), s = Hn(l, s, e, t);
|
|
816
|
-
}
|
|
817
|
-
if (["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "source", "track", "wbr"].includes(i)) return N(i, { key: a, ...s });
|
|
818
|
-
{
|
|
819
|
-
const l = Rt(n.innerHTML, e, t);
|
|
820
|
-
return N(i, { key: a, ...s }, ...l);
|
|
821
|
-
}
|
|
822
|
-
}
|
|
823
|
-
});
|
|
824
|
-
}, In = (A, e) => ((A.contains("rcb-options-container") || A.contains("rcb-checkbox-container")) && (e.className = `${A.toString()} rcb-options-offset`), e), Sn = (A, e, t, o) => {
|
|
825
|
-
var n, a, r, i, s;
|
|
826
|
-
return A.contains("rcb-options") && (e.style = { ...e.style, color: ((n = o.botOptionStyle) == null ? void 0 : n.color) ?? ((a = t.general) == null ? void 0 : a.primaryColor), borderColor: ((r = o.botOptionStyle) == null ? void 0 : r.color) ?? ((i = t.general) == null ? void 0 : i.primaryColor), cursor: `url("${(s = t.general) == null ? void 0 : s.actionDisabledIcon}"), auto`, ...o.botOptionStyle }), e;
|
|
827
|
-
}, Tn = (A, e, t, o) => {
|
|
828
|
-
var n, a, r, i, s;
|
|
829
|
-
return A.contains("rcb-checkbox-row-container") && (e.style = { ...e.style, color: ((n = o.botCheckboxRowStyle) == null ? void 0 : n.color) ?? ((a = t.general) == null ? void 0 : a.primaryColor), borderColor: ((r = o.botCheckboxRowStyle) == null ? void 0 : r.color) ?? ((i = t.general) == null ? void 0 : i.primaryColor), cursor: `url("${(s = t.general) == null ? void 0 : s.actionDisabledIcon}"), auto`, ...o.botCheckboxRowStyle }), e;
|
|
830
|
-
}, Mn = (A, e, t, o) => {
|
|
831
|
-
var n, a, r, i, s;
|
|
832
|
-
return A.contains("rcb-checkbox-next-button") && (e.style = { ...e.style, color: ((n = o.botCheckboxNextStyle) == null ? void 0 : n.color) ?? ((a = t.general) == null ? void 0 : a.primaryColor), borderColor: ((r = o.botCheckboxNextStyle) == null ? void 0 : r.color) ?? ((i = t.general) == null ? void 0 : i.primaryColor), cursor: `url("${(s = t.general) == null ? void 0 : s.actionDisabledIcon}"), auto`, ...o.botCheckboxNextStyle }), e;
|
|
833
|
-
}, Hn = (A, e, t, o) => {
|
|
834
|
-
var n, a;
|
|
835
|
-
return (A.contains("rcb-media-display-image-container") || A.contains("rcb-media-display-video-container")) && (e.style = { ...e.style, backgroundColor: (n = t.general) == null ? void 0 : n.primaryColor, maxWidth: (a = t.userBubble) != null && a.showAvatar ? "65%" : "70%", ...o.mediaDisplayContainerStyle }), e;
|
|
836
|
-
}, _t = (A) => {
|
|
837
|
-
if (!A) return !1;
|
|
838
|
-
const e = A.getBoundingClientRect(), t = window.innerHeight ?? document.documentElement.clientHeight, o = window.innerWidth ?? document.documentElement.clientWidth;
|
|
839
|
-
return e.top >= 0 && e.left >= 0 && e.bottom <= t && e.right <= o;
|
|
840
|
-
}, be = () => {
|
|
841
|
-
const { settings: A } = O(), { notificationsToggledOn: e, setNotificationsToggledOn: t, hasInteractedPage: o, unreadCount: n, setUnreadCount: a } = oA(), { audioBufferRef: r, audioContextRef: i, gainNodeRef: s } = rA(), { callRcbEvent: l } = hA(), d = H(async () => {
|
|
842
|
-
var w, u;
|
|
843
|
-
const f = (w = A.notification) == null ? void 0 : w.sound;
|
|
844
|
-
i.current = new AudioContext();
|
|
845
|
-
const h = i.current.createGain();
|
|
846
|
-
let v;
|
|
847
|
-
if (h.gain.value = ((u = A.notification) == null ? void 0 : u.volume) ?? 0.2, s.current = h, f != null && f.startsWith("data:audio")) {
|
|
848
|
-
const b = atob(f.split(",")[1]), P = new ArrayBuffer(b.length), m = new Uint8Array(P);
|
|
849
|
-
for (let B = 0; B < b.length; B++) m[B] = b.charCodeAt(B);
|
|
850
|
-
v = P;
|
|
851
|
-
} else v = await (await fetch(f)).arrayBuffer();
|
|
852
|
-
r.current = await i.current.decodeAudioData(v);
|
|
853
|
-
}, [A.notification]), g = H(() => {
|
|
854
|
-
var w;
|
|
855
|
-
if ((w = A.notification) != null && w.disabled || !e || !o || !i.current || !r.current) return;
|
|
856
|
-
const u = i.current.createBufferSource();
|
|
857
|
-
u.buffer = r.current, u.connect(s.current).connect(i.current.destination), u.start();
|
|
858
|
-
}, [A.notification, e, o, i, r, s]), p = H(async () => {
|
|
859
|
-
var w;
|
|
860
|
-
(w = A.event) != null && w.rcbToggleNotifications && (await l(pt, { currState: e, newState: !e })).defaultPrevented || t((u) => !u);
|
|
861
|
-
}, [e]);
|
|
862
|
-
return { unreadCount: n, setUnreadCount: a, notificationsToggledOn: e, toggleNotifications: p, playNotificationSound: g, setUpNotifications: d };
|
|
863
|
-
}, On = (A, e) => {
|
|
864
|
-
var t, o, n, a;
|
|
865
|
-
((r, i, s, l, d) => {
|
|
866
|
-
if (!window.SpeechSynthesisUtterance) return void console.info("Speech Synthesis API is not supported in this environment.");
|
|
867
|
-
const g = new window.SpeechSynthesisUtterance();
|
|
868
|
-
g.text = r, g.lang = i, g.rate = l, g.volume = d;
|
|
869
|
-
let p = !1;
|
|
870
|
-
for (const w of s) if (window.speechSynthesis.getVoices().find((u) => {
|
|
871
|
-
if (u.name === w) return g.voice = u, window.speechSynthesis.speak(g), void (p = !0);
|
|
872
|
-
}), p) break;
|
|
873
|
-
p || window.speechSynthesis.speak(g);
|
|
874
|
-
})(e, (t = A.audio) == null ? void 0 : t.language, (o = A.audio) == null ? void 0 : o.voiceNames, (n = A.audio) == null ? void 0 : n.rate, (a = A.audio) == null ? void 0 : a.volume);
|
|
875
|
-
}, Gt = () => {
|
|
876
|
-
const { settings: A } = O(), { audioToggledOn: e, setAudioToggledOn: t } = oA(), { callRcbEvent: o } = hA(), n = H(async () => {
|
|
877
|
-
var r;
|
|
878
|
-
(r = A.event) != null && r.rcbToggleAudio && (await o(vt, { currState: e, newState: !e })).defaultPrevented || t((i) => !i);
|
|
879
|
-
}, [e]), a = H(async (r) => {
|
|
880
|
-
var i, s;
|
|
881
|
-
if ((i = A.audio) != null && i.disabled || !e) return;
|
|
882
|
-
let l = r;
|
|
883
|
-
if ((s = A.event) != null && s.rcbStartSpeakAudio) {
|
|
884
|
-
const d = await o(wt, { textToRead: l });
|
|
885
|
-
if (d.defaultPrevented) return;
|
|
886
|
-
l = d.data.textToRead;
|
|
887
|
-
}
|
|
888
|
-
On(A, l);
|
|
889
|
-
}, [A, e]);
|
|
890
|
-
return { audioToggledOn: e, speakAudio: a, toggleAudio: n };
|
|
891
|
-
}, $A = () => {
|
|
892
|
-
var A, e, t, o;
|
|
893
|
-
const { settings: n } = O(), { messages: a, setMessages: r } = he(), i = $(a);
|
|
894
|
-
X(() => {
|
|
895
|
-
i.current = a;
|
|
896
|
-
}, [a]);
|
|
897
|
-
const { audioToggledOn: s, isChatWindowOpen: l, isScrolling: d, setIsBotTyping: g, setUnreadCount: p } = oA(), { streamMessageMap: w, chatBodyRef: u } = rA(), { callRcbEvent: f } = hA(), { speakAudio: h } = Gt(), { playNotificationSound: v } = be(), b = H(async (T, k = "BOT", M = null) => {
|
|
898
|
-
var I, x, E, Q, C;
|
|
899
|
-
if (typeof T != "string") throw new Error("Content must be of type string to simulate stream.");
|
|
900
|
-
k = k.toUpperCase();
|
|
901
|
-
let L = EA(T, k);
|
|
902
|
-
if ((I = n.event) != null && I.rcbStartSimulateStreamMessage) {
|
|
903
|
-
const j = await f(yt, { message: L });
|
|
904
|
-
if (j.defaultPrevented) return null;
|
|
905
|
-
M = j.data.simulateStreamChunker ? j.data.simulateStreamChunker : M, L = j.data.message;
|
|
906
|
-
}
|
|
907
|
-
g(!1);
|
|
908
|
-
let z = 30;
|
|
909
|
-
z = (x = n.botBubble) != null && x.streamSpeed ? (E = n.botBubble) == null ? void 0 : E.streamSpeed : (Q = n.userBubble) == null ? void 0 : Q.streamSpeed;
|
|
910
|
-
const F = { ...L, content: "" };
|
|
911
|
-
r((j) => {
|
|
912
|
-
const J = [...j, F];
|
|
913
|
-
return D(J), J;
|
|
914
|
-
});
|
|
915
|
-
let R = L.content;
|
|
916
|
-
M && (R = M(R));
|
|
917
|
-
let W = 0;
|
|
918
|
-
const K = R.length, Z = new Promise((j) => {
|
|
919
|
-
const J = setInterval(() => {
|
|
920
|
-
if (W >= K) return clearInterval(J), void j();
|
|
921
|
-
r((aA) => {
|
|
922
|
-
const yA = [...aA];
|
|
923
|
-
for (let IA = yA.length - 1; IA >= 0; IA--) if (yA[IA].id === F.id) {
|
|
924
|
-
const UA = R[W];
|
|
925
|
-
UA && (F.content += UA, yA[IA] = F), W++;
|
|
926
|
-
break;
|
|
927
|
-
}
|
|
928
|
-
return yA;
|
|
929
|
-
});
|
|
930
|
-
}, z);
|
|
931
|
-
});
|
|
932
|
-
return p((j) => j + 1), await Z, oe(a), (C = n.event) != null && C.rcbStopSimulateStreamMessage && (await f(Pt, { message: L })).defaultPrevented, L.id;
|
|
933
|
-
}, [n, a, f]), P = H(async (T, k = "BOT") => {
|
|
934
|
-
var M, I, x;
|
|
935
|
-
k = k.toUpperCase();
|
|
936
|
-
let E = EA(T, k);
|
|
937
|
-
if ((M = n.event) != null && M.rcbPreInjectMessage) {
|
|
938
|
-
const Q = await f(mt, { message: E });
|
|
939
|
-
if (Q.defaultPrevented) return null;
|
|
940
|
-
E = Q.data.message;
|
|
941
|
-
}
|
|
942
|
-
return E.sender.toUpperCase() === "BOT" && (l || (I = n.general) != null && I.embedded) && typeof E.content == "string" && E.content.trim() !== "" && h(E.content), p((Q) => Q + 1), (x = n.event) != null && x.rcbPostInjectMessage && await f(Bt, { message: E }), r((Q) => {
|
|
943
|
-
const C = [...Q, E];
|
|
944
|
-
return D(C), C;
|
|
945
|
-
}), E.id;
|
|
946
|
-
}, [n, s, l, f]), m = H(async (T) => {
|
|
947
|
-
var k;
|
|
948
|
-
const M = i.current.find((I) => I.id === T);
|
|
949
|
-
return !M || (k = n.event) != null && k.rcbRemoveMessage && (await f(sn, { message: M })).defaultPrevented ? null : (r((I) => {
|
|
950
|
-
const x = I.filter((E) => E.id !== T);
|
|
951
|
-
return D(x), x;
|
|
952
|
-
}), p((I) => Math.max(I - 1, 0)), T);
|
|
953
|
-
}, [f, (A = n.event) == null ? void 0 : A.rcbRemoveMessage]), B = H(async (T, k = "BOT") => {
|
|
954
|
-
var M, I;
|
|
955
|
-
if (k = k.toUpperCase(), !w.current.has(k)) {
|
|
956
|
-
const E = EA(T, k);
|
|
957
|
-
return (M = n.event) != null && M.rcbStartStreamMessage && (await f(Dt, { message: E })).defaultPrevented ? null : (g(!1), r((Q) => {
|
|
958
|
-
const C = [...Q, E];
|
|
959
|
-
return D(C), [...Q, E];
|
|
960
|
-
}), w.current.set(k, E.id), p((Q) => Q + 1), E.id);
|
|
961
|
-
}
|
|
962
|
-
const x = { ...EA(T, k), id: w.current.get(k) };
|
|
963
|
-
return (I = n.event) != null && I.rcbChunkStreamMessage && (await f(Et, { message: x })).defaultPrevented ? null : (r((E) => {
|
|
964
|
-
const Q = [...E];
|
|
965
|
-
for (let C = Q.length - 1; C >= 0; C--) if (Q[C].id === x.id) {
|
|
966
|
-
Q[C] = x;
|
|
967
|
-
break;
|
|
968
|
-
}
|
|
969
|
-
return D(Q), Q;
|
|
970
|
-
}), w.current.get(k) ?? null);
|
|
971
|
-
}, [f, (e = n.event) == null ? void 0 : e.rcbChunkStreamMessage, (t = n.event) == null ? void 0 : t.rcbStartStreamMessage, w]), y = H(async (T = "BOT") => {
|
|
972
|
-
var k;
|
|
973
|
-
if (T = T.toUpperCase(), !w.current.has(T)) return !0;
|
|
974
|
-
const M = w.current.get(T), I = i.current.find((x) => x.id === M);
|
|
975
|
-
return ((k = n.event) == null || !k.rcbStopStreamMessage || !(await f(Qt, { messageToEndStreamFor: I })).defaultPrevented) && (w.current.delete(T), oe(i.current), !0);
|
|
976
|
-
}, [f, (o = n.event) == null ? void 0 : o.rcbStopStreamMessage, w]), D = (T) => {
|
|
977
|
-
var k, M;
|
|
978
|
-
oe(T);
|
|
979
|
-
let I = !0;
|
|
980
|
-
(T.length === 0 || l && !d) && (I = !1), (k = n.general) != null && k.embedded && _t(u.current) && (I = !1);
|
|
981
|
-
const x = T[T.length - 1];
|
|
982
|
-
(!x || x.sender.toUpperCase() === "USER") && (I = !1), I && v(), ((M = n.chatWindow) != null && M.autoJumpToBottom || !d) && setTimeout(() => {
|
|
983
|
-
u != null && u.current && (u.current.scrollTop = u.current.scrollHeight);
|
|
984
|
-
}, 1);
|
|
985
|
-
}, U = H((T) => {
|
|
986
|
-
D(T), r(T);
|
|
987
|
-
}, [D]);
|
|
988
|
-
return { endStreamMessage: y, injectMessage: P, removeMessage: m, simulateStreamMessage: b, streamMessage: B, messages: a, replaceMessages: U };
|
|
989
|
-
};
|
|
990
|
-
let ne, gA, GA, CA = !1, vA = null;
|
|
991
|
-
const me = () => {
|
|
992
|
-
if (!ne) {
|
|
993
|
-
const A = window.SpeechRecognition || window.webkitSpeechRecognition;
|
|
994
|
-
ne = A != null ? new A() : null;
|
|
995
|
-
}
|
|
996
|
-
return ne;
|
|
997
|
-
}, Ln = (A, e, t, o, n, a) => {
|
|
998
|
-
var r, i, s;
|
|
999
|
-
const l = me();
|
|
1000
|
-
if (!l) return;
|
|
1001
|
-
if (!CA) try {
|
|
1002
|
-
CA = !0, l.lang = (r = A.voice) == null ? void 0 : r.language, l.start();
|
|
1003
|
-
} catch {
|
|
1004
|
-
}
|
|
1005
|
-
const d = (i = A.voice) == null ? void 0 : i.timeoutPeriod, g = (s = A.voice) == null ? void 0 : s.autoSendPeriod;
|
|
1006
|
-
l.onresult = (p) => {
|
|
1007
|
-
var w, u;
|
|
1008
|
-
clearTimeout(gA), gA = null, clearTimeout(GA);
|
|
1009
|
-
const f = p.results[p.results.length - 1][0].transcript;
|
|
1010
|
-
if (a.current) {
|
|
1011
|
-
const h = (w = A.chatInput) == null ? void 0 : w.characterLimit, v = a.current.value + f;
|
|
1012
|
-
h != null && h >= 0 && v.length > h ? o(v.slice(0, h)) : o(v), n(a.current.value.length);
|
|
1013
|
-
}
|
|
1014
|
-
d && (gA = setTimeout(async () => await re(e, a), d)), (u = A.voice) != null && u.autoSendDisabled || (GA = setTimeout(t, g));
|
|
1015
|
-
}, l.onend = () => {
|
|
1016
|
-
CA ? (l.start(), !gA && d && (gA = setTimeout(async () => await re(e, a), d))) : (clearTimeout(gA), gA = null, clearTimeout(GA));
|
|
1017
|
-
}, d && (gA = setTimeout(async () => await re(e, a), d));
|
|
1018
|
-
}, Nn = (A, e) => {
|
|
1019
|
-
navigator.mediaDevices.getUserMedia({ audio: !0 }).then((t) => {
|
|
1020
|
-
if (vA = new MediaRecorder(t), !CA) try {
|
|
1021
|
-
CA = !0, vA.start();
|
|
1022
|
-
} catch {
|
|
1023
|
-
}
|
|
1024
|
-
vA.ondataavailable = (o) => {
|
|
1025
|
-
e.current && e.current.push(o.data);
|
|
1026
|
-
}, vA.onstop = () => {
|
|
1027
|
-
A(), t.getTracks().forEach((o) => o.stop());
|
|
1028
|
-
};
|
|
1029
|
-
}).catch((t) => {
|
|
1030
|
-
console.error("Unable to use microphone:", t);
|
|
1031
|
-
});
|
|
1032
|
-
}, Be = () => {
|
|
1033
|
-
const A = me();
|
|
1034
|
-
A && (CA = !1, A && A.stop(), vA && vA.state !== "inactive" && (vA.stop(), vA = null), clearTimeout(gA), gA = null, clearTimeout(GA));
|
|
1035
|
-
}, re = async (A, e) => {
|
|
1036
|
-
var t;
|
|
1037
|
-
(t = e.current) != null && t.disabled || await A(), Be();
|
|
1038
|
-
}, ye = () => {
|
|
1039
|
-
const { settings: A } = O(), { voiceToggledOn: e, setVoiceToggledOn: t } = oA(), { callRcbEvent: o } = hA(), n = H(async () => {
|
|
1040
|
-
var r;
|
|
1041
|
-
(r = A.event) != null && r.rcbToggleVoice && (await o(ht, { currState: e, newState: !e })).defaultPrevented || t((i) => !i);
|
|
1042
|
-
}, [e]), a = H((r) => {
|
|
1043
|
-
((i, s) => {
|
|
1044
|
-
var l, d, g;
|
|
1045
|
-
const p = me();
|
|
1046
|
-
(l = s.voice) != null && l.disabled || (d = s.chatInput) == null || !d.blockSpam || !p || (i && !CA ? (CA = !0, (g = s.voice) != null && g.sendAsAudio ? vA == null || vA.start() : p.start()) : i || Be());
|
|
1047
|
-
})(r, A);
|
|
1048
|
-
}, [A]);
|
|
1049
|
-
return { voiceToggledOn: e, toggleVoice: n, syncVoice: a };
|
|
1050
|
-
}, MA = () => {
|
|
1051
|
-
const { settings: A } = O(), { inputLength: e, setInputLength: t, textAreaDisabled: o, setTextAreaDisabled: n, textAreaSensitiveMode: a, setTextAreaSensitiveMode: r } = oA(), { inputRef: i, chatBodyRef: s, prevInputRef: l } = rA(), { callRcbEvent: d } = hA(), g = H(async (b) => {
|
|
1052
|
-
var P, m, B;
|
|
1053
|
-
if (o && i.current) i.current.value = "";
|
|
1054
|
-
else if (i.current && l.current !== null) {
|
|
1055
|
-
const y = (P = A.chatInput) == null ? void 0 : P.characterLimit, D = (m = A.chatInput) != null && m.allowNewline ? b : b.replace(/\n/g, " ");
|
|
1056
|
-
if (y != null && y >= 0 && D.length > y ? i.current.value = D.slice(0, y) : i.current.value = D, (B = A.event) != null && B.rcbTextAreaChangeValue && (await d(Tt, { currValue: i.current.value, prevValue: l.current })).defaultPrevented) return void (i.current.value = l.current);
|
|
1057
|
-
l.current = i.current.value;
|
|
1058
|
-
}
|
|
1059
|
-
}, [o, i, l, A, d]), p = H((b) => {
|
|
1060
|
-
var P;
|
|
1061
|
-
(P = i.current) != null && P.disabled || setTimeout(() => {
|
|
1062
|
-
var m, B, y;
|
|
1063
|
-
(m = A.general) != null && m.embedded ? _t(s == null ? void 0 : s.current) && ((B = i.current) == null || B.focus()) : b !== "start" && ((y = i.current) == null || y.focus());
|
|
1064
|
-
}, 100);
|
|
1065
|
-
}, []), w = H(() => {
|
|
1066
|
-
!o && i.current && i.current.focus();
|
|
1067
|
-
}, [o]), u = H(() => {
|
|
1068
|
-
i.current && i.current.blur();
|
|
1069
|
-
}, []), f = H(() => i && i.current ? i.current.value : "", []), h = H(() => {
|
|
1070
|
-
n((b) => !b);
|
|
1071
|
-
}, []), v = H(() => {
|
|
1072
|
-
r((b) => !b);
|
|
1073
|
-
}, []);
|
|
1074
|
-
return { textAreaDisabled: o, setTextAreaDisabled: n, textAreaSensitiveMode: a, setTextAreaSensitiveMode: r, inputLength: e, setInputLength: t, getTextAreaValue: f, setTextAreaValue: g, updateTextAreaFocus: p, focusTextArea: w, blurTextArea: u, toggleTextAreaDisabled: h, toggleTextAreaSensitiveMode: v };
|
|
1075
|
-
}, Yt = mA({ toasts: [], setToasts: () => null }), Xt = () => pA(Yt), jn = ({ children: A }) => {
|
|
1076
|
-
const [e, t] = S([]);
|
|
1077
|
-
return c(Yt.Provider, { value: { toasts: e, setToasts: t }, children: A });
|
|
1078
|
-
}, Ae = () => {
|
|
1079
|
-
const { settings: A } = O(), { toasts: e, setToasts: t } = Xt(), { callRcbEvent: o } = hA(), n = $(e);
|
|
1080
|
-
X(() => {
|
|
1081
|
-
n.current = e;
|
|
1082
|
-
}, [e]);
|
|
1083
|
-
const a = H(async (s, l) => {
|
|
1084
|
-
var d, g, p, w;
|
|
1085
|
-
let u = null;
|
|
1086
|
-
if (n.current.length >= (((d = A.toast) == null ? void 0 : d.maxCount) ?? 3)) {
|
|
1087
|
-
if ((g = A.toast) != null && g.forbidOnMax) return null;
|
|
1088
|
-
u = qA();
|
|
1089
|
-
let h = { id: u, content: s, timeout: l };
|
|
1090
|
-
if ((p = A.event) != null && p.rcbShowToast) {
|
|
1091
|
-
const v = await o(de, { toast: h });
|
|
1092
|
-
if (v.defaultPrevented) return null;
|
|
1093
|
-
h = v.data.toast;
|
|
1094
|
-
}
|
|
1095
|
-
return t((v) => [...v.slice(1), h]), u;
|
|
1096
|
-
}
|
|
1097
|
-
u = qA();
|
|
1098
|
-
let f = { id: u, content: s, timeout: l };
|
|
1099
|
-
if ((w = A.event) != null && w.rcbShowToast) {
|
|
1100
|
-
const h = await o(de, { toast: f });
|
|
1101
|
-
if (h.defaultPrevented) return null;
|
|
1102
|
-
f = h.data.toast;
|
|
1103
|
-
}
|
|
1104
|
-
return t((h) => [...h, f]), u;
|
|
1105
|
-
}, [A, o, t]), r = H(async (s) => {
|
|
1106
|
-
var l;
|
|
1107
|
-
const d = e.find((g) => g.id === s);
|
|
1108
|
-
return !d || (l = A.event) != null && l.rcbDismissToast && (await o(kt, { toast: d })).defaultPrevented ? null : (t((g) => g.filter((p) => p.id !== s)), s);
|
|
1109
|
-
}, [o, t]), i = H((s) => {
|
|
1110
|
-
t(s);
|
|
1111
|
-
}, []);
|
|
1112
|
-
return { showToast: a, dismissToast: r, toasts: e, replaceToasts: i };
|
|
1113
|
-
}, HA = () => {
|
|
1114
|
-
var A, e, t, o;
|
|
1115
|
-
const { settings: n } = O(), { endStreamMessage: a, injectMessage: r, removeMessage: i, simulateStreamMessage: s, streamMessage: l } = $A(), { getCurrPath: d, getPrevPath: g, goToPath: p } = ZA(), { timeoutId: w, voiceToggledOn: u, setTextAreaSensitiveMode: f, textAreaSensitiveMode: h, setTextAreaDisabled: v, setIsBotTyping: b, setBlockAllowsAttachment: P, setInputLength: m } = oA(), { flowRef: B, chatBodyRef: y, inputRef: D, keepVoiceOnRef: U, paramsInputRef: T } = rA(), { showToast: k, dismissToast: M } = Ae(), { callRcbEvent: I } = hA(), { syncVoice: x } = ye(), { setTextAreaValue: E } = MA(), { openChat: Q } = BA(), C = H(async (z) => {
|
|
1116
|
-
var F, R, W, K, Z, j;
|
|
1117
|
-
const J = d();
|
|
1118
|
-
if (J && B.current[J]) {
|
|
1119
|
-
if (h) {
|
|
1120
|
-
if ((F = n == null ? void 0 : n.sensitiveInput) != null && F.hideInUserBubble) return;
|
|
1121
|
-
if ((R = n == null ? void 0 : n.sensitiveInput) != null && R.maskInUserBubble) return void ((W = n.userBubble) != null && W.simulateStream ? await s("*".repeat(((K = n.sensitiveInput) == null ? void 0 : K.asterisksCount) ?? 10), "USER") : await r("*".repeat(((Z = n.sensitiveInput) == null ? void 0 : Z.asterisksCount) ?? 10), "USER"));
|
|
1122
|
-
}
|
|
1123
|
-
(j = n.userBubble) != null && j.simulateStream ? await s(z, "USER") : await r(z, "USER");
|
|
1124
|
-
}
|
|
1125
|
-
}, [B, d, n, r, h]), L = H(async (z, F, R = !0) => {
|
|
1126
|
-
var W, K;
|
|
1127
|
-
(F = F.trim()) !== "" && (R && await C(F), w && clearTimeout(w), T.current = F, y.current && (y.current.scrollTop = y.current.scrollHeight), D.current && (E(""), m(0)), (W = n.chatInput) != null && W.blockSpam && v(!0), U.current = u, x(!1), setTimeout(() => {
|
|
1128
|
-
b(!0);
|
|
1129
|
-
}, 400), f(!1), setTimeout(async () => {
|
|
1130
|
-
var Z;
|
|
1131
|
-
const j = { prevPath: g(), currPath: d(), goToPath: p, setTextAreaValue: E, userInput: F, injectMessage: r, simulateStreamMessage: s, streamMessage: l, removeMessage: i, endStreamMessage: a, openChat: Q, showToast: k, dismissToast: M };
|
|
1132
|
-
if (!await jt(B.current, j)) {
|
|
1133
|
-
const J = d();
|
|
1134
|
-
if (!J) return;
|
|
1135
|
-
const aA = B.current[J];
|
|
1136
|
-
if (!aA) return;
|
|
1137
|
-
aA.chatDisabled || v((Z = n.chatInput) == null ? void 0 : Z.disabled), Nt(aA, j, f), P(typeof aA.file == "function"), x(U.current), b(!1);
|
|
1138
|
-
}
|
|
1139
|
-
}, (K = n.chatInput) == null ? void 0 : K.botDelay));
|
|
1140
|
-
}, [w, (A = n.chatInput) == null ? void 0 : A.blockSpam, (e = n.chatInput) == null ? void 0 : e.botDelay, (t = n.chatInput) == null ? void 0 : t.disabled, U, u, x, C, g, d, p, r, l, i, a, Q, k, M, B]);
|
|
1141
|
-
return { handleSubmitText: H(async (z, F = !0) => {
|
|
1142
|
-
var R, W;
|
|
1143
|
-
if (z = z ?? ((R = D.current) == null ? void 0 : R.value), (W = n.event) != null && W.rcbUserSubmitText && (await I(It, { inputText: z, sendInChat: F })).defaultPrevented) return;
|
|
1144
|
-
const K = d();
|
|
1145
|
-
K && L(K, z, F);
|
|
1146
|
-
}, [I, d, L, D, (o = n.event) == null ? void 0 : o.rcbUserSubmitText]) };
|
|
1147
|
-
}, ee = () => {
|
|
1148
|
-
var A;
|
|
1149
|
-
const { settings: e } = O();
|
|
1150
|
-
return uA(() => {
|
|
1151
|
-
var t;
|
|
1152
|
-
if (typeof window > "u" || !window.navigator) return !1;
|
|
1153
|
-
if ((t = e.device) == null || !t.applyMobileOptimizations) return !0;
|
|
1154
|
-
const o = navigator.userAgent, n = !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(o), a = window.innerWidth >= 768;
|
|
1155
|
-
return n && a;
|
|
1156
|
-
}, [(A = e.device) == null ? void 0 : A.applyMobileOptimizations]);
|
|
1157
|
-
}, Un = ({ buttons: A }) => {
|
|
1158
|
-
var e, t, o, n, a, r, i, s, l, d, g;
|
|
1159
|
-
const p = ee(), { settings: w } = O(), { styles: u } = G(), { textAreaDisabled: f, textAreaSensitiveMode: h, inputLength: v, hasFlowStarted: b, setHasFlowStarted: P, setInputLength: m } = oA(), { inputRef: B } = rA(), [y, D] = S(!1), [U, T] = S(!1), { handleSubmitText: k } = HA(), { setTextAreaValue: M } = MA(), I = { boxSizing: p ? "content-box" : "border-box", ...u.chatInputAreaStyle }, x = { outline: f ? "" : "none", boxShadow: f ? "" : `0 0 5px ${(e = w.general) == null ? void 0 : e.primaryColor}`, boxSizing: p ? "content-box" : "border-box", ...u.chatInputAreaStyle, ...u.chatInputAreaFocusedStyle }, E = { cursor: `url("${(t = w.general) == null ? void 0 : t.actionDisabledIcon}"), auto`, caretColor: "transparent", boxSizing: p ? "content-box" : "border-box", ...u.chatInputAreaStyle, ...u.chatInputAreaDisabledStyle }, Q = { color: "#989898", ...u.characterLimitStyle }, C = { color: "#ff0000", ...u.characterLimitReachedStyle }, L = f ? (o = w.chatInput) == null ? void 0 : o.disabledPlaceholderText : (n = w.chatInput) == null ? void 0 : n.enabledPlaceholderText, z = () => {
|
|
1160
|
-
f || D(!0);
|
|
1161
|
-
}, F = () => {
|
|
1162
|
-
D(!1);
|
|
1163
|
-
}, R = () => {
|
|
1164
|
-
T(!0);
|
|
1165
|
-
}, W = () => {
|
|
1166
|
-
T(!1);
|
|
1167
|
-
}, K = async (j) => {
|
|
1168
|
-
var J;
|
|
1169
|
-
if (!U && j.key === "Enter") {
|
|
1170
|
-
if (j.shiftKey) return void ((J = w.chatInput) != null && J.allowNewline || j.preventDefault());
|
|
1171
|
-
j.preventDefault(), await k();
|
|
1172
|
-
}
|
|
1173
|
-
}, Z = (j) => {
|
|
1174
|
-
B.current && (M(j.target.value), m(B.current.value.length));
|
|
1175
|
-
};
|
|
1176
|
-
return c("div", { "aria-label": ((a = w.ariaLabel) == null ? void 0 : a.inputTextArea) ?? "input text area", role: "textbox", onMouseDown: (j) => {
|
|
1177
|
-
var J;
|
|
1178
|
-
j.stopPropagation(), !b && ((J = w.general) == null ? void 0 : J.flowStartTrigger) === "ON_CHATBOT_INTERACT" && P(!0);
|
|
1179
|
-
}, style: { ...u.chatInputContainerStyle }, className: "rcb-chat-input", children: [h && (r = w.sensitiveInput) != null && r.maskInTextArea ? c("input", { ref: B, type: "password", className: "rcb-chat-input-textarea", style: f ? E : y ? x : I, placeholder: L, onChange: Z, onKeyDown: K, onFocus: z, onBlur: F, onCompositionStart: R, onCompositionEnd: W }) : c("textarea", { ref: B, style: f ? E : y ? x : I, rows: 1, className: "rcb-chat-input-textarea", placeholder: L, onChange: Z, onKeyDown: K, onFocus: z, onBlur: F, onCompositionStart: R, onCompositionEnd: W }), c(_, { children: [A == null ? void 0 : A.map((j, J) => c(_, { children: j }, J)), ((i = w.chatInput) == null ? void 0 : i.showCharacterCount) && ((s = w.chatInput) == null ? void 0 : s.characterLimit) != null && ((l = w.chatInput) == null ? void 0 : l.characterLimit) > 0 && c("div", { className: "rcb-chat-input-char-counter", style: v >= ((d = w.chatInput) == null ? void 0 : d.characterLimit) ? C : Q, children: [v, "/", (g = w.chatInput) == null ? void 0 : g.characterLimit] })] })] });
|
|
1180
|
-
}, zn = ({ buttons: A }) => {
|
|
1181
|
-
var e;
|
|
1182
|
-
const { settings: t } = O(), { styles: o } = G();
|
|
1183
|
-
return c("div", { "data-testid": "chatbot-footer-container", style: { ...o.footerStyle }, className: "rcb-chat-footer-container", children: [c("div", { className: "rcb-chat-footer", children: A == null ? void 0 : A.map((n, a) => c(_, { children: n }, a)) }), c("span", { children: (e = t.footer) == null ? void 0 : e.text })] });
|
|
1184
|
-
}, Fn = () => {
|
|
1185
|
-
var A, e, t, o, n, a, r;
|
|
1186
|
-
const { settings: i } = O(), { styles: s } = G(), { unreadCount: l } = oA(), { isChatWindowOpen: d, toggleChatWindow: g } = BA(), p = { backgroundImage: `linear-gradient(to right, ${(A = i.general) == null ? void 0 : A.secondaryColor},
|
|
1187
|
-
${(e = i.general) == null ? void 0 : e.primaryColor})`, ...s.chatButtonStyle }, w = { backgroundImage: `url(${(t = i.chatButton) == null ? void 0 : t.icon})`, fill: "#fff", width: 75, height: 75, ...s.chatIconStyle };
|
|
1188
|
-
return c(_, { children: !((o = i.general) != null && o.embedded) && c("div", { "aria-label": ((n = i.ariaLabel) == null ? void 0 : n.chatButton) ?? "open chat", role: "button", style: p, className: "rcb-toggle-button " + (d ? "rcb-button-hide" : "rcb-button-show"), onClick: g, children: [(() => {
|
|
1189
|
-
var u;
|
|
1190
|
-
const f = (u = i.chatButton) == null ? void 0 : u.icon;
|
|
1191
|
-
return f && typeof f != "string" ? f && c("span", { className: "rcb-toggle-icon", children: c(f, { style: w }) }) : c("span", { className: "rcb-toggle-icon", style: w });
|
|
1192
|
-
})(), !((a = i.notification) != null && a.disabled) && ((r = i.notification) == null ? void 0 : r.showCount) && c("span", { style: { ...s.notificationBadgeStyle }, className: "rcb-badge", children: l })] }) });
|
|
1193
|
-
}, Rn = () => {
|
|
1194
|
-
var A, e, t, o;
|
|
1195
|
-
const n = ee(), { settings: a } = O(), { styles: r } = G(), { isChatWindowOpen: i, openChat: s } = BA(), [l, d] = S(!1), [g, p] = S(!1), [w, u] = S(0);
|
|
1196
|
-
X(() => {
|
|
1197
|
-
var v, b, P;
|
|
1198
|
-
const m = (v = a.tooltip) == null ? void 0 : v.mode;
|
|
1199
|
-
if (m === "ALWAYS") if (n) {
|
|
1200
|
-
let B;
|
|
1201
|
-
B = i ? (((b = r.chatWindowStyle) == null ? void 0 : b.width) ?? 375) - (((P = r.chatButtonStyle) == null ? void 0 : P.width) ?? 75) : 0, u(B), d(!0);
|
|
1202
|
-
} else d(!i);
|
|
1203
|
-
else m === "NEVER" ? d(!1) : m === "START" ? g ? d(!1) : (p(!0), d(!0)) : m === "CLOSE" && d(!i);
|
|
1204
|
-
}, [i]);
|
|
1205
|
-
const f = { transform: `translateX(-${w}px)`, right: (((A = r.chatButtonStyle) == null ? void 0 : A.width) ?? 75) + 40, bottom: 30, backgroundColor: (e = a.general) == null ? void 0 : e.secondaryColor, color: "#fff", ...r.tooltipStyle }, h = { borderColor: `transparent transparent transparent ${f.backgroundColor}` };
|
|
1206
|
-
return c(_, { children: !((t = a.general) != null && t.embedded) && c("div", { "data-testid": "chat-tooltip", style: f, className: "rcb-chat-tooltip " + (l ? "rcb-tooltip-show" : "rcb-tooltip-hide"), onClick: () => s(!0), children: [c("span", { children: (o = a.tooltip) == null ? void 0 : o.text }), c("span", { className: "rcb-chat-tooltip-tail", style: h })] }) });
|
|
1207
|
-
}, _n = ({ id: A, content: e, timeout: t }) => {
|
|
1208
|
-
var o, n;
|
|
1209
|
-
const { settings: a } = O(), { styles: r } = G(), [i] = S({ toastPromptStyle: { ...r.toastPromptStyle }, toastPromptHoveredStyle: { ...r.toastPromptHoveredStyle } }), { dismissToast: s } = Ae(), [l, d] = S(!1), g = { color: (o = a.general) == null ? void 0 : o.primaryColor, borderColor: (n = a.general) == null ? void 0 : n.primaryColor, ...i.toastPromptHoveredStyle };
|
|
1210
|
-
return X(() => {
|
|
1211
|
-
if (t) {
|
|
1212
|
-
const p = setTimeout(() => {
|
|
1213
|
-
s(A);
|
|
1214
|
-
}, t);
|
|
1215
|
-
return () => clearTimeout(p);
|
|
1216
|
-
}
|
|
1217
|
-
}, [A, s, t]), typeof e == "string" ? c("div", { onMouseEnter: () => {
|
|
1218
|
-
d(!0);
|
|
1219
|
-
}, onMouseLeave: () => {
|
|
1220
|
-
d(!1);
|
|
1221
|
-
}, style: l ? g : i.toastPromptStyle, onMouseDown: async (p) => {
|
|
1222
|
-
var w;
|
|
1223
|
-
(w = a.toast) != null && w.dismissOnClick && (p.preventDefault(), await s(A));
|
|
1224
|
-
}, className: "rcb-toast-prompt", children: e }) : c(_, { children: e });
|
|
1225
|
-
}, Gn = () => {
|
|
1226
|
-
var A, e, t, o;
|
|
1227
|
-
const { styles: n } = G(), { toasts: a } = Xt(), r = { bottom: (((A = n.footerStyle) == null ? void 0 : A.height) ?? 50) + (((e = n.chatInputContainerStyle) == null ? void 0 : e.height) ?? 70) + 20, width: 300, minWidth: (((t = n.chatWindowStyle) == null ? void 0 : t.width) ?? 375) / 2, maxWidth: (((o = n.chatWindowStyle) == null ? void 0 : o.width) ?? 375) - 50, ...n.toastPromptContainerStyle };
|
|
1228
|
-
return c("div", { className: "rcb-toast-prompt-container", style: r, children: a.map((i) => c(_n, { id: i.id, content: i.content, timeout: i.timeout }, i.id)) });
|
|
1229
|
-
}, qt = ({ file: A, fileType: e, fileUrl: t }) => {
|
|
1230
|
-
var o, n, a;
|
|
1231
|
-
const { settings: r } = O(), { styles: i } = G(), s = { backgroundColor: (o = r.general) == null ? void 0 : o.primaryColor, maxWidth: (n = r.userBubble) != null && n.showAvatar ? "65%" : "70%", ...i.mediaDisplayContainerStyle };
|
|
1232
|
-
return c(_, { children: t ? c(_, { children: [e === "image" && t && c("div", { style: s, className: "rcb-media-display-image-container rcb-media-entry", "data-testid": "media-display-image-container", children: c("img", { src: t, alt: "Image Display", className: "rcb-media-display-image" }) }), e === "video" && t && c("div", { style: s, className: "rcb-media-display-video-container rcb-media-entry", "data-testid": "media-display-video-container", children: c("video", { controls: !0, className: "rcb-media-display-video", children: [c("source", { src: t, type: A.type }), "Your browser does not support the video tag."] }) }), e === "audio" && t && c("audio", { "data-testid": "media-display-audio-container", style: { maxWidth: (a = r.userBubble) != null && a.showAvatar ? "65%" : "70%" }, controls: !0, className: "rcb-media-display-audio rcb-media-entry", children: [c("source", { src: t, type: A.type }), "Your browser does not support the audio tag."] })] }) : c(_, {}) });
|
|
1233
|
-
}, Wt = async (A) => {
|
|
1234
|
-
if (!A) return { fileType: null, fileUrl: null };
|
|
1235
|
-
const e = A.type.split("/")[0];
|
|
1236
|
-
if (!["image", "video", "audio"].includes(e)) return { fileType: null, fileUrl: null };
|
|
1237
|
-
try {
|
|
1238
|
-
return { fileType: e, fileUrl: await new Promise((t, o) => {
|
|
1239
|
-
const n = new FileReader();
|
|
1240
|
-
n.onload = () => t(n.result), n.onerror = () => o(new Error("File reading failed")), n.readAsDataURL(A);
|
|
1241
|
-
}) };
|
|
1242
|
-
} catch (t) {
|
|
1243
|
-
return console.error(t), { fileType: null, fileUrl: null };
|
|
1244
|
-
}
|
|
1245
|
-
}, Yn = () => {
|
|
1246
|
-
var A, e, t, o, n, a;
|
|
1247
|
-
const { settings: r } = O(), { styles: i } = G(), { injectMessage: s, simulateStreamMessage: l, streamMessage: d, removeMessage: g, endStreamMessage: p } = $A(), { getCurrPath: w, getPrevPath: u, goToPath: f, blockAllowsAttachment: h } = ZA(), { flowRef: v, inputRef: b } = rA(), P = v.current, { showToast: m, dismissToast: B } = Ae(), { callRcbEvent: y } = hA(), { openChat: D } = BA(), { setTextAreaValue: U } = MA(), { handleSubmitText: T } = HA(), k = { cursor: `url("${(A = r.general) == null ? void 0 : A.actionDisabledIcon}"), auto`, ...i.fileAttachmentButtonStyle, ...i.fileAttachmentButtonDisabledStyle }, M = { backgroundImage: `url(${(e = r.fileAttachment) == null ? void 0 : e.icon})`, fill: "#a6a6a6", ...i.fileAttachmentIconStyle }, I = { backgroundImage: `url(${(t = r.fileAttachment) == null ? void 0 : t.icon})`, fill: "#a6a6a6", ...i.fileAttachmentIconStyle, ...i.fileAttachmentIconDisabledStyle };
|
|
1248
|
-
return c("label", { "aria-label": ((o = r.ariaLabel) == null ? void 0 : o.fileAttachmentButton) ?? "upload file", role: "button", className: h ? "rcb-attach-button-enabled" : "rcb-attach-button-disabled", style: h ? { ...i.fileAttachmentButtonStyle } : k, children: [c("input", { className: "rcb-attach-input", role: "file", type: "file", onChange: async (x) => {
|
|
1249
|
-
var E, Q, C, L;
|
|
1250
|
-
const z = x.target.files;
|
|
1251
|
-
if (!z || (E = r.event) != null && E.rcbUserUploadFile && (await y(St, { files: z })).defaultPrevented) return;
|
|
1252
|
-
const F = w();
|
|
1253
|
-
if (!F) return;
|
|
1254
|
-
const R = P[F];
|
|
1255
|
-
if (!R) return;
|
|
1256
|
-
const W = R.file;
|
|
1257
|
-
if (W != null) {
|
|
1258
|
-
const K = [];
|
|
1259
|
-
for (let Z = 0; Z < z.length; Z++) {
|
|
1260
|
-
if (K.push(z[Z].name), (Q = r.fileAttachment) == null || !Q.showMediaDisplay) continue;
|
|
1261
|
-
const j = await Wt(z[Z]);
|
|
1262
|
-
!j.fileType || !j.fileUrl || await s(c(qt, { file: z[Z], fileType: j.fileType, fileUrl: j.fileUrl }), "USER");
|
|
1263
|
-
}
|
|
1264
|
-
await T("📄 " + K.join(", "), (C = r.fileAttachment) == null ? void 0 : C.sendFileName), await W({ userInput: (L = b.current) == null ? void 0 : L.value, prevPath: u(), currPath: w(), goToPath: f, setTextAreaValue: U, injectMessage: s, simulateStreamMessage: l, streamMessage: d, removeMessage: g, endStreamMessage: p, openChat: D, showToast: m, dismissToast: B, files: z });
|
|
1265
|
-
}
|
|
1266
|
-
}, multiple: (n = r.fileAttachment) == null ? void 0 : n.multiple, accept: (a = r.fileAttachment) == null ? void 0 : a.accept, disabled: !h }), (() => {
|
|
1267
|
-
var x, E;
|
|
1268
|
-
const Q = h ? (x = r.fileAttachment) == null ? void 0 : x.icon : (E = r.fileAttachment) == null ? void 0 : E.iconDisabled;
|
|
1269
|
-
return Q && typeof Q != "string" ? Q && c("span", { className: h ? "rcb-attach-icon-enabled" : "rcb-attach-icon-disabled", children: c(Q, { style: h ? M : I }) }) : c("span", { className: h ? "rcb-attach-icon-enabled" : "rcb-attach-icon-disabled", style: h ? M : I });
|
|
1270
|
-
})()] });
|
|
1271
|
-
}, Xn = () => {
|
|
1272
|
-
var A, e, t, o, n, a;
|
|
1273
|
-
const { settings: r } = O(), { styles: i } = G(), { inputRef: s } = rA(), { textAreaDisabled: l, setTextAreaValue: d } = MA(), g = $(null), p = $(null), [w, u] = S(!1), f = { cursor: `url("${(A = r.general) == null ? void 0 : A.actionDisabledIcon}"), auto`, ...i.emojiButtonStyle, ...i.emojiButtonDisabledStyle }, h = { backgroundImage: `url(${(e = r.emoji) == null ? void 0 : e.icon})`, fill: "#a6a6a6", ...i.emojiIconStyle }, v = { backgroundImage: `url(${(t = r.emoji) == null ? void 0 : t.icon})`, fill: "#a6a6a6", ...i.emojiIconStyle, ...i.emojiIconDisabledStyle };
|
|
1274
|
-
return X(() => {
|
|
1275
|
-
const b = (m) => {
|
|
1276
|
-
const B = m.composedPath();
|
|
1277
|
-
g.current && !B.includes(g.current) && p.current && !B.includes(p.current) && u(!1);
|
|
1278
|
-
}, P = () => {
|
|
1279
|
-
(() => {
|
|
1280
|
-
if (g.current && p.current) {
|
|
1281
|
-
const m = p.current.getBoundingClientRect(), B = g.current.offsetHeight, y = m.top - B - 8;
|
|
1282
|
-
g.current.style.left = `${m.left}px`, g.current.style.top = `${y}px`;
|
|
1283
|
-
}
|
|
1284
|
-
})();
|
|
1285
|
-
};
|
|
1286
|
-
return document.addEventListener("mousedown", b), window.addEventListener("resize", P), () => {
|
|
1287
|
-
document.removeEventListener("mousedown", b), window.removeEventListener("resize", P);
|
|
1288
|
-
};
|
|
1289
|
-
}, []), c(_, { children: [c("div", { "aria-label": ((o = r.ariaLabel) == null ? void 0 : o.emojiButton) ?? "emoji picker", role: "button", ref: p, className: l ? "rcb-emoji-button-disabled" : "rcb-emoji-button-enabled", style: l ? f : { ...i.emojiButtonStyle }, onMouseDown: (b) => {
|
|
1290
|
-
b.preventDefault(), u(!l && !w);
|
|
1291
|
-
}, children: (() => {
|
|
1292
|
-
var b, P;
|
|
1293
|
-
const m = l ? (b = r.emoji) == null ? void 0 : b.iconDisabled : (P = r.emoji) == null ? void 0 : P.icon;
|
|
1294
|
-
return m && typeof m != "string" ? m && c("span", { className: l ? "rcb-emoji-icon-disabled" : "rcb-emoji-icon-enabled", children: c(m, { style: l ? v : h }) }) : c("span", { className: l ? "rcb-emoji-icon-disabled" : "rcb-emoji-icon-enabled", style: l ? v : h });
|
|
1295
|
-
})() }), w && c("div", { className: "rcb-emoji-button-popup", ref: g, children: (a = (n = r.emoji) == null ? void 0 : n.list) == null ? void 0 : a.map((b, P) => c("span", { className: "rcb-emoji", onMouseDown: (m) => ((B, y) => {
|
|
1296
|
-
B.preventDefault(), s.current && (d(s.current.value + y), setTimeout(() => {
|
|
1297
|
-
const D = s.current;
|
|
1298
|
-
if (D) {
|
|
1299
|
-
D.focus();
|
|
1300
|
-
const U = D.value.length;
|
|
1301
|
-
D.setSelectionRange(U, U);
|
|
1302
|
-
}
|
|
1303
|
-
}, 50)), u(!1);
|
|
1304
|
-
})(m, b), children: b }, P)) })] });
|
|
1305
|
-
}, qn = () => {
|
|
1306
|
-
var A, e, t;
|
|
1307
|
-
const { settings: o } = O(), { styles: n } = G(), { audioToggledOn: a, toggleAudio: r } = Gt(), i = { backgroundImage: `url(${(A = o.audio) == null ? void 0 : A.icon})`, fill: "#fcec3d", ...n.audioIconStyle }, s = { backgroundImage: `url(${(e = o.audio) == null ? void 0 : e.iconDisabled})`, fill: "#e8eaed", ...n.audioIconStyle, ...n.audioIconDisabledStyle };
|
|
1308
|
-
return c("div", { "aria-label": ((t = o.ariaLabel) == null ? void 0 : t.audioButton) ?? "toggle audio", role: "button", onMouseDown: async (l) => {
|
|
1309
|
-
l.preventDefault(), await r();
|
|
1310
|
-
}, style: a ? { ...n.audioButtonStyle } : { ...n.audioButtonStyle, ...n.audioButtonDisabledStyle }, children: (() => {
|
|
1311
|
-
var l, d;
|
|
1312
|
-
const g = a ? (l = o.audio) == null ? void 0 : l.icon : (d = o.audio) == null ? void 0 : d.iconDisabled;
|
|
1313
|
-
return g && typeof g != "string" ? g && c("span", { className: "rcb-audio-icon", "data-testid": "rcb-audio-icon", children: c(g, { style: a ? i : s, "data-testid": "rcb-audio-icon-svg" }) }) : c("span", { className: "rcb-audio-icon", "data-testid": "rcb-audio-icon", style: a ? i : s });
|
|
1314
|
-
})() });
|
|
1315
|
-
}, Wn = () => {
|
|
1316
|
-
var A, e;
|
|
1317
|
-
const { settings: t } = O(), { styles: o } = G(), { openChat: n } = BA(), a = { backgroundImage: `url(${(A = t.header) == null ? void 0 : A.closeChatIcon})`, fill: "#e8eaed", stroke: "#e8eaed", ...o.closeChatIconStyle };
|
|
1318
|
-
return c("div", { "aria-label": ((e = t.ariaLabel) == null ? void 0 : e.closeChatButton) ?? "close chat", role: "button", onMouseDown: (r) => {
|
|
1319
|
-
r.stopPropagation(), n(!1);
|
|
1320
|
-
}, style: { ...o.closeChatButtonStyle }, children: (() => {
|
|
1321
|
-
var r;
|
|
1322
|
-
const i = (r = t.header) == null ? void 0 : r.closeChatIcon;
|
|
1323
|
-
return i && typeof i != "string" ? i && c("span", { className: "rcb-close-chat-icon", "data-testid": "rcb-close-chat-icon", children: c(i, { style: a }) }) : c("span", { className: "rcb-close-chat-icon", "data-testid": "rcb-close-chat-icon", style: a });
|
|
1324
|
-
})() });
|
|
1325
|
-
}, Kn = () => {
|
|
1326
|
-
var A, e, t;
|
|
1327
|
-
const { settings: o } = O(), { styles: n } = G(), { notificationsToggledOn: a, toggleNotifications: r } = (() => {
|
|
1328
|
-
const { notificationsToggledOn: l, toggleNotifications: d, playNotificationSound: g } = be();
|
|
1329
|
-
return { notificationsToggledOn: l, toggleNotifications: d, playNotificationSound: g };
|
|
1330
|
-
})(), i = { backgroundImage: `url(${(A = o.notification) == null ? void 0 : A.icon})`, fill: "#fcec3d", ...n.notificationIconStyle }, s = { backgroundImage: `url(${(e = o.notification) == null ? void 0 : e.iconDisabled})`, fill: "#e8eaed", ...n.notificationIconStyle, ...n.notificationIconDisabledStyle };
|
|
1331
|
-
return c("div", { "aria-label": ((t = o.ariaLabel) == null ? void 0 : t.notificationButton) ?? "toggle notifications", role: "button", onMouseDown: async (l) => {
|
|
1332
|
-
l.preventDefault(), await r();
|
|
1333
|
-
}, style: a ? { ...n.notificationButtonStyle } : { ...n.notificationButtonStyle, ...n.notificationButtonDisabledStyle }, children: (() => {
|
|
1334
|
-
var l, d;
|
|
1335
|
-
const g = a ? (l = o.notification) == null ? void 0 : l.icon : (d = o.notification) == null ? void 0 : d.iconDisabled;
|
|
1336
|
-
return g && typeof g != "string" ? g && c("span", { className: "rcb-notification-icon", "data-testid": "rcb-notification-icon", children: c(g, { style: a ? i : s, "data-testid": "rcb-notification-icon-svg" }) }) : c("span", { className: "rcb-notification-icon", "data-testid": "rcb-notification-icon", style: a ? i : s });
|
|
1337
|
-
})() });
|
|
1338
|
-
}, Jn = () => {
|
|
1339
|
-
var A, e, t;
|
|
1340
|
-
const { settings: o } = O(), { styles: n } = G(), { injectMessage: a } = $A(), { inputRef: r } = rA(), { voiceToggledOn: i, toggleVoice: s } = ye(), { setInputLength: l, setTextAreaValue: d, textAreaDisabled: g } = MA(), { handleSubmitText: p } = HA(), w = $([]), [u, f] = S(!1);
|
|
1341
|
-
X(() => {
|
|
1342
|
-
var m;
|
|
1343
|
-
(m = o.voice) != null && m.sendAsAudio ? (P(), w.current = []) : p();
|
|
1344
|
-
}, [u]), X(() => {
|
|
1345
|
-
i ? ((m, B, y, D, U, T, k) => {
|
|
1346
|
-
var M;
|
|
1347
|
-
(M = m.voice) != null && M.sendAsAudio ? Nn(y, T) : Ln(m, B, y, D, U, k);
|
|
1348
|
-
})(o, s, b, d, l, w, r) : Be();
|
|
1349
|
-
}, [i]);
|
|
1350
|
-
const h = { backgroundImage: `url(${(A = o.voice) == null ? void 0 : A.icon})`, fill: "#9aa0a6", ...n.voiceIconStyle }, v = { backgroundImage: `url(${(e = o.voice) == null ? void 0 : e.iconDisabled})`, fill: "#9aa0a6", ...n.voiceIconStyle, ...n.voiceIconDisabledStyle }, b = () => {
|
|
1351
|
-
f((m) => !m);
|
|
1352
|
-
}, P = async () => {
|
|
1353
|
-
const m = new Blob(w.current, { type: "audio/wav" }), B = new File([m], "voice-input.wav", { type: "audio/wav" }), y = await Wt(B);
|
|
1354
|
-
!y.fileType || !y.fileUrl || await a(c(qt, { file: B, fileType: y.fileType, fileUrl: y.fileUrl }), "USER");
|
|
1355
|
-
};
|
|
1356
|
-
return c("div", { "aria-label": ((t = o.ariaLabel) == null ? void 0 : t.voiceButton) ?? "toggle voice", role: "button", onMouseDown: async (m) => {
|
|
1357
|
-
m.preventDefault(), !g && await s();
|
|
1358
|
-
}, style: i && !g ? { ...n.voiceButtonStyle } : { ...n.voiceButtonStyle, ...n.voiceButtonDisabledStyle }, className: i && !g ? "rcb-voice-button-enabled" : "rcb-voice-button-disabled", children: (() => {
|
|
1359
|
-
var m, B;
|
|
1360
|
-
const y = i ? (m = o.voice) == null ? void 0 : m.icon : (B = o.voice) == null ? void 0 : B.iconDisabled;
|
|
1361
|
-
return y && typeof y != "string" ? y && c("span", { className: "rcb-voice-icon " + (i && !g ? "on" : ""), children: c(y, { style: i && !g ? h : v }) }) : c("span", { className: "rcb-voice-icon" + (i && !g ? "-on" : ""), "data-testid": "rcb-voice-icon", style: i && !g ? h : v });
|
|
1362
|
-
})() });
|
|
1363
|
-
}, Vn = () => {
|
|
1364
|
-
var A, e, t, o, n, a, r, i;
|
|
1365
|
-
const { settings: s } = O(), { styles: l } = G(), { textAreaDisabled: d } = oA(), [g, p] = S(!1), { handleSubmitText: w } = HA(), u = { backgroundColor: (A = s.general) == null ? void 0 : A.primaryColor, ...l.sendButtonStyle }, f = { cursor: `url("${(e = s.general) == null ? void 0 : e.actionDisabledIcon}"), auto`, backgroundColor: (t = s.general) == null ? void 0 : t.primaryColor, ...l.sendButtonStyle, ...l.sendButtonDisabledStyle }, h = { backgroundColor: (o = s.general) == null ? void 0 : o.secondaryColor, ...l.sendButtonStyle, ...l.sendButtonHoveredStyle }, v = { backgroundImage: `url(${(n = s.chatInput) == null ? void 0 : n.sendButtonIcon})`, fill: "#fff", ...l.sendIconStyle }, b = { backgroundImage: `url(${(a = s.chatInput) == null ? void 0 : a.sendButtonIcon})`, fill: "#fff", ...l.sendIconStyle, ...l.sendIconDisabledStyle }, P = { backgroundImage: `url(${(r = s.chatInput) == null ? void 0 : r.sendButtonIcon})`, fill: "#fff", ...l.sendIconStyle, ...l.sendIconHoveredStyle };
|
|
1366
|
-
return c("div", { "aria-label": ((i = s.ariaLabel) == null ? void 0 : i.sendButton) ?? "send message", role: "button", onMouseEnter: () => {
|
|
1367
|
-
p(!0);
|
|
1368
|
-
}, onMouseLeave: () => {
|
|
1369
|
-
p(!1);
|
|
1370
|
-
}, onMouseDown: async (m) => {
|
|
1371
|
-
m == null || m.preventDefault(), !d && await w();
|
|
1372
|
-
}, style: d ? f : g ? h : u, className: "rcb-send-button", children: (() => {
|
|
1373
|
-
var m;
|
|
1374
|
-
const B = (m = s.chatInput) == null ? void 0 : m.sendButtonIcon;
|
|
1375
|
-
return B && typeof B != "string" ? B && c("span", { className: "rcb-send-icon", "data-testid": "rcb-send-icon", children: c(B, { style: d ? b : g ? P : v }) }) : c("span", { className: "rcb-send-icon", "data-testid": "rcb-send-icon", style: d ? b : g ? P : v });
|
|
1376
|
-
})() });
|
|
1377
|
-
}, Zn = (A, e) => {
|
|
1378
|
-
var t, o, n, a, r, i, s, l, d;
|
|
1379
|
-
const g = { [V.AUDIO_BUTTON]: (t = A.audio) == null ? void 0 : t.disabled, [V.CLOSE_CHAT_BUTTON]: (o = A.general) == null ? void 0 : o.embedded, [V.EMOJI_PICKER_BUTTON]: (n = A.emoji) == null ? void 0 : n.disabled, [V.FILE_ATTACHMENT_BUTTON]: (a = A.fileAttachment) == null ? void 0 : a.disabled, [V.NOTIFICATION_BUTTON]: (r = A.notification) == null ? void 0 : r.disabled, [V.SEND_MESSAGE_BUTTON]: !1, [V.VOICE_MESSAGE_BUTTON]: (i = A.voice) == null ? void 0 : i.disabled }, p = {}, w = (u) => u ? u.map((f) => {
|
|
1380
|
-
if (typeof f == "string") {
|
|
1381
|
-
if (((h) => Object.values(V).includes(h))(f) && !g[f]) {
|
|
1382
|
-
if (p[f]) return p[f];
|
|
1383
|
-
const h = e[f];
|
|
1384
|
-
if (typeof h == "function") {
|
|
1385
|
-
const v = h();
|
|
1386
|
-
return p[f] = v, v;
|
|
1387
|
-
}
|
|
1388
|
-
return null;
|
|
1389
|
-
}
|
|
1390
|
-
return null;
|
|
1391
|
-
}
|
|
1392
|
-
return f;
|
|
1393
|
-
}).filter((f) => f !== null) : [];
|
|
1394
|
-
return { header: w((s = A.header) == null ? void 0 : s.buttons), chatInput: w((l = A.chatInput) == null ? void 0 : l.buttons), footer: w((d = A.footer) == null ? void 0 : d.buttons) };
|
|
1395
|
-
}, $n = () => {
|
|
1396
|
-
const { settings: A } = O(), e = uA(() => ({ [V.CLOSE_CHAT_BUTTON]: () => c(Wn, {}), [V.AUDIO_BUTTON]: () => c(qn, {}), [V.NOTIFICATION_BUTTON]: () => c(Kn, {}), [V.EMOJI_PICKER_BUTTON]: () => c(Xn, {}), [V.FILE_ATTACHMENT_BUTTON]: () => c(Yn, {}), [V.SEND_MESSAGE_BUTTON]: () => c(Vn, {}), [V.VOICE_MESSAGE_BUTTON]: () => c(Jn, {}) }), []), { header: t, chatInput: o, footer: n } = uA(() => Zn(A, e), [A, e]);
|
|
1397
|
-
return { headerButtons: uA(() => t, [t]), chatInputButtons: uA(() => o, [o]), footerButtons: uA(() => n, [n]) };
|
|
1398
|
-
}, Kt = () => {
|
|
1399
|
-
const { settings: A } = O(), { styles: e } = G(), { setMessages: t } = he(), { isLoadingChatHistory: o, setIsLoadingChatHistory: n, hasChatHistoryLoaded: a, setHasChatHistoryLoaded: r } = oA(), { chatBodyRef: i } = rA(), { callRcbEvent: s } = hA(), { chatScrollHeight: l } = BA(), d = H(async () => {
|
|
1400
|
-
var g;
|
|
1401
|
-
const p = Ft();
|
|
1402
|
-
p && ((g = A.event) != null && g.rcbLoadChatHistory && (await s(Ct, {})).defaultPrevented || (n(!0), ((w, u, f, h, v, b, P, m) => {
|
|
1403
|
-
var B;
|
|
1404
|
-
if (Ut = !0, f != null) try {
|
|
1405
|
-
h((D) => {
|
|
1406
|
-
const U = EA(c(Qn, {}), "SYSTEM");
|
|
1407
|
-
return D.shift(), [U, ...D];
|
|
1408
|
-
});
|
|
1409
|
-
const y = f.map((D) => {
|
|
1410
|
-
if (D.type === "object") {
|
|
1411
|
-
const U = Rt(D.content, w, u);
|
|
1412
|
-
return { ...D, content: U };
|
|
1413
|
-
}
|
|
1414
|
-
return D;
|
|
1415
|
-
});
|
|
1416
|
-
setTimeout(() => {
|
|
1417
|
-
h((D) => {
|
|
1418
|
-
var U;
|
|
1419
|
-
let T;
|
|
1420
|
-
return D.shift(), T = (U = w.chatHistory) != null && U.autoLoad ? EA(c(_, {}), "SYSTEM") : EA(c(En, {}), "SYSTEM"), [...y, T, ...D];
|
|
1421
|
-
}), m(!0);
|
|
1422
|
-
}, 500), setTimeout(() => {
|
|
1423
|
-
if (!v.current) return;
|
|
1424
|
-
const { scrollHeight: D } = v.current, U = D - b;
|
|
1425
|
-
v.current.scrollTop = v.current.scrollTop + U, P(!1);
|
|
1426
|
-
}, 510);
|
|
1427
|
-
} catch {
|
|
1428
|
-
xA.removeItem((B = w.chatHistory) == null ? void 0 : B.storageKey);
|
|
1429
|
-
}
|
|
1430
|
-
})(A, e, p, t, i, l, n, r)));
|
|
1431
|
-
}, [A, e, t]);
|
|
1432
|
-
return { isLoadingChatHistory: o, setIsLoadingChatHistory: n, hasChatHistoryLoaded: a, showChatHistory: d };
|
|
1433
|
-
}, Ar = () => {
|
|
1434
|
-
var A, e, t;
|
|
1435
|
-
const { settings: o } = O(), { styles: n } = G(), { showChatHistory: a } = Kt(), [r, i] = S(!1), s = { color: (A = o.general) == null ? void 0 : A.primaryColor, borderColor: (e = o.general) == null ? void 0 : e.primaryColor, ...n.chatHistoryButtonStyle, ...n.chatHistoryButtonHoveredStyle };
|
|
1436
|
-
return c("div", { className: "rcb-view-history-container", children: c("div", { onMouseEnter: () => {
|
|
1437
|
-
i(!0);
|
|
1438
|
-
}, onMouseLeave: () => {
|
|
1439
|
-
i(!1);
|
|
1440
|
-
}, style: r ? s : { ...n.chatHistoryButtonStyle }, onMouseDown: (l) => {
|
|
1441
|
-
l.preventDefault(), a();
|
|
1442
|
-
}, className: "rcb-view-history-button", role: "button", tabIndex: 0, children: c("p", { children: (t = o.chatHistory) == null ? void 0 : t.viewChatHistoryButtonText }) }) });
|
|
1443
|
-
}, er = () => {
|
|
1444
|
-
var A, e, t, o, n;
|
|
1445
|
-
const a = ee(), { settings: r } = O(), { endStreamMessage: i, injectMessage: s, removeMessage: l, simulateStreamMessage: d, streamMessage: g, replaceMessages: p } = $A(), { getCurrPath: w, getPrevPath: u, goToPath: f, paths: h } = ZA(), { showToast: v, dismissToast: b } = Ae(), { isBotTyping: P, isChatWindowOpen: m, isScrolling: B, hasFlowStarted: y, setIsChatWindowOpen: D, setTextAreaDisabled: U, setAudioToggledOn: T, setVoiceToggledOn: k, setIsBotTyping: M, setTextAreaSensitiveMode: I, setBlockAllowsAttachment: x, setTimeoutId: E } = oA(), { chatBodyRef: Q, flowRef: C, streamMessageMap: L, paramsInputRef: z, keepVoiceOnRef: F } = rA(), R = C.current, { viewportHeight: W, setViewportHeight: K, setViewportWidth: Z, openChat: j } = BA(), { setUpNotifications: J } = be(), { handleFirstInteraction: aA } = (() => {
|
|
1446
|
-
var q;
|
|
1447
|
-
const { settings: tA } = O(), { hasInteractedPage: nA, setHasInteractedPage: sA, hasFlowStarted: dA, setHasFlowStarted: fA } = oA(), AA = H(() => {
|
|
1448
|
-
var eA;
|
|
1449
|
-
if (sA(!0), !dA && ((eA = tA.general) == null ? void 0 : eA.flowStartTrigger) === "ON_PAGE_INTERACT" && fA(!0), !window.SpeechSynthesisUtterance) return void console.info("Speech Synthesis API is not supported in this environment.");
|
|
1450
|
-
const cA = new window.SpeechSynthesisUtterance();
|
|
1451
|
-
cA.text = "", cA.onend = () => {
|
|
1452
|
-
window.removeEventListener("click", AA), window.removeEventListener("keydown", AA), window.removeEventListener("touchstart", AA);
|
|
1453
|
-
}, window.speechSynthesis.speak(cA);
|
|
1454
|
-
}, [dA, (q = tA.general) == null ? void 0 : q.flowStartTrigger]);
|
|
1455
|
-
return { hasInteractedPage: nA, handleFirstInteraction: AA };
|
|
1456
|
-
})(), { showChatHistory: yA } = Kt(), { updateTextAreaFocus: IA, setTextAreaValue: UA } = MA(), { syncVoice: eo } = ye(), Pe = $(0);
|
|
1457
|
-
X(() => (window.addEventListener("click", aA), window.addEventListener("keydown", aA), window.addEventListener("touchstart", aA), () => {
|
|
1458
|
-
window.removeEventListener("click", aA), window.removeEventListener("keydown", aA), window.removeEventListener("touchstart", aA);
|
|
1459
|
-
}), []), X(() => {
|
|
1460
|
-
var q, tA, nA;
|
|
1461
|
-
U((q = r.chatInput) == null ? void 0 : q.disabled), D((tA = r.chatWindow) == null ? void 0 : tA.defaultOpen), T((nA = r.audio) == null ? void 0 : nA.defaultToggledOn), setTimeout(() => {
|
|
1462
|
-
var sA;
|
|
1463
|
-
k((sA = r.voice) == null ? void 0 : sA.defaultToggledOn);
|
|
1464
|
-
}, 1);
|
|
1465
|
-
}, []), X(() => {
|
|
1466
|
-
var q;
|
|
1467
|
-
(q = r.notification) != null && q.disabled || J();
|
|
1468
|
-
}, [(A = r.notification) == null ? void 0 : A.disabled]), X(() => {
|
|
1469
|
-
!B && Q != null && Q.current && (Q.current.scrollTop = Q.current.scrollHeight);
|
|
1470
|
-
}, [P]), X(() => {
|
|
1471
|
-
var q, tA;
|
|
1472
|
-
if ((q = r.chatHistory) != null && q.disabled) xA && xA.removeItem(WA);
|
|
1473
|
-
else if (xn(r), Ft().length > 0) {
|
|
1474
|
-
const nA = EA(c(Ar, {}), "SYSTEM");
|
|
1475
|
-
p([nA]), (tA = r.chatHistory) != null && tA.autoLoad && yA();
|
|
1476
|
-
}
|
|
1477
|
-
}, [(e = r.chatHistory) == null ? void 0 : e.storageKey, (t = r.chatHistory) == null ? void 0 : t.maxEntries, (o = r.chatHistory) == null ? void 0 : o.disabled]), X(() => {
|
|
1478
|
-
var q;
|
|
1479
|
-
a || (q = r.general) != null && q.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener("geometrychange", (tA) => {
|
|
1480
|
-
if (!tA.target) return;
|
|
1481
|
-
const { x: nA, y: sA, width: dA, height: fA } = tA.target.boundingRect;
|
|
1482
|
-
nA == 0 && sA == 0 && dA == 0 && fA == 0 ? (setTimeout(() => {
|
|
1483
|
-
var AA;
|
|
1484
|
-
K((AA = window.visualViewport) == null ? void 0 : AA.height);
|
|
1485
|
-
}, 101), setTimeout(() => {
|
|
1486
|
-
var AA, eA;
|
|
1487
|
-
W != ((AA = window.visualViewport) == null ? void 0 : AA.height) && K((eA = window.visualViewport) == null ? void 0 : eA.height);
|
|
1488
|
-
}, 1001)) : setTimeout(() => {
|
|
1489
|
-
var AA;
|
|
1490
|
-
K(((AA = window.visualViewport) == null ? void 0 : AA.height) - fA);
|
|
1491
|
-
}, 101);
|
|
1492
|
-
}));
|
|
1493
|
-
}, [a]), X(() => {
|
|
1494
|
-
var q, tA, nA, sA;
|
|
1495
|
-
if (a) return;
|
|
1496
|
-
m && (K((q = window.visualViewport) == null ? void 0 : q.height), Z((tA = window.visualViewport) == null ? void 0 : tA.width));
|
|
1497
|
-
const dA = () => window.scrollTo({ top: 0, left: 0, behavior: "auto" }), fA = () => Pe.current = window.scrollY, AA = () => {
|
|
1498
|
-
var cA, zA;
|
|
1499
|
-
K((cA = window.visualViewport) == null ? void 0 : cA.height), Z((zA = window.visualViewport) == null ? void 0 : zA.width);
|
|
1500
|
-
}, eA = () => {
|
|
1501
|
-
var cA;
|
|
1502
|
-
window.removeEventListener("scroll", dA), window.removeEventListener("scroll", fA), (cA = window.visualViewport) == null || cA.removeEventListener("resize", AA);
|
|
1503
|
-
};
|
|
1504
|
-
return m ? (eA(), document.body.style.position = "fixed", window.addEventListener("scroll", dA), (nA = window.visualViewport) == null || nA.addEventListener("resize", AA)) : (document.body.style.position = "static", eA(), window.scrollTo({ top: Pe.current, left: 0, behavior: "auto" }), window.addEventListener("scroll", fA), (sA = window.visualViewport) == null || sA.removeEventListener("resize", AA)), eA;
|
|
1505
|
-
}, [m, a]), X(() => {
|
|
1506
|
-
const q = w();
|
|
1507
|
-
if (!q) return;
|
|
1508
|
-
const tA = R[q];
|
|
1509
|
-
if (!tA) return void M(!1);
|
|
1510
|
-
(async (nA, sA) => {
|
|
1511
|
-
var dA, fA;
|
|
1512
|
-
await (async (AA, eA, cA, zA, to, oo) => {
|
|
1513
|
-
const PA = AA[eA.currPath];
|
|
1514
|
-
if (!PA) throw new Error("Block is not valid.");
|
|
1515
|
-
for (const no of Object.keys(PA)) switch (no) {
|
|
1516
|
-
case "message":
|
|
1517
|
-
await bn(PA, eA, cA);
|
|
1518
|
-
break;
|
|
1519
|
-
case "options":
|
|
1520
|
-
await Bn(PA, eA);
|
|
1521
|
-
break;
|
|
1522
|
-
case "checkboxes":
|
|
1523
|
-
await pn(PA, eA);
|
|
1524
|
-
break;
|
|
1525
|
-
case "component":
|
|
1526
|
-
await yn(PA, eA);
|
|
1527
|
-
break;
|
|
1528
|
-
case "chatDisabled":
|
|
1529
|
-
await Dn(PA, eA, zA);
|
|
1530
|
-
break;
|
|
1531
|
-
case "isSensitive":
|
|
1532
|
-
await Nt(PA, eA, to);
|
|
1533
|
-
break;
|
|
1534
|
-
case "transition":
|
|
1535
|
-
await Pn(AA, eA, oo);
|
|
1536
|
-
}
|
|
1537
|
-
})(R, sA, ((dA = r.botBubble) == null ? void 0 : dA.simulateStream) ?? !1, U, I, E), M(!1), "chatDisabled" in nA || U((fA = r.chatInput) == null ? void 0 : fA.disabled), "isSensitive" in nA || I(!1), x(typeof nA.file == "function"), IA(q), eo(F.current && !nA.chatDisabled), sA.currPath !== sA.prevPath && L.current.clear();
|
|
1538
|
-
})(tA, { prevPath: u(), currPath: q, goToPath: f, setTextAreaValue: UA, userInput: z.current, endStreamMessage: i, injectMessage: s, removeMessage: l, simulateStreamMessage: d, streamMessage: g, openChat: j, showToast: v, dismissToast: b });
|
|
1539
|
-
}, [h]), X(() => {
|
|
1540
|
-
var q;
|
|
1541
|
-
(y || ((q = r.general) == null ? void 0 : q.flowStartTrigger) === "ON_LOAD") && f("start");
|
|
1542
|
-
}, [y, (n = r.general) == null ? void 0 : n.flowStartTrigger]);
|
|
1543
|
-
}, tr = "https://cdn.jsdelivr.net/gh/tjtanjin/react-chatbotify-themes/themes", or = "2592000", _e = "RCB_THEME_CACHE_DATA", Ge = async (A, e) => {
|
|
1544
|
-
const { id: t, version: o, baseUrl: n = tr, cacheDuration: a = or } = e, r = o || await (async (v, b) => {
|
|
1545
|
-
const P = `${b}/${v}/meta.json`;
|
|
1546
|
-
try {
|
|
1547
|
-
const m = await fetch(P);
|
|
1548
|
-
return m.ok ? (await m.json()).version : (console.error(`Failed to fetch meta.json from ${P}`), null);
|
|
1549
|
-
} catch (m) {
|
|
1550
|
-
return console.error(`Failed to fetch meta.json from ${P}`, m), null;
|
|
1551
|
-
}
|
|
1552
|
-
})(t, n);
|
|
1553
|
-
if (!r) return console.error(`Unable to find version for theme: ${t}`), { settings: {}, inlineStyles: {}, cssStylesText: "" };
|
|
1554
|
-
const i = ((v, b, P) => {
|
|
1555
|
-
const m = localStorage.getItem(`${_e}_${v}_${b}`);
|
|
1556
|
-
if (!m) return null;
|
|
1557
|
-
try {
|
|
1558
|
-
const B = JSON.parse(m), y = (/* @__PURE__ */ new Date()).getTime(), D = Math.floor(y / 1e3);
|
|
1559
|
-
return B.cacheDate + P >= D ? B : null;
|
|
1560
|
-
} catch (B) {
|
|
1561
|
-
return console.error(`Unable to fetch cache for ${v}`, B), null;
|
|
1562
|
-
}
|
|
1563
|
-
})(t, r, a);
|
|
1564
|
-
if (i) {
|
|
1565
|
-
const v = Ye(A, i.cssStylesText);
|
|
1566
|
-
return { settings: i.settings, inlineStyles: i.inlineStyles, cssStylesText: v };
|
|
1567
|
-
}
|
|
1568
|
-
const s = `${n}/${t}/${r}/styles.css`, l = `${n}/${t}/${r}/settings.json`, d = `${n}/${t}/${r}/styles.json`;
|
|
1569
|
-
let g = "";
|
|
1570
|
-
const p = await fetch(s);
|
|
1571
|
-
p.ok ? g = await p.text() : console.info(`Could not fetch styles.css from ${s}`);
|
|
1572
|
-
const w = await fetch(l);
|
|
1573
|
-
let u = {};
|
|
1574
|
-
w.ok ? u = await w.json() : console.info(`Could not fetch settings.json from ${l}`);
|
|
1575
|
-
const f = await fetch(d);
|
|
1576
|
-
let h = {};
|
|
1577
|
-
return f.ok ? h = await f.json() : console.info(`Could not fetch styles.json from ${d}`), ((v, b, P, m, B) => {
|
|
1578
|
-
const y = (/* @__PURE__ */ new Date()).getTime(), D = { settings: P, inlineStyles: m, cssStylesText: B, cacheDate: Math.floor(y / 1e3) };
|
|
1579
|
-
localStorage.setItem(`${_e}_${v}_${b}`, JSON.stringify(D));
|
|
1580
|
-
})(t, r, u, h, g), { settings: u, inlineStyles: h, cssStylesText: Ye(A, g) };
|
|
1581
|
-
}, Ye = (A, e) => e.split(new RegExp("(?<=})")).map((t) => {
|
|
1582
|
-
const o = t.trim();
|
|
1583
|
-
return o.startsWith("@import") || o.startsWith("@keyframes") || o.startsWith("@media") ? o : o ? `#${A} ${o}` : "";
|
|
1584
|
-
}).join(`
|
|
1585
|
-
`), nr = async (A, e, t, o) => {
|
|
1586
|
-
var n, a;
|
|
1587
|
-
let r = JA(lt), i = JA(ut), s = "";
|
|
1588
|
-
if (o != null) if (Array.isArray(o)) for (const l of o) {
|
|
1589
|
-
const d = await Ge(A, l);
|
|
1590
|
-
r = wA(d.settings, r), i = wA(d.inlineStyles, i), s += d.cssStylesText;
|
|
1591
|
-
}
|
|
1592
|
-
else {
|
|
1593
|
-
const l = await Ge(A, o);
|
|
1594
|
-
r = wA(l.settings, r), i = wA(l.inlineStyles, i), s += l.cssStylesText;
|
|
1595
|
-
}
|
|
1596
|
-
return e != null && (r = wA(e, r)), t != null && (i = wA(t, i)), ((n = r.chatInput) == null ? void 0 : n.botDelay) != null && ((a = r.chatInput) == null ? void 0 : a.botDelay) < 500 && (r.chatInput.botDelay = 500), { settings: r, inlineStyles: i, cssStylesText: s };
|
|
1597
|
-
}, wA = (A, e) => {
|
|
1598
|
-
const t = [{ source: A, target: e }];
|
|
1599
|
-
for (; t.length; ) {
|
|
1600
|
-
const o = t.pop();
|
|
1601
|
-
if (o == null) continue;
|
|
1602
|
-
const { source: n, target: a } = o;
|
|
1603
|
-
for (const r of Object.keys(n)) {
|
|
1604
|
-
const i = r;
|
|
1605
|
-
if (TA(n[i])) a[i] = n[i];
|
|
1606
|
-
else if (typeof n[i] != "object" || n[i] === null || Array.isArray(n[i])) try {
|
|
1607
|
-
a[i] = n[i];
|
|
1608
|
-
} catch {
|
|
1609
|
-
}
|
|
1610
|
-
else (typeof a[i] != "object" || a[i] === null) && (a[i] = {}), t.push({ source: n[i], target: a[i] });
|
|
1611
|
-
}
|
|
1612
|
-
}
|
|
1613
|
-
return e;
|
|
1614
|
-
}, JA = (A) => {
|
|
1615
|
-
if (A === null || typeof A != "object") return A;
|
|
1616
|
-
const e = Array.isArray(A) ? [] : {}, t = [{ source: A, target: e }], o = /* @__PURE__ */ new WeakMap();
|
|
1617
|
-
for (o.set(A, e); t.length; ) {
|
|
1618
|
-
const n = t.pop();
|
|
1619
|
-
if (n == null) continue;
|
|
1620
|
-
const { source: a, target: r } = n;
|
|
1621
|
-
for (const i in a) if (Object.prototype.hasOwnProperty.call(a, i)) {
|
|
1622
|
-
const s = a[i];
|
|
1623
|
-
if (s && typeof s == "object") if (o.has(s)) r[i] = o.get(s);
|
|
1624
|
-
else {
|
|
1625
|
-
const l = Array.isArray(s) ? [] : {};
|
|
1626
|
-
o.set(s, l), r[i] = l, t.push({ source: s, target: l });
|
|
1627
|
-
}
|
|
1628
|
-
else r[i] = s;
|
|
1629
|
-
}
|
|
1630
|
-
}
|
|
1631
|
-
return e;
|
|
1632
|
-
}, rr = (A) => {
|
|
1633
|
-
const { updateSettings: e } = (() => {
|
|
1634
|
-
const { settings: n, setSettings: a } = O(), r = H((s) => {
|
|
1635
|
-
!s || Object.keys(s).length === 0 || a(JA(wA(s, n)));
|
|
1636
|
-
}, [n]), i = H((s) => {
|
|
1637
|
-
a(s);
|
|
1638
|
-
}, []);
|
|
1639
|
-
return { settings: n, replaceSettings: i, updateSettings: r };
|
|
1640
|
-
})(), { updateStyles: t } = (() => {
|
|
1641
|
-
const { styles: n, setStyles: a } = G(), r = H((s) => {
|
|
1642
|
-
!s || Object.keys(s).length === 0 || a(JA(wA(s, n)));
|
|
1643
|
-
}, [n]), i = H((s) => {
|
|
1644
|
-
a(s);
|
|
1645
|
-
}, []);
|
|
1646
|
-
return { styles: n, replaceStyles: i, updateStyles: r };
|
|
1647
|
-
})(), o = A == null ? void 0 : A.map((n) => n());
|
|
1648
|
-
X(() => {
|
|
1649
|
-
let n = {}, a = {};
|
|
1650
|
-
o == null || o.forEach((r) => {
|
|
1651
|
-
r != null && r.settings && Object.keys(r == null ? void 0 : r.settings).length !== 0 && (n = wA(r.settings, n)), r != null && r.styles && Object.keys(r == null ? void 0 : r.styles).length !== 0 && (a = wA(r.styles, a));
|
|
1652
|
-
}), e(n), t(a);
|
|
1653
|
-
}, []);
|
|
1654
|
-
}, ar = ({ plugins: A }) => {
|
|
1655
|
-
var e, t, o, n;
|
|
1656
|
-
const a = ee(), { settings: r } = O(), { styles: i } = G(), { hasFlowStarted: s, setHasFlowStarted: l } = oA(), { inputRef: d } = rA(), { setChatScrollHeight: g, viewportHeight: p, viewportWidth: w, isChatWindowOpen: u } = BA(), { headerButtons: f, chatInputButtons: h, footerButtons: v } = $n();
|
|
1657
|
-
er(), rr(A);
|
|
1658
|
-
const b = uA(() => {
|
|
1659
|
-
var B;
|
|
1660
|
-
const y = "rcb-chatbot-global ";
|
|
1661
|
-
return (B = r.general) != null && B.embedded ? y + "rcb-window-embedded" : u ? y + "rcb-window-open" : y + "rcb-window-close";
|
|
1662
|
-
}, [r, u]);
|
|
1663
|
-
return c(_, { children: (a && ((P = r.device) == null ? void 0 : P.desktopEnabled) || !a && ((m = r.device) == null ? void 0 : m.mobileEnabled)) && c("div", { onMouseDown: (B) => {
|
|
1664
|
-
var y, D;
|
|
1665
|
-
!s && ((y = r.general) == null ? void 0 : y.flowStartTrigger) === "ON_CHATBOT_INTERACT" && l(!0), a ? (D = d.current) == null || D.blur() : B == null || B.preventDefault();
|
|
1666
|
-
}, className: b, children: [c(Rn, {}), c(Fn, {}), u && !a && !((e = r.general) != null && e.embedded) && c(_, { children: [c("style", { children: `
|
|
1667
|
-
html {
|
|
1668
|
-
overflow: hidden !important;
|
|
1669
|
-
touch-action: none !important;
|
|
1670
|
-
scroll-behavior: auto !important;
|
|
1671
|
-
}
|
|
1672
|
-
` }), c("div", { style: { position: "fixed", top: 0, left: 0, width: "100%", height: "100%", backgroundColor: "#fff", zIndex: 9999 } })] }), c("div", { style: (() => {
|
|
1673
|
-
var B, y;
|
|
1674
|
-
return a || (B = r.general) != null && B.embedded ? (y = r.general) != null && y.embedded ? { ...i.chatWindowStyle } : { ...i.chatWindowStyle, zIndex: 1e4 } : { ...i.chatWindowStyle, borderRadius: "0px", left: "0px", right: "auto", top: "0px", bottom: "auto", width: `${w}px`, height: `${p}px`, zIndex: 1e4 };
|
|
1675
|
-
})(), className: "rcb-chat-window", children: [((t = r.general) == null ? void 0 : t.showHeader) && c(on, { buttons: f }), c(wn, { setChatScrollHeight: g }), c(Gn, {}), ((o = r.general) == null ? void 0 : o.showInputRow) && c(Un, { buttons: h }), ((n = r.general) == null ? void 0 : n.showFooter) && c(zn, { buttons: v })] })] }) });
|
|
1676
|
-
var P, m;
|
|
1677
|
-
}, Jt = mA(void 0), Vt = () => pA(Jt), ir = ({ children: A }) => {
|
|
1678
|
-
var e;
|
|
1679
|
-
const t = $(""), o = $({}), [n, a] = S({}), [r, i] = S({}), [s, l] = S(!1);
|
|
1680
|
-
return X(() => {
|
|
1681
|
-
l(!0);
|
|
1682
|
-
}, []), s ? c("div", { style: { fontFamily: (e = n.general) == null ? void 0 : e.fontFamily }, children: c(Jt.Provider, { value: { loadConfig: async (d, g, p, w, u, f) => {
|
|
1683
|
-
t.current = d, o.current = g;
|
|
1684
|
-
const h = await nr(d, p, w, u);
|
|
1685
|
-
f.current && (f.current.textContent = h.cssStylesText), a(h.settings), i(h.inlineStyles);
|
|
1686
|
-
} }, children: c(en, { settings: n, setSettings: a, children: c(tn, { styles: r, setStyles: i, children: c(jn, { children: c(nn, { botIdRef: t, flowRef: o, children: c(cn, { children: c(rn, { settings: n, children: c(un, { children: A }) }) }) }) }) }) }) }) }) : null;
|
|
1687
|
-
}, sr = ({ id: A, flow: e, settings: t, styles: o, themes: n, plugins: a, setConfigLoaded: r, styleRootRef: i }) => {
|
|
1688
|
-
const s = uA(() => A, []), l = Vt(), { flowRef: d } = rA();
|
|
1689
|
-
return d && d.current !== e && (d.current = e), X(() => {
|
|
1690
|
-
(async () => {
|
|
1691
|
-
var g, p;
|
|
1692
|
-
(g = t.event) != null && g.rcbPreLoadChatBot && (await XA(Mt, { botId: s, currPath: null, prevPath: null }, { flow: e, settings: t, styles: o, themes: n, plugins: a })).defaultPrevented || (l != null && l.loadConfig && (await l.loadConfig(s, e, t, o, n, i), r(!0)), (p = t.event) != null && p.rcbPostLoadChatBot && XA(Ht, { botId: s, currPath: null, prevPath: null }, { flow: e, settings: t, styles: o, themes: n, plugins: a }));
|
|
1693
|
-
})();
|
|
1694
|
-
}, [n]), null;
|
|
1695
|
-
}, ae = ["Quickstart", "API Docs", "Examples", "Github", "Discord"], lr = { start: { message: "Hello, I am Tan Jin 👋! Welcome to React ChatBotify, I'm excited that you are using our chatbot 😊!", transition: { duration: 1e3 }, chatDisabled: !0, path: "show_options" }, show_options: { message: "It looks like you have not set up a conversation flow yet. No worries! Here are a few helpful things you can check out to get started:", options: ae, path: "process_options" }, prompt_again: { message: "Do you need any other help?", options: ae, path: "process_options" }, unknown_input: { message: "Sorry, I do not understand your message 😢! If you require further assistance, you may click on the Github option and open an issue there or visit our discord.", options: ae, path: "process_options" }, process_options: { transition: { duration: 0 }, path: (A) => {
|
|
1696
|
-
let e = "";
|
|
1697
|
-
switch (A.userInput) {
|
|
1698
|
-
case "Quickstart":
|
|
1699
|
-
e = "https://react-chatbotify.com/docs/introduction/quickstart/";
|
|
1700
|
-
break;
|
|
1701
|
-
case "API Docs":
|
|
1702
|
-
e = "https://react-chatbotify.com/docs/api/bot_options";
|
|
1703
|
-
break;
|
|
1704
|
-
case "Examples":
|
|
1705
|
-
e = "https://react-chatbotify.com/docs/examples/basic_form";
|
|
1706
|
-
break;
|
|
1707
|
-
case "Github":
|
|
1708
|
-
e = "https://github.com/tjtanjin/react-chatbotify/";
|
|
1709
|
-
break;
|
|
1710
|
-
case "Discord":
|
|
1711
|
-
e = "https://discord.gg/6R4DK4G5Zh";
|
|
1712
|
-
break;
|
|
1713
|
-
default:
|
|
1714
|
-
return "unknown_input";
|
|
1715
|
-
}
|
|
1716
|
-
return A.injectMessage("Sit tight! I'll send you right there!"), setTimeout(() => {
|
|
1717
|
-
window.open(e);
|
|
1718
|
-
}, 1e3), "repeat";
|
|
1719
|
-
} }, repeat: { transition: { duration: 3e3 }, path: "prompt_again" } }, cr = ({ id: A, flow: e, settings: t, styles: o, themes: n, plugins: a }) => {
|
|
1720
|
-
const r = uA(() => A || "rcb-" + qA(), []), i = e && Object.keys(e).length !== 0 ? e : lr, s = t || {}, l = o || {}, d = a || [], [g, p] = S(!1), w = Vt(), u = $(null), [f, h] = S(n || []);
|
|
1721
|
-
X(() => {
|
|
1722
|
-
n && h(n);
|
|
1723
|
-
}, [n]);
|
|
1724
|
-
const v = () => c(_, { children: [c(sr, { styleRootRef: u, id: r, flow: i, settings: s, styles: l, themes: f, plugins: d, setConfigLoaded: p }), g && c(ar, { plugins: a })] });
|
|
1725
|
-
return c(w == null ? ir : _, { children: [c("style", { ref: u }), c("div", { id: r, children: v() })] });
|
|
1726
|
-
};
|
|
1727
|
-
ve(".rcb-toggle-button.rcb-button-show{background-color:#1a5b6e;background-position:50%;background-repeat:no-repeat;background-size:72%}.rcb-chat-window{max-width:100%;width:550px!important;.rcb-bot-avatar{background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:0}.rcb-chat-header{align-items:center;display:flex;flex-direction:row;font-weight:700}a{color:#000;font-weight:700;text-decoration:underline}a:hover{color:#107180}.rcb-bot-message a{color:#fff;text-decoration:none}.rcb-bot-message a:hover{text-decoration:underline}.rcb-chat-input-textarea{overflow-y:auto}.rcb-chat-footer-container{font-size:10px}}.embedded-qa-bot{.rcb-chat-window{max-width:100%;width:100%!important}}", { insertAt: "top" });
|
|
1728
|
-
const Zt = (A) => {
|
|
1729
|
-
const e = A.welcome || "Hello! What can I help you with?", t = A.prompt || "Questions should stand alone and not refer to previous ones.", o = A.embedded || !1, n = $(null), a = A.isLoggedIn !== void 0 && A.isLoggedIn, r = A.isAnonymous !== void 0 ? A.isAnonymous : !a, i = A.disabled !== void 0 ? A.disabled : r, s = A.isOpen !== void 0 && A.isOpen, l = A.onClose, d = A.apiKey || process.env.REACT_APP_API_KEY;
|
|
1730
|
-
let g = !1;
|
|
1731
|
-
X(() => {
|
|
1732
|
-
n.current && n.current.parentElement;
|
|
1733
|
-
}, []);
|
|
1734
|
-
const p = { start: { message: e, path: "loop" }, loop: { message: async (w) => {
|
|
1735
|
-
await (async (u) => {
|
|
1736
|
-
try {
|
|
1737
|
-
const f = { method: "POST", headers: { "Content-Type": "application/json", "X-API-KEY": d }, body: JSON.stringify({ query: u.userInput }) }, h = await fetch("https://access-ai.ccs.uky.edu/api/query", f), v = (await h.json()).response;
|
|
1738
|
-
for (let b = 0; b < v.length; b++) await u.streamMessage(v.slice(0, b + 1)), await new Promise((P) => setTimeout(P, 2));
|
|
1739
|
-
} catch {
|
|
1740
|
-
await u.injectMessage("Unable to contact the Q&A Bot. Please try again later."), g = !0;
|
|
1741
|
-
}
|
|
1742
|
-
})(w);
|
|
1743
|
-
}, path: () => g ? "start" : "loop" } };
|
|
1744
|
-
return bA.createElement("div", { className: "access-qa-bot", ref: n }, bA.createElement(cr, { settings: { general: (() => {
|
|
1745
|
-
const w = (u, f) => {
|
|
1746
|
-
if (n.current) {
|
|
1747
|
-
const h = getComputedStyle(n.current).getPropertyValue(u);
|
|
1748
|
-
if (h && h.trim() !== "") return h.trim();
|
|
1749
|
-
if (n.current.parentElement) {
|
|
1750
|
-
const v = getComputedStyle(n.current.parentElement).getPropertyValue(u);
|
|
1751
|
-
if (v && v.trim() !== "") return v.trim();
|
|
1752
|
-
}
|
|
1753
|
-
}
|
|
1754
|
-
return f;
|
|
1755
|
-
};
|
|
1756
|
-
return { primaryColor: w("--primary-color", "#1a5b6e"), secondaryColor: w("--secondary-color", "#107180"), fontFamily: w("--font-family", "Arial, sans-serif"), embedded: o };
|
|
1757
|
-
})(), header: { title: "ACCESS Q&A Bot", avatar: "https://support.access-ci.org/themes/contrib/asp-theme/images/icons/ACCESS-arrrow.svg" }, chatInput: { enabledPlaceholderText: t, disabledPlaceholderText: "Please log in to ask questions.", disabled: i }, chatHistory: { disabled: !0 }, botBubble: { simStream: !0, dangerouslySetInnerHtml: !0 }, chatButton: { icon: "https://support.access-ci.org/themes/contrib/asp-theme/images/icons/ACCESS-arrrow.svg" }, tooltip: { text: "Ask me about ACCESS! 😊" }, audio: { disabled: !0 }, emoji: { disabled: !0 }, fileAttachment: { disabled: !0 }, notification: { disabled: !0 }, footer: { text: bA.createElement("div", null, "Find out more ", bA.createElement("a", { href: "https://support.access-ci.org/tools/access-qa-tool" }, "about this tool"), " or ", bA.createElement("a", { href: "https://docs.google.com/forms/d/e/1FAIpQLSeWnE1r738GU1u_ri3TRpw9dItn6JNPi7-FH7QFB9bAHSVN0w/viewform" }, "give us feedback"), ".") } }, isOpen: s, onClose: l, flow: p }));
|
|
1758
|
-
};
|
|
1759
|
-
function ur(A) {
|
|
1760
|
-
return bA.createElement(Zt, { embedded: A.embedded, welcome: A.welcome, prompt: A.prompt, isLoggedIn: A.isLoggedIn, isAnonymous: A.isAnonymous, disabled: A.disabled, isOpen: A.isOpen, onClose: A.onClose, apiKey: A.apiKey });
|
|
1761
|
-
}
|
|
1762
|
-
ve("body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}", { insertAt: "top" });
|
|
1763
|
-
class $t extends HTMLElement {
|
|
1764
|
-
constructor() {
|
|
1765
|
-
super(), this.attachShadow({ mode: "open" }), this.container = document.createElement("div"), this.container.className = "qa-bot-container", this.shadowRoot.appendChild(this.container), this.injectStyles();
|
|
1766
|
-
}
|
|
1767
|
-
injectStyles() {
|
|
1768
|
-
const e = document.createElement("style");
|
|
1769
|
-
e.textContent = `
|
|
1770
|
-
:host {
|
|
1771
|
-
display: block;
|
|
1772
|
-
--primary-color: #1a5b6e;
|
|
1773
|
-
--secondary-color: #107180;
|
|
1774
|
-
--font-family: Arial, sans-serif;
|
|
1775
|
-
}
|
|
1776
|
-
|
|
1777
|
-
.qa-bot-container {
|
|
1778
|
-
width: 100%;
|
|
1779
|
-
height: 100%;
|
|
1780
|
-
font-family: var(--font-family);
|
|
1781
|
-
}
|
|
1782
|
-
`, this.shadowRoot.appendChild(e);
|
|
1783
|
-
const t = document.createElement("style");
|
|
1784
|
-
if (t.textContent = `
|
|
1785
|
-
/* Essential styles from react-chatbotify */
|
|
1786
|
-
.rcb-header-avatar {
|
|
1787
|
-
width: 24px !important;
|
|
1788
|
-
height: 24px !important;
|
|
1789
|
-
margin-right: 8px !important;
|
|
1790
|
-
}
|
|
1791
|
-
|
|
1792
|
-
.rcb-chat-header {
|
|
1793
|
-
background-color: var(--primary-color) !important;
|
|
1794
|
-
}
|
|
1795
|
-
|
|
1796
|
-
.rcb-chat-button {
|
|
1797
|
-
background-color: var(--primary-color) !important;
|
|
1798
|
-
}
|
|
1799
|
-
|
|
1800
|
-
/* Ensure proper z-index for floating button */
|
|
1801
|
-
.rcb-floating-button {
|
|
1802
|
-
z-index: 1000 !important;
|
|
1803
|
-
}
|
|
1804
|
-
|
|
1805
|
-
/* Make links in footer readable */
|
|
1806
|
-
.rcb-chat-footer a {
|
|
1807
|
-
color: var(--primary-color) !important;
|
|
1808
|
-
}
|
|
1809
|
-
|
|
1810
|
-
/* Fix button styling */
|
|
1811
|
-
.rcb-send-button {
|
|
1812
|
-
background-color: var(--primary-color) !important;
|
|
1813
|
-
}
|
|
1814
|
-
`, this.shadowRoot.appendChild(t), document.styleSheets) try {
|
|
1815
|
-
const o = document.createElement("style");
|
|
1816
|
-
let n = "";
|
|
1817
|
-
for (let a = 0; a < document.styleSheets.length; a++) try {
|
|
1818
|
-
const r = document.styleSheets[a];
|
|
1819
|
-
if (r.href && !r.href.startsWith(window.location.origin)) continue;
|
|
1820
|
-
const i = r.cssRules || r.rules;
|
|
1821
|
-
if (!i) continue;
|
|
1822
|
-
for (let s = 0; s < i.length; s++) i[s].selectorText && (i[s].selectorText.includes(".rcb-") || i[s].selectorText.includes(".access-qa-bot")) && (n += i[s].cssText + `
|
|
1823
|
-
`);
|
|
1824
|
-
} catch {
|
|
1825
|
-
continue;
|
|
1826
|
-
}
|
|
1827
|
-
n && (o.textContent = n, this.shadowRoot.appendChild(o));
|
|
1828
|
-
} catch (o) {
|
|
1829
|
-
console.warn("Failed to copy document styles to shadow DOM", o);
|
|
1830
|
-
}
|
|
1831
|
-
}
|
|
1832
|
-
static get observedAttributes() {
|
|
1833
|
-
return ["welcome", "prompt", "embedded", "is-logged-in", "is-anonymous", "disabled", "is-open", "api-key"];
|
|
1834
|
-
}
|
|
1835
|
-
attributeChangedCallback(e, t, o) {
|
|
1836
|
-
t !== o && this._render();
|
|
1837
|
-
}
|
|
1838
|
-
_getProps() {
|
|
1839
|
-
return { welcome: this.getAttribute("welcome"), prompt: this.getAttribute("prompt"), embedded: this.hasAttribute("embedded"), isLoggedIn: this.hasAttribute("is-logged-in"), isAnonymous: this.hasAttribute("is-anonymous"), disabled: this.hasAttribute("disabled"), isOpen: this.hasAttribute("is-open"), apiKey: this.getAttribute("api-key") || "demo-key", onClose: () => {
|
|
1840
|
-
this.dispatchEvent(new CustomEvent("qabot-close"));
|
|
1841
|
-
} };
|
|
1842
|
-
}
|
|
1843
|
-
connectedCallback() {
|
|
1844
|
-
this.syncStyles(), this._render(), this.styleObserver = new MutationObserver(() => this.syncStyles()), this.styleObserver.observe(this, { attributes: !0, attributeFilter: ["style"] });
|
|
1845
|
-
}
|
|
1846
|
-
disconnectedCallback() {
|
|
1847
|
-
this.styleObserver && this.styleObserver.disconnect(), this.root && this.root.unmount();
|
|
1848
|
-
}
|
|
1849
|
-
syncStyles() {
|
|
1850
|
-
if (this.style.cssText) {
|
|
1851
|
-
const e = this.style.cssText.split(";").filter((t) => t.trim().startsWith("--")).map((t) => t.trim());
|
|
1852
|
-
if (e.length > 0) {
|
|
1853
|
-
const t = this.container.style;
|
|
1854
|
-
e.forEach((o) => {
|
|
1855
|
-
const [n, a] = o.split(":").map((r) => r.trim());
|
|
1856
|
-
t.setProperty(n, a);
|
|
1857
|
-
});
|
|
1858
|
-
}
|
|
1859
|
-
}
|
|
1860
|
-
}
|
|
1861
|
-
_render() {
|
|
1862
|
-
this.root || (this.root = we(this.container));
|
|
1863
|
-
const e = this._getProps();
|
|
1864
|
-
this.root.render(N(ot, null, N(Zt, e)));
|
|
1865
|
-
}
|
|
1866
|
-
}
|
|
1867
|
-
customElements.define("access-qa-bot", $t);
|
|
1868
|
-
const dr = $t;
|
|
1869
|
-
function Ao(A) {
|
|
1870
|
-
const { target: e, ...t } = A;
|
|
1871
|
-
if (!(e && e instanceof HTMLElement)) return void console.error("QA Bot: A valid target DOM element is required");
|
|
1872
|
-
const o = document.createElement("access-qa-bot");
|
|
1873
|
-
return t.welcome && o.setAttribute("welcome", t.welcome), t.prompt && o.setAttribute("prompt", t.prompt), t.embedded && o.setAttribute("embedded", ""), t.isLoggedIn && o.setAttribute("is-logged-in", ""), t.isAnonymous && o.setAttribute("is-anonymous", ""), t.disabled && o.setAttribute("disabled", ""), t.isOpen && o.setAttribute("is-open", ""), t.apiKey && o.setAttribute("api-key", t.apiKey), t.styles && Object.entries(t.styles).forEach(([n, a]) => {
|
|
1874
|
-
n.startsWith("--") && o.style.setProperty(n, a);
|
|
1875
|
-
}), t.onClose && o.addEventListener("qabot-close", t.onClose), e.appendChild(o), () => {
|
|
1876
|
-
e.removeChild(o);
|
|
1877
|
-
};
|
|
1878
|
-
}
|
|
1879
|
-
function gr(A) {
|
|
1880
|
-
const { target: e, version: t, isLoggedIn: o, isOpen: n, isAnonymous: a, ...r } = A;
|
|
1881
|
-
if (e && e instanceof HTMLElement) {
|
|
1882
|
-
if (typeof window < "u" && typeof customElements < "u" && customElements.get("access-qa-bot")) return Ao({ target: e, isLoggedIn: o, isAnonymous: a, isOpen: n, ...r });
|
|
1883
|
-
{
|
|
1884
|
-
const i = Yo.createRoot(e);
|
|
1885
|
-
return i.render(bA.createElement(bA.StrictMode, null, bA.createElement(ur, ue({ isLoggedIn: o, isAnonymous: a, isOpen: n }, r)))), () => {
|
|
1886
|
-
i.unmount();
|
|
1887
|
-
};
|
|
1888
|
-
}
|
|
1889
|
-
}
|
|
1890
|
-
console.error("QA Bot: A valid target DOM element is required");
|
|
1891
|
-
}
|
|
1892
|
-
typeof window < "u" && (window.process = { env: { REACT_APP_API_KEY: "demo-key" } }, window.accessQABot = { WebComponentQABot: dr, qAndATool: Ao });
|
|
1893
|
-
export {
|
|
1894
|
-
Zt as QABot,
|
|
1895
|
-
dr as WebComponentQABot,
|
|
1896
|
-
Zt as default,
|
|
1897
|
-
gr as qAndATool
|
|
1898
|
-
};
|