@sisense/sdk-ui 1.24.0 → 1.26.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.
- package/dist/ai.cjs +54 -52
- package/dist/ai.js +997 -844
- package/dist/analytics-composer.cjs +45 -45
- package/dist/analytics-composer.js +567 -536
- package/dist/derive-chart-family-DOmv279l.cjs +271 -0
- package/dist/derive-chart-family-ZvvF5lty.js +44444 -0
- package/dist/index.cjs +112 -132
- package/dist/index.js +8146 -7238
- package/dist/packages/sdk-ui/src/ai/api/types.d.ts +6 -1
- package/dist/packages/sdk-ui/src/ai/chat-config.d.ts +4 -2
- package/dist/packages/sdk-ui/src/ai/icons/close-dialog-icon.d.ts +3 -1
- package/dist/packages/sdk-ui/src/ai/icons/sisense-logo.d.ts +2 -4
- package/dist/packages/sdk-ui/src/ai/use-chat-session.d.ts +2 -1
- package/dist/packages/sdk-ui/src/analytics-composer/common/stringify-props.d.ts +5 -0
- package/dist/packages/sdk-ui/src/analytics-composer/common/utils.d.ts +1 -1
- package/dist/packages/sdk-ui/src/analytics-composer/execute-query/execute-query-composer.d.ts +15 -0
- package/dist/packages/sdk-ui/src/analytics-composer/execute-query/to-execute-query-code.d.ts +3 -0
- package/dist/packages/sdk-ui/src/analytics-composer/index.d.ts +5 -0
- package/dist/packages/sdk-ui/src/analytics-composer/types.d.ts +15 -2
- package/dist/packages/sdk-ui/src/analytics-composer/widget/to-widget-code.d.ts +1 -1
- package/dist/packages/sdk-ui/src/api/rest-api.d.ts +26 -2
- package/dist/packages/sdk-ui/src/api/types/dashboard-dto.d.ts +9 -4
- package/dist/packages/sdk-ui/src/chart/helpers/use-synced-data.d.ts +14 -1
- package/dist/packages/sdk-ui/src/chart-data-processor/data-table-date-period.d.ts +1 -4
- package/dist/packages/sdk-ui/src/common-filters/cascading-utils.d.ts +3 -1
- package/dist/packages/sdk-ui/src/common-filters/common-filters-connector.d.ts +4 -3
- package/dist/packages/sdk-ui/src/common-filters/types.d.ts +25 -0
- package/dist/packages/sdk-ui/src/common-filters/use-common-filters.d.ts +8 -9
- package/dist/packages/sdk-ui/src/common-filters/use-convert-filter-relations.d.ts +26 -0
- package/dist/packages/sdk-ui/src/dashboard/dashboard-helpers.d.ts +40 -10
- package/dist/packages/sdk-ui/src/dashboard/dashboard.d.ts +2 -2
- package/dist/packages/sdk-ui/src/dashboard/types.d.ts +5 -5
- package/dist/packages/sdk-ui/src/dashboard/use-composed-dashboard.d.ts +4 -4
- package/dist/packages/sdk-ui/src/filters/components/filters-panel/filters-panel.d.ts +3 -3
- package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/member-list.d.ts +1 -1
- package/dist/packages/sdk-ui/src/filters/helpers.d.ts +122 -0
- package/dist/packages/sdk-ui/src/filters/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/models/dashboard/dashboard-model.d.ts +2 -2
- package/dist/packages/sdk-ui/src/models/dashboard/get-dashboard-model.d.ts +2 -1
- package/dist/packages/sdk-ui/src/models/dashboard/translate-dashboard-dto-utils.d.ts +1 -1
- package/dist/packages/sdk-ui/src/models/dashboard/translate-dashboard-utils.d.ts +11 -3
- package/dist/packages/sdk-ui/src/models/dashboard/types.d.ts +3 -0
- package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-model-reducer.d.ts +2 -2
- package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-model.d.ts +2 -0
- package/dist/packages/sdk-ui/src/query/date-formats/apply-date-format.d.ts +1 -0
- package/dist/packages/sdk-ui/src/query-execution/utils.d.ts +3 -0
- package/dist/packages/sdk-ui/src/utils/extract-widget-ids.d.ts +2 -0
- package/dist/packages/sdk-ui/src/utils/filter-relations.d.ts +64 -0
- package/dist/packages/sdk-ui/src/utils/filters-comparator.d.ts +5 -0
- package/dist/packages/sdk-ui/src/utils/filters.d.ts +0 -1
- package/dist/packages/sdk-ui/src/widget-by-id/translate-dashboard-filters.d.ts +178 -178
- package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-filters.d.ts +17 -17
- package/dist/packages/sdk-ui/src/widget-by-id/types.d.ts +14 -2
- package/dist/packages/sdk-ui/src/widget-by-id/use-get-dashboard-model-and-widget-model.d.ts +13 -0
- package/dist/packages/sdk-ui/src/widget-by-id/utils.d.ts +4 -4
- package/dist/useQuery-9lk4MNnb.cjs +889 -0
- package/dist/useQuery-BtpTzoxI.js +81219 -0
- package/dist/widget-composer-DbpSzSub.cjs +298 -0
- package/dist/{widget-composer-L8kmRhgX.js → widget-composer-ygehKLLR.js} +232 -163
- package/package.json +8 -8
- package/dist/useQuery-CIeSzN0Z.js +0 -7945
- package/dist/useQuery-LqaaNBLw.cjs +0 -175
- package/dist/widget-composer-CvgsMHyb.cjs +0 -237
- package/dist/widget-model-translator-CYeCKnTa.js +0 -116687
- package/dist/widget-model-translator-_Z-8UaTN.cjs +0 -917
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _ = Object.defineProperty;
|
|
2
2
|
var E = Object.getOwnPropertySymbols;
|
|
3
|
-
var
|
|
4
|
-
var w = (e, t, r) => t in e ?
|
|
3
|
+
var R = Object.prototype.hasOwnProperty, K = Object.prototype.propertyIsEnumerable;
|
|
4
|
+
var w = (e, t, r) => t in e ? _(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, f = (e, t) => {
|
|
5
5
|
for (var r in t || (t = {}))
|
|
6
|
-
|
|
6
|
+
R.call(t, r) && w(e, r, t[r]);
|
|
7
7
|
if (E)
|
|
8
8
|
for (var r of E(t))
|
|
9
|
-
|
|
9
|
+
K.call(t, r) && w(e, r, t[r]);
|
|
10
10
|
return e;
|
|
11
11
|
};
|
|
12
|
-
import {
|
|
13
|
-
class
|
|
12
|
+
import { cZ as U, h as I, M as x, T as u, c_ as Y, c$ as W, a9 as z, ag as J, ae as V, m as C, d0 as Z, J as H, B as X, aT as D } from "./derive-chart-family-ZvvF5lty.js";
|
|
13
|
+
class Q extends U {
|
|
14
14
|
constructor(t, r) {
|
|
15
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 =
|
|
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 = I(t.jaql.sort) : delete this.sortType, this.skipValidation = !0;
|
|
17
17
|
}
|
|
18
18
|
get id() {
|
|
19
19
|
return this.expression;
|
|
@@ -22,36 +22,36 @@ class M extends K {
|
|
|
22
22
|
return this.metadataItem;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
const
|
|
26
|
-
text:
|
|
27
|
-
numeric:
|
|
28
|
-
datetime:
|
|
25
|
+
const G = {
|
|
26
|
+
text: x.TextAttribute,
|
|
27
|
+
numeric: x.NumericAttribute,
|
|
28
|
+
datetime: x.DateLevel
|
|
29
29
|
};
|
|
30
|
-
function
|
|
30
|
+
function P(e) {
|
|
31
31
|
var t;
|
|
32
|
-
return new
|
|
32
|
+
return new Q(e, (t = G[e.jaql.datatype]) !== null && t !== void 0 ? t : "numeric");
|
|
33
33
|
}
|
|
34
|
-
const
|
|
34
|
+
const We = {
|
|
35
35
|
jaql: { datasource: { title: "" }, metadata: [] },
|
|
36
36
|
queryTitle: "",
|
|
37
37
|
chartRecommendations: {}
|
|
38
|
-
},
|
|
38
|
+
}, Qe = {
|
|
39
39
|
model: "",
|
|
40
40
|
metadata: [],
|
|
41
41
|
chart: {},
|
|
42
42
|
queryTitle: ""
|
|
43
|
-
},
|
|
44
|
-
function
|
|
43
|
+
}, Pe = (e) => "widgetProps" in e, ee = (e) => "dashboardOid" in e && "widgetOid" in e;
|
|
44
|
+
function te(e) {
|
|
45
45
|
return e.replace(/\s+/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
|
|
46
46
|
}
|
|
47
47
|
function Le(e) {
|
|
48
48
|
return e.charAt(0).toUpperCase() + e.slice(1);
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function je(e) {
|
|
51
51
|
const t = /\[(.+?)\s\(Calendar\)\]/;
|
|
52
52
|
return e.replace(t, "[$1]").trim();
|
|
53
53
|
}
|
|
54
|
-
function
|
|
54
|
+
function Ae(e) {
|
|
55
55
|
if (e)
|
|
56
56
|
if (e.metadata) {
|
|
57
57
|
if (!e.model)
|
|
@@ -62,17 +62,17 @@ function Fe(e) {
|
|
|
62
62
|
throw new u("errors.emptyModel");
|
|
63
63
|
return e;
|
|
64
64
|
}
|
|
65
|
-
function
|
|
65
|
+
function re(e) {
|
|
66
66
|
return !e || !e.jaql.datasource.title || !e.jaql.metadata.length;
|
|
67
67
|
}
|
|
68
|
-
function
|
|
68
|
+
function h(e) {
|
|
69
69
|
return e && e.replace(new RegExp("(?<!\\\\)'", "g"), "\\'");
|
|
70
70
|
}
|
|
71
71
|
function L(e) {
|
|
72
|
-
if (!Y.includes(e))
|
|
72
|
+
if (![...Y, "pivot", "pivot2"].includes(e))
|
|
73
73
|
throw new u("errors.chartTypeNotSupported", { chartType: e });
|
|
74
74
|
}
|
|
75
|
-
const
|
|
75
|
+
const ae = {
|
|
76
76
|
react: {
|
|
77
77
|
baseChartTmpl: `import { {{componentString}} } from '@sisense/sdk-ui';
|
|
78
78
|
{{extraImportsString}}
|
|
@@ -110,7 +110,7 @@ export default CodeExample;
|
|
|
110
110
|
executeQueryByWidgetIdTmpl: `import { useExecuteQueryByWidgetId } from '@sisense/sdk-ui';
|
|
111
111
|
|
|
112
112
|
const CodeExample = () => {
|
|
113
|
-
const { data, isLoading, isError } = useExecuteQueryByWidgetId({
|
|
113
|
+
const { data, isLoading, isError, error } = useExecuteQueryByWidgetId({
|
|
114
114
|
widgetOid: "{{widgetOid}}",
|
|
115
115
|
dashboardOid: "{{dashboardOid}}"
|
|
116
116
|
});
|
|
@@ -119,7 +119,7 @@ const CodeExample = () => {
|
|
|
119
119
|
return <div>Loading...</div>;
|
|
120
120
|
}
|
|
121
121
|
if (isError) {
|
|
122
|
-
return <div>Error</div>;
|
|
122
|
+
return <div>Error: {error.message}</div>;
|
|
123
123
|
}
|
|
124
124
|
if (data) {
|
|
125
125
|
return <div>Total Rows: {data.rows.length}</div>;
|
|
@@ -130,7 +130,7 @@ const CodeExample = () => {
|
|
|
130
130
|
|
|
131
131
|
export default CodeExample;
|
|
132
132
|
`,
|
|
133
|
-
|
|
133
|
+
executeQueryTmpl: `import { useExecuteQuery } from '@sisense/sdk-ui';
|
|
134
134
|
{{extraImportsString}}
|
|
135
135
|
import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
|
|
136
136
|
|
|
@@ -143,13 +143,13 @@ const CodeExample = () => {
|
|
|
143
143
|
highlights: {{highlightsString}},
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
-
const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
146
|
+
const { data, isLoading, isError, error } = useExecuteQuery(queryProps);
|
|
147
147
|
|
|
148
148
|
if (isLoading) {
|
|
149
149
|
return <div>Loading...</div>;
|
|
150
150
|
}
|
|
151
151
|
if (isError) {
|
|
152
|
-
return <div>Error</div>;
|
|
152
|
+
return <div>Error: {error.message}</div>;
|
|
153
153
|
}
|
|
154
154
|
if (data) {
|
|
155
155
|
return <div>Total Rows: {data.rows.length}</div>;
|
|
@@ -159,7 +159,47 @@ const CodeExample = () => {
|
|
|
159
159
|
};
|
|
160
160
|
|
|
161
161
|
export default CodeExample;
|
|
162
|
-
|
|
162
|
+
`,
|
|
163
|
+
executePivotQueryTmpl: `import { useExecutePivotQuery, ExecutePivotQueryParams } from '@sisense/sdk-ui';
|
|
164
|
+
import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
|
|
165
|
+
|
|
166
|
+
const CodeExample = () => {
|
|
167
|
+
const pivotQueryProps: ExecutePivotQueryParams = {
|
|
168
|
+
dataSource: DM.DataSource,
|
|
169
|
+
rows: {{rowsString}},
|
|
170
|
+
values: {{valuesString}},
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const { data, isLoading, isError, error } = useExecutePivotQuery(pivotQueryProps);
|
|
174
|
+
|
|
175
|
+
if (isLoading) {
|
|
176
|
+
return <div>Loading...</div>;
|
|
177
|
+
}
|
|
178
|
+
if (isError) {
|
|
179
|
+
return <div>Error: {error.message}</div>;
|
|
180
|
+
}
|
|
181
|
+
if (data) {
|
|
182
|
+
return <div>Total Rows: {data.rows.length}</div>;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return null;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export default CodeExample;
|
|
189
|
+
`,
|
|
190
|
+
pivotTableWidgetTmpl: `import { {{componentString}} } from '@sisense/sdk-ui';
|
|
191
|
+
{{extraImportsString}}
|
|
192
|
+
import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
|
|
193
|
+
|
|
194
|
+
export default function CodeExample() {
|
|
195
|
+
return (
|
|
196
|
+
<{{componentString}}
|
|
197
|
+
title={'{{titleString}}'}
|
|
198
|
+
dataSource={DM.DataSource}
|
|
199
|
+
dataOptions={ {{dataOptionsString}} }
|
|
200
|
+
/>
|
|
201
|
+
);
|
|
202
|
+
}`
|
|
163
203
|
},
|
|
164
204
|
angular: {
|
|
165
205
|
baseChartTmpl: `import { Component } from '@angular/core';
|
|
@@ -208,24 +248,35 @@ import { type QueryResultData } from '@sisense/sdk-data';
|
|
|
208
248
|
|
|
209
249
|
@Component({
|
|
210
250
|
selector: 'code-example',
|
|
211
|
-
template:
|
|
251
|
+
template: \`<div>
|
|
252
|
+
<div *ngIf="errorMessage">Error: {{ errorMessage }}</div>
|
|
253
|
+
<div *ngIf="!errorMessage">Total Rows: {{ queryResult.rows.length }}</div>
|
|
254
|
+
</div>\`,
|
|
212
255
|
})
|
|
213
256
|
|
|
214
257
|
export class CodeExample {
|
|
215
258
|
queryResult: QueryResultData = { rows: [], columns: [] };
|
|
216
259
|
|
|
260
|
+
errorMessage: string | null = null;
|
|
261
|
+
|
|
217
262
|
constructor(private queryService: QueryService) {}
|
|
218
263
|
|
|
219
264
|
async ngOnInit(): Promise<void> {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
265
|
+
try {
|
|
266
|
+
const { data } = await this.queryService.executeQueryByWidgetId({
|
|
267
|
+
widgetOid: "{{widgetOid}}",
|
|
268
|
+
dashboardOid: "{{dashboardOid}}",
|
|
269
|
+
});
|
|
270
|
+
this.queryResult = data as QueryResultData;
|
|
271
|
+
} catch(error: unknown) {
|
|
272
|
+
if (error instanceof Error) {
|
|
273
|
+
this.errorMessage = error.message;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
225
276
|
}
|
|
226
277
|
}
|
|
227
278
|
`,
|
|
228
|
-
|
|
279
|
+
executeQueryTmpl: `import { Component } from '@angular/core';
|
|
229
280
|
{{extraImportsString}}
|
|
230
281
|
import { type QueryResultData } from '@sisense/sdk-data';
|
|
231
282
|
import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
|
|
@@ -233,12 +284,17 @@ import { QueryService } from '@sisense/sdk-ui-angular';
|
|
|
233
284
|
|
|
234
285
|
@Component({
|
|
235
286
|
selector: 'code-example',
|
|
236
|
-
template:
|
|
287
|
+
template: \`<div>
|
|
288
|
+
<div *ngIf="errorMessage">Error: {{ errorMessage }}</div>
|
|
289
|
+
<div *ngIf="!errorMessage">Total Rows: {{ queryResult.rows.length }}</div>
|
|
290
|
+
</div>\`,
|
|
237
291
|
})
|
|
238
292
|
|
|
239
293
|
export class CodeExample {
|
|
240
294
|
queryResult: QueryResultData = { rows: [], columns: [] };
|
|
241
295
|
|
|
296
|
+
errorMessage: string | null = null;
|
|
297
|
+
|
|
242
298
|
constructor(private queryService: QueryService) {}
|
|
243
299
|
|
|
244
300
|
async ngOnInit(): Promise<void> {
|
|
@@ -249,11 +305,20 @@ export class CodeExample {
|
|
|
249
305
|
filters: {{filtersString}},
|
|
250
306
|
highlights: {{highlightsString}},
|
|
251
307
|
}
|
|
252
|
-
|
|
253
|
-
|
|
308
|
+
|
|
309
|
+
try {
|
|
310
|
+
const { data } = await this.queryService.executeQuery(queryProps);
|
|
311
|
+
this.queryResult = data as QueryResultData;
|
|
312
|
+
} catch (error: unknown) {
|
|
313
|
+
if (error instanceof Error) {
|
|
314
|
+
this.errorMessage = error.message;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
254
317
|
}
|
|
255
318
|
}
|
|
256
|
-
|
|
319
|
+
`,
|
|
320
|
+
executePivotQueryTmpl: "Not implemented yet",
|
|
321
|
+
pivotTableWidgetTmpl: "Not implemented yet"
|
|
257
322
|
},
|
|
258
323
|
vue: {
|
|
259
324
|
baseChartTmpl: `<script setup lang="ts">
|
|
@@ -289,7 +354,7 @@ import { WidgetById } from '@sisense/sdk-ui-vue';
|
|
|
289
354
|
executeQueryByWidgetIdTmpl: `<script setup lang="ts">
|
|
290
355
|
import { useExecuteQueryByWidgetId } from '@sisense/sdk-ui-vue';
|
|
291
356
|
|
|
292
|
-
const { data, isLoading, isError } = useExecuteQueryByWidgetId({
|
|
357
|
+
const { data, isLoading, isError, error } = useExecuteQueryByWidgetId({
|
|
293
358
|
widgetOid: "{{widgetOid}}",
|
|
294
359
|
dashboardOid: "{{dashboardOid}}"
|
|
295
360
|
});
|
|
@@ -297,12 +362,12 @@ const { data, isLoading, isError } = useExecuteQueryByWidgetId({
|
|
|
297
362
|
<template>
|
|
298
363
|
<div>
|
|
299
364
|
<div v-if="isLoading">Loading...</div>
|
|
300
|
-
<div v-else-if="isError">Error</div>
|
|
365
|
+
<div v-else-if="isError">Error: {{error.message}}</div>
|
|
301
366
|
<div v-else-if="data">Total Rows: {{data.rows.length}}</div>
|
|
302
367
|
</div>
|
|
303
368
|
</template>
|
|
304
369
|
`,
|
|
305
|
-
|
|
370
|
+
executeQueryTmpl: `<script setup lang="ts">
|
|
306
371
|
import { useExecuteQuery } from '@sisense/sdk-ui-vue';
|
|
307
372
|
{{extraImportsString}}
|
|
308
373
|
import * as DM from './{{dataSourceString}}'; // generated with @sisense/sdk-cli
|
|
@@ -314,33 +379,35 @@ const queryProps = {
|
|
|
314
379
|
filters: {{filtersString}},
|
|
315
380
|
highlights: {{highlightsString}},
|
|
316
381
|
}
|
|
317
|
-
const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
382
|
+
const { data, isLoading, isError, error } = useExecuteQuery(queryProps);
|
|
318
383
|
<\/script>
|
|
319
384
|
<template>
|
|
320
385
|
<div>
|
|
321
386
|
<div v-if="isLoading">Loading...</div>
|
|
322
|
-
<div v-else-if="isError">Error</div>
|
|
387
|
+
<div v-else-if="isError">Error: {{error.message}}</div>
|
|
323
388
|
<div v-else-if="data">Total Rows: {{data.rows.length}}</div>
|
|
324
389
|
</div>
|
|
325
|
-
</template
|
|
390
|
+
</template>`,
|
|
391
|
+
executePivotQueryTmpl: "Not implemented yet",
|
|
392
|
+
pivotTableWidgetTmpl: "Not implemented yet"
|
|
326
393
|
}
|
|
327
|
-
},
|
|
394
|
+
}, j = (e, t) => ae[t][e].replace(
|
|
328
395
|
/{{(.*?)Tmpl}}/g,
|
|
329
|
-
(a, s) =>
|
|
330
|
-
),
|
|
331
|
-
const a =
|
|
332
|
-
return
|
|
333
|
-
},
|
|
334
|
-
`,
|
|
396
|
+
(a, s) => j(`${s}Tmpl`, t)
|
|
397
|
+
), ie = (e, t) => e.replace(/{{(.*?)}}/g, (r, a) => a in t ? t[a] : (console.warn(`Placeholder ${a} not found in data`), r)), b = (e, t, r = "react") => {
|
|
398
|
+
const a = j(e, r);
|
|
399
|
+
return ie(a, t);
|
|
400
|
+
}, y = `
|
|
401
|
+
`, O = "UNKNOWN", se = (e, t) => {
|
|
335
402
|
let r = "";
|
|
336
403
|
return r += `measureFactory.customFormula(
|
|
337
|
-
`, r += " ".repeat(t), r += ` '${
|
|
404
|
+
`, r += " ".repeat(t), r += ` '${h(e.title)}',
|
|
338
405
|
`, r += " ".repeat(t), r += ` '${e.formula}',
|
|
339
406
|
`, r += " ".repeat(t), r += ` {
|
|
340
407
|
`, Object.entries(e.context).forEach(([a, s]) => {
|
|
341
|
-
const i =
|
|
342
|
-
s.table ||
|
|
343
|
-
s.column ||
|
|
408
|
+
const i = W(
|
|
409
|
+
s.table || O,
|
|
410
|
+
s.column || O,
|
|
344
411
|
void 0,
|
|
345
412
|
"DM"
|
|
346
413
|
);
|
|
@@ -348,83 +415,82 @@ const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
|
348
415
|
`;
|
|
349
416
|
}), r += " ".repeat(t), r += ` }
|
|
350
417
|
`, r += " ".repeat(t), r += ")", r;
|
|
351
|
-
},
|
|
418
|
+
}, oe = (e, t) => {
|
|
352
419
|
const { level: r, table: a, column: s, agg: i, sort: o, title: l } = e;
|
|
353
420
|
let n;
|
|
354
|
-
return a && s && (n =
|
|
421
|
+
return a && s && (n = W(a, s, r, "DM")), i && a && s && l && (n = `measureFactory.${z.aggregationFromJAQL(
|
|
355
422
|
i
|
|
356
|
-
)}(${n}, '${
|
|
357
|
-
},
|
|
423
|
+
)}(${n}, '${h(l)}')`), o && (n = `{column: ${n}, sortType: '${I(o)}'}`), n ? `${" ".repeat(t)}${n}` : O;
|
|
424
|
+
}, ne = (e, t) => {
|
|
358
425
|
const r = e.jaql().jaql;
|
|
359
|
-
return "formula" in r ?
|
|
360
|
-
},
|
|
426
|
+
return "formula" in r ? se(r, t) : y + oe(r, t);
|
|
427
|
+
}, p = (e, t = 0, r = !1) => {
|
|
361
428
|
if (!e)
|
|
362
429
|
return "";
|
|
363
430
|
if (typeof e == "string")
|
|
364
|
-
return `'${
|
|
365
|
-
if (e instanceof
|
|
366
|
-
return
|
|
431
|
+
return `'${h(e)}'`;
|
|
432
|
+
if (e instanceof Q)
|
|
433
|
+
return ne(e, t);
|
|
367
434
|
let a = "";
|
|
368
|
-
return Array.isArray(e) ? a += `[${e.map((s) =>
|
|
369
|
-
r && (s = `'${
|
|
435
|
+
return Array.isArray(e) ? a += `[${e.map((s) => p(s, t + 2))}${e.length ? y + " ".repeat(t + 2) : ""}]` : (a += `{${y}`, Object.entries(e).forEach(([s, i]) => {
|
|
436
|
+
r && (s = `'${h(s)}'`), a += " ".repeat(t + 2), Array.isArray(i) ? a += `${s}: [${i.map((o) => p(o, t + 4, r))}${i.length ? y + " ".repeat(t + 2) : ""}]` : typeof i == "object" ? a += `${s}: ${p(i, t + 2, r)}` : ["number", "boolean", "undefined", null].includes(typeof i) ? a += `${s}: ${i}` : a += `${s}: '${h(i)}'`, a += `,${y}`;
|
|
370
437
|
}), a += " ".repeat(t), a += "}"), a;
|
|
371
|
-
}
|
|
372
|
-
|
|
438
|
+
};
|
|
439
|
+
function le(e) {
|
|
440
|
+
return p(e, 2);
|
|
441
|
+
}
|
|
442
|
+
function A(e) {
|
|
443
|
+
if (!e)
|
|
444
|
+
throw new u("errors.undefinedDataSource");
|
|
445
|
+
let t;
|
|
446
|
+
return typeof e == "object" && "title" in e ? t = e.title : t = e, te(t);
|
|
447
|
+
}
|
|
448
|
+
function F(e) {
|
|
449
|
+
const t = ["measureFactory"];
|
|
450
|
+
return Array.isArray(e) && e.length > 0 && t.push("filterFactory"), `import { ${t.join(", ")} } from '@sisense/sdk-data';`;
|
|
451
|
+
}
|
|
452
|
+
const M = `
|
|
453
|
+
`, de = (e, t) => {
|
|
373
454
|
if (e.composeCode)
|
|
374
|
-
return `${
|
|
455
|
+
return `${M}${" ".repeat(t)}${e.composeCode}`;
|
|
375
456
|
const r = e.jaql().jaql;
|
|
376
|
-
return `${
|
|
457
|
+
return `${M}${" ".repeat(t)}filterFactory.customFilter(${p(
|
|
377
458
|
r,
|
|
378
459
|
t,
|
|
379
460
|
!0
|
|
380
461
|
)})`;
|
|
381
|
-
},
|
|
462
|
+
}, ue = (e, t = 0) => {
|
|
382
463
|
if (!e)
|
|
383
464
|
return "";
|
|
384
465
|
let r = "";
|
|
385
|
-
return r += `[${e.map((a) =>
|
|
466
|
+
return r += `[${e.map((a) => de(a, t + 2))}${e.length ? `
|
|
386
467
|
` + " ".repeat(t + 2) : ""}]`, r;
|
|
387
|
-
},
|
|
468
|
+
}, ce = (e) => {
|
|
388
469
|
if (!e)
|
|
389
470
|
return "";
|
|
390
471
|
if (Array.isArray(e))
|
|
391
|
-
return
|
|
472
|
+
return ue(e, 2);
|
|
392
473
|
throw new u("errors.filterRelationsNotSupported");
|
|
393
|
-
}, pe = ["executeQueryByWidgetIdTmpl", "widgetByIdTmpl"], me =
|
|
394
|
-
"executeQueryWidgetTmpl",
|
|
395
|
-
"chartWidgetTmpl"
|
|
396
|
-
], P = (e) => {
|
|
397
|
-
if (!e)
|
|
398
|
-
throw new u("errors.undefinedDataSource");
|
|
399
|
-
let t;
|
|
400
|
-
return typeof e == "object" && "title" in e ? t = e.title : t = e, ae(t);
|
|
401
|
-
}, ge = (e) => e, fe = (e) => h(e, 2), B = (e) => {
|
|
402
|
-
const t = ["measureFactory"], { filters: r } = e;
|
|
403
|
-
return Array.isArray(r) && r.length > 0 && t.push("filterFactory"), `import { ${t.join(", ")} } from '@sisense/sdk-data';`;
|
|
404
|
-
}, ye = (e, t, r) => {
|
|
474
|
+
}, pe = ["executeQueryByWidgetIdTmpl", "widgetByIdTmpl"], me = "chartWidgetTmpl", ge = "pivotTableWidgetTmpl", fe = (e) => e, ye = (e, t, r) => {
|
|
405
475
|
const a = {
|
|
406
476
|
titleString: e.title,
|
|
407
|
-
dataSourceString:
|
|
408
|
-
chartTypeString:
|
|
409
|
-
dataOptionsString:
|
|
410
|
-
filtersString:
|
|
477
|
+
dataSourceString: A(e.dataSource),
|
|
478
|
+
chartTypeString: fe(e.chartType),
|
|
479
|
+
dataOptionsString: le(e.dataOptions),
|
|
480
|
+
filtersString: ce(e.filters),
|
|
411
481
|
componentString: "ChartWidget",
|
|
412
|
-
extraImportsString:
|
|
482
|
+
extraImportsString: F(e.filters || [])
|
|
413
483
|
};
|
|
414
|
-
return
|
|
484
|
+
return b(r, a, t);
|
|
415
485
|
}, he = (e, t, r) => {
|
|
416
|
-
const a =
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
filtersString: F(s.filters),
|
|
423
|
-
highlightsString: "[]",
|
|
424
|
-
// TODO
|
|
425
|
-
extraImportsString: B(e)
|
|
486
|
+
const a = {
|
|
487
|
+
titleString: e.title,
|
|
488
|
+
dataSourceString: A(e.dataSource),
|
|
489
|
+
dataOptionsString: p(e.dataOptions),
|
|
490
|
+
componentString: "PivotTableWidget",
|
|
491
|
+
extraImportsString: F(e.filters || [])
|
|
426
492
|
};
|
|
427
|
-
return
|
|
493
|
+
return b(r, a, t);
|
|
428
494
|
}, Se = ({
|
|
429
495
|
dashboardOid: e,
|
|
430
496
|
widgetOid: t,
|
|
@@ -434,21 +500,19 @@ const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
|
434
500
|
}) => {
|
|
435
501
|
L(a);
|
|
436
502
|
const i = { dashboardOid: e, widgetOid: t }, o = pe[Number(s)];
|
|
437
|
-
return
|
|
503
|
+
return b(o, i, r);
|
|
438
504
|
}, Te = ({
|
|
439
505
|
widgetProps: e,
|
|
440
|
-
uiFramework: t = "react"
|
|
441
|
-
includeChart: r = !0
|
|
506
|
+
uiFramework: t = "react"
|
|
442
507
|
}) => {
|
|
443
|
-
if (
|
|
444
|
-
L(e.chartType);
|
|
445
|
-
|
|
446
|
-
return
|
|
447
|
-
}
|
|
508
|
+
if (J(e))
|
|
509
|
+
return L(e.chartType), ye(e, t, me);
|
|
510
|
+
if (V(e))
|
|
511
|
+
return he(e, t, ge);
|
|
448
512
|
throw new u("errors.otherWidgetTypesNotSupported");
|
|
449
|
-
},
|
|
450
|
-
dataOptions: { columns: e.map(
|
|
451
|
-
}),
|
|
513
|
+
}, ve = (e) => ({
|
|
514
|
+
dataOptions: { columns: e.map(P) }
|
|
515
|
+
}), xe = Object.freeze({
|
|
452
516
|
convolution: {
|
|
453
517
|
enabled: !0,
|
|
454
518
|
selectedConvolutionType: "bySlicesCount",
|
|
@@ -467,45 +531,45 @@ const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
|
467
531
|
xAxis: {
|
|
468
532
|
gridLines: !1
|
|
469
533
|
}
|
|
470
|
-
}),
|
|
534
|
+
}), $ = Object.freeze({
|
|
471
535
|
line: "line/spline",
|
|
472
536
|
pie: "pie/donut",
|
|
473
537
|
bar: "bar/stacked",
|
|
474
538
|
column: "column/stackedcolumn"
|
|
475
|
-
}),
|
|
539
|
+
}), Oe = (e, t) => {
|
|
476
540
|
const { axesMapping: r = {}, chartFamily: a } = t, s = e.reduce((o, l) => (o[l.jaql.title] = l, o), {}), i = Object.entries(r).reduce((o, l) => {
|
|
477
|
-
const [n,
|
|
478
|
-
return o[`${n}`] = Array.isArray(
|
|
541
|
+
const [n, m] = l;
|
|
542
|
+
return o[`${n}`] = Array.isArray(m) ? m.map((g) => {
|
|
479
543
|
var S, T;
|
|
480
|
-
const d = s[
|
|
544
|
+
const d = s[g.name];
|
|
481
545
|
if (!d)
|
|
482
|
-
return { column: { type: "", name:
|
|
483
|
-
const c =
|
|
546
|
+
return { column: { type: "", name: g.name } };
|
|
547
|
+
const c = P(d);
|
|
484
548
|
if (d.panel === "measures")
|
|
485
549
|
return {
|
|
486
550
|
column: c,
|
|
487
551
|
sortType: "sortNone"
|
|
488
552
|
};
|
|
489
|
-
if (
|
|
490
|
-
const
|
|
491
|
-
if (
|
|
553
|
+
if (H(c.type)) {
|
|
554
|
+
const v = (T = (S = d.format) == null ? void 0 : S.mask) == null ? void 0 : T[d.jaql.level];
|
|
555
|
+
if (v)
|
|
492
556
|
return {
|
|
493
557
|
column: c,
|
|
494
|
-
dateFormat:
|
|
558
|
+
dateFormat: v
|
|
495
559
|
};
|
|
496
560
|
}
|
|
497
561
|
return c;
|
|
498
|
-
}) :
|
|
562
|
+
}) : m, o;
|
|
499
563
|
}, {});
|
|
500
564
|
switch (a) {
|
|
501
565
|
case "cartesian":
|
|
502
|
-
return
|
|
566
|
+
return f({
|
|
503
567
|
category: [],
|
|
504
568
|
value: [],
|
|
505
569
|
breakBy: []
|
|
506
570
|
}, i);
|
|
507
571
|
case "categorical":
|
|
508
|
-
return
|
|
572
|
+
return f({
|
|
509
573
|
category: [],
|
|
510
574
|
value: []
|
|
511
575
|
}, i);
|
|
@@ -518,22 +582,22 @@ const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
|
518
582
|
o !== "geo" && (i[`${o}`] = i[`${o}`][0]);
|
|
519
583
|
}), i;
|
|
520
584
|
case "table":
|
|
521
|
-
return Object.keys(i).length === 0 ?
|
|
585
|
+
return Object.keys(i).length === 0 ? ve(e).dataOptions : i;
|
|
522
586
|
case "boxplot":
|
|
523
587
|
case "areamap":
|
|
524
588
|
case "indicator":
|
|
525
589
|
default:
|
|
526
590
|
return i;
|
|
527
591
|
}
|
|
528
|
-
},
|
|
592
|
+
}, q = (e, t) => {
|
|
529
593
|
var r, a, s, i;
|
|
530
594
|
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(", ");
|
|
531
|
-
},
|
|
532
|
-
const a =
|
|
595
|
+
}, be = (e, t, r = !0) => {
|
|
596
|
+
const a = Oe(e, t);
|
|
533
597
|
let s;
|
|
534
|
-
return r && t.chartType in
|
|
535
|
-
C(
|
|
536
|
-
subtype:
|
|
598
|
+
return r && t.chartType in $ ? s = C(
|
|
599
|
+
C(xe, {
|
|
600
|
+
subtype: $[t.chartType]
|
|
537
601
|
}),
|
|
538
602
|
{
|
|
539
603
|
legend: {
|
|
@@ -543,13 +607,13 @@ const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
|
543
607
|
yAxis: {
|
|
544
608
|
title: {
|
|
545
609
|
enabled: !0,
|
|
546
|
-
text:
|
|
610
|
+
text: q(t, "y")
|
|
547
611
|
}
|
|
548
612
|
},
|
|
549
613
|
xAxis: {
|
|
550
614
|
title: {
|
|
551
615
|
enabled: !0,
|
|
552
|
-
text:
|
|
616
|
+
text: q(t, "x")
|
|
553
617
|
}
|
|
554
618
|
}
|
|
555
619
|
}
|
|
@@ -561,7 +625,7 @@ const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
|
561
625
|
chartType: "table",
|
|
562
626
|
chartFamily: "table",
|
|
563
627
|
axesMapping: {}
|
|
564
|
-
}, we = (e) => e.map((t) =>
|
|
628
|
+
}, we = (e) => e.map((t) => X(t.jaql)), Ce = (e) => e.reduce(
|
|
565
629
|
(t, r) => {
|
|
566
630
|
if ((r.panel === "scope" || r.jaql.filter) && t.metadataFilters.push(D(r)), r.panel !== "scope") {
|
|
567
631
|
const a = D(r);
|
|
@@ -571,22 +635,22 @@ const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
|
571
635
|
},
|
|
572
636
|
{ metadataColumns: [], metadataFilters: [] }
|
|
573
637
|
), De = (e, t) => {
|
|
574
|
-
if (!
|
|
638
|
+
if (!re(e))
|
|
575
639
|
try {
|
|
576
640
|
const { useCustomizedStyleOptions: r = !1 } = t || {}, { jaql: a, chartRecommendations: s, queryTitle: i } = e, {
|
|
577
641
|
metadata: o,
|
|
578
|
-
datasource: { title: l, id: n, type:
|
|
579
|
-
} = a,
|
|
642
|
+
datasource: { title: l, id: n, type: m = "elasticube" }
|
|
643
|
+
} = a, g = Ee(s), d = g.chartType.toLowerCase(), c = {
|
|
580
644
|
cornerRadius: "Small",
|
|
581
645
|
header: {
|
|
582
646
|
// remove info button and render empty toolbar instead
|
|
583
647
|
renderToolbar: () => null
|
|
584
648
|
}
|
|
585
|
-
}, { metadataColumns: S, metadataFilters: T } = Ce(o),
|
|
649
|
+
}, { metadataColumns: S, metadataFilters: T } = Ce(o), v = we(T), { dataOptions: k, chartStyleOptions: B } = be(
|
|
586
650
|
S,
|
|
587
|
-
|
|
651
|
+
g,
|
|
588
652
|
r
|
|
589
|
-
),
|
|
653
|
+
), N = f(f({}, B), c);
|
|
590
654
|
return {
|
|
591
655
|
widgetType: "chart",
|
|
592
656
|
id: i,
|
|
@@ -595,30 +659,35 @@ const { data, isLoading, isError } = useExecuteQuery(queryProps);
|
|
|
595
659
|
dataSource: {
|
|
596
660
|
title: l,
|
|
597
661
|
id: n,
|
|
598
|
-
type:
|
|
662
|
+
type: m
|
|
599
663
|
},
|
|
600
|
-
dataOptions:
|
|
601
|
-
filters:
|
|
602
|
-
styleOptions:
|
|
664
|
+
dataOptions: k,
|
|
665
|
+
filters: v,
|
|
666
|
+
styleOptions: N
|
|
603
667
|
};
|
|
604
668
|
} catch (r) {
|
|
605
669
|
console.error(r);
|
|
606
670
|
return;
|
|
607
671
|
}
|
|
608
|
-
},
|
|
672
|
+
}, Me = (e, t) => De(e, t), $e = (e) => ee(e) ? Se(e) : Te(e), Fe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
609
673
|
__proto__: null,
|
|
610
|
-
toWidgetCode:
|
|
611
|
-
toWidgetProps:
|
|
674
|
+
toWidgetCode: $e,
|
|
675
|
+
toWidgetProps: Me
|
|
612
676
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
613
677
|
export {
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
678
|
+
Qe as E,
|
|
679
|
+
A as a,
|
|
680
|
+
p as b,
|
|
617
681
|
Le as c,
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
Pe as
|
|
682
|
+
ce as d,
|
|
683
|
+
F as e,
|
|
684
|
+
We as f,
|
|
685
|
+
b as g,
|
|
686
|
+
ee as h,
|
|
687
|
+
Pe as i,
|
|
688
|
+
ie as p,
|
|
689
|
+
je as s,
|
|
690
|
+
Me as t,
|
|
691
|
+
Ae as v,
|
|
692
|
+
Fe as w
|
|
624
693
|
};
|