@sisense/sdk-ui-angular 0.14.0 → 0.15.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/esm2020/lib/component-wrapper-helpers/template.mjs +12 -2
- package/dist/esm2020/lib/components/area-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/bar-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/basic-member-filter-tile.component.mjs +1 -1
- package/dist/esm2020/lib/components/chart-widget.component.mjs +1 -1
- package/dist/esm2020/lib/components/chart.component.mjs +1 -1
- package/dist/esm2020/lib/components/column-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/context-menu.component.mjs +92 -0
- package/dist/esm2020/lib/components/dashboard-widget.component.mjs +8 -2
- package/dist/esm2020/lib/components/date-range-filter-tile.component.mjs +101 -0
- package/dist/esm2020/lib/components/drilldown-breadcrumbs.component.mjs +100 -0
- package/dist/esm2020/lib/components/drilldown-widget.component.mjs +171 -0
- package/dist/esm2020/lib/components/funnel-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/index.mjs +7 -1
- package/dist/esm2020/lib/components/indicator-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/line-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/member-filter-tile.component.mjs +95 -0
- package/dist/esm2020/lib/components/pie-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/polar-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/scatter-chart.component.mjs +3 -1
- package/dist/esm2020/lib/components/sunburst-chart.component.mjs +86 -0
- package/dist/esm2020/lib/components/table-widget.component.mjs +1 -1
- package/dist/esm2020/lib/components/table.component.mjs +1 -1
- package/dist/esm2020/lib/components/treemap-chart.component.mjs +3 -1
- package/dist/esm2020/lib/decorators/decorators.module.mjs +19 -0
- package/dist/esm2020/lib/decorators/trackable.decorator.mjs +42 -0
- package/dist/esm2020/lib/sdk-ui.module.mjs +31 -6
- package/dist/esm2020/lib/services/dashboard.service.mjs +45 -0
- package/dist/esm2020/lib/services/index.mjs +2 -1
- package/dist/esm2020/lib/services/query.service.mjs +9 -3
- package/dist/esm2020/lib/services/theme.service.mjs +10 -4
- package/dist/esm2020/version.mjs +2 -0
- package/dist/fesm2015/sisense-sdk-ui-angular.mjs +845 -76
- package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
- package/dist/fesm2020/sisense-sdk-ui-angular.mjs +846 -76
- package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
- package/dist/lib/component-wrapper-helpers/template.d.ts +2 -0
- package/dist/lib/components/context-menu.component.d.ts +78 -0
- package/dist/lib/components/dashboard-widget.component.d.ts +4 -1
- package/dist/lib/components/date-range-filter-tile.component.d.ts +90 -0
- package/dist/lib/components/drilldown-breadcrumbs.component.d.ts +86 -0
- package/dist/lib/components/drilldown-widget.component.d.ts +146 -0
- package/dist/lib/components/index.d.ts +6 -0
- package/dist/lib/components/member-filter-tile.component.d.ts +82 -0
- package/dist/lib/components/sunburst-chart.component.d.ts +69 -0
- package/dist/lib/decorators/decorators.module.d.ts +9 -0
- package/dist/lib/decorators/trackable.decorator.d.ts +11 -0
- package/dist/lib/sdk-ui.module.d.ts +11 -4
- package/dist/lib/services/dashboard.service.d.ts +24 -0
- package/dist/lib/services/index.d.ts +1 -0
- package/dist/package.json +12 -13
- package/dist/version.d.ts +2 -0
- package/package.json +18 -13
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, ViewChild, Input, Output, InjectionToken, Injectable, Inject,
|
|
3
|
-
import { ComponentAdapter, createElement, BasicMemberFilterTile, createContextProviderRenderer, CustomThemeProvider, CustomSisenseContextProvider, createClientApplication, getDefaultThemeSettings, getThemeSettingsByOid, Chart, Table, ChartWidget, TableWidget, DashboardWidget,
|
|
2
|
+
import { EventEmitter, Component, ViewChild, Input, Output, InjectionToken, Injectable, Inject, NgModule, Optional } from '@angular/core';
|
|
3
|
+
import { ComponentAdapter, createElement, BasicMemberFilterTile, createContextProviderRenderer, CustomThemeProvider, CustomSisenseContextProvider, createClientApplication, executeQuery, executeQueryByWidgetId, getDashboardModel, getDashboardModels, getDefaultThemeSettings, getThemeSettingsByOid, Chart, Table, ChartWidget, TableWidget, DashboardWidget, MemberFilterTile, createWrapperElementHandler, createWrapperElement, DrilldownWidget, createComponentRenderer, DateRangeFilterTile, DrilldownBreadcrumbs, ContextMenu } from '@sisense/sdk-ui-preact';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { map, BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { __decorate } from 'tslib';
|
|
6
7
|
import merge from 'ts-deepmerge';
|
|
8
|
+
import { trackProductEvent } from '@sisense/sdk-tracking';
|
|
7
9
|
|
|
8
10
|
const rootId = 'preact';
|
|
9
|
-
const
|
|
11
|
+
const rootContentId = 'preactContent';
|
|
12
|
+
const template = `
|
|
13
|
+
<div #${rootId} style="width: 100%; height: 100%"></div>
|
|
14
|
+
`;
|
|
15
|
+
const templateWithContent = `
|
|
16
|
+
<div #${rootId} style="width: 100%; height: 100%">
|
|
17
|
+
<div #${rootContentId} style="width: 100%; height: 100%">
|
|
18
|
+
<ng-content></ng-content>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
`;
|
|
10
22
|
|
|
11
23
|
/**
|
|
12
24
|
* Basic Member Filter Tile Component
|
|
@@ -44,7 +56,7 @@ class BasicMemberFilterTileComponent {
|
|
|
44
56
|
}
|
|
45
57
|
}
|
|
46
58
|
BasicMemberFilterTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BasicMemberFilterTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
-
BasicMemberFilterTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BasicMemberFilterTileComponent, selector: "csdk-basic-member-filter-tile", inputs: { title: "title", allMembers: "allMembers", initialSelectedMembers: "initialSelectedMembers", maxAllowedMembers: "maxAllowedMembers" }, outputs: { selectedMembersUpdated: "selectedMembersUpdated" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #preact style=\"width: 100%; height: 100%\"></div
|
|
59
|
+
BasicMemberFilterTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BasicMemberFilterTileComponent, selector: "csdk-basic-member-filter-tile", inputs: { title: "title", allMembers: "allMembers", initialSelectedMembers: "initialSelectedMembers", maxAllowedMembers: "maxAllowedMembers" }, outputs: { selectedMembersUpdated: "selectedMembersUpdated" }, 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 });
|
|
48
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BasicMemberFilterTileComponent, decorators: [{
|
|
49
61
|
type: Component,
|
|
50
62
|
args: [{
|
|
@@ -149,6 +161,143 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
149
161
|
args: [SISENSE_CONTEXT_CONFIG_TOKEN]
|
|
150
162
|
}] }]; } });
|
|
151
163
|
|
|
164
|
+
let QueryService = class QueryService {
|
|
165
|
+
constructor(sisenseContextService) {
|
|
166
|
+
this.sisenseContextService = sisenseContextService;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Executes a data query.
|
|
170
|
+
*
|
|
171
|
+
* @param params - Query parameters
|
|
172
|
+
* return Query result
|
|
173
|
+
*/
|
|
174
|
+
async executeQuery(params) {
|
|
175
|
+
const { dataSource, dimensions, measures, filters, highlights, count, offset, onBeforeQuery } = params;
|
|
176
|
+
const app = await this.sisenseContextService.getApp();
|
|
177
|
+
const data = await executeQuery({ dataSource, dimensions, measures, filters, highlights, count, offset }, app, { onBeforeQuery });
|
|
178
|
+
return { data };
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Executes a data query extracted from an existing widget in the Sisense instance.
|
|
182
|
+
*
|
|
183
|
+
* @param params - Parameters to identify the target widget
|
|
184
|
+
* @returns Query result
|
|
185
|
+
*/
|
|
186
|
+
async executeQueryByWidgetId(params) {
|
|
187
|
+
const app = await this.sisenseContextService.getApp();
|
|
188
|
+
return executeQueryByWidgetId({
|
|
189
|
+
...params,
|
|
190
|
+
app,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
QueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
195
|
+
QueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, providedIn: 'root' });
|
|
196
|
+
QueryService = __decorate([
|
|
197
|
+
TrackableService(['executeQuery', 'executeQueryByWidgetId'])
|
|
198
|
+
], QueryService);
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, decorators: [{
|
|
200
|
+
type: Injectable,
|
|
201
|
+
args: [{
|
|
202
|
+
providedIn: 'root',
|
|
203
|
+
}]
|
|
204
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
205
|
+
|
|
206
|
+
let DashboardService = class DashboardService {
|
|
207
|
+
constructor(sisenseContextService) {
|
|
208
|
+
this.sisenseContextService = sisenseContextService;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Retrieves an existing dashboard model from the Sisense instance.
|
|
212
|
+
*
|
|
213
|
+
* @param dashboardOid - Identifier of the dashboard
|
|
214
|
+
* @param options - Advanced configuration options
|
|
215
|
+
* @returns Dashboard model
|
|
216
|
+
*/
|
|
217
|
+
async getDashboardModel(dashboardOid, options) {
|
|
218
|
+
const app = await this.sisenseContextService.getApp();
|
|
219
|
+
return getDashboardModel(app.httpClient, dashboardOid, options);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Retrieves existing dashboard models from the Sisense instance.
|
|
223
|
+
*
|
|
224
|
+
* @param options - Advanced configuration options
|
|
225
|
+
* @returns Dashboard models array
|
|
226
|
+
*/
|
|
227
|
+
async getDashboardModels(options) {
|
|
228
|
+
const app = await this.sisenseContextService.getApp();
|
|
229
|
+
return getDashboardModels(app.httpClient, options);
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
DashboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
233
|
+
DashboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardService, providedIn: 'root' });
|
|
234
|
+
DashboardService = __decorate([
|
|
235
|
+
TrackableService(['getDashboardModel', 'getDashboardModels'])
|
|
236
|
+
], DashboardService);
|
|
237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardService, decorators: [{
|
|
238
|
+
type: Injectable,
|
|
239
|
+
args: [{
|
|
240
|
+
providedIn: 'root',
|
|
241
|
+
}]
|
|
242
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
243
|
+
|
|
244
|
+
class DecoratorsModule {
|
|
245
|
+
constructor(sisenseContextService) {
|
|
246
|
+
DecoratorsModule.sisenseContextService = sisenseContextService;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
DecoratorsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DecoratorsModule, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
250
|
+
DecoratorsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DecoratorsModule });
|
|
251
|
+
DecoratorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DecoratorsModule });
|
|
252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DecoratorsModule, decorators: [{
|
|
253
|
+
type: NgModule,
|
|
254
|
+
args: [{
|
|
255
|
+
declarations: [],
|
|
256
|
+
exports: [],
|
|
257
|
+
}]
|
|
258
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
259
|
+
|
|
260
|
+
var packageVersion = '0.15.0';
|
|
261
|
+
|
|
262
|
+
function Trackable(target, propertyKey, descriptor) {
|
|
263
|
+
const originalMethod = descriptor.value;
|
|
264
|
+
descriptor.value = function (...args) {
|
|
265
|
+
track('sdkAngularServiceMethodExecuted', propertyKey);
|
|
266
|
+
return originalMethod.apply(this, args);
|
|
267
|
+
};
|
|
268
|
+
return descriptor;
|
|
269
|
+
}
|
|
270
|
+
function TrackableService(trackableMethods) {
|
|
271
|
+
return function (ServiceClass) {
|
|
272
|
+
trackableMethods.forEach((methodName) => {
|
|
273
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
274
|
+
const original = ServiceClass.prototype[methodName];
|
|
275
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
276
|
+
ServiceClass.prototype[methodName] = function (...params) {
|
|
277
|
+
track('sdkAngularServiceMethodExecuted', `${ServiceClass.name}.${methodName}`);
|
|
278
|
+
return original.apply(this, params);
|
|
279
|
+
};
|
|
280
|
+
});
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
async function track(action, methodName) {
|
|
284
|
+
try {
|
|
285
|
+
const { enableTracking } = DecoratorsModule.sisenseContextService.getConfig();
|
|
286
|
+
const app = await DecoratorsModule.sisenseContextService.getApp();
|
|
287
|
+
if (app?.httpClient) {
|
|
288
|
+
const payload = {
|
|
289
|
+
packageName: 'sdk-ui-angular',
|
|
290
|
+
packageVersion,
|
|
291
|
+
methodName,
|
|
292
|
+
};
|
|
293
|
+
void trackProductEvent(action, payload, app.httpClient, !enableTracking).catch((e) => console.warn(`An error occurred when sending the ${action} event`, e));
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch (e) {
|
|
297
|
+
console.warn('tracking error', e);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
152
301
|
/**
|
|
153
302
|
* Token used to inject {@link ThemeConfig} into your application
|
|
154
303
|
*
|
|
@@ -183,7 +332,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
183
332
|
* ```
|
|
184
333
|
*/
|
|
185
334
|
const THEME_CONFIG_TOKEN = new InjectionToken('theme configuration');
|
|
186
|
-
class ThemeService {
|
|
335
|
+
let ThemeService = class ThemeService {
|
|
187
336
|
constructor(sisenseContextService, themeConfig) {
|
|
188
337
|
this.sisenseContextService = sisenseContextService;
|
|
189
338
|
this.themeSettings$ = new BehaviorSubject(getDefaultThemeSettings());
|
|
@@ -194,7 +343,7 @@ class ThemeService {
|
|
|
194
343
|
// apply system theme settings first
|
|
195
344
|
await this.applyThemeSettings(app.settings.serverThemeSettings);
|
|
196
345
|
if (theme) {
|
|
197
|
-
await this.
|
|
346
|
+
await this.updateThemeSettings(theme);
|
|
198
347
|
}
|
|
199
348
|
}
|
|
200
349
|
async applyThemeSettings(theme) {
|
|
@@ -218,9 +367,12 @@ class ThemeService {
|
|
|
218
367
|
async updateThemeSettings(theme) {
|
|
219
368
|
await this.applyThemeSettings(theme);
|
|
220
369
|
}
|
|
221
|
-
}
|
|
370
|
+
};
|
|
222
371
|
ThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, deps: [{ token: SisenseContextService }, { token: THEME_CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
223
372
|
ThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
|
373
|
+
ThemeService = __decorate([
|
|
374
|
+
TrackableService(['updateThemeSettings'])
|
|
375
|
+
], ThemeService);
|
|
224
376
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, decorators: [{
|
|
225
377
|
type: Injectable,
|
|
226
378
|
args: [{
|
|
@@ -363,7 +515,7 @@ class ChartComponent {
|
|
|
363
515
|
}
|
|
364
516
|
}
|
|
365
517
|
ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChartComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
366
|
-
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChartComponent, selector: "csdk-chart", inputs: { chartType: "chartType", dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", beforeRender: "beforeRender" }, outputs: { dataPointClick: "dataPointClick", dataPointContextMenu: "dataPointContextMenu", dataPointsSelect: "dataPointsSelect" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #preact style=\"width: 100%; height: 100%\"></div
|
|
518
|
+
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChartComponent, selector: "csdk-chart", inputs: { chartType: "chartType", dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", beforeRender: "beforeRender" }, 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 });
|
|
367
519
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChartComponent, decorators: [{
|
|
368
520
|
type: Component,
|
|
369
521
|
args: [{
|
|
@@ -432,7 +584,7 @@ class TableComponent {
|
|
|
432
584
|
}
|
|
433
585
|
}
|
|
434
586
|
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
435
|
-
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableComponent, selector: "csdk-table", inputs: { dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", styleOptions: "styleOptions" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #preact style=\"width: 100%; height: 100%\"></div
|
|
587
|
+
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableComponent, selector: "csdk-table", inputs: { dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", styleOptions: "styleOptions" }, 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 });
|
|
436
588
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableComponent, decorators: [{
|
|
437
589
|
type: Component,
|
|
438
590
|
args: [{
|
|
@@ -518,7 +670,7 @@ class ChartWidgetComponent {
|
|
|
518
670
|
}
|
|
519
671
|
}
|
|
520
672
|
ChartWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChartWidgetComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
521
|
-
ChartWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChartWidgetComponent, selector: "csdk-chart-widget", inputs: { chartType: "chartType", dataSource: "dataSource", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", widgetStyleOptions: "widgetStyleOptions", drilldownOptions: "drilldownOptions", title: "title", description: "description", highlightSelectionDisabled: "highlightSelectionDisabled", beforeRender: "beforeRender" }, outputs: { dataPointClick: "dataPointClick", dataPointContextMenu: "dataPointContextMenu", dataPointsSelect: "dataPointsSelect" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #preact style=\"width: 100%; height: 100%\"></div
|
|
673
|
+
ChartWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChartWidgetComponent, selector: "csdk-chart-widget", inputs: { chartType: "chartType", dataSource: "dataSource", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", widgetStyleOptions: "widgetStyleOptions", drilldownOptions: "drilldownOptions", title: "title", description: "description", highlightSelectionDisabled: "highlightSelectionDisabled", beforeRender: "beforeRender" }, 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 });
|
|
522
674
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChartWidgetComponent, decorators: [{
|
|
523
675
|
type: Component,
|
|
524
676
|
args: [{
|
|
@@ -597,6 +749,7 @@ ColumnChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
597
749
|
[dataOptions]="dataOptions"
|
|
598
750
|
[filters]="filters"
|
|
599
751
|
[highlights]="highlights"
|
|
752
|
+
[styleOptions]="styleOptions"
|
|
600
753
|
[beforeRender]="beforeRender"
|
|
601
754
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
602
755
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -614,6 +767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
614
767
|
[dataOptions]="dataOptions"
|
|
615
768
|
[filters]="filters"
|
|
616
769
|
[highlights]="highlights"
|
|
770
|
+
[styleOptions]="styleOptions"
|
|
617
771
|
[beforeRender]="beforeRender"
|
|
618
772
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
619
773
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -678,6 +832,7 @@ BarChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
678
832
|
[dataOptions]="dataOptions"
|
|
679
833
|
[filters]="filters"
|
|
680
834
|
[highlights]="highlights"
|
|
835
|
+
[styleOptions]="styleOptions"
|
|
681
836
|
[beforeRender]="beforeRender"
|
|
682
837
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
683
838
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -695,6 +850,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
695
850
|
[dataOptions]="dataOptions"
|
|
696
851
|
[filters]="filters"
|
|
697
852
|
[highlights]="highlights"
|
|
853
|
+
[styleOptions]="styleOptions"
|
|
698
854
|
[beforeRender]="beforeRender"
|
|
699
855
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
700
856
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -759,6 +915,7 @@ AreaChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
759
915
|
[dataOptions]="dataOptions"
|
|
760
916
|
[filters]="filters"
|
|
761
917
|
[highlights]="highlights"
|
|
918
|
+
[styleOptions]="styleOptions"
|
|
762
919
|
[beforeRender]="beforeRender"
|
|
763
920
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
764
921
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -776,6 +933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
776
933
|
[dataOptions]="dataOptions"
|
|
777
934
|
[filters]="filters"
|
|
778
935
|
[highlights]="highlights"
|
|
936
|
+
[styleOptions]="styleOptions"
|
|
779
937
|
[beforeRender]="beforeRender"
|
|
780
938
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
781
939
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -839,6 +997,7 @@ LineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
839
997
|
[dataOptions]="dataOptions"
|
|
840
998
|
[filters]="filters"
|
|
841
999
|
[highlights]="highlights"
|
|
1000
|
+
[styleOptions]="styleOptions"
|
|
842
1001
|
[beforeRender]="beforeRender"
|
|
843
1002
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
844
1003
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -856,6 +1015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
856
1015
|
[dataOptions]="dataOptions"
|
|
857
1016
|
[filters]="filters"
|
|
858
1017
|
[highlights]="highlights"
|
|
1018
|
+
[styleOptions]="styleOptions"
|
|
859
1019
|
[beforeRender]="beforeRender"
|
|
860
1020
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
861
1021
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -901,6 +1061,7 @@ IndicatorChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
901
1061
|
[dataOptions]="dataOptions"
|
|
902
1062
|
[filters]="filters"
|
|
903
1063
|
[highlights]="highlights"
|
|
1064
|
+
[styleOptions]="styleOptions"
|
|
904
1065
|
/>
|
|
905
1066
|
`, isInline: true, dependencies: [{ kind: "component", type: ChartComponent, selector: "csdk-chart", inputs: ["chartType", "dataSet", "dataOptions", "filters", "highlights", "styleOptions", "beforeRender"], outputs: ["dataPointClick", "dataPointContextMenu", "dataPointsSelect"] }] });
|
|
906
1067
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IndicatorChartComponent, decorators: [{
|
|
@@ -914,6 +1075,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
914
1075
|
[dataOptions]="dataOptions"
|
|
915
1076
|
[filters]="filters"
|
|
916
1077
|
[highlights]="highlights"
|
|
1078
|
+
[styleOptions]="styleOptions"
|
|
917
1079
|
/>
|
|
918
1080
|
`,
|
|
919
1081
|
}]
|
|
@@ -972,6 +1134,7 @@ ScatterChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
972
1134
|
[dataOptions]="dataOptions"
|
|
973
1135
|
[filters]="filters"
|
|
974
1136
|
[highlights]="highlights"
|
|
1137
|
+
[styleOptions]="styleOptions"
|
|
975
1138
|
[beforeRender]="beforeRender"
|
|
976
1139
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
977
1140
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -989,6 +1152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
989
1152
|
[dataOptions]="dataOptions"
|
|
990
1153
|
[filters]="filters"
|
|
991
1154
|
[highlights]="highlights"
|
|
1155
|
+
[styleOptions]="styleOptions"
|
|
992
1156
|
[beforeRender]="beforeRender"
|
|
993
1157
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
994
1158
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1053,6 +1217,7 @@ PieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
1053
1217
|
[dataOptions]="dataOptions"
|
|
1054
1218
|
[filters]="filters"
|
|
1055
1219
|
[highlights]="highlights"
|
|
1220
|
+
[styleOptions]="styleOptions"
|
|
1056
1221
|
[beforeRender]="beforeRender"
|
|
1057
1222
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
1058
1223
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1070,6 +1235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1070
1235
|
[dataOptions]="dataOptions"
|
|
1071
1236
|
[filters]="filters"
|
|
1072
1237
|
[highlights]="highlights"
|
|
1238
|
+
[styleOptions]="styleOptions"
|
|
1073
1239
|
[beforeRender]="beforeRender"
|
|
1074
1240
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
1075
1241
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1133,6 +1299,7 @@ FunnelChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
1133
1299
|
[dataOptions]="dataOptions"
|
|
1134
1300
|
[filters]="filters"
|
|
1135
1301
|
[highlights]="highlights"
|
|
1302
|
+
[styleOptions]="styleOptions"
|
|
1136
1303
|
[beforeRender]="beforeRender"
|
|
1137
1304
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
1138
1305
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1150,6 +1317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1150
1317
|
[dataOptions]="dataOptions"
|
|
1151
1318
|
[filters]="filters"
|
|
1152
1319
|
[highlights]="highlights"
|
|
1320
|
+
[styleOptions]="styleOptions"
|
|
1153
1321
|
[beforeRender]="beforeRender"
|
|
1154
1322
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
1155
1323
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1213,6 +1381,7 @@ PolarChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
1213
1381
|
[dataOptions]="dataOptions"
|
|
1214
1382
|
[filters]="filters"
|
|
1215
1383
|
[highlights]="highlights"
|
|
1384
|
+
[styleOptions]="styleOptions"
|
|
1216
1385
|
[beforeRender]="beforeRender"
|
|
1217
1386
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
1218
1387
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1230,6 +1399,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1230
1399
|
[dataOptions]="dataOptions"
|
|
1231
1400
|
[filters]="filters"
|
|
1232
1401
|
[highlights]="highlights"
|
|
1402
|
+
[styleOptions]="styleOptions"
|
|
1233
1403
|
[beforeRender]="beforeRender"
|
|
1234
1404
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
1235
1405
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1294,6 +1464,7 @@ TreemapChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
1294
1464
|
[dataOptions]="dataOptions"
|
|
1295
1465
|
[filters]="filters"
|
|
1296
1466
|
[highlights]="highlights"
|
|
1467
|
+
[styleOptions]="styleOptions"
|
|
1297
1468
|
[beforeRender]="beforeRender"
|
|
1298
1469
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
1299
1470
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1311,6 +1482,90 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1311
1482
|
[dataOptions]="dataOptions"
|
|
1312
1483
|
[filters]="filters"
|
|
1313
1484
|
[highlights]="highlights"
|
|
1485
|
+
[styleOptions]="styleOptions"
|
|
1486
|
+
[beforeRender]="beforeRender"
|
|
1487
|
+
(dataPointClick)="dataPointClick.emit($event)"
|
|
1488
|
+
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
1489
|
+
(dataPointsSelect)="dataPointsSelect.emit($event)"
|
|
1490
|
+
/>
|
|
1491
|
+
`,
|
|
1492
|
+
}]
|
|
1493
|
+
}], propDecorators: { dataSet: [{
|
|
1494
|
+
type: Input
|
|
1495
|
+
}], dataOptions: [{
|
|
1496
|
+
type: Input
|
|
1497
|
+
}], filters: [{
|
|
1498
|
+
type: Input
|
|
1499
|
+
}], highlights: [{
|
|
1500
|
+
type: Input
|
|
1501
|
+
}], styleOptions: [{
|
|
1502
|
+
type: Input
|
|
1503
|
+
}], beforeRender: [{
|
|
1504
|
+
type: Input
|
|
1505
|
+
}], dataPointClick: [{
|
|
1506
|
+
type: Output
|
|
1507
|
+
}], dataPointContextMenu: [{
|
|
1508
|
+
type: Output
|
|
1509
|
+
}], dataPointsSelect: [{
|
|
1510
|
+
type: Output
|
|
1511
|
+
}] } });
|
|
1512
|
+
|
|
1513
|
+
/**
|
|
1514
|
+
* A component displaying hierarchical data in the form of nested slices.
|
|
1515
|
+
* This type of chart can be used instead of a pie chart for comparing a large number of categories and sub-categories.
|
|
1516
|
+
* See [Sunburst Chart](https://docs.sisense.com/main/SisenseLinux/sunburst-widget.htm) for more information.
|
|
1517
|
+
*/
|
|
1518
|
+
class SunburstChartComponent {
|
|
1519
|
+
constructor() {
|
|
1520
|
+
/**
|
|
1521
|
+
* {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointClick}
|
|
1522
|
+
*
|
|
1523
|
+
* @category Callbacks
|
|
1524
|
+
*/
|
|
1525
|
+
this.dataPointClick = new EventEmitter();
|
|
1526
|
+
/**
|
|
1527
|
+
* {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointContextMenu}
|
|
1528
|
+
*
|
|
1529
|
+
* @category Callbacks
|
|
1530
|
+
*/
|
|
1531
|
+
this.dataPointContextMenu = new EventEmitter();
|
|
1532
|
+
/**
|
|
1533
|
+
* {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointsSelected}
|
|
1534
|
+
*
|
|
1535
|
+
* @category Callbacks
|
|
1536
|
+
*/
|
|
1537
|
+
this.dataPointsSelect = new EventEmitter();
|
|
1538
|
+
/** @internal */
|
|
1539
|
+
this.chartType = 'sunburst';
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
SunburstChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SunburstChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1543
|
+
SunburstChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SunburstChartComponent, selector: "csdk-sunburst-chart", inputs: { dataSet: "dataSet", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", beforeRender: "beforeRender" }, outputs: { dataPointClick: "dataPointClick", dataPointContextMenu: "dataPointContextMenu", dataPointsSelect: "dataPointsSelect" }, ngImport: i0, template: `
|
|
1544
|
+
<csdk-chart
|
|
1545
|
+
[chartType]="chartType"
|
|
1546
|
+
[dataSet]="dataSet"
|
|
1547
|
+
[dataOptions]="dataOptions"
|
|
1548
|
+
[filters]="filters"
|
|
1549
|
+
[highlights]="highlights"
|
|
1550
|
+
[styleOptions]="styleOptions"
|
|
1551
|
+
[beforeRender]="beforeRender"
|
|
1552
|
+
(dataPointClick)="dataPointClick.emit($event)"
|
|
1553
|
+
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
1554
|
+
(dataPointsSelect)="dataPointsSelect.emit($event)"
|
|
1555
|
+
/>
|
|
1556
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ChartComponent, selector: "csdk-chart", inputs: ["chartType", "dataSet", "dataOptions", "filters", "highlights", "styleOptions", "beforeRender"], outputs: ["dataPointClick", "dataPointContextMenu", "dataPointsSelect"] }] });
|
|
1557
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SunburstChartComponent, decorators: [{
|
|
1558
|
+
type: Component,
|
|
1559
|
+
args: [{
|
|
1560
|
+
selector: 'csdk-sunburst-chart',
|
|
1561
|
+
template: `
|
|
1562
|
+
<csdk-chart
|
|
1563
|
+
[chartType]="chartType"
|
|
1564
|
+
[dataSet]="dataSet"
|
|
1565
|
+
[dataOptions]="dataOptions"
|
|
1566
|
+
[filters]="filters"
|
|
1567
|
+
[highlights]="highlights"
|
|
1568
|
+
[styleOptions]="styleOptions"
|
|
1314
1569
|
[beforeRender]="beforeRender"
|
|
1315
1570
|
(dataPointClick)="dataPointClick.emit($event)"
|
|
1316
1571
|
(dataPointContextMenu)="dataPointContextMenu.emit($event)"
|
|
@@ -1377,7 +1632,7 @@ class TableWidgetComponent {
|
|
|
1377
1632
|
}
|
|
1378
1633
|
}
|
|
1379
1634
|
TableWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableWidgetComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1380
|
-
TableWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableWidgetComponent, selector: "csdk-table-widget", inputs: { dataSource: "dataSource", dataOptions: "dataOptions", filters: "filters", styleOptions: "styleOptions", widgetStyleOptions: "widgetStyleOptions", title: "title", description: "description" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #preact style=\"width: 100%; height: 100%\"></div
|
|
1635
|
+
TableWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TableWidgetComponent, selector: "csdk-table-widget", inputs: { dataSource: "dataSource", dataOptions: "dataOptions", filters: "filters", styleOptions: "styleOptions", widgetStyleOptions: "widgetStyleOptions", title: "title", description: "description" }, 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 });
|
|
1381
1636
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableWidgetComponent, decorators: [{
|
|
1382
1637
|
type: Component,
|
|
1383
1638
|
args: [{
|
|
@@ -1434,10 +1689,12 @@ class DashboardWidgetComponent {
|
|
|
1434
1689
|
filters: this.filters,
|
|
1435
1690
|
highlights: this.highlights,
|
|
1436
1691
|
filtersMergeStrategy: this.filtersMergeStrategy,
|
|
1692
|
+
includeDashboardFilters: this.includeDashboardFilters,
|
|
1437
1693
|
title: this.title,
|
|
1438
1694
|
description: this.description,
|
|
1439
1695
|
styleOptions: this.styleOptions,
|
|
1440
1696
|
widgetStyleOptions: this.widgetStyleOptions,
|
|
1697
|
+
highlightSelectionDisabled: this.highlightSelectionDisabled,
|
|
1441
1698
|
drilldownOptions: this.drilldownOptions,
|
|
1442
1699
|
};
|
|
1443
1700
|
return createElement(DashboardWidget, props);
|
|
@@ -1448,7 +1705,7 @@ class DashboardWidgetComponent {
|
|
|
1448
1705
|
}
|
|
1449
1706
|
}
|
|
1450
1707
|
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 });
|
|
1451
|
-
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", title: "title", description: "description", styleOptions: "styleOptions", widgetStyleOptions: "widgetStyleOptions", drilldownOptions: "drilldownOptions" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #preact style=\"width: 100%; height: 100%\"></div
|
|
1708
|
+
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", widgetStyleOptions: "widgetStyleOptions", 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 });
|
|
1452
1709
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardWidgetComponent, decorators: [{
|
|
1453
1710
|
type: Component,
|
|
1454
1711
|
args: [{
|
|
@@ -1468,6 +1725,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1468
1725
|
type: Input
|
|
1469
1726
|
}], filtersMergeStrategy: [{
|
|
1470
1727
|
type: Input
|
|
1728
|
+
}], includeDashboardFilters: [{
|
|
1729
|
+
type: Input
|
|
1471
1730
|
}], title: [{
|
|
1472
1731
|
type: Input
|
|
1473
1732
|
}], description: [{
|
|
@@ -1476,36 +1735,562 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1476
1735
|
type: Input
|
|
1477
1736
|
}], widgetStyleOptions: [{
|
|
1478
1737
|
type: Input
|
|
1738
|
+
}], highlightSelectionDisabled: [{
|
|
1739
|
+
type: Input
|
|
1479
1740
|
}], drilldownOptions: [{
|
|
1480
1741
|
type: Input
|
|
1481
1742
|
}] } });
|
|
1482
1743
|
|
|
1483
1744
|
/**
|
|
1484
|
-
*
|
|
1745
|
+
* Member Filter Tile Component
|
|
1746
|
+
*/
|
|
1747
|
+
class MemberFilterTileComponent {
|
|
1748
|
+
/**
|
|
1749
|
+
* Constructor for the `MemberFilterTileComponent`.
|
|
1750
|
+
*
|
|
1751
|
+
* @param sisenseContextService - Sisense context service
|
|
1752
|
+
* @param themeService - Theme service
|
|
1753
|
+
*/
|
|
1754
|
+
constructor(
|
|
1755
|
+
/**
|
|
1756
|
+
* Sisense context service
|
|
1757
|
+
*
|
|
1758
|
+
* @category Constructor
|
|
1759
|
+
*/
|
|
1760
|
+
sisenseContextService,
|
|
1761
|
+
/**
|
|
1762
|
+
* Theme service
|
|
1763
|
+
*
|
|
1764
|
+
* @category Constructor
|
|
1765
|
+
*/
|
|
1766
|
+
themeService) {
|
|
1767
|
+
this.sisenseContextService = sisenseContextService;
|
|
1768
|
+
this.themeService = themeService;
|
|
1769
|
+
/**
|
|
1770
|
+
* {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.onChange}
|
|
1771
|
+
*/
|
|
1772
|
+
this.filterChange = new EventEmitter();
|
|
1773
|
+
this.componentAdapter = new ComponentAdapter(() => this.createPreactComponent(), [
|
|
1774
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
1775
|
+
createThemeContextConnector(this.themeService),
|
|
1776
|
+
]);
|
|
1777
|
+
}
|
|
1778
|
+
/**
|
|
1779
|
+
* @internal
|
|
1780
|
+
*/
|
|
1781
|
+
ngAfterViewInit() {
|
|
1782
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
1783
|
+
}
|
|
1784
|
+
/**
|
|
1785
|
+
* @internal
|
|
1786
|
+
*/
|
|
1787
|
+
ngOnChanges() {
|
|
1788
|
+
if (this.preactRef) {
|
|
1789
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
1790
|
+
}
|
|
1791
|
+
}
|
|
1792
|
+
createPreactComponent() {
|
|
1793
|
+
const props = {
|
|
1794
|
+
title: this.title,
|
|
1795
|
+
dataSource: this.dataSource,
|
|
1796
|
+
attribute: this.attribute,
|
|
1797
|
+
filter: this.filter,
|
|
1798
|
+
onChange: (...[filter]) => this.filterChange.emit({ filter }),
|
|
1799
|
+
};
|
|
1800
|
+
return createElement(MemberFilterTile, props);
|
|
1801
|
+
}
|
|
1802
|
+
/**
|
|
1803
|
+
* @internal
|
|
1804
|
+
*/
|
|
1805
|
+
ngOnDestroy() {
|
|
1806
|
+
this.componentAdapter.destroy();
|
|
1807
|
+
}
|
|
1808
|
+
}
|
|
1809
|
+
MemberFilterTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MemberFilterTileComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1810
|
+
MemberFilterTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MemberFilterTileComponent, selector: "csdk-member-filter-tile", inputs: { title: "title", dataSource: "dataSource", attribute: "attribute", filter: "filter" }, outputs: { filterChange: "filterChange" }, 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 });
|
|
1811
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MemberFilterTileComponent, decorators: [{
|
|
1812
|
+
type: Component,
|
|
1813
|
+
args: [{
|
|
1814
|
+
selector: 'csdk-member-filter-tile',
|
|
1815
|
+
template,
|
|
1816
|
+
}]
|
|
1817
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
1818
|
+
type: ViewChild,
|
|
1819
|
+
args: [rootId]
|
|
1820
|
+
}], title: [{
|
|
1821
|
+
type: Input
|
|
1822
|
+
}], dataSource: [{
|
|
1823
|
+
type: Input
|
|
1824
|
+
}], attribute: [{
|
|
1825
|
+
type: Input
|
|
1826
|
+
}], filter: [{
|
|
1827
|
+
type: Input
|
|
1828
|
+
}], filterChange: [{
|
|
1829
|
+
type: Output
|
|
1830
|
+
}] } });
|
|
1831
|
+
|
|
1832
|
+
/**
|
|
1833
|
+
* An Angular component designed to add drilldown functionality to any type of chart.
|
|
1485
1834
|
*
|
|
1486
|
-
*
|
|
1487
|
-
*
|
|
1835
|
+
* It acts as a wrapper around a given chart component, enhancing it with drilldown capabilities
|
|
1836
|
+
*
|
|
1837
|
+
* The widget offers several features including:
|
|
1838
|
+
* - A context menu for initiating drilldown actions (can be provided as a custom component)
|
|
1839
|
+
* - Breadcrumbs that not only allow for drilldown selection slicing but also
|
|
1840
|
+
* provide an option to clear the selection (can be provided as a custom component)
|
|
1841
|
+
* - Filters specifically created for drilldown operation
|
|
1842
|
+
* - An option to navigate to the next drilldown dimension
|
|
1488
1843
|
*
|
|
1844
|
+
* When an `initialDimension` is specified, the `drilldownDimension` will automatically inherit its value,
|
|
1845
|
+
* even before any points on the chart are selected.
|
|
1846
|
+
* This allows for complete control over the chart's dimensions to be handed over to the DrilldownWidget
|
|
1847
|
+
*
|
|
1848
|
+
* @example
|
|
1849
|
+
* An example of using the `csdk-drilldown-widget` component to plot a `csdk-column-chart`
|
|
1850
|
+
* over the Sample Healthcare data source hosted in a Sisense instance:
|
|
1489
1851
|
* ```ts
|
|
1490
|
-
*
|
|
1491
|
-
*
|
|
1492
|
-
*
|
|
1493
|
-
*
|
|
1494
|
-
*
|
|
1852
|
+
* // Component behavior in .component.ts
|
|
1853
|
+
* chart = {
|
|
1854
|
+
* dataOptions: {
|
|
1855
|
+
* category: [DM.Divisions.Divison_name],
|
|
1856
|
+
* value: [measures.sum(DM.Admissions.Cost_of_admission)],
|
|
1857
|
+
* breakBy: [],
|
|
1858
|
+
* },
|
|
1859
|
+
* dataPointContextMenu: ({ point, nativeEvent }: { point: any; nativeEvent: MouseEvent }) => {
|
|
1860
|
+
* this.drilldownResult?.onDataPointsSelected?.([point], nativeEvent);
|
|
1861
|
+
* this.drilldownResult?.onContextMenu({
|
|
1862
|
+
* left: nativeEvent.clientX,
|
|
1863
|
+
* top: nativeEvent.clientY,
|
|
1864
|
+
* });
|
|
1865
|
+
* }
|
|
1866
|
+
* }
|
|
1495
1867
|
*
|
|
1496
|
-
*
|
|
1497
|
-
*
|
|
1498
|
-
*
|
|
1499
|
-
*
|
|
1500
|
-
*
|
|
1501
|
-
*
|
|
1502
|
-
*
|
|
1503
|
-
*
|
|
1504
|
-
*
|
|
1505
|
-
*
|
|
1506
|
-
*
|
|
1868
|
+
* drilldownResult?: CustomDrilldownResult;
|
|
1869
|
+
*
|
|
1870
|
+
* drilldown = {
|
|
1871
|
+
* drilldownDimensions: [DM.Patients.Gender, DM.Admissions.Surgical_Procedure],
|
|
1872
|
+
* initialDimension: DM.Divisions.Divison_name,
|
|
1873
|
+
* drilldownChange: (drilldownResult: CustomDrilldownResult) => {
|
|
1874
|
+
* this.drilldownResult = drilldownResult;
|
|
1875
|
+
* this.chart.dataOptions = {
|
|
1876
|
+
* ...this.chart.dataOptions,
|
|
1877
|
+
* category: [drilldownResult.drilldownDimension]
|
|
1878
|
+
* }
|
|
1879
|
+
* }
|
|
1880
|
+
* };
|
|
1507
1881
|
* ```
|
|
1508
|
-
|
|
1882
|
+
* ```html
|
|
1883
|
+
* <!--Component HTML template in .component.html-->
|
|
1884
|
+
* <csdk-drilldown-widget
|
|
1885
|
+
* [drilldownDimensions]="drilldown.drilldownDimensions"
|
|
1886
|
+
* [initialDimension]="drilldown.initialDimension"
|
|
1887
|
+
* (drilldownResultChange)="drilldown.drilldownChange($event)"
|
|
1888
|
+
* >
|
|
1889
|
+
* <csdk-column-chart
|
|
1890
|
+
* [dataSet]="DM.DataSource"
|
|
1891
|
+
* [dataOptions]="chart.dataOptions"
|
|
1892
|
+
* [filters]="drilldownResult?.drilldownFilters || []"
|
|
1893
|
+
* (dataPointContextMenu)="chart.dataPointContextMenu($event)"
|
|
1894
|
+
* />
|
|
1895
|
+
* </csdk-drilldown-widget>
|
|
1896
|
+
* ```
|
|
1897
|
+
*/
|
|
1898
|
+
class DrilldownWidgetComponent {
|
|
1899
|
+
/**
|
|
1900
|
+
* Constructor for the `DrilldownWidgetComponent`.
|
|
1901
|
+
*
|
|
1902
|
+
* @param sisenseContextService - Sisense context service
|
|
1903
|
+
* @param themeService - Theme service
|
|
1904
|
+
*/
|
|
1905
|
+
constructor(
|
|
1906
|
+
/**
|
|
1907
|
+
* Sisense context service
|
|
1908
|
+
*
|
|
1909
|
+
* @category Constructor
|
|
1910
|
+
*/
|
|
1911
|
+
sisenseContextService,
|
|
1912
|
+
/**
|
|
1913
|
+
* Theme service
|
|
1914
|
+
*
|
|
1915
|
+
* @category Constructor
|
|
1916
|
+
*/
|
|
1917
|
+
themeService) {
|
|
1918
|
+
this.sisenseContextService = sisenseContextService;
|
|
1919
|
+
this.themeService = themeService;
|
|
1920
|
+
this.drilldownResultChange = new EventEmitter();
|
|
1921
|
+
this.componentAdapter = new ComponentAdapter(() => this.createPreactComponent(), [
|
|
1922
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
1923
|
+
createThemeContextConnector(this.themeService),
|
|
1924
|
+
]);
|
|
1925
|
+
}
|
|
1926
|
+
/**
|
|
1927
|
+
* @internal
|
|
1928
|
+
*/
|
|
1929
|
+
ngAfterViewInit() {
|
|
1930
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
1931
|
+
}
|
|
1932
|
+
/**
|
|
1933
|
+
* @internal
|
|
1934
|
+
*/
|
|
1935
|
+
ngOnChanges() {
|
|
1936
|
+
if (this.preactRef) {
|
|
1937
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
1938
|
+
}
|
|
1939
|
+
}
|
|
1940
|
+
createPreactComponent() {
|
|
1941
|
+
const props = {
|
|
1942
|
+
drilldownDimensions: this.drilldownDimensions,
|
|
1943
|
+
initialDimension: this.initialDimension,
|
|
1944
|
+
config: {
|
|
1945
|
+
...this.config,
|
|
1946
|
+
...(this.config?.breadcrumbsComponent && {
|
|
1947
|
+
breadcrumbsComponent: createWrapperElementHandler(this.config.breadcrumbsComponent),
|
|
1948
|
+
}),
|
|
1949
|
+
...(this.config?.contextMenuComponent && {
|
|
1950
|
+
contextMenuComponent: (contextMenuProps) => createWrapperElement(this.config.contextMenuComponent(contextMenuProps)),
|
|
1951
|
+
}),
|
|
1952
|
+
},
|
|
1953
|
+
};
|
|
1954
|
+
return createElement(DrilldownWidget, props, (customDrilldownResult) => {
|
|
1955
|
+
const { breadcrumbsComponent } = customDrilldownResult;
|
|
1956
|
+
this.drilldownResultChange.emit({
|
|
1957
|
+
...customDrilldownResult,
|
|
1958
|
+
...(breadcrumbsComponent && {
|
|
1959
|
+
breadcrumbsComponent: { render: createComponentRenderer(breadcrumbsComponent) },
|
|
1960
|
+
}),
|
|
1961
|
+
});
|
|
1962
|
+
return createWrapperElement(this.preactContentRef.nativeElement);
|
|
1963
|
+
});
|
|
1964
|
+
}
|
|
1965
|
+
/**
|
|
1966
|
+
* @internal
|
|
1967
|
+
*/
|
|
1968
|
+
ngOnDestroy() {
|
|
1969
|
+
this.componentAdapter.destroy();
|
|
1970
|
+
}
|
|
1971
|
+
}
|
|
1972
|
+
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 });
|
|
1973
|
+
DrilldownWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DrilldownWidgetComponent, selector: "csdk-drilldown-widget", inputs: { drilldownDimensions: "drilldownDimensions", 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 });
|
|
1974
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DrilldownWidgetComponent, decorators: [{
|
|
1975
|
+
type: Component,
|
|
1976
|
+
args: [{
|
|
1977
|
+
selector: 'csdk-drilldown-widget',
|
|
1978
|
+
template: templateWithContent,
|
|
1979
|
+
}]
|
|
1980
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
1981
|
+
type: ViewChild,
|
|
1982
|
+
args: [rootId]
|
|
1983
|
+
}], preactContentRef: [{
|
|
1984
|
+
type: ViewChild,
|
|
1985
|
+
args: [rootContentId]
|
|
1986
|
+
}], drilldownDimensions: [{
|
|
1987
|
+
type: Input
|
|
1988
|
+
}], initialDimension: [{
|
|
1989
|
+
type: Input
|
|
1990
|
+
}], config: [{
|
|
1991
|
+
type: Input
|
|
1992
|
+
}], drilldownResultChange: [{
|
|
1993
|
+
type: Output
|
|
1994
|
+
}] } });
|
|
1995
|
+
|
|
1996
|
+
/**
|
|
1997
|
+
* Date Range Filter Tile Component
|
|
1998
|
+
*/
|
|
1999
|
+
class DateRangeFilterTileComponent {
|
|
2000
|
+
/**
|
|
2001
|
+
* Constructor for the `DateRangeFilterTileComponent`.
|
|
2002
|
+
*
|
|
2003
|
+
* @param sisenseContextService - Sisense context service
|
|
2004
|
+
* @param themeService - Theme service
|
|
2005
|
+
*/
|
|
2006
|
+
constructor(
|
|
2007
|
+
/**
|
|
2008
|
+
* Sisense context service
|
|
2009
|
+
*
|
|
2010
|
+
* @category Constructor
|
|
2011
|
+
*/
|
|
2012
|
+
sisenseContextService,
|
|
2013
|
+
/**
|
|
2014
|
+
* Theme service
|
|
2015
|
+
*
|
|
2016
|
+
* @category Constructor
|
|
2017
|
+
*/
|
|
2018
|
+
themeService) {
|
|
2019
|
+
this.sisenseContextService = sisenseContextService;
|
|
2020
|
+
this.themeService = themeService;
|
|
2021
|
+
/**
|
|
2022
|
+
* {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.onChange}
|
|
2023
|
+
*/
|
|
2024
|
+
this.filterChange = new EventEmitter();
|
|
2025
|
+
this.componentAdapter = new ComponentAdapter(() => this.createPreactComponent(), [
|
|
2026
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
2027
|
+
createThemeContextConnector(this.themeService),
|
|
2028
|
+
]);
|
|
2029
|
+
}
|
|
2030
|
+
/**
|
|
2031
|
+
* @internal
|
|
2032
|
+
*/
|
|
2033
|
+
ngAfterViewInit() {
|
|
2034
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
2035
|
+
}
|
|
2036
|
+
/**
|
|
2037
|
+
* @internal
|
|
2038
|
+
*/
|
|
2039
|
+
ngOnChanges() {
|
|
2040
|
+
if (this.preactRef) {
|
|
2041
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
2042
|
+
}
|
|
2043
|
+
}
|
|
2044
|
+
createPreactComponent() {
|
|
2045
|
+
const props = {
|
|
2046
|
+
title: this.title,
|
|
2047
|
+
attribute: this.attribute,
|
|
2048
|
+
dataSource: this.dataSource,
|
|
2049
|
+
filter: this.filter,
|
|
2050
|
+
earliestDate: this.earliestDate,
|
|
2051
|
+
lastDate: this.lastDate,
|
|
2052
|
+
onChange: (...[filter]) => this.filterChange.emit({ filter }),
|
|
2053
|
+
};
|
|
2054
|
+
return createElement(DateRangeFilterTile, props);
|
|
2055
|
+
}
|
|
2056
|
+
/**
|
|
2057
|
+
* @internal
|
|
2058
|
+
*/
|
|
2059
|
+
ngOnDestroy() {
|
|
2060
|
+
this.componentAdapter.destroy();
|
|
2061
|
+
}
|
|
2062
|
+
}
|
|
2063
|
+
DateRangeFilterTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateRangeFilterTileComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2064
|
+
DateRangeFilterTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DateRangeFilterTileComponent, selector: "csdk-date-range-filter-tile", inputs: { title: "title", attribute: "attribute", dataSource: "dataSource", filter: "filter", earliestDate: "earliestDate", lastDate: "lastDate" }, outputs: { filterChange: "filterChange" }, 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 });
|
|
2065
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateRangeFilterTileComponent, decorators: [{
|
|
2066
|
+
type: Component,
|
|
2067
|
+
args: [{
|
|
2068
|
+
selector: 'csdk-date-range-filter-tile',
|
|
2069
|
+
template,
|
|
2070
|
+
}]
|
|
2071
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
2072
|
+
type: ViewChild,
|
|
2073
|
+
args: [rootId]
|
|
2074
|
+
}], title: [{
|
|
2075
|
+
type: Input
|
|
2076
|
+
}], attribute: [{
|
|
2077
|
+
type: Input
|
|
2078
|
+
}], dataSource: [{
|
|
2079
|
+
type: Input
|
|
2080
|
+
}], filter: [{
|
|
2081
|
+
type: Input
|
|
2082
|
+
}], earliestDate: [{
|
|
2083
|
+
type: Input
|
|
2084
|
+
}], lastDate: [{
|
|
2085
|
+
type: Input
|
|
2086
|
+
}], filterChange: [{
|
|
2087
|
+
type: Output
|
|
2088
|
+
}] } });
|
|
2089
|
+
|
|
2090
|
+
/**
|
|
2091
|
+
* Drilldown Breadcrumbs Component
|
|
2092
|
+
*/
|
|
2093
|
+
class DrilldownBreadcrumbsComponent {
|
|
2094
|
+
/**
|
|
2095
|
+
* Constructor for the `DrilldownBreadcrumbsComponent`.
|
|
2096
|
+
*
|
|
2097
|
+
* @param sisenseContextService - Sisense context service
|
|
2098
|
+
* @param themeService - Theme service
|
|
2099
|
+
*/
|
|
2100
|
+
constructor(
|
|
2101
|
+
/**
|
|
2102
|
+
* Sisense context service
|
|
2103
|
+
*
|
|
2104
|
+
* @category Constructor
|
|
2105
|
+
*/
|
|
2106
|
+
sisenseContextService,
|
|
2107
|
+
/**
|
|
2108
|
+
* Theme service
|
|
2109
|
+
*
|
|
2110
|
+
* @category Constructor
|
|
2111
|
+
*/
|
|
2112
|
+
themeService) {
|
|
2113
|
+
this.sisenseContextService = sisenseContextService;
|
|
2114
|
+
this.themeService = themeService;
|
|
2115
|
+
/**
|
|
2116
|
+
* {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.clearDrilldownSelections}
|
|
2117
|
+
*
|
|
2118
|
+
* @category Widget
|
|
2119
|
+
*/
|
|
2120
|
+
this.drilldownSelectionsClear = new EventEmitter();
|
|
2121
|
+
/**
|
|
2122
|
+
* {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.sliceDrilldownSelections}
|
|
2123
|
+
*
|
|
2124
|
+
* @category Widget
|
|
2125
|
+
*/
|
|
2126
|
+
this.drilldownSelectionsSlice = new EventEmitter();
|
|
2127
|
+
this.componentAdapter = new ComponentAdapter(() => this.createPreactComponent(), [
|
|
2128
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
2129
|
+
createThemeContextConnector(this.themeService),
|
|
2130
|
+
]);
|
|
2131
|
+
}
|
|
2132
|
+
/**
|
|
2133
|
+
* @internal
|
|
2134
|
+
*/
|
|
2135
|
+
ngAfterViewInit() {
|
|
2136
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
2137
|
+
}
|
|
2138
|
+
/**
|
|
2139
|
+
* @internal
|
|
2140
|
+
*/
|
|
2141
|
+
ngOnChanges() {
|
|
2142
|
+
if (this.preactRef) {
|
|
2143
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
2144
|
+
}
|
|
2145
|
+
}
|
|
2146
|
+
createPreactComponent() {
|
|
2147
|
+
const props = {
|
|
2148
|
+
filtersDisplayValues: this.filtersDisplayValues,
|
|
2149
|
+
currentDimension: this.currentDimension,
|
|
2150
|
+
clearDrilldownSelections: () => this.drilldownSelectionsClear.emit(),
|
|
2151
|
+
sliceDrilldownSelections: (i) => this.drilldownSelectionsSlice.emit(i),
|
|
2152
|
+
};
|
|
2153
|
+
return createElement(DrilldownBreadcrumbs, props);
|
|
2154
|
+
}
|
|
2155
|
+
/**
|
|
2156
|
+
* @internal
|
|
2157
|
+
*/
|
|
2158
|
+
ngOnDestroy() {
|
|
2159
|
+
this.componentAdapter.destroy();
|
|
2160
|
+
}
|
|
2161
|
+
}
|
|
2162
|
+
DrilldownBreadcrumbsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DrilldownBreadcrumbsComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2163
|
+
DrilldownBreadcrumbsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DrilldownBreadcrumbsComponent, selector: "csdk-drilldown-breadcrumbs", inputs: { filtersDisplayValues: "filtersDisplayValues", currentDimension: "currentDimension" }, outputs: { drilldownSelectionsClear: "drilldownSelectionsClear", drilldownSelectionsSlice: "drilldownSelectionsSlice" }, 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 });
|
|
2164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DrilldownBreadcrumbsComponent, decorators: [{
|
|
2165
|
+
type: Component,
|
|
2166
|
+
args: [{
|
|
2167
|
+
selector: 'csdk-drilldown-breadcrumbs',
|
|
2168
|
+
template,
|
|
2169
|
+
}]
|
|
2170
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
2171
|
+
type: ViewChild,
|
|
2172
|
+
args: [rootId]
|
|
2173
|
+
}], filtersDisplayValues: [{
|
|
2174
|
+
type: Input
|
|
2175
|
+
}], currentDimension: [{
|
|
2176
|
+
type: Input
|
|
2177
|
+
}], drilldownSelectionsClear: [{
|
|
2178
|
+
type: Output
|
|
2179
|
+
}], drilldownSelectionsSlice: [{
|
|
2180
|
+
type: Output
|
|
2181
|
+
}] } });
|
|
2182
|
+
|
|
2183
|
+
/**
|
|
2184
|
+
* Context Menu Component
|
|
2185
|
+
*/
|
|
2186
|
+
class ContextMenuComponent {
|
|
2187
|
+
/**
|
|
2188
|
+
* Constructor for the `ContextMenuComponent`.
|
|
2189
|
+
*
|
|
2190
|
+
* @param sisenseContextService - Sisense context service
|
|
2191
|
+
* @param themeService - Theme service
|
|
2192
|
+
*/
|
|
2193
|
+
constructor(
|
|
2194
|
+
/**
|
|
2195
|
+
* Sisense context service
|
|
2196
|
+
*
|
|
2197
|
+
* @category Constructor
|
|
2198
|
+
*/
|
|
2199
|
+
sisenseContextService,
|
|
2200
|
+
/**
|
|
2201
|
+
* Theme service
|
|
2202
|
+
*
|
|
2203
|
+
* @category Constructor
|
|
2204
|
+
*/
|
|
2205
|
+
themeService) {
|
|
2206
|
+
this.sisenseContextService = sisenseContextService;
|
|
2207
|
+
this.themeService = themeService;
|
|
2208
|
+
/**
|
|
2209
|
+
* {@inheritDoc @sisense/sdk-ui!ContextMenuProps.closeContextMenu}
|
|
2210
|
+
*/
|
|
2211
|
+
this.contextMenuClose = new EventEmitter();
|
|
2212
|
+
this.componentAdapter = new ComponentAdapter(() => this.createPreactComponent(), [
|
|
2213
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
2214
|
+
createThemeContextConnector(this.themeService),
|
|
2215
|
+
]);
|
|
2216
|
+
}
|
|
2217
|
+
/**
|
|
2218
|
+
* @internal
|
|
2219
|
+
*/
|
|
2220
|
+
ngAfterViewInit() {
|
|
2221
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
2222
|
+
}
|
|
2223
|
+
/**
|
|
2224
|
+
* @internal
|
|
2225
|
+
*/
|
|
2226
|
+
ngOnChanges() {
|
|
2227
|
+
if (this.preactRef) {
|
|
2228
|
+
this.componentAdapter.render(this.preactRef.nativeElement);
|
|
2229
|
+
}
|
|
2230
|
+
}
|
|
2231
|
+
createPreactComponent() {
|
|
2232
|
+
const props = {
|
|
2233
|
+
position: this.position,
|
|
2234
|
+
itemSections: this.itemSections,
|
|
2235
|
+
closeContextMenu: () => this.contextMenuClose.emit(),
|
|
2236
|
+
};
|
|
2237
|
+
return createElement(ContextMenu, props, createWrapperElement(this.preactContentRef.nativeElement));
|
|
2238
|
+
}
|
|
2239
|
+
/**
|
|
2240
|
+
* @internal
|
|
2241
|
+
*/
|
|
2242
|
+
ngOnDestroy() {
|
|
2243
|
+
this.componentAdapter.destroy();
|
|
2244
|
+
}
|
|
2245
|
+
}
|
|
2246
|
+
ContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContextMenuComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2247
|
+
ContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ContextMenuComponent, selector: "csdk-context-menu", inputs: { position: "position", itemSections: "itemSections" }, outputs: { contextMenuClose: "contextMenuClose" }, 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 });
|
|
2248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ContextMenuComponent, decorators: [{
|
|
2249
|
+
type: Component,
|
|
2250
|
+
args: [{
|
|
2251
|
+
selector: 'csdk-context-menu',
|
|
2252
|
+
template: templateWithContent,
|
|
2253
|
+
}]
|
|
2254
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
2255
|
+
type: ViewChild,
|
|
2256
|
+
args: [rootId]
|
|
2257
|
+
}], preactContentRef: [{
|
|
2258
|
+
type: ViewChild,
|
|
2259
|
+
args: [rootContentId]
|
|
2260
|
+
}], position: [{
|
|
2261
|
+
type: Input
|
|
2262
|
+
}], itemSections: [{
|
|
2263
|
+
type: Input
|
|
2264
|
+
}], contextMenuClose: [{
|
|
2265
|
+
type: Output
|
|
2266
|
+
}] } });
|
|
2267
|
+
|
|
2268
|
+
/**
|
|
2269
|
+
* SDK UI Module, which is a container for components.
|
|
2270
|
+
*
|
|
2271
|
+
* @example
|
|
2272
|
+
* Example of importing `SdkUiModule` and injecting {@link SisenseContextConfig} into your application:
|
|
2273
|
+
*
|
|
2274
|
+
* ```ts
|
|
2275
|
+
* export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {
|
|
2276
|
+
* url="<instance url>" // replace with the URL of your Sisense instance
|
|
2277
|
+
* token="<api token>" // replace with the API token of your user account
|
|
2278
|
+
* defaultDataSource: DM.DataSource,
|
|
2279
|
+
* };
|
|
2280
|
+
*
|
|
2281
|
+
* @NgModule({
|
|
2282
|
+
* imports: [
|
|
2283
|
+
* BrowserModule,
|
|
2284
|
+
* SdkUiModule,
|
|
2285
|
+
* ],
|
|
2286
|
+
* declarations: [AppComponent],
|
|
2287
|
+
* providers: [
|
|
2288
|
+
* { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },
|
|
2289
|
+
* ],
|
|
2290
|
+
* bootstrap: [AppComponent],
|
|
2291
|
+
* })
|
|
2292
|
+
* ```
|
|
2293
|
+
*/
|
|
1509
2294
|
class SdkUiModule {
|
|
1510
2295
|
}
|
|
1511
2296
|
SdkUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -1523,8 +2308,14 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
1523
2308
|
FunnelChartComponent,
|
|
1524
2309
|
PolarChartComponent,
|
|
1525
2310
|
TreemapChartComponent,
|
|
2311
|
+
SunburstChartComponent,
|
|
1526
2312
|
TableWidgetComponent,
|
|
1527
|
-
DashboardWidgetComponent
|
|
2313
|
+
DashboardWidgetComponent,
|
|
2314
|
+
MemberFilterTileComponent,
|
|
2315
|
+
DrilldownWidgetComponent,
|
|
2316
|
+
DateRangeFilterTileComponent,
|
|
2317
|
+
DrilldownBreadcrumbsComponent,
|
|
2318
|
+
ContextMenuComponent], imports: [CommonModule, DecoratorsModule], exports: [BasicMemberFilterTileComponent,
|
|
1528
2319
|
ChartComponent,
|
|
1529
2320
|
TableComponent,
|
|
1530
2321
|
ChartWidgetComponent,
|
|
@@ -1538,9 +2329,15 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
1538
2329
|
FunnelChartComponent,
|
|
1539
2330
|
PolarChartComponent,
|
|
1540
2331
|
TreemapChartComponent,
|
|
2332
|
+
SunburstChartComponent,
|
|
1541
2333
|
TableWidgetComponent,
|
|
1542
|
-
DashboardWidgetComponent
|
|
1543
|
-
|
|
2334
|
+
DashboardWidgetComponent,
|
|
2335
|
+
MemberFilterTileComponent,
|
|
2336
|
+
DrilldownWidgetComponent,
|
|
2337
|
+
DateRangeFilterTileComponent,
|
|
2338
|
+
DrilldownBreadcrumbsComponent,
|
|
2339
|
+
ContextMenuComponent] });
|
|
2340
|
+
SdkUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, imports: [CommonModule, DecoratorsModule] });
|
|
1544
2341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, decorators: [{
|
|
1545
2342
|
type: NgModule,
|
|
1546
2343
|
args: [{
|
|
@@ -1559,10 +2356,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1559
2356
|
FunnelChartComponent,
|
|
1560
2357
|
PolarChartComponent,
|
|
1561
2358
|
TreemapChartComponent,
|
|
2359
|
+
SunburstChartComponent,
|
|
1562
2360
|
TableWidgetComponent,
|
|
1563
2361
|
DashboardWidgetComponent,
|
|
2362
|
+
MemberFilterTileComponent,
|
|
2363
|
+
DrilldownWidgetComponent,
|
|
2364
|
+
DateRangeFilterTileComponent,
|
|
2365
|
+
DrilldownBreadcrumbsComponent,
|
|
2366
|
+
ContextMenuComponent,
|
|
1564
2367
|
],
|
|
1565
|
-
imports: [CommonModule],
|
|
2368
|
+
imports: [CommonModule, DecoratorsModule],
|
|
1566
2369
|
exports: [
|
|
1567
2370
|
BasicMemberFilterTileComponent,
|
|
1568
2371
|
ChartComponent,
|
|
@@ -1578,52 +2381,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1578
2381
|
FunnelChartComponent,
|
|
1579
2382
|
PolarChartComponent,
|
|
1580
2383
|
TreemapChartComponent,
|
|
2384
|
+
SunburstChartComponent,
|
|
1581
2385
|
TableWidgetComponent,
|
|
1582
2386
|
DashboardWidgetComponent,
|
|
2387
|
+
MemberFilterTileComponent,
|
|
2388
|
+
DrilldownWidgetComponent,
|
|
2389
|
+
DateRangeFilterTileComponent,
|
|
2390
|
+
DrilldownBreadcrumbsComponent,
|
|
2391
|
+
ContextMenuComponent,
|
|
1583
2392
|
],
|
|
1584
2393
|
providers: [],
|
|
1585
2394
|
}]
|
|
1586
2395
|
}] });
|
|
1587
2396
|
|
|
1588
|
-
class QueryService {
|
|
1589
|
-
constructor(sisenseContextService) {
|
|
1590
|
-
this.sisenseContextService = sisenseContextService;
|
|
1591
|
-
}
|
|
1592
|
-
/**
|
|
1593
|
-
* Executes a data query.
|
|
1594
|
-
*
|
|
1595
|
-
* @param params - Query parameters
|
|
1596
|
-
* return Query result
|
|
1597
|
-
*/
|
|
1598
|
-
async executeQuery(params) {
|
|
1599
|
-
const { dataSource, dimensions, measures, filters, highlights, count, offset, onBeforeQuery } = params;
|
|
1600
|
-
const app = await this.sisenseContextService.getApp();
|
|
1601
|
-
const data = await executeQuery({ dataSource, dimensions, measures, filters, highlights, count, offset }, app, { onBeforeQuery });
|
|
1602
|
-
return { data };
|
|
1603
|
-
}
|
|
1604
|
-
/**
|
|
1605
|
-
* Executes a data query extracted from an existing widget in the Sisense instance.
|
|
1606
|
-
*
|
|
1607
|
-
* @param params - Parameters to identify the target widget
|
|
1608
|
-
* @returns Query result
|
|
1609
|
-
*/
|
|
1610
|
-
async executeQueryByWidgetId(params) {
|
|
1611
|
-
const app = await this.sisenseContextService.getApp();
|
|
1612
|
-
return executeQueryByWidgetId({
|
|
1613
|
-
...params,
|
|
1614
|
-
app,
|
|
1615
|
-
});
|
|
1616
|
-
}
|
|
1617
|
-
}
|
|
1618
|
-
QueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1619
|
-
QueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, providedIn: 'root' });
|
|
1620
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, decorators: [{
|
|
1621
|
-
type: Injectable,
|
|
1622
|
-
args: [{
|
|
1623
|
-
providedIn: 'root',
|
|
1624
|
-
}]
|
|
1625
|
-
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
1626
|
-
|
|
1627
2397
|
/*
|
|
1628
2398
|
* Public API Surface of @sisense/sdk-ui-angular
|
|
1629
2399
|
*/
|
|
@@ -1632,5 +2402,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1632
2402
|
* Generated bundle index. Do not edit.
|
|
1633
2403
|
*/
|
|
1634
2404
|
|
|
1635
|
-
export { AreaChartComponent, BarChartComponent, BasicMemberFilterTileComponent, ChartComponent, ChartWidgetComponent, ColumnChartComponent, DashboardWidgetComponent, FunnelChartComponent, IndicatorChartComponent, LineChartComponent, PieChartComponent, PolarChartComponent, QueryService, SISENSE_CONTEXT_CONFIG_TOKEN, ScatterChartComponent, SdkUiModule, SisenseContextService, THEME_CONFIG_TOKEN, TableComponent, TableWidgetComponent, ThemeService, TreemapChartComponent };
|
|
2405
|
+
export { AreaChartComponent, BarChartComponent, BasicMemberFilterTileComponent, ChartComponent, ChartWidgetComponent, ColumnChartComponent, ContextMenuComponent, DashboardService, DashboardWidgetComponent, DateRangeFilterTileComponent, DrilldownBreadcrumbsComponent, DrilldownWidgetComponent, FunnelChartComponent, IndicatorChartComponent, LineChartComponent, MemberFilterTileComponent, PieChartComponent, PolarChartComponent, QueryService, SISENSE_CONTEXT_CONFIG_TOKEN, ScatterChartComponent, SdkUiModule, SisenseContextService, SunburstChartComponent, THEME_CONFIG_TOKEN, TableComponent, TableWidgetComponent, ThemeService, TreemapChartComponent };
|
|
1636
2406
|
//# sourceMappingURL=sisense-sdk-ui-angular.mjs.map
|