@aintela/bi 0.2.0

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 (175) hide show
  1. package/README.md +299 -0
  2. package/dist/BiClientProvider-CWJochvi.js +219 -0
  3. package/dist/BiClientProvider-CWJochvi.js.map +1 -0
  4. package/dist/ChartCardDefaultsContext-Cl5T25H0.js +32 -0
  5. package/dist/ChartCardDefaultsContext-Cl5T25H0.js.map +1 -0
  6. package/dist/ChartContext-C_f_6khG.js +14 -0
  7. package/dist/ChartContext-C_f_6khG.js.map +1 -0
  8. package/dist/DashboardParametersContext-Clv--79U.js +39 -0
  9. package/dist/DashboardParametersContext-Clv--79U.js.map +1 -0
  10. package/dist/cards/ChartCard.d.ts +62 -0
  11. package/dist/cards/DataTableCard.d.ts +55 -0
  12. package/dist/cards/GaugeCard.d.ts +20 -0
  13. package/dist/cards/GaugeGroup.d.ts +12 -0
  14. package/dist/cards/MapBubbles.d.ts +35 -0
  15. package/dist/cards/MapConnections.d.ts +28 -0
  16. package/dist/cards/MetricCard.d.ts +15 -0
  17. package/dist/cards/MetricGroupCard.d.ts +10 -0
  18. package/dist/cards/TreeMapCard.d.ts +15 -0
  19. package/dist/cards/geoLayers.d.ts +23 -0
  20. package/dist/cards/index.d.ts +24 -0
  21. package/dist/cards/licenseGuard.d.ts +9 -0
  22. package/dist/cards/mapUtils.d.ts +23 -0
  23. package/dist/cards/useContainerRectangle.d.ts +9 -0
  24. package/dist/cards/worldMapPath.d.ts +7 -0
  25. package/dist/cards.d.ts +2 -0
  26. package/dist/cards.js +28 -0
  27. package/dist/cards.js.map +1 -0
  28. package/dist/client/BiClient.d.ts +160 -0
  29. package/dist/client/BiClientProvider.d.ts +21 -0
  30. package/dist/client/index.d.ts +4 -0
  31. package/dist/client.d.ts +2 -0
  32. package/dist/client.js +11 -0
  33. package/dist/client.js.map +1 -0
  34. package/dist/composer/environment/environmentDom.d.ts +31 -0
  35. package/dist/composer/environment/types.d.ts +67 -0
  36. package/dist/composer/icons/cardTypeIcons.d.ts +31 -0
  37. package/dist/composer/index.d.ts +66 -0
  38. package/dist/composer/llm/ExampleCardSketch.d.ts +22 -0
  39. package/dist/composer/llm/ExamplePad.d.ts +18 -0
  40. package/dist/composer/llm/PrototypePad.d.ts +13 -0
  41. package/dist/composer/llm/useDashboardPad.d.ts +25 -0
  42. package/dist/composer/models/catalog.d.ts +33 -0
  43. package/dist/composer/models/sketchModels.d.ts +102 -0
  44. package/dist/composer/models/utils.d.ts +9 -0
  45. package/dist/composer/pad/CardSketch.d.ts +25 -0
  46. package/dist/composer/pad/ClonedComponent.d.ts +13 -0
  47. package/dist/composer/pad/DashboardPad.d.ts +38 -0
  48. package/dist/composer/pad/DashboardPadEditor.d.ts +35 -0
  49. package/dist/composer/pad/DashboardPadSketch.d.ts +31 -0
  50. package/dist/composer/pad/DatasetParameterizationControls.d.ts +34 -0
  51. package/dist/composer/pad/FilterSketch.d.ts +10 -0
  52. package/dist/composer/pad/HoverButton.d.ts +12 -0
  53. package/dist/composer/pad/TitleSketch.d.ts +19 -0
  54. package/dist/composer/pad/ToolBox.d.ts +11 -0
  55. package/dist/composer/store/ComposerProvider.d.ts +36 -0
  56. package/dist/composer/store/createComposerStore.d.ts +107 -0
  57. package/dist/composer/store/drafts.d.ts +20 -0
  58. package/dist/composer/view/ComposerChatBinding.d.ts +10 -0
  59. package/dist/composer/view/ComposerView.d.ts +49 -0
  60. package/dist/composer/view/DashboardPin.d.ts +3 -0
  61. package/dist/composer/view/DashboardSidePanel.d.ts +10 -0
  62. package/dist/composer/view/DrawablePrompt.d.ts +22 -0
  63. package/dist/composer/view/EntryEmptyState.d.ts +22 -0
  64. package/dist/composer/view/SpotlightOverlay.d.ts +21 -0
  65. package/dist/composer/view/composerAnimations.d.ts +11 -0
  66. package/dist/composer/view/composerTypes.d.ts +18 -0
  67. package/dist/composer/view/data/suggestions.d.ts +10 -0
  68. package/dist/composer/view/data/templates.d.ts +33 -0
  69. package/dist/composer/view/surfaces.d.ts +19 -0
  70. package/dist/composer/view/useComposerChatBridge.d.ts +43 -0
  71. package/dist/composer.d.ts +2 -0
  72. package/dist/composer.js +99 -0
  73. package/dist/composer.js.map +1 -0
  74. package/dist/createBiTheme-TyUv_UHM.js +93 -0
  75. package/dist/createBiTheme-TyUv_UHM.js.map +1 -0
  76. package/dist/data/ChartCardDefaultsContext.d.ts +43 -0
  77. package/dist/data/dataUtils.d.ts +152 -0
  78. package/dist/data/index.d.ts +5 -0
  79. package/dist/data/queryModel.d.ts +23 -0
  80. package/dist/data.d.ts +2 -0
  81. package/dist/data.js +37 -0
  82. package/dist/data.js.map +1 -0
  83. package/dist/dataUtils-CAUE5uZY.js +372 -0
  84. package/dist/dataUtils-CAUE5uZY.js.map +1 -0
  85. package/dist/filters/VizAutoComplete.d.ts +23 -0
  86. package/dist/filters/VizDatePicker.d.ts +9 -0
  87. package/dist/filters/VizDateRangePicker.d.ts +14 -0
  88. package/dist/filters/VizSelect.d.ts +12 -0
  89. package/dist/filters/VizTextField.d.ts +8 -0
  90. package/dist/filters/VizTriggerButton.d.ts +9 -0
  91. package/dist/filters/filterFactory.d.ts +30 -0
  92. package/dist/filters/friendlyName.d.ts +4 -0
  93. package/dist/filters/index.d.ts +15 -0
  94. package/dist/filters.d.ts +2 -0
  95. package/dist/filters.js +15 -0
  96. package/dist/filters.js.map +1 -0
  97. package/dist/grid/BiErrorBoundary.d.ts +24 -0
  98. package/dist/grid/ChartContext.d.ts +14 -0
  99. package/dist/grid/GridCard.d.ts +45 -0
  100. package/dist/grid/GridCardPlaceHolder.d.ts +8 -0
  101. package/dist/grid/GridLayout.d.ts +147 -0
  102. package/dist/grid/gridModels.d.ts +33 -0
  103. package/dist/grid/index.d.ts +14 -0
  104. package/dist/grid/types.d.ts +23 -0
  105. package/dist/grid/useGridConfigTranslator.d.ts +72 -0
  106. package/dist/grid.d.ts +2 -0
  107. package/dist/grid.js +20 -0
  108. package/dist/grid.js.map +1 -0
  109. package/dist/hooks/DashboardParametersContext.d.ts +32 -0
  110. package/dist/hooks/index.d.ts +8 -0
  111. package/dist/hooks/useDashboardData.d.ts +20 -0
  112. package/dist/hooks/useDashboardLazyData.d.ts +79 -0
  113. package/dist/hooks.d.ts +2 -0
  114. package/dist/hooks.js +16 -0
  115. package/dist/hooks.js.map +1 -0
  116. package/dist/index-BYc79sSy.js +131 -0
  117. package/dist/index-BYc79sSy.js.map +1 -0
  118. package/dist/index-C6JQ6770.js +4545 -0
  119. package/dist/index-C6JQ6770.js.map +1 -0
  120. package/dist/index-CZbCaXMC.js +15 -0
  121. package/dist/index-CZbCaXMC.js.map +1 -0
  122. package/dist/index-D3OoOPjl.js +259 -0
  123. package/dist/index-D3OoOPjl.js.map +1 -0
  124. package/dist/index-D7Oo_dC-.js +94 -0
  125. package/dist/index-D7Oo_dC-.js.map +1 -0
  126. package/dist/index-D7tVPX8d.js +347 -0
  127. package/dist/index-D7tVPX8d.js.map +1 -0
  128. package/dist/index-DGyvUtY3.js +494 -0
  129. package/dist/index-DGyvUtY3.js.map +1 -0
  130. package/dist/index-DOpx0R4Y.js +41 -0
  131. package/dist/index-DOpx0R4Y.js.map +1 -0
  132. package/dist/index-wtSLspPh.js +1065 -0
  133. package/dist/index-wtSLspPh.js.map +1 -0
  134. package/dist/index.d.ts +12 -0
  135. package/dist/index.js +236 -0
  136. package/dist/index.js.map +1 -0
  137. package/dist/inline/Chart.d.ts +29 -0
  138. package/dist/inline/IFrame.d.ts +19 -0
  139. package/dist/inline/Metric.d.ts +16 -0
  140. package/dist/inline/MetricGroup.d.ts +11 -0
  141. package/dist/inline/index.d.ts +9 -0
  142. package/dist/inline/parseKnownNumbers.d.ts +11 -0
  143. package/dist/inline.d.ts +2 -0
  144. package/dist/inline.js +9 -0
  145. package/dist/inline.js.map +1 -0
  146. package/dist/runtime/IDashboardDefinition.d.ts +22 -0
  147. package/dist/runtime/biModuleSurface.d.ts +2 -0
  148. package/dist/runtime/createBiUiTools.d.ts +74 -0
  149. package/dist/runtime/index.d.ts +9 -0
  150. package/dist/runtime/loadDashboardBundle.d.ts +32 -0
  151. package/dist/runtime/registerBiModules.d.ts +36 -0
  152. package/dist/runtime/version.d.ts +6 -0
  153. package/dist/runtime.d.ts +2 -0
  154. package/dist/runtime.js +19 -0
  155. package/dist/runtime.js.map +1 -0
  156. package/dist/style.css +1 -0
  157. package/dist/theme/BiThemeBridge.d.ts +32 -0
  158. package/dist/theme/biPalette.d.ts +23 -0
  159. package/dist/theme/createBiTheme.d.ts +25 -0
  160. package/dist/theme/index.d.ts +5 -0
  161. package/dist/theme.d.ts +2 -0
  162. package/dist/theme.js +15 -0
  163. package/dist/theme.js.map +1 -0
  164. package/dist/version-DnqajORq.js +83 -0
  165. package/dist/version-DnqajORq.js.map +1 -0
  166. package/dist/viewer/ScriptDashboardViewer.d.ts +82 -0
  167. package/dist/viewer/ScriptDashboardViewerVertical.d.ts +24 -0
  168. package/dist/viewer/cardMetadata.d.ts +15 -0
  169. package/dist/viewer/index.d.ts +8 -0
  170. package/dist/viewer/models.d.ts +67 -0
  171. package/dist/viewer/useDashboardBundle.d.ts +73 -0
  172. package/dist/viewer.d.ts +2 -0
  173. package/dist/viewer.js +9 -0
  174. package/dist/viewer.js.map +1 -0
  175. package/package.json +196 -0
