@astrato-io/visualizations 0.0.0-stage → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/LICENSE +93 -0
  3. package/README.md +843 -2
  4. package/THIRD_PARTY_NOTICES.md +8387 -0
  5. package/VISUALIZATION_DEFINITIONS.md +2378 -0
  6. package/chunks/LinearProgress-CUZ0D8_t.js +253 -0
  7. package/chunks/Radio-Ciu-F4CU.js +957 -0
  8. package/chunks/ToggleButton-BCJc3Jlc.js +153 -0
  9. package/chunks/_baseFlatten-DPXPOrea.js +7076 -0
  10. package/chunks/accessors-DemrDevR.js +128 -0
  11. package/chunks/app-filter-bar.compiler-j_CVoWTa.js +55 -0
  12. package/chunks/bar.compiler-oqaPzIut.js +370 -0
  13. package/chunks/color-settings-ZIvgNTq1.js +10 -0
  14. package/chunks/coloring-C16AUZEi.js +663 -0
  15. package/chunks/data-item-resolution-1lvYB5ln.js +53 -0
  16. package/chunks/debounce-fn-CUixuz45.js +7 -0
  17. package/chunks/escobar-BGqT1EsE.js +34580 -0
  18. package/chunks/event-bus-KiSiCJrC.js +2683 -0
  19. package/chunks/events-WZut5Ow6.js +4 -0
  20. package/chunks/extend-BKUkc4_i.js +37 -0
  21. package/chunks/filter.compiler-CuLtc_02.js +60 -0
  22. package/chunks/filtering-Yq4DEa0t.js +953 -0
  23. package/chunks/gauge-target-type-BkKXAqkX.js +4 -0
  24. package/chunks/grouping-type-BX_9Ix5q.js +3 -0
  25. package/chunks/interfaces-VUY4_yVO.js +8742 -0
  26. package/chunks/line-settings-DfYTUyPz.js +4 -0
  27. package/chunks/line.compiler-BpA_6Tc7.js +188 -0
  28. package/chunks/metadata-CPXdYoln.js +28 -0
  29. package/chunks/number.compiler-DbkWcG4S.js +44 -0
  30. package/chunks/pie-uv42Eqal.js +10 -0
  31. package/chunks/range-DrzdfBX4.js +22 -0
  32. package/chunks/registry-CExpGJ1N.js +920 -0
  33. package/chunks/requirements-DNhuShLS.js +6 -0
  34. package/chunks/rolldown-runtime-DleVn1XH.js +28 -0
  35. package/chunks/set-coloring-datafield-B3uIS1Pe.js +8 -0
  36. package/chunks/shared-CKDL4hx9.js +1171 -0
  37. package/chunks/src-BC7cGcJ-.js +2024 -0
  38. package/chunks/src-BOS6SqkZ.js +67 -0
  39. package/chunks/src-C0LgoUWY.js +26105 -0
  40. package/chunks/src-Cum_2NLV.js +12145 -0
  41. package/chunks/src-D9XogOrc.js +422 -0
  42. package/chunks/src-Dun_jXtz.js +10295 -0
  43. package/chunks/src-DvX5LU9T.js +14742 -0
  44. package/chunks/standalone-87YV_m9n.js +687 -0
  45. package/chunks/standalone-BDCwI6Hn.js +4619 -0
  46. package/chunks/standalone-BH5NqDwp.js +1763 -0
  47. package/chunks/standalone-BLVAWLNJ.js +385 -0
  48. package/chunks/standalone-BPomtAVs.js +2 -0
  49. package/chunks/standalone-BXyBcUOQ.js +2 -0
  50. package/chunks/standalone-BYm1UjLr.js +140 -0
  51. package/chunks/standalone-BllF4rDp.js +383 -0
  52. package/chunks/standalone-BmfMt74U.js +726 -0
  53. package/chunks/standalone-BqWyrnZI.js +281 -0
  54. package/chunks/standalone-C85u7U6I.js +340 -0
  55. package/chunks/standalone-CCNtaJ7s.js +741 -0
  56. package/chunks/standalone-CDQnr6qT.js +345 -0
  57. package/chunks/standalone-CNyNHKVx.js +674 -0
  58. package/chunks/standalone-CY57qwZ-.js +1129 -0
  59. package/chunks/standalone-CZynjFG7.js +12979 -0
  60. package/chunks/standalone-D5vnf-9y.js +3943 -0
  61. package/chunks/standalone-DFPva_ku.js +299 -0
  62. package/chunks/standalone-DQxxNwF8.js +675 -0
  63. package/chunks/standalone-DS9T0FZ-.js +830 -0
  64. package/chunks/standalone-Dx3MLlrO.js +512 -0
  65. package/chunks/standalone-DzixzZAL.js +411 -0
  66. package/chunks/standalone-QJ1kKMnO.js +6 -0
  67. package/chunks/standalone-jiz0L2Dg.js +3855 -0
  68. package/chunks/standalone-lBm9hQ-q.js +179 -0
  69. package/chunks/standalone-rJ45Zfl1.js +68 -0
  70. package/chunks/stroke-dash-UgMEcCS4.js +6 -0
  71. package/chunks/table.compiler-BrXkm4Fz.js +213 -0
  72. package/chunks/toInteger-DVZr-D1j.js +11 -0
  73. package/chunks/treemap-x_zmJoG7.js +23 -0
  74. package/chunks/typeof-CJDtcySz.js +13 -0
  75. package/chunks/types-dVVCsDWD.js +4 -0
  76. package/chunks/ui-D1HQNIBy.js +54039 -0
  77. package/chunks/url-utils-B17gj_mr.js +5501 -0
  78. package/chunks/useFieldName-oqQ3bvnO.js +7 -0
  79. package/chunks/utils-Ba9T0TqC.js +31097 -0
  80. package/chunks/view-CLqWMV7Z.js +156 -0
  81. package/definitions.js +3 -0
  82. package/docs/operations/astrato-app-filter-bar.md +161 -0
  83. package/docs/operations/bar.md +7050 -0
  84. package/docs/operations/combo.md +5825 -0
  85. package/docs/operations/date-picker.md +644 -0
  86. package/docs/operations/distribution-gauge.md +3218 -0
  87. package/docs/operations/dot.md +5662 -0
  88. package/docs/operations/filter.md +1507 -0
  89. package/docs/operations/gauge.md +3452 -0
  90. package/docs/operations/heatMap.md +6026 -0
  91. package/docs/operations/histogram.md +1870 -0
  92. package/docs/operations/iframe.md +56 -0
  93. package/docs/operations/image.md +177 -0
  94. package/docs/operations/index.md +46 -0
  95. package/docs/operations/line.md +6468 -0
  96. package/docs/operations/number.md +3969 -0
  97. package/docs/operations/pie.md +6089 -0
  98. package/docs/operations/radar.md +4646 -0
  99. package/docs/operations/sankey.md +3210 -0
  100. package/docs/operations/scatter.md +6075 -0
  101. package/docs/operations/shape.md +315 -0
  102. package/docs/operations/simpleTextObject.md +706 -0
  103. package/docs/operations/slider.md +230 -0
  104. package/docs/operations/table.md +8790 -0
  105. package/docs/operations/tree.md +2874 -0
  106. package/docs/operations/treemap.md +3619 -0
  107. package/docs/operations/waterfall.md +2938 -0
  108. package/docs/operations/word-cloud.md +3071 -0
  109. package/getters.js +18 -0
  110. package/index.js +1183 -0
  111. package/metadata.js +20 -0
  112. package/operations.js +64 -0
  113. package/package.json +191 -4
  114. package/src/definitions/index.d.ts +2 -0
  115. package/src/definitions/shared/index.d.ts +5 -0
  116. package/src/definitions/shared/lib/available-fields.d.ts +36 -0
  117. package/src/definitions/shared/lib/compilers/index.d.ts +7 -0
  118. package/src/definitions/shared/lib/registry/compile.d.ts +2 -0
  119. package/src/definitions/shared/lib/registry/descriptor-registry.d.ts +587 -0
  120. package/src/definitions/shared/lib/registry/index.d.ts +3 -0
  121. package/src/definitions/shared/lib/registry/validation.d.ts +3 -0
  122. package/src/definitions/shared/lib/schemas/app-filter-bar.schema.d.ts +22 -0
  123. package/src/definitions/shared/lib/schemas/bar.schema.d.ts +73 -0
  124. package/src/definitions/shared/lib/schemas/broad-chart.schema.d.ts +68 -0
  125. package/src/definitions/shared/lib/schemas/common.schema.d.ts +304 -0
  126. package/src/definitions/shared/lib/schemas/filter.schema.d.ts +22 -0
  127. package/src/definitions/shared/lib/schemas/index.d.ts +9 -0
  128. package/src/definitions/shared/lib/schemas/line.schema.d.ts +72 -0
  129. package/src/definitions/shared/lib/schemas/number.schema.d.ts +21 -0
  130. package/src/definitions/shared/lib/schemas/object.schema.d.ts +215 -0
  131. package/src/definitions/shared/lib/schemas/table.schema.d.ts +458 -0
  132. package/src/definitions/shared/lib/types/compilation.types.d.ts +36 -0
  133. package/src/definitions/shared/lib/types/definition.types.d.ts +2 -0
  134. package/src/definitions/shared/lib/types/descriptor.types.d.ts +39 -0
  135. package/src/definitions/shared/lib/types/index.d.ts +3 -0
  136. package/src/getters/index.d.ts +30 -0
  137. package/src/index.d.ts +4 -0
  138. package/src/metadata/index.d.ts +4 -0
  139. package/src/operations/index.d.ts +30 -0
  140. package/src/registry/index.d.ts +6 -0
  141. package/src/runtime/index.d.ts +2 -0
  142. package/src/types.d.ts +307 -0
  143. package/src/visualization-catalog.d.ts +82 -0
  144. package/src/web-components/index.d.ts +12 -0
  145. package/styles.css +2 -0
