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