@opencxh/domain 1.245.0 → 1.247.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 is = 10, ss = 10, as = 10, cs = 5, on = /* @__PURE__ */ new Set([
1
+ const ii = 10, ai = 10, ci = 10, li = 5, on = /* @__PURE__ */ new Set([
2
2
  "header",
3
3
  "section",
4
4
  "context",
@@ -14,7 +14,7 @@ function oe(e) {
14
14
  const t = e;
15
15
  return typeof t.key == "string" || typeof t.value == "string";
16
16
  }
17
- function ls(e, t = () => {
17
+ function ui(e, t = () => {
18
18
  }) {
19
19
  if (!Array.isArray(e)) return [];
20
20
  const n = [];
@@ -59,9 +59,9 @@ function ls(e, t = () => {
59
59
  o.items.length > 10 && (t("more than 10 list items"), o.items = o.items.slice(0, 10));
60
60
  break;
61
61
  case "actions": {
62
- const i = Array.isArray(o.elements) ? o.elements : [], s = i.filter((a) => a?.action_id && a.invoke && oe(a.text));
63
- if (s.length !== i.length && t("an action without action_id, invoke or text"), s.length === 0) continue;
64
- s.length > 5 && t("more than 5 actions"), o.elements = s.slice(0, 5);
62
+ const s = Array.isArray(o.elements) ? o.elements : [], i = s.filter((a) => a?.action_id && a.invoke && oe(a.text));
63
+ if (i.length !== s.length && t("an action without action_id, invoke or text"), i.length === 0) continue;
64
+ i.length > 5 && t("more than 5 actions"), o.elements = i.slice(0, 5);
65
65
  break;
66
66
  }
67
67
  }
@@ -90,7 +90,7 @@ function X(e) {
90
90
  function Le(e) {
91
91
  return e ? ` — ${Math.floor(e / 60)}m ${e % 60}s` : "";
92
92
  }
93
- function ie(e) {
93
+ function se(e) {
94
94
  return e?.split("@")?.[0] || e || "";
95
95
  }
96
96
  function Y(e) {
@@ -106,7 +106,7 @@ const R = {
106
106
  channelKind: "voice",
107
107
  icon: "phone",
108
108
  snippet: () => "Gesprek gestart",
109
- timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${ie(e.payload.from)}` : `Outbound call started — ${ie(e.payload.to)}`
109
+ timeline: (e) => e.direction === "inbound" ? `Inbound call started — ${se(e.payload.from)}` : `Outbound call started — ${se(e.payload.to)}`
110
110
  },
111
111
  VOICE_CALL_ANSWERED: {
112
112
  shape: "event",
@@ -141,7 +141,7 @@ const R = {
141
141
  channelKind: "voice",
142
142
  icon: "phone",
143
143
  snippet: () => "Gemiste oproep",
144
- timeline: (e) => `Missed call — ${ie(e.payload.from)}`
144
+ timeline: (e) => `Missed call — ${se(e.payload.from)}`
145
145
  },
146
146
  VOICE_CALL_FAILED: {
147
147
  shape: "event",
@@ -467,40 +467,40 @@ function Ke(e) {
467
467
  function w(e) {
468
468
  return R[e];
469
469
  }
470
- function us(e) {
470
+ function di(e) {
471
471
  return w(e)?.icon ?? "circle";
472
472
  }
473
- function ds(e) {
473
+ function pi(e) {
474
474
  return w(e)?.channelKind;
475
475
  }
476
- function St(e) {
476
+ function Et(e) {
477
477
  return e === "message" || e === "note";
478
478
  }
479
- function ps(e) {
480
- return St(w(e)?.shape);
479
+ function fi(e) {
480
+ return Et(w(e)?.shape);
481
481
  }
482
482
  function It(e) {
483
483
  return e === "note";
484
484
  }
485
- function fs(e) {
485
+ function mi(e) {
486
486
  return It(w(e)?.shape);
487
487
  }
488
- function ms(e) {
488
+ function hi(e) {
489
489
  return w(e)?.replyable === !0;
490
490
  }
491
- function hs(e) {
491
+ function gi(e) {
492
492
  return w(e)?.carriesText === !0;
493
493
  }
494
494
  function un(e) {
495
495
  return w(e)?.countsAs;
496
496
  }
497
- function gs(e) {
497
+ function yi(e) {
498
498
  return w(e)?.playbookAuthored === !0;
499
499
  }
500
- function ys(e) {
500
+ function bi(e) {
501
501
  return w(e)?.connected === !0;
502
502
  }
503
- function bs(e) {
503
+ function _i(e) {
504
504
  const t = w(e);
505
505
  return t?.shape === "artifact" && t?.carriesText === !0;
506
506
  }
@@ -508,11 +508,11 @@ function dn(e) {
508
508
  const t = w(e.type)?.snippet;
509
509
  return t ? t(e) : "";
510
510
  }
511
- function As(e, t) {
511
+ function Ai(e, t) {
512
512
  const n = w(e.type)?.timeline;
513
513
  return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
514
514
  }
515
- function _s(e) {
515
+ function Si(e) {
516
516
  const t = w(e.type)?.joinUrl;
517
517
  return t ? t(e) : void 0;
518
518
  }
@@ -530,8 +530,8 @@ function me(e, t, n) {
530
530
  if ("value" in e)
531
531
  return fe(t, e.value) || null;
532
532
  const r = {};
533
- for (const [i, s] of Object.entries(e.params ?? {}))
534
- r[i] = fe(t, s);
533
+ for (const [s, i] of Object.entries(e.params ?? {}))
534
+ r[s] = fe(t, i);
535
535
  const o = n(e.key, r);
536
536
  return o === e.key ? null : o;
537
537
  }
@@ -547,7 +547,7 @@ function fn(e) {
547
547
  const t = e.trim();
548
548
  return t.length <= Ue ? t : `${t.slice(0, Ue - 1).trimEnd()}…`;
549
549
  }
550
- function Es(e, t) {
550
+ function Ei(e, t) {
551
551
  const n = pn(t?.text, e), r = t ? me(t.text, e, (o) => o) : null;
552
552
  return {
553
553
  activityId: e.id,
@@ -649,7 +649,7 @@ class hn {
649
649
  * {@link ResolvedActivityType}.
650
650
  */
651
651
  isMessage(t) {
652
- return St(this.get(t)?.shape);
652
+ return Et(this.get(t)?.shape);
653
653
  }
654
654
  /** Folds into the list under the message it answers. See {@link isNoteShape}. */
655
655
  nestsUnderParent(t) {
@@ -681,20 +681,20 @@ class hn {
681
681
  return this.translate;
682
682
  }
683
683
  }
684
- const Ss = new hn();
685
- function Is(e, t, n = []) {
684
+ const Ii = new hn();
685
+ function Ti(e, t, n = []) {
686
686
  const r = e.createdAt;
687
687
  if (!r) return [];
688
688
  const o = new Set(n);
689
- return e.author.type === "user" && e.author.id && o.add(e.author.id), Object.entries(t).filter(([i, s]) => s >= r && !o.has(i)).map(([i]) => i);
689
+ return e.author.type === "user" && e.author.id && o.add(e.author.id), Object.entries(t).filter(([s, i]) => i >= r && !o.has(s)).map(([s]) => s);
690
690
  }
691
691
  function gn(e) {
692
692
  return e.createdAt ?? 0;
693
693
  }
694
- function Ts(e) {
694
+ function wi(e) {
695
695
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
696
696
  }
697
- function ws(e) {
697
+ function ki(e) {
698
698
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
699
699
  }
700
700
  const Tt = [
@@ -790,23 +790,23 @@ const Tt = [
790
790
  function te(e) {
791
791
  return Tt.find((t) => t.id === e);
792
792
  }
793
- function ks(e) {
793
+ function vi(e) {
794
794
  return te(e)?.label ?? e;
795
795
  }
796
- function Ms(e, t = "gpt-5-mini") {
796
+ function Mi(e, t = "gpt-5-mini") {
797
797
  return te(e)?.defaultModel ?? t;
798
798
  }
799
- function vs(e) {
799
+ function Ci(e) {
800
800
  return Tt.filter((t) => t.capabilities.includes(e));
801
801
  }
802
- function Cs(e) {
802
+ function Oi(e) {
803
803
  const t = te(e);
804
804
  return !!t && !t.baseUrl;
805
805
  }
806
- function Os(e, t) {
806
+ function xi(e, t) {
807
807
  return t === "text" ? !0 : te(e)?.attachmentKinds?.includes(t) === !0;
808
808
  }
809
- function xs(e, t) {
809
+ function Ni(e, t) {
810
810
  if (!e.enabled) return "ok";
811
811
  const n = je(e.hardLimitNanos), r = je(e.softLimitNanos);
812
812
  return n !== void 0 && t >= n ? "hard" : r !== void 0 && t >= r ? "soft" : "ok";
@@ -818,14 +818,14 @@ function yn(e, t = "month") {
818
818
  const n = new Date(e);
819
819
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
820
820
  }
821
- function Ns(e, t = "month") {
821
+ function Ri(e, t = "month") {
822
822
  const n = new Date(yn(e, t));
823
823
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
824
824
  }
825
- function Rs(e) {
825
+ function Di(e) {
826
826
  return e?.listeningEnabled !== !1;
827
827
  }
828
- const Ds = [
828
+ const $i = [
829
829
  { id: "agent", label: "Agent", labelSource: "user" },
830
830
  { id: "team", label: "Team", labelSource: "team" },
831
831
  { id: "inbox", label: "Inbox", labelSource: "inbox" },
@@ -835,49 +835,49 @@ const Ds = [
835
835
  { id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
836
836
  { id: "time", label: "Tijd", labelSource: "raw" }
837
837
  ];
838
- function se(e) {
838
+ function ie(e) {
839
839
  return e < 10 ? `0${e}` : `${e}`;
840
840
  }
841
841
  function j(e, t) {
842
- const n = new Date(e), r = `${n.getUTCFullYear()}-${se(n.getUTCMonth() + 1)}-${se(n.getUTCDate())}`;
843
- return t === "day" ? r : `${r}T${se(n.getUTCHours())}`;
842
+ const n = new Date(e), r = `${n.getUTCFullYear()}-${ie(n.getUTCMonth() + 1)}-${ie(n.getUTCDate())}`;
843
+ return t === "day" ? r : `${r}T${ie(n.getUTCHours())}`;
844
844
  }
845
845
  function H(e, t) {
846
846
  const n = new Date(e);
847
847
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
848
848
  }
849
- const bn = 36e5, An = 864e5;
850
- function $s(e, t, n) {
851
- const r = n === "hour" ? bn : An, o = [];
852
- for (let i = H(e, n); i <= t; i += r)
853
- o.push(j(i, n));
849
+ const bn = 36e5, _n = 864e5;
850
+ function Li(e, t, n) {
851
+ const r = n === "hour" ? bn : _n, o = [];
852
+ for (let s = H(e, n); s <= t; s += r)
853
+ o.push(j(s, n));
854
854
  return o;
855
855
  }
856
- const _n = /* @__PURE__ */ new Set(["time"]);
857
- function Ls(e, t, n) {
856
+ const An = /* @__PURE__ */ new Set(["time"]);
857
+ function Pi(e, t, n) {
858
858
  if (!e) return [];
859
859
  const r = new Set(e.supportedDimensions ?? []);
860
- return t.filter((o) => r.has(o.id) && !_n.has(o.id)).map((o) => ({
860
+ return t.filter((o) => r.has(o.id) && !An.has(o.id)).map((o) => ({
861
861
  id: o.id,
862
862
  label: o.label,
863
863
  options: o.options?.length ? o.options : n[o.id] ?? []
864
864
  })).filter((o) => o.options.length > 0);
865
865
  }
866
- function Ps(e, t) {
866
+ function Ki(e, t) {
867
867
  const n = t.find((o) => o.id === e.dimensionId), r = n?.options.find((o) => o.value === e.value);
868
868
  return `${n?.label ?? e.dimensionId} · ${r?.label ?? e.value}`;
869
869
  }
870
- function Ks(e) {
870
+ function Ui(e) {
871
871
  return { value: e.id, label: `${e.category} · ${e.label}` };
872
872
  }
873
- const En = [
873
+ const Sn = [
874
874
  { id: "resource", label: "Resource", labelSource: "raw" },
875
875
  { id: "origin", label: "Herkomst", labelSource: "raw" }
876
- ], Sn = En.map((e) => e.id);
876
+ ], En = Sn.map((e) => e.id);
877
877
  function In(e, t) {
878
878
  return `${e}.usage.${t}`;
879
879
  }
880
- function Us(e, t) {
880
+ function Fi(e, t) {
881
881
  return t.map((n) => ({
882
882
  id: In(e, n.unit),
883
883
  label: n.label,
@@ -886,13 +886,13 @@ function Us(e, t) {
886
886
  aggregation: "sum",
887
887
  supportedDimensions: [
888
888
  "provider",
889
- ...Sn,
889
+ ...En,
890
890
  ...n.extraDimensions ?? [],
891
891
  "time"
892
892
  ]
893
893
  }));
894
894
  }
895
- const wt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), He = 200, Ge = 100, We = 200, Ve = 12, ze = 4, Xe = 10, Tn = 8, Ye = 12, kt = 4e3, q = 500, Fs = 1024 * 1024, wn = /* @__PURE__ */ new Set([
895
+ const wt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), He = 200, Ge = 100, We = 200, Ve = 12, ze = 4, Xe = 10, Tn = 8, Ye = 12, kt = 4e3, q = 500, Bi = 1024 * 1024, wn = /* @__PURE__ */ new Set([
896
896
  "heading",
897
897
  "paragraph",
898
898
  "list",
@@ -906,14 +906,14 @@ const wt = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]
906
906
  "letterhead",
907
907
  "totals",
908
908
  "pagebreak"
909
- ]), kn = ["http:", "https:", "mailto:", "tel:"], Mn = /^[a-z][a-z0-9+.-]*:/i;
910
- function Me(e) {
909
+ ]), kn = ["http:", "https:", "mailto:", "tel:"], vn = /^[a-z][a-z0-9+.-]*:/i;
910
+ function ve(e) {
911
911
  const t = e.trim().replace(/^<|>$/g, "");
912
912
  if (!t) return !1;
913
- const n = Mn.exec(t)?.[0];
913
+ const n = vn.exec(t)?.[0];
914
914
  return n ? kn.includes(n.toLowerCase()) : !t.startsWith("//");
915
915
  }
916
- const vn = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
916
+ const Mn = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
917
917
  function Cn(e) {
918
918
  let t = "", n = 0;
919
919
  for (; n < e.length; ) {
@@ -922,38 +922,38 @@ function Cn(e) {
922
922
  t += e[n], n += 1;
923
923
  continue;
924
924
  }
925
- const o = n + (r ? 2 : 1), i = qe(e, o, "[", "]");
926
- if (i < 0 || e[i + 1] !== "(") {
925
+ const o = n + (r ? 2 : 1), s = qe(e, o, "[", "]");
926
+ if (s < 0 || e[s + 1] !== "(") {
927
927
  t += e[n], n += 1;
928
928
  continue;
929
929
  }
930
- const s = qe(e, i + 2, "(", ")");
931
- if (s < 0) {
930
+ const i = qe(e, s + 2, "(", ")");
931
+ if (i < 0) {
932
932
  t += e[n], n += 1;
933
933
  continue;
934
934
  }
935
- const a = e.slice(o, i), c = e.slice(i + 2, s).trim().split(/\s+/)[0] ?? "";
936
- t += r || !Me(c) ? a : e.slice(n, s + 1), n = s + 1;
935
+ const a = e.slice(o, s), u = e.slice(s + 2, i).trim().split(/\s+/)[0] ?? "";
936
+ t += r || !ve(u) ? a : e.slice(n, i + 1), n = i + 1;
937
937
  }
938
938
  return t;
939
939
  }
940
940
  function qe(e, t, n, r) {
941
941
  let o = 1;
942
- for (let i = t; i < e.length; i += 1) {
943
- if (e[i] === "\\") {
944
- i += 1;
942
+ for (let s = t; s < e.length; s += 1) {
943
+ if (e[s] === "\\") {
944
+ s += 1;
945
945
  continue;
946
946
  }
947
- if (e[i] === n) o += 1;
948
- else if (e[i] === r && (o -= 1, o === 0))
949
- return i;
947
+ if (e[s] === n) o += 1;
948
+ else if (e[s] === r && (o -= 1, o === 0))
949
+ return s;
950
950
  }
951
951
  return -1;
952
952
  }
953
953
  function On(e) {
954
954
  return Cn(e).replace(
955
- vn,
956
- (t, n, r) => Me(r) ? t : ""
955
+ Mn,
956
+ (t, n, r) => ve(r) ? t : ""
957
957
  );
958
958
  }
959
959
  function T(e, t = kt) {
@@ -968,7 +968,7 @@ function U(e, t = 200) {
968
968
  function Nn(e, t = "info") {
969
969
  return typeof e == "string" && wt.has(e) ? e : t;
970
970
  }
971
- function Bs(e, t = () => {
971
+ function ji(e, t = () => {
972
972
  }) {
973
973
  if (!Array.isArray(e)) return [];
974
974
  const n = [];
@@ -983,203 +983,203 @@ function Bs(e, t = () => {
983
983
  t(`unknown block type ${String(o.type)}`);
984
984
  continue;
985
985
  }
986
- const i = typeof o.block_id == "string" ? { block_id: o.block_id } : {};
986
+ const s = typeof o.block_id == "string" ? { block_id: o.block_id } : {};
987
987
  switch (o.type) {
988
988
  case "heading": {
989
- const s = T(o.text);
990
- if (!s) {
989
+ const i = T(o.text);
990
+ if (!i) {
991
991
  t("a heading without text");
992
992
  continue;
993
993
  }
994
994
  const a = o.level === 2 || o.level === 3 ? o.level : 1;
995
- n.push({ ...i, type: "heading", level: a, text: s });
995
+ n.push({ ...s, type: "heading", level: a, text: i });
996
996
  break;
997
997
  }
998
998
  case "paragraph": {
999
- const s = T(o.text);
1000
- if (!s) {
999
+ const i = T(o.text);
1000
+ if (!i) {
1001
1001
  t("a paragraph without text");
1002
1002
  continue;
1003
1003
  }
1004
- n.push({ ...i, type: "paragraph", text: s });
1004
+ n.push({ ...s, type: "paragraph", text: i });
1005
1005
  break;
1006
1006
  }
1007
1007
  case "quote": {
1008
- const s = T(o.text);
1009
- if (!s) {
1008
+ const i = T(o.text);
1009
+ if (!i) {
1010
1010
  t("a quote without text");
1011
1011
  continue;
1012
1012
  }
1013
- n.push({ ...i, type: "quote", text: s });
1013
+ n.push({ ...s, type: "quote", text: i });
1014
1014
  break;
1015
1015
  }
1016
1016
  case "code": {
1017
- const s = xn(o.text);
1018
- if (!s) {
1017
+ const i = xn(o.text);
1018
+ if (!i) {
1019
1019
  t("a code block without text");
1020
1020
  continue;
1021
1021
  }
1022
1022
  const a = typeof o.lang == "string" ? { lang: o.lang.slice(0, 32) } : {};
1023
- n.push({ ...i, type: "code", ...a, text: s });
1023
+ n.push({ ...s, type: "code", ...a, text: i });
1024
1024
  break;
1025
1025
  }
1026
1026
  case "divider":
1027
- n.push({ ...i, type: "divider" });
1027
+ n.push({ ...s, type: "divider" });
1028
1028
  break;
1029
1029
  case "list": {
1030
- const s = Array.isArray(o.items) ? o.items : [], a = [];
1031
- for (const u of s) {
1030
+ const i = Array.isArray(o.items) ? o.items : [], a = [];
1031
+ for (const l of i) {
1032
1032
  if (a.length >= Ge) {
1033
1033
  t(`more than ${Ge} list items`);
1034
1034
  break;
1035
1035
  }
1036
- const d = T(u?.text);
1036
+ const d = T(l?.text);
1037
1037
  if (!d) continue;
1038
- const l = T(u?.lead, 200);
1039
- a.push(l ? { lead: l, text: d } : { text: d });
1038
+ const c = T(l?.lead, 200);
1039
+ a.push(c ? { lead: c, text: d } : { text: d });
1040
1040
  }
1041
1041
  if (a.length === 0) {
1042
1042
  t("a list without usable items");
1043
1043
  continue;
1044
1044
  }
1045
- const c = o.style === "numbered" ? "numbered" : "bulleted";
1046
- n.push({ ...i, type: "list", style: c, items: a });
1045
+ const u = o.style === "numbered" ? "numbered" : "bulleted";
1046
+ n.push({ ...s, type: "list", style: u, items: a });
1047
1047
  break;
1048
1048
  }
1049
1049
  case "table": {
1050
- const s = Array.isArray(o.columns) ? o.columns : [], a = [];
1051
- for (const l of s) {
1050
+ const i = Array.isArray(o.columns) ? o.columns : [], a = [];
1051
+ for (const c of i) {
1052
1052
  if (a.length >= Ve) {
1053
1053
  t(`more than ${Ve} table columns`);
1054
1054
  break;
1055
1055
  }
1056
- const p = T(l?.label, q), f = l?.align === "right" ? "right" : void 0;
1056
+ const p = T(c?.label, q), f = c?.align === "right" ? "right" : void 0;
1057
1057
  a.push(f ? { label: p, align: f } : { label: p });
1058
1058
  }
1059
1059
  if (a.length === 0) {
1060
1060
  t("a table without columns");
1061
1061
  continue;
1062
1062
  }
1063
- const c = Array.isArray(o.rows) ? o.rows : [], u = [];
1064
- for (const l of c) {
1065
- if (u.length >= We) {
1063
+ const u = Array.isArray(o.rows) ? o.rows : [], l = [];
1064
+ for (const c of u) {
1065
+ if (l.length >= We) {
1066
1066
  t(`more than ${We} table rows`);
1067
1067
  break;
1068
1068
  }
1069
- const p = Array.isArray(l) ? l : [];
1070
- u.push(a.map((f, y) => T(p[y], q)));
1069
+ const p = Array.isArray(c) ? c : [];
1070
+ l.push(a.map((f, y) => T(p[y], q)));
1071
1071
  }
1072
1072
  const d = T(o.caption, q);
1073
1073
  n.push({
1074
- ...i,
1074
+ ...s,
1075
1075
  type: "table",
1076
1076
  columns: a,
1077
- rows: u,
1077
+ rows: l,
1078
1078
  ...d ? { caption: d } : {}
1079
1079
  });
1080
1080
  break;
1081
1081
  }
1082
1082
  case "kpi": {
1083
- const s = Array.isArray(o.items) ? o.items : [], a = [];
1084
- for (const c of s) {
1083
+ const i = Array.isArray(o.items) ? o.items : [], a = [];
1084
+ for (const u of i) {
1085
1085
  if (a.length >= ze) {
1086
1086
  t(`more than ${ze} kpi items`);
1087
1087
  break;
1088
1088
  }
1089
- const u = T(c?.value, 40), d = T(c?.label, 80);
1090
- if (!u || !d) continue;
1091
- const l = c?.tone;
1089
+ const l = T(u?.value, 40), d = T(u?.label, 80);
1090
+ if (!l || !d) continue;
1091
+ const c = u?.tone;
1092
1092
  a.push(
1093
- typeof l == "string" && wt.has(l) ? { value: u, label: d, tone: l } : { value: u, label: d }
1093
+ typeof c == "string" && wt.has(c) ? { value: l, label: d, tone: c } : { value: l, label: d }
1094
1094
  );
1095
1095
  }
1096
1096
  if (a.length === 0) {
1097
1097
  t("a kpi block without usable items");
1098
1098
  continue;
1099
1099
  }
1100
- n.push({ ...i, type: "kpi", items: a });
1100
+ n.push({ ...s, type: "kpi", items: a });
1101
1101
  break;
1102
1102
  }
1103
1103
  case "image": {
1104
- const s = typeof o.url == "string" ? o.url.trim() : "";
1105
- if (!s || !Me(s)) {
1104
+ const i = typeof o.url == "string" ? o.url.trim() : "";
1105
+ if (!i || !ve(i)) {
1106
1106
  t("an image without a usable url");
1107
1107
  continue;
1108
1108
  }
1109
- const a = T(o.alt, 200), c = T(o.caption, q);
1109
+ const a = T(o.alt, 200), u = T(o.caption, q);
1110
1110
  n.push({
1111
- ...i,
1111
+ ...s,
1112
1112
  type: "image",
1113
- url: s,
1113
+ url: i,
1114
1114
  ...a ? { alt: a } : {},
1115
- ...c ? { caption: c } : {}
1115
+ ...u ? { caption: u } : {}
1116
1116
  });
1117
1117
  break;
1118
1118
  }
1119
1119
  case "letterhead": {
1120
- const s = Array.isArray(o.fields) ? o.fields : [], a = [];
1121
- for (const d of s) {
1120
+ const i = Array.isArray(o.fields) ? o.fields : [], a = [];
1121
+ for (const d of i) {
1122
1122
  if (a.length >= Xe) {
1123
1123
  t(`more than ${Xe} letterhead fields`);
1124
1124
  break;
1125
1125
  }
1126
- const l = d, p = typeof l?.key == "string" ? l.key.slice(0, 48) : "", f = U(l?.value);
1126
+ const c = d, p = typeof c?.key == "string" ? c.key.slice(0, 48) : "", f = U(c?.value);
1127
1127
  if (!p || !f) continue;
1128
- const y = U(l?.label, 80);
1128
+ const y = U(c?.label, 80);
1129
1129
  a.push(y ? { key: p, label: y, value: f } : { key: p, value: f });
1130
1130
  }
1131
- const u = (Array.isArray(o.recipient) ? o.recipient : []).slice(0, Tn).map((d) => U(d)).filter(Boolean);
1132
- if (a.length === 0 && u.length === 0) {
1131
+ const l = (Array.isArray(o.recipient) ? o.recipient : []).slice(0, Tn).map((d) => U(d)).filter(Boolean);
1132
+ if (a.length === 0 && l.length === 0) {
1133
1133
  t("a letterhead without fields or recipient");
1134
1134
  continue;
1135
1135
  }
1136
1136
  n.push({
1137
- ...i,
1137
+ ...s,
1138
1138
  type: "letterhead",
1139
1139
  fields: a,
1140
- ...u.length > 0 ? { recipient: u } : {}
1140
+ ...l.length > 0 ? { recipient: l } : {}
1141
1141
  });
1142
1142
  break;
1143
1143
  }
1144
1144
  case "totals": {
1145
- const s = (u) => {
1146
- const d = Array.isArray(u) ? u : [], l = [];
1145
+ const i = (l) => {
1146
+ const d = Array.isArray(l) ? l : [], c = [];
1147
1147
  for (const p of d) {
1148
- if (l.length >= Ye) {
1148
+ if (c.length >= Ye) {
1149
1149
  t(`more than ${Ye} totals rows`);
1150
1150
  break;
1151
1151
  }
1152
1152
  const f = p, y = U(f?.label), m = U(f?.amount, 40);
1153
- !y || !m || l.push(
1153
+ !y || !m || c.push(
1154
1154
  f?.emphasis === !0 ? { label: y, amount: m, emphasis: !0 } : { label: y, amount: m }
1155
1155
  );
1156
1156
  }
1157
- return l;
1158
- }, a = s(o.rows);
1157
+ return c;
1158
+ }, a = i(o.rows);
1159
1159
  if (a.length === 0 && !o.block_id) {
1160
1160
  t("a totals block without usable rows");
1161
1161
  continue;
1162
1162
  }
1163
- const c = s(o.taxRows);
1164
- n.push({ ...i, type: "totals", rows: a, ...c.length > 0 ? { taxRows: c } : {} });
1163
+ const u = i(o.taxRows);
1164
+ n.push({ ...s, type: "totals", rows: a, ...u.length > 0 ? { taxRows: u } : {} });
1165
1165
  break;
1166
1166
  }
1167
1167
  case "pagebreak":
1168
- n.push({ ...i, type: "pagebreak" });
1168
+ n.push({ ...s, type: "pagebreak" });
1169
1169
  break;
1170
1170
  case "callout": {
1171
- const s = T(o.text);
1172
- if (!s) {
1171
+ const i = T(o.text);
1172
+ if (!i) {
1173
1173
  t("a callout without text");
1174
1174
  continue;
1175
1175
  }
1176
1176
  const a = T(o.title, 200);
1177
1177
  n.push({
1178
- ...i,
1178
+ ...s,
1179
1179
  type: "callout",
1180
1180
  tone: Nn(o.tone),
1181
1181
  ...a ? { title: a } : {},
1182
- text: s
1182
+ text: i
1183
1183
  });
1184
1184
  break;
1185
1185
  }
@@ -1187,10 +1187,10 @@ function Bs(e, t = () => {
1187
1187
  }
1188
1188
  return n;
1189
1189
  }
1190
- function js(e) {
1190
+ function Hi(e) {
1191
1191
  return JSON.stringify(e).length;
1192
1192
  }
1193
- function Hs(e) {
1193
+ function Gi(e) {
1194
1194
  return {
1195
1195
  blocks: e.length,
1196
1196
  types: e.map((t) => t.type),
@@ -1201,7 +1201,7 @@ function Qe(e) {
1201
1201
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
1202
1202
  }
1203
1203
  function ae(e, t, n) {
1204
- const r = e.map((o, i) => n?.[i] === "right" ? "---:" : "---");
1204
+ const r = e.map((o, s) => n?.[s] === "right" ? "---:" : "---");
1205
1205
  return [
1206
1206
  `| ${e.map(Qe).join(" | ")} |`,
1207
1207
  `| ${r.join(" | ")} |`,
@@ -1268,8 +1268,8 @@ function Dn(e, t) {
1268
1268
  const n = [], r = e.some((o) => o.type === "heading" && o.level === 1);
1269
1269
  t && !r && n.push(`# ${t}`);
1270
1270
  for (const o of e) {
1271
- const i = Rn(o);
1272
- i.length > 0 && n.push(i.join(`
1271
+ const s = Rn(o);
1272
+ s.length > 0 && n.push(s.join(`
1273
1273
  `));
1274
1274
  }
1275
1275
  return `${n.join(`
@@ -1277,45 +1277,45 @@ function Dn(e, t) {
1277
1277
  `)}
1278
1278
  `;
1279
1279
  }
1280
- const Mt = (e) => `user:${e}`, vt = (e) => `team:${e}`;
1281
- function Gs(e) {
1280
+ const vt = (e) => `user:${e}`, Mt = (e) => `team:${e}`;
1281
+ function Wi(e) {
1282
1282
  const t = /* @__PURE__ */ new Set();
1283
1283
  for (const n of e ?? [])
1284
- n?.id && (n.kind === "user" && t.add(Mt(n.id)), n.kind === "team" && t.add(vt(n.id)));
1284
+ n?.id && (n.kind === "user" && t.add(vt(n.id)), n.kind === "team" && t.add(Mt(n.id)));
1285
1285
  return [...t].sort();
1286
1286
  }
1287
- function Ws(e, t) {
1288
- return [Mt(e), ...t.map(vt)];
1287
+ function Vi(e, t) {
1288
+ return [vt(e), ...t.map(Mt)];
1289
1289
  }
1290
- function Vs(e) {
1290
+ function zi(e) {
1291
1291
  const t = /* @__PURE__ */ new Set();
1292
1292
  for (const n of e ?? [])
1293
1293
  n?.kind && t.add(n.kind);
1294
1294
  return [...t];
1295
1295
  }
1296
- const $n = ["done", "escalated"], zs = ["open", "waiting"];
1297
- function Xs(e) {
1296
+ const $n = ["done", "escalated"], Xi = ["open", "waiting"];
1297
+ function Yi(e) {
1298
1298
  return $n.includes(e);
1299
1299
  }
1300
1300
  const Ln = "assignment";
1301
- function Ys(e) {
1301
+ function qi(e) {
1302
1302
  return `${Ln}:${e}`;
1303
1303
  }
1304
- function qs(e, t, n, r) {
1304
+ function Qi(e, t, n, r) {
1305
1305
  if (e.direction === "inbound") return !0;
1306
1306
  if (e.author?.type === "user" && e.author.id === t) return !1;
1307
1307
  const o = e.payload?.mentions;
1308
1308
  return Array.isArray(o) && o.includes(t) || r && r === t ? !0 : n === "reply";
1309
1309
  }
1310
- function Qs(e) {
1310
+ function Zi(e) {
1311
1311
  const { targetAuthorId: t, reactorId: n, agentId: r, on: o } = e;
1312
1312
  return !o || !t || t !== r ? !1 : n !== r;
1313
1313
  }
1314
- function Zs(e) {
1314
+ function Ji(e) {
1315
1315
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1316
1316
  }
1317
1317
  const Pn = 12;
1318
- function Js(e, t, n = Pn) {
1318
+ function ea(e, t, n = Pn) {
1319
1319
  const r = t + 1;
1320
1320
  return e ? e.kind === "done" ? { status: "done", waitingOn: null, turns: r, reason: e.note } : e.kind === "escalate" ? { status: "escalated", waitingOn: null, turns: r, reason: e.reason } : r >= n ? {
1321
1321
  status: "escalated",
@@ -1329,6 +1329,9 @@ function Js(e, t, n = Pn) {
1329
1329
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1330
1330
  };
1331
1331
  }
1332
+ function ta(e, t, n) {
1333
+ return e ? e === t : n;
1334
+ }
1332
1335
  function Kn(e) {
1333
1336
  const t = e.trim().replace(/[\s-]/g, "");
1334
1337
  if (!/^\d+$/.test(t) || ![8, 12, 13, 14].includes(t.length)) return;
@@ -1341,7 +1344,7 @@ function Un(e) {
1341
1344
  t += Number(e[n]) * (n % 2 === 0 ? 3 : 1);
1342
1345
  return (10 - t % 10) % 10;
1343
1346
  }
1344
- function ea(e, t) {
1347
+ function na(e, t) {
1345
1348
  const n = t.trim(), r = Kn(n), o = [{ sku: n }, { barcodes: { $in: [n] } }];
1346
1349
  return r && o.push({ gtin: r }), { organizationId: e, $or: o };
1347
1350
  }
@@ -1350,38 +1353,38 @@ function G(e) {
1350
1353
  }
1351
1354
  function Fn(e, t) {
1352
1355
  if (t.length === 0) return [];
1353
- const n = t.reduce((c, u) => c + u, 0);
1354
- if (n === 0) return t.map((c, u) => u === 0 ? e : 0);
1355
- const r = t.map((c) => e * c / n), o = r.map((c) => Math.trunc(c));
1356
- let i = e - o.reduce((c, u) => c + u, 0);
1357
- const s = r.map((c, u) => ({ index: u, fraction: Math.abs(c - o[u]) })).sort((c, u) => u.fraction - c.fraction), a = i < 0 ? -1 : 1;
1358
- for (let c = 0; i !== 0 && c < s.length; c++)
1359
- o[s[c].index] += a, i -= a;
1356
+ const n = t.reduce((u, l) => u + l, 0);
1357
+ if (n === 0) return t.map((u, l) => l === 0 ? e : 0);
1358
+ const r = t.map((u) => e * u / n), o = r.map((u) => Math.trunc(u));
1359
+ let s = e - o.reduce((u, l) => u + l, 0);
1360
+ const i = r.map((u, l) => ({ index: l, fraction: Math.abs(u - o[l]) })).sort((u, l) => l.fraction - u.fraction), a = s < 0 ? -1 : 1;
1361
+ for (let u = 0; s !== 0 && u < i.length; u++)
1362
+ o[i[u].index] += a, s -= a;
1360
1363
  return o;
1361
1364
  }
1362
1365
  function D(e, t = {}) {
1363
- const n = t.decimal ?? ",", r = t.group ?? ".", o = e < 0, i = Math.abs(Math.trunc(e)).toString().padStart(3, "0"), s = i.slice(0, -2), a = i.slice(-2);
1364
- let c = "";
1365
- for (let u = 0; u < s.length; u++)
1366
- u > 0 && (s.length - u) % 3 === 0 && (c += r), c += s[u];
1367
- return `${o ? "-" : ""}${c}${n}${a}`;
1366
+ const n = t.decimal ?? ",", r = t.group ?? ".", o = e < 0, s = Math.abs(Math.trunc(e)).toString().padStart(3, "0"), i = s.slice(0, -2), a = s.slice(-2);
1367
+ let u = "";
1368
+ for (let l = 0; l < i.length; l++)
1369
+ l > 0 && (i.length - l) % 3 === 0 && (u += r), u += i[l];
1370
+ return `${o ? "-" : ""}${u}${n}${a}`;
1368
1371
  }
1369
- function ta(e) {
1372
+ function ra(e) {
1370
1373
  const t = e.trim().replace(/[\s ]/g, "");
1371
1374
  if (!t) return;
1372
1375
  const n = t.replace(/^[-+]?[^\d.,-]*/, "").replace(/[^\d.,-]+$/, ""), r = /^-/.test(t) || /-$/.test(t), o = n.replace(/-/g, "");
1373
1376
  if (!o || !/^[\d.,]+$/.test(o)) return;
1374
- const i = o.lastIndexOf(","), s = o.lastIndexOf("."), a = Math.max(i, s), c = a === -1 ? "" : o.slice(a + 1), u = a !== -1 && c.length >= 1 && c.length <= 2, d = u ? o.slice(0, a) : o;
1377
+ const s = o.lastIndexOf(","), i = o.lastIndexOf("."), a = Math.max(s, i), u = a === -1 ? "" : o.slice(a + 1), l = a !== -1 && u.length >= 1 && u.length <= 2, d = l ? o.slice(0, a) : o;
1375
1378
  if (!Bn(d)) return;
1376
- const l = d.replace(/[.,]/g, ""), p = u ? c.padEnd(2, "0") : "00";
1377
- if (l === "") return;
1378
- const f = Number(l) * 100 + Number(p);
1379
+ const c = d.replace(/[.,]/g, ""), p = l ? u.padEnd(2, "0") : "00";
1380
+ if (c === "") return;
1381
+ const f = Number(c) * 100 + Number(p);
1379
1382
  return r ? -f : f;
1380
1383
  }
1381
1384
  function Bn(e) {
1382
1385
  return /^\d+$/.test(e) ? !0 : e.includes(".") && e.includes(",") ? !1 : /^\d{1,3}([.,]\d{3})*$/.test(e);
1383
1386
  }
1384
- function na(e) {
1387
+ function oa(e) {
1385
1388
  return e.costPriceCents == null ? e.netCents : e.netCents - G(e.costPriceCents * e.quantity);
1386
1389
  }
1387
1390
  const jn = [
@@ -1406,20 +1409,20 @@ const jn = [
1406
1409
  matches: (e, t) => !e.contractId && !e.companyId && !!e.segmentKey && e.segmentKey === t.segmentKey && !!e.categoryKey
1407
1410
  }
1408
1411
  ];
1409
- function ra(e, t, n) {
1412
+ function sa(e, t, n) {
1410
1413
  const r = n.filter(
1411
1414
  (o) => o.currency === e.currency && (o.validFrom == null || o.validFrom <= t.at) && (o.validTo == null || o.validTo >= t.at) && (o.minQuantity == null || t.quantity >= o.minQuantity) && (o.productId == null || o.productId === e.id) && (o.categoryKey == null || o.categoryKey === e.categoryKey) && (o.productId != null || o.categoryKey != null)
1412
1415
  );
1413
1416
  for (const o of jn) {
1414
- const i = r.filter((a) => o.matches(a, t));
1415
- if (i.length === 0) continue;
1416
- const s = i.reduce(
1417
- (a, c) => (c.minQuantity ?? 0) >= (a.minQuantity ?? 0) ? c : a
1417
+ const s = r.filter((a) => o.matches(a, t));
1418
+ if (s.length === 0) continue;
1419
+ const i = s.reduce(
1420
+ (a, u) => (u.minQuantity ?? 0) >= (a.minQuantity ?? 0) ? u : a
1418
1421
  );
1419
1422
  return {
1420
- unitPriceCents: Hn(s, e.listPriceCents),
1421
- sourceKey: (s.minQuantity ?? 0) > 1 ? "tier" : o.key,
1422
- ruleId: s.id
1423
+ unitPriceCents: Hn(i, e.listPriceCents),
1424
+ sourceKey: (i.minQuantity ?? 0) > 1 ? "tier" : o.key,
1425
+ ruleId: i.id
1423
1426
  };
1424
1427
  }
1425
1428
  return { unitPriceCents: e.listPriceCents, sourceKey: "list" };
@@ -1427,19 +1430,19 @@ function ra(e, t, n) {
1427
1430
  function Hn(e, t) {
1428
1431
  return e.unitPriceCents != null ? e.unitPriceCents : e.discountPercent != null ? G(t * (1 - e.discountPercent / 100)) : t;
1429
1432
  }
1430
- const oa = ["piece", "hour", "day", "month", "km", "license"], ia = /* @__PURE__ */ new Set(["mail", "message"]);
1433
+ const ia = ["piece", "hour", "day", "month", "km", "license"], aa = /* @__PURE__ */ new Set(["mail", "message"]);
1431
1434
  function Gn(e, t) {
1432
1435
  const n = e.settings?.signatures?.[t];
1433
1436
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1434
1437
  }
1435
- function sa(e, t, n, r = "html") {
1438
+ function ca(e, t, n, r = "html") {
1436
1439
  if (!e) return n;
1437
1440
  const o = Gn(e, t);
1438
1441
  return o ? `${n}${r === "text" ? `
1439
1442
 
1440
1443
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${o.body}` : n;
1441
1444
  }
1442
- function aa(e) {
1445
+ function la(e) {
1443
1446
  return e.endpoints ?? [];
1444
1447
  }
1445
1448
  function $(e) {
@@ -1447,14 +1450,14 @@ function $(e) {
1447
1450
  if (t)
1448
1451
  return t.split(/[-_]/)[0] || void 0;
1449
1452
  }
1450
- function ca(e) {
1453
+ function ua(e) {
1451
1454
  return $(e.contactLocale) ?? $(e.companyLocale) ?? $(e.organizationLocale);
1452
1455
  }
1453
- function la(e, t, n, r) {
1456
+ function da(e, t, n, r) {
1454
1457
  const o = e.filter((a) => a.key === t && !a.archived);
1455
1458
  if (o.length === 0) return;
1456
- const i = $(n), s = $(r);
1457
- return o.find((a) => $(a.locale) === i) ?? o.find((a) => $(a.locale) === s) ?? // A row with no language at all is the single-language case: it is for everybody.
1459
+ const s = $(n), i = $(r);
1460
+ return o.find((a) => $(a.locale) === s) ?? o.find((a) => $(a.locale) === i) ?? // A row with no language at all is the single-language case: it is for everybody.
1458
1461
  o.find((a) => !a.locale) ?? o[0];
1459
1462
  }
1460
1463
  const Wn = /\{([a-zA-Z0-9_.]+)\}/g;
@@ -1471,9 +1474,9 @@ function Vn(e) {
1471
1474
  }
1472
1475
  function zn(e, t, n) {
1473
1476
  const r = [];
1474
- return { text: e.replace(Wn, (i, s) => {
1475
- const a = Ct(t, s);
1476
- return a == null || a === "" ? (r.includes(s) || r.push(s), n ?? `{${s}}`) : Vn(a);
1477
+ return { text: e.replace(Wn, (s, i) => {
1478
+ const a = Ct(t, i);
1479
+ return a == null || a === "" ? (r.includes(i) || r.push(i), n ?? `{${i}}`) : Vn(a);
1477
1480
  }), unresolved: r };
1478
1481
  }
1479
1482
  function Xn(e, t) {
@@ -1485,131 +1488,146 @@ function Xn(e, t) {
1485
1488
  }
1486
1489
  return e.equals !== void 0 ? n === e.equals : !0;
1487
1490
  }
1488
- function ua(e, t, n, r, o) {
1489
- const i = [], s = [], a = (c) => {
1490
- const u = zn(c, t, o);
1491
- for (const d of u.unresolved) i.includes(d) || i.push(d);
1492
- return u.text;
1491
+ function pa(e, t, n, r, o) {
1492
+ const s = [], i = [], a = /* @__PURE__ */ new Set(), u = (l) => {
1493
+ const d = zn(l, t, o);
1494
+ for (const c of d.unresolved) s.includes(c) || s.push(c);
1495
+ return d.text;
1493
1496
  };
1494
- for (const c of e) {
1495
- if (c.block_id && !Xn(n?.[c.block_id], t)) continue;
1496
- const u = c.block_id ? r?.[c.block_id] : void 0;
1497
- if (u) {
1498
- s.push(...u);
1497
+ for (const l of e) {
1498
+ if (l.block_id && !Xn(n?.[l.block_id], t)) continue;
1499
+ const d = l.block_id ? r?.[l.block_id] : void 0;
1500
+ if (d && l.block_id) {
1501
+ a.add(l.block_id), i.push(...d);
1499
1502
  continue;
1500
1503
  }
1501
- switch (c.type) {
1504
+ switch (l.type) {
1502
1505
  case "heading":
1503
1506
  case "paragraph":
1504
1507
  case "quote":
1505
- s.push({ ...c, text: a(c.text) });
1508
+ i.push({ ...l, text: u(l.text) });
1506
1509
  break;
1507
1510
  case "callout":
1508
- s.push({
1509
- ...c,
1510
- ...c.title ? { title: a(c.title) } : {},
1511
- text: a(c.text)
1511
+ i.push({
1512
+ ...l,
1513
+ ...l.title ? { title: u(l.title) } : {},
1514
+ text: u(l.text)
1512
1515
  });
1513
1516
  break;
1514
1517
  case "code":
1515
- s.push(c);
1518
+ i.push(l);
1516
1519
  break;
1517
1520
  case "list":
1518
- s.push({
1519
- ...c,
1520
- items: c.items.map((d) => ({
1521
- ...d.lead ? { lead: a(d.lead) } : {},
1522
- text: a(d.text)
1521
+ i.push({
1522
+ ...l,
1523
+ items: l.items.map((c) => ({
1524
+ ...c.lead ? { lead: u(c.lead) } : {},
1525
+ text: u(c.text)
1523
1526
  }))
1524
1527
  });
1525
1528
  break;
1526
1529
  case "table":
1527
- s.push({
1528
- ...c,
1529
- columns: c.columns.map((d) => ({ ...d, label: a(d.label) })),
1530
- rows: c.rows.map((d) => d.map(a)),
1531
- ...c.caption ? { caption: a(c.caption) } : {}
1530
+ i.push({
1531
+ ...l,
1532
+ columns: l.columns.map((c) => ({ ...c, label: u(c.label) })),
1533
+ rows: l.rows.map((c) => c.map(u)),
1534
+ ...l.caption ? { caption: u(l.caption) } : {}
1532
1535
  });
1533
1536
  break;
1534
1537
  case "kpi":
1535
- s.push({
1536
- ...c,
1537
- items: c.items.map((d) => ({
1538
- ...d,
1539
- value: a(d.value),
1540
- label: a(d.label)
1538
+ i.push({
1539
+ ...l,
1540
+ items: l.items.map((c) => ({
1541
+ ...c,
1542
+ value: u(c.value),
1543
+ label: u(c.label)
1541
1544
  }))
1542
1545
  });
1543
1546
  break;
1544
1547
  case "letterhead":
1545
- s.push({
1546
- ...c,
1547
- fields: c.fields.map((d) => ({ ...d, value: a(d.value) })),
1548
- ...c.recipient ? { recipient: c.recipient.map(a) } : {}
1548
+ i.push({
1549
+ ...l,
1550
+ fields: l.fields.map((c) => ({ ...c, value: u(c.value) })),
1551
+ ...l.recipient ? { recipient: l.recipient.map(u) } : {}
1549
1552
  });
1550
1553
  break;
1551
1554
  case "totals":
1552
- s.push({
1553
- ...c,
1554
- rows: c.rows.map((d) => ({
1555
- ...d,
1556
- label: a(d.label),
1557
- amount: a(d.amount)
1555
+ i.push({
1556
+ ...l,
1557
+ rows: l.rows.map((c) => ({
1558
+ ...c,
1559
+ label: u(c.label),
1560
+ amount: u(c.amount)
1558
1561
  })),
1559
- ...c.taxRows ? {
1560
- taxRows: c.taxRows.map((d) => ({
1561
- ...d,
1562
- label: a(d.label),
1563
- amount: a(d.amount)
1562
+ ...l.taxRows ? {
1563
+ taxRows: l.taxRows.map((c) => ({
1564
+ ...c,
1565
+ label: u(c.label),
1566
+ amount: u(c.amount)
1564
1567
  }))
1565
1568
  } : {}
1566
1569
  });
1567
1570
  break;
1568
1571
  case "image":
1569
- s.push({
1570
- ...c,
1571
- url: a(c.url),
1572
- ...c.alt ? { alt: a(c.alt) } : {}
1572
+ i.push({
1573
+ ...l,
1574
+ url: u(l.url),
1575
+ ...l.alt ? { alt: u(l.alt) } : {}
1573
1576
  });
1574
1577
  break;
1575
1578
  default:
1576
- s.push(c);
1579
+ i.push(l);
1577
1580
  }
1578
1581
  }
1579
- return { blocks: s, unresolved: i };
1582
+ return {
1583
+ blocks: i,
1584
+ unresolved: s,
1585
+ unusedSlots: Object.keys(r ?? {}).filter((l) => !a.has(l))
1586
+ };
1580
1587
  }
1581
- function da(e) {
1582
- const t = e?.billing, n = e?.address, r = e?.houseStyle, o = [n?.street, n?.houseNumber].filter(Boolean).join(" "), i = [n?.postalCode, n?.city].filter(Boolean).join(" ");
1588
+ function Yn(e) {
1589
+ const t = e?.address, n = [t?.street, t?.houseNumber].filter(Boolean).join(" "), r = [t?.postalCode, t?.city].filter(Boolean).join(" ");
1583
1590
  return {
1584
- name: t?.companyName || e?.name || e?.displayName || "",
1585
- addressLines: [o, i, n?.country ?? ""].filter(Boolean),
1591
+ name: e?.name ?? "",
1592
+ addressLines: [n, r, t?.country ?? ""].filter(Boolean),
1586
1593
  footerLines: [
1587
- r?.footerText ?? "",
1588
- t?.kvkNumber ? `KvK ${t.kvkNumber}` : "",
1589
- t?.vatNumber ? `Btw ${t.vatNumber}` : "",
1590
- r?.iban ? `IBAN ${r.iban}` : ""
1594
+ e?.footerText ?? "",
1595
+ e?.kvkNumber ? `KvK ${e.kvkNumber}` : "",
1596
+ e?.vatNumber ? `Btw ${e.vatNumber}` : "",
1597
+ e?.iban ? `IBAN ${e.iban}` : ""
1591
1598
  ].filter(Boolean),
1592
1599
  ...e?.logo ? { logo: e.logo } : {}
1593
1600
  };
1594
1601
  }
1595
- const Yn = 36e5, qn = 864e5, L = -1 / 0, pa = (e) => e.score > L, J = {
1602
+ function fa(e) {
1603
+ return Yn({
1604
+ name: e?.billing?.companyName || e?.name || e?.displayName || "",
1605
+ address: e?.address,
1606
+ kvkNumber: e?.billing?.kvkNumber,
1607
+ vatNumber: e?.billing?.vatNumber,
1608
+ iban: e?.houseStyle?.iban,
1609
+ footerText: e?.houseStyle?.footerText,
1610
+ logo: e?.logo
1611
+ });
1612
+ }
1613
+ const qn = 36e5, Qn = 864e5, L = -1 / 0, ma = (e) => e.score > L, J = {
1596
1614
  urgent: 40,
1597
1615
  high: 25,
1598
1616
  normal: 10,
1599
1617
  low: 0
1600
1618
  };
1601
- function fa(e) {
1619
+ function ha(e) {
1602
1620
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1603
1621
  }
1604
- const Qn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Ot = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1605
- function Zn(e, t) {
1606
- return !!(e && Qn.test(e) || t && Ot.test(t));
1622
+ const Zn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, Ot = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
1623
+ function Jn(e, t) {
1624
+ return !!(e && Zn.test(e) || t && Ot.test(t));
1607
1625
  }
1608
- const Jn = 3, er = 600;
1609
- function ma(e, t) {
1610
- return e >= Jn || t >= er;
1626
+ const er = 3, tr = 600;
1627
+ function ga(e, t) {
1628
+ return e >= er || t >= tr;
1611
1629
  }
1612
- const tr = [
1630
+ const nr = [
1613
1631
  "list-unsubscribe",
1614
1632
  "list-unsubscribe-post",
1615
1633
  "list-id",
@@ -1619,89 +1637,89 @@ const tr = [
1619
1637
  "feedback-id",
1620
1638
  "x-mailer"
1621
1639
  ];
1622
- function ha(e) {
1640
+ function ya(e) {
1623
1641
  const t = {};
1624
1642
  for (const n of e) {
1625
1643
  const r = n.name?.toLowerCase();
1626
- r && n.value !== void 0 && tr.includes(r) && (t[r] = n.value);
1644
+ r && n.value !== void 0 && nr.includes(r) && (t[r] = n.value);
1627
1645
  }
1628
1646
  return t;
1629
1647
  }
1630
- const nr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, rr = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1631
- function ga(e) {
1648
+ const rr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, or = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1649
+ function ba(e) {
1632
1650
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1633
- if (r && r !== "no" || t["x-auto-response-suppress"] || n && nr.test(n))
1651
+ if (r && r !== "no" || t["x-auto-response-suppress"] || n && rr.test(n))
1634
1652
  return "automated";
1635
1653
  const o = t.precedence?.toLowerCase();
1636
- if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && Ot.test(e.body) || n && rr.test(n))
1654
+ if (t["list-unsubscribe"] || t["list-unsubscribe-post"] || t["list-id"] || o === "bulk" || o === "list" || e.body && Ot.test(e.body) || n && or.test(n))
1637
1655
  return "marketing";
1638
1656
  }
1639
- function or(e, t) {
1657
+ function sr(e, t) {
1640
1658
  return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
1641
1659
  }
1642
- const ir = ["open"], sr = 1e3, ar = {
1660
+ const ir = ["open"], ar = 1e3, cr = {
1643
1661
  urgent: 1,
1644
1662
  high: 4,
1645
1663
  normal: 8,
1646
1664
  low: 24
1647
- }, cr = 72;
1648
- function lr(e) {
1665
+ }, lr = 72;
1666
+ function ur(e) {
1649
1667
  return e.lastActivityAt ?? (e.createdAt ? new Date(gn(e)).getTime() : 0);
1650
1668
  }
1651
- function ur(e, t) {
1652
- return dr(t.remindersById?.[e.id], e, t.now);
1669
+ function dr(e, t) {
1670
+ return pr(t.remindersById?.[e.id], e, t.now);
1653
1671
  }
1654
- function dr(e, t, n) {
1672
+ function pr(e, t, n) {
1655
1673
  return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1656
1674
  }
1657
1675
  const xt = (e) => un(e) === "outbound_message", Nt = (e) => ir.includes(e);
1658
- function ve(e, t) {
1659
- return Math.max(0, (t - lr(e)) / Yn);
1676
+ function Me(e, t) {
1677
+ return Math.max(0, (t - ur(e)) / qn);
1660
1678
  }
1661
- function pr(e, t) {
1679
+ function fr(e, t) {
1662
1680
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1663
- return typeof n == "number" && n > 0 ? n : ar[e.priority ?? "normal"];
1681
+ return typeof n == "number" && n > 0 ? n : cr[e.priority ?? "normal"];
1664
1682
  }
1665
- function ya(e) {
1683
+ function _a(e) {
1666
1684
  const t = {};
1667
1685
  for (const n of e)
1668
1686
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1669
1687
  return t;
1670
1688
  }
1671
- function ba(e, t, n) {
1672
- return !Nt(e.status) || e.firstResponseAt ? !1 : ve(e, t) > pr(e, n);
1689
+ function Aa(e, t, n) {
1690
+ return !Nt(e.status) || e.firstResponseAt ? !1 : Me(e, t) > fr(e, n);
1673
1691
  }
1674
- function fr(e, t) {
1692
+ function mr(e, t) {
1675
1693
  const n = e.lastActivityPreview;
1676
- return n?.direction !== "outbound" || !xt(n.type) ? !1 : ve(e, t) < cr;
1694
+ return n?.direction !== "outbound" || !xt(n.type) ? !1 : Me(e, t) < lr;
1677
1695
  }
1678
- function Aa(e, t) {
1696
+ function Sa(e, t) {
1679
1697
  if (!Nt(e.status)) return { score: L, reasons: [] };
1680
1698
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: L, reasons: [] };
1681
- if (fr(e, t.now)) return { score: L, reasons: [] };
1682
- if (ur(e, t)) return { score: L, reasons: [] };
1699
+ if (mr(e, t.now)) return { score: L, reasons: [] };
1700
+ if (dr(e, t)) return { score: L, reasons: [] };
1683
1701
  let n = 0;
1684
1702
  const r = [], o = e.priority ?? "normal";
1685
- J[o] > 0 && (n += J[o], r.push(`priority:${o}`)), or(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1686
- const i = ve(e, t.now);
1687
- if (i > 0) {
1688
- const c = Math.min(i * 2, 30);
1689
- n += c, i >= 1 && r.push(`waiting:${Math.round(i)}h`);
1703
+ J[o] > 0 && (n += J[o], r.push(`priority:${o}`)), sr(e, t.userId) && (n += 20, r.push("unseen")), e.assignedUserId && e.assignedUserId === t.userId && (n += 15, r.push("assigned-to-you"));
1704
+ const s = Me(e, t.now);
1705
+ if (s > 0) {
1706
+ const u = Math.min(s * 2, 30);
1707
+ n += u, s >= 1 && r.push(`waiting:${Math.round(s)}h`);
1690
1708
  }
1691
- const s = e.lastActivityPreview;
1692
- return s?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), s?.direction === "outbound" && xt(s.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((c) => c === "marketing" || c === "automated") || Zn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= sr, r.push("bulk")), { score: n, reasons: r };
1709
+ const i = e.lastActivityPreview;
1710
+ return i?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), i?.direction === "outbound" && xt(i.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((u) => u === "marketing" || u === "automated") || Jn(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= ar, r.push("bulk")), { score: n, reasons: r };
1693
1711
  }
1694
- const _a = (e) => !!e.assignedUserId || !!e.assignedInboxId, Ea = (e) => e.status === "closed", Sa = (e) => ({
1712
+ const Ea = (e) => !!e.assignedUserId || !!e.assignedInboxId, Ia = (e) => e.status === "closed", Ta = (e) => ({
1695
1713
  urgent: 10,
1696
1714
  high: 5,
1697
1715
  normal: 2,
1698
1716
  low: 1
1699
- })[e.priority] || 0, Ia = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1700
- function Ta(e, t) {
1717
+ })[e.priority] || 0, wa = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1718
+ function ka(e, t) {
1701
1719
  const n = e.labels ?? [];
1702
1720
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1703
1721
  }
1704
- function wa(e, t, n) {
1722
+ function va(e, t, n) {
1705
1723
  const r = e.translations ?? [];
1706
1724
  return r.find((o) => o.locale === t) ?? (n ? r.find((o) => o.locale === n) : void 0) ?? { locale: t };
1707
1725
  }
@@ -1724,15 +1742,15 @@ function Rt(e) {
1724
1742
  const t = (e ?? "").toLowerCase();
1725
1743
  return Ze.find((n) => n.code === t) ?? Ze.find((n) => n.code === t.split("-")[0]);
1726
1744
  }
1727
- function ka(e) {
1745
+ function Ma(e) {
1728
1746
  return Rt(e)?.label ?? e;
1729
1747
  }
1730
- function Ma(e) {
1748
+ function Ca(e) {
1731
1749
  const t = Rt(e);
1732
1750
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1733
1751
  }
1734
1752
  const Dt = 3;
1735
- function mr(e, t) {
1753
+ function hr(e, t) {
1736
1754
  const n = /* @__PURE__ */ new Set();
1737
1755
  let r = 1, o = t.get(e)?.parentId;
1738
1756
  for (; o; ) {
@@ -1741,15 +1759,15 @@ function mr(e, t) {
1741
1759
  }
1742
1760
  return r;
1743
1761
  }
1744
- function va(e, t, n) {
1762
+ function Oa(e, t, n) {
1745
1763
  if (!e) return !0;
1746
1764
  if (e === t) return !1;
1747
- const r = new Map(n.map((s) => [s.id, s]));
1748
- if (!r.has(e) || t && hr(e, t, r)) return !1;
1749
- const o = mr(e, r), i = t ? $t(t, n) : 1;
1750
- return o + i <= Dt;
1765
+ const r = new Map(n.map((i) => [i.id, i]));
1766
+ if (!r.has(e) || t && gr(e, t, r)) return !1;
1767
+ const o = hr(e, r), s = t ? $t(t, n) : 1;
1768
+ return o + s <= Dt;
1751
1769
  }
1752
- function hr(e, t, n) {
1770
+ function gr(e, t, n) {
1753
1771
  const r = /* @__PURE__ */ new Set();
1754
1772
  let o = n.get(e)?.parentId;
1755
1773
  for (; o; ) {
@@ -1765,17 +1783,17 @@ function $t(e, t, n = /* @__PURE__ */ new Set()) {
1765
1783
  const r = t.filter((o) => o.parentId === e);
1766
1784
  return r.length ? 1 + Math.max(...r.map((o) => $t(o.id, t, n))) : 1;
1767
1785
  }
1768
- const gr = "en";
1769
- function yr(e) {
1770
- return e.defaultLocale || e.locale || gr;
1786
+ const yr = "en";
1787
+ function br(e) {
1788
+ return e.defaultLocale || e.locale || yr;
1771
1789
  }
1772
- function Ca(e) {
1790
+ function xa(e) {
1773
1791
  const t = /* @__PURE__ */ new Set(), n = [];
1774
- for (const r of [yr(e), ...e.locales ?? []])
1792
+ for (const r of [br(e), ...e.locales ?? []])
1775
1793
  !r || t.has(r) || (t.add(r), n.push(r));
1776
1794
  return n;
1777
1795
  }
1778
- function Oa(e, t, n) {
1796
+ function Na(e, t, n) {
1779
1797
  const r = e.translations ?? [];
1780
1798
  return r.find((o) => o.locale === t)?.name ?? (n ? r.find((o) => o.locale === n)?.name : void 0) ?? e.name;
1781
1799
  }
@@ -1796,7 +1814,7 @@ function et(e) {
1796
1814
  }
1797
1815
  return null;
1798
1816
  }
1799
- function br(e, t) {
1817
+ function _r(e, t) {
1800
1818
  switch (e.kind) {
1801
1819
  case "org":
1802
1820
  return !0;
@@ -1806,29 +1824,29 @@ function br(e, t) {
1806
1824
  return e.userId === t.userId;
1807
1825
  }
1808
1826
  }
1809
- function xa(e, t) {
1810
- return e.filter((n) => n.enabled && br(n.ownerScope, t));
1827
+ function Ra(e, t) {
1828
+ return e.filter((n) => n.enabled && _r(n.ownerScope, t));
1811
1829
  }
1812
- function Na(e) {
1830
+ function Da(e) {
1813
1831
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1814
1832
  }
1815
- function Ra(e) {
1833
+ function $a(e) {
1816
1834
  return `mcp__${e}__`;
1817
1835
  }
1818
- const Da = 1e3, $a = 2e3, La = 500, Pa = 12e3, Ka = 4e3, Ar = ["contact", "company", "work_item"];
1819
- function Ua(e) {
1836
+ const La = 1e3, Pa = 2e3, Ka = 500, Ua = 12e3, Fa = 4e3, Ar = ["contact", "company", "work_item"];
1837
+ function Ba(e) {
1820
1838
  if (!e) return !1;
1821
1839
  const t = e.slice(0, e.indexOf(":"));
1822
1840
  return Ar.includes(t);
1823
1841
  }
1824
- const Fa = [
1842
+ const ja = [
1825
1843
  { key: "high", label: "tax_high", percent: 21, kind: "standard" },
1826
1844
  { key: "low", label: "tax_low", percent: 9, kind: "reduced" },
1827
1845
  { key: "zero", label: "tax_zero", percent: 0, kind: "zero" },
1828
1846
  { key: "reverse_charge", label: "tax_reverse_charge", percent: 0, kind: "reverse_charge" },
1829
1847
  { key: "exempt", label: "tax_exempt", percent: 0, kind: "exempt" }
1830
1848
  ];
1831
- function _r(e, t) {
1849
+ function Sr(e, t) {
1832
1850
  return t.find((n) => n.key === e) ?? {
1833
1851
  key: e,
1834
1852
  label: e,
@@ -1841,39 +1859,39 @@ function Er(e) {
1841
1859
  const t = 1 - (e.discountPercent ?? 0) / 100;
1842
1860
  return G(e.quantity * e.unitPriceCents * t);
1843
1861
  }
1844
- function Ba(e, t, n) {
1845
- const r = e.map((u) => ({ ...u, netCents: Er(u), taxCents: 0 })), o = /* @__PURE__ */ new Map();
1846
- for (let u = 0; u < r.length; u++) {
1847
- if (r[u].kind !== "product" || r[u].optional) continue;
1848
- const d = n ?? r[u].taxRateKey, l = o.get(d);
1849
- l ? l.push(u) : o.set(d, [u]);
1862
+ function Ha(e, t, n) {
1863
+ const r = e.map((l) => ({ ...l, netCents: Er(l), taxCents: 0 })), o = /* @__PURE__ */ new Map();
1864
+ for (let l = 0; l < r.length; l++) {
1865
+ if (r[l].kind !== "product" || r[l].optional) continue;
1866
+ const d = n ?? r[l].taxRateKey, c = o.get(d);
1867
+ c ? c.push(l) : o.set(d, [l]);
1850
1868
  }
1851
- const i = [];
1852
- let s = 0, a = 0;
1853
- for (const [u, d] of o) {
1854
- const l = _r(u, t), p = d.reduce((m, S) => m + r[S].netCents, 0), f = G(p * l.percent / 100), y = Fn(
1869
+ const s = [];
1870
+ let i = 0, a = 0;
1871
+ for (const [l, d] of o) {
1872
+ const c = Sr(l, t), p = d.reduce((m, E) => m + r[E].netCents, 0), f = G(p * c.percent / 100), y = Fn(
1855
1873
  f,
1856
1874
  d.map((m) => r[m].netCents)
1857
1875
  );
1858
1876
  for (let m = 0; m < d.length; m++) r[d[m]].taxCents = y[m];
1859
- i.push({ taxRateKey: u, netCents: p, taxCents: f }), s += p, a += f;
1877
+ s.push({ taxRateKey: l, netCents: p, taxCents: f }), i += p, a += f;
1860
1878
  }
1861
- const c = r.reduce(
1862
- (u, d) => d.costPriceCents == null || d.optional ? u : u + G(d.costPriceCents * d.quantity),
1879
+ const u = r.reduce(
1880
+ (l, d) => d.costPriceCents == null || d.optional ? l : l + G(d.costPriceCents * d.quantity),
1863
1881
  0
1864
1882
  );
1865
1883
  return {
1866
1884
  lines: r,
1867
1885
  totals: {
1868
- netCents: s,
1886
+ netCents: i,
1869
1887
  taxCents: a,
1870
- grossCents: s + a,
1871
- costCents: c,
1872
- byRate: i
1888
+ grossCents: i + a,
1889
+ costCents: u,
1890
+ byRate: s
1873
1891
  }
1874
1892
  };
1875
1893
  }
1876
- const ja = "onboarding-source", Ha = ["support", "billing", "availability", "sales", "onboarding"], Ga = ["keep", "replace"], Ce = [
1894
+ const Ga = "onboarding-source", Wa = ["support", "billing", "availability", "sales", "onboarding"], Va = ["keep", "replace"], Ce = [
1877
1895
  {
1878
1896
  key: "shift",
1879
1897
  label: "kind_shift",
@@ -1947,7 +1965,7 @@ const ja = "onboarding-source", Ha = ["support", "billing", "availability", "sal
1947
1965
  absent: !0,
1948
1966
  icon: "party-popper"
1949
1967
  }
1950
- ], Sr = {
1968
+ ], Ir = {
1951
1969
  key: "unknown",
1952
1970
  label: "kind_unknown",
1953
1971
  capacity: !1,
@@ -1955,7 +1973,7 @@ const ja = "onboarding-source", Ha = ["support", "billing", "availability", "sal
1955
1973
  absent: !1
1956
1974
  };
1957
1975
  function N(e, t = Ce) {
1958
- return t.find((n) => n.key === e) ?? { ...Sr, key: e };
1976
+ return t.find((n) => n.key === e) ?? { ...Ir, key: e };
1959
1977
  }
1960
1978
  function W(e) {
1961
1979
  return e === "published" || e === "approved";
@@ -1965,18 +1983,18 @@ function Lt(e, t, n = Ce) {
1965
1983
  const r = N(e.kindKey, n);
1966
1984
  return r.absent ? !1 : r.productive || r.capacity;
1967
1985
  }
1968
- function Wa(e, t = Ce) {
1986
+ function za(e, t = Ce) {
1969
1987
  if (!e.userId || !W(e.status)) return !1;
1970
1988
  const n = N(e.kindKey, t);
1971
1989
  return n.capacity || n.productive || n.absent;
1972
1990
  }
1973
- const Ir = 864e5;
1974
- function Tr(e, t) {
1975
- return Math.round((t - e) / Ir);
1991
+ const Tr = 864e5;
1992
+ function wr(e, t) {
1993
+ return Math.round((t - e) / Tr);
1976
1994
  }
1977
1995
  function Pt(e, t) {
1978
1996
  const n = e.cycleMinutes.length;
1979
- return n === 0 ? 0 : (Tr(e.anchor, t) % n + n) % n;
1997
+ return n === 0 ? 0 : (wr(e.anchor, t) % n + n) % n;
1980
1998
  }
1981
1999
  function Kt(e, t) {
1982
2000
  return e.effectiveFrom !== void 0 && t < e.effectiveFrom ? 0 : e.cycleMinutes[Pt(e, t)] ?? 0;
@@ -1987,18 +2005,18 @@ function Ut(e, t) {
1987
2005
  function Ft(e, t, n, r) {
1988
2006
  const o = e.filter(
1989
2007
  (a) => a.effectiveFrom === void 0 || a.effectiveFrom <= r
1990
- ), i = (a) => a.sort((c, u) => (u.effectiveFrom ?? 0) - (c.effectiveFrom ?? 0))[0], s = i(o.filter((a) => a.userId === t));
1991
- return s || i(
2008
+ ), s = (a) => a.sort((u, l) => (l.effectiveFrom ?? 0) - (u.effectiveFrom ?? 0))[0], i = s(o.filter((a) => a.userId === t));
2009
+ return i || s(
1992
2010
  o.filter((a) => !a.userId && a.teamId && n.includes(a.teamId))
1993
2011
  );
1994
2012
  }
1995
- function wr(e, t, n) {
2013
+ function kr(e, t, n) {
1996
2014
  return e.filter(
1997
2015
  (r) => r.userId === t && (r.effectiveFrom === void 0 || r.effectiveFrom <= n)
1998
2016
  ).sort((r, o) => (o.effectiveFrom ?? 0) - (r.effectiveFrom ?? 0))[0];
1999
2017
  }
2000
2018
  const he = 864e5;
2001
- function kr(e) {
2019
+ function vr(e) {
2002
2020
  const t = Math.max(1, Math.round((e.to - e.from) / he));
2003
2021
  return Array.from({ length: t }, (n, r) => e.from + r * he);
2004
2022
  }
@@ -2007,242 +2025,242 @@ function ge(e, t, n, r) {
2007
2025
  return o > 0 ? o / 1e3 : 0;
2008
2026
  }
2009
2027
  const tt = { interval: 0, day: 1, week: 2 };
2010
- function Va(e, t) {
2011
- const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
2012
- (l) => l.userId && W(l.status) && N(l.kindKey).capacity
2013
- ), s = n.filter(
2014
- (l) => l.userId && W(l.status) && N(l.kindKey).absent
2028
+ function Xa(e, t) {
2029
+ const { entries: n, patterns: r = [], terms: o = [] } = t, s = n.filter(
2030
+ (c) => c.userId && W(c.status) && N(c.kindKey).capacity
2031
+ ), i = n.filter(
2032
+ (c) => c.userId && W(c.status) && N(c.kindKey).absent
2015
2033
  ), a = t.userIds ?? [
2016
2034
  .../* @__PURE__ */ new Set([
2017
- ...i.map((l) => l.userId),
2018
- ...r.map((l) => l.userId),
2019
- ...o.map((l) => l.userId)
2035
+ ...s.map((c) => c.userId),
2036
+ ...r.map((c) => c.userId),
2037
+ ...o.map((c) => c.userId)
2020
2038
  ])
2021
- ].filter((l) => !!l), c = {};
2022
- let u = "interval";
2023
- const d = (l) => {
2024
- tt[l] > tt[u] && (u = l);
2039
+ ].filter((c) => !!c), u = {};
2040
+ let l = "interval";
2041
+ const d = (c) => {
2042
+ tt[c] > tt[l] && (l = c);
2025
2043
  };
2026
- for (const l of a) {
2027
- const p = t.teamIdsOf?.(l) ?? [];
2044
+ for (const c of a) {
2045
+ const p = t.teamIdsOf?.(c) ?? [];
2028
2046
  let f = 0, y = 0, m = 0;
2029
- for (const h of kr(e)) {
2030
- const E = Math.max(h, e.from), x = Math.min(h + he, e.to);
2047
+ for (const h of vr(e)) {
2048
+ const S = Math.max(h, e.from), x = Math.min(h + he, e.to);
2031
2049
  m++;
2032
- const C = i.filter((k) => k.userId === l).reduce((k, $e) => k + ge($e.start, $e.end, E, x), 0);
2050
+ const C = s.filter((k) => k.userId === c).reduce((k, $e) => k + ge($e.start, $e.end, S, x), 0);
2033
2051
  if (C > 0) {
2034
2052
  f += C;
2035
2053
  continue;
2036
2054
  }
2037
- const M = Ft(r, l, p, h), O = M ? Kt(M, h) : 0;
2038
- if (M && O > 0) {
2039
- f += O * 60, d(Ut(M, h) ? "interval" : "day");
2055
+ const v = Ft(r, c, p, h), O = v ? Kt(v, h) : 0;
2056
+ if (v && O > 0) {
2057
+ f += O * 60, d(Ut(v, h) ? "interval" : "day");
2040
2058
  continue;
2041
2059
  }
2042
- M || y++;
2060
+ v || y++;
2043
2061
  }
2044
2062
  if (y > 0) {
2045
- const h = wr(o, l, e.from);
2063
+ const h = kr(o, c, e.from);
2046
2064
  h && (f += h.weeklyMinutes * 60 * (y / 7), d("week"));
2047
2065
  }
2048
- const S = s.filter((h) => h.userId === l).reduce(
2049
- (h, E) => h + ge(E.start, E.end, e.from, e.to),
2066
+ const E = i.filter((h) => h.userId === c).reduce(
2067
+ (h, S) => h + ge(S.start, S.end, e.from, e.to),
2050
2068
  0
2051
- ), g = Math.max(0, f - S);
2052
- (g > 0 || m > 0) && (c[l] = g);
2069
+ ), g = Math.max(0, f - E);
2070
+ (g > 0 || m > 0) && (u[c] = g);
2053
2071
  }
2054
2072
  return {
2055
- seconds: Object.values(c).reduce((l, p) => l + p, 0),
2056
- precision: u,
2057
- byUser: c
2073
+ seconds: Object.values(u).reduce((c, p) => c + p, 0),
2074
+ precision: l,
2075
+ byUser: u
2058
2076
  };
2059
2077
  }
2060
- function za(e, t) {
2078
+ function Ya(e, t) {
2061
2079
  if (!e.some((a) => a.userId)) return [];
2062
2080
  const n = "", r = /* @__PURE__ */ new Map();
2063
2081
  for (const a of e) {
2064
- const c = a.userId ?? n;
2065
- r.set(c, (r.get(c) ?? 0) + a.seconds);
2082
+ const u = a.userId ?? n;
2083
+ r.set(u, (r.get(u) ?? 0) + a.seconds);
2066
2084
  }
2067
- const i = [.../* @__PURE__ */ new Set([
2085
+ const s = [.../* @__PURE__ */ new Set([
2068
2086
  ...Object.keys(t.byUser),
2069
2087
  ...[...r.keys()].filter((a) => a !== n)
2070
2088
  ])].map((a) => {
2071
- const c = r.get(a) ?? 0, u = t.byUser[a] ?? 0;
2089
+ const u = r.get(a) ?? 0, l = t.byUser[a] ?? 0;
2072
2090
  return {
2073
2091
  userId: a,
2074
- requiredSeconds: c,
2075
- capacitySeconds: u,
2076
- netSeconds: u - c
2092
+ requiredSeconds: u,
2093
+ capacitySeconds: l,
2094
+ netSeconds: l - u
2077
2095
  };
2078
2096
  });
2079
- i.sort((a, c) => a.netSeconds - c.netSeconds);
2080
- const s = r.get(n) ?? 0;
2081
- return s > 0 && i.push({ requiredSeconds: s, capacitySeconds: 0, netSeconds: -s }), i;
2097
+ s.sort((a, u) => a.netSeconds - u.netSeconds);
2098
+ const i = r.get(n) ?? 0;
2099
+ return i > 0 && s.push({ requiredSeconds: i, capacitySeconds: 0, netSeconds: -i }), s;
2082
2100
  }
2083
- function Xa(e, t, n, r) {
2101
+ function qa(e, t, n, r) {
2084
2102
  const o = e.filter(
2085
- (s) => s.userId && W(s.status) && !N(s.kindKey).absent
2086
- ), i = Object.entries(r.byUser).map(
2087
- ([s, a]) => {
2088
- let c = 0, u = 0;
2103
+ (i) => i.userId && W(i.status) && !N(i.kindKey).absent
2104
+ ), s = Object.entries(r.byUser).map(
2105
+ ([i, a]) => {
2106
+ let u = 0, l = 0;
2089
2107
  for (const d of o) {
2090
- if (d.userId !== s || N(d.kindKey).capacity && !d.workstreamId) continue;
2091
- const l = ge(d.start, d.end, n.from, n.to);
2092
- l <= 0 || (Lt(d, t) ? c += l : u += l);
2108
+ if (d.userId !== i || N(d.kindKey).capacity && !d.workstreamId) continue;
2109
+ const c = ge(d.start, d.end, n.from, n.to);
2110
+ c <= 0 || (Lt(d, t) ? u += c : l += c);
2093
2111
  }
2094
2112
  return {
2095
- userId: s,
2113
+ userId: i,
2096
2114
  capacitySeconds: a,
2097
- onThisSeconds: c,
2098
- elsewhereSeconds: u,
2099
- freeSeconds: Math.max(0, a - c - u)
2115
+ onThisSeconds: u,
2116
+ elsewhereSeconds: l,
2117
+ freeSeconds: Math.max(0, a - u - l)
2100
2118
  };
2101
2119
  }
2102
2120
  );
2103
- return i.sort((s, a) => a.freeSeconds - s.freeSeconds), i;
2121
+ return s.sort((i, a) => a.freeSeconds - i.freeSeconds), s;
2104
2122
  }
2105
- const Ya = "demand-source", nt = 1e3;
2123
+ const Qa = "demand-source", nt = 1e3;
2106
2124
  function Mr(e, t) {
2107
2125
  let n = 1;
2108
2126
  for (let r = 1; r <= e; r++)
2109
2127
  n = t * n / (r + t * n);
2110
2128
  return n;
2111
2129
  }
2112
- function vr(e, t) {
2130
+ function Cr(e, t) {
2113
2131
  if (e <= 0) return 1;
2114
2132
  if (t <= 0) return 0;
2115
2133
  if (e <= t) return 1;
2116
2134
  const n = Mr(e, t), r = t / e;
2117
2135
  return n / (1 - r * (1 - n));
2118
2136
  }
2119
- function Cr(e, t, n, r) {
2120
- return r <= 0 ? 1 : e <= t ? 0 : 1 - vr(e, t) * Math.exp(-(e - t) * n / r);
2137
+ function Or(e, t, n, r) {
2138
+ return r <= 0 ? 1 : e <= t ? 0 : 1 - Cr(e, t) * Math.exp(-(e - t) * n / r);
2121
2139
  }
2122
- function Or(e, t, n) {
2140
+ function xr(e, t, n) {
2123
2141
  return n <= 0 ? 0 : e * t / n;
2124
2142
  }
2125
- function xr(e, t, n, r) {
2143
+ function Nr(e, t, n, r) {
2126
2144
  if (e <= 0 || t <= 0) return 0;
2127
- const o = Or(e, t, n);
2145
+ const o = xr(e, t, n);
2128
2146
  if (o <= 0) return 0;
2129
- const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2147
+ const s = r.serviceLevelPercent / 100, i = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2130
2148
  for (let a = Math.max(1, Math.ceil(o)); a <= nt; a++)
2131
- if (!(a <= o) && !(Cr(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
2149
+ if (!(a <= o) && !(Or(a, o, r.targetSeconds, t) < s) && !(i && o / a > i))
2132
2150
  return a;
2133
2151
  return nt;
2134
2152
  }
2135
- const Nr = 36e5, Rr = 864e5;
2136
- function Dr(e) {
2137
- return e === "day" ? Rr : Nr;
2153
+ const Rr = 36e5, Dr = 864e5;
2154
+ function $r(e) {
2155
+ return e === "day" ? Dr : Rr;
2138
2156
  }
2139
- function qa(e, t) {
2157
+ function Za(e, t) {
2140
2158
  return e.start < t.end && t.start < e.end;
2141
2159
  }
2142
2160
  function ce(e, t, n) {
2143
2161
  const r = Math.min(e.end, n) - Math.max(e.start, t);
2144
2162
  return r > 0 ? r / 1e3 : 0;
2145
2163
  }
2146
- function $r(e, t, n) {
2164
+ function Lr(e, t, n) {
2147
2165
  const r = e.handleSeconds ?? 0, o = e.seconds ?? (e.volume !== void 0 ? e.volume * r : 0);
2148
2166
  if (o <= 0 && !e.volume) return { seconds: 0, headcount: 0 };
2149
- const i = (t.unplannedLossPercent ?? 0) / 100, s = i > 0 && i < 1 ? 1 / (1 - i) : 1;
2167
+ const s = (t.unplannedLossPercent ?? 0) / 100, i = s > 0 && s < 1 ? 1 / (1 - s) : 1;
2150
2168
  if (t.model === "queue" && e.volume !== void 0 && r > 0) {
2151
- const a = xr(e.volume, r, n, t);
2152
- return { seconds: o, headcount: a * s };
2169
+ const a = Nr(e.volume, r, n, t);
2170
+ return { seconds: o, headcount: a * i };
2153
2171
  }
2154
- return { seconds: o, headcount: o / n * s };
2172
+ return { seconds: o, headcount: o / n * i };
2155
2173
  }
2156
- function Qa(e) {
2157
- const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = Dr(s), c = a / 1e3, u = e.kinds, d = t.filter((m) => W(m.status)), l = d.filter((m) => Lt(m, n, u)), p = d.filter((m) => N(m.kindKey, u).capacity), f = d.filter((m) => N(m.kindKey, u).absent), y = [];
2158
- for (let m = H(i.from, s); m < i.to; m += a) {
2159
- const S = m + a, g = j(m, s);
2174
+ function Ja(e) {
2175
+ const { entries: t, workstreamId: n, staffing: r, demand: o, range: s } = e, i = e.grain ?? "hour", a = $r(i), u = a / 1e3, l = e.kinds, d = t.filter((m) => W(m.status)), c = d.filter((m) => Lt(m, n, l)), p = d.filter((m) => N(m.kindKey, l).capacity), f = d.filter((m) => N(m.kindKey, l).absent), y = [];
2176
+ for (let m = H(s.from, i); m < s.to; m += a) {
2177
+ const E = m + a, g = j(m, i);
2160
2178
  let h = 0;
2161
- for (const k of l) h += ce(k, m, S);
2162
- let E = 0;
2163
- for (const k of p) E += ce(k, m, S);
2179
+ for (const k of c) h += ce(k, m, E);
2180
+ let S = 0;
2181
+ for (const k of p) S += ce(k, m, E);
2164
2182
  let x = 0;
2165
- for (const k of f) x += ce(k, m, S);
2166
- const C = o?.[g] ?? {}, M = $r(C, r, c), O = h / c;
2183
+ for (const k of f) x += ce(k, m, E);
2184
+ const C = o?.[g] ?? {}, v = Lr(C, r, u), O = h / u;
2167
2185
  y.push({
2168
2186
  period: g,
2169
2187
  forecastVolume: C.volume,
2170
- requiredSeconds: M.seconds,
2171
- requiredHeadcount: M.headcount,
2188
+ requiredSeconds: v.seconds,
2189
+ requiredHeadcount: v.headcount,
2172
2190
  scheduledSeconds: h,
2173
2191
  scheduledHeadcount: O,
2174
- netHeadcount: O - M.headcount,
2175
- capacitySeconds: E,
2192
+ netHeadcount: O - v.headcount,
2193
+ capacitySeconds: S,
2176
2194
  absentSeconds: x
2177
2195
  });
2178
2196
  }
2179
2197
  return y;
2180
2198
  }
2181
- function Lr(e, t) {
2199
+ function Pr(e, t) {
2182
2200
  return e.workTypeKey ?? t?.defaultWorkTypeKey;
2183
2201
  }
2184
- function Za(e, t, n) {
2185
- const r = Lr(e, t);
2202
+ function ec(e, t, n) {
2203
+ const r = Pr(e, t);
2186
2204
  return r ? n.find((o) => o.key === r)?.defaultBillable ?? !1 : !1;
2187
2205
  }
2188
- function Ja(e) {
2206
+ function tc(e) {
2189
2207
  return e.filter(
2190
2208
  (t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
2191
2209
  );
2192
2210
  }
2193
- const Pr = 36e5, ye = 6048e5, Kr = 8, Ur = 0.5, Fr = 2;
2194
- function Br(e) {
2211
+ const Kr = 36e5, ye = 6048e5, Ur = 8, Fr = 0.5, Br = 2;
2212
+ function jr(e) {
2195
2213
  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;
2196
2214
  return Date.UTC(t, n - 1, r, o);
2197
2215
  }
2198
- function jr(e, t, n) {
2216
+ function Hr(e, t, n) {
2199
2217
  const r = [];
2200
- for (let i = 0; i < n; i++) {
2201
- const s = t - i * ye, a = s - ye;
2202
- let c = 0, u = !1;
2203
- for (const [d, l] of e)
2204
- d >= a && d < s && (c += l, u = !0);
2205
- u && r.push(c);
2218
+ for (let s = 0; s < n; s++) {
2219
+ const i = t - s * ye, a = i - ye;
2220
+ let u = 0, l = !1;
2221
+ for (const [d, c] of e)
2222
+ d >= a && d < i && (u += c, l = !0);
2223
+ l && r.push(u);
2206
2224
  }
2207
2225
  if (r.length < 2) return 1;
2208
- const o = r.reduce((i, s) => i + s, 0) / r.length;
2209
- return o <= 0 ? 1 : Math.min(Fr, Math.max(Ur, r[0] / o));
2226
+ const o = r.reduce((s, i) => s + i, 0) / r.length;
2227
+ return o <= 0 ? 1 : Math.min(Br, Math.max(Fr, r[0] / o));
2210
2228
  }
2211
- function Hr(e, t) {
2229
+ function Gr(e, t) {
2212
2230
  if (!e?.length) return;
2213
2231
  let n;
2214
2232
  for (const r of e)
2215
2233
  t >= r.from && t < r.to && (n = r);
2216
2234
  return n;
2217
2235
  }
2218
- function ec(e, t, n) {
2219
- const r = Math.max(1, n?.weeks ?? Kr), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
2220
- for (const c of e)
2221
- o.set(Br(c.period), c.value), i.add(c.period.slice(0, 10));
2222
- const s = jr(o, H(t.from, "hour"), r), a = [];
2223
- for (let c = H(t.from, "hour"); c < t.to; c += Pr) {
2224
- let u = 0, d = 0;
2236
+ function nc(e, t, n) {
2237
+ const r = Math.max(1, n?.weeks ?? Ur), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set();
2238
+ for (const u of e)
2239
+ o.set(jr(u.period), u.value), s.add(u.period.slice(0, 10));
2240
+ const i = Hr(o, H(t.from, "hour"), r), a = [];
2241
+ for (let u = H(t.from, "hour"); u < t.to; u += Kr) {
2242
+ let l = 0, d = 0;
2225
2243
  for (let f = 1; f <= r; f++) {
2226
- const y = c - f * ye, S = o.get(y) ?? (i.has(j(y, "day")) ? 0 : void 0);
2227
- if (S === void 0) continue;
2244
+ const y = u - f * ye, E = o.get(y) ?? (s.has(j(y, "day")) ? 0 : void 0);
2245
+ if (E === void 0) continue;
2228
2246
  const g = r - f + 1;
2229
- u += S * g, d += g;
2247
+ l += E * g, d += g;
2230
2248
  }
2231
- let l = d > 0 ? u / d * s : 0;
2232
- const p = Hr(n?.adjustments, c);
2233
- p?.absoluteVolume !== void 0 ? l = p.absoluteVolume : p?.factor !== void 0 && (l *= p.factor), a.push({ period: j(c, "hour"), volume: l });
2249
+ let c = d > 0 ? l / d * i : 0;
2250
+ const p = Gr(n?.adjustments, u);
2251
+ p?.absoluteVolume !== void 0 ? c = p.absoluteVolume : p?.factor !== void 0 && (c *= p.factor), a.push({ period: j(u, "hour"), volume: c });
2234
2252
  }
2235
2253
  return a;
2236
2254
  }
2237
- const Gr = "schedule_entry", Wr = "workstream";
2238
- function tc(e) {
2239
- return `${Gr}:${e}`;
2240
- }
2241
- function nc(e) {
2255
+ const Wr = "schedule_entry", Vr = "workstream";
2256
+ function rc(e) {
2242
2257
  return `${Wr}:${e}`;
2243
2258
  }
2259
+ function oc(e) {
2260
+ return `${Vr}:${e}`;
2261
+ }
2244
2262
  const be = 36e5, K = 864e5;
2245
- function Vr(e, t) {
2263
+ function zr(e, t) {
2246
2264
  const n = t === "day" ? K : be, r = [];
2247
2265
  for (let o = H(e.from, t); o < e.to; o += n) r.push(o);
2248
2266
  return r;
@@ -2255,50 +2273,50 @@ function le(e, t, n, r) {
2255
2273
  const o = Math.min(t, r) - Math.max(e, n);
2256
2274
  return o > 0 ? o / 1e3 : 0;
2257
2275
  }
2258
- function rc(e, t, n = {}) {
2259
- const r = n.grain ?? "hour", o = Vr(t, r), i = r === "day" ? K : be, s = new Map(o.map((l) => [l, 0])), a = e.filter((l) => l.userId && N(l.kindKey).capacity), c = n.userIds?.length ? new Set(n.userIds) : null, u = /* @__PURE__ */ new Set();
2260
- for (const l of a)
2261
- if (!(c && l.userId && !c.has(l.userId))) {
2276
+ function sc(e, t, n = {}) {
2277
+ const r = n.grain ?? "hour", o = zr(t, r), s = r === "day" ? K : be, i = new Map(o.map((c) => [c, 0])), a = e.filter((c) => c.userId && N(c.kindKey).capacity), u = n.userIds?.length ? new Set(n.userIds) : null, l = /* @__PURE__ */ new Set();
2278
+ for (const c of a)
2279
+ if (!(u && c.userId && !u.has(c.userId))) {
2262
2280
  for (const p of o) {
2263
- const f = le(l.start, l.end, p, p + i);
2264
- f > 0 && s.set(p, (s.get(p) ?? 0) + f);
2281
+ const f = le(c.start, c.end, p, p + s);
2282
+ f > 0 && i.set(p, (i.get(p) ?? 0) + f);
2265
2283
  }
2266
2284
  for (const p of rt(t))
2267
- le(l.start, l.end, p, p + K) > 0 && u.add(`${l.userId}:${p}`);
2285
+ le(c.start, c.end, p, p + K) > 0 && l.add(`${c.userId}:${p}`);
2268
2286
  }
2269
2287
  const d = n.userIds ?? [
2270
2288
  .../* @__PURE__ */ new Set([
2271
- ...a.map((l) => l.userId),
2272
- ...(n.patterns ?? []).map((l) => l.userId)
2289
+ ...a.map((c) => c.userId),
2290
+ ...(n.patterns ?? []).map((c) => c.userId)
2273
2291
  ])
2274
- ].filter((l) => !!l);
2292
+ ].filter((c) => !!c);
2275
2293
  if (n.patterns?.length)
2276
- for (const l of d) {
2277
- const p = n.teamIdsOf?.(l) ?? [];
2294
+ for (const c of d) {
2295
+ const p = n.teamIdsOf?.(c) ?? [];
2278
2296
  for (const f of rt(t)) {
2279
- if (u.has(`${l}:${f}`)) continue;
2280
- const y = Ft(n.patterns, l, p, f);
2297
+ if (l.has(`${c}:${f}`)) continue;
2298
+ const y = Ft(n.patterns, c, p, f);
2281
2299
  if (!y) continue;
2282
2300
  const m = Kt(y, f);
2283
2301
  if (m <= 0) continue;
2284
- const S = Ut(y, f);
2285
- if (S) {
2286
- const [E, x] = S.split(":").map(Number), C = f + E * be + (x ?? 0) * 6e4, M = C + m * 6e4;
2302
+ const E = Ut(y, f);
2303
+ if (E) {
2304
+ const [S, x] = E.split(":").map(Number), C = f + S * be + (x ?? 0) * 6e4, v = C + m * 6e4;
2287
2305
  for (const O of o) {
2288
- const k = le(C, M, O, O + i);
2289
- k > 0 && s.set(O, (s.get(O) ?? 0) + k);
2306
+ const k = le(C, v, O, O + s);
2307
+ k > 0 && i.set(O, (i.get(O) ?? 0) + k);
2290
2308
  }
2291
2309
  continue;
2292
2310
  }
2293
- const g = o.filter((E) => E >= f && E < f + K);
2311
+ const g = o.filter((S) => S >= f && S < f + K);
2294
2312
  if (!g.length) continue;
2295
2313
  const h = m * 60 / g.length;
2296
- for (const E of g) s.set(E, (s.get(E) ?? 0) + h);
2314
+ for (const S of g) i.set(S, (i.get(S) ?? 0) + h);
2297
2315
  }
2298
2316
  }
2299
- return o.map((l) => ({ period: j(l, r), weight: s.get(l) ?? 0 }));
2317
+ return o.map((c) => ({ period: j(c, r), weight: i.get(c) ?? 0 }));
2300
2318
  }
2301
- function zr(e, t) {
2319
+ function Xr(e, t) {
2302
2320
  if (e <= 0 || !t.length) return [];
2303
2321
  const n = t.reduce((r, o) => r + Math.max(0, o.weight), 0);
2304
2322
  if (n <= 0) {
@@ -2307,20 +2325,20 @@ function zr(e, t) {
2307
2325
  }
2308
2326
  return t.filter((r) => r.weight > 0).map((r) => ({ period: r.period, seconds: e * r.weight / n }));
2309
2327
  }
2310
- function oc(e, t, n) {
2328
+ function ic(e, t, n) {
2311
2329
  const r = /* @__PURE__ */ new Map();
2312
2330
  for (const o of e) {
2313
- const i = o.by ? t.filter((a) => n(a.period) < o.by) : t, s = i.length ? i : t;
2314
- for (const a of zr(o.seconds, s)) {
2315
- const c = `${a.period}|${o.userId ?? ""}`, u = r.get(c);
2316
- u ? u.seconds += a.seconds : r.set(c, { ...a, userId: o.userId });
2331
+ const s = o.by ? t.filter((a) => n(a.period) < o.by) : t, i = s.length ? s : t;
2332
+ for (const a of Xr(o.seconds, i)) {
2333
+ const u = `${a.period}|${o.userId ?? ""}`, l = r.get(u);
2334
+ l ? l.seconds += a.seconds : r.set(u, { ...a, userId: o.userId });
2317
2335
  }
2318
2336
  }
2319
2337
  return [...r.values()].sort(
2320
- (o, i) => o.period.localeCompare(i.period) || (o.userId ?? "").localeCompare(i.userId ?? "")
2338
+ (o, s) => o.period.localeCompare(s.period) || (o.userId ?? "").localeCompare(s.userId ?? "")
2321
2339
  );
2322
2340
  }
2323
- function Xr(e) {
2341
+ function Yr(e) {
2324
2342
  switch (e.kind) {
2325
2343
  case "user":
2326
2344
  return `user:${e.userId}`;
@@ -2330,7 +2348,7 @@ function Xr(e) {
2330
2348
  return "org";
2331
2349
  }
2332
2350
  }
2333
- function ic(e) {
2351
+ function ac(e) {
2334
2352
  if (typeof e != "string") return;
2335
2353
  const t = e.trim();
2336
2354
  if (t === "org") return { kind: "org" };
@@ -2342,10 +2360,10 @@ function ic(e) {
2342
2360
  if (r === "team") return { kind: "team", teamId: o };
2343
2361
  }
2344
2362
  }
2345
- function Yr(e) {
2346
- return Xr(e);
2347
- }
2348
2363
  function qr(e) {
2364
+ return Yr(e);
2365
+ }
2366
+ function Qr(e) {
2349
2367
  switch (e.kind) {
2350
2368
  case "personal":
2351
2369
  return { kind: "user", userId: e.userId };
@@ -2355,14 +2373,14 @@ function qr(e) {
2355
2373
  return { kind: "org" };
2356
2374
  }
2357
2375
  }
2358
- const Qr = qr;
2359
- function sc(e) {
2360
- return e.agentId ? { kind: "user", userId: e.agentId } : Qr(e.ownerScope);
2376
+ const Zr = Qr;
2377
+ function cc(e) {
2378
+ return e.agentId ? { kind: "user", userId: e.agentId } : Zr(e.ownerScope);
2361
2379
  }
2362
- function ac(e) {
2363
- return Yr(e);
2380
+ function lc(e) {
2381
+ return qr(e);
2364
2382
  }
2365
- function cc(e, t) {
2383
+ function uc(e, t) {
2366
2384
  if (!t) return;
2367
2385
  let n = e;
2368
2386
  for (const r of t.split(".")) {
@@ -2371,24 +2389,24 @@ function cc(e, t) {
2371
2389
  }
2372
2390
  return n;
2373
2391
  }
2374
- function lc(e, t) {
2392
+ function dc(e, t) {
2375
2393
  return e.targets.find((n) => n.activityTypes.includes(t));
2376
2394
  }
2377
- function uc(e, t) {
2395
+ function pc(e, t) {
2378
2396
  if (t)
2379
2397
  return e.targets.find((n) => n.id === t);
2380
2398
  }
2381
- function Zr(e) {
2399
+ function Jr(e) {
2382
2400
  return e?.kind === "assignment";
2383
2401
  }
2384
- function dc(e) {
2385
- const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
2386
- return Zr(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";
2402
+ function fc(e) {
2403
+ const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: s, authorUserId: i } = e;
2404
+ return Jr(t) ? n ? r ? r.activityTypes.includes(o) ? s ? s !== n ? "assigned to someone else" : i && i === 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";
2387
2405
  }
2388
- function pc(e) {
2406
+ function mc(e) {
2389
2407
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
2390
2408
  }
2391
- const fc = [
2409
+ const hc = [
2392
2410
  { name: "text", type: "string" },
2393
2411
  { name: "subject", type: "string" },
2394
2412
  { name: "from", type: "string" },
@@ -2428,7 +2446,7 @@ const fc = [
2428
2446
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
2429
2447
  // the trigger filter runs — like contactId/companyId above.
2430
2448
  { name: "assigneeUserId", type: "string" }
2431
- ], mc = {
2449
+ ], gc = {
2432
2450
  topics: [
2433
2451
  { name: "topicId", type: "string" },
2434
2452
  { name: "topic", type: "string" },
@@ -2442,58 +2460,58 @@ const fc = [
2442
2460
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
2443
2461
  extract: []
2444
2462
  };
2445
- function Jr(e) {
2463
+ function eo(e) {
2446
2464
  return `${e.type}:${e.id}`;
2447
2465
  }
2448
- const eo = "interaction";
2449
- function to(e) {
2450
- return e?.type === eo ? e.id : void 0;
2466
+ const to = "interaction";
2467
+ function no(e) {
2468
+ return e?.type === to ? e.id : void 0;
2451
2469
  }
2452
- const no = 64, ro = 8e3;
2453
- function hc(e) {
2470
+ const ro = 64, oo = 8e3;
2471
+ function yc(e) {
2454
2472
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
2455
2473
  if (!(!Number.isFinite(t) || t <= 0))
2456
- return Math.min(Math.max(Math.round(t), no), ro);
2474
+ return Math.min(Math.max(Math.round(t), ro), oo);
2457
2475
  }
2458
- const gc = { kind: "workflow", steps: [] };
2459
- function yc(e) {
2476
+ const bc = { kind: "workflow", steps: [] };
2477
+ function _c(e) {
2460
2478
  return e?.kind === "workflow" ? e.steps : [];
2461
2479
  }
2462
- function bc(e) {
2480
+ function Ac(e) {
2463
2481
  return e?.kind === "procedure" ? e.procedure : void 0;
2464
2482
  }
2465
- function oo(e) {
2483
+ function so(e) {
2466
2484
  const t = e?.approved ?? 0, n = t + (e?.rejected ?? 0);
2467
2485
  return { total: n, rate: n ? t / n : 0 };
2468
2486
  }
2469
- const io = 10, so = 0.9;
2470
- function Ac(e) {
2471
- const { total: t, rate: n } = oo(e);
2472
- return t >= io && n >= so;
2487
+ const io = 10, ao = 0.9;
2488
+ function Sc(e) {
2489
+ const { total: t, rate: n } = so(e);
2490
+ return t >= io && n >= ao;
2473
2491
  }
2474
- const ao = ["done", "escalated", "failed", "stopped"];
2475
- function _c(e) {
2476
- return ao.includes(e);
2492
+ const co = ["done", "escalated", "failed", "stopped"];
2493
+ function Ec(e) {
2494
+ return co.includes(e);
2477
2495
  }
2478
- function co(e) {
2496
+ function lo(e) {
2479
2497
  return e === "waiting";
2480
2498
  }
2481
- function Ec(e) {
2482
- return e === "running" || co(e);
2499
+ function Ic(e) {
2500
+ return e === "running" || lo(e);
2483
2501
  }
2484
2502
  function Bt(e) {
2485
2503
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
2486
2504
  }
2487
- function Sc(e) {
2505
+ function Tc(e) {
2488
2506
  const t = Bt(e);
2489
- return t ? Jr(t) : void 0;
2507
+ return t ? eo(t) : void 0;
2490
2508
  }
2491
- function Ic(e) {
2492
- return to(Bt(e));
2509
+ function wc(e) {
2510
+ return no(Bt(e));
2493
2511
  }
2494
- function Tc(e) {
2512
+ function kc(e) {
2495
2513
  const t = [], n = /* @__PURE__ */ new Map();
2496
- for (const r of [...e].sort(lo)) {
2514
+ for (const r of [...e].sort(uo)) {
2497
2515
  const o = n.get(r.emoji);
2498
2516
  if (o) {
2499
2517
  o.push(r.actor);
@@ -2506,48 +2524,48 @@ function Tc(e) {
2506
2524
  return { emoji: r, count: o.length, actors: o };
2507
2525
  }).sort((r, o) => o.count - r.count || t.indexOf(r.emoji) - t.indexOf(o.emoji));
2508
2526
  }
2509
- const lo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2510
- function wc(e, t) {
2527
+ const uo = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
2528
+ function vc(e, t) {
2511
2529
  return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
2512
2530
  }
2513
- const Ae = 6e4, uo = 36e5, V = 864e5, jt = 800;
2531
+ const _e = 6e4, po = 36e5, V = 864e5, jt = 800;
2514
2532
  function ot(e, t) {
2515
2533
  const n = Date.UTC(e, t + 1, 0);
2516
- return n - new Date(n).getUTCDay() * V + uo;
2534
+ return n - new Date(n).getUTCDay() * V + po;
2517
2535
  }
2518
- function po(e) {
2536
+ function fo(e) {
2519
2537
  const t = new Date(e).getUTCFullYear();
2520
2538
  return e >= ot(t, 2) && e < ot(t, 9);
2521
2539
  }
2522
2540
  function Ht(e, t) {
2523
- const n = t.dst === "eu" && po(e) ? 60 : 0;
2524
- return (t.utcOffsetMinutes + n) * Ae;
2541
+ const n = t.dst === "eu" && fo(e) ? 60 : 0;
2542
+ return (t.utcOffsetMinutes + n) * _e;
2525
2543
  }
2526
- function fo(e) {
2544
+ function mo(e) {
2527
2545
  return (e + 3) % 7 + 1;
2528
2546
  }
2529
2547
  function Gt(e, t) {
2530
2548
  const n = Ht(e, t), r = e + n, o = Math.floor(r / V);
2531
- if (!t.days.includes(fo(o))) return null;
2532
- const i = o * V;
2549
+ if (!t.days.includes(mo(o))) return null;
2550
+ const s = o * V;
2533
2551
  return {
2534
- open: i + t.fromMinutes * Ae - n,
2535
- close: i + t.toMinutes * Ae - n
2552
+ open: s + t.fromMinutes * _e - n,
2553
+ close: s + t.toMinutes * _e - n
2536
2554
  };
2537
2555
  }
2538
2556
  function Wt(e, t) {
2539
2557
  const n = Ht(e, t), r = e + n;
2540
2558
  return (Math.floor(r / V) + 1) * V - n;
2541
2559
  }
2542
- function _e(e, t, n) {
2560
+ function Ae(e, t, n) {
2543
2561
  if (t <= e) return 0;
2544
2562
  if (!n) return t - e;
2545
2563
  let r = 0, o = e;
2546
- for (let i = 0; i < jt && o < t; i++) {
2547
- const s = Gt(o, n);
2548
- if (s) {
2549
- const a = Math.max(o, s.open), c = Math.min(t, s.close);
2550
- c > a && (r += c - a);
2564
+ for (let s = 0; s < jt && o < t; s++) {
2565
+ const i = Gt(o, n);
2566
+ if (i) {
2567
+ const a = Math.max(o, i.open), u = Math.min(t, i.close);
2568
+ u > a && (r += u - a);
2551
2569
  }
2552
2570
  o = Wt(o, n);
2553
2571
  }
@@ -2556,93 +2574,93 @@ function _e(e, t, n) {
2556
2574
  function Oe(e, t, n) {
2557
2575
  if (!n) return e + t;
2558
2576
  let r = t, o = e;
2559
- for (let i = 0; i < jt; i++) {
2560
- const s = Gt(o, n);
2561
- if (s) {
2562
- const a = Math.max(o, s.open);
2563
- if (s.close > a) {
2564
- const c = s.close - a;
2565
- if (r <= c) return a + r;
2566
- r -= c;
2577
+ for (let s = 0; s < jt; s++) {
2578
+ const i = Gt(o, n);
2579
+ if (i) {
2580
+ const a = Math.max(o, i.open);
2581
+ if (i.close > a) {
2582
+ const u = i.close - a;
2583
+ if (r <= u) return a + r;
2584
+ r -= u;
2567
2585
  }
2568
2586
  }
2569
2587
  o = Wt(o, n);
2570
2588
  }
2571
2589
  return e + t;
2572
2590
  }
2573
- function kc(e) {
2591
+ function Mc(e) {
2574
2592
  const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
2575
2593
  return t ? Number(t[1]) * 60 + Number(t[2]) : null;
2576
2594
  }
2577
- const Ee = 1, Se = 2;
2578
- function Mc(e) {
2579
- return e === "snoozed" ? Ee : Se;
2595
+ const Se = 1, Ee = 2;
2596
+ function Cc(e) {
2597
+ return e === "snoozed" ? Se : Ee;
2580
2598
  }
2581
2599
  function xe(e) {
2582
2600
  const t = e.calendar;
2583
2601
  return t && Array.isArray(t.days) ? t : null;
2584
2602
  }
2585
- const vc = [
2603
+ const Oc = [
2586
2604
  "speed_of_answer",
2587
2605
  "first_response",
2588
2606
  "next_response",
2589
2607
  "resolution",
2590
2608
  "close"
2591
- ], Cc = ["snoozed", "waiting_for_customer"], mo = 6e4, Vt = ["speed_of_answer", "first_response", "next_response"], ho = [...Vt, "resolution", "close"];
2609
+ ], xc = ["snoozed", "waiting_for_customer"], ho = 6e4, Vt = ["speed_of_answer", "first_response", "next_response"], go = [...Vt, "resolution", "close"];
2592
2610
  function z(e) {
2593
2611
  return e.state === "running" || e.state === "paused";
2594
2612
  }
2595
- function go(e, t) {
2613
+ function yo(e, t) {
2596
2614
  return z(e) ? { state: (e.state === "paused" ? e.remainingMs > 0 : t <= e.dueAt) ? "hit" : "missed", settledAt: Math.max(t, e.startedAt) } : null;
2597
2615
  }
2598
- function it(e) {
2616
+ function st(e) {
2599
2617
  return z(e) ? { state: "void" } : null;
2600
2618
  }
2601
- function yo(e, t, n, r) {
2619
+ function bo(e, t, n, r) {
2602
2620
  if (!z(e) || (e.pauseBits & t) !== 0) return null;
2603
2621
  const o = e.pauseBits | t;
2604
- return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: _e(n, e.dueAt, r) };
2622
+ return e.state === "paused" ? { pauseBits: o } : { pauseBits: o, state: "paused", remainingMs: Ae(n, e.dueAt, r) };
2605
2623
  }
2606
- function bo(e, t, n, r) {
2624
+ function _o(e, t, n, r) {
2607
2625
  if (!z(e) || (e.pauseBits & t) === 0) return null;
2608
2626
  const o = e.pauseBits & ~t;
2609
2627
  return o !== 0 ? { pauseBits: o } : { pauseBits: o, state: "running", dueAt: Oe(n, e.remainingMs, r) };
2610
2628
  }
2611
- function Oc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2612
- const i = xe(o), s = Math.min(t, n), a = r.map((g) => ({ ...g })), c = [], u = (g, h) => {
2613
- h && (c.push({ op: "patch", clockId: g.id, patch: h }), Object.assign(g, h));
2629
+ function Nc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2630
+ const s = xe(o), i = Math.min(t, n), a = r.map((g) => ({ ...g })), u = [], l = (g, h) => {
2631
+ h && (u.push({ op: "patch", clockId: g.id, patch: h }), Object.assign(g, h));
2614
2632
  }, d = (g) => {
2615
2633
  for (const h of a)
2616
- h.metric === g && u(h, go(h, s));
2617
- }, l = (g) => {
2634
+ h.metric === g && l(h, yo(h, i));
2635
+ }, c = (g) => {
2618
2636
  for (const h of a)
2619
- g.includes(h.metric) && u(h, it(h));
2637
+ g.includes(h.metric) && l(h, st(h));
2620
2638
  }, p = (g) => {
2621
- for (const h of a) u(h, yo(h, g, s, i));
2639
+ for (const h of a) l(h, bo(h, g, i, s));
2622
2640
  }, f = (g) => {
2623
- for (const h of a) u(h, bo(h, g, s, i));
2624
- }, 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 && z(h)), S = (g, h) => {
2625
- const E = o.targets.find((C) => C.metric === g);
2626
- if (!E) return;
2627
- const x = E.minutes * mo;
2628
- c.push({
2641
+ for (const h of a) l(h, _o(h, g, i, s));
2642
+ }, y = (g) => a.reduce((h, S) => S.metric === g ? Math.max(h, S.attempt) : h, 0) + 1, m = (g) => a.some((h) => h.metric === g && z(h)), E = (g, h) => {
2643
+ const S = o.targets.find((C) => C.metric === g);
2644
+ if (!S) return;
2645
+ const x = S.minutes * ho;
2646
+ u.push({
2629
2647
  op: "start",
2630
2648
  metric: g,
2631
2649
  attempt: y(g),
2632
2650
  startedAt: h,
2633
2651
  targetMs: x,
2634
- dueAt: Oe(h, x, i)
2652
+ dueAt: Oe(h, x, s)
2635
2653
  });
2636
2654
  };
2637
2655
  switch (e) {
2638
2656
  case "apply": {
2639
2657
  for (const g of a)
2640
- g.profileId !== o.id && u(g, it(g));
2658
+ g.profileId !== o.id && l(g, st(g));
2641
2659
  for (const g of o.targets) {
2642
2660
  if (g.metric === "next_response") continue;
2643
2661
  a.some(
2644
- (E) => E.metric === g.metric && E.profileId === o.id
2645
- ) || S(g.metric, s);
2662
+ (S) => S.metric === g.metric && S.profileId === o.id
2663
+ ) || E(g.metric, i);
2646
2664
  }
2647
2665
  break;
2648
2666
  }
@@ -2650,53 +2668,53 @@ function Oc({ event: e, at: t, now: n, clocks: r, profile: o }) {
2650
2668
  d("speed_of_answer");
2651
2669
  break;
2652
2670
  case "outbound": {
2653
- d("first_response"), d("next_response"), o.pauseOn.includes("waiting_for_customer") && p(Se);
2671
+ d("first_response"), d("next_response"), o.pauseOn.includes("waiting_for_customer") && p(Ee);
2654
2672
  break;
2655
2673
  }
2656
2674
  case "inbound": {
2657
- f(Se), !m("first_response") && !m("next_response") && S("next_response", s);
2675
+ f(Ee), !m("first_response") && !m("next_response") && E("next_response", i);
2658
2676
  break;
2659
2677
  }
2660
2678
  case "resolved":
2661
2679
  d("resolution");
2662
2680
  break;
2663
2681
  case "closed":
2664
- d("close"), d("resolution"), l(Vt);
2682
+ d("close"), d("resolution"), c(Vt);
2665
2683
  break;
2666
2684
  case "reopened":
2667
- m("resolution") || S("resolution", s), m("close") || S("close", s);
2685
+ m("resolution") || E("resolution", i), m("close") || E("close", i);
2668
2686
  break;
2669
2687
  case "snoozed":
2670
- o.pauseOn.includes("snoozed") && p(Ee);
2688
+ o.pauseOn.includes("snoozed") && p(Se);
2671
2689
  break;
2672
2690
  case "unsnoozed":
2673
- f(Ee);
2691
+ f(Se);
2674
2692
  break;
2675
2693
  case "discarded":
2676
- l(ho);
2694
+ c(go);
2677
2695
  break;
2678
2696
  }
2679
- return c;
2697
+ return u;
2680
2698
  }
2681
2699
  function Ao(e) {
2682
2700
  return e.state === "running" || e.state === "paused";
2683
2701
  }
2684
2702
  function Ie(e, t) {
2685
2703
  const n = xe(e);
2686
- return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -_e(e.dueAt, t, n) : _e(t, e.dueAt, n);
2704
+ return e.state === "paused" ? e.remainingMs : t >= e.dueAt ? -Ae(e.dueAt, t, n) : Ae(t, e.dueAt, n);
2687
2705
  }
2688
- function xc(e, t) {
2706
+ function Rc(e, t) {
2689
2707
  return e.state === "paused" ? Oe(t, e.remainingMs, xe(e)) : e.dueAt;
2690
2708
  }
2691
- function Nc(e, t) {
2709
+ function Dc(e, t) {
2692
2710
  const n = e.filter(Ao);
2693
2711
  if (!n.length) return;
2694
- const r = n.filter((i) => i.state === "running");
2712
+ const r = n.filter((s) => s.state === "running");
2695
2713
  return (r.length ? r : n).reduce(
2696
- (i, s) => Ie(s, t) < Ie(i, t) ? s : i
2714
+ (s, i) => Ie(i, t) < Ie(s, t) ? i : s
2697
2715
  );
2698
2716
  }
2699
- function Rc(e, t) {
2717
+ function $c(e, t) {
2700
2718
  if (e.state === "missed") return "breached";
2701
2719
  if (e.state === "hit") return "met";
2702
2720
  if (e.state === "paused") return "paused";
@@ -2704,41 +2722,41 @@ function Rc(e, t) {
2704
2722
  const n = Ie(e, t);
2705
2723
  return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
2706
2724
  }
2707
- function Dc(e) {
2725
+ function Lc(e) {
2708
2726
  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);
2709
2727
  return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
2710
2728
  }
2711
- const _o = "strategy_item";
2729
+ const So = "strategy_item";
2712
2730
  function zt(e) {
2713
- return `${_o}:${e}`;
2731
+ return `${So}:${e}`;
2714
2732
  }
2715
- function $c(e, t = 25) {
2733
+ function Pc(e, t = 25) {
2716
2734
  const n = /* @__PURE__ */ new Set([zt(e.id)]);
2717
2735
  for (const r of e.ancestorKeys ?? []) n.add(r);
2718
2736
  return Array.from(n).slice(0, t);
2719
2737
  }
2720
- function Lc(e) {
2738
+ function Kc(e) {
2721
2739
  return e ? [...e.ancestorKeys ?? [], zt(e.id)] : [];
2722
2740
  }
2723
2741
  const ne = [
2724
2742
  { key: "area", label: "level_area", order: 10, measurable: !1, icon: "compass" },
2725
2743
  { key: "objective", label: "level_objective", order: 20, measurable: !0, icon: "target" },
2726
2744
  { key: "key_result", label: "level_key_result", order: 30, measurable: !0, icon: "gauge" }
2727
- ], Eo = 999, So = 7;
2728
- function Io(e, t = ne) {
2745
+ ], Eo = 999, Io = 7;
2746
+ function To(e, t = ne) {
2729
2747
  return t.find((n) => n.key === e);
2730
2748
  }
2731
2749
  function Te(e, t = ne) {
2732
- return Io(e, t)?.order ?? Eo;
2750
+ return To(e, t)?.order ?? Eo;
2733
2751
  }
2734
- function Pc(e, t, n = ne) {
2752
+ function Uc(e, t, n = ne) {
2735
2753
  return Te(t, n) <= Te(e, n);
2736
2754
  }
2737
- function Kc(e, t = ne) {
2755
+ function Fc(e, t = ne) {
2738
2756
  const n = Te(e, t);
2739
- return t.filter((o) => o.order > n).sort((o, i) => o.order - i.order)[0]?.key ?? e;
2757
+ return t.filter((o) => o.order > n).sort((o, s) => o.order - s.order)[0]?.key ?? e;
2740
2758
  }
2741
- function Uc(e) {
2759
+ function Bc(e) {
2742
2760
  const t = e.trim().toLowerCase();
2743
2761
  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;
2744
2762
  }
@@ -2751,132 +2769,132 @@ const we = {
2751
2769
  achieved: "closed",
2752
2770
  missed: "closed"
2753
2771
  };
2754
- function Fc(e) {
2772
+ function jc(e) {
2755
2773
  return we[e] ?? "open";
2756
2774
  }
2757
- function Bc(e) {
2775
+ function Hc(e) {
2758
2776
  return Object.keys(we).filter(
2759
2777
  (t) => e.includes(we[t])
2760
2778
  );
2761
2779
  }
2762
- const To = 864e5, re = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
2763
- function jc(e, t) {
2780
+ const wo = 864e5, re = (e) => e <= 0 ? 0 : e > 1 ? 1 : e;
2781
+ function Gc(e, t) {
2764
2782
  const { direction: n } = e, r = e.startValue ?? 0, o = e.targetValue ?? 0;
2765
2783
  if (!Number.isFinite(t)) return 0;
2766
- const i = n === "down" ? t <= o : t >= o, s = o - r;
2767
- return (n === "down" ? s < 0 : s > 0) ? re((t - r) / s) : i ? 1 : 0;
2784
+ const s = n === "down" ? t <= o : t >= o, i = o - r;
2785
+ return (n === "down" ? i < 0 : i > 0) ? re((t - r) / i) : s ? 1 : 0;
2768
2786
  }
2769
- function Hc(e, t) {
2787
+ function Wc(e, t) {
2770
2788
  const { startDate: n, targetDate: r } = e;
2771
2789
  if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
2772
2790
  return re((t - n) / (r - n));
2773
2791
  }
2774
- const wo = 0.1, ko = 0.25;
2775
- function Gc(e, t) {
2792
+ const ko = 0.1, vo = 0.25;
2793
+ function Vc(e, t) {
2776
2794
  if (typeof e != "number" || typeof t != "number") return;
2777
2795
  if (e >= 1) return "achieved";
2778
2796
  const n = t - e;
2779
- return n >= ko ? "off_track" : n >= wo ? "at_risk" : "on_track";
2797
+ return n >= vo ? "off_track" : n >= ko ? "at_risk" : "on_track";
2780
2798
  }
2781
- function Wc(e, t) {
2799
+ function zc(e, t) {
2782
2800
  if (t)
2783
2801
  return re(e / t);
2784
2802
  }
2785
- function Vc(e) {
2803
+ function Xc(e) {
2786
2804
  const t = e.map((n) => n.progress?.ratio).filter((n) => typeof n == "number" && Number.isFinite(n));
2787
2805
  if (t.length)
2788
2806
  return re(t.reduce((n, r) => n + r, 0) / t.length);
2789
2807
  }
2790
- function zc(e, t) {
2808
+ function Yc(e, t) {
2791
2809
  const n = e.lastCheckInAt ?? e.createdAt;
2792
2810
  if (typeof n != "number") return 0;
2793
- const r = (e.checkInEveryDays ?? So) * To, o = t - n - r;
2811
+ const r = (e.checkInEveryDays ?? Io) * wo, o = t - n - r;
2794
2812
  return o > 0 ? o : 0;
2795
2813
  }
2796
- function Xc(e) {
2814
+ function qc(e) {
2797
2815
  return e.targetDate ?? Number.MAX_SAFE_INTEGER;
2798
2816
  }
2799
- function Yc(e, t) {
2817
+ function Qc(e, t) {
2800
2818
  const n = e.accumulatedSeconds || 0;
2801
2819
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
2802
2820
  }
2803
- function qc(e, t) {
2821
+ function Zc(e, t) {
2804
2822
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
2805
2823
  if (!t || t === "exact") return n * 60;
2806
2824
  const r = Number(t);
2807
2825
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
2808
2826
  }
2809
- function Qc(e) {
2827
+ function Jc(e) {
2810
2828
  const t = Math.max(0, Math.round(e / 60));
2811
2829
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
2812
2830
  }
2813
- function Zc(e) {
2814
- 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);
2831
+ function el(e) {
2832
+ const t = Math.max(0, Math.floor(e)), n = (s) => String(s).padStart(2, "0"), r = Math.floor(t / 60) % 60, o = Math.floor(t / 3600);
2815
2833
  return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
2816
2834
  }
2817
2835
  function Mo(e) {
2818
2836
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
2819
2837
  }
2820
- function Jc(e, t) {
2838
+ function tl(e, t) {
2821
2839
  const n = Mo(e) || "werksoort", r = new Set(t);
2822
2840
  if (!r.has(n)) return n;
2823
2841
  for (let o = 2; o < 500; o++) {
2824
- const i = `${n}-${o}`;
2825
- if (!r.has(i)) return i;
2842
+ const s = `${n}-${o}`;
2843
+ if (!r.has(s)) return s;
2826
2844
  }
2827
2845
  return `${n}-${r.size + 1}`;
2828
2846
  }
2829
- function el(e, t) {
2847
+ function nl(e, t) {
2830
2848
  const n = e.ownerScope;
2831
2849
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
2832
2850
  }
2833
- function tl(e) {
2834
- return e.filter((t) => !t.archived).sort(vo);
2851
+ function rl(e) {
2852
+ return e.filter((t) => !t.archived).sort(Co);
2835
2853
  }
2836
- function vo(e, t) {
2854
+ function Co(e, t) {
2837
2855
  const n = (e.order ?? 0) - (t.order ?? 0);
2838
2856
  return n !== 0 ? n : (e.label || "").localeCompare(t.label || "");
2839
2857
  }
2840
- const Co = 20, Oo = 20, ue = 300;
2858
+ const Oo = 20, xo = 20, ue = 300;
2841
2859
  function P(e) {
2842
2860
  return e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu, " ").replace(/\s+/g, " ").trim();
2843
2861
  }
2844
- function xo(e) {
2862
+ function No(e) {
2845
2863
  const t = e.replace(/\s+/g, " ").trim();
2846
2864
  if (t.length <= ue) return t;
2847
2865
  const n = t.slice(0, ue), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
2848
2866
  return r > ue * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
2849
2867
  }
2850
- function nl(e, t) {
2851
- const n = xo(t.text), r = P(n);
2852
- if (!r || (e.examples ?? []).some((s) => P(s) === r)) return null;
2853
- const o = e.exampleCandidates ?? [], i = o.findIndex((s) => P(s.text) === r);
2854
- if (i >= 0) {
2855
- if (o[i].corrected || !t.corrected) return null;
2856
- const s = [...o];
2857
- return s[i] = { ...s[i], corrected: !0, addedAt: t.addedAt }, st(s);
2868
+ function ol(e, t) {
2869
+ const n = No(t.text), r = P(n);
2870
+ if (!r || (e.examples ?? []).some((i) => P(i) === r)) return null;
2871
+ const o = e.exampleCandidates ?? [], s = o.findIndex((i) => P(i.text) === r);
2872
+ if (s >= 0) {
2873
+ if (o[s].corrected || !t.corrected) return null;
2874
+ const i = [...o];
2875
+ return i[s] = { ...i[s], corrected: !0, addedAt: t.addedAt }, it(i);
2858
2876
  }
2859
- return st([{ ...t, text: n }, ...o]).slice(0, Oo);
2877
+ return it([{ ...t, text: n }, ...o]).slice(0, xo);
2860
2878
  }
2861
- function st(e) {
2879
+ function it(e) {
2862
2880
  return [...e].sort(
2863
2881
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
2864
2882
  );
2865
2883
  }
2866
- function rl(e, t) {
2867
- const n = P(t), r = (e.examples ?? []).filter((i) => i.trim());
2868
- return { examples: r.some((i) => P(i) === n) ? r : [...r, t].slice(-Co), exampleCandidates: No(e, t) };
2884
+ function sl(e, t) {
2885
+ const n = P(t), r = (e.examples ?? []).filter((s) => s.trim());
2886
+ return { examples: r.some((s) => P(s) === n) ? r : [...r, t].slice(-Oo), exampleCandidates: Ro(e, t) };
2869
2887
  }
2870
- function No(e, t) {
2888
+ function Ro(e, t) {
2871
2889
  const n = P(t);
2872
2890
  return (e.exampleCandidates ?? []).filter((r) => P(r.text) !== n);
2873
2891
  }
2874
- function Ro(e, t) {
2892
+ function Do(e, t) {
2875
2893
  const n = e.ownerScope;
2876
2894
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
2877
2895
  }
2878
- function ol(e, t) {
2879
- return e.filter((n) => Ro(n, t));
2896
+ function il(e, t) {
2897
+ return e.filter((n) => Do(n, t));
2880
2898
  }
2881
2899
  const Xt = [
2882
2900
  {
@@ -2917,10 +2935,10 @@ function ke(e) {
2917
2935
  statuses: ["draft"]
2918
2936
  };
2919
2937
  }
2920
- function il(e) {
2938
+ function al(e) {
2921
2939
  return e.issuedAt != null;
2922
2940
  }
2923
- const sl = [
2941
+ const cl = [
2924
2942
  "status",
2925
2943
  "fileRef",
2926
2944
  "number",
@@ -2929,7 +2947,7 @@ const sl = [
2929
2947
  "dunning",
2930
2948
  "updatedAt"
2931
2949
  ];
2932
- function Do(e, t) {
2950
+ function $o(e, t) {
2933
2951
  const n = ke(t).signFlip !== ke(e.kindKey).signFlip, r = e.lines.map((o) => ({
2934
2952
  ...o,
2935
2953
  quantity: n ? -o.quantity : o.quantity,
@@ -2941,6 +2959,9 @@ function Do(e, t) {
2941
2959
  sourceTransactionId: e.id,
2942
2960
  agreementId: e.agreementId,
2943
2961
  version: 1,
2962
+ // Carried over on purpose: a revision of a quote must not quietly change which entity signs
2963
+ // it, and neither must the invoice that follows from it.
2964
+ businessEntityId: e.businessEntityId,
2944
2965
  companyId: e.companyId,
2945
2966
  contactId: e.contactId,
2946
2967
  dealItemId: e.dealItemId,
@@ -2958,9 +2979,9 @@ function Do(e, t) {
2958
2979
  source: e.source
2959
2980
  };
2960
2981
  }
2961
- function al(e) {
2982
+ function ll(e) {
2962
2983
  return {
2963
- ...Do(e, e.kindKey),
2984
+ ...$o(e, e.kindKey),
2964
2985
  sourceTransactionId: e.sourceTransactionId,
2965
2986
  previousVersionId: e.id,
2966
2987
  version: e.version + 1,
@@ -2968,7 +2989,7 @@ function al(e) {
2968
2989
  totals: e.totals
2969
2990
  };
2970
2991
  }
2971
- function cl(e, t = {}) {
2992
+ function ul(e, t = {}) {
2972
2993
  const n = ke(e.kindKey), r = e.totals ?? { netCents: 0, taxCents: 0, grossCents: 0 };
2973
2994
  return {
2974
2995
  customer: {
@@ -2977,7 +2998,7 @@ function cl(e, t = {}) {
2977
2998
  // One token per line of the address, plus `street` on its own for a template that wants
2978
2999
  // the house number elsewhere. Empty stays empty: `fillText` reports it as a hole, and a
2979
3000
  // recipient block missing its street is exactly what the issue gate has to refuse.
2980
- address: Po(t.companyAddress),
3001
+ address: Ko(t.companyAddress),
2981
3002
  street: t.companyAddress?.street ?? "",
2982
3003
  house_number: t.companyAddress?.houseNumber ?? "",
2983
3004
  postal_code: t.companyAddress?.postalCode ?? "",
@@ -3002,8 +3023,8 @@ function cl(e, t = {}) {
3002
3023
  }
3003
3024
  };
3004
3025
  }
3005
- function ll(e, t = [], n = $o) {
3006
- const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((c) => c.key === a)?.percent ?? 0, i = {
3026
+ function dl(e, t = [], n = Lo) {
3027
+ const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((u) => u.key === a)?.percent ?? 0, s = {
3007
3028
  block_id: "lines",
3008
3029
  type: "table",
3009
3030
  columns: [
@@ -3017,13 +3038,13 @@ function ll(e, t = [], n = $o) {
3017
3038
  // A text line spans as a heading: empty money cells would read as "free".
3018
3039
  [a.name, "", "", ""]
3019
3040
  ) : [
3020
- Lo(a.name, a.description, a.optional, n.optional),
3021
- Ko(a.quantity),
3041
+ Po(a.name, a.description, a.optional, n.optional),
3042
+ Uo(a.quantity),
3022
3043
  D(a.unitPriceCents),
3023
3044
  D(a.netCents)
3024
3045
  ]
3025
3046
  )
3026
- }, s = {
3047
+ }, i = {
3027
3048
  block_id: "totals",
3028
3049
  type: "totals",
3029
3050
  rows: [
@@ -3035,9 +3056,9 @@ function ll(e, t = [], n = $o) {
3035
3056
  amount: D(a.taxCents)
3036
3057
  }))
3037
3058
  };
3038
- return { lines: [i], totals: [s] };
3059
+ return { lines: [s], totals: [i] };
3039
3060
  }
3040
- const $o = {
3061
+ const Lo = {
3041
3062
  description: "Omschrijving",
3042
3063
  optional: "optioneel",
3043
3064
  quantity: "Aantal",
@@ -3046,14 +3067,14 @@ const $o = {
3046
3067
  tax: "Btw",
3047
3068
  gross: "Totaal"
3048
3069
  };
3049
- function Lo(e, t, n, r) {
3070
+ function Po(e, t, n, r) {
3050
3071
  const o = t ? `${e} — ${t}` : e;
3051
3072
  return n ? `${o} (${r})` : o;
3052
3073
  }
3053
- function Po(e) {
3074
+ function Ko(e) {
3054
3075
  return e?.street ? [e.street, e.houseNumber].filter(Boolean).join(" ") : "";
3055
3076
  }
3056
- function Ko(e) {
3077
+ function Uo(e) {
3057
3078
  return Number.isInteger(e) ? String(e) : String(e).replace(".", ",");
3058
3079
  }
3059
3080
  function at(e) {
@@ -3061,7 +3082,7 @@ function at(e) {
3061
3082
  const t = new Date(e), n = (r) => String(r).padStart(2, "0");
3062
3083
  return `${n(t.getDate())}-${n(t.getMonth() + 1)}-${t.getFullYear()}`;
3063
3084
  }
3064
- const ul = [
3085
+ const pl = [
3065
3086
  {
3066
3087
  block_id: "head",
3067
3088
  type: "letterhead",
@@ -3094,39 +3115,39 @@ Hierbij onze offerte. Hieronder vindt u de specificatie.`
3094
3115
  type: "paragraph",
3095
3116
  text: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld. Deze offerte is geldig tot {quote.valid_until}."
3096
3117
  }
3097
- ], Uo = Xt.map((e) => e.key), Fo = "product";
3098
- function dl(e, t) {
3118
+ ], Fo = Xt.map((e) => e.key), Bo = "product";
3119
+ function fl(e, t) {
3099
3120
  return `${e}:${t}`;
3100
3121
  }
3101
- function pl(e) {
3102
- return `${Fo}:${e}`;
3122
+ function ml(e) {
3123
+ return `${Bo}:${e}`;
3103
3124
  }
3104
- function fl(e) {
3125
+ function hl(e) {
3105
3126
  const t = e.indexOf(":");
3106
3127
  if (t < 0) return;
3107
3128
  const n = e.slice(0, t);
3108
- return Uo.includes(n) ? e.slice(t + 1) : void 0;
3129
+ return Fo.includes(n) ? e.slice(t + 1) : void 0;
3109
3130
  }
3110
- function ml(e) {
3131
+ function gl(e) {
3111
3132
  return e.type === "agent";
3112
3133
  }
3113
- const hl = "WORK_COMMENT_ADDED", gl = "WORK_ITEM_ASSIGNED", yl = "WORK_ITEM_STATUS_CHANGED";
3114
- function Bo(e, t) {
3134
+ const yl = "WORK_COMMENT_ADDED", bl = "WORK_ITEM_ASSIGNED", _l = "WORK_ITEM_STATUS_CHANGED";
3135
+ function jo(e, t) {
3115
3136
  const n = (r) => {
3116
3137
  const o = new Date(r);
3117
3138
  return o.setHours(0, 0, 0, 0), o.getTime();
3118
3139
  };
3119
- return Math.round((n(e) - n(t)) / qn);
3140
+ return Math.round((n(e) - n(t)) / Qn);
3120
3141
  }
3121
- function bl(e, t) {
3142
+ function Al(e, t) {
3122
3143
  if (e.closedAt != null) return { score: L, reasons: [] };
3123
3144
  const n = t.remindersById?.[e.id];
3124
3145
  if (n && n.remindAt > t.now) return { score: L, reasons: [] };
3125
3146
  let r = 0;
3126
- const o = [], i = e.priority ?? "normal";
3127
- if (J[i] > 0 && (r += J[i], o.push(`priority:${i}`)), typeof e.dueDate == "number") {
3128
- const s = Bo(e.dueDate, t.now);
3129
- s < 0 ? (r += 35, o.push("overdue")) : s === 0 && (r += 20, o.push("due-today"));
3147
+ const o = [], s = e.priority ?? "normal";
3148
+ if (J[s] > 0 && (r += J[s], o.push(`priority:${s}`)), typeof e.dueDate == "number") {
3149
+ const i = jo(e.dueDate, t.now);
3150
+ i < 0 ? (r += 35, o.push("overdue")) : i === 0 && (r += 20, o.push("due-today"));
3130
3151
  }
3131
3152
  return e.source?.initiator === "system" && e.source.systemReason && (r += 15, o.push(`auto:${e.source.systemReason}`)), { score: r, reasons: o };
3132
3153
  }
@@ -3138,35 +3159,35 @@ const Ne = [
3138
3159
  { key: "subtask", label: "type_subtask" },
3139
3160
  { key: "case", label: "type_case" },
3140
3161
  { key: "deal", label: "type_deal" }
3141
- ], Al = Ne.map((e) => e.key);
3142
- function _l(e) {
3162
+ ], Sl = Ne.map((e) => e.key);
3163
+ function El(e) {
3143
3164
  return e?.types?.length ? e.types : Ne;
3144
3165
  }
3145
- function El(e, t) {
3166
+ function Il(e, t) {
3146
3167
  return t.find((n) => n.key === e);
3147
3168
  }
3148
- function Sl(e) {
3169
+ function Tl(e) {
3149
3170
  const t = e.trim().toLowerCase();
3150
3171
  return t ? t.includes("sub-task") || t.includes("subtask") || t.includes("sub task") ? "subtask" : t.includes("bug") || t.includes("defect") ? "bug" : t.includes("epic") ? "epic" : t.includes("story") ? "story" : t.includes("incident") || t.includes("problem") || t.includes("service request") || t.includes("change") ? "case" : t.includes("task") ? "task" : null : null;
3151
3172
  }
3152
- function Il(...e) {
3173
+ function wl(...e) {
3153
3174
  return e.map((t) => Ne.find((n) => n.key === t)).filter((t) => !!t);
3154
3175
  }
3155
- const jo = "work_item", Ho = "work_project", Go = "work_activity", Tl = "work_cycle";
3156
- function Wo(e) {
3157
- return `${jo}:${e}`;
3158
- }
3159
- function Yt(e) {
3176
+ const Ho = "work_item", Go = "work_project", Wo = "work_activity", kl = "work_cycle";
3177
+ function Vo(e) {
3160
3178
  return `${Ho}:${e}`;
3161
3179
  }
3162
- function wl(e) {
3180
+ function Yt(e) {
3163
3181
  return `${Go}:${e}`;
3164
3182
  }
3165
- function kl(e, t, n) {
3183
+ function vl(e) {
3184
+ return `${Wo}:${e}`;
3185
+ }
3186
+ function Ml(e, t, n) {
3166
3187
  const r = `${e}-${t}`;
3167
3188
  return n ? `${r}-${n}` : r;
3168
3189
  }
3169
- function Ml(e) {
3190
+ function Cl(e) {
3170
3191
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
3171
3192
  return t ? {
3172
3193
  projectKey: t[1].toUpperCase(),
@@ -3174,17 +3195,17 @@ function Ml(e) {
3174
3195
  ...t[3] ? { subSequence: Number(t[3]) } : {}
3175
3196
  } : null;
3176
3197
  }
3177
- function vl(e) {
3198
+ function Ol(e) {
3178
3199
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
3179
3200
  }
3180
- function Cl(e, t = 25) {
3181
- const n = /* @__PURE__ */ new Set([Wo(e.id)]);
3201
+ function xl(e, t = 25) {
3202
+ const n = /* @__PURE__ */ new Set([Vo(e.id)]);
3182
3203
  e.projectId && n.add(Yt(e.projectId));
3183
3204
  for (const r of e.ancestorKeys ?? []) n.add(r);
3184
3205
  for (const r of e.partyKeys ?? []) n.add(r);
3185
3206
  return Array.from(n).slice(0, t);
3186
3207
  }
3187
- function Ol(e) {
3208
+ function Nl(e) {
3188
3209
  return [Yt(e.id)];
3189
3210
  }
3190
3211
  const Re = [
@@ -3193,41 +3214,41 @@ const Re = [
3193
3214
  { key: "done", label: "status_done", category: "done", order: 2 },
3194
3215
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
3195
3216
  ], qt = Re.map((e) => e.key);
3196
- function Vo(e) {
3217
+ function zo(e) {
3197
3218
  return e?.statuses?.length ? e.statuses : Re;
3198
3219
  }
3199
- function zo(e, t) {
3220
+ function Xo(e, t) {
3200
3221
  return t.find((n) => n.key === e)?.category ?? "todo";
3201
3222
  }
3202
- function xl(e, t) {
3223
+ function Rl(e, t) {
3203
3224
  return t.find((n) => n.key === e);
3204
3225
  }
3205
- function Nl(e) {
3206
- const t = Vo(e), n = e?.defaultStatusKey;
3207
- return n && t.some((r) => r.key === n) ? n : Xo(t)[0]?.key ?? Re[0].key;
3226
+ function Dl(e) {
3227
+ const t = zo(e), n = e?.defaultStatusKey;
3228
+ return n && t.some((r) => r.key === n) ? n : Yo(t)[0]?.key ?? Re[0].key;
3208
3229
  }
3209
- function Xo(e) {
3230
+ function Yo(e) {
3210
3231
  return [...e].sort((t, n) => {
3211
3232
  const r = (t.order ?? 0) - (n.order ?? 0);
3212
3233
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
3213
3234
  });
3214
3235
  }
3215
- function Rl(e, t) {
3216
- return zo(e, t) === "done";
3236
+ function $l(e, t) {
3237
+ return Xo(e, t) === "done";
3217
3238
  }
3218
- function Yo(e) {
3239
+ function qo(e) {
3219
3240
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
3220
3241
  }
3221
- function Dl(e, t) {
3222
- const n = Yo(e) || "status", r = /* @__PURE__ */ new Set([...t, ...qt]);
3242
+ function Ll(e, t) {
3243
+ const n = qo(e) || "status", r = /* @__PURE__ */ new Set([...t, ...qt]);
3223
3244
  if (!r.has(n)) return n;
3224
3245
  for (let o = 2; o < 500; o++) {
3225
- const i = `${n}-${o}`;
3226
- if (!r.has(i)) return i;
3246
+ const s = `${n}-${o}`;
3247
+ if (!r.has(s)) return s;
3227
3248
  }
3228
3249
  return `${n}-${r.size + 1}`;
3229
3250
  }
3230
- function $l(e) {
3251
+ function Pl(e) {
3231
3252
  const t = [];
3232
3253
  if (!e.length) return [{ index: -1, reason: "empty" }];
3233
3254
  const n = /* @__PURE__ */ new Set();
@@ -3239,13 +3260,13 @@ function $l(e) {
3239
3260
  qt.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);
3240
3261
  }), 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;
3241
3262
  }
3242
- function Ll(e) {
3263
+ function Kl(e) {
3243
3264
  return e.startDate ?? Number.MAX_SAFE_INTEGER;
3244
3265
  }
3245
- function Pl(e) {
3266
+ function Ul(e) {
3246
3267
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
3247
3268
  }
3248
- const qo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Qo = /* @__PURE__ */ new Set([
3269
+ const Qo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Zo = /* @__PURE__ */ new Set([
3249
3270
  "text/plain",
3250
3271
  "text/markdown",
3251
3272
  "text/csv",
@@ -3254,67 +3275,67 @@ const qo = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
3254
3275
  "application/xml",
3255
3276
  "text/xml"
3256
3277
  ]);
3257
- function Zo(e) {
3278
+ function Jo(e) {
3258
3279
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
3259
- return t ? qo.has(t) ? "image" : t === "application/pdf" ? "pdf" : Qo.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
3280
+ return t ? Qo.has(t) ? "image" : t === "application/pdf" ? "pdf" : Zo.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
3260
3281
  }
3261
- const F = 1024 * 1024, Jo = {
3282
+ const F = 1024 * 1024, es = {
3262
3283
  image: 5 * F,
3263
3284
  pdf: 20 * F,
3264
3285
  text: 1 * F,
3265
3286
  audio: 20 * F
3266
- }, Kl = 25 * F, Ul = 5;
3267
- function Fl(e, t) {
3268
- const n = Zo(e);
3269
- return n === "unsupported" ? "unsupported" : t > Jo[n] ? "too-large" : null;
3287
+ }, Fl = 25 * F, Bl = 5;
3288
+ function jl(e, t) {
3289
+ const n = Jo(e);
3290
+ return n === "unsupported" ? "unsupported" : t > es[n] ? "too-large" : null;
3270
3291
  }
3271
- function Bl(e) {
3292
+ function Hl(e) {
3272
3293
  return e.access !== "read" && e.effect !== "internal";
3273
3294
  }
3274
- function ei(e) {
3295
+ function ts(e) {
3275
3296
  return `${e.kind}:${e.id || e.url || e.title}`;
3276
3297
  }
3277
- function jl(e, t = []) {
3298
+ function Gl(e, t = []) {
3278
3299
  const n = new Set(t), r = [], o = [];
3279
- for (const i of e) {
3280
- const s = ei(i);
3281
- n.has(s) || (n.add(s), r.push(i), o.push(s));
3300
+ for (const s of e) {
3301
+ const i = ts(s);
3302
+ n.has(i) || (n.add(i), r.push(s), o.push(i));
3282
3303
  }
3283
3304
  return { sources: r, keys: o };
3284
3305
  }
3285
- const Hl = "assist-source", Gl = ["blocking", "due", "open"];
3286
- function Wl(e, t) {
3306
+ const Wl = "assist-source", Vl = ["blocking", "due", "open"];
3307
+ function zl(e, t) {
3287
3308
  const [n, r] = (e.subjectKey ?? "").split(":");
3288
3309
  return n === t && r ? r : void 0;
3289
3310
  }
3290
3311
  const ct = { blocking: 0, due: 1, open: 2 };
3291
- function Vl(e, t) {
3312
+ function Xl(e, t) {
3292
3313
  return ct[e.band ?? "open"] - ct[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
3293
3314
  }
3294
- function zl(e) {
3315
+ function Yl(e) {
3295
3316
  return e.sessions.filter(
3296
3317
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
3297
3318
  );
3298
3319
  }
3299
- function Xl(e) {
3320
+ function ql(e) {
3300
3321
  return e.sessions.filter(
3301
3322
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
3302
3323
  );
3303
3324
  }
3304
- function Yl(e) {
3325
+ function Ql(e) {
3305
3326
  return e.sessions.some(
3306
3327
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
3307
3328
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
3308
3329
  }
3309
- function ti(e, t) {
3310
- const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((s) => !n.has(s.intent)).map((s) => ri(s, r[s.intent]));
3330
+ function ns(e, t) {
3331
+ const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, o = t.intents.filter((i) => !n.has(i.intent)).map((i) => os(i, r[i.intent]));
3311
3332
  if (!e.extraIntents || e.extraIntents.length === 0) return o;
3312
- const i = new Set(o.map((s) => s.intent));
3313
- for (const s of e.extraIntents)
3314
- i.has(s.intent) || (o.push(s), i.add(s.intent));
3333
+ const s = new Set(o.map((i) => i.intent));
3334
+ for (const i of e.extraIntents)
3335
+ s.has(i.intent) || (o.push(i), s.add(i.intent));
3315
3336
  return o;
3316
3337
  }
3317
- function ni(e, t) {
3338
+ function rs(e, t) {
3318
3339
  const n = {};
3319
3340
  for (const r of e.intents) {
3320
3341
  if (!r.togglable) continue;
@@ -3323,46 +3344,46 @@ function ni(e, t) {
3323
3344
  }
3324
3345
  return n;
3325
3346
  }
3326
- function ql(e, t) {
3327
- const n = ni(e, t);
3347
+ function Zl(e, t) {
3348
+ const n = rs(e, t);
3328
3349
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
3329
3350
  }
3330
- function ri(e, t) {
3351
+ function os(e, t) {
3331
3352
  return t ? {
3332
3353
  intent: t.intent ?? e.intent,
3333
3354
  targetSchemes: t.targetSchemes ?? e.targetSchemes,
3334
3355
  transport: t.transport ?? e.transport
3335
3356
  } : e;
3336
3357
  }
3337
- function Ql(e, t) {
3358
+ function Jl(e, t) {
3338
3359
  const n = [];
3339
3360
  for (const r of e) {
3340
3361
  if (!r.enabled) continue;
3341
3362
  const o = t[r.providerId];
3342
3363
  if (o)
3343
- for (const i of ti(r, o))
3344
- n.push({ channel: r, description: o, capability: i });
3364
+ for (const s of ns(r, o))
3365
+ n.push({ channel: r, description: o, capability: s });
3345
3366
  }
3346
3367
  return n;
3347
3368
  }
3348
- function Zl(e, t) {
3369
+ function eu(e, t) {
3349
3370
  return t.filter((n) => n.capability.intent === e);
3350
3371
  }
3351
- function oi(e, t) {
3372
+ function ss(e, t) {
3352
3373
  return t.filter((n) => n.capability.targetSchemes.includes(e));
3353
3374
  }
3354
- function Jl(e, t) {
3355
- return oi(e.scheme, t);
3375
+ function tu(e, t) {
3376
+ return ss(e.scheme, t);
3356
3377
  }
3357
- function eu(e, t, n) {
3378
+ function nu(e, t, n) {
3358
3379
  const r = [];
3359
3380
  for (const o of e)
3360
- for (const i of n)
3361
- i.capability.intent === t && i.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: i, endpoint: o });
3381
+ for (const s of n)
3382
+ s.capability.intent === t && s.capability.targetSchemes.includes(o.scheme) && r.push({ channelIntent: s, endpoint: o });
3362
3383
  return r;
3363
3384
  }
3364
- var ii = /* @__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))(ii || {});
3365
- const si = {
3385
+ var is = /* @__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))(is || {});
3386
+ const as = {
3366
3387
  mailto: "mail",
3367
3388
  sip: "tel",
3368
3389
  tel: "tel",
@@ -3383,10 +3404,10 @@ const si = {
3383
3404
  id: "note",
3384
3405
  custom: "note"
3385
3406
  };
3386
- function tu(e) {
3387
- return e ? si[e] ?? "note" : "note";
3407
+ function ru(e) {
3408
+ return e ? as[e] ?? "note" : "note";
3388
3409
  }
3389
- const nu = "message_window", ru = "message_templates", ou = {
3410
+ const ou = "message_window", su = "message_templates", iu = {
3390
3411
  // E-mail
3391
3412
  FROM: "from",
3392
3413
  TO: "to",
@@ -3403,27 +3424,27 @@ const nu = "message_window", ru = "message_templates", ou = {
3403
3424
  // Voice/conference
3404
3425
  HOST: "host",
3405
3426
  PARTICIPANT: "participant"
3406
- }, iu = (e, t) => ({ intent: e, ...t }), su = "folder_management", au = "remote_search", cu = "message_reactions", lu = {
3427
+ }, au = (e, t) => ({ intent: e, ...t }), cu = "folder_management", lu = "remote_search", uu = "message_reactions", du = {
3407
3428
  ok: !1,
3408
3429
  code: "UNSUPPORTED",
3409
3430
  message: "Provider does not support this op"
3410
- }, uu = "connector", du = "context.collect", _ = (e) => ({ type: "string", description: e }), A = (e) => ({ type: "number", description: e }), Q = (e) => ({ type: "boolean", description: e }), v = _("Sheet name. Omit for the sheet the user is looking at."), lt = _("Slide id, as `inspect` reports it.");
3411
- function b(e, t, n, r, o, i) {
3431
+ }, pu = "connector", fu = "context.collect", A = (e) => ({ type: "string", description: e }), _ = (e) => ({ type: "number", description: e }), Q = (e) => ({ type: "boolean", description: e }), M = A("Sheet name. Omit for the sheet the user is looking at."), lt = A("Slide id, as `inspect` reports it.");
3432
+ function b(e, t, n, r, o, s) {
3412
3433
  return {
3413
3434
  op: e,
3414
3435
  kinds: t,
3415
3436
  summary: n,
3416
3437
  parameters: { type: "object", properties: r, required: o },
3417
- undoable: i.undoable,
3418
- visible: i.visible
3438
+ undoable: s.undoable,
3439
+ visible: s.visible
3419
3440
  };
3420
3441
  }
3421
- const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut = { undoable: !1, visible: !0 }, ee = { undoable: !1, visible: !1 }, ai = [
3442
+ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut = { undoable: !1, visible: !0 }, ee = { undoable: !1, visible: !1 }, cs = [
3422
3443
  b(
3423
3444
  "pdf.goToPage",
3424
3445
  ["pdf"],
3425
3446
  "Scroll the viewer to a page.",
3426
- { page: A("1-based page number.") },
3447
+ { page: _("1-based page number.") },
3427
3448
  ["page"],
3428
3449
  B
3429
3450
  ),
@@ -3431,7 +3452,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3431
3452
  "pdf.search",
3432
3453
  ["pdf"],
3433
3454
  "Search the document and highlight the matches, as the find bar does.",
3434
- { query: _("Text to find."), next: Q("Jump to the next match instead of the first.") },
3455
+ { query: A("Text to find."), next: Q("Jump to the next match instead of the first.") },
3435
3456
  ["query"],
3436
3457
  B
3437
3458
  ),
@@ -3454,7 +3475,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3454
3475
  ["pdf"],
3455
3476
  "Fill one form field of a fillable PDF.",
3456
3477
  {
3457
- field: _("Field name, exactly as `inspect` reports it under `fields`."),
3478
+ field: A("Field name, exactly as `inspect` reports it under `fields`."),
3458
3479
  value: {
3459
3480
  type: ["string", "boolean"],
3460
3481
  description: "Text for a text field, true/false for a checkbox or radio."
@@ -3490,13 +3511,13 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3490
3511
  ["pdf"],
3491
3512
  "Place a text note on a page. Written on save; not visible before that.",
3492
3513
  {
3493
- page: A("1-based page number."),
3494
- text: _("The note's text."),
3495
- left: A("Distance from the left edge, in PDF points (72 per inch)."),
3496
- top: A("Distance from the top edge, in PDF points."),
3497
- width: A("Box width in points. Omit for a sensible default."),
3498
- height: A("Box height in points. Omit for a sensible default."),
3499
- fontSize: A("Font size in points. Omit for 12.")
3514
+ page: _("1-based page number."),
3515
+ text: A("The note's text."),
3516
+ left: _("Distance from the left edge, in PDF points (72 per inch)."),
3517
+ top: _("Distance from the top edge, in PDF points."),
3518
+ width: _("Box width in points. Omit for a sensible default."),
3519
+ height: _("Box height in points. Omit for a sensible default."),
3520
+ fontSize: _("Font size in points. Omit for 12.")
3500
3521
  },
3501
3522
  ["page", "text", "left", "top"],
3502
3523
  ee
@@ -3506,21 +3527,21 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3506
3527
  ["pdf"],
3507
3528
  "Highlight a phrase on a page. Written on save; not visible before that.",
3508
3529
  {
3509
- page: A("1-based page number."),
3510
- text: _("The exact phrase to highlight, as it appears in the page's text."),
3511
- occurrence: A("Which occurrence on that page, 1-based. Omit for the first.")
3530
+ page: _("1-based page number."),
3531
+ text: A("The exact phrase to highlight, as it appears in the page's text."),
3532
+ occurrence: _("Which occurrence on that page, 1-based. Omit for the first.")
3512
3533
  },
3513
3534
  ["page", "text"],
3514
3535
  ee
3515
3536
  )
3516
- ], ci = [
3537
+ ], ls = [
3517
3538
  b(
3518
3539
  "sheet.setValues",
3519
3540
  ["sheet"],
3520
3541
  "Write a block of values. The block's shape must match the range.",
3521
3542
  {
3522
- sheet: v,
3523
- range: _("A1 notation, e.g. `B2:D5` or a single `A1`."),
3543
+ sheet: M,
3544
+ range: A("A1 notation, e.g. `B2:D5` or a single `A1`."),
3524
3545
  values: {
3525
3546
  type: "array",
3526
3547
  items: { type: "array", items: { type: ["string", "number", "boolean", "null"] } },
@@ -3534,7 +3555,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3534
3555
  "sheet.setFormula",
3535
3556
  ["sheet"],
3536
3557
  "Put a formula in every cell of a range.",
3537
- { sheet: v, range: _("A1 notation."), formula: _("Including the leading `=`.") },
3558
+ { sheet: M, range: A("A1 notation."), formula: A("Including the leading `=`.") },
3538
3559
  ["range", "formula"],
3539
3560
  I
3540
3561
  ),
@@ -3543,19 +3564,19 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3543
3564
  ["sheet"],
3544
3565
  "Change the look of a range. Only the properties you pass are touched.",
3545
3566
  {
3546
- sheet: v,
3547
- range: _("A1 notation."),
3567
+ sheet: M,
3568
+ range: A("A1 notation."),
3548
3569
  bold: Q("Bold on or off."),
3549
3570
  italic: Q("Italic on or off."),
3550
- fontSize: A("Point size."),
3551
- fontColor: _("CSS colour, e.g. `#b91c1c`."),
3552
- background: _("CSS colour for the cell fill."),
3571
+ fontSize: _("Point size."),
3572
+ fontColor: A("CSS colour, e.g. `#b91c1c`."),
3573
+ background: A("CSS colour for the cell fill."),
3553
3574
  horizontalAlignment: {
3554
3575
  type: "string",
3555
3576
  enum: ["left", "center", "right"],
3556
3577
  description: "Horizontal alignment."
3557
3578
  },
3558
- numberFormat: _("Number format pattern, e.g. `#,##0.00` or `0%`.")
3579
+ numberFormat: A("Number format pattern, e.g. `#,##0.00` or `0%`.")
3559
3580
  },
3560
3581
  ["range"],
3561
3582
  I
@@ -3565,9 +3586,9 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3565
3586
  ["sheet"],
3566
3587
  "Insert empty rows, pushing the rest down.",
3567
3588
  {
3568
- sheet: v,
3569
- at: A("1-based row number to insert before."),
3570
- count: A("How many. Omit for 1.")
3589
+ sheet: M,
3590
+ at: _("1-based row number to insert before."),
3591
+ count: _("How many. Omit for 1.")
3571
3592
  },
3572
3593
  ["at"],
3573
3594
  I
@@ -3576,7 +3597,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3576
3597
  "sheet.deleteRows",
3577
3598
  ["sheet"],
3578
3599
  "Delete rows, pulling the rest up.",
3579
- { sheet: v, at: A("1-based first row to delete."), count: A("How many. Omit for 1.") },
3600
+ { sheet: M, at: _("1-based first row to delete."), count: _("How many. Omit for 1.") },
3580
3601
  ["at"],
3581
3602
  I
3582
3603
  ),
@@ -3585,9 +3606,9 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3585
3606
  ["sheet"],
3586
3607
  "Insert empty columns, pushing the rest right.",
3587
3608
  {
3588
- sheet: v,
3589
- at: A("1-based column number to insert before."),
3590
- count: A("How many. Omit for 1.")
3609
+ sheet: M,
3610
+ at: _("1-based column number to insert before."),
3611
+ count: _("How many. Omit for 1.")
3591
3612
  },
3592
3613
  ["at"],
3593
3614
  I
@@ -3597,9 +3618,9 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3597
3618
  ["sheet"],
3598
3619
  "Delete columns, pulling the rest left.",
3599
3620
  {
3600
- sheet: v,
3601
- at: A("1-based first column to delete."),
3602
- count: A("How many. Omit for 1.")
3621
+ sheet: M,
3622
+ at: _("1-based first column to delete."),
3623
+ count: _("How many. Omit for 1.")
3603
3624
  },
3604
3625
  ["at"],
3605
3626
  I
@@ -3608,7 +3629,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3608
3629
  "sheet.merge",
3609
3630
  ["sheet"],
3610
3631
  "Merge a range into one cell.",
3611
- { sheet: v, range: _("A1 notation.") },
3632
+ { sheet: M, range: A("A1 notation.") },
3612
3633
  ["range"],
3613
3634
  I
3614
3635
  ),
@@ -3616,7 +3637,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3616
3637
  "sheet.unmerge",
3617
3638
  ["sheet"],
3618
3639
  "Break merged cells in a range apart.",
3619
- { sheet: v, range: _("A1 notation.") },
3640
+ { sheet: M, range: A("A1 notation.") },
3620
3641
  ["range"],
3621
3642
  I
3622
3643
  ),
@@ -3625,9 +3646,9 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3625
3646
  ["sheet"],
3626
3647
  "Sort a range on one of its columns.",
3627
3648
  {
3628
- sheet: v,
3629
- range: _("A1 notation covering the rows to sort, header excluded."),
3630
- column: A("1-based column *within the range*, not within the sheet."),
3649
+ sheet: M,
3650
+ range: A("A1 notation covering the rows to sort, header excluded."),
3651
+ column: _("1-based column *within the range*, not within the sheet."),
3631
3652
  ascending: Q("Ascending. Omit for ascending.")
3632
3653
  },
3633
3654
  ["range", "column"],
@@ -3637,7 +3658,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3637
3658
  "sheet.insertSheet",
3638
3659
  ["sheet"],
3639
3660
  "Add a new sheet.",
3640
- { name: _("Name for the new sheet.") },
3661
+ { name: A("Name for the new sheet.") },
3641
3662
  ["name"],
3642
3663
  I
3643
3664
  ),
@@ -3645,7 +3666,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3645
3666
  "sheet.renameSheet",
3646
3667
  ["sheet"],
3647
3668
  "Rename a sheet.",
3648
- { sheet: _("Current name."), name: _("New name.") },
3669
+ { sheet: A("Current name."), name: A("New name.") },
3649
3670
  ["sheet", "name"],
3650
3671
  I
3651
3672
  ),
@@ -3653,7 +3674,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3653
3674
  "sheet.deleteSheet",
3654
3675
  ["sheet"],
3655
3676
  "Remove a sheet and everything on it.",
3656
- { sheet: _("Name of the sheet to delete.") },
3677
+ { sheet: A("Name of the sheet to delete.") },
3657
3678
  ["sheet"],
3658
3679
  I
3659
3680
  ),
@@ -3661,18 +3682,18 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3661
3682
  "sheet.activate",
3662
3683
  ["sheet"],
3663
3684
  "Show the user a sheet and select a range on it.",
3664
- { sheet: v, range: _("A1 notation to select. Omit to only switch sheets.") },
3685
+ { sheet: M, range: A("A1 notation to select. Omit to only switch sheets.") },
3665
3686
  [],
3666
3687
  B
3667
3688
  )
3668
- ], li = [
3689
+ ], us = [
3669
3690
  b(
3670
3691
  "word.replaceParagraph",
3671
3692
  ["word"],
3672
3693
  "Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",
3673
3694
  {
3674
- at: A("The offset the paragraph starts at, exactly as `inspect` prints it."),
3675
- text: _("The new text for that paragraph. A newline starts a further paragraph.")
3695
+ at: _("The offset the paragraph starts at, exactly as `inspect` prints it."),
3696
+ text: A("The new text for that paragraph. A newline starts a further paragraph.")
3676
3697
  },
3677
3698
  ["at", "text"],
3678
3699
  I
@@ -3682,9 +3703,9 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3682
3703
  ["word"],
3683
3704
  "Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",
3684
3705
  {
3685
- start: A("Character offset where the replaced text starts, as `inspect` reports offsets."),
3686
- end: A("Character offset just past the last character to replace."),
3687
- text: _("The replacement text. A newline starts a new paragraph.")
3706
+ start: _("Character offset where the replaced text starts, as `inspect` reports offsets."),
3707
+ end: _("Character offset just past the last character to replace."),
3708
+ text: A("The replacement text. A newline starts a new paragraph.")
3688
3709
  },
3689
3710
  ["start", "end", "text"],
3690
3711
  I
@@ -3694,8 +3715,8 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3694
3715
  ["word"],
3695
3716
  "Insert text at a character offset, without removing anything.",
3696
3717
  {
3697
- index: A("Character offset, as `inspect` reports offsets."),
3698
- text: _("The text to insert.")
3718
+ index: _("Character offset, as `inspect` reports offsets."),
3719
+ text: A("The text to insert.")
3699
3720
  },
3700
3721
  ["index", "text"],
3701
3722
  I
@@ -3704,7 +3725,7 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3704
3725
  "word.appendText",
3705
3726
  ["word"],
3706
3727
  "Add text at the end of the document.",
3707
- { text: _("The text to append.") },
3728
+ { text: A("The text to append.") },
3708
3729
  ["text"],
3709
3730
  I
3710
3731
  ),
@@ -3713,8 +3734,8 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3713
3734
  ["word"],
3714
3735
  "Start a new paragraph, optionally with text in it.",
3715
3736
  {
3716
- text: _("Paragraph text. Newlines start further paragraphs."),
3717
- index: A("Character offset to insert at. Omit for the end of the document.")
3737
+ text: A("Paragraph text. Newlines start further paragraphs."),
3738
+ index: _("Character offset to insert at. Omit for the end of the document.")
3718
3739
  },
3719
3740
  [],
3720
3741
  I
@@ -3723,19 +3744,19 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3723
3744
  "word.setSelection",
3724
3745
  ["word"],
3725
3746
  "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.",
3726
- { start: A("Start character offset."), end: A("End character offset. Omit for a caret.") },
3747
+ { start: _("Start character offset."), end: _("End character offset. Omit for a caret.") },
3727
3748
  ["start"],
3728
3749
  B
3729
3750
  )
3730
- ], ui = [
3751
+ ], ds = [
3731
3752
  b(
3732
3753
  "slides.setText",
3733
3754
  ["slides"],
3734
3755
  "Replace the text of one shape. Written on save; not visible before that, and not undoable.",
3735
3756
  {
3736
3757
  slide: lt,
3737
- element: _("Element id, as `inspect` reports it."),
3738
- text: _("The new text.")
3758
+ element: A("Element id, as `inspect` reports it."),
3759
+ text: A("The new text.")
3739
3760
  },
3740
3761
  ["slide", "element", "text"],
3741
3762
  ee
@@ -3746,63 +3767,63 @@ const B = { undoable: !1, visible: !0 }, I = { undoable: !0, visible: !0 }, ut =
3746
3767
  "Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",
3747
3768
  {
3748
3769
  slide: lt,
3749
- element: _("Element id."),
3750
- left: A("Distance from the left edge, in pixels."),
3751
- top: A("Distance from the top edge, in pixels."),
3752
- width: A("Width in pixels."),
3753
- height: A("Height in pixels.")
3770
+ element: A("Element id."),
3771
+ left: _("Distance from the left edge, in pixels."),
3772
+ top: _("Distance from the top edge, in pixels."),
3773
+ width: _("Width in pixels."),
3774
+ height: _("Height in pixels.")
3754
3775
  },
3755
3776
  ["slide", "element"],
3756
3777
  ee
3757
3778
  )
3758
3779
  ], Qt = [
3759
- ...ai,
3760
- ...ci,
3761
- ...li,
3762
- ...ui
3780
+ ...cs,
3781
+ ...ls,
3782
+ ...us,
3783
+ ...ds
3763
3784
  ];
3764
- function pu(e) {
3785
+ function mu(e) {
3765
3786
  return Qt.filter((t) => t.kinds.includes(e));
3766
3787
  }
3767
- function fu(e) {
3788
+ function hu(e) {
3768
3789
  return Qt.find((t) => t.op === e);
3769
3790
  }
3770
- const dt = /(?: {2,}|\\)$/, di = /^\*\*([^*]+)\*\*\s+(.*)$/;
3791
+ const dt = /(?: {2,}|\\)$/, ps = /^\*\*([^*]+)\*\*\s+(.*)$/;
3771
3792
  function pt(e) {
3772
- const t = di.exec(e);
3793
+ const t = ps.exec(e);
3773
3794
  return t ? { lead: t[1], text: t[2] } : { text: e };
3774
3795
  }
3775
- function mu(e) {
3796
+ function gu(e) {
3776
3797
  const t = (e ?? "").replace(/\r\n/g, `
3777
3798
  `).split(`
3778
3799
  `), n = [];
3779
3800
  let r = null;
3780
3801
  const o = () => {
3781
3802
  r && n.push({ type: "list", style: r.style, items: r.items }), r = null;
3782
- }, i = (p, f) => {
3803
+ }, s = (p, f) => {
3783
3804
  r && r.style !== p && o(), r ? r.items.push(pt(f)) : r = { style: p, items: [pt(f)] };
3784
3805
  };
3785
- let s = [], a = [];
3786
- const c = () => {
3787
- if (s.length) {
3788
- const p = s.join("").trim();
3789
- p && n.push({ type: "paragraph", text: p }), s = [];
3806
+ let i = [], a = [];
3807
+ const u = () => {
3808
+ if (i.length) {
3809
+ const p = i.join("").trim();
3810
+ p && n.push({ type: "paragraph", text: p }), i = [];
3790
3811
  }
3791
- }, u = () => {
3812
+ }, l = () => {
3792
3813
  a.length && (n.push({ type: "quote", text: a.join(`
3793
3814
  `) }), a = []);
3794
3815
  }, d = () => {
3795
- c(), u(), o();
3816
+ u(), l(), o();
3796
3817
  };
3797
- let l = 0;
3798
- for (; l < t.length; ) {
3799
- const p = t[l] ?? "", f = p.match(/^```(\w*)\s*$/);
3818
+ let c = 0;
3819
+ for (; c < t.length; ) {
3820
+ const p = t[c] ?? "", f = p.match(/^```(\w*)\s*$/);
3800
3821
  if (f) {
3801
3822
  d();
3802
3823
  const g = [];
3803
- for (l++; l < t.length && !/^```\s*$/.test(t[l] ?? ""); )
3804
- g.push(t[l] ?? ""), l++;
3805
- l++, n.push({ type: "code", ...f[1] ? { lang: f[1] } : {}, text: g.join(`
3824
+ for (c++; c < t.length && !/^```\s*$/.test(t[c] ?? ""); )
3825
+ g.push(t[c] ?? ""), c++;
3826
+ c++, n.push({ type: "code", ...f[1] ? { lang: f[1] } : {}, text: g.join(`
3806
3827
  `) });
3807
3828
  continue;
3808
3829
  }
@@ -3812,7 +3833,7 @@ function mu(e) {
3812
3833
  type: "heading",
3813
3834
  level: y[1].length,
3814
3835
  text: y[2].trim()
3815
- }), l++;
3836
+ }), c++;
3816
3837
  continue;
3817
3838
  }
3818
3839
  const m = p.match(/^!\[([^\]]*)\]\(([^)\s]+)\)\s*$/);
@@ -3821,57 +3842,57 @@ function mu(e) {
3821
3842
  type: "image",
3822
3843
  url: m[2],
3823
3844
  ...m[1] ? { alt: m[1] } : {}
3824
- }), l++;
3845
+ }), c++;
3825
3846
  continue;
3826
3847
  }
3827
3848
  if (/^\s*[-*]\s+/.test(p)) {
3828
- c(), u(), i("bulleted", p.replace(/^\s*[-*]\s+/, "")), l++;
3849
+ u(), l(), s("bulleted", p.replace(/^\s*[-*]\s+/, "")), c++;
3829
3850
  continue;
3830
3851
  }
3831
3852
  if (/^\s*\d+\.\s+/.test(p)) {
3832
- c(), u(), i("numbered", p.replace(/^\s*\d+\.\s+/, "")), l++;
3853
+ u(), l(), s("numbered", p.replace(/^\s*\d+\.\s+/, "")), c++;
3833
3854
  continue;
3834
3855
  }
3835
3856
  if (/^\s*(-{3,}|\*{3,}|_{3,})\s*$/.test(p)) {
3836
- d(), n.push({ type: "divider" }), l++;
3857
+ d(), n.push({ type: "divider" }), c++;
3837
3858
  continue;
3838
3859
  }
3839
3860
  if (/^>\s?/.test(p)) {
3840
- c(), o(), a.push(p.replace(/^>\s?/, "")), l++;
3861
+ u(), o(), a.push(p.replace(/^>\s?/, "")), c++;
3841
3862
  continue;
3842
3863
  }
3843
3864
  if (p.trim() === "") {
3844
- d(), l++;
3865
+ d(), c++;
3845
3866
  continue;
3846
3867
  }
3847
- u(), o();
3848
- const S = dt.test(p);
3849
- s.push(p.replace(dt, "").trim() + (S ? `
3850
- ` : " ")), l++;
3868
+ l(), o();
3869
+ const E = dt.test(p);
3870
+ i.push(p.replace(dt, "").trim() + (E ? `
3871
+ ` : " ")), c++;
3851
3872
  }
3852
3873
  return d(), n;
3853
3874
  }
3854
- function hu(e, t) {
3875
+ function yu(e, t) {
3855
3876
  return Dn(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, `
3856
3877
 
3857
3878
  `).trim();
3858
3879
  }
3859
- const gu = "documents.describe", yu = "documents.inspect", bu = "documents.apply";
3860
- function Au(e) {
3880
+ const bu = "documents.describe", _u = "documents.inspect", Au = "documents.apply";
3881
+ function Su(e) {
3861
3882
  const t = e.indexOf(":");
3862
3883
  if (t !== -1) return e.slice(0, t);
3863
3884
  const n = e.indexOf(".");
3864
3885
  return n === -1 ? e : e.slice(0, n);
3865
3886
  }
3866
- const _u = "installation-id";
3867
- function Eu(e) {
3887
+ const Eu = "installation-id";
3888
+ function Iu(e) {
3868
3889
  const t = [];
3869
3890
  for (const n of Object.keys(e))
3870
3891
  for (const r of Object.keys(e[n]))
3871
3892
  t.push({ lang: n, key: r, value: e[n][r] });
3872
3893
  return t;
3873
3894
  }
3874
- const Su = "notification-source", Iu = (e, t) => `${e}.pref.${t}`, Tu = {
3895
+ const Tu = "notification-source", wu = (e, t) => `${e}.pref.${t}`, ku = {
3875
3896
  ai: [
3876
3897
  "account.read",
3877
3898
  "account.write",
@@ -4006,96 +4027,96 @@ const Su = "notification-source", Iu = (e, t) => `${e}.pref.${t}`, Tu = {
4006
4027
  time: ["entry.read", "entry.write", "work-type.read", "work-type.write"],
4007
4028
  user: ["user.read", "user.write"],
4008
4029
  work: ["item.read", "item.write", "project.read", "project.write"]
4009
- }, Zt = 9e4, pi = ["out_of_office"], Jt = (e) => pi.includes(e);
4010
- function wu(e, t, n) {
4030
+ }, Zt = 9e4, fs = ["out_of_office"], Jt = (e) => fs.includes(e);
4031
+ function vu(e, t, n) {
4011
4032
  const r = n - e < Zt, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
4012
4033
  if (!o?.status) return { online: r, status: r ? "available" : "offline" };
4013
- const i = o.status;
4014
- return !r && !Jt(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
4034
+ const s = o.status;
4035
+ return !r && !Jt(s) ? { online: !1, status: "offline" } : { online: r, status: s, message: o.message };
4015
4036
  }
4016
- function ku(e, t) {
4037
+ function Mu(e, t) {
4017
4038
  const n = t - e.lastSeenAt < Zt, r = n || Jt(e.status) ? e.status : "offline";
4018
4039
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
4019
4040
  }
4020
- function Mu(e, t) {
4041
+ function Cu(e, t) {
4021
4042
  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 };
4022
4043
  }
4023
- function vu(e) {
4044
+ function Ou(e) {
4024
4045
  return e.providerAvailable && e.allowed;
4025
4046
  }
4026
- const Cu = "resources.describe", Ou = "resources.search", xu = "resources.resolve", Nu = "resources.attached";
4027
- function Ru(e) {
4047
+ const xu = "resources.describe", Nu = "resources.search", Ru = "resources.resolve", Du = "resources.attached";
4048
+ function $u(e) {
4028
4049
  const t = e.indexOf(":");
4029
4050
  return t === -1 ? e : e.slice(0, t);
4030
4051
  }
4031
- const Du = "/provider/scope/related", $u = "/provider/scope/read", en = "auth";
4052
+ const Lu = "/provider/scope/related", Pu = "/provider/scope/read", en = "auth";
4032
4053
  function tn(e) {
4033
4054
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
4034
4055
  return t ? t[1] : null;
4035
4056
  }
4036
- function Lu(e) {
4057
+ function Ku(e) {
4037
4058
  const t = tn(e);
4038
4059
  return t ? t !== en : typeof e == "string" && e.startsWith("/wake");
4039
4060
  }
4040
- function Pu(e) {
4061
+ function Uu(e) {
4041
4062
  return typeof e != "string" || e === "" || e === "/" ? !0 : tn(e) === en;
4042
4063
  }
4043
- function fi(e) {
4064
+ function ms(e) {
4044
4065
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4045
4066
  }
4046
- function mi(e) {
4047
- const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${fi(r)}`).join("");
4067
+ function hs(e) {
4068
+ const n = e.split("/").filter(Boolean).map((r) => r.startsWith(":") ? r.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : `/${ms(r)}`).join("");
4048
4069
  return new RegExp(`^${n}\\/?$`);
4049
4070
  }
4050
- function hi(e, t) {
4071
+ function gs(e, t) {
4051
4072
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean), o = {};
4052
- return n.forEach((i, s) => {
4053
- if (i.startsWith(":")) {
4054
- const a = i.endsWith("?") ? i.slice(1, -1) : i.slice(1), c = r[s];
4055
- c && (o[a] = c);
4073
+ return n.forEach((s, i) => {
4074
+ if (s.startsWith(":")) {
4075
+ const a = s.endsWith("?") ? s.slice(1, -1) : s.slice(1), u = r[i];
4076
+ u && (o[a] = u);
4056
4077
  }
4057
4078
  }), o;
4058
4079
  }
4059
- function gi(e) {
4080
+ function ys(e) {
4060
4081
  return e.publicBasePath ?? `/apps/${e.name}`;
4061
4082
  }
4062
- function Ku(e) {
4083
+ function Fu(e) {
4063
4084
  const t = [];
4064
4085
  for (const n of e) {
4065
4086
  if (!n?.name) continue;
4066
- const r = gi(n);
4087
+ const r = ys(n);
4067
4088
  for (const o of n.routes ?? []) {
4068
4089
  if (!o.public) continue;
4069
- const i = o.path === "/" ? "" : o.path;
4090
+ const s = o.path === "/" ? "" : o.path;
4070
4091
  t.push({
4071
4092
  appName: n.name,
4072
4093
  resource: o.resource,
4073
- pattern: `${r}${i}`,
4094
+ pattern: `${r}${s}`,
4074
4095
  props: o.props
4075
4096
  });
4076
4097
  }
4077
4098
  }
4078
4099
  return t;
4079
4100
  }
4080
- function yi(e, t) {
4101
+ function bs(e, t) {
4081
4102
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
4082
4103
  for (let o = 0; o < Math.min(n.length, r.length); o++) {
4083
- const i = n[o].startsWith(":"), s = r[o].startsWith(":");
4084
- if (i !== s) return s;
4104
+ const s = n[o].startsWith(":"), i = r[o].startsWith(":");
4105
+ if (s !== i) return i;
4085
4106
  }
4086
4107
  return n.length > r.length;
4087
4108
  }
4088
- function bi(e, t) {
4109
+ function _s(e, t) {
4089
4110
  if (typeof e != "string") return null;
4090
4111
  let n = null;
4091
4112
  for (const r of t)
4092
- mi(r.pattern).test(e) && (!n || yi(r.pattern, n.pattern)) && (n = r);
4093
- return n ? { ...n, params: { ...n.props, ...hi(n.pattern, e) } } : null;
4113
+ hs(r.pattern).test(e) && (!n || bs(r.pattern, n.pattern)) && (n = r);
4114
+ return n ? { ...n, params: { ...n.props, ...gs(n.pattern, e) } } : null;
4094
4115
  }
4095
- function Uu(e, t) {
4096
- return bi(e, t) !== null;
4116
+ function Bu(e, t) {
4117
+ return _s(e, t) !== null;
4097
4118
  }
4098
- const Fu = 10 * 1024 * 1024, Bu = 25 * 1024 * 1024, ju = "sync-target", Hu = 20, Ai = {
4119
+ const ju = 10 * 1024 * 1024, Hu = 25 * 1024 * 1024, Gu = "sync-target", Wu = 20, As = {
4099
4120
  afrikaans: [
4100
4121
  "[Muziek]",
4101
4122
  "(C) TV GELDERLAND 2021",
@@ -4245,14 +4266,14 @@ const Fu = 10 * 1024 * 1024, Bu = 25 * 1024 * 1024, ju = "sync-target", Hu = 20,
4245
4266
  "[MÚSICA]",
4246
4267
  "[Music cuts in British]"
4247
4268
  ]
4248
- }, _i = (e) => {
4269
+ }, Ss = (e) => {
4249
4270
  let t = e;
4250
- return Object.values(Ai).forEach((n) => {
4271
+ return Object.values(As).forEach((n) => {
4251
4272
  n.forEach((r) => {
4252
4273
  t = t.replaceAll(r, "");
4253
4274
  });
4254
4275
  }), t = t.replace(/\(.*?\)/g, ""), t = t.replace(/\[.*?\]/g, ""), t;
4255
- }, Ei = 6e4, Si = 8e3, Ii = 2, Ti = 0.4, wi = 3, ki = /* @__PURE__ */ new Set([
4276
+ }, Es = 6e4, Is = 8e3, Ts = 2, ws = 0.4, ks = 3, vs = /* @__PURE__ */ new Set([
4256
4277
  "aan",
4257
4278
  "als",
4258
4279
  "ben",
@@ -4365,52 +4386,52 @@ const Fu = 10 * 1024 * 1024, Bu = 25 * 1024 * 1024, ju = "sync-target", Hu = 20,
4365
4386
  "you",
4366
4387
  "your"
4367
4388
  ]);
4368
- function Mi(e) {
4389
+ function Ms(e) {
4369
4390
  const t = /* @__PURE__ */ new Set();
4370
4391
  for (const n of e.toLowerCase().split(/[^a-z0-9À-ɏ]+/))
4371
- n.length < wi || ki.has(n) || t.add(n);
4392
+ n.length < ks || vs.has(n) || t.add(n);
4372
4393
  return [...t];
4373
4394
  }
4374
- function vi(e, t) {
4395
+ function Cs(e, t) {
4375
4396
  if (!e.length) return 0;
4376
4397
  if (!t.length) return 1;
4377
4398
  const n = new Set(t), r = new Set(e);
4378
4399
  let o = 0;
4379
- for (const i of r) n.has(i) || (o += 1);
4400
+ for (const s of r) n.has(s) || (o += 1);
4380
4401
  return o / r.size;
4381
4402
  }
4382
- function Ci(e, t = Ei) {
4383
- const n = e.filter((s) => !s.partial && typeof s.text == "string");
4403
+ function Os(e, t = Es) {
4404
+ const n = e.filter((i) => !i.partial && typeof i.text == "string");
4384
4405
  if (!n.length) return { text: "", segmentCount: 0 };
4385
- const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
4386
- return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => _i(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
4406
+ const o = n.reduce((i, a) => Math.max(i, a.endedAt ?? 0), 0) - t;
4407
+ return { text: n.filter((i) => (i.endedAt ?? 0) >= o).map((i) => Ss(i.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
4387
4408
  }
4388
- const Oi = 60;
4389
- function Gu(e, t, n = Oi) {
4409
+ const xs = 60;
4410
+ function Vu(e, t, n = xs) {
4390
4411
  const r = new Set(e), o = [...e];
4391
- for (const i of t)
4392
- !i || r.has(i) || (r.add(i), o.push(i));
4412
+ for (const s of t)
4413
+ !s || r.has(s) || (r.add(s), o.push(s));
4393
4414
  return o.slice(-n);
4394
4415
  }
4395
- function Wu(e) {
4416
+ function zu(e) {
4396
4417
  const { segments: t, now: n, state: r } = e;
4397
- if (r.lastTriggerAt && n - r.lastTriggerAt < Si)
4418
+ if (r.lastTriggerAt && n - r.lastTriggerAt < Is)
4398
4419
  return { trigger: !1, reason: "too_soon" };
4399
- const o = Ci(t, e.windowMs);
4420
+ const o = Os(t, e.windowMs);
4400
4421
  if (!o.text) return { trigger: !1, reason: "no_speech" };
4401
- const i = o.segmentCount - (r.lastSegmentCount ?? 0);
4402
- if (r.lastQueryTerms && i < Ii)
4422
+ const s = o.segmentCount - (r.lastSegmentCount ?? 0);
4423
+ if (r.lastQueryTerms && s < Ts)
4403
4424
  return { trigger: !1, reason: "too_few_new" };
4404
- const s = Mi(o.text);
4405
- return s.length ? r.lastQueryTerms?.length && vi(s, r.lastQueryTerms) < Ti ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
4425
+ const i = Ms(o.text);
4426
+ return i.length ? r.lastQueryTerms?.length && Cs(i, r.lastQueryTerms) < ws ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: i, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
4406
4427
  }
4407
- const Vu = [
4428
+ const Xu = [
4408
4429
  "personal",
4409
4430
  "workspace",
4410
4431
  "connections",
4411
4432
  "work",
4412
4433
  "ai"
4413
- ], zu = "navNotice", De = {
4434
+ ], Yu = "navNotice", De = {
4414
4435
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
4415
4436
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
4416
4437
  // An over-permissive key is harmless — it simply matches nothing.
@@ -4433,7 +4454,7 @@ const Vu = [
4433
4454
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
4434
4455
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
4435
4456
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
4436
- }, xi = "NL", Ni = 15, Ri = 8, Di = Array.from(
4457
+ }, Ns = "NL", Rs = 15, Ds = 8, $s = Array.from(
4437
4458
  new Set(Object.values(De).map((e) => e.callingCode))
4438
4459
  ).sort((e, t) => t.length - e.length);
4439
4460
  function ft(e) {
@@ -4444,27 +4465,27 @@ function Z(e, t) {
4444
4465
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
4445
4466
  }
4446
4467
  function mt(e) {
4447
- if (e.length > Ni) return null;
4448
- for (const t of Di) {
4468
+ if (e.length > Rs) return null;
4469
+ for (const t of $s) {
4449
4470
  if (!e.startsWith(t)) continue;
4450
4471
  const n = e.slice(t.length);
4451
4472
  for (const r of Object.values(De)) {
4452
4473
  if (r.callingCode !== t) continue;
4453
- const o = r.trunkPrefix, i = o && n.startsWith(o) ? n.slice(o.length) : n;
4454
- if (Z(i, r)) return `+${t}${i}`;
4474
+ const o = r.trunkPrefix, s = o && n.startsWith(o) ? n.slice(o.length) : n;
4475
+ if (Z(s, r)) return `+${t}${s}`;
4455
4476
  }
4456
4477
  return null;
4457
4478
  }
4458
- return e.length < Ri ? null : `+${e}`;
4479
+ return e.length < Ds ? null : `+${e}`;
4459
4480
  }
4460
- function $i(e) {
4481
+ function Ls(e) {
4461
4482
  let t = e.trim();
4462
4483
  const n = t.match(/^(sips?|tel|whatsapp):/i);
4463
4484
  n && (t = t.slice(n[0].length));
4464
4485
  const r = t.indexOf("@");
4465
4486
  return r >= 0 && (t = t.slice(0, r)), t.trim();
4466
4487
  }
4467
- function Xu(e) {
4488
+ function qu(e) {
4468
4489
  if (!e) return !1;
4469
4490
  const t = e.indexOf("@");
4470
4491
  if (t <= 0) return !1;
@@ -4473,26 +4494,26 @@ function Xu(e) {
4473
4494
  }
4474
4495
  function ht(e, t) {
4475
4496
  if (!e) return null;
4476
- const n = $i(e);
4497
+ const n = Ls(e);
4477
4498
  if (!n) return null;
4478
4499
  const r = n.startsWith("+"), o = n.replace(/\D/g, "");
4479
4500
  if (!o) return null;
4480
4501
  if (r) return mt(o);
4481
4502
  if (o.startsWith("00")) return mt(o.slice(2));
4482
- const i = ft(t) ?? ft(xi);
4483
- if (!i) return null;
4484
- const s = i.trunkPrefix;
4485
- if (s && o.startsWith(s)) {
4486
- const a = o.slice(s.length);
4487
- return Z(a, i) ? `+${i.callingCode}${a}` : null;
4503
+ const s = ft(t) ?? ft(Ns);
4504
+ if (!s) return null;
4505
+ const i = s.trunkPrefix;
4506
+ if (i && o.startsWith(i)) {
4507
+ const a = o.slice(i.length);
4508
+ return Z(a, s) ? `+${s.callingCode}${a}` : null;
4488
4509
  }
4489
- if (o.startsWith(i.callingCode)) {
4490
- const a = o.slice(i.callingCode.length);
4491
- if (Z(a, i)) return `+${i.callingCode}${a}`;
4510
+ if (o.startsWith(s.callingCode)) {
4511
+ const a = o.slice(s.callingCode.length);
4512
+ if (Z(a, s)) return `+${s.callingCode}${a}`;
4492
4513
  }
4493
- return !s && Z(o, i) ? `+${i.callingCode}${o}` : null;
4514
+ return !i && Z(o, s) ? `+${s.callingCode}${o}` : null;
4494
4515
  }
4495
- function Yu(e, t = 9) {
4516
+ function Qu(e, t = 9) {
4496
4517
  const n = (e ?? "").replace(/\D/g, "");
4497
4518
  return n.length < t ? null : n.slice(-t);
4498
4519
  }
@@ -4503,11 +4524,11 @@ function nn(e) {
4503
4524
  const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
4504
4525
  return !r || !o.includes(".") ? null : `${r}@${o}`;
4505
4526
  }
4506
- function qu(e) {
4527
+ function Zu(e) {
4507
4528
  const t = nn(e);
4508
4529
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
4509
4530
  }
4510
- const Li = /* @__PURE__ */ new Set([
4531
+ const Ps = /* @__PURE__ */ new Set([
4511
4532
  "co.uk",
4512
4533
  "org.uk",
4513
4534
  "gov.uk",
@@ -4517,14 +4538,14 @@ const Li = /* @__PURE__ */ new Set([
4517
4538
  "com.br",
4518
4539
  "co.za"
4519
4540
  ]);
4520
- function Pi(e) {
4541
+ function Ks(e) {
4521
4542
  if (!e) return null;
4522
4543
  const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
4523
4544
  if (t.length < 2) return null;
4524
4545
  const n = t.slice(-2).join(".");
4525
- return Li.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
4546
+ return Ps.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
4526
4547
  }
4527
- const Ki = /* @__PURE__ */ new Set([
4548
+ const Us = /* @__PURE__ */ new Set([
4528
4549
  "gmail.com",
4529
4550
  "googlemail.com",
4530
4551
  "outlook.com",
@@ -4569,34 +4590,34 @@ const Ki = /* @__PURE__ */ new Set([
4569
4590
  "proximus.be",
4570
4591
  "scarlet.be"
4571
4592
  ]);
4572
- function Qu(e) {
4573
- const t = Pi(e);
4574
- return t ? Ki.has(t) : !1;
4593
+ function Ju(e) {
4594
+ const t = Ks(e);
4595
+ return t ? Us.has(t) : !1;
4575
4596
  }
4576
- function Zu(e) {
4597
+ function ed(e) {
4577
4598
  if (!e) return !1;
4578
4599
  const t = e.trim().toLowerCase();
4579
4600
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
4580
4601
  }
4581
- function Ju(e, t, n) {
4602
+ function td(e, t, n) {
4582
4603
  if (!e || !t) return null;
4583
4604
  const r = e.trim().toLowerCase();
4584
4605
  if (r === "tel" || r === "sms" || r === "whatsapp") {
4585
- const i = ht(t, n);
4586
- return i ? `tel:${i}` : null;
4606
+ const s = ht(t, n);
4607
+ return s ? `tel:${s}` : null;
4587
4608
  }
4588
4609
  if (r === "fax") {
4589
- const i = ht(t, n);
4590
- return i ? `fax:${i}` : null;
4610
+ const s = ht(t, n);
4611
+ return s ? `fax:${s}` : null;
4591
4612
  }
4592
4613
  if (r === "mailto" || r === "email") {
4593
- const i = nn(t);
4594
- return i ? `mailto:${i}` : null;
4614
+ const s = nn(t);
4615
+ return s ? `mailto:${s}` : null;
4595
4616
  }
4596
4617
  const o = t.trim().toLowerCase();
4597
4618
  return o ? `${r}:${o}` : null;
4598
4619
  }
4599
- const Ui = [
4620
+ const Fs = [
4600
4621
  /<blockquote/i,
4601
4622
  /class="?gmail_quote/i,
4602
4623
  // Gmail quote container
@@ -4609,24 +4630,24 @@ const Ui = [
4609
4630
  // Outlook underscore separator before "From:"
4610
4631
  /\bOn\b[\s\S]{0,200}?\bwrote:/i
4611
4632
  // Gmail "On <date> <name> wrote:"
4612
- ], gt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Fi = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
4613
- function Bi(e) {
4633
+ ], gt = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Bs = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
4634
+ function js(e) {
4614
4635
  const t = e.split(`
4615
4636
  `);
4616
4637
  for (let n = 0; n < t.length; n++)
4617
- if (Fi.test(t[n]) || gt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => gt.test(r)))
4638
+ if (Bs.test(t[n]) || gt.test(t[n]) && t.slice(n + 1, n + 4).some((r) => gt.test(r)))
4618
4639
  return t.slice(0, n).join(`
4619
4640
  `).trim();
4620
4641
  return e;
4621
4642
  }
4622
- const ji = /^(?:https?:|mailto:|tel:)/i, Hi = /^(?:https?:|cid:|data:image\/)/i;
4643
+ const Hs = /^(?:https?:|mailto:|tel:)/i, Gs = /^(?:https?:|cid:|data:image\/)/i;
4623
4644
  function de(e, t) {
4624
4645
  const n = e.match(new RegExp(`\\b${t}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s">]+))`, "i"));
4625
4646
  return (n?.[1] ?? n?.[2] ?? n?.[3] ?? "").trim();
4626
4647
  }
4627
- const Gi = /(!\[[^\]]*\]\([^)]*\))/;
4648
+ const Ws = /(!\[[^\]]*\]\([^)]*\))/;
4628
4649
  function yt(e) {
4629
- return e.replace(/\s+/g, " ").trim().split(Gi).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
4650
+ return e.replace(/\s+/g, " ").trim().split(Ws).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
4630
4651
  }
4631
4652
  function pe(e) {
4632
4653
  return e.replace(
@@ -4634,86 +4655,86 @@ function pe(e) {
4634
4655
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
4635
4656
  );
4636
4657
  }
4637
- function Wi(e) {
4658
+ function Vs(e) {
4638
4659
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
4639
4660
  const o = de(r, "src");
4640
- return Hi.test(o) ? `![${yt(de(r, "alt"))}](${pe(o)})` : "";
4661
+ return Gs.test(o) ? `![${yt(de(r, "alt"))}](${pe(o)})` : "";
4641
4662
  }).replace(
4642
4663
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
4643
4664
  (n, r, o) => {
4644
- const i = yt(o.replace(/<[^>]*>/g, "")), s = de(r, "href");
4645
- return ji.test(s) ? `[${i || pe(s)}](${pe(s)})` : i;
4665
+ const s = yt(o.replace(/<[^>]*>/g, "")), i = de(r, "href");
4666
+ return Hs.test(i) ? `[${s || pe(i)}](${pe(i)})` : s;
4646
4667
  }
4647
4668
  );
4648
4669
  }
4649
- const Vi = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, zi = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, Xi = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
4650
- function Yi(e, t) {
4670
+ const zs = /<table\b[^>]*>((?:(?!<table\b)[\s\S])*?)<\/table\s*>/i, Xs = /<tr\b[^>]*>([\s\S]*?)<\/tr\s*>/gi, Ys = /<(t[dh])\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
4671
+ function qs(e, t) {
4651
4672
  return /<table\b/i.test(e) || e.includes(`
4652
4673
 
4653
4674
  |`) || t.includes("![") || t.length > 200;
4654
4675
  }
4655
- const qi = 40, Qi = { left: "---", center: ":---:", right: "---:" };
4656
- function Zi(e) {
4676
+ const Qs = 40, Zs = { left: "---", center: ":---:", right: "---:" };
4677
+ function Js(e) {
4657
4678
  const t = e.match(/align\s*[=:]\s*["']?\s*(right|center)/i);
4658
4679
  return t ? t[1].toLowerCase() : "left";
4659
4680
  }
4660
- function Ji(e) {
4681
+ function ei(e) {
4661
4682
  return e.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim().replace(/\|/g, "\\|");
4662
4683
  }
4663
- function es(e) {
4684
+ function ti(e) {
4664
4685
  const t = [];
4665
- for (const s of e.matchAll(zi)) {
4686
+ for (const i of e.matchAll(Xs)) {
4666
4687
  const a = [];
4667
- for (const c of s[1].matchAll(Xi)) {
4668
- const u = Ji(c[3]);
4669
- if (Yi(c[3], u)) return null;
4670
- a.push({ text: u, align: Zi(c[2]) });
4688
+ for (const u of i[1].matchAll(Ys)) {
4689
+ const l = ei(u[3]);
4690
+ if (qs(u[3], l)) return null;
4691
+ a.push({ text: l, align: Js(u[2]) });
4671
4692
  }
4672
4693
  if (a.length === 0) return null;
4673
- a.some((c) => c.text !== "") && t.push(a);
4694
+ a.some((u) => u.text !== "") && t.push(a);
4674
4695
  }
4675
4696
  const n = t[0]?.length ?? 0;
4676
- if (t.length < 2 || n < 2 || t.some((s) => s.length !== n)) return null;
4677
- const r = (s) => `| ${s.map((a) => a.text).join(" | ")} |`, o = t[1].map((s) => Qi[s.align]).join(" | "), i = t.slice(1).map(r).join(`
4697
+ if (t.length < 2 || n < 2 || t.some((i) => i.length !== n)) return null;
4698
+ const r = (i) => `| ${i.map((a) => a.text).join(" | ")} |`, o = t[1].map((i) => Zs[i.align]).join(" | "), s = t.slice(1).map(r).join(`
4678
4699
  `);
4679
4700
  return `
4680
4701
 
4681
4702
  ${r(t[0])}
4682
4703
  | ${o} |
4683
- ${i}
4704
+ ${s}
4684
4705
 
4685
4706
  `;
4686
4707
  }
4687
- function ts(e) {
4708
+ function ni(e) {
4688
4709
  return e.replace(/<\/(t[dh])\s*>/gi, " ").replace(/<\/tr\s*>/gi, `
4689
4710
  `).replace(/<(?:tbody|thead|tfoot|caption|colgroup|col|tr|t[dh])\b[^>]*>/gi, "").replace(/<\/(?:tbody|thead|tfoot|caption|colgroup)\s*>/gi, "");
4690
4711
  }
4691
- function ns(e) {
4712
+ function ri(e) {
4692
4713
  let t = e;
4693
- for (let n = 0; n < qi; n++) {
4694
- const r = Vi.exec(t);
4714
+ for (let n = 0; n < Qs; n++) {
4715
+ const r = zs.exec(t);
4695
4716
  if (!r || r.index === void 0) break;
4696
- const i = es(r[1]) ?? `
4717
+ const s = ti(r[1]) ?? `
4697
4718
 
4698
- ${ts(r[1])}
4719
+ ${ni(r[1])}
4699
4720
 
4700
4721
  `;
4701
- t = t.slice(0, r.index) + i + t.slice(r.index + r[0].length);
4722
+ t = t.slice(0, r.index) + s + t.slice(r.index + r[0].length);
4702
4723
  }
4703
4724
  return t;
4704
4725
  }
4705
4726
  function bt(e, t) {
4706
4727
  let n = e;
4707
4728
  return n = n.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), n = n.replace(/<!--[\s\S]*?-->/g, ""), n = n.replace(/<br\s*\/?>/gi, `
4708
- `), t && (n = ns(Wi(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
4729
+ `), t && (n = ri(Vs(n))), n = n.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
4709
4730
 
4710
4731
  `), n = n.replace(/<\/(div|li|tr)>/gi, `
4711
4732
  `), n = n.replace(/<\/(td|th)>/gi, " "), n = n.replace(/<[^>]+>/g, ""), n = n.replace(/<[^>]*$/, ""), n;
4712
4733
  }
4713
- function At(e) {
4734
+ function _t(e) {
4714
4735
  return !Number.isInteger(e) || e < 0 || e > 1114111 ? null : String.fromCodePoint(e);
4715
4736
  }
4716
- const rs = {
4737
+ const oi = {
4717
4738
  euro: "€",
4718
4739
  pound: "£",
4719
4740
  yen: "¥",
@@ -4735,47 +4756,47 @@ const rs = {
4735
4756
  rdquo: "”",
4736
4757
  apos: "'"
4737
4758
  };
4738
- function _t(e) {
4739
- return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => rs[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => At(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => At(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
4759
+ function At(e) {
4760
+ return e.replace(/&nbsp;/gi, " ").replace(/&([a-z]+);/gi, (t, n) => oi[n.toLowerCase()] ?? t).replace(/&lt;/gi, "<").replace(/&gt;/gi, ">").replace(/&quot;/gi, '"').replace(/&#(\d+);/g, (t, n) => _t(Number(n)) ?? t).replace(/&#x([0-9a-f]+);/gi, (t, n) => _t(parseInt(n, 16)) ?? t).replace(/&amp;/gi, "&");
4740
4761
  }
4741
- function Et(e) {
4762
+ function St(e) {
4742
4763
  return e.replace(/\r/g, "").replace(/[ \t]+/g, " ").replace(/ *\n */g, `
4743
4764
  `).replace(/\n{3,}/g, `
4744
4765
 
4745
4766
  `).trim();
4746
4767
  }
4747
- const os = /<\s*(html|body|div|p|table|br|span)\b/i;
4748
- function ed(e) {
4749
- return os.test(e);
4768
+ const si = /<\s*(html|body|div|p|table|br|span)\b/i;
4769
+ function nd(e) {
4770
+ return si.test(e);
4750
4771
  }
4751
- function td(e) {
4772
+ function rd(e) {
4752
4773
  return rn(e, !1);
4753
4774
  }
4754
- function nd(e) {
4775
+ function od(e) {
4755
4776
  return rn(e, !0);
4756
4777
  }
4757
4778
  function rn(e, t) {
4758
4779
  if (typeof e != "string" || !e) return "";
4759
4780
  let n = e.length;
4760
- for (const s of Ui) {
4761
- const a = e.search(s);
4781
+ for (const i of Fs) {
4782
+ const a = e.search(i);
4762
4783
  a >= 0 && a < n && (n = a);
4763
4784
  }
4764
4785
  const r = e.slice(0, n);
4765
- let o = Et(_t(bt(r, t)));
4766
- return o || (o = Et(_t(bt(e, t)))), Bi(o) || o;
4786
+ let o = St(At(bt(r, t)));
4787
+ return o || (o = St(At(bt(e, t)))), js(o) || o;
4767
4788
  }
4768
4789
  export {
4769
- zs as ACTIVE_ASSIGNMENT_STATUSES,
4790
+ Xi as ACTIVE_ASSIGNMENT_STATUSES,
4770
4791
  R as ACTIVITY_CATALOG,
4771
- Jo as AI_ATTACHMENT_LIMITS,
4772
- Ul as AI_ATTACHMENT_MAX_PER_TURN,
4773
- Kl as AI_ATTACHMENT_TURN_BUDGET,
4792
+ es as AI_ATTACHMENT_LIMITS,
4793
+ Bl as AI_ATTACHMENT_MAX_PER_TURN,
4794
+ Fl as AI_ATTACHMENT_TURN_BUDGET,
4774
4795
  Tt as AI_VENDORS,
4775
4796
  kn as ALLOWED_LINK_SCHEMES,
4776
- Tu as APP_PERMISSIONS,
4797
+ ku as APP_PERMISSIONS,
4777
4798
  He as ARTIFACT_MAX_BLOCKS,
4778
- Fs as ARTIFACT_MAX_BODY_BYTES,
4799
+ Bi as ARTIFACT_MAX_BODY_BYTES,
4779
4800
  q as ARTIFACT_MAX_CELL_LEN,
4780
4801
  ze as ARTIFACT_MAX_KPI_ITEMS,
4781
4802
  Ge as ARTIFACT_MAX_LIST_ITEMS,
@@ -4783,37 +4804,37 @@ export {
4783
4804
  We as ARTIFACT_MAX_TABLE_ROWS,
4784
4805
  kt as ARTIFACT_MAX_TEXT_LEN,
4785
4806
  Ln as ASSIGNMENT_SCOPE_KIND,
4786
- Gl as ASSIST_BANDS,
4787
- Hl as ASSIST_SOURCE_PROVIDER_GROUP,
4807
+ Vl as ASSIST_BANDS,
4808
+ Wl as ASSIST_SOURCE_PROVIDER_GROUP,
4788
4809
  ir as ATTENTION_STATUSES,
4789
- wo as AT_RISK_GAP,
4810
+ ko as AT_RISK_GAP,
4790
4811
  en as AUTH_APP_NAME,
4791
4812
  io as AUTO_READY_MIN_PROPOSALS,
4792
- so as AUTO_READY_RATE,
4813
+ ao as AUTO_READY_RATE,
4793
4814
  hn as ActivityTypeRegistry,
4794
- Ss as BUILT_IN_ONLY,
4795
- sr as BULK_PENALTY,
4796
- Si as CADENCE_FLOOR_MS,
4797
- Ii as CADENCE_MIN_NEW_SEGMENTS,
4798
- Ti as CADENCE_MIN_NOVELTY,
4799
- Ei as CADENCE_WINDOW_MS,
4800
- mc as CLASSIFY_VARS,
4801
- uu as CONNECTOR_PROVIDER_GROUP,
4802
- du as CONTEXT_COLLECT_SERVICE,
4803
- Ds as CORE_DIMENSIONS,
4804
- ii as CommunicationScheme,
4805
- qn as DAY_MS,
4806
- So as DEFAULT_CHECK_IN_DAYS,
4807
- Kr as DEFAULT_FORECAST_WEEKS,
4808
- Ka as DEFAULT_MEMORY_BUDGET,
4809
- xi as DEFAULT_PHONE_REGION,
4810
- ul as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
4811
- Ya as DEMAND_SOURCE_PROVIDER_GROUP,
4812
- bu as DOCUMENT_APPLY_SERVICE,
4813
- gu as DOCUMENT_DESCRIBE_SERVICE,
4814
- yu as DOCUMENT_INSPECT_SERVICE,
4815
+ Ii as BUILT_IN_ONLY,
4816
+ ar as BULK_PENALTY,
4817
+ Is as CADENCE_FLOOR_MS,
4818
+ Ts as CADENCE_MIN_NEW_SEGMENTS,
4819
+ ws as CADENCE_MIN_NOVELTY,
4820
+ Es as CADENCE_WINDOW_MS,
4821
+ gc as CLASSIFY_VARS,
4822
+ pu as CONNECTOR_PROVIDER_GROUP,
4823
+ fu as CONTEXT_COLLECT_SERVICE,
4824
+ $i as CORE_DIMENSIONS,
4825
+ is as CommunicationScheme,
4826
+ Qn as DAY_MS,
4827
+ Io as DEFAULT_CHECK_IN_DAYS,
4828
+ Ur as DEFAULT_FORECAST_WEEKS,
4829
+ Fa as DEFAULT_MEMORY_BUDGET,
4830
+ Ns as DEFAULT_PHONE_REGION,
4831
+ pl as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
4832
+ Qa as DEMAND_SOURCE_PROVIDER_GROUP,
4833
+ Au as DOCUMENT_APPLY_SERVICE,
4834
+ bu as DOCUMENT_DESCRIBE_SERVICE,
4835
+ _u as DOCUMENT_INSPECT_SERVICE,
4815
4836
  He as DOCUMENT_MAX_BLOCKS,
4816
- Fs as DOCUMENT_MAX_BODY_BYTES,
4837
+ Bi as DOCUMENT_MAX_BODY_BYTES,
4817
4838
  q as DOCUMENT_MAX_CELL_LEN,
4818
4839
  ze as DOCUMENT_MAX_KPI_ITEMS,
4819
4840
  Xe as DOCUMENT_MAX_LETTERHEAD_FIELDS,
@@ -4824,420 +4845,422 @@ export {
4824
4845
  kt as DOCUMENT_MAX_TEXT_LEN,
4825
4846
  Ye as DOCUMENT_MAX_TOTALS_ROWS,
4826
4847
  Qt as DOCUMENT_OPERATIONS,
4827
- $o as DUTCH_SLOT_LABELS,
4828
- gc as EMPTY_WORKFLOW,
4829
- su as FEATURE_FOLDER_MANAGEMENT,
4830
- cu as FEATURE_MESSAGE_REACTIONS,
4831
- au as FEATURE_REMOTE_SEARCH,
4848
+ Lo as DUTCH_SLOT_LABELS,
4849
+ bc as EMPTY_WORKFLOW,
4850
+ cu as FEATURE_FOLDER_MANAGEMENT,
4851
+ uu as FEATURE_MESSAGE_REACTIONS,
4852
+ lu as FEATURE_REMOTE_SEARCH,
4832
4853
  Ce as FIXED_KINDS,
4833
4854
  ne as FIXED_LEVELS,
4834
4855
  Ne as FIXED_TYPES,
4835
- oa as FIXED_UNITS,
4836
- cr as FOLLOW_UP_HOURS,
4837
- sl as FROZEN_WRITABLE_FIELDS,
4838
- Yn as HOUR_MS,
4839
- os as HTML_BODY_RE,
4856
+ ia as FIXED_UNITS,
4857
+ lr as FOLLOW_UP_HOURS,
4858
+ cl as FROZEN_WRITABLE_FIELDS,
4859
+ qn as HOUR_MS,
4860
+ si as HTML_BODY_RE,
4840
4861
  L as INELIGIBLE,
4841
- _u as INSTALLATION_HEADER,
4842
- eo as INTERACTION_KIND,
4843
- ou as InteractionParticipantRole,
4844
- gr as KB_FALLBACK_LOCALE,
4862
+ Eu as INSTALLATION_HEADER,
4863
+ to as INTERACTION_KIND,
4864
+ iu as InteractionParticipantRole,
4865
+ yr as KB_FALLBACK_LOCALE,
4845
4866
  Ze as KB_LOCALES,
4846
4867
  Ze as LOCALES,
4847
4868
  Re as LOOSE_STATUSES,
4848
- tr as MAIL_HINT_HEADERS,
4849
- cs as MAX_ACTIONS,
4869
+ nr as MAIL_HINT_HEADERS,
4870
+ li as MAX_ACTIONS,
4850
4871
  Pn as MAX_ASSIGNMENT_TURNS,
4851
- is as MAX_BLOCKS,
4872
+ ii as MAX_BLOCKS,
4852
4873
  Dt as MAX_COLLECTION_DEPTH,
4853
- Fu as MAX_EDITABLE_FILE_BYTES,
4854
- ss as MAX_FIELDS,
4855
- as as MAX_LIST_ITEMS,
4856
- Da as MAX_MEMORY_BROWSE,
4857
- Pa as MAX_MEMORY_BUDGET,
4858
- $a as MAX_MEMORY_CHARS,
4859
- Oi as MAX_SHOWN_KEYS,
4860
- Oo as MAX_TOPIC_CANDIDATES,
4861
- Co as MAX_TOPIC_EXAMPLES,
4874
+ ju as MAX_EDITABLE_FILE_BYTES,
4875
+ ai as MAX_FIELDS,
4876
+ ci as MAX_LIST_ITEMS,
4877
+ La as MAX_MEMORY_BROWSE,
4878
+ Ua as MAX_MEMORY_BUDGET,
4879
+ Pa as MAX_MEMORY_CHARS,
4880
+ xs as MAX_SHOWN_KEYS,
4881
+ xo as MAX_TOPIC_CANDIDATES,
4882
+ Oo as MAX_TOPIC_EXAMPLES,
4862
4883
  ue as MAX_TOPIC_EXAMPLE_CHARS,
4863
- Bu as MAX_VIEWABLE_FILE_BYTES,
4864
- La as MIN_MEMORY_BUDGET,
4865
- zu as NAV_NOTICE_SLOT,
4866
- Fa as NL_TAX_RATES,
4867
- Su as NOTIFICATION_SOURCE_PROVIDER_GROUP,
4868
- ko as OFF_TRACK_GAP,
4869
- ja as ONBOARDING_SOURCE_PROVIDER_GROUP,
4870
- Ee as PAUSE_SNOOZED,
4871
- Se as PAUSE_WAITING_FOR_CUSTOMER,
4884
+ Hu as MAX_VIEWABLE_FILE_BYTES,
4885
+ Ka as MIN_MEMORY_BUDGET,
4886
+ Yu as NAV_NOTICE_SLOT,
4887
+ ja as NL_TAX_RATES,
4888
+ Tu as NOTIFICATION_SOURCE_PROVIDER_GROUP,
4889
+ vo as OFF_TRACK_GAP,
4890
+ Ga as ONBOARDING_SOURCE_PROVIDER_GROUP,
4891
+ Se as PAUSE_SNOOZED,
4892
+ Ee as PAUSE_WAITING_FOR_CUSTOMER,
4872
4893
  De as PHONE_REGIONS,
4873
4894
  Zt as PRESENCE_ONLINE_WINDOW_MS,
4874
- pi as PRESENCE_SURVIVES_OFFLINE,
4875
- Fo as PRODUCT_SCOPE_KIND,
4876
- Ga as PROFILE_TOOL_DISPOSITIONS,
4877
- ru as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
4878
- nu as PROVIDER_FEATURE_MESSAGE_WINDOW,
4879
- Ki as PUBLIC_EMAIL_DOMAINS,
4895
+ fs as PRESENCE_SURVIVES_OFFLINE,
4896
+ Bo as PRODUCT_SCOPE_KIND,
4897
+ Va as PROFILE_TOOL_DISPOSITIONS,
4898
+ su as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
4899
+ ou as PROVIDER_FEATURE_MESSAGE_WINDOW,
4900
+ Us as PUBLIC_EMAIL_DOMAINS,
4880
4901
  Je as READ_STEP_TYPES,
4881
4902
  Ar as RELATED_SUBJECT_KINDS,
4882
4903
  qt as RESERVED_STATUS_KEYS,
4883
- Al as RESERVED_TYPE_KEYS,
4884
- Nu as RESOURCE_ATTACHED_SERVICE,
4885
- Cu as RESOURCE_DESCRIBE_SERVICE,
4886
- xu as RESOURCE_RESOLVE_SERVICE,
4887
- Ou as RESOURCE_SEARCH_SERVICE,
4888
- Gr as SCHEDULE_ENTRY_SCOPE_KIND,
4889
- $u as SCOPE_READ_ROUTE,
4890
- Du as SCOPE_RELATED_ROUTE,
4891
- Vu as SETTINGS_CATEGORIES,
4892
- ia as SIGNATURE_INTENTS,
4893
- ar as SLA_HOURS_BY_PRIORITY,
4894
- vc as SLA_METRICS,
4895
- Cc as SLA_PAUSE_REASONS,
4896
- ro as STEP_MAX_TOKENS_MAX,
4897
- no as STEP_MAX_TOKENS_MIN,
4898
- _o as STRATEGY_ITEM_SCOPE_KIND,
4899
- er as SUMMARY_MIN_LAST_CHARS,
4900
- Jn as SUMMARY_MIN_MESSAGES,
4901
- Hu as SYNC_RUN_MAX_ERRORS,
4902
- ju as SYNC_TARGET_PROVIDER_GROUP,
4904
+ Sl as RESERVED_TYPE_KEYS,
4905
+ Du as RESOURCE_ATTACHED_SERVICE,
4906
+ xu as RESOURCE_DESCRIBE_SERVICE,
4907
+ Ru as RESOURCE_RESOLVE_SERVICE,
4908
+ Nu as RESOURCE_SEARCH_SERVICE,
4909
+ Wr as SCHEDULE_ENTRY_SCOPE_KIND,
4910
+ Pu as SCOPE_READ_ROUTE,
4911
+ Lu as SCOPE_RELATED_ROUTE,
4912
+ Xu as SETTINGS_CATEGORIES,
4913
+ aa as SIGNATURE_INTENTS,
4914
+ cr as SLA_HOURS_BY_PRIORITY,
4915
+ Oc as SLA_METRICS,
4916
+ xc as SLA_PAUSE_REASONS,
4917
+ oo as STEP_MAX_TOKENS_MAX,
4918
+ ro as STEP_MAX_TOKENS_MIN,
4919
+ So as STRATEGY_ITEM_SCOPE_KIND,
4920
+ tr as SUMMARY_MIN_LAST_CHARS,
4921
+ er as SUMMARY_MIN_MESSAGES,
4922
+ Wu as SYNC_RUN_MAX_ERRORS,
4923
+ Gu as SYNC_TARGET_PROVIDER_GROUP,
4903
4924
  $n as TERMINAL_ASSIGNMENT_STATUSES,
4904
- ao as TERMINAL_RUN_STATUSES,
4925
+ co as TERMINAL_RUN_STATUSES,
4905
4926
  Xt as TRANSACTION_KINDS,
4906
- Uo as TRANSACTION_SCOPE_KINDS,
4907
- fc as TRIGGER_VARS,
4908
- Sr as UNKNOWN_KIND,
4927
+ Fo as TRANSACTION_SCOPE_KINDS,
4928
+ hc as TRIGGER_VARS,
4929
+ Ir as UNKNOWN_KIND,
4909
4930
  Eo as UNKNOWN_LEVEL_ORDER,
4910
- lu as UNSUPPORTED,
4911
- En as USAGE_DIMENSIONS,
4912
- Sn as USAGE_DIMENSION_IDS,
4913
- Wr as WORKSTREAM_SCOPE_KIND,
4914
- Go as WORK_ACTIVITY_SCOPE_KIND,
4915
- Ha as WORK_AREAS,
4916
- hl as WORK_COMMENT_ADDED,
4917
- Tl as WORK_CYCLE_SYNC_KIND,
4918
- gl as WORK_ITEM_ASSIGNED,
4919
- jo as WORK_ITEM_SCOPE_KIND,
4920
- yl as WORK_ITEM_STATUS_CHANGED,
4921
- Ho as WORK_PROJECT_SCOPE_KIND,
4931
+ du as UNSUPPORTED,
4932
+ Sn as USAGE_DIMENSIONS,
4933
+ En as USAGE_DIMENSION_IDS,
4934
+ Vr as WORKSTREAM_SCOPE_KIND,
4935
+ Wo as WORK_ACTIVITY_SCOPE_KIND,
4936
+ Wa as WORK_AREAS,
4937
+ yl as WORK_COMMENT_ADDED,
4938
+ kl as WORK_CYCLE_SYNC_KIND,
4939
+ bl as WORK_ITEM_ASSIGNED,
4940
+ Ho as WORK_ITEM_SCOPE_KIND,
4941
+ _l as WORK_ITEM_STATUS_CHANGED,
4942
+ Go as WORK_PROJECT_SCOPE_KIND,
4922
4943
  J as W_PRIORITY,
4923
- rl as acceptExampleCandidate,
4924
- Yr as actingIdentityKey,
4925
- tl as activeWorkTypes,
4926
- us as activityIconOf,
4927
- _s as activityJoinUrl,
4944
+ sl as acceptExampleCandidate,
4945
+ qr as actingIdentityKey,
4946
+ rl as activeWorkTypes,
4947
+ di as activityIconOf,
4948
+ Si as activityJoinUrl,
4928
4949
  dn as activitySnippet,
4929
4950
  pn as activityTextParams,
4930
- As as activityTimelineText,
4951
+ Ai as activityTimelineText,
4931
4952
  gn as activityTimestamp,
4932
4953
  w as activityTypeInfo,
4933
- ac as actorKey,
4934
- nl as addExampleCandidate,
4954
+ lc as actorKey,
4955
+ ol as addExampleCandidate,
4935
4956
  Oe as addWorkingMs,
4936
- ku as agePresenceEntry,
4937
- Zo as aiAttachmentKind,
4938
- Fl as aiAttachmentRejection,
4957
+ Mu as agePresenceEntry,
4958
+ Jo as aiAttachmentKind,
4959
+ jl as aiAttachmentRejection,
4939
4960
  je as aiBudgetLimit,
4940
- Ns as aiBudgetPeriodKey,
4961
+ Ri as aiBudgetPeriodKey,
4941
4962
  yn as aiBudgetPeriodStart,
4942
- xs as aiBudgetState,
4943
- Os as aiVendorAcceptsAttachment,
4944
- Ms as aiVendorDefaultModel,
4945
- ks as aiVendorLabel,
4946
- Cs as aiVendorNeedsBaseUrl,
4947
- vs as aiVendorsWith,
4963
+ Ni as aiBudgetState,
4964
+ xi as aiVendorAcceptsAttachment,
4965
+ Mi as aiVendorDefaultModel,
4966
+ vi as aiVendorLabel,
4967
+ Oi as aiVendorNeedsBaseUrl,
4968
+ Ci as aiVendorsWith,
4948
4969
  Fn as allocate,
4949
4970
  tn as appNameFromPath,
4950
- qc as applyRounding,
4951
- sa as applySignature,
4952
- oo as approvalRate,
4953
- js as artifactBodyBytes,
4954
- Hs as artifactOutline,
4971
+ Zc as applyRounding,
4972
+ ca as applySignature,
4973
+ so as approvalRate,
4974
+ Hi as artifactBodyBytes,
4975
+ Gi as artifactOutline,
4955
4976
  Dn as artifactToMarkdown,
4956
- dc as assignmentMismatch,
4957
- Ys as assignmentScopeKey,
4958
- Zs as assignmentSubject,
4959
- Xa as availabilityByPerson,
4960
- Wa as belongsOnCalendar,
4961
- Es as buildActivityPreview,
4962
- Ql as buildChannelIntents,
4963
- Gs as buildShareKeys,
4964
- Ci as buildWindow,
4965
- Tr as calendarDaysBetween,
4977
+ fc as assignmentMismatch,
4978
+ qi as assignmentScopeKey,
4979
+ Ji as assignmentSubject,
4980
+ qa as availabilityByPerson,
4981
+ za as belongsOnCalendar,
4982
+ ta as belongsToEntity,
4983
+ Ei as buildActivityPreview,
4984
+ Jl as buildChannelIntents,
4985
+ Wi as buildShareKeys,
4986
+ Os as buildWindow,
4987
+ Yn as businessEntitySender,
4988
+ wr as calendarDaysBetween,
4966
4989
  xe as calendarOf,
4967
- va as canNestUnder,
4968
- Pc as canParent,
4969
- Va as capacityTotal,
4970
- rc as capacityWeights,
4971
- hs as carriesText,
4972
- Oa as categoryLabel,
4973
- zo as categoryOf,
4974
- tu as channelKindForScheme,
4975
- ds as channelKindOf,
4976
- zc as checkInOverdueMs,
4977
- hc as clampStepMaxTokens,
4978
- ga as classifyMail,
4979
- nd as cleanMessageMarkdown,
4980
- td as cleanMessageText,
4981
- ea as codeQuery,
4982
- Vl as compareAssistRank,
4983
- vo as compareWorkTypes,
4990
+ Oa as canNestUnder,
4991
+ Uc as canParent,
4992
+ Xa as capacityTotal,
4993
+ sc as capacityWeights,
4994
+ gi as carriesText,
4995
+ Na as categoryLabel,
4996
+ Xo as categoryOf,
4997
+ ru as channelKindForScheme,
4998
+ pi as channelKindOf,
4999
+ Yc as checkInOverdueMs,
5000
+ yc as clampStepMaxTokens,
5001
+ ba as classifyMail,
5002
+ od as cleanMessageMarkdown,
5003
+ rd as cleanMessageText,
5004
+ na as codeQuery,
5005
+ Xl as compareAssistRank,
5006
+ Co as compareWorkTypes,
4984
5007
  Xn as conditionHolds,
4985
- Do as copyFrom,
5008
+ $o as copyFrom,
4986
5009
  W as countsAsPlanned,
4987
- za as coverageByPerson,
4988
- Qa as coverageFor,
5010
+ Ya as coverageByPerson,
5011
+ Ja as coverageFor,
4989
5012
  Lt as coversWorkstream,
4990
5013
  Pt as cycleDayIndex,
4991
- Ll as cycleOrder,
4992
- Pl as cycleState,
4993
- Js as decideAssignmentState,
4994
- Wu as decideCadence,
4995
- Yl as decideIncomingCall,
4996
- yr as defaultLocaleOf,
4997
- Nl as defaultStatusKey,
4998
- iu as defineIntent,
4999
- mr as depthOf,
5000
- wu as derivePresence,
5001
- Ps as describeClause,
5002
- ql as disabledIntentsFromCapabilities,
5003
- js as documentBodyBytes,
5004
- Au as documentKindOf,
5005
- Hs as documentOutline,
5014
+ Kl as cycleOrder,
5015
+ Ul as cycleState,
5016
+ ea as decideAssignmentState,
5017
+ zu as decideCadence,
5018
+ Ql as decideIncomingCall,
5019
+ br as defaultLocaleOf,
5020
+ Dl as defaultStatusKey,
5021
+ au as defineIntent,
5022
+ hr as depthOf,
5023
+ vu as derivePresence,
5024
+ Ki as describeClause,
5025
+ Zl as disabledIntentsFromCapabilities,
5026
+ Hi as documentBodyBytes,
5027
+ Su as documentKindOf,
5028
+ Gi as documentOutline,
5006
5029
  Dn as documentToMarkdown,
5007
- hu as documentToText,
5008
- xc as dueAtOf,
5009
- Yc as elapsedSeconds,
5010
- qu as emailDomain,
5011
- Ju as endpointKey,
5012
- vr as erlangC,
5013
- hi as extractParams,
5014
- Mi as extractTerms,
5015
- ua as fillDocument,
5030
+ yu as documentToText,
5031
+ Rc as dueAtOf,
5032
+ Qc as elapsedSeconds,
5033
+ Zu as emailDomain,
5034
+ td as endpointKey,
5035
+ Cr as erlangC,
5036
+ gs as extractParams,
5037
+ Ms as extractTerms,
5038
+ pa as fillDocument,
5016
5039
  zn as fillText,
5017
- Jl as filterByEndpoint,
5018
- Zl as filterByIntent,
5019
- oi as filterByTargetScheme,
5020
- Ls as filterableDimensions,
5040
+ tu as filterByEndpoint,
5041
+ eu as filterByIntent,
5042
+ ss as filterByTargetScheme,
5043
+ Pi as filterableDimensions,
5021
5044
  te as findAiVendor,
5022
- Uc as fixedLevelForName,
5023
- Sl as fixedTypeForName,
5024
- Il as fixedTypes,
5025
- Eu as flattenLocales,
5045
+ Bc as fixedLevelForName,
5046
+ Tl as fixedTypeForName,
5047
+ wl as fixedTypes,
5048
+ Iu as flattenLocales,
5026
5049
  H as floorToPeriod,
5027
- ec as forecastIntervals,
5028
- Xr as formatActingIdentity,
5050
+ nc as forecastIntervals,
5051
+ Yr as formatActingIdentity,
5029
5052
  D as formatCents,
5030
- Zc as formatClock,
5031
- Qc as formatHm,
5032
- kl as formatItemKey,
5053
+ el as formatClock,
5054
+ Jc as formatHm,
5055
+ Ml as formatItemKey,
5033
5056
  j as formatPeriod,
5034
- Dc as formatSlaDuration,
5035
- jl as freshSources,
5036
- Is as getActivitySeenUserIds,
5037
- aa as getContactEndpoints,
5038
- Ia as getShortTitle,
5039
- Sa as getUrgencyScore,
5040
- wc as hasReacted,
5041
- Fc as healthCategory,
5042
- Bc as healthsInCategory,
5057
+ Lc as formatSlaDuration,
5058
+ Gl as freshSources,
5059
+ Ti as getActivitySeenUserIds,
5060
+ la as getContactEndpoints,
5061
+ wa as getShortTitle,
5062
+ Ta as getUrgencyScore,
5063
+ vc as hasReacted,
5064
+ jc as healthCategory,
5065
+ Hc as healthsInCategory,
5043
5066
  $t as heightOf,
5044
- wa as helpCenterText,
5045
- pc as humanizeAction,
5046
- to as interactionIdOf,
5047
- ml as isAgentUser,
5048
- _a as isAssigned,
5049
- Xs as isAssignmentTerminal,
5050
- Zr as isAssignmentTrigger,
5051
- Ac as isAutoReady,
5052
- fr as isAwaitingThem,
5053
- ws as isChatMessageActivity,
5054
- Ea as isClosed,
5055
- ys as isConnectedType,
5056
- Lu as isDeepLink,
5057
- hr as isDescendant,
5058
- pa as isEligible,
5059
- Ts as isEmailActivity,
5060
- il as isFrozen,
5061
- ed as isHtmlBody,
5062
- Ec as isInFlight,
5063
- or as isInteractionUnseen,
5064
- Pu as isLandingPath,
5065
- Zn as isLikelyBulk,
5066
- St as isMessageShape,
5067
- ps as isMessageType,
5068
- yi as isMoreSpecificPattern,
5067
+ va as helpCenterText,
5068
+ mc as humanizeAction,
5069
+ no as interactionIdOf,
5070
+ gl as isAgentUser,
5071
+ Ea as isAssigned,
5072
+ Yi as isAssignmentTerminal,
5073
+ Jr as isAssignmentTrigger,
5074
+ Sc as isAutoReady,
5075
+ mr as isAwaitingThem,
5076
+ ki as isChatMessageActivity,
5077
+ Ia as isClosed,
5078
+ bi as isConnectedType,
5079
+ Ku as isDeepLink,
5080
+ gr as isDescendant,
5081
+ ma as isEligible,
5082
+ wi as isEmailActivity,
5083
+ al as isFrozen,
5084
+ nd as isHtmlBody,
5085
+ Ic as isInFlight,
5086
+ sr as isInteractionUnseen,
5087
+ Uu as isLandingPath,
5088
+ Jn as isLikelyBulk,
5089
+ Et as isMessageShape,
5090
+ fi as isMessageType,
5091
+ bs as isMoreSpecificPattern,
5069
5092
  It as isNoteShape,
5070
5093
  Ao as isOpenClock,
5071
- Bl as isOutwardTool,
5072
- ur as isParked,
5073
- co as isPaused,
5074
- gs as isPlaybookAuthoredType,
5075
- Qu as isPublicEmailDomain,
5076
- Uu as isPublicPath,
5077
- dr as isReminderActive,
5078
- ms as isReplyableType,
5079
- ba as isSlaAtRisk,
5080
- _c as isTerminal,
5081
- ma as isThreadLongEnough,
5082
- bs as isTranscriptType,
5083
- Rl as isWorkClosed,
5084
- el as isWorkTypeVisible,
5085
- Cl as itemDossierKeys,
5094
+ Hl as isOutwardTool,
5095
+ dr as isParked,
5096
+ lo as isPaused,
5097
+ yi as isPlaybookAuthoredType,
5098
+ Ju as isPublicEmailDomain,
5099
+ Bu as isPublicPath,
5100
+ pr as isReminderActive,
5101
+ hi as isReplyableType,
5102
+ Aa as isSlaAtRisk,
5103
+ Ec as isTerminal,
5104
+ ga as isThreadLongEnough,
5105
+ _i as isTranscriptType,
5106
+ $l as isWorkClosed,
5107
+ nl as isWorkTypeVisible,
5108
+ xl as itemDossierKeys,
5086
5109
  N as kindFor,
5087
- Vo as ladderFor,
5088
- Io as levelIn,
5110
+ zo as ladderFor,
5111
+ To as levelIn,
5089
5112
  Te as levelOrder,
5090
5113
  Er as lineNet,
5091
- Ta as linkLabel,
5092
- Rs as listeningAllowed,
5093
- Ma as localeInstruction,
5094
- ka as localeName,
5095
- Ca as localesOf,
5096
- Xu as looksLikeEmail,
5114
+ ka as linkLabel,
5115
+ Di as listeningAllowed,
5116
+ Ca as localeInstruction,
5117
+ Ma as localeName,
5118
+ xa as localesOf,
5119
+ qu as looksLikeEmail,
5097
5120
  Ct as lookup,
5098
- na as marginCents,
5099
- mu as markdownToDocument,
5100
- eu as matchContactToIntents,
5101
- bi as matchPublicRoute,
5102
- Na as mcpCredentialScope,
5103
- Ra as mcpToolPrefix,
5104
- jc as measureRatio,
5105
- Gu as mergeShownKeys,
5121
+ oa as marginCents,
5122
+ gu as markdownToDocument,
5123
+ nu as matchContactToIntents,
5124
+ _s as matchPublicRoute,
5125
+ Da as mcpCredentialScope,
5126
+ $a as mcpToolPrefix,
5127
+ Gc as measureRatio,
5128
+ Vu as mergeShownKeys,
5106
5129
  un as messageCountsAs,
5107
- Ks as metricOption,
5130
+ Ui as metricOption,
5108
5131
  Kt as minutesOn,
5109
- Zu as needsPhoneRegion,
5110
- fs as nestsUnderParent,
5111
- Kc as nextLevelBelow,
5112
- Nc as nextSlaClock,
5113
- al as nextVersion,
5114
- Bs as normalizeArtifactBlocks,
5115
- ls as normalizeBlocks,
5116
- Bs as normalizeDocumentBlocks,
5132
+ ed as needsPhoneRegion,
5133
+ mi as nestsUnderParent,
5134
+ Fc as nextLevelBelow,
5135
+ Dc as nextSlaClock,
5136
+ ll as nextVersion,
5137
+ ji as normalizeArtifactBlocks,
5138
+ ui as normalizeBlocks,
5139
+ ji as normalizeDocumentBlocks,
5117
5140
  nn as normalizeEmail,
5118
5141
  P as normalizeExample,
5119
5142
  Kn as normalizeGtin,
5120
- Iu as notificationPrefKey,
5121
- vi as novelty,
5122
- fu as operationDescriptor,
5123
- pu as operationsForKind,
5124
- da as organizationSender,
5143
+ wu as notificationPrefKey,
5144
+ Cs as novelty,
5145
+ hu as operationDescriptor,
5146
+ mu as operationsForKind,
5147
+ fa as organizationSender,
5125
5148
  ce as overlapSeconds,
5126
- qa as overlaps,
5127
- Hc as paceRatio,
5128
- fa as parkMarksById,
5129
- ic as parseActingIdentity,
5130
- ta as parseAmount,
5131
- kc as parseClockMinutes,
5132
- Ml as parseItemKey,
5133
- mi as pathToRegex,
5149
+ Za as overlaps,
5150
+ Wc as paceRatio,
5151
+ ha as parkMarksById,
5152
+ ac as parseActingIdentity,
5153
+ ra as parseAmount,
5154
+ Mc as parseClockMinutes,
5155
+ Cl as parseItemKey,
5156
+ hs as pathToRegex,
5134
5157
  Ft as patternFor,
5135
5158
  Ut as patternStartTime,
5136
- Mc as pauseBitFor,
5137
- $s as periodsInRange,
5138
- Yu as phoneSuffix,
5139
- ha as pickMailHeaders,
5140
- la as pickTemplate,
5141
- oc as placeLumps,
5159
+ Cc as pauseBitFor,
5160
+ Li as periodsInRange,
5161
+ Qu as phoneSuffix,
5162
+ ya as pickMailHeaders,
5163
+ da as pickTemplate,
5164
+ ic as placeLumps,
5142
5165
  cn as plainTextFromMarkdown,
5143
- Oc as planSlaEvent,
5144
- Za as plannedBillable,
5145
- Lr as plannedWorkTypeKey,
5146
- Qr as playbookActor,
5147
- bc as procedureOf,
5148
- pl as productScopeKey,
5149
- Ol as projectDossierKeys,
5150
- gi as publicBasePathFor,
5151
- Ku as publicRoutePatterns,
5152
- Qs as reactionWakesAssignment,
5166
+ Nc as planSlaEvent,
5167
+ ec as plannedBillable,
5168
+ Pr as plannedWorkTypeKey,
5169
+ Zr as playbookActor,
5170
+ Ac as procedureOf,
5171
+ ml as productScopeKey,
5172
+ Nl as projectDossierKeys,
5173
+ ys as publicBasePathFor,
5174
+ Fu as publicRoutePatterns,
5175
+ Zi as reactionWakesAssignment,
5153
5176
  fe as readPath,
5154
5177
  et as readStepError,
5155
- lr as recencyOf,
5156
- ca as recipientLocale,
5157
- Jr as refKey,
5158
- Pi as registrableDomain,
5159
- No as rejectExampleCandidate,
5160
- Ua as relatedByDefault,
5178
+ ur as recencyOf,
5179
+ ua as recipientLocale,
5180
+ eo as refKey,
5181
+ Ks as registrableDomain,
5182
+ Ro as rejectExampleCandidate,
5183
+ Ba as relatedByDefault,
5161
5184
  Ie as remainingMsOf,
5162
- xr as requiredAgents,
5163
- $r as requirementFor,
5164
- ni as resolveAccountCapabilities,
5185
+ Nr as requiredAgents,
5186
+ Lr as requirementFor,
5187
+ rs as resolveAccountCapabilities,
5165
5188
  me as resolveActivityText,
5166
- ti as resolveChannelIntents,
5167
- ra as resolvePrice,
5189
+ ns as resolveChannelIntents,
5190
+ sa as resolvePrice,
5168
5191
  Gn as resolveSignature,
5169
- Mu as resolveWorkMode,
5170
- Ru as resourceKindOf,
5171
- Vc as rollupChildren,
5192
+ Cu as resolveWorkMode,
5193
+ $u as resourceKindOf,
5194
+ Xc as rollupChildren,
5172
5195
  G as roundHalfUp,
5173
- sc as runActor,
5174
- Ic as runInteractionId,
5196
+ cc as runActor,
5197
+ wc as runInteractionId,
5175
5198
  On as sanitizeInline,
5176
- _i as sanitizeTranscript,
5177
- tc as scheduleEntryScopeKey,
5178
- Aa as scoreInteraction,
5179
- bl as scoreWorkItem,
5180
- xa as selectLenses,
5181
- Cr as serviceLevel,
5182
- Xl as sessionsHoldCannotReach,
5183
- zl as sessionsToHold,
5184
- vt as shareKeyForTeam,
5185
- Mt as shareKeyForUser,
5186
- Ws as shareKeysForViewer,
5187
- Ja as shortfalls,
5188
- vu as shouldRunAudioPipeline,
5189
- Rc as slaBadgeTone,
5190
- ya as slaHoursByInbox,
5191
- pr as slaHoursFor,
5192
- Xo as sortStatuses,
5193
- ei as sourceKey,
5194
- zr as spreadOverWeights,
5195
- xl as statusIn,
5196
- yc as stepsOf,
5197
- Lc as strategyAncestorKeysFor,
5198
- $c as strategyDossierKeys,
5199
+ Ss as sanitizeTranscript,
5200
+ rc as scheduleEntryScopeKey,
5201
+ Sa as scoreInteraction,
5202
+ Al as scoreWorkItem,
5203
+ Ra as selectLenses,
5204
+ Or as serviceLevel,
5205
+ ql as sessionsHoldCannotReach,
5206
+ Yl as sessionsToHold,
5207
+ Mt as shareKeyForTeam,
5208
+ vt as shareKeyForUser,
5209
+ Vi as shareKeysForViewer,
5210
+ tc as shortfalls,
5211
+ Ou as shouldRunAudioPipeline,
5212
+ $c as slaBadgeTone,
5213
+ _a as slaHoursByInbox,
5214
+ fr as slaHoursFor,
5215
+ Yo as sortStatuses,
5216
+ ts as sourceKey,
5217
+ Xr as spreadOverWeights,
5218
+ Rl as statusIn,
5219
+ _c as stepsOf,
5220
+ Kc as strategyAncestorKeysFor,
5221
+ Pc as strategyDossierKeys,
5199
5222
  zt as strategyItemScopeKey,
5200
5223
  ln as stripHtml,
5201
- Sc as subjectKeyOf,
5224
+ Tc as subjectKeyOf,
5202
5225
  Bt as subjectOf,
5203
- Wl as subjectRef,
5204
- vl as suggestProjectKey,
5205
- Gc as suggestedHealth,
5206
- Tc as summarizeReactions,
5207
- uc as targetById,
5208
- lc as targetForActivityType,
5209
- Xc as targetOrder,
5210
- _r as taxRateFor,
5211
- wr as termsFor,
5212
- qr as toActingIdentity,
5226
+ zl as subjectRef,
5227
+ Ol as suggestProjectKey,
5228
+ Vc as suggestedHealth,
5229
+ kc as summarizeReactions,
5230
+ pc as targetById,
5231
+ dc as targetForActivityType,
5232
+ qc as targetOrder,
5233
+ Sr as taxRateFor,
5234
+ kr as termsFor,
5235
+ Qr as toActingIdentity,
5213
5236
  ht as toE164,
5214
- Vs as toolSourceKinds,
5215
- Ro as topicOfferedForTeam,
5216
- ol as topicsForTeam,
5217
- Or as trafficIntensity,
5218
- cl as transactionContext,
5219
- fl as transactionIdFromScope,
5237
+ zi as toolSourceKinds,
5238
+ Do as topicOfferedForTeam,
5239
+ il as topicsForTeam,
5240
+ xr as trafficIntensity,
5241
+ ul as transactionContext,
5242
+ hl as transactionIdFromScope,
5220
5243
  ke as transactionKind,
5221
- dl as transactionScopeKey,
5222
- ll as transactionSlots,
5223
- Ba as transactionTotals,
5224
- xo as truncateExample,
5225
- El as typeIn,
5226
- _l as typesFor,
5227
- Dl as uniqueWorkStatusKey,
5228
- Jc as uniqueWorkTypeKey,
5244
+ fl as transactionScopeKey,
5245
+ dl as transactionSlots,
5246
+ Ha as transactionTotals,
5247
+ No as truncateExample,
5248
+ Il as typeIn,
5249
+ El as typesFor,
5250
+ Ll as uniqueWorkStatusKey,
5251
+ tl as uniqueWorkTypeKey,
5229
5252
  In as usageMetricId,
5230
- Us as usageMetrics,
5231
- $l as validateStatuses,
5232
- cc as valueAtPath,
5233
- ve as waitHoursOf,
5234
- qs as wakesAssignment,
5235
- wl as workActivityScopeKey,
5236
- Wo as workItemScopeKey,
5253
+ Fi as usageMetrics,
5254
+ Pl as validateStatuses,
5255
+ uc as valueAtPath,
5256
+ Me as waitHoursOf,
5257
+ Qi as wakesAssignment,
5258
+ vl as workActivityScopeKey,
5259
+ Vo as workItemScopeKey,
5237
5260
  Yt as workProjectScopeKey,
5238
- Wc as workRatio,
5239
- Yo as workStatusKey,
5261
+ zc as workRatio,
5262
+ qo as workStatusKey,
5240
5263
  Mo as workTypeKey,
5241
- _e as workingMsBetween,
5242
- nc as workstreamScopeKey
5264
+ Ae as workingMsBetween,
5265
+ oc as workstreamScopeKey
5243
5266
  };