@_solaris/messenger-widget 0.3.3 → 0.3.5
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/messenger.cjs +5 -5
- package/dist/messenger.embed.js +25 -25
- package/dist/messenger.js +389 -366
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/messenger.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { reactive as Se, openBlock as l, createElementBlock as c, createVNode as K, Transition as xe, withCtx as Te, withKeys as ae, withModifiers as
|
|
1
|
+
import { reactive as Se, openBlock as l, createElementBlock as c, createVNode as K, Transition as xe, withCtx as Te, withKeys as ae, withModifiers as Z, createElementVNode as i, toDisplayString as k, createCommentVNode as b, normalizeStyle as G, normalizeClass as E, Fragment as M, renderList as D, resolveComponent as B, createBlock as L, createTextVNode as te, resolveDynamicComponent as Me, renderSlot as Oe, withDirectives as q, vModelText as X, vModelCheckbox as Ie, vModelSelect as Be, createStaticVNode as ue, markRaw as me } from "vue";
|
|
2
2
|
const Ee = [
|
|
3
3
|
"connected",
|
|
4
4
|
"message",
|
|
@@ -9,7 +9,7 @@ const Ee = [
|
|
|
9
9
|
], fe = "/client", $e = 5 * 60 * 1e3, Le = 10 * 60 * 1e3, Re = 5 * 60 * 1e3;
|
|
10
10
|
function Fe(t) {
|
|
11
11
|
const e = {
|
|
12
|
-
baseUrl:
|
|
12
|
+
baseUrl: De(t.baseUrl || ""),
|
|
13
13
|
widgetId: t.widgetId || "",
|
|
14
14
|
userId: t.userId || "",
|
|
15
15
|
userHash: t.userHash || "",
|
|
@@ -36,9 +36,9 @@ function Fe(t) {
|
|
|
36
36
|
}
|
|
37
37
|
function o(h, f) {
|
|
38
38
|
const p = e.listeners.get(h);
|
|
39
|
-
p && p.forEach((
|
|
39
|
+
p && p.forEach((v) => {
|
|
40
40
|
try {
|
|
41
|
-
|
|
41
|
+
v(f);
|
|
42
42
|
} catch (T) {
|
|
43
43
|
console.error("[transport] listener", h, T);
|
|
44
44
|
}
|
|
@@ -55,18 +55,18 @@ function Fe(t) {
|
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
async function a(h, f, p) {
|
|
58
|
-
const
|
|
58
|
+
const v = await fetch(`${e.baseUrl}${fe}${f}`, {
|
|
59
59
|
method: h,
|
|
60
60
|
headers: { "Content-Type": "application/json", ...s() },
|
|
61
61
|
body: p !== void 0 ? JSON.stringify(p) : void 0
|
|
62
62
|
});
|
|
63
|
-
if (!
|
|
64
|
-
const T = await d(
|
|
65
|
-
`HTTP ${
|
|
63
|
+
if (!v.ok) {
|
|
64
|
+
const T = await d(v), O = new Error(
|
|
65
|
+
`HTTP ${v.status} ${h} ${f} :: ${(T == null ? void 0 : T.error) || v.statusText}`
|
|
66
66
|
);
|
|
67
|
-
throw O.status =
|
|
67
|
+
throw O.status = v.status, O.body = T, O;
|
|
68
68
|
}
|
|
69
|
-
return
|
|
69
|
+
return v.status === 204 ? null : v.json();
|
|
70
70
|
}
|
|
71
71
|
async function d(h) {
|
|
72
72
|
try {
|
|
@@ -75,13 +75,13 @@ function Fe(t) {
|
|
|
75
75
|
return null;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
async function
|
|
78
|
+
async function g() {
|
|
79
79
|
const [h, f] = await Promise.all([
|
|
80
80
|
// Public — no HMAC required.
|
|
81
81
|
fetch(`${e.baseUrl}/widgets/${encodeURIComponent(e.widgetId)}/config`).then(async (p) => {
|
|
82
82
|
if (!p.ok) {
|
|
83
|
-
const
|
|
84
|
-
throw new Error(`HTTP ${p.status} GET /widgets/:id/config :: ${(
|
|
83
|
+
const v = await d(p);
|
|
84
|
+
throw new Error(`HTTP ${p.status} GET /widgets/:id/config :: ${(v == null ? void 0 : v.error) || p.statusText}`);
|
|
85
85
|
}
|
|
86
86
|
return p.json();
|
|
87
87
|
}),
|
|
@@ -120,10 +120,10 @@ function Fe(t) {
|
|
|
120
120
|
async function x(h, f = {}) {
|
|
121
121
|
const p = new URLSearchParams();
|
|
122
122
|
f.before && p.set("before", f.before), f.since && p.set("since", f.since), f.limit && p.set("limit", String(f.limit));
|
|
123
|
-
const
|
|
123
|
+
const v = p.toString() ? `?${p.toString()}` : "";
|
|
124
124
|
return a(
|
|
125
125
|
"GET",
|
|
126
|
-
`/conversations/${encodeURIComponent(h)}/messages${
|
|
126
|
+
`/conversations/${encodeURIComponent(h)}/messages${v}`
|
|
127
127
|
);
|
|
128
128
|
}
|
|
129
129
|
async function j(h, f) {
|
|
@@ -152,11 +152,11 @@ function Fe(t) {
|
|
|
152
152
|
const f = (
|
|
153
153
|
/** @type {File} */
|
|
154
154
|
h.name || "attachment"
|
|
155
|
-
), p = h.type || "application/octet-stream",
|
|
155
|
+
), p = h.type || "application/octet-stream", v = h.size || 0, T = (
|
|
156
156
|
/** @type {import('./types.js').AttachmentUploadTicket} */
|
|
157
157
|
await a("POST", "/attachments", {
|
|
158
158
|
mime_type: p,
|
|
159
|
-
size_bytes:
|
|
159
|
+
size_bytes: v,
|
|
160
160
|
name: f
|
|
161
161
|
})
|
|
162
162
|
), O = await fetch(T.upload_url, {
|
|
@@ -167,10 +167,10 @@ function Fe(t) {
|
|
|
167
167
|
if (!O.ok)
|
|
168
168
|
throw new Error(`HTTP ${O.status} PUT signed upload`);
|
|
169
169
|
return {
|
|
170
|
-
type:
|
|
170
|
+
type: Ne(p),
|
|
171
171
|
path: T.path,
|
|
172
172
|
mime_type: p,
|
|
173
|
-
size_bytes:
|
|
173
|
+
size_bytes: v
|
|
174
174
|
};
|
|
175
175
|
}
|
|
176
176
|
async function H(h) {
|
|
@@ -192,16 +192,16 @@ function Fe(t) {
|
|
|
192
192
|
try {
|
|
193
193
|
const h = new EventSource(Y());
|
|
194
194
|
for (const f of Ee)
|
|
195
|
-
h.addEventListener(f, (p) =>
|
|
195
|
+
h.addEventListener(f, (p) => Q(f, p.data));
|
|
196
196
|
h.addEventListener("error", () => o("error", new Error("SSE error"))), e.eventSource = h, r("open");
|
|
197
197
|
} catch (h) {
|
|
198
198
|
console.error("[transport] SSE open failed", h), o("error", h);
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function Q(h, f) {
|
|
202
202
|
try {
|
|
203
|
-
const p = JSON.parse(f),
|
|
204
|
-
o(h,
|
|
203
|
+
const p = JSON.parse(f), v = p && typeof p == "object" && "data" in p ? p.data : p;
|
|
204
|
+
o(h, v);
|
|
205
205
|
} catch (p) {
|
|
206
206
|
console.error("[transport] bad SSE payload", h, p);
|
|
207
207
|
}
|
|
@@ -214,14 +214,14 @@ function Fe(t) {
|
|
|
214
214
|
e.panelOpen || W();
|
|
215
215
|
}, Le));
|
|
216
216
|
}
|
|
217
|
-
function
|
|
217
|
+
function J(h) {
|
|
218
218
|
e.panelOpen = !!h, e.panelOpen ? (clearTimeout(e.burstTimer), z()) : V();
|
|
219
219
|
}
|
|
220
220
|
async function de() {
|
|
221
221
|
try {
|
|
222
|
-
const h = await S(), f = h.reduce((
|
|
222
|
+
const h = await S(), f = h.reduce((v, T) => {
|
|
223
223
|
const O = T == null ? void 0 : T.last_message_at;
|
|
224
|
-
return O && (!
|
|
224
|
+
return O && (!v || O > v) ? O : v;
|
|
225
225
|
}, null);
|
|
226
226
|
f && (!e.lastActivityAt || f > e.lastActivityAt) && (e.lastActivityAt = f, o("activity", { conversations: h, latestAt: f }), V());
|
|
227
227
|
} catch (h) {
|
|
@@ -250,12 +250,12 @@ function Fe(t) {
|
|
|
250
250
|
async function _() {
|
|
251
251
|
if (e.started) return e.lastBootstrap;
|
|
252
252
|
e.started = !0;
|
|
253
|
-
const h = await
|
|
253
|
+
const h = await g();
|
|
254
254
|
e.lastBootstrap = h;
|
|
255
255
|
try {
|
|
256
256
|
const f = await S();
|
|
257
|
-
e.lastActivityAt = f.reduce((p,
|
|
258
|
-
const T =
|
|
257
|
+
e.lastActivityAt = f.reduce((p, v) => {
|
|
258
|
+
const T = v == null ? void 0 : v.last_message_at;
|
|
259
259
|
return T && (!p || T > p) ? T : p;
|
|
260
260
|
}, null);
|
|
261
261
|
} catch (f) {
|
|
@@ -263,16 +263,16 @@ function Fe(t) {
|
|
|
263
263
|
}
|
|
264
264
|
return typeof document < "u" && (e.visibilityHandler = m, document.addEventListener("visibilitychange", e.visibilityHandler)), se(), h;
|
|
265
265
|
}
|
|
266
|
-
function
|
|
266
|
+
function y() {
|
|
267
267
|
u(), clearTimeout(e.burstTimer), clearTimeout(e.hiddenGraceTimer), e.hiddenGraceTimer = null, W(), e.visibilityHandler && (document.removeEventListener("visibilitychange", e.visibilityHandler), e.visibilityHandler = null), e.started = !1;
|
|
268
268
|
}
|
|
269
269
|
return {
|
|
270
270
|
on: n,
|
|
271
271
|
start: _,
|
|
272
|
-
stop:
|
|
273
|
-
setPanelOpen:
|
|
272
|
+
stop: y,
|
|
273
|
+
setPanelOpen: J,
|
|
274
274
|
// REST
|
|
275
|
-
bootstrap:
|
|
275
|
+
bootstrap: g,
|
|
276
276
|
getCustomer: C,
|
|
277
277
|
patchCustomer: w,
|
|
278
278
|
listConversations: S,
|
|
@@ -290,10 +290,10 @@ function Fe(t) {
|
|
|
290
290
|
}
|
|
291
291
|
};
|
|
292
292
|
}
|
|
293
|
-
function
|
|
293
|
+
function De(t) {
|
|
294
294
|
return t.endsWith("/") ? t.slice(0, -1) : t;
|
|
295
295
|
}
|
|
296
|
-
function
|
|
296
|
+
function Ne(t) {
|
|
297
297
|
return t.startsWith("image/") ? "image" : t.startsWith("video/") ? "video" : t.startsWith("audio/") ? "audio" : "file";
|
|
298
298
|
}
|
|
299
299
|
function je() {
|
|
@@ -351,22 +351,22 @@ function Ue(t) {
|
|
|
351
351
|
})), n.push(t.on("conversation_updated", (u) => {
|
|
352
352
|
const m = u == null ? void 0 : u.conversation_id, _ = u == null ? void 0 : u.changes;
|
|
353
353
|
if (!m || !_) return;
|
|
354
|
-
const
|
|
355
|
-
|
|
354
|
+
const y = e.conversations.findIndex((h) => h.id === m);
|
|
355
|
+
y !== -1 && (e.conversations[y] = { ...e.conversations[y], ..._ });
|
|
356
356
|
})), n.push(t.on("config_updated", (u) => {
|
|
357
357
|
u != null && u.config && (e.config = u.config);
|
|
358
358
|
})), n.push(t.on("action_status", (u) => {
|
|
359
|
-
const m = u == null ? void 0 : u.conversation_id, _ = u == null ? void 0 : u.action_id,
|
|
359
|
+
const m = u == null ? void 0 : u.conversation_id, _ = u == null ? void 0 : u.action_id, y = u == null ? void 0 : u.action_name;
|
|
360
360
|
if (!m || !_) return;
|
|
361
361
|
const h = e.runningActionsByConv[m] || {};
|
|
362
|
-
u.state === "running" ? (h[_] =
|
|
362
|
+
u.state === "running" ? (h[_] = y || _, e.runningActionsByConv[m] = { ...h }) : u.state === "done" && (delete h[_], e.runningActionsByConv[m] = { ...h });
|
|
363
363
|
})), n.push(t.on("activity", (u) => {
|
|
364
364
|
Array.isArray(u == null ? void 0 : u.conversations) && (e.conversations = u.conversations);
|
|
365
365
|
}));
|
|
366
366
|
async function o() {
|
|
367
367
|
try {
|
|
368
368
|
const u = new Promise(
|
|
369
|
-
(_,
|
|
369
|
+
(_, y) => setTimeout(() => y(new Error("bootstrap timeout (15s) — check baseUrl, CORS, and network")), 15e3)
|
|
370
370
|
), m = await Promise.race([t.start(), u]);
|
|
371
371
|
e.config = m.config, e.customer = m.customer, e.conversations = await Promise.race([t.listConversations(), u]), e.ready = !0;
|
|
372
372
|
} catch (u) {
|
|
@@ -393,35 +393,45 @@ function Ue(t) {
|
|
|
393
393
|
return e.customer;
|
|
394
394
|
}
|
|
395
395
|
async function a(u = {}) {
|
|
396
|
-
const m = await t.createConversation(u), _ = e.conversations.findIndex((
|
|
396
|
+
const m = await t.createConversation(u), _ = e.conversations.findIndex((y) => y.id === m.id);
|
|
397
397
|
return _ === -1 ? e.conversations = [m, ...e.conversations] : e.conversations[_] = m, m;
|
|
398
398
|
}
|
|
399
399
|
const d = 50;
|
|
400
|
-
async function
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
400
|
+
async function g(u) {
|
|
401
|
+
const m = e.paginationByConv[u];
|
|
402
|
+
if (!(m != null && m.loaded || m != null && m.loading)) {
|
|
403
|
+
w(u, { nextCursor: null, loading: !0, loaded: !1 });
|
|
404
|
+
try {
|
|
405
|
+
const _ = await t.listMessages(u, { limit: d }), y = (_ == null ? void 0 : _.messages) ?? [], h = e.messagesByConv[u] || [], f = /* @__PURE__ */ new Set();
|
|
406
|
+
for (const v of y)
|
|
407
|
+
(v == null ? void 0 : v.id) != null && f.add(`id:${String(v.id)}`), v != null && v.client_msg_id && f.add(`c:${v.client_msg_id}`);
|
|
408
|
+
const p = h.filter((v) => !((v == null ? void 0 : v.id) != null && f.has(`id:${String(v.id)}`) || v != null && v.client_msg_id && f.has(`c:${v.client_msg_id}`)));
|
|
409
|
+
e.messagesByConv[u] = [...y, ...p].sort(J), w(u, {
|
|
410
|
+
nextCursor: (_ == null ? void 0 : _.next_cursor) ?? null,
|
|
411
|
+
loading: !1,
|
|
412
|
+
loaded: !0
|
|
413
|
+
});
|
|
414
|
+
} catch (_) {
|
|
415
|
+
console.error("[store] openConversation failed", _), w(u, { nextCursor: null, loading: !1, loaded: !1 });
|
|
416
|
+
}
|
|
417
|
+
}
|
|
408
418
|
}
|
|
409
419
|
async function C(u) {
|
|
410
420
|
var h;
|
|
411
421
|
const m = e.paginationByConv[u];
|
|
412
422
|
if (!m || m.loading || !m.nextCursor) return;
|
|
413
|
-
const
|
|
414
|
-
if (
|
|
423
|
+
const y = (h = (e.messagesByConv[u] || []).find((f) => f == null ? void 0 : f.created_at)) == null ? void 0 : h.created_at;
|
|
424
|
+
if (y) {
|
|
415
425
|
w(u, { ...m, loading: !0 });
|
|
416
426
|
try {
|
|
417
427
|
const f = await t.listMessages(u, {
|
|
418
|
-
before:
|
|
428
|
+
before: y,
|
|
419
429
|
limit: d
|
|
420
|
-
}), p = (f == null ? void 0 : f.messages) ?? [],
|
|
421
|
-
for (const I of
|
|
430
|
+
}), p = (f == null ? void 0 : f.messages) ?? [], v = e.messagesByConv[u] || [], T = /* @__PURE__ */ new Set();
|
|
431
|
+
for (const I of v)
|
|
422
432
|
(I == null ? void 0 : I.id) != null && T.add(`id:${String(I.id)}`), I != null && I.client_msg_id && T.add(`c:${I.client_msg_id}`);
|
|
423
433
|
const O = p.filter((I) => !((I == null ? void 0 : I.id) != null && T.has(`id:${String(I.id)}`) || I != null && I.client_msg_id && T.has(`c:${I.client_msg_id}`)));
|
|
424
|
-
e.messagesByConv[u] = [...O, ...
|
|
434
|
+
e.messagesByConv[u] = [...O, ...v], w(u, {
|
|
425
435
|
nextCursor: (f == null ? void 0 : f.next_cursor) ?? null,
|
|
426
436
|
loading: !1,
|
|
427
437
|
loaded: !0
|
|
@@ -435,14 +445,14 @@ function Ue(t) {
|
|
|
435
445
|
e.paginationByConv = { ...e.paginationByConv, [u]: m };
|
|
436
446
|
}
|
|
437
447
|
async function S(u, m) {
|
|
438
|
-
const _ = await t.patchConversation(u, m),
|
|
439
|
-
|
|
448
|
+
const _ = await t.patchConversation(u, m), y = e.conversations.findIndex((h) => h.id === u);
|
|
449
|
+
y !== -1 && (e.conversations[y] = _);
|
|
440
450
|
}
|
|
441
|
-
async function F(u, m, { attachments: _, metadata:
|
|
451
|
+
async function F(u, m, { attachments: _, metadata: y } = {}) {
|
|
442
452
|
var O;
|
|
443
453
|
const h = (m || "").trim(), f = Array.isArray(_) && _.length > 0;
|
|
444
454
|
if (!u || !h && !f) return;
|
|
445
|
-
const p = je(),
|
|
455
|
+
const p = je(), v = se(u), T = {
|
|
446
456
|
id: p,
|
|
447
457
|
client_msg_id: p,
|
|
448
458
|
conversation_id: u,
|
|
@@ -452,20 +462,20 @@ function Ue(t) {
|
|
|
452
462
|
type: "user",
|
|
453
463
|
id: ((O = e.customer) == null ? void 0 : O.external_id) || null
|
|
454
464
|
},
|
|
455
|
-
created_at:
|
|
465
|
+
created_at: v,
|
|
456
466
|
// Local-only flag — UI may render dimmed until the SSE echo lands.
|
|
457
467
|
_pending: !0,
|
|
458
468
|
...f ? { payload: { type: "content", attachments: _ } } : {},
|
|
459
|
-
...
|
|
469
|
+
...y && typeof y == "object" ? { metadata: y } : {}
|
|
460
470
|
};
|
|
461
471
|
z(u, T);
|
|
462
472
|
try {
|
|
463
473
|
await t.postMessage(u, {
|
|
464
474
|
client_msg_id: p,
|
|
465
475
|
text_md: h,
|
|
466
|
-
created_at:
|
|
476
|
+
created_at: v,
|
|
467
477
|
...f ? { attachments: _ } : {},
|
|
468
|
-
...
|
|
478
|
+
...y && typeof y == "object" ? { metadata: y } : {}
|
|
469
479
|
});
|
|
470
480
|
} catch (I) {
|
|
471
481
|
console.error("[store] send failed", I), W(u, p, { _failed: !0, _pending: !1 });
|
|
@@ -475,8 +485,8 @@ function Ue(t) {
|
|
|
475
485
|
u != null && (e.awaitingCallback[u] = !0);
|
|
476
486
|
try {
|
|
477
487
|
await t.postCallback(u, m, _);
|
|
478
|
-
} catch (
|
|
479
|
-
console.error("[store] callback failed",
|
|
488
|
+
} catch (y) {
|
|
489
|
+
console.error("[store] callback failed", y), u != null && delete e.awaitingCallback[u];
|
|
480
490
|
}
|
|
481
491
|
}
|
|
482
492
|
const U = /* @__PURE__ */ new Map();
|
|
@@ -497,8 +507,8 @@ function Ue(t) {
|
|
|
497
507
|
return null;
|
|
498
508
|
}
|
|
499
509
|
async function j(u, { rating: m, comment: _ } = {}) {
|
|
500
|
-
const
|
|
501
|
-
...(
|
|
510
|
+
const y = e.conversations.find((p) => p.id === u), f = {
|
|
511
|
+
...(y == null ? void 0 : y.metadata) || {},
|
|
502
512
|
feedback: {
|
|
503
513
|
rating: m,
|
|
504
514
|
comment: _ || null,
|
|
@@ -508,24 +518,24 @@ function Ue(t) {
|
|
|
508
518
|
await S(u, { metadata: f });
|
|
509
519
|
}
|
|
510
520
|
function P(u) {
|
|
511
|
-
var _,
|
|
521
|
+
var _, y;
|
|
512
522
|
const m = e.messagesByConv[u] || [];
|
|
513
523
|
for (let h = m.length - 1; h >= 0; h--) {
|
|
514
524
|
const f = m[h];
|
|
515
|
-
if ((f == null ? void 0 : f.type) === "action" && ((_ = f == null ? void 0 : f.payload) == null ? void 0 : _.type) === "action" && ((
|
|
525
|
+
if ((f == null ? void 0 : f.type) === "action" && ((_ = f == null ? void 0 : f.payload) == null ? void 0 : _.type) === "action" && ((y = f == null ? void 0 : f.payload) == null ? void 0 : y.state) === "pending" && Array.isArray(f == null ? void 0 : f.callbacks) && f.callbacks.length > 0 && !e.awaitingCallback[f.id])
|
|
516
526
|
return f;
|
|
517
527
|
}
|
|
518
528
|
return null;
|
|
519
529
|
}
|
|
520
530
|
function R(u) {
|
|
521
|
-
var _,
|
|
531
|
+
var _, y, h;
|
|
522
532
|
const m = e.messagesByConv[u] || [];
|
|
523
533
|
for (let f = m.length - 1; f >= 0; f--) {
|
|
524
534
|
const p = m[f];
|
|
525
|
-
if (((_ = p == null ? void 0 : p.author) == null ? void 0 : _.type) === "user" || (p == null ? void 0 : p.type) === "action" && ((
|
|
526
|
-
const
|
|
527
|
-
if (
|
|
528
|
-
return { message: p, form:
|
|
535
|
+
if (((_ = p == null ? void 0 : p.author) == null ? void 0 : _.type) === "user" || (p == null ? void 0 : p.type) === "action" && ((y = p == null ? void 0 : p.payload) == null ? void 0 : y.state) === "pending") return null;
|
|
536
|
+
const v = (h = p == null ? void 0 : p.metadata) == null ? void 0 : h.form;
|
|
537
|
+
if (v && Array.isArray(v.fields) && v.fields.length > 0)
|
|
538
|
+
return { message: p, form: v };
|
|
529
539
|
}
|
|
530
540
|
return null;
|
|
531
541
|
}
|
|
@@ -534,18 +544,18 @@ function Ue(t) {
|
|
|
534
544
|
if (!m) return null;
|
|
535
545
|
const _ = Object.keys(m);
|
|
536
546
|
if (_.length === 0) return null;
|
|
537
|
-
const
|
|
538
|
-
return { id:
|
|
547
|
+
const y = _[0];
|
|
548
|
+
return { id: y, payload: { name: m[y] } };
|
|
539
549
|
}
|
|
540
550
|
function Y(u) {
|
|
541
|
-
var _,
|
|
551
|
+
var _, y, h, f;
|
|
542
552
|
const m = e.messagesByConv[u] || [];
|
|
543
553
|
for (let p = m.length - 1; p >= 0; p--) {
|
|
544
|
-
const
|
|
545
|
-
if (((_ =
|
|
546
|
-
if ((
|
|
547
|
-
if (((h =
|
|
548
|
-
const T = (f =
|
|
554
|
+
const v = m[p];
|
|
555
|
+
if (((_ = v == null ? void 0 : v.author) == null ? void 0 : _.type) === "user") return [];
|
|
556
|
+
if ((v == null ? void 0 : v.type) === "action" && ((y = v == null ? void 0 : v.payload) == null ? void 0 : y.state) === "pending") return [];
|
|
557
|
+
if (((h = v == null ? void 0 : v.author) == null ? void 0 : h.type) !== "agent_ia") continue;
|
|
558
|
+
const T = (f = v == null ? void 0 : v.metadata) == null ? void 0 : f.suggested_replies;
|
|
549
559
|
return Array.isArray(T) && T.length ? T.map((O) => {
|
|
550
560
|
if (typeof O == "string") {
|
|
551
561
|
const I = O.trim();
|
|
@@ -565,43 +575,43 @@ function Ue(t) {
|
|
|
565
575
|
function z(u, m) {
|
|
566
576
|
var f;
|
|
567
577
|
const _ = e.messagesByConv[u] || [];
|
|
568
|
-
let
|
|
569
|
-
m != null && m.client_msg_id && (
|
|
578
|
+
let y = -1;
|
|
579
|
+
m != null && m.client_msg_id && (y = _.findIndex(
|
|
570
580
|
(p) => (p == null ? void 0 : p.client_msg_id) && p.client_msg_id === m.client_msg_id
|
|
571
|
-
)),
|
|
581
|
+
)), y === -1 && (m == null ? void 0 : m.id) !== void 0 && (m == null ? void 0 : m.id) !== null && (y = _.findIndex((p) => Q(p == null ? void 0 : p.id, m.id)));
|
|
572
582
|
let h;
|
|
573
|
-
|
|
583
|
+
y === -1 ? h = [..._, m].sort(J) : (h = _.slice(), h[y] = { ..._[y], ...m, _pending: !1, _failed: !1 }), e.messagesByConv[u] = h, (m == null ? void 0 : m.type) === "action" && ((f = m == null ? void 0 : m.payload) != null && f.state) && m.payload.state !== "pending" && (m == null ? void 0 : m.id) != null && e.awaitingCallback[m.id] && delete e.awaitingCallback[m.id];
|
|
574
584
|
}
|
|
575
|
-
function
|
|
585
|
+
function Q(u, m) {
|
|
576
586
|
return u === m ? !0 : u == null || m == null ? !1 : String(u) === String(m);
|
|
577
587
|
}
|
|
578
588
|
function W(u, m, _) {
|
|
579
|
-
const
|
|
580
|
-
if (!
|
|
581
|
-
const h =
|
|
589
|
+
const y = e.messagesByConv[u];
|
|
590
|
+
if (!y) return;
|
|
591
|
+
const h = y.findIndex((p) => p.id === m);
|
|
582
592
|
if (h === -1) return;
|
|
583
|
-
const f =
|
|
584
|
-
f[h] = { ...
|
|
593
|
+
const f = y.slice();
|
|
594
|
+
f[h] = { ...y[h], ..._ }, e.messagesByConv[u] = f;
|
|
585
595
|
}
|
|
586
596
|
function V(u, m) {
|
|
587
597
|
const _ = e.conversations.findIndex((h) => h.id === u);
|
|
588
598
|
if (_ === -1) return;
|
|
589
|
-
const
|
|
590
|
-
if (m && (!
|
|
599
|
+
const y = e.conversations[_];
|
|
600
|
+
if (m && (!y.last_message_at || m > y.last_message_at)) {
|
|
591
601
|
const h = e.conversations.slice();
|
|
592
|
-
h[_] = { ...
|
|
602
|
+
h[_] = { ...y, last_message_at: m }, h.sort(
|
|
593
603
|
(f, p) => (p.last_message_at || "").localeCompare(f.last_message_at || "")
|
|
594
604
|
), e.conversations = h;
|
|
595
605
|
}
|
|
596
606
|
}
|
|
597
|
-
function
|
|
607
|
+
function J(u, m) {
|
|
598
608
|
return (u.created_at || "").localeCompare(m.created_at || "");
|
|
599
609
|
}
|
|
600
610
|
function de(u) {
|
|
601
611
|
if (!u || typeof u != "object") return null;
|
|
602
612
|
const m = {}, _ = {};
|
|
603
|
-
for (const [
|
|
604
|
-
h !== void 0 && (
|
|
613
|
+
for (const [y, h] of Object.entries(u))
|
|
614
|
+
h !== void 0 && (y === "name" || y === "email" ? h != null && String(h).trim() !== "" && (m[y] = h) : (y === "values" || y === "metadata") && h && typeof h == "object" ? Object.assign(_, h) : _[y] = h);
|
|
605
615
|
return Object.keys(_).length && (m.values = _), Object.keys(m).length ? m : null;
|
|
606
616
|
}
|
|
607
617
|
function se(u) {
|
|
@@ -609,8 +619,8 @@ function Ue(t) {
|
|
|
609
619
|
let _ = "";
|
|
610
620
|
for (const f of m)
|
|
611
621
|
f != null && f.created_at && f.created_at > _ && (_ = f.created_at);
|
|
612
|
-
const
|
|
613
|
-
return !_ ||
|
|
622
|
+
const y = (/* @__PURE__ */ new Date()).toISOString();
|
|
623
|
+
return !_ || y > _ ? y : new Date(Date.parse(_) + 1).toISOString();
|
|
614
624
|
}
|
|
615
625
|
return {
|
|
616
626
|
state: e,
|
|
@@ -618,7 +628,7 @@ function Ue(t) {
|
|
|
618
628
|
destroy: r,
|
|
619
629
|
applyCustomer: s,
|
|
620
630
|
createConversation: a,
|
|
621
|
-
openConversation:
|
|
631
|
+
openConversation: g,
|
|
622
632
|
loadMore: C,
|
|
623
633
|
patchConversation: S,
|
|
624
634
|
send: F,
|
|
@@ -633,7 +643,7 @@ function Ue(t) {
|
|
|
633
643
|
setPanelOpen: t.setPanelOpen
|
|
634
644
|
};
|
|
635
645
|
}
|
|
636
|
-
const
|
|
646
|
+
const N = {
|
|
637
647
|
w: "#ffffff",
|
|
638
648
|
g50: "#F9F9F7",
|
|
639
649
|
g100: "#F2F1EE",
|
|
@@ -665,21 +675,21 @@ const Pe = `
|
|
|
665
675
|
.wm-root {
|
|
666
676
|
--wm-f: 'Geist', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
667
677
|
--wm-fm: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
668
|
-
--wm-w: ${
|
|
669
|
-
--wm-g50: ${
|
|
670
|
-
--wm-g100: ${
|
|
671
|
-
--wm-g150: ${
|
|
672
|
-
--wm-g200: ${
|
|
673
|
-
--wm-g300: ${
|
|
674
|
-
--wm-g400: ${
|
|
675
|
-
--wm-g500: ${
|
|
676
|
-
--wm-g700: ${
|
|
677
|
-
--wm-g900: ${
|
|
678
|
-
--wm-a: ${
|
|
679
|
-
--wm-al: ${
|
|
680
|
-
--wm-green: ${
|
|
681
|
-
--wm-red: ${
|
|
682
|
-
--wm-redBg: ${
|
|
678
|
+
--wm-w: ${N.w};
|
|
679
|
+
--wm-g50: ${N.g50};
|
|
680
|
+
--wm-g100: ${N.g100};
|
|
681
|
+
--wm-g150: ${N.g150};
|
|
682
|
+
--wm-g200: ${N.g200};
|
|
683
|
+
--wm-g300: ${N.g300};
|
|
684
|
+
--wm-g400: ${N.g400};
|
|
685
|
+
--wm-g500: ${N.g500};
|
|
686
|
+
--wm-g700: ${N.g700};
|
|
687
|
+
--wm-g900: ${N.g900};
|
|
688
|
+
--wm-a: ${N.accent};
|
|
689
|
+
--wm-al: ${N.accentLight};
|
|
690
|
+
--wm-green: ${N.green};
|
|
691
|
+
--wm-red: ${N.red};
|
|
692
|
+
--wm-redBg: ${N.redBg};
|
|
683
693
|
--wm-sh1: 0 1px 3px rgba(0,0,0,.06);
|
|
684
694
|
--wm-sh2: 0 4px 24px rgba(0,0,0,.09), 0 1px 4px rgba(0,0,0,.05);
|
|
685
695
|
--wm-shPanel: 0 12px 40px rgba(0,0,0,.13), 0 2px 8px rgba(0,0,0,.06);
|
|
@@ -733,16 +743,16 @@ function Ke(t, e, n, o, r, s) {
|
|
|
733
743
|
"aria-label": "Ouvrir le messenger sur le dernier message",
|
|
734
744
|
onClick: e[1] || (e[1] = (a) => t.$emit("open")),
|
|
735
745
|
onKeydown: [
|
|
736
|
-
e[2] || (e[2] = ae(
|
|
737
|
-
e[3] || (e[3] = ae(
|
|
746
|
+
e[2] || (e[2] = ae(Z((a) => t.$emit("open"), ["prevent"]), ["enter"])),
|
|
747
|
+
e[3] || (e[3] = ae(Z((a) => t.$emit("open"), ["prevent"]), ["space"]))
|
|
738
748
|
]
|
|
739
749
|
}, [
|
|
740
|
-
i("p", qe,
|
|
750
|
+
i("p", qe, k(n.peek), 1),
|
|
741
751
|
i("button", {
|
|
742
752
|
type: "button",
|
|
743
753
|
class: "wm-peek__close",
|
|
744
754
|
"aria-label": "Ignorer",
|
|
745
|
-
onClick: e[0] || (e[0] =
|
|
755
|
+
onClick: e[0] || (e[0] = Z((a) => t.$emit("dismiss"), ["stop"]))
|
|
746
756
|
}, [...e[5] || (e[5] = [
|
|
747
757
|
i("svg", {
|
|
748
758
|
width: "11",
|
|
@@ -758,7 +768,7 @@ function Ke(t, e, n, o, r, s) {
|
|
|
758
768
|
i("path", { d: "M18 6L6 18M6 6l12 12" })
|
|
759
769
|
], -1)
|
|
760
770
|
])])
|
|
761
|
-
], 32)) :
|
|
771
|
+
], 32)) : b("", !0)
|
|
762
772
|
]),
|
|
763
773
|
_: 1
|
|
764
774
|
}),
|
|
@@ -785,7 +795,7 @@ function Ke(t, e, n, o, r, s) {
|
|
|
785
795
|
key: 0,
|
|
786
796
|
class: "wm-launcher__badge",
|
|
787
797
|
"aria-label": `${n.unreadCount} conversation${n.unreadCount > 1 ? "s" : ""} non lue${n.unreadCount > 1 ? "s" : ""}`
|
|
788
|
-
},
|
|
798
|
+
}, k(n.unreadCount > 9 ? "9+" : n.unreadCount), 9, We)) : b("", !0)
|
|
789
799
|
])
|
|
790
800
|
]);
|
|
791
801
|
}
|
|
@@ -810,7 +820,7 @@ function Ze(t, e, n, o, r, s) {
|
|
|
810
820
|
class: E(["wm-aiav", { "wm-aiav--tail": n.tail }]),
|
|
811
821
|
style: G({ width: n.size + "px", height: n.size + "px", "--wm-avr": n.size * 0.32 + "px" })
|
|
812
822
|
}, [
|
|
813
|
-
n.pulse ? (l(), c("div", Je)) :
|
|
823
|
+
n.pulse ? (l(), c("div", Je)) : b("", !0),
|
|
814
824
|
i("div", {
|
|
815
825
|
class: E(["wm-aiav__inner", { "wm-aiav__inner--glow": n.pulse }])
|
|
816
826
|
}, [
|
|
@@ -877,7 +887,7 @@ function tt(t, e, n, o, r, s) {
|
|
|
877
887
|
}, null, 8, et)) : (l(), c("span", {
|
|
878
888
|
key: 1,
|
|
879
889
|
style: G({ fontSize: n.size * 0.36 + "px" })
|
|
880
|
-
},
|
|
890
|
+
}, k(s.initials), 5))
|
|
881
891
|
], 4);
|
|
882
892
|
}
|
|
883
893
|
const ke = /* @__PURE__ */ $(Qe, [["render", tt], ["__scopeId", "data-v-a772b179"]]), nt = {
|
|
@@ -915,7 +925,7 @@ function ot(t, e, n, o, r, s) {
|
|
|
915
925
|
class: "wm-team__stack",
|
|
916
926
|
style: G({ width: s.stackWidth + "px" })
|
|
917
927
|
}, [
|
|
918
|
-
(l(!0), c(M, null,
|
|
928
|
+
(l(!0), c(M, null, D(n.members.slice(0, 3), (a, d) => (l(), c("div", {
|
|
919
929
|
key: d,
|
|
920
930
|
class: "wm-team__pill",
|
|
921
931
|
style: G({ left: d * 13 + "px", zIndex: 3 - d, background: s.colorFor(a) })
|
|
@@ -924,11 +934,11 @@ function ot(t, e, n, o, r, s) {
|
|
|
924
934
|
key: 0,
|
|
925
935
|
src: a.avatar_url,
|
|
926
936
|
alt: a.name || ""
|
|
927
|
-
}, null, 8, rt)) : (l(), c("span", it,
|
|
937
|
+
}, null, 8, rt)) : (l(), c("span", it, k(s.initialsFor(a)), 1))
|
|
928
938
|
], 4))), 128))
|
|
929
939
|
], 4),
|
|
930
|
-
n.responseLabel ? (l(), c("span", at,
|
|
931
|
-
])) :
|
|
940
|
+
n.responseLabel ? (l(), c("span", at, k(n.responseLabel), 1)) : b("", !0)
|
|
941
|
+
])) : b("", !0);
|
|
932
942
|
}
|
|
933
943
|
const lt = /* @__PURE__ */ $(nt, [["render", ot], ["__scopeId", "data-v-3659b9c1"]]), dt = {
|
|
934
944
|
name: "WmHeader",
|
|
@@ -969,12 +979,12 @@ const lt = /* @__PURE__ */ $(nt, [["render", ot], ["__scopeId", "data-v-3659b9c1
|
|
|
969
979
|
}, ht = { class: "wm-header__avatar" }, mt = { class: "wm-header__main" }, ft = { class: "wm-header__title" }, _t = {
|
|
970
980
|
key: 0,
|
|
971
981
|
class: "wm-header__sub"
|
|
972
|
-
}, pt = { class: "wm-header__status" },
|
|
982
|
+
}, pt = { class: "wm-header__status" }, gt = {
|
|
973
983
|
key: 3,
|
|
974
984
|
class: "wm-header__fill"
|
|
975
|
-
},
|
|
985
|
+
}, vt = { class: "wm-header__actions" };
|
|
976
986
|
function yt(t, e, n, o, r, s) {
|
|
977
|
-
const a = B("HumanAvatar"), d = B("AIAvatar"),
|
|
987
|
+
const a = B("HumanAvatar"), d = B("AIAvatar"), g = B("TeamAvatars");
|
|
978
988
|
return l(), c("div", ct, [
|
|
979
989
|
n.showBack ? (l(), c("button", {
|
|
980
990
|
key: 0,
|
|
@@ -1010,21 +1020,21 @@ function yt(t, e, n, o, r, s) {
|
|
|
1010
1020
|
}))
|
|
1011
1021
|
]),
|
|
1012
1022
|
i("div", mt, [
|
|
1013
|
-
i("div", ft,
|
|
1023
|
+
i("div", ft, k(n.title), 1),
|
|
1014
1024
|
s.showPresence ? (l(), c("div", _t, [
|
|
1015
|
-
s.hasTeam ? (l(), L(
|
|
1025
|
+
s.hasTeam ? (l(), L(g, {
|
|
1016
1026
|
key: 0,
|
|
1017
1027
|
members: n.teamMembers,
|
|
1018
1028
|
"response-label": n.responseLabel
|
|
1019
|
-
}, null, 8, ["members", "response-label"])) :
|
|
1029
|
+
}, null, 8, ["members", "response-label"])) : b("", !0),
|
|
1020
1030
|
i("span", pt, [
|
|
1021
1031
|
e[4] || (e[4] = i("span", { class: "wm-header__dot" }, null, -1)),
|
|
1022
|
-
te(" " +
|
|
1032
|
+
te(" " + k(s.statusText), 1)
|
|
1023
1033
|
])
|
|
1024
|
-
])) :
|
|
1034
|
+
])) : b("", !0)
|
|
1025
1035
|
])
|
|
1026
|
-
], 64)) : (l(), c("div",
|
|
1027
|
-
i("div",
|
|
1036
|
+
], 64)) : (l(), c("div", gt)),
|
|
1037
|
+
i("div", vt, [
|
|
1028
1038
|
n.showMore ? (l(), c("button", {
|
|
1029
1039
|
key: 0,
|
|
1030
1040
|
type: "button",
|
|
@@ -1056,7 +1066,7 @@ function yt(t, e, n, o, r, s) {
|
|
|
1056
1066
|
r: "1.6"
|
|
1057
1067
|
})
|
|
1058
1068
|
], -1)
|
|
1059
|
-
])], 2)) :
|
|
1069
|
+
])], 2)) : b("", !0),
|
|
1060
1070
|
n.showClose ? (l(), c("button", {
|
|
1061
1071
|
key: 1,
|
|
1062
1072
|
type: "button",
|
|
@@ -1078,7 +1088,7 @@ function yt(t, e, n, o, r, s) {
|
|
|
1078
1088
|
}, [
|
|
1079
1089
|
i("path", { d: "M18 6L6 18M6 6l12 12" })
|
|
1080
1090
|
], -1)
|
|
1081
|
-
])])) :
|
|
1091
|
+
])])) : b("", !0)
|
|
1082
1092
|
])
|
|
1083
1093
|
]);
|
|
1084
1094
|
}
|
|
@@ -1133,7 +1143,7 @@ Je réponds en quelques secondes.`;
|
|
|
1133
1143
|
key: 0,
|
|
1134
1144
|
class: "wm-onb__resume-dot",
|
|
1135
1145
|
"aria-label": "Non lu"
|
|
1136
|
-
},
|
|
1146
|
+
}, Dt = { class: "wm-onb__resume-body" }, Nt = { class: "wm-onb__resume-title" }, jt = { class: "wm-onb__resume-preview" }, Ut = { class: "wm-onb__cta" }, Pt = ["disabled"];
|
|
1137
1147
|
function Ht(t, e, n, o, r, s) {
|
|
1138
1148
|
const a = B("AIAvatar");
|
|
1139
1149
|
return l(), c("div", kt, [
|
|
@@ -1142,14 +1152,14 @@ function Ht(t, e, n, o, r, s) {
|
|
|
1142
1152
|
size: 56,
|
|
1143
1153
|
pulse: !0
|
|
1144
1154
|
}),
|
|
1145
|
-
i("div", At,
|
|
1146
|
-
i("div", St,
|
|
1155
|
+
i("div", At, k(s.heroTitle), 1),
|
|
1156
|
+
i("div", St, k(s.heroSub), 1)
|
|
1147
1157
|
]),
|
|
1148
1158
|
n.quickLinks.length ? (l(), c("div", xt, [
|
|
1149
1159
|
e[3] || (e[3] = i("div", { class: "wm-onb__section-title" }, "Accès rapide", -1)),
|
|
1150
1160
|
i("div", Tt, [
|
|
1151
|
-
(l(!0), c(M, null,
|
|
1152
|
-
key:
|
|
1161
|
+
(l(!0), c(M, null, D(n.quickLinks, (d, g) => (l(), c("button", {
|
|
1162
|
+
key: g,
|
|
1153
1163
|
type: "button",
|
|
1154
1164
|
class: "wm-onb__link",
|
|
1155
1165
|
onClick: (C) => t.$emit("select", d)
|
|
@@ -1161,7 +1171,7 @@ function Ht(t, e, n, o, r, s) {
|
|
|
1161
1171
|
}, null, 8, Bt)
|
|
1162
1172
|
]))
|
|
1163
1173
|
]),
|
|
1164
|
-
i("span", Et,
|
|
1174
|
+
i("span", Et, k(d.label), 1),
|
|
1165
1175
|
e[2] || (e[2] = i("svg", {
|
|
1166
1176
|
width: "13",
|
|
1167
1177
|
height: "13",
|
|
@@ -1178,15 +1188,15 @@ function Ht(t, e, n, o, r, s) {
|
|
|
1178
1188
|
], -1))
|
|
1179
1189
|
], 8, Mt))), 128))
|
|
1180
1190
|
])
|
|
1181
|
-
])) :
|
|
1191
|
+
])) : b("", !0),
|
|
1182
1192
|
n.openThreads.length ? (l(), c("div", $t, [
|
|
1183
1193
|
e[7] || (e[7] = i("div", { class: "wm-onb__section-title" }, "Vos conversations", -1)),
|
|
1184
1194
|
i("div", Lt, [
|
|
1185
|
-
(l(!0), c(M, null,
|
|
1195
|
+
(l(!0), c(M, null, D(n.openThreads, (d) => (l(), c("button", {
|
|
1186
1196
|
key: d.id,
|
|
1187
1197
|
type: "button",
|
|
1188
1198
|
class: "wm-onb__link wm-onb__resume",
|
|
1189
|
-
onClick: (
|
|
1199
|
+
onClick: (g) => t.$emit("resume", d)
|
|
1190
1200
|
}, [
|
|
1191
1201
|
i("span", {
|
|
1192
1202
|
class: E(["wm-onb__link-icon", { "wm-onb__resume-icon": d.unread }])
|
|
@@ -1204,11 +1214,11 @@ function Ht(t, e, n, o, r, s) {
|
|
|
1204
1214
|
}, [
|
|
1205
1215
|
i("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" })
|
|
1206
1216
|
], -1)),
|
|
1207
|
-
d.unread ? (l(), c("span", Ft)) :
|
|
1217
|
+
d.unread ? (l(), c("span", Ft)) : b("", !0)
|
|
1208
1218
|
], 2),
|
|
1209
|
-
i("span",
|
|
1210
|
-
i("span",
|
|
1211
|
-
i("span", jt,
|
|
1219
|
+
i("span", Dt, [
|
|
1220
|
+
i("span", Nt, k(d.title), 1),
|
|
1221
|
+
i("span", jt, k(d.preview), 1)
|
|
1212
1222
|
]),
|
|
1213
1223
|
e[5] || (e[5] = i("svg", {
|
|
1214
1224
|
width: "13",
|
|
@@ -1246,14 +1256,14 @@ function Ht(t, e, n, o, r, s) {
|
|
|
1246
1256
|
], -1)
|
|
1247
1257
|
])])
|
|
1248
1258
|
])
|
|
1249
|
-
])) :
|
|
1259
|
+
])) : b("", !0),
|
|
1250
1260
|
i("div", Ut, [
|
|
1251
1261
|
i("button", {
|
|
1252
1262
|
type: "button",
|
|
1253
1263
|
class: "wm-onb__startBtn",
|
|
1254
1264
|
disabled: n.busy,
|
|
1255
1265
|
onClick: e[1] || (e[1] = (d) => t.$emit("start"))
|
|
1256
|
-
},
|
|
1266
|
+
}, k(n.busy ? "…" : "Commencer une conversation"), 9, Pt)
|
|
1257
1267
|
])
|
|
1258
1268
|
]);
|
|
1259
1269
|
}
|
|
@@ -1351,14 +1361,14 @@ function en(t, e, n, o, r, s) {
|
|
|
1351
1361
|
])]))
|
|
1352
1362
|
]),
|
|
1353
1363
|
i("span", Xt, [
|
|
1354
|
-
i("span", Zt,
|
|
1364
|
+
i("span", Zt, k(n.label), 1),
|
|
1355
1365
|
s.detailText ? (l(), c(M, { key: 0 }, [
|
|
1356
1366
|
e[4] || (e[4] = i("span", {
|
|
1357
1367
|
class: "wm-result__sep",
|
|
1358
1368
|
"aria-hidden": "true"
|
|
1359
1369
|
}, " · ", -1)),
|
|
1360
|
-
i("span", Qt,
|
|
1361
|
-
], 64)) :
|
|
1370
|
+
i("span", Qt, k(s.detailText), 1)
|
|
1371
|
+
], 64)) : b("", !0)
|
|
1362
1372
|
])
|
|
1363
1373
|
], 2);
|
|
1364
1374
|
}
|
|
@@ -1377,7 +1387,7 @@ const tn = /* @__PURE__ */ $(qt, [["render", en], ["__scopeId", "data-v-64a83fb8
|
|
|
1377
1387
|
function dn(t, e, n, o, r, s) {
|
|
1378
1388
|
return l(), c("div", sn, [
|
|
1379
1389
|
i("div", rn, [
|
|
1380
|
-
i("div", an,
|
|
1390
|
+
i("div", an, k(n.data.title || "Formulaire"), 1),
|
|
1381
1391
|
e[0] || (e[0] = i("span", { class: "wm-art__badge wm-art__badge--success" }, [
|
|
1382
1392
|
i("svg", {
|
|
1383
1393
|
width: "11",
|
|
@@ -1396,14 +1406,14 @@ function dn(t, e, n, o, r, s) {
|
|
|
1396
1406
|
], -1))
|
|
1397
1407
|
]),
|
|
1398
1408
|
i("div", on, [
|
|
1399
|
-
(l(!0), c(M, null,
|
|
1409
|
+
(l(!0), c(M, null, D(s.fields, (a, d) => (l(), c("div", {
|
|
1400
1410
|
key: d,
|
|
1401
1411
|
class: "wm-art__field"
|
|
1402
1412
|
}, [
|
|
1403
|
-
i("div", ln,
|
|
1413
|
+
i("div", ln, k(a.label), 1),
|
|
1404
1414
|
i("div", {
|
|
1405
1415
|
class: E(["wm-art__fieldValue", { "wm-art__fieldValue--multi": a.multiline }])
|
|
1406
|
-
},
|
|
1416
|
+
}, k(a.value), 3)
|
|
1407
1417
|
]))), 128))
|
|
1408
1418
|
])
|
|
1409
1419
|
]);
|
|
@@ -1426,7 +1436,7 @@ const cn = /* @__PURE__ */ $(nn, [["render", dn], ["__scopeId", "data-v-ca24a9c9
|
|
|
1426
1436
|
}, hn = { class: "wm-art wm-art--infoCard" }, mn = {
|
|
1427
1437
|
key: 0,
|
|
1428
1438
|
class: "wm-art__image"
|
|
1429
|
-
}, fn = ["src", "alt"], _n = { class: "wm-art__head" }, pn = { class: "wm-art__headMain" },
|
|
1439
|
+
}, fn = ["src", "alt"], _n = { class: "wm-art__head" }, pn = { class: "wm-art__headMain" }, gn = { class: "wm-art__title" }, vn = {
|
|
1430
1440
|
key: 0,
|
|
1431
1441
|
class: "wm-art__subtitle"
|
|
1432
1442
|
}, yn = {
|
|
@@ -1444,29 +1454,29 @@ function kn(t, e, n, o, r, s) {
|
|
|
1444
1454
|
alt: n.data.title || "",
|
|
1445
1455
|
loading: "lazy"
|
|
1446
1456
|
}, null, 8, fn)
|
|
1447
|
-
])) :
|
|
1457
|
+
])) : b("", !0),
|
|
1448
1458
|
i("div", _n, [
|
|
1449
1459
|
i("div", pn, [
|
|
1450
|
-
i("div",
|
|
1451
|
-
n.data.subtitle ? (l(), c("div",
|
|
1460
|
+
i("div", gn, k(n.data.title), 1),
|
|
1461
|
+
n.data.subtitle ? (l(), c("div", vn, k(n.data.subtitle), 1)) : b("", !0)
|
|
1452
1462
|
]),
|
|
1453
1463
|
n.data.badge && n.data.badge.label ? (l(), c("span", {
|
|
1454
1464
|
key: 0,
|
|
1455
1465
|
class: E(["wm-art__badge", `wm-art__badge--${n.data.badge.tone || "neutral"}`])
|
|
1456
|
-
},
|
|
1466
|
+
}, k(n.data.badge.label), 3)) : b("", !0)
|
|
1457
1467
|
]),
|
|
1458
1468
|
s.hasBody ? (l(), c("div", yn, [
|
|
1459
|
-
n.data.body ? (l(), c("div", wn,
|
|
1460
|
-
s.fields.length ? (l(!0), c(M, { key: 1 },
|
|
1469
|
+
n.data.body ? (l(), c("div", wn, k(n.data.body), 1)) : b("", !0),
|
|
1470
|
+
s.fields.length ? (l(!0), c(M, { key: 1 }, D(s.fields, (a, d) => (l(), c("div", {
|
|
1461
1471
|
key: d,
|
|
1462
1472
|
class: "wm-art__field"
|
|
1463
1473
|
}, [
|
|
1464
|
-
i("div", bn,
|
|
1474
|
+
i("div", bn, k(a.label), 1),
|
|
1465
1475
|
i("div", {
|
|
1466
1476
|
class: E(["wm-art__fieldValue", { "wm-art__fieldValue--multi": a.multiline }])
|
|
1467
|
-
},
|
|
1468
|
-
]))), 128)) :
|
|
1469
|
-
])) :
|
|
1477
|
+
}, k(a.value), 3)
|
|
1478
|
+
]))), 128)) : b("", !0)
|
|
1479
|
+
])) : b("", !0)
|
|
1470
1480
|
]);
|
|
1471
1481
|
}
|
|
1472
1482
|
const Cn = /* @__PURE__ */ $(un, [["render", kn], ["__scopeId", "data-v-d7369333"]]);
|
|
@@ -1533,10 +1543,10 @@ const Sn = {
|
|
|
1533
1543
|
key: 1,
|
|
1534
1544
|
class: "wm-art__footer wm-tk__footer"
|
|
1535
1545
|
};
|
|
1536
|
-
function
|
|
1546
|
+
function Dn(t, e, n, o, r, s) {
|
|
1537
1547
|
return l(), c("div", xn, [
|
|
1538
1548
|
i("div", Tn, [
|
|
1539
|
-
i("div", Mn,
|
|
1549
|
+
i("div", Mn, k(n.data.title), 1),
|
|
1540
1550
|
i("div", On, [
|
|
1541
1551
|
i("div", In, [
|
|
1542
1552
|
e[0] || (e[0] = i("svg", {
|
|
@@ -1553,7 +1563,7 @@ function Nn(t, e, n, o, r, s) {
|
|
|
1553
1563
|
i("path", { d: "M20 12a2 2 0 0 1 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v4a2 2 0 0 1 0 4v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 1-2-2z" }),
|
|
1554
1564
|
i("path", { d: "M13 5v2M13 17v2M13 11v2" })
|
|
1555
1565
|
], -1)),
|
|
1556
|
-
i("span", null,
|
|
1566
|
+
i("span", null, k(n.data.reference), 1)
|
|
1557
1567
|
]),
|
|
1558
1568
|
i("span", {
|
|
1559
1569
|
class: E(["wm-art__badge", "wm-tk__badge", `wm-art__badge--${n.data.status.tone || "neutral"}`])
|
|
@@ -1562,17 +1572,17 @@ function Nn(t, e, n, o, r, s) {
|
|
|
1562
1572
|
class: "wm-tk__dot",
|
|
1563
1573
|
"aria-hidden": "true"
|
|
1564
1574
|
}, null, -1)),
|
|
1565
|
-
te(" " +
|
|
1575
|
+
te(" " + k(n.data.status.label), 1)
|
|
1566
1576
|
], 2)
|
|
1567
1577
|
]),
|
|
1568
|
-
n.data.body ? (l(), c("div", Bn,
|
|
1578
|
+
n.data.body ? (l(), c("div", Bn, k(n.data.body), 1)) : b("", !0)
|
|
1569
1579
|
]),
|
|
1570
1580
|
s.fields.length ? (l(), c("div", En, [
|
|
1571
|
-
(l(!0), c(M, null,
|
|
1581
|
+
(l(!0), c(M, null, D(s.fields, (a, d) => (l(), c("div", {
|
|
1572
1582
|
key: d,
|
|
1573
1583
|
class: "wm-art__field"
|
|
1574
1584
|
}, [
|
|
1575
|
-
i("div", $n,
|
|
1585
|
+
i("div", $n, k(a.label), 1),
|
|
1576
1586
|
i("div", {
|
|
1577
1587
|
class: E(["wm-art__fieldValue", { "wm-art__fieldValue--multi": a.multiline }])
|
|
1578
1588
|
}, [
|
|
@@ -1615,11 +1625,11 @@ function Nn(t, e, n, o, r, s) {
|
|
|
1615
1625
|
rx: "2"
|
|
1616
1626
|
}, null, -1),
|
|
1617
1627
|
i("path", { d: "M16 2v4M8 2v4M3 10h18" }, null, -1)
|
|
1618
|
-
])])) :
|
|
1619
|
-
i("span", null,
|
|
1628
|
+
])])) : b("", !0),
|
|
1629
|
+
i("span", null, k(a.value), 1)
|
|
1620
1630
|
], 2)
|
|
1621
1631
|
]))), 128))
|
|
1622
|
-
])) :
|
|
1632
|
+
])) : b("", !0),
|
|
1623
1633
|
n.data.created_at ? (l(), c("div", Fn, [
|
|
1624
1634
|
e[4] || (e[4] = i("svg", {
|
|
1625
1635
|
width: "11",
|
|
@@ -1641,14 +1651,14 @@ function Nn(t, e, n, o, r, s) {
|
|
|
1641
1651
|
}),
|
|
1642
1652
|
i("path", { d: "M16 2v4M8 2v4M3 10h18" })
|
|
1643
1653
|
], -1)),
|
|
1644
|
-
i("span", null,
|
|
1645
|
-
])) :
|
|
1654
|
+
i("span", null, k(s.formattedDate), 1)
|
|
1655
|
+
])) : b("", !0)
|
|
1646
1656
|
]);
|
|
1647
1657
|
}
|
|
1648
|
-
const
|
|
1658
|
+
const Nn = /* @__PURE__ */ $(Sn, [["render", Dn], ["__scopeId", "data-v-8b274eb7"]]), jn = {
|
|
1649
1659
|
form_response: cn,
|
|
1650
1660
|
info_card: Cn,
|
|
1651
|
-
ticket:
|
|
1661
|
+
ticket: Nn
|
|
1652
1662
|
}, Un = {
|
|
1653
1663
|
name: "WmArtifactRenderer",
|
|
1654
1664
|
props: {
|
|
@@ -1668,7 +1678,7 @@ function Pn(t, e, n, o, r, s) {
|
|
|
1668
1678
|
return s.component ? (l(), L(Me(s.component), {
|
|
1669
1679
|
key: 0,
|
|
1670
1680
|
data: n.artifact.data
|
|
1671
|
-
}, null, 8, ["data"])) :
|
|
1681
|
+
}, null, 8, ["data"])) : b("", !0);
|
|
1672
1682
|
}
|
|
1673
1683
|
const Hn = /* @__PURE__ */ $(Un, [["render", Pn]]), zn = {
|
|
1674
1684
|
name: "WmAttachmentPreview",
|
|
@@ -1784,10 +1794,10 @@ function Qn(t, e, n, o, r, s) {
|
|
|
1784
1794
|
])
|
|
1785
1795
|
], -1)),
|
|
1786
1796
|
i("span", Yn, [
|
|
1787
|
-
i("span", Jn,
|
|
1788
|
-
s.sizeLabel ? (l(), c("span", Xn,
|
|
1797
|
+
i("span", Jn, k(s.displayName), 1),
|
|
1798
|
+
s.sizeLabel ? (l(), c("span", Xn, k(s.sizeLabel), 1)) : b("", !0)
|
|
1789
1799
|
]),
|
|
1790
|
-
r.loading ? (l(), c("span", Zn)) :
|
|
1800
|
+
r.loading ? (l(), c("span", Zn)) : b("", !0)
|
|
1791
1801
|
], 8, Gn))
|
|
1792
1802
|
], 2);
|
|
1793
1803
|
}
|
|
@@ -1849,12 +1859,12 @@ function ss(t) {
|
|
|
1849
1859
|
n.push({ type: "block", html: `<ol class="wm-md-ol"${F}>${S}</ol>` });
|
|
1850
1860
|
continue;
|
|
1851
1861
|
}
|
|
1852
|
-
const
|
|
1853
|
-
if (
|
|
1854
|
-
const C =
|
|
1862
|
+
const g = /^(#{1,6})\s+(.*)$/.exec(s);
|
|
1863
|
+
if (g) {
|
|
1864
|
+
const C = g[1].length;
|
|
1855
1865
|
n.push({
|
|
1856
1866
|
type: "block",
|
|
1857
|
-
html: `<h${C} class="wm-md-h wm-md-h${C}">${re(
|
|
1867
|
+
html: `<h${C} class="wm-md-h wm-md-h${C}">${re(g[2])}</h${C}>`
|
|
1858
1868
|
}), o++;
|
|
1859
1869
|
continue;
|
|
1860
1870
|
}
|
|
@@ -1984,8 +1994,8 @@ const hs = {
|
|
|
1984
1994
|
});
|
|
1985
1995
|
continue;
|
|
1986
1996
|
}
|
|
1987
|
-
const
|
|
1988
|
-
|
|
1997
|
+
const g = t[t.length - 1];
|
|
1998
|
+
g && g.role === d && (d === "ai" || g.agentName === (((o = a == null ? void 0 : a.author) == null ? void 0 : o.name) || "")) ? g.messages.push(a) : t.push({
|
|
1989
1999
|
key: `g-${ee(a)}`,
|
|
1990
2000
|
role: d,
|
|
1991
2001
|
agentName: ((r = a == null ? void 0 : a.author) == null ? void 0 : r.name) || "",
|
|
@@ -1997,8 +2007,8 @@ const hs = {
|
|
|
1997
2007
|
for (const a of t) {
|
|
1998
2008
|
if (a.role === "system") continue;
|
|
1999
2009
|
const d = [];
|
|
2000
|
-
for (const
|
|
2001
|
-
for (const C of this.itemsOf(
|
|
2010
|
+
for (const g of a.messages)
|
|
2011
|
+
for (const C of this.itemsOf(g)) d.push(C);
|
|
2002
2012
|
a.items = d;
|
|
2003
2013
|
}
|
|
2004
2014
|
const e = [];
|
|
@@ -2104,8 +2114,8 @@ const hs = {
|
|
|
2104
2114
|
var C;
|
|
2105
2115
|
const a = r.anchor;
|
|
2106
2116
|
if (!((C = a.el) != null && C.isConnected)) return;
|
|
2107
|
-
const
|
|
2108
|
-
Math.abs(
|
|
2117
|
+
const g = a.el.getBoundingClientRect().top - t.getBoundingClientRect().top - a.relY;
|
|
2118
|
+
Math.abs(g) > 0.5 && (t.scrollTop += g);
|
|
2109
2119
|
};
|
|
2110
2120
|
s(), requestAnimationFrame(() => {
|
|
2111
2121
|
s(), requestAnimationFrame(s);
|
|
@@ -2228,10 +2238,10 @@ const hs = {
|
|
|
2228
2238
|
// adjacent à une `bubble`) : mon coin déborde le voisin et
|
|
2229
2239
|
// doit garder son arrondi.
|
|
2230
2240
|
cornersFor(t, e) {
|
|
2231
|
-
var Y, z,
|
|
2232
|
-
const n = t.items, o = (Y = n[e]) == null ? void 0 : Y.kind, r = (z = n[e - 1]) == null ? void 0 : z.kind, s = (
|
|
2241
|
+
var Y, z, Q;
|
|
2242
|
+
const n = t.items, o = (Y = n[e]) == null ? void 0 : Y.kind, r = (z = n[e - 1]) == null ? void 0 : z.kind, s = (Q = n[e + 1]) == null ? void 0 : Q.kind, a = t.role === "user", d = 14, g = 4, C = r == null ? void 0 : r.bottom, w = s == null ? void 0 : s.top, S = this.widthByKey[this.rowKeyOf(t, e)], F = this.widthByKey[this.rowKeyOf(t, e - 1)], A = this.widthByKey[this.rowKeyOf(t, e + 1)], U = 0.5, x = (W, V, J) => W != null && S != null ? W + U >= S : V === J || V === "card" && J === "bubble";
|
|
2233
2243
|
let j = d, P = d, R = d, H = d;
|
|
2234
|
-
return a ? (C && (P =
|
|
2244
|
+
return a ? (C && (P = g), (w || !s) && (R = g), C && x(F, C, o == null ? void 0 : o.top) && (j = g), w && x(A, w, o == null ? void 0 : o.bottom) && (H = g)) : (C && (j = g), (w || !s) && (H = g), C && x(F, C, o == null ? void 0 : o.top) && (P = g), w && x(A, w, o == null ? void 0 : o.bottom) && (R = g)), { tl: j, tr: P, br: R, bl: H };
|
|
2235
2245
|
},
|
|
2236
2246
|
// Inline style emitting the four corner CSS variables. Set on
|
|
2237
2247
|
// `.wm-list__row` so they cascade to Bubble/ActionResult/
|
|
@@ -2274,8 +2284,8 @@ const hs = {
|
|
|
2274
2284
|
if (!a) continue;
|
|
2275
2285
|
const d = s.querySelector(".wm-bubble, .wm-result, .wm-art, .wm-list__body");
|
|
2276
2286
|
if (!d) continue;
|
|
2277
|
-
const
|
|
2278
|
-
|
|
2287
|
+
const g = d.getBoundingClientRect().width;
|
|
2288
|
+
g > 0 && (e[a] = g);
|
|
2279
2289
|
}
|
|
2280
2290
|
const n = this.widthByKey, o = Object.keys(n), r = Object.keys(e);
|
|
2281
2291
|
if (o.length === r.length) {
|
|
@@ -2350,10 +2360,10 @@ const hs = {
|
|
|
2350
2360
|
class: "wm-list__loadMore",
|
|
2351
2361
|
role: "status",
|
|
2352
2362
|
"aria-live": "polite"
|
|
2353
|
-
},
|
|
2363
|
+
}, gs = {
|
|
2354
2364
|
key: 1,
|
|
2355
2365
|
class: "wm-list__historyEnd"
|
|
2356
|
-
},
|
|
2366
|
+
}, vs = {
|
|
2357
2367
|
key: 2,
|
|
2358
2368
|
class: "wm-list__sep"
|
|
2359
2369
|
}, ys = { class: "wm-list__sep-label" }, ws = {
|
|
@@ -2376,7 +2386,7 @@ const hs = {
|
|
|
2376
2386
|
class: "wm-list__row wm-list__row--ai fade-up"
|
|
2377
2387
|
}, Is = { class: "wm-list__avatarSlot" };
|
|
2378
2388
|
function Bs(t, e, n, o, r, s) {
|
|
2379
|
-
const a = B("AIAvatar"), d = B("HumanAvatar"),
|
|
2389
|
+
const a = B("AIAvatar"), d = B("HumanAvatar"), g = B("ActionResult"), C = B("ArtifactRenderer"), w = B("Bubble"), S = B("AttachmentPreview"), F = B("Typing");
|
|
2380
2390
|
return l(), c("div", {
|
|
2381
2391
|
ref: "scrollEl",
|
|
2382
2392
|
class: E(["wm-list", { "wm-list--silent": r.silentFades }]),
|
|
@@ -2388,30 +2398,30 @@ function Bs(t, e, n, o, r, s) {
|
|
|
2388
2398
|
"aria-hidden": "true"
|
|
2389
2399
|
}, null, -1),
|
|
2390
2400
|
i("span", { class: "wm-list__loadMore-lbl" }, "Chargement de l'historique…", -1)
|
|
2391
|
-
])])) : s.historyExhausted ? (l(), c("div",
|
|
2392
|
-
n.dateLabel ? (l(), c("div",
|
|
2401
|
+
])])) : s.historyExhausted ? (l(), c("div", gs, "Début de la conversation")) : b("", !0),
|
|
2402
|
+
n.dateLabel ? (l(), c("div", vs, [
|
|
2393
2403
|
e[2] || (e[2] = i("div", { class: "wm-list__line" }, null, -1)),
|
|
2394
|
-
i("span", ys,
|
|
2404
|
+
i("span", ys, k(n.dateLabel), 1),
|
|
2395
2405
|
e[3] || (e[3] = i("div", { class: "wm-list__line" }, null, -1))
|
|
2396
|
-
])) :
|
|
2397
|
-
(l(!0), c(M, null,
|
|
2406
|
+
])) : b("", !0),
|
|
2407
|
+
(l(!0), c(M, null, D(s.groups, (A, U) => (l(), c(M, {
|
|
2398
2408
|
key: A.key
|
|
2399
2409
|
}, [
|
|
2400
2410
|
A.key === s.unreadGroupKey ? (l(), c("div", ws, [...e[4] || (e[4] = [
|
|
2401
2411
|
i("div", { class: "wm-list__line wm-list__line--unread" }, null, -1),
|
|
2402
2412
|
i("span", { class: "wm-list__sep-label wm-list__sep-label--unread" }, "Non lus", -1),
|
|
2403
2413
|
i("div", { class: "wm-list__line wm-list__line--unread" }, null, -1)
|
|
2404
|
-
])])) :
|
|
2414
|
+
])])) : b("", !0),
|
|
2405
2415
|
A.role === "system" || A.items.length ? (l(), c("div", {
|
|
2406
2416
|
key: 1,
|
|
2407
2417
|
class: E(["wm-list__group", "wm-list__group--" + A.role])
|
|
2408
2418
|
}, [
|
|
2409
2419
|
A.role === "system" ? (l(), c("div", bs, [
|
|
2410
2420
|
e[5] || (e[5] = i("div", { class: "wm-list__line wm-list__line--strong" }, null, -1)),
|
|
2411
|
-
i("span", ks,
|
|
2421
|
+
i("span", ks, k(A.systemLabel), 1),
|
|
2412
2422
|
e[6] || (e[6] = i("div", { class: "wm-list__line wm-list__line--strong" }, null, -1))
|
|
2413
2423
|
])) : (l(), c(M, { key: 1 }, [
|
|
2414
|
-
(l(!0), c(M, null,
|
|
2424
|
+
(l(!0), c(M, null, D(A.items, (x, j) => (l(), c("div", {
|
|
2415
2425
|
key: `${s.messageKey(x.message)}-${x.partKey}`,
|
|
2416
2426
|
"data-row-key": `${s.messageKey(x.message)}-${x.partKey}`,
|
|
2417
2427
|
class: E(["wm-list__row fade-up", ["wm-list__row--" + A.role, { "is-pending": x.message._pending, "is-failed": x.message._failed }]]),
|
|
@@ -2429,14 +2439,14 @@ function Bs(t, e, n, o, r, s) {
|
|
|
2429
2439
|
"avatar-url": A.agentAvatarUrl,
|
|
2430
2440
|
size: 26
|
|
2431
2441
|
}, null, 8, ["name", "avatar-url"]))
|
|
2432
|
-
], 64)) :
|
|
2433
|
-
])) :
|
|
2434
|
-
x.renderAs === "action" ? (l(), L(
|
|
2442
|
+
], 64)) : b("", !0)
|
|
2443
|
+
])) : b("", !0),
|
|
2444
|
+
x.renderAs === "action" ? (l(), L(g, {
|
|
2435
2445
|
key: 1,
|
|
2436
2446
|
state: x.message.payload.state,
|
|
2437
2447
|
label: s.actionLabel(x.message),
|
|
2438
2448
|
detail: s.actionDetail(x.message)
|
|
2439
|
-
}, null, 8, ["state", "label", "detail"])) : x.renderAs === "admin-pending" ? (l(), L(
|
|
2449
|
+
}, null, 8, ["state", "label", "detail"])) : x.renderAs === "admin-pending" ? (l(), L(g, {
|
|
2440
2450
|
key: 2,
|
|
2441
2451
|
state: "awaiting",
|
|
2442
2452
|
label: "Demande d'approbation envoyée",
|
|
@@ -2452,28 +2462,28 @@ function Bs(t, e, n, o, r, s) {
|
|
|
2452
2462
|
key: 0,
|
|
2453
2463
|
role: A.role,
|
|
2454
2464
|
text: x.message.text_md
|
|
2455
|
-
}, null, 8, ["role", "text"])) :
|
|
2465
|
+
}, null, 8, ["role", "text"])) : b("", !0),
|
|
2456
2466
|
s.attachmentsOf(x.message).length ? (l(), c("div", {
|
|
2457
2467
|
key: 1,
|
|
2458
2468
|
class: E(["wm-list__atts", { "wm-list__atts--align-end": A.role === "user" }])
|
|
2459
2469
|
}, [
|
|
2460
|
-
(l(!0), c(M, null,
|
|
2470
|
+
(l(!0), c(M, null, D(s.attachmentsOf(x.message), (P, R) => (l(), L(S, {
|
|
2461
2471
|
key: `${s.messageKey(x.message)}-att-${R}`,
|
|
2462
2472
|
attachment: P
|
|
2463
2473
|
}, null, 8, ["attachment"]))), 128))
|
|
2464
|
-
], 2)) :
|
|
2474
|
+
], 2)) : b("", !0)
|
|
2465
2475
|
]))
|
|
2466
2476
|
], 14, Cs))), 128)),
|
|
2467
2477
|
(A.role !== "user" || s.lastTimeOf(A)) && !s.hasTrailingOverlay(A) ? (l(), c("div", {
|
|
2468
2478
|
key: 0,
|
|
2469
2479
|
class: E(["wm-list__meta", { "wm-list__meta--right": A.role === "user" }])
|
|
2470
2480
|
}, [
|
|
2471
|
-
A.role !== "user" ? (l(), c("span", xs,
|
|
2472
|
-
A.role !== "user" && s.lastTimeOf(A) ? (l(), c("span", Ts, "·")) :
|
|
2473
|
-
s.lastTimeOf(A) ? (l(), c("span", Ms,
|
|
2474
|
-
], 2)) :
|
|
2481
|
+
A.role !== "user" ? (l(), c("span", xs, k(s.roleLabel(A)), 1)) : b("", !0),
|
|
2482
|
+
A.role !== "user" && s.lastTimeOf(A) ? (l(), c("span", Ts, "·")) : b("", !0),
|
|
2483
|
+
s.lastTimeOf(A) ? (l(), c("span", Ms, k(s.lastTimeOf(A)), 1)) : b("", !0)
|
|
2484
|
+
], 2)) : b("", !0)
|
|
2475
2485
|
], 64))
|
|
2476
|
-
], 2)) :
|
|
2486
|
+
], 2)) : b("", !0)
|
|
2477
2487
|
], 64))), 128)),
|
|
2478
2488
|
n.streamingActive ? (l(), c("div", Os, [
|
|
2479
2489
|
i("div", Is, [
|
|
@@ -2483,7 +2493,7 @@ function Bs(t, e, n, o, r, s) {
|
|
|
2483
2493
|
})
|
|
2484
2494
|
]),
|
|
2485
2495
|
K(F)
|
|
2486
|
-
])) :
|
|
2496
|
+
])) : b("", !0)
|
|
2487
2497
|
], 34);
|
|
2488
2498
|
}
|
|
2489
2499
|
const Es = /* @__PURE__ */ $(_s, [["render", Bs], ["__scopeId", "data-v-54959b73"]]), oe = typeof navigator < "u" && !!navigator.mediaDevices && typeof navigator.mediaDevices.getDisplayMedia == "function", he = typeof window < "u" && typeof window.MediaRecorder < "u";
|
|
@@ -2533,8 +2543,8 @@ async function Rs(t) {
|
|
|
2533
2543
|
e.muted = !0, e.playsInline = !0, e.srcObject = t, await e.play(), await new Promise((d) => requestAnimationFrame(d));
|
|
2534
2544
|
const n = e.videoWidth || 1280, o = e.videoHeight || 720, r = document.createElement("canvas");
|
|
2535
2545
|
r.width = n, r.height = o, r.getContext("2d").drawImage(e, 0, 0, n, o);
|
|
2536
|
-
const s = await new Promise((d,
|
|
2537
|
-
r.toBlob((C) => C ? d(C) :
|
|
2546
|
+
const s = await new Promise((d, g) => {
|
|
2547
|
+
r.toBlob((C) => C ? d(C) : g(new Error("toBlob failed")), "image/png");
|
|
2538
2548
|
}), a = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, 19);
|
|
2539
2549
|
return new File([s], `capture-${a}.png`, { type: "image/png" });
|
|
2540
2550
|
}
|
|
@@ -2588,10 +2598,10 @@ async function Fs(t = {}) {
|
|
|
2588
2598
|
}), null;
|
|
2589
2599
|
}
|
|
2590
2600
|
(C = t.onstart) == null || C.call(t);
|
|
2591
|
-
const
|
|
2601
|
+
const g = Date.now();
|
|
2592
2602
|
return s = setInterval(() => {
|
|
2593
2603
|
var w;
|
|
2594
|
-
(w = t.ontick) == null || w.call(t, Date.now() -
|
|
2604
|
+
(w = t.ontick) == null || w.call(t, Date.now() - g);
|
|
2595
2605
|
}, 500), {
|
|
2596
2606
|
stop: d,
|
|
2597
2607
|
get state() {
|
|
@@ -2599,7 +2609,7 @@ async function Fs(t = {}) {
|
|
|
2599
2609
|
}
|
|
2600
2610
|
};
|
|
2601
2611
|
}
|
|
2602
|
-
const
|
|
2612
|
+
const Ds = [
|
|
2603
2613
|
{
|
|
2604
2614
|
action: "file",
|
|
2605
2615
|
label: "Joindre un fichier",
|
|
@@ -2615,7 +2625,7 @@ const Ns = [
|
|
|
2615
2625
|
label: "Enregistrer l'écran",
|
|
2616
2626
|
path: "M23 7l-7 5 7 5V7z M1 5a2 2 0 012-2h12a2 2 0 012 2v14a2 2 0 01-2 2H3a2 2 0 01-2-2V5z"
|
|
2617
2627
|
}
|
|
2618
|
-
],
|
|
2628
|
+
], Ns = {
|
|
2619
2629
|
name: "WmComposer",
|
|
2620
2630
|
props: {
|
|
2621
2631
|
modelValue: { type: String, default: "" },
|
|
@@ -2638,7 +2648,7 @@ const Ns = [
|
|
|
2638
2648
|
return !this.disabled && !!this.local.trim();
|
|
2639
2649
|
},
|
|
2640
2650
|
attachItems() {
|
|
2641
|
-
return
|
|
2651
|
+
return Ds.map((t) => ({
|
|
2642
2652
|
...t,
|
|
2643
2653
|
disabled: t.action === "screenshot" && !oe || t.action === "record" && (!oe || !he)
|
|
2644
2654
|
}));
|
|
@@ -2761,16 +2771,16 @@ function Xs(t, e, n, o, r, s) {
|
|
|
2761
2771
|
class: "wm-rec__dot",
|
|
2762
2772
|
"aria-hidden": "true"
|
|
2763
2773
|
}, null, -1)),
|
|
2764
|
-
i("span", Ps, "Enregistrement · " +
|
|
2774
|
+
i("span", Ps, "Enregistrement · " + k(s.recordingElapsedLabel), 1),
|
|
2765
2775
|
i("button", {
|
|
2766
2776
|
type: "button",
|
|
2767
2777
|
class: "wm-rec__stop",
|
|
2768
2778
|
onClick: e[0] || (e[0] = (...a) => s.stopRecording && s.stopRecording(...a))
|
|
2769
2779
|
}, "Arrêter")
|
|
2770
|
-
])) :
|
|
2780
|
+
])) : b("", !0),
|
|
2771
2781
|
i("form", {
|
|
2772
2782
|
class: E(["wm-compose", { "has-attach": r.attachOpen }]),
|
|
2773
|
-
onSubmit: e[7] || (e[7] =
|
|
2783
|
+
onSubmit: e[7] || (e[7] = Z((...a) => s.onSubmit && s.onSubmit(...a), ["prevent"]))
|
|
2774
2784
|
}, [
|
|
2775
2785
|
i("input", {
|
|
2776
2786
|
ref: "fileEl",
|
|
@@ -2783,9 +2793,9 @@ function Xs(t, e, n, o, r, s) {
|
|
|
2783
2793
|
key: 0,
|
|
2784
2794
|
class: "wm-compose__overlay",
|
|
2785
2795
|
onClick: e[2] || (e[2] = (a) => r.attachOpen = !1)
|
|
2786
|
-
})) :
|
|
2796
|
+
})) : b("", !0),
|
|
2787
2797
|
r.attachOpen ? (l(), c("div", Hs, [
|
|
2788
|
-
(l(!0), c(M, null,
|
|
2798
|
+
(l(!0), c(M, null, D(s.attachItems, (a) => (l(), c("button", {
|
|
2789
2799
|
key: a.action,
|
|
2790
2800
|
type: "button",
|
|
2791
2801
|
class: "wm-compose__menuItem",
|
|
@@ -2804,9 +2814,9 @@ function Xs(t, e, n, o, r, s) {
|
|
|
2804
2814
|
}, null, 8, Ws)
|
|
2805
2815
|
]))
|
|
2806
2816
|
]),
|
|
2807
|
-
i("span", null,
|
|
2817
|
+
i("span", null, k(a.label), 1)
|
|
2808
2818
|
], 8, zs))), 128))
|
|
2809
|
-
])) :
|
|
2819
|
+
])) : b("", !0),
|
|
2810
2820
|
q(i("textarea", {
|
|
2811
2821
|
ref: "inputEl",
|
|
2812
2822
|
"onUpdate:modelValue": e[3] || (e[3] = (a) => r.local = a),
|
|
@@ -2817,7 +2827,7 @@ function Xs(t, e, n, o, r, s) {
|
|
|
2817
2827
|
onKeydown: e[4] || (e[4] = (...a) => s.onKeydown && s.onKeydown(...a)),
|
|
2818
2828
|
onInput: e[5] || (e[5] = (...a) => s.autosize && s.autosize(...a))
|
|
2819
2829
|
}, null, 40, Ks), [
|
|
2820
|
-
[
|
|
2830
|
+
[X, r.local]
|
|
2821
2831
|
]),
|
|
2822
2832
|
i("div", Gs, [
|
|
2823
2833
|
i("button", {
|
|
@@ -2866,7 +2876,7 @@ function Xs(t, e, n, o, r, s) {
|
|
|
2866
2876
|
], 34)
|
|
2867
2877
|
]);
|
|
2868
2878
|
}
|
|
2869
|
-
const Zs = /* @__PURE__ */ $(
|
|
2879
|
+
const Zs = /* @__PURE__ */ $(Ns, [["render", Xs], ["__scopeId", "data-v-14fa9ec0"]]), Qs = {
|
|
2870
2880
|
name: "WmSuggestionChips",
|
|
2871
2881
|
props: {
|
|
2872
2882
|
items: { type: Array, default: () => [] },
|
|
@@ -2889,14 +2899,14 @@ function tr(t, e, n, o, r, s) {
|
|
|
2889
2899
|
key: s.batchKey,
|
|
2890
2900
|
class: "wm-chips"
|
|
2891
2901
|
}, [
|
|
2892
|
-
(l(!0), c(M, null,
|
|
2902
|
+
(l(!0), c(M, null, D(n.items, (a, d) => (l(), c("button", {
|
|
2893
2903
|
key: d,
|
|
2894
2904
|
type: "button",
|
|
2895
2905
|
class: "wm-chip",
|
|
2896
2906
|
style: G({ animationDelay: n.baseDelay + d * n.stepDelay + "ms" }),
|
|
2897
|
-
onClick: (
|
|
2898
|
-
},
|
|
2899
|
-
])) :
|
|
2907
|
+
onClick: (g) => t.$emit("select", a)
|
|
2908
|
+
}, k(a.label), 13, er))), 128))
|
|
2909
|
+
])) : b("", !0);
|
|
2900
2910
|
}
|
|
2901
2911
|
const nr = /* @__PURE__ */ $(Qs, [["render", tr], ["__scopeId", "data-v-55aa529d"]]), sr = {
|
|
2902
2912
|
name: "WmApprovalCard",
|
|
@@ -2943,8 +2953,8 @@ function ur(t, e, n, o, r, s) {
|
|
|
2943
2953
|
K(a, { size: 24 })
|
|
2944
2954
|
]),
|
|
2945
2955
|
i("div", or, [
|
|
2946
|
-
i("div", lr,
|
|
2947
|
-
n.detail ? (l(), c("div", dr,
|
|
2956
|
+
i("div", lr, k(n.action), 1),
|
|
2957
|
+
n.detail ? (l(), c("div", dr, k(n.detail), 1)) : b("", !0)
|
|
2948
2958
|
])
|
|
2949
2959
|
]),
|
|
2950
2960
|
i("div", cr, [
|
|
@@ -2953,18 +2963,18 @@ function ur(t, e, n, o, r, s) {
|
|
|
2953
2963
|
type: "button",
|
|
2954
2964
|
class: "wm-approval__btn wm-approval__btn--neutral",
|
|
2955
2965
|
onClick: e[0] || (e[0] = (d) => t.$emit("callback", s.rejectId))
|
|
2956
|
-
},
|
|
2966
|
+
}, k(s.rejectLabel), 1)) : b("", !0),
|
|
2957
2967
|
s.approveId ? (l(), c("button", {
|
|
2958
2968
|
key: 1,
|
|
2959
2969
|
type: "button",
|
|
2960
2970
|
class: "wm-approval__btn wm-approval__btn--primary",
|
|
2961
2971
|
onClick: e[1] || (e[1] = (d) => t.$emit("callback", s.approveId))
|
|
2962
|
-
},
|
|
2972
|
+
}, k(s.approveLabel), 1)) : b("", !0)
|
|
2963
2973
|
])
|
|
2964
2974
|
]);
|
|
2965
2975
|
}
|
|
2966
2976
|
const hr = /* @__PURE__ */ $(sr, [["render", ur], ["__scopeId", "data-v-b1be139c"]]);
|
|
2967
|
-
let
|
|
2977
|
+
let ge = 0;
|
|
2968
2978
|
const mr = /* @__PURE__ */ new Set([
|
|
2969
2979
|
"text",
|
|
2970
2980
|
"textarea",
|
|
@@ -2983,8 +2993,8 @@ const mr = /* @__PURE__ */ new Set([
|
|
|
2983
2993
|
},
|
|
2984
2994
|
emits: ["submit"],
|
|
2985
2995
|
data() {
|
|
2986
|
-
return
|
|
2987
|
-
_uid:
|
|
2996
|
+
return ge += 1, {
|
|
2997
|
+
_uid: ge,
|
|
2988
2998
|
values: {},
|
|
2989
2999
|
busy: !1,
|
|
2990
3000
|
error: ""
|
|
@@ -3047,7 +3057,7 @@ const mr = /* @__PURE__ */ new Set([
|
|
|
3047
3057
|
}
|
|
3048
3058
|
}
|
|
3049
3059
|
}
|
|
3050
|
-
}, _r = { class: "wm-form" }, pr = { class: "wm-form__head" },
|
|
3060
|
+
}, _r = { class: "wm-form" }, pr = { class: "wm-form__head" }, gr = { class: "wm-form__icon" }, vr = { class: "wm-form__main" }, yr = { class: "wm-form__title" }, wr = {
|
|
3051
3061
|
key: 0,
|
|
3052
3062
|
class: "wm-form__detail"
|
|
3053
3063
|
}, br = ["for"], kr = {
|
|
@@ -3070,27 +3080,27 @@ const mr = /* @__PURE__ */ new Set([
|
|
|
3070
3080
|
key: 0,
|
|
3071
3081
|
class: "wm-form__spinner",
|
|
3072
3082
|
"aria-hidden": "true"
|
|
3073
|
-
},
|
|
3083
|
+
}, Dr = {
|
|
3074
3084
|
key: 2,
|
|
3075
3085
|
class: "wm-form__doneLbl"
|
|
3076
3086
|
};
|
|
3077
|
-
function
|
|
3087
|
+
function Nr(t, e, n, o, r, s) {
|
|
3078
3088
|
const a = B("AIAvatar");
|
|
3079
3089
|
return l(), c("div", _r, [
|
|
3080
3090
|
i("div", pr, [
|
|
3081
|
-
i("div",
|
|
3091
|
+
i("div", gr, [
|
|
3082
3092
|
K(a, { size: 24 })
|
|
3083
3093
|
]),
|
|
3084
|
-
i("div",
|
|
3085
|
-
i("div", yr,
|
|
3086
|
-
n.form.description ? (l(), c("div", wr,
|
|
3094
|
+
i("div", vr, [
|
|
3095
|
+
i("div", yr, k(n.form.title || "Formulaire"), 1),
|
|
3096
|
+
n.form.description ? (l(), c("div", wr, k(n.form.description), 1)) : b("", !0)
|
|
3087
3097
|
])
|
|
3088
3098
|
]),
|
|
3089
3099
|
i("form", {
|
|
3090
3100
|
class: "wm-form__body",
|
|
3091
|
-
onSubmit: e[0] || (e[0] =
|
|
3101
|
+
onSubmit: e[0] || (e[0] = Z((...d) => s.onSubmit && s.onSubmit(...d), ["prevent"]))
|
|
3092
3102
|
}, [
|
|
3093
|
-
(l(!0), c(M, null,
|
|
3103
|
+
(l(!0), c(M, null, D(s.normalizedFields, (d) => (l(), c("div", {
|
|
3094
3104
|
key: d.key,
|
|
3095
3105
|
class: "wm-form__field"
|
|
3096
3106
|
}, [
|
|
@@ -3098,35 +3108,35 @@ function Dr(t, e, n, o, r, s) {
|
|
|
3098
3108
|
for: `wm-f-${r._uid}-${d.key}`,
|
|
3099
3109
|
class: "wm-form__label"
|
|
3100
3110
|
}, [
|
|
3101
|
-
te(
|
|
3102
|
-
d.required ? (l(), c("span", kr, "*")) :
|
|
3111
|
+
te(k(d.label), 1),
|
|
3112
|
+
d.required ? (l(), c("span", kr, "*")) : b("", !0)
|
|
3103
3113
|
], 8, br),
|
|
3104
3114
|
d.type === "text" ? q((l(), c("input", {
|
|
3105
3115
|
key: 0,
|
|
3106
3116
|
id: `wm-f-${r._uid}-${d.key}`,
|
|
3107
|
-
"onUpdate:modelValue": (
|
|
3117
|
+
"onUpdate:modelValue": (g) => r.values[d.key] = g,
|
|
3108
3118
|
type: "text",
|
|
3109
3119
|
class: "wm-form__input",
|
|
3110
3120
|
placeholder: d.placeholder || "",
|
|
3111
3121
|
required: d.required,
|
|
3112
3122
|
disabled: n.readOnly || r.busy
|
|
3113
3123
|
}, null, 8, Cr)), [
|
|
3114
|
-
[
|
|
3124
|
+
[X, r.values[d.key]]
|
|
3115
3125
|
]) : d.type === "textarea" ? q((l(), c("textarea", {
|
|
3116
3126
|
key: 1,
|
|
3117
3127
|
id: `wm-f-${r._uid}-${d.key}`,
|
|
3118
|
-
"onUpdate:modelValue": (
|
|
3128
|
+
"onUpdate:modelValue": (g) => r.values[d.key] = g,
|
|
3119
3129
|
class: "wm-form__textarea",
|
|
3120
3130
|
rows: "3",
|
|
3121
3131
|
placeholder: d.placeholder || "",
|
|
3122
3132
|
required: d.required,
|
|
3123
3133
|
disabled: n.readOnly || r.busy
|
|
3124
3134
|
}, null, 8, Ar)), [
|
|
3125
|
-
[
|
|
3135
|
+
[X, r.values[d.key]]
|
|
3126
3136
|
]) : d.type === "number" ? q((l(), c("input", {
|
|
3127
3137
|
key: 2,
|
|
3128
3138
|
id: `wm-f-${r._uid}-${d.key}`,
|
|
3129
|
-
"onUpdate:modelValue": (
|
|
3139
|
+
"onUpdate:modelValue": (g) => r.values[d.key] = g,
|
|
3130
3140
|
type: "number",
|
|
3131
3141
|
class: "wm-form__input",
|
|
3132
3142
|
placeholder: d.placeholder || "",
|
|
@@ -3134,7 +3144,7 @@ function Dr(t, e, n, o, r, s) {
|
|
|
3134
3144
|
disabled: n.readOnly || r.busy
|
|
3135
3145
|
}, null, 8, Sr)), [
|
|
3136
3146
|
[
|
|
3137
|
-
|
|
3147
|
+
X,
|
|
3138
3148
|
r.values[d.key],
|
|
3139
3149
|
void 0,
|
|
3140
3150
|
{ number: !0 }
|
|
@@ -3142,68 +3152,68 @@ function Dr(t, e, n, o, r, s) {
|
|
|
3142
3152
|
]) : d.type === "date" ? q((l(), c("input", {
|
|
3143
3153
|
key: 3,
|
|
3144
3154
|
id: `wm-f-${r._uid}-${d.key}`,
|
|
3145
|
-
"onUpdate:modelValue": (
|
|
3155
|
+
"onUpdate:modelValue": (g) => r.values[d.key] = g,
|
|
3146
3156
|
type: "date",
|
|
3147
3157
|
class: "wm-form__input",
|
|
3148
3158
|
required: d.required,
|
|
3149
3159
|
disabled: n.readOnly || r.busy
|
|
3150
3160
|
}, null, 8, xr)), [
|
|
3151
|
-
[
|
|
3161
|
+
[X, r.values[d.key]]
|
|
3152
3162
|
]) : d.type === "boolean" ? (l(), c("label", Tr, [
|
|
3153
3163
|
q(i("input", {
|
|
3154
3164
|
id: `wm-f-${r._uid}-${d.key}`,
|
|
3155
|
-
"onUpdate:modelValue": (
|
|
3165
|
+
"onUpdate:modelValue": (g) => r.values[d.key] = g,
|
|
3156
3166
|
type: "checkbox",
|
|
3157
3167
|
disabled: n.readOnly || r.busy
|
|
3158
3168
|
}, null, 8, Mr), [
|
|
3159
3169
|
[Ie, r.values[d.key]]
|
|
3160
3170
|
]),
|
|
3161
|
-
i("span", null,
|
|
3171
|
+
i("span", null, k(d.placeholder || "Oui"), 1)
|
|
3162
3172
|
])) : d.type === "select" ? q((l(), c("select", {
|
|
3163
3173
|
key: 5,
|
|
3164
3174
|
id: `wm-f-${r._uid}-${d.key}`,
|
|
3165
|
-
"onUpdate:modelValue": (
|
|
3175
|
+
"onUpdate:modelValue": (g) => r.values[d.key] = g,
|
|
3166
3176
|
class: "wm-form__select",
|
|
3167
3177
|
required: d.required,
|
|
3168
3178
|
disabled: n.readOnly || r.busy
|
|
3169
3179
|
}, [
|
|
3170
|
-
i("option", Ir,
|
|
3171
|
-
(l(!0), c(M, null,
|
|
3172
|
-
key:
|
|
3173
|
-
value:
|
|
3174
|
-
},
|
|
3180
|
+
i("option", Ir, k(d.placeholder || "Choisir…"), 1),
|
|
3181
|
+
(l(!0), c(M, null, D(d.options, (g) => (l(), c("option", {
|
|
3182
|
+
key: g.value,
|
|
3183
|
+
value: g.value
|
|
3184
|
+
}, k(g.label), 9, Br))), 128))
|
|
3175
3185
|
], 8, Or)), [
|
|
3176
3186
|
[Be, r.values[d.key]]
|
|
3177
3187
|
]) : d.type === "multiselect" ? (l(), c("div", Er, [
|
|
3178
|
-
(l(!0), c(M, null,
|
|
3179
|
-
key:
|
|
3188
|
+
(l(!0), c(M, null, D(d.options, (g) => (l(), c("label", {
|
|
3189
|
+
key: g.value,
|
|
3180
3190
|
class: "wm-form__multiItem"
|
|
3181
3191
|
}, [
|
|
3182
3192
|
i("input", {
|
|
3183
3193
|
type: "checkbox",
|
|
3184
|
-
value:
|
|
3185
|
-
checked: Array.isArray(r.values[d.key]) && r.values[d.key].includes(
|
|
3194
|
+
value: g.value,
|
|
3195
|
+
checked: Array.isArray(r.values[d.key]) && r.values[d.key].includes(g.value),
|
|
3186
3196
|
disabled: n.readOnly || r.busy,
|
|
3187
|
-
onChange: (C) => s.toggleMulti(d.key,
|
|
3197
|
+
onChange: (C) => s.toggleMulti(d.key, g.value, C.target.checked)
|
|
3188
3198
|
}, null, 40, $r),
|
|
3189
|
-
i("span", null,
|
|
3199
|
+
i("span", null, k(g.label), 1)
|
|
3190
3200
|
]))), 128))
|
|
3191
|
-
])) :
|
|
3201
|
+
])) : b("", !0)
|
|
3192
3202
|
]))), 128)),
|
|
3193
|
-
r.error ? (l(), c("div", Lr,
|
|
3194
|
-
n.readOnly ? (l(), c("div",
|
|
3203
|
+
r.error ? (l(), c("div", Lr, k(r.error), 1)) : b("", !0),
|
|
3204
|
+
n.readOnly ? (l(), c("div", Dr, "Réponse envoyée")) : (l(), c("button", {
|
|
3195
3205
|
key: 1,
|
|
3196
3206
|
type: "submit",
|
|
3197
3207
|
class: "wm-form__submit",
|
|
3198
3208
|
disabled: r.busy
|
|
3199
3209
|
}, [
|
|
3200
|
-
r.busy ? (l(), c("span", Fr)) :
|
|
3201
|
-
i("span", null,
|
|
3210
|
+
r.busy ? (l(), c("span", Fr)) : b("", !0),
|
|
3211
|
+
i("span", null, k(r.busy ? "Envoi…" : n.form.submit_label || "Envoyer"), 1)
|
|
3202
3212
|
], 8, Rr))
|
|
3203
3213
|
], 32)
|
|
3204
3214
|
]);
|
|
3205
3215
|
}
|
|
3206
|
-
const jr = /* @__PURE__ */ $(fr, [["render",
|
|
3216
|
+
const jr = /* @__PURE__ */ $(fr, [["render", Nr], ["__scopeId", "data-v-64b40f76"]]), Ur = {
|
|
3207
3217
|
name: "WmFeedback",
|
|
3208
3218
|
props: {
|
|
3209
3219
|
busy: { type: Boolean, default: !1 },
|
|
@@ -3239,14 +3249,14 @@ function Gr(t, e, n, o, r, s) {
|
|
|
3239
3249
|
e[1] || (e[1] = i("div", { class: "wm-fb__title" }, "Comment s'est passée cette conversation ?", -1)),
|
|
3240
3250
|
e[2] || (e[2] = i("div", { class: "wm-fb__sub" }, "Votre avis nous aide à améliorer l'assistant.", -1)),
|
|
3241
3251
|
i("div", Hr, [
|
|
3242
|
-
(l(!0), c(M, null,
|
|
3252
|
+
(l(!0), c(M, null, D(r.options, (a) => (l(), c("button", {
|
|
3243
3253
|
key: a.v,
|
|
3244
3254
|
type: "button",
|
|
3245
3255
|
class: E(["wm-fb__opt", { "is-selected": r.sel === a.v }]),
|
|
3246
3256
|
onClick: (d) => r.sel = a.v
|
|
3247
3257
|
}, [
|
|
3248
|
-
i("span", Vr,
|
|
3249
|
-
i("span", qr,
|
|
3258
|
+
i("span", Vr, k(a.e), 1),
|
|
3259
|
+
i("span", qr, k(a.l), 1)
|
|
3250
3260
|
], 10, zr))), 128))
|
|
3251
3261
|
]),
|
|
3252
3262
|
i("button", {
|
|
@@ -3254,7 +3264,7 @@ function Gr(t, e, n, o, r, s) {
|
|
|
3254
3264
|
class: "wm-fb__send",
|
|
3255
3265
|
disabled: !r.sel || n.busy,
|
|
3256
3266
|
onClick: e[0] || (e[0] = (...a) => s.onSend && s.onSend(...a))
|
|
3257
|
-
},
|
|
3267
|
+
}, k(n.busy ? "Envoi…" : "Envoyer mon avis"), 9, Wr)
|
|
3258
3268
|
], 64))
|
|
3259
3269
|
]);
|
|
3260
3270
|
}
|
|
@@ -3408,25 +3418,25 @@ function _i(t, e, n, o, r, s) {
|
|
|
3408
3418
|
placeholder: "Rechercher dans vos messages",
|
|
3409
3419
|
"aria-label": "Rechercher dans vos messages"
|
|
3410
3420
|
}, null, 512), [
|
|
3411
|
-
[
|
|
3421
|
+
[X, r.query]
|
|
3412
3422
|
])
|
|
3413
3423
|
])
|
|
3414
3424
|
]),
|
|
3415
3425
|
i("div", si, [
|
|
3416
|
-
(l(!0), c(M, null,
|
|
3426
|
+
(l(!0), c(M, null, D(s.groups, (a) => (l(), c(M, {
|
|
3417
3427
|
key: a.key
|
|
3418
3428
|
}, [
|
|
3419
3429
|
a.items.length ? (l(), c("div", ri, [
|
|
3420
|
-
i("div", ii,
|
|
3430
|
+
i("div", ii, k(a.label), 1),
|
|
3421
3431
|
i("div", ai, [
|
|
3422
|
-
(l(!0), c(M, null,
|
|
3432
|
+
(l(!0), c(M, null, D(a.items, (d) => (l(), c("button", {
|
|
3423
3433
|
key: d.id,
|
|
3424
3434
|
type: "button",
|
|
3425
3435
|
class: E(["wm-hd__row", {
|
|
3426
3436
|
"wm-hd__row--active": d.id === n.activeId,
|
|
3427
3437
|
"wm-hd__row--unread": d.unread
|
|
3428
3438
|
}]),
|
|
3429
|
-
onClick: (
|
|
3439
|
+
onClick: (g) => t.$emit("pick", d)
|
|
3430
3440
|
}, [
|
|
3431
3441
|
i("div", li, [
|
|
3432
3442
|
e[8] || (e[8] = i("svg", {
|
|
@@ -3442,24 +3452,24 @@ function _i(t, e, n, o, r, s) {
|
|
|
3442
3452
|
opacity: "0.92"
|
|
3443
3453
|
})
|
|
3444
3454
|
], -1)),
|
|
3445
|
-
d.unread ? (l(), c("span", di)) :
|
|
3455
|
+
d.unread ? (l(), c("span", di)) : b("", !0)
|
|
3446
3456
|
]),
|
|
3447
3457
|
i("div", ci, [
|
|
3448
3458
|
i("div", ui, [
|
|
3449
|
-
i("span", hi,
|
|
3459
|
+
i("span", hi, k(d.title), 1)
|
|
3450
3460
|
]),
|
|
3451
|
-
i("div", mi,
|
|
3461
|
+
i("div", mi, k(d.preview || "Aucun message"), 1)
|
|
3452
3462
|
])
|
|
3453
3463
|
], 10, oi))), 128))
|
|
3454
3464
|
])
|
|
3455
|
-
])) :
|
|
3465
|
+
])) : b("", !0)
|
|
3456
3466
|
], 64))), 128)),
|
|
3457
|
-
s.hasAny ?
|
|
3467
|
+
s.hasAny ? b("", !0) : (l(), c("div", fi, " Aucun fil pour le moment. "))
|
|
3458
3468
|
])
|
|
3459
3469
|
])
|
|
3460
3470
|
]);
|
|
3461
3471
|
}
|
|
3462
|
-
const pi = /* @__PURE__ */ $(Xr, [["render", _i], ["__scopeId", "data-v-1259e822"]]),
|
|
3472
|
+
const pi = /* @__PURE__ */ $(Xr, [["render", _i], ["__scopeId", "data-v-1259e822"]]), gi = {
|
|
3463
3473
|
name: "WmMoreMenu",
|
|
3464
3474
|
props: {
|
|
3465
3475
|
canRename: { type: Boolean, default: !0 },
|
|
@@ -3485,12 +3495,12 @@ const pi = /* @__PURE__ */ $(Xr, [["render", _i], ["__scopeId", "data-v-1259e822
|
|
|
3485
3495
|
this.notifOn = !this.notifOn, this.$emit("notif-toggle", this.notifOn);
|
|
3486
3496
|
}
|
|
3487
3497
|
}
|
|
3488
|
-
},
|
|
3498
|
+
}, vi = { class: "wm-mm" }, yi = {
|
|
3489
3499
|
class: "wm-mm__pop",
|
|
3490
3500
|
role: "menu"
|
|
3491
3501
|
}, wi = { class: "wm-mm__section" }, bi = { class: "wm-mm__section" }, ki = { class: "wm-mm__section" };
|
|
3492
3502
|
function Ci(t, e, n, o, r, s) {
|
|
3493
|
-
return l(), c("div",
|
|
3503
|
+
return l(), c("div", vi, [
|
|
3494
3504
|
i("div", {
|
|
3495
3505
|
class: "wm-mm__scrim",
|
|
3496
3506
|
onClick: e[0] || (e[0] = (a) => t.$emit("close"))
|
|
@@ -3526,7 +3536,7 @@ function Ci(t, e, n, o, r, s) {
|
|
|
3526
3536
|
onClick: e[2] || (e[2] = (a) => s.emit("rename"))
|
|
3527
3537
|
}, [...e[8] || (e[8] = [
|
|
3528
3538
|
ue('<span class="wm-mm__icon" data-v-3181ad1b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3181ad1b><path d="M12 20h9" data-v-3181ad1b></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z" data-v-3181ad1b></path></svg></span><span class="wm-mm__label" data-v-3181ad1b>Modifier le titre</span>', 2)
|
|
3529
|
-
])])) :
|
|
3539
|
+
])])) : b("", !0),
|
|
3530
3540
|
n.canExport ? (l(), c("button", {
|
|
3531
3541
|
key: 1,
|
|
3532
3542
|
type: "button",
|
|
@@ -3534,7 +3544,7 @@ function Ci(t, e, n, o, r, s) {
|
|
|
3534
3544
|
onClick: e[3] || (e[3] = (a) => s.emit("export"))
|
|
3535
3545
|
}, [...e[9] || (e[9] = [
|
|
3536
3546
|
ue('<span class="wm-mm__icon" data-v-3181ad1b><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" data-v-3181ad1b><path d="M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8M16 6l-4-4-4 4M12 2v13" data-v-3181ad1b></path></svg></span><span class="wm-mm__label" data-v-3181ad1b>Exporter la transcription</span><span class="wm-mm__hint" data-v-3181ad1b>.txt</span>', 3)
|
|
3537
|
-
])])) :
|
|
3547
|
+
])])) : b("", !0)
|
|
3538
3548
|
]),
|
|
3539
3549
|
e[15] || (e[15] = i("div", { class: "wm-mm__sep" }, null, -1)),
|
|
3540
3550
|
i("div", bi, [
|
|
@@ -3590,7 +3600,7 @@ function Ci(t, e, n, o, r, s) {
|
|
|
3590
3600
|
])
|
|
3591
3601
|
], -1),
|
|
3592
3602
|
i("span", { class: "wm-mm__label" }, "Statut des services", -1)
|
|
3593
|
-
])])) :
|
|
3603
|
+
])])) : b("", !0),
|
|
3594
3604
|
n.helpUrl ? (l(), c("button", {
|
|
3595
3605
|
key: 1,
|
|
3596
3606
|
type: "button",
|
|
@@ -3613,12 +3623,12 @@ function Ci(t, e, n, o, r, s) {
|
|
|
3613
3623
|
])
|
|
3614
3624
|
], -1),
|
|
3615
3625
|
i("span", { class: "wm-mm__label" }, "Centre d'aide", -1)
|
|
3616
|
-
])])) :
|
|
3626
|
+
])])) : b("", !0)
|
|
3617
3627
|
])
|
|
3618
3628
|
])
|
|
3619
3629
|
]);
|
|
3620
3630
|
}
|
|
3621
|
-
const Ai = /* @__PURE__ */ $(
|
|
3631
|
+
const Ai = /* @__PURE__ */ $(gi, [["render", Ci], ["__scopeId", "data-v-3181ad1b"]]), Si = {
|
|
3622
3632
|
name: "WmRenameDialog",
|
|
3623
3633
|
props: {
|
|
3624
3634
|
title: { type: String, default: "Modifier le titre" },
|
|
@@ -3665,7 +3675,7 @@ function Li(t, e, n, o, r, s) {
|
|
|
3665
3675
|
}),
|
|
3666
3676
|
i("div", Ti, [
|
|
3667
3677
|
i("div", Mi, [
|
|
3668
|
-
i("div", Oi,
|
|
3678
|
+
i("div", Oi, k(n.title), 1),
|
|
3669
3679
|
i("button", {
|
|
3670
3680
|
type: "button",
|
|
3671
3681
|
class: "wm-dialog__close",
|
|
@@ -3696,11 +3706,11 @@ function Li(t, e, n, o, r, s) {
|
|
|
3696
3706
|
placeholder: n.placeholder,
|
|
3697
3707
|
maxlength: 120,
|
|
3698
3708
|
onKeydown: [
|
|
3699
|
-
e[3] || (e[3] = ae(
|
|
3700
|
-
e[4] || (e[4] = ae(
|
|
3709
|
+
e[3] || (e[3] = ae(Z((...a) => s.onSubmit && s.onSubmit(...a), ["prevent"]), ["enter"])),
|
|
3710
|
+
e[4] || (e[4] = ae(Z((a) => t.$emit("close"), ["prevent"]), ["esc"]))
|
|
3701
3711
|
]
|
|
3702
3712
|
}, null, 40, Bi), [
|
|
3703
|
-
[
|
|
3713
|
+
[X, r.value]
|
|
3704
3714
|
])
|
|
3705
3715
|
]),
|
|
3706
3716
|
i("div", Ei, [
|
|
@@ -3719,7 +3729,7 @@ function Li(t, e, n, o, r, s) {
|
|
|
3719
3729
|
])
|
|
3720
3730
|
]);
|
|
3721
3731
|
}
|
|
3722
|
-
const Ri = /* @__PURE__ */ $(Si, [["render", Li], ["__scopeId", "data-v-4f4b37c9"]]),
|
|
3732
|
+
const Ri = /* @__PURE__ */ $(Si, [["render", Li], ["__scopeId", "data-v-4f4b37c9"]]), ve = "ww-messenger-tokens";
|
|
3723
3733
|
function ie(t) {
|
|
3724
3734
|
var n;
|
|
3725
3735
|
const e = (n = t == null ? void 0 : t.author) == null ? void 0 : n.type;
|
|
@@ -3748,7 +3758,7 @@ function le(t, e) {
|
|
|
3748
3758
|
const n = t.options.find((o) => (o == null ? void 0 : o.value) === e);
|
|
3749
3759
|
return (n == null ? void 0 : n.label) || e;
|
|
3750
3760
|
}
|
|
3751
|
-
function
|
|
3761
|
+
function Di(t, e) {
|
|
3752
3762
|
const n = [], o = Array.isArray(t == null ? void 0 : t.fields) ? t.fields : [];
|
|
3753
3763
|
for (const r of o) {
|
|
3754
3764
|
if (!(r != null && r.key) || !(r != null && r.label)) continue;
|
|
@@ -3756,7 +3766,7 @@ function Ni(t, e) {
|
|
|
3756
3766
|
if (s == null || s === "") continue;
|
|
3757
3767
|
let a;
|
|
3758
3768
|
if (Array.isArray(s)) {
|
|
3759
|
-
if (a = s.map((
|
|
3769
|
+
if (a = s.map((g) => le(r, String(g))).join(", "), !a) continue;
|
|
3760
3770
|
} else typeof s == "boolean" ? a = s ? "Oui" : "Non" : a = le(r, String(s));
|
|
3761
3771
|
const d = r.type === "textarea" || typeof a == "string" && (a.length > 60 || a.includes(`
|
|
3762
3772
|
`));
|
|
@@ -3770,7 +3780,7 @@ function Ni(t, e) {
|
|
|
3770
3780
|
}
|
|
3771
3781
|
};
|
|
3772
3782
|
}
|
|
3773
|
-
const
|
|
3783
|
+
const Ni = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
3774
3784
|
name: "Messenger",
|
|
3775
3785
|
components: {
|
|
3776
3786
|
Launcher: Ge,
|
|
@@ -3880,6 +3890,12 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
3880
3890
|
// unread dot in the history drawer survives reloads. The server
|
|
3881
3891
|
// has no per-customer read model, so this is purely client-side.
|
|
3882
3892
|
readState: {},
|
|
3893
|
+
// ISO timestamp captured the first time this client boots on a
|
|
3894
|
+
// device (no prior `readState` in localStorage). Used as the floor
|
|
3895
|
+
// for conversations with no explicit read entry, so opening the
|
|
3896
|
+
// messenger on a fresh browser doesn't mark every historical
|
|
3897
|
+
// thread as unread.
|
|
3898
|
+
readBootTs: "",
|
|
3883
3899
|
// ISO timestamp frozen at the moment the user *started viewing*
|
|
3884
3900
|
// the current thread (panel open + thread visible). Drives the
|
|
3885
3901
|
// "Non lus" separator inside the MessageList: messages newer than
|
|
@@ -3962,11 +3978,11 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
3962
3978
|
// so both are derived client-side from the cached messages + the
|
|
3963
3979
|
// local `readState`.
|
|
3964
3980
|
drawerConversations() {
|
|
3965
|
-
var
|
|
3966
|
-
const t = this.readState, e = ((
|
|
3967
|
-
return this.allConversations.map((
|
|
3968
|
-
const
|
|
3969
|
-
return { ...
|
|
3981
|
+
var o;
|
|
3982
|
+
const t = this.readState, e = this.readBootTs, n = ((o = this.s) == null ? void 0 : o.messagesByConv) || {};
|
|
3983
|
+
return this.allConversations.map((r) => {
|
|
3984
|
+
const s = n[r.id] || [], a = this.convLastActivity(r, s), d = t[r.id] || e || "", g = this.lastMessageAuthorType(s), C = !!a && g !== "user" && (!d || a > d);
|
|
3985
|
+
return { ...r, _preview: this.convPreview(r, s), _unread: C };
|
|
3970
3986
|
});
|
|
3971
3987
|
},
|
|
3972
3988
|
// How many threads have an unseen agent/human message. Drives the
|
|
@@ -4157,11 +4173,11 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4157
4173
|
return ((e = (t = this.pendingApproval) == null ? void 0 : t.payload) == null ? void 0 : e.name) || ((n = this.pendingApproval) == null ? void 0 : n.text_md) || "Confirmer l'action";
|
|
4158
4174
|
},
|
|
4159
4175
|
approvalDetail() {
|
|
4160
|
-
var o, r, s, a, d,
|
|
4176
|
+
var o, r, s, a, d, g;
|
|
4161
4177
|
const t = (s = (r = (o = this.pendingApproval) == null ? void 0 : o.payload) == null ? void 0 : r.pending) == null ? void 0 : s.user_explanation;
|
|
4162
4178
|
if (typeof t == "string" && t.trim())
|
|
4163
4179
|
return t.trim();
|
|
4164
|
-
const e = (
|
|
4180
|
+
const e = (g = (d = (a = this.pendingApproval) == null ? void 0 : a.payload) == null ? void 0 : d.pending) == null ? void 0 : g.prepared_params;
|
|
4165
4181
|
if (!e || typeof e != "object") return "";
|
|
4166
4182
|
const n = Object.entries(e);
|
|
4167
4183
|
return n.length ? n.slice(0, 2).map(([C, w]) => `${C}: ${w}`).join(" · ") : "";
|
|
@@ -4334,9 +4350,9 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4334
4350
|
hasWidgetId: !!this.widgetId,
|
|
4335
4351
|
hasUserId: !!this.userId,
|
|
4336
4352
|
hasUserHash: !!this.userHash
|
|
4337
|
-
}), typeof document < "u" && !document.getElementById(
|
|
4353
|
+
}), typeof document < "u" && !document.getElementById(ve)) {
|
|
4338
4354
|
const t = document.createElement("style");
|
|
4339
|
-
t.id =
|
|
4355
|
+
t.id = ve, t.textContent = Pe, document.head.appendChild(t);
|
|
4340
4356
|
}
|
|
4341
4357
|
this.hydrateReadState(), await this.boot(), this.isEmbedded && this.store && await this.open();
|
|
4342
4358
|
},
|
|
@@ -4405,8 +4421,8 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4405
4421
|
const d = typeof a.text_md == "string" ? a.text_md.trim() : "";
|
|
4406
4422
|
if (d)
|
|
4407
4423
|
return (((n = a.author) == null ? void 0 : n.type) === "user" ? "Vous : " : "") + d.replace(/\s+/g, " ");
|
|
4408
|
-
const
|
|
4409
|
-
if (Array.isArray(
|
|
4424
|
+
const g = (o = a.payload) == null ? void 0 : o.attachments;
|
|
4425
|
+
if (Array.isArray(g) && g.length) return "📎 Pièce jointe";
|
|
4410
4426
|
}
|
|
4411
4427
|
return (t == null ? void 0 : t.last_message_preview) || (t == null ? void 0 : t.preview) || ((r = t == null ? void 0 : t.metadata) == null ? void 0 : r.last_preview) || "";
|
|
4412
4428
|
},
|
|
@@ -4414,13 +4430,20 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4414
4430
|
const t = this.widgetId || "", e = this.userId || "";
|
|
4415
4431
|
return `wm:read:${t}:${e}`;
|
|
4416
4432
|
},
|
|
4433
|
+
readBootStorageKey() {
|
|
4434
|
+
const t = this.widgetId || "", e = this.userId || "";
|
|
4435
|
+
return `wm:read-boot:${t}:${e}`;
|
|
4436
|
+
},
|
|
4417
4437
|
hydrateReadState() {
|
|
4418
4438
|
try {
|
|
4419
4439
|
if (typeof localStorage > "u") return;
|
|
4420
4440
|
const t = localStorage.getItem(this.readStorageKey());
|
|
4421
|
-
if (
|
|
4422
|
-
|
|
4423
|
-
|
|
4441
|
+
if (t) {
|
|
4442
|
+
const n = JSON.parse(t);
|
|
4443
|
+
n && typeof n == "object" && (this.readState = n);
|
|
4444
|
+
}
|
|
4445
|
+
let e = localStorage.getItem(this.readBootStorageKey()) || "";
|
|
4446
|
+
e || (e = (/* @__PURE__ */ new Date()).toISOString(), localStorage.setItem(this.readBootStorageKey(), e)), this.readBootTs = e;
|
|
4424
4447
|
} catch {
|
|
4425
4448
|
}
|
|
4426
4449
|
},
|
|
@@ -4474,14 +4497,14 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4474
4497
|
Pi,
|
|
4475
4498
|
Math.max(Ui, n * ji)
|
|
4476
4499
|
), s = Math.max(
|
|
4477
|
-
e +
|
|
4500
|
+
e + Ni,
|
|
4478
4501
|
this.nextRevealAt + Hi
|
|
4479
4502
|
) + o;
|
|
4480
4503
|
this.nextRevealAt = s;
|
|
4481
|
-
const a = Math.max(0, s - e), d = t.id,
|
|
4482
|
-
this.revealedAt = { ...this.revealedAt, [d]: Date.now() }, this.revealTimers = this.revealTimers.filter((C) => C !==
|
|
4504
|
+
const a = Math.max(0, s - e), d = t.id, g = setTimeout(() => {
|
|
4505
|
+
this.revealedAt = { ...this.revealedAt, [d]: Date.now() }, this.revealTimers = this.revealTimers.filter((C) => C !== g);
|
|
4483
4506
|
}, a);
|
|
4484
|
-
this.revealTimers.push(
|
|
4507
|
+
this.revealTimers.push(g);
|
|
4485
4508
|
},
|
|
4486
4509
|
async boot() {
|
|
4487
4510
|
if (!this.canBoot) {
|
|
@@ -4741,7 +4764,7 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4741
4764
|
}
|
|
4742
4765
|
},
|
|
4743
4766
|
exportCurrentConv() {
|
|
4744
|
-
var r, s, a, d,
|
|
4767
|
+
var r, s, a, d, g, C;
|
|
4745
4768
|
const t = this.currentConv;
|
|
4746
4769
|
if (!t) return;
|
|
4747
4770
|
const e = (((s = (r = this.s) == null ? void 0 : r.messagesByConv) == null ? void 0 : s[t.id]) || []).slice(), n = [
|
|
@@ -4751,7 +4774,7 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4751
4774
|
];
|
|
4752
4775
|
for (const w of e) {
|
|
4753
4776
|
if (!w) continue;
|
|
4754
|
-
const S = ((a = w.author) == null ? void 0 : a.name) || (((d = w.author) == null ? void 0 : d.type) === "user" ? "Vous" : ((
|
|
4777
|
+
const S = ((a = w.author) == null ? void 0 : a.name) || (((d = w.author) == null ? void 0 : d.type) === "user" ? "Vous" : ((g = w.author) == null ? void 0 : g.type) === "agent_human" ? "Agent" : ((C = w.author) == null ? void 0 : C.type) === "agent_ia" ? "Assistant IA" : "Système"), F = w.created_at ? new Date(w.created_at).toLocaleString("fr-FR") : "", A = (w.text_md || "").trim();
|
|
4755
4778
|
A && (n.push(`[${F}] ${S} :`), n.push(A), n.push(""));
|
|
4756
4779
|
}
|
|
4757
4780
|
const o = new Blob([n.join(`
|
|
@@ -4791,7 +4814,7 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4791
4814
|
let o = this.currentConv;
|
|
4792
4815
|
o && (o._draft && (o = await this.ensureRealConv(), !o) || await this.store.send(o.id, n, {
|
|
4793
4816
|
metadata: {
|
|
4794
|
-
artifact:
|
|
4817
|
+
artifact: Di(e.form, t)
|
|
4795
4818
|
}
|
|
4796
4819
|
}));
|
|
4797
4820
|
},
|
|
@@ -4857,7 +4880,7 @@ const Di = 450, ji = 50, Ui = 900, Pi = 12e3, Hi = 300, zi = {
|
|
|
4857
4880
|
class: "wm-attached"
|
|
4858
4881
|
}, Qi = ["onClick"];
|
|
4859
4882
|
function ea(t, e, n, o, r, s) {
|
|
4860
|
-
const a = B("Launcher"), d = B("Header"),
|
|
4883
|
+
const a = B("Launcher"), d = B("Header"), g = B("Onboarding"), C = B("MessageList"), w = B("ApprovalCard"), S = B("FormCard"), F = B("Feedback"), A = B("SuggestionChips"), U = B("Composer"), x = B("MoreMenu"), j = B("RenameDialog"), P = B("HistoryDrawer");
|
|
4861
4884
|
return l(), c("div", {
|
|
4862
4885
|
class: E(["wm-root", `wm-root--${n.displayMode}`])
|
|
4863
4886
|
}, [
|
|
@@ -4867,7 +4890,7 @@ function ea(t, e, n, o, r, s) {
|
|
|
4867
4890
|
peek: s.launcherPeek,
|
|
4868
4891
|
onOpen: s.openFromPeek,
|
|
4869
4892
|
onDismiss: e[0] || (e[0] = (R) => r.labelDismissed = !0)
|
|
4870
|
-
}, null, 8, ["unread-count", "peek", "onOpen"])) :
|
|
4893
|
+
}, null, 8, ["unread-count", "peek", "onOpen"])) : b("", !0),
|
|
4871
4894
|
r.isOpen || s.isEmbedded ? (l(), c("section", {
|
|
4872
4895
|
key: 1,
|
|
4873
4896
|
class: E(["wm-panel", `wm-panel--${n.displayMode}`]),
|
|
@@ -4876,7 +4899,7 @@ function ea(t, e, n, o, r, s) {
|
|
|
4876
4899
|
"aria-label": "Messenger"
|
|
4877
4900
|
}, [
|
|
4878
4901
|
!s.ready && !s.error ? (l(), c("div", Vi, [
|
|
4879
|
-
s.isEmbedded ?
|
|
4902
|
+
s.isEmbedded ? b("", !0) : (l(), c("button", {
|
|
4880
4903
|
key: 0,
|
|
4881
4904
|
type: "button",
|
|
4882
4905
|
class: "wm-loading__close",
|
|
@@ -4936,7 +4959,7 @@ function ea(t, e, n, o, r, s) {
|
|
|
4936
4959
|
], -1)),
|
|
4937
4960
|
i("div", null, [
|
|
4938
4961
|
e[10] || (e[10] = i("div", { class: "wm-state__errTitle" }, "Connexion impossible", -1)),
|
|
4939
|
-
i("div", Ki,
|
|
4962
|
+
i("div", Ki, k(s.error), 1)
|
|
4940
4963
|
])
|
|
4941
4964
|
])
|
|
4942
4965
|
])) : s.currentConv ? (l(), c(M, { key: 2 }, [
|
|
@@ -4974,13 +4997,13 @@ function ea(t, e, n, o, r, s) {
|
|
|
4974
4997
|
items: s.suggestions,
|
|
4975
4998
|
onSelect: s.onSuggestion
|
|
4976
4999
|
}, null, 8, ["items", "onSelect"]))
|
|
4977
|
-
], 512)) :
|
|
5000
|
+
], 512)) : b("", !0),
|
|
4978
5001
|
s.actionInFlight ? (l(), c("div", Ji, [
|
|
4979
5002
|
e[12] || (e[12] = i("span", {
|
|
4980
5003
|
class: "wm-actionWait__spinner",
|
|
4981
5004
|
"aria-hidden": "true"
|
|
4982
5005
|
}, null, -1)),
|
|
4983
|
-
i("span", Xi,
|
|
5006
|
+
i("span", Xi, k(s.actionInFlightName) + " en cours, veuillez patienter…", 1)
|
|
4984
5007
|
])) : (l(), L(U, {
|
|
4985
5008
|
key: 2,
|
|
4986
5009
|
ref: "composer",
|
|
@@ -5003,16 +5026,16 @@ function ea(t, e, n, o, r, s) {
|
|
|
5003
5026
|
onClose: e[4] || (e[4] = (R) => r.moreOpen = !1),
|
|
5004
5027
|
onNotifToggle: s.onNotifToggle,
|
|
5005
5028
|
onAction: s.onMoreAction
|
|
5006
|
-
}, null, 8, ["can-rename", "can-export", "notif-enabled", "status-url", "help-url", "onNotifToggle", "onAction"])) :
|
|
5029
|
+
}, null, 8, ["can-rename", "can-export", "notif-enabled", "status-url", "help-url", "onNotifToggle", "onAction"])) : b("", !0),
|
|
5007
5030
|
r.renameDialogOpen && s.currentConv && !s.currentConv._draft ? (l(), L(j, {
|
|
5008
5031
|
key: 1,
|
|
5009
5032
|
"initial-value": s.currentConv.name || "",
|
|
5010
5033
|
title: "Modifier le titre de la conversation",
|
|
5011
5034
|
onClose: e[5] || (e[5] = (R) => r.renameDialogOpen = !1),
|
|
5012
5035
|
onSubmit: s.onRenameSubmit
|
|
5013
|
-
}, null, 8, ["initial-value", "onSubmit"])) :
|
|
5036
|
+
}, null, 8, ["initial-value", "onSubmit"])) : b("", !0),
|
|
5014
5037
|
r.pendingAttachments.length ? (l(), c("div", Zi, [
|
|
5015
|
-
(l(!0), c(M, null,
|
|
5038
|
+
(l(!0), c(M, null, D(r.pendingAttachments, (R, H) => (l(), c("div", {
|
|
5016
5039
|
key: H,
|
|
5017
5040
|
class: "wm-attached__chip"
|
|
5018
5041
|
}, [
|
|
@@ -5029,7 +5052,7 @@ function ea(t, e, n, o, r, s) {
|
|
|
5029
5052
|
}, [
|
|
5030
5053
|
i("path", { d: "M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48" })
|
|
5031
5054
|
], -1)),
|
|
5032
|
-
i("span", null,
|
|
5055
|
+
i("span", null, k(R.name), 1),
|
|
5033
5056
|
i("button", {
|
|
5034
5057
|
type: "button",
|
|
5035
5058
|
"aria-label": "Retirer",
|
|
@@ -5050,8 +5073,8 @@ function ea(t, e, n, o, r, s) {
|
|
|
5050
5073
|
], -1)
|
|
5051
5074
|
])], 8, Qi)
|
|
5052
5075
|
]))), 128))
|
|
5053
|
-
])) :
|
|
5054
|
-
], 64)) : (l(), L(
|
|
5076
|
+
])) : b("", !0)
|
|
5077
|
+
], 64)) : (l(), L(g, {
|
|
5055
5078
|
key: 1,
|
|
5056
5079
|
"welcome-message": s.widgetWelcomeMessage,
|
|
5057
5080
|
"agent-name": s.agentName,
|
|
@@ -5070,7 +5093,7 @@ function ea(t, e, n, o, r, s) {
|
|
|
5070
5093
|
onClose: e[6] || (e[6] = (R) => r.historyOpen = !1),
|
|
5071
5094
|
onNew: s.onDrawerNew,
|
|
5072
5095
|
onPick: s.onDrawerPick
|
|
5073
|
-
}, null, 8, ["conversations", "active-id", "onNew", "onPick"])) :
|
|
5096
|
+
}, null, 8, ["conversations", "active-id", "onNew", "onPick"])) : b("", !0),
|
|
5074
5097
|
r.moreOpen && !s.currentConv ? (l(), L(x, {
|
|
5075
5098
|
key: 4,
|
|
5076
5099
|
"can-rename": !1,
|
|
@@ -5081,12 +5104,12 @@ function ea(t, e, n, o, r, s) {
|
|
|
5081
5104
|
onClose: e[7] || (e[7] = (R) => r.moreOpen = !1),
|
|
5082
5105
|
onNotifToggle: s.onNotifToggle,
|
|
5083
5106
|
onAction: s.onMoreAction
|
|
5084
|
-
}, null, 8, ["notif-enabled", "status-url", "help-url", "onNotifToggle", "onAction"])) :
|
|
5107
|
+
}, null, 8, ["notif-enabled", "status-url", "help-url", "onNotifToggle", "onAction"])) : b("", !0)
|
|
5085
5108
|
], 64))
|
|
5086
|
-
], 6)) :
|
|
5109
|
+
], 6)) : b("", !0)
|
|
5087
5110
|
], 2);
|
|
5088
5111
|
}
|
|
5089
|
-
const sa = /* @__PURE__ */ $(zi, [["render", ea], ["__scopeId", "data-v-
|
|
5112
|
+
const sa = /* @__PURE__ */ $(zi, [["render", ea], ["__scopeId", "data-v-e5f17e35"]]), ra = "0.3.5";
|
|
5090
5113
|
export {
|
|
5091
5114
|
ne as AIAvatar,
|
|
5092
5115
|
ce as AVATAR_COLORS,
|
|
@@ -5095,7 +5118,7 @@ export {
|
|
|
5095
5118
|
cn as ArtifactFormResponse,
|
|
5096
5119
|
Cn as ArtifactInfoCard,
|
|
5097
5120
|
Hn as ArtifactRenderer,
|
|
5098
|
-
|
|
5121
|
+
Nn as ArtifactTicket,
|
|
5099
5122
|
es as AttachmentPreview,
|
|
5100
5123
|
os as Bubble,
|
|
5101
5124
|
Zs as Composer,
|
|
@@ -5119,7 +5142,7 @@ export {
|
|
|
5119
5142
|
ye as avatarColor,
|
|
5120
5143
|
we as avatarInitials,
|
|
5121
5144
|
Ls as captureScreenshotFile,
|
|
5122
|
-
|
|
5145
|
+
N as colors,
|
|
5123
5146
|
Ue as createStore,
|
|
5124
5147
|
Fe as createTransport,
|
|
5125
5148
|
sa as default,
|