@@ -0,0 +1,372 @@
1
+ var w = Object.defineProperty;
2
+ var M = (t, e, r) => e in t ? w(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
+ var s = (t, e) => w(t, "name", { value: e, configurable: !0 });
4
+ var m = (t, e, r) => M(t, typeof e != "symbol" ? e + "" : e, r);
5
+ import g from "dayjs";
6
+ function N(t) {
7
+ return typeof t == "string" ? t : t.type;
8
+ }
9
+ s(N, "extractFieldTypeName");
10
+ function T(t) {
11
+ return typeof t == "string" ? void 0 : t;
12
+ }
13
+ s(T, "extractFieldDescriptor");
14
+ function x(t) {
15
+ const e = /* @__PURE__ */ new Map(), r = {
16
+ definition: t,
17
+ build() {
18
+ return Object.keys(t).map((n) => {
19
+ const o = t[n], a = N(o), u = T(o);
20
+ let i;
21
+ switch (a) {
22
+ case "boolean":
23
+ case "boolean[]":
24
+ i = "check";
25
+ break;
26
+ case "date":
27
+ case "date[]":
28
+ i = "date";
29
+ break;
30
+ case "number":
31
+ case "number[]":
32
+ i = "number";
33
+ break;
34
+ }
35
+ const c = {};
36
+ return u && Array.isArray(u.values) && (c.type = "singleSelect", c.valueOptions = u.values, u.multiple && (c.multiSelectDropdown = !0)), {
37
+ field: n,
38
+ label: n,
39
+ align: "center",
40
+ minWidth: 40,
41
+ format: i,
42
+ ...c,
43
+ ...e.get(n)
44
+ };
45
+ });
46
+ }
47
+ };
48
+ for (const n of Object.keys(t))
49
+ r[n] = {
50
+ configure(o) {
51
+ return e.set(n, { ...e.get(n), ...o }), r;
52
+ }
53
+ };
54
+ return r;
55
+ }
56
+ s(x, "defineSchema");
57
+ function p(t) {
58
+ if (t == null) return 0;
59
+ if (typeof t == "number") return Number.isFinite(t) ? t : 0;
60
+ if (typeof t == "boolean") return t ? 1 : 0;
61
+ const e = String(t).replace(/,/g, ".").trim();
62
+ if (e === "") return 0;
63
+ const r = Number(e);
64
+ return Number.isFinite(r) ? r : 0;
65
+ }
66
+ s(p, "toNumber");
67
+ function F(t) {
68
+ if (t == null) return "N/D";
69
+ if (t instanceof Date) return Number.isNaN(t.getTime()) ? "N/D" : t;
70
+ if (typeof t == "string") {
71
+ if (t.trim() === "") return "N/D";
72
+ const e = g(t);
73
+ return e.isValid() ? e.toDate() : "N/D";
74
+ }
75
+ if (typeof t == "number") {
76
+ const e = g(t);
77
+ return e.isValid() ? e.toDate() : "N/D";
78
+ }
79
+ return "N/D";
80
+ }
81
+ s(F, "toDate");
82
+ function k(t) {
83
+ if (t == null) return !1;
84
+ if (typeof t == "boolean") return t;
85
+ if (typeof t == "number") return t !== 0;
86
+ const e = String(t).toLowerCase().trim();
87
+ return e === "true" || e === "1" || e === "yes";
88
+ }
89
+ s(k, "toBoolean");
90
+ function d(t) {
91
+ return t == null ? "N/D" : t instanceof Date ? t.toISOString() : String(t);
92
+ }
93
+ s(d, "toStr");
94
+ function D(t, e) {
95
+ switch (e) {
96
+ case "number":
97
+ return p(t);
98
+ case "date":
99
+ return F(t);
100
+ case "boolean":
101
+ return k(t);
102
+ case "string":
103
+ return d(t);
104
+ default:
105
+ return d(t);
106
+ }
107
+ }
108
+ s(D, "coerceScalar");
109
+ const y = class y {
110
+ constructor(e, r) {
111
+ m(this, "rows");
112
+ m(this, "columns");
113
+ m(this, "schema");
114
+ m(this, "_columnSchema");
115
+ m(this, "length", /* @__PURE__ */ s(() => this.rows.length, "length"));
116
+ var a, u;
117
+ if (this.columns = Object.keys(r), this.schema = r, !((a = e == null ? void 0 : e.headers) != null && a.length) || !((u = e == null ? void 0 : e.rows) != null && u.length)) {
118
+ this.rows = [];
119
+ return;
120
+ }
121
+ const n = /* @__PURE__ */ new Map();
122
+ e.headers.forEach((i, c) => n.set(i.toLowerCase(), c));
123
+ const o = this.columns.map((i) => {
124
+ const c = r[i], f = c.endsWith("[]");
125
+ return {
126
+ key: i,
127
+ index: n.get(i.toLowerCase()) ?? -1,
128
+ isArray: f,
129
+ scalarType: f ? c.slice(0, -2) : c
130
+ };
131
+ });
132
+ this.rows = e.rows.map((i) => {
133
+ const c = {};
134
+ for (const f of o) {
135
+ const l = f.index >= 0 ? i.values[f.index] : void 0;
136
+ if (f.isArray) {
137
+ const S = (l == null ? void 0 : l.vs) ?? [];
138
+ c[f.key] = S.map((A) => D(A, f.scalarType));
139
+ } else
140
+ c[f.key] = D(l == null ? void 0 : l.v, f.scalarType);
141
+ }
142
+ return c;
143
+ });
144
+ }
145
+ get columnSchema() {
146
+ return this._columnSchema || (this._columnSchema = x(this.schema)), this._columnSchema;
147
+ }
148
+ set columnSchema(e) {
149
+ this._columnSchema = e;
150
+ }
151
+ first() {
152
+ return this.rows[0] ?? null;
153
+ }
154
+ last() {
155
+ return this.rows[this.length() - 1] ?? null;
156
+ }
157
+ isEmpty() {
158
+ return this.length() === 0;
159
+ }
160
+ column(e) {
161
+ return this.rows.map((r) => r[e]);
162
+ }
163
+ sum(e) {
164
+ return this.rows.reduce((r, n) => r + p(n[e]), 0);
165
+ }
166
+ avg(e) {
167
+ return this.length() === 0 ? 0 : this.sum(e) / this.length();
168
+ }
169
+ min(e) {
170
+ const r = this.rows.map((n) => p(n[e]));
171
+ return r.length ? Math.min(...r) : 0;
172
+ }
173
+ max(e) {
174
+ const r = this.rows.map((n) => p(n[e]));
175
+ return r.length ? Math.max(...r) : 0;
176
+ }
177
+ groupBy(e) {
178
+ const r = /* @__PURE__ */ new Map();
179
+ for (const n of this.rows) {
180
+ const o = String(n[e]), a = r.get(o);
181
+ a ? a.rows.push(n) : r.set(o, this.clone([n]));
182
+ }
183
+ return r;
184
+ }
185
+ sortedBy(e, r = "asc") {
186
+ const n = [...this.rows].sort((o, a) => {
187
+ const u = o[e], i = a[e];
188
+ let c = 0;
189
+ return u instanceof Date && i instanceof Date ? c = u.getTime() - i.getTime() : typeof u == "number" && typeof i == "number" ? c = u - i : c = String(u ?? "").localeCompare(String(i ?? "")), r === "desc" ? -c : c;
190
+ });
191
+ return this.clone(n);
192
+ }
193
+ distinct(e) {
194
+ const r = /* @__PURE__ */ new Set(), n = [];
195
+ for (const u of this.rows) {
196
+ const i = u[e], c = i instanceof Date ? i.getTime() : i;
197
+ if (!r.has(c)) {
198
+ r.add(c);
199
+ const f = {};
200
+ f[e] = i, n.push(f);
201
+ }
202
+ }
203
+ const a = { key: this.schema[e] };
204
+ return this.clone(n, a);
205
+ }
206
+ slice(e, r) {
207
+ return this.clone(this.rows.slice(e, r));
208
+ }
209
+ take(e) {
210
+ return this.clone(this.rows.slice(0, e));
211
+ }
212
+ filter(e) {
213
+ return this.clone(this.rows.filter(e));
214
+ }
215
+ map(e) {
216
+ return h(this.rows.map(e));
217
+ }
218
+ clone(e, r) {
219
+ const n = new y(null, r ?? this.schema);
220
+ return n.rows = e, n.columns = this.columns, this._columnSchema && !r && (n.columnSchema = this._columnSchema), n;
221
+ }
222
+ };
223
+ s(y, "DataResult");
224
+ let b = y;
225
+ function C(t) {
226
+ if (t instanceof Date) return "date";
227
+ if (typeof t == "boolean") return "boolean";
228
+ if (typeof t == "number") return "number";
229
+ if (Array.isArray(t)) {
230
+ const e = t[0];
231
+ return e instanceof Date ? "date[]" : typeof e == "boolean" ? "boolean[]" : typeof e == "number" ? "number[]" : "string[]";
232
+ }
233
+ return "string";
234
+ }
235
+ s(C, "inferFieldType");
236
+ function h(t) {
237
+ const e = {}, r = t[0];
238
+ if (r)
239
+ for (const o of Object.keys(r))
240
+ e[o] = C(r[o]);
241
+ const n = new b(null, e);
242
+ return n.rows = t, n.columns = Object.keys(e), n;
243
+ }
244
+ s(h, "buildResultFromRows");
245
+ function L(t, e) {
246
+ if (Array.isArray(t))
247
+ return h(t);
248
+ const r = e ?? Object.keys(t).find((o) => Array.isArray(t[o])), n = r ? t[r] : [];
249
+ return h(n);
250
+ }
251
+ s(L, "toDashResult");
252
+ function R(t, e) {
253
+ if (Array.isArray(t))
254
+ return h(t);
255
+ const r = e ?? Object.keys(t).find((o) => Array.isArray(t[o])), n = r ? t[r] : [];
256
+ return h(n);
257
+ }
258
+ s(R, "toDataResultFromList");
259
+ const O = [
260
+ [1e9, "B"],
261
+ [1e6, "M"],
262
+ [1e3, "K"]
263
+ ];
264
+ function j(t, e = 2, r = !0, n = null) {
265
+ const o = Math.abs(t);
266
+ for (const [a, u] of O)
267
+ if (o >= a)
268
+ return n && (n.suffix = u), (t / a).toFixed(e) + (r ? u : "");
269
+ return t.toFixed(e);
270
+ }
271
+ s(j, "formatCompact");
272
+ function U(t, e) {
273
+ const { decimals: r, locale: n = "en-US" } = e ?? {};
274
+ return t.toLocaleString(n, {
275
+ minimumFractionDigits: r,
276
+ maximumFractionDigits: r ?? 2
277
+ });
278
+ }
279
+ s(U, "formatNumber");
280
+ function V(t, e) {
281
+ const r = {}, n = parseFloat(j(t, 2, !1, r)), { currency: o = "USD", locale: a = "en-US" } = e ?? {};
282
+ return new Intl.NumberFormat(a, { style: "currency", currency: o }).format(n) + (r.suffix ?? "");
283
+ }
284
+ s(V, "formatCurrency");
285
+ function I(t, e) {
286
+ const { decimals: r = 1, isRatio: n = !0 } = e ?? {};
287
+ return `${(n ? t * 100 : t).toFixed(r)}%`;
288
+ }
289
+ s(I, "formatPercent");
290
+ function z(t) {
291
+ return t === !0 || t === 1 ? "Sim" : "Não";
292
+ }
293
+ s(z, "formatBoolean");
294
+ function _(t, e = "MMM D, YYYY") {
295
+ if (!t) return "";
296
+ const r = g(t);
297
+ return r.isValid() ? r.format(e) : "";
298
+ }
299
+ s(_, "formatDate");
300
+ function E(t) {
301
+ return _(t, "YYYY-MM-DD");
302
+ }
303
+ s(E, "formatISODate");
304
+ function P(t, e, r = "…") {
305
+ return t.length <= e ? t : t.slice(0, e - r.length) + r;
306
+ }
307
+ s(P, "truncateText");
308
+ function $(t) {
309
+ return t ? t.charAt(0).toUpperCase() + t.slice(1) : "";
310
+ }
311
+ s($, "capitalize");
312
+ function H(t) {
313
+ return t.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[_-]+/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
314
+ }
315
+ s(H, "toTitleCase");
316
+ function K(t, e = 0.1) {
317
+ if (t.length === 0) return [0, 0];
318
+ const r = Math.min(...t), n = Math.max(...t), o = n - r || 1;
319
+ return [
320
+ Math.floor(r - o * e),
321
+ Math.ceil(n + o * e)
322
+ ];
323
+ }
324
+ s(K, "computeDomain");
325
+ function W(t, e, r = 5) {
326
+ if (r < 2) return [t];
327
+ const n = (e - t) / (r - 1);
328
+ return Array.from({ length: r }, (o, a) => Math.round(t + n * a));
329
+ }
330
+ s(W, "computeTicks");
331
+ function q(t, e) {
332
+ return t === 0 ? e === 0 ? 0 : null : (e - t) / Math.abs(t);
333
+ }
334
+ s(q, "percentChange");
335
+ function Z(t) {
336
+ return t > 0 ? "↑" : t < 0 ? "↓" : "→";
337
+ }
338
+ s(Z, "trendArrow");
339
+ function G(t, e = !0) {
340
+ if (t === 0) return "default";
341
+ const r = t > 0;
342
+ return e ? r ? "success" : "error" : r ? "error" : "success";
343
+ }
344
+ s(G, "trendColor");
345
+ export {
346
+ b as D,
347
+ K as a,
348
+ W as b,
349
+ $ as c,
350
+ x as d,
351
+ T as e,
352
+ N as f,
353
+ z as g,
354
+ j as h,
355
+ V as i,
356
+ _ as j,
357
+ E as k,
358
+ U as l,
359
+ I as m,
360
+ L as n,
361
+ R as o,
362
+ q as p,
363
+ F as q,
364
+ p as r,
365
+ d as s,
366
+ k as t,
367
+ H as u,
368
+ Z as v,
369
+ G as w,
370
+ P as x
371
+ };
372
+ //# sourceMappingURL=dataUtils-CAUE5uZY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataUtils-CAUE5uZY.js","sources":["../src/data/dataUtils.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { QueryResult, ResultField } from './queryModel';\nimport type { DataTableColumn, ColumnFormats } from '../cards/DataTableCard';\n\n// ════════════════════════════════════════════════════════════════\n// Column type system\n// ════════════════════════════════════════════════════════════════\n\nexport type TypeMap = {\n string: string;\n number: number;\n date: Date;\n boolean: boolean;\n 'string[]': string[];\n 'number[]': number[];\n 'date[]': Date[];\n 'boolean[]': boolean[];\n};\n\n/**\n * Name-only field type — the legacy / simple shape:\n * `id: 'string', amount: 'number'`\n *\n * Continues to be the canonical form for most columns; only\n * dropdown-filtered columns need the richer {@link FieldDescriptor}\n * object form.\n */\nexport type FieldTypeName = keyof TypeMap;\n\n/**\n * Object-form field descriptor used to declare richer column\n * metadata that the table needs at build time:\n *\n * - `values: T[]` — static dropdown filter (singleSelect)\n * - `values: 'distinct'` — dynamic dropdown, values fetched\n * from `/Query/.../distinct/{column}`\n * - `multiple: true` — multi-select dropdown (server-side\n * `isAnyOf` operator)\n *\n * Columns without dropdown semantics (numbers, free-text strings,\n * dates) keep the simple {@link FieldTypeName} form.\n */\nexport interface FieldDescriptor<T extends FieldTypeName = FieldTypeName> {\n /** Base data type the column carries. */\n type: T;\n /**\n * If a literal array: those are the dropdown choices.\n * If `'distinct'`: the lazy hook fetches the values from the\n * server on mount (cached per (view, params) on the server).\n * Omitted: no dropdown — falls back to whatever the type's\n * default filter UI is.\n */\n values?: ReadonlyArray<TypeMap[T]> | 'distinct';\n /**\n * `true` enables a multi-select dropdown that emits the\n * `isAnyOf` operator. Default is single-select (`is`).\n */\n multiple?: boolean;\n}\n\n/**\n * Either form is accepted in {@link defineSchema}'s input shape.\n * Existing callers passing plain strings keep working unchanged.\n */\nexport type FieldType = FieldTypeName | FieldDescriptor;\n\n/**\n * Pulls the underlying TypeMap entry out of either form, so\n * `InferModel<{ id: 'string'; status: { type: 'string'; values: ['A'] } }>`\n * resolves to `{ id: string; status: string }`.\n */\ntype FieldTypeBase<F> =\n F extends FieldTypeName ? F :\n F extends FieldDescriptor<infer T> ? T :\n never;\n\nexport type InferModel<S extends Record<string, FieldType>> = {\n -readonly [K in keyof S]: TypeMap[FieldTypeBase<S[K]>];\n};\n\n/**\n * Normalizes a field type entry to its base name. Used internally\n * by the schema builders so the simple and object forms share one\n * code path for column-type / formatter lookup.\n */\nexport function extractFieldTypeName(f: FieldType): FieldTypeName {\n return typeof f === 'string' ? f : f.type;\n}\n\n/**\n * Returns the descriptor associated with a field entry, if any.\n * Simple-form entries (just a string) return `undefined`.\n */\nexport function extractFieldDescriptor(f: FieldType): FieldDescriptor | undefined {\n return typeof f === 'string' ? undefined : f;\n}\n\n// ════════════════════════════════════════════════════════════════\n// Schema definition — single source of truth for data + columns\n// ════════════════════════════════════════════════════════════════\n\nexport type ColumnSchema<S extends Record<string, FieldType>> = {\n [K in keyof S & string]: {\n configure(\n config: Partial<Omit<DataTableColumn<InferModel<S>, TypeMap[FieldTypeBase<S[K]>]>, 'field'>>\n ): ColumnSchema<S>;\n };\n} & {\n readonly definition: S;\n build(): DataTableColumn<InferModel<S>>[];\n};\n\nexport function defineSchema<const S extends Record<string, FieldType>>(schema: S): ColumnSchema<S> {\n const overrides = new Map<string, Partial<DataTableColumn>>();\n\n const self: any = {\n definition: schema,\n\n build(): DataTableColumn[] {\n return Object.keys(schema).map(key => {\n const entry = schema[key] as FieldType;\n const baseType = extractFieldTypeName(entry);\n const descriptor = extractFieldDescriptor(entry);\n\n let format: ColumnFormats | undefined;\n switch (baseType) {\n case 'boolean': case 'boolean[]': format = 'check'; break;\n case 'date': case 'date[]': format = 'date'; break;\n case 'number': case 'number[]': format = 'number'; break;\n }\n\n // Static-values descriptor → seed singleSelect + valueOptions\n // here so the column is dropdown-ready on first render. The\n // 'distinct' (dynamic) case is handled by the lazy hook,\n // which calls .configure(...) once the server responds.\n const dropdownDefaults: Partial<DataTableColumn> = {};\n if (descriptor && Array.isArray(descriptor.values)) {\n dropdownDefaults.type = 'singleSelect';\n dropdownDefaults.valueOptions = descriptor.values as ReadonlyArray<unknown>;\n if (descriptor.multiple) {\n dropdownDefaults.multiSelectDropdown = true;\n }\n }\n\n return {\n field: key,\n label: key,\n align: 'center' as const,\n minWidth: 40,\n format,\n ...dropdownDefaults,\n ...overrides.get(key),\n };\n });\n },\n };\n\n for (const key of Object.keys(schema)) {\n self[key] = {\n configure(config: Partial<DataTableColumn>) {\n overrides.set(key, { ...overrides.get(key), ...config });\n return self;\n },\n };\n }\n\n return self as ColumnSchema<S>;\n}\n\n// ════════════════════════════════════════════════════════════════\n// Value coercion — safe, never throws\n// ════════════════════════════════════════════════════════════════\n\nexport function toNumber(v: unknown): number {\n if (v == null) return 0;\n if (typeof v === 'number') return Number.isFinite(v) ? v : 0;\n if (typeof v === 'boolean') return v ? 1 : 0;\n const s = String(v).replace(/,/g, '.').trim();\n if (s === '') return 0;\n const n = Number(s);\n return Number.isFinite(n) ? n : 0;\n}\n\nexport function toDate(v: unknown): Date | string {\n if (v == null) return \"N/D\";\n if (v instanceof Date) return Number.isNaN(v.getTime()) ? \"N/D\" : v;\n if (typeof v === 'string') {\n if (v.trim() === '') return \"N/D\";\n const d = dayjs(v);\n return d.isValid() ? d.toDate() : \"N/D\";\n }\n if (typeof v === 'number') {\n const d = dayjs(v);\n return d.isValid() ? d.toDate() : \"N/D\";\n }\n return \"N/D\";\n}\n\nexport function toBoolean(v: unknown): boolean {\n if (v == null) return false;\n if (typeof v === 'boolean') return v;\n if (typeof v === 'number') return v !== 0;\n const s = String(v).toLowerCase().trim();\n return s === 'true' || s === '1' || s === 'yes';\n}\n\nexport function toStr(v: unknown): string {\n if (v == null) return 'N/D';\n if (v instanceof Date) return v.toISOString();\n return String(v);\n}\n\nfunction coerceScalar(v: unknown, type: string): unknown {\n switch (type) {\n case 'number': return toNumber(v);\n case 'date': return toDate(v);\n case 'boolean': return toBoolean(v);\n case 'string': return toStr(v);\n default: return toStr(v);\n }\n}\n\n// ════════════════════════════════════════════════════════════════\n// DataResult — schema-driven typed access to query results\n// ════════════════════════════════════════════════════════════════\n\nexport class DataResult<TModel extends Record<string, any>> {\n public rows: TModel[];\n public columns: (keyof TModel & string)[];\n private schema: Record<string, FieldType>;\n private _columnSchema?: ColumnSchema<any>;\n\n public length = () => this.rows.length;\n\n get columnSchema(): ColumnSchema<any> {\n if (!this._columnSchema) {\n this._columnSchema = defineSchema(this.schema);\n }\n return this._columnSchema;\n }\n\n set columnSchema(value: ColumnSchema<any>) {\n this._columnSchema = value;\n }\n\n constructor(data: QueryResult | null | undefined, schema: Record<string, FieldType>) {\n this.columns = Object.keys(schema) as (keyof TModel & string)[];\n this.schema = schema;\n\n if (!data?.headers?.length || !data?.rows?.length) {\n this.rows = [];\n return;\n }\n\n const headerIndex = new Map<string, number>();\n data.headers.forEach((h, i) => headerIndex.set(h.toLowerCase(), i));\n\n const colMappings = this.columns.map(key => {\n const type = schema[key as string] as string;\n const isArr = type.endsWith('[]');\n return {\n key,\n index: headerIndex.get(key.toLowerCase()) ?? -1,\n isArray: isArr,\n scalarType: isArr ? type.slice(0, -2) : type,\n };\n });\n\n this.rows = data.rows.map(row => {\n const obj: Record<string, unknown> = {};\n for (const col of colMappings) {\n const field: ResultField | undefined = col.index >= 0 ? row.values[col.index] : undefined;\n if (col.isArray) {\n const raw = field?.vs ?? [];\n obj[col.key] = raw.map(item => coerceScalar(item, col.scalarType));\n } else {\n obj[col.key] = coerceScalar(field?.v, col.scalarType);\n }\n }\n return obj as TModel;\n });\n }\n\n first(): TModel | null {\n return this.rows[0] ?? null;\n }\n\n last(): TModel | null {\n return this.rows[this.length() - 1] ?? null;\n }\n\n isEmpty(): boolean {\n return this.length() === 0;\n }\n\n column<K extends keyof TModel & string>(key: K): TModel[K][] {\n return this.rows.map(row => row[key]);\n }\n\n sum(key: keyof TModel & string): number {\n return this.rows.reduce((acc, row) => acc + toNumber(row[key]), 0);\n }\n\n avg(key: keyof TModel & string): number {\n return this.length() === 0 ? 0 : this.sum(key) / this.length();\n }\n\n min(key: keyof TModel & string): number {\n const vals = this.rows.map(r => toNumber(r[key]));\n return vals.length ? Math.min(...vals) : 0;\n }\n\n max(key: keyof TModel & string): number {\n const vals = this.rows.map(r => toNumber(r[key]));\n return vals.length ? Math.max(...vals) : 0;\n }\n\n groupBy<K extends keyof TModel & string>(key: K): Map<string, DataResult<TModel>> {\n const groups = new Map<string, DataResult<TModel>>();\n for (const row of this.rows) {\n const groupKey = String(row[key]);\n const dataResult = groups.get(groupKey);\n if (dataResult) dataResult.rows.push(row);\n else groups.set(groupKey, this.clone([row]));\n }\n return groups;\n }\n\n sortedBy(key: keyof TModel & string, order: 'asc' | 'desc' = 'asc'): DataResult<TModel> {\n const rows = [...this.rows].sort((a, b) => {\n const va = a[key];\n const vb = b[key];\n let cmp = 0;\n if ((va as any) instanceof Date && (vb as any) instanceof Date) {\n cmp = va.getTime() - vb.getTime();\n } else if (typeof va === 'number' && typeof vb === 'number') {\n cmp = va - vb;\n } else {\n cmp = String(va ?? '').localeCompare(String(vb ?? ''));\n }\n return order === 'desc' ? -cmp : cmp;\n })\n\n return this.clone(rows);\n }\n\n distinct(key: string): DataResult<TModel> {\n const seen = new Set<unknown>();\n const data: Record<string, unknown>[] = [];\n for (const row of this.rows) {\n const v = (row as Record<string, unknown>)[key];\n const serialized = ((v as any) instanceof Date) ? (v as unknown as Date).getTime() as unknown : v;\n if (!seen.has(serialized)) {\n seen.add(serialized);\n const obj = {} as Record<string, unknown>;\n obj[key] = v;\n data.push(obj);\n }\n }\n\n const schemaValue = this.schema[key];\n\n const newSchema = { key: schemaValue } as Record<string, unknown>;\n return this.clone(data, newSchema as TModel);\n }\n\n slice(start: number, end?: number): DataResult<TModel> {\n return this.clone(this.rows.slice(start, end));\n }\n\n take(count: number): DataResult<TModel> {\n return this.clone(this.rows.slice(0, count));\n }\n\n filter(predicate: (row: TModel) => boolean): DataResult<TModel> {\n return this.clone(this.rows.filter(predicate));\n }\n\n map<U extends Record<string, any>>(fn: (row: TModel, index: number) => U): DataResult<U> {\n return buildResultFromRows(this.rows.map(fn));\n }\n\n clone(rows: Record<string, any>[], newSchema?: Record<string, FieldType>): DataResult<TModel> {\n const newDs = new DataResult<TModel>(null, newSchema ?? this.schema);\n newDs.rows = rows as TModel[];\n newDs.columns = this.columns;\n if (this._columnSchema && !newSchema) newDs.columnSchema = this._columnSchema;\n\n return newDs;\n }\n}\n\n// ════════════════════════════════════════════════════════════════\n// toDashResult — wrap a plain JS object/array into a DataResult\n// ════════════════════════════════════════════════════════════════\n\ntype ArrayKeys<T> = {\n [K in keyof T]: NonNullable<T[K]> extends any[] ? K : never;\n}[keyof T];\n\ntype ArrayItem<T, K extends keyof T> = NonNullable<T[K]> extends (infer U)[] ? U & Record<string, any> : never;\n\nfunction inferFieldType(value: unknown): FieldType {\n if (value instanceof Date) return 'date';\n if (typeof value === 'boolean') return 'boolean';\n if (typeof value === 'number') return 'number';\n if (Array.isArray(value)) {\n const inner = value[0];\n if (inner instanceof Date) return 'date[]';\n if (typeof inner === 'boolean') return 'boolean[]';\n if (typeof inner === 'number') return 'number[]';\n return 'string[]';\n }\n return 'string';\n}\n\nfunction buildResultFromRows<TItem extends Record<string, any>>(rows: TItem[]): DataResult<TItem> {\n const schema: Record<string, FieldType> = {};\n const sample = rows[0];\n if (sample) {\n for (const key of Object.keys(sample)) {\n schema[key] = inferFieldType(sample[key]);\n }\n }\n const result = new DataResult<TItem>(null, schema);\n result.rows = rows;\n result.columns = Object.keys(schema) as (keyof TItem & string)[];\n return result;\n}\n\n/** Wrap a plain array directly into a DataResult. */\nexport function toDashResult<TItem extends Record<string, any>>(source: TItem[]): DataResult<TItem>;\n/** Wrap an object's array field into a DataResult, auto-detecting the first array property. */\nexport function toDashResult<TInput extends Record<string, any>, K extends ArrayKeys<TInput> = ArrayKeys<TInput>>(\n source: TInput,\n arrayKey?: K,\n): DataResult<ArrayItem<TInput, K>>;\n\nexport function toDashResult(source: Record<string, any> | Record<string, any>[], arrayKey?: string): DataResult<any> {\n if (Array.isArray(source)) {\n return buildResultFromRows(source);\n }\n\n const key = arrayKey ?? (Object.keys(source).find(k => Array.isArray(source[k])) as string | undefined);\n const rows: Record<string, any>[] = key ? (source[key] as Record<string, any>[]) : [];\n return buildResultFromRows(rows);\n}\n\n/** Wrap a plain array directly into a DataResult. */\nexport function toDataResultFromList<TItem extends Record<string, any>>(source: TItem[]): DataResult<TItem>;\n/** Wrap an object's array field into a DataResult, auto-detecting the first array property. */\nexport function toDataResultFromList<TInput extends Record<string, any>, K extends ArrayKeys<TInput> = ArrayKeys<TInput>>(\n source: TInput,\n arrayKey?: K,\n): DataResult<ArrayItem<TInput, K>>;\n\nexport function toDataResultFromList(source: Record<string, any> | Record<string, any>[], arrayKey?: string): DataResult<any> {\n if (Array.isArray(source)) {\n return buildResultFromRows(source);\n }\n\n const key = arrayKey ?? (Object.keys(source).find(k => Array.isArray(source[k])) as string | undefined);\n const rows: Record<string, any>[] = key ? (source[key] as Record<string, any>[]) : [];\n return buildResultFromRows(rows);\n}\n\n// ════════════════════════════════════════════════════════════════\n// Number formatting\n// ════════════════════════════════════════════════════════════════\n\nconst COMPACT_THRESHOLDS: [number, string][] = [\n [1_000_000_000, 'B'],\n [1_000_000, 'M'],\n [1_000, 'K'],\n];\n\nexport function formatCompact(value: number, decimals = 2, addSuffix: boolean = true, info: any = null): string {\n const abs = Math.abs(value);\n for (const [threshold, suffix] of COMPACT_THRESHOLDS) {\n if (abs >= threshold) {\n if (info) {\n info[\"suffix\"] = suffix;\n }\n return (value / threshold).toFixed(decimals) + (addSuffix ? suffix : \"\");\n }\n }\n return value.toFixed(decimals);\n}\n\nexport function formatNumber(value: number, options?: {\n decimals?: number;\n locale?: string;\n}): string {\n const { decimals, locale = 'en-US' } = options ?? {};\n return value.toLocaleString(locale, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals ?? 2,\n });\n}\n\nexport function formatCurrency(value: number, options?: {\n currency?: string;\n locale?: string;\n}): string {\n const info = {} as any;\n const compacted = parseFloat(formatCompact(value, 2, false, info));\n const { currency = 'USD', locale = 'en-US' } = options ?? {};\n\n return new Intl.NumberFormat(locale, { style: 'currency', currency }).format(compacted) + (info[\"suffix\"] ?? '');\n}\n\nexport function formatPercent(value: number, options?: {\n decimals?: number;\n isRatio?: boolean;\n}): string {\n const { decimals = 1, isRatio = true } = options ?? {};\n const pct = isRatio ? value * 100 : value;\n return `${pct.toFixed(decimals)}%`;\n}\n\nexport function formatBoolean(value: boolean | number): string {\n return value === true || value === 1 ? 'Sim' : 'Não';\n}\n\n// ════════════════════════════════════════════════════════════════\n// Date formatting\n// ════════════════════════════════════════════════════════════════\n\nexport function formatDate(date: Date | null | undefined, format = 'MMM D, YYYY'): string {\n if (!date) return '';\n const d = dayjs(date);\n return d.isValid() ? d.format(format) : '';\n}\n\nexport function formatISODate(date: Date | null | undefined): string {\n return formatDate(date, 'YYYY-MM-DD');\n}\n\n// ════════════════════════════════════════════════════════════════\n// Text formatting\n// ════════════════════════════════════════════════════════════════\n\nexport function truncateText(text: string, maxLength: number, suffix = '…'): string {\n if (text.length <= maxLength) return text;\n return text.slice(0, maxLength - suffix.length) + suffix;\n}\n\nexport function capitalize(text: string): string {\n if (!text) return '';\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\n\nexport function toTitleCase(text: string): string {\n return text\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/[_-]+/g, ' ')\n .replace(/\\b\\w/g, c => c.toUpperCase());\n}\n\n// ════════════════════════════════════════════════════════════════\n// Chart helpers (recharts)\n// ════════════════════════════════════════════════════════════════\n\nexport function computeDomain(values: number[], padding = 0.1): [number, number] {\n if (values.length === 0) return [0, 0];\n const min = Math.min(...values);\n const max = Math.max(...values);\n const range = max - min || 1;\n return [\n Math.floor(min - range * padding),\n Math.ceil(max + range * padding),\n ];\n}\n\nexport function computeTicks(min: number, max: number, count = 5): number[] {\n if (count < 2) return [min];\n const step = (max - min) / (count - 1);\n return Array.from({ length: count }, (_, i) => Math.round(min + step * i));\n}\n\n// Series colours moved to the theme: read `theme.palette.bi.series` through\n// `useBiPalette()` / `biSeriesColor(theme, i)` (see `@aintela/bi/theme`).\n// `ChartCardDefaultsContext` lives in `./ChartCardDefaultsContext`.\n\n// ════════════════════════════════════════════════════════════════\n// Change / delta helpers\n// ════════════════════════════════════════════════════════════════\n\nexport function percentChange(previous: number, current: number): number | null {\n if (previous === 0) return current === 0 ? 0 : null;\n return (current - previous) / Math.abs(previous);\n}\n\nexport function trendArrow(value: number): '↑' | '↓' | '→' {\n if (value > 0) return '↑';\n if (value < 0) return '↓';\n return '→';\n}\n\nexport function trendColor(value: number, positiveIsGood = true): 'success' | 'error' | 'default' {\n if (value === 0) return 'default';\n const isPositive = value > 0;\n if (positiveIsGood) return isPositive ? 'success' : 'error';\n return isPositive ? 'error' : 'success';\n}\n"],"names":["extractFieldTypeName","f","__name","extractFieldDescriptor","defineSchema","schema","overrides","self","key","entry","baseType","descriptor","format","dropdownDefaults","config","toNumber","v","s","n","toDate","d","dayjs","toBoolean","toStr","coerceScalar","type","_DataResult","data","__publicField","_a","_b","headerIndex","h","i","colMappings","isArr","row","obj","col","field","raw","item","value","acc","vals","r","groups","groupKey","dataResult","order","rows","a","b","va","vb","cmp","seen","serialized","newSchema","start","end","count","predicate","fn","buildResultFromRows","newDs","DataResult","inferFieldType","inner","sample","result","toDashResult","source","arrayKey","k","toDataResultFromList","COMPACT_THRESHOLDS","formatCompact","decimals","addSuffix","info","abs","threshold","suffix","formatNumber","options","locale","formatCurrency","compacted","currency","formatPercent","isRatio","formatBoolean","formatDate","date","formatISODate","truncateText","text","maxLength","capitalize","toTitleCase","c","computeDomain","values","padding","min","max","range","computeTicks","step","_","percentChange","previous","current","trendArrow","trendColor","positiveIsGood","isPositive"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ import { IRow } from '../data/queryModel';
3
+ export interface VizAutoCompleteProps {
4
+ /** Filter id — also the id of the data source that serves its options. */
5
+ id?: string;
6
+ multipleSelection: boolean;
7
+ /** Render the current selection as a read-only chip (print preview). */
8
+ showAsText?: boolean;
9
+ parameterName: string;
10
+ dashboardId: string;
11
+ selectedValues?: string[];
12
+ valueFieldName?: string;
13
+ displayFieldName: string;
14
+ /** Called on every change; the value is also pushed to `DashboardParametersContext` when one is mounted. */
15
+ onChange?: (parameterName: string, value: string | string[]) => void;
16
+ /** When true, skip loading the options (placeholder mode). */
17
+ partial?: boolean;
18
+ /** Options supplied directly — skips the server fetch. */
19
+ options?: IRow[];
20
+ }
21
+ export declare const AutoCompleteInstructions = "\nEste componente necessita que voc\u00EA gere um datasource com a query para selecionar os valores.\nCrie um datasource utilizando no parametro clientId o id(i) deste filtro para que o componente possa utiliz\u00E1-lo. Neste datasource voc\u00EA n\u00E3o precisa enviar parametros, uma vez que o sistema executar\u00E1 a query sem enviar qualquer defini\u00E7\u00E3o de parametros\nSua query deve retornar os campos {{filterName}} e {{filterName}}_display, um para ser enviado efetivamente para as queries do dashboard e o outro para apresentar para o usu\u00E1rio na listagem do auto complete.\n";
22
+ export declare const VizAutoComplete: React.FC<VizAutoCompleteProps>;
23
+ export default VizAutoComplete;
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ export interface VizDatePickerProps {
3
+ initialValue?: string;
4
+ parameterName: string;
5
+ onChange?: (parameterName: string, value: string) => void;
6
+ }
7
+ /** Single-date filter. Requires the host to mount `@mui/x-date-pickers`' `LocalizationProvider`. */
8
+ export declare const VizDatePicker: React.FC<VizDatePickerProps>;
9
+ export default VizDatePicker;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ export interface VizDateRangePickerProps {
3
+ id?: string;
4
+ showAsText?: boolean;
5
+ initialStartValue?: string;
6
+ initialEndValue?: string;
7
+ parameterStartDateName: string;
8
+ parameterEndDateName: string;
9
+ partial?: boolean;
10
+ onChange?: (parameterName: string, value: string) => void;
11
+ }
12
+ /** Date-range filter (MUI X Pro). Requires the host's `LocalizationProvider`. */
13
+ export declare const VizDateRangePicker: React.FC<VizDateRangePickerProps>;
14
+ export default VizDateRangePicker;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ export interface VizSelectProps {
3
+ id?: string;
4
+ initialValue: string;
5
+ parameterName: string;
6
+ /** `<option>` elements (legacy) or `<MenuItem>` elements. `<option>`s are converted. */
7
+ children: React.ReactNode;
8
+ onChange?: (parameterName: string, value: string) => void;
9
+ }
10
+ /** Single-value select filter, rendered with MUI so it follows the theme. */
11
+ export declare const VizSelect: React.FC<VizSelectProps>;
12
+ export default VizSelect;
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+ export interface VizTextFieldProps {
3
+ initialValue: string;
4
+ parameterName: string;
5
+ onChange?: (parameterName: string, value: string) => void;
6
+ }
7
+ export declare const VizTextField: React.FC<VizTextFieldProps>;
8
+ export default VizTextField;
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ export interface VizTriggerButtonProps {
3
+ text?: string;
4
+ /** Runs the filter. May return a promise; a rejection is shown as an error tooltip. */
5
+ onTrigger: () => void | Promise<unknown>;
6
+ }
7
+ /** "Filtrar" button — the legacy `executeFilter` context is gone; the host passes `onTrigger`. */
8
+ export declare const VizTriggerButton: React.FC<VizTriggerButtonProps>;
9
+ export default VizTriggerButton;
@@ -0,0 +1,30 @@
1
+ import { default as React } from 'react';
2
+ export type FilterType = 'DateRangePicker' | 'DatePicker' | 'AutoComplete';
3
+ /** A filter as described on a dashboard document (`Dashboard.filters[]`). */
4
+ export interface SketchedFilter {
5
+ i: string;
6
+ name: string;
7
+ systemInstructions?: string;
8
+ filterType: FilterType;
9
+ mandatory: boolean;
10
+ /** AutoComplete only — `VizAutoComplete.multipleSelection`. */
11
+ multipleSelection?: boolean;
12
+ }
13
+ export declare const DateRangeFilterEndSuffix = "_fim";
14
+ export declare const DateRangeFilterBeginSuffix = "_inicio";
15
+ export interface FilterFactoryOptions {
16
+ /** When true the filter skips loading its data source (placeholder mode). */
17
+ partial?: boolean;
18
+ /** Direct callback invoked on value change (in addition to the parameters context). */
19
+ onChange?: (parameterName: string, value: string | string[]) => void;
20
+ /** Current parameter values, used to seed the filters' initial selection. */
21
+ parameters?: Record<string, string | string[]>;
22
+ /** Read-only rendering (print preview). */
23
+ readonly?: boolean;
24
+ }
25
+ /**
26
+ * Given a `SketchedFilter` descriptor, returns the matching filter component
27
+ * wrapped in a `Box` carrying `data-env-*` attributes (the composer's
28
+ * environment API targets them).
29
+ */
30
+ export declare function createFilterComponent(dashboardId: string, filter: SketchedFilter, options?: FilterFactoryOptions): React.ReactElement;
@@ -0,0 +1,4 @@
1
+ /** `data_inicio` → `Data inicio` — the label the filter components show. */
2
+ export declare function getFriendlyName(key: string): string;
3
+ /** Stable-enough id for an uncontrolled filter element. */
4
+ export declare function nextFilterId(): string;
@@ -0,0 +1,15 @@
1
+ export { VizAutoComplete, AutoCompleteInstructions } from './VizAutoComplete';
2
+ export type { VizAutoCompleteProps } from './VizAutoComplete';
3
+ export { VizDatePicker } from './VizDatePicker';
4
+ export type { VizDatePickerProps } from './VizDatePicker';
5
+ export { VizDateRangePicker } from './VizDateRangePicker';
6
+ export type { VizDateRangePickerProps } from './VizDateRangePicker';
7
+ export { VizSelect } from './VizSelect';
8
+ export type { VizSelectProps } from './VizSelect';
9
+ export { VizTextField } from './VizTextField';
10
+ export type { VizTextFieldProps } from './VizTextField';
11
+ export { VizTriggerButton } from './VizTriggerButton';
12
+ export type { VizTriggerButtonProps } from './VizTriggerButton';
13
+ export { createFilterComponent, DateRangeFilterBeginSuffix, DateRangeFilterEndSuffix } from './filterFactory';
14
+ export type { FilterFactoryOptions, SketchedFilter, FilterType } from './filterFactory';
15
+ export { getFriendlyName } from './friendlyName';
@@ -0,0 +1,2 @@
1
+ export * from './filters/index'
2
+ export {}
@@ -0,0 +1,15 @@
1
+ import { A as t, D as i, a as s, V as r, b as n, c as o, d as g, e as l, f as V, g as c, h as f } from "./index-D7tVPX8d.js";
2
+ export {
3
+ t as AutoCompleteInstructions,
4
+ i as DateRangeFilterBeginSuffix,
5
+ s as DateRangeFilterEndSuffix,
6
+ r as VizAutoComplete,
7
+ n as VizDatePicker,
8
+ o as VizDateRangePicker,
9
+ g as VizSelect,
10
+ l as VizTextField,
11
+ V as VizTriggerButton,
12
+ c as createFilterComponent,
13
+ f as getFriendlyName
14
+ };
15
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,24 @@
1
+ import { default as React } from 'react';
2
+ export interface BiErrorBoundaryProps {
3
+ fallback: (error: Error) => React.ReactNode;
4
+ /** Reset the boundary when this value changes (e.g. the card key or a render generation). */
5
+ resetKey?: unknown;
6
+ onError?: (error: Error, info: React.ErrorInfo) => void;
7
+ children?: React.ReactNode;
8
+ }
9
+ interface State {
10
+ error: Error | null;
11
+ }
12
+ /**
13
+ * Minimal error boundary for grid cards. A local copy rather than the chat
14
+ * library's `JsxErrorBoundary`, so `@aintela/bi/grid` has no runtime import
15
+ * from `@aintela/chat` (only `@aintela/bi/runtime` talks to the chat library).
16
+ */
17
+ export declare class BiErrorBoundary extends React.Component<BiErrorBoundaryProps, State> {
18
+ state: State;
19
+ static getDerivedStateFromError(error: Error): State;
20
+ componentDidCatch(error: Error, info: React.ErrorInfo): void;
21
+ componentDidUpdate(prev: BiErrorBoundaryProps): void;
22
+ render(): React.ReactNode;
23
+ }
24
+ export default BiErrorBoundary;
@@ -0,0 +1,14 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * Tells a card whether the enclosing `GridCard` is drawn "Naked" (no header,
4
+ * so the card should render its own title) or "Boxed". Lives in its own module
5
+ * so cards can read it without importing the grid (react-grid-layout) bundle.
6
+ */
7
+ export interface ChartContextState {
8
+ naked: boolean;
9
+ }
10
+ export declare const ChartContextProvider: React.FC<{
11
+ value: ChartContextState;
12
+ children: React.ReactNode;
13
+ }>;
14
+ export declare function useChartContext(): ChartContextState | null;