@sisense/sdk-ui-angular 0.13.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.
Files changed (67) hide show
  1. package/dist/esm2020/lib/component-wrapper-helpers/template.mjs +12 -2
  2. package/dist/esm2020/lib/components/area-chart.component.mjs +6 -2
  3. package/dist/esm2020/lib/components/bar-chart.component.mjs +6 -2
  4. package/dist/esm2020/lib/components/basic-member-filter-tile.component.mjs +1 -1
  5. package/dist/esm2020/lib/components/chart-widget.component.mjs +6 -3
  6. package/dist/esm2020/lib/components/chart.component.mjs +1 -1
  7. package/dist/esm2020/lib/components/column-chart.component.mjs +6 -2
  8. package/dist/esm2020/lib/components/context-menu.component.mjs +92 -0
  9. package/dist/esm2020/lib/components/dashboard-widget.component.mjs +10 -3
  10. package/dist/esm2020/lib/components/date-range-filter-tile.component.mjs +101 -0
  11. package/dist/esm2020/lib/components/drilldown-breadcrumbs.component.mjs +100 -0
  12. package/dist/esm2020/lib/components/drilldown-widget.component.mjs +171 -0
  13. package/dist/esm2020/lib/components/funnel-chart.component.mjs +5 -2
  14. package/dist/esm2020/lib/components/index.mjs +7 -1
  15. package/dist/esm2020/lib/components/indicator-chart.component.mjs +5 -2
  16. package/dist/esm2020/lib/components/line-chart.component.mjs +5 -2
  17. package/dist/esm2020/lib/components/member-filter-tile.component.mjs +95 -0
  18. package/dist/esm2020/lib/components/pie-chart.component.mjs +6 -2
  19. package/dist/esm2020/lib/components/polar-chart.component.mjs +5 -2
  20. package/dist/esm2020/lib/components/scatter-chart.component.mjs +12 -2
  21. package/dist/esm2020/lib/components/sunburst-chart.component.mjs +86 -0
  22. package/dist/esm2020/lib/components/table-widget.component.mjs +3 -3
  23. package/dist/esm2020/lib/components/table.component.mjs +3 -3
  24. package/dist/esm2020/lib/components/treemap-chart.component.mjs +6 -2
  25. package/dist/esm2020/lib/decorators/decorators.module.mjs +19 -0
  26. package/dist/esm2020/lib/decorators/trackable.decorator.mjs +42 -0
  27. package/dist/esm2020/lib/sdk-ui.module.mjs +31 -6
  28. package/dist/esm2020/lib/services/dashboard.service.mjs +45 -0
  29. package/dist/esm2020/lib/services/index.mjs +2 -1
  30. package/dist/esm2020/lib/services/query.service.mjs +21 -3
  31. package/dist/esm2020/lib/services/theme.service.mjs +10 -4
  32. package/dist/esm2020/version.mjs +2 -0
  33. package/dist/fesm2015/sisense-sdk-ui-angular.mjs +887 -80
  34. package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
  35. package/dist/fesm2020/sisense-sdk-ui-angular.mjs +887 -79
  36. package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
  37. package/dist/lib/component-wrapper-helpers/template.d.ts +2 -0
  38. package/dist/lib/components/area-chart.component.d.ts +3 -1
  39. package/dist/lib/components/bar-chart.component.d.ts +3 -1
  40. package/dist/lib/components/chart-widget.component.d.ts +47 -5
  41. package/dist/lib/components/column-chart.component.d.ts +9 -2
  42. package/dist/lib/components/context-menu.component.d.ts +78 -0
  43. package/dist/lib/components/dashboard-widget.component.d.ts +6 -2
  44. package/dist/lib/components/date-range-filter-tile.component.d.ts +90 -0
  45. package/dist/lib/components/drilldown-breadcrumbs.component.d.ts +86 -0
  46. package/dist/lib/components/drilldown-widget.component.d.ts +146 -0
  47. package/dist/lib/components/funnel-chart.component.d.ts +2 -1
  48. package/dist/lib/components/index.d.ts +6 -0
  49. package/dist/lib/components/indicator-chart.component.d.ts +2 -1
  50. package/dist/lib/components/line-chart.component.d.ts +2 -1
  51. package/dist/lib/components/member-filter-tile.component.d.ts +82 -0
  52. package/dist/lib/components/pie-chart.component.d.ts +3 -1
  53. package/dist/lib/components/polar-chart.component.d.ts +2 -1
  54. package/dist/lib/components/scatter-chart.component.d.ts +9 -1
  55. package/dist/lib/components/sunburst-chart.component.d.ts +69 -0
  56. package/dist/lib/components/table-widget.component.d.ts +29 -3
  57. package/dist/lib/components/table.component.d.ts +5 -5
  58. package/dist/lib/components/treemap-chart.component.d.ts +3 -1
  59. package/dist/lib/decorators/decorators.module.d.ts +9 -0
  60. package/dist/lib/decorators/trackable.decorator.d.ts +11 -0
  61. package/dist/lib/sdk-ui.module.d.ts +11 -4
  62. package/dist/lib/services/dashboard.service.d.ts +24 -0
  63. package/dist/lib/services/index.d.ts +1 -0
  64. package/dist/lib/services/query.service.d.ts +12 -0
  65. package/dist/package.json +12 -13
  66. package/dist/version.d.ts +2 -0
  67. 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, Optional, NgModule } from '@angular/core';
