@sisense/sdk-ui-angular 1.34.0 → 2.0.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/lib/components/chatbot.component.d.ts +0 -5
- package/dist/ai/lib/components/get-nlg-insights.component.d.ts +0 -5
- package/dist/ai/lib/sdk-ai.module.d.ts +0 -1
- package/dist/ai/lib/sdk-ui-core-exports.d.ts +1 -1
- package/dist/ai/lib/services/ai.service.d.ts +12 -7
- package/dist/esm2020/ai/lib/components/chatbot.component.mjs +1 -6
- package/dist/esm2020/ai/lib/components/get-nlg-insights.component.mjs +1 -6
- package/dist/esm2020/ai/lib/sdk-ai.module.mjs +1 -2
- package/dist/esm2020/ai/lib/sdk-ui-core-exports.mjs +1 -1
- package/dist/esm2020/ai/lib/services/ai.service.mjs +3 -7
- package/dist/esm2020/lib/components/charts/area-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/area-range-chart.component.mjs +1 -2
- package/dist/esm2020/lib/components/charts/areamap-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/bar-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/boxplot-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/column-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/funnel-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/indicator-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/line-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/pie-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/polar-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/scatter-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/scattermap-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/sunburst-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/table.component.mjs +1 -1
- package/dist/esm2020/lib/components/charts/treemap-chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/dashboard/dashboard.component.mjs +4 -3
- package/dist/esm2020/lib/components/filters/filter-tile.component.mjs +147 -0
- package/dist/esm2020/lib/components/filters/index.mjs +2 -1
- package/dist/esm2020/lib/components/filters/member-filter-tile.component.mjs +2 -2
- package/dist/esm2020/lib/components/widgets/chart-widget.component.mjs +2 -2
- package/dist/esm2020/lib/components/widgets/drilldown-widget.component.mjs +2 -5
- package/dist/esm2020/lib/components/widgets/index.mjs +2 -2
- package/dist/esm2020/lib/components/widgets/widget-by-id.component.mjs +1 -1
- package/dist/esm2020/lib/components/widgets/widget.component.mjs +168 -0
- package/dist/esm2020/lib/helpers/dashboard-props-preact-translator.mjs +14 -0
- package/dist/esm2020/lib/helpers/event-emitter-with-has-listeners.mjs +31 -0
- package/dist/esm2020/lib/helpers/index.mjs +2 -0
- package/dist/esm2020/lib/helpers/widget-props-preact-translator.mjs +37 -0
- package/dist/esm2020/lib/sdk-ui-core-exports.mjs +1 -1
- package/dist/esm2020/lib/sdk-ui.module.mjs +12 -8
- package/dist/esm2020/lib/services/dashboard.service.mjs +86 -2
- package/dist/esm2020/lib/services/query.service.mjs +5 -4
- package/dist/esm2020/lib/types/chart-event-props.mjs +1 -1
- package/dist/esm2020/lib/types/data-point.mjs +1 -1
- package/dist/esm2020/lib/types/filter-event-props.mjs +2 -0
- package/dist/esm2020/lib/types/index.mjs +2 -1
- package/dist/esm2020/lib/utilities/dashboard-helpers.mjs +2 -14
- package/dist/esm2020/public-api.mjs +1 -1
- package/dist/esm2020/version.mjs +2 -2
- package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs +2 -17
- package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs.map +1 -1
- package/dist/fesm2015/sisense-sdk-ui-angular.mjs +456 -146
- package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
- package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs +2 -17
- package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs.map +1 -1
- package/dist/fesm2020/sisense-sdk-ui-angular.mjs +482 -144
- package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
- package/dist/lib/components/charts/area-chart.component.d.ts +0 -1
- package/dist/lib/components/charts/area-range-chart.component.d.ts +0 -2
- package/dist/lib/components/charts/areamap-chart.component.d.ts +4 -6
- package/dist/lib/components/charts/bar-chart.component.d.ts +0 -1
- package/dist/lib/components/charts/boxplot-chart.component.d.ts +6 -7
- package/dist/lib/components/charts/chart.component.d.ts +3 -4
- package/dist/lib/components/charts/column-chart.component.d.ts +0 -1
- package/dist/lib/components/charts/funnel-chart.component.d.ts +0 -1
- package/dist/lib/components/charts/indicator-chart.component.d.ts +2 -3
- package/dist/lib/components/charts/line-chart.component.d.ts +0 -1
- package/dist/lib/components/charts/pie-chart.component.d.ts +0 -1
- package/dist/lib/components/charts/polar-chart.component.d.ts +0 -1
- package/dist/lib/components/charts/scatter-chart.component.d.ts +6 -7
- package/dist/lib/components/charts/scattermap-chart.component.d.ts +4 -6
- package/dist/lib/components/charts/sunburst-chart.component.d.ts +0 -1
- package/dist/lib/components/charts/table.component.d.ts +0 -1
- package/dist/lib/components/charts/treemap-chart.component.d.ts +0 -1
- package/dist/lib/components/dashboard/dashboard.component.d.ts +6 -1
- package/dist/lib/components/filters/filter-tile.component.d.ts +125 -0
- package/dist/lib/components/filters/index.d.ts +1 -0
- package/dist/lib/components/filters/member-filter-tile.component.d.ts +1 -1
- package/dist/lib/components/widgets/chart-widget.component.d.ts +4 -5
- package/dist/lib/components/widgets/drilldown-widget.component.d.ts +1 -8
- package/dist/lib/components/widgets/index.d.ts +1 -1
- package/dist/lib/components/widgets/widget-by-id.component.d.ts +0 -1
- package/dist/lib/components/widgets/widget.component.d.ts +209 -0
- package/dist/lib/helpers/dashboard-props-preact-translator.d.ts +4 -0
- package/dist/lib/helpers/event-emitter-with-has-listeners.d.ts +24 -0
- package/dist/lib/helpers/index.d.ts +1 -0
- package/dist/lib/helpers/widget-props-preact-translator.d.ts +4 -0
- package/dist/lib/sdk-ui-core-exports.d.ts +1 -1
- package/dist/lib/sdk-ui.module.d.ts +20 -19
- package/dist/lib/services/dashboard.service.d.ts +79 -1
- package/dist/lib/services/query.service.d.ts +2 -8
- package/dist/lib/types/chart-event-props.d.ts +9 -10
- package/dist/lib/types/data-point.d.ts +18 -11
- package/dist/lib/types/filter-event-props.d.ts +35 -0
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/utilities/dashboard-helpers.d.ts +0 -10
- package/dist/package.json +4 -4
- package/dist/public-api.d.ts +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +7 -7
- package/dist/esm2020/lib/components/widgets/dashboard-widget.component.mjs +0 -117
- package/dist/lib/components/widgets/dashboard-widget.component.d.ts +0 -120
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Injectable, Inject, NgModule, Optional, EventEmitter, Component, ViewChild, Input, Output } from '@angular/core';
|
|
3
|
-
import { DataObserver, CustomThemeProvider, CustomSisenseContextProvider, CustomPluginsProvider, createClientApplication, getDashboardModel, getDashboardModels, getHierarchyModels, executeQuery, executeQueryByWidgetId, executePivotQuery,
|
|
3
|
+
import { DataObserver, CustomThemeProvider, CustomSisenseContextProvider, CustomPluginsProvider, createClientApplication, getDashboardModel, getDashboardModels, HookAdapter, useComposedDashboardInternal, createHookApiFacade, getHierarchyModels, executeQuery, executeQueryByWidgetId, executePivotQuery, useExecuteCsvQueryInternal, getWidgetModel, getDefaultThemeSettings, getThemeSettingsByOid, ComponentAdapter, Chart, PivotTable, Table, ContextMenu, createWrapperElement, Dashboard, DashboardById, DrilldownBreadcrumbs, CriteriaFilterTile, DateRangeFilterTile, FilterTile, MemberFilterTile, RelativeDateFilterTile, ChartWidget, DrilldownWidget, createWrapperElementHandler, createComponentRenderer, PivotTableWidget, TableWidget, Widget, WidgetById, dashboardModelTranslator as dashboardModelTranslator$1, dashboardHelpers as dashboardHelpers$1, widgetModelTranslator as widgetModelTranslator$1 } from '@sisense/sdk-ui-preact';
|
|
4
4
|
export { boxWhiskerProcessResult } from '@sisense/sdk-ui-preact';
|
|
5
5
|
import { __decorate } from 'tslib';
|
|
6
6
|
import { BehaviorSubject } from 'rxjs';
|
|
@@ -173,7 +173,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
173
173
|
args: [SISENSE_CONTEXT_CONFIG_TOKEN]
|
|
174
174
|
}] }]; } });
|
|
175
175
|
|
|
176
|
-
var packageVersion = '
|
|
176
|
+
var packageVersion = '2.0.0';
|
|
177
|
+
|
|
178
|
+
function translateToPreactWidgetProps(widgetProps) {
|
|
179
|
+
const { beforeRender, dataReady, beforeMenuOpen, dataPointClick, dataPointContextMenu, dataPointsSelect, ...commonWidgetProps } = widgetProps;
|
|
180
|
+
return {
|
|
181
|
+
...commonWidgetProps,
|
|
182
|
+
onBeforeRender: beforeRender,
|
|
183
|
+
onDataReady: dataReady,
|
|
184
|
+
onBeforeMenuOpen: beforeMenuOpen,
|
|
185
|
+
onDataPointClick: dataPointClick
|
|
186
|
+
? (...[point, nativeEvent]) => dataPointClick({ point, nativeEvent })
|
|
187
|
+
: undefined,
|
|
188
|
+
onDataPointContextMenu: dataPointContextMenu
|
|
189
|
+
? (...[point, nativeEvent]) => dataPointContextMenu({ point, nativeEvent })
|
|
190
|
+
: undefined,
|
|
191
|
+
onDataPointsSelected: dataPointsSelect
|
|
192
|
+
? (...[points, nativeEvent]) => dataPointsSelect({ points, nativeEvent })
|
|
193
|
+
: undefined,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
function translateFromPreactWidgetProps(widgetProps) {
|
|
197
|
+
const { onBeforeRender, onDataReady, onBeforeMenuOpen, onDataPointClick, onDataPointContextMenu, onDataPointsSelected, ...commonWidgetProps } = widgetProps;
|
|
198
|
+
return {
|
|
199
|
+
...commonWidgetProps,
|
|
200
|
+
beforeRender: onBeforeRender,
|
|
201
|
+
dataReady: onDataReady,
|
|
202
|
+
beforeMenuOpen: onBeforeMenuOpen,
|
|
203
|
+
dataPointClick: onDataPointClick
|
|
204
|
+
? ({ point, nativeEvent }) => onDataPointClick(point, nativeEvent)
|
|
205
|
+
: undefined,
|
|
206
|
+
dataPointContextMenu: onDataPointContextMenu
|
|
207
|
+
? ({ point, nativeEvent }) => onDataPointContextMenu(point, nativeEvent)
|
|
208
|
+
: undefined,
|
|
209
|
+
dataPointsSelect: onDataPointsSelected
|
|
210
|
+
? ({ points, nativeEvent }) => onDataPointsSelected(points, nativeEvent)
|
|
211
|
+
: undefined,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function translateToPreactDashboardProps(dashboardProps) {
|
|
216
|
+
return {
|
|
217
|
+
...dashboardProps,
|
|
218
|
+
widgets: dashboardProps.widgets.map(translateToPreactWidgetProps),
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
function translateFromPreactDashboardProps(dashboardProps) {
|
|
222
|
+
return {
|
|
223
|
+
...dashboardProps,
|
|
224
|
+
widgets: dashboardProps.widgets.map(translateFromPreactWidgetProps),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
177
227
|
|
|
178
228
|
/**
|
|
179
229
|
* Service for working with Sisense Fusion dashboards.
|
|
@@ -208,6 +258,87 @@ let DashboardService = class DashboardService {
|
|
|
208
258
|
const app = await this.sisenseContextService.getApp();
|
|
209
259
|
return getDashboardModels(app.httpClient, options);
|
|
210
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* Сomposes dashboard or separate dashboard elements into a coordinated dashboard
|
|
263
|
+
* with cross filtering, and change detection.
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* An example of using the `createComposedDashboard` to construct a composed dashboard and render it:
|
|
267
|
+
* ```html
|
|
268
|
+
<!--Component HTML template in example.component.html-->
|
|
269
|
+
<div *ngIf="dashboard$ | async as dashboard">
|
|
270
|
+
<csdk-filter-tile
|
|
271
|
+
*ngFor="let filter of getDashboardFilters(dashboard); trackBy: trackByIndex"
|
|
272
|
+
[filter]="filter"
|
|
273
|
+
/>
|
|
274
|
+
<csdk-widget
|
|
275
|
+
*ngFor="let widget of dashboard.widgets; trackBy: trackByIndex"
|
|
276
|
+
[id]="widget.id"
|
|
277
|
+
[widgetType]="widget.widgetType"
|
|
278
|
+
[chartType]="widget.chartType"
|
|
279
|
+
[pluginType]="widget.pluginType"
|
|
280
|
+
[dataSource]="widget.dataSource"
|
|
281
|
+
[dataOptions]="widget.dataOptions"
|
|
282
|
+
[filters]="widget.filters"
|
|
283
|
+
[highlights]="widget.highlights"
|
|
284
|
+
[styleOptions]="widget.styleOptions"
|
|
285
|
+
[drilldownOptions]="widget.drilldownOptions"
|
|
286
|
+
[title]="widget.title"
|
|
287
|
+
[description]="widget.description"
|
|
288
|
+
[beforeMenuOpen]="widget.beforeMenuOpen"
|
|
289
|
+
(dataPointClick)="widget.dataPointClick?.($event)"
|
|
290
|
+
(dataPointContextMenu)="widget.dataPointContextMenu?.($event)"
|
|
291
|
+
(dataPointsSelect)="widget.dataPointsSelect?.($event)"
|
|
292
|
+
/>
|
|
293
|
+
</div>
|
|
294
|
+
* ```
|
|
295
|
+
*
|
|
296
|
+
* ```ts
|
|
297
|
+
// Component behavior in example.component.ts
|
|
298
|
+
import { Component } from '@angular/core';
|
|
299
|
+
import { BehaviorSubject } from 'rxjs';
|
|
300
|
+
import { DashboardService, type DashboardProps } from '@sisense/sdk-ui-angular';
|
|
301
|
+
|
|
302
|
+
@Component({
|
|
303
|
+
selector: 'example',
|
|
304
|
+
templateUrl: './example.component.html',
|
|
305
|
+
styleUrls: ['./example.component.scss'],
|
|
306
|
+
})
|
|
307
|
+
export class ExampleComponent {
|
|
308
|
+
dashboard$: BehaviorSubject<DashboardProps> | undefined;
|
|
309
|
+
|
|
310
|
+
constructor(private dashboardService: DashboardService) {}
|
|
311
|
+
|
|
312
|
+
ngOnInit() {
|
|
313
|
+
const initialDashboard: DashboardProps = { ... };
|
|
314
|
+
const composedDashboard = this.dashboardService.createComposedDashboard(initialDashboard);
|
|
315
|
+
this.dashboard$ = composedDashboard.dashboard$;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
trackByIndex = (index: number) => index;
|
|
319
|
+
|
|
320
|
+
getDashboardFilters = ({ filters }: DashboardProps) => Array.isArray(filters) ? filters : [];
|
|
321
|
+
}
|
|
322
|
+
* ```
|
|
323
|
+
* @param initialDashboard - Initial dashboard
|
|
324
|
+
* @param options - Configuration options
|
|
325
|
+
* @returns Reactive composed dashboard object and API methods for interacting with it
|
|
326
|
+
*/
|
|
327
|
+
createComposedDashboard(initialDashboard, options = {}) {
|
|
328
|
+
const hookAdapter = new HookAdapter((useComposedDashboardInternal), [createSisenseContextConnector(this.sisenseContextService)]);
|
|
329
|
+
const dashboard$ = new BehaviorSubject(initialDashboard);
|
|
330
|
+
hookAdapter.subscribe(({ dashboard }) => {
|
|
331
|
+
dashboard$.next(translateFromPreactDashboardProps(dashboard));
|
|
332
|
+
});
|
|
333
|
+
hookAdapter.run(translateToPreactDashboardProps(initialDashboard), options);
|
|
334
|
+
const setFilters = createHookApiFacade(hookAdapter, 'setFilters', true);
|
|
335
|
+
const setWidgetsLayout = createHookApiFacade(hookAdapter, 'setWidgetsLayout', true);
|
|
336
|
+
return {
|
|
337
|
+
dashboard$,
|
|
338
|
+
setFilters,
|
|
339
|
+
setWidgetsLayout,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
211
342
|
};
|
|
212
343
|
DashboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
213
344
|
DashboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardService, providedIn: 'root' });
|
|
@@ -326,7 +457,7 @@ let QueryService = class QueryService {
|
|
|
326
457
|
* @return Query result
|
|
327
458
|
*/
|
|
328
459
|
async executeQuery(params) {
|
|
329
|
-
const { dataSource, dimensions, measures, filters, highlights, count, offset,
|
|
460
|
+
const { dataSource, dimensions, measures, filters, highlights, count, offset, ungroup, beforeQuery, } = params;
|
|
330
461
|
const app = await this.sisenseContextService.getApp();
|
|
331
462
|
const { filters: filterList, relations: filterRelations } = getFilterListAndRelationsJaql(filters);
|
|
332
463
|
const data = await executeQuery({
|
|
@@ -338,7 +469,8 @@ let QueryService = class QueryService {
|
|
|
338
469
|
highlights,
|
|
339
470
|
count,
|
|
340
471
|
offset,
|
|
341
|
-
|
|
472
|
+
ungroup,
|
|
473
|
+
}, app, { onBeforeQuery: beforeQuery });
|
|
342
474
|
return { data };
|
|
343
475
|
}
|
|
344
476
|
/**
|
|
@@ -352,7 +484,7 @@ let QueryService = class QueryService {
|
|
|
352
484
|
return executeQueryByWidgetId({
|
|
353
485
|
...params,
|
|
354
486
|
app,
|
|
355
|
-
onBeforeQuery: params.beforeQuery
|
|
487
|
+
onBeforeQuery: params.beforeQuery,
|
|
356
488
|
});
|
|
357
489
|
}
|
|
358
490
|
/**
|
|
@@ -976,7 +1108,6 @@ export class AnalyticsComponent {
|
|
|
976
1108
|
* ```
|
|
977
1109
|
* <img src="media://angular-area-range-chart-example.png" width="800px" />
|
|
978
1110
|
* @group Charts
|
|
979
|
-
* @beta
|
|
980
1111
|
*/
|
|
981
1112
|
class AreaRangeChartComponent {
|
|
982
1113
|
constructor() {
|
|
@@ -3107,7 +3238,7 @@ class DashboardComponent {
|
|
|
3107
3238
|
}
|
|
3108
3239
|
}
|
|
3109
3240
|
getPreactComponentProps() {
|
|
3110
|
-
return {
|
|
3241
|
+
return translateToPreactDashboardProps({
|
|
3111
3242
|
title: this.title,
|
|
3112
3243
|
layoutOptions: this.layoutOptions,
|
|
3113
3244
|
config: this.config,
|
|
@@ -3116,7 +3247,7 @@ class DashboardComponent {
|
|
|
3116
3247
|
defaultDataSource: this.defaultDataSource,
|
|
3117
3248
|
widgetsOptions: this.widgetsOptions,
|
|
3118
3249
|
styleOptions: this.styleOptions,
|
|
3119
|
-
};
|
|
3250
|
+
});
|
|
3120
3251
|
}
|
|
3121
3252
|
/**
|
|
3122
3253
|
* @internal
|
|
@@ -3608,6 +3739,175 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3608
3739
|
type: Output
|
|
3609
3740
|
}] } });
|
|
3610
3741
|
|
|
3742
|
+
/**
|
|
3743
|
+
* An extended version of Angular's `EventEmitter` that tracks
|
|
3744
|
+
* whether any listeners (subscribers) are attached.
|
|
3745
|
+
*
|
|
3746
|
+
* Useful when you need to know if an `@Output()` is being observed
|
|
3747
|
+
* in the template (i.e., bound with `(event)="..."`).
|
|
3748
|
+
*
|
|
3749
|
+
* @template T - The type of values emitted by the EventEmitter.
|
|
3750
|
+
*/
|
|
3751
|
+
class EventEmitterWithHasListeners extends EventEmitter {
|
|
3752
|
+
constructor() {
|
|
3753
|
+
super(...arguments);
|
|
3754
|
+
/**
|
|
3755
|
+
* Indicates whether the EventEmitter has at least one active subscriber.
|
|
3756
|
+
*/
|
|
3757
|
+
this.hasListeners = false;
|
|
3758
|
+
}
|
|
3759
|
+
/**
|
|
3760
|
+
* Overrides the default `subscribe()` method to set `hasListeners` to true
|
|
3761
|
+
* when a new subscriber is added.
|
|
3762
|
+
*
|
|
3763
|
+
* @param args - The arguments passed to the `subscribe()` method.
|
|
3764
|
+
* @returns A subscription object used to unsubscribe from the event.
|
|
3765
|
+
*/
|
|
3766
|
+
subscribe(...args) {
|
|
3767
|
+
this.hasListeners = true;
|
|
3768
|
+
return super.subscribe(...args);
|
|
3769
|
+
}
|
|
3770
|
+
}
|
|
3771
|
+
|
|
3772
|
+
/**
|
|
3773
|
+
* UI component that renders a filter tile based on filter type
|
|
3774
|
+
*
|
|
3775
|
+
* @example
|
|
3776
|
+
* Here’s how to render a filter model as a filter tile.
|
|
3777
|
+
*
|
|
3778
|
+
* ```html
|
|
3779
|
+
<!--Component HTML template in example.component.html-->
|
|
3780
|
+
<csdk-filter-tile
|
|
3781
|
+
[filter]="filterTileProps.filter"
|
|
3782
|
+
(filterChange)="filterTileProps.filterChange($event)"
|
|
3783
|
+
/>
|
|
3784
|
+
* ```
|
|
3785
|
+
*
|
|
3786
|
+
* ```ts
|
|
3787
|
+
// Component behavior in example.component.ts
|
|
3788
|
+
import { Component } from '@angular/core';
|
|
3789
|
+
import { type FilterTileProps } from '@sisense/sdk-ui-angular';
|
|
3790
|
+
import { filterFactory } from '@sisense/sdk-data';
|
|
3791
|
+
import * as DM from '../../assets/sample-healthcare-model';
|
|
3792
|
+
|
|
3793
|
+
@Component({
|
|
3794
|
+
selector: 'example',
|
|
3795
|
+
templateUrl: './example.component.html',
|
|
3796
|
+
styleUrls: ['./example.component.scss'],
|
|
3797
|
+
})
|
|
3798
|
+
export class ExampleComponent {
|
|
3799
|
+
filterTileProps: FilterTileProps = {
|
|
3800
|
+
filter: filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),
|
|
3801
|
+
filterChange({ filter }) {
|
|
3802
|
+
if (filter) {
|
|
3803
|
+
this.filter = filter;
|
|
3804
|
+
}
|
|
3805
|
+
},
|
|
3806
|
+
};
|
|
3807
|
+
}
|
|
3808
|
+
* ```
|
|
3809
|
+
* <img src="media://angular-member-filter-tile-example.png" width="225px" />
|
|
3810
|
+
* @group Filter Tiles
|
|
3811
|
+
* @shortDescription Facade component rendering a filter tile based on filter type
|
|
3812
|
+
*/
|
|
3813
|
+
class FilterTileComponent {
|
|
3814
|
+
/**
|
|
3815
|
+
* Constructor for the `FilterTileComponent`.
|
|
3816
|
+
*
|
|
3817
|
+
* @param sisenseContextService - Sisense context service
|
|
3818
|
+
* @param themeService - Theme service
|
|
3819
|
+
*/
|
|
3820
|
+
constructor(
|
|
3821
|
+
/**
|
|
3822
|
+
* Sisense context service
|
|
3823
|
+
*
|
|
3824
|
+
* @category Constructor
|
|
3825
|
+
*/
|
|
3826
|
+
sisenseContextService,
|
|
3827
|
+
/**
|
|
3828
|
+
* Theme service
|
|
3829
|
+
*
|
|
3830
|
+
* @category Constructor
|
|
3831
|
+
*/
|
|
3832
|
+
themeService) {
|
|
3833
|
+
this.sisenseContextService = sisenseContextService;
|
|
3834
|
+
this.themeService = themeService;
|
|
3835
|
+
/**
|
|
3836
|
+
* {@inheritDoc FilterTileProps.filterChange}
|
|
3837
|
+
*/
|
|
3838
|
+
this.filterChange = new EventEmitter();
|
|
3839
|
+
/**
|
|
3840
|
+
* {@inheritDoc FilterTileProps.filterEdit}
|
|
3841
|
+
*/
|
|
3842
|
+
this.filterEdit = new EventEmitterWithHasListeners();
|
|
3843
|
+
/**
|
|
3844
|
+
* {@inheritDoc FilterTileProps.filterDelete}
|
|
3845
|
+
*/
|
|
3846
|
+
this.filterDelete = new EventEmitterWithHasListeners();
|
|
3847
|
+
this.componentAdapter = new ComponentAdapter(FilterTile, [
|
|
3848
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
3849
|
+
createThemeContextConnector(this.themeService),
|
|
3850
|
+
]);
|
|
3851
|
+
}
|
|
3852
|
+
/**
|
|
3853
|
+
* @internal
|
|
3854
|
+
*/
|
|
3855
|
+
ngAfterViewInit() {
|
|
3856
|
+
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
3857
|
+
}
|
|
3858
|
+
/**
|
|
3859
|
+
* @internal
|
|
3860
|
+
*/
|
|
3861
|
+
ngOnChanges() {
|
|
3862
|
+
if (this.preactRef) {
|
|
3863
|
+
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
3864
|
+
}
|
|
3865
|
+
}
|
|
3866
|
+
getPreactComponentProps() {
|
|
3867
|
+
const hasFilterEditListeners = this.filterEdit
|
|
3868
|
+
.hasListeners;
|
|
3869
|
+
const hasFilterDeleteListeners = this.filterDelete
|
|
3870
|
+
.hasListeners;
|
|
3871
|
+
return {
|
|
3872
|
+
filter: this.filter,
|
|
3873
|
+
defaultDataSource: this.defaultDataSource,
|
|
3874
|
+
onChange: (...[filter]) => this.filterChange.emit({ filter }),
|
|
3875
|
+
...(hasFilterEditListeners && {
|
|
3876
|
+
onEdit: (...[levelIndex]) => this.filterEdit.emit({ levelIndex }),
|
|
3877
|
+
}),
|
|
3878
|
+
...(hasFilterDeleteListeners && { onDelete: () => this.filterDelete.emit() }),
|
|
3879
|
+
};
|
|
3880
|
+
}
|
|
3881
|
+
/**
|
|
3882
|
+
* @internal
|
|
3883
|
+
*/
|
|
3884
|
+
ngOnDestroy() {
|
|
3885
|
+
this.componentAdapter.destroy();
|
|
3886
|
+
}
|
|
3887
|
+
}
|
|
3888
|
+
FilterTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterTileComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3889
|
+
FilterTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FilterTileComponent, selector: "csdk-filter-tile", inputs: { filter: "filter", defaultDataSource: "defaultDataSource" }, outputs: { filterChange: "filterChange", filterEdit: "filterEdit", filterDelete: "filterDelete" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact style=\"width: 100%; height: 100%\"></div>\n", isInline: true });
|
|
3890
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterTileComponent, decorators: [{
|
|
3891
|
+
type: Component,
|
|
3892
|
+
args: [{
|
|
3893
|
+
selector: 'csdk-filter-tile',
|
|
3894
|
+
template,
|
|
3895
|
+
}]
|
|
3896
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
3897
|
+
type: ViewChild,
|
|
3898
|
+
args: [rootId]
|
|
3899
|
+
}], filter: [{
|
|
3900
|
+
type: Input
|
|
3901
|
+
}], defaultDataSource: [{
|
|
3902
|
+
type: Input
|
|
3903
|
+
}], filterChange: [{
|
|
3904
|
+
type: Output
|
|
3905
|
+
}], filterEdit: [{
|
|
3906
|
+
type: Output
|
|
3907
|
+
}], filterDelete: [{
|
|
3908
|
+
type: Output
|
|
3909
|
+
}] } });
|
|
3910
|
+
|
|
3611
3911
|
/**
|
|
3612
3912
|
* Member Filter Tile Component
|
|
3613
3913
|
*
|
|
@@ -3642,7 +3942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3642
3942
|
* };
|
|
3643
3943
|
* }
|
|
3644
3944
|
* ```
|
|
3645
|
-
* <img src="media://angular-member-filter-tile-example.png" width="
|
|
3945
|
+
* <img src="media://angular-member-filter-tile-example.png" width="225px" />
|
|
3646
3946
|
* @group Filter Tiles
|
|
3647
3947
|
*/
|
|
3648
3948
|
class MemberFilterTileComponent {
|
|
@@ -3908,7 +4208,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3908
4208
|
*
|
|
3909
4209
|
* }
|
|
3910
4210
|
* ```
|
|
3911
|
-
* <img src="media://angular-chart-widget-example.png" width="
|
|
4211
|
+
* <img src="media://angular-chart-widget-example.png" width="500px" />
|
|
3912
4212
|
* @group Dashboards
|
|
3913
4213
|
*/
|
|
3914
4214
|
class ChartWidgetComponent {
|
|
@@ -4015,116 +4315,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4015
4315
|
type: Output
|
|
4016
4316
|
}] } });
|
|
4017
4317
|
|
|
4018
|
-
/**
|
|
4019
|
-
* The Dashboard Widget component, which is a thin wrapper on {@link ChartWidgetComponent},
|
|
4020
|
-
* is used to render a widget created in a Sisense Fusion instance.
|
|
4021
|
-
*
|
|
4022
|
-
* To learn more about using Sisense Fusion Widgets in Compose SDK, see
|
|
4023
|
-
* [Sisense Fusion Widgets](https://sisense.dev/guides/sdk/guides/charts/guide-fusion-widgets.html).
|
|
4024
|
-
*
|
|
4025
|
-
* @example
|
|
4026
|
-
* ```html
|
|
4027
|
-
* <csdk-dashboard-widget
|
|
4028
|
-
* [widgetOid]="widgetOid"
|
|
4029
|
-
* [dashboardOid]="dashboardOid"
|
|
4030
|
-
* [includeDashboardFilters]="true"
|
|
4031
|
-
* />
|
|
4032
|
-
* ```
|
|
4033
|
-
* ```ts
|
|
4034
|
-
* import { Component } from '@angular/core';
|
|
4035
|
-
* import { ChartType } from '@sisense/sdk-ui-angular';
|
|
4036
|
-
* import { filterFactory, measureFactory } from '@sisense/sdk-data';
|
|
4037
|
-
* import * as DM from '../../assets/sample-healthcare-model';
|
|
4038
|
-
*
|
|
4039
|
-
* @Component({
|
|
4040
|
-
* selector: 'app-widgets',
|
|
4041
|
-
* templateUrl: './widgets.component.html',
|
|
4042
|
-
* styleUrls: ['./widgets.component.scss'],
|
|
4043
|
-
* })
|
|
4044
|
-
* export class WidgetsComponent {
|
|
4045
|
-
* widgetOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';
|
|
4046
|
-
* dashboardOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';
|
|
4047
|
-
* }
|
|
4048
|
-
* ```
|
|
4049
|
-
* @group Fusion Assets
|
|
4050
|
-
* @deprecated Use the `widget-by-id` component instead.
|
|
4051
|
-
* @fusionEmbed
|
|
4052
|
-
*/
|
|
4053
|
-
class DashboardWidgetComponent {
|
|
4054
|
-
constructor(sisenseContextService, themeService) {
|
|
4055
|
-
this.sisenseContextService = sisenseContextService;
|
|
4056
|
-
this.themeService = themeService;
|
|
4057
|
-
this.componentAdapter = new ComponentAdapter(DashboardWidget, [
|
|
4058
|
-
createSisenseContextConnector(this.sisenseContextService),
|
|
4059
|
-
createThemeContextConnector(this.themeService),
|
|
4060
|
-
]);
|
|
4061
|
-
}
|
|
4062
|
-
/** @internal */
|
|
4063
|
-
ngAfterViewInit() {
|
|
4064
|
-
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
4065
|
-
}
|
|
4066
|
-
/** @internal */
|
|
4067
|
-
ngOnChanges() {
|
|
4068
|
-
if (this.preactRef) {
|
|
4069
|
-
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
4070
|
-
}
|
|
4071
|
-
}
|
|
4072
|
-
/** @internal */
|
|
4073
|
-
getPreactComponentProps() {
|
|
4074
|
-
return {
|
|
4075
|
-
widgetOid: this.widgetOid,
|
|
4076
|
-
dashboardOid: this.dashboardOid,
|
|
4077
|
-
filters: this.filters,
|
|
4078
|
-
highlights: this.highlights,
|
|
4079
|
-
filtersMergeStrategy: this.filtersMergeStrategy,
|
|
4080
|
-
includeDashboardFilters: this.includeDashboardFilters,
|
|
4081
|
-
title: this.title,
|
|
4082
|
-
description: this.description,
|
|
4083
|
-
styleOptions: this.styleOptions,
|
|
4084
|
-
highlightSelectionDisabled: this.highlightSelectionDisabled,
|
|
4085
|
-
drilldownOptions: this.drilldownOptions,
|
|
4086
|
-
};
|
|
4087
|
-
}
|
|
4088
|
-
/** @internal */
|
|
4089
|
-
ngOnDestroy() {
|
|
4090
|
-
this.componentAdapter.destroy();
|
|
4091
|
-
}
|
|
4092
|
-
}
|
|
4093
|
-
DashboardWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardWidgetComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4094
|
-
DashboardWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DashboardWidgetComponent, selector: "csdk-dashboard-widget", inputs: { widgetOid: "widgetOid", dashboardOid: "dashboardOid", filters: "filters", highlights: "highlights", filtersMergeStrategy: "filtersMergeStrategy", includeDashboardFilters: "includeDashboardFilters", title: "title", description: "description", styleOptions: "styleOptions", highlightSelectionDisabled: "highlightSelectionDisabled", drilldownOptions: "drilldownOptions" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact style=\"width: 100%; height: 100%\"></div>\n", isInline: true });
|
|
4095
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardWidgetComponent, decorators: [{
|
|
4096
|
-
type: Component,
|
|
4097
|
-
args: [{
|
|
4098
|
-
selector: 'csdk-dashboard-widget',
|
|
4099
|
-
template,
|
|
4100
|
-
}]
|
|
4101
|
-
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
4102
|
-
type: ViewChild,
|
|
4103
|
-
args: [rootId]
|
|
4104
|
-
}], widgetOid: [{
|
|
4105
|
-
type: Input
|
|
4106
|
-
}], dashboardOid: [{
|
|
4107
|
-
type: Input
|
|
4108
|
-
}], filters: [{
|
|
4109
|
-
type: Input
|
|
4110
|
-
}], highlights: [{
|
|
4111
|
-
type: Input
|
|
4112
|
-
}], filtersMergeStrategy: [{
|
|
4113
|
-
type: Input
|
|
4114
|
-
}], includeDashboardFilters: [{
|
|
4115
|
-
type: Input
|
|
4116
|
-
}], title: [{
|
|
4117
|
-
type: Input
|
|
4118
|
-
}], description: [{
|
|
4119
|
-
type: Input
|
|
4120
|
-
}], styleOptions: [{
|
|
4121
|
-
type: Input
|
|
4122
|
-
}], highlightSelectionDisabled: [{
|
|
4123
|
-
type: Input
|
|
4124
|
-
}], drilldownOptions: [{
|
|
4125
|
-
type: Input
|
|
4126
|
-
}] } });
|
|
4127
|
-
|
|
4128
4318
|
/**
|
|
4129
4319
|
* An Angular component designed to add drilldown functionality to any type of chart.
|
|
4130
4320
|
*
|
|
@@ -4242,7 +4432,6 @@ class DrilldownWidgetComponent {
|
|
|
4242
4432
|
}
|
|
4243
4433
|
getPreactComponentProps() {
|
|
4244
4434
|
return {
|
|
4245
|
-
drilldownDimensions: this.drilldownDimensions,
|
|
4246
4435
|
drilldownPaths: this.drilldownPaths,
|
|
4247
4436
|
initialDimension: this.initialDimension,
|
|
4248
4437
|
config: {
|
|
@@ -4274,7 +4463,7 @@ class DrilldownWidgetComponent {
|
|
|
4274
4463
|
}
|
|
4275
4464
|
}
|
|
4276
4465
|
DrilldownWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DrilldownWidgetComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4277
|
-
DrilldownWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DrilldownWidgetComponent, selector: "csdk-drilldown-widget", inputs: {
|
|
4466
|
+
DrilldownWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DrilldownWidgetComponent, selector: "csdk-drilldown-widget", inputs: { drilldownPaths: "drilldownPaths", initialDimension: "initialDimension", config: "config" }, outputs: { drilldownResultChange: "drilldownResultChange" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }, { propertyName: "preactContentRef", first: true, predicate: ["preactContent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact style=\"width: 100%; height: 100%\">\n <div #preactContent style=\"width: 100%; height: 100%\">\n <ng-content></ng-content>\n </div>\n </div>\n", isInline: true });
|
|
4278
4467
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DrilldownWidgetComponent, decorators: [{
|
|
4279
4468
|
type: Component,
|
|
4280
4469
|
args: [{
|
|
@@ -4287,8 +4476,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4287
4476
|
}], preactContentRef: [{
|
|
4288
4477
|
type: ViewChild,
|
|
4289
4478
|
args: [rootContentId]
|
|
4290
|
-
}], drilldownDimensions: [{
|
|
4291
|
-
type: Input
|
|
4292
4479
|
}], drilldownPaths: [{
|
|
4293
4480
|
type: Input
|
|
4294
4481
|
}], initialDimension: [{
|
|
@@ -4515,6 +4702,166 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4515
4702
|
type: Input
|
|
4516
4703
|
}] } });
|
|
4517
4704
|
|
|
4705
|
+
/**
|
|
4706
|
+
* Facade component that renders a widget within a dashboard based on the widget type.
|
|
4707
|
+
*
|
|
4708
|
+
* @example
|
|
4709
|
+
* ```html
|
|
4710
|
+
<!--Component HTML template in example.component.html-->
|
|
4711
|
+
<csdk-widget
|
|
4712
|
+
[id]="widgetProps.id"
|
|
4713
|
+
[title]="widgetProps.title"
|
|
4714
|
+
[widgetType]="widgetProps.widgetType"
|
|
4715
|
+
[chartType]="widgetProps.chartType"
|
|
4716
|
+
[dataSource]="widgetProps.dataSource"
|
|
4717
|
+
[dataOptions]="widgetProps.dataOptions"
|
|
4718
|
+
/>
|
|
4719
|
+
* ```
|
|
4720
|
+
*
|
|
4721
|
+
* ```ts
|
|
4722
|
+
// Component behavior in example.component.ts
|
|
4723
|
+
import { Component } from '@angular/core';
|
|
4724
|
+
import { type WidgetProps } from '@sisense/sdk-ui-angular';
|
|
4725
|
+
|
|
4726
|
+
@Component({
|
|
4727
|
+
selector: 'example',
|
|
4728
|
+
templateUrl: './example.component.html',
|
|
4729
|
+
styleUrls: ['./example.component.scss'],
|
|
4730
|
+
})
|
|
4731
|
+
export class ExampleComponent {
|
|
4732
|
+
widgetProps: WidgetProps = {
|
|
4733
|
+
id: 'widget-id',
|
|
4734
|
+
widgetType: 'chart',
|
|
4735
|
+
chartType: 'column',
|
|
4736
|
+
title: 'Widget Title',
|
|
4737
|
+
dataSource: DM.DataSource,
|
|
4738
|
+
dataOptions: {
|
|
4739
|
+
category: [DM.Divisions.Divison_name],
|
|
4740
|
+
value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],
|
|
4741
|
+
breakBy: [],
|
|
4742
|
+
},
|
|
4743
|
+
};
|
|
4744
|
+
}
|
|
4745
|
+
* ```
|
|
4746
|
+
* <img src="media://angular-chart-widget-example.png" width="500px" />
|
|
4747
|
+
* @group Dashboards
|
|
4748
|
+
*/
|
|
4749
|
+
class WidgetComponent {
|
|
4750
|
+
constructor(sisenseContextService, themeService) {
|
|
4751
|
+
this.sisenseContextService = sisenseContextService;
|
|
4752
|
+
this.themeService = themeService;
|
|
4753
|
+
/**
|
|
4754
|
+
* {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointClick}
|
|
4755
|
+
*
|
|
4756
|
+
* @category Callbacks
|
|
4757
|
+
*/
|
|
4758
|
+
this.dataPointClick = new EventEmitter();
|
|
4759
|
+
/**
|
|
4760
|
+
* {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointContextMenu}
|
|
4761
|
+
*
|
|
4762
|
+
* @category Callbacks
|
|
4763
|
+
*/
|
|
4764
|
+
this.dataPointContextMenu = new EventEmitter();
|
|
4765
|
+
/**
|
|
4766
|
+
* {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointsSelected}
|
|
4767
|
+
*
|
|
4768
|
+
* @category Callbacks
|
|
4769
|
+
*/
|
|
4770
|
+
this.dataPointsSelect = new EventEmitter();
|
|
4771
|
+
this.componentAdapter = new ComponentAdapter(Widget, [
|
|
4772
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
4773
|
+
createThemeContextConnector(this.themeService),
|
|
4774
|
+
]);
|
|
4775
|
+
}
|
|
4776
|
+
/** @internal */
|
|
4777
|
+
ngAfterViewInit() {
|
|
4778
|
+
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
4779
|
+
}
|
|
4780
|
+
/** @internal */
|
|
4781
|
+
ngOnChanges() {
|
|
4782
|
+
if (this.preactRef) {
|
|
4783
|
+
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
4784
|
+
}
|
|
4785
|
+
}
|
|
4786
|
+
getPreactComponentProps() {
|
|
4787
|
+
return translateToPreactWidgetProps({
|
|
4788
|
+
id: this.id,
|
|
4789
|
+
widgetType: this.widgetType,
|
|
4790
|
+
chartType: this.chartType,
|
|
4791
|
+
pluginType: this.pluginType,
|
|
4792
|
+
dataSource: this.dataSource,
|
|
4793
|
+
dataOptions: this.dataOptions,
|
|
4794
|
+
filters: this.filters,
|
|
4795
|
+
highlights: this.highlights,
|
|
4796
|
+
styleOptions: this.styleOptions,
|
|
4797
|
+
drilldownOptions: this.drilldownOptions,
|
|
4798
|
+
title: this.title,
|
|
4799
|
+
description: this.description,
|
|
4800
|
+
highlightSelectionDisabled: this.highlightSelectionDisabled,
|
|
4801
|
+
beforeRender: this.beforeRender?.bind(this),
|
|
4802
|
+
dataReady: this.dataReady?.bind(this),
|
|
4803
|
+
beforeMenuOpen: this.beforeMenuOpen?.bind(this),
|
|
4804
|
+
dataPointClick: this.dataPointClick.emit.bind(this.dataPointClick),
|
|
4805
|
+
dataPointContextMenu: this.dataPointContextMenu.emit.bind(this.dataPointContextMenu),
|
|
4806
|
+
dataPointsSelect: this.dataPointsSelect.emit.bind(this.dataPointsSelect),
|
|
4807
|
+
});
|
|
4808
|
+
}
|
|
4809
|
+
/** @internal */
|
|
4810
|
+
ngOnDestroy() {
|
|
4811
|
+
this.componentAdapter.destroy();
|
|
4812
|
+
}
|
|
4813
|
+
}
|
|
4814
|
+
WidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4815
|
+
WidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetComponent, selector: "csdk-widget", inputs: { id: "id", widgetType: "widgetType", chartType: "chartType", pluginType: "pluginType", dataSource: "dataSource", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", drilldownOptions: "drilldownOptions", title: "title", description: "description", highlightSelectionDisabled: "highlightSelectionDisabled", beforeRender: "beforeRender", dataReady: "dataReady", beforeMenuOpen: "beforeMenuOpen" }, outputs: { dataPointClick: "dataPointClick", dataPointContextMenu: "dataPointContextMenu", dataPointsSelect: "dataPointsSelect" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact style=\"width: 100%; height: 100%\"></div>\n", isInline: true });
|
|
4816
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetComponent, decorators: [{
|
|
4817
|
+
type: Component,
|
|
4818
|
+
args: [{
|
|
4819
|
+
selector: 'csdk-widget',
|
|
4820
|
+
template,
|
|
4821
|
+
}]
|
|
4822
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
4823
|
+
type: ViewChild,
|
|
4824
|
+
args: [rootId]
|
|
4825
|
+
}], id: [{
|
|
4826
|
+
type: Input
|
|
4827
|
+
}], widgetType: [{
|
|
4828
|
+
type: Input
|
|
4829
|
+
}], chartType: [{
|
|
4830
|
+
type: Input
|
|
4831
|
+
}], pluginType: [{
|
|
4832
|
+
type: Input
|
|
4833
|
+
}], dataSource: [{
|
|
4834
|
+
type: Input
|
|
4835
|
+
}], dataOptions: [{
|
|
4836
|
+
type: Input
|
|
4837
|
+
}], filters: [{
|
|
4838
|
+
type: Input
|
|
4839
|
+
}], highlights: [{
|
|
4840
|
+
type: Input
|
|
4841
|
+
}], styleOptions: [{
|
|
4842
|
+
type: Input
|
|
4843
|
+
}], drilldownOptions: [{
|
|
4844
|
+
type: Input
|
|
4845
|
+
}], title: [{
|
|
4846
|
+
type: Input
|
|
4847
|
+
}], description: [{
|
|
4848
|
+
type: Input
|
|
4849
|
+
}], highlightSelectionDisabled: [{
|
|
4850
|
+
type: Input
|
|
4851
|
+
}], beforeRender: [{
|
|
4852
|
+
type: Input
|
|
4853
|
+
}], dataReady: [{
|
|
4854
|
+
type: Input
|
|
4855
|
+
}], beforeMenuOpen: [{
|
|
4856
|
+
type: Input
|
|
4857
|
+
}], dataPointClick: [{
|
|
4858
|
+
type: Output
|
|
4859
|
+
}], dataPointContextMenu: [{
|
|
4860
|
+
type: Output
|
|
4861
|
+
}], dataPointsSelect: [{
|
|
4862
|
+
type: Output
|
|
4863
|
+
}] } });
|
|
4864
|
+
|
|
4518
4865
|
/**
|
|
4519
4866
|
* The `WidgetById` component, which is a thin wrapper on {@link ChartWidgetComponent},
|
|
4520
4867
|
* is used to render a widget created in a Sisense Fusion instance.
|
|
@@ -4670,7 +5017,6 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
4670
5017
|
TreemapChartComponent,
|
|
4671
5018
|
SunburstChartComponent,
|
|
4672
5019
|
TableWidgetComponent,
|
|
4673
|
-
DashboardWidgetComponent,
|
|
4674
5020
|
WidgetByIdComponent,
|
|
4675
5021
|
MemberFilterTileComponent,
|
|
4676
5022
|
DrilldownWidgetComponent,
|
|
@@ -4685,7 +5031,9 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
4685
5031
|
PivotTableComponent,
|
|
4686
5032
|
DashboardByIdComponent,
|
|
4687
5033
|
DashboardComponent,
|
|
4688
|
-
PivotTableWidgetComponent
|
|
5034
|
+
PivotTableWidgetComponent,
|
|
5035
|
+
FilterTileComponent,
|
|
5036
|
+
WidgetComponent], imports: [CommonModule, DecoratorsModule], exports: [ChartComponent,
|
|
4689
5037
|
TableComponent,
|
|
4690
5038
|
ChartWidgetComponent,
|
|
4691
5039
|
ColumnChartComponent,
|
|
@@ -4701,7 +5049,6 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
4701
5049
|
TreemapChartComponent,
|
|
4702
5050
|
SunburstChartComponent,
|
|
4703
5051
|
TableWidgetComponent,
|
|
4704
|
-
DashboardWidgetComponent,
|
|
4705
5052
|
WidgetByIdComponent,
|
|
4706
5053
|
MemberFilterTileComponent,
|
|
4707
5054
|
DrilldownWidgetComponent,
|
|
@@ -4716,7 +5063,9 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
4716
5063
|
PivotTableComponent,
|
|
4717
5064
|
DashboardByIdComponent,
|
|
4718
5065
|
DashboardComponent,
|
|
4719
|
-
PivotTableWidgetComponent
|
|
5066
|
+
PivotTableWidgetComponent,
|
|
5067
|
+
FilterTileComponent,
|
|
5068
|
+
WidgetComponent] });
|
|
4720
5069
|
SdkUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, imports: [CommonModule, DecoratorsModule] });
|
|
4721
5070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, decorators: [{
|
|
4722
5071
|
type: NgModule,
|
|
@@ -4738,7 +5087,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4738
5087
|
TreemapChartComponent,
|
|
4739
5088
|
SunburstChartComponent,
|
|
4740
5089
|
TableWidgetComponent,
|
|
4741
|
-
DashboardWidgetComponent,
|
|
4742
5090
|
WidgetByIdComponent,
|
|
4743
5091
|
MemberFilterTileComponent,
|
|
4744
5092
|
DrilldownWidgetComponent,
|
|
@@ -4754,6 +5102,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4754
5102
|
DashboardByIdComponent,
|
|
4755
5103
|
DashboardComponent,
|
|
4756
5104
|
PivotTableWidgetComponent,
|
|
5105
|
+
FilterTileComponent,
|
|
5106
|
+
WidgetComponent,
|
|
4757
5107
|
],
|
|
4758
5108
|
imports: [CommonModule, DecoratorsModule],
|
|
4759
5109
|
exports: [
|
|
@@ -4773,7 +5123,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4773
5123
|
TreemapChartComponent,
|
|
4774
5124
|
SunburstChartComponent,
|
|
4775
5125
|
TableWidgetComponent,
|
|
4776
|
-
DashboardWidgetComponent,
|
|
4777
5126
|
WidgetByIdComponent,
|
|
4778
5127
|
MemberFilterTileComponent,
|
|
4779
5128
|
DrilldownWidgetComponent,
|
|
@@ -4789,6 +5138,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4789
5138
|
DashboardByIdComponent,
|
|
4790
5139
|
DashboardComponent,
|
|
4791
5140
|
PivotTableWidgetComponent,
|
|
5141
|
+
FilterTileComponent,
|
|
5142
|
+
WidgetComponent,
|
|
4792
5143
|
],
|
|
4793
5144
|
providers: [],
|
|
4794
5145
|
}]
|
|
@@ -4920,18 +5271,6 @@ const addFilters = (dashboard, newFilters) => {
|
|
|
4920
5271
|
const replaceFilter = (dashboard, filterToReplace, newFilter) => {
|
|
4921
5272
|
return dashboardHelpers$1.replaceFilter(dashboard, filterToReplace, newFilter);
|
|
4922
5273
|
};
|
|
4923
|
-
/**
|
|
4924
|
-
* {@inheritDoc @sisense/sdk-ui!dashboardHelpers.modifyFilter}
|
|
4925
|
-
*
|
|
4926
|
-
* @deprecated Use {@link replaceFilter} instead
|
|
4927
|
-
* @param dashboard - The original dashboard (`DashboardProps`) containing the filter to modify.
|
|
4928
|
-
* @param filterToModify - The existing filter to be modified.
|
|
4929
|
-
* @param newFilter - The new filter to replace the existing one.
|
|
4930
|
-
* @returns A new dashboard instance with the specified filter modified.
|
|
4931
|
-
*/
|
|
4932
|
-
const modifyFilter = (dashboard, filterToModify, newFilter) => {
|
|
4933
|
-
return dashboardHelpers$1.modifyFilter(dashboard, filterToModify, newFilter);
|
|
4934
|
-
};
|
|
4935
5274
|
/**
|
|
4936
5275
|
* {@inheritDoc @sisense/sdk-ui!dashboardHelpers.removeFilter}
|
|
4937
5276
|
*
|
|
@@ -4971,7 +5310,6 @@ var dashboardHelpers = /*#__PURE__*/Object.freeze({
|
|
|
4971
5310
|
__proto__: null,
|
|
4972
5311
|
addFilter: addFilter,
|
|
4973
5312
|
addFilters: addFilters,
|
|
4974
|
-
modifyFilter: modifyFilter,
|
|
4975
5313
|
removeFilter: removeFilter,
|
|
4976
5314
|
removeFilters: removeFilters,
|
|
4977
5315
|
replaceFilter: replaceFilter,
|
|
@@ -5301,5 +5639,5 @@ var widgetModelTranslator = /*#__PURE__*/Object.freeze({
|
|
|
5301
5639
|
* Generated bundle index. Do not edit.
|
|
5302
5640
|
*/
|
|
5303
5641
|
|
|
5304
|
-
export { AreaChartComponent, AreaRangeChartComponent, AreamapChartComponent, BarChartComponent, BoxplotChartComponent, ChartComponent, ChartWidgetComponent, ColumnChartComponent, ContextMenuComponent, CriteriaFilterTileComponent, DashboardByIdComponent, DashboardComponent, DashboardService,
|
|
5642
|
+
export { AreaChartComponent, AreaRangeChartComponent, AreamapChartComponent, BarChartComponent, BoxplotChartComponent, ChartComponent, ChartWidgetComponent, ColumnChartComponent, ContextMenuComponent, CriteriaFilterTileComponent, DashboardByIdComponent, DashboardComponent, DashboardService, DateRangeFilterTileComponent, DrilldownBreadcrumbsComponent, DrilldownWidgetComponent, FilterTileComponent, FunnelChartComponent, HierarchyService, IndicatorChartComponent, LineChartComponent, MemberFilterTileComponent, PieChartComponent, PivotTableComponent, PivotTableWidgetComponent, PluginsService, PolarChartComponent, QueryService, RelativeDateFilterTileComponent, SISENSE_CONTEXT_CONFIG_TOKEN, ScatterChartComponent, ScattermapChartComponent, SdkUiModule, SisenseContextService, SunburstChartComponent, THEME_CONFIG_TOKEN, TableComponent, TableWidgetComponent, ThemeService, TrackableService, TreemapChartComponent, WidgetByIdComponent, WidgetComponent, WidgetService, createPluginsContextConnector, createSisenseContextConnector, createThemeContextConnector, dashboardHelpers, dashboardModelTranslator, widgetModelTranslator };
|
|
5305
5643
|
//# sourceMappingURL=sisense-sdk-ui-angular.mjs.map
|