@sisense/sdk-ui 1.23.0 → 1.25.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 (103) hide show
  1. package/dist/ai.cjs +30 -29
  2. package/dist/ai.js +571 -558
  3. package/dist/analytics-composer.cjs +35 -35
  4. package/dist/analytics-composer.js +281 -261
  5. package/dist/{derive-chart-family-CTpRObm1.js → derive-chart-family-BlFbAr2V.js} +18111 -17793
  6. package/dist/{derive-chart-family-DcALKnKU.cjs → derive-chart-family-C_c2ZQQd.cjs} +108 -108
  7. package/dist/index.cjs +56 -75
  8. package/dist/index.js +5374 -5298
  9. package/dist/packages/sdk-ui/src/ai/chart/chart-insights.d.ts +2 -1
  10. package/dist/packages/sdk-ui/src/ai/chart/nlq-chart-widget.d.ts +7 -2
  11. package/dist/packages/sdk-ui/src/ai/chat-config.d.ts +4 -2
  12. package/dist/packages/sdk-ui/src/ai/icons/exclamation-mark-brand-icon.d.ts +3 -0
  13. package/dist/packages/sdk-ui/src/analytics-composer/common/stringify-props.d.ts +5 -0
  14. package/dist/packages/sdk-ui/src/analytics-composer/common/utils.d.ts +2 -0
  15. package/dist/packages/sdk-ui/src/analytics-composer/execute-query/execute-query-composer.d.ts +8 -0
  16. package/dist/packages/sdk-ui/src/analytics-composer/execute-query/to-execute-query-code.d.ts +2 -0
  17. package/dist/packages/sdk-ui/src/analytics-composer/index.d.ts +5 -0
  18. package/dist/packages/sdk-ui/src/analytics-composer/types.d.ts +13 -2
  19. package/dist/packages/sdk-ui/src/analytics-composer/widget/to-widget-code.d.ts +1 -1
  20. package/dist/packages/sdk-ui/src/analytics-composer/widget/widget-composer.d.ts +1 -0
  21. package/dist/packages/sdk-ui/src/api/rest-api.d.ts +25 -2
  22. package/dist/packages/sdk-ui/src/api/types/dashboard-dto.d.ts +9 -4
  23. package/dist/packages/sdk-ui/src/chart/advanced-chart.d.ts +1 -1
  24. package/dist/packages/sdk-ui/src/chart/regular-chart.d.ts +3 -0
  25. package/dist/packages/sdk-ui/src/chart-data-processor/data-table-date-period.d.ts +1 -4
  26. package/dist/packages/sdk-ui/src/chart-options-processor/category-chart-options.d.ts +2 -1
  27. package/dist/packages/sdk-ui/src/chart-options-processor/translations/sunburst/sunburst-options.d.ts +2 -1
  28. package/dist/packages/sdk-ui/src/chart-options-processor/translations/treemap/treemap-options.d.ts +2 -1
  29. package/dist/packages/sdk-ui/src/chart-options-processor/translations/treemap/treemap-tooltip.d.ts +3 -2
  30. package/dist/packages/sdk-ui/src/chart-options-processor/translations/types.d.ts +2 -0
  31. package/dist/packages/sdk-ui/src/common-filters/cascading-utils.d.ts +3 -1
  32. package/dist/packages/sdk-ui/src/common-filters/common-filters-connector.d.ts +4 -3
  33. package/dist/packages/sdk-ui/src/common-filters/types.d.ts +25 -0
  34. package/dist/packages/sdk-ui/src/common-filters/use-common-filters.d.ts +8 -9
  35. package/dist/packages/sdk-ui/src/common-filters/use-convert-filter-relations.d.ts +26 -0
  36. package/dist/packages/sdk-ui/src/dashboard/components/dashboard-container.d.ts +1 -1
  37. package/dist/packages/sdk-ui/src/dashboard/components/horizontal-collapse.d.ts +6 -0
  38. package/dist/packages/sdk-ui/src/dashboard/dashboard-helpers.d.ts +40 -10
  39. package/dist/packages/sdk-ui/src/dashboard/dashboard.d.ts +8 -3
  40. package/dist/packages/sdk-ui/src/dashboard/hooks/use-filters-panel-collapsed-state.d.ts +8 -0
  41. package/dist/packages/sdk-ui/src/dashboard/types.d.ts +24 -6
  42. package/dist/packages/sdk-ui/src/dashboard/use-composed-dashboard.d.ts +4 -4
  43. package/dist/packages/sdk-ui/src/decorators/component-decorators/with-error-boundary.d.ts +3 -1
  44. package/dist/packages/sdk-ui/src/error-boundary/error-boundary.d.ts +4 -2
  45. package/dist/packages/sdk-ui/src/filters/components/cascading-filter-tile/cascading-filter-tile.d.ts +2 -0
  46. package/dist/packages/sdk-ui/src/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +2 -0
  47. package/dist/packages/sdk-ui/src/filters/components/custom-filter-tile.d.ts +2 -0
  48. package/dist/packages/sdk-ui/src/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +2 -0
  49. package/dist/packages/sdk-ui/src/filters/components/date-filter/relative-date-filter-tile/helpers.d.ts +6 -0
  50. package/dist/packages/sdk-ui/src/filters/components/date-filter/relative-date-filter-tile/relative-date-filter-tile.d.ts +2 -0
  51. package/dist/packages/sdk-ui/src/filters/components/date-filter/relative-date-filter-tile/relative-date-filter.d.ts +2 -1
  52. package/dist/packages/sdk-ui/src/filters/components/filter-tile.d.ts +1 -0
  53. package/dist/packages/sdk-ui/src/filters/components/filters-panel/filters-panel-tile.d.ts +3 -1
  54. package/dist/packages/sdk-ui/src/filters/components/filters-panel/filters-panel.d.ts +3 -3
  55. package/dist/packages/sdk-ui/src/filters/components/icons/trash-icon.d.ts +1 -1
  56. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/member-filter-tile.d.ts +2 -0
  57. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/member-list.d.ts +1 -1
  58. package/dist/packages/sdk-ui/src/filters/components/unsupported-filter-tile.d.ts +3 -1
  59. package/dist/packages/sdk-ui/src/filters/helpers.d.ts +122 -0
  60. package/dist/packages/sdk-ui/src/filters/index.d.ts +1 -0
  61. package/dist/packages/sdk-ui/src/index.d.ts +3 -1
  62. package/dist/packages/sdk-ui/src/models/dashboard/dashboard-model.d.ts +2 -2
  63. package/dist/packages/sdk-ui/src/models/dashboard/get-dashboard-model.d.ts +2 -1
  64. package/dist/packages/sdk-ui/src/models/dashboard/translate-dashboard-dto-utils.d.ts +1 -1
  65. package/dist/packages/sdk-ui/src/models/dashboard/translate-dashboard-utils.d.ts +2 -2
  66. package/dist/packages/sdk-ui/src/models/dashboard/types.d.ts +3 -0
  67. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dasboard-model-utils.d.ts +2 -4
  68. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-model-reducer.d.ts +26 -18
  69. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-model.d.ts +3 -0
  70. package/dist/packages/sdk-ui/src/models/hierarchy/get-hierarchy-models.d.ts +6 -1
  71. package/dist/packages/sdk-ui/src/models/hierarchy/types.d.ts +3 -0
  72. package/dist/packages/sdk-ui/src/models/hierarchy/use-get-hierarchy-models.d.ts +4 -4
  73. package/dist/packages/sdk-ui/src/models/widget/widget-model-translator.d.ts +11 -1
  74. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-render-pivot.d.ts +3 -1
  75. package/dist/packages/sdk-ui/src/props.d.ts +11 -3
  76. package/dist/packages/sdk-ui/src/query/date-formats/apply-date-format.d.ts +1 -0
  77. package/dist/packages/sdk-ui/src/query-execution/utils.d.ts +3 -0
  78. package/dist/packages/sdk-ui/src/sisense-context/sisense-context.d.ts +2 -0
  79. package/dist/packages/sdk-ui/src/table/table-component.d.ts +1 -1
  80. package/dist/packages/sdk-ui/src/translation/resources/en.d.ts +10 -0
  81. package/dist/packages/sdk-ui/src/translation/resources/index.d.ts +20 -0
  82. package/dist/packages/sdk-ui/src/utils/extract-widget-ids.d.ts +2 -0
  83. package/dist/packages/sdk-ui/src/utils/filter-relations.d.ts +64 -0
  84. package/dist/packages/sdk-ui/src/utils/filters-comparator.d.ts +5 -0
  85. package/dist/packages/sdk-ui/src/utils/filters.d.ts +0 -1
  86. package/dist/packages/sdk-ui/src/widget-by-id/translate-dashboard-filters.d.ts +178 -178
  87. package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-data-options.d.ts +2 -2
  88. package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-filters.d.ts +17 -17
  89. package/dist/packages/sdk-ui/src/widget-by-id/use-get-dashboard-model-and-widget-model.d.ts +13 -0
  90. package/dist/packages/sdk-ui/src/widget-by-id/utils.d.ts +13 -4
  91. package/dist/packages/sdk-ui/src/widgets/common/widget-container.d.ts +2 -0
  92. package/dist/packages/sdk-ui/src/widgets/common/widget-errors-and-warnings-context.d.ts +14 -0
  93. package/dist/packages/sdk-ui/src/widgets/common/widget-header-info-button.d.ts +3 -1
  94. package/dist/packages/sdk-ui/src/widgets/common/widget-header.d.ts +2 -0
  95. package/dist/useQuery-BYxzPyc5.cjs +870 -0
  96. package/dist/{useQuery-1xZMqnAI.js → useQuery-P9b5LtGq.js} +18768 -17547
  97. package/dist/widget-composer-DPsDPrFM.cjs +237 -0
  98. package/dist/widget-composer-DXM5t9rq.js +614 -0
  99. package/package.json +8 -8
  100. package/dist/packages/sdk-ui/src/dashboard/components/HorizontalCollapse.d.ts +0 -5
  101. package/dist/useQuery-D9rZ58KS.cjs +0 -821
  102. package/dist/widget-composer-B17DVa2A.cjs +0 -101
  103. package/dist/widget-composer-DqjH_6dw.js +0 -448