3
- import { ComponentAdapter, createElement, BasicMemberFilterTile, createContextProviderRenderer, CustomThemeProvider, CustomSisenseContextProvider, createClientApplication, getDefaultThemeSettings, getThemeSettingsByOid, Chart, Table, ChartWidget, TableWidget, DashboardWidget, executeQuery, executeQueryByWidgetId } from '@sisense/sdk-ui-preact';
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 template = `<div #${rootId} style="width: 100%; height: 100%"></div>`;
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>", isInline: true });
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.applyThemeSettings(theme);
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>", isInline: true });
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: [{
@@ -396,7 +548,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
396
548
  }] } });
397
549
 
398
550
  /**
399
- * Table Component
551
+ * Table with aggregation and pagination.
400
552
  */
401
553
  class TableComponent {
402
554
  constructor(sisenseContextService, themeService) {
@@ -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>", isInline: true });
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: [{
@@ -453,7 +605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
453
605
  }] } });
454
606
 
455
607
  /**
456
- * Chart Widget Component
608
+ * The Chart Widget component extending {@link ChartComponent} to support widget style options.
457
609
  */
458
610
  class ChartWidgetComponent {
459
611
  constructor(sisenseContextService, themeService) {
@@ -504,6 +656,7 @@ class ChartWidgetComponent {
504
656
  drilldownOptions: this.drilldownOptions,
505
657
  title: this.title,
506
658
  description: this.description,
659
+ highlightSelectionDisabled: this.highlightSelectionDisabled,
507
660
  onBeforeRender: this.beforeRender?.bind(this),
508
661
  onDataPointClick: (...[point, nativeEvent]) => this.dataPointClick.emit({ point, nativeEvent }),
509
662
  onDataPointContextMenu: (...[point, nativeEvent]) => this.dataPointContextMenu.emit({ point, nativeEvent }),
@@ -517,7 +670,7 @@ class ChartWidgetComponent {
517
670
  }
518
671
  }
519
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 });
520
- 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", 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>", isInline: true });
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 });
521
674
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChartWidgetComponent, decorators: [{
522
675
  type: Component,
523
676
  args: [{
@@ -547,6 +700,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
547
700
  type: Input
548
701
  }], description: [{
549
702
  type: Input
703
+ }], highlightSelectionDisabled: [{
704
+ type: Input
550
705
  }], beforeRender: [{
551
706
  type: Input
552
707
  }], dataPointClick: [{
@@ -558,7 +713,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
558
713
  }] } });
559
714
 
560
715
  /**
561
- * Column Chart Component
716
+ * A component representing categorical data with vertical rectangular bars
717
+ * whose heights are proportional to the values that they represent.
718
+ * See [Column Chart](https://docs.sisense.com/main/SisenseLinux/column-chart.htm) for more information.
562
719
  */
