react-semaphor 0.1.444 → 0.1.445

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 (133) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/analytics-protocol/index.cjs +1 -1
  3. package/dist/analytics-protocol/index.js +123 -107
  4. package/dist/appearance/index.cjs +1 -1
  5. package/dist/brand-studio/index.cjs +2 -2
  6. package/dist/brand-studio/index.js +5 -4
  7. package/dist/briefings/index.cjs +1 -1
  8. package/dist/briefings/index.js +526 -457
  9. package/dist/chunks/analyze-result-contract-BHb7sUUW.cjs +1 -0
  10. package/dist/chunks/analyze-result-contract-DUv3QnMl.js +29 -0
  11. package/dist/chunks/{braces-CbO-aIwH.js → braces-BKimshER.cjs} +1 -1
  12. package/dist/chunks/{code-editor-BpADiIlq.js → code-editor-B4gTfvc5.js} +6800 -6560
  13. package/dist/chunks/code-editor-BYVorgOf.cjs +138 -0
  14. package/dist/chunks/common-types-CQ6SHfLk.cjs +1 -0
  15. package/dist/chunks/{common-types-ClkOI-3O.js → common-types-DFsDdpH7.js} +22 -21
  16. package/dist/chunks/dashboard-CAiwJW3L.cjs +1397 -0
  17. package/dist/chunks/{dashboard-briefing-launcher-Bg_SeBV8.js → dashboard-briefing-launcher-2SLNOaTg.js} +26 -24
  18. package/dist/chunks/{dashboard-briefing-launcher-Do6ZcOj4.js → dashboard-briefing-launcher-CHwjpUYz.cjs} +2 -2
  19. package/dist/chunks/{dashboard-controls-Da9MkPaf.js → dashboard-controls-BfL14aqO.js} +11 -9
  20. package/dist/chunks/{dashboard-controls-CYBi_mes.js → dashboard-controls-BgGTg4yw.cjs} +2 -2
  21. package/dist/chunks/dashboard-date-comparison-definition-DZq0htjG.cjs +1 -0
  22. package/dist/chunks/dashboard-json-BOv8tCa9.cjs +1 -0
  23. package/dist/chunks/{dashboard-json-BtrdGo1U.js → dashboard-json-BZwq3EcS.js} +14 -12
  24. package/dist/chunks/{dashboard-CJNVq8XI.js → dashboard-u61yfU6u.js} +50081 -47351
  25. package/dist/chunks/edit-dashboard-visual-BdVCH0DJ.cjs +182 -0
  26. package/dist/chunks/{edit-dashboard-visual-kE6_3R3j.js → edit-dashboard-visual-njLPYip3.js} +6799 -6652
  27. package/dist/chunks/{editor-action-buttons-DROkx4PS.js → editor-action-buttons-BhLX5Q6m.js} +24 -23
  28. package/dist/chunks/{editor-action-buttons-8_CQa8Hb.js → editor-action-buttons-CBVMFipA.cjs} +1 -1
  29. package/dist/chunks/{index-D7KJindZ.js → format-types-CSv0V7mm.cjs} +1 -1
  30. package/dist/chunks/{index-CnujJ3fa.js → format-types-CZH5w1lo.js} +23 -17
  31. package/dist/chunks/{layout-grid-B08pP7v6.js → layout-grid-3-HWzEwU.cjs} +1 -1
  32. package/dist/chunks/{metric-comparison-CPoDx56y.js → metric-comparison-BJ_Qu1ZF.js} +1 -1
  33. package/dist/chunks/metric-comparison-CUAJ8n4y.cjs +1 -0
  34. package/dist/chunks/{palette-C0yjT5Tv.js → palette-DW_l7Jr0.cjs} +1 -1
  35. package/dist/chunks/pivot-result-identity-B6QCWOSi.js +94 -0
  36. package/dist/chunks/pivot-result-identity-CDLRT-YG.cjs +1 -0
  37. package/dist/chunks/pivot-result-lifecycle-BM3Pl-D1.js +914 -0
  38. package/dist/chunks/pivot-result-lifecycle-DPc0ANwk.cjs +4 -0
  39. package/dist/chunks/presentation-execution-BTV-Q43g.cjs +1 -0
  40. package/dist/chunks/presentation-execution-CGlb7YZ6.js +637 -0
  41. package/dist/chunks/{report-preferences-dialog-Dq7rmN93.js → report-preferences-dialog-D_NJu2wU.js} +7 -6
  42. package/dist/chunks/report-preferences-dialog-r8QzOSFb.cjs +1 -0
  43. package/dist/chunks/report-runtime-context-C8LZFsqV.cjs +1 -0
  44. package/dist/chunks/report-runtime-context-Qzn11HQe.js +387 -0
  45. package/dist/chunks/{save-Xdc4pnys.js → save-4_uMnE6s.cjs} +1 -1
  46. package/dist/chunks/{search-Dcud9ajy.js → search-6ZmeMq55.cjs} +1 -1
  47. package/dist/chunks/temporal-bucket-BnPxGrAi.js +446 -0
  48. package/dist/chunks/temporal-bucket-authoring-BUZMuVca.js +205 -0
  49. package/dist/chunks/temporal-bucket-authoring-CPTwHzvs.cjs +1 -0
  50. package/dist/chunks/temporal-bucket-contract-B2bJ1oe4.js +108 -0
  51. package/dist/chunks/temporal-bucket-contract-ChDBWX8I.cjs +1 -0
  52. package/dist/chunks/temporal-bucket-pMnV-4Nj.cjs +1 -0
  53. package/dist/chunks/{comparison-document-migration-Dj6xZMCb.js → temporal-result-owner-Cb27SSG9.js} +152 -123
  54. package/dist/chunks/temporal-result-owner-f6-i65Fb.cjs +1 -0
  55. package/dist/chunks/token-types-BdQ8kHBm.cjs +1 -0
  56. package/dist/chunks/token-types-DLo91nOf.js +8 -0
  57. package/dist/chunks/{update-policy-DnF_74zC.js → update-policy-BxvYMYz0.cjs} +1 -1
  58. package/dist/chunks/{update-policy-De2NswtM.js → update-policy-eg59mQqv.js} +1 -1
  59. package/dist/chunks/validators-9D4KBqKD.cjs +1 -0
  60. package/dist/chunks/validators-wZ2WlNHc.js +4640 -0
  61. package/dist/dashboard/index.cjs +1 -1
  62. package/dist/dashboard/index.js +2 -2
  63. package/dist/dashboard-authoring/index.cjs +3 -3
  64. package/dist/dashboard-authoring/index.js +136 -126
  65. package/dist/data-app-builder/index.cjs +1 -1
  66. package/dist/data-app-builder/index.js +2 -2
  67. package/dist/data-app-codegen/index.cjs +1 -1
  68. package/dist/data-app-codegen/index.js +2 -2
  69. package/dist/data-app-codegen-node/index.cjs +1 -1
  70. package/dist/data-app-codegen-node/index.js +3 -3
  71. package/dist/data-app-sdk/index.cjs +2 -2
  72. package/dist/data-app-sdk/index.js +34 -35
  73. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  74. package/dist/data-app-sdk-adapters/index.js +5 -5
  75. package/dist/data-app-sdk-validation/index.cjs +1 -1
  76. package/dist/data-app-sdk-validation/index.js +9 -10
  77. package/dist/format-utils/index.cjs +3 -3
  78. package/dist/format-utils/index.js +155 -176
  79. package/dist/index.cjs +1 -1
  80. package/dist/index.js +180 -174
  81. package/dist/report-runtime-context/index.cjs +1 -1
  82. package/dist/report-runtime-context/index.js +7 -392
  83. package/dist/shared/index.cjs +1 -1
  84. package/dist/style.css +1 -1
  85. package/dist/surfboard/index.cjs +1 -1
  86. package/dist/surfboard/index.js +3 -3
  87. package/dist/types/analytics-protocol.d.ts +257 -48
  88. package/dist/types/briefings.d.ts +138 -50
  89. package/dist/types/dashboard-assistant.d.ts +207 -52
  90. package/dist/types/dashboard-authoring.d.ts +182 -50
  91. package/dist/types/dashboard.d.ts +290 -48
  92. package/dist/types/data-app-builder.d.ts +48 -42
  93. package/dist/types/data-app-codegen-node.d.ts +50 -44
  94. package/dist/types/data-app-codegen.d.ts +50 -44
  95. package/dist/types/data-app-sdk-adapters.d.ts +48 -42
  96. package/dist/types/data-app-sdk-validation.d.ts +81 -43
  97. package/dist/types/data-app-sdk.d.ts +83 -45
  98. package/dist/types/format-utils.d.ts +645 -67
  99. package/dist/types/index.cjs +1 -1
  100. package/dist/types/index.js +19 -19
  101. package/dist/types/main.d.ts +298 -94
  102. package/dist/types/report-runtime-context.d.ts +3 -0
  103. package/dist/types/shared.d.ts +116 -41
  104. package/dist/types/surfboard.d.ts +290 -48
  105. package/dist/types/types.d.ts +455 -65
  106. package/package.json +3 -1
  107. package/dist/chunks/analyze-result-contract-BswhsmWT.js +0 -1
  108. package/dist/chunks/analyze-result-contract-CfOBEwaC.js +0 -1998
  109. package/dist/chunks/code-editor-M7HTUhdF.js +0 -138
  110. package/dist/chunks/common-types-C73-Ud1-.js +0 -1
  111. package/dist/chunks/comparison-document-migration-DbU_BTxR.js +0 -1
  112. package/dist/chunks/csv-utils-BZDvO2Fw.js +0 -376
  113. package/dist/chunks/csv-utils-Co0WxHke.js +0 -4
  114. package/dist/chunks/dashboard-DxZuqe8t.js +0 -1402
  115. package/dist/chunks/dashboard-date-comparison-definition-DGZr3m-b.js +0 -1
  116. package/dist/chunks/dashboard-json-ezLyW7AK.js +0 -1
  117. package/dist/chunks/edit-dashboard-visual-DEb9MeSM.js +0 -182
  118. package/dist/chunks/metric-comparison-DVy3fll_.js +0 -1
  119. package/dist/chunks/numeric-presentation-BJs5lSar.js +0 -517
  120. package/dist/chunks/numeric-presentation-Dlb-Dk4c.js +0 -1
  121. package/dist/chunks/report-preferences-dialog-D5sIaFnb.js +0 -1
  122. package/dist/chunks/source-identity-5OPV4gvg.js +0 -92
  123. package/dist/chunks/source-identity-Cbo2LOHQ.js +0 -1
  124. package/dist/chunks/validators-B2vUAqTf.js +0 -1
  125. package/dist/chunks/validators-Bce_J7Vd.js +0 -2448
  126. /package/dist/chunks/{card-config-utils-15sRtebL.js → card-config-utils-15sRtebL.cjs} +0 -0
  127. /package/dist/chunks/{catalog-field-grounding-Bnx-3tE0.js → catalog-field-grounding-Bnx-3tE0.cjs} +0 -0
  128. /package/dist/chunks/{dashboard-input-contract-DV3cshjz.js → dashboard-input-contract-DV3cshjz.cjs} +0 -0
  129. /package/dist/chunks/{index-Dpm_VET4.js → index-Dpm_VET4.cjs} +0 -0
  130. /package/dist/chunks/{index-jSrCwPQz.js → index-jSrCwPQz.cjs} +0 -0
  131. /package/dist/chunks/{normalize-dashboard-for-dirty-check-BXRUMVb2.js → normalize-dashboard-for-dirty-check-BXRUMVb2.cjs} +0 -0
  132. /package/dist/chunks/{operators-DrTQsJXv.js → operators-DrTQsJXv.cjs} +0 -0
  133. /package/dist/chunks/{use-debounced-dirty-check-XHSwAefL.js → use-debounced-dirty-check-XHSwAefL.cjs} +0 -0
