@astrato-io/visualizations 0.0.0-stage → 0.6.5

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 (139) 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 +8477 -0
  5. package/VISUALIZATION_DEFINITIONS.md +2378 -0
  6. package/chunks/ClickAwayListener-BbeNMAvj.js +52 -0
  7. package/chunks/LinearProgress-B1FeWaen.js +253 -0
  8. package/chunks/accessors-DemrDevR.js +128 -0
  9. package/chunks/app-filter-bar.compiler-BGJ7HAbr.js +64 -0
  10. package/chunks/bar.compiler-CT0ZbQKc.js +374 -0
  11. package/chunks/builder-B6dWSIdD.js +12289 -0
  12. package/chunks/color-settings-ZIvgNTq1.js +10 -0
  13. package/chunks/coloring-B1XAfg6b.js +664 -0
  14. package/chunks/debounce-fn-CUixuz45.js +7 -0
  15. package/chunks/definitions-D3OVqmXl.js +2102 -0
  16. package/chunks/escobar-eDjtGpkC.js +34606 -0
  17. package/chunks/events-WZut5Ow6.js +4 -0
  18. package/chunks/extend-BKUkc4_i.js +37 -0
  19. package/chunks/filter.compiler-DBsyRBJt.js +70 -0
  20. package/chunks/filtering-tqjAyJH5.js +1072 -0
  21. package/chunks/grouping-type-On4s9Thj.js +3 -0
  22. package/chunks/handlers-VTBfIZYZ.js +13072 -0
  23. package/chunks/isEqual-BDxAhUo8.js +7514 -0
  24. package/chunks/line.compiler-CzdM5Ld0.js +198 -0
  25. package/chunks/metadata-BGElBy5Z.js +28 -0
  26. package/chunks/number.compiler-G-R7y16P.js +53 -0
  27. package/chunks/operations-CTNUX6Sy.js +26249 -0
  28. package/chunks/range-CiwTbMig.js +22 -0
  29. package/chunks/registry-CsQQzukD.js +920 -0
  30. package/chunks/requirements-DYjZCFyf.js +6 -0
  31. package/chunks/rolldown-runtime-DleVn1XH.js +28 -0
  32. package/chunks/set-coloring-datafield-B3uIS1Pe.js +8 -0
  33. package/chunks/shared-CBvcC5YV.js +1218 -0
  34. package/chunks/src-BOS6SqkZ.js +67 -0
  35. package/chunks/src-D9XogOrc.js +422 -0
  36. package/chunks/standalone-0M4HlmDW2.js +3944 -0
  37. package/chunks/standalone-0ashe9w1.js +411 -0
  38. package/chunks/standalone-B7jax8wa.js +339 -0
  39. package/chunks/standalone-BK0VYU-l.js +463 -0
  40. package/chunks/standalone-BMIbT1b2.js +4619 -0
  41. package/chunks/standalone-BZV5vOwA.js +6 -0
  42. package/chunks/standalone-BhDrWj4p.js +1980 -0
  43. package/chunks/standalone-BtSHCp2U2.js +673 -0
  44. package/chunks/standalone-BvaKdky9.js +344 -0
  45. package/chunks/standalone-BwtM31-f.js +2 -0
  46. package/chunks/standalone-C3gg736V.js +1129 -0
  47. package/chunks/standalone-CC1VUjO32.js +299 -0
  48. package/chunks/standalone-C_rYnZ0N.js +741 -0
  49. package/chunks/standalone-CoLrAxRV.js +13198 -0
  50. package/chunks/standalone-DC-aUgXC.js +3855 -0
  51. package/chunks/standalone-DCtRoTWg.js +675 -0
  52. package/chunks/standalone-DUDFTBqL.js +833 -0
  53. package/chunks/standalone-DhZkX9Td.js +2 -0
  54. package/chunks/standalone-DtLElfuM.js +512 -0
  55. package/chunks/standalone-G9Q4Uczu.js +726 -0
  56. package/chunks/standalone-JuLF-OoH.js +1762 -0
  57. package/chunks/standalone-_DeX21JJ.js +383 -0
  58. package/chunks/standalone-gFhKZh8m.js +179 -0
  59. package/chunks/standalone-tDNy-SFH.js +281 -0
  60. package/chunks/standalone-v1oxfU20.js +68 -0
  61. package/chunks/standalone-vzBY6q0I2.js +140 -0
  62. package/chunks/stroke-dash-UgMEcCS4.js +6 -0
  63. package/chunks/table.compiler-tb914oj3.js +222 -0
  64. package/chunks/typeof-CJDtcySz.js +13 -0
  65. package/chunks/ui-DQWtv2iM.js +63551 -0
  66. package/chunks/url-utils-B17gj_mr.js +5501 -0
  67. package/chunks/useFieldName-BvdcoJRl.js +7 -0
  68. package/chunks/utils-Bg7K-t6K.js +32379 -0
  69. package/chunks/view-Bn83C8d9.js +12466 -0
  70. package/definitions.js +3 -0
  71. package/docs/operations/astrato-app-filter-bar.md +161 -0
  72. package/docs/operations/bar.md +6968 -0
  73. package/docs/operations/combo.md +5804 -0
  74. package/docs/operations/date-picker.md +644 -0
  75. package/docs/operations/distribution-gauge.md +3082 -0
  76. package/docs/operations/dot.md +5570 -0
  77. package/docs/operations/filter.md +1483 -0
  78. package/docs/operations/gauge.md +3316 -0
  79. package/docs/operations/heatMap.md +5944 -0
  80. package/docs/operations/histogram.md +1856 -0
  81. package/docs/operations/iframe.md +56 -0
  82. package/docs/operations/image.md +177 -0
  83. package/docs/operations/index.md +46 -0
  84. package/docs/operations/line.md +6391 -0
  85. package/docs/operations/number.md +3903 -0
  86. package/docs/operations/pie.md +5956 -0
  87. package/docs/operations/radar.md +4566 -0
  88. package/docs/operations/sankey.md +3088 -0
  89. package/docs/operations/scatter.md +5969 -0
  90. package/docs/operations/shape.md +315 -0
  91. package/docs/operations/simpleTextObject.md +699 -0
  92. package/docs/operations/slider.md +220 -0
  93. package/docs/operations/table.md +8800 -0
  94. package/docs/operations/tree.md +2867 -0
  95. package/docs/operations/treemap.md +3527 -0
  96. package/docs/operations/waterfall.md +2928 -0
  97. package/docs/operations/word-cloud.md +3000 -0
  98. package/getters.js +18 -0
  99. package/index.js +1183 -0
  100. package/metadata.js +20 -0
  101. package/operations.js +64 -0
  102. package/package.json +185 -4
  103. package/src/definitions/index.d.ts +2 -0
  104. package/src/definitions/model/definitions/available-fields.d.ts +35 -0
  105. package/src/definitions/model/definitions/compilers/compile.d.ts +7 -0
  106. package/src/definitions/model/definitions/data-item-resolution.d.ts +19 -0
  107. package/src/definitions/model/definitions/descriptors/descriptor-metadata.d.ts +1341 -0
  108. package/src/definitions/model/definitions/descriptors/json-schema.d.ts +2 -0
  109. package/src/definitions/model/definitions/diagnostics.d.ts +5 -0
  110. package/src/definitions/model/definitions/field-suggestions.d.ts +2 -0
  111. package/src/definitions/model/definitions/index.d.ts +23 -0
  112. package/src/definitions/model/definitions/registry/compile.d.ts +2 -0
  113. package/src/definitions/model/definitions/registry/descriptor-registry.d.ts +3 -0
  114. package/src/definitions/model/definitions/schema-registry.d.ts +660 -0
  115. package/src/definitions/model/definitions/schemas/app-filter-bar.schema.d.ts +22 -0
  116. package/src/definitions/model/definitions/schemas/bar.schema.d.ts +73 -0
  117. package/src/definitions/model/definitions/schemas/broad-chart.schema.d.ts +68 -0
  118. package/src/definitions/model/definitions/schemas/common.schema.d.ts +303 -0
  119. package/src/definitions/model/definitions/schemas/filter.schema.d.ts +22 -0
  120. package/src/definitions/model/definitions/schemas/index.d.ts +9 -0
  121. package/src/definitions/model/definitions/schemas/line.schema.d.ts +72 -0
  122. package/src/definitions/model/definitions/schemas/number.schema.d.ts +21 -0
  123. package/src/definitions/model/definitions/schemas/object.schema.d.ts +215 -0
  124. package/src/definitions/model/definitions/schemas/table.schema.d.ts +458 -0
  125. package/src/definitions/model/definitions/types/compilation.types.d.ts +36 -0
  126. package/src/definitions/model/definitions/types/definition.types.d.ts +2 -0
  127. package/src/definitions/model/definitions/types/descriptor.types.d.ts +39 -0
  128. package/src/definitions/model/definitions/types/index.d.ts +3 -0
  129. package/src/definitions/model/definitions/validation.d.ts +3 -0
  130. package/src/getters/index.d.ts +30 -0
  131. package/src/index.d.ts +4 -0
  132. package/src/metadata/index.d.ts +4 -0
  133. package/src/operations/index.d.ts +30 -0
  134. package/src/registry/index.d.ts +6 -0
  135. package/src/runtime/index.d.ts +2 -0
  136. package/src/types.d.ts +307 -0
  137. package/src/visualization-catalog.d.ts +82 -0
  138. package/src/web-components/index.d.ts +12 -0
  139. package/styles.css +2 -0