563
720
  class ColumnChartComponent {
564
721
  constructor() {
@@ -592,6 +749,7 @@ ColumnChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
592
749
  [dataOptions]="dataOptions"
593
750
  [filters]="filters"
594
751
  [highlights]="highlights"
752
+ [styleOptions]="styleOptions"
595
753
  [beforeRender]="beforeRender"
596
754
  (dataPointClick)="dataPointClick.emit($event)"
597
755
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -609,6 +767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
609
767
  [dataOptions]="dataOptions"
610
768
  [filters]="filters"
611
769
  [highlights]="highlights"
770
+ [styleOptions]="styleOptions"
612
771
  [beforeRender]="beforeRender"
613
772
  (dataPointClick)="dataPointClick.emit($event)"
614
773
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -637,7 +796,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
637
796
  }] } });
638
797
 
639
798
  /**
640
- * Bar Chart Component
799
+ * A component representing categorical data with horizontal rectangular bars,
800
+ * whose lengths are proportional to the values that they represent.
801
+ * See [Bar Chart](https://docs.sisense.com/main/SisenseLinux/bar-chart.htm) for more information.
641
802
  */
642
803
  class BarChartComponent {
643
804
  constructor() {
@@ -671,6 +832,7 @@ BarChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
671
832
  [dataOptions]="dataOptions"
672
833
  [filters]="filters"
673
834
  [highlights]="highlights"
835
+ [styleOptions]="styleOptions"
674
836
  [beforeRender]="beforeRender"
675
837
  (dataPointClick)="dataPointClick.emit($event)"
676
838
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -688,6 +850,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
688
850
  [dataOptions]="dataOptions"
689
851
  [filters]="filters"
690
852
  [highlights]="highlights"
853
+ [styleOptions]="styleOptions"
691
854
  [beforeRender]="beforeRender"
692
855
  (dataPointClick)="dataPointClick.emit($event)"
693
856
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -716,7 +879,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
716
879
  }] } });
717
880
 
718
881
  /**
719
- * Area Chart Component
882
+ * A component similar to a {@link LineChartComponent},
883
+ * but with filled in areas under each line and an option to display them as stacked.
884
+ * More info on [Sisense Documentation page](https://docs.sisense.com/main/SisenseLinux/area-chart.htm).
720
885
  */
721
886
  class AreaChartComponent {
722
887
  constructor() {
@@ -750,6 +915,7 @@ AreaChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
750
915
  [dataOptions]="dataOptions"
751
916
  [filters]="filters"
752
917
  [highlights]="highlights"
918
+ [styleOptions]="styleOptions"
753
919
  [beforeRender]="beforeRender"
754
920
  (dataPointClick)="dataPointClick.emit($event)"
755
921
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -767,6 +933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
767
933
  [dataOptions]="dataOptions"
768
934
  [filters]="filters"
769
935
  [highlights]="highlights"
936
+ [styleOptions]="styleOptions"
770
937
  [beforeRender]="beforeRender"
771
938
  (dataPointClick)="dataPointClick.emit($event)"
772
939
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -795,7 +962,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
795
962
  }] } });
796
963
 
797
964
  /**
798
- * Line Chart Component
965
+ * A component displaying data as a series of points connected by a line. Used to show trends or changes over time.
966
+ * See [Line Chart](https://docs.sisense.com/main/SisenseLinux/line-chart.htm) for more information.
799
967
  */
800
968
  class LineChartComponent {
801
969
  constructor() {
@@ -829,6 +997,7 @@ LineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
829
997
  [dataOptions]="dataOptions"
830
998
  [filters]="filters"
831
999
  [highlights]="highlights"
1000
+ [styleOptions]="styleOptions"
832
1001
  [beforeRender]="beforeRender"
833
1002
  (dataPointClick)="dataPointClick.emit($event)"
834
1003
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -846,6 +1015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
846
1015
  [dataOptions]="dataOptions"
847
1016
  [filters]="filters"
848
1017
  [highlights]="highlights"
1018
+ [styleOptions]="styleOptions"
849
1019
  [beforeRender]="beforeRender"
850
1020
  (dataPointClick)="dataPointClick.emit($event)"
851
1021
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -874,7 +1044,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
874
1044
  }] } });
