@sisense/sdk-ui-angular 2.3.0 → 2.4.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/context-connectors.mjs +21 -13
- package/dist/esm2020/lib/components/dashboard/dashboard-by-id.component.mjs +9 -9
- package/dist/esm2020/lib/components/dashboard/dashboard.component.mjs +9 -9
- package/dist/esm2020/lib/components/filters/filters-panel.component.mjs +129 -0
- package/dist/esm2020/lib/components/filters/index.mjs +2 -1
- package/dist/esm2020/lib/components/widgets/widget.component.mjs +4 -4
- package/dist/esm2020/lib/helpers/widget-props-preact-translator.mjs +5 -2
- package/dist/esm2020/lib/sdk-ui-core-exports.mjs +2 -2
- package/dist/esm2020/lib/sdk-ui.module.mjs +6 -2
- package/dist/esm2020/lib/services/custom-widgets.service.mjs +53 -0
- package/dist/esm2020/lib/services/dashboard.service.mjs +2 -2
- package/dist/esm2020/lib/services/dynamic-renderer.service.mjs +45 -0
- package/dist/esm2020/lib/services/filter.service.mjs +75 -0
- package/dist/esm2020/lib/services/index.mjs +3 -2
- package/dist/esm2020/lib/services/query.service.mjs +37 -3
- package/dist/esm2020/lib/types/chart-event-props.mjs +1 -1
- package/dist/esm2020/lib/types/data-point.mjs +1 -1
- package/dist/esm2020/lib/types/filter-event-props.mjs +1 -1
- package/dist/esm2020/lib/types/index.mjs +2 -2
- package/dist/esm2020/lib/types/widget-event-props.mjs +2 -0
- package/dist/esm2020/lib/utilities/widget-model-translator.mjs +1 -1
- package/dist/esm2020/public-api.mjs +2 -2
- package/dist/esm2020/version.mjs +2 -2
- package/dist/fesm2015/sisense-sdk-ui-angular.mjs +368 -86
- package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
- package/dist/fesm2020/sisense-sdk-ui-angular.mjs +364 -86
- package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
- package/dist/lib/component-wrapper-helpers/context-connectors.d.ts +5 -5
- package/dist/lib/components/dashboard/dashboard-by-id.component.d.ts +7 -11
- package/dist/lib/components/dashboard/dashboard.component.d.ts +7 -11
- package/dist/lib/components/filters/filters-panel.component.d.ts +134 -0
- package/dist/lib/components/filters/index.d.ts +1 -0
- package/dist/lib/components/widgets/widget.component.d.ts +11 -5
- package/dist/lib/sdk-ui-core-exports.d.ts +2 -2
- package/dist/lib/sdk-ui.module.d.ts +5 -4
- package/dist/lib/services/custom-widgets.service.d.ts +41 -0
- package/dist/lib/services/dashboard.service.d.ts +1 -1
- package/dist/lib/services/dynamic-renderer.service.d.ts +27 -0
- package/dist/lib/services/filter.service.d.ts +46 -0
- package/dist/lib/services/index.d.ts +2 -1
- package/dist/lib/services/query.service.d.ts +21 -3
- package/dist/lib/types/chart-event-props.d.ts +8 -1
- package/dist/lib/types/data-point.d.ts +21 -2
- package/dist/lib/types/filter-event-props.d.ts +9 -1
- package/dist/lib/types/index.d.ts +1 -1
- package/dist/lib/types/widget-event-props.d.ts +13 -0
- package/dist/lib/utilities/widget-model-translator.d.ts +2 -2
- package/dist/package.json +1 -1
- package/dist/public-api.d.ts +2 -2
- package/dist/version.d.ts +1 -1
- package/package.json +4 -4
- package/dist/esm2020/lib/services/plugins.service.mjs +0 -55
- package/dist/esm2020/lib/types/dashboard-config.mjs +0 -2
- package/dist/lib/services/plugins.service.d.ts +0 -37
- package/dist/lib/types/dashboard-config.d.ts +0 -24
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, Inject, NgModule, Optional, EventEmitter, Component, ViewChild, Input, Output } from '@angular/core';
|
|
3
|
-
import { DataObserver, CustomThemeProvider, CustomSisenseContextProvider,
|
|
4
|
-
export { boxWhiskerProcessResult } from '@sisense/sdk-ui-preact';
|
|
2
|
+
import { InjectionToken, Injectable, Inject, createComponent, NgModule, Optional, EventEmitter, Component, ViewChild, Input, Output } from '@angular/core';
|
|
3
|
+
import { DataObserver, CustomThemeProvider, CustomSisenseContextProvider, CustomWidgetsProviderAdapter, createClientApplication, createWrapperElement, getDashboardModel, getDashboardModels, HookAdapter, useComposedDashboardInternal, createHookApiFacade, useGetFilterMembers, getHierarchyModels, executeQuery, executeQueryByWidgetId, executePivotQuery, useExecuteCsvQueryInternal, useExecuteCustomWidgetQueryInternal, getWidgetModel, getDefaultThemeSettings, getThemeSettingsByOid, ComponentAdapter, Chart, PivotTable, Table, ContextMenu, Dashboard, DashboardById, DrilldownBreadcrumbs, CriteriaFilterTile, DateRangeFilterTile, FilterTile, FiltersPanel, MemberFilterTile, RelativeDateFilterTile, ChartWidget, DrilldownWidget, createWrapperElementHandler, createComponentRenderer, PivotTableWidget, TableWidget, Widget, WidgetById, dashboardModelTranslator as dashboardModelTranslator$1, dashboardHelpers as dashboardHelpers$1, widgetModelTranslator as widgetModelTranslator$1 } from '@sisense/sdk-ui-preact';
|
|
4
|
+
export { boxWhiskerProcessResult, extractDimensionsAndMeasures } from '@sisense/sdk-ui-preact';
|
|
5
5
|
import { __decorate } from 'tslib';
|
|
6
6
|
import { BehaviorSubject } from 'rxjs';
|
|
7
7
|
import merge from 'ts-deepmerge';
|
|
@@ -78,23 +78,31 @@ const createSisenseContextConnector = (sisenseContextService) => {
|
|
|
78
78
|
};
|
|
79
79
|
};
|
|
80
80
|
/**
|
|
81
|
-
* Creates
|
|
81
|
+
* Creates custom widgets context connector
|
|
82
82
|
*
|
|
83
|
-
* @param
|
|
83
|
+
* @param customWidgetsService - The custom widgets service
|
|
84
84
|
* @internal
|
|
85
85
|
*/
|
|
86
|
-
const
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
const createCustomWidgetsContextConnector = (customWidgetsService) => {
|
|
87
|
+
const { customWidgetsMap$ } = customWidgetsService;
|
|
88
|
+
const propsObserver = new DataObserver();
|
|
89
|
+
customWidgetsMap$.subscribe({
|
|
90
|
+
next: (customWidgetsMap) => {
|
|
91
|
+
propsObserver.setValue({
|
|
92
|
+
context: {
|
|
93
|
+
customWidgetsMap: customWidgetsMap,
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
error: (error) => {
|
|
98
|
+
propsObserver.setValue({
|
|
99
|
+
error,
|
|
100
|
+
});
|
|
101
|
+
},
|
|
94
102
|
});
|
|
95
103
|
return {
|
|
96
104
|
propsObserver,
|
|
97
|
-
providerComponent:
|
|
105
|
+
providerComponent: CustomWidgetsProviderAdapter,
|
|
98
106
|
};
|
|
99
107
|
};
|
|
100
108
|
|
|
@@ -179,7 +187,98 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
179
187
|
args: [SISENSE_CONTEXT_CONFIG_TOKEN]
|
|
180
188
|
}] }]; } });
|
|
181
189
|
|
|
182
|
-
var packageVersion = '2.
|
|
190
|
+
var packageVersion = '2.4.0';
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Service for rendering components dynamically.
|
|
194
|
+
*
|
|
195
|
+
* @internal
|
|
196
|
+
*/
|
|
197
|
+
class DynamicRenderer {
|
|
198
|
+
constructor(appRef, injector, envInjector) {
|
|
199
|
+
this.appRef = appRef;
|
|
200
|
+
this.injector = injector;
|
|
201
|
+
this.envInjector = envInjector;
|
|
202
|
+
}
|
|
203
|
+
renderComponent(component, props) {
|
|
204
|
+
const componentRef = createComponent(component, {
|
|
205
|
+
environmentInjector: this.envInjector,
|
|
206
|
+
elementInjector: this.injector,
|
|
207
|
+
});
|
|
208
|
+
// Apply props to the component instance
|
|
209
|
+
Object.assign(componentRef.instance, props);
|
|
210
|
+
// Attach the component to the application
|
|
211
|
+
this.appRef.attachView(componentRef.hostView);
|
|
212
|
+
// Get the DOM element
|
|
213
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
214
|
+
// Create destroy function
|
|
215
|
+
const destroy = () => {
|
|
216
|
+
// Detach from application
|
|
217
|
+
this.appRef.detachView(componentRef.hostView);
|
|
218
|
+
// Destroy the component
|
|
219
|
+
componentRef.destroy();
|
|
220
|
+
};
|
|
221
|
+
return {
|
|
222
|
+
element: domElem,
|
|
223
|
+
componentRef,
|
|
224
|
+
destroy,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
DynamicRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicRenderer, deps: [{ token: i0.ApplicationRef }, { token: i0.Injector }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
229
|
+
DynamicRenderer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicRenderer, providedIn: 'root' });
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicRenderer, decorators: [{
|
|
231
|
+
type: Injectable,
|
|
232
|
+
args: [{ providedIn: 'root' }]
|
|
233
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.Injector }, { type: i0.EnvironmentInjector }]; } });
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Service for working with custom widgets.
|
|
237
|
+
*
|
|
238
|
+
* @group Dashboards
|
|
239
|
+
*/
|
|
240
|
+
class CustomWidgetsService {
|
|
241
|
+
constructor(
|
|
242
|
+
/** @internal */
|
|
243
|
+
dynamicRenderer) {
|
|
244
|
+
this.dynamicRenderer = dynamicRenderer;
|
|
245
|
+
this.customWidgetsMap$ = new BehaviorSubject(new Map());
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Registers a new custom widget.
|
|
249
|
+
*
|
|
250
|
+
* @param customWidgetType - The unique identifier for the custom widget type.
|
|
251
|
+
* @param customWidget - The custom widget component class to register.
|
|
252
|
+
*/
|
|
253
|
+
registerCustomWidget(customWidgetType, customWidget) {
|
|
254
|
+
const customWidgetPreactComponent = (props) => {
|
|
255
|
+
const renderedComponent = this.dynamicRenderer.renderComponent(customWidget, props);
|
|
256
|
+
return createWrapperElement(renderedComponent.element, () => renderedComponent.destroy());
|
|
257
|
+
};
|
|
258
|
+
const customWidgetsMap = this.customWidgetsMap$.value;
|
|
259
|
+
if (!customWidgetsMap.has(customWidgetType)) {
|
|
260
|
+
customWidgetsMap.set(customWidgetType, customWidgetPreactComponent);
|
|
261
|
+
this.customWidgetsMap$.next(customWidgetsMap);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Checks if a custom widget is registered.
|
|
266
|
+
*
|
|
267
|
+
* @param customWidgetType - The type of the custom widget.
|
|
268
|
+
* @returns True if the custom widget is registered, false otherwise.
|
|
269
|
+
*/
|
|
270
|
+
hasCustomWidget(customWidgetType) {
|
|
271
|
+
return this.customWidgetsMap$.value.has(customWidgetType);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
CustomWidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomWidgetsService, deps: [{ token: DynamicRenderer }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
275
|
+
CustomWidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomWidgetsService, providedIn: 'root' });
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomWidgetsService, decorators: [{
|
|
277
|
+
type: Injectable,
|
|
278
|
+
args: [{
|
|
279
|
+
providedIn: 'root',
|
|
280
|
+
}]
|
|
281
|
+
}], ctorParameters: function () { return [{ type: DynamicRenderer }]; } });
|
|
183
282
|
|
|
184
283
|
function translateToPreactWidgetProps(widgetProps) {
|
|
185
284
|
const { beforeRender, dataReady, beforeMenuOpen, dataPointClick, dataPointContextMenu, dataPointsSelect, ...commonWidgetProps } = widgetProps;
|
|
@@ -189,7 +288,10 @@ function translateToPreactWidgetProps(widgetProps) {
|
|
|
189
288
|
onDataReady: dataReady,
|
|
190
289
|
onBeforeMenuOpen: beforeMenuOpen,
|
|
191
290
|
onDataPointClick: dataPointClick
|
|
192
|
-
? (...[point, nativeEvent]) => dataPointClick({
|
|
291
|
+
? (...[point, nativeEvent]) => dataPointClick({
|
|
292
|
+
point,
|
|
293
|
+
nativeEvent,
|
|
294
|
+
})
|
|
193
295
|
: undefined,
|
|
194
296
|
onDataPointContextMenu: dataPointContextMenu
|
|
195
297
|
? (...[point, nativeEvent]) => dataPointContextMenu({ point, nativeEvent })
|
|
@@ -282,7 +384,7 @@ let DashboardService = class DashboardService {
|
|
|
282
384
|
[id]="widget.id"
|
|
283
385
|
[widgetType]="widget.widgetType"
|
|
284
386
|
[chartType]="widget.chartType"
|
|
285
|
-
[
|
|
387
|
+
[customWidgetType]="widget.customWidgetType"
|
|
286
388
|
[dataSource]="widget.dataSource"
|
|
287
389
|
[dataOptions]="widget.dataOptions"
|
|
288
390
|
[filters]="widget.filters"
|
|
@@ -358,6 +460,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
358
460
|
}]
|
|
359
461
|
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
360
462
|
|
|
463
|
+
/**
|
|
464
|
+
* Service for working with filter.
|
|
465
|
+
*
|
|
466
|
+
* @group Filters
|
|
467
|
+
*/
|
|
468
|
+
let FilterService = class FilterService {
|
|
469
|
+
constructor(sisenseContextService) {
|
|
470
|
+
this.sisenseContextService = sisenseContextService;
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Retrieves members of the provided filter.
|
|
474
|
+
*
|
|
475
|
+
* Those members can be used to display a list of members in a third-party filter component such as Material UI Select.
|
|
476
|
+
*
|
|
477
|
+
* ## Example
|
|
478
|
+
*
|
|
479
|
+
* Retrieve selected members from a Filter on Country of the Sample ECommerce data model.
|
|
480
|
+
*
|
|
481
|
+
* ```ts
|
|
482
|
+
* try {
|
|
483
|
+
* const data = await filterService.getFilterMembers({
|
|
484
|
+
* filter: filterFactory.members(DM.Country.Country, ['United States', 'Canada'])
|
|
485
|
+
* });
|
|
486
|
+
*
|
|
487
|
+
* const { selectedMembers, allMembers, excludeMembers, enableMultiSelection } = data;
|
|
488
|
+
* console.log('selectedMembers', selectedMembers);
|
|
489
|
+
* } catch (error) {
|
|
490
|
+
* console.error('Error:', error);
|
|
491
|
+
* }
|
|
492
|
+
* ```
|
|
493
|
+
*
|
|
494
|
+
* @param params - Parameters for retrieving filter members
|
|
495
|
+
* @returns Promise that resolves to the filter members data
|
|
496
|
+
*/
|
|
497
|
+
async getFilterMembers(params) {
|
|
498
|
+
const hookAdapter = new HookAdapter(useGetFilterMembers, [
|
|
499
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
500
|
+
]);
|
|
501
|
+
const resultPromise = new Promise((resolve, reject) => {
|
|
502
|
+
hookAdapter.subscribe((res) => {
|
|
503
|
+
const { isError, isSuccess, error } = res;
|
|
504
|
+
if (isError) {
|
|
505
|
+
reject(error);
|
|
506
|
+
}
|
|
507
|
+
else if (isSuccess) {
|
|
508
|
+
resolve(res.data);
|
|
509
|
+
}
|
|
510
|
+
});
|
|
511
|
+
});
|
|
512
|
+
hookAdapter.run(params);
|
|
513
|
+
return resultPromise.finally(() => {
|
|
514
|
+
hookAdapter.destroy();
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
FilterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
519
|
+
FilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterService, providedIn: 'root' });
|
|
520
|
+
FilterService = __decorate([
|
|
521
|
+
TrackableService(['getFilterMembers'])
|
|
522
|
+
], FilterService);
|
|
523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterService, decorators: [{
|
|
524
|
+
type: Injectable,
|
|
525
|
+
args: [{
|
|
526
|
+
providedIn: 'root',
|
|
527
|
+
}]
|
|
528
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
529
|
+
|
|
361
530
|
/**
|
|
362
531
|
* Service for working with Sisense Fusion hierarchies.
|
|
363
532
|
*
|
|
@@ -391,58 +560,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
391
560
|
}]
|
|
392
561
|
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
393
562
|
|
|
394
|
-
/**
|
|
395
|
-
* Service for working with plugins fetched from an external environment.
|
|
396
|
-
*
|
|
397
|
-
* Provides methods for registering, retrieving, and interacting with plugins.
|
|
398
|
-
*
|
|
399
|
-
* @internal
|
|
400
|
-
* @group Contexts
|
|
401
|
-
*/
|
|
402
|
-
class PluginsService {
|
|
403
|
-
constructor() {
|
|
404
|
-
this.pluginMap$ = new BehaviorSubject(new Map());
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* Registers a new plugin into the plugin map.
|
|
408
|
-
*
|
|
409
|
-
* @param pluginType - The unique identifier for the plugin type.
|
|
410
|
-
* @param plugin - The plugin instance to register.
|
|
411
|
-
*/
|
|
412
|
-
registerPlugin(pluginType, plugin) {
|
|
413
|
-
const pluginMap = this.pluginMap$.value;
|
|
414
|
-
if (!pluginMap.has(pluginType)) {
|
|
415
|
-
pluginMap.set(pluginType, plugin);
|
|
416
|
-
this.pluginMap$.next(pluginMap);
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
/**
|
|
420
|
-
* Retrieves a plugin by its type.
|
|
421
|
-
*
|
|
422
|
-
* @param pluginType - The unique identifier for the plugin type.
|
|
423
|
-
* @returns The plugin instance if found, otherwise undefined.
|
|
424
|
-
*/
|
|
425
|
-
getPlugin(pluginType) {
|
|
426
|
-
return this.pluginMap$.value.get(pluginType);
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Retrieves a complete plugin map.
|
|
430
|
-
*
|
|
431
|
-
* @returns A plugin map.
|
|
432
|
-
*/
|
|
433
|
-
getPlugins() {
|
|
434
|
-
return this.pluginMap$;
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
PluginsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PluginsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
438
|
-
PluginsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PluginsService, providedIn: 'root' });
|
|
439
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PluginsService, decorators: [{
|
|
440
|
-
type: Injectable,
|
|
441
|
-
args: [{
|
|
442
|
-
providedIn: 'root',
|
|
443
|
-
}]
|
|
444
|
-
}], ctorParameters: function () { return []; } });
|
|
445
|
-
|
|
446
563
|
/**
|
|
447
564
|
* Service for executing data queries.
|
|
448
565
|
*
|
|
@@ -545,11 +662,45 @@ let QueryService = class QueryService {
|
|
|
545
662
|
hookAdapter.destroy();
|
|
546
663
|
});
|
|
547
664
|
}
|
|
665
|
+
/**
|
|
666
|
+
* Executes a data query from custom widget component props.
|
|
667
|
+
*
|
|
668
|
+
* This method takes custom widget props (dataSource, dataOptions, filters, etc.)
|
|
669
|
+
* and executes the appropriate data query
|
|
670
|
+
*
|
|
671
|
+
* @param params - Custom widget component props containing data source, data options, filters, etc.
|
|
672
|
+
* @returns Promise resolving to query result with formatted data
|
|
673
|
+
*/
|
|
674
|
+
async executeCustomWidgetQuery(params) {
|
|
675
|
+
const hookAdapter = new HookAdapter(useExecuteCustomWidgetQueryInternal, [
|
|
676
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
677
|
+
]);
|
|
678
|
+
const resultPromise = new Promise((resolve, reject) => {
|
|
679
|
+
hookAdapter.subscribe((res) => {
|
|
680
|
+
const { data, isSuccess, isError, error } = res;
|
|
681
|
+
if (isSuccess) {
|
|
682
|
+
resolve({ data });
|
|
683
|
+
}
|
|
684
|
+
else if (isError) {
|
|
685
|
+
reject(error);
|
|
686
|
+
}
|
|
687
|
+
});
|
|
688
|
+
});
|
|
689
|
+
hookAdapter.run(params);
|
|
690
|
+
return resultPromise.finally(() => {
|
|
691
|
+
hookAdapter.destroy();
|
|
692
|
+
});
|
|
693
|
+
}
|
|
548
694
|
};
|
|
549
695
|
QueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
550
696
|
QueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, providedIn: 'root' });
|
|
551
697
|
QueryService = __decorate([
|
|
552
|
-
TrackableService([
|
|
698
|
+
TrackableService([
|
|
699
|
+
'executeQuery',
|
|
700
|
+
'executeQueryByWidgetId',
|
|
701
|
+
'executePivotQuery',
|
|
702
|
+
'executeCustomWidgetQuery',
|
|
703
|
+
])
|
|
553
704
|
], QueryService);
|
|
554
705
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, decorators: [{
|
|
555
706
|
type: Injectable,
|
|
@@ -3211,19 +3362,19 @@ class DashboardComponent {
|
|
|
3211
3362
|
*/
|
|
3212
3363
|
themeService,
|
|
3213
3364
|
/**
|
|
3214
|
-
*
|
|
3365
|
+
* Custom widgets service
|
|
3215
3366
|
*
|
|
3216
3367
|
* @internal
|
|
3217
3368
|
* @category Constructor
|
|
3218
3369
|
*/
|
|
3219
|
-
|
|
3370
|
+
customWidgetsService) {
|
|
3220
3371
|
this.sisenseContextService = sisenseContextService;
|
|
3221
3372
|
this.themeService = themeService;
|
|
3222
|
-
this.
|
|
3373
|
+
this.customWidgetsService = customWidgetsService;
|
|
3223
3374
|
this.componentAdapter = new ComponentAdapter(Dashboard, [
|
|
3224
3375
|
createSisenseContextConnector(this.sisenseContextService),
|
|
3225
3376
|
createThemeContextConnector(this.themeService),
|
|
3226
|
-
|
|
3377
|
+
createCustomWidgetsContextConnector(this.customWidgetsService),
|
|
3227
3378
|
]);
|
|
3228
3379
|
}
|
|
3229
3380
|
/**
|
|
@@ -3260,12 +3411,12 @@ class DashboardComponent {
|
|
|
3260
3411
|
this.componentAdapter.destroy();
|
|
3261
3412
|
}
|
|
3262
3413
|
}
|
|
3263
|
-
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }, { token:
|
|
3414
|
+
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }, { token: CustomWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3264
3415
|
DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DashboardComponent, selector: "csdk-dashboard", inputs: { title: "title", layoutOptions: "layoutOptions", config: "config", widgets: "widgets", filters: "filters", defaultDataSource: "defaultDataSource", widgetsOptions: "widgetsOptions", styleOptions: "styleOptions", tabbersOptions: "tabbersOptions" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact class=\"csdk-full-size-container\"></div>\n", isInline: true, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] });
|
|
3265
3416
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
3266
3417
|
type: Component,
|
|
3267
3418
|
args: [{ selector: 'csdk-dashboard', template: template, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] }]
|
|
3268
|
-
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }, { type:
|
|
3419
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }, { type: CustomWidgetsService }]; }, propDecorators: { preactRef: [{
|
|
3269
3420
|
type: ViewChild,
|
|
3270
3421
|
args: [rootId]
|
|
3271
3422
|
}], title: [{
|
|
@@ -3335,19 +3486,19 @@ class DashboardByIdComponent {
|
|
|
3335
3486
|
*/
|
|
3336
3487
|
themeService,
|
|
3337
3488
|
/**
|
|
3338
|
-
*
|
|
3489
|
+
* Custom widgets service
|
|
3339
3490
|
*
|
|
3340
3491
|
* @internal
|
|
3341
3492
|
* @category Constructor
|
|
3342
3493
|
*/
|
|
3343
|
-
|
|
3494
|
+
customWidgetsService) {
|
|
3344
3495
|
this.sisenseContextService = sisenseContextService;
|
|
3345
3496
|
this.themeService = themeService;
|
|
3346
|
-
this.
|
|
3497
|
+
this.customWidgetsService = customWidgetsService;
|
|
3347
3498
|
this.componentAdapter = new ComponentAdapter(DashboardById, [
|
|
3348
3499
|
createSisenseContextConnector(this.sisenseContextService),
|
|
3349
3500
|
createThemeContextConnector(this.themeService),
|
|
3350
|
-
|
|
3501
|
+
createCustomWidgetsContextConnector(this.customWidgetsService),
|
|
3351
3502
|
]);
|
|
3352
3503
|
}
|
|
3353
3504
|
/**
|
|
@@ -3377,12 +3528,12 @@ class DashboardByIdComponent {
|
|
|
3377
3528
|
this.componentAdapter.destroy();
|
|
3378
3529
|
}
|
|
3379
3530
|
}
|
|
3380
|
-
DashboardByIdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardByIdComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }, { token:
|
|
3531
|
+
DashboardByIdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardByIdComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }, { token: CustomWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3381
3532
|
DashboardByIdComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DashboardByIdComponent, selector: "csdk-dashboard-by-id", inputs: { dashboardOid: "dashboardOid", config: "config" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact class=\"csdk-full-size-container\"></div>\n", isInline: true, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] });
|
|
3382
3533
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardByIdComponent, decorators: [{
|
|
3383
3534
|
type: Component,
|
|
3384
3535
|
args: [{ selector: 'csdk-dashboard-by-id', template: template, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] }]
|
|
3385
|
-
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }, { type:
|
|
3536
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }, { type: CustomWidgetsService }]; }, propDecorators: { preactRef: [{
|
|
3386
3537
|
type: ViewChild,
|
|
3387
3538
|
args: [rootId]
|
|
3388
3539
|
}], dashboardOid: [{
|
|
@@ -3896,6 +4047,129 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3896
4047
|
type: Output
|
|
3897
4048
|
}] } });
|
|
3898
4049
|
|
|
4050
|
+
/**
|
|
4051
|
+
* Filters panel component that renders a list of filter tiles
|
|
4052
|
+
*
|
|
4053
|
+
* @example
|
|
4054
|
+
* Here's how to render a filters panel with a set of filters.
|
|
4055
|
+
*
|
|
4056
|
+
* ```html
|
|
4057
|
+
<!--Component HTML template in example.component.html-->
|
|
4058
|
+
<csdk-filters-panel
|
|
4059
|
+
[filters]="filtersPanelProps.filters"
|
|
4060
|
+
[defaultDataSource]="filtersPanelProps.defaultDataSource"
|
|
4061
|
+
(filtersChange)="filtersPanelProps.filtersChange($event)"
|
|
4062
|
+
/>
|
|
4063
|
+
* ```
|
|
4064
|
+
*
|
|
4065
|
+
* ```ts
|
|
4066
|
+
// Component behavior in example.component.ts
|
|
4067
|
+
import { Component } from '@angular/core';
|
|
4068
|
+
import { type FiltersPanelProps } from '@sisense/sdk-ui-angular';
|
|
4069
|
+
import { filterFactory } from '@sisense/sdk-data';
|
|
4070
|
+
import * as DM from '../../assets/sample-healthcare-model';
|
|
4071
|
+
|
|
4072
|
+
@Component({
|
|
4073
|
+
selector: 'example',
|
|
4074
|
+
templateUrl: './example.component.html',
|
|
4075
|
+
styleUrls: ['./example.component.scss'],
|
|
4076
|
+
})
|
|
4077
|
+
export class ExampleComponent {
|
|
4078
|
+
filtersPanelProps: FiltersPanelProps = {
|
|
4079
|
+
filters: [
|
|
4080
|
+
filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),
|
|
4081
|
+
filterFactory.members(DM.ER.Departments.Department, ['Cardiology']),
|
|
4082
|
+
],
|
|
4083
|
+
defaultDataSource: DM.DataSource,
|
|
4084
|
+
filtersChange({ filters }) {
|
|
4085
|
+
this.filtersPanelProps.filters = filters;
|
|
4086
|
+
},
|
|
4087
|
+
};
|
|
4088
|
+
}
|
|
4089
|
+
* ```
|
|
4090
|
+
* @group Filter Tiles
|
|
4091
|
+
*/
|
|
4092
|
+
class FiltersPanelComponent {
|
|
4093
|
+
/**
|
|
4094
|
+
* Constructor for the `FiltersPanelComponent`.
|
|
4095
|
+
*
|
|
4096
|
+
* @param sisenseContextService - Sisense context service
|
|
4097
|
+
* @param themeService - Theme service
|
|
4098
|
+
*/
|
|
4099
|
+
constructor(
|
|
4100
|
+
/**
|
|
4101
|
+
* Sisense context service
|
|
4102
|
+
*
|
|
4103
|
+
* @category Constructor
|
|
4104
|
+
*/
|
|
4105
|
+
sisenseContextService,
|
|
4106
|
+
/**
|
|
4107
|
+
* Theme service
|
|
4108
|
+
*
|
|
4109
|
+
* @category Constructor
|
|
4110
|
+
*/
|
|
4111
|
+
themeService) {
|
|
4112
|
+
this.sisenseContextService = sisenseContextService;
|
|
4113
|
+
this.themeService = themeService;
|
|
4114
|
+
/**
|
|
4115
|
+
* {@inheritDoc FiltersPanelProps.filtersChange}
|
|
4116
|
+
*/
|
|
4117
|
+
this.filtersChange = new EventEmitter();
|
|
4118
|
+
this.componentAdapter = new ComponentAdapter(FiltersPanel, [
|
|
4119
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
4120
|
+
createThemeContextConnector(this.themeService),
|
|
4121
|
+
]);
|
|
4122
|
+
}
|
|
4123
|
+
/**
|
|
4124
|
+
* @internal
|
|
4125
|
+
*/
|
|
4126
|
+
ngAfterViewInit() {
|
|
4127
|
+
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
4128
|
+
}
|
|
4129
|
+
/**
|
|
4130
|
+
* @internal
|
|
4131
|
+
*/
|
|
4132
|
+
ngOnChanges() {
|
|
4133
|
+
if (this.preactRef) {
|
|
4134
|
+
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
4135
|
+
}
|
|
4136
|
+
}
|
|
4137
|
+
getPreactComponentProps() {
|
|
4138
|
+
return {
|
|
4139
|
+
filters: this.filters,
|
|
4140
|
+
defaultDataSource: this.defaultDataSource,
|
|
4141
|
+
dataSources: this.dataSources,
|
|
4142
|
+
config: this.config,
|
|
4143
|
+
onFiltersChange: (...[filters]) => this.filtersChange.emit({ filters }),
|
|
4144
|
+
};
|
|
4145
|
+
}
|
|
4146
|
+
/**
|
|
4147
|
+
* @internal
|
|
4148
|
+
*/
|
|
4149
|
+
ngOnDestroy() {
|
|
4150
|
+
this.componentAdapter.destroy();
|
|
4151
|
+
}
|
|
4152
|
+
}
|
|
4153
|
+
FiltersPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FiltersPanelComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4154
|
+
FiltersPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FiltersPanelComponent, selector: "csdk-filters-panel", inputs: { filters: "filters", defaultDataSource: "defaultDataSource", dataSources: "dataSources", config: "config" }, outputs: { filtersChange: "filtersChange" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact class=\"csdk-full-size-container\"></div>\n", isInline: true, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] });
|
|
4155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FiltersPanelComponent, decorators: [{
|
|
4156
|
+
type: Component,
|
|
4157
|
+
args: [{ selector: 'csdk-filters-panel', template: template, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] }]
|
|
4158
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
4159
|
+
type: ViewChild,
|
|
4160
|
+
args: [rootId]
|
|
4161
|
+
}], filters: [{
|
|
4162
|
+
type: Input
|
|
4163
|
+
}], defaultDataSource: [{
|
|
4164
|
+
type: Input
|
|
4165
|
+
}], dataSources: [{
|
|
4166
|
+
type: Input
|
|
4167
|
+
}], config: [{
|
|
4168
|
+
type: Input
|
|
4169
|
+
}], filtersChange: [{
|
|
4170
|
+
type: Output
|
|
4171
|
+
}] } });
|
|
4172
|
+
|
|
3899
4173
|
/**
|
|
3900
4174
|
* Member Filter Tile Component
|
|
3901
4175
|
*
|
|
@@ -4758,7 +5032,7 @@ class WidgetComponent {
|
|
|
4758
5032
|
id: this.id,
|
|
4759
5033
|
widgetType: this.widgetType,
|
|
4760
5034
|
chartType: this.chartType,
|
|
4761
|
-
|
|
5035
|
+
customWidgetType: this.customWidgetType,
|
|
4762
5036
|
dataSource: this.dataSource,
|
|
4763
5037
|
dataOptions: this.dataOptions,
|
|
4764
5038
|
filters: this.filters,
|
|
@@ -4782,7 +5056,7 @@ class WidgetComponent {
|
|
|
4782
5056
|
}
|
|
4783
5057
|
}
|
|
4784
5058
|
WidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4785
|
-
WidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetComponent, selector: "csdk-widget", inputs: { id: "id", widgetType: "widgetType", chartType: "chartType",
|
|
5059
|
+
WidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetComponent, selector: "csdk-widget", inputs: { id: "id", widgetType: "widgetType", chartType: "chartType", customWidgetType: "customWidgetType", dataSource: "dataSource", dataOptions: "dataOptions", filters: "filters", highlights: "highlights", styleOptions: "styleOptions", drilldownOptions: "drilldownOptions", title: "title", description: "description", highlightSelectionDisabled: "highlightSelectionDisabled", beforeRender: "beforeRender", dataReady: "dataReady", beforeMenuOpen: "beforeMenuOpen" }, outputs: { dataPointClick: "dataPointClick", dataPointContextMenu: "dataPointContextMenu", dataPointsSelect: "dataPointsSelect" }, viewQueries: [{ propertyName: "preactRef", first: true, predicate: ["preact"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n <div #preact class=\"csdk-full-size-container\"></div>\n", isInline: true, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] });
|
|
4786
5060
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetComponent, decorators: [{
|
|
4787
5061
|
type: Component,
|
|
4788
5062
|
args: [{ selector: 'csdk-widget', template: template, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] }]
|
|
@@ -4795,7 +5069,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4795
5069
|
type: Input
|
|
4796
5070
|
}], chartType: [{
|
|
4797
5071
|
type: Input
|
|
4798
|
-
}],
|
|
5072
|
+
}], customWidgetType: [{
|
|
4799
5073
|
type: Input
|
|
4800
5074
|
}], dataSource: [{
|
|
4801
5075
|
type: Input
|
|
@@ -4997,6 +5271,7 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
4997
5271
|
DashboardComponent,
|
|
4998
5272
|
PivotTableWidgetComponent,
|
|
4999
5273
|
FilterTileComponent,
|
|
5274
|
+
FiltersPanelComponent,
|
|
5000
5275
|
WidgetComponent], imports: [CommonModule, DecoratorsModule], exports: [ChartComponent,
|
|
5001
5276
|
TableComponent,
|
|
5002
5277
|
ChartWidgetComponent,
|
|
@@ -5029,6 +5304,7 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
5029
5304
|
DashboardComponent,
|
|
5030
5305
|
PivotTableWidgetComponent,
|
|
5031
5306
|
FilterTileComponent,
|
|
5307
|
+
FiltersPanelComponent,
|
|
5032
5308
|
WidgetComponent] });
|
|
5033
5309
|
SdkUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, imports: [CommonModule, DecoratorsModule] });
|
|
5034
5310
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, decorators: [{
|
|
@@ -5067,6 +5343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5067
5343
|
DashboardComponent,
|
|
5068
5344
|
PivotTableWidgetComponent,
|
|
5069
5345
|
FilterTileComponent,
|
|
5346
|
+
FiltersPanelComponent,
|
|
5070
5347
|
WidgetComponent,
|
|
5071
5348
|
],
|
|
5072
5349
|
imports: [CommonModule, DecoratorsModule],
|
|
@@ -5103,6 +5380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5103
5380
|
DashboardComponent,
|
|
5104
5381
|
PivotTableWidgetComponent,
|
|
5105
5382
|
FilterTileComponent,
|
|
5383
|
+
FiltersPanelComponent,
|
|
5106
5384
|
WidgetComponent,
|
|
5107
5385
|
],
|
|
5108
5386
|
providers: [],
|
|
@@ -5603,5 +5881,5 @@ var widgetModelTranslator = /*#__PURE__*/Object.freeze({
|
|
|
5603
5881
|
* Generated bundle index. Do not edit.
|
|
5604
5882
|
*/
|
|
5605
5883
|
|
|
5606
|
-
export { AreaChartComponent, AreaRangeChartComponent, AreamapChartComponent, BarChartComponent, BoxplotChartComponent, ChartComponent, ChartWidgetComponent, ColumnChartComponent, ContextMenuComponent, CriteriaFilterTileComponent, DashboardByIdComponent, DashboardComponent, DashboardService, DateRangeFilterTileComponent, DrilldownBreadcrumbsComponent, DrilldownWidgetComponent, FilterTileComponent, FunnelChartComponent, HierarchyService, IndicatorChartComponent, LineChartComponent, MemberFilterTileComponent, PieChartComponent, PivotTableComponent, PivotTableWidgetComponent,
|
|
5884
|
+
export { AreaChartComponent, AreaRangeChartComponent, AreamapChartComponent, BarChartComponent, BoxplotChartComponent, ChartComponent, ChartWidgetComponent, ColumnChartComponent, ContextMenuComponent, CriteriaFilterTileComponent, CustomWidgetsService, DashboardByIdComponent, DashboardComponent, DashboardService, DateRangeFilterTileComponent, DrilldownBreadcrumbsComponent, DrilldownWidgetComponent, FilterService, FilterTileComponent, FiltersPanelComponent, FunnelChartComponent, HierarchyService, IndicatorChartComponent, LineChartComponent, MemberFilterTileComponent, PieChartComponent, PivotTableComponent, PivotTableWidgetComponent, PolarChartComponent, QueryService, RelativeDateFilterTileComponent, SISENSE_CONTEXT_CONFIG_TOKEN, ScatterChartComponent, ScattermapChartComponent, SdkUiModule, SisenseContextService, SunburstChartComponent, THEME_CONFIG_TOKEN, TableComponent, TableWidgetComponent, ThemeService, TrackableService, TreemapChartComponent, WidgetByIdComponent, WidgetComponent, WidgetService, createCustomWidgetsContextConnector, createSisenseContextConnector, createThemeContextConnector, dashboardHelpers, dashboardModelTranslator, widgetModelTranslator };
|
|
5607
5885
|
//# sourceMappingURL=sisense-sdk-ui-angular.mjs.map
|