@opencxh/domain 1.278.0 → 1.280.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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const la = 10, ua = 10, da = 10, fa = 5, Cn = /* @__PURE__ */ new Set([
1
+ const da = 10, fa = 10, pa = 10, ma = 5, On = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function ae(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function pa(e, t = () => {
17
+ function ha(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -25,7 +25,7 @@ function pa(e, t = () => {
25
25
  }
26
26
  if (!r || typeof r != "object") continue;
27
27
  const o = r;
28
- if (!Cn.has(o.type)) {
28
+ if (!On.has(o.type)) {
29
29
  t(`unknown block type ${String(o.type)}`);
30
30
  continue;
31
31
  }
@@ -475,6 +475,28 @@ const R = {
475
475
  // `Activity` union (they carry no `interactionId`), so `a.payload` is `never` here.
476
476
  snippet: () => "Status gewijzigd",
477
477
  timeline: (e, t) => `Status changed by ${t}`
478
+ },
479
+ /**
480
+ * The crm feed under a contact or company. Deliberately not `triggerable` yet: nothing
481
+ * subscribes to crm's `activities:created`, so a picker entry would be a trigger that never fires.
482
+ */
483
+ CRM_NOTE_ADDED: {
484
+ shape: "note",
485
+ icon: "sticky-note",
486
+ carriesText: !0,
487
+ snippet: () => "Notitie"
488
+ },
489
+ CRM_CALL_LOGGED: {
490
+ shape: "note",
491
+ icon: "phone",
492
+ carriesText: !0,
493
+ snippet: () => "Gesprek vastgelegd"
494
+ },
495
+ CRM_STAGE_CHANGED: {
496
+ shape: "event",
497
+ icon: "circle-dot",
498
+ snippet: () => "Fase gewijzigd",
499
+ timeline: (e, t) => `Stage changed by ${t}`
478
500
  }
479
501
  };
480
502
  function Je(e) {
@@ -484,40 +506,40 @@ function Je(e) {
484
506
  function v(e) {
485
507
  return R[e];
486
508
  }
487
- function ma(e) {
509
+ function ga(e) {
488
510
  return v(e)?.icon ?? "circle";
489
511
  }
490
- function ha(e) {
512
+ function ya(e) {
491
513
  return v(e)?.channelKind;
492
514
  }
493
- function Ht(e) {
515
+ function Gt(e) {
494
516
  return e === "message" || e === "note";
495
517
  }
496
- function ga(e) {
497
- return Ht(v(e)?.shape);
518
+ function ba(e) {
519
+ return Gt(v(e)?.shape);
498
520
  }
499
- function Gt(e) {
521
+ function Ht(e) {
500
522
  return e === "note";
501
523
  }
502
- function ya(e) {
503
- return Gt(v(e)?.shape);
524
+ function _a(e) {
525
+ return Ht(v(e)?.shape);
504
526
  }
505
- function ba(e) {
527
+ function Aa(e) {
506
528
  return v(e)?.replyable === !0;
507
529
  }
508
- function _a(e) {
530
+ function Ea(e) {
509
531
  return v(e)?.carriesText === !0;
510
532
  }
511
533
  function $n(e) {
512
534
  return v(e)?.countsAs;
513
535
  }
514
- function Aa(e) {
536
+ function Sa(e) {
515
537
  return v(e)?.playbookAuthored === !0;
516
538
  }
517
- function Ea(e) {
539
+ function Ta(e) {
518
540
  return v(e)?.connected === !0;
519
541
  }
520
- function Sa(e) {
542
+ function Ia(e) {
521
543
  const t = v(e);
522
544
  return t?.shape === "artifact" && t?.carriesText === !0;
523
545
  }
@@ -525,11 +547,11 @@ function Ln(e) {
525
547
  const t = v(e.type)?.snippet;
526
548
  return t ? t(e) : "";
527
549
  }
528
- function Ta(e, t) {
550
+ function va(e, t) {
529
551
  const n = v(e.type)?.timeline;
530
552
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
531
553
  }
532
- function Ia(e) {
554
+ function ka(e) {
533
555
  const t = v(e.type)?.joinUrl;
534
556
  return t ? t(e) : void 0;
535
557
  }
@@ -564,7 +586,7 @@ function Kn(e) {
564
586
  const t = e.trim();
565
587
  return t.length <= Ze ? t : `${t.slice(0, Ze - 1).trimEnd()}…`;
566
588
  }
567
- function va(e, t) {
589
+ function wa(e, t) {
568
590
  const n = Pn(t?.text, e), r = t ? Ee(t.text, e, (o) => o) : null;
569
591
  return {
570
592
  activityId: e.id,
@@ -666,11 +688,11 @@ class Fn {
666
688
  * {@link ResolvedActivityType}.
667
689
  */
668
690
  isMessage(t) {
669
- return Ht(this.get(t)?.shape);
691
+ return Gt(this.get(t)?.shape);
670
692
  }
671
693
  /** Folds into the list under the message it answers. See {@link isNoteShape}. */
672
694
  nestsUnderParent(t) {
673
- return Gt(this.get(t)?.shape);
695
+ return Ht(this.get(t)?.shape);
674
696
  }
675
697
  /** Can a person reply to this? Notes cannot — those go nowhere. */
676
698
  isReplyable(t) {
@@ -698,8 +720,8 @@ class Fn {
698
720
  return this.translate;
699
721
  }
700
722
  }
701
- const ka = new Fn();
702
- function wa(e, t, n = []) {
723
+ const Ma = new Fn();
724
+ function Ca(e, t, n = []) {
703
725
  const r = e.createdAt;
704
726
  if (!r) return [];
705
727
  const o = new Set(n);
@@ -708,10 +730,10 @@ function wa(e, t, n = []) {
708
730
  function jn(e) {
709
731
  return e.createdAt ?? 0;
710
732
  }
711
- function Ma(e) {
733
+ function Oa(e) {
712
734
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
713
735
  }
714
- function Oa(e) {
736
+ function Na(e) {
715
737
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
716
738
  }
717
739
  const Ue = [
@@ -732,16 +754,16 @@ const Ue = [
732
754
  */
733
755
  { id: "decision", defaultFlag: "isDefaultDecision", label: "Beslissingen" }
734
756
  ];
735
- function Ca(e) {
757
+ function xa(e) {
736
758
  return Ue.find((t) => t.id === e)?.defaultFlag;
737
759
  }
738
- function Na(e) {
760
+ function Da(e) {
739
761
  const t = {};
740
762
  for (const n of Ue)
741
763
  t[n.defaultFlag] = e?.[n.defaultFlag] === !0;
742
764
  return t;
743
765
  }
744
- function xa(e, t) {
766
+ function Ra(e, t) {
745
767
  const n = {};
746
768
  for (const r of Ue) {
747
769
  const o = r.defaultFlag;
@@ -756,26 +778,26 @@ const Bn = {
756
778
  audio: "audio",
757
779
  video: "video"
758
780
  };
759
- function Da(e, t) {
781
+ function $a(e, t) {
760
782
  if (t === "text") return !0;
761
783
  if (!e?.in?.length) return;
762
784
  const n = Bn[t];
763
785
  return n ? e.in.includes(n) : !1;
764
786
  }
765
- const H = ["fast", "standard", "deep"], nt = (e, t) => {
766
- const n = H.indexOf(e), r = Math.min(H.length - 1, Math.max(0, n + t));
767
- return H[r];
768
- }, Se = (e) => H.indexOf(e);
769
- function Hn(e) {
787
+ const G = ["fast", "standard", "deep"], nt = (e, t) => {
788
+ const n = G.indexOf(e), r = Math.min(G.length - 1, Math.max(0, n + t));
789
+ return G[r];
790
+ }, Se = (e) => G.indexOf(e);
791
+ function Gn(e) {
770
792
  const t = [];
771
793
  let n;
772
794
  return e.expectsSchema ? (n = "fast", t.push("schema-antwoord")) : (e.mode ?? "agent") === "ask" && !e.toolCount ? (n = "fast", t.push("vraag zonder tools")) : e.toolCount || e.hasAttachments ? (n = "standard", t.push(e.hasAttachments ? "bijlagen" : "tools beschikbaar")) : (n = "standard", t.push("standaard")), e.repair && (n = nt(n, 1), t.push("herstelbeurt: een tier omhoog")), e.budgetPressure === "soft" && n !== "fast" && (n = nt(n, -1), t.push("budget bijna op: een tier omlaag in plaats van weigeren")), e.maxTier && Se(n) > Se(e.maxTier) && (n = e.maxTier, t.push(`plafond van de rol: ${e.maxTier}`)), { tier: n, reasons: t };
773
795
  }
774
- function Ra(e, t, n) {
775
- const r = Hn(t);
796
+ function La(e, t, n) {
797
+ const r = Gn(t);
776
798
  if (!e) return { ...r, ...n, routed: !1 };
777
799
  for (let o = Se(r.tier); o >= 0; o--) {
778
- const i = H[o], s = e[i];
800
+ const i = G[o], s = e[i];
779
801
  if (!s?.accountId || !s.model) continue;
780
802
  const a = i === r.tier ? r.reasons : [...r.reasons, `${r.tier} niet ingericht, ${i} gebruikt`];
781
803
  return { tier: i, reasons: a, accountId: s.accountId, model: s.model, routed: !0 };
@@ -788,7 +810,7 @@ function Ra(e, t, n) {
788
810
  };
789
811
  }
790
812
  const rt = 255, ot = 2, it = 10;
791
- function $a(e) {
813
+ function Pa(e) {
792
814
  const t = Object.keys(e);
793
815
  if (!t.length) return "geen vragen gesteld";
794
816
  for (const n of t) {
@@ -808,10 +830,10 @@ function $a(e) {
808
830
  }
809
831
  return null;
810
832
  }
811
- function La(e, t = 0.9, n = 0.6) {
833
+ function Ka(e, t = 0.9, n = 0.6) {
812
834
  return Number.isFinite(e) ? e >= t ? "act" : e >= n ? "check" : "refuse" : "refuse";
813
835
  }
814
- const Pa = [
836
+ const Ua = [
815
837
  "counting or arithmetic",
816
838
  "comparing dates or durations",
817
839
  "judging whether two numbers are close",
@@ -923,23 +945,23 @@ const Pa = [
923
945
  function oe(e) {
924
946
  return Wt.find((t) => t.id === e);
925
947
  }
926
- function Ka(e) {
948
+ function Fa(e) {
927
949
  return oe(e)?.label ?? e;
928
950
  }
929
- function Ua(e, t = "gpt-5-mini") {
951
+ function ja(e, t = "gpt-5-mini") {
930
952
  return oe(e)?.defaultModel ?? t;
931
953
  }
932
- function Fa(e) {
954
+ function Ba(e) {
933
955
  return Wt.filter((t) => t.capabilities.includes(e));
934
956
  }
935
- function ja(e) {
957
+ function Ga(e) {
936
958
  const t = oe(e);
937
959
  return !!t && !t.baseUrl;
938
960
  }
939
- function Ba(e, t) {
961
+ function Ha(e, t) {
940
962
  return t === "text" ? !0 : oe(e)?.attachmentKinds?.includes(t) === !0;
941
963
  }
942
- function Ha(e, t) {
964
+ function Wa(e, t) {
943
965
  if (!e.enabled) return "ok";
944
966
  const n = st(e.hardLimitNanos), r = st(e.softLimitNanos);
945
967
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
@@ -947,21 +969,21 @@ function Ha(e, t) {
947
969
  function st(e) {
948
970
  return typeof e == "number" ? e : void 0;
949
971
  }
950
- function Gn(e, t = "month") {
972
+ function Hn(e, t = "month") {
951
973
  const n = new Date(e);
952
974
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
953
975
  }
954
- function Ga(e, t = "month") {
955
- const n = new Date(Gn(e, t));
976
+ function Va(e, t = "month") {
977
+ const n = new Date(Hn(e, t));
956
978
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
957
979
  }
958
- function Wa(e) {
980
+ function za(e) {
959
981
  return e === "ask" || e === "draft" || e === "agent";
960
982
  }
961
- function Va(e) {
983
+ function Ya(e) {
962
984
  return e?.listeningEnabled !== !1;
963
985
  }
964
- const za = [
986
+ const Xa = [
965
987
  { id: "agent", label: "Agent", labelSource: "user" },
966
988
  { id: "team", label: "Team", labelSource: "team" },
967
989
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -983,14 +1005,14 @@ function V(e, t) {
983
1005
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
984
1006
  }
985
1007
  const Wn = 36e5, Vn = 864e5;
986
- function Ya(e, t, n) {
1008
+ function qa(e, t, n) {
987
1009
  const r = n === "hour" ? Wn : Vn, o = [];
988
1010
  for (let i = V(e, n); i <= t; i += r)
989
1011
  o.push(W(i, n));
990
1012
  return o;
991
1013
  }
992
1014
  const zn = /* @__PURE__ */ new Set(["time"]);
993
- function Xa(e, t, n) {
1015
+ function Qa(e, t, n) {
994
1016
  if (!e) return [];
995
1017
  const r = new Set(e.supportedDimensions ?? []);
996
1018
  return t.filter((o) => r.has(o.id) && !zn.has(o.id)).map((o) => ({
@@ -999,11 +1021,11 @@ function Xa(e, t, n) {
999
1021
  options: o.options?.length ? o.options : n[o.id] ?? []
1000
1022
  })).filter((o) => o.options.length > 0);
1001
1023
  }
1002
- function qa(e, t) {
1024
+ function Ja(e, t) {
1003
1025
  const n = t.find((o) => o.id === e.dimensionId), r = n?.options.find((o) => o.value === e.value);
1004
1026
  return `${n?.label ?? e.dimensionId} · ${r?.label ?? e.value}`;
1005
1027
  }
1006
- function Qa(e) {
1028
+ function Za(e) {
1007
1029
  return { value: e.id, label: `${e.category} · ${e.label}` };
1008
1030
  }
1009
1031
  const Yn = [
@@ -1013,7 +1035,7 @@ const Yn = [
1013
1035
  function qn(e, t) {
1014
1036
  return `${e}.usage.${t}`;
1015
1037
  }
1016
- function Ja(e, t) {
1038
+ function ec(e, t) {
1017
1039
  return t.map((n) => ({
1018
1040
  id: qn(e, n.unit),
1019
1041
  label: n.label,
@@ -1028,7 +1050,7 @@ function Ja(e, t) {
1028
1050
  ]
1029
1051
  }));
1030
1052
  }
1031
- async function Za(e, t) {
1053
+ async function tc(e, t) {
1032
1054
  let n = 0, r = 0;
1033
1055
  for (const o of e)
1034
1056
  try {
@@ -1040,22 +1062,22 @@ async function Za(e, t) {
1040
1062
  }
1041
1063
  return { decided: n, waiting: r };
1042
1064
  }
1043
- function ec(e) {
1065
+ function nc(e) {
1044
1066
  return e.approvalRequestIds?.length ? [...e.approvalRequestIds] : e.approvalRequestId ? [e.approvalRequestId] : [];
1045
1067
  }
1046
- function tc(e, t) {
1068
+ function rc(e, t) {
1047
1069
  return e.filter((r) => !r.enabled || r.scopeKind !== t.scopeKind || r.act !== t.act ? !1 : r.minAmountCents == null ? !0 : t.amountCents != null && t.amountCents >= r.minAmountCents).sort((r, o) => {
1048
1070
  const i = r.minAmountCents ?? -1;
1049
1071
  return (o.minAmountCents ?? -1) - i || r.id.localeCompare(o.id);
1050
1072
  })[0];
1051
1073
  }
1052
- function nc(e, t, n, r) {
1074
+ function oc(e, t, n, r) {
1053
1075
  const o = new Set(e.userIds);
1054
1076
  for (const i of e.teamIds)
1055
1077
  for (const s of t[i] ?? []) o.add(s);
1056
1078
  return r || o.delete(n), [...o];
1057
1079
  }
1058
- function rc(e, t) {
1080
+ function ic(e, t) {
1059
1081
  if (e.status !== "pending" || e.decisions.some((i) => i.userId === t.userId)) return e;
1060
1082
  const n = [...e.decisions, t], r = e.pendingUserIds.filter((i) => i !== t.userId);
1061
1083
  if (t.decision === "rejected")
@@ -1069,7 +1091,7 @@ function rc(e, t) {
1069
1091
  settledAt: o ? t.at : void 0
1070
1092
  };
1071
1093
  }
1072
- const Vt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), at = 200, ct = 100, lt = 200, ut = 12, dt = 4, ft = 10, Qn = 8, pt = 12, zt = 4e3, Z = 500, oc = 1024 * 1024, Jn = /* @__PURE__ */ new Set([
1094
+ const Vt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), at = 200, ct = 100, lt = 200, ut = 12, dt = 4, ft = 10, Qn = 8, pt = 12, zt = 4e3, Z = 500, sc = 1024 * 1024, Jn = /* @__PURE__ */ new Set([
1073
1095
  "heading",
1074
1096
  "paragraph",
1075
1097
  "list",
@@ -1145,7 +1167,7 @@ function j(e, t = 200) {
1145
1167
  function ir(e, t = "info") {
1146
1168
  return typeof e == "string" && Vt.has(e) ? e : t;
1147
1169
  }
1148
- function ic(e, t = () => {
1170
+ function ac(e, t = () => {
1149
1171
  }) {
1150
1172
  if (!Array.isArray(e)) return [];
1151
1173
  const n = [];
@@ -1364,10 +1386,10 @@ function ic(e, t = () => {
1364
1386
  }
1365
1387
  return n;
1366
1388
  }
1367
- function sc(e) {
1389
+ function cc(e) {
1368
1390
  return JSON.stringify(e).length;
1369
1391
  }
1370
- function ac(e) {
1392
+ function lc(e) {
1371
1393
  return {
1372
1394
  blocks: e.length,
1373
1395
  types: e.map((t) => t.type),
@@ -1455,44 +1477,44 @@ function ar(e, t) {
1455
1477
  `;
1456
1478
  }
1457
1479
  const Yt = (e) => `user:${e}`, Xt = (e) => `team:${e}`;
1458
- function cc(e) {
1480
+ function uc(e) {
1459
1481
  const t = /* @__PURE__ */ new Set();
1460
1482
  for (const n of e ?? [])
1461
1483
  n?.id && (n.kind === "user" && t.add(Yt(n.id)), n.kind === "team" && t.add(Xt(n.id)));
1462
1484
  return [...t].sort();
1463
1485
  }
1464
- function lc(e, t) {
1486
+ function dc(e, t) {
1465
1487
  return [Yt(e), ...t.map(Xt)];
1466
1488
  }
1467
- function uc(e) {
1489
+ function fc(e) {
1468
1490
  const t = /* @__PURE__ */ new Set();
1469
1491
  for (const n of e ?? [])
1470
1492
  n?.kind && t.add(n.kind);
1471
1493
  return [...t];
1472
1494
  }
1473
- const cr = ["done", "escalated"], dc = ["open", "waiting"];
1474
- function fc(e) {
1495
+ const cr = ["done", "escalated"], pc = ["open", "waiting"];
1496
+ function mc(e) {
1475
1497
  return cr.includes(e);
1476
1498
  }
1477
1499
  const lr = "assignment";
1478
- function pc(e) {
1500
+ function hc(e) {
1479
1501
  return `${lr}:${e}`;
1480
1502
  }
1481
- function mc(e, t, n, r) {
1503
+ function gc(e, t, n, r) {
1482
1504
  if (e.direction === "inbound") return !0;
1483
1505
  if (e.author?.type === "user" && e.author.id === t) return !1;
1484
1506
  const o = e.payload?.mentions;
1485
1507
  return Array.isArray(o) && o.includes(t) || r && r === t ? !0 : n === "reply";
1486
1508
  }
1487
- function hc(e) {
1509
+ function yc(e) {
1488
1510
  const { targetAuthorId: t, reactorId: n, agentId: r, on: o } = e;
1489
1511
  return !o || !t || t !== r ? !1 : n !== r;
1490
1512
  }
1491
- function gc(e) {
1513
+ function bc(e) {
1492
1514
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1493
1515
  }
1494
1516
  const ur = 12;
1495
- function yc(e, t, n = ur) {
1517
+ function _c(e, t, n = ur) {
1496
1518
  const r = t + 1;
1497
1519
  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 ? {
1498
1520
  status: "escalated",
@@ -1507,7 +1529,7 @@ function yc(e, t, n = ur) {
1507
1529
  };
1508
1530
  }
1509
1531
  const dr = 2;
1510
- function bc(e, t, n, r) {
1532
+ function Ac(e, t, n, r) {
1511
1533
  if (t === n)
1512
1534
  return "een agent schakelt zichzelf niet in";
1513
1535
  if (!r?.includes(t))
@@ -1518,14 +1540,14 @@ function bc(e, t, n, r) {
1518
1540
  const i = Math.max(0, o.length - 1);
1519
1541
  return i >= dr ? `er zijn al ${i} agents ingeschakeld voor deze vraag; dieper delegeren mag niet` : null;
1520
1542
  }
1521
- const _c = "organization.business-entities.list";
1522
- function Ac(e, t, n) {
1543
+ const Ec = "organization.business-entities.list";
1544
+ function Sc(e, t, n) {
1523
1545
  return e ? e === t : n;
1524
1546
  }
1525
- function Ec(e) {
1547
+ function Tc(e) {
1526
1548
  return e.isDefault === !0 ? [e.id, ""] : [e.id];
1527
1549
  }
1528
- function Sc(e, t, n) {
1550
+ function Ic(e, t, n) {
1529
1551
  const r = /* @__PURE__ */ new Map();
1530
1552
  for (const o of e) o.businessEntityId || r.set(o[t], o);
1531
1553
  if (n)
@@ -1544,7 +1566,7 @@ function pr(e) {
1544
1566
  t += Number(e[n]) * (n % 2 === 0 ? 3 : 1);
1545
1567
  return (10 - t % 10) % 10;
1546
1568
  }
1547
- function Tc(e, t) {
1569
+ function vc(e, t) {
1548
1570
  const n = t.trim(), r = fr(n), o = [{ sku: n }, { barcodes: { $in: [n] } }];
1549
1571
  return r && o.push({ gtin: r }), { organizationId: e, $or: o };
1550
1572
  }
@@ -1569,7 +1591,7 @@ function $(e, t = {}) {
1569
1591
  c > 0 && (s.length - c) % 3 === 0 && (l += r), l += s[c];
1570
1592
  return `${o ? "-" : ""}${l}${n}${a}`;
1571
1593
  }
1572
- function Ic(e) {
1594
+ function kc(e) {
1573
1595
  const t = e.trim().replace(/[\s ]/g, "");
1574
1596
  if (!t) return;
1575
1597
  const n = t.replace(/^[-+]?[^\d.,-]*/, "").replace(/[^\d.,-]+$/, ""), r = /^-/.test(t) || /-$/.test(t), o = n.replace(/-/g, "");
@@ -1584,7 +1606,7 @@ function Ic(e) {
1584
1606
  function hr(e) {
1585
1607
  return /^\d+$/.test(e) ? !0 : e.includes(".") && e.includes(",") ? !1 : /^\d{1,3}([.,]\d{3})*$/.test(e);
1586
1608
  }
1587
- function vc(e) {
1609
+ function wc(e) {
1588
1610
  return e.costPriceCents == null ? e.netCents : e.netCents - z(e.costPriceCents * e.quantity);
1589
1611
  }
1590
1612
  const gr = [
@@ -1640,7 +1662,7 @@ function br(e, t) {
1640
1662
  return e.unitPriceCents != null ? e.unitPriceCents : e.discountPercent != null ? z(t * (1 - e.discountPercent / 100)) : t;
1641
1663
  }
1642
1664
  const _r = "manual";
1643
- function kc(e, t, n, r) {
1665
+ function Mc(e, t, n, r) {
1644
1666
  return e.map((o) => {
1645
1667
  if (o.kind !== "product" || o.priceSourceKey === _r) return o;
1646
1668
  const i = t.find((a) => a.id === o.productId);
@@ -1649,23 +1671,23 @@ function kc(e, t, n, r) {
1649
1671
  return s.unitPriceCents === o.unitPriceCents && s.sourceKey === o.priceSourceKey ? o : { ...o, unitPriceCents: s.unitPriceCents, priceSourceKey: s.sourceKey };
1650
1672
  });
1651
1673
  }
1652
- const wc = ["piece", "hour", "day", "month", "km", "license"], Mc = /* @__PURE__ */ new Set(["mail", "message"]);
1674
+ const Cc = ["piece", "hour", "day", "month", "km", "license"], Oc = /* @__PURE__ */ new Set(["mail", "message"]);
1653
1675
  function Ar(e, t) {
1654
1676
  const n = e.settings?.signatures?.[t];
1655
1677
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1656
1678
  }
1657
- function Oc(e, t, n, r = "html") {
1679
+ function Nc(e, t, n, r = "html") {
1658
1680
  if (!e) return n;
1659
1681
  const o = Ar(e, t);
1660
1682
  return o ? `${n}${r === "text" ? `
1661
1683
 
1662
1684
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${o.body}` : n;
1663
1685
  }
1664
- function Cc(e) {
1686
+ function xc(e) {
1665
1687
  return e.endpoints ?? [];
1666
1688
  }
1667
- const Nc = ["lead", "opportunity", "customer", "former"], xc = ["new", "working", "unqualified"];
1668
- function Dc(e) {
1689
+ const Dc = ["lead", "opportunity", "customer", "former"], Rc = ["new", "working", "unqualified"];
1690
+ function $c(e) {
1669
1691
  return [e.firstName, e.lastName].filter(Boolean).join(" ").trim();
1670
1692
  }
1671
1693
  const Er = [
@@ -1675,29 +1697,30 @@ const Er = [
1675
1697
  "scopes",
1676
1698
  "cities",
1677
1699
  "parentCompanyIds"
1678
- ], Sr = ["openDeal", "hasContacts"], Rc = {
1700
+ ], Sr = ["openDeal", "hasContacts"], Lc = {
1679
1701
  contact: ["stages", "leadStatuses", "sources", "scopes", "cities", "openDeal"],
1680
- company: ["sources", "scopes", "cities", "parentCompanyIds", "hasContacts"]
1681
- }, $c = ["updatedAt", "createdAt", "name"], Lc = ["list"];
1682
- function Pc(e) {
1702
+ company: ["stages", "sources", "scopes", "cities", "parentCompanyIds", "hasContacts"]
1703
+ }, Pc = ["updatedAt", "createdAt", "name"], Kc = ["list"];
1704
+ function Uc(e) {
1683
1705
  return e.search?.trim() || e.createdWithinDays || Sr.some((t) => e[t]) || Er.some((t) => e[t]?.length) ? !1 : !Object.values(e.fields ?? {}).some((t) => t.length);
1684
1706
  }
1707
+ const Tr = "CRM_NOTE_ADDED", Fc = "crm_activity", Ir = "CRM_CALL_LOGGED", jc = "CRM_STAGE_CHANGED", Bc = ["phone", "meeting", "video"], Gc = ["callback", "interested", "no_answer", "not_interested"], Hc = (e) => e === Tr || e === Ir, Wc = (e) => e.payload.call?.at ?? e.createdAt ?? 0;
1685
1708
  function L(e) {
1686
1709
  const t = (e ?? "").trim().toLowerCase();
1687
1710
  if (t)
1688
1711
  return t.split(/[-_]/)[0] || void 0;
1689
1712
  }
1690
- function Kc(e) {
1713
+ function Vc(e) {
1691
1714
  return L(e.contactLocale) ?? L(e.companyLocale) ?? L(e.organizationLocale);
1692
1715
  }
1693
- function Uc(e, t, n, r) {
1716
+ function zc(e, t, n, r) {
1694
1717
  const o = e.filter((a) => a.key === t && !a.archived);
1695
1718
  if (o.length === 0) return;
1696
1719
  const i = L(n), s = L(r);
1697
1720
  return o.find((a) => L(a.locale) === i) ?? o.find((a) => L(a.locale) === s) ?? // A row with no language at all is the single-language case: it is for everybody.
1698
1721
  o.find((a) => !a.locale) ?? o[0];
1699
1722
  }
1700
- const Tr = /\{([a-zA-Z0-9_.]+)\}/g;
1723
+ const vr = /\{([a-zA-Z0-9_.]+)\}/g;
1701
1724
  function qt(e, t) {
1702
1725
  let n = e;
1703
1726
  for (const r of t.split(".")) {
@@ -1706,17 +1729,17 @@ function qt(e, t) {
1706
1729
  }
1707
1730
  return n;
1708
1731
  }
1709
- function Ir(e) {
1732
+ function kr(e) {
1710
1733
  return typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" ? String(e) : "";
1711
1734
  }
1712
- function vr(e, t, n) {
1735
+ function wr(e, t, n) {
1713
1736
  const r = [];
1714
- return { text: e.replace(Tr, (i, s) => {
1737
+ return { text: e.replace(vr, (i, s) => {
1715
1738
  const a = qt(t, s);
1716
- return a == null || a === "" ? (r.includes(s) || r.push(s), n ?? `{${s}}`) : Ir(a);
1739
+ return a == null || a === "" ? (r.includes(s) || r.push(s), n ?? `{${s}}`) : kr(a);
1717
1740
  }), unresolved: r };
1718
1741
  }
1719
- function kr(e, t) {
1742
+ function Mr(e, t) {
1720
1743
  if (!e) return !0;
1721
1744
  const n = qt(t, e.key);
1722
1745
  if (e.exists !== void 0) {
@@ -1725,14 +1748,14 @@ function kr(e, t) {
1725
1748
  }
1726
1749
  return e.equals !== void 0 ? n === e.equals : !0;
1727
1750
  }
1728
- function Fc(e, t, n, r, o) {
1751
+ function Yc(e, t, n, r, o) {
1729
1752
  const i = [], s = [], a = /* @__PURE__ */ new Set(), l = (c) => {
1730
- const d = vr(c, t, o);
1753
+ const d = wr(c, t, o);
1731
1754
  for (const u of d.unresolved) i.includes(u) || i.push(u);
1732
1755
  return d.text;
1733
1756
  };
1734
1757
  for (const c of e) {
1735
- if (c.block_id && !kr(n?.[c.block_id], t)) continue;
1758
+ if (c.block_id && !Mr(n?.[c.block_id], t)) continue;
1736
1759
  const d = c.block_id ? r?.[c.block_id] : void 0;
1737
1760
  if (d && c.block_id) {
1738
1761
  a.add(c.block_id), s.push(...d);
@@ -1822,7 +1845,7 @@ function Fc(e, t, n, r, o) {
1822
1845
  unusedSlots: Object.keys(r ?? {}).filter((c) => !a.has(c))
1823
1846
  };
1824
1847
  }
1825
- function wr(e) {
1848
+ function Cr(e) {
1826
1849
  const t = e?.address, n = [t?.street, t?.houseNumber].filter(Boolean).join(" "), r = [t?.postalCode, t?.city].filter(Boolean).join(" ");
1827
1850
  return {
1828
1851
  name: e?.name ?? "",
@@ -1836,8 +1859,8 @@ function wr(e) {
1836
1859
  ...e?.logo ? { logo: e.logo } : {}
1837
1860
  };
1838
1861
  }
1839
- function jc(e) {
1840
- return wr({
1862
+ function Xc(e) {
1863
+ return Cr({
1841
1864
  name: e?.billing?.companyName || e?.name || e?.displayName || "",
1842
1865
  address: e?.address,
1843
1866
  kvkNumber: e?.billing?.kvkNumber,
@@ -1847,7 +1870,7 @@ function jc(e) {
1847
1870
  logo: e?.logo
1848
1871
  });
1849
1872
  }
1850
- function Mr(e, t, n, r = Date.now()) {
1873
+ function Or(e, t, n, r = Date.now()) {
1851
1874
  const o = n.filter((i) => i.ok).length;
1852
1875
  return {
1853
1876
  suite: e,
@@ -1857,10 +1880,10 @@ function Mr(e, t, n, r = Date.now()) {
1857
1880
  perCase: [...n]
1858
1881
  };
1859
1882
  }
1860
- function Bc(e) {
1883
+ function qc(e) {
1861
1884
  return e.perCase.filter((t) => !t.ok).map((t) => `${t.caseId}: ${t.note ?? "onverwacht resultaat"}`);
1862
1885
  }
1863
- async function Hc(e, t, n, r, o = Date.now()) {
1886
+ async function Qc(e, t, n, r, o = Date.now()) {
1864
1887
  const i = [];
1865
1888
  for (const s of n)
1866
1889
  try {
@@ -1872,26 +1895,26 @@ async function Hc(e, t, n, r, o = Date.now()) {
1872
1895
  note: `beoordeling mislukt: ${a?.message ?? String(a)}`
1873
1896
  });
1874
1897
  }
1875
- return Mr(e, t, i, o);
1898
+ return Or(e, t, i, o);
1876
1899
  }
1877
- const Or = 36e5, Cr = 864e5, P = -1 / 0, Gc = (e) => e.score > P, ne = {
1900
+ const Nr = 36e5, xr = 864e5, P = -1 / 0, Jc = (e) => e.score > P, ne = {
1878
1901
  urgent: 40,
1879
1902
  high: 25,
1880
1903
  normal: 10,
1881
1904
  low: 0
1882
1905
  };
1883
- function Wc(e) {
1906
+ function Zc(e) {
1884
1907
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1885
1908
  }
1886
- const Nr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Qt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1887
- function xr(e, t) {
1888
- return !!(e && Nr.test(e) || t && Qt.test(t));
1909
+ const Dr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Qt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1910
+ function Rr(e, t) {
1911
+ return !!(e && Dr.test(e) || t && Qt.test(t));
1889
1912
  }
1890
- const Dr = 3, Rr = 600;
1891
- function Vc(e, t) {
1892
- return e >= Dr || t >= Rr;
1913
+ const $r = 3, Lr = 600;
1914
+ function el(e, t) {
1915
+ return e >= $r || t >= Lr;
1893
1916
  }
1894
- const $r = [
1917
+ const Pr = [
1895
1918
  "list-unsubscribe",
1896
1919
  "list-unsubscribe-post",
1897
1920
  "list-id",
@@ -1901,90 +1924,90 @@ const $r = [
1901
1924
  "feedback-id",
1902
1925
  "x-mailer"
1903
1926
  ];
1904
- function zc(e) {
1927
+ function tl(e) {
1905
1928
  const t = {};
1906
1929
  for (const n of e) {
1907
1930
  const r = n.name?.toLowerCase();
1908
- r && n.value !== void 0 && $r.includes(r) && (t[r] = n.value);
1931
+ r && n.value !== void 0 && Pr.includes(r) && (t[r] = n.value);
1909
1932
  }
1910
1933
  return t;
1911
1934
  }
1912
- const Lr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, Pr = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1913
- function Yc(e) {
1935
+ const Kr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, Ur = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1936
+ function nl(e) {
1914
1937
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1915
- if (r && r !== "no" || t["x-auto-response-suppress"] || n && Lr.test(n))
1938
+ if (r && r !== "no" || t["x-auto-response-suppress"] || n && Kr.test(n))
1916
1939
  return "automated";
1917
1940
  const o = t.precedence?.toLowerCase();
1918
- if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && Qt.test(e.body) || n && Pr.test(n))
1941
+ if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && Qt.test(e.body) || n && Ur.test(n))
1919
1942
  return "marketing";
1920
1943
  }
1921
- function Kr(e, t) {
1944
+ function Fr(e, t) {
1922
1945
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1923
1946
  }
1924
- const Ur = ["open"], Fr = 1e3, jr = 72;
1925
- function Br(e) {
1947
+ const jr = ["open"], Br = 1e3, Gr = 72;
1948
+ function Hr(e) {
1926
1949
  return e.lastActivityAt ?? (e.createdAt ? new Date(jn(e)).getTime() : 0);
1927
1950
  }
1928
- function Hr(e, t) {
1929
- return Gr(t.remindersById?.[e.id], e, t.now);
1951
+ function Wr(e, t) {
1952
+ return Vr(t.remindersById?.[e.id], e, t.now);
1930
1953
  }
1931
- function Gr(e, t, n) {
1954
+ function Vr(e, t, n) {
1932
1955
  return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1933
1956
  }
1934
- const Jt = (e) => $n(e) === "outbound_message", Zt = (e) => Ur.includes(e);
1957
+ const Jt = (e) => $n(e) === "outbound_message", Zt = (e) => jr.includes(e);
1935
1958
  function je(e, t) {
1936
- return Math.max(0, (t - Br(e)) / Or);
1959
+ return Math.max(0, (t - Hr(e)) / Nr);
1937
1960
  }
1938
- function Wr(e, t) {
1961
+ function zr(e, t) {
1939
1962
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1940
1963
  return typeof n == "number" && n > 0 ? n : void 0;
1941
1964
  }
1942
- function Xc(e) {
1965
+ function rl(e) {
1943
1966
  const t = {};
1944
1967
  for (const n of e)
1945
1968
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1946
1969
  return t;
1947
1970
  }
1948
- function qc(e, t, n) {
1971
+ function ol(e, t, n) {
1949
1972
  if (!Zt(e.status) || e.firstResponseAt) return !1;
1950
- const r = Wr(e, n);
1973
+ const r = zr(e, n);
1951
1974
  return r !== void 0 && je(e, t) > r;
1952
1975
  }
1953
- function Vr(e, t) {
1976
+ function Yr(e, t) {
1954
1977
  const n = e.lastActivityPreview;
1955
- return n?.direction !== "outbound" || !Jt(n.type) ? !1 : je(e, t) < jr;
1978
+ return n?.direction !== "outbound" || !Jt(n.type) ? !1 : je(e, t) < Gr;
1956
1979
  }
1957
- function Qc(e, t) {
1980
+ function il(e, t) {
1958
1981
  if (!Zt(e.status)) return { score: P, reasons: [] };
1959
1982
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: P, reasons: [] };
1960
- if (Vr(e, t.now)) return { score: P, reasons: [] };
1961
- if (Hr(e, t)) return { score: P, reasons: [] };
1983
+ if (Yr(e, t.now)) return { score: P, reasons: [] };
1984
+ if (Wr(e, t)) return { score: P, reasons: [] };
1962
1985
  let n = 0;
1963
1986
  const r = [], o = e.priority ?? "normal";
1964
- ne[o] > 0 && (n += ne[o], r.push(`priority:${o}`)), Kr(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1987
+ ne[o] > 0 && (n += ne[o], r.push(`priority:${o}`)), Fr(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1965
1988
  const i = je(e, t.now);
1966
1989
  if (i > 0) {
1967
1990
  const l = Math.min(i * 2, 30);
1968
1991
  n += l, i >= 1 && r.push(`waiting:${Math.round(i)}h`);
1969
1992
  }
1970
1993
  const s = e.lastActivityPreview;
1971
- return s?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), s?.direction === "outbound" && Jt(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") || xr(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= Fr, r.push("bulk")), { score: n, reasons: r };
1994
+ return s?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), s?.direction === "outbound" && Jt(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") || Rr(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= Br, r.push("bulk")), { score: n, reasons: r };
1972
1995
  }
1973
- const Jc = (e) => !!e.assignedUserId || !!e.assignedInboxId, Zc = (e) => e.status === "closed", el = (e) => ({
1996
+ const sl = (e) => !!e.assignedUserId || !!e.assignedInboxId, al = (e) => e.status === "closed", cl = (e) => ({
1974
1997
  urgent: 10,
1975
1998
  high: 5,
1976
1999
  normal: 2,
1977
2000
  low: 1
1978
- })[e.priority] || 0, tl = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1979
- function nl(e, t) {
2001
+ })[e.priority] || 0, ll = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
2002
+ function ul(e, t) {
1980
2003
  const n = e.labels ?? [];
1981
2004
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1982
2005
  }
1983
- function rl(e, t, n) {
2006
+ function dl(e, t, n) {
1984
2007
  const r = e.translations ?? [];
1985
2008
  return r.find((o) => o.locale === t) ?? (n ? r.find((o) => o.locale === n) : void 0) ?? { locale: t };
1986
2009
  }
1987
- const ol = "article", gt = [
2010
+ const fl = "article", gt = [
1988
2011
  { code: "nl", label: "Nederlands", english: "Dutch" },
1989
2012
  { code: "en", label: "English", english: "English" },
1990
2013
  { code: "de", label: "Deutsch", english: "German" },
@@ -2003,15 +2026,15 @@ function en(e) {
2003
2026
  const t = (e ?? "").toLowerCase();
2004
2027
  return gt.find((n) => n.code === t) ?? gt.find((n) => n.code === t.split("-")[0]);
2005
2028
  }
2006
- function il(e) {
2029
+ function pl(e) {
2007
2030
  return en(e)?.label ?? e;
2008
2031
  }
2009
- function sl(e) {
2032
+ function ml(e) {
2010
2033
  const t = en(e);
2011
2034
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
2012
2035
  }
2013
2036
  const tn = 3;
2014
- function zr(e, t) {
2037
+ function Xr(e, t) {
2015
2038
  const n = /* @__PURE__ */ new Set();
2016
2039
  let r = 1, o = t.get(e)?.parentId;
2017
2040
  for (; o; ) {
@@ -2020,15 +2043,15 @@ function zr(e, t) {
2020
2043
  }
2021
2044
  return r;
2022
2045
  }
2023
- function al(e, t, n) {
2046
+ function hl(e, t, n) {
2024
2047
  if (!e) return !0;
2025
2048
  if (e === t) return !1;
2026
2049
  const r = new Map(n.map((s) => [s.id, s]));
2027
- if (!r.has(e) || t && Yr(e, t, r)) return !1;
2028
- const o = zr(e, r), i = t ? nn(t, n) : 1;
2050
+ if (!r.has(e) || t && qr(e, t, r)) return !1;
2051
+ const o = Xr(e, r), i = t ? nn(t, n) : 1;
2029
2052
  return o + i <= tn;
2030
2053
  }
2031
- function Yr(e, t, n) {
2054
+ function qr(e, t, n) {
2032
2055
  const r = /* @__PURE__ */ new Set();
2033
2056
  let o = n.get(e)?.parentId;
2034
2057
  for (; o; ) {
@@ -2044,17 +2067,17 @@ function nn(e, t, n = /* @__PURE__ */ new Set()) {
2044
2067
  const r = t.filter((o) => o.parentId === e);
2045
2068
  return r.length ? 1 + Math.max(...r.map((o) => nn(o.id, t, n))) : 1;
2046
2069
  }
2047
- const Xr = "en";
2048
- function qr(e) {
2049
- return e.defaultLocale || e.locale || Xr;
2070
+ const Qr = "en";
2071
+ function Jr(e) {
2072
+ return e.defaultLocale || e.locale || Qr;
2050
2073
  }
2051
- function cl(e) {
2074
+ function gl(e) {
2052
2075
  const t = /* @__PURE__ */ new Set(), n = [];
2053
- for (const r of [qr(e), ...e.locales ?? []])
2076
+ for (const r of [Jr(e), ...e.locales ?? []])
2054
2077
  !r || t.has(r) || (t.add(r), n.push(r));
2055
2078
  return n;
2056
2079
  }
2057
- function ll(e, t, n) {
2080
+ function yl(e, t, n) {
2058
2081
  const r = e.translations ?? [];
2059
2082
  return r.find((o) => o.locale === t)?.name ?? (n ? r.find((o) => o.locale === n)?.name : void 0) ?? e.name;
2060
2083
  }
@@ -2079,7 +2102,7 @@ function de(e) {
2079
2102
  }
2080
2103
  return null;
2081
2104
  }
2082
- function Qr(e, t) {
2105
+ function Zr(e, t) {
2083
2106
  switch (e.kind) {
2084
2107
  case "org":
2085
2108
  return !0;
@@ -2089,29 +2112,29 @@ function Qr(e, t) {
2089
2112
  return e.userId === t.userId;
2090
2113
  }
2091
2114
  }
2092
- function ul(e, t) {
2093
- return e.filter((n) => n.enabled && Qr(n.ownerScope, t));
2115
+ function bl(e, t) {
2116
+ return e.filter((n) => n.enabled && Zr(n.ownerScope, t));
2094
2117
  }
2095
- function dl(e) {
2118
+ function _l(e) {
2096
2119
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
2097
2120
  }
2098
- function fl(e) {
2121
+ function Al(e) {
2099
2122
  return `mcp__${e}__`;
2100
2123
  }
2101
- const pl = 1e3, ml = 2e3, hl = 500, gl = 12e3, yl = 4e3, Jr = ["contact", "company", "work_item"];
2102
- function bl(e) {
2124
+ const El = 1e3, Sl = 2e3, Tl = 500, Il = 12e3, vl = 4e3, eo = ["contact", "company", "work_item"];
2125
+ function kl(e) {
2103
2126
  if (!e) return !1;
2104
2127
  const t = e.slice(0, e.indexOf(":"));
2105
- return Jr.includes(t);
2128
+ return eo.includes(t);
2106
2129
  }
2107
- const _l = [
2130
+ const wl = [
2108
2131
  { key: "high", label: "tax_high", percent: 21, kind: "standard" },
2109
2132
  { key: "low", label: "tax_low", percent: 9, kind: "reduced" },
2110
2133
  { key: "zero", label: "tax_zero", percent: 0, kind: "zero" },
2111
2134
  { key: "reverse_charge", label: "tax_reverse_charge", percent: 0, kind: "reverse_charge" },
2112
2135
  { key: "exempt", label: "tax_exempt", percent: 0, kind: "exempt" }
2113
2136
  ];
2114
- function Zr(e, t) {
2137
+ function to(e, t) {
2115
2138
  return t.find((n) => n.key === e) ?? {
2116
2139
  key: e,
2117
2140
  label: e,
@@ -2119,13 +2142,13 @@ function Zr(e, t) {
2119
2142
  kind: "zero"
2120
2143
  };
2121
2144
  }
2122
- function eo(e) {
2145
+ function no(e) {
2123
2146
  if (e.kind !== "product") return 0;
2124
2147
  const t = 1 - (e.discountPercent ?? 0) / 100;
2125
2148
  return z(e.quantity * e.unitPriceCents * t);
2126
2149
  }
2127
- function Al(e, t, n) {
2128
- const r = e.map((c) => ({ ...c, netCents: eo(c), taxCents: 0 })), o = /* @__PURE__ */ new Map();
2150
+ function Ml(e, t, n) {
2151
+ const r = e.map((c) => ({ ...c, netCents: no(c), taxCents: 0 })), o = /* @__PURE__ */ new Map();
2129
2152
  for (let c = 0; c < r.length; c++) {
2130
2153
  if (r[c].kind !== "product" || r[c].optional) continue;
2131
2154
  const d = n ?? r[c].taxRateKey, u = o.get(d);
@@ -2134,7 +2157,7 @@ function Al(e, t, n) {
2134
2157
  const i = [];
2135
2158
  let s = 0, a = 0;
2136
2159
  for (const [c, d] of o) {
2137
- const u = Zr(c, t), f = d.reduce((m, S) => m + r[S].netCents, 0), p = z(f * u.percent / 100), y = mr(
2160
+ const u = to(c, t), f = d.reduce((m, S) => m + r[S].netCents, 0), p = z(f * u.percent / 100), y = mr(
2138
2161
  p,
2139
2162
  d.map((m) => r[m].netCents)
2140
2163
  );
@@ -2162,7 +2185,7 @@ function Al(e, t, n) {
2162
2185
  }
2163
2186
  };
2164
2187
  }
2165
- const El = "onboarding-source", Sl = ["support", "billing", "availability", "sales", "onboarding"], Tl = ["keep", "replace"], Be = [
2188
+ const Cl = "onboarding-source", Ol = ["support", "billing", "availability", "sales", "onboarding"], Nl = ["keep", "replace"], Be = [
2166
2189
  {
2167
2190
  key: "shift",
2168
2191
  label: "kind_shift",
@@ -2236,7 +2259,7 @@ const El = "onboarding-source", Sl = ["support", "billing", "availability", "sal
2236
2259
  absent: !0,
2237
2260
  icon: "party-popper"
2238
2261
  }
2239
- ], to = {
2262
+ ], ro = {
2240
2263
  key: "unknown",
2241
2264
  label: "kind_unknown",
2242
2265
  capacity: !1,
@@ -2244,7 +2267,7 @@ const El = "onboarding-source", Sl = ["support", "billing", "availability", "sal
2244
2267
  absent: !1
2245
2268
  };
2246
2269
  function D(e, t = Be) {
2247
- return t.find((n) => n.key === e) ?? { ...to, key: e };
2270
+ return t.find((n) => n.key === e) ?? { ...ro, key: e };
2248
2271
  }
2249
2272
  function Y(e) {
2250
2273
  return e === "published" || e === "approved";
@@ -2254,18 +2277,18 @@ function rn(e, t, n = Be) {
2254
2277
  const r = D(e.kindKey, n);
2255
2278
  return r.absent ? !1 : r.productive || r.capacity;
2256
2279
  }
2257
- function Il(e, t = Be) {
2280
+ function xl(e, t = Be) {
2258
2281
  if (!e.userId || !Y(e.status)) return !1;
2259
2282
  const n = D(e.kindKey, t);
2260
2283
  return n.capacity || n.productive || n.absent;
2261
2284
  }
2262
- const no = 864e5;
2263
- function ro(e, t) {
2264
- return Math.round((t - e) / no);
2285
+ const oo = 864e5;
2286
+ function io(e, t) {
2287
+ return Math.round((t - e) / oo);
2265
2288
  }
2266
2289
  function on(e, t) {
2267
2290
  const n = e.cycleMinutes.length;
2268
- return n === 0 ? 0 : (ro(e.anchor, t) % n + n) % n;
2291
+ return n === 0 ? 0 : (io(e.anchor, t) % n + n) % n;
2269
2292
  }
2270
2293
  function sn(e, t) {
2271
2294
  return e.effectiveFrom !== void 0 && t < e.effectiveFrom ? 0 : e.cycleMinutes[on(e, t)] ?? 0;
@@ -2281,13 +2304,13 @@ function cn(e, t, n, r) {
2281
2304
  o.filter((a) => !a.userId && a.teamId && n.includes(a.teamId))
2282
2305
  );
2283
2306
  }
2284
- function oo(e, t, n) {
2307
+ function so(e, t, n) {
2285
2308
  return e.filter(
2286
2309
  (r) => r.userId === t && (r.effectiveFrom === void 0 || r.effectiveFrom <= n)
2287
2310
  ).sort((r, o) => (o.effectiveFrom ?? 0) - (r.effectiveFrom ?? 0))[0];
2288
2311
  }
2289
2312
  const Te = 864e5;
2290
- function io(e) {
2313
+ function ao(e) {
2291
2314
  const t = Math.max(1, Math.round((e.to - e.from) / Te));
2292
2315
  return Array.from({ length: t }, (n, r) => e.from + r * Te);
2293
2316
  }
@@ -2296,7 +2319,7 @@ function Ie(e, t, n, r) {
2296
2319
  return o > 0 ? o / 1e3 : 0;
2297
2320
  }
2298
2321
  const bt = { interval: 0, day: 1, week: 2 };
2299
- function vl(e, t) {
2322
+ function Dl(e, t) {
2300
2323
  const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
2301
2324
  (u) => u.userId && Y(u.status) && D(u.kindKey).capacity
2302
2325
  ), s = n.filter(
@@ -2315,12 +2338,12 @@ function vl(e, t) {
2315
2338
  for (const u of a) {
2316
2339
  const f = t.teamIdsOf?.(u) ?? [];
2317
2340
  let p = 0, y = 0, m = 0;
2318
- for (const h of io(e)) {
2341
+ for (const h of ao(e)) {
2319
2342
  const E = Math.max(h, e.from), x = Math.min(h + Te, e.to);
2320
2343
  m++;
2321
- const C = i.filter((k) => k.userId === u).reduce((k, Xe) => k + Ie(Xe.start, Xe.end, E, x), 0);
2322
- if (C > 0) {
2323
- p += C;
2344
+ const O = i.filter((k) => k.userId === u).reduce((k, Xe) => k + Ie(Xe.start, Xe.end, E, x), 0);
2345
+ if (O > 0) {
2346
+ p += O;
2324
2347
  continue;
2325
2348
  }
2326
2349
  const w = cn(r, u, f, h), N = w ? sn(w, h) : 0;
@@ -2331,7 +2354,7 @@ function vl(e, t) {
2331
2354
  w || y++;
2332
2355
  }
2333
2356
  if (y > 0) {
2334
- const h = oo(o, u, e.from);
2357
+ const h = so(o, u, e.from);
2335
2358
  h && (p += h.weeklyMinutes * 60 * (y / 7), d("week"));
2336
2359
  }
2337
2360
  const S = s.filter((h) => h.userId === u).reduce(
@@ -2346,7 +2369,7 @@ function vl(e, t) {
2346
2369
  byUser: l
2347
2370
  };
2348
2371
  }
2349
- function kl(e, t) {
2372
+ function Rl(e, t) {
2350
2373
  if (!e.some((a) => a.userId)) return [];
2351
2374
  const n = "", r = /* @__PURE__ */ new Map();
2352
2375
  for (const a of e) {
@@ -2369,7 +2392,7 @@ function kl(e, t) {
2369
2392
  const s = r.get(n) ?? 0;
2370
2393
  return s > 0 && i.push({ requiredSeconds: s, capacitySeconds: 0, netSeconds: -s }), i;
2371
2394
  }
2372
- function wl(e, t, n, r) {
2395
+ function $l(e, t, n, r) {
2373
2396
  const o = e.filter(
2374
2397
  (s) => s.userId && Y(s.status) && !D(s.kindKey).absent
2375
2398
  ), i = Object.entries(r.byUser).map(
@@ -2391,59 +2414,59 @@ function wl(e, t, n, r) {
2391
2414
  );
2392
2415
  return i.sort((s, a) => a.freeSeconds - s.freeSeconds), i;
2393
2416
  }
2394
- const Ml = "demand-source", _t = 1e3;
2395
- function so(e, t) {
2417
+ const Ll = "demand-source", _t = 1e3;
2418
+ function co(e, t) {
2396
2419
  let n = 1;
2397
2420
  for (let r = 1; r <= e; r++)
2398
2421
  n = t * n / (r + t * n);
2399
2422
  return n;
2400
2423
  }
2401
- function ao(e, t) {
2424
+ function lo(e, t) {
2402
2425
  if (e <= 0) return 1;
2403
2426
  if (t <= 0) return 0;
2404
2427
  if (e <= t) return 1;
2405
- const n = so(e, t), r = t / e;
2428
+ const n = co(e, t), r = t / e;
2406
2429
  return n / (1 - r * (1 - n));
2407
2430
  }
2408
- function co(e, t, n, r) {
2409
- return r <= 0 ? 1 : e <= t ? 0 : 1 - ao(e, t) * Math.exp(-(e - t) * n / r);
2431
+ function uo(e, t, n, r) {
2432
+ return r <= 0 ? 1 : e <= t ? 0 : 1 - lo(e, t) * Math.exp(-(e - t) * n / r);
2410
2433
  }
2411
- function lo(e, t, n) {
2434
+ function fo(e, t, n) {
2412
2435
  return n <= 0 ? 0 : e * t / n;
2413
2436
  }
2414
- function uo(e, t, n, r) {
2437
+ function po(e, t, n, r) {
2415
2438
  if (e <= 0 || t <= 0) return 0;
2416
- const o = lo(e, t, n);
2439
+ const o = fo(e, t, n);
2417
2440
  if (o <= 0) return 0;
2418
2441
  const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2419
2442
  for (let a = Math.max(1, Math.ceil(o)); a <= _t; a++)
2420
- if (!(a <= o) && !(co(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
2443
+ if (!(a <= o) && !(uo(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
2421
2444
  return a;
2422
2445
  return _t;
2423
2446
  }
2424
- const fo = 36e5, po = 864e5;
2425
- function mo(e) {
2426
- return e === "day" ? po : fo;
2447
+ const mo = 36e5, ho = 864e5;
2448
+ function go(e) {
2449
+ return e === "day" ? ho : mo;
2427
2450
  }
2428
- function Ol(e, t) {
2451
+ function Pl(e, t) {
2429
2452
  return e.start < t.end && t.start < e.end;
2430
2453
  }
2431
2454
  function fe(e, t, n) {
2432
2455
  const r = Math.min(e.end, n) - Math.max(e.start, t);
2433
2456
  return r > 0 ? r / 1e3 : 0;
2434
2457
  }
2435
- function ho(e, t, n) {
2458
+ function yo(e, t, n) {
2436
2459
  const r = e.handleSeconds ?? 0, o = e.seconds ?? (e.volume !== void 0 ? e.volume * r : 0);
2437
2460
  if (o <= 0 && !e.volume) return { seconds: 0, headcount: 0 };
2438
2461
  const i = (t.unplannedLossPercent ?? 0) / 100, s = i > 0 && i < 1 ? 1 / (1 - i) : 1;
2439
2462
  if (t.model === "queue" && e.volume !== void 0 && r > 0) {
2440
- const a = uo(e.volume, r, n, t);
2463
+ const a = po(e.volume, r, n, t);
2441
2464
  return { seconds: o, headcount: a * s };
2442
2465
  }
2443
2466
  return { seconds: o, headcount: o / n * s };
2444
2467
  }
2445
- function Cl(e) {
2446
- const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = mo(s), l = a / 1e3, c = e.kinds, d = t.filter((m) => Y(m.status)), u = d.filter((m) => rn(m, n, c)), f = d.filter((m) => D(m.kindKey, c).capacity), p = d.filter((m) => D(m.kindKey, c).absent), y = [];
2468
+ function Kl(e) {
2469
+ const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = go(s), l = a / 1e3, c = e.kinds, d = t.filter((m) => Y(m.status)), u = d.filter((m) => rn(m, n, c)), f = d.filter((m) => D(m.kindKey, c).capacity), p = d.filter((m) => D(m.kindKey, c).absent), y = [];
2447
2470
  for (let m = V(i.from, s); m < i.to; m += a) {
2448
2471
  const S = m + a, g = W(m, s);
2449
2472
  let h = 0;
@@ -2452,10 +2475,10 @@ function Cl(e) {
2452
2475
  for (const k of f) E += fe(k, m, S);
2453
2476
  let x = 0;
2454
2477
  for (const k of p) x += fe(k, m, S);
2455
- const C = o?.[g] ?? {}, w = ho(C, r, l), N = h / l;
2478
+ const O = o?.[g] ?? {}, w = yo(O, r, l), N = h / l;
2456
2479
  y.push({
2457
2480
  period: g,
2458
- forecastVolume: C.volume,
2481
+ forecastVolume: O.volume,
2459
2482
  requiredSeconds: w.seconds,
2460
2483
  requiredHeadcount: w.headcount,
2461
2484
  scheduledSeconds: h,
@@ -2467,24 +2490,24 @@ function Cl(e) {
2467
2490
  }
2468
2491
  return y;
2469
2492
  }
2470
- function go(e, t) {
2493
+ function bo(e, t) {
2471
2494
  return e.workTypeKey ?? t?.defaultWorkTypeKey;
2472
2495
  }
2473
- function Nl(e, t, n) {
2474
- const r = go(e, t);
2496
+ function Ul(e, t, n) {
2497
+ const r = bo(e, t);
2475
2498
  return r ? n.find((o) => o.key === r)?.defaultBillable ?? !1 : !1;
2476
2499
  }
2477
- function xl(e) {
2500
+ function Fl(e) {
2478
2501
  return e.filter(
2479
2502
  (t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
2480
2503
  );
2481
2504
  }
2482
- const yo = 36e5, ve = 6048e5, bo = 8, _o = 0.5, Ao = 2;
2483
- function Eo(e) {
2505
+ const _o = 36e5, ve = 6048e5, Ao = 8, Eo = 0.5, So = 2;
2506
+ function To(e) {
2484
2507
  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;
2485
2508
  return Date.UTC(t, n - 1, r, o);
2486
2509
  }
2487
- function So(e, t, n) {
2510
+ function Io(e, t, n) {
2488
2511
  const r = [];
2489
2512
  for (let i = 0; i < n; i++) {
2490
2513
  const s = t - i * ve, a = s - ve;
@@ -2495,21 +2518,21 @@ function So(e, t, n) {
2495
2518
  }
2496
2519
  if (r.length < 2) return 1;
2497
2520
  const o = r.reduce((i, s) => i + s, 0) / r.length;
2498
- return o <= 0 ? 1 : Math.min(Ao, Math.max(_o, r[0] / o));
2521
+ return o <= 0 ? 1 : Math.min(So, Math.max(Eo, r[0] / o));
2499
2522
  }
2500
- function To(e, t) {
2523
+ function vo(e, t) {
2501
2524
  if (!e?.length) return;
2502
2525
  let n;
2503
2526
  for (const r of e)
2504
2527
  t >= r.from && t < r.to && (n = r);
2505
2528
  return n;
2506
2529
  }
2507
- function Dl(e, t, n) {
2508
- const r = Math.max(1, n?.weeks ?? bo), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
2530
+ function jl(e, t, n) {
2531
+ const r = Math.max(1, n?.weeks ?? Ao), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
2509
2532
  for (const l of e)
2510
- o.set(Eo(l.period), l.value), i.add(l.period.slice(0, 10));
2511
- const s = So(o, V(t.from, "hour"), r), a = [];
2512
- for (let l = V(t.from, "hour"); l < t.to; l += yo) {
2533
+ o.set(To(l.period), l.value), i.add(l.period.slice(0, 10));
2534
+ const s = Io(o, V(t.from, "hour"), r), a = [];
2535
+ for (let l = V(t.from, "hour"); l < t.to; l += _o) {
2513
2536
  let c = 0, d = 0;
2514
2537
  for (let p = 1; p <= r; p++) {
2515
2538
  const y = l - p * ve, S = o.get(y) ?? (i.has(W(y, "day")) ? 0 : void 0);
@@ -2518,20 +2541,20 @@ function Dl(e, t, n) {
2518
2541
  c += S * g, d += g;
2519
2542
  }
2520
2543
  let u = d > 0 ? c / d * s : 0;
2521
- const f = To(n?.adjustments, l);
2544
+ const f = vo(n?.adjustments, l);
2522
2545
  f?.absoluteVolume !== void 0 ? u = f.absoluteVolume : f?.factor !== void 0 && (u *= f.factor), a.push({ period: W(l, "hour"), volume: u });
2523
2546
  }
2524
2547
  return a;
2525
2548
  }
2526
- const Io = "schedule_entry", vo = "workstream";
2527
- function Rl(e) {
2528
- return `${Io}:${e}`;
2549
+ const ko = "schedule_entry", wo = "workstream";
2550
+ function Bl(e) {
2551
+ return `${ko}:${e}`;
2529
2552
  }
2530
- function $l(e) {
2531
- return `${vo}:${e}`;
2553
+ function Gl(e) {
2554
+ return `${wo}:${e}`;
2532
2555
  }
2533
2556
  const ke = 36e5, F = 864e5;
2534
- function ko(e, t) {
2557
+ function Mo(e, t) {
2535
2558
  const n = t === "day" ? F : ke, r = [];
2536
2559
  for (let o = V(e.from, t); o < e.to; o += n) r.push(o);
2537
2560
  return r;
@@ -2544,8 +2567,8 @@ function pe(e, t, n, r) {
2544
2567
  const o = Math.min(t, r) - Math.max(e, n);
2545
2568
  return o > 0 ? o / 1e3 : 0;
2546
2569
  }
2547
- function Ll(e, t, n = {}) {
2548
- const r = n.grain ?? "hour", o = ko(t, r), i = r === "day" ? F : ke, s = new Map(o.map((u) => [u, 0])), a = e.filter((u) => u.userId && D(u.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, c = /* @__PURE__ */ new Set();
2570
+ function Hl(e, t, n = {}) {
2571
+ const r = n.grain ?? "hour", o = Mo(t, r), i = r === "day" ? F : ke, s = new Map(o.map((u) => [u, 0])), a = e.filter((u) => u.userId && D(u.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, c = /* @__PURE__ */ new Set();
2549
2572
  for (const u of a)
2550
2573
  if (!(l && u.userId && !l.has(u.userId))) {
2551
2574
  for (const f of o) {
@@ -2572,9 +2595,9 @@ function Ll(e, t, n = {}) {
2572
2595
  if (m <= 0) continue;
2573
2596
  const S = an(y, p);
2574
2597
  if (S) {
2575
- const [E, x] = S.split(":").map(Number), C = p + E * ke + (x ?? 0) * 6e4, w = C + m * 6e4;
2598
+ const [E, x] = S.split(":").map(Number), O = p + E * ke + (x ?? 0) * 6e4, w = O + m * 6e4;
2576
2599
  for (const N of o) {
2577
- const k = pe(C, w, N, N + i);
2600
+ const k = pe(O, w, N, N + i);
2578
2601
  k > 0 && s.set(N, (s.get(N) ?? 0) + k);
2579
2602
  }
2580
2603
  continue;
@@ -2587,7 +2610,7 @@ function Ll(e, t, n = {}) {
2587
2610
  }
2588
2611
  return o.map((u) => ({ period: W(u, r), weight: s.get(u) ?? 0 }));
2589
2612
  }
2590
- function wo(e, t) {
2613
+ function Co(e, t) {
2591
2614
  if (e <= 0 || !t.length) return [];
2592
2615
  const n = t.reduce((r, o) => r + Math.max(0, o.weight), 0);
2593
2616
  if (n <= 0) {
@@ -2596,11 +2619,11 @@ function wo(e, t) {
2596
2619
  }
2597
2620
  return t.filter((r) => r.weight > 0).map((r) => ({ period: r.period, seconds: e * r.weight / n }));
2598
2621
  }
2599
- function Pl(e, t, n) {
2622
+ function Wl(e, t, n) {
2600
2623
  const r = /* @__PURE__ */ new Map();
2601
2624
  for (const o of e) {
2602
2625
  const i = o.by ? t.filter((a) => n(a.period) < o.by) : t, s = i.length ? i : t;
2603
- for (const a of wo(o.seconds, s)) {
2626
+ for (const a of Co(o.seconds, s)) {
2604
2627
  const l = `${a.period}|${o.userId ?? ""}`, c = r.get(l);
2605
2628
  c ? c.seconds += a.seconds : r.set(l, { ...a, userId: o.userId });
2606
2629
  }
@@ -2609,7 +2632,7 @@ function Pl(e, t, n) {
2609
2632
  (o, i) => o.period.localeCompare(i.period) || (o.userId ?? "").localeCompare(i.userId ?? "")
2610
2633
  );
2611
2634
  }
2612
- function Mo(e) {
2635
+ function Oo(e) {
2613
2636
  switch (e.kind) {
2614
2637
  case "user":
2615
2638
  return `user:${e.userId}`;
@@ -2619,7 +2642,7 @@ function Mo(e) {
2619
2642
  return "org";
2620
2643
  }
2621
2644
  }
2622
- function Kl(e) {
2645
+ function Vl(e) {
2623
2646
  if (typeof e != "string") return;
2624
2647
  const t = e.trim();
2625
2648
  if (t === "org") return { kind: "org" };
@@ -2631,10 +2654,10 @@ function Kl(e) {
2631
2654
  if (r === "team") return { kind: "team", teamId: o };
2632
2655
  }
2633
2656
  }
2634
- function Oo(e) {
2635
- return Mo(e);
2657
+ function No(e) {
2658
+ return Oo(e);
2636
2659
  }
2637
- function Co(e) {
2660
+ function xo(e) {
2638
2661
  switch (e.kind) {
2639
2662
  case "personal":
2640
2663
  return { kind: "user", userId: e.userId };
@@ -2644,21 +2667,21 @@ function Co(e) {
2644
2667
  return { kind: "org" };
2645
2668
  }
2646
2669
  }
2647
- function Ul(e) {
2648
- return e.agentId ? { kind: "user", userId: e.agentId } : Co(e.ownerScope);
2670
+ function zl(e) {
2671
+ return e.agentId ? { kind: "user", userId: e.agentId } : xo(e.ownerScope);
2649
2672
  }
2650
- function Fl(e) {
2651
- return Oo(e);
2673
+ function Yl(e) {
2674
+ return No(e);
2652
2675
  }
2653
- const No = "playbook-run", jl = "run";
2654
- function Bl(e, t = 0) {
2655
- return `${No}:${e}~${t}`;
2676
+ const Do = "playbook-run", Xl = "run";
2677
+ function ql(e, t = 0) {
2678
+ return `${Do}:${e}~${t}`;
2656
2679
  }
2657
- function Hl(e) {
2680
+ function Ql(e) {
2658
2681
  const t = e.indexOf("~");
2659
2682
  return t < 0 ? e : e.slice(0, t);
2660
2683
  }
2661
- function xo(e, t) {
2684
+ function Ro(e, t) {
2662
2685
  if (!t) return;
2663
2686
  let n = e;
2664
2687
  for (const r of t.split(".")) {
@@ -2667,44 +2690,44 @@ function xo(e, t) {
2667
2690
  }
2668
2691
  return n;
2669
2692
  }
2670
- function Gl(e, t) {
2693
+ function Jl(e, t) {
2671
2694
  return e.targets.find((n) => n.activityTypes.includes(t));
2672
2695
  }
2673
- function Wl(e, t) {
2696
+ function Zl(e, t) {
2674
2697
  if (t)
2675
2698
  return e.targets.find((n) => n.id === t);
2676
2699
  }
2677
- function Do(e) {
2700
+ function $o(e) {
2678
2701
  return e?.kind === "assignment";
2679
2702
  }
2680
- function Vl(e) {
2703
+ function eu(e) {
2681
2704
  const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
2682
- return Do(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";
2705
+ return $o(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";
2683
2706
  }
2684
2707
  const we = ["suggest", "outward", "auto"];
2685
- function zl(e) {
2708
+ function tu(e) {
2686
2709
  return typeof e == "string" && we.includes(e);
2687
2710
  }
2688
- function Yl(e) {
2711
+ function nu(e) {
2689
2712
  const t = e.playbook?.autonomy ?? e.agent?.autonomy ?? "suggest";
2690
2713
  return e.demoted && t === "auto" ? "outward" : t;
2691
2714
  }
2692
- function Xl(e, t) {
2715
+ function ru(e, t) {
2693
2716
  const n = e ?? "suggest";
2694
2717
  return t && we.indexOf(t) < we.indexOf(n) ? t : n;
2695
2718
  }
2696
- function ql(e) {
2719
+ function ou(e) {
2697
2720
  return e.replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
2698
2721
  }
2699
- function Ro(e) {
2722
+ function Lo(e) {
2700
2723
  const t = e.split("__");
2701
2724
  return t[t.length - 1] || e;
2702
2725
  }
2703
- function Ql(e) {
2704
- const t = Ro(e).replace(/[_.]+/g, " ").trim();
2726
+ function iu(e) {
2727
+ const t = Lo(e).replace(/[_.]+/g, " ").trim();
2705
2728
  return t ? t.charAt(0).toUpperCase() + t.slice(1) : e;
2706
2729
  }
2707
- const Jl = [
2730
+ const su = [
2708
2731
  { name: "text", type: "string" },
2709
2732
  { name: "subject", type: "string" },
2710
2733
  { name: "from", type: "string" },
@@ -2745,10 +2768,10 @@ const Jl = [
2745
2768
  // the trigger filter runs — like contactId/companyId above.
2746
2769
  { name: "assigneeUserId", type: "string" }
2747
2770
  ];
2748
- function Zl(e, t) {
2771
+ function au(e, t) {
2749
2772
  return !e.onlyFor || !t?.length ? !0 : t.some((n) => e.onlyFor?.includes(n));
2750
2773
  }
2751
- const eu = {
2774
+ const cu = {
2752
2775
  topics: [
2753
2776
  { name: "topicId", type: "string" },
2754
2777
  { name: "topic", type: "string" },
@@ -2762,20 +2785,20 @@ const eu = {
2762
2785
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
2763
2786
  extract: []
2764
2787
  };
2765
- function $o(e) {
2788
+ function Po(e) {
2766
2789
  return `${e.type}:${e.id}`;
2767
2790
  }
2768
- const Lo = "interaction";
2769
- function Po(e) {
2770
- return e?.type === Lo ? e.id : void 0;
2791
+ const Ko = "interaction";
2792
+ function Uo(e) {
2793
+ return e?.type === Ko ? e.id : void 0;
2771
2794
  }
2772
- const Ko = 64, Uo = 8e3;
2773
- function tu(e) {
2795
+ const Fo = 64, jo = 8e3;
2796
+ function lu(e) {
2774
2797
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
2775
2798
  if (!(!Number.isFinite(t) || t <= 0))
2776
- return Math.min(Math.max(Math.round(t), Ko), Uo);
2799
+ return Math.min(Math.max(Math.round(t), Fo), jo);
2777
2800
  }
2778
- const nu = [
2801
+ const uu = [
2779
2802
  "condition",
2780
2803
  "for-each",
2781
2804
  "parallel",
@@ -2786,48 +2809,48 @@ const nu = [
2786
2809
  "agent",
2787
2810
  "wait-for-reply",
2788
2811
  "wait-for-task"
2789
- ], ru = { kind: "workflow", steps: [] };
2790
- function ou(e) {
2812
+ ], du = { kind: "workflow", steps: [] };
2813
+ function fu(e) {
2791
2814
  return e?.kind === "workflow" ? e.steps : [];
2792
2815
  }
2793
- function iu(e) {
2816
+ function pu(e) {
2794
2817
  return e?.kind === "procedure" ? e.procedure : void 0;
2795
2818
  }
2796
- function su(e) {
2819
+ function mu(e) {
2797
2820
  return e.assignmentId ? "assignment" : e.decider?.kind === "procedure" ? "procedure" : "workflow";
2798
2821
  }
2799
- function Fo(e) {
2822
+ function Bo(e) {
2800
2823
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
2801
2824
  return { total: n, rate: n ? t / n : 0 };
2802
2825
  }
2803
- const jo = 10, Bo = 0.9;
2804
- function au(e) {
2805
- const { total: t, rate: n } = Fo(e);
2806
- return t >= jo && n >= Bo;
2826
+ const Go = 10, Ho = 0.9;
2827
+ function hu(e) {
2828
+ const { total: t, rate: n } = Bo(e);
2829
+ return t >= Go && n >= Ho;
2807
2830
  }
2808
- const Ho = ["done", "escalated", "failed", "stopped"];
2809
- function cu(e) {
2810
- return Ho.includes(e);
2831
+ const Wo = ["done", "escalated", "failed", "stopped"];
2832
+ function gu(e) {
2833
+ return Wo.includes(e);
2811
2834
  }
2812
- function Go(e) {
2835
+ function Vo(e) {
2813
2836
  return e === "waiting";
2814
2837
  }
2815
- function lu(e) {
2816
- return e === "running" || Go(e);
2838
+ function yu(e) {
2839
+ return e === "running" || Vo(e);
2817
2840
  }
2818
2841
  function ln(e) {
2819
2842
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
2820
2843
  }
2821
- function uu(e) {
2844
+ function bu(e) {
2822
2845
  const t = ln(e);
2823
- return t ? $o(t) : void 0;
2846
+ return t ? Po(t) : void 0;
2824
2847
  }
2825
- function du(e) {
2826
- return Po(ln(e));
2848
+ function _u(e) {
2849
+ return Uo(ln(e));
2827
2850
  }
2828
- function fu(e) {
2851
+ function Au(e) {
2829
2852
  const t = [], n = /* @__PURE__ */ new Map();
2830
- for (const r of [...e].sort(Wo)) {
2853
+ for (const r of [...e].sort(zo)) {
2831
2854
  const o = n.get(r.emoji);
2832
2855
  if (o) {
2833
2856
  o.push(r.actor);
@@ -2840,8 +2863,8 @@ function fu(e) {
2840
2863
  return { emoji: r, count: o.length, actors: o };
2841
2864
  }).sort((r, o) => o.count - r.count || t.indexOf(r.emoji) - t.indexOf(o.emoji));
2842
2865
  }
2843
- const Wo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2844
- function pu(e, t) {
2866
+ const zo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2867
+ function Eu(e, t) {
2845
2868
  return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
2846
2869
  }
2847
2870
  class un extends Error {
@@ -2849,12 +2872,12 @@ class un extends Error {
2849
2872
  super(t), this.name = "UnresolvedRefError";
2850
2873
  }
2851
2874
  }
2852
- const Vo = /^\{\{\s*([\w.]+)\s*\}\}$/, zo = /\{\{\s*([\w.]+)\s*\}\}/g, Yo = /\$[A-Za-z_][\w]*\.[\w.]+/;
2853
- function mu(e, t, n = {}) {
2875
+ const Yo = /^\{\{\s*([\w.]+)\s*\}\}$/, Xo = /\{\{\s*([\w.]+)\s*\}\}/g, qo = /\$[A-Za-z_][\w]*\.[\w.]+/;
2876
+ function Su(e, t, n = {}) {
2854
2877
  return Me(e, t, n);
2855
2878
  }
2856
2879
  function Me(e, t, n = {}) {
2857
- return typeof e == "string" ? Xo(e, t, n) : Array.isArray(e) ? e.map((r) => Me(r, t, n)) : e && typeof e == "object" ? Object.fromEntries(
2880
+ return typeof e == "string" ? Qo(e, t, n) : Array.isArray(e) ? e.map((r) => Me(r, t, n)) : e && typeof e == "object" ? Object.fromEntries(
2858
2881
  Object.entries(e).map(([r, o]) => [
2859
2882
  r,
2860
2883
  Me(o, t, {
@@ -2864,21 +2887,21 @@ function Me(e, t, n = {}) {
2864
2887
  ])
2865
2888
  ) : e;
2866
2889
  }
2867
- function Xo(e, t, n) {
2890
+ function Qo(e, t, n) {
2868
2891
  const r = n.onMissing === "throw";
2869
2892
  if (r) {
2870
- const i = e.match(Yo);
2893
+ const i = e.match(qo);
2871
2894
  if (i)
2872
2895
  throw new un(
2873
2896
  `"${i[0]}" in ${n.where ?? "een waarde"} is de oude schrijfwijze; gebruik {{ ${i[0].slice(1)} }}.`
2874
2897
  );
2875
2898
  }
2876
- const o = e.match(Vo);
2899
+ const o = e.match(Yo);
2877
2900
  if (o) {
2878
2901
  const i = Et(t, o[1], e, n);
2879
2902
  return i === void 0 && !r ? "" : i;
2880
2903
  }
2881
- return e.replace(zo, (i, s) => {
2904
+ return e.replace(Xo, (i, s) => {
2882
2905
  const a = Et(t, s, i, n);
2883
2906
  return a == null ? "" : typeof a == "object" ? JSON.stringify(a) : String(a);
2884
2907
  });
@@ -2891,9 +2914,9 @@ function Et(e, t, n, r) {
2891
2914
  `onbekende verwijzing ${n} in ${r.where ?? "een waarde"}: "${o}" bestaat niet. Beschikbaar: ${i.length ? i.join(", ") : "(nog niets)"}`
2892
2915
  );
2893
2916
  }
2894
- return qo(e, t);
2917
+ return Jo(e, t);
2895
2918
  }
2896
- function qo(e, t) {
2919
+ function Jo(e, t) {
2897
2920
  let n = e;
2898
2921
  for (const r of t.split(".")) {
2899
2922
  if (n == null || typeof n != "object") return;
@@ -2901,11 +2924,11 @@ function qo(e, t) {
2901
2924
  }
2902
2925
  return n;
2903
2926
  }
2904
- const hu = /* @__PURE__ */ new Set(["filled", "empty"]);
2905
- function gu() {
2927
+ const Tu = /* @__PURE__ */ new Set(["filled", "empty"]);
2928
+ function Iu() {
2906
2929
  return { kind: "rule", op: "==", varPath: "", value: "" };
2907
2930
  }
2908
- const Qo = /* @__PURE__ */ new Set(["==", "!=", ">", "<", ">=", "<="]);
2931
+ const Zo = /* @__PURE__ */ new Set(["==", "!=", ">", "<", ">=", "<="]);
2909
2932
  function me(e) {
2910
2933
  return !!e && typeof e == "object" && "var" in e && typeof e.var == "string";
2911
2934
  }
@@ -2913,13 +2936,13 @@ function St(e) {
2913
2936
  const t = typeof e;
2914
2937
  return t === "string" || t === "number" || t === "boolean";
2915
2938
  }
2916
- function Jo(e) {
2939
+ function ei(e) {
2917
2940
  if (e === !0 || e == null) return { kind: "group", op: "and", children: [] };
2918
2941
  if (e === !1) return null;
2919
- const t = Oe(e);
2942
+ const t = Ce(e);
2920
2943
  return t ? t.kind === "group" ? t : { kind: "group", op: "and", children: [t] } : null;
2921
2944
  }
2922
- function Oe(e) {
2945
+ function Ce(e) {
2923
2946
  if (typeof e != "object" || e === null) return null;
2924
2947
  const t = Object.keys(e);
2925
2948
  if (t.length !== 1) return null;
@@ -2928,7 +2951,7 @@ function Oe(e) {
2928
2951
  if (!Array.isArray(r)) return null;
2929
2952
  const o = [];
2930
2953
  for (const i of r) {
2931
- const s = Oe(i);
2954
+ const s = Ce(i);
2932
2955
  if (!s) return null;
2933
2956
  o.push(s);
2934
2957
  }
@@ -2939,7 +2962,7 @@ function Oe(e) {
2939
2962
  if (me(o))
2940
2963
  return { kind: "rule", op: n === "!!" ? "filled" : "empty", varPath: o.var, value: "" };
2941
2964
  if (n === "!!") return null;
2942
- const i = Oe(r);
2965
+ const i = Ce(r);
2943
2966
  return i ? { kind: "not", child: i } : null;
2944
2967
  }
2945
2968
  if (n === "in") {
@@ -2947,7 +2970,7 @@ function Oe(e) {
2947
2970
  const [o, i] = r;
2948
2971
  return !me(i) || !St(o) ? null : { kind: "rule", op: "in", varPath: i.var, value: o };
2949
2972
  }
2950
- if (Qo.has(n)) {
2973
+ if (Zo.has(n)) {
2951
2974
  if (!Array.isArray(r) || r.length !== 2) return null;
2952
2975
  const [o, i] = r;
2953
2976
  return !me(o) || !St(i) ? null : { kind: "rule", op: n, varPath: o.var, value: i };
@@ -2957,16 +2980,16 @@ function Oe(e) {
2957
2980
  function he(e) {
2958
2981
  return e.kind === "group" ? e.children.length === 0 ? !0 : e.children.length === 1 ? he(e.children[0]) : { [e.op]: e.children.map(he) } : e.kind === "not" ? { "!": he(e.child) } : e.op === "filled" ? { "!!": [{ var: e.varPath }] } : e.op === "empty" ? { "!": [{ var: e.varPath }] } : e.op === "in" ? { in: [e.value, { var: e.varPath }] } : { [e.op]: [{ var: e.varPath }, e.value] };
2959
2982
  }
2960
- function yu(e) {
2961
- const t = Jo(e);
2962
- return t && Ce(t) || null;
2983
+ function vu(e) {
2984
+ const t = ei(e);
2985
+ return t && Oe(t) || null;
2963
2986
  }
2964
- function Ce(e) {
2987
+ function Oe(e) {
2965
2988
  if (e.kind === "group") {
2966
- const t = e.children.map(Ce).filter(Boolean);
2989
+ const t = e.children.map(Oe).filter(Boolean);
2967
2990
  return t.length === 0 ? "" : t.length === 1 ? t[0] : t.join(e.op === "and" ? " && " : " || ");
2968
2991
  }
2969
- return e.kind === "not" ? `!(${Ce(e.child)})` : e.op === "filled" ? `$${e.varPath}` : e.op === "empty" ? `!$${e.varPath}` : e.op === "in" ? `${JSON.stringify(e.value)} in $${e.varPath}` : `$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`;
2992
+ return e.kind === "not" ? `!(${Oe(e.child)})` : e.op === "filled" ? `$${e.varPath}` : e.op === "empty" ? `!$${e.varPath}` : e.op === "in" ? `${JSON.stringify(e.value)} in $${e.varPath}` : `$${e.varPath} ${e.op} ${JSON.stringify(e.value)}`;
2970
2993
  }
2971
2994
  const ge = [
2972
2995
  { min: 0, max: 59 },
@@ -2980,7 +3003,7 @@ const ge = [
2980
3003
  { min: 0, max: 7 }
2981
3004
  // day of week
2982
3005
  ];
2983
- function Zo(e, t, n) {
3006
+ function ti(e, t, n) {
2984
3007
  const r = /* @__PURE__ */ new Set();
2985
3008
  for (const o of e.split(",")) {
2986
3009
  const [i, s] = o.split("/"), a = s === void 0 ? 1 : Number(s);
@@ -3001,7 +3024,7 @@ function dn(e) {
3001
3024
  for (let l = 0; l < ge.length; l++) {
3002
3025
  const c = ge[l], d = t[l];
3003
3026
  if (!c || d === void 0) return null;
3004
- const u = Zo(d, c.min, c.max);
3027
+ const u = ti(d, c.min, c.max);
3005
3028
  if (!u) return null;
3006
3029
  n.push(u);
3007
3030
  }
@@ -3016,17 +3039,17 @@ function dn(e) {
3016
3039
  anyDayOfWeek: t[4] === "*"
3017
3040
  };
3018
3041
  }
3019
- function bu(e) {
3042
+ function ku(e) {
3020
3043
  return dn(e) !== null;
3021
3044
  }
3022
- function ei(e, t) {
3045
+ function ni(e, t) {
3023
3046
  const n = dn(e);
3024
3047
  if (!n || !n.minute.has(t.getUTCMinutes()) || !n.hour.has(t.getUTCHours()) || !n.month.has(t.getUTCMonth() + 1)) return !1;
3025
3048
  const r = n.dayOfMonth.has(t.getUTCDate()), o = n.dayOfWeek.has(t.getUTCDay());
3026
3049
  return n.anyDayOfMonth && n.anyDayOfWeek ? !0 : n.anyDayOfMonth ? o : n.anyDayOfWeek ? r : r || o;
3027
3050
  }
3028
- const ti = "@schedule", Tt = 3;
3029
- function ni(e, t, n) {
3051
+ const ri = "@schedule", Tt = 3;
3052
+ function oi(e, t, n) {
3030
3053
  const r = [], o = e.depth ?? 0;
3031
3054
  if (o >= Tt)
3032
3055
  return {
@@ -3043,7 +3066,7 @@ function ni(e, t, n) {
3043
3066
  continue;
3044
3067
  }
3045
3068
  if (a.trigger.kind === "schedule") {
3046
- if (e.name !== ti) {
3069
+ if (e.name !== ri) {
3047
3070
  r.push({ ruleId: a.id, reason: "luistert op de klok" });
3048
3071
  continue;
3049
3072
  }
@@ -3052,7 +3075,7 @@ function ni(e, t, n) {
3052
3075
  r.push({ ruleId: a.id, reason: "tik zonder tijdstip" });
3053
3076
  continue;
3054
3077
  }
3055
- if (!ei(a.trigger.cron, new Date(l))) {
3078
+ if (!ni(a.trigger.cron, new Date(l))) {
3056
3079
  r.push({ ruleId: a.id, reason: `niet aan de beurt (${a.trigger.cron})` });
3057
3080
  continue;
3058
3081
  }
@@ -3075,11 +3098,11 @@ function ni(e, t, n) {
3075
3098
  }
3076
3099
  return { matched: s, skipped: r };
3077
3100
  }
3078
- function _u(e, t) {
3101
+ function wu(e, t) {
3079
3102
  return { causedByRule: t, depth: (e.depth ?? 0) + 1 };
3080
3103
  }
3081
- function Au(e, t) {
3082
- const { event: n, rules: r } = e.input, { matched: o, skipped: i } = ni(n, r, t), s = o.flatMap((c) => c.rule.then.map((d) => d.action)), a = e.expected?.actions ?? [];
3104
+ function Mu(e, t) {
3105
+ const { event: n, rules: r } = e.input, { matched: o, skipped: i } = oi(n, r, t), s = o.flatMap((c) => c.rule.then.map((d) => d.action)), a = e.expected?.actions ?? [];
3083
3106
  if (s.length === a.length && s.every((c, d) => c === a[d]))
3084
3107
  return { caseId: e.id, ok: !0 };
3085
3108
  const l = i.map((c) => `${c.ruleId}: ${c.reason}`).join(" · ");
@@ -3090,48 +3113,48 @@ function Au(e, t) {
3090
3113
  note: a.length ? `verwacht [${a.join(", ")}], kreeg [${s.join(", ")}]${l ? ` — ${l}` : ""}` : `mocht niet vuren, maar deed [${s.join(", ")}]`
3091
3114
  };
3092
3115
  }
3093
- function ri(e, t) {
3116
+ function ii(e, t) {
3094
3117
  return e.wrote && t in e.wrote ? e.wrote[t] : t in e.params ? e.params[t] : "";
3095
3118
  }
3096
- function oi(e, t) {
3119
+ function si(e, t) {
3097
3120
  return e.fields.filter(
3098
- (n) => t?.[n] !== void 0 && t[n] !== ri(e, n)
3121
+ (n) => t?.[n] !== void 0 && t[n] !== ii(e, n)
3099
3122
  );
3100
3123
  }
3101
- function Eu(e, t, n) {
3102
- return n ? "undone" : !t || !e.length ? "unknown" : e.some((r) => oi(r, t).length) ? "corrected" : "kept";
3124
+ function Cu(e, t, n) {
3125
+ return n ? "undone" : !t || !e.length ? "unknown" : e.some((r) => si(r, t).length) ? "corrected" : "kept";
3103
3126
  }
3104
- function Su(e) {
3127
+ function Ou(e) {
3105
3128
  return e === "string[]" ? ["in"] : e === "boolean" ? ["==", "!="] : e === "number" || e === "date" ? ["==", "!=", ">", "<", ">=", "<="] : ["==", "!=", "in", "filled", "empty"];
3106
3129
  }
3107
- function Tu(e) {
3130
+ function Nu(e) {
3108
3131
  return `subject.${e.path}`;
3109
3132
  }
3110
- function Iu(e, t) {
3133
+ function xu(e, t) {
3111
3134
  return e.events.find((n) => n.name === t);
3112
3135
  }
3113
- function vu(e, t) {
3114
- return e.filter((n) => xo(t, n.path) === void 0).map((n) => n.path);
3136
+ function Du(e, t) {
3137
+ return e.filter((n) => Ro(t, n.path) === void 0).map((n) => n.path);
3115
3138
  }
3116
- const Ne = 6e4, ii = 36e5, X = 864e5, fn = 800;
3139
+ const Ne = 6e4, ai = 36e5, X = 864e5, fn = 800;
3117
3140
  function It(e, t) {
3118
3141
  const n = Date.UTC(e, t + 1, 0);
3119
- return n - new Date(n).getUTCDay() * X + ii;
3142
+ return n - new Date(n).getUTCDay() * X + ai;
3120
3143
  }
3121
- function si(e) {
3144
+ function ci(e) {
3122
3145
  const t = new Date(e).getUTCFullYear();
3123
3146
  return e >= It(t, 2) && e < It(t, 9);
3124
3147
  }
3125
3148
  function pn(e, t) {
3126
- const n = t.dst === "eu" && si(e) ? 60 : 0;
3149
+ const n = t.dst === "eu" && ci(e) ? 60 : 0;
3127
3150
  return (t.utcOffsetMinutes + n) * Ne;
3128
3151
  }
3129
- function ai(e) {
3152
+ function li(e) {
3130
3153
  return (e + 3) % 7 + 1;
3131
3154
  }
3132
3155
  function mn(e, t) {
3133
3156
  const n = pn(e, t), r = e + n, o = Math.floor(r / X);
3134
- if (!t.days.includes(ai(o))) return null;
3157
+ if (!t.days.includes(li(o))) return null;
3135
3158
  const i = o * X;
3136
3159
  return {
3137
3160
  open: i + t.fromMinutes * Ne - n,
@@ -3156,7 +3179,7 @@ function xe(e, t, n) {
3156
3179
  }
3157
3180
  return r;
3158
3181
  }
3159
- function He(e, t, n) {
3182
+ function Ge(e, t, n) {
3160
3183
  if (!n) return e + t;
3161
3184
  let r = t, o = e;
3162
3185
  for (let i = 0; i < fn; i++) {
@@ -3173,68 +3196,68 @@ function He(e, t, n) {
3173
3196
  }
3174
3197
  return e + t;
3175
3198
  }
3176
- function ku(e) {
3199
+ function Ru(e) {
3177
3200
  const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
3178
3201
  return t ? Number(t[1]) * 60 + Number(t[2]) : null;
3179
3202
  }
3180
3203
  const De = 1, Re = 2, $e = 4;
3181
- function wu(e) {
3204
+ function $u(e) {
3182
3205
  return e === "snoozed" ? De : Re;
3183
3206
  }
3184
- function Ge(e) {
3207
+ function He(e) {
3185
3208
  const t = e.calendar;
3186
3209
  return t && Array.isArray(t.days) ? t : null;
3187
3210
  }
3188
- const Mu = [
3211
+ const Lu = [
3189
3212
  "speed_of_answer",
3190
3213
  "first_response",
3191
3214
  "next_response",
3192
3215
  "resolution",
3193
3216
  "close"
3194
- ], Ou = ["snoozed", "waiting_for_customer"], ci = 6e4, gn = ["speed_of_answer", "first_response", "next_response"], li = [...gn, "resolution", "close"];
3217
+ ], Pu = ["snoozed", "waiting_for_customer"], ui = 6e4, gn = ["speed_of_answer", "first_response", "next_response"], di = [...gn, "resolution", "close"];
3195
3218
  function q(e) {
3196
3219
  return e.state === "running" || e.state === "paused";
3197
3220
  }
3198
- function ui(e, t) {
3221
+ function fi(e, t) {
3199
3222
  return q(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
3200
3223
  }
3201
3224
  function vt(e) {
3202
3225
  return q(e) ? { state: "void" } : null;
3203
3226
  }
3204
- function di(e, t, n, r) {
3227
+ function pi(e, t, n, r) {
3205
3228
  if (!q(e) || (e.pauseBits & t) !== 0) return null;
3206
3229
  const o = e.pauseBits | t;
3207
3230
  return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: xe(n, e.dueAt, r) };
3208
3231
  }
3209
- function fi(e, t, n, r) {
3232
+ function mi(e, t, n, r) {
3210
3233
  if (!q(e) || (e.pauseBits & t) === 0) return null;
3211
3234
  const o = e.pauseBits & ~t;
3212
- return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: He(n, e.remainingMs, r) };
3235
+ return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: Ge(n, e.remainingMs, r) };
3213
3236
  }
3214
- function Cu({ event: e, at: t, now: n, clocks: r, profile: o }) {
3215
- const i = Ge(o), s = Math.min(t, n), a = r.map((g) => ({ ...g })), l = [], c = (g, h) => {
3237
+ function Ku({ event: e, at: t, now: n, clocks: r, profile: o }) {
3238
+ const i = He(o), s = Math.min(t, n), a = r.map((g) => ({ ...g })), l = [], c = (g, h) => {
3216
3239
  h && (l.push({ op: "patch", clockId: g.id, patch: h }), Object.assign(g, h));
3217
3240
  }, d = (g) => {
3218
3241
  for (const h of a)
3219
- h.metric === g && c(h, ui(h, s));
3242
+ h.metric === g && c(h, fi(h, s));
3220
3243
  }, u = (g) => {
3221
3244
  for (const h of a)
3222
3245
  g.includes(h.metric) && c(h, vt(h));
3223
3246
  }, f = (g) => {
3224
- for (const h of a) c(h, di(h, g, s, i));
3247
+ for (const h of a) c(h, pi(h, g, s, i));
3225
3248
  }, p = (g) => {
3226
- for (const h of a) c(h, fi(h, g, s, i));
3249
+ for (const h of a) c(h, mi(h, g, s, i));
3227
3250
  }, y = (g) => a.reduce((h, E) => E.metric === g ? Math.max(h, E.attempt) : h, 0) + 1, m = (g) => a.some((h) => h.metric === g && q(h)), S = (g, h) => {
3228
- const E = o.targets.find((C) => C.metric === g);
3251
+ const E = o.targets.find((O) => O.metric === g);
3229
3252
  if (!E) return;
3230
- const x = E.minutes * ci;
3253
+ const x = E.minutes * ui;
3231
3254
  l.push({
3232
3255
  op: "start",
3233
3256
  metric: g,
3234
3257
  attempt: y(g),
3235
3258
  startedAt: h,
3236
3259
  targetMs: x,
3237
- dueAt: He(h, x, i)
3260
+ dueAt: Ge(h, x, i)
3238
3261
  });
3239
3262
  };
3240
3263
  switch (e) {
@@ -3285,33 +3308,33 @@ function Cu({ event: e, at: t, now: n, clocks: r, profile: o }) {
3285
3308
  p($e);
3286
3309
  break;
3287
3310
  case "discarded":
3288
- u(li);
3311
+ u(di);
3289
3312
  break;
3290
3313
  }
3291
3314
  return l;
3292
3315
  }
3293
- function pi(e) {
3316
+ function hi(e) {
3294
3317
  return e.state === "running" || e.state === "paused";
3295
3318
  }
3296
- function Nu(e) {
3319
+ function Uu(e) {
3297
3320
  return (e.pauseBits & $e) !== 0;
3298
3321
  }
3299
3322
  function Le(e, t) {
3300
- const n = Ge(e);
3323
+ const n = He(e);
3301
3324
  return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -xe(e.dueAt, t, n) : xe(t, e.dueAt, n);
3302
3325
  }
3303
- function xu(e, t) {
3304
- return e.state === "paused" ? He(t, e.remainingMs, Ge(e)) : e.dueAt;
3326
+ function Fu(e, t) {
3327
+ return e.state === "paused" ? Ge(t, e.remainingMs, He(e)) : e.dueAt;
3305
3328
  }
3306
- function Du(e, t) {
3307
- const n = e.filter(pi);
3329
+ function ju(e, t) {
3330
+ const n = e.filter(hi);
3308
3331
  if (!n.length) return;
3309
3332
  const r = n.filter((i) => i.state === "running");
3310
3333
  return (r.length ? r : n).reduce(
3311
3334
  (i, s) => Le(s, t) < Le(i, t) ? s : i
3312
3335
  );
3313
3336
  }
3314
- function Ru(e, t) {
3337
+ function Bu(e, t) {
3315
3338
  if (e.state === "missed") return "breached";
3316
3339
  if (e.state === "hit") return "met";
3317
3340
  if (e.state === "paused") return "paused";
@@ -3319,41 +3342,41 @@ function Ru(e, t) {
3319
3342
  const n = Le(e, t);
3320
3343
  return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
3321
3344
  }
3322
- function $u(e) {
3345
+ function Gu(e) {
3323
3346
  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);
3324
3347
  return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
3325
3348
  }
3326
- const mi = "strategy_item";
3349
+ const gi = "strategy_item";
3327
3350
  function yn(e) {
3328
- return `${mi}:${e}`;
3351
+ return `${gi}:${e}`;
3329
3352
  }
3330
- function Lu(e, t = 25) {
3353
+ function Hu(e, t = 25) {
3331
3354
  const n = /* @__PURE__ */ new Set([yn(e.id)]);
3332
3355
  for (const r of e.ancestorKeys ?? []) n.add(r);
3333
3356
  return Array.from(n).slice(0, t);
3334
3357
  }
3335
- function Pu(e) {
3358
+ function Wu(e) {
3336
3359
  return e ? [...e.ancestorKeys ?? [], yn(e.id)] : [];
3337
3360
  }
3338
3361
  const ie = [
3339
3362
  { key: "area", label: "level_area", order: 10, measurable: !1, icon: "compass" },
3340
3363
  { key: "objective", label: "level_objective", order: 20, measurable: !0, icon: "target" },
3341
3364
  { key: "key_result", label: "level_key_result", order: 30, measurable: !0, icon: "gauge" }
3342
- ], hi = 999, gi = 7;
3343
- function yi(e, t = ie) {
3365
+ ], yi = 999, bi = 7;
3366
+ function _i(e, t = ie) {
3344
3367
  return t.find((n) => n.key === e);
3345
3368
  }
3346
3369
  function Pe(e, t = ie) {
3347
- return yi(e, t)?.order ?? hi;
3370
+ return _i(e, t)?.order ?? yi;
3348
3371
  }
3349
- function Ku(e, t, n = ie) {
3372
+ function Vu(e, t, n = ie) {
3350
3373
  return Pe(t, n) <= Pe(e, n);
3351
3374
  }
3352
- function Uu(e, t = ie) {
3375
+ function zu(e, t = ie) {
3353
3376
  const n = Pe(e, t);
3354
3377
  return t.filter((o) => o.order > n).sort((o, i) => o.order - i.order)[0]?.key ?? e;
3355
3378
  }
3356
- function Fu(e) {
3379
+ function Yu(e) {
3357
3380
  const t = e.trim().toLowerCase();
3358
3381
  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;
3359
3382
  }
@@ -3366,74 +3389,91 @@ const Ke = {
3366
3389
  achieved: "closed",
3367
3390
  missed: "closed"
3368
3391
  };
3369
- function ju(e) {
3392
+ function Xu(e) {
3370
3393
  return Ke[e] ?? "open";
3371
3394
  }
3372
- function Bu(e) {
3395
+ function qu(e) {
3373
3396
  return Object.keys(Ke).filter(
3374
3397
  (t) => e.includes(Ke[t])
3375
3398
  );
3376
3399
  }
3377
- const bi = 864e5, se = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
3378
- function Hu(e, t) {
3400
+ const Ai = 864e5, se = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
3401
+ function Qu(e, t) {
3379
3402
  const { direction: n } = e, r = e.startValue ?? 0, o = e.targetValue ?? 0;
3380
3403
  if (!Number.isFinite(t)) return 0;
3381
3404
  const i = n === "down" ? t <= o : t >= o, s = o - r;
3382
3405
  return (n === "down" ? s < 0 : s > 0) ? se((t - r) / s) : i ? 1 : 0;
3383
3406
  }
3384
- function Gu(e, t) {
3407
+ function Ju(e, t) {
3385
3408
  const { startDate: n, targetDate: r } = e;
3386
3409
  if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
3387
3410
  return se((t - n) / (r - n));
3388
3411
  }
3389
- const _i = 0.1, Ai = 0.25;
3390
- function Wu(e, t) {
3412
+ const Ei = 0.1, Si = 0.25;
3413
+ function Zu(e, t) {
3391
3414
  if (typeof e != "number" || typeof t != "number") return;
3392
3415
  if (e >= 1) return "achieved";
3393
3416
  const n = t - e;
3394
- return n >= Ai ? "off_track" : n >= _i ? "at_risk" : "on_track";
3417
+ return n >= Si ? "off_track" : n >= Ei ? "at_risk" : "on_track";
3395
3418
  }
3396
- function Vu(e, t) {
3419
+ function ed(e, t) {
3397
3420
  if (t)
3398
3421
  return se(e / t);
3399
3422
  }
3400
- function zu(e) {
3423
+ function td(e) {
3401
3424
  const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
3402
3425
  if (t.length)
3403
3426
  return se(t.reduce((n, r) => n + r, 0) / t.length);
3404
3427
  }
3405
- function Yu(e, t) {
3428
+ function nd(e, t) {
3406
3429
  const n = e.lastCheckInAt ?? e.createdAt;
3407
3430
  if (typeof n != "number") return 0;
3408
- const r = (e.checkInEveryDays ?? gi) * bi, o = t - n - r;
3431
+ const r = (e.checkInEveryDays ?? bi) * Ai, o = t - n - r;
3409
3432
  return o > 0 ? o : 0;
3410
3433
  }
3411
- function Xu(e) {
3434
+ function rd(e) {
3412
3435
  return e.targetDate ?? Number.MAX_SAFE_INTEGER;
3413
3436
  }
3414
- function qu(e, t) {
3437
+ function od(e) {
3438
+ const t = /* @__PURE__ */ new Map(), n = [...e].sort((r, o) => r.startedAt - o.startedAt);
3439
+ for (const r of n) {
3440
+ const o = `${r.workType ?? ""}|${r.scopeKey ?? ""}`, i = t.get(o) ?? {
3441
+ workType: r.workType,
3442
+ scopeKey: r.scopeKey,
3443
+ scopeLabel: r.scopeLabel,
3444
+ seconds: 0,
3445
+ hours: 0,
3446
+ entryIds: [],
3447
+ from: r.startedAt,
3448
+ to: r.startedAt
3449
+ };
3450
+ i.seconds += r.durationSeconds ?? 0, i.hours = Math.round(i.seconds / 3600 * 100) / 100, i.entryIds.push(r.id), i.to = r.startedAt, t.set(o, i);
3451
+ }
3452
+ return [...t.values()];
3453
+ }
3454
+ function id(e, t) {
3415
3455
  const n = e.accumulatedSeconds || 0;
3416
3456
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
3417
3457
  }
3418
- function Qu(e, t) {
3458
+ function sd(e, t) {
3419
3459
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
3420
3460
  if (!t || t === "exact") return n * 60;
3421
3461
  const r = Number(t);
3422
3462
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
3423
3463
  }
3424
- function Ju(e) {
3464
+ function ad(e) {
3425
3465
  const t = Math.max(0, Math.round(e / 60));
3426
3466
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
3427
3467
  }
3428
- function Zu(e) {
3468
+ function cd(e) {
3429
3469
  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);
3430
3470
  return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
3431
3471
  }
3432
- function Ei(e) {
3472
+ function Ti(e) {
3433
3473
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
3434
3474
  }
3435
- function ed(e, t) {
3436
- const n = Ei(e) || "werksoort", r = new Set(t);
3475
+ function ld(e, t) {
3476
+ const n = Ti(e) || "werksoort", r = new Set(t);
3437
3477
  if (!r.has(n)) return n;
3438
3478
  for (let o = 2; o < 500; o++) {
3439
3479
  const i = `${n}-${o}`;
@@ -3441,29 +3481,29 @@ function ed(e, t) {
3441
3481
  }
3442
3482
  return `${n}-${r.size + 1}`;
3443
3483
  }
3444
- function td(e, t) {
3484
+ function ud(e, t) {
3445
3485
  const n = e.ownerScope;
3446
3486
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
3447
3487
  }
3448
- function nd(e) {
3449
- return e.filter((t) => !t.archived).sort(Si);
3488
+ function dd(e) {
3489
+ return e.filter((t) => !t.archived).sort(Ii);
3450
3490
  }
3451
- function Si(e, t) {
3491
+ function Ii(e, t) {
3452
3492
  const n = (e.order ?? 0) - (t.order ?? 0);
3453
3493
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
3454
3494
  }
3455
- const Ti = 20, Ii = 20, ye = 300;
3495
+ const vi = 20, ki = 20, ye = 300;
3456
3496
  function K(e) {
3457
3497
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
3458
3498
  }
3459
- function vi(e) {
3499
+ function wi(e) {
3460
3500
  const t = e.replace(/\s+/g, " ").trim();
3461
3501
  if (t.length <= ye) return t;
3462
3502
  const n = t.slice(0, ye), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
3463
3503
  return r > ye * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
3464
3504
  }
3465
- function rd(e, t) {
3466
- const n = vi(t.text), r = K(n);
3505
+ function fd(e, t) {
3506
+ const n = wi(t.text), r = K(n);
3467
3507
  if (!r || (e.examples ?? []).some((s) => K(s) === r)) return null;
3468
3508
  const o = e.exampleCandidates ?? [], i = o.findIndex((s) => K(s.text) === r);
3469
3509
  if (i >= 0) {
@@ -3471,27 +3511,27 @@ function rd(e, t) {
3471
3511
  const s = [...o];
3472
3512
  return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, kt(s);
3473
3513
  }
3474
- return kt([{ ...t, text: n }, ...o]).slice(0, Ii);
3514
+ return kt([{ ...t, text: n }, ...o]).slice(0, ki);
3475
3515
  }
3476
3516
  function kt(e) {
3477
3517
  return [...e].sort(
3478
3518
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
3479
3519
  );
3480
3520
  }
3481
- function od(e, t) {
3521
+ function pd(e, t) {
3482
3522
  const n = K(t), r = (e.examples ?? []).filter((i) => i.trim());
3483
- return { examples: r.some((i) => K(i) === n) ? r : [...r, t].slice(-Ti), exampleCandidates: ki(e, t) };
3523
+ return { examples: r.some((i) => K(i) === n) ? r : [...r, t].slice(-vi), exampleCandidates: Mi(e, t) };
3484
3524
  }
3485
- function ki(e, t) {
3525
+ function Mi(e, t) {
3486
3526
  const n = K(t);
3487
3527
  return (e.exampleCandidates ?? []).filter((r) => K(r.text) !== n);
3488
3528
  }
3489
- function wi(e, t) {
3529
+ function Ci(e, t) {
3490
3530
  const n = e.ownerScope;
3491
3531
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
3492
3532
  }
3493
- function id(e, t) {
3494
- return e.filter((n) => wi(n, t));
3533
+ function md(e, t) {
3534
+ return e.filter((n) => Ci(n, t));
3495
3535
  }
3496
3536
  const We = [
3497
3537
  {
@@ -3571,13 +3611,13 @@ const We = [
3571
3611
  "invoice",
3572
3612
  "credit_note"
3573
3613
  ];
3574
- function sd() {
3614
+ function hd() {
3575
3615
  const e = /* @__PURE__ */ new Map();
3576
3616
  for (const t of We)
3577
3617
  bn.includes(t.key) && (e.has(t.path) || e.set(t.path, t));
3578
3618
  return [...e.values()];
3579
3619
  }
3580
- function O(e) {
3620
+ function C(e) {
3581
3621
  return We.find((t) => t.key === e) ?? {
3582
3622
  key: e,
3583
3623
  label: e,
@@ -3591,7 +3631,7 @@ function O(e) {
3591
3631
  convertsTo: []
3592
3632
  };
3593
3633
  }
3594
- const ad = {
3634
+ const gd = {
3595
3635
  draft: "Concept",
3596
3636
  sent: "Verstuurd",
3597
3637
  accepted: "Geaccepteerd",
@@ -3606,16 +3646,16 @@ const ad = {
3606
3646
  cancelled: "Geannuleerd",
3607
3647
  superseded: "Vervangen"
3608
3648
  };
3609
- function Mi(e, t) {
3610
- return O(e).transitions[t] ?? [];
3649
+ function Oi(e, t) {
3650
+ return C(e).transitions[t] ?? [];
3611
3651
  }
3612
- function cd(e, t, n) {
3613
- return Mi(e, t).includes(n);
3652
+ function yd(e, t, n) {
3653
+ return Oi(e, t).includes(n);
3614
3654
  }
3615
- function Oi(e) {
3655
+ function Ni(e) {
3616
3656
  return e.issuedAt != null;
3617
3657
  }
3618
- const ld = [
3658
+ const bd = [
3619
3659
  "status",
3620
3660
  "fileRef",
3621
3661
  "number",
@@ -3623,7 +3663,7 @@ const ld = [
3623
3663
  "postedAt",
3624
3664
  "dunning",
3625
3665
  "updatedAt"
3626
- ], ud = [
3666
+ ], _d = [
3627
3667
  "companyId",
3628
3668
  "contactId",
3629
3669
  "dealItemId",
@@ -3639,7 +3679,7 @@ const ld = [
3639
3679
  "periodTo",
3640
3680
  "paymentTerm",
3641
3681
  "lines"
3642
- ], dd = [
3682
+ ], Ad = [
3643
3683
  "contactId",
3644
3684
  "dealItemId",
3645
3685
  "title",
@@ -3652,15 +3692,15 @@ const ld = [
3652
3692
  "periodFrom",
3653
3693
  "periodTo"
3654
3694
  ];
3655
- function fd(e, t) {
3656
- if (!bn.includes(t) || !O(e.kindKey).convertsTo.includes(t)) return !1;
3657
- const n = O(t);
3658
- return !n.credits || n.credits === e.kindKey && Oi(e);
3659
- }
3660
- function Ci(e, t) {
3661
- const n = O(t).signFlip !== O(e.kindKey).signFlip, r = e.lines.map((o) => ({
3662
- ...o,
3663
- quantity: n ? -o.quantity : o.quantity,
3695
+ function Ed(e, t) {
3696
+ if (!bn.includes(t) || !C(e.kindKey).convertsTo.includes(t)) return !1;
3697
+ const n = C(t);
3698
+ return !n.credits || n.credits === e.kindKey && Ni(e);
3699
+ }
3700
+ function xi(e, t) {
3701
+ const n = C(t).signFlip !== C(e.kindKey).signFlip, r = e.lines.map(({ timeEntryIds: o, ...i }) => ({
3702
+ ...i,
3703
+ quantity: n ? -i.quantity : i.quantity,
3664
3704
  netCents: 0,
3665
3705
  taxCents: 0
3666
3706
  }));
@@ -3696,18 +3736,19 @@ function Ci(e, t) {
3696
3736
  source: e.source
3697
3737
  };
3698
3738
  }
3699
- function pd(e) {
3739
+ function Sd(e) {
3700
3740
  return {
3701
- ...Ci(e, e.kindKey),
3741
+ ...xi(e, e.kindKey),
3702
3742
  sourceTransactionId: e.sourceTransactionId,
3703
3743
  previousVersionId: e.id,
3704
3744
  version: e.version + 1,
3705
- lines: e.lines.map((n) => ({ ...n })),
3745
+ // Hours stay stamped on the version they were billed on; claiming them again would conflict.
3746
+ lines: e.lines.map(({ timeEntryIds: n, ...r }) => ({ ...r })),
3706
3747
  totals: e.totals
3707
3748
  };
3708
3749
  }
3709
- function md(e, t = {}) {
3710
- const n = O(e.kindKey), r = e.totals ?? { netCents: 0, taxCents: 0, grossCents: 0 };
3750
+ function Td(e, t = {}) {
3751
+ const n = C(e.kindKey), r = e.totals ?? { netCents: 0, taxCents: 0, grossCents: 0 };
3711
3752
  return {
3712
3753
  customer: {
3713
3754
  name: t.companyName ?? "",
@@ -3715,7 +3756,7 @@ function md(e, t = {}) {
3715
3756
  // One token per line of the address, plus `street` on its own for a template that wants
3716
3757
  // the house number elsewhere. Empty stays empty: `fillText` reports it as a hole, and a
3717
3758
  // recipient block missing its street is exactly what the issue gate has to refuse.
3718
- address: Di(t.companyAddress),
3759
+ address: $i(t.companyAddress),
3719
3760
  street: t.companyAddress?.street ?? "",
3720
3761
  house_number: t.companyAddress?.houseNumber ?? "",
3721
3762
  postal_code: t.companyAddress?.postalCode ?? "",
@@ -3753,7 +3794,7 @@ function md(e, t = {}) {
3753
3794
  }
3754
3795
  };
3755
3796
  }
3756
- function hd(e, t = [], n = Ni) {
3797
+ function Id(e, t = [], n = Di) {
3757
3798
  const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((l) => l.key === a)?.percent ?? 0, i = {
3758
3799
  block_id: "lines",
3759
3800
  type: "table",
@@ -3768,8 +3809,8 @@ function hd(e, t = [], n = Ni) {
3768
3809
  // A text line spans as a heading: empty money cells would read as "free".
3769
3810
  [a.name, "", "", ""]
3770
3811
  ) : [
3771
- xi(a.name, a.description, a.optional, n.optional),
3772
- Ri(a.quantity),
3812
+ Ri(a.name, a.description, a.optional, n.optional),
3813
+ Li(a.quantity),
3773
3814
  $(a.unitPriceCents),
3774
3815
  $(a.netCents)
3775
3816
  ]
@@ -3788,7 +3829,7 @@ function hd(e, t = [], n = Ni) {
3788
3829
  };
3789
3830
  return { lines: [i], totals: [s] };
3790
3831
  }
3791
- const Ni = {
3832
+ const Di = {
3792
3833
  description: "Omschrijving",
3793
3834
  optional: "optioneel",
3794
3835
  quantity: "Aantal",
@@ -3797,14 +3838,14 @@ const Ni = {
3797
3838
  tax: "Btw",
3798
3839
  gross: "Totaal"
3799
3840
  };
3800
- function xi(e, t, n, r) {
3841
+ function Ri(e, t, n, r) {
3801
3842
  const o = t ? `${e} — ${t}` : e;
3802
3843
  return n ? `${o} (${r})` : o;
3803
3844
  }
3804
- function Di(e) {
3845
+ function $i(e) {
3805
3846
  return e?.street ? [e.street, e.houseNumber].filter(Boolean).join(" ") : "";
3806
3847
  }
3807
- function Ri(e) {
3848
+ function Li(e) {
3808
3849
  return Number.isInteger(e) ? String(e) : String(e).replace(".", ",");
3809
3850
  }
3810
3851
  function U(e) {
@@ -3812,21 +3853,21 @@ function U(e) {
3812
3853
  const t = new Date(e), n = (r) => String(r).padStart(2, "0");
3813
3854
  return `${n(t.getDate())}-${n(t.getMonth() + 1)}-${t.getFullYear()}`;
3814
3855
  }
3815
- function $i(e) {
3816
- const t = O(e), n = t.key, r = t.numbered;
3856
+ function Pi(e) {
3857
+ const t = C(e), n = t.key, r = t.numbered;
3817
3858
  return [
3818
3859
  {
3819
3860
  block_id: "head",
3820
3861
  type: "letterhead",
3821
3862
  fields: [
3822
- ...r ? [{ key: "number", label: Li[n]?.number ?? "Nummer", value: `{${n}.number}` }] : [],
3863
+ ...r ? [{ key: "number", label: Ki[n]?.number ?? "Nummer", value: `{${n}.number}` }] : [],
3823
3864
  { key: "date", label: "Datum", value: `{${n}.date}` },
3824
3865
  ...r ? [{ key: "due_date", label: "Vervaldatum", value: `{${n}.due_date}` }] : [{ key: "valid_until", label: "Geldig tot", value: `{${n}.valid_until}` }],
3825
3866
  // Required on a credit note: an open token is a hole, and the issue gate refuses holes.
3826
3867
  ...t.credits ? [
3827
3868
  {
3828
3869
  key: "credited_number",
3829
- label: `Op ${O(t.credits).name.toLowerCase()}`,
3870
+ label: `Op ${C(t.credits).name.toLowerCase()}`,
3830
3871
  value: `{${n}.credited_number}`
3831
3872
  }
3832
3873
  ] : [],
@@ -3868,11 +3909,11 @@ function $i(e) {
3868
3909
  { block_id: "terms", type: "paragraph", text: Mt[n] ?? Mt.quote }
3869
3910
  ];
3870
3911
  }
3871
- const gd = (e) => ({
3872
- note: { key: `${O(e).key}.note`, exists: !0 },
3912
+ const vd = (e) => ({
3913
+ note: { key: `${C(e).key}.note`, exists: !0 },
3873
3914
  // Keyed on the start: a range without one is not a range, and `period_to` alone says nothing.
3874
- period: { key: `${O(e).key}.period_from`, exists: !0 }
3875
- }), Li = {
3915
+ period: { key: `${C(e).key}.period_from`, exists: !0 }
3916
+ }), Ki = {
3876
3917
  invoice: { number: "Factuurnummer" },
3877
3918
  credit_note: { number: "Creditnotanummer" }
3878
3919
  }, wt = {
@@ -3893,54 +3934,54 @@ Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`
3893
3934
  order: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",
3894
3935
  invoice: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",
3895
3936
  credit_note: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld."
3896
- }, yd = $i("quote"), Pi = We.map((e) => e.key), Ki = "product";
3897
- function Ui(e, t) {
3937
+ }, kd = Pi("quote"), Ui = We.map((e) => e.key), Fi = "product";
3938
+ function ji(e, t) {
3898
3939
  return `${e}:${t}`;
3899
3940
  }
3900
- function bd(e) {
3901
- return `${Ki}:${e}`;
3941
+ function wd(e) {
3942
+ return `${Fi}:${e}`;
3902
3943
  }
3903
- function _d(e, t) {
3944
+ function Md(e, t) {
3904
3945
  const n = e.businessEntityId || t;
3905
3946
  if (n)
3906
- return `/apps/sales/${n}/${O(e.kindKey).path}/${e.id}`;
3947
+ return `/apps/sales/${n}/${C(e.kindKey).path}/${e.id}`;
3907
3948
  }
3908
- function Ad(e, t) {
3949
+ function Cd(e, t) {
3909
3950
  const n = e.businessEntityId || t;
3910
3951
  return n ? `/apps/sales/${n}/product/${e.id}` : void 0;
3911
3952
  }
3912
- function Ed(e) {
3953
+ function Od(e) {
3913
3954
  const t = e.indexOf(":");
3914
3955
  if (t < 0) return;
3915
3956
  const n = e.slice(0, t);
3916
- return Pi.includes(n) ? e.slice(t + 1) : void 0;
3957
+ return Ui.includes(n) ? e.slice(t + 1) : void 0;
3917
3958
  }
3918
- function Sd(e) {
3919
- const t = /* @__PURE__ */ new Set([Ui(e.kindKey, e.id)]);
3959
+ function Nd(e) {
3960
+ const t = /* @__PURE__ */ new Set([ji(e.kindKey, e.id)]);
3920
3961
  return e.companyId && t.add(`company:${e.companyId}`), e.contactId && t.add(`contact:${e.contactId}`), e.dealItemId && t.add(`work_item:${e.dealItemId}`), Array.from(t);
3921
3962
  }
3922
- const Td = 4;
3923
- function Id(e, t) {
3963
+ const xd = 4;
3964
+ function Dd(e, t) {
3924
3965
  const n = String(t).padStart(Math.max(1, e.padding), "0");
3925
3966
  return `${e.prefix}${e.period ? `${e.period}-` : ""}${n}`;
3926
3967
  }
3927
- function vd(e, t = Date.now()) {
3968
+ function Rd(e, t = Date.now()) {
3928
3969
  return e === "year" ? String(new Date(t).getFullYear()) : "";
3929
3970
  }
3930
- const kd = [
3971
+ const $d = [
3931
3972
  "cash",
3932
3973
  "credit",
3933
3974
  "direct_debit",
3934
3975
  "card",
3935
3976
  "other"
3936
3977
  ];
3937
- function wd(e, t) {
3978
+ function Ld(e, t) {
3938
3979
  return e + Math.max(0, Math.round(t)) * 24 * 60 * 60 * 1e3;
3939
3980
  }
3940
- function Md(e) {
3981
+ function Pd(e) {
3941
3982
  return { code: e.code, label: e.label, method: e.method, dueDays: e.dueDays };
3942
3983
  }
3943
- const Od = [
3984
+ const Kd = [
3944
3985
  {
3945
3986
  code: "14D",
3946
3987
  label: "Binnen 14 dagen",
@@ -3952,34 +3993,34 @@ const Od = [
3952
3993
  { code: "30D", label: "Binnen 30 dagen", method: "credit", dueDays: 30, order: 1 },
3953
3994
  { code: "CONTANT", label: "Contant", method: "cash", dueDays: 0, order: 2 }
3954
3995
  ];
3955
- function Cd(e) {
3996
+ function Ud(e) {
3956
3997
  return e.type === "agent";
3957
3998
  }
3958
- const Fi = [
3999
+ const Bi = [
3959
4000
  "communication:interactions:created",
3960
4001
  "communication:interactions:updated",
3961
4002
  "communication:activities:created",
3962
4003
  "communication:activities:updated"
3963
4004
  ];
3964
- function Nd(e) {
3965
- return Fi.includes(e);
4005
+ function Fd(e) {
4006
+ return Bi.includes(e);
3966
4007
  }
3967
- const xd = "WORK_COMMENT_ADDED", Dd = "WORK_ITEM_ASSIGNED", Rd = "WORK_ITEM_STATUS_CHANGED";
3968
- function ji(e, t) {
4008
+ const jd = "WORK_COMMENT_ADDED", Bd = "WORK_ITEM_ASSIGNED", Gd = "WORK_ITEM_STATUS_CHANGED";
4009
+ function Gi(e, t) {
3969
4010
  const n = (r) => {
3970
4011
  const o = new Date(r);
3971
4012
  return o.setHours(0, 0, 0, 0), o.getTime();
3972
4013
  };
3973
- return Math.round((n(e) - n(t)) / Cr);
4014
+ return Math.round((n(e) - n(t)) / xr);
3974
4015
  }
3975
- function $d(e, t) {
4016
+ function Hd(e, t) {
3976
4017
  if (e.closedAt != null) return { score: P, reasons: [] };
3977
4018
  const n = t.remindersById?.[e.id];
3978
4019
  if (n && n.remindAt > t.now) return { score: P, reasons: [] };
3979
4020
  let r = 0;
3980
4021
  const o = [], i = e.priority ?? "normal";
3981
4022
  if (ne[i] > 0 && (r += ne[i], o.push(`priority:${i}`)), typeof e.dueDate == "number") {
3982
- const s = ji(e.dueDate, t.now);
4023
+ const s = Gi(e.dueDate, t.now);
3983
4024
  s < 0 ? (r += 35, o.push("overdue")) : s === 0 && (r += 20, o.push("due-today"));
3984
4025
  }
3985
4026
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, o.push(`auto:${e.source.systemReason}`)), { score: r, reasons: o };
@@ -3994,35 +4035,35 @@ const Ve = [
3994
4035
  { key: "deal", label: "type_deal" },
3995
4036
  /** A date others lead up to: what blocks it, or sits under it, is its progress. No duration. */
3996
4037
  { key: "milestone", label: "type_milestone" }
3997
- ], Ld = Ve.map((e) => e.key);
3998
- function Pd(e) {
4038
+ ], Wd = Ve.map((e) => e.key);
4039
+ function Vd(e) {
3999
4040
  return e?.types?.length ? e.types : Ve;
4000
4041
  }
4001
- function Kd(e, t) {
4042
+ function zd(e, t) {
4002
4043
  return t.find((n) => n.key === e);
4003
4044
  }
4004
- function Ud(e) {
4045
+ function Yd(e) {
4005
4046
  const t = e.trim().toLowerCase();
4006
4047
  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("milestone") || t.includes("mijlpaal") ? "milestone" : t.includes("task") ? "task" : null : null;
4007
4048
  }
4008
- function Fd(...e) {
4049
+ function Xd(...e) {
4009
4050
  return e.map((t) => Ve.find((n) => n.key === t)).filter((t) => !!t);
4010
4051
  }
4011
- const Bi = "work_item", Hi = "work_project", Gi = "work_activity", jd = "work_cycle";
4012
- function Wi(e) {
4013
- return `${Bi}:${e}`;
4052
+ const Hi = "work_item", Wi = "work_project", Vi = "work_activity", qd = "work_cycle";
4053
+ function zi(e) {
4054
+ return `${Hi}:${e}`;
4014
4055
  }
4015
4056
  function _n(e) {
4016
- return `${Hi}:${e}`;
4057
+ return `${Wi}:${e}`;
4017
4058
  }
4018
- function Bd(e) {
4019
- return `${Gi}:${e}`;
4059
+ function Qd(e) {
4060
+ return `${Vi}:${e}`;
4020
4061
  }
4021
- function Hd(e, t, n) {
4062
+ function Jd(e, t, n) {
4022
4063
  const r = `${e}-${t}`;
4023
4064
  return n ? `${r}-${n}` : r;
4024
4065
  }
4025
- function Gd(e) {
4066
+ function Zd(e) {
4026
4067
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
4027
4068
  return t ? {
4028
4069
  projectKey: t[1].toUpperCase(),
@@ -4030,17 +4071,17 @@ function Gd(e) {
4030
4071
  ...t[3] ? { subSequence: Number(t[3]) } : {}
4031
4072
  } : null;
4032
4073
  }
4033
- function Wd(e) {
4074
+ function ef(e) {
4034
4075
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
4035
4076
  }
4036
- function Vd(e, t = 25) {
4037
- const n = /* @__PURE__ */ new Set([Wi(e.id)]);
4077
+ function tf(e, t = 25) {
4078
+ const n = /* @__PURE__ */ new Set([zi(e.id)]);
4038
4079
  e.projectId && n.add(_n(e.projectId));
4039
4080
  for (const r of e.ancestorKeys ?? []) n.add(r);
4040
4081
  for (const r of e.partyKeys ?? []) n.add(r);
4041
4082
  return Array.from(n).slice(0, t);
4042
4083
  }
4043
- function zd(e) {
4084
+ function nf(e) {
4044
4085
  return [_n(e.id)];
4045
4086
  }
4046
4087
  const ze = [
@@ -4049,33 +4090,33 @@ const ze = [
4049
4090
  { key: "done", label: "status_done", category: "done", order: 2 },
4050
4091
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
4051
4092
  ], An = ze.map((e) => e.key);
4052
- function Vi(e) {
4093
+ function Yi(e) {
4053
4094
  return e?.statuses?.length ? e.statuses : ze;
4054
4095
  }
4055
- function zi(e, t) {
4096
+ function Xi(e, t) {
4056
4097
  return t.find((n) => n.key === e)?.category ?? "todo";
4057
4098
  }
4058
- function Yd(e, t) {
4099
+ function rf(e, t) {
4059
4100
  return t.find((n) => n.key === e);
4060
4101
  }
4061
- function Xd(e) {
4062
- const t = Vi(e), n = e?.defaultStatusKey;
4063
- return n && t.some((r) => r.key === n) ? n : Yi(t)[0]?.key ?? ze[0].key;
4102
+ function of(e) {
4103
+ const t = Yi(e), n = e?.defaultStatusKey;
4104
+ return n && t.some((r) => r.key === n) ? n : qi(t)[0]?.key ?? ze[0].key;
4064
4105
  }
4065
- function Yi(e) {
4106
+ function qi(e) {
4066
4107
  return [...e].sort((t, n) => {
4067
4108
  const r = (t.order ?? 0) - (n.order ?? 0);
4068
4109
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
4069
4110
  });
4070
4111
  }
4071
- function qd(e, t) {
4072
- return zi(e, t) === "done";
4112
+ function sf(e, t) {
4113
+ return Xi(e, t) === "done";
4073
4114
  }
4074
- function Xi(e) {
4115
+ function Qi(e) {
4075
4116
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
4076
4117
  }
4077
- function Qd(e, t) {
4078
- const n = Xi(e) || "status", r = /* @__PURE__ */ new Set([...t, ...An]);
4118
+ function af(e, t) {
4119
+ const n = Qi(e) || "status", r = /* @__PURE__ */ new Set([...t, ...An]);
4079
4120
  if (!r.has(n)) return n;
4080
4121
  for (let o = 2; o < 500; o++) {
4081
4122
  const i = `${n}-${o}`;
@@ -4083,7 +4124,7 @@ function Qd(e, t) {
4083
4124
  }
4084
4125
  return `${n}-${r.size + 1}`;
4085
4126
  }
4086
- function Jd(e) {
4127
+ function cf(e) {
4087
4128
  const t = [];
4088
4129
  if (!e.length) return [{ index: -1, reason: "empty" }];
4089
4130
  const n = /* @__PURE__ */ new Set();
@@ -4095,42 +4136,42 @@ function Jd(e) {
4095
4136
  An.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);
4096
4137
  }), 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;
4097
4138
  }
4098
- function Zd(e, t) {
4139
+ function lf(e, t) {
4099
4140
  return t.find((n) => n.key === e)?.requiresApproval === !0;
4100
4141
  }
4101
- function ef(e, t) {
4142
+ function uf(e, t) {
4102
4143
  if (!e) return;
4103
4144
  const n = t?.resolutions?.find((r) => r.key === e)?.positive;
4104
4145
  return n === void 0 ? void 0 : n ? "won" : "lost";
4105
4146
  }
4106
- function tf(e) {
4147
+ function df(e) {
4107
4148
  return e.startDate ?? Number.MAX_SAFE_INTEGER;
4108
4149
  }
4109
- function nf(e) {
4150
+ function ff(e) {
4110
4151
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
4111
4152
  }
4112
- const rf = [
4153
+ const pf = [
4113
4154
  "statusKeys",
4114
4155
  "typeKeys",
4115
4156
  "labels",
4116
4157
  "priority",
4117
4158
  "assignees"
4118
- ], of = ["blockedOnly", "watchingOnly", "reportedByMe"], sf = [
4159
+ ], mf = ["blockedOnly", "watchingOnly", "reportedByMe"], hf = [
4119
4160
  "priority",
4120
4161
  "dueDate",
4121
4162
  "updatedAt",
4122
4163
  "createdAt",
4123
4164
  "title",
4124
4165
  "estimateSeconds"
4125
- ], af = ["list", "board", "calendar", "workload"], qi = ["day", "week", "month"];
4126
- function cf(e) {
4166
+ ], gf = ["list", "board", "calendar", "workload"], Ji = ["day", "week", "month"];
4167
+ function yf(e) {
4127
4168
  const t = e;
4128
- if (!t || !qi.includes(t.every)) return;
4169
+ if (!t || !Ji.includes(t.every)) return;
4129
4170
  const n = Math.floor(Number(t.interval ?? 1));
4130
4171
  if (!(!Number.isFinite(n) || n < 1 || n > 365))
4131
4172
  return { every: t.every, interval: n };
4132
4173
  }
4133
- function Qi(e, t) {
4174
+ function Zi(e, t) {
4134
4175
  const n = new Date(e);
4135
4176
  if (t.every === "day") n.setDate(n.getDate() + t.interval);
4136
4177
  else if (t.every === "week") n.setDate(n.getDate() + 7 * t.interval);
@@ -4140,11 +4181,11 @@ function Qi(e, t) {
4140
4181
  }
4141
4182
  return n.getTime();
4142
4183
  }
4143
- function lf(e, t, n) {
4144
- const r = Qi(e.dueDate ?? n, t);
4184
+ function bf(e, t, n) {
4185
+ const r = Zi(e.dueDate ?? n, t);
4145
4186
  return e.startDate === void 0 || e.dueDate === void 0 ? { dueDate: r } : { dueDate: r, startDate: r - (e.dueDate - e.startDate) };
4146
4187
  }
4147
- const Ji = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Zi = /* @__PURE__ */ new Set([
4188
+ const es = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), ts = /* @__PURE__ */ new Set([
4148
4189
  "text/plain",
4149
4190
  "text/markdown",
4150
4191
  "text/csv",
@@ -4153,71 +4194,71 @@ const Ji = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
4153
4194
  "application/xml",
4154
4195
  "text/xml"
4155
4196
  ]);
4156
- function es(e) {
4197
+ function ns(e) {
4157
4198
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
4158
- return t ? Ji.has(t) ? "image" : t === "application/pdf" ? "pdf" : Zi.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
4199
+ return t ? es.has(t) ? "image" : t === "application/pdf" ? "pdf" : ts.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
4159
4200
  }
4160
- const B = 1024 * 1024, ts = {
4201
+ const B = 1024 * 1024, rs = {
4161
4202
  image: 5 * B,
4162
4203
  pdf: 20 * B,
4163
4204
  text: 1 * B,
4164
4205
  audio: 20 * B
4165
- }, uf = 25 * B, df = 5;
4166
- function ff(e, t) {
4167
- const n = es(e);
4168
- return n === "unsupported" ? "unsupported" : t > ts[n] ? "too-large" : null;
4206
+ }, _f = 25 * B, Af = 5;
4207
+ function Ef(e, t) {
4208
+ const n = ns(e);
4209
+ return n === "unsupported" ? "unsupported" : t > rs[n] ? "too-large" : null;
4169
4210
  }
4170
- const pf = "ai-tool";
4171
- function mf(e) {
4211
+ const Sf = "ai-tool";
4212
+ function Tf(e) {
4172
4213
  return e.access === "read" ? "idempotent" : e.reversible ?? "none";
4173
4214
  }
4174
4215
  function En(e) {
4175
4216
  return e.access !== "read" && e.effect !== "internal";
4176
4217
  }
4177
- function ns(e) {
4218
+ function os(e) {
4178
4219
  return `${e.kind}:${e.id || e.url || e.title}`;
4179
4220
  }
4180
- function hf(e, t = []) {
4221
+ function If(e, t = []) {
4181
4222
  const n = new Set(t), r = [], o = [];
4182
4223
  for (const i of e) {
4183
- const s = ns(i);
4224
+ const s = os(i);
4184
4225
  n.has(s) || (n.add(s), r.push(i), o.push(s));
4185
4226
  }
4186
4227
  return { sources: r, keys: o };
4187
4228
  }
4188
- const gf = "assist-source", yf = ["blocking", "due", "open"];
4189
- function bf(e, t) {
4229
+ const vf = "assist-source", kf = ["blocking", "due", "open"];
4230
+ function wf(e, t) {
4190
4231
  const [n, r] = (e.subjectKey ?? "").split(":");
4191
4232
  return n === t && r ? r : void 0;
4192
4233
  }
4193
- const Ot = { blocking: 0, due: 1, open: 2 };
4194
- function _f(e, t) {
4195
- return Ot[e.band ?? "open"] - Ot[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
4234
+ const Ct = { blocking: 0, due: 1, open: 2 };
4235
+ function Mf(e, t) {
4236
+ return Ct[e.band ?? "open"] - Ct[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
4196
4237
  }
4197
- function Af(e) {
4238
+ function Cf(e) {
4198
4239
  return e.sessions.filter(
4199
4240
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
4200
4241
  );
4201
4242
  }
4202
- function Ef(e) {
4243
+ function Of(e) {
4203
4244
  return e.sessions.filter(
4204
4245
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
4205
4246
  );
4206
4247
  }
4207
- function Sf(e) {
4248
+ function Nf(e) {
4208
4249
  return e.sessions.some(
4209
4250
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
4210
4251
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
4211
4252
  }
4212
- function rs(e, t) {
4213
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => is(s, r[s.intent]));
4253
+ function is(e, t) {
4254
+ const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => as(s, r[s.intent]));
4214
4255
  if (!e.extraIntents || e.extraIntents.length === 0) return o;
4215
4256
  const i = new Set(o.map((s) => s.intent));
4216
4257
  for (const s of e.extraIntents)
4217
4258
  i.has(s.intent) || (o.push(s), i.add(s.intent));
4218
4259
  return o;
4219
4260
  }
4220
- function os(e, t) {
4261
+ function ss(e, t) {
4221
4262
  const n = {};
4222
4263
  for (const r of e.intents) {
4223
4264
  if (!r.togglable) continue;
@@ -4226,46 +4267,46 @@ function os(e, t) {
4226
4267
  }
4227
4268
  return n;
4228
4269
  }
4229
- function Tf(e, t) {
4230
- const n = os(e, t);
4270
+ function xf(e, t) {
4271
+ const n = ss(e, t);
4231
4272
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
4232
4273
  }
4233
- function is(e, t) {
4274
+ function as(e, t) {
4234
4275
  return t ? {
4235
4276
  intent: t.intent ?? e.intent,
4236
4277
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
4237
4278
  transport: t.transport ?? e.transport
4238
4279
  } : e;
4239
4280
  }
4240
- function If(e, t) {
4281
+ function Df(e, t) {
4241
4282
  const n = [];
4242
4283
  for (const r of e) {
4243
4284
  if (!r.enabled) continue;
4244
4285
  const o = t[r.providerId];
4245
4286
  if (o)
4246
- for (const i of rs(r, o))
4287
+ for (const i of is(r, o))
4247
4288
  n.push({ channel: r, description: o, capability: i });
4248
4289
  }
4249
4290
  return n;
4250
4291
  }
4251
- function vf(e, t) {
4292
+ function Rf(e, t) {
4252
4293
  return t.filter((n) => n.capability.intent === e);
4253
4294
  }
4254
- function ss(e, t) {
4295
+ function cs(e, t) {
4255
4296
  return t.filter((n) => n.capability.targetSchemes.includes(e));
4256
4297
  }
4257
- function kf(e, t) {
4258
- return ss(e.scheme, t);
4298
+ function $f(e, t) {
4299
+ return cs(e.scheme, t);
4259
4300
  }
4260
- function wf(e, t, n) {
4301
+ function Lf(e, t, n) {
4261
4302
  const r = [];
4262
4303
  for (const o of e)
4263
4304
  for (const i of n)
4264
4305
  i.capability.intent === t && i.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: i, endpoint: o });
4265
4306
  return r;
4266
4307
  }
4267
- var as = /* @__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))(as || {});
4268
- const cs = {
4308
+ var ls = /* @__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))(ls || {});
4309
+ const us = {
4269
4310
  mailto: "mail",
4270
4311
  sip: "tel",
4271
4312
  tel: "tel",
@@ -4286,10 +4327,10 @@ const cs = {
4286
4327
  id: "note",
4287
4328
  custom: "note"
4288
4329
  };
4289
- function Mf(e) {
4290
- return e ? cs[e] ?? "note" : "note";
4330
+ function Pf(e) {
4331
+ return e ? us[e] ?? "note" : "note";
4291
4332
  }
4292
- const Of = "message_window", Cf = "message_templates", Nf = {
4333
+ const Kf = "message_window", Uf = "message_templates", Ff = {
4293
4334
  // E-mail
4294
4335
  FROM: "from",
4295
4336
  TO: "to",
@@ -4306,11 +4347,11 @@ const Of = "message_window", Cf = "message_templates", Nf = {
4306
4347
  // Voice/conference
4307
4348
  HOST: "host",
4308
4349
  PARTICIPANT: "participant"
4309
- }, xf = (e, t) => ({ intent: e, ...t }), Df = "folder_management", Rf = "remote_search", $f = "message_reactions", Lf = {
4350
+ }, jf = (e, t) => ({ intent: e, ...t }), Bf = "folder_management", Gf = "remote_search", Hf = "message_reactions", Wf = {
4310
4351
  ok: !1,
4311
4352
  code: "UNSUPPORTED",
4312
4353
  message: "Provider does not support this op"
4313
- }, Pf = "connector", Kf = "context.collect", A = (e) => ({ type: "string", description: e }), _ = (e) => ({ type: "number", description: e }), ee = (e) => ({ type: "boolean", description: e }), M = A("Sheet name. Omit for the sheet the user is looking at."), Ct = A("Slide id, as `inspect` reports it.");
4354
+ }, Vf = "connector", zf = "context.collect", A = (e) => ({ type: "string", description: e }), _ = (e) => ({ type: "number", description: e }), ee = (e) => ({ type: "boolean", description: e }), M = A("Sheet name. Omit for the sheet the user is looking at."), Ot = A("Slide id, as `inspect` reports it.");
4314
4355
  function b(e, t, n, r, o, i) {
4315
4356
  return {
4316
4357
  op: e,
@@ -4321,14 +4362,14 @@ function b(e, t, n, r, o, i) {
4321
4362
  visible: i.visible
4322
4363
  };
4323
4364
  }
4324
- const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt = { undoable: !1, visible: !0 }, re = { undoable: !1, visible: !1 }, ls = [
4365
+ const H = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt = { undoable: !1, visible: !0 }, re = { undoable: !1, visible: !1 }, ds = [
4325
4366
  b(
4326
4367
  "pdf.goToPage",
4327
4368
  ["pdf"],
4328
4369
  "Scroll the viewer to a page.",
4329
4370
  { page: _("1-based page number.") },
4330
4371
  ["page"],
4331
- G
4372
+ H
4332
4373
  ),
4333
4374
  b(
4334
4375
  "pdf.search",
@@ -4336,7 +4377,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4336
4377
  "Search the document and highlight the matches, as the find bar does.",
4337
4378
  { query: A("Text to find."), next: ee("Jump to the next match instead of the first.") },
4338
4379
  ["query"],
4339
- G
4380
+ H
4340
4381
  ),
4341
4382
  b(
4342
4383
  "pdf.setTool",
@@ -4350,7 +4391,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4350
4391
  }
4351
4392
  },
4352
4393
  ["tool"],
4353
- G
4394
+ H
4354
4395
  ),
4355
4396
  b(
4356
4397
  "pdf.fillField",
@@ -4416,7 +4457,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4416
4457
  ["page", "text"],
4417
4458
  re
4418
4459
  )
4419
- ], us = [
4460
+ ], fs = [
4420
4461
  b(
4421
4462
  "sheet.setValues",
4422
4463
  ["sheet"],
@@ -4566,9 +4607,9 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4566
4607
  "Show the user a sheet and select a range on it.",
4567
4608
  { sheet: M, range: A("A1 notation to select. Omit to only switch sheets.") },
4568
4609
  [],
4569
- G
4610
+ H
4570
4611
  )
4571
- ], ds = [
4612
+ ], ps = [
4572
4613
  b(
4573
4614
  "word.replaceParagraph",
4574
4615
  ["word"],
@@ -4628,15 +4669,15 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4628
4669
  "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.",
4629
4670
  { start: _("Start character offset."), end: _("End character offset. Omit for a caret.") },
4630
4671
  ["start"],
4631
- G
4672
+ H
4632
4673
  )
4633
- ], fs = [
4674
+ ], ms = [
4634
4675
  b(
4635
4676
  "slides.setText",
4636
4677
  ["slides"],
4637
4678
  "Replace the text of one shape. Written on save; not visible before that, and not undoable.",
4638
4679
  {
4639
- slide: Ct,
4680
+ slide: Ot,
4640
4681
  element: A("Element id, as `inspect` reports it."),
4641
4682
  text: A("The new text.")
4642
4683
  },
@@ -4648,7 +4689,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4648
4689
  ["slides"],
4649
4690
  "Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",
4650
4691
  {
4651
- slide: Ct,
4692
+ slide: Ot,
4652
4693
  element: A("Element id."),
4653
4694
  left: _("Distance from the left edge, in pixels."),
4654
4695
  top: _("Distance from the top edge, in pixels."),
@@ -4659,23 +4700,23 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4659
4700
  re
4660
4701
  )
4661
4702
  ], Sn = [
4662
- ...ls,
4663
- ...us,
4664
4703
  ...ds,
4665
- ...fs
4704
+ ...fs,
4705
+ ...ps,
4706
+ ...ms
4666
4707
  ];
4667
- function Uf(e) {
4708
+ function Yf(e) {
4668
4709
  return Sn.filter((t) => t.kinds.includes(e));
4669
4710
  }
4670
- function Ff(e) {
4711
+ function Xf(e) {
4671
4712
  return Sn.find((t) => t.op === e);
4672
4713
  }
4673
- const xt = /(?: {2,}|\\)$/, ps = /^\*\*([^*]+)\*\*\s+(.*)$/;
4714
+ const xt = /(?: {2,}|\\)$/, hs = /^\*\*([^*]+)\*\*\s+(.*)$/;
4674
4715
  function Dt(e) {
4675
- const t = ps.exec(e);
4716
+ const t = hs.exec(e);
4676
4717
  return t ? { lead: t[1], text: t[2] } : { text: e };
4677
4718
  }
4678
- function jf(e) {
4719
+ function qf(e) {
4679
4720
  const t = (e ?? "").replace(/\r\n/g, `
4680
4721
  `).split(`
4681
4722
  `), n = [];
@@ -4754,27 +4795,27 @@ function jf(e) {
4754
4795
  }
4755
4796
  return d(), n;
4756
4797
  }
4757
- function Bf(e, t) {
4798
+ function Qf(e, t) {
4758
4799
  return ar(e, t).replace(/^```.*$/gm, "").replace(/^\|[\s:|-]*\|$/gm, "").replace(/[ \t]*\|[ \t]*/g, " ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm, "").replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1").replace(/\[([^\]]+)\]\([^)]*\)/g, "$1").replace(/(\*\*|__|\*|_|`|~~)/g, "").replace(/[ \t]+$/gm, "").replace(/\n{3,}/g, `
4759
4800
 
4760
4801
  `).trim();
4761
4802
  }
4762
- const Hf = "documents.describe", Gf = "documents.inspect", Wf = "documents.apply";
4763
- function Vf(e) {
4803
+ const Jf = "documents.describe", Zf = "documents.inspect", ep = "documents.apply";
4804
+ function tp(e) {
4764
4805
  const t = e.indexOf(":");
4765
4806
  if (t !== -1) return e.slice(0, t);
4766
4807
  const n = e.indexOf(".");
4767
4808
  return n === -1 ? e : e.slice(0, n);
4768
4809
  }
4769
- const zf = "installation-id";
4770
- function Yf(e) {
4810
+ const np = "installation-id";
4811
+ function rp(e) {
4771
4812
  const t = [];
4772
4813
  for (const n of Object.keys(e))
4773
4814
  for (const r of Object.keys(e[n]))
4774
4815
  t.push({ lang: n, key: r, value: e[n][r] });
4775
4816
  return t;
4776
4817
  }
4777
- const Xf = "notification-source", qf = (e, t) => `${e}.pref.${t}`, Qf = {
4818
+ const op = "notification-source", ip = (e, t) => `${e}.pref.${t}`, sp = {
4778
4819
  ai: [
4779
4820
  "account.read",
4780
4821
  "account.write",
@@ -4914,48 +4955,48 @@ const Xf = "notification-source", qf = (e, t) => `${e}.pref.${t}`, Qf = {
4914
4955
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
4915
4956
  user: ["user.read", "user.write"],
4916
4957
  work: ["item.read", "item.write", "project.read", "project.write"]
4917
- }, Tn = 9e4, ms = ["out_of_office"], In = (e) => ms.includes(e);
4918
- function Jf(e, t, n) {
4958
+ }, Tn = 9e4, gs = ["out_of_office"], In = (e) => gs.includes(e);
4959
+ function ap(e, t, n) {
4919
4960
  const r = n - e < Tn, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
4920
4961
  if (!o?.status) return { online: r, status: r ? "available" : "offline" };
4921
4962
  const i = o.status;
4922
4963
  return !r && !In(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
4923
4964
  }
4924
- function Zf(e, t) {
4965
+ function cp(e, t) {
4925
4966
  const n = t - e.lastSeenAt < Tn, r = n || In(e.status) ? e.status : "offline";
4926
4967
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
4927
4968
  }
4928
- function ep(e, t) {
4969
+ function lp(e, t) {
4929
4970
  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 };
4930
4971
  }
4931
- function tp(e) {
4972
+ function up(e) {
4932
4973
  return e.providerAvailable && e.allowed;
4933
4974
  }
4934
- const np = "resources.describe", rp = "resources.search", op = "resources.resolve", ip = "resources.attached";
4935
- function sp(e) {
4975
+ const dp = "resources.describe", fp = "resources.search", pp = "resources.resolve", mp = "resources.attached";
4976
+ function hp(e) {
4936
4977
  const t = e.indexOf(":");
4937
4978
  return t === -1 ? e : e.slice(0, t);
4938
4979
  }
4939
- const ap = "/provider/scope/related", cp = "/provider/scope/read", lp = "/provider/scope/acts", vn = "auth";
4980
+ const gp = "/provider/scope/related", yp = "/provider/scope/read", bp = "/provider/scope/acts", vn = "auth";
4940
4981
  function kn(e) {
4941
4982
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
4942
4983
  return t ? t[1] : null;
4943
4984
  }
4944
- function up(e) {
4985
+ function _p(e) {
4945
4986
  const t = kn(e);
4946
4987
  return t ? t !== vn : typeof e == "string" && e.startsWith("/wake");
4947
4988
  }
4948
- function dp(e) {
4989
+ function Ap(e) {
4949
4990
  return typeof e != "string" || e === "" || e === "/" ? !0 : kn(e) === vn;
4950
4991
  }
4951
- function hs(e) {
4992
+ function ys(e) {
4952
4993
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4953
4994
  }
4954
- function gs(e) {
4955
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${hs(r)}`).join("");
4995
+ function bs(e) {
4996
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${ys(r)}`).join("");
4956
4997
  return new RegExp(`^${n}\\/?$`);
4957
4998
  }
4958
- function ys(e, t) {
4999
+ function _s(e, t) {
4959
5000
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), o = {};
4960
5001
  return n.forEach((i, s) => {
4961
5002
  if (i.startsWith(":")) {
@@ -4964,14 +5005,14 @@ function ys(e, t) {
4964
5005
  }
4965
5006
  }), o;
4966
5007
  }
4967
- function bs(e) {
5008
+ function As(e) {
4968
5009
  return e.publicBasePath ?? `/apps/${e.name}`;
4969
5010
  }
4970
- function fp(e) {
5011
+ function Ep(e) {
4971
5012
  const t = [];
4972
5013
  for (const n of e) {
4973
5014
  if (!n?.name) continue;
4974
- const r = bs(n);
5015
+ const r = As(n);
4975
5016
  for (const o of n.routes ?? []) {
4976
5017
  if (!o.public) continue;
4977
5018
  const i = o.path === "/" ? "" : o.path;
@@ -4985,7 +5026,7 @@ function fp(e) {
4985
5026
  }
4986
5027
  return t;
4987
5028
  }
4988
- function _s(e, t) {
5029
+ function Es(e, t) {
4989
5030
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
4990
5031
  for (let o = 0; o < Math.min(n.length, r.length); o++) {
4991
5032
  const i = n[o].startsWith(":"), s = r[o].startsWith(":");
@@ -4993,35 +5034,35 @@ function _s(e, t) {
4993
5034
  }
4994
5035
  return n.length > r.length;
4995
5036
  }
4996
- function As(e, t) {
5037
+ function Ss(e, t) {
4997
5038
  if (typeof e != "string") return null;
4998
5039
  let n = null;
4999
5040
  for (const r of t)
5000
- gs(r.pattern).test(e) && (!n || _s(r.pattern, n.pattern)) && (n = r);
5001
- return n ? { ...n, params: { ...n.props, ...ys(n.pattern, e) } } : null;
5041
+ bs(r.pattern).test(e) && (!n || Es(r.pattern, n.pattern)) && (n = r);
5042
+ return n ? { ...n, params: { ...n.props, ..._s(n.pattern, e) } } : null;
5002
5043
  }
5003
- function pp(e, t) {
5004
- return As(e, t) !== null;
5044
+ function Sp(e, t) {
5045
+ return Ss(e, t) !== null;
5005
5046
  }
5006
- const mp = 10 * 1024 * 1024, hp = 25 * 1024 * 1024, gp = "sync-target", yp = 20;
5047
+ const Tp = 10 * 1024 * 1024, Ip = 25 * 1024 * 1024, vp = "sync-target", kp = 20;
5007
5048
  function wn(e, t) {
5008
5049
  const n = Array.isArray(t) ? t.find((r) => r.name === e.name)?.policy : void 0;
5009
5050
  return n ? n !== "read" : e.access ? e.access !== "read" : !0;
5010
5051
  }
5011
- function Es(e, t, n) {
5052
+ function Ts(e, t, n) {
5012
5053
  return wn(e, n) ? t.guarded === "all" || t.guarded?.has(e.name) ? !0 : t.autonomy === "auto" ? !1 : t.autonomy === "outward" ? En(e) : !0 : !1;
5013
5054
  }
5014
- function Ss(e) {
5055
+ function Is(e) {
5015
5056
  return e.produces === "draft";
5016
5057
  }
5017
- function bp(e, t) {
5058
+ function wp(e, t) {
5018
5059
  if (t.allowed) {
5019
5060
  const n = t.personalTools === "allow" && e.personal === !0;
5020
5061
  if (!t.allowed.has(e.name) && !n) return "hidden";
5021
5062
  }
5022
- return t.narrow && !t.narrow.has(e.name) || !t.attended && (e.personal === !0 || e.surface === "interactive") || t.readOnly && e.access !== "read" || t.mode === "ask" && wn(e) || t.mode === "draft" && (En(e) || e.access !== "read" && !Ss(e)) ? "hidden" : t.gate && Es(e, t.gate, t.policy) ? "held" : "free";
5063
+ return t.narrow && !t.narrow.has(e.name) || !t.attended && (e.personal === !0 || e.surface === "interactive") || t.readOnly && e.access !== "read" || t.mode === "ask" && wn(e) || t.mode === "draft" && (En(e) || e.access !== "read" && !Is(e)) ? "hidden" : t.gate && Ts(e, t.gate, t.policy) ? "held" : "free";
5023
5064
  }
5024
- const Ts = {
5065
+ const vs = {
5025
5066
  afrikaans: [
5026
5067
  "[Muziek]",
5027
5068
  "(C) TV GELDERLAND 2021",
@@ -5171,14 +5212,14 @@ const Ts = {
5171
5212
  "[MÚSICA]",
5172
5213
  "[Music cuts in British]"
5173
5214
  ]
5174
- }, Is = (e) => {
5215
+ }, ks = (e) => {
5175
5216
  let t = e;
5176
- return Object.values(Ts).forEach((n) => {
5217
+ return Object.values(vs).forEach((n) => {
5177
5218
  n.forEach((r) => {
5178
5219
  t = t.replaceAll(r, "");
5179
5220
  });
5180
5221
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
5181
- }, vs = 6e4, ks = 8e3, ws = 2, Ms = 0.4, Os = 3, Cs = /* @__PURE__ */ new Set([
5222
+ }, ws = 6e4, Ms = 8e3, Cs = 2, Os = 0.4, Ns = 3, xs = /* @__PURE__ */ new Set([
5182
5223
  "aan",
5183
5224
  "als",
5184
5225
  "ben",
@@ -5291,13 +5332,13 @@ const Ts = {
5291
5332
  "you",
5292
5333
  "your"
5293
5334
  ]);
5294
- function Ns(e) {
5335
+ function Ds(e) {
5295
5336
  const t = /* @__PURE__ */ new Set();
5296
5337
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
5297
- n.length < Os || Cs.has(n) || t.add(n);
5338
+ n.length < Ns || xs.has(n) || t.add(n);
5298
5339
  return [...t];
5299
5340
  }
5300
- function xs(e, t) {
5341
+ function Rs(e, t) {
5301
5342
  if (!e.length) return 0;
5302
5343
  if (!t.length) return 1;
5303
5344
  const n = new Set(t), r = new Set(e);
@@ -5305,32 +5346,32 @@ function xs(e, t) {
5305
5346
  for (const i of r) n.has(i) || (o += 1);
5306
5347
  return o / r.size;
5307
5348
  }
5308
- function Ds(e, t = vs) {
5349
+ function $s(e, t = ws) {
5309
5350
  const n = e.filter((s) => !s.partial && typeof s.text == "string");
5310
5351
  if (!n.length) return { text: "", segmentCount: 0 };
5311
5352
  const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
5312
- return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => Is(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
5353
+ return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => ks(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
5313
5354
  }
5314
- const Rs = 60;
5315
- function _p(e, t, n = Rs) {
5355
+ const Ls = 60;
5356
+ function Mp(e, t, n = Ls) {
5316
5357
  const r = new Set(e), o = [...e];
5317
5358
  for (const i of t)
5318
5359
  !i || r.has(i) || (r.add(i), o.push(i));
5319
5360
  return o.slice(-n);
5320
5361
  }
5321
- function Ap(e) {
5362
+ function Cp(e) {
5322
5363
  const { segments: t, now: n, state: r } = e;
5323
- if (r.lastTriggerAt && n - r.lastTriggerAt < ks)
5364
+ if (r.lastTriggerAt && n - r.lastTriggerAt < Ms)
5324
5365
  return { trigger: !1, reason: "too_soon" };
5325
- const o = Ds(t, e.windowMs);
5366
+ const o = $s(t, e.windowMs);
5326
5367
  if (!o.text) return { trigger: !1, reason: "no_speech" };
5327
5368
  const i = o.segmentCount - (r.lastSegmentCount ?? 0);
5328
- if (r.lastQueryTerms && i < ws)
5369
+ if (r.lastQueryTerms && i < Cs)
5329
5370
  return { trigger: !1, reason: "too_few_new" };
5330
- const s = Ns(o.text);
5331
- return s.length ? r.lastQueryTerms?.length && xs(s, r.lastQueryTerms) < Ms ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
5371
+ const s = Ds(o.text);
5372
+ return s.length ? r.lastQueryTerms?.length && Rs(s, r.lastQueryTerms) < Os ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
5332
5373
  }
5333
- const Ep = [
5374
+ const Op = [
5334
5375
  "personal",
5335
5376
  "organization",
5336
5377
  "connections",
@@ -5338,7 +5379,7 @@ const Ep = [
5338
5379
  "work",
5339
5380
  "administration",
5340
5381
  "ai"
5341
- ], Sp = "navNotice", Ye = {
5382
+ ], Np = "navNotice", Ye = {
5342
5383
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
5343
5384
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
5344
5385
  // An over-permissive key is harmless — it simply matches nothing.
@@ -5361,7 +5402,7 @@ const Ep = [
5361
5402
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
5362
5403
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
5363
5404
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
5364
- }, $s = "NL", Ls = 15, Ps = 8, Ks = Array.from(
5405
+ }, Ps = "NL", Ks = 15, Us = 8, Fs = Array.from(
5365
5406
  new Set(Object.values(Ye).map((e) => e.callingCode))
5366
5407
  ).sort((e, t) => t.length - e.length);
5367
5408
  function Rt(e) {
@@ -5372,8 +5413,8 @@ function te(e, t) {
5372
5413
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
5373
5414
  }
5374
5415
  function $t(e) {
5375
- if (e.length > Ls) return null;
5376
- for (const t of Ks) {
5416
+ if (e.length > Ks) return null;
5417
+ for (const t of Fs) {
5377
5418
  if (!e.startsWith(t)) continue;
5378
5419
  const n = e.slice(t.length);
5379
5420
  for (const r of Object.values(Ye)) {
@@ -5383,16 +5424,16 @@ function $t(e) {
5383
5424
  }
5384
5425
  return null;
5385
5426
  }
5386
- return e.length < Ps ? null : `+${e}`;
5427
+ return e.length < Us ? null : `+${e}`;
5387
5428
  }
5388
- function Us(e) {
5429
+ function js(e) {
5389
5430
  let t = e.trim();
5390
5431
  const n = t.match(/^(sips?|tel|whatsapp):/i);
5391
5432
  n && (t = t.slice(n[0].length));
5392
5433
  const r = t.indexOf("@");
5393
5434
  return r >= 0 && (t = t.slice(0, r)), t.trim();
5394
5435
  }
5395
- function Tp(e) {
5436
+ function xp(e) {
5396
5437
  if (!e) return !1;
5397
5438
  const t = e.indexOf("@");
5398
5439
  if (t <= 0) return !1;
@@ -5401,13 +5442,13 @@ function Tp(e) {
5401
5442
  }
5402
5443
  function Lt(e, t) {
5403
5444
  if (!e) return null;
5404
- const n = Us(e);
5445
+ const n = js(e);
5405
5446
  if (!n) return null;
5406
5447
  const r = n.startsWith("+"), o = n.replace(/\D/g, "");
5407
5448
  if (!o) return null;
5408
5449
  if (r) return $t(o);
5409
5450
  if (o.startsWith("00")) return $t(o.slice(2));
5410
- const i = Rt(t) ?? Rt($s);
5451
+ const i = Rt(t) ?? Rt(Ps);
5411
5452
  if (!i) return null;
5412
5453
  const s = i.trunkPrefix;
5413
5454
  if (s && o.startsWith(s)) {
@@ -5420,7 +5461,7 @@ function Lt(e, t) {
5420
5461
  }
5421
5462
  return !s && te(o, i) ? `+${i.callingCode}${o}` : null;
5422
5463
  }
5423
- function Ip(e, t = 9) {
5464
+ function Dp(e, t = 9) {
5424
5465
  const n = (e ?? "").replace(/\D/g, "");
5425
5466
  return n.length < t ? null : n.slice(-t);
5426
5467
  }
@@ -5431,11 +5472,11 @@ function Mn(e) {
5431
5472
  const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
5432
5473
  return !r || !o.includes(".") ? null : `${r}@${o}`;
5433
5474
  }
5434
- function vp(e) {
5475
+ function Rp(e) {
5435
5476
  const t = Mn(e);
5436
5477
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
5437
5478
  }
5438
- const Fs = /* @__PURE__ */ new Set([
5479
+ const Bs = /* @__PURE__ */ new Set([
5439
5480
  "co.uk",
5440
5481
  "org.uk",
5441
5482
  "gov.uk",
@@ -5445,14 +5486,14 @@ const Fs = /* @__PURE__ */ new Set([
5445
5486
  "com.br",
5446
5487
  "co.za"
5447
5488
  ]);
5448
- function js(e) {
5489
+ function Gs(e) {
5449
5490
  if (!e) return null;
5450
5491
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
5451
5492
  if (t.length < 2) return null;
5452
5493
  const n = t.slice(-2).join(".");
5453
- return Fs.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
5494
+ return Bs.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
5454
5495
  }
5455
- const Bs = /* @__PURE__ */ new Set([
5496
+ const Hs = /* @__PURE__ */ new Set([
5456
5497
  "gmail.com",
5457
5498
  "googlemail.com",
5458
5499
  "outlook.com",
@@ -5497,16 +5538,16 @@ const Bs = /* @__PURE__ */ new Set([
5497
5538
  "proximus.be",
5498
5539
  "scarlet.be"
5499
5540
  ]);
5500
- function kp(e) {
5501
- const t = js(e);
5502
- return t ? Bs.has(t) : !1;
5541
+ function $p(e) {
5542
+ const t = Gs(e);
5543
+ return t ? Hs.has(t) : !1;
5503
5544
  }
5504
- function wp(e) {
5545
+ function Lp(e) {
5505
5546
  if (!e) return !1;
5506
5547
  const t = e.trim().toLowerCase();
5507
5548
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
5508
5549
  }
5509
- function Mp(e, t, n) {
5550
+ function Pp(e, t, n) {
5510
5551
  if (!e || !t) return null;
5511
5552
  const r = e.trim().toLowerCase();
5512
5553
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -5524,7 +5565,7 @@ function Mp(e, t, n) {
5524
5565
  const o = t.trim().toLowerCase();
5525
5566
  return o ? `${r}:${o}` : null;
5526
5567
  }
5527
- const Hs = [
5568
+ const Ws = [
5528
5569
  /<blockquote/i,
5529
5570
  /class="?gmail_quote/i,
5530
5571
  // Gmail quote container
@@ -5537,24 +5578,24 @@ const Hs = [
5537
5578
  // Outlook underscore separator before "From:"
5538
5579
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
5539
5580
  // Gmail "On <date> <name> wrote:"
5540
- ], Pt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Gs = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
5541
- function Ws(e) {
5581
+ ], Pt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Vs = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
5582
+ function zs(e) {
5542
5583
  const t = e.split(`
5543
5584
  `);
5544
5585
  for (let n = 0; n < t.length; n++)
5545
- if (Gs.test(t[n]) || Pt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => Pt.test(r)))
5586
+ if (Vs.test(t[n]) || Pt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => Pt.test(r)))
5546
5587
  return t.slice(0, n).join(`
5547
5588
  `).trim();
5548
5589
  return e;
5549
5590
  }
5550
- const Vs = /^(?:https?:|mailto:|tel:)/i, zs = /^(?:https?:|cid:|data:image\/)/i;
5591
+ const Ys = /^(?:https?:|mailto:|tel:)/i, Xs = /^(?:https?:|cid:|data:image\/)/i;
5551
5592
  function be(e, t) {
5552
5593
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
5553
5594
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
5554
5595
  }
5555
- const Ys = /(!\[[^\]]*\]\([^)]*\))/;
5596
+ const qs = /(!\[[^\]]*\]\([^)]*\))/;
5556
5597
  function Kt(e) {
5557
- return e.replace(/\s+/g, " ").trim().split(Ys).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
5598
+ return e.replace(/\s+/g, " ").trim().split(qs).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
5558
5599
  }
5559
5600
  function _e(e) {
5560
5601
  return e.replace(
@@ -5562,47 +5603,47 @@ function _e(e) {
5562
5603
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
5563
5604
  );
5564
5605
  }
5565
- function Xs(e) {
5606
+ function Qs(e) {
5566
5607
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
5567
5608
  const o = be(r, "src");
5568
- return zs.test(o) ? `![${Kt(be(r, "alt"))}](${_e(o)})` : "";
5609
+ return Xs.test(o) ? `![${Kt(be(r, "alt"))}](${_e(o)})` : "";
5569
5610
  }).replace(
5570
5611
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
5571
5612
  (n, r, o) => {
5572
5613
  const i = Kt(o.replace(/<[^>]*>/g, "")), s = be(r, "href");
5573
- return Vs.test(s) ? `[${i || _e(s)}](${_e(s)})` : i;
5614
+ return Ys.test(s) ? `[${i || _e(s)}](${_e(s)})` : i;
5574
5615
  }
5575
5616
  );
5576
5617
  }
5577
- const qs = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, Qs = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, Js = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
5578
- function Zs(e, t) {
5618
+ const Js = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, Zs = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, ea = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
5619
+ function ta(e, t) {
5579
5620
  return /<table\b/i.test(e) || e.includes(`
5580
5621
 
5581
5622
  |`) || t.includes("![") || t.length > 200;
5582
5623
  }
5583
- const ea = 40, ta = { left: "---", center: ":---:", right: "---:" };
5584
- function na(e) {
5624
+ const na = 40, ra = { left: "---", center: ":---:", right: "---:" };
5625
+ function oa(e) {
5585
5626
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
5586
5627
  return t ? t[1].toLowerCase() : "left";
5587
5628
  }
5588
- function ra(e) {
5629
+ function ia(e) {
5589
5630
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
5590
5631
  }
5591
- function oa(e) {
5632
+ function sa(e) {
5592
5633
  const t = [];
5593
- for (const s of e.matchAll(Qs)) {
5634
+ for (const s of e.matchAll(Zs)) {
5594
5635
  const a = [];
5595
- for (const l of s[1].matchAll(Js)) {
5596
- const c = ra(l[3]);
5597
- if (Zs(l[3], c)) return null;
5598
- a.push({ text: c, align: na(l[2]) });
5636
+ for (const l of s[1].matchAll(ea)) {
5637
+ const c = ia(l[3]);
5638
+ if (ta(l[3], c)) return null;
5639
+ a.push({ text: c, align: oa(l[2]) });
5599
5640
  }
5600
5641
  if (a.length === 0) return null;
5601
5642
  a.some((l) => l.text !== "") && t.push(a);
5602
5643
  }
5603
5644
  const n = t[0]?.length ?? 0;
5604
5645
  if (t.length < 2 || n < 2 || t.some((s) => s.length !== n)) return null;
5605
- const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => ta[s.align]).join(" | "), i = t.slice(1).map(r).join(`
5646
+ const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => ra[s.align]).join(" | "), i = t.slice(1).map(r).join(`
5606
5647
  `);
5607
5648
  return `
5608
5649
 
@@ -5612,18 +5653,18 @@ ${i}
5612
5653
 
5613
5654
  `;
5614
5655
  }
5615
- function ia(e) {
5656
+ function aa(e) {
5616
5657
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
5617
5658
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
5618
5659
  }
5619
- function sa(e) {
5660
+ function ca(e) {
5620
5661
  let t = e;
5621
- for (let n = 0; n < ea; n++) {
5622
- const r = qs.exec(t);
5662
+ for (let n = 0; n < na; n++) {
5663
+ const r = Js.exec(t);
5623
5664
  if (!r || r.index === void 0) break;
5624
- const i = oa(r[1]) ?? `
5665
+ const i = sa(r[1]) ?? `
5625
5666
 
5626
- ${ia(r[1])}
5667
+ ${aa(r[1])}
5627
5668
 
5628
5669
  `;
5629
5670
  t = t.slice(0, r.index) + i + t.slice(r.index + r[0].length);
@@ -5633,7 +5674,7 @@ ${ia(r[1])}
5633
5674
  function Ut(e, t) {
5634
5675
  let n = e;
5635
5676
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
5636
- `), t && (n = sa(Xs(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
5677
+ `), t && (n = ca(Qs(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
5637
5678
 
5638
5679
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
5639
5680
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
@@ -5641,7 +5682,7 @@ function Ut(e, t) {
5641
5682
  function Ft(e) {
5642
5683
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
5643
5684
  }
5644
- const aa = {
5685
+ const la = {
5645
5686
  euro: "€",
5646
5687
  pound: "£",
5647
5688
  yen: "¥",
@@ -5664,7 +5705,7 @@ const aa = {
5664
5705
  apos: "'"
5665
5706
  };
5666
5707
  function jt(e) {
5667
- return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => aa[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => Ft(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => Ft(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
5708
+ return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => la[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => Ft(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => Ft(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
5668
5709
  }
5669
5710
  function Bt(e) {
5670
5711
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
@@ -5672,41 +5713,41 @@ function Bt(e) {
5672
5713
 
5673
5714
  `).trim();
5674
5715
  }
5675
- const ca = /<\s*(html|body|div|p|table|br|span)\b/i;
5676
- function Op(e) {
5677
- return ca.test(e);
5716
+ const ua = /<\s*(html|body|div|p|table|br|span)\b/i;
5717
+ function Kp(e) {
5718
+ return ua.test(e);
5678
5719
  }
5679
- function Cp(e) {
5680
- return On(e, !1);
5720
+ function Up(e) {
5721
+ return Cn(e, !1);
5681
5722
  }
5682
- function Np(e) {
5683
- return On(e, !0);
5723
+ function Fp(e) {
5724
+ return Cn(e, !0);
5684
5725
  }
5685
- function On(e, t) {
5726
+ function Cn(e, t) {
5686
5727
  if (typeof e != "string" || !e) return "";
5687
5728
  let n = e.length;
5688
- for (const s of Hs) {
5729
+ for (const s of Ws) {
5689
5730
  const a = e.search(s);
5690
5731
  a >= 0 && a < n && (n = a);
5691
5732
  }
5692
5733
  const r = e.slice(0, n);
5693
5734
  let o = Bt(jt(Ut(r, t)));
5694
- return o || (o = Bt(jt(Ut(e, t)))), Ws(o) || o;
5735
+ return o || (o = Bt(jt(Ut(e, t)))), zs(o) || o;
5695
5736
  }
5696
5737
  export {
5697
- dc as ACTIVE_ASSIGNMENT_STATUSES,
5738
+ pc as ACTIVE_ASSIGNMENT_STATUSES,
5698
5739
  R as ACTIVITY_CATALOG,
5699
- ts as AI_ATTACHMENT_LIMITS,
5700
- df as AI_ATTACHMENT_MAX_PER_TURN,
5701
- uf as AI_ATTACHMENT_TURN_BUDGET,
5740
+ rs as AI_ATTACHMENT_LIMITS,
5741
+ Af as AI_ATTACHMENT_MAX_PER_TURN,
5742
+ _f as AI_ATTACHMENT_TURN_BUDGET,
5702
5743
  Ue as AI_CAPABILITIES,
5703
- pf as AI_TOOL_PROVIDER_GROUP,
5744
+ Sf as AI_TOOL_PROVIDER_GROUP,
5704
5745
  Wt as AI_VENDORS,
5705
5746
  Zn as ALLOWED_LINK_SCHEMES,
5706
- Qf as APP_PERMISSIONS,
5707
- ol as ARTICLE_SCOPE_KIND,
5747
+ sp as APP_PERMISSIONS,
5748
+ fl as ARTICLE_SCOPE_KIND,
5708
5749
  at as ARTIFACT_MAX_BLOCKS,
5709
- oc as ARTIFACT_MAX_BODY_BYTES,
5750
+ sc as ARTIFACT_MAX_BODY_BYTES,
5710
5751
  Z as ARTIFACT_MAX_CELL_LEN,
5711
5752
  dt as ARTIFACT_MAX_KPI_ITEMS,
5712
5753
  ct as ARTIFACT_MAX_LIST_ITEMS,
@@ -5714,41 +5755,47 @@ export {
5714
5755
  lt as ARTIFACT_MAX_TABLE_ROWS,
5715
5756
  zt as ARTIFACT_MAX_TEXT_LEN,
5716
5757
  lr as ASSIGNMENT_SCOPE_KIND,
5717
- yf as ASSIST_BANDS,
5718
- gf as ASSIST_SOURCE_PROVIDER_GROUP,
5719
- Ur as ATTENTION_STATUSES,
5720
- _i as AT_RISK_GAP,
5758
+ kf as ASSIST_BANDS,
5759
+ vf as ASSIST_SOURCE_PROVIDER_GROUP,
5760
+ jr as ATTENTION_STATUSES,
5761
+ Ei as AT_RISK_GAP,
5721
5762
  vn as AUTH_APP_NAME,
5722
- jo as AUTO_READY_MIN_PROPOSALS,
5723
- Bo as AUTO_READY_RATE,
5763
+ Go as AUTO_READY_MIN_PROPOSALS,
5764
+ Ho as AUTO_READY_RATE,
5724
5765
  Fn as ActivityTypeRegistry,
5725
- ka as BUILT_IN_ONLY,
5726
- Fr as BULK_PENALTY,
5727
- _c as BUSINESS_ENTITY_LIST_SERVICE,
5728
- ks as CADENCE_FLOOR_MS,
5729
- ws as CADENCE_MIN_NEW_SEGMENTS,
5730
- Ms as CADENCE_MIN_NOVELTY,
5731
- vs as CADENCE_WINDOW_MS,
5732
- eu as CLASSIFY_VARS,
5733
- dd as CLEARABLE_FIELDS,
5734
- Pf as CONNECTOR_PROVIDER_GROUP,
5735
- Kf as CONTEXT_COLLECT_SERVICE,
5736
- za as CORE_DIMENSIONS,
5737
- as as CommunicationScheme,
5738
- Cr as DAY_MS,
5739
- gi as DEFAULT_CHECK_IN_DAYS,
5740
- bo as DEFAULT_FORECAST_WEEKS,
5741
- yl as DEFAULT_MEMORY_BUDGET,
5742
- Td as DEFAULT_NUMBER_PADDING,
5743
- $s as DEFAULT_PHONE_REGION,
5744
- yd as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
5745
- gd as DEFAULT_TEMPLATE_CONDITIONS,
5746
- Ml as DEMAND_SOURCE_PROVIDER_GROUP,
5747
- Wf as DOCUMENT_APPLY_SERVICE,
5748
- Hf as DOCUMENT_DESCRIBE_SERVICE,
5749
- Gf as DOCUMENT_INSPECT_SERVICE,
5766
+ Ma as BUILT_IN_ONLY,
5767
+ Br as BULK_PENALTY,
5768
+ Ec as BUSINESS_ENTITY_LIST_SERVICE,
5769
+ Ms as CADENCE_FLOOR_MS,
5770
+ Cs as CADENCE_MIN_NEW_SEGMENTS,
5771
+ Os as CADENCE_MIN_NOVELTY,
5772
+ ws as CADENCE_WINDOW_MS,
5773
+ cu as CLASSIFY_VARS,
5774
+ Ad as CLEARABLE_FIELDS,
5775
+ Vf as CONNECTOR_PROVIDER_GROUP,
5776
+ zf as CONTEXT_COLLECT_SERVICE,
5777
+ Xa as CORE_DIMENSIONS,
5778
+ Fc as CRM_ACTIVITY_SCOPE_KIND,
5779
+ Bc as CRM_CALL_CHANNELS,
5780
+ Ir as CRM_CALL_LOGGED,
5781
+ Gc as CRM_CALL_OUTCOMES,
5782
+ Tr as CRM_NOTE_ADDED,
5783
+ jc as CRM_STAGE_CHANGED,
5784
+ ls as CommunicationScheme,
5785
+ xr as DAY_MS,
5786
+ bi as DEFAULT_CHECK_IN_DAYS,
5787
+ Ao as DEFAULT_FORECAST_WEEKS,
5788
+ vl as DEFAULT_MEMORY_BUDGET,
5789
+ xd as DEFAULT_NUMBER_PADDING,
5790
+ Ps as DEFAULT_PHONE_REGION,
5791
+ kd as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
5792
+ vd as DEFAULT_TEMPLATE_CONDITIONS,
5793
+ Ll as DEMAND_SOURCE_PROVIDER_GROUP,
5794
+ ep as DOCUMENT_APPLY_SERVICE,
5795
+ Jf as DOCUMENT_DESCRIBE_SERVICE,
5796
+ Zf as DOCUMENT_INSPECT_SERVICE,
5750
5797
  at as DOCUMENT_MAX_BLOCKS,
5751
- oc as DOCUMENT_MAX_BODY_BYTES,
5798
+ sc as DOCUMENT_MAX_BODY_BYTES,
5752
5799
  Z as DOCUMENT_MAX_CELL_LEN,
5753
5800
  dt as DOCUMENT_MAX_KPI_ITEMS,
5754
5801
  ft as DOCUMENT_MAX_LETTERHEAD_FIELDS,
@@ -5759,526 +5806,529 @@ export {
5759
5806
  zt as DOCUMENT_MAX_TEXT_LEN,
5760
5807
  pt as DOCUMENT_MAX_TOTALS_ROWS,
5761
5808
  Sn as DOCUMENT_OPERATIONS,
5762
- ud as DRAFT_FIELDS,
5763
- Ni as DUTCH_SLOT_LABELS,
5764
- ru as EMPTY_WORKFLOW,
5809
+ _d as DRAFT_FIELDS,
5810
+ Di as DUTCH_SLOT_LABELS,
5811
+ du as EMPTY_WORKFLOW,
5765
5812
  bn as ENABLED_TRANSACTION_KINDS,
5766
- Df as FEATURE_FOLDER_MANAGEMENT,
5767
- $f as FEATURE_MESSAGE_REACTIONS,
5768
- Rf as FEATURE_REMOTE_SEARCH,
5813
+ Bf as FEATURE_FOLDER_MANAGEMENT,
5814
+ Hf as FEATURE_MESSAGE_REACTIONS,
5815
+ Gf as FEATURE_REMOTE_SEARCH,
5769
5816
  Be as FIXED_KINDS,
5770
5817
  ie as FIXED_LEVELS,
5771
5818
  Ve as FIXED_TYPES,
5772
- wc as FIXED_UNITS,
5773
- jr as FOLLOW_UP_HOURS,
5774
- ld as FROZEN_WRITABLE_FIELDS,
5775
- Or as HOUR_MS,
5776
- ca as HTML_BODY_RE,
5819
+ Cc as FIXED_UNITS,
5820
+ Gr as FOLLOW_UP_HOURS,
5821
+ bd as FROZEN_WRITABLE_FIELDS,
5822
+ Nr as HOUR_MS,
5823
+ ua as HTML_BODY_RE,
5777
5824
  P as INELIGIBLE,
5778
- zf as INSTALLATION_HEADER,
5779
- Lo as INTERACTION_KIND,
5780
- Nf as InteractionParticipantRole,
5781
- Xr as KB_FALLBACK_LOCALE,
5825
+ np as INSTALLATION_HEADER,
5826
+ Ko as INTERACTION_KIND,
5827
+ Ff as InteractionParticipantRole,
5828
+ Qr as KB_FALLBACK_LOCALE,
5782
5829
  gt as KB_LOCALES,
5783
- xc as LEAD_STATUSES,
5784
- Nc as LIFECYCLE_STAGES,
5830
+ Rc as LEAD_STATUSES,
5831
+ Dc as LIFECYCLE_STAGES,
5785
5832
  gt as LOCALES,
5786
5833
  ze as LOOSE_STATUSES,
5787
- $r as MAIL_HINT_HEADERS,
5834
+ Pr as MAIL_HINT_HEADERS,
5788
5835
  _r as MANUAL_PRICE_SOURCE,
5789
- fa as MAX_ACTIONS,
5836
+ ma as MAX_ACTIONS,
5790
5837
  ur as MAX_ASSIGNMENT_TURNS,
5791
- la as MAX_BLOCKS,
5838
+ da as MAX_BLOCKS,
5792
5839
  rt as MAX_CHOICE_OPTIONS,
5793
5840
  tn as MAX_COLLECTION_DEPTH,
5794
5841
  dr as MAX_DELEGATION_DEPTH,
5795
- mp as MAX_EDITABLE_FILE_BYTES,
5796
- ua as MAX_FIELDS,
5797
- da as MAX_LIST_ITEMS,
5798
- pl as MAX_MEMORY_BROWSE,
5799
- gl as MAX_MEMORY_BUDGET,
5800
- ml as MAX_MEMORY_CHARS,
5842
+ Tp as MAX_EDITABLE_FILE_BYTES,
5843
+ fa as MAX_FIELDS,
5844
+ pa as MAX_LIST_ITEMS,
5845
+ El as MAX_MEMORY_BROWSE,
5846
+ Il as MAX_MEMORY_BUDGET,
5847
+ Sl as MAX_MEMORY_CHARS,
5801
5848
  Tt as MAX_RULE_DEPTH,
5802
5849
  it as MAX_SCORE_LEVELS,
5803
- Rs as MAX_SHOWN_KEYS,
5804
- Ii as MAX_TOPIC_CANDIDATES,
5805
- Ti as MAX_TOPIC_EXAMPLES,
5850
+ Ls as MAX_SHOWN_KEYS,
5851
+ ki as MAX_TOPIC_CANDIDATES,
5852
+ vi as MAX_TOPIC_EXAMPLES,
5806
5853
  ye as MAX_TOPIC_EXAMPLE_CHARS,
5807
- hp as MAX_VIEWABLE_FILE_BYTES,
5808
- hl as MIN_MEMORY_BUDGET,
5854
+ Ip as MAX_VIEWABLE_FILE_BYTES,
5855
+ Tl as MIN_MEMORY_BUDGET,
5809
5856
  ot as MIN_SCORE_LEVELS,
5810
- H as MODEL_TIERS,
5811
- Sp as NAV_NOTICE_SLOT,
5812
- Od as NL_PAYMENT_TERMS,
5813
- _l as NL_TAX_RATES,
5814
- Xf as NOTIFICATION_SOURCE_PROVIDER_GROUP,
5815
- Ai as OFF_TRACK_GAP,
5816
- El as ONBOARDING_SOURCE_PROVIDER_GROUP,
5857
+ G as MODEL_TIERS,
5858
+ Np as NAV_NOTICE_SLOT,
5859
+ Kd as NL_PAYMENT_TERMS,
5860
+ wl as NL_TAX_RATES,
5861
+ op as NOTIFICATION_SOURCE_PROVIDER_GROUP,
5862
+ Si as OFF_TRACK_GAP,
5863
+ Cl as ONBOARDING_SOURCE_PROVIDER_GROUP,
5817
5864
  $e as PAUSE_HOLD,
5818
5865
  De as PAUSE_SNOOZED,
5819
5866
  Re as PAUSE_WAITING_FOR_CUSTOMER,
5820
- kd as PAYMENT_TERM_METHODS,
5867
+ $d as PAYMENT_TERM_METHODS,
5821
5868
  Ye as PHONE_REGIONS,
5822
- jl as PLAYBOOK_RUN_APPROVAL_ACT,
5823
- No as PLAYBOOK_RUN_SCOPE_KIND,
5869
+ Xl as PLAYBOOK_RUN_APPROVAL_ACT,
5870
+ Do as PLAYBOOK_RUN_SCOPE_KIND,
5824
5871
  Tn as PRESENCE_ONLINE_WINDOW_MS,
5825
- ms as PRESENCE_SURVIVES_OFFLINE,
5826
- Ki as PRODUCT_SCOPE_KIND,
5827
- Tl as PROFILE_TOOL_DISPOSITIONS,
5828
- Cf as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
5829
- Of as PROVIDER_FEATURE_MESSAGE_WINDOW,
5830
- Bs as PUBLIC_EMAIL_DOMAINS,
5872
+ gs as PRESENCE_SURVIVES_OFFLINE,
5873
+ Fi as PRODUCT_SCOPE_KIND,
5874
+ Nl as PROFILE_TOOL_DISPOSITIONS,
5875
+ Uf as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
5876
+ Kf as PROVIDER_FEATURE_MESSAGE_WINDOW,
5877
+ Hs as PUBLIC_EMAIL_DOMAINS,
5831
5878
  yt as READ_STEP_TYPES,
5832
- Jr as RELATED_SUBJECT_KINDS,
5879
+ eo as RELATED_SUBJECT_KINDS,
5833
5880
  An as RESERVED_STATUS_KEYS,
5834
- Ld as RESERVED_TYPE_KEYS,
5835
- ip as RESOURCE_ATTACHED_SERVICE,
5836
- np as RESOURCE_DESCRIBE_SERVICE,
5837
- op as RESOURCE_RESOLVE_SERVICE,
5838
- rp as RESOURCE_SEARCH_SERVICE,
5839
- Io as SCHEDULE_ENTRY_SCOPE_KIND,
5840
- ti as SCHEDULE_EVENT,
5841
- lp as SCOPE_ACTS_ROUTE,
5842
- cp as SCOPE_READ_ROUTE,
5843
- ap as SCOPE_RELATED_ROUTE,
5844
- Rc as SEGMENT_FILTER_KEYS,
5845
- Lc as SEGMENT_LAYOUTS,
5881
+ Wd as RESERVED_TYPE_KEYS,
5882
+ mp as RESOURCE_ATTACHED_SERVICE,
5883
+ dp as RESOURCE_DESCRIBE_SERVICE,
5884
+ pp as RESOURCE_RESOLVE_SERVICE,
5885
+ fp as RESOURCE_SEARCH_SERVICE,
5886
+ ko as SCHEDULE_ENTRY_SCOPE_KIND,
5887
+ ri as SCHEDULE_EVENT,
5888
+ bp as SCOPE_ACTS_ROUTE,
5889
+ yp as SCOPE_READ_ROUTE,
5890
+ gp as SCOPE_RELATED_ROUTE,
5891
+ Lc as SEGMENT_FILTER_KEYS,
5892
+ Kc as SEGMENT_LAYOUTS,
5846
5893
  Er as SEGMENT_LIST_FILTERS,
5847
5894
  Sr as SEGMENT_PRESENCE_FILTERS,
5848
- $c as SEGMENT_SORT_FIELDS,
5849
- Ep as SETTINGS_CATEGORIES,
5850
- Mc as SIGNATURE_INTENTS,
5851
- Mu as SLA_METRICS,
5852
- Ou as SLA_PAUSE_REASONS,
5853
- ad as STATUS_NAMES,
5854
- Uo as STEP_MAX_TOKENS_MAX,
5855
- Ko as STEP_MAX_TOKENS_MIN,
5856
- nu as STEP_TYPES,
5857
- mi as STRATEGY_ITEM_SCOPE_KIND,
5858
- Rr as SUMMARY_MIN_LAST_CHARS,
5859
- Dr as SUMMARY_MIN_MESSAGES,
5860
- yp as SYNC_RUN_MAX_ERRORS,
5861
- gp as SYNC_TARGET_PROVIDER_GROUP,
5862
- Pa as SYSTEM_ONE_NON_GOALS,
5895
+ Pc as SEGMENT_SORT_FIELDS,
5896
+ Op as SETTINGS_CATEGORIES,
5897
+ Oc as SIGNATURE_INTENTS,
5898
+ Lu as SLA_METRICS,
5899
+ Pu as SLA_PAUSE_REASONS,
5900
+ gd as STATUS_NAMES,
5901
+ jo as STEP_MAX_TOKENS_MAX,
5902
+ Fo as STEP_MAX_TOKENS_MIN,
5903
+ uu as STEP_TYPES,
5904
+ gi as STRATEGY_ITEM_SCOPE_KIND,
5905
+ Lr as SUMMARY_MIN_LAST_CHARS,
5906
+ $r as SUMMARY_MIN_MESSAGES,
5907
+ kp as SYNC_RUN_MAX_ERRORS,
5908
+ vp as SYNC_TARGET_PROVIDER_GROUP,
5909
+ Ua as SYSTEM_ONE_NON_GOALS,
5863
5910
  cr as TERMINAL_ASSIGNMENT_STATUSES,
5864
- Ho as TERMINAL_RUN_STATUSES,
5911
+ Wo as TERMINAL_RUN_STATUSES,
5865
5912
  We as TRANSACTION_KINDS,
5866
- Pi as TRANSACTION_SCOPE_KINDS,
5867
- Jl as TRIGGER_VARS,
5868
- hu as UNARY_OPS,
5869
- to as UNKNOWN_KIND,
5870
- hi as UNKNOWN_LEVEL_ORDER,
5871
- Lf as UNSUPPORTED,
5913
+ Ui as TRANSACTION_SCOPE_KINDS,
5914
+ su as TRIGGER_VARS,
5915
+ Tu as UNARY_OPS,
5916
+ ro as UNKNOWN_KIND,
5917
+ yi as UNKNOWN_LEVEL_ORDER,
5918
+ Wf as UNSUPPORTED,
5872
5919
  Yn as USAGE_DIMENSIONS,
5873
5920
  Xn as USAGE_DIMENSION_IDS,
5874
5921
  un as UnresolvedRefError,
5875
- Fi as WEBHOOK_EVENTS,
5876
- vo as WORKSTREAM_SCOPE_KIND,
5877
- Gi as WORK_ACTIVITY_SCOPE_KIND,
5878
- Sl as WORK_AREAS,
5879
- xd as WORK_COMMENT_ADDED,
5880
- jd as WORK_CYCLE_SYNC_KIND,
5881
- Dd as WORK_ITEM_ASSIGNED,
5882
- Bi as WORK_ITEM_SCOPE_KIND,
5883
- Rd as WORK_ITEM_STATUS_CHANGED,
5884
- Hi as WORK_PROJECT_SCOPE_KIND,
5885
- sf as WORK_SORT_FIELDS,
5886
- of as WORK_VIEW_FLAGS,
5887
- af as WORK_VIEW_LAYOUTS,
5888
- rf as WORK_VIEW_LIST_FILTERS,
5922
+ Bi as WEBHOOK_EVENTS,
5923
+ wo as WORKSTREAM_SCOPE_KIND,
5924
+ Vi as WORK_ACTIVITY_SCOPE_KIND,
5925
+ Ol as WORK_AREAS,
5926
+ jd as WORK_COMMENT_ADDED,
5927
+ qd as WORK_CYCLE_SYNC_KIND,
5928
+ Bd as WORK_ITEM_ASSIGNED,
5929
+ Hi as WORK_ITEM_SCOPE_KIND,
5930
+ Gd as WORK_ITEM_STATUS_CHANGED,
5931
+ Wi as WORK_PROJECT_SCOPE_KIND,
5932
+ hf as WORK_SORT_FIELDS,
5933
+ mf as WORK_VIEW_FLAGS,
5934
+ gf as WORK_VIEW_LAYOUTS,
5935
+ pf as WORK_VIEW_LIST_FILTERS,
5889
5936
  ne as W_PRIORITY,
5890
- od as acceptExampleCandidate,
5891
- Oo as actingIdentityKey,
5892
- nd as activeWorkTypes,
5893
- ma as activityIconOf,
5894
- Ia as activityJoinUrl,
5937
+ pd as acceptExampleCandidate,
5938
+ No as actingIdentityKey,
5939
+ dd as activeWorkTypes,
5940
+ ga as activityIconOf,
5941
+ ka as activityJoinUrl,
5895
5942
  Ln as activitySnippet,
5896
5943
  Pn as activityTextParams,
5897
- Ta as activityTimelineText,
5944
+ va as activityTimelineText,
5898
5945
  jn as activityTimestamp,
5899
5946
  v as activityTypeInfo,
5900
- Fl as actorKey,
5901
- rd as addExampleCandidate,
5902
- He as addWorkingMs,
5903
- Zf as agePresenceEntry,
5904
- es as aiAttachmentKind,
5905
- ff as aiAttachmentRejection,
5947
+ Yl as actorKey,
5948
+ fd as addExampleCandidate,
5949
+ Ge as addWorkingMs,
5950
+ cp as agePresenceEntry,
5951
+ ns as aiAttachmentKind,
5952
+ Ef as aiAttachmentRejection,
5906
5953
  st as aiBudgetLimit,
5907
- Ga as aiBudgetPeriodKey,
5908
- Gn as aiBudgetPeriodStart,
5909
- Ha as aiBudgetState,
5910
- Ba as aiVendorAcceptsAttachment,
5911
- Ua as aiVendorDefaultModel,
5912
- Ka as aiVendorLabel,
5913
- ja as aiVendorNeedsBaseUrl,
5914
- Fa as aiVendorsWith,
5954
+ Va as aiBudgetPeriodKey,
5955
+ Hn as aiBudgetPeriodStart,
5956
+ Wa as aiBudgetState,
5957
+ Ha as aiVendorAcceptsAttachment,
5958
+ ja as aiVendorDefaultModel,
5959
+ Fa as aiVendorLabel,
5960
+ Ga as aiVendorNeedsBaseUrl,
5961
+ Ba as aiVendorsWith,
5915
5962
  mr as allocate,
5916
5963
  kn as appNameFromPath,
5917
- rc as applyApprovalDecision,
5918
- Qu as applyRounding,
5919
- Oc as applySignature,
5920
- Fo as approvalRate,
5921
- sc as artifactBodyBytes,
5922
- ac as artifactOutline,
5964
+ ic as applyApprovalDecision,
5965
+ sd as applyRounding,
5966
+ Nc as applySignature,
5967
+ Bo as approvalRate,
5968
+ cc as artifactBodyBytes,
5969
+ lc as artifactOutline,
5923
5970
  ar as artifactToMarkdown,
5924
- Vl as assignmentMismatch,
5925
- pc as assignmentScopeKey,
5926
- gc as assignmentSubject,
5927
- wl as availabilityByPerson,
5928
- Il as belongsOnCalendar,
5929
- Ac as belongsToEntity,
5930
- mu as bindParams,
5971
+ eu as assignmentMismatch,
5972
+ hc as assignmentScopeKey,
5973
+ bc as assignmentSubject,
5974
+ $l as availabilityByPerson,
5975
+ xl as belongsOnCalendar,
5976
+ Sc as belongsToEntity,
5977
+ od as billableTimeGroups,
5978
+ Su as bindParams,
5931
5979
  Me as bindValue,
5932
- va as buildActivityPreview,
5933
- If as buildChannelIntents,
5934
- cc as buildShareKeys,
5935
- Ds as buildWindow,
5936
- wr as businessEntitySender,
5937
- ro as calendarDaysBetween,
5938
- Ge as calendarOf,
5939
- fd as canConvert,
5940
- al as canNestUnder,
5941
- Ku as canParent,
5942
- cd as canTransition,
5943
- Ca as capabilityDefaultFlag,
5944
- vl as capacityTotal,
5945
- Ll as capacityWeights,
5946
- _a as carriesText,
5947
- ll as categoryLabel,
5948
- zi as categoryOf,
5949
- _u as causedBy,
5950
- Mf as channelKindForScheme,
5951
- ha as channelKindOf,
5952
- Yu as checkInOverdueMs,
5953
- tu as clampStepMaxTokens,
5954
- Yc as classifyMail,
5955
- Np as cleanMessageMarkdown,
5956
- Cp as cleanMessageText,
5957
- Tc as codeQuery,
5958
- _f as compareAssistRank,
5959
- Si as compareWorkTypes,
5960
- kr as conditionHolds,
5961
- Dc as contactName,
5962
- Ci as copyFrom,
5980
+ wa as buildActivityPreview,
5981
+ Df as buildChannelIntents,
5982
+ uc as buildShareKeys,
5983
+ $s as buildWindow,
5984
+ Cr as businessEntitySender,
5985
+ io as calendarDaysBetween,
5986
+ He as calendarOf,
5987
+ Ed as canConvert,
5988
+ hl as canNestUnder,
5989
+ Vu as canParent,
5990
+ yd as canTransition,
5991
+ xa as capabilityDefaultFlag,
5992
+ Dl as capacityTotal,
5993
+ Hl as capacityWeights,
5994
+ Ea as carriesText,
5995
+ yl as categoryLabel,
5996
+ Xi as categoryOf,
5997
+ wu as causedBy,
5998
+ Pf as channelKindForScheme,
5999
+ ya as channelKindOf,
6000
+ nd as checkInOverdueMs,
6001
+ lu as clampStepMaxTokens,
6002
+ nl as classifyMail,
6003
+ Fp as cleanMessageMarkdown,
6004
+ Up as cleanMessageText,
6005
+ vc as codeQuery,
6006
+ Mf as compareAssistRank,
6007
+ Ii as compareWorkTypes,
6008
+ Mr as conditionHolds,
6009
+ $c as contactName,
6010
+ xi as copyFrom,
5963
6011
  Y as countsAsPlanned,
5964
- kl as coverageByPerson,
5965
- Cl as coverageFor,
6012
+ Rl as coverageByPerson,
6013
+ Kl as coverageFor,
5966
6014
  rn as coversWorkstream,
5967
- ei as cronMatches,
5968
- vd as currentPeriod,
6015
+ Wc as crmActivityAt,
6016
+ ni as cronMatches,
6017
+ Rd as currentPeriod,
5969
6018
  on as cycleDayIndex,
5970
- tf as cycleOrder,
5971
- nf as cycleState,
5972
- yc as decideAssignmentState,
5973
- Ap as decideCadence,
5974
- Za as decideEach,
5975
- Sf as decideIncomingCall,
5976
- La as decisionBand,
5977
- qr as defaultLocaleOf,
5978
- Xd as defaultStatusKey,
5979
- $i as defaultTemplateBlocks,
5980
- xf as defineIntent,
5981
- bc as delegationRefusal,
5982
- zr as depthOf,
5983
- Jf as derivePresence,
5984
- qa as describeClause,
5985
- yu as describeExpression,
5986
- Tf as disabledIntentsFromCapabilities,
5987
- sc as documentBodyBytes,
5988
- Vf as documentKindOf,
5989
- ac as documentOutline,
6019
+ df as cycleOrder,
6020
+ ff as cycleState,
6021
+ _c as decideAssignmentState,
6022
+ Cp as decideCadence,
6023
+ tc as decideEach,
6024
+ Nf as decideIncomingCall,
6025
+ Ka as decisionBand,
6026
+ Jr as defaultLocaleOf,
6027
+ of as defaultStatusKey,
6028
+ Pi as defaultTemplateBlocks,
6029
+ jf as defineIntent,
6030
+ Ac as delegationRefusal,
6031
+ Xr as depthOf,
6032
+ ap as derivePresence,
6033
+ Ja as describeClause,
6034
+ vu as describeExpression,
6035
+ xf as disabledIntentsFromCapabilities,
6036
+ cc as documentBodyBytes,
6037
+ tp as documentKindOf,
6038
+ lc as documentOutline,
5990
6039
  ar as documentToMarkdown,
5991
- Bf as documentToText,
5992
- oi as driftedFields,
5993
- xu as dueAtOf,
5994
- wd as dueDateFrom,
5995
- qu as elapsedSeconds,
5996
- vp as emailDomain,
5997
- gu as emptyConditionLeaf,
5998
- Mp as endpointKey,
5999
- Ec as entityOwnerIds,
6000
- ao as erlangC,
6001
- ys as extractParams,
6002
- Ns as extractTerms,
6003
- Bc as failureLines,
6004
- Tu as fieldVarPath,
6005
- Fc as fillDocument,
6006
- vr as fillText,
6007
- kf as filterByEndpoint,
6008
- vf as filterByIntent,
6009
- ss as filterByTargetScheme,
6010
- Xa as filterableDimensions,
6040
+ Qf as documentToText,
6041
+ si as driftedFields,
6042
+ Fu as dueAtOf,
6043
+ Ld as dueDateFrom,
6044
+ id as elapsedSeconds,
6045
+ Rp as emailDomain,
6046
+ Iu as emptyConditionLeaf,
6047
+ Pp as endpointKey,
6048
+ Tc as entityOwnerIds,
6049
+ lo as erlangC,
6050
+ _s as extractParams,
6051
+ Ds as extractTerms,
6052
+ qc as failureLines,
6053
+ Nu as fieldVarPath,
6054
+ Yc as fillDocument,
6055
+ wr as fillText,
6056
+ $f as filterByEndpoint,
6057
+ Rf as filterByIntent,
6058
+ cs as filterByTargetScheme,
6059
+ Qa as filterableDimensions,
6011
6060
  oe as findAiVendor,
6012
- Iu as findEvent,
6013
- Fu as fixedLevelForName,
6014
- Ud as fixedTypeForName,
6015
- Fd as fixedTypes,
6016
- Yf as flattenLocales,
6061
+ xu as findEvent,
6062
+ Yu as fixedLevelForName,
6063
+ Yd as fixedTypeForName,
6064
+ Xd as fixedTypes,
6065
+ rp as flattenLocales,
6017
6066
  V as floorToPeriod,
6018
- Dl as forecastIntervals,
6019
- Mo as formatActingIdentity,
6067
+ jl as forecastIntervals,
6068
+ Oo as formatActingIdentity,
6020
6069
  $ as formatCents,
6021
- Zu as formatClock,
6022
- Ju as formatHm,
6023
- Hd as formatItemKey,
6070
+ cd as formatClock,
6071
+ ad as formatHm,
6072
+ Jd as formatItemKey,
6024
6073
  W as formatPeriod,
6025
- Id as formatSeriesNumber,
6026
- $u as formatSlaDuration,
6027
- hf as freshSources,
6028
- wa as getActivitySeenUserIds,
6029
- Cc as getContactEndpoints,
6030
- tl as getShortTitle,
6031
- el as getUrgencyScore,
6032
- pu as hasReacted,
6033
- ju as healthCategory,
6034
- Bu as healthsInCategory,
6074
+ Dd as formatSeriesNumber,
6075
+ Gu as formatSlaDuration,
6076
+ If as freshSources,
6077
+ Ca as getActivitySeenUserIds,
6078
+ xc as getContactEndpoints,
6079
+ ll as getShortTitle,
6080
+ cl as getUrgencyScore,
6081
+ Eu as hasReacted,
6082
+ Xu as healthCategory,
6083
+ qu as healthsInCategory,
6035
6084
  nn as heightOf,
6036
- rl as helpCenterText,
6037
- ql as humanizeAction,
6038
- Po as interactionIdOf,
6039
- Cd as isAgentUser,
6040
- Jc as isAssigned,
6041
- fc as isAssignmentTerminal,
6042
- Do as isAssignmentTrigger,
6043
- Wa as isAssistantMode,
6044
- au as isAutoReady,
6045
- zl as isAutonomy,
6046
- Vr as isAwaitingThem,
6047
- Oa as isChatMessageActivity,
6048
- Zc as isClosed,
6049
- Ea as isConnectedType,
6050
- up as isDeepLink,
6051
- Yr as isDescendant,
6052
- Gc as isEligible,
6053
- Ma as isEmailActivity,
6054
- Oi as isFrozen,
6055
- Nu as isHeldClock,
6056
- Op as isHtmlBody,
6057
- lu as isInFlight,
6058
- Kr as isInteractionUnseen,
6059
- dp as isLandingPath,
6060
- xr as isLikelyBulk,
6061
- Ht as isMessageShape,
6062
- ga as isMessageType,
6063
- _s as isMoreSpecificPattern,
6064
- Gt as isNoteShape,
6065
- pi as isOpenClock,
6085
+ dl as helpCenterText,
6086
+ ou as humanizeAction,
6087
+ Uo as interactionIdOf,
6088
+ Ud as isAgentUser,
6089
+ sl as isAssigned,
6090
+ mc as isAssignmentTerminal,
6091
+ $o as isAssignmentTrigger,
6092
+ za as isAssistantMode,
6093
+ Hc as isAuthoredCrmActivity,
6094
+ hu as isAutoReady,
6095
+ tu as isAutonomy,
6096
+ Yr as isAwaitingThem,
6097
+ Na as isChatMessageActivity,
6098
+ al as isClosed,
6099
+ Ta as isConnectedType,
6100
+ _p as isDeepLink,
6101
+ qr as isDescendant,
6102
+ Jc as isEligible,
6103
+ Oa as isEmailActivity,
6104
+ Ni as isFrozen,
6105
+ Uu as isHeldClock,
6106
+ Kp as isHtmlBody,
6107
+ yu as isInFlight,
6108
+ Fr as isInteractionUnseen,
6109
+ Ap as isLandingPath,
6110
+ Rr as isLikelyBulk,
6111
+ Gt as isMessageShape,
6112
+ ba as isMessageType,
6113
+ Es as isMoreSpecificPattern,
6114
+ Ht as isNoteShape,
6115
+ hi as isOpenClock,
6066
6116
  En as isOutwardTool,
6067
- Hr as isParked,
6068
- Go as isPaused,
6069
- Aa as isPlaybookAuthoredType,
6070
- kp as isPublicEmailDomain,
6071
- pp as isPublicPath,
6072
- Gr as isReminderActive,
6073
- ba as isReplyableType,
6074
- qc as isSlaAtRisk,
6075
- bu as isSupportedCron,
6076
- cu as isTerminal,
6077
- Vc as isThreadLongEnough,
6078
- Sa as isTranscriptType,
6079
- Nd as isWebhookEvent,
6080
- qd as isWorkClosed,
6081
- td as isWorkTypeVisible,
6117
+ Wr as isParked,
6118
+ Vo as isPaused,
6119
+ Sa as isPlaybookAuthoredType,
6120
+ $p as isPublicEmailDomain,
6121
+ Sp as isPublicPath,
6122
+ Vr as isReminderActive,
6123
+ Aa as isReplyableType,
6124
+ ol as isSlaAtRisk,
6125
+ ku as isSupportedCron,
6126
+ gu as isTerminal,
6127
+ el as isThreadLongEnough,
6128
+ Ia as isTranscriptType,
6129
+ Fd as isWebhookEvent,
6130
+ sf as isWorkClosed,
6131
+ ud as isWorkTypeVisible,
6082
6132
  wn as isWriteTool,
6083
- Vd as itemDossierKeys,
6084
- Au as judgeRuleCase,
6133
+ tf as itemDossierKeys,
6134
+ Mu as judgeRuleCase,
6085
6135
  D as kindFor,
6086
- Vi as ladderFor,
6087
- yi as levelIn,
6136
+ Yi as ladderFor,
6137
+ _i as levelIn,
6088
6138
  Pe as levelOrder,
6089
- eo as lineNet,
6090
- nl as linkLabel,
6091
- sd as listedTransactionKinds,
6092
- Va as listeningAllowed,
6093
- sl as localeInstruction,
6094
- il as localeName,
6095
- cl as localesOf,
6096
- Tp as looksLikeEmail,
6139
+ no as lineNet,
6140
+ ul as linkLabel,
6141
+ hd as listedTransactionKinds,
6142
+ Ya as listeningAllowed,
6143
+ ml as localeInstruction,
6144
+ pl as localeName,
6145
+ gl as localesOf,
6146
+ xp as looksLikeEmail,
6097
6147
  qt as lookup,
6098
- vc as marginCents,
6099
- jf as markdownToDocument,
6100
- tc as matchApprovalPolicy,
6101
- wf as matchContactToIntents,
6102
- As as matchPublicRoute,
6103
- ni as matchRules,
6104
- dl as mcpCredentialScope,
6105
- fl as mcpToolPrefix,
6106
- Hu as measureRatio,
6107
- xa as mergeDefaultFlags,
6108
- _p as mergeShownKeys,
6148
+ wc as marginCents,
6149
+ qf as markdownToDocument,
6150
+ rc as matchApprovalPolicy,
6151
+ Lf as matchContactToIntents,
6152
+ Ss as matchPublicRoute,
6153
+ oi as matchRules,
6154
+ _l as mcpCredentialScope,
6155
+ Al as mcpToolPrefix,
6156
+ Qu as measureRatio,
6157
+ Ra as mergeDefaultFlags,
6158
+ Mp as mergeShownKeys,
6109
6159
  $n as messageCountsAs,
6110
- Qa as metricOption,
6160
+ Za as metricOption,
6111
6161
  sn as minutesOn,
6112
- vu as missingFieldPaths,
6113
- Da as modelAcceptsAttachment,
6114
- Es as mustAsk,
6115
- Xl as narrowAutonomy,
6116
- wp as needsPhoneRegion,
6117
- ya as nestsUnderParent,
6118
- Uu as nextLevelBelow,
6119
- lf as nextOccurrenceDates,
6120
- Du as nextSlaClock,
6121
- Mi as nextStatuses,
6122
- pd as nextVersion,
6123
- ic as normalizeArtifactBlocks,
6124
- pa as normalizeBlocks,
6125
- ic as normalizeDocumentBlocks,
6162
+ Du as missingFieldPaths,
6163
+ $a as modelAcceptsAttachment,
6164
+ Ts as mustAsk,
6165
+ ru as narrowAutonomy,
6166
+ Lp as needsPhoneRegion,
6167
+ _a as nestsUnderParent,
6168
+ zu as nextLevelBelow,
6169
+ bf as nextOccurrenceDates,
6170
+ ju as nextSlaClock,
6171
+ Oi as nextStatuses,
6172
+ Sd as nextVersion,
6173
+ ac as normalizeArtifactBlocks,
6174
+ ha as normalizeBlocks,
6175
+ ac as normalizeDocumentBlocks,
6126
6176
  Mn as normalizeEmail,
6127
6177
  K as normalizeExample,
6128
6178
  fr as normalizeGtin,
6129
- qf as notificationPrefKey,
6130
- xs as novelty,
6131
- Ff as operationDescriptor,
6132
- Uf as operationsForKind,
6133
- Su as opsForFieldType,
6134
- jc as organizationSender,
6135
- ef as outcomeOf,
6179
+ ip as notificationPrefKey,
6180
+ Rs as novelty,
6181
+ Xf as operationDescriptor,
6182
+ Yf as operationsForKind,
6183
+ Ou as opsForFieldType,
6184
+ Xc as organizationSender,
6185
+ uf as outcomeOf,
6136
6186
  fe as overlapSeconds,
6137
- Ol as overlaps,
6138
- Gu as paceRatio,
6139
- Wc as parkMarksById,
6140
- Jo as parse,
6141
- Kl as parseActingIdentity,
6142
- Ic as parseAmount,
6143
- ku as parseClockMinutes,
6187
+ Pl as overlaps,
6188
+ Ju as paceRatio,
6189
+ Zc as parkMarksById,
6190
+ ei as parse,
6191
+ Vl as parseActingIdentity,
6192
+ kc as parseAmount,
6193
+ Ru as parseClockMinutes,
6144
6194
  dn as parseCron,
6145
- Gd as parseItemKey,
6146
- cf as parseRecurrence,
6147
- gs as pathToRegex,
6195
+ Zd as parseItemKey,
6196
+ yf as parseRecurrence,
6197
+ bs as pathToRegex,
6148
6198
  cn as patternFor,
6149
6199
  an as patternStartTime,
6150
- wu as pauseBitFor,
6151
- nc as pendingApprovers,
6152
- Ya as periodsInRange,
6153
- Ip as phoneSuffix,
6154
- zc as pickMailHeaders,
6155
- Uc as pickTemplate,
6156
- Pl as placeLumps,
6200
+ $u as pauseBitFor,
6201
+ oc as pendingApprovers,
6202
+ qa as periodsInRange,
6203
+ Dp as phoneSuffix,
6204
+ tl as pickMailHeaders,
6205
+ zc as pickTemplate,
6206
+ Wl as placeLumps,
6157
6207
  Dn as plainTextFromMarkdown,
6158
- Cu as planSlaEvent,
6159
- Nl as plannedBillable,
6160
- go as plannedWorkTypeKey,
6161
- iu as procedureOf,
6162
- Ad as productHref,
6163
- bd as productScopeKey,
6164
- zd as projectDossierKeys,
6165
- ec as proposalRequestIds,
6166
- bs as publicBasePathFor,
6167
- fp as publicRoutePatterns,
6168
- hc as reactionWakesAssignment,
6169
- Na as readDefaultFlags,
6208
+ Ku as planSlaEvent,
6209
+ Ul as plannedBillable,
6210
+ bo as plannedWorkTypeKey,
6211
+ pu as procedureOf,
6212
+ Cd as productHref,
6213
+ wd as productScopeKey,
6214
+ nf as projectDossierKeys,
6215
+ nc as proposalRequestIds,
6216
+ As as publicBasePathFor,
6217
+ Ep as publicRoutePatterns,
6218
+ yc as reactionWakesAssignment,
6219
+ Da as readDefaultFlags,
6170
6220
  Ae as readPath,
6171
6221
  de as readStepError,
6172
- Br as recencyOf,
6173
- Kc as recipientLocale,
6174
- $o as refKey,
6175
- js as registrableDomain,
6176
- ki as rejectExampleCandidate,
6177
- bl as relatedByDefault,
6222
+ Hr as recencyOf,
6223
+ Vc as recipientLocale,
6224
+ Po as refKey,
6225
+ Gs as registrableDomain,
6226
+ Mi as rejectExampleCandidate,
6227
+ kl as relatedByDefault,
6178
6228
  Le as remainingMsOf,
6179
- kc as repriceLines,
6180
- uo as requiredAgents,
6181
- ho as requirementFor,
6182
- os as resolveAccountCapabilities,
6229
+ Mc as repriceLines,
6230
+ po as requiredAgents,
6231
+ yo as requirementFor,
6232
+ ss as resolveAccountCapabilities,
6183
6233
  Ee as resolveActivityText,
6184
- Yl as resolveAutonomy,
6185
- rs as resolveChannelIntents,
6234
+ nu as resolveAutonomy,
6235
+ is as resolveChannelIntents,
6186
6236
  yr as resolvePrice,
6187
- Ra as resolveRoute,
6237
+ La as resolveRoute,
6188
6238
  Ar as resolveSignature,
6189
- Hn as resolveTier,
6190
- ep as resolveWorkMode,
6191
- sp as resourceKindOf,
6192
- zu as rollupChildren,
6239
+ Gn as resolveTier,
6240
+ lp as resolveWorkMode,
6241
+ hp as resourceKindOf,
6242
+ td as rollupChildren,
6193
6243
  z as roundHalfUp,
6194
- Ul as runActor,
6195
- Bl as runApprovalKey,
6196
- Hc as runEvalSuite,
6197
- Hl as runIdOfApprovalRef,
6198
- du as runInteractionId,
6199
- su as runKind,
6200
- Eu as runOutcome,
6244
+ zl as runActor,
6245
+ ql as runApprovalKey,
6246
+ Qc as runEvalSuite,
6247
+ Ql as runIdOfApprovalRef,
6248
+ _u as runInteractionId,
6249
+ mu as runKind,
6250
+ Cu as runOutcome,
6201
6251
  rr as sanitizeInline,
6202
- Is as sanitizeTranscript,
6203
- Rl as scheduleEntryScopeKey,
6204
- Qc as scoreInteraction,
6205
- $d as scoreWorkItem,
6206
- Pc as segmentIsEmpty,
6207
- ul as selectLenses,
6252
+ ks as sanitizeTranscript,
6253
+ Bl as scheduleEntryScopeKey,
6254
+ il as scoreInteraction,
6255
+ Hd as scoreWorkItem,
6256
+ Uc as segmentIsEmpty,
6257
+ bl as selectLenses,
6208
6258
  he as serialize,
6209
- co as serviceLevel,
6210
- Ef as sessionsHoldCannotReach,
6211
- Af as sessionsToHold,
6212
- Sc as shadowByKey,
6259
+ uo as serviceLevel,
6260
+ Of as sessionsHoldCannotReach,
6261
+ Cf as sessionsToHold,
6262
+ Ic as shadowByKey,
6213
6263
  Xt as shareKeyForTeam,
6214
6264
  Yt as shareKeyForUser,
6215
- lc as shareKeysForViewer,
6216
- xl as shortfalls,
6217
- tp as shouldRunAudioPipeline,
6218
- Ru as slaBadgeTone,
6219
- Xc as slaHoursByInbox,
6220
- Wr as slaHoursFor,
6221
- Yi as sortStatuses,
6222
- ns as sourceKey,
6223
- wo as spreadOverWeights,
6224
- Yd as statusIn,
6225
- Zd as statusRequiresApproval,
6226
- Qi as stepDate,
6227
- ou as stepsOf,
6228
- Pu as strategyAncestorKeysFor,
6229
- Lu as strategyDossierKeys,
6265
+ dc as shareKeysForViewer,
6266
+ Fl as shortfalls,
6267
+ up as shouldRunAudioPipeline,
6268
+ Bu as slaBadgeTone,
6269
+ rl as slaHoursByInbox,
6270
+ zr as slaHoursFor,
6271
+ qi as sortStatuses,
6272
+ os as sourceKey,
6273
+ Co as spreadOverWeights,
6274
+ rf as statusIn,
6275
+ lf as statusRequiresApproval,
6276
+ Zi as stepDate,
6277
+ fu as stepsOf,
6278
+ Wu as strategyAncestorKeysFor,
6279
+ Hu as strategyDossierKeys,
6230
6280
  yn as strategyItemScopeKey,
6231
6281
  Rn as stripHtml,
6232
- uu as subjectKeyOf,
6282
+ bu as subjectKeyOf,
6233
6283
  ln as subjectOf,
6234
- bf as subjectRef,
6235
- Wd as suggestProjectKey,
6236
- Wu as suggestedHealth,
6237
- Mr as summariseEval,
6238
- fu as summarizeReactions,
6239
- Wl as targetById,
6240
- Gl as targetForActivityType,
6241
- Xu as targetOrder,
6242
- Zr as taxRateFor,
6243
- oo as termsFor,
6244
- Co as toActingIdentity,
6284
+ wf as subjectRef,
6285
+ ef as suggestProjectKey,
6286
+ Zu as suggestedHealth,
6287
+ Or as summariseEval,
6288
+ Au as summarizeReactions,
6289
+ Zl as targetById,
6290
+ Jl as targetForActivityType,
6291
+ rd as targetOrder,
6292
+ to as taxRateFor,
6293
+ so as termsFor,
6294
+ xo as toActingIdentity,
6245
6295
  Lt as toE164,
6246
- Md as toTransactionTerm,
6247
- Ro as toolBareName,
6248
- Ql as toolDisplayName,
6249
- mf as toolReversible,
6250
- uc as toolSourceKinds,
6251
- bp as toolVerdict,
6252
- wi as topicOfferedForTeam,
6253
- id as topicsForTeam,
6254
- lo as trafficIntensity,
6255
- md as transactionContext,
6256
- Sd as transactionDossierKeys,
6257
- _d as transactionHref,
6258
- Ed as transactionIdFromScope,
6259
- O as transactionKind,
6260
- Ui as transactionScopeKey,
6261
- hd as transactionSlots,
6262
- Al as transactionTotals,
6263
- Zl as triggerFillsVar,
6264
- vi as truncateExample,
6265
- Kd as typeIn,
6266
- Pd as typesFor,
6267
- Qd as uniqueWorkStatusKey,
6268
- ed as uniqueWorkTypeKey,
6296
+ Pd as toTransactionTerm,
6297
+ Lo as toolBareName,
6298
+ iu as toolDisplayName,
6299
+ Tf as toolReversible,
6300
+ fc as toolSourceKinds,
6301
+ wp as toolVerdict,
6302
+ Ci as topicOfferedForTeam,
6303
+ md as topicsForTeam,
6304
+ fo as trafficIntensity,
6305
+ Td as transactionContext,
6306
+ Nd as transactionDossierKeys,
6307
+ Md as transactionHref,
6308
+ Od as transactionIdFromScope,
6309
+ C as transactionKind,
6310
+ ji as transactionScopeKey,
6311
+ Id as transactionSlots,
6312
+ Ml as transactionTotals,
6313
+ au as triggerFillsVar,
6314
+ wi as truncateExample,
6315
+ zd as typeIn,
6316
+ Vd as typesFor,
6317
+ af as uniqueWorkStatusKey,
6318
+ ld as uniqueWorkTypeKey,
6269
6319
  qn as usageMetricId,
6270
- Ja as usageMetrics,
6271
- $a as validateQuestions,
6272
- Jd as validateStatuses,
6273
- xo as valueAtPath,
6320
+ ec as usageMetrics,
6321
+ Pa as validateQuestions,
6322
+ cf as validateStatuses,
6323
+ Ro as valueAtPath,
6274
6324
  je as waitHoursOf,
6275
- mc as wakesAssignment,
6276
- Bd as workActivityScopeKey,
6277
- Wi as workItemScopeKey,
6325
+ gc as wakesAssignment,
6326
+ Qd as workActivityScopeKey,
6327
+ zi as workItemScopeKey,
6278
6328
  _n as workProjectScopeKey,
6279
- Vu as workRatio,
6280
- Xi as workStatusKey,
6281
- Ei as workTypeKey,
6329
+ ed as workRatio,
6330
+ Qi as workStatusKey,
6331
+ Ti as workTypeKey,
6282
6332
  xe as workingMsBetween,
6283
- $l as workstreamScopeKey
6333
+ Gl as workstreamScopeKey
6284
6334
  };