@@ -0,0 +1,614 @@
1
+ var R = Object.defineProperty;
2
+ var v = Object.getOwnPropertySymbols;
3
+ var _ = Object.prototype.hasOwnProperty, N = Object.prototype.propertyIsEnumerable;
4
+ var E = (e, t, r) => t in e ? R(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, g = (e, t) => {
5
+ for (var r in t || (t = {}))
6
+ _.call(t, r) && E(e, r, t[r]);
7
+ if (v)
8
+ for (var r of v(t))
9
+ N.call(t, r) && E(e, r, t[r]);
10
+ return e;
11
+ };
12
+ import { cX as k, h as j, M as b, T as u, cY as U, cZ as I, a7 as z, ae as K, m as w, c_ as Y, B as J, G as V, aR as C } from "./derive-chart-family-BlFbAr2V.js";
13
+ class M extends k {
14
+ constructor(t, r) {
15
+ var a;
16
+ super((a = t.jaql.title) !== null && a !== void 0 ? a : "", r), this.expression = t.jaql.dim || t.jaql.formula, this.metadataItem = t, t.jaql.agg ? this.aggregation = t.jaql.agg : delete this.aggregation, t.jaql.formula ? this.formula = t.jaql.formula : delete this.formula, t.jaql.sort ? this.sortType = j(t.jaql.sort) : delete this.sortType, this.skipValidation = !0;
17
+ }
18
+ get id() {
19
+ return this.expression;
20
+ }
21
+ jaql() {
22
+ return this.metadataItem;
23
+ }
24
+ }
25
+ const X = {
26
+ text: b.TextAttribute,
27
+ numeric: b.NumericAttribute,
28
+ datetime: b.DateLevel
29
+ };
30
+ function W(e) {
31
+ var t;
32
+ return new M(e, (t = X[e.jaql.datatype]) !== null && t !== void 0 ? t : "numeric");
33
+ }
34
+ const qe = {
35
+ jaql: { datasource: { title: "" }, metadata: [] },
36
+ queryTitle: "",
37
+ chartRecommendations: {}
38
+ }, je = {
39
+ model: "",
40
+ metadata: [],
41
+ chart: {},
42
+ queryTitle: ""
43
+ }, Ie = (e) => "widgetProps" in e, Z = (e) => "dashboardOid" in e && "widgetOid" in e;
44
+ function G(e) {
45
+ return e.replace(/\s+/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
46
+ }
47
+ function Me(e) {
48
+ return e.charAt(0).toUpperCase() + e.slice(1);
49
+ }
50
+ function We(e) {
51
+ const t = /\[(.+?)\s\(Calendar\)\]/;
52
+ return e.replace(t, "[$1]").trim();
53
+ }
54
+ function Le(e) {
55
+ if (e)
56
+ if (e.metadata) {
57
+ if (!e.model)
58
+ throw new u("errors.missingModelTitle");
59
+ } else
60
+ throw new u("errors.missingMetadata");
61
+ else
62
+ throw new u("errors.emptyModel");
63
+ return e;
64
+ }
65
+ function H(e) {
66
+ return !e || !e.jaql.datasource.title || !e.jaql.metadata.length;
67
+ }
68
+ function y(e) {
69
+ return e && e.replace(new RegExp("(?<!\\\\)'", "g"), "\\'");
70
+ }
71
+ function L(e) {
72
+ if (!U.includes(e))
73
+ throw new u("errors.chartTypeNotSupported", { chartType: e });
74
+ }
75
+ const ee = {
76
+ react: {
77
+ baseChartTmpl: `import { {{componentString}} } from '@sisense/sdk-ui';
78
+ {{extraImportsString}}
79
+ import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
80
+
81
+ export default function CodeExample() {
82
+ return (
83
+ <{{componentString}}
84
+ title={'{{titleString}}'}
85
+ dataSource={DM.DataSource}
86
+ chartType={'{{chartTypeString}}'}
87
+ dataOptions={ {{dataOptionsString}} }
88
+ filters={ {{filtersString}} }
89
+ />
90
+ );
91
+ }`,
92
+ chartTmpl: "{{baseChartTmpl}}",
93
+ chartWidgetTmpl: "{{baseChartTmpl}}",
94
+ widgetByIdTmpl: `import { WidgetById } from '@sisense/sdk-ui';
95
+
96
+ const CodeExample = () => {
97
+ return (
98
+ <>
99
+ <WidgetById
100
+ widgetOid="{{widgetOid}}"
101
+ dashboardOid="{{dashboardOid}}"
102
+ includeDashboardFilters={true}
103
+ />
104
+ </>
105
+ );
106
+ };
107
+
108
+ export default CodeExample;
109
+ `,
110
+ executeQueryByWidgetIdTmpl: `import { useExecuteQueryByWidgetId } from '@sisense/sdk-ui';
111
+
112
+ const CodeExample = () => {
113
+ const { data, isLoading, isError } = useExecuteQueryByWidgetId({
114
+ widgetOid: "{{widgetOid}}",
115
+ dashboardOid: "{{dashboardOid}}"
116
+ });
117
+
118
+ if (isLoading) {
119
+ return <div>Loading...</div>;
120
+ }
121
+ if (isError) {
122
+ return <div>Error</div>;
123
+ }
124
+ if (data) {
125
+ return <div>Total Rows: {data.rows.length}</div>;
126
+ }
127
+
128
+ return null;
129
+ };
130
+
131
+ export default CodeExample;
132
+ `,
133
+ executeQueryTmpl: `import { useExecuteQuery } from '@sisense/sdk-ui';
134
+ {{extraImportsString}}
135
+ import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
136
+
137
+ const CodeExample = () => {
138
+ const queryProps = {
139
+ dataSource: DM.DataSource,
140
+ dimensions: {{dimensionsString}},
141
+ measures: {{measuresString}},
142
+ filters: {{filtersString}},
143
+ highlights: {{highlightsString}},
144
+ }
145
+
146
+ const { data, isLoading, isError } = useExecuteQuery(queryProps);
147
+
148
+ if (isLoading) {
149
+ return <div>Loading...</div>;
150
+ }
151
+ if (isError) {
152
+ return <div>Error</div>;
153
+ }
154
+ if (data) {
155
+ return <div>Total Rows: {data.rows.length}</div>;
156
+ }
157
+
158
+ return null;
159
+ };
160
+
161
+ export default CodeExample;
162
+ `
163
+ },
164
+ angular: {
165
+ baseChartTmpl: `import { Component } from '@angular/core';
166
+ {{extraImportsString}}
167
+ import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
168
+
169
+ @Component({
170
+ selector: 'code-example',
171
+ template: \`
172
+ <csdk-chart-widget
173
+ chartType='{{chartTypeString}}'
174
+ [dataSource]='DM.DataSource'
175
+ [dataOptions]='dataOptions'
176
+ [filters]='filters'
177
+ />
178
+ \`
179
+ })
180
+ export class CodeExample {
181
+ DM = DM;
182
+ dataOptions = {{dataOptionsString}};
183
+ filters = {{filtersString}};
184
+ }`,
185
+ chartTmpl: "{{baseChartTmpl}}",
186
+ chartWidgetTmpl: "{{baseChartTmpl}}",
187
+ widgetByIdTmpl: `import { Component } from '@angular/core';
188
+
189
+ @Component({
190
+ selector: 'code-example',
191
+ template: \`
192
+ <csdk-widget-by-id
193
+ [widgetOid]="widgetOid"
194
+ [dashboardOid]="dashboardOid"
195
+ [includeDashboardFilters]="includeDashboardFilters"
196
+ />
197
+ \`,
198
+ })
199
+
200
+ export class CodeExample {
201
+ widgetOid = "{{widgetOid}}";
202
+ dashboardOid = "{{dashboardOid}}";
203
+ includeDashboardFilters = true;
204
+ }`,
205
+ executeQueryByWidgetIdTmpl: `import { Component } from '@angular/core';
206
+ import { QueryService } from '@sisense/sdk-ui-angular';
207
+ import { type QueryResultData } from '@sisense/sdk-data';
208
+
209
+ @Component({
210
+ selector: 'code-example',
211
+ template: '<div>Total Rows: {{ queryResult.rows.length }}</div>',
212
+ })
213
+
214
+ export class CodeExample {
215
+ queryResult: QueryResultData = { rows: [], columns: [] };
216
+
217
+ constructor(private queryService: QueryService) {}
218
+
219
+ async ngOnInit(): Promise<void> {
220
+ const { data } = await this.queryService.executeQueryByWidgetId({
221
+ widgetOid: "{{widgetOid}}",
222
+ dashboardOid: "{{dashboardOid}}",
223
+ });
224
+ this.queryResult = data as QueryResultData;
225
+ }
226
+ }
227
+ `,
228
+ executeQueryTmpl: `import { Component } from '@angular/core';
229
+ {{extraImportsString}}
230
+ import { type QueryResultData } from '@sisense/sdk-data';
231
+ import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
232
+ import { QueryService } from '@sisense/sdk-ui-angular';
233
+
234
+ @Component({
235
+ selector: 'code-example',
236
+ template: '<div>Total Rows: {{ queryResult.rows.length }}</div>',
237
+ })
238
+
239
+ export class CodeExample {
240
+ queryResult: QueryResultData = { rows: [], columns: [] };
241
+
242
+ constructor(private queryService: QueryService) {}
243
+
244
+ async ngOnInit(): Promise<void> {
245
+ const queryProps = {
246
+ dataSource: DM.DataSource,
247
+ dimensions: {{dimensionsString}},
248
+ measures: {{measuresString}},
249
+ filters: {{filtersString}},
250
+ highlights: {{highlightsString}},
251
+ }
252
+ const { data } = await this.queryService.executeQuery(queryProps);
253
+ this.queryResult = data as QueryResultData;
254
+ }
255
+ }
256
+ `
257
+ },
258
+ vue: {
259
+ baseChartTmpl: `<script setup lang="ts">
260
+ import { ref } from 'vue';
261
+ import { {{componentString}} } from '@sisense/sdk-ui-vue';
262
+ {{extraImportsString}}
263
+ import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
264
+
265
+ const dataOptions = ref({{dataOptionsString}});
266
+ const filters = ref({{filtersString}});
267
+ <\/script>
268
+
269
+ <template>
270
+ <{{componentString}}
271
+ chartType="{{chartTypeString}}"
272
+ :dataOptions="dataOptions"
273
+ :filters="filters"
274
+ :dataSource="DM.DataSource"
275
+ title="{{titleString}}" />
276
+ </template>`,
277
+ chartTmpl: "{{baseChartTmpl}}",
278
+ chartWidgetTmpl: "{{baseChartTmpl}}",
279
+ widgetByIdTmpl: `<script setup lang="ts">
280
+ import { WidgetById } from '@sisense/sdk-ui-vue';
281
+ <\/script>
282
+ <template>
283
+ <WidgetById
284
+ :widgetOid="{{widgetOid}}"
285
+ :dashboardOid="{{dashboardOid}}"
286
+ />
287
+ </template>
288
+ `,
289
+ executeQueryByWidgetIdTmpl: `<script setup lang="ts">
290
+ import { useExecuteQueryByWidgetId } from '@sisense/sdk-ui-vue';
291
+
292
+ const { data, isLoading, isError } = useExecuteQueryByWidgetId({
293
+ widgetOid: "{{widgetOid}}",
294
+ dashboardOid: "{{dashboardOid}}"
295
+ });
296
+ <\/script>
297
+ <template>
298
+ <div>
299
+ <div v-if="isLoading">Loading...</div>
300
+ <div v-else-if="isError">Error</div>
301
+ <div v-else-if="data">Total Rows: {{data.rows.length}}</div>
302
+ </div>
303
+ </template>
304
+ `,
305
+ executeQueryTmpl: `<script setup lang="ts">
306
+ import { useExecuteQuery } from '@sisense/sdk-ui-vue';
307
+ {{extraImportsString}}
308
+ import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
309
+
310
+ const queryProps = {
311
+ dataSource: DM.DataSource,
312
+ dimensions: {{dimensionsString}},
313
+ measures: {{measuresString}},
314
+ filters: {{filtersString}},
315
+ highlights: {{highlightsString}},
316
+ }
317
+ const { data, isLoading, isError } = useExecuteQuery(queryProps);
318
+ <\/script>
319
+ <template>
320
+ <div>
321
+ <div v-if="isLoading">Loading...</div>
322
+ <div v-else-if="isError">Error</div>
323
+ <div v-else-if="data">Total Rows: {{data.rows.length}}</div>
324
+ </div>
325
+ </template>`
326
+ }
327
+ }, Q = (e, t) => ee[t][e].replace(
328
+ /{{(.*?)Tmpl}}/g,
329
+ (a, s) => Q(`${s}Tmpl`, t)
330
+ ), te = (e, t) => e.replace(/{{(.*?)}}/g, (r, a) => a in t ? t[a] : (console.warn(`Placeholder ${a} not found in data`), r)), F = (e, t, r = "react") => {
331
+ const a = Q(e, r);
332
+ return te(a, t);
333
+ }, f = `
334
+ `, x = "UNKNOWN", re = (e, t) => {
335
+ let r = "";
336
+ return r += `measureFactory.customFormula(
337
+ `, r += " ".repeat(t), r += ` '${y(e.title)}',
338
+ `, r += " ".repeat(t), r += ` '${e.formula}',
339
+ `, r += " ".repeat(t), r += ` {
340
+ `, Object.entries(e.context).forEach(([a, s]) => {
341
+ const i = I(
342
+ s.table || x,
343
+ s.column || x,
344
+ void 0,
345
+ "DM"
346
+ );
347
+ r += " ".repeat(t), r += ` '${a.slice(1, -1)}': ${i},
348
+ `;
349
+ }), r += " ".repeat(t), r += ` }
350
+ `, r += " ".repeat(t), r += ")", r;
351
+ }, ae = (e, t) => {
352
+ const { level: r, table: a, column: s, agg: i, sort: o, title: l } = e;
353
+ let n;
354
+ return a && s && (n = I(a, s, r, "DM")), i && a && s && l && (n = `measureFactory.${z.aggregationFromJAQL(
355
+ i
356
+ )}(${n}, '${y(l)}')`), o && (n = `{column: ${n}, sortType: '${j(o)}'}`), n ? `${" ".repeat(t)}${n}` : x;
357
+ }, ie = (e, t) => {
358
+ const r = e.jaql().jaql;
359
+ return "formula" in r ? re(r, t) : f + ae(r, t);
360
+ }, h = (e, t = 0, r = !1) => {
361
+ if (!e)
362
+ return "";
363
+ if (typeof e == "string")
364
+ return `'${y(e)}'`;
365
+ if (e instanceof M)
366
+ return ie(e, t);
367
+ let a = "";
368
+ return Array.isArray(e) ? a += `[${e.map((s) => h(s, t + 2))}${e.length ? f + " ".repeat(t + 2) : ""}]` : (a += `{${f}`, Object.entries(e).forEach(([s, i]) => {
369
+ r && (s = `'${y(s)}'`), a += " ".repeat(t + 2), Array.isArray(i) ? a += `${s}: [${i.map((o) => h(o, t + 4, r))}${i.length ? f + " ".repeat(t + 2) : ""}]` : typeof i == "object" ? a += `${s}: ${h(i, t + 2, r)}` : ["number", "boolean", "undefined", null].includes(typeof i) ? a += `${s}: ${i}` : a += `${s}: '${y(i)}'`, a += `,${f}`;
370
+ }), a += " ".repeat(t), a += "}"), a;
371
+ };
372
+ function se(e) {
373
+ return h(e, 2);
374
+ }
375
+ function oe(e) {
376
+ if (!e)
377
+ throw new u("errors.undefinedDataSource");
378
+ let t;
379
+ return typeof e == "object" && "title" in e ? t = e.title : t = e, G(t);
380
+ }
381
+ function ne(e) {
382
+ const t = ["measureFactory"];
383
+ return Array.isArray(e) && e.length > 0 && t.push("filterFactory"), `import { ${t.join(", ")} } from '@sisense/sdk-data';`;
384
+ }
385
+ const D = `
386
+ `, le = (e, t) => {
387
+ if (e.composeCode)
388
+ return `${D}${" ".repeat(t)}${e.composeCode}`;
389
+ const r = e.jaql().jaql;
390
+ return `${D}${" ".repeat(t)}filterFactory.customFilter(${h(
391
+ r,
392
+ t,
393
+ !0
394
+ )})`;
395
+ }, de = (e, t = 0) => {
396
+ if (!e)
397
+ return "";
398
+ let r = "";
399
+ return r += `[${e.map((a) => le(a, t + 2))}${e.length ? `
400
+ ` + " ".repeat(t + 2) : ""}]`, r;
401
+ }, ue = (e) => {
402
+ if (!e)
403
+ return "";
404
+ if (Array.isArray(e))
405
+ return de(e, 2);
406
+ throw new u("errors.filterRelationsNotSupported");
407
+ }, ce = ["executeQueryByWidgetIdTmpl", "widgetByIdTmpl"], pe = "chartWidgetTmpl", me = (e) => e, ge = (e, t, r) => {
408
+ const a = {
409
+ titleString: e.title,
410
+ dataSourceString: oe(e.dataSource),
411
+ chartTypeString: me(e.chartType),
412
+ dataOptionsString: se(e.dataOptions),
413
+ filtersString: ue(e.filters),
414
+ componentString: "ChartWidget",
415
+ extraImportsString: ne(e.filters || [])
416
+ };
417
+ return F(r, a, t);
418
+ }, fe = ({
419
+ dashboardOid: e,
420
+ widgetOid: t,
421
+ uiFramework: r = "react",
422
+ chartType: a = "table",
423
+ includeChart: s = !0
424
+ }) => {
425
+ L(a);
426
+ const i = { dashboardOid: e, widgetOid: t }, o = ce[Number(s)];
427
+ return F(o, i, r);
428
+ }, ye = ({
429
+ widgetProps: e,
430
+ uiFramework: t = "react"
431
+ }) => {
432
+ if (K(e))
433
+ return L(e.chartType), ge(e, t, pe);
434
+ throw new u("errors.otherWidgetTypesNotSupported");
435
+ }, he = (e) => ({
436
+ dataOptions: { columns: e.map(W) }
437
+ }), Se = Object.freeze({
438
+ convolution: {
439
+ enabled: !0,
440
+ selectedConvolutionType: "bySlicesCount",
441
+ independentSlicesCount: 7
442
+ },
443
+ lineWidth: { width: "bold" },
444
+ markers: {
445
+ enabled: !1
446
+ },
447
+ legend: {
448
+ enabled: !1
449
+ },
450
+ yAxis: {
451
+ gridLines: !1
452
+ },
453
+ xAxis: {
454
+ gridLines: !1
455
+ }
456
+ }), $ = Object.freeze({
457
+ line: "line/spline",
458
+ pie: "pie/donut",
459
+ bar: "bar/stacked",
460
+ column: "column/stackedcolumn"
461
+ }), Te = (e, t) => {
462
+ const { axesMapping: r = {}, chartFamily: a } = t, s = e.reduce((o, l) => (o[l.jaql.title] = l, o), {}), i = Object.entries(r).reduce((o, l) => {
463
+ const [n, p] = l;
464
+ return o[`${n}`] = Array.isArray(p) ? p.map((m) => {
465
+ var S, T;
466
+ const d = s[m.name];
467
+ if (!d)
468
+ return { column: { type: "", name: m.name } };
469
+ const c = W(d);
470
+ if (d.panel === "measures")
471
+ return {
472
+ column: c,
473
+ sortType: "sortNone"
474
+ };
475
+ if (J(c.type)) {
476
+ const O = (T = (S = d.format) == null ? void 0 : S.mask) == null ? void 0 : T[d.jaql.level];
477
+ if (O)
478
+ return {
479
+ column: c,
480
+ dateFormat: O
481
+ };
482
+ }
483
+ return c;
484
+ }) : p, o;
485
+ }, {});
486
+ switch (a) {
487
+ case "cartesian":
488
+ return g({
489
+ category: [],
490
+ value: [],
491
+ breakBy: []
492
+ }, i);
493
+ case "categorical":
494
+ return g({
495
+ category: [],
496
+ value: []
497
+ }, i);
498
+ case "scatter":
499
+ return Object.keys(i).forEach((o) => {
500
+ i[`${o}`] = i[`${o}`][0];
501
+ }), i;
502
+ case "scattermap":
503
+ return Object.keys(i).forEach((o) => {
504
+ o !== "geo" && (i[`${o}`] = i[`${o}`][0]);
505
+ }), i;
506
+ case "table":
507
+ return Object.keys(i).length === 0 ? he(e).dataOptions : i;
508
+ case "boxplot":
509
+ case "areamap":
510
+ case "indicator":
511
+ default:
512
+ return i;
513
+ }
514
+ }, q = (e, t) => {
515
+ var r, a, s, i;
516
+ return t === "x" ? (a = (r = e.axesMapping.category) != null ? r : e.axesMapping.x) == null ? void 0 : a.map((o) => o.name).join(", ") : (i = (s = e.axesMapping.value) != null ? s : e.axesMapping.y) == null ? void 0 : i.map((o) => o.name).join(", ");
517
+ }, Oe = (e, t, r = !0) => {
518
+ const a = Te(e, t);
519
+ let s;
520
+ return r && t.chartType in $ ? s = w(
521
+ w(Se, {
522
+ subtype: $[t.chartType]
523
+ }),
524
+ {
525
+ legend: {
526
+ enabled: !0,
527
+ position: "right"
528
+ },
529
+ yAxis: {
530
+ title: {
531
+ enabled: !0,
532
+ text: q(t, "y")
533
+ }
534
+ },
535
+ xAxis: {
536
+ title: {
537
+ enabled: !0,
538
+ text: q(t, "x")
539
+ }
540
+ }
541
+ }
542
+ ) : s = Y(), {
543
+ dataOptions: a,
544
+ chartStyleOptions: s
545
+ };
546
+ }, be = (e) => "chartType" in e ? e : {
547
+ chartType: "table",
548
+ chartFamily: "table",
549
+ axesMapping: {}
550
+ }, xe = (e) => e.map((t) => V(t.jaql)), ve = (e) => e.reduce(
551
+ (t, r) => {
552
+ if ((r.panel === "scope" || r.jaql.filter) && t.metadataFilters.push(C(r)), r.panel !== "scope") {
553
+ const a = C(r);
554
+ delete a.jaql.filter, t.metadataColumns.push(a);
555
+ }
556
+ return t;
557
+ },
558
+ { metadataColumns: [], metadataFilters: [] }
559
+ ), Ee = (e, t) => {
560
+ if (!H(e))
561
+ try {
562
+ const { useCustomizedStyleOptions: r = !1 } = t || {}, { jaql: a, chartRecommendations: s, queryTitle: i } = e, {
563
+ metadata: o,
564
+ datasource: { title: l, id: n, type: p = "elasticube" }
565
+ } = a, m = be(s), d = m.chartType.toLowerCase(), c = {
566
+ cornerRadius: "Small",
567
+ header: {
568
+ // remove info button and render empty toolbar instead
569
+ renderToolbar: () => null
570
+ }
571
+ }, { metadataColumns: S, metadataFilters: T } = ve(o), O = xe(T), { dataOptions: A, chartStyleOptions: B } = Oe(
572
+ S,
573
+ m,
574
+ r
575
+ ), P = g(g({}, B), c);
576
+ return {
577
+ widgetType: "chart",
578
+ id: i,
579
+ title: i,
580
+ chartType: d,
581
+ dataSource: {
582
+ title: l,
583
+ id: n,
584
+ type: p
585
+ },
586
+ dataOptions: A,
587
+ filters: O,
588
+ styleOptions: P
589
+ };
590
+ } catch (r) {
591
+ console.error(r);
592
+ return;
593
+ }
594
+ }, we = (e, t) => Ee(e, t), Ce = (e) => Z(e) ? fe(e) : ye(e), Qe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
595
+ __proto__: null,
596
+ toWidgetCode: Ce,
597
+ toWidgetProps: we
598
+ }, Symbol.toStringTag, { value: "Module" }));
599
+ export {
600
+ je as E,
601
+ oe as a,
602
+ ue as b,
603
+ Me as c,
604
+ ne as d,
605
+ qe as e,
606
+ Z as f,
607
+ F as g,
608
+ Ie as i,
609
+ te as p,
610
+ We as s,
611
+ we as t,
612
+ Le as v,
613
+ Qe as w
614
+ };
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "Sisense",
12
12
  "Compose SDK"
