@opencxh/domain 1.233.0 → 1.233.1
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/entities/planning/capacity.d.ts +69 -0
- package/dist/entities/planning/contracts.d.ts +35 -17
- package/dist/entities/planning/index.d.ts +4 -0
- package/dist/entities/planning/pattern.d.ts +63 -0
- package/dist/entities/planning/spread.d.ts +61 -0
- package/dist/entities/planning/spread.test.d.ts +1 -0
- package/dist/entities/planning/terms.d.ts +42 -0
- package/dist/index.cjs +16 -16
- package/dist/index.js +1688 -1519
- package/package.json +1 -1
- /package/dist/entities/planning/{contracts.test.d.ts → capacity.test.d.ts} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const Ii = 10, Mi = 10, ki = 10, vi = 5, Wt = /* @__PURE__ */ new Set([
|
|
2
2
|
"header",
|
|
3
3
|
"section",
|
|
4
4
|
"context",
|
|
@@ -8,13 +8,13 @@ const ui = 10, di = 10, pi = 10, fi = 5, Dt = /* @__PURE__ */ new Set([
|
|
|
8
8
|
"actions",
|
|
9
9
|
"attachments"
|
|
10
10
|
]);
|
|
11
|
-
function
|
|
11
|
+
function te(e) {
|
|
12
12
|
if (typeof e == "string") return e.length > 0;
|
|
13
13
|
if (!e || typeof e != "object") return !1;
|
|
14
14
|
const t = e;
|
|
15
15
|
return typeof t.key == "string" || typeof t.value == "string";
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function Oi(e, t = () => {
|
|
18
18
|
}) {
|
|
19
19
|
if (!Array.isArray(e)) return [];
|
|
20
20
|
const n = [];
|
|
@@ -25,19 +25,19 @@ function mi(e, t = () => {
|
|
|
25
25
|
}
|
|
26
26
|
if (!r || typeof r != "object") continue;
|
|
27
27
|
const o = r;
|
|
28
|
-
if (!
|
|
28
|
+
if (!Wt.has(o.type)) {
|
|
29
29
|
t(`unknown block type ${String(o.type)}`);
|
|
30
30
|
continue;
|
|
31
31
|
}
|
|
32
32
|
switch (o.type) {
|
|
33
33
|
case "header":
|
|
34
|
-
if (!
|
|
34
|
+
if (!te(o.text)) {
|
|
35
35
|
t("a header without text");
|
|
36
36
|
continue;
|
|
37
37
|
}
|
|
38
38
|
break;
|
|
39
39
|
case "context":
|
|
40
|
-
if (!
|
|
40
|
+
if (!te(o.text)) {
|
|
41
41
|
t("a context block without text");
|
|
42
42
|
continue;
|
|
43
43
|
}
|
|
@@ -59,9 +59,9 @@ function mi(e, t = () => {
|
|
|
59
59
|
o.items.length > 10 && (t("more than 10 list items"), o.items = o.items.slice(0, 10));
|
|
60
60
|
break;
|
|
61
61
|
case "actions": {
|
|
62
|
-
const i = Array.isArray(o.elements) ? o.elements : [],
|
|
63
|
-
if (
|
|
64
|
-
|
|
62
|
+
const i = Array.isArray(o.elements) ? o.elements : [], s = i.filter((a) => a?.action_id && a.invoke && te(a.text));
|
|
63
|
+
if (s.length !== i.length && t("an action without action_id, invoke or text"), s.length === 0) continue;
|
|
64
|
+
s.length > 5 && t("more than 5 actions"), o.elements = s.slice(0, 5);
|
|
65
65
|
break;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -69,44 +69,44 @@ function mi(e, t = () => {
|
|
|
69
69
|
}
|
|
70
70
|
return n;
|
|
71
71
|
}
|
|
72
|
-
const
|
|
73
|
-
function
|
|
72
|
+
const Vt = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, zt = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
|
|
73
|
+
function Yt(e) {
|
|
74
74
|
if (typeof e != "string" || !e) return "";
|
|
75
75
|
let t = e;
|
|
76
76
|
return t = t.replace(/```[a-z]*\n?/gi, "").replace(/~~~[a-z]*\n?/gi, ""), t = t.replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\[[^\]]*\]/g, "$1"), t = t.replace(/<((?:https?|mailto):[^>\s]+)>/gi, "$1"), t = t.split(`
|
|
77
77
|
`).map(
|
|
78
78
|
(n) => n.replace(/^\s{0,3}#{1,6}\s+/, "").replace(/^\s{0,3}>\s?/, "").replace(/^\s*[-*+]\s+/, "").replace(/^\s*\d+[.)]\s+/, "").replace(/^\s*(?:[-*_]\s*){3,}$/, "")
|
|
79
79
|
).join(`
|
|
80
|
-
`), t = t.replace(
|
|
80
|
+
`), t = t.replace(Vt, "$2"), t = t.replace(zt, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
|
|
81
81
|
}
|
|
82
|
-
function
|
|
82
|
+
function Xt(e) {
|
|
83
83
|
return e.replace(/<style[\s\S]*?<\/style>/gi, " ").replace(/<script[\s\S]*?<\/script>/gi, " ").replace(/<[^>]+>/g, " ").replace(/ /g, " ").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/\s+/g, " ").trim();
|
|
84
84
|
}
|
|
85
|
-
function
|
|
85
|
+
function G(e) {
|
|
86
86
|
if (!e || e < 0) return "";
|
|
87
87
|
const t = Math.floor(e / 60), n = Math.floor(e % 60);
|
|
88
88
|
return `${t}:${n.toString().padStart(2, "0")}`;
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function ke(e) {
|
|
91
91
|
return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
|
|
92
92
|
}
|
|
93
|
-
function
|
|
93
|
+
function ne(e) {
|
|
94
94
|
return e?.split("@")?.[0] || e || "";
|
|
95
95
|
}
|
|
96
|
-
function
|
|
96
|
+
function W(e) {
|
|
97
97
|
return e.map((t) => t.name).join(", ");
|
|
98
98
|
}
|
|
99
|
-
function
|
|
99
|
+
function ve(e) {
|
|
100
100
|
return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
|
|
101
101
|
}
|
|
102
|
-
const
|
|
102
|
+
const N = {
|
|
103
103
|
/* ---- voice ---- */
|
|
104
104
|
VOICE_CALL_STARTED: {
|
|
105
105
|
shape: "event",
|
|
106
106
|
channelKind: "voice",
|
|
107
107
|
icon: "phone",
|
|
108
108
|
snippet: () => "Gesprek gestart",
|
|
109
|
-
timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${
|
|
109
|
+
timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${ne(e.payload.from)}` : `Outbound call started — ${ne(e.payload.to)}`
|
|
110
110
|
},
|
|
111
111
|
VOICE_CALL_ANSWERED: {
|
|
112
112
|
shape: "event",
|
|
@@ -133,15 +133,15 @@ const k = {
|
|
|
133
133
|
shape: "event",
|
|
134
134
|
channelKind: "voice",
|
|
135
135
|
icon: "phone",
|
|
136
|
-
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${
|
|
137
|
-
timeline: (e) => `Call ended${
|
|
136
|
+
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${G(e.payload.duration)})` : ""}`,
|
|
137
|
+
timeline: (e) => `Call ended${ke(e.payload.duration)}`
|
|
138
138
|
},
|
|
139
139
|
VOICE_CALL_MISSED: {
|
|
140
140
|
shape: "event",
|
|
141
141
|
channelKind: "voice",
|
|
142
142
|
icon: "phone",
|
|
143
143
|
snippet: () => "Gemiste oproep",
|
|
144
|
-
timeline: (e) => `Missed call — ${
|
|
144
|
+
timeline: (e) => `Missed call — ${ne(e.payload.from)}`
|
|
145
145
|
},
|
|
146
146
|
VOICE_CALL_FAILED: {
|
|
147
147
|
shape: "event",
|
|
@@ -188,7 +188,7 @@ const k = {
|
|
|
188
188
|
shape: "event",
|
|
189
189
|
channelKind: "video",
|
|
190
190
|
icon: "video",
|
|
191
|
-
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${
|
|
191
|
+
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${G(e.payload.duration)})` : ""}`,
|
|
192
192
|
timeline: () => "Video call ended"
|
|
193
193
|
},
|
|
194
194
|
VIDEO_CALL_MISSED: {
|
|
@@ -216,7 +216,7 @@ const k = {
|
|
|
216
216
|
replyable: !0,
|
|
217
217
|
carriesText: !0,
|
|
218
218
|
countsAs: "inbound_message",
|
|
219
|
-
snippet:
|
|
219
|
+
snippet: Oe
|
|
220
220
|
},
|
|
221
221
|
EMAIL_SENT: {
|
|
222
222
|
shape: "message",
|
|
@@ -226,7 +226,7 @@ const k = {
|
|
|
226
226
|
replyable: !0,
|
|
227
227
|
carriesText: !0,
|
|
228
228
|
countsAs: "outbound_message",
|
|
229
|
-
snippet:
|
|
229
|
+
snippet: Oe
|
|
230
230
|
},
|
|
231
231
|
/* ---- chat ---- */
|
|
232
232
|
CHAT_MESSAGE_SENT: {
|
|
@@ -255,9 +255,9 @@ const k = {
|
|
|
255
255
|
shape: "event",
|
|
256
256
|
channelKind: "chat",
|
|
257
257
|
icon: "message-circle",
|
|
258
|
-
snippet: (e) => `${
|
|
258
|
+
snippet: (e) => `${W(e.payload.members)} toegevoegd`,
|
|
259
259
|
timeline: (e) => {
|
|
260
|
-
const t =
|
|
260
|
+
const t = W(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · added by ${e.payload.initiator.name}` : "";
|
|
261
261
|
return `${t} joined the chat${n}`;
|
|
262
262
|
}
|
|
263
263
|
},
|
|
@@ -265,9 +265,9 @@ const k = {
|
|
|
265
265
|
shape: "event",
|
|
266
266
|
channelKind: "chat",
|
|
267
267
|
icon: "message-circle",
|
|
268
|
-
snippet: (e) => `${
|
|
268
|
+
snippet: (e) => `${W(e.payload.members)} verlaten`,
|
|
269
269
|
timeline: (e) => {
|
|
270
|
-
const t =
|
|
270
|
+
const t = W(e.payload.members) || "Someone", n = e.payload.initiator?.name ? ` · removed by ${e.payload.initiator.name}` : "";
|
|
271
271
|
return `${t} left the chat${n}`;
|
|
272
272
|
}
|
|
273
273
|
},
|
|
@@ -283,15 +283,15 @@ const k = {
|
|
|
283
283
|
channelKind: "chat",
|
|
284
284
|
icon: "message-circle",
|
|
285
285
|
snippet: () => "Gesprek gestart",
|
|
286
|
-
timeline: (e) => `${
|
|
286
|
+
timeline: (e) => `${ve(e.payload.callType)} started${e.payload.initiator ? ` by ${e.payload.initiator.name}` : ""}`,
|
|
287
287
|
joinUrl: (e) => e.payload.joinUrl
|
|
288
288
|
},
|
|
289
289
|
CHAT_CALL_ENDED: {
|
|
290
290
|
shape: "event",
|
|
291
291
|
channelKind: "chat",
|
|
292
292
|
icon: "message-circle",
|
|
293
|
-
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${
|
|
294
|
-
timeline: (e) => `${
|
|
293
|
+
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${G(e.payload.duration)})` : ""}`,
|
|
294
|
+
timeline: (e) => `${ve(e.payload.callType)} ended${ke(e.payload.duration)}`,
|
|
295
295
|
joinUrl: (e) => e.payload.joinUrl
|
|
296
296
|
},
|
|
297
297
|
CHAT_EVENT: {
|
|
@@ -380,7 +380,7 @@ const k = {
|
|
|
380
380
|
MEETING_ENDED: {
|
|
381
381
|
shape: "event",
|
|
382
382
|
icon: "calendar",
|
|
383
|
-
snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${
|
|
383
|
+
snippet: (e) => `Vergadering beëindigd${e.payload.duration ? ` (${G(e.payload.duration)})` : ""}`,
|
|
384
384
|
timeline: () => "Meeting ended"
|
|
385
385
|
},
|
|
386
386
|
MEETING_PARTICIPANT_JOINED: {
|
|
@@ -460,63 +460,63 @@ const k = {
|
|
|
460
460
|
timeline: (e, t) => `Status changed by ${t}`
|
|
461
461
|
}
|
|
462
462
|
};
|
|
463
|
-
function
|
|
464
|
-
const t = e.payload, n =
|
|
463
|
+
function Oe(e) {
|
|
464
|
+
const t = e.payload, n = Yt(t.bodyText).trim() || t.bodySnippet?.trim() || Xt(t.body ?? "");
|
|
465
465
|
return t.subject ? `${t.subject} — ${n}` : n;
|
|
466
466
|
}
|
|
467
|
-
function
|
|
468
|
-
return
|
|
467
|
+
function M(e) {
|
|
468
|
+
return N[e];
|
|
469
469
|
}
|
|
470
|
-
function
|
|
471
|
-
return
|
|
470
|
+
function Ci(e) {
|
|
471
|
+
return M(e)?.icon ?? "circle";
|
|
472
472
|
}
|
|
473
|
-
function
|
|
474
|
-
return
|
|
473
|
+
function Ni(e) {
|
|
474
|
+
return M(e)?.channelKind;
|
|
475
475
|
}
|
|
476
|
-
function
|
|
476
|
+
function dt(e) {
|
|
477
477
|
return e === "message" || e === "note";
|
|
478
478
|
}
|
|
479
|
-
function
|
|
480
|
-
return
|
|
479
|
+
function xi(e) {
|
|
480
|
+
return dt(M(e)?.shape);
|
|
481
481
|
}
|
|
482
|
-
function
|
|
482
|
+
function ft(e) {
|
|
483
483
|
return e === "note";
|
|
484
484
|
}
|
|
485
|
-
function
|
|
486
|
-
return
|
|
485
|
+
function Ri(e) {
|
|
486
|
+
return ft(M(e)?.shape);
|
|
487
487
|
}
|
|
488
|
-
function
|
|
489
|
-
return
|
|
488
|
+
function Di(e) {
|
|
489
|
+
return M(e)?.replyable === !0;
|
|
490
490
|
}
|
|
491
|
-
function
|
|
492
|
-
return
|
|
491
|
+
function $i(e) {
|
|
492
|
+
return M(e)?.carriesText === !0;
|
|
493
493
|
}
|
|
494
|
-
function
|
|
495
|
-
return
|
|
494
|
+
function qt(e) {
|
|
495
|
+
return M(e)?.countsAs;
|
|
496
496
|
}
|
|
497
|
-
function
|
|
498
|
-
return
|
|
497
|
+
function Li(e) {
|
|
498
|
+
return M(e)?.playbookAuthored === !0;
|
|
499
499
|
}
|
|
500
|
-
function
|
|
501
|
-
return
|
|
500
|
+
function Pi(e) {
|
|
501
|
+
return M(e)?.connected === !0;
|
|
502
502
|
}
|
|
503
|
-
function
|
|
504
|
-
const t =
|
|
503
|
+
function Ui(e) {
|
|
504
|
+
const t = M(e);
|
|
505
505
|
return t?.shape === "artifact" && t?.carriesText === !0;
|
|
506
506
|
}
|
|
507
|
-
function
|
|
508
|
-
const t =
|
|
507
|
+
function Jt(e) {
|
|
508
|
+
const t = M(e.type)?.snippet;
|
|
509
509
|
return t ? t(e) : "";
|
|
510
510
|
}
|
|
511
|
-
function
|
|
512
|
-
const n =
|
|
511
|
+
function Ki(e, t) {
|
|
512
|
+
const n = M(e.type)?.timeline;
|
|
513
513
|
return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
|
|
514
514
|
}
|
|
515
|
-
function
|
|
516
|
-
const t =
|
|
515
|
+
function Fi(e) {
|
|
516
|
+
const t = M(e.type)?.joinUrl;
|
|
517
517
|
return t ? t(e) : void 0;
|
|
518
518
|
}
|
|
519
|
-
function
|
|
519
|
+
function le(e, t) {
|
|
520
520
|
let n = e;
|
|
521
521
|
for (const r of t.split(".")) {
|
|
522
522
|
if (n == null || typeof n != "object") return "";
|
|
@@ -524,44 +524,44 @@ function oe(e, t) {
|
|
|
524
524
|
}
|
|
525
525
|
return n == null ? "" : typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : "";
|
|
526
526
|
}
|
|
527
|
-
function
|
|
527
|
+
function ue(e, t, n) {
|
|
528
528
|
if (e === void 0) return null;
|
|
529
529
|
if (typeof e == "string") return e || null;
|
|
530
530
|
if ("value" in e)
|
|
531
|
-
return
|
|
531
|
+
return le(t, e.value) || null;
|
|
532
532
|
const r = {};
|
|
533
|
-
for (const [i,
|
|
534
|
-
r[i] =
|
|
533
|
+
for (const [i, s] of Object.entries(e.params ?? {}))
|
|
534
|
+
r[i] = le(t, s);
|
|
535
535
|
const o = n(e.key, r);
|
|
536
536
|
return o === e.key ? null : o;
|
|
537
537
|
}
|
|
538
|
-
function
|
|
538
|
+
function Zt(e, t) {
|
|
539
539
|
if (!e || typeof e == "string" || "value" in e) return null;
|
|
540
540
|
const n = {};
|
|
541
541
|
for (const [r, o] of Object.entries(e.params ?? {}))
|
|
542
|
-
n[r] =
|
|
542
|
+
n[r] = le(t, o);
|
|
543
543
|
return { key: e.key, params: n };
|
|
544
544
|
}
|
|
545
|
-
const
|
|
546
|
-
function
|
|
545
|
+
const Ce = 140;
|
|
546
|
+
function Qt(e) {
|
|
547
547
|
const t = e.trim();
|
|
548
|
-
return t.length <=
|
|
548
|
+
return t.length <= Ce ? t : `${t.slice(0, Ce - 1).trimEnd()}…`;
|
|
549
549
|
}
|
|
550
|
-
function
|
|
551
|
-
const n =
|
|
550
|
+
function Bi(e, t) {
|
|
551
|
+
const n = Zt(t?.text, e), r = t ? ue(t.text, e, (o) => o) : null;
|
|
552
552
|
return {
|
|
553
553
|
activityId: e.id,
|
|
554
554
|
type: e.type,
|
|
555
|
-
snippet:
|
|
555
|
+
snippet: Qt(r ?? Jt(e)),
|
|
556
556
|
authorName: e.author?.name ?? "",
|
|
557
557
|
direction: e.direction,
|
|
558
558
|
createdAt: e.createdAt ?? Date.now(),
|
|
559
559
|
...n ? { snippetKey: n.key, snippetParams: n.params } : {}
|
|
560
560
|
};
|
|
561
561
|
}
|
|
562
|
-
const
|
|
563
|
-
function
|
|
564
|
-
const t =
|
|
562
|
+
const en = (e) => e;
|
|
563
|
+
function Ne(e) {
|
|
564
|
+
const t = N[e];
|
|
565
565
|
return {
|
|
566
566
|
type: e,
|
|
567
567
|
shape: t.shape,
|
|
@@ -576,7 +576,7 @@ function Me(e) {
|
|
|
576
576
|
displayNameKey: t.displayNameKey
|
|
577
577
|
};
|
|
578
578
|
}
|
|
579
|
-
function
|
|
579
|
+
function xe(e) {
|
|
580
580
|
return {
|
|
581
581
|
type: e.type,
|
|
582
582
|
shape: e.shape,
|
|
@@ -591,21 +591,21 @@ function ke(e) {
|
|
|
591
591
|
displayNameKey: e.displayNameKey
|
|
592
592
|
};
|
|
593
593
|
}
|
|
594
|
-
class
|
|
595
|
-
constructor(t = [], n =
|
|
594
|
+
class tn {
|
|
595
|
+
constructor(t = [], n = en) {
|
|
596
596
|
this.translate = n;
|
|
597
597
|
for (const r of t)
|
|
598
|
-
r?.type && (r.type in
|
|
598
|
+
r?.type && (r.type in N || this.declared.has(r.type) || this.declared.set(r.type, r));
|
|
599
599
|
}
|
|
600
600
|
declared = /* @__PURE__ */ new Map();
|
|
601
601
|
get(t) {
|
|
602
|
-
if (t in
|
|
602
|
+
if (t in N) return Ne(t);
|
|
603
603
|
const n = this.declared.get(t);
|
|
604
|
-
return n ?
|
|
604
|
+
return n ? xe(n) : void 0;
|
|
605
605
|
}
|
|
606
606
|
/** Everything that may be offered as a trigger, built-in and declared. */
|
|
607
607
|
triggerable() {
|
|
608
|
-
const t = Object.keys(
|
|
608
|
+
const t = Object.keys(N).filter((r) => N[r].triggerable).map(Ne), n = [...this.declared.values()].map(xe).filter((r) => r.triggerable);
|
|
609
609
|
return [...t, ...n];
|
|
610
610
|
}
|
|
611
611
|
/**
|
|
@@ -614,17 +614,17 @@ class Gt {
|
|
|
614
614
|
* the feed always showed for unknown types.
|
|
615
615
|
*/
|
|
616
616
|
timelineText(t, n) {
|
|
617
|
-
const r =
|
|
617
|
+
const r = N[t.type];
|
|
618
618
|
if (r?.timeline) return r.timeline(t, n);
|
|
619
619
|
const o = this.declared.get(t.type);
|
|
620
|
-
return
|
|
620
|
+
return ue(o?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
|
|
621
621
|
}
|
|
622
622
|
/** The line for the inbox list. Empty when the type has nothing to show. */
|
|
623
623
|
snippet(t) {
|
|
624
|
-
const n =
|
|
624
|
+
const n = N[t.type];
|
|
625
625
|
if (n?.snippet) return n.snippet(t);
|
|
626
626
|
const r = this.declared.get(t.type);
|
|
627
|
-
return
|
|
627
|
+
return ue(r?.text, t, this.translate) ?? "";
|
|
628
628
|
}
|
|
629
629
|
/** The descriptor as it arrived; needed to store `text` as a key. */
|
|
630
630
|
descriptor(t) {
|
|
@@ -649,11 +649,11 @@ class Gt {
|
|
|
649
649
|
* {@link ResolvedActivityType}.
|
|
650
650
|
*/
|
|
651
651
|
isMessage(t) {
|
|
652
|
-
return
|
|
652
|
+
return dt(this.get(t)?.shape);
|
|
653
653
|
}
|
|
654
654
|
/** Folds into the list under the message it answers. See {@link isNoteShape}. */
|
|
655
655
|
nestsUnderParent(t) {
|
|
656
|
-
return
|
|
656
|
+
return ft(this.get(t)?.shape);
|
|
657
657
|
}
|
|
658
658
|
/** Can a person reply to this? Notes cannot — those go nowhere. */
|
|
659
659
|
isReplyable(t) {
|
|
@@ -681,23 +681,23 @@ class Gt {
|
|
|
681
681
|
return this.translate;
|
|
682
682
|
}
|
|
683
683
|
}
|
|
684
|
-
const
|
|
685
|
-
function
|
|
684
|
+
const Hi = new tn();
|
|
685
|
+
function ji(e, t, n = []) {
|
|
686
686
|
const r = e.createdAt;
|
|
687
687
|
if (!r) return [];
|
|
688
688
|
const o = new Set(n);
|
|
689
|
-
return e.author.type === "user" && e.author.id && o.add(e.author.id), Object.entries(t).filter(([i,
|
|
689
|
+
return e.author.type === "user" && e.author.id && o.add(e.author.id), Object.entries(t).filter(([i, s]) => s >= r && !o.has(i)).map(([i]) => i);
|
|
690
690
|
}
|
|
691
|
-
function
|
|
691
|
+
function nn(e) {
|
|
692
692
|
return e.createdAt ?? 0;
|
|
693
693
|
}
|
|
694
|
-
function
|
|
694
|
+
function Gi(e) {
|
|
695
695
|
return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
|
|
696
696
|
}
|
|
697
|
-
function
|
|
697
|
+
function Wi(e) {
|
|
698
698
|
return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
|
|
699
699
|
}
|
|
700
|
-
const
|
|
700
|
+
const pt = [
|
|
701
701
|
{
|
|
702
702
|
id: "openai",
|
|
703
703
|
attachmentKinds: ["image", "pdf"],
|
|
@@ -787,45 +787,45 @@ const it = [
|
|
|
787
787
|
defaultModel: "default"
|
|
788
788
|
}
|
|
789
789
|
];
|
|
790
|
-
function
|
|
791
|
-
return
|
|
790
|
+
function Z(e) {
|
|
791
|
+
return pt.find((t) => t.id === e);
|
|
792
792
|
}
|
|
793
|
-
function
|
|
794
|
-
return
|
|
793
|
+
function Vi(e) {
|
|
794
|
+
return Z(e)?.label ?? e;
|
|
795
795
|
}
|
|
796
|
-
function
|
|
797
|
-
return
|
|
796
|
+
function zi(e, t = "gpt-5-mini") {
|
|
797
|
+
return Z(e)?.defaultModel ?? t;
|
|
798
798
|
}
|
|
799
|
-
function
|
|
800
|
-
return
|
|
799
|
+
function Yi(e) {
|
|
800
|
+
return pt.filter((t) => t.capabilities.includes(e));
|
|
801
801
|
}
|
|
802
|
-
function
|
|
803
|
-
const t =
|
|
802
|
+
function Xi(e) {
|
|
803
|
+
const t = Z(e);
|
|
804
804
|
return !!t && !t.baseUrl;
|
|
805
805
|
}
|
|
806
|
-
function
|
|
807
|
-
return t === "text" ? !0 :
|
|
806
|
+
function qi(e, t) {
|
|
807
|
+
return t === "text" ? !0 : Z(e)?.attachmentKinds?.includes(t) === !0;
|
|
808
808
|
}
|
|
809
|
-
function
|
|
809
|
+
function Ji(e, t) {
|
|
810
810
|
if (!e.enabled) return "ok";
|
|
811
|
-
const n =
|
|
811
|
+
const n = Re(e.hardLimitNanos), r = Re(e.softLimitNanos);
|
|
812
812
|
return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
|
|
813
813
|
}
|
|
814
|
-
function
|
|
814
|
+
function Re(e) {
|
|
815
815
|
return typeof e == "number" ? e : void 0;
|
|
816
816
|
}
|
|
817
|
-
function
|
|
817
|
+
function rn(e, t = "month") {
|
|
818
818
|
const n = new Date(e);
|
|
819
819
|
return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
|
|
820
820
|
}
|
|
821
|
-
function
|
|
822
|
-
const n = new Date(
|
|
821
|
+
function Zi(e, t = "month") {
|
|
822
|
+
const n = new Date(rn(e, t));
|
|
823
823
|
return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
|
|
824
824
|
}
|
|
825
|
-
function
|
|
825
|
+
function Qi(e) {
|
|
826
826
|
return e?.listeningEnabled !== !1;
|
|
827
827
|
}
|
|
828
|
-
const
|
|
828
|
+
const es = [
|
|
829
829
|
{ id: "agent", label: "Agent", labelSource: "user" },
|
|
830
830
|
{ id: "team", label: "Team", labelSource: "team" },
|
|
831
831
|
{ id: "inbox", label: "Inbox", labelSource: "inbox" },
|
|
@@ -835,64 +835,64 @@ const Ki = [
|
|
|
835
835
|
{ id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
|
|
836
836
|
{ id: "time", label: "Tijd", labelSource: "raw" }
|
|
837
837
|
];
|
|
838
|
-
function
|
|
838
|
+
function re(e) {
|
|
839
839
|
return e < 10 ? `0${e}` : `${e}`;
|
|
840
840
|
}
|
|
841
|
-
function
|
|
842
|
-
const n = new Date(e), r = `${n.getUTCFullYear()}-${
|
|
843
|
-
return t === "day" ? r : `${r}T${
|
|
841
|
+
function F(e, t) {
|
|
842
|
+
const n = new Date(e), r = `${n.getUTCFullYear()}-${re(n.getUTCMonth() + 1)}-${re(n.getUTCDate())}`;
|
|
843
|
+
return t === "day" ? r : `${r}T${re(n.getUTCHours())}`;
|
|
844
844
|
}
|
|
845
845
|
function B(e, t) {
|
|
846
846
|
const n = new Date(e);
|
|
847
847
|
return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
|
|
848
848
|
}
|
|
849
|
-
const
|
|
850
|
-
function
|
|
851
|
-
const r = n === "hour" ?
|
|
849
|
+
const on = 36e5, sn = 864e5;
|
|
850
|
+
function ts(e, t, n) {
|
|
851
|
+
const r = n === "hour" ? on : sn, o = [];
|
|
852
852
|
for (let i = B(e, n); i <= t; i += r)
|
|
853
|
-
o.push(
|
|
853
|
+
o.push(F(i, n));
|
|
854
854
|
return o;
|
|
855
855
|
}
|
|
856
|
-
const
|
|
857
|
-
function
|
|
856
|
+
const an = /* @__PURE__ */ new Set(["time"]);
|
|
857
|
+
function ns(e, t, n) {
|
|
858
858
|
if (!e) return [];
|
|
859
859
|
const r = new Set(e.supportedDimensions ?? []);
|
|
860
|
-
return t.filter((o) => r.has(o.id) && !
|
|
860
|
+
return t.filter((o) => r.has(o.id) && !an.has(o.id)).map((o) => ({
|
|
861
861
|
id: o.id,
|
|
862
862
|
label: o.label,
|
|
863
863
|
options: o.options?.length ? o.options : n[o.id] ?? []
|
|
864
864
|
})).filter((o) => o.options.length > 0);
|
|
865
865
|
}
|
|
866
|
-
function
|
|
866
|
+
function rs(e, t) {
|
|
867
867
|
const n = t.find((o) => o.id === e.dimensionId), r = n?.options.find((o) => o.value === e.value);
|
|
868
868
|
return `${n?.label ?? e.dimensionId} · ${r?.label ?? e.value}`;
|
|
869
869
|
}
|
|
870
|
-
function
|
|
870
|
+
function os(e) {
|
|
871
871
|
return { value: e.id, label: `${e.category} · ${e.label}` };
|
|
872
872
|
}
|
|
873
|
-
const
|
|
873
|
+
const cn = [
|
|
874
874
|
{ id: "resource", label: "Resource", labelSource: "raw" },
|
|
875
875
|
{ id: "origin", label: "Herkomst", labelSource: "raw" }
|
|
876
|
-
],
|
|
877
|
-
function
|
|
876
|
+
], ln = cn.map((e) => e.id);
|
|
877
|
+
function un(e, t) {
|
|
878
878
|
return `${e}.usage.${t}`;
|
|
879
879
|
}
|
|
880
|
-
function
|
|
880
|
+
function is(e, t) {
|
|
881
881
|
return t.map((n) => ({
|
|
882
|
-
id:
|
|
882
|
+
id: un(e, n.unit),
|
|
883
883
|
label: n.label,
|
|
884
884
|
category: "Verbruik",
|
|
885
885
|
valueType: n.valueType ?? "count",
|
|
886
886
|
aggregation: "sum",
|
|
887
887
|
supportedDimensions: [
|
|
888
888
|
"provider",
|
|
889
|
-
...
|
|
889
|
+
...ln,
|
|
890
890
|
...n.extraDimensions ?? [],
|
|
891
891
|
"time"
|
|
892
892
|
]
|
|
893
893
|
}));
|
|
894
894
|
}
|
|
895
|
-
const
|
|
895
|
+
const mt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), De = 200, $e = 100, Le = 200, Pe = 12, Ue = 4, gt = 4e3, oe = 500, ss = 256 * 1024, dn = /* @__PURE__ */ new Set([
|
|
896
896
|
"heading",
|
|
897
897
|
"paragraph",
|
|
898
898
|
"list",
|
|
@@ -902,15 +902,15 @@ const at = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
|
|
|
902
902
|
"table",
|
|
903
903
|
"kpi",
|
|
904
904
|
"callout"
|
|
905
|
-
]),
|
|
906
|
-
function
|
|
905
|
+
]), fn = ["http:", "https:", "mailto:", "tel:"], pn = /^[a-z][a-z0-9+.-]*:/i;
|
|
906
|
+
function ht(e) {
|
|
907
907
|
const t = e.trim().replace(/^<|>$/g, "");
|
|
908
908
|
if (!t) return !1;
|
|
909
|
-
const n =
|
|
910
|
-
return n ?
|
|
909
|
+
const n = pn.exec(t)?.[0];
|
|
910
|
+
return n ? fn.includes(n.toLowerCase()) : !t.startsWith("//");
|
|
911
911
|
}
|
|
912
|
-
const
|
|
913
|
-
function
|
|
912
|
+
const mn = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
|
|
913
|
+
function gn(e) {
|
|
914
914
|
let t = "", n = 0;
|
|
915
915
|
for (; n < e.length; ) {
|
|
916
916
|
const r = e[n] === "!" && e[n + 1] === "[";
|
|
@@ -918,22 +918,22 @@ function rn(e) {
|
|
|
918
918
|
t += e[n], n += 1;
|
|
919
919
|
continue;
|
|
920
920
|
}
|
|
921
|
-
const o = n + (r ? 2 : 1), i =
|
|
921
|
+
const o = n + (r ? 2 : 1), i = Ke(e, o, "[", "]");
|
|
922
922
|
if (i < 0 || e[i + 1] !== "(") {
|
|
923
923
|
t += e[n], n += 1;
|
|
924
924
|
continue;
|
|
925
925
|
}
|
|
926
|
-
const
|
|
927
|
-
if (
|
|
926
|
+
const s = Ke(e, i + 2, "(", ")");
|
|
927
|
+
if (s < 0) {
|
|
928
928
|
t += e[n], n += 1;
|
|
929
929
|
continue;
|
|
930
930
|
}
|
|
931
|
-
const
|
|
932
|
-
t += r || !
|
|
931
|
+
const a = e.slice(o, i), l = e.slice(i + 2, s).trim().split(/\s+/)[0] ?? "";
|
|
932
|
+
t += r || !ht(l) ? a : e.slice(n, s + 1), n = s + 1;
|
|
933
933
|
}
|
|
934
934
|
return t;
|
|
935
935
|
}
|
|
936
|
-
function
|
|
936
|
+
function Ke(e, t, n, r) {
|
|
937
937
|
let o = 1;
|
|
938
938
|
for (let i = t; i < e.length; i += 1) {
|
|
939
939
|
if (e[i] === "\\") {
|
|
@@ -946,166 +946,166 @@ function De(e, t, n, r) {
|
|
|
946
946
|
}
|
|
947
947
|
return -1;
|
|
948
948
|
}
|
|
949
|
-
function
|
|
950
|
-
return
|
|
951
|
-
|
|
952
|
-
(t, n, r) =>
|
|
949
|
+
function hn(e) {
|
|
950
|
+
return gn(e).replace(
|
|
951
|
+
mn,
|
|
952
|
+
(t, n, r) => ht(r) ? t : ""
|
|
953
953
|
);
|
|
954
954
|
}
|
|
955
|
-
function
|
|
956
|
-
return typeof e == "string" ?
|
|
955
|
+
function v(e, t = gt) {
|
|
956
|
+
return typeof e == "string" ? hn(e).slice(0, t) : "";
|
|
957
957
|
}
|
|
958
|
-
function
|
|
958
|
+
function yn(e, t = gt) {
|
|
959
959
|
return typeof e == "string" ? e.slice(0, t) : "";
|
|
960
960
|
}
|
|
961
|
-
function
|
|
962
|
-
return typeof e == "string" &&
|
|
961
|
+
function bn(e, t = "info") {
|
|
962
|
+
return typeof e == "string" && mt.has(e) ? e : t;
|
|
963
963
|
}
|
|
964
|
-
function
|
|
964
|
+
function as(e, t = () => {
|
|
965
965
|
}) {
|
|
966
966
|
if (!Array.isArray(e)) return [];
|
|
967
967
|
const n = [];
|
|
968
968
|
for (const r of e) {
|
|
969
|
-
if (n.length >=
|
|
970
|
-
t(`more than ${
|
|
969
|
+
if (n.length >= De) {
|
|
970
|
+
t(`more than ${De} blocks; the rest was dropped`);
|
|
971
971
|
break;
|
|
972
972
|
}
|
|
973
973
|
if (!r || typeof r != "object") continue;
|
|
974
974
|
const o = r;
|
|
975
|
-
if (!
|
|
975
|
+
if (!dn.has(o.type)) {
|
|
976
976
|
t(`unknown block type ${String(o.type)}`);
|
|
977
977
|
continue;
|
|
978
978
|
}
|
|
979
979
|
const i = typeof o.block_id == "string" ? { block_id: o.block_id } : {};
|
|
980
980
|
switch (o.type) {
|
|
981
981
|
case "heading": {
|
|
982
|
-
const
|
|
983
|
-
if (!
|
|
982
|
+
const s = v(o.text);
|
|
983
|
+
if (!s) {
|
|
984
984
|
t("a heading without text");
|
|
985
985
|
continue;
|
|
986
986
|
}
|
|
987
|
-
const
|
|
988
|
-
n.push({ ...i, type: "heading", level:
|
|
987
|
+
const a = o.level === 2 || o.level === 3 ? o.level : 1;
|
|
988
|
+
n.push({ ...i, type: "heading", level: a, text: s });
|
|
989
989
|
break;
|
|
990
990
|
}
|
|
991
991
|
case "paragraph": {
|
|
992
|
-
const
|
|
993
|
-
if (!
|
|
992
|
+
const s = v(o.text);
|
|
993
|
+
if (!s) {
|
|
994
994
|
t("a paragraph without text");
|
|
995
995
|
continue;
|
|
996
996
|
}
|
|
997
|
-
n.push({ ...i, type: "paragraph", text:
|
|
997
|
+
n.push({ ...i, type: "paragraph", text: s });
|
|
998
998
|
break;
|
|
999
999
|
}
|
|
1000
1000
|
case "quote": {
|
|
1001
|
-
const
|
|
1002
|
-
if (!
|
|
1001
|
+
const s = v(o.text);
|
|
1002
|
+
if (!s) {
|
|
1003
1003
|
t("a quote without text");
|
|
1004
1004
|
continue;
|
|
1005
1005
|
}
|
|
1006
|
-
n.push({ ...i, type: "quote", text:
|
|
1006
|
+
n.push({ ...i, type: "quote", text: s });
|
|
1007
1007
|
break;
|
|
1008
1008
|
}
|
|
1009
1009
|
case "code": {
|
|
1010
|
-
const
|
|
1011
|
-
if (!
|
|
1010
|
+
const s = yn(o.text);
|
|
1011
|
+
if (!s) {
|
|
1012
1012
|
t("a code block without text");
|
|
1013
1013
|
continue;
|
|
1014
1014
|
}
|
|
1015
|
-
const
|
|
1016
|
-
n.push({ ...i, type: "code", ...
|
|
1015
|
+
const a = typeof o.lang == "string" ? { lang: o.lang.slice(0, 32) } : {};
|
|
1016
|
+
n.push({ ...i, type: "code", ...a, text: s });
|
|
1017
1017
|
break;
|
|
1018
1018
|
}
|
|
1019
1019
|
case "divider":
|
|
1020
1020
|
n.push({ ...i, type: "divider" });
|
|
1021
1021
|
break;
|
|
1022
1022
|
case "list": {
|
|
1023
|
-
const
|
|
1024
|
-
for (const
|
|
1025
|
-
if (
|
|
1026
|
-
t(`more than ${
|
|
1023
|
+
const s = Array.isArray(o.items) ? o.items : [], a = [];
|
|
1024
|
+
for (const d of s) {
|
|
1025
|
+
if (a.length >= $e) {
|
|
1026
|
+
t(`more than ${$e} list items`);
|
|
1027
1027
|
break;
|
|
1028
1028
|
}
|
|
1029
|
-
const
|
|
1030
|
-
if (!
|
|
1031
|
-
const
|
|
1032
|
-
|
|
1029
|
+
const p = v(d?.text);
|
|
1030
|
+
if (!p) continue;
|
|
1031
|
+
const c = v(d?.lead, 200);
|
|
1032
|
+
a.push(c ? { lead: c, text: p } : { text: p });
|
|
1033
1033
|
}
|
|
1034
|
-
if (
|
|
1034
|
+
if (a.length === 0) {
|
|
1035
1035
|
t("a list without usable items");
|
|
1036
1036
|
continue;
|
|
1037
1037
|
}
|
|
1038
|
-
const
|
|
1039
|
-
n.push({ ...i, type: "list", style:
|
|
1038
|
+
const l = o.style === "numbered" ? "numbered" : "bulleted";
|
|
1039
|
+
n.push({ ...i, type: "list", style: l, items: a });
|
|
1040
1040
|
break;
|
|
1041
1041
|
}
|
|
1042
1042
|
case "table": {
|
|
1043
|
-
const
|
|
1044
|
-
for (const
|
|
1045
|
-
if (
|
|
1046
|
-
t(`more than ${
|
|
1043
|
+
const s = Array.isArray(o.columns) ? o.columns : [], a = [];
|
|
1044
|
+
for (const c of s) {
|
|
1045
|
+
if (a.length >= Pe) {
|
|
1046
|
+
t(`more than ${Pe} table columns`);
|
|
1047
1047
|
break;
|
|
1048
1048
|
}
|
|
1049
|
-
const
|
|
1050
|
-
|
|
1049
|
+
const h = v(c?.label, oe), A = c?.align === "right" ? "right" : void 0;
|
|
1050
|
+
a.push(A ? { label: h, align: A } : { label: h });
|
|
1051
1051
|
}
|
|
1052
|
-
if (
|
|
1052
|
+
if (a.length === 0) {
|
|
1053
1053
|
t("a table without columns");
|
|
1054
1054
|
continue;
|
|
1055
1055
|
}
|
|
1056
|
-
const
|
|
1057
|
-
for (const
|
|
1058
|
-
if (
|
|
1059
|
-
t(`more than ${
|
|
1056
|
+
const l = Array.isArray(o.rows) ? o.rows : [], d = [];
|
|
1057
|
+
for (const c of l) {
|
|
1058
|
+
if (d.length >= Le) {
|
|
1059
|
+
t(`more than ${Le} table rows`);
|
|
1060
1060
|
break;
|
|
1061
1061
|
}
|
|
1062
|
-
const
|
|
1063
|
-
|
|
1062
|
+
const h = Array.isArray(c) ? c : [];
|
|
1063
|
+
d.push(a.map((A, E) => v(h[E], oe)));
|
|
1064
1064
|
}
|
|
1065
|
-
const
|
|
1065
|
+
const p = v(o.caption, oe);
|
|
1066
1066
|
n.push({
|
|
1067
1067
|
...i,
|
|
1068
1068
|
type: "table",
|
|
1069
|
-
columns:
|
|
1070
|
-
rows:
|
|
1071
|
-
...
|
|
1069
|
+
columns: a,
|
|
1070
|
+
rows: d,
|
|
1071
|
+
...p ? { caption: p } : {}
|
|
1072
1072
|
});
|
|
1073
1073
|
break;
|
|
1074
1074
|
}
|
|
1075
1075
|
case "kpi": {
|
|
1076
|
-
const
|
|
1077
|
-
for (const
|
|
1078
|
-
if (
|
|
1079
|
-
t(`more than ${
|
|
1076
|
+
const s = Array.isArray(o.items) ? o.items : [], a = [];
|
|
1077
|
+
for (const l of s) {
|
|
1078
|
+
if (a.length >= Ue) {
|
|
1079
|
+
t(`more than ${Ue} kpi items`);
|
|
1080
1080
|
break;
|
|
1081
1081
|
}
|
|
1082
|
-
const
|
|
1083
|
-
if (!
|
|
1084
|
-
const
|
|
1085
|
-
|
|
1086
|
-
typeof
|
|
1082
|
+
const d = v(l?.value, 40), p = v(l?.label, 80);
|
|
1083
|
+
if (!d || !p) continue;
|
|
1084
|
+
const c = l?.tone;
|
|
1085
|
+
a.push(
|
|
1086
|
+
typeof c == "string" && mt.has(c) ? { value: d, label: p, tone: c } : { value: d, label: p }
|
|
1087
1087
|
);
|
|
1088
1088
|
}
|
|
1089
|
-
if (
|
|
1089
|
+
if (a.length === 0) {
|
|
1090
1090
|
t("a kpi block without usable items");
|
|
1091
1091
|
continue;
|
|
1092
1092
|
}
|
|
1093
|
-
n.push({ ...i, type: "kpi", items:
|
|
1093
|
+
n.push({ ...i, type: "kpi", items: a });
|
|
1094
1094
|
break;
|
|
1095
1095
|
}
|
|
1096
1096
|
case "callout": {
|
|
1097
|
-
const
|
|
1098
|
-
if (!
|
|
1097
|
+
const s = v(o.text);
|
|
1098
|
+
if (!s) {
|
|
1099
1099
|
t("a callout without text");
|
|
1100
1100
|
continue;
|
|
1101
1101
|
}
|
|
1102
|
-
const
|
|
1102
|
+
const a = v(o.title, 200);
|
|
1103
1103
|
n.push({
|
|
1104
1104
|
...i,
|
|
1105
1105
|
type: "callout",
|
|
1106
|
-
tone:
|
|
1107
|
-
...
|
|
1108
|
-
text:
|
|
1106
|
+
tone: bn(o.tone),
|
|
1107
|
+
...a ? { title: a } : {},
|
|
1108
|
+
text: s
|
|
1109
1109
|
});
|
|
1110
1110
|
break;
|
|
1111
1111
|
}
|
|
@@ -1113,28 +1113,28 @@ function Vi(e, t = () => {
|
|
|
1113
1113
|
}
|
|
1114
1114
|
return n;
|
|
1115
1115
|
}
|
|
1116
|
-
function
|
|
1116
|
+
function cs(e) {
|
|
1117
1117
|
return JSON.stringify(e).length;
|
|
1118
1118
|
}
|
|
1119
|
-
function
|
|
1119
|
+
function ls(e) {
|
|
1120
1120
|
return {
|
|
1121
1121
|
blocks: e.length,
|
|
1122
1122
|
types: e.map((t) => t.type),
|
|
1123
1123
|
headings: e.flatMap((t) => t.type === "heading" ? [t.text] : [])
|
|
1124
1124
|
};
|
|
1125
1125
|
}
|
|
1126
|
-
function
|
|
1126
|
+
function Fe(e) {
|
|
1127
1127
|
return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
|
|
1128
1128
|
}
|
|
1129
|
-
function
|
|
1129
|
+
function Be(e, t, n) {
|
|
1130
1130
|
const r = e.map((o, i) => n?.[i] === "right" ? "---:" : "---");
|
|
1131
1131
|
return [
|
|
1132
|
-
`| ${e.map(
|
|
1132
|
+
`| ${e.map(Fe).join(" | ")} |`,
|
|
1133
1133
|
`| ${r.join(" | ")} |`,
|
|
1134
|
-
...t.map((o) => `| ${o.map(
|
|
1134
|
+
...t.map((o) => `| ${o.map(Fe).join(" | ")} |`)
|
|
1135
1135
|
];
|
|
1136
1136
|
}
|
|
1137
|
-
function
|
|
1137
|
+
function An(e) {
|
|
1138
1138
|
switch (e.type) {
|
|
1139
1139
|
case "heading":
|
|
1140
1140
|
return [`${"#".repeat(e.level)} ${e.text}`];
|
|
@@ -1152,7 +1152,7 @@ function cn(e) {
|
|
|
1152
1152
|
return t.lead ? `${r} **${t.lead}** ${t.text}` : `${r} ${t.text}`;
|
|
1153
1153
|
});
|
|
1154
1154
|
case "table": {
|
|
1155
|
-
const t =
|
|
1155
|
+
const t = Be(
|
|
1156
1156
|
e.columns.map((n) => n.label),
|
|
1157
1157
|
e.rows,
|
|
1158
1158
|
e.columns.map((n) => n.align ?? "left")
|
|
@@ -1160,7 +1160,7 @@ function cn(e) {
|
|
|
1160
1160
|
return e.caption ? [...t, "", `*${e.caption}*`] : t;
|
|
1161
1161
|
}
|
|
1162
1162
|
case "kpi":
|
|
1163
|
-
return
|
|
1163
|
+
return Be(
|
|
1164
1164
|
e.items.map((t) => t.value),
|
|
1165
1165
|
[e.items.map((t) => t.label)]
|
|
1166
1166
|
);
|
|
@@ -1168,11 +1168,11 @@ function cn(e) {
|
|
|
1168
1168
|
return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
|
|
1169
1169
|
}
|
|
1170
1170
|
}
|
|
1171
|
-
function
|
|
1171
|
+
function us(e, t) {
|
|
1172
1172
|
const n = [], r = e.some((o) => o.type === "heading" && o.level === 1);
|
|
1173
1173
|
t && !r && n.push(`# ${t}`);
|
|
1174
1174
|
for (const o of e) {
|
|
1175
|
-
const i =
|
|
1175
|
+
const i = An(o);
|
|
1176
1176
|
i.length > 0 && n.push(i.join(`
|
|
1177
1177
|
`));
|
|
1178
1178
|
}
|
|
@@ -1181,45 +1181,45 @@ function Yi(e, t) {
|
|
|
1181
1181
|
`)}
|
|
1182
1182
|
`;
|
|
1183
1183
|
}
|
|
1184
|
-
const
|
|
1185
|
-
function
|
|
1184
|
+
const yt = (e) => `user:${e}`, bt = (e) => `team:${e}`;
|
|
1185
|
+
function ds(e) {
|
|
1186
1186
|
const t = /* @__PURE__ */ new Set();
|
|
1187
1187
|
for (const n of e ?? [])
|
|
1188
|
-
n?.id && (n.kind === "user" && t.add(
|
|
1188
|
+
n?.id && (n.kind === "user" && t.add(yt(n.id)), n.kind === "team" && t.add(bt(n.id)));
|
|
1189
1189
|
return [...t].sort();
|
|
1190
1190
|
}
|
|
1191
|
-
function
|
|
1192
|
-
return [
|
|
1191
|
+
function fs(e, t) {
|
|
1192
|
+
return [yt(e), ...t.map(bt)];
|
|
1193
1193
|
}
|
|
1194
|
-
function
|
|
1194
|
+
function ps(e) {
|
|
1195
1195
|
const t = /* @__PURE__ */ new Set();
|
|
1196
1196
|
for (const n of e ?? [])
|
|
1197
1197
|
n?.kind && t.add(n.kind);
|
|
1198
1198
|
return [...t];
|
|
1199
1199
|
}
|
|
1200
|
-
const
|
|
1201
|
-
function
|
|
1202
|
-
return
|
|
1200
|
+
const En = ["done", "escalated"], ms = ["open", "waiting"];
|
|
1201
|
+
function gs(e) {
|
|
1202
|
+
return En.includes(e);
|
|
1203
1203
|
}
|
|
1204
|
-
const
|
|
1205
|
-
function
|
|
1206
|
-
return `${
|
|
1204
|
+
const Sn = "assignment";
|
|
1205
|
+
function hs(e) {
|
|
1206
|
+
return `${Sn}:${e}`;
|
|
1207
1207
|
}
|
|
1208
|
-
function
|
|
1208
|
+
function ys(e, t, n, r) {
|
|
1209
1209
|
if (e.direction === "inbound") return !0;
|
|
1210
1210
|
if (e.author?.type === "user" && e.author.id === t) return !1;
|
|
1211
1211
|
const o = e.payload?.mentions;
|
|
1212
1212
|
return Array.isArray(o) && o.includes(t) || r && r === t ? !0 : n === "reply";
|
|
1213
1213
|
}
|
|
1214
|
-
function
|
|
1214
|
+
function bs(e) {
|
|
1215
1215
|
const { targetAuthorId: t, reactorId: n, agentId: r, on: o } = e;
|
|
1216
1216
|
return !o || !t || t !== r ? !1 : n !== r;
|
|
1217
1217
|
}
|
|
1218
|
-
function
|
|
1218
|
+
function As(e) {
|
|
1219
1219
|
return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
|
|
1220
1220
|
}
|
|
1221
|
-
const
|
|
1222
|
-
function
|
|
1221
|
+
const _n = 12;
|
|
1222
|
+
function Es(e, t, n = _n) {
|
|
1223
1223
|
const r = t + 1;
|
|
1224
1224
|
return e ? e.kind === "done" ? { status: "done", waitingOn: null, turns: r, reason: e.note } : e.kind === "escalate" ? { status: "escalated", waitingOn: null, turns: r, reason: e.reason } : r >= n ? {
|
|
1225
1225
|
status: "escalated",
|
|
@@ -1233,39 +1233,39 @@ function ia(e, t, n = dn) {
|
|
|
1233
1233
|
reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
|
|
1234
1234
|
};
|
|
1235
1235
|
}
|
|
1236
|
-
const
|
|
1237
|
-
function
|
|
1236
|
+
const Ss = /* @__PURE__ */ new Set(["mail", "message"]);
|
|
1237
|
+
function Tn(e, t) {
|
|
1238
1238
|
const n = e.settings?.signatures?.[t];
|
|
1239
1239
|
return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
|
|
1240
1240
|
}
|
|
1241
|
-
function
|
|
1241
|
+
function _s(e, t, n, r = "html") {
|
|
1242
1242
|
if (!e) return n;
|
|
1243
|
-
const o =
|
|
1243
|
+
const o = Tn(e, t);
|
|
1244
1244
|
return o ? `${n}${r === "text" ? `
|
|
1245
1245
|
|
|
1246
1246
|
` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${o.body}` : n;
|
|
1247
1247
|
}
|
|
1248
|
-
function
|
|
1248
|
+
function Ts(e) {
|
|
1249
1249
|
return e.endpoints ?? [];
|
|
1250
1250
|
}
|
|
1251
|
-
const
|
|
1251
|
+
const wn = 36e5, In = 864e5, R = -1 / 0, ws = (e) => e.score > R, X = {
|
|
1252
1252
|
urgent: 40,
|
|
1253
1253
|
high: 25,
|
|
1254
1254
|
normal: 10,
|
|
1255
1255
|
low: 0
|
|
1256
1256
|
};
|
|
1257
|
-
function
|
|
1257
|
+
function Is(e) {
|
|
1258
1258
|
return Object.fromEntries(e.map((t) => [t.resourceId, t]));
|
|
1259
1259
|
}
|
|
1260
|
-
const
|
|
1261
|
-
function
|
|
1262
|
-
return !!(e &&
|
|
1260
|
+
const Mn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, At = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
|
|
1261
|
+
function kn(e, t) {
|
|
1262
|
+
return !!(e && Mn.test(e) || t && At.test(t));
|
|
1263
1263
|
}
|
|
1264
|
-
const
|
|
1265
|
-
function
|
|
1266
|
-
return e >=
|
|
1264
|
+
const vn = 3, On = 600;
|
|
1265
|
+
function Ms(e, t) {
|
|
1266
|
+
return e >= vn || t >= On;
|
|
1267
1267
|
}
|
|
1268
|
-
const
|
|
1268
|
+
const Cn = [
|
|
1269
1269
|
"list-unsubscribe",
|
|
1270
1270
|
"list-unsubscribe-post",
|
|
1271
1271
|
"list-id",
|
|
@@ -1275,93 +1275,93 @@ const An = [
|
|
|
1275
1275
|
"feedback-id",
|
|
1276
1276
|
"x-mailer"
|
|
1277
1277
|
];
|
|
1278
|
-
function
|
|
1278
|
+
function ks(e) {
|
|
1279
1279
|
const t = {};
|
|
1280
1280
|
for (const n of e) {
|
|
1281
1281
|
const r = n.name?.toLowerCase();
|
|
1282
|
-
r && n.value !== void 0 &&
|
|
1282
|
+
r && n.value !== void 0 && Cn.includes(r) && (t[r] = n.value);
|
|
1283
1283
|
}
|
|
1284
1284
|
return t;
|
|
1285
1285
|
}
|
|
1286
|
-
const
|
|
1287
|
-
function
|
|
1286
|
+
const Nn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, xn = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
|
|
1287
|
+
function vs(e) {
|
|
1288
1288
|
const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
|
|
1289
|
-
if (r && r !== "no" || t["x-auto-response-suppress"] || n &&
|
|
1289
|
+
if (r && r !== "no" || t["x-auto-response-suppress"] || n && Nn.test(n))
|
|
1290
1290
|
return "automated";
|
|
1291
1291
|
const o = t.precedence?.toLowerCase();
|
|
1292
|
-
if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body &&
|
|
1292
|
+
if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && At.test(e.body) || n && xn.test(n))
|
|
1293
1293
|
return "marketing";
|
|
1294
1294
|
}
|
|
1295
|
-
function
|
|
1295
|
+
function Rn(e, t) {
|
|
1296
1296
|
return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
|
|
1297
1297
|
}
|
|
1298
|
-
const
|
|
1298
|
+
const Dn = ["open"], $n = 1e3, Ln = {
|
|
1299
1299
|
urgent: 1,
|
|
1300
1300
|
high: 4,
|
|
1301
1301
|
normal: 8,
|
|
1302
1302
|
low: 24
|
|
1303
|
-
},
|
|
1304
|
-
function
|
|
1305
|
-
return e.lastActivityAt ?? (e.createdAt ? new Date(
|
|
1303
|
+
}, Pn = 72;
|
|
1304
|
+
function Un(e) {
|
|
1305
|
+
return e.lastActivityAt ?? (e.createdAt ? new Date(nn(e)).getTime() : 0);
|
|
1306
1306
|
}
|
|
1307
|
-
function
|
|
1308
|
-
return
|
|
1307
|
+
function Kn(e, t) {
|
|
1308
|
+
return Fn(t.remindersById?.[e.id], e, t.now);
|
|
1309
1309
|
}
|
|
1310
|
-
function
|
|
1310
|
+
function Fn(e, t, n) {
|
|
1311
1311
|
return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
|
|
1312
1312
|
}
|
|
1313
|
-
const
|
|
1314
|
-
function
|
|
1315
|
-
return Math.max(0, (t -
|
|
1313
|
+
const Et = (e) => qt(e) === "outbound_message", St = (e) => Dn.includes(e);
|
|
1314
|
+
function Ee(e, t) {
|
|
1315
|
+
return Math.max(0, (t - Un(e)) / wn);
|
|
1316
1316
|
}
|
|
1317
|
-
function
|
|
1317
|
+
function Bn(e, t) {
|
|
1318
1318
|
const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
|
|
1319
|
-
return typeof n == "number" && n > 0 ? n :
|
|
1319
|
+
return typeof n == "number" && n > 0 ? n : Ln[e.priority ?? "normal"];
|
|
1320
1320
|
}
|
|
1321
|
-
function
|
|
1321
|
+
function Os(e) {
|
|
1322
1322
|
const t = {};
|
|
1323
1323
|
for (const n of e)
|
|
1324
1324
|
typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
|
|
1325
1325
|
return t;
|
|
1326
1326
|
}
|
|
1327
|
-
function
|
|
1328
|
-
return !
|
|
1327
|
+
function Cs(e, t, n) {
|
|
1328
|
+
return !St(e.status) || e.firstResponseAt ? !1 : Ee(e, t) > Bn(e, n);
|
|
1329
1329
|
}
|
|
1330
|
-
function
|
|
1330
|
+
function Hn(e, t) {
|
|
1331
1331
|
const n = e.lastActivityPreview;
|
|
1332
|
-
return n?.direction !== "outbound" || !
|
|
1332
|
+
return n?.direction !== "outbound" || !Et(n.type) ? !1 : Ee(e, t) < Pn;
|
|
1333
1333
|
}
|
|
1334
|
-
function
|
|
1335
|
-
if (!
|
|
1336
|
-
if (e.snoozedTill && e.snoozedTill > t.now) return { score:
|
|
1337
|
-
if (
|
|
1338
|
-
if (
|
|
1334
|
+
function Ns(e, t) {
|
|
1335
|
+
if (!St(e.status)) return { score: R, reasons: [] };
|
|
1336
|
+
if (e.snoozedTill && e.snoozedTill > t.now) return { score: R, reasons: [] };
|
|
1337
|
+
if (Hn(e, t.now)) return { score: R, reasons: [] };
|
|
1338
|
+
if (Kn(e, t)) return { score: R, reasons: [] };
|
|
1339
1339
|
let n = 0;
|
|
1340
1340
|
const r = [], o = e.priority ?? "normal";
|
|
1341
|
-
|
|
1342
|
-
const i =
|
|
1341
|
+
X[o] > 0 && (n += X[o], r.push(`priority:${o}`)), Rn(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
|
|
1342
|
+
const i = Ee(e, t.now);
|
|
1343
1343
|
if (i > 0) {
|
|
1344
|
-
const
|
|
1345
|
-
n +=
|
|
1344
|
+
const l = Math.min(i * 2, 30);
|
|
1345
|
+
n += l, i >= 1 && r.push(`waiting:${Math.round(i)}h`);
|
|
1346
1346
|
}
|
|
1347
|
-
const
|
|
1348
|
-
return
|
|
1347
|
+
const s = e.lastActivityPreview;
|
|
1348
|
+
return s?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), s?.direction === "outbound" && Et(s.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((l) => l === "marketing" || l === "automated") || kn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= $n, r.push("bulk")), { score: n, reasons: r };
|
|
1349
1349
|
}
|
|
1350
|
-
const
|
|
1350
|
+
const xs = (e) => !!e.assignedUserId || !!e.assignedInboxId, Rs = (e) => e.status === "closed", Ds = (e) => ({
|
|
1351
1351
|
urgent: 10,
|
|
1352
1352
|
high: 5,
|
|
1353
1353
|
normal: 2,
|
|
1354
1354
|
low: 1
|
|
1355
|
-
})[e.priority] || 0,
|
|
1356
|
-
function
|
|
1355
|
+
})[e.priority] || 0, $s = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
|
|
1356
|
+
function Ls(e, t) {
|
|
1357
1357
|
const n = e.labels ?? [];
|
|
1358
1358
|
return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
|
|
1359
1359
|
}
|
|
1360
|
-
function
|
|
1360
|
+
function Ps(e, t, n) {
|
|
1361
1361
|
const r = e.translations ?? [];
|
|
1362
1362
|
return r.find((o) => o.locale === t) ?? (n ? r.find((o) => o.locale === n) : void 0) ?? { locale: t };
|
|
1363
1363
|
}
|
|
1364
|
-
const
|
|
1364
|
+
const He = [
|
|
1365
1365
|
{ code: "nl", label: "Nederlands", english: "Dutch" },
|
|
1366
1366
|
{ code: "en", label: "English", english: "English" },
|
|
1367
1367
|
{ code: "de", label: "Deutsch", english: "German" },
|
|
@@ -1376,36 +1376,36 @@ const Pe = [
|
|
|
1376
1376
|
{ code: "fi", label: "Suomi", english: "Finnish" },
|
|
1377
1377
|
{ code: "tr", label: "Türkçe", english: "Turkish" }
|
|
1378
1378
|
];
|
|
1379
|
-
function
|
|
1379
|
+
function _t(e) {
|
|
1380
1380
|
const t = (e ?? "").toLowerCase();
|
|
1381
|
-
return
|
|
1381
|
+
return He.find((n) => n.code === t) ?? He.find((n) => n.code === t.split("-")[0]);
|
|
1382
1382
|
}
|
|
1383
|
-
function
|
|
1384
|
-
return
|
|
1383
|
+
function Us(e) {
|
|
1384
|
+
return _t(e)?.label ?? e;
|
|
1385
1385
|
}
|
|
1386
|
-
function
|
|
1387
|
-
const t =
|
|
1386
|
+
function Ks(e) {
|
|
1387
|
+
const t = _t(e);
|
|
1388
1388
|
return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
|
|
1389
1389
|
}
|
|
1390
|
-
const
|
|
1391
|
-
function
|
|
1390
|
+
const Tt = 3;
|
|
1391
|
+
function jn(e, t) {
|
|
1392
1392
|
const n = /* @__PURE__ */ new Set();
|
|
1393
1393
|
let r = 1, o = t.get(e)?.parentId;
|
|
1394
1394
|
for (; o; ) {
|
|
1395
|
-
if (n.has(o) || (n.add(o), r++, r >
|
|
1395
|
+
if (n.has(o) || (n.add(o), r++, r > Tt + 1)) return 1 / 0;
|
|
1396
1396
|
o = t.get(o)?.parentId;
|
|
1397
1397
|
}
|
|
1398
1398
|
return r;
|
|
1399
1399
|
}
|
|
1400
|
-
function
|
|
1400
|
+
function Fs(e, t, n) {
|
|
1401
1401
|
if (!e) return !0;
|
|
1402
1402
|
if (e === t) return !1;
|
|
1403
|
-
const r = new Map(n.map((
|
|
1404
|
-
if (!r.has(e) || t &&
|
|
1405
|
-
const o =
|
|
1406
|
-
return o + i <=
|
|
1403
|
+
const r = new Map(n.map((s) => [s.id, s]));
|
|
1404
|
+
if (!r.has(e) || t && Gn(e, t, r)) return !1;
|
|
1405
|
+
const o = jn(e, r), i = t ? wt(t, n) : 1;
|
|
1406
|
+
return o + i <= Tt;
|
|
1407
1407
|
}
|
|
1408
|
-
function
|
|
1408
|
+
function Gn(e, t, n) {
|
|
1409
1409
|
const r = /* @__PURE__ */ new Set();
|
|
1410
1410
|
let o = n.get(e)?.parentId;
|
|
1411
1411
|
for (; o; ) {
|
|
@@ -1415,44 +1415,44 @@ function xn(e, t, n) {
|
|
|
1415
1415
|
}
|
|
1416
1416
|
return !1;
|
|
1417
1417
|
}
|
|
1418
|
-
function
|
|
1418
|
+
function wt(e, t, n = /* @__PURE__ */ new Set()) {
|
|
1419
1419
|
if (n.has(e)) return 1;
|
|
1420
1420
|
n.add(e);
|
|
1421
1421
|
const r = t.filter((o) => o.parentId === e);
|
|
1422
|
-
return r.length ? 1 + Math.max(...r.map((o) =>
|
|
1422
|
+
return r.length ? 1 + Math.max(...r.map((o) => wt(o.id, t, n))) : 1;
|
|
1423
1423
|
}
|
|
1424
|
-
const
|
|
1425
|
-
function
|
|
1426
|
-
return e.defaultLocale || e.locale ||
|
|
1424
|
+
const Wn = "en";
|
|
1425
|
+
function Vn(e) {
|
|
1426
|
+
return e.defaultLocale || e.locale || Wn;
|
|
1427
1427
|
}
|
|
1428
|
-
function
|
|
1428
|
+
function Bs(e) {
|
|
1429
1429
|
const t = /* @__PURE__ */ new Set(), n = [];
|
|
1430
|
-
for (const r of [
|
|
1430
|
+
for (const r of [Vn(e), ...e.locales ?? []])
|
|
1431
1431
|
!r || t.has(r) || (t.add(r), n.push(r));
|
|
1432
1432
|
return n;
|
|
1433
1433
|
}
|
|
1434
|
-
function
|
|
1434
|
+
function Hs(e, t, n) {
|
|
1435
1435
|
const r = e.translations ?? [];
|
|
1436
1436
|
return r.find((o) => o.locale === t)?.name ?? (n ? r.find((o) => o.locale === n)?.name : void 0) ?? e.name;
|
|
1437
1437
|
}
|
|
1438
|
-
const
|
|
1439
|
-
function
|
|
1438
|
+
const je = ["lookup", "condition", "parallel", "for-each"];
|
|
1439
|
+
function Ge(e) {
|
|
1440
1440
|
for (const t of e) {
|
|
1441
|
-
if (!
|
|
1442
|
-
return `staptype "${t.type}" mag niet meelezen (alleen ${
|
|
1441
|
+
if (!je.includes(t.type))
|
|
1442
|
+
return `staptype "${t.type}" mag niet meelezen (alleen ${je.join(", ")})`;
|
|
1443
1443
|
if (t.type === "parallel")
|
|
1444
1444
|
for (const n of t.branches ?? []) {
|
|
1445
|
-
const r =
|
|
1445
|
+
const r = Ge(n);
|
|
1446
1446
|
if (r) return r;
|
|
1447
1447
|
}
|
|
1448
1448
|
if (t.type === "for-each") {
|
|
1449
|
-
const n =
|
|
1449
|
+
const n = Ge(t.body ?? []);
|
|
1450
1450
|
if (n) return n;
|
|
1451
1451
|
}
|
|
1452
1452
|
}
|
|
1453
1453
|
return null;
|
|
1454
1454
|
}
|
|
1455
|
-
function
|
|
1455
|
+
function zn(e, t) {
|
|
1456
1456
|
switch (e.kind) {
|
|
1457
1457
|
case "org":
|
|
1458
1458
|
return !0;
|
|
@@ -1462,80 +1462,22 @@ function Ln(e, t) {
|
|
|
1462
1462
|
return e.userId === t.userId;
|
|
1463
1463
|
}
|
|
1464
1464
|
}
|
|
1465
|
-
function
|
|
1466
|
-
return e.filter((n) => n.enabled &&
|
|
1465
|
+
function js(e, t) {
|
|
1466
|
+
return e.filter((n) => n.enabled && zn(n.ownerScope, t));
|
|
1467
1467
|
}
|
|
1468
|
-
function
|
|
1468
|
+
function Gs(e) {
|
|
1469
1469
|
return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
|
|
1470
1470
|
}
|
|
1471
|
-
function
|
|
1471
|
+
function Ws(e) {
|
|
1472
1472
|
return `mcp__${e}__`;
|
|
1473
1473
|
}
|
|
1474
|
-
const
|
|
1475
|
-
function
|
|
1474
|
+
const Vs = 1e3, zs = 2e3, Ys = 500, Xs = 12e3, qs = 4e3, Yn = ["contact", "company", "work_item"];
|
|
1475
|
+
function Js(e) {
|
|
1476
1476
|
if (!e) return !1;
|
|
1477
1477
|
const t = e.slice(0, e.indexOf(":"));
|
|
1478
|
-
return
|
|
1479
|
-
}
|
|
1480
|
-
const Pa = "onboarding-source", Ua = ["support", "billing", "availability", "sales", "onboarding"], Ka = ["keep", "replace"], Fa = "demand-source", Un = 36e5, Fe = 864e5;
|
|
1481
|
-
function Ha(e, t, n, r = "hour") {
|
|
1482
|
-
if (e <= 0 || n <= t) return [];
|
|
1483
|
-
const o = r === "day" ? Fe : Un, i = [];
|
|
1484
|
-
for (let c = Kn(t); c < n; c += Fe) {
|
|
1485
|
-
const l = new Date(c).getUTCDay();
|
|
1486
|
-
l !== 0 && l !== 6 && i.push(c);
|
|
1487
|
-
}
|
|
1488
|
-
if (!i.length) return [];
|
|
1489
|
-
const a = e / i.length, s = [];
|
|
1490
|
-
for (const c of i) {
|
|
1491
|
-
if (r === "day") {
|
|
1492
|
-
s.push({ period: C(c, "day"), seconds: a });
|
|
1493
|
-
continue;
|
|
1494
|
-
}
|
|
1495
|
-
const l = a / 8;
|
|
1496
|
-
for (let d = 9; d < 17; d++) {
|
|
1497
|
-
const h = c + d * o;
|
|
1498
|
-
if (h >= n) break;
|
|
1499
|
-
s.push({ period: C(h, "hour"), seconds: l });
|
|
1500
|
-
}
|
|
1501
|
-
}
|
|
1502
|
-
return s;
|
|
1503
|
-
}
|
|
1504
|
-
function Kn(e) {
|
|
1505
|
-
const t = new Date(e);
|
|
1506
|
-
return t.setUTCHours(0, 0, 0, 0), t.getTime();
|
|
1507
|
-
}
|
|
1508
|
-
const He = 1e3;
|
|
1509
|
-
function Fn(e, t) {
|
|
1510
|
-
let n = 1;
|
|
1511
|
-
for (let r = 1; r <= e; r++)
|
|
1512
|
-
n = t * n / (r + t * n);
|
|
1513
|
-
return n;
|
|
1514
|
-
}
|
|
1515
|
-
function Hn(e, t) {
|
|
1516
|
-
if (e <= 0) return 1;
|
|
1517
|
-
if (t <= 0) return 0;
|
|
1518
|
-
if (e <= t) return 1;
|
|
1519
|
-
const n = Fn(e, t), r = t / e;
|
|
1520
|
-
return n / (1 - r * (1 - n));
|
|
1521
|
-
}
|
|
1522
|
-
function Bn(e, t, n, r) {
|
|
1523
|
-
return r <= 0 ? 1 : e <= t ? 0 : 1 - Hn(e, t) * Math.exp(-(e - t) * n / r);
|
|
1524
|
-
}
|
|
1525
|
-
function jn(e, t, n) {
|
|
1526
|
-
return n <= 0 ? 0 : e * t / n;
|
|
1527
|
-
}
|
|
1528
|
-
function Gn(e, t, n, r) {
|
|
1529
|
-
if (e <= 0 || t <= 0) return 0;
|
|
1530
|
-
const o = jn(e, t, n);
|
|
1531
|
-
if (o <= 0) return 0;
|
|
1532
|
-
const i = r.serviceLevelPercent / 100, a = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
|
|
1533
|
-
for (let s = Math.max(1, Math.ceil(o)); s <= He; s++)
|
|
1534
|
-
if (!(s <= o) && !(Bn(s, o, r.targetSeconds, t) < i) && !(a && o / s > a))
|
|
1535
|
-
return s;
|
|
1536
|
-
return He;
|
|
1478
|
+
return Yn.includes(t);
|
|
1537
1479
|
}
|
|
1538
|
-
const
|
|
1480
|
+
const Zs = "onboarding-source", Qs = ["support", "billing", "availability", "sales", "onboarding"], ea = ["keep", "replace"], Se = [
|
|
1539
1481
|
{
|
|
1540
1482
|
key: "shift",
|
|
1541
1483
|
label: "kind_shift",
|
|
@@ -1609,139 +1551,356 @@ const ge = [
|
|
|
1609
1551
|
absent: !0,
|
|
1610
1552
|
icon: "party-popper"
|
|
1611
1553
|
}
|
|
1612
|
-
],
|
|
1554
|
+
], Xn = {
|
|
1613
1555
|
key: "unknown",
|
|
1614
1556
|
label: "kind_unknown",
|
|
1615
1557
|
capacity: !1,
|
|
1616
1558
|
productive: !1,
|
|
1617
1559
|
absent: !1
|
|
1618
1560
|
};
|
|
1619
|
-
function
|
|
1620
|
-
return t.find((n) => n.key === e) ?? { ...
|
|
1561
|
+
function $(e, t = Se) {
|
|
1562
|
+
return t.find((n) => n.key === e) ?? { ...Xn, key: e };
|
|
1621
1563
|
}
|
|
1622
|
-
function
|
|
1564
|
+
function q(e) {
|
|
1623
1565
|
return e === "published" || e === "approved";
|
|
1624
1566
|
}
|
|
1625
|
-
function
|
|
1567
|
+
function qn(e, t, n = Se) {
|
|
1626
1568
|
if (e.workstreamId !== t) return !1;
|
|
1627
|
-
const r =
|
|
1569
|
+
const r = $(e.kindKey, n);
|
|
1628
1570
|
return r.absent ? !1 : r.productive || r.capacity;
|
|
1629
1571
|
}
|
|
1630
|
-
function
|
|
1631
|
-
if (!e.userId || !
|
|
1632
|
-
const n =
|
|
1572
|
+
function ta(e, t = Se) {
|
|
1573
|
+
if (!e.userId || !q(e.status)) return !1;
|
|
1574
|
+
const n = $(e.kindKey, t);
|
|
1633
1575
|
return n.capacity || n.productive || n.absent;
|
|
1634
1576
|
}
|
|
1635
|
-
const
|
|
1636
|
-
function
|
|
1637
|
-
|
|
1577
|
+
const Jn = 864e5;
|
|
1578
|
+
function Zn(e, t) {
|
|
1579
|
+
const n = new Date(e), r = new Date(t);
|
|
1580
|
+
return n.setHours(12, 0, 0, 0), r.setHours(12, 0, 0, 0), Math.round((r.getTime() - n.getTime()) / Jn);
|
|
1581
|
+
}
|
|
1582
|
+
function It(e, t) {
|
|
1583
|
+
const n = e.cycleMinutes.length;
|
|
1584
|
+
return n === 0 ? 0 : (Zn(e.anchor, t) % n + n) % n;
|
|
1585
|
+
}
|
|
1586
|
+
function Mt(e, t) {
|
|
1587
|
+
return e.effectiveFrom !== void 0 && t < e.effectiveFrom ? 0 : e.cycleMinutes[It(e, t)] ?? 0;
|
|
1588
|
+
}
|
|
1589
|
+
function kt(e, t) {
|
|
1590
|
+
return e.startTimes?.[It(e, t)];
|
|
1638
1591
|
}
|
|
1639
|
-
function
|
|
1592
|
+
function vt(e, t, n, r) {
|
|
1593
|
+
const o = e.filter(
|
|
1594
|
+
(a) => a.effectiveFrom === void 0 || a.effectiveFrom <= r
|
|
1595
|
+
), i = (a) => a.sort((l, d) => (d.effectiveFrom ?? 0) - (l.effectiveFrom ?? 0))[0], s = i(o.filter((a) => a.userId === t));
|
|
1596
|
+
return s || i(
|
|
1597
|
+
o.filter((a) => !a.userId && a.teamId && n.includes(a.teamId))
|
|
1598
|
+
);
|
|
1599
|
+
}
|
|
1600
|
+
function Qn(e, t, n) {
|
|
1601
|
+
return e.filter(
|
|
1602
|
+
(r) => r.userId === t && (r.effectiveFrom === void 0 || r.effectiveFrom <= n)
|
|
1603
|
+
).sort((r, o) => (o.effectiveFrom ?? 0) - (r.effectiveFrom ?? 0))[0];
|
|
1604
|
+
}
|
|
1605
|
+
const We = 864e5;
|
|
1606
|
+
function er(e) {
|
|
1607
|
+
const t = new Date(e);
|
|
1608
|
+
return t.setHours(0, 0, 0, 0), t.getTime();
|
|
1609
|
+
}
|
|
1610
|
+
function Ve(e, t, n, r) {
|
|
1611
|
+
const o = Math.min(t, r) - Math.max(e, n);
|
|
1612
|
+
return o > 0 ? o / 1e3 : 0;
|
|
1613
|
+
}
|
|
1614
|
+
const ze = { interval: 0, day: 1, week: 2 };
|
|
1615
|
+
function na(e, t) {
|
|
1616
|
+
const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
|
|
1617
|
+
(c) => c.userId && q(c.status) && $(c.kindKey).capacity
|
|
1618
|
+
), s = n.filter(
|
|
1619
|
+
(c) => c.userId && q(c.status) && $(c.kindKey).absent
|
|
1620
|
+
), a = t.userIds ?? [
|
|
1621
|
+
.../* @__PURE__ */ new Set([
|
|
1622
|
+
...i.map((c) => c.userId),
|
|
1623
|
+
...r.map((c) => c.userId),
|
|
1624
|
+
...o.map((c) => c.userId)
|
|
1625
|
+
])
|
|
1626
|
+
].filter((c) => !!c), l = {};
|
|
1627
|
+
let d = "interval";
|
|
1628
|
+
const p = (c) => {
|
|
1629
|
+
ze[c] > ze[d] && (d = c);
|
|
1630
|
+
};
|
|
1631
|
+
for (const c of a) {
|
|
1632
|
+
const h = t.teamIdsOf?.(c) ?? [];
|
|
1633
|
+
let A = 0, E = 0, b = 0;
|
|
1634
|
+
for (let u = er(e.from); u < e.to; u += We) {
|
|
1635
|
+
const _ = Math.max(u, e.from), w = Math.min(u + We, e.to);
|
|
1636
|
+
b++;
|
|
1637
|
+
const C = i.filter((I) => I.userId === c).reduce((I, L) => I + Ve(L.start, L.end, _, w), 0);
|
|
1638
|
+
if (C > 0) {
|
|
1639
|
+
A += C;
|
|
1640
|
+
continue;
|
|
1641
|
+
}
|
|
1642
|
+
const k = vt(r, c, h, u), x = k ? Mt(k, u) : 0;
|
|
1643
|
+
if (k && x > 0) {
|
|
1644
|
+
A += x * 60, p(kt(k, u) ? "interval" : "day");
|
|
1645
|
+
continue;
|
|
1646
|
+
}
|
|
1647
|
+
k || E++;
|
|
1648
|
+
}
|
|
1649
|
+
if (E > 0) {
|
|
1650
|
+
const u = Qn(o, c, e.from);
|
|
1651
|
+
u && (A += u.weeklyMinutes * 60 * (E / 7), p("week"));
|
|
1652
|
+
}
|
|
1653
|
+
const T = s.filter((u) => u.userId === c).reduce(
|
|
1654
|
+
(u, _) => u + Ve(_.start, _.end, e.from, e.to),
|
|
1655
|
+
0
|
|
1656
|
+
), f = Math.max(0, A - T);
|
|
1657
|
+
(f > 0 || b > 0) && (l[c] = f);
|
|
1658
|
+
}
|
|
1659
|
+
return {
|
|
1660
|
+
seconds: Object.values(l).reduce((c, h) => c + h, 0),
|
|
1661
|
+
precision: d,
|
|
1662
|
+
byUser: l
|
|
1663
|
+
};
|
|
1664
|
+
}
|
|
1665
|
+
function ra(e, t) {
|
|
1666
|
+
const n = /* @__PURE__ */ new Map();
|
|
1667
|
+
for (const s of e) {
|
|
1668
|
+
const a = s.userId ?? null;
|
|
1669
|
+
n.set(a, (n.get(a) ?? 0) + s.seconds);
|
|
1670
|
+
}
|
|
1671
|
+
const o = [.../* @__PURE__ */ new Set([
|
|
1672
|
+
...Object.keys(t.byUser),
|
|
1673
|
+
...[...n.keys()].filter((s) => s !== null)
|
|
1674
|
+
])].map((s) => {
|
|
1675
|
+
const a = n.get(s) ?? 0, l = t.byUser[s] ?? 0;
|
|
1676
|
+
return {
|
|
1677
|
+
userId: s,
|
|
1678
|
+
requiredSeconds: a,
|
|
1679
|
+
capacitySeconds: l,
|
|
1680
|
+
netSeconds: l - a
|
|
1681
|
+
};
|
|
1682
|
+
});
|
|
1683
|
+
o.sort((s, a) => s.netSeconds - a.netSeconds);
|
|
1684
|
+
const i = n.get(null) ?? 0;
|
|
1685
|
+
return i > 0 && o.push({ userId: null, requiredSeconds: i, capacitySeconds: 0, netSeconds: -i }), o;
|
|
1686
|
+
}
|
|
1687
|
+
const oa = "demand-source", Ye = 1e3;
|
|
1688
|
+
function tr(e, t) {
|
|
1689
|
+
let n = 1;
|
|
1690
|
+
for (let r = 1; r <= e; r++)
|
|
1691
|
+
n = t * n / (r + t * n);
|
|
1692
|
+
return n;
|
|
1693
|
+
}
|
|
1694
|
+
function nr(e, t) {
|
|
1695
|
+
if (e <= 0) return 1;
|
|
1696
|
+
if (t <= 0) return 0;
|
|
1697
|
+
if (e <= t) return 1;
|
|
1698
|
+
const n = tr(e, t), r = t / e;
|
|
1699
|
+
return n / (1 - r * (1 - n));
|
|
1700
|
+
}
|
|
1701
|
+
function rr(e, t, n, r) {
|
|
1702
|
+
return r <= 0 ? 1 : e <= t ? 0 : 1 - nr(e, t) * Math.exp(-(e - t) * n / r);
|
|
1703
|
+
}
|
|
1704
|
+
function or(e, t, n) {
|
|
1705
|
+
return n <= 0 ? 0 : e * t / n;
|
|
1706
|
+
}
|
|
1707
|
+
function ir(e, t, n, r) {
|
|
1708
|
+
if (e <= 0 || t <= 0) return 0;
|
|
1709
|
+
const o = or(e, t, n);
|
|
1710
|
+
if (o <= 0) return 0;
|
|
1711
|
+
const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
|
|
1712
|
+
for (let a = Math.max(1, Math.ceil(o)); a <= Ye; a++)
|
|
1713
|
+
if (!(a <= o) && !(rr(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
|
|
1714
|
+
return a;
|
|
1715
|
+
return Ye;
|
|
1716
|
+
}
|
|
1717
|
+
const sr = 36e5, ar = 864e5;
|
|
1718
|
+
function cr(e) {
|
|
1719
|
+
return e === "day" ? ar : sr;
|
|
1720
|
+
}
|
|
1721
|
+
function ia(e, t) {
|
|
1640
1722
|
return e.start < t.end && t.start < e.end;
|
|
1641
1723
|
}
|
|
1642
|
-
function
|
|
1724
|
+
function ie(e, t, n) {
|
|
1643
1725
|
const r = Math.min(e.end, n) - Math.max(e.start, t);
|
|
1644
1726
|
return r > 0 ? r / 1e3 : 0;
|
|
1645
1727
|
}
|
|
1646
|
-
function
|
|
1728
|
+
function lr(e, t, n) {
|
|
1647
1729
|
const r = e.handleSeconds ?? 0, o = e.seconds ?? (e.volume !== void 0 ? e.volume * r : 0);
|
|
1648
1730
|
if (o <= 0 && !e.volume) return { seconds: 0, headcount: 0 };
|
|
1649
|
-
const i = (t.unplannedLossPercent ?? 0) / 100,
|
|
1731
|
+
const i = (t.unplannedLossPercent ?? 0) / 100, s = i > 0 && i < 1 ? 1 / (1 - i) : 1;
|
|
1650
1732
|
if (t.model === "queue" && e.volume !== void 0 && r > 0) {
|
|
1651
|
-
const
|
|
1652
|
-
return { seconds: o, headcount:
|
|
1733
|
+
const a = ir(e.volume, r, n, t);
|
|
1734
|
+
return { seconds: o, headcount: a * s };
|
|
1653
1735
|
}
|
|
1654
|
-
return { seconds: o, headcount: o / n *
|
|
1655
|
-
}
|
|
1656
|
-
function
|
|
1657
|
-
const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e,
|
|
1658
|
-
for (let
|
|
1659
|
-
const T =
|
|
1660
|
-
let
|
|
1661
|
-
for (const
|
|
1736
|
+
return { seconds: o, headcount: o / n * s };
|
|
1737
|
+
}
|
|
1738
|
+
function sa(e) {
|
|
1739
|
+
const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = cr(s), l = a / 1e3, d = e.kinds, p = t.filter((b) => q(b.status)), c = p.filter((b) => qn(b, n, d)), h = p.filter((b) => $(b.kindKey, d).capacity), A = p.filter((b) => $(b.kindKey, d).absent), E = [];
|
|
1740
|
+
for (let b = B(i.from, s); b < i.to; b += a) {
|
|
1741
|
+
const T = b + a, f = F(b, s);
|
|
1742
|
+
let u = 0;
|
|
1743
|
+
for (const I of c) u += ie(I, b, T);
|
|
1744
|
+
let _ = 0;
|
|
1745
|
+
for (const I of h) _ += ie(I, b, T);
|
|
1662
1746
|
let w = 0;
|
|
1663
|
-
for (const
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
capacitySeconds: w,
|
|
1676
|
-
absentSeconds: N
|
|
1747
|
+
for (const I of A) w += ie(I, b, T);
|
|
1748
|
+
const C = o?.[f] ?? {}, k = lr(C, r, l), x = u / l;
|
|
1749
|
+
E.push({
|
|
1750
|
+
period: f,
|
|
1751
|
+
forecastVolume: C.volume,
|
|
1752
|
+
requiredSeconds: k.seconds,
|
|
1753
|
+
requiredHeadcount: k.headcount,
|
|
1754
|
+
scheduledSeconds: u,
|
|
1755
|
+
scheduledHeadcount: x,
|
|
1756
|
+
netHeadcount: x - k.headcount,
|
|
1757
|
+
capacitySeconds: _,
|
|
1758
|
+
absentSeconds: w
|
|
1677
1759
|
});
|
|
1678
1760
|
}
|
|
1679
|
-
return
|
|
1761
|
+
return E;
|
|
1680
1762
|
}
|
|
1681
|
-
function
|
|
1763
|
+
function ur(e, t) {
|
|
1682
1764
|
return e.workTypeKey ?? t?.defaultWorkTypeKey;
|
|
1683
1765
|
}
|
|
1684
|
-
function
|
|
1685
|
-
const r =
|
|
1766
|
+
function aa(e, t, n) {
|
|
1767
|
+
const r = ur(e, t);
|
|
1686
1768
|
return r ? n.find((o) => o.key === r)?.defaultBillable ?? !1 : !1;
|
|
1687
1769
|
}
|
|
1688
|
-
function
|
|
1770
|
+
function ca(e) {
|
|
1689
1771
|
return e.filter(
|
|
1690
1772
|
(t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
|
|
1691
1773
|
);
|
|
1692
1774
|
}
|
|
1693
|
-
const
|
|
1694
|
-
function
|
|
1775
|
+
const dr = 36e5, de = 6048e5, fr = 8, pr = 0.5, mr = 2;
|
|
1776
|
+
function gr(e) {
|
|
1695
1777
|
const t = Number(e.slice(0, 4)), n = Number(e.slice(5, 7)), r = Number(e.slice(8, 10)), o = e.length > 10 ? Number(e.slice(11, 13)) : 0;
|
|
1696
1778
|
return Date.UTC(t, n - 1, r, o);
|
|
1697
1779
|
}
|
|
1698
|
-
function
|
|
1780
|
+
function hr(e, t, n) {
|
|
1699
1781
|
const r = [];
|
|
1700
1782
|
for (let i = 0; i < n; i++) {
|
|
1701
|
-
const
|
|
1702
|
-
let
|
|
1703
|
-
for (const [
|
|
1704
|
-
|
|
1705
|
-
|
|
1783
|
+
const s = t - i * de, a = s - de;
|
|
1784
|
+
let l = 0, d = !1;
|
|
1785
|
+
for (const [p, c] of e)
|
|
1786
|
+
p >= a && p < s && (l += c, d = !0);
|
|
1787
|
+
d && r.push(l);
|
|
1706
1788
|
}
|
|
1707
1789
|
if (r.length < 2) return 1;
|
|
1708
|
-
const o = r.reduce((i,
|
|
1709
|
-
return o <= 0 ? 1 : Math.min(
|
|
1790
|
+
const o = r.reduce((i, s) => i + s, 0) / r.length;
|
|
1791
|
+
return o <= 0 ? 1 : Math.min(mr, Math.max(pr, r[0] / o));
|
|
1710
1792
|
}
|
|
1711
|
-
function
|
|
1793
|
+
function yr(e, t) {
|
|
1712
1794
|
if (!e?.length) return;
|
|
1713
1795
|
let n;
|
|
1714
1796
|
for (const r of e)
|
|
1715
1797
|
t >= r.from && t < r.to && (n = r);
|
|
1716
1798
|
return n;
|
|
1717
1799
|
}
|
|
1718
|
-
function
|
|
1719
|
-
const r = Math.max(1, n?.weeks ??
|
|
1720
|
-
for (const
|
|
1721
|
-
o.set(
|
|
1722
|
-
const
|
|
1723
|
-
for (let
|
|
1724
|
-
let
|
|
1725
|
-
for (let
|
|
1726
|
-
const
|
|
1800
|
+
function la(e, t, n) {
|
|
1801
|
+
const r = Math.max(1, n?.weeks ?? fr), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
|
|
1802
|
+
for (const l of e)
|
|
1803
|
+
o.set(gr(l.period), l.value), i.add(l.period.slice(0, 10));
|
|
1804
|
+
const s = hr(o, B(t.from, "hour"), r), a = [];
|
|
1805
|
+
for (let l = B(t.from, "hour"); l < t.to; l += dr) {
|
|
1806
|
+
let d = 0, p = 0;
|
|
1807
|
+
for (let A = 1; A <= r; A++) {
|
|
1808
|
+
const E = l - A * de, T = o.get(E) ?? (i.has(F(E, "day")) ? 0 : void 0);
|
|
1727
1809
|
if (T === void 0) continue;
|
|
1728
|
-
const
|
|
1729
|
-
|
|
1810
|
+
const f = r - A + 1;
|
|
1811
|
+
d += T * f, p += f;
|
|
1730
1812
|
}
|
|
1731
|
-
let
|
|
1732
|
-
const
|
|
1733
|
-
|
|
1813
|
+
let c = p > 0 ? d / p * s : 0;
|
|
1814
|
+
const h = yr(n?.adjustments, l);
|
|
1815
|
+
h?.absoluteVolume !== void 0 ? c = h.absoluteVolume : h?.factor !== void 0 && (c *= h.factor), a.push({ period: F(l, "hour"), volume: c });
|
|
1734
1816
|
}
|
|
1735
|
-
return
|
|
1817
|
+
return a;
|
|
1736
1818
|
}
|
|
1737
|
-
const
|
|
1738
|
-
function
|
|
1739
|
-
return `${
|
|
1819
|
+
const br = "schedule_entry", Ar = "workstream";
|
|
1820
|
+
function ua(e) {
|
|
1821
|
+
return `${br}:${e}`;
|
|
1740
1822
|
}
|
|
1741
|
-
function
|
|
1742
|
-
return `${
|
|
1823
|
+
function da(e) {
|
|
1824
|
+
return `${Ar}:${e}`;
|
|
1825
|
+
}
|
|
1826
|
+
const fe = 36e5, P = 864e5;
|
|
1827
|
+
function Er(e, t) {
|
|
1828
|
+
const n = t === "day" ? P : fe, r = [];
|
|
1829
|
+
for (let o = B(e.from, t); o < e.to; o += n) r.push(o);
|
|
1830
|
+
return r;
|
|
1831
|
+
}
|
|
1832
|
+
function Xe(e, t, n, r) {
|
|
1833
|
+
const o = Math.min(t, r) - Math.max(e, n);
|
|
1834
|
+
return o > 0 ? o / 1e3 : 0;
|
|
1835
|
+
}
|
|
1836
|
+
function fa(e, t, n = {}) {
|
|
1837
|
+
const r = n.grain ?? "hour", o = Er(t, r), i = r === "day" ? P : fe, s = new Map(o.map((c) => [c, 0])), a = e.filter((c) => c.userId && $(c.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, d = /* @__PURE__ */ new Set();
|
|
1838
|
+
for (const c of a)
|
|
1839
|
+
if (!(l && c.userId && !l.has(c.userId))) {
|
|
1840
|
+
for (const h of o) {
|
|
1841
|
+
const A = Xe(c.start, c.end, h, h + i);
|
|
1842
|
+
A > 0 && s.set(h, (s.get(h) ?? 0) + A);
|
|
1843
|
+
}
|
|
1844
|
+
for (let h = V(c.start); h < c.end; h += P)
|
|
1845
|
+
d.add(`${c.userId}:${V(h)}`);
|
|
1846
|
+
}
|
|
1847
|
+
const p = n.userIds ?? [
|
|
1848
|
+
...new Set(a.map((c) => c.userId).filter(Boolean))
|
|
1849
|
+
];
|
|
1850
|
+
if (n.patterns?.length)
|
|
1851
|
+
for (const c of p) {
|
|
1852
|
+
const h = n.teamIdsOf?.(c) ?? [];
|
|
1853
|
+
for (let A = V(t.from); A < t.to; A += P) {
|
|
1854
|
+
const E = V(A);
|
|
1855
|
+
if (d.has(`${c}:${E}`)) continue;
|
|
1856
|
+
const b = vt(n.patterns, c, h, E);
|
|
1857
|
+
if (!b) continue;
|
|
1858
|
+
const T = Mt(b, E);
|
|
1859
|
+
if (T <= 0) continue;
|
|
1860
|
+
const f = kt(b, E);
|
|
1861
|
+
if (f) {
|
|
1862
|
+
const [w, C] = f.split(":").map(Number), k = E + w * fe + (C ?? 0) * 6e4, x = k + T * 6e4;
|
|
1863
|
+
for (const I of o) {
|
|
1864
|
+
const L = Xe(k, x, I, I + i);
|
|
1865
|
+
L > 0 && s.set(I, (s.get(I) ?? 0) + L);
|
|
1866
|
+
}
|
|
1867
|
+
continue;
|
|
1868
|
+
}
|
|
1869
|
+
const u = o.filter((w) => w >= E && w < E + P);
|
|
1870
|
+
if (!u.length) continue;
|
|
1871
|
+
const _ = T * 60 / u.length;
|
|
1872
|
+
for (const w of u) s.set(w, (s.get(w) ?? 0) + _);
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1875
|
+
return o.map((c) => ({ period: F(c, r), weight: s.get(c) ?? 0 }));
|
|
1876
|
+
}
|
|
1877
|
+
function V(e) {
|
|
1878
|
+
const t = new Date(e);
|
|
1879
|
+
return t.setHours(0, 0, 0, 0), t.getTime();
|
|
1880
|
+
}
|
|
1881
|
+
function Sr(e, t) {
|
|
1882
|
+
if (e <= 0 || !t.length) return [];
|
|
1883
|
+
const n = t.reduce((r, o) => r + Math.max(0, o.weight), 0);
|
|
1884
|
+
if (n <= 0) {
|
|
1885
|
+
const r = e / t.length;
|
|
1886
|
+
return t.map((o) => ({ period: o.period, seconds: r }));
|
|
1887
|
+
}
|
|
1888
|
+
return t.filter((r) => r.weight > 0).map((r) => ({ period: r.period, seconds: e * r.weight / n }));
|
|
1743
1889
|
}
|
|
1744
|
-
function
|
|
1890
|
+
function pa(e, t, n) {
|
|
1891
|
+
const r = /* @__PURE__ */ new Map();
|
|
1892
|
+
for (const o of e) {
|
|
1893
|
+
const i = o.by ? t.filter((a) => n(a.period) < o.by) : t, s = i.length ? i : t;
|
|
1894
|
+
for (const a of Sr(o.seconds, s)) {
|
|
1895
|
+
const l = `${a.period}|${o.userId ?? ""}`, d = r.get(l);
|
|
1896
|
+
d ? d.seconds += a.seconds : r.set(l, { ...a, userId: o.userId });
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
return [...r.values()].sort(
|
|
1900
|
+
(o, i) => o.period.localeCompare(i.period) || (o.userId ?? "").localeCompare(i.userId ?? "")
|
|
1901
|
+
);
|
|
1902
|
+
}
|
|
1903
|
+
function _r(e) {
|
|
1745
1904
|
switch (e.kind) {
|
|
1746
1905
|
case "user":
|
|
1747
1906
|
return `user:${e.userId}`;
|
|
@@ -1751,7 +1910,7 @@ function sr(e) {
|
|
|
1751
1910
|
return "org";
|
|
1752
1911
|
}
|
|
1753
1912
|
}
|
|
1754
|
-
function
|
|
1913
|
+
function ma(e) {
|
|
1755
1914
|
if (typeof e != "string") return;
|
|
1756
1915
|
const t = e.trim();
|
|
1757
1916
|
if (t === "org") return { kind: "org" };
|
|
@@ -1763,10 +1922,10 @@ function qa(e) {
|
|
|
1763
1922
|
if (r === "team") return { kind: "team", teamId: o };
|
|
1764
1923
|
}
|
|
1765
1924
|
}
|
|
1766
|
-
function
|
|
1767
|
-
return
|
|
1925
|
+
function Tr(e) {
|
|
1926
|
+
return _r(e);
|
|
1768
1927
|
}
|
|
1769
|
-
function
|
|
1928
|
+
function wr(e) {
|
|
1770
1929
|
switch (e.kind) {
|
|
1771
1930
|
case "personal":
|
|
1772
1931
|
return { kind: "user", userId: e.userId };
|
|
@@ -1776,14 +1935,14 @@ function lr(e) {
|
|
|
1776
1935
|
return { kind: "org" };
|
|
1777
1936
|
}
|
|
1778
1937
|
}
|
|
1779
|
-
const
|
|
1780
|
-
function
|
|
1781
|
-
return e.agentId ? { kind: "user", userId: e.agentId } :
|
|
1938
|
+
const Ir = wr;
|
|
1939
|
+
function ga(e) {
|
|
1940
|
+
return e.agentId ? { kind: "user", userId: e.agentId } : Ir(e.ownerScope);
|
|
1782
1941
|
}
|
|
1783
|
-
function
|
|
1784
|
-
return
|
|
1942
|
+
function ha(e) {
|
|
1943
|
+
return Tr(e);
|
|
1785
1944
|
}
|
|
1786
|
-
function
|
|
1945
|
+
function ya(e, t) {
|
|
1787
1946
|
if (!t) return;
|
|
1788
1947
|
let n = e;
|
|
1789
1948
|
for (const r of t.split(".")) {
|
|
@@ -1792,24 +1951,24 @@ function Qa(e, t) {
|
|
|
1792
1951
|
}
|
|
1793
1952
|
return n;
|
|
1794
1953
|
}
|
|
1795
|
-
function
|
|
1954
|
+
function ba(e, t) {
|
|
1796
1955
|
return e.targets.find((n) => n.activityTypes.includes(t));
|
|
1797
1956
|
}
|
|
1798
|
-
function
|
|
1957
|
+
function Aa(e, t) {
|
|
1799
1958
|
if (t)
|
|
1800
1959
|
return e.targets.find((n) => n.id === t);
|
|
1801
1960
|
}
|
|
1802
|
-
function
|
|
1961
|
+
function Mr(e) {
|
|
1803
1962
|
return e?.kind === "assignment";
|
|
1804
1963
|
}
|
|
1805
|
-
function
|
|
1806
|
-
const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId:
|
|
1807
|
-
return
|
|
1964
|
+
function Ea(e) {
|
|
1965
|
+
const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
|
|
1966
|
+
return Mr(t) ? n ? r ? r.activityTypes.includes(o) ? i ? i !== n ? "assigned to someone else" : s && s === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${o} does not announce an assignment for ${r.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
|
|
1808
1967
|
}
|
|
1809
|
-
function
|
|
1968
|
+
function Sa(e) {
|
|
1810
1969
|
return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
|
|
1811
1970
|
}
|
|
1812
|
-
const
|
|
1971
|
+
const _a = [
|
|
1813
1972
|
{ name: "text", type: "string" },
|
|
1814
1973
|
{ name: "subject", type: "string" },
|
|
1815
1974
|
{ name: "from", type: "string" },
|
|
@@ -1849,7 +2008,7 @@ const os = [
|
|
|
1849
2008
|
// `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
|
|
1850
2009
|
// the trigger filter runs — like contactId/companyId above.
|
|
1851
2010
|
{ name: "assigneeUserId", type: "string" }
|
|
1852
|
-
],
|
|
2011
|
+
], Ta = {
|
|
1853
2012
|
topics: [
|
|
1854
2013
|
{ name: "topicId", type: "string" },
|
|
1855
2014
|
{ name: "topic", type: "string" },
|
|
@@ -1863,58 +2022,58 @@ const os = [
|
|
|
1863
2022
|
// Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
|
|
1864
2023
|
extract: []
|
|
1865
2024
|
};
|
|
1866
|
-
function
|
|
2025
|
+
function kr(e) {
|
|
1867
2026
|
return `${e.type}:${e.id}`;
|
|
1868
2027
|
}
|
|
1869
|
-
const
|
|
1870
|
-
function
|
|
1871
|
-
return e?.type ===
|
|
2028
|
+
const vr = "interaction";
|
|
2029
|
+
function Or(e) {
|
|
2030
|
+
return e?.type === vr ? e.id : void 0;
|
|
1872
2031
|
}
|
|
1873
|
-
const
|
|
1874
|
-
function
|
|
2032
|
+
const Cr = 64, Nr = 8e3;
|
|
2033
|
+
function wa(e) {
|
|
1875
2034
|
const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
|
|
1876
2035
|
if (!(!Number.isFinite(t) || t <= 0))
|
|
1877
|
-
return Math.min(Math.max(Math.round(t),
|
|
2036
|
+
return Math.min(Math.max(Math.round(t), Cr), Nr);
|
|
1878
2037
|
}
|
|
1879
|
-
const
|
|
1880
|
-
function
|
|
2038
|
+
const Ia = { kind: "workflow", steps: [] };
|
|
2039
|
+
function Ma(e) {
|
|
1881
2040
|
return e?.kind === "workflow" ? e.steps : [];
|
|
1882
2041
|
}
|
|
1883
|
-
function
|
|
2042
|
+
function ka(e) {
|
|
1884
2043
|
return e?.kind === "procedure" ? e.procedure : void 0;
|
|
1885
2044
|
}
|
|
1886
|
-
function
|
|
2045
|
+
function xr(e) {
|
|
1887
2046
|
const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
|
|
1888
2047
|
return { total: n, rate: n ? t / n : 0 };
|
|
1889
2048
|
}
|
|
1890
|
-
const
|
|
1891
|
-
function
|
|
1892
|
-
const { total: t, rate: n } =
|
|
1893
|
-
return t >=
|
|
2049
|
+
const Rr = 10, Dr = 0.9;
|
|
2050
|
+
function va(e) {
|
|
2051
|
+
const { total: t, rate: n } = xr(e);
|
|
2052
|
+
return t >= Rr && n >= Dr;
|
|
1894
2053
|
}
|
|
1895
|
-
const
|
|
1896
|
-
function
|
|
1897
|
-
return
|
|
2054
|
+
const $r = ["done", "escalated", "failed", "stopped"];
|
|
2055
|
+
function Oa(e) {
|
|
2056
|
+
return $r.includes(e);
|
|
1898
2057
|
}
|
|
1899
|
-
function
|
|
2058
|
+
function Lr(e) {
|
|
1900
2059
|
return e === "waiting";
|
|
1901
2060
|
}
|
|
1902
|
-
function
|
|
1903
|
-
return e === "running" ||
|
|
2061
|
+
function Ca(e) {
|
|
2062
|
+
return e === "running" || Lr(e);
|
|
1904
2063
|
}
|
|
1905
|
-
function
|
|
2064
|
+
function Ot(e) {
|
|
1906
2065
|
return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
|
|
1907
2066
|
}
|
|
1908
|
-
function
|
|
1909
|
-
const t =
|
|
1910
|
-
return t ?
|
|
2067
|
+
function Na(e) {
|
|
2068
|
+
const t = Ot(e);
|
|
2069
|
+
return t ? kr(t) : void 0;
|
|
1911
2070
|
}
|
|
1912
|
-
function
|
|
1913
|
-
return
|
|
2071
|
+
function xa(e) {
|
|
2072
|
+
return Or(Ot(e));
|
|
1914
2073
|
}
|
|
1915
|
-
function
|
|
2074
|
+
function Ra(e) {
|
|
1916
2075
|
const t = [], n = /* @__PURE__ */ new Map();
|
|
1917
|
-
for (const r of [...e].sort(
|
|
2076
|
+
for (const r of [...e].sort(Pr)) {
|
|
1918
2077
|
const o = n.get(r.emoji);
|
|
1919
2078
|
if (o) {
|
|
1920
2079
|
o.push(r.actor);
|
|
@@ -1927,243 +2086,243 @@ function gs(e) {
|
|
|
1927
2086
|
return { emoji: r, count: o.length, actors: o };
|
|
1928
2087
|
}).sort((r, o) => o.count - r.count || t.indexOf(r.emoji) - t.indexOf(o.emoji));
|
|
1929
2088
|
}
|
|
1930
|
-
const
|
|
1931
|
-
function
|
|
2089
|
+
const Pr = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
|
|
2090
|
+
function Da(e, t) {
|
|
1932
2091
|
return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
|
|
1933
2092
|
}
|
|
1934
|
-
const
|
|
1935
|
-
function
|
|
2093
|
+
const pe = 6e4, Ur = 36e5, H = 864e5, Ct = 800;
|
|
2094
|
+
function qe(e, t) {
|
|
1936
2095
|
const n = Date.UTC(e, t + 1, 0);
|
|
1937
|
-
return n - new Date(n).getUTCDay() *
|
|
2096
|
+
return n - new Date(n).getUTCDay() * H + Ur;
|
|
1938
2097
|
}
|
|
1939
|
-
function
|
|
2098
|
+
function Kr(e) {
|
|
1940
2099
|
const t = new Date(e).getUTCFullYear();
|
|
1941
|
-
return e >=
|
|
2100
|
+
return e >= qe(t, 2) && e < qe(t, 9);
|
|
1942
2101
|
}
|
|
1943
|
-
function
|
|
1944
|
-
const n = t.dst === "eu" &&
|
|
1945
|
-
return (t.utcOffsetMinutes + n) *
|
|
2102
|
+
function Nt(e, t) {
|
|
2103
|
+
const n = t.dst === "eu" && Kr(e) ? 60 : 0;
|
|
2104
|
+
return (t.utcOffsetMinutes + n) * pe;
|
|
1946
2105
|
}
|
|
1947
|
-
function
|
|
2106
|
+
function Fr(e) {
|
|
1948
2107
|
return (e + 3) % 7 + 1;
|
|
1949
2108
|
}
|
|
1950
|
-
function
|
|
1951
|
-
const n =
|
|
1952
|
-
if (!t.days.includes(
|
|
1953
|
-
const i = o *
|
|
2109
|
+
function xt(e, t) {
|
|
2110
|
+
const n = Nt(e, t), r = e + n, o = Math.floor(r / H);
|
|
2111
|
+
if (!t.days.includes(Fr(o))) return null;
|
|
2112
|
+
const i = o * H;
|
|
1954
2113
|
return {
|
|
1955
|
-
open: i + t.fromMinutes *
|
|
1956
|
-
close: i + t.toMinutes *
|
|
2114
|
+
open: i + t.fromMinutes * pe - n,
|
|
2115
|
+
close: i + t.toMinutes * pe - n
|
|
1957
2116
|
};
|
|
1958
2117
|
}
|
|
1959
|
-
function
|
|
1960
|
-
const n =
|
|
1961
|
-
return (Math.floor(r /
|
|
2118
|
+
function Rt(e, t) {
|
|
2119
|
+
const n = Nt(e, t), r = e + n;
|
|
2120
|
+
return (Math.floor(r / H) + 1) * H - n;
|
|
1962
2121
|
}
|
|
1963
|
-
function
|
|
2122
|
+
function me(e, t, n) {
|
|
1964
2123
|
if (t <= e) return 0;
|
|
1965
2124
|
if (!n) return t - e;
|
|
1966
2125
|
let r = 0, o = e;
|
|
1967
|
-
for (let i = 0; i <
|
|
1968
|
-
const
|
|
1969
|
-
if (
|
|
1970
|
-
const
|
|
1971
|
-
|
|
2126
|
+
for (let i = 0; i < Ct && o < t; i++) {
|
|
2127
|
+
const s = xt(o, n);
|
|
2128
|
+
if (s) {
|
|
2129
|
+
const a = Math.max(o, s.open), l = Math.min(t, s.close);
|
|
2130
|
+
l > a && (r += l - a);
|
|
1972
2131
|
}
|
|
1973
|
-
o =
|
|
2132
|
+
o = Rt(o, n);
|
|
1974
2133
|
}
|
|
1975
2134
|
return r;
|
|
1976
2135
|
}
|
|
1977
|
-
function
|
|
2136
|
+
function _e(e, t, n) {
|
|
1978
2137
|
if (!n) return e + t;
|
|
1979
2138
|
let r = t, o = e;
|
|
1980
|
-
for (let i = 0; i <
|
|
1981
|
-
const
|
|
1982
|
-
if (
|
|
1983
|
-
const
|
|
1984
|
-
if (
|
|
1985
|
-
const
|
|
1986
|
-
if (r <=
|
|
1987
|
-
r -=
|
|
2139
|
+
for (let i = 0; i < Ct; i++) {
|
|
2140
|
+
const s = xt(o, n);
|
|
2141
|
+
if (s) {
|
|
2142
|
+
const a = Math.max(o, s.open);
|
|
2143
|
+
if (s.close > a) {
|
|
2144
|
+
const l = s.close - a;
|
|
2145
|
+
if (r <= l) return a + r;
|
|
2146
|
+
r -= l;
|
|
1988
2147
|
}
|
|
1989
2148
|
}
|
|
1990
|
-
o =
|
|
2149
|
+
o = Rt(o, n);
|
|
1991
2150
|
}
|
|
1992
2151
|
return e + t;
|
|
1993
2152
|
}
|
|
1994
|
-
function
|
|
2153
|
+
function $a(e) {
|
|
1995
2154
|
const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
|
|
1996
2155
|
return t ? Number(t[1]) * 60 + Number(t[2]) : null;
|
|
1997
2156
|
}
|
|
1998
|
-
const
|
|
1999
|
-
function
|
|
2000
|
-
return e === "snoozed" ?
|
|
2157
|
+
const ge = 1, he = 2;
|
|
2158
|
+
function La(e) {
|
|
2159
|
+
return e === "snoozed" ? ge : he;
|
|
2001
2160
|
}
|
|
2002
|
-
function
|
|
2161
|
+
function Te(e) {
|
|
2003
2162
|
const t = e.calendar;
|
|
2004
2163
|
return t && Array.isArray(t.days) ? t : null;
|
|
2005
2164
|
}
|
|
2006
|
-
const
|
|
2165
|
+
const Pa = [
|
|
2007
2166
|
"speed_of_answer",
|
|
2008
2167
|
"first_response",
|
|
2009
2168
|
"next_response",
|
|
2010
2169
|
"resolution",
|
|
2011
2170
|
"close"
|
|
2012
|
-
],
|
|
2013
|
-
function
|
|
2171
|
+
], Ua = ["snoozed", "waiting_for_customer"], Br = 6e4, Dt = ["speed_of_answer", "first_response", "next_response"], Hr = [...Dt, "resolution", "close"];
|
|
2172
|
+
function j(e) {
|
|
2014
2173
|
return e.state === "running" || e.state === "paused";
|
|
2015
2174
|
}
|
|
2016
|
-
function
|
|
2017
|
-
return
|
|
2175
|
+
function jr(e, t) {
|
|
2176
|
+
return j(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
|
|
2018
2177
|
}
|
|
2019
|
-
function
|
|
2020
|
-
return
|
|
2178
|
+
function Je(e) {
|
|
2179
|
+
return j(e) ? { state: "void" } : null;
|
|
2021
2180
|
}
|
|
2022
|
-
function
|
|
2023
|
-
if (!
|
|
2181
|
+
function Gr(e, t, n, r) {
|
|
2182
|
+
if (!j(e) || (e.pauseBits & t) !== 0) return null;
|
|
2024
2183
|
const o = e.pauseBits | t;
|
|
2025
|
-
return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs:
|
|
2184
|
+
return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: me(n, e.dueAt, r) };
|
|
2026
2185
|
}
|
|
2027
|
-
function
|
|
2028
|
-
if (!
|
|
2186
|
+
function Wr(e, t, n, r) {
|
|
2187
|
+
if (!j(e) || (e.pauseBits & t) === 0) return null;
|
|
2029
2188
|
const o = e.pauseBits & ~t;
|
|
2030
|
-
return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt:
|
|
2031
|
-
}
|
|
2032
|
-
function
|
|
2033
|
-
const i =
|
|
2034
|
-
|
|
2035
|
-
},
|
|
2036
|
-
for (const
|
|
2037
|
-
|
|
2038
|
-
},
|
|
2039
|
-
for (const
|
|
2040
|
-
|
|
2041
|
-
},
|
|
2042
|
-
for (const
|
|
2043
|
-
},
|
|
2044
|
-
for (const
|
|
2045
|
-
},
|
|
2046
|
-
const
|
|
2047
|
-
if (!
|
|
2048
|
-
const
|
|
2049
|
-
|
|
2189
|
+
return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: _e(n, e.remainingMs, r) };
|
|
2190
|
+
}
|
|
2191
|
+
function Ka({ event: e, at: t, now: n, clocks: r, profile: o }) {
|
|
2192
|
+
const i = Te(o), s = Math.min(t, n), a = r.map((f) => ({ ...f })), l = [], d = (f, u) => {
|
|
2193
|
+
u && (l.push({ op: "patch", clockId: f.id, patch: u }), Object.assign(f, u));
|
|
2194
|
+
}, p = (f) => {
|
|
2195
|
+
for (const u of a)
|
|
2196
|
+
u.metric === f && d(u, jr(u, s));
|
|
2197
|
+
}, c = (f) => {
|
|
2198
|
+
for (const u of a)
|
|
2199
|
+
f.includes(u.metric) && d(u, Je(u));
|
|
2200
|
+
}, h = (f) => {
|
|
2201
|
+
for (const u of a) d(u, Gr(u, f, s, i));
|
|
2202
|
+
}, A = (f) => {
|
|
2203
|
+
for (const u of a) d(u, Wr(u, f, s, i));
|
|
2204
|
+
}, E = (f) => a.reduce((u, _) => _.metric === f ? Math.max(u, _.attempt) : u, 0) + 1, b = (f) => a.some((u) => u.metric === f && j(u)), T = (f, u) => {
|
|
2205
|
+
const _ = o.targets.find((C) => C.metric === f);
|
|
2206
|
+
if (!_) return;
|
|
2207
|
+
const w = _.minutes * Br;
|
|
2208
|
+
l.push({
|
|
2050
2209
|
op: "start",
|
|
2051
|
-
metric:
|
|
2052
|
-
attempt:
|
|
2053
|
-
startedAt:
|
|
2054
|
-
targetMs:
|
|
2055
|
-
dueAt:
|
|
2210
|
+
metric: f,
|
|
2211
|
+
attempt: E(f),
|
|
2212
|
+
startedAt: u,
|
|
2213
|
+
targetMs: w,
|
|
2214
|
+
dueAt: _e(u, w, i)
|
|
2056
2215
|
});
|
|
2057
2216
|
};
|
|
2058
2217
|
switch (e) {
|
|
2059
2218
|
case "apply": {
|
|
2060
|
-
for (const
|
|
2061
|
-
|
|
2062
|
-
for (const
|
|
2063
|
-
if (
|
|
2064
|
-
|
|
2065
|
-
(
|
|
2066
|
-
) || T(
|
|
2219
|
+
for (const f of a)
|
|
2220
|
+
f.profileId !== o.id && d(f, Je(f));
|
|
2221
|
+
for (const f of o.targets) {
|
|
2222
|
+
if (f.metric === "next_response") continue;
|
|
2223
|
+
a.some(
|
|
2224
|
+
(_) => _.metric === f.metric && _.profileId === o.id
|
|
2225
|
+
) || T(f.metric, s);
|
|
2067
2226
|
}
|
|
2068
2227
|
break;
|
|
2069
2228
|
}
|
|
2070
2229
|
case "answered":
|
|
2071
|
-
|
|
2230
|
+
p("speed_of_answer");
|
|
2072
2231
|
break;
|
|
2073
2232
|
case "outbound": {
|
|
2074
|
-
|
|
2233
|
+
p("first_response"), p("next_response"), o.pauseOn.includes("waiting_for_customer") && h(he);
|
|
2075
2234
|
break;
|
|
2076
2235
|
}
|
|
2077
2236
|
case "inbound": {
|
|
2078
|
-
|
|
2237
|
+
A(he), !b("first_response") && !b("next_response") && T("next_response", s);
|
|
2079
2238
|
break;
|
|
2080
2239
|
}
|
|
2081
2240
|
case "resolved":
|
|
2082
|
-
|
|
2241
|
+
p("resolution");
|
|
2083
2242
|
break;
|
|
2084
2243
|
case "closed":
|
|
2085
|
-
|
|
2244
|
+
p("close"), p("resolution"), c(Dt);
|
|
2086
2245
|
break;
|
|
2087
2246
|
case "reopened":
|
|
2088
|
-
|
|
2247
|
+
b("resolution") || T("resolution", s), b("close") || T("close", s);
|
|
2089
2248
|
break;
|
|
2090
2249
|
case "snoozed":
|
|
2091
|
-
o.pauseOn.includes("snoozed") &&
|
|
2250
|
+
o.pauseOn.includes("snoozed") && h(ge);
|
|
2092
2251
|
break;
|
|
2093
2252
|
case "unsnoozed":
|
|
2094
|
-
|
|
2253
|
+
A(ge);
|
|
2095
2254
|
break;
|
|
2096
2255
|
case "discarded":
|
|
2097
|
-
|
|
2256
|
+
c(Hr);
|
|
2098
2257
|
break;
|
|
2099
2258
|
}
|
|
2100
|
-
return
|
|
2259
|
+
return l;
|
|
2101
2260
|
}
|
|
2102
|
-
function
|
|
2261
|
+
function Vr(e) {
|
|
2103
2262
|
return e.state === "running" || e.state === "paused";
|
|
2104
2263
|
}
|
|
2105
|
-
function
|
|
2106
|
-
const n =
|
|
2107
|
-
return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -
|
|
2264
|
+
function ye(e, t) {
|
|
2265
|
+
const n = Te(e);
|
|
2266
|
+
return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -me(e.dueAt, t, n) : me(t, e.dueAt, n);
|
|
2108
2267
|
}
|
|
2109
|
-
function
|
|
2110
|
-
return e.state === "paused" ?
|
|
2268
|
+
function Fa(e, t) {
|
|
2269
|
+
return e.state === "paused" ? _e(t, e.remainingMs, Te(e)) : e.dueAt;
|
|
2111
2270
|
}
|
|
2112
|
-
function
|
|
2113
|
-
const n = e.filter(
|
|
2271
|
+
function Ba(e, t) {
|
|
2272
|
+
const n = e.filter(Vr);
|
|
2114
2273
|
if (!n.length) return;
|
|
2115
2274
|
const r = n.filter((i) => i.state === "running");
|
|
2116
2275
|
return (r.length ? r : n).reduce(
|
|
2117
|
-
(i,
|
|
2276
|
+
(i, s) => ye(s, t) < ye(i, t) ? s : i
|
|
2118
2277
|
);
|
|
2119
2278
|
}
|
|
2120
|
-
function
|
|
2279
|
+
function Ha(e, t) {
|
|
2121
2280
|
if (e.state === "missed") return "breached";
|
|
2122
2281
|
if (e.state === "hit") return "met";
|
|
2123
2282
|
if (e.state === "paused") return "paused";
|
|
2124
2283
|
if (e.state === "void") return "met";
|
|
2125
|
-
const n =
|
|
2284
|
+
const n = ye(e, t);
|
|
2126
2285
|
return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
|
|
2127
2286
|
}
|
|
2128
|
-
function
|
|
2287
|
+
function ja(e) {
|
|
2129
2288
|
const t = Math.floor(Math.abs(e) / 1e3), n = Math.floor(t / 86400), r = Math.floor(t % 86400 / 3600), o = Math.floor(t % 3600 / 60);
|
|
2130
2289
|
return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
|
|
2131
2290
|
}
|
|
2132
|
-
const
|
|
2133
|
-
function
|
|
2134
|
-
return `${
|
|
2291
|
+
const zr = "strategy_item";
|
|
2292
|
+
function $t(e) {
|
|
2293
|
+
return `${zr}:${e}`;
|
|
2135
2294
|
}
|
|
2136
|
-
function
|
|
2137
|
-
const n = /* @__PURE__ */ new Set([
|
|
2295
|
+
function Ga(e, t = 25) {
|
|
2296
|
+
const n = /* @__PURE__ */ new Set([$t(e.id)]);
|
|
2138
2297
|
for (const r of e.ancestorKeys ?? []) n.add(r);
|
|
2139
2298
|
return Array.from(n).slice(0, t);
|
|
2140
2299
|
}
|
|
2141
|
-
function
|
|
2142
|
-
return e ? [...e.ancestorKeys ?? [],
|
|
2300
|
+
function Wa(e) {
|
|
2301
|
+
return e ? [...e.ancestorKeys ?? [], $t(e.id)] : [];
|
|
2143
2302
|
}
|
|
2144
|
-
const
|
|
2303
|
+
const Q = [
|
|
2145
2304
|
{ key: "area", label: "level_area", order: 10, measurable: !1, icon: "compass" },
|
|
2146
2305
|
{ key: "objective", label: "level_objective", order: 20, measurable: !0, icon: "target" },
|
|
2147
2306
|
{ key: "key_result", label: "level_key_result", order: 30, measurable: !0, icon: "gauge" }
|
|
2148
|
-
],
|
|
2149
|
-
function
|
|
2307
|
+
], Yr = 999, Xr = 7;
|
|
2308
|
+
function qr(e, t = Q) {
|
|
2150
2309
|
return t.find((n) => n.key === e);
|
|
2151
2310
|
}
|
|
2152
|
-
function
|
|
2153
|
-
return
|
|
2311
|
+
function be(e, t = Q) {
|
|
2312
|
+
return qr(e, t)?.order ?? Yr;
|
|
2154
2313
|
}
|
|
2155
|
-
function
|
|
2156
|
-
return
|
|
2314
|
+
function Va(e, t, n = Q) {
|
|
2315
|
+
return be(t, n) <= be(e, n);
|
|
2157
2316
|
}
|
|
2158
|
-
function
|
|
2159
|
-
const n =
|
|
2317
|
+
function za(e, t = Q) {
|
|
2318
|
+
const n = be(e, t);
|
|
2160
2319
|
return t.filter((o) => o.order > n).sort((o, i) => o.order - i.order)[0]?.key ?? e;
|
|
2161
2320
|
}
|
|
2162
|
-
function
|
|
2321
|
+
function Ya(e) {
|
|
2163
2322
|
const t = e.trim().toLowerCase();
|
|
2164
2323
|
return t ? t.includes("key result") || t.includes("keyresult") || t === "kr" ? "key_result" : t.includes("objective") || t.includes("goal") || t.includes("doel") ? "objective" : t.includes("focus") || t.includes("area") || t.includes("theme") ? "area" : null : null;
|
|
2165
2324
|
}
|
|
2166
|
-
const
|
|
2325
|
+
const Ae = {
|
|
2167
2326
|
pending: "open",
|
|
2168
2327
|
on_track: "open",
|
|
2169
2328
|
at_risk: "open",
|
|
@@ -2172,74 +2331,74 @@ const fe = {
|
|
|
2172
2331
|
achieved: "closed",
|
|
2173
2332
|
missed: "closed"
|
|
2174
2333
|
};
|
|
2175
|
-
function
|
|
2176
|
-
return
|
|
2334
|
+
function Xa(e) {
|
|
2335
|
+
return Ae[e] ?? "open";
|
|
2177
2336
|
}
|
|
2178
|
-
function
|
|
2179
|
-
return Object.keys(
|
|
2180
|
-
(t) => e.includes(
|
|
2337
|
+
function qa(e) {
|
|
2338
|
+
return Object.keys(Ae).filter(
|
|
2339
|
+
(t) => e.includes(Ae[t])
|
|
2181
2340
|
);
|
|
2182
2341
|
}
|
|
2183
|
-
const
|
|
2184
|
-
function
|
|
2342
|
+
const Jr = 864e5, ee = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
|
|
2343
|
+
function Ja(e, t) {
|
|
2185
2344
|
const { direction: n } = e, r = e.startValue ?? 0, o = e.targetValue ?? 0;
|
|
2186
2345
|
if (!Number.isFinite(t)) return 0;
|
|
2187
|
-
const i = n === "down" ? t <= o : t >= o,
|
|
2188
|
-
return (n === "down" ?
|
|
2346
|
+
const i = n === "down" ? t <= o : t >= o, s = o - r;
|
|
2347
|
+
return (n === "down" ? s < 0 : s > 0) ? ee((t - r) / s) : i ? 1 : 0;
|
|
2189
2348
|
}
|
|
2190
|
-
function
|
|
2349
|
+
function Za(e, t) {
|
|
2191
2350
|
const { startDate: n, targetDate: r } = e;
|
|
2192
2351
|
if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
|
|
2193
|
-
return
|
|
2352
|
+
return ee((t - n) / (r - n));
|
|
2194
2353
|
}
|
|
2195
|
-
const
|
|
2196
|
-
function
|
|
2354
|
+
const Zr = 0.1, Qr = 0.25;
|
|
2355
|
+
function Qa(e, t) {
|
|
2197
2356
|
if (typeof e != "number" || typeof t != "number") return;
|
|
2198
2357
|
if (e >= 1) return "achieved";
|
|
2199
2358
|
const n = t - e;
|
|
2200
|
-
return n >=
|
|
2359
|
+
return n >= Qr ? "off_track" : n >= Zr ? "at_risk" : "on_track";
|
|
2201
2360
|
}
|
|
2202
|
-
function
|
|
2361
|
+
function ec(e, t) {
|
|
2203
2362
|
if (t)
|
|
2204
|
-
return
|
|
2363
|
+
return ee(e / t);
|
|
2205
2364
|
}
|
|
2206
|
-
function
|
|
2365
|
+
function tc(e) {
|
|
2207
2366
|
const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
|
|
2208
2367
|
if (t.length)
|
|
2209
|
-
return
|
|
2368
|
+
return ee(t.reduce((n, r) => n + r, 0) / t.length);
|
|
2210
2369
|
}
|
|
2211
|
-
function
|
|
2370
|
+
function nc(e, t) {
|
|
2212
2371
|
const n = e.lastCheckInAt ?? e.createdAt;
|
|
2213
2372
|
if (typeof n != "number") return 0;
|
|
2214
|
-
const r = (e.checkInEveryDays ??
|
|
2373
|
+
const r = (e.checkInEveryDays ?? Xr) * Jr, o = t - n - r;
|
|
2215
2374
|
return o > 0 ? o : 0;
|
|
2216
2375
|
}
|
|
2217
|
-
function
|
|
2376
|
+
function rc(e) {
|
|
2218
2377
|
return e.targetDate ?? Number.MAX_SAFE_INTEGER;
|
|
2219
2378
|
}
|
|
2220
|
-
function
|
|
2379
|
+
function oc(e, t) {
|
|
2221
2380
|
const n = e.accumulatedSeconds || 0;
|
|
2222
2381
|
return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
|
|
2223
2382
|
}
|
|
2224
|
-
function
|
|
2383
|
+
function ic(e, t) {
|
|
2225
2384
|
const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
|
|
2226
2385
|
if (!t || t === "exact") return n * 60;
|
|
2227
2386
|
const r = Number(t);
|
|
2228
2387
|
return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
|
|
2229
2388
|
}
|
|
2230
|
-
function
|
|
2389
|
+
function sc(e) {
|
|
2231
2390
|
const t = Math.max(0, Math.round(e / 60));
|
|
2232
2391
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
2233
2392
|
}
|
|
2234
|
-
function
|
|
2393
|
+
function ac(e) {
|
|
2235
2394
|
const t = Math.max(0, Math.floor(e)), n = (i) => String(i).padStart(2, "0"), r = Math.floor(t / 60) % 60, o = Math.floor(t / 3600);
|
|
2236
2395
|
return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
|
|
2237
2396
|
}
|
|
2238
|
-
function
|
|
2397
|
+
function eo(e) {
|
|
2239
2398
|
return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
|
|
2240
2399
|
}
|
|
2241
|
-
function
|
|
2242
|
-
const n =
|
|
2400
|
+
function cc(e, t) {
|
|
2401
|
+
const n = eo(e) || "werksoort", r = new Set(t);
|
|
2243
2402
|
if (!r.has(n)) return n;
|
|
2244
2403
|
for (let o = 2; o < 500; o++) {
|
|
2245
2404
|
const i = `${n}-${o}`;
|
|
@@ -2247,82 +2406,82 @@ function Gs(e, t) {
|
|
|
2247
2406
|
}
|
|
2248
2407
|
return `${n}-${r.size + 1}`;
|
|
2249
2408
|
}
|
|
2250
|
-
function
|
|
2409
|
+
function lc(e, t) {
|
|
2251
2410
|
const n = e.ownerScope;
|
|
2252
2411
|
return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
|
|
2253
2412
|
}
|
|
2254
|
-
function
|
|
2255
|
-
return e.filter((t) => !t.archived).sort(
|
|
2413
|
+
function uc(e) {
|
|
2414
|
+
return e.filter((t) => !t.archived).sort(to);
|
|
2256
2415
|
}
|
|
2257
|
-
function
|
|
2416
|
+
function to(e, t) {
|
|
2258
2417
|
const n = (e.order ?? 0) - (t.order ?? 0);
|
|
2259
2418
|
return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
|
|
2260
2419
|
}
|
|
2261
|
-
const
|
|
2262
|
-
function
|
|
2420
|
+
const no = 20, ro = 20, se = 300;
|
|
2421
|
+
function D(e) {
|
|
2263
2422
|
return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
|
|
2264
2423
|
}
|
|
2265
|
-
function
|
|
2424
|
+
function oo(e) {
|
|
2266
2425
|
const t = e.replace(/\s+/g, " ").trim();
|
|
2267
|
-
if (t.length <=
|
|
2268
|
-
const n = t.slice(0,
|
|
2269
|
-
return r >
|
|
2270
|
-
}
|
|
2271
|
-
function
|
|
2272
|
-
const n =
|
|
2273
|
-
if (!r || (e.examples ?? []).some((
|
|
2274
|
-
const o = e.exampleCandidates ?? [], i = o.findIndex((
|
|
2426
|
+
if (t.length <= se) return t;
|
|
2427
|
+
const n = t.slice(0, se), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
|
|
2428
|
+
return r > se * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
|
|
2429
|
+
}
|
|
2430
|
+
function dc(e, t) {
|
|
2431
|
+
const n = oo(t.text), r = D(n);
|
|
2432
|
+
if (!r || (e.examples ?? []).some((s) => D(s) === r)) return null;
|
|
2433
|
+
const o = e.exampleCandidates ?? [], i = o.findIndex((s) => D(s.text) === r);
|
|
2275
2434
|
if (i >= 0) {
|
|
2276
2435
|
if (o[i].corrected || !t.corrected) return null;
|
|
2277
|
-
const
|
|
2278
|
-
return
|
|
2436
|
+
const s = [...o];
|
|
2437
|
+
return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, Ze(s);
|
|
2279
2438
|
}
|
|
2280
|
-
return
|
|
2439
|
+
return Ze([{ ...t, text: n }, ...o]).slice(0, ro);
|
|
2281
2440
|
}
|
|
2282
|
-
function
|
|
2441
|
+
function Ze(e) {
|
|
2283
2442
|
return [...e].sort(
|
|
2284
2443
|
(t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
|
|
2285
2444
|
);
|
|
2286
2445
|
}
|
|
2287
|
-
function
|
|
2288
|
-
const n =
|
|
2289
|
-
return { examples: r.some((i) =>
|
|
2446
|
+
function fc(e, t) {
|
|
2447
|
+
const n = D(t), r = (e.examples ?? []).filter((i) => i.trim());
|
|
2448
|
+
return { examples: r.some((i) => D(i) === n) ? r : [...r, t].slice(-no), exampleCandidates: io(e, t) };
|
|
2290
2449
|
}
|
|
2291
|
-
function
|
|
2292
|
-
const n =
|
|
2293
|
-
return (e.exampleCandidates ?? []).filter((r) =>
|
|
2450
|
+
function io(e, t) {
|
|
2451
|
+
const n = D(t);
|
|
2452
|
+
return (e.exampleCandidates ?? []).filter((r) => D(r.text) !== n);
|
|
2294
2453
|
}
|
|
2295
|
-
function
|
|
2454
|
+
function so(e, t) {
|
|
2296
2455
|
const n = e.ownerScope;
|
|
2297
2456
|
return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
|
|
2298
2457
|
}
|
|
2299
|
-
function
|
|
2300
|
-
return e.filter((n) =>
|
|
2458
|
+
function pc(e, t) {
|
|
2459
|
+
return e.filter((n) => so(n, t));
|
|
2301
2460
|
}
|
|
2302
|
-
function
|
|
2461
|
+
function mc(e) {
|
|
2303
2462
|
return e.type === "agent";
|
|
2304
2463
|
}
|
|
2305
|
-
const
|
|
2306
|
-
function
|
|
2464
|
+
const gc = "WORK_COMMENT_ADDED", hc = "WORK_ITEM_ASSIGNED", yc = "WORK_ITEM_STATUS_CHANGED";
|
|
2465
|
+
function ao(e, t) {
|
|
2307
2466
|
const n = (r) => {
|
|
2308
2467
|
const o = new Date(r);
|
|
2309
2468
|
return o.setHours(0, 0, 0, 0), o.getTime();
|
|
2310
2469
|
};
|
|
2311
|
-
return Math.round((n(e) - n(t)) /
|
|
2470
|
+
return Math.round((n(e) - n(t)) / In);
|
|
2312
2471
|
}
|
|
2313
|
-
function
|
|
2314
|
-
if (e.closedAt != null) return { score:
|
|
2472
|
+
function bc(e, t) {
|
|
2473
|
+
if (e.closedAt != null) return { score: R, reasons: [] };
|
|
2315
2474
|
const n = t.remindersById?.[e.id];
|
|
2316
|
-
if (n && n.remindAt > t.now) return { score:
|
|
2475
|
+
if (n && n.remindAt > t.now) return { score: R, reasons: [] };
|
|
2317
2476
|
let r = 0;
|
|
2318
2477
|
const o = [], i = e.priority ?? "normal";
|
|
2319
|
-
if (
|
|
2320
|
-
const
|
|
2321
|
-
|
|
2478
|
+
if (X[i] > 0 && (r += X[i], o.push(`priority:${i}`)), typeof e.dueDate == "number") {
|
|
2479
|
+
const s = ao(e.dueDate, t.now);
|
|
2480
|
+
s < 0 ? (r += 35, o.push("overdue")) : s === 0 && (r += 20, o.push("due-today"));
|
|
2322
2481
|
}
|
|
2323
2482
|
return e.source?.initiator === "system" && e.source.systemReason && (r += 15, o.push(`auto:${e.source.systemReason}`)), { score: r, reasons: o };
|
|
2324
2483
|
}
|
|
2325
|
-
const
|
|
2484
|
+
const we = [
|
|
2326
2485
|
{ key: "task", label: "type_task" },
|
|
2327
2486
|
{ key: "bug", label: "type_bug" },
|
|
2328
2487
|
{ key: "story", label: "type_story" },
|
|
@@ -2330,35 +2489,35 @@ const be = [
|
|
|
2330
2489
|
{ key: "subtask", label: "type_subtask" },
|
|
2331
2490
|
{ key: "case", label: "type_case" },
|
|
2332
2491
|
{ key: "deal", label: "type_deal" }
|
|
2333
|
-
],
|
|
2334
|
-
function
|
|
2335
|
-
return e?.types?.length ? e.types :
|
|
2492
|
+
], Ac = we.map((e) => e.key);
|
|
2493
|
+
function Ec(e) {
|
|
2494
|
+
return e?.types?.length ? e.types : we;
|
|
2336
2495
|
}
|
|
2337
|
-
function
|
|
2496
|
+
function Sc(e, t) {
|
|
2338
2497
|
return t.find((n) => n.key === e);
|
|
2339
2498
|
}
|
|
2340
|
-
function
|
|
2499
|
+
function _c(e) {
|
|
2341
2500
|
const t = e.trim().toLowerCase();
|
|
2342
2501
|
return t ? t.includes("sub-task") || t.includes("subtask") || t.includes("sub task") ? "subtask" : t.includes("bug") || t.includes("defect") ? "bug" : t.includes("epic") ? "epic" : t.includes("story") ? "story" : t.includes("incident") || t.includes("problem") || t.includes("service request") || t.includes("change") ? "case" : t.includes("task") ? "task" : null : null;
|
|
2343
2502
|
}
|
|
2344
|
-
function
|
|
2345
|
-
return e.map((t) =>
|
|
2503
|
+
function Tc(...e) {
|
|
2504
|
+
return e.map((t) => we.find((n) => n.key === t)).filter((t) => !!t);
|
|
2346
2505
|
}
|
|
2347
|
-
const
|
|
2348
|
-
function
|
|
2349
|
-
return `${
|
|
2506
|
+
const co = "work_item", lo = "work_project", uo = "work_activity", wc = "work_cycle";
|
|
2507
|
+
function fo(e) {
|
|
2508
|
+
return `${co}:${e}`;
|
|
2350
2509
|
}
|
|
2351
|
-
function
|
|
2352
|
-
return `${
|
|
2510
|
+
function Lt(e) {
|
|
2511
|
+
return `${lo}:${e}`;
|
|
2353
2512
|
}
|
|
2354
|
-
function
|
|
2355
|
-
return `${
|
|
2513
|
+
function Ic(e) {
|
|
2514
|
+
return `${uo}:${e}`;
|
|
2356
2515
|
}
|
|
2357
|
-
function
|
|
2516
|
+
function Mc(e, t, n) {
|
|
2358
2517
|
const r = `${e}-${t}`;
|
|
2359
2518
|
return n ? `${r}-${n}` : r;
|
|
2360
2519
|
}
|
|
2361
|
-
function
|
|
2520
|
+
function kc(e) {
|
|
2362
2521
|
const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
|
|
2363
2522
|
return t ? {
|
|
2364
2523
|
projectKey: t[1].toUpperCase(),
|
|
@@ -2366,52 +2525,52 @@ function lc(e) {
|
|
|
2366
2525
|
...t[3] ? { subSequence: Number(t[3]) } : {}
|
|
2367
2526
|
} : null;
|
|
2368
2527
|
}
|
|
2369
|
-
function
|
|
2528
|
+
function vc(e) {
|
|
2370
2529
|
return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
|
|
2371
2530
|
}
|
|
2372
|
-
function
|
|
2373
|
-
const n = /* @__PURE__ */ new Set([
|
|
2374
|
-
e.projectId && n.add(
|
|
2531
|
+
function Oc(e, t = 25) {
|
|
2532
|
+
const n = /* @__PURE__ */ new Set([fo(e.id)]);
|
|
2533
|
+
e.projectId && n.add(Lt(e.projectId));
|
|
2375
2534
|
for (const r of e.ancestorKeys ?? []) n.add(r);
|
|
2376
2535
|
for (const r of e.partyKeys ?? []) n.add(r);
|
|
2377
2536
|
return Array.from(n).slice(0, t);
|
|
2378
2537
|
}
|
|
2379
|
-
function
|
|
2380
|
-
return [
|
|
2538
|
+
function Cc(e) {
|
|
2539
|
+
return [Lt(e.id)];
|
|
2381
2540
|
}
|
|
2382
|
-
const
|
|
2541
|
+
const Ie = [
|
|
2383
2542
|
{ key: "open", label: "status_open", category: "todo", order: 0 },
|
|
2384
2543
|
{ key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
|
|
2385
2544
|
{ key: "done", label: "status_done", category: "done", order: 2 },
|
|
2386
2545
|
{ key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
|
|
2387
|
-
],
|
|
2388
|
-
function
|
|
2389
|
-
return e?.statuses?.length ? e.statuses :
|
|
2546
|
+
], Pt = Ie.map((e) => e.key);
|
|
2547
|
+
function po(e) {
|
|
2548
|
+
return e?.statuses?.length ? e.statuses : Ie;
|
|
2390
2549
|
}
|
|
2391
|
-
function
|
|
2550
|
+
function mo(e, t) {
|
|
2392
2551
|
return t.find((n) => n.key === e)?.category ?? "todo";
|
|
2393
2552
|
}
|
|
2394
|
-
function
|
|
2553
|
+
function Nc(e, t) {
|
|
2395
2554
|
return t.find((n) => n.key === e);
|
|
2396
2555
|
}
|
|
2397
|
-
function
|
|
2398
|
-
const t =
|
|
2399
|
-
return n && t.some((r) => r.key === n) ? n :
|
|
2556
|
+
function xc(e) {
|
|
2557
|
+
const t = po(e), n = e?.defaultStatusKey;
|
|
2558
|
+
return n && t.some((r) => r.key === n) ? n : go(t)[0]?.key ?? Ie[0].key;
|
|
2400
2559
|
}
|
|
2401
|
-
function
|
|
2560
|
+
function go(e) {
|
|
2402
2561
|
return [...e].sort((t, n) => {
|
|
2403
2562
|
const r = (t.order ?? 0) - (n.order ?? 0);
|
|
2404
2563
|
return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
|
|
2405
2564
|
});
|
|
2406
2565
|
}
|
|
2407
|
-
function
|
|
2408
|
-
return
|
|
2566
|
+
function Rc(e, t) {
|
|
2567
|
+
return mo(e, t) === "done";
|
|
2409
2568
|
}
|
|
2410
|
-
function
|
|
2569
|
+
function ho(e) {
|
|
2411
2570
|
return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
|
|
2412
2571
|
}
|
|
2413
|
-
function
|
|
2414
|
-
const n =
|
|
2572
|
+
function Dc(e, t) {
|
|
2573
|
+
const n = ho(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Pt]);
|
|
2415
2574
|
if (!r.has(n)) return n;
|
|
2416
2575
|
for (let o = 2; o < 500; o++) {
|
|
2417
2576
|
const i = `${n}-${o}`;
|
|
@@ -2419,7 +2578,7 @@ function hc(e, t) {
|
|
|
2419
2578
|
}
|
|
2420
2579
|
return `${n}-${r.size + 1}`;
|
|
2421
2580
|
}
|
|
2422
|
-
function
|
|
2581
|
+
function $c(e) {
|
|
2423
2582
|
const t = [];
|
|
2424
2583
|
if (!e.length) return [{ index: -1, reason: "empty" }];
|
|
2425
2584
|
const n = /* @__PURE__ */ new Set();
|
|
@@ -2428,16 +2587,16 @@ function yc(e) {
|
|
|
2428
2587
|
t.push({ index: o, reason: "missing_key" });
|
|
2429
2588
|
return;
|
|
2430
2589
|
}
|
|
2431
|
-
|
|
2590
|
+
Pt.includes(r.key) && t.push({ index: o, reason: "reserved_key", key: r.key }), n.has(r.key) && t.push({ index: o, reason: "duplicate_key", key: r.key }), n.add(r.key);
|
|
2432
2591
|
}), e.some((r) => r.category === "todo" || r.category === "in_progress") || t.push({ index: -1, reason: "no_open" }), e.some((r) => r.category === "done") || t.push({ index: -1, reason: "no_done" }), t;
|
|
2433
2592
|
}
|
|
2434
|
-
function
|
|
2593
|
+
function Lc(e) {
|
|
2435
2594
|
return e.startDate ?? Number.MAX_SAFE_INTEGER;
|
|
2436
2595
|
}
|
|
2437
|
-
function
|
|
2596
|
+
function Pc(e) {
|
|
2438
2597
|
return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
|
|
2439
2598
|
}
|
|
2440
|
-
const
|
|
2599
|
+
const yo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), bo = /* @__PURE__ */ new Set([
|
|
2441
2600
|
"text/plain",
|
|
2442
2601
|
"text/markdown",
|
|
2443
2602
|
"text/csv",
|
|
@@ -2446,67 +2605,67 @@ const to = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
|
|
|
2446
2605
|
"application/xml",
|
|
2447
2606
|
"text/xml"
|
|
2448
2607
|
]);
|
|
2449
|
-
function
|
|
2608
|
+
function Ao(e) {
|
|
2450
2609
|
const t = (e ?? "").trim().toLowerCase().split(";")[0];
|
|
2451
|
-
return t ?
|
|
2452
|
-
}
|
|
2453
|
-
const
|
|
2454
|
-
image: 5 *
|
|
2455
|
-
pdf: 20 *
|
|
2456
|
-
text: 1 *
|
|
2457
|
-
audio: 20 *
|
|
2458
|
-
},
|
|
2459
|
-
function
|
|
2460
|
-
const n =
|
|
2461
|
-
return n === "unsupported" ? "unsupported" : t >
|
|
2462
|
-
}
|
|
2463
|
-
function
|
|
2610
|
+
return t ? yo.has(t) ? "image" : t === "application/pdf" ? "pdf" : bo.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
|
|
2611
|
+
}
|
|
2612
|
+
const U = 1024 * 1024, Eo = {
|
|
2613
|
+
image: 5 * U,
|
|
2614
|
+
pdf: 20 * U,
|
|
2615
|
+
text: 1 * U,
|
|
2616
|
+
audio: 20 * U
|
|
2617
|
+
}, Uc = 25 * U, Kc = 5;
|
|
2618
|
+
function Fc(e, t) {
|
|
2619
|
+
const n = Ao(e);
|
|
2620
|
+
return n === "unsupported" ? "unsupported" : t > Eo[n] ? "too-large" : null;
|
|
2621
|
+
}
|
|
2622
|
+
function Bc(e) {
|
|
2464
2623
|
return e.access !== "read" && e.effect !== "internal";
|
|
2465
2624
|
}
|
|
2466
|
-
function
|
|
2625
|
+
function So(e) {
|
|
2467
2626
|
return `${e.kind}:${e.id || e.url || e.title}`;
|
|
2468
2627
|
}
|
|
2469
|
-
function
|
|
2628
|
+
function Hc(e, t = []) {
|
|
2470
2629
|
const n = new Set(t), r = [], o = [];
|
|
2471
2630
|
for (const i of e) {
|
|
2472
|
-
const
|
|
2473
|
-
n.has(
|
|
2631
|
+
const s = So(i);
|
|
2632
|
+
n.has(s) || (n.add(s), r.push(i), o.push(s));
|
|
2474
2633
|
}
|
|
2475
2634
|
return { sources: r, keys: o };
|
|
2476
2635
|
}
|
|
2477
|
-
const
|
|
2478
|
-
function
|
|
2636
|
+
const jc = "assist-source", Gc = ["blocking", "due", "open"];
|
|
2637
|
+
function Wc(e, t) {
|
|
2479
2638
|
const [n, r] = (e.subjectKey ?? "").split(":");
|
|
2480
2639
|
return n === t && r ? r : void 0;
|
|
2481
2640
|
}
|
|
2482
|
-
const
|
|
2483
|
-
function
|
|
2484
|
-
return
|
|
2641
|
+
const Qe = { blocking: 0, due: 1, open: 2 };
|
|
2642
|
+
function Vc(e, t) {
|
|
2643
|
+
return Qe[e.band ?? "open"] - Qe[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
|
|
2485
2644
|
}
|
|
2486
|
-
function
|
|
2645
|
+
function zc(e) {
|
|
2487
2646
|
return e.sessions.filter(
|
|
2488
2647
|
(t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
|
|
2489
2648
|
);
|
|
2490
2649
|
}
|
|
2491
|
-
function
|
|
2650
|
+
function Yc(e) {
|
|
2492
2651
|
return e.sessions.filter(
|
|
2493
2652
|
(t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
|
|
2494
2653
|
);
|
|
2495
2654
|
}
|
|
2496
|
-
function
|
|
2655
|
+
function Xc(e) {
|
|
2497
2656
|
return e.sessions.some(
|
|
2498
2657
|
(n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
|
|
2499
2658
|
) ? { admit: !1, reason: "busy" } : { admit: !0 };
|
|
2500
2659
|
}
|
|
2501
|
-
function
|
|
2502
|
-
const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((
|
|
2660
|
+
function _o(e, t) {
|
|
2661
|
+
const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => wo(s, r[s.intent]));
|
|
2503
2662
|
if (!e.extraIntents || e.extraIntents.length === 0) return o;
|
|
2504
|
-
const i = new Set(o.map((
|
|
2505
|
-
for (const
|
|
2506
|
-
i.has(
|
|
2663
|
+
const i = new Set(o.map((s) => s.intent));
|
|
2664
|
+
for (const s of e.extraIntents)
|
|
2665
|
+
i.has(s.intent) || (o.push(s), i.add(s.intent));
|
|
2507
2666
|
return o;
|
|
2508
2667
|
}
|
|
2509
|
-
function
|
|
2668
|
+
function To(e, t) {
|
|
2510
2669
|
const n = {};
|
|
2511
2670
|
for (const r of e.intents) {
|
|
2512
2671
|
if (!r.togglable) continue;
|
|
@@ -2515,46 +2674,46 @@ function so(e, t) {
|
|
|
2515
2674
|
}
|
|
2516
2675
|
return n;
|
|
2517
2676
|
}
|
|
2518
|
-
function
|
|
2519
|
-
const n =
|
|
2677
|
+
function qc(e, t) {
|
|
2678
|
+
const n = To(e, t);
|
|
2520
2679
|
return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
|
|
2521
2680
|
}
|
|
2522
|
-
function
|
|
2681
|
+
function wo(e, t) {
|
|
2523
2682
|
return t ? {
|
|
2524
2683
|
intent: t.intent ?? e.intent,
|
|
2525
2684
|
targetSchemes: t.targetSchemes ?? e.targetSchemes,
|
|
2526
2685
|
transport: t.transport ?? e.transport
|
|
2527
2686
|
} : e;
|
|
2528
2687
|
}
|
|
2529
|
-
function
|
|
2688
|
+
function Jc(e, t) {
|
|
2530
2689
|
const n = [];
|
|
2531
2690
|
for (const r of e) {
|
|
2532
2691
|
if (!r.enabled) continue;
|
|
2533
2692
|
const o = t[r.providerId];
|
|
2534
2693
|
if (o)
|
|
2535
|
-
for (const i of
|
|
2694
|
+
for (const i of _o(r, o))
|
|
2536
2695
|
n.push({ channel: r, description: o, capability: i });
|
|
2537
2696
|
}
|
|
2538
2697
|
return n;
|
|
2539
2698
|
}
|
|
2540
|
-
function
|
|
2699
|
+
function Zc(e, t) {
|
|
2541
2700
|
return t.filter((n) => n.capability.intent === e);
|
|
2542
2701
|
}
|
|
2543
|
-
function
|
|
2702
|
+
function Io(e, t) {
|
|
2544
2703
|
return t.filter((n) => n.capability.targetSchemes.includes(e));
|
|
2545
2704
|
}
|
|
2546
|
-
function
|
|
2547
|
-
return
|
|
2705
|
+
function Qc(e, t) {
|
|
2706
|
+
return Io(e.scheme, t);
|
|
2548
2707
|
}
|
|
2549
|
-
function
|
|
2708
|
+
function el(e, t, n) {
|
|
2550
2709
|
const r = [];
|
|
2551
2710
|
for (const o of e)
|
|
2552
2711
|
for (const i of n)
|
|
2553
2712
|
i.capability.intent === t && i.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: i, endpoint: o });
|
|
2554
2713
|
return r;
|
|
2555
2714
|
}
|
|
2556
|
-
var
|
|
2557
|
-
const
|
|
2715
|
+
var Mo = /* @__PURE__ */ ((e) => (e.MAILTO = "mailto", e.SIP = "sip", e.TEL = "tel", e.WEBHOOK = "webhook", e.USERNAME = "username", e.ID = "id", e.CUSTOM = "custom", e.URL = "url", e.TELEGRAM = "telegram", e.WHATSAPP = "whatsapp", e.MESSENGER = "messenger", e.INSTAGRAM = "instagram", e.VIBER = "viber", e.SMS = "sms", e.FAX = "fax", e.TEAMS = "teams", e.CALENDAR = "calendar", e))(Mo || {});
|
|
2716
|
+
const ko = {
|
|
2558
2717
|
mailto: "mail",
|
|
2559
2718
|
sip: "tel",
|
|
2560
2719
|
tel: "tel",
|
|
@@ -2575,10 +2734,10 @@ const po = {
|
|
|
2575
2734
|
id: "note",
|
|
2576
2735
|
custom: "note"
|
|
2577
2736
|
};
|
|
2578
|
-
function
|
|
2579
|
-
return e ?
|
|
2737
|
+
function tl(e) {
|
|
2738
|
+
return e ? ko[e] ?? "note" : "note";
|
|
2580
2739
|
}
|
|
2581
|
-
const
|
|
2740
|
+
const nl = "message_window", rl = "message_templates", ol = {
|
|
2582
2741
|
// E-mail
|
|
2583
2742
|
FROM: "from",
|
|
2584
2743
|
TO: "to",
|
|
@@ -2595,12 +2754,12 @@ const Uc = "message_window", Kc = "message_templates", Fc = {
|
|
|
2595
2754
|
// Voice/conference
|
|
2596
2755
|
HOST: "host",
|
|
2597
2756
|
PARTICIPANT: "participant"
|
|
2598
|
-
},
|
|
2757
|
+
}, il = (e, t) => ({ intent: e, ...t }), sl = "folder_management", al = "remote_search", cl = "message_reactions", ll = {
|
|
2599
2758
|
ok: !1,
|
|
2600
2759
|
code: "UNSUPPORTED",
|
|
2601
2760
|
message: "Provider does not support this op"
|
|
2602
|
-
},
|
|
2603
|
-
function
|
|
2761
|
+
}, ul = "connector", dl = "context.collect", y = (e) => ({ type: "string", description: e }), g = (e) => ({ type: "number", description: e }), z = (e) => ({ type: "boolean", description: e }), O = y("Sheet name. Omit for the sheet the user is looking at."), et = y("Slide id, as `inspect` reports it.");
|
|
2762
|
+
function m(e, t, n, r, o, i) {
|
|
2604
2763
|
return {
|
|
2605
2764
|
op: e,
|
|
2606
2765
|
kinds: t,
|
|
@@ -2610,24 +2769,24 @@ function f(e, t, n, r, o, i) {
|
|
|
2610
2769
|
visible: i.visible
|
|
2611
2770
|
};
|
|
2612
2771
|
}
|
|
2613
|
-
const
|
|
2614
|
-
|
|
2772
|
+
const K = { undoable: !1, visible: !0 }, S = { undoable: !0, visible: !0 }, tt = { undoable: !1, visible: !0 }, J = { undoable: !1, visible: !1 }, vo = [
|
|
2773
|
+
m(
|
|
2615
2774
|
"pdf.goToPage",
|
|
2616
2775
|
["pdf"],
|
|
2617
2776
|
"Scroll the viewer to a page.",
|
|
2618
|
-
{ page:
|
|
2777
|
+
{ page: g("1-based page number.") },
|
|
2619
2778
|
["page"],
|
|
2620
|
-
|
|
2779
|
+
K
|
|
2621
2780
|
),
|
|
2622
|
-
|
|
2781
|
+
m(
|
|
2623
2782
|
"pdf.search",
|
|
2624
2783
|
["pdf"],
|
|
2625
2784
|
"Search the document and highlight the matches, as the find bar does.",
|
|
2626
|
-
{ query:
|
|
2785
|
+
{ query: y("Text to find."), next: z("Jump to the next match instead of the first.") },
|
|
2627
2786
|
["query"],
|
|
2628
|
-
|
|
2787
|
+
K
|
|
2629
2788
|
),
|
|
2630
|
-
|
|
2789
|
+
m(
|
|
2631
2790
|
"pdf.setTool",
|
|
2632
2791
|
["pdf"],
|
|
2633
2792
|
"Select a markup tool for the user, so their next click draws it.",
|
|
@@ -2639,23 +2798,23 @@ const D = { undoable: !1, visible: !0 }, b = { undoable: !0, visible: !0 }, ze =
|
|
|
2639
2798
|
}
|
|
2640
2799
|
},
|
|
2641
2800
|
["tool"],
|
|
2642
|
-
|
|
2801
|
+
K
|
|
2643
2802
|
),
|
|
2644
|
-
|
|
2803
|
+
m(
|
|
2645
2804
|
"pdf.fillField",
|
|
2646
2805
|
["pdf"],
|
|
2647
2806
|
"Fill one form field of a fillable PDF.",
|
|
2648
2807
|
{
|
|
2649
|
-
field:
|
|
2808
|
+
field: y("Field name, exactly as `inspect` reports it under `fields`."),
|
|
2650
2809
|
value: {
|
|
2651
2810
|
type: ["string", "boolean"],
|
|
2652
2811
|
description: "Text for a text field, true/false for a checkbox or radio."
|
|
2653
2812
|
}
|
|
2654
2813
|
},
|
|
2655
2814
|
["field", "value"],
|
|
2656
|
-
|
|
2815
|
+
S
|
|
2657
2816
|
),
|
|
2658
|
-
|
|
2817
|
+
m(
|
|
2659
2818
|
"pdf.reorderPages",
|
|
2660
2819
|
["pdf"],
|
|
2661
2820
|
"Put the pages in a different order. Pages left out are deleted.",
|
|
@@ -2667,52 +2826,52 @@ const D = { undoable: !1, visible: !0 }, b = { undoable: !0, visible: !0 }, ze =
|
|
|
2667
2826
|
}
|
|
2668
2827
|
},
|
|
2669
2828
|
["order"],
|
|
2670
|
-
|
|
2829
|
+
tt
|
|
2671
2830
|
),
|
|
2672
|
-
|
|
2831
|
+
m(
|
|
2673
2832
|
"pdf.deletePages",
|
|
2674
2833
|
["pdf"],
|
|
2675
2834
|
"Remove pages, keeping the rest in order.",
|
|
2676
2835
|
{ pages: { type: "array", items: { type: "number" }, description: "1-based page numbers." } },
|
|
2677
2836
|
["pages"],
|
|
2678
|
-
|
|
2837
|
+
tt
|
|
2679
2838
|
),
|
|
2680
|
-
|
|
2839
|
+
m(
|
|
2681
2840
|
"pdf.addNote",
|
|
2682
2841
|
["pdf"],
|
|
2683
2842
|
"Place a text note on a page. Written on save; not visible before that.",
|
|
2684
2843
|
{
|
|
2685
|
-
page:
|
|
2686
|
-
text:
|
|
2687
|
-
left:
|
|
2688
|
-
top:
|
|
2689
|
-
width:
|
|
2690
|
-
height:
|
|
2691
|
-
fontSize:
|
|
2844
|
+
page: g("1-based page number."),
|
|
2845
|
+
text: y("The note's text."),
|
|
2846
|
+
left: g("Distance from the left edge, in PDF points (72 per inch)."),
|
|
2847
|
+
top: g("Distance from the top edge, in PDF points."),
|
|
2848
|
+
width: g("Box width in points. Omit for a sensible default."),
|
|
2849
|
+
height: g("Box height in points. Omit for a sensible default."),
|
|
2850
|
+
fontSize: g("Font size in points. Omit for 12.")
|
|
2692
2851
|
},
|
|
2693
2852
|
["page", "text", "left", "top"],
|
|
2694
|
-
|
|
2853
|
+
J
|
|
2695
2854
|
),
|
|
2696
|
-
|
|
2855
|
+
m(
|
|
2697
2856
|
"pdf.highlightText",
|
|
2698
2857
|
["pdf"],
|
|
2699
2858
|
"Highlight a phrase on a page. Written on save; not visible before that.",
|
|
2700
2859
|
{
|
|
2701
|
-
page:
|
|
2702
|
-
text:
|
|
2703
|
-
occurrence:
|
|
2860
|
+
page: g("1-based page number."),
|
|
2861
|
+
text: y("The exact phrase to highlight, as it appears in the page's text."),
|
|
2862
|
+
occurrence: g("Which occurrence on that page, 1-based. Omit for the first.")
|
|
2704
2863
|
},
|
|
2705
2864
|
["page", "text"],
|
|
2706
|
-
|
|
2865
|
+
J
|
|
2707
2866
|
)
|
|
2708
|
-
],
|
|
2709
|
-
|
|
2867
|
+
], Oo = [
|
|
2868
|
+
m(
|
|
2710
2869
|
"sheet.setValues",
|
|
2711
2870
|
["sheet"],
|
|
2712
2871
|
"Write a block of values. The block's shape must match the range.",
|
|
2713
2872
|
{
|
|
2714
|
-
sheet:
|
|
2715
|
-
range:
|
|
2873
|
+
sheet: O,
|
|
2874
|
+
range: y("A1 notation, e.g. `B2:D5` or a single `A1`."),
|
|
2716
2875
|
values: {
|
|
2717
2876
|
type: "array",
|
|
2718
2877
|
items: { type: "array", items: { type: ["string", "number", "boolean", "null"] } },
|
|
@@ -2720,261 +2879,261 @@ const D = { undoable: !1, visible: !0 }, b = { undoable: !0, visible: !0 }, ze =
|
|
|
2720
2879
|
}
|
|
2721
2880
|
},
|
|
2722
2881
|
["range", "values"],
|
|
2723
|
-
|
|
2882
|
+
S
|
|
2724
2883
|
),
|
|
2725
|
-
|
|
2884
|
+
m(
|
|
2726
2885
|
"sheet.setFormula",
|
|
2727
2886
|
["sheet"],
|
|
2728
2887
|
"Put a formula in every cell of a range.",
|
|
2729
|
-
{ sheet:
|
|
2888
|
+
{ sheet: O, range: y("A1 notation."), formula: y("Including the leading `=`.") },
|
|
2730
2889
|
["range", "formula"],
|
|
2731
|
-
|
|
2890
|
+
S
|
|
2732
2891
|
),
|
|
2733
|
-
|
|
2892
|
+
m(
|
|
2734
2893
|
"sheet.setStyle",
|
|
2735
2894
|
["sheet"],
|
|
2736
2895
|
"Change the look of a range. Only the properties you pass are touched.",
|
|
2737
2896
|
{
|
|
2738
|
-
sheet:
|
|
2739
|
-
range:
|
|
2740
|
-
bold:
|
|
2741
|
-
italic:
|
|
2742
|
-
fontSize:
|
|
2743
|
-
fontColor:
|
|
2744
|
-
background:
|
|
2897
|
+
sheet: O,
|
|
2898
|
+
range: y("A1 notation."),
|
|
2899
|
+
bold: z("Bold on or off."),
|
|
2900
|
+
italic: z("Italic on or off."),
|
|
2901
|
+
fontSize: g("Point size."),
|
|
2902
|
+
fontColor: y("CSS colour, e.g. `#b91c1c`."),
|
|
2903
|
+
background: y("CSS colour for the cell fill."),
|
|
2745
2904
|
horizontalAlignment: {
|
|
2746
2905
|
type: "string",
|
|
2747
2906
|
enum: ["left", "center", "right"],
|
|
2748
2907
|
description: "Horizontal alignment."
|
|
2749
2908
|
},
|
|
2750
|
-
numberFormat:
|
|
2909
|
+
numberFormat: y("Number format pattern, e.g. `#,##0.00` or `0%`.")
|
|
2751
2910
|
},
|
|
2752
2911
|
["range"],
|
|
2753
|
-
|
|
2912
|
+
S
|
|
2754
2913
|
),
|
|
2755
|
-
|
|
2914
|
+
m(
|
|
2756
2915
|
"sheet.insertRows",
|
|
2757
2916
|
["sheet"],
|
|
2758
2917
|
"Insert empty rows, pushing the rest down.",
|
|
2759
2918
|
{
|
|
2760
|
-
sheet:
|
|
2761
|
-
at:
|
|
2762
|
-
count:
|
|
2919
|
+
sheet: O,
|
|
2920
|
+
at: g("1-based row number to insert before."),
|
|
2921
|
+
count: g("How many. Omit for 1.")
|
|
2763
2922
|
},
|
|
2764
2923
|
["at"],
|
|
2765
|
-
|
|
2924
|
+
S
|
|
2766
2925
|
),
|
|
2767
|
-
|
|
2926
|
+
m(
|
|
2768
2927
|
"sheet.deleteRows",
|
|
2769
2928
|
["sheet"],
|
|
2770
2929
|
"Delete rows, pulling the rest up.",
|
|
2771
|
-
{ sheet:
|
|
2930
|
+
{ sheet: O, at: g("1-based first row to delete."), count: g("How many. Omit for 1.") },
|
|
2772
2931
|
["at"],
|
|
2773
|
-
|
|
2932
|
+
S
|
|
2774
2933
|
),
|
|
2775
|
-
|
|
2934
|
+
m(
|
|
2776
2935
|
"sheet.insertColumns",
|
|
2777
2936
|
["sheet"],
|
|
2778
2937
|
"Insert empty columns, pushing the rest right.",
|
|
2779
2938
|
{
|
|
2780
|
-
sheet:
|
|
2781
|
-
at:
|
|
2782
|
-
count:
|
|
2939
|
+
sheet: O,
|
|
2940
|
+
at: g("1-based column number to insert before."),
|
|
2941
|
+
count: g("How many. Omit for 1.")
|
|
2783
2942
|
},
|
|
2784
2943
|
["at"],
|
|
2785
|
-
|
|
2944
|
+
S
|
|
2786
2945
|
),
|
|
2787
|
-
|
|
2946
|
+
m(
|
|
2788
2947
|
"sheet.deleteColumns",
|
|
2789
2948
|
["sheet"],
|
|
2790
2949
|
"Delete columns, pulling the rest left.",
|
|
2791
2950
|
{
|
|
2792
|
-
sheet:
|
|
2793
|
-
at:
|
|
2794
|
-
count:
|
|
2951
|
+
sheet: O,
|
|
2952
|
+
at: g("1-based first column to delete."),
|
|
2953
|
+
count: g("How many. Omit for 1.")
|
|
2795
2954
|
},
|
|
2796
2955
|
["at"],
|
|
2797
|
-
|
|
2956
|
+
S
|
|
2798
2957
|
),
|
|
2799
|
-
|
|
2958
|
+
m(
|
|
2800
2959
|
"sheet.merge",
|
|
2801
2960
|
["sheet"],
|
|
2802
2961
|
"Merge a range into one cell.",
|
|
2803
|
-
{ sheet:
|
|
2962
|
+
{ sheet: O, range: y("A1 notation.") },
|
|
2804
2963
|
["range"],
|
|
2805
|
-
|
|
2964
|
+
S
|
|
2806
2965
|
),
|
|
2807
|
-
|
|
2966
|
+
m(
|
|
2808
2967
|
"sheet.unmerge",
|
|
2809
2968
|
["sheet"],
|
|
2810
2969
|
"Break merged cells in a range apart.",
|
|
2811
|
-
{ sheet:
|
|
2970
|
+
{ sheet: O, range: y("A1 notation.") },
|
|
2812
2971
|
["range"],
|
|
2813
|
-
|
|
2972
|
+
S
|
|
2814
2973
|
),
|
|
2815
|
-
|
|
2974
|
+
m(
|
|
2816
2975
|
"sheet.sort",
|
|
2817
2976
|
["sheet"],
|
|
2818
2977
|
"Sort a range on one of its columns.",
|
|
2819
2978
|
{
|
|
2820
|
-
sheet:
|
|
2821
|
-
range:
|
|
2822
|
-
column:
|
|
2823
|
-
ascending:
|
|
2979
|
+
sheet: O,
|
|
2980
|
+
range: y("A1 notation covering the rows to sort, header excluded."),
|
|
2981
|
+
column: g("1-based column *within the range*, not within the sheet."),
|
|
2982
|
+
ascending: z("Ascending. Omit for ascending.")
|
|
2824
2983
|
},
|
|
2825
2984
|
["range", "column"],
|
|
2826
|
-
|
|
2985
|
+
S
|
|
2827
2986
|
),
|
|
2828
|
-
|
|
2987
|
+
m(
|
|
2829
2988
|
"sheet.insertSheet",
|
|
2830
2989
|
["sheet"],
|
|
2831
2990
|
"Add a new sheet.",
|
|
2832
|
-
{ name:
|
|
2991
|
+
{ name: y("Name for the new sheet.") },
|
|
2833
2992
|
["name"],
|
|
2834
|
-
|
|
2993
|
+
S
|
|
2835
2994
|
),
|
|
2836
|
-
|
|
2995
|
+
m(
|
|
2837
2996
|
"sheet.renameSheet",
|
|
2838
2997
|
["sheet"],
|
|
2839
2998
|
"Rename a sheet.",
|
|
2840
|
-
{ sheet:
|
|
2999
|
+
{ sheet: y("Current name."), name: y("New name.") },
|
|
2841
3000
|
["sheet", "name"],
|
|
2842
|
-
|
|
3001
|
+
S
|
|
2843
3002
|
),
|
|
2844
|
-
|
|
3003
|
+
m(
|
|
2845
3004
|
"sheet.deleteSheet",
|
|
2846
3005
|
["sheet"],
|
|
2847
3006
|
"Remove a sheet and everything on it.",
|
|
2848
|
-
{ sheet:
|
|
3007
|
+
{ sheet: y("Name of the sheet to delete.") },
|
|
2849
3008
|
["sheet"],
|
|
2850
|
-
|
|
3009
|
+
S
|
|
2851
3010
|
),
|
|
2852
|
-
|
|
3011
|
+
m(
|
|
2853
3012
|
"sheet.activate",
|
|
2854
3013
|
["sheet"],
|
|
2855
3014
|
"Show the user a sheet and select a range on it.",
|
|
2856
|
-
{ sheet:
|
|
3015
|
+
{ sheet: O, range: y("A1 notation to select. Omit to only switch sheets.") },
|
|
2857
3016
|
[],
|
|
2858
|
-
|
|
3017
|
+
K
|
|
2859
3018
|
)
|
|
2860
|
-
],
|
|
2861
|
-
|
|
3019
|
+
], Co = [
|
|
3020
|
+
m(
|
|
2862
3021
|
"word.replaceParagraph",
|
|
2863
3022
|
["word"],
|
|
2864
3023
|
"Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",
|
|
2865
3024
|
{
|
|
2866
|
-
at:
|
|
2867
|
-
text:
|
|
3025
|
+
at: g("The offset the paragraph starts at, exactly as `inspect` prints it."),
|
|
3026
|
+
text: y("The new text for that paragraph. A newline starts a further paragraph.")
|
|
2868
3027
|
},
|
|
2869
3028
|
["at", "text"],
|
|
2870
|
-
|
|
3029
|
+
S
|
|
2871
3030
|
),
|
|
2872
|
-
|
|
3031
|
+
m(
|
|
2873
3032
|
"word.replaceRange",
|
|
2874
3033
|
["word"],
|
|
2875
3034
|
"Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",
|
|
2876
3035
|
{
|
|
2877
|
-
start:
|
|
2878
|
-
end:
|
|
2879
|
-
text:
|
|
3036
|
+
start: g("Character offset where the replaced text starts, as `inspect` reports offsets."),
|
|
3037
|
+
end: g("Character offset just past the last character to replace."),
|
|
3038
|
+
text: y("The replacement text. A newline starts a new paragraph.")
|
|
2880
3039
|
},
|
|
2881
3040
|
["start", "end", "text"],
|
|
2882
|
-
|
|
3041
|
+
S
|
|
2883
3042
|
),
|
|
2884
|
-
|
|
3043
|
+
m(
|
|
2885
3044
|
"word.insertText",
|
|
2886
3045
|
["word"],
|
|
2887
3046
|
"Insert text at a character offset, without removing anything.",
|
|
2888
3047
|
{
|
|
2889
|
-
index:
|
|
2890
|
-
text:
|
|
3048
|
+
index: g("Character offset, as `inspect` reports offsets."),
|
|
3049
|
+
text: y("The text to insert.")
|
|
2891
3050
|
},
|
|
2892
3051
|
["index", "text"],
|
|
2893
|
-
|
|
3052
|
+
S
|
|
2894
3053
|
),
|
|
2895
|
-
|
|
3054
|
+
m(
|
|
2896
3055
|
"word.appendText",
|
|
2897
3056
|
["word"],
|
|
2898
3057
|
"Add text at the end of the document.",
|
|
2899
|
-
{ text:
|
|
3058
|
+
{ text: y("The text to append.") },
|
|
2900
3059
|
["text"],
|
|
2901
|
-
|
|
3060
|
+
S
|
|
2902
3061
|
),
|
|
2903
|
-
|
|
3062
|
+
m(
|
|
2904
3063
|
"word.insertParagraph",
|
|
2905
3064
|
["word"],
|
|
2906
3065
|
"Start a new paragraph, optionally with text in it.",
|
|
2907
3066
|
{
|
|
2908
|
-
text:
|
|
2909
|
-
index:
|
|
3067
|
+
text: y("Paragraph text. Newlines start further paragraphs."),
|
|
3068
|
+
index: g("Character offset to insert at. Omit for the end of the document.")
|
|
2910
3069
|
},
|
|
2911
3070
|
[],
|
|
2912
|
-
|
|
3071
|
+
S
|
|
2913
3072
|
),
|
|
2914
|
-
|
|
3073
|
+
m(
|
|
2915
3074
|
"word.setSelection",
|
|
2916
3075
|
["word"],
|
|
2917
3076
|
"Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",
|
|
2918
|
-
{ start:
|
|
3077
|
+
{ start: g("Start character offset."), end: g("End character offset. Omit for a caret.") },
|
|
2919
3078
|
["start"],
|
|
2920
|
-
|
|
3079
|
+
K
|
|
2921
3080
|
)
|
|
2922
|
-
],
|
|
2923
|
-
|
|
3081
|
+
], No = [
|
|
3082
|
+
m(
|
|
2924
3083
|
"slides.setText",
|
|
2925
3084
|
["slides"],
|
|
2926
3085
|
"Replace the text of one shape. Written on save; not visible before that, and not undoable.",
|
|
2927
3086
|
{
|
|
2928
|
-
slide:
|
|
2929
|
-
element:
|
|
2930
|
-
text:
|
|
3087
|
+
slide: et,
|
|
3088
|
+
element: y("Element id, as `inspect` reports it."),
|
|
3089
|
+
text: y("The new text.")
|
|
2931
3090
|
},
|
|
2932
3091
|
["slide", "element", "text"],
|
|
2933
|
-
|
|
3092
|
+
J
|
|
2934
3093
|
),
|
|
2935
|
-
|
|
3094
|
+
m(
|
|
2936
3095
|
"slides.setTransform",
|
|
2937
3096
|
["slides"],
|
|
2938
3097
|
"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",
|
|
2939
3098
|
{
|
|
2940
|
-
slide:
|
|
2941
|
-
element:
|
|
2942
|
-
left:
|
|
2943
|
-
top:
|
|
2944
|
-
width:
|
|
2945
|
-
height:
|
|
3099
|
+
slide: et,
|
|
3100
|
+
element: y("Element id."),
|
|
3101
|
+
left: g("Distance from the left edge, in pixels."),
|
|
3102
|
+
top: g("Distance from the top edge, in pixels."),
|
|
3103
|
+
width: g("Width in pixels."),
|
|
3104
|
+
height: g("Height in pixels.")
|
|
2946
3105
|
},
|
|
2947
3106
|
["slide", "element"],
|
|
2948
|
-
|
|
3107
|
+
J
|
|
2949
3108
|
)
|
|
2950
|
-
],
|
|
2951
|
-
...
|
|
2952
|
-
...
|
|
2953
|
-
...
|
|
2954
|
-
...
|
|
3109
|
+
], Ut = [
|
|
3110
|
+
...vo,
|
|
3111
|
+
...Oo,
|
|
3112
|
+
...Co,
|
|
3113
|
+
...No
|
|
2955
3114
|
];
|
|
2956
|
-
function
|
|
2957
|
-
return
|
|
3115
|
+
function fl(e) {
|
|
3116
|
+
return Ut.filter((t) => t.kinds.includes(e));
|
|
2958
3117
|
}
|
|
2959
|
-
function
|
|
2960
|
-
return
|
|
3118
|
+
function pl(e) {
|
|
3119
|
+
return Ut.find((t) => t.op === e);
|
|
2961
3120
|
}
|
|
2962
|
-
const
|
|
2963
|
-
function
|
|
3121
|
+
const ml = "documents.describe", gl = "documents.inspect", hl = "documents.apply";
|
|
3122
|
+
function yl(e) {
|
|
2964
3123
|
const t = e.indexOf(":");
|
|
2965
3124
|
if (t !== -1) return e.slice(0, t);
|
|
2966
3125
|
const n = e.indexOf(".");
|
|
2967
3126
|
return n === -1 ? e : e.slice(0, n);
|
|
2968
3127
|
}
|
|
2969
|
-
const
|
|
2970
|
-
function
|
|
3128
|
+
const bl = "installation-id";
|
|
3129
|
+
function Al(e) {
|
|
2971
3130
|
const t = [];
|
|
2972
3131
|
for (const n of Object.keys(e))
|
|
2973
3132
|
for (const r of Object.keys(e[n]))
|
|
2974
3133
|
t.push({ lang: n, key: r, value: e[n][r] });
|
|
2975
3134
|
return t;
|
|
2976
3135
|
}
|
|
2977
|
-
const
|
|
3136
|
+
const El = "notification-source", Sl = (e, t) => `${e}.pref.${t}`, _l = {
|
|
2978
3137
|
ai: [
|
|
2979
3138
|
"account.read",
|
|
2980
3139
|
"account.write",
|
|
@@ -3109,64 +3268,64 @@ const nl = "notification-source", rl = (e, t) => `${e}.pref.${t}`, ol = {
|
|
|
3109
3268
|
time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
|
|
3110
3269
|
user: ["user.read", "user.write"],
|
|
3111
3270
|
work: ["item.read", "item.write", "project.read", "project.write"]
|
|
3112
|
-
},
|
|
3113
|
-
function
|
|
3114
|
-
const r = n - e <
|
|
3271
|
+
}, Kt = 9e4, xo = ["out_of_office"], Ft = (e) => xo.includes(e);
|
|
3272
|
+
function Tl(e, t, n) {
|
|
3273
|
+
const r = n - e < Kt, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
|
|
3115
3274
|
if (!o?.status) return { online: r, status: r ? "available" : "offline" };
|
|
3116
3275
|
const i = o.status;
|
|
3117
|
-
return !r && !
|
|
3276
|
+
return !r && !Ft(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
|
|
3118
3277
|
}
|
|
3119
|
-
function
|
|
3120
|
-
const n = t - e.lastSeenAt <
|
|
3278
|
+
function wl(e, t) {
|
|
3279
|
+
const n = t - e.lastSeenAt < Kt, r = n || Ft(e.status) ? e.status : "offline";
|
|
3121
3280
|
return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
|
|
3122
3281
|
}
|
|
3123
|
-
function
|
|
3282
|
+
function Il(e, t) {
|
|
3124
3283
|
return e?.teamId && t.includes(e.teamId) ? { teamId: e.teamId, mustChoose: !1 } : t.length === 1 ? { teamId: t[0], mustChoose: !1 } : { teamId: void 0, mustChoose: t.length > 1 };
|
|
3125
3284
|
}
|
|
3126
|
-
function
|
|
3285
|
+
function Ml(e) {
|
|
3127
3286
|
return e.providerAvailable && e.allowed;
|
|
3128
3287
|
}
|
|
3129
|
-
const
|
|
3130
|
-
function
|
|
3288
|
+
const kl = "resources.describe", vl = "resources.search", Ol = "resources.resolve", Cl = "resources.attached";
|
|
3289
|
+
function Nl(e) {
|
|
3131
3290
|
const t = e.indexOf(":");
|
|
3132
3291
|
return t === -1 ? e : e.slice(0, t);
|
|
3133
3292
|
}
|
|
3134
|
-
const
|
|
3135
|
-
function
|
|
3293
|
+
const xl = "/provider/scope/related", Rl = "/provider/scope/read", Bt = "auth";
|
|
3294
|
+
function Ht(e) {
|
|
3136
3295
|
const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
|
|
3137
3296
|
return t ? t[1] : null;
|
|
3138
3297
|
}
|
|
3139
|
-
function
|
|
3140
|
-
const t =
|
|
3141
|
-
return t ? t !==
|
|
3298
|
+
function Dl(e) {
|
|
3299
|
+
const t = Ht(e);
|
|
3300
|
+
return t ? t !== Bt : typeof e == "string" && e.startsWith("/wake");
|
|
3142
3301
|
}
|
|
3143
|
-
function
|
|
3144
|
-
return typeof e != "string" || e === "" || e === "/" ? !0 :
|
|
3302
|
+
function $l(e) {
|
|
3303
|
+
return typeof e != "string" || e === "" || e === "/" ? !0 : Ht(e) === Bt;
|
|
3145
3304
|
}
|
|
3146
|
-
function
|
|
3305
|
+
function Ro(e) {
|
|
3147
3306
|
return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
3148
3307
|
}
|
|
3149
|
-
function
|
|
3150
|
-
const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${
|
|
3308
|
+
function Do(e) {
|
|
3309
|
+
const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${Ro(r)}`).join("");
|
|
3151
3310
|
return new RegExp(`^${n}\\/?$`);
|
|
3152
3311
|
}
|
|
3153
|
-
function
|
|
3312
|
+
function $o(e, t) {
|
|
3154
3313
|
const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), o = {};
|
|
3155
|
-
return n.forEach((i,
|
|
3314
|
+
return n.forEach((i, s) => {
|
|
3156
3315
|
if (i.startsWith(":")) {
|
|
3157
|
-
const
|
|
3158
|
-
|
|
3316
|
+
const a = i.endsWith("?") ? i.slice(1, -1) : i.slice(1), l = r[s];
|
|
3317
|
+
l && (o[a] = l);
|
|
3159
3318
|
}
|
|
3160
3319
|
}), o;
|
|
3161
3320
|
}
|
|
3162
|
-
function
|
|
3321
|
+
function Lo(e) {
|
|
3163
3322
|
return e.publicBasePath ?? `/apps/${e.name}`;
|
|
3164
3323
|
}
|
|
3165
|
-
function
|
|
3324
|
+
function Ll(e) {
|
|
3166
3325
|
const t = [];
|
|
3167
3326
|
for (const n of e) {
|
|
3168
3327
|
if (!n?.name) continue;
|
|
3169
|
-
const r =
|
|
3328
|
+
const r = Lo(n);
|
|
3170
3329
|
for (const o of n.routes ?? []) {
|
|
3171
3330
|
if (!o.public) continue;
|
|
3172
3331
|
const i = o.path === "/" ? "" : o.path;
|
|
@@ -3180,25 +3339,25 @@ function bl(e) {
|
|
|
3180
3339
|
}
|
|
3181
3340
|
return t;
|
|
3182
3341
|
}
|
|
3183
|
-
function
|
|
3342
|
+
function Po(e, t) {
|
|
3184
3343
|
const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
|
|
3185
3344
|
for (let o = 0; o < Math.min(n.length, r.length); o++) {
|
|
3186
|
-
const i = n[o].startsWith(":"),
|
|
3187
|
-
if (i !==
|
|
3345
|
+
const i = n[o].startsWith(":"), s = r[o].startsWith(":");
|
|
3346
|
+
if (i !== s) return s;
|
|
3188
3347
|
}
|
|
3189
3348
|
return n.length > r.length;
|
|
3190
3349
|
}
|
|
3191
|
-
function
|
|
3350
|
+
function Uo(e, t) {
|
|
3192
3351
|
if (typeof e != "string") return null;
|
|
3193
3352
|
let n = null;
|
|
3194
3353
|
for (const r of t)
|
|
3195
|
-
|
|
3196
|
-
return n ? { ...n, params: { ...n.props,
|
|
3354
|
+
Do(r.pattern).test(e) && (!n || Po(r.pattern, n.pattern)) && (n = r);
|
|
3355
|
+
return n ? { ...n, params: { ...n.props, ...$o(n.pattern, e) } } : null;
|
|
3197
3356
|
}
|
|
3198
|
-
function
|
|
3199
|
-
return
|
|
3357
|
+
function Pl(e, t) {
|
|
3358
|
+
return Uo(e, t) !== null;
|
|
3200
3359
|
}
|
|
3201
|
-
const
|
|
3360
|
+
const Ul = 10 * 1024 * 1024, Kl = 25 * 1024 * 1024, Fl = "sync-target", Bl = 20, Ko = {
|
|
3202
3361
|
afrikaans: [
|
|
3203
3362
|
"[Muziek]",
|
|
3204
3363
|
"(C) TV GELDERLAND 2021",
|
|
@@ -3348,14 +3507,14 @@ const El = 10 * 1024 * 1024, Sl = 25 * 1024 * 1024, _l = "sync-target", Tl = 20,
|
|
|
3348
3507
|
"[MÚSICA]",
|
|
3349
3508
|
"[Music cuts in British]"
|
|
3350
3509
|
]
|
|
3351
|
-
},
|
|
3510
|
+
}, Fo = (e) => {
|
|
3352
3511
|
let t = e;
|
|
3353
|
-
return Object.values(
|
|
3512
|
+
return Object.values(Ko).forEach((n) => {
|
|
3354
3513
|
n.forEach((r) => {
|
|
3355
3514
|
t = t.replaceAll(r, "");
|
|
3356
3515
|
});
|
|
3357
3516
|
}), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
|
|
3358
|
-
},
|
|
3517
|
+
}, Bo = 6e4, Ho = 8e3, jo = 2, Go = 0.4, Wo = 3, Vo = /* @__PURE__ */ new Set([
|
|
3359
3518
|
"aan",
|
|
3360
3519
|
"als",
|
|
3361
3520
|
"ben",
|
|
@@ -3468,13 +3627,13 @@ const El = 10 * 1024 * 1024, Sl = 25 * 1024 * 1024, _l = "sync-target", Tl = 20,
|
|
|
3468
3627
|
"you",
|
|
3469
3628
|
"your"
|
|
3470
3629
|
]);
|
|
3471
|
-
function
|
|
3630
|
+
function zo(e) {
|
|
3472
3631
|
const t = /* @__PURE__ */ new Set();
|
|
3473
3632
|
for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
|
|
3474
|
-
n.length <
|
|
3633
|
+
n.length < Wo || Vo.has(n) || t.add(n);
|
|
3475
3634
|
return [...t];
|
|
3476
3635
|
}
|
|
3477
|
-
function
|
|
3636
|
+
function Yo(e, t) {
|
|
3478
3637
|
if (!e.length) return 0;
|
|
3479
3638
|
if (!t.length) return 1;
|
|
3480
3639
|
const n = new Set(t), r = new Set(e);
|
|
@@ -3482,38 +3641,38 @@ function xo(e, t) {
|
|
|
3482
3641
|
for (const i of r) n.has(i) || (o += 1);
|
|
3483
3642
|
return o / r.size;
|
|
3484
3643
|
}
|
|
3485
|
-
function
|
|
3486
|
-
const n = e.filter((
|
|
3644
|
+
function Xo(e, t = Bo) {
|
|
3645
|
+
const n = e.filter((s) => !s.partial && typeof s.text == "string");
|
|
3487
3646
|
if (!n.length) return { text: "", segmentCount: 0 };
|
|
3488
|
-
const o = n.reduce((
|
|
3489
|
-
return { text: n.filter((
|
|
3647
|
+
const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
|
|
3648
|
+
return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => Fo(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
|
|
3490
3649
|
}
|
|
3491
|
-
const
|
|
3492
|
-
function
|
|
3650
|
+
const qo = 60;
|
|
3651
|
+
function Hl(e, t, n = qo) {
|
|
3493
3652
|
const r = new Set(e), o = [...e];
|
|
3494
3653
|
for (const i of t)
|
|
3495
3654
|
!i || r.has(i) || (r.add(i), o.push(i));
|
|
3496
3655
|
return o.slice(-n);
|
|
3497
3656
|
}
|
|
3498
|
-
function
|
|
3657
|
+
function jl(e) {
|
|
3499
3658
|
const { segments: t, now: n, state: r } = e;
|
|
3500
|
-
if (r.lastTriggerAt && n - r.lastTriggerAt <
|
|
3659
|
+
if (r.lastTriggerAt && n - r.lastTriggerAt < Ho)
|
|
3501
3660
|
return { trigger: !1, reason: "too_soon" };
|
|
3502
|
-
const o =
|
|
3661
|
+
const o = Xo(t, e.windowMs);
|
|
3503
3662
|
if (!o.text) return { trigger: !1, reason: "no_speech" };
|
|
3504
3663
|
const i = o.segmentCount - (r.lastSegmentCount ?? 0);
|
|
3505
|
-
if (r.lastQueryTerms && i <
|
|
3664
|
+
if (r.lastQueryTerms && i < jo)
|
|
3506
3665
|
return { trigger: !1, reason: "too_few_new" };
|
|
3507
|
-
const
|
|
3508
|
-
return
|
|
3666
|
+
const s = zo(o.text);
|
|
3667
|
+
return s.length ? r.lastQueryTerms?.length && Yo(s, r.lastQueryTerms) < Go ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
|
|
3509
3668
|
}
|
|
3510
|
-
const
|
|
3669
|
+
const Gl = [
|
|
3511
3670
|
"personal",
|
|
3512
3671
|
"workspace",
|
|
3513
3672
|
"connections",
|
|
3514
3673
|
"work",
|
|
3515
3674
|
"ai"
|
|
3516
|
-
],
|
|
3675
|
+
], Wl = "navNotice", Me = {
|
|
3517
3676
|
// The lower bounds are deliberately generous: service ranges (0800/0900) are
|
|
3518
3677
|
// shorter than geographic numbers, and a too-strict minimum silently drops them.
|
|
3519
3678
|
// An over-permissive key is harmless — it simply matches nothing.
|
|
@@ -3536,81 +3695,81 @@ const Ml = [
|
|
|
3536
3695
|
PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
|
|
3537
3696
|
US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
|
|
3538
3697
|
CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
|
|
3539
|
-
},
|
|
3540
|
-
new Set(Object.values(
|
|
3698
|
+
}, Jo = "NL", Zo = 15, Qo = 8, ei = Array.from(
|
|
3699
|
+
new Set(Object.values(Me).map((e) => e.callingCode))
|
|
3541
3700
|
).sort((e, t) => t.length - e.length);
|
|
3542
|
-
function
|
|
3701
|
+
function nt(e) {
|
|
3543
3702
|
if (e)
|
|
3544
|
-
return
|
|
3703
|
+
return Me[e.trim().toUpperCase()];
|
|
3545
3704
|
}
|
|
3546
|
-
function
|
|
3705
|
+
function Y(e, t) {
|
|
3547
3706
|
return e.length >= t.nsnMin && e.length <= t.nsnMax;
|
|
3548
3707
|
}
|
|
3549
|
-
function
|
|
3550
|
-
if (e.length >
|
|
3551
|
-
for (const t of
|
|
3708
|
+
function rt(e) {
|
|
3709
|
+
if (e.length > Zo) return null;
|
|
3710
|
+
for (const t of ei) {
|
|
3552
3711
|
if (!e.startsWith(t)) continue;
|
|
3553
3712
|
const n = e.slice(t.length);
|
|
3554
|
-
for (const r of Object.values(
|
|
3713
|
+
for (const r of Object.values(Me)) {
|
|
3555
3714
|
if (r.callingCode !== t) continue;
|
|
3556
3715
|
const o = r.trunkPrefix, i = o && n.startsWith(o) ? n.slice(o.length) : n;
|
|
3557
|
-
if (
|
|
3716
|
+
if (Y(i, r)) return `+${t}${i}`;
|
|
3558
3717
|
}
|
|
3559
3718
|
return null;
|
|
3560
3719
|
}
|
|
3561
|
-
return e.length <
|
|
3720
|
+
return e.length < Qo ? null : `+${e}`;
|
|
3562
3721
|
}
|
|
3563
|
-
function
|
|
3722
|
+
function ti(e) {
|
|
3564
3723
|
let t = e.trim();
|
|
3565
3724
|
const n = t.match(/^(sips?|tel|whatsapp):/i);
|
|
3566
3725
|
n && (t = t.slice(n[0].length));
|
|
3567
3726
|
const r = t.indexOf("@");
|
|
3568
3727
|
return r >= 0 && (t = t.slice(0, r)), t.trim();
|
|
3569
3728
|
}
|
|
3570
|
-
function
|
|
3729
|
+
function Vl(e) {
|
|
3571
3730
|
if (!e) return !1;
|
|
3572
3731
|
const t = e.indexOf("@");
|
|
3573
3732
|
if (t <= 0) return !1;
|
|
3574
3733
|
const n = e.slice(0, t).trim();
|
|
3575
3734
|
return !/^[+\d\s().-]+$/.test(n);
|
|
3576
3735
|
}
|
|
3577
|
-
function
|
|
3736
|
+
function ot(e, t) {
|
|
3578
3737
|
if (!e) return null;
|
|
3579
|
-
const n =
|
|
3738
|
+
const n = ti(e);
|
|
3580
3739
|
if (!n) return null;
|
|
3581
3740
|
const r = n.startsWith("+"), o = n.replace(/\D/g, "");
|
|
3582
3741
|
if (!o) return null;
|
|
3583
|
-
if (r) return
|
|
3584
|
-
if (o.startsWith("00")) return
|
|
3585
|
-
const i =
|
|
3742
|
+
if (r) return rt(o);
|
|
3743
|
+
if (o.startsWith("00")) return rt(o.slice(2));
|
|
3744
|
+
const i = nt(t) ?? nt(Jo);
|
|
3586
3745
|
if (!i) return null;
|
|
3587
|
-
const
|
|
3588
|
-
if (
|
|
3589
|
-
const
|
|
3590
|
-
return
|
|
3746
|
+
const s = i.trunkPrefix;
|
|
3747
|
+
if (s && o.startsWith(s)) {
|
|
3748
|
+
const a = o.slice(s.length);
|
|
3749
|
+
return Y(a, i) ? `+${i.callingCode}${a}` : null;
|
|
3591
3750
|
}
|
|
3592
3751
|
if (o.startsWith(i.callingCode)) {
|
|
3593
|
-
const
|
|
3594
|
-
if (
|
|
3752
|
+
const a = o.slice(i.callingCode.length);
|
|
3753
|
+
if (Y(a, i)) return `+${i.callingCode}${a}`;
|
|
3595
3754
|
}
|
|
3596
|
-
return !
|
|
3755
|
+
return !s && Y(o, i) ? `+${i.callingCode}${o}` : null;
|
|
3597
3756
|
}
|
|
3598
|
-
function
|
|
3757
|
+
function zl(e, t = 9) {
|
|
3599
3758
|
const n = (e ?? "").replace(/\D/g, "");
|
|
3600
3759
|
return n.length < t ? null : n.slice(-t);
|
|
3601
3760
|
}
|
|
3602
|
-
function
|
|
3761
|
+
function jt(e) {
|
|
3603
3762
|
if (!e) return null;
|
|
3604
3763
|
const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
|
|
3605
3764
|
if (n <= 0 || n === t.length - 1) return null;
|
|
3606
3765
|
const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
|
|
3607
3766
|
return !r || !o.includes(".") ? null : `${r}@${o}`;
|
|
3608
3767
|
}
|
|
3609
|
-
function
|
|
3610
|
-
const t =
|
|
3768
|
+
function Yl(e) {
|
|
3769
|
+
const t = jt(e);
|
|
3611
3770
|
return t ? t.slice(t.lastIndexOf("@") + 1) : null;
|
|
3612
3771
|
}
|
|
3613
|
-
const
|
|
3772
|
+
const ni = /* @__PURE__ */ new Set([
|
|
3614
3773
|
"co.uk",
|
|
3615
3774
|
"org.uk",
|
|
3616
3775
|
"gov.uk",
|
|
@@ -3620,14 +3779,14 @@ const Ho = /* @__PURE__ */ new Set([
|
|
|
3620
3779
|
"com.br",
|
|
3621
3780
|
"co.za"
|
|
3622
3781
|
]);
|
|
3623
|
-
function
|
|
3782
|
+
function ri(e) {
|
|
3624
3783
|
if (!e) return null;
|
|
3625
3784
|
const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
|
|
3626
3785
|
if (t.length < 2) return null;
|
|
3627
3786
|
const n = t.slice(-2).join(".");
|
|
3628
|
-
return
|
|
3787
|
+
return ni.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
|
|
3629
3788
|
}
|
|
3630
|
-
const
|
|
3789
|
+
const oi = /* @__PURE__ */ new Set([
|
|
3631
3790
|
"gmail.com",
|
|
3632
3791
|
"googlemail.com",
|
|
3633
3792
|
"outlook.com",
|
|
@@ -3672,34 +3831,34 @@ const jo = /* @__PURE__ */ new Set([
|
|
|
3672
3831
|
"proximus.be",
|
|
3673
3832
|
"scarlet.be"
|
|
3674
3833
|
]);
|
|
3675
|
-
function
|
|
3676
|
-
const t =
|
|
3677
|
-
return t ?
|
|
3834
|
+
function Xl(e) {
|
|
3835
|
+
const t = ri(e);
|
|
3836
|
+
return t ? oi.has(t) : !1;
|
|
3678
3837
|
}
|
|
3679
|
-
function
|
|
3838
|
+
function ql(e) {
|
|
3680
3839
|
if (!e) return !1;
|
|
3681
3840
|
const t = e.trim().toLowerCase();
|
|
3682
3841
|
return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
|
|
3683
3842
|
}
|
|
3684
|
-
function
|
|
3843
|
+
function Jl(e, t, n) {
|
|
3685
3844
|
if (!e || !t) return null;
|
|
3686
3845
|
const r = e.trim().toLowerCase();
|
|
3687
3846
|
if (r === "tel" || r === "sms" || r === "whatsapp") {
|
|
3688
|
-
const i =
|
|
3847
|
+
const i = ot(t, n);
|
|
3689
3848
|
return i ? `tel:${i}` : null;
|
|
3690
3849
|
}
|
|
3691
3850
|
if (r === "fax") {
|
|
3692
|
-
const i =
|
|
3851
|
+
const i = ot(t, n);
|
|
3693
3852
|
return i ? `fax:${i}` : null;
|
|
3694
3853
|
}
|
|
3695
3854
|
if (r === "mailto" || r === "email") {
|
|
3696
|
-
const i =
|
|
3855
|
+
const i = jt(t);
|
|
3697
3856
|
return i ? `mailto:${i}` : null;
|
|
3698
3857
|
}
|
|
3699
3858
|
const o = t.trim().toLowerCase();
|
|
3700
3859
|
return o ? `${r}:${o}` : null;
|
|
3701
3860
|
}
|
|
3702
|
-
const
|
|
3861
|
+
const ii = [
|
|
3703
3862
|
/<blockquote/i,
|
|
3704
3863
|
/class="?gmail_quote/i,
|
|
3705
3864
|
// Gmail quote container
|
|
@@ -3712,72 +3871,72 @@ const Go = [
|
|
|
3712
3871
|
// Outlook underscore separator before "From:"
|
|
3713
3872
|
/\bOn\b[\s\S]{0,200}?\bwrote:/i
|
|
3714
3873
|
// Gmail "On <date> <name> wrote:"
|
|
3715
|
-
],
|
|
3716
|
-
function
|
|
3874
|
+
], it = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, si = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
|
|
3875
|
+
function ai(e) {
|
|
3717
3876
|
const t = e.split(`
|
|
3718
3877
|
`);
|
|
3719
3878
|
for (let n = 0; n < t.length; n++)
|
|
3720
|
-
if (
|
|
3879
|
+
if (si.test(t[n]) || it.test(t[n]) && t.slice(n + 1, n + 4).some((r) => it.test(r)))
|
|
3721
3880
|
return t.slice(0, n).join(`
|
|
3722
3881
|
`).trim();
|
|
3723
3882
|
return e;
|
|
3724
3883
|
}
|
|
3725
|
-
const
|
|
3726
|
-
function
|
|
3884
|
+
const ci = /^(?:https?:|mailto:|tel:)/i, li = /^(?:https?:|cid:|data:image\/)/i;
|
|
3885
|
+
function ae(e, t) {
|
|
3727
3886
|
const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
|
|
3728
3887
|
return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
|
|
3729
3888
|
}
|
|
3730
|
-
const
|
|
3731
|
-
function
|
|
3732
|
-
return e.replace(/\s+/g, " ").trim().split(
|
|
3889
|
+
const ui = /(!\[[^\]]*\]\([^)]*\))/;
|
|
3890
|
+
function st(e) {
|
|
3891
|
+
return e.replace(/\s+/g, " ").trim().split(ui).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
|
|
3733
3892
|
}
|
|
3734
|
-
function
|
|
3893
|
+
function ce(e) {
|
|
3735
3894
|
return e.replace(
|
|
3736
3895
|
/[()\s<>"]/g,
|
|
3737
3896
|
(t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
|
|
3738
3897
|
);
|
|
3739
3898
|
}
|
|
3740
|
-
function
|
|
3899
|
+
function di(e) {
|
|
3741
3900
|
return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
|
|
3742
|
-
const o =
|
|
3743
|
-
return
|
|
3901
|
+
const o = ae(r, "src");
|
|
3902
|
+
return li.test(o) ? `})` : "";
|
|
3744
3903
|
}).replace(
|
|
3745
3904
|
/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
|
|
3746
3905
|
(n, r, o) => {
|
|
3747
|
-
const i =
|
|
3748
|
-
return
|
|
3906
|
+
const i = st(o.replace(/<[^>]*>/g, "")), s = ae(r, "href");
|
|
3907
|
+
return ci.test(s) ? `[${i || ce(s)}](${ce(s)})` : i;
|
|
3749
3908
|
}
|
|
3750
3909
|
);
|
|
3751
3910
|
}
|
|
3752
|
-
const
|
|
3753
|
-
function
|
|
3911
|
+
const fi = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, pi = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, mi = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
|
|
3912
|
+
function gi(e, t) {
|
|
3754
3913
|
return /<table\b/i.test(e) || e.includes(`
|
|
3755
3914
|
|
|
3756
3915
|
|`) || t.includes("![") || t.length > 200;
|
|
3757
3916
|
}
|
|
3758
|
-
const
|
|
3759
|
-
function
|
|
3917
|
+
const hi = 40, yi = { left: "---", center: ":---:", right: "---:" };
|
|
3918
|
+
function bi(e) {
|
|
3760
3919
|
const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
|
|
3761
3920
|
return t ? t[1].toLowerCase() : "left";
|
|
3762
3921
|
}
|
|
3763
|
-
function
|
|
3922
|
+
function Ai(e) {
|
|
3764
3923
|
return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
|
|
3765
3924
|
}
|
|
3766
|
-
function
|
|
3925
|
+
function Ei(e) {
|
|
3767
3926
|
const t = [];
|
|
3768
|
-
for (const
|
|
3769
|
-
const
|
|
3770
|
-
for (const
|
|
3771
|
-
const
|
|
3772
|
-
if (
|
|
3773
|
-
|
|
3927
|
+
for (const s of e.matchAll(pi)) {
|
|
3928
|
+
const a = [];
|
|
3929
|
+
for (const l of s[1].matchAll(mi)) {
|
|
3930
|
+
const d = Ai(l[3]);
|
|
3931
|
+
if (gi(l[3], d)) return null;
|
|
3932
|
+
a.push({ text: d, align: bi(l[2]) });
|
|
3774
3933
|
}
|
|
3775
|
-
if (
|
|
3776
|
-
|
|
3934
|
+
if (a.length === 0) return null;
|
|
3935
|
+
a.some((l) => l.text !== "") && t.push(a);
|
|
3777
3936
|
}
|
|
3778
3937
|
const n = t[0]?.length ?? 0;
|
|
3779
|
-
if (t.length < 2 || n < 2 || t.some((
|
|
3780
|
-
const r = (
|
|
3938
|
+
if (t.length < 2 || n < 2 || t.some((s) => s.length !== n)) return null;
|
|
3939
|
+
const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => yi[s.align]).join(" | "), i = t.slice(1).map(r).join(`
|
|
3781
3940
|
`);
|
|
3782
3941
|
return `
|
|
3783
3942
|
|
|
@@ -3787,36 +3946,36 @@ ${i}
|
|
|
3787
3946
|
|
|
3788
3947
|
`;
|
|
3789
3948
|
}
|
|
3790
|
-
function
|
|
3949
|
+
function Si(e) {
|
|
3791
3950
|
return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
|
|
3792
3951
|
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
|
|
3793
3952
|
}
|
|
3794
|
-
function
|
|
3953
|
+
function _i(e) {
|
|
3795
3954
|
let t = e;
|
|
3796
|
-
for (let n = 0; n <
|
|
3797
|
-
const r =
|
|
3955
|
+
for (let n = 0; n < hi; n++) {
|
|
3956
|
+
const r = fi.exec(t);
|
|
3798
3957
|
if (!r || r.index === void 0) break;
|
|
3799
|
-
const i =
|
|
3958
|
+
const i = Ei(r[1]) ?? `
|
|
3800
3959
|
|
|
3801
|
-
${
|
|
3960
|
+
${Si(r[1])}
|
|
3802
3961
|
|
|
3803
3962
|
`;
|
|
3804
3963
|
t = t.slice(0, r.index) + i + t.slice(r.index + r[0].length);
|
|
3805
3964
|
}
|
|
3806
3965
|
return t;
|
|
3807
3966
|
}
|
|
3808
|
-
function
|
|
3967
|
+
function at(e, t) {
|
|
3809
3968
|
let n = e;
|
|
3810
3969
|
return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
|
|
3811
|
-
`), t && (n =
|
|
3970
|
+
`), t && (n = _i(di(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
|
|
3812
3971
|
|
|
3813
3972
|
`), n = n.replace(/<\/(div|li|tr)>/gi, `
|
|
3814
3973
|
`), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
|
|
3815
3974
|
}
|
|
3816
|
-
function
|
|
3975
|
+
function ct(e) {
|
|
3817
3976
|
return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
|
|
3818
3977
|
}
|
|
3819
|
-
const
|
|
3978
|
+
const Ti = {
|
|
3820
3979
|
euro: "€",
|
|
3821
3980
|
pound: "£",
|
|
3822
3981
|
yen: "¥",
|
|
@@ -3838,445 +3997,455 @@ const ci = {
|
|
|
3838
3997
|
rdquo: "”",
|
|
3839
3998
|
apos: "'"
|
|
3840
3999
|
};
|
|
3841
|
-
function
|
|
3842
|
-
return e.replace(/ /gi, " ").replace(/&([a-z]+);/gi, (t, n) =>
|
|
4000
|
+
function lt(e) {
|
|
4001
|
+
return e.replace(/ /gi, " ").replace(/&([a-z]+);/gi, (t, n) => Ti[n.toLowerCase()] ?? t).replace(/</gi, "<").replace(/>/gi, ">").replace(/"/gi, '"').replace(/&#(\d+);/g, (t, n) => ct(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => ct(parseInt(n, 16)) ?? t).replace(/&/gi, "&");
|
|
3843
4002
|
}
|
|
3844
|
-
function
|
|
4003
|
+
function ut(e) {
|
|
3845
4004
|
return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
|
|
3846
4005
|
`).replace(/\n{3,}/g, `
|
|
3847
4006
|
|
|
3848
4007
|
`).trim();
|
|
3849
4008
|
}
|
|
3850
|
-
const
|
|
3851
|
-
function
|
|
3852
|
-
return
|
|
4009
|
+
const wi = /<\s*(html|body|div|p|table|br|span)\b/i;
|
|
4010
|
+
function Zl(e) {
|
|
4011
|
+
return wi.test(e);
|
|
3853
4012
|
}
|
|
3854
|
-
function
|
|
3855
|
-
return
|
|
4013
|
+
function Ql(e) {
|
|
4014
|
+
return Gt(e, !1);
|
|
3856
4015
|
}
|
|
3857
|
-
function
|
|
3858
|
-
return
|
|
4016
|
+
function eu(e) {
|
|
4017
|
+
return Gt(e, !0);
|
|
3859
4018
|
}
|
|
3860
|
-
function
|
|
4019
|
+
function Gt(e, t) {
|
|
3861
4020
|
if (typeof e != "string" || !e) return "";
|
|
3862
4021
|
let n = e.length;
|
|
3863
|
-
for (const
|
|
3864
|
-
const
|
|
3865
|
-
|
|
4022
|
+
for (const s of ii) {
|
|
4023
|
+
const a = e.search(s);
|
|
4024
|
+
a >= 0 && a < n && (n = a);
|
|
3866
4025
|
}
|
|
3867
4026
|
const r = e.slice(0, n);
|
|
3868
|
-
let o =
|
|
3869
|
-
return o || (o =
|
|
4027
|
+
let o = ut(lt(at(r, t)));
|
|
4028
|
+
return o || (o = ut(lt(at(e, t)))), ai(o) || o;
|
|
3870
4029
|
}
|
|
3871
4030
|
export {
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4031
|
+
ms as ACTIVE_ASSIGNMENT_STATUSES,
|
|
4032
|
+
N as ACTIVITY_CATALOG,
|
|
4033
|
+
Eo as AI_ATTACHMENT_LIMITS,
|
|
4034
|
+
Kc as AI_ATTACHMENT_MAX_PER_TURN,
|
|
4035
|
+
Uc as AI_ATTACHMENT_TURN_BUDGET,
|
|
4036
|
+
pt as AI_VENDORS,
|
|
4037
|
+
fn as ALLOWED_LINK_SCHEMES,
|
|
4038
|
+
_l as APP_PERMISSIONS,
|
|
4039
|
+
De as ARTIFACT_MAX_BLOCKS,
|
|
4040
|
+
ss as ARTIFACT_MAX_BODY_BYTES,
|
|
4041
|
+
oe as ARTIFACT_MAX_CELL_LEN,
|
|
4042
|
+
Ue as ARTIFACT_MAX_KPI_ITEMS,
|
|
4043
|
+
$e as ARTIFACT_MAX_LIST_ITEMS,
|
|
4044
|
+
Pe as ARTIFACT_MAX_TABLE_COLUMNS,
|
|
4045
|
+
Le as ARTIFACT_MAX_TABLE_ROWS,
|
|
4046
|
+
gt as ARTIFACT_MAX_TEXT_LEN,
|
|
4047
|
+
Sn as ASSIGNMENT_SCOPE_KIND,
|
|
4048
|
+
Gc as ASSIST_BANDS,
|
|
4049
|
+
jc as ASSIST_SOURCE_PROVIDER_GROUP,
|
|
4050
|
+
Dn as ATTENTION_STATUSES,
|
|
4051
|
+
Zr as AT_RISK_GAP,
|
|
4052
|
+
Bt as AUTH_APP_NAME,
|
|
4053
|
+
Rr as AUTO_READY_MIN_PROPOSALS,
|
|
4054
|
+
Dr as AUTO_READY_RATE,
|
|
4055
|
+
tn as ActivityTypeRegistry,
|
|
4056
|
+
Hi as BUILT_IN_ONLY,
|
|
4057
|
+
$n as BULK_PENALTY,
|
|
4058
|
+
Ho as CADENCE_FLOOR_MS,
|
|
4059
|
+
jo as CADENCE_MIN_NEW_SEGMENTS,
|
|
4060
|
+
Go as CADENCE_MIN_NOVELTY,
|
|
4061
|
+
Bo as CADENCE_WINDOW_MS,
|
|
4062
|
+
Ta as CLASSIFY_VARS,
|
|
4063
|
+
ul as CONNECTOR_PROVIDER_GROUP,
|
|
4064
|
+
dl as CONTEXT_COLLECT_SERVICE,
|
|
4065
|
+
es as CORE_DIMENSIONS,
|
|
4066
|
+
Mo as CommunicationScheme,
|
|
4067
|
+
In as DAY_MS,
|
|
4068
|
+
Xr as DEFAULT_CHECK_IN_DAYS,
|
|
4069
|
+
fr as DEFAULT_FORECAST_WEEKS,
|
|
4070
|
+
qs as DEFAULT_MEMORY_BUDGET,
|
|
4071
|
+
Jo as DEFAULT_PHONE_REGION,
|
|
4072
|
+
oa as DEMAND_SOURCE_PROVIDER_GROUP,
|
|
4073
|
+
hl as DOCUMENT_APPLY_SERVICE,
|
|
4074
|
+
ml as DOCUMENT_DESCRIBE_SERVICE,
|
|
4075
|
+
gl as DOCUMENT_INSPECT_SERVICE,
|
|
4076
|
+
Ut as DOCUMENT_OPERATIONS,
|
|
4077
|
+
Ia as EMPTY_WORKFLOW,
|
|
4078
|
+
sl as FEATURE_FOLDER_MANAGEMENT,
|
|
4079
|
+
cl as FEATURE_MESSAGE_REACTIONS,
|
|
4080
|
+
al as FEATURE_REMOTE_SEARCH,
|
|
4081
|
+
Se as FIXED_KINDS,
|
|
4082
|
+
Q as FIXED_LEVELS,
|
|
4083
|
+
we as FIXED_TYPES,
|
|
4084
|
+
Pn as FOLLOW_UP_HOURS,
|
|
4085
|
+
wn as HOUR_MS,
|
|
4086
|
+
wi as HTML_BODY_RE,
|
|
4087
|
+
R as INELIGIBLE,
|
|
4088
|
+
bl as INSTALLATION_HEADER,
|
|
4089
|
+
vr as INTERACTION_KIND,
|
|
4090
|
+
ol as InteractionParticipantRole,
|
|
4091
|
+
Wn as KB_FALLBACK_LOCALE,
|
|
4092
|
+
He as KB_LOCALES,
|
|
4093
|
+
Ie as LOOSE_STATUSES,
|
|
4094
|
+
Cn as MAIL_HINT_HEADERS,
|
|
4095
|
+
vi as MAX_ACTIONS,
|
|
4096
|
+
_n as MAX_ASSIGNMENT_TURNS,
|
|
4097
|
+
Ii as MAX_BLOCKS,
|
|
4098
|
+
Tt as MAX_COLLECTION_DEPTH,
|
|
4099
|
+
Ul as MAX_EDITABLE_FILE_BYTES,
|
|
4100
|
+
Mi as MAX_FIELDS,
|
|
4101
|
+
ki as MAX_LIST_ITEMS,
|
|
4102
|
+
Vs as MAX_MEMORY_BROWSE,
|
|
4103
|
+
Xs as MAX_MEMORY_BUDGET,
|
|
4104
|
+
zs as MAX_MEMORY_CHARS,
|
|
4105
|
+
qo as MAX_SHOWN_KEYS,
|
|
4106
|
+
ro as MAX_TOPIC_CANDIDATES,
|
|
4107
|
+
no as MAX_TOPIC_EXAMPLES,
|
|
4108
|
+
se as MAX_TOPIC_EXAMPLE_CHARS,
|
|
4109
|
+
Kl as MAX_VIEWABLE_FILE_BYTES,
|
|
4110
|
+
Ys as MIN_MEMORY_BUDGET,
|
|
4111
|
+
Wl as NAV_NOTICE_SLOT,
|
|
4112
|
+
El as NOTIFICATION_SOURCE_PROVIDER_GROUP,
|
|
4113
|
+
Qr as OFF_TRACK_GAP,
|
|
4114
|
+
Zs as ONBOARDING_SOURCE_PROVIDER_GROUP,
|
|
4115
|
+
ge as PAUSE_SNOOZED,
|
|
4116
|
+
he as PAUSE_WAITING_FOR_CUSTOMER,
|
|
4117
|
+
Me as PHONE_REGIONS,
|
|
4118
|
+
Kt as PRESENCE_ONLINE_WINDOW_MS,
|
|
4119
|
+
xo as PRESENCE_SURVIVES_OFFLINE,
|
|
4120
|
+
ea as PROFILE_TOOL_DISPOSITIONS,
|
|
4121
|
+
rl as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
|
|
4122
|
+
nl as PROVIDER_FEATURE_MESSAGE_WINDOW,
|
|
4123
|
+
oi as PUBLIC_EMAIL_DOMAINS,
|
|
4124
|
+
je as READ_STEP_TYPES,
|
|
4125
|
+
Yn as RELATED_SUBJECT_KINDS,
|
|
4126
|
+
Pt as RESERVED_STATUS_KEYS,
|
|
4127
|
+
Ac as RESERVED_TYPE_KEYS,
|
|
4128
|
+
Cl as RESOURCE_ATTACHED_SERVICE,
|
|
4129
|
+
kl as RESOURCE_DESCRIBE_SERVICE,
|
|
4130
|
+
Ol as RESOURCE_RESOLVE_SERVICE,
|
|
4131
|
+
vl as RESOURCE_SEARCH_SERVICE,
|
|
4132
|
+
br as SCHEDULE_ENTRY_SCOPE_KIND,
|
|
4133
|
+
Rl as SCOPE_READ_ROUTE,
|
|
4134
|
+
xl as SCOPE_RELATED_ROUTE,
|
|
4135
|
+
Gl as SETTINGS_CATEGORIES,
|
|
4136
|
+
Ss as SIGNATURE_INTENTS,
|
|
4137
|
+
Ln as SLA_HOURS_BY_PRIORITY,
|
|
4138
|
+
Pa as SLA_METRICS,
|
|
4139
|
+
Ua as SLA_PAUSE_REASONS,
|
|
4140
|
+
Nr as STEP_MAX_TOKENS_MAX,
|
|
4141
|
+
Cr as STEP_MAX_TOKENS_MIN,
|
|
4142
|
+
zr as STRATEGY_ITEM_SCOPE_KIND,
|
|
4143
|
+
On as SUMMARY_MIN_LAST_CHARS,
|
|
4144
|
+
vn as SUMMARY_MIN_MESSAGES,
|
|
4145
|
+
Bl as SYNC_RUN_MAX_ERRORS,
|
|
4146
|
+
Fl as SYNC_TARGET_PROVIDER_GROUP,
|
|
4147
|
+
En as TERMINAL_ASSIGNMENT_STATUSES,
|
|
4148
|
+
$r as TERMINAL_RUN_STATUSES,
|
|
4149
|
+
_a as TRIGGER_VARS,
|
|
4150
|
+
Xn as UNKNOWN_KIND,
|
|
4151
|
+
Yr as UNKNOWN_LEVEL_ORDER,
|
|
4152
|
+
ll as UNSUPPORTED,
|
|
4153
|
+
cn as USAGE_DIMENSIONS,
|
|
4154
|
+
ln as USAGE_DIMENSION_IDS,
|
|
4155
|
+
Ar as WORKSTREAM_SCOPE_KIND,
|
|
4156
|
+
uo as WORK_ACTIVITY_SCOPE_KIND,
|
|
4157
|
+
Qs as WORK_AREAS,
|
|
4158
|
+
gc as WORK_COMMENT_ADDED,
|
|
4159
|
+
wc as WORK_CYCLE_SYNC_KIND,
|
|
4160
|
+
hc as WORK_ITEM_ASSIGNED,
|
|
4161
|
+
co as WORK_ITEM_SCOPE_KIND,
|
|
4162
|
+
yc as WORK_ITEM_STATUS_CHANGED,
|
|
4163
|
+
lo as WORK_PROJECT_SCOPE_KIND,
|
|
4164
|
+
X as W_PRIORITY,
|
|
4165
|
+
fc as acceptExampleCandidate,
|
|
4166
|
+
Tr as actingIdentityKey,
|
|
4167
|
+
uc as activeWorkTypes,
|
|
4168
|
+
Ci as activityIconOf,
|
|
4169
|
+
Fi as activityJoinUrl,
|
|
4170
|
+
Jt as activitySnippet,
|
|
4171
|
+
Zt as activityTextParams,
|
|
4172
|
+
Ki as activityTimelineText,
|
|
4173
|
+
nn as activityTimestamp,
|
|
4174
|
+
M as activityTypeInfo,
|
|
4175
|
+
ha as actorKey,
|
|
4176
|
+
dc as addExampleCandidate,
|
|
4177
|
+
_e as addWorkingMs,
|
|
4178
|
+
wl as agePresenceEntry,
|
|
4179
|
+
Ao as aiAttachmentKind,
|
|
4180
|
+
Fc as aiAttachmentRejection,
|
|
4181
|
+
Re as aiBudgetLimit,
|
|
4182
|
+
Zi as aiBudgetPeriodKey,
|
|
4183
|
+
rn as aiBudgetPeriodStart,
|
|
4184
|
+
Ji as aiBudgetState,
|
|
4185
|
+
qi as aiVendorAcceptsAttachment,
|
|
4186
|
+
zi as aiVendorDefaultModel,
|
|
4187
|
+
Vi as aiVendorLabel,
|
|
4188
|
+
Xi as aiVendorNeedsBaseUrl,
|
|
4189
|
+
Yi as aiVendorsWith,
|
|
4190
|
+
Ht as appNameFromPath,
|
|
4191
|
+
ic as applyRounding,
|
|
4192
|
+
_s as applySignature,
|
|
4193
|
+
xr as approvalRate,
|
|
4194
|
+
cs as artifactBodyBytes,
|
|
4195
|
+
ls as artifactOutline,
|
|
4196
|
+
us as artifactToMarkdown,
|
|
4197
|
+
Ea as assignmentMismatch,
|
|
4198
|
+
hs as assignmentScopeKey,
|
|
4199
|
+
As as assignmentSubject,
|
|
4200
|
+
ta as belongsOnCalendar,
|
|
4201
|
+
Bi as buildActivityPreview,
|
|
4202
|
+
Jc as buildChannelIntents,
|
|
4203
|
+
ds as buildShareKeys,
|
|
4204
|
+
Xo as buildWindow,
|
|
4205
|
+
Zn as calendarDaysBetween,
|
|
4206
|
+
Te as calendarOf,
|
|
4207
|
+
Fs as canNestUnder,
|
|
4208
|
+
Va as canParent,
|
|
4209
|
+
na as capacityTotal,
|
|
4210
|
+
fa as capacityWeights,
|
|
4211
|
+
$i as carriesText,
|
|
4212
|
+
Hs as categoryLabel,
|
|
4213
|
+
mo as categoryOf,
|
|
4214
|
+
tl as channelKindForScheme,
|
|
4215
|
+
Ni as channelKindOf,
|
|
4216
|
+
nc as checkInOverdueMs,
|
|
4217
|
+
wa as clampStepMaxTokens,
|
|
4218
|
+
vs as classifyMail,
|
|
4219
|
+
eu as cleanMessageMarkdown,
|
|
4220
|
+
Ql as cleanMessageText,
|
|
4221
|
+
Vc as compareAssistRank,
|
|
4222
|
+
to as compareWorkTypes,
|
|
4223
|
+
q as countsAsPlanned,
|
|
4224
|
+
ra as coverageByPerson,
|
|
4225
|
+
sa as coverageFor,
|
|
4226
|
+
qn as coversWorkstream,
|
|
4227
|
+
It as cycleDayIndex,
|
|
4228
|
+
Lc as cycleOrder,
|
|
4229
|
+
Pc as cycleState,
|
|
4230
|
+
Es as decideAssignmentState,
|
|
4231
|
+
jl as decideCadence,
|
|
4232
|
+
Xc as decideIncomingCall,
|
|
4233
|
+
Vn as defaultLocaleOf,
|
|
4234
|
+
xc as defaultStatusKey,
|
|
4235
|
+
il as defineIntent,
|
|
4236
|
+
jn as depthOf,
|
|
4237
|
+
Tl as derivePresence,
|
|
4238
|
+
rs as describeClause,
|
|
4239
|
+
qc as disabledIntentsFromCapabilities,
|
|
4240
|
+
yl as documentKindOf,
|
|
4241
|
+
Fa as dueAtOf,
|
|
4242
|
+
oc as elapsedSeconds,
|
|
4243
|
+
Yl as emailDomain,
|
|
4244
|
+
Jl as endpointKey,
|
|
4245
|
+
nr as erlangC,
|
|
4246
|
+
$o as extractParams,
|
|
4247
|
+
zo as extractTerms,
|
|
4248
|
+
Qc as filterByEndpoint,
|
|
4249
|
+
Zc as filterByIntent,
|
|
4250
|
+
Io as filterByTargetScheme,
|
|
4251
|
+
ns as filterableDimensions,
|
|
4252
|
+
Z as findAiVendor,
|
|
4253
|
+
Ya as fixedLevelForName,
|
|
4254
|
+
_c as fixedTypeForName,
|
|
4255
|
+
Tc as fixedTypes,
|
|
4256
|
+
Al as flattenLocales,
|
|
4093
4257
|
B as floorToPeriod,
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
|
|
4122
|
-
|
|
4123
|
-
|
|
4124
|
-
|
|
4125
|
-
|
|
4126
|
-
|
|
4127
|
-
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
|
|
4258
|
+
la as forecastIntervals,
|
|
4259
|
+
_r as formatActingIdentity,
|
|
4260
|
+
ac as formatClock,
|
|
4261
|
+
sc as formatHm,
|
|
4262
|
+
Mc as formatItemKey,
|
|
4263
|
+
F as formatPeriod,
|
|
4264
|
+
ja as formatSlaDuration,
|
|
4265
|
+
Hc as freshSources,
|
|
4266
|
+
ji as getActivitySeenUserIds,
|
|
4267
|
+
Ts as getContactEndpoints,
|
|
4268
|
+
$s as getShortTitle,
|
|
4269
|
+
Ds as getUrgencyScore,
|
|
4270
|
+
Da as hasReacted,
|
|
4271
|
+
Xa as healthCategory,
|
|
4272
|
+
qa as healthsInCategory,
|
|
4273
|
+
wt as heightOf,
|
|
4274
|
+
Ps as helpCenterText,
|
|
4275
|
+
Sa as humanizeAction,
|
|
4276
|
+
Or as interactionIdOf,
|
|
4277
|
+
mc as isAgentUser,
|
|
4278
|
+
xs as isAssigned,
|
|
4279
|
+
gs as isAssignmentTerminal,
|
|
4280
|
+
Mr as isAssignmentTrigger,
|
|
4281
|
+
va as isAutoReady,
|
|
4282
|
+
Hn as isAwaitingThem,
|
|
4283
|
+
Wi as isChatMessageActivity,
|
|
4284
|
+
Rs as isClosed,
|
|
4285
|
+
Pi as isConnectedType,
|
|
4286
|
+
Dl as isDeepLink,
|
|
4287
|
+
Gn as isDescendant,
|
|
4288
|
+
ws as isEligible,
|
|
4289
|
+
Gi as isEmailActivity,
|
|
4290
|
+
Zl as isHtmlBody,
|
|
4291
|
+
Ca as isInFlight,
|
|
4292
|
+
Rn as isInteractionUnseen,
|
|
4293
|
+
$l as isLandingPath,
|
|
4294
|
+
kn as isLikelyBulk,
|
|
4295
|
+
dt as isMessageShape,
|
|
4296
|
+
xi as isMessageType,
|
|
4297
|
+
Po as isMoreSpecificPattern,
|
|
4298
|
+
ft as isNoteShape,
|
|
4299
|
+
Vr as isOpenClock,
|
|
4300
|
+
Bc as isOutwardTool,
|
|
4301
|
+
Kn as isParked,
|
|
4302
|
+
Lr as isPaused,
|
|
4303
|
+
Li as isPlaybookAuthoredType,
|
|
4304
|
+
Xl as isPublicEmailDomain,
|
|
4305
|
+
Pl as isPublicPath,
|
|
4306
|
+
Fn as isReminderActive,
|
|
4307
|
+
Di as isReplyableType,
|
|
4308
|
+
Cs as isSlaAtRisk,
|
|
4309
|
+
Oa as isTerminal,
|
|
4310
|
+
Ms as isThreadLongEnough,
|
|
4311
|
+
Ui as isTranscriptType,
|
|
4312
|
+
Rc as isWorkClosed,
|
|
4313
|
+
lc as isWorkTypeVisible,
|
|
4314
|
+
Oc as itemDossierKeys,
|
|
4315
|
+
$ as kindFor,
|
|
4316
|
+
po as ladderFor,
|
|
4317
|
+
qr as levelIn,
|
|
4318
|
+
be as levelOrder,
|
|
4319
|
+
Ls as linkLabel,
|
|
4320
|
+
Qi as listeningAllowed,
|
|
4321
|
+
Ks as localeInstruction,
|
|
4322
|
+
Us as localeName,
|
|
4323
|
+
Bs as localesOf,
|
|
4324
|
+
Vl as looksLikeEmail,
|
|
4325
|
+
el as matchContactToIntents,
|
|
4326
|
+
Uo as matchPublicRoute,
|
|
4327
|
+
Gs as mcpCredentialScope,
|
|
4328
|
+
Ws as mcpToolPrefix,
|
|
4329
|
+
Ja as measureRatio,
|
|
4330
|
+
Hl as mergeShownKeys,
|
|
4331
|
+
qt as messageCountsAs,
|
|
4332
|
+
os as metricOption,
|
|
4333
|
+
Mt as minutesOn,
|
|
4334
|
+
ql as needsPhoneRegion,
|
|
4335
|
+
Ri as nestsUnderParent,
|
|
4336
|
+
za as nextLevelBelow,
|
|
4337
|
+
Ba as nextSlaClock,
|
|
4338
|
+
as as normalizeArtifactBlocks,
|
|
4339
|
+
Oi as normalizeBlocks,
|
|
4340
|
+
jt as normalizeEmail,
|
|
4341
|
+
D as normalizeExample,
|
|
4342
|
+
Sl as notificationPrefKey,
|
|
4343
|
+
Yo as novelty,
|
|
4344
|
+
pl as operationDescriptor,
|
|
4345
|
+
fl as operationsForKind,
|
|
4346
|
+
ie as overlapSeconds,
|
|
4347
|
+
ia as overlaps,
|
|
4348
|
+
Za as paceRatio,
|
|
4349
|
+
Is as parkMarksById,
|
|
4350
|
+
ma as parseActingIdentity,
|
|
4351
|
+
$a as parseClockMinutes,
|
|
4352
|
+
kc as parseItemKey,
|
|
4353
|
+
Do as pathToRegex,
|
|
4354
|
+
vt as patternFor,
|
|
4355
|
+
kt as patternStartTime,
|
|
4356
|
+
La as pauseBitFor,
|
|
4357
|
+
ts as periodsInRange,
|
|
4358
|
+
zl as phoneSuffix,
|
|
4359
|
+
ks as pickMailHeaders,
|
|
4360
|
+
pa as placeLumps,
|
|
4361
|
+
Yt as plainTextFromMarkdown,
|
|
4362
|
+
Ka as planSlaEvent,
|
|
4363
|
+
aa as plannedBillable,
|
|
4364
|
+
ur as plannedWorkTypeKey,
|
|
4365
|
+
Ir as playbookActor,
|
|
4366
|
+
ka as procedureOf,
|
|
4367
|
+
Cc as projectDossierKeys,
|
|
4368
|
+
Lo as publicBasePathFor,
|
|
4369
|
+
Ll as publicRoutePatterns,
|
|
4370
|
+
bs as reactionWakesAssignment,
|
|
4371
|
+
le as readPath,
|
|
4372
|
+
Ge as readStepError,
|
|
4373
|
+
Un as recencyOf,
|
|
4374
|
+
kr as refKey,
|
|
4375
|
+
ri as registrableDomain,
|
|
4376
|
+
io as rejectExampleCandidate,
|
|
4377
|
+
Js as relatedByDefault,
|
|
4378
|
+
ye as remainingMsOf,
|
|
4379
|
+
ir as requiredAgents,
|
|
4380
|
+
lr as requirementFor,
|
|
4381
|
+
To as resolveAccountCapabilities,
|
|
4382
|
+
ue as resolveActivityText,
|
|
4383
|
+
_o as resolveChannelIntents,
|
|
4384
|
+
Tn as resolveSignature,
|
|
4385
|
+
Il as resolveWorkMode,
|
|
4386
|
+
Nl as resourceKindOf,
|
|
4387
|
+
tc as rollupChildren,
|
|
4388
|
+
ga as runActor,
|
|
4389
|
+
xa as runInteractionId,
|
|
4390
|
+
hn as sanitizeInline,
|
|
4391
|
+
Fo as sanitizeTranscript,
|
|
4392
|
+
ua as scheduleEntryScopeKey,
|
|
4393
|
+
Ns as scoreInteraction,
|
|
4394
|
+
bc as scoreWorkItem,
|
|
4395
|
+
js as selectLenses,
|
|
4396
|
+
rr as serviceLevel,
|
|
4397
|
+
Yc as sessionsHoldCannotReach,
|
|
4398
|
+
zc as sessionsToHold,
|
|
4399
|
+
bt as shareKeyForTeam,
|
|
4400
|
+
yt as shareKeyForUser,
|
|
4401
|
+
fs as shareKeysForViewer,
|
|
4402
|
+
ca as shortfalls,
|
|
4403
|
+
Ml as shouldRunAudioPipeline,
|
|
4404
|
+
Ha as slaBadgeTone,
|
|
4405
|
+
Os as slaHoursByInbox,
|
|
4406
|
+
Bn as slaHoursFor,
|
|
4407
|
+
go as sortStatuses,
|
|
4408
|
+
So as sourceKey,
|
|
4409
|
+
Sr as spreadOverWeights,
|
|
4410
|
+
Nc as statusIn,
|
|
4411
|
+
Ma as stepsOf,
|
|
4412
|
+
Wa as strategyAncestorKeysFor,
|
|
4413
|
+
Ga as strategyDossierKeys,
|
|
4414
|
+
$t as strategyItemScopeKey,
|
|
4415
|
+
Xt as stripHtml,
|
|
4416
|
+
Na as subjectKeyOf,
|
|
4417
|
+
Ot as subjectOf,
|
|
4418
|
+
Wc as subjectRef,
|
|
4419
|
+
vc as suggestProjectKey,
|
|
4420
|
+
Qa as suggestedHealth,
|
|
4421
|
+
Ra as summarizeReactions,
|
|
4422
|
+
Aa as targetById,
|
|
4423
|
+
ba as targetForActivityType,
|
|
4424
|
+
rc as targetOrder,
|
|
4425
|
+
Qn as termsFor,
|
|
4426
|
+
wr as toActingIdentity,
|
|
4427
|
+
ot as toE164,
|
|
4428
|
+
ps as toolSourceKinds,
|
|
4429
|
+
so as topicOfferedForTeam,
|
|
4430
|
+
pc as topicsForTeam,
|
|
4431
|
+
or as trafficIntensity,
|
|
4432
|
+
oo as truncateExample,
|
|
4433
|
+
Sc as typeIn,
|
|
4434
|
+
Ec as typesFor,
|
|
4435
|
+
Dc as uniqueWorkStatusKey,
|
|
4436
|
+
cc as uniqueWorkTypeKey,
|
|
4437
|
+
un as usageMetricId,
|
|
4438
|
+
is as usageMetrics,
|
|
4439
|
+
$c as validateStatuses,
|
|
4440
|
+
ya as valueAtPath,
|
|
4441
|
+
Ee as waitHoursOf,
|
|
4442
|
+
ys as wakesAssignment,
|
|
4443
|
+
Ic as workActivityScopeKey,
|
|
4444
|
+
fo as workItemScopeKey,
|
|
4445
|
+
Lt as workProjectScopeKey,
|
|
4446
|
+
ec as workRatio,
|
|
4447
|
+
ho as workStatusKey,
|
|
4448
|
+
eo as workTypeKey,
|
|
4449
|
+
me as workingMsBetween,
|
|
4450
|
+
da as workstreamScopeKey
|
|
4282
4451
|
};
|