react-semaphor 0.1.556 → 0.1.557
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DATA_APP_SDK.md +6 -29
- package/dist/analytics-protocol/index.js +19 -20
- package/dist/assistant-context/index.js +1 -1
- package/dist/brand-studio/index.js +28 -29
- package/dist/briefings/index.js +55 -56
- package/dist/chunks/{assistant-chat-C7Acww1T.js → assistant-chat-WMTpYirZ.js} +78 -80
- package/dist/chunks/{bookmark-state-7iZErWnR.js → bookmark-state-PjQpxbG7.js} +3 -3
- package/dist/chunks/{braces-o9UiRQes.js → braces-BOErQVyi.js} +1 -1
- package/dist/chunks/{comparison-window-caption-BseG5aOZ.js → comparison-window-caption-Dc7BaCMz.js} +186 -189
- package/dist/chunks/{custom-visual-inputs-ChuKjx27.js → custom-visual-inputs-CxYI-gFa.js} +1 -1
- package/dist/chunks/{dashboard-BU6rE5kV.js → dashboard-4D8Vy4pL.js} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-qrYd2zkN.js → dashboard-briefing-launcher-C4EmOfxs.js} +147 -149
- package/dist/chunks/{dashboard-controls-BsapXI2H.js → dashboard-controls-DBWykmvL.js} +170 -172
- package/dist/chunks/{dashboard-json-CJqPqYnI.js → dashboard-json-DiX-p0F7.js} +20 -21
- package/dist/chunks/{document-dashboard-inputs-BNSprf5_.js → document-dashboard-inputs-DP5hquBR.js} +30 -30
- package/dist/chunks/{edit-dashboard-visual-CjAdV-WG.js → edit-dashboard-visual-n1jLV_7V.js} +4773 -4802
- package/dist/chunks/{filter-reach-copy-BTrqtFkh.js → filter-reach-copy-BB9iakLA.js} +147 -148
- package/dist/chunks/{filter-value-text-CJTJDCym.js → filter-value-text-CUBpotVN.js} +3 -3
- package/dist/chunks/{global-date-filter-utils-CTVf3dG3.js → global-date-filter-utils-Cc5tqkoW.js} +585 -591
- package/dist/chunks/{index-B_vIRa-q.js → index-CgjhzkKM.js} +69 -70
- package/dist/chunks/{layout-grid-Bgzth8vd.js → layout-grid-CcNklCwL.js} +1 -1
- package/dist/chunks/{list-filter-DsaTbM3J.js → list-filter-Ds_4UTpD.js} +1 -1
- package/dist/chunks/{matrix-analytical-definition-Cg0ioFGQ.js → matrix-analytical-definition-4GTUDheD.js} +3 -3
- package/dist/chunks/{matrix-card-yYibXSw1.js → matrix-card-fS_4O7zA.js} +2 -2
- package/dist/chunks/{matrix-member-presentation-DEEauKXC.js → matrix-member-presentation-Dj7HaAHC.js} +1 -1
- package/dist/chunks/{matrix-operation-contract-C1G6AJNh.js → matrix-operation-contract-CpgLZ7E5.js} +21 -21
- package/dist/chunks/{metric-comparison-BfcmwxM1.js → metric-comparison-C8LY7GG5.js} +1 -1
- package/dist/chunks/{palette-D10o_yYX.js → palette-DMkIhagj.js} +1 -1
- package/dist/chunks/{matrix-formatter-C2kjsCDf.js → pivot-result-contract-expectations-DMk-mKhG.js} +444 -395
- package/dist/chunks/{pivot-result-identity-CWi5WrrY.js → pivot-result-identity-CrQ54Xbj.js} +1 -1
- package/dist/chunks/{raw-temporal-presentation-DWzLIHc3.js → raw-temporal-presentation-DdEpgPRB.js} +24 -25
- package/dist/chunks/report-preferences-dialog-CFg5VFLk.js +2109 -0
- package/dist/chunks/{report-runtime-context-BgM-iNWB.js → report-runtime-context-CohdtiMg.js} +1 -1
- package/dist/chunks/{resolve-dashboard-input-context-Df8V5QHW.js → resolve-dashboard-input-context-Djl3kCFL.js} +224 -226
- package/dist/chunks/{save-CfJpQQ68.js → save-D1EpMcwT.js} +1 -1
- package/dist/chunks/{saved-dashboard-context-VvXI6r03.js → saved-dashboard-context-umlQFevH.js} +8 -8
- package/dist/chunks/selection-reducer-_d6aKJnj.js +46 -0
- package/dist/chunks/{semaphor-ready-indicator-fejZmdq9.js → semaphor-ready-indicator-4cOp6sla.js} +40458 -43400
- package/dist/chunks/{shelf-drop-preview-context-BuTCXe-S.js → shelf-drop-preview-context-DAtRuvR7.js} +6 -6
- package/dist/chunks/{source-entity-resolution-B46EZIzX.js → source-entity-resolution-DXW1HpKf.js} +1 -1
- package/dist/chunks/{switch-Bq92UGId.js → switch-9CJt5EF_.js} +1430 -1341
- package/dist/chunks/{table-export-sheet-noKl8-en.js → table-export-sheet-CTCTA_bd.js} +1 -1
- package/dist/chunks/{table-settings-PpINOzw8.js → table-settings-DF1gdVQR.js} +2 -2
- package/dist/chunks/temporal-input-presentation-DoSniQj1.js +2939 -0
- package/dist/chunks/{token-types--0bgRCaO.js → token-types-DFyLflLY.js} +1 -1
- package/dist/chunks/{upload-BFX7apKV.js → upload-LSNKpt0w.js} +1 -1
- package/dist/chunks/{use-create-flow-overlay-state-Cz-ve64t.js → use-create-flow-overlay-state-esyMT9vU.js} +124 -126
- package/dist/chunks/{validators-CZo_H4E6.js → validators-hmfNNQz8.js} +5 -5
- package/dist/chunks/zoned-wall-clock-E35Frf9v.js +191 -0
- package/dist/dashboard/index.js +2 -2
- package/dist/dashboard-authoring/index.js +130 -131
- package/dist/data-app-sdk/index.js +788 -4153
- package/dist/data-app-sdk-adapters/index.js +2 -2
- package/dist/data-app-sdk-validation/index.js +5 -5
- package/dist/format-utils/index.js +230 -233
- package/dist/index.js +216 -217
- package/dist/report-runtime-context/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/data-app-sdk/contracts.d.ts +0 -146
- package/dist/types/data-app-sdk/index.d.ts +0 -2
- package/dist/types/index.js +6 -6
- package/dist/types/shared/dashboard-authoring/filter-model/filter-definitions.d.ts +1 -7
- package/package.json +1 -3
- package/src/data-app-sdk/README.md +7 -31
- package/dist/chunks/pivot-result-contract-expectations-fKBHFPfz.js +0 -56
- package/dist/chunks/raw-temporal-contract-CjHaUIsE.js +0 -64
- package/dist/chunks/report-preferences-dialog-D_wrbIQt.js +0 -2261
- package/dist/chunks/selection-reducer-By4CSmEF.js +0 -111
- package/dist/chunks/temporal-bucket-DzyadxVY.js +0 -2071
- package/dist/chunks/temporal-input-presentation-CJWS4d0L.js +0 -879
- package/dist/chunks/x-4f5U2XwU.js +0 -100
- package/dist/chunks/zoned-wall-clock-MulfA26h.js +0 -129
- package/dist/types/data-app-sdk/devtools/index.d.ts +0 -49
- package/dist/types/data-app-sdk/devtools.d.ts +0 -1
package/dist/chunks/{comparison-window-caption-BseG5aOZ.js → comparison-window-caption-Dc7BaCMz.js}
RENAMED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
var Ke = Object.defineProperty;
|
|
2
2
|
var Ve = (e, t, r) => t in e ? Ke(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
|
|
3
3
|
var ae = (e, t, r) => Ve(e, typeof t != "symbol" ? t + "" : t, r);
|
|
4
|
-
import { i as Ue,
|
|
5
|
-
import { i as
|
|
6
|
-
import { h as H, e as
|
|
7
|
-
import { aI as O, ab as
|
|
8
|
-
import "./matrix-operation-contract-
|
|
4
|
+
import { i as Ue, k as N, n as je, ad as Ee, c as Be, p as ze, a6 as He, a as Xe, b as V, Q as se, a1 as Ge, O as qe, a2 as We, a3 as Ye, P as ie, I as Ze, K as Je, S as Qe, a5 as et, aj as R } from "./temporal-input-presentation-DoSniQj1.js";
|
|
5
|
+
import { i as Se, m as J, l as Fe, n as tt, o as ke, a as le, d as rt, j as nt, q as L } from "./pivot-result-contract-expectations-DMk-mKhG.js";
|
|
6
|
+
import { h as H, e as ot, p as at, k as st } from "./export-file-format-C-tJsxsf.js";
|
|
7
|
+
import { aI as O, ab as it, t as B, aH as lt, v as Q, u as ct } from "./validators-hmfNNQz8.js";
|
|
8
|
+
import "./matrix-operation-contract-CpgLZ7E5.js";
|
|
9
9
|
import "./analytics-base-schemas-BUFUoO6G.js";
|
|
10
10
|
import "zod";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { c as dt, b as ce } from "./pivot-result-identity-CWi5WrrY.js";
|
|
15
|
-
import { v as ft } from "./raw-temporal-contract-CjHaUIsE.js";
|
|
16
|
-
import { g as pt } from "./zoned-wall-clock-MulfA26h.js";
|
|
11
|
+
import { PDF_SAFETY_LIMIT_EXCEEDED as Me, getUtf8ByteLength as ut, FAST_PDF_POLICY as mt } from "../pdf-export-policy/index.js";
|
|
12
|
+
import { c as dt, b as ce } from "./pivot-result-identity-CrQ54Xbj.js";
|
|
13
|
+
import { v as ft, g as pt } from "./zoned-wall-clock-E35Frf9v.js";
|
|
17
14
|
function yt(e, t, r) {
|
|
18
15
|
const n = {
|
|
19
16
|
...t,
|
|
@@ -45,7 +42,7 @@ function W(e, t, r) {
|
|
|
45
42
|
})
|
|
46
43
|
} : { value: e, text: yt(e, t, r) };
|
|
47
44
|
}
|
|
48
|
-
function
|
|
45
|
+
function ue(e, t, r, n) {
|
|
49
46
|
return e === null ? { value: e, text: null } : n === "percent" ? {
|
|
50
47
|
value: e,
|
|
51
48
|
text: N(e, {
|
|
@@ -66,13 +63,13 @@ function me(e, t, r, n) {
|
|
|
66
63
|
})
|
|
67
64
|
};
|
|
68
65
|
}
|
|
69
|
-
function
|
|
66
|
+
function me(e, t) {
|
|
70
67
|
if (e === void 0) return t;
|
|
71
68
|
if (!Number.isInteger(e) || e < 0 || e > 6)
|
|
72
69
|
throw new RangeError("Comparison precision must be an integer from 0 to 6.");
|
|
73
70
|
return e;
|
|
74
71
|
}
|
|
75
|
-
function
|
|
72
|
+
function wr(e, t) {
|
|
76
73
|
const r = {
|
|
77
74
|
mode: t.displayMode,
|
|
78
75
|
current: W(
|
|
@@ -90,22 +87,22 @@ function xr(e, t) {
|
|
|
90
87
|
e.delta,
|
|
91
88
|
t.metricFormat,
|
|
92
89
|
t.locale
|
|
93
|
-
)), (t.displayMode === "percent_change" || t.displayMode === "both") && (r.percentChange =
|
|
90
|
+
)), (t.displayMode === "percent_change" || t.displayMode === "both") && (r.percentChange = ue(
|
|
94
91
|
e.percentChange,
|
|
95
|
-
|
|
92
|
+
me(t.precision, 1),
|
|
96
93
|
t.locale,
|
|
97
94
|
"percent"
|
|
98
|
-
)), t.displayMode === "ratio" && (r.ratio =
|
|
95
|
+
)), t.displayMode === "ratio" && (r.ratio = ue(
|
|
99
96
|
e.ratio,
|
|
100
|
-
|
|
97
|
+
me(t.precision, 2),
|
|
101
98
|
t.locale,
|
|
102
99
|
"ratio"
|
|
103
100
|
)), r;
|
|
104
101
|
}
|
|
105
|
-
const
|
|
106
|
-
function
|
|
102
|
+
const bt = /* @__PURE__ */ new Set(["second", "minute", "hour", "day", "month"]);
|
|
103
|
+
function ht(e) {
|
|
107
104
|
const { presentation: t } = e;
|
|
108
|
-
return e.formattedValues ? (t == null ? void 0 : t.kind) === "text" || (t == null ? void 0 : t.kind) === "measure" && t.format.type === "duration" ? "text" : (t == null ? void 0 : t.kind) === "temporal_bucket" ?
|
|
105
|
+
return e.formattedValues ? (t == null ? void 0 : t.kind) === "text" || (t == null ? void 0 : t.kind) === "measure" && t.format.type === "duration" ? "text" : (t == null ? void 0 : t.kind) === "temporal_bucket" ? bt.has(t.grain) ? "date" : "text" : (t == null ? void 0 : t.kind) === "datetime" ? "date" : e.dataType === "number" ? "number" : e.dataType === "boolean" ? "boolean" : e.dataType === "unknown" ? "by_value" : "text" : "by_value";
|
|
109
106
|
}
|
|
110
107
|
function gt(e) {
|
|
111
108
|
const t = (o, l) => Number.isInteger(o) ? Math.min(20, Math.max(0, o)) : l, r = t(e.minimumFractionDigits, 0), n = Math.max(r, t(e.maximumFractionDigits, 2));
|
|
@@ -159,7 +156,7 @@ function Ct(e, t) {
|
|
|
159
156
|
}
|
|
160
157
|
}
|
|
161
158
|
function de(e) {
|
|
162
|
-
const t =
|
|
159
|
+
const t = ht(e), r = Ct(e, t);
|
|
163
160
|
return Object.freeze({
|
|
164
161
|
key: e.key,
|
|
165
162
|
label: e.label,
|
|
@@ -177,7 +174,7 @@ function fe(e) {
|
|
|
177
174
|
const n = Number(e);
|
|
178
175
|
return Number.isFinite(n) && (n !== 0 || r.length === 0);
|
|
179
176
|
}
|
|
180
|
-
const Et = Date.UTC(1900, 2, 1),
|
|
177
|
+
const Et = Date.UTC(1900, 2, 1), St = Date.UTC(1e4, 0, 1), Ft = Date.UTC(1899, 11, 30), kt = 864e5;
|
|
181
178
|
function Mt(e) {
|
|
182
179
|
const t = Date.UTC(
|
|
183
180
|
e.year,
|
|
@@ -187,8 +184,8 @@ function Mt(e) {
|
|
|
187
184
|
e.minute,
|
|
188
185
|
e.second
|
|
189
186
|
);
|
|
190
|
-
if (!(e.year < 1900 || !Number.isFinite(t)) && !(t < Et || t >=
|
|
191
|
-
return (t -
|
|
187
|
+
if (!(e.year < 1900 || !Number.isFinite(t)) && !(t < Et || t >= St))
|
|
188
|
+
return (t - Ft) / kt;
|
|
192
189
|
}
|
|
193
190
|
function pe(e, t, r) {
|
|
194
191
|
if (typeof e == "number")
|
|
@@ -219,21 +216,21 @@ function U(e) {
|
|
|
219
216
|
return typeof t == "boolean" ? { kind: "boolean", text: r, value: t } : pe(t, r, !1) ?? o;
|
|
220
217
|
}
|
|
221
218
|
}
|
|
222
|
-
function
|
|
219
|
+
function vr(e) {
|
|
223
220
|
return e.kind === "empty" ? "" : e.text;
|
|
224
221
|
}
|
|
225
|
-
const $e = 1e4, It = 1e6,
|
|
226
|
-
function
|
|
222
|
+
const $e = 1e4, It = 1e6, Cr = 5e6, xr = 1024 ** 3, Tr = 1024 ** 3;
|
|
223
|
+
function Er(e) {
|
|
227
224
|
return e > $e;
|
|
228
225
|
}
|
|
229
|
-
function
|
|
226
|
+
function Sr(e) {
|
|
230
227
|
return e.cardType === "matrixTable" ? "try-direct" : e.loadedRowCount === null || e.loadedRowCount <= $e ? "direct" : e.loadedRowCount <= It ? "background" : "blocked";
|
|
231
228
|
}
|
|
232
|
-
const
|
|
229
|
+
const Fr = {
|
|
233
230
|
rowLabels: "tabular",
|
|
234
231
|
subtotals: "after"
|
|
235
232
|
};
|
|
236
|
-
function
|
|
233
|
+
function kr(e, t) {
|
|
237
234
|
const r = t.rowLabels === "outline" ? { kind: "compact" } : e.layout.kind === "tabular" ? e.layout : { kind: "tabular", repeatLabels: !1 }, n = e.totals.rows;
|
|
238
235
|
return {
|
|
239
236
|
...e,
|
|
@@ -258,7 +255,7 @@ function Lt(e) {
|
|
|
258
255
|
}
|
|
259
256
|
function Pt(e, t, r) {
|
|
260
257
|
const n = e.descriptors.measures.filter(
|
|
261
|
-
(s) => r.measureFormats[s.id] === void 0 && s.semanticFormat === void 0 &&
|
|
258
|
+
(s) => r.measureFormats[s.id] === void 0 && s.semanticFormat === void 0 && it(s.column.dataType) === "number"
|
|
262
259
|
);
|
|
263
260
|
if (n.length === 0) return r;
|
|
264
261
|
const o = /* @__PURE__ */ new Set();
|
|
@@ -305,41 +302,41 @@ function Le(e, t, r) {
|
|
|
305
302
|
return !(r != null && r.hasTextAffixes) && t.kind === "value" && (typeof t.value == "number" || O(t.value)) ? e : H(e);
|
|
306
303
|
}
|
|
307
304
|
function Rt(e, t, r) {
|
|
308
|
-
const n =
|
|
305
|
+
const n = Se(e.descriptors, t.presentation, r), o = e.columns.map((u) => {
|
|
309
306
|
var a;
|
|
310
|
-
return
|
|
311
|
-
}), l = (
|
|
312
|
-
if (
|
|
313
|
-
const a =
|
|
314
|
-
return
|
|
307
|
+
return u.kind === "measure" && ((a = n.measureSemantics.get(u.measureId)) == null ? void 0 : a.isNumeric) === !0;
|
|
308
|
+
}), l = (u) => J([u], n.levels), s = (u, a, m) => Fe(u, a, t.presentation.totals[m], n.levels), c = e.columns.map((u) => {
|
|
309
|
+
if (u.kind !== "measure") return u.label;
|
|
310
|
+
const a = u.columnPath.map(l);
|
|
311
|
+
return u.role !== "member" && a.push(s(u.columnPath, u.role, "columns")), [...a, u.label].join(" / ");
|
|
315
312
|
}), f = Math.min(t.spec.columns.length, Math.max(
|
|
316
313
|
0,
|
|
317
|
-
...e.columns.map((
|
|
318
|
-
)), d = Array.from({ length: f + 1 }, (
|
|
319
|
-
path:
|
|
320
|
-
role:
|
|
314
|
+
...e.columns.map((u) => u.kind === "measure" ? u.columnPath.length + (u.role !== "member" ? 1 : 0) : 0)
|
|
315
|
+
)), d = Array.from({ length: f + 1 }, (u, a) => e.columns.map((m) => a === f ? m.label : m.kind !== "measure" ? "" : a < m.columnPath.length ? l(m.columnPath[a]) : a === m.columnPath.length && m.role !== "member" ? s(m.columnPath, m.role, "columns") : "")), h = (u, a) => tt({
|
|
316
|
+
path: u.rowPath,
|
|
317
|
+
role: u.kind === "layout" ? u.role : "member",
|
|
321
318
|
levelCount: Math.max(1, t.spec.rows.length),
|
|
322
319
|
repeatLabels: t.presentation.layout.kind !== "tabular" || t.presentation.layout.repeatLabels,
|
|
323
320
|
previousPath: a == null ? void 0 : a.rowPath
|
|
324
|
-
}), w = (
|
|
325
|
-
if (
|
|
326
|
-
if (
|
|
327
|
-
const
|
|
328
|
-
return e.columns.map((
|
|
329
|
-
if (
|
|
330
|
-
return `${" ".repeat(Math.max(0,
|
|
331
|
-
if (
|
|
332
|
-
const v = t.spec.rows.findIndex((
|
|
333
|
-
return C != null && C.visible ? C.total ? s(
|
|
321
|
+
}), w = (u, a) => {
|
|
322
|
+
if (u.kind !== "layout") throw new Error("Layout presentation requires layout rows.");
|
|
323
|
+
if (u.values.length !== e.columns.length) throw new Error("Matrix row does not match its frozen layout.");
|
|
324
|
+
const m = h(u, a);
|
|
325
|
+
return e.columns.map((b, p) => {
|
|
326
|
+
if (b.kind === "hierarchy")
|
|
327
|
+
return `${" ".repeat(Math.max(0, u.rowPath.length - 1))}${s(u.rowPath, u.role, "rows")}`;
|
|
328
|
+
if (b.kind === "level") {
|
|
329
|
+
const v = t.spec.rows.findIndex((F) => F.id === b.levelId), C = m[v];
|
|
330
|
+
return C != null && C.visible ? C.total ? s(u.rowPath, u.role, "rows") : J(C.path, n.levels) : "";
|
|
334
331
|
}
|
|
335
|
-
const T =
|
|
332
|
+
const T = u.values[p], g = n.measures.get(b.measureId);
|
|
336
333
|
if (T.kind === "value" && !g)
|
|
337
334
|
throw new Error("Matrix value is missing its measure descriptor.");
|
|
338
|
-
return
|
|
335
|
+
return ke(T, g, t.presentation.absence);
|
|
339
336
|
});
|
|
340
|
-
}, x = (
|
|
341
|
-
const p = e.columns[
|
|
342
|
-
return p.kind === "measure" ? Le(
|
|
337
|
+
}, x = (u, a) => w(u, a).map((m, b) => {
|
|
338
|
+
const p = e.columns[b];
|
|
339
|
+
return p.kind === "measure" ? Le(m, u.values[b], n.measureSemantics.get(p.measureId)) : H(m);
|
|
343
340
|
});
|
|
344
341
|
return {
|
|
345
342
|
headers: c,
|
|
@@ -348,25 +345,25 @@ function Rt(e, t, r) {
|
|
|
348
345
|
/** The card's prepared formats this presentation formats with (the Excel form reads its measure formats). */
|
|
349
346
|
formatting: n,
|
|
350
347
|
/** A row's cells; after `previous`, a tabular layout prints each label once. */
|
|
351
|
-
row: (
|
|
348
|
+
row: (u, a) => w(u, a),
|
|
352
349
|
/**
|
|
353
350
|
* Level columns whose group label the row above shows, so this row
|
|
354
351
|
* continues the group (Plan 2, 2d, C8). Only a member row after a member
|
|
355
352
|
* row continues one: a total prints as a band, and its rules stay whole
|
|
356
353
|
* above and below it.
|
|
357
354
|
*/
|
|
358
|
-
continuedColumns: (
|
|
359
|
-
const
|
|
360
|
-
if (!u
|
|
361
|
-
const
|
|
355
|
+
continuedColumns: (u, a) => {
|
|
356
|
+
const m = (p) => (p == null ? void 0 : p.kind) === "layout" && p.role === "member";
|
|
357
|
+
if (!m(u) || !m(a)) return [];
|
|
358
|
+
const b = h(u, a);
|
|
362
359
|
return e.columns.flatMap((p, T) => {
|
|
363
360
|
var v;
|
|
364
361
|
if (p.kind !== "level") return [];
|
|
365
362
|
const g = t.spec.rows.findIndex((C) => C.id === p.levelId);
|
|
366
|
-
return g <
|
|
363
|
+
return g < u.rowPath.length && ((v = b[g]) == null ? void 0 : v.visible) === !1 ? [T] : [];
|
|
367
364
|
});
|
|
368
365
|
},
|
|
369
|
-
csvRow: (
|
|
366
|
+
csvRow: (u) => x(u),
|
|
370
367
|
/**
|
|
371
368
|
* `previousRow` is the row before `data[0]`, carried by the export's
|
|
372
369
|
* continuation, so a tabular layout prints each label once across the
|
|
@@ -374,13 +371,13 @@ function Rt(e, t, r) {
|
|
|
374
371
|
* formatter state or an earlier worker. Without it, the first row prints
|
|
375
372
|
* its labels.
|
|
376
373
|
*/
|
|
377
|
-
csvRows: (
|
|
374
|
+
csvRows: (u, a) => u.map((m, b) => x(m, b ? u[b - 1] : a ?? void 0))
|
|
378
375
|
};
|
|
379
376
|
}
|
|
380
|
-
function
|
|
377
|
+
function Mr(e) {
|
|
381
378
|
return e.columns.map((t) => H(t.label));
|
|
382
379
|
}
|
|
383
|
-
function
|
|
380
|
+
function Ir(e, t, r) {
|
|
384
381
|
return Nt(e, t, r).map((n, o) => {
|
|
385
382
|
const l = t.columns[o];
|
|
386
383
|
return l.kind === "measure" ? Le(n, e.values[o], r.measureSemantics.get(l.measureId)) : H(n);
|
|
@@ -394,7 +391,7 @@ function Nt(e, t, r) {
|
|
|
394
391
|
if (o.kind === "measure") {
|
|
395
392
|
const c = e.values[l], f = r.measures.get(o.measureId);
|
|
396
393
|
if (c.kind === "value" && !f) throw new Error("Matrix value is missing its measure descriptor.");
|
|
397
|
-
return
|
|
394
|
+
return ke(c, f, r.absence);
|
|
398
395
|
}
|
|
399
396
|
const s = o.kind === "level" ? n.find((c) => c.levelId === o.levelId) : void 0;
|
|
400
397
|
if (!s) throw new Error("Flat Matrix row does not match its frozen layout.");
|
|
@@ -423,7 +420,7 @@ function Ot(e) {
|
|
|
423
420
|
cells: [
|
|
424
421
|
...l ? [{ ...n("", 0, !0), colspan: l }] : [],
|
|
425
422
|
{
|
|
426
|
-
...n(e.request.spec.columns.map((s) =>
|
|
423
|
+
...n(e.request.spec.columns.map((s) => Ee(s, e.request.presentation)).join(" / "), l, !0),
|
|
427
424
|
colspan: e.layout.columns.length - l,
|
|
428
425
|
isNumeric: !1,
|
|
429
426
|
className: ""
|
|
@@ -447,7 +444,7 @@ function Ot(e) {
|
|
|
447
444
|
subtotalLevel: String(s.rowPath.length),
|
|
448
445
|
// A tabular layout prints each label once unless it repeats them; the
|
|
449
446
|
// blank cell continues its group, so a grid draws no rule above it.
|
|
450
|
-
cells: t.row(s, e.rows[c - 1]).map((d,
|
|
447
|
+
cells: t.row(s, e.rows[c - 1]).map((d, h) => f.has(h) ? { ...n(d, h, !1), className: At } : n(d, h, !1))
|
|
451
448
|
};
|
|
452
449
|
}),
|
|
453
450
|
grandTotal: null,
|
|
@@ -465,9 +462,9 @@ function Ot(e) {
|
|
|
465
462
|
};
|
|
466
463
|
}
|
|
467
464
|
function Kt(e, t, r) {
|
|
468
|
-
const { levels: n } =
|
|
465
|
+
const { levels: n } = Se(e.descriptors, t.presentation, r), o = t.spec.columns.length > 0, l = [], s = [], c = e.columns.map((d, h) => {
|
|
469
466
|
if (d.kind !== "measure") return null;
|
|
470
|
-
const w = o ? `${d.role}:${B(d.columnPath)}` : `measure:${
|
|
467
|
+
const w = o ? `${d.role}:${B(d.columnPath)}` : `measure:${h}`;
|
|
471
468
|
let x = l.indexOf(w);
|
|
472
469
|
return x < 0 && (x = l.push(w) - 1, s.push(o ? Fe(d.columnPath, d.role, t.presentation.totals.columns, n) : d.label)), x;
|
|
473
470
|
}), f = t.spec.columns[t.spec.columns.length - 1];
|
|
@@ -475,16 +472,16 @@ function Kt(e, t, r) {
|
|
|
475
472
|
columnGroups: c,
|
|
476
473
|
groupLabels: s,
|
|
477
474
|
/** What bands name their groups by: the innermost column level, or "Measures". */
|
|
478
|
-
groupLevelLabel: f ?
|
|
475
|
+
groupLevelLabel: f ? Ee(f, t.presentation) : "Measures"
|
|
479
476
|
};
|
|
480
477
|
}
|
|
481
|
-
function
|
|
478
|
+
function $r(e) {
|
|
482
479
|
const { layout: t, rows: r, report: n } = e, o = {
|
|
483
480
|
...e.request,
|
|
484
481
|
presentation: Pt(t, r, e.request.presentation)
|
|
485
482
|
}, l = Ot({ layout: t, rows: r, request: o, report: n }), s = _t(r), c = Kt(t, o, n), f = {
|
|
486
483
|
...l,
|
|
487
|
-
rows: l.rows.map((d,
|
|
484
|
+
rows: l.rows.map((d, h) => ({ ...d, keepWithPrevious: s[h] })),
|
|
488
485
|
metadata: { ...l.metadata, ...c }
|
|
489
486
|
};
|
|
490
487
|
return { request: o, table: f, ...c };
|
|
@@ -526,9 +523,9 @@ async function Ut(e) {
|
|
|
526
523
|
return { message: t };
|
|
527
524
|
}
|
|
528
525
|
}
|
|
529
|
-
async function
|
|
526
|
+
async function Lr(e) {
|
|
530
527
|
if (!e.token) throw new Error("Missing auth token for PDF export");
|
|
531
|
-
if (
|
|
528
|
+
if (ut(e.serializedPayload) > mt.maxRequestBytes)
|
|
532
529
|
throw new Error("Fast-path PDF request exceeds the structured body limit");
|
|
533
530
|
const t = await (e.fetchImpl ?? fetch)(e.url, {
|
|
534
531
|
method: "POST",
|
|
@@ -560,7 +557,7 @@ function De(e) {
|
|
|
560
557
|
const t = e == null ? void 0 : e.sql, r = e == null ? void 0 : e.python;
|
|
561
558
|
return (e == null ? void 0 : e.resultOwner) === "freeform" && typeof t == "string" && !!t.trim() && (typeof r != "string" || !r.trim());
|
|
562
559
|
}
|
|
563
|
-
function
|
|
560
|
+
function Pr(e) {
|
|
564
561
|
return e.formatting.useFormattedValues !== !1 && De(e.queryPayload) && Pe(e.formatting).size > 0;
|
|
565
562
|
}
|
|
566
563
|
function Bt(e, t) {
|
|
@@ -590,9 +587,9 @@ function zt(e) {
|
|
|
590
587
|
), l = De(e.queryPayload), s = /* @__PURE__ */ new Map();
|
|
591
588
|
for (const [c, f] of t) {
|
|
592
589
|
const d = o.get(c);
|
|
593
|
-
let
|
|
590
|
+
let h;
|
|
594
591
|
if (d != null && d.rawTemporal)
|
|
595
|
-
|
|
592
|
+
h = ft(d, {
|
|
596
593
|
metadataRequired: !0
|
|
597
594
|
}), r.add(c);
|
|
598
595
|
else if (l) {
|
|
@@ -601,13 +598,13 @@ function zt(e) {
|
|
|
601
598
|
columnKey: c,
|
|
602
599
|
values: Bt(e.records, c)
|
|
603
600
|
});
|
|
604
|
-
s.set(c, w), w.status === "classified" && (
|
|
601
|
+
s.set(c, w), w.status === "classified" && (h = w.metadata);
|
|
605
602
|
} else
|
|
606
603
|
continue;
|
|
607
|
-
|
|
608
|
-
metadata:
|
|
604
|
+
h && n.set(c, {
|
|
605
|
+
metadata: h,
|
|
609
606
|
format: f,
|
|
610
|
-
formatValue: ze({ metadata:
|
|
607
|
+
formatValue: ze({ metadata: h, format: f })
|
|
611
608
|
});
|
|
612
609
|
}
|
|
613
610
|
return {
|
|
@@ -633,7 +630,7 @@ function Ht(e) {
|
|
|
633
630
|
const r = t.formatValue(e.value);
|
|
634
631
|
return r.ok && r.wallClock ? { text: r.text, wallClock: r.wallClock } : { text: r.text };
|
|
635
632
|
}
|
|
636
|
-
function
|
|
633
|
+
function be(e, t) {
|
|
637
634
|
const r = e.byColumnKey.get(t);
|
|
638
635
|
return r ? r.metadata.valueKind === "date" : void 0;
|
|
639
636
|
}
|
|
@@ -644,7 +641,7 @@ function z(e) {
|
|
|
644
641
|
function A(e) {
|
|
645
642
|
return e.key || e.field || void 0;
|
|
646
643
|
}
|
|
647
|
-
function
|
|
644
|
+
function he(e) {
|
|
648
645
|
return e == null ? "" : typeof e == "string" ? e : O(e) ? e.value : e instanceof Date ? e.toISOString() : typeof e == "object" ? JSON.stringify(e) : String(e);
|
|
649
646
|
}
|
|
650
647
|
function ge(e, t) {
|
|
@@ -672,7 +669,7 @@ function Zt(e) {
|
|
|
672
669
|
const t = Ie(e);
|
|
673
670
|
if (t !== void 0)
|
|
674
671
|
try {
|
|
675
|
-
return
|
|
672
|
+
return lt(t, /[.eE]/.test(t) ? "decimal" : "integer");
|
|
676
673
|
} catch {
|
|
677
674
|
return;
|
|
678
675
|
}
|
|
@@ -680,60 +677,60 @@ function Zt(e) {
|
|
|
680
677
|
function Jt(e) {
|
|
681
678
|
return e.calendar.fiscalCalendar && (e.granularity === "quarter" || e.granularity === "year") ? "fiscal" : e.granularity;
|
|
682
679
|
}
|
|
683
|
-
function
|
|
684
|
-
const { formatting: t, queryPayload: r } = e, n = t.useFormattedValues, o = t.scope, l = (a) =>
|
|
680
|
+
function Dr(e) {
|
|
681
|
+
const { formatting: t, queryPayload: r } = e, n = t.useFormattedValues, o = t.scope, l = (a) => Xe({ snapshot: t.presentationExecutionSnapshot, scope: o, target: { kind: "column", columnKey: a } }), s = (a) => qe({ snapshot: t.presentationExecutionSnapshot, scope: o, target: { kind: "column", columnKey: a } });
|
|
685
682
|
function c(a) {
|
|
686
|
-
var
|
|
687
|
-
if ((
|
|
688
|
-
const
|
|
689
|
-
return
|
|
683
|
+
var b;
|
|
684
|
+
if ((b = t.visibleColumns) != null && b.length) return t.visibleColumns;
|
|
685
|
+
const m = a.columns.map(A).filter((p) => !!p);
|
|
686
|
+
return m.length > 0 ? m : a.records[0] ? Object.keys(a.records[0]) : [];
|
|
690
687
|
}
|
|
691
|
-
function f(a,
|
|
692
|
-
return t.columnLabels && Object.prototype.hasOwnProperty.call(t.columnLabels, a) && t.columnLabels[a] || void 0 || d(
|
|
688
|
+
function f(a, m) {
|
|
689
|
+
return t.columnLabels && Object.prototype.hasOwnProperty.call(t.columnLabels, a) && t.columnLabels[a] || void 0 || d(m) || (m == null ? void 0 : m.label) || (m == null ? void 0 : m.headerName) || a;
|
|
693
690
|
}
|
|
694
|
-
function d(a,
|
|
695
|
-
const
|
|
696
|
-
if (!
|
|
697
|
-
const p = ce({ identity:
|
|
698
|
-
return
|
|
691
|
+
function d(a, m) {
|
|
692
|
+
const b = a == null ? void 0 : a.pivotIdentity;
|
|
693
|
+
if (!b || !b.members || b.members.length === 0) return;
|
|
694
|
+
const p = ce({ identity: b, columnKey: (a == null ? void 0 : a.key) || (a == null ? void 0 : a.field) || "" });
|
|
695
|
+
return nt({
|
|
699
696
|
members: p,
|
|
700
697
|
metricLabel: (a == null ? void 0 : a.label) || (a == null ? void 0 : a.headerName),
|
|
701
698
|
mode: n ? "formatted" : "canonical",
|
|
702
699
|
resolveTemporalFormat: (T) => {
|
|
703
700
|
const g = p.find((C) => C.fieldId === T);
|
|
704
701
|
if (!(g != null && g.temporalBucket)) return;
|
|
705
|
-
const v =
|
|
702
|
+
const v = se({
|
|
706
703
|
snapshot: t.presentationExecutionSnapshot,
|
|
707
704
|
scope: o,
|
|
708
705
|
target: { kind: "field", fieldId: T, role: "pivotby" }
|
|
709
706
|
});
|
|
710
|
-
return v ?
|
|
707
|
+
return v ? h(g.temporalBucket, v) : void 0;
|
|
711
708
|
}
|
|
712
709
|
}).flattenedLabel;
|
|
713
710
|
}
|
|
714
|
-
function
|
|
715
|
-
return
|
|
711
|
+
function h(a, m) {
|
|
712
|
+
return Ge({
|
|
716
713
|
metadata: a,
|
|
717
|
-
cardFormat:
|
|
718
|
-
locale:
|
|
719
|
-
...
|
|
714
|
+
cardFormat: m,
|
|
715
|
+
locale: m.locale,
|
|
716
|
+
...m.presentation.mode === "auto" ? { styles: m.presentation.styles } : {}
|
|
720
717
|
}).format;
|
|
721
718
|
}
|
|
722
|
-
function w(a,
|
|
723
|
-
const { records:
|
|
719
|
+
function w(a, m) {
|
|
720
|
+
const { records: b, columns: p } = a, T = z(r.cardConfig) ? r.cardConfig : void 0, g = T == null ? void 0 : T.pivotByColumns, v = Array.isArray(g) ? g.flatMap(
|
|
724
721
|
(i) => z(i) && typeof i.id == "string" && i.id ? [i.id] : []
|
|
725
722
|
) : [];
|
|
726
723
|
dt(
|
|
727
724
|
p.map((i) => ({ key: A(i) || "<unknown>", pivotIdentity: i.pivotIdentity })),
|
|
728
725
|
{ expectedPivotFieldIds: v }
|
|
729
726
|
);
|
|
730
|
-
const C = c(a),
|
|
727
|
+
const C = c(a), F = new Map(
|
|
731
728
|
p.flatMap((i) => {
|
|
732
729
|
const y = A(i);
|
|
733
730
|
return y ? [[y, i]] : [];
|
|
734
731
|
})
|
|
735
732
|
), Re = new Map(a.resultColumns.map((i) => [i.key, i.dataType])), I = zt({
|
|
736
|
-
records:
|
|
733
|
+
records: b,
|
|
737
734
|
columns: p,
|
|
738
735
|
formatting: t,
|
|
739
736
|
queryPayload: r
|
|
@@ -744,7 +741,7 @@ function Rr(e) {
|
|
|
744
741
|
})
|
|
745
742
|
), te = /* @__PURE__ */ new Map();
|
|
746
743
|
for (const i of C) {
|
|
747
|
-
const y =
|
|
744
|
+
const y = se({
|
|
748
745
|
snapshot: t.presentationExecutionSnapshot,
|
|
749
746
|
scope: o,
|
|
750
747
|
target: { kind: "column", columnKey: i }
|
|
@@ -753,21 +750,21 @@ function Rr(e) {
|
|
|
753
750
|
if (y && !E) throw new Error(`Missing temporal bucket metadata for column "${i}"`);
|
|
754
751
|
if (E && !y) throw new Error(`Missing resolved temporal presentation for column "${i}"`);
|
|
755
752
|
}
|
|
756
|
-
y && E && te.set(i,
|
|
753
|
+
y && E && te.set(i, h(E, y));
|
|
757
754
|
}
|
|
758
755
|
const G = C.map((i) => {
|
|
759
|
-
const y = Re.get(i), E = y && Xt.has(y) ? y : "unknown",
|
|
756
|
+
const y = Re.get(i), E = y && Xt.has(y) ? y : "unknown", S = n ? x(i, I, X) : void 0, M = f(i, F.get(i)), P = n && I.activatedColumnKeys.has(i) && be(I, i) === void 0;
|
|
760
757
|
return {
|
|
761
758
|
key: i,
|
|
762
759
|
label: M,
|
|
763
760
|
dataType: E,
|
|
764
|
-
...
|
|
765
|
-
xlsx: de({ key: i, label: M, formattedValues: n, dataType: E, presentation:
|
|
761
|
+
...S ? { presentation: S } : {},
|
|
762
|
+
xlsx: de({ key: i, label: M, formattedValues: n, dataType: E, presentation: S }),
|
|
766
763
|
...P ? { xlsxPending: !0 } : {}
|
|
767
764
|
};
|
|
768
765
|
});
|
|
769
|
-
function Ne(i, y, E,
|
|
770
|
-
if (!n) return { text:
|
|
766
|
+
function Ne(i, y, E, S) {
|
|
767
|
+
if (!n) return { text: he(i), value: i };
|
|
771
768
|
const M = Ht({ value: i, columnKey: y, rowIndex: E, resolution: I });
|
|
772
769
|
if (M !== void 0) return { text: M.text, value: i, ...M.wallClock ? { wallClock: M.wallClock } : {} };
|
|
773
770
|
const P = X.get(y);
|
|
@@ -776,9 +773,9 @@ function Rr(e) {
|
|
|
776
773
|
if (!k) throw new Error(`Missing resolved temporal presentation for column "${y}"`);
|
|
777
774
|
if (i != null && typeof i != "string")
|
|
778
775
|
throw new Error(`Canonical temporal column "${y}" must contain a string or null`);
|
|
779
|
-
const D = i ?? null, _ =
|
|
776
|
+
const D = i ?? null, _ = We(D, P);
|
|
780
777
|
return {
|
|
781
|
-
text:
|
|
778
|
+
text: Ye({ value: D, metadata: P, format: k }),
|
|
782
779
|
value: i,
|
|
783
780
|
..._ ? { wallClock: _ } : {}
|
|
784
781
|
};
|
|
@@ -787,7 +784,7 @@ function Rr(e) {
|
|
|
787
784
|
const q = s(y);
|
|
788
785
|
if (q && typeof i == "number" && Number.isFinite(i))
|
|
789
786
|
return {
|
|
790
|
-
text:
|
|
787
|
+
text: le(
|
|
791
788
|
new Date(i).toISOString(),
|
|
792
789
|
q.pattern || _e,
|
|
793
790
|
ve(q.timezone, t.timezone),
|
|
@@ -802,28 +799,28 @@ function Rr(e) {
|
|
|
802
799
|
return { text: $ ? V(i, $) : i.value, value: i };
|
|
803
800
|
const K = ge(t, y);
|
|
804
801
|
if (K && (i instanceof Date || typeof i == "string" && Gt.test(i))) {
|
|
805
|
-
const k = i instanceof Date ? i.toISOString() : i, D = typeof i == "string" && qt.test(i), _ = D ? "UTC" : ve(K.timezone, t.timezone), ne = D ? "UTC" : K.sourceTimezone || "auto", oe =
|
|
802
|
+
const k = i instanceof Date ? i.toISOString() : i, D = typeof i == "string" && qt.test(i), _ = D ? "UTC" : ve(K.timezone, t.timezone), ne = D ? "UTC" : K.sourceTimezone || "auto", oe = rt(k, _, ne);
|
|
806
803
|
return {
|
|
807
|
-
text:
|
|
804
|
+
text: le(k, we(K), _, ne),
|
|
808
805
|
value: i,
|
|
809
806
|
...oe ? { wallClock: oe } : {}
|
|
810
807
|
};
|
|
811
808
|
}
|
|
812
|
-
if (typeof i == "string" && $ &&
|
|
809
|
+
if (typeof i == "string" && $ && S.dataType === "number") {
|
|
813
810
|
const k = Zt(i);
|
|
814
811
|
if (k) return { text: V(k, $), value: i };
|
|
815
812
|
}
|
|
816
|
-
return { text:
|
|
813
|
+
return { text: he(i), value: i };
|
|
817
814
|
}
|
|
818
|
-
const Oe =
|
|
815
|
+
const Oe = b.map(
|
|
819
816
|
(i, y) => G.map((E) => {
|
|
820
|
-
const
|
|
821
|
-
return U({ value:
|
|
817
|
+
const S = Ne(i[E.key], E.key, y, E);
|
|
818
|
+
return U({ value: S.value, text: S.text, column: E.xlsx, wallClock: S.wallClock });
|
|
822
819
|
})
|
|
823
|
-
), re = (
|
|
820
|
+
), re = (m == null ? void 0 : m.withHeader) !== !1 && t.includeHeaders;
|
|
824
821
|
if (re)
|
|
825
822
|
for (const i of C) {
|
|
826
|
-
const y =
|
|
823
|
+
const y = F.get(i);
|
|
827
824
|
y != null && y.pivotIdentity && ce({ identity: y.pivotIdentity, columnKey: A(y) || i });
|
|
828
825
|
}
|
|
829
826
|
return {
|
|
@@ -833,12 +830,12 @@ function Rr(e) {
|
|
|
833
830
|
...I.sqlChunkEvidence ? { rawTemporalClassification: I.sqlChunkEvidence } : {}
|
|
834
831
|
};
|
|
835
832
|
}
|
|
836
|
-
function x(a,
|
|
837
|
-
if (
|
|
838
|
-
const v =
|
|
833
|
+
function x(a, m, b) {
|
|
834
|
+
if (m.activatedColumnKeys.has(a)) {
|
|
835
|
+
const v = be(m, a);
|
|
839
836
|
return v === void 0 ? { kind: "text" } : { kind: "datetime", dateOnly: v };
|
|
840
837
|
}
|
|
841
|
-
const p =
|
|
838
|
+
const p = b.get(a);
|
|
842
839
|
if (p) return { kind: "temporal_bucket", grain: Jt(p) };
|
|
843
840
|
if (s(a)) return { kind: "text" };
|
|
844
841
|
const T = ge(t, a);
|
|
@@ -846,10 +843,10 @@ function Rr(e) {
|
|
|
846
843
|
const g = l(a);
|
|
847
844
|
return g ? { kind: "measure", format: g } : void 0;
|
|
848
845
|
}
|
|
849
|
-
function
|
|
850
|
-
if (!Number.isInteger(
|
|
846
|
+
function u(a, m) {
|
|
847
|
+
if (!Number.isInteger(m) || m < 0)
|
|
851
848
|
throw new Error("totalRows must be a non-negative integer");
|
|
852
|
-
return
|
|
849
|
+
return m === 0 ? void 0 : (t.visibleColumns ?? Object.keys(a)).map((p) => {
|
|
853
850
|
const g = Object.prototype.hasOwnProperty.call(a, p) ? a[p] : p === t.tableTotalsLabelColumnKey ? "Total" : null, v = n ? l(p) : void 0, C = de({
|
|
854
851
|
key: p,
|
|
855
852
|
label: p,
|
|
@@ -859,11 +856,11 @@ function Rr(e) {
|
|
|
859
856
|
});
|
|
860
857
|
if (g == null) return { kind: "empty" };
|
|
861
858
|
if (!n) return U({ value: g, text: String(g), column: C });
|
|
862
|
-
const
|
|
863
|
-
return U(v &&
|
|
859
|
+
const F = v ? Yt(g) : null;
|
|
860
|
+
return U(v && F !== null ? { value: F, text: V(F, v), column: C } : { value: g, text: String(g), column: C });
|
|
864
861
|
});
|
|
865
862
|
}
|
|
866
|
-
return { format: w, totals:
|
|
863
|
+
return { format: w, totals: u };
|
|
867
864
|
}
|
|
868
865
|
const Qt = /* @__PURE__ */ new Set([
|
|
869
866
|
"scope",
|
|
@@ -890,14 +887,14 @@ function Ce(e, t) {
|
|
|
890
887
|
return e;
|
|
891
888
|
}
|
|
892
889
|
}
|
|
893
|
-
function
|
|
890
|
+
function _r(e) {
|
|
894
891
|
if (!ee(e))
|
|
895
892
|
throw new Error("formatting must be an object");
|
|
896
893
|
const t = ["reportContext", "resolvedFormats"].find(
|
|
897
894
|
(a) => Object.prototype.hasOwnProperty.call(e, a)
|
|
898
895
|
);
|
|
899
896
|
if (t)
|
|
900
|
-
throw new
|
|
897
|
+
throw new ie(
|
|
901
898
|
`formatting.${t} is retired; formatting.presentationExecutionSnapshot is authoritative.`
|
|
902
899
|
);
|
|
903
900
|
const r = Object.keys(e).find((a) => !Qt.has(a));
|
|
@@ -906,17 +903,17 @@ function Nr(e) {
|
|
|
906
903
|
const n = typeof e.timezone == "string" ? e.timezone.trim() : "";
|
|
907
904
|
if (!n)
|
|
908
905
|
throw new Error("formatting.timezone must be a non-empty string");
|
|
909
|
-
const o =
|
|
906
|
+
const o = ot(e.delimiter);
|
|
910
907
|
if (!o)
|
|
911
908
|
throw new Error("formatting.delimiter must be a comma, semicolon or tab");
|
|
912
|
-
const l =
|
|
909
|
+
const l = at(e.csvEncoding);
|
|
913
910
|
if (!l)
|
|
914
911
|
throw new Error("formatting.csvEncoding must be 'utf-8-bom' or 'utf-8'");
|
|
915
912
|
if (typeof e.includeHeaders != "boolean")
|
|
916
913
|
throw new Error("formatting.includeHeaders must be a boolean");
|
|
917
914
|
if (e.useFormattedValues !== void 0 && typeof e.useFormattedValues != "boolean")
|
|
918
915
|
throw new Error("formatting.useFormattedValues must be a boolean");
|
|
919
|
-
const s = e.fileFormat === void 0 ? void 0 :
|
|
916
|
+
const s = e.fileFormat === void 0 ? void 0 : st(e.fileFormat);
|
|
920
917
|
if (e.fileFormat !== void 0 && !s)
|
|
921
918
|
throw new Error("formatting.fileFormat must be 'csv' or 'xlsx'");
|
|
922
919
|
if (e.title !== void 0 && typeof e.title != "string")
|
|
@@ -927,28 +924,28 @@ function Nr(e) {
|
|
|
927
924
|
const f = Ce(e.columnLabels, "columnLabels");
|
|
928
925
|
if (f && Object.values(f).some((a) => typeof a != "string"))
|
|
929
926
|
throw new Error("formatting.columnLabels values must be strings");
|
|
930
|
-
const d = Ce(e.columnSettings, "columnSettings"),
|
|
931
|
-
if (
|
|
927
|
+
const d = Ce(e.columnSettings, "columnSettings"), h = e.tableTotalsLabelColumnKey === void 0 ? void 0 : typeof e.tableTotalsLabelColumnKey == "string" && e.tableTotalsLabelColumnKey.trim() ? e.tableTotalsLabelColumnKey : null;
|
|
928
|
+
if (h === null)
|
|
932
929
|
throw new Error("formatting.tableTotalsLabelColumnKey must be a non-empty string");
|
|
933
|
-
if (
|
|
930
|
+
if (h && !(c != null && c.includes(h)))
|
|
934
931
|
throw new Error("formatting.tableTotalsLabelColumnKey must identify a visible column");
|
|
935
|
-
const w =
|
|
932
|
+
const w = Ze(e.scope, "formatting.scope");
|
|
936
933
|
if (!w.cardId || w.attachmentIndex !== void 0)
|
|
937
934
|
throw new Error("formatting.scope must identify exactly one dashboard card");
|
|
938
|
-
const x = e.useFormattedValues !== !1,
|
|
939
|
-
if (n !==
|
|
935
|
+
const x = e.useFormattedValues !== !1, u = Je(e.presentationExecutionSnapshot);
|
|
936
|
+
if (n !== u.reportContext.calendar.tz)
|
|
940
937
|
throw new Error(
|
|
941
938
|
"formatting.timezone must equal presentationExecutionSnapshot.reportContext.calendar.tz"
|
|
942
939
|
);
|
|
943
940
|
try {
|
|
944
|
-
|
|
945
|
-
snapshot:
|
|
941
|
+
Qe({
|
|
942
|
+
snapshot: u,
|
|
946
943
|
expectedScope: { dashboardId: w.dashboardId, cardId: w.cardId },
|
|
947
944
|
visibleColumns: c,
|
|
948
945
|
useFormattedValues: x
|
|
949
946
|
});
|
|
950
947
|
} catch (a) {
|
|
951
|
-
throw new
|
|
948
|
+
throw new ie(
|
|
952
949
|
`formatting.presentationExecutionSnapshot.${a instanceof Error ? a.message : String(a)}`
|
|
953
950
|
);
|
|
954
951
|
}
|
|
@@ -956,19 +953,19 @@ function Nr(e) {
|
|
|
956
953
|
scope: { dashboardId: w.dashboardId, cardId: w.cardId },
|
|
957
954
|
useFormattedValues: x,
|
|
958
955
|
timezone: n,
|
|
959
|
-
presentationExecutionSnapshot:
|
|
956
|
+
presentationExecutionSnapshot: u,
|
|
960
957
|
delimiter: o,
|
|
961
958
|
csvEncoding: l,
|
|
962
959
|
includeHeaders: e.includeHeaders,
|
|
963
960
|
...d ? { columnSettings: d } : {},
|
|
964
961
|
...c ? { visibleColumns: c } : {},
|
|
965
962
|
...f ? { columnLabels: f } : {},
|
|
966
|
-
...
|
|
963
|
+
...h ? { tableTotalsLabelColumnKey: h } : {},
|
|
967
964
|
...s ? { fileFormat: s } : {},
|
|
968
965
|
...typeof e.title == "string" ? { title: e.title } : {}
|
|
969
966
|
};
|
|
970
967
|
}
|
|
971
|
-
function
|
|
968
|
+
function Ar(e) {
|
|
972
969
|
const t = e.formatOptions, r = (n) => ee(n) ? n : void 0;
|
|
973
970
|
return {
|
|
974
971
|
scope: { dashboardId: e.dashboardId, cardId: e.cardId },
|
|
@@ -1001,7 +998,7 @@ function tr(e) {
|
|
|
1001
998
|
return;
|
|
1002
999
|
const t = Q(e.relativeMeta);
|
|
1003
1000
|
if (t)
|
|
1004
|
-
return
|
|
1001
|
+
return ct(t) || t.unit === "quarter" || t.unit === "year" ? t : void 0;
|
|
1005
1002
|
}
|
|
1006
1003
|
function rr(e, t) {
|
|
1007
1004
|
if (t !== "label") return tr(e);
|
|
@@ -1019,30 +1016,30 @@ function Te(e, t = {}) {
|
|
|
1019
1016
|
return n === "is null" ? `${s} is empty` : n === "is not null" ? `${s} is not empty` : "";
|
|
1020
1017
|
const f = (d) => {
|
|
1021
1018
|
if (l === "date" && d) {
|
|
1022
|
-
const
|
|
1019
|
+
const h = e.temporalPrecision === "minute", w = {
|
|
1023
1020
|
year: "numeric",
|
|
1024
1021
|
month: "short",
|
|
1025
1022
|
day: "numeric",
|
|
1026
|
-
...
|
|
1023
|
+
...h ? {
|
|
1027
1024
|
hour: "numeric",
|
|
1028
1025
|
minute: "2-digit"
|
|
1029
1026
|
} : {}
|
|
1030
1027
|
};
|
|
1031
1028
|
if (typeof d == "string" && er.test(d)) {
|
|
1032
|
-
const [
|
|
1029
|
+
const [u, a, m] = d.split("-").map(Number);
|
|
1033
1030
|
return new Intl.DateTimeFormat(void 0, {
|
|
1034
1031
|
year: "numeric",
|
|
1035
1032
|
month: "short",
|
|
1036
1033
|
day: "numeric",
|
|
1037
1034
|
timeZone: "UTC"
|
|
1038
|
-
}).format(new Date(Date.UTC(
|
|
1035
|
+
}).format(new Date(Date.UTC(u, a - 1, m)));
|
|
1039
1036
|
}
|
|
1040
|
-
if (typeof d == "string" &&
|
|
1041
|
-
const [
|
|
1037
|
+
if (typeof d == "string" && et(d) === "wall_datetime") {
|
|
1038
|
+
const [u, a, m, b, p] = d.split(/[-T :.]/).map(Number);
|
|
1042
1039
|
return new Intl.DateTimeFormat(void 0, {
|
|
1043
1040
|
...w,
|
|
1044
1041
|
timeZone: "UTC"
|
|
1045
|
-
}).format(new Date(Date.UTC(
|
|
1042
|
+
}).format(new Date(Date.UTC(u, a - 1, m, b, p)));
|
|
1046
1043
|
}
|
|
1047
1044
|
const x = new Date(d);
|
|
1048
1045
|
if (!isNaN(x.getTime()))
|
|
@@ -1052,7 +1049,7 @@ function Te(e, t = {}) {
|
|
|
1052
1049
|
...t.timezone ? { timeZone: t.timezone } : {}
|
|
1053
1050
|
}).format(x);
|
|
1054
1051
|
} catch {
|
|
1055
|
-
return
|
|
1052
|
+
return h ? x.toLocaleString(void 0, w) : x.toLocaleDateString(void 0, w);
|
|
1056
1053
|
}
|
|
1057
1054
|
}
|
|
1058
1055
|
return String(d);
|
|
@@ -1087,7 +1084,7 @@ function Te(e, t = {}) {
|
|
|
1087
1084
|
return `${s}: ${Z(o, f)}`;
|
|
1088
1085
|
}
|
|
1089
1086
|
}
|
|
1090
|
-
function
|
|
1087
|
+
function Rr(e, t = {}) {
|
|
1091
1088
|
if (!e || e.length === 0)
|
|
1092
1089
|
return "";
|
|
1093
1090
|
const r = /* @__PURE__ */ new Map();
|
|
@@ -1106,7 +1103,7 @@ function Kr(e, t = {}) {
|
|
|
1106
1103
|
}
|
|
1107
1104
|
}), n.join(" | ");
|
|
1108
1105
|
}
|
|
1109
|
-
function
|
|
1106
|
+
function Nr(e) {
|
|
1110
1107
|
return ((e == null ? void 0 : e.filterValues) ?? []).filter(nr).map(or);
|
|
1111
1108
|
}
|
|
1112
1109
|
function nr(e) {
|
|
@@ -1136,7 +1133,7 @@ function sr(e, t) {
|
|
|
1136
1133
|
return;
|
|
1137
1134
|
}
|
|
1138
1135
|
}
|
|
1139
|
-
function
|
|
1136
|
+
function Or(e, t, r, n = !1) {
|
|
1140
1137
|
const o = ir(
|
|
1141
1138
|
e,
|
|
1142
1139
|
t,
|
|
@@ -1181,31 +1178,31 @@ function ir(e, t, r, n = !1) {
|
|
|
1181
1178
|
return { start: e.start, end: `before ${e.end}` };
|
|
1182
1179
|
}
|
|
1183
1180
|
export {
|
|
1184
|
-
|
|
1181
|
+
Pr as A,
|
|
1185
1182
|
xe as B,
|
|
1186
1183
|
tr as C,
|
|
1187
1184
|
$e as D,
|
|
1188
1185
|
Te as E,
|
|
1189
1186
|
It as F,
|
|
1190
|
-
|
|
1191
|
-
|
|
1187
|
+
Rr as G,
|
|
1188
|
+
Nr as H,
|
|
1192
1189
|
ir as I,
|
|
1193
|
-
|
|
1190
|
+
Cr as M,
|
|
1194
1191
|
At as P,
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1192
|
+
wr as a,
|
|
1193
|
+
xr as b,
|
|
1194
|
+
Tr as c,
|
|
1195
|
+
Er as d,
|
|
1196
|
+
vr as e,
|
|
1197
|
+
Or as f,
|
|
1198
|
+
Sr as g,
|
|
1199
|
+
Mr as h,
|
|
1200
|
+
Ir as i,
|
|
1204
1201
|
Ot as j,
|
|
1205
|
-
|
|
1206
|
-
|
|
1202
|
+
$r as k,
|
|
1203
|
+
Fr as l,
|
|
1207
1204
|
Nt as m,
|
|
1208
|
-
|
|
1205
|
+
kr as n,
|
|
1209
1206
|
$t as o,
|
|
1210
1207
|
Rt as p,
|
|
1211
1208
|
Pt as q,
|
|
@@ -1214,8 +1211,8 @@ export {
|
|
|
1214
1211
|
U as t,
|
|
1215
1212
|
Vt as u,
|
|
1216
1213
|
Ut as v,
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1214
|
+
Lr as w,
|
|
1215
|
+
Dr as x,
|
|
1216
|
+
_r as y,
|
|
1217
|
+
Ar as z
|
|
1221
1218
|
};
|