875
1045
 
876
1046
  /**
877
- * Indicator Chart Component
1047
+ * A component that provides various options for displaying one or two numeric values as a number, gauge or ticker.
1048
+ * See [Indicator](https://docs.sisense.com/main/SisenseLinux/indicator.htm) for more information.
878
1049
  */
879
1050
  class IndicatorChartComponent {
880
1051
  constructor() {
@@ -890,6 +1061,7 @@ IndicatorChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
890
1061
  [dataOptions]="dataOptions"
891
1062
  [filters]="filters"
892
1063
  [highlights]="highlights"
1064
+ [styleOptions]="styleOptions"
893
1065
  />
894
1066
  `, isInline: true, dependencies: [{ kind: "component", type: ChartComponent, selector: "csdk-chart", inputs: ["chartType", "dataSet", "dataOptions", "filters", "highlights", "styleOptions", "beforeRender"], outputs: ["dataPointClick", "dataPointContextMenu", "dataPointsSelect"] }] });
895
1067
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IndicatorChartComponent, decorators: [{
@@ -903,6 +1075,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
903
1075
  [dataOptions]="dataOptions"
904
1076
  [filters]="filters"
905
1077
  [highlights]="highlights"
1078
+ [styleOptions]="styleOptions"
906
1079
  />
907
1080
  `,
908
1081
  }]
@@ -919,7 +1092,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
919
1092
  }] } });
920
1093
 
921
1094
  /**
922
- * Scatter Chart Component
1095
+ * A component displaying the distribution of two variables on an X-Axis, Y-Axis,
1096
+ * and two additional fields of data that are shown as colored circles scattered across the chart.
1097
+ *
1098
+ * **Point**: A field that for each of its members a scatter point is drawn. The maximum amount of data points is 500.
1099
+ *
1100
+ * **Size**: An optional field represented by the size of the circles.
1101
+ * If omitted, all scatter points are equal in size. If used, the circle sizes are relative to their values.
1102
+ *
1103
+ * See [Scatter Chart](https://docs.sisense.com/main/SisenseLinux/scatter-chart.htm) for more information.
923
1104
  */
924
1105
  class ScatterChartComponent {
925
1106
  constructor() {
@@ -953,6 +1134,7 @@ ScatterChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
953
1134
  [dataOptions]="dataOptions"
954
1135
  [filters]="filters"
955
1136
  [highlights]="highlights"
1137
+ [styleOptions]="styleOptions"
956
1138
  [beforeRender]="beforeRender"
957
1139
  (dataPointClick)="dataPointClick.emit($event)"
958
1140
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -970,6 +1152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
970
1152
  [dataOptions]="dataOptions"
971
1153
  [filters]="filters"
972
1154
  [highlights]="highlights"
1155
+ [styleOptions]="styleOptions"
973
1156
  [beforeRender]="beforeRender"
974
1157
  (dataPointClick)="dataPointClick.emit($event)"
975
1158
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -998,7 +1181,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
998
1181
  }] } });
999
1182
 
1000
1183
  /**
1001
- * Pie Chart Component
1184
+ * A component representing data in a circular graph with the data shown as slices of a whole,
1185
+ * with each slice representing a proportion of the total.
1186
+ * See [Pie Chart](https://docs.sisense.com/main/SisenseLinux/pie-chart.htm) for more information.
1002
1187
  */
1003
1188
  class PieChartComponent {
1004
1189
  constructor() {
@@ -1032,6 +1217,7 @@ PieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
1032
1217
  [dataOptions]="dataOptions"
1033
1218
  [filters]="filters"
1034
1219
  [highlights]="highlights"
1220
+ [styleOptions]="styleOptions"
1035
1221
  [beforeRender]="beforeRender"
1036
1222
  (dataPointClick)="dataPointClick.emit($event)"
1037
1223
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -1049,6 +1235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1049
1235
  [dataOptions]="dataOptions"
1050
1236
  [filters]="filters"
1051
1237
  [highlights]="highlights"
1238
+ [styleOptions]="styleOptions"
1052
1239
  [beforeRender]="beforeRender"
1053
1240
  (dataPointClick)="dataPointClick.emit($event)"
1054
1241
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -1077,7 +1264,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1077
1264
  }] } });
