react-semaphor 0.1.516 → 0.1.517

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.
Files changed (77) hide show
  1. package/dist/brand-studio/index.cjs +1 -1
  2. package/dist/brand-studio/index.js +2 -2
  3. package/dist/briefings/index.cjs +1 -1
  4. package/dist/briefings/index.js +3 -3
  5. package/dist/chunks/{calculated-field-identity-DzJBs2J8.js → calculated-field-identity-Dy_WpDdo.js} +1 -1
  6. package/dist/chunks/{card-config-utils-Cxnq2R6z.js → card-config-utils-CAyjC5Tp.js} +2 -2
  7. package/dist/chunks/{dashboard-briefing-launcher-BCEHJ_eD.js → dashboard-briefing-launcher-D5HGRwtb.js} +7 -7
  8. package/dist/chunks/{dashboard-briefing-launcher-CjZ4aE34.cjs → dashboard-briefing-launcher-RpT4b0d5.cjs} +1 -1
  9. package/dist/chunks/{dashboard-controls-DFfit5KH.js → dashboard-controls-C0Aw74JP.js} +9 -9
  10. package/dist/chunks/{dashboard-controls-f9aJ70Zu.cjs → dashboard-controls-DidqEx0U.cjs} +1 -1
  11. package/dist/chunks/{dashboard-json-DVtcA02f.js → dashboard-json-B5LLO49G.js} +5 -5
  12. package/dist/chunks/{dashboard-json-deqQC-UR.cjs → dashboard-json-rY4lTftA.cjs} +1 -1
  13. package/dist/chunks/{edit-dashboard-visual-lJ6rDH3w.js → edit-dashboard-visual-D3TrgFMg.js} +364 -361
  14. package/dist/chunks/{edit-dashboard-visual-DK6lSC_p.cjs → edit-dashboard-visual-NABO8NBr.cjs} +3 -3
  15. package/dist/chunks/{editor-action-buttons-Bnxxa439.js → editor-action-buttons-BfWg6DdZ.js} +4 -4
  16. package/dist/chunks/{editor-action-buttons-CmDaQbPN.cjs → editor-action-buttons-xQ5aj-0q.cjs} +1 -1
  17. package/dist/chunks/{field-aggregations-Dl2A3rbV.js → field-aggregations-BQjogiI1.js} +1 -1
  18. package/dist/chunks/{index-ylOpKRDu.js → index-B0KwXM6P.js} +117 -116
  19. package/dist/chunks/index-CapO5Uw9.cjs +4 -0
  20. package/dist/chunks/{index-UNKSfi7s.cjs → index-Dgv9vzT0.cjs} +230 -230
  21. package/dist/chunks/{index-BVVl2JDK.js → index-DqTelnri.js} +27499 -27198
  22. package/dist/chunks/{matrix-control-sources-KbZe1gj_.js → matrix-control-sources-B1K7x0SL.js} +2 -2
  23. package/dist/chunks/matrix-formatter-Qk8xsR05.cjs +1 -0
  24. package/dist/chunks/{matrix-formatter-CCXNRt3s.js → matrix-formatter-WBgtebUT.js} +8 -8
  25. package/dist/chunks/numeric-presentation-VhMUHfrJ.js +537 -0
  26. package/dist/chunks/numeric-presentation-mY6wJMdB.cjs +1 -0
  27. package/dist/chunks/{pivot-header-presentation-BSZhB1g-.js → pivot-header-presentation-CGtudHo7.js} +4 -4
  28. package/dist/chunks/{pivot-header-presentation-EoUS5ze5.cjs → pivot-header-presentation-DV2aBB6p.cjs} +2 -2
  29. package/dist/chunks/{pivot-result-lifecycle-kRhiJkzg.js → pivot-result-lifecycle-BFO354lk.js} +7 -7
  30. package/dist/chunks/pivot-result-lifecycle-OXAgoIYm.cjs +1 -0
  31. package/dist/chunks/raw-temporal-7bFbXd2a.js +930 -0
  32. package/dist/chunks/raw-temporal-CYdOOyR5.cjs +1 -0
  33. package/dist/chunks/{report-preferences-dialog-CHXPEl7v.js → report-preferences-dialog-BzxqfcF8.js} +3 -3
  34. package/dist/chunks/{report-preferences-dialog-Cto0vDwI.cjs → report-preferences-dialog-DLnhOXXg.cjs} +1 -1
  35. package/dist/chunks/{semantic-format-DwqGYx4V.js → semantic-format-Baqp8kD_.js} +1 -1
  36. package/dist/chunks/semantic-format-Bd7HmLG_.cjs +1 -0
  37. package/dist/chunks/{switch-DNbWXEOP.cjs → switch-C0520nRt.cjs} +24 -24
  38. package/dist/chunks/{switch-DNv-hVmt.js → switch-evlnTA4t.js} +3180 -3092
  39. package/dist/chunks/{temporal-bucket-DlFuhCnT.js → temporal-bucket-PcLFSYWX.js} +6 -6
  40. package/dist/chunks/temporal-input-presentation-2RJrvmYL.js +222 -0
  41. package/dist/chunks/temporal-input-presentation-BIOSVWCL.cjs +1 -0
  42. package/dist/dashboard/index.cjs +1 -1
  43. package/dist/dashboard/index.js +1 -1
  44. package/dist/dashboard-authoring/index.js +6 -6
  45. package/dist/data-app-builder/index.cjs +1 -1
  46. package/dist/data-app-builder/index.js +2 -2
  47. package/dist/data-app-sdk/index.cjs +1 -1
  48. package/dist/data-app-sdk/index.js +1 -1
  49. package/dist/format-utils/index.cjs +3 -3
  50. package/dist/format-utils/index.js +77 -73
  51. package/dist/index.cjs +1 -1
  52. package/dist/index.js +10 -10
  53. package/dist/style.css +1 -1
  54. package/dist/surfboard/index.cjs +1 -1
  55. package/dist/surfboard/index.js +2 -2
  56. package/dist/types/components/editor/editor-main/dashboard-variable-node.d.ts +7 -3
  57. package/dist/types/components/editor/editor-main/text-card-rich-editor.d.ts +4 -1
  58. package/dist/types/lib/charts/chart-availability.d.ts +6 -0
  59. package/dist/types/lib/dashboard-inputs/dashboard-input-display.d.ts +11 -0
  60. package/dist/types/lib/dashboard-inputs/dashboard-input-text.d.ts +2 -1
  61. package/dist/types/lib/dashboard-inputs/text-card-rich-content.d.ts +3 -2
  62. package/dist/types/lib/dashboard-inputs/text-variable-options.d.ts +5 -4
  63. package/dist/types/lib/document/document-variables.d.ts +8 -4
  64. package/dist/types/lib/text-variables/temporal-input-text.d.ts +28 -0
  65. package/dist/types/lib/text-variables/text-variable-types.d.ts +17 -1
  66. package/dist/types/lib/types/common-types.d.ts +11 -1
  67. package/dist/types/shared/format-utils/index.d.ts +1 -0
  68. package/dist/types/shared/format-utils/temporal-input-presentation.d.ts +46 -0
  69. package/package.json +1 -1
  70. package/dist/chunks/index-C8w91oj4.js +0 -328
  71. package/dist/chunks/index-Cw2ypaFl.cjs +0 -1
  72. package/dist/chunks/index-DfqMtR9S.cjs +0 -4
  73. package/dist/chunks/matrix-formatter-BJTO8ky9.cjs +0 -1
  74. package/dist/chunks/pivot-result-lifecycle-gl9cBfB-.cjs +0 -1
  75. package/dist/chunks/raw-temporal-BqOfk-xN.js +0 -1137
  76. package/dist/chunks/raw-temporal-eJXecCyJ.cjs +0 -1
  77. package/dist/chunks/semantic-format-mVI32OJH.cjs +0 -1