@@ -0,0 +1,463 @@
1
+ import { o as e, r as t } from "./rolldown-runtime-DleVn1XH.js";
2
+ import { Cn as n, Fn as r, Gn as i, Hn as a, Ks as o, Mo as s, No as c, Sa as l, Si as u, Un as d, Wn as f, Ys as p, fc as m, hn as h, mc as g, po as _, vo as v, yo as y, zn as b, zs as x } from "./isEqual-BDxAhUo8.js";
3
+ import { $t as S, Ei as C, I as w, P as T, Yi as ee, hn as te } from "./utils-Bg7K-t6K.js";
4
+ import { Im as E } from "./handlers-VTBfIZYZ.js";
5
+ import { t as D } from "./stroke-dash-UgMEcCS4.js";
6
+ import { Vt as O, mt as k } from "./ui-DQWtv2iM.js";
7
+ import { B as A, Ct as ne, Dt as re, Et as ie, Ft as j, G as ae, J as oe, Jt as se, Kt as ce, L as le, M as ue, Pt as de, Q as fe, Qt as M, Rt as pe, St as N, Tt as P, U as F, V as I, Wt as L, X as R, Xt as z, Y as B, Yt as V, Z as me, Zt as H, _t as he, at as ge, ct as _e, dn as U, dt as W, ft as ve, ht as G, i as ye, j as be, kt as xe, lt as Se, mt as K, n as Ce, on as we, ot as Te, pt as q, q as Ee, rt as De, st as Oe, ut as ke, vt as Ae } from "./escobar-eDjtGpkC.js";
8
+ import { f as J, r as je, t as Me } from "./coloring-B1XAfg6b.js";
9
+ import { t as Ne } from "./set-coloring-datafield-B3uIS1Pe.js";
10
+ var Y = /* @__PURE__ */ e(ee()), Pe = (e) => {
11
+ let { coloring: t } = e || {}, n = e.dimensions.filter(u);
12
+ switch (t?.type) {
13
+ case p.Categorical: return ne(e, [], n[1] || n[0]);
14
+ case p.Gradient: return P(e);
15
+ case p.Single: return m(n[0].dataItem);
16
+ default: return null;
17
+ }
18
+ }, Fe = (e, t, i) => {
19
+ let a = e.dimensions.filter(u), o = e.measures.filter(u), s = a[0], c = b(e.lineSettings, e.dimensions, e.measures), l = !1, p = {};
20
+ if (s && e?.axes?.dimension?.continuousAxis) {
21
+ let e = g(s.dataItem), t = !!s.datePart, i = e !== null && (n(e) || r(e));
22
+ l = !t && i;
23
+ }
24
+ let h = Pe(e);
25
+ if (p = N(h ? Ne(e, h) : e, t, p), p = ae(e, p, i.collections, l, !0), c) {
26
+ let t = o[0]?.secondaryAxis ? e?.axes?.secondaryMeasure : e?.axes?.primaryMeasure;
27
+ p[z(e, o[0])] = {
28
+ invert: F(!0, t),
29
+ data: { collection: "collection" },
30
+ ...I(t)
31
+ };
32
+ }
33
+ return f(e) && o.forEach((e) => {
34
+ let t = m(e.dataItem);
35
+ t && (p[M.YAxisScale]?.data)?.fields?.push(d(t));
36
+ }), {
37
+ ...i,
38
+ scales: p
39
+ };
40
+ }, Ie = (e, t, n, r) => {
41
+ let i = re(e, t, n, r), a = [], o = e.dimensions.filter(u), s = e.measures.filter(u), c = ue((e.supportingMeasures ?? []).filter(u)), l = b(e.lineSettings, e.dimensions, e.measures), p = f(e);
42
+ if (i.collections[0]?.data.extract[0] && (i.collections[0].data.extract[0].props = {
43
+ ...i.collections[0].data.extract[0].props,
44
+ ...c
45
+ }), o.length === 1 && s.length > 1 && l) {
46
+ let e = m(o[0].dataItem), t = s.map((e) => {
47
+ let t = m(e.dataItem);
48
+ return p ? d(t) : t;
49
+ });
50
+ i.collections[0].data.extract = s.map((n, r) => {
51
+ let i = m(n.dataItem), a = t[r];
52
+ return {
53
+ field: m(o[0].dataItem),
54
+ props: {
55
+ [e]: { field: e },
56
+ end: { field: a },
57
+ ...t.reduce((e, t, n) => (e[`measure${n}`] = { field: t }, e), {}),
58
+ series: i,
59
+ color: i,
60
+ ...c
61
+ }
62
+ };
63
+ });
64
+ }
65
+ if (o[1] && !l) {
66
+ let e = {
67
+ key: ie.LineSeries,
68
+ data: { extract: [{
69
+ field: m(o[1].dataItem),
70
+ props: {
71
+ [m(o[1].dataItem)]: { field: m(o[1].dataItem) },
72
+ ...c
73
+ }
74
+ }] }
75
+ };
76
+ a.push(e);
77
+ }
78
+ return {
79
+ ...i,
80
+ collections: [...i.collections, ...a]
81
+ };
82
+ }, X = (e) => ({
83
+ enabled: e.dataLabels?.show || !1,
84
+ fontSize: se(e.dataLabels?.size),
85
+ backdropColor: e.dataLabels?.backdropColor,
86
+ textColor: e.dataLabels?.textColor,
87
+ isColored: e.dataLabels?.isColored,
88
+ colorType: e.dataLabels?.showBackdrop ? v.Backdrop : v.Text,
89
+ density: e.dataLabels?.density || y.Medium
90
+ }), Le = (e, t, n, r, i) => {
91
+ let a = e.dimensions.find(u);
92
+ if (!a) return [];
93
+ let o = {
94
+ scale: V(e),
95
+ ref: m(a.dataItem)
96
+ }, s = {
97
+ scale: z(e, i),
98
+ ref: "end"
99
+ }, c = H(e);
100
+ return r.filter((e) => e !== i).map((r) => {
101
+ let i = m(r.dataItem), a = ve(e, t, n, r, !0, M.Collection, (e) => e.series?.value === i);
102
+ return {
103
+ ...a,
104
+ settings: {
105
+ ...a.settings,
106
+ x: c ? s : o,
107
+ y: c ? o : s
108
+ }
109
+ };
110
+ });
111
+ }, Re = (e, t, n, r) => {
112
+ let i = e.measures.filter(u), a = i.filter((e) => e.dataLabels?.show), s = i[0];
113
+ if (!s || !a.length || !e.dimensions.find(u)) return n;
114
+ let c = Le(e, t, n, a, s), l = a.map((n, a) => {
115
+ let s = K(e, n, o.Point), c = m(n.dataItem), l = X(n), u = [s], d = { [s]: l };
116
+ return A({
117
+ componentKey: `line-stacked-labels-${a}`,
118
+ targetComponentKeys: u,
119
+ targetSelector: `.${W}`,
120
+ label: ({ data: e, formatter: t }) => {
121
+ let r = e[`measure${i.indexOf(n)}`]?.value;
122
+ return e.series?.value !== c || typeof r != "number" ? "" : n.formatter ? t(n.formatter)(r, void 0, e) : String(r);
123
+ },
124
+ skipBrush: !0
125
+ }, d, r, t);
126
+ });
127
+ return {
128
+ ...n,
129
+ components: [
130
+ ...n.components,
131
+ ...c,
132
+ ...l
133
+ ]
134
+ };
135
+ }, ze = (e, t, n, r) => {
136
+ let i = {}, a = {}, s = A({
137
+ targetComponentKeys: e.measures.filter(u).map((t) => {
138
+ let n = m(t.dataItem), r = K(e, t, o.Point);
139
+ return a[r] = n, i[r] = X(t), r;
140
+ }).filter((e) => i[e].enabled),
141
+ targetSelector: `.${W}`,
142
+ label: ({ data: e, node: t }) => e[a[t.key]]?.label,
143
+ skipBrush: !0
144
+ }, i, r, t);
145
+ return {
146
+ ...n,
147
+ components: [...n.components, s]
148
+ };
149
+ }, Be = (e, t, n, r) => {
150
+ let i = e.measures.find(u);
151
+ if (!i?.dataLabels?.show) return n;
152
+ let a = m(i.dataItem), s = f(e), c = d(a);
153
+ s && G(n, 0, { [c]: { field: c } });
154
+ let l = K(e, i, o.Point), p = X(i), h = { [l]: p }, g = A({
155
+ componentKey: "line-dimension-stacked-labels",
156
+ targetComponentKeys: [l],
157
+ targetSelector: `.${W}`,
158
+ label: ({ data: e, formatter: t }) => {
159
+ let n = e[s ? c : a]?.value;
160
+ return typeof n == "number" ? i.formatter ? t(i.formatter)(n, void 0, e) : String(n) : "";
161
+ },
162
+ skipBrush: !0
163
+ }, h, r, t);
164
+ return {
165
+ ...n,
166
+ components: [...n.components, g]
167
+ };
168
+ }, Ve = (e, t, n, r, i, a) => {
169
+ if (!x(e)) return n;
170
+ let o = b(e.lineSettings, e.dimensions, e.measures), s = o && e.dimensions.filter(u).length === 1 && e.measures.filter(u).length > 1, c = o && e.dimensions.filter(u).length > 1 && e.measures.filter(u).length === 1;
171
+ return o && !s && !c ? n : s ? Re(e, t, n, a) : c ? Be(e, t, n, a) : ze(e, t, n, a);
172
+ }, He = "line-end-labels", Ue = 6, We = 160, Ge = [2, 2], Ke = (e) => Object.values(we).includes(e.type) && e.layout?.dock === s.Right, qe = (e, t, n, r, i, c) => {
173
+ if (!e.lineSettings?.endLabels?.show || H(e) || b(e.lineSettings, e.dimensions, e.measures)) return n;
174
+ let l = e.dimensions.filter(u), d = e.measures.filter(u);
175
+ if (!l[0] || !d.length) return n;
176
+ let f = l[1], p = f ? m(f.dataItem) : void 0, h = d.length > 1, g = e.lineSettings.endLabels.showBackdrop ?? !1, _ = (e.lineSettings.endLabels.position ?? E.Plot) === E.Right, v = t.fonts.general.color ?? O.fontDark, y = ({ node: e }) => e?.attrs?.fill ?? v, x = (e) => new k(y(e)).betterContrast(new k(v), new k(O.fontLight), new k(O.fontDark)).rgb(), S = (e) => {
177
+ let t = String(e?.label ?? e?.value ?? "");
178
+ return f?.formatter?.format ? String(te(f.formatter, e?.value)) : t;
179
+ }, C = d.map((n) => {
180
+ let r = a(n), i = ({ data: e }) => p ? e?.[p] : void 0;
181
+ return {
182
+ component: K(e, n, o.Point),
183
+ selector: `.${W}`,
184
+ strategy: {
185
+ type: "end",
186
+ settings: {
187
+ fontFamily: t.fonts.general.fontFamily,
188
+ fontSize: O.dataPoint.valueFontSize,
189
+ spacing: !0,
190
+ label: {
191
+ series: p,
192
+ label: p ? (e) => {
193
+ let t = S(i(e));
194
+ return h ? `${t} · ${r}` : t;
195
+ } : () => r,
196
+ linkData: p ? ({ data: e }) => e : void 0,
197
+ fontWeight: "bold",
198
+ offset: Ue,
199
+ maxWidth: We,
200
+ ...g ? {
201
+ fill: x,
202
+ backdrop: (e) => ({
203
+ fill: y(e),
204
+ padding: Ge
205
+ })
206
+ } : {}
207
+ }
208
+ }
209
+ }
210
+ };
211
+ }), w = {
212
+ type: U.Labels,
213
+ key: He,
214
+ brush: p && !c?.disable?.interactions ? ce(L([""], {
215
+ ...c,
216
+ disable: { brushing: c?.disable?.brushing }
217
+ })) : void 0,
218
+ layout: _ ? {
219
+ dock: s.Right,
220
+ displayOrder: j.Labels
221
+ } : { displayOrder: j.Labels },
222
+ settings: { sources: C }
223
+ }, T = _ ? n.components.map((e) => Ke(e) ? {
224
+ ...e,
225
+ layout: {
226
+ ...e.layout,
227
+ displayOrder: j.LegendOutsideLabels
228
+ }
229
+ } : e) : n.components;
230
+ return {
231
+ ...n,
232
+ components: [...T, w]
233
+ };
234
+ }, Je = (e, t, n) => n.components.some((e) => e.key === "line-end-labels") ? {
235
+ ...n,
236
+ components: n.components.map((e) => {
237
+ if (e.type !== U.Tooltip || !e.settings?.filter) return e;
238
+ let t = e.settings.filter;
239
+ return {
240
+ ...e,
241
+ settings: {
242
+ ...e.settings,
243
+ filter: (e) => e.some((e) => e.key === "line-end-labels") ? [] : t(e)
244
+ }
245
+ };
246
+ })
247
+ } : n;
248
+ je();
249
+ var Ye = (e, t, n, i, a) => {
250
+ let o = e.dimensions.filter(u), s = e.measures.filter(u), c = o[0], l = s.some((e) => !!e.forecasts?.length), d = g(c?.dataItem), f = !!c.datePart;
251
+ return !l || !r(d) || !c || f ? n : [
252
+ oe,
253
+ Xe,
254
+ Z,
255
+ Ze,
256
+ $e,
257
+ Qe
258
+ ].reduce((n, r) => r(e, t, n, i, a), n);
259
+ }, Xe = (e, t, n) => {
260
+ let r = e.measures.filter(u).filter((e) => !!e.forecasts).reduce((r, i) => {
261
+ let a = i.forecasts.map((r, a) => {
262
+ let s = Q(e, t, n, i, r), l = h(i.dataItem, r, `${a}`), u = K(e, i, o.Line, `-forecast-line-${a}`), d = V(e), f = z(e, i);
263
+ return Se({
264
+ coordinates: {
265
+ major: { scale: d },
266
+ minor: {
267
+ scale: f,
268
+ ref: l
269
+ }
270
+ },
271
+ layers: {
272
+ curve: e.lineSettings?.lineCurve,
273
+ line: {
274
+ stroke: s,
275
+ strokeWidth: r.strokeWidth,
276
+ strokeDasharray: D(r.strokeDash),
277
+ show: !0
278
+ }
279
+ },
280
+ orientation: H(e) ? c.Vertical : void 0
281
+ }, n, l, u);
282
+ });
283
+ return [...r, ...a];
284
+ }, []);
285
+ return {
286
+ ...n,
287
+ components: [...r, ...n.components]
288
+ };
289
+ }, Z = (e, t, n) => {
290
+ let r = e.dimensions.filter(u), i = e.measures.filter(u), a = m(r[0]?.dataItem), s = i.filter((e) => !!e.forecasts).map((r) => r.forecasts.map((i, s) => {
291
+ let c = Q(e, t, n, r, i), l = h(r.dataItem, i, `${s}`), u = [], d = (e) => e[l]?.value === null || e[m(r.dataItem)]?.value === null;
292
+ if (G(n, 0, {
293
+ [l]: { field: l },
294
+ [a]: { field: a }
295
+ }), i.showDataPoints) {
296
+ let t = K(e, r, o.Point, `-forecast-line-${s}`);
297
+ u.push(q(e, r, l, c, t, !1, d));
298
+ }
299
+ let f = K(e, r, o.Point, `-forecast-line-${s}-tooltip`);
300
+ return u.push(q(e, r, l, c, f, !0, d)), u;
301
+ }).reduce((e, t) => [...e, ...t], [])).reduce((e, t) => [...e, ...t], []);
302
+ return {
303
+ ...n,
304
+ components: [...n.components, ...s]
305
+ };
306
+ }, Ze = (e, t, n, r, i) => {
307
+ let a = e.dimensions.filter(u), o = e.measures.filter(u).find((e) => !!e.forecasts && !!e.forecasts[0]?.showForecastStart);
308
+ if (!i || !o) return n;
309
+ let s = m(a[0].dataItem), c = h(o.dataItem, o.forecasts[0], "0"), l = i[0].items.find((e) => e[c] !== null && e[c] !== void 0);
310
+ if (!l) return n;
311
+ let d = {
312
+ value: l[s],
313
+ label: {
314
+ text: o.forecasts[0].refLineLabel ?? "",
315
+ showValue: !1,
316
+ fill: "#4c4c3e"
317
+ },
318
+ stroke: "#96969680"
319
+ }, f = V(e), p = {
320
+ type: U.RefLine,
321
+ layout: { displayOrder: j.ForecastLine },
322
+ lines: { x: [Te(d, f, t, a[0].formatter)] }
323
+ };
324
+ return {
325
+ ...n,
326
+ components: [...n.components, p]
327
+ };
328
+ }, Qe = (e, t, n) => {
329
+ let r = e.measures.filter(u), a = e.coloring?.type;
330
+ if (!a || !n.scales[a]) return n;
331
+ let o = { ...n.scales }, s = o[a];
332
+ return r.forEach((r) => {
333
+ r.forecasts?.forEach((i, a) => {
334
+ let o = Q(e, t, n, r, i);
335
+ if (i.label && typeof o == "string") {
336
+ let e = h(r.dataItem, i, `${a}`);
337
+ s.data.push(e), (s?.range).push(o);
338
+ }
339
+ });
340
+ }), s.label = (e) => {
341
+ let t = "";
342
+ return r.forEach((n) => {
343
+ m(n.dataItem) === e.datum.value?.toString() ? t = i(n) ?? n.label ?? n.dataItem?.name : n.forecasts?.forEach((r, i) => {
344
+ h(n.dataItem, r, `${i}`) === e.datum.value && (t = r.label ?? "");
345
+ });
346
+ }), t;
347
+ }, {
348
+ ...n,
349
+ scales: o
350
+ };
351
+ }, $e = (e, t, n, r, i) => {
352
+ let a = e.measures.filter(u).reduce((t, n) => {
353
+ let r = (n.forecasts ?? []).map((t, r) => K(e, n, o.Point, `-forecast-line-${r}-tooltip`));
354
+ return t.concat(r);
355
+ }, []);
356
+ return R(e, t, n, {
357
+ filter: (e) => e.filter((e) => a.findIndex((t) => t === e.key) !== -1),
358
+ placement: {
359
+ type: "pointer",
360
+ area: "target"
361
+ },
362
+ extract: me(e, t, et, fe)
363
+ }, `tooltip-${U.Point}-forecast`, i);
364
+ }, et = (e, t, n, r, a, o, s) => {
365
+ let c = [];
366
+ return e.forEach((e) => {
367
+ e.forecasts?.forEach((r, a) => {
368
+ let o = h(e.dataItem, r, `${a}`), l = t.data[o];
369
+ if (!l) return;
370
+ let u = l.value, d = i(e), f = r.label || d || e.label || e.dataItem.name || "", p = u;
371
+ !s && e.formatter ? p = n.formatter(e.formatter)(u) : s && e.formatter && (p = n.formatter(De(e.formatter))(u)), c.push({
372
+ label: f,
373
+ value: p
374
+ });
375
+ });
376
+ }), c;
377
+ }, Q = (e, t, n, r, i) => {
378
+ let a = new Me(e, t).getMeasureColor(n, r);
379
+ switch (i.inheritColor) {
380
+ case _.Lighter: return J(a).brighter().toString();
381
+ case _.Darker: return J(a).darker().toString();
382
+ default: return a;
383
+ }
384
+ }, tt = (e, t, n) => Ee(e, t, n), $ = class extends be {
385
+ constructor() {
386
+ super([
387
+ Ie,
388
+ Fe,
389
+ pe,
390
+ Ae,
391
+ Oe,
392
+ _e,
393
+ he,
394
+ Ve,
395
+ qe,
396
+ ge,
397
+ B,
398
+ Je,
399
+ tt,
400
+ xe,
401
+ Ye,
402
+ de,
403
+ ke,
404
+ le
405
+ ]);
406
+ }
407
+ };
408
+ function nt(e, t) {
409
+ let n = e.dimensions.filter(u).map((e) => m(e.dataItem)), r = n[0], i = e.measures.filter((e) => {
410
+ let t = e.advancedCalculation;
411
+ return u(e) && t?.type === "growth" && t.startFromZero && typeof t.offset == "number" && t.offset < 0 && !t.nonTimePeriod;
412
+ }).map((e) => m(e.dataItem)).filter((e) => e !== null);
413
+ return !t || !r || i.length === 0 || e.querySettings?.hideZeroValues ? t : t.map((e) => {
414
+ let t = e.items[0];
415
+ if (!t || t[r] == null) return e;
416
+ let a = t[r], o = n.slice(1).filter((e) => e !== null), s = (e) => JSON.stringify(o.map((t) => e[t])), c = /* @__PURE__ */ new Set(), l = e.items.map((e) => e[r] === a ? (c.add(s(e)), {
417
+ ...e,
418
+ ...Object.fromEntries(i.map((e) => [e, 0]))
419
+ }) : e), u = [];
420
+ e.items.forEach((t) => {
421
+ let n = s(t);
422
+ if (c.has(n)) return;
423
+ c.add(n);
424
+ let l = Object.fromEntries(e.fields.map((e) => [e.dataItemId, null]));
425
+ o.forEach((e) => {
426
+ l[e] = t[e];
427
+ }), l[r] = a, i.forEach((e) => {
428
+ l[e] = 0;
429
+ }), u.push(l);
430
+ });
431
+ let d = l.findIndex((e) => e[r] !== a), f = d === -1 ? l.length : d, p = e.groupings ? Object.fromEntries(Object.entries(e.groupings).map(([e, t]) => [Number(e) < f ? e : Number(e) + u.length, t])) : void 0;
432
+ return {
433
+ ...e,
434
+ items: [
435
+ ...l.slice(0, f),
436
+ ...u,
437
+ ...l.slice(f)
438
+ ],
439
+ ...p ? { groupings: p } : {}
440
+ };
441
+ });
442
+ }
443
+ var rt = C(), it = S(({ vSpec: e, vTheme: t, data: n, elementSize: r, vizProperties: i }) => {
444
+ let a = T(), [s] = (0, Y.useState)(() => new $()), c = w(), u = (0, Y.useMemo)(() => ({
445
+ ...i,
446
+ disable: {
447
+ ...i.disable,
448
+ brushingAxis: !0
449
+ }
450
+ }), [i]), d = t || l, f = Ce();
451
+ if (!e || !n || !r) return null;
452
+ let p = s.compile(e, d, nt(e, n), r, u, o.Line, a, c, f);
453
+ return p ? /* @__PURE__ */ (0, rt.jsx)(ye, {
454
+ config: i,
455
+ definition: p,
456
+ size: r,
457
+ vSpec: e
458
+ }) : null;
459
+ }), at = /* @__PURE__ */ t({
460
+ LineChart: () => it,
461
+ LineChartCompiler: () => $
462
+ });
463
+ export { $ as n, at as t };