@asgard-js/react 0.0.6 → 0.0.7
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/components/chatbot/chatbot-body/chatbot-body.d.ts.map +1 -0
- package/dist/components/chatbot/chatbot-body/conversation-message-renderer.d.ts.map +1 -0
- package/dist/components/chatbot/chatbot-body/index.d.ts +2 -0
- package/dist/components/chatbot/chatbot-body/index.d.ts.map +1 -0
- package/dist/components/chatbot/chatbot-container/chatbot-container.d.ts +8 -0
- package/dist/components/chatbot/chatbot-container/chatbot-container.d.ts.map +1 -0
- package/dist/components/chatbot/chatbot-container/chatbot-full-screen-container.d.ts +4 -0
- package/dist/components/chatbot/chatbot-container/chatbot-full-screen-container.d.ts.map +1 -0
- package/dist/components/chatbot/chatbot-footer/chatbot-footer.d.ts.map +1 -1
- package/dist/components/chatbot/chatbot-header/chatbot-header.d.ts.map +1 -0
- package/dist/components/chatbot/chatbot-header/index.d.ts +2 -0
- package/dist/components/chatbot/chatbot-header/index.d.ts.map +1 -0
- package/dist/components/chatbot/chatbot.d.ts.map +1 -1
- package/dist/components/templates/index.d.ts +0 -1
- package/dist/components/templates/index.d.ts.map +1 -1
- package/dist/components/templates/text-template/bot-typing-box.d.ts.map +1 -0
- package/dist/components/templates/text-template/bot-typing-placeholder.d.ts.map +1 -0
- package/dist/components/templates/text-template/index.d.ts +2 -0
- package/dist/components/templates/text-template/index.d.ts.map +1 -1
- package/dist/components/templates/text-template/text-template.d.ts.map +1 -1
- package/dist/context/asgard-service-context.d.ts.map +1 -1
- package/dist/context/asgard-theme-context.d.ts +0 -1
- package/dist/context/asgard-theme-context.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/use-is-on-screen-keyboard-open.d.ts +2 -0
- package/dist/hooks/use-is-on-screen-keyboard-open.d.ts.map +1 -0
- package/dist/hooks/use-on-screen-keyboard-scroll-fix.d.ts +2 -0
- package/dist/hooks/use-on-screen-keyboard-scroll-fix.d.ts.map +1 -0
- package/dist/hooks/use-prevent-over-scrolling.d.ts +4 -0
- package/dist/hooks/use-prevent-over-scrolling.d.ts.map +1 -0
- package/dist/hooks/use-resize-observer.d.ts +9 -0
- package/dist/hooks/use-resize-observer.d.ts.map +1 -0
- package/dist/hooks/use-update-vh.d.ts +4 -0
- package/dist/hooks/use-update-vh.d.ts.map +1 -0
- package/dist/hooks/use-viewport-size.d.ts +6 -0
- package/dist/hooks/use-viewport-size.d.ts.map +1 -0
- package/dist/index.js +601 -426
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/components/chatbot/chatbot-body.d.ts.map +0 -1
- package/dist/components/chatbot/chatbot-header.d.ts.map +0 -1
- package/dist/components/conversation-message-renderer/conversation-message-renderer.d.ts.map +0 -1
- package/dist/components/conversation-message-renderer/index.d.ts +0 -2
- package/dist/components/conversation-message-renderer/index.d.ts.map +0 -1
- package/dist/components/templates/bot-typing-box/bot-typing-box.d.ts.map +0 -1
- package/dist/components/templates/bot-typing-box/bot-typing-placeholder.d.ts.map +0 -1
- package/dist/components/templates/bot-typing-box/index.d.ts +0 -3
- package/dist/components/templates/bot-typing-box/index.d.ts.map +0 -1
- package/dist/components/templates/bot-typing-box/resize-observer-box.d.ts +0 -9
- package/dist/components/templates/bot-typing-box/resize-observer-box.d.ts.map +0 -1
- /package/dist/components/chatbot/{chatbot-body.d.ts → chatbot-body/chatbot-body.d.ts} +0 -0
- /package/dist/components/{conversation-message-renderer → chatbot/chatbot-body}/conversation-message-renderer.d.ts +0 -0
- /package/dist/components/chatbot/{chatbot-header.d.ts → chatbot-header/chatbot-header.d.ts} +0 -0
- /package/dist/components/templates/{bot-typing-box → text-template}/bot-typing-box.d.ts +0 -0
- /package/dist/components/templates/{bot-typing-box → text-template}/bot-typing-placeholder.d.ts +0 -0
package/dist/index.js
CHANGED
|
@@ -1,36 +1,23 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import * as
|
|
3
|
-
import { createContext as
|
|
4
|
-
import { AsgardServiceClient as
|
|
5
|
-
function rt(e) {
|
|
6
|
-
var t, o, n = "";
|
|
7
|
-
if (typeof e == "string" || typeof e == "number") n += e;
|
|
8
|
-
else if (typeof e == "object") if (Array.isArray(e)) {
|
|
9
|
-
var s = e.length;
|
|
10
|
-
for (t = 0; t < s; t++) e[t] && (o = rt(e[t])) && (n && (n += " "), n += o);
|
|
11
|
-
} else for (o in e) e[o] && (n && (n += " "), n += o);
|
|
12
|
-
return n;
|
|
13
|
-
}
|
|
14
|
-
function w() {
|
|
15
|
-
for (var e, t, o = 0, n = "", s = arguments.length; o < s; o++) (e = arguments[o]) && (t = rt(e)) && (n && (n += " "), n += t);
|
|
16
|
-
return n;
|
|
17
|
-
}
|
|
1
|
+
import { jsx as s, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import * as g from "react";
|
|
3
|
+
import { createContext as nt, useMemo as C, useContext as ot, useRef as M, useEffect as w, useState as x, useCallback as b, useLayoutEffect as rt, memo as gt } from "react";
|
|
4
|
+
import { AsgardServiceClient as ft, Conversation as mt, Channel as bt, MessageTemplateType as A } from "@asgard-js/core";
|
|
18
5
|
function U(e) {
|
|
19
6
|
return e !== null && typeof e == "object" && !Array.isArray(e);
|
|
20
7
|
}
|
|
21
|
-
function
|
|
8
|
+
function st(e, t) {
|
|
22
9
|
const o = { ...e };
|
|
23
10
|
if (!t) return o;
|
|
24
|
-
for (const [n,
|
|
25
|
-
if (!U(
|
|
26
|
-
o[n] =
|
|
11
|
+
for (const [n, r] of Object.entries(t)) {
|
|
12
|
+
if (!U(r)) {
|
|
13
|
+
o[n] = r;
|
|
27
14
|
continue;
|
|
28
15
|
}
|
|
29
|
-
o[n] =
|
|
16
|
+
o[n] = st(U(o[n]) ? o[n] : {}, r);
|
|
30
17
|
}
|
|
31
18
|
return o;
|
|
32
19
|
}
|
|
33
|
-
const
|
|
20
|
+
const ct = {
|
|
34
21
|
chatbot: {
|
|
35
22
|
width: "375px",
|
|
36
23
|
height: "640px",
|
|
@@ -47,121 +34,236 @@ const st = {
|
|
|
47
34
|
color: "var(--asg-color-text)",
|
|
48
35
|
backgroundColor: "var(--asg-color-primary)"
|
|
49
36
|
}
|
|
50
|
-
},
|
|
51
|
-
|
|
37
|
+
}, it = nt(
|
|
38
|
+
ct
|
|
52
39
|
);
|
|
53
|
-
function
|
|
54
|
-
const { children: t,
|
|
55
|
-
() =>
|
|
56
|
-
|
|
57
|
-
o ? D(n, {
|
|
58
|
-
chatbot: {
|
|
59
|
-
width: "100vw",
|
|
60
|
-
height: "100vh",
|
|
61
|
-
borderRadius: "var(--asg-radius-none)"
|
|
62
|
-
}
|
|
63
|
-
}) : n
|
|
64
|
-
),
|
|
65
|
-
[o, n]
|
|
40
|
+
function pt(e) {
|
|
41
|
+
const { children: t, theme: o = {} } = e, n = C(
|
|
42
|
+
() => st(ct, o),
|
|
43
|
+
[o]
|
|
66
44
|
);
|
|
67
|
-
return /* @__PURE__ */
|
|
45
|
+
return /* @__PURE__ */ s(it.Provider, { value: n, children: t });
|
|
68
46
|
}
|
|
69
|
-
function
|
|
70
|
-
return
|
|
47
|
+
function z() {
|
|
48
|
+
return ot(it);
|
|
71
49
|
}
|
|
72
|
-
function
|
|
73
|
-
const { config: t } = e, o =
|
|
74
|
-
return o.current || (o.current = new
|
|
50
|
+
function vt(e) {
|
|
51
|
+
const { config: t } = e, o = M(null);
|
|
52
|
+
return o.current || (o.current = new ft(t)), w(() => () => {
|
|
75
53
|
o.current && (o.current.close(), o.current = null);
|
|
76
54
|
}, [t]), o.current;
|
|
77
55
|
}
|
|
78
|
-
function
|
|
56
|
+
function Ct(e) {
|
|
79
57
|
const {
|
|
80
58
|
client: t,
|
|
81
59
|
customChannelId: o,
|
|
82
60
|
customMessageId: n,
|
|
83
|
-
initMessages:
|
|
61
|
+
initMessages: r,
|
|
84
62
|
showDebugMessage: c
|
|
85
63
|
} = e;
|
|
86
64
|
if (!t)
|
|
87
65
|
throw new Error("Client instance is required");
|
|
88
66
|
if (!o)
|
|
89
67
|
throw new Error("Custom channel id is required");
|
|
90
|
-
const [i, a] =
|
|
91
|
-
const
|
|
68
|
+
const [i, a] = x(null), [l, d] = x(!0), [h, f] = x(!1), [u, _] = x(!1), [m, v] = x(null), E = b(async () => {
|
|
69
|
+
const L = new mt({
|
|
92
70
|
showDebugMessage: c,
|
|
93
71
|
messages: new Map(
|
|
94
|
-
|
|
72
|
+
r == null ? void 0 : r.map((H) => [H.messageId, H])
|
|
95
73
|
)
|
|
96
74
|
});
|
|
97
|
-
|
|
98
|
-
const
|
|
75
|
+
f(!0), _(!0), v(L);
|
|
76
|
+
const ht = await bt.reset(
|
|
99
77
|
{
|
|
100
78
|
client: t,
|
|
101
79
|
customChannelId: o,
|
|
102
80
|
customMessageId: n,
|
|
103
|
-
conversation:
|
|
104
|
-
statesObserver: (
|
|
105
|
-
|
|
81
|
+
conversation: L,
|
|
82
|
+
statesObserver: (H) => {
|
|
83
|
+
_(H.isConnecting), v(H.conversation);
|
|
106
84
|
}
|
|
107
85
|
},
|
|
108
86
|
{
|
|
109
87
|
onSseCompleted() {
|
|
110
|
-
|
|
88
|
+
f(!1);
|
|
111
89
|
},
|
|
112
90
|
onSseError() {
|
|
113
|
-
|
|
91
|
+
f(!1);
|
|
114
92
|
}
|
|
115
93
|
}
|
|
116
94
|
);
|
|
117
|
-
a(
|
|
95
|
+
a(ht);
|
|
118
96
|
}, [
|
|
119
97
|
t,
|
|
120
98
|
o,
|
|
121
99
|
n,
|
|
122
|
-
|
|
100
|
+
r,
|
|
123
101
|
c
|
|
124
|
-
]),
|
|
125
|
-
a((
|
|
126
|
-
}, []),
|
|
127
|
-
(
|
|
128
|
-
i == null || i.sendMessage({ text:
|
|
102
|
+
]), S = b(() => {
|
|
103
|
+
a((L) => (L == null || L.close(), null)), d(!1), f(!1), _(!1), v(null);
|
|
104
|
+
}, []), W = b(
|
|
105
|
+
(L) => {
|
|
106
|
+
i == null || i.sendMessage({ text: L });
|
|
129
107
|
},
|
|
130
108
|
[i]
|
|
131
109
|
);
|
|
132
|
-
return
|
|
133
|
-
!i &&
|
|
134
|
-
}, [i,
|
|
110
|
+
return w(() => {
|
|
111
|
+
!i && l && E();
|
|
112
|
+
}, [i, l, E]), w(() => () => S(), [S]), C(
|
|
135
113
|
() => ({
|
|
136
|
-
isOpen:
|
|
137
|
-
isResetting:
|
|
138
|
-
isConnecting:
|
|
139
|
-
conversation:
|
|
140
|
-
sendMessage:
|
|
141
|
-
resetChannel:
|
|
142
|
-
closeChannel:
|
|
114
|
+
isOpen: l,
|
|
115
|
+
isResetting: h,
|
|
116
|
+
isConnecting: u,
|
|
117
|
+
conversation: m,
|
|
118
|
+
sendMessage: W,
|
|
119
|
+
resetChannel: E,
|
|
120
|
+
closeChannel: S
|
|
143
121
|
}),
|
|
144
122
|
[
|
|
145
|
-
_,
|
|
146
|
-
v,
|
|
147
123
|
l,
|
|
148
124
|
h,
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
125
|
+
u,
|
|
126
|
+
m,
|
|
127
|
+
W,
|
|
128
|
+
E,
|
|
129
|
+
S
|
|
152
130
|
]
|
|
153
131
|
);
|
|
154
132
|
}
|
|
155
|
-
function
|
|
156
|
-
const [o, n] =
|
|
157
|
-
return
|
|
158
|
-
const
|
|
133
|
+
function wt(e, t) {
|
|
134
|
+
const [o, n] = x(e);
|
|
135
|
+
return w(() => {
|
|
136
|
+
const r = window.setTimeout(() => {
|
|
159
137
|
n(e);
|
|
160
138
|
}, t ?? 300);
|
|
161
|
-
return () => clearTimeout(
|
|
139
|
+
return () => clearTimeout(r);
|
|
162
140
|
}, [e, t]), o;
|
|
163
141
|
}
|
|
164
|
-
const
|
|
142
|
+
const D = typeof window < "u" ? rt : null;
|
|
143
|
+
function xt() {
|
|
144
|
+
return window.visualViewport ? [window.visualViewport.width, window.visualViewport.height] : [window.innerWidth, window.innerHeight];
|
|
145
|
+
}
|
|
146
|
+
function yt() {
|
|
147
|
+
const [e, t] = x(), o = b(() => {
|
|
148
|
+
const n = xt();
|
|
149
|
+
t(
|
|
150
|
+
(r) => r && r[0] === n[0] && r[1] === n[1] ? r : n
|
|
151
|
+
);
|
|
152
|
+
}, []);
|
|
153
|
+
return D == null || D(o, [o]), w(() => {
|
|
154
|
+
var r;
|
|
155
|
+
function n() {
|
|
156
|
+
o(), setTimeout(o, 1e3);
|
|
157
|
+
}
|
|
158
|
+
return window.addEventListener("resize", n), window.addEventListener("orientationchange", n), (r = window.visualViewport) == null || r.addEventListener("resize", n), () => {
|
|
159
|
+
var c;
|
|
160
|
+
window.removeEventListener("resize", n), window.removeEventListener("orientationchange", n), (c = window.visualViewport) == null || c.removeEventListener("resize", n);
|
|
161
|
+
};
|
|
162
|
+
}, [o]), e;
|
|
163
|
+
}
|
|
164
|
+
function K(e) {
|
|
165
|
+
return ["INPUT", "TEXTAREA"].includes(e.tagName) && !["button", "submit", "checkbox", "file", "image"].includes(
|
|
166
|
+
e.type
|
|
167
|
+
) || e.hasAttribute("contenteditable");
|
|
168
|
+
}
|
|
169
|
+
function Tt() {
|
|
170
|
+
const [e, t] = x(!1);
|
|
171
|
+
return w(() => {
|
|
172
|
+
function o(r) {
|
|
173
|
+
if (!r.target) return;
|
|
174
|
+
const c = r.target;
|
|
175
|
+
K(c) && t(!0);
|
|
176
|
+
}
|
|
177
|
+
function n(r) {
|
|
178
|
+
if (!r.target) return;
|
|
179
|
+
const c = r.target;
|
|
180
|
+
K(c) && t(!1);
|
|
181
|
+
}
|
|
182
|
+
return document.addEventListener("focusin", o), document.addEventListener("focusout", n), () => {
|
|
183
|
+
document.removeEventListener("focusin", o), document.removeEventListener("focusout", n);
|
|
184
|
+
};
|
|
185
|
+
}, []), e;
|
|
186
|
+
}
|
|
187
|
+
function Nt() {
|
|
188
|
+
w(() => {
|
|
189
|
+
function e() {
|
|
190
|
+
window.scrollTo(0, 0);
|
|
191
|
+
}
|
|
192
|
+
return window.addEventListener("scroll", e), () => {
|
|
193
|
+
window.removeEventListener("scroll", e);
|
|
194
|
+
};
|
|
195
|
+
}, []);
|
|
196
|
+
}
|
|
197
|
+
function at(e) {
|
|
198
|
+
if (e.scrollHeight > e.offsetHeight)
|
|
199
|
+
return e;
|
|
200
|
+
const t = e.parentElement;
|
|
201
|
+
if (t)
|
|
202
|
+
return at(t);
|
|
203
|
+
}
|
|
204
|
+
function Et(e) {
|
|
205
|
+
w(() => {
|
|
206
|
+
const t = e.current;
|
|
207
|
+
if (!t) return;
|
|
208
|
+
let o;
|
|
209
|
+
function n(c) {
|
|
210
|
+
c.touches.length === 1 && (o = c.touches[0]);
|
|
211
|
+
}
|
|
212
|
+
function r(c) {
|
|
213
|
+
if (c.touches.length !== 1 || !o) return;
|
|
214
|
+
const i = o.pageY - c.targetTouches[0].pageY, a = o.pageX - c.targetTouches[0].pageX;
|
|
215
|
+
if (Math.abs(a) > Math.abs(i)) return;
|
|
216
|
+
const l = c.target, d = at(l);
|
|
217
|
+
if (!d) {
|
|
218
|
+
c.preventDefault();
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
const h = i < 0, f = d.scrollTop === 0;
|
|
222
|
+
if (h && f) {
|
|
223
|
+
c.preventDefault();
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
const u = d.scrollTop === d.scrollHeight - d.clientHeight;
|
|
227
|
+
if (!h && u) {
|
|
228
|
+
c.preventDefault();
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return t.addEventListener("touchstart", n), t.addEventListener("touchmove", r), () => {
|
|
233
|
+
t.removeEventListener("touchstart", n), t.removeEventListener("touchmove", r);
|
|
234
|
+
};
|
|
235
|
+
}, [e]);
|
|
236
|
+
}
|
|
237
|
+
const j = typeof window < "u" ? rt : null;
|
|
238
|
+
function Lt(e) {
|
|
239
|
+
const t = b(() => {
|
|
240
|
+
const o = window.innerHeight * 0.01;
|
|
241
|
+
e.current && e.current.style.setProperty("--vh", `${o}px`);
|
|
242
|
+
}, [e]);
|
|
243
|
+
j == null || j(t, [t]), w(() => {
|
|
244
|
+
function o() {
|
|
245
|
+
t(), setTimeout(t, 1e3);
|
|
246
|
+
}
|
|
247
|
+
return t(), window.addEventListener("resize", o), () => {
|
|
248
|
+
window.removeEventListener("resize", o);
|
|
249
|
+
};
|
|
250
|
+
}, [t]);
|
|
251
|
+
}
|
|
252
|
+
function kt(e) {
|
|
253
|
+
const { ref: t, onResize: o } = e;
|
|
254
|
+
w(() => {
|
|
255
|
+
const n = new ResizeObserver((r) => {
|
|
256
|
+
for (const c of r) {
|
|
257
|
+
const { width: i, height: a } = c.contentRect;
|
|
258
|
+
o(i, a);
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
return t.current && n.observe(t.current), () => {
|
|
262
|
+
n.disconnect();
|
|
263
|
+
};
|
|
264
|
+
}, [t, o]);
|
|
265
|
+
}
|
|
266
|
+
const lt = nt({
|
|
165
267
|
avatar: void 0,
|
|
166
268
|
client: null,
|
|
167
269
|
isOpen: !1,
|
|
@@ -171,72 +273,69 @@ const it = ot({
|
|
|
171
273
|
messageBoxBottomRef: { current: null },
|
|
172
274
|
botTypingPlaceholder: void 0
|
|
173
275
|
});
|
|
174
|
-
function
|
|
276
|
+
function Mt(e) {
|
|
175
277
|
const {
|
|
176
278
|
avatar: t,
|
|
177
279
|
children: o,
|
|
178
280
|
config: n,
|
|
179
|
-
botTypingPlaceholder:
|
|
281
|
+
botTypingPlaceholder: r,
|
|
180
282
|
customChannelId: c,
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
closeChannel: x
|
|
194
|
-
} = bt({
|
|
195
|
-
client: l,
|
|
283
|
+
initMessages: i,
|
|
284
|
+
options: a
|
|
285
|
+
} = e, l = M(null), d = vt({ config: n }), {
|
|
286
|
+
isOpen: h,
|
|
287
|
+
isResetting: f,
|
|
288
|
+
isConnecting: u,
|
|
289
|
+
conversation: _,
|
|
290
|
+
sendMessage: m,
|
|
291
|
+
resetChannel: v,
|
|
292
|
+
closeChannel: E
|
|
293
|
+
} = Ct({
|
|
294
|
+
client: d,
|
|
196
295
|
customChannelId: c,
|
|
197
|
-
initMessages:
|
|
198
|
-
showDebugMessage:
|
|
199
|
-
}),
|
|
296
|
+
initMessages: i,
|
|
297
|
+
showDebugMessage: a == null ? void 0 : a.showDebugMessage
|
|
298
|
+
}), S = C(
|
|
200
299
|
() => ({
|
|
201
300
|
avatar: t,
|
|
202
|
-
client:
|
|
203
|
-
isOpen:
|
|
204
|
-
isResetting:
|
|
205
|
-
isConnecting:
|
|
206
|
-
messages: (
|
|
207
|
-
sendMessage:
|
|
208
|
-
resetChannel:
|
|
209
|
-
closeChannel:
|
|
210
|
-
botTypingPlaceholder:
|
|
211
|
-
messageBoxBottomRef:
|
|
301
|
+
client: d,
|
|
302
|
+
isOpen: h,
|
|
303
|
+
isResetting: f,
|
|
304
|
+
isConnecting: u,
|
|
305
|
+
messages: (_ == null ? void 0 : _.messages) ?? null,
|
|
306
|
+
sendMessage: m,
|
|
307
|
+
resetChannel: v,
|
|
308
|
+
closeChannel: E,
|
|
309
|
+
botTypingPlaceholder: r,
|
|
310
|
+
messageBoxBottomRef: l
|
|
212
311
|
}),
|
|
213
312
|
[
|
|
214
313
|
t,
|
|
215
|
-
l,
|
|
216
314
|
d,
|
|
217
315
|
h,
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
316
|
+
f,
|
|
317
|
+
u,
|
|
318
|
+
_ == null ? void 0 : _.messages,
|
|
319
|
+
m,
|
|
320
|
+
v,
|
|
321
|
+
E,
|
|
322
|
+
r
|
|
224
323
|
]
|
|
225
|
-
)
|
|
226
|
-
return /* @__PURE__ */
|
|
324
|
+
);
|
|
325
|
+
return /* @__PURE__ */ s(lt.Provider, { value: S, children: o });
|
|
227
326
|
}
|
|
228
|
-
function
|
|
229
|
-
return
|
|
230
|
-
}
|
|
231
|
-
const
|
|
232
|
-
chatbot_header:
|
|
233
|
-
chatbot_header__content:
|
|
234
|
-
chatbot_header__title:
|
|
235
|
-
chatbot_header__extra:
|
|
236
|
-
},
|
|
237
|
-
function
|
|
327
|
+
function N() {
|
|
328
|
+
return ot(lt);
|
|
329
|
+
}
|
|
330
|
+
const St = "_chatbot_header_luxt4_1", Rt = "_chatbot_header__content_luxt4_4", zt = "_chatbot_header__title_luxt4_12", Ht = "_chatbot_header__extra_luxt4_23", Z = {
|
|
331
|
+
chatbot_header: St,
|
|
332
|
+
chatbot_header__content: Rt,
|
|
333
|
+
chatbot_header__title: zt,
|
|
334
|
+
chatbot_header__extra: Ht
|
|
335
|
+
}, Vt = (e) => /* @__PURE__ */ g.createElement("svg", { width: 33, height: 32, viewBox: "0 0 33 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("g", { clipPath: "url(#clip0_3084_29383)" }, /* @__PURE__ */ g.createElement("path", { d: "M0.410645 16C0.410645 7.16344 7.57409 0 16.4106 0C25.2472 0 32.4106 7.16344 32.4106 16C32.4106 24.8366 25.2472 32 16.4106 32C7.57409 32 0.410645 24.8366 0.410645 16Z", fill: "#333333" }), /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.5788 6.33398C19.8925 6.33398 22.5788 9.02028 22.5788 12.334C22.5788 14.2211 21.7075 15.9048 20.3453 17.0047C23.6487 18.3735 26.0607 21.6974 26.4106 25.6673H24.4569C24.0206 21.6274 20.9742 18.4911 17.2591 18.3397L16.9776 18.334H16.5788H15.8437C12.0019 18.334 8.81164 21.5258 8.36437 25.6673H6.41064C6.76857 21.607 9.28344 18.2225 12.7029 16.9143C11.4036 15.8137 10.5788 14.1701 10.5788 12.334C10.5788 9.02028 13.265 6.33398 16.5788 6.33398ZM16.5788 16.334C18.7879 16.334 20.5788 14.5431 20.5788 12.334C20.5788 10.1248 18.7879 8.33398 16.5788 8.33398C14.3696 8.33398 12.5788 10.1248 12.5788 12.334C12.5788 14.5431 14.3696 16.334 16.5788 16.334Z", fill: "#8C8C8C" })), /* @__PURE__ */ g.createElement("defs", null, /* @__PURE__ */ g.createElement("clipPath", { id: "clip0_3084_29383" }, /* @__PURE__ */ g.createElement("path", { d: "M0.410645 16C0.410645 7.16344 7.57409 0 16.4106 0C25.2472 0 32.4106 7.16344 32.4106 16C32.4106 24.8366 25.2472 32 16.4106 32C7.57409 32 0.410645 24.8366 0.410645 16Z", fill: "white" }))));
|
|
336
|
+
function Bt(e) {
|
|
238
337
|
const { avatar: t } = e;
|
|
239
|
-
return t ? /* @__PURE__ */
|
|
338
|
+
return t ? /* @__PURE__ */ s(
|
|
240
339
|
"img",
|
|
241
340
|
{
|
|
242
341
|
src: t,
|
|
@@ -247,89 +346,103 @@ function Tt(e) {
|
|
|
247
346
|
borderRadius: "50%"
|
|
248
347
|
}
|
|
249
348
|
}
|
|
250
|
-
) : /* @__PURE__ */
|
|
349
|
+
) : /* @__PURE__ */ s(Vt, {});
|
|
251
350
|
}
|
|
252
|
-
const
|
|
253
|
-
function
|
|
254
|
-
const { title: t, onReset: o, onClose: n } = e, { chatbot:
|
|
351
|
+
const At = (e) => /* @__PURE__ */ g.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.49453 2.3352C6.44049 -0.226723 10.9105 -0.106316 13.7142 2.69633C16.6428 5.62613 16.6428 10.3739 13.7144 13.3035C10.7846 16.2322 6.03581 16.2322 3.1073 13.3036C2.30873 12.505 1.71132 11.5536 1.34188 10.5109L1.78892 10.3525L1.34171 10.5106L1.22791 10.162C1.01752 9.46018 0.910643 8.73159 0.910643 7.9997H2.4542L2.46382 8.33865C2.49584 8.9024 2.60763 9.46037 2.79674 9.99539L2.7968 9.99536L2.90116 10.2683C3.19714 10.9887 3.63414 11.6475 4.19876 12.2121C6.52451 14.5379 10.2961 14.5379 12.6229 12.212C14.9486 9.88539 14.9486 6.11464 12.6227 3.78781C10.3306 1.49653 6.63579 1.46263 4.30292 3.68622L6.68087 3.68698V5.22954H3.49394H1.95141V3.68698V0.5H3.49394L3.49453 2.3352Z", fill: "#8C8C8C" })), It = (e) => /* @__PURE__ */ g.createElement("svg", { width: 15, height: 14, viewBox: "0 0 15 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M13.3496 0L7.41062 5.938L1.47162 0L0.411621 1.06L6.34962 6.999L0.411621 12.938L1.47162 13.999L7.41062 8.059L13.3496 13.999L14.4096 12.938L8.47162 6.999L14.4096 1.06L13.3496 0Z", fill: "#8C8C8C" }));
|
|
352
|
+
function Ot(e) {
|
|
353
|
+
const { title: t, onReset: o, onClose: n } = e, { chatbot: r } = z(), { avatar: c, isResetting: i, resetChannel: a, closeChannel: l } = N(), d = C(
|
|
255
354
|
() => ({
|
|
256
|
-
maxWidth: (
|
|
355
|
+
maxWidth: (r == null ? void 0 : r.contentMaxWidth) ?? "1200px",
|
|
356
|
+
borderBottomColor: r == null ? void 0 : r.borderColor
|
|
257
357
|
}),
|
|
258
|
-
[
|
|
259
|
-
),
|
|
260
|
-
(
|
|
261
|
-
i || (
|
|
358
|
+
[r]
|
|
359
|
+
), h = b(
|
|
360
|
+
(u) => {
|
|
361
|
+
i || (u.stopPropagation(), o == null || o(), a == null || a());
|
|
262
362
|
},
|
|
263
363
|
[i, o, a]
|
|
264
|
-
),
|
|
265
|
-
(
|
|
266
|
-
i || (
|
|
364
|
+
), f = b(
|
|
365
|
+
(u) => {
|
|
366
|
+
i || (u.stopPropagation(), n == null || n(), l == null || l());
|
|
267
367
|
},
|
|
268
|
-
[i, n,
|
|
368
|
+
[i, n, l]
|
|
269
369
|
);
|
|
270
|
-
return /* @__PURE__ */
|
|
271
|
-
/* @__PURE__ */
|
|
272
|
-
/* @__PURE__ */
|
|
273
|
-
/* @__PURE__ */
|
|
370
|
+
return /* @__PURE__ */ s("div", { className: Z.chatbot_header, children: /* @__PURE__ */ p("div", { className: Z.chatbot_header__content, style: d, children: [
|
|
371
|
+
/* @__PURE__ */ p("div", { className: Z.chatbot_header__title, children: [
|
|
372
|
+
/* @__PURE__ */ s(Bt, { avatar: c }),
|
|
373
|
+
/* @__PURE__ */ s("h4", { children: t })
|
|
274
374
|
] }),
|
|
275
|
-
/* @__PURE__ */
|
|
276
|
-
/* @__PURE__ */
|
|
277
|
-
/* @__PURE__ */
|
|
375
|
+
/* @__PURE__ */ p("div", { className: Z.chatbot_header__extra, children: [
|
|
376
|
+
/* @__PURE__ */ s("div", { onClick: h, children: /* @__PURE__ */ s(At, {}) }),
|
|
377
|
+
/* @__PURE__ */ s("div", { onClick: f, children: /* @__PURE__ */ s(It, {}) })
|
|
278
378
|
] })
|
|
279
379
|
] }) });
|
|
280
380
|
}
|
|
281
|
-
const
|
|
282
|
-
chatbot_body:
|
|
283
|
-
chatbot_body__content:
|
|
284
|
-
},
|
|
285
|
-
template_box:
|
|
381
|
+
const Zt = "_chatbot_body_f6sqm_1", Pt = "_chatbot_body__content_f6sqm_5", X = {
|
|
382
|
+
chatbot_body: Zt,
|
|
383
|
+
chatbot_body__content: Pt
|
|
384
|
+
}, Dt = "_template_box_1ozig_1", R = {
|
|
385
|
+
template_box: Dt,
|
|
286
386
|
"template_box--bot": "_template_box--bot_1ozig_7",
|
|
287
387
|
"template_box--horizontal": "_template_box--horizontal_1ozig_7",
|
|
288
388
|
"template_box--vertical": "_template_box--vertical_1ozig_10",
|
|
289
389
|
"template_box--user": "_template_box--user_1ozig_14"
|
|
290
390
|
};
|
|
291
|
-
function
|
|
292
|
-
|
|
391
|
+
function ut(e) {
|
|
392
|
+
var t, o, n = "";
|
|
393
|
+
if (typeof e == "string" || typeof e == "number") n += e;
|
|
394
|
+
else if (typeof e == "object") if (Array.isArray(e)) {
|
|
395
|
+
var r = e.length;
|
|
396
|
+
for (t = 0; t < r; t++) e[t] && (o = ut(e[t])) && (n && (n += " "), n += o);
|
|
397
|
+
} else for (o in e) e[o] && (n && (n += " "), n += o);
|
|
398
|
+
return n;
|
|
399
|
+
}
|
|
400
|
+
function T() {
|
|
401
|
+
for (var e, t, o = 0, n = "", r = arguments.length; o < r; o++) (e = arguments[o]) && (t = ut(e)) && (n && (n += " "), n += t);
|
|
402
|
+
return n;
|
|
403
|
+
}
|
|
404
|
+
function O(e) {
|
|
405
|
+
const { type: t, direction: o = "horizontal", children: n } = e, r = C(() => {
|
|
293
406
|
switch (t) {
|
|
294
407
|
case "user":
|
|
295
|
-
return
|
|
408
|
+
return T(R.template_box, R["template_box--user"]);
|
|
296
409
|
case "bot":
|
|
297
410
|
default:
|
|
298
|
-
return
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
o === "horizontal" ?
|
|
411
|
+
return T(
|
|
412
|
+
R.template_box,
|
|
413
|
+
R["template_box--bot"],
|
|
414
|
+
o === "horizontal" ? R["template_box--horizontal"] : R["template_box--vertical"]
|
|
302
415
|
);
|
|
303
416
|
}
|
|
304
417
|
}, [o, t]);
|
|
305
|
-
return /* @__PURE__ */
|
|
306
|
-
}
|
|
307
|
-
const
|
|
308
|
-
template_box_content:
|
|
309
|
-
content:
|
|
310
|
-
},
|
|
311
|
-
quick_replies_box:
|
|
312
|
-
quick_reply:
|
|
418
|
+
return /* @__PURE__ */ s("div", { className: r, children: n });
|
|
419
|
+
}
|
|
420
|
+
const jt = "_template_box_content_fs2wk_1", qt = "_content_fs2wk_8", Y = {
|
|
421
|
+
template_box_content: jt,
|
|
422
|
+
content: qt
|
|
423
|
+
}, $t = "_quick_replies_box_zoq7y_1", Ft = "_quick_reply_zoq7y_7", J = {
|
|
424
|
+
quick_replies_box: $t,
|
|
425
|
+
quick_reply: Ft
|
|
313
426
|
};
|
|
314
|
-
function
|
|
315
|
-
const { quickReplies: t } = e, { sendMessage: o, isConnecting: n } =
|
|
427
|
+
function Wt(e) {
|
|
428
|
+
const { quickReplies: t } = e, { sendMessage: o, isConnecting: n } = N(), r = b(
|
|
316
429
|
(c) => {
|
|
317
430
|
o == null || o(c);
|
|
318
431
|
},
|
|
319
432
|
[o]
|
|
320
433
|
);
|
|
321
|
-
return t != null && t.length ? /* @__PURE__ */
|
|
434
|
+
return t != null && t.length ? /* @__PURE__ */ s("div", { className: J.quick_replies_box, children: t.map((c) => /* @__PURE__ */ s(
|
|
322
435
|
"button",
|
|
323
436
|
{
|
|
324
|
-
className:
|
|
437
|
+
className: J.quick_reply,
|
|
325
438
|
disabled: n,
|
|
326
|
-
onClick: () =>
|
|
439
|
+
onClick: () => r(c.text),
|
|
327
440
|
children: c.text
|
|
328
441
|
},
|
|
329
442
|
c.text
|
|
330
443
|
)) }) : null;
|
|
331
444
|
}
|
|
332
|
-
function
|
|
445
|
+
function q(e) {
|
|
333
446
|
return e.toLocaleTimeString("zh-TW", {
|
|
334
447
|
timeZone: "Asia/Taipei",
|
|
335
448
|
hour: "2-digit",
|
|
@@ -337,84 +450,38 @@ function O(e) {
|
|
|
337
450
|
hour12: !1
|
|
338
451
|
});
|
|
339
452
|
}
|
|
340
|
-
const
|
|
341
|
-
time:
|
|
453
|
+
const Ut = "_time_rgg92_1", Kt = {
|
|
454
|
+
time: Ut
|
|
342
455
|
};
|
|
343
|
-
function
|
|
456
|
+
function $(e) {
|
|
344
457
|
const { time: t, className: o } = e;
|
|
345
|
-
return t ? /* @__PURE__ */
|
|
458
|
+
return t ? /* @__PURE__ */ s("div", { className: T(Kt.time, o), children: q(t) }) : null;
|
|
346
459
|
}
|
|
347
|
-
function
|
|
460
|
+
function F(e) {
|
|
348
461
|
const { quickReplies: t, time: o, children: n } = e;
|
|
349
|
-
return /* @__PURE__ */
|
|
350
|
-
/* @__PURE__ */
|
|
462
|
+
return /* @__PURE__ */ p("div", { className: Y.template_box_content, children: [
|
|
463
|
+
/* @__PURE__ */ p("div", { className: Y.content, children: [
|
|
351
464
|
n,
|
|
352
|
-
/* @__PURE__ */
|
|
465
|
+
/* @__PURE__ */ s($, { time: o })
|
|
353
466
|
] }),
|
|
354
|
-
!!(t != null && t.length) && /* @__PURE__ */
|
|
467
|
+
!!(t != null && t.length) && /* @__PURE__ */ s(Wt, { quickReplies: t })
|
|
355
468
|
] });
|
|
356
469
|
}
|
|
357
|
-
const
|
|
358
|
-
bot_avatar:
|
|
359
|
-
},
|
|
470
|
+
const Xt = "_bot_avatar_xrs9x_1", Q = {
|
|
471
|
+
bot_avatar: Xt
|
|
472
|
+
}, Yt = (e) => /* @__PURE__ */ g.createElement("svg", { viewBox: "0 0 25 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { d: "M0.40625 12C0.40625 5.37258 5.77883 0 12.4062 0C19.0337 0 24.4062 5.37258 24.4062 12C24.4062 18.6274 19.0337 24 12.4062 24C5.77883 24 0.40625 18.6274 0.40625 12Z", fill: "#585858" }), /* @__PURE__ */ g.createElement("path", { d: "M6.40625 18.75V15C6.40625 14.5875 6.55313 14.2344 6.84688 13.9406C7.14063 13.6469 7.49375 13.5 7.90625 13.5H16.9062C17.3188 13.5 17.6719 13.6469 17.9656 13.9406C18.2594 14.2344 18.4062 14.5875 18.4062 15V18.75H6.40625ZM10.1562 12.75C9.11875 12.75 8.23438 12.3844 7.50312 11.6531C6.77187 10.9219 6.40625 10.0375 6.40625 9C6.40625 7.9625 6.77187 7.07812 7.50312 6.34687C8.23438 5.61562 9.11875 5.25 10.1562 5.25H14.6562C15.6938 5.25 16.5781 5.61562 17.3094 6.34687C18.0406 7.07812 18.4062 7.9625 18.4062 9C18.4062 10.0375 18.0406 10.9219 17.3094 11.6531C16.5781 12.3844 15.6938 12.75 14.6562 12.75H10.1562ZM7.90625 17.25H16.9062V15H7.90625V17.25ZM10.1562 11.25H14.6562C15.2812 11.25 15.8125 11.0312 16.25 10.5938C16.6875 10.1562 16.9062 9.625 16.9062 9C16.9062 8.375 16.6875 7.84375 16.25 7.40625C15.8125 6.96875 15.2812 6.75 14.6562 6.75H10.1562C9.53125 6.75 9 6.96875 8.5625 7.40625C8.125 7.84375 7.90625 8.375 7.90625 9C7.90625 9.625 8.125 10.1562 8.5625 10.5938C9 11.0312 9.53125 11.25 10.1562 11.25ZM10.1562 9.75C10.3688 9.75 10.5469 9.67812 10.6906 9.53438C10.8344 9.39062 10.9062 9.2125 10.9062 9C10.9062 8.7875 10.8344 8.60938 10.6906 8.46562C10.5469 8.32187 10.3688 8.25 10.1562 8.25C9.94375 8.25 9.76562 8.32187 9.62187 8.46562C9.47812 8.60938 9.40625 8.7875 9.40625 9C9.40625 9.2125 9.47812 9.39062 9.62187 9.53438C9.76562 9.67812 9.94375 9.75 10.1562 9.75ZM14.6562 9.75C14.8687 9.75 15.0469 9.67812 15.1906 9.53438C15.3344 9.39062 15.4062 9.2125 15.4062 9C15.4062 8.7875 15.3344 8.60938 15.1906 8.46562C15.0469 8.32187 14.8687 8.25 14.6562 8.25C14.4438 8.25 14.2656 8.32187 14.1219 8.46562C13.9781 8.60938 13.9062 8.7875 13.9062 9C13.9062 9.2125 13.9781 9.39062 14.1219 9.53438C14.2656 9.67812 14.4438 9.75 14.6562 9.75Z", fill: "white" })), P = gt((e) => {
|
|
360
473
|
const { avatar: t } = e;
|
|
361
|
-
return t ? /* @__PURE__ */
|
|
362
|
-
}),
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
function Pt(e) {
|
|
369
|
-
const { children: t, onResize: o } = e, n = A(null);
|
|
370
|
-
return L(() => {
|
|
371
|
-
const s = new ResizeObserver((c) => {
|
|
372
|
-
for (const i of c) {
|
|
373
|
-
const { width: a, height: _ } = i.contentRect;
|
|
374
|
-
o(a, _);
|
|
375
|
-
}
|
|
376
|
-
});
|
|
377
|
-
return n.current && s.observe(n.current), () => {
|
|
378
|
-
s.disconnect();
|
|
379
|
-
};
|
|
380
|
-
}, [n, o]), /* @__PURE__ */ r("div", { ref: n, children: t });
|
|
381
|
-
}
|
|
382
|
-
function at(e) {
|
|
383
|
-
const { isTyping: t, typingText: o } = e, { messageBoxBottomRef: n, avatar: s } = T(), c = g(() => {
|
|
384
|
-
var a;
|
|
385
|
-
(a = n.current) == null || a.scrollIntoView({ behavior: "smooth" });
|
|
386
|
-
}, [n]), i = ft(t, 500);
|
|
387
|
-
return i ? /* @__PURE__ */ m(q, { type: "bot", direction: "horizontal", children: [
|
|
388
|
-
/* @__PURE__ */ r($, { avatar: s }),
|
|
389
|
-
/* @__PURE__ */ r(W, { time: /* @__PURE__ */ new Date(), children: /* @__PURE__ */ r("div", { className: w(k.text, k["text--bot"]), children: /* @__PURE__ */ m(Pt, { onResize: c, children: [
|
|
390
|
-
/* @__PURE__ */ r("span", { children: o ?? "" }),
|
|
391
|
-
i && /* @__PURE__ */ m("span", { className: k["typing-indicator"], children: [
|
|
392
|
-
/* @__PURE__ */ r("div", { className: k.dot }),
|
|
393
|
-
/* @__PURE__ */ r("div", { className: k.dot }),
|
|
394
|
-
/* @__PURE__ */ r("div", { className: k.dot })
|
|
395
|
-
] })
|
|
396
|
-
] }) }) })
|
|
397
|
-
] }) : null;
|
|
398
|
-
}
|
|
399
|
-
function Dt(e) {
|
|
400
|
-
const { placeholder: t } = e, { isConnecting: o, messages: n } = T(), s = y(
|
|
401
|
-
() => Array.from((n == null ? void 0 : n.values()) ?? []).some(
|
|
402
|
-
(c) => c.type === "bot" && c.isTyping
|
|
403
|
-
),
|
|
404
|
-
[n]
|
|
405
|
-
);
|
|
406
|
-
return o && !s ? /* @__PURE__ */ r(at, { isTyping: !0, typingText: t }) : null;
|
|
407
|
-
}
|
|
408
|
-
const Ot = "_card_root_1ygom_1", Ft = "_card_content_1ygom_10", Wt = "_card_title_1ygom_17", Ut = "_card_description_1ygom_23", Jt = "_card_actions_1ygom_37", H = {
|
|
409
|
-
card_root: Ot,
|
|
410
|
-
card_content: Ft,
|
|
411
|
-
card_title: Wt,
|
|
412
|
-
card_description: Ut,
|
|
413
|
-
card_actions: Jt
|
|
474
|
+
return t ? /* @__PURE__ */ s("img", { src: t, alt: "Bot Avatar", className: Q.bot_avatar }) : /* @__PURE__ */ s("div", { className: Q.bot_avatar, children: /* @__PURE__ */ s(Yt, {}) });
|
|
475
|
+
}), Jt = "_card_root_1ygom_1", Qt = "_card_content_1ygom_10", Gt = "_card_title_1ygom_17", te = "_card_description_1ygom_23", ee = "_card_actions_1ygom_37", V = {
|
|
476
|
+
card_root: Jt,
|
|
477
|
+
card_content: Qt,
|
|
478
|
+
card_title: Gt,
|
|
479
|
+
card_description: te,
|
|
480
|
+
card_actions: ee
|
|
414
481
|
};
|
|
415
|
-
function
|
|
482
|
+
function dt(e) {
|
|
416
483
|
var i;
|
|
417
|
-
const { template: t } = e, { sendMessage: o } =
|
|
484
|
+
const { template: t } = e, { sendMessage: o } = N(), n = C(() => (t == null ? void 0 : t.thumbnailImageUrl.replace(/^http:/, "").replace(/^https:/, "")) || "https://via.assets.so/img.jpg?w=200&h=270&tc=white&bg=#eeeeee", [t]), r = C(() => {
|
|
418
485
|
switch (t == null ? void 0 : t.imageAspectRatio) {
|
|
419
486
|
case "square":
|
|
420
487
|
return "1 / 1";
|
|
@@ -422,7 +489,7 @@ function lt(e) {
|
|
|
422
489
|
default:
|
|
423
490
|
return "1.51 / 1";
|
|
424
491
|
}
|
|
425
|
-
}, [t]), c =
|
|
492
|
+
}, [t]), c = b(
|
|
426
493
|
(a) => function() {
|
|
427
494
|
switch (a.type) {
|
|
428
495
|
case "message":
|
|
@@ -435,8 +502,8 @@ function lt(e) {
|
|
|
435
502
|
},
|
|
436
503
|
[o]
|
|
437
504
|
);
|
|
438
|
-
return /* @__PURE__ */
|
|
439
|
-
(t == null ? void 0 : t.thumbnailImageUrl) && /* @__PURE__ */
|
|
505
|
+
return /* @__PURE__ */ p("div", { className: V.card_root, children: [
|
|
506
|
+
(t == null ? void 0 : t.thumbnailImageUrl) && /* @__PURE__ */ s(
|
|
440
507
|
"img",
|
|
441
508
|
{
|
|
442
509
|
alt: t == null ? void 0 : t.title,
|
|
@@ -446,315 +513,423 @@ function lt(e) {
|
|
|
446
513
|
width: "100%",
|
|
447
514
|
maxHeight: "170px",
|
|
448
515
|
objectFit: t == null ? void 0 : t.imageSize,
|
|
449
|
-
aspectRatio:
|
|
516
|
+
aspectRatio: r
|
|
450
517
|
}
|
|
451
518
|
}
|
|
452
519
|
),
|
|
453
|
-
/* @__PURE__ */
|
|
454
|
-
/* @__PURE__ */
|
|
455
|
-
/* @__PURE__ */
|
|
456
|
-
/* @__PURE__ */
|
|
520
|
+
/* @__PURE__ */ p("div", { className: V.card_content, children: [
|
|
521
|
+
/* @__PURE__ */ s("h5", { className: V.card_title, children: t == null ? void 0 : t.title }),
|
|
522
|
+
/* @__PURE__ */ s("div", { className: V.card_description, children: t == null ? void 0 : t.text }),
|
|
523
|
+
/* @__PURE__ */ s("div", { className: V.card_actions, children: (i = t == null ? void 0 : t.buttons) == null ? void 0 : i.map((a, l) => /* @__PURE__ */ s("button", { onClick: c(a.action), children: a.label }, l)) })
|
|
457
524
|
] })
|
|
458
525
|
] });
|
|
459
526
|
}
|
|
460
|
-
function
|
|
461
|
-
const { message: t } = e, { avatar: o } =
|
|
462
|
-
return /* @__PURE__ */
|
|
463
|
-
/* @__PURE__ */
|
|
464
|
-
/* @__PURE__ */
|
|
465
|
-
|
|
527
|
+
function ne(e) {
|
|
528
|
+
const { message: t } = e, { avatar: o } = N(), n = t.message.template;
|
|
529
|
+
return /* @__PURE__ */ p(O, { type: "bot", direction: "horizontal", children: [
|
|
530
|
+
/* @__PURE__ */ s(P, { avatar: o }),
|
|
531
|
+
/* @__PURE__ */ s(
|
|
532
|
+
F,
|
|
466
533
|
{
|
|
467
534
|
time: t.time,
|
|
468
535
|
quickReplies: n == null ? void 0 : n.quickReplies,
|
|
469
|
-
children: /* @__PURE__ */
|
|
536
|
+
children: /* @__PURE__ */ s(dt, { template: n })
|
|
470
537
|
}
|
|
471
538
|
)
|
|
472
539
|
] });
|
|
473
540
|
}
|
|
474
|
-
const
|
|
475
|
-
text:
|
|
476
|
-
"text--user": "_text--
|
|
477
|
-
"text--bot": "_text--
|
|
541
|
+
const oe = "_text_5fknl_1", re = "_dot_5fknl_31", y = {
|
|
542
|
+
text: oe,
|
|
543
|
+
"text--user": "_text--user_5fknl_8",
|
|
544
|
+
"text--bot": "_text--bot_5fknl_14",
|
|
545
|
+
"typing-indicator": "_typing-indicator_5fknl_26",
|
|
546
|
+
dot: re
|
|
478
547
|
};
|
|
479
548
|
function G(e) {
|
|
480
|
-
var
|
|
481
|
-
const { message: t } = e, { avatar: o } =
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
549
|
+
var c;
|
|
550
|
+
const { message: t } = e, { avatar: o } = N(), n = z(), r = C(() => {
|
|
551
|
+
var i, a, l, d;
|
|
552
|
+
switch (t.type) {
|
|
553
|
+
case "user":
|
|
554
|
+
return {
|
|
555
|
+
color: (i = n == null ? void 0 : n.userMessage) == null ? void 0 : i.color,
|
|
556
|
+
backgroundColor: (a = n == null ? void 0 : n.userMessage) == null ? void 0 : a.backgroundColor
|
|
557
|
+
};
|
|
558
|
+
case "bot":
|
|
559
|
+
return {
|
|
560
|
+
color: (l = n == null ? void 0 : n.botMessage) == null ? void 0 : l.color,
|
|
561
|
+
backgroundColor: (d = n == null ? void 0 : n.botMessage) == null ? void 0 : d.backgroundColor
|
|
562
|
+
};
|
|
563
|
+
default:
|
|
564
|
+
return {};
|
|
565
|
+
}
|
|
566
|
+
}, [t, n]);
|
|
567
|
+
return t.type === "error" ? null : t.type === "user" ? /* @__PURE__ */ p(O, { type: "user", direction: "horizontal", children: [
|
|
568
|
+
/* @__PURE__ */ s(
|
|
569
|
+
"div",
|
|
570
|
+
{
|
|
571
|
+
className: T(y.text, y["text--user"]),
|
|
572
|
+
style: r,
|
|
573
|
+
children: t.text
|
|
574
|
+
}
|
|
575
|
+
),
|
|
576
|
+
/* @__PURE__ */ s($, { time: t.time })
|
|
577
|
+
] }) : /* @__PURE__ */ p(O, { type: "bot", direction: "horizontal", children: [
|
|
578
|
+
/* @__PURE__ */ s(P, { avatar: o }),
|
|
579
|
+
/* @__PURE__ */ s(
|
|
580
|
+
F,
|
|
489
581
|
{
|
|
490
582
|
time: t.time,
|
|
491
|
-
quickReplies: (
|
|
492
|
-
children: /* @__PURE__ */
|
|
583
|
+
quickReplies: (c = t.message.template) == null ? void 0 : c.quickReplies,
|
|
584
|
+
children: /* @__PURE__ */ s(
|
|
585
|
+
"div",
|
|
586
|
+
{
|
|
587
|
+
className: T(y.text, y["text--bot"]),
|
|
588
|
+
style: r,
|
|
589
|
+
children: t.message.text
|
|
590
|
+
}
|
|
591
|
+
)
|
|
493
592
|
}
|
|
494
593
|
)
|
|
495
594
|
] });
|
|
496
595
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
596
|
+
function _t(e) {
|
|
597
|
+
const { isTyping: t, typingText: o } = e, { messageBoxBottomRef: n, avatar: r } = N(), c = z(), i = M(null), a = b(() => {
|
|
598
|
+
var h;
|
|
599
|
+
(h = n.current) == null || h.scrollIntoView({ behavior: "smooth" });
|
|
600
|
+
}, [n]);
|
|
601
|
+
kt({ ref: i, onResize: a });
|
|
602
|
+
const l = wt(t, 500), d = C(
|
|
603
|
+
() => {
|
|
604
|
+
var h, f;
|
|
605
|
+
return {
|
|
606
|
+
color: (h = c == null ? void 0 : c.botMessage) == null ? void 0 : h.color,
|
|
607
|
+
backgroundColor: (f = c == null ? void 0 : c.botMessage) == null ? void 0 : f.backgroundColor
|
|
608
|
+
};
|
|
609
|
+
},
|
|
610
|
+
[c]
|
|
611
|
+
);
|
|
612
|
+
return l ? /* @__PURE__ */ p(O, { type: "bot", direction: "horizontal", children: [
|
|
613
|
+
/* @__PURE__ */ s(P, { avatar: r }),
|
|
614
|
+
/* @__PURE__ */ s(F, { time: /* @__PURE__ */ new Date(), children: /* @__PURE__ */ s(
|
|
615
|
+
"div",
|
|
616
|
+
{
|
|
617
|
+
ref: i,
|
|
618
|
+
className: T(y.text, y["text--bot"]),
|
|
619
|
+
style: d,
|
|
620
|
+
children: /* @__PURE__ */ p("span", { children: [
|
|
621
|
+
o ?? "",
|
|
622
|
+
l && /* @__PURE__ */ p("span", { className: y["typing-indicator"], children: [
|
|
623
|
+
/* @__PURE__ */ s("div", { className: y.dot }),
|
|
624
|
+
/* @__PURE__ */ s("div", { className: y.dot }),
|
|
625
|
+
/* @__PURE__ */ s("div", { className: y.dot })
|
|
626
|
+
] })
|
|
627
|
+
] })
|
|
628
|
+
}
|
|
629
|
+
) })
|
|
630
|
+
] }) : null;
|
|
631
|
+
}
|
|
632
|
+
function se(e) {
|
|
633
|
+
const { placeholder: t } = e, { isConnecting: o, messages: n } = N(), r = C(
|
|
634
|
+
() => Array.from((n == null ? void 0 : n.values()) ?? []).some(
|
|
635
|
+
(c) => c.type === "bot" && c.isTyping
|
|
636
|
+
),
|
|
637
|
+
[n]
|
|
638
|
+
);
|
|
639
|
+
return o && !r ? /* @__PURE__ */ s(_t, { isTyping: !0, typingText: t }) : null;
|
|
640
|
+
}
|
|
641
|
+
const ce = "_carousel_root_sv1hc_1", ie = "_carousel_time_sv1hc_12", tt = {
|
|
642
|
+
carousel_root: ce,
|
|
643
|
+
carousel_time: ie
|
|
500
644
|
};
|
|
501
|
-
function
|
|
502
|
-
var
|
|
503
|
-
const { message: t } = e, { avatar: o } =
|
|
504
|
-
return /* @__PURE__ */
|
|
505
|
-
/* @__PURE__ */
|
|
506
|
-
/* @__PURE__ */
|
|
507
|
-
/* @__PURE__ */
|
|
645
|
+
function ae(e) {
|
|
646
|
+
var r;
|
|
647
|
+
const { message: t } = e, { avatar: o } = N(), n = t.message.template;
|
|
648
|
+
return /* @__PURE__ */ p(O, { type: "bot", direction: "vertical", children: [
|
|
649
|
+
/* @__PURE__ */ s(P, { avatar: o }),
|
|
650
|
+
/* @__PURE__ */ s("div", { className: tt.carousel_root, children: (r = n.columns) == null ? void 0 : r.map((c, i) => /* @__PURE__ */ s(dt, { template: c }, i)) }),
|
|
651
|
+
/* @__PURE__ */ s($, { className: tt.carousel_time, time: t.time })
|
|
508
652
|
] });
|
|
509
653
|
}
|
|
510
|
-
const
|
|
511
|
-
hint_root:
|
|
512
|
-
hint_root__error:
|
|
513
|
-
time:
|
|
654
|
+
const le = "_hint_root_k5fud_1", ue = "_hint_root__error_k5fud_13", de = "_time_k5fud_17", B = {
|
|
655
|
+
hint_root: le,
|
|
656
|
+
hint_root__error: ue,
|
|
657
|
+
time: de
|
|
514
658
|
};
|
|
515
|
-
function
|
|
659
|
+
function et(e) {
|
|
516
660
|
const { message: t } = e;
|
|
517
661
|
if (t.type === "user") return null;
|
|
518
662
|
if (t.type === "error")
|
|
519
|
-
return /* @__PURE__ */
|
|
520
|
-
/* @__PURE__ */
|
|
521
|
-
/* @__PURE__ */
|
|
663
|
+
return /* @__PURE__ */ p("div", { className: T(B.hint_root, B.hint_root__error), children: [
|
|
664
|
+
/* @__PURE__ */ s("div", { className: B.time, children: q(t.time) }),
|
|
665
|
+
/* @__PURE__ */ s("span", { children: "Unexpected error" })
|
|
522
666
|
] });
|
|
523
667
|
const o = t.message.template;
|
|
524
|
-
return o.type !==
|
|
525
|
-
/* @__PURE__ */
|
|
668
|
+
return o.type !== A.HINT ? null : /* @__PURE__ */ p("div", { className: B.hint_root, children: [
|
|
669
|
+
/* @__PURE__ */ s("div", { className: B.time, children: q(t.time) }),
|
|
526
670
|
o.text
|
|
527
671
|
] });
|
|
528
672
|
}
|
|
529
|
-
function
|
|
673
|
+
function _e(e) {
|
|
530
674
|
var o;
|
|
531
675
|
const { message: t } = e;
|
|
532
676
|
if (t.type === "user")
|
|
533
|
-
return /* @__PURE__ */
|
|
677
|
+
return /* @__PURE__ */ s(G, { message: t });
|
|
534
678
|
if (t.type === "error")
|
|
535
|
-
return /* @__PURE__ */
|
|
679
|
+
return /* @__PURE__ */ s(et, { message: t });
|
|
536
680
|
if (t.isTyping)
|
|
537
|
-
return /* @__PURE__ */
|
|
538
|
-
|
|
681
|
+
return /* @__PURE__ */ s(
|
|
682
|
+
_t,
|
|
539
683
|
{
|
|
540
684
|
isTyping: t.isTyping,
|
|
541
685
|
typingText: t.typingText
|
|
542
686
|
}
|
|
543
687
|
);
|
|
544
688
|
switch ((o = t.message.template) == null ? void 0 : o.type) {
|
|
545
|
-
case
|
|
546
|
-
return /* @__PURE__ */
|
|
547
|
-
case
|
|
548
|
-
return /* @__PURE__ */
|
|
549
|
-
case
|
|
550
|
-
return /* @__PURE__ */
|
|
551
|
-
case
|
|
552
|
-
return /* @__PURE__ */
|
|
689
|
+
case A.TEXT:
|
|
690
|
+
return /* @__PURE__ */ s(G, { message: t });
|
|
691
|
+
case A.HINT:
|
|
692
|
+
return /* @__PURE__ */ s(et, { message: t });
|
|
693
|
+
case A.BUTTON:
|
|
694
|
+
return /* @__PURE__ */ s(ne, { message: t });
|
|
695
|
+
case A.CAROUSEL:
|
|
696
|
+
return /* @__PURE__ */ s(ae, { message: t });
|
|
553
697
|
default:
|
|
554
|
-
return /* @__PURE__ */
|
|
698
|
+
return /* @__PURE__ */ s("div", {});
|
|
555
699
|
}
|
|
556
700
|
}
|
|
557
|
-
function
|
|
558
|
-
const { chatbot: e } =
|
|
559
|
-
|
|
701
|
+
function he() {
|
|
702
|
+
const { chatbot: e } = z(), { messages: t, messageBoxBottomRef: o, botTypingPlaceholder: n } = N();
|
|
703
|
+
w(() => {
|
|
560
704
|
var c;
|
|
561
705
|
(c = o.current) == null || c.scrollIntoView({ behavior: "smooth" });
|
|
562
706
|
}, [t, o]);
|
|
563
|
-
const
|
|
707
|
+
const r = C(
|
|
564
708
|
() => ({
|
|
565
709
|
maxWidth: (e == null ? void 0 : e.contentMaxWidth) ?? "1200px"
|
|
566
710
|
}),
|
|
567
711
|
[e]
|
|
568
712
|
);
|
|
569
|
-
return /* @__PURE__ */
|
|
570
|
-
Array.from((t == null ? void 0 : t.values()) ?? []).map((c) => /* @__PURE__ */
|
|
571
|
-
|
|
713
|
+
return /* @__PURE__ */ s("div", { className: X.chatbot_body, children: /* @__PURE__ */ p("div", { className: X.chatbot_body__content, style: r, children: [
|
|
714
|
+
Array.from((t == null ? void 0 : t.values()) ?? []).map((c) => /* @__PURE__ */ s(
|
|
715
|
+
_e,
|
|
572
716
|
{
|
|
573
717
|
message: c
|
|
574
718
|
},
|
|
575
719
|
c.messageId
|
|
576
720
|
)),
|
|
577
|
-
/* @__PURE__ */
|
|
578
|
-
|
|
721
|
+
/* @__PURE__ */ s(
|
|
722
|
+
se,
|
|
579
723
|
{
|
|
580
724
|
placeholder: n ?? "正在輸入訊息"
|
|
581
725
|
}
|
|
582
726
|
),
|
|
583
|
-
/* @__PURE__ */
|
|
727
|
+
/* @__PURE__ */ s("div", { ref: o })
|
|
584
728
|
] }) });
|
|
585
729
|
}
|
|
586
|
-
const
|
|
587
|
-
chatbot_footer:
|
|
588
|
-
chatbot_footer__content:
|
|
589
|
-
chatbot_textarea:
|
|
590
|
-
chatbot_submit_button:
|
|
591
|
-
chatbot_submit_button__disabled:
|
|
592
|
-
},
|
|
593
|
-
function
|
|
594
|
-
const { setValue: t, className: o } = e, [n,
|
|
595
|
-
|
|
596
|
-
const
|
|
597
|
-
if (!
|
|
598
|
-
const
|
|
599
|
-
|
|
600
|
-
for (let
|
|
601
|
-
|
|
602
|
-
},
|
|
603
|
-
alert(`語音識別錯誤: ${JSON.stringify(
|
|
604
|
-
},
|
|
605
|
-
|
|
606
|
-
}, c.current =
|
|
730
|
+
const ge = "_chatbot_footer_1slg7_1", fe = "_chatbot_footer__content_1slg7_4", me = "_chatbot_textarea_1slg7_14", be = "_chatbot_submit_button_1slg7_29", pe = "_chatbot_submit_button__disabled_1slg7_54", k = {
|
|
731
|
+
chatbot_footer: ge,
|
|
732
|
+
chatbot_footer__content: fe,
|
|
733
|
+
chatbot_textarea: me,
|
|
734
|
+
chatbot_submit_button: be,
|
|
735
|
+
chatbot_submit_button__disabled: pe
|
|
736
|
+
}, ve = (e) => /* @__PURE__ */ g.createElement("svg", { width: 15, height: 12, viewBox: "0 0 15 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { d: "M0.823242 11.6953V0.945312L14.3328 6.32031L0.823242 11.6953ZM1.90658 10.0911L11.3649 6.32031L1.90658 2.54948V4.98052L5.92574 6.32031L1.90658 7.6601V10.0911Z", fill: "white" })), Ce = (e) => /* @__PURE__ */ g.createElement("svg", { width: 11, height: 16, viewBox: "0 0 11 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("path", { d: "M5.40658 9.90397C4.82435 9.90397 4.33158 9.7023 3.92824 9.29897C3.52491 8.89564 3.32324 8.40286 3.32324 7.82064V2.82064C3.32324 2.23842 3.52491 1.74564 3.92824 1.3423C4.33158 0.938971 4.82435 0.737305 5.40658 0.737305C5.9888 0.737305 6.48158 0.938971 6.88491 1.3423C7.28824 1.74564 7.48991 2.23842 7.48991 2.82064V7.82064C7.48991 8.40286 7.28824 8.89564 6.88491 9.29897C6.48158 9.7023 5.9888 9.90397 5.40658 9.90397ZM4.86491 15.1123V12.8654C3.56213 12.7208 2.47949 12.1724 1.61699 11.2202C0.754492 10.2679 0.323242 9.13467 0.323242 7.82064H1.40658C1.40658 8.92731 1.79706 9.87064 2.57803 10.6506C3.35887 11.4306 4.30331 11.8206 5.41137 11.8206C6.51928 11.8206 7.46213 11.4306 8.23991 10.6506C9.01769 9.87064 9.40658 8.92731 9.40658 7.82064H10.4899C10.4899 9.13467 10.0587 10.2679 9.19616 11.2202C8.33366 12.1724 7.25102 12.7208 5.94824 12.8654V15.1123H4.86491ZM5.40658 8.82064C5.68991 8.82064 5.92741 8.7248 6.11908 8.53314C6.31074 8.34147 6.40658 8.10397 6.40658 7.82064V2.82064C6.40658 2.5373 6.31074 2.2998 6.11908 2.10814C5.92741 1.91647 5.68991 1.82064 5.40658 1.82064C5.12324 1.82064 4.88574 1.91647 4.69408 2.10814C4.50241 2.2998 4.40658 2.5373 4.40658 2.82064V7.82064C4.40658 8.10397 4.50241 8.34147 4.69408 8.53314C4.88574 8.7248 5.12324 8.82064 5.40658 8.82064Z", fill: "white" })), we = (e) => /* @__PURE__ */ g.createElement("svg", { width: 40, height: 40, viewBox: "0 0 40 40", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ g.createElement("circle", { cx: 20, cy: 20, r: 18, fill: "#D04444" }), /* @__PURE__ */ g.createElement("rect", { x: 12, y: 12, width: 16, height: 16, fill: "#FFFFFF", rx: 2, ry: 2 }));
|
|
737
|
+
function xe(e) {
|
|
738
|
+
const { setValue: t, className: o } = e, [n, r] = x(!1), c = M(null);
|
|
739
|
+
w(() => {
|
|
740
|
+
const u = window.SpeechRecognition || window.webkitSpeechRecognition;
|
|
741
|
+
if (!u) return;
|
|
742
|
+
const _ = new u();
|
|
743
|
+
_.lang = "zh-TW", _.continuous = !0, _.interimResults = !0, _.onresult = (m) => {
|
|
744
|
+
for (let v = m.resultIndex; v < m.results.length; v++)
|
|
745
|
+
m.results[v].isFinal && t((E) => E + m.results[v][0].transcript);
|
|
746
|
+
}, _.onerror = (m) => {
|
|
747
|
+
alert(`語音識別錯誤: ${JSON.stringify(m.error)}`);
|
|
748
|
+
}, _.onend = () => {
|
|
749
|
+
r(!1);
|
|
750
|
+
}, c.current = _;
|
|
607
751
|
}, [t]);
|
|
608
|
-
const i =
|
|
752
|
+
const i = b(() => {
|
|
609
753
|
if (!c.current) {
|
|
610
754
|
alert("無法開始辨識: 語音識別器未初始化,請檢查是否有授權使用麥克風");
|
|
611
755
|
return;
|
|
612
756
|
}
|
|
613
757
|
try {
|
|
614
|
-
c.current.start(),
|
|
615
|
-
} catch (
|
|
616
|
-
alert(`無法開始辨識: ${JSON.stringify(
|
|
758
|
+
c.current.start(), r(!0);
|
|
759
|
+
} catch (u) {
|
|
760
|
+
alert(`無法開始辨識: ${JSON.stringify(u)}`);
|
|
617
761
|
}
|
|
618
|
-
}, []), a =
|
|
619
|
-
c.current && (c.current.stop(),
|
|
620
|
-
}, []),
|
|
621
|
-
(
|
|
622
|
-
n || (
|
|
762
|
+
}, []), a = b(() => {
|
|
763
|
+
c.current && (c.current.stop(), r(!1));
|
|
764
|
+
}, []), l = b(
|
|
765
|
+
(u) => {
|
|
766
|
+
n || (u.preventDefault(), i());
|
|
623
767
|
},
|
|
624
768
|
[n, i]
|
|
625
|
-
),
|
|
626
|
-
(
|
|
627
|
-
n && (
|
|
769
|
+
), d = b(
|
|
770
|
+
(u) => {
|
|
771
|
+
n && (u.preventDefault(), a());
|
|
628
772
|
},
|
|
629
773
|
[n, a]
|
|
630
|
-
),
|
|
631
|
-
(
|
|
632
|
-
n || (
|
|
774
|
+
), h = b(
|
|
775
|
+
(u) => {
|
|
776
|
+
n || (u.preventDefault(), i());
|
|
633
777
|
},
|
|
634
778
|
[n, i]
|
|
635
|
-
),
|
|
636
|
-
(
|
|
637
|
-
n && (
|
|
779
|
+
), f = b(
|
|
780
|
+
(u) => {
|
|
781
|
+
n && (u.preventDefault(), a());
|
|
638
782
|
},
|
|
639
783
|
[n, a]
|
|
640
784
|
);
|
|
641
|
-
return /* @__PURE__ */
|
|
785
|
+
return /* @__PURE__ */ s(
|
|
642
786
|
"div",
|
|
643
787
|
{
|
|
644
788
|
className: o,
|
|
645
|
-
onMouseDown:
|
|
646
|
-
onMouseUp:
|
|
647
|
-
onTouchStart:
|
|
648
|
-
onTouchEnd:
|
|
649
|
-
children: n ? /* @__PURE__ */
|
|
789
|
+
onMouseDown: l,
|
|
790
|
+
onMouseUp: d,
|
|
791
|
+
onTouchStart: h,
|
|
792
|
+
onTouchEnd: f,
|
|
793
|
+
children: n ? /* @__PURE__ */ s(we, {}) : /* @__PURE__ */ s(Ce, {})
|
|
650
794
|
}
|
|
651
795
|
);
|
|
652
796
|
}
|
|
653
|
-
function
|
|
654
|
-
const { sendMessage: e, isConnecting: t } =
|
|
797
|
+
function ye() {
|
|
798
|
+
const { sendMessage: e, isConnecting: t } = N(), { chatbot: o } = z(), [n, r] = x(""), [c, i] = x(!1), a = M(null), l = C(
|
|
799
|
+
() => t || !n.trim(),
|
|
800
|
+
[t, n]
|
|
801
|
+
), d = C(
|
|
655
802
|
() => ({
|
|
656
|
-
maxWidth: (o == null ? void 0 : o.contentMaxWidth) ?? "1200px"
|
|
803
|
+
maxWidth: (o == null ? void 0 : o.contentMaxWidth) ?? "1200px",
|
|
804
|
+
borderTopColor: o == null ? void 0 : o.borderColor
|
|
657
805
|
}),
|
|
658
806
|
[o]
|
|
659
|
-
),
|
|
660
|
-
(
|
|
661
|
-
const
|
|
662
|
-
|
|
807
|
+
), h = b(
|
|
808
|
+
(_) => {
|
|
809
|
+
const m = _.target, v = m.value;
|
|
810
|
+
m.style.height = "36px", v && (m.style.height = `${m.scrollHeight}px`), r(_.target.value);
|
|
663
811
|
},
|
|
664
812
|
[]
|
|
665
|
-
),
|
|
666
|
-
!c && !t && (e == null || e(n),
|
|
667
|
-
}, [c, t, e, n]),
|
|
668
|
-
(
|
|
669
|
-
if (
|
|
670
|
-
e == null || e(n),
|
|
671
|
-
const
|
|
672
|
-
|
|
813
|
+
), f = b(() => {
|
|
814
|
+
!c && !t && (e == null || e(n), r(""), a.current && (a.current.style.height = "36px"));
|
|
815
|
+
}, [c, t, e, n]), u = b(
|
|
816
|
+
(_) => {
|
|
817
|
+
if (_.key === "Enter" && !c && !t && n.trim()) {
|
|
818
|
+
e == null || e(n), r("");
|
|
819
|
+
const m = _.target;
|
|
820
|
+
m.style.height = "36px";
|
|
673
821
|
}
|
|
674
822
|
},
|
|
675
823
|
[c, t, e, n]
|
|
676
824
|
);
|
|
677
|
-
return /* @__PURE__ */
|
|
678
|
-
/* @__PURE__ */
|
|
825
|
+
return /* @__PURE__ */ s("div", { className: k.chatbot_footer, children: /* @__PURE__ */ p("div", { className: k.chatbot_footer__content, style: d, children: [
|
|
826
|
+
/* @__PURE__ */ s(
|
|
679
827
|
"textarea",
|
|
680
828
|
{
|
|
681
829
|
ref: a,
|
|
682
|
-
className:
|
|
830
|
+
className: k.chatbot_textarea,
|
|
683
831
|
disabled: t,
|
|
684
832
|
cols: 40,
|
|
685
833
|
value: n,
|
|
686
834
|
placeholder: "Enter message",
|
|
687
|
-
onChange:
|
|
688
|
-
onKeyDown:
|
|
835
|
+
onChange: h,
|
|
836
|
+
onKeyDown: u,
|
|
689
837
|
onCompositionStart: () => i(!0),
|
|
690
838
|
onCompositionEnd: () => i(!1)
|
|
691
839
|
}
|
|
692
840
|
),
|
|
693
|
-
n ? /* @__PURE__ */
|
|
841
|
+
n ? /* @__PURE__ */ s(
|
|
694
842
|
"button",
|
|
695
843
|
{
|
|
696
|
-
className:
|
|
697
|
-
|
|
698
|
-
|
|
844
|
+
className: T(
|
|
845
|
+
k.chatbot_submit_button,
|
|
846
|
+
l && k.chatbot_submit_button__disabled
|
|
699
847
|
),
|
|
700
|
-
disabled:
|
|
701
|
-
onClick:
|
|
702
|
-
children: /* @__PURE__ */
|
|
848
|
+
disabled: l,
|
|
849
|
+
onClick: f,
|
|
850
|
+
children: /* @__PURE__ */ s(ve, {})
|
|
703
851
|
}
|
|
704
|
-
) : /* @__PURE__ */
|
|
705
|
-
|
|
852
|
+
) : /* @__PURE__ */ s(
|
|
853
|
+
xe,
|
|
706
854
|
{
|
|
707
|
-
setValue:
|
|
708
|
-
className:
|
|
709
|
-
|
|
710
|
-
t &&
|
|
855
|
+
setValue: r,
|
|
856
|
+
className: T(
|
|
857
|
+
k.chatbot_submit_button,
|
|
858
|
+
t && k.chatbot_submit_button__disabled
|
|
711
859
|
)
|
|
712
860
|
}
|
|
713
861
|
)
|
|
714
862
|
] }) });
|
|
715
863
|
}
|
|
716
|
-
const
|
|
717
|
-
chatbot_root:
|
|
718
|
-
|
|
864
|
+
const Te = "_chatbot_root_1tnjj_1", Ne = "_full_screen_1tnjj_121", Ee = "_chatbot_container_1tnjj_129", Le = "_screen_keyboard_open_1tnjj_134", I = {
|
|
865
|
+
chatbot_root: Te,
|
|
866
|
+
full_screen: Ne,
|
|
867
|
+
chatbot_container: Ee,
|
|
868
|
+
screen_keyboard_open: Le
|
|
719
869
|
};
|
|
720
|
-
function
|
|
870
|
+
function ke(e) {
|
|
871
|
+
const { children: t } = e, o = M(null);
|
|
872
|
+
Et(o), Nt();
|
|
873
|
+
const [, n] = yt() ?? [], r = Tt();
|
|
874
|
+
return /* @__PURE__ */ s("div", { className: I.full_screen, children: /* @__PURE__ */ s(
|
|
875
|
+
"div",
|
|
876
|
+
{
|
|
877
|
+
ref: o,
|
|
878
|
+
className: T(
|
|
879
|
+
I.chatbot_container,
|
|
880
|
+
r && I.screen_keyboard_open
|
|
881
|
+
),
|
|
882
|
+
style: r ? { height: n } : void 0,
|
|
883
|
+
children: t
|
|
884
|
+
}
|
|
885
|
+
) });
|
|
886
|
+
}
|
|
887
|
+
function Me(e) {
|
|
888
|
+
const { fullScreen: t, children: o } = e, n = M(null);
|
|
889
|
+
Lt(n);
|
|
890
|
+
const r = z();
|
|
891
|
+
return /* @__PURE__ */ s("div", { ref: n, className: I.chatbot_root, children: t ? /* @__PURE__ */ s(ke, { children: o }) : /* @__PURE__ */ s("div", { className: I.chatbot_container, style: r == null ? void 0 : r.chatbot, children: o }) });
|
|
892
|
+
}
|
|
893
|
+
function He(e) {
|
|
721
894
|
const {
|
|
722
895
|
title: t,
|
|
723
896
|
theme: o,
|
|
724
897
|
config: n,
|
|
725
|
-
customChannelId:
|
|
898
|
+
customChannelId: r,
|
|
726
899
|
initMessages: c,
|
|
727
900
|
debugMode: i = !1,
|
|
728
901
|
fullScreen: a = !1,
|
|
729
|
-
avatar:
|
|
730
|
-
botTypingPlaceholder:
|
|
731
|
-
onReset:
|
|
732
|
-
onClose:
|
|
902
|
+
avatar: l,
|
|
903
|
+
botTypingPlaceholder: d,
|
|
904
|
+
onReset: h,
|
|
905
|
+
onClose: f
|
|
733
906
|
} = e;
|
|
734
|
-
return /* @__PURE__ */
|
|
735
|
-
|
|
907
|
+
return /* @__PURE__ */ s(pt, { theme: o, children: /* @__PURE__ */ s(
|
|
908
|
+
Mt,
|
|
736
909
|
{
|
|
737
|
-
|
|
738
|
-
et.chatbot_root,
|
|
739
|
-
a && et.chatbot_root__fullScreen
|
|
740
|
-
),
|
|
741
|
-
avatar: _,
|
|
910
|
+
avatar: l,
|
|
742
911
|
config: n,
|
|
743
|
-
customChannelId:
|
|
912
|
+
customChannelId: r,
|
|
744
913
|
initMessages: c,
|
|
745
|
-
botTypingPlaceholder:
|
|
914
|
+
botTypingPlaceholder: d,
|
|
746
915
|
options: { showDebugMessage: i },
|
|
747
|
-
children: [
|
|
748
|
-
/* @__PURE__ */
|
|
749
|
-
/* @__PURE__ */
|
|
750
|
-
/* @__PURE__ */
|
|
751
|
-
]
|
|
916
|
+
children: /* @__PURE__ */ p(Me, { fullScreen: a, children: [
|
|
917
|
+
/* @__PURE__ */ s(Ot, { title: t, onReset: h, onClose: f }),
|
|
918
|
+
/* @__PURE__ */ s(he, {}),
|
|
919
|
+
/* @__PURE__ */ s(ye, {})
|
|
920
|
+
] })
|
|
752
921
|
}
|
|
753
922
|
) });
|
|
754
923
|
}
|
|
755
924
|
export {
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
925
|
+
He as Chatbot,
|
|
926
|
+
vt as useAsgardServiceClient,
|
|
927
|
+
Ct as useChannel,
|
|
928
|
+
wt as useDebounce,
|
|
929
|
+
Tt as useIsOnScreenKeyboardOpen,
|
|
930
|
+
Nt as useOnScreenKeyboardScrollFix,
|
|
931
|
+
Et as usePreventOverScrolling,
|
|
932
|
+
kt as useResizeObserver,
|
|
933
|
+
Lt as useUpdateVh,
|
|
934
|
+
yt as useViewportSize
|
|
760
935
|
};
|