react-semaphor 0.1.453 → 0.1.455
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +100 -99
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +4 -4
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +4 -4
- package/dist/chunks/{analyze-result-contract-GHKFwThg.js → analyze-result-contract-BbRJ-C06.js} +1 -1
- package/dist/chunks/{analyze-result-contract-Dxw66nUG.cjs → analyze-result-contract-LPDNldic.cjs} +1 -1
- package/dist/chunks/canonical-result-keys-BA0HCP4e.cjs +1 -0
- package/dist/chunks/{canonical-result-keys-KLk__J_O.js → canonical-result-keys-D6avdjpA.js} +14 -13
- package/dist/chunks/{common-types-Ci66eflG.cjs → common-types-C57kJ59w.cjs} +1 -1
- package/dist/chunks/{common-types-F6qk6PPS.js → common-types-H51FLKB7.js} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-CFpX0WX3.js → dashboard-briefing-launcher-BgBMjAVe.js} +10 -10
- package/dist/chunks/{dashboard-briefing-launcher-mUXWuiOZ.cjs → dashboard-briefing-launcher-BmEHYblf.cjs} +1 -1
- package/dist/chunks/{dashboard-controls-SoNubIu1.cjs → dashboard-controls-BLNG_zHC.cjs} +1 -1
- package/dist/chunks/{dashboard-controls-BeYAmOJc.js → dashboard-controls-C-23EDdr.js} +10 -10
- package/dist/chunks/dashboard-date-comparison-definition-Ces4alFm.cjs +1 -0
- package/dist/chunks/{dashboard-date-comparison-definition-Ba-clViK.js → dashboard-date-comparison-definition-DC3ekV2S.js} +1 -1
- package/dist/chunks/{dashboard-json-BublPnQ4.cjs → dashboard-json-BJ_Z9EaL.cjs} +1 -1
- package/dist/chunks/{dashboard-json-DeLUagVV.js → dashboard-json-BTF-1Iwa.js} +8 -8
- package/dist/chunks/{edit-dashboard-visual-CrvPcO7A.cjs → edit-dashboard-visual-CR832BJc.cjs} +1 -1
- package/dist/chunks/{edit-dashboard-visual-Go0h82DR.js → edit-dashboard-visual-Mw-ZE7P7.js} +12 -12
- package/dist/chunks/{editor-action-buttons-1Lo0fIh7.cjs → editor-action-buttons-BVigIMg0.cjs} +1 -1
- package/dist/chunks/{editor-action-buttons-BFNtjFzO.js → editor-action-buttons-BxbFCerU.js} +6 -6
- package/dist/chunks/{index-BsH32bn1.js → index-B5Oy1eLv.js} +35305 -34883
- package/dist/chunks/index-C99Ow35Y.cjs +4 -0
- package/dist/chunks/{index-q12_nNUS.cjs → index-DIWJALWL.cjs} +231 -231
- package/dist/chunks/{index-B3ZugihZ.js → index-DrYILnh0.js} +799 -808
- package/dist/chunks/matrix-result-contract-CofATICL.js +437 -0
- package/dist/chunks/matrix-result-contract-zamd9euI.cjs +1 -0
- package/dist/chunks/{pivot-header-presentation-DcfPaCiy.cjs → pivot-header-presentation-DhyQXxKq.cjs} +1 -1
- package/dist/chunks/{pivot-header-presentation-nk604qc1.js → pivot-header-presentation-ckYOQ4aZ.js} +2 -2
- package/dist/chunks/{pivot-result-identity-CRUokNgm.cjs → pivot-result-identity-Bb4EixVN.cjs} +1 -1
- package/dist/chunks/{pivot-result-identity-C43Ai5Kr.js → pivot-result-identity-DU1v-5Xk.js} +1 -1
- package/dist/chunks/pivot-result-lifecycle-DmcF1ris.cjs +1 -0
- package/dist/chunks/{pivot-result-lifecycle-4kSe0Hk1.js → pivot-result-lifecycle-sjzIOpvp.js} +57 -58
- package/dist/chunks/{raw-temporal-contract-CxbRFwnd.cjs → raw-temporal-contract-BtjH_G-d.cjs} +1 -1
- package/dist/chunks/{raw-temporal-contract-BF7PjBY9.js → raw-temporal-contract-CxncLze5.js} +1 -1
- package/dist/chunks/{report-preferences-dialog-BEVZAE3m.cjs → report-preferences-dialog-BgE3Gzsp.cjs} +1 -1
- package/dist/chunks/{report-preferences-dialog-BNV7qXYH.js → report-preferences-dialog-CFenWkcH.js} +6 -6
- package/dist/chunks/{report-runtime-context-DjYqLV-c.cjs → report-runtime-context-DqxS4wbi.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-BJQDu2fV.js → report-runtime-context-SM6YO61_.js} +5 -5
- package/dist/chunks/saved-temporal-bucket-format-CFfWXRl9.cjs +1 -0
- package/dist/chunks/{saved-temporal-bucket-format-DiZdQXOL.js → saved-temporal-bucket-format-SGAV0ivR.js} +33 -35
- package/dist/chunks/{switch-DgLwr7O-.js → switch-BeZW-HnS.js} +367 -369
- package/dist/chunks/{switch-CjJ6FHYJ.cjs → switch-D-CCcfhc.cjs} +28 -28
- package/dist/chunks/temporal-bucket-5UYEotyQ.js +810 -0
- package/dist/chunks/temporal-bucket-DHY1y9lq.cjs +1 -0
- package/dist/chunks/{temporal-bucket-authoring-FIRnJz0e.js → temporal-bucket-authoring-K1kE6R_z.js} +28 -27
- package/dist/chunks/temporal-bucket-authoring-o3Emn05L.cjs +1 -0
- package/dist/chunks/{temporal-bucket-contract-anl4h-vg.cjs → temporal-bucket-contract-D2-93DGr.cjs} +1 -1
- package/dist/chunks/{temporal-bucket-contract-BQOj6Frl.js → temporal-bucket-contract-D5d-xEl3.js} +1 -1
- package/dist/chunks/{token-types-D0i0IUX3.cjs → token-types-D7CaaI80.cjs} +1 -1
- package/dist/chunks/{token-types-CRpQJ4kv.js → token-types-GbxRUozo.js} +1 -1
- package/dist/chunks/{update-policy-C1i9bgsy.cjs → update-policy-BmiOd0PB.cjs} +1 -1
- package/dist/chunks/{update-policy-CaJz9aPG.js → update-policy-hednMF-0.js} +1 -1
- package/dist/chunks/validators-BDYprKI9.cjs +1 -0
- package/dist/chunks/{validators-DeMXwRON.js → validators-DEmd8Sin.js} +1544 -1200
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +2 -2
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +7 -7
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +2 -2
- package/dist/data-app-codegen/index.cjs +1 -1
- package/dist/data-app-codegen/index.js +2 -2
- package/dist/data-app-codegen-node/index.cjs +1 -1
- package/dist/data-app-codegen-node/index.js +3 -3
- package/dist/data-app-sdk/index.cjs +1 -1
- package/dist/data-app-sdk/index.js +78 -77
- package/dist/data-app-sdk-adapters/index.cjs +1 -1
- package/dist/data-app-sdk-adapters/index.js +29 -30
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +21 -21
- package/dist/format-utils/index.cjs +3 -3
- package/dist/format-utils/index.js +39 -40
- package/dist/index.cjs +1 -1
- package/dist/index.js +15 -15
- package/dist/report-runtime-context/index.cjs +1 -1
- package/dist/report-runtime-context/index.js +2 -2
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +3 -3
- package/dist/types/analytics-protocol.d.ts +44 -11
- package/dist/types/briefings.d.ts +9 -17
- package/dist/types/dashboard-assistant.d.ts +19 -22
- package/dist/types/dashboard-authoring.d.ts +9 -17
- package/dist/types/dashboard.d.ts +9 -17
- package/dist/types/data-app-builder.d.ts +28 -2
- package/dist/types/data-app-codegen-node.d.ts +29 -3
- package/dist/types/data-app-codegen.d.ts +29 -3
- package/dist/types/data-app-sdk-adapters.d.ts +28 -2
- package/dist/types/data-app-sdk-validation.d.ts +38 -7
- package/dist/types/data-app-sdk.d.ts +42 -10
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/main.d.ts +25 -26
- package/dist/types/shared.d.ts +9 -17
- package/dist/types/surfboard.d.ts +9 -17
- package/dist/types/types.d.ts +19 -22
- package/package.json +1 -1
- package/dist/chunks/canonical-result-keys-Drc2x-lf.cjs +0 -1
- package/dist/chunks/catalog-field-grounding-Bnx-3tE0.cjs +0 -1
- package/dist/chunks/catalog-field-grounding-S2jKwKGD.js +0 -100
- package/dist/chunks/dashboard-date-comparison-definition-DZq0htjG.cjs +0 -1
- package/dist/chunks/dashboard-input-contract-DSt8dGzP.js +0 -18
- package/dist/chunks/dashboard-input-contract-DV3cshjz.cjs +0 -1
- package/dist/chunks/index-DjiIh_9n.cjs +0 -4
- package/dist/chunks/metric-comparison-D0T0MKRK.js +0 -387
- package/dist/chunks/metric-comparison-DYR3RXam.cjs +0 -1
- package/dist/chunks/pivot-result-lifecycle-BiJepH5S.cjs +0 -1
- package/dist/chunks/saved-temporal-bucket-format-Gfbh4IiP.cjs +0 -1
- package/dist/chunks/temporal-bucket-Dnj8qT9l.cjs +0 -1
- package/dist/chunks/temporal-bucket-FBZGrDCe.js +0 -560
- package/dist/chunks/temporal-bucket-authoring-7hv2laOG.cjs +0 -1
- package/dist/chunks/validators-Dm7Kpz6p.cjs +0 -1
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
var Je = Object.defineProperty;
|
|
2
2
|
var Qe = (e, r, t) => r in e ? Je(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
|
|
3
|
-
var
|
|
4
|
-
import { E as Xe, C as et, q as tt, D as rt, A as J, u as q, o as nt, M as ot, w as at, R as it, i as
|
|
3
|
+
var _ = (e, r, t) => Qe(e, typeof r != "symbol" ? r + "" : r, t);
|
|
4
|
+
import { E as Xe, C as et, q as tt, D as rt, A as J, u as q, o as nt, M as ot, w as at, R as it, i as Ce, b as ct, m as lt, P as U } from "./pivot-result-lifecycle-sjzIOpvp.js";
|
|
5
5
|
import { DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES as de } from "../value-format-preferences/index.js";
|
|
6
|
-
import {
|
|
7
|
-
import "./analyze-result-contract-
|
|
8
|
-
import { h as $e, r as ke, a as Ee, v as st, i as mt } from "./saved-temporal-bucket-format-
|
|
9
|
-
import { r as z, b as ut, d as ft, P as pt } from "./pivot-result-identity-
|
|
10
|
-
import { v as yt, a as ht } from "./temporal-bucket-contract-
|
|
11
|
-
import { f as gt,
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import "./temporal-
|
|
15
|
-
|
|
16
|
-
const Et = `import pandas as pd
|
|
6
|
+
import { n as Te, q as dt, x as ae } from "./validators-DEmd8Sin.js";
|
|
7
|
+
import "./analyze-result-contract-BbRJ-C06.js";
|
|
8
|
+
import { h as $e, r as ke, a as Ee, v as st, i as mt } from "./saved-temporal-bucket-format-SGAV0ivR.js";
|
|
9
|
+
import { r as z, b as ut, d as ft, P as pt } from "./pivot-result-identity-DU1v-5Xk.js";
|
|
10
|
+
import { v as yt, a as ht } from "./temporal-bucket-contract-D5d-xEl3.js";
|
|
11
|
+
import { f as gt, T as vt, k as xe, i as bt } from "./temporal-bucket-5UYEotyQ.js";
|
|
12
|
+
import { r as Se, s as It, i as wt, a as Ct, b as Tt, c as $t } from "./canonical-result-keys-D6avdjpA.js";
|
|
13
|
+
import "./temporal-bucket-authoring-K1kE6R_z.js";
|
|
14
|
+
import { v as _e } from "./raw-temporal-contract-CxncLze5.js";
|
|
15
|
+
const kt = `import pandas as pd
|
|
17
16
|
df = pd.DataFrame(data) # 'data' contains the query result
|
|
18
17
|
result = df.to_dict('records') # must return 'result' as [dict] type
|
|
19
18
|
`;
|
|
20
|
-
function
|
|
19
|
+
function hn(e) {
|
|
21
20
|
return {
|
|
22
21
|
databaseName: (e == null ? void 0 : e.lastSelectedDatabase) || "",
|
|
23
22
|
schemaName: (e == null ? void 0 : e.lastSelectedSchema) || "",
|
|
@@ -26,7 +25,7 @@ function bn(e) {
|
|
|
26
25
|
};
|
|
27
26
|
}
|
|
28
27
|
function H(e) {
|
|
29
|
-
return e ===
|
|
28
|
+
return e === kt ? "" : e;
|
|
30
29
|
}
|
|
31
30
|
function Q(e, r = e.config) {
|
|
32
31
|
return Se({
|
|
@@ -35,26 +34,26 @@ function Q(e, r = e.config) {
|
|
|
35
34
|
normalizedPython: H(e.python || "")
|
|
36
35
|
});
|
|
37
36
|
}
|
|
38
|
-
class
|
|
37
|
+
class Et extends Error {
|
|
39
38
|
constructor(t) {
|
|
40
39
|
super(
|
|
41
40
|
`ambiguous_temporal_grain: Temporal field "${t}" has saved presentation but no valid grouping grain. Reconfigure and resave the field.`
|
|
42
41
|
);
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
_(this, "code", "ambiguous_temporal_grain");
|
|
43
|
+
_(this, "fieldId");
|
|
45
44
|
this.name = "AmbiguousGroupedTemporalGrainError", this.fieldId = t;
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
|
-
function
|
|
47
|
+
function xt(e) {
|
|
49
48
|
return Ee(e) || e.semanticTemporalPresentation != null;
|
|
50
49
|
}
|
|
51
|
-
function
|
|
50
|
+
function St(e) {
|
|
52
51
|
if (!e.id || !["date", "datetime"].includes(
|
|
53
|
-
|
|
52
|
+
Te(e.dataType)
|
|
54
53
|
))
|
|
55
54
|
return;
|
|
56
55
|
if (dt(e.granularity)) return e;
|
|
57
|
-
if (!
|
|
56
|
+
if (!xt(e)) return;
|
|
58
57
|
if (!ke({
|
|
59
58
|
fieldId: e.id,
|
|
60
59
|
dataType: e.dataType,
|
|
@@ -63,7 +62,7 @@ function _t(e) {
|
|
|
63
62
|
dateFormat: e.dateFormat,
|
|
64
63
|
customFormat: e.customFormat
|
|
65
64
|
}).ok)
|
|
66
|
-
throw new
|
|
65
|
+
throw new Et(e.id);
|
|
67
66
|
return { ...e, granularity: "day" };
|
|
68
67
|
}
|
|
69
68
|
function se(e) {
|
|
@@ -88,77 +87,77 @@ function se(e) {
|
|
|
88
87
|
cardType: e.card.type,
|
|
89
88
|
cardConfig: r,
|
|
90
89
|
fields: t.flatMap((n) => {
|
|
91
|
-
const o =
|
|
90
|
+
const o = St(n);
|
|
92
91
|
return o ? [o] : [];
|
|
93
92
|
})
|
|
94
93
|
};
|
|
95
94
|
}
|
|
96
|
-
function
|
|
95
|
+
function gn(e) {
|
|
97
96
|
return se({
|
|
98
97
|
...e,
|
|
99
98
|
supportsCardType: (r) => r === "table"
|
|
100
99
|
});
|
|
101
100
|
}
|
|
102
|
-
function
|
|
101
|
+
function vn(e) {
|
|
103
102
|
return se({
|
|
104
103
|
...e,
|
|
105
|
-
supportsCardType:
|
|
104
|
+
supportsCardType: wt
|
|
106
105
|
});
|
|
107
106
|
}
|
|
108
|
-
function
|
|
107
|
+
function _t(e) {
|
|
109
108
|
return se({
|
|
110
109
|
...e,
|
|
111
110
|
// Raw detail-table presentation has its own result/adapter contract.
|
|
112
111
|
// This module remains grouped-only even though the shared producer
|
|
113
112
|
// registry now recognizes detailTable.
|
|
114
|
-
supportsCardType: (r) => r !== "detailTable" &&
|
|
113
|
+
supportsCardType: (r) => r !== "detailTable" && It(r)
|
|
115
114
|
});
|
|
116
115
|
}
|
|
117
|
-
const
|
|
118
|
-
function
|
|
119
|
-
const r =
|
|
116
|
+
const ge = /* @__PURE__ */ new WeakMap();
|
|
117
|
+
function Ft(e) {
|
|
118
|
+
const r = ge.get(e);
|
|
120
119
|
if (r) return r;
|
|
121
120
|
const t = Xe(e);
|
|
122
|
-
return
|
|
121
|
+
return ge.set(e, t), t;
|
|
123
122
|
}
|
|
124
|
-
function
|
|
123
|
+
function V(e, r) {
|
|
125
124
|
const t = e ?? [], n = r ?? [];
|
|
126
125
|
return t.length === n.length && t.every((o, a) => o === n[a]);
|
|
127
126
|
}
|
|
128
|
-
function
|
|
127
|
+
function Rt(e, r) {
|
|
129
128
|
const t = et({
|
|
130
129
|
groupByFields: r.groupByColumns,
|
|
131
130
|
metricFields: r.metricColumns,
|
|
132
131
|
pivotByFields: r.pivotByColumns,
|
|
133
132
|
detailFields: r.detailColumns
|
|
134
133
|
});
|
|
135
|
-
return
|
|
134
|
+
return V(
|
|
136
135
|
e.expectedRoleFieldIds.groupby,
|
|
137
136
|
t.expectedRoleFieldIds.groupby
|
|
138
|
-
) &&
|
|
137
|
+
) && V(
|
|
139
138
|
e.expectedRoleFieldIds.metric,
|
|
140
139
|
t.expectedRoleFieldIds.metric
|
|
141
|
-
) &&
|
|
140
|
+
) && V(
|
|
142
141
|
e.expectedRoleFieldIds.pivotby,
|
|
143
142
|
t.expectedRoleFieldIds.pivotby
|
|
144
|
-
) &&
|
|
143
|
+
) && V(
|
|
145
144
|
e.expectedRoleFieldIds.detail,
|
|
146
145
|
t.expectedRoleFieldIds.detail
|
|
147
|
-
) &&
|
|
146
|
+
) && V(
|
|
148
147
|
e.expectedMetricAliases,
|
|
149
148
|
t.expectedMetricAliases
|
|
150
149
|
);
|
|
151
150
|
}
|
|
152
|
-
class
|
|
151
|
+
class At extends Error {
|
|
153
152
|
constructor(t) {
|
|
154
153
|
super(
|
|
155
154
|
`missing_resolved_temporal_format: Saved presentation is missing temporal field "${t.fieldId}" for card "${t.cardId}". Resave the report or Briefing to capture the current dashboard presentation.`
|
|
156
155
|
);
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
156
|
+
_(this, "code", "missing_resolved_temporal_format");
|
|
157
|
+
_(this, "deliveryBlocking", !0);
|
|
158
|
+
_(this, "dashboardId");
|
|
159
|
+
_(this, "cardId");
|
|
160
|
+
_(this, "fieldId");
|
|
162
161
|
this.name = "MissingResolvedTemporalPresentationError", this.dashboardId = t.dashboardId, this.cardId = t.cardId, this.fieldId = t.fieldId;
|
|
163
162
|
}
|
|
164
163
|
}
|
|
@@ -167,31 +166,31 @@ class ee extends Error {
|
|
|
167
166
|
super(
|
|
168
167
|
`missing_temporal_bucket_metadata: Result column "${t.columnKey}" is missing temporal bucket metadata for field "${t.fieldId}" on card "${t.cardId}". Refresh the report and resave the delivery if the problem persists.`
|
|
169
168
|
);
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
169
|
+
_(this, "code", "missing_temporal_bucket_metadata");
|
|
170
|
+
_(this, "deliveryBlocking", !0);
|
|
171
|
+
_(this, "cardId");
|
|
172
|
+
_(this, "fieldId");
|
|
173
|
+
_(this, "columnKey");
|
|
175
174
|
this.name = "MissingTemporalResultMetadataError", this.cardId = t.cardId, this.fieldId = t.fieldId, this.columnKey = t.columnKey;
|
|
176
175
|
}
|
|
177
176
|
}
|
|
178
|
-
class
|
|
177
|
+
class O extends Error {
|
|
179
178
|
constructor(t, n, o) {
|
|
180
179
|
super(`${t}: ${n}`);
|
|
181
|
-
|
|
180
|
+
_(this, "deliveryBlocking", !0);
|
|
182
181
|
this.code = t, this.context = o, this.name = "DashboardTemporalBoundaryError";
|
|
183
182
|
}
|
|
184
183
|
}
|
|
185
184
|
function Fe(e, r) {
|
|
186
185
|
return `${r}:${e}`;
|
|
187
186
|
}
|
|
188
|
-
function
|
|
187
|
+
function Bt(e) {
|
|
189
188
|
var r, t;
|
|
190
189
|
return (t = (r = e.presentation) == null ? void 0 : r.byFieldRole) == null ? void 0 : t.get(
|
|
191
190
|
Fe(e.fieldId, e.role)
|
|
192
191
|
);
|
|
193
192
|
}
|
|
194
|
-
function
|
|
193
|
+
function Pt(e) {
|
|
195
194
|
var t;
|
|
196
195
|
if ((((t = e.cardConfig.metricColumns) == null ? void 0 : t.length) || 0) > 0 || e.binding.role !== "metric")
|
|
197
196
|
return !1;
|
|
@@ -203,7 +202,7 @@ function Mt(e) {
|
|
|
203
202
|
}
|
|
204
203
|
);
|
|
205
204
|
}
|
|
206
|
-
function
|
|
205
|
+
function bn(e, r) {
|
|
207
206
|
return !r || r.byColumnKey.size === 0 ? e.map((t) => ({ ...t })) : e.map((t) => {
|
|
208
207
|
const n = { ...t };
|
|
209
208
|
return r.byColumnKey.forEach((o, a) => {
|
|
@@ -214,8 +213,8 @@ function Cn(e, r) {
|
|
|
214
213
|
}), n;
|
|
215
214
|
});
|
|
216
215
|
}
|
|
217
|
-
function
|
|
218
|
-
var
|
|
216
|
+
function In(e) {
|
|
217
|
+
var u;
|
|
219
218
|
if (!e.result || typeof e.result != "object") return !1;
|
|
220
219
|
const r = e.result;
|
|
221
220
|
if (e.expectedResultOwner !== void 0 && r.resultOwner !== e.expectedResultOwner)
|
|
@@ -226,8 +225,8 @@ function Tn(e) {
|
|
|
226
225
|
const n = Array.isArray(r.records) ? r.records.length : void 0, o = (t.cardConfig.pivotByColumns || []).map((d) => d.id);
|
|
227
226
|
if (t.cardType === "pivotTable")
|
|
228
227
|
try {
|
|
229
|
-
const d =
|
|
230
|
-
if (!
|
|
228
|
+
const d = Ft(r);
|
|
229
|
+
if (!Rt(
|
|
231
230
|
d.pivotResultContract,
|
|
232
231
|
t.cardConfig
|
|
233
232
|
))
|
|
@@ -240,7 +239,7 @@ function Tn(e) {
|
|
|
240
239
|
var g;
|
|
241
240
|
return (((g = w.pivotIdentity) == null ? void 0 : g.members.length) ?? 0) > 0;
|
|
242
241
|
}
|
|
243
|
-
),
|
|
242
|
+
), b = v.length > 0 && v.every(
|
|
244
243
|
(w) => {
|
|
245
244
|
var g;
|
|
246
245
|
return ((g = w.pivotIdentity) == null ? void 0 : g.members.length) === 0 && ut({
|
|
@@ -258,25 +257,25 @@ function Tn(e) {
|
|
|
258
257
|
);
|
|
259
258
|
if (!g) return !1;
|
|
260
259
|
if (g.role === "pivotby") {
|
|
261
|
-
const
|
|
262
|
-
(
|
|
263
|
-
var
|
|
264
|
-
return ((
|
|
260
|
+
const S = h.flatMap(
|
|
261
|
+
(A) => {
|
|
262
|
+
var L;
|
|
263
|
+
return ((L = A.pivotIdentity) == null ? void 0 : L.members.filter(
|
|
265
264
|
(Ze) => Ze.fieldId === w.id
|
|
266
265
|
)) ?? [];
|
|
267
266
|
}
|
|
268
267
|
);
|
|
269
|
-
return
|
|
270
|
-
(
|
|
271
|
-
var
|
|
272
|
-
return ((
|
|
268
|
+
return S.length === 0 ? b : S.every(
|
|
269
|
+
(A) => {
|
|
270
|
+
var L;
|
|
271
|
+
return ((L = A.temporalBucket) == null ? void 0 : L.granularity) === w.granularity;
|
|
273
272
|
}
|
|
274
273
|
);
|
|
275
274
|
}
|
|
276
|
-
const
|
|
277
|
-
(
|
|
275
|
+
const C = d.columns.find(
|
|
276
|
+
(S) => S.key === (g.outputKey || g.rawKey)
|
|
278
277
|
);
|
|
279
|
-
return ((E =
|
|
278
|
+
return ((E = C == null ? void 0 : C.temporalBucket) == null ? void 0 : E.granularity) === w.granularity;
|
|
280
279
|
});
|
|
281
280
|
} catch (d) {
|
|
282
281
|
if (d instanceof rt) return !1;
|
|
@@ -314,7 +313,7 @@ function Tn(e) {
|
|
|
314
313
|
"metric"
|
|
315
314
|
);
|
|
316
315
|
if (c) {
|
|
317
|
-
if (!
|
|
316
|
+
if (!Pt({
|
|
318
317
|
cardConfig: t.cardConfig,
|
|
319
318
|
binding: c,
|
|
320
319
|
columns: r.columns || []
|
|
@@ -344,12 +343,12 @@ function Tn(e) {
|
|
|
344
343
|
if (d instanceof pt) return !1;
|
|
345
344
|
throw d;
|
|
346
345
|
}
|
|
347
|
-
const
|
|
346
|
+
const f = (r.columns || []).filter((d) => {
|
|
348
347
|
const v = d.pivotIdentity;
|
|
349
348
|
return !!(v && v.members.length > 0);
|
|
350
349
|
});
|
|
351
|
-
return n !== 0 && ((
|
|
352
|
-
var
|
|
350
|
+
return n !== 0 && ((u = t.cardConfig.pivotByColumns) != null && u.length) && f.length === 0 ? !1 : t.fields.every((d) => {
|
|
351
|
+
var b;
|
|
353
352
|
const v = z(
|
|
354
353
|
a,
|
|
355
354
|
d.id,
|
|
@@ -357,21 +356,21 @@ function Tn(e) {
|
|
|
357
356
|
);
|
|
358
357
|
if (!v) return !1;
|
|
359
358
|
if (v.role === "pivotby") {
|
|
360
|
-
const g =
|
|
361
|
-
(
|
|
359
|
+
const g = f.flatMap(
|
|
360
|
+
(C) => {
|
|
362
361
|
var E;
|
|
363
|
-
return ((E =
|
|
362
|
+
return ((E = C.pivotIdentity) == null ? void 0 : E.members) ?? [];
|
|
364
363
|
}
|
|
365
|
-
).filter((
|
|
366
|
-
return
|
|
367
|
-
(
|
|
364
|
+
).filter((C) => C.fieldId === d.id);
|
|
365
|
+
return f.length === 0 ? n === 0 : g.length > 0 && g.every(
|
|
366
|
+
(C) => {
|
|
368
367
|
var E;
|
|
369
|
-
return ((E =
|
|
368
|
+
return ((E = C.temporalBucket) == null ? void 0 : E.granularity) === d.granularity;
|
|
370
369
|
}
|
|
371
370
|
);
|
|
372
371
|
}
|
|
373
372
|
const h = m.get(v.outputKey || v.rawKey);
|
|
374
|
-
return ((
|
|
373
|
+
return ((b = h == null ? void 0 : h.temporalBucket) == null ? void 0 : b.granularity) === d.granularity;
|
|
375
374
|
});
|
|
376
375
|
}
|
|
377
376
|
function Z(e, r) {
|
|
@@ -394,7 +393,7 @@ function Z(e, r) {
|
|
|
394
393
|
if (!o.ok) throw new Error(o.error.code);
|
|
395
394
|
return o.format;
|
|
396
395
|
}
|
|
397
|
-
function
|
|
396
|
+
function Mt(e, r, t = de) {
|
|
398
397
|
const n = Z(e, "card"), o = Z(e, "semantic"), a = e.semanticTemporalPresentation;
|
|
399
398
|
return xe({
|
|
400
399
|
metadata: r,
|
|
@@ -412,7 +411,7 @@ function Dt(e, r, t = de) {
|
|
|
412
411
|
}
|
|
413
412
|
});
|
|
414
413
|
}
|
|
415
|
-
function
|
|
414
|
+
function Dt(e, r = bt, t = "en-US") {
|
|
416
415
|
var i;
|
|
417
416
|
const n = Z(e, "card"), o = ((i = e.semanticTemporalPresentation) == null ? void 0 : i.granularity) === e.granularity ? Z(e, "semantic") : void 0, a = n && n.presentation.mode !== "auto" ? n : o && o.presentation.mode !== "auto" ? o : {
|
|
418
417
|
presentation: { mode: "auto" }
|
|
@@ -427,7 +426,7 @@ function Ot(e, r = bt, t = "en-US") {
|
|
|
427
426
|
presentation: a.presentation
|
|
428
427
|
};
|
|
429
428
|
}
|
|
430
|
-
function
|
|
429
|
+
function wn(e) {
|
|
431
430
|
const r = e.activation;
|
|
432
431
|
if (!r)
|
|
433
432
|
return {
|
|
@@ -448,14 +447,14 @@ function $n(e) {
|
|
|
448
447
|
Fe(c.id, c.role),
|
|
449
448
|
s
|
|
450
449
|
), i.get(c.id) === 1 && o.set(c.id, s);
|
|
451
|
-
}, m = (c, s,
|
|
450
|
+
}, m = (c, s, f) => {
|
|
452
451
|
if (s.granularity !== c.granularity)
|
|
453
|
-
throw new
|
|
452
|
+
throw new O(
|
|
454
453
|
"invalid_temporal_bucket_metadata",
|
|
455
|
-
`Result identity "${
|
|
456
|
-
{ cardId: e.card.id, fieldId: c.id, columnKey:
|
|
454
|
+
`Result identity "${f}" declares ${s.granularity} buckets for active ${c.granularity} field "${c.id}".`,
|
|
455
|
+
{ cardId: e.card.id, fieldId: c.id, columnKey: f }
|
|
457
456
|
);
|
|
458
|
-
const
|
|
457
|
+
const u = e.executionSnapshot && e.dashboardId ? tt({
|
|
459
458
|
snapshot: e.executionSnapshot,
|
|
460
459
|
scope: {
|
|
461
460
|
dashboardId: e.dashboardId,
|
|
@@ -468,25 +467,25 @@ function $n(e) {
|
|
|
468
467
|
role: c.role
|
|
469
468
|
}
|
|
470
469
|
}) : void 0;
|
|
471
|
-
if (e.executionSnapshot && !
|
|
472
|
-
throw new
|
|
470
|
+
if (e.executionSnapshot && !u)
|
|
471
|
+
throw new At({
|
|
473
472
|
dashboardId: e.dashboardId,
|
|
474
473
|
cardId: e.card.id,
|
|
475
474
|
fieldId: c.id
|
|
476
475
|
});
|
|
477
476
|
return {
|
|
478
|
-
columnKey:
|
|
477
|
+
columnKey: f,
|
|
479
478
|
fieldId: c.id,
|
|
480
479
|
role: c.role,
|
|
481
480
|
metadata: s,
|
|
482
|
-
resolved:
|
|
481
|
+
resolved: u ? xe({
|
|
483
482
|
metadata: s,
|
|
484
|
-
cardFormat:
|
|
485
|
-
locale:
|
|
486
|
-
...
|
|
487
|
-
styles:
|
|
483
|
+
cardFormat: u,
|
|
484
|
+
locale: u.locale,
|
|
485
|
+
...u.presentation.mode === "auto" ? {
|
|
486
|
+
styles: u.presentation.styles
|
|
488
487
|
} : {}
|
|
489
|
-
}) :
|
|
488
|
+
}) : Mt(
|
|
490
489
|
c,
|
|
491
490
|
s,
|
|
492
491
|
e.valueFormatPreferences ?? de
|
|
@@ -502,7 +501,7 @@ function $n(e) {
|
|
|
502
501
|
if (!s) {
|
|
503
502
|
if (e.columns === void 0 && e.columnKeyMap === void 0 && (e.resultRowCount === void 0 || e.resultRowCount === 0))
|
|
504
503
|
continue;
|
|
505
|
-
throw new
|
|
504
|
+
throw new O(
|
|
506
505
|
"missing_temporal_column_binding",
|
|
507
506
|
`Activated temporal field "${c.id}" has no authoritative result-column binding.`,
|
|
508
507
|
{ cardId: e.card.id, fieldId: c.id, columnKey: c.name }
|
|
@@ -511,13 +510,13 @@ function $n(e) {
|
|
|
511
510
|
if (s.role === "pivotby") {
|
|
512
511
|
const h = (e.columns || []).filter(
|
|
513
512
|
(E) => E.pivotIdentity !== void 0
|
|
514
|
-
),
|
|
513
|
+
), b = h.flatMap(
|
|
515
514
|
(E) => {
|
|
516
|
-
var
|
|
517
|
-
return (((
|
|
515
|
+
var S;
|
|
516
|
+
return (((S = E.pivotIdentity) == null ? void 0 : S.members) || []).filter((A) => A.fieldId === c.id).map((A) => ({ column: E, member: A }));
|
|
518
517
|
}
|
|
519
518
|
);
|
|
520
|
-
if (
|
|
519
|
+
if (b.length === 0) {
|
|
521
520
|
if (h.length === 0 && (e.card.type !== "pivotTable" || e.resultRowCount === 0))
|
|
522
521
|
continue;
|
|
523
522
|
throw new ee({
|
|
@@ -526,7 +525,7 @@ function $n(e) {
|
|
|
526
525
|
columnKey: s.outputKey || s.rawKey
|
|
527
526
|
});
|
|
528
527
|
}
|
|
529
|
-
const w =
|
|
528
|
+
const w = b[0];
|
|
530
529
|
if (!w.member.temporalBucket)
|
|
531
530
|
throw new ee({
|
|
532
531
|
cardId: e.card.id,
|
|
@@ -537,7 +536,7 @@ function $n(e) {
|
|
|
537
536
|
w.member.temporalBucket
|
|
538
537
|
);
|
|
539
538
|
if (!g.ok || !g.value)
|
|
540
|
-
throw new
|
|
539
|
+
throw new O(
|
|
541
540
|
"invalid_temporal_bucket_metadata",
|
|
542
541
|
g.ok ? `Pivot result column "${w.column.key}" has no validated temporal bucket metadata.` : g.error.message,
|
|
543
542
|
{
|
|
@@ -546,49 +545,49 @@ function $n(e) {
|
|
|
546
545
|
columnKey: w.column.key
|
|
547
546
|
}
|
|
548
547
|
);
|
|
549
|
-
const
|
|
548
|
+
const C = m(
|
|
550
549
|
c,
|
|
551
550
|
g.value,
|
|
552
551
|
w.column.key
|
|
553
552
|
);
|
|
554
|
-
for (const { column: E, member:
|
|
555
|
-
if (!
|
|
556
|
-
throw new
|
|
553
|
+
for (const { column: E, member: S } of b)
|
|
554
|
+
if (!S.temporalBucket || JSON.stringify(S.temporalBucket) !== JSON.stringify(w.member.temporalBucket))
|
|
555
|
+
throw new O(
|
|
557
556
|
"invalid_temporal_bucket_metadata",
|
|
558
557
|
`Pivot result column "${E.key}" has contradictory bucket metadata for field "${c.id}".`,
|
|
559
558
|
{ cardId: e.card.id, fieldId: c.id, columnKey: E.key }
|
|
560
559
|
);
|
|
561
|
-
l(c,
|
|
560
|
+
l(c, C);
|
|
562
561
|
continue;
|
|
563
562
|
}
|
|
564
|
-
const
|
|
565
|
-
if (!(
|
|
563
|
+
const f = s.outputKey || s.rawKey, u = t.get(f);
|
|
564
|
+
if (!(u != null && u.temporalBucket))
|
|
566
565
|
throw new ee({
|
|
567
566
|
cardId: e.card.id,
|
|
568
567
|
fieldId: c.id,
|
|
569
|
-
columnKey:
|
|
568
|
+
columnKey: f
|
|
570
569
|
});
|
|
571
|
-
const d = ht(
|
|
570
|
+
const d = ht(u, {
|
|
572
571
|
metadataRequired: !0
|
|
573
572
|
});
|
|
574
573
|
if (!d.ok || !d.value)
|
|
575
|
-
throw new
|
|
574
|
+
throw new O(
|
|
576
575
|
"invalid_temporal_bucket_metadata",
|
|
577
|
-
d.ok ? `Result column "${
|
|
578
|
-
{ cardId: e.card.id, fieldId: c.id, columnKey:
|
|
576
|
+
d.ok ? `Result column "${f}" has no validated temporal bucket metadata.` : d.error.message,
|
|
577
|
+
{ cardId: e.card.id, fieldId: c.id, columnKey: f }
|
|
579
578
|
);
|
|
580
579
|
const v = m(
|
|
581
580
|
c,
|
|
582
581
|
d.value,
|
|
583
|
-
|
|
582
|
+
f
|
|
584
583
|
);
|
|
585
|
-
n.set(
|
|
584
|
+
n.set(f, v), l(c, v);
|
|
586
585
|
}
|
|
587
586
|
return { byColumnKey: n, byFieldId: o, byFieldRole: a };
|
|
588
587
|
}
|
|
589
|
-
function
|
|
588
|
+
function Cn(e) {
|
|
590
589
|
var t, n;
|
|
591
|
-
const r = e.role ?
|
|
590
|
+
const r = e.role ? Bt({
|
|
592
591
|
presentation: e.presentation,
|
|
593
592
|
fieldId: e.fieldId,
|
|
594
593
|
role: e.role
|
|
@@ -601,7 +600,7 @@ function kn(e) {
|
|
|
601
600
|
function Re(e) {
|
|
602
601
|
if (e.value === null || e.value === void 0) return "(Blank)";
|
|
603
602
|
if (typeof e.value != "string")
|
|
604
|
-
throw new
|
|
603
|
+
throw new O(
|
|
605
604
|
"invalid_temporal_bucket_value",
|
|
606
605
|
`Canonical temporal column "${e.presentation.columnKey}" must contain a string or null.`,
|
|
607
606
|
{
|
|
@@ -616,7 +615,7 @@ function Re(e) {
|
|
|
616
615
|
format: e.presentation.resolved.format
|
|
617
616
|
});
|
|
618
617
|
} catch (r) {
|
|
619
|
-
throw r instanceof vt ? new
|
|
618
|
+
throw r instanceof vt ? new O(
|
|
620
619
|
r.code,
|
|
621
620
|
r.message,
|
|
622
621
|
{
|
|
@@ -691,7 +690,9 @@ function me(e) {
|
|
|
691
690
|
"invalid_raw_temporal_format",
|
|
692
691
|
"Declared SQL temporal presentation selects a custom pattern but has no customFormat."
|
|
693
692
|
);
|
|
694
|
-
const r = e.useCustomFormat && e.customFormat ? e.customFormat : e.format, t = e.timezone, n = e.sourceTimezone, o = t && t !== "auto" ? { timezone: t } : void 0, a =
|
|
693
|
+
const r = e.useCustomFormat && e.customFormat ? e.customFormat : e.format, t = e.timezone, n = e.sourceTimezone, o = t && t !== "auto" ? { timezone: t } : void 0, a = {
|
|
694
|
+
sourceTimezone: n && n !== "auto" ? n : "UTC"
|
|
695
|
+
};
|
|
695
696
|
return r ? {
|
|
696
697
|
type: "raw_temporal",
|
|
697
698
|
...o,
|
|
@@ -708,7 +709,7 @@ function me(e) {
|
|
|
708
709
|
presentation: { mode: "auto" }
|
|
709
710
|
};
|
|
710
711
|
}
|
|
711
|
-
function
|
|
712
|
+
function Tn(e) {
|
|
712
713
|
const r = me(e.settings);
|
|
713
714
|
if (!r)
|
|
714
715
|
throw new x(
|
|
@@ -733,24 +734,18 @@ function En(e) {
|
|
|
733
734
|
);
|
|
734
735
|
return a.text;
|
|
735
736
|
}
|
|
736
|
-
function
|
|
737
|
+
function Ot(e) {
|
|
737
738
|
var t;
|
|
738
739
|
const r = e.effectiveCardConfig ?? e.card.config;
|
|
739
740
|
return Q(e.card, r) === "freeform" && !!((t = e.card.sql) != null && t.trim()) && !H(e.card.python || "").trim();
|
|
740
741
|
}
|
|
741
|
-
function
|
|
742
|
+
function Nt() {
|
|
742
743
|
return {
|
|
743
744
|
activatedColumnKeys: /* @__PURE__ */ new Set(),
|
|
744
745
|
byColumnKey: /* @__PURE__ */ new Map(),
|
|
745
746
|
byFieldId: /* @__PURE__ */ new Map()
|
|
746
747
|
};
|
|
747
748
|
}
|
|
748
|
-
function ue(e) {
|
|
749
|
-
var r;
|
|
750
|
-
return e.cardType === "detailTable" && e.resultOwner === "config" ? (((r = e.effectiveCardConfig) == null ? void 0 : r.detailColumns) || []).filter(
|
|
751
|
-
(t) => t.dateValueMode === "canonical"
|
|
752
|
-
) : [];
|
|
753
|
-
}
|
|
754
749
|
function ie(e, r) {
|
|
755
750
|
return e === void 0 ? { kind: "invalid", error: r } : {
|
|
756
751
|
kind: "invalid",
|
|
@@ -765,12 +760,13 @@ function ie(e, r) {
|
|
|
765
760
|
)
|
|
766
761
|
};
|
|
767
762
|
}
|
|
768
|
-
function
|
|
769
|
-
|
|
770
|
-
if (
|
|
763
|
+
function zt(e) {
|
|
764
|
+
var o;
|
|
765
|
+
if (e.cardType !== "detailTable" || e.resultOwner !== "config")
|
|
766
|
+
return { kind: "inactive" };
|
|
771
767
|
if (!e.result) return { kind: "loading" };
|
|
772
|
-
const { records:
|
|
773
|
-
if (!Array.isArray(
|
|
768
|
+
const { records: r, columns: t, columnKeyMap: n } = e.result;
|
|
769
|
+
if (!Array.isArray(r) || !Array.isArray(t) || !n)
|
|
774
770
|
return ie(
|
|
775
771
|
void 0,
|
|
776
772
|
new x(
|
|
@@ -779,61 +775,66 @@ function Vt(e) {
|
|
|
779
775
|
)
|
|
780
776
|
);
|
|
781
777
|
try {
|
|
782
|
-
const a =
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
)
|
|
789
|
-
|
|
778
|
+
const a = t.filter((s) => s.rawTemporal);
|
|
779
|
+
if (a.length === 0) return { kind: "inactive" };
|
|
780
|
+
const i = new Map(
|
|
781
|
+
(((o = e.effectiveCardConfig) == null ? void 0 : o.detailColumns) || []).map((s) => [
|
|
782
|
+
s.id,
|
|
783
|
+
s
|
|
784
|
+
])
|
|
785
|
+
), l = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map();
|
|
786
|
+
for (const s of a) {
|
|
787
|
+
const f = Array.from(i).flatMap(
|
|
788
|
+
([C, E]) => {
|
|
789
|
+
const S = z(
|
|
790
|
+
n,
|
|
791
|
+
C,
|
|
792
|
+
"detail"
|
|
793
|
+
);
|
|
794
|
+
return S && S.role === "detail" && (S.outputKey ?? S.rawKey) === s.key ? [{ field: E, binding: S }] : [];
|
|
795
|
+
}
|
|
796
|
+
), u = f.length === 1 ? f[0] : null;
|
|
797
|
+
if (!u || typeof u.binding.rawKey != "string" || u.binding.rawKey.trim().length === 0 || u.binding.outputKey !== void 0 && (typeof u.binding.outputKey != "string" || u.binding.outputKey.trim().length === 0))
|
|
790
798
|
throw new x(
|
|
791
799
|
"missing_raw_temporal_column_binding",
|
|
792
|
-
`Raw temporal
|
|
793
|
-
{
|
|
794
|
-
);
|
|
795
|
-
const s = c.outputKey ?? c.rawKey, u = n.find((h) => h.key === s);
|
|
796
|
-
if (!u)
|
|
797
|
-
throw new x(
|
|
798
|
-
"missing_raw_temporal_result_contract",
|
|
799
|
-
`Raw temporal result column "${s}" is absent.`,
|
|
800
|
-
{ fieldId: m.id, columnKey: s }
|
|
800
|
+
`Raw temporal result column "${s.key}" does not have one valid exact detail result binding.`,
|
|
801
|
+
{ columnKey: s.key }
|
|
801
802
|
);
|
|
802
|
-
const
|
|
803
|
+
const { field: d, binding: v } = u, h = v.outputKey ?? v.rawKey, b = _e(s, {
|
|
803
804
|
metadataRequired: !0
|
|
804
805
|
});
|
|
805
|
-
if (!
|
|
806
|
+
if (!b)
|
|
806
807
|
throw new x(
|
|
807
808
|
"invalid_raw_temporal_metadata",
|
|
808
|
-
`Raw temporal result column "${
|
|
809
|
-
{ fieldId:
|
|
809
|
+
`Raw temporal result column "${h}" has no metadata.`,
|
|
810
|
+
{ fieldId: d.id, columnKey: h }
|
|
810
811
|
);
|
|
811
|
-
const
|
|
812
|
-
format: Be(
|
|
812
|
+
const w = q({
|
|
813
|
+
format: Be(d),
|
|
813
814
|
preferences: e.preferences,
|
|
814
815
|
calendar: e.calendar
|
|
815
|
-
}),
|
|
816
|
-
fieldId:
|
|
817
|
-
columnKey:
|
|
818
|
-
metadata:
|
|
819
|
-
format:
|
|
820
|
-
formatValue: J({ metadata:
|
|
816
|
+
}), g = {
|
|
817
|
+
fieldId: d.id,
|
|
818
|
+
columnKey: h,
|
|
819
|
+
metadata: b,
|
|
820
|
+
format: w,
|
|
821
|
+
formatValue: J({ metadata: b, format: w })
|
|
821
822
|
};
|
|
822
|
-
for (let
|
|
823
|
-
if (!Object.prototype.hasOwnProperty.call(
|
|
823
|
+
for (let C = 0; C < r.length; C += 1)
|
|
824
|
+
if (!Object.prototype.hasOwnProperty.call(r[C], h) || r[C][h] === void 0)
|
|
824
825
|
throw new x(
|
|
825
826
|
"missing_raw_temporal_result_contract",
|
|
826
|
-
`Raw temporal result row ${
|
|
827
|
-
{ fieldId:
|
|
827
|
+
`Raw temporal result row ${C} is missing column "${h}".`,
|
|
828
|
+
{ fieldId: d.id, columnKey: h }
|
|
828
829
|
);
|
|
829
|
-
|
|
830
|
+
l.set(h, g), m.set(d.id, g);
|
|
830
831
|
}
|
|
831
|
-
const
|
|
832
|
-
activatedColumnKeys: new Set(
|
|
833
|
-
byColumnKey:
|
|
834
|
-
byFieldId:
|
|
832
|
+
const c = {
|
|
833
|
+
activatedColumnKeys: new Set(l.keys()),
|
|
834
|
+
byColumnKey: l,
|
|
835
|
+
byFieldId: m
|
|
835
836
|
};
|
|
836
|
-
return
|
|
837
|
+
return r.length === 0 ? { kind: "loaded_empty", presentation: c } : { kind: "loaded_valid", presentation: c };
|
|
837
838
|
} catch (a) {
|
|
838
839
|
return ie(
|
|
839
840
|
a,
|
|
@@ -845,37 +846,37 @@ function Vt(e) {
|
|
|
845
846
|
}
|
|
846
847
|
}
|
|
847
848
|
function Lt(e) {
|
|
848
|
-
var n, o;
|
|
849
|
+
var n, o, a;
|
|
849
850
|
const r = e.effectiveCardConfig ?? e.card.config, t = Q(
|
|
850
851
|
e.card,
|
|
851
852
|
r
|
|
852
853
|
);
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
854
|
+
if (e.card.type === "detailTable" && t === "config") {
|
|
855
|
+
const i = !!((n = e.columns) != null && n.some((l) => l.rawTemporal));
|
|
856
|
+
return i && e.records !== void 0 && !e.columnKeyMap ? {
|
|
857
|
+
kind: "invalid",
|
|
858
|
+
error: new x(
|
|
859
|
+
"missing_raw_temporal_result_contract",
|
|
860
|
+
"Activated raw temporal detail results require records, columns, and columnKeyMap atomically."
|
|
861
|
+
)
|
|
862
|
+
} : e.records !== void 0 && !i ? { kind: "inactive" } : ve(
|
|
863
|
+
zt({
|
|
864
|
+
cardType: e.card.type,
|
|
865
|
+
resultOwner: t,
|
|
866
|
+
effectiveCardConfig: r,
|
|
867
|
+
result: e.records === void 0 || !e.columns || !e.columnKeyMap ? void 0 : {
|
|
868
|
+
records: e.records,
|
|
869
|
+
columns: e.columns,
|
|
870
|
+
columnKeyMap: e.columnKeyMap
|
|
871
|
+
},
|
|
872
|
+
preferences: e.preferences,
|
|
873
|
+
calendar: e.calendar
|
|
874
|
+
}),
|
|
875
|
+
e
|
|
876
|
+
);
|
|
877
|
+
}
|
|
878
|
+
return ve(
|
|
864
879
|
Vt({
|
|
865
|
-
cardType: e.card.type,
|
|
866
|
-
resultOwner: t,
|
|
867
|
-
effectiveCardConfig: r,
|
|
868
|
-
result: e.records === void 0 || !e.columns || !e.columnKeyMap ? void 0 : {
|
|
869
|
-
records: e.records,
|
|
870
|
-
columns: e.columns,
|
|
871
|
-
columnKeyMap: e.columnKeyMap
|
|
872
|
-
},
|
|
873
|
-
preferences: e.preferences,
|
|
874
|
-
calendar: e.calendar
|
|
875
|
-
}),
|
|
876
|
-
e
|
|
877
|
-
) : be(
|
|
878
|
-
jt({
|
|
879
880
|
resultOwner: t,
|
|
880
881
|
sql: e.card.sql,
|
|
881
882
|
normalizedPython: H(
|
|
@@ -883,33 +884,29 @@ function Lt(e) {
|
|
|
883
884
|
),
|
|
884
885
|
records: e.records,
|
|
885
886
|
columns: e.columns,
|
|
886
|
-
columnSettings: (
|
|
887
|
+
columnSettings: (a = (o = e.card.preferences) == null ? void 0 : o.tablePrefs) == null ? void 0 : a.columnSettingsMap,
|
|
887
888
|
preferences: e.preferences,
|
|
888
889
|
calendar: e.calendar
|
|
889
890
|
}),
|
|
890
891
|
e
|
|
891
892
|
);
|
|
892
893
|
}
|
|
893
|
-
function
|
|
894
|
-
var n, o;
|
|
894
|
+
function $n(e) {
|
|
895
|
+
var n, o, a;
|
|
895
896
|
const r = e.effectiveCardConfig ?? e.card.config, t = Q(
|
|
896
897
|
e.card,
|
|
897
898
|
r
|
|
898
899
|
);
|
|
899
|
-
return
|
|
900
|
-
|
|
901
|
-
resultOwner: t,
|
|
902
|
-
effectiveCardConfig: r
|
|
903
|
-
}).length > 0 ? !0 : Nt(e) ? Object.values(
|
|
904
|
-
((o = (n = e.card.preferences) == null ? void 0 : n.tablePrefs) == null ? void 0 : o.columnSettingsMap) || {}
|
|
900
|
+
return e.card.type === "detailTable" && t === "config" ? !!((n = e.columns) != null && n.some((i) => i.rawTemporal)) : Ot(e) ? Object.values(
|
|
901
|
+
((a = (o = e.card.preferences) == null ? void 0 : o.tablePrefs) == null ? void 0 : a.columnSettingsMap) || {}
|
|
905
902
|
).some(
|
|
906
|
-
(
|
|
907
|
-
var
|
|
908
|
-
return
|
|
903
|
+
(i) => {
|
|
904
|
+
var l;
|
|
905
|
+
return i.type === "date" && !((l = i.dateFormat) != null && l.useRelativeTime);
|
|
909
906
|
}
|
|
910
907
|
) : !1;
|
|
911
908
|
}
|
|
912
|
-
function
|
|
909
|
+
function ve(e, r) {
|
|
913
910
|
if (!r.executionSnapshot || e.kind === "inactive" || e.kind === "loading" || e.kind === "invalid")
|
|
914
911
|
return e;
|
|
915
912
|
if (!r.dashboardId)
|
|
@@ -957,7 +954,7 @@ function be(e, r) {
|
|
|
957
954
|
}
|
|
958
955
|
};
|
|
959
956
|
}
|
|
960
|
-
function
|
|
957
|
+
function Vt(e) {
|
|
961
958
|
var t, n;
|
|
962
959
|
if (e.resultOwner !== "freeform" || !((t = e.sql) != null && t.trim()) || (n = e.normalizedPython) != null && n.trim())
|
|
963
960
|
return { kind: "inactive" };
|
|
@@ -976,26 +973,26 @@ function jt(e) {
|
|
|
976
973
|
r.map(([c]) => c)
|
|
977
974
|
), i = /* @__PURE__ */ new Map(), l = [...e.columns || []];
|
|
978
975
|
for (const [c, s] of r) {
|
|
979
|
-
const
|
|
976
|
+
const f = me(
|
|
980
977
|
s.dateFormat
|
|
981
978
|
);
|
|
982
|
-
if (!
|
|
983
|
-
const
|
|
979
|
+
if (!f) continue;
|
|
980
|
+
const u = at({
|
|
984
981
|
columnKey: c,
|
|
985
|
-
values: e.records.map((
|
|
986
|
-
if (!Object.prototype.hasOwnProperty.call(
|
|
982
|
+
values: e.records.map((b) => {
|
|
983
|
+
if (!Object.prototype.hasOwnProperty.call(b, c))
|
|
987
984
|
throw new x(
|
|
988
985
|
"missing_raw_temporal_result_contract",
|
|
989
986
|
`Declared SQL temporal column "${c}" is absent from a physical result row.`,
|
|
990
987
|
{ columnKey: c }
|
|
991
988
|
);
|
|
992
|
-
const w =
|
|
989
|
+
const w = b[c];
|
|
993
990
|
return w === null || typeof w == "string" ? w : String(w);
|
|
994
991
|
})
|
|
995
992
|
});
|
|
996
|
-
if (i.set(c,
|
|
993
|
+
if (i.set(c, u), u.status !== "classified") continue;
|
|
997
994
|
let d = l.findIndex(
|
|
998
|
-
(
|
|
995
|
+
(b) => b.key === c
|
|
999
996
|
);
|
|
1000
997
|
if (e.columns && d < 0)
|
|
1001
998
|
throw new x(
|
|
@@ -1013,29 +1010,29 @@ function jt(e) {
|
|
|
1013
1010
|
const v = {
|
|
1014
1011
|
...l[d],
|
|
1015
1012
|
role: "date",
|
|
1016
|
-
dataType:
|
|
1017
|
-
rawTemporal:
|
|
1013
|
+
dataType: u.metadata.valueKind === "date" ? "date" : "datetime",
|
|
1014
|
+
rawTemporal: u.metadata
|
|
1018
1015
|
};
|
|
1019
1016
|
_e(v, {
|
|
1020
1017
|
metadataRequired: !0
|
|
1021
1018
|
}), l[d] = v;
|
|
1022
1019
|
const h = q({
|
|
1023
|
-
format:
|
|
1020
|
+
format: f,
|
|
1024
1021
|
preferences: e.preferences,
|
|
1025
1022
|
calendar: e.calendar
|
|
1026
1023
|
});
|
|
1027
1024
|
o.set(c, {
|
|
1028
1025
|
columnKey: c,
|
|
1029
|
-
metadata:
|
|
1026
|
+
metadata: u.metadata,
|
|
1030
1027
|
format: h,
|
|
1031
1028
|
formatValue: J({
|
|
1032
|
-
metadata:
|
|
1029
|
+
metadata: u.metadata,
|
|
1033
1030
|
format: h
|
|
1034
1031
|
})
|
|
1035
1032
|
});
|
|
1036
1033
|
}
|
|
1037
1034
|
const m = {
|
|
1038
|
-
...
|
|
1035
|
+
...Nt(),
|
|
1039
1036
|
activatedColumnKeys: a,
|
|
1040
1037
|
byColumnKey: o
|
|
1041
1038
|
};
|
|
@@ -1060,7 +1057,7 @@ function jt(e) {
|
|
|
1060
1057
|
);
|
|
1061
1058
|
}
|
|
1062
1059
|
}
|
|
1063
|
-
function
|
|
1060
|
+
function kn(e) {
|
|
1064
1061
|
if (e.value !== null && typeof e.value != "string")
|
|
1065
1062
|
return {
|
|
1066
1063
|
value: e.value,
|
|
@@ -1077,17 +1074,10 @@ function xn(e) {
|
|
|
1077
1074
|
const r = e.presentation.formatValue(e.value);
|
|
1078
1075
|
return { value: e.value, label: r.text, result: r };
|
|
1079
1076
|
}
|
|
1080
|
-
function
|
|
1077
|
+
function En(e) {
|
|
1081
1078
|
if (!e.result || typeof e.result != "object") return !1;
|
|
1082
1079
|
const r = e.result;
|
|
1083
|
-
if (e.expectedResultOwner !== void 0 && r.resultOwner !== e.expectedResultOwner)
|
|
1084
|
-
return !1;
|
|
1085
|
-
if (!Ut({
|
|
1086
|
-
card: e.card,
|
|
1087
|
-
effectiveCardConfig: e.effectiveCardConfig
|
|
1088
|
-
}))
|
|
1089
|
-
return !0;
|
|
1090
|
-
if (!Array.isArray(r.records)) return !1;
|
|
1080
|
+
if (e.expectedResultOwner !== void 0 && r.resultOwner !== e.expectedResultOwner || !Array.isArray(r.records)) return !1;
|
|
1091
1081
|
const t = Lt({
|
|
1092
1082
|
card: e.card,
|
|
1093
1083
|
effectiveCardConfig: e.effectiveCardConfig,
|
|
@@ -1099,36 +1089,36 @@ function Sn(e) {
|
|
|
1099
1089
|
});
|
|
1100
1090
|
return t.kind === "inactive" || t.kind === "loaded_empty" || t.kind === "loaded_valid";
|
|
1101
1091
|
}
|
|
1102
|
-
function
|
|
1092
|
+
function be(e) {
|
|
1103
1093
|
return !e || typeof e != "object" ? !1 : Array.isArray(e.cards);
|
|
1104
1094
|
}
|
|
1105
|
-
function
|
|
1095
|
+
function Ut(e) {
|
|
1106
1096
|
if (!e)
|
|
1107
1097
|
return null;
|
|
1108
1098
|
if (typeof e == "string")
|
|
1109
1099
|
try {
|
|
1110
1100
|
const r = JSON.parse(e);
|
|
1111
|
-
return
|
|
1101
|
+
return be(r) ? r : null;
|
|
1112
1102
|
} catch {
|
|
1113
1103
|
return null;
|
|
1114
1104
|
}
|
|
1115
|
-
return
|
|
1105
|
+
return be(e) ? e : null;
|
|
1116
1106
|
}
|
|
1117
1107
|
function Pe(e) {
|
|
1118
1108
|
var r;
|
|
1119
1109
|
return (r = e == null ? void 0 : e.cards) != null && r.length ? e.activeCardId && e.cards.find((t) => t.id === e.activeCardId) || e.cards[0] : null;
|
|
1120
1110
|
}
|
|
1121
|
-
function
|
|
1111
|
+
function xn(e) {
|
|
1122
1112
|
var t;
|
|
1123
1113
|
const r = (e == null ? void 0 : e.frameObject) ?? ((t = e == null ? void 0 : e.visual) == null ? void 0 : t.frameObject);
|
|
1124
|
-
return Pe(
|
|
1114
|
+
return Pe(Ut(r));
|
|
1125
1115
|
}
|
|
1126
|
-
function
|
|
1116
|
+
function ue(e) {
|
|
1127
1117
|
if (!(e != null && e.expectedType)) return "table";
|
|
1128
1118
|
const r = Array.isArray(e.expectedType) ? e.expectedType[0] : e.expectedType;
|
|
1129
|
-
return
|
|
1119
|
+
return qt(r) ? r : "table";
|
|
1130
1120
|
}
|
|
1131
|
-
const
|
|
1121
|
+
const jt = [
|
|
1132
1122
|
"bar",
|
|
1133
1123
|
"horizontalBar",
|
|
1134
1124
|
"line",
|
|
@@ -1160,8 +1150,8 @@ const Gt = [
|
|
|
1160
1150
|
"treemap",
|
|
1161
1151
|
"custom"
|
|
1162
1152
|
];
|
|
1163
|
-
function
|
|
1164
|
-
return
|
|
1153
|
+
function qt(e) {
|
|
1154
|
+
return jt.includes(e);
|
|
1165
1155
|
}
|
|
1166
1156
|
function G(e) {
|
|
1167
1157
|
const r = e.position;
|
|
@@ -1204,54 +1194,54 @@ function De(e, r) {
|
|
|
1204
1194
|
if (!e || e.length === 0) return;
|
|
1205
1195
|
const t = [], n = [], o = [];
|
|
1206
1196
|
e.forEach((s) => {
|
|
1207
|
-
const
|
|
1208
|
-
|
|
1197
|
+
const f = j(s.position);
|
|
1198
|
+
f && (f.kind === "number" ? t.push(s) : f.kind === "range" ? n.push(s) : f.kind === "dynamic" && o.push(s));
|
|
1209
1199
|
});
|
|
1210
1200
|
const a = t.find((s) => {
|
|
1211
|
-
const
|
|
1212
|
-
return (
|
|
1201
|
+
const f = j(s.position);
|
|
1202
|
+
return (f == null ? void 0 : f.kind) === "number" && f.start === r;
|
|
1213
1203
|
});
|
|
1214
1204
|
if (a) return a;
|
|
1215
1205
|
const l = n.sort(
|
|
1216
|
-
(s,
|
|
1206
|
+
(s, f) => G(s) - G(f)
|
|
1217
1207
|
).find((s) => {
|
|
1218
|
-
const
|
|
1219
|
-
return (
|
|
1208
|
+
const f = j(s.position);
|
|
1209
|
+
return (f == null ? void 0 : f.kind) === "range" && r >= f.start && r <= f.end;
|
|
1220
1210
|
});
|
|
1221
1211
|
if (l) return l;
|
|
1222
1212
|
const c = o.map((s) => ({
|
|
1223
1213
|
slot: s,
|
|
1224
1214
|
parsed: j(s.position)
|
|
1225
1215
|
})).filter((s) => {
|
|
1226
|
-
var
|
|
1227
|
-
return ((
|
|
1216
|
+
var f;
|
|
1217
|
+
return ((f = s.parsed) == null ? void 0 : f.kind) === "dynamic";
|
|
1228
1218
|
}).sort(
|
|
1229
|
-
(s,
|
|
1230
|
-
var
|
|
1231
|
-
return (((
|
|
1219
|
+
(s, f) => {
|
|
1220
|
+
var u, d;
|
|
1221
|
+
return (((u = s.parsed) == null ? void 0 : u.start) ?? 0) - (((d = f.parsed) == null ? void 0 : d.start) ?? 0);
|
|
1232
1222
|
}
|
|
1233
1223
|
).filter((s) => {
|
|
1234
|
-
var
|
|
1235
|
-
return r >= (((
|
|
1224
|
+
var f;
|
|
1225
|
+
return r >= (((f = s.parsed) == null ? void 0 : f.start) ?? 0);
|
|
1236
1226
|
}).sort(
|
|
1237
|
-
(s,
|
|
1238
|
-
var
|
|
1239
|
-
return (((
|
|
1227
|
+
(s, f) => {
|
|
1228
|
+
var u, d;
|
|
1229
|
+
return (((u = f.parsed) == null ? void 0 : u.start) ?? 0) - (((d = s.parsed) == null ? void 0 : d.start) ?? 0);
|
|
1240
1230
|
}
|
|
1241
1231
|
)[0];
|
|
1242
1232
|
return c == null ? void 0 : c.slot;
|
|
1243
1233
|
}
|
|
1244
|
-
function
|
|
1234
|
+
function Gt(e, r) {
|
|
1245
1235
|
const t = De(e, r);
|
|
1246
1236
|
if (t)
|
|
1247
|
-
return
|
|
1237
|
+
return ue(t);
|
|
1248
1238
|
}
|
|
1249
|
-
function
|
|
1239
|
+
function Ht(e, r) {
|
|
1250
1240
|
var n;
|
|
1251
1241
|
const t = (n = e == null ? void 0 : e.customCardPreferences) == null ? void 0 : n.slotIndex;
|
|
1252
1242
|
return typeof t == "number" ? t : r;
|
|
1253
1243
|
}
|
|
1254
|
-
function
|
|
1244
|
+
function Ie(e, r) {
|
|
1255
1245
|
var t;
|
|
1256
1246
|
if (!((t = e == null ? void 0 : e.customCardPreferences) != null && t.url))
|
|
1257
1247
|
return !1;
|
|
@@ -1269,18 +1259,18 @@ function we(e, r) {
|
|
|
1269
1259
|
}
|
|
1270
1260
|
return !1;
|
|
1271
1261
|
}
|
|
1272
|
-
function
|
|
1262
|
+
function Wt(e) {
|
|
1273
1263
|
const r = [];
|
|
1274
1264
|
let t = -1;
|
|
1275
1265
|
e.forEach((n, o) => {
|
|
1276
|
-
const a =
|
|
1266
|
+
const a = Ht(n, o);
|
|
1277
1267
|
a > t && (t = a), r[a] = n ?? null;
|
|
1278
1268
|
});
|
|
1279
1269
|
for (let n = 0; n <= t; n += 1)
|
|
1280
1270
|
n in r || (r[n] = null);
|
|
1281
1271
|
return r;
|
|
1282
1272
|
}
|
|
1283
|
-
function
|
|
1273
|
+
function Sn(e) {
|
|
1284
1274
|
return e.map((r, t) => !r.customCardPreferences || r.customCardPreferences.slotIndex === t ? r : {
|
|
1285
1275
|
...r,
|
|
1286
1276
|
customCardPreferences: {
|
|
@@ -1289,17 +1279,17 @@ function Fn(e) {
|
|
|
1289
1279
|
}
|
|
1290
1280
|
});
|
|
1291
1281
|
}
|
|
1292
|
-
function
|
|
1282
|
+
function _n(e) {
|
|
1293
1283
|
const r = Me(e);
|
|
1294
1284
|
if (r)
|
|
1295
|
-
return
|
|
1285
|
+
return ue(r);
|
|
1296
1286
|
}
|
|
1297
|
-
function
|
|
1287
|
+
function Fn(e, r, t) {
|
|
1298
1288
|
if (!e) return;
|
|
1299
|
-
const n =
|
|
1289
|
+
const n = Gt(t, r);
|
|
1300
1290
|
return e.type === "custom" && n ? n : e.type;
|
|
1301
1291
|
}
|
|
1302
|
-
function
|
|
1292
|
+
function Rn(e, r, t) {
|
|
1303
1293
|
var v;
|
|
1304
1294
|
const n = {
|
|
1305
1295
|
dataSource: t.dataSource,
|
|
@@ -1318,19 +1308,19 @@ function Bn(e, r, t) {
|
|
|
1318
1308
|
pluginChartType: r.chartType,
|
|
1319
1309
|
minInputs: r.minInputs,
|
|
1320
1310
|
maxInputs: r.maxInputs
|
|
1321
|
-
}, a = r.minInputs || 1, l = e.map((h) => ({ slot: h, parsed: j(h.position) })).filter((h) => h.parsed !== null).reduce((h,
|
|
1322
|
-
const w =
|
|
1311
|
+
}, a = r.minInputs || 1, l = e.map((h) => ({ slot: h, parsed: j(h.position) })).filter((h) => h.parsed !== null).reduce((h, b) => {
|
|
1312
|
+
const w = b.parsed.end;
|
|
1323
1313
|
return Number.isFinite(w) ? Math.max(h, w) : h;
|
|
1324
1314
|
}, -1), m = Math.max(a, l + 1), c = Me(e), s = c ? G(c) : 0;
|
|
1325
|
-
let
|
|
1326
|
-
const
|
|
1315
|
+
let f = !1;
|
|
1316
|
+
const u = [];
|
|
1327
1317
|
for (let h = 0; h < m; h += 1) {
|
|
1328
|
-
const
|
|
1318
|
+
const b = De(e, h), w = ue(b), g = !f && h === s, C = h, E = {
|
|
1329
1319
|
...n,
|
|
1330
1320
|
id: st(),
|
|
1331
|
-
title: (g ? c == null ? void 0 : c.label :
|
|
1332
|
-
tabTitle: (g ? c == null ? void 0 : c.label :
|
|
1333
|
-
description: (g ? c == null ? void 0 : c.description :
|
|
1321
|
+
title: (g ? c == null ? void 0 : c.label : b == null ? void 0 : b.label) || `Tab ${h + 1}`,
|
|
1322
|
+
tabTitle: (g ? c == null ? void 0 : c.label : b == null ? void 0 : b.label) || `Tab ${h + 1}`,
|
|
1323
|
+
description: (g ? c == null ? void 0 : c.description : b == null ? void 0 : b.description) || "",
|
|
1334
1324
|
type: w,
|
|
1335
1325
|
sql: "",
|
|
1336
1326
|
preferences: {
|
|
@@ -1339,41 +1329,41 @@ function Bn(e, r, t) {
|
|
|
1339
1329
|
...g && {
|
|
1340
1330
|
customCardPreferences: {
|
|
1341
1331
|
...o,
|
|
1342
|
-
slotIndex:
|
|
1332
|
+
slotIndex: C
|
|
1343
1333
|
}
|
|
1344
1334
|
},
|
|
1345
1335
|
...!g && {
|
|
1346
1336
|
customCardPreferences: {
|
|
1347
|
-
slotIndex:
|
|
1337
|
+
slotIndex: C
|
|
1348
1338
|
}
|
|
1349
1339
|
}
|
|
1350
1340
|
};
|
|
1351
|
-
g && (
|
|
1341
|
+
g && (f = !0), u.push(E);
|
|
1352
1342
|
}
|
|
1353
|
-
if (!
|
|
1354
|
-
const h = ((v =
|
|
1355
|
-
|
|
1356
|
-
...
|
|
1357
|
-
type:
|
|
1343
|
+
if (!f && u.length > 0) {
|
|
1344
|
+
const h = ((v = u[0].customCardPreferences) == null ? void 0 : v.slotIndex) ?? 0;
|
|
1345
|
+
u[0] = {
|
|
1346
|
+
...u[0],
|
|
1347
|
+
type: u[0].type,
|
|
1358
1348
|
customCardPreferences: {
|
|
1359
1349
|
...o,
|
|
1360
1350
|
slotIndex: h
|
|
1361
1351
|
}
|
|
1362
1352
|
};
|
|
1363
1353
|
}
|
|
1364
|
-
const d =
|
|
1354
|
+
const d = u.findIndex(
|
|
1365
1355
|
(h) => {
|
|
1366
|
-
var
|
|
1367
|
-
return !!((
|
|
1356
|
+
var b;
|
|
1357
|
+
return !!((b = h.customCardPreferences) != null && b.url);
|
|
1368
1358
|
}
|
|
1369
1359
|
);
|
|
1370
1360
|
if (d > 0) {
|
|
1371
|
-
const [h] =
|
|
1372
|
-
|
|
1361
|
+
const [h] = u.splice(d, 1);
|
|
1362
|
+
u.unshift(h);
|
|
1373
1363
|
}
|
|
1374
|
-
return
|
|
1364
|
+
return u;
|
|
1375
1365
|
}
|
|
1376
|
-
function
|
|
1366
|
+
function Yt({
|
|
1377
1367
|
frame: e,
|
|
1378
1368
|
configCard: r,
|
|
1379
1369
|
isMultiInputVisual: t
|
|
@@ -1388,10 +1378,10 @@ function Jt({
|
|
|
1388
1378
|
return e.cards.find((m) => m.id === i) || null;
|
|
1389
1379
|
}) : e.cards;
|
|
1390
1380
|
}
|
|
1391
|
-
function
|
|
1392
|
-
return r &&
|
|
1381
|
+
function Zt(e, r) {
|
|
1382
|
+
return r && Ie(r, e.cards) ? r : e.cards.find((t) => Ie(t, e.cards)) || null;
|
|
1393
1383
|
}
|
|
1394
|
-
function
|
|
1384
|
+
function Jt(e, r) {
|
|
1395
1385
|
var o, a;
|
|
1396
1386
|
if (!e) return null;
|
|
1397
1387
|
const t = r == null ? void 0 : r.visualType;
|
|
@@ -1401,10 +1391,10 @@ function Xt(e, r) {
|
|
|
1401
1391
|
const n = (o = e.customCardPreferences) == null ? void 0 : o.visualType;
|
|
1402
1392
|
return n || ((a = e.customCardPreferences) != null && a.dataInputCardIds ? "multiple" : null);
|
|
1403
1393
|
}
|
|
1404
|
-
function
|
|
1394
|
+
function An(e) {
|
|
1405
1395
|
return e.visualType === "multiple" || e.slots && e.slots.length > 0 || (e.minInputs || 0) > 1 || (e.maxInputs || 0) > 1 || (e.dataInputs || []).length > 1 ? "multiple" : "single";
|
|
1406
1396
|
}
|
|
1407
|
-
function
|
|
1397
|
+
function Bn(e) {
|
|
1408
1398
|
return Array.isArray(e) ? { records: e } : e;
|
|
1409
1399
|
}
|
|
1410
1400
|
class W extends Error {
|
|
@@ -1413,12 +1403,12 @@ class W extends Error {
|
|
|
1413
1403
|
super(
|
|
1414
1404
|
`Unable to resolve ${n} while capturing report presentation. Refresh the authoring page and select the attachment again.`
|
|
1415
1405
|
);
|
|
1416
|
-
|
|
1417
|
-
|
|
1406
|
+
_(this, "code", "temporal_snapshot_target_not_found");
|
|
1407
|
+
_(this, "selection");
|
|
1418
1408
|
this.name = "TemporalSnapshotSelectionError", this.selection = t;
|
|
1419
1409
|
}
|
|
1420
1410
|
}
|
|
1421
|
-
function
|
|
1411
|
+
function Qt(e, r) {
|
|
1422
1412
|
var o;
|
|
1423
1413
|
const t = [], n = /* @__PURE__ */ new Map();
|
|
1424
1414
|
for (const a of r) {
|
|
@@ -1432,25 +1422,25 @@ function er(e, r) {
|
|
|
1432
1422
|
let l = !a.cardId;
|
|
1433
1423
|
for (const m of i) {
|
|
1434
1424
|
const c = (((o = m.document) == null ? void 0 : o.sections) || []).flatMap(
|
|
1435
|
-
(
|
|
1425
|
+
(u) => u.type === "table" || u.type === "chart" ? [u.card] : []
|
|
1436
1426
|
), s = (m.frames || []).flatMap(
|
|
1437
|
-
(
|
|
1427
|
+
(u) => Xt(u, a.cardId)
|
|
1438
1428
|
);
|
|
1439
1429
|
s.length > 0 && (l = !0);
|
|
1440
|
-
const
|
|
1430
|
+
const f = [
|
|
1441
1431
|
...s,
|
|
1442
1432
|
...(m.cards || []).filter(
|
|
1443
|
-
(
|
|
1433
|
+
(u) => !a.cardId || a.cardId === u.id
|
|
1444
1434
|
),
|
|
1445
1435
|
...c.filter(
|
|
1446
|
-
(
|
|
1436
|
+
(u) => !a.cardId || a.cardId === u.id
|
|
1447
1437
|
)
|
|
1448
1438
|
];
|
|
1449
|
-
for (const
|
|
1439
|
+
for (const u of f) {
|
|
1450
1440
|
l = !0;
|
|
1451
1441
|
const d = n.get(a.attachmentIndex) ?? /* @__PURE__ */ new Set();
|
|
1452
|
-
d.has(
|
|
1453
|
-
card:
|
|
1442
|
+
d.has(u.id) || (d.add(u.id), n.set(a.attachmentIndex, d), t.push({
|
|
1443
|
+
card: u,
|
|
1454
1444
|
...a.attachmentIndex !== void 0 ? { attachmentIndex: a.attachmentIndex } : {}
|
|
1455
1445
|
}));
|
|
1456
1446
|
}
|
|
@@ -1460,29 +1450,29 @@ function er(e, r) {
|
|
|
1460
1450
|
}
|
|
1461
1451
|
return t;
|
|
1462
1452
|
}
|
|
1463
|
-
function
|
|
1453
|
+
function Xt(e, r) {
|
|
1464
1454
|
var i;
|
|
1465
1455
|
const t = r ? (i = e.cards) == null ? void 0 : i.find((l) => l.id === r) : Pe(e);
|
|
1466
1456
|
if (!t) return [];
|
|
1467
|
-
const n =
|
|
1457
|
+
const n = Zt(e, t), o = (e.cards || []).filter(
|
|
1468
1458
|
(l) => {
|
|
1469
1459
|
var m;
|
|
1470
1460
|
return typeof ((m = l.customCardPreferences) == null ? void 0 : m.slotIndex) == "number";
|
|
1471
1461
|
}
|
|
1472
|
-
).length > 1, a = n != null && (
|
|
1473
|
-
return !n || !a ? [t] :
|
|
1474
|
-
|
|
1462
|
+
).length > 1, a = n != null && (Jt(n) === "multiple" || o);
|
|
1463
|
+
return !n || !a ? [t] : Wt(
|
|
1464
|
+
Yt({
|
|
1475
1465
|
frame: e,
|
|
1476
1466
|
configCard: n,
|
|
1477
1467
|
isMultiInputVisual: !0
|
|
1478
1468
|
})
|
|
1479
1469
|
).filter((l) => l !== null);
|
|
1480
1470
|
}
|
|
1481
|
-
function
|
|
1482
|
-
return
|
|
1471
|
+
function Pn(e) {
|
|
1472
|
+
return Qt(e.dashboard, e.selections).flatMap(
|
|
1483
1473
|
({ card: r, attachmentIndex: t }) => {
|
|
1484
|
-
var s,
|
|
1485
|
-
const n = ((s = e.resolveCardConfig) == null ? void 0 : s.call(e, r)) ?? r.config, o =
|
|
1474
|
+
var s, f, u, d;
|
|
1475
|
+
const n = ((s = e.resolveCardConfig) == null ? void 0 : s.call(e, r)) ?? r.config, o = _t({
|
|
1486
1476
|
card: r,
|
|
1487
1477
|
cardConfig: n
|
|
1488
1478
|
}), a = {
|
|
@@ -1496,7 +1486,7 @@ function Dn(e) {
|
|
|
1496
1486
|
fieldId: v.id,
|
|
1497
1487
|
role: v.role
|
|
1498
1488
|
},
|
|
1499
|
-
format:
|
|
1489
|
+
format: Dt(
|
|
1500
1490
|
v,
|
|
1501
1491
|
{
|
|
1502
1492
|
dateStyle: e.valueFormatPreferences.dateStyle,
|
|
@@ -1525,27 +1515,28 @@ function Dn(e) {
|
|
|
1525
1515
|
field: g,
|
|
1526
1516
|
role: "detail"
|
|
1527
1517
|
}))
|
|
1528
|
-
],
|
|
1518
|
+
], b = /* @__PURE__ */ new Map(), w = new Set(
|
|
1529
1519
|
h.map(
|
|
1530
|
-
({ field: g, role:
|
|
1520
|
+
({ field: g, role: C }) => Ct(g, C)
|
|
1531
1521
|
)
|
|
1532
1522
|
);
|
|
1533
1523
|
for (const { field: g } of h) {
|
|
1534
|
-
const
|
|
1535
|
-
|
|
1524
|
+
const C = g.label;
|
|
1525
|
+
C && b.set(C, (b.get(C) || 0) + 1);
|
|
1536
1526
|
}
|
|
1537
1527
|
for (const g of v) {
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1528
|
+
const C = Te(g.dataType);
|
|
1529
|
+
if (C !== "date" && C !== "datetime") continue;
|
|
1530
|
+
const E = Tt(g), S = g.label, A = $t({
|
|
1531
|
+
label: S,
|
|
1532
|
+
labelCount: S && b.get(S) || 0,
|
|
1533
|
+
rawKey: E,
|
|
1543
1534
|
rawKeys: w
|
|
1544
1535
|
});
|
|
1545
|
-
if (!
|
|
1536
|
+
if (!A) throw new W(a);
|
|
1546
1537
|
l.push({
|
|
1547
1538
|
scope: a,
|
|
1548
|
-
target: { kind: "column", columnKey:
|
|
1539
|
+
target: { kind: "column", columnKey: A },
|
|
1549
1540
|
format: q({
|
|
1550
1541
|
format: Be(g),
|
|
1551
1542
|
preferences: e.valueFormatPreferences,
|
|
@@ -1553,19 +1544,19 @@ function Dn(e) {
|
|
|
1553
1544
|
})
|
|
1554
1545
|
});
|
|
1555
1546
|
}
|
|
1556
|
-
} else if (m === "freeform" && ((
|
|
1547
|
+
} else if (m === "freeform" && ((f = r.sql) != null && f.trim()) && !c.trim())
|
|
1557
1548
|
for (const [v, h] of Object.entries(
|
|
1558
|
-
((d = (
|
|
1549
|
+
((d = (u = r.preferences) == null ? void 0 : u.tablePrefs) == null ? void 0 : d.columnSettingsMap) || {}
|
|
1559
1550
|
)) {
|
|
1560
1551
|
if (h.type !== "date") continue;
|
|
1561
|
-
const
|
|
1552
|
+
const b = me(
|
|
1562
1553
|
h.dateFormat
|
|
1563
1554
|
);
|
|
1564
|
-
|
|
1555
|
+
b && l.push({
|
|
1565
1556
|
scope: a,
|
|
1566
1557
|
target: { kind: "column", columnKey: v },
|
|
1567
1558
|
format: q({
|
|
1568
|
-
format:
|
|
1559
|
+
format: b,
|
|
1569
1560
|
preferences: e.valueFormatPreferences,
|
|
1570
1561
|
calendar: e.calendar
|
|
1571
1562
|
})
|
|
@@ -1575,13 +1566,13 @@ function Dn(e) {
|
|
|
1575
1566
|
}
|
|
1576
1567
|
);
|
|
1577
1568
|
}
|
|
1578
|
-
function
|
|
1569
|
+
function er(e) {
|
|
1579
1570
|
return !!e && typeof e == "object" && !Array.isArray(e);
|
|
1580
1571
|
}
|
|
1581
|
-
function
|
|
1582
|
-
return
|
|
1572
|
+
function B(e, r, t) {
|
|
1573
|
+
return er(e) ? e : (t.push({ field: r, message: "Expected an object." }), {});
|
|
1583
1574
|
}
|
|
1584
|
-
function
|
|
1575
|
+
function P(e, r, t, n) {
|
|
1585
1576
|
const o = new Set(t);
|
|
1586
1577
|
Object.keys(e).forEach((a) => {
|
|
1587
1578
|
o.has(a) || n.push({
|
|
@@ -1590,7 +1581,7 @@ function B(e, r, t, n) {
|
|
|
1590
1581
|
});
|
|
1591
1582
|
});
|
|
1592
1583
|
}
|
|
1593
|
-
function
|
|
1584
|
+
function D(e, r, t, n, o = {}) {
|
|
1594
1585
|
if (e == null)
|
|
1595
1586
|
return;
|
|
1596
1587
|
if (typeof e != "string") {
|
|
@@ -1611,8 +1602,8 @@ function M(e, r, t, n, o = {}) {
|
|
|
1611
1602
|
}
|
|
1612
1603
|
return a;
|
|
1613
1604
|
}
|
|
1614
|
-
function
|
|
1615
|
-
const n =
|
|
1605
|
+
function fe(e, r, t) {
|
|
1606
|
+
const n = D(e, r, 2e3, t);
|
|
1616
1607
|
if (n)
|
|
1617
1608
|
try {
|
|
1618
1609
|
return new URL(n), n;
|
|
@@ -1621,13 +1612,13 @@ function pe(e, r, t) {
|
|
|
1621
1612
|
return;
|
|
1622
1613
|
}
|
|
1623
1614
|
}
|
|
1624
|
-
function
|
|
1625
|
-
const n =
|
|
1626
|
-
|
|
1615
|
+
function we(e, r, t) {
|
|
1616
|
+
const n = B(e, r, t);
|
|
1617
|
+
P(n, r, ["tokens", "components"], t);
|
|
1627
1618
|
const o = {};
|
|
1628
1619
|
if (n.tokens !== void 0) {
|
|
1629
|
-
const a =
|
|
1630
|
-
|
|
1620
|
+
const a = B(n.tokens, `${r}.tokens`, t);
|
|
1621
|
+
P(
|
|
1631
1622
|
a,
|
|
1632
1623
|
`${r}.tokens`,
|
|
1633
1624
|
["color", "typography"],
|
|
@@ -1635,7 +1626,7 @@ function Ce(e, r, t) {
|
|
|
1635
1626
|
);
|
|
1636
1627
|
const i = {};
|
|
1637
1628
|
if (a.color !== void 0) {
|
|
1638
|
-
const l =
|
|
1629
|
+
const l = B(
|
|
1639
1630
|
a.color,
|
|
1640
1631
|
`${r}.tokens.color`,
|
|
1641
1632
|
t
|
|
@@ -1652,37 +1643,37 @@ function Ce(e, r, t) {
|
|
|
1652
1643
|
"warning",
|
|
1653
1644
|
"info"
|
|
1654
1645
|
];
|
|
1655
|
-
|
|
1646
|
+
P(l, `${r}.tokens.color`, m, t);
|
|
1656
1647
|
const c = {};
|
|
1657
1648
|
m.forEach((s) => {
|
|
1658
|
-
const
|
|
1649
|
+
const f = D(
|
|
1659
1650
|
l[s],
|
|
1660
1651
|
`${r}.tokens.color.${s}`,
|
|
1661
1652
|
120,
|
|
1662
1653
|
t
|
|
1663
1654
|
);
|
|
1664
|
-
|
|
1655
|
+
f !== void 0 && (c[s] = f);
|
|
1665
1656
|
}), i.color = c;
|
|
1666
1657
|
}
|
|
1667
1658
|
if (a.typography !== void 0) {
|
|
1668
|
-
const l =
|
|
1659
|
+
const l = B(
|
|
1669
1660
|
a.typography,
|
|
1670
1661
|
`${r}.tokens.typography`,
|
|
1671
1662
|
t
|
|
1672
1663
|
);
|
|
1673
|
-
|
|
1664
|
+
P(
|
|
1674
1665
|
l,
|
|
1675
1666
|
`${r}.tokens.typography`,
|
|
1676
1667
|
["fontFamily", "monoFontFamily"],
|
|
1677
1668
|
t
|
|
1678
1669
|
);
|
|
1679
|
-
const m =
|
|
1670
|
+
const m = D(
|
|
1680
1671
|
l.fontFamily,
|
|
1681
1672
|
`${r}.tokens.typography.fontFamily`,
|
|
1682
1673
|
500,
|
|
1683
1674
|
t,
|
|
1684
1675
|
{ allowEmpty: !0 }
|
|
1685
|
-
), c =
|
|
1676
|
+
), c = D(
|
|
1686
1677
|
l.monoFontFamily,
|
|
1687
1678
|
`${r}.tokens.typography.monoFontFamily`,
|
|
1688
1679
|
500,
|
|
@@ -1697,24 +1688,24 @@ function Ce(e, r, t) {
|
|
|
1697
1688
|
o.tokens = i;
|
|
1698
1689
|
}
|
|
1699
1690
|
if (n.components !== void 0) {
|
|
1700
|
-
const a =
|
|
1691
|
+
const a = B(
|
|
1701
1692
|
n.components,
|
|
1702
1693
|
`${r}.components`,
|
|
1703
1694
|
t
|
|
1704
1695
|
);
|
|
1705
|
-
if (
|
|
1706
|
-
const i =
|
|
1696
|
+
if (P(a, `${r}.components`, ["chart"], t), a.chart !== void 0) {
|
|
1697
|
+
const i = B(
|
|
1707
1698
|
a.chart,
|
|
1708
1699
|
`${r}.components.chart`,
|
|
1709
1700
|
t
|
|
1710
1701
|
);
|
|
1711
|
-
|
|
1702
|
+
P(i, `${r}.components.chart`, ["palette"], t);
|
|
1712
1703
|
let l;
|
|
1713
1704
|
i.palette !== void 0 && (Array.isArray(i.palette) ? i.palette.length > 20 ? t.push({
|
|
1714
1705
|
field: `${r}.components.chart.palette`,
|
|
1715
1706
|
message: "Expected 20 colors or fewer."
|
|
1716
1707
|
}) : l = i.palette.map(
|
|
1717
|
-
(m, c) =>
|
|
1708
|
+
(m, c) => D(
|
|
1718
1709
|
m,
|
|
1719
1710
|
`${r}.components.chart.palette.${c}`,
|
|
1720
1711
|
120,
|
|
@@ -1730,22 +1721,22 @@ function Ce(e, r, t) {
|
|
|
1730
1721
|
}
|
|
1731
1722
|
return o;
|
|
1732
1723
|
}
|
|
1733
|
-
function
|
|
1734
|
-
const t = "presentation.appearance", n =
|
|
1735
|
-
|
|
1724
|
+
function tr(e, r) {
|
|
1725
|
+
const t = "presentation.appearance", n = B(e, t, r);
|
|
1726
|
+
P(n, t, ["version", "schemes"], r);
|
|
1736
1727
|
const o = {};
|
|
1737
1728
|
if (n.version !== void 0 && (typeof n.version != "number" || !Number.isFinite(n.version) ? r.push({ field: `${t}.version`, message: "Expected a number." }) : o.version = n.version), n.schemes !== void 0) {
|
|
1738
|
-
const a =
|
|
1739
|
-
|
|
1729
|
+
const a = B(n.schemes, `${t}.schemes`, r);
|
|
1730
|
+
P(a, `${t}.schemes`, ["light", "dark"], r), o.schemes = {
|
|
1740
1731
|
...a.light !== void 0 ? {
|
|
1741
|
-
light:
|
|
1732
|
+
light: we(
|
|
1742
1733
|
a.light,
|
|
1743
1734
|
`${t}.schemes.light`,
|
|
1744
1735
|
r
|
|
1745
1736
|
)
|
|
1746
1737
|
} : {},
|
|
1747
1738
|
...a.dark !== void 0 ? {
|
|
1748
|
-
dark:
|
|
1739
|
+
dark: we(
|
|
1749
1740
|
a.dark,
|
|
1750
1741
|
`${t}.schemes.dark`,
|
|
1751
1742
|
r
|
|
@@ -1755,23 +1746,23 @@ function nr(e, r) {
|
|
|
1755
1746
|
}
|
|
1756
1747
|
return o;
|
|
1757
1748
|
}
|
|
1758
|
-
function
|
|
1759
|
-
const t = "presentation.brandOverrides", n =
|
|
1760
|
-
|
|
1761
|
-
const o =
|
|
1749
|
+
function rr(e, r) {
|
|
1750
|
+
const t = "presentation.brandOverrides", n = B(e, t, r);
|
|
1751
|
+
P(n, t, ["brandName", "logoUrl", "link"], r);
|
|
1752
|
+
const o = D(
|
|
1762
1753
|
n.brandName,
|
|
1763
1754
|
`${t}.brandName`,
|
|
1764
1755
|
200,
|
|
1765
1756
|
r
|
|
1766
|
-
), a =
|
|
1757
|
+
), a = fe(n.logoUrl, `${t}.logoUrl`, r), i = D(n.link, `${t}.link`, 120, r);
|
|
1767
1758
|
return {
|
|
1768
1759
|
...o !== void 0 ? { brandName: o } : {},
|
|
1769
1760
|
...a !== void 0 ? { logoUrl: a } : {},
|
|
1770
1761
|
...i !== void 0 ? { link: i } : {}
|
|
1771
1762
|
};
|
|
1772
1763
|
}
|
|
1773
|
-
function
|
|
1774
|
-
const t = "presentation.fragments", n =
|
|
1764
|
+
function nr(e, r) {
|
|
1765
|
+
const t = "presentation.fragments", n = B(e, t, r), o = [
|
|
1775
1766
|
"preHeaderText",
|
|
1776
1767
|
"headerBannerHtml",
|
|
1777
1768
|
"signatureHtml",
|
|
@@ -1779,10 +1770,10 @@ function ar(e, r) {
|
|
|
1779
1770
|
"disclaimerHtml",
|
|
1780
1771
|
"unsubscribeUrl"
|
|
1781
1772
|
];
|
|
1782
|
-
|
|
1773
|
+
P(n, t, o, r);
|
|
1783
1774
|
const a = {};
|
|
1784
1775
|
return o.forEach((i) => {
|
|
1785
|
-
const l = i === "unsubscribeUrl" ?
|
|
1776
|
+
const l = i === "unsubscribeUrl" ? fe(n[i], `${t}.${i}`, r) : D(
|
|
1786
1777
|
n[i],
|
|
1787
1778
|
`${t}.${i}`,
|
|
1788
1779
|
i === "preHeaderText" ? 200 : 5e3,
|
|
@@ -1792,15 +1783,15 @@ function ar(e, r) {
|
|
|
1792
1783
|
l !== void 0 && (a[i] = l);
|
|
1793
1784
|
}), a;
|
|
1794
1785
|
}
|
|
1795
|
-
function
|
|
1786
|
+
function or(e) {
|
|
1796
1787
|
const r = [], t = {};
|
|
1797
|
-
if (e.appearance !== void 0 && (t.appearance =
|
|
1798
|
-
const n =
|
|
1788
|
+
if (e.appearance !== void 0 && (t.appearance = tr(e.appearance, r)), e.brandOverrides !== void 0 && (t.brandOverrides = rr(e.brandOverrides, r)), e.fragments !== void 0 && (t.fragments = nr(e.fragments, r)), e.viewUrl !== void 0) {
|
|
1789
|
+
const n = fe(e.viewUrl, "presentation.viewUrl", r);
|
|
1799
1790
|
n !== void 0 && (t.viewUrl = n);
|
|
1800
1791
|
}
|
|
1801
1792
|
return { value: t, issues: r };
|
|
1802
1793
|
}
|
|
1803
|
-
const
|
|
1794
|
+
const Ke = [
|
|
1804
1795
|
"SUN",
|
|
1805
1796
|
"MON",
|
|
1806
1797
|
"TUE",
|
|
@@ -1808,15 +1799,15 @@ const Oe = [
|
|
|
1808
1799
|
"THU",
|
|
1809
1800
|
"FRI",
|
|
1810
1801
|
"SAT"
|
|
1811
|
-
],
|
|
1812
|
-
|
|
1813
|
-
),
|
|
1802
|
+
], ar = new Map(
|
|
1803
|
+
Ke.map((e, r) => [e, r])
|
|
1804
|
+
), Mn = {
|
|
1814
1805
|
cadence: "weekly",
|
|
1815
1806
|
hour: 9,
|
|
1816
1807
|
minute: 0,
|
|
1817
1808
|
weekdays: [1]
|
|
1818
1809
|
};
|
|
1819
|
-
function
|
|
1810
|
+
function Dn(e) {
|
|
1820
1811
|
if (typeof e != "string" || e.length === 0 || e !== e.trim() || /^(?:(?:UTC|GMT)[+-]|[+-]\d{2}:\d{2}$)/.test(e))
|
|
1821
1812
|
return !1;
|
|
1822
1813
|
try {
|
|
@@ -1825,27 +1816,27 @@ function Kn(e) {
|
|
|
1825
1816
|
return !1;
|
|
1826
1817
|
}
|
|
1827
1818
|
}
|
|
1828
|
-
function
|
|
1819
|
+
function ir(e) {
|
|
1829
1820
|
return Number.isInteger(e.minute) && e.minute >= 0 && e.minute <= 59 && Number.isInteger(e.hour) && e.hour >= 0 && e.hour <= 23;
|
|
1830
1821
|
}
|
|
1831
|
-
function
|
|
1822
|
+
function Oe(e) {
|
|
1832
1823
|
if (e.length === 0) return null;
|
|
1833
1824
|
const r = [...e].sort((t, n) => t - n);
|
|
1834
1825
|
return r.some(
|
|
1835
1826
|
(t, n) => !Number.isInteger(t) || t < 0 || t > 6 || n > 0 && t === r[n - 1]
|
|
1836
1827
|
) ? null : r;
|
|
1837
1828
|
}
|
|
1838
|
-
function
|
|
1839
|
-
if (!
|
|
1829
|
+
function Kn(e) {
|
|
1830
|
+
if (!ir(e))
|
|
1840
1831
|
throw new Error("Choose a valid schedule time.");
|
|
1841
1832
|
const r = `${e.minute} ${e.hour}`;
|
|
1842
1833
|
switch (e.cadence) {
|
|
1843
1834
|
case "daily":
|
|
1844
1835
|
return `${r} * * *`;
|
|
1845
1836
|
case "weekly": {
|
|
1846
|
-
const t =
|
|
1837
|
+
const t = Oe(e.weekdays);
|
|
1847
1838
|
if (!t) throw new Error("Choose at least one weekday.");
|
|
1848
|
-
return `${r} * * ${t.map((n) =>
|
|
1839
|
+
return `${r} * * ${t.map((n) => Ke[n]).join(",")}`;
|
|
1849
1840
|
}
|
|
1850
1841
|
case "twice_monthly":
|
|
1851
1842
|
return `${r} 1,15 * *`;
|
|
@@ -1853,7 +1844,7 @@ function Nn(e) {
|
|
|
1853
1844
|
return `${r} 1 * *`;
|
|
1854
1845
|
}
|
|
1855
1846
|
}
|
|
1856
|
-
function
|
|
1847
|
+
function cr(e) {
|
|
1857
1848
|
if (typeof e != "string" || e.length === 0)
|
|
1858
1849
|
return { ok: !1, issue: "Choose a supported schedule." };
|
|
1859
1850
|
if (e !== e.trim() || e.includes(" "))
|
|
@@ -1873,13 +1864,13 @@ function dr(e) {
|
|
|
1873
1864
|
value: { cadence: "daily", hour: m, minute: l, weekdays: [] }
|
|
1874
1865
|
};
|
|
1875
1866
|
if (o === "*" && i !== "*") {
|
|
1876
|
-
const s = i.split(",").map((d) =>
|
|
1867
|
+
const s = i.split(",").map((d) => ar.get(d));
|
|
1877
1868
|
if (s.some((d) => d === void 0))
|
|
1878
1869
|
return { ok: !1, issue: "Choose a supported schedule." };
|
|
1879
|
-
const
|
|
1880
|
-
return !
|
|
1870
|
+
const f = s, u = Oe(f);
|
|
1871
|
+
return !u || u.some((d, v) => d !== f[v]) ? { ok: !1, issue: "Choose a supported schedule." } : {
|
|
1881
1872
|
ok: !0,
|
|
1882
|
-
value: { cadence: "weekly", hour: m, minute: l, weekdays:
|
|
1873
|
+
value: { cadence: "weekly", hour: m, minute: l, weekdays: u }
|
|
1883
1874
|
};
|
|
1884
1875
|
}
|
|
1885
1876
|
return o === "1,15" && i === "*" ? {
|
|
@@ -1890,14 +1881,14 @@ function dr(e) {
|
|
|
1890
1881
|
value: { cadence: "monthly", hour: m, minute: l, weekdays: [] }
|
|
1891
1882
|
} : { ok: !1, issue: "Choose a supported schedule." };
|
|
1892
1883
|
}
|
|
1893
|
-
function
|
|
1884
|
+
function lr(e, r, t) {
|
|
1894
1885
|
return new Intl.DateTimeFormat(t, {
|
|
1895
1886
|
hour: "numeric",
|
|
1896
1887
|
minute: "2-digit",
|
|
1897
1888
|
timeZone: "UTC"
|
|
1898
1889
|
}).format(new Date(Date.UTC(2020, 0, 1, e, r)));
|
|
1899
1890
|
}
|
|
1900
|
-
function
|
|
1891
|
+
function dr(e, r) {
|
|
1901
1892
|
var t;
|
|
1902
1893
|
if (e === "UTC") return "UTC";
|
|
1903
1894
|
try {
|
|
@@ -1909,11 +1900,11 @@ function mr(e, r) {
|
|
|
1909
1900
|
return null;
|
|
1910
1901
|
}
|
|
1911
1902
|
}
|
|
1912
|
-
function
|
|
1913
|
-
const n =
|
|
1903
|
+
function On(e, r, t = "en-US") {
|
|
1904
|
+
const n = cr(e);
|
|
1914
1905
|
if (!n.ok) return null;
|
|
1915
1906
|
try {
|
|
1916
|
-
const o =
|
|
1907
|
+
const o = lr(n.value.hour, n.value.minute, t), a = dr(r, t);
|
|
1917
1908
|
if (!a) return null;
|
|
1918
1909
|
switch (n.value.cadence) {
|
|
1919
1910
|
case "daily":
|
|
@@ -1936,12 +1927,12 @@ function zn(e, r, t = "en-US") {
|
|
|
1936
1927
|
return null;
|
|
1937
1928
|
}
|
|
1938
1929
|
}
|
|
1939
|
-
const
|
|
1930
|
+
const sr = /* @__PURE__ */ new Set([
|
|
1940
1931
|
"table",
|
|
1941
1932
|
"aggregateTable",
|
|
1942
1933
|
"pivotTable",
|
|
1943
1934
|
"detailTable"
|
|
1944
|
-
]),
|
|
1935
|
+
]), mr = /* @__PURE__ */ new Set([
|
|
1945
1936
|
"bar",
|
|
1946
1937
|
"horizontalBar",
|
|
1947
1938
|
"line",
|
|
@@ -1972,51 +1963,51 @@ const ur = /* @__PURE__ */ new Set([
|
|
|
1972
1963
|
"treemap",
|
|
1973
1964
|
"custom"
|
|
1974
1965
|
]);
|
|
1975
|
-
function
|
|
1966
|
+
function Nn(e) {
|
|
1976
1967
|
var n, o, a;
|
|
1977
|
-
const r =
|
|
1968
|
+
const r = mr.has(e.type) && (e.type !== "custom" || !!((n = e.customCardPreferences) != null && n.url));
|
|
1978
1969
|
return e.type === "text" || !r || mt(e) ? { formats: [], defaultFormat: null } : {
|
|
1979
|
-
formats:
|
|
1970
|
+
formats: ur({
|
|
1980
1971
|
cardType: e.type,
|
|
1981
1972
|
allowDownload: (o = e.preferences) == null ? void 0 : o.allowDownload
|
|
1982
1973
|
}),
|
|
1983
|
-
defaultFormat:
|
|
1974
|
+
defaultFormat: fr({
|
|
1984
1975
|
cardType: e.type,
|
|
1985
1976
|
allowDownload: (a = e.preferences) == null ? void 0 : a.allowDownload
|
|
1986
1977
|
})
|
|
1987
1978
|
};
|
|
1988
1979
|
}
|
|
1989
|
-
function
|
|
1980
|
+
function ur(e) {
|
|
1990
1981
|
return e.allowDownload === !1 ? ["pdf"] : ["pdf", "csv"];
|
|
1991
1982
|
}
|
|
1992
|
-
function
|
|
1993
|
-
return
|
|
1983
|
+
function fr(e) {
|
|
1984
|
+
return sr.has(e.cardType) && e.allowDownload !== !1 ? "csv" : "pdf";
|
|
1994
1985
|
}
|
|
1995
|
-
function
|
|
1986
|
+
function zn(e) {
|
|
1996
1987
|
return e != null && e.role ? e.type === "tenant" ? e.role === "POWER_USER" : ["AUTHOR", "ADMIN", "SUPER_ADMIN"].includes(e.role) : !1;
|
|
1997
1988
|
}
|
|
1998
|
-
function
|
|
1989
|
+
function Ln(e) {
|
|
1999
1990
|
return e.canCreate ? [
|
|
2000
1991
|
...e.scheduledReportAvailable ? ["scheduled_report"] : [],
|
|
2001
1992
|
...e.analyticalBriefingsEnabled ? ["analytical_briefing"] : []
|
|
2002
1993
|
] : [];
|
|
2003
1994
|
}
|
|
2004
|
-
function
|
|
1995
|
+
function pr(e) {
|
|
2005
1996
|
const r = (e == null ? void 0 : e.channels) ?? [];
|
|
2006
1997
|
return r.length === 1 && r[0] === "EMAIL";
|
|
2007
1998
|
}
|
|
2008
|
-
function
|
|
2009
|
-
return e.body.type === "generated_analysis" ? "Analytical briefing" : e.body.type === "custom_message" && e.attachments.length > 0 &&
|
|
1999
|
+
function yr(e) {
|
|
2000
|
+
return e.body.type === "generated_analysis" ? "Analytical briefing" : e.body.type === "custom_message" && e.attachments.length > 0 && pr(e.deliveryConfig) ? e.scheduleExpr ? "Scheduled report" : "On-demand report" : "Plain briefing";
|
|
2010
2001
|
}
|
|
2011
|
-
function
|
|
2012
|
-
const r =
|
|
2002
|
+
function Vn(e) {
|
|
2003
|
+
const r = yr(e), t = r === "Scheduled report" || r === "On-demand report" ? "report" : "briefing";
|
|
2013
2004
|
return {
|
|
2014
2005
|
typeLabel: r,
|
|
2015
2006
|
noun: t,
|
|
2016
2007
|
pluralNoun: t === "report" ? "reports" : "briefings"
|
|
2017
2008
|
};
|
|
2018
2009
|
}
|
|
2019
|
-
const ce = "BRIEFING",
|
|
2010
|
+
const ce = "BRIEFING", hr = ["markdown", "html"], le = ["markdown"], te = 20, y = {
|
|
2020
2011
|
name: 500,
|
|
2021
2012
|
description: 2e3,
|
|
2022
2013
|
instruction: 5e4,
|
|
@@ -2032,7 +2023,7 @@ const ce = "BRIEFING", vr = ["markdown", "html"], le = ["markdown"], te = 20, y
|
|
|
2032
2023
|
presentationTone: 500,
|
|
2033
2024
|
presentationFormat: 2e3,
|
|
2034
2025
|
id: 500
|
|
2035
|
-
},
|
|
2026
|
+
}, F = {
|
|
2036
2027
|
maxBlocks: 50,
|
|
2037
2028
|
maxTableRows: 100,
|
|
2038
2029
|
maxTableColumns: 20,
|
|
@@ -2045,7 +2036,7 @@ const ce = "BRIEFING", vr = ["markdown", "html"], le = ["markdown"], te = 20, y
|
|
|
2045
2036
|
// tiny tiles in narrow client panels; 2-up was the chosen layout).
|
|
2046
2037
|
maxKpiTiles: 8
|
|
2047
2038
|
};
|
|
2048
|
-
function
|
|
2039
|
+
function gr(e) {
|
|
2049
2040
|
if (e === null || typeof e != "object" || Array.isArray(e))
|
|
2050
2041
|
return !1;
|
|
2051
2042
|
const r = e;
|
|
@@ -2055,17 +2046,17 @@ function br(e) {
|
|
|
2055
2046
|
if (t === null || typeof t != "object" || Array.isArray(t))
|
|
2056
2047
|
return !1;
|
|
2057
2048
|
const n = t;
|
|
2058
|
-
return (n.kind === "metric" && typeof n.metricId == "string" && !!n.metricId.trim() || n.kind === "column" && typeof n.columnKey == "string" && !!n.columnKey.trim() || n.kind === "matrix_measure" && typeof n.measureId == "string" && !!n.measureId.trim()) &&
|
|
2049
|
+
return (n.kind === "metric" && typeof n.metricId == "string" && !!n.metricId.trim() || n.kind === "column" && typeof n.columnKey == "string" && !!n.columnKey.trim() || n.kind === "matrix_measure" && typeof n.measureId == "string" && !!n.measureId.trim()) && Ce(r.format).ok;
|
|
2059
2050
|
}
|
|
2060
|
-
function
|
|
2061
|
-
return e == null ? "" :
|
|
2051
|
+
function vr(e) {
|
|
2052
|
+
return e == null ? "" : gr(e) ? ct(e.value, e.format) : String(e);
|
|
2062
2053
|
}
|
|
2063
|
-
function
|
|
2054
|
+
function Un(e) {
|
|
2064
2055
|
return [e.delta, e.percentChange].filter(
|
|
2065
2056
|
(r) => r != null
|
|
2066
|
-
).map(
|
|
2057
|
+
).map(vr).filter(Boolean).join(" / ");
|
|
2067
2058
|
}
|
|
2068
|
-
const Ne = new Set(
|
|
2059
|
+
const Ne = new Set(hr), br = /* @__PURE__ */ new Set([
|
|
2069
2060
|
"EMAIL",
|
|
2070
2061
|
"WEBHOOK",
|
|
2071
2062
|
"SLACK",
|
|
@@ -2076,39 +2067,39 @@ const Ne = new Set(vr), wr = /* @__PURE__ */ new Set([
|
|
|
2076
2067
|
maxPlanningIterations: { min: 1, max: 10 },
|
|
2077
2068
|
maxRows: { min: 1, max: 1e5 },
|
|
2078
2069
|
timeoutMs: { min: 1e3, max: 30 * 6e4 }
|
|
2079
|
-
},
|
|
2070
|
+
}, Ir = /* @__PURE__ */ new Set([
|
|
2080
2071
|
"letter",
|
|
2081
2072
|
"legal",
|
|
2082
2073
|
"a4",
|
|
2083
2074
|
"a3",
|
|
2084
2075
|
"tabloid"
|
|
2085
|
-
]),
|
|
2076
|
+
]), wr = /* @__PURE__ */ new Set([
|
|
2086
2077
|
"portrait",
|
|
2087
2078
|
"landscape"
|
|
2088
|
-
]),
|
|
2079
|
+
]), Cr = /* @__PURE__ */ new Set([",", ";", " "]), Tr = /* @__PURE__ */ new Set([
|
|
2089
2080
|
"current",
|
|
2090
2081
|
"all"
|
|
2091
|
-
]),
|
|
2082
|
+
]), $r = /* @__PURE__ */ new Set([
|
|
2092
2083
|
"concise",
|
|
2093
2084
|
"balanced",
|
|
2094
2085
|
"detailed"
|
|
2095
|
-
]),
|
|
2086
|
+
]), kr = /* @__PURE__ */ new Set([
|
|
2096
2087
|
"info",
|
|
2097
2088
|
"positive",
|
|
2098
2089
|
"warning",
|
|
2099
2090
|
"critical"
|
|
2100
|
-
]),
|
|
2091
|
+
]), Er = /* @__PURE__ */ new Set([
|
|
2101
2092
|
"text",
|
|
2102
2093
|
"number",
|
|
2103
2094
|
"currency",
|
|
2104
2095
|
"percent",
|
|
2105
2096
|
"date",
|
|
2106
2097
|
"boolean"
|
|
2107
|
-
]),
|
|
2098
|
+
]), xr = /* @__PURE__ */ new Set([
|
|
2108
2099
|
"left",
|
|
2109
2100
|
"center",
|
|
2110
2101
|
"right"
|
|
2111
|
-
]),
|
|
2102
|
+
]), Sr = [
|
|
2112
2103
|
"pageSize",
|
|
2113
2104
|
"orientation",
|
|
2114
2105
|
"includeFilters",
|
|
@@ -2137,56 +2128,56 @@ const Ne = new Set(vr), wr = /* @__PURE__ */ new Set([
|
|
|
2137
2128
|
class X extends Error {
|
|
2138
2129
|
constructor(t) {
|
|
2139
2130
|
super(t.map((n) => `${n.field}: ${n.message}`).join("; "));
|
|
2140
|
-
|
|
2131
|
+
_(this, "issues");
|
|
2141
2132
|
this.name = "BriefingContractError", this.issues = t;
|
|
2142
2133
|
}
|
|
2143
2134
|
}
|
|
2144
2135
|
function ze(e) {
|
|
2145
2136
|
return typeof e == "object" && e !== null && !Array.isArray(e);
|
|
2146
2137
|
}
|
|
2147
|
-
function
|
|
2138
|
+
function p(e, r, t) {
|
|
2148
2139
|
e.push({ field: r, message: t });
|
|
2149
2140
|
}
|
|
2150
2141
|
function k(e, r, t) {
|
|
2151
|
-
return ze(e) ? e : (
|
|
2142
|
+
return ze(e) ? e : (p(t, r, "Expected an object."), {});
|
|
2152
2143
|
}
|
|
2153
|
-
function
|
|
2144
|
+
function I(e, r, t, n) {
|
|
2154
2145
|
const o = new Set(t);
|
|
2155
2146
|
Object.keys(e).forEach((a) => {
|
|
2156
|
-
o.has(a) ||
|
|
2147
|
+
o.has(a) || p(
|
|
2157
2148
|
n,
|
|
2158
2149
|
r ? `${r}.${a}` : a,
|
|
2159
2150
|
`Unexpected field "${a}".`
|
|
2160
2151
|
);
|
|
2161
2152
|
});
|
|
2162
2153
|
}
|
|
2163
|
-
function
|
|
2154
|
+
function T(e, r, t, n) {
|
|
2164
2155
|
if (typeof e != "string")
|
|
2165
|
-
return
|
|
2156
|
+
return p(n, r, "Expected a string."), "";
|
|
2166
2157
|
const o = e.trim();
|
|
2167
|
-
return o ? (o.length > t &&
|
|
2158
|
+
return o ? (o.length > t && p(n, r, `Must be ${t} characters or fewer.`), o) : (p(n, r, "Required value cannot be empty."), "");
|
|
2168
2159
|
}
|
|
2169
|
-
function
|
|
2160
|
+
function $(e, r, t, n) {
|
|
2170
2161
|
if (e == null)
|
|
2171
2162
|
return;
|
|
2172
2163
|
if (typeof e != "string") {
|
|
2173
|
-
|
|
2164
|
+
p(n, r, "Expected a string.");
|
|
2174
2165
|
return;
|
|
2175
2166
|
}
|
|
2176
2167
|
const o = e.trim();
|
|
2177
2168
|
if (o)
|
|
2178
|
-
return o.length > t &&
|
|
2169
|
+
return o.length > t && p(n, r, `Must be ${t} characters or fewer.`), o;
|
|
2179
2170
|
}
|
|
2180
|
-
function
|
|
2171
|
+
function _r(e, r, t, n) {
|
|
2181
2172
|
if (typeof e != "string")
|
|
2182
|
-
return
|
|
2173
|
+
return p(n, r, "Expected a string."), "";
|
|
2183
2174
|
const o = e.trim();
|
|
2184
|
-
return o.length > t &&
|
|
2175
|
+
return o.length > t && p(n, r, `Must be ${t} characters or fewer.`), o;
|
|
2185
2176
|
}
|
|
2186
|
-
function
|
|
2177
|
+
function Fr(e, r, t) {
|
|
2187
2178
|
if (e != null) {
|
|
2188
2179
|
if (!Number.isInteger(e) || Number(e) < 0) {
|
|
2189
|
-
|
|
2180
|
+
p(t, r, "Expected a non-negative integer.");
|
|
2190
2181
|
return;
|
|
2191
2182
|
}
|
|
2192
2183
|
return Number(e);
|
|
@@ -2194,74 +2185,74 @@ function Ar(e, r, t) {
|
|
|
2194
2185
|
}
|
|
2195
2186
|
function R(e, r, t, n = {}) {
|
|
2196
2187
|
if (e == null)
|
|
2197
|
-
return n.required ? (
|
|
2188
|
+
return n.required ? (p(t, r, "Expected at least one evidence id."), []) : void 0;
|
|
2198
2189
|
if (!Array.isArray(e))
|
|
2199
|
-
return
|
|
2190
|
+
return p(t, r, "Expected an array."), n.required ? [] : void 0;
|
|
2200
2191
|
const o = [];
|
|
2201
2192
|
return e.forEach((a, i) => {
|
|
2202
|
-
const l =
|
|
2193
|
+
const l = T(
|
|
2203
2194
|
a,
|
|
2204
2195
|
`${r}.${i}`,
|
|
2205
2196
|
y.id,
|
|
2206
2197
|
t
|
|
2207
2198
|
);
|
|
2208
2199
|
l && !o.includes(l) && o.push(l);
|
|
2209
|
-
}), n.required && o.length === 0 &&
|
|
2200
|
+
}), n.required && o.length === 0 && p(t, r, "Expected at least one evidence id."), o.length > 0 || n.required ? o : void 0;
|
|
2210
2201
|
}
|
|
2211
2202
|
function N(e, r, t, n) {
|
|
2212
|
-
return e == null ? r : typeof e != "boolean" ? (
|
|
2203
|
+
return e == null ? r : typeof e != "boolean" ? (p(n, t, "Expected a boolean."), r) : e;
|
|
2213
2204
|
}
|
|
2214
|
-
function
|
|
2215
|
-
return e == null ? "ACTIVE" : e === "ACTIVE" || e === "PAUSED" || e === "DISABLED" ? e : (
|
|
2205
|
+
function Rr(e, r) {
|
|
2206
|
+
return e == null ? "ACTIVE" : e === "ACTIVE" || e === "PAUSED" || e === "DISABLED" ? e : (p(r, "status", "Expected ACTIVE, PAUSED, or DISABLED."), "ACTIVE");
|
|
2216
2207
|
}
|
|
2217
|
-
function
|
|
2208
|
+
function Ar(e) {
|
|
2218
2209
|
return e.includes("@") && e.includes(".") && !e.includes(" ");
|
|
2219
2210
|
}
|
|
2220
|
-
function
|
|
2211
|
+
function Le(e, r) {
|
|
2221
2212
|
if (e == null)
|
|
2222
2213
|
return { type: "project" };
|
|
2223
2214
|
const t = k(e, "source", r), n = t.type;
|
|
2224
|
-
return n === "project" ? (
|
|
2215
|
+
return n === "project" ? (I(t, "source", ["type"], r), { type: "project" }) : n === "dashboard" ? (I(t, "source", ["type", "dashboardId"], r), {
|
|
2225
2216
|
type: "dashboard",
|
|
2226
|
-
dashboardId:
|
|
2217
|
+
dashboardId: T(
|
|
2227
2218
|
t.dashboardId,
|
|
2228
2219
|
"source.dashboardId",
|
|
2229
2220
|
y.id,
|
|
2230
2221
|
r
|
|
2231
2222
|
)
|
|
2232
|
-
}) : (
|
|
2223
|
+
}) : (p(r, "source.type", "Expected project or dashboard."), { type: "project" });
|
|
2233
2224
|
}
|
|
2234
|
-
function
|
|
2225
|
+
function Ve(e, r) {
|
|
2235
2226
|
const t = k(e, "body", r), n = t.type;
|
|
2236
|
-
return n === "generated_analysis" ? (
|
|
2227
|
+
return n === "generated_analysis" ? (I(t, "body", ["type", "instruction"], r), {
|
|
2237
2228
|
type: "generated_analysis",
|
|
2238
|
-
instruction:
|
|
2229
|
+
instruction: T(
|
|
2239
2230
|
t.instruction,
|
|
2240
2231
|
"body.instruction",
|
|
2241
2232
|
y.instruction,
|
|
2242
2233
|
r
|
|
2243
2234
|
)
|
|
2244
|
-
}) : n === "custom_message" ? (
|
|
2235
|
+
}) : n === "custom_message" ? (I(t, "body", ["type", "message"], r), {
|
|
2245
2236
|
type: "custom_message",
|
|
2246
|
-
message:
|
|
2237
|
+
message: _r(
|
|
2247
2238
|
t.message,
|
|
2248
2239
|
"body.message",
|
|
2249
2240
|
y.customMessage,
|
|
2250
2241
|
r
|
|
2251
2242
|
)
|
|
2252
|
-
}) : n === "none" ? (
|
|
2243
|
+
}) : n === "none" ? (I(t, "body", ["type"], r), { type: "none" }) : (p(
|
|
2253
2244
|
r,
|
|
2254
2245
|
"body.type",
|
|
2255
2246
|
"Expected generated_analysis, custom_message, or none."
|
|
2256
2247
|
), { type: "none" });
|
|
2257
2248
|
}
|
|
2258
|
-
function
|
|
2249
|
+
function Br(e, r) {
|
|
2259
2250
|
if (e == null)
|
|
2260
2251
|
return [...le];
|
|
2261
2252
|
if (!Array.isArray(e))
|
|
2262
|
-
return
|
|
2253
|
+
return p(r, "presentation.artifactFormats", "Expected an array."), [...le];
|
|
2263
2254
|
if (e.length === 0)
|
|
2264
|
-
return
|
|
2255
|
+
return p(
|
|
2265
2256
|
r,
|
|
2266
2257
|
"presentation.artifactFormats",
|
|
2267
2258
|
"Choose at least one artifact format."
|
|
@@ -2269,7 +2260,7 @@ function Mr(e, r) {
|
|
|
2269
2260
|
const t = [];
|
|
2270
2261
|
return e.forEach((n, o) => {
|
|
2271
2262
|
if (typeof n != "string" || !Ne.has(n)) {
|
|
2272
|
-
|
|
2263
|
+
p(
|
|
2273
2264
|
r,
|
|
2274
2265
|
`presentation.artifactFormats.${o}`,
|
|
2275
2266
|
"Expected markdown or html."
|
|
@@ -2287,7 +2278,7 @@ function Ue(e, r) {
|
|
|
2287
2278
|
includeSql: !0
|
|
2288
2279
|
};
|
|
2289
2280
|
const t = k(e, "presentation", r);
|
|
2290
|
-
|
|
2281
|
+
I(
|
|
2291
2282
|
t,
|
|
2292
2283
|
"presentation",
|
|
2293
2284
|
[
|
|
@@ -2305,7 +2296,7 @@ function Ue(e, r) {
|
|
|
2305
2296
|
r
|
|
2306
2297
|
);
|
|
2307
2298
|
const n = {
|
|
2308
|
-
artifactFormats:
|
|
2299
|
+
artifactFormats: Br(t.artifactFormats, r),
|
|
2309
2300
|
includeEvidence: N(
|
|
2310
2301
|
t.includeEvidence,
|
|
2311
2302
|
!0,
|
|
@@ -2318,46 +2309,46 @@ function Ue(e, r) {
|
|
|
2318
2309
|
"presentation.includeSql",
|
|
2319
2310
|
r
|
|
2320
2311
|
)
|
|
2321
|
-
}, o =
|
|
2312
|
+
}, o = $(
|
|
2322
2313
|
t.audience,
|
|
2323
2314
|
"presentation.audience",
|
|
2324
2315
|
y.presentationAudience,
|
|
2325
2316
|
r
|
|
2326
|
-
), a =
|
|
2317
|
+
), a = $(
|
|
2327
2318
|
t.tone,
|
|
2328
2319
|
"presentation.tone",
|
|
2329
2320
|
y.presentationTone,
|
|
2330
2321
|
r
|
|
2331
|
-
), i =
|
|
2322
|
+
), i = $(
|
|
2332
2323
|
t.format,
|
|
2333
2324
|
"presentation.format",
|
|
2334
2325
|
y.presentationFormat,
|
|
2335
2326
|
r
|
|
2336
2327
|
);
|
|
2337
2328
|
o && (n.audience = o), a && (n.tone = a), i && (n.format = i);
|
|
2338
|
-
const l =
|
|
2339
|
-
return l.issues.forEach((m) =>
|
|
2329
|
+
const l = or(t);
|
|
2330
|
+
return l.issues.forEach((m) => p(r, m.field, m.message)), Object.assign(n, l.value), n;
|
|
2340
2331
|
}
|
|
2341
|
-
function
|
|
2342
|
-
return Array.isArray(e) ? (e.length === 0 &&
|
|
2332
|
+
function Pr(e, r, t) {
|
|
2333
|
+
return Array.isArray(e) ? (e.length === 0 && p(t, r, "Expected at least one item."), e.length > F.maxListItems && p(
|
|
2343
2334
|
t,
|
|
2344
2335
|
r,
|
|
2345
|
-
`Must have ${
|
|
2346
|
-
), e.slice(0,
|
|
2347
|
-
(n, o) =>
|
|
2336
|
+
`Must have ${F.maxListItems} items or fewer.`
|
|
2337
|
+
), e.slice(0, F.maxListItems).map(
|
|
2338
|
+
(n, o) => T(
|
|
2348
2339
|
n,
|
|
2349
2340
|
`${r}.${o}`,
|
|
2350
2341
|
y.contentItem,
|
|
2351
2342
|
t
|
|
2352
2343
|
)
|
|
2353
|
-
).filter(Boolean)) : (
|
|
2344
|
+
).filter(Boolean)) : (p(t, r, "Expected an array."), []);
|
|
2354
2345
|
}
|
|
2355
|
-
function
|
|
2346
|
+
function Mr(e, r, t) {
|
|
2356
2347
|
const n = k(e, r, t);
|
|
2357
2348
|
if (n.kind === "metric")
|
|
2358
|
-
return
|
|
2349
|
+
return I(n, r, ["kind", "metricId"], t), {
|
|
2359
2350
|
kind: "metric",
|
|
2360
|
-
metricId:
|
|
2351
|
+
metricId: T(
|
|
2361
2352
|
n.metricId,
|
|
2362
2353
|
`${r}.metricId`,
|
|
2363
2354
|
y.id,
|
|
@@ -2365,9 +2356,9 @@ function Or(e, r, t) {
|
|
|
2365
2356
|
)
|
|
2366
2357
|
};
|
|
2367
2358
|
if (n.kind === "column")
|
|
2368
|
-
return
|
|
2359
|
+
return I(n, r, ["kind", "columnKey"], t), {
|
|
2369
2360
|
kind: "column",
|
|
2370
|
-
columnKey:
|
|
2361
|
+
columnKey: T(
|
|
2371
2362
|
n.columnKey,
|
|
2372
2363
|
`${r}.columnKey`,
|
|
2373
2364
|
y.id,
|
|
@@ -2375,16 +2366,16 @@ function Or(e, r, t) {
|
|
|
2375
2366
|
)
|
|
2376
2367
|
};
|
|
2377
2368
|
if (n.kind === "matrix_measure")
|
|
2378
|
-
return
|
|
2369
|
+
return I(n, r, ["kind", "measureId"], t), {
|
|
2379
2370
|
kind: "matrix_measure",
|
|
2380
|
-
measureId:
|
|
2371
|
+
measureId: T(
|
|
2381
2372
|
n.measureId,
|
|
2382
2373
|
`${r}.measureId`,
|
|
2383
2374
|
y.id,
|
|
2384
2375
|
t
|
|
2385
2376
|
)
|
|
2386
2377
|
};
|
|
2387
|
-
|
|
2378
|
+
p(
|
|
2388
2379
|
t,
|
|
2389
2380
|
`${r}.kind`,
|
|
2390
2381
|
"Expected metric, column, or matrix_measure."
|
|
@@ -2396,14 +2387,14 @@ function je(e, r, t) {
|
|
|
2396
2387
|
const n = k(e, r, t);
|
|
2397
2388
|
if (!Object.prototype.hasOwnProperty.call(n, "target") && !Object.prototype.hasOwnProperty.call(n, "format"))
|
|
2398
2389
|
return;
|
|
2399
|
-
|
|
2400
|
-
const o =
|
|
2390
|
+
I(n, r, ["value", "target", "format"], t), (typeof n.value != "number" || !Number.isFinite(n.value)) && p(t, `${r}.value`, "Expected a finite number.");
|
|
2391
|
+
const o = Mr(
|
|
2401
2392
|
n.target,
|
|
2402
2393
|
`${r}.target`,
|
|
2403
2394
|
t
|
|
2404
|
-
), a =
|
|
2395
|
+
), a = Ce(n.format);
|
|
2405
2396
|
if (a.ok || a.issues.forEach(
|
|
2406
|
-
(i) =>
|
|
2397
|
+
(i) => p(
|
|
2407
2398
|
t,
|
|
2408
2399
|
i.path === "$" ? `${r}.format` : `${r}.format.${i.path}`,
|
|
2409
2400
|
i.message
|
|
@@ -2411,72 +2402,72 @@ function je(e, r, t) {
|
|
|
2411
2402
|
), !(typeof n.value != "number" || !Number.isFinite(n.value) || !o || !a.ok))
|
|
2412
2403
|
return { value: n.value, target: o, format: a.value };
|
|
2413
2404
|
}
|
|
2414
|
-
function
|
|
2405
|
+
function M(e, r, t) {
|
|
2415
2406
|
if (typeof e == "string")
|
|
2416
2407
|
return e;
|
|
2417
2408
|
if (typeof e == "number") {
|
|
2418
2409
|
if (!Number.isFinite(e)) {
|
|
2419
|
-
|
|
2410
|
+
p(t, r, "Expected a finite number.");
|
|
2420
2411
|
return;
|
|
2421
2412
|
}
|
|
2422
2413
|
return e;
|
|
2423
2414
|
}
|
|
2424
2415
|
const n = je(e, r, t);
|
|
2425
2416
|
if (n) return n;
|
|
2426
|
-
|
|
2417
|
+
p(
|
|
2427
2418
|
t,
|
|
2428
2419
|
r,
|
|
2429
2420
|
"Expected a string, number, or structured numeric value."
|
|
2430
2421
|
);
|
|
2431
2422
|
}
|
|
2432
|
-
function
|
|
2423
|
+
function Dr(e, r, t) {
|
|
2433
2424
|
if (e === null || typeof e == "string" || typeof e == "number" || typeof e == "boolean")
|
|
2434
|
-
return typeof e == "string" && e.length > y.contentCell ? (
|
|
2425
|
+
return typeof e == "string" && e.length > y.contentCell ? (p(
|
|
2435
2426
|
t,
|
|
2436
2427
|
r,
|
|
2437
2428
|
`Must be ${y.contentCell} characters or fewer.`
|
|
2438
|
-
), e.slice(0, y.contentCell)) : typeof e == "number" && !Number.isFinite(e) ? (
|
|
2429
|
+
), e.slice(0, y.contentCell)) : typeof e == "number" && !Number.isFinite(e) ? (p(t, r, "Expected a finite number."), null) : e;
|
|
2439
2430
|
const n = je(e, r, t);
|
|
2440
|
-
return n || (
|
|
2431
|
+
return n || (p(
|
|
2441
2432
|
t,
|
|
2442
2433
|
r,
|
|
2443
2434
|
"Expected a string, number, boolean, structured numeric value, or null."
|
|
2444
2435
|
), null);
|
|
2445
2436
|
}
|
|
2446
|
-
function
|
|
2437
|
+
function Kr(e, r, t) {
|
|
2447
2438
|
if (!Array.isArray(e))
|
|
2448
|
-
return
|
|
2449
|
-
e.length === 0 &&
|
|
2439
|
+
return p(t, r, "Expected an array."), [];
|
|
2440
|
+
e.length === 0 && p(t, r, "Expected at least one column."), e.length > F.maxTableColumns && p(
|
|
2450
2441
|
t,
|
|
2451
2442
|
r,
|
|
2452
|
-
`Must have ${
|
|
2443
|
+
`Must have ${F.maxTableColumns} columns or fewer.`
|
|
2453
2444
|
);
|
|
2454
2445
|
const n = /* @__PURE__ */ new Set();
|
|
2455
|
-
return e.slice(0,
|
|
2446
|
+
return e.slice(0, F.maxTableColumns).map((o, a) => {
|
|
2456
2447
|
const i = `${r}.${a}`, l = k(o, i, t);
|
|
2457
|
-
|
|
2458
|
-
const m =
|
|
2448
|
+
I(l, i, ["key", "label", "kind", "align"], t);
|
|
2449
|
+
const m = T(
|
|
2459
2450
|
l.key,
|
|
2460
2451
|
`${i}.key`,
|
|
2461
2452
|
y.id,
|
|
2462
2453
|
t
|
|
2463
2454
|
);
|
|
2464
|
-
m && (n.has(m) &&
|
|
2465
|
-
const c =
|
|
2455
|
+
m && (n.has(m) && p(t, `${i}.key`, "Column key must be unique."), n.add(m));
|
|
2456
|
+
const c = T(
|
|
2466
2457
|
l.label,
|
|
2467
2458
|
`${i}.label`,
|
|
2468
2459
|
y.contentTitle,
|
|
2469
2460
|
t
|
|
2470
|
-
), s =
|
|
2461
|
+
), s = K(
|
|
2471
2462
|
l.kind,
|
|
2472
2463
|
`${i}.kind`,
|
|
2473
|
-
|
|
2464
|
+
Er,
|
|
2474
2465
|
"text, number, currency, percent, date, or boolean",
|
|
2475
2466
|
t
|
|
2476
|
-
),
|
|
2467
|
+
), f = K(
|
|
2477
2468
|
l.align,
|
|
2478
2469
|
`${i}.align`,
|
|
2479
|
-
|
|
2470
|
+
xr,
|
|
2480
2471
|
"left, center, or right",
|
|
2481
2472
|
t
|
|
2482
2473
|
);
|
|
@@ -2484,41 +2475,41 @@ function Nr(e, r, t) {
|
|
|
2484
2475
|
key: m,
|
|
2485
2476
|
label: c,
|
|
2486
2477
|
...s ? { kind: s } : {},
|
|
2487
|
-
...
|
|
2478
|
+
...f ? { align: f } : {}
|
|
2488
2479
|
};
|
|
2489
2480
|
});
|
|
2490
2481
|
}
|
|
2491
|
-
function
|
|
2482
|
+
function Or(e, r, t, n) {
|
|
2492
2483
|
if (!Array.isArray(e))
|
|
2493
|
-
return
|
|
2494
|
-
e.length >
|
|
2484
|
+
return p(n, r, "Expected an array."), [];
|
|
2485
|
+
e.length > F.maxTableRows && p(
|
|
2495
2486
|
n,
|
|
2496
2487
|
r,
|
|
2497
|
-
`Must have ${
|
|
2488
|
+
`Must have ${F.maxTableRows} rows or fewer.`
|
|
2498
2489
|
);
|
|
2499
2490
|
const o = new Set(t.map((a) => a.key).filter(Boolean));
|
|
2500
|
-
return e.slice(0,
|
|
2491
|
+
return e.slice(0, F.maxTableRows).map((a, i) => {
|
|
2501
2492
|
const l = `${r}.${i}`, m = k(a, l, n);
|
|
2502
2493
|
return Object.keys(m).forEach((c) => {
|
|
2503
|
-
o.has(c) ||
|
|
2494
|
+
o.has(c) || p(n, `${l}.${c}`, `Unexpected table cell "${c}".`);
|
|
2504
2495
|
}), Object.fromEntries(
|
|
2505
2496
|
t.map((c) => [
|
|
2506
2497
|
c.key,
|
|
2507
|
-
|
|
2498
|
+
Dr(m[c.key] ?? null, `${l}.${c.key}`, n)
|
|
2508
2499
|
])
|
|
2509
2500
|
);
|
|
2510
2501
|
});
|
|
2511
2502
|
}
|
|
2512
|
-
function
|
|
2503
|
+
function Nr(e, r, t) {
|
|
2513
2504
|
const n = `content.blocks.${r}`, o = k(e, n, t), a = o.type;
|
|
2514
2505
|
if (a === "heading") {
|
|
2515
|
-
|
|
2506
|
+
I(o, n, ["type", "text", "level", "evidenceIds"], t);
|
|
2516
2507
|
const i = o.level === void 0 || o.level === null ? void 0 : o.level === 2 || o.level === 3 ? o.level : void 0;
|
|
2517
|
-
o.level !== void 0 && o.level !== null && i === void 0 &&
|
|
2508
|
+
o.level !== void 0 && o.level !== null && i === void 0 && p(t, `${n}.level`, "Expected 2 or 3.");
|
|
2518
2509
|
const l = R(o.evidenceIds, `${n}.evidenceIds`, t);
|
|
2519
2510
|
return {
|
|
2520
2511
|
type: "heading",
|
|
2521
|
-
text:
|
|
2512
|
+
text: T(
|
|
2522
2513
|
o.text,
|
|
2523
2514
|
`${n}.text`,
|
|
2524
2515
|
y.contentTitle,
|
|
@@ -2529,11 +2520,11 @@ function Vr(e, r, t) {
|
|
|
2529
2520
|
};
|
|
2530
2521
|
}
|
|
2531
2522
|
if (a === "paragraph") {
|
|
2532
|
-
|
|
2523
|
+
I(o, n, ["type", "text", "evidenceIds"], t);
|
|
2533
2524
|
const i = R(o.evidenceIds, `${n}.evidenceIds`, t);
|
|
2534
2525
|
return {
|
|
2535
2526
|
type: "paragraph",
|
|
2536
|
-
text:
|
|
2527
|
+
text: T(
|
|
2537
2528
|
o.text,
|
|
2538
2529
|
`${n}.text`,
|
|
2539
2530
|
y.contentText,
|
|
@@ -2543,23 +2534,23 @@ function Vr(e, r, t) {
|
|
|
2543
2534
|
};
|
|
2544
2535
|
}
|
|
2545
2536
|
if (a === "finding") {
|
|
2546
|
-
|
|
2547
|
-
const i =
|
|
2537
|
+
I(o, n, ["type", "title", "text", "severity", "evidenceIds"], t);
|
|
2538
|
+
const i = $(
|
|
2548
2539
|
o.title,
|
|
2549
2540
|
`${n}.title`,
|
|
2550
2541
|
y.contentTitle,
|
|
2551
2542
|
t
|
|
2552
|
-
), l =
|
|
2543
|
+
), l = K(
|
|
2553
2544
|
o.severity,
|
|
2554
2545
|
`${n}.severity`,
|
|
2555
|
-
|
|
2546
|
+
kr,
|
|
2556
2547
|
"info, positive, warning, or critical",
|
|
2557
2548
|
t
|
|
2558
2549
|
);
|
|
2559
2550
|
return {
|
|
2560
2551
|
type: "finding",
|
|
2561
2552
|
...i ? { title: i } : {},
|
|
2562
|
-
text:
|
|
2553
|
+
text: T(
|
|
2563
2554
|
o.text,
|
|
2564
2555
|
`${n}.text`,
|
|
2565
2556
|
y.contentText,
|
|
@@ -2572,8 +2563,8 @@ function Vr(e, r, t) {
|
|
|
2572
2563
|
};
|
|
2573
2564
|
}
|
|
2574
2565
|
if (a === "bullets" || a === "actions" || a === "limitations") {
|
|
2575
|
-
|
|
2576
|
-
const i =
|
|
2566
|
+
I(o, n, ["type", "title", "items", "evidenceIds"], t);
|
|
2567
|
+
const i = $(
|
|
2577
2568
|
o.title,
|
|
2578
2569
|
`${n}.title`,
|
|
2579
2570
|
y.contentTitle,
|
|
@@ -2582,12 +2573,12 @@ function Vr(e, r, t) {
|
|
|
2582
2573
|
return {
|
|
2583
2574
|
type: a,
|
|
2584
2575
|
...i ? { title: i } : {},
|
|
2585
|
-
items:
|
|
2576
|
+
items: Pr(o.items, `${n}.items`, t),
|
|
2586
2577
|
...l ? { evidenceIds: l } : {}
|
|
2587
2578
|
};
|
|
2588
2579
|
}
|
|
2589
2580
|
if (a === "metric") {
|
|
2590
|
-
|
|
2581
|
+
I(
|
|
2591
2582
|
o,
|
|
2592
2583
|
n,
|
|
2593
2584
|
[
|
|
@@ -2602,33 +2593,33 @@ function Vr(e, r, t) {
|
|
|
2602
2593
|
],
|
|
2603
2594
|
t
|
|
2604
2595
|
);
|
|
2605
|
-
const i =
|
|
2606
|
-
i === "" &&
|
|
2596
|
+
const i = M(o.value, `${n}.value`, t) ?? "";
|
|
2597
|
+
i === "" && p(
|
|
2607
2598
|
t,
|
|
2608
2599
|
`${n}.value`,
|
|
2609
2600
|
"Expected a non-empty string, number, or structured numeric value."
|
|
2610
2601
|
);
|
|
2611
|
-
const l = o.previousValue === void 0 || o.previousValue === null ? o.previousValue :
|
|
2602
|
+
const l = o.previousValue === void 0 || o.previousValue === null ? o.previousValue : M(
|
|
2612
2603
|
o.previousValue,
|
|
2613
2604
|
`${n}.previousValue`,
|
|
2614
2605
|
t
|
|
2615
|
-
), m = o.delta === void 0 || o.delta === null ? o.delta :
|
|
2606
|
+
), m = o.delta === void 0 || o.delta === null ? o.delta : M(
|
|
2616
2607
|
o.delta,
|
|
2617
2608
|
`${n}.delta`,
|
|
2618
2609
|
t
|
|
2619
|
-
), c = o.percentChange === void 0 || o.percentChange === null ? o.percentChange :
|
|
2610
|
+
), c = o.percentChange === void 0 || o.percentChange === null ? o.percentChange : M(
|
|
2620
2611
|
o.percentChange,
|
|
2621
2612
|
`${n}.percentChange`,
|
|
2622
2613
|
t
|
|
2623
|
-
), s =
|
|
2614
|
+
), s = $(
|
|
2624
2615
|
o.unit,
|
|
2625
2616
|
`${n}.unit`,
|
|
2626
2617
|
y.contentTitle,
|
|
2627
2618
|
t
|
|
2628
|
-
),
|
|
2619
|
+
), f = R(o.evidenceIds, `${n}.evidenceIds`, t);
|
|
2629
2620
|
return {
|
|
2630
2621
|
type: "metric",
|
|
2631
|
-
label:
|
|
2622
|
+
label: T(
|
|
2632
2623
|
o.label,
|
|
2633
2624
|
`${n}.label`,
|
|
2634
2625
|
y.contentTitle,
|
|
@@ -2639,27 +2630,27 @@ function Vr(e, r, t) {
|
|
|
2639
2630
|
...m !== void 0 ? { delta: m } : {},
|
|
2640
2631
|
...c !== void 0 ? { percentChange: c } : {},
|
|
2641
2632
|
...s ? { unit: s } : {},
|
|
2642
|
-
...
|
|
2633
|
+
...f ? { evidenceIds: f } : {}
|
|
2643
2634
|
};
|
|
2644
2635
|
}
|
|
2645
2636
|
if (a === "kpi_grid") {
|
|
2646
|
-
|
|
2647
|
-
const i =
|
|
2637
|
+
I(o, n, ["type", "title", "tiles", "evidenceIds"], t);
|
|
2638
|
+
const i = $(
|
|
2648
2639
|
o.title,
|
|
2649
2640
|
`${n}.title`,
|
|
2650
2641
|
y.contentTitle,
|
|
2651
2642
|
t
|
|
2652
2643
|
), l = Array.isArray(o.tiles) ? o.tiles : [];
|
|
2653
|
-
Array.isArray(o.tiles) ||
|
|
2644
|
+
Array.isArray(o.tiles) || p(t, `${n}.tiles`, "Expected an array."), l.length === 0 && p(t, `${n}.tiles`, "Expected at least one tile."), l.length > F.maxKpiTiles && p(
|
|
2654
2645
|
t,
|
|
2655
2646
|
`${n}.tiles`,
|
|
2656
|
-
`Must have ${
|
|
2647
|
+
`Must have ${F.maxKpiTiles} tiles or fewer.`
|
|
2657
2648
|
);
|
|
2658
|
-
const m = l.slice(0,
|
|
2659
|
-
const
|
|
2660
|
-
|
|
2649
|
+
const m = l.slice(0, F.maxKpiTiles).map((s, f) => {
|
|
2650
|
+
const u = `${n}.tiles.${f}`, d = k(s, u, t);
|
|
2651
|
+
I(
|
|
2661
2652
|
d,
|
|
2662
|
-
|
|
2653
|
+
u,
|
|
2663
2654
|
[
|
|
2664
2655
|
"label",
|
|
2665
2656
|
"value",
|
|
@@ -2671,51 +2662,51 @@ function Vr(e, r, t) {
|
|
|
2671
2662
|
],
|
|
2672
2663
|
t
|
|
2673
2664
|
);
|
|
2674
|
-
const v =
|
|
2665
|
+
const v = M(
|
|
2675
2666
|
d.value,
|
|
2676
|
-
`${
|
|
2667
|
+
`${u}.value`,
|
|
2677
2668
|
t
|
|
2678
2669
|
) ?? "";
|
|
2679
|
-
v === "" &&
|
|
2670
|
+
v === "" && p(
|
|
2680
2671
|
t,
|
|
2681
|
-
`${
|
|
2672
|
+
`${u}.value`,
|
|
2682
2673
|
"Expected a non-empty string, number, or structured numeric value."
|
|
2683
2674
|
);
|
|
2684
|
-
const h = d.previousValue === void 0 || d.previousValue === null ? d.previousValue :
|
|
2675
|
+
const h = d.previousValue === void 0 || d.previousValue === null ? d.previousValue : M(
|
|
2685
2676
|
d.previousValue,
|
|
2686
|
-
`${
|
|
2677
|
+
`${u}.previousValue`,
|
|
2687
2678
|
t
|
|
2688
|
-
),
|
|
2679
|
+
), b = d.delta === void 0 || d.delta === null ? d.delta : M(
|
|
2689
2680
|
d.delta,
|
|
2690
|
-
`${
|
|
2681
|
+
`${u}.delta`,
|
|
2691
2682
|
t
|
|
2692
|
-
), w = d.percentChange === void 0 || d.percentChange === null ? d.percentChange :
|
|
2683
|
+
), w = d.percentChange === void 0 || d.percentChange === null ? d.percentChange : M(
|
|
2693
2684
|
d.percentChange,
|
|
2694
|
-
`${
|
|
2685
|
+
`${u}.percentChange`,
|
|
2695
2686
|
t
|
|
2696
|
-
), g =
|
|
2687
|
+
), g = $(
|
|
2697
2688
|
d.unit,
|
|
2698
|
-
`${
|
|
2689
|
+
`${u}.unit`,
|
|
2699
2690
|
y.contentTitle,
|
|
2700
2691
|
t
|
|
2701
|
-
),
|
|
2692
|
+
), C = R(
|
|
2702
2693
|
d.evidenceIds,
|
|
2703
|
-
`${
|
|
2694
|
+
`${u}.evidenceIds`,
|
|
2704
2695
|
t
|
|
2705
2696
|
);
|
|
2706
2697
|
return {
|
|
2707
|
-
label:
|
|
2698
|
+
label: T(
|
|
2708
2699
|
d.label,
|
|
2709
|
-
`${
|
|
2700
|
+
`${u}.label`,
|
|
2710
2701
|
y.contentTitle,
|
|
2711
2702
|
t
|
|
2712
2703
|
),
|
|
2713
2704
|
value: v,
|
|
2714
2705
|
...h !== void 0 ? { previousValue: h } : {},
|
|
2715
|
-
...
|
|
2706
|
+
...b !== void 0 ? { delta: b } : {},
|
|
2716
2707
|
...w !== void 0 ? { percentChange: w } : {},
|
|
2717
2708
|
...g ? { unit: g } : {},
|
|
2718
|
-
|
|
2709
|
+
...C ? { evidenceIds: C } : {}
|
|
2719
2710
|
};
|
|
2720
2711
|
}), c = R(
|
|
2721
2712
|
o.evidenceIds,
|
|
@@ -2730,10 +2721,10 @@ function Vr(e, r, t) {
|
|
|
2730
2721
|
};
|
|
2731
2722
|
}
|
|
2732
2723
|
if (a === "progress") {
|
|
2733
|
-
|
|
2724
|
+
I(o, n, ["type", "label", "value", "detail", "evidenceIds"], t);
|
|
2734
2725
|
const i = typeof o.value == "number" && Number.isFinite(o.value) ? o.value : 0;
|
|
2735
|
-
(typeof o.value != "number" || !Number.isFinite(o.value)) &&
|
|
2736
|
-
const l =
|
|
2726
|
+
(typeof o.value != "number" || !Number.isFinite(o.value)) && p(t, `${n}.value`, "Expected a finite number.");
|
|
2727
|
+
const l = $(
|
|
2737
2728
|
o.detail,
|
|
2738
2729
|
`${n}.detail`,
|
|
2739
2730
|
y.contentText,
|
|
@@ -2741,7 +2732,7 @@ function Vr(e, r, t) {
|
|
|
2741
2732
|
), m = R(o.evidenceIds, `${n}.evidenceIds`, t);
|
|
2742
2733
|
return {
|
|
2743
2734
|
type: "progress",
|
|
2744
|
-
label:
|
|
2735
|
+
label: T(
|
|
2745
2736
|
o.label,
|
|
2746
2737
|
`${n}.label`,
|
|
2747
2738
|
y.contentTitle,
|
|
@@ -2753,46 +2744,46 @@ function Vr(e, r, t) {
|
|
|
2753
2744
|
};
|
|
2754
2745
|
}
|
|
2755
2746
|
if (a === "table") {
|
|
2756
|
-
|
|
2747
|
+
I(
|
|
2757
2748
|
o,
|
|
2758
2749
|
n,
|
|
2759
2750
|
["type", "id", "title", "columns", "rows", "caption", "totalRows", "evidenceIds"],
|
|
2760
2751
|
t
|
|
2761
2752
|
);
|
|
2762
|
-
const i =
|
|
2753
|
+
const i = Kr(o.columns, `${n}.columns`, t), l = $(
|
|
2763
2754
|
o.title,
|
|
2764
2755
|
`${n}.title`,
|
|
2765
2756
|
y.contentTitle,
|
|
2766
2757
|
t
|
|
2767
|
-
), m =
|
|
2758
|
+
), m = $(
|
|
2768
2759
|
o.id,
|
|
2769
2760
|
`${n}.id`,
|
|
2770
2761
|
y.id,
|
|
2771
2762
|
t
|
|
2772
|
-
), c =
|
|
2763
|
+
), c = $(
|
|
2773
2764
|
o.caption,
|
|
2774
2765
|
`${n}.caption`,
|
|
2775
2766
|
y.contentItem,
|
|
2776
2767
|
t
|
|
2777
|
-
), s =
|
|
2768
|
+
), s = Fr(
|
|
2778
2769
|
o.totalRows,
|
|
2779
2770
|
`${n}.totalRows`,
|
|
2780
2771
|
t
|
|
2781
|
-
),
|
|
2772
|
+
), f = R(o.evidenceIds, `${n}.evidenceIds`, t);
|
|
2782
2773
|
return {
|
|
2783
2774
|
type: "table",
|
|
2784
2775
|
...m ? { id: m } : {},
|
|
2785
2776
|
...l ? { title: l } : {},
|
|
2786
2777
|
columns: i,
|
|
2787
|
-
rows:
|
|
2778
|
+
rows: Or(o.rows, `${n}.rows`, i, t),
|
|
2788
2779
|
...c ? { caption: c } : {},
|
|
2789
2780
|
...s !== void 0 ? { totalRows: s } : {},
|
|
2790
|
-
...
|
|
2781
|
+
...f ? { evidenceIds: f } : {}
|
|
2791
2782
|
};
|
|
2792
2783
|
}
|
|
2793
2784
|
if (a === "evidence_appendix") {
|
|
2794
|
-
|
|
2795
|
-
const i =
|
|
2785
|
+
I(o, n, ["type", "title", "evidenceIds"], t);
|
|
2786
|
+
const i = $(
|
|
2796
2787
|
o.title,
|
|
2797
2788
|
`${n}.title`,
|
|
2798
2789
|
y.contentTitle,
|
|
@@ -2807,13 +2798,13 @@ function Vr(e, r, t) {
|
|
|
2807
2798
|
};
|
|
2808
2799
|
}
|
|
2809
2800
|
if (a === "sql") {
|
|
2810
|
-
|
|
2811
|
-
const i =
|
|
2801
|
+
I(o, n, ["type", "title", "sql", "evidenceIds"], t);
|
|
2802
|
+
const i = $(
|
|
2812
2803
|
o.title,
|
|
2813
2804
|
`${n}.title`,
|
|
2814
2805
|
y.contentTitle,
|
|
2815
2806
|
t
|
|
2816
|
-
), l =
|
|
2807
|
+
), l = T(
|
|
2817
2808
|
o.sql,
|
|
2818
2809
|
`${n}.sql`,
|
|
2819
2810
|
y.contentSql,
|
|
@@ -2826,7 +2817,7 @@ function Vr(e, r, t) {
|
|
|
2826
2817
|
...m ? { evidenceIds: m } : {}
|
|
2827
2818
|
};
|
|
2828
2819
|
}
|
|
2829
|
-
return
|
|
2820
|
+
return p(
|
|
2830
2821
|
t,
|
|
2831
2822
|
`${n}.type`,
|
|
2832
2823
|
"Expected heading, paragraph, finding, bullets, metric, kpi_grid, progress, table, actions, limitations, sql, or evidence_appendix."
|
|
@@ -2835,40 +2826,40 @@ function Vr(e, r, t) {
|
|
|
2835
2826
|
text: ""
|
|
2836
2827
|
};
|
|
2837
2828
|
}
|
|
2838
|
-
function
|
|
2829
|
+
function zr(e) {
|
|
2839
2830
|
const r = [], t = k(e, "content", r);
|
|
2840
|
-
|
|
2841
|
-
const n =
|
|
2831
|
+
I(t, "content", ["version", "title", "summary", "blocks"], r), t.version !== 1 && p(r, "content.version", "Expected version 1.");
|
|
2832
|
+
const n = $(
|
|
2842
2833
|
t.title,
|
|
2843
2834
|
"content.title",
|
|
2844
2835
|
y.contentTitle,
|
|
2845
2836
|
r
|
|
2846
|
-
), o =
|
|
2837
|
+
), o = $(
|
|
2847
2838
|
t.summary,
|
|
2848
2839
|
"content.summary",
|
|
2849
2840
|
y.contentSummary,
|
|
2850
2841
|
r
|
|
2851
2842
|
);
|
|
2852
|
-
Array.isArray(t.blocks) ||
|
|
2843
|
+
Array.isArray(t.blocks) || p(r, "content.blocks", "Expected an array.");
|
|
2853
2844
|
const a = Array.isArray(t.blocks) ? t.blocks : [];
|
|
2854
|
-
a.length === 0 &&
|
|
2845
|
+
a.length === 0 && p(r, "content.blocks", "Expected at least one block."), a.length > F.maxBlocks && p(
|
|
2855
2846
|
r,
|
|
2856
2847
|
"content.blocks",
|
|
2857
|
-
`Must have ${
|
|
2848
|
+
`Must have ${F.maxBlocks} blocks or fewer.`
|
|
2858
2849
|
);
|
|
2859
|
-
const i = a.slice(0,
|
|
2860
|
-
return
|
|
2850
|
+
const i = a.slice(0, F.maxBlocks).map((l, m) => Nr(l, m, r));
|
|
2851
|
+
return pe(r), {
|
|
2861
2852
|
version: 1,
|
|
2862
2853
|
...n ? { title: n } : {},
|
|
2863
2854
|
...o ? { summary: o } : {},
|
|
2864
2855
|
blocks: i
|
|
2865
2856
|
};
|
|
2866
2857
|
}
|
|
2867
|
-
function
|
|
2858
|
+
function jn(e) {
|
|
2868
2859
|
try {
|
|
2869
2860
|
return {
|
|
2870
2861
|
valid: !0,
|
|
2871
|
-
value:
|
|
2862
|
+
value: zr(e),
|
|
2872
2863
|
issues: []
|
|
2873
2864
|
};
|
|
2874
2865
|
} catch (r) {
|
|
@@ -2878,60 +2869,60 @@ function Gn(e) {
|
|
|
2878
2869
|
}
|
|
2879
2870
|
}
|
|
2880
2871
|
function Y(e, r, t, n) {
|
|
2881
|
-
return typeof e == "string" && t.includes(e) ? e : (
|
|
2872
|
+
return typeof e == "string" && t.includes(e) ? e : (p(n, r, `Expected ${t.join(" or ")}.`), t[0]);
|
|
2882
2873
|
}
|
|
2883
|
-
function
|
|
2874
|
+
function K(e, r, t, n, o) {
|
|
2884
2875
|
if (e != null) {
|
|
2885
2876
|
if (typeof e == "string" && t.has(e))
|
|
2886
2877
|
return e;
|
|
2887
|
-
|
|
2878
|
+
p(o, r, `Expected ${n}.`);
|
|
2888
2879
|
}
|
|
2889
2880
|
}
|
|
2890
|
-
function
|
|
2881
|
+
function Lr(e, r, t) {
|
|
2891
2882
|
if (e != null) {
|
|
2892
2883
|
if (!Array.isArray(e)) {
|
|
2893
|
-
|
|
2884
|
+
p(t, r, "Expected an array.");
|
|
2894
2885
|
return;
|
|
2895
2886
|
}
|
|
2896
2887
|
return e;
|
|
2897
2888
|
}
|
|
2898
2889
|
}
|
|
2899
|
-
function
|
|
2890
|
+
function Vr(e, r, t) {
|
|
2900
2891
|
if (e != null) {
|
|
2901
2892
|
if (!ze(e)) {
|
|
2902
|
-
|
|
2893
|
+
p(t, r, "Expected an object.");
|
|
2903
2894
|
return;
|
|
2904
2895
|
}
|
|
2905
2896
|
return e;
|
|
2906
2897
|
}
|
|
2907
2898
|
}
|
|
2908
|
-
function
|
|
2899
|
+
function Ur(e, r, t) {
|
|
2909
2900
|
if (e == null)
|
|
2910
2901
|
return;
|
|
2911
2902
|
const n = k(e, r, t);
|
|
2912
|
-
|
|
2913
|
-
const o = {}, a =
|
|
2903
|
+
I(n, r, Sr, t);
|
|
2904
|
+
const o = {}, a = K(
|
|
2914
2905
|
n.pageSize,
|
|
2915
2906
|
`${r}.pageSize`,
|
|
2916
|
-
|
|
2907
|
+
Ir,
|
|
2917
2908
|
"letter, legal, a4, a3, or tabloid",
|
|
2918
2909
|
t
|
|
2919
|
-
), i =
|
|
2910
|
+
), i = K(
|
|
2920
2911
|
n.orientation,
|
|
2921
2912
|
`${r}.orientation`,
|
|
2922
|
-
|
|
2913
|
+
wr,
|
|
2923
2914
|
"portrait or landscape",
|
|
2924
2915
|
t
|
|
2925
|
-
), l =
|
|
2916
|
+
), l = K(
|
|
2926
2917
|
n.delimiter,
|
|
2927
2918
|
`${r}.delimiter`,
|
|
2928
|
-
|
|
2919
|
+
Cr,
|
|
2929
2920
|
"comma, semicolon, or tab",
|
|
2930
2921
|
t
|
|
2931
|
-
), m =
|
|
2922
|
+
), m = K(
|
|
2932
2923
|
n.sheetSelection,
|
|
2933
2924
|
`${r}.sheetSelection`,
|
|
2934
|
-
|
|
2925
|
+
Tr,
|
|
2935
2926
|
"current or all",
|
|
2936
2927
|
t
|
|
2937
2928
|
);
|
|
@@ -2945,7 +2936,7 @@ function qr(e, r, t) {
|
|
|
2945
2936
|
])
|
|
2946
2937
|
if (!(n[c] === void 0 || n[c] === null)) {
|
|
2947
2938
|
if (typeof n[c] != "boolean") {
|
|
2948
|
-
|
|
2939
|
+
p(t, `${r}.${c}`, "Expected a boolean.");
|
|
2949
2940
|
continue;
|
|
2950
2941
|
}
|
|
2951
2942
|
o[c] = n[c];
|
|
@@ -2958,7 +2949,7 @@ function qr(e, r, t) {
|
|
|
2958
2949
|
"cardType",
|
|
2959
2950
|
"theme"
|
|
2960
2951
|
]) {
|
|
2961
|
-
const s =
|
|
2952
|
+
const s = $(
|
|
2962
2953
|
n[c],
|
|
2963
2954
|
`${r}.${c}`,
|
|
2964
2955
|
y.id,
|
|
@@ -2974,7 +2965,7 @@ function qr(e, r, t) {
|
|
|
2974
2965
|
"cardControlDefinitions",
|
|
2975
2966
|
"controlBindings"
|
|
2976
2967
|
]) {
|
|
2977
|
-
const s =
|
|
2968
|
+
const s = Lr(n[c], `${r}.${c}`, t);
|
|
2978
2969
|
s && (o[c] = s);
|
|
2979
2970
|
}
|
|
2980
2971
|
for (const c of [
|
|
@@ -2982,13 +2973,13 @@ function qr(e, r, t) {
|
|
|
2982
2973
|
"tablePreferences",
|
|
2983
2974
|
"dashboardInputExecutionSnapshot"
|
|
2984
2975
|
]) {
|
|
2985
|
-
const s =
|
|
2976
|
+
const s = Vr(n[c], `${r}.${c}`, t);
|
|
2986
2977
|
s && (o[c] = s);
|
|
2987
2978
|
}
|
|
2988
2979
|
return Object.keys(o).length > 0 ? o : void 0;
|
|
2989
2980
|
}
|
|
2990
2981
|
function ne(e, r, t, n) {
|
|
2991
|
-
const o =
|
|
2982
|
+
const o = $(
|
|
2992
2983
|
r,
|
|
2993
2984
|
t,
|
|
2994
2985
|
y.attachmentTitle,
|
|
@@ -2997,13 +2988,13 @@ function ne(e, r, t, n) {
|
|
|
2997
2988
|
return o && (e.title = o), e;
|
|
2998
2989
|
}
|
|
2999
2990
|
function oe(e, r, t, n) {
|
|
3000
|
-
const o =
|
|
2991
|
+
const o = Ur(r, t, n);
|
|
3001
2992
|
return o && (e.settings = o), e;
|
|
3002
2993
|
}
|
|
3003
|
-
function
|
|
2994
|
+
function jr(e, r, t) {
|
|
3004
2995
|
const n = `attachments.${r}`, o = k(e, n, t), a = o.type;
|
|
3005
2996
|
if (a === "dashboard") {
|
|
3006
|
-
|
|
2997
|
+
I(
|
|
3007
2998
|
o,
|
|
3008
2999
|
n,
|
|
3009
3000
|
["type", "dashboardId", "format", "title", "settings"],
|
|
@@ -3012,7 +3003,7 @@ function Gr(e, r, t) {
|
|
|
3012
3003
|
const i = ne(
|
|
3013
3004
|
{
|
|
3014
3005
|
type: "dashboard",
|
|
3015
|
-
dashboardId:
|
|
3006
|
+
dashboardId: T(
|
|
3016
3007
|
o.dashboardId,
|
|
3017
3008
|
`${n}.dashboardId`,
|
|
3018
3009
|
y.id,
|
|
@@ -3027,7 +3018,7 @@ function Gr(e, r, t) {
|
|
|
3027
3018
|
return oe(i, o.settings, `${n}.settings`, t);
|
|
3028
3019
|
}
|
|
3029
3020
|
if (a === "dashboard_sheet" || a === "document_sheet") {
|
|
3030
|
-
|
|
3021
|
+
I(
|
|
3031
3022
|
o,
|
|
3032
3023
|
n,
|
|
3033
3024
|
["type", "dashboardId", "sheetId", "format", "title", "settings"],
|
|
@@ -3036,13 +3027,13 @@ function Gr(e, r, t) {
|
|
|
3036
3027
|
const i = ne(
|
|
3037
3028
|
{
|
|
3038
3029
|
type: a,
|
|
3039
|
-
dashboardId:
|
|
3030
|
+
dashboardId: T(
|
|
3040
3031
|
o.dashboardId,
|
|
3041
3032
|
`${n}.dashboardId`,
|
|
3042
3033
|
y.id,
|
|
3043
3034
|
t
|
|
3044
3035
|
),
|
|
3045
|
-
sheetId:
|
|
3036
|
+
sheetId: T(
|
|
3046
3037
|
o.sheetId,
|
|
3047
3038
|
`${n}.sheetId`,
|
|
3048
3039
|
y.id,
|
|
@@ -3057,7 +3048,7 @@ function Gr(e, r, t) {
|
|
|
3057
3048
|
return oe(i, o.settings, `${n}.settings`, t);
|
|
3058
3049
|
}
|
|
3059
3050
|
if (a === "card") {
|
|
3060
|
-
|
|
3051
|
+
I(
|
|
3061
3052
|
o,
|
|
3062
3053
|
n,
|
|
3063
3054
|
["type", "dashboardId", "cardId", "format", "title", "settings"],
|
|
@@ -3066,13 +3057,13 @@ function Gr(e, r, t) {
|
|
|
3066
3057
|
const i = ne(
|
|
3067
3058
|
{
|
|
3068
3059
|
type: "card",
|
|
3069
|
-
dashboardId:
|
|
3060
|
+
dashboardId: T(
|
|
3070
3061
|
o.dashboardId,
|
|
3071
3062
|
`${n}.dashboardId`,
|
|
3072
3063
|
y.id,
|
|
3073
3064
|
t
|
|
3074
3065
|
),
|
|
3075
|
-
cardId:
|
|
3066
|
+
cardId: T(
|
|
3076
3067
|
o.cardId,
|
|
3077
3068
|
`${n}.cardId`,
|
|
3078
3069
|
y.id,
|
|
@@ -3091,13 +3082,13 @@ function Gr(e, r, t) {
|
|
|
3091
3082
|
);
|
|
3092
3083
|
return oe(i, o.settings, `${n}.settings`, t);
|
|
3093
3084
|
}
|
|
3094
|
-
return
|
|
3085
|
+
return p(
|
|
3095
3086
|
t,
|
|
3096
3087
|
`${n}.type`,
|
|
3097
3088
|
"Expected dashboard, dashboard_sheet, document_sheet, or card."
|
|
3098
3089
|
), { type: "dashboard", dashboardId: "", format: "pdf" };
|
|
3099
3090
|
}
|
|
3100
|
-
function
|
|
3091
|
+
function qr(e) {
|
|
3101
3092
|
switch (e.type) {
|
|
3102
3093
|
case "dashboard":
|
|
3103
3094
|
return `${e.type}:${e.dashboardId}:${e.format}`;
|
|
@@ -3112,23 +3103,23 @@ function qe(e, r) {
|
|
|
3112
3103
|
if (e == null)
|
|
3113
3104
|
return [];
|
|
3114
3105
|
if (!Array.isArray(e))
|
|
3115
|
-
return
|
|
3116
|
-
e.length > te &&
|
|
3106
|
+
return p(r, "attachments", "Expected an array."), [];
|
|
3107
|
+
e.length > te && p(
|
|
3117
3108
|
r,
|
|
3118
3109
|
"attachments",
|
|
3119
3110
|
`Choose ${te} attachments or fewer.`
|
|
3120
3111
|
);
|
|
3121
|
-
const t = e.slice(0, te).map((o, a) =>
|
|
3112
|
+
const t = e.slice(0, te).map((o, a) => jr(o, a, r)), n = /* @__PURE__ */ new Set();
|
|
3122
3113
|
return t.forEach((o, a) => {
|
|
3123
|
-
const i =
|
|
3124
|
-
n.has(i) &&
|
|
3114
|
+
const i = qr(o);
|
|
3115
|
+
n.has(i) && p(r, `attachments.${a}`, "Duplicate attachment."), n.add(i);
|
|
3125
3116
|
}), t;
|
|
3126
3117
|
}
|
|
3127
3118
|
function Ge(e, r) {
|
|
3128
3119
|
if (e == null)
|
|
3129
3120
|
return;
|
|
3130
3121
|
const t = k(e, "limits", r);
|
|
3131
|
-
|
|
3122
|
+
I(t, "limits", Object.keys(re), r);
|
|
3132
3123
|
const n = {};
|
|
3133
3124
|
return Object.keys(re).forEach((o) => {
|
|
3134
3125
|
const a = t[o];
|
|
@@ -3136,7 +3127,7 @@ function Ge(e, r) {
|
|
|
3136
3127
|
return;
|
|
3137
3128
|
const i = re[o];
|
|
3138
3129
|
if (typeof a != "number" || !Number.isInteger(a) || a < i.min || a > i.max) {
|
|
3139
|
-
|
|
3130
|
+
p(
|
|
3140
3131
|
r,
|
|
3141
3132
|
`limits.${o}`,
|
|
3142
3133
|
`Expected an integer between ${i.min} and ${i.max}.`
|
|
@@ -3146,18 +3137,18 @@ function Ge(e, r) {
|
|
|
3146
3137
|
n[o] = a;
|
|
3147
3138
|
}), Object.keys(n).length > 0 ? n : void 0;
|
|
3148
3139
|
}
|
|
3149
|
-
function
|
|
3140
|
+
function pe(e) {
|
|
3150
3141
|
if (e.length > 0)
|
|
3151
3142
|
throw new X(e);
|
|
3152
3143
|
}
|
|
3153
3144
|
function He(e, r, t) {
|
|
3154
|
-
!(e.type === "generated_analysis" || e.type === "custom_message" && !!e.message.trim()) && r.length === 0 &&
|
|
3145
|
+
!(e.type === "generated_analysis" || e.type === "custom_message" && !!e.message.trim()) && r.length === 0 && p(
|
|
3155
3146
|
t,
|
|
3156
3147
|
"body",
|
|
3157
3148
|
"Add briefing instructions, a custom message, or at least one attachment."
|
|
3158
3149
|
);
|
|
3159
3150
|
}
|
|
3160
|
-
function
|
|
3151
|
+
function Gr(e, r, t) {
|
|
3161
3152
|
e == null || e.forEach((n, o) => {
|
|
3162
3153
|
const a = `${t}.${o}.scope`, i = n.scope.attachmentIndex;
|
|
3163
3154
|
if (i === void 0)
|
|
@@ -3181,7 +3172,7 @@ function Wr(e, r, t) {
|
|
|
3181
3172
|
}
|
|
3182
3173
|
function We(e) {
|
|
3183
3174
|
const r = [], t = k(e, "jobConfig", r);
|
|
3184
|
-
|
|
3175
|
+
I(
|
|
3185
3176
|
t,
|
|
3186
3177
|
"jobConfig",
|
|
3187
3178
|
[
|
|
@@ -3194,7 +3185,7 @@ function We(e) {
|
|
|
3194
3185
|
"limits"
|
|
3195
3186
|
],
|
|
3196
3187
|
r
|
|
3197
|
-
), t.kind !== ce &&
|
|
3188
|
+
), t.kind !== ce && p(r, "kind", "Expected BRIEFING.");
|
|
3198
3189
|
let n;
|
|
3199
3190
|
try {
|
|
3200
3191
|
n = lt(
|
|
@@ -3203,18 +3194,18 @@ function We(e) {
|
|
|
3203
3194
|
} catch (c) {
|
|
3204
3195
|
if (c instanceof U)
|
|
3205
3196
|
throw c;
|
|
3206
|
-
|
|
3197
|
+
p(
|
|
3207
3198
|
r,
|
|
3208
3199
|
"jobConfig.presentationExecutionSnapshot",
|
|
3209
3200
|
c instanceof Error ? c.message : "Invalid presentation snapshot."
|
|
3210
3201
|
);
|
|
3211
3202
|
}
|
|
3212
|
-
const o =
|
|
3213
|
-
return He(a, i, r),
|
|
3203
|
+
const o = Le(t.source, r), a = Ve(t.body, r), i = qe(t.attachments, r), l = Ue(t.presentation, r), m = Ge(t.limits, r);
|
|
3204
|
+
return He(a, i, r), Gr(
|
|
3214
3205
|
n == null ? void 0 : n.resolvedFormats,
|
|
3215
3206
|
i,
|
|
3216
3207
|
"jobConfig.presentationExecutionSnapshot.resolvedFormats"
|
|
3217
|
-
),
|
|
3208
|
+
), pe(r), {
|
|
3218
3209
|
kind: ce,
|
|
3219
3210
|
presentationExecutionSnapshot: n,
|
|
3220
3211
|
source: o,
|
|
@@ -3224,75 +3215,75 @@ function We(e) {
|
|
|
3224
3215
|
...m ? { limits: m } : {}
|
|
3225
3216
|
};
|
|
3226
3217
|
}
|
|
3227
|
-
function
|
|
3218
|
+
function qn(e) {
|
|
3228
3219
|
return We({
|
|
3229
3220
|
...e,
|
|
3230
3221
|
kind: ce
|
|
3231
3222
|
});
|
|
3232
3223
|
}
|
|
3233
|
-
function
|
|
3224
|
+
function ye(e, r, t, n = "deliveryConfig.recipients") {
|
|
3234
3225
|
const o = `${n}.${r}`, a = k(e, o, t), i = a.type;
|
|
3235
3226
|
if (i === "email") {
|
|
3236
|
-
|
|
3237
|
-
const l =
|
|
3227
|
+
I(a, o, ["type", "address", "name"], t);
|
|
3228
|
+
const l = T(
|
|
3238
3229
|
a.address,
|
|
3239
3230
|
`${o}.address`,
|
|
3240
3231
|
y.id,
|
|
3241
3232
|
t
|
|
3242
|
-
), m =
|
|
3233
|
+
), m = $(
|
|
3243
3234
|
a.name,
|
|
3244
3235
|
`${o}.name`,
|
|
3245
3236
|
y.attachmentTitle,
|
|
3246
3237
|
t
|
|
3247
3238
|
);
|
|
3248
|
-
return l && !
|
|
3239
|
+
return l && !Ar(l) && p(t, `${o}.address`, "Email address is invalid."), {
|
|
3249
3240
|
type: "email",
|
|
3250
3241
|
address: l,
|
|
3251
3242
|
...m ? { name: m } : {}
|
|
3252
3243
|
};
|
|
3253
3244
|
}
|
|
3254
|
-
return i === "user" ? (
|
|
3245
|
+
return i === "user" ? (I(a, o, ["type", "userId"], t), {
|
|
3255
3246
|
type: "user",
|
|
3256
|
-
userId:
|
|
3247
|
+
userId: T(
|
|
3257
3248
|
a.userId,
|
|
3258
3249
|
`${o}.userId`,
|
|
3259
3250
|
y.id,
|
|
3260
3251
|
t
|
|
3261
3252
|
)
|
|
3262
|
-
}) : i === "tenant_user" ? (
|
|
3253
|
+
}) : i === "tenant_user" ? (I(a, o, ["type", "tenantUserId"], t), {
|
|
3263
3254
|
type: "tenant_user",
|
|
3264
|
-
tenantUserId:
|
|
3255
|
+
tenantUserId: T(
|
|
3265
3256
|
a.tenantUserId,
|
|
3266
3257
|
`${o}.tenantUserId`,
|
|
3267
3258
|
y.id,
|
|
3268
3259
|
t
|
|
3269
3260
|
)
|
|
3270
|
-
}) : i === "group" ? (
|
|
3261
|
+
}) : i === "group" ? (I(a, o, ["type", "groupId"], t), {
|
|
3271
3262
|
type: "group",
|
|
3272
|
-
groupId:
|
|
3263
|
+
groupId: T(
|
|
3273
3264
|
a.groupId,
|
|
3274
3265
|
`${o}.groupId`,
|
|
3275
3266
|
y.id,
|
|
3276
3267
|
t
|
|
3277
3268
|
)
|
|
3278
|
-
}) : (
|
|
3269
|
+
}) : (p(
|
|
3279
3270
|
t,
|
|
3280
3271
|
`${o}.type`,
|
|
3281
3272
|
"Expected email, user, tenant_user, or group."
|
|
3282
3273
|
), { type: "email", address: "" });
|
|
3283
3274
|
}
|
|
3284
|
-
function
|
|
3275
|
+
function Hr(e, r) {
|
|
3285
3276
|
return e == null ? [] : Array.isArray(e) ? e.map(
|
|
3286
|
-
(t, n) =>
|
|
3287
|
-
) : (
|
|
3277
|
+
(t, n) => ye(t, n, r)
|
|
3278
|
+
) : (p(r, "deliveryConfig.recipients", "Expected an array."), []);
|
|
3288
3279
|
}
|
|
3289
|
-
function
|
|
3280
|
+
function Wr(e, r) {
|
|
3290
3281
|
if (!Array.isArray(e))
|
|
3291
|
-
return
|
|
3282
|
+
return p(r, "deliveryConfig.channels", "Expected an array."), [];
|
|
3292
3283
|
const t = [];
|
|
3293
3284
|
return e.forEach((n, o) => {
|
|
3294
3285
|
if (!Ye(n)) {
|
|
3295
|
-
|
|
3286
|
+
p(
|
|
3296
3287
|
r,
|
|
3297
3288
|
`deliveryConfig.channels.${o}`,
|
|
3298
3289
|
"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM."
|
|
@@ -3302,51 +3293,51 @@ function Zr(e, r) {
|
|
|
3302
3293
|
t.includes(n) || t.push(n);
|
|
3303
3294
|
}), t;
|
|
3304
3295
|
}
|
|
3305
|
-
function
|
|
3296
|
+
function Yr(e, r, t) {
|
|
3306
3297
|
if (e == null)
|
|
3307
3298
|
return;
|
|
3308
3299
|
const n = k(e, r, t), o = {};
|
|
3309
3300
|
return Object.entries(n).forEach(([a, i]) => {
|
|
3310
3301
|
if (typeof i != "string") {
|
|
3311
|
-
|
|
3302
|
+
p(t, `${r}.${a}`, "Expected a string.");
|
|
3312
3303
|
return;
|
|
3313
3304
|
}
|
|
3314
3305
|
o[a] = i.trim();
|
|
3315
3306
|
}), Object.keys(o).length > 0 ? o : void 0;
|
|
3316
3307
|
}
|
|
3317
|
-
function
|
|
3308
|
+
function Zr(e, r, t) {
|
|
3318
3309
|
if (e == null)
|
|
3319
3310
|
return;
|
|
3320
3311
|
const n = k(e, r, t);
|
|
3321
|
-
|
|
3312
|
+
I(
|
|
3322
3313
|
n,
|
|
3323
3314
|
r,
|
|
3324
3315
|
["url", "method", "headers", "secretEncrypted"],
|
|
3325
3316
|
t
|
|
3326
3317
|
);
|
|
3327
|
-
const o = n.method === void 0 || n.method === null ? void 0 : Y(n.method, `${r}.method`, ["POST", "PUT"], t), a =
|
|
3318
|
+
const o = n.method === void 0 || n.method === null ? void 0 : Y(n.method, `${r}.method`, ["POST", "PUT"], t), a = Yr(n.headers, `${r}.headers`, t), i = $(
|
|
3328
3319
|
n.secretEncrypted,
|
|
3329
3320
|
`${r}.secretEncrypted`,
|
|
3330
3321
|
2e3,
|
|
3331
3322
|
t
|
|
3332
3323
|
);
|
|
3333
3324
|
return {
|
|
3334
|
-
url:
|
|
3325
|
+
url: T(n.url, `${r}.url`, 2e3, t),
|
|
3335
3326
|
...o ? { method: o } : {},
|
|
3336
3327
|
...a ? { headers: a } : {},
|
|
3337
3328
|
...i ? { secretEncrypted: i } : {}
|
|
3338
3329
|
};
|
|
3339
3330
|
}
|
|
3340
|
-
function
|
|
3331
|
+
function Jr(e, r, t) {
|
|
3341
3332
|
const n = k(e, r, t), o = n.type;
|
|
3342
3333
|
if (o === "channel") {
|
|
3343
|
-
|
|
3334
|
+
I(
|
|
3344
3335
|
n,
|
|
3345
3336
|
r,
|
|
3346
3337
|
["type", "channelId", "channelName", "isPrivate"],
|
|
3347
3338
|
t
|
|
3348
3339
|
);
|
|
3349
|
-
const a =
|
|
3340
|
+
const a = $(
|
|
3350
3341
|
n.channelName,
|
|
3351
3342
|
`${r}.channelName`,
|
|
3352
3343
|
y.attachmentTitle,
|
|
@@ -3359,7 +3350,7 @@ function Xr(e, r, t) {
|
|
|
3359
3350
|
);
|
|
3360
3351
|
return {
|
|
3361
3352
|
type: "channel",
|
|
3362
|
-
channelId:
|
|
3353
|
+
channelId: T(
|
|
3363
3354
|
n.channelId,
|
|
3364
3355
|
`${r}.channelId`,
|
|
3365
3356
|
y.id,
|
|
@@ -3369,32 +3360,32 @@ function Xr(e, r, t) {
|
|
|
3369
3360
|
...i !== void 0 ? { isPrivate: i } : {}
|
|
3370
3361
|
};
|
|
3371
3362
|
}
|
|
3372
|
-
return o === "dm" ? (
|
|
3363
|
+
return o === "dm" ? (I(n, r, ["type", "recipient"], t), p(
|
|
3373
3364
|
t,
|
|
3374
3365
|
`${r}.type`,
|
|
3375
3366
|
"Slack DM delivery is not supported in V1."
|
|
3376
3367
|
), {
|
|
3377
3368
|
type: "dm",
|
|
3378
|
-
recipient:
|
|
3379
|
-
}) : (
|
|
3369
|
+
recipient: ye(n.recipient, 0, t, `${r}.recipient`)
|
|
3370
|
+
}) : (p(t, `${r}.type`, "Expected channel."), { type: "channel", channelId: "" });
|
|
3380
3371
|
}
|
|
3381
|
-
function
|
|
3372
|
+
function Qr(e, r, t) {
|
|
3382
3373
|
if (e == null)
|
|
3383
3374
|
return;
|
|
3384
3375
|
if (!Array.isArray(e)) {
|
|
3385
|
-
|
|
3376
|
+
p(t, r, "Expected an array.");
|
|
3386
3377
|
return;
|
|
3387
3378
|
}
|
|
3388
3379
|
const n = e.map(
|
|
3389
|
-
(o, a) =>
|
|
3380
|
+
(o, a) => ye(o, a, t, r)
|
|
3390
3381
|
);
|
|
3391
3382
|
return n.length > 0 ? n : void 0;
|
|
3392
3383
|
}
|
|
3393
|
-
function
|
|
3384
|
+
function Xr(e, r, t) {
|
|
3394
3385
|
if (e == null)
|
|
3395
3386
|
return;
|
|
3396
3387
|
const n = k(e, r, t);
|
|
3397
|
-
|
|
3388
|
+
I(
|
|
3398
3389
|
n,
|
|
3399
3390
|
r,
|
|
3400
3391
|
[
|
|
@@ -3406,7 +3397,7 @@ function tn(e, r, t) {
|
|
|
3406
3397
|
],
|
|
3407
3398
|
t
|
|
3408
3399
|
);
|
|
3409
|
-
const o =
|
|
3400
|
+
const o = Qr(
|
|
3410
3401
|
n.threadMentions,
|
|
3411
3402
|
`${r}.threadMentions`,
|
|
3412
3403
|
t
|
|
@@ -3427,7 +3418,7 @@ function tn(e, r, t) {
|
|
|
3427
3418
|
t
|
|
3428
3419
|
);
|
|
3429
3420
|
return {
|
|
3430
|
-
destination:
|
|
3421
|
+
destination: Jr(
|
|
3431
3422
|
n.destination,
|
|
3432
3423
|
`${r}.destination`,
|
|
3433
3424
|
t
|
|
@@ -3438,9 +3429,9 @@ function tn(e, r, t) {
|
|
|
3438
3429
|
...n.includeBriefingLink !== void 0 ? { includeBriefingLink: l } : {}
|
|
3439
3430
|
};
|
|
3440
3431
|
}
|
|
3441
|
-
function
|
|
3432
|
+
function en(e, r, t) {
|
|
3442
3433
|
const n = k(e, r, t);
|
|
3443
|
-
|
|
3434
|
+
I(
|
|
3444
3435
|
n,
|
|
3445
3436
|
r,
|
|
3446
3437
|
[
|
|
@@ -3454,23 +3445,23 @@ function rn(e, r, t) {
|
|
|
3454
3445
|
],
|
|
3455
3446
|
t
|
|
3456
3447
|
);
|
|
3457
|
-
const o =
|
|
3448
|
+
const o = K(
|
|
3458
3449
|
n.formatProfile,
|
|
3459
3450
|
`${r}.formatProfile`,
|
|
3460
|
-
|
|
3451
|
+
$r,
|
|
3461
3452
|
"concise, balanced, or detailed",
|
|
3462
3453
|
t
|
|
3463
|
-
), a =
|
|
3454
|
+
), a = $(
|
|
3464
3455
|
n.subjectOverride,
|
|
3465
3456
|
`${r}.subjectOverride`,
|
|
3466
3457
|
500,
|
|
3467
3458
|
t
|
|
3468
|
-
), i =
|
|
3459
|
+
), i = $(
|
|
3469
3460
|
n.titleOverride,
|
|
3470
3461
|
`${r}.titleOverride`,
|
|
3471
3462
|
500,
|
|
3472
3463
|
t
|
|
3473
|
-
), l =
|
|
3464
|
+
), l = $(
|
|
3474
3465
|
n.summaryOverride,
|
|
3475
3466
|
`${r}.summaryOverride`,
|
|
3476
3467
|
2e3,
|
|
@@ -3480,11 +3471,11 @@ function rn(e, r, t) {
|
|
|
3480
3471
|
!0,
|
|
3481
3472
|
`${r}.actionBlockVisible`,
|
|
3482
3473
|
t
|
|
3483
|
-
), c =
|
|
3474
|
+
), c = Zr(
|
|
3484
3475
|
n.webhookConfig,
|
|
3485
3476
|
`${r}.webhookConfig`,
|
|
3486
3477
|
t
|
|
3487
|
-
), s =
|
|
3478
|
+
), s = Xr(
|
|
3488
3479
|
n.slackConfig,
|
|
3489
3480
|
`${r}.slackConfig`,
|
|
3490
3481
|
t
|
|
@@ -3499,53 +3490,53 @@ function rn(e, r, t) {
|
|
|
3499
3490
|
...c ? { webhookConfig: c } : {}
|
|
3500
3491
|
};
|
|
3501
3492
|
}
|
|
3502
|
-
function
|
|
3493
|
+
function tn(e, r) {
|
|
3503
3494
|
if (e == null)
|
|
3504
3495
|
return;
|
|
3505
3496
|
const t = k(e, "deliveryConfig.channelConfigs", r), n = {};
|
|
3506
3497
|
return Object.entries(t).forEach(([o, a]) => {
|
|
3507
3498
|
if (!Ye(o)) {
|
|
3508
|
-
|
|
3499
|
+
p(
|
|
3509
3500
|
r,
|
|
3510
3501
|
`deliveryConfig.channelConfigs.${o}`,
|
|
3511
3502
|
"Expected a supported delivery channel."
|
|
3512
3503
|
);
|
|
3513
3504
|
return;
|
|
3514
3505
|
}
|
|
3515
|
-
n[o] =
|
|
3506
|
+
n[o] = en(
|
|
3516
3507
|
a,
|
|
3517
3508
|
`deliveryConfig.channelConfigs.${o}`,
|
|
3518
3509
|
r
|
|
3519
3510
|
);
|
|
3520
3511
|
}), Object.keys(n).length > 0 ? n : void 0;
|
|
3521
3512
|
}
|
|
3522
|
-
function
|
|
3513
|
+
function rn(e, r) {
|
|
3523
3514
|
var m, c, s;
|
|
3524
3515
|
if (e == null)
|
|
3525
3516
|
return null;
|
|
3526
3517
|
const t = k(e, "deliveryConfig", r);
|
|
3527
|
-
|
|
3518
|
+
I(
|
|
3528
3519
|
t,
|
|
3529
3520
|
"deliveryConfig",
|
|
3530
3521
|
["recipients", "channels", "channelConfigs"],
|
|
3531
3522
|
r
|
|
3532
3523
|
);
|
|
3533
|
-
const n =
|
|
3524
|
+
const n = tn(t.channelConfigs, r), o = Hr(t.recipients, r), a = Wr(t.channels, r), i = ((c = (m = n == null ? void 0 : n.SLACK) == null ? void 0 : m.slackConfig) == null ? void 0 : c.destination.type) === "channel" && !!n.SLACK.slackConfig.destination.channelId.trim();
|
|
3534
3525
|
return a.some(
|
|
3535
|
-
(
|
|
3536
|
-
) && o.length === 0 &&
|
|
3526
|
+
(f) => f !== "SLACK"
|
|
3527
|
+
) && o.length === 0 && p(
|
|
3537
3528
|
r,
|
|
3538
3529
|
"deliveryConfig.recipients",
|
|
3539
3530
|
"Add at least one recipient or remove delivery config."
|
|
3540
|
-
), a.length === 0 &&
|
|
3531
|
+
), a.length === 0 && p(
|
|
3541
3532
|
r,
|
|
3542
3533
|
"deliveryConfig.channels",
|
|
3543
3534
|
"Choose at least one delivery channel or remove delivery config."
|
|
3544
|
-
), a.includes("SLACK") && !i &&
|
|
3535
|
+
), a.includes("SLACK") && !i && p(
|
|
3545
3536
|
r,
|
|
3546
3537
|
"deliveryConfig.channelConfigs.SLACK.slackConfig.destination.channelId",
|
|
3547
3538
|
"Choose a Slack channel destination."
|
|
3548
|
-
), !a.includes("SLACK") && ((s = n == null ? void 0 : n.SLACK) != null && s.slackConfig) &&
|
|
3539
|
+
), !a.includes("SLACK") && ((s = n == null ? void 0 : n.SLACK) != null && s.slackConfig) && p(
|
|
3549
3540
|
r,
|
|
3550
3541
|
"deliveryConfig.channelConfigs.SLACK",
|
|
3551
3542
|
"Slack config requires SLACK in deliveryConfig.channels."
|
|
@@ -3555,9 +3546,9 @@ function on(e, r) {
|
|
|
3555
3546
|
...n ? { channelConfigs: n } : {}
|
|
3556
3547
|
};
|
|
3557
3548
|
}
|
|
3558
|
-
function
|
|
3549
|
+
function he(e) {
|
|
3559
3550
|
const r = [], t = k(e, "draft", r);
|
|
3560
|
-
|
|
3551
|
+
I(
|
|
3561
3552
|
t,
|
|
3562
3553
|
"draft",
|
|
3563
3554
|
[
|
|
@@ -3575,18 +3566,18 @@ function ge(e) {
|
|
|
3575
3566
|
],
|
|
3576
3567
|
r
|
|
3577
3568
|
);
|
|
3578
|
-
const n =
|
|
3569
|
+
const n = T(
|
|
3579
3570
|
t.name,
|
|
3580
3571
|
"name",
|
|
3581
3572
|
y.name,
|
|
3582
3573
|
r
|
|
3583
|
-
), o =
|
|
3574
|
+
), o = $(
|
|
3584
3575
|
t.description,
|
|
3585
3576
|
"description",
|
|
3586
3577
|
y.description,
|
|
3587
3578
|
r
|
|
3588
|
-
) ?? null, a =
|
|
3589
|
-
return He(c, s, r),
|
|
3579
|
+
) ?? null, a = $(t.scheduleExpr, "scheduleExpr", 500, r) ?? null, i = $(t.timezone, "timezone", 200, r) ?? "UTC", l = Rr(t.status, r), m = Le(t.source, r), c = Ve(t.body, r), s = qe(t.attachments, r), f = Ue(t.presentation, r), u = Ge(t.limits, r), d = rn(t.deliveryConfig, r);
|
|
3580
|
+
return He(c, s, r), pe(r), {
|
|
3590
3581
|
name: n,
|
|
3591
3582
|
description: o,
|
|
3592
3583
|
status: l,
|
|
@@ -3595,27 +3586,27 @@ function ge(e) {
|
|
|
3595
3586
|
source: m,
|
|
3596
3587
|
body: c,
|
|
3597
3588
|
attachments: s,
|
|
3598
|
-
presentation:
|
|
3599
|
-
...
|
|
3589
|
+
presentation: f,
|
|
3590
|
+
...u ? { limits: u } : {},
|
|
3600
3591
|
deliveryConfig: d
|
|
3601
3592
|
};
|
|
3602
3593
|
}
|
|
3603
|
-
function
|
|
3604
|
-
return
|
|
3594
|
+
function Gn(e) {
|
|
3595
|
+
return he(e);
|
|
3605
3596
|
}
|
|
3606
|
-
function
|
|
3607
|
-
return
|
|
3597
|
+
function Hn(e) {
|
|
3598
|
+
return he(e);
|
|
3608
3599
|
}
|
|
3609
|
-
function
|
|
3600
|
+
function Wn(e) {
|
|
3610
3601
|
try {
|
|
3611
|
-
return { valid: !0, value:
|
|
3602
|
+
return { valid: !0, value: he(e), issues: [] };
|
|
3612
3603
|
} catch (r) {
|
|
3613
3604
|
if (r instanceof X)
|
|
3614
3605
|
return { valid: !1, issues: r.issues };
|
|
3615
3606
|
throw r;
|
|
3616
3607
|
}
|
|
3617
3608
|
}
|
|
3618
|
-
function
|
|
3609
|
+
function Yn(e) {
|
|
3619
3610
|
try {
|
|
3620
3611
|
return { valid: !0, value: We(e), issues: [] };
|
|
3621
3612
|
} catch (r) {
|
|
@@ -3624,90 +3615,90 @@ function Jn(e) {
|
|
|
3624
3615
|
throw r;
|
|
3625
3616
|
}
|
|
3626
3617
|
}
|
|
3627
|
-
function
|
|
3618
|
+
function Zn(e) {
|
|
3628
3619
|
return typeof e == "string" && Ne.has(e);
|
|
3629
3620
|
}
|
|
3630
3621
|
function Ye(e) {
|
|
3631
|
-
return typeof e == "string" &&
|
|
3622
|
+
return typeof e == "string" && br.has(e);
|
|
3632
3623
|
}
|
|
3633
3624
|
export {
|
|
3634
3625
|
Pe as $,
|
|
3635
|
-
|
|
3626
|
+
Pn as A,
|
|
3636
3627
|
Q as B,
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3628
|
+
Bt as C,
|
|
3629
|
+
gn as D,
|
|
3630
|
+
kn as E,
|
|
3631
|
+
O as F,
|
|
3632
|
+
Cn as G,
|
|
3633
|
+
Et as H,
|
|
3634
|
+
Ft as I,
|
|
3635
|
+
Rt as J,
|
|
3636
|
+
zt as K,
|
|
3646
3637
|
me as L,
|
|
3647
|
-
|
|
3638
|
+
Dt as M,
|
|
3648
3639
|
Lt as N,
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3640
|
+
$n as O,
|
|
3641
|
+
bn as P,
|
|
3642
|
+
Tn as Q,
|
|
3643
|
+
Ot as R,
|
|
3644
|
+
Nn as S,
|
|
3645
|
+
ur as T,
|
|
3646
|
+
Dn as U,
|
|
3647
|
+
cr as V,
|
|
3648
|
+
Kn as W,
|
|
3649
|
+
Mn as X,
|
|
3650
|
+
pr as Y,
|
|
3651
|
+
zn as Z,
|
|
3652
|
+
Ut as _,
|
|
3653
|
+
Ln as a,
|
|
3654
|
+
xn as a0,
|
|
3655
|
+
kt as a1,
|
|
3665
3656
|
ce as a2,
|
|
3666
|
-
|
|
3657
|
+
hr as a3,
|
|
3667
3658
|
le as a4,
|
|
3668
3659
|
te as a5,
|
|
3669
3660
|
y as a6,
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3661
|
+
F as a7,
|
|
3662
|
+
gr as a8,
|
|
3663
|
+
vr as a9,
|
|
3664
|
+
Un as aa,
|
|
3674
3665
|
X as ab,
|
|
3675
|
-
|
|
3676
|
-
|
|
3666
|
+
zr as ac,
|
|
3667
|
+
jn as ad,
|
|
3677
3668
|
We as ae,
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
|
|
3669
|
+
qn as af,
|
|
3670
|
+
he as ag,
|
|
3671
|
+
Gn as ah,
|
|
3672
|
+
Hn as ai,
|
|
3673
|
+
Wn as aj,
|
|
3674
|
+
Yn as ak,
|
|
3675
|
+
Zn as al,
|
|
3685
3676
|
Ye as am,
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3677
|
+
fr as an,
|
|
3678
|
+
yr as ao,
|
|
3679
|
+
Yt as b,
|
|
3680
|
+
Ht as c,
|
|
3681
|
+
On as d,
|
|
3682
|
+
Fn as e,
|
|
3683
|
+
Zt as f,
|
|
3684
|
+
Vn as g,
|
|
3685
|
+
An as h,
|
|
3686
|
+
Ie as i,
|
|
3687
|
+
Rn as j,
|
|
3688
|
+
Wt as k,
|
|
3689
|
+
Bn as l,
|
|
3699
3690
|
De as m,
|
|
3700
3691
|
H as n,
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3692
|
+
Sn as o,
|
|
3693
|
+
ue as p,
|
|
3694
|
+
_n as q,
|
|
3695
|
+
Jt as r,
|
|
3696
|
+
St as s,
|
|
3697
|
+
hn as t,
|
|
3698
|
+
wn as u,
|
|
3699
|
+
_t as v,
|
|
3700
|
+
In as w,
|
|
3701
|
+
En as x,
|
|
3702
|
+
vn as y,
|
|
3712
3703
|
Re as z
|
|
3713
3704
|
};
|