react-semaphor 0.1.484 → 0.1.486

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 (29) hide show
  1. package/dist/chunks/{dashboard-briefing-launcher-DRDcW4mQ.js → dashboard-briefing-launcher-BLPYBFZn.js} +3 -3
  2. package/dist/chunks/{dashboard-briefing-launcher-D_kXgE3t.cjs → dashboard-briefing-launcher-Bc8IJ2Bo.cjs} +1 -1
  3. package/dist/chunks/{dashboard-controls-977Q-WRS.js → dashboard-controls-4dmUovsq.js} +3 -3
  4. package/dist/chunks/{dashboard-controls-Ct7DmF75.cjs → dashboard-controls-DQ95FIgN.cjs} +1 -1
  5. package/dist/chunks/{dashboard-json-CACL_cT0.js → dashboard-json-B8uqjktD.js} +1 -1
  6. package/dist/chunks/{dashboard-json-D_isBS5e.cjs → dashboard-json-HPBVir83.cjs} +1 -1
  7. package/dist/chunks/{edit-dashboard-visual-HJ-j-JY7.js → edit-dashboard-visual-CQHnffN_.js} +2 -2
  8. package/dist/chunks/{edit-dashboard-visual-B07XUER6.cjs → edit-dashboard-visual-Dx7c7rdg.cjs} +1 -1
  9. package/dist/chunks/{editor-action-buttons-BkEqVLGi.cjs → editor-action-buttons-DXKTuaGM.cjs} +1 -1
  10. package/dist/chunks/{editor-action-buttons-cmb--PWY.js → editor-action-buttons-Dt990Wd9.js} +1 -1
  11. package/dist/chunks/{index-BtTPcpTa.cjs → index-BMBjEw3O.cjs} +173 -173
  12. package/dist/chunks/{index-D9rSByc1.js → index-E4GmfQa7.js} +16767 -16751
  13. package/dist/chunks/pivot-header-presentation-BBM9y_3s.cjs +4 -0
  14. package/dist/chunks/{pivot-header-presentation-tpb_J900.js → pivot-header-presentation-C5a6YCrP.js} +81 -72
  15. package/dist/chunks/{report-preferences-dialog-DgNi-Omm.cjs → report-preferences-dialog-CW1uGxxj.cjs} +1 -1
  16. package/dist/chunks/{report-preferences-dialog-CTc9nwkP.js → report-preferences-dialog-DBoyiHdV.js} +1 -1
  17. package/dist/dashboard/index.cjs +1 -1
  18. package/dist/dashboard/index.js +1 -1
  19. package/dist/data-app-builder/index.cjs +1 -1
  20. package/dist/data-app-builder/index.js +1 -1
  21. package/dist/format-utils/index.cjs +3 -3
  22. package/dist/format-utils/index.js +91 -89
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.js +4 -4
  25. package/dist/surfboard/index.cjs +1 -1
  26. package/dist/surfboard/index.js +2 -2
  27. package/dist/types/format-utils.d.ts +4 -5
  28. package/package.json +1 -1
  29. package/dist/chunks/pivot-header-presentation-8Ra1RfHg.cjs +0 -4
@@ -1,14 +1,14 @@
1
1
  import { i as q } from "../chunks/index-BS0_dp0l.js";