13
13
  ],
14
- "version": "1.23.0",
14
+ "version": "1.25.0",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -53,12 +53,12 @@
53
53
  "@emotion/styled": "^11.10.5",
54
54
  "@mui/material": "^5.16.7",
55
55
  "@mui/system": "^5.16.7",
56
- "@sisense/sdk-common": "^1.23.0",
57
- "@sisense/sdk-data": "^1.23.0",
58
- "@sisense/sdk-pivot-client": "^1.23.0",
59
- "@sisense/sdk-query-client": "^1.23.0",
60
- "@sisense/sdk-rest-client": "^1.23.0",
61
- "@sisense/sdk-tracking": "^1.23.0",
56
+ "@sisense/sdk-common": "^1.25.0",
57
+ "@sisense/sdk-data": "^1.25.0",
58
+ "@sisense/sdk-pivot-client": "^1.25.0",
59
+ "@sisense/sdk-query-client": "^1.25.0",
60
+ "@sisense/sdk-rest-client": "^1.25.0",
61
+ "@sisense/sdk-tracking": "^1.25.0",
62
62
  "@sisense/sisense-charts": "5.1.1",
63
63
  "@tanstack/react-query": "4.36.1",
64
64
  "classnames": "^2.3.2",
@@ -91,7 +91,7 @@
91
91
  "type-check": "tsc --noEmit",
92
92
  "build": "run type-check && vite build --mode development",
93
93
  "build:prod": "run type-check && vite build",
94
- "clean": "rm -rf ./dist && rm -rf ./coverage && rm -rf tsconfig.tsbuildinfo",
94
+ "clean": "rm -rf ./dist && rm -rf ./coverage && rm -rf tsconfig.tsbuildinfo && rm -rf node_modules/.vite/deps",
95
95
  "lint": "eslint . --fix",
96
96
  "format": "prettier --write .",
97
97
  "format:check": "prettier --check .",
@@ -1,5 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export declare const HorizontalCollapse: ({ collapsedOnInit, children, }: {
3
- collapsedOnInit?: boolean | undefined;
4
- children: ReactNode;
5
- }) => import("react/jsx-runtime").JSX.Element;