@@ -1,328 +0,0 @@
1
- function U(e) {
2
- if (!e || typeof e != "object") return !1;
3
- const t = e.type;
4
- return t === "number" || t === "currency" || t === "percent" || t === "scientific";
5
- }
6
- function V(e) {
7
- return U(e) || !!e && typeof e == "object" && e.type === "duration";
8
- }
9
- function _(e, t) {
10
- const n = L(t);
11
- return "formatToParts" in n ? b(n, e) : A(n, e);
12
- }
13
- const $ = {
14
- year: 0,
15
- month: 1,
16
- day: 2,
17
- hour: 3,
18
- minute: 4,
19
- second: 5
20
- };
21
- function b(e, t) {
22
- try {
23
- const n = e.formatToParts(t), r = [];
24
- for (let i = 0; i < n.length; i++) {
25
- const a = $[n[i].type];
26
- a !== void 0 && (r[a] = parseInt(n[i].value, 10));
27
- }
28
- return r;
29
- } catch (n) {
30
- if (n instanceof RangeError)
31
- return [NaN];
32
- throw n;
33
- }
34
- }
35
- function A(e, t) {
36
- const n = e.format(t), r = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n);
37
- return [
38
- parseInt(r[3], 10),
39
- parseInt(r[1], 10),
40
- parseInt(r[2], 10),
41
- parseInt(r[4], 10),
42
- parseInt(r[5], 10),
43
- parseInt(r[6], 10)
44
- ];
45
- }
46
- const f = {}, m = new Intl.DateTimeFormat("en-US", {
47
- hourCycle: "h23",
48
- timeZone: "America/New_York",
49
- year: "numeric",
50
- month: "2-digit",
51
- day: "2-digit",
52
- hour: "2-digit",
53
- minute: "2-digit",
54
- second: "2-digit"
55
- }).format(/* @__PURE__ */ new Date("2014-06-25T04:00:00.123Z")), S = m === "06/25/2014, 00:00:00" || m === "‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00";
56
- function L(e) {
57
- return f[e] || (f[e] = S ? new Intl.DateTimeFormat("en-US", {
58
- hourCycle: "h23",
59
- timeZone: e,
60
- year: "numeric",
61
- month: "numeric",
62
- day: "2-digit",
63
- hour: "2-digit",
64
- minute: "2-digit",
65
- second: "2-digit"
66
- }) : new Intl.DateTimeFormat("en-US", {
67
- hour12: !1,
68
- timeZone: e,
69
- year: "numeric",
70
- month: "numeric",
71
- day: "2-digit",
72
- hour: "2-digit",
73
- minute: "2-digit",
74
- second: "2-digit"
75
- })), f[e];
76
- }
77
- function Y(e, t, n, r, i, a, s) {
78
- const u = /* @__PURE__ */ new Date(0);
79
- return u.setUTCFullYear(e, t, n), u.setUTCHours(r, i, a, s), u;
80
- }
81
- const T = 36e5, Z = 6e4, D = {
82
- timezoneZ: /^(Z)$/,
83
- timezoneHH: /^([+-]\d{2})$/,
84
- timezoneHHMM: /^([+-])(\d{2}):?(\d{2})$/
85
- };
86
- function x(e, t, n) {
87
- if (!e)
88
- return 0;
89
- let r = D.timezoneZ.exec(e);
90
- if (r)
91
- return 0;
92
- let i, a;
93
- if (r = D.timezoneHH.exec(e), r)
94
- return i = parseInt(r[1], 10), I(i) ? -(i * T) : NaN;
95
- if (r = D.timezoneHHMM.exec(e), r) {
96
- i = parseInt(r[2], 10);
97
- const s = parseInt(r[3], 10);
98
- return I(i, s) ? (a = Math.abs(i) * T + s * Z, r[1] === "+" ? -a : a) : NaN;
99
- }
100
- if (W(e)) {
101
- t = new Date(t || Date.now());
102
- const s = n ? t : E(t), u = d(s, e);
103
- return -(n ? u : z(t, u, e));
104
- }
105
- return NaN;
106
- }
107
- function E(e) {
108
- return Y(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds());
109
- }
110
- function d(e, t) {
111
- const n = _(e, t), r = Y(n[0], n[1] - 1, n[2], n[3] % 24, n[4], n[5], 0).getTime();
112
- let i = e.getTime();
113
- const a = i % 1e3;
114
- return i -= a >= 0 ? a : 1e3 + a, r - i;
115
- }
116
- function z(e, t, n) {
117
- let i = e.getTime() - t;
118
- const a = d(new Date(i), n);
119
- if (t === a)
120
- return t;
121
- i -= a - t;
122
- const s = d(new Date(i), n);
123
- return a === s ? a : Math.max(a, s);
124
- }
125
- function I(e, t) {
126
- return -23 <= e && e <= 23 && (t == null || 0 <= t && t <= 59);
127
- }
128
- const w = {};
129
- function W(e) {
130
- if (w[e])
131
- return !0;
132
- try {
133
- return new Intl.DateTimeFormat(void 0, { timeZone: e }), w[e] = !0, !0;
134
- } catch {
135
- return !1;
136
- }
137
- }
138
- function M(e) {
139
- const t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()));
140
- return t.setUTCFullYear(e.getFullYear()), +e - +t;
141
- }
142
- const O = /(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/, p = 36e5, g = 6e4, k = 2, o = {
143
- dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,
144
- datePattern: /^([0-9W+-]+)(.*)/,
145
- // year tokens
146
- YY: /^(\d{2})$/,
147
- YYY: [
148
- /^([+-]\d{2})$/,
149
- // 0 additional digits
150
- /^([+-]\d{3})$/,
151
- // 1 additional digit
152
- /^([+-]\d{4})$/
153
- // 2 additional digits
154
- ],
155
- YYYY: /^(\d{4})/,
156
- YYYYY: [
157
- /^([+-]\d{4})/,
158
- // 0 additional digits
159
- /^([+-]\d{5})/,
160
- // 1 additional digit
161
- /^([+-]\d{6})/
162
- // 2 additional digits
163
- ],
164
- // date tokens
165
- MM: /^-(\d{2})$/,
166
- DDD: /^-?(\d{3})$/,
167
- MMDD: /^-?(\d{2})-?(\d{2})$/,
168
- Www: /^-?W(\d{2})$/,
169
- WwwD: /^-?W(\d{2})-?(\d{1})$/,
170
- HH: /^(\d{2}([.,]\d*)?)$/,
171
- HHMM: /^(\d{2}):?(\d{2}([.,]\d*)?)$/,
172
- HHMMSS: /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,
173
- // time zone tokens (to identify the presence of a tz)
174
- timeZone: O
175
- };
176
- function h(e, t = {}) {
177
- if (arguments.length < 1)
178
- throw new TypeError("1 argument required, but only " + arguments.length + " present");
179
- if (e === null)
180
- return /* @__PURE__ */ new Date(NaN);
181
- const n = t.additionalDigits == null ? k : Number(t.additionalDigits);
182
- if (n !== 2 && n !== 1 && n !== 0)
183
- throw new RangeError("additionalDigits must be 0, 1 or 2");
184
- if (e instanceof Date || typeof e == "object" && Object.prototype.toString.call(e) === "[object Date]")
185
- return new Date(e.getTime());
186
- if (typeof e == "number" || Object.prototype.toString.call(e) === "[object Number]")
187
- return new Date(e);
188
- if (Object.prototype.toString.call(e) !== "[object String]")
189
- return /* @__PURE__ */ new Date(NaN);
190
- const r = P(e), { year: i, restDateString: a } = j(r.date, n), s = v(a, i);
191
- if (s === null || isNaN(s.getTime()))
192
- return /* @__PURE__ */ new Date(NaN);
193
- if (s) {
194
- const u = s.getTime();
195
- let c = 0, l;
196
- if (r.time && (c = R(r.time), c === null || isNaN(c)))
197
- return /* @__PURE__ */ new Date(NaN);
198
- if (r.timeZone || t.timeZone) {
199
- if (l = x(r.timeZone || t.timeZone, new Date(u + c)), isNaN(l))
200
- return /* @__PURE__ */ new Date(NaN);
201
- } else
202
- l = M(new Date(u + c)), l = M(new Date(u + c + l));
203
- return new Date(u + c + l);
204
- } else
205
- return /* @__PURE__ */ new Date(NaN);
206
- }
207
- function P(e) {
208
- const t = {};
209
- let n = o.dateTimePattern.exec(e), r;
210
- if (n ? (t.date = n[1], r = n[3]) : (n = o.datePattern.exec(e), n ? (t.date = n[1], r = n[2]) : (t.date = null, r = e)), r) {
211
- const i = o.timeZone.exec(r);
212
- i ? (t.time = r.replace(i[1], ""), t.timeZone = i[1].trim()) : t.time = r;
213
- }
214
- return t;
215
- }
216
- function j(e, t) {
217
- if (e) {
218
- const n = o.YYY[t], r = o.YYYYY[t];
219
- let i = o.YYYY.exec(e) || r.exec(e);
220
- if (i) {
221
- const a = i[1];
222
- return {
223
- year: parseInt(a, 10),
224
- restDateString: e.slice(a.length)
225
- };
226
- }
227
- if (i = o.YY.exec(e) || n.exec(e), i) {
228
- const a = i[1];
229
- return {
230
- year: parseInt(a, 10) * 100,
231
- restDateString: e.slice(a.length)
232
- };
233
- }
234
- }
235
- return {
236
- year: null
237
- };
238
- }
239
- function v(e, t) {
240
- if (t === null)
241
- return null;
242
- let n, r, i;
243
- if (!e || !e.length)
244
- return n = /* @__PURE__ */ new Date(0), n.setUTCFullYear(t), n;
245
- let a = o.MM.exec(e);
246
- if (a)
247
- return n = /* @__PURE__ */ new Date(0), r = parseInt(a[1], 10) - 1, y(t, r) ? (n.setUTCFullYear(t, r), n) : /* @__PURE__ */ new Date(NaN);
248
- if (a = o.DDD.exec(e), a) {
249
- n = /* @__PURE__ */ new Date(0);
250
- const s = parseInt(a[1], 10);
251
- return J(t, s) ? (n.setUTCFullYear(t, 0, s), n) : /* @__PURE__ */ new Date(NaN);
252
- }
253
- if (a = o.MMDD.exec(e), a) {
254
- n = /* @__PURE__ */ new Date(0), r = parseInt(a[1], 10) - 1;
255
- const s = parseInt(a[2], 10);
256
- return y(t, r, s) ? (n.setUTCFullYear(t, r, s), n) : /* @__PURE__ */ new Date(NaN);
257
- }
258
- if (a = o.Www.exec(e), a)
259
- return i = parseInt(a[1], 10) - 1, C(i) ? H(t, i) : /* @__PURE__ */ new Date(NaN);
260
- if (a = o.WwwD.exec(e), a) {
261
- i = parseInt(a[1], 10) - 1;
262
- const s = parseInt(a[2], 10) - 1;
263
- return C(i, s) ? H(t, i, s) : /* @__PURE__ */ new Date(NaN);
264
- }
265
- return null;
266
- }
267
- function R(e) {
268
- let t, n, r = o.HH.exec(e);
269
- if (r)
270
- return t = parseFloat(r[1].replace(",", ".")), N(t) ? t % 24 * p : NaN;
271
- if (r = o.HHMM.exec(e), r)
272
- return t = parseInt(r[1], 10), n = parseFloat(r[2].replace(",", ".")), N(t, n) ? t % 24 * p + n * g : NaN;
273
- if (r = o.HHMMSS.exec(e), r) {
274
- t = parseInt(r[1], 10), n = parseInt(r[2], 10);
275
- const i = parseFloat(r[3].replace(",", "."));
276
- return N(t, n, i) ? t % 24 * p + n * g + i * 1e3 : NaN;
277
- }
278
- return null;
279
- }
280
- function H(e, t, n) {
281
- t = t || 0, n = n || 0;
282
- const r = /* @__PURE__ */ new Date(0);
283
- r.setUTCFullYear(e, 0, 4);
284
- const i = r.getUTCDay() || 7, a = t * 7 + n + 1 - i;
285
- return r.setUTCDate(r.getUTCDate() + a), r;
286
- }
287
- const G = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], q = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
288
- function F(e) {
289
- return e % 400 === 0 || e % 4 === 0 && e % 100 !== 0;
290
- }
291
- function y(e, t, n) {
292
- if (t < 0 || t > 11)
293
- return !1;
294
- if (n != null) {
295
- if (n < 1)
296
- return !1;
297
- const r = F(e);
298
- if (r && n > q[t] || !r && n > G[t])
299
- return !1;
300
- }
301
- return !0;
302
- }
303
- function J(e, t) {
304
- if (t < 1)
305
- return !1;
306
- const n = F(e);
307
- return !(n && t > 366 || !n && t > 365);
308
- }
309
- function C(e, t) {
310
- return !(e < 0 || e > 52 || t != null && (t < 0 || t > 6));
311
- }
312
- function N(e, t, n) {
313
- return !(e < 0 || e >= 25 || t != null && (t < 0 || t >= 60) || n != null && (n < 0 || n >= 60));
314
- }
315
- function B(e, t, n) {
316
- if (typeof e == "string" && !e.match(O))
317
- return h(e, { ...n, timeZone: t });
318
- e = h(e, n);
319
- const r = Y(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()).getTime(), i = x(t, new Date(r));
320
- return new Date(r + i);
321
- }
322
- export {
323
- V as a,
324
- h as b,
325
- B as f,
326
- U as i,
327
- x as t
328
- };
@@ -1 +0,0 @@
1
- "use strict";function x(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="number"||t==="currency"||t==="percent"||t==="scientific"}function _(e){return x(e)||!!e&&typeof e=="object"&&e.type==="duration"}function $(e,t){const n=Z(t);return"formatToParts"in n?A(n,e):S(n,e)}const b={year:0,month:1,day:2,hour:3,minute:4,second:5};function A(e,t){try{const n=e.formatToParts(t),r=[];for(let i=0;i<n.length;i++){const a=b[n[i].type];a!==void 0&&(r[a]=parseInt(n[i].value,10))}return r}catch(n){if(n instanceof RangeError)return[NaN];throw n}}function S(e,t){const n=e.format(t),r=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n);return[parseInt(r[3],10),parseInt(r[1],10),parseInt(r[2],10),parseInt(r[4],10),parseInt(r[5],10),parseInt(r[6],10)]}const f={},I=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),L=I==="06/25/2014, 00:00:00"||I==="‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00";function Z(e){return f[e]||(f[e]=L?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})),f[e]}function T(e,t,n,r,i,a,o){const u=new Date(0);return u.setUTCFullYear(e,t,n),u.setUTCHours(r,i,a,o),u}const w=36e5,z=6e4,D={timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/};function Y(e,t,n){if(!e)return 0;let r=D.timezoneZ.exec(e);if(r)return 0;let i,a;if(r=D.timezoneHH.exec(e),r)return i=parseInt(r[1],10),M(i)?-(i*w):NaN;if(r=D.timezoneHHMM.exec(e),r){i=parseInt(r[2],10);const o=parseInt(r[3],10);return M(i,o)?(a=Math.abs(i)*w+o*z,r[1]==="+"?-a:a):NaN}if(W(e)){t=new Date(t||Date.now());const o=n?t:E(t),u=m(o,e);return-(n?u:P(t,u,e))}return NaN}function E(e){return T(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function m(e,t){const n=$(e,t),r=T(n[0],n[1]-1,n[2],n[3]%24,n[4],n[5],0).getTime();let i=e.getTime();const a=i%1e3;return i-=a>=0?a:1e3+a,r-i}function P(e,t,n){let i=e.getTime()-t;const a=m(new Date(i),n);if(t===a)return t;i-=a-t;const o=m(new Date(i),n);return a===o?a:Math.max(a,o)}function M(e,t){return-23<=e&&e<=23&&(t==null||0<=t&&t<=59)}const g={};function W(e){if(g[e])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:e}),g[e]=!0,!0}catch{return!1}}function h(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+e-+t}const O=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,N=36e5,C=6e4,k=2,s={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:O};function d(e,t={}){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(e===null)return new Date(NaN);const n=t.additionalDigits==null?k:Number(t.additionalDigits);if(n!==2&&n!==1&&n!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]")return new Date(e.getTime());if(typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]")return new Date(e);if(Object.prototype.toString.call(e)!=="[object String]")return new Date(NaN);const r=j(e),{year:i,restDateString:a}=v(r.date,n),o=R(a,i);if(o===null||isNaN(o.getTime()))return new Date(NaN);if(o){const u=o.getTime();let c=0,l;if(r.time&&(c=G(r.time),c===null||isNaN(c)))return new Date(NaN);if(r.timeZone||t.timeZone){if(l=Y(r.timeZone||t.timeZone,new Date(u+c)),isNaN(l))return new Date(NaN)}else l=h(new Date(u+c)),l=h(new Date(u+c+l));return new Date(u+c+l)}else return new Date(NaN)}function j(e){const t={};let n=s.dateTimePattern.exec(e),r;if(n?(t.date=n[1],r=n[3]):(n=s.datePattern.exec(e),n?(t.date=n[1],r=n[2]):(t.date=null,r=e)),r){const i=s.timeZone.exec(r);i?(t.time=r.replace(i[1],""),t.timeZone=i[1].trim()):t.time=r}return t}function v(e,t){if(e){const n=s.YYY[t],r=s.YYYYY[t];let i=s.YYYY.exec(e)||r.exec(e);if(i){const a=i[1];return{year:parseInt(a,10),restDateString:e.slice(a.length)}}if(i=s.YY.exec(e)||n.exec(e),i){const a=i[1];return{year:parseInt(a,10)*100,restDateString:e.slice(a.length)}}}return{year:null}}function R(e,t){if(t===null)return null;let n,r,i;if(!e||!e.length)return n=new Date(0),n.setUTCFullYear(t),n;let a=s.MM.exec(e);if(a)return n=new Date(0),r=parseInt(a[1],10)-1,y(t,r)?(n.setUTCFullYear(t,r),n):new Date(NaN);if(a=s.DDD.exec(e),a){n=new Date(0);const o=parseInt(a[1],10);return V(t,o)?(n.setUTCFullYear(t,0,o),n):new Date(NaN)}if(a=s.MMDD.exec(e),a){n=new Date(0),r=parseInt(a[1],10)-1;const o=parseInt(a[2],10);return y(t,r,o)?(n.setUTCFullYear(t,r,o),n):new Date(NaN)}if(a=s.Www.exec(e),a)return i=parseInt(a[1],10)-1,F(i)?H(t,i):new Date(NaN);if(a=s.WwwD.exec(e),a){i=parseInt(a[1],10)-1;const o=parseInt(a[2],10)-1;return F(i,o)?H(t,i,o):new Date(NaN)}return null}function G(e){let t,n,r=s.HH.exec(e);if(r)return t=parseFloat(r[1].replace(",",".")),p(t)?t%24*N:NaN;if(r=s.HHMM.exec(e),r)return t=parseInt(r[1],10),n=parseFloat(r[2].replace(",",".")),p(t,n)?t%24*N+n*C:NaN;if(r=s.HHMMSS.exec(e),r){t=parseInt(r[1],10),n=parseInt(r[2],10);const i=parseFloat(r[3].replace(",","."));return p(t,n,i)?t%24*N+n*C+i*1e3:NaN}return null}function H(e,t,n){t=t||0,n=n||0;const r=new Date(0);r.setUTCFullYear(e,0,4);const i=r.getUTCDay()||7,a=t*7+n+1-i;return r.setUTCDate(r.getUTCDate()+a),r}const q=[31,28,31,30,31,30,31,31,30,31,30,31],J=[31,29,31,30,31,30,31,31,30,31,30,31];function U(e){return e%400===0||e%4===0&&e%100!==0}function y(e,t,n){if(t<0||t>11)return!1;if(n!=null){if(n<1)return!1;const r=U(e);if(r&&n>J[t]||!r&&n>q[t])return!1}return!0}function V(e,t){if(t<1)return!1;const n=U(e);return!(n&&t>366||!n&&t>365)}function F(e,t){return!(e<0||e>52||t!=null&&(t<0||t>6))}function p(e,t,n){return!(e<0||e>=25||t!=null&&(t<0||t>=60)||n!=null&&(n<0||n>=60))}function B(e,t,n){if(typeof e=="string"&&!e.match(O))return d(e,{...n,timeZone:t});e=d(e,n);const r=T(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()).getTime(),i=Y(t,new Date(r));return new Date(r+i)}exports.fromZonedTime=B;exports.isMeasureCanonicalFormat=_;exports.isNumericCanonicalFormat=x;exports.toDate=d;exports.tzParseTimezone=Y;
@@ -1,4 +0,0 @@
1
- "use strict";var xt=Object.defineProperty;var St=(e,r,t)=>r in e?xt(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var R=(e,r,t)=>St(e,typeof r!="symbol"?r+"":r,t);const A=require("./raw-temporal-eJXecCyJ.cjs"),K=require("./validators-DFeDcdpA.cjs");require("./matrix-continuation-6nhDy-lF.cjs");const _e=require("./matrix-operation-contract-0RxoU_M3.cjs"),ve=require("../value-format-preferences/index.cjs"),B=require("./pivot-result-lifecycle-gl9cBfB-.cjs"),T=require("zod"),$t=require("./matrix-definition-DanUT11P.cjs"),P=require("./card-config-utils-z86y6tSq.cjs"),kt=require("./matrix-card-C2RjEYZ8.cjs"),Z=require("./field-aggregations-pH_3kymD.cjs"),N=require("./pivot-result-identity-gquWljbd.cjs"),Re=require("./temporal-bucket-contract-nTv6gvX5.cjs"),Y=require("./temporal-bucket-4YEPEKlJ.cjs"),Pe=require("./raw-temporal-contract-CklMVG_1.cjs"),se=require("./canonical-result-keys-Cb96edol.cjs"),Me=`import pandas as pd
2
- df = pd.DataFrame(data) # 'data' contains the query result
3
- result = df.to_dict('records') # must return 'result' as [dict] type
4
- `;function _t(e){return{databaseName:(e==null?void 0:e.lastSelectedDatabase)||"",schemaName:(e==null?void 0:e.lastSelectedSchema)||"",tableName:(e==null?void 0:e.lastSelectedTable)||"",datamodelId:(e==null?void 0:e.datamodelId)||""}}function G(e){return e===Me?"":e}function X(e,r=e.config){return Z.resolveTemporalResultOwner({hasExecutableConfig:P.hasValidCardConfig(r,e.type),sql:e.sql,normalizedPython:G(e.python||"")})}class Oe extends Error{constructor(t){super(`ambiguous_temporal_grain: Temporal field "${t}" has saved presentation but no valid grouping grain. Reconfigure and resave the field.`);R(this,"code","ambiguous_temporal_grain");R(this,"fieldId");this.name="AmbiguousGroupedTemporalGrainError",this.fieldId=t}}function Rt(e){return P.hasSavedTemporalBucketPresentation(e)||e.semanticTemporalPresentation!=null}function ze(e){if(!e.id||!["date","datetime"].includes(K.normalizeAnalyticsCatalogDataType(e.dataType)))return;if(K.isSemaphorTimeGrain(e.granularity))return e;if(!Rt(e))return;if(!P.readSavedTemporalBucketFormat({fieldId:e.id,dataType:e.dataType,granularity:e.granularity,format:e.format,dateFormat:e.dateFormat,customFormat:e.customFormat}).ok)throw new Oe(e.id);return{...e,granularity:"day"}}function be(e){const r=e.cardConfig??e.card.config;if(!r||!e.supportsCardType(e.card.type)||Z.resolveTemporalResultOwner({hasExecutableConfig:P.hasValidCardConfig(r),sql:e.card.sql,normalizedPython:G(e.card.python||"")})!=="config")return;const t=[...(r.groupByColumns||[]).map(n=>({...n,role:"groupby"})),...e.card.type==="pivotTable"?(r.pivotByColumns||[]).map(n=>({...n,role:"pivotby"})):[]];return{cardType:e.card.type,cardConfig:r,fields:t.flatMap(n=>{const o=ze(n);return o?[o]:[]})}}function Ft(e){if(P.isShelfCard(e.card))return be({...e,card:e.card,supportsCardType:r=>r==="table"})}function At(e){if(P.isShelfCard(e.card))return be({...e,card:e.card,supportsCardType:Z.isSemaphorCartesianChartType})}function Ke(e){if(P.isShelfCard(e.card))return be({...e,card:e.card,supportsCardType:r=>r!=="detailTable"&&Z.supportsCanonicalDashboardTemporalResult(r)})}const Fe=new WeakMap;function Ne(e){const r=Fe.get(e);if(r)return r;const t=B.parseCanonicalPivotResultTransport(e);return Fe.set(e,t),t}function Q(e,r){const t=e??[],n=r??[];return t.length===n.length&&t.every((o,a)=>o===n[a])}function qe(e,r){const t=B.derivePivotResultContractExpectations({groupByFields:r.groupByColumns,metricFields:r.metricColumns,pivotByFields:r.pivotByColumns,detailFields:r.detailColumns});return Q(e.expectedRoleFieldIds.groupby,t.expectedRoleFieldIds.groupby)&&Q(e.expectedRoleFieldIds.metric,t.expectedRoleFieldIds.metric)&&Q(e.expectedRoleFieldIds.pivotby,t.expectedRoleFieldIds.pivotby)&&Q(e.expectedRoleFieldIds.detail,t.expectedRoleFieldIds.detail)&&Q(e.expectedMetricAliases,t.expectedMetricAliases)}class Bt extends Error{constructor(t){super(`missing_resolved_temporal_format: Saved presentation is missing temporal field "${t.fieldId}" for card "${t.cardId}". Resave the report or Briefing to capture the current dashboard presentation.`);R(this,"code","missing_resolved_temporal_format");R(this,"deliveryBlocking",!0);R(this,"dashboardId");R(this,"cardId");R(this,"fieldId");this.name="MissingResolvedTemporalPresentationError",this.dashboardId=t.dashboardId,this.cardId=t.cardId,this.fieldId=t.fieldId}}class me extends Error{constructor(t){super(`missing_temporal_bucket_metadata: Result column "${t.columnKey}" is missing temporal bucket metadata for field "${t.fieldId}" on card "${t.cardId}". Refresh the report and resave the delivery if the problem persists.`);R(this,"code","missing_temporal_bucket_metadata");R(this,"deliveryBlocking",!0);R(this,"cardId");R(this,"fieldId");R(this,"columnKey");this.name="MissingTemporalResultMetadataError",this.cardId=t.cardId,this.fieldId=t.fieldId,this.columnKey=t.columnKey}}class V extends Error{constructor(t,n,o){super(`${t}: ${n}`);R(this,"deliveryBlocking",!0);this.code=t,this.context=o,this.name="DashboardTemporalBoundaryError"}}function Le(e,r){return`${r}:${e}`}function Ve(e){var r,t;return(t=(r=e.presentation)==null?void 0:r.byFieldRole)==null?void 0:t.get(Le(e.fieldId,e.role))}function Dt(e){var t;if((((t=e.cardConfig.metricColumns)==null?void 0:t.length)||0)>0||e.binding.role!=="metric")return!1;const r=e.binding.outputKey||e.binding.rawKey;return e.columns.some(n=>{var o;return n.role==="measure"&&n.dataType==="number"&&(n.key===r||((o=n.pivotIdentity)==null?void 0:o.metricId)===K.SEMAPHOR_GENERATED_COUNT_METRIC_ID)})}function Pt(e,r){return!r||r.byColumnKey.size===0?e.map(t=>({...t})):e.map(t=>{const n={...t};return r.byColumnKey.forEach((o,a)=>{Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=Ie({value:t[a],presentation:o}))}),n})}function Mt(e){var p;if(!e.result||typeof e.result!="object")return!1;const r=e.result;if(e.expectedResultOwner!==void 0&&r.resultOwner!==e.expectedResultOwner)return!1;const t=e.activation;if(!t||t.cardType!=="pivotTable"&&t.fields.length===0)return!0;const n=Array.isArray(r.records)?r.records.length:void 0,o=(t.cardConfig.pivotByColumns||[]).map(d=>d.id);if(t.cardType==="pivotTable")try{const d=Ne(r);if(!qe(d.pivotResultContract,t.cardConfig))return!1;if(d.pivotResultState==="loaded_empty")return!0;const v=d.columns.filter(C=>d.pivotResultContract.columnKinds[C.key]==="pivot_metric"),h=v.filter(C=>{var g;return(((g=C.pivotIdentity)==null?void 0:g.members.length)??0)>0}),b=v.length>0&&v.every(C=>{var g;return((g=C.pivotIdentity)==null?void 0:g.members.length)===0&&N.isPivotEmptyTupleAllowed({expectedPivotFieldIds:o,classification:d.pivotResultContract.columnClassifications[C.key]})});return t.fields.every(C=>{var $;const g=N.resolveQueryColumnKeyMapEntry(d.columnKeyMap,C.id,C.role);if(!g)return!1;if(g.role==="pivotby"){const _=h.flatMap(M=>{var H;return((H=M.pivotIdentity)==null?void 0:H.members.filter(Et=>Et.fieldId===C.id))??[]});return _.length===0?b:_.every(M=>{var H;return((H=M.temporalBucket)==null?void 0:H.granularity)===C.granularity})}const w=d.columns.find(_=>_.key===(g.outputKey||g.rawKey));return(($=w==null?void 0:w.temporalBucket)==null?void 0:$.granularity)===C.granularity})}catch(d){if(d instanceof B.PivotResultLifecycleError)return!1;throw d}if(n===0)return!0;const a=r.columnKeyMap;if(!a||!a.byRole||typeof a.byRole!="object"||Array.isArray(a.byRole))return!1;const i=[...(t.cardConfig.groupByColumns||[]).map(d=>({field:d,role:"groupby"})),...(t.cardConfig.metricColumns||[]).map(d=>({field:d,role:"metric"})),...(t.cardConfig.pivotByColumns||[]).map(d=>({field:d,role:"pivotby"})),...(t.cardConfig.detailColumns||[]).map(d=>({field:d,role:"detail"}))],l=new Set(i.map(({field:d,role:v})=>`${v}:${d.id}`)),m=new Map((r.columns||[]).map(d=>[d.key,d])),c=N.resolveQueryColumnKeyMapEntry(a,K.SEMAPHOR_GENERATED_COUNT_METRIC_ID,"metric");if(c){if(!Dt({cardConfig:t.cardConfig,binding:c,columns:r.columns||[]}))return!1;l.add(`metric:${K.SEMAPHOR_GENERATED_COUNT_METRIC_ID}`)}const s=Object.entries(a.byRole).flatMap(([d,v])=>Object.keys(v||{}).map(h=>`${d}:${h}`));if(s.length!==l.size||s.some(d=>!l.has(d))||i.some(({field:d,role:v})=>!N.resolveQueryColumnKeyMapEntry(a,d.id,v)))return!1;try{N.requirePivotResultColumnIdentities((r.columns||[]).map(d=>({key:d.key,pivotIdentity:d.pivotIdentity})),{expectedPivotFieldIds:o,columnClassifications:r.columnMetadata})}catch(d){if(d instanceof N.PivotResultIdentityError)return!1;throw d}const u=(r.columns||[]).filter(d=>{const v=d.pivotIdentity;return!!(v&&v.members.length>0)});return n!==0&&((p=t.cardConfig.pivotByColumns)!=null&&p.length)&&u.length===0?!1:t.fields.every(d=>{var b;const v=N.resolveQueryColumnKeyMapEntry(a,d.id,d.role);if(!v)return!1;if(v.role==="pivotby"){const g=u.flatMap(w=>{var $;return(($=w.pivotIdentity)==null?void 0:$.members)??[]}).filter(w=>w.fieldId===d.id);return u.length===0?n===0:g.length>0&&g.every(w=>{var $;return(($=w.temporalBucket)==null?void 0:$.granularity)===d.granularity})}const h=m.get(v.outputKey||v.rawKey);return((b=h==null?void 0:h.temporalBucket)==null?void 0:b.granularity)===d.granularity})}function oe(e,r){const t=e.semanticTemporalPresentation,n=r==="card"?{format:e.format,dateFormat:e.dateFormat}:{format:t==null?void 0:t.format};if(!P.hasSavedTemporalBucketPresentation(n))return;const o=P.readSavedTemporalBucketFormat({fieldId:e.id,dataType:e.dataType,granularity:r==="semantic"?t==null?void 0:t.granularity:e.granularity,...r==="card"?{format:e.format,dateFormat:e.dateFormat,customFormat:e.customFormat}:{format:t==null?void 0:t.format}});if(!o.ok)throw new Error(o.error.code);return o.format}function Ot(e,r,t=ve.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){const n=oe(e,"card"),o=oe(e,"semantic"),a=e.semanticTemporalPresentation;return Y.resolveTemporalBucketPresentation({metadata:r,...n?{cardFormat:n}:{},...o&&a?{semanticFormat:{granularity:a.granularity,format:o}}:{},locale:t.locale,styles:{dateStyle:t.dateStyle,dateTime:t.dateTime}})}function Ue(e,r=Y.DEFAULT_RESOLVED_TEMPORAL_STYLE_SET,t="en-US"){var i;const n=oe(e,"card"),o=((i=e.semanticTemporalPresentation)==null?void 0:i.granularity)===e.granularity?oe(e,"semantic"):void 0,a=n&&n.presentation.mode!=="auto"?n:o&&o.presentation.mode!=="auto"?o:{presentation:{mode:"auto"}};return a.presentation.mode==="auto"?{type:"temporal_bucket",locale:t,presentation:{mode:"auto",styles:r}}:{type:"temporal_bucket",locale:t,presentation:a.presentation}}function zt(e){const r=e.activation;if(!r)return{byColumnKey:new Map,byFieldId:new Map,byFieldRole:new Map};if(e.resultRowCount===0)return{byColumnKey:new Map,byFieldId:new Map,byFieldRole:new Map};const t=new Map((e.columns||[]).map(c=>[c.key,c])),n=new Map,o=new Map,a=new Map,i=r.fields.reduce((c,s)=>(c.set(s.id,(c.get(s.id)||0)+1),c),new Map),l=(c,s)=>{a.set(Le(c.id,c.role),s),i.get(c.id)===1&&o.set(c.id,s)},m=(c,s,u)=>{if(s.granularity!==c.granularity)throw new V("invalid_temporal_bucket_metadata",`Result identity "${u}" declares ${s.granularity} buckets for active ${c.granularity} field "${c.id}".`,{cardId:e.card.id,fieldId:c.id,columnKey:u});const p=e.executionSnapshot&&e.dashboardId?B.findResolvedTemporalBucketFormat({snapshot:e.executionSnapshot,scope:{dashboardId:e.dashboardId,cardId:e.card.id,...e.attachmentIndex!==void 0?{attachmentIndex:e.attachmentIndex}:{}},target:{kind:"field",fieldId:c.id,role:c.role}}):void 0;if(e.executionSnapshot&&!p)throw new Bt({dashboardId:e.dashboardId,cardId:e.card.id,fieldId:c.id});return{columnKey:u,fieldId:c.id,role:c.role,metadata:s,resolved:p?Y.resolveTemporalBucketPresentation({metadata:s,cardFormat:p,locale:p.locale,...p.presentation.mode==="auto"?{styles:p.presentation.styles}:{}}):Ot(c,s,e.valueFormatPreferences??ve.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES)}};for(const c of r.fields){const s=N.resolveQueryColumnKeyMapEntry(e.columnKeyMap,c.id,c.role);if(!s){if(e.columns===void 0&&e.columnKeyMap===void 0&&(e.resultRowCount===void 0||e.resultRowCount===0))continue;throw new V("missing_temporal_column_binding",`Activated temporal field "${c.id}" has no authoritative result-column binding.`,{cardId:e.card.id,fieldId:c.id,columnKey:c.name})}if(s.role==="pivotby"){const h=(e.columns||[]).filter($=>$.pivotIdentity!==void 0),b=h.flatMap($=>{var _;return(((_=$.pivotIdentity)==null?void 0:_.members)||[]).filter(M=>M.fieldId===c.id).map(M=>({column:$,member:M}))});if(b.length===0){if(h.length===0&&(e.card.type!=="pivotTable"||e.resultRowCount===0))continue;throw new me({cardId:e.card.id,fieldId:c.id,columnKey:s.outputKey||s.rawKey})}const C=b[0];if(!C.member.temporalBucket)throw new me({cardId:e.card.id,fieldId:c.id,columnKey:C.column.key});const g=Re.validateTemporalBucketMetadata(C.member.temporalBucket);if(!g.ok||!g.value)throw new V("invalid_temporal_bucket_metadata",g.ok?`Pivot result column "${C.column.key}" has no validated temporal bucket metadata.`:g.error.message,{cardId:e.card.id,fieldId:c.id,columnKey:C.column.key});const w=m(c,g.value,C.column.key);for(const{column:$,member:_}of b)if(!_.temporalBucket||JSON.stringify(_.temporalBucket)!==JSON.stringify(C.member.temporalBucket))throw new V("invalid_temporal_bucket_metadata",`Pivot result column "${$.key}" has contradictory bucket metadata for field "${c.id}".`,{cardId:e.card.id,fieldId:c.id,columnKey:$.key});l(c,w);continue}const u=s.outputKey||s.rawKey,p=t.get(u);if(!(p!=null&&p.temporalBucket))throw new me({cardId:e.card.id,fieldId:c.id,columnKey:u});const d=Re.validateTemporalBucketResultColumn(p,{metadataRequired:!0});if(!d.ok||!d.value)throw new V("invalid_temporal_bucket_metadata",d.ok?`Result column "${u}" has no validated temporal bucket metadata.`:d.error.message,{cardId:e.card.id,fieldId:c.id,columnKey:u});const v=m(c,d.value,u);n.set(u,v),l(c,v)}return{byColumnKey:n,byFieldId:o,byFieldRole:a}}function Kt(e){var t,n;const r=e.role?Ve({presentation:e.presentation,fieldId:e.fieldId,role:e.role}):(n=(t=e.presentation)==null?void 0:t.byFieldId)==null?void 0:n.get(e.fieldId);return r?Ie({value:e.value,presentation:r}):e.value===null||e.value===void 0?"":String(e.value)}function Ie(e){if(e.value===null||e.value===void 0)return"(Blank)";if(typeof e.value!="string")throw new V("invalid_temporal_bucket_value",`Canonical temporal column "${e.presentation.columnKey}" must contain a string or null.`,{fieldId:e.presentation.fieldId,columnKey:e.presentation.columnKey});try{return Y.formatTemporalBucket({value:e.value,metadata:e.presentation.metadata,format:e.presentation.resolved.format})}catch(r){throw r instanceof Y.TemporalBucketContractError?new V(r.code,r.message,{fieldId:e.presentation.fieldId,columnKey:e.presentation.columnKey}):r}}class k extends Error{constructor(r,t,n){super(`${r}: ${t}`),this.code=r,this.context=n,Object.setPrototypeOf(this,k.prototype),this.name="RawTemporalPresentationBoundaryError"}}function je(){return{type:"raw_temporal",presentation:{mode:"auto"}}}function Nt(e){if(e.locale||e.relative||e.timezone&&e.timezone!=="auto"||e.sourceTimezone&&e.sourceTimezone!=="auto"||e.prefix||e.suffix)throw new k("invalid_raw_temporal_format","Activated raw temporal presentation contains unsupported locale, relative-time, timezone, prefix, or suffix settings.")}function Ge(e){const r=e.format;if((r==null?void 0:r.type)==="date"&&(Nt(r),r.pattern))return{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:r.pattern}};if(r)throw new k("invalid_raw_temporal_format",`Raw temporal detail field "${e.id}" has an incompatible authored format.`,{fieldId:e.id});if(e.dateFormat==="custom"){if(!e.customFormat)throw new k("invalid_raw_temporal_format",`Raw temporal detail field "${e.id}" selects a custom pattern but has no customFormat.`,{fieldId:e.id});return{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:e.customFormat}}}return e.dateFormat?{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:e.dateFormat}}:je()}function ce(e){var i;if(e!=null&&e.useRelativeTime)return;if(!e)return je();if(e.useCustomFormat&&!((i=e.customFormat)!=null&&i.trim()))throw new k("invalid_raw_temporal_format","Declared SQL temporal presentation selects a custom pattern but has no customFormat.",{reason:"missing_declared_sql_custom_date_format"});const r=e.useCustomFormat&&e.customFormat?e.customFormat:e.format,t=e.timezone,n=e.sourceTimezone,o=t&&t!=="auto"?{timezone:t}:void 0,a={sourceTimezone:n&&n!=="auto"?n:"UTC"};return r?{type:"raw_temporal",...o,...a,presentation:{mode:"pattern",dialect:"date_fns",pattern:r}}:{type:"raw_temporal",...o,...a,presentation:{mode:"auto"}}}function qt(e){return e==="instant"?"yyyy-MM-dd'T'HH:mm:ssXXX":e==="wall_datetime"?"yyyy-MM-dd'T'HH:mm:ss":"yyyy-MM-dd"}function Lt(e){A.validateRawTemporalPattern({dialect:"date_fns",pattern:e.pattern,valueKind:e.valueKind})}function Vt(e){const r=ce(e.settings);if(!r)throw new k("invalid_raw_temporal_format","Relative-time SQL presentation does not have an absolute date preview.");const t=e.valueKind??(r.presentation.mode==="pattern"?"instant":"date"),n={kind:"raw_temporal",valueKind:t},o=e.value??(t==="date"?"2023-05-15":t==="wall_datetime"?"2023-05-15T14:30:45":"2023-05-15T14:30:45Z"),a=A.prepareRawTemporalFormatter({metadata:n,format:A.resolveRawTemporalFormat({format:r,preferences:e.preferences,calendar:{tz:e.calendarTimezone}})})(o);if(!a.ok)throw new k("invalid_raw_temporal_format",a.diagnostic.message);return a.text}function Ut(e){try{return{ok:!0,text:Vt(e)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:"Invalid SQL temporal presentation."}}}function Ce(e){var t;const r=e.effectiveCardConfig??e.card.config;return X(e.card,r)==="freeform"&&!!((t=e.card.sql)!=null&&t.trim())&&!G(e.card.python||"").trim()}function He(e){var r,t;return e.type!=="table"&&e.type!=="detailTable"||!Ce({card:e})?!1:Object.values(((t=(r=e.preferences)==null?void 0:r.tablePrefs)==null?void 0:t.columnSettingsMap)||{}).some(n=>{var o,a,i;return n.type==="date"&&((o=n.dateFormat)==null?void 0:o.useRelativeTime)!==!0&&((a=n.dateFormat)==null?void 0:a.useCustomFormat)===!0&&!((i=n.dateFormat.customFormat)!=null&&i.trim())})}function jt(e){var t,n,o;if(!He(e))return e;const r=((n=(t=e.preferences)==null?void 0:t.tablePrefs)==null?void 0:n.columnSettingsMap)||{};return{...e,preferences:{...e.preferences,tablePrefs:{...(o=e.preferences)==null?void 0:o.tablePrefs,columnSettingsMap:Object.fromEntries(Object.entries(r).map(([a,i])=>{var l,m,c;return[a,i.type==="date"&&((l=i.dateFormat)==null?void 0:l.useRelativeTime)!==!0&&((m=i.dateFormat)==null?void 0:m.useCustomFormat)===!0&&!((c=i.dateFormat.customFormat)!=null&&c.trim())?{...i,dateFormat:{...i.dateFormat,format:"",useCustomFormat:!1,customFormat:""}}:i]}))}}}}function Gt(){return{activatedColumnKeys:new Set,byColumnKey:new Map,byFieldId:new Map}}function he(e,r){return e===void 0?{kind:"invalid",error:r}:{kind:"invalid",error:e instanceof k?e:e instanceof A.RawTemporalFormatContractError?new k(e.code,e.message,r.context):new k(r.code,e instanceof Error?e.message:r.message,r.context)}}function Qe(e){var o;if(e.cardType!=="detailTable"||e.resultOwner!=="config")return{kind:"inactive"};if(!e.result)return{kind:"loading"};const{records:r,columns:t,columnKeyMap:n}=e.result;if(!Array.isArray(r)||!Array.isArray(t)||!n)return he(void 0,new k("missing_raw_temporal_result_contract","Activated raw temporal detail results require records, columns, and columnKeyMap atomically."));try{const a=t.filter(s=>s.rawTemporal);if(a.length===0)return{kind:"inactive"};const i=new Map((((o=e.effectiveCardConfig)==null?void 0:o.detailColumns)||[]).map(s=>[s.id,s])),l=new Map,m=new Map;for(const s of a){const u=Array.from(i).flatMap(([w,$])=>{const _=N.resolveQueryColumnKeyMapEntry(n,w,"detail");return _&&_.role==="detail"&&(_.outputKey??_.rawKey)===s.key?[{field:$,binding:_}]:[]}),p=u.length===1?u[0]:null;if(!p||typeof p.binding.rawKey!="string"||p.binding.rawKey.trim().length===0||p.binding.outputKey!==void 0&&(typeof p.binding.outputKey!="string"||p.binding.outputKey.trim().length===0))throw new k("missing_raw_temporal_column_binding",`Raw temporal result column "${s.key}" does not have one valid exact detail result binding.`,{columnKey:s.key});const{field:d,binding:v}=p,h=v.outputKey??v.rawKey,b=Pe.validateRawTemporalResultColumn(s,{metadataRequired:!0});if(!b)throw new k("invalid_raw_temporal_metadata",`Raw temporal result column "${h}" has no metadata.`,{fieldId:d.id,columnKey:h});const C=A.resolveRawTemporalFormat({format:Ge(d),preferences:e.preferences,calendar:e.calendar}),g={fieldId:d.id,columnKey:h,metadata:b,format:C,formatValue:A.prepareRawTemporalFormatter({metadata:b,format:C})};for(let w=0;w<r.length;w+=1)if(!Object.prototype.hasOwnProperty.call(r[w],h)||r[w][h]===void 0)throw new k("missing_raw_temporal_result_contract",`Raw temporal result row ${w} is missing column "${h}".`,{fieldId:d.id,columnKey:h});l.set(h,g),m.set(d.id,g)}const c={activatedColumnKeys:new Set(l.keys()),byColumnKey:l,byFieldId:m};return r.length===0?{kind:"loaded_empty",presentation:c}:{kind:"loaded_valid",presentation:c}}catch(a){return he(a,new k("invalid_raw_temporal_metadata","Activated raw temporal result metadata is invalid."))}}function We(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=X(e.card,r);if(e.card.type==="detailTable"&&t==="config"){const i=!!((n=e.columns)!=null&&n.some(l=>l.rawTemporal));return i&&e.records!==void 0&&!e.columnKeyMap?{kind:"invalid",error:new k("missing_raw_temporal_result_contract","Activated raw temporal detail results require records, columns, and columnKeyMap atomically.")}:e.records!==void 0&&!i?{kind:"inactive"}:Ae(Qe({cardType:e.card.type,resultOwner:t,effectiveCardConfig:r,result:e.records===void 0||!e.columns||!e.columnKeyMap?void 0:{records:e.records,columns:e.columns,columnKeyMap:e.columnKeyMap},preferences:e.preferences,calendar:e.calendar}),e)}return Ae(Qt({resultOwner:t,sql:e.card.sql,normalizedPython:G(e.card.python||""),records:e.records,columns:e.columns,columnSettings:(a=(o=e.card.preferences)==null?void 0:o.tablePrefs)==null?void 0:a.columnSettingsMap,preferences:e.preferences,calendar:e.calendar}),e)}function Ht(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=X(e.card,r);return e.card.type==="detailTable"&&t==="config"?!!((n=e.columns)!=null&&n.some(i=>i.rawTemporal)):Ce(e)?Object.values(((a=(o=e.card.preferences)==null?void 0:o.tablePrefs)==null?void 0:a.columnSettingsMap)||{}).some(i=>{var l;return i.type==="date"&&!((l=i.dateFormat)!=null&&l.useRelativeTime)}):!1}function Ae(e,r){if(!r.executionSnapshot||e.kind==="inactive"||e.kind==="loading"||e.kind==="invalid")return e;if(!r.dashboardId)return{kind:"invalid",error:new k("missing_raw_temporal_result_contract","A dashboard ID is required to resolve the captured raw temporal presentation.")};const t=new Map,n=new Map;for(const o of e.presentation.activatedColumnKeys){const a=B.findResolvedRawTemporalFormat({snapshot:r.executionSnapshot,scope:{dashboardId:r.dashboardId,cardId:r.card.id,...r.attachmentIndex!==void 0?{attachmentIndex:r.attachmentIndex}:{}},target:{kind:"column",columnKey:o}});if(!a)return{kind:"invalid",error:new B.MissingResolvedRawTemporalFormatError(o)};const i=e.presentation.byColumnKey.get(o);if(!i)continue;const l={...i,format:a,formatValue:A.prepareRawTemporalFormatter({metadata:i.metadata,format:a})};t.set(i.columnKey,l),i.fieldId&&n.set(i.fieldId,l)}return{...e,presentation:{activatedColumnKeys:e.presentation.activatedColumnKeys,byColumnKey:t,byFieldId:n}}}function Qt(e){var t,n;if(e.resultOwner!=="freeform"||!((t=e.sql)!=null&&t.trim())||(n=e.normalizedPython)!=null&&n.trim())return{kind:"inactive"};const r=Object.entries(e.columnSettings||{}).filter(([,o])=>{var a;return o.type==="date"&&!((a=o.dateFormat)!=null&&a.useRelativeTime)});if(r.length===0)return{kind:"inactive"};if(!e.records)return{kind:"loading"};try{const o=new Map,a=new Set(r.map(([c])=>c)),i=new Map,l=[...e.columns||[]];for(const[c,s]of r){const u=ce(s.dateFormat);if(!u)continue;const p=A.classifyDeclaredSqlTemporalColumn({columnKey:c,values:e.records.map(b=>{if(!Object.prototype.hasOwnProperty.call(b,c))throw new k("missing_raw_temporal_result_contract",`Declared SQL temporal column "${c}" is absent from a physical result row.`,{columnKey:c});const C=b[c];return C===null||typeof C=="string"?C:String(C)})});if(i.set(c,p),p.status!=="classified")continue;let d=l.findIndex(b=>b.key===c);if(e.columns&&d<0)throw new k("missing_raw_temporal_result_contract",`Classified SQL temporal column "${c}" is absent from result columns.`,{columnKey:c});d<0&&(d=l.length,l.push({key:c,name:c,label:c,role:"dimension",dataType:"string"}));const v={...l[d],role:"date",dataType:p.metadata.valueKind==="date"?"date":"datetime",rawTemporal:p.metadata};Pe.validateRawTemporalResultColumn(v,{metadataRequired:!0}),l[d]=v;const h=A.resolveRawTemporalFormat({format:u,preferences:e.preferences,calendar:e.calendar});o.set(c,{columnKey:c,metadata:p.metadata,format:h,formatValue:A.prepareRawTemporalFormatter({metadata:p.metadata,format:h})})}const m={...Gt(),activatedColumnKeys:a,byColumnKey:o};return e.records.length===0?{kind:"loaded_empty",presentation:m,adaptedColumns:l,sqlClassifications:i}:{kind:"loaded_valid",presentation:m,adaptedColumns:l,sqlClassifications:i}}catch(o){return he(o,new k("invalid_raw_temporal_format","Declared SQL raw temporal presentation is invalid."))}}function Wt(e){if(e.value!==null&&typeof e.value!="string")return{value:e.value,label:String(e.value),result:{ok:!1,text:String(e.value),diagnostic:{code:"invalid_raw_temporal_value",message:`Raw temporal column "${e.presentation.columnKey}" must contain a string or null.`}}};const r=e.presentation.formatValue(e.value);return{value:e.value,label:r.text,result:r}}function Yt(e){if(!e.result||typeof e.result!="object")return!1;const r=e.result;if(e.expectedResultOwner!==void 0&&r.resultOwner!==e.expectedResultOwner||!Array.isArray(r.records))return!1;const t=We({card:e.card,effectiveCardConfig:e.effectiveCardConfig,records:r.records,columns:r.columns,columnKeyMap:r.columnKeyMap,preferences:ve.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES,calendar:{tz:"UTC"}});return t.kind==="inactive"||t.kind==="loaded_empty"||t.kind==="loaded_valid"}function Be(e){return!e||typeof e!="object"?!1:Array.isArray(e.cards)}function Ye(e){if(!e)return null;if(typeof e=="string")try{const r=JSON.parse(e);return Be(r)?r:null}catch{return null}return Be(e)?e:null}function Te(e){var r;return(r=e==null?void 0:e.cards)!=null&&r.length?e.activeCardId&&e.cards.find(t=>t.id===e.activeCardId)||e.cards[0]:null}function Jt(e){var t;const r=(e==null?void 0:e.frameObject)??((t=e==null?void 0:e.visual)==null?void 0:t.frameObject);return Te(Ye(r))}function le(e){if(!(e!=null&&e.expectedType))return"table";const r=Array.isArray(e.expectedType)?e.expectedType[0]:e.expectedType;return Xt(r)?r:"table"}const Zt=["bar","horizontalBar","line","area","stackedArea","combo","pie","doughnut","radar","polarArea","bubble","scatter","stackedBar","stackedLine","table","pivotTable","aggregateTable","detailTable","tableBuilder","kpi","pyramid","tornado","range","text","map","funnel","bullet","heatmap","treemap","custom"];function Xt(e){return Zt.includes(e)}function J(e){const r=e.position;if(typeof r=="number")return r;if(typeof r=="string"){const t=r.match(/\d+/);if(t){const n=Number(t[0]);if(!Number.isNaN(n))return n}}return Number.POSITIVE_INFINITY}function W(e){if(typeof e=="number")return{kind:"number",start:e,end:e};if(typeof e=="string"){const r=e.match(/^(\d+)$/);if(r){const o=Number(r[1]);return{kind:"number",start:o,end:o}}const t=e.match(/^(\d+)-(\d+)$/);if(t){const o=Number(t[1]),a=Number(t[2]);return{kind:"range",start:o,end:a}}const n=e.match(/^(\d+)\+$/);if(n)return{kind:"dynamic",start:Number(n[1]),end:Number.POSITIVE_INFINITY}}return null}function Je(e){return!e||e.length===0?void 0:[...e].sort((t,n)=>J(t)-J(n))[0]}function we(e,r){if(!e||e.length===0)return;const t=[],n=[],o=[];e.forEach(s=>{const u=W(s.position);u&&(u.kind==="number"?t.push(s):u.kind==="range"?n.push(s):u.kind==="dynamic"&&o.push(s))});const a=t.find(s=>{const u=W(s.position);return(u==null?void 0:u.kind)==="number"&&u.start===r});if(a)return a;const l=n.sort((s,u)=>J(s)-J(u)).find(s=>{const u=W(s.position);return(u==null?void 0:u.kind)==="range"&&r>=u.start&&r<=u.end});if(l)return l;const c=o.map(s=>({slot:s,parsed:W(s.position)})).filter(s=>{var u;return((u=s.parsed)==null?void 0:u.kind)==="dynamic"}).sort((s,u)=>{var p,d;return(((p=s.parsed)==null?void 0:p.start)??0)-(((d=u.parsed)==null?void 0:d.start)??0)}).filter(s=>{var u;return r>=(((u=s.parsed)==null?void 0:u.start)??0)}).sort((s,u)=>{var p,d;return(((p=u.parsed)==null?void 0:p.start)??0)-(((d=s.parsed)==null?void 0:d.start)??0)})[0];return c==null?void 0:c.slot}function er(e,r){const t=we(e,r);if(t)return le(t)}function Ze(e,r){var n;const t=(n=e==null?void 0:e.customCardPreferences)==null?void 0:n.slotIndex;return typeof t=="number"?t:r}function ge(e,r){var t;if(!((t=e==null?void 0:e.customCardPreferences)!=null&&t.url))return!1;if(e.type==="custom"||e.customCardPreferences.visualType==="multiple"||e.customCardPreferences.dataInputCardIds||(e.customCardPreferences.minInputs||0)>1||(e.customCardPreferences.maxInputs||0)>1)return!0;if(r&&r.length>1){const n=r.filter(o=>{var a;return typeof((a=o.customCardPreferences)==null?void 0:a.slotIndex)=="number"});if(n.length>1&&n.some(o=>o.id!==e.id))return!0}return!1}function Xe(e){const r=[];let t=-1;e.forEach((n,o)=>{const a=Ze(n,o);a>t&&(t=a),r[a]=n??null});for(let n=0;n<=t;n+=1)n in r||(r[n]=null);return r}function tr(e){return e.map((r,t)=>!r.customCardPreferences||r.customCardPreferences.slotIndex===t?r:{...r,customCardPreferences:{...r.customCardPreferences,slotIndex:t}})}function rr(e){const r=Je(e);if(r)return le(r)}function nr(e,r,t){if(!e)return;const n=er(t,r);return e.type==="custom"&&n?n:e.type}function or(e,r,t){var v;const n={dataSource:t.dataSource,connectionId:t.connectionId,lastSelectedDatabase:t.lastSelectedDatabase,lastSelectedSchema:t.lastSelectedSchema,lastSelectedTable:t.lastSelectedTable,lastSelectedDatamodelId:t.lastSelectedDatamodelId,datamodelId:t.datamodelId},o={type:"component",visualType:"multiple",url:r.url,componentName:r.name,icon:r.icon,pluginChartType:r.chartType,minInputs:r.minInputs,maxInputs:r.maxInputs},a=r.minInputs||1,l=e.map(h=>({slot:h,parsed:W(h.position)})).filter(h=>h.parsed!==null).reduce((h,b)=>{const C=b.parsed.end;return Number.isFinite(C)?Math.max(h,C):h},-1),m=Math.max(a,l+1),c=Je(e),s=c?J(c):0;let u=!1;const p=[];for(let h=0;h<m;h+=1){const b=we(e,h),C=le(b),g=!u&&h===s,w=h,$={...n,id:P.v4(),title:(g?c==null?void 0:c.label:b==null?void 0:b.label)||`Tab ${h+1}`,tabTitle:(g?c==null?void 0:c.label:b==null?void 0:b.label)||`Tab ${h+1}`,description:(g?c==null?void 0:c.description:b==null?void 0:b.description)||"",type:C,sql:"",preferences:{onClickFilter:[{columnIndex:0,expression:""}]},...g&&{customCardPreferences:{...o,slotIndex:w}},...!g&&{customCardPreferences:{slotIndex:w}}};g&&(u=!0),p.push($)}if(!u&&p.length>0){const h=((v=p[0].customCardPreferences)==null?void 0:v.slotIndex)??0;p[0]={...p[0],type:p[0].type,customCardPreferences:{...o,slotIndex:h}}}const d=p.findIndex(h=>{var b;return!!((b=h.customCardPreferences)!=null&&b.url)});if(d>0){const[h]=p.splice(d,1);p.unshift(h)}return p}function et({frame:e,configCard:r,isMultiInputVisual:t}){var o;if(!t||!r)return e.cards;const n=(o=r.customCardPreferences)==null?void 0:o.dataInputCardIds;return n?Object.keys(n).sort((a,i)=>Number(a)-Number(i)).map(a=>{var l;const i=(l=n[a])==null?void 0:l.cardId;return e.cards.find(m=>m.id===i)||null}):e.cards}function tt(e,r){return r&&ge(r,e.cards)?r:e.cards.find(t=>ge(t,e.cards))||null}function rt(e,r){var o,a;if(!e)return null;const t=r==null?void 0:r.visualType;if(t)return t;if(r!=null&&r.slots&&r.slots.length>0||((r==null?void 0:r.minInputs)||0)>1||((r==null?void 0:r.maxInputs)||0)>1||((r==null?void 0:r.dataInputs)||[]).length>1)return"multiple";const n=(o=e.customCardPreferences)==null?void 0:o.visualType;return n||((a=e.customCardPreferences)!=null&&a.dataInputCardIds?"multiple":null)}function ar(e){return e.visualType==="multiple"||e.slots&&e.slots.length>0||(e.minInputs||0)>1||(e.maxInputs||0)>1||(e.dataInputs||[]).length>1?"multiple":"single"}function ir(e){return Array.isArray(e)?{records:e}:e}class te extends Error{constructor(t){const n=t.cardId?`card "${t.cardId}"`:t.sheetId?`sheet "${t.sheetId}"`:`dashboard "${t.dashboardId}"`;super(`Unable to resolve ${n} while capturing report presentation. Refresh the authoring page and select the attachment again.`);R(this,"code","temporal_snapshot_target_not_found");R(this,"selection");this.name="TemporalSnapshotSelectionError",this.selection=t}}function cr(e,r){var o;const t=[],n=new Map;for(const a of r){if(a.dashboardId!==e.id)throw new te(a);const i=(e.sheets||[]).filter(m=>!a.sheetId||a.sheetId===m.id);if(a.sheetId&&i.length===0)throw new te(a);let l=!a.cardId;for(const m of i){const c=(((o=m.document)==null?void 0:o.sections)||[]).flatMap(p=>Z.getDocumentSectionCards(p)),s=(m.frames||[]).flatMap(p=>lr(p,a.cardId));s.length>0&&(l=!0);const u=[...s,...(m.cards||[]).filter(p=>!a.cardId||a.cardId===p.id),...c.filter(p=>!a.cardId||a.cardId===p.id)];for(const p of u){l=!0;const d=n.get(a.attachmentIndex)??new Set;d.has(p.id)||(d.add(p.id),n.set(a.attachmentIndex,d),t.push({card:p,...a.attachmentIndex!==void 0?{attachmentIndex:a.attachmentIndex}:{}}))}}if(!l)throw new te(a)}return t}function lr(e,r){var i;const t=r?(i=e.cards)==null?void 0:i.find(l=>l.id===r):Te(e);if(!t)return[];const n=tt(e,t),o=(e.cards||[]).filter(l=>{var m;return typeof((m=l.customCardPreferences)==null?void 0:m.slotIndex)=="number"}).length>1,a=n!=null&&(rt(n)==="multiple"||o);return!n||!a?[t]:Xe(et({frame:e,configCard:n,isMultiInputVisual:!0})).filter(l=>l!==null)}function dr(e){return cr(e.dashboard,e.selections).flatMap(({card:r,attachmentIndex:t})=>{var s,u,p,d;const n=((s=e.resolveCardConfig)==null?void 0:s.call(e,r))??r.config,o=Ke({card:r,cardConfig:n}),a={dashboardId:e.dashboard.id,cardId:r.id,...t!==void 0?{attachmentIndex:t}:{}},i=o?o.fields.map(v=>({scope:a,target:{kind:"field",fieldId:v.id,role:v.role},format:Ue(v,{dateStyle:e.valueFormatPreferences.dateStyle,dateTime:{...e.valueFormatPreferences.dateTime}},e.valueFormatPreferences.locale)})):[],l=[],m=X(r,n),c=G(r.python||"");if(r.type==="detailTable"&&m==="config"){const v=(n==null?void 0:n.detailColumns)||[],h=[...((n==null?void 0:n.groupByColumns)||[]).map(g=>({field:g,role:"groupby"})),...((n==null?void 0:n.metricColumns)||[]).map(g=>({field:g,role:"metric"})),...((n==null?void 0:n.pivotByColumns)||[]).map(g=>({field:g,role:"pivotby"})),...v.map(g=>({field:g,role:"detail"}))],b=new Map,C=new Set(h.map(({field:g,role:w})=>se.resolveCanonicalResultRawKey(g,w)));for(const{field:g}of h){const w=g.label;w&&b.set(w,(b.get(w)||0)+1)}for(const g of v){const w=K.normalizeAnalyticsCatalogDataType(g.dataType);if(w!=="date"&&w!=="datetime")continue;const $=se.resolveCanonicalDetailResultRawKey(g),_=g.label,M=se.resolveCanonicalResultOutputKey({label:_,labelCount:_&&b.get(_)||0,rawKey:$,rawKeys:C});if(!M)throw new te(a);l.push({scope:a,target:{kind:"column",columnKey:M},format:A.resolveRawTemporalFormat({format:Ge(g),preferences:e.valueFormatPreferences,calendar:e.calendar})})}}else if(m==="freeform"&&((u=r.sql)!=null&&u.trim())&&!c.trim())for(const[v,h]of Object.entries(((d=(p=r.preferences)==null?void 0:p.tablePrefs)==null?void 0:d.columnSettingsMap)||{})){if(h.type!=="date")continue;const b=ce(h.dateFormat);b&&l.push({scope:a,target:{kind:"column",columnKey:v},format:A.resolveRawTemporalFormat({format:b,preferences:e.valueFormatPreferences,calendar:e.calendar})})}return[...i,...l]})}const sr=new Set(["table","aggregateTable","pivotTable","detailTable"]),mr=new Set(["bar","horizontalBar","line","area","stackedArea","combo","pie","doughnut","radar","polarArea","bubble","scatter","stackedBar","stackedLine","table","pivotTable","aggregateTable","matrixTable","detailTable","kpi","pyramid","tornado","range","map","funnel","bullet","heatmap","treemap","custom"]);function ur(e){var o,a,i;const r=mr.has(e.type)&&(e.type!=="custom"||!!((o=e.customCardPreferences)!=null&&o.url));let t=!1;try{t=!!kt.readMatrixCardConfig(e)}catch{return{formats:[],defaultFormat:null}}return e.type==="text"||!r||!t&&P.isCardUnconfigured(e)?{formats:[],defaultFormat:null}:{formats:nt({cardType:e.type,allowDownload:(a=e.preferences)==null?void 0:a.allowDownload}),defaultFormat:ot({cardType:e.type,allowDownload:(i=e.preferences)==null?void 0:i.allowDownload})}}function nt(e){return e.allowDownload===!1?["pdf"]:["pdf","csv"]}function ot(e){return sr.has(e.cardType)&&e.allowDownload!==!1?"csv":"pdf"}function fr(e){const{config:r}=e,t=$t.resolveMatrixDefinition({spec:r.spec,presentation:r.presentation,defaults:r.defaultView,session:e.purpose==="manual"?e.session:void 0});return K.matrixExportRequestSchema.parse({spec:t.spec,presentation:t.presentation,...e.content==="flat"?{mode:"flat",format:"csv"}:{mode:"layout",format:e.format,expansion:e.content==="all"?{kind:"all"}:{kind:"current",rows:t.view.rows,columns:t.view.columns}}})}const at=T.z.object({connection_id:T.z.string().min(1),cardType:T.z.literal("matrixTable"),resultOwner:T.z.literal("config"),sql:T.z.literal("").optional(),python:T.z.literal("").optional(),tableStructure:T.z.never().optional(),cardDataSource:T.z.object({connectionId:T.z.string().min(1),connectionType:T.z.string().min(1),mode:T.z.enum(["database","semanticDomain"]),selectedEntities:T.z.array(T.z.unknown()),semanticDomainId:T.z.string().optional()}).passthrough(),active_filters:T.z.array(T.z.unknown()).default([])}).passthrough(),pr=at.extend({dashboardId:T.z.string().min(1),cardId:T.z.string().min(1),formatOptions:T.z.object({matrix:K.matrixExportRequestSchema,acquisition:T.z.literal("continuation").optional(),presentationExecutionSnapshot:T.z.unknown()}).passthrough().superRefine((e,r)=>{e.matrix.format==="csv"!=(e.acquisition==="continuation")&&r.addIssue({code:T.z.ZodIssueCode.custom,path:["acquisition"],message:"CSV requires continuation acquisition; PDF must not specify acquisition."})})});function yr(e){return{...e.controls,type:"card",dashboardId:e.dashboardId,cardId:e.cardId,title:e.title,cardType:"matrixTable",resultOwner:"config",sql:"",python:"",connection_id:e.dataSource.connectionId,cardDataSource:{...e.dataSource,mode:e.matrix.spec.source.kind==="semantic"?"semanticDomain":"database",semanticDomainId:e.matrix.spec.source.kind==="semantic"?e.matrix.spec.source.domainId:void 0},active_filters:e.activeFilters,formatOptions:{...e.matrix.format==="csv"?{acquisition:"continuation"}:{},matrix:e.matrix,delimiter:e.delimiter,includeHeaders:e.includeHeaders,timezone:e.reportContext.calendar.tz,presentationExecutionSnapshot:B.createPresentationExecutionSnapshot({reportContext:e.reportContext,resolvedFormats:[]})}}}const ue=T.z.number().int().nonnegative(),hr=T.z.discriminatedUnion("status",[T.z.object({status:T.z.literal("ok"),request:K.matrixExportRequestSchema,layout:_e.matrixExportLayoutSchema,rows:T.z.array(_e.matrixExportRowSchema).readonly(),usage:T.z.object({rows:ue,cells:ue,bytes:ue}).strict()}).strict(),T.z.object({status:T.z.literal("failed"),failure:T.z.object({code:T.z.enum(["invalid_request","unsupported_capability","stale_cursor","forbidden","budget_exceeded","source_truncated","execution_failed","cancelled"]),limit:T.z.enum(["rows","bytes"]).optional(),message:T.z.string().min(1),retryable:T.z.boolean()}).strict()}).strict()]);function gr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function O(e,r,t){return gr(e)?e:(t.push({field:r,message:"Expected an object."}),{})}function z(e,r,t,n){const o=new Set(t);Object.keys(e).forEach(a=>{o.has(a)||n.push({field:`${r}.${a}`,message:"Unexpected property."})})}function U(e,r,t,n,o={}){if(e==null)return;if(typeof e!="string"){n.push({field:r,message:"Expected a string."});return}const a=o.trim===!1?e:e.trim();if(!o.allowEmpty&&a.length===0){n.push({field:r,message:"Expected a non-empty string."});return}if(a.length>t){n.push({field:r,message:`Expected ${t} characters or fewer.`});return}return a}function Ee(e,r,t){const n=U(e,r,2e3,t);if(n)try{return new URL(n),n}catch{t.push({field:r,message:"Expected an absolute URL."});return}}function De(e,r,t){const n=O(e,r,t);z(n,r,["tokens","components"],t);const o={};if(n.tokens!==void 0){const a=O(n.tokens,`${r}.tokens`,t);z(a,`${r}.tokens`,["color","typography"],t);const i={};if(a.color!==void 0){const l=O(a.color,`${r}.tokens.color`,t),m=["background","foreground","muted","mutedForeground","border","primary","primaryForeground","positive","negative","warning","info"];z(l,`${r}.tokens.color`,m,t);const c={};m.forEach(s=>{const u=U(l[s],`${r}.tokens.color.${s}`,120,t);u!==void 0&&(c[s]=u)}),i.color=c}if(a.typography!==void 0){const l=O(a.typography,`${r}.tokens.typography`,t);z(l,`${r}.tokens.typography`,["fontFamily","monoFontFamily"],t);const m=U(l.fontFamily,`${r}.tokens.typography.fontFamily`,500,t,{allowEmpty:!0}),c=U(l.monoFontFamily,`${r}.tokens.typography.monoFontFamily`,500,t,{allowEmpty:!0});i.typography={...m!==void 0?{fontFamily:m}:{},...c!==void 0?{monoFontFamily:c}:{}}}o.tokens=i}if(n.components!==void 0){const a=O(n.components,`${r}.components`,t);if(z(a,`${r}.components`,["chart"],t),a.chart!==void 0){const i=O(a.chart,`${r}.components.chart`,t);z(i,`${r}.components.chart`,["palette"],t);let l;i.palette!==void 0&&(Array.isArray(i.palette)?i.palette.length>20?t.push({field:`${r}.components.chart.palette`,message:"Expected 20 colors or fewer."}):l=i.palette.map((m,c)=>U(m,`${r}.components.chart.palette.${c}`,120,t)).filter(m=>m!==void 0):t.push({field:`${r}.components.chart.palette`,message:"Expected an array."})),o.components={chart:l?{palette:l}:{}}}}return o}function vr(e,r){const t="presentation.appearance",n=O(e,t,r);z(n,t,["version","schemes"],r);const o={};if(n.version!==void 0&&(typeof n.version!="number"||!Number.isFinite(n.version)?r.push({field:`${t}.version`,message:"Expected a number."}):o.version=n.version),n.schemes!==void 0){const a=O(n.schemes,`${t}.schemes`,r);z(a,`${t}.schemes`,["light","dark"],r),o.schemes={...a.light!==void 0?{light:De(a.light,`${t}.schemes.light`,r)}:{},...a.dark!==void 0?{dark:De(a.dark,`${t}.schemes.dark`,r)}:{}}}return o}function br(e,r){const t="presentation.brandOverrides",n=O(e,t,r);z(n,t,["brandName","logoUrl","link"],r);const o=U(n.brandName,`${t}.brandName`,200,r),a=Ee(n.logoUrl,`${t}.logoUrl`,r),i=U(n.link,`${t}.link`,120,r);return{...o!==void 0?{brandName:o}:{},...a!==void 0?{logoUrl:a}:{},...i!==void 0?{link:i}:{}}}function Ir(e,r){const t="presentation.fragments",n=O(e,t,r),o=["preHeaderText","headerBannerHtml","signatureHtml","footerHtml","disclaimerHtml","unsubscribeUrl"];z(n,t,o,r);const a={};return o.forEach(i=>{const l=i==="unsubscribeUrl"?Ee(n[i],`${t}.${i}`,r):U(n[i],`${t}.${i}`,i==="preHeaderText"?200:5e3,r,{trim:i==="preHeaderText"});l!==void 0&&(a[i]=l)}),a}function Cr(e){const r=[],t={};if(e.appearance!==void 0&&(t.appearance=vr(e.appearance,r)),e.brandOverrides!==void 0&&(t.brandOverrides=br(e.brandOverrides,r)),e.fragments!==void 0&&(t.fragments=Ir(e.fragments,r)),e.viewUrl!==void 0){const n=Ee(e.viewUrl,"presentation.viewUrl",r);n!==void 0&&(t.viewUrl=n)}return{value:t,issues:r}}const it=["SUN","MON","TUE","WED","THU","FRI","SAT"],Tr=new Map(it.map((e,r)=>[e,r])),wr={cadence:"weekly",hour:9,minute:0,weekdays:[1]};function Er(e){if(typeof e!="string"||e.length===0||e!==e.trim()||/^(?:(?:UTC|GMT)[+-]|[+-]\d{2}:\d{2}$)/.test(e))return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}function xr(e){return Number.isInteger(e.minute)&&e.minute>=0&&e.minute<=59&&Number.isInteger(e.hour)&&e.hour>=0&&e.hour<=23}function ct(e){if(e.length===0)return null;const r=[...e].sort((t,n)=>t-n);return r.some((t,n)=>!Number.isInteger(t)||t<0||t>6||n>0&&t===r[n-1])?null:r}function Sr(e){if(!xr(e))throw new Error("Choose a valid schedule time.");const r=`${e.minute} ${e.hour}`;switch(e.cadence){case"daily":return`${r} * * *`;case"weekly":{const t=ct(e.weekdays);if(!t)throw new Error("Choose at least one weekday.");return`${r} * * ${t.map(n=>it[n]).join(",")}`}case"twice_monthly":return`${r} 1,15 * *`;case"monthly":return`${r} 1 * *`}}function lt(e){if(typeof e!="string"||e.length===0)return{ok:!1,issue:"Choose a supported schedule."};if(e!==e.trim()||e.includes(" "))return{ok:!1,issue:"Choose a supported schedule."};const r=e.split(" ");if(r.length!==5)return{ok:!1,issue:"Choose a supported schedule."};const[t,n,o,a,i]=r;if(!/^(0|[1-9]\d?)$/.test(t)||!/^(0|[1-9]\d?)$/.test(n))return{ok:!1,issue:"Choose a supported schedule."};const l=Number(t),m=Number(n);if(l>59||m>23||a!=="*")return{ok:!1,issue:"Choose a supported schedule."};if(o==="*"&&i==="*")return{ok:!0,value:{cadence:"daily",hour:m,minute:l,weekdays:[]}};if(o==="*"&&i!=="*"){const s=i.split(",").map(d=>Tr.get(d));if(s.some(d=>d===void 0))return{ok:!1,issue:"Choose a supported schedule."};const u=s,p=ct(u);return!p||p.some((d,v)=>d!==u[v])?{ok:!1,issue:"Choose a supported schedule."}:{ok:!0,value:{cadence:"weekly",hour:m,minute:l,weekdays:p}}}return o==="1,15"&&i==="*"?{ok:!0,value:{cadence:"twice_monthly",hour:m,minute:l,weekdays:[]}}:o==="1"&&i==="*"?{ok:!0,value:{cadence:"monthly",hour:m,minute:l,weekdays:[]}}:{ok:!1,issue:"Choose a supported schedule."}}function $r(e,r,t){return new Intl.DateTimeFormat(t,{hour:"numeric",minute:"2-digit",timeZone:"UTC"}).format(new Date(Date.UTC(2020,0,1,e,r)))}function kr(e,r){var t;if(e==="UTC")return"UTC";try{return((t=new Intl.DateTimeFormat(r,{timeZone:e,timeZoneName:"longGeneric"}).formatToParts(new Date(Date.UTC(2020,0,1))).find(o=>o.type==="timeZoneName"))==null?void 0:t.value)??e}catch{return null}}function _r(e,r,t="en-US"){const n=lt(e);if(!n.ok)return null;try{const o=$r(n.value.hour,n.value.minute,t),a=kr(r,t);if(!a)return null;switch(n.value.cadence){case"daily":return`Daily at ${o} ${a}`;case"weekly":{const i=new Intl.DateTimeFormat(t,{weekday:"long",timeZone:"UTC"});return`${n.value.weekdays.map(m=>i.format(new Date(Date.UTC(2023,0,1+m)))).join(" and ")} at ${o} ${a}`}case"twice_monthly":return`On the 1st and 15th at ${o} ${a}`;case"monthly":return`Monthly on the 1st at ${o} ${a}`}}catch{return null}}function Rr(e){return e!=null&&e.role?e.type==="tenant"?e.role==="POWER_USER":["AUTHOR","ADMIN","SUPER_ADMIN"].includes(e.role):!1}function Fr(e){return e.canCreate?[...e.scheduledReportAvailable?["scheduled_report"]:[],...e.analyticalBriefingsEnabled?["analytical_briefing"]:[]]:[]}function dt(e){const r=(e==null?void 0:e.channels)??[];return r.length===1&&r[0]==="EMAIL"}function st(e){return e.body.type==="generated_analysis"?"Analytical briefing":e.body.type==="custom_message"&&e.attachments.length>0&&dt(e.deliveryConfig)?e.scheduleExpr?"Scheduled report":"On-demand report":"Plain briefing"}function Ar(e){const r=st(e),t=r==="Scheduled report"||r==="On-demand report"?"report":"briefing";return{typeLabel:r,noun:t,pluralNoun:t==="report"?"reports":"briefings"}}const ae="BRIEFING",mt=["markdown","html"],ie=["markdown"],re=20,y={name:500,description:2e3,instruction:5e4,customMessage:5e4,contentTitle:500,contentSummary:2e4,contentText:5e3,contentSql:5e4,contentItem:2e3,contentCell:500,attachmentTitle:500,presentationAudience:1e3,presentationTone:500,presentationFormat:2e3,id:500},F={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:y.contentCell,maxParagraphCharacters:y.contentText,maxFindingCharacters:y.contentText,maxListItems:100,maxKpiTiles:8};function ut(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;const r=e;if(typeof r.value!="number"||!Number.isFinite(r.value))return!1;const t=r.target;if(t===null||typeof t!="object"||Array.isArray(t))return!1;const n=t;return(n.kind==="metric"&&typeof n.metricId=="string"&&!!n.metricId.trim()||n.kind==="column"&&typeof n.columnKey=="string"&&!!n.columnKey.trim()||n.kind==="matrix_measure"&&typeof n.measureId=="string"&&!!n.measureId.trim())&&A.parseResolvedNumericCanonicalFormat(r.format).ok}function ft(e){return e==null?"":ut(e)?A.formatNumericCanonical(e.value,e.format):String(e)}function Br(e){return[e.delta,e.percentChange].filter(r=>r!=null).map(ft).filter(Boolean).join(" / ")}const pt=new Set(mt),Dr=new Set(["EMAIL","WEBHOOK","SLACK","IN_APP","TELEGRAM"]),fe={maxToolCalls:{min:1,max:100},maxPlanningIterations:{min:1,max:10},maxRows:{min:1,max:1e5},timeoutMs:{min:1e3,max:30*6e4}},Pr=new Set(["letter","legal","a4","a3","tabloid"]),Mr=new Set(["portrait","landscape"]),Or=new Set([",",";"," "]),zr=new Set(["current","all"]),Kr=new Set(["concise","balanced","detailed"]),Nr=new Set(["info","positive","warning","critical"]),qr=new Set(["text","number","currency","percent","date","boolean"]),Lr=new Set(["left","center","right"]),Vr=["matrix","pageSize","orientation","includeFilters","includeTimestamp","delimiter","includeHeaders","useFormattedValues","sheetSelection","currentSheetId","currentSheetName","filterValues","inlineFilterValues","sheetFilterValues","filterLine","controlValues","controlDefinitions","cardControlDefinitions","controlBindings","tablePreferences","dashboardInputExecutionSnapshot","selectedSheetId","cardType","allowDownload","theme"];class ee extends Error{constructor(t){super(t.map(n=>`${n.field}: ${n.message}`).join("; "));R(this,"issues");this.name="BriefingContractError",this.issues=t}}function yt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function f(e,r,t){e.push({field:r,message:t})}function S(e,r,t){return yt(e)?e:(f(t,r,"Expected an object."),{})}function I(e,r,t,n){const o=new Set(t);Object.keys(e).forEach(a=>{o.has(a)||f(n,r?`${r}.${a}`:a,`Unexpected field "${a}".`)})}function E(e,r,t,n){if(typeof e!="string")return f(n,r,"Expected a string."),"";const o=e.trim();return o?(o.length>t&&f(n,r,`Must be ${t} characters or fewer.`),o):(f(n,r,"Required value cannot be empty."),"")}function x(e,r,t,n){if(e==null)return;if(typeof e!="string"){f(n,r,"Expected a string.");return}const o=e.trim();if(o)return o.length>t&&f(n,r,`Must be ${t} characters or fewer.`),o}function Ur(e,r,t,n){if(typeof e!="string")return f(n,r,"Expected a string."),"";const o=e.trim();return o.length>t&&f(n,r,`Must be ${t} characters or fewer.`),o}function jr(e,r,t){if(e!=null){if(!Number.isInteger(e)||Number(e)<0){f(t,r,"Expected a non-negative integer.");return}return Number(e)}}function D(e,r,t,n={}){if(e==null)return n.required?(f(t,r,"Expected at least one evidence id."),[]):void 0;if(!Array.isArray(e))return f(t,r,"Expected an array."),n.required?[]:void 0;const o=[];return e.forEach((a,i)=>{const l=E(a,`${r}.${i}`,y.id,t);l&&!o.includes(l)&&o.push(l)}),n.required&&o.length===0&&f(t,r,"Expected at least one evidence id."),o.length>0||n.required?o:void 0}function j(e,r,t,n){return e==null?r:typeof e!="boolean"?(f(n,t,"Expected a boolean."),r):e}function Gr(e,r){return e==null?"ACTIVE":e==="ACTIVE"||e==="PAUSED"||e==="DISABLED"?e:(f(r,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function Hr(e){return e.includes("@")&&e.includes(".")&&!e.includes(" ")}function ht(e,r){if(e==null)return{type:"project"};const t=S(e,"source",r),n=t.type;return n==="project"?(I(t,"source",["type"],r),{type:"project"}):n==="dashboard"?(I(t,"source",["type","dashboardId"],r),{type:"dashboard",dashboardId:E(t.dashboardId,"source.dashboardId",y.id,r)}):(f(r,"source.type","Expected project or dashboard."),{type:"project"})}function gt(e,r){const t=S(e,"body",r),n=t.type;return n==="generated_analysis"?(I(t,"body",["type","instruction"],r),{type:"generated_analysis",instruction:E(t.instruction,"body.instruction",y.instruction,r)}):n==="custom_message"?(I(t,"body",["type","message"],r),{type:"custom_message",message:Ur(t.message,"body.message",y.customMessage,r)}):n==="none"?(I(t,"body",["type"],r),{type:"none"}):(f(r,"body.type","Expected generated_analysis, custom_message, or none."),{type:"none"})}function Qr(e,r){if(e==null)return[...ie];if(!Array.isArray(e))return f(r,"presentation.artifactFormats","Expected an array."),[...ie];if(e.length===0)return f(r,"presentation.artifactFormats","Choose at least one artifact format."),[];const t=[];return e.forEach((n,o)=>{if(typeof n!="string"||!pt.has(n)){f(r,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}t.includes(n)||t.push(n)}),t}function vt(e,r){if(e==null)return{artifactFormats:[...ie],includeEvidence:!0,includeSql:!0};const t=S(e,"presentation",r);I(t,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format","appearance","brandOverrides","fragments","viewUrl"],r);const n={artifactFormats:Qr(t.artifactFormats,r),includeEvidence:j(t.includeEvidence,!0,"presentation.includeEvidence",r),includeSql:j(t.includeSql,!0,"presentation.includeSql",r)},o=x(t.audience,"presentation.audience",y.presentationAudience,r),a=x(t.tone,"presentation.tone",y.presentationTone,r),i=x(t.format,"presentation.format",y.presentationFormat,r);o&&(n.audience=o),a&&(n.tone=a),i&&(n.format=i);const l=Cr(t);return l.issues.forEach(m=>f(r,m.field,m.message)),Object.assign(n,l.value),n}function Wr(e,r,t){return Array.isArray(e)?(e.length===0&&f(t,r,"Expected at least one item."),e.length>F.maxListItems&&f(t,r,`Must have ${F.maxListItems} items or fewer.`),e.slice(0,F.maxListItems).map((n,o)=>E(n,`${r}.${o}`,y.contentItem,t)).filter(Boolean)):(f(t,r,"Expected an array."),[])}function Yr(e,r,t){const n=S(e,r,t);if(n.kind==="metric")return I(n,r,["kind","metricId"],t),{kind:"metric",metricId:E(n.metricId,`${r}.metricId`,y.id,t)};if(n.kind==="column")return I(n,r,["kind","columnKey"],t),{kind:"column",columnKey:E(n.columnKey,`${r}.columnKey`,y.id,t)};if(n.kind==="matrix_measure")return I(n,r,["kind","measureId"],t),{kind:"matrix_measure",measureId:E(n.measureId,`${r}.measureId`,y.id,t)};f(t,`${r}.kind`,"Expected metric, column, or matrix_measure.")}function bt(e,r,t){if(e===null||typeof e!="object"||Array.isArray(e))return;const n=S(e,r,t);if(!Object.prototype.hasOwnProperty.call(n,"target")&&!Object.prototype.hasOwnProperty.call(n,"format"))return;I(n,r,["value","target","format"],t),(typeof n.value!="number"||!Number.isFinite(n.value))&&f(t,`${r}.value`,"Expected a finite number.");const o=Yr(n.target,`${r}.target`,t),a=A.parseResolvedNumericCanonicalFormat(n.format);if(a.ok||a.issues.forEach(i=>f(t,i.path==="$"?`${r}.format`:`${r}.format.${i.path}`,i.message)),!(typeof n.value!="number"||!Number.isFinite(n.value)||!o||!a.ok))return{value:n.value,target:o,format:a.value}}function L(e,r,t){if(typeof e=="string")return e;if(typeof e=="number"){if(!Number.isFinite(e)){f(t,r,"Expected a finite number.");return}return e}const n=bt(e,r,t);if(n)return n;f(t,r,"Expected a string, number, or structured numeric value.")}function Jr(e,r,t){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return typeof e=="string"&&e.length>y.contentCell?(f(t,r,`Must be ${y.contentCell} characters or fewer.`),e.slice(0,y.contentCell)):typeof e=="number"&&!Number.isFinite(e)?(f(t,r,"Expected a finite number."),null):e;const n=bt(e,r,t);return n||(f(t,r,"Expected a string, number, boolean, structured numeric value, or null."),null)}function Zr(e,r,t){if(!Array.isArray(e))return f(t,r,"Expected an array."),[];e.length===0&&f(t,r,"Expected at least one column."),e.length>F.maxTableColumns&&f(t,r,`Must have ${F.maxTableColumns} columns or fewer.`);const n=new Set;return e.slice(0,F.maxTableColumns).map((o,a)=>{const i=`${r}.${a}`,l=S(o,i,t);I(l,i,["key","label","kind","align"],t);const m=E(l.key,`${i}.key`,y.id,t);m&&(n.has(m)&&f(t,`${i}.key`,"Column key must be unique."),n.add(m));const c=E(l.label,`${i}.label`,y.contentTitle,t),s=q(l.kind,`${i}.kind`,qr,"text, number, currency, percent, date, or boolean",t),u=q(l.align,`${i}.align`,Lr,"left, center, or right",t);return{key:m,label:c,...s?{kind:s}:{},...u?{align:u}:{}}})}function Xr(e,r,t,n){if(!Array.isArray(e))return f(n,r,"Expected an array."),[];e.length>F.maxTableRows&&f(n,r,`Must have ${F.maxTableRows} rows or fewer.`);const o=new Set(t.map(a=>a.key).filter(Boolean));return e.slice(0,F.maxTableRows).map((a,i)=>{const l=`${r}.${i}`,m=S(a,l,n);return Object.keys(m).forEach(c=>{o.has(c)||f(n,`${l}.${c}`,`Unexpected table cell "${c}".`)}),Object.fromEntries(t.map(c=>[c.key,Jr(m[c.key]??null,`${l}.${c.key}`,n)]))})}function en(e,r,t){const n=`content.blocks.${r}`,o=S(e,n,t),a=o.type;if(a==="heading"){I(o,n,["type","text","level","evidenceIds"],t);const i=o.level===void 0||o.level===null?void 0:o.level===2||o.level===3?o.level:void 0;o.level!==void 0&&o.level!==null&&i===void 0&&f(t,`${n}.level`,"Expected 2 or 3.");const l=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"heading",text:E(o.text,`${n}.text`,y.contentTitle,t),...i?{level:i}:{},...l?{evidenceIds:l}:{}}}if(a==="paragraph"){I(o,n,["type","text","evidenceIds"],t);const i=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"paragraph",text:E(o.text,`${n}.text`,y.contentText,t),...i?{evidenceIds:i}:{}}}if(a==="finding"){I(o,n,["type","title","text","severity","evidenceIds"],t);const i=x(o.title,`${n}.title`,y.contentTitle,t),l=q(o.severity,`${n}.severity`,Nr,"info, positive, warning, or critical",t);return{type:"finding",...i?{title:i}:{},text:E(o.text,`${n}.text`,y.contentText,t),...l?{severity:l}:{},evidenceIds:D(o.evidenceIds,`${n}.evidenceIds`,t,{required:!0})??[]}}if(a==="bullets"||a==="actions"||a==="limitations"){I(o,n,["type","title","items","evidenceIds"],t);const i=x(o.title,`${n}.title`,y.contentTitle,t),l=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:a,...i?{title:i}:{},items:Wr(o.items,`${n}.items`,t),...l?{evidenceIds:l}:{}}}if(a==="metric"){I(o,n,["type","label","value","previousValue","delta","percentChange","unit","evidenceIds"],t);const i=L(o.value,`${n}.value`,t)??"";i===""&&f(t,`${n}.value`,"Expected a non-empty string, number, or structured numeric value.");const l=o.previousValue===void 0||o.previousValue===null?o.previousValue:L(o.previousValue,`${n}.previousValue`,t),m=o.delta===void 0||o.delta===null?o.delta:L(o.delta,`${n}.delta`,t),c=o.percentChange===void 0||o.percentChange===null?o.percentChange:L(o.percentChange,`${n}.percentChange`,t),s=x(o.unit,`${n}.unit`,y.contentTitle,t),u=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"metric",label:E(o.label,`${n}.label`,y.contentTitle,t),value:i,...l!==void 0?{previousValue:l}:{},...m!==void 0?{delta:m}:{},...c!==void 0?{percentChange:c}:{},...s?{unit:s}:{},...u?{evidenceIds:u}:{}}}if(a==="kpi_grid"){I(o,n,["type","title","tiles","evidenceIds"],t);const i=x(o.title,`${n}.title`,y.contentTitle,t),l=Array.isArray(o.tiles)?o.tiles:[];Array.isArray(o.tiles)||f(t,`${n}.tiles`,"Expected an array."),l.length===0&&f(t,`${n}.tiles`,"Expected at least one tile."),l.length>F.maxKpiTiles&&f(t,`${n}.tiles`,`Must have ${F.maxKpiTiles} tiles or fewer.`);const m=l.slice(0,F.maxKpiTiles).map((s,u)=>{const p=`${n}.tiles.${u}`,d=S(s,p,t);I(d,p,["label","value","previousValue","delta","percentChange","unit","evidenceIds"],t);const v=L(d.value,`${p}.value`,t)??"";v===""&&f(t,`${p}.value`,"Expected a non-empty string, number, or structured numeric value.");const h=d.previousValue===void 0||d.previousValue===null?d.previousValue:L(d.previousValue,`${p}.previousValue`,t),b=d.delta===void 0||d.delta===null?d.delta:L(d.delta,`${p}.delta`,t),C=d.percentChange===void 0||d.percentChange===null?d.percentChange:L(d.percentChange,`${p}.percentChange`,t),g=x(d.unit,`${p}.unit`,y.contentTitle,t),w=D(d.evidenceIds,`${p}.evidenceIds`,t);return{label:E(d.label,`${p}.label`,y.contentTitle,t),value:v,...h!==void 0?{previousValue:h}:{},...b!==void 0?{delta:b}:{},...C!==void 0?{percentChange:C}:{},...g?{unit:g}:{},...w?{evidenceIds:w}:{}}}),c=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"kpi_grid",...i?{title:i}:{},tiles:m,...c?{evidenceIds:c}:{}}}if(a==="progress"){I(o,n,["type","label","value","detail","evidenceIds"],t);const i=typeof o.value=="number"&&Number.isFinite(o.value)?o.value:0;(typeof o.value!="number"||!Number.isFinite(o.value))&&f(t,`${n}.value`,"Expected a finite number.");const l=x(o.detail,`${n}.detail`,y.contentText,t),m=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"progress",label:E(o.label,`${n}.label`,y.contentTitle,t),value:i,...l?{detail:l}:{},...m?{evidenceIds:m}:{}}}if(a==="table"){I(o,n,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],t);const i=Zr(o.columns,`${n}.columns`,t),l=x(o.title,`${n}.title`,y.contentTitle,t),m=x(o.id,`${n}.id`,y.id,t),c=x(o.caption,`${n}.caption`,y.contentItem,t),s=jr(o.totalRows,`${n}.totalRows`,t),u=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"table",...m?{id:m}:{},...l?{title:l}:{},columns:i,rows:Xr(o.rows,`${n}.rows`,i,t),...c?{caption:c}:{},...s!==void 0?{totalRows:s}:{},...u?{evidenceIds:u}:{}}}if(a==="evidence_appendix"){I(o,n,["type","title","evidenceIds"],t);const i=x(o.title,`${n}.title`,y.contentTitle,t);return{type:"evidence_appendix",...i?{title:i}:{},evidenceIds:D(o.evidenceIds,`${n}.evidenceIds`,t,{required:!0})??[]}}if(a==="sql"){I(o,n,["type","title","sql","evidenceIds"],t);const i=x(o.title,`${n}.title`,y.contentTitle,t),l=E(o.sql,`${n}.sql`,y.contentSql,t),m=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"sql",...i?{title:i}:{},sql:l,...m?{evidenceIds:m}:{}}}return f(t,`${n}.type`,"Expected heading, paragraph, finding, bullets, metric, kpi_grid, progress, table, actions, limitations, sql, or evidence_appendix."),{type:"paragraph",text:""}}function It(e){const r=[],t=S(e,"content",r);I(t,"content",["version","title","summary","blocks"],r),t.version!==1&&f(r,"content.version","Expected version 1.");const n=x(t.title,"content.title",y.contentTitle,r),o=x(t.summary,"content.summary",y.contentSummary,r);Array.isArray(t.blocks)||f(r,"content.blocks","Expected an array.");const a=Array.isArray(t.blocks)?t.blocks:[];a.length===0&&f(r,"content.blocks","Expected at least one block."),a.length>F.maxBlocks&&f(r,"content.blocks",`Must have ${F.maxBlocks} blocks or fewer.`);const i=a.slice(0,F.maxBlocks).map((l,m)=>en(l,m,r));return xe(r),{version:1,...n?{title:n}:{},...o?{summary:o}:{},blocks:i}}function tn(e){try{return{valid:!0,value:It(e),issues:[]}}catch(r){if(r instanceof ee)return{valid:!1,issues:r.issues};throw r}}function ne(e,r,t,n){return typeof e=="string"&&t.includes(e)?e:(f(n,r,`Expected ${t.join(" or ")}.`),t[0])}function q(e,r,t,n,o){if(e!=null){if(typeof e=="string"&&t.has(e))return e;f(o,r,`Expected ${n}.`)}}function rn(e,r,t){if(e!=null){if(!Array.isArray(e)){f(t,r,"Expected an array.");return}return e}}function nn(e,r,t){if(e!=null){if(!yt(e)){f(t,r,"Expected an object.");return}return e}}function on(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,Vr,t);const o={};if(n.matrix!==void 0){const c=S(n.matrix,`${r}.matrix`,t);I(c,`${r}.matrix`,["config","content"],t);const s=K.matrixConfigSchema.safeParse(c.config);s.success||f(t,`${r}.matrix.config`,"Expected a valid Matrix definition.");const u=q(c.content,`${r}.matrix.content`,new Set(["current","all","flat"]),"current, all, or flat",t);u||f(t,`${r}.matrix.content`,"Choose Matrix export content."),s.success&&u&&(o.matrix={config:s.data,content:u})}const a=q(n.pageSize,`${r}.pageSize`,Pr,"letter, legal, a4, a3, or tabloid",t),i=q(n.orientation,`${r}.orientation`,Mr,"portrait or landscape",t),l=q(n.delimiter,`${r}.delimiter`,Or,"comma, semicolon, or tab",t),m=q(n.sheetSelection,`${r}.sheetSelection`,zr,"current or all",t);a&&(o.pageSize=a),i&&(o.orientation=i),l&&(o.delimiter=l),m&&(o.sheetSelection=m);for(const c of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues","allowDownload"])if(!(n[c]===void 0||n[c]===null)){if(typeof n[c]!="boolean"){f(t,`${r}.${c}`,"Expected a boolean.");continue}o[c]=n[c]}for(const c of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const s=x(n[c],`${r}.${c}`,y.id,t);s&&(o[c]=s)}for(const c of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const s=rn(n[c],`${r}.${c}`,t);s&&(o[c]=s)}for(const c of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const s=nn(n[c],`${r}.${c}`,t);s&&(o[c]=s)}return Object.keys(o).length>0?o:void 0}function pe(e,r,t,n){const o=x(r,t,y.attachmentTitle,n);return o&&(e.title=o),e}function ye(e,r,t,n){const o=on(r,t,n);return o&&(e.settings=o),e}function an(e,r,t){const n=`attachments.${r}`,o=S(e,n,t),a=o.type;if(a==="dashboard"){I(o,n,["type","dashboardId","format","title","settings"],t);const i=pe({type:"dashboard",dashboardId:E(o.dashboardId,`${n}.dashboardId`,y.id,t),format:ne(o.format,`${n}.format`,["pdf"],t)},o.title,`${n}.title`,t);return ye(i,o.settings,`${n}.settings`,t)}if(a==="dashboard_sheet"||a==="document_sheet"){I(o,n,["type","dashboardId","sheetId","format","title","settings"],t);const i=pe({type:a,dashboardId:E(o.dashboardId,`${n}.dashboardId`,y.id,t),sheetId:E(o.sheetId,`${n}.sheetId`,y.id,t),format:ne(o.format,`${n}.format`,["pdf"],t)},o.title,`${n}.title`,t);return ye(i,o.settings,`${n}.settings`,t)}if(a==="card"){I(o,n,["type","dashboardId","cardId","format","title","settings"],t);const i=pe({type:"card",dashboardId:E(o.dashboardId,`${n}.dashboardId`,y.id,t),cardId:E(o.cardId,`${n}.cardId`,y.id,t),format:ne(o.format,`${n}.format`,["csv","pdf"],t)},o.title,`${n}.title`,t);return ye(i,o.settings,`${n}.settings`,t)}return f(t,`${n}.type`,"Expected dashboard, dashboard_sheet, document_sheet, or card."),{type:"dashboard",dashboardId:"",format:"pdf"}}function cn(e){switch(e.type){case"dashboard":return`${e.type}:${e.dashboardId}:${e.format}`;case"dashboard_sheet":case"document_sheet":return`${e.type}:${e.dashboardId}:${e.sheetId}:${e.format}`;case"card":return`${e.type}:${e.dashboardId}:${e.cardId}:${e.format}`}}function Ct(e,r){if(e==null)return[];if(!Array.isArray(e))return f(r,"attachments","Expected an array."),[];e.length>re&&f(r,"attachments",`Choose ${re} attachments or fewer.`);const t=e.slice(0,re).map((o,a)=>an(o,a,r)),n=new Set;return t.forEach((o,a)=>{var l;(l=o.settings)!=null&&l.matrix&&(o.type!=="card"||o.settings.cardType!=="matrixTable"||o.settings.matrix.content==="flat"&&o.format!=="csv")&&f(r,`attachments.${a}.settings.matrix`,"Matrix settings require a matrixTable card attachment; flat content requires CSV.");const i=cn(o);n.has(i)&&f(r,`attachments.${a}`,"Duplicate attachment."),n.add(i)}),t}function Tt(e,r){if(e==null)return;const t=S(e,"limits",r);I(t,"limits",Object.keys(fe),r);const n={};return Object.keys(fe).forEach(o=>{const a=t[o];if(a==null)return;const i=fe[o];if(typeof a!="number"||!Number.isInteger(a)||a<i.min||a>i.max){f(r,`limits.${o}`,`Expected an integer between ${i.min} and ${i.max}.`);return}n[o]=a}),Object.keys(n).length>0?n:void 0}function xe(e){if(e.length>0)throw new ee(e)}function wt(e,r,t){!(e.type==="generated_analysis"||e.type==="custom_message"&&!!e.message.trim())&&r.length===0&&f(t,"body","Add briefing instructions, a custom message, or at least one attachment.")}function ln(e,r,t){e==null||e.forEach((n,o)=>{const a=`${t}.${o}.scope`,i=n.scope.attachmentIndex;if(i===void 0)throw new B.PresentationExecutionSnapshotError(`${a}.attachmentIndex must identify the attachment that owns this presentation entry.`);const l=r[i];if(!l)throw new B.PresentationExecutionSnapshotError(`${a}.attachmentIndex must identify an existing attachment.`);if(n.scope.dashboardId!==l.dashboardId)throw new B.PresentationExecutionSnapshotError(`${a}.dashboardId must match the dashboard selected by the referenced attachment.`);if(l.type==="card"&&n.scope.cardId!==l.cardId)throw new B.PresentationExecutionSnapshotError(`${a}.cardId must match the card selected by the referenced attachment.`)})}function Se(e){const r=[],t=S(e,"jobConfig",r);I(t,"jobConfig",["kind","presentationExecutionSnapshot","source","body","attachments","presentation","limits"],r),t.kind!==ae&&f(r,"kind","Expected BRIEFING.");let n;try{n=B.parsePresentationExecutionSnapshot(t.presentationExecutionSnapshot)}catch(c){if(c instanceof B.PresentationExecutionSnapshotError)throw c;f(r,"jobConfig.presentationExecutionSnapshot",c instanceof Error?c.message:"Invalid presentation snapshot.")}const o=ht(t.source,r),a=gt(t.body,r),i=Ct(t.attachments,r),l=vt(t.presentation,r),m=Tt(t.limits,r);return wt(a,i,r),ln(n==null?void 0:n.resolvedFormats,i,"jobConfig.presentationExecutionSnapshot.resolvedFormats"),xe(r),{kind:ae,presentationExecutionSnapshot:n,source:o,body:a,attachments:i,presentation:l,...m?{limits:m}:{}}}function dn(e){return Se({...e,kind:ae})}function $e(e,r,t,n="deliveryConfig.recipients"){const o=`${n}.${r}`,a=S(e,o,t),i=a.type;if(i==="email"){I(a,o,["type","address","name"],t);const l=E(a.address,`${o}.address`,y.id,t),m=x(a.name,`${o}.name`,y.attachmentTitle,t);return l&&!Hr(l)&&f(t,`${o}.address`,"Email address is invalid."),{type:"email",address:l,...m?{name:m}:{}}}return i==="user"?(I(a,o,["type","userId"],t),{type:"user",userId:E(a.userId,`${o}.userId`,y.id,t)}):i==="tenant_user"?(I(a,o,["type","tenantUserId"],t),{type:"tenant_user",tenantUserId:E(a.tenantUserId,`${o}.tenantUserId`,y.id,t)}):i==="group"?(I(a,o,["type","groupId"],t),{type:"group",groupId:E(a.groupId,`${o}.groupId`,y.id,t)}):(f(t,`${o}.type`,"Expected email, user, tenant_user, or group."),{type:"email",address:""})}function sn(e,r){return e==null?[]:Array.isArray(e)?e.map((t,n)=>$e(t,n,r)):(f(r,"deliveryConfig.recipients","Expected an array."),[])}function mn(e,r){if(!Array.isArray(e))return f(r,"deliveryConfig.channels","Expected an array."),[];const t=[];return e.forEach((n,o)=>{if(!ke(n)){f(r,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}t.includes(n)||t.push(n)}),t}function un(e,r,t){if(e==null)return;const n=S(e,r,t),o={};return Object.entries(n).forEach(([a,i])=>{if(typeof i!="string"){f(t,`${r}.${a}`,"Expected a string.");return}o[a]=i.trim()}),Object.keys(o).length>0?o:void 0}function fn(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,["url","method","headers","secretEncrypted"],t);const o=n.method===void 0||n.method===null?void 0:ne(n.method,`${r}.method`,["POST","PUT"],t),a=un(n.headers,`${r}.headers`,t),i=x(n.secretEncrypted,`${r}.secretEncrypted`,2e3,t);return{url:E(n.url,`${r}.url`,2e3,t),...o?{method:o}:{},...a?{headers:a}:{},...i?{secretEncrypted:i}:{}}}function pn(e,r,t){const n=S(e,r,t),o=n.type;if(o==="channel"){I(n,r,["type","channelId","channelName","isPrivate"],t);const a=x(n.channelName,`${r}.channelName`,y.attachmentTitle,t),i=n.isPrivate===void 0||n.isPrivate===null?void 0:j(n.isPrivate,!1,`${r}.isPrivate`,t);return{type:"channel",channelId:E(n.channelId,`${r}.channelId`,y.id,t),...a?{channelName:a}:{},...i!==void 0?{isPrivate:i}:{}}}return o==="dm"?(I(n,r,["type","recipient"],t),f(t,`${r}.type`,"Slack DM delivery is not supported in V1."),{type:"dm",recipient:$e(n.recipient,0,t,`${r}.recipient`)}):(f(t,`${r}.type`,"Expected channel."),{type:"channel",channelId:""})}function yn(e,r,t){if(e==null)return;if(!Array.isArray(e)){f(t,r,"Expected an array.");return}const n=e.map((o,a)=>$e(o,a,t,r));return n.length>0?n:void 0}function hn(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],t);const o=yn(n.threadMentions,`${r}.threadMentions`,t),a=j(n.postThreadDetail,!0,`${r}.postThreadDetail`,t),i=j(n.includeDashboardLink,!0,`${r}.includeDashboardLink`,t),l=j(n.includeBriefingLink,!0,`${r}.includeBriefingLink`,t);return{destination:pn(n.destination,`${r}.destination`,t),...o?{threadMentions:o}:{},...n.postThreadDetail!==void 0?{postThreadDetail:a}:{},...n.includeDashboardLink!==void 0?{includeDashboardLink:i}:{},...n.includeBriefingLink!==void 0?{includeBriefingLink:l}:{}}}function gn(e,r,t){const n=S(e,r,t);I(n,r,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],t);const o=q(n.formatProfile,`${r}.formatProfile`,Kr,"concise, balanced, or detailed",t),a=x(n.subjectOverride,`${r}.subjectOverride`,500,t),i=x(n.titleOverride,`${r}.titleOverride`,500,t),l=x(n.summaryOverride,`${r}.summaryOverride`,2e3,t),m=j(n.actionBlockVisible,!0,`${r}.actionBlockVisible`,t),c=fn(n.webhookConfig,`${r}.webhookConfig`,t),s=hn(n.slackConfig,`${r}.slackConfig`,t);return{...o?{formatProfile:o}:{},...a?{subjectOverride:a}:{},...i?{titleOverride:i}:{},...l?{summaryOverride:l}:{},...n.actionBlockVisible!==void 0?{actionBlockVisible:m}:{},...s?{slackConfig:s}:{},...c?{webhookConfig:c}:{}}}function vn(e,r){if(e==null)return;const t=S(e,"deliveryConfig.channelConfigs",r),n={};return Object.entries(t).forEach(([o,a])=>{if(!ke(o)){f(r,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}n[o]=gn(a,`deliveryConfig.channelConfigs.${o}`,r)}),Object.keys(n).length>0?n:void 0}function bn(e,r){var m,c,s;if(e==null)return null;const t=S(e,"deliveryConfig",r);I(t,"deliveryConfig",["recipients","channels","channelConfigs"],r);const n=vn(t.channelConfigs,r),o=sn(t.recipients,r),a=mn(t.channels,r),i=((c=(m=n==null?void 0:n.SLACK)==null?void 0:m.slackConfig)==null?void 0:c.destination.type)==="channel"&&!!n.SLACK.slackConfig.destination.channelId.trim();return a.some(u=>u!=="SLACK")&&o.length===0&&f(r,"deliveryConfig.recipients","Add at least one recipient or remove delivery config."),a.length===0&&f(r,"deliveryConfig.channels","Choose at least one delivery channel or remove delivery config."),a.includes("SLACK")&&!i&&f(r,"deliveryConfig.channelConfigs.SLACK.slackConfig.destination.channelId","Choose a Slack channel destination."),!a.includes("SLACK")&&((s=n==null?void 0:n.SLACK)!=null&&s.slackConfig)&&f(r,"deliveryConfig.channelConfigs.SLACK","Slack config requires SLACK in deliveryConfig.channels."),{recipients:o,channels:a,...n?{channelConfigs:n}:{}}}function de(e){const r=[],t=S(e,"draft",r);I(t,"draft",["name","description","status","scheduleExpr","timezone","source","body","attachments","presentation","limits","deliveryConfig"],r);const n=E(t.name,"name",y.name,r),o=x(t.description,"description",y.description,r)??null,a=x(t.scheduleExpr,"scheduleExpr",500,r)??null,i=x(t.timezone,"timezone",200,r)??"UTC",l=Gr(t.status,r),m=ht(t.source,r),c=gt(t.body,r),s=Ct(t.attachments,r),u=vt(t.presentation,r),p=Tt(t.limits,r),d=bn(t.deliveryConfig,r);return wt(c,s,r),xe(r),{name:n,description:o,status:l,scheduleExpr:a,timezone:i,source:m,body:c,attachments:s,presentation:u,...p?{limits:p}:{},deliveryConfig:d}}function In(e){return de(e)}function Cn(e){return de(e)}function Tn(e){try{return{valid:!0,value:de(e),issues:[]}}catch(r){if(r instanceof ee)return{valid:!1,issues:r.issues};throw r}}function wn(e){try{return{valid:!0,value:Se(e),issues:[]}}catch(r){if(r instanceof ee)return{valid:!1,issues:r.issues};throw r}}function En(e){return typeof e=="string"&&pt.has(e)}function ke(e){return typeof e=="string"&&Dr.has(e)}exports.AmbiguousGroupedTemporalGrainError=Oe;exports.BRIEFING_ARTIFACT_FORMATS=mt;exports.BRIEFING_CONTENT_LIMITS=F;exports.BRIEFING_KIND=ae;exports.BRIEFING_TEXT_LIMITS=y;exports.BriefingContractError=ee;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=ie;exports.DEFAULT_BRIEFING_SCHEDULE=wr;exports.DashboardTemporalBoundaryError=V;exports.MAX_BRIEFING_ATTACHMENTS=re;exports.PYTHON_DEFAULT_CODE=Me;exports.RawTemporalPresentationBoundaryError=k;exports.buildBriefingJobConfig=dn;exports.buildBriefingScheduleExpr=Sr;exports.buildCreateBriefingRequest=In;exports.buildDashboardCardTableConfig=_t;exports.buildDashboardTemporalSnapshotEntries=dr;exports.buildMatrixDeliveryEnvelope=yr;exports.buildSlotOrderedCards=Xe;exports.buildUpdateBriefingRequest=Cn;exports.canCreateBriefingForUser=Rr;exports.captureMatrixExport=fr;exports.createCardsFromSlots=or;exports.describeBriefingSchedule=_r;exports.findCustomVisualConfigCard=tt;exports.formatBriefingComparisonValues=Br;exports.formatBriefingDisplayValue=ft;exports.formatGroupedTemporalFieldValue=Kt;exports.formatGroupedTemporalRecords=Pt;exports.formatGroupedTemporalValue=Ie;exports.getActiveCardFromVisualResource=Jt;exports.getActiveFrameCard=Te;exports.getBriefingCardAttachmentCapability=ur;exports.getBriefingCardAttachmentFormats=nt;exports.getBriefingCreationIntents=Fr;exports.getBriefingDisplayTypeLabel=st;exports.getBriefingPresentation=Ar;exports.getConfigSlotExpectedType=rr;exports.getCustomVisualInputCards=et;exports.getDefaultBriefingCardAttachmentFormat=ot;exports.getDefaultDeclaredSqlRawTemporalPattern=qt;exports.getEffectiveCardTypeForSlot=nr;exports.getSlotDefinitionForIndex=we;exports.getSlotExpectedChartType=le;exports.getSlotIndexForCard=Ze;exports.hasMissingDeclaredSqlCustomDateFormat=He;exports.inspectDeclaredSqlRawTemporalPreview=Ut;exports.isBriefingArtifactFormat=En;exports.isBriefingDeliveryChannel=ke;exports.isBriefingNumericValue=ut;exports.isCardRawTemporalPresentationActivated=Ht;exports.isCardRawTemporalResultCompatible=Yt;exports.isCustomVisualConfigCard=ge;exports.isDeclaredSqlRawTemporalPresentationCard=Ce;exports.isEmailOnlyBriefingDelivery=dt;exports.isGroupedTemporalResultCompatible=Mt;exports.isPivotResultContractCompatibleWithCardConfig=qe;exports.isValidBriefingTimezone=Er;exports.matrixDeliveryPayloadSchema=pr;exports.matrixDeliveryQuerySchema=at;exports.matrixLayoutReadResultSchema=hr;exports.normalizeBriefingContentDocument=It;exports.normalizeBriefingDraft=de;exports.normalizeBriefingJobConfig=Se;exports.normalizeDashboardCardPythonCode=G;exports.normalizeGroupedTemporalField=ze;exports.normalizeMultiInputPayload=ir;exports.parseBriefingScheduleExpr=lt;exports.parseCanonicalPivotResultTransportOnce=Ne;exports.parseFrameObject=Ye;exports.presentRawTemporalCell=Wt;exports.reindexSlotCards=tr;exports.repairMissingDeclaredSqlCustomDateFormat=jt;exports.resolveCardRawTemporalPresentation=We;exports.resolveCartesianTemporalActivation=At;exports.resolveDashboardCardResultOwner=X;exports.resolveDashboardTemporalActivation=Ke;exports.resolveDeclaredSqlRawTemporalFormat=ce;exports.resolveDetailTableRawTemporalPresentation=Qe;exports.resolveGroupedTemporalFieldPresentationByRole=Ve;exports.resolveGroupedTemporalFieldSnapshotFormat=Ue;exports.resolveGroupedTemporalPresentation=zt;exports.resolveMultiInputType=rt;exports.resolveMultiInputTypeFromVisual=ar;exports.resolveRegularTableTemporalActivation=Ft;exports.validateBriefingContentDocument=tn;exports.validateBriefingDraft=Tn;exports.validateBriefingJobConfig=wn;exports.validateDeclaredSqlRawTemporalPattern=Lt;
@@ -1 +0,0 @@
1
- "use strict";const b=require("./validators-DFeDcdpA.cjs");require("./matrix-operation-contract-0RxoU_M3.cjs");const c=require("./semantic-format-mVI32OJH.cjs"),v=require("./index-Cw2ypaFl.cjs"),y=require("./raw-temporal-eJXecCyJ.cjs"),T=require("./constants-B00YUv89.cjs"),w=require("./temporal-bucket-4YEPEKlJ.cjs");function p(t,e){const n=c.toDate(t),s=c.toDate(e),r=n.getTime()-s.getTime();return r<0?-1:r>0?1:r}function R(t){return c.constructFrom(t,Date.now())}function z(t,e){const n=c.toDate(t),s=c.toDate(e),r=n.getFullYear()-s.getFullYear(),o=n.getMonth()-s.getMonth();return r*12+o}function O(t){return e=>{const s=(t?Math[t]:Math.trunc)(e);return s===0?0:s}}function S(t,e){return+c.toDate(t)-+c.toDate(e)}function Z(t){const e=c.toDate(t);return e.setHours(23,59,59,999),e}function k(t){const e=c.toDate(t),n=e.getMonth();return e.setFullYear(e.getFullYear(),n+1,0),e.setHours(23,59,59,999),e}function V(t){const e=c.toDate(t);return+Z(e)==+k(e)}function X(t,e){const n=c.toDate(t),s=c.toDate(e),r=p(n,s),o=Math.abs(z(n,s));let f;if(o<1)f=0;else{n.getMonth()===1&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-r*o);let a=p(n,s)===-r;V(c.toDate(t))&&o===1&&p(t,s)===1&&(a=!1),f=r*(o-Number(a))}return f===0?0:f}function q(t,e,n){const s=S(t,e)/1e3;return O(n==null?void 0:n.roundingMethod)(s)}function E(t,e,n){const s=c.getDefaultOptions(),r=(n==null?void 0:n.locale)??s.locale??c.enUS,o=2520,f=p(t,e);if(isNaN(f))throw new RangeError("Invalid time value");const a=Object.assign({},n,{addSuffix:n==null?void 0:n.addSuffix,comparison:f});let D,i;f>0?(D=c.toDate(e),i=c.toDate(t)):(D=c.toDate(t),i=c.toDate(e));const m=q(i,D),l=(c.getTimezoneOffsetInMilliseconds(i)-c.getTimezoneOffsetInMilliseconds(D))/1e3,u=Math.round((m-l)/60);let h;if(u<2)return n!=null&&n.includeSeconds?m<5?r.formatDistance("lessThanXSeconds",5,a):m<10?r.formatDistance("lessThanXSeconds",10,a):m<20?r.formatDistance("lessThanXSeconds",20,a):m<40?r.formatDistance("halfAMinute",0,a):m<60?r.formatDistance("lessThanXMinutes",1,a):r.formatDistance("xMinutes",1,a):u===0?r.formatDistance("lessThanXMinutes",1,a):r.formatDistance("xMinutes",u,a);if(u<45)return r.formatDistance("xMinutes",u,a);if(u<90)return r.formatDistance("aboutXHours",1,a);if(u<T.minutesInDay){const M=Math.round(u/60);return r.formatDistance("aboutXHours",M,a)}else{if(u<o)return r.formatDistance("xDays",1,a);if(u<T.minutesInMonth){const M=Math.round(u/T.minutesInDay);return r.formatDistance("xDays",M,a)}else if(u<T.minutesInMonth*2)return h=Math.round(u/T.minutesInMonth),r.formatDistance("aboutXMonths",h,a)}if(h=X(i,D),h<12){const M=Math.round(u/T.minutesInMonth);return r.formatDistance("xMonths",M,a)}else{const M=h%12,d=Math.trunc(h/12);return M<3?r.formatDistance("aboutXYears",d,a):M<9?r.formatDistance("overXYears",d,a):r.formatDistance("almostXYears",d+1,a)}}function L(t,e){return E(t,R(t),e)}function P(t,e){return t&&t!=="auto"?t:e}function $(t,e=new Date){try{const n={timeZone:t,timeZoneName:"short"},r=new Intl.DateTimeFormat("en-US",n).formatToParts(e).find(o=>o.type==="timeZoneName");return(r==null?void 0:r.value)||t}catch{return t}}function Y(t){try{const e={timeZone:t,timeZoneName:"long"},s=new Intl.DateTimeFormat("en-US",e).formatToParts(new Date).find(r=>r.type==="timeZoneName");return(s==null?void 0:s.value)||t}catch{return t}}function x(t,e="auto"){if(!t)return new Date(NaN);const n=t.endsWith("Z"),s=/[+-]\d{2}:?\d{2}$/.test(t),r=/\([A-Z]{3,4}\)$/.test(t);if(e==="auto")return n||s||r?new Date(t):new Date(t+"Z");if(e==="local"){if(n||s){const o=t.replace(/Z$/,"").replace(/[+-]\d{2}:?\d{2}$/,"");return new Date(o)}return new Date(t)}else return e==="UTC"?n?new Date(t):s?new Date(t):new Date(t+"Z"):n||s||r?new Date(t):v.fromZonedTime(t,e)}const B="MM/dd/yyyy",N=(t,e,n,s="auto")=>{if(!t)return"";try{const r=x(t,s);if(isNaN(r.getTime()))return t;const f=(e&&e.trim()?e:B).replace(/LLLL/g,"MMMM").replace(/LLL/g,"MMM");return n&&n!=="auto"?c.formatInTimeZone(r,n,f):c.format(r,f)}catch(r){return console.error("Date formatting error:",r),t}},I=(t,e="auto")=>{if(!t)return"";try{const n=x(t,e);return isNaN(n.getTime())?t:L(n,{addSuffix:!0})}catch(n){return console.error("Relative time formatting error:",n),t}};function j(t,e,n,s){const r=t instanceof Date?t.toISOString():String(t),o=(s==null?void 0:s.browserTimezone)||n,f=(s==null?void 0:s.isSqlCard)??!1;if(e!=null&&e.useRelativeTime)return I(r,(e==null?void 0:e.sourceTimezone)||"auto");const a=e!=null&&e.useCustomFormat&&(e!=null&&e.customFormat)?e.customFormat:(e==null?void 0:e.format)||"MM/dd/yyyy";return N(r,a,e!=null&&e.timezone&&(e==null?void 0:e.timezone)!=="auto"?e.timezone:f?o:n,(e==null?void 0:e.sourceTimezone)||"auto")}function g(t,e,n){var f,a;if(t==null)return t===null?((f=n.absence)==null?void 0:f.nullText)??"":((a=n.absence)==null?void 0:a.emptyText)??"";const s=b.isExactNumericValue(t)?t:void 0,r=s?s.value:t,o=s??(typeof t=="number"?t:void 0);if(!n.useFormattedValues||!e)return String(r);switch(e.type){case"number":return o!==void 0?y.formatNumberWithColumnSettings(o,e.numberFormat,n.locale):String(r);case"date":return j(r,e.dateFormat,n.timezone,{browserTimezone:n.browserTimezone,isSqlCard:n.isSqlCard});case"progress":return o!==void 0?`${r}%`:String(r);case"badge":case"link":case"text":case"none":default:return String(r)}}function H(t,e){return e.visibleColumns.map(n=>{const s=t[n],r=e.columnSettings[n];return g(s,r,{useFormattedValues:e.useFormattedValues,timezone:e.timezone,locale:e.locale})})}function _(t,e){var r;const n=t[t.length-1];if(!n)return"";if(n.member.kind==="others")return"Others";const s=n.member.value;return s===null?"(Blank)":((r=e==null?void 0:e.get(n.levelId))==null?void 0:r(s))??(typeof s=="object"?s.value:String(s))}function A(t,e,n){return t==="grand_total"?n??"Grand Total":t==="subtotal"?(n==null?void 0:n.split(b.MATRIX_TOTAL_MEMBER_PLACEHOLDER).join(e))??`${e} Total`:e}function U(t,e,n,s){var f;const r=t[t.length-1],o=e==="grand_total"?n.grand.label:r?(f=n.levels[r.levelId])==null?void 0:f.label:void 0;return A(e,_(t,s),o)}function W(t,e,n){return t.kind==="value"?(e==null?void 0:e(t.value))??"":t.kind==="null"?n.nullText:n.emptyText}function K(t){const{path:e,previousPath:n,role:s,repeatLabels:r,levelCount:o}=t;return Array.from({length:o},(f,a)=>{const D=e.slice(0,a+1),i=s==="grand_total"?a===0:s==="subtotal"&&a===e.length-1,m=n&&n.length>a&&b.matrixPathKey(n.slice(0,a+1))===b.matrixPathKey(D);return{path:D,total:i,visible:i||e.length>a&&(r||!m||a===e.length-1)}})}function C(t,e){return c.fromSemanticFormat(t??e,{preserveOmittedProperties:!0,numericInput:"canonical"})}function F(t,e,n){const s=new Map,r=(o,f)=>{const a=(f==="levels"?e.levelFormats:e.measureFormats)[o.id],D=o.semanticFormat,i=C(a,D);f==="measures"&&s.set(o.id,{isNumeric:b.normalizeAnalyticsCatalogDataType(o.column.dataType)==="number",hasTextAffixes:!!i&&!!("prefix"in i&&i.prefix||"suffix"in i&&i.suffix)});const m=l=>g(l,void 0,{useFormattedValues:!0,timezone:n.calendar.tz,locale:n.valueFormat.locale,absence:e.absence});if(o.column.temporalBucket){const l=o.column.temporalBucket,u=w.resolveTemporalBucketPresentation({metadata:l,cardFormat:(a==null?void 0:a.type)==="temporal_bucket"?a:void 0,semanticFormat:(D==null?void 0:D.type)==="temporal_bucket"?{granularity:l.granularity,format:D}:void 0,locale:n.valueFormat.locale,styles:{dateStyle:n.valueFormat.dateStyle,dateTime:n.valueFormat.dateTime}});return h=>typeof h=="string"?w.formatTemporalBucket({value:h,metadata:l,format:u.format}):m(h)}if(o.column.rawTemporal){const l=y.prepareRawTemporalFormatter({metadata:o.column.rawTemporal,format:y.resolveRawTemporalFormat({format:(i==null?void 0:i.type)==="date"?{type:"raw_temporal",timezone:i.timezone,sourceTimezone:i.sourceTimezone,presentation:i.pattern?{mode:"pattern",dialect:"semaphor_tokens",pattern:i.pattern}:{mode:"auto"}}:void 0,preferences:n.valueFormat,calendar:n.calendar})});return u=>{if(typeof u!="string")return m(u);const h=l(u);return h.ok?h.text:m(u)}}if(v.isNumericCanonicalFormat(i)){const l=y.resolveNumericPresentation(i,n.valueFormat);return u=>typeof u=="number"||typeof u=="object"&&u!==null?y.formatNumericCanonical(u,l):m(u)}return(i==null?void 0:i.type)==="duration"?l=>typeof l=="number"||typeof l=="string"||typeof l=="object"&&l!==null?y.formatDuration(typeof l=="object"?l.value:l,i):m(l):(i==null?void 0:i.type)==="string"?l=>l===null?m(l):`${i.prefix??""}${m(l)}${i.suffix??""}`:m};return{levels:new Map(t.levels.map(o=>[o.id,r(o,"levels")])),measures:new Map(t.measures.map(o=>[o.id,r(o,"measures")])),measureSemantics:s}}exports.formatCellValue=g;exports.formatDate=N;exports.formatDistanceToNow=L;exports.formatRelativeTime=I;exports.formatRowForExport=H;exports.getTimezoneAbbreviation=$;exports.getTimezoneName=Y;exports.matrixAxisLabel=U;exports.matrixCellText=W;exports.matrixLevelLabels=K;exports.matrixMemberLabel=_;exports.matrixTotalLabel=A;exports.parseWithSourceTimezone=x;exports.prepareMatrixFormatting=F;exports.resolveMatrixValueFormat=C;exports.resolveTimezone=P;
@@ -1 +0,0 @@
1
- "use strict";var T=Object.defineProperty;var q=(e,o,t)=>o in e?T(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t;var f=(e,o,t)=>q(e,typeof o!="symbol"?o+"":o,t);const I=require("./raw-temporal-eJXecCyJ.cjs"),O=require("./report-runtime-context-CzSrCBsu.cjs"),u=require("./temporal-bucket-4YEPEKlJ.cjs"),U=require("./index-Cw2ypaFl.cjs"),B=require("./validators-DFeDcdpA.cjs");require("./matrix-operation-contract-0RxoU_M3.cjs");const N=require("./metric-comparison-CUmltzpz.cjs"),J=require("./temporal-bucket-contract-nTv6gvX5.cjs"),k=require("./pivot-result-identity-gquWljbd.cjs");class b extends Error{constructor(t){super(`invalid_presentation_execution_snapshot: ${t} Resave this report before running it again.`);f(this,"code","invalid_presentation_execution_snapshot");f(this,"deliveryBlocking",!0);this.name="PresentationExecutionSnapshotError"}}class D extends Error{constructor(t){super(`missing_resolved_raw_temporal_format: Column "${t}" has no captured presentation. Resave this report before running it again.`);f(this,"code","missing_resolved_raw_temporal_format");f(this,"deliveryBlocking",!0);this.name="MissingResolvedRawTemporalFormatError"}}function v(e,o,t){const n=new Set(o),r=Object.keys(e).find(i=>!n.has(i));if(r)throw new Error(`${t} contains unknown property "${r}"`)}function S(e,o="scope"){if(!u.isPlainJsonRecord(e))throw new Error(`${o} must be an object`);v(e,["dashboardId","cardId","attachmentIndex"],o);const t=typeof e.dashboardId=="string"?e.dashboardId.trim():"";if(!t)throw new Error(`${o}.dashboardId is required`);const n=typeof e.cardId=="string"?e.cardId.trim():void 0;if(e.cardId!==void 0&&!n)throw new Error(`${o}.cardId must be a non-empty string`);const r=e.attachmentIndex;if(r!==void 0&&(typeof r!="number"||!Number.isInteger(r)||r<0))throw new Error(`${o}.attachmentIndex must be a non-negative integer`);return{dashboardId:t,...n?{cardId:n}:{},...typeof r=="number"?{attachmentIndex:r}:{}}}function y(e,o,t,n){if(e.kind!==o)return;v(e,["kind",t],n);const r=typeof e[t]=="string"?e[t].trim():"";if(!r)throw new Error(`${n}.${t} is required`);return r}function E(e,o){if(!u.isPlainJsonRecord(e))throw new Error(`${o} must be an object`);const t=y(e,"metric","metricId",o);if(t)return{kind:"metric",metricId:t};const n=y(e,"column","columnKey",o);if(n)return{kind:"column",columnKey:n};const r=y(e,"matrix_measure","measureId",o);if(r)return{kind:"matrix_measure",measureId:r};throw new Error(`${o} is not a valid numeric presentation target`)}const z=["type","inputUnit","outputStyle","largestUnit","smallestUnit","maxUnits","prefix","suffix","negativeStyle"];function L(e){return e==="millisecond"||e==="second"||e==="minute"||e==="hour"||e==="day"}function V(e,o){v(e,z,o);for(const i of["inputUnit","largestUnit","smallestUnit"])if(e[i]!==void 0&&!L(e[i]))throw new Error(`${o}.${i} must be a duration unit`);const t=e.outputStyle;if(t!==void 0&&t!=="compact"&&t!=="digital"&&t!=="long")throw new Error(`${o}.outputStyle must be compact, digital, or long`);const n=e.maxUnits;if(n!==void 0&&(typeof n!="number"||!Number.isInteger(n)||n<0||n>10))throw new Error(`${o}.maxUnits must be an integer from 0 to 10`);for(const i of["prefix","suffix"])if(e[i]!==void 0&&typeof e[i]!="string")throw new Error(`${o}.${i} must be a string`);const r=e.negativeStyle;if(r!==void 0&&r!=="minus"&&r!=="parentheses")throw new Error(`${o}.negativeStyle must be minus or parentheses`);return{type:"duration",...e.inputUnit!==void 0?{inputUnit:e.inputUnit}:{},...t!==void 0?{outputStyle:t}:{},...e.largestUnit!==void 0?{largestUnit:e.largestUnit}:{},...e.smallestUnit!==void 0?{smallestUnit:e.smallestUnit}:{},...n!==void 0?{maxUnits:n}:{},...e.prefix!==void 0?{prefix:e.prefix}:{},...e.suffix!==void 0?{suffix:e.suffix}:{},...r!==void 0?{negativeStyle:r}:{}}}function G(e,o){if(!u.isPlainJsonRecord(e))throw new Error(`${o} must be an object`);if(e.kind==="field"){v(e,["kind","fieldId","role"],o);const r=typeof e.fieldId=="string"?e.fieldId.trim():"";if(!r)throw new Error(`${o}.fieldId is required`);const i=e.role;if(i!==void 0&&i!=="groupby"&&i!=="pivotby")throw new Error(`${o}.role must be groupby or pivotby`);return{kind:"field",fieldId:r,...i?{role:i}:{}}}const t=y(e,"column","columnKey",o);if(t)return{kind:"column",columnKey:t};const n=y(e,"matrix_axis","axisInstanceId",o);if(n)return{kind:"matrix_axis",axisInstanceId:n};throw new Error(`${o} is not a valid temporal bucket presentation target`)}function H(e,o){if(!u.isPlainJsonRecord(e))throw new Error(`${o} must be an object`);const t=y(e,"column","columnKey",o);if(!t)throw new Error(`${o} must identify a column`);return{kind:"column",columnKey:t}}function Y(e){return[e.dashboardId,e.cardId??null,e.attachmentIndex??null]}function h(e){switch(e.kind){case"metric":return[e.kind,e.metricId];case"column":return[e.kind,e.columnKey];case"matrix_measure":return[e.kind,e.measureId];case"field":return[e.kind,e.fieldId,e.role??""];case"matrix_axis":return[e.kind,e.axisInstanceId]}}function g(e,o){return e.dashboardId===o.dashboardId&&e.cardId===o.cardId&&e.attachmentIndex===o.attachmentIndex}function x(e,o){const t=h(e),n=h(o);return t.length===n.length&&t.every((r,i)=>r===n[i])}function F(e){if(!Array.isArray(e))throw new Error("resolvedFormats must be an array");const o=new Set;return e.map((t,n)=>{var m,p;const r=`resolvedFormats.${n}`;if(!u.isPlainJsonRecord(t))throw new Error(`${r} must be an object`);v(t,["scope","target","format"],r);const i=S(t.scope,`${r}.scope`);if(!u.isPlainJsonRecord(t.format))throw new Error(`${r}.format must be an object`);let s;switch(t.format.type){case"temporal_bucket":{const l=u.parseResolvedTemporalBucketFormat(t.format);if(!l.ok)throw new Error(`${r}.format is invalid: ${((m=l.issues[0])==null?void 0:m.message)??"invalid value"}`);s={scope:i,target:G(t.target,`${r}.target`),format:l.value};break}case"raw_temporal":s={scope:i,target:H(t.target,`${r}.target`),format:I.parseResolvedRawTemporalFormat(t.format)};break;case"number":case"currency":case"percent":case"scientific":{const l=I.parseResolvedNumericCanonicalFormat(t.format);if(!l.ok)throw new Error(`${r}.format is invalid: ${((p=l.issues[0])==null?void 0:p.message)??"invalid value"}`);s={scope:i,target:E(t.target,`${r}.target`),format:l.value};break}case"duration":s={scope:i,target:E(t.target,`${r}.target`),format:V(t.format,`${r}.format`)};break;default:throw new Error(`${r}.format.type is unsupported`)}const c=JSON.stringify([...Y(s.scope),...h(s.target)]);if(o.has(c))throw new Error(`${r} duplicates a scoped presentation target`);return o.add(c),s})}function K(e){try{if(!u.isPlainJsonRecord(e))throw new Error("presentation execution snapshot must be an object");if(v(e,["version","reportContext","resolvedFormats"],"presentation execution snapshot"),e.version!==1)throw new Error("presentation execution snapshot version must be 1");const o=O.parseReportRuntimeContext(e.reportContext);if(!o.ok){const t=o.issues[0];throw new Error(`presentation execution snapshot reportContext is invalid: ${t!=null&&t.path&&t.path!=="$"?`${t.path}: `:""}${(t==null?void 0:t.message)??"invalid value"}`)}return{version:1,reportContext:o.value,resolvedFormats:F(e.resolvedFormats)}}catch(o){throw o instanceof b?o:new b(o instanceof Error?o.message:"Snapshot is invalid.")}}function Q(e){return K({version:1,reportContext:e.reportContext,resolvedFormats:[...e.resolvedFormats]})}function W(e){const o=j(e);return U.isNumericCanonicalFormat(o)?o:void 0}function j(e){const o=e.snapshot.resolvedFormats.find(t=>t.format.type!=="temporal_bucket"&&t.format.type!=="raw_temporal"&&g(t.scope,e.scope)&&x(t.target,e.target));return o==null?void 0:o.format}function X(e){const o=e.snapshot.resolvedFormats.find(t=>t.format.type==="raw_temporal"&&g(t.scope,e.scope)&&x(t.target,e.target));return o==null?void 0:o.format}function Z(e){const o=e.snapshot.resolvedFormats.find(t=>t.format.type==="temporal_bucket"&&g(t.scope,e.scope)&&x(t.target,e.target));return o==null?void 0:o.format}function ee(e){var r;const o=new Set,t=new Set;if(e.snapshot.resolvedFormats.forEach((i,s)=>{if(i.scope.attachmentIndex!==void 0)throw new Error(`resolvedFormats.${s}.scope.attachmentIndex is not valid for a card export`);if(i.scope.dashboardId!==e.expectedScope.dashboardId||i.scope.cardId!==e.expectedScope.cardId)throw new Error(`resolvedFormats.${s}.scope must match the executing dashboard/card`);if(i.target.kind==="field"&&i.format.type==="temporal_bucket"){const c=JSON.stringify(h(i.target));if(t.has(c))throw new Error(`resolvedFormats.${s} duplicates export field "${i.target.fieldId}"`);t.add(c);return}if(i.target.kind!=="column")throw new Error(`resolvedFormats.${s}.target must identify an export column or temporal pivot field`);if(o.has(i.target.columnKey))throw new Error(`resolvedFormats.${s} duplicates export column "${i.target.columnKey}"`);o.add(i.target.columnKey)}),!e.useFormattedValues)return;if(!((r=e.visibleColumns)!=null&&r.length))throw new Error("visibleColumns must identify every formatted export column");const n=e.visibleColumns.find(i=>!o.has(i));if(n)throw new Error(`resolvedFormats is missing visible export column "${n}"`)}function w(e){return Array.from(new Set((e??[]).flatMap(o=>typeof o.id=="string"&&o.id?[o.id]:[])))}function P(e){const o=new Map;return e.forEach(t=>{t.id&&o.set(t.id,(o.get(t.id)??0)+1)}),e.flatMap(t=>t.id&&(o.get(t.id)??0)>1?[N.resolveMetricResultAlias(t)]:[])}function te(e){const o=e.metricFields??[],t=w(o);return{expectedRoleFieldIds:{groupby:w(e.groupByFields),metric:t.length>0?t:[B.SEMAPHOR_GENERATED_COUNT_METRIC_ID],pivotby:w(e.pivotByFields),detail:w(e.detailFields)},expectedMetricAliases:P(o)}}class a extends Error{constructor(t,n){super(`invalid_pivot_result_lifecycle: ${t}`);f(this,"code","invalid_pivot_result_lifecycle");f(this,"deliveryBlocking",!0);this.cause=n,this.name="PivotResultLifecycleError"}}function oe(e){if(!Array.isArray(e)||e.some(t=>!t||typeof t!="object"||Array.isArray(t)||typeof t.key!="string"||!t.key||typeof t.name!="string"||typeof t.label!="string"))throw new a("Canonical pivot columns must be an array of keyed, named result descriptors.");const o=e;if(new Set(o.map(t=>t.key)).size!==o.length)throw new a("Canonical pivot column keys must be unique.");for(const t of o){const n=J.validateTemporalBucketResultColumn(t,{metadataRequired:!1});if(!n.ok)throw new a(`Canonical pivot column "${t.key}" has invalid temporal metadata: ${n.error.message}`)}return o}function C(e){if(!e||typeof e!="object"||Array.isArray(e)||e.version!==1||e.source!=="explorer"||!e.byRole||typeof e.byRole!="object"||Array.isArray(e.byRole))throw new a("A loaded canonical pivot result requires its role-scoped column key map.");const o=e,t=new Set(["groupby","metric","pivotby","detail"]);for(const[n,r]of Object.entries(o.byRole)){if(!t.has(n)||!r||typeof r!="object"||Array.isArray(r))throw new a(`Canonical pivot role map contains invalid "${n}" bindings.`);for(const[i,s]of Object.entries(r))if(!i||!s||typeof s!="object"||Array.isArray(s)||s.role!==n||typeof s.rawKey!="string"||!s.rawKey||s.outputKey!==void 0&&(typeof s.outputKey!="string"||!s.outputKey))throw new a(`Canonical pivot role map contains an invalid "${n}:${i}" binding.`)}if(o.byMetricAlias!==void 0){if(!o.byMetricAlias||typeof o.byMetricAlias!="object"||Array.isArray(o.byMetricAlias))throw new a("Canonical pivot metric-alias bindings must be an object.");for(const[n,r]of Object.entries(o.byMetricAlias))if(!n||!r||typeof r!="object"||Array.isArray(r)||r.role!=="metric"||typeof r.rawKey!="string"||!r.rawKey||r.outputKey!==void 0&&(typeof r.outputKey!="string"||!r.outputKey))throw new a(`Canonical pivot metric-alias map contains an invalid "${n}" binding.`)}return o}function re(e){if(e===void 0)return{};if(!e||typeof e!="object"||Array.isArray(e))throw new a("Canonical pivot column metadata must be an object.");for(const[o,t]of Object.entries(e)){if(!o||!t||typeof t!="object"||Array.isArray(t))throw new a(`Canonical pivot column metadata contains an invalid "${o}" classification.`);const{isSubtotal:n,subtotalScope:r}=t;if(n!==void 0&&typeof n!="boolean"||r!==void 0&&r!=="base"&&r!=="pivot-value"&&r!=="grand-total"||n===!0&&r!=="pivot-value"&&r!=="grand-total"||(r==="pivot-value"||r==="grand-total")&&n!==!0||r==="base"&&n===!0)throw new a(`Canonical pivot column metadata contains an incoherent "${o}" subtotal classification.`)}return e}function $(e,o){if(!Array.isArray(e)||e.some(t=>typeof t!="string"||!t)||new Set(e).size!==e.length)throw new a(`Canonical pivot contract ${o} must be an array of unique field identities.`);return e}function ne(e,o){if(!e||typeof e!="object"||Array.isArray(e)||e.version!==1)throw new a("A canonical pivot result requires its versioned result contract.");const t=e,n=t.expectedRoleFieldIds;if(!n||typeof n!="object"||Array.isArray(n))throw new a("Canonical pivot contract role identities must be an object.");const i=Object.fromEntries(["groupby","metric","pivotby","detail"].map(d=>[d,$(n[d],`expectedRoleFieldIds.${d}`)])),s=$(t.expectedMetricAliases,"expectedMetricAliases"),c=t.columnKinds;if(!c||typeof c!="object"||Array.isArray(c))throw new a("Canonical pivot contract column kinds must be an object.");const m=new Set(["row","pivot_metric","value"]),p=o.map(d=>d.key),l=Object.keys(c);if(l.length!==p.length||l.some(d=>!p.includes(d)||!m.has(c[d])))throw new a("Canonical pivot contract must classify every authoritative result column exactly once.");const R=re(t.columnClassifications);if(Object.keys(R).some(d=>!p.includes(d)))throw new a("Canonical pivot contract contains a classification for an unknown result column.");return{version:1,expectedRoleFieldIds:i,expectedMetricAliases:s,columnKinds:c,columnClassifications:R}}function A(e,o){const t=["groupby","metric","pivotby","detail"];for(const i of t){const s=new Set(o.expectedRoleFieldIds[i]??[]),c=Object.keys(e.byRole[i]??{});if(c.length!==s.size||c.some(m=>!s.has(m)))throw new a(`The role-scoped ${i} bindings do not match the authored result fields.`)}const n=new Set(o.expectedMetricAliases),r=Object.keys(e.byMetricAlias??{});if(r.length!==n.size||r.some(i=>!n.has(i)))throw new a("The metric-alias bindings do not match the authored metric instances.")}function ie(e){if(!Array.isArray(e)||e.some(o=>!o||typeof o!="object"||Array.isArray(o)))throw new a("Canonical pivot records must be an array of row objects.");return e}function se(e,o){e.forEach((t,n)=>{o.forEach(r=>{if(!Object.prototype.hasOwnProperty.call(t,r.key)||t[r.key]===void 0)throw new a(`Canonical pivot column "${r.key}" is absent from row ${n}.`)})})}function ae(e,o,t){const n=new Set(o.map(r=>r.key));["groupby","detail"].forEach(r=>{Object.entries(e.byRole[r]??{}).forEach(([i,s])=>{const c=s.outputKey||s.rawKey;if(!n.has(c)||t.columnKinds[c]!=="row")throw new a(`The role-scoped ${r} binding for "${i}" does not name an authoritative result column.`)})})}function _(e,o){o.forEach(t=>{const n=e.columnKinds[t.key];if(n==="pivot_metric"&&t.pivotIdentity===void 0)throw new a(`Physical pivot result column "${t.key}" is missing its identity.`);if(n!=="pivot_metric"&&t.pivotIdentity!==void 0)throw new a(`Canonical pivot result column "${t.key}" carries pivot identity outside the physical pivot projection.`)})}function M(e){const o=ie(e.records),t=oe(e.columns),n=ne(e.pivotResultContract,t),r=n.expectedRoleFieldIds.pivotby??[];if(e.pivotResultState==="loaded_empty"){if(o.length!==0)throw new a("A loaded_empty pivot result cannot carry records.");if(t.some(m=>n.columnKinds[m.key]==="pivot_metric"))throw new a("A loaded_empty pivot result cannot carry physical pivot columns.");_(n,t);const c=C(e.columnKeyMap);return A(c,n),{pivotResultState:"loaded_empty",records:[],columns:t,columnKeyMap:c,pivotResultContract:n}}if(e.pivotResultState!=="loaded_valid")throw new a("A canonical pivot result must declare loaded_empty or loaded_valid.");if(o.length===0)throw new a("A loaded_valid pivot result must carry at least one record.");const i=C(e.columnKeyMap);A(i,n),ae(i,t,n),_(n,t);const s=t.filter(c=>n.columnKinds[c.key]==="pivot_metric");if(r.length>0&&s.length===0)throw new a("A loaded_valid pivot result is missing its physical pivot columns.");try{k.requirePivotResultColumnIdentities(s,{expectedPivotFieldIds:r,columnClassifications:n.columnClassifications})}catch(c){throw c instanceof k.PivotResultIdentityError?new a(c.message,c):c}return se(o,t),{pivotResultState:"loaded_valid",records:o,columns:t,columnKeyMap:i,pivotResultContract:n}}function ce(e){const o=new Set;["groupby","detail"].forEach(i=>{Object.values(e.columnKeyMap.byRole[i]??{}).forEach(s=>{o.add(s.outputKey||s.rawKey)})});const t=new Set(e.physicalPivotColumnKeys),n=new Set(e.columns.map(i=>i.key)),r={version:1,expectedRoleFieldIds:{groupby:Array.from(new Set(e.expectedRoleFieldIds.groupby??[])),metric:Array.from(new Set(e.expectedRoleFieldIds.metric??[])),pivotby:Array.from(new Set(e.expectedRoleFieldIds.pivotby??[])),detail:Array.from(new Set(e.expectedRoleFieldIds.detail??[]))},expectedMetricAliases:[...e.expectedMetricAliases??[]],columnKinds:Object.fromEntries(e.columns.map(i=>[i.key,o.has(i.key)?"row":t.has(i.key)?"pivot_metric":"value"])),columnClassifications:Object.fromEntries(Object.entries(e.columnMetadata??{}).filter(([i])=>n.has(i)))};return M({pivotResultState:e.records.length===0?"loaded_empty":"loaded_valid",pivotResultContract:r,records:e.records,columns:e.columns,columnKeyMap:e.columnKeyMap})}exports.MissingResolvedRawTemporalFormatError=D;exports.PivotResultLifecycleError=a;exports.PresentationExecutionSnapshotError=b;exports.createCanonicalPivotResultTransport=ce;exports.createPresentationExecutionSnapshot=Q;exports.deriveMetricInstanceAliasExpectations=P;exports.derivePivotResultContractExpectations=te;exports.findResolvedMeasureFormat=j;exports.findResolvedNumericFormat=W;exports.findResolvedRawTemporalFormat=X;exports.findResolvedTemporalBucketFormat=Z;exports.parseCanonicalPivotResultTransport=M;exports.parsePresentationExecutionSnapshot=K;exports.parsePresentationScope=S;exports.parseResolvedPresentationEntries=F;exports.validateCardExportPresentationSnapshot=ee;