1078
1265
 
1079
1266
  /**
1080
- * Funnel Chart Component
1267
+ * A component representing data progressively decreasing in size or quantity through a funnel shape.
1268
+ * See [Funnel Chart](https://docs.sisense.com/main/SisenseLinux/funnel-chart.htm) for more information.
1081
1269
  */
1082
1270
  class FunnelChartComponent {
1083
1271
  constructor() {
@@ -1111,6 +1299,7 @@ FunnelChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
1111
1299
  [dataOptions]="dataOptions"
1112
1300
  [filters]="filters"
1113
1301
  [highlights]="highlights"
1302
+ [styleOptions]="styleOptions"
1114
1303
  [beforeRender]="beforeRender"
1115
1304
  (dataPointClick)="dataPointClick.emit($event)"
1116
1305
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -1128,6 +1317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1128
1317
  [dataOptions]="dataOptions"
1129
1318
  [filters]="filters"
1130
1319
  [highlights]="highlights"
1320
+ [styleOptions]="styleOptions"
1131
1321
  [beforeRender]="beforeRender"
1132
1322
  (dataPointClick)="dataPointClick.emit($event)"
1133
1323
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -1156,7 +1346,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1156
1346
  }] } });
1157
1347
 
1158
1348
  /**
1159
- * Polar Chart Component
1349
+ * A component comparing multiple categories/variables with a spacial perspective in a radial chart.
1350
+ * See [Polar Chart](https://docs.sisense.com/main/SisenseLinux/polar-chart.htm) for more information.
1160
1351
  */
1161
1352
  class PolarChartComponent {
1162
1353
  constructor() {
@@ -1190,6 +1381,7 @@ PolarChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
1190
1381
  [dataOptions]="dataOptions"
1191
1382
  [filters]="filters"
1192
1383
  [highlights]="highlights"
1384
+ [styleOptions]="styleOptions"
1193
1385
  [beforeRender]="beforeRender"
1194
1386
  (dataPointClick)="dataPointClick.emit($event)"
1195
1387
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -1207,6 +1399,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1207
1399
  [dataOptions]="dataOptions"
1208
1400
  [filters]="filters"
1209
1401
  [highlights]="highlights"
1402
+ [styleOptions]="styleOptions"
1210
1403
  [beforeRender]="beforeRender"
1211
1404
  (dataPointClick)="dataPointClick.emit($event)"
1212
1405
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -1235,7 +1428,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1235
1428
  }] } });
1236
1429
 
1237
1430
  /**
1238
- * Treemap Chart Component
1431
+ * A component displaying hierarchical data in the form of nested rectangles.
1432
+ * This type of chart can be used instead of a column chart for comparing a large number of categories and sub-categories.
1433
+ * See [Treemap Chart](https://docs.sisense.com/main/SisenseLinux/treemap.htm) for more information.
1239
1434
  */
1240
1435
  class TreemapChartComponent {
1241
1436
  constructor() {
@@ -1269,6 +1464,7 @@ TreemapChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
1269
1464
  [dataOptions]="dataOptions"
1270
1465
  [filters]="filters"
1271
1466
  [highlights]="highlights"
1467
+ [styleOptions]="styleOptions"
1272
1468
  [beforeRender]="beforeRender"
1273
1469
  (dataPointClick)="dataPointClick.emit($event)"
1274
1470
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -1286,6 +1482,90 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1286
1482
  [dataOptions]="dataOptions"
1287
1483
  [filters]="filters"
1288
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"
1289
1569
  [beforeRender]="beforeRender"
1290
1570
  (dataPointClick)="dataPointClick.emit($event)"
1291
1571
  (dataPointContextMenu)="dataPointContextMenu.emit($event)"
@@ -1314,7 +1594,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1314
1594
  }] } });