2
- import { f as w, a as y, b as R } from "../chunks/pivot-result-lifecycle-mjJ1rBvV.js";
3
- import { M as L, F, P as G, R as H, z as K, w as U, H as W, n as X, x as Y, D as Q, E as J, o as Z, q as ee, d as re, c as oe, h as te, e as se, C as ne, g as le, G as ae, p as ie, m as ue, k as me, y as ce, i as fe, l as pe, t as be, B as Te, r as we, j as Ee, u as he, v as ye, s as Re, A as Ce } from "../chunks/pivot-result-lifecycle-mjJ1rBvV.js";
4
- import { f as C, a as S, b as p, e as E } from "../chunks/pivot-header-presentation-tpb_J900.js";
5
- import { A as Ae, D as Pe, F as ve, P as de, i as ge, n as $e, t as Ve, u as _e, m as ke, c as Me, d as xe, g as Ie, h as Be, k as Oe, o as De, p as Ne, q as ze, v as qe, j as je, l as Le, r as Fe, s as Ge } from "../chunks/pivot-header-presentation-tpb_J900.js";
6
- import { FAST_PDF_POLICY as Ke, PDF_SAFETY_LIMIT_EXCEEDED as Ue, getUtf8ByteLength as We, isFastPdfOutputSizeEligible as Xe, isFastPdfPageCountEligible as Ye, isFastPdfRequestSizeEligible as Qe, isFastPdfRowCountEligible as Je } from "../pdf-export-policy/index.js";
7
- import { r as er, ap as rr, an as or, aq as tr, ao as sr, am as nr } from "../chunks/validators-D3AarM2T.js";
8
- import { i as ar, T as ir, h as ur, j as mr, p as cr, a as fr, k as pr } from "../chunks/metric-comparison-CTexJ8V1.js";
9
- import { P as Tr, b as wr, i as Er, c as hr, d as yr, r as Rr, a as Cr } from "../chunks/pivot-result-identity-BIeP9v8I.js";
10
- import { p as Ar, v as Pr } from "../chunks/raw-temporal-contract-BuQIB31z.js";
11
- function A(r, e, t, o) {
2
+ import { f as w, a as R, b as y } from "../chunks/pivot-result-lifecycle-mjJ1rBvV.js";
3
+ import { M as L, F as G, P as F, R as H, z as U, w as K, H as W, n as X, x as Y, D as Q, E as J, o as Z, q as ee, d as re, c as oe, h as te, e as se, C as ne, g as le, G as ae, p as ie, m as ue, k as me, y as ce, i as fe, l as pe, t as be, B as Te, r as we, j as Ee, u as he, v as Re, s as ye, A as Ce } from "../chunks/pivot-result-lifecycle-mjJ1rBvV.js";
4
+ import { f as C, a as A, b as p, e as E } from "../chunks/pivot-header-presentation-C5a6YCrP.js";
5
+ import { P as Se, A as Pe, D as ve, F as de, P as ge, v as _e, i as $e, n as Ie, t as Ve, u as Oe, m as Ne, c as ke, d as Me, g as xe, h as Be, k as De, o as ze, p as qe, q as je, w as Le, j as Ge, l as Fe, r as He, s as Ue } from "../chunks/pivot-header-presentation-C5a6YCrP.js";
6
+ import { FAST_PDF_POLICY as We, PDF_SAFETY_LIMIT_EXCEEDED as Xe, getUtf8ByteLength as Ye, isFastPdfOutputSizeEligible as Qe, isFastPdfPageCountEligible as Je, isFastPdfRequestSizeEligible as Ze, isFastPdfRowCountEligible as er } from "../pdf-export-policy/index.js";
7
+ import { r as or, ap as tr, an as sr, aq as nr, ao as lr, am as ar } from "../chunks/validators-D3AarM2T.js";
8
+ import { i as ur, T as mr, h as cr, j as fr, p as pr, a as br, k as Tr } from "../chunks/metric-comparison-CTexJ8V1.js";
9
+ import { P as Er, b as hr, i as Rr, c as yr, d as Cr, r as Ar, a as Sr } from "../chunks/pivot-result-identity-BIeP9v8I.js";
10
+ import { p as vr, v as dr } from "../chunks/raw-temporal-contract-BuQIB31z.js";
11
+ function S(r, e, t, o) {
12
12
  const s = r instanceof Date ? r.toISOString() : String(r), l = (o == null ? void 0 : o.browserTimezone) || t, n = (o == null ? void 0 : o.isSqlCard) ?? !1;
13
13
  if (e != null && e.useRelativeTime)
14
14
  return C(
@@ -16,7 +16,7 @@ function A(r, e, t, o) {
16
16
  (e == null ? void 0 : e.sourceTimezone) || "auto"
17
17
  );
18
18
  const i = e != null && e.useCustomFormat && (e != null && e.customFormat) ? e.customFormat : (e == null ? void 0 : e.format) || "MM/dd/yyyy";
19
- return S(
19
+ return A(
20
20
  s,
21
21
  i,
22
22
  e != null && e.timezone && (e == null ? void 0 : e.timezone) !== "auto" ? e.timezone : n ? l : t,
@@ -36,7 +36,7 @@ function P(r, e, t) {
36
36
  t.locale
37
37
  ) : String(r);
38
38
  case "date":
39
- return A(
39
+ return S(
40
40
  r,
41
41
  e.dateFormat,
42
42
  t.timezone,
@@ -76,7 +76,7 @@ function d(r, e) {
76
76
  }
77
77
  return t;
78
78
  }
79
- function x(r, e, t = `
79
+ function N(r, e, t = `
80
80
  `) {
81
81
  return d(r, e).join(t);
82
82
  }
@@ -106,7 +106,7 @@ function g(r) {
106
106
  }
107
107
  return o;
108
108
  }
109
- function $(r, e, t) {
109
+ function _(r, e, t) {
110
110
  if (r == null)
111
111
  return "";
112
112
  if (!t.useFormattedValues)
@@ -118,7 +118,7 @@ function $(r, e, t) {
118
118
  t.locale
119
119
  ) : typeof r == "number" ? r.toLocaleString(t.locale) : String(r);
120
120
  }
121
- function V(r, e, t) {
121
+ function $(r, e, t) {
122
122
  const o = [];
123
123
  r.fieldValues.forEach((l, n) => {
124
124
  r.isSubtotal && n === 0 ? o.push(`${l} Total`) : r.isSubtotal ? o.push("") : o.push(String(l ?? ""));
@@ -126,11 +126,11 @@ function V(r, e, t) {
126
126
  let s = 0;
127
127
  return e.columnHeaders.forEach((l) => {
128
128
  var a;
129
- const n = (a = r.cells[l]) == null ? void 0 : a.value, i = $(n, l, t);
129
+ const n = (a = r.cells[l]) == null ? void 0 : a.value, i = _(n, l, t);
130
130
  o.push(i), e.showRowTotals && typeof n == "number" && (s += n);
131
131
  }), e.showRowTotals && o.push(s.toLocaleString(t.locale)), o;
132
132
  }
133
- function I(r, e, t) {
133
+ function k(r, e, t) {
134
134
  const o = [];
135
135
  if (t.includeHeaders) {
136
136
  const s = g(e);
@@ -138,7 +138,7 @@ function I(r, e, t) {
138
138
  o.push(p(l, t.delimiter));
139
139
  }
140
140
  for (const s of r) {
141
- const l = V(
141
+ const l = $(
142
142
  s,
143
143
  e,
144
144
  t
@@ -160,7 +160,7 @@ function T(r, e, t) {
160
160
  if (s)
161
161
  throw new Error(`${t} contains unknown property "${s}"`);
162
162
  }
163
- function B(r, e = "tableTotalsRequest") {
163
+ function M(r, e = "tableTotalsRequest") {
164
164
  if (!f(r))
165
165
  throw new Error(`${e} must be an object`);
166
166
  if (T(r, ["source", "columns"], e), r.source !== "documentFlatTable")
@@ -228,7 +228,7 @@ function B(r, e = "tableTotalsRequest") {
228
228
  throw new Error(`${e}.columns may contain at most one label`);
229
229
  return { source: "documentFlatTable", columns: o };
230
230
  }
231
- function O(r, e = "tableTotalsByColumnId") {
231
+ function x(r, e = "tableTotalsByColumnId") {
232
232
  if (!f(r))
233
233
  throw new Error(`${e} must be an object`);
234
234
  const t = {};
@@ -243,7 +243,7 @@ function O(r, e = "tableTotalsByColumnId") {
243
243
  throw new Error(`${e} must not be empty`);
244
244
  return t;
245
245
  }
246
- function _(r) {
246
+ function I(r) {
247
247
  if (typeof r == "number")
248
248
  return Number.isFinite(r) ? r : null;
249
249
  if (!r.trim())
@@ -251,7 +251,7 @@ function _(r) {
251
251
  const e = Number(r);
252
252
  return Number.isFinite(e) ? e : null;
253
253
  }
254
- function D(r) {
254
+ function B(r) {
255
255
  const e = r.visibleColumns.map((t) => {
256
256
  const s = Object.prototype.hasOwnProperty.call(
257
257
  r.totalsByColumnId,
@@ -261,118 +261,120 @@ function D(r) {
261
261
  return "";
262
262
  if (!r.useFormattedValues)
263
263
  return String(s);
264
- const l = y({
264
+ const l = R({
265
265
  snapshot: r.snapshot,
266
266
  scope: r.scope,
267
267
  target: { kind: "column", columnKey: t }
268
- }), n = l ? _(s) : null;
269
- return l && n !== null ? R(n, l) : String(s);
268
+ }), n = l ? I(s) : null;
269
+ return l && n !== null ? y(n, l) : String(s);
270
270
  });
271
271
  return `${p(e, r.delimiter)}
272
272
  `;
273
273
  }
274
274
  export {
275
- Ae as AGGREGATE_TOTAL_MEMBER_MARKER,
276
- ar as DEFAULT_RESOLVED_TEMPORAL_STYLE_SET,
277
- Pe as DIRECT_CSV_EXPORT_MAX_ROWS,
278
- Ke as FAST_PDF_POLICY,
279
- ve as FULL_DATASET_CSV_EXPORT_MAX_ROWS,
275
+ Se as AGGREGATE_PDF_CONTINUATION_CLASS,
276
+ Pe as AGGREGATE_TOTAL_MEMBER_MARKER,
277
+ ur as DEFAULT_RESOLVED_TEMPORAL_STYLE_SET,
278
+ ve as DIRECT_CSV_EXPORT_MAX_ROWS,
279
+ We as FAST_PDF_POLICY,
280
+ de as FULL_DATASET_CSV_EXPORT_MAX_ROWS,
280
281
  L as MissingResolvedRawTemporalFormatError,
281
- Ue as PDF_SAFETY_LIMIT_EXCEEDED,
282
- de as PivotHeaderPresentationError,
283
- Tr as PivotResultIdentityError,
284
- F as PivotResultLifecycleError,
285
- G as PresentationExecutionSnapshotError,
282
+ ge as PDF_GROUP_CONTINUATION_CLASS,
283
+ Xe as PDF_SAFETY_LIMIT_EXCEEDED,
284
+ _e as PivotHeaderPresentationError,
285
+ Er as PivotResultIdentityError,
286
+ G as PivotResultLifecycleError,
287
+ F as PresentationExecutionSnapshotError,
286
288
  H as RawTemporalFormatContractError,
287
- er as SEMAPHOR_GENERATED_COUNT_METRIC_ID,
288
- rr as TEMPORAL_BUCKET_PATTERN_TOKENS,
289
- ir as TemporalBucketContractError,
290
- ge as arrayToCSV,
289
+ or as SEMAPHOR_GENERATED_COUNT_METRIC_ID,
290
+ tr as TEMPORAL_BUCKET_PATTERN_TOKENS,
291
+ mr as TemporalBucketContractError,
292
+ $e as arrayToCSV,
291
293
  p as arrayToCSVRow,
292
- K as assertRawTemporalChunkClassificationAgreement,
293
- D as buildFlatTableExportTotalsFooter,
294
- U as classifyDeclaredSqlTemporalColumn,
294
+ U as assertRawTemporalChunkClassificationAgreement,
295
+ B as buildFlatTableExportTotalsFooter,
296
+ K as classifyDeclaredSqlTemporalColumn,
295
297
  W as createCanonicalPivotResultTransport,
296
298
  X as createPresentationExecutionSnapshot,
297
299
  Y as createRawTemporalChunkClassificationEvidence,
298
300
  Q as deriveMetricInstanceAliasExpectations,
299
301
  J as derivePivotResultContractExpectations,
300
302
  E as escapeCSVValue,
301
- y as findResolvedNumericFormat,
303
+ R as findResolvedNumericFormat,
302
304
  Z as findResolvedRawTemporalFormat,
303
305
  ee as findResolvedTemporalBucketFormat,
304
- $e as formatAggregateGrandTotalLabel,
306
+ Ie as formatAggregateGrandTotalLabel,
305
307
  Ve as formatAggregateGroupCell,
306
- _e as formatAggregateGroupRow,
307
- ke as formatAggregateSubtotalLabel,
308
+ Oe as formatAggregateGroupRow,
309
+ Ne as formatAggregateSubtotalLabel,
308
310
  P as formatCellValue,
309
311
  re as formatCurrency,
310
- S as formatDate,
311
- Me as formatDuration,
312
- xe as formatMetricComparison,
312
+ A as formatDate,
313
+ ke as formatDuration,
314
+ Me as formatMetricComparison,
313
315
  oe as formatNumber,
314
316
  te as formatNumberCustom,
315
317
  w as formatNumberWithColumnSettings,
316
- R as formatNumericCanonical,
318
+ y as formatNumericCanonical,
317
319
  se as formatPercent,
318
- V as formatPivotDataRow,
319
- I as formatPivotTableForCSV,
320
+ $ as formatPivotDataRow,
321
+ k as formatPivotTableForCSV,
320
322
  ne as formatRawTemporalValue,
321
323
  C as formatRelativeTime,
322
324
  v as formatRowForExport,
323
325
  le as formatScientific,
324
326
  d as formatTableForCSV,
325
- ur as formatTemporalBucket,
327
+ cr as formatTemporalBucket,
326
328
  g as generatePivotHeaders,
327
- x as generateTableCSV,
328
- Ie as getTimezoneAbbreviation,
329
+ N as generateTableCSV,
330
+ xe as getTimezoneAbbreviation,
329
331
  Be as getTimezoneName,
330
- We as getUtf8ByteLength,
331
- Oe as isAggregateTotalMemberMarker,
332
- Xe as isFastPdfOutputSizeEligible,
333
- Ye as isFastPdfPageCountEligible,
334
- Qe as isFastPdfRequestSizeEligible,
335
- Je as isFastPdfRowCountEligible,
332
+ Ye as getUtf8ByteLength,
333
+ De as isAggregateTotalMemberMarker,
334
+ Qe as isFastPdfOutputSizeEligible,
335
+ Je as isFastPdfPageCountEligible,
336
+ Ze as isFastPdfRequestSizeEligible,
337
+ er as isFastPdfRowCountEligible,
336
338
  q as isNumericCanonicalFormat,
337
- wr as isPivotEmptyTupleAllowed,
338
- Er as isPivotSubtotalPrefix,
339
- or as isTemporalBucketPreset,
340
- De as objectsToCSV,
339
+ hr as isPivotEmptyTupleAllowed,
340
+ Rr as isPivotSubtotalPrefix,
341
+ sr as isTemporalBucketPreset,
342
+ ze as objectsToCSV,
341
343
  ae as parseCanonicalPivotResultTransport,
342
- O as parseFlatTableExportTotalsByColumnId,
343
- B as parseFlatTableExportTotalsRequest,
344
+ x as parseFlatTableExportTotalsByColumnId,
345
+ M as parseFlatTableExportTotalsRequest,
344
346
  ie as parseNumericCanonicalFormat,
345
347
  ue as parsePresentationExecutionSnapshot,
346
348
  me as parsePresentationScope,
347
349
  ce as parseRawTemporalChunkClassificationEvidence,
348
- Ar as parseRawTemporalValueMetadata,
350
+ vr as parseRawTemporalValueMetadata,
349
351
  fe as parseResolvedNumericCanonicalFormat,
350
352
  pe as parseResolvedPresentationEntries,
351
353
  be as parseResolvedRawTemporalFormat,
352
- mr as parseResolvedTemporalBucketFormat,
353
- cr as parseTemporalBucketValue,
354
- Ne as parseWithSourceTimezone,
354
+ fr as parseResolvedTemporalBucketFormat,
355
+ pr as parseTemporalBucketValue,
356
+ qe as parseWithSourceTimezone,
355
357
  Te as prepareRawTemporalFormatter,
356
- ze as presentAggregateGroupRow,
357
- qe as presentPivotHeader,
358
- hr as requirePivotHeaderMembers,
359
- yr as requirePivotResultColumnIdentities,
360
- je as requiresChunkedCsvExport,
361
- Le as resolveAggregateTablePresentationContext,
362
- tr as resolveApplicableTemporalBucketFormat,
358
+ je as presentAggregateGroupRow,
359
+ Le as presentPivotHeader,
360
+ yr as requirePivotHeaderMembers,
361
+ Cr as requirePivotResultColumnIdentities,
362
+ Ge as requiresChunkedCsvExport,
363
+ Fe as resolveAggregateTablePresentationContext,
364
+ nr as resolveApplicableTemporalBucketFormat,
363
365
  we as resolveCurrencyFractionDigits,
364
- fr as resolveMetricResultAlias,
366
+ br as resolveMetricResultAlias,
365
367
  Ee as resolveNumericPresentation,
366
- Rr as resolveQueryColumnKeyMapEntry,
368
+ Ar as resolveQueryColumnKeyMapEntry,
367
369
  he as resolveRawTemporalFormat,
368
- pr as resolveTemporalBucketPresentation,
369
- Fe as resolveTimezone,
370
- Cr as resolveUniqueQueryColumnKeyMapEntry,
371
- Ge as shouldPresentAggregateGroupValue,
372
- sr as tokenizeTemporalBucketPattern,
373
- ye as validateCardExportNumericPresentationSnapshot,
374
- Re as validateCardExportPresentationSnapshot,
370
+ Tr as resolveTemporalBucketPresentation,
371
+ He as resolveTimezone,
372
+ Sr as resolveUniqueQueryColumnKeyMapEntry,
373
+ Ue as shouldPresentAggregateGroupValue,
374
+ lr as tokenizeTemporalBucketPattern,
375
+ Re as validateCardExportNumericPresentationSnapshot,
376
+ ye as validateCardExportPresentationSnapshot,
375
377
  Ce as validateRawTemporalPattern,
376
- Pr as validateRawTemporalResultColumn,
377
- nr as validateTemporalBucketFormatApplicability
378
+ dr as validateRawTemporalResultColumn,
379
+ ar as validateTemporalBucketFormatApplicability
378
380
  };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-BtTPcpTa.cjs"),u=require("./chunks/common-types-BCSbPclk.cjs"),P=require("./chunks/report-preferences-dialog-DgNi-Omm.cjs"),i=require("react/jsx-runtime"),r=require("./chunks/switch-EWWOPEdH.cjs"),h=require("react"),N=require("./chunks/token-types-D9eN35rf.cjs"),l=require("./chunks/dashboard-briefing-launcher-D_kXgE3t.cjs"),R=require("./chunks/use-debounced-dirty-check-XHSwAefL.cjs");require("./value-format-preferences/index.cjs");require("./chunks/validators-DqIM0B3C.cjs");const w=require("./chunks/report-runtime-context-BfW4qiMJ.cjs"),T=require("./chunks/pivot-result-identity-BVnhG2rR.cjs");require("./chunks/analyze-result-contract-BX_nQmPN.cjs");require("./chunks/temporal-bucket-authoring-DueSgLJU.cjs");const B=require("./chunks/dashboard-filter-value-compatibility-ByT__CYM.cjs");require("./chunks/card-config-utils-D3Xuu0ub.cjs");require("react-dom");require("./chunks/appearance-context-DhyjbQk1.cjs");require("./chunks/color-CyB5o13F.cjs");require("./chunks/index-ByFbacH7.cjs");const A=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.cjs"),L=require("./chunks/x-B6ghREd2.cjs");require("./chunks/appearance-runtime-provider-BgNYdUYH.cjs");function M(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const d=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(t,o,d.get?d:{enumerable:!0,get:()=>a[o]})}}return t.default=a,Object.freeze(t)}const m=M(h);function j(a){const{displayPreferences:t,cardId:o,...d}=a,n={...d,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(I,{cardId:o})})})})]})})}function I({cardId:a}){const t=r.useDashboardStore(n=>{var c;return(c=n.dashboard)==null?void 0:c.sheets}),{card:o,frame:d}=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 C;return(C=s==null?void 0:s.cards)==null?void 0:C.find(g=>(g==null?void 0:g.id)===a)});return{card:D,frame:E}},[t,a]);return!o||!d?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:d})})})}function q(a,t,o,d){h.useEffect(()=>{a&&!o&&t&&d(B.cloneDeep(t))},[a,o,t,d])}function U({name:a,items:t,value:o,onChange:d,isLoading:n,isError:c,refetch:D,className:E,icon:s,showNone:C=!1}){const g=m.useRef(null),[y,b]=m.useState(!1),[S,F]=m.useState("100%"),x=C?[...t||[],{id:"none",name:"None"}]:t;m.useLayoutEffect(()=>{g.current&&F(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,p){d(p),b(!1)}return i.jsxs(r.Popover,{open:y,onOpenChange:b,children:[i.jsx(r.PopoverTrigger,{asChild:!0,children:i.jsxs(r.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":y,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(L.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=>_(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 k(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.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=u.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=u.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=u.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=u.EMPTY_SELECTION;exports.LEGACY_CALCULATED_FIELD_ENTITY_MARKER=u.LEGACY_CALCULATED_FIELD_ENTITY_MARKER;exports.PivotMarkerEnum=u.PivotMarkerEnum;exports.getFieldRuntimeColumnName=u.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=u.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=u.hasCalculatedFormulaInputs;exports.hasSyntheticCalculatedFieldOwner=u.hasSyntheticCalculatedFieldOwner;exports.isCalculatedDimension=u.isCalculatedDimension;exports.isCalculatedField=u.isCalculatedField;exports.isCalculatedMetric=u.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=w.DEFAULT_CALENDAR_CONTEXT;exports.resolveQueryColumnKeyMapEntry=T.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=T.resolveUniqueQueryColumnKeyMapEntry;exports.cloneDeep=B.cloneDeep;exports.normalizeDashboardForDirtyCheck=A.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=A.serializeDashboardForDirtyCheck;exports.Combobox=U;exports.Visual=j;exports.useExposePrintState=k;exports.usePristineSnapshotInitializer=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-BMBjEw3O.cjs"),u=require("./chunks/common-types-BCSbPclk.cjs"),P=require("./chunks/report-preferences-dialog-CW1uGxxj.cjs"),i=require("react/jsx-runtime"),r=require("./chunks/switch-EWWOPEdH.cjs"),h=require("react"),N=require("./chunks/token-types-D9eN35rf.cjs"),l=require("./chunks/dashboard-briefing-launcher-Bc8IJ2Bo.cjs"),R=require("./chunks/use-debounced-dirty-check-XHSwAefL.cjs");require("./value-format-preferences/index.cjs");require("./chunks/validators-DqIM0B3C.cjs");const w=require("./chunks/report-runtime-context-BfW4qiMJ.cjs"),T=require("./chunks/pivot-result-identity-BVnhG2rR.cjs");require("./chunks/analyze-result-contract-BX_nQmPN.cjs");require("./chunks/temporal-bucket-authoring-DueSgLJU.cjs");const B=require("./chunks/dashboard-filter-value-compatibility-ByT__CYM.cjs");require("./chunks/card-config-utils-D3Xuu0ub.cjs");require("react-dom");require("./chunks/appearance-context-DhyjbQk1.cjs");require("./chunks/color-CyB5o13F.cjs");require("./chunks/index-ByFbacH7.cjs");const A=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.cjs"),L=require("./chunks/x-B6ghREd2.cjs");require("./chunks/appearance-runtime-provider-BgNYdUYH.cjs");function M(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const d=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(t,o,d.get?d:{enumerable:!0,get:()=>a[o]})}}return t.default=a,Object.freeze(t)}const m=M(h);function j(a){const{displayPreferences:t,cardId:o,...d}=a,n={...d,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(I,{cardId:o})})})})]})})}function I({cardId:a}){const t=r.useDashboardStore(n=>{var c;return(c=n.dashboard)==null?void 0:c.sheets}),{card:o,frame:d}=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 C;return(C=s==null?void 0:s.cards)==null?void 0:C.find(g=>(g==null?void 0:g.id)===a)});return{card:D,frame:E}},[t,a]);return!o||!d?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:d})})})}function q(a,t,o,d){h.useEffect(()=>{a&&!o&&t&&d(B.cloneDeep(t))},[a,o,t,d])}function U({name:a,items:t,value:o,onChange:d,isLoading:n,isError:c,refetch:D,className:E,icon:s,showNone:C=!1}){const g=m.useRef(null),[y,b]=m.useState(!1),[S,F]=m.useState("100%"),x=C?[...t||[],{id:"none",name:"None"}]:t;m.useLayoutEffect(()=>{g.current&&F(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,p){d(p),b(!1)}return i.jsxs(r.Popover,{open:y,onOpenChange:b,children:[i.jsx(r.PopoverTrigger,{asChild:!0,children:i.jsxs(r.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":y,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(L.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=>_(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 k(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.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=u.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=u.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=u.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=u.EMPTY_SELECTION;exports.LEGACY_CALCULATED_FIELD_ENTITY_MARKER=u.LEGACY_CALCULATED_FIELD_ENTITY_MARKER;exports.PivotMarkerEnum=u.PivotMarkerEnum;exports.getFieldRuntimeColumnName=u.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=u.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=u.hasCalculatedFormulaInputs;exports.hasSyntheticCalculatedFieldOwner=u.hasSyntheticCalculatedFieldOwner;exports.isCalculatedDimension=u.isCalculatedDimension;exports.isCalculatedField=u.isCalculatedField;exports.isCalculatedMetric=u.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=w.DEFAULT_CALENDAR_CONTEXT;exports.resolveQueryColumnKeyMapEntry=T.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=T.resolveUniqueQueryColumnKeyMapEntry;exports.cloneDeep=B.cloneDeep;exports.normalizeDashboardForDirtyCheck=A.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=A.serializeDashboardForDirtyCheck;exports.Combobox=U;exports.Visual=j;exports.useExposePrintState=k;exports.usePristineSnapshotInitializer=q;
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
- import { E as y, F as N, S, c as _, U as P, d as w, C as F, e as x, f as R, g as L, h as M, I, R as U, i as k, j as O, k as V, l as q } from "./chunks/index-D9rSByc1.js";
2
- import { ak as xa, al as ya, am as ba, an as Ta, V as va, G as Aa, D as Ba, A as Na, z as Sa, w as _a, b as Pa, au as wa, M as Fa, n as Ra, q as La, q as Ma, r as Ia, B as Ua, a as ka, af as Oa, ah as Va, ai as qa, ag as za, a6 as Wa, a9 as ja, at as Qa, Z as Ha, ae as Ka, ap as Ga, a1 as Ya, aa as Xa, y as $a, x as Ja, ax as Za, Y as ae, ab as ee, ac as se, a5 as re, a8 as oe, as as ie, ar as te, aq as ne, aw as le, av as ue, a7 as de, X as ce, W as fe, $ as pe, ad as me, a3 as he, a0 as ge, a2 as Ce, a4 as De, _ as Ee, P as xe, L as ye, ao as be, v as Te, J as ve, t as Ae, m as Be, H as Ne, K as Se, o as _e, T as Pe, O as we, N as Fe, Q as Re, u as Le, s as Me, p as Ie, aj as Ue } from "./chunks/index-D9rSByc1.js";
1
+ import { E as y, F as N, S, c as _, U as P, d as w, C as F, e as x, f as R, g as L, h as M, I, R as U, i as k, j as O, k as V, l as q } from "./chunks/index-E4GmfQa7.js";
2
+ import { ak as xa, al as ya, am as ba, an as Ta, V as va, G as Aa, D as Ba, A as Na, z as Sa, w as _a, b as Pa, au as wa, M as Fa, n as Ra, q as La, q as Ma, r as Ia, B as Ua, a as ka, af as Oa, ah as Va, ai as qa, ag as za, a6 as Wa, a9 as ja, at as Qa, Z as Ha, ae as Ka, ap as Ga, a1 as Ya, aa as Xa, y as $a, x as Ja, ax as Za, Y as ae, ab as ee, ac as se, a5 as re, a8 as oe, as as ie, ar as te, aq as ne, aw as le, av as ue, a7 as de, X as ce, W as fe, $ as pe, ad as me, a3 as he, a0 as ge, a2 as Ce, a4 as De, _ as Ee, P as xe, L as ye, ao as be, v as Te, J as ve, t as Ae, m as Be, H as Ne, K as Se, o as _e, T as Pe, O as we, N as Fe, Q as Re, u as Le, s as Me, p as Ie, aj as Ue } from "./chunks/index-E4GmfQa7.js";
3
3
  import { a as Oe, C as Ve, D as qe, E as ze, L as We, P as je, g as Qe, d as He, h as Ke, e as Ge, b as Ye, c as Xe, i as $e } from "./chunks/common-types-D3r4PILe.js";
4
- import { R as Ze } from "./chunks/report-preferences-dialog-CTc9nwkP.js";
4
+ import { R as Ze } from "./chunks/report-preferences-dialog-DBoyiHdV.js";
5
5
  import { jsx as a, jsxs as u } from "react/jsx-runtime";
6
6
  import { u as z, P as W, a as j, B as Q, c as C, b as H, d as K } from "./chunks/switch-CZt_oBQ2.js";
7
7
  import { A as es, n as ss, e as rs, f as os, g as is, p as ts, o as ns, s as ls, t as us, m as ds, i as cs, l as fs, q as ps, k as ms, j as hs, h as gs, v as Cs, r as Ds, w as Es, y as xs, x as ys, z as bs, E as Ts, D as vs } from "./chunks/switch-CZt_oBQ2.js";
8
8
  import * as p from "react";
9
9
  import { useMemo as G, useEffect as b } from "react";
10
10
  import { D as Bs } from "./chunks/token-types-Dvomvqw0.js";
11
- import { A as Ss, g as _s, D as Ps, e as ws, f as Fs, d as Rs, b as Ls, E as Ms, N as Is, U as Us, a as ks, V as Os, W as Vs, u as qs, c as zs } from "./chunks/dashboard-briefing-launcher-DRDcW4mQ.js";
11
+ import { A as Ss, g as _s, D as Ps, e as ws, f as Fs, d as Rs, b as Ls, E as Ms, N as Is, U as Us, a as ks, V as Os, W as Vs, u as qs, c as zs } from "./chunks/dashboard-briefing-launcher-BLPYBFZn.js";
12
12
  import { u as js } from "./chunks/use-debounced-dirty-check-BwAbnX_5.js";
13
13
  import "./value-format-preferences/index.js";
14
14
  import "./chunks/validators-D3AarM2T.js";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-BtTPcpTa.cjs"),r=require("../chunks/common-types-BCSbPclk.cjs"),o=require("../chunks/report-preferences-dialog-DgNi-Omm.cjs");exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.Surfboard=e.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=r.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;exports.ReportPreferencesDialog=o.ReportPreferencesDialog;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-BMBjEw3O.cjs"),r=require("../chunks/common-types-BCSbPclk.cjs"),o=require("../chunks/report-preferences-dialog-CW1uGxxj.cjs");exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.Surfboard=e.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=r.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;exports.ReportPreferencesDialog=o.ReportPreferencesDialog;
@@ -1,6 +1,6 @@
1
- import { b as a, a as o } from "../chunks/index-D9rSByc1.js";
1
+ import { b as a, a as o } from "../chunks/index-E4GmfQa7.js";
2
2
  import { C as f, E } from "../chunks/common-types-D3r4PILe.js";
3
- import { R as t } from "../chunks/report-preferences-dialog-CTc9nwkP.js";
3
+ import { R as t } from "../chunks/report-preferences-dialog-DBoyiHdV.js";
4
4
  export {
5
5
  f as CONTROL_CARD_DEFAULT_VALUE,
6
6
  a as DisplayFormatPreferencesFields,
@@ -14,11 +14,6 @@ export declare interface AggregateGroupRowPresentation<T = string> {
14
14
  cells: AggregateGroupCellPresentation<T>[];
15
15
  }
16
16
 
17
- /**
18
- * React-free aggregate-table row presentation policy shared by browser and
19
- * delivery adapters. Canonical tuple values and row metadata remain identity;
20
- * this module owns authoritative group keys and group-cell placement.
21
- */
22
17
  export declare interface AggregateSubtotalLabelInput {
23
18
  aggregateFunction: string;
24
19
  customLabel?: string;
@@ -748,6 +743,10 @@ export declare function parseTemporalBucketValue(value: TemporalBucketValue, met
748
743
  */
749
744
  export declare function parseWithSourceTimezone(dateString: string, sourceTimezone?: string): Date;
750
745
 
746
+ declare const PDF_GROUP_CONTINUATION_CLASS = "pdf-group-continuation";
747
+ export { PDF_GROUP_CONTINUATION_CLASS as AGGREGATE_PDF_CONTINUATION_CLASS }
748
+ export { PDF_GROUP_CONTINUATION_CLASS }
749
+
751
750
  export declare const PDF_SAFETY_LIMIT_EXCEEDED: "PDF_SAFETY_LIMIT_EXCEEDED";
752
751
 
753
752
  export declare interface PivotByColumn {
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "email": "support@semaphor.cloud"
6
6
  },
7
7
  "license": "MIT",
8
- "version": "0.1.484",
8
+ "version": "0.1.486",
9
9
  "description": "Fully interactive and customizable dashboards for your apps.",
10
10
  "keywords": [
11
11
  "react",
@@ -1,4 +0,0 @@
1
- "use strict";var X=Object.defineProperty;var Z=(e,t,n)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var p=(e,t,n)=>Z(e,typeof t!="symbol"?t+"":t,n);const c=require("./index-ByQgqT9d.cjs"),M=require("./pivot-result-lifecycle-D_bRCqaB.cjs"),B=require("./index-F25jnH0p.cjs"),j=require("./metric-comparison-x0lipytf.cjs"),v=["day","hour","minute","second","millisecond"],x={day:864e5,hour:36e5,minute:6e4,second:1e3,millisecond:1},H={day:"d",hour:"hr",minute:"min",second:"s",millisecond:"ms"},Y={day:["day","days"],hour:["hour","hours"],minute:["minute","minutes"],second:["second","seconds"],millisecond:["millisecond","milliseconds"]};function K(e){return e==="day"||e==="hour"||e==="minute"||e==="second"||e==="millisecond"}function R(e,t){return K(e)?e:t}function S(e,t){return v.indexOf(R(e,t))}function W(e,t){const n=S(e,"day"),o=S(t,"second"),r=Math.min(n,o),a=Math.max(n,o);return v.slice(r,a+1)}function q(e,t){return e*x[R(t,"second")]}function J(e,t){const n=W(t.largestUnit,t.smallestUnit),o=n[n.length-1],r=x[o];let a=Math.round(e/r)*r;return n.map(i=>{const s=x[i],l=Math.floor(a/s);return a-=l*s,{unit:i,value:l}})}function Q(e,t){const n=e.filter(a=>a.value!==0),o=n.length>0?n:[e[e.length-1]],r=typeof t=="number"&&Number.isFinite(t)?Math.max(1,Math.trunc(t)):o.length;return o.slice(0,r).map(a=>`${a.value}${H[a.unit]}`).join(" ")}function z(e,t){const n=e.filter(a=>a.value!==0),o=n.length>0?n:[e[e.length-1]],r=typeof t=="number"&&Number.isFinite(t)?Math.max(1,Math.trunc(t)):o.length;return o.slice(0,r).map(a=>{const[i,s]=Y[a.unit];return`${a.value} ${a.value===1?i:s}`}).join(" ")}function ee(e){const t=e.some(l=>l.unit==="day"&&l.value!==0),n=e.some(l=>l.unit==="millisecond"),o=e.findIndex(l=>l.value!==0),r=Math.max(0,e.length-2),a=t?0:o===-1?r:Math.min(o,r),i=o===-1?e.slice(r):e.slice(a);if(i.length===0)return"0";const s=i.map((l,u)=>l.unit==="millisecond"?String(l.value).padStart(3,"0"):u===0?String(l.value):String(l.value).padStart(2,"0")).join(":");return n?s.replace(/:(\d{3})$/,".$1"):s}function te(e,t,n){const o=`${n.prefix||""}${e}${n.suffix||""}`;return t?n.negativeInParentheses?`(${o})`:`-${o}`:o}function E(e,t={}){if(e==null)return"";const n=typeof e=="number"?e:typeof e=="string"&&e.trim()?Number(e):NaN;if(!Number.isFinite(n))return"";const o=t.inputUnit||"second",r=t.outputStyle==="digital"||t.outputStyle==="long"?t.outputStyle:"compact",a=n<0,i=Math.abs(q(n,o)),s=J(i,t),l=r==="digital"?ee(s):r==="long"?z(s,t.maxUnits):Q(s,t.maxUnits);return te(l,a,t)}function ne(e,t,n){const o={...t,locale:t.locale??n};if(o.type==="number")return M.formatNumericCanonical(e,o);const{prefix:r,suffix:a,...i}=o;return`${r??""}${M.formatNumericCanonical(e,{...i,negativeStyle:o.type==="currency"?o.negativeStyle:"minus"})}${a??""}`}function T(e,t,n){return e===null?{value:e,text:null}:!t||!c.isNumericCanonicalFormat(t)&&t.type!=="duration"?{value:e,text:M.formatNumericCanonical(e,{type:"number",locale:n})}:t.type==="duration"?{value:e,text:E(e,{inputUnit:t.inputUnit,outputStyle:t.outputStyle,largestUnit:t.largestUnit,smallestUnit:t.smallestUnit,maxUnits:t.maxUnits,prefix:t.prefix,suffix:t.suffix,negativeInParentheses:t.negativeStyle==="parentheses"})}:{value:e,text:ne(e,t,n)}}function C(e,t,n,o){return e===null?{value:e,text:null}:o==="percent"?{value:e,text:M.formatNumericCanonical(e,{type:"percent",locale:n,minimumFractionDigits:t,maximumFractionDigits:t,percentValueMode:"fraction"})}:{value:e,text:M.formatNumericCanonical(e,{type:"number",locale:n,minimumFractionDigits:t,maximumFractionDigits:t,suffix:"×"})}}function _(e,t){if(e===void 0)return t;if(!Number.isInteger(e)||e<0||e>6)throw new RangeError("Comparison precision must be an integer from 0 to 6.");return e}function re(e,t){const n={mode:t.displayMode,current:T(e.currentValue,t.metricFormat,t.locale),comparison:T(e.comparisonValue,t.metricFormat,t.locale)};return(t.displayMode==="difference"||t.displayMode==="both")&&(n.difference=T(e.delta,t.metricFormat,t.locale)),(t.displayMode==="percent_change"||t.displayMode==="both")&&(n.percentChange=C(e.percentChange,_(t.precision,1),t.locale,"percent")),t.displayMode==="ratio"&&(n.ratio=C(e.ratio,_(t.precision,2),t.locale,"ratio")),n}function y(e,t){const n=c.toDate(e),o=c.toDate(t),r=n.getTime()-o.getTime();return r<0?-1:r>0?1:r}function oe(e){return c.constructFrom(e,Date.now())}function ae(e,t){const n=c.toDate(e),o=c.toDate(t),r=n.getFullYear()-o.getFullYear(),a=n.getMonth()-o.getMonth();return r*12+a}function se(e){return t=>{const o=(e?Math[e]:Math.trunc)(t);return o===0?0:o}}function ie(e,t){return+c.toDate(e)-+c.toDate(t)}function le(e){const t=c.toDate(e);return t.setHours(23,59,59,999),t}function ce(e){const t=c.toDate(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function ue(e){const t=c.toDate(e);return+le(t)==+ce(t)}function fe(e,t){const n=c.toDate(e),o=c.toDate(t),r=y(n,o),a=Math.abs(ae(n,o));let i;if(a<1)i=0;else{n.getMonth()===1&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-r*a);let s=y(n,o)===-r;ue(c.toDate(e))&&a===1&&y(e,o)===1&&(s=!1),i=r*(a-Number(s))}return i===0?0:i}function me(e,t,n){const o=ie(e,t)/1e3;return se(n==null?void 0:n.roundingMethod)(o)}function ge(e,t,n){const o=c.getDefaultOptions(),r=(n==null?void 0:n.locale)??o.locale??c.enUS,a=2520,i=y(e,t);if(isNaN(i))throw new RangeError("Invalid time value");const s=Object.assign({},n,{addSuffix:n==null?void 0:n.addSuffix,comparison:i});let l,u;i>0?(l=c.toDate(t),u=c.toDate(e)):(l=c.toDate(e),u=c.toDate(t));const g=me(u,l),m=(c.getTimezoneOffsetInMilliseconds(u)-c.getTimezoneOffsetInMilliseconds(l))/1e3,f=Math.round((g-m)/60);let h;if(f<2)return n!=null&&n.includeSeconds?g<5?r.formatDistance("lessThanXSeconds",5,s):g<10?r.formatDistance("lessThanXSeconds",10,s):g<20?r.formatDistance("lessThanXSeconds",20,s):g<40?r.formatDistance("halfAMinute",0,s):g<60?r.formatDistance("lessThanXMinutes",1,s):r.formatDistance("xMinutes",1,s):f===0?r.formatDistance("lessThanXMinutes",1,s):r.formatDistance("xMinutes",f,s);if(f<45)return r.formatDistance("xMinutes",f,s);if(f<90)return r.formatDistance("aboutXHours",1,s);if(f<c.minutesInDay){const d=Math.round(f/60);return r.formatDistance("aboutXHours",d,s)}else{if(f<a)return r.formatDistance("xDays",1,s);if(f<c.minutesInMonth){const d=Math.round(f/c.minutesInDay);return r.formatDistance("xDays",d,s)}else if(f<c.minutesInMonth*2)return h=Math.round(f/c.minutesInMonth),r.formatDistance("aboutXMonths",h,s)}if(h=fe(u,l),h<12){const d=Math.round(f/c.minutesInMonth);return r.formatDistance("xMonths",d,s)}else{const d=h%12,w=Math.trunc(h/12);return d<3?r.formatDistance("aboutXYears",w,s):d<9?r.formatDistance("overXYears",w,s):r.formatDistance("almostXYears",w+1,s)}}function V(e,t){return ge(e,oe(e),t)}function de(e,t){return e&&e!=="auto"?e:t}function he(e,t=new Date){try{const n={timeZone:e,timeZoneName:"short"},r=new Intl.DateTimeFormat("en-US",n).formatToParts(t).find(a=>a.type==="timeZoneName");return(r==null?void 0:r.value)||e}catch{return e}}function Me(e){try{const t={timeZone:e,timeZoneName:"long"},o=new Intl.DateTimeFormat("en-US",t).formatToParts(new Date).find(r=>r.type==="timeZoneName");return(o==null?void 0:o.value)||e}catch{return e}}function A(e,t="auto"){if(!e)return new Date(NaN);const n=e.endsWith("Z"),o=/[+-]\d{2}:?\d{2}$/.test(e),r=/\([A-Z]{3,4}\)$/.test(e);if(t==="auto")return n||o||r?new Date(e):new Date(e+"Z");if(t==="local"){if(n||o){const a=e.replace(/Z$/,"").replace(/[+-]\d{2}:?\d{2}$/,"");return new Date(a)}return new Date(e)}else return t==="UTC"?n?new Date(e):o?new Date(e):new Date(e+"Z"):n||o||r?new Date(e):B.fromZonedTime(e,t)}const ye="MM/dd/yyyy",De=(e,t,n,o="auto")=>{if(!e)return"";try{const r=A(e,o);if(isNaN(r.getTime()))return e;const i=(t&&t.trim()?t:ye).replace(/LLLL/g,"MMMM").replace(/LLL/g,"MMM");return n&&n!=="auto"?c.formatInTimeZone(r,n,i):c.format(r,i)}catch(r){return console.error("Date formatting error:",r),e}},be=(e,t="auto")=>{if(!e)return"";try{const n=A(e,t);return isNaN(n.getTime())?e:V(n,{addSuffix:!0})}catch(n){return console.error("Relative time formatting error:",n),e}};function I(e,t=","){if(e==null)return"";const n=String(e);return n.includes(t)||n.includes('"')||n.includes(`
2
- `)||n.includes("\r")?`"${n.replace(/"/g,'""')}"`:n}function N(e,t=","){return e.map(n=>I(n,t)).join(t)}function $(e,t={}){const{delimiter:n=",",lineEnding:o=`
3
- `}=t;return e.map(r=>N(r,n)).join(o)}function we(e,t={}){if(e.length===0)return"";const{delimiter:n=",",lineEnding:o=`
4
- `,includeHeaders:r=!0,columns:a}=t,i=a||Object.keys(e[0]),s=[];r&&s.push(i);for(const l of e){const u=i.map(g=>{const m=l[g];return m==null?"":String(m)});s.push(u)}return $(s,{delimiter:n,lineEnding:o})}const O=1e4,Te=1e6;function xe(e){return e>O}const P="__TOTAL__";function D(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function b(e){return e===P}function Ae(e){const t=new Map,n=(e.groupByColumns??[]).map((r,a)=>{var u,g,m;if(!D(r))throw new Error(`Aggregate groupByColumns[${a}] is invalid`);const i=typeof r.id=="string"&&r.id.length>0?r.id:void 0,s=i?(m=(g=(u=e.columnKeyMap)==null?void 0:u.byRole)==null?void 0:g.groupby)==null?void 0:m[i]:void 0,l=(s==null?void 0:s.outputKey)||(s==null?void 0:s.rawKey)||(typeof r.alias=="string"&&r.alias.length>0?r.alias:typeof r.name=="string"&&r.name.length>0?r.name:void 0);if(!l)throw new Error(`Aggregate groupByColumns[${a}] has no output key`);return[i,r.alias,r.name,l].forEach(f=>{typeof f=="string"&&f.length>0&&t.set(f,l)}),l}),o=(e.rowAggregates??[]).flatMap(r=>!D(r)||typeof r.function!="string"||typeof r.groupLevel!="string"?[]:[{function:r.function,groupLevel:r.groupLevel==="ALL"?"ALL":t.get(r.groupLevel)||r.groupLevel,...typeof r.label=="string"?{label:r.label}:{}}]);return{groupColumnKeys:n,rowAggregates:o}}function F(e){return e==="SUM"?"Total":e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function U(e){var n;if(e.customLabel)return e.customLabel;const t=F(e.aggregateFunction);if(e.levelValue!==void 0&&!b(e.levelValue)){if(e.levelValue===null){const r=(n=e.formatValue)==null?void 0:n.call(e,null);return r?`Subtotal ${r}`:`Subtotal ${t}`}const o=e.formatValue?e.formatValue(e.levelValue):String(e.levelValue);if(o)return`Subtotal (${o})`}return`Subtotal ${t}`}function G(e,t){return t||`Grand ${F(e)}`}function Le(e){const t=e.context.groupColumnKeys.indexOf(e.columnKey);if(t<0)throw new Error(`Aggregate group column "${e.columnKey}" is unknown`);if(!e.previousRow||e.row.isSubtotal===!0||e.row.isGrandTotal===!0||e.previousRow.isSubtotal===!0||e.previousRow.isGrandTotal===!0)return!0;for(let n=0;n<=t;n++){const o=e.context.groupColumnKeys[n];if(e.row[o]!==e.previousRow[o])return!0}return!1}function L(e){var o,r;const t=e.context.groupColumnKeys,n=typeof e.row.aggregate=="string"?e.row.aggregate:"SUM";if(e.row.isGrandTotal===!0){const a=(o=e.context.rowAggregates.find(i=>i.groupLevel==="ALL"))==null?void 0:o.label;return{kind:"grand-total",cells:t.map((i,s)=>({columnKey:i,text:s===0?G(n,a):"",placement:s===0?"label":"empty",colSpan:s===0?t.length:1}))}}if(e.row.isSubtotal===!0){if(typeof e.row.subtotalLevel!="string")throw new Error("Aggregate subtotal row is missing subtotalLevel");const a=t.indexOf(e.row.subtotalLevel);if(a<0)throw new Error(`Aggregate subtotal level "${e.row.subtotalLevel}" has no group column`);const i=D(e.row.subtotalContext)?e.row.subtotalContext:void 0,s=D(i==null?void 0:i.groupByValues)?i.groupByValues:{},l=(r=e.context.rowAggregates.find(u=>u.groupLevel===e.row.subtotalLevel&&u.function===n))==null?void 0:r.label;return{kind:"subtotal",cells:t.map((u,g)=>{if(g>a)return{columnKey:u,text:"",placement:"empty",colSpan:1};if(g<a){const m=e.row[u];return{columnKey:u,text:m===void 0||b(m)?"":e.formatValue(m,u),placement:"value",colSpan:1}}return{columnKey:u,text:U({aggregateFunction:n,customLabel:l,levelValue:s[u],formatValue:m=>e.formatLabelValue?e.formatLabelValue(m,u):String(e.formatValue(m,u)??"")}),placement:"label",colSpan:t.length-a}})}}return{kind:"data",cells:t.map(a=>{const i=e.row[a];return{columnKey:a,text:i===void 0||b(i)?"":e.formatValue(i,a),placement:"value",colSpan:1}})}}function pe(e){const t=L(e).cells.find(n=>n.columnKey===e.columnKey);if(!t)throw new Error(`Aggregate group column "${e.columnKey}" is unknown`);return t.text}function Se(e){return L(e).cells.map(t=>t.text)}class k extends Error{constructor(n,o){super(`${n}: ${o}`);p(this,"deliveryBlocking",!0);this.code=n,this.name="PivotHeaderPresentationError"}}function Ce(e){var r;const t=e.mode??"formatted",n=e.members.map(a=>{var s;if(t==="canonical"||!a.temporalBucket)return a.value===null?"":String(a.value);const i=(s=e.resolveTemporalFormat)==null?void 0:s.call(e,a.fieldId);if(!i)throw new k("missing_resolved_temporal_format",`Missing resolved temporal presentation for pivot field "${a.fieldId}"`);return j.formatTemporalBucket({value:a.value,metadata:a.temporalBucket,format:i})}),o=((r=e.metricLabel)==null?void 0:r.trim())||void 0;return{memberLabels:n,...o?{metricLabel:o}:{},flattenedLabel:[...n,...o?[o]:[]].join(" / ")}}exports.AGGREGATE_TOTAL_MEMBER_MARKER=P;exports.DIRECT_CSV_EXPORT_MAX_ROWS=O;exports.FULL_DATASET_CSV_EXPORT_MAX_ROWS=Te;exports.PivotHeaderPresentationError=k;exports.arrayToCSV=$;exports.arrayToCSVRow=N;exports.escapeCSVValue=I;exports.formatAggregateGrandTotalLabel=G;exports.formatAggregateGroupCell=pe;exports.formatAggregateGroupRow=Se;exports.formatAggregateSubtotalLabel=U;exports.formatDate=De;exports.formatDistanceToNow=V;exports.formatDuration=E;exports.formatMetricComparison=re;exports.formatRelativeTime=be;exports.getTimezoneAbbreviation=he;exports.getTimezoneName=Me;exports.isAggregateTotalMemberMarker=b;exports.objectsToCSV=we;exports.parseWithSourceTimezone=A;exports.presentAggregateGroupRow=L;exports.presentPivotHeader=Ce;exports.requiresChunkedCsvExport=xe;exports.resolveAggregateTablePresentationContext=Ae;exports.resolveTimezone=de;exports.shouldPresentAggregateGroupValue=Le;