@@ -1,36 +1,41 @@
1
- import { f as b, a as V } from "../chunks/numeric-presentation-BJs5lSar.js";
2
- import { b as Q, c as U, d as X, e as Y, g as Z, p as _, h as F, i as g, j as ee, r as re, k as oe, v as te } from "../chunks/numeric-presentation-BJs5lSar.js";
3
- import { f as $, a as C, b as m, e as h } from "../chunks/csv-utils-BZDvO2Fw.js";
4
- import { c as ne, d as le, g as ue, h as ie, i as ce, o as ae, p as me, r as fe } from "../chunks/csv-utils-BZDvO2Fw.js";
5
- function v(r, e, t, o) {
1
+ import { i as O } from "../chunks/format-types-CZH5w1lo.js";
2
+ import { f as p, a as h, b as y } from "../chunks/presentation-execution-CGlb7YZ6.js";
3
+ import { c as _, d as D, e as H, g as G, h as K, i as L, p as U, j as W, k as Q, l as J, m as X, r as Y, n as Z, v as F, o as ee } from "../chunks/presentation-execution-CGlb7YZ6.js";
4
+ import { f as E, a as S, b as f, e as T } from "../chunks/pivot-result-lifecycle-BM3Pl-D1.js";
5
+ import { A as oe, P as te, c as se, d as ne, g as le, h as ie, i as ae, j as ue, k as ce, l as me, m as fe, n as be, o as pe, p as Te, q as we, r as he, s as ye, t as Ee, u as Se, v as Ce, w as ve, x as Pe } from "../chunks/pivot-result-lifecycle-BM3Pl-D1.js";
6
+ import { T as Ae, a as ge, f as $e, i as de, p as Ve, b as ke, r as Ne, c as xe, t as Be, v as je } from "../chunks/temporal-bucket-BnPxGrAi.js";
7
+ import { m as Ie } from "../chunks/validators-wZ2WlNHc.js";
8
+ import { a as Oe } from "../chunks/metric-comparison-BJ_Qu1ZF.js";
9
+ import { P as _e, i as De, b as He, c as Ge, d as Ke, r as Le, a as Ue } from "../chunks/pivot-result-identity-B6QCWOSi.js";
10
+ function C(r, e, t, o) {
6
11
  const s = r instanceof Date ? r.toISOString() : String(r), n = (o == null ? void 0 : o.browserTimezone) || t, l = (o == null ? void 0 : o.isSqlCard) ?? !1;
7
12
  if (e != null && e.useRelativeTime)
8
- return $(
13
+ return E(
9
14
  s,
10
15
  (e == null ? void 0 : e.sourceTimezone) || "auto"
11
16
  );
12
- const u = e != null && e.useCustomFormat && (e != null && e.customFormat) ? e.customFormat : (e == null ? void 0 : e.format) || "MM/dd/yyyy";
13
- return C(
17
+ const i = e != null && e.useCustomFormat && (e != null && e.customFormat) ? e.customFormat : (e == null ? void 0 : e.format) || "MM/dd/yyyy";
18
+ return S(
14
19
  s,
15
- u,
20
+ i,
16
21
  e != null && e.timezone && (e == null ? void 0 : e.timezone) !== "auto" ? e.timezone : l ? n : t,
17
22
  (e == null ? void 0 : e.sourceTimezone) || "auto"
18
23
  );
19
24
  }
20
- function N(r, e, t) {
25
+ function v(r, e, t) {
21
26
  if (r == null)
22
27
  return "";
23
28
  if (!t.useFormattedValues || !e)
24
29
  return String(r);
25
30
  switch (e.type) {
26
31
  case "number":
27
- return typeof r == "number" ? b(
32
+ return typeof r == "number" ? p(
28
33
  r,
29
34
  e.numberFormat,
30
35
  t.locale
31
36
  ) : String(r);
32
37
  case "date":
33
- return v(
38
+ return C(
34
39
  r,
35
40
  e.dateFormat,
36
41
  t.timezone,
@@ -49,100 +54,39 @@ function N(r, e, t) {
49
54
  return String(r);
50
55
  }
51
56
  }
52
- function R(r, e) {
57
+ function P(r, e) {
53
58
  return e.visibleColumns.map((t) => {
54
59
  const o = r[t], s = e.columnSettings[t];
55
- return N(o, s, {
60
+ return v(o, s, {
56
61
  useFormattedValues: e.useFormattedValues,
57
62
  timezone: e.timezone,
58
63
  locale: e.locale
59
64
  });
60
65
  });
61
66
  }
62
- function j(r, e) {
67
+ function R(r, e) {
63
68
  const t = [];
64
- e.includeHeaders && t.push(m(e.visibleColumns, e.delimiter));
69
+ e.includeHeaders && t.push(f(e.visibleColumns, e.delimiter));
65
70
  for (const o of r) {
66
- const s = R(o, e);
71
+ const s = P(o, e);
67
72
  t.push(
68
- s.map((n) => h(n, e.delimiter)).join(e.delimiter)
73
+ s.map((n) => T(n, e.delimiter)).join(e.delimiter)
69
74
  );
70
75
  }
71
76
  return t;
72
77
  }
73
- function q(r, e, t = `
78
+ function N(r, e, t = `
74
79
  `) {
75
- return j(r, e).join(t);
76
- }
77
- function z(r, e, t) {
78
- return r == null ? "" : t.useFormattedValues ? typeof r == "number" && (e == null ? void 0 : e.type) === "number" ? b(
79
- r,
80
- e.numberFormat,
81
- t.locale
82
- ) : typeof r == "number" ? r.toLocaleString(t.locale) : String(r) : String(r);
83
- }
84
- function B(r, e, t) {
85
- var s, n;
86
- const o = [];
87
- if (r.isSubtotal && !r.isGrandTotal) {
88
- const l = e.groupByColumns.findIndex(
89
- (u) => u.alias === r.subtotalLevel
90
- );
91
- e.groupByColumns.forEach((u, i) => {
92
- var c, a, p, y;
93
- if (i === l) {
94
- const T = (a = (c = e.rowAggregates) == null ? void 0 : c.find(
95
- (d) => d.groupLevel === r.subtotalLevel
96
- )) == null ? void 0 : a.label, E = (y = (p = r.subtotalContext) == null ? void 0 : p.groupByValues) == null ? void 0 : y[u.alias];
97
- o.push(T ?? `Subtotal (${E ?? "Total"})`);
98
- } else i < l ? o.push(String(r[u.alias] ?? "")) : o.push("");
99
- });
100
- } else if (r.isGrandTotal) {
101
- const l = (n = (s = e.rowAggregates) == null ? void 0 : s.find(
102
- (u) => u.groupLevel === "ALL"
103
- )) == null ? void 0 : n.label;
104
- o.push(l || "Grand Total"), e.groupByColumns.slice(1).forEach(() => o.push(""));
105
- } else
106
- e.groupByColumns.forEach((l) => {
107
- o.push(String(r[l.alias] ?? ""));
108
- });
109
- return e.pivotSchema.filter((l) => l.isMetricColumn).forEach((l) => {
110
- const u = r[l.alias], i = t.columnSettings[l.alias];
111
- o.push(z(u, i, t));
112
- }), o;
113
- }
114
- function I(r) {
115
- const e = r.groupByColumns.map(
116
- (o) => o.label || o.name
117
- ), t = r.pivotSchema.filter((o) => o.isMetricColumn).map((o) => o.displayLabel || o.metricLabel || o.metricName || o.alias);
118
- return [...e, ...t];
80
+ return R(r, e).join(t);
119
81
  }
120
- function M(r, e, t) {
121
- const o = [];
122
- if (t.includeHeaders) {
123
- const s = I(e);
124
- o.push(m(s, t.delimiter));
125
- }
126
- for (const s of r) {
127
- const n = B(
128
- s,
129
- e,
130
- t
131
- );
132
- o.push(
133
- n.map((l) => h(l, t.delimiter)).join(t.delimiter)
134
- );
135
- }
136
- return o;
137
- }
138
- function S(r, e, t) {
82
+ function w(r, e, t) {
139
83
  for (const o of r) {
140
84
  if (o.level < t) {
141
85
  e[o.level].push(o.name);
142
86
  for (let s = 1; s < o.colspan; s++)
143
87
  e[o.level].push("");
144
88
  }
145
- o.children ? S(o.children, e, t) : o.columnKey && e[t].push(o.name);
89
+ o.children ? w(o.children, e, t) : o.columnKey && e[t].push(o.name);
146
90
  }
147
91
  }
148
92
  function A(r) {
@@ -154,103 +98,103 @@ function A(r) {
154
98
  o[s].push(...Array(t).fill(""));
155
99
  if (o[e].push(
156
100
  ...r.groupByColumns.map((s) => s.label || s.name)
157
- ), S(r.columnHeadersTree, o, e), r.showRowTotals) {
101
+ ), w(r.columnHeadersTree, o, e), r.showRowTotals) {
158
102
  for (let s = 0; s < e; s++)
159
103
  o[s].push("");
160
104
  o[e].push("Total");
161
105
  }
162
106
  return o;
163
107
  }
164
- function L(r, e, t) {
108
+ function g(r, e, t) {
165
109
  if (r == null)
166
110
  return "";
167
111
  if (!t.useFormattedValues)
168
112
  return String(r);
169
113
  const o = t.columnSettings[e];
170
- return typeof r == "number" && (o == null ? void 0 : o.type) === "number" ? b(
114
+ return typeof r == "number" && (o == null ? void 0 : o.type) === "number" ? p(
171
115
  r,
172
116
  o.numberFormat,
173
117
  t.locale
174
118
  ) : typeof r == "number" ? r.toLocaleString(t.locale) : String(r);
175
119
  }
176
- function P(r, e, t) {
120
+ function $(r, e, t) {
177
121
  const o = [];
178
122
  r.fieldValues.forEach((n, l) => {
179
123
  r.isSubtotal && l === 0 ? o.push(`${n} Total`) : r.isSubtotal ? o.push("") : o.push(String(n ?? ""));
180
124
  });
181
125
  let s = 0;
182
126
  return e.columnHeaders.forEach((n) => {
183
- var i;
184
- const l = (i = r.cells[n]) == null ? void 0 : i.value, u = L(l, n, t);
185
- o.push(u), e.showRowTotals && typeof l == "number" && (s += l);
127
+ var a;
128
+ const l = (a = r.cells[n]) == null ? void 0 : a.value, i = g(l, n, t);
129
+ o.push(i), e.showRowTotals && typeof l == "number" && (s += l);
186
130
  }), e.showRowTotals && o.push(s.toLocaleString(t.locale)), o;
187
131
  }
188
- function k(r, e, t) {
132
+ function x(r, e, t) {
189
133
  const o = [];
190
134
  if (t.includeHeaders) {
191
135
  const s = A(e);
192
136
  for (const n of s)
193
- o.push(m(n, t.delimiter));
137
+ o.push(f(n, t.delimiter));
194
138
  }
195
139
  for (const s of r) {
196
- const n = P(
140
+ const n = $(
197
141
  s,
198
142
  e,
199
143
  t
200
144
  );
201
145
  o.push(
202
- n.map((l) => h(l, t.delimiter)).join(t.delimiter)
146
+ n.map((l) => T(l, t.delimiter)).join(t.delimiter)
203
147
  );
204
148
  }
205
149
  return o;
206
150
  }
207
- function f(r) {
151
+ function m(r) {
208
152
  if (r === null || typeof r != "object" || Array.isArray(r))
209
153
  return !1;
210
154
  const e = Object.getPrototypeOf(r);
211
155
  return e === null || e === Object.prototype;
212
156
  }
213
- function w(r, e, t) {
157
+ function b(r, e, t) {
214
158
  const o = new Set(e), s = Object.keys(r).find((n) => !o.has(n));
215
159
  if (s)
216
160
  throw new Error(`${t} contains unknown property "${s}"`);
217
161
  }
218
- function D(r, e = "tableTotalsRequest") {
219
- if (!f(r))
162
+ function B(r, e = "tableTotalsRequest") {
163
+ if (!m(r))
220
164
  throw new Error(`${e} must be an object`);
221
- if (w(r, ["source", "columns"], e), r.source !== "documentFlatTable")
165
+ if (b(r, ["source", "columns"], e), r.source !== "documentFlatTable")
222
166
  throw new Error(`${e}.source must be documentFlatTable`);
223
167
  if (!Array.isArray(r.columns) || r.columns.length === 0)
224
168
  throw new Error(`${e}.columns must be a non-empty array`);
225
169
  const t = /* @__PURE__ */ new Set();
226
170
  let o = 0;
227
171
  const s = r.columns.map((n, l) => {
228
- const u = `${e}.columns.${l}`;
229
- if (!f(n))
230
- throw new Error(`${u} must be an object`);
231
- w(n, ["fieldId", "role", "behavior", "label"], u);
232
- const i = typeof n.fieldId == "string" ? n.fieldId.trim() : "";
233
- if (!i)
234
- throw new Error(`${u}.fieldId must be a non-empty string`);
235
- if (t.has(i))
236
- throw new Error(`${e}.columns duplicates fieldId "${i}"`);
237
- if (t.add(i), n.role !== "detail" && n.role !== "groupby" && n.role !== "metric")
238
- throw new Error(`${u}.role is invalid`);
239
- const c = n.role;
172
+ const i = `${e}.columns.${l}`;
173
+ if (!m(n))
174
+ throw new Error(`${i} must be an object`);
175
+ b(n, ["fieldId", "role", "behavior", "label"], i);
176
+ const a = typeof n.fieldId == "string" ? n.fieldId.trim() : "";
177
+ if (!a)
178
+ throw new Error(`${i}.fieldId must be a non-empty string`);
179
+ if (t.has(a))
180
+ throw new Error(`${e}.columns duplicates fieldId "${a}"`);
181
+ if (t.add(a), n.role !== "detail" && n.role !== "groupby" && n.role !== "metric")
182
+ throw new Error(`${i}.role is invalid`);
183
+ const u = n.role;
240
184
  if (n.behavior !== "sum" && n.behavior !== "avg" && n.behavior !== "count" && n.behavior !== "label")
241
- throw new Error(`${u}.behavior is invalid`);
242
- const a = n.behavior;
243
- if (a === "label") {
244
- if (o += 1, c === "metric")
245
- throw new Error(`${u}.behavior label requires a non-metric role`);
246
- } else if (c !== "metric")
247
- throw new Error(`${u}.${a} requires metric role`);
185
+ throw new Error(`${i}.behavior is invalid`);
186
+ const c = n.behavior;
187
+ if (c === "label") {
188
+ if (o += 1, u === "metric")
189
+ throw new Error(`${i}.behavior label requires a non-metric role`);
190
+ } else if (u !== "metric")
191
+ throw new Error(`${i}.${c} requires metric role`);
248
192
  if (n.label !== void 0 && typeof n.label != "string")
249
- throw new Error(`${u}.label must be a string`);
193
+ throw new Error(`${i}.label must be a string`);
250
194
  return {
251
- fieldId: i,
252
- role: c,
253
- behavior: a,
195
+ fieldId: a,
196
+ role: u,
197
+ behavior: c,
254
198
  ...n.label !== void 0 ? { label: n.label } : {}
255
199
  };
256
200
  });
@@ -258,8 +202,8 @@ function D(r, e = "tableTotalsRequest") {
258
202
  throw new Error(`${e}.columns may contain at most one label`);
259
203
  return { source: "documentFlatTable", columns: s };
260
204
  }
261
- function G(r, e = "tableTotalsByColumnId") {
262
- if (!f(r))
205
+ function j(r, e = "tableTotalsByColumnId") {
206
+ if (!m(r))
263
207
  throw new Error(`${e} must be an object`);
264
208
  const t = {};
265
209
  for (const [o, s] of Object.entries(r)) {
@@ -273,7 +217,7 @@ function G(r, e = "tableTotalsByColumnId") {
273
217
  throw new Error(`${e} must not be empty`);
274
218
  return t;
275
219
  }
276
- function x(r) {
220
+ function d(r) {
277
221
  if (typeof r == "number")
278
222
  return Number.isFinite(r) ? r : null;
279
223
  if (!r.trim())
@@ -281,64 +225,99 @@ function x(r) {
281
225
  const e = Number(r);
282
226
  return Number.isFinite(e) ? e : null;
283
227
  }
284
- function W(r) {
285
- const e = new Map(
286
- r.resolvedNumericFormats.flatMap(
287
- (o) => o.target.kind === "column" ? [[o.target.columnKey, o.format]] : []
288
- )
289
- ), t = r.visibleColumns.map((o) => {
290
- const n = Object.prototype.hasOwnProperty.call(
228
+ function z(r) {
229
+ const e = r.visibleColumns.map((t) => {
230
+ const s = Object.prototype.hasOwnProperty.call(
291
231
  r.totalsByColumnId,
292
- o
293
- ) ? r.totalsByColumnId[o] : o === r.labelColumnKey ? "Total" : null;
294
- if (n === null)
232
+ t
233
+ ) ? r.totalsByColumnId[t] : t === r.labelColumnKey ? "Total" : null;
234
+ if (s === null)
295
235
  return "";
296
236
  if (!r.useFormattedValues)
297
- return String(n);
298
- const l = e.get(o), u = l ? x(n) : null;
299
- return l && u !== null ? V(u, l) : String(n);
237
+ return String(s);
238
+ const n = h({
239
+ snapshot: r.snapshot,
240
+ scope: r.scope,
241
+ target: { kind: "column", columnKey: t }
242
+ }), l = n ? d(s) : null;
243
+ return n && l !== null ? y(l, n) : String(s);
300
244
  });
301
- return `${m(t, r.delimiter)}
245
+ return `${f(e, r.delimiter)}
302
246
  `;
303
247
  }
304
248
  export {
249
+ oe as AGGREGATE_TOTAL_MEMBER_MARKER,
250
+ te as PivotHeaderPresentationError,
251
+ _e as PivotResultIdentityError,
252
+ se as PivotResultLifecycleError,
253
+ Ie as SEMAPHOR_GENERATED_COUNT_METRIC_ID,
254
+ Ae as TEMPORAL_BUCKET_PATTERN_TOKENS,
255
+ ge as TemporalBucketContractError,
305
256
  ne as arrayToCSV,
306
- m as arrayToCSVRow,
307
- W as buildFlatTableExportTotalsFooter,
308
- h as escapeCSVValue,
309
- B as formatAggregateRow,
310
- M as formatAggregateTableForCSV,
311
- N as formatCellValue,
312
- Q as formatCurrency,
313
- C as formatDate,
314
- le as formatDuration,
315
- ue as formatMetricComparison,
316
- U as formatNumber,
317
- X as formatNumberCustom,
318
- b as formatNumberWithColumnSettings,
319
- V as formatNumericCanonical,
320
- Y as formatPercent,
321
- P as formatPivotDataRow,
322
- k as formatPivotTableForCSV,
323
- $ as formatRelativeTime,
324
- R as formatRowForExport,
325
- Z as formatScientific,
326
- j as formatTableForCSV,
327
- I as generateAggregateHeaders,
257
+ f as arrayToCSVRow,
258
+ z as buildFlatTableExportTotalsFooter,
259
+ le as createCanonicalPivotResultTransport,
260
+ ie as derivePivotResultContractExpectations,
261
+ T as escapeCSVValue,
262
+ h as findResolvedNumericFormat,
263
+ _ as findResolvedTemporalBucketFormat,
264
+ ae as formatAggregateGrandTotalLabel,
265
+ ue as formatAggregateGroupCell,
266
+ ce as formatAggregateGroupRow,
267
+ me as formatAggregateSubtotalLabel,
268
+ v as formatCellValue,
269
+ D as formatCurrency,
270
+ S as formatDate,
271
+ fe as formatDuration,
272
+ be as formatMetricComparison,
273
+ H as formatNumber,
274
+ G as formatNumberCustom,
275
+ p as formatNumberWithColumnSettings,
276
+ y as formatNumericCanonical,
277
+ K as formatPercent,
278
+ $ as formatPivotDataRow,
279
+ x as formatPivotTableForCSV,
280
+ E as formatRelativeTime,
281
+ P as formatRowForExport,
282
+ L as formatScientific,
283
+ R as formatTableForCSV,
284
+ $e as formatTemporalBucket,
328
285
  A as generatePivotHeaders,
329
- q as generateTableCSV,
330
- ie as getTimezoneAbbreviation,
331
- ce as getTimezoneName,
332
- ae as objectsToCSV,
333
- G as parseFlatTableExportTotalsByColumnId,
334
- D as parseFlatTableExportTotalsRequest,
335
- _ as parseNumericCanonicalFormat,
336
- F as parseNumericPresentationExecutionSnapshot,
337
- g as parseNumericPresentationSnapshotEntries,
338
- ee as parseResolvedNumericCanonicalFormat,
339
- me as parseWithSourceTimezone,
340
- re as resolveCurrencyFractionDigits,
341
- oe as resolveNumericPresentation,
342
- fe as resolveTimezone,
343
- te as validateCardExportNumericPresentationSnapshot
286
+ N as generateTableCSV,
287
+ pe as getTimezoneAbbreviation,
288
+ Te as getTimezoneName,
289
+ we as isAggregateTotalMemberMarker,
290
+ O as isNumericCanonicalFormat,
291
+ De as isPivotEmptyTupleAllowed,
292
+ He as isPivotSubtotalPrefix,
293
+ de as isTemporalBucketPreset,
294
+ he as objectsToCSV,
295
+ ye as parseCanonicalPivotResultTransport,
296
+ j as parseFlatTableExportTotalsByColumnId,
297
+ B as parseFlatTableExportTotalsRequest,
298
+ U as parseNumericCanonicalFormat,
299
+ W as parsePresentationExecutionSnapshot,
300
+ Q as parsePresentationScope,
301
+ J as parseResolvedNumericCanonicalFormat,
302
+ X as parseResolvedPresentationEntries,
303
+ Ve as parseResolvedTemporalBucketFormat,
304
+ ke as parseTemporalBucketValue,
305
+ Ee as parseWithSourceTimezone,
306
+ Se as presentAggregateGroupRow,
307
+ Ce as presentPivotHeader,
308
+ Ge as requirePivotHeaderMembers,
309
+ Ke as requirePivotResultColumnIdentities,
310
+ ve as resolveAggregateTablePresentationContext,
311
+ Ne as resolveApplicableTemporalBucketFormat,
312
+ Y as resolveCurrencyFractionDigits,
313
+ Oe as resolveMetricResultAlias,
314
+ Z as resolveNumericPresentation,
315
+ Le as resolveQueryColumnKeyMapEntry,
316
+ xe as resolveTemporalBucketPresentation,
317
+ Pe as resolveTimezone,
318
+ Ue as resolveUniqueQueryColumnKeyMapEntry,
319
+ Be as tokenizeTemporalBucketPattern,
320
+ F as validateCardExportNumericPresentationSnapshot,
321
+ ee as validateCardExportPresentationSnapshot,
322
+ je as validateTemporalBucketFormatApplicability
344
323
  };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/dashboard-DxZuqe8t.js"),d=require("./chunks/common-types-C73-Ud1-.js"),v=require("./chunks/report-preferences-dialog-D5sIaFnb.js"),i=require("react/jsx-runtime"),r=require("./chunks/code-editor-M7HTUhdF.js"),h=require("react"),P=require("./types/index.cjs"),l=require("./chunks/dashboard-briefing-launcher-Do6ZcOj4.js"),N=require("./chunks/use-debounced-dirty-check-XHSwAefL.js");require("./chunks/analyze-result-contract-BswhsmWT.js");require("./value-format-preferences/index.cjs");const R=require("./report-runtime-context/index.cjs");require("react-dom");require("./chunks/index-Dpm_VET4.js");const B=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.js"),_=require("./chunks/index-jSrCwPQz.js");function w(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const u=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(t,o,u.get?u:{enumerable:!0,get:()=>a[o]})}}return t.default=a,Object.freeze(t)}const C=w(h);function j(a){const{displayPreferences:t,cardId:o,...u}=a,n={...u,id:a.dashboardId};return i.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:i.jsxs(e.SemaphorContextProvider,{dashboardProps:n,children:[i.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:a.cardId}),i.jsx(e.UXProvider,{appearance:a.appearance,children:i.jsx(e.DisplayPreferencesProvider,{displayPreferences:t,children:i.jsx(e.Container,{type:"visual",cardId:o,...n,children:i.jsx(L,{cardId:o})})})})]})})}function L({cardId:a}){const t=r.useDashboardStore(n=>{var c;return(c=n.dashboard)==null?void 0:c.sheets}),{card:o,frame:u}=h.useMemo(()=>{const n=t==null?void 0:t.flatMap(s=>s.frames),c=n==null?void 0:n.flatMap(s=>s==null?void 0:s.cards),D=c==null?void 0:c.find(s=>(s==null?void 0:s.id)===a),E=n==null?void 0:n.find(s=>{var m;return(m=s==null?void 0:s.cards)==null?void 0:m.find(g=>(g==null?void 0:g.id)===a)});return{card:D,frame:E}},[t,a]);return!o||!u?i.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${a}`}):i.jsx("main",{className:"flex h-full grow flex-col",children:i.jsx(e.ErrorBoundary,{FallbackComponent:({error:n,resetErrorBoundary:c})=>i.jsx(e.FallbackVisual,{error:n,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:i.jsx(e.DashboardCard,{card:o,frame:u})})})}function M(a,t,o,u){h.useEffect(()=>{a&&!o&&t&&u(e.cloneDeep(t))},[a,o,t,u])}function I({name:a,items:t,value:o,onChange:u,isLoading:n,isError:c,refetch:D,className:E,icon:s,showNone:m=!1}){const g=C.useRef(null),[b,T]=C.useState(!1),[y,S]=C.useState("100%"),x=m?[...t||[],{id:"none",name:"None"}]:t;C.useLayoutEffect(()=>{g.current&&S(g.current.offsetWidth)},[]);function A(){var f;return n?"Loading...":c?"Error":o?(f=t==null?void 0:t.find(p=>p.id===o))==null?void 0:f.name:`Select ${a}`}function F(f,p){u(p),T(!1)}return i.jsxs(r.Popover,{open:b,onOpenChange:T,children:[i.jsx(r.PopoverTrigger,{asChild:!0,children:i.jsxs(r.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":b,className:r.cn("flex h-9 w-full justify-between",E),children:[i.jsxs("div",{className:"flex items-center gap-2",children:[s&&i.jsx("div",{className:"mr-2",children:s}),i.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:A()})]}),i.jsx(_.ChevronDown,{className:"size-4 opacity-50"})]})}),i.jsx(r.PopoverContent,{className:"w-full p-0",style:{minWidth:y},children:i.jsxs(e.Command,{children:[i.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[i.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),i.jsx(e.IconButton,{className:"h-7",onClick:D,children:i.jsx(e.RefreshCw,{className:r.cn("size-3.5 opacity-50",n&&"animate-spin")})})]}),i.jsxs(e.CommandList,{children:[i.jsxs(e.CommandEmpty,{children:["No ",a==null?void 0:a.toLowerCase()," found."]}),i.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>i.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:p=>F(p,f.id),children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(r.Check,{className:r.cn("size-4",o===f.id?"opacity-100":"opacity-0")}),i.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function U(a,t){h.useEffect(()=>(a&&t&&(window.__SEMAPHOR_PRINT_STATE__={...t}),()=>{a&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[a,t])}exports.BriefingAuthor=e.BriefingAuthor;exports.BriefingAuthorDialog=e.BriefingAuthorDialog;exports.BriefingUiCapabilitiesBoundary=e.BriefingUiCapabilitiesBoundary;exports.BriefingUiCapabilitiesProvider=e.BriefingUiCapabilitiesProvider;exports.BriefingsApiError=e.BriefingsApiError;exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.ExportError=e.ExportError;exports.MatrixTableVisual=e.MatrixTableVisual;exports.ResourceType=e.ResourceType;exports.SemaphorContextProvider=e.SemaphorContextProvider;exports.SemaphorDataProvider=e.SemaphorQueryClient;exports.SemaphorQueryClient=e.SemaphorQueryClient;exports.ShareDialog=e.ShareDialog;exports.SummaryCard=e.SummaryCard;exports.Surfboard=e.DashboardPlus;exports.applyBriefingFormPatch=e.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=e.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=e.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=e.briefingToFormDraft;exports.cancelBriefingPreviewRun=e.cancelBriefingPreviewRun;exports.cancelBriefingRun=e.cancelBriefingRun;exports.cancelExport=e.cancelExport;exports.cloneDeep=e.cloneDeep;exports.createBriefing=e.createBriefing;exports.createBriefingFormDraft=e.createBriefingFormDraft;exports.createExport=e.createExport;exports.deleteBriefing=e.deleteBriefing;exports.deleteBriefingRun=e.deleteBriefingRun;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getBriefing=e.getBriefing;exports.getBriefingArtifact=e.getBriefingArtifact;exports.getBriefingEvidence=e.getBriefingEvidence;exports.getBriefingPreviewRun=e.getBriefingPreviewRun;exports.getBriefingRun=e.getBriefingRun;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.listBriefingRuns=e.listBriefingRuns;exports.listBriefingTenantSummaries=e.listBriefingTenantSummaries;exports.listBriefings=e.listBriefings;exports.pauseBriefing=e.pauseBriefing;exports.polishBriefingText=e.polishBriefingText;exports.previewBriefingPlan=e.previewBriefingPlan;exports.resumeBriefing=e.resumeBriefing;exports.runBriefingNow=e.runBriefingNow;exports.runBriefingPreview=e.runBriefingPreview;exports.updateBriefing=e.updateBriefing;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useBriefingUiCapabilities=e.useBriefingUiCapabilities;exports.useCard=e.useCard;exports.useCardSummary=e.useCardSummary;exports.useDashboardById=e.useDashboardById;exports.useDashboardQuery=e.useDashboardQuery;exports.useDashboardSummary=e.useDashboardSummary;exports.useDataColumns=e.useDataColumns;exports.useDateFilterHook=e.useDateFilterHook;exports.useEditorAside=e.useEditorAside;exports.useExportActions=e.useExportActions;exports.useExportStore=e.useExportStore;exports.useInProgressExportsCount=e.useInProgressExportsCount;exports.useManagementStore=e.useManagementStore;exports.useResourceManagement=e.useResourceManagement;exports.useTextFilterHook=e.useTextFilterHook;exports.validateBriefingFormDraft=e.validateBriefingFormDraft;exports.CALCULATED_FIELD_ENTITY_MARKER=d.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=d.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=d.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=d.EMPTY_SELECTION;exports.PivotMarkerEnum=d.PivotMarkerEnum;exports.getFieldRuntimeColumnName=d.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=d.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=d.hasCalculatedFormulaInputs;exports.isCalculatedDimension=d.isCalculatedDimension;exports.isCalculatedField=d.isCalculatedField;exports.isCalculatedMetric=d.isCalculatedMetric;exports.ReportPreferencesDialog=v.ReportPreferencesDialog;exports.createEmptyKpiConfig=r.createEmptyKpiConfig;exports.createSqlGenConfig=r.createSqlGenConfig;exports.emitDashboardLoad=r.emitDashboardLoad;exports.emitDashboardUnload=r.emitDashboardUnload;exports.fmt=r.fmt;exports.getColumnDataType=r.getColumnDataType;exports.getFilterValueType=r.getFilterValueType;exports.getFormattedTableNameForQuery=r.getFormattedTableNameForQuery;exports.getQualifiedTableName=r.getQualifiedTableName;exports.getSql=r.getSql;exports.invalidateToken=r.invalidateToken;exports.isBooleanDataType=r.isBooleanDataType;exports.isColumnInSqlGen=r.isColumnInSqlGen;exports.isDateDataType=r.isDateDataType;exports.isNumberDataType=r.isNumberDataType;exports.isTextDataType=r.isTextDataType;exports.resolveDataType=r.resolveDataType;exports.resolveDatamodelName=r.resolveDatamodelName;exports.useCurrentActiveCard=r.useCurrentActiveCard;exports.useCurrentCardConfig=r.useCurrentCardConfig;exports.useCurrentSheetActiveCards=r.useCurrentSheetActiveCards;exports.useDashboardActions=r.useDashboardActions;exports.useDashboardStore=r.useDashboardStore;exports.useEditorActions=r.useEditorActions;exports.useEditorStore=r.useEditorStore;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=P.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.AdvancedModeToggle=l.AdvancedModeToggle;exports.DashboardBriefingLauncher=l.DashboardBriefingLauncher;exports.DashboardControlsSettings=l.DashboardControlsSettings;exports.DashboardFilterControlsButton=l.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=l.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=l.DocumentControlsSettings;exports.ExportNotificationItem=l.ExportNotificationItem;exports.ExportNotificationList=l.ExportNotificationList;exports.NotificationBell=l.NotificationBell;exports.UnsavedChangesAlert=l.UnsavedChangesAlert;exports.VisualEditingControls=l.VisualEditingControls;exports.VisualsLibraryDialog=l.VisualsLibraryDialog;exports.WatchDashboardButton=l.WatchDashboardButton;exports.useExportPolling=l.useExportPolling;exports.useExportRecovery=l.useExportRecovery;exports.useDebouncedDirtyCheck=N.useDebouncedDirtyCheck;exports.DEFAULT_CALENDAR_CONTEXT=R.DEFAULT_CALENDAR_CONTEXT;exports.normalizeDashboardForDirtyCheck=B.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=B.serializeDashboardForDirtyCheck;exports.Combobox=I;exports.Visual=j;exports.useExposePrintState=U;exports.usePristineSnapshotInitializer=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/dashboard-CAiwJW3L.cjs"),d=require("./chunks/common-types-CQ6SHfLk.cjs"),P=require("./chunks/report-preferences-dialog-r8QzOSFb.cjs"),i=require("react/jsx-runtime"),r=require("./chunks/code-editor-BYVorgOf.cjs"),h=require("react"),N=require("./chunks/token-types-BdQ8kHBm.cjs"),l=require("./chunks/dashboard-briefing-launcher-CHwjpUYz.cjs"),R=require("./chunks/use-debounced-dirty-check-XHSwAefL.cjs");require("./value-format-preferences/index.cjs");const _=require("./chunks/report-runtime-context-C8LZFsqV.cjs");require("./chunks/validators-9D4KBqKD.cjs");const T=require("./chunks/pivot-result-identity-CDLRT-YG.cjs");require("./chunks/analyze-result-contract-BHb7sUUW.cjs");require("./chunks/temporal-bucket-authoring-CPTwHzvs.cjs");require("./chunks/temporal-result-owner-f6-i65Fb.cjs");require("react-dom");require("./chunks/index-Dpm_VET4.cjs");const B=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.cjs"),w=require("./chunks/index-jSrCwPQz.cjs");function j(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const u=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(t,o,u.get?u:{enumerable:!0,get:()=>a[o]})}}return t.default=a,Object.freeze(t)}const C=j(h);function M(a){const{displayPreferences:t,cardId:o,...u}=a,n={...u,id:a.dashboardId};return i.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:i.jsxs(e.SemaphorContextProvider,{dashboardProps:n,children:[i.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:a.cardId}),i.jsx(e.UXProvider,{appearance:a.appearance,children:i.jsx(e.DisplayPreferencesProvider,{displayPreferences:t,children:i.jsx(e.Container,{type:"visual",cardId:o,...n,children:i.jsx(L,{cardId:o})})})})]})})}function L({cardId:a}){const t=r.useDashboardStore(n=>{var c;return(c=n.dashboard)==null?void 0:c.sheets}),{card:o,frame:u}=h.useMemo(()=>{const n=t==null?void 0:t.flatMap(s=>s.frames),c=n==null?void 0:n.flatMap(s=>s==null?void 0:s.cards),D=c==null?void 0:c.find(s=>(s==null?void 0:s.id)===a),E=n==null?void 0:n.find(s=>{var m;return(m=s==null?void 0:s.cards)==null?void 0:m.find(g=>(g==null?void 0:g.id)===a)});return{card:D,frame:E}},[t,a]);return!o||!u?i.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${a}`}):i.jsx("main",{className:"flex h-full grow flex-col",children:i.jsx(e.ErrorBoundary,{FallbackComponent:({error:n,resetErrorBoundary:c})=>i.jsx(e.FallbackVisual,{error:n,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:i.jsx(e.DashboardCard,{card:o,frame:u})})})}function I(a,t,o,u){h.useEffect(()=>{a&&!o&&t&&u(e.cloneDeep(t))},[a,o,t,u])}function q({name:a,items:t,value:o,onChange:u,isLoading:n,isError:c,refetch:D,className:E,icon:s,showNone:m=!1}){const g=C.useRef(null),[b,y]=C.useState(!1),[S,A]=C.useState("100%"),x=m?[...t||[],{id:"none",name:"None"}]:t;C.useLayoutEffect(()=>{g.current&&A(g.current.offsetWidth)},[]);function v(){var f;return n?"Loading...":c?"Error":o?(f=t==null?void 0:t.find(p=>p.id===o))==null?void 0:f.name:`Select ${a}`}function F(f,p){u(p),y(!1)}return i.jsxs(r.Popover,{open:b,onOpenChange:y,children:[i.jsx(r.PopoverTrigger,{asChild:!0,children:i.jsxs(r.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":b,className:r.cn("flex h-9 w-full justify-between",E),children:[i.jsxs("div",{className:"flex items-center gap-2",children:[s&&i.jsx("div",{className:"mr-2",children:s}),i.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:v()})]}),i.jsx(w.ChevronDown,{className:"size-4 opacity-50"})]})}),i.jsx(r.PopoverContent,{className:"w-full p-0",style:{minWidth:S},children:i.jsxs(e.Command,{children:[i.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[i.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),i.jsx(e.IconButton,{className:"h-7",onClick:D,children:i.jsx(e.RefreshCw,{className:r.cn("size-3.5 opacity-50",n&&"animate-spin")})})]}),i.jsxs(e.CommandList,{children:[i.jsxs(e.CommandEmpty,{children:["No ",a==null?void 0:a.toLowerCase()," found."]}),i.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>i.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:p=>F(p,f.id),children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(r.Check,{className:r.cn("size-4",o===f.id?"opacity-100":"opacity-0")}),i.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function U(a,t){h.useEffect(()=>(a&&t&&(window.__SEMAPHOR_PRINT_STATE__={...t}),()=>{a&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[a,t])}exports.BriefingAuthor=e.BriefingAuthor;exports.BriefingAuthorDialog=e.BriefingAuthorDialog;exports.BriefingUiCapabilitiesBoundary=e.BriefingUiCapabilitiesBoundary;exports.BriefingUiCapabilitiesProvider=e.BriefingUiCapabilitiesProvider;exports.BriefingsApiError=e.BriefingsApiError;exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.ExportError=e.ExportError;exports.MatrixTableVisual=e.MatrixTableVisual;exports.ResourceType=e.ResourceType;exports.SemaphorContextProvider=e.SemaphorContextProvider;exports.SemaphorDataProvider=e.SemaphorQueryClient;exports.SemaphorQueryClient=e.SemaphorQueryClient;exports.ShareDialog=e.ShareDialog;exports.SummaryCard=e.SummaryCard;exports.Surfboard=e.DashboardPlus;exports.applyBriefingFormPatch=e.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=e.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=e.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=e.briefingToFormDraft;exports.cancelBriefingPreviewRun=e.cancelBriefingPreviewRun;exports.cancelBriefingRun=e.cancelBriefingRun;exports.cancelExport=e.cancelExport;exports.cloneDeep=e.cloneDeep;exports.createBriefing=e.createBriefing;exports.createBriefingFormDraft=e.createBriefingFormDraft;exports.createExport=e.createExport;exports.deleteBriefing=e.deleteBriefing;exports.deleteBriefingRun=e.deleteBriefingRun;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getBriefing=e.getBriefing;exports.getBriefingArtifact=e.getBriefingArtifact;exports.getBriefingEvidence=e.getBriefingEvidence;exports.getBriefingPreviewRun=e.getBriefingPreviewRun;exports.getBriefingRun=e.getBriefingRun;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.listBriefingRuns=e.listBriefingRuns;exports.listBriefingTenantSummaries=e.listBriefingTenantSummaries;exports.listBriefings=e.listBriefings;exports.pauseBriefing=e.pauseBriefing;exports.polishBriefingText=e.polishBriefingText;exports.previewBriefingPlan=e.previewBriefingPlan;exports.resumeBriefing=e.resumeBriefing;exports.runBriefingNow=e.runBriefingNow;exports.runBriefingPreview=e.runBriefingPreview;exports.updateBriefing=e.updateBriefing;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useBriefingUiCapabilities=e.useBriefingUiCapabilities;exports.useCard=e.useCard;exports.useCardSummary=e.useCardSummary;exports.useDashboardById=e.useDashboardById;exports.useDashboardQuery=e.useDashboardQuery;exports.useDashboardSummary=e.useDashboardSummary;exports.useDataColumns=e.useDataColumns;exports.useDateFilterHook=e.useDateFilterHook;exports.useEditorAside=e.useEditorAside;exports.useExportActions=e.useExportActions;exports.useExportStore=e.useExportStore;exports.useInProgressExportsCount=e.useInProgressExportsCount;exports.useManagementStore=e.useManagementStore;exports.useResourceManagement=e.useResourceManagement;exports.useTextFilterHook=e.useTextFilterHook;exports.validateBriefingFormDraft=e.validateBriefingFormDraft;exports.CALCULATED_FIELD_ENTITY_MARKER=d.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=d.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=d.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=d.EMPTY_SELECTION;exports.PivotMarkerEnum=d.PivotMarkerEnum;exports.getFieldRuntimeColumnName=d.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=d.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=d.hasCalculatedFormulaInputs;exports.isCalculatedDimension=d.isCalculatedDimension;exports.isCalculatedField=d.isCalculatedField;exports.isCalculatedMetric=d.isCalculatedMetric;exports.ReportPreferencesDialog=P.ReportPreferencesDialog;exports.createEmptyKpiConfig=r.createEmptyKpiConfig;exports.createSqlGenConfig=r.createSqlGenConfig;exports.emitDashboardLoad=r.emitDashboardLoad;exports.emitDashboardUnload=r.emitDashboardUnload;exports.fmt=r.fmt;exports.getColumnDataType=r.getColumnDataType;exports.getFilterValueType=r.getFilterValueType;exports.getFormattedTableNameForQuery=r.getFormattedTableNameForQuery;exports.getQualifiedTableName=r.getQualifiedTableName;exports.getSql=r.getSql;exports.invalidateToken=r.invalidateToken;exports.isBooleanDataType=r.isBooleanDataType;exports.isColumnInSqlGen=r.isColumnInSqlGen;exports.isDateDataType=r.isDateDataType;exports.isNumberDataType=r.isNumberDataType;exports.isTextDataType=r.isTextDataType;exports.resolveDataType=r.resolveDataType;exports.resolveDatamodelName=r.resolveDatamodelName;exports.useCurrentActiveCard=r.useCurrentActiveCard;exports.useCurrentCardConfig=r.useCurrentCardConfig;exports.useCurrentSheetActiveCards=r.useCurrentSheetActiveCards;exports.useDashboardActions=r.useDashboardActions;exports.useDashboardStore=r.useDashboardStore;exports.useEditorActions=r.useEditorActions;exports.useEditorStore=r.useEditorStore;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=N.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.AdvancedModeToggle=l.AdvancedModeToggle;exports.DashboardBriefingLauncher=l.DashboardBriefingLauncher;exports.DashboardControlsSettings=l.DashboardControlsSettings;exports.DashboardFilterControlsButton=l.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=l.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=l.DocumentControlsSettings;exports.ExportNotificationItem=l.ExportNotificationItem;exports.ExportNotificationList=l.ExportNotificationList;exports.NotificationBell=l.NotificationBell;exports.UnsavedChangesAlert=l.UnsavedChangesAlert;exports.VisualEditingControls=l.VisualEditingControls;exports.VisualsLibraryDialog=l.VisualsLibraryDialog;exports.WatchDashboardButton=l.WatchDashboardButton;exports.useExportPolling=l.useExportPolling;exports.useExportRecovery=l.useExportRecovery;exports.useDebouncedDirtyCheck=R.useDebouncedDirtyCheck;exports.DEFAULT_CALENDAR_CONTEXT=_.DEFAULT_CALENDAR_CONTEXT;exports.resolveQueryColumnKeyMapEntry=T.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=T.resolveUniqueQueryColumnKeyMapEntry;exports.normalizeDashboardForDirtyCheck=B.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=B.serializeDashboardForDirtyCheck;exports.Combobox=q;exports.Visual=M;exports.useExposePrintState=U;exports.usePristineSnapshotInitializer=I;