1315
1595
 
1316
1596
  /**
1317
- * Table Widget Component
1597
+ * The Table Widget component extending {@link TableComponent} component to support widget style options.
1318
1598
  *
1319
1599
  * @internal
1320
1600
  */
@@ -1352,7 +1632,7 @@ class TableWidgetComponent {
1352
1632
  }
1353
1633
  }
1354
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 });
1355
- 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>", isInline: true });
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 });
1356
1636
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TableWidgetComponent, decorators: [{
1357
1637
  type: Component,
1358
1638
  args: [{
@@ -1379,7 +1659,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1379
1659
  }] } });
1380
1660
 
1381
1661
  /**
1382
- * Dashboard Widget Component
1662
+ * The Dashboard Widget component, which is a thin wrapper on {@link ChartWidgetComponent},
1663
+ * used to render a widget created in the Sisense instance.
1383
1664
  */
1384
1665
  class DashboardWidgetComponent {
1385
1666
  constructor(sisenseContextService, themeService) {
@@ -1408,10 +1689,12 @@ class DashboardWidgetComponent {
1408
1689
  filters: this.filters,
1409
1690
  highlights: this.highlights,
1410
1691
  filtersMergeStrategy: this.filtersMergeStrategy,
1692
+ includeDashboardFilters: this.includeDashboardFilters,
1411
1693
  title: this.title,
1412
1694
  description: this.description,
1413
1695
  styleOptions: this.styleOptions,
1414
1696
  widgetStyleOptions: this.widgetStyleOptions,
1697
+ highlightSelectionDisabled: this.highlightSelectionDisabled,
1415
1698
  drilldownOptions: this.drilldownOptions,
1416
1699
  };
1417
1700
  return createElement(DashboardWidget, props);
@@ -1422,7 +1705,7 @@ class DashboardWidgetComponent {
1422
1705
  }
1423
1706
  }
1424
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 });
1425
- 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>", isInline: true });
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 });
1426
1709
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardWidgetComponent, decorators: [{
1427
1710
  type: Component,
1428
1711
  args: [{
@@ -1442,6 +1725,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1442
1725
  type: Input
1443
1726
  }], filtersMergeStrategy: [{
1444
1727
  type: Input
1728
+ }], includeDashboardFilters: [{
1729
+ type: Input
1445
1730
  }], title: [{
1446
1731
  type: Input
1447
1732
  }], description: [{
@@ -1450,38 +1735,564 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1450
1735
  type: Input
1451
1736
  }], widgetStyleOptions: [{
1452
1737
  type: Input
1738
+ }], highlightSelectionDisabled: [{
1739
+ type: Input
1453
1740
  }], drilldownOptions: [{
1454
1741
  type: Input
1455
1742
  }] } });
1456
1743
 
1457
1744
  /**
1458
- * SDK UI Module, which is a container for components.
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.
1459
1834
  *
1460
- * @example
1461
- * Example of importing `SdkUiModule` and injecting {@link SisenseContextConfig} into your application:
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
1462
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:
1463
1851
  * ```ts
1464
- * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {
1465
- * url="<instance url>" // replace with the URL of your Sisense instance
1466
- * token="<api token>" // replace with the API token of your user account
1467
- * defaultDataSource: DM.DataSource,
1468
- * };
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
+ * }
1469
1867
  *
1470
- * @NgModule({
1471
- * imports: [
1472
- * BrowserModule,
1473
- * SdkUiModule,
1474
- * ],
1475
- * declarations: [AppComponent],
1476
- * providers: [
1477
- * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },
1478
- * ],
1479
- * bootstrap: [AppComponent],
1480
- * })
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
+ * };
1881
+ * ```
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>
1481
1896
  * ```
1482
1897
  */
1483
- class SdkUiModule {
1484
- }
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
+ */
2294
+ class SdkUiModule {
2295
+ }
1485
2296
  SdkUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1486
