@enegelai/bot-widget 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/enegelaibot.umd.js +214 -208
- package/dist/index.es.js +947 -926
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var j = (
|
|
4
|
-
import { css as x, LitElement as
|
|
5
|
-
import { property as
|
|
6
|
-
import { unsafeHTML as
|
|
1
|
+
var ic = Object.defineProperty;
|
|
2
|
+
var lc = (c, e, a) => e in c ? ic(c, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : c[e] = a;
|
|
3
|
+
var j = (c, e, a) => (lc(c, typeof e != "symbol" ? e + "" : e, a), a);
|
|
4
|
+
import { css as x, LitElement as ie, html as s, svg as ae } from "lit";
|
|
5
|
+
import { property as r, customElement as k, queryAll as pc, query as le, eventOptions as qe } from "lit/decorators.js";
|
|
6
|
+
import { unsafeHTML as B } from "lit-html/directives/unsafe-html.js";
|
|
7
7
|
import "@shoelace-style/shoelace/dist/themes/light.css";
|
|
8
8
|
import "@shoelace-style/shoelace/dist/themes/dark.css";
|
|
9
9
|
import "@shoelace-style/shoelace/dist/components/button/button.js";
|
|
@@ -24,39 +24,39 @@ import "@shoelace-style/shoelace/dist/components/alert/alert.js";
|
|
|
24
24
|
import { repeat as we } from "lit/directives/repeat.js";
|
|
25
25
|
import { when as D } from "lit/directives/when.js";
|
|
26
26
|
import { until as Ie } from "lit-html/directives/until.js";
|
|
27
|
-
import
|
|
28
|
-
import
|
|
27
|
+
import hc from "markdown-it";
|
|
28
|
+
import uc from "markdown-it-link-attributes";
|
|
29
29
|
import "@shoelace-style/shoelace/dist/components/popup/popup.js";
|
|
30
|
-
function De(
|
|
31
|
-
return typeof
|
|
30
|
+
function De(c) {
|
|
31
|
+
return typeof c == "function" ? c() : c;
|
|
32
32
|
}
|
|
33
|
-
const
|
|
33
|
+
const ne = class ne extends Event {
|
|
34
34
|
/**
|
|
35
35
|
* @param {string} key of the state that has changed
|
|
36
36
|
* @param {unknown} value for the changed key
|
|
37
37
|
*/
|
|
38
|
-
constructor(
|
|
39
|
-
super(
|
|
38
|
+
constructor(a, f, t) {
|
|
39
|
+
super(ne.eventName, {
|
|
40
40
|
cancelable: !1
|
|
41
41
|
});
|
|
42
42
|
j(this, "key");
|
|
43
43
|
j(this, "state");
|
|
44
44
|
j(this, "value");
|
|
45
|
-
this.key =
|
|
45
|
+
this.key = a, this.value = f, this.state = t;
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
j(
|
|
49
|
-
let
|
|
50
|
-
const
|
|
48
|
+
j(ne, "eventName", "lit-state-changed");
|
|
49
|
+
let R = ne;
|
|
50
|
+
const gc = (c, e) => e !== c && (e === e || c === c);
|
|
51
51
|
class X extends EventTarget {
|
|
52
52
|
constructor() {
|
|
53
53
|
super();
|
|
54
54
|
// hold a reference to hooks
|
|
55
55
|
j(this, "hookMap", /* @__PURE__ */ new Map());
|
|
56
|
-
this.constructor.finalize(), this.propertyMap && [...this.propertyMap].forEach(([
|
|
57
|
-
if (
|
|
58
|
-
const
|
|
59
|
-
this[
|
|
56
|
+
this.constructor.finalize(), this.propertyMap && [...this.propertyMap].forEach(([a, f]) => {
|
|
57
|
+
if (f.initialValue !== void 0) {
|
|
58
|
+
const t = De(f.initialValue);
|
|
59
|
+
this[a] = t, f.value = t;
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
62
|
}
|
|
@@ -64,31 +64,31 @@ class X extends EventTarget {
|
|
|
64
64
|
return this.constructor.propertyMap;
|
|
65
65
|
}
|
|
66
66
|
get stateValue() {
|
|
67
|
-
return Object.fromEntries([...this.propertyMap].map(([
|
|
67
|
+
return Object.fromEntries([...this.propertyMap].map(([a]) => [a, this[a]]));
|
|
68
68
|
}
|
|
69
69
|
static finalize() {
|
|
70
70
|
if (this.finalized)
|
|
71
71
|
return !1;
|
|
72
72
|
this.finalized = !0;
|
|
73
|
-
const
|
|
74
|
-
for (const
|
|
75
|
-
this.createProperty(
|
|
73
|
+
const a = Object.keys(this.properties || {});
|
|
74
|
+
for (const f of a)
|
|
75
|
+
this.createProperty(f, this.properties[f]);
|
|
76
76
|
return !0;
|
|
77
77
|
}
|
|
78
|
-
static createProperty(
|
|
78
|
+
static createProperty(a, f) {
|
|
79
79
|
this.finalize();
|
|
80
|
-
const
|
|
81
|
-
Object.defineProperty(this.prototype,
|
|
80
|
+
const t = typeof a == "symbol" ? Symbol() : `__${a}`, o = this.getPropertyDescriptor(a, t, f);
|
|
81
|
+
Object.defineProperty(this.prototype, a, o);
|
|
82
82
|
}
|
|
83
|
-
static getPropertyDescriptor(
|
|
84
|
-
const
|
|
83
|
+
static getPropertyDescriptor(a, f, t) {
|
|
84
|
+
const o = (t == null ? void 0 : t.hasChanged) || gc;
|
|
85
85
|
return {
|
|
86
86
|
get() {
|
|
87
|
-
return this[
|
|
87
|
+
return this[f];
|
|
88
88
|
},
|
|
89
|
-
set(
|
|
90
|
-
const
|
|
91
|
-
this[
|
|
89
|
+
set(d) {
|
|
90
|
+
const b = this[a];
|
|
91
|
+
this[f] = d, o(d, b) === !0 && this.dispatchStateEvent(a, d, this);
|
|
92
92
|
},
|
|
93
93
|
configurable: !0,
|
|
94
94
|
enumerable: !0
|
|
@@ -99,8 +99,8 @@ class X extends EventTarget {
|
|
|
99
99
|
* properties marked as skipReset
|
|
100
100
|
*/
|
|
101
101
|
reset() {
|
|
102
|
-
this.hookMap.forEach((
|
|
103
|
-
this[
|
|
102
|
+
this.hookMap.forEach((a) => a.reset()), [...this.propertyMap].filter(([a, f]) => !(f.skipReset === !0 || f.resetValue === void 0)).forEach(([a, f]) => {
|
|
103
|
+
this[a] = f.resetValue;
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
106
|
/**
|
|
@@ -111,31 +111,31 @@ class X extends EventTarget {
|
|
|
111
111
|
* @param nameOrNames
|
|
112
112
|
* @returns a unsubscribe function.
|
|
113
113
|
*/
|
|
114
|
-
subscribe(
|
|
115
|
-
|
|
116
|
-
const
|
|
117
|
-
(!
|
|
114
|
+
subscribe(a, f, t) {
|
|
115
|
+
f && !Array.isArray(f) && (f = [f]);
|
|
116
|
+
const o = (d) => {
|
|
117
|
+
(!f || f.includes(d.key)) && a(d.key, d.value, this);
|
|
118
118
|
};
|
|
119
|
-
return this.addEventListener(
|
|
119
|
+
return this.addEventListener(R.eventName, o, t), () => this.removeEventListener(R.eventName, o);
|
|
120
120
|
}
|
|
121
|
-
dispatchStateEvent(
|
|
122
|
-
this.dispatchEvent(new
|
|
121
|
+
dispatchStateEvent(a, f, t) {
|
|
122
|
+
this.dispatchEvent(new R(a, f, t));
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
// a map holding decorators definition.
|
|
126
126
|
j(X, "propertyMap"), j(X, "properties"), j(X, "finalized", !1);
|
|
127
127
|
class Fe {
|
|
128
|
-
constructor(e,
|
|
128
|
+
constructor(e, a, f) {
|
|
129
129
|
j(this, "host");
|
|
130
130
|
j(this, "state");
|
|
131
131
|
j(this, "callback");
|
|
132
|
-
this.host = e, this.state =
|
|
132
|
+
this.host = e, this.state = a, this.host.addController(this), this.callback = f || (() => this.host.requestUpdate());
|
|
133
133
|
}
|
|
134
134
|
hostConnected() {
|
|
135
|
-
this.state.addEventListener(
|
|
135
|
+
this.state.addEventListener(R.eventName, this.callback), this.callback();
|
|
136
136
|
}
|
|
137
137
|
hostDisconnected() {
|
|
138
|
-
this.state.removeEventListener(
|
|
138
|
+
this.state.removeEventListener(R.eventName, this.callback);
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
/**
|
|
@@ -143,122 +143,122 @@ class Fe {
|
|
|
143
143
|
* Copyright 2017 Google LLC
|
|
144
144
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
145
145
|
*/
|
|
146
|
-
const Ue = ({ finisher:
|
|
147
|
-
var
|
|
148
|
-
if (
|
|
149
|
-
const
|
|
150
|
-
return
|
|
151
|
-
|
|
152
|
-
}),
|
|
146
|
+
const Ue = ({ finisher: c, descriptor: e }) => (a, f) => {
|
|
147
|
+
var t;
|
|
148
|
+
if (f === void 0) {
|
|
149
|
+
const o = (t = a.originalKey) !== null && t !== void 0 ? t : a.key, d = e != null ? { kind: "method", placement: "prototype", key: o, descriptor: e(a.key) } : { ...a, key: o };
|
|
150
|
+
return c != null && (d.finisher = function(b) {
|
|
151
|
+
c(b, o);
|
|
152
|
+
}), d;
|
|
153
153
|
}
|
|
154
154
|
{
|
|
155
|
-
const
|
|
156
|
-
e !== void 0 && Object.defineProperty(
|
|
155
|
+
const o = a.constructor;
|
|
156
|
+
e !== void 0 && Object.defineProperty(a, f, e(f)), c == null || c(o, f);
|
|
157
157
|
}
|
|
158
158
|
};
|
|
159
|
-
function
|
|
159
|
+
function O(c) {
|
|
160
160
|
return Ue({
|
|
161
161
|
// @ts-ignore ctor is typof State and not typeof ReactiveElement
|
|
162
|
-
finisher: (e,
|
|
163
|
-
if (Object.getOwnPropertyDescriptor(e.prototype,
|
|
162
|
+
finisher: (e, a) => {
|
|
163
|
+
if (Object.getOwnPropertyDescriptor(e.prototype, a))
|
|
164
164
|
throw new Error("@property must be called before all state decorators");
|
|
165
|
-
return e.propertyMap || (e.propertyMap = /* @__PURE__ */ new Map()), e.propertyMap.set(
|
|
165
|
+
return e.propertyMap || (e.propertyMap = /* @__PURE__ */ new Map()), e.propertyMap.set(a, { ...c, initialValue: c == null ? void 0 : c.value, resetValue: c == null ? void 0 : c.value }), e.createProperty(a, c);
|
|
166
166
|
}
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
|
-
function
|
|
170
|
-
if (
|
|
169
|
+
function mc(c, e) {
|
|
170
|
+
if (c !== null && (e === Boolean || e === Number || e === Array || e === Object))
|
|
171
171
|
try {
|
|
172
|
-
|
|
172
|
+
c = JSON.parse(c);
|
|
173
173
|
} catch {
|
|
174
|
-
console.warn("cannot parse value",
|
|
174
|
+
console.warn("cannot parse value", c);
|
|
175
175
|
}
|
|
176
|
-
return
|
|
176
|
+
return c;
|
|
177
177
|
}
|
|
178
178
|
new URL(window.location.href);
|
|
179
|
-
const
|
|
179
|
+
const yc = {
|
|
180
180
|
prefix: "_ls"
|
|
181
181
|
};
|
|
182
|
-
function
|
|
183
|
-
return
|
|
182
|
+
function V(c) {
|
|
183
|
+
return c = { ...yc, ...c }, Ue({
|
|
184
184
|
// @ts-ignore ctor is typof State and not typeof ReactiveElement
|
|
185
|
-
finisher: (e,
|
|
186
|
-
const
|
|
187
|
-
if (!
|
|
185
|
+
finisher: (e, a) => {
|
|
186
|
+
const f = Object.getOwnPropertyDescriptor(e.prototype, a);
|
|
187
|
+
if (!f)
|
|
188
188
|
throw new Error("@local-storage decorator need to be called after @property");
|
|
189
|
-
const
|
|
190
|
-
if (
|
|
191
|
-
const
|
|
192
|
-
|
|
189
|
+
const t = `${(c == null ? void 0 : c.prefix) || ""}_${(c == null ? void 0 : c.key) || String(a)}`, o = e.propertyMap.get(a), d = o == null ? void 0 : o.type;
|
|
190
|
+
if (o) {
|
|
191
|
+
const m = o.initialValue;
|
|
192
|
+
o.initialValue = () => mc(localStorage.getItem(t), d) ?? De(m), e.propertyMap.set(a, { ...o, ...c });
|
|
193
193
|
}
|
|
194
|
-
const
|
|
195
|
-
...
|
|
196
|
-
set: function(
|
|
197
|
-
|
|
194
|
+
const b = f == null ? void 0 : f.set, g = {
|
|
195
|
+
...f,
|
|
196
|
+
set: function(m) {
|
|
197
|
+
m !== void 0 && localStorage.setItem(t, d === Object || d === Array ? JSON.stringify(m) : m), b && b.call(this, m);
|
|
198
198
|
}
|
|
199
199
|
};
|
|
200
|
-
Object.defineProperty(e.prototype,
|
|
200
|
+
Object.defineProperty(e.prototype, a, g);
|
|
201
201
|
}
|
|
202
202
|
});
|
|
203
203
|
}
|
|
204
|
-
var
|
|
205
|
-
function
|
|
206
|
-
return
|
|
204
|
+
var vc = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
|
|
205
|
+
function wc(c) {
|
|
206
|
+
return c && c.__esModule && Object.prototype.hasOwnProperty.call(c, "default") ? c.default : c;
|
|
207
207
|
}
|
|
208
208
|
var Ze = { exports: {} };
|
|
209
|
-
(function(
|
|
210
|
-
(function(e,
|
|
211
|
-
|
|
212
|
-
})(
|
|
209
|
+
(function(c) {
|
|
210
|
+
(function(e, a) {
|
|
211
|
+
c.exports ? c.exports = a() : e.log = a();
|
|
212
|
+
})(vc, function() {
|
|
213
213
|
var e = function() {
|
|
214
|
-
},
|
|
214
|
+
}, a = "undefined", f = typeof window !== a && typeof window.navigator !== a && /Trident\/|MSIE /.test(window.navigator.userAgent), t = [
|
|
215
215
|
"trace",
|
|
216
216
|
"debug",
|
|
217
217
|
"info",
|
|
218
218
|
"warn",
|
|
219
219
|
"error"
|
|
220
220
|
];
|
|
221
|
-
function
|
|
222
|
-
var w =
|
|
221
|
+
function o(p, y) {
|
|
222
|
+
var w = p[y];
|
|
223
223
|
if (typeof w.bind == "function")
|
|
224
|
-
return w.bind(
|
|
224
|
+
return w.bind(p);
|
|
225
225
|
try {
|
|
226
|
-
return Function.prototype.bind.call(w,
|
|
226
|
+
return Function.prototype.bind.call(w, p);
|
|
227
227
|
} catch {
|
|
228
228
|
return function() {
|
|
229
|
-
return Function.prototype.apply.apply(w, [
|
|
229
|
+
return Function.prototype.apply.apply(w, [p, arguments]);
|
|
230
230
|
};
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
|
-
function
|
|
233
|
+
function d() {
|
|
234
234
|
console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])), console.trace && console.trace();
|
|
235
235
|
}
|
|
236
|
-
function
|
|
237
|
-
return
|
|
236
|
+
function b(p) {
|
|
237
|
+
return p === "debug" && (p = "log"), typeof console === a ? !1 : p === "trace" && f ? d : console[p] !== void 0 ? o(console, p) : console.log !== void 0 ? o(console, "log") : e;
|
|
238
238
|
}
|
|
239
|
-
function
|
|
240
|
-
for (var w = 0; w <
|
|
241
|
-
var
|
|
242
|
-
this[
|
|
239
|
+
function h(p, y) {
|
|
240
|
+
for (var w = 0; w < t.length; w++) {
|
|
241
|
+
var l = t[w];
|
|
242
|
+
this[l] = w < p ? e : this.methodFactory(l, p, y);
|
|
243
243
|
}
|
|
244
244
|
this.log = this.debug;
|
|
245
245
|
}
|
|
246
|
-
function
|
|
246
|
+
function g(p, y, w) {
|
|
247
247
|
return function() {
|
|
248
|
-
typeof console !==
|
|
248
|
+
typeof console !== a && (h.call(this, y, w), this[p].apply(this, arguments));
|
|
249
249
|
};
|
|
250
250
|
}
|
|
251
|
-
function
|
|
252
|
-
return
|
|
251
|
+
function m(p, y, w) {
|
|
252
|
+
return b(p) || g.apply(this, arguments);
|
|
253
253
|
}
|
|
254
|
-
function
|
|
255
|
-
var
|
|
256
|
-
|
|
254
|
+
function ge(p, y, w) {
|
|
255
|
+
var l = this, Oe;
|
|
256
|
+
y = y ?? "WARN";
|
|
257
257
|
var A = "loglevel";
|
|
258
|
-
typeof
|
|
259
|
-
function
|
|
260
|
-
var T = (
|
|
261
|
-
if (!(typeof window ===
|
|
258
|
+
typeof p == "string" ? A += ":" + p : typeof p == "symbol" && (A = void 0);
|
|
259
|
+
function rc(i) {
|
|
260
|
+
var T = (t[i] || "silent").toUpperCase();
|
|
261
|
+
if (!(typeof window === a || !A)) {
|
|
262
262
|
try {
|
|
263
263
|
window.localStorage[A] = T;
|
|
264
264
|
return;
|
|
@@ -271,25 +271,25 @@ var Ze = { exports: {} };
|
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
function He() {
|
|
274
|
-
var
|
|
275
|
-
if (!(typeof window ===
|
|
274
|
+
var i;
|
|
275
|
+
if (!(typeof window === a || !A)) {
|
|
276
276
|
try {
|
|
277
|
-
|
|
277
|
+
i = window.localStorage[A];
|
|
278
278
|
} catch {
|
|
279
279
|
}
|
|
280
|
-
if (typeof
|
|
280
|
+
if (typeof i === a)
|
|
281
281
|
try {
|
|
282
282
|
var T = window.document.cookie, Y = T.indexOf(
|
|
283
283
|
encodeURIComponent(A) + "="
|
|
284
284
|
);
|
|
285
|
-
Y !== -1 && (
|
|
285
|
+
Y !== -1 && (i = /^([^;]+)/.exec(T.slice(Y))[1]);
|
|
286
286
|
} catch {
|
|
287
287
|
}
|
|
288
|
-
return
|
|
288
|
+
return l.levels[i] === void 0 && (i = void 0), i;
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
|
-
function
|
|
292
|
-
if (!(typeof window ===
|
|
291
|
+
function sc() {
|
|
292
|
+
if (!(typeof window === a || !A)) {
|
|
293
293
|
try {
|
|
294
294
|
window.localStorage.removeItem(A);
|
|
295
295
|
return;
|
|
@@ -301,54 +301,54 @@ var Ze = { exports: {} };
|
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
|
-
|
|
304
|
+
l.name = p, l.levels = {
|
|
305
305
|
TRACE: 0,
|
|
306
306
|
DEBUG: 1,
|
|
307
307
|
INFO: 2,
|
|
308
308
|
WARN: 3,
|
|
309
309
|
ERROR: 4,
|
|
310
310
|
SILENT: 5
|
|
311
|
-
},
|
|
312
|
-
return
|
|
313
|
-
},
|
|
314
|
-
if (typeof
|
|
315
|
-
if (
|
|
311
|
+
}, l.methodFactory = w || m, l.getLevel = function() {
|
|
312
|
+
return Oe;
|
|
313
|
+
}, l.setLevel = function(i, T) {
|
|
314
|
+
if (typeof i == "string" && l.levels[i.toUpperCase()] !== void 0 && (i = l.levels[i.toUpperCase()]), typeof i == "number" && i >= 0 && i <= l.levels.SILENT) {
|
|
315
|
+
if (Oe = i, T !== !1 && rc(i), h.call(l, i, p), typeof console === a && i < l.levels.SILENT)
|
|
316
316
|
return "No console available for logging";
|
|
317
317
|
} else
|
|
318
|
-
throw "log.setLevel() called with invalid level: " +
|
|
319
|
-
},
|
|
320
|
-
|
|
321
|
-
},
|
|
322
|
-
|
|
323
|
-
},
|
|
324
|
-
|
|
325
|
-
},
|
|
326
|
-
|
|
318
|
+
throw "log.setLevel() called with invalid level: " + i;
|
|
319
|
+
}, l.setDefaultLevel = function(i) {
|
|
320
|
+
y = i, He() || l.setLevel(i, !1);
|
|
321
|
+
}, l.resetLevel = function() {
|
|
322
|
+
l.setLevel(y, !1), sc();
|
|
323
|
+
}, l.enableAll = function(i) {
|
|
324
|
+
l.setLevel(l.levels.TRACE, i);
|
|
325
|
+
}, l.disableAll = function(i) {
|
|
326
|
+
l.setLevel(l.levels.SILENT, i);
|
|
327
327
|
};
|
|
328
328
|
var ye = He();
|
|
329
|
-
ye == null && (ye =
|
|
329
|
+
ye == null && (ye = y), l.setLevel(ye, !1);
|
|
330
330
|
}
|
|
331
|
-
var S = new
|
|
332
|
-
S.getLogger = function(
|
|
333
|
-
if (typeof
|
|
331
|
+
var S = new ge(), me = {};
|
|
332
|
+
S.getLogger = function(y) {
|
|
333
|
+
if (typeof y != "symbol" && typeof y != "string" || y === "")
|
|
334
334
|
throw new TypeError("You must supply a name when creating a logger.");
|
|
335
|
-
var w = me[
|
|
336
|
-
return w || (w = me[
|
|
337
|
-
|
|
335
|
+
var w = me[y];
|
|
336
|
+
return w || (w = me[y] = new ge(
|
|
337
|
+
y,
|
|
338
338
|
S.getLevel(),
|
|
339
339
|
S.methodFactory
|
|
340
340
|
)), w;
|
|
341
341
|
};
|
|
342
|
-
var
|
|
342
|
+
var bc = typeof window !== a ? window.log : void 0;
|
|
343
343
|
return S.noConflict = function() {
|
|
344
|
-
return typeof window !==
|
|
344
|
+
return typeof window !== a && window.log === S && (window.log = bc), S;
|
|
345
345
|
}, S.getLoggers = function() {
|
|
346
346
|
return me;
|
|
347
347
|
}, S.default = S, S;
|
|
348
348
|
});
|
|
349
349
|
})(Ze);
|
|
350
|
-
var
|
|
351
|
-
const
|
|
350
|
+
var xc = Ze.exports;
|
|
351
|
+
const pe = /* @__PURE__ */ wc(xc), kc = x`
|
|
352
352
|
:host {
|
|
353
353
|
}
|
|
354
354
|
.cb-wrapper {
|
|
@@ -505,99 +505,99 @@ const he = /* @__PURE__ */ wt(xt), kt = x`
|
|
|
505
505
|
color: white;
|
|
506
506
|
}
|
|
507
507
|
`;
|
|
508
|
-
var
|
|
509
|
-
for (var
|
|
510
|
-
(
|
|
511
|
-
return
|
|
508
|
+
var _c = Object.defineProperty, Cc = Object.getOwnPropertyDescriptor, Me = (c, e, a, f) => {
|
|
509
|
+
for (var t = f > 1 ? void 0 : f ? Cc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
510
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
511
|
+
return f && t && _c(e, a, t), t;
|
|
512
512
|
};
|
|
513
|
-
let W = class extends
|
|
513
|
+
let W = class extends ie {
|
|
514
514
|
constructor() {
|
|
515
515
|
super(...arguments), this.color = "primary", this.svg = "";
|
|
516
516
|
}
|
|
517
517
|
render() {
|
|
518
|
-
return
|
|
519
|
-
>${
|
|
518
|
+
return s`<span class="cb-icon color-${this.color}" part="base"
|
|
519
|
+
>${B(this.svg)}</span
|
|
520
520
|
>`;
|
|
521
521
|
}
|
|
522
522
|
};
|
|
523
523
|
W.styles = Ne;
|
|
524
524
|
Me([
|
|
525
|
-
|
|
525
|
+
r({ type: String })
|
|
526
526
|
], W.prototype, "color", 2);
|
|
527
527
|
Me([
|
|
528
|
-
|
|
528
|
+
r({ type: String })
|
|
529
529
|
], W.prototype, "svg", 2);
|
|
530
530
|
W = Me([
|
|
531
531
|
k("cb-icon")
|
|
532
532
|
], W);
|
|
533
|
-
let $
|
|
534
|
-
let
|
|
535
|
-
return (
|
|
536
|
-
let
|
|
533
|
+
let $c = (c) => crypto.getRandomValues(new Uint8Array(c)), jc = (c, e, a) => {
|
|
534
|
+
let f = (2 << Math.log(c.length - 1) / Math.LN2) - 1, t = -~(1.6 * f * e / c.length);
|
|
535
|
+
return (o = e) => {
|
|
536
|
+
let d = "";
|
|
537
537
|
for (; ; ) {
|
|
538
|
-
let
|
|
539
|
-
for (;
|
|
540
|
-
if (
|
|
541
|
-
return
|
|
538
|
+
let b = a(t), h = t;
|
|
539
|
+
for (; h--; )
|
|
540
|
+
if (d += c[b[h] & f] || "", d.length === o)
|
|
541
|
+
return d;
|
|
542
542
|
}
|
|
543
543
|
};
|
|
544
|
-
},
|
|
545
|
-
const
|
|
546
|
-
function xe(
|
|
547
|
-
return
|
|
544
|
+
}, Mc = (c, e = 21) => jc(c, e, $c);
|
|
545
|
+
const Sc = Mc("1234567890abcdefghijklmnopqrstuvwxyz", 10);
|
|
546
|
+
function xe(c = 10) {
|
|
547
|
+
return Sc(c);
|
|
548
548
|
}
|
|
549
|
-
function
|
|
550
|
-
return new Promise((e,
|
|
549
|
+
function Ac(c) {
|
|
550
|
+
return new Promise((e, a) => {
|
|
551
551
|
try {
|
|
552
|
-
navigator.clipboard.writeText(
|
|
553
|
-
e(
|
|
552
|
+
navigator.clipboard.writeText(c).then(() => {
|
|
553
|
+
e(c);
|
|
554
554
|
});
|
|
555
|
-
} catch (
|
|
556
|
-
|
|
555
|
+
} catch (f) {
|
|
556
|
+
a(f);
|
|
557
557
|
}
|
|
558
558
|
});
|
|
559
559
|
}
|
|
560
|
-
function
|
|
560
|
+
function Lc(c = !0) {
|
|
561
561
|
return new Promise((e) => {
|
|
562
|
-
const
|
|
563
|
-
|
|
564
|
-
const
|
|
565
|
-
e(
|
|
566
|
-
}),
|
|
562
|
+
const a = document.createElement("input");
|
|
563
|
+
a.type = "file", c && (a.multiple = !0), a.style.display = "none", a.addEventListener("change", () => {
|
|
564
|
+
const f = Array.prototype.slice.call(a.files);
|
|
565
|
+
e(f);
|
|
566
|
+
}), a.click();
|
|
567
567
|
});
|
|
568
568
|
}
|
|
569
|
-
const _ =
|
|
569
|
+
const _ = pe.noConflict();
|
|
570
570
|
_.setLevel("info");
|
|
571
|
-
class
|
|
571
|
+
class Oc {
|
|
572
572
|
constructor(e = {}) {
|
|
573
|
-
this.id = 0, this.url = (e == null ? void 0 : e.url) || null, this.orgId = (e == null ? void 0 : e.orgId) || null, this.botId = (e == null ? void 0 : e.botId) || null, this.convId = (e == null ? void 0 : e.convId) || null, this._options = e || {}, this._ws = null, this.started = !1, this.connected = !1, this.onMessage = (e == null ? void 0 : e.onMessage) || null, this.queue = [], this.pause = (
|
|
573
|
+
this.id = 0, this.url = (e == null ? void 0 : e.url) || null, this.orgId = (e == null ? void 0 : e.orgId) || null, this.botId = (e == null ? void 0 : e.botId) || null, this.convId = (e == null ? void 0 : e.convId) || null, this._options = e || {}, this._ws = null, this.started = !1, this.connected = !1, this.onMessage = (e == null ? void 0 : e.onMessage) || null, this.queue = [], this.pause = (a) => new Promise((f) => setTimeout(f, a)), _.info(`WSC: Created, url: ${this.url}`);
|
|
574
574
|
}
|
|
575
575
|
connect(e = {}) {
|
|
576
576
|
if (this.url = (e == null ? void 0 : e.url) || this.url, this.connected = !1, !this.url)
|
|
577
577
|
return _.error("WSC: URL must be provided to connect"), null;
|
|
578
|
-
const
|
|
579
|
-
_.info(`WSC: Connecting to ${
|
|
580
|
-
let
|
|
578
|
+
const a = this.url;
|
|
579
|
+
_.info(`WSC: Connecting to ${a} ...`), this._ws = new WebSocket(a);
|
|
580
|
+
let f = setTimeout(() => {
|
|
581
581
|
_.error("WSC: connected message not received in time - terminating"), this._ws.close(), this._ws = null, this.connected = !1;
|
|
582
582
|
}, 15e3);
|
|
583
583
|
this._ws.onopen = () => {
|
|
584
|
-
_.info(`WSC: Connection to ${
|
|
585
|
-
}, this._ws.onmessage = (
|
|
586
|
-
let
|
|
587
|
-
if (!
|
|
584
|
+
_.info(`WSC: Connection to ${a} opened`);
|
|
585
|
+
}, this._ws.onmessage = (t) => {
|
|
586
|
+
let o = (t == null ? void 0 : t.data) || null;
|
|
587
|
+
if (!o)
|
|
588
588
|
return;
|
|
589
|
-
let
|
|
589
|
+
let d = null;
|
|
590
590
|
try {
|
|
591
|
-
|
|
591
|
+
d = JSON.parse(o);
|
|
592
592
|
} catch {
|
|
593
|
-
_.error(`Failed to parse message: ${
|
|
593
|
+
_.error(`Failed to parse message: ${o}`);
|
|
594
594
|
return;
|
|
595
595
|
}
|
|
596
|
-
(
|
|
597
|
-
}, this._ws.onerror = (
|
|
598
|
-
_.error("WSC: Socket error"), clearTimeout(
|
|
599
|
-
}, this._ws.onclose = (
|
|
600
|
-
_.info(`WSC: Closed - code:${
|
|
596
|
+
(d == null ? void 0 : d.type) === "connected" && (_.info(`WS[${this.id}] Connected`), clearTimeout(f), this.connected = !0, this.sendQueuedMessages()), this.handleWscMessage(d);
|
|
597
|
+
}, this._ws.onerror = (t) => {
|
|
598
|
+
_.error("WSC: Socket error"), clearTimeout(f), this.connected = !1, this._ws = null;
|
|
599
|
+
}, this._ws.onclose = (t) => {
|
|
600
|
+
_.info(`WSC: Closed - code:${t.code}, reason:"${t.reason}"`), this.connected = !1, this._ws = null, this.reconnect();
|
|
601
601
|
};
|
|
602
602
|
}
|
|
603
603
|
reconnect() {
|
|
@@ -620,11 +620,11 @@ class Lt {
|
|
|
620
620
|
}
|
|
621
621
|
// Attempt to connect, and reconnect if failed
|
|
622
622
|
async startOld() {
|
|
623
|
-
let e = 1,
|
|
624
|
-
for (;
|
|
623
|
+
let e = 1, a = !0;
|
|
624
|
+
for (; a; ) {
|
|
625
625
|
if (_.info(`WSC: start: connecting, attempt ${e}`), await this.connect(), this.connected)
|
|
626
626
|
return _.info("WSC: connected"), !0;
|
|
627
|
-
e++,
|
|
627
|
+
e++, a = e <= 4, a && await this.pause(1e3);
|
|
628
628
|
}
|
|
629
629
|
return _.error(`WSC: start: failed to connect after ${e} attempts, exiting`), !1;
|
|
630
630
|
}
|
|
@@ -676,22 +676,23 @@ class Lt {
|
|
|
676
676
|
});
|
|
677
677
|
}*/
|
|
678
678
|
}
|
|
679
|
-
var Ht = Object.defineProperty, It = Object.getOwnPropertyDescriptor, H = (t, e, o, a) => {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
679
|
+
const Hc = "fffbd0c40003a861a6f64deb05ce8fbd1dc1ee6979000bf3230f3195138b950cbe3649439256307747d31c26065d09cfae70d799f0a043c6a90008c0101188082314680d008619c9079b61dc806a921a220095277a60d4131e44143d53814e10f4d06ba6491eb478900a8d59016632a23e0fa358875c770146cc650c1c499dcb9b0965d7500106c321427219428febbdafb2b5d76979a75ae40018d025f96f71bad4b0257666051808e5b74c34bf2db9660bb0e24b2a35886616f617013a24104242304600910b1130dc7b4e81750bb1216e880432ac0d75b0a2a1834f45e8e9a279a9c6c22cc9a7e3ac01cc5335e8c0d97180c960bad7998ce9ac025a2f1a0c888e02c46508045a96a20a60c91980100828a917425f96ddc64bc2ea19146c50b00bde68319005d85d10e462314ae197f0b48c74bfe986ced9dac3a9bbfad7e8f7ac2a525253c6e36cad4dd7c20e2ec4842dba61cbf30f0f7d628635005a66e63ec63560f22a48c694034a695617e603c12c05077310c0923018053379a48d1e921e409b28546c46619d8fa6c9b019ea20762d318e34c6291699d98662a61861204fda2a7933d57c1d023391f8605262a1598449c1ca332e084cb25a3198ac94666361b99f05c67c1aba0151b18d456ec8e0b4c667924153ba632409114cc587c7867ca8c047dcd7a834bc8d2a033a141df48ab82a803bd1a8651a215e356c6161b062114cb841dd89589b05f0d10ad255c4d70d8ad245e4abcd6b33fca8d6af5cc3db8d9244511ab2206a56c885690ad12cc1ba16308528d539daa40b22baf35eb61a7044a988132e926b754d82ea8ca85199ad5c42c0d62d35eb8d7301d56ef5b26c451748198c2a22c319b24ab67a246b186c8af0d54354c0957c342d9a2a4d7b3245e585c4d7254e107501450bb46abbfa38b2331996d9bae08953352c48af43d5c7b08b6572a44e0b11775fd8cbb2b0b0343230c6c5add2ca5ac8d549765977ff78e59659ca49adde749c6789409753bcff43d1a8d46a532da5a5a5a5a5a5a5a6a6a6a6a6a6a6a6a6ab671c71c71c6ae4141414140a0a0a0a0c2b06e0b039c1829859998b165991a5d2aa598e0a714183727471921e5721a1037a9c2fb7a1b9c0dc99c6ab19b821219de39219b82a521908908987d2ab1aab194159219cb31211fffbd2c42383f4bda0d20ffba7c624b3dd01eee938b82f149f14b82951c14d290908c90d294c90a598b0948572ce584a434a54a52b4a42c3829592199219219a52921160908d295294b1c79b70dc9b72dc9b70dc15b71e6dc37058e3cdb8e34db9e3cadb82c37056dc95f1e7c6f1e58e3cadb8f2c4845721f96242f2c485e7214865721f962422c484721c845890cb121f9c872116242f2b908e4390bfcae432b908ae43f390e432c486721c85e5890cae432b90ce42908b121f9c8721962432c484721c865890ce4290bcae432b90bcae43390a432c485e58908e4290bcb121f95c86721c865890cae432b90cae42ff390e422b90cae422b90fcb121795c865721795c86721487e721c87e58908ae422b90bcb12195c845721796242f2c48658908ae43ff390e43fff390e422c4865890cb121ff9c872196243f2b90bcae42fff2c48458908b12116243f2b90ffcae43fff2c485e5890bfffcae422c485fe5721796243f2b90bfcae42ffff2b90ffcae432c48460a40a6618626a61ce3d466883d6645657458106350e2d6321a39532150c231a421532413d3399952b690e8430cc534d4ad0638ad993418742c24072f7385897cae5e348120397e5e348521397e5e2b734cd8364b06c160d93364d82c0ea6838ea63a0e863a8e9e581d4ca0283cd5d284b050795942650143e6e1c1b87058706e5c95b9370e4dcb92c382b706e1c15d22c522ba7e574cae9f9d2a458a474a995d32c52ff2ba4574cb148b14bfcb14cb148ae99629795d22c532c533a74cae995d2f3a74ce9533a74cb148e9d2f3a74ce9d22ba474e99d2a458a674a99d3a65748ae9f9d2a474a91629962995d23a748e9522c53f3a74bce9d3f2ba65748afa9f5ea57d4b1d3cafa963a163a7963a163a1f5ebfe57d3fcfa742bea7d7a15f42bea7d7a1f5e9e7d3af963a9f4ea57d4fa752c74f2c75f2c743ebd3fcafaf963a7ff963a79f4e9fe57d7ce9d22c532ba474a91d3a674a97962996297f9d2a658a458a658a458a4574cae916299d2a474a995d22c522c533a54bcae915d32c522c52f3a548ae99629795d3f30c6831b320f483c329501f8331a98f233a001f9342646273295483d326307f03331098c307e52ae3189883d3186475630e704da30e744db320f0627329501f831040411307e4fffbd2c42383f3fdacd40ff6b68668b3dc81eeed7841031044a54318984112a8c4e641e83f26208082260fc0822560fc183f041e183f00fc183f20fc983f20fc983f20fc95896e60bf863460bf86365805f8c17e0c68ac31b2b5f8f1bc68d7fc68d7f5fcaf1b35f97e35f97e2c2fc585fcb0bf9e36bf9617e2b5f8d7f5f8ad7f2c2fc6bfafe56bf9e34bf79617f3c6f1bf2b5fcb0bf9afcbf95afc585f8d7e5fcb0bf611fc419f8f08fe7833f1e0cfcf847f308fe7833f1f067e3c19f9067e308fe7c23f8c23f9067e40ff3f8067e20cfc047f00cfc611fc81fe3f207f9fc033f211fcc0ff1f903fc7e423f803fcfe423f903fcfe00ff3f8833f011fc847f211fc047f303fc7e211fc01fe3f211fc033f011fc7067e40ff3f908fe023f808fe00ff1f903fcfe019f803fc7e419f808fe019f9067e40ff1f9067e211fc01fe3f3c19f8e0cfcc23f9067e40ff3f8067e023f808fe60cfcc19f8c19f9847f211fc047f011fc033f1067e60cfcf833f25808830881d435e33e33263062346d46d31d427b31d41d4346d3c633201d5308827a308846d351212e32267a39ea7a34b92f3221d537552f32252e2b4b8dd5c80c88c84e7a4bcb0ea9ba9e315a5e697baa644cf473da5e58220c894bcb0449a5e449612ff2c110584bcb0447991044191244160892b4bfcc88224ac882b2a4d0a114ca8114c44114ac442c089e562279588856c458633e362f3e362362623e3e3f2be23e3e32b633e263f2b88fffff2c44f95c47f96227ce2224e2620b11071310713105889389882c44f95c41c44496220ae23cae20e2627cb1127111257105889f2c449c4c416220ae24e2224e2620ae24b1105713e588838988389892c44f9c44416224e2220ae20e2223cae27cae23ce2220e2620b1105711e5712571271111e57127131257127111271313fe713125712588938988388892c4479c4c41c44416224ae24e2220ae20e2620b11058882c44ffff95c4795c4ff95c415c416220ae20ae20b11271310571271313e58882c44f95c49c4c4ff95c416224e2627fce2224e2220e2220ae20b111e57107111071111fe5888ff389882c03a18838cc99ca16b996b8501ad09db99db86c161e34cb0c730c6641d4c664f7cc570e54c570570cb08734d2b4b08ac360cb5c284c86c574c57428fffbd2c41e03f239a2e40f7370c65fb39cc1eeed980c364364c360730c364edcc360364db2d936c734f9bcd3e6b60db0d82c734db3cd36cb60adb27068399d732588319d20e7068399d20de5850f9d75405850796140575c3535335252353c32c611e1291a9e11614cd4d4cf0d4cf0948e8684e8684b14074140574058a12c509d0d09d0d09d0509d0501d050796363fcaf64af67ffcb1b257b1fe58d8f2b74375742b742c3a9baba15ba161d0dd1d4add0b0e9e6eaea56ea56ea5874374752c5096280e8680b14057405743e57407414058a12ba12ba02c50f96280b141e58a12ba12c5096280add0dd1d0dd1d0dd5d3cb0ea6eaea6e8ea58752b7537574374742b74374752b752c3a95ba15ba9baba1ba3a161d0dd1d4b0ea58742c3a7ffff96367ffffffffffffffffffffffcb0e856ebe5874f2c3a961d4dd1d7fcadd4b0e9e6e8ea58752b752c3af961d4add3cb0e86e8ebfe6e8ea587537474f2c3a161d7cdd5d4dd1d0dd5d4add3cc388588c9e8220c4b91b4c989388c58898cc5b4740c2a48c8c58c38ccb8898cc9ec220cc84c80c4b84bcc224754d4491b4c62988c63588ce2b88d2e224d2e224b0449f8f3d1a5c9719104499124415a5e6971106973aa58750d2e220d2e220d898cf8d8cd8d8cd898cd8d88ad8cd898cd8988b1c7e586336363f2c711b1311b1319618cd8d8cb0c6586236262363632c319618ccb8b8cbcbcb05c565c582e32e2e32f2f32f2e32f2f32f2f32f2f2c1796220ae24ae20b113e71313fe71111e5888388892b882c449b1b115b11b1311b13116188d898fcb0c66c6c45862363632b632b63ff2c319b1b1796224ae24b111e711125711e5713e5713e58882b882c441c4c4f9c4c4ff9c4c4f9c44495c49c4c416224ae24e2224e2627fcae20b1105711e5711fe7111071111fe57125713e57106c6c46c6c45863f2c3195b115b19b131796188ad8bcd8988b0c45862363632c319b1b19b131f9618bcad8fcd898cad8bcb112571257125888f2c44ff95c495c4ff95c47f96220e2624b11258882c441c444ffff96224b112571257105711e588838989f2c44d3045045310b0a932632e232630623562062316226236620e32c1b198850229885919194a88598220e81fc431160623589e23588622b18cde2988de3788c63588fefffbd2c42083f3559ee80f774bc682b4dcc1eee9782388c6278cb0b1161623388e32b588ac62398d633188632c0c46318c66319c46710c66310c66b1ac66318c46310c46310c46710c6563118c431f98c63199c63118c631960e3f318862f2c0c7e6310c45818cb031960622bc678f1163196319e3c658c478b1163179e2c658c65788f1623c58cb188f1622bc678b115e33c788f1623c58caf195e32bc5e71221c5885710e24438914ae29c58a71621c48a588a5714b110e2c438910e245f38b13ce2442b8a71621c58a5889e5714ae295c42c442b8a5713cae29c48858885714b110e24538910af115e22bc658c478b17f95e33c588af1ff9e2c678b19e2c678f1163179e2c478b1ff95e3f2c62f3c78fcb18bcaf196317f95e22bc7e5788f163f2c632bc5fe58c678f195e22c62f3c78bfcaf1163196317f95e32c622c633c58caf11e3c4578caf1f95e32c633c78bfcf1622c632c633c588b188af19e3c5e58c658c678f11e3c678f17ff96319829829986109a99a6b1319ef03a19ef0cc99150cc195d8cc99a683a18730f598ca89e99a615d995d2819fbecc9d755d95c54698a626980d26559dc71520c68357471520c6cc33075d8ea63a0ea68345468320e63a0e875d20c683a0c63aa0fe5841cd98664b0831a0e8318ea3a95a0e563a160752c20e63a8e86838e858418b03a160753148523309353148c22b14cb02918a42918a629160522b14cc5314cfaf52bea7d7a163a963a1f4ebe7d7a95f53ebd4faf43ebd0afa795f53ebd4afa963a1f5e87d3a963a15f43e9d0afa79f4e858e858e858ea57d0afa963a9f4ea7d7a9f4ea7d3a9f4e857d0afaff9f4e9fe7d3af95f52be858e857d4faf53ebd0faf53ebd4afa1f5e857d4b1d0afa9f5ea7d3a7963a15f43e9d0faf52be87d3a163a163af95f52be858ea57d4faf5f2bea58ebe58e87d7a15f42c742bea58ebe57d7ffcfaf52be9e7d7af95f5ffff2c75ff2be857d7ffcb1d0faf52c742c742c753e9d4afa95f52bea57d3cb1d4afa95f52c742bea57d0afaff963a95f43e9d0afa7f95f53ebd7fcfa753ebd3cafa15f42c743ebd4afaf95f5f2c752be857d7fcb1d5508000160382b0e0d954f0d94654deb7acc397acce7d10dea4f0d4b2c4cb02c4d311a0ad3134c0aa34c4ef33b8ab3059193460b03fffbd2c41a01f0c5a2f0aeeb34c619359dc1dde6682c04b32403834f43832403932443930e03932403932413c3240392c070648072561c9870489a7a48161c1b972587258726e5c9b87265e51ca2c65cb9cb2e65fe1cb94565ce59634a94ad21a44a584869529a4485694ad216129a54865cb1972e72e51962c65cb1972c565cb05ccbcb32e5ccb162b2c56b79acb1acb1aeb9acb1aeb9acb1aeb15ac6bae56b15ac56b15ca72485894e590e490b1295ca5894ae52b90ae539252c49e724a5897ce494b121cb2f9cb21cb29cb21c9215ca5890e497ce597cae42c4a57215c85894ae42b97cf9e4f9e3cb1c15f1e57c796393e38ff2be0f9e7caf92be0f8e4af92be0b1cff96392be0f9e0b1c15f058e0b1c796382c71e7cf3e7c7257c95f258e4b1c95f1e58e0af92be4b1c1639f2be7ce493cb127f9c9215c9e5721c9215cbfe72ca5893fcb1279c921cb29cb2f9cb29cb21cb29cb295c85890ae42b90ae42b93cb12795c857298701c1609034f2413901eb3094683091733344d033e0d132acaa34c4ee30957434c1313244382b398d3c4f0ace730e13d34f53d37ac3937ac3830e4382c07261c870648a786ca27a580e4ce244e44e4ace4ce0e4ce240ce240b072723226727058382b90339392b382b382c1c99c1c9c89c960e0ce4e0ce4e0b07067273e6727258392b38ff2c1c19c1c960e4b070670705838f2c1c19c1c99c9c19c1c159c159c960e4ace3ce44e0ce4e3fcce0e0b07058382b38339382b3933839396439252c4872ca72ca72ca57295c872485890ae53964f3965f39242c4be58e4af92be0b1cf96383e783e383e382c727c707cf07c727c73e58e0b1cf9f1c15f058e4f9e0b1c16382c727c7257c95f07cf27c707c727cf257c9f3c95f258e3caf83e792c73e58e0b1cf96392be0af92c7057c9f1cff95f058e0b1c16382be4f8e3ffcaf82be4b1c795f057c16383e392be0af82be4af82c71e57c796393e392be4f9e7fcaf9f2be4b1c795f3fe7c7258e7caf93e392be0b1c79f3cf95f257cf95f1fe57c79639ffff2c70a0800079603ecd71612cb09de71381f66aac420687e4226650cdc6176680617668061769dc58268332932930fb211343e211355621032115563328328343f0fa30fb0fb33280fb321021032112102b43e32112112b329fffbd2c42b01f3f1acdeaf777286a1355cc1eeecf82c1f467d1f5e7084207081f456c895977e65db2265d32265db207081f4583e8cfb3efccfa3e8b07d960fa33ecfb3fbfa2bfb2bfa3fbfa3fafa3fafb3fafb3fafb2bfa3fbfb3fafb3fafa2c7d963efcafe8fefe8b1f5e58fb3fafbf2c5d1dddd9dd5d1dddd162ecaeecb1747777477574577458ba3bbbb3bbbb2c5dff963ebfcb1f657f5e57f457f5e57f5e58fbfff3fafbf2bfa2bfa3fafaf3fafbff2bfbffff2c7d963ecfefe8fefeffffcb177e577658bb2c5d7962e8eeeebfcb17458bb2c5d1dd5d962ecaeecaeecb176577458ba2bbb2c5dff95dd15dd95dd1dddd7f95dd162e8aee8b17658ba3babb3baba3babb3baba3baba2bbb2bba2bba2c5d9dd5d15dd1dddd162e8eeee8b177e7f5f7fe58fa2bfa2bfbff3fafaf2bfbfff2bfa2c7d9fd7d7963ecb1f47f5f658fb2c7d163ecafebfcfefe8afebfffcfefecb1f5e57f457f7e58faff3fbfaf30e326333624e333632e231d546d312e1d530a8233323210b36ac7a31ec7a2c4f46eaba86318c46f18c67719c47315c6631ac46f19c658754c89224dd4c84f204bcc894bcd2f4bcd2f224e7a4b8ad2f34b8893220882c11056441a5e44191297160882c112644113e711125712588938989389893898838889f38889f388882b8838989f2b882c447f9618cb0c46c4c658633626336262363622b632b633636236263362622c319b1b19b1b19b1b195b179b131f9b1311b1311b17196188ad8cd8f88b1c656c65862363622c3195b115b196188d8d88ad8fcd898cad8cb0c45862363622c3195c415c495c416227ffcb11258892b8838989389892c441c4c416224ae20ae23ffce2620d8d8cad88b0c656c456c658632c31f95b19618cad88b0c5e6c4c66c4c7e5863362632c319b1b1f95b11b1319618cd8d88b11058882b892c4416224e2220b113e5889ffff2c4479c44415c415c4ff96224e2620b11257125710713125712571057105713e58892b88f38988388892c441c4c4796224b111e58882b882c44f95c416227ce2624b1105711fe58882b882c44795c4ff96223cae20ae23ffcae26f331e433b76dc30b95e3a3df73449133dd72835791335782f30bd1236a87a37d8c730b8c630bc7a331c2e357df730b82f31ec7a30bc2f30b87b344daa3fffbd2c41e83f005a0ee0eeb3706ce341c42bdd0003187a31e8c730b82e2b44ccc60b8cc61e8c7a31cdaa1e8b03d960c731ecc731ec7a30bc2f2b1e8c2e1e8b03d1ae5c6bbd16171ae5e6bbd15ae35cb8d72e2b5e7e97161795ae35ebcd7af2b5c6b979af5c6b97161795ae2c2f35cbffcd7ae2b5c56b8b0bcad715af2c2f35eb8d7af35ebcd72f35cbcd7ae35ebcb0b8b0bcb0b8ad79ae5e585e56bcb0b8ad79ae5e56bfcad796179ae5c585e6bbdff9af5c6b971af5c6bd7962e2bb8eebceeb8aeff2bbcaef2bbcb1795de58b8eebceeb8efbcaeffff2bbceeb8efbcaeef2bbbcaee3bef3beeffff2bb8b171df7962f2c5c58bfcaeff3bee3baeff3baf2bbceebcb171df795dc775c58bbcb17962ef2c5c77de58b8aef3bae3bae2bbcaee3bae3baf3baf3baf3bee2c5e77dde58bcaefffff2bbffcaef2bbfcaeef2c5e577ff9df7962f2bbfcaeef2c5de577162ef2bbcb17fff95de577960360c731e34da20e50cb58e4cd688b08d2b0734e5d9e30c730360b03306576576658639a61ae76c639a76c6b40958561b2695a76c561b0639a5847db58458360adcd2c58666c9b07615846e6d8658364dcc730dcc730cd8730acd83364d8f3361cc2c1b256e6959b258360acd92c1b1fe66c9b06e69b066c1b258364c741d4c751d0ad0631d47431d074f2c0ea63a8ea63a8e8563a160d83360d92b360acd82c1b2566cf99b06c99b26cf99b06c99b06c98e83a1607431d10631d4742b1d7cc751d0c751d0c741d3cac752b1d0ac752b1d0ac752c20e63a0ebe63a0e8563a18ea3a98e83a158e8563a958e863a8ea581d4b03a958e863a8ea63a8ea65094058284aca0f2b284ca1287fcca1287caca1ff3280a13284a1f2b280ca0280ca0280b0501594058280aca02c1405650960a02b284ca0280ca0280b050160a1f3280a03280a03280a1ff3284a1f2c14265014258284aca1ff3284a1fffff2c1b3e58363fffffffffffffffcacd8ff2c1425650194050799425095942565079940509594258284aca12b283caca13284a0ff2b284b050160a1f2c1405650194250960a0f2b284aca12b283cca1287fcaca12b284b050da03028040204010140a02010080300640ae302500803053c24f30d7c2a930ca42cf31c4921a300f0001300c4005305cc04f303cc03e34620fffbd2c41c003485d91db9ff00062e346243bfd000a9035bccab50300ac600d80006071010c603180c6611a82666027812018002a546032072608a05e690660a6330a28160074dc46f0c033306302b302a06234f02603428582329635f2eb1698880854e0c110038c168038c094064c008008d454d7cc660a5cca5c1d4c4f03899c459a1b8ef3180e80e98018048b009ba542604818c60701ba620e09e60de09e0d024120006cca729e4ca5b2baf182ea7acba030220082203b14028160104972b0109332164c5a76aafeb228dc6dd359e5dba0a2ff2c00c182d01c182d03d180c00c980c801c4eebff1779ae3fb76efa7ba8ca8927c39707a7a27c79803803958039803803980380398030031583a983a04c1583a45e2f14a771593bcf4b7e24f32e789492ebff72f45ee5ebc61540c4603207e180afe17007f53b0c00e4c44c60c00c8c50fd0fffd050d050d1c65d6a2ffffa251aa27c567d0fffffa219580133ba3f75e3292edc1863a4ea46dd474fffffffffffffffffffffffffffffffd4f980d0090981280b6984e00481848a1621869a25d18f32518198f263d19bd283d1a7d2d1b1b0fcf639bcf8c85987b8ff61db16c151d0749fb9cd72df399c764769881e1d19834809d9862389858ce9c5ca99b38cc9a0c149986cd1bcf161d83ce1ea3a91bc8f1997c611a16ce1bcaf21c32d31ade9b19160f191c9a9a68b599fa7d1986450b14e60e03a6271126471166450aa62a03a60e03a60e8a464698867d9f867f99062a83660d0403a0e98300e98a029983e0d2439810069810029810069818068602a8ab8ab3a01500a912a95c5987095b948b016d5fdb3ff4b0ee54255006ed19788c17050c2d0b8c49128c320c41c18a6f1728b945ca4e29eeef1fe56c8a800980801980402d79dc7a4a01980002980804980c03980c02df30180530902530880542c301402309446311448311c4830982528014c03000c23098c05008c05022b592500e2b477b0ffcea5d66d967ffffffff94b20c5dcb0cc4989356a6d779ddeb2ad6b755f57765b2996dda596d3bf38d6869da96d9d53434ef4ba1a7fa3384aa5d6bf2ab19a6ea300c013730b805f33126021130cb4230301a424a304f4122302905f9309b01e5308bc0253115c16431c9c4aa319809b1348b010e360fddfffbd2c41b83e62974fe0ff1f1056daadc81ff69e01033cce9a13e9998033720c8e03095404e3043c257309e00bd30074315306a01b93964c434b07666b9b5a486915398b4c4670561abd5a6ab341a9c58670859b40ea6965b8aa08c26b43291e438b21c5630e828906a18255402a4302824c4020012f82a2415279830b466f22268084188a8850f8238c0276895daa096a1e4406a530a427eb58491f081545ea7a311caba0d9712c06c2245b452039921093ca2624399cb1b2c29eb96a1f6c6b339233293c2e2af1b85c542519395617227c748270778c241b5976196923c2e27c2ba5fc4c49b6b75f582ca7ea3735ffffe0ab665746b4266378e2dfd7fffffffffce36c31231de4bfd191ff117fb8c19504f0c09013dcc8583304ca622984cb0e2c3cd17e039c8a86738190f763626173e280ca4e36eeb34d7401280e67a692ccc6a3708d58face8f60fa0b0e9df6268c2ee3714d7e9284d281eb4c64d280d7ecbbcac398c654a60c39c654c650e70d285280c650650cbbc650b032a63283286532530632a1ce61cc32a561cc61ce32863281ce612012061221206072070607207058038f2b03930390903d094d26834fa4ad216349a44a7a741e9d06952f95a42b485694b090ad2ff9a548695214492c25f34893cd3a62aa434a93cad29a548584869529e8485694d2a434890d22534a94b090b094d2242c2534a90d3252b4a5690b090d2a52b4a691215a534890d224f372e7fcb0e0b0e7ffcadc161c7fff95b92b73fffe56e3cadc7e5dffff372e3ffcb0e7cb0e3ffcb0e7fffcadc161cf95b82c382c382b70587058726e5c95b9ff370e3cdcb8f2b7058725873dff2c38ef9b871fd3a21dfffff65f302a03bf3183c6d2327a41d139209453312084833623919f370206d535458e2633ec4e26388c9fe23a48b6a13da898f333712b75337150153ed089223371145331208dc430be454831cd84203042842030be442035b23231156d2c15065408a685216685088685216568515a14685a1665408856541888549950229a1622959715bd15bd95bd9973d961eccbcb8cbcbcea510b08858452ba8345453444434444345a9345452c2296114d1114ad14d1110d1514d1110ad10d1514b08a575258442c549a2541a2221a2a29a22296110d1114b08868888584434fffbd2c46c83f3bd56de0ff77085de2a1ac1fe6e4054534445344452c2215a21a22215a29a22279a2221a2229d4a296110ad10b08a68a8a5844f345442ba82c2296113cd1110b08a568a68a8be58442b45f345452c22f9a2229a2a2f9a2a296110d1114d1514d1514b0886888a58442b44f345442b442c229a2a296117fcb089e68a8a5844f2b442b453454434545345443a844345453454434444344a834445345452b443a94534444344452c221a2221a25416114d1510ad10d1514b08868889fe568be68888568868b5256886888a568a68889fbf9dbbf45c58018cc0620d8cc4e31388c3620d88c5630d8ccde23388e1e2878ce6e33d88d1e32788d3e24f88c660a18cdae32788c9e2358cd7625d8ce1e2358cef62e58cd0e2438cc6e2358cd762438cc6e33588c9e31b8cc3620d8cc162178cb00b1182c60b1182c40b11f8dc456e33f1388b1e3371b88ad8cf8b88f8f8caf88d8f88f8d88b0c65862363e32c719b13195f196388f8d8fcf8988b1c65863363632c3195f115b196188ad88d898bcd8d88d898cb0c458e32be32c3195f19b1b19b1b19618cd898cb0c47c4c456c66c6c65862f36362363632c3115b115b115f11b1b19b1b115b11b1319618cd8d8cd8d88ad8cd898cad8cd8d88d8d88a310b0c46c7c66c4c456c66c6c47c6c66c6c7e6c6c458632b63362622b633636336363363e2f363623626336363ffd15b1f9558cb0c47c4c66c6c458632c31ff9b1b17f95b11b1b17f9618fcb0c458622b632c319b131f9b1b115b115b17ffff9b13196188d8988d8d88ad8ffcad8bffcb0c7fffa363622b622b62fecf95ff2aaf2c084258217cce061080c9c9655cd3ae3270dd952720e33eed24e068381cc4203dc0d957381cce0781a4e33eb494f70aed24cf704eb8cf701080cf702cc8c6f45a0cc2b7217cc9c81bd0c58b0ad8c58a0adcb02109829a2101829815b188400a61d6ca69a9b5b9554c35314c35314d2b3eccfa3e8cfa840e103ecb07d99f47d19f67d962102b3eccfa3e8cfb3ecacfa33e8fa2c1f6582efccba2e8b05d960ba32e8ba2b2e8acba32ecbb2b2ecb05d9597665d17665d177e582ecb05d19745d15974582e8cbb2e8acbbf32208832252f32208932252f32208932248834b88832252e2c11064411064491264425e64411206bfffbd2c47903eab9a2d20ff6b3471eaa5801ff5a38ac804576115d84577062ee0c5d81ae97606ba5d8457581ae976115d01ae9740c5d40df4fb037d3ec22fa063ef08bec22fb063e818fb063e818fae06fb7d01bedf606fa7d845f406fb7df06533c194cfae11a6ffffc234d81d369947ffffffffffff06110c1f907e0c1f81044d4c44abce14c8534d8f25314c1f820f0f62f7cd8ce8395f0d2af6c24df37e970f2038d90c413a6a0e14fc808e9a763d4f204c80ce3642950ce821038ce801044c4114abcc40e1898c4101040c1f91040d89f1acf1a9898c7e5898d89c7e4ae0f0f1aa0f0e0f5044ae0f0e0f5044d0420f0c7e5040c7e07e4b0823e63f282056c4e5541134101f834111f831f91f82b1f934114102b1f834114112aa08941f898fc2089607e4ac7e0d0407e7cc7e1044b03f05682056823e68203f0581f831f81f92c20818fc8fc98fc208f98fc0fc1a080fc98fc8fc95a0879607e4d0407e4c7e1040c7e47e4b03f263f03f0563f263f23f0563f0563f063f082063f03f063f03f063f23f263f23f0581f831f81f92c0fc1607e4b03f068223f263f23f268203f3e63f03f0584102c20898fc0fc019f93f00c3f2e113f2113f3033f27e0227e4187e4227e4227e4187e00e089f908c11061f9061f806410033f27e2067e0fc819f83f1819f93f0067e4fc830fc830fc419040187e3033f27e40cfc1f8061f9c227e00cfc9f9061f8061f8091f9033f27e4187e40cfc1f9033f27e2113f0067e2084187e2113f2113f00c823830fc830fc7f7061f8844fcaffffdc9d9fffffd75f317f31b37f117f34b7b29398c65434b665534da7572c30c9a6dbab1a6d12f1b2acc61b2ad949bf832a198d32a1b2a6629d947fe9b2a0bf98bf25b192f30c99ce12f989092f192f12f1612d8cc68c6cacc68cc6c5fccc685f8b06366636634663496e66362fc6bf2fc6bfe346bfafc6bf2fc6bf2fc585f8d20978ae5f3485202c4be690a406904bc5690f961213979212c24272f240690242569096121348521348521397d203481203485202c24258480ad203485212b484ad203485202c4bc56909a429095cbe5897cd21480d21484d21487cd20978e5f484d21480d20484ad203485202b480ad212c242569015a40690a40690a42690a4058484ad20ff348520348fffbd2c48183f27178ce0f76b545f6b61a01ee57205212c24258480ad213485212b480237e065f8237f81dfafc077fbf4237ec197e832fc0cbf832fc11bf611bf032fc11bf832fe0cbf832fc077fbfc237e065fc237fc197e03bfdf8237e832fe11bf01dfeff065f8237f832fd03bfdf8237e846fe11bf832fe11bf846ff065fa077ebf81dfefe0cbf832fdc0eff7f065f8197fc197f065fc237e08dfe0cbf60cbffffc197e2c0bf18bf0bf9bf859418bfa5b9d9418d15d941a6da6d9a6d44a18bf8bf1598d1961ad0986cad01890a6d9b0c9ce992f3ab9596198e69619a5606c18bf18d961954cc6d2dcb096c62fe2fc696c63462fe2fe62fe96e62fc96e696c2fc66342fe5663466342fe61b039865861b0561b261b239a63981b2581cc31201202b1202b1202c09018908909589015890992f0901f35b0586c1b65b26d86c9b61b06d86c95b63cadb26d96c1d72ba6a1ae95a87cd40a13aea80eb8a12b501a854275d5095a84d42a12b6c9b61b056d82b6c161b06d96c15f33cdb2d836c364db0d92b6c9b65b056d8390484e4120390c80ae427209095c83fcb120390c80b120390484e4121f2b901c86425890162405721390480e41202b90f95c80ae407209015c80ae405890f962425720390484ae40720901c86405720390c860cbf846ff846fe11bf846ff832fc11bfc237fc197e846ff81dfefe11bf832ff832fdc237e03bfdfbc197ef846fe11bf832fffc237fff832ff81dfefdfffff065fff08dfa0cbf2af2c1611a561619ad086c1bc6256986c0e698e61db186c2d0991503a991528199ca96bf995d8cc183a95d98cc883959ca996b0ae18500ae18ae8ae18ae10d99ca05098ae0ae158e6186c06c996186c186c06c186c86c1586c98e686c186c86c986c1611d71406a1501a86b858501a82ba56a02b501a854258509d71405850161426a0509a8543e6d86c161b256d836c363cb0d8ff2c363cace9e5883f99d0ea583a959d0cea7433a1d4cea7533a1d0ad43e585095a84d40a12c280b0a02b5095a83cad41e56a12c280d42a1350280d42a0350283cb0a0350a80b0a0350280d40a02c284b0a0350a87cd42a02c284b0a12b3a19d0ea7073a99d0e8583a99d0ea6743af99d4e86753a99d0ea567533a1d3cce8752b3a160e86743a160e9e6743ac1fffbd0c49001aae194d80f72b58554b59a95eed5a08d808b600db0d9c22d906367831b1c22d8c22d8fc18d808b620c6cf063660c6cf036cb66116c01b65b2116c7fff08b67831b3ffffc18d8720624024262422406caa96c696efe06634fe0696e2fe584b6f32c269733b61cd32c30d831cc2c2375639c339c120339d4da2bb08ec2364dcd360e5e480e5f978f9c97cd2197cb0901f3a909f39ce15cbc6904be7cef386904be572f1cbc909cbc909cbe90961202c24258480d21480232106484192108c80192008c800e4320064840db1cc036c36418d981b65b2116c7845b006d86c831b20c6c045b0116c81b65b2116c01f31b00c6c0339a0c6ce0c90046401190e0720900464184642119001c86400c6c831b2116c831b00ce6045b006d96c01b65b2116c81b61b006d86c831b006d86c031b206d86c81b65b006d96c045b00c6cc0db0d881b65b006d96c01b61b20c6c845b006d86cc0db2d90636606d86c031b308b6022d8036c363f06487fc1921846400c90c192084643e0c907c1921ff064842321fc2320c1921c2320e0c9083241c1920e1190ff0648383241ffe1190552b188b0719f7f4a1eb57c15bc66b19c46e821474a4645719988ab69bc4b11ac4311dc4b11cc47198c4b198882219502296045338ce33589622b388d62188c6338cc6318cc63588b071195222995222195022160a832a04532a0452b110ac4432a0442c08862208a78b1f95e23c58fcf1633c78bcae2162215c42c442b8a588a588be71221c58a716295c538b14b110b114e2442b8be5714e2c538b10e24538b10ae21c48871227f9c58a7162162216221c5885888712216229af5de585e6b9715ae2c2e35cbcd72e2c2e2c2f3f4b8b0b8ad715ae2c2e2b5e6bd715c42b885710b114ae29c48a588a588a58887122ff95c42c442c45f2b89e5710e2442b8bc238e11c611c5e11c5f08e3f83310331ffff8471047160cc708e3c198c238c19881988238c198e0cc7833103318471e0cc508e3f8331c0f1e3e0cc611c7847103314198e0cc5066308e3e0cc41f2c1e6a5119a1af08bc29b0f2a7b986cca7b194d8c3c98dd06f719b1a90d9a4346c69a4366c619b1a47f1ef71b39b74ef71ef76f71a08e3598fce351a08a081bc6bc61f9a79a953cd4de33cd7cde31e34a79a8de37cdfffbd2c4d083a94daee40eea974694295845ff597a0d1c3634ad1c0e3ff630e3f91c0d1c11c0dba0d98cd9a9b0cd98d98dba0d98cd9cd9ccd9cd98b0dd3e566cfe66cc6ce586e9f36e9367362741136271f831f81f9f34101f82c20898fc8fc1a080fc1a088fc18fc8fc04638846380323884638c191c0231c4191c40e38c71064700647108c7003530a640d4c29903530a600d4c54d08a9803532a6418a600d4c54d03532a600d4c29981a98532075314cc22d980db3367831b3831b381b666cc0c6cc06d9db381b666cc06d9db3045b3845b381b666cc116ce0c6ce06d9db3c0e384708463804638e118e0118e0118e2071c63881c718e0118e3f08c70038e11c00e38c7108c7008b66036ccd9c0db3b67c18d9822d980db336608b6608b6708b67036ccd9818d9818d9c0db3b670636706366036ced9c0db3b6606366845b381b676cfc191c2071c238f08c71f846380323801c718e384638c191c3c82bb45762bd6a189200a0f3144ca433d6cc69c36b368403455f43b3455ab8137c0e4323674ca4235040d5636b2cd573290d4a32a9ee6553dc8df03144ca294533f88be230f8d3e330f8c7e333dc8a4333dcd9d332908a4332908a423144ca423144ca433290851231448513314494a231448f7233dcc5133290c5122c0a24587e3d95bf1960f8ccf8cf88b07c4583e32b3e22b3e333e23e333e37e333e23e333e33e32c1f199f19f1160f8ccf88f88cf8cf8ccf8cf8cb07c4567c6583e333e23e237e23e284e898328981d13a2611a240ca2611a2508d1281d12a260744a8981be27c6117c4117c606f8df101be27c60c7c407f89f181be37c606f8df101be37c6117c6117c5063e208be281be37c5063e3037c6f8a117c581be27c7831f181be27c5063e2ff81be37c5f831f1781be27c4117c6117c40c7c4117c406f8df1c18f880df13e2063e2063e208be308be2845f1c0df13e2063e2037c4f8b08be3037c4f8fc1944c2344ffe11a27ff06513e11a270aa27fff08d1303a2544bff06512f065128468980001f961a0f32f89be330f8cbe22b674cd4a3528ccf727c08d4a25288c923183cc9221838b0ce9194867b9997c67f118fc69f198fc63f19b07b071c914919b07c91963f88a1f1cdf88f8cef88f8f46d3baae7aacd386d39aae6a254867487486fffbd2c4f0002ff59cc10ffad486bcb35849ff59b3574846a24a26574866fc67c667c67c667c6fc6583e233e23e22b3e332f82f832f92f9360f60f32f92f92c17c7960be3ccbe183cb05f265f2c1e65f25f065f0c1c56c1c582f832f860e32f82f932f82f8035f0be40d7ce0f035f0be7062f8062f9062f808af981af95f2115f006f8df1c22f8822f880df1be3037c4f8818f8c0df13e208be2037c6f880df13e2037c4f8822f8c18f8c22f8c0df1be3037c4f8a117c6117c40c7c60c7c708be208be208be2063e3063e308be208be3063e38317c8457c40d7c2f808af808af808af9062f9035f0be422be018be00d7caf9062f98457c81af85f1035f0be422be206f8df1031f1845f1045f1831f1045f101be27c7831f1031f101be27c7037c4f8c29f1818f8e06f89f1831f101be27c7037c4f8822f8c0df1be3ffc1944e0ca25f065120651284689fc1944cde666d451e74c692cb86aed3354ea7b2cc5691998436ef2c2dbe749e0b946bc1af0868cdd2784d19c1de4b1aa9bad88cd958dd05853d0c4716ce4cd8c23fcdd6d2ec8cbb275b4cbb31728c3671ba0c3671ba0c3661ba0c36545ccc36445ccd1731ba0c6e90d98b03c619e6a79a98f183c616078b2c2335af2a0b96565d91c7fa38144701611c0d1c51c3cd1c51c4d1c11c4ae3fb9e568e1fe58471336636636e9366e959b3f99b31b3959b399b31b3959b399b31b30323840e384700647108c700647006470c231c4231c606d99b3c0db3b6608b67036ccd9c0db336606367036ccd9c18d9c0db3366036ccd9c22d9c19ba40db3367064710647008c708323840e38c7081c718e0071c23803238832388463881c718e20c8e00c8e308c7108c7106470038e31c00e38471038e11c00e38c71038e31c60c8e20c8e0071c23881c708e0118e0118e20c8e0118e108c700647108c70038e31c70647108c7108c7008c710647106471064710647108c710647181c708e30647008c70c231c00e3847006470038e31c3065cafc1972ff832e5ff846e5419e3613f1bffffe11f19ffc19e33c23e340cf2c13a66bc22f044e35599b1a90d1bf8cb549bad85d91af091aa938d5665d997666b549b1866c6ad5268ce233468cd233651785150bb22b172cd19b5e10cf343cd4ad6de33cd4f3533cd078c2aa78064efffbd2c4f003b1c9a8c00ffad4867d2b97c9ff5eba9a783a34f013c12a93a6513c0993a64e9993a49e09549d32bbb235cbbb32b5ca2c2e515ae595ae59a38c7f1a382381a38a381c7fa381a38a389611c4a238fcb08e2584702c47f1a38a381a382389a38a3895a389c7f47f79a38238960a64ca61530ca65534ca64a60d531534b053058298354d29932982992b29932982992b2992b4712c2389611c4d1c11c0ad1c0d1c51c0d1c11c4ad1c4d1c11c0d1c51c4b08e068e28e268e28e0568e0568e068e28e2584702c2389a3823895a389611c4d1c51c7cd1c11c4b08e3e568e0584712b4702b47034714712b5ca35cb5ca2b5cb2b5cb35ca5ca2b5ca2b5cb35ca5cb2b5cbff2b5ca2c2e59ae52e57f95ae5161728b0b9456b9656b94585cbf2b5ca2b5ca2b5ca2b5ca2b5cb2b5cb35ca5ca35cb5cb2b5cb2b5cbff35cb5cbff2aae56cb0b95fe56b95fecaba05d4123552674e3bad48a9d373031554e1127497febaf30f887e332f18e2831290966285e38c9662f1cc5622b8ccae51ce0cc394994ac60e30e385623158838d3158c90e3243c90e31588563312904a53090c2422b1290c3e21f88c7e20f8cc3e33f8cc3e32f88b0307958c1c617c8c1c56307187c41f19607e230f8c3e230f883e32b0f88b01219848625215848658090cb0121160243f3e3db92c71e586e0db96e0adb936e38e2c371e56dc1b72dc1b72dc79b70dc15f1a586e4b0dc95b7056a69a9aa69a9b5b9a9aa69a98a61a9aa61614c3ad94d3532b63adab735314d3532b636e5b836e1b8f2c3706dcb706dc37056dcf9b72dc15b70586e4adb92b6e0b0dc1b72dc9b72dc95b726dc370586e0adb92b6e0b0dc95b73e6dcb706dcb726dc373e6dcb70586e7cb0dc1b70dc9b72dc15b73e56dc1b72dc7961b82c37256dc79b70dc161b82b6e4adb8f2c370586e4adb92b6e4db96e4adb82b6e4adb82c370586e0b0dc95b726dcb70586e0db86e3cadb92c3726dcb726dcb726dc37056dc1b72dc961b936e5b9f2c3706dc37256dc7fffffff063e30bcc78d1e34c5cca4f0c5cb8d54de87b760cf3598c4e3555e08dd6c172cd6dd3cd4de8698c0db374868c4716cdcc5ca75b0c5cb1728d19a4668cd8c23fca1b1b323fd6a932ecd19a2c0b946bc1233462e5233a71fc8e271fe8e268e11fc68e2fffbd2c4f081f03160cc0ff6d7863fb5d7d5ff5a2a8e27e69e6be56f1a7e69e69e6f1af1a57e6bc2b78dff3471471347147034704703471470347147134704703470471347147134714712c2389a38c7f1611c0d1c51c4b11fc68e28e0584712c2389a382381ae52e51ae5ae51ae5ae59ae5ae5945cb9ae52e596172cd729728d729728b0b9456b95e157280772ae5846e5046e5c1972c19728237281972bc0ee5dcb832388463881c708e2118e0071c23801c708e0071c63801c708e2071c23801c718e0118e00c8e2071c23801c718e2071c23804638e11f1bc19e330af1bee0cf1bc23e3423e31a0cb940cb95c23728197281972b03b9772ab065cb08dcb065cb708dcb08dca581dcab940cb940772ae57d5fe0cf1908f8de0cf1a15e3411f1a15e35fd55423e3611f1b5419e317f5e11f19f08f8d0678c833c6423e33f0678d81f8df1b5f33a38e8f3e1d21d43b49168319d0eceb83d0ece2c92270d155ae00e1856b28c69d355ccf736748c513290cda0f8b20eb808b24a844e99ee65219a9462891b3a65211c59044e9b41e44e96115532275155d151d3a33a38e8e33a3ce8f35a08b3232cccb3228599ccb322ccca8b419bf1df119f11f199f13f11bf13f1143e2161f88b113a5589d389c89d2c44e162270a44e3cae270da75a70da71a74b0d3a6d38d3a6d3ad386d3ad3856d3be56d3856d386d3baae56d39e56d386d38d386d3ad3a5355c56d386d38d39e6d38d3a5869d369c69cfef95b4e161a77a56d39e5869d28d3af2b69c2bd56f369c69d2b69c2b69d2ab4e1b4e34e1469c1b4e34e95b4e79b4eb4e961a77cda71a70da71a730369c69d2b69c2c34e7961a70b0d3851a706d3ad3a56d3a56d386d38d3a5869df2b69c3d5669c28d3b2c34e961a77ffcada73cada70a34ef45869c2b69cf2b69c2c34e95b4efe8ada70da71a74b0d3bb2c34ef961a77ca8d385869c2c34eecb0d3857665ffe58b322c599fecb16645766658b32ffe73fcb166657665e7665666766766458b32f2bb32e313316f31e1f6ee56bfff9beaf3144a96237c0851329f118e4335288e4333dccd9d35288d9d22908cc38248ccf4e183cd4a32908d4a3a588d4a33dc8c5132908c513528cca42528cca433dc8cf72290cca425288ca43290cdf03290cd4a2290cc5133dc8c512fffbd2c4ff03f49152ba0fffc5c651b59801ff5a901448cf72290ccf733dccb07b999484a511948428998a242891948628916144ce90e908ad448d44d44cd44d448ad448a2894b0a27e585123513a432ba42d95a8916144fcd44d448a8a246a24a266a24a2452909e58513f849f1c22f8a117c406f8df1831f1031f101be37c607f89f1845f1831f181be37c6117c606f89f101be37c606f8df1031f101be37c508be2037c4f8e117c6117c508d1308d1203a274482344b0651306513065138468941944c2344c2344a0ca260744a8901d12a270651383289c0e89d12f83289e0ca258468941944c1944a0ca2508d138468904689b8468941944e11a278328901d13a260ca2583289e11a2781d12a24f83289832890468984689032898328942344c1944e11a2706513f83289c2344f06512a8234481944a0ca260ca258468941944b8328976e11a2584689feae11a244c414d45332e313030aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf2aa8207219b3a45243318a27c791a946a519a4c849198c1c7a7997c65f119fc47f19486126d651aae67f1a7c6517e21587c4617c1244661c9246661c124666ab9aac66ab0d3a66ab35966a082822634e2820566ab19aaca0896069d2b355cc69c5040acd563355cd562c0d3a574845144a56a24748748656a2658a4337e23e233e33e22c1f1159f119f11f1959f199f13f11bf13f11d21289161448b14847486a246a26a27e51449e585132c28981d13a2611a2411a260744e89832890328901d13a2708d1303a2544d82344e0ca240744e8981d13a2411a25846890328981d12a260744a890468903289e0ca2611a240ca2611a270651283289784689c2344c2344c234482344c1944c0e89513f8328981d13a2783289c0e89d1206512ef0669d8334e78474ec0f4e69de0cd3a11d3807a774ee11d3abc19a77ea7c19a760cd3bb419a7019a73ffff8474e8474effffc19a77ff08e9db3ffffd6bf9913a8aa1f9eb1631445566a510a2472198a24777c28226d65359675c09138644e11387163570651a0f9c59044e1a2a88aa14455e67b9948667b93e066ce98a26644ec592644e913a6d0722aa51a0f142274644e22aa644e913868aa1138644e341c644e113a552274aa44e1a2a844fffbd2c4e581eb5da6c00ffad4867d3597d5fb5f98e18d3834e19aac34e18d3834e18d3a34e958d3a581a74ac89c2b2274aa8aa9913a44e15913bfe644e113a634e0d3a634e0d38634e1aade5634e798d3834e158d3a581a70ac69d2c0a2662890a2456289958a245628998a2628998a24289958a27fe65210a27e0744e89046890468942344c2344c1944825448234481944c2344e11a2503a2544c234480e8951206512832898328901d12a240ca240ca270651306513065136e11d38c11d3811d390669c08e9c03d39a7019a7207a774ec23a740f4ee9cc19a7423a7607a734e0474e8334ee11d3a0cd3811d3a07a774e419a740f4ee9d03d39a7611d3bc19a7019a7023a7207a734e01e9cd3908e9cfe0c22742244ef83089c7089139f06113bf088d39fc1834e42234ebc1834e60c1a77f060d39e111a77c1834e84469df6c2244e550000001fcb08e06636ca8663496e6fe26366634fe069b4c32673aeae673a9b6586192b1cc33b73b63411a5531f94112b410383d62731f86263626626331b31a34b731a317e17e34b64b732982992c2a69594c194c94c795a089a0831318fca081a088fc9625e3979212b484ad2134825ef2be70ad203979203485203481213481203485212c24256d93e6b64db2d92c364db2d836c364af9856d82c360f9ad92b6c79b65b06d9e61b61b26d96c15f30db2d93e6b64db0d82b6c161b0589079c8243e7219015c80ae40720901c82407219079c8240720909c864056d92b6c1b65b056d8f36c360db0d836cb64b0d82c360adb056d82b6c9b6798586c961b056d92b9095c84e43202b9016243ffe589095c84e4121f2c480e4121390c84ae4057212c484b120ff2b907f95c87cb121390c84ae42589095c84ae425720390c80ae43e58909c86407219016240589095c87ce4320390484b120f2bbfff962fe577ef2c5ffcb17ef2c5f8aefc58bf9dfafde58bf962fde58bf1dfefe77ebf15dfcaefc577ef2c5fcb97d859c2ab88e7fa3cb0599194842891be04a51998724911aaf47a799fc43f19a7c4ff11978c122992ce71415948456a5119fc61f19553e232f8cbe232488c393248cc393183c60e31a70d5631a70d563355c69c3355cd573144c5123144851333dc8512314485122844e4d1554550a11383227089d2b2270afffbd2c4ff83f1c956d46f779446f42a9881ff7690d448d44e908d449448d44d44cd44d44cd44d448cf8df88cf8cf8ccf8cf8ccf8cf8cacf8ccf89f8cb07c6583e232f82f9360f2f92b2f832f92f932f92f82c17c960be4cbe4be0acbe3cef9be0ef8be4ef8be0ef9be0ef8be0ef8be4b17c15df258be0b17c1df37c1df17c9fc7f11fc5f115fc457f19fc7f1163e23f8fe2f2c7c47f1fc457f1963e32bf8fcaef82c5f277c5f277cdf277cdf058be4b17c79df17c15df077cdf077cdf058be4ef9be3cef8be4aef9f3f8be22c7c5e57f115fc457f1963e3f2bf8cfe2f8cb1f1163e33f8fe3f3f8fe33f8fe32bf88b1f115fc457f1963e32bf88afe22c7c458f8cfe3f8cb1f1795fc5e58f8cb1f115fc67f17c7e7f1fc458f8cb1f1163e22c7c657f179fc7f115fc457f17963e32bf8cb1f19fc5f19fc7f179fc5f1963e22c7c658f88b1f195fc47f17c457f115fc67f17c658f8bfcafe32c7c7e57f195fc658f8d5f2a2944630705f26c472af66abd8c1a661c9872693205f069320c1c510881978e4b3192463071a4ca49199e9e7a71987017c18c1e17c19c62b198dc2b118dcab11d21a891d2152179d21d2195df1160f88cf8cf88df89f88b14867ee4a25fe56a246a26a25e6a25485e6a26a27e67c47c5e67c47c667c67c6567c5e583e32b3e3324324232422432b243324324232422432c12199211219921252992112116090cac908c90c908c908908c90c908c90c90cac90cc90c90cc90c908c90c90cc90c908b048664844840c5f2115f00c5f108af8035f2be2115f18457c6115f20690d210452101a4294a1148406909218312140d21a4308a4208a420624281a424861148406909210452101a4348508af9c22be206be57c0317c8457c8457c422be60c5f2115f20c5f1035f0be418be2115f20690d2181a424840c4840c4840c4840690921e11486114841148606909210452181a43484114860c4870348490c229080d21a4208a430624208a4308a428317c0457c422be40d7caf9062f9062f9035f2be40d7caf8f062f98317c8457c0457c6115f3035f0be018be422be3fffff08d12f2c3d10653614da6a7ba2e442a7a1a9eea7b9a3362e518b971aa9445cc6374b0f2564019957055c1437be63748dd2653694d863c68f1863c6adbc6b6f8f1a53cdfffbd2c4f103f43180ca0ffacdc623b25881ff59f847e6be687e68f1a57e6857e687e6af187e6be687e69e6a6f1af145478a3f3578c378d78c378c78d378cf352c3c61478d1bc63c6961e34ade30adba4dba0d9bcaadd2566cc583672b36633676e834704712b8fe38fe4702c2389611c4ad1c4d1c11c0ad1c0d1c51c0ad1c0d1c11c0d1c51c0d1c11c4d1c11c4d1c11c7cb08e3e584702c2389a382389611c4b06cc583672c1b319b39b399b31b3f959b399b31b3959b3960d9ccd9cd98b06ce66cc6ce66ce6ce118e2071c238c191c4191c7038e11c40e38c70038e11c4191c4191c40e38c70064710647006470038e11c0191c40e3847084638e0c8e0118e00c8e00c8e20c8e308c718323804638046388463881c708e20c8e2118e20c8e2071c238c191c0191c0191c0231c40e38470c0e38c7008c708323804638c0e3847108c7108c7006470606470c231c60cf1bf57ffffdffffff846e5e0cb94a00002f30be4c3831084420332746f434224bc73259824431839265263070b039c183701c6961c14d2938a4eb9158cdce0e30eb95588eb8ce3cd58ce3cd589588cbe648cd83cbe0d83f0e0e48a48cc90c90cc909c14c909c14d295290cbe248ccbe1838d83cbe0cbe183cd83cbe0cbe1838cbe4be0cbe4be3cacbe0b05f2569485648664844845694a64864846486487fe6dc3706dc3706dcb706dc37256dc9638f2c370586e4db86e3cf8f6e0f8e6e4f8f6e4db96e7cb0dc1b72dc161b82b6e3cdb86e0db86e3cadb836e1b82b6e0b0dc9b72dc961b936e1b836e1b82b6e4db86e4db86e4b0dc1b71c71a9aa61d6ea615a9856a69d6ca61a9aa695a9856a69a9aa6f95d6e56a61a98a69a98a69614d2c29a56a67962432b90fffcb121f962422c485e572196242f2b908e43908b12115c87e572115c865890bcb121f95c845721ff9c8521162432b90bce4290ce4390bcb12116242f2b90cb12196243f2b90fce42908ae432b90ce4290cb1211c85211c87211c8721f95c85fe5890ce4390cae432c485e572115c87fe572195c87e58908e42908e43908ae43ffdbf587ccf8af88c7054224d7aa4ba8d7e30f8ccfe21f88d57a248cc2f80be4ce281294b04b319c5097518e0a4b3197cfa79fa7e1c197c97c9fa7307997c17c197c61c9df1df119f11f19df15fffbd2c4f303b38556ce4ffba9d6c3a41945eff822f199f15f199f1bf199f19f19df15f1160f8cdf8cf88ef8cf88cf88f8cb07c467c4fc66c1e5f065f05f265f0c1c6c1c5f265f25f265f05f265f05f065f25f065f25f26c1e5f256c1fe582f832f860f31b838d31b91b931b91b931b81b82b1b931b81b92b1b831b938e2c0dc18dc1c695a5279921921992112116090fcd295290c908908b048464864865824332434a531b81b831b81b931b81b92b38f2c1c7160e34b0372563705838f2b1b831b81b831b91b82c0dc9606e4c90c90bcb04845824232432432b24332422432b2422b2422b24332432432b2422c1219921121f960908c908908b04846484485e64864845648658242f2c121959211592116090bcac90cc90c90cb048664844866484486564866486484564846484484671c3706ac6371e637071c6372370637237063723726372372637237063723706370372581b931b81b82b1b82b1b831b91b82b1b92b1b82c0dc959c7158dc98dc8dc98dc8dc79606e7ffffeef34bdd4378ce2398c633b8a623188e23d8a62338ae23578c737dd5f2c1c65771985e3d98f6d59abc17163c634bd2f32248939ed2e32232137512e3751d5375488f34bdd534bd2f32208939e92f32212f32248934bc892b4bcc88224d2f220ac882c11269711058882c4495c41c44495c41c4c415c415c4162a0ea514ad14ad14b0887508a68a8bfe75088584434545344a8345a82c221a2a21a2a29a2229a2a29a2221d4a29d4229a2a21a2a29a2a215a21d4221a2a29a22295a279a2229a2229a2a29a22216114ad14ad10ad14d1114d1513cd1110ad14b15268a8a56885689e5844345442b442b4534544345452c229a2a29a2a296114d1517cd1110ad13cd1114ad14ad14b08a68a88568a568be68a885688588938988f2b88f2b88f2b892b89f2c447fff95c496220ae24ae23cae20e2624ae27cb11056c5e5863363622c3115b115b19b1319b13115b19b1b11b13195b116188b0c5e5863f36263f2c3195b11b1317f96188b0c60c44ffff84513fe0c4404513e0c44fc188908a2708a27cc484e74d866254aec44c97d36cd860484dd5ce74b073a64bf12a69b424265841b261ac9585825e312039c325e894339d757312025f2b619312139c3120120325f4db31201213121fffbd2c4e403eff9ace40eeeb7c67f361b01ee56f01203120120312125e3121120325e25f325e4da2c12f192f1ce18909ce996106c160730b01b063981b063981b0580d9f2b909c8240721909624058901c8640721901b679a586c1b61b056d92c363cb0d92b6c795b63cb120390484b121f2c484b121f2b9095c84ae4058901c86405721ff2c484e4121f390484b1212c484b120f2b909624056d82c364db2d936c360db2d92c360db0d936c364db2d82b6c95b64b0d8f2c360db0d92b6c95f34b0d82c360b0d82c364db0d936cb64db0d8f36cb64db0d82b6c7961b2586c15b60b0d92c360db0d936cb64adb2586c15b60db2d82b6c79b65b056d92b6c7fff961b3e56d936cb64db2d92c364b0d82b6c161b3fe6d96c95b60adb211907846400c90c192006482072190c232106484232006483e0c90c1921c0e4120064802321c19218464308c841920f846401190c1920064861190846400c9060c908324384641c192106483f08c842321af3210329369d2693340190343f32830fa66d366d89d35569b2332843e355643f35569b2389d66c327a1d4346c27a33c746c2882d31910ba2b26937840fa321055630fb210343f32832103292b3292b3292b32830fb210321043e3210211321121030fa0fb3843282b3e8f28840cfa3eccfb3eccfa840b10819f47d99f67d99f70899f47d19f67d15c2267d9f7e7081f467d1f5e567d99f47d159f667d9f6583ecacfaff2c1f4583ecae1133ecfa2c1f6567d159f467d9f667d9f6583efcafefcafecafe8b1f458fb2c7d9fd7d15fdf95fd163e8b1f457f657f657f7e57f658fb2c7d963e8b1f458fa2bfb2bfa2bfa2bfa2bfaff2c7d95fd95fd7ff95fd163e8febe8afe8afebcafecfebebfffcfebebfcfefebcb1f458fa2c7d15fd15fd1fd7dff9fd7d163e8fefecb1f458fb2c7d15fd163ebcfebeffffcafecfefe8afecfebecafecb1f658fb2bfbff2bfb2c7d95fd9fdfdff9fd7d1fd7d1fd7d95fdffffff95fdff9fdfd963ecafecafe8febebcafebfffcb1f657f47f5f5e7f5f7fe57f67f5f47f5f5e57f7e58fbff2c7d15fd163ebfcb1f657f7fe58fb2bfa2c7dffff9fdfd95fd985e171611230b82f3a39f7357a8e30b91337c8cc31649334495e331d13324c583248cd30bc7a37d8c630b8c73248cd33301d31fffbd2c4eb83f475b2d80f7774c5b935dd81dd66d8609331e8c630bd1230bc7b30b87a31ec2e2b578c7a44cd130bcb063985c3d9602f30bc2e2c05c63d8f666305e61705e563d985c17985e179aef456bcd7ae2bf46b97961795ae35eb8b070ec1d33a70b070b070b073cb070ced9ff2b5c56bcd7ae2b5c585c6bd7ff9af5c56bcb0b8ad796179617f95af35eb8d72e2c2e2c2f35eb8d72f2b5de6bbd962e3bae2c5e577f9df79dd7162f3bee3bee2bbbffffcefb8b17f9df779dd7962f2c5e577ffff9dd795de57715de57715de58b8eeb8eebcefb8aee2bbcefbbcb177f95de58b8efbceebbfcb1795dfe77dde77dc5777f962f2bb8b17162f2c5de77de775fe58bcaee2c5e77dc775c77de57715de5771dd7962e2c5e58bcaefff2c5e58bffcb17795ddfe58bffcefbfcb17f9dd715dde57715dfffffe58bcb177ffffffff95de5777ff95de577962f2c5c57715dff31a71aca3861eef93355daca37c0a43335288f7337c094a12b3dc8c2f91838c92255e8eef81a70d4118610c2f83d38cf4e248cd26530e4a0a27285214d9d22908a86ab1a822a08160d5636b28d5631a75acb3355d41033558d572b1a70c69c1a74d4111a74b034ef98d3a34e9d21289f9d21a891d212899a892899a89a89f99f11f1962f88cf88f88acf88cf88f8cadf8bfcdf8cf88cf8cf88acf88df88f88acf8ccf8df8bccf8cf8cacf8ccf8cf8ccf8cf88acf8ccf8df88cf8cf8bccf88f8fccf8cf8ccf8cf8cacf88cf8cf8e117c414f8a06f8bf101be37c6117c4137c4117c6117c7063e3063e2063e2037c4f8c23f8823f8e117c406f8df1845f1845f101be27c4117c40c7c508be2063e3037c4f8c19f8822f8c0df1be20651203a2744a0744a89c194480e89d13065130651203a2544c1944eb81d13a260ca240744e89f853e3418f8818f8818f8c22f8823f8c0df13e381be27c606f89f160c7c6117c7037c4f8c0df1be2037c6f8c0df1be281be27c606f89f1831f181be27c40ca2611a240744e8983289046898468903289419448194480e89513832890328983289c0e895120651281d13a240744a890468983289c23448234480e89d13d0eaf5c19a76dea8474e8334e2bffef0669dfffffd5e6498b0751af860e372684a86587c8ccdd48c59074cb41b8c6e358ccc160d08070fffbd0c4fa03fa5daac20ffad4c5bcb45e01dd62d0d43164ad433164933165092b24cd09248c58164c93420c59164c1c160d09160ac923420923164583074cc2c03860e0b2562c79601d3070593070932b074c1d070ac5839614d4282b506a029840a61429cb0a585264489608990225644c8bd32040c8912b206408991225644b0f4c81032240c81032240ac816081608191205640b044afa7de796387de7963be7de95f4af858e7f96225703840e302c44b11f38c3cb1038c4e312b8f962070895c4b1d3e70b1c3e74fbd3ef4fbc3e74b1c3e74b1d3e70f9dff2c73caf9e58e79f79e7def95f7cafa58e95f0b1d2be16387ce95f7cafbe58e95f4b1d2be163a7de7f9f3857d2be963a57c2be95f0afa7ce15f4afa7ce1f7857cff2bef9f3be57dff3ef0b1d2c74afa58e963858e963858e963857c2be1f7a57cfff2be95f0b1c2be1639e57c2c70b1cf3ef4afa58e95f0afa58e9639e7ce163858e963a7de15f4b1cf312012035a04ac34ad1cd31cd3b635a05a0322b47131991992c09a982989a960398c650398c3612b0cb08edcc730730cd34418c1d4660c1d4664c48097cce70e70ce74484c480480c360360c734364c730364b039a65841b265841b2561b0580d92b0d93831d4acea7063a19d0ea707cc99d4ea63948958e0c703831c39bcc723931c244c703832994cb05232994cb052ff2c14cca6c3f2b29160ea56742b3a19d0ea6753a159d0acea56752c1d4cea7533a9d0cea74fff2b5015a80ad41e5850f9a8541ffe5850959d4b074f2c1d4ce8752b3a99d0e8570633a9d0ace8583a959d7cce874f2b3a99d4ebe56ea6e8ea56ebe56e86e8e86e8e86eaea6eae9e587537474375752b7537575374742b742b74f375752c3a1babaf9baba95ba961d0dd1d0add4add7cb0e856e858752b742c3afff9ba3a1ba3a79baba9ba3a161d4add0e8280b1427434258a02ba02ba1f2c501d050796280b14058a03a1a12c50796284ae80e8687fcae83cb14058a0f2ba1fff2c5095d016287cae87fcb1405741e74343fe74143e5741e74141fe58a1ffff2c5095d0f96283cb143fe574258a1f2c28206c48311e6abd8c1e65f197c667f137c67e36a8226d65a82263f197c661f11fc667b99ee662899ee64d41099aaea089b5966ab98fc63f11a7c63f118fc4fffbd2c4f003f3f1a2e20f7375467ab55881ff5a685f198d3834e18d3ad6618d3ad6518d3a6ab99aae34e959aae66aba820634e1aac57aac58d57369cd56cca34e4b0d3856d386d3ad39fc2c34e1b07b07997cb07197c3071c91307997c17c160be0b05f2565f26a26a26585122c28915a89f95a896bfcd44d44cc90890cac90cc90c90cd294908b04865648456484648448656486582423242242324224333e33e233e33e32b3e32c1f119f11f1160f8cacf88cf8cf88cf88f8cacf8cb07c667c67c467c67c6583e3037c4f8c18f8a06f89f1031f101be27c6117c7063e2845f1418f8a06f89f101be37c4117c60744a890328960ca2411a240744a89046898328981d12a240744e8904689c0e89d1284689708d1308d1283289e0ca27c0e89d12c2344f8328984689032897f81be27c40c7c406f89f1845f1845f17063e308be3063e3037c6f8c18f8822f8818f8822f8818f8f063e3831f101be37c60c7c406f8df1611d3bff8474eefffff7fc23a77fff42af314d42032684ee3268340355666c332966d3328556332832830fb43e2c21f1a1f9081908a1f1a771a019341a01a7705d99348c898c80c819341341a1015b98a68a698a615b9ac515b190887d187d07d987d108190819479595b995b8a698a68a61595b15aecad746bb5d95aecd76ba2b5d9ae976585d1ae974579035d2e8d74bb35daecd74bb344220d112f344220b088344a20b088344220e5e89344a20d12893e2e22c311f1b11f1311b13195b196388f8b88d8d8cad8cd8d8cd8988e2624e2620e2624e2220b113e5710711127131271113e58893898838988388883888938989f2b88ff388882b89389882b89388882b8938889389882c449c4c415dd7962ebceeeecb17477776775747757658bb2bba2c5d1dddd15dd962efcb1745777e577458ba2c5d9ddddf9dd5d95dd95dd162e8eeae8b176577458bafff2bba2bbb3bbbb2c5d9dd5d795dd1dd5d1dd5df95dd162e8eeaebfcb17458ba2bba2bba3babb3baba2bbb2bbb3babb2c5d15dd962e8b17658baf2c5d15dd7962efffceeeebcc3e21f88ccb92b88d23a48e8c85e162ca10bc31838f4ed9a4ca17c9924617c987c67f119fc43f1187c63f11613e231f8cbe2309087042b259cc7050908cfe21f8cac7e230f883e332f88be230f8cbfffbd2c4e803f01956de0f73748691b259c1fedab8e231f887e32c07c6503e3987c63f1187c41f1987c41f1187c61f19587c7e7f17c657f19fc5f179fc7f115fc458f8bcafe22bf8bfcb1f11c852195c865890cb1211c872116242390a43390a42f390e432b90fcae42390e42f390a43390e42390a42f2c4865890ce43908b0dc961b836e1b836e5b92c370586e4db96e0adb936e5b92c37256dc1b72dc9b70dc161b836e5b836e5b82b6e0b0dc1b72dc161b92c372586e0db86e7cb0dc95b7056dc961b92c3726dcb70586e7cb121962422b90cae422b90cae43390e43390a432b90cb121f9c8521f9c87219c8521f95c86721487e572116243390a42f2c4865721ff95c8458908e4390bfcae43390a43390a432b90cb1211c872116242390a432c485e72148658908e4390c1890e0c48508a4284521c1890a0c484114840c484069092181a4348508a4383121422908189082290a0c4850624308af808af8ffe0c5f1fff8457c0457c5500002f317f4b633b769735a12c23ffd655317f7f1331bb28365417f312125f325e619317f98c331a17e317e31b3b294b62c18d19611611a5616199db0e698bf8bf9a5b8bf1a5b25b998d98d18bf0bf998da5b18bf18d98bf25b198d98d98bf18d1a5b18d958bf95a5b9afcbf9afcbf79617f2b5fcf1a5f8d7f5f8d7e5fcb0bf95afe6bfafe56bf1afebf1631b2b480b0901625f2c24269024072fa40690242690a42690a40690a406902406904bc58483cd2097cad202b483cd20484ad203481212b480d20484ad21f397920f2b487cb0909a429015a4256901a42901cbc901a429095b9be66c1b066c9b2566c19b0e6960d82b364cd9360dcd360cd8360b06c159b058364cd9363cb06cc237ec197ee11bf60cbf046fde11bf60cbf846401190846400c9081c86420c90046420721900464007219081c86400c9003243039048607219060720900464306484192106480237e832ff065fe11bf40efd7e08dfc0eff7f08dfc197f81dfefc0cbf81dfafc11bf40efd7f065fb065fc197fffffabfffff065f90403cc4102950c62707e0d6dd07e4c83d1044ce8107e0cc6a2954c6271898cc6a1044c41120f4c6541950c7f00c68c411189cc62620f4cc6b20f0d2ddfc4d9505f8cc68c68ad044c7e2950e0f47e4e0f20f0b0c4fffbd2c4ec813099a4d64f76b556e6315a95ff71bac56c4e56c4e63f23f25682068223f263f28226c4c3f2581f8341141131f91f92c0fc16189cc7e1040ac7e0ac7e4c7e07e0c7e07e7cb0821e563f0563f062422426240240624224256240581202b12131201212c090960480c480480ac484c484978c480484ac480c484978c484487cc480484b02425825ff2b1212bbff9dfefe77fbf95dfcb17e3bfdffcefd7f2c5ffcaefc77ebf1dfafe58909c824258907f9c86425720390c80ae4058901c86425720390480ae4057212b90f95c84e4321f2b90962427209095c80e41202b901c86427209016240720909c864257202b909c82405721390480b1212c480b17e2c5fcefd7f2bbf95dfceff7e2bbf162fe577eff2c5fbcefd7f2c5fcaeffe58bf95dfffcefd7e2c5f8b17e2bbf9c8243e589096241e5890962427209016240720901c864057202b9016243fe589096242721909c8642589095c83ce41212b9015c80e41212c7e3fcaff3fffffffffffe57f9ffffffff2c7e55f314d6f4319169c334141731d5320308946c341734134170ba33211d5332112f2c0b198f18711897990984413d984493d9a0b85d98c80c818c81349a995b1a98a69a98a6962b633ea1133ecfa2c1f467d9f458537cd4d534aeb62b534c894b8c894b8d2e4b8b0441a5c44f9b1b11b1311b13115b11b1f11b1b11b1f19b1711a2d41a2a279d42295a21a2a296110ea510ea510d1510d8d8cb0c4586336263363632c311b1319b13115b11618cd898bcae20ae27ffcae23fce2223ce2224b111e71311e577658baff2c5d95dd962ecb17458ba2c5d95ddf962e8aee8b17458bb363622b63362632b63362632b63362622b632b622c311b1b11b1b11f1b115b11b1b195b179b13196188b0c66c6c67131058892c44795c495c41c4c495c49c44496224ae23fce2623cb11258882b892b89ff2b88fff2c441c4441c4c416224e2624b112571057107131271311ffe5712571258883888938989f2b892b89ff38889389892c449c4c4f96119a39a1cdee361e4a6d3914c8ff336348ff31534d6c2b563cc6191d5cc4db0978ca5507e4d09920f0c8022ae4cd6c1534c2980a60cdef1ba0c3660d98c3671ba4de31e28aaf187e68f1a6f1af1a54a6d33663672b6e936e836734714712b8ff38fffbd2c4e483ecd556e20f776ec706aad981ff75f8ff47038ff4712c47f1594c194caa6194c94c994c14c194caa6194c94c15a08958fc18fc0fc1a080fc9b132089a08a081a088fc158fc98fc8fc98fc8fc98fc0fcf98fc8fc9607e4c7e07e4b03f0563f2581f934101f831f91f92b41031f841031f91f82c0fc1607e4c7e5044c7e47e4ac7e0ac7e0d0407e4c7e47e4d0447e7cd0447e0c7e07e0ac7e0c7e07e0c7e47e4b03f2563f263f23f063f03f0581f9ff2c3f2587e0adf82b7e7cdf97e0b0fc1bf0fc1bf0fc9bf2fc795bf056fc961f837e1f937e1f9f2c53258a64e99a67ce99a64ae992c53274c53258a64e99a64e99a60b14c1d314c95d3274c53074c53074cd32574c95d3274cd3258d9bcb1b3963672bd9fcaf662c6cc7b36ce7b3ece57b3ff9ecdb316367f2c6cc57b3795ecc58d98b1b315ece57b315ecc57b395ecc58d9cb1b3963672c6cc58d98b1b31ecfb3ff95ece58d98af66ff3d9f663d9b662c6ce58d9bcb1b395ecc58d9caf66f2bd995f31a74d5738745265324902f836f8cfe233f8d3e33674ca43367494a23248c2f930be02f831f893e334f8c7e232488c392a0c1c661c124657ee67484a267485ee46a25ee47ee4a2457484748548656fc667c6fc456fc4587e23512a422c5211a89d211a892899a89a8919f1bf1943e2f99f19f1160f88acf88df8df8fcb07c66fc47c7e583e22c1f1f9a52121192125219219219a5225299219211921a52f9a521219a521211a52121997c97c960be4cbe5838cbe0be4acbe4acbe0cbe4be4acbe0cbe4be0b05f265f05f3e577c1df17c1df37c15df1e77cdf058be7cef9be4ef9be4ef9be4b17c962f92c5f2577c95df058be4ef8be4b17c1df17c79df37c962f83be6f83be2f82bbe4b17c795df0577c962f8f2c7c47f17c7e58f8bcb1f115fc7e58f8bcafe22c7c47f1fc7fe7f1fc657f1f963e33f8be33f8fe22bf8cafe32bf8ffcfe2f88afe22bf8bcfe3f88fe3f8cfe2f88afe32bf8bcb1f1163e32bf88b1f17963e2fff3f8fe32bf8cb1f11fc7f1963e3ff2c7c5e7f17c5fffffe7f1fc7fe7f17c657f1f963e3ff2bf8cb1f179a08f40992f5881a6d30c9b137401a08a089545f8b131a56ca8731afe2696ecaa73182fe68234aa63f10787078c4e74a83f0563f063f0c4e70798d674a8820fffbd2c4e783f1f556c80ffbadc667b3da41ee572078d43f06822820682082056c4fe682082063f23f0584112c0fc158fcf98bf0bf18bf8bf198d8bf960c68acc6cac5fffcd0447e4c7e07e3fcc7e5044b03f27f8fc163f057f93fc7e7cb1f92bfcff9fe3f27f9fc9fe7f257f82c7e4b1f83fc7e0aff3ffe58fc1fe3f2577f2c5f8eff7f2c5f8efd7e3bf5f8eff7f3bfdffcb17f2c5fceff7f3bf5fbcff1f82bfc1fe7f258fc1fe3f058fc9fe7f07f8fc79fe3f3e7f8fc15fe0b1f92c7e3ffcb17f3bf5fcefd7e3bfdfceff7eff3bfdfceff7ef2c5f8efd7f3bf5f8aefc58bf162fc77ebf95dfcaefc58bf60cfc047f207f8fc833f1067e211fcc0ff3f9c23f9067e611fc033f011fcc19f808fe60cfc033f108fe419f9c0ff1f9847f007f8fc847f011fcc19f803fcfe419f8c0ff3f9c19f8067e60cfc047f303fcfe703fc7e607f8fc423f808fe3847f00cfc033f211fc047f007f9fc847f381fe3f3833f00cfc833f3c23f9833f103fcfe40ff1f85f34b617e36544b7317e7f1378c69630d95a03b2898d331b7f02b39c325e619325e121375712131cd3b732c20d931cc697315c0a02c16b990d8ae198da5b98bf25b998db2a18bf18d9a43ce9a432f9a40901a412f9f39ce9f3b2f9f392f1a42901612034839d2c24269024072fcbc690242690a406d96c9b65b26d86c95b60db0d836c360db2d92c360f98d82be695b60b1cd36cb63cb0d936cb64b0d82b6c1a814056a1350283cebaa12b5015d73cad426a0509a814275cae1624057212c483fcb1212c483cb121fff2c483cd42a0350a80d415d350a80d42a0350570b0a0f3ae574ad4258509a85426a15015a84d42a0350574b0a02c364db2d836c364db0d936c360db0d82b6c1b61b06d96c961b3e6d96c1b65b06d86cf95b64db0d836c360b0d836cb64adb258e6961b1e586c95b64db2d92b6c15b64adb26d86c961b26d96c95b64b0d92b6c961b06d86c795b60b0d92b6c961b2586c9b65b1e589016241e5720390480b1202c484e4120390c83cb120390c84b120390c80e43212c480b1202c484e43212b909c864057212c484b1212c483ce4321000fe62a690046401957256d7c1a044401990048111a046401158532620814aa56208987383ab184bc3ab986343f81931a32a9863432a98c4e41e9907fffbd2c4ea03b2f156da0f7790863b335a4dff5618a2081882220898a9a14c9900655c985328111853214cf9c014019aa694c994c94c194c14c994c14c1aa62a6194c94c960a64c7e47e4ac7e3fcd0447e4b08225825e325e121312025f2b121325f25f2c090960978c4844860cfc847f211fc01fe3f011fc81fe7f20cfc01fe7f00cfc047f20cfc01fe7f00cfc833f20cfc847f103fc7e60cfc047f207219001c86420721900324108c800e432108c84192006480232103904840e4121833f011fc01fe7f103fc7e3e0cfc033f007f9fc047f011fc01fe7f007f8fc419f908fe308fe211fc047f00cfc847f207f9fc847f20cfcc0ff3f8067e7067e023f808fe40ff1f9067e211fc033f011fc833f3833f303fcfe3067e00ff3f908fe019f9833f20cfcc23f903fc7e019f808fe023f8e07f8fc40ff3f8833f1067e423f9847f207f8fcc19f9847f207f8fc033f211fc847f00cfc033f1a99d67fa933ccc957f313fea3d51f6a55f31a7069c3183d26534990c3934f8d3e236f88fe235f8a7e232f88fe331ce038c31588cb934a59673bc724235635633739738338f90f34a470437054a5324324237e3be32b7e333e2be337e27e32b3e333e23e333e33e233e37e22c2899a895211a89d21f0b0a2456484648648456484648694a648648456484582422c1211921a52159211592199219211592119211211fc5f17f95fc457f195fc5fe7f1fc658f88ef9be0b17c1df37c1df37c1df17c9df17c15df2577c15df277cdf277c5f277cdf3e577c962f93be2f9fff2bbe4ef9be4aef93be2f8ff2bbe0db96e0adb836e5b836e38e36e78d36e1b82b6e4db96e3cdb86e4f8f6e4db96e4db96e4db96e0adb836e1b92b6e0e4390cb12115c84721c84572179c87211c852195c84721486721c86721486572195c865890cb12179c87219c87219c872115c8477c5f0577c15df2577c95df077cdf0577c95df258be7cef8be4ef8be7ffcaef83be2f9f3be6f82bbe4b17c962f82c5f1e577c15c867214845890bfce4290fce43908e4390ce4390cb1219c85219c85219c872116242390a43390a42f2b90bfcb121ff95c87e721487e62898a2462891ee462890a26541f88c3e27f88c5121444f3c2144ccf4f0be4c2f93d3ccf72674cc5133dccd57a4990b061c985f217c9ff1fffbd2c4ee03f47d56cc0ffba9c6beb5d901ff59b0bf19df11f11bf1df19c9117c94922997c97c1c91b07645144c74874847ee6a25c3a4251335125133a4251335135132c5f19bf1bf19bf11f199f11f11bf19f199f19f195b07997c17c997c97c9b07307960be0cbe0be0cbe4be0b05f3e67c47c467c47c6567c667c47c4583e22b3e32b3e22b3e333e33e28457cc22be40d7caf98457c01af85f211c1e115f0b062f903c1ebe018be418be00d7c2f8062f9035f2be018be40d7c2f908af908af8062f9062f881af85f0115f006be57c8317c01af85f2115f2115f20783d7c0317c0457c0317c8457cc198380d7caf9035f0be606be17c40df13e3063e2037c6f8f08be2c0df13e3037c6f8a0c7c406f89f1031f16117c5037c4f8818f8c0e89d12c2344819448194482344a11a260ca2411a260744a894234482344e11a240744a89f06512c1944e117c606f8df1845f1845f140df13e3063e2f063e308be3063e3037c4f8f063e2063e3063e2063e308be2831f1031f142344aaf83289ff06512846897fffff08d130651354c414d45332e313030555555f2c113a6ce9be046f81a9467a1d687668aaa2a87e79a2a86d07341e6491924469329244513e39afc65f199484f8199ee6a5118a262899a94428999ee628918a262891be062891a94452118a2452199486a51191388aa1913844e9a2aa44e9913844e9a2aa44e1a2a844e9913a44e9511542b2270a1f14aef8cacf88a1f17cb0fc4585122b5123a43a43f2b513f35125132c28981d13a240744a8904e8981d12a25c0e89d1308d1203a2744c2344c1944819448194480e89d1275c2344b03a2744c0e89d1208d120651284689e0ca2703a2544c1944a0744e89c1944c1944e11a240ca2411a260ca260744e894194482344a0ca2708d120651208d1206513df03a2544e0ca260ca2613a2508d1203a2544982344fc23449ffc19a770669ce11d3b08e9c08e9c08e9c8474ef68334e230669cf8334ee11d3bedfe0cd39ff84b4e0474e3c19a737fc19a774fb7ffd1a8ac5ca3172d7853ebdc5cb2b5e0cd19b4668a2f083bc90bb3285d90ca6d29b0d1730d98e3545e10d7855e08c47023f8db3711c4a11fc32ec8bb23466cbb234668bb23172978328bc20ad7853466d19d32eccbb334674bb22c233450bb2fffbd2c4d583e9c98ec40ffad44632b35881ff5a9879a3345d915a336562e5128b9671fc8e068e28e068e08e068e31fc568e271fe8e25836733666e82c1b3959b3159b3159b39b749b3160d9cacd9ccd9cd9fcb06cc566cc566cc66cc6cffe566ce566cc566cc66ce6ce5836633666e93366367336736636e83662b36636e86e82c1b3960d98231c4231c4231c0191c4191c4231c0191c4191c0231c58191c20c8e2118e20c8e00c8e1038e11c0231c4231c4231c40e38471c191c6071c638846388463840e38c70038e31c00e38c70038e11c0231c40e3847108c71c0e3847181c718e00c8e2e0c8e2118e00c8e18323881c708e0118e211b940cb97f03b9572c2372af065ca81dcab97f832e5f03b9572c0ee5dca08dca03b9772c2372f81dcbb9411b940cb97fc1972e11b940cb94e11b940cb95ededde0cb956846e5fff09dcae12b960000001fcc2994b64d58f35b0cd6f1530d2d835b0d0220a60c31b2ca4c17e05f8c4b605fcb00bf18c303ab18eac30c98822208960c6b31040a55319544b630c6831b3195031b3200c29831534ab830a648022a0532581534c2990a60ac54c2c0532562a69602982c0a98614c05305640116031b305fc4b72b0c68b018d16031b305fc17ff2b7e3cadf92c3f0587e0df87e4df87e4f1b5fcb0bf1afcbf79617eff2c2fe6bfafc56bf95a42690a4072fa4272fa40690242690a42690242690240572f9a40901a409015a42690a40690a40690cbe690a4269024256901a40901a40909a42909a412f1a41ce9a42909a4090961202c5f8aefc77ebff9dfafde577ff3bf5f8efd7e2c5fbcefd7f2c5f8b17ef2bbf15df8efd7f3bf5fbcb17e2c5f8eff7f3bfdfcaefe77fbf162fc77fbf1dfefc58bf795dfcaefe77ebf1dfafe77fbf9dfefc58fc1fe7f057f93fcfe4b1f82c7e4aff1fe58fc95fe0aff258fcf9fe3f258fcff95fe0aff1e58fc95fe0b1f92bfc1fe3f257f83fc7e0ff1f8f2bfc9fe7f3e58fc9fe7f257f82c7e3cff3f92c7e4b1f83fcfe7cb1f8f2c7e0ff3f82bfc9fe7f257f9ffffcbf79dde6bf76bb87ef58ffffef3cf9bfdd65909587c663f127c65455e4d2641838c9224994c9221830c66c0ca4c0fa0ca4cae20e34c5632438cbc71290cbc638a4ad2642c05f0617c8c1c787124465f2c1fe7485485d3f72fffbd2c4ff83b74592d26ff796ce783199c1ff75a8a433f73512314c4212c15b9a1095b195b15b960be4cbe0be4cbe5838d838be4d838be0c6e4e30ce386e4d58ce38b071e563706370372582422c252960908c90d297cac90cc908908ac90cadb936e1b936e38c36e1b82c37056dc1b71c61b72dc9b70dc9b70dc162f9f2bbe4ef9be7caef92c5f3e577c15df058be0aef8390a422b908ae422b90cb12196242f2c4845890fce43908e4390ce4290ce43908db86e0db96e4db86e4b0dc9b72dc161b936e5b836e5b936e5b936e1b92c370586e0b0dc1b72dc95b7256dc1b70dc1b72dc9b72dc1b70dc95b7056dc9b70dcff9b72dcf9b70dc9b72dc15b70586e0b0dc1b70dc95b726dcb71e586e4b0dc7fffffffff95fc658f8fffffffcafe2ffffff390a43390e42f2b90ce43908b12195c86721c86721c85e5721796243f2c4845890cae422b908e4390ce4290cae422b908e4390cb1217fffff962f92c5f3fffffffffe58be7ffffffffcb17cd5f2c0a266f813e066289b3a462529c5265e39c50512651a4ca61c96096631294bc632f1cbc731294bc630e30ae532b8c90f3158c38f32438ae33158c1b82b0e34a8491985f04929924630798c1e3079978c71498948121184847141589486289948665210a2462898a26581448aca432c0a2462890a2456289958a27e58144cb1f17ff963e23f8fe3f2c7c5e6dc3726dcb726dc370586e4db86e4db96e4b1c79b70dc9b72dc1b72dc1b72dc9b70dc1b72dc9b72dcf9b72dcf9b72dc95b70586e0db96e0b121162432b908b12115c865890cae43fff2c486572195c85e6dcb706dcb706dcb726dc37256dc15b7256dc9b70dc161b92c372586e4adb8ff36e1b936e5b8ff390a422b908ae422b908ae432b908e4390ce42908e4290ffcb1211c8521962422c484721486721c86572196242ff2bbe3cb17c15df058be4aef82bbe4b17c95df258be0b17c9df17c79df37c95df277cdf258be3fcef8be3caef82bbe7ce4390ce42908ae42390e43ff2c48457211c8721962432c485e721c845890bce43908e42908ae43f2b90cae422b908ae43f390e432b90cb121e11a244c8532310ce157e3496d8d93103fcc48c61f831931cad5270ae8192a1276cb51950b27064a9958b034403a095cd245b3b7114c8a46353c2ce1fffbd2c4ea83f37d5cce0ff6d7c60934de41cd6691444353298d52a832342b64c8a324908d5644353aa8444a1cf46b3f9a6506a968b563fea8af41bb1a648798f1e63c898c266f07155e133b3428486c913c33670cf9a295866cf19e39485681a081a081a1e129c677e57e1a07cacd338ad120ecd23499f1de8cc44d0f8ce46e19e819c990a0fe52909c5101a089f871a3e54287b64d19551340e34117fed19e91222672049f133f1b24748b928d4a8f709b9371d2478a3a26e891e375d22fc75f375b28f33ce909bd76cecbc9301f81dc82ceab0a9713b93676594f58edb49da3bef3c2f3bb03b6b1cbdf772e8cf0b4730257481e26ecdc70de789b62ab46d344ae916a6e3981b8f916a586c6b29d8d916c6f3a6eb84df9bed5b98379ee61f52c72bd3d3dc87e821ca177e00791c393b87227f2cd69c7ddc7a067703cc3b0ee47dafcbe61fbad63ee01800661f807c0111c7079e00600181e7819600647aa47e30c10cc641634bbb8df69a30a24cd04093289c8cae19347bb8e0aea368b28d8ea232684cca8573291ccd40a33350ecc624a30995cd890738837cd083103010c969c366b18d326230e03d1b0c1a1c317908ca25031f8502c0b2c898684248150e4120d48b4e061269366e3a6e4269a868803069b4e9c149d4e930374461238afa008c638402091a80889ac8840afd213404097154d5215a622b3ded69d6804b9a641a640282a5500d598d64c98100a470c870a802590fcd274de84d350cb014ba7df57e00281aa52ce5e2c55733dceccb1da81986f825237da3552354c4d752de4b60161a862611a68063251aa618a71c381bcaa78ad160060880a19d761ac460168cb38280a22ba4826407294a76971400b370db81204d8111b8f344f102a8e2e36a8dae0369545055d5692f2ca619932e67782e235a17eb5aa3a58661da90d3b4ca588b5d4e50214d093204b8ac74401342cd035225f635d0f3639a0ba51c4e648a6f9554c0b385ced7393cb8cf34a6970a6b5ba5a6ed5a5a5d534bad56954bad5594cb6f5694cb795a354dda58cd3674b19b3a954bad56954bad5594cb7095592028b51774bdc5f541a2a0287884f4281658d330cc64c37028f90c0237c00d19e686807c2e76e46b7a60fc415882830e5341837c7077c6a1e61ac1664858156418b18fffbd2c4f28234520cec0e67178619bf8c199c3fa82898c416f157c0b2aa1a08eb2a42498c798ab00190bb440d8a34055cca2823337443517315c0a3e43008df023463a6680c44a04145d541a56555050f50c51751550e50d5165655505575344d90148c4b04b844f2580cbc28c30941d0128808c0c28a9890e38611942802e5abb7325d56e5d9a765618b8414088443052520e8c4002e3913005532a0c5b0af083a29c02e4d0e01ac3546c3805c20892c065e166015260121a3178ad6bb7265da54a5c10a804031921214708210972048e1862c885c42852520e8c4422dda0115e3427f6028360882dea6429528dc91a8ec94a92891e98050305180050a985124a81d488085970e60634c20061c54c4871c3084a5a82dfa5123ea732c0a8f2db5805575e0d11b0ae972bcbb522ad2a5c49513d288a9280bb96c32d04749fc894c24d10a7523635c282d52c08ee9955ca55d2fae14ec0c70e94c414d45332e3130305555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555";
|
|
680
|
+
var Ic = Object.defineProperty, Pc = Object.getOwnPropertyDescriptor, H = (c, e, a, f) => {
|
|
681
|
+
for (var t = f > 1 ? void 0 : f ? Pc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
682
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
683
|
+
return f && t && Ic(e, a, t), t;
|
|
683
684
|
};
|
|
684
|
-
const $ =
|
|
685
|
+
const $ = pe.noConflict();
|
|
685
686
|
$.setLevel("info");
|
|
686
|
-
const
|
|
687
|
+
const q = "cb_";
|
|
687
688
|
class M extends X {
|
|
688
689
|
constructor() {
|
|
689
690
|
super(...arguments), this.actionIdCounter = 0, this.wsClient = null, this.replyMessage = null;
|
|
690
691
|
}
|
|
691
692
|
// this is called at startup
|
|
692
693
|
setSetting(e) {
|
|
693
|
-
$.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((
|
|
694
|
-
$.info(`Exception during bot initialization: ${
|
|
694
|
+
$.info("appState: Startup: setSetting", e), this.setting = e, this.initBot().catch((a) => {
|
|
695
|
+
$.info(`Exception during bot initialization: ${a.message}`);
|
|
695
696
|
});
|
|
696
697
|
}
|
|
697
698
|
clearConversation() {
|
|
@@ -714,25 +715,25 @@ class M extends X {
|
|
|
714
715
|
}
|
|
715
716
|
async initBot() {
|
|
716
717
|
if (!this.botSettingsInitialized) {
|
|
717
|
-
const
|
|
718
|
-
$.info(`Getting bot settings at ${
|
|
719
|
-
let
|
|
718
|
+
const a = `${this.setting.url.startsWith("localhost") ? "http" : "https"}://${this.setting.url}/api/bot/settings/${this.setting.orgId}/${this.setting.botId}`;
|
|
719
|
+
$.info(`Getting bot settings at ${a} ...`);
|
|
720
|
+
let f = null, t = null;
|
|
720
721
|
try {
|
|
721
|
-
|
|
722
|
+
f = await fetch(a, {
|
|
722
723
|
headers: {
|
|
723
724
|
"Access-Control-Allow-Origin": "null",
|
|
724
725
|
"X-Enegel-Signature": this.setting.botId
|
|
725
726
|
}
|
|
726
|
-
}), !
|
|
727
|
-
} catch (
|
|
728
|
-
$.error(`Failed to get bot ${this.setting.botId} settings: ${
|
|
727
|
+
}), !f.ok || f.status !== 200 ? $.error(`Failed to get bot ${this.setting.botId} settings: ${f.status} ${f.statusText}`) : t = await f.json();
|
|
728
|
+
} catch (o) {
|
|
729
|
+
$.error(`Failed to get bot ${this.setting.botId} settings: ${o.message}`), t = null;
|
|
729
730
|
}
|
|
730
|
-
if (this.botSettingsInitialized = !0, !
|
|
731
|
+
if (this.botSettingsInitialized = !0, !t) {
|
|
731
732
|
$.error("No bot settings available - bot disabled"), this.disabled = !0;
|
|
732
733
|
return;
|
|
733
734
|
}
|
|
734
|
-
this.setting.welcomeMessage = (
|
|
735
|
-
this.
|
|
735
|
+
this.setting.welcomeMessage = (t == null ? void 0 : t.welcomeMessage) || "How can I help ?", this.setting.engageMessage = (t == null ? void 0 : t.engageMessage) || "How can I help ?", this.setting.engageTimeout = (t == null ? void 0 : t.engageTimeout) || 5, setTimeout(() => {
|
|
736
|
+
this.showEngagePopup();
|
|
736
737
|
}, this.setting.engageTimeout * 1e3);
|
|
737
738
|
}
|
|
738
739
|
Array.isArray(this.messages) && this.messages.length <= 0 && this.addMessage({
|
|
@@ -745,20 +746,34 @@ class M extends X {
|
|
|
745
746
|
$.error(`Exception during ws client startup: ${e.message}`);
|
|
746
747
|
}));
|
|
747
748
|
}
|
|
749
|
+
showEngagePopup() {
|
|
750
|
+
if (this.open)
|
|
751
|
+
return;
|
|
752
|
+
$.info("Engaging User !"), this.engage = !0;
|
|
753
|
+
const e = (o) => {
|
|
754
|
+
const d = new Uint8Array(o.length / 2);
|
|
755
|
+
for (let b = 0; b < d.length; b++)
|
|
756
|
+
d[b] = parseInt(o.substr(b * 2, 2), 16);
|
|
757
|
+
return d;
|
|
758
|
+
};
|
|
759
|
+
let a = new Blob([e(Hc)], { type: "application/octet-stream" });
|
|
760
|
+
const f = URL.createObjectURL(a);
|
|
761
|
+
new Audio(f).play();
|
|
762
|
+
}
|
|
748
763
|
// Lazy initialization: avoid connecting until we actually need to send something
|
|
749
764
|
// TODO Depending on state, start ws & connect immediately when initialized
|
|
750
765
|
// use case: page refresh in the middle of the conversation
|
|
751
766
|
async getWsClient() {
|
|
752
767
|
if (this.wsClient)
|
|
753
768
|
return this.wsClient;
|
|
754
|
-
const
|
|
755
|
-
return $.info(`Initiating ws connection to ${
|
|
756
|
-
url:
|
|
769
|
+
const a = `${this.setting.url.startsWith("localhost") ? "ws" : "wss"}://${this.setting.url}/api/bot/connect/${this.setting.orgId}/${this.setting.botId}/${this.conversationId}`;
|
|
770
|
+
return $.info(`Initiating ws connection to ${a} ...`), this.wsClient = new Oc({
|
|
771
|
+
url: a,
|
|
757
772
|
orgId: this.setting.orgId,
|
|
758
773
|
botId: this.setting.botId,
|
|
759
774
|
convId: this.conversationId
|
|
760
|
-
}), await this.wsClient.start(), this.wsClient.onMessage = (
|
|
761
|
-
this.handleWscMessage(
|
|
775
|
+
}), await this.wsClient.start(), this.wsClient.onMessage = (f) => {
|
|
776
|
+
this.handleWscMessage(f);
|
|
762
777
|
}, this.wsClient;
|
|
763
778
|
}
|
|
764
779
|
handleWscMessage(e) {
|
|
@@ -767,16 +782,16 @@ class M extends X {
|
|
|
767
782
|
if (this.replyMessage)
|
|
768
783
|
this.replyMessage.data.text = e.text, this.updateMessage(this.replyMessage, ""), this.replyMessage = null;
|
|
769
784
|
else {
|
|
770
|
-
const
|
|
785
|
+
const a = {
|
|
771
786
|
type: "text",
|
|
772
787
|
author: "assistant",
|
|
773
788
|
data: {
|
|
774
789
|
text: e.text
|
|
775
790
|
}
|
|
776
791
|
};
|
|
777
|
-
"userName" in e && (
|
|
778
|
-
const
|
|
779
|
-
this.messages = this.messages.concat([
|
|
792
|
+
"userName" in e && (a.data.userName = e.userName, this.connectWs = "true"), "userAvatar" in e && (a.data.userAvatar = e.userAvatar, this.connectWs = "true");
|
|
793
|
+
const f = this.formatMessage(a);
|
|
794
|
+
this.messages = this.messages.concat([f]);
|
|
780
795
|
}
|
|
781
796
|
break;
|
|
782
797
|
}
|
|
@@ -803,26 +818,26 @@ class M extends X {
|
|
|
803
818
|
}
|
|
804
819
|
addActions(e) {
|
|
805
820
|
if (Array.isArray(e) && e.length > 0) {
|
|
806
|
-
const
|
|
807
|
-
this.actions = this.actions.concat(
|
|
821
|
+
const a = e.map((f) => Object.assign(f, { internalId: this.actionIdCounter++ }));
|
|
822
|
+
this.actions = this.actions.concat(a);
|
|
808
823
|
}
|
|
809
824
|
}
|
|
810
825
|
removeAction(e) {
|
|
811
|
-
const
|
|
812
|
-
if (
|
|
813
|
-
this.actions.splice(
|
|
814
|
-
const
|
|
815
|
-
this.actions =
|
|
826
|
+
const a = this.actions.findIndex((f) => f.internalId === e);
|
|
827
|
+
if (a !== -1) {
|
|
828
|
+
this.actions.splice(a, 1);
|
|
829
|
+
const f = [];
|
|
830
|
+
this.actions = f.concat(this.actions);
|
|
816
831
|
}
|
|
817
832
|
}
|
|
818
833
|
async sendMessage(e) {
|
|
819
834
|
e = this.formatMessage(e), $.info("Send Message:", e), this.messages = this.messages.concat([e]);
|
|
820
|
-
const
|
|
821
|
-
if (!
|
|
835
|
+
const a = await this.getWsClient();
|
|
836
|
+
if (!a) {
|
|
822
837
|
$.error("Error - failed to obtain ws client"), this.replyMessage = null;
|
|
823
838
|
return;
|
|
824
839
|
}
|
|
825
|
-
|
|
840
|
+
a.sendMessage({
|
|
826
841
|
type: "message",
|
|
827
842
|
id: e.id,
|
|
828
843
|
text: e.data.text
|
|
@@ -830,8 +845,8 @@ class M extends X {
|
|
|
830
845
|
}
|
|
831
846
|
// TODO revisit below
|
|
832
847
|
formatMessage(e) {
|
|
833
|
-
var
|
|
834
|
-
return e.id || (e.id = xe()), e.timestamp = Date.now(), e.author === "assistant" && (e.replyId = (
|
|
848
|
+
var a;
|
|
849
|
+
return e.id || (e.id = xe()), e.timestamp = Date.now(), e.author === "assistant" && (e.replyId = (a = this.messages[this.messages.length - 1]) == null ? void 0 : a.id), e;
|
|
835
850
|
}
|
|
836
851
|
// add message
|
|
837
852
|
addMessage(e) {
|
|
@@ -847,13 +862,13 @@ class M extends X {
|
|
|
847
862
|
});
|
|
848
863
|
}
|
|
849
864
|
// update message
|
|
850
|
-
updateMessage(e,
|
|
851
|
-
const
|
|
852
|
-
return
|
|
865
|
+
updateMessage(e, a) {
|
|
866
|
+
const f = this.formatMessage(e);
|
|
867
|
+
return f.isThinking = !1, a && (f.data.text += a), this.messages = this.messages.map((t) => t.id === f.id ? f : t), f;
|
|
853
868
|
}
|
|
854
869
|
// remove message
|
|
855
870
|
removeMessage(e) {
|
|
856
|
-
this.messages = this.messages.filter((
|
|
871
|
+
this.messages = this.messages.filter((a) => a.id !== e);
|
|
857
872
|
}
|
|
858
873
|
// clear messages
|
|
859
874
|
clearMessages() {
|
|
@@ -861,31 +876,31 @@ class M extends X {
|
|
|
861
876
|
}
|
|
862
877
|
}
|
|
863
878
|
H([
|
|
864
|
-
|
|
865
|
-
|
|
879
|
+
V({ prefix: q }),
|
|
880
|
+
O({ value: "en" })
|
|
866
881
|
], M.prototype, "language", 2);
|
|
867
882
|
H([
|
|
868
|
-
|
|
869
|
-
|
|
883
|
+
V({ prefix: q }),
|
|
884
|
+
O({ value: "light" })
|
|
870
885
|
], M.prototype, "theme", 2);
|
|
871
886
|
H([
|
|
872
|
-
|
|
873
|
-
|
|
887
|
+
V({ prefix: q }),
|
|
888
|
+
O({ type: Boolean, value: !1 })
|
|
874
889
|
], M.prototype, "open", 2);
|
|
875
890
|
H([
|
|
876
|
-
|
|
877
|
-
|
|
891
|
+
V({ prefix: q }),
|
|
892
|
+
O({ value: "false" })
|
|
878
893
|
], M.prototype, "connectWs", 2);
|
|
879
894
|
H([
|
|
880
|
-
|
|
881
|
-
|
|
895
|
+
V({ prefix: q }),
|
|
896
|
+
O({ value: xe() })
|
|
882
897
|
], M.prototype, "conversationId", 2);
|
|
883
898
|
H([
|
|
884
|
-
|
|
885
|
-
|
|
899
|
+
V({ prefix: q }),
|
|
900
|
+
O({ type: Array, value: [] })
|
|
886
901
|
], M.prototype, "messages", 2);
|
|
887
902
|
H([
|
|
888
|
-
|
|
903
|
+
O({
|
|
889
904
|
type: Array,
|
|
890
905
|
value: []
|
|
891
906
|
/*
|
|
@@ -929,17 +944,17 @@ H([
|
|
|
929
944
|
})
|
|
930
945
|
], M.prototype, "actions", 2);
|
|
931
946
|
H([
|
|
932
|
-
|
|
947
|
+
O({ type: Boolean, value: !1 })
|
|
933
948
|
], M.prototype, "botSettingsInitialized", 2);
|
|
934
949
|
H([
|
|
935
|
-
|
|
950
|
+
O({ type: Boolean, value: !1 })
|
|
936
951
|
], M.prototype, "disabled", 2);
|
|
937
952
|
H([
|
|
938
|
-
|
|
953
|
+
O({ type: Boolean, value: !1 })
|
|
939
954
|
], M.prototype, "engage", 2);
|
|
940
955
|
H([
|
|
941
|
-
|
|
942
|
-
|
|
956
|
+
V({ prefix: q }),
|
|
957
|
+
O({
|
|
943
958
|
type: Object,
|
|
944
959
|
value: {
|
|
945
960
|
orgId: null,
|
|
@@ -949,7 +964,7 @@ H([
|
|
|
949
964
|
}
|
|
950
965
|
})
|
|
951
966
|
], M.prototype, "setting", 2);
|
|
952
|
-
const
|
|
967
|
+
const n = new M(), Ec = x`
|
|
953
968
|
${I}
|
|
954
969
|
:host {
|
|
955
970
|
position: relative;
|
|
@@ -995,50 +1010,50 @@ const d = new M(), Pt = x`
|
|
|
995
1010
|
display: inline;
|
|
996
1011
|
}
|
|
997
1012
|
`;
|
|
998
|
-
var
|
|
999
|
-
for (var
|
|
1000
|
-
(
|
|
1001
|
-
return
|
|
1013
|
+
var zc = Object.defineProperty, Tc = Object.getOwnPropertyDescriptor, Bc = (c, e, a, f) => {
|
|
1014
|
+
for (var t = f > 1 ? void 0 : f ? Tc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
1015
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
1016
|
+
return f && t && zc(e, a, t), t;
|
|
1002
1017
|
};
|
|
1003
|
-
class C extends
|
|
1018
|
+
class C extends ie {
|
|
1004
1019
|
constructor() {
|
|
1005
1020
|
super(...arguments), this.lang = "en";
|
|
1006
1021
|
}
|
|
1007
|
-
emit(e,
|
|
1008
|
-
const
|
|
1022
|
+
emit(e, a) {
|
|
1023
|
+
const f = new CustomEvent(e, {
|
|
1009
1024
|
bubbles: !0,
|
|
1010
1025
|
cancelable: !1,
|
|
1011
1026
|
composed: !0,
|
|
1012
1027
|
detail: {},
|
|
1013
|
-
...
|
|
1028
|
+
...a
|
|
1014
1029
|
});
|
|
1015
|
-
return this.dispatchEvent(
|
|
1030
|
+
return this.dispatchEvent(f), f;
|
|
1016
1031
|
}
|
|
1017
1032
|
}
|
|
1018
|
-
|
|
1019
|
-
|
|
1033
|
+
Bc([
|
|
1034
|
+
r({ type: String })
|
|
1020
1035
|
], C.prototype, "lang", 2);
|
|
1021
|
-
const
|
|
1022
|
-
var
|
|
1023
|
-
for (var
|
|
1024
|
-
(
|
|
1025
|
-
return
|
|
1036
|
+
const te = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8L2.146 2.854Z"/></svg>';
|
|
1037
|
+
var Rc = Object.defineProperty, Vc = Object.getOwnPropertyDescriptor, We = (c, e, a, f) => {
|
|
1038
|
+
for (var t = f > 1 ? void 0 : f ? Vc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
1039
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
1040
|
+
return f && t && Rc(e, a, t), t;
|
|
1026
1041
|
};
|
|
1027
|
-
let
|
|
1042
|
+
let fe = class extends C {
|
|
1028
1043
|
constructor() {
|
|
1029
1044
|
super(...arguments), this.title = "ChatBot";
|
|
1030
1045
|
}
|
|
1031
1046
|
render() {
|
|
1032
|
-
return
|
|
1047
|
+
return s` <header class="cb-header" part="header">
|
|
1033
1048
|
<span class="left">
|
|
1034
1049
|
<sl-button @click=${this._clickHandler} class="cb-setting-button" variant="text" circle>
|
|
1035
|
-
<cb-icon color="white" svg="${
|
|
1050
|
+
<cb-icon color="white" svg="${n.setting.logoSvg}"></cb-icon>
|
|
1036
1051
|
</sl-button>
|
|
1037
1052
|
</span>
|
|
1038
1053
|
<span class="center title">${this.title}</span>
|
|
1039
1054
|
<span class="right">
|
|
1040
1055
|
<sl-button @click=${this._clickCloseHandler} class="cb-setting-button" variant="text" circle>
|
|
1041
|
-
<cb-icon color="white" svg="${
|
|
1056
|
+
<cb-icon color="white" svg="${te}"></cb-icon>
|
|
1042
1057
|
</sl-button>
|
|
1043
1058
|
</span>
|
|
1044
1059
|
</header>`;
|
|
@@ -1054,14 +1069,14 @@ let re = class extends C {
|
|
|
1054
1069
|
});
|
|
1055
1070
|
}
|
|
1056
1071
|
};
|
|
1057
|
-
|
|
1072
|
+
fe.styles = Ec;
|
|
1058
1073
|
We([
|
|
1059
|
-
|
|
1060
|
-
],
|
|
1061
|
-
|
|
1074
|
+
r({ type: String, attribute: "title" })
|
|
1075
|
+
], fe.prototype, "title", 2);
|
|
1076
|
+
fe = We([
|
|
1062
1077
|
k("cb-header")
|
|
1063
|
-
],
|
|
1064
|
-
const
|
|
1078
|
+
], fe);
|
|
1079
|
+
const qc = x`
|
|
1065
1080
|
${I}
|
|
1066
1081
|
.cb-footer {
|
|
1067
1082
|
line-height: 60px;
|
|
@@ -1076,17 +1091,17 @@ const Vt = x`
|
|
|
1076
1091
|
color: var(--primary-color);
|
|
1077
1092
|
}
|
|
1078
1093
|
`;
|
|
1079
|
-
var
|
|
1080
|
-
for (var
|
|
1081
|
-
(
|
|
1082
|
-
return
|
|
1094
|
+
var Dc = Object.defineProperty, Fc = Object.getOwnPropertyDescriptor, Uc = (c, e, a, f) => {
|
|
1095
|
+
for (var t = f > 1 ? void 0 : f ? Fc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
1096
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
1097
|
+
return f && t && Dc(e, a, t), t;
|
|
1083
1098
|
};
|
|
1084
1099
|
let ke = class extends C {
|
|
1085
1100
|
constructor() {
|
|
1086
1101
|
super(...arguments), this.year = (/* @__PURE__ */ new Date()).getFullYear();
|
|
1087
1102
|
}
|
|
1088
1103
|
render() {
|
|
1089
|
-
return
|
|
1104
|
+
return s`
|
|
1090
1105
|
<div class="cb-footer" part="footer">
|
|
1091
1106
|
yugasun@${this.year}
|
|
1092
1107
|
<a
|
|
@@ -1116,11 +1131,11 @@ let ke = class extends C {
|
|
|
1116
1131
|
`;
|
|
1117
1132
|
}
|
|
1118
1133
|
};
|
|
1119
|
-
ke.styles =
|
|
1120
|
-
ke =
|
|
1134
|
+
ke.styles = qc;
|
|
1135
|
+
ke = Uc([
|
|
1121
1136
|
k("cb-footer")
|
|
1122
1137
|
], ke);
|
|
1123
|
-
const
|
|
1138
|
+
const Zc = x`
|
|
1124
1139
|
${I}
|
|
1125
1140
|
|
|
1126
1141
|
:host {
|
|
@@ -1217,14 +1232,14 @@ const Ut = x`
|
|
|
1217
1232
|
transition: background 0s;
|
|
1218
1233
|
}
|
|
1219
1234
|
`;
|
|
1220
|
-
var
|
|
1221
|
-
for (var
|
|
1222
|
-
(
|
|
1223
|
-
return
|
|
1235
|
+
var Nc = Object.defineProperty, Wc = Object.getOwnPropertyDescriptor, Kc = (c, e, a, f) => {
|
|
1236
|
+
for (var t = f > 1 ? void 0 : f ? Wc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
1237
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
1238
|
+
return f && t && Nc(e, a, t), t;
|
|
1224
1239
|
};
|
|
1225
|
-
let _e = class extends
|
|
1240
|
+
let _e = class extends ie {
|
|
1226
1241
|
render() {
|
|
1227
|
-
return
|
|
1242
|
+
return s` <div class="cb-thinking" style="color: rgb(34, 34, 34);"><span></span><span></span><span></span></div>`;
|
|
1228
1243
|
}
|
|
1229
1244
|
};
|
|
1230
1245
|
_e.styles = x`
|
|
@@ -1265,31 +1280,31 @@ _e.styles = x`
|
|
|
1265
1280
|
}
|
|
1266
1281
|
}
|
|
1267
1282
|
`;
|
|
1268
|
-
_e =
|
|
1283
|
+
_e = Kc([
|
|
1269
1284
|
k("cb-thinking")
|
|
1270
1285
|
], _e);
|
|
1271
|
-
var
|
|
1272
|
-
for (var
|
|
1273
|
-
(
|
|
1274
|
-
return
|
|
1286
|
+
var Jc = Object.defineProperty, Yc = Object.getOwnPropertyDescriptor, Ke = (c, e, a, f) => {
|
|
1287
|
+
for (var t = f > 1 ? void 0 : f ? Yc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
1288
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
1289
|
+
return f && t && Jc(e, a, t), t;
|
|
1275
1290
|
};
|
|
1276
|
-
let
|
|
1291
|
+
let oe = class extends C {
|
|
1277
1292
|
constructor() {
|
|
1278
1293
|
super(...arguments), this.files = [];
|
|
1279
1294
|
}
|
|
1280
1295
|
render() {
|
|
1281
|
-
return
|
|
1296
|
+
return s` <div class="cb-uploading">
|
|
1282
1297
|
<div class="cb-uploading__title">
|
|
1283
1298
|
<sl-spinner class="cb-spinner"></sl-spinner>
|
|
1284
1299
|
<span>Uploading...</span>
|
|
1285
1300
|
</div>
|
|
1286
1301
|
<div class="cb-uploading__filelist">
|
|
1287
|
-
${this.files.map((
|
|
1302
|
+
${this.files.map((c) => s`${c.name}<br />`)}
|
|
1288
1303
|
</div>
|
|
1289
1304
|
</div>`;
|
|
1290
1305
|
}
|
|
1291
1306
|
};
|
|
1292
|
-
|
|
1307
|
+
oe.styles = x`
|
|
1293
1308
|
.cb-uploading {
|
|
1294
1309
|
text-align: left;
|
|
1295
1310
|
}
|
|
@@ -1308,12 +1323,12 @@ ae.styles = x`
|
|
|
1308
1323
|
}
|
|
1309
1324
|
`;
|
|
1310
1325
|
Ke([
|
|
1311
|
-
|
|
1312
|
-
],
|
|
1313
|
-
|
|
1326
|
+
r({ type: Array })
|
|
1327
|
+
], oe.prototype, "files", 2);
|
|
1328
|
+
oe = Ke([
|
|
1314
1329
|
k("cb-uploading")
|
|
1315
|
-
],
|
|
1316
|
-
const
|
|
1330
|
+
], oe);
|
|
1331
|
+
const Gc = x`
|
|
1317
1332
|
${I}
|
|
1318
1333
|
:host {
|
|
1319
1334
|
}
|
|
@@ -1334,17 +1349,17 @@ const Yt = x`
|
|
|
1334
1349
|
margin-right: 0.2em;
|
|
1335
1350
|
}
|
|
1336
1351
|
`;
|
|
1337
|
-
var
|
|
1338
|
-
for (var
|
|
1339
|
-
(
|
|
1340
|
-
return
|
|
1352
|
+
var Xc = Object.defineProperty, Qc = Object.getOwnPropertyDescriptor, Se = (c, e, a, f) => {
|
|
1353
|
+
for (var t = f > 1 ? void 0 : f ? Qc(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
1354
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
1355
|
+
return f && t && Xc(e, a, t), t;
|
|
1341
1356
|
};
|
|
1342
|
-
let K = class extends
|
|
1357
|
+
let K = class extends ie {
|
|
1343
1358
|
constructor() {
|
|
1344
1359
|
super(...arguments), this.url = "", this.inverse = !1;
|
|
1345
1360
|
}
|
|
1346
1361
|
render() {
|
|
1347
|
-
return
|
|
1362
|
+
return s`
|
|
1348
1363
|
<a
|
|
1349
1364
|
class="
|
|
1350
1365
|
cb-external-link link__item
|
|
@@ -1385,42 +1400,42 @@ K.styles = x`
|
|
|
1385
1400
|
}
|
|
1386
1401
|
`;
|
|
1387
1402
|
Se([
|
|
1388
|
-
|
|
1403
|
+
r({ type: String })
|
|
1389
1404
|
], K.prototype, "url", 2);
|
|
1390
1405
|
Se([
|
|
1391
|
-
|
|
1406
|
+
r({ type: Boolean })
|
|
1392
1407
|
], K.prototype, "inverse", 2);
|
|
1393
1408
|
K = Se([
|
|
1394
1409
|
k("cb-external-link")
|
|
1395
1410
|
], K);
|
|
1396
|
-
const
|
|
1397
|
-
var
|
|
1398
|
-
for (var
|
|
1399
|
-
(
|
|
1400
|
-
return
|
|
1411
|
+
const ea = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-2v-1h2a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.928 15.849v-3.337h1.136v-.662H0v.662h1.134v3.337h.794Zm4.689-3.999h-.894L4.9 13.289h-.035l-.832-1.439h-.932l1.228 1.983l-1.24 2.016h.862l.853-1.415h.035l.85 1.415h.907l-1.253-1.992l1.274-2.007Zm1.93.662v3.337h-.794v-3.337H6.619v-.662h3.064v.662H8.546Z"/></svg>', ca = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.6 11.85H0v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474a1.42 1.42 0 0 0 .161-.677c0-.25-.053-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.794.794 0 0 1-.375.082H.788V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm1.217-1.333v3.999h1.46c.401 0 .734-.08.998-.237a1.45 1.45 0 0 0 .595-.689c.13-.3.196-.662.196-1.084c0-.42-.065-.778-.196-1.075a1.426 1.426 0 0 0-.589-.68c-.264-.156-.599-.234-1.005-.234H3.362Zm.791.645h.563c.248 0 .45.05.609.152a.89.89 0 0 1 .354.454c.079.201.118.452.118.753a2.3 2.3 0 0 1-.068.592a1.14 1.14 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.298 1.298 0 0 1-.483.082h-.563v-2.707Zm3.743 1.763v1.591h-.79V11.85h2.548v.653H7.896v1.117h1.606v.638H7.896Z"/></svg>', aa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2H9v-1h3a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM.706 13.189v2.66H0V11.85h.806l1.14 2.596h.026l1.14-2.596h.8v3.999h-.716v-2.66h-.038l-.946 2.159h-.516l-.952-2.16H.706Zm3.919 2.66V11.85h1.459c.406 0 .741.078 1.005.234c.263.157.46.383.589.68c.13.297.196.655.196 1.075c0 .422-.066.784-.196 1.084c-.131.301-.33.53-.595.689c-.264.158-.597.237-1 .237H4.626Zm1.353-3.354h-.562v2.707h.562c.186 0 .347-.028.484-.082a.8.8 0 0 0 .334-.252a1.14 1.14 0 0 0 .196-.422c.045-.168.067-.365.067-.592a2.1 2.1 0 0 0-.117-.753a.89.89 0 0 0-.354-.454c-.159-.102-.362-.152-.61-.152Z"/></svg>', ta = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM3.517 14.841a1.13 1.13 0 0 0 .401.823c.13.108.289.192.478.252c.19.061.411.091.665.091c.338 0 .624-.053.859-.158c.236-.105.416-.252.539-.44c.125-.189.187-.408.187-.656c0-.224-.045-.41-.134-.56a1.001 1.001 0 0 0-.375-.357a2.027 2.027 0 0 0-.566-.21l-.621-.144a.97.97 0 0 1-.404-.176a.37.37 0 0 1-.144-.299c0-.156.062-.284.185-.384c.125-.101.296-.152.512-.152c.143 0 .266.023.37.068a.624.624 0 0 1 .246.181a.56.56 0 0 1 .12.258h.75a1.092 1.092 0 0 0-.2-.566a1.21 1.21 0 0 0-.5-.41a1.813 1.813 0 0 0-.78-.152c-.293 0-.551.05-.776.15c-.225.099-.4.24-.527.421c-.127.182-.19.395-.19.639c0 .201.04.376.122.524c.082.149.2.27.352.367c.152.095.332.167.539.213l.618.144c.207.049.361.113.463.193a.387.387 0 0 1 .152.326a.505.505 0 0 1-.085.29a.559.559 0 0 1-.255.193c-.111.047-.249.07-.413.07c-.117 0-.223-.013-.32-.04a.838.838 0 0 1-.248-.115a.578.578 0 0 1-.255-.384h-.765ZM.806 13.693c0-.248.034-.46.102-.633a.868.868 0 0 1 .302-.399a.814.814 0 0 1 .475-.137c.15 0 .283.032.398.097a.7.7 0 0 1 .272.26a.85.85 0 0 1 .12.381h.765v-.072a1.33 1.33 0 0 0-.466-.964a1.441 1.441 0 0 0-.489-.272a1.838 1.838 0 0 0-.606-.097c-.356 0-.66.074-.911.223c-.25.148-.44.359-.572.632c-.13.274-.196.6-.196.979v.498c0 .379.064.704.193.976c.131.271.322.48.572.626c.25.145.554.217.914.217c.293 0 .554-.055.785-.164c.23-.11.414-.26.55-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.764a.799.799 0 0 1-.118.363a.7.7 0 0 1-.272.25a.874.874 0 0 1-.401.087a.845.845 0 0 1-.478-.132a.833.833 0 0 1-.299-.392a1.699 1.699 0 0 1-.102-.627v-.495Zm8.239 2.238h-.953l-1.338-3.999h.917l.896 3.138h.038l.888-3.138h.879l-1.327 4Z"/></svg>', fa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2h-1v-1h1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5ZM1.6 11.85H0v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474a1.42 1.42 0 0 0 .161-.677c0-.25-.053-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.794.794 0 0 1-.375.082H.788V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm2.817-1.333h-1.6v3.999h.791v-1.342h.803c.287 0 .531-.057.732-.173c.203-.117.358-.275.463-.474c.108-.201.161-.427.161-.677c0-.25-.052-.476-.158-.677a1.176 1.176 0 0 0-.46-.477c-.2-.12-.443-.179-.732-.179Zm.545 1.333a.795.795 0 0 1-.085.38a.574.574 0 0 1-.238.241a.793.793 0 0 1-.375.082H4.15V12.48h.66c.218 0 .389.06.512.181c.123.122.185.296.185.522Zm2.767-.67v3.336H7.48v-3.337H6.346v-.662h3.065v.662H8.274Z"/></svg>', oa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V14a2 2 0 0 1-2 2v-1a1 1 0 0 0 1-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5Zm-7.839 9.166v.522c0 .256-.039.47-.117.641a.861.861 0 0 1-.322.387a.877.877 0 0 1-.469.126a.883.883 0 0 1-.471-.126a.868.868 0 0 1-.32-.386a1.55 1.55 0 0 1-.117-.642v-.522c0-.257.04-.471.117-.641a.868.868 0 0 1 .32-.387a.868.868 0 0 1 .471-.129c.176 0 .332.043.469.13a.861.861 0 0 1 .322.386c.078.17.117.384.117.641Zm.803.519v-.513c0-.377-.068-.7-.205-.972a1.46 1.46 0 0 0-.589-.63c-.254-.147-.56-.22-.917-.22c-.355 0-.662.073-.92.22a1.441 1.441 0 0 0-.589.627c-.136.271-.205.596-.205.975v.513c0 .375.069.7.205.973c.137.271.333.48.59.627c.257.144.564.216.92.216c.357 0 .662-.072.916-.216c.256-.147.452-.356.59-.627c.136-.274.204-.598.204-.973ZM0 11.926v4h1.459c.402 0 .735-.08.999-.238a1.45 1.45 0 0 0 .595-.689c.13-.3.196-.662.196-1.084c0-.42-.065-.778-.196-1.075a1.426 1.426 0 0 0-.59-.68c-.263-.156-.598-.234-1.004-.234H0Zm.791.645h.563c.248 0 .45.05.609.152a.89.89 0 0 1 .354.454c.079.201.118.452.118.753a2.3 2.3 0 0 1-.068.592a1.141 1.141 0 0 1-.196.422a.8.8 0 0 1-.334.252a1.298 1.298 0 0 1-.483.082H.79V12.57Zm7.422.483a1.732 1.732 0 0 0-.103.633v.495c0 .246.034.455.103.627a.834.834 0 0 0 .298.393a.845.845 0 0 0 .478.131a.868.868 0 0 0 .401-.088a.699.699 0 0 0 .273-.248a.8.8 0 0 0 .117-.364h.765v.076a1.268 1.268 0 0 1-.226.674c-.137.194-.32.345-.55.454a1.81 1.81 0 0 1-.786.164c-.36 0-.664-.072-.914-.216a1.424 1.424 0 0 1-.571-.627c-.13-.272-.194-.597-.194-.976v-.498c0-.379.066-.705.197-.978c.13-.274.321-.485.571-.633c.252-.149.556-.223.911-.223c.219 0 .421.032.607.097c.187.062.35.153.489.272a1.326 1.326 0 0 1 .466.964v.073H9.78a.85.85 0 0 0-.12-.38a.7.7 0 0 0-.273-.261a.802.802 0 0 0-.398-.097a.814.814 0 0 0-.475.138a.868.868 0 0 0-.301.398Z"/></svg>', da = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" fill-rule="evenodd" d="M14 4.5V11h-1V4.5h-2A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v9H2V2a2 2 0 0 1 2-2h5.5L14 4.5Zm-6.839 9.688v-.522a1.54 1.54 0 0 0-.117-.641a.861.861 0 0 0-.322-.387a.862.862 0 0 0-.469-.129a.868.868 0 0 0-.471.13a.868.868 0 0 0-.32.386a1.54 1.54 0 0 0-.117.641v.522c0 .256.04.47.117.641a.868.868 0 0 0 .32.387a.883.883 0 0 0 .471.126a.877.877 0 0 0 .469-.126a.861.861 0 0 0 .322-.386a1.55 1.55 0 0 0 .117-.642Zm.803-.516v.513c0 .375-.068.7-.205.973a1.47 1.47 0 0 1-.589.627c-.254.144-.56.216-.917.216a1.86 1.86 0 0 1-.92-.216a1.463 1.463 0 0 1-.589-.627a2.151 2.151 0 0 1-.205-.973v-.513c0-.379.069-.704.205-.975c.137-.274.333-.483.59-.627c.257-.147.564-.22.92-.22c.357 0 .662.073.916.22c.256.146.452.356.59.63c.136.271.204.595.204.972ZM1 15.925v-3.999h1.459c.406 0 .741.078 1.005.235c.264.156.46.382.589.68c.13.296.196.655.196 1.074c0 .422-.065.784-.196 1.084c-.131.301-.33.53-.595.689c-.264.158-.597.237-.999.237H1Zm1.354-3.354H1.79v2.707h.563c.185 0 .346-.028.483-.082a.8.8 0 0 0 .334-.252c.088-.114.153-.254.196-.422a2.3 2.3 0 0 0 .068-.592c0-.3-.04-.552-.118-.753a.89.89 0 0 0-.354-.454c-.158-.102-.361-.152-.61-.152Zm6.756 1.116c0-.248.034-.46.103-.633a.868.868 0 0 1 .301-.398a.814.814 0 0 1 .475-.138c.15 0 .283.032.398.097a.7.7 0 0 1 .273.26a.85.85 0 0 1 .12.381h.765v-.073a1.33 1.33 0 0 0-.466-.964a1.44 1.44 0 0 0-.49-.272a1.836 1.836 0 0 0-.606-.097c-.355 0-.66.074-.911.223c-.25.148-.44.359-.571.633c-.131.273-.197.6-.197.978v.498c0 .379.065.704.194.976c.13.271.321.48.571.627c.25.144.555.216.914.216c.293 0 .555-.054.785-.164c.23-.11.414-.26.551-.454a1.27 1.27 0 0 0 .226-.674v-.076h-.765a.8.8 0 0 1-.117.364a.699.699 0 0 1-.273.248a.874.874 0 0 1-.401.088a.845.845 0 0 1-.478-.131a.834.834 0 0 1-.298-.393a1.7 1.7 0 0 1-.103-.627v-.495Zm5.092-1.76h.894l-1.275 2.006l1.254 1.992h-.908l-.85-1.415h-.035l-.852 1.415h-.862l1.24-2.015l-1.228-1.984h.932l.832 1.439h.035l.823-1.439Z"/></svg>';
|
|
1412
|
+
var ba = Object.defineProperty, ra = Object.getOwnPropertyDescriptor, Ae = (c, e, a, f) => {
|
|
1413
|
+
for (var t = f > 1 ? void 0 : f ? ra(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
1414
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
1415
|
+
return f && t && ba(e, a, t), t;
|
|
1401
1416
|
};
|
|
1402
1417
|
const Pe = {
|
|
1403
|
-
pdf:
|
|
1404
|
-
txt:
|
|
1405
|
-
md:
|
|
1406
|
-
csv:
|
|
1407
|
-
ppd:
|
|
1408
|
-
doc:
|
|
1409
|
-
docx:
|
|
1418
|
+
pdf: ca,
|
|
1419
|
+
txt: ea,
|
|
1420
|
+
md: aa,
|
|
1421
|
+
csv: ta,
|
|
1422
|
+
ppd: fa,
|
|
1423
|
+
doc: oa,
|
|
1424
|
+
docx: da
|
|
1410
1425
|
};
|
|
1411
1426
|
let J = class extends C {
|
|
1412
1427
|
constructor() {
|
|
1413
1428
|
super(...arguments), this.filename = "", this.url = "";
|
|
1414
1429
|
}
|
|
1415
1430
|
get type() {
|
|
1416
|
-
const
|
|
1431
|
+
const c = "txt";
|
|
1417
1432
|
if (!this.filename)
|
|
1418
|
-
return
|
|
1433
|
+
return c;
|
|
1419
1434
|
const e = this.filename.split(".").pop();
|
|
1420
|
-
return e ? e.toLowerCase() :
|
|
1435
|
+
return e ? e.toLowerCase() : c;
|
|
1421
1436
|
}
|
|
1422
1437
|
render() {
|
|
1423
|
-
return
|
|
1438
|
+
return s`
|
|
1424
1439
|
<cb-external-link url="${this.url}" inverse>
|
|
1425
1440
|
<div class="cb-file">
|
|
1426
1441
|
${this.renderFileIcon()}
|
|
@@ -1430,7 +1445,7 @@ let J = class extends C {
|
|
|
1430
1445
|
`;
|
|
1431
1446
|
}
|
|
1432
1447
|
renderFileIcon() {
|
|
1433
|
-
return
|
|
1448
|
+
return s`
|
|
1434
1449
|
<cb-icon
|
|
1435
1450
|
class="cb-file-icon"
|
|
1436
1451
|
svg="${Pe[this.type] || Pe.txt}"
|
|
@@ -1438,17 +1453,17 @@ let J = class extends C {
|
|
|
1438
1453
|
`;
|
|
1439
1454
|
}
|
|
1440
1455
|
};
|
|
1441
|
-
J.styles =
|
|
1456
|
+
J.styles = Gc;
|
|
1442
1457
|
Ae([
|
|
1443
|
-
|
|
1458
|
+
r({ type: String })
|
|
1444
1459
|
], J.prototype, "filename", 2);
|
|
1445
1460
|
Ae([
|
|
1446
|
-
|
|
1461
|
+
r({ type: String })
|
|
1447
1462
|
], J.prototype, "url", 2);
|
|
1448
1463
|
J = Ae([
|
|
1449
1464
|
k("cb-file")
|
|
1450
1465
|
], J);
|
|
1451
|
-
const
|
|
1466
|
+
const sa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6Z"/><path d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1ZM4.118 4L4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118ZM2.5 3h11V2h-11v1Z"/></g></svg>', na = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M8 8a3 3 0 1 0 0-6a3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0a2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1s1-4 6-4s6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332c-.678.678-.83 1.418-.832 1.664h10Z"/></svg>', ia = x`
|
|
1452
1467
|
pre code.hljs {
|
|
1453
1468
|
display: block;
|
|
1454
1469
|
overflow-x: auto;
|
|
@@ -2613,9 +2628,9 @@ const lo = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
|
|
|
2613
2628
|
pre {
|
|
2614
2629
|
background-color: #282c34;
|
|
2615
2630
|
}
|
|
2616
|
-
`,
|
|
2631
|
+
`, la = x`
|
|
2617
2632
|
${I}
|
|
2618
|
-
${
|
|
2633
|
+
${ia}
|
|
2619
2634
|
|
|
2620
2635
|
.cb-message-row {
|
|
2621
2636
|
width: 100%;
|
|
@@ -2769,20 +2784,20 @@ const lo = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="curr
|
|
|
2769
2784
|
font-size: 1em;
|
|
2770
2785
|
}
|
|
2771
2786
|
`;
|
|
2772
|
-
function
|
|
2773
|
-
const
|
|
2787
|
+
function pa() {
|
|
2788
|
+
const c = new hc({
|
|
2774
2789
|
linkify: !0
|
|
2775
2790
|
});
|
|
2776
|
-
return
|
|
2791
|
+
return c.use(uc, { attrs: { target: "_blank", rel: "noopener" } }), c;
|
|
2777
2792
|
}
|
|
2778
|
-
async function
|
|
2779
|
-
const e =
|
|
2780
|
-
return
|
|
2793
|
+
async function Ee(c) {
|
|
2794
|
+
const e = pa();
|
|
2795
|
+
return s`${B(e.render(c))}`;
|
|
2781
2796
|
}
|
|
2782
|
-
var
|
|
2783
|
-
for (var
|
|
2784
|
-
(
|
|
2785
|
-
return
|
|
2797
|
+
var ha = Object.defineProperty, ua = Object.getOwnPropertyDescriptor, he = (c, e, a, f) => {
|
|
2798
|
+
for (var t = f > 1 ? void 0 : f ? ua(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
2799
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
2800
|
+
return f && t && ha(e, a, t), t;
|
|
2786
2801
|
};
|
|
2787
2802
|
let F = class extends C {
|
|
2788
2803
|
constructor() {
|
|
@@ -2795,8 +2810,8 @@ let F = class extends C {
|
|
|
2795
2810
|
* updated lifecycle hook: same to vue mounted or react useEffect
|
|
2796
2811
|
* @param changedProperties
|
|
2797
2812
|
*/
|
|
2798
|
-
updated(
|
|
2799
|
-
super.updated(
|
|
2813
|
+
updated(c) {
|
|
2814
|
+
super.updated(c), c.has("message") && requestIdleCallback(() => {
|
|
2800
2815
|
this._addCopyEvents();
|
|
2801
2816
|
});
|
|
2802
2817
|
}
|
|
@@ -2809,28 +2824,28 @@ let F = class extends C {
|
|
|
2809
2824
|
});
|
|
2810
2825
|
}
|
|
2811
2826
|
_addCopyEvents() {
|
|
2812
|
-
this.copyBtns.forEach((
|
|
2813
|
-
|
|
2814
|
-
var
|
|
2815
|
-
const e = (
|
|
2816
|
-
e &&
|
|
2817
|
-
|
|
2818
|
-
|
|
2827
|
+
this.copyBtns.forEach((c) => {
|
|
2828
|
+
c.addEventListener("click", () => {
|
|
2829
|
+
var a, f;
|
|
2830
|
+
const e = (f = (a = c.parentElement) == null ? void 0 : a.nextElementSibling) == null ? void 0 : f.textContent;
|
|
2831
|
+
e && Ac(e).then(() => {
|
|
2832
|
+
c.textContent = "Success", setTimeout(() => {
|
|
2833
|
+
c.textContent = "Copy";
|
|
2819
2834
|
}, 500);
|
|
2820
2835
|
});
|
|
2821
2836
|
});
|
|
2822
2837
|
});
|
|
2823
2838
|
}
|
|
2824
2839
|
_removeCopyEvents() {
|
|
2825
|
-
this.copyBtns.forEach((
|
|
2826
|
-
|
|
2840
|
+
this.copyBtns.forEach((c) => {
|
|
2841
|
+
c.removeEventListener("click", () => {
|
|
2827
2842
|
});
|
|
2828
2843
|
});
|
|
2829
2844
|
}
|
|
2830
2845
|
render() {
|
|
2831
2846
|
return D(
|
|
2832
2847
|
this.message.data || this.message.isThinking,
|
|
2833
|
-
() =>
|
|
2848
|
+
() => s`
|
|
2834
2849
|
<div class="cb-message-row" part="cb-message-row">
|
|
2835
2850
|
<!-- message -->
|
|
2836
2851
|
${D(
|
|
@@ -2843,109 +2858,109 @@ let F = class extends C {
|
|
|
2843
2858
|
() => null
|
|
2844
2859
|
);
|
|
2845
2860
|
}
|
|
2846
|
-
renderButtons(
|
|
2847
|
-
return
|
|
2861
|
+
renderButtons(c = "left") {
|
|
2862
|
+
return s`<div class="cb-message__buttons ${c}">
|
|
2848
2863
|
<!-- delete button -->
|
|
2849
2864
|
<sl-button class="cb-message__delete-button" name="trash" @click=${this._removeMessageHandler} circle variant="text" size="small">
|
|
2850
|
-
<cb-icon svg="${
|
|
2865
|
+
<cb-icon svg="${sa}" style="font-size: 1em !important;"></cb-icon>
|
|
2851
2866
|
</sl-button>
|
|
2852
2867
|
</div>`;
|
|
2853
2868
|
}
|
|
2854
|
-
renderMessage(
|
|
2855
|
-
return
|
|
2869
|
+
renderMessage(c) {
|
|
2870
|
+
return s`
|
|
2856
2871
|
<div
|
|
2857
2872
|
class="cb-message__content
|
|
2858
|
-
${
|
|
2859
|
-
message-type-${
|
|
2860
|
-
${
|
|
2873
|
+
${c.author}-message
|
|
2874
|
+
message-type-${c.type}
|
|
2875
|
+
${c.isThinking ? "thinking" : ""}"
|
|
2861
2876
|
style="display: flex"
|
|
2862
2877
|
>
|
|
2863
|
-
${this.renderMessageContent(
|
|
2878
|
+
${this.renderMessageContent(c)}
|
|
2864
2879
|
</div>
|
|
2865
2880
|
`;
|
|
2866
2881
|
}
|
|
2867
|
-
async _getMessageText(
|
|
2868
|
-
return
|
|
2882
|
+
async _getMessageText(c) {
|
|
2883
|
+
return Ee(c.data.text);
|
|
2869
2884
|
}
|
|
2870
|
-
renderMessageContent(
|
|
2885
|
+
renderMessageContent(c) {
|
|
2871
2886
|
var e;
|
|
2872
|
-
return
|
|
2887
|
+
return c.isThinking ? s`<cb-thinking></cb-thinking>` : c.isUploading ? s`<cb-uploading .files="${c.data.files || []}"></cb-uploading>` : c.type === "text" ? s`<div class="cb-message-text">
|
|
2873
2888
|
${D(
|
|
2874
|
-
|
|
2875
|
-
() =>
|
|
2889
|
+
c.data.userName,
|
|
2890
|
+
() => s`<div style="font-size: 12px; color:#9ca3af">${c.data.userName}</div>`,
|
|
2876
2891
|
() => null
|
|
2877
2892
|
)}
|
|
2878
2893
|
${Ie(
|
|
2879
|
-
this._getMessageText(
|
|
2894
|
+
this._getMessageText(c).then((a) => s`${a}`)
|
|
2880
2895
|
)}
|
|
2881
|
-
</div>` :
|
|
2882
|
-
|
|
2883
|
-
(
|
|
2884
|
-
(
|
|
2885
|
-
)}` :
|
|
2896
|
+
</div>` : c.type === "file" ? s`${we(
|
|
2897
|
+
c.data.files || [],
|
|
2898
|
+
(a) => a.id,
|
|
2899
|
+
(a) => s`<cb-file filename="${a.name}" url="${a.url}"></cb-file>`
|
|
2900
|
+
)}` : s`<div class="cb-message-text">
|
|
2886
2901
|
${Ie(
|
|
2887
|
-
|
|
2902
|
+
Ee(((e = c.data.text) == null ? void 0 : e.toString()) || "").then((a) => s`${a}`)
|
|
2888
2903
|
)}
|
|
2889
2904
|
</div>`;
|
|
2890
2905
|
}
|
|
2891
|
-
renderBotMessageAvatar(
|
|
2892
|
-
if (
|
|
2893
|
-
const e =
|
|
2894
|
-
return
|
|
2906
|
+
renderBotMessageAvatar(c) {
|
|
2907
|
+
if (c.data.userName && c.data.userName !== "") {
|
|
2908
|
+
const e = c.data.userAvatar || "";
|
|
2909
|
+
return s` <img src="${e}" style="width: 24px;height: 24px;" /> `;
|
|
2895
2910
|
}
|
|
2896
|
-
return
|
|
2911
|
+
return c.author === "system" ? ae`${B(n.setting.systemIconSvg)}` : ae`${B(n.setting.botIconSvg)}`;
|
|
2897
2912
|
}
|
|
2898
|
-
renderBotMessage(
|
|
2899
|
-
return
|
|
2913
|
+
renderBotMessage(c) {
|
|
2914
|
+
return s`
|
|
2900
2915
|
<div class="cb-message cb-bot-message-wrapper" part="cb-message">
|
|
2901
|
-
<div class="avatar assistant-avatar xsmall" style="margin-top:4px;">${this.renderBotMessageAvatar(
|
|
2902
|
-
<div style="margin-left: 4px;width: 100%">${this.renderMessage(
|
|
2916
|
+
<div class="avatar assistant-avatar xsmall" style="margin-top:4px;">${this.renderBotMessageAvatar(c)}</div>
|
|
2917
|
+
<div style="margin-left: 4px;width: 100%">${this.renderMessage(c)}</div>
|
|
2903
2918
|
</div>
|
|
2904
2919
|
`;
|
|
2905
2920
|
}
|
|
2906
|
-
renderUserMessage(
|
|
2907
|
-
return
|
|
2921
|
+
renderUserMessage(c) {
|
|
2922
|
+
return s`
|
|
2908
2923
|
<div class="cb-message" part="cb-message" style="display: flex; justify-content: end;align-items: start;">
|
|
2909
2924
|
<!--<sl-avatar class="avatar user-avatar small" label="User">
|
|
2910
|
-
<cb-icon slot="icon" svg="${
|
|
2925
|
+
<cb-icon slot="icon" svg="${na}" color="white"></cb-icon>
|
|
2911
2926
|
</sl-avatar>-->
|
|
2912
|
-
<div class="avatar user-avatar">${
|
|
2913
|
-
${this.renderMessage(
|
|
2927
|
+
<div class="avatar user-avatar">${B(n.setting.userIconSvg)}</div>
|
|
2928
|
+
${this.renderMessage(c)}
|
|
2914
2929
|
</div>
|
|
2915
2930
|
`;
|
|
2916
2931
|
}
|
|
2917
2932
|
};
|
|
2918
|
-
F.styles =
|
|
2919
|
-
|
|
2920
|
-
|
|
2933
|
+
F.styles = la;
|
|
2934
|
+
he([
|
|
2935
|
+
r({ type: Object })
|
|
2921
2936
|
], F.prototype, "message", 2);
|
|
2922
|
-
|
|
2923
|
-
|
|
2937
|
+
he([
|
|
2938
|
+
r({ type: String })
|
|
2924
2939
|
], F.prototype, "type", 2);
|
|
2925
|
-
|
|
2926
|
-
|
|
2940
|
+
he([
|
|
2941
|
+
pc(".code-block-header__copy")
|
|
2927
2942
|
], F.prototype, "copyBtns", 2);
|
|
2928
|
-
F =
|
|
2943
|
+
F = he([
|
|
2929
2944
|
k("cb-message")
|
|
2930
2945
|
], F);
|
|
2931
|
-
var
|
|
2932
|
-
for (var
|
|
2933
|
-
(
|
|
2934
|
-
return
|
|
2946
|
+
var ga = Object.defineProperty, ma = Object.getOwnPropertyDescriptor, Z = (c, e, a, f) => {
|
|
2947
|
+
for (var t = f > 1 ? void 0 : f ? ma(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
2948
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
2949
|
+
return f && t && ga(e, a, t), t;
|
|
2935
2950
|
};
|
|
2936
|
-
const Q =
|
|
2951
|
+
const Q = pe.noConflict();
|
|
2937
2952
|
Q.setLevel("info");
|
|
2938
|
-
let
|
|
2953
|
+
let E = class extends C {
|
|
2939
2954
|
constructor() {
|
|
2940
2955
|
super(...arguments), this.messages = [], this.actions = [], this.calendlyInjected = !1, this.activeCalendlyAction = -1;
|
|
2941
2956
|
}
|
|
2942
2957
|
render() {
|
|
2943
|
-
return
|
|
2958
|
+
return s`
|
|
2944
2959
|
<div class="cb-message-list" part="cb-message-list">
|
|
2945
2960
|
${we(
|
|
2946
2961
|
this.messages,
|
|
2947
|
-
(
|
|
2948
|
-
(
|
|
2962
|
+
(c) => c.id + JSON.stringify(c.data),
|
|
2963
|
+
(c) => s`<cb-message .message="${c}"></cb-message>`
|
|
2949
2964
|
)}
|
|
2950
2965
|
${this.renderActions()}
|
|
2951
2966
|
<div id="cb-message-list-bottom-anchor"></div>
|
|
@@ -2953,12 +2968,12 @@ let z = class extends C {
|
|
|
2953
2968
|
`;
|
|
2954
2969
|
}
|
|
2955
2970
|
renderActions() {
|
|
2956
|
-
return !Array.isArray(this.actions) || this.actions.length <= 0 ? null :
|
|
2971
|
+
return !Array.isArray(this.actions) || this.actions.length <= 0 ? null : s`
|
|
2957
2972
|
<div class="cb-actions-list">
|
|
2958
2973
|
${we(
|
|
2959
2974
|
this.actions,
|
|
2960
|
-
(
|
|
2961
|
-
(
|
|
2975
|
+
(c) => c,
|
|
2976
|
+
(c) => this.renderAction(c)
|
|
2962
2977
|
)}
|
|
2963
2978
|
</div>
|
|
2964
2979
|
`;
|
|
@@ -2966,41 +2981,41 @@ let z = class extends C {
|
|
|
2966
2981
|
scrollToBottom() {
|
|
2967
2982
|
this._messageListBottomAnchor.scrollIntoView({ behavior: "smooth", block: "end", inline: "nearest" });
|
|
2968
2983
|
}
|
|
2969
|
-
renderAction(
|
|
2970
|
-
switch (
|
|
2984
|
+
renderAction(c) {
|
|
2985
|
+
switch (c.type) {
|
|
2971
2986
|
case "calendlyMeeting":
|
|
2972
|
-
return this.renderCalendlyAction(
|
|
2987
|
+
return this.renderCalendlyAction(c);
|
|
2973
2988
|
case "link":
|
|
2974
|
-
return this.renderLinkAction(
|
|
2989
|
+
return this.renderLinkAction(c);
|
|
2975
2990
|
}
|
|
2976
2991
|
return null;
|
|
2977
2992
|
}
|
|
2978
|
-
handleCalendlyEvent(
|
|
2979
|
-
switch (Q.info("Got Calendly Event:",
|
|
2993
|
+
handleCalendlyEvent(c) {
|
|
2994
|
+
switch (Q.info("Got Calendly Event:", c.data), c.data.event) {
|
|
2980
2995
|
case "calendly.event_scheduled": {
|
|
2981
2996
|
const e = this.activeCalendlyAction;
|
|
2982
|
-
e >= 0 && (
|
|
2997
|
+
e >= 0 && (n.removeAction(e), n.addSystemMessage("Your meeting has been scheduled!"), this.activeCalendlyAction = -1);
|
|
2983
2998
|
}
|
|
2984
2999
|
}
|
|
2985
3000
|
}
|
|
2986
|
-
invokeLinkAction(
|
|
2987
|
-
Q.info("invokeLinkAction:",
|
|
3001
|
+
invokeLinkAction(c = {}) {
|
|
3002
|
+
Q.info("invokeLinkAction:", c), window.open(c.url, "_blank");
|
|
2988
3003
|
}
|
|
2989
|
-
invokeCalendlyAction(
|
|
2990
|
-
return Q.info("invokeCalendlyAction:",
|
|
3004
|
+
invokeCalendlyAction(c = {}) {
|
|
3005
|
+
return Q.info("invokeCalendlyAction:", c), "Calendly" in window && (this.activeCalendlyAction = c.internalId, window.Calendly.initPopupWidget({ url: c.url })), !1;
|
|
2991
3006
|
}
|
|
2992
|
-
renderCalendlyAction(
|
|
3007
|
+
renderCalendlyAction(c) {
|
|
2993
3008
|
if (!("Calendly" in window) && !this.calendlyInjected) {
|
|
2994
3009
|
let e = document.createElement("link");
|
|
2995
3010
|
e.href = "https://assets.calendly.com/assets/external/widget.css", e.rel = "stylesheet", document.body.appendChild(e);
|
|
2996
|
-
let
|
|
2997
|
-
|
|
2998
|
-
|
|
3011
|
+
let a = document.createElement("script");
|
|
3012
|
+
a.type = "text/javascript", a.src = "https://assets.calendly.com/assets/external/widget.js", document.body.appendChild(a), console.log("Injected Calendly"), window.addEventListener("message", (f) => {
|
|
3013
|
+
f.origin === "https://calendly.com" && f.data.event && f.data.event.indexOf("calendly.") !== -1 && this.handleCalendlyEvent(f);
|
|
2999
3014
|
}), this.calendlyInjected = !0;
|
|
3000
3015
|
}
|
|
3001
|
-
return
|
|
3016
|
+
return s`
|
|
3002
3017
|
<div class="cb-actions-list">
|
|
3003
|
-
<div class="cb-action ripple" @click="${this.invokeCalendlyAction.bind(this,
|
|
3018
|
+
<div class="cb-action ripple" @click="${this.invokeCalendlyAction.bind(this, c)}">
|
|
3004
3019
|
<div class="cb-action-icon">
|
|
3005
3020
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
3006
3021
|
<path
|
|
@@ -3009,46 +3024,46 @@ let z = class extends C {
|
|
|
3009
3024
|
/>
|
|
3010
3025
|
</svg>
|
|
3011
3026
|
</div>
|
|
3012
|
-
${
|
|
3027
|
+
${c.title}
|
|
3013
3028
|
</div>
|
|
3014
3029
|
</div>
|
|
3015
3030
|
`;
|
|
3016
3031
|
}
|
|
3017
|
-
renderLinkAction(
|
|
3018
|
-
return
|
|
3032
|
+
renderLinkAction(c) {
|
|
3033
|
+
return s`
|
|
3019
3034
|
<div class="cb-actions-list">
|
|
3020
|
-
<div class="cb-action ripple" @click="${this.invokeLinkAction.bind(this,
|
|
3035
|
+
<div class="cb-action ripple" @click="${this.invokeLinkAction.bind(this, c)}">
|
|
3021
3036
|
<div class="cb-action-icon">
|
|
3022
3037
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
3023
3038
|
<path d="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z" fill="currentColor" />
|
|
3024
3039
|
</svg>
|
|
3025
3040
|
</div>
|
|
3026
|
-
${
|
|
3041
|
+
${c.title}
|
|
3027
3042
|
</div>
|
|
3028
3043
|
</div>
|
|
3029
3044
|
`;
|
|
3030
3045
|
}
|
|
3031
3046
|
};
|
|
3032
|
-
|
|
3047
|
+
E.styles = Zc;
|
|
3033
3048
|
Z([
|
|
3034
|
-
|
|
3035
|
-
],
|
|
3049
|
+
r({ type: Array })
|
|
3050
|
+
], E.prototype, "messages", 2);
|
|
3036
3051
|
Z([
|
|
3037
|
-
|
|
3038
|
-
],
|
|
3052
|
+
r({ type: Array })
|
|
3053
|
+
], E.prototype, "actions", 2);
|
|
3039
3054
|
Z([
|
|
3040
|
-
|
|
3041
|
-
],
|
|
3055
|
+
le("#cb-message-list-bottom-anchor")
|
|
3056
|
+
], E.prototype, "_messageListBottomAnchor", 2);
|
|
3042
3057
|
Z([
|
|
3043
3058
|
qe({ capture: !1, passive: !0 })
|
|
3044
|
-
],
|
|
3059
|
+
], E.prototype, "invokeLinkAction", 1);
|
|
3045
3060
|
Z([
|
|
3046
3061
|
qe({ capture: !1, passive: !0 })
|
|
3047
|
-
],
|
|
3048
|
-
|
|
3062
|
+
], E.prototype, "invokeCalendlyAction", 1);
|
|
3063
|
+
E = Z([
|
|
3049
3064
|
k("cb-message-list")
|
|
3050
|
-
],
|
|
3051
|
-
const
|
|
3065
|
+
], E);
|
|
3066
|
+
const ya = x`
|
|
3052
3067
|
${I}
|
|
3053
3068
|
|
|
3054
3069
|
:host {
|
|
@@ -3091,18 +3106,18 @@ const fo = x`
|
|
|
3091
3106
|
.cb-input-buttons {
|
|
3092
3107
|
padding: 0 5px;
|
|
3093
3108
|
}
|
|
3094
|
-
`,
|
|
3095
|
-
var
|
|
3096
|
-
for (var
|
|
3097
|
-
(
|
|
3098
|
-
return
|
|
3109
|
+
`, va = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576L6.636 10.07Zm6.787-8.201L1.591 6.602l4.339 2.76l7.494-7.493Z"/></svg>', wa = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M4.5 3a2.5 2.5 0 0 1 5 0v9a1.5 1.5 0 0 1-3 0V5a.5.5 0 0 1 1 0v7a.5.5 0 0 0 1 0V3a1.5 1.5 0 1 0-3 0v9a2.5 2.5 0 0 0 5 0V5a.5.5 0 0 1 1 0v7a3.5 3.5 0 1 1-7 0V3z"/></svg>';
|
|
3110
|
+
var xa = Object.defineProperty, ka = Object.getOwnPropertyDescriptor, P = (c, e, a, f) => {
|
|
3111
|
+
for (var t = f > 1 ? void 0 : f ? ka(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
3112
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
3113
|
+
return f && t && xa(e, a, t), t;
|
|
3099
3114
|
};
|
|
3100
|
-
let
|
|
3115
|
+
let L = class extends C {
|
|
3101
3116
|
constructor() {
|
|
3102
3117
|
super(...arguments), this.placeholder = "Type a message...", this.sendButtonLabel = "Send", this.enableFileUpload = !1, this.value = "", this.loading = !1, this.disabled = !1, this.currentKey = "";
|
|
3103
3118
|
}
|
|
3104
|
-
_inputChangeHandler(
|
|
3105
|
-
const e =
|
|
3119
|
+
_inputChangeHandler(c) {
|
|
3120
|
+
const e = c.target;
|
|
3106
3121
|
this.value = e.value;
|
|
3107
3122
|
}
|
|
3108
3123
|
_sendHandler() {
|
|
@@ -3120,15 +3135,15 @@ let O = class extends C {
|
|
|
3120
3135
|
});
|
|
3121
3136
|
}
|
|
3122
3137
|
async _sendFileHandler() {
|
|
3123
|
-
const
|
|
3138
|
+
const c = await Lc();
|
|
3124
3139
|
this.emit("message:send:file", {
|
|
3125
3140
|
detail: {
|
|
3126
|
-
files:
|
|
3141
|
+
files: c
|
|
3127
3142
|
}
|
|
3128
3143
|
});
|
|
3129
3144
|
}
|
|
3130
3145
|
render() {
|
|
3131
|
-
return
|
|
3146
|
+
return s`
|
|
3132
3147
|
<div class="cb-user-input-wrapper" part="user-input-wrapper">
|
|
3133
3148
|
<sl-textarea
|
|
3134
3149
|
@sl-input=${this._inputChangeHandler}
|
|
@@ -3147,14 +3162,14 @@ let O = class extends C {
|
|
|
3147
3162
|
<span class="cb-input-buttons">
|
|
3148
3163
|
${D(
|
|
3149
3164
|
this.enableFileUpload,
|
|
3150
|
-
() =>
|
|
3165
|
+
() => s`
|
|
3151
3166
|
<sl-button @click=${this._sendFileHandler} name="paperclip" label="Attachment" size="large" class="paperclip-button" variant="text" circle>
|
|
3152
|
-
<cb-icon svg="${
|
|
3167
|
+
<cb-icon svg="${wa}"></cb-icon>
|
|
3153
3168
|
<!-- select file input -->
|
|
3154
3169
|
<input type="file" id="file" name="file" class="file-input" />
|
|
3155
3170
|
</sl-button>
|
|
3156
3171
|
`,
|
|
3157
|
-
() =>
|
|
3172
|
+
() => s``
|
|
3158
3173
|
)}
|
|
3159
3174
|
<sl-button
|
|
3160
3175
|
@click=${this._sendHandler}
|
|
@@ -3167,45 +3182,45 @@ let O = class extends C {
|
|
|
3167
3182
|
?loading=${this.loading}
|
|
3168
3183
|
circle
|
|
3169
3184
|
>
|
|
3170
|
-
<cb-icon svg="${
|
|
3185
|
+
<cb-icon svg="${va}"></cb-icon>
|
|
3171
3186
|
</sl-button>
|
|
3172
3187
|
</span>
|
|
3173
3188
|
</div>
|
|
3174
3189
|
`;
|
|
3175
3190
|
}
|
|
3176
|
-
_keyDownHandler(
|
|
3177
|
-
|
|
3191
|
+
_keyDownHandler(c) {
|
|
3192
|
+
c.key === "Enter" && !c.shiftKey && this._sendHandler();
|
|
3178
3193
|
}
|
|
3179
3194
|
};
|
|
3180
|
-
|
|
3195
|
+
L.styles = ya;
|
|
3181
3196
|
P([
|
|
3182
|
-
|
|
3183
|
-
],
|
|
3197
|
+
r({ type: String, attribute: "placeholder" })
|
|
3198
|
+
], L.prototype, "placeholder", 2);
|
|
3184
3199
|
P([
|
|
3185
|
-
|
|
3186
|
-
],
|
|
3200
|
+
r({ type: String, attribute: "send-button-label" })
|
|
3201
|
+
], L.prototype, "sendButtonLabel", 2);
|
|
3187
3202
|
P([
|
|
3188
|
-
|
|
3189
|
-
],
|
|
3203
|
+
r({ type: Boolean, attribute: "enable-file-upload" })
|
|
3204
|
+
], L.prototype, "enableFileUpload", 2);
|
|
3190
3205
|
P([
|
|
3191
|
-
|
|
3192
|
-
],
|
|
3206
|
+
r({ type: String })
|
|
3207
|
+
], L.prototype, "value", 2);
|
|
3193
3208
|
P([
|
|
3194
|
-
|
|
3195
|
-
],
|
|
3209
|
+
r({ type: Boolean })
|
|
3210
|
+
], L.prototype, "loading", 2);
|
|
3196
3211
|
P([
|
|
3197
|
-
|
|
3198
|
-
],
|
|
3212
|
+
r({ type: Boolean })
|
|
3213
|
+
], L.prototype, "disabled", 2);
|
|
3199
3214
|
P([
|
|
3200
|
-
|
|
3201
|
-
],
|
|
3215
|
+
r({ type: String })
|
|
3216
|
+
], L.prototype, "currentKey", 2);
|
|
3202
3217
|
P([
|
|
3203
|
-
|
|
3204
|
-
],
|
|
3205
|
-
|
|
3218
|
+
le("sl-textarea")
|
|
3219
|
+
], L.prototype, "inputElement", 2);
|
|
3220
|
+
L = P([
|
|
3206
3221
|
k("cb-user-input")
|
|
3207
|
-
],
|
|
3208
|
-
const
|
|
3222
|
+
], L);
|
|
3223
|
+
const _a = x`
|
|
3209
3224
|
${I}
|
|
3210
3225
|
|
|
3211
3226
|
sl-dialog::part(base) {
|
|
@@ -3240,10 +3255,10 @@ const _o = x`
|
|
|
3240
3255
|
gap: 8px;
|
|
3241
3256
|
}
|
|
3242
3257
|
`;
|
|
3243
|
-
var
|
|
3244
|
-
for (var
|
|
3245
|
-
(
|
|
3246
|
-
return
|
|
3258
|
+
var Ca = Object.defineProperty, $a = Object.getOwnPropertyDescriptor, ue = (c, e, a, f) => {
|
|
3259
|
+
for (var t = f > 1 ? void 0 : f ? $a(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
3260
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
3261
|
+
return f && t && Ca(e, a, t), t;
|
|
3247
3262
|
};
|
|
3248
3263
|
let U = class extends C {
|
|
3249
3264
|
constructor() {
|
|
@@ -3253,7 +3268,7 @@ let U = class extends C {
|
|
|
3253
3268
|
this.emit("cancel");
|
|
3254
3269
|
}
|
|
3255
3270
|
render() {
|
|
3256
|
-
return
|
|
3271
|
+
return s` <sl-dialog
|
|
3257
3272
|
label="Setting"
|
|
3258
3273
|
class="cb-dialog"
|
|
3259
3274
|
style="sl-dialog::part(base) { z-index: ${this.zindex}; }"
|
|
@@ -3263,7 +3278,7 @@ let U = class extends C {
|
|
|
3263
3278
|
>
|
|
3264
3279
|
<header class="cb-header">
|
|
3265
3280
|
<div class="cb-header__left">
|
|
3266
|
-
${this.label ?
|
|
3281
|
+
${this.label ? s`<span class="title">${this.label}</span>` : ""}
|
|
3267
3282
|
</div>
|
|
3268
3283
|
<sl-button
|
|
3269
3284
|
@click=${this._settingCancelHandler}
|
|
@@ -3276,7 +3291,7 @@ let U = class extends C {
|
|
|
3276
3291
|
<cb-icon
|
|
3277
3292
|
color="default"
|
|
3278
3293
|
style="font-size: 1em;"
|
|
3279
|
-
svg="${
|
|
3294
|
+
svg="${te}"
|
|
3280
3295
|
></cb-icon>
|
|
3281
3296
|
</sl-button>
|
|
3282
3297
|
</header>
|
|
@@ -3289,30 +3304,30 @@ let U = class extends C {
|
|
|
3289
3304
|
</sl-dialog>`;
|
|
3290
3305
|
}
|
|
3291
3306
|
};
|
|
3292
|
-
U.styles =
|
|
3293
|
-
|
|
3294
|
-
|
|
3307
|
+
U.styles = _a;
|
|
3308
|
+
ue([
|
|
3309
|
+
r({ type: Boolean })
|
|
3295
3310
|
], U.prototype, "open", 2);
|
|
3296
|
-
|
|
3297
|
-
|
|
3311
|
+
ue([
|
|
3312
|
+
r({ type: String, attribute: "label" })
|
|
3298
3313
|
], U.prototype, "label", 2);
|
|
3299
|
-
|
|
3300
|
-
|
|
3314
|
+
ue([
|
|
3315
|
+
r({ type: Number })
|
|
3301
3316
|
], U.prototype, "zindex", 2);
|
|
3302
|
-
U =
|
|
3317
|
+
U = ue([
|
|
3303
3318
|
k("cb-dialog")
|
|
3304
3319
|
], U);
|
|
3305
|
-
var
|
|
3306
|
-
for (var
|
|
3307
|
-
(
|
|
3308
|
-
return
|
|
3320
|
+
var ja = Object.defineProperty, Ma = Object.getOwnPropertyDescriptor, Je = (c, e, a, f) => {
|
|
3321
|
+
for (var t = f > 1 ? void 0 : f ? Ma(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
3322
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
3323
|
+
return f && t && ja(e, a, t), t;
|
|
3309
3324
|
};
|
|
3310
|
-
let
|
|
3325
|
+
let de = class extends C {
|
|
3311
3326
|
constructor() {
|
|
3312
3327
|
super(...arguments), this.open = !1;
|
|
3313
3328
|
}
|
|
3314
3329
|
render() {
|
|
3315
|
-
return
|
|
3330
|
+
return s` <cb-dialog
|
|
3316
3331
|
label="Confirm"
|
|
3317
3332
|
class="cb-clear-message-dialog"
|
|
3318
3333
|
?open=${this.open}
|
|
@@ -3341,7 +3356,7 @@ let se = class extends C {
|
|
|
3341
3356
|
this.emit("cancel");
|
|
3342
3357
|
}
|
|
3343
3358
|
};
|
|
3344
|
-
|
|
3359
|
+
de.styles = x`
|
|
3345
3360
|
.cb-clear-message-dialog {
|
|
3346
3361
|
}
|
|
3347
3362
|
|
|
@@ -3350,12 +3365,12 @@ se.styles = x`
|
|
|
3350
3365
|
}
|
|
3351
3366
|
`;
|
|
3352
3367
|
Je([
|
|
3353
|
-
|
|
3354
|
-
],
|
|
3355
|
-
|
|
3368
|
+
r({ type: Boolean })
|
|
3369
|
+
], de.prototype, "open", 2);
|
|
3370
|
+
de = Je([
|
|
3356
3371
|
k("cb-clear-message-dialog")
|
|
3357
|
-
],
|
|
3358
|
-
const
|
|
3372
|
+
], de);
|
|
3373
|
+
const Sa = x`
|
|
3359
3374
|
:host {
|
|
3360
3375
|
// width: 380px;
|
|
3361
3376
|
|
|
@@ -3415,17 +3430,17 @@ const So = x`
|
|
|
3415
3430
|
grid-column-start: 2;
|
|
3416
3431
|
}
|
|
3417
3432
|
`;
|
|
3418
|
-
var
|
|
3419
|
-
for (var
|
|
3420
|
-
(
|
|
3421
|
-
return
|
|
3433
|
+
var Aa = Object.defineProperty, La = Object.getOwnPropertyDescriptor, N = (c, e, a, f) => {
|
|
3434
|
+
for (var t = f > 1 ? void 0 : f ? La(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
3435
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
3436
|
+
return f && t && Aa(e, a, t), t;
|
|
3422
3437
|
};
|
|
3423
|
-
let
|
|
3438
|
+
let z = class extends C {
|
|
3424
3439
|
constructor() {
|
|
3425
3440
|
super(...arguments), this.open = !1, this.clearMessageDialogOpen = !1, this.customRequest = !1;
|
|
3426
3441
|
}
|
|
3427
3442
|
render() {
|
|
3428
|
-
return this.customRequest = this.setting.customRequest,
|
|
3443
|
+
return this.customRequest = this.setting.customRequest, s`
|
|
3429
3444
|
<cb-dialog
|
|
3430
3445
|
label="Setting"
|
|
3431
3446
|
class="cb-dialog"
|
|
@@ -3518,7 +3533,7 @@ let E = class extends C {
|
|
|
3518
3533
|
`;
|
|
3519
3534
|
}
|
|
3520
3535
|
renderInternalServices() {
|
|
3521
|
-
return
|
|
3536
|
+
return s`
|
|
3522
3537
|
<div class="form-item">
|
|
3523
3538
|
<label class="label">Service</label>
|
|
3524
3539
|
<sl-radio-group name="openai" value="openai" size="small">
|
|
@@ -3555,14 +3570,14 @@ let E = class extends C {
|
|
|
3555
3570
|
this.emit("message:clear"), this.clearMessageDialogOpen = !1;
|
|
3556
3571
|
}
|
|
3557
3572
|
// input change handler
|
|
3558
|
-
_inputChangeHandler(
|
|
3559
|
-
const { name: e, value:
|
|
3560
|
-
|
|
3573
|
+
_inputChangeHandler(c) {
|
|
3574
|
+
const { name: e, value: a } = c.target, [f, t] = e.split(".");
|
|
3575
|
+
t ? this.setting[f][t] = a : this.setting[f] = a;
|
|
3561
3576
|
}
|
|
3562
3577
|
// checked change handler
|
|
3563
|
-
_checkChangeHandler(
|
|
3564
|
-
const { name: e, checked:
|
|
3565
|
-
|
|
3578
|
+
_checkChangeHandler(c) {
|
|
3579
|
+
const { name: e, checked: a } = c.target, [f, t] = e.split(".");
|
|
3580
|
+
t ? this.setting[f][t] = a : this.setting[f] = a, f === "customRequest" && (this.customRequest = a);
|
|
3566
3581
|
}
|
|
3567
3582
|
// emit setting confirm event
|
|
3568
3583
|
_settingConfirmHandler() {
|
|
@@ -3576,33 +3591,33 @@ let E = class extends C {
|
|
|
3576
3591
|
_settingCancelHandler() {
|
|
3577
3592
|
this.emit("setting:hide");
|
|
3578
3593
|
}
|
|
3579
|
-
updated(
|
|
3594
|
+
updated(c) {
|
|
3580
3595
|
var e;
|
|
3581
|
-
super.updated(
|
|
3582
|
-
|
|
3596
|
+
super.updated(c), (e = this.dialog) == null || e.addEventListener("sl-request-close", (a) => {
|
|
3597
|
+
a.detail.source === "overlay" && a.preventDefault();
|
|
3583
3598
|
});
|
|
3584
3599
|
}
|
|
3585
3600
|
};
|
|
3586
|
-
|
|
3601
|
+
z.styles = Sa;
|
|
3587
3602
|
N([
|
|
3588
|
-
|
|
3589
|
-
],
|
|
3603
|
+
r({ type: Boolean })
|
|
3604
|
+
], z.prototype, "open", 2);
|
|
3590
3605
|
N([
|
|
3591
|
-
|
|
3592
|
-
],
|
|
3606
|
+
r({ type: Object })
|
|
3607
|
+
], z.prototype, "setting", 2);
|
|
3593
3608
|
N([
|
|
3594
|
-
|
|
3595
|
-
],
|
|
3609
|
+
r({ type: Boolean })
|
|
3610
|
+
], z.prototype, "clearMessageDialogOpen", 2);
|
|
3596
3611
|
N([
|
|
3597
|
-
|
|
3598
|
-
],
|
|
3612
|
+
le("sl-dialog")
|
|
3613
|
+
], z.prototype, "dialog", 2);
|
|
3599
3614
|
N([
|
|
3600
|
-
|
|
3601
|
-
],
|
|
3602
|
-
|
|
3615
|
+
r({ type: Boolean })
|
|
3616
|
+
], z.prototype, "customRequest", 2);
|
|
3617
|
+
z = N([
|
|
3603
3618
|
k("cb-setting")
|
|
3604
|
-
],
|
|
3605
|
-
const
|
|
3619
|
+
], z);
|
|
3620
|
+
const Oa = x`
|
|
3606
3621
|
${I}
|
|
3607
3622
|
:host {
|
|
3608
3623
|
--primary-color: var(--sl-color-primary-600);
|
|
@@ -3650,7 +3665,7 @@ const Lo = x`
|
|
|
3650
3665
|
min-width: 250px;
|
|
3651
3666
|
min-height: 100px;
|
|
3652
3667
|
color: var(--enegelai-bot-popup-color, rgb(0, 0, 0));
|
|
3653
|
-
padding: 10px;
|
|
3668
|
+
padding: 10px 20px 10px 10px;
|
|
3654
3669
|
background: var(--enegelai-bot-popup-background, var(--sl-color-gray-50));
|
|
3655
3670
|
//border: 1px solid;
|
|
3656
3671
|
//border-color: var(--sl-color-gray-100);
|
|
@@ -3659,6 +3674,7 @@ const Lo = x`
|
|
|
3659
3674
|
-webkit-font-smoothing: subpixel-antialiased;
|
|
3660
3675
|
font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
|
|
3661
3676
|
//font-size: 0.9rem;
|
|
3677
|
+
line-height: 1.4;
|
|
3662
3678
|
font-style: normal;
|
|
3663
3679
|
letter-spacing: normal;
|
|
3664
3680
|
font-stretch: normal;
|
|
@@ -3674,6 +3690,10 @@ const Lo = x`
|
|
|
3674
3690
|
--arrow-color: var(--sl-color-gray-500);
|
|
3675
3691
|
}
|
|
3676
3692
|
|
|
3693
|
+
.cb-engage-popup-logo {
|
|
3694
|
+
color: var(--enegelai-bot-popup-logo-color, rgb(0, 208, 117));
|
|
3695
|
+
}
|
|
3696
|
+
|
|
3677
3697
|
.cb-engage-popup-close {
|
|
3678
3698
|
position: absolute;
|
|
3679
3699
|
top: 0;
|
|
@@ -3689,44 +3709,45 @@ const Lo = x`
|
|
|
3689
3709
|
align-items: start;
|
|
3690
3710
|
gap: 10px;
|
|
3691
3711
|
}
|
|
3692
|
-
`,
|
|
3693
|
-
var
|
|
3694
|
-
for (var
|
|
3695
|
-
(
|
|
3696
|
-
return
|
|
3712
|
+
`, Ha = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><path fill="currentColor" d="M16 8c0 3.866-3.582 7-8 7a9.06 9.06 0 0 1-2.347-.306c-.584.296-1.925.864-4.181 1.234c-.2.032-.352-.176-.273-.362c.354-.836.674-1.95.77-2.966C.744 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7zM5 8a1 1 0 1 0-2 0a1 1 0 0 0 2 0zm4 0a1 1 0 1 0-2 0a1 1 0 0 0 2 0zm3 1a1 1 0 1 0 0-2a1 1 0 0 0 0 2z"/></svg>';
|
|
3713
|
+
var Ia = Object.defineProperty, Pa = Object.getOwnPropertyDescriptor, Ye = (c, e, a, f) => {
|
|
3714
|
+
for (var t = f > 1 ? void 0 : f ? Pa(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
3715
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
3716
|
+
return f && t && Ia(e, a, t), t;
|
|
3697
3717
|
};
|
|
3698
|
-
let
|
|
3718
|
+
let be = class extends C {
|
|
3699
3719
|
constructor() {
|
|
3700
|
-
super(...arguments), this.store = new Fe(this,
|
|
3720
|
+
super(...arguments), this.store = new Fe(this, n), this.open = !1;
|
|
3701
3721
|
}
|
|
3702
3722
|
// handler click
|
|
3703
3723
|
_clickHandler() {
|
|
3704
|
-
const
|
|
3724
|
+
const c = !this.open;
|
|
3705
3725
|
this.emit("chatbot:toggle", {
|
|
3706
3726
|
detail: {
|
|
3707
|
-
open:
|
|
3727
|
+
open: c
|
|
3708
3728
|
}
|
|
3709
|
-
}), this.open =
|
|
3729
|
+
}), this.open = c;
|
|
3710
3730
|
}
|
|
3711
|
-
_engageClickHandler(
|
|
3712
|
-
console.log("engage close clicked!"),
|
|
3731
|
+
_engageClickHandler(c) {
|
|
3732
|
+
console.log("engage close clicked!"), n.engage = !1, c.stopPropagation();
|
|
3713
3733
|
}
|
|
3714
3734
|
render() {
|
|
3715
|
-
return
|
|
3735
|
+
return s`
|
|
3716
3736
|
<div class="cb-anchor ${this.open ? "open" : ""}" part="cb-anchor" @click=${this._clickHandler.bind(this)}>
|
|
3717
|
-
<sl-popup placement="top-end" distance="16" ?active="${
|
|
3737
|
+
<sl-popup placement="top-end" distance="16" ?active="${n.engage && !n.open}">
|
|
3718
3738
|
<sl-button slot="anchor" label="Start" size="large" variant="primary" class="icon anchor-button" circle>
|
|
3719
3739
|
${D(
|
|
3720
3740
|
this.open,
|
|
3721
|
-
() =>
|
|
3722
|
-
() =>
|
|
3741
|
+
() => s`<cb-icon color="white" svg="${te}"></cb-icon>`,
|
|
3742
|
+
() => s`<cb-icon color="white" svg="${Ha}"></cb-icon>`
|
|
3723
3743
|
)}
|
|
3724
3744
|
</sl-button>
|
|
3725
3745
|
<div class="cb-engage-popup">
|
|
3726
|
-
<div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${
|
|
3746
|
+
<div class="cb-engage-popup-close" @click=${this._engageClickHandler.bind(this)}>${ae`${B(te)}`}</div>
|
|
3727
3747
|
<div class="cb-engage-popup-content">
|
|
3728
|
-
<
|
|
3729
|
-
|
|
3748
|
+
<div class="cb-engage-popup-logo">${ae`${B(n.setting.logoSvg)}`}</div>
|
|
3749
|
+
<!--<cb-icon class="cb-engage-popup-logo" svg="${n.setting.logoSvg}"></cb-icon>-->
|
|
3750
|
+
<div>${n.setting.engageMessage}</div>
|
|
3730
3751
|
</div>
|
|
3731
3752
|
</div>
|
|
3732
3753
|
</sl-popup>
|
|
@@ -3734,22 +3755,22 @@ let ne = class extends C {
|
|
|
3734
3755
|
`;
|
|
3735
3756
|
}
|
|
3736
3757
|
};
|
|
3737
|
-
|
|
3758
|
+
be.styles = Oa;
|
|
3738
3759
|
Ye([
|
|
3739
|
-
|
|
3740
|
-
],
|
|
3741
|
-
|
|
3760
|
+
r({ type: Boolean })
|
|
3761
|
+
], be.prototype, "open", 2);
|
|
3762
|
+
be = Ye([
|
|
3742
3763
|
k("cb-anchor")
|
|
3743
|
-
],
|
|
3744
|
-
const
|
|
3764
|
+
], be);
|
|
3765
|
+
const Ea = x`
|
|
3745
3766
|
${I}
|
|
3746
3767
|
`, Ce = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M4.54.146A.5.5 0 0 1 4.893 0h6.214a.5.5 0 0 1 .353.146l4.394 4.394a.5.5 0 0 1 .146.353v6.214a.5.5 0 0 1-.146.353l-4.394 4.394a.5.5 0 0 1-.353.146H4.893a.5.5 0 0 1-.353-.146L.146 11.46A.5.5 0 0 1 0 11.107V4.893a.5.5 0 0 1 .146-.353L4.54.146zM5.1 1L1 5.1v5.8L5.1 15h5.8l4.1-4.1V5.1L10.9 1H5.1z"/><path d="M7.002 11a1 1 0 1 1 2 0a1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z"/></g></svg>', Ge = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016a.146.146 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.163.163 0 0 1-.054.06a.116.116 0 0 1-.066.017H1.146a.115.115 0 0 1-.066-.017a.163.163 0 0 1-.054-.06a.176.176 0 0 1 .002-.183L7.884 2.073a.147.147 0 0 1 .054-.057zm1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566z"/><path d="M7.002 12a1 1 0 1 1 2 0a1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995z"/></g></svg>', Xe = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M2.5 8a5.5 5.5 0 0 1 8.25-4.764a.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0a5.5 5.5 0 1 1-11 0z"/><path d="M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293L5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l7-7z"/></g></svg>', Qe = '<svg viewBox="0 0 16 16" width="1.2em" height="1.2em" ><g fill="currentColor"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/><path d="m8.93 6.588l-2.29.287l-.082.38l.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319c.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246c-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0a1 1 0 0 1 2 0z"/></g></svg>';
|
|
3747
|
-
var
|
|
3748
|
-
for (var
|
|
3749
|
-
(
|
|
3750
|
-
return
|
|
3768
|
+
var za = Object.defineProperty, Ta = Object.getOwnPropertyDescriptor, ec = (c, e, a, f) => {
|
|
3769
|
+
for (var t = f > 1 ? void 0 : f ? Ta(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
3770
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
3771
|
+
return f && t && za(e, a, t), t;
|
|
3751
3772
|
};
|
|
3752
|
-
const
|
|
3773
|
+
const ze = {
|
|
3753
3774
|
error: {
|
|
3754
3775
|
variant: "danger",
|
|
3755
3776
|
icon: Ce
|
|
@@ -3771,30 +3792,30 @@ const Ee = {
|
|
|
3771
3792
|
icon: Qe
|
|
3772
3793
|
}
|
|
3773
3794
|
};
|
|
3774
|
-
let
|
|
3795
|
+
let re = class extends C {
|
|
3775
3796
|
constructor() {
|
|
3776
3797
|
super(...arguments), this.status = "info";
|
|
3777
3798
|
}
|
|
3778
3799
|
render() {
|
|
3779
|
-
const { variant:
|
|
3780
|
-
return
|
|
3800
|
+
const { variant: c, icon: e } = ze[this.status] || ze.info;
|
|
3801
|
+
return s`<cb-icon svg=${e} color="${c}"></cb-icon>`;
|
|
3781
3802
|
}
|
|
3782
3803
|
};
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
],
|
|
3787
|
-
|
|
3804
|
+
re.styles = Ne;
|
|
3805
|
+
ec([
|
|
3806
|
+
r({ type: String })
|
|
3807
|
+
], re.prototype, "status", 2);
|
|
3808
|
+
re = ec([
|
|
3788
3809
|
k("cb-status-icon")
|
|
3789
|
-
],
|
|
3790
|
-
var
|
|
3791
|
-
for (var
|
|
3792
|
-
(
|
|
3793
|
-
return
|
|
3810
|
+
], re);
|
|
3811
|
+
var Ba = Object.defineProperty, Ra = Object.getOwnPropertyDescriptor, Va = (c, e, a, f) => {
|
|
3812
|
+
for (var t = f > 1 ? void 0 : f ? Ra(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
3813
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
3814
|
+
return f && t && Ba(e, a, t), t;
|
|
3794
3815
|
};
|
|
3795
3816
|
let $e = class extends C {
|
|
3796
3817
|
render() {
|
|
3797
|
-
return
|
|
3818
|
+
return s` <sl-alert variant="danger" open>
|
|
3798
3819
|
<cb-status-icon status="error" slot="icon"></cb-status-icon>
|
|
3799
3820
|
Please config openai api key in the settings.
|
|
3800
3821
|
<span
|
|
@@ -3808,14 +3829,14 @@ let $e = class extends C {
|
|
|
3808
3829
|
this.emit("setting:show");
|
|
3809
3830
|
}
|
|
3810
3831
|
};
|
|
3811
|
-
$e.styles =
|
|
3812
|
-
$e =
|
|
3832
|
+
$e.styles = Ea;
|
|
3833
|
+
$e = Va([
|
|
3813
3834
|
k("cb-auth-alert")
|
|
3814
3835
|
], $e);
|
|
3815
3836
|
class Te extends Error {
|
|
3816
|
-
constructor(e,
|
|
3817
|
-
const
|
|
3818
|
-
super(`Request failed with ${
|
|
3837
|
+
constructor(e, a, f) {
|
|
3838
|
+
const t = e.status || e.status === 0 ? e.status : "", o = e.statusText || "", d = `${t} ${o}`.trim(), b = d ? `status code ${d}` : "an unknown error";
|
|
3839
|
+
super(`Request failed with ${b}`), Object.defineProperty(this, "response", {
|
|
3819
3840
|
enumerable: !0,
|
|
3820
3841
|
configurable: !0,
|
|
3821
3842
|
writable: !0,
|
|
@@ -3830,10 +3851,10 @@ class Te extends Error {
|
|
|
3830
3851
|
configurable: !0,
|
|
3831
3852
|
writable: !0,
|
|
3832
3853
|
value: void 0
|
|
3833
|
-
}), this.name = "HTTPError", this.response = e, this.request =
|
|
3854
|
+
}), this.name = "HTTPError", this.response = e, this.request = a, this.options = f;
|
|
3834
3855
|
}
|
|
3835
3856
|
}
|
|
3836
|
-
class
|
|
3857
|
+
class cc extends Error {
|
|
3837
3858
|
constructor(e) {
|
|
3838
3859
|
super("Request timed out"), Object.defineProperty(this, "request", {
|
|
3839
3860
|
enumerable: !0,
|
|
@@ -3843,144 +3864,144 @@ class tt extends Error {
|
|
|
3843
3864
|
}), this.name = "TimeoutError", this.request = e;
|
|
3844
3865
|
}
|
|
3845
3866
|
}
|
|
3846
|
-
const ee = (
|
|
3847
|
-
for (const e of
|
|
3867
|
+
const ee = (c) => c !== null && typeof c == "object", G = (...c) => {
|
|
3868
|
+
for (const e of c)
|
|
3848
3869
|
if ((!ee(e) || Array.isArray(e)) && typeof e < "u")
|
|
3849
3870
|
throw new TypeError("The `options` argument must be an object");
|
|
3850
|
-
return
|
|
3851
|
-
},
|
|
3852
|
-
const
|
|
3853
|
-
for (const [
|
|
3854
|
-
|
|
3855
|
-
return
|
|
3856
|
-
},
|
|
3857
|
-
let e = {},
|
|
3858
|
-
for (const
|
|
3859
|
-
if (Array.isArray(
|
|
3860
|
-
Array.isArray(e) || (e = []), e = [...e, ...
|
|
3861
|
-
else if (ee(
|
|
3862
|
-
for (let [
|
|
3863
|
-
ee(
|
|
3864
|
-
ee(
|
|
3871
|
+
return Le({}, ...c);
|
|
3872
|
+
}, ac = (c = {}, e = {}) => {
|
|
3873
|
+
const a = new globalThis.Headers(c), f = e instanceof globalThis.Headers, t = new globalThis.Headers(e);
|
|
3874
|
+
for (const [o, d] of t.entries())
|
|
3875
|
+
f && d === "undefined" || d === void 0 ? a.delete(o) : a.set(o, d);
|
|
3876
|
+
return a;
|
|
3877
|
+
}, Le = (...c) => {
|
|
3878
|
+
let e = {}, a = {};
|
|
3879
|
+
for (const f of c)
|
|
3880
|
+
if (Array.isArray(f))
|
|
3881
|
+
Array.isArray(e) || (e = []), e = [...e, ...f];
|
|
3882
|
+
else if (ee(f)) {
|
|
3883
|
+
for (let [t, o] of Object.entries(f))
|
|
3884
|
+
ee(o) && t in e && (o = Le(e[t], o)), e = { ...e, [t]: o };
|
|
3885
|
+
ee(f.headers) && (a = ac(a, f.headers), e.headers = a);
|
|
3865
3886
|
}
|
|
3866
3887
|
return e;
|
|
3867
|
-
},
|
|
3868
|
-
let
|
|
3869
|
-
const
|
|
3870
|
-
return
|
|
3888
|
+
}, qa = (() => {
|
|
3889
|
+
let c = !1, e = !1;
|
|
3890
|
+
const a = typeof globalThis.ReadableStream == "function", f = typeof globalThis.Request == "function";
|
|
3891
|
+
return a && f && (e = new globalThis.Request("https://a.com", {
|
|
3871
3892
|
body: new globalThis.ReadableStream(),
|
|
3872
3893
|
method: "POST",
|
|
3873
3894
|
// @ts-expect-error - Types are outdated.
|
|
3874
3895
|
get duplex() {
|
|
3875
|
-
return
|
|
3896
|
+
return c = !0, "half";
|
|
3876
3897
|
}
|
|
3877
|
-
}).headers.has("Content-Type")),
|
|
3878
|
-
})(),
|
|
3898
|
+
}).headers.has("Content-Type")), c && !e;
|
|
3899
|
+
})(), Da = typeof globalThis.AbortController == "function", Fa = typeof globalThis.ReadableStream == "function", Ua = typeof globalThis.FormData == "function", tc = ["get", "post", "put", "patch", "head", "delete"], Za = {
|
|
3879
3900
|
json: "application/json",
|
|
3880
3901
|
text: "text/*",
|
|
3881
3902
|
formData: "multipart/form-data",
|
|
3882
3903
|
arrayBuffer: "*/*",
|
|
3883
3904
|
blob: "*/*"
|
|
3884
|
-
},
|
|
3905
|
+
}, ve = 2147483647, fc = Symbol("stop"), Na = (c) => tc.includes(c) ? c.toUpperCase() : c, Wa = ["get", "put", "head", "delete", "options", "trace"], Ka = [408, 413, 429, 500, 502, 503, 504], oc = [413, 429, 503], Be = {
|
|
3885
3906
|
limit: 2,
|
|
3886
|
-
methods:
|
|
3887
|
-
statusCodes:
|
|
3888
|
-
afterStatusCodes:
|
|
3907
|
+
methods: Wa,
|
|
3908
|
+
statusCodes: Ka,
|
|
3909
|
+
afterStatusCodes: oc,
|
|
3889
3910
|
maxRetryAfter: Number.POSITIVE_INFINITY,
|
|
3890
3911
|
backoffLimit: Number.POSITIVE_INFINITY
|
|
3891
|
-
},
|
|
3892
|
-
if (typeof
|
|
3912
|
+
}, Ja = (c = {}) => {
|
|
3913
|
+
if (typeof c == "number")
|
|
3893
3914
|
return {
|
|
3894
3915
|
...Be,
|
|
3895
|
-
limit:
|
|
3916
|
+
limit: c
|
|
3896
3917
|
};
|
|
3897
|
-
if (
|
|
3918
|
+
if (c.methods && !Array.isArray(c.methods))
|
|
3898
3919
|
throw new Error("retry.methods must be an array");
|
|
3899
|
-
if (
|
|
3920
|
+
if (c.statusCodes && !Array.isArray(c.statusCodes))
|
|
3900
3921
|
throw new Error("retry.statusCodes must be an array");
|
|
3901
3922
|
return {
|
|
3902
3923
|
...Be,
|
|
3903
|
-
...
|
|
3904
|
-
afterStatusCodes:
|
|
3924
|
+
...c,
|
|
3925
|
+
afterStatusCodes: oc
|
|
3905
3926
|
};
|
|
3906
3927
|
};
|
|
3907
|
-
async function
|
|
3908
|
-
return new Promise((
|
|
3909
|
-
const
|
|
3910
|
-
e && e.abort(),
|
|
3911
|
-
},
|
|
3912
|
-
|
|
3913
|
-
clearTimeout(
|
|
3928
|
+
async function Ya(c, e, a) {
|
|
3929
|
+
return new Promise((f, t) => {
|
|
3930
|
+
const o = setTimeout(() => {
|
|
3931
|
+
e && e.abort(), t(new cc(c));
|
|
3932
|
+
}, a.timeout);
|
|
3933
|
+
a.fetch(c).then(f).catch(t).then(() => {
|
|
3934
|
+
clearTimeout(o);
|
|
3914
3935
|
});
|
|
3915
3936
|
});
|
|
3916
3937
|
}
|
|
3917
|
-
const
|
|
3918
|
-
function Re(
|
|
3919
|
-
if (
|
|
3920
|
-
return new DOMException((
|
|
3921
|
-
const e = new Error((
|
|
3938
|
+
const Ga = !!globalThis.DOMException;
|
|
3939
|
+
function Re(c) {
|
|
3940
|
+
if (Ga)
|
|
3941
|
+
return new DOMException((c == null ? void 0 : c.reason) ?? "The operation was aborted.", "AbortError");
|
|
3942
|
+
const e = new Error((c == null ? void 0 : c.reason) ?? "The operation was aborted.");
|
|
3922
3943
|
return e.name = "AbortError", e;
|
|
3923
3944
|
}
|
|
3924
|
-
async function
|
|
3925
|
-
return new Promise((
|
|
3945
|
+
async function Xa(c, { signal: e }) {
|
|
3946
|
+
return new Promise((a, f) => {
|
|
3926
3947
|
if (e) {
|
|
3927
3948
|
if (e.aborted) {
|
|
3928
|
-
|
|
3949
|
+
f(Re(e));
|
|
3929
3950
|
return;
|
|
3930
3951
|
}
|
|
3931
|
-
e.addEventListener("abort",
|
|
3952
|
+
e.addEventListener("abort", t, { once: !0 });
|
|
3932
3953
|
}
|
|
3933
|
-
function
|
|
3934
|
-
|
|
3954
|
+
function t() {
|
|
3955
|
+
f(Re(e)), clearTimeout(o);
|
|
3935
3956
|
}
|
|
3936
|
-
const
|
|
3937
|
-
e == null || e.removeEventListener("abort",
|
|
3938
|
-
},
|
|
3957
|
+
const o = setTimeout(() => {
|
|
3958
|
+
e == null || e.removeEventListener("abort", t), a();
|
|
3959
|
+
}, c);
|
|
3939
3960
|
});
|
|
3940
3961
|
}
|
|
3941
|
-
class
|
|
3962
|
+
class se {
|
|
3942
3963
|
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
3943
|
-
static create(e,
|
|
3944
|
-
const
|
|
3945
|
-
if (
|
|
3946
|
-
throw new RangeError(`The \`timeout\` option cannot be greater than ${
|
|
3964
|
+
static create(e, a) {
|
|
3965
|
+
const f = new se(e, a), t = async () => {
|
|
3966
|
+
if (f._options.timeout > ve)
|
|
3967
|
+
throw new RangeError(`The \`timeout\` option cannot be greater than ${ve}`);
|
|
3947
3968
|
await Promise.resolve();
|
|
3948
|
-
let
|
|
3949
|
-
for (const
|
|
3950
|
-
const
|
|
3951
|
-
|
|
3969
|
+
let b = await f._fetch();
|
|
3970
|
+
for (const h of f._options.hooks.afterResponse) {
|
|
3971
|
+
const g = await h(f.request, f._options, f._decorateResponse(b.clone()));
|
|
3972
|
+
g instanceof globalThis.Response && (b = g);
|
|
3952
3973
|
}
|
|
3953
|
-
if (
|
|
3954
|
-
let
|
|
3955
|
-
for (const
|
|
3956
|
-
|
|
3957
|
-
throw
|
|
3974
|
+
if (f._decorateResponse(b), !b.ok && f._options.throwHttpErrors) {
|
|
3975
|
+
let h = new Te(b, f.request, f._options);
|
|
3976
|
+
for (const g of f._options.hooks.beforeError)
|
|
3977
|
+
h = await g(h);
|
|
3978
|
+
throw h;
|
|
3958
3979
|
}
|
|
3959
|
-
if (
|
|
3960
|
-
if (typeof
|
|
3980
|
+
if (f._options.onDownloadProgress) {
|
|
3981
|
+
if (typeof f._options.onDownloadProgress != "function")
|
|
3961
3982
|
throw new TypeError("The `onDownloadProgress` option must be a function");
|
|
3962
|
-
if (!
|
|
3983
|
+
if (!Fa)
|
|
3963
3984
|
throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
|
|
3964
|
-
return
|
|
3985
|
+
return f._stream(b.clone(), f._options.onDownloadProgress);
|
|
3965
3986
|
}
|
|
3966
|
-
return
|
|
3967
|
-
},
|
|
3968
|
-
for (const [
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
const
|
|
3972
|
-
if (
|
|
3973
|
-
if (
|
|
3987
|
+
return b;
|
|
3988
|
+
}, d = f._options.retry.methods.includes(f.request.method.toLowerCase()) ? f._retry(t) : t();
|
|
3989
|
+
for (const [b, h] of Object.entries(Za))
|
|
3990
|
+
d[b] = async () => {
|
|
3991
|
+
f.request.headers.set("accept", f.request.headers.get("accept") || h);
|
|
3992
|
+
const m = (await d).clone();
|
|
3993
|
+
if (b === "json") {
|
|
3994
|
+
if (m.status === 204 || (await m.clone().arrayBuffer()).byteLength === 0)
|
|
3974
3995
|
return "";
|
|
3975
|
-
if (
|
|
3976
|
-
return
|
|
3996
|
+
if (a.parseJson)
|
|
3997
|
+
return a.parseJson(await m.text());
|
|
3977
3998
|
}
|
|
3978
|
-
return
|
|
3999
|
+
return m[b]();
|
|
3979
4000
|
};
|
|
3980
|
-
return
|
|
4001
|
+
return d;
|
|
3981
4002
|
}
|
|
3982
4003
|
// eslint-disable-next-line complexity
|
|
3983
|
-
constructor(e,
|
|
4004
|
+
constructor(e, a = {}) {
|
|
3984
4005
|
if (Object.defineProperty(this, "request", {
|
|
3985
4006
|
enumerable: !0,
|
|
3986
4007
|
configurable: !0,
|
|
@@ -4009,21 +4030,21 @@ class le {
|
|
|
4009
4030
|
}), this._input = e, this._options = {
|
|
4010
4031
|
// TODO: credentials can be removed when the spec change is implemented in all browsers. Context: https://www.chromestatus.com/feature/4539473312350208
|
|
4011
4032
|
credentials: this._input.credentials || "same-origin",
|
|
4012
|
-
...
|
|
4013
|
-
headers:
|
|
4014
|
-
hooks:
|
|
4033
|
+
...a,
|
|
4034
|
+
headers: ac(this._input.headers, a.headers),
|
|
4035
|
+
hooks: Le({
|
|
4015
4036
|
beforeRequest: [],
|
|
4016
4037
|
beforeRetry: [],
|
|
4017
4038
|
beforeError: [],
|
|
4018
4039
|
afterResponse: []
|
|
4019
|
-
},
|
|
4020
|
-
method:
|
|
4040
|
+
}, a.hooks),
|
|
4041
|
+
method: Na(a.method ?? this._input.method),
|
|
4021
4042
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
4022
|
-
prefixUrl: String(
|
|
4023
|
-
retry:
|
|
4024
|
-
throwHttpErrors:
|
|
4025
|
-
timeout: typeof
|
|
4026
|
-
fetch:
|
|
4043
|
+
prefixUrl: String(a.prefixUrl || ""),
|
|
4044
|
+
retry: Ja(a.retry),
|
|
4045
|
+
throwHttpErrors: a.throwHttpErrors !== !1,
|
|
4046
|
+
timeout: typeof a.timeout > "u" ? 1e4 : a.timeout,
|
|
4047
|
+
fetch: a.fetch ?? globalThis.fetch.bind(globalThis)
|
|
4027
4048
|
}, typeof this._input != "string" && !(this._input instanceof URL || this._input instanceof globalThis.Request))
|
|
4028
4049
|
throw new TypeError("`input` must be a string, URL, or Request");
|
|
4029
4050
|
if (this._options.prefixUrl && typeof this._input == "string") {
|
|
@@ -4031,36 +4052,36 @@ class le {
|
|
|
4031
4052
|
throw new Error("`input` must not begin with a slash when using `prefixUrl`");
|
|
4032
4053
|
this._options.prefixUrl.endsWith("/") || (this._options.prefixUrl += "/"), this._input = this._options.prefixUrl + this._input;
|
|
4033
4054
|
}
|
|
4034
|
-
if (
|
|
4055
|
+
if (Da) {
|
|
4035
4056
|
if (this.abortController = new globalThis.AbortController(), this._options.signal) {
|
|
4036
|
-
const
|
|
4057
|
+
const f = this._options.signal;
|
|
4037
4058
|
this._options.signal.addEventListener("abort", () => {
|
|
4038
|
-
this.abortController.abort(
|
|
4059
|
+
this.abortController.abort(f.reason);
|
|
4039
4060
|
});
|
|
4040
4061
|
}
|
|
4041
4062
|
this._options.signal = this.abortController.signal;
|
|
4042
4063
|
}
|
|
4043
|
-
if (
|
|
4044
|
-
const
|
|
4045
|
-
(
|
|
4064
|
+
if (qa && (this._options.duplex = "half"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {
|
|
4065
|
+
const t = "?" + (typeof this._options.searchParams == "string" ? this._options.searchParams.replace(/^\?/, "") : new URLSearchParams(this._options.searchParams).toString()), o = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, t);
|
|
4066
|
+
(Ua && this._options.body instanceof globalThis.FormData || this._options.body instanceof URLSearchParams) && !(this._options.headers && this._options.headers["content-type"]) && this.request.headers.delete("content-type"), this.request = new globalThis.Request(new globalThis.Request(o, { ...this.request }), this._options);
|
|
4046
4067
|
}
|
|
4047
4068
|
this._options.json !== void 0 && (this._options.body = JSON.stringify(this._options.json), this.request.headers.set("content-type", this._options.headers.get("content-type") ?? "application/json"), this.request = new globalThis.Request(this.request, { body: this._options.body }));
|
|
4048
4069
|
}
|
|
4049
4070
|
_calculateRetryDelay(e) {
|
|
4050
|
-
if (this._retryCount++, this._retryCount < this._options.retry.limit && !(e instanceof
|
|
4071
|
+
if (this._retryCount++, this._retryCount < this._options.retry.limit && !(e instanceof cc)) {
|
|
4051
4072
|
if (e instanceof Te) {
|
|
4052
4073
|
if (!this._options.retry.statusCodes.includes(e.response.status))
|
|
4053
4074
|
return 0;
|
|
4054
|
-
const
|
|
4055
|
-
if (
|
|
4056
|
-
let
|
|
4057
|
-
return Number.isNaN(
|
|
4075
|
+
const f = e.response.headers.get("Retry-After");
|
|
4076
|
+
if (f && this._options.retry.afterStatusCodes.includes(e.response.status)) {
|
|
4077
|
+
let t = Number(f);
|
|
4078
|
+
return Number.isNaN(t) ? t = Date.parse(f) - Date.now() : t *= 1e3, typeof this._options.retry.maxRetryAfter < "u" && t > this._options.retry.maxRetryAfter ? 0 : t;
|
|
4058
4079
|
}
|
|
4059
4080
|
if (e.response.status === 413)
|
|
4060
4081
|
return 0;
|
|
4061
4082
|
}
|
|
4062
|
-
const
|
|
4063
|
-
return Math.min(this._options.retry.backoffLimit,
|
|
4083
|
+
const a = 0.3;
|
|
4084
|
+
return Math.min(this._options.retry.backoffLimit, a * 2 ** (this._retryCount - 1) * 1e3);
|
|
4064
4085
|
}
|
|
4065
4086
|
return 0;
|
|
4066
4087
|
}
|
|
@@ -4070,61 +4091,61 @@ class le {
|
|
|
4070
4091
|
async _retry(e) {
|
|
4071
4092
|
try {
|
|
4072
4093
|
return await e();
|
|
4073
|
-
} catch (
|
|
4074
|
-
const
|
|
4075
|
-
if (
|
|
4076
|
-
await
|
|
4077
|
-
for (const
|
|
4078
|
-
if (await
|
|
4094
|
+
} catch (a) {
|
|
4095
|
+
const f = Math.min(this._calculateRetryDelay(a), ve);
|
|
4096
|
+
if (f !== 0 && this._retryCount > 0) {
|
|
4097
|
+
await Xa(f, { signal: this._options.signal });
|
|
4098
|
+
for (const t of this._options.hooks.beforeRetry)
|
|
4099
|
+
if (await t({
|
|
4079
4100
|
request: this.request,
|
|
4080
4101
|
options: this._options,
|
|
4081
|
-
error:
|
|
4102
|
+
error: a,
|
|
4082
4103
|
retryCount: this._retryCount
|
|
4083
|
-
}) ===
|
|
4104
|
+
}) === fc)
|
|
4084
4105
|
return;
|
|
4085
4106
|
return this._retry(e);
|
|
4086
4107
|
}
|
|
4087
|
-
throw
|
|
4108
|
+
throw a;
|
|
4088
4109
|
}
|
|
4089
4110
|
}
|
|
4090
4111
|
async _fetch() {
|
|
4091
4112
|
for (const e of this._options.hooks.beforeRequest) {
|
|
4092
|
-
const
|
|
4093
|
-
if (
|
|
4094
|
-
this.request =
|
|
4113
|
+
const a = await e(this.request, this._options);
|
|
4114
|
+
if (a instanceof Request) {
|
|
4115
|
+
this.request = a;
|
|
4095
4116
|
break;
|
|
4096
4117
|
}
|
|
4097
|
-
if (
|
|
4098
|
-
return
|
|
4118
|
+
if (a instanceof Response)
|
|
4119
|
+
return a;
|
|
4099
4120
|
}
|
|
4100
|
-
return this._options.timeout === !1 ? this._options.fetch(this.request.clone()) :
|
|
4121
|
+
return this._options.timeout === !1 ? this._options.fetch(this.request.clone()) : Ya(this.request.clone(), this.abortController, this._options);
|
|
4101
4122
|
}
|
|
4102
4123
|
/* istanbul ignore next */
|
|
4103
|
-
_stream(e,
|
|
4104
|
-
const
|
|
4105
|
-
let
|
|
4106
|
-
return e.status === 204 ? (
|
|
4124
|
+
_stream(e, a) {
|
|
4125
|
+
const f = Number(e.headers.get("content-length")) || 0;
|
|
4126
|
+
let t = 0;
|
|
4127
|
+
return e.status === 204 ? (a && a({ percent: 1, totalBytes: f, transferredBytes: t }, new Uint8Array()), new globalThis.Response(null, {
|
|
4107
4128
|
status: e.status,
|
|
4108
4129
|
statusText: e.statusText,
|
|
4109
4130
|
headers: e.headers
|
|
4110
4131
|
})) : new globalThis.Response(new globalThis.ReadableStream({
|
|
4111
|
-
async start(
|
|
4112
|
-
const
|
|
4113
|
-
|
|
4114
|
-
async function
|
|
4115
|
-
const { done:
|
|
4116
|
-
if (
|
|
4117
|
-
|
|
4132
|
+
async start(o) {
|
|
4133
|
+
const d = e.body.getReader();
|
|
4134
|
+
a && a({ percent: 0, transferredBytes: 0, totalBytes: f }, new Uint8Array());
|
|
4135
|
+
async function b() {
|
|
4136
|
+
const { done: h, value: g } = await d.read();
|
|
4137
|
+
if (h) {
|
|
4138
|
+
o.close();
|
|
4118
4139
|
return;
|
|
4119
4140
|
}
|
|
4120
|
-
if (
|
|
4121
|
-
|
|
4122
|
-
const
|
|
4123
|
-
|
|
4141
|
+
if (a) {
|
|
4142
|
+
t += g.byteLength;
|
|
4143
|
+
const m = f === 0 ? 0 : t / f;
|
|
4144
|
+
a({ percent: m, transferredBytes: t, totalBytes: f }, g);
|
|
4124
4145
|
}
|
|
4125
|
-
|
|
4146
|
+
o.enqueue(g), await b();
|
|
4126
4147
|
}
|
|
4127
|
-
await
|
|
4148
|
+
await b();
|
|
4128
4149
|
}
|
|
4129
4150
|
}), {
|
|
4130
4151
|
status: e.status,
|
|
@@ -4134,12 +4155,12 @@ class le {
|
|
|
4134
4155
|
}
|
|
4135
4156
|
}
|
|
4136
4157
|
/*! MIT License © Sindre Sorhus */
|
|
4137
|
-
const je = (
|
|
4138
|
-
const e = (
|
|
4139
|
-
for (const
|
|
4140
|
-
e[
|
|
4141
|
-
return e.create = (
|
|
4142
|
-
},
|
|
4158
|
+
const je = (c) => {
|
|
4159
|
+
const e = (a, f) => se.create(a, G(c, f));
|
|
4160
|
+
for (const a of tc)
|
|
4161
|
+
e[a] = (f, t) => se.create(f, G(c, t, { method: a }));
|
|
4162
|
+
return e.create = (a) => je(G(a)), e.extend = (a) => je(G(c, a)), e.stop = fc, e;
|
|
4163
|
+
}, Qa = je(), e1 = Qa, dc = e1.extend({
|
|
4143
4164
|
hooks: {
|
|
4144
4165
|
beforeRequest: [
|
|
4145
4166
|
() => {
|
|
@@ -4147,41 +4168,41 @@ const je = (t) => {
|
|
|
4147
4168
|
]
|
|
4148
4169
|
}
|
|
4149
4170
|
});
|
|
4150
|
-
async function
|
|
4151
|
-
const { onmessage:
|
|
4152
|
-
const { value:
|
|
4153
|
-
|
|
4171
|
+
async function c1(c, e) {
|
|
4172
|
+
const { onmessage: a, onclose: f, ...t } = e, o = async (d, b) => {
|
|
4173
|
+
const { value: h, done: g } = await b.read();
|
|
4174
|
+
g ? (d.close(), f == null || f()) : (a == null || a(h), d.enqueue(h), o(d, b));
|
|
4154
4175
|
};
|
|
4155
|
-
return
|
|
4156
|
-
const
|
|
4176
|
+
return t.body && typeof t.body == "object" && (t.body = JSON.stringify(t.body)), console.log("Fetching:", t), fetch(c, t).then((d) => {
|
|
4177
|
+
const b = d.body.getReader();
|
|
4157
4178
|
return new ReadableStream({
|
|
4158
|
-
start(
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4179
|
+
start(g) {
|
|
4180
|
+
o(
|
|
4181
|
+
g,
|
|
4182
|
+
b
|
|
4162
4183
|
);
|
|
4163
4184
|
}
|
|
4164
4185
|
});
|
|
4165
4186
|
}).then(
|
|
4166
|
-
(
|
|
4187
|
+
(d) => new Response(d, {
|
|
4167
4188
|
headers: { "Content-Type": "text/html" }
|
|
4168
4189
|
}).text()
|
|
4169
4190
|
);
|
|
4170
4191
|
}
|
|
4171
|
-
async function
|
|
4172
|
-
const
|
|
4173
|
-
for (let
|
|
4174
|
-
|
|
4175
|
-
const
|
|
4176
|
-
body:
|
|
4192
|
+
async function a1(c, e) {
|
|
4193
|
+
const a = new FormData();
|
|
4194
|
+
for (let t = 0; t < e.length; t++)
|
|
4195
|
+
a.append("files", e[t]);
|
|
4196
|
+
const f = await dc.post(c, {
|
|
4197
|
+
body: a
|
|
4177
4198
|
});
|
|
4178
4199
|
try {
|
|
4179
|
-
return await
|
|
4180
|
-
} catch (
|
|
4200
|
+
return await f.json();
|
|
4201
|
+
} catch (t) {
|
|
4181
4202
|
return {
|
|
4182
4203
|
code: 1,
|
|
4183
4204
|
url: "",
|
|
4184
|
-
message:
|
|
4205
|
+
message: t.message
|
|
4185
4206
|
};
|
|
4186
4207
|
}
|
|
4187
4208
|
}
|
|
@@ -4203,109 +4224,109 @@ const Ve = {
|
|
|
4203
4224
|
icon: Qe
|
|
4204
4225
|
}
|
|
4205
4226
|
};
|
|
4206
|
-
function
|
|
4227
|
+
function t1(c) {
|
|
4207
4228
|
const e = document.createElement("div");
|
|
4208
|
-
return e.textContent =
|
|
4229
|
+
return e.textContent = c, e.innerHTML;
|
|
4209
4230
|
}
|
|
4210
|
-
function
|
|
4211
|
-
const { variant:
|
|
4212
|
-
variant:
|
|
4231
|
+
function f1(c = "info", e, a = 1e8) {
|
|
4232
|
+
const { variant: f, icon: t } = Ve[c] || Ve.info, o = Object.assign(document.createElement("sl-alert"), {
|
|
4233
|
+
variant: f,
|
|
4213
4234
|
closable: !0,
|
|
4214
|
-
duration:
|
|
4235
|
+
duration: a,
|
|
4215
4236
|
innerHTML: `
|
|
4216
|
-
<cb-status-icon slot="icon" status="${
|
|
4217
|
-
${
|
|
4237
|
+
<cb-status-icon slot="icon" status="${c}"></cb-status-icon>
|
|
4238
|
+
${t1(e)}
|
|
4218
4239
|
`
|
|
4219
4240
|
});
|
|
4220
|
-
return document.body.append(
|
|
4241
|
+
return document.body.append(o), o.toast();
|
|
4221
4242
|
}
|
|
4222
|
-
async function
|
|
4223
|
-
const
|
|
4224
|
-
let
|
|
4225
|
-
for (; !
|
|
4226
|
-
const { value:
|
|
4227
|
-
if (
|
|
4228
|
-
let
|
|
4229
|
-
const
|
|
4243
|
+
async function o1(c, e) {
|
|
4244
|
+
const a = c.getReader(), f = new TextDecoder("utf-8");
|
|
4245
|
+
let t = !1;
|
|
4246
|
+
for (; !t; ) {
|
|
4247
|
+
const { value: o, done: d } = await a.read();
|
|
4248
|
+
if (o) {
|
|
4249
|
+
let b = f.decode(o);
|
|
4250
|
+
const h = b.lastIndexOf("data:"), g = b.lastIndexOf(`
|
|
4230
4251
|
`);
|
|
4231
|
-
if (
|
|
4232
|
-
` ||
|
|
4252
|
+
if (h !== -1 && (b = b.slice(h + 6)), g !== -1 && (b = b.slice(0, g)), b = b.trim(), b === `
|
|
4253
|
+
` || b === "")
|
|
4233
4254
|
continue;
|
|
4234
|
-
if (
|
|
4235
|
-
|
|
4255
|
+
if (b === "[DONE]") {
|
|
4256
|
+
t = !0;
|
|
4236
4257
|
continue;
|
|
4237
4258
|
}
|
|
4238
4259
|
try {
|
|
4239
|
-
const
|
|
4240
|
-
e(null,
|
|
4241
|
-
} catch (
|
|
4242
|
-
console.log("error",
|
|
4260
|
+
const m = JSON.parse(b);
|
|
4261
|
+
e(null, m);
|
|
4262
|
+
} catch (m) {
|
|
4263
|
+
console.log("error", m), e(m, null);
|
|
4243
4264
|
}
|
|
4244
4265
|
}
|
|
4245
|
-
|
|
4266
|
+
t = d;
|
|
4246
4267
|
}
|
|
4247
4268
|
}
|
|
4248
|
-
async function
|
|
4249
|
-
var
|
|
4250
|
-
if (!
|
|
4269
|
+
async function d1(c) {
|
|
4270
|
+
var t;
|
|
4271
|
+
if (!c.apiKey)
|
|
4251
4272
|
throw new Error("apiKey is required");
|
|
4252
|
-
const e =
|
|
4273
|
+
const e = c.options ?? {};
|
|
4253
4274
|
e.model || (e.model = "gpt-3.5-turbo");
|
|
4254
|
-
const
|
|
4275
|
+
const a = await dc.post(c.url, {
|
|
4255
4276
|
json: {
|
|
4256
|
-
messages:
|
|
4257
|
-
...
|
|
4277
|
+
messages: c.messages,
|
|
4278
|
+
...c.options ?? {}
|
|
4258
4279
|
},
|
|
4259
4280
|
headers: {
|
|
4260
4281
|
"Content-Type": "application/json",
|
|
4261
|
-
Authorization: `Bearer ${
|
|
4282
|
+
Authorization: `Bearer ${c.apiKey}`
|
|
4262
4283
|
},
|
|
4263
4284
|
timeout: 1e3 * 60 * 10,
|
|
4264
|
-
signal:
|
|
4265
|
-
}),
|
|
4266
|
-
if (!
|
|
4285
|
+
signal: c.signal
|
|
4286
|
+
}), f = a.body;
|
|
4287
|
+
if (!f)
|
|
4267
4288
|
throw new Error("No data");
|
|
4268
|
-
if ((
|
|
4269
|
-
await
|
|
4289
|
+
if ((t = c.options) != null && t.stream) {
|
|
4290
|
+
await o1(f, c.onMessage);
|
|
4270
4291
|
return;
|
|
4271
4292
|
}
|
|
4272
|
-
return
|
|
4293
|
+
return a.json();
|
|
4273
4294
|
}
|
|
4274
|
-
var
|
|
4275
|
-
for (var
|
|
4276
|
-
(
|
|
4277
|
-
return
|
|
4295
|
+
var b1 = Object.defineProperty, r1 = Object.getOwnPropertyDescriptor, v = (c, e, a, f) => {
|
|
4296
|
+
for (var t = f > 1 ? void 0 : f ? r1(e, a) : e, o = c.length - 1, d; o >= 0; o--)
|
|
4297
|
+
(d = c[o]) && (t = (f ? d(e, a, t) : d(t)) || t);
|
|
4298
|
+
return f && t && b1(e, a, t), t;
|
|
4278
4299
|
};
|
|
4279
|
-
const
|
|
4280
|
-
|
|
4281
|
-
let
|
|
4300
|
+
const ce = pe.noConflict();
|
|
4301
|
+
ce.setLevel("info");
|
|
4302
|
+
let u = class extends C {
|
|
4282
4303
|
constructor() {
|
|
4283
|
-
super(...arguments), this.store = new Fe(this,
|
|
4304
|
+
super(...arguments), this.store = new Fe(this, n), this.displayLicense = !1, this.name = "ChatBot", this.orgId = "", this.botId = "", this.url = "ws://localhost:3070", this.logoSvg = ` <svg width="24" height="24" viewBox="0 0 40 40">
|
|
4284
4305
|
<path
|
|
4285
4306
|
d="M34.728 0.275L2.245 15.267c-3.748 1.749 -2.498 7.246 1.499 7.246h13.743v13.743c0 3.998 5.497 5.248 7.246 1.499l14.992 -32.483c1.249 -2.999 -1.999 -6.248 -4.998 -4.998z"
|
|
4286
4307
|
fill="#E24D42"
|
|
4287
4308
|
></path>
|
|
4288
4309
|
</svg>
|
|
4289
|
-
`, this.botIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M16 17V19H2V17S2 13 9 13 16 17 16 17M12.5 7.5A3.5 3.5 0 1 0 9 11A3.5 3.5 0 0 0 12.5 7.5M15.94 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13M15 4A3.39 3.39 0 0 0 13.07 4.59A5 5 0 0 1 13.07 10.41A3.39 3.39 0 0 0 15 11A3.5 3.5 0 0 0 15 4Z" /></svg>', this.userIconSvg = '<svg fill="currentColor" viewBox="0 0 24 24" width="24" height="24"> <path d="M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4Z" /></svg>', this.systemIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg>', this.stream = !1, this.customRequest = !1, this.enableFileUpload = !1, this.uploadFileUrl = "", this.open = !1, this.loading = !1, this.showSetting = !1, this.showAuthAlert = !1, this.fetchStream =
|
|
4310
|
+
`, this.botIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M16 17V19H2V17S2 13 9 13 16 17 16 17M12.5 7.5A3.5 3.5 0 1 0 9 11A3.5 3.5 0 0 0 12.5 7.5M15.94 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13M15 4A3.39 3.39 0 0 0 13.07 4.59A5 5 0 0 1 13.07 10.41A3.39 3.39 0 0 0 15 11A3.5 3.5 0 0 0 15 4Z" /></svg>', this.userIconSvg = '<svg fill="currentColor" viewBox="0 0 24 24" width="24" height="24"> <path d="M12 4a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4Z" /></svg>', this.systemIconSvg = '<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24"> <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"/></svg>', this.stream = !1, this.customRequest = !1, this.enableFileUpload = !1, this.uploadFileUrl = "", this.open = !1, this.loading = !1, this.showSetting = !1, this.showAuthAlert = !1, this.fetchStream = c1;
|
|
4290
4311
|
}
|
|
4291
4312
|
//HTMLElement;
|
|
4292
4313
|
/**
|
|
4293
4314
|
* decodeStreamData
|
|
4294
4315
|
*/
|
|
4295
|
-
decodeStreamData(
|
|
4296
|
-
return new TextDecoder().decode(
|
|
4316
|
+
decodeStreamData(c) {
|
|
4317
|
+
return new TextDecoder().decode(c);
|
|
4297
4318
|
}
|
|
4298
4319
|
addMessage() {
|
|
4299
|
-
const
|
|
4320
|
+
const c = {
|
|
4300
4321
|
author: "assistant",
|
|
4301
4322
|
type: "text",
|
|
4302
4323
|
isThinking: !0,
|
|
4303
4324
|
data: {}
|
|
4304
4325
|
};
|
|
4305
|
-
return
|
|
4326
|
+
return n.addMessage(c), c;
|
|
4306
4327
|
}
|
|
4307
4328
|
addTestMessage() {
|
|
4308
|
-
const
|
|
4329
|
+
const c = {
|
|
4309
4330
|
author: "assistant",
|
|
4310
4331
|
type: "text",
|
|
4311
4332
|
isThinking: !1,
|
|
@@ -4313,28 +4334,28 @@ let b = class extends C {
|
|
|
4313
4334
|
text: "Long text.The element may not be scrolled completely to the top or bottom depending on the layout of other elements.The element may not be scrolled completely to the top or bottom depending on the layout of other elements."
|
|
4314
4335
|
}
|
|
4315
4336
|
};
|
|
4316
|
-
return
|
|
4337
|
+
return n.addMessage(c), c;
|
|
4317
4338
|
}
|
|
4318
4339
|
render() {
|
|
4319
|
-
return
|
|
4320
|
-
<div class="cb-wrapper" style="${
|
|
4340
|
+
return s`
|
|
4341
|
+
<div class="cb-wrapper" style="${n.open ? "display:flex" : "display:none"}">
|
|
4321
4342
|
<cb-header title="${this.name}"></cb-header>
|
|
4322
|
-
<cb-message-list .messages=${
|
|
4343
|
+
<cb-message-list .messages=${n.messages} .actions=${n.actions}></cb-message-list>
|
|
4323
4344
|
<cb-user-input ?loading=${this.loading} ?disabled=${this.loading || this.showAuthAlert} ?enable-file-upload=${this.enableFileUpload}></cb-user-input>
|
|
4324
4345
|
</div>
|
|
4325
|
-
<cb-anchor ?open=${
|
|
4346
|
+
<cb-anchor ?open=${n.open}></cb-anchor>
|
|
4326
4347
|
`;
|
|
4327
4348
|
}
|
|
4328
4349
|
connectedCallback() {
|
|
4329
|
-
super.connectedCallback(),
|
|
4350
|
+
super.connectedCallback(), ce.info("connectedCallback"), addEventListener("setting:show", () => {
|
|
4330
4351
|
this.showSetting = !0;
|
|
4331
4352
|
}), addEventListener("message:send", this._addMessageHandler.bind(this)), addEventListener("message:remove", this._deleteMessageHandler.bind(this)), addEventListener("setting:confirm", this._settingConfirmHandler.bind(this)), addEventListener("setting:hide", () => {
|
|
4332
4353
|
this.showSetting = !1;
|
|
4333
|
-
}), addEventListener("chatbot:toggle", (
|
|
4334
|
-
const e =
|
|
4335
|
-
|
|
4354
|
+
}), addEventListener("chatbot:toggle", (c) => {
|
|
4355
|
+
const e = c.detail;
|
|
4356
|
+
n.open = e.open, n.engage = !1;
|
|
4336
4357
|
}), addEventListener("message:clear", () => {
|
|
4337
|
-
|
|
4358
|
+
n.clearMessages();
|
|
4338
4359
|
}), addEventListener("message:send:file", this._sendFileHandler.bind(this)), addEventListener("setting:show", () => {
|
|
4339
4360
|
this.showSetting = !0;
|
|
4340
4361
|
});
|
|
@@ -4342,52 +4363,52 @@ let b = class extends C {
|
|
|
4342
4363
|
// This is called when component is loaded, with all the settings (props) values
|
|
4343
4364
|
// Use to initialize
|
|
4344
4365
|
// This is also called when state changes - ??? - i.e. when message added to the array
|
|
4345
|
-
updated(
|
|
4346
|
-
super.updated(
|
|
4366
|
+
updated(c) {
|
|
4367
|
+
super.updated(c), ce.info("updated,_changedProperties:", c), c.size > 0 && (ce.info("updated,_changedProperties:", c), this._initSetting()), setTimeout(() => {
|
|
4347
4368
|
this._scrollToBottom();
|
|
4348
4369
|
}, 0);
|
|
4349
4370
|
}
|
|
4350
4371
|
// initialize setting
|
|
4351
4372
|
_initSetting() {
|
|
4352
|
-
const
|
|
4353
|
-
|
|
4373
|
+
const c = n.setting;
|
|
4374
|
+
c.orgId = this.orgId, c.botId = this.botId, c.url = this.url, c.logoSvg = this.logoSvg, c.botIconSvg = this.botIconSvg, c.userIconSvg = this.userIconSvg, c.systemIconSvg = this.systemIconSvg, n.setSetting(c);
|
|
4354
4375
|
}
|
|
4355
|
-
setLoading(
|
|
4356
|
-
this.loading =
|
|
4376
|
+
setLoading(c) {
|
|
4377
|
+
this.loading = c;
|
|
4357
4378
|
}
|
|
4358
4379
|
clearConversation() {
|
|
4359
|
-
|
|
4380
|
+
n.clearConversation();
|
|
4360
4381
|
}
|
|
4361
4382
|
// check auth
|
|
4362
4383
|
_checkAuth() {
|
|
4363
4384
|
}
|
|
4364
4385
|
// TODO Remove
|
|
4365
|
-
async _sendToOpenai(
|
|
4366
|
-
let
|
|
4367
|
-
const
|
|
4368
|
-
url: `${
|
|
4369
|
-
apiKey:
|
|
4386
|
+
async _sendToOpenai(c, e) {
|
|
4387
|
+
let a = "";
|
|
4388
|
+
const f = n.setting.openai.apiBase || "https://api.openai.com/v1", t = await d1({
|
|
4389
|
+
url: `${f}/chat/completions`,
|
|
4390
|
+
apiKey: n.setting.openai.apiKey,
|
|
4370
4391
|
messages: e,
|
|
4371
4392
|
options: {
|
|
4372
|
-
stream:
|
|
4373
|
-
model:
|
|
4393
|
+
stream: n.setting.stream,
|
|
4394
|
+
model: n.setting.openai.model
|
|
4374
4395
|
// temperature: 0.9,
|
|
4375
4396
|
},
|
|
4376
|
-
onMessage: (
|
|
4377
|
-
var
|
|
4378
|
-
if (
|
|
4379
|
-
console.error(
|
|
4397
|
+
onMessage: (o, d) => {
|
|
4398
|
+
var b;
|
|
4399
|
+
if (o) {
|
|
4400
|
+
console.error(o);
|
|
4380
4401
|
return;
|
|
4381
4402
|
}
|
|
4382
|
-
|
|
4383
|
-
|
|
4403
|
+
d && ((b = d.choices[0].delta) != null && b.content) && requestIdleCallback(() => {
|
|
4404
|
+
a += d.choices[0].delta.content, n.updateMessage(c, a);
|
|
4384
4405
|
});
|
|
4385
4406
|
}
|
|
4386
4407
|
});
|
|
4387
|
-
!
|
|
4408
|
+
!n.setting.stream && t && n.updateMessage(c, t.choices[0].message.content);
|
|
4388
4409
|
}
|
|
4389
4410
|
// TODO Remove
|
|
4390
|
-
async _sendHandler(
|
|
4411
|
+
async _sendHandler(c) {
|
|
4391
4412
|
this.setLoading(!0);
|
|
4392
4413
|
const e = {
|
|
4393
4414
|
author: "assistant",
|
|
@@ -4395,128 +4416,128 @@ let b = class extends C {
|
|
|
4395
4416
|
isThinking: !0,
|
|
4396
4417
|
data: {}
|
|
4397
4418
|
};
|
|
4398
|
-
if (
|
|
4419
|
+
if (n.addMessage(e), this.customRequest)
|
|
4399
4420
|
await this.emit("chatbot:send", {
|
|
4400
4421
|
detail: {
|
|
4401
4422
|
newMessage: e,
|
|
4402
|
-
messages:
|
|
4423
|
+
messages: c
|
|
4403
4424
|
},
|
|
4404
4425
|
bubbles: !0,
|
|
4405
4426
|
composed: !0
|
|
4406
4427
|
});
|
|
4407
4428
|
else
|
|
4408
4429
|
try {
|
|
4409
|
-
await this._sendToOpenai(e,
|
|
4410
|
-
} catch (
|
|
4411
|
-
|
|
4430
|
+
await this._sendToOpenai(e, c);
|
|
4431
|
+
} catch (a) {
|
|
4432
|
+
f1("error", a.message), console.error(a);
|
|
4412
4433
|
}
|
|
4413
4434
|
this.setLoading(!1);
|
|
4414
4435
|
}
|
|
4415
|
-
_addMessageHandler(
|
|
4416
|
-
const e =
|
|
4417
|
-
|
|
4436
|
+
_addMessageHandler(c) {
|
|
4437
|
+
const e = c.detail;
|
|
4438
|
+
n.sendMessage(e);
|
|
4418
4439
|
}
|
|
4419
|
-
_deleteMessageHandler(
|
|
4420
|
-
const e =
|
|
4421
|
-
|
|
4440
|
+
_deleteMessageHandler(c) {
|
|
4441
|
+
const e = c.detail;
|
|
4442
|
+
n.removeMessage(e.id);
|
|
4422
4443
|
}
|
|
4423
|
-
async _sendFileHandler(
|
|
4424
|
-
const e =
|
|
4444
|
+
async _sendFileHandler(c) {
|
|
4445
|
+
const e = c.detail, f = {
|
|
4425
4446
|
author: "user",
|
|
4426
4447
|
type: "file",
|
|
4427
4448
|
isUploading: !0,
|
|
4428
4449
|
data: {
|
|
4429
|
-
files: e.files.map((
|
|
4430
|
-
id: `${
|
|
4431
|
-
name:
|
|
4432
|
-
size:
|
|
4433
|
-
type:
|
|
4450
|
+
files: e.files.map((t, o) => ({
|
|
4451
|
+
id: `${t.name}-${o}`,
|
|
4452
|
+
name: t.name,
|
|
4453
|
+
size: t.size,
|
|
4454
|
+
type: t.type,
|
|
4434
4455
|
url: ""
|
|
4435
4456
|
}))
|
|
4436
4457
|
}
|
|
4437
4458
|
};
|
|
4438
|
-
if (
|
|
4439
|
-
const
|
|
4440
|
-
|
|
4441
|
-
files:
|
|
4442
|
-
},
|
|
4459
|
+
if (n.addMessage(f), this.uploadFileUrl) {
|
|
4460
|
+
const t = await a1(this.uploadFileUrl, e.files);
|
|
4461
|
+
t.code === 0 && t.data && (f.isUploading = !1, f.data = {
|
|
4462
|
+
files: t.data
|
|
4463
|
+
}, n.updateMessage(f));
|
|
4443
4464
|
}
|
|
4444
4465
|
this.emit("chatbot:file:send", {
|
|
4445
4466
|
detail: {
|
|
4446
4467
|
files: e.files,
|
|
4447
|
-
message:
|
|
4468
|
+
message: f
|
|
4448
4469
|
}
|
|
4449
4470
|
});
|
|
4450
4471
|
}
|
|
4451
4472
|
// setting confirm handler
|
|
4452
|
-
_settingConfirmHandler(
|
|
4453
|
-
const e =
|
|
4454
|
-
|
|
4473
|
+
_settingConfirmHandler(c) {
|
|
4474
|
+
const e = c.detail;
|
|
4475
|
+
n.setSetting(e.setting), this.showSetting = !1, this._checkAuth();
|
|
4455
4476
|
}
|
|
4456
4477
|
// scroll to bottom
|
|
4457
|
-
_scrollToBottom(
|
|
4478
|
+
_scrollToBottom(c = !1) {
|
|
4458
4479
|
var e;
|
|
4459
4480
|
console.log("Scrolling to bottom ..."), (e = this._messageList) == null || e.scrollToBottom();
|
|
4460
4481
|
}
|
|
4461
4482
|
};
|
|
4462
|
-
|
|
4483
|
+
u.styles = kc;
|
|
4463
4484
|
v([
|
|
4464
|
-
|
|
4465
|
-
],
|
|
4485
|
+
r({ type: Boolean, attribute: "display-license" })
|
|
4486
|
+
], u.prototype, "displayLicense", 2);
|
|
4466
4487
|
v([
|
|
4467
|
-
|
|
4468
|
-
],
|
|
4488
|
+
r({ type: String, attribute: "name" })
|
|
4489
|
+
], u.prototype, "name", 2);
|
|
4469
4490
|
v([
|
|
4470
|
-
|
|
4471
|
-
],
|
|
4491
|
+
r({ type: String, attribute: "org-id" })
|
|
4492
|
+
], u.prototype, "orgId", 2);
|
|
4472
4493
|
v([
|
|
4473
|
-
|
|
4474
|
-
],
|
|
4494
|
+
r({ type: String, attribute: "bot-id" })
|
|
4495
|
+
], u.prototype, "botId", 2);
|
|
4475
4496
|
v([
|
|
4476
|
-
|
|
4477
|
-
],
|
|
4497
|
+
r({ type: String, attribute: "url" })
|
|
4498
|
+
], u.prototype, "url", 2);
|
|
4478
4499
|
v([
|
|
4479
|
-
|
|
4480
|
-
],
|
|
4500
|
+
r({ type: String, attribute: "logo-svg" })
|
|
4501
|
+
], u.prototype, "logoSvg", 2);
|
|
4481
4502
|
v([
|
|
4482
|
-
|
|
4483
|
-
],
|
|
4503
|
+
r({ type: String, attribute: "bot-icon-svg" })
|
|
4504
|
+
], u.prototype, "botIconSvg", 2);
|
|
4484
4505
|
v([
|
|
4485
|
-
|
|
4486
|
-
],
|
|
4506
|
+
r({ type: String, attribute: "user-icon-svg" })
|
|
4507
|
+
], u.prototype, "userIconSvg", 2);
|
|
4487
4508
|
v([
|
|
4488
|
-
|
|
4489
|
-
],
|
|
4509
|
+
r({ type: String, attribute: "system-icon-svg" })
|
|
4510
|
+
], u.prototype, "systemIconSvg", 2);
|
|
4490
4511
|
v([
|
|
4491
|
-
|
|
4492
|
-
],
|
|
4512
|
+
r({ type: Boolean, attribute: "stream" })
|
|
4513
|
+
], u.prototype, "stream", 2);
|
|
4493
4514
|
v([
|
|
4494
|
-
|
|
4495
|
-
],
|
|
4515
|
+
r({ type: Boolean, attribute: "custom-request" })
|
|
4516
|
+
], u.prototype, "customRequest", 2);
|
|
4496
4517
|
v([
|
|
4497
|
-
|
|
4498
|
-
],
|
|
4518
|
+
r({ type: Boolean, attribute: "enable-file-upload" })
|
|
4519
|
+
], u.prototype, "enableFileUpload", 2);
|
|
4499
4520
|
v([
|
|
4500
|
-
|
|
4501
|
-
],
|
|
4521
|
+
r({ type: String, attribute: "upload-file-url" })
|
|
4522
|
+
], u.prototype, "uploadFileUrl", 2);
|
|
4502
4523
|
v([
|
|
4503
|
-
|
|
4504
|
-
],
|
|
4524
|
+
r({ type: Boolean, attribute: "open" })
|
|
4525
|
+
], u.prototype, "open", 2);
|
|
4505
4526
|
v([
|
|
4506
|
-
|
|
4507
|
-
],
|
|
4527
|
+
r({ type: Boolean })
|
|
4528
|
+
], u.prototype, "loading", 2);
|
|
4508
4529
|
v([
|
|
4509
|
-
|
|
4510
|
-
],
|
|
4530
|
+
r({ type: Boolean })
|
|
4531
|
+
], u.prototype, "showSetting", 2);
|
|
4511
4532
|
v([
|
|
4512
|
-
|
|
4513
|
-
],
|
|
4533
|
+
r({ type: Boolean })
|
|
4534
|
+
], u.prototype, "showAuthAlert", 2);
|
|
4514
4535
|
v([
|
|
4515
|
-
|
|
4516
|
-
],
|
|
4517
|
-
|
|
4536
|
+
le("cb-message-list")
|
|
4537
|
+
], u.prototype, "_messageList", 2);
|
|
4538
|
+
u = v([
|
|
4518
4539
|
k("enegelai-bot")
|
|
4519
|
-
],
|
|
4540
|
+
], u);
|
|
4520
4541
|
export {
|
|
4521
|
-
|
|
4542
|
+
u as default
|
|
4522
4543
|
};
|