@opencxh/domain 1.233.1 → 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/entities/planning/pattern.d.ts +7 -3
- package/dist/index.cjs +14 -14
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1576 -1440
- 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",
|
|
@@ -14,7 +14,7 @@ function te(e) {
|
|
|
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,7 +25,7 @@ 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
|
}
|
|
@@ -69,17 +69,17 @@ 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
85
|
function G(e) {
|
|
@@ -87,19 +87,19 @@ function G(e) {
|
|
|
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
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",
|
|
@@ -134,7 +134,7 @@ const N = {
|
|
|
134
134
|
channelKind: "voice",
|
|
135
135
|
icon: "phone",
|
|
136
136
|
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${G(e.payload.duration)})` : ""}`,
|
|
137
|
-
timeline: (e) => `Call ended${
|
|
137
|
+
timeline: (e) => `Call ended${xe(e.payload.duration)}`
|
|
138
138
|
},
|
|
139
139
|
VOICE_CALL_MISSED: {
|
|
140
140
|
shape: "event",
|
|
@@ -216,7 +216,7 @@ const N = {
|
|
|
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 N = {
|
|
|
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 N = {
|
|
|
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 N = {
|
|
|
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,7 +283,7 @@ const N = {
|
|
|
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: {
|
|
@@ -291,7 +291,7 @@ const N = {
|
|
|
291
291
|
channelKind: "chat",
|
|
292
292
|
icon: "message-circle",
|
|
293
293
|
snippet: (e) => `Gesprek beëindigd${e.payload.duration ? ` (${G(e.payload.duration)})` : ""}`,
|
|
294
|
-
timeline: (e) => `${
|
|
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: {
|
|
@@ -460,63 +460,63 @@ const N = {
|
|
|
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 le(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 Ne(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 xe(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"],
|
|
@@ -788,44 +788,44 @@ const pt = [
|
|
|
788
788
|
}
|
|
789
789
|
];
|
|
790
790
|
function Z(e) {
|
|
791
|
-
return
|
|
791
|
+
return yt.find((t) => t.id === e);
|
|
792
792
|
}
|
|
793
|
-
function
|
|
793
|
+
function qi(e) {
|
|
794
794
|
return Z(e)?.label ?? e;
|
|
795
795
|
}
|
|
796
|
-
function
|
|
796
|
+
function Ji(e, t = "gpt-5-mini") {
|
|
797
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
|
|
802
|
+
function Qi(e) {
|
|
803
803
|
const t = Z(e);
|
|
804
804
|
return !!t && !t.baseUrl;
|
|
805
805
|
}
|
|
806
|
-
function
|
|
806
|
+
function es(e, t) {
|
|
807
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" },
|
|
@@ -846,53 +846,53 @@ function B(e, t) {
|
|
|
846
846
|
const n = new Date(e);
|
|
847
847
|
return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
|
|
848
848
|
}
|
|
849
|
-
const
|
|
850
|
-
function
|
|
851
|
-
const r = n === "hour" ?
|
|
849
|
+
const ln = 36e5, un = 864e5;
|
|
850
|
+
function is(e, t, n) {
|
|
851
|
+
const r = n === "hour" ? ln : un, o = [];
|
|
852
852
|
for (let i = B(e, n); i <= t; i += r)
|
|
853
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 gn(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 Ke(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);
|
|
967
|
+
}
|
|
968
|
+
function Tn(e, t = "info") {
|
|
969
|
+
return typeof e == "string" && bt.has(e) ? e : t;
|
|
963
970
|
}
|
|
964
|
-
function
|
|
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 h =
|
|
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
1069
|
const h = Array.isArray(c) ? c : [];
|
|
1063
|
-
|
|
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 He = [
|
|
|
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,72 +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
|
-
|
|
1580
|
-
return n.setHours(12, 0, 0, 0), r.setHours(12, 0, 0, 0), Math.round((r.getTime() - n.getTime()) / Jn);
|
|
1673
|
+
const tr = 864e5;
|
|
1674
|
+
function nr(e, t) {
|
|
1675
|
+
return Math.round((t - e) / tr);
|
|
1581
1676
|
}
|
|
1582
|
-
function
|
|
1677
|
+
function Ot(e, t) {
|
|
1583
1678
|
const n = e.cycleMinutes.length;
|
|
1584
|
-
return n === 0 ? 0 : (
|
|
1679
|
+
return n === 0 ? 0 : (nr(e.anchor, t) % n + n) % n;
|
|
1585
1680
|
}
|
|
1586
|
-
function
|
|
1587
|
-
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;
|
|
1588
1683
|
}
|
|
1589
|
-
function
|
|
1590
|
-
return e.startTimes?.[
|
|
1684
|
+
function Nt(e, t) {
|
|
1685
|
+
return e.startTimes?.[Ot(e, t)];
|
|
1591
1686
|
}
|
|
1592
|
-
function
|
|
1687
|
+
function xt(e, t, n, r) {
|
|
1593
1688
|
const o = e.filter(
|
|
1594
1689
|
(a) => a.effectiveFrom === void 0 || a.effectiveFrom <= r
|
|
1595
|
-
), 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));
|
|
1596
1691
|
return s || i(
|
|
1597
1692
|
o.filter((a) => !a.userId && a.teamId && n.includes(a.teamId))
|
|
1598
1693
|
);
|
|
1599
1694
|
}
|
|
1600
|
-
function
|
|
1695
|
+
function rr(e, t, n) {
|
|
1601
1696
|
return e.filter(
|
|
1602
1697
|
(r) => r.userId === t && (r.effectiveFrom === void 0 || r.effectiveFrom <= n)
|
|
1603
1698
|
).sort((r, o) => (o.effectiveFrom ?? 0) - (r.effectiveFrom ?? 0))[0];
|
|
1604
1699
|
}
|
|
1605
|
-
const
|
|
1606
|
-
function
|
|
1607
|
-
const t =
|
|
1608
|
-
return
|
|
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);
|
|
1609
1704
|
}
|
|
1610
|
-
function
|
|
1705
|
+
function pe(e, t, n, r) {
|
|
1611
1706
|
const o = Math.min(t, r) - Math.max(e, n);
|
|
1612
1707
|
return o > 0 ? o / 1e3 : 0;
|
|
1613
1708
|
}
|
|
1614
|
-
const
|
|
1615
|
-
function
|
|
1709
|
+
const Je = { interval: 0, day: 1, week: 2 };
|
|
1710
|
+
function sa(e, t) {
|
|
1616
1711
|
const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
|
|
1617
|
-
(c) => c.userId &&
|
|
1712
|
+
(c) => c.userId && H(c.status) && x(c.kindKey).capacity
|
|
1618
1713
|
), s = n.filter(
|
|
1619
|
-
(c) => c.userId &&
|
|
1714
|
+
(c) => c.userId && H(c.status) && x(c.kindKey).absent
|
|
1620
1715
|
), a = t.userIds ?? [
|
|
1621
1716
|
.../* @__PURE__ */ new Set([
|
|
1622
1717
|
...i.map((c) => c.userId),
|
|
@@ -1624,261 +1719,286 @@ function na(e, t) {
|
|
|
1624
1719
|
...o.map((c) => c.userId)
|
|
1625
1720
|
])
|
|
1626
1721
|
].filter((c) => !!c), l = {};
|
|
1627
|
-
let
|
|
1628
|
-
const
|
|
1629
|
-
|
|
1722
|
+
let u = "interval";
|
|
1723
|
+
const d = (c) => {
|
|
1724
|
+
Je[c] > Je[u] && (u = c);
|
|
1630
1725
|
};
|
|
1631
1726
|
for (const c of a) {
|
|
1632
1727
|
const h = t.teamIdsOf?.(c) ?? [];
|
|
1633
|
-
let
|
|
1634
|
-
for (
|
|
1635
|
-
const
|
|
1636
|
-
|
|
1637
|
-
const
|
|
1638
|
-
if (
|
|
1639
|
-
|
|
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);
|
|
1733
|
+
if (O > 0) {
|
|
1734
|
+
m += O;
|
|
1640
1735
|
continue;
|
|
1641
1736
|
}
|
|
1642
|
-
const k =
|
|
1643
|
-
if (k &&
|
|
1644
|
-
|
|
1737
|
+
const k = xt(r, c, h, f), C = k ? Ct(k, f) : 0;
|
|
1738
|
+
if (k && C > 0) {
|
|
1739
|
+
m += C * 60, d(Nt(k, f) ? "interval" : "day");
|
|
1645
1740
|
continue;
|
|
1646
1741
|
}
|
|
1647
1742
|
k || E++;
|
|
1648
1743
|
}
|
|
1649
1744
|
if (E > 0) {
|
|
1650
|
-
const
|
|
1651
|
-
|
|
1745
|
+
const f = rr(o, c, e.from);
|
|
1746
|
+
f && (m += f.weeklyMinutes * 60 * (E / 7), d("week"));
|
|
1652
1747
|
}
|
|
1653
|
-
const T = s.filter((
|
|
1654
|
-
(
|
|
1748
|
+
const T = s.filter((f) => f.userId === c).reduce(
|
|
1749
|
+
(f, S) => f + pe(S.start, S.end, e.from, e.to),
|
|
1655
1750
|
0
|
|
1656
|
-
),
|
|
1657
|
-
(
|
|
1751
|
+
), p = Math.max(0, m - T);
|
|
1752
|
+
(p > 0 || g > 0) && (l[c] = p);
|
|
1658
1753
|
}
|
|
1659
1754
|
return {
|
|
1660
1755
|
seconds: Object.values(l).reduce((c, h) => c + h, 0),
|
|
1661
|
-
precision:
|
|
1756
|
+
precision: u,
|
|
1662
1757
|
byUser: l
|
|
1663
1758
|
};
|
|
1664
1759
|
}
|
|
1665
|
-
function
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
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);
|
|
1670
1766
|
}
|
|
1671
|
-
const
|
|
1767
|
+
const i = [.../* @__PURE__ */ new Set([
|
|
1672
1768
|
...Object.keys(t.byUser),
|
|
1673
|
-
...[...
|
|
1674
|
-
])].map((
|
|
1675
|
-
const
|
|
1769
|
+
...[...r.keys()].filter((a) => a !== n)
|
|
1770
|
+
])].map((a) => {
|
|
1771
|
+
const l = r.get(a) ?? 0, u = t.byUser[a] ?? 0;
|
|
1676
1772
|
return {
|
|
1677
|
-
userId:
|
|
1678
|
-
requiredSeconds:
|
|
1679
|
-
capacitySeconds:
|
|
1680
|
-
netSeconds:
|
|
1773
|
+
userId: a,
|
|
1774
|
+
requiredSeconds: l,
|
|
1775
|
+
capacitySeconds: u,
|
|
1776
|
+
netSeconds: u - l
|
|
1681
1777
|
};
|
|
1682
1778
|
});
|
|
1683
|
-
|
|
1684
|
-
const
|
|
1685
|
-
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;
|
|
1782
|
+
}
|
|
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;
|
|
1686
1804
|
}
|
|
1687
|
-
const
|
|
1688
|
-
function
|
|
1805
|
+
const la = "demand-source", Ze = 1e3;
|
|
1806
|
+
function ir(e, t) {
|
|
1689
1807
|
let n = 1;
|
|
1690
1808
|
for (let r = 1; r <= e; r++)
|
|
1691
1809
|
n = t * n / (r + t * n);
|
|
1692
1810
|
return n;
|
|
1693
1811
|
}
|
|
1694
|
-
function
|
|
1812
|
+
function sr(e, t) {
|
|
1695
1813
|
if (e <= 0) return 1;
|
|
1696
1814
|
if (t <= 0) return 0;
|
|
1697
1815
|
if (e <= t) return 1;
|
|
1698
|
-
const n =
|
|
1816
|
+
const n = ir(e, t), r = t / e;
|
|
1699
1817
|
return n / (1 - r * (1 - n));
|
|
1700
1818
|
}
|
|
1701
|
-
function
|
|
1702
|
-
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);
|
|
1703
1821
|
}
|
|
1704
|
-
function
|
|
1822
|
+
function cr(e, t, n) {
|
|
1705
1823
|
return n <= 0 ? 0 : e * t / n;
|
|
1706
1824
|
}
|
|
1707
|
-
function
|
|
1825
|
+
function lr(e, t, n, r) {
|
|
1708
1826
|
if (e <= 0 || t <= 0) return 0;
|
|
1709
|
-
const o =
|
|
1827
|
+
const o = cr(e, t, n);
|
|
1710
1828
|
if (o <= 0) return 0;
|
|
1711
1829
|
const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
|
|
1712
|
-
for (let a = Math.max(1, Math.ceil(o)); a <=
|
|
1713
|
-
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))
|
|
1714
1832
|
return a;
|
|
1715
|
-
return
|
|
1833
|
+
return Ze;
|
|
1716
1834
|
}
|
|
1717
|
-
const
|
|
1718
|
-
function
|
|
1719
|
-
return e === "day" ?
|
|
1835
|
+
const ur = 36e5, dr = 864e5;
|
|
1836
|
+
function fr(e) {
|
|
1837
|
+
return e === "day" ? dr : ur;
|
|
1720
1838
|
}
|
|
1721
|
-
function
|
|
1839
|
+
function ua(e, t) {
|
|
1722
1840
|
return e.start < t.end && t.start < e.end;
|
|
1723
1841
|
}
|
|
1724
1842
|
function ie(e, t, n) {
|
|
1725
1843
|
const r = Math.min(e.end, n) - Math.max(e.start, t);
|
|
1726
1844
|
return r > 0 ? r / 1e3 : 0;
|
|
1727
1845
|
}
|
|
1728
|
-
function
|
|
1846
|
+
function pr(e, t, n) {
|
|
1729
1847
|
const r = e.handleSeconds ?? 0, o = e.seconds ?? (e.volume !== void 0 ? e.volume * r : 0);
|
|
1730
1848
|
if (o <= 0 && !e.volume) return { seconds: 0, headcount: 0 };
|
|
1731
1849
|
const i = (t.unplannedLossPercent ?? 0) / 100, s = i > 0 && i < 1 ? 1 / (1 - i) : 1;
|
|
1732
1850
|
if (t.model === "queue" && e.volume !== void 0 && r > 0) {
|
|
1733
|
-
const a =
|
|
1851
|
+
const a = lr(e.volume, r, n, t);
|
|
1734
1852
|
return { seconds: o, headcount: a * s };
|
|
1735
1853
|
}
|
|
1736
1854
|
return { seconds: o, headcount: o / n * s };
|
|
1737
1855
|
}
|
|
1738
|
-
function
|
|
1739
|
-
const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a =
|
|
1740
|
-
for (let
|
|
1741
|
-
const T =
|
|
1742
|
-
let
|
|
1743
|
-
for (const
|
|
1744
|
-
let
|
|
1745
|
-
for (const
|
|
1746
|
-
let
|
|
1747
|
-
for (const
|
|
1748
|
-
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);
|
|
1864
|
+
let N = 0;
|
|
1865
|
+
for (const M of m) N += ie(M, g, T);
|
|
1866
|
+
const O = o?.[p] ?? {}, k = pr(O, r, l), C = f / l;
|
|
1749
1867
|
E.push({
|
|
1750
|
-
period:
|
|
1751
|
-
forecastVolume:
|
|
1868
|
+
period: p,
|
|
1869
|
+
forecastVolume: O.volume,
|
|
1752
1870
|
requiredSeconds: k.seconds,
|
|
1753
1871
|
requiredHeadcount: k.headcount,
|
|
1754
|
-
scheduledSeconds:
|
|
1755
|
-
scheduledHeadcount:
|
|
1756
|
-
netHeadcount:
|
|
1757
|
-
capacitySeconds:
|
|
1758
|
-
absentSeconds:
|
|
1872
|
+
scheduledSeconds: f,
|
|
1873
|
+
scheduledHeadcount: C,
|
|
1874
|
+
netHeadcount: C - k.headcount,
|
|
1875
|
+
capacitySeconds: S,
|
|
1876
|
+
absentSeconds: N
|
|
1759
1877
|
});
|
|
1760
1878
|
}
|
|
1761
1879
|
return E;
|
|
1762
1880
|
}
|
|
1763
|
-
function
|
|
1881
|
+
function mr(e, t) {
|
|
1764
1882
|
return e.workTypeKey ?? t?.defaultWorkTypeKey;
|
|
1765
1883
|
}
|
|
1766
|
-
function
|
|
1767
|
-
const r =
|
|
1884
|
+
function fa(e, t, n) {
|
|
1885
|
+
const r = mr(e, t);
|
|
1768
1886
|
return r ? n.find((o) => o.key === r)?.defaultBillable ?? !1 : !1;
|
|
1769
1887
|
}
|
|
1770
|
-
function
|
|
1888
|
+
function pa(e) {
|
|
1771
1889
|
return e.filter(
|
|
1772
1890
|
(t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
|
|
1773
1891
|
);
|
|
1774
1892
|
}
|
|
1775
|
-
const
|
|
1776
|
-
function
|
|
1893
|
+
const hr = 36e5, me = 6048e5, gr = 8, yr = 0.5, br = 2;
|
|
1894
|
+
function Ar(e) {
|
|
1777
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;
|
|
1778
1896
|
return Date.UTC(t, n - 1, r, o);
|
|
1779
1897
|
}
|
|
1780
|
-
function
|
|
1898
|
+
function Er(e, t, n) {
|
|
1781
1899
|
const r = [];
|
|
1782
1900
|
for (let i = 0; i < n; i++) {
|
|
1783
|
-
const s = t - i *
|
|
1784
|
-
let l = 0,
|
|
1785
|
-
for (const [
|
|
1786
|
-
|
|
1787
|
-
|
|
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);
|
|
1788
1906
|
}
|
|
1789
1907
|
if (r.length < 2) return 1;
|
|
1790
1908
|
const o = r.reduce((i, s) => i + s, 0) / r.length;
|
|
1791
|
-
return o <= 0 ? 1 : Math.min(
|
|
1909
|
+
return o <= 0 ? 1 : Math.min(br, Math.max(yr, r[0] / o));
|
|
1792
1910
|
}
|
|
1793
|
-
function
|
|
1911
|
+
function Sr(e, t) {
|
|
1794
1912
|
if (!e?.length) return;
|
|
1795
1913
|
let n;
|
|
1796
1914
|
for (const r of e)
|
|
1797
1915
|
t >= r.from && t < r.to && (n = r);
|
|
1798
1916
|
return n;
|
|
1799
1917
|
}
|
|
1800
|
-
function
|
|
1801
|
-
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();
|
|
1802
1920
|
for (const l of e)
|
|
1803
|
-
o.set(
|
|
1804
|
-
const s =
|
|
1805
|
-
for (let l = B(t.from, "hour"); l < t.to; l +=
|
|
1806
|
-
let
|
|
1807
|
-
for (let
|
|
1808
|
-
const E = l -
|
|
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);
|
|
1809
1927
|
if (T === void 0) continue;
|
|
1810
|
-
const
|
|
1811
|
-
|
|
1928
|
+
const p = r - m + 1;
|
|
1929
|
+
u += T * p, d += p;
|
|
1812
1930
|
}
|
|
1813
|
-
let c =
|
|
1814
|
-
const h =
|
|
1931
|
+
let c = d > 0 ? u / d * s : 0;
|
|
1932
|
+
const h = Sr(n?.adjustments, l);
|
|
1815
1933
|
h?.absoluteVolume !== void 0 ? c = h.absoluteVolume : h?.factor !== void 0 && (c *= h.factor), a.push({ period: F(l, "hour"), volume: c });
|
|
1816
1934
|
}
|
|
1817
1935
|
return a;
|
|
1818
1936
|
}
|
|
1819
|
-
const
|
|
1820
|
-
function
|
|
1821
|
-
return `${
|
|
1937
|
+
const _r = "schedule_entry", Tr = "workstream";
|
|
1938
|
+
function ha(e) {
|
|
1939
|
+
return `${_r}:${e}`;
|
|
1822
1940
|
}
|
|
1823
|
-
function
|
|
1824
|
-
return `${
|
|
1941
|
+
function ga(e) {
|
|
1942
|
+
return `${Tr}:${e}`;
|
|
1825
1943
|
}
|
|
1826
|
-
const
|
|
1827
|
-
function
|
|
1828
|
-
const n = t === "day" ?
|
|
1944
|
+
const he = 36e5, L = 864e5;
|
|
1945
|
+
function Ir(e, t) {
|
|
1946
|
+
const n = t === "day" ? L : he, r = [];
|
|
1829
1947
|
for (let o = B(e.from, t); o < e.to; o += n) r.push(o);
|
|
1830
1948
|
return r;
|
|
1831
1949
|
}
|
|
1832
|
-
function
|
|
1950
|
+
function Qe(e) {
|
|
1951
|
+
const t = Math.max(1, Math.round((e.to - e.from) / L));
|
|
1952
|
+
return Array.from({ length: t }, (n, r) => e.from + r * L);
|
|
1953
|
+
}
|
|
1954
|
+
function se(e, t, n, r) {
|
|
1833
1955
|
const o = Math.min(t, r) - Math.max(e, n);
|
|
1834
1956
|
return o > 0 ? o / 1e3 : 0;
|
|
1835
1957
|
}
|
|
1836
|
-
function
|
|
1837
|
-
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();
|
|
1838
1960
|
for (const c of a)
|
|
1839
1961
|
if (!(l && c.userId && !l.has(c.userId))) {
|
|
1840
1962
|
for (const h of o) {
|
|
1841
|
-
const
|
|
1842
|
-
|
|
1963
|
+
const m = se(c.start, c.end, h, h + i);
|
|
1964
|
+
m > 0 && s.set(h, (s.get(h) ?? 0) + m);
|
|
1843
1965
|
}
|
|
1844
|
-
for (
|
|
1845
|
-
|
|
1966
|
+
for (const h of Qe(t))
|
|
1967
|
+
se(c.start, c.end, h, h + L) > 0 && u.add(`${c.userId}:${h}`);
|
|
1846
1968
|
}
|
|
1847
|
-
const
|
|
1848
|
-
|
|
1849
|
-
|
|
1969
|
+
const d = n.userIds ?? [
|
|
1970
|
+
.../* @__PURE__ */ new Set([
|
|
1971
|
+
...a.map((c) => c.userId),
|
|
1972
|
+
...(n.patterns ?? []).map((c) => c.userId)
|
|
1973
|
+
])
|
|
1974
|
+
].filter((c) => !!c);
|
|
1850
1975
|
if (n.patterns?.length)
|
|
1851
|
-
for (const c of
|
|
1976
|
+
for (const c of d) {
|
|
1852
1977
|
const h = n.teamIdsOf?.(c) ?? [];
|
|
1853
|
-
for (
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
L > 0 && s.set(I, (s.get(I) ?? 0) + L);
|
|
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;
|
|
1987
|
+
for (const C of o) {
|
|
1988
|
+
const M = se(O, k, C, C + i);
|
|
1989
|
+
M > 0 && s.set(C, (s.get(C) ?? 0) + M);
|
|
1866
1990
|
}
|
|
1867
1991
|
continue;
|
|
1868
1992
|
}
|
|
1869
|
-
const
|
|
1870
|
-
if (!
|
|
1871
|
-
const
|
|
1872
|
-
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);
|
|
1873
1997
|
}
|
|
1874
1998
|
}
|
|
1875
1999
|
return o.map((c) => ({ period: F(c, r), weight: s.get(c) ?? 0 }));
|
|
1876
2000
|
}
|
|
1877
|
-
function
|
|
1878
|
-
const t = new Date(e);
|
|
1879
|
-
return t.setHours(0, 0, 0, 0), t.getTime();
|
|
1880
|
-
}
|
|
1881
|
-
function Sr(e, t) {
|
|
2001
|
+
function wr(e, t) {
|
|
1882
2002
|
if (e <= 0 || !t.length) return [];
|
|
1883
2003
|
const n = t.reduce((r, o) => r + Math.max(0, o.weight), 0);
|
|
1884
2004
|
if (n <= 0) {
|
|
@@ -1887,20 +2007,20 @@ function Sr(e, t) {
|
|
|
1887
2007
|
}
|
|
1888
2008
|
return t.filter((r) => r.weight > 0).map((r) => ({ period: r.period, seconds: e * r.weight / n }));
|
|
1889
2009
|
}
|
|
1890
|
-
function
|
|
2010
|
+
function ba(e, t, n) {
|
|
1891
2011
|
const r = /* @__PURE__ */ new Map();
|
|
1892
2012
|
for (const o of e) {
|
|
1893
2013
|
const i = o.by ? t.filter((a) => n(a.period) < o.by) : t, s = i.length ? i : t;
|
|
1894
|
-
for (const a of
|
|
1895
|
-
const l = `${a.period}|${o.userId ?? ""}`,
|
|
1896
|
-
|
|
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 });
|
|
1897
2017
|
}
|
|
1898
2018
|
}
|
|
1899
2019
|
return [...r.values()].sort(
|
|
1900
2020
|
(o, i) => o.period.localeCompare(i.period) || (o.userId ?? "").localeCompare(i.userId ?? "")
|
|
1901
2021
|
);
|
|
1902
2022
|
}
|
|
1903
|
-
function
|
|
2023
|
+
function Mr(e) {
|
|
1904
2024
|
switch (e.kind) {
|
|
1905
2025
|
case "user":
|
|
1906
2026
|
return `user:${e.userId}`;
|
|
@@ -1910,7 +2030,7 @@ function _r(e) {
|
|
|
1910
2030
|
return "org";
|
|
1911
2031
|
}
|
|
1912
2032
|
}
|
|
1913
|
-
function
|
|
2033
|
+
function Aa(e) {
|
|
1914
2034
|
if (typeof e != "string") return;
|
|
1915
2035
|
const t = e.trim();
|
|
1916
2036
|
if (t === "org") return { kind: "org" };
|
|
@@ -1922,10 +2042,10 @@ function ma(e) {
|
|
|
1922
2042
|
if (r === "team") return { kind: "team", teamId: o };
|
|
1923
2043
|
}
|
|
1924
2044
|
}
|
|
1925
|
-
function
|
|
1926
|
-
return
|
|
2045
|
+
function kr(e) {
|
|
2046
|
+
return Mr(e);
|
|
1927
2047
|
}
|
|
1928
|
-
function
|
|
2048
|
+
function vr(e) {
|
|
1929
2049
|
switch (e.kind) {
|
|
1930
2050
|
case "personal":
|
|
1931
2051
|
return { kind: "user", userId: e.userId };
|
|
@@ -1935,14 +2055,14 @@ function wr(e) {
|
|
|
1935
2055
|
return { kind: "org" };
|
|
1936
2056
|
}
|
|
1937
2057
|
}
|
|
1938
|
-
const
|
|
1939
|
-
function
|
|
1940
|
-
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);
|
|
1941
2061
|
}
|
|
1942
|
-
function
|
|
1943
|
-
return
|
|
2062
|
+
function Sa(e) {
|
|
2063
|
+
return kr(e);
|
|
1944
2064
|
}
|
|
1945
|
-
function
|
|
2065
|
+
function _a(e, t) {
|
|
1946
2066
|
if (!t) return;
|
|
1947
2067
|
let n = e;
|
|
1948
2068
|
for (const r of t.split(".")) {
|
|
@@ -1951,24 +2071,24 @@ function ya(e, t) {
|
|
|
1951
2071
|
}
|
|
1952
2072
|
return n;
|
|
1953
2073
|
}
|
|
1954
|
-
function
|
|
2074
|
+
function Ta(e, t) {
|
|
1955
2075
|
return e.targets.find((n) => n.activityTypes.includes(t));
|
|
1956
2076
|
}
|
|
1957
|
-
function
|
|
2077
|
+
function Ia(e, t) {
|
|
1958
2078
|
if (t)
|
|
1959
2079
|
return e.targets.find((n) => n.id === t);
|
|
1960
2080
|
}
|
|
1961
|
-
function
|
|
2081
|
+
function Cr(e) {
|
|
1962
2082
|
return e?.kind === "assignment";
|
|
1963
2083
|
}
|
|
1964
|
-
function
|
|
2084
|
+
function wa(e) {
|
|
1965
2085
|
const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
|
|
1966
|
-
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";
|
|
1967
2087
|
}
|
|
1968
|
-
function
|
|
2088
|
+
function Ma(e) {
|
|
1969
2089
|
return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
|
|
1970
2090
|
}
|
|
1971
|
-
const
|
|
2091
|
+
const ka = [
|
|
1972
2092
|
{ name: "text", type: "string" },
|
|
1973
2093
|
{ name: "subject", type: "string" },
|
|
1974
2094
|
{ name: "from", type: "string" },
|
|
@@ -2008,7 +2128,7 @@ const _a = [
|
|
|
2008
2128
|
// `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
|
|
2009
2129
|
// the trigger filter runs — like contactId/companyId above.
|
|
2010
2130
|
{ name: "assigneeUserId", type: "string" }
|
|
2011
|
-
],
|
|
2131
|
+
], va = {
|
|
2012
2132
|
topics: [
|
|
2013
2133
|
{ name: "topicId", type: "string" },
|
|
2014
2134
|
{ name: "topic", type: "string" },
|
|
@@ -2022,58 +2142,58 @@ const _a = [
|
|
|
2022
2142
|
// Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
|
|
2023
2143
|
extract: []
|
|
2024
2144
|
};
|
|
2025
|
-
function
|
|
2145
|
+
function Nr(e) {
|
|
2026
2146
|
return `${e.type}:${e.id}`;
|
|
2027
2147
|
}
|
|
2028
|
-
const
|
|
2029
|
-
function
|
|
2030
|
-
return e?.type ===
|
|
2148
|
+
const xr = "interaction";
|
|
2149
|
+
function Rr(e) {
|
|
2150
|
+
return e?.type === xr ? e.id : void 0;
|
|
2031
2151
|
}
|
|
2032
|
-
const
|
|
2033
|
-
function
|
|
2152
|
+
const Dr = 64, $r = 8e3;
|
|
2153
|
+
function Oa(e) {
|
|
2034
2154
|
const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
|
|
2035
2155
|
if (!(!Number.isFinite(t) || t <= 0))
|
|
2036
|
-
return Math.min(Math.max(Math.round(t),
|
|
2156
|
+
return Math.min(Math.max(Math.round(t), Dr), $r);
|
|
2037
2157
|
}
|
|
2038
|
-
const
|
|
2039
|
-
function
|
|
2158
|
+
const Ca = { kind: "workflow", steps: [] };
|
|
2159
|
+
function Na(e) {
|
|
2040
2160
|
return e?.kind === "workflow" ? e.steps : [];
|
|
2041
2161
|
}
|
|
2042
|
-
function
|
|
2162
|
+
function xa(e) {
|
|
2043
2163
|
return e?.kind === "procedure" ? e.procedure : void 0;
|
|
2044
2164
|
}
|
|
2045
|
-
function
|
|
2165
|
+
function Lr(e) {
|
|
2046
2166
|
const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
|
|
2047
2167
|
return { total: n, rate: n ? t / n : 0 };
|
|
2048
2168
|
}
|
|
2049
|
-
const
|
|
2050
|
-
function
|
|
2051
|
-
const { total: t, rate: n } =
|
|
2052
|
-
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;
|
|
2053
2173
|
}
|
|
2054
|
-
const
|
|
2055
|
-
function
|
|
2056
|
-
return
|
|
2174
|
+
const Kr = ["done", "escalated", "failed", "stopped"];
|
|
2175
|
+
function Da(e) {
|
|
2176
|
+
return Kr.includes(e);
|
|
2057
2177
|
}
|
|
2058
|
-
function
|
|
2178
|
+
function Fr(e) {
|
|
2059
2179
|
return e === "waiting";
|
|
2060
2180
|
}
|
|
2061
|
-
function
|
|
2062
|
-
return e === "running" ||
|
|
2181
|
+
function $a(e) {
|
|
2182
|
+
return e === "running" || Fr(e);
|
|
2063
2183
|
}
|
|
2064
|
-
function
|
|
2184
|
+
function Rt(e) {
|
|
2065
2185
|
return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
|
|
2066
2186
|
}
|
|
2067
|
-
function
|
|
2068
|
-
const t =
|
|
2069
|
-
return t ?
|
|
2187
|
+
function La(e) {
|
|
2188
|
+
const t = Rt(e);
|
|
2189
|
+
return t ? Nr(t) : void 0;
|
|
2070
2190
|
}
|
|
2071
|
-
function
|
|
2072
|
-
return
|
|
2191
|
+
function Pa(e) {
|
|
2192
|
+
return Rr(Rt(e));
|
|
2073
2193
|
}
|
|
2074
|
-
function
|
|
2194
|
+
function Ua(e) {
|
|
2075
2195
|
const t = [], n = /* @__PURE__ */ new Map();
|
|
2076
|
-
for (const r of [...e].sort(
|
|
2196
|
+
for (const r of [...e].sort(Br)) {
|
|
2077
2197
|
const o = n.get(r.emoji);
|
|
2078
2198
|
if (o) {
|
|
2079
2199
|
o.push(r.actor);
|
|
@@ -2086,58 +2206,58 @@ function Ra(e) {
|
|
|
2086
2206
|
return { emoji: r, count: o.length, actors: o };
|
|
2087
2207
|
}).sort((r, o) => o.count - r.count || t.indexOf(r.emoji) - t.indexOf(o.emoji));
|
|
2088
2208
|
}
|
|
2089
|
-
const
|
|
2090
|
-
function
|
|
2209
|
+
const Br = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
|
|
2210
|
+
function Ka(e, t) {
|
|
2091
2211
|
return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
|
|
2092
2212
|
}
|
|
2093
|
-
const
|
|
2094
|
-
function
|
|
2213
|
+
const ge = 6e4, Hr = 36e5, j = 864e5, Dt = 800;
|
|
2214
|
+
function et(e, t) {
|
|
2095
2215
|
const n = Date.UTC(e, t + 1, 0);
|
|
2096
|
-
return n - new Date(n).getUTCDay() *
|
|
2216
|
+
return n - new Date(n).getUTCDay() * j + Hr;
|
|
2097
2217
|
}
|
|
2098
|
-
function
|
|
2218
|
+
function jr(e) {
|
|
2099
2219
|
const t = new Date(e).getUTCFullYear();
|
|
2100
|
-
return e >=
|
|
2220
|
+
return e >= et(t, 2) && e < et(t, 9);
|
|
2101
2221
|
}
|
|
2102
|
-
function
|
|
2103
|
-
const n = t.dst === "eu" &&
|
|
2104
|
-
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;
|
|
2105
2225
|
}
|
|
2106
|
-
function
|
|
2226
|
+
function Wr(e) {
|
|
2107
2227
|
return (e + 3) % 7 + 1;
|
|
2108
2228
|
}
|
|
2109
|
-
function
|
|
2110
|
-
const n =
|
|
2111
|
-
if (!t.days.includes(
|
|
2112
|
-
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;
|
|
2113
2233
|
return {
|
|
2114
|
-
open: i + t.fromMinutes *
|
|
2115
|
-
close: i + t.toMinutes *
|
|
2234
|
+
open: i + t.fromMinutes * ge - n,
|
|
2235
|
+
close: i + t.toMinutes * ge - n
|
|
2116
2236
|
};
|
|
2117
2237
|
}
|
|
2118
|
-
function
|
|
2119
|
-
const n =
|
|
2120
|
-
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;
|
|
2121
2241
|
}
|
|
2122
|
-
function
|
|
2242
|
+
function ye(e, t, n) {
|
|
2123
2243
|
if (t <= e) return 0;
|
|
2124
2244
|
if (!n) return t - e;
|
|
2125
2245
|
let r = 0, o = e;
|
|
2126
|
-
for (let i = 0; i <
|
|
2127
|
-
const s =
|
|
2246
|
+
for (let i = 0; i < Dt && o < t; i++) {
|
|
2247
|
+
const s = Lt(o, n);
|
|
2128
2248
|
if (s) {
|
|
2129
2249
|
const a = Math.max(o, s.open), l = Math.min(t, s.close);
|
|
2130
2250
|
l > a && (r += l - a);
|
|
2131
2251
|
}
|
|
2132
|
-
o =
|
|
2252
|
+
o = Pt(o, n);
|
|
2133
2253
|
}
|
|
2134
2254
|
return r;
|
|
2135
2255
|
}
|
|
2136
|
-
function
|
|
2256
|
+
function Me(e, t, n) {
|
|
2137
2257
|
if (!n) return e + t;
|
|
2138
2258
|
let r = t, o = e;
|
|
2139
|
-
for (let i = 0; i <
|
|
2140
|
-
const s =
|
|
2259
|
+
for (let i = 0; i < Dt; i++) {
|
|
2260
|
+
const s = Lt(o, n);
|
|
2141
2261
|
if (s) {
|
|
2142
2262
|
const a = Math.max(o, s.open);
|
|
2143
2263
|
if (s.close > a) {
|
|
@@ -2146,183 +2266,183 @@ function _e(e, t, n) {
|
|
|
2146
2266
|
r -= l;
|
|
2147
2267
|
}
|
|
2148
2268
|
}
|
|
2149
|
-
o =
|
|
2269
|
+
o = Pt(o, n);
|
|
2150
2270
|
}
|
|
2151
2271
|
return e + t;
|
|
2152
2272
|
}
|
|
2153
|
-
function
|
|
2273
|
+
function Fa(e) {
|
|
2154
2274
|
const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
|
|
2155
2275
|
return t ? Number(t[1]) * 60 + Number(t[2]) : null;
|
|
2156
2276
|
}
|
|
2157
|
-
const
|
|
2158
|
-
function
|
|
2159
|
-
return e === "snoozed" ?
|
|
2277
|
+
const be = 1, Ae = 2;
|
|
2278
|
+
function Ba(e) {
|
|
2279
|
+
return e === "snoozed" ? be : Ae;
|
|
2160
2280
|
}
|
|
2161
|
-
function
|
|
2281
|
+
function ke(e) {
|
|
2162
2282
|
const t = e.calendar;
|
|
2163
2283
|
return t && Array.isArray(t.days) ? t : null;
|
|
2164
2284
|
}
|
|
2165
|
-
const
|
|
2285
|
+
const Ha = [
|
|
2166
2286
|
"speed_of_answer",
|
|
2167
2287
|
"first_response",
|
|
2168
2288
|
"next_response",
|
|
2169
2289
|
"resolution",
|
|
2170
2290
|
"close"
|
|
2171
|
-
],
|
|
2172
|
-
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) {
|
|
2173
2293
|
return e.state === "running" || e.state === "paused";
|
|
2174
2294
|
}
|
|
2175
|
-
function
|
|
2176
|
-
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;
|
|
2177
2297
|
}
|
|
2178
|
-
function
|
|
2179
|
-
return
|
|
2298
|
+
function tt(e) {
|
|
2299
|
+
return W(e) ? { state: "void" } : null;
|
|
2180
2300
|
}
|
|
2181
|
-
function
|
|
2182
|
-
if (!
|
|
2301
|
+
function zr(e, t, n, r) {
|
|
2302
|
+
if (!W(e) || (e.pauseBits & t) !== 0) return null;
|
|
2183
2303
|
const o = e.pauseBits | t;
|
|
2184
|
-
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) };
|
|
2185
2305
|
}
|
|
2186
|
-
function
|
|
2187
|
-
if (!
|
|
2306
|
+
function Yr(e, t, n, r) {
|
|
2307
|
+
if (!W(e) || (e.pauseBits & t) === 0) return null;
|
|
2188
2308
|
const o = e.pauseBits & ~t;
|
|
2189
|
-
return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt:
|
|
2190
|
-
}
|
|
2191
|
-
function
|
|
2192
|
-
const i =
|
|
2193
|
-
|
|
2194
|
-
},
|
|
2195
|
-
for (const
|
|
2196
|
-
|
|
2197
|
-
}, c = (
|
|
2198
|
-
for (const
|
|
2199
|
-
|
|
2200
|
-
}, h = (
|
|
2201
|
-
for (const
|
|
2202
|
-
},
|
|
2203
|
-
for (const
|
|
2204
|
-
}, E = (
|
|
2205
|
-
const
|
|
2206
|
-
if (!
|
|
2207
|
-
const
|
|
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;
|
|
2208
2328
|
l.push({
|
|
2209
2329
|
op: "start",
|
|
2210
|
-
metric:
|
|
2211
|
-
attempt: E(
|
|
2212
|
-
startedAt:
|
|
2213
|
-
targetMs:
|
|
2214
|
-
dueAt:
|
|
2330
|
+
metric: p,
|
|
2331
|
+
attempt: E(p),
|
|
2332
|
+
startedAt: f,
|
|
2333
|
+
targetMs: N,
|
|
2334
|
+
dueAt: Me(f, N, i)
|
|
2215
2335
|
});
|
|
2216
2336
|
};
|
|
2217
2337
|
switch (e) {
|
|
2218
2338
|
case "apply": {
|
|
2219
|
-
for (const
|
|
2220
|
-
|
|
2221
|
-
for (const
|
|
2222
|
-
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;
|
|
2223
2343
|
a.some(
|
|
2224
|
-
(
|
|
2225
|
-
) || T(
|
|
2344
|
+
(S) => S.metric === p.metric && S.profileId === o.id
|
|
2345
|
+
) || T(p.metric, s);
|
|
2226
2346
|
}
|
|
2227
2347
|
break;
|
|
2228
2348
|
}
|
|
2229
2349
|
case "answered":
|
|
2230
|
-
|
|
2350
|
+
d("speed_of_answer");
|
|
2231
2351
|
break;
|
|
2232
2352
|
case "outbound": {
|
|
2233
|
-
|
|
2353
|
+
d("first_response"), d("next_response"), o.pauseOn.includes("waiting_for_customer") && h(Ae);
|
|
2234
2354
|
break;
|
|
2235
2355
|
}
|
|
2236
2356
|
case "inbound": {
|
|
2237
|
-
|
|
2357
|
+
m(Ae), !g("first_response") && !g("next_response") && T("next_response", s);
|
|
2238
2358
|
break;
|
|
2239
2359
|
}
|
|
2240
2360
|
case "resolved":
|
|
2241
|
-
|
|
2361
|
+
d("resolution");
|
|
2242
2362
|
break;
|
|
2243
2363
|
case "closed":
|
|
2244
|
-
|
|
2364
|
+
d("close"), d("resolution"), c(Ut);
|
|
2245
2365
|
break;
|
|
2246
2366
|
case "reopened":
|
|
2247
|
-
|
|
2367
|
+
g("resolution") || T("resolution", s), g("close") || T("close", s);
|
|
2248
2368
|
break;
|
|
2249
2369
|
case "snoozed":
|
|
2250
|
-
o.pauseOn.includes("snoozed") && h(
|
|
2370
|
+
o.pauseOn.includes("snoozed") && h(be);
|
|
2251
2371
|
break;
|
|
2252
2372
|
case "unsnoozed":
|
|
2253
|
-
|
|
2373
|
+
m(be);
|
|
2254
2374
|
break;
|
|
2255
2375
|
case "discarded":
|
|
2256
|
-
c(
|
|
2376
|
+
c(Vr);
|
|
2257
2377
|
break;
|
|
2258
2378
|
}
|
|
2259
2379
|
return l;
|
|
2260
2380
|
}
|
|
2261
|
-
function
|
|
2381
|
+
function qr(e) {
|
|
2262
2382
|
return e.state === "running" || e.state === "paused";
|
|
2263
2383
|
}
|
|
2264
|
-
function
|
|
2265
|
-
const n =
|
|
2266
|
-
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);
|
|
2267
2387
|
}
|
|
2268
|
-
function
|
|
2269
|
-
return e.state === "paused" ?
|
|
2388
|
+
function Ga(e, t) {
|
|
2389
|
+
return e.state === "paused" ? Me(t, e.remainingMs, ke(e)) : e.dueAt;
|
|
2270
2390
|
}
|
|
2271
|
-
function
|
|
2272
|
-
const n = e.filter(
|
|
2391
|
+
function Va(e, t) {
|
|
2392
|
+
const n = e.filter(qr);
|
|
2273
2393
|
if (!n.length) return;
|
|
2274
2394
|
const r = n.filter((i) => i.state === "running");
|
|
2275
2395
|
return (r.length ? r : n).reduce(
|
|
2276
|
-
(i, s) =>
|
|
2396
|
+
(i, s) => Ee(s, t) < Ee(i, t) ? s : i
|
|
2277
2397
|
);
|
|
2278
2398
|
}
|
|
2279
|
-
function
|
|
2399
|
+
function Xa(e, t) {
|
|
2280
2400
|
if (e.state === "missed") return "breached";
|
|
2281
2401
|
if (e.state === "hit") return "met";
|
|
2282
2402
|
if (e.state === "paused") return "paused";
|
|
2283
2403
|
if (e.state === "void") return "met";
|
|
2284
|
-
const n =
|
|
2404
|
+
const n = Ee(e, t);
|
|
2285
2405
|
return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
|
|
2286
2406
|
}
|
|
2287
|
-
function
|
|
2407
|
+
function za(e) {
|
|
2288
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);
|
|
2289
2409
|
return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
|
|
2290
2410
|
}
|
|
2291
|
-
const
|
|
2292
|
-
function
|
|
2293
|
-
return `${
|
|
2411
|
+
const Jr = "strategy_item";
|
|
2412
|
+
function Kt(e) {
|
|
2413
|
+
return `${Jr}:${e}`;
|
|
2294
2414
|
}
|
|
2295
|
-
function
|
|
2296
|
-
const n = /* @__PURE__ */ new Set([
|
|
2415
|
+
function Ya(e, t = 25) {
|
|
2416
|
+
const n = /* @__PURE__ */ new Set([Kt(e.id)]);
|
|
2297
2417
|
for (const r of e.ancestorKeys ?? []) n.add(r);
|
|
2298
2418
|
return Array.from(n).slice(0, t);
|
|
2299
2419
|
}
|
|
2300
|
-
function
|
|
2301
|
-
return e ? [...e.ancestorKeys ?? [],
|
|
2420
|
+
function qa(e) {
|
|
2421
|
+
return e ? [...e.ancestorKeys ?? [], Kt(e.id)] : [];
|
|
2302
2422
|
}
|
|
2303
2423
|
const Q = [
|
|
2304
2424
|
{ key: "area", label: "level_area", order: 10, measurable: !1, icon: "compass" },
|
|
2305
2425
|
{ key: "objective", label: "level_objective", order: 20, measurable: !0, icon: "target" },
|
|
2306
2426
|
{ key: "key_result", label: "level_key_result", order: 30, measurable: !0, icon: "gauge" }
|
|
2307
|
-
],
|
|
2308
|
-
function
|
|
2427
|
+
], Zr = 999, Qr = 7;
|
|
2428
|
+
function eo(e, t = Q) {
|
|
2309
2429
|
return t.find((n) => n.key === e);
|
|
2310
2430
|
}
|
|
2311
|
-
function
|
|
2312
|
-
return
|
|
2431
|
+
function Se(e, t = Q) {
|
|
2432
|
+
return eo(e, t)?.order ?? Zr;
|
|
2313
2433
|
}
|
|
2314
|
-
function
|
|
2315
|
-
return
|
|
2434
|
+
function Ja(e, t, n = Q) {
|
|
2435
|
+
return Se(t, n) <= Se(e, n);
|
|
2316
2436
|
}
|
|
2317
|
-
function
|
|
2318
|
-
const n =
|
|
2437
|
+
function Za(e, t = Q) {
|
|
2438
|
+
const n = Se(e, t);
|
|
2319
2439
|
return t.filter((o) => o.order > n).sort((o, i) => o.order - i.order)[0]?.key ?? e;
|
|
2320
2440
|
}
|
|
2321
|
-
function
|
|
2441
|
+
function Qa(e) {
|
|
2322
2442
|
const t = e.trim().toLowerCase();
|
|
2323
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;
|
|
2324
2444
|
}
|
|
2325
|
-
const
|
|
2445
|
+
const _e = {
|
|
2326
2446
|
pending: "open",
|
|
2327
2447
|
on_track: "open",
|
|
2328
2448
|
at_risk: "open",
|
|
@@ -2331,74 +2451,74 @@ const Ae = {
|
|
|
2331
2451
|
achieved: "closed",
|
|
2332
2452
|
missed: "closed"
|
|
2333
2453
|
};
|
|
2334
|
-
function
|
|
2335
|
-
return
|
|
2454
|
+
function ec(e) {
|
|
2455
|
+
return _e[e] ?? "open";
|
|
2336
2456
|
}
|
|
2337
|
-
function
|
|
2338
|
-
return Object.keys(
|
|
2339
|
-
(t) => e.includes(
|
|
2457
|
+
function tc(e) {
|
|
2458
|
+
return Object.keys(_e).filter(
|
|
2459
|
+
(t) => e.includes(_e[t])
|
|
2340
2460
|
);
|
|
2341
2461
|
}
|
|
2342
|
-
const
|
|
2343
|
-
function
|
|
2462
|
+
const to = 864e5, ee = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
|
|
2463
|
+
function nc(e, t) {
|
|
2344
2464
|
const { direction: n } = e, r = e.startValue ?? 0, o = e.targetValue ?? 0;
|
|
2345
2465
|
if (!Number.isFinite(t)) return 0;
|
|
2346
2466
|
const i = n === "down" ? t <= o : t >= o, s = o - r;
|
|
2347
2467
|
return (n === "down" ? s < 0 : s > 0) ? ee((t - r) / s) : i ? 1 : 0;
|
|
2348
2468
|
}
|
|
2349
|
-
function
|
|
2469
|
+
function rc(e, t) {
|
|
2350
2470
|
const { startDate: n, targetDate: r } = e;
|
|
2351
2471
|
if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
|
|
2352
2472
|
return ee((t - n) / (r - n));
|
|
2353
2473
|
}
|
|
2354
|
-
const
|
|
2355
|
-
function
|
|
2474
|
+
const no = 0.1, ro = 0.25;
|
|
2475
|
+
function oc(e, t) {
|
|
2356
2476
|
if (typeof e != "number" || typeof t != "number") return;
|
|
2357
2477
|
if (e >= 1) return "achieved";
|
|
2358
2478
|
const n = t - e;
|
|
2359
|
-
return n >=
|
|
2479
|
+
return n >= ro ? "off_track" : n >= no ? "at_risk" : "on_track";
|
|
2360
2480
|
}
|
|
2361
|
-
function
|
|
2481
|
+
function ic(e, t) {
|
|
2362
2482
|
if (t)
|
|
2363
2483
|
return ee(e / t);
|
|
2364
2484
|
}
|
|
2365
|
-
function
|
|
2485
|
+
function sc(e) {
|
|
2366
2486
|
const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
|
|
2367
2487
|
if (t.length)
|
|
2368
2488
|
return ee(t.reduce((n, r) => n + r, 0) / t.length);
|
|
2369
2489
|
}
|
|
2370
|
-
function
|
|
2490
|
+
function ac(e, t) {
|
|
2371
2491
|
const n = e.lastCheckInAt ?? e.createdAt;
|
|
2372
2492
|
if (typeof n != "number") return 0;
|
|
2373
|
-
const r = (e.checkInEveryDays ??
|
|
2493
|
+
const r = (e.checkInEveryDays ?? Qr) * to, o = t - n - r;
|
|
2374
2494
|
return o > 0 ? o : 0;
|
|
2375
2495
|
}
|
|
2376
|
-
function
|
|
2496
|
+
function cc(e) {
|
|
2377
2497
|
return e.targetDate ?? Number.MAX_SAFE_INTEGER;
|
|
2378
2498
|
}
|
|
2379
|
-
function
|
|
2499
|
+
function lc(e, t) {
|
|
2380
2500
|
const n = e.accumulatedSeconds || 0;
|
|
2381
2501
|
return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
|
|
2382
2502
|
}
|
|
2383
|
-
function
|
|
2503
|
+
function uc(e, t) {
|
|
2384
2504
|
const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
|
|
2385
2505
|
if (!t || t === "exact") return n * 60;
|
|
2386
2506
|
const r = Number(t);
|
|
2387
2507
|
return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
|
|
2388
2508
|
}
|
|
2389
|
-
function
|
|
2509
|
+
function dc(e) {
|
|
2390
2510
|
const t = Math.max(0, Math.round(e / 60));
|
|
2391
2511
|
return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
|
|
2392
2512
|
}
|
|
2393
|
-
function
|
|
2513
|
+
function fc(e) {
|
|
2394
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);
|
|
2395
2515
|
return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
|
|
2396
2516
|
}
|
|
2397
|
-
function
|
|
2517
|
+
function oo(e) {
|
|
2398
2518
|
return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
|
|
2399
2519
|
}
|
|
2400
|
-
function
|
|
2401
|
-
const n =
|
|
2520
|
+
function pc(e, t) {
|
|
2521
|
+
const n = oo(e) || "werksoort", r = new Set(t);
|
|
2402
2522
|
if (!r.has(n)) return n;
|
|
2403
2523
|
for (let o = 2; o < 500; o++) {
|
|
2404
2524
|
const i = `${n}-${o}`;
|
|
@@ -2406,82 +2526,82 @@ function cc(e, t) {
|
|
|
2406
2526
|
}
|
|
2407
2527
|
return `${n}-${r.size + 1}`;
|
|
2408
2528
|
}
|
|
2409
|
-
function
|
|
2529
|
+
function mc(e, t) {
|
|
2410
2530
|
const n = e.ownerScope;
|
|
2411
2531
|
return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
|
|
2412
2532
|
}
|
|
2413
|
-
function
|
|
2414
|
-
return e.filter((t) => !t.archived).sort(
|
|
2533
|
+
function hc(e) {
|
|
2534
|
+
return e.filter((t) => !t.archived).sort(io);
|
|
2415
2535
|
}
|
|
2416
|
-
function
|
|
2536
|
+
function io(e, t) {
|
|
2417
2537
|
const n = (e.order ?? 0) - (t.order ?? 0);
|
|
2418
2538
|
return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
|
|
2419
2539
|
}
|
|
2420
|
-
const
|
|
2421
|
-
function
|
|
2540
|
+
const so = 20, ao = 20, ae = 300;
|
|
2541
|
+
function $(e) {
|
|
2422
2542
|
return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
|
|
2423
2543
|
}
|
|
2424
|
-
function
|
|
2544
|
+
function co(e) {
|
|
2425
2545
|
const t = e.replace(/\s+/g, " ").trim();
|
|
2426
|
-
if (t.length <=
|
|
2427
|
-
const n = t.slice(0,
|
|
2428
|
-
return r >
|
|
2429
|
-
}
|
|
2430
|
-
function
|
|
2431
|
-
const n =
|
|
2432
|
-
if (!r || (e.examples ?? []).some((s) =>
|
|
2433
|
-
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);
|
|
2434
2554
|
if (i >= 0) {
|
|
2435
2555
|
if (o[i].corrected || !t.corrected) return null;
|
|
2436
2556
|
const s = [...o];
|
|
2437
|
-
return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt },
|
|
2557
|
+
return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, nt(s);
|
|
2438
2558
|
}
|
|
2439
|
-
return
|
|
2559
|
+
return nt([{ ...t, text: n }, ...o]).slice(0, ao);
|
|
2440
2560
|
}
|
|
2441
|
-
function
|
|
2561
|
+
function nt(e) {
|
|
2442
2562
|
return [...e].sort(
|
|
2443
2563
|
(t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
|
|
2444
2564
|
);
|
|
2445
2565
|
}
|
|
2446
|
-
function
|
|
2447
|
-
const n =
|
|
2448
|
-
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) };
|
|
2449
2569
|
}
|
|
2450
|
-
function
|
|
2451
|
-
const n =
|
|
2452
|
-
return (e.exampleCandidates ?? []).filter((r) =>
|
|
2570
|
+
function lo(e, t) {
|
|
2571
|
+
const n = $(t);
|
|
2572
|
+
return (e.exampleCandidates ?? []).filter((r) => $(r.text) !== n);
|
|
2453
2573
|
}
|
|
2454
|
-
function
|
|
2574
|
+
function uo(e, t) {
|
|
2455
2575
|
const n = e.ownerScope;
|
|
2456
2576
|
return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
|
|
2457
2577
|
}
|
|
2458
|
-
function
|
|
2459
|
-
return e.filter((n) =>
|
|
2578
|
+
function bc(e, t) {
|
|
2579
|
+
return e.filter((n) => uo(n, t));
|
|
2460
2580
|
}
|
|
2461
|
-
function
|
|
2581
|
+
function Ac(e) {
|
|
2462
2582
|
return e.type === "agent";
|
|
2463
2583
|
}
|
|
2464
|
-
const
|
|
2465
|
-
function
|
|
2584
|
+
const Ec = "WORK_COMMENT_ADDED", Sc = "WORK_ITEM_ASSIGNED", _c = "WORK_ITEM_STATUS_CHANGED";
|
|
2585
|
+
function fo(e, t) {
|
|
2466
2586
|
const n = (r) => {
|
|
2467
2587
|
const o = new Date(r);
|
|
2468
2588
|
return o.setHours(0, 0, 0, 0), o.getTime();
|
|
2469
2589
|
};
|
|
2470
|
-
return Math.round((n(e) - n(t)) /
|
|
2590
|
+
return Math.round((n(e) - n(t)) / Cn);
|
|
2471
2591
|
}
|
|
2472
|
-
function
|
|
2473
|
-
if (e.closedAt != null) return { score:
|
|
2592
|
+
function Tc(e, t) {
|
|
2593
|
+
if (e.closedAt != null) return { score: D, reasons: [] };
|
|
2474
2594
|
const n = t.remindersById?.[e.id];
|
|
2475
|
-
if (n && n.remindAt > t.now) return { score:
|
|
2595
|
+
if (n && n.remindAt > t.now) return { score: D, reasons: [] };
|
|
2476
2596
|
let r = 0;
|
|
2477
2597
|
const o = [], i = e.priority ?? "normal";
|
|
2478
|
-
if (
|
|
2479
|
-
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);
|
|
2480
2600
|
s < 0 ? (r += 35, o.push("overdue")) : s === 0 && (r += 20, o.push("due-today"));
|
|
2481
2601
|
}
|
|
2482
2602
|
return e.source?.initiator === "system" && e.source.systemReason && (r += 15, o.push(`auto:${e.source.systemReason}`)), { score: r, reasons: o };
|
|
2483
2603
|
}
|
|
2484
|
-
const
|
|
2604
|
+
const ve = [
|
|
2485
2605
|
{ key: "task", label: "type_task" },
|
|
2486
2606
|
{ key: "bug", label: "type_bug" },
|
|
2487
2607
|
{ key: "story", label: "type_story" },
|
|
@@ -2489,35 +2609,35 @@ const we = [
|
|
|
2489
2609
|
{ key: "subtask", label: "type_subtask" },
|
|
2490
2610
|
{ key: "case", label: "type_case" },
|
|
2491
2611
|
{ key: "deal", label: "type_deal" }
|
|
2492
|
-
],
|
|
2493
|
-
function
|
|
2494
|
-
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;
|
|
2495
2615
|
}
|
|
2496
|
-
function
|
|
2616
|
+
function Mc(e, t) {
|
|
2497
2617
|
return t.find((n) => n.key === e);
|
|
2498
2618
|
}
|
|
2499
|
-
function
|
|
2619
|
+
function kc(e) {
|
|
2500
2620
|
const t = e.trim().toLowerCase();
|
|
2501
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;
|
|
2502
2622
|
}
|
|
2503
|
-
function
|
|
2504
|
-
return e.map((t) =>
|
|
2623
|
+
function vc(...e) {
|
|
2624
|
+
return e.map((t) => ve.find((n) => n.key === t)).filter((t) => !!t);
|
|
2505
2625
|
}
|
|
2506
|
-
const
|
|
2507
|
-
function
|
|
2508
|
-
return `${
|
|
2626
|
+
const po = "work_item", mo = "work_project", ho = "work_activity", Oc = "work_cycle";
|
|
2627
|
+
function go(e) {
|
|
2628
|
+
return `${po}:${e}`;
|
|
2509
2629
|
}
|
|
2510
|
-
function
|
|
2511
|
-
return `${
|
|
2630
|
+
function Ft(e) {
|
|
2631
|
+
return `${mo}:${e}`;
|
|
2512
2632
|
}
|
|
2513
|
-
function
|
|
2514
|
-
return `${
|
|
2633
|
+
function Cc(e) {
|
|
2634
|
+
return `${ho}:${e}`;
|
|
2515
2635
|
}
|
|
2516
|
-
function
|
|
2636
|
+
function Nc(e, t, n) {
|
|
2517
2637
|
const r = `${e}-${t}`;
|
|
2518
2638
|
return n ? `${r}-${n}` : r;
|
|
2519
2639
|
}
|
|
2520
|
-
function
|
|
2640
|
+
function xc(e) {
|
|
2521
2641
|
const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
|
|
2522
2642
|
return t ? {
|
|
2523
2643
|
projectKey: t[1].toUpperCase(),
|
|
@@ -2525,52 +2645,52 @@ function kc(e) {
|
|
|
2525
2645
|
...t[3] ? { subSequence: Number(t[3]) } : {}
|
|
2526
2646
|
} : null;
|
|
2527
2647
|
}
|
|
2528
|
-
function
|
|
2648
|
+
function Rc(e) {
|
|
2529
2649
|
return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
|
|
2530
2650
|
}
|
|
2531
|
-
function
|
|
2532
|
-
const n = /* @__PURE__ */ new Set([
|
|
2533
|
-
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));
|
|
2534
2654
|
for (const r of e.ancestorKeys ?? []) n.add(r);
|
|
2535
2655
|
for (const r of e.partyKeys ?? []) n.add(r);
|
|
2536
2656
|
return Array.from(n).slice(0, t);
|
|
2537
2657
|
}
|
|
2538
|
-
function
|
|
2539
|
-
return [
|
|
2658
|
+
function $c(e) {
|
|
2659
|
+
return [Ft(e.id)];
|
|
2540
2660
|
}
|
|
2541
|
-
const
|
|
2661
|
+
const Oe = [
|
|
2542
2662
|
{ key: "open", label: "status_open", category: "todo", order: 0 },
|
|
2543
2663
|
{ key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
|
|
2544
2664
|
{ key: "done", label: "status_done", category: "done", order: 2 },
|
|
2545
2665
|
{ key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
|
|
2546
|
-
],
|
|
2547
|
-
function
|
|
2548
|
-
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;
|
|
2549
2669
|
}
|
|
2550
|
-
function
|
|
2670
|
+
function bo(e, t) {
|
|
2551
2671
|
return t.find((n) => n.key === e)?.category ?? "todo";
|
|
2552
2672
|
}
|
|
2553
|
-
function
|
|
2673
|
+
function Lc(e, t) {
|
|
2554
2674
|
return t.find((n) => n.key === e);
|
|
2555
2675
|
}
|
|
2556
|
-
function
|
|
2557
|
-
const t =
|
|
2558
|
-
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;
|
|
2559
2679
|
}
|
|
2560
|
-
function
|
|
2680
|
+
function Ao(e) {
|
|
2561
2681
|
return [...e].sort((t, n) => {
|
|
2562
2682
|
const r = (t.order ?? 0) - (n.order ?? 0);
|
|
2563
2683
|
return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
|
|
2564
2684
|
});
|
|
2565
2685
|
}
|
|
2566
|
-
function
|
|
2567
|
-
return
|
|
2686
|
+
function Uc(e, t) {
|
|
2687
|
+
return bo(e, t) === "done";
|
|
2568
2688
|
}
|
|
2569
|
-
function
|
|
2689
|
+
function Eo(e) {
|
|
2570
2690
|
return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
|
|
2571
2691
|
}
|
|
2572
|
-
function
|
|
2573
|
-
const n =
|
|
2692
|
+
function Kc(e, t) {
|
|
2693
|
+
const n = Eo(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Bt]);
|
|
2574
2694
|
if (!r.has(n)) return n;
|
|
2575
2695
|
for (let o = 2; o < 500; o++) {
|
|
2576
2696
|
const i = `${n}-${o}`;
|
|
@@ -2578,7 +2698,7 @@ function Dc(e, t) {
|
|
|
2578
2698
|
}
|
|
2579
2699
|
return `${n}-${r.size + 1}`;
|
|
2580
2700
|
}
|
|
2581
|
-
function
|
|
2701
|
+
function Fc(e) {
|
|
2582
2702
|
const t = [];
|
|
2583
2703
|
if (!e.length) return [{ index: -1, reason: "empty" }];
|
|
2584
2704
|
const n = /* @__PURE__ */ new Set();
|
|
@@ -2587,16 +2707,16 @@ function $c(e) {
|
|
|
2587
2707
|
t.push({ index: o, reason: "missing_key" });
|
|
2588
2708
|
return;
|
|
2589
2709
|
}
|
|
2590
|
-
|
|
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);
|
|
2591
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;
|
|
2592
2712
|
}
|
|
2593
|
-
function
|
|
2713
|
+
function Bc(e) {
|
|
2594
2714
|
return e.startDate ?? Number.MAX_SAFE_INTEGER;
|
|
2595
2715
|
}
|
|
2596
|
-
function
|
|
2716
|
+
function Hc(e) {
|
|
2597
2717
|
return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
|
|
2598
2718
|
}
|
|
2599
|
-
const
|
|
2719
|
+
const So = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), _o = /* @__PURE__ */ new Set([
|
|
2600
2720
|
"text/plain",
|
|
2601
2721
|
"text/markdown",
|
|
2602
2722
|
"text/csv",
|
|
@@ -2605,67 +2725,67 @@ const yo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
|
|
|
2605
2725
|
"application/xml",
|
|
2606
2726
|
"text/xml"
|
|
2607
2727
|
]);
|
|
2608
|
-
function
|
|
2728
|
+
function To(e) {
|
|
2609
2729
|
const t = (e ?? "").trim().toLowerCase().split(";")[0];
|
|
2610
|
-
return t ?
|
|
2730
|
+
return t ? So.has(t) ? "image" : t === "application/pdf" ? "pdf" : _o.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
|
|
2611
2731
|
}
|
|
2612
|
-
const U = 1024 * 1024,
|
|
2732
|
+
const U = 1024 * 1024, Io = {
|
|
2613
2733
|
image: 5 * U,
|
|
2614
2734
|
pdf: 20 * U,
|
|
2615
2735
|
text: 1 * U,
|
|
2616
2736
|
audio: 20 * U
|
|
2617
|
-
},
|
|
2618
|
-
function
|
|
2619
|
-
const n =
|
|
2620
|
-
return n === "unsupported" ? "unsupported" : t >
|
|
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;
|
|
2621
2741
|
}
|
|
2622
|
-
function
|
|
2742
|
+
function Vc(e) {
|
|
2623
2743
|
return e.access !== "read" && e.effect !== "internal";
|
|
2624
2744
|
}
|
|
2625
|
-
function
|
|
2745
|
+
function wo(e) {
|
|
2626
2746
|
return `${e.kind}:${e.id || e.url || e.title}`;
|
|
2627
2747
|
}
|
|
2628
|
-
function
|
|
2748
|
+
function Xc(e, t = []) {
|
|
2629
2749
|
const n = new Set(t), r = [], o = [];
|
|
2630
2750
|
for (const i of e) {
|
|
2631
|
-
const s =
|
|
2751
|
+
const s = wo(i);
|
|
2632
2752
|
n.has(s) || (n.add(s), r.push(i), o.push(s));
|
|
2633
2753
|
}
|
|
2634
2754
|
return { sources: r, keys: o };
|
|
2635
2755
|
}
|
|
2636
|
-
const
|
|
2637
|
-
function
|
|
2756
|
+
const zc = "assist-source", Yc = ["blocking", "due", "open"];
|
|
2757
|
+
function qc(e, t) {
|
|
2638
2758
|
const [n, r] = (e.subjectKey ?? "").split(":");
|
|
2639
2759
|
return n === t && r ? r : void 0;
|
|
2640
2760
|
}
|
|
2641
|
-
const
|
|
2642
|
-
function
|
|
2643
|
-
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);
|
|
2644
2764
|
}
|
|
2645
|
-
function
|
|
2765
|
+
function Zc(e) {
|
|
2646
2766
|
return e.sessions.filter(
|
|
2647
2767
|
(t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
|
|
2648
2768
|
);
|
|
2649
2769
|
}
|
|
2650
|
-
function
|
|
2770
|
+
function Qc(e) {
|
|
2651
2771
|
return e.sessions.filter(
|
|
2652
2772
|
(t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
|
|
2653
2773
|
);
|
|
2654
2774
|
}
|
|
2655
|
-
function
|
|
2775
|
+
function el(e) {
|
|
2656
2776
|
return e.sessions.some(
|
|
2657
2777
|
(n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
|
|
2658
2778
|
) ? { admit: !1, reason: "busy" } : { admit: !0 };
|
|
2659
2779
|
}
|
|
2660
|
-
function
|
|
2661
|
-
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]));
|
|
2662
2782
|
if (!e.extraIntents || e.extraIntents.length === 0) return o;
|
|
2663
2783
|
const i = new Set(o.map((s) => s.intent));
|
|
2664
2784
|
for (const s of e.extraIntents)
|
|
2665
2785
|
i.has(s.intent) || (o.push(s), i.add(s.intent));
|
|
2666
2786
|
return o;
|
|
2667
2787
|
}
|
|
2668
|
-
function
|
|
2788
|
+
function ko(e, t) {
|
|
2669
2789
|
const n = {};
|
|
2670
2790
|
for (const r of e.intents) {
|
|
2671
2791
|
if (!r.togglable) continue;
|
|
@@ -2674,46 +2794,46 @@ function To(e, t) {
|
|
|
2674
2794
|
}
|
|
2675
2795
|
return n;
|
|
2676
2796
|
}
|
|
2677
|
-
function
|
|
2678
|
-
const n =
|
|
2797
|
+
function tl(e, t) {
|
|
2798
|
+
const n = ko(e, t);
|
|
2679
2799
|
return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
|
|
2680
2800
|
}
|
|
2681
|
-
function
|
|
2801
|
+
function vo(e, t) {
|
|
2682
2802
|
return t ? {
|
|
2683
2803
|
intent: t.intent ?? e.intent,
|
|
2684
2804
|
targetSchemes: t.targetSchemes ?? e.targetSchemes,
|
|
2685
2805
|
transport: t.transport ?? e.transport
|
|
2686
2806
|
} : e;
|
|
2687
2807
|
}
|
|
2688
|
-
function
|
|
2808
|
+
function nl(e, t) {
|
|
2689
2809
|
const n = [];
|
|
2690
2810
|
for (const r of e) {
|
|
2691
2811
|
if (!r.enabled) continue;
|
|
2692
2812
|
const o = t[r.providerId];
|
|
2693
2813
|
if (o)
|
|
2694
|
-
for (const i of
|
|
2814
|
+
for (const i of Mo(r, o))
|
|
2695
2815
|
n.push({ channel: r, description: o, capability: i });
|
|
2696
2816
|
}
|
|
2697
2817
|
return n;
|
|
2698
2818
|
}
|
|
2699
|
-
function
|
|
2819
|
+
function rl(e, t) {
|
|
2700
2820
|
return t.filter((n) => n.capability.intent === e);
|
|
2701
2821
|
}
|
|
2702
|
-
function
|
|
2822
|
+
function Oo(e, t) {
|
|
2703
2823
|
return t.filter((n) => n.capability.targetSchemes.includes(e));
|
|
2704
2824
|
}
|
|
2705
|
-
function
|
|
2706
|
-
return
|
|
2825
|
+
function ol(e, t) {
|
|
2826
|
+
return Oo(e.scheme, t);
|
|
2707
2827
|
}
|
|
2708
|
-
function
|
|
2828
|
+
function il(e, t, n) {
|
|
2709
2829
|
const r = [];
|
|
2710
2830
|
for (const o of e)
|
|
2711
2831
|
for (const i of n)
|
|
2712
2832
|
i.capability.intent === t && i.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: i, endpoint: o });
|
|
2713
2833
|
return r;
|
|
2714
2834
|
}
|
|
2715
|
-
var
|
|
2716
|
-
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 = {
|
|
2717
2837
|
mailto: "mail",
|
|
2718
2838
|
sip: "tel",
|
|
2719
2839
|
tel: "tel",
|
|
@@ -2734,10 +2854,10 @@ const ko = {
|
|
|
2734
2854
|
id: "note",
|
|
2735
2855
|
custom: "note"
|
|
2736
2856
|
};
|
|
2737
|
-
function
|
|
2738
|
-
return e ?
|
|
2857
|
+
function sl(e) {
|
|
2858
|
+
return e ? No[e] ?? "note" : "note";
|
|
2739
2859
|
}
|
|
2740
|
-
const
|
|
2860
|
+
const al = "message_window", cl = "message_templates", ll = {
|
|
2741
2861
|
// E-mail
|
|
2742
2862
|
FROM: "from",
|
|
2743
2863
|
TO: "to",
|
|
@@ -2754,12 +2874,12 @@ const nl = "message_window", rl = "message_templates", ol = {
|
|
|
2754
2874
|
// Voice/conference
|
|
2755
2875
|
HOST: "host",
|
|
2756
2876
|
PARTICIPANT: "participant"
|
|
2757
|
-
},
|
|
2877
|
+
}, ul = (e, t) => ({ intent: e, ...t }), dl = "folder_management", fl = "remote_search", pl = "message_reactions", ml = {
|
|
2758
2878
|
ok: !1,
|
|
2759
2879
|
code: "UNSUPPORTED",
|
|
2760
2880
|
message: "Provider does not support this op"
|
|
2761
|
-
},
|
|
2762
|
-
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) {
|
|
2763
2883
|
return {
|
|
2764
2884
|
op: e,
|
|
2765
2885
|
kinds: t,
|
|
@@ -2769,24 +2889,24 @@ function m(e, t, n, r, o, i) {
|
|
|
2769
2889
|
visible: i.visible
|
|
2770
2890
|
};
|
|
2771
2891
|
}
|
|
2772
|
-
const K = { undoable: !1, visible: !0 },
|
|
2773
|
-
|
|
2892
|
+
const K = { undoable: !1, visible: !0 }, _ = { undoable: !0, visible: !0 }, it = { undoable: !1, visible: !0 }, J = { undoable: !1, visible: !1 }, xo = [
|
|
2893
|
+
y(
|
|
2774
2894
|
"pdf.goToPage",
|
|
2775
2895
|
["pdf"],
|
|
2776
2896
|
"Scroll the viewer to a page.",
|
|
2777
|
-
{ page:
|
|
2897
|
+
{ page: b("1-based page number.") },
|
|
2778
2898
|
["page"],
|
|
2779
2899
|
K
|
|
2780
2900
|
),
|
|
2781
|
-
|
|
2901
|
+
y(
|
|
2782
2902
|
"pdf.search",
|
|
2783
2903
|
["pdf"],
|
|
2784
2904
|
"Search the document and highlight the matches, as the find bar does.",
|
|
2785
|
-
{ query:
|
|
2905
|
+
{ query: A("Text to find."), next: z("Jump to the next match instead of the first.") },
|
|
2786
2906
|
["query"],
|
|
2787
2907
|
K
|
|
2788
2908
|
),
|
|
2789
|
-
|
|
2909
|
+
y(
|
|
2790
2910
|
"pdf.setTool",
|
|
2791
2911
|
["pdf"],
|
|
2792
2912
|
"Select a markup tool for the user, so their next click draws it.",
|
|
@@ -2800,21 +2920,21 @@ const K = { undoable: !1, visible: !0 }, S = { undoable: !0, visible: !0 }, tt =
|
|
|
2800
2920
|
["tool"],
|
|
2801
2921
|
K
|
|
2802
2922
|
),
|
|
2803
|
-
|
|
2923
|
+
y(
|
|
2804
2924
|
"pdf.fillField",
|
|
2805
2925
|
["pdf"],
|
|
2806
2926
|
"Fill one form field of a fillable PDF.",
|
|
2807
2927
|
{
|
|
2808
|
-
field:
|
|
2928
|
+
field: A("Field name, exactly as `inspect` reports it under `fields`."),
|
|
2809
2929
|
value: {
|
|
2810
2930
|
type: ["string", "boolean"],
|
|
2811
2931
|
description: "Text for a text field, true/false for a checkbox or radio."
|
|
2812
2932
|
}
|
|
2813
2933
|
},
|
|
2814
2934
|
["field", "value"],
|
|
2815
|
-
|
|
2935
|
+
_
|
|
2816
2936
|
),
|
|
2817
|
-
|
|
2937
|
+
y(
|
|
2818
2938
|
"pdf.reorderPages",
|
|
2819
2939
|
["pdf"],
|
|
2820
2940
|
"Put the pages in a different order. Pages left out are deleted.",
|
|
@@ -2826,52 +2946,52 @@ const K = { undoable: !1, visible: !0 }, S = { undoable: !0, visible: !0 }, tt =
|
|
|
2826
2946
|
}
|
|
2827
2947
|
},
|
|
2828
2948
|
["order"],
|
|
2829
|
-
|
|
2949
|
+
it
|
|
2830
2950
|
),
|
|
2831
|
-
|
|
2951
|
+
y(
|
|
2832
2952
|
"pdf.deletePages",
|
|
2833
2953
|
["pdf"],
|
|
2834
2954
|
"Remove pages, keeping the rest in order.",
|
|
2835
2955
|
{ pages: { type: "array", items: { type: "number" }, description: "1-based page numbers." } },
|
|
2836
2956
|
["pages"],
|
|
2837
|
-
|
|
2957
|
+
it
|
|
2838
2958
|
),
|
|
2839
|
-
|
|
2959
|
+
y(
|
|
2840
2960
|
"pdf.addNote",
|
|
2841
2961
|
["pdf"],
|
|
2842
2962
|
"Place a text note on a page. Written on save; not visible before that.",
|
|
2843
2963
|
{
|
|
2844
|
-
page:
|
|
2845
|
-
text:
|
|
2846
|
-
left:
|
|
2847
|
-
top:
|
|
2848
|
-
width:
|
|
2849
|
-
height:
|
|
2850
|
-
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.")
|
|
2851
2971
|
},
|
|
2852
2972
|
["page", "text", "left", "top"],
|
|
2853
2973
|
J
|
|
2854
2974
|
),
|
|
2855
|
-
|
|
2975
|
+
y(
|
|
2856
2976
|
"pdf.highlightText",
|
|
2857
2977
|
["pdf"],
|
|
2858
2978
|
"Highlight a phrase on a page. Written on save; not visible before that.",
|
|
2859
2979
|
{
|
|
2860
|
-
page:
|
|
2861
|
-
text:
|
|
2862
|
-
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.")
|
|
2863
2983
|
},
|
|
2864
2984
|
["page", "text"],
|
|
2865
2985
|
J
|
|
2866
2986
|
)
|
|
2867
|
-
],
|
|
2868
|
-
|
|
2987
|
+
], Ro = [
|
|
2988
|
+
y(
|
|
2869
2989
|
"sheet.setValues",
|
|
2870
2990
|
["sheet"],
|
|
2871
2991
|
"Write a block of values. The block's shape must match the range.",
|
|
2872
2992
|
{
|
|
2873
|
-
sheet:
|
|
2874
|
-
range:
|
|
2993
|
+
sheet: v,
|
|
2994
|
+
range: A("A1 notation, e.g. `B2:D5` or a single `A1`."),
|
|
2875
2995
|
values: {
|
|
2876
2996
|
type: "array",
|
|
2877
2997
|
items: { type: "array", items: { type: ["string", "number", "boolean", "null"] } },
|
|
@@ -2879,261 +2999,261 @@ const K = { undoable: !1, visible: !0 }, S = { undoable: !0, visible: !0 }, tt =
|
|
|
2879
2999
|
}
|
|
2880
3000
|
},
|
|
2881
3001
|
["range", "values"],
|
|
2882
|
-
|
|
3002
|
+
_
|
|
2883
3003
|
),
|
|
2884
|
-
|
|
3004
|
+
y(
|
|
2885
3005
|
"sheet.setFormula",
|
|
2886
3006
|
["sheet"],
|
|
2887
3007
|
"Put a formula in every cell of a range.",
|
|
2888
|
-
{ sheet:
|
|
3008
|
+
{ sheet: v, range: A("A1 notation."), formula: A("Including the leading `=`.") },
|
|
2889
3009
|
["range", "formula"],
|
|
2890
|
-
|
|
3010
|
+
_
|
|
2891
3011
|
),
|
|
2892
|
-
|
|
3012
|
+
y(
|
|
2893
3013
|
"sheet.setStyle",
|
|
2894
3014
|
["sheet"],
|
|
2895
3015
|
"Change the look of a range. Only the properties you pass are touched.",
|
|
2896
3016
|
{
|
|
2897
|
-
sheet:
|
|
2898
|
-
range:
|
|
3017
|
+
sheet: v,
|
|
3018
|
+
range: A("A1 notation."),
|
|
2899
3019
|
bold: z("Bold on or off."),
|
|
2900
3020
|
italic: z("Italic on or off."),
|
|
2901
|
-
fontSize:
|
|
2902
|
-
fontColor:
|
|
2903
|
-
background:
|
|
3021
|
+
fontSize: b("Point size."),
|
|
3022
|
+
fontColor: A("CSS colour, e.g. `#b91c1c`."),
|
|
3023
|
+
background: A("CSS colour for the cell fill."),
|
|
2904
3024
|
horizontalAlignment: {
|
|
2905
3025
|
type: "string",
|
|
2906
3026
|
enum: ["left", "center", "right"],
|
|
2907
3027
|
description: "Horizontal alignment."
|
|
2908
3028
|
},
|
|
2909
|
-
numberFormat:
|
|
3029
|
+
numberFormat: A("Number format pattern, e.g. `#,##0.00` or `0%`.")
|
|
2910
3030
|
},
|
|
2911
3031
|
["range"],
|
|
2912
|
-
|
|
3032
|
+
_
|
|
2913
3033
|
),
|
|
2914
|
-
|
|
3034
|
+
y(
|
|
2915
3035
|
"sheet.insertRows",
|
|
2916
3036
|
["sheet"],
|
|
2917
3037
|
"Insert empty rows, pushing the rest down.",
|
|
2918
3038
|
{
|
|
2919
|
-
sheet:
|
|
2920
|
-
at:
|
|
2921
|
-
count:
|
|
3039
|
+
sheet: v,
|
|
3040
|
+
at: b("1-based row number to insert before."),
|
|
3041
|
+
count: b("How many. Omit for 1.")
|
|
2922
3042
|
},
|
|
2923
3043
|
["at"],
|
|
2924
|
-
|
|
3044
|
+
_
|
|
2925
3045
|
),
|
|
2926
|
-
|
|
3046
|
+
y(
|
|
2927
3047
|
"sheet.deleteRows",
|
|
2928
3048
|
["sheet"],
|
|
2929
3049
|
"Delete rows, pulling the rest up.",
|
|
2930
|
-
{ sheet:
|
|
3050
|
+
{ sheet: v, at: b("1-based first row to delete."), count: b("How many. Omit for 1.") },
|
|
2931
3051
|
["at"],
|
|
2932
|
-
|
|
3052
|
+
_
|
|
2933
3053
|
),
|
|
2934
|
-
|
|
3054
|
+
y(
|
|
2935
3055
|
"sheet.insertColumns",
|
|
2936
3056
|
["sheet"],
|
|
2937
3057
|
"Insert empty columns, pushing the rest right.",
|
|
2938
3058
|
{
|
|
2939
|
-
sheet:
|
|
2940
|
-
at:
|
|
2941
|
-
count:
|
|
3059
|
+
sheet: v,
|
|
3060
|
+
at: b("1-based column number to insert before."),
|
|
3061
|
+
count: b("How many. Omit for 1.")
|
|
2942
3062
|
},
|
|
2943
3063
|
["at"],
|
|
2944
|
-
|
|
3064
|
+
_
|
|
2945
3065
|
),
|
|
2946
|
-
|
|
3066
|
+
y(
|
|
2947
3067
|
"sheet.deleteColumns",
|
|
2948
3068
|
["sheet"],
|
|
2949
3069
|
"Delete columns, pulling the rest left.",
|
|
2950
3070
|
{
|
|
2951
|
-
sheet:
|
|
2952
|
-
at:
|
|
2953
|
-
count:
|
|
3071
|
+
sheet: v,
|
|
3072
|
+
at: b("1-based first column to delete."),
|
|
3073
|
+
count: b("How many. Omit for 1.")
|
|
2954
3074
|
},
|
|
2955
3075
|
["at"],
|
|
2956
|
-
|
|
3076
|
+
_
|
|
2957
3077
|
),
|
|
2958
|
-
|
|
3078
|
+
y(
|
|
2959
3079
|
"sheet.merge",
|
|
2960
3080
|
["sheet"],
|
|
2961
3081
|
"Merge a range into one cell.",
|
|
2962
|
-
{ sheet:
|
|
3082
|
+
{ sheet: v, range: A("A1 notation.") },
|
|
2963
3083
|
["range"],
|
|
2964
|
-
|
|
3084
|
+
_
|
|
2965
3085
|
),
|
|
2966
|
-
|
|
3086
|
+
y(
|
|
2967
3087
|
"sheet.unmerge",
|
|
2968
3088
|
["sheet"],
|
|
2969
3089
|
"Break merged cells in a range apart.",
|
|
2970
|
-
{ sheet:
|
|
3090
|
+
{ sheet: v, range: A("A1 notation.") },
|
|
2971
3091
|
["range"],
|
|
2972
|
-
|
|
3092
|
+
_
|
|
2973
3093
|
),
|
|
2974
|
-
|
|
3094
|
+
y(
|
|
2975
3095
|
"sheet.sort",
|
|
2976
3096
|
["sheet"],
|
|
2977
3097
|
"Sort a range on one of its columns.",
|
|
2978
3098
|
{
|
|
2979
|
-
sheet:
|
|
2980
|
-
range:
|
|
2981
|
-
column:
|
|
3099
|
+
sheet: v,
|
|
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."),
|
|
2982
3102
|
ascending: z("Ascending. Omit for ascending.")
|
|
2983
3103
|
},
|
|
2984
3104
|
["range", "column"],
|
|
2985
|
-
|
|
3105
|
+
_
|
|
2986
3106
|
),
|
|
2987
|
-
|
|
3107
|
+
y(
|
|
2988
3108
|
"sheet.insertSheet",
|
|
2989
3109
|
["sheet"],
|
|
2990
3110
|
"Add a new sheet.",
|
|
2991
|
-
{ name:
|
|
3111
|
+
{ name: A("Name for the new sheet.") },
|
|
2992
3112
|
["name"],
|
|
2993
|
-
|
|
3113
|
+
_
|
|
2994
3114
|
),
|
|
2995
|
-
|
|
3115
|
+
y(
|
|
2996
3116
|
"sheet.renameSheet",
|
|
2997
3117
|
["sheet"],
|
|
2998
3118
|
"Rename a sheet.",
|
|
2999
|
-
{ sheet:
|
|
3119
|
+
{ sheet: A("Current name."), name: A("New name.") },
|
|
3000
3120
|
["sheet", "name"],
|
|
3001
|
-
|
|
3121
|
+
_
|
|
3002
3122
|
),
|
|
3003
|
-
|
|
3123
|
+
y(
|
|
3004
3124
|
"sheet.deleteSheet",
|
|
3005
3125
|
["sheet"],
|
|
3006
3126
|
"Remove a sheet and everything on it.",
|
|
3007
|
-
{ sheet:
|
|
3127
|
+
{ sheet: A("Name of the sheet to delete.") },
|
|
3008
3128
|
["sheet"],
|
|
3009
|
-
|
|
3129
|
+
_
|
|
3010
3130
|
),
|
|
3011
|
-
|
|
3131
|
+
y(
|
|
3012
3132
|
"sheet.activate",
|
|
3013
3133
|
["sheet"],
|
|
3014
3134
|
"Show the user a sheet and select a range on it.",
|
|
3015
|
-
{ sheet:
|
|
3135
|
+
{ sheet: v, range: A("A1 notation to select. Omit to only switch sheets.") },
|
|
3016
3136
|
[],
|
|
3017
3137
|
K
|
|
3018
3138
|
)
|
|
3019
|
-
],
|
|
3020
|
-
|
|
3139
|
+
], Do = [
|
|
3140
|
+
y(
|
|
3021
3141
|
"word.replaceParagraph",
|
|
3022
3142
|
["word"],
|
|
3023
3143
|
"Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",
|
|
3024
3144
|
{
|
|
3025
|
-
at:
|
|
3026
|
-
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.")
|
|
3027
3147
|
},
|
|
3028
3148
|
["at", "text"],
|
|
3029
|
-
|
|
3149
|
+
_
|
|
3030
3150
|
),
|
|
3031
|
-
|
|
3151
|
+
y(
|
|
3032
3152
|
"word.replaceRange",
|
|
3033
3153
|
["word"],
|
|
3034
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.",
|
|
3035
3155
|
{
|
|
3036
|
-
start:
|
|
3037
|
-
end:
|
|
3038
|
-
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.")
|
|
3039
3159
|
},
|
|
3040
3160
|
["start", "end", "text"],
|
|
3041
|
-
|
|
3161
|
+
_
|
|
3042
3162
|
),
|
|
3043
|
-
|
|
3163
|
+
y(
|
|
3044
3164
|
"word.insertText",
|
|
3045
3165
|
["word"],
|
|
3046
3166
|
"Insert text at a character offset, without removing anything.",
|
|
3047
3167
|
{
|
|
3048
|
-
index:
|
|
3049
|
-
text:
|
|
3168
|
+
index: b("Character offset, as `inspect` reports offsets."),
|
|
3169
|
+
text: A("The text to insert.")
|
|
3050
3170
|
},
|
|
3051
3171
|
["index", "text"],
|
|
3052
|
-
|
|
3172
|
+
_
|
|
3053
3173
|
),
|
|
3054
|
-
|
|
3174
|
+
y(
|
|
3055
3175
|
"word.appendText",
|
|
3056
3176
|
["word"],
|
|
3057
3177
|
"Add text at the end of the document.",
|
|
3058
|
-
{ text:
|
|
3178
|
+
{ text: A("The text to append.") },
|
|
3059
3179
|
["text"],
|
|
3060
|
-
|
|
3180
|
+
_
|
|
3061
3181
|
),
|
|
3062
|
-
|
|
3182
|
+
y(
|
|
3063
3183
|
"word.insertParagraph",
|
|
3064
3184
|
["word"],
|
|
3065
3185
|
"Start a new paragraph, optionally with text in it.",
|
|
3066
3186
|
{
|
|
3067
|
-
text:
|
|
3068
|
-
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.")
|
|
3069
3189
|
},
|
|
3070
3190
|
[],
|
|
3071
|
-
|
|
3191
|
+
_
|
|
3072
3192
|
),
|
|
3073
|
-
|
|
3193
|
+
y(
|
|
3074
3194
|
"word.setSelection",
|
|
3075
3195
|
["word"],
|
|
3076
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.",
|
|
3077
|
-
{ start:
|
|
3197
|
+
{ start: b("Start character offset."), end: b("End character offset. Omit for a caret.") },
|
|
3078
3198
|
["start"],
|
|
3079
3199
|
K
|
|
3080
3200
|
)
|
|
3081
|
-
],
|
|
3082
|
-
|
|
3201
|
+
], $o = [
|
|
3202
|
+
y(
|
|
3083
3203
|
"slides.setText",
|
|
3084
3204
|
["slides"],
|
|
3085
3205
|
"Replace the text of one shape. Written on save; not visible before that, and not undoable.",
|
|
3086
3206
|
{
|
|
3087
|
-
slide:
|
|
3088
|
-
element:
|
|
3089
|
-
text:
|
|
3207
|
+
slide: ot,
|
|
3208
|
+
element: A("Element id, as `inspect` reports it."),
|
|
3209
|
+
text: A("The new text.")
|
|
3090
3210
|
},
|
|
3091
3211
|
["slide", "element", "text"],
|
|
3092
3212
|
J
|
|
3093
3213
|
),
|
|
3094
|
-
|
|
3214
|
+
y(
|
|
3095
3215
|
"slides.setTransform",
|
|
3096
3216
|
["slides"],
|
|
3097
3217
|
"Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",
|
|
3098
3218
|
{
|
|
3099
|
-
slide:
|
|
3100
|
-
element:
|
|
3101
|
-
left:
|
|
3102
|
-
top:
|
|
3103
|
-
width:
|
|
3104
|
-
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.")
|
|
3105
3225
|
},
|
|
3106
3226
|
["slide", "element"],
|
|
3107
3227
|
J
|
|
3108
3228
|
)
|
|
3109
|
-
],
|
|
3110
|
-
...
|
|
3111
|
-
...
|
|
3112
|
-
...
|
|
3113
|
-
|
|
3229
|
+
], Ht = [
|
|
3230
|
+
...xo,
|
|
3231
|
+
...Ro,
|
|
3232
|
+
...Do,
|
|
3233
|
+
...$o
|
|
3114
3234
|
];
|
|
3115
|
-
function
|
|
3116
|
-
return
|
|
3235
|
+
function yl(e) {
|
|
3236
|
+
return Ht.filter((t) => t.kinds.includes(e));
|
|
3117
3237
|
}
|
|
3118
|
-
function
|
|
3119
|
-
return
|
|
3238
|
+
function bl(e) {
|
|
3239
|
+
return Ht.find((t) => t.op === e);
|
|
3120
3240
|
}
|
|
3121
|
-
const
|
|
3122
|
-
function
|
|
3241
|
+
const Al = "documents.describe", El = "documents.inspect", Sl = "documents.apply";
|
|
3242
|
+
function _l(e) {
|
|
3123
3243
|
const t = e.indexOf(":");
|
|
3124
3244
|
if (t !== -1) return e.slice(0, t);
|
|
3125
3245
|
const n = e.indexOf(".");
|
|
3126
3246
|
return n === -1 ? e : e.slice(0, n);
|
|
3127
3247
|
}
|
|
3128
|
-
const
|
|
3129
|
-
function
|
|
3248
|
+
const Tl = "installation-id";
|
|
3249
|
+
function Il(e) {
|
|
3130
3250
|
const t = [];
|
|
3131
3251
|
for (const n of Object.keys(e))
|
|
3132
3252
|
for (const r of Object.keys(e[n]))
|
|
3133
3253
|
t.push({ lang: n, key: r, value: e[n][r] });
|
|
3134
3254
|
return t;
|
|
3135
3255
|
}
|
|
3136
|
-
const
|
|
3256
|
+
const wl = "notification-source", Ml = (e, t) => `${e}.pref.${t}`, kl = {
|
|
3137
3257
|
ai: [
|
|
3138
3258
|
"account.read",
|
|
3139
3259
|
"account.write",
|
|
@@ -3268,48 +3388,48 @@ const El = "notification-source", Sl = (e, t) => `${e}.pref.${t}`, _l = {
|
|
|
3268
3388
|
time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
|
|
3269
3389
|
user: ["user.read", "user.write"],
|
|
3270
3390
|
work: ["item.read", "item.write", "project.read", "project.write"]
|
|
3271
|
-
},
|
|
3272
|
-
function
|
|
3273
|
-
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;
|
|
3274
3394
|
if (!o?.status) return { online: r, status: r ? "available" : "offline" };
|
|
3275
3395
|
const i = o.status;
|
|
3276
|
-
return !r && !
|
|
3396
|
+
return !r && !Wt(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
|
|
3277
3397
|
}
|
|
3278
|
-
function
|
|
3279
|
-
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";
|
|
3280
3400
|
return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
|
|
3281
3401
|
}
|
|
3282
|
-
function
|
|
3402
|
+
function Cl(e, t) {
|
|
3283
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 };
|
|
3284
3404
|
}
|
|
3285
|
-
function
|
|
3405
|
+
function Nl(e) {
|
|
3286
3406
|
return e.providerAvailable && e.allowed;
|
|
3287
3407
|
}
|
|
3288
|
-
const
|
|
3289
|
-
function
|
|
3408
|
+
const xl = "resources.describe", Rl = "resources.search", Dl = "resources.resolve", $l = "resources.attached";
|
|
3409
|
+
function Ll(e) {
|
|
3290
3410
|
const t = e.indexOf(":");
|
|
3291
3411
|
return t === -1 ? e : e.slice(0, t);
|
|
3292
3412
|
}
|
|
3293
|
-
const
|
|
3294
|
-
function
|
|
3413
|
+
const Pl = "/provider/scope/related", Ul = "/provider/scope/read", Gt = "auth";
|
|
3414
|
+
function Vt(e) {
|
|
3295
3415
|
const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
|
|
3296
3416
|
return t ? t[1] : null;
|
|
3297
3417
|
}
|
|
3298
|
-
function
|
|
3299
|
-
const t =
|
|
3300
|
-
return t ? t !==
|
|
3418
|
+
function Kl(e) {
|
|
3419
|
+
const t = Vt(e);
|
|
3420
|
+
return t ? t !== Gt : typeof e == "string" && e.startsWith("/wake");
|
|
3301
3421
|
}
|
|
3302
|
-
function
|
|
3303
|
-
return typeof e != "string" || e === "" || e === "/" ? !0 :
|
|
3422
|
+
function Fl(e) {
|
|
3423
|
+
return typeof e != "string" || e === "" || e === "/" ? !0 : Vt(e) === Gt;
|
|
3304
3424
|
}
|
|
3305
|
-
function
|
|
3425
|
+
function Po(e) {
|
|
3306
3426
|
return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
3307
3427
|
}
|
|
3308
|
-
function
|
|
3309
|
-
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("");
|
|
3310
3430
|
return new RegExp(`^${n}\\/?$`);
|
|
3311
3431
|
}
|
|
3312
|
-
function
|
|
3432
|
+
function Ko(e, t) {
|
|
3313
3433
|
const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), o = {};
|
|
3314
3434
|
return n.forEach((i, s) => {
|
|
3315
3435
|
if (i.startsWith(":")) {
|
|
@@ -3318,14 +3438,14 @@ function $o(e, t) {
|
|
|
3318
3438
|
}
|
|
3319
3439
|
}), o;
|
|
3320
3440
|
}
|
|
3321
|
-
function
|
|
3441
|
+
function Fo(e) {
|
|
3322
3442
|
return e.publicBasePath ?? `/apps/${e.name}`;
|
|
3323
3443
|
}
|
|
3324
|
-
function
|
|
3444
|
+
function Bl(e) {
|
|
3325
3445
|
const t = [];
|
|
3326
3446
|
for (const n of e) {
|
|
3327
3447
|
if (!n?.name) continue;
|
|
3328
|
-
const r =
|
|
3448
|
+
const r = Fo(n);
|
|
3329
3449
|
for (const o of n.routes ?? []) {
|
|
3330
3450
|
if (!o.public) continue;
|
|
3331
3451
|
const i = o.path === "/" ? "" : o.path;
|
|
@@ -3339,7 +3459,7 @@ function Ll(e) {
|
|
|
3339
3459
|
}
|
|
3340
3460
|
return t;
|
|
3341
3461
|
}
|
|
3342
|
-
function
|
|
3462
|
+
function Bo(e, t) {
|
|
3343
3463
|
const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
|
|
3344
3464
|
for (let o = 0; o < Math.min(n.length, r.length); o++) {
|
|
3345
3465
|
const i = n[o].startsWith(":"), s = r[o].startsWith(":");
|
|
@@ -3347,17 +3467,17 @@ function Po(e, t) {
|
|
|
3347
3467
|
}
|
|
3348
3468
|
return n.length > r.length;
|
|
3349
3469
|
}
|
|
3350
|
-
function
|
|
3470
|
+
function Ho(e, t) {
|
|
3351
3471
|
if (typeof e != "string") return null;
|
|
3352
3472
|
let n = null;
|
|
3353
3473
|
for (const r of t)
|
|
3354
|
-
|
|
3355
|
-
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;
|
|
3356
3476
|
}
|
|
3357
|
-
function
|
|
3358
|
-
return
|
|
3477
|
+
function Hl(e, t) {
|
|
3478
|
+
return Ho(e, t) !== null;
|
|
3359
3479
|
}
|
|
3360
|
-
const
|
|
3480
|
+
const jl = 10 * 1024 * 1024, Wl = 25 * 1024 * 1024, Gl = "sync-target", Vl = 20, jo = {
|
|
3361
3481
|
afrikaans: [
|
|
3362
3482
|
"[Muziek]",
|
|
3363
3483
|
"(C) TV GELDERLAND 2021",
|
|
@@ -3507,14 +3627,14 @@ const Ul = 10 * 1024 * 1024, Kl = 25 * 1024 * 1024, Fl = "sync-target", Bl = 20,
|
|
|
3507
3627
|
"[MÚSICA]",
|
|
3508
3628
|
"[Music cuts in British]"
|
|
3509
3629
|
]
|
|
3510
|
-
},
|
|
3630
|
+
}, Wo = (e) => {
|
|
3511
3631
|
let t = e;
|
|
3512
|
-
return Object.values(
|
|
3632
|
+
return Object.values(jo).forEach((n) => {
|
|
3513
3633
|
n.forEach((r) => {
|
|
3514
3634
|
t = t.replaceAll(r, "");
|
|
3515
3635
|
});
|
|
3516
3636
|
}), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
|
|
3517
|
-
},
|
|
3637
|
+
}, Go = 6e4, Vo = 8e3, Xo = 2, zo = 0.4, Yo = 3, qo = /* @__PURE__ */ new Set([
|
|
3518
3638
|
"aan",
|
|
3519
3639
|
"als",
|
|
3520
3640
|
"ben",
|
|
@@ -3627,13 +3747,13 @@ const Ul = 10 * 1024 * 1024, Kl = 25 * 1024 * 1024, Fl = "sync-target", Bl = 20,
|
|
|
3627
3747
|
"you",
|
|
3628
3748
|
"your"
|
|
3629
3749
|
]);
|
|
3630
|
-
function
|
|
3750
|
+
function Jo(e) {
|
|
3631
3751
|
const t = /* @__PURE__ */ new Set();
|
|
3632
3752
|
for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
|
|
3633
|
-
n.length <
|
|
3753
|
+
n.length < Yo || qo.has(n) || t.add(n);
|
|
3634
3754
|
return [...t];
|
|
3635
3755
|
}
|
|
3636
|
-
function
|
|
3756
|
+
function Zo(e, t) {
|
|
3637
3757
|
if (!e.length) return 0;
|
|
3638
3758
|
if (!t.length) return 1;
|
|
3639
3759
|
const n = new Set(t), r = new Set(e);
|
|
@@ -3641,38 +3761,38 @@ function Yo(e, t) {
|
|
|
3641
3761
|
for (const i of r) n.has(i) || (o += 1);
|
|
3642
3762
|
return o / r.size;
|
|
3643
3763
|
}
|
|
3644
|
-
function
|
|
3764
|
+
function Qo(e, t = Go) {
|
|
3645
3765
|
const n = e.filter((s) => !s.partial && typeof s.text == "string");
|
|
3646
3766
|
if (!n.length) return { text: "", segmentCount: 0 };
|
|
3647
3767
|
const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
|
|
3648
|
-
return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) =>
|
|
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 };
|
|
3649
3769
|
}
|
|
3650
|
-
const
|
|
3651
|
-
function
|
|
3770
|
+
const ei = 60;
|
|
3771
|
+
function Xl(e, t, n = ei) {
|
|
3652
3772
|
const r = new Set(e), o = [...e];
|
|
3653
3773
|
for (const i of t)
|
|
3654
3774
|
!i || r.has(i) || (r.add(i), o.push(i));
|
|
3655
3775
|
return o.slice(-n);
|
|
3656
3776
|
}
|
|
3657
|
-
function
|
|
3777
|
+
function zl(e) {
|
|
3658
3778
|
const { segments: t, now: n, state: r } = e;
|
|
3659
|
-
if (r.lastTriggerAt && n - r.lastTriggerAt <
|
|
3779
|
+
if (r.lastTriggerAt && n - r.lastTriggerAt < Vo)
|
|
3660
3780
|
return { trigger: !1, reason: "too_soon" };
|
|
3661
|
-
const o =
|
|
3781
|
+
const o = Qo(t, e.windowMs);
|
|
3662
3782
|
if (!o.text) return { trigger: !1, reason: "no_speech" };
|
|
3663
3783
|
const i = o.segmentCount - (r.lastSegmentCount ?? 0);
|
|
3664
|
-
if (r.lastQueryTerms && i <
|
|
3784
|
+
if (r.lastQueryTerms && i < Xo)
|
|
3665
3785
|
return { trigger: !1, reason: "too_few_new" };
|
|
3666
|
-
const s =
|
|
3667
|
-
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" };
|
|
3668
3788
|
}
|
|
3669
|
-
const
|
|
3789
|
+
const Yl = [
|
|
3670
3790
|
"personal",
|
|
3671
3791
|
"workspace",
|
|
3672
3792
|
"connections",
|
|
3673
3793
|
"work",
|
|
3674
3794
|
"ai"
|
|
3675
|
-
],
|
|
3795
|
+
], ql = "navNotice", Ce = {
|
|
3676
3796
|
// The lower bounds are deliberately generous: service ranges (0800/0900) are
|
|
3677
3797
|
// shorter than geographic numbers, and a too-strict minimum silently drops them.
|
|
3678
3798
|
// An over-permissive key is harmless — it simply matches nothing.
|
|
@@ -3695,53 +3815,53 @@ const Gl = [
|
|
|
3695
3815
|
PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
|
|
3696
3816
|
US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
|
|
3697
3817
|
CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
|
|
3698
|
-
},
|
|
3699
|
-
new Set(Object.values(
|
|
3818
|
+
}, ti = "NL", ni = 15, ri = 8, oi = Array.from(
|
|
3819
|
+
new Set(Object.values(Ce).map((e) => e.callingCode))
|
|
3700
3820
|
).sort((e, t) => t.length - e.length);
|
|
3701
|
-
function
|
|
3821
|
+
function st(e) {
|
|
3702
3822
|
if (e)
|
|
3703
|
-
return
|
|
3823
|
+
return Ce[e.trim().toUpperCase()];
|
|
3704
3824
|
}
|
|
3705
3825
|
function Y(e, t) {
|
|
3706
3826
|
return e.length >= t.nsnMin && e.length <= t.nsnMax;
|
|
3707
3827
|
}
|
|
3708
|
-
function
|
|
3709
|
-
if (e.length >
|
|
3710
|
-
for (const t of
|
|
3828
|
+
function at(e) {
|
|
3829
|
+
if (e.length > ni) return null;
|
|
3830
|
+
for (const t of oi) {
|
|
3711
3831
|
if (!e.startsWith(t)) continue;
|
|
3712
3832
|
const n = e.slice(t.length);
|
|
3713
|
-
for (const r of Object.values(
|
|
3833
|
+
for (const r of Object.values(Ce)) {
|
|
3714
3834
|
if (r.callingCode !== t) continue;
|
|
3715
3835
|
const o = r.trunkPrefix, i = o && n.startsWith(o) ? n.slice(o.length) : n;
|
|
3716
3836
|
if (Y(i, r)) return `+${t}${i}`;
|
|
3717
3837
|
}
|
|
3718
3838
|
return null;
|
|
3719
3839
|
}
|
|
3720
|
-
return e.length <
|
|
3840
|
+
return e.length < ri ? null : `+${e}`;
|
|
3721
3841
|
}
|
|
3722
|
-
function
|
|
3842
|
+
function ii(e) {
|
|
3723
3843
|
let t = e.trim();
|
|
3724
3844
|
const n = t.match(/^(sips?|tel|whatsapp):/i);
|
|
3725
3845
|
n && (t = t.slice(n[0].length));
|
|
3726
3846
|
const r = t.indexOf("@");
|
|
3727
3847
|
return r >= 0 && (t = t.slice(0, r)), t.trim();
|
|
3728
3848
|
}
|
|
3729
|
-
function
|
|
3849
|
+
function Jl(e) {
|
|
3730
3850
|
if (!e) return !1;
|
|
3731
3851
|
const t = e.indexOf("@");
|
|
3732
3852
|
if (t <= 0) return !1;
|
|
3733
3853
|
const n = e.slice(0, t).trim();
|
|
3734
3854
|
return !/^[+\d\s().-]+$/.test(n);
|
|
3735
3855
|
}
|
|
3736
|
-
function
|
|
3856
|
+
function ct(e, t) {
|
|
3737
3857
|
if (!e) return null;
|
|
3738
|
-
const n =
|
|
3858
|
+
const n = ii(e);
|
|
3739
3859
|
if (!n) return null;
|
|
3740
3860
|
const r = n.startsWith("+"), o = n.replace(/\D/g, "");
|
|
3741
3861
|
if (!o) return null;
|
|
3742
|
-
if (r) return
|
|
3743
|
-
if (o.startsWith("00")) return
|
|
3744
|
-
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);
|
|
3745
3865
|
if (!i) return null;
|
|
3746
3866
|
const s = i.trunkPrefix;
|
|
3747
3867
|
if (s && o.startsWith(s)) {
|
|
@@ -3754,22 +3874,22 @@ function ot(e, t) {
|
|
|
3754
3874
|
}
|
|
3755
3875
|
return !s && Y(o, i) ? `+${i.callingCode}${o}` : null;
|
|
3756
3876
|
}
|
|
3757
|
-
function
|
|
3877
|
+
function Zl(e, t = 9) {
|
|
3758
3878
|
const n = (e ?? "").replace(/\D/g, "");
|
|
3759
3879
|
return n.length < t ? null : n.slice(-t);
|
|
3760
3880
|
}
|
|
3761
|
-
function
|
|
3881
|
+
function Xt(e) {
|
|
3762
3882
|
if (!e) return null;
|
|
3763
3883
|
const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
|
|
3764
3884
|
if (n <= 0 || n === t.length - 1) return null;
|
|
3765
3885
|
const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
|
|
3766
3886
|
return !r || !o.includes(".") ? null : `${r}@${o}`;
|
|
3767
3887
|
}
|
|
3768
|
-
function
|
|
3769
|
-
const t =
|
|
3888
|
+
function Ql(e) {
|
|
3889
|
+
const t = Xt(e);
|
|
3770
3890
|
return t ? t.slice(t.lastIndexOf("@") + 1) : null;
|
|
3771
3891
|
}
|
|
3772
|
-
const
|
|
3892
|
+
const si = /* @__PURE__ */ new Set([
|
|
3773
3893
|
"co.uk",
|
|
3774
3894
|
"org.uk",
|
|
3775
3895
|
"gov.uk",
|
|
@@ -3779,14 +3899,14 @@ const ni = /* @__PURE__ */ new Set([
|
|
|
3779
3899
|
"com.br",
|
|
3780
3900
|
"co.za"
|
|
3781
3901
|
]);
|
|
3782
|
-
function
|
|
3902
|
+
function ai(e) {
|
|
3783
3903
|
if (!e) return null;
|
|
3784
3904
|
const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
|
|
3785
3905
|
if (t.length < 2) return null;
|
|
3786
3906
|
const n = t.slice(-2).join(".");
|
|
3787
|
-
return
|
|
3907
|
+
return si.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
|
|
3788
3908
|
}
|
|
3789
|
-
const
|
|
3909
|
+
const ci = /* @__PURE__ */ new Set([
|
|
3790
3910
|
"gmail.com",
|
|
3791
3911
|
"googlemail.com",
|
|
3792
3912
|
"outlook.com",
|
|
@@ -3831,34 +3951,34 @@ const oi = /* @__PURE__ */ new Set([
|
|
|
3831
3951
|
"proximus.be",
|
|
3832
3952
|
"scarlet.be"
|
|
3833
3953
|
]);
|
|
3834
|
-
function
|
|
3835
|
-
const t =
|
|
3836
|
-
return t ?
|
|
3954
|
+
function eu(e) {
|
|
3955
|
+
const t = ai(e);
|
|
3956
|
+
return t ? ci.has(t) : !1;
|
|
3837
3957
|
}
|
|
3838
|
-
function
|
|
3958
|
+
function tu(e) {
|
|
3839
3959
|
if (!e) return !1;
|
|
3840
3960
|
const t = e.trim().toLowerCase();
|
|
3841
3961
|
return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
|
|
3842
3962
|
}
|
|
3843
|
-
function
|
|
3963
|
+
function nu(e, t, n) {
|
|
3844
3964
|
if (!e || !t) return null;
|
|
3845
3965
|
const r = e.trim().toLowerCase();
|
|
3846
3966
|
if (r === "tel" || r === "sms" || r === "whatsapp") {
|
|
3847
|
-
const i =
|
|
3967
|
+
const i = ct(t, n);
|
|
3848
3968
|
return i ? `tel:${i}` : null;
|
|
3849
3969
|
}
|
|
3850
3970
|
if (r === "fax") {
|
|
3851
|
-
const i =
|
|
3971
|
+
const i = ct(t, n);
|
|
3852
3972
|
return i ? `fax:${i}` : null;
|
|
3853
3973
|
}
|
|
3854
3974
|
if (r === "mailto" || r === "email") {
|
|
3855
|
-
const i =
|
|
3975
|
+
const i = Xt(t);
|
|
3856
3976
|
return i ? `mailto:${i}` : null;
|
|
3857
3977
|
}
|
|
3858
3978
|
const o = t.trim().toLowerCase();
|
|
3859
3979
|
return o ? `${r}:${o}` : null;
|
|
3860
3980
|
}
|
|
3861
|
-
const
|
|
3981
|
+
const li = [
|
|
3862
3982
|
/<blockquote/i,
|
|
3863
3983
|
/class="?gmail_quote/i,
|
|
3864
3984
|
// Gmail quote container
|
|
@@ -3871,72 +3991,72 @@ const ii = [
|
|
|
3871
3991
|
// Outlook underscore separator before "From:"
|
|
3872
3992
|
/\bOn\b[\s\S]{0,200}?\bwrote:/i
|
|
3873
3993
|
// Gmail "On <date> <name> wrote:"
|
|
3874
|
-
],
|
|
3875
|
-
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) {
|
|
3876
3996
|
const t = e.split(`
|
|
3877
3997
|
`);
|
|
3878
3998
|
for (let n = 0; n < t.length; n++)
|
|
3879
|
-
if (
|
|
3999
|
+
if (ui.test(t[n]) || lt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => lt.test(r)))
|
|
3880
4000
|
return t.slice(0, n).join(`
|
|
3881
4001
|
`).trim();
|
|
3882
4002
|
return e;
|
|
3883
4003
|
}
|
|
3884
|
-
const
|
|
3885
|
-
function
|
|
4004
|
+
const fi = /^(?:https?:|mailto:|tel:)/i, pi = /^(?:https?:|cid:|data:image\/)/i;
|
|
4005
|
+
function ce(e, t) {
|
|
3886
4006
|
const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
|
|
3887
4007
|
return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
|
|
3888
4008
|
}
|
|
3889
|
-
const
|
|
3890
|
-
function
|
|
3891
|
-
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("");
|
|
3892
4012
|
}
|
|
3893
|
-
function
|
|
4013
|
+
function le(e) {
|
|
3894
4014
|
return e.replace(
|
|
3895
4015
|
/[()\s<>"]/g,
|
|
3896
4016
|
(t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
|
|
3897
4017
|
);
|
|
3898
4018
|
}
|
|
3899
|
-
function
|
|
4019
|
+
function hi(e) {
|
|
3900
4020
|
return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
|
|
3901
|
-
const o =
|
|
3902
|
-
return
|
|
4021
|
+
const o = ce(r, "src");
|
|
4022
|
+
return pi.test(o) ? `})` : "";
|
|
3903
4023
|
}).replace(
|
|
3904
4024
|
/<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
|
|
3905
4025
|
(n, r, o) => {
|
|
3906
|
-
const i =
|
|
3907
|
-
return
|
|
4026
|
+
const i = ut(o.replace(/<[^>]*>/g, "")), s = ce(r, "href");
|
|
4027
|
+
return fi.test(s) ? `[${i || le(s)}](${le(s)})` : i;
|
|
3908
4028
|
}
|
|
3909
4029
|
);
|
|
3910
4030
|
}
|
|
3911
|
-
const
|
|
3912
|
-
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) {
|
|
3913
4033
|
return /<table\b/i.test(e) || e.includes(`
|
|
3914
4034
|
|
|
3915
4035
|
|`) || t.includes("![") || t.length > 200;
|
|
3916
4036
|
}
|
|
3917
|
-
const
|
|
3918
|
-
function
|
|
4037
|
+
const Ei = 40, Si = { left: "---", center: ":---:", right: "---:" };
|
|
4038
|
+
function _i(e) {
|
|
3919
4039
|
const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
|
|
3920
4040
|
return t ? t[1].toLowerCase() : "left";
|
|
3921
4041
|
}
|
|
3922
|
-
function
|
|
4042
|
+
function Ti(e) {
|
|
3923
4043
|
return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
|
|
3924
4044
|
}
|
|
3925
|
-
function
|
|
4045
|
+
function Ii(e) {
|
|
3926
4046
|
const t = [];
|
|
3927
|
-
for (const s of e.matchAll(
|
|
4047
|
+
for (const s of e.matchAll(yi)) {
|
|
3928
4048
|
const a = [];
|
|
3929
|
-
for (const l of s[1].matchAll(
|
|
3930
|
-
const
|
|
3931
|
-
if (
|
|
3932
|
-
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]) });
|
|
3933
4053
|
}
|
|
3934
4054
|
if (a.length === 0) return null;
|
|
3935
4055
|
a.some((l) => l.text !== "") && t.push(a);
|
|
3936
4056
|
}
|
|
3937
4057
|
const n = t[0]?.length ?? 0;
|
|
3938
4058
|
if (t.length < 2 || n < 2 || t.some((s) => s.length !== n)) return null;
|
|
3939
|
-
const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) =>
|
|
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(`
|
|
3940
4060
|
`);
|
|
3941
4061
|
return `
|
|
3942
4062
|
|
|
@@ -3946,36 +4066,36 @@ ${i}
|
|
|
3946
4066
|
|
|
3947
4067
|
`;
|
|
3948
4068
|
}
|
|
3949
|
-
function
|
|
4069
|
+
function wi(e) {
|
|
3950
4070
|
return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
|
|
3951
4071
|
`).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
|
|
3952
4072
|
}
|
|
3953
|
-
function
|
|
4073
|
+
function Mi(e) {
|
|
3954
4074
|
let t = e;
|
|
3955
|
-
for (let n = 0; n <
|
|
3956
|
-
const r =
|
|
4075
|
+
for (let n = 0; n < Ei; n++) {
|
|
4076
|
+
const r = gi.exec(t);
|
|
3957
4077
|
if (!r || r.index === void 0) break;
|
|
3958
|
-
const i =
|
|
4078
|
+
const i = Ii(r[1]) ?? `
|
|
3959
4079
|
|
|
3960
|
-
${
|
|
4080
|
+
${wi(r[1])}
|
|
3961
4081
|
|
|
3962
4082
|
`;
|
|
3963
4083
|
t = t.slice(0, r.index) + i + t.slice(r.index + r[0].length);
|
|
3964
4084
|
}
|
|
3965
4085
|
return t;
|
|
3966
4086
|
}
|
|
3967
|
-
function
|
|
4087
|
+
function dt(e, t) {
|
|
3968
4088
|
let n = e;
|
|
3969
4089
|
return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
|
|
3970
|
-
`), t && (n =
|
|
4090
|
+
`), t && (n = Mi(hi(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
|
|
3971
4091
|
|
|
3972
4092
|
`), n = n.replace(/<\/(div|li|tr)>/gi, `
|
|
3973
4093
|
`), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
|
|
3974
4094
|
}
|
|
3975
|
-
function
|
|
4095
|
+
function ft(e) {
|
|
3976
4096
|
return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
|
|
3977
4097
|
}
|
|
3978
|
-
const
|
|
4098
|
+
const ki = {
|
|
3979
4099
|
euro: "€",
|
|
3980
4100
|
pound: "£",
|
|
3981
4101
|
yen: "¥",
|
|
@@ -3997,455 +4117,471 @@ const Ti = {
|
|
|
3997
4117
|
rdquo: "”",
|
|
3998
4118
|
apos: "'"
|
|
3999
4119
|
};
|
|
4000
|
-
function
|
|
4001
|
-
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, "&");
|
|
4002
4122
|
}
|
|
4003
|
-
function
|
|
4123
|
+
function mt(e) {
|
|
4004
4124
|
return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
|
|
4005
4125
|
`).replace(/\n{3,}/g, `
|
|
4006
4126
|
|
|
4007
4127
|
`).trim();
|
|
4008
4128
|
}
|
|
4009
|
-
const
|
|
4010
|
-
function
|
|
4011
|
-
return
|
|
4129
|
+
const vi = /<\s*(html|body|div|p|table|br|span)\b/i;
|
|
4130
|
+
function ru(e) {
|
|
4131
|
+
return vi.test(e);
|
|
4012
4132
|
}
|
|
4013
|
-
function
|
|
4014
|
-
return
|
|
4133
|
+
function ou(e) {
|
|
4134
|
+
return zt(e, !1);
|
|
4015
4135
|
}
|
|
4016
|
-
function
|
|
4017
|
-
return
|
|
4136
|
+
function iu(e) {
|
|
4137
|
+
return zt(e, !0);
|
|
4018
4138
|
}
|
|
4019
|
-
function
|
|
4139
|
+
function zt(e, t) {
|
|
4020
4140
|
if (typeof e != "string" || !e) return "";
|
|
4021
4141
|
let n = e.length;
|
|
4022
|
-
for (const s of
|
|
4142
|
+
for (const s of li) {
|
|
4023
4143
|
const a = e.search(s);
|
|
4024
4144
|
a >= 0 && a < n && (n = a);
|
|
4025
4145
|
}
|
|
4026
4146
|
const r = e.slice(0, n);
|
|
4027
|
-
let o =
|
|
4028
|
-
return o || (o =
|
|
4147
|
+
let o = mt(pt(dt(r, t)));
|
|
4148
|
+
return o || (o = mt(pt(dt(e, t)))), di(o) || o;
|
|
4029
4149
|
}
|
|
4030
4150
|
export {
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
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,
|
|
4082
4213
|
Q as FIXED_LEVELS,
|
|
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
|
-
|
|
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,
|
|
4252
4387
|
Z as findAiVendor,
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4388
|
+
Qa as fixedLevelForName,
|
|
4389
|
+
kc as fixedTypeForName,
|
|
4390
|
+
vc as fixedTypes,
|
|
4391
|
+
Il as flattenLocales,
|
|
4257
4392
|
B as floorToPeriod,
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4393
|
+
ma as forecastIntervals,
|
|
4394
|
+
Mr as formatActingIdentity,
|
|
4395
|
+
fc as formatClock,
|
|
4396
|
+
dc as formatHm,
|
|
4397
|
+
Nc as formatItemKey,
|
|
4263
4398
|
F as formatPeriod,
|
|
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
|
-
|
|
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,
|
|
4346
4482
|
ie as overlapSeconds,
|
|
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
|
-
|
|
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
|
|
4451
4587
|
};
|