2297
  SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, declarations: [BasicMemberFilterTileComponent,
1487
2298
  ChartComponent,
@@ -1497,8 +2308,14 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
1497
2308
  FunnelChartComponent,
1498
2309
  PolarChartComponent,
1499
2310
  TreemapChartComponent,
2311
+ SunburstChartComponent,
1500
2312
  TableWidgetComponent,
1501
- DashboardWidgetComponent], imports: [CommonModule], exports: [BasicMemberFilterTileComponent,
2313
+ DashboardWidgetComponent,
2314
+ MemberFilterTileComponent,
2315
+ DrilldownWidgetComponent,
2316
+ DateRangeFilterTileComponent,
2317
+ DrilldownBreadcrumbsComponent,
2318
+ ContextMenuComponent], imports: [CommonModule, DecoratorsModule], exports: [BasicMemberFilterTileComponent,
1502
2319
  ChartComponent,
1503
2320
  TableComponent,
1504
2321
  ChartWidgetComponent,
@@ -1512,9 +2329,15 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
1512
2329
  FunnelChartComponent,
1513
2330
  PolarChartComponent,
1514
2331
  TreemapChartComponent,
2332
+ SunburstChartComponent,
1515
2333
  TableWidgetComponent,
1516
- DashboardWidgetComponent] });
1517
- SdkUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, imports: [CommonModule] });
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] });
1518
2341
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, decorators: [{
1519
2342
  type: NgModule,
1520
2343
  args: [{
@@ -1533,10 +2356,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1533
2356
  FunnelChartComponent,
1534
2357
  PolarChartComponent,
1535
2358
  TreemapChartComponent,
2359
+ SunburstChartComponent,
1536
2360
  TableWidgetComponent,
1537
2361
  DashboardWidgetComponent,
2362
+ MemberFilterTileComponent,
2363
+ DrilldownWidgetComponent,
2364
+ DateRangeFilterTileComponent,
2365
+ DrilldownBreadcrumbsComponent,
2366
+ ContextMenuComponent,
1538
2367
  ],
1539
- imports: [CommonModule],
2368
+ imports: [CommonModule, DecoratorsModule],
1540
2369
  exports: [
1541
2370
  BasicMemberFilterTileComponent,
1542
2371
  ChartComponent,
@@ -1552,40 +2381,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1552
2381
  FunnelChartComponent,
1553
2382
  PolarChartComponent,
1554
2383
  TreemapChartComponent,
2384
+ SunburstChartComponent,
1555
2385
  TableWidgetComponent,
1556
2386
  DashboardWidgetComponent,
2387
+ MemberFilterTileComponent,
2388
+ DrilldownWidgetComponent,
2389
+ DateRangeFilterTileComponent,
2390
+ DrilldownBreadcrumbsComponent,
2391
+ ContextMenuComponent,
1557
2392
  ],
1558
2393
  providers: [],
1559
2394
  }]
1560
2395
  }] });
1561
2396
 
1562
- class QueryService {
1563
- constructor(sisenseContextService) {
1564
- this.sisenseContextService = sisenseContextService;
1565
- }
1566
- async executeQuery(params) {
1567
- const { dataSource, dimensions, measures, filters, highlights, count, offset, onBeforeQuery } = params;
1568
- const app = await this.sisenseContextService.getApp();
1569
- const data = await executeQuery({ dataSource, dimensions, measures, filters, highlights, count, offset }, app, { onBeforeQuery });
1570
- return { data };
1571
- }
1572
- async executeQueryByWidgetId(params) {
1573
- const app = await this.sisenseContextService.getApp();
1574
- return executeQueryByWidgetId({
1575
- ...params,
1576
- app,
1577
- });
1578
- }
1579
- }
1580
- QueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
1581
- QueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, providedIn: 'root' });
1582
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, decorators: [{
1583
- type: Injectable,
1584
- args: [{
1585
- providedIn: 'root',
1586
- }]
1587
- }], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
1588
-
1589
2397
  /*
1590
2398
  * Public API Surface of @sisense/sdk-ui-angular
1591
2399
  */
@@ -1594,5 +2402,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1594
2402
  * Generated bundle index. Do not edit.
1595
2403
  */
1596
2404
 
1597
- 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 };
1598
2406
  //# sourceMappingURL=sisense-sdk-ui-angular.mjs.map