@@ -0,0 +1,2683 @@
1
+ import { o as e } from "./rolldown-runtime-DleVn1XH.js";
2
+ import { $s as t, Cs as n, D as r, Da as i, Dc as a, Do as o, Ds as s, Eo as c, Es as l, Fn as u, Gc as d, Ia as f, Io as p, J as m, Jo as h, Ki as g, La as _, Lo as v, Ma as y, Mn as b, Mo as x, Mr as S, Ns as C, Oo as ee, Rn as w, Ro as te, Ti as T, To as ne, Ts as E, Wc as D, Wn as O, X as k, Xo as re, Xs as ie, Y as ae, Ya as oe, Yo as se, Ys as ce, _o as le, as as ue, bo as de, cs as fe, ct as pe, d as me, ds as he, ec as ge, ei as A, es as _e, ft as ve, go as ye, ho as be, is as xe, js as Se, la as j, mo as Ce, mt as we, nc as Te, ni as M, oc as N, os as Ee, ot as De, pc as P, ps as Oe, qa as ke, qo as Ae, qs as je, si as Me, st as Ne, tc as Pe, u as Fe, ui as Ie, us as Le, xs as Re, yn as ze, yo as Be, zi as Ve, zn as He } from "./interfaces-VUY4_yVO.js";
3
+ import { a as Ue, i as We, t as Ge } from "./color-settings-ZIvgNTq1.js";
4
+ import { z as F } from "zod";
5
+ import { Subject as Ke } from "rxjs";
6
+ var qe = /* @__PURE__ */ function(e) {
7
+ return e.Linear = "linear", e.Log = "log", e;
8
+ }({}), Je = /* @__PURE__ */ function(e) {
9
+ return e.None = "none", e.Diverging = "diverging", e.Silhouette = "silhouette", e.Expand = "expand", e.Wiggle = "wiggle", e;
10
+ }({}), Ye = /* @__PURE__ */ function(e) {
11
+ return e.Measure = "measure", e.Dimension = "dimension", e.DimensionAndMeasure = "dimensionAndMeasure", e;
12
+ }({}), Xe = /* @__PURE__ */ function(e) {
13
+ return e.Value = "value", e.Percentage = "percentage", e.ValueAndPercentage = "valueAndPercentage", e;
14
+ }({}), Ze = /* @__PURE__ */ function(e) {
15
+ return e.Default = "default", e.First = "first", e.Last = "last", e;
16
+ }({}), Qe = /* @__PURE__ */ function(e) {
17
+ return e.Dimension = "dimension", e.Measure = "measure", e;
18
+ }({}), $e = /* @__PURE__ */ function(e) {
19
+ return e.Inside = "inside", e.Outside = "outside", e.Opposite = "opposite", e;
20
+ }({}), I = d(), et = F.object({
21
+ label: F.string(),
22
+ funcName: F.string(),
23
+ requiredExtraParams: F.boolean(),
24
+ disabled: F.boolean().optional(),
25
+ resultType: F.union([F.enum(I.FieldType), F.literal("incoming")]).optional()
26
+ }), tt = F.object({
27
+ enableMeasureLimit: F.boolean(),
28
+ measureLimitType: F.enum(Le),
29
+ minMeasureLimit: F.number().optional(),
30
+ maxMeasureLimit: F.number().optional()
31
+ }), nt = F.object({
32
+ type: F.literal(fe.VARIABLE),
33
+ variableName: F.string()
34
+ }), L = F.union([F.string(), nt]), R = F.union([F.number(), nt]), rt = F.union([F.boolean(), nt]), it = F.union([
35
+ L,
36
+ R,
37
+ rt
38
+ ]), z = (e = (e) => e) => F.union([e(F.number()), nt]), at = (e = (e) => e) => F.union([e(F.string()), nt]), B = F.string().regex(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/), ot = F.object({ value: it }), st = F.object({
39
+ type: F.literal(Ge.SUPPORTING_MEASURE),
40
+ dataItemId: F.string()
41
+ }), ct = F.union([L, st]), lt = F.union([R, st]), ut = F.object({
42
+ id: F.string().describe("Palette identifier"),
43
+ name: F.string().optional().describe("Palette name"),
44
+ colors: F.array(F.string()).describe("Palette colors")
45
+ }), dt = F.object({
46
+ type: F.enum(Ue),
47
+ color: B.nullable().describe("Color code (hex, with optional alpha)"),
48
+ dataItemId: F.string(),
49
+ operator: F.enum(We).describe("Operator (equals, less etc.)"),
50
+ delimiter: L.optional().describe("Delimiter for list operators"),
51
+ value: ct.or(lt),
52
+ secondValue: ct.or(lt),
53
+ highlightedColumnIds: F.array(F.string()).optional().nullable().describe("Column ids to highlight when rule condition is met"),
54
+ backgroundColor: B.nullable().describe("Background color code (hex, with optional alpha)").optional(),
55
+ customGradient: ut.optional().describe("Custom gradient"),
56
+ usedGradientId: F.string().optional().describe("Used gradient identifier"),
57
+ applyToTotalRow: F.boolean().optional().describe("Apply rule to the table total row"),
58
+ skipColoringZeroValues: F.boolean().optional().describe("Skip coloring zero values")
59
+ }), ft = F.object({
60
+ color: B.nullable().describe("Color code (hex, with optional alpha)"),
61
+ value: ct.or(lt),
62
+ delimiter: L.optional().nullable().describe("Delimiter for list operators"),
63
+ secondValue: ct.or(lt).optional().nullable(),
64
+ highlightedColumnIds: F.array(F.string()).optional().nullable().describe("Column ids to highlight when rule condition is met"),
65
+ backgroundColor: B.nullable().describe("Background color code (hex, with optional alpha)"),
66
+ dataItemId: F.string().optional().describe("Data item identifier"),
67
+ operator: F.enum([
68
+ "equals",
69
+ "contains",
70
+ "startsWith",
71
+ "endsWith",
72
+ "greater",
73
+ "less",
74
+ "greater-equals",
75
+ "less-equals",
76
+ "between",
77
+ "not-equals",
78
+ "inList",
79
+ "notInList"
80
+ ]).nullable().optional()
81
+ }), pt = F.object({
82
+ type: F.enum(ie),
83
+ palette: F.string().optional().nullable().describe("Palette identifier"),
84
+ customPalette: ut.optional().describe("Custom palette"),
85
+ customGradient: ut.optional().describe("Custom gradient"),
86
+ gradientMin: F.number().optional().describe("Minimum value for gradient"),
87
+ gradientMax: F.number().optional().describe("Maximum value for gradient"),
88
+ color: B.optional().nullable().describe("Color code (hex, with optional alpha)"),
89
+ fieldId: F.string().optional().nullable().describe("Field identifier for coloring"),
90
+ measureAggregation: F.string().optional().nullable().describe("Measure aggregation for coloring"),
91
+ rules: F.array(dt).optional(),
92
+ overwrites: F.array(ft).optional(),
93
+ persistentColors: F.boolean().optional().describe("Enable persistent colors"),
94
+ categoricalColorTransparency: F.number().optional().describe("Categorical color transparency"),
95
+ parameters: F.record(F.string(), ot).optional().nullable(),
96
+ sortOrder: F.enum(["alpha-asc", "data"]).optional().describe("Coloring sort order")
97
+ }), mt = F.enum([
98
+ "primaryMeasure",
99
+ "secondaryMeasure",
100
+ "dimension"
101
+ ]), ht = F.enum(["primaryMeasure", "secondaryMeasure"]), gt = F.enum([
102
+ "primaryMeasure",
103
+ "secondaryMeasure",
104
+ "dimension",
105
+ "secondaryDimension"
106
+ ]), _t = F.object({
107
+ start: R.optional(),
108
+ end: R.optional(),
109
+ color: B,
110
+ label: F.string().optional()
111
+ }), vt = F.object({
112
+ disabled: F.boolean().optional(),
113
+ showAxisName: F.boolean().optional(),
114
+ showLabels: F.boolean().optional(),
115
+ showLine: F.boolean().optional(),
116
+ showTicks: F.boolean().optional(),
117
+ showAxisTooltip: F.boolean().optional(),
118
+ continuousAxis: F.boolean().optional(),
119
+ invertAxis: F.boolean().optional(),
120
+ labelOverlap: F.enum(re).optional(),
121
+ labels: F.object({
122
+ tiltAngle: F.number().min(-90).max(90).optional(),
123
+ tiltThreshold: F.number().min(0).max(1).optional()
124
+ }).optional(),
125
+ labelFontSize: z((e) => e.min(0).max(50)).nullable().optional(),
126
+ labelWrap: F.boolean().optional(),
127
+ labelWrapLines: F.number().min(1).max(10).optional(),
128
+ titleFontSize: z((e) => e.min(0).max(50)).nullable().optional(),
129
+ axisRange: F.object({
130
+ axisRangeOption: F.enum(xe).optional(),
131
+ startsAtZero: F.boolean().optional(),
132
+ minValue: R.optional(),
133
+ maxValue: R.optional()
134
+ }).optional(),
135
+ scale: F.enum(qe).optional(),
136
+ axisTitle: F.string().optional(),
137
+ colors: F.object({
138
+ title: B.optional().nullable(),
139
+ tick: B.optional().nullable(),
140
+ label: B.optional().nullable(),
141
+ line: B.optional().nullable()
142
+ }).optional(),
143
+ axisBands: F.array(_t).optional(),
144
+ maxGlyphCount: F.number().min(0).max(50).optional(),
145
+ axisLabelDisplay: F.enum(ue).optional()
146
+ }), yt = vt.extend({ secondaryAxis: F.boolean().optional() }), bt = F.object({
147
+ dimension: yt.optional(),
148
+ primaryMeasure: vt.optional(),
149
+ secondaryMeasure: vt.optional(),
150
+ secondaryDimension: yt.optional()
151
+ }), xt = F.object({
152
+ showTotal: F.boolean().optional(),
153
+ stacked: F.boolean().optional(),
154
+ grouped: F.boolean().optional(),
155
+ offset: F.object({
156
+ enabled: F.boolean().optional(),
157
+ showTotal: F.boolean().optional(),
158
+ totalLabel: F.string().optional(),
159
+ showLine: F.boolean().optional(),
160
+ lineColor: B.nullable().optional()
161
+ }).optional(),
162
+ barPadding: F.number().min(0).max(1).step(.01).optional(),
163
+ groupPadding: F.number().min(0).max(1).optional(),
164
+ translucentBars: F.boolean().optional(),
165
+ barRadius: z((e) => e.min(0).max(20)).optional(),
166
+ strokeEnabled: F.boolean().optional(),
167
+ strokeWidth: F.number().min(1).max(20).optional(),
168
+ strokeColor: B.optional(),
169
+ stackedOffset: F.enum(Je).nullable().optional(),
170
+ roundAllEdges: F.boolean().optional(),
171
+ useCustomBoxRounding: F.boolean().optional(),
172
+ ignoreOutOfBounds: F.boolean().optional()
173
+ }), V = F.string().nonempty(), St = F.object({
174
+ schema: F.string().optional(),
175
+ view: F.string(),
176
+ name: F.string()
177
+ }), H = F.object({
178
+ value: F.string(),
179
+ name: F.string(),
180
+ dataType: F.enum([
181
+ "string",
182
+ "int",
183
+ "float",
184
+ "boolean",
185
+ "date",
186
+ "millisec",
187
+ "millisec_tz",
188
+ "timestamp",
189
+ "timestamp_tz"
190
+ ])
191
+ }), Ct = F.object({
192
+ formula: F.record(F.string(), F.union([
193
+ F.string(),
194
+ F.number(),
195
+ F.boolean()
196
+ ])),
197
+ filter: F.record(F.string(), F.union([
198
+ F.string(),
199
+ F.number(),
200
+ F.boolean()
201
+ ]))
202
+ }), wt = F.object({
203
+ internalKey: F.string(),
204
+ uniqueSignature: F.string(),
205
+ type: F.enum(D),
206
+ name: F.string(),
207
+ aggregation: et.optional()
208
+ }), Tt = wt.extend({
209
+ schema: F.string().optional(),
210
+ view: F.string(),
211
+ dataType: F.enum(I.FieldType),
212
+ isManualData: F.boolean().optional()
213
+ }), Et = wt.extend({
214
+ id: F.string(),
215
+ dimension: F.object({
216
+ itemName: F.string().optional(),
217
+ label: F.string().optional(),
218
+ resultType: F.enum(I.ResultType).optional(),
219
+ group: F.object({ fieldKeys: F.array(F.string()) }).optional()
220
+ }).passthrough().optional(),
221
+ measure: F.object({
222
+ aggregation: F.string(),
223
+ fieldKeys: F.array(F.string()).optional(),
224
+ fields: F.array(St.extend({ fieldKey: F.string() })).optional(),
225
+ itemName: F.string().optional(),
226
+ label: F.string().optional(),
227
+ resultType: F.enum(I.ResultType).optional(),
228
+ params: F.array(H).optional()
229
+ }).passthrough().optional(),
230
+ calculation: F.object({
231
+ calculation: F.string().optional(),
232
+ itemName: F.string().optional(),
233
+ label: F.string().optional(),
234
+ resultType: F.enum(I.ResultType).optional(),
235
+ namedParameters: Ct.optional(),
236
+ params: F.array(H).optional(),
237
+ filterParams: F.array(H).optional()
238
+ }).passthrough().optional(),
239
+ itemName: F.string().optional()
240
+ }), Dt = F.union([Tt, Et]), Ot = F.object({
241
+ key: F.string(),
242
+ name: F.string(),
243
+ disabled: F.boolean().optional(),
244
+ aggregators: F.array(et),
245
+ itemName: F.string().optional(),
246
+ predefinedLabel: F.string().optional(),
247
+ inheritFormatting: F.boolean().optional()
248
+ }), kt = Ot.extend({
249
+ schema: F.string().optional(),
250
+ view: F.string(),
251
+ dataType: F.enum(I.FieldType),
252
+ isManualData: F.boolean().optional(),
253
+ type: F.enum(Qe).optional()
254
+ }), At = Ot.extend({
255
+ id: F.string(),
256
+ type: F.enum(I.DatabaseItemType),
257
+ dimension: F.object({
258
+ itemName: F.string().optional(),
259
+ label: F.string().optional(),
260
+ resultType: F.enum(I.ResultType).optional(),
261
+ group: F.object({ fieldKeys: F.array(F.string()) }).optional()
262
+ }).passthrough().optional(),
263
+ measure: F.object({
264
+ aggregation: F.string(),
265
+ fieldKeys: F.array(F.string()).optional(),
266
+ fields: F.array(St.extend({ fieldKey: F.string() })).optional(),
267
+ itemName: F.string().optional(),
268
+ label: F.string().optional(),
269
+ resultType: F.enum(I.ResultType).optional(),
270
+ params: F.array(H).optional()
271
+ }).passthrough().optional(),
272
+ calculation: F.object({
273
+ calculation: F.string().optional(),
274
+ itemName: F.string().optional(),
275
+ label: F.string().optional(),
276
+ resultType: F.enum(I.ResultType).optional(),
277
+ namedParameters: Ct.optional(),
278
+ params: F.array(H).optional(),
279
+ filterParams: F.array(H).optional()
280
+ }).passthrough().optional(),
281
+ format: F.string().optional(),
282
+ description: F.string().optional()
283
+ }), jt = F.union([kt, At]), Mt = F.object({ handling: F.enum(_e) }), Nt = F.object({
284
+ formatString: L.optional(),
285
+ formatType: F.enum(v).or(F.enum(p)),
286
+ isDateTime: F.boolean().optional(),
287
+ thousandSeparator: F.string().optional(),
288
+ decimalSeparator: F.string().optional(),
289
+ currency: F.string().optional(),
290
+ negativeType: F.enum(te).optional(),
291
+ currencyIsPrefix: F.boolean().optional(),
292
+ numAbbreviations: F.record(F.string(), F.string()).optional(),
293
+ timezone: F.string().optional()
294
+ }), Pt = F.object({
295
+ type: F.enum([
296
+ "d3-time",
297
+ "d3-number",
298
+ "excel-format",
299
+ "string",
300
+ "referenced-field"
301
+ ]),
302
+ format: Nt,
303
+ dataItemId: F.string().optional()
304
+ }), Ft = {
305
+ pointPxSizeMinLowerLimit: 1,
306
+ pointPxSizeMinUpperLimit: 100,
307
+ pointPxSizeMaxLowerLimit: 1,
308
+ pointPxSizeMaxUpperLimit: 1e3,
309
+ pointSizeMin: 0,
310
+ pointSizeMax: 1
311
+ }, It = 1e3, Lt = F.object({
312
+ width: F.number(),
313
+ space: F.number()
314
+ }), Rt = F.object({
315
+ regressionType: F.enum(ye),
316
+ strokeWidth: F.number().optional(),
317
+ strokeDash: Lt.optional().nullable(),
318
+ color: F.string().optional().nullable(),
319
+ labelType: F.enum(be).optional(),
320
+ label: F.string().optional(),
321
+ showEquation: F.boolean().optional(),
322
+ polynomialOrder: F.number().optional(),
323
+ precision: F.number().optional(),
324
+ pointsPerPeriod: F.number().optional(),
325
+ growthPerPeriod: F.number().optional()
326
+ }), zt = Rt.extend({ type: F.literal("trend") }), Bt = Rt.extend({
327
+ type: F.literal("forecast"),
328
+ previousDataPoints: F.number().min(j.minDataPoints).max(j.maxDataPoints).optional(),
329
+ forecastedDataPoints: F.number().min(j.minDataPoints).max(j.maxDataPoints).optional(),
330
+ pointsPerPeriod: F.number().min(j.minPointsPerPeriod).max(j.maxPointsPerPeriod).optional(),
331
+ growthPerPeriod: F.number().min(j.minGrowthPerPeriod).max(j.maxGrowthPerPeriod).optional(),
332
+ dataPointShape: F.enum(o).optional(),
333
+ dataPointSize: F.number().optional(),
334
+ showDataPoints: F.boolean().optional(),
335
+ showForecastStart: F.boolean().optional(),
336
+ inheritColor: F.enum(Ce).optional(),
337
+ refLineLabel: F.string().optional()
338
+ }), U = F.object({
339
+ dataItem: Dt,
340
+ label: F.string().optional(),
341
+ description: F.string().optional(),
342
+ customLabel: F.object({
343
+ enabled: F.boolean(),
344
+ value: L.optional()
345
+ }).optional(),
346
+ formatter: Pt.optional(),
347
+ showNullValues: F.boolean().optional(),
348
+ topDimension: F.boolean().optional(),
349
+ imageFit: F.enum(y).optional(),
350
+ trendLine: zt.optional().nullable(),
351
+ dateLevel: F.enum(I.DateLevel).optional().nullable(),
352
+ datePart: F.enum(I.DatePart).optional().nullable(),
353
+ isImported: F.boolean().optional(),
354
+ coloring: F.object({
355
+ type: F.enum(ie),
356
+ palette: F.string().nullable().optional(),
357
+ customPalette: ut.optional(),
358
+ color: F.string().nullable().optional(),
359
+ persistentColors: F.boolean().optional()
360
+ }).optional(),
361
+ enabled: F.boolean().optional(),
362
+ group: F.string().optional(),
363
+ role: F.enum(oe).optional()
364
+ }), Vt = F.object({
365
+ weight: F.number().optional().nullable().describe("Font weight"),
366
+ bold: F.boolean().optional().describe("Bold font. Should take precedence over weight"),
367
+ italic: F.boolean().optional(),
368
+ underlined: F.boolean().optional(),
369
+ strikethrough: F.boolean().optional()
370
+ }).extend({
371
+ fontFamily: F.string().optional().nullable(),
372
+ fontSize: F.number().optional(),
373
+ fontColor: B.optional().nullable().describe("Font color (hex, with optional alpha)")
374
+ }), Ht = F.object({
375
+ width: F.number().min(1).max(10),
376
+ space: F.number().min(1).max(10)
377
+ }), Ut = F.object({
378
+ enabled: F.boolean().optional(),
379
+ dataItem: Dt,
380
+ stroke: B.optional().nullable(),
381
+ strokeWidth: F.number().optional(),
382
+ strokeDash: Ht.optional()
383
+ }), Wt = F.object({
384
+ wordBreak: F.enum([
385
+ "none",
386
+ "break-word",
387
+ "break-all"
388
+ ]).optional().describe("Word break rule"),
389
+ maxLines: F.number().optional().describe("Maximum number of lines allowed if label is broken into multiple lines"),
390
+ maxWidth: F.number().optional().describe("Maximum width of label, in px"),
391
+ fontSize: F.string().regex(/^\d+px$/).optional().describe("Legend item label font size (eg. \"12px\")"),
392
+ fontFamily: F.string().optional().describe("Legend item label font family"),
393
+ fill: B.optional().nullable().describe("Legend item label font color (hexadecimal color code)"),
394
+ maxGlyphCount: F.number().optional().nullable().describe("Maximum number of glyphs in the legend item label"),
395
+ limitCharacters: F.boolean().optional().describe("Limit characters by maxGlyphCount")
396
+ }), Gt = F.object({
397
+ showTitle: F.boolean().optional().describe("Show legend title"),
398
+ titleText: F.string().nullable().optional().describe("Legend title text"),
399
+ alignText: F.enum([
400
+ "start",
401
+ "middle",
402
+ "end"
403
+ ]).optional().describe("Horizontal alignment of the text"),
404
+ wordBreak: F.enum([
405
+ "none",
406
+ "break-word",
407
+ "break-all"
408
+ ]).optional().describe("Word break rule"),
409
+ maxLines: F.number().optional().describe("Maximum number of lines allowed if label is broken into multiple lines"),
410
+ maxWidth: F.number().optional().describe("Maximum width of title, in px"),
411
+ fontSize: F.number().optional().describe("Legend title font size in pixels (eg. 12)"),
412
+ fontFamily: F.string().optional().describe("Legend title font family")
413
+ }), Kt = F.object({
414
+ position: F.enum(x).describe("Legend position"),
415
+ direction: F.enum(["ltr", "rtl"]).optional().describe("Legend direction (left to right or right to left)"),
416
+ size: F.number().optional().describe("Maximum number of columns (vertical) or rows (horizontal)"),
417
+ showItems: F.boolean().optional().describe("Show legend items"),
418
+ enabled: F.boolean().describe("Enable legend"),
419
+ itemLabel: Wt.optional().describe("Legend item label settings"),
420
+ title: Gt.optional().describe("Legend title settings"),
421
+ layoutMode: F.enum([
422
+ "grid",
423
+ "flex",
424
+ "masonry"
425
+ ]).optional().describe("Layout mode for legend items"),
426
+ align: F.nativeEnum(Ee).optional().describe("Alignment of legend items (applicable only when dock is top or bottom)")
427
+ }), qt = F.object({
428
+ chartType: F.enum(se).optional(),
429
+ lineCurve: F.enum(h).optional()
430
+ }), Jt = F.object({
431
+ value: L.optional(),
432
+ valueFrom: L.optional(),
433
+ valueTo: L.optional(),
434
+ secondValue: L.optional()
435
+ }), Yt = F.object({
436
+ id: F.string(),
437
+ dataFieldId: F.string(),
438
+ operator: F.enum(ke).or(F.enum(I.DynamicDateCalcRangeType)),
439
+ values: Jt,
440
+ dateFilter: F.enum(I.DynamicDateCalcRangeType).or(F.null()).optional().describe("Predefined date filter"),
441
+ isApplied: F.boolean().optional().describe("Is filter applied")
442
+ }), Xt = F.enum(["and", "or"]), Zt = F.lazy(() => F.object({
443
+ id: F.string(),
444
+ operator: Xt,
445
+ filters: F.array(F.union([Yt, Zt]))
446
+ })), Qt = F.object({
447
+ ignoreGlobalFilters: F.boolean().optional().describe("Ignore global filters"),
448
+ disableInteraction: F.boolean().optional().describe("Disable interaction (selections etc.) on the chart"),
449
+ ignoredFilters: F.array(F.object({
450
+ fieldId: F.string(),
451
+ name: F.string()
452
+ })).optional().describe("Ignored filters"),
453
+ ignoreFiltersType: F.enum(le).optional().describe("Ignore filters type"),
454
+ filters: F.array(Yt).optional().describe("Filters"),
455
+ filterGroup: Zt.optional().describe("Nested filters"),
456
+ showGlobalFiltersEffect: F.boolean().optional().describe("Show effects of global filters on the chart")
457
+ }), $t = F.object({
458
+ icon: F.string().optional(),
459
+ iconColor: B.optional().nullable(),
460
+ numberColor: B.optional().nullable(),
461
+ comparisonColor: B.optional().nullable(),
462
+ backgroundColor: B.optional().nullable()
463
+ }), en = F.object({
464
+ target: R,
465
+ targetTolerance: F.number().min(0).max(1),
466
+ aboveTargetColorAndIcon: $t,
467
+ targetColorAndIcon: $t,
468
+ belowTargetColorAndIcon: $t
469
+ }), tn = F.object({
470
+ value: it,
471
+ dataType: F.enum([
472
+ "string",
473
+ "int",
474
+ "float",
475
+ "boolean",
476
+ "date",
477
+ "millisec",
478
+ "millisec_tz",
479
+ "timestamp",
480
+ "timestamp_tz"
481
+ ]).optional()
482
+ }), nn = F.enum([
483
+ "low",
484
+ "medium",
485
+ "high"
486
+ ]), rn = F.object({
487
+ itemKey: F.string(),
488
+ itemName: F.string().optional()
489
+ }), an = F.object({
490
+ value: it,
491
+ dataType: F.enum([
492
+ "string",
493
+ "int",
494
+ "float",
495
+ "boolean",
496
+ "date"
497
+ ]),
498
+ sourceType: F.enum([ne.STATIC, ne.VARIABLE])
499
+ }), on = F.object({
500
+ selectedUdf: rn,
501
+ parameters: F.record(F.string(), an).optional(),
502
+ arrayParameterDimensionDataFieldIds: F.record(F.string(), F.array(F.string())).optional()
503
+ }), sn = F.object({
504
+ type: F.enum([
505
+ "none",
506
+ "movingCalculation",
507
+ "runningTotal",
508
+ "runningRate",
509
+ "accumulatedGrowth",
510
+ "rank",
511
+ "total",
512
+ "shareTotal",
513
+ "nestedCalculation",
514
+ "nestedRatio",
515
+ "nestedCorrelation",
516
+ "value",
517
+ "diff",
518
+ "ratio",
519
+ "growth",
520
+ "apg",
521
+ "cagr",
522
+ "periodOverCorrelation",
523
+ "udf",
524
+ "customUdf"
525
+ ]),
526
+ aggregation: F.enum([
527
+ "SUM",
528
+ "AVG",
529
+ "MIN",
530
+ "MAX",
531
+ "PERCENTILE",
532
+ "OUTLIERS",
533
+ "CONTROL_VALUE"
534
+ ]).optional(),
535
+ additionalAggregation: F.enum([
536
+ "SUM",
537
+ "AVG",
538
+ "MIN",
539
+ "MAX"
540
+ ]).optional(),
541
+ dense: F.boolean().optional(),
542
+ rankSortDirection: F.enum(["asc", "desc"]).optional(),
543
+ groupType: F.enum([
544
+ "value",
545
+ "diff",
546
+ "ratio",
547
+ "growth"
548
+ ]).optional(),
549
+ dimensionDataFieldIds: F.array(F.string()).optional(),
550
+ additionalDimensionDataFieldIds: F.array(F.string()).optional(),
551
+ nestedOutputType: F.enum([
552
+ "default",
553
+ "dimensionValue",
554
+ "seriesValue"
555
+ ]).optional(),
556
+ nestedOutputPosition: F.enum(["first", "last"]).optional(),
557
+ nestedOutputTransform: F.enum(["percentRank", "standardScore"]).optional(),
558
+ dimensionsIds: F.array(F.string()).optional(),
559
+ offset: R.optional(),
560
+ startFromZero: F.boolean().optional(),
561
+ periodsPerYear: R.optional(),
562
+ windowBegin: R.optional(),
563
+ windowEnd: R.optional(),
564
+ nullIfNotEnoughValues: F.boolean().optional(),
565
+ compareMeasureDataFieldId: F.string().optional().nullable(),
566
+ sortingOrder: F.array(F.object({
567
+ id: F.string(),
568
+ sortDirection: F.enum(c)
569
+ })).optional(),
570
+ percentileValue: R.optional(),
571
+ percentileContinuous: F.boolean().optional(),
572
+ percentileApprox: F.boolean().optional(),
573
+ standardDeviations: R.optional(),
574
+ parameters: F.record(F.string(), tn).optional().nullable(),
575
+ comparisonType: F.enum([
576
+ "absolute",
577
+ "percentage",
578
+ "naturalLog"
579
+ ]).optional(),
580
+ rangesComparison: F.object({
581
+ enabled: F.boolean(),
582
+ type: F.enum(["absolute", "percentage"]),
583
+ firstRangeStart: R,
584
+ firstRangeEnd: R,
585
+ secondRangeStart: R,
586
+ secondRangeEnd: R
587
+ }).optional(),
588
+ udf: on.optional(),
589
+ customUdfFunctionName: F.string().optional(),
590
+ customUdfFunctionParam: R.optional(),
591
+ nonTimePeriod: F.boolean().optional(),
592
+ nonTimePeriodGranularity: F.enum([
593
+ "day",
594
+ "week",
595
+ "month",
596
+ "quarter",
597
+ "year"
598
+ ]).optional()
599
+ }), cn = F.enum(["measures", "supportingMeasures"]), ln = F.enum(["advancedCalculation", "nestedCalculation"]), un = F.object({
600
+ key: F.string(),
601
+ enabled: F.boolean().optional(),
602
+ _enabled: F.boolean().optional(),
603
+ source: F.enum(["variable", "field"]).optional(),
604
+ propertyValue: it.optional().nullable(),
605
+ indicator: F.enum([
606
+ "none",
607
+ "inverse",
608
+ "custom"
609
+ ]).optional().nullable(),
610
+ indicatorThreshold: F.object({
611
+ thresholdType: F.enum(["target"]),
612
+ targetThreshold: en.nullable().optional()
613
+ }).nullable().optional()
614
+ }).strict(), dn = F.object({
615
+ id: F.string(),
616
+ dataFieldId: F.string(),
617
+ operator: F.enum(ke).or(F.enum(I.DynamicDateCalcRangeType)),
618
+ values: Jt,
619
+ dateFilter: F.enum(I.DynamicDateCalcRangeType).optional().nullable(),
620
+ isApplied: F.boolean().optional(),
621
+ isPostFilter: F.boolean().optional(),
622
+ protected: F.boolean().optional()
623
+ }), W = F.object({
624
+ dataItem: Dt,
625
+ aggregation: et.optional(),
626
+ filters: F.array(dn).optional(),
627
+ parameters: F.record(F.string(), tn).optional(),
628
+ postFilters: F.array(dn).optional(),
629
+ label: F.string().optional(),
630
+ description: F.string().optional(),
631
+ customLabel: F.object({
632
+ enabled: F.boolean(),
633
+ value: L.optional()
634
+ }).optional(),
635
+ filterValueLabel: F.string().optional(),
636
+ formatter: Pt.optional(),
637
+ graphType: F.enum(je).optional(),
638
+ strokeWidth: F.number().optional(),
639
+ strokeDash: Lt.optional().nullable(),
640
+ graphColor: F.string().optional().nullable(),
641
+ showDataPoints: F.boolean().optional(),
642
+ hideLineArea: F.boolean().optional(),
643
+ lineCurve: F.enum(h).optional().nullable(),
644
+ dataLabels: F.object({
645
+ show: F.boolean().optional(),
646
+ rotate: F.boolean().optional(),
647
+ size: R.optional(),
648
+ showBackdrop: F.boolean().optional(),
649
+ isColored: F.boolean().optional(),
650
+ backdropColor: B.optional().nullable(),
651
+ textColor: B.optional().nullable(),
652
+ displayParts: F.array(F.enum(f)).optional(),
653
+ density: F.enum(de).optional(),
654
+ labelFormat: F.enum(Ye).optional(),
655
+ measureLabelFormat: F.enum(Xe).optional(),
656
+ barLabelPlacements: F.array(F.object({
657
+ position: F.enum($e).optional(),
658
+ justify: F.number().min(0).max(1).optional()
659
+ })).optional()
660
+ }).optional(),
661
+ dataPointShape: F.enum(o).optional().nullable().describe("Shape marking the data points"),
662
+ dataPointSize: F.number().min(Ft.pointSizeMin).max(Ft.pointSizeMax).optional().describe("Adaptive size (in percent)"),
663
+ dataPointSizeMinPx: F.number().min(Ft.pointPxSizeMinLowerLimit).max(Ft.pointPxSizeMinUpperLimit).optional().describe("Min size of the datapoint (in pixels)"),
664
+ dataPointSizeMaxPx: F.number().min(Ft.pointPxSizeMaxLowerLimit).max(Ft.pointPxSizeMaxUpperLimit).optional().describe("Max size of the datapoint (in pixels)"),
665
+ secondaryAxis: F.boolean().optional(),
666
+ targetValue: F.number().optional(),
667
+ trendLine: zt.optional().nullable(),
668
+ showNullValues: F.boolean().optional(),
669
+ forecasts: F.array(Bt).optional(),
670
+ replaceNullWith: F.object({
671
+ enabled: F.boolean().optional(),
672
+ value: F.number().nullable().optional()
673
+ }).optional(),
674
+ isImported: F.boolean().optional(),
675
+ advancedCalculation: sn.optional(),
676
+ nestedCalculation: sn.optional(),
677
+ enabled: F.boolean().optional(),
678
+ group: F.string().optional(),
679
+ geoSimplify: F.object({
680
+ enabled: F.boolean(),
681
+ tolerance: F.number()
682
+ }).optional(),
683
+ includeInTotal: F.boolean().optional(),
684
+ parentId: F.string().optional().nullable(),
685
+ role: F.enum(_).optional(),
686
+ slots: F.array(un).optional().nullable()
687
+ }), fn = F.object({
688
+ schema: F.string().optional(),
689
+ view: F.string(),
690
+ showAll: F.enum(I.ViewStateShowAll).optional(),
691
+ compatibleTypeFlags: F.object({ associativeListFilter: F.boolean().optional() }).optional()
692
+ }), pn = F.object({
693
+ dataItem: Dt.nullable(),
694
+ sortDirection: F.enum(c),
695
+ enabled: F.boolean().optional(),
696
+ fieldType: F.enum([
697
+ "dimension",
698
+ "measure",
699
+ "calculated-column",
700
+ "calculated-conditional-column"
701
+ ]),
702
+ customSortMeasuresIdx: F.number().optional(),
703
+ calculatedColumnId: F.string().optional(),
704
+ calculatedConditionalColumnId: F.string().optional(),
705
+ isSupportingMeasure: F.boolean().optional()
706
+ }), mn = F.object({
707
+ stringLabel: F.string().optional(),
708
+ booleanLabel: F.boolean().optional(),
709
+ numberLabel: F.number().optional()
710
+ }), hn = F.object({
711
+ enabled: F.boolean(),
712
+ timeout: z((e) => e.min(120).max(600)).optional()
713
+ }), gn = F.object({
714
+ enabled: F.boolean(),
715
+ ruleCreated: F.boolean().optional(),
716
+ numberOfValues: R.optional(),
717
+ showOthers: F.boolean().optional().describe("Group other values into one \"Others\" item"),
718
+ othersPosition: F.nativeEnum(Ze).optional().describe("Position of \"Others\" item - first (at the beginning), last (at the end) or default (let engine decide)"),
719
+ othersLabel: mn.optional().describe("Custom label for \"Others\" item"),
720
+ rankMeasureDataFieldId: F.string().optional(),
721
+ rankMeasureAggregation: F.string().optional(),
722
+ sortOrder: F.enum(["asc", "desc"]).optional().describe("Sort order (ascending or descending) to determine whether to show top or bottom N values"),
723
+ dimensionIdx: F.number().optional().nullable(),
724
+ parameters: F.record(F.string(), tn).optional().nullable(),
725
+ sortByRank: F.boolean().optional().describe("Sort chart by rank when Top N is applied")
726
+ }), _n = F.array(pn).optional(), vn = F.object({
727
+ enabled: F.boolean(),
728
+ createdAt: F.boolean().optional(),
729
+ createdBy: F.boolean().optional(),
730
+ sql: F.boolean().optional(),
731
+ semanticLayer: F.boolean().optional(),
732
+ title: F.boolean().optional(),
733
+ subtitle: F.boolean().optional(),
734
+ footnote: F.boolean().optional(),
735
+ custom: F.object({
736
+ enabled: F.boolean(),
737
+ name: L.optional().nullable(),
738
+ value: L.optional().nullable()
739
+ }).nullable().optional()
740
+ }), G = F.object({
741
+ limitQuery: F.number().optional().nullable(),
742
+ pageSize: F.number().optional().nullable(),
743
+ limitType: F.enum(["top", "bottom"]).optional(),
744
+ exportLimit: F.number().optional().nullable(),
745
+ exportTopDimLimit: F.number().optional().nullable(),
746
+ csvFormatValues: F.boolean().optional(),
747
+ sortingOrder: _n,
748
+ viewStates: F.array(fn).optional(),
749
+ topN: gn.optional(),
750
+ hideZeroValues: F.boolean().optional(),
751
+ enableCustomNullValue: F.boolean().optional(),
752
+ nullAs: L.optional().nullable(),
753
+ queryTimeout: hn.optional(),
754
+ withMetadata: vn.or(F.boolean()).optional(),
755
+ viewStatesParameters: F.record(F.string(), tn.optional().nullable()).optional().nullable()
756
+ }), yn = F.record(F.string(), F.string()), bn = F.object({
757
+ text: F.string().optional(),
758
+ padding: F.number().min(0).max(50).optional(),
759
+ fontSize: F.number().min(0).max(50).optional(),
760
+ vAlign: F.enum([
761
+ "top",
762
+ "middle",
763
+ "bottom"
764
+ ]).optional(),
765
+ align: F.enum([
766
+ "left",
767
+ "center",
768
+ "right"
769
+ ]).optional(),
770
+ showValue: F.boolean().optional(),
771
+ fill: B.optional()
772
+ }), xn = F.object({
773
+ value: F.union([L, R]).nullable(),
774
+ stroke: B.nullable().optional(),
775
+ strokeWidth: F.number().min(0).max(50).optional(),
776
+ label: bn.optional(),
777
+ isSecondaryAxis: F.boolean().optional(),
778
+ showOob: F.boolean().optional()
779
+ }), Sn = F.object({
780
+ x: F.array(xn).optional(),
781
+ y: F.array(xn).optional()
782
+ }), Cn = W.extend({ includeInExport: F.boolean().optional() }), wn = F.object({
783
+ type: F.enum([
784
+ "timestamp",
785
+ "offset",
786
+ "none"
787
+ ]).describe("Time travel type"),
788
+ month: F.string().optional().describe("Month"),
789
+ day: F.string().optional().describe("Day"),
790
+ time: F.string().optional().describe("Time"),
791
+ offsetDays: F.string().optional().describe("Offset days"),
792
+ offsetHours: F.string().optional().describe("Offset hours"),
793
+ offsetMinutes: F.string().optional().describe("Offset minutes")
794
+ }), Tn = F.object({
795
+ show: F.boolean().optional(),
796
+ hideTotal: F.boolean().optional(),
797
+ showFullNumberValues: F.boolean().optional(),
798
+ supportingMeasuresDataItemIds: F.array(F.string()).optional()
799
+ }), En = F.object({
800
+ variableName: F.string().min(1),
801
+ separator: F.string().max(50).optional(),
802
+ useVariableValueOnInitialLoad: F.boolean().optional()
803
+ }).strict();
804
+ F.object({
805
+ allItems: En.optional(),
806
+ enabledItems: En.optional()
807
+ }).strict().refine((e) => e.allItems || e.enabledItems, { message: "At least one assignment must be provided" });
808
+ var K = F.object({
809
+ allItems: En.nullable().optional(),
810
+ enabledItems: En.nullable().optional()
811
+ }).strict(), Dn = F.object({
812
+ dimensions: K.optional(),
813
+ measuresSlice: K.optional(),
814
+ measuresLength: K.optional(),
815
+ supportingMeasures: K.optional()
816
+ }).strict().nullable(), On = F.object({
817
+ dimensions: K.optional(),
818
+ measures: K.optional(),
819
+ supportingMeasures: K.optional()
820
+ }).strict().nullable(), kn = F.object({
821
+ dimensions: K.optional(),
822
+ measures: K.optional(),
823
+ supportingMeasures: K.optional()
824
+ }).strict().nullable(), An = F.object({
825
+ dimensions: K.optional(),
826
+ measures: K.optional(),
827
+ supportingMeasures: K.optional()
828
+ }).strict().nullable(), jn = F.object({
829
+ dimensions: K.optional(),
830
+ measuresValue: K.optional(),
831
+ measuresTarget: K.optional(),
832
+ supportingMeasures: K.optional()
833
+ }).strict().nullable(), Mn = F.object({
834
+ dimensions: K.optional(),
835
+ measuresValue: K.optional(),
836
+ supportingMeasures: K.optional()
837
+ }).strict().nullable(), Nn = F.object({
838
+ dimensionsHorizontal: K.optional(),
839
+ dimensionsVertical: K.optional(),
840
+ measuresColor: K.optional(),
841
+ measuresSize: K.optional(),
842
+ supportingMeasures: K.optional()
843
+ }).strict().nullable(), Pn = F.object({ dimensions: K.optional() }).strict().nullable(), Fn = F.object({
844
+ dimensions: K.optional(),
845
+ measures: K.optional(),
846
+ supportingMeasures: K.optional()
847
+ }).strict().nullable(), In = F.object({
848
+ measures: K.optional(),
849
+ comparison: K.optional()
850
+ }).strict().nullable(), Ln = F.object({
851
+ dimensions: K.optional(),
852
+ measures: K.optional()
853
+ }).strict().nullable(), Rn = F.object({
854
+ dimensions: K.optional(),
855
+ measures: K.optional()
856
+ }).strict().nullable(), zn = F.object({
857
+ dimensions: K.optional(),
858
+ dimensionsImage: K.optional(),
859
+ measuresHorizontal: K.optional(),
860
+ measuresVertical: K.optional(),
861
+ measuresSize: K.optional(),
862
+ supportingMeasures: K.optional()
863
+ }).strict().nullable(), Bn = F.object({
864
+ dimensions: K.optional(),
865
+ measures: K.optional(),
866
+ supportingMeasures: K.optional()
867
+ }).strict().nullable(), Vn = F.object({
868
+ measures: K.optional(),
869
+ supportingMeasures: K.optional()
870
+ }).strict().nullable(), Hn = F.object({
871
+ dimensions: K.optional(),
872
+ measures: K.optional(),
873
+ supportingMeasures: K.optional()
874
+ }).strict().nullable(), Un = F.object({
875
+ dimensions: K.optional(),
876
+ measures: K.optional(),
877
+ supportingMeasures: K.optional()
878
+ }).strict().nullable(), Wn = F.object({
879
+ dimensions: K.optional(),
880
+ measures: K.optional()
881
+ }).strict().nullable(), Gn = F.object({
882
+ enabled: F.boolean(),
883
+ limitBy: F.enum(["size", "count"]),
884
+ minCount: F.number().min(5).max(It).optional(),
885
+ minSize: F.number().min(1).max(128).optional(),
886
+ fixateLayout: F.boolean().optional(),
887
+ startFromEnd: F.boolean().optional(),
888
+ miniChart: F.boolean().optional(),
889
+ offset: F.number().optional(),
890
+ limit: F.number().optional()
891
+ }), Kn = F.object({
892
+ enabled: F.boolean(),
893
+ density: F.enum(de),
894
+ isColored: F.boolean().optional(),
895
+ colorType: F.enum(Be).optional(),
896
+ textColor: B.optional().nullable(),
897
+ backdropColor: B.optional().nullable(),
898
+ fontSize: z((e) => e.min(0)).optional().nullable(),
899
+ maxLength: z((e) => e.int().min(1)).optional().nullable()
900
+ }), qn = F.string().regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/).describe("vSpec version"), Jn = /* @__PURE__ */ e(r()), Yn = (e) => e.aggregators.filter((e) => !e.disabled && !e.requiredExtraParams).map((e) => e.funcName), Xn = (e) => {
901
+ let t = Yn(e);
902
+ return t.length > 0 ? t.join(", ") : "none";
903
+ }, Zn = (e, t) => t ? Yn(e).find((e) => e === t) ?? null : null;
904
+ function q(e, t) {
905
+ e.next({
906
+ action: me.UpdateVSpecPartial,
907
+ payload: { vSpecChange: t }
908
+ });
909
+ }
910
+ var Qn = (e) => {
911
+ try {
912
+ let t = e.flatten();
913
+ return [...t.formErrors, ...Object.values(t.fieldErrors).flat()].join("\n");
914
+ } catch {
915
+ return "Incorrect input";
916
+ }
917
+ }, J = (e, t, n, r) => {
918
+ let i = e.safeParse(t);
919
+ if (!i.success) {
920
+ let e = Qn(i.error);
921
+ return n.warn(`[${r}] validation failed`, {
922
+ payload: t,
923
+ error: i.error.issues
924
+ }), {
925
+ success: !1,
926
+ errorMessage: e
927
+ };
928
+ }
929
+ return {
930
+ success: !0,
931
+ errorMessage: void 0
932
+ };
933
+ }, $n = (e, t) => ({
934
+ dataItem: e.dataItem,
935
+ sortDirection: c.Asc,
936
+ fieldType: "dimension",
937
+ ...t === void 0 ? {} : { enabled: t }
938
+ }), er = (e, t = !1, n = [], r) => {
939
+ let i = {
940
+ dataItem: e.dataItem,
941
+ sortDirection: c.Desc,
942
+ fieldType: "measure",
943
+ ...r === void 0 ? {} : { enabled: r }
944
+ };
945
+ return t && (i.customSortMeasuresIdx = n.length), i;
946
+ };
947
+ function tr(e, t) {
948
+ return {
949
+ type: "excel-format",
950
+ format: rr(Te(e), e, !1, t)
951
+ };
952
+ }
953
+ function nr(e) {
954
+ return {
955
+ type: "excel-format",
956
+ format: rr(Te(e), e, !0)
957
+ };
958
+ }
959
+ function rr(e, t, n = !1, r = "") {
960
+ let i = e;
961
+ e === I.FieldType.GROUPED_DIMENSION && N(t) && (i = a[t.dimension.resultType]);
962
+ let o = { ...S }, s = ir(i, t, r);
963
+ switch (!0) {
964
+ case !!ge(t): return o.formatType = v.Inherit, o;
965
+ case n && (i === I.FieldType.TIMESTAMP || i === I.FieldType.TIMESTAMP_TZ): return o.formatType = p.DefaultDatetime, o;
966
+ case n && He(i): return o.formatType = p.DefaultDate, o;
967
+ case s === I.FieldType.TIME: return o.formatType = p.DefaultTime, o;
968
+ case s === I.FieldType.INT: return o.formatType = v.AbbreviationAuto, o;
969
+ case s === I.FieldType.DECIMAL || s === I.FieldType.FLOAT: return o.formatType = v.DefaultNumber, o;
970
+ default: return o;
971
+ }
972
+ }
973
+ function ir(e, t, n) {
974
+ let r = (t?.aggregators ?? []).find((e) => e.funcName === n);
975
+ return r ? r.resultType === "incoming" ? e : r.resultType : null;
976
+ }
977
+ var ar = (e, n, r, i, a, o) => {
978
+ let { key: s, newReferencedData: c } = Se(r, e), l = {
979
+ dataItem: Oe(e, s),
980
+ label: Pe(e),
981
+ description: t(e),
982
+ formatter: o ?? nr(e),
983
+ showNullValues: !0,
984
+ enabled: !1,
985
+ role: n
986
+ }, u = $n(l, (i ?? []).length === 0), d = [...i ?? [], u];
987
+ return {
988
+ newReferencedData: c,
989
+ newDimension: l,
990
+ newDimensions: [...Me(a), l],
991
+ newSorting: d
992
+ };
993
+ }, or = (e) => {
994
+ let t = e.querySettings?.pageSize, n = O(e);
995
+ return t ?? n;
996
+ }, sr = (e) => e.querySettings?.limitQuery ?? or(e), cr = () => ({ segmentSettings: {
997
+ position: ee.Absolute,
998
+ segments: []
999
+ } }), lr = (e, t, n, r, i) => e.map((e) => {
1000
+ if (e.id === t && b(e)) {
1001
+ let t = e.indicatorSettings ?? cr(), a = t.segmentSettings ?? cr().segmentSettings;
1002
+ return {
1003
+ ...e,
1004
+ indicatorSettings: {
1005
+ ...t,
1006
+ segmentSettings: {
1007
+ ...a,
1008
+ segments: (a.segments ?? []).map((e, t) => t === n ? {
1009
+ ...e,
1010
+ [r]: i
1011
+ } : e)
1012
+ }
1013
+ }
1014
+ };
1015
+ }
1016
+ return e;
1017
+ }), ur = (e, t, n = {}) => {
1018
+ let r = t === "button" ? ce.Button : ce.Text;
1019
+ return {
1020
+ ...Me(Ve),
1021
+ id: C(),
1022
+ columnType: t,
1023
+ dataItem: e.dataItem,
1024
+ label: e.label,
1025
+ description: e.description,
1026
+ formatter: e.formatter,
1027
+ representation: r,
1028
+ parameters: "parameters" in e ? e.parameters : void 0,
1029
+ ...dr(t, n),
1030
+ ...e.showNullValues !== void 0 && { showNullValues: e.showNullValues }
1031
+ };
1032
+ }, dr = (e, t) => ({
1033
+ horizontalAlign: t?.horizontalAlign ?? g.horizontalAlign,
1034
+ fontColor: { code: t?.fontColor ?? g.fontColor },
1035
+ backgroundColor: { code: t?.backgroundColor ?? g.backgroundColor },
1036
+ verticalAlign: t?.verticalAlign ?? g.verticalAlign,
1037
+ border: t?.border ?? g.border,
1038
+ filterIconBehavior: t?.filterIconBehavior ?? g.filterIconBehavior,
1039
+ sortIconBehavior: t?.sortIconBehavior ?? g.sortIconBehavior,
1040
+ drillThroughIconBehaviour: t?.drillThroughIconBehaviour ?? g.drillThroughIconBehaviour,
1041
+ freezeIconBehaviour: t?.freezeIconBehaviour ?? g.freezeIconBehaviour,
1042
+ ...t?.fontStyle && { fontStyle: t.fontStyle }
1043
+ }), fr = (e, t, n) => {
1044
+ let r = t.find((t) => P(t.dataItem) === P(e));
1045
+ if (!r) throw Error("Data item not found");
1046
+ let i = Me(r);
1047
+ return i.dataItem.uniqueSignature = E(), n.push(i), i.dataItem;
1048
+ }, pr = /* @__PURE__ */ e(ze()), mr = (e, r, a, o, s, c, l) => {
1049
+ let { key: d, newReferencedData: f } = Se(o, e), p = {
1050
+ dataItem: Re(e, r, d),
1051
+ label: Pe(e),
1052
+ description: t(e),
1053
+ formatter: l ?? tr(e, r),
1054
+ showNullValues: !0,
1055
+ aggregation: n(r),
1056
+ advancedCalculation: i,
1057
+ nestedCalculation: i,
1058
+ forecasts: [],
1059
+ enabled: !1,
1060
+ role: a
1061
+ }, m = u(e, c);
1062
+ m && (p.parameters = {
1063
+ ...p.parameters,
1064
+ ...m
1065
+ });
1066
+ let h = er(p, !1, [], (s ?? []).length === 0);
1067
+ return {
1068
+ newReferencedData: f,
1069
+ newMeasure: p,
1070
+ newSorting: [...s ?? [], h]
1071
+ };
1072
+ };
1073
+ function Y(e) {
1074
+ let t = {}, n = new Ke();
1075
+ n.subscribe((e) => {
1076
+ "payload" in e && typeof e.payload == "object" && e.payload !== null && "vSpecChange" in e.payload && e.payload.vSpecChange && (t = (0, Jn.default)(t, e.payload.vSpecChange, (e, t) => Array.isArray(t) ? t : void 0));
1077
+ });
1078
+ let r = e.map((e) => e(n, t)), i = r.find((e) => !e.success);
1079
+ return n.complete(), i ? {
1080
+ vSpecPartial: t,
1081
+ results: r,
1082
+ success: !1,
1083
+ errorMessage: i.errorMessage
1084
+ } : {
1085
+ vSpecPartial: t,
1086
+ results: r,
1087
+ success: !0
1088
+ };
1089
+ }
1090
+ var hr = he(), gr = (e) => N(e) ? e.type === hr.DatabaseItemType.MEASURE ? "measure" : e.type === hr.DatabaseItemType.CALCULATION ? "calculation" : null : "field", _r = (e, t, n) => {
1091
+ if (!t) return null;
1092
+ let r = gr(e);
1093
+ return r ? r === t ? null : {
1094
+ success: !1,
1095
+ errorMessage: `Selected item ${e.name ?? e.key} is a ${r}, not a ${t}`
1096
+ } : {
1097
+ success: !1,
1098
+ errorMessage: `Selected item ${e.name ?? e.key} cannot be added as a ${n}`
1099
+ };
1100
+ }, vr = (e, t) => N(e) && e.type !== hr.DatabaseItemType.MEASURE && e.type !== hr.DatabaseItemType.CALCULATION ? {
1101
+ success: !1,
1102
+ errorMessage: `When using DVE-defined items, only measure or calculation can be added as the ${t}`
1103
+ } : null, yr = (e, t) => N(e) ? void 0 : t, br = (e, t, n) => ({
1104
+ success: !1,
1105
+ errorMessage: `Aggregation "${t}" is not supported for ${n} ${e.name ?? e.key}. Supported aggregations: ${Xn(e)}`
1106
+ }), xr = (e, t, n, r) => {
1107
+ if (N(e)) return { result: null };
1108
+ if (!t) return { result: {
1109
+ success: !1,
1110
+ errorMessage: n
1111
+ } };
1112
+ let i = Zn(e, t);
1113
+ return i ? {
1114
+ result: null,
1115
+ resolvedAggregation: i
1116
+ } : { result: br(e, t, r) };
1117
+ }, Sr = (e, t, n) => {
1118
+ if (!e) return {
1119
+ result: null,
1120
+ resolvedAggregation: t
1121
+ };
1122
+ let r = Zn(e, t);
1123
+ return r ? {
1124
+ result: null,
1125
+ resolvedAggregation: r
1126
+ } : {
1127
+ result: br(e, t, n),
1128
+ resolvedAggregation: t
1129
+ };
1130
+ };
1131
+ function Cr(e, t, n, r, i) {
1132
+ return q(e, { [t]: De(n, r, i) }), { success: !0 };
1133
+ }
1134
+ function X(e, t, n, r) {
1135
+ return Cr(e, "measures", t, n, r);
1136
+ }
1137
+ var Z = Ie("measure-handlers", "#76ff03"), wr = (e, t, n, r, i = [], a, o, s, c = [], l, u, d, f, p, m) => {
1138
+ Z.info("[handleMeasureAdd] input", {
1139
+ field: o,
1140
+ aggregation: l,
1141
+ dimensions: n,
1142
+ measures: t,
1143
+ sortingOrder: i
1144
+ });
1145
+ let { success: h, errorMessage: g } = J(F.object({
1146
+ dimensions: F.array(U),
1147
+ measures: F.array(W),
1148
+ chartType: F.string(),
1149
+ referencedData: yn,
1150
+ sortingOrder: G.shape.sortingOrder,
1151
+ field: jt,
1152
+ aggregation: F.string().optional(),
1153
+ role: F.enum(_).optional()
1154
+ }), {
1155
+ dimensions: n,
1156
+ measures: t,
1157
+ chartType: r,
1158
+ referencedData: a,
1159
+ sortingOrder: i,
1160
+ field: o,
1161
+ aggregation: l,
1162
+ role: s
1163
+ }, Z, "handleMeasureAdd");
1164
+ if (!h) return {
1165
+ success: !1,
1166
+ errorMessage: g
1167
+ };
1168
+ let v = _r(o, m, "measure");
1169
+ if (v) return v;
1170
+ let y = N(o), b = vr(o, "measure");
1171
+ if (b) return Z.error("[handleMeasureAdd] When using DVE-defined items, only measure or calculation can be added", {
1172
+ field: o,
1173
+ aggregation: l,
1174
+ isCustomMeasure: y
1175
+ }), b;
1176
+ let { result: x, resolvedAggregation: S } = xr(o, l, "Aggregation is required for non-DVE-defined measures", "measure field");
1177
+ if (x?.success === !1) return Z.error("[handleMeasureAdd] invalid aggregation for measure", {
1178
+ field: o,
1179
+ aggregation: l,
1180
+ isCustomMeasure: y,
1181
+ errorMessage: x.errorMessage
1182
+ }), x;
1183
+ let C = i ?? [], { newReferencedData: ee, newMeasure: w, newSorting: te } = mr(o, yr(o, S), s, a, C, c, u), T = w;
1184
+ f && (T = f(w));
1185
+ let ne = [...structuredClone(t), T], { dimensions: E, measures: D } = A(n, ne, r, {
1186
+ type: M.ENABLE,
1187
+ dataItemId: P(T.dataItem)
1188
+ }, { alternateSettings: p }), O = d?.({
1189
+ dimensions: E,
1190
+ measures: D
1191
+ });
1192
+ return Z.debug("[handleMeasureAdd] adding new measure", {
1193
+ finalMeasure: T,
1194
+ newMeasures: ne,
1195
+ adjustedDimensions: E,
1196
+ adjustedMeasures: D,
1197
+ oldSorting: C,
1198
+ newSorting: te,
1199
+ newColoring: O
1200
+ }), q(e, {
1201
+ referencedData: ee,
1202
+ dimensions: E,
1203
+ measures: D,
1204
+ querySettings: { sortingOrder: te },
1205
+ ...O ? { coloring: O } : {}
1206
+ }), {
1207
+ success: !0,
1208
+ data: T
1209
+ };
1210
+ }, Tr = (e, t, n, r, i = [], a, o, s, c, u = [], d, f, p, m, h, g) => {
1211
+ Z.info("[handleMeasureAddForEngineKey] input", {
1212
+ measures: t,
1213
+ dimensions: n,
1214
+ chartType: r,
1215
+ referencedData: o,
1216
+ sortingOrder: i,
1217
+ engineKey: s,
1218
+ aggregation: d,
1219
+ role: c,
1220
+ coloringSideEffectsFn: p,
1221
+ availableFields: a
1222
+ });
1223
+ let { success: v, errorMessage: y } = J(F.object({
1224
+ dimensions: F.array(U),
1225
+ measures: F.array(W),
1226
+ chartType: F.string(),
1227
+ referencedData: yn,
1228
+ sortingOrder: G.shape.sortingOrder,
1229
+ engineKey: F.string(),
1230
+ aggregation: F.string().optional(),
1231
+ role: F.enum(_).optional()
1232
+ }), {
1233
+ dimensions: n,
1234
+ measures: t,
1235
+ chartType: r,
1236
+ referencedData: o,
1237
+ sortingOrder: i,
1238
+ engineKey: s,
1239
+ aggregation: d,
1240
+ role: c
1241
+ }, Z, "handleMeasureAddForEngineKey");
1242
+ if (!v) return {
1243
+ success: !1,
1244
+ errorMessage: y
1245
+ };
1246
+ let b = l(a, s);
1247
+ if (!b) return {
1248
+ success: !1,
1249
+ errorMessage: `Field with engine key ${s} not found`
1250
+ };
1251
+ let x = _r(b, h, "measure");
1252
+ if (x) return x;
1253
+ let S = N(b), { result: C, resolvedAggregation: ee } = xr(b, d, "Aggregation is required for non-DVE-defined measures", "measure field");
1254
+ if (C?.success === !1) return Z.error("[handleMeasureAddForEngineKey] invalid aggregation for measure", {
1255
+ field: b,
1256
+ aggregation: d,
1257
+ isCustomMeasure: S,
1258
+ errorMessage: C.errorMessage
1259
+ }), C;
1260
+ let w = vr(b, "measure");
1261
+ if (w) return Z.error("[handleMeasureAddForEngineKey] When using DVE-defined items, only measure or calculation can be added", {
1262
+ field: b,
1263
+ aggregation: d,
1264
+ isCustomMeasure: S
1265
+ }), w;
1266
+ let te = yr(b, ee), T = i ?? [], { newReferencedData: ne, newMeasure: E, newSorting: D } = mr(b, te, c, o, T, u, f), O = E;
1267
+ g && (O = g(E));
1268
+ let k = [...structuredClone(t), O], { dimensions: re, measures: ie } = A(n, k, r, {
1269
+ type: M.ENABLE,
1270
+ dataItemId: P(E.dataItem)
1271
+ }, { alternateSettings: m }), ae = p?.({
1272
+ dimensions: re,
1273
+ measures: ie
1274
+ });
1275
+ return Z.debug("[handleMeasureAdd] adding new measure", {
1276
+ newMeasure: E,
1277
+ newMeasures: k,
1278
+ adjustedDimensions: re,
1279
+ adjustedMeasures: ie,
1280
+ oldSorting: T,
1281
+ newSorting: D,
1282
+ newColoring: ae
1283
+ }), q(e, {
1284
+ referencedData: ne,
1285
+ dimensions: re,
1286
+ measures: ie,
1287
+ querySettings: { sortingOrder: D },
1288
+ ...ae ? { coloring: ae } : {}
1289
+ }), {
1290
+ success: !0,
1291
+ data: O
1292
+ };
1293
+ }, Er = (e, t, n, r, i, a = [], o, s, c, l) => {
1294
+ Z.info("handleMeasureRemove input", {
1295
+ measures: t,
1296
+ dataItemId: i,
1297
+ sortingOrder: a
1298
+ });
1299
+ let { success: u, errorMessage: d } = J(F.object({
1300
+ measures: F.array(W),
1301
+ dataItemId: Array.isArray(i) ? F.array(V) : V,
1302
+ sortingOrder: _n
1303
+ }), {
1304
+ measures: t,
1305
+ dataItemId: i,
1306
+ sortingOrder: a
1307
+ }, Z, "handleMeasureRemove");
1308
+ if (!u) return {
1309
+ success: !1,
1310
+ errorMessage: d
1311
+ };
1312
+ let f = Array.isArray(i) ? i : [i], p = structuredClone(t).filter((e) => !f.includes(P(e.dataItem))), m = structuredClone(a).filter((e) => e.dataItem === null || !f.includes(P(e.dataItem))), h = pe(p, o), g = structuredClone(c ?? []).filter((e) => !f.includes(P(e.dataItem))), { dimensions: _, measures: v } = A(n, p, r, { type: M.FIX_STATE }, { alternateSettings: l }), y = s?.({
1313
+ dimensions: _,
1314
+ measures: v
1315
+ });
1316
+ return Z.debug("[handleMeasureRemove] removing measure(s)", {
1317
+ newMeasures: p,
1318
+ adjustedDimensions: _,
1319
+ adjustedMeasures: v,
1320
+ newSorting: m,
1321
+ newRefLines: h,
1322
+ newColoring: y
1323
+ }), q(e, {
1324
+ dimensions: _,
1325
+ measures: v,
1326
+ querySettings: { sortingOrder: m },
1327
+ refLines: h,
1328
+ ...y ? { coloring: y } : {},
1329
+ grid: g
1330
+ }), { success: !0 };
1331
+ }, Dr = (e, t, n, r, i) => {
1332
+ Z.info("handleMeasureChangeForDataItemId input", {
1333
+ measures: t,
1334
+ dataItemId: n,
1335
+ changes: r
1336
+ });
1337
+ let { success: a, errorMessage: o } = J(F.object({
1338
+ measures: F.array(W),
1339
+ dataItemId: V,
1340
+ changes: F.object({ customLabel: F.object({
1341
+ enabled: F.boolean(),
1342
+ value: F.string().optional()
1343
+ }).optional() })
1344
+ }), {
1345
+ measures: t,
1346
+ dataItemId: n,
1347
+ changes: r
1348
+ }, Z, "handleMeasureChangeForDataItemId");
1349
+ if (!a) return {
1350
+ success: !1,
1351
+ errorMessage: o
1352
+ };
1353
+ let s = Ne(t, n, (e) => (r.customLabel !== void 0 && r.customLabel !== null && (e.customLabel = {
1354
+ enabled: r.customLabel.enabled,
1355
+ value: r.customLabel.value
1356
+ }), e)), c = i?.({ measures: s });
1357
+ return Z.debug("[handleMeasureChangeForDataItemId] updating measure", {
1358
+ newMeasures: s,
1359
+ newColoring: c
1360
+ }), q(e, {
1361
+ measures: s,
1362
+ ...c ? { coloring: c } : {}
1363
+ }), { success: !0 };
1364
+ }, Or = (e, t, n, r, i, a, o, s, c = !1, l) => {
1365
+ Z.info("handleMeasureToggle input", {
1366
+ measures: t,
1367
+ dimensions: n,
1368
+ chartType: r,
1369
+ dataItemId: a,
1370
+ enabled: o
1371
+ });
1372
+ let { success: u, errorMessage: d } = J(F.object({
1373
+ measures: F.array(W),
1374
+ dimensions: F.array(U),
1375
+ chartType: F.string(),
1376
+ dataItemId: V,
1377
+ enabled: F.boolean()
1378
+ }), {
1379
+ measures: t,
1380
+ dimensions: n,
1381
+ chartType: r,
1382
+ dataItemId: a,
1383
+ enabled: o
1384
+ }, Z, "handleMeasureToggle");
1385
+ if (!u) return {
1386
+ success: !1,
1387
+ errorMessage: d
1388
+ };
1389
+ if (a === null) return {
1390
+ success: !1,
1391
+ errorMessage: "Data item ID is required"
1392
+ };
1393
+ let f = structuredClone(t), { dimensions: p, measures: m } = A(n, f, r, {
1394
+ type: o ? M.ENABLE : M.DISABLE,
1395
+ dataItemId: a
1396
+ }, {
1397
+ fixStateOnDisable: c,
1398
+ alternateSettings: l
1399
+ }), h = s?.({
1400
+ dimensions: p,
1401
+ measures: m
1402
+ }), g = pe(m, i);
1403
+ return Z.debug("[handleMeasureToggle] updating measure", {
1404
+ newMeasures: f,
1405
+ adjustedDimensions: p,
1406
+ adjustedMeasures: m,
1407
+ newColoring: h,
1408
+ newRefLines: g
1409
+ }), q(e, {
1410
+ dimensions: p,
1411
+ measures: m,
1412
+ ...h ? { coloring: h } : {},
1413
+ refLines: g
1414
+ }), { success: !0 };
1415
+ }, kr = (e, t, n, r, i, a, o, s, c) => {
1416
+ Z.info("handleToggleMeasuresByNames input", {
1417
+ measures: t,
1418
+ name: a,
1419
+ enabled: o,
1420
+ coloringSideEffectsFn: s
1421
+ });
1422
+ let l = t.filter((e) => e.label === a);
1423
+ if (l.length === 0) return Z.info("[handleToggleMeasuresByNames] No matching measures found, nothing to toggle", { name: a }), { success: !0 };
1424
+ let u = [];
1425
+ l.forEach((e) => {
1426
+ let a = P(e.dataItem), l = o === void 0 ? !e.enabled : o;
1427
+ u.push((e, o) => Or(e, o.measures ?? t, o.dimensions ?? n, r, i, a, l, s, !1, c));
1428
+ });
1429
+ let d = Y(u);
1430
+ return d.success ? (Z.debug("[handleToggleMeasuresByNames] updated measures", { newMeasures: d.vSpecPartial.measures }), q(e, d.vSpecPartial), { success: !0 }) : {
1431
+ success: !1,
1432
+ errorMessage: d?.errorMessage
1433
+ };
1434
+ }, Ar = (e, t, n, r, i, a, o, s) => {
1435
+ Z.info("handleMeasureDuplicate input", {
1436
+ measures: t,
1437
+ dataItemId: i,
1438
+ sortingOrder: s
1439
+ });
1440
+ let { success: c, errorMessage: l } = J(F.object({
1441
+ measures: F.array(W),
1442
+ dataItemId: V,
1443
+ sortingOrder: G.shape.sortingOrder.optional()
1444
+ }), {
1445
+ measures: t,
1446
+ dataItemId: i,
1447
+ sortingOrder: s
1448
+ }, Z, "handleMeasureDuplicate");
1449
+ if (!c) return {
1450
+ success: !1,
1451
+ errorMessage: l
1452
+ };
1453
+ let u = Array.isArray(i) ? i : [i], d = structuredClone(t), f = u.map((e) => d.find((t) => P(t.dataItem) === e)).filter((e) => e !== void 0).map((e) => {
1454
+ let t = structuredClone(e);
1455
+ return t.dataItem.uniqueSignature = E(), t;
1456
+ }), p = [...d, ...f], m = s ? [...s, ...f.map((e, t) => er(e, !1, [], s.length === 0 && t === 0))] : void 0, h = structuredClone(n), g = structuredClone(p);
1457
+ for (let e of f) {
1458
+ let { dimensions: t, measures: i } = A(n, g, r, {
1459
+ type: M.ENABLE,
1460
+ dataItemId: P(e.dataItem)
1461
+ }, { alternateSettings: o });
1462
+ h = t, g = i;
1463
+ }
1464
+ let _ = a?.({
1465
+ dimensions: h,
1466
+ measures: g
1467
+ });
1468
+ return Z.debug("[handleMeasureDuplicate] duplicating measure(s)", {
1469
+ newMeasures: p,
1470
+ adjustedDimensionsResult: h,
1471
+ adjustedMeasuresResult: g,
1472
+ newSorting: m,
1473
+ newColoring: _
1474
+ }), q(e, {
1475
+ dimensions: h,
1476
+ measures: g,
1477
+ ...m ? { querySettings: { sortingOrder: m } } : {},
1478
+ ..._ ? { coloring: _ } : {}
1479
+ }), {
1480
+ data: f,
1481
+ success: !0
1482
+ };
1483
+ }, jr = (e, r, i, a = [], o, s, c, l, u, d) => {
1484
+ Z.info("handleMeasureFieldChange input", {
1485
+ measures: r,
1486
+ dataItemId: i,
1487
+ newField: s,
1488
+ aggregation: l,
1489
+ uniqueSignature: u,
1490
+ sourceKind: d
1491
+ });
1492
+ let { success: f, errorMessage: p } = J(F.object({
1493
+ measures: F.array(W),
1494
+ dataItemId: V,
1495
+ newField: jt,
1496
+ aggregation: F.string().optional(),
1497
+ uniqueSignature: F.string().optional()
1498
+ }), {
1499
+ measures: r,
1500
+ dataItemId: i,
1501
+ newField: s,
1502
+ aggregation: l,
1503
+ uniqueSignature: u
1504
+ }, Z, "handleMeasureFieldChange");
1505
+ if (!f) return {
1506
+ success: !1,
1507
+ errorMessage: p
1508
+ };
1509
+ let m = _r(s, d, "measure");
1510
+ if (m) return m;
1511
+ if (!gr(s)) return {
1512
+ success: !1,
1513
+ errorMessage: `Selected item ${s.name ?? s.key} cannot be used as a measure`
1514
+ };
1515
+ let { result: h, resolvedAggregation: g } = xr(s, l, "Aggregation is required for raw fields used as measures", "measure field");
1516
+ if (h) return h;
1517
+ let _ = yr(s, g), v = r.findIndex((e) => P(e.dataItem) === i);
1518
+ if (v === -1) return {
1519
+ success: !1,
1520
+ errorMessage: `Measure with data item ID ${i} not found`
1521
+ };
1522
+ let y = a?.findIndex((e) => P(e.dataItem) === i), { key: b, newReferencedData: x } = Se(o, s), S = we(Ne(r, i, (e) => ({
1523
+ ...e,
1524
+ label: Pe(s),
1525
+ description: t(s),
1526
+ dataItem: Re(s, _, b, u),
1527
+ aggregation: n(_)
1528
+ }))), C = S[v], ee = [...a];
1529
+ y > -1 && (ee[y] = er(C, !1, [], a[y]?.enabled));
1530
+ let w = c?.({ measures: S });
1531
+ return Z.debug("[handleMeasureFieldChange] updating measure", {
1532
+ newReferencedData: x,
1533
+ newMeasures: S,
1534
+ newColoring: w
1535
+ }), q(e, {
1536
+ referencedData: x,
1537
+ measures: S,
1538
+ ...w ? { coloring: w } : {},
1539
+ querySettings: { sortingOrder: ee }
1540
+ }), {
1541
+ data: C,
1542
+ success: !0
1543
+ };
1544
+ }, Mr = (e, t, r, i, a, o) => {
1545
+ Z.info("handleMeasureAggregationChange input", {
1546
+ measures: t,
1547
+ dataItemId: r,
1548
+ aggregation: i
1549
+ });
1550
+ let { success: s, errorMessage: c } = J(F.object({
1551
+ measures: F.array(W),
1552
+ dataItemId: V,
1553
+ aggregation: F.string()
1554
+ }), {
1555
+ measures: t,
1556
+ dataItemId: r,
1557
+ aggregation: i
1558
+ }, Z, "handleMeasureAggregationChange");
1559
+ if (!s) return {
1560
+ success: !1,
1561
+ errorMessage: c
1562
+ };
1563
+ let { result: l, resolvedAggregation: u } = Sr(o, i, "measure");
1564
+ if (l) return l;
1565
+ let d = n(u);
1566
+ if (!d) return {
1567
+ success: !1,
1568
+ errorMessage: `Aggregation "${u}" is not recognized`
1569
+ };
1570
+ let f = Ne(t, r, (e) => ({
1571
+ ...e,
1572
+ aggregation: d,
1573
+ dataItem: {
1574
+ ...e.dataItem,
1575
+ aggregation: d
1576
+ }
1577
+ })), p = a?.({ measures: f });
1578
+ return q(e, {
1579
+ measures: f,
1580
+ ...p ? { coloring: p } : {}
1581
+ }), { success: !0 };
1582
+ }, Nr = (e, t, n, r) => {
1583
+ Z.info("handleMeasureStrokeWidthChange input", {
1584
+ measures: t,
1585
+ dataItemId: n,
1586
+ strokeWidth: r
1587
+ });
1588
+ let { success: i, errorMessage: a } = J(F.object({
1589
+ measures: F.array(W),
1590
+ dataItemId: V,
1591
+ strokeWidth: W.shape.strokeWidth
1592
+ }), {
1593
+ measures: t,
1594
+ dataItemId: n,
1595
+ strokeWidth: r
1596
+ }, Z, "handleMeasureStrokeWidthChange");
1597
+ return i ? X(e, t, n, (e) => ({
1598
+ ...e,
1599
+ strokeWidth: r,
1600
+ ...e.strokeDash ? { strokeDash: {
1601
+ width: r * 3,
1602
+ space: r * 3
1603
+ } } : {}
1604
+ })) : {
1605
+ success: !1,
1606
+ errorMessage: a
1607
+ };
1608
+ }, Pr = (e, t, n, r, i = 1) => {
1609
+ Z.info("handleMeasureLineStyleChange input", {
1610
+ measures: t,
1611
+ dataItemId: n,
1612
+ lineStyle: r,
1613
+ strokeWidth: i
1614
+ });
1615
+ let { success: a, errorMessage: o } = J(F.object({
1616
+ measures: F.array(W),
1617
+ dataItemId: V,
1618
+ lineStyle: F.enum(Ae),
1619
+ strokeWidth: W.shape.strokeWidth.optional()
1620
+ }), {
1621
+ measures: t,
1622
+ dataItemId: n,
1623
+ lineStyle: r,
1624
+ strokeWidth: i
1625
+ }, Z, "handleMeasureLineStyleChange");
1626
+ if (!a) return {
1627
+ success: !1,
1628
+ errorMessage: o
1629
+ };
1630
+ let s = r === Ae.Dashed ? {
1631
+ width: i * 3,
1632
+ space: i * 3
1633
+ } : null;
1634
+ return X(e, t, n, (e) => ({
1635
+ ...e,
1636
+ strokeDash: s
1637
+ }));
1638
+ }, Fr = (e, t, n, r) => {
1639
+ Z.info("handleMeasureDataPointShapeChange input", {
1640
+ measures: t,
1641
+ dataItemId: n,
1642
+ dataPointShape: r
1643
+ });
1644
+ let { success: i, errorMessage: a } = J(F.object({
1645
+ measures: F.array(W),
1646
+ dataItemId: V,
1647
+ dataPointShape: W.shape.dataPointShape
1648
+ }), {
1649
+ measures: t,
1650
+ dataItemId: n,
1651
+ dataPointShape: r
1652
+ }, Z, "handleMeasureDataPointShapeChange");
1653
+ if (!i) return {
1654
+ success: !1,
1655
+ errorMessage: a
1656
+ };
1657
+ let o = {};
1658
+ return (0, pr.default)(r) ? (o.dataPointShape = null, o.showDataPoints = !1) : (o.dataPointShape = r, o.showDataPoints = !0), X(e, t, n, (e) => ({
1659
+ ...e,
1660
+ ...o
1661
+ }));
1662
+ }, Ir = (e, t, n, r) => {
1663
+ Z.info("handleMeasureDataPointSizeChange input", {
1664
+ measures: t,
1665
+ dataItemId: n,
1666
+ dataPointSize: r
1667
+ });
1668
+ let { success: i, errorMessage: a } = J(F.object({
1669
+ measures: F.array(W),
1670
+ dataItemId: V,
1671
+ dataPointSize: W.shape.dataPointSize
1672
+ }), {
1673
+ measures: t,
1674
+ dataItemId: n,
1675
+ dataPointSize: r
1676
+ }, Z, "handleMeasureDataPointSizeChange");
1677
+ return i ? X(e, t, n, (e) => ({
1678
+ ...e,
1679
+ dataPointSize: r
1680
+ })) : {
1681
+ success: !1,
1682
+ errorMessage: a
1683
+ };
1684
+ }, Lr = (e, t, n, r) => {
1685
+ Z.info("handleMeasureDataPointSizeMinChange input", {
1686
+ measures: t,
1687
+ dataItemId: n,
1688
+ dataPointSizeMinPx: r
1689
+ });
1690
+ let { success: i, errorMessage: a } = J(F.object({
1691
+ measures: F.array(W),
1692
+ dataItemId: V,
1693
+ dataPointSizeMinPx: W.shape.dataPointSizeMinPx
1694
+ }), {
1695
+ measures: t,
1696
+ dataItemId: n,
1697
+ dataPointSizeMinPx: r
1698
+ }, Z, "handleMeasureDataPointSizeMinChange");
1699
+ return i ? X(e, t, n, (e) => ({
1700
+ ...e,
1701
+ dataPointSizeMinPx: r
1702
+ })) : {
1703
+ success: !1,
1704
+ errorMessage: a
1705
+ };
1706
+ }, Rr = (e, t, n, r) => {
1707
+ Z.info("handleMeasureDataPointSizeMaxChange input", {
1708
+ measures: t,
1709
+ dataItemId: n,
1710
+ dataPointSizeMaxPx: r
1711
+ });
1712
+ let { success: i, errorMessage: a } = J(F.object({
1713
+ measures: F.array(W),
1714
+ dataItemId: V,
1715
+ dataPointSizeMaxPx: W.shape.dataPointSizeMaxPx
1716
+ }), {
1717
+ measures: t,
1718
+ dataItemId: n,
1719
+ dataPointSizeMaxPx: r
1720
+ }, Z, "handleMeasureDataPointSizeMaxChange");
1721
+ return i ? X(e, t, n, (e) => ({
1722
+ ...e,
1723
+ dataPointSizeMaxPx: r
1724
+ })) : {
1725
+ success: !1,
1726
+ errorMessage: a
1727
+ };
1728
+ };
1729
+ function zr(e, t, n, r, i) {
1730
+ Z.info("handleMeasureSecondaryAxis input", {
1731
+ measureDataItemId: n,
1732
+ secondaryAxis: i
1733
+ });
1734
+ let { success: a, errorMessage: o } = J(F.object({
1735
+ measures: F.array(W),
1736
+ measureDataItemId: V,
1737
+ secondaryAxis: W.shape.secondaryAxis
1738
+ }), {
1739
+ measures: t,
1740
+ measureDataItemId: n,
1741
+ secondaryAxis: i
1742
+ }, Z, "handleMeasureSecondaryAxis");
1743
+ if (!a) return {
1744
+ success: !1,
1745
+ errorMessage: o
1746
+ };
1747
+ let s = Ne(t, n, (e) => ({
1748
+ ...e,
1749
+ secondaryAxis: i
1750
+ }));
1751
+ return q(e, {
1752
+ measures: s,
1753
+ refLines: pe(s, r)
1754
+ }), { success: !0 };
1755
+ }
1756
+ function Br(e, t, n, r) {
1757
+ Z.info("handleDataLabelsBackdropColor input", {
1758
+ measureDataItemId: n,
1759
+ backdropColor: r
1760
+ });
1761
+ let { success: i, errorMessage: a } = J(F.object({
1762
+ measures: F.array(W),
1763
+ measureDataItemId: V,
1764
+ backdropColor: W.shape.dataLabels.unwrap().shape.backdropColor
1765
+ }), {
1766
+ measures: t,
1767
+ measureDataItemId: n,
1768
+ backdropColor: r
1769
+ }, Z, "handleDataLabelsBackdropColor");
1770
+ return i ? X(e, t, n, (e) => ({
1771
+ ...e,
1772
+ dataLabels: {
1773
+ ...e.dataLabels,
1774
+ backdropColor: r
1775
+ }
1776
+ })) : {
1777
+ success: !1,
1778
+ errorMessage: a
1779
+ };
1780
+ }
1781
+ function Vr(e, t, n, r) {
1782
+ Z.info("handleDataLabelsShowBackdrop input", {
1783
+ measureDataItemId: n,
1784
+ showBackdrop: r
1785
+ });
1786
+ let { success: i, errorMessage: a } = J(F.object({
1787
+ measures: F.array(W),
1788
+ measureDataItemId: V,
1789
+ showBackdrop: W.shape.dataLabels.unwrap().shape.showBackdrop
1790
+ }), {
1791
+ measures: t,
1792
+ measureDataItemId: n,
1793
+ showBackdrop: r
1794
+ }, Z, "handleDataLabelsShowBackdrop");
1795
+ return i ? X(e, t, n, (e) => ({
1796
+ ...e,
1797
+ dataLabels: {
1798
+ ...e.dataLabels,
1799
+ showBackdrop: r
1800
+ }
1801
+ })) : {
1802
+ success: !1,
1803
+ errorMessage: a
1804
+ };
1805
+ }
1806
+ function Hr(e, t, n, r) {
1807
+ Z.info("handleMeasureDataLabelsTextColor input", {
1808
+ measureDataItemId: n,
1809
+ textColor: r
1810
+ });
1811
+ let { success: i, errorMessage: a } = J(F.object({
1812
+ measures: F.array(W),
1813
+ measureDataItemId: V,
1814
+ textColor: W.shape.dataLabels.unwrap().shape.textColor
1815
+ }), {
1816
+ measures: t,
1817
+ measureDataItemId: n,
1818
+ textColor: r
1819
+ }, Z, "handleMeasureDataLabelsTextColor");
1820
+ return i ? X(e, t, n, (e) => ({
1821
+ ...e,
1822
+ dataLabels: {
1823
+ ...e.dataLabels,
1824
+ textColor: r
1825
+ }
1826
+ })) : {
1827
+ success: !1,
1828
+ errorMessage: a
1829
+ };
1830
+ }
1831
+ function Ur(e, t, n, r) {
1832
+ Z.info("handleMeasureDataLabelsIsColored input", {
1833
+ measureDataItemId: n,
1834
+ isColored: r
1835
+ });
1836
+ let { success: i, errorMessage: a } = J(F.object({
1837
+ measures: F.array(W),
1838
+ measureDataItemId: V,
1839
+ isColored: W.shape.dataLabels.unwrap().shape.isColored
1840
+ }), {
1841
+ measures: t,
1842
+ measureDataItemId: n,
1843
+ isColored: r
1844
+ }, Z, "handleMeasureDataLabelsIsColored");
1845
+ return i ? X(e, t, n, (e) => ({
1846
+ ...e,
1847
+ dataLabels: {
1848
+ ...e.dataLabels,
1849
+ isColored: r
1850
+ }
1851
+ })) : {
1852
+ success: !1,
1853
+ errorMessage: a
1854
+ };
1855
+ }
1856
+ function Wr(e, t, n, r) {
1857
+ Z.info("handleMeasureDataLabelsDensity input", {
1858
+ measureDataItemId: n,
1859
+ density: r
1860
+ });
1861
+ let { success: i, errorMessage: a } = J(F.object({
1862
+ measures: F.array(W),
1863
+ measureDataItemId: V,
1864
+ density: W.shape.dataLabels.unwrap().shape.density
1865
+ }), {
1866
+ measures: t,
1867
+ measureDataItemId: n,
1868
+ density: r
1869
+ }, Z, "handleMeasureDataLabelsDensity");
1870
+ return i ? X(e, t, n, (e) => ({
1871
+ ...e,
1872
+ dataLabels: {
1873
+ ...e.dataLabels,
1874
+ density: r
1875
+ }
1876
+ })) : {
1877
+ success: !1,
1878
+ errorMessage: a
1879
+ };
1880
+ }
1881
+ function Gr(e, t, n, r) {
1882
+ Z.info("handleDataLabelsDisplayParts input", {
1883
+ measureDataItemId: n,
1884
+ displayParts: r
1885
+ });
1886
+ let i = [];
1887
+ switch (r) {
1888
+ case "Value":
1889
+ i = [f.Value];
1890
+ break;
1891
+ case "Ratio":
1892
+ i = [f.Ratio];
1893
+ break;
1894
+ case "Both":
1895
+ i = [f.Value, f.Ratio];
1896
+ break;
1897
+ }
1898
+ let { success: a, errorMessage: o } = J(F.object({
1899
+ measures: F.array(W),
1900
+ measureDataItemId: V,
1901
+ displayParts: W.shape.dataLabels.unwrap().shape.displayParts
1902
+ }), {
1903
+ measures: t,
1904
+ measureDataItemId: n,
1905
+ displayParts: i
1906
+ }, Z, "handleDataLabelsDisplayParts");
1907
+ return a ? X(e, t, n, (e) => ({
1908
+ ...e,
1909
+ dataLabels: {
1910
+ ...e.dataLabels,
1911
+ displayParts: i
1912
+ }
1913
+ })) : {
1914
+ success: !1,
1915
+ errorMessage: o
1916
+ };
1917
+ }
1918
+ function Kr(e, t, n, r) {
1919
+ Z.info("handleMeasureDataLabelsBarPlacementsChange input", {
1920
+ measure: n,
1921
+ placements: r
1922
+ });
1923
+ let { success: i, errorMessage: a } = J(F.object({ placements: W.shape.dataLabels.unwrap().shape.barLabelPlacements }), { placements: r }, Z, "handleMeasureDataLabelsBarPlacementsChange");
1924
+ return i ? X(e, t, P(n.dataItem), (e) => ({
1925
+ ...e,
1926
+ dataLabels: {
1927
+ ...e.dataLabels,
1928
+ barLabelPlacements: r
1929
+ }
1930
+ })) : {
1931
+ success: !1,
1932
+ errorMessage: a
1933
+ };
1934
+ }
1935
+ function qr(e, t, n, r) {
1936
+ Z.info("handleMeasureGraphColor input", {
1937
+ measureDataItemId: n,
1938
+ graphColor: r
1939
+ });
1940
+ let { success: i, errorMessage: a } = J(F.object({
1941
+ measures: F.array(W),
1942
+ measureDataItemId: V,
1943
+ graphColor: W.shape.graphColor
1944
+ }), {
1945
+ measures: t,
1946
+ measureDataItemId: n,
1947
+ graphColor: r
1948
+ }, Z, "handleMeasureGraphColor");
1949
+ return i ? X(e, t, n, (e) => ({
1950
+ ...e,
1951
+ graphColor: r
1952
+ })) : {
1953
+ success: !1,
1954
+ errorMessage: a
1955
+ };
1956
+ }
1957
+ function Jr(e, t, n, r, i) {
1958
+ Z.info("handleMeasuresParameterChange input", {
1959
+ measureDataItemId: n,
1960
+ variableName: r,
1961
+ value: i
1962
+ });
1963
+ let { success: a, errorMessage: o } = J(F.object({
1964
+ measures: F.array(W),
1965
+ measureDataItemId: V,
1966
+ variableName: F.string(),
1967
+ value: tn.optional()
1968
+ }), {
1969
+ measures: t,
1970
+ measureDataItemId: n,
1971
+ variableName: r,
1972
+ value: i
1973
+ }, Z, "handleMeasuresParameterChange");
1974
+ return a ? X(e, t, n, (e) => {
1975
+ let { [r]: t, ...n } = e.parameters || {};
1976
+ return i === void 0 ? {
1977
+ ...e,
1978
+ parameters: n
1979
+ } : {
1980
+ ...e,
1981
+ parameters: {
1982
+ ...n,
1983
+ [r]: i
1984
+ }
1985
+ };
1986
+ }) : {
1987
+ success: !1,
1988
+ errorMessage: o
1989
+ };
1990
+ }
1991
+ function Yr(e, t, n, r) {
1992
+ Z.info("handleMeasureGraphType input", {
1993
+ measure: n,
1994
+ graphType: r
1995
+ });
1996
+ let { success: i, errorMessage: a } = J(F.object({ graphType: W.shape.graphType }), { graphType: r }, Z, "handleMeasureGraphType");
1997
+ if (!i) return {
1998
+ success: !1,
1999
+ errorMessage: a
2000
+ };
2001
+ let o = Ne(t, P(n.dataItem), (e) => ({
2002
+ ...e,
2003
+ graphType: r
2004
+ }));
2005
+ if (r === je.Bar) {
2006
+ let e = o.find((e) => e.graphType === je.Bar), t = e?.secondaryAxis ?? !1, n = o.filter((n) => n.graphType === je.Bar && n !== e && n.secondaryAxis !== t).map((e) => P(e.dataItem));
2007
+ n?.length && (o = o.map((e) => n.includes(P(e.dataItem)) ? {
2008
+ ...e,
2009
+ secondaryAxis: t
2010
+ } : e));
2011
+ }
2012
+ return X(e, o, null, (e) => e);
2013
+ }
2014
+ var Xr = /* @__PURE__ */ e(Fe()), Q = Ie("dimension-handlers", "#aaa69d"), Zr = (e, t, n, r, i, a = [], o, s, c, l, u) => {
2015
+ Q.info("handleDimensionAdd input", {
2016
+ field: o,
2017
+ dimensions: t,
2018
+ measures: n,
2019
+ chartType: r,
2020
+ referencedData: i,
2021
+ sortingOrder: a,
2022
+ role: s,
2023
+ coloringSideEffectsFn: l
2024
+ });
2025
+ let { success: d, errorMessage: f } = J(F.object({
2026
+ dimensions: F.array(U),
2027
+ measures: F.array(W),
2028
+ chartType: F.string(),
2029
+ referencedData: yn,
2030
+ sortingOrder: G.shape.sortingOrder,
2031
+ field: jt,
2032
+ role: F.enum(oe).optional()
2033
+ }), {
2034
+ dimensions: t,
2035
+ measures: n,
2036
+ chartType: r,
2037
+ referencedData: i,
2038
+ sortingOrder: a,
2039
+ field: o,
2040
+ role: s
2041
+ }, Q, "handleDimensionAdd");
2042
+ if (!d) return {
2043
+ success: !1,
2044
+ errorMessage: f
2045
+ };
2046
+ let { newReferencedData: p, newDimension: m, newSorting: h } = ar(o, s, i, a ?? [], t, c);
2047
+ Q.debug("[handleDimensionAdd] adding new dimension", {
2048
+ newDimension: m,
2049
+ oldSorting: a,
2050
+ newSorting: h,
2051
+ newReferencedData: p
2052
+ });
2053
+ let g = [...structuredClone(t), m], { dimensions: _, measures: v } = A(g, n, r, {
2054
+ type: M.ENABLE,
2055
+ dataItemId: P(m.dataItem)
2056
+ }, { alternateSettings: u }), y = l?.({
2057
+ dimensions: _,
2058
+ measures: v
2059
+ });
2060
+ return Q.debug("[handleDimensionAdd] new dimension created", {
2061
+ newDimension: m,
2062
+ newDimensions: g,
2063
+ adjustedDimensions: _,
2064
+ adjustedMeasures: v,
2065
+ newColoring: y
2066
+ }), q(e, {
2067
+ referencedData: p,
2068
+ dimensions: _,
2069
+ measures: v,
2070
+ querySettings: { sortingOrder: h },
2071
+ ...y ? { coloring: y } : {}
2072
+ }), {
2073
+ success: !0,
2074
+ data: m
2075
+ };
2076
+ }, Qr = (e, t, n, r, i = [], a, o, s, c, u, d, f) => {
2077
+ Q.info("handleDimensionAddForEngineKey input", {
2078
+ dimensions: t,
2079
+ measures: n,
2080
+ chartType: r,
2081
+ referencedData: o,
2082
+ sortingOrder: i,
2083
+ engineKey: s,
2084
+ role: c,
2085
+ coloringSideEffectsFn: d,
2086
+ availableFields: a
2087
+ });
2088
+ let { success: p, errorMessage: m } = J(F.object({
2089
+ dimensions: F.array(U),
2090
+ measures: F.array(W),
2091
+ chartType: F.string(),
2092
+ referencedData: yn,
2093
+ sortingOrder: G.shape.sortingOrder,
2094
+ engineKey: F.string(),
2095
+ role: F.enum(oe).optional()
2096
+ }), {
2097
+ dimensions: t,
2098
+ measures: n,
2099
+ chartType: r,
2100
+ referencedData: o,
2101
+ sortingOrder: i,
2102
+ engineKey: s,
2103
+ role: c
2104
+ }, Q, "handleDimensionAddForEngineKey");
2105
+ if (!p) return {
2106
+ success: !1,
2107
+ errorMessage: m
2108
+ };
2109
+ let h = l(a, s);
2110
+ if (!h) return {
2111
+ success: !1,
2112
+ errorMessage: `Field with engine key ${s} not found`
2113
+ };
2114
+ let g = i ?? [], { newReferencedData: _, newDimension: v, newSorting: y } = ar(h, c, o, g, t, u);
2115
+ Q.debug("[handleDimensionAddForEngineKey] adding new dimension", {
2116
+ newDimension: v,
2117
+ oldSorting: g,
2118
+ newSorting: y,
2119
+ newReferencedData: _
2120
+ });
2121
+ let b = [...structuredClone(t), v], { dimensions: x, measures: S } = A(b, n, r, {
2122
+ type: M.ENABLE,
2123
+ dataItemId: P(v.dataItem)
2124
+ }, { alternateSettings: f }), C = d?.({
2125
+ dimensions: x,
2126
+ measures: S
2127
+ });
2128
+ return Q.debug("[handleDimensionAddForEngineKey] new dimension created", {
2129
+ newDimension: v,
2130
+ newDimensions: b,
2131
+ adjustedDimensions: x,
2132
+ adjustedMeasures: S,
2133
+ newColoring: C
2134
+ }), q(e, {
2135
+ referencedData: _,
2136
+ dimensions: x,
2137
+ measures: S,
2138
+ querySettings: { sortingOrder: y },
2139
+ ...C ? { coloring: C } : {}
2140
+ }), {
2141
+ success: !0,
2142
+ data: v
2143
+ };
2144
+ }, $r = (e, t, n, r, i, a = [], o, s, c, l) => {
2145
+ Q.info("handleDimensionRemove input", {
2146
+ dimensions: t,
2147
+ dataItemId: i,
2148
+ sortingOrder: a,
2149
+ coloringSideEffectsFn: s
2150
+ });
2151
+ let { success: u, errorMessage: d } = J(F.object({
2152
+ dimensions: F.array(U),
2153
+ measures: F.array(W),
2154
+ chartType: F.string(),
2155
+ dataItemId: Array.isArray(i) ? F.array(V) : V,
2156
+ sortingOrder: G.shape.sortingOrder
2157
+ }), {
2158
+ dimensions: t,
2159
+ measures: n,
2160
+ chartType: r,
2161
+ dataItemId: i,
2162
+ sortingOrder: a
2163
+ }, Q, "handleDimensionRemove");
2164
+ if (!u) return {
2165
+ success: !1,
2166
+ errorMessage: d
2167
+ };
2168
+ let f = Array.isArray(i) ? i : [i], p = structuredClone(t).filter((e) => !f.includes(P(e.dataItem))), m = structuredClone(a).filter((e) => e.dataItem === null || !f.includes(P(e.dataItem))), h = structuredClone(c)?.filter((e) => !f.includes(P(e.dataItem))), g = o?.dimensionIdx ?? null;
2169
+ if (g !== null) {
2170
+ let e = t[g];
2171
+ if (!(0, Xr.default)(e, p[g])) {
2172
+ let t = p.findIndex((t) => (0, Xr.default)(t, e));
2173
+ g = t === -1 ? null : t;
2174
+ }
2175
+ }
2176
+ let { dimensions: _, measures: v } = A(p, n, r, { type: M.FIX_STATE }, { alternateSettings: l }), y = s?.({
2177
+ dimensions: _,
2178
+ measures: v
2179
+ });
2180
+ return Q.debug("[handleDimensionRemove] removing dimension(s)", {
2181
+ newDimensions: p,
2182
+ adjustedDimensions: _,
2183
+ adjustedMeasures: v,
2184
+ newSorting: m,
2185
+ newColoring: y
2186
+ }), q(e, {
2187
+ dimensions: _,
2188
+ measures: v,
2189
+ querySettings: {
2190
+ sortingOrder: m,
2191
+ topN: {
2192
+ ...o,
2193
+ dimensionIdx: g
2194
+ }
2195
+ },
2196
+ ...y ? { coloring: y } : {},
2197
+ grid: h
2198
+ }), { success: !0 };
2199
+ }, ei = (e, t, n, r, i) => {
2200
+ Q.info("handleDimensionChangeForDataItemId input", {
2201
+ dimensions: t,
2202
+ dataItemId: n,
2203
+ changes: r,
2204
+ coloringSideEffectsFn: i
2205
+ });
2206
+ let { success: a, errorMessage: o } = J(F.object({
2207
+ dimensions: F.array(U),
2208
+ dataItemId: V,
2209
+ changes: F.object({
2210
+ customLabel: F.object({
2211
+ enabled: F.boolean(),
2212
+ value: F.string().optional()
2213
+ }).optional(),
2214
+ showNullValues: F.boolean().optional()
2215
+ })
2216
+ }), {
2217
+ dimensions: t,
2218
+ dataItemId: n,
2219
+ changes: r
2220
+ }, Q, "handleDimensionChangeForDataItemId");
2221
+ if (!a) return {
2222
+ success: !1,
2223
+ errorMessage: o
2224
+ };
2225
+ let s = structuredClone(t).map((e) => {
2226
+ if (P(e.dataItem) === n) {
2227
+ let t = structuredClone(e);
2228
+ return r.customLabel !== void 0 && r.customLabel !== null && (t.customLabel = {
2229
+ enabled: r.customLabel.enabled,
2230
+ value: r.customLabel.value
2231
+ }), r.showNullValues !== void 0 && r.showNullValues !== null && (t.showNullValues = r.showNullValues), t;
2232
+ }
2233
+ return e;
2234
+ }), c = i?.({ dimensions: s });
2235
+ return Q.debug("[handleDimensionChangeForDataItemId] updating dimension", {
2236
+ newDimensions: s,
2237
+ newColoring: c
2238
+ }), q(e, {
2239
+ dimensions: s,
2240
+ ...c ? { coloring: c } : {}
2241
+ }), { success: !0 };
2242
+ }, ti = (e, t, n, r, i, a, o, s = !1, c) => {
2243
+ Q.info("handleDimensionToggle input", {
2244
+ dimensions: t,
2245
+ dataItemId: i,
2246
+ enabled: a,
2247
+ coloringSideEffectsFn: o,
2248
+ fixStateOnDisable: s
2249
+ });
2250
+ let { success: l, errorMessage: u } = J(F.object({
2251
+ dimensions: F.array(U),
2252
+ measures: F.array(W),
2253
+ chartType: F.string(),
2254
+ dataItemId: V,
2255
+ enabled: F.boolean()
2256
+ }), {
2257
+ dimensions: t,
2258
+ measures: n,
2259
+ chartType: r,
2260
+ dataItemId: i,
2261
+ enabled: a
2262
+ }, Q, "handleDimensionToggle");
2263
+ if (!l) return {
2264
+ success: !1,
2265
+ errorMessage: u
2266
+ };
2267
+ if (i === null) return {
2268
+ success: !1,
2269
+ errorMessage: "Data item ID is required"
2270
+ };
2271
+ let d = structuredClone(t), { dimensions: f, measures: p } = A(d, n, r, {
2272
+ type: a ? M.ENABLE : M.DISABLE,
2273
+ dataItemId: i
2274
+ }, {
2275
+ fixStateOnDisable: s,
2276
+ alternateSettings: c
2277
+ }), m = o?.({
2278
+ dimensions: f,
2279
+ measures: p
2280
+ });
2281
+ return Q.debug("[handleDimensionToggle] updating dimension", {
2282
+ newDimensions: d,
2283
+ adjustedDimensions: f,
2284
+ adjustedMeasures: p,
2285
+ newColoring: m
2286
+ }), q(e, {
2287
+ dimensions: f,
2288
+ measures: p,
2289
+ ...m ? { coloring: m } : {}
2290
+ }), { success: !0 };
2291
+ }, ni = (e, t, n, r, i, a, o, s) => {
2292
+ Q.info("handleToggleDimensionsByNames input", {
2293
+ dimensions: t,
2294
+ name: i,
2295
+ enabled: a,
2296
+ coloringSideEffectsFn: o
2297
+ });
2298
+ let c = t.filter((e) => e.label === i);
2299
+ if (c.length === 0) return Q.info("[handleToggleDimensionsByNames] No matching dimensions found, nothing to toggle", { name: i }), { success: !0 };
2300
+ let l = [];
2301
+ c.forEach((e) => {
2302
+ let i = P(e.dataItem), c = a === void 0 ? !e.enabled : a;
2303
+ l.push((e, a) => ti(e, a.dimensions ?? t, a.measures ?? n, r, i, c, o, !1, s));
2304
+ });
2305
+ let u = Y(l);
2306
+ return u.success ? (Q.debug("[handleToggleDimensionsByNames] updated dimensions", { newDimensions: u.vSpecPartial.dimensions }), q(e, u.vSpecPartial), { success: !0 }) : {
2307
+ success: !1,
2308
+ errorMessage: u?.errorMessage
2309
+ };
2310
+ }, ri = (e, t, n, r, i, a, o, s) => {
2311
+ Q.info("handleDimensionDuplicate input", {
2312
+ dimensions: t,
2313
+ dataItemId: i,
2314
+ coloringSideEffectsFn: a,
2315
+ sortingOrder: s
2316
+ });
2317
+ let { success: c, errorMessage: l } = J(F.object({
2318
+ dimensions: F.array(U),
2319
+ measures: F.array(W),
2320
+ chartType: F.string(),
2321
+ dataItemId: Array.isArray(i) ? F.array(V) : V,
2322
+ sortingOrder: G.shape.sortingOrder.optional()
2323
+ }), {
2324
+ dimensions: t,
2325
+ measures: n,
2326
+ chartType: r,
2327
+ dataItemId: i,
2328
+ sortingOrder: s
2329
+ }, Q, "handleDimensionDuplicate");
2330
+ if (!c) return {
2331
+ success: !1,
2332
+ errorMessage: l
2333
+ };
2334
+ let u = Array.isArray(i) ? i : [i], d = structuredClone(t), f = u.map((e) => d.find((t) => P(t.dataItem) === e)).filter((e) => e !== void 0).map((e) => {
2335
+ let t = structuredClone(e);
2336
+ return t.dataItem.uniqueSignature = E(), t;
2337
+ }), p = [...d, ...f], m = s ? [...s, ...f.map((e, t) => $n(e, s.length === 0 && t === 0))] : void 0;
2338
+ Q.debug("[handleDimensionDuplicate] duplicating dimension(s)", {
2339
+ newDimensions: p,
2340
+ newSorting: m
2341
+ });
2342
+ let h = structuredClone(p), g = structuredClone(n);
2343
+ for (let e of f) {
2344
+ let { dimensions: t, measures: i } = A(h, n, r, {
2345
+ type: M.ENABLE,
2346
+ dataItemId: P(e.dataItem)
2347
+ }, { alternateSettings: o });
2348
+ h = t, g = i;
2349
+ }
2350
+ let _ = a?.({
2351
+ dimensions: h,
2352
+ measures: g
2353
+ });
2354
+ return Q.debug("[handleDimensionDuplicate] adjusted dimensions", {
2355
+ newDimensions: p,
2356
+ newDimensionsAfterAdjustment: h,
2357
+ newColoring: _
2358
+ }), q(e, {
2359
+ dimensions: h,
2360
+ measures: g,
2361
+ ...m ? { querySettings: { sortingOrder: m } } : {},
2362
+ ..._ ? { coloring: _ } : {}
2363
+ }), { success: !0 };
2364
+ }, ii = (e, n, r, i = [], a, o, s) => {
2365
+ Q.info("handleDimensionFieldChange input", {
2366
+ dimensions: n,
2367
+ dataItemId: r,
2368
+ newField: o,
2369
+ sortingOrder: i,
2370
+ coloringSideEffectsFn: s
2371
+ });
2372
+ let { success: c, errorMessage: l } = J(F.object({
2373
+ dimensions: F.array(U),
2374
+ dataItemId: V,
2375
+ newField: jt
2376
+ }), {
2377
+ dimensions: n,
2378
+ dataItemId: r,
2379
+ newField: o
2380
+ }, Q, "handleDimensionFieldChange");
2381
+ if (!c) return {
2382
+ success: !1,
2383
+ errorMessage: l
2384
+ };
2385
+ let u = n.findIndex((e) => P(e.dataItem) === r), d = i.findIndex((e) => P(e.dataItem) === r), { key: f, newReferencedData: p } = Se(a, o), m = ve(structuredClone(n).map((e) => P(e.dataItem) === r ? {
2386
+ ...e,
2387
+ label: Pe(o),
2388
+ description: t(o),
2389
+ dataItem: Oe(o, f)
2390
+ } : e)), h = s?.({ dimensions: m }), g = m[u], _ = [...i];
2391
+ return d > -1 && (_[d] = $n(g, i[d]?.enabled)), Q.debug("[handleDimensionFieldChange] updating dimension", {
2392
+ newReferencedData: p,
2393
+ newDimensions: m,
2394
+ newColoring: h
2395
+ }), q(e, {
2396
+ referencedData: p,
2397
+ dimensions: m,
2398
+ ...h ? { coloring: h } : {},
2399
+ querySettings: { sortingOrder: _ }
2400
+ }), {
2401
+ success: !0,
2402
+ data: g
2403
+ };
2404
+ }, ai = Ie("histogram-data-handlers", "#76ff03");
2405
+ function oi(e, t, n, r, i, o, s, c, l) {
2406
+ ai.info("handleHistogramDimensionAdd input", { field: s });
2407
+ let { success: u, errorMessage: d } = J(F.object({
2408
+ dimensions: F.array(U),
2409
+ measures: F.array(W),
2410
+ sortingOrder: G.shape.sortingOrder,
2411
+ field: jt
2412
+ }), {
2413
+ dimensions: t,
2414
+ measures: n,
2415
+ sortingOrder: o,
2416
+ field: s
2417
+ }, ai, "handleHistogramDimensionAdd");
2418
+ if (!u) return {
2419
+ success: !1,
2420
+ errorMessage: d
2421
+ };
2422
+ let f = s;
2423
+ if (N(s)) {
2424
+ let { fieldKey: e, schema: t = "", view: n, name: r, resultType: i } = s.dimension ?? {};
2425
+ f = {
2426
+ key: e,
2427
+ schema: t,
2428
+ view: n,
2429
+ name: r,
2430
+ dataType: i === void 0 ? void 0 : a[i],
2431
+ aggregators: []
2432
+ };
2433
+ }
2434
+ let p = [(e, a) => Zr(e, t, n, r, i, a.querySettings?.sortingOrder ?? o ?? [], s, void 0, nr(s), l)], h = Y(p);
2435
+ if (!h.success) return {
2436
+ success: !1,
2437
+ errorMessage: h.errorMessage
2438
+ };
2439
+ let g = h.results[0], _ = g?.success ? g.data : void 0;
2440
+ p = [(e) => wr(e, [], h.vSpecPartial?.dimensions, r, h.vSpecPartial?.querySettings?.sortingOrder ?? o ?? [], h.vSpecPartial?.referencedData ?? i, m(f), void 0, c, "COUNT", void 0, l)];
2441
+ let v = Y(p);
2442
+ return v.success ? (q(e, v.vSpecPartial), {
2443
+ success: !0,
2444
+ data: _
2445
+ }) : {
2446
+ success: !1,
2447
+ errorMessage: v.errorMessage
2448
+ };
2449
+ }
2450
+ function si(e, t, n, r, i, a, o, c, l, u, d, f) {
2451
+ ai.info("handleHistogramDimensionRemove input", { dataItemId: i });
2452
+ let { success: p, errorMessage: h } = J(F.object({ dataItemId: Array.isArray(i) ? F.array(V) : V }), { dataItemId: i }, ai, "handleHistogramDimensionRemove");
2453
+ if (!p) return {
2454
+ success: !1,
2455
+ errorMessage: h
2456
+ };
2457
+ let g = [];
2458
+ g.push((e, a) => $r(e, t, n, r, i, a.querySettings?.sortingOrder ?? l ?? [], u, d, a.grid ?? f));
2459
+ let _ = Y(g), v = _.vSpecPartial.dimensions, y = _.vSpecPartial.measures;
2460
+ if (!v || !y) return {
2461
+ success: !1,
2462
+ errorMessage: "Removing the dimension did not produce updated dimensions and measures"
2463
+ };
2464
+ if (g = [], v.length > 0) {
2465
+ let e = v.find((e) => T(e));
2466
+ if (e) {
2467
+ let t = s(a, o, e.dataItem.internalKey);
2468
+ if (!t) return {
2469
+ success: !1,
2470
+ errorMessage: `No data field found for internal key ${e.dataItem.internalKey}`
2471
+ };
2472
+ g.push((e) => wr(e, [], v, r, _.vSpecPartial?.querySettings?.sortingOrder ?? l ?? [], o, m(t), void 0, c, "COUNT", void 0, d));
2473
+ } else {
2474
+ let e = y.map((e) => P(e.dataItem));
2475
+ g.push((t) => Er(t, y, v, r, e, _.vSpecPartial?.querySettings?.sortingOrder ?? l ?? [], void 0, d, f));
2476
+ }
2477
+ } else {
2478
+ let e = y.map((e) => P(e.dataItem));
2479
+ g.push((t) => Er(t, y, v, r, e, _.vSpecPartial?.querySettings?.sortingOrder ?? l ?? [], void 0, d, f));
2480
+ }
2481
+ let b = Y(g);
2482
+ return b.success ? (q(e, b.vSpecPartial), { success: !0 }) : {
2483
+ success: !1,
2484
+ errorMessage: b.errorMessage
2485
+ };
2486
+ }
2487
+ var ci = (e, t, n, r, i, a, o, c, l, u) => {
2488
+ ai.info("handleHistogramDimensionToggle input", {
2489
+ dataItemId: i,
2490
+ enabled: a
2491
+ });
2492
+ let { success: d, errorMessage: f } = J(F.object({
2493
+ dimensions: F.array(U),
2494
+ measures: F.array(W),
2495
+ chartType: F.string(),
2496
+ dataItemId: V,
2497
+ enabled: F.boolean()
2498
+ }), {
2499
+ dimensions: t,
2500
+ measures: n,
2501
+ chartType: r,
2502
+ dataItemId: i,
2503
+ enabled: a
2504
+ }, ai, "handleHistogramDimensionToggle");
2505
+ if (!d) return {
2506
+ success: !1,
2507
+ errorMessage: f
2508
+ };
2509
+ let p = [];
2510
+ p.push((e) => ti(e, t, n, r, i, a, u));
2511
+ let h = Y(p);
2512
+ if (!h.success) return {
2513
+ success: !1,
2514
+ errorMessage: h.errorMessage
2515
+ };
2516
+ let g = h.vSpecPartial.dimensions, _ = h.vSpecPartial.measures;
2517
+ if (!g || !_) return {
2518
+ success: !1,
2519
+ errorMessage: "Toggling the dimension did not produce updated dimensions and measures"
2520
+ };
2521
+ p = [];
2522
+ let v = g.find((e) => T(e));
2523
+ if (v) {
2524
+ let e = s(o, c, v.dataItem.internalKey);
2525
+ if (!e) return {
2526
+ success: !1,
2527
+ errorMessage: `No data field found for internal key ${v.dataItem.internalKey}`
2528
+ };
2529
+ p.push((t) => wr(t, [], g, r, h.vSpecPartial?.querySettings?.sortingOrder ?? [], c, m(e), void 0, l, "COUNT", void 0, u));
2530
+ } else {
2531
+ let e = _.map((e) => P(e.dataItem));
2532
+ p.push((i) => Er(i, n, t, r, e, h.vSpecPartial?.querySettings?.sortingOrder ?? [], void 0, u));
2533
+ }
2534
+ let y = Y(p);
2535
+ return y.success ? (q(e, y.vSpecPartial), { success: !0 }) : {
2536
+ success: !1,
2537
+ errorMessage: y.errorMessage
2538
+ };
2539
+ }, $ = Ie("line-chart-data-handlers", "#76ff03"), li = (e, t, n, r, i, a, o, s, c, l, u, d) => {
2540
+ $.info("handleLineChartDimensionAddForEngineKey input", { engineKey: s });
2541
+ let f = Y([(e) => Qr(e, t, n, r, i, a, o, s, c, l, u, d)]);
2542
+ if (!f.success) return {
2543
+ success: !1,
2544
+ errorMessage: f.errorMessage
2545
+ };
2546
+ let p = f.vSpecPartial?.dimensions ?? t;
2547
+ if (!w(p.filter(T))) {
2548
+ let e = k(f.vSpecPartial?.measures ?? n);
2549
+ f.vSpecPartial = {
2550
+ ...f.vSpecPartial,
2551
+ measures: e
2552
+ };
2553
+ }
2554
+ q(e, f.vSpecPartial);
2555
+ let m = new Set(t.map((e) => P(e.dataItem))), h = p.find((e) => !m.has(P(e.dataItem)));
2556
+ return h ? {
2557
+ success: !0,
2558
+ data: h
2559
+ } : {
2560
+ success: !1,
2561
+ errorMessage: "Line dimension add did not create a dimension."
2562
+ };
2563
+ }, ui = (e, t, n, r, i, a, o, s, c, l) => {
2564
+ $.info("handleLineChartDimensionRemove input", { dataItemId: i });
2565
+ let u = Y([(e) => $r(e, t, n, r, i, a, o, s, c, l)]);
2566
+ if (!u.success) return {
2567
+ success: !1,
2568
+ errorMessage: u.errorMessage
2569
+ };
2570
+ if (!w((u.vSpecPartial?.dimensions ?? t).filter(T))) {
2571
+ let e = k(u.vSpecPartial?.measures ?? n);
2572
+ u.vSpecPartial = {
2573
+ ...u.vSpecPartial,
2574
+ measures: e
2575
+ };
2576
+ }
2577
+ return q(e, u.vSpecPartial), { success: !0 };
2578
+ }, di = (e, t, n, r, i, a, o, s = !1, c) => {
2579
+ $.info("handleLineChartDimensionToggle input", {
2580
+ dataItemId: i,
2581
+ enabled: a
2582
+ });
2583
+ let l = Y([(e) => ti(e, t, n, r, i, a, o, s, c)]);
2584
+ if (!l.success) return {
2585
+ success: !1,
2586
+ errorMessage: l.errorMessage
2587
+ };
2588
+ if (!w((l.vSpecPartial?.dimensions ?? t).filter(T))) {
2589
+ let e = k(l.vSpecPartial?.measures ?? n);
2590
+ l.vSpecPartial = {
2591
+ ...l.vSpecPartial,
2592
+ measures: e
2593
+ };
2594
+ }
2595
+ return q(e, l.vSpecPartial), { success: !0 };
2596
+ }, fi = (e, t, n, r, i, a, o, s) => {
2597
+ $.info("handleLineChartDimensionDuplicate input", { dataItemId: i });
2598
+ let c = Y([(e) => ri(e, t, n, r, i, a, o, s)]);
2599
+ if (!c.success) return {
2600
+ success: !1,
2601
+ errorMessage: c.errorMessage
2602
+ };
2603
+ if (!w((c.vSpecPartial?.dimensions ?? t).filter(T))) {
2604
+ let e = k(c.vSpecPartial?.measures ?? n);
2605
+ c.vSpecPartial = {
2606
+ ...c.vSpecPartial,
2607
+ measures: e
2608
+ };
2609
+ }
2610
+ return q(e, c.vSpecPartial), { success: !0 };
2611
+ }, pi = (e, t, n, r, i, a, o, s, c, l, u, d, f, p, m) => {
2612
+ $.info("handleLineChartMeasureAddForEngineKey input", { engineKey: s });
2613
+ let h = Y([(e) => Tr(e, t, n, r, i, a, o, s, c, l, u, d, f, p, m, ae)]);
2614
+ if (!h.success) return {
2615
+ success: !1,
2616
+ errorMessage: h.errorMessage
2617
+ };
2618
+ if (!w((h.vSpecPartial?.dimensions ?? n).filter(T))) {
2619
+ let e = k(h.vSpecPartial?.measures ?? t);
2620
+ h.vSpecPartial = {
2621
+ ...h.vSpecPartial,
2622
+ measures: e
2623
+ };
2624
+ }
2625
+ q(e, h.vSpecPartial);
2626
+ let g = h.vSpecPartial?.measures ?? t, _ = new Set(t.map((e) => P(e.dataItem))), v = g.find((e) => !_.has(P(e.dataItem)));
2627
+ return v ? {
2628
+ success: !0,
2629
+ data: v
2630
+ } : {
2631
+ success: !1,
2632
+ errorMessage: "Line measure add did not create a measure."
2633
+ };
2634
+ }, mi = (e, t, n, r, i, a, o, s, c, l) => {
2635
+ $.info("handleLineChartMeasureRemove input", { dataItemId: i });
2636
+ let u = Y([(e) => Er(e, t, n, r, i, a, o, s, c, l)]);
2637
+ if (!u.success) return {
2638
+ success: !1,
2639
+ errorMessage: u.errorMessage
2640
+ };
2641
+ if (!w((u.vSpecPartial?.dimensions ?? n).filter(T))) {
2642
+ let e = k(u.vSpecPartial?.measures ?? t);
2643
+ u.vSpecPartial = {
2644
+ ...u.vSpecPartial,
2645
+ measures: e
2646
+ };
2647
+ }
2648
+ return q(e, u.vSpecPartial), { success: !0 };
2649
+ }, hi = (e, t, n, r, i, a, o, s, c = !1, l) => {
2650
+ $.info("handleLineChartMeasureToggle input", {
2651
+ dataItemId: a,
2652
+ enabled: o
2653
+ });
2654
+ let u = Y([(e) => Or(e, t, n, r, i, a, o, s, c, l)]);
2655
+ if (!u.success) return {
2656
+ success: !1,
2657
+ errorMessage: u.errorMessage
2658
+ };
2659
+ if (!w((u.vSpecPartial?.dimensions ?? n).filter(T))) {
2660
+ let e = k(u.vSpecPartial?.measures ?? t);
2661
+ u.vSpecPartial = {
2662
+ ...u.vSpecPartial,
2663
+ measures: e
2664
+ };
2665
+ }
2666
+ return q(e, u.vSpecPartial), { success: !0 };
2667
+ }, gi = (e, t, n, r, i, a, o, s) => {
2668
+ $.info("handleLineChartMeasureDuplicate input", { dataItemId: i });
2669
+ let c = Y([(e) => Ar(e, t, n, r, i, a, o, s)]);
2670
+ if (!c.success) return {
2671
+ success: !1,
2672
+ errorMessage: c.errorMessage
2673
+ };
2674
+ if (!w((c.vSpecPartial?.dimensions ?? n).filter(T))) {
2675
+ let e = k(c.vSpecPartial?.measures ?? t);
2676
+ c.vSpecPartial = {
2677
+ ...c.vSpecPartial,
2678
+ measures: e
2679
+ };
2680
+ }
2681
+ return q(e, c.vSpecPartial), { success: !0 };
2682
+ }, _i = class extends Ke {};
2683
+ export { _r as $, en as $t, Vr as A, dt as An, Bn as At, Pr as B, Xe as Bn, hn as Bt, Mr as C, vt as Cn, In as Ct, Wr as D, ht as Dn, zn as Dt, Kr as E, gt as En, Rn as Et, Lr as F, R as Fn, Cn as Ft, Jr as G, cn as Gt, zr as H, Je as Hn, _n as Ht, Ar as I, L as In, Sn as It, X as J, sn as Jt, kr as K, ln as Kt, jr as L, tt as Ln, yn as Lt, Fr as M, z as Mn, Hn as Mt, Ir as N, at as Nn, Tn as Nt, Gr as O, B as On, Un as Ot, Rr as P, it as Pn, wn as Pt, vr as Q, $t as Qt, qr as R, $e as Rn, vn as Rt, Tr as S, _t as Sn, Fn as St, Br as T, yt as Tn, Ln as Tt, Nr as U, qe as Un, mn as Ut, Er as V, Ye as Vn, pn as Vt, Or as W, gn as Wt, xr as X, W as Xt, yr as Y, tn as Yt, Sr as Z, on as Zt, ii as _, V as _n, Mn as _t, di as a, Kt as an, sr as at, ni as b, xt as bn, Nn as bt, mi as c, Ht as cn, $n as ct, si as d, It as dn, q as dt, Zt as en, Y as et, ci as f, Pt as fn, qn as ft, ri as g, wt as gn, kn as gt, ei as h, jt as hn, On as ht, ui as i, Wt as in, lr as it, Hr as j, pt as jn, Vn as jt, Ur as k, ft as kn, Wn as kt, hi as l, Vt as ln, er as lt, Qr as m, Mt as mn, Gn as mt, li as n, Jt as nn, ur as nt, pi as o, Gt as on, ar as ot, Zr as p, Nt as pn, Kn as pt, Cr as q, nn as qt, fi as r, qt as rn, fr as rt, gi as s, Ut as sn, nr as st, _i as t, Qt as tn, mr as tt, oi as u, U as un, J as ut, $r as v, Dt as vn, An as vt, Dr as w, mt as wn, Dn as wt, wr as x, bt as xn, Pn as xt, ti as y, Tt as yn, jn as yt, Yr as z, Ze as zn, G as zt };