@sisense/sdk-ui-angular 2.3.1 → 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 { __rest, __awaiter, __decorate } from 'tslib';
|
|
6
6
|
import { BehaviorSubject } from 'rxjs';
|
|
7
7
|
import merge from 'ts-deepmerge';
|
|
@@ -76,23 +76,31 @@ const createSisenseContextConnector = (sisenseContextService) => {
|
|
|
76
76
|
};
|
|
77
77
|
};
|
|
78
78
|
/**
|
|
79
|
-
* Creates
|
|
79
|
+
* Creates custom widgets context connector
|
|
80
80
|
*
|
|
81
|
-
* @param
|
|
81
|
+
* @param customWidgetsService - The custom widgets service
|
|
82
82
|
* @internal
|
|
83
83
|
*/
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
84
|
+
const createCustomWidgetsContextConnector = (customWidgetsService) => {
|
|
85
|
+
const { customWidgetsMap$ } = customWidgetsService;
|
|
86
|
+
const propsObserver = new DataObserver();
|
|
87
|
+
customWidgetsMap$.subscribe({
|
|
88
|
+
next: (customWidgetsMap) => {
|
|
89
|
+
propsObserver.setValue({
|
|
90
|
+
context: {
|
|
91
|
+
customWidgetsMap: customWidgetsMap,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
error: (error) => {
|
|
96
|
+
propsObserver.setValue({
|
|
97
|
+
error,
|
|
98
|
+
});
|
|
99
|
+
},
|
|
92
100
|
});
|
|
93
101
|
return {
|
|
94
102
|
propsObserver,
|
|
95
|
-
providerComponent:
|
|
103
|
+
providerComponent: CustomWidgetsProviderAdapter,
|
|
96
104
|
};
|
|
97
105
|
};
|
|
98
106
|
|
|
@@ -176,12 +184,106 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
176
184
|
}] }];
|
|
177
185
|
} });
|
|
178
186
|
|
|
179
|
-
var packageVersion = '2.
|
|
187
|
+
var packageVersion = '2.4.0';
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Service for rendering components dynamically.
|
|
191
|
+
*
|
|
192
|
+
* @internal
|
|
193
|
+
*/
|
|
194
|
+
class DynamicRenderer {
|
|
195
|
+
constructor(appRef, injector, envInjector) {
|
|
196
|
+
this.appRef = appRef;
|
|
197
|
+
this.injector = injector;
|
|
198
|
+
this.envInjector = envInjector;
|
|
199
|
+
}
|
|
200
|
+
renderComponent(component, props) {
|
|
201
|
+
const componentRef = createComponent(component, {
|
|
202
|
+
environmentInjector: this.envInjector,
|
|
203
|
+
elementInjector: this.injector,
|
|
204
|
+
});
|
|
205
|
+
// Apply props to the component instance
|
|
206
|
+
Object.assign(componentRef.instance, props);
|
|
207
|
+
// Attach the component to the application
|
|
208
|
+
this.appRef.attachView(componentRef.hostView);
|
|
209
|
+
// Get the DOM element
|
|
210
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
211
|
+
// Create destroy function
|
|
212
|
+
const destroy = () => {
|
|
213
|
+
// Detach from application
|
|
214
|
+
this.appRef.detachView(componentRef.hostView);
|
|
215
|
+
// Destroy the component
|
|
216
|
+
componentRef.destroy();
|
|
217
|
+
};
|
|
218
|
+
return {
|
|
219
|
+
element: domElem,
|
|
220
|
+
componentRef,
|
|
221
|
+
destroy,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
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 });
|
|
226
|
+
DynamicRenderer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicRenderer, providedIn: 'root' });
|
|
227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicRenderer, decorators: [{
|
|
228
|
+
type: Injectable,
|
|
229
|
+
args: [{ providedIn: 'root' }]
|
|
230
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.Injector }, { type: i0.EnvironmentInjector }]; } });
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Service for working with custom widgets.
|
|
234
|
+
*
|
|
235
|
+
* @group Dashboards
|
|
236
|
+
*/
|
|
237
|
+
class CustomWidgetsService {
|
|
238
|
+
constructor(
|
|
239
|
+
/** @internal */
|
|
240
|
+
dynamicRenderer) {
|
|
241
|
+
this.dynamicRenderer = dynamicRenderer;
|
|
242
|
+
this.customWidgetsMap$ = new BehaviorSubject(new Map());
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Registers a new custom widget.
|
|
246
|
+
*
|
|
247
|
+
* @param customWidgetType - The unique identifier for the custom widget type.
|
|
248
|
+
* @param customWidget - The custom widget component class to register.
|
|
249
|
+
*/
|
|
250
|
+
registerCustomWidget(customWidgetType, customWidget) {
|
|
251
|
+
const customWidgetPreactComponent = (props) => {
|
|
252
|
+
const renderedComponent = this.dynamicRenderer.renderComponent(customWidget, props);
|
|
253
|
+
return createWrapperElement(renderedComponent.element, () => renderedComponent.destroy());
|
|
254
|
+
};
|
|
255
|
+
const customWidgetsMap = this.customWidgetsMap$.value;
|
|
256
|
+
if (!customWidgetsMap.has(customWidgetType)) {
|
|
257
|
+
customWidgetsMap.set(customWidgetType, customWidgetPreactComponent);
|
|
258
|
+
this.customWidgetsMap$.next(customWidgetsMap);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Checks if a custom widget is registered.
|
|
263
|
+
*
|
|
264
|
+
* @param customWidgetType - The type of the custom widget.
|
|
265
|
+
* @returns True if the custom widget is registered, false otherwise.
|
|
266
|
+
*/
|
|
267
|
+
hasCustomWidget(customWidgetType) {
|
|
268
|
+
return this.customWidgetsMap$.value.has(customWidgetType);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
CustomWidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomWidgetsService, deps: [{ token: DynamicRenderer }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
272
|
+
CustomWidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomWidgetsService, providedIn: 'root' });
|
|
273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomWidgetsService, decorators: [{
|
|
274
|
+
type: Injectable,
|
|
275
|
+
args: [{
|
|
276
|
+
providedIn: 'root',
|
|
277
|
+
}]
|
|
278
|
+
}], ctorParameters: function () { return [{ type: DynamicRenderer }]; } });
|
|
180
279
|
|
|
181
280
|
function translateToPreactWidgetProps(widgetProps) {
|
|
182
281
|
const { beforeRender, dataReady, beforeMenuOpen, dataPointClick, dataPointContextMenu, dataPointsSelect } = widgetProps, commonWidgetProps = __rest(widgetProps, ["beforeRender", "dataReady", "beforeMenuOpen", "dataPointClick", "dataPointContextMenu", "dataPointsSelect"]);
|
|
183
282
|
return Object.assign(Object.assign({}, commonWidgetProps), { onBeforeRender: beforeRender, onDataReady: dataReady, onBeforeMenuOpen: beforeMenuOpen, onDataPointClick: dataPointClick
|
|
184
|
-
? (...[point, nativeEvent]) => dataPointClick({
|
|
283
|
+
? (...[point, nativeEvent]) => dataPointClick({
|
|
284
|
+
point,
|
|
285
|
+
nativeEvent,
|
|
286
|
+
})
|
|
185
287
|
: undefined, onDataPointContextMenu: dataPointContextMenu
|
|
186
288
|
? (...[point, nativeEvent]) => dataPointContextMenu({ point, nativeEvent })
|
|
187
289
|
: undefined, onDataPointsSelected: dataPointsSelect
|
|
@@ -261,7 +363,7 @@ let DashboardService = class DashboardService {
|
|
|
261
363
|
[id]="widget.id"
|
|
262
364
|
[widgetType]="widget.widgetType"
|
|
263
365
|
[chartType]="widget.chartType"
|
|
264
|
-
[
|
|
366
|
+
[customWidgetType]="widget.customWidgetType"
|
|
265
367
|
[dataSource]="widget.dataSource"
|
|
266
368
|
[dataOptions]="widget.dataOptions"
|
|
267
369
|
[filters]="widget.filters"
|
|
@@ -337,6 +439,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
337
439
|
}]
|
|
338
440
|
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
339
441
|
|
|
442
|
+
/**
|
|
443
|
+
* Service for working with filter.
|
|
444
|
+
*
|
|
445
|
+
* @group Filters
|
|
446
|
+
*/
|
|
447
|
+
let FilterService = class FilterService {
|
|
448
|
+
constructor(sisenseContextService) {
|
|
449
|
+
this.sisenseContextService = sisenseContextService;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Retrieves members of the provided filter.
|
|
453
|
+
*
|
|
454
|
+
* Those members can be used to display a list of members in a third-party filter component such as Material UI Select.
|
|
455
|
+
*
|
|
456
|
+
* ## Example
|
|
457
|
+
*
|
|
458
|
+
* Retrieve selected members from a Filter on Country of the Sample ECommerce data model.
|
|
459
|
+
*
|
|
460
|
+
* ```ts
|
|
461
|
+
* try {
|
|
462
|
+
* const data = await filterService.getFilterMembers({
|
|
463
|
+
* filter: filterFactory.members(DM.Country.Country, ['United States', 'Canada'])
|
|
464
|
+
* });
|
|
465
|
+
*
|
|
466
|
+
* const { selectedMembers, allMembers, excludeMembers, enableMultiSelection } = data;
|
|
467
|
+
* console.log('selectedMembers', selectedMembers);
|
|
468
|
+
* } catch (error) {
|
|
469
|
+
* console.error('Error:', error);
|
|
470
|
+
* }
|
|
471
|
+
* ```
|
|
472
|
+
*
|
|
473
|
+
* @param params - Parameters for retrieving filter members
|
|
474
|
+
* @returns Promise that resolves to the filter members data
|
|
475
|
+
*/
|
|
476
|
+
getFilterMembers(params) {
|
|
477
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
478
|
+
const hookAdapter = new HookAdapter(useGetFilterMembers, [
|
|
479
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
480
|
+
]);
|
|
481
|
+
const resultPromise = new Promise((resolve, reject) => {
|
|
482
|
+
hookAdapter.subscribe((res) => {
|
|
483
|
+
const { isError, isSuccess, error } = res;
|
|
484
|
+
if (isError) {
|
|
485
|
+
reject(error);
|
|
486
|
+
}
|
|
487
|
+
else if (isSuccess) {
|
|
488
|
+
resolve(res.data);
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
});
|
|
492
|
+
hookAdapter.run(params);
|
|
493
|
+
return resultPromise.finally(() => {
|
|
494
|
+
hookAdapter.destroy();
|
|
495
|
+
});
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
FilterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
500
|
+
FilterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterService, providedIn: 'root' });
|
|
501
|
+
FilterService = __decorate([
|
|
502
|
+
TrackableService(['getFilterMembers'])
|
|
503
|
+
], FilterService);
|
|
504
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterService, decorators: [{
|
|
505
|
+
type: Injectable,
|
|
506
|
+
args: [{
|
|
507
|
+
providedIn: 'root',
|
|
508
|
+
}]
|
|
509
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
510
|
+
|
|
340
511
|
/**
|
|
341
512
|
* Service for working with Sisense Fusion hierarchies.
|
|
342
513
|
*
|
|
@@ -372,58 +543,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
372
543
|
}]
|
|
373
544
|
}], ctorParameters: function () { return [{ type: SisenseContextService }]; } });
|
|
374
545
|
|
|
375
|
-
/**
|
|
376
|
-
* Service for working with plugins fetched from an external environment.
|
|
377
|
-
*
|
|
378
|
-
* Provides methods for registering, retrieving, and interacting with plugins.
|
|
379
|
-
*
|
|
380
|
-
* @internal
|
|
381
|
-
* @group Contexts
|
|
382
|
-
*/
|
|
383
|
-
class PluginsService {
|
|
384
|
-
constructor() {
|
|
385
|
-
this.pluginMap$ = new BehaviorSubject(new Map());
|
|
386
|
-
}
|
|
387
|
-
/**
|
|
388
|
-
* Registers a new plugin into the plugin map.
|
|
389
|
-
*
|
|
390
|
-
* @param pluginType - The unique identifier for the plugin type.
|
|
391
|
-
* @param plugin - The plugin instance to register.
|
|
392
|
-
*/
|
|
393
|
-
registerPlugin(pluginType, plugin) {
|
|
394
|
-
const pluginMap = this.pluginMap$.value;
|
|
395
|
-
if (!pluginMap.has(pluginType)) {
|
|
396
|
-
pluginMap.set(pluginType, plugin);
|
|
397
|
-
this.pluginMap$.next(pluginMap);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* Retrieves a plugin by its type.
|
|
402
|
-
*
|
|
403
|
-
* @param pluginType - The unique identifier for the plugin type.
|
|
404
|
-
* @returns The plugin instance if found, otherwise undefined.
|
|
405
|
-
*/
|
|
406
|
-
getPlugin(pluginType) {
|
|
407
|
-
return this.pluginMap$.value.get(pluginType);
|
|
408
|
-
}
|
|
409
|
-
/**
|
|
410
|
-
* Retrieves a complete plugin map.
|
|
411
|
-
*
|
|
412
|
-
* @returns A plugin map.
|
|
413
|
-
*/
|
|
414
|
-
getPlugins() {
|
|
415
|
-
return this.pluginMap$;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
PluginsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PluginsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
419
|
-
PluginsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PluginsService, providedIn: 'root' });
|
|
420
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PluginsService, decorators: [{
|
|
421
|
-
type: Injectable,
|
|
422
|
-
args: [{
|
|
423
|
-
providedIn: 'root',
|
|
424
|
-
}]
|
|
425
|
-
}], ctorParameters: function () { return []; } });
|
|
426
|
-
|
|
427
546
|
/**
|
|
428
547
|
* Service for executing data queries.
|
|
429
548
|
*
|
|
@@ -530,11 +649,47 @@ let QueryService = class QueryService {
|
|
|
530
649
|
});
|
|
531
650
|
});
|
|
532
651
|
}
|
|
652
|
+
/**
|
|
653
|
+
* Executes a data query from custom widget component props.
|
|
654
|
+
*
|
|
655
|
+
* This method takes custom widget props (dataSource, dataOptions, filters, etc.)
|
|
656
|
+
* and executes the appropriate data query
|
|
657
|
+
*
|
|
658
|
+
* @param params - Custom widget component props containing data source, data options, filters, etc.
|
|
659
|
+
* @returns Promise resolving to query result with formatted data
|
|
660
|
+
*/
|
|
661
|
+
executeCustomWidgetQuery(params) {
|
|
662
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
663
|
+
const hookAdapter = new HookAdapter(useExecuteCustomWidgetQueryInternal, [
|
|
664
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
665
|
+
]);
|
|
666
|
+
const resultPromise = new Promise((resolve, reject) => {
|
|
667
|
+
hookAdapter.subscribe((res) => {
|
|
668
|
+
const { data, isSuccess, isError, error } = res;
|
|
669
|
+
if (isSuccess) {
|
|
670
|
+
resolve({ data });
|
|
671
|
+
}
|
|
672
|
+
else if (isError) {
|
|
673
|
+
reject(error);
|
|
674
|
+
}
|
|
675
|
+
});
|
|
676
|
+
});
|
|
677
|
+
hookAdapter.run(params);
|
|
678
|
+
return resultPromise.finally(() => {
|
|
679
|
+
hookAdapter.destroy();
|
|
680
|
+
});
|
|
681
|
+
});
|
|
682
|
+
}
|
|
533
683
|
};
|
|
534
684
|
QueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, deps: [{ token: SisenseContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
535
685
|
QueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, providedIn: 'root' });
|
|
536
686
|
QueryService = __decorate([
|
|
537
|
-
TrackableService([
|
|
687
|
+
TrackableService([
|
|
688
|
+
'executeQuery',
|
|
689
|
+
'executeQueryByWidgetId',
|
|
690
|
+
'executePivotQuery',
|
|
691
|
+
'executeCustomWidgetQuery',
|
|
692
|
+
])
|
|
538
693
|
], QueryService);
|
|
539
694
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: QueryService, decorators: [{
|
|
540
695
|
type: Injectable,
|
|
@@ -3210,19 +3365,19 @@ class DashboardComponent {
|
|
|
3210
3365
|
*/
|
|
3211
3366
|
themeService,
|
|
3212
3367
|
/**
|
|
3213
|
-
*
|
|
3368
|
+
* Custom widgets service
|
|
3214
3369
|
*
|
|
3215
3370
|
* @internal
|
|
3216
3371
|
* @category Constructor
|
|
3217
3372
|
*/
|
|
3218
|
-
|
|
3373
|
+
customWidgetsService) {
|
|
3219
3374
|
this.sisenseContextService = sisenseContextService;
|
|
3220
3375
|
this.themeService = themeService;
|
|
3221
|
-
this.
|
|
3376
|
+
this.customWidgetsService = customWidgetsService;
|
|
3222
3377
|
this.componentAdapter = new ComponentAdapter(Dashboard, [
|
|
3223
3378
|
createSisenseContextConnector(this.sisenseContextService),
|
|
3224
3379
|
createThemeContextConnector(this.themeService),
|
|
3225
|
-
|
|
3380
|
+
createCustomWidgetsContextConnector(this.customWidgetsService),
|
|
3226
3381
|
]);
|
|
3227
3382
|
}
|
|
3228
3383
|
/**
|
|
@@ -3259,12 +3414,12 @@ class DashboardComponent {
|
|
|
3259
3414
|
this.componentAdapter.destroy();
|
|
3260
3415
|
}
|
|
3261
3416
|
}
|
|
3262
|
-
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }, { token:
|
|
3417
|
+
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 });
|
|
3263
3418
|
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"] });
|
|
3264
3419
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
3265
3420
|
type: Component,
|
|
3266
3421
|
args: [{ selector: 'csdk-dashboard', template: template, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] }]
|
|
3267
|
-
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }, { type:
|
|
3422
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }, { type: CustomWidgetsService }]; }, propDecorators: { preactRef: [{
|
|
3268
3423
|
type: ViewChild,
|
|
3269
3424
|
args: [rootId]
|
|
3270
3425
|
}], title: [{
|
|
@@ -3334,19 +3489,19 @@ class DashboardByIdComponent {
|
|
|
3334
3489
|
*/
|
|
3335
3490
|
themeService,
|
|
3336
3491
|
/**
|
|
3337
|
-
*
|
|
3492
|
+
* Custom widgets service
|
|
3338
3493
|
*
|
|
3339
3494
|
* @internal
|
|
3340
3495
|
* @category Constructor
|
|
3341
3496
|
*/
|
|
3342
|
-
|
|
3497
|
+
customWidgetsService) {
|
|
3343
3498
|
this.sisenseContextService = sisenseContextService;
|
|
3344
3499
|
this.themeService = themeService;
|
|
3345
|
-
this.
|
|
3500
|
+
this.customWidgetsService = customWidgetsService;
|
|
3346
3501
|
this.componentAdapter = new ComponentAdapter(DashboardById, [
|
|
3347
3502
|
createSisenseContextConnector(this.sisenseContextService),
|
|
3348
3503
|
createThemeContextConnector(this.themeService),
|
|
3349
|
-
|
|
3504
|
+
createCustomWidgetsContextConnector(this.customWidgetsService),
|
|
3350
3505
|
]);
|
|
3351
3506
|
}
|
|
3352
3507
|
/**
|
|
@@ -3376,12 +3531,12 @@ class DashboardByIdComponent {
|
|
|
3376
3531
|
this.componentAdapter.destroy();
|
|
3377
3532
|
}
|
|
3378
3533
|
}
|
|
3379
|
-
DashboardByIdComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardByIdComponent, deps: [{ token: SisenseContextService }, { token: ThemeService }, { token:
|
|
3534
|
+
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 });
|
|
3380
3535
|
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"] });
|
|
3381
3536
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardByIdComponent, decorators: [{
|
|
3382
3537
|
type: Component,
|
|
3383
3538
|
args: [{ selector: 'csdk-dashboard-by-id', template: template, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] }]
|
|
3384
|
-
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }, { type:
|
|
3539
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }, { type: CustomWidgetsService }]; }, propDecorators: { preactRef: [{
|
|
3385
3540
|
type: ViewChild,
|
|
3386
3541
|
args: [rootId]
|
|
3387
3542
|
}], dashboardOid: [{
|
|
@@ -3889,6 +4044,129 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3889
4044
|
type: Output
|
|
3890
4045
|
}] } });
|
|
3891
4046
|
|
|
4047
|
+
/**
|
|
4048
|
+
* Filters panel component that renders a list of filter tiles
|
|
4049
|
+
*
|
|
4050
|
+
* @example
|
|
4051
|
+
* Here's how to render a filters panel with a set of filters.
|
|
4052
|
+
*
|
|
4053
|
+
* ```html
|
|
4054
|
+
<!--Component HTML template in example.component.html-->
|
|
4055
|
+
<csdk-filters-panel
|
|
4056
|
+
[filters]="filtersPanelProps.filters"
|
|
4057
|
+
[defaultDataSource]="filtersPanelProps.defaultDataSource"
|
|
4058
|
+
(filtersChange)="filtersPanelProps.filtersChange($event)"
|
|
4059
|
+
/>
|
|
4060
|
+
* ```
|
|
4061
|
+
*
|
|
4062
|
+
* ```ts
|
|
4063
|
+
// Component behavior in example.component.ts
|
|
4064
|
+
import { Component } from '@angular/core';
|
|
4065
|
+
import { type FiltersPanelProps } from '@sisense/sdk-ui-angular';
|
|
4066
|
+
import { filterFactory } from '@sisense/sdk-data';
|
|
4067
|
+
import * as DM from '../../assets/sample-healthcare-model';
|
|
4068
|
+
|
|
4069
|
+
@Component({
|
|
4070
|
+
selector: 'example',
|
|
4071
|
+
templateUrl: './example.component.html',
|
|
4072
|
+
styleUrls: ['./example.component.scss'],
|
|
4073
|
+
})
|
|
4074
|
+
export class ExampleComponent {
|
|
4075
|
+
filtersPanelProps: FiltersPanelProps = {
|
|
4076
|
+
filters: [
|
|
4077
|
+
filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),
|
|
4078
|
+
filterFactory.members(DM.ER.Departments.Department, ['Cardiology']),
|
|
4079
|
+
],
|
|
4080
|
+
defaultDataSource: DM.DataSource,
|
|
4081
|
+
filtersChange({ filters }) {
|
|
4082
|
+
this.filtersPanelProps.filters = filters;
|
|
4083
|
+
},
|
|
4084
|
+
};
|
|
4085
|
+
}
|
|
4086
|
+
* ```
|
|
4087
|
+
* @group Filter Tiles
|
|
4088
|
+
*/
|
|
4089
|
+
class FiltersPanelComponent {
|
|
4090
|
+
/**
|
|
4091
|
+
* Constructor for the `FiltersPanelComponent`.
|
|
4092
|
+
*
|
|
4093
|
+
* @param sisenseContextService - Sisense context service
|
|
4094
|
+
* @param themeService - Theme service
|
|
4095
|
+
*/
|
|
4096
|
+
constructor(
|
|
4097
|
+
/**
|
|
4098
|
+
* Sisense context service
|
|
4099
|
+
*
|
|
4100
|
+
* @category Constructor
|
|
4101
|
+
*/
|
|
4102
|
+
sisenseContextService,
|
|
4103
|
+
/**
|
|
4104
|
+
* Theme service
|
|
4105
|
+
*
|
|
4106
|
+
* @category Constructor
|
|
4107
|
+
*/
|
|
4108
|
+
themeService) {
|
|
4109
|
+
this.sisenseContextService = sisenseContextService;
|
|
4110
|
+
this.themeService = themeService;
|
|
4111
|
+
/**
|
|
4112
|
+
* {@inheritDoc FiltersPanelProps.filtersChange}
|
|
4113
|
+
*/
|
|
4114
|
+
this.filtersChange = new EventEmitter();
|
|
4115
|
+
this.componentAdapter = new ComponentAdapter(FiltersPanel, [
|
|
4116
|
+
createSisenseContextConnector(this.sisenseContextService),
|
|
4117
|
+
createThemeContextConnector(this.themeService),
|
|
4118
|
+
]);
|
|
4119
|
+
}
|
|
4120
|
+
/**
|
|
4121
|
+
* @internal
|
|
4122
|
+
*/
|
|
4123
|
+
ngAfterViewInit() {
|
|
4124
|
+
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
4125
|
+
}
|
|
4126
|
+
/**
|
|
4127
|
+
* @internal
|
|
4128
|
+
*/
|
|
4129
|
+
ngOnChanges() {
|
|
4130
|
+
if (this.preactRef) {
|
|
4131
|
+
this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());
|
|
4132
|
+
}
|
|
4133
|
+
}
|
|
4134
|
+
getPreactComponentProps() {
|
|
4135
|
+
return {
|
|
4136
|
+
filters: this.filters,
|
|
4137
|
+
defaultDataSource: this.defaultDataSource,
|
|
4138
|
+
dataSources: this.dataSources,
|
|
4139
|
+
config: this.config,
|
|
4140
|
+
onFiltersChange: (...[filters]) => this.filtersChange.emit({ filters }),
|
|
4141
|
+
};
|
|
4142
|
+
}
|
|
4143
|
+
/**
|
|
4144
|
+
* @internal
|
|
4145
|
+
*/
|
|
4146
|
+
ngOnDestroy() {
|
|
4147
|
+
this.componentAdapter.destroy();
|
|
4148
|
+
}
|
|
4149
|
+
}
|
|
4150
|
+
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 });
|
|
4151
|
+
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"] });
|
|
4152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FiltersPanelComponent, decorators: [{
|
|
4153
|
+
type: Component,
|
|
4154
|
+
args: [{ selector: 'csdk-filters-panel', template: template, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] }]
|
|
4155
|
+
}], ctorParameters: function () { return [{ type: SisenseContextService }, { type: ThemeService }]; }, propDecorators: { preactRef: [{
|
|
4156
|
+
type: ViewChild,
|
|
4157
|
+
args: [rootId]
|
|
4158
|
+
}], filters: [{
|
|
4159
|
+
type: Input
|
|
4160
|
+
}], defaultDataSource: [{
|
|
4161
|
+
type: Input
|
|
4162
|
+
}], dataSources: [{
|
|
4163
|
+
type: Input
|
|
4164
|
+
}], config: [{
|
|
4165
|
+
type: Input
|
|
4166
|
+
}], filtersChange: [{
|
|
4167
|
+
type: Output
|
|
4168
|
+
}] } });
|
|
4169
|
+
|
|
3892
4170
|
/**
|
|
3893
4171
|
* Member Filter Tile Component
|
|
3894
4172
|
*
|
|
@@ -4747,7 +5025,7 @@ class WidgetComponent {
|
|
|
4747
5025
|
id: this.id,
|
|
4748
5026
|
widgetType: this.widgetType,
|
|
4749
5027
|
chartType: this.chartType,
|
|
4750
|
-
|
|
5028
|
+
customWidgetType: this.customWidgetType,
|
|
4751
5029
|
dataSource: this.dataSource,
|
|
4752
5030
|
dataOptions: this.dataOptions,
|
|
4753
5031
|
filters: this.filters,
|
|
@@ -4771,7 +5049,7 @@ class WidgetComponent {
|
|
|
4771
5049
|
}
|
|
4772
5050
|
}
|
|
4773
5051
|
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 });
|
|
4774
|
-
WidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetComponent, selector: "csdk-widget", inputs: { id: "id", widgetType: "widgetType", chartType: "chartType",
|
|
5052
|
+
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"] });
|
|
4775
5053
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetComponent, decorators: [{
|
|
4776
5054
|
type: Component,
|
|
4777
5055
|
args: [{ selector: 'csdk-widget', template: template, styles: [".csdk-full-size-container{width:100%;height:100%}\n"] }]
|
|
@@ -4784,7 +5062,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4784
5062
|
type: Input
|
|
4785
5063
|
}], chartType: [{
|
|
4786
5064
|
type: Input
|
|
4787
|
-
}],
|
|
5065
|
+
}], customWidgetType: [{
|
|
4788
5066
|
type: Input
|
|
4789
5067
|
}], dataSource: [{
|
|
4790
5068
|
type: Input
|
|
@@ -4987,6 +5265,7 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
4987
5265
|
DashboardComponent,
|
|
4988
5266
|
PivotTableWidgetComponent,
|
|
4989
5267
|
FilterTileComponent,
|
|
5268
|
+
FiltersPanelComponent,
|
|
4990
5269
|
WidgetComponent], imports: [CommonModule, DecoratorsModule], exports: [ChartComponent,
|
|
4991
5270
|
TableComponent,
|
|
4992
5271
|
ChartWidgetComponent,
|
|
@@ -5019,6 +5298,7 @@ SdkUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "1
|
|
|
5019
5298
|
DashboardComponent,
|
|
5020
5299
|
PivotTableWidgetComponent,
|
|
5021
5300
|
FilterTileComponent,
|
|
5301
|
+
FiltersPanelComponent,
|
|
5022
5302
|
WidgetComponent] });
|
|
5023
5303
|
SdkUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, imports: [CommonModule, DecoratorsModule] });
|
|
5024
5304
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SdkUiModule, decorators: [{
|
|
@@ -5057,6 +5337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5057
5337
|
DashboardComponent,
|
|
5058
5338
|
PivotTableWidgetComponent,
|
|
5059
5339
|
FilterTileComponent,
|
|
5340
|
+
FiltersPanelComponent,
|
|
5060
5341
|
WidgetComponent,
|
|
5061
5342
|
],
|
|
5062
5343
|
imports: [CommonModule, DecoratorsModule],
|
|
@@ -5093,6 +5374,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5093
5374
|
DashboardComponent,
|
|
5094
5375
|
PivotTableWidgetComponent,
|
|
5095
5376
|
FilterTileComponent,
|
|
5377
|
+
FiltersPanelComponent,
|
|
5096
5378
|
WidgetComponent,
|
|
5097
5379
|
],
|
|
5098
5380
|
providers: [],
|
|
@@ -5593,5 +5875,5 @@ var widgetModelTranslator = /*#__PURE__*/Object.freeze({
|
|
|
5593
5875
|
* Generated bundle index. Do not edit.
|
|
5594
5876
|
*/
|
|
5595
5877
|
|
|
5596
|
-
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,
|
|
5878
|
+
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 };
|
|
5597
5879
|
//# sourceMappingURL=sisense-sdk-ui-angular.mjs.map
|