@sisense/sdk-ui-angular 2.10.0 → 2.12.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.
@@ -1 +1 @@
1
- {"version":3,"file":"sisense-sdk-ui-angular.mjs","sources":["../../src/lib/component-wrapper-helpers/context-connectors.ts","../../src/lib/component-wrapper-helpers/template.ts","../../src/lib/services/sisense-context.service.ts","../../src/version.ts","../../src/lib/services/dynamic-renderer.service.ts","../../src/lib/services/custom-widgets.service.ts","../../src/lib/helpers/widget-props-preact-translator.ts","../../src/lib/helpers/dashboard-props-preact-translator.ts","../../src/lib/services/dashboard.service.ts","../../src/lib/services/filter.service.ts","../../src/lib/services/hierarchy.service.ts","../../src/lib/services/query.service.ts","../../src/lib/services/widget.service.ts","../../src/lib/decorators/decorators.module.ts","../../src/lib/decorators/trackable.decorator.ts","../../src/lib/services/theme.service.ts","../../src/lib/components/charts/chart.component.ts","../../src/lib/components/charts/area-chart.component.ts","../../src/lib/components/charts/area-range-chart.component.ts","../../src/lib/components/charts/areamap-chart.component.ts","../../src/lib/components/charts/bar-chart.component.ts","../../src/lib/components/charts/boxplot-chart.component.ts","../../src/lib/components/charts/column-chart.component.ts","../../src/lib/components/charts/funnel-chart.component.ts","../../src/lib/components/charts/indicator-chart.component.ts","../../src/lib/components/charts/line-chart.component.ts","../../src/lib/components/charts/pie-chart.component.ts","../../src/lib/components/charts/pivot-table.component.ts","../../src/lib/components/charts/polar-chart.component.ts","../../src/lib/components/charts/scatter-chart.component.ts","../../src/lib/components/charts/scattermap-chart.component.ts","../../src/lib/components/charts/sunburst-chart.component.ts","../../src/lib/components/charts/table.component.ts","../../src/lib/components/charts/treemap-chart.component.ts","../../src/lib/components/context-menu.component.ts","../../src/lib/components/dashboard/dashboard.component.ts","../../src/lib/components/dashboard/dashboard-by-id.component.ts","../../src/lib/components/drilldown-breadcrumbs.component.ts","../../src/lib/components/filters/criteria-filter-tile.component.ts","../../src/lib/components/filters/date-range-filter-tile.component.ts","../../src/lib/helpers/event-emitter-with-has-listeners.ts","../../src/lib/components/filters/filter-tile.component.ts","../../src/lib/components/filters/filters-panel.component.ts","../../src/lib/components/filters/member-filter-tile.component.ts","../../src/lib/components/filters/relative-date-filter-tile.component.ts","../../src/lib/components/widgets/chart-widget.component.ts","../../src/lib/components/widgets/drilldown-widget.component.ts","../../src/lib/components/widgets/pivot-table-widget.component.ts","../../src/lib/components/widgets/table-widget.component.ts","../../src/lib/components/widgets/widget.component.ts","../../src/lib/components/widgets/widget-by-id.component.ts","../../src/lib/sdk-ui.module.ts","../../src/lib/sdk-ui-core-exports.ts","../../src/lib/utilities/dashboard-model-translator.ts","../../src/lib/utilities/dashboard-helpers.ts","../../src/lib/utilities/widget-model-translator.ts","../../src/public-api.ts","../../src/sisense-sdk-ui-angular.ts"],"sourcesContent":["import {\n ContextConnector,\n CustomSisenseContextProvider,\n CustomSisenseContextProviderProps,\n CustomThemeProvider,\n CustomThemeProviderProps,\n CustomWidgetsProviderAdapter,\n CustomWidgetsProviderAdapterProps,\n DataObserver,\n} from '@sisense/sdk-ui-preact';\n\nimport { CustomWidgetsService } from '../services/custom-widgets.service';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\n\n/**\n * Creates theme context connector\n *\n * @param themeService - The theme service\n * @internal\n */\nexport const createThemeContextConnector = (\n themeService: ThemeService,\n): ContextConnector<CustomThemeProviderProps> => {\n const themeSettings$ = themeService.getThemeSettings();\n const propsObserver = new DataObserver<CustomThemeProviderProps>();\n\n themeSettings$.subscribe({\n next: (themeSettings) => {\n propsObserver.setValue({\n context: {\n skipTracking: true,\n themeSettings,\n },\n });\n },\n error: (error: Error) => {\n propsObserver.setValue({\n error,\n });\n },\n });\n\n return {\n propsObserver,\n providerComponent: CustomThemeProvider,\n };\n};\n\nfunction getBaseSisenseContext(sisenseContextService: SisenseContextService) {\n const { showRuntimeErrors, appConfig } = sisenseContextService.getConfig() ?? {};\n return {\n isInitialized: sisenseContextService.isInitialized,\n tracking: {\n // if tracking is configured in appConfig, use it\n // if none is set, default to true\n enabled: appConfig?.trackingConfig?.enabled ?? true,\n packageName: 'sdk-ui-angular',\n },\n errorBoundary: {\n showErrorBox: showRuntimeErrors ?? true,\n },\n };\n}\n\n/**\n * Creates Sisense context connector\n *\n * @param sisenseContextService - The Sisense context service\n * @internal\n */\nexport const createSisenseContextConnector = (\n sisenseContextService: SisenseContextService,\n): ContextConnector<CustomSisenseContextProviderProps> => {\n const propsObserver = new DataObserver<CustomSisenseContextProviderProps>({\n context: getBaseSisenseContext(sisenseContextService),\n });\n\n sisenseContextService.getApp$().subscribe({\n next: ({ app, error }) => {\n if (error) {\n propsObserver.setValue({\n error,\n });\n return;\n }\n propsObserver.setValue({\n context: {\n ...getBaseSisenseContext(sisenseContextService),\n app,\n },\n });\n },\n error: (error: Error) => {\n propsObserver.setValue({\n error,\n });\n },\n });\n\n return {\n propsObserver,\n providerComponent: CustomSisenseContextProvider,\n };\n};\n\n/**\n * Creates custom widgets context connector\n *\n * @param customWidgetsService - The custom widgets service\n * @internal\n */\nexport const createCustomWidgetsContextConnector = (\n customWidgetsService: CustomWidgetsService,\n): ContextConnector<CustomWidgetsProviderAdapterProps> => {\n const { customWidgetsMap$ } = customWidgetsService;\n const propsObserver = new DataObserver<CustomWidgetsProviderAdapterProps>();\n\n customWidgetsMap$.subscribe({\n next: (customWidgetsMap) => {\n propsObserver.setValue({\n context: {\n customWidgetsMap: customWidgetsMap,\n },\n });\n },\n error: (error: Error) => {\n propsObserver.setValue({\n error,\n });\n },\n });\n\n return {\n propsObserver,\n providerComponent: CustomWidgetsProviderAdapter,\n };\n};\n","export const rootId = 'preact';\nexport const rootContentId = 'preactContent';\nexport const template = `\n <div #${rootId} class=\"csdk-full-size-container\"></div>\n`;\nexport const templateWithContent = `\n <div #${rootId} class=\"csdk-full-size-container\">\n <div #${rootContentId} class=\"csdk-full-size-container\">\n <ng-content></ng-content>\n </div>\n </div>\n`;\nexport const styles = [\n `.csdk-full-size-container {\n width: 100%;\n height: 100%;\n }`,\n];\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport type { SisenseContextProviderProps as SisenseContextConfig } from '@sisense/sdk-ui-preact';\nimport { ClientApplication, createClientApplication } from '@sisense/sdk-ui-preact';\nimport { concat, firstValueFrom, Observable, of, ReplaySubject } from 'rxjs';\n\nexport { type SisenseContextConfig };\n\n/**\n * Represents the state of the Sisense client application.\n */\ntype AppState =\n | {\n /** Successfully initialized client application */\n readonly app: ClientApplication;\n readonly error?: never;\n }\n | {\n /** Error that occurred during initialization or connection */\n readonly error: Error;\n readonly app?: never;\n };\n\n/**\n * Token used to inject {@link SisenseContextConfig} into your application\n *\n * @example\n * Example of importing {@link SdkUiModule} and injecting {@link SisenseContextConfig} into your application:\n *\n * ```ts\n * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {\n * url: \"<instance url>\", // replace with the URL of your Sisense instance\n * token: \"<api token>\", // replace with the API token of your user account\n * defaultDataSource: DM.DataSource,\n * };\n *\n * @NgModule({\n * imports: [\n * BrowserModule,\n * SdkUiModule,\n * ],\n * declarations: [AppComponent],\n * providers: [\n * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },\n * ],\n * bootstrap: [AppComponent],\n * })\n * ```\n * @group Contexts\n */\nexport const SISENSE_CONTEXT_CONFIG_TOKEN = new InjectionToken<SisenseContextConfig>(\n 'Props for connecting to Sisense instance',\n);\n\n/**\n * Service for managing Sisense Fusion context and client application lifecycle.\n *\n * This service provides a centralized way to configure and manage the connection to a Sisense instance within Angular applications.\n *\n * @group Contexts\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SisenseContextService {\n /**\n * Reactive stream of application state changes.\n *\n * Uses ReplaySubject to ensure late subscribers receive the latest state.\n */\n private readonly app$: ReplaySubject<AppState>;\n\n /**\n * Configuration object for the Sisense connection.\n *\n * This is set once during initialization and remains readonly thereafter\n * to prevent accidental mutations that could lead to inconsistent state.\n */\n private config?: SisenseContextConfig;\n\n /**\n * Flag indicating whether the service has been initialized with configuration.\n *\n * @internal\n */\n isInitialized = false;\n\n constructor(\n @Optional() @Inject(SISENSE_CONTEXT_CONFIG_TOKEN) sisenseContextConfig?: SisenseContextConfig,\n ) {\n // The buffer size of 1 ensures only the most recent state is cached.\n this.app$ = new ReplaySubject(1);\n\n if (sisenseContextConfig) {\n // Auto-configure if config is provided via DI\n void this.setConfig(sisenseContextConfig);\n }\n }\n\n /**\n * Retrieves the initialized Sisense client application.\n *\n * This method provides access to the client application instance.\n * It waits for the latest state from the reactive stream and either returns\n * the application or throws the error if initialization failed.\n *\n * @returns Promise that resolves to the ClientApplication instance\n * @throws {Error} When the service is not initialized or when application creation failed\n *\n * @internal\n */\n async getApp(): Promise<ClientApplication> {\n if (!this.isInitialized) {\n throw new Error('Sisense context is not initialized');\n }\n\n const { app, error } = await firstValueFrom(this.app$);\n\n if (error) {\n throw error;\n }\n return app;\n }\n\n /**\n * Provides reactive access to the Sisense application state.\n *\n * This method returns an Observable that emits the current application state\n * and all subsequent state changes. It's the preferred way to reactively\n * handle application lifecycle events in Angular components.\n *\n * If the service is not initialized, it immediately emits an error state\n * followed by any future state changes once initialization occurs.\n *\n * @returns Observable stream of AppState changes\n *\n * @internal\n */\n getApp$(): Observable<AppState> {\n if (!this.isInitialized) {\n return concat(\n of({ error: new Error('Sisense context is not initialized') } as const),\n this.app$,\n );\n }\n\n return this.app$;\n }\n\n /**\n * Retrieves the current {@link SisenseContextConfig} configuration object.\n *\n * @returns The current configuration object, or undefined if not yet configured\n */\n getConfig(): SisenseContextConfig | undefined {\n return this.config;\n }\n\n /**\n * Configures and initializes the Sisense context with the provided settings.\n *\n * This method allows to establish a connection to a Sisense instance.\n * It could be used as runtime alternative to {@link SISENSE_CONTEXT_CONFIG_TOKEN} based configuration.\n *\n * @param config - Configuration object\n * @returns Promise that resolves when configuration is complete (success or failure)\n *\n * @example\n * Basic configuration:\n * ```ts\n * await SisenseContextService.setConfig({\n * url: 'https://your-sisense-instance.com',\n * token: 'your-api-token',\n * defaultDataSource: 'Sample ECommerce'\n * });\n * ```\n */\n async setConfig(config: SisenseContextConfig): Promise<void> {\n this.config = {\n ...config,\n showRuntimeErrors: config.showRuntimeErrors ?? true,\n };\n this.isInitialized = true;\n\n try {\n const app = await createClientApplication(this.config);\n this.app$.next({ app } as const);\n } catch (error) {\n this.app$.next({ error: error as Error } as const);\n }\n }\n}\n","export default '2.10.0'","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\n\n/**\n * Result of rendering a dynamic component\n */\nexport interface RenderedComponent {\n /** The DOM element containing the rendered component */\n element: HTMLElement;\n /** Function to properly destroy the component and clean up resources */\n destroy: () => void;\n /** Reference to the Angular component instance */\n componentRef: ComponentRef<any>;\n}\n\n/**\n * Service for rendering components dynamically.\n *\n * @internal\n */\n@Injectable({ providedIn: 'root' })\nexport class DynamicRenderer {\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector,\n private envInjector: EnvironmentInjector,\n ) {}\n\n renderComponent<Props>(component: Type<Props>, props: Props): RenderedComponent {\n const componentRef = createComponent(component, {\n environmentInjector: this.envInjector,\n elementInjector: this.injector,\n });\n\n // Apply props to the component instance\n Object.assign(componentRef.instance as any, props);\n\n // Attach the component to the application\n this.appRef.attachView(componentRef.hostView);\n\n // Get the DOM element\n const domElem = (componentRef.hostView as any).rootNodes[0] as HTMLElement;\n\n // Create destroy function\n const destroy = () => {\n // Detach from application\n this.appRef.detachView(componentRef.hostView);\n\n // Destroy the component\n componentRef.destroy();\n };\n\n return {\n element: domElem,\n componentRef,\n destroy,\n };\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport {\n createWrapperElement,\n type CustomWidgetComponent as CustomWidgetComponentPreact,\n type CustomWidgetComponentProps,\n type GenericDataOptions,\n} from '@sisense/sdk-ui-preact';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DynamicRenderer } from './dynamic-renderer.service';\n\n/** Re-export related types */\nexport type { CustomWidgetComponentProps, GenericDataOptions };\n\n/**\n * Type representing an Angular component class that can be used as a user-defined custom widget.\n */\nexport type CustomWidgetComponent<\n Props extends CustomWidgetComponentProps = CustomWidgetComponentProps,\n> = Type<Props>;\n\n/**\n * Service for working with custom widgets.\n *\n * @group Dashboards\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomWidgetsService {\n /** @internal */\n customWidgetsMap$: BehaviorSubject<Map<string, CustomWidgetComponentPreact<any>>>;\n\n constructor(\n /** @internal */\n private dynamicRenderer: DynamicRenderer,\n ) {\n this.customWidgetsMap$ = new BehaviorSubject(\n new Map<string, CustomWidgetComponentPreact<any>>(),\n );\n }\n\n /**\n * Registers a new custom widget.\n *\n * @param customWidgetType - The unique identifier for the custom widget type.\n * @param customWidget - The custom widget component class to register.\n */\n registerCustomWidget<Props extends CustomWidgetComponentProps = CustomWidgetComponentProps>(\n customWidgetType: string,\n customWidget: CustomWidgetComponent<Props>,\n ): void {\n const customWidgetPreactComponent: CustomWidgetComponentPreact<Props> = (props: Props) => {\n const renderedComponent = this.dynamicRenderer.renderComponent(customWidget, props);\n return createWrapperElement(renderedComponent.element as HTMLDivElement, () =>\n renderedComponent.destroy(),\n );\n };\n\n const customWidgetsMap = this.customWidgetsMap$.value;\n if (!customWidgetsMap.has(customWidgetType)) {\n customWidgetsMap.set(customWidgetType, customWidgetPreactComponent);\n this.customWidgetsMap$.next(customWidgetsMap);\n }\n }\n\n /**\n * Checks if a custom widget is registered.\n *\n * @param customWidgetType - The type of the custom widget.\n * @returns True if the custom widget is registered, false otherwise.\n */\n hasCustomWidget(customWidgetType: string): boolean {\n return this.customWidgetsMap$.value.has(customWidgetType);\n }\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport { SoftUnion, WidgetProps as WidgetPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { WidgetProps } from '../components/widgets';\nimport {\n Arguments,\n ChartDataPointClickEvent,\n ChartDataPointContextMenuEvent,\n ChartDataPointsEvent,\n WidgetDataPointClickEvent,\n WidgetDataPointClickEventHandler,\n} from '../types';\n\ntype SoftWidgetPropsPreact = SoftUnion<WidgetPropsPreact>;\n\nexport function translateToPreactWidgetProps(widgetProps: WidgetProps): WidgetPropsPreact {\n const {\n beforeRender,\n dataReady,\n beforeMenuOpen,\n dataPointClick,\n dataPointContextMenu,\n dataPointsSelect,\n ...commonWidgetProps\n } = widgetProps;\n return {\n ...commonWidgetProps,\n onBeforeRender: beforeRender,\n onDataReady: dataReady,\n onBeforeMenuOpen: beforeMenuOpen,\n onDataPointClick: dataPointClick\n ? (...[point, nativeEvent]: Arguments<SoftWidgetPropsPreact['onDataPointClick']>) =>\n (dataPointClick as WidgetDataPointClickEventHandler)({\n point,\n nativeEvent,\n } as WidgetDataPointClickEvent)\n : undefined,\n onDataPointContextMenu: dataPointContextMenu\n ? (...[point, nativeEvent]: Arguments<SoftWidgetPropsPreact['onDataPointContextMenu']>) =>\n dataPointContextMenu({ point, nativeEvent } as ChartDataPointContextMenuEvent)\n : undefined,\n onDataPointsSelected: dataPointsSelect\n ? (...[points, nativeEvent]: Arguments<SoftWidgetPropsPreact['onDataPointsSelected']>) =>\n dataPointsSelect({ points, nativeEvent } as ChartDataPointsEvent)\n : undefined,\n } as WidgetPropsPreact;\n}\n\nexport function translateFromPreactWidgetProps(widgetProps: WidgetPropsPreact): WidgetProps {\n const {\n onBeforeRender,\n onDataReady,\n onBeforeMenuOpen,\n onDataPointClick,\n onDataPointContextMenu,\n onDataPointsSelected,\n ...commonWidgetProps\n } = widgetProps as SoftWidgetPropsPreact;\n return {\n ...commonWidgetProps,\n beforeRender: onBeforeRender,\n dataReady: onDataReady,\n beforeMenuOpen: onBeforeMenuOpen,\n dataPointClick: onDataPointClick\n ? ({ point, nativeEvent }: ChartDataPointClickEvent) =>\n onDataPointClick(point as any, nativeEvent as any)\n : undefined,\n dataPointContextMenu: onDataPointContextMenu\n ? ({ point, nativeEvent }: ChartDataPointContextMenuEvent) =>\n onDataPointContextMenu(point as any, nativeEvent as any)\n : undefined,\n dataPointsSelect: onDataPointsSelected\n ? ({ points, nativeEvent }: ChartDataPointsEvent) =>\n onDataPointsSelected(points as any, nativeEvent as any)\n : undefined,\n } as WidgetProps;\n}\n","import { DashboardProps as DashboardPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { DashboardProps } from '../components/dashboard';\nimport {\n translateFromPreactWidgetProps,\n translateToPreactWidgetProps,\n} from './widget-props-preact-translator';\n\nexport function translateToPreactDashboardProps(\n dashboardProps: DashboardProps,\n): DashboardPropsPreact {\n return {\n ...dashboardProps,\n widgets: dashboardProps.widgets.map(translateToPreactWidgetProps),\n };\n}\n\nexport function translateFromPreactDashboardProps(\n dashboardProps: DashboardPropsPreact,\n): DashboardProps {\n return {\n ...dashboardProps,\n widgets: dashboardProps.widgets.map(translateFromPreactWidgetProps),\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Filter, FilterRelations } from '@sisense/sdk-data';\nimport {\n type ComposableDashboardProps as ComposableDashboardPropsPreact,\n createHookApiFacade,\n type DashboardProps as DashboardPropsPreact,\n getDashboardModel,\n type GetDashboardModelOptions,\n getDashboardModels,\n type GetDashboardModelsOptions,\n HookAdapter,\n useComposedDashboardInternal,\n UseComposedDashboardOptions,\n WidgetsPanelLayout,\n} from '@sisense/sdk-ui-preact';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { createSisenseContextConnector } from '../component-wrapper-helpers';\nimport { type DashboardProps } from '../components/dashboard/dashboard.component';\nimport { type WidgetProps } from '../components/widgets/widget.component';\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport {\n translateFromPreactDashboardProps,\n translateToPreactDashboardProps,\n} from '../helpers/dashboard-props-preact-translator';\nimport { SisenseContextService } from './sisense-context.service';\n\nexport interface ComposableDashboardProps extends Omit<ComposableDashboardPropsPreact, 'widgets'> {\n widgets: WidgetProps[];\n}\n\n/**\n * Service for working with Sisense Fusion dashboards.\n *\n * **Note:** Dashboard and Widget extensions based on JS scripts and add-ons in Fusion – for example, Blox and Jump To Dashboard – are not supported.\n *\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<DashboardService>(['getDashboardModel', 'getDashboardModels'])\nexport class DashboardService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Retrieves an existing dashboard model from the Sisense instance.\n *\n * @param dashboardOid - Identifier of the dashboard\n * @param options - Advanced configuration options\n * @returns Dashboard model\n */\n async getDashboardModel(dashboardOid: string, options?: GetDashboardModelOptions) {\n const app = await this.sisenseContextService.getApp();\n return getDashboardModel(app.httpClient, dashboardOid, options);\n }\n\n /**\n * Retrieves existing dashboard models from the Sisense instance.\n *\n * @param options - Advanced configuration options\n * @returns Dashboard models array\n */\n async getDashboardModels(options?: GetDashboardModelsOptions) {\n const app = await this.sisenseContextService.getApp();\n return getDashboardModels(app.httpClient, options);\n }\n\n /**\n * Сomposes dashboard or separate dashboard elements into a coordinated dashboard\n * with cross filtering, and change detection.\n *\n * @example\n * An example of using the `createComposedDashboard` to construct a composed dashboard and render it:\n * ```html\n <!--Component HTML template in example.component.html-->\n <div *ngIf=\"dashboard$ | async as dashboard\">\n <csdk-filter-tile\n *ngFor=\"let filter of getDashboardFilters(dashboard); trackBy: trackByIndex\"\n [filter]=\"filter\"\n />\n <csdk-widget\n *ngFor=\"let widget of dashboard.widgets; trackBy: trackByIndex\"\n [id]=\"widget.id\"\n [widgetType]=\"widget.widgetType\"\n [chartType]=\"widget.chartType\"\n [customWidgetType]=\"widget.customWidgetType\"\n [dataSource]=\"widget.dataSource\"\n [dataOptions]=\"widget.dataOptions\"\n [filters]=\"widget.filters\"\n [highlights]=\"widget.highlights\"\n [styleOptions]=\"widget.styleOptions\"\n [drilldownOptions]=\"widget.drilldownOptions\"\n [title]=\"widget.title\"\n [description]=\"widget.description\"\n [beforeMenuOpen]=\"widget.beforeMenuOpen\"\n (dataPointClick)=\"widget.dataPointClick?.($event)\"\n (dataPointContextMenu)=\"widget.dataPointContextMenu?.($event)\"\n (dataPointsSelect)=\"widget.dataPointsSelect?.($event)\"\n />\n </div>\n * ```\n *\n * ```ts\n // Component behavior in example.component.ts\n import { Component } from '@angular/core';\n import { BehaviorSubject } from 'rxjs';\n import { DashboardService, type DashboardProps } from '@sisense/sdk-ui-angular';\n\n @Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n })\n export class ExampleComponent {\n dashboard$: BehaviorSubject<DashboardProps> | undefined;\n\n constructor(private dashboardService: DashboardService) {}\n\n ngOnInit() {\n const initialDashboard: DashboardProps = { ... };\n const composedDashboard = this.dashboardService.createComposedDashboard(initialDashboard);\n this.dashboard$ = composedDashboard.dashboard$;\n }\n\n trackByIndex = (index: number) => index;\n\n getDashboardFilters = ({ filters }: DashboardProps) => Array.isArray(filters) ? filters : [];\n }\n * ```\n * @param initialDashboard - Initial dashboard\n * @param options - Configuration options\n * @returns Reactive composed dashboard object and API methods for interacting with it\n */\n createComposedDashboard<D extends ComposableDashboardProps | DashboardProps>(\n initialDashboard: D,\n options: UseComposedDashboardOptions = {},\n ): {\n dashboard$: BehaviorSubject<D>;\n setFilters: (filters: Filter[] | FilterRelations) => Promise<void>;\n setWidgetsLayout: (newLayout: WidgetsPanelLayout) => Promise<void>;\n } {\n const hookAdapter = new HookAdapter(\n useComposedDashboardInternal<ComposableDashboardPropsPreact | DashboardPropsPreact>,\n [createSisenseContextConnector(this.sisenseContextService)],\n );\n const dashboard$ = new BehaviorSubject<D>(initialDashboard);\n\n hookAdapter.subscribe(({ dashboard }) => {\n dashboard$.next(translateFromPreactDashboardProps(dashboard) as D);\n });\n\n hookAdapter.run(\n translateToPreactDashboardProps(initialDashboard) as\n | ComposableDashboardPropsPreact\n | DashboardPropsPreact,\n options,\n );\n\n const setFilters = createHookApiFacade(hookAdapter, 'setFilters', true);\n const setWidgetsLayout = createHookApiFacade(hookAdapter, 'setWidgetsLayout', true);\n\n return {\n dashboard$,\n setFilters,\n setWidgetsLayout,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n type GetFilterMembersData,\n type GetFilterMembersParams as GetFilterMembersParamsPreact,\n type GetFilterMembersResult as GetFilterMembersResultPreact,\n HookAdapter,\n useGetFilterMembers,\n} from '@sisense/sdk-ui-preact';\n\nimport { createSisenseContextConnector } from '../component-wrapper-helpers';\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { SisenseContextService } from './sisense-context.service';\n\nexport type { GetFilterMembersData };\n\n/**\n * Parameters for retrieving filter members.\n */\nexport interface GetFilterMembersParams extends Omit<GetFilterMembersParamsPreact, 'enabled'> {}\n\n/**\n * Service for working with filter.\n *\n * @group Filters\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<FilterService>(['getFilterMembers'])\nexport class FilterService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Retrieves members of the provided filter.\n *\n * Those members can be used to display a list of members in a third-party filter component such as Material UI Select.\n *\n * ## Example\n *\n * Retrieve selected members from a Filter on Country of the Sample ECommerce data model.\n *\n * ```ts\n * try {\n * const data = await filterService.getFilterMembers({\n * filter: filterFactory.members(DM.Country.Country, ['United States', 'Canada'])\n * });\n *\n * const { selectedMembers, allMembers, excludeMembers, enableMultiSelection } = data;\n * console.log('selectedMembers', selectedMembers);\n * } catch (error) {\n * console.error('Error:', error);\n * }\n * ```\n *\n * @param params - Parameters for retrieving filter members\n * @returns Promise that resolves to the filter members data\n */\n async getFilterMembers(params: GetFilterMembersParams): Promise<GetFilterMembersData> {\n const hookAdapter = new HookAdapter(useGetFilterMembers, [\n createSisenseContextConnector(this.sisenseContextService),\n ]);\n\n const resultPromise = new Promise<GetFilterMembersData>((resolve, reject) => {\n hookAdapter.subscribe((res: GetFilterMembersResultPreact) => {\n const { isError, isSuccess, error } = res;\n\n if (isError) {\n reject(error);\n } else if (isSuccess) {\n resolve(res.data);\n }\n });\n });\n\n hookAdapter.run(params);\n\n return resultPromise.finally(() => {\n hookAdapter.destroy();\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n getHierarchyModels,\n type GetHierarchyModelsParams as GetHierarchyModelsParamsPreact,\n HierarchyModel,\n} from '@sisense/sdk-ui-preact';\n\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { SisenseContextService } from './sisense-context.service';\n\n/**\n * Parameters for retrieving an existing hierarchy models from the Sisense instance.\n */\nexport interface GetHierarchyModelsParams extends Omit<GetHierarchyModelsParamsPreact, 'enabled'> {}\n\n/**\n * Service for working with Sisense Fusion hierarchies.\n *\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<HierarchyService>(['getHierarchyModels'])\nexport class HierarchyService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Retrieves existing hierarchy models from the Sisense instance.\n *\n * @param params - Parameters to identify the target hierarchy models\n * @returns Hierarchy models array\n */\n async getHierarchyModels(params: GetHierarchyModelsParams): Promise<HierarchyModel[]> {\n const app = await this.sisenseContextService.getApp();\n return getHierarchyModels(app.httpClient, params, app.defaultDataSource);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { getFilterListAndRelationsJaql, QueryResultData } from '@sisense/sdk-data';\nimport {\n type ExecuteCsvQueryParams as ExecuteCsvQueryParamsPreact,\n type ExecuteCustomWidgetQueryParams as ExecuteCustomWidgetQueryParamsPreact,\n executePivotQuery,\n type ExecutePivotQueryParams as ExecutePivotQueryParamsPreact,\n executeQuery,\n executeQueryByWidgetId,\n type ExecuteQueryByWidgetIdParams as ExecuteQueryByWidgetIdParamsPreact,\n type ExecuteQueryParams as ExecuteQueryParamsPreact,\n HookAdapter,\n useExecuteCsvQueryInternal,\n useExecuteCustomWidgetQueryInternal,\n} from '@sisense/sdk-ui-preact';\n\nimport { createSisenseContextConnector } from '../component-wrapper-helpers';\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { SisenseContextService } from './sisense-context.service';\n\ninterface ExecuteQueryHandlers {\n /** Sync or async callback that allows to modify the JAQL payload before it is sent to the server. */\n beforeQuery?: ExecuteQueryParamsPreact['onBeforeQuery'];\n}\n\n/**\n * Parameters for data query execution.\n */\nexport interface ExecuteQueryParams\n extends Omit<ExecuteQueryParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Parameters for data query by widget id execution.\n */\nexport interface ExecuteQueryByWidgetIdParams\n extends Omit<ExecuteQueryByWidgetIdParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Parameters for pivot data query execution.\n */\nexport interface ExecutePivotQueryParams\n extends Omit<ExecutePivotQueryParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Parameters for CSV data query execution.\n */\nexport interface ExecuteCsvQueryParams\n extends Omit<ExecuteCsvQueryParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Parameters for custom widget query execution.\n */\nexport interface ExecuteCustomWidgetQueryParams\n extends Omit<ExecuteCustomWidgetQueryParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Service for executing data queries.\n *\n * @group Queries\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<QueryService>([\n 'executeQuery',\n 'executeQueryByWidgetId',\n 'executePivotQuery',\n 'executeCustomWidgetQuery',\n])\nexport class QueryService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Executes a data query. If you want to display the query results, you can use\n * them to populate Compose SDK UI elements or third party UI elements.\n *\n * To learn how to populate third party UI elements with query results, see the\n * [External Charts Guide](/guides/sdk/guides/charts/guide-external-charts.html#query)\n *\n * @param params - Query parameters\n * @return Query result\n */\n async executeQuery(params: ExecuteQueryParams) {\n const {\n dataSource,\n dimensions,\n measures,\n filters,\n highlights,\n count,\n offset,\n ungroup,\n beforeQuery,\n } = params;\n const app = await this.sisenseContextService.getApp();\n const { filters: filterList, relations: filterRelations } =\n getFilterListAndRelationsJaql(filters);\n const data = await executeQuery(\n {\n dataSource,\n dimensions,\n measures,\n filters: filterList,\n filterRelations,\n highlights,\n count,\n offset,\n ungroup,\n },\n app,\n { onBeforeQuery: beforeQuery },\n );\n\n return { data };\n }\n\n /**\n * Executes a data query extracted from an existing widget in the Sisense instance.\n *\n * @param params - Parameters to identify the target widget\n * @returns Query result\n */\n async executeQueryByWidgetId(params: ExecuteQueryByWidgetIdParams) {\n const app = await this.sisenseContextService.getApp();\n\n return executeQueryByWidgetId({\n ...params,\n app,\n onBeforeQuery: params.beforeQuery,\n });\n }\n\n /**\n * Executes a data query for a pivot table.\n *\n * @param params - Pivot query parameters\n * @return Pivot query result\n * @beta\n */\n async executePivotQuery(params: ExecutePivotQueryParams) {\n const {\n dataSource,\n rows,\n columns,\n values,\n grandTotals,\n filters,\n highlights,\n count,\n offset,\n beforeQuery,\n } = params;\n const { filters: filterList, relations: filterRelations } =\n getFilterListAndRelationsJaql(filters);\n\n const app = await this.sisenseContextService.getApp();\n const data = await executePivotQuery(\n {\n dataSource,\n rows,\n columns,\n values,\n grandTotals,\n filters: filterList,\n filterRelations,\n highlights,\n count,\n offset,\n },\n app,\n { onBeforeQuery: beforeQuery },\n );\n\n return { data };\n }\n\n /**\n * Executes a CSV data query.\n * Similar to {@link QueryService.executeQuery}, but returns the data in CSV format as text or as a stream.\n *\n * @param params - CSV query parameters\n * @return CSV query result\n */\n async executeCsvQuery(params: ExecuteCsvQueryParams) {\n const hookAdapter = new HookAdapter(useExecuteCsvQueryInternal, [\n createSisenseContextConnector(this.sisenseContextService),\n ]);\n\n const resultPromise = new Promise<{ data: Blob | string }>((resolve, reject) => {\n hookAdapter.subscribe((res) => {\n const { data, isSuccess, isError, error } = res;\n if (isSuccess) {\n resolve({ data });\n } else if (isError) {\n reject(error);\n }\n });\n });\n\n hookAdapter.run(params);\n\n return resultPromise.finally(() => {\n hookAdapter.destroy();\n });\n }\n\n /**\n * Executes a data query from custom widget component props.\n *\n * This method takes custom widget props (dataSource, dataOptions, filters, etc.)\n * and executes the appropriate data query\n *\n * @param params - Custom widget component props containing data source, data options, filters, etc.\n * @returns Promise resolving to query result with formatted data\n */\n async executeCustomWidgetQuery(params: ExecuteCustomWidgetQueryParams) {\n const hookAdapter = new HookAdapter(useExecuteCustomWidgetQueryInternal, [\n createSisenseContextConnector(this.sisenseContextService),\n ]);\n\n const resultPromise = new Promise<{ data: QueryResultData }>((resolve, reject) => {\n hookAdapter.subscribe((res) => {\n const { data, isSuccess, isError, error } = res;\n if (isSuccess) {\n resolve({ data });\n } else if (isError) {\n reject(error);\n }\n });\n });\n\n hookAdapter.run(params);\n\n return resultPromise.finally(() => {\n hookAdapter.destroy();\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n getWidgetModel,\n type GetWidgetModelParams as GetWidgetModelParamsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { SisenseContextService } from './sisense-context.service';\n\n/**\n * Parameters for retrieving an existing widget model from the Sisense instance\n */\nexport interface GetWidgetModelParams extends Omit<GetWidgetModelParamsPreact, 'enabled'> {}\n\n/**\n * Service for working with Sisense Fusion widgets.\n *\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<WidgetService>(['getWidgetModel'])\nexport class WidgetService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Retrieves an existing widget model from the Sisense instance.\n *\n * @param params - Parameters to identify the target widget\n * @returns Widget model\n */\n async getWidgetModel(params: GetWidgetModelParams) {\n const { dashboardOid, widgetOid } = params;\n const app = await this.sisenseContextService.getApp();\n return getWidgetModel(app.httpClient, dashboardOid, widgetOid);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SisenseContextService } from '../services';\n\n@NgModule({\n declarations: [],\n exports: [],\n})\nexport class DecoratorsModule {\n static sisenseContextService: SisenseContextService;\n\n constructor(sisenseContextService: SisenseContextService) {\n DecoratorsModule.sisenseContextService = sisenseContextService;\n }\n}\n","import { trackProductEvent } from '@sisense/sdk-tracking';\nimport { TrackingEventType } from '@sisense/sdk-tracking/src/registry';\n\nimport packageVersion from '../../version';\nimport { DecoratorsModule } from './decorators.module';\n\nexport function Trackable(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: unknown[]) {\n track('sdkAngularServiceMethodExecuted', propertyKey);\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n}\n\ntype ConstructorOf<T> = { new (...args: any[]): T };\n\ntype SubType<Base, Condition> = Pick<\n Base,\n {\n [Key in keyof Base]: Base[Key] extends Condition ? Key : never;\n }[keyof Base]\n>;\ntype MethodsOnly<T> = SubType<T, (...args: any[]) => any>;\ntype MethodsArray<T> = T extends infer C ? (keyof MethodsOnly<C>)[] : [];\n\n/** @internal */\nexport function TrackableService<T>(trackableMethods: MethodsArray<T>) {\n return function (ServiceClass: ConstructorOf<T>): void | ConstructorOf<T> {\n trackableMethods.forEach((methodName) => {\n // eslint-disable-next-line security/detect-object-injection\n const original = ServiceClass.prototype[methodName];\n\n // eslint-disable-next-line security/detect-object-injection\n ServiceClass.prototype[methodName] = function (...params: unknown[]) {\n track('sdkAngularServiceMethodExecuted', `${ServiceClass.name}.${methodName}`);\n return original.apply(this, params);\n };\n });\n };\n}\n\nexport async function track(action: TrackingEventType, methodName: string) {\n try {\n const app = await DecoratorsModule.sisenseContextService.getApp();\n\n const trackingEnabled = app.settings?.trackingConfig?.enabled ?? true;\n\n if (app?.httpClient) {\n const payload = {\n packageName: 'sdk-ui-angular',\n packageVersion,\n methodName,\n };\n\n void trackProductEvent(action, payload, app.httpClient, !trackingEnabled);\n }\n } catch (e) {\n console.warn('tracking error', e);\n }\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport {\n type CompleteThemeSettings,\n getDefaultThemeSettings,\n getThemeSettingsByOid,\n type ThemeProviderProps as ThemeConfig,\n} from '@sisense/sdk-ui-preact';\nimport { BehaviorSubject, skip } from 'rxjs';\nimport merge from 'ts-deepmerge';\n\nimport { track, TrackableService } from '../decorators/trackable.decorator';\nimport { type ThemeSettings } from '../sdk-ui-core-exports';\nimport { SisenseContextService } from './sisense-context.service';\n\nexport { type ThemeConfig };\n\n/**\n * Token used to inject {@link ThemeConfig} into your application\n *\n * @example\n *\n * Example of injecting both {@link SisenseContextConfig} and {@link ThemeConfig} into your application:\n *\n * ```ts\n * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {\n * url: \"<instance url>\", // replace with the URL of your Sisense instance\n * token: \"<api token>\", // replace with the API token of your user account\n * defaultDataSource: DM.DataSource,\n * };\n *\n * @NgModule({\n * imports: [\n * BrowserModule,\n * SdkUiModule,\n * ],\n * declarations: [AppComponent],\n * providers: [\n * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },\n * {\n * provide: THEME_CONFIG_TOKEN,\n * useValue: {\n * // initial theme settings\n * } as ThemeConfig,\n * },\n * ],\n * bootstrap: [AppComponent],\n * })\n * ```\n * @group Contexts\n */\nexport const THEME_CONFIG_TOKEN = new InjectionToken<ThemeConfig>('theme configuration');\n\n/**\n * Service for working with Sisense Fusion themes.\n *\n * If no theme service is used, the current Fusion theme is applied by default.\n *\n * @group Contexts\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<ThemeService>(['updateThemeSettings'])\nexport class ThemeService {\n private themeSettings$: BehaviorSubject<CompleteThemeSettings>;\n\n private initializationPromise: Promise<void> = Promise.resolve();\n\n constructor(\n private sisenseContextService: SisenseContextService,\n @Optional() @Inject(THEME_CONFIG_TOKEN) themeConfig?: ThemeConfig,\n ) {\n this.themeSettings$ = new BehaviorSubject<CompleteThemeSettings>(getDefaultThemeSettings());\n this.initializationPromise = this.initThemeSettings(themeConfig?.theme);\n this.sisenseContextService\n .getApp$()\n // Skip current app value\n .pipe(skip(1))\n // Subscribe to new app values\n .subscribe({\n next: ({ app }) => {\n if (app) {\n this.initializationPromise = this.applyThemeSettings(app.settings.serverThemeSettings);\n }\n },\n });\n }\n\n private async initThemeSettings(theme: ThemeConfig['theme']) {\n const app = await this.sisenseContextService.getApp();\n\n // apply system theme settings first\n await this.applyThemeSettings(app.settings.serverThemeSettings);\n\n if (theme) {\n // Manually tracks theme update during initialization as execution of updateThemeSettings for consistency.\n track('sdkAngularServiceMethodExecuted', 'ThemeService.updateThemeSettings');\n await this.applyThemeSettings(theme);\n }\n }\n\n private async applyThemeSettings(theme: string | ThemeSettings) {\n try {\n const app = await this.sisenseContextService.getApp();\n const isThemeOid = typeof theme === 'string';\n let userThemeSettings = theme as ThemeSettings;\n\n if (isThemeOid) {\n userThemeSettings = await getThemeSettingsByOid(theme, app.httpClient);\n }\n\n const mergedThemeSettings = merge.withOptions(\n { mergeArrays: false },\n this.themeSettings$.value,\n userThemeSettings,\n ) as CompleteThemeSettings;\n\n this.themeSettings$.next(mergedThemeSettings);\n } catch (error) {\n this.themeSettings$.error(error);\n }\n }\n\n /** @internal */\n getThemeSettings() {\n return this.themeSettings$.asObservable();\n }\n\n async updateThemeSettings(theme: string | ThemeSettings) {\n await this.initializationPromise;\n await this.applyThemeSettings(theme);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n Chart as ChartPreact,\n type ChartProps as ChartPropsPreact,\n ComponentAdapter,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { ChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport {\n ChartDataPointClickEvent,\n ChartDataPointContextMenuEvent,\n ChartDataPointsEvent,\n} from '../../types/data-point';\nimport type { Arguments } from '../../types/utility-types';\n\n/**\n * Props shared across the {@link ChartComponent}.\n */\nexport interface ChartProps\n extends WithoutPreactChartEventProps<ChartPropsPreact>,\n ChartEventProps {}\n\n/**\n * An Angular component used for easily switching chart types or rendering multiple series of different chart types.\n *\n * @example\n * An example of using the `Chart` component to\n * plot a column chart of the Sample Healthcare data source hosted in a Sisense instance:\n *\n * ```html\n * <!--Component HTML template in .component.html-->\n * <csdk-chart\n * [chartType]=\"chart.chartType\"\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [filters]=\"chart.filters\"\n * [styleOptions]=\"chart.styleOptions\"\n * />\n * ```\n *\n * ```ts\n * // Component behavior in .component.ts\n * chart = {\n * chartType: 'column' as ChartType,\n * dataSet: DM.DataSource,\n * dataOptions: {\n * category: [DM.Admissions.Admission_Time.Months],\n * value: [measureFactory.count(DM.Admissions.Patient_ID, 'Total Patients')],\n * breakBy: [],\n * },\n * filters: [filterFactory.members(DM.Doctors.Specialty, ['Oncology', 'Cardiology'])],\n * styleOptions: {\n * width: 800,\n * height: 500,\n * xAxis: {\n * title: {\n * text: 'Months',\n * enabled: true,\n * },\n * },\n * yAxis: {\n * title: {\n * text: 'Total Patients',\n * enabled: true,\n * },\n * },\n * },\n * };\n * ```\n *\n * <img src=\"media://angular-chart-example.png\" width=\"800px\" />\n * @shortDescription Common component for rendering charts of different types including table\n * @group Charts\n */\n@Component({\n selector: 'csdk-chart',\n template,\n styles,\n})\nexport class ChartComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.chartType}\n *\n * @category Chart\n */\n @Input()\n chartType!: ChartProps['chartType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: ChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: ChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: ChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: ChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ChartDataPointClickEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointContextMenuEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<ChartDataPointsEvent>();\n\n private componentAdapter: ComponentAdapter<typeof ChartPreact>;\n\n /**\n * Constructor for the `Chart` component.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(ChartPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): ChartPropsPreact {\n return {\n chartType: this.chartType,\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n onBeforeRender: this.beforeRender?.bind(this),\n onDataReady: this.dataReady?.bind(this),\n onDataPointClick: (\n ...[point, nativeEvent]: Arguments<ChartPropsPreact['onDataPointClick']>\n ) => this.dataPointClick.emit({ point, nativeEvent } as ChartDataPointClickEvent),\n onDataPointContextMenu: (\n ...[point, nativeEvent]: Arguments<ChartPropsPreact['onDataPointContextMenu']>\n ) => this.dataPointContextMenu.emit({ point, nativeEvent } as ChartDataPointContextMenuEvent),\n onDataPointsSelected: (\n ...[points, nativeEvent]: Arguments<ChartPropsPreact['onDataPointsSelected']>\n ) => this.dataPointsSelect.emit({ points, nativeEvent } as ChartDataPointsEvent),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type AreaChartProps as AreaChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link AreaChartComponent} component.\n */\nexport interface AreaChartProps\n extends WithoutPreactChartEventProps<AreaChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component similar to a {@link LineChartComponent},\n * but with filled in areas under each line and an option to display them as stacked.\n *\n * @example\n * ```html\n * <csdk-area-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory, Filter } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-area-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-area-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class AreaChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: AreaChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: AreaChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: AreaChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: AreaChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: AreaChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: AreaChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: AreaChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'area';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type AreaRangeChartProps as AreaRangeChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link AreaRangeChartComponent}.\n */\nexport interface AreaRangeChartProps\n extends WithoutPreactChartEventProps<AreaRangeChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component that displays a range of data over a given time period or across multiple categories.\n * It is particularly useful for visualizing the minimum and maximum values in a dataset, along with\n * the area between these values.\n *\n * @example\n * ```html\n * <csdk-area-range-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory, Filter } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType, RangeChartDataOptions } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'arearange' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Admissions.Admission_Time.Years],\n value: [\n {\n title: 'Admission Cost Range',\n upperBound: measureFactory.multiply(\n measureFactory.sum(DM.Admissions.Cost_of_admission, 'Lower Admission'),\n 0.6,\n ),\n lowerBound: measureFactory.multiply(\n measureFactory.sum(DM.Admissions.Cost_of_admission, 'Upper Admission'),\n 1.4,\n ),\n }\n ],\n breakBy: [],\n } as RangeChartDataOptions,\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-area-range-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-area-range-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class AreaRangeChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: AreaRangeChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: AreaRangeChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: AreaRangeChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: AreaRangeChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: AreaRangeChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: AreaRangeChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: AreaRangeChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'arearange';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n type AreamapChartProps as AreamapChartPropsPreact,\n type ChartType,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n AreamapChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { AreamapDataPointEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link AreamapChartComponent}.\n */\nexport interface AreamapChartProps\n extends WithoutPreactChartEventProps<AreamapChartPropsPreact>,\n AreamapChartEventProps {}\n\n/**\n * An Angular component that allows to visualize geographical data as polygons on a map.\n *\n * @example\n * ```html\n * <csdk-areamap-chart\n * [dataSet]=\"areamapChart.dataSet\"\n * [dataOptions]=\"areamapChart.dataOptions\"\n * [styleOptions]=\"areamapChart.styleOptions\"\n * (dataPointClick)=\"logArguments($event)\"\n * />\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-ecommerce';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n areamapChart = {\n dataSet: DM.DataSource,\n dataOptions: {\n geo: [DM.Country.Country],\n color: [measureFactory.sum(DM.Commerce.Revenue, 'Color by Revenue')],\n } as AreamapChartDataOptions,\n styleOptions: {\n mapType: 'world',\n } as AreamapStyleOptions,\n };\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-areamap-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-areamap-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n />\n `,\n})\nexport class AreamapChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: AreamapChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: AreamapChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: AreamapChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: AreamapChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: AreamapChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: AreamapChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<AreamapDataPointEvent>();\n\n /** @internal */\n public chartType: ChartType = 'areamap';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type BarChartProps as BarChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link BarChartComponent}.\n */\nexport interface BarChartProps\n extends WithoutPreactChartEventProps<BarChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component representing categorical data with horizontal rectangular bars,\n * whose lengths are proportional to the values that they represent.\n *\n * @example\n * ```html\n * <csdk-bar-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-bar-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-bar-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class BarChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: BarChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: BarChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: BarChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: BarChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: BarChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: BarChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: BarChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'bar';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type BoxplotChartProps as BoxplotChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n BoxplotChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { BoxplotDataPointEvent, BoxplotDataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link BoxplotChartComponent}.\n */\nexport interface BoxplotChartProps\n extends WithoutPreactChartEventProps<BoxplotChartPropsPreact>,\n BoxplotChartEventProps {}\n\n/**\n * An Angular component representing data in a way that visually describes the distribution\n * variability, and center of a data set along an axis.\n *\n * @example\n * ```html\n * <csdk-boxplot-chart\n * [dataSet]=\"boxplotChart.dataSet\"\n * [dataOptions]=\"boxplotChart.dataOptions\"\n * [highlights]=\"boxplotChart.highlights\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport { filterFactory } from '@sisense/sdk-data';\nimport type { BoxplotChartDataOptions } from '@sisense/sdk-ui-angular';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n boxplotChart = {\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [DM.Admissions.TimeofStay],\n boxType: 'iqr',\n outliersEnabled: true,\n } as BoxplotChartDataOptions,\n highlights: [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])],\n };\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-boxplot-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-boxplot-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class BoxplotChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: BoxplotChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: BoxplotChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: BoxplotChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: BoxplotChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: BoxplotChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: BoxplotChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: BoxplotChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<BoxplotDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<BoxplotDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<BoxplotDataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'boxplot';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ColumnChartProps as ColumnChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link ColumnChartComponent}.\n */\nexport interface ColumnChartProps\n extends WithoutPreactChartEventProps<ColumnChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component representing categorical data with vertical rectangular bars\n * whose heights are proportional to the values that they represent.\n *\n * @example\n * ```html\n * <csdk-column-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-column-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-column-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class ColumnChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: ColumnChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: ColumnChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ColumnChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ColumnChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: ColumnChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: ColumnChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ColumnChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'column';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type FunnelChartProps as FunnelChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link FunnelChartComponent}.\n */\nexport interface FunnelChartProps\n extends WithoutPreactChartEventProps<FunnelChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component representing data progressively decreasing in size or quantity through a funnel shape.\n *\n * @example\n * ```html\n * <csdk-funnel-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory, Filter } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-funnel-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-funnel-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class FunnelChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: FunnelChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: FunnelChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: FunnelChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: FunnelChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: FunnelChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: FunnelChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: FunnelChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'funnel';\n}\n","import { Component, Input } from '@angular/core';\nimport { type IndicatorChartProps as IndicatorChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n IndicatorChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\n\n/**\n * Props of the {@link IndicatorChartComponent}.\n */\nexport interface IndicatorChartProps\n extends WithoutPreactChartEventProps<IndicatorChartPropsPreact>,\n IndicatorChartEventProps {}\n\n/**\n * A component that provides various options for displaying one or two numeric values as a number, gauge or ticker.\n *\n * @example\n * ```html\n * <csdk-indicator-chart\n * [dataSet]=\"indicator.dataSet\"\n * [dataOptions]=\"indicator.dataOptions\"\n * [filters]=\"filters\"\n * [styleOptions]=\"indicator.styleOptions\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { IndicatorStyleOptions } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n indicator = {\n dataSet: DM.DataSource,\n dataOptions: {\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n secondary: [measureFactory.sum(DM.Admissions.Diagnosis_ID)],\n },\n styleOptions: {\n indicatorComponents: {\n title: {\n shouldBeShown: true,\n text: 'Total Cost_of_admission',\n },\n secondaryTitle: {\n text: 'Total Diagnosis_ID',\n },\n ticks: {\n shouldBeShown: true,\n },\n labels: {\n shouldBeShown: true,\n },\n },\n subtype: 'indicator/gauge',\n skin: 2,\n } as IndicatorStyleOptions,\n };\n\n}\n * ```\n * <img src=\"media://angular-indicator-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-indicator-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n />\n `,\n})\nexport class IndicatorChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: IndicatorChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: IndicatorChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: IndicatorChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: IndicatorChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: IndicatorChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: IndicatorChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: IndicatorChartProps['dataReady'];\n\n /** @internal */\n public chartType: ChartType = 'indicator';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type LineChartProps as LineChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link LineChartComponent}.\n */\nexport interface LineChartProps\n extends WithoutPreactChartEventProps<LineChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component displaying data as a series of points connected by a line. Used to show trends or changes over time.\n *\n * @example\n * ```html\n * <csdk-line-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory, Filter } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-line-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-line-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class LineChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: LineChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: LineChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: LineChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: LineChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: LineChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: LineChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: LineChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'line';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type PieChartProps as PieChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link PieChartComponent}.\n */\nexport interface PieChartProps\n extends WithoutPreactChartEventProps<PieChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component representing data in a circular graph with the data shown as slices of a whole,\n * with each slice representing a proportion of the total.\n *\n * @example\n * ```html\n * <csdk-pie-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-pie-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-pie-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class PieChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: PieChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: PieChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: PieChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: PieChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: PieChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: PieChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: PieChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'pie';\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n PivotTable as PivotTablePreact,\n type PivotTableProps as PivotTablePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services';\nimport { ThemeService } from '../../services';\n\n/**\n * Props of the {@link PivotTableComponent}.\n */\nexport interface PivotTableProps extends PivotTablePropsPreact {}\n\n/**\n * Pivot Table with and pagination.\n *\n * @example\n * ```html\n * <csdk-pivot-table\n * [dataSet]=\"pivotTable.dataSet\"\n * [dataOptions]=\"pivotTable.dataOptions\"\n * [filters]=\"pivotTable.filters\"\n * [styleOptions]=\"pivotTable.styleOptions\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-ecommerce';\nimport type { PivotTableDataOptions } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n\n pivotTableDataOptions: PivotTableDataOptions = {\n rows: [\n { column: DM.Category.Category, includeSubTotals: true },\n { column: DM.Commerce.AgeRange, includeSubTotals: true },\n DM.Commerce.Condition,\n ],\n columns: [{ column: DM.Commerce.Gender, includeSubTotals: true }],\n values: [\n measureFactory.sum(DM.Commerce.Cost, 'Total Cost'),\n {\n column: measureFactory.sum(DM.Commerce.Revenue, 'Total Revenue'),\n totalsCalculation: 'sum',\n dataBars: true,\n },\n ],\n grandTotals: { title: 'Grand Total', rows: true, columns: true },\n };\n\n pivotTable = {\n dataSet: DM.DataSource,\n dataOptions: this.pivotTableDataOptions,\n filters: [filterFactory.members(DM.Commerce.Gender, ['Female', 'Male'])],\n styleOptions: { width: 1400, height: 600, rowsPerPage: 50 },\n };\n\n}\n * ```\n * <img src=\"media://angular-pivot-table-example.png\" width=\"800px\" />\n * @group Data Grids\n * @beta\n */\n@Component({\n selector: 'csdk-pivot-table',\n template,\n styles,\n})\nexport class PivotTableComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: PivotTableProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: PivotTableProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: PivotTableProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: PivotTableProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.styleOptions}\n *\n * @category Representation\n */\n @Input()\n styleOptions: PivotTableProps['styleOptions'];\n\n private componentAdapter: ComponentAdapter<typeof PivotTablePreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(PivotTablePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): PivotTablePropsPreact {\n return {\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type PolarChartProps as PolarChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link PolarChartComponent}.\n */\nexport interface PolarChartProps\n extends WithoutPreactChartEventProps<PolarChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component comparing multiple categories/variables with a spacial perspective in a radial chart.\n *\n * @example\n * ```html\n * <csdk-polar-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-polar-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-polar-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class PolarChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: PolarChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: PolarChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: PolarChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: PolarChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: PolarChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: PolarChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: PolarChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'polar';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ScatterChartProps as ScatterChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n ScatterChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { ScatterDataPointEvent, ScatterDataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link ScatterChartComponent}.\n */\nexport interface ScatterChartProps\n extends WithoutPreactChartEventProps<ScatterChartPropsPreact>,\n ScatterChartEventProps {}\n\n/**\n * A component displaying the distribution of two variables on an X-Axis, Y-Axis,\n * and two additional fields of data that are shown as colored circles scattered across the chart.\n *\n * **Point**: A field that for each of its members a scatter point is drawn. The maximum amount of data points is 500.\n *\n * **Size**: An optional field represented by the size of the circles.\n * If omitted, all scatter points are equal in size. If used, the circle sizes are relative to their values.\n *\n * @example\n * ```html\n * <csdk-scatter-chart\n * [dataSet]=\"scatter.dataSet\"\n * [dataOptions]=\"scatter.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n scatter = {\n dataSet: DM.DataSource,\n dataOptions: {\n x: DM.Admissions.Room_ID,\n y: measureFactory.sum(DM.Admissions.Cost_of_admission),\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-scatter-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-scatter-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class ScatterChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: ScatterChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: ScatterChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ScatterChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ScatterChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: ScatterChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: ScatterChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ScatterChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ScatterDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ScatterDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<ScatterDataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'scatter';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ScattermapChartProps as ScattermapChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n ScattermapChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { ScattermapDataPointEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link ScattermapChartComponent}.\n */\nexport interface ScattermapChartProps\n extends WithoutPreactChartEventProps<ScattermapChartPropsPreact>,\n ScattermapChartEventProps {}\n\n/**\n * An Angular component that allows to visualize geographical data as data points on a map.\n *\n * @example\n * ```html\n * <csdk-scattermap-chart\n * [dataSet]=\"scattermapChart.dataSet\"\n * [dataOptions]=\"scattermapChart.dataOptions\"\n * [styleOptions]=\"scattermapChart.styleOptions\"\n * (dataPointClick)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport type { ScattermapStyleOptions,ScattermapChartDataOptions } from '@sisense/sdk-ui-angular';\nimport * as DM from '../../assets/sample-ecommerce';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n scattermapChart = {\n dataSet: DM.DataSource,\n dataOptions: {\n geo: [DM.Country.Country],\n size: measureFactory.sum(DM.Commerce.Cost, 'Size by Cost'),\n colorBy: {\n column: measureFactory.sum(DM.Commerce.Revenue, 'Color by Revenue'),\n color: 'green',\n },\n details: DM.Category.Category,\n } as ScattermapChartDataOptions,\n styleOptions: {\n markers: {\n fill: 'hollow-bold',\n },\n } as ScattermapStyleOptions,\n };\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-scattermap-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-scattermap-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n />\n `,\n})\nexport class ScattermapChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: ScattermapChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: ScattermapChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ScattermapChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ScattermapChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: ScattermapChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ScattermapChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ScattermapDataPointEvent>();\n\n /** @internal */\n public chartType: ChartType = 'scattermap';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type SunburstChartProps as SunburstChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link SunburstChartComponent}.\n */\nexport interface SunburstChartProps\n extends WithoutPreactChartEventProps<SunburstChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component displaying hierarchical data in the form of nested slices.\n * This type of chart can be used instead of a pie chart for comparing a large number of categories and sub-categories.\n *\n * @example\n * ```html\n * <csdk-sunburst-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-sunburst-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-sunburst-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class SunburstChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: SunburstChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: SunburstChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: SunburstChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: SunburstChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: SunburstChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: SunburstChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: SunburstChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'sunburst';\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n Table as TablePreact,\n type TableProps as TablePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { BaseChartEventProps, WithoutPreactChartEventProps } from '../../types';\n\n/**\n * Props of the {@link TableComponent}.\n */\nexport interface TableProps\n extends WithoutPreactChartEventProps<TablePropsPreact>,\n BaseChartEventProps {}\n/**\n * Table with aggregation and pagination.\n *\n * @example\n * ```html\n * <csdk-table [dataSet]=\"table.dataSet\" [dataOptions]=\"table.dataOptions\" [filters]=\"filters\" />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n table = {\n dataSet: DM.DataSource,\n dataOptions: {\n columns: [DM.Admissions.Patient_ID, measureFactory.sum(DM.Admissions.Cost_of_admission)],\n },\n };\n\n}\n * ```\n * <img src=\"media://angular-table-chart-example.png\" width=\"800px\" />\n * @group Data Grids\n */\n@Component({\n selector: 'csdk-table',\n template,\n styles,\n})\nexport class TableComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: TableProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: TableProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: TableProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.styleOptions}\n *\n * @category Representation\n */\n @Input()\n styleOptions: TableProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: TableProps['dataReady'];\n\n private componentAdapter: ComponentAdapter<typeof TablePreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(TablePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): TablePropsPreact {\n return {\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n styleOptions: this.styleOptions,\n onDataReady: this.dataReady,\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type TreemapChartProps as TreemapChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link TreemapChartComponent}.\n */\nexport interface TreemapChartProps\n extends WithoutPreactChartEventProps<TreemapChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component displaying hierarchical data in the form of nested rectangles.\n * This type of chart can be used instead of a column chart for comparing a large number of categories and sub-categories.\n *\n * @example\n * ```html\n * <csdk-treemap-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-treemap-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-treemap-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class TreemapChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: TreemapChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: TreemapChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: TreemapChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: TreemapChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: TreemapChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: TreemapChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: TreemapChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'treemap';\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n ContextMenu as ContextMenuPreact,\n type ContextMenuProps,\n createWrapperElement,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootContentId,\n rootId,\n styles,\n templateWithContent,\n} from '../component-wrapper-helpers';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport type { ArgumentsAsObject } from '../types/utility-types';\n\n/**\n * Context Menu Component\n *\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-context-menu',\n template: templateWithContent,\n styles,\n})\nexport class ContextMenuComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * @internal\n */\n @ViewChild(rootContentId)\n preactContentRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ContextMenuProps.position}\n */\n @Input()\n position: ContextMenuProps['position'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ContextMenuProps.itemSections}\n */\n @Input()\n itemSections: ContextMenuProps['itemSections'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ContextMenuProps.closeContextMenu}\n */\n @Output()\n contextMenuClose = new EventEmitter<\n ArgumentsAsObject<ContextMenuProps['closeContextMenu'], []>\n >();\n\n private componentAdapter: ComponentAdapter<typeof ContextMenuPreact>;\n\n /**\n * Constructor for the `ContextMenuComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(ContextMenuPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): ContextMenuProps {\n return {\n position: this.position,\n itemSections: this.itemSections,\n closeContextMenu: () => this.contextMenuClose.emit(),\n children: createWrapperElement(this.preactContentRef.nativeElement),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n Dashboard as DashboardPreact,\n type DashboardConfig,\n type DashboardFiltersPanelConfig,\n type DashboardProps as DashboardPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createCustomWidgetsContextConnector,\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { translateToPreactDashboardProps } from '../../helpers/dashboard-props-preact-translator';\nimport { CustomWidgetsService } from '../../services/custom-widgets.service';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { WidgetProps } from '../widgets/widget.component';\n\n// Re-exports related types\nexport { DashboardConfig, DashboardFiltersPanelConfig };\n\n/**\n * Props of the {@link DashboardComponent}.\n */\nexport interface DashboardProps extends Omit<DashboardPropsPreact, 'widgets'> {\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.widgets}\n */\n widgets: WidgetProps[];\n}\n\n/**\n * An Angular component used for easily rendering a dashboard created in Sisense Fusion.\n *\n * **Note:** Dashboard and Widget extensions based on JS scripts and add-ons in Fusion – for example, Blox and Jump To Dashboard – are not supported.\n *\n * @example\n * ```html\n * <csdk-dashboard\n * *ngIf=\"dashboard\"\n * [title]=\"dashboard.title\"\n * [layoutOptions]=\"dashboard.layoutOptions\"\n * [widgets]=\"dashboard.widgets\"\n * [filters]=\"dashboard.filters\"\n * [defaultDataSource]=\"dashboard.defaultDataSource\"\n * [widgetsOptions]=\"dashboard.widgetsOptions\"\n * />\n * ```\n *\n * ```ts\n * import { Component } from '@angular/core';\n * import {\n * type DashboardProps,\n * DashboardService,\n * dashboardModelTranslator,\n * } from '@sisense/sdk-ui-angular';\n *\n * @Component({\n * selector: 'app-dashboard',\n * templateUrl: './dashboard.component.html',\n * styleUrls: ['./dashboard.component.scss'],\n * })\n * export class DashboardComponent {\n *\n * dashboard: DashboardProps | null = null;\n *\n * constructor(private dashboardService: DashboardService) {}\n *\n * async ngOnInit(): Promise<void> {\n * const dashboardModel = await this.dashboardService.getDashboardModel('your-dashboard-oid', { includeWidgets: true, includeFilters: true });\n * this.dashboard = dashboardModelTranslator.toDashboardProps(dashboardModel);\n * }\n * ```\n *\n * To learn more about this and related dashboard components,\n * see [Embedded Dashboards](/guides/sdk/guides/dashboards/index.html).\n * @group Dashboards\n */\n@Component({\n selector: 'csdk-dashboard',\n template,\n styles,\n})\nexport class DashboardComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.title}\n */\n @Input()\n title: DashboardProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.layoutOptions}\n */\n @Input()\n layoutOptions: DashboardProps['layoutOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.config}\n */\n @Input()\n config: DashboardProps['config'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.widgets}\n */\n @Input()\n widgets!: DashboardProps['widgets'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.filters}\n */\n @Input()\n filters: DashboardProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.defaultDataSource}\n */\n @Input()\n defaultDataSource: DashboardProps['defaultDataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.widgetsOptions}\n */\n @Input()\n widgetsOptions: DashboardProps['widgetsOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.styleOptions}\n */\n @Input()\n styleOptions: DashboardProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.tabbersOptions}\n *\n * @internal\n */\n @Input()\n tabbersOptions: DashboardProps['tabbersOptions'];\n\n private componentAdapter: ComponentAdapter<typeof DashboardPreact>;\n\n /**\n * Constructor for the `Dashboard` component.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n /**\n * Custom widgets service\n *\n * @internal\n * @category Constructor\n */\n public customWidgetsService: CustomWidgetsService,\n ) {\n this.componentAdapter = new ComponentAdapter(DashboardPreact, [\n createCustomWidgetsContextConnector(this.customWidgetsService),\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DashboardPropsPreact {\n return translateToPreactDashboardProps({\n title: this.title,\n layoutOptions: this.layoutOptions,\n config: this.config,\n widgets: this.widgets,\n filters: this.filters,\n defaultDataSource: this.defaultDataSource,\n widgetsOptions: this.widgetsOptions,\n styleOptions: this.styleOptions,\n tabbersOptions: this.tabbersOptions,\n });\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n DashboardById as DashboardByIdPreact,\n type DashboardByIdConfig,\n type DashboardByIdProps as DashboardByIdPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createCustomWidgetsContextConnector,\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { CustomWidgetsService } from '../../services/custom-widgets.service';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\n\n// Re-exports related types\nexport { DashboardByIdConfig };\n\n/**\n * Props of the {@link DashboardByIdComponent}.\n */\nexport interface DashboardByIdProps extends DashboardByIdPropsPreact {}\n\n/**\n * An Angular component used for easily rendering a dashboard by its ID created in a Sisense Fusion instance.\n *\n * **Note:** Dashboard and Widget extensions based on JS scripts and add-ons in Fusion – for example, Blox and Jump To Dashboard – are not supported.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n * @Component({\n * selector: 'code-example',\n * template: `\n * <div style=\"width: 100vw;\">\n * <csdk-dashboard-by-id *ngIf=\"dashboardOid\" [dashboardOid]=\"dashboardOid\" />\n * </div>\n * `,\n * })\n * export class CodeExampleComponent {\n * dashboardOid = 'your-dashboard-oid';\n * }\n * ```\n *\n * To learn more about this and related dashboard components,\n * see [Embedded Dashboards](/guides/sdk/guides/dashboards/index.html).\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Component({\n selector: 'csdk-dashboard-by-id',\n template,\n styles,\n})\nexport class DashboardByIdComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardByIdProps.dashboardOid}\n */\n @Input()\n dashboardOid!: DashboardByIdProps['dashboardOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardByIdProps.config}\n */\n @Input()\n config: DashboardByIdProps['config'];\n\n private componentAdapter: ComponentAdapter<typeof DashboardByIdPreact>;\n\n /**\n * Constructor for the `DashboardById` component.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n /**\n * Custom widgets service\n *\n * @internal\n * @category Constructor\n */\n public customWidgetsService: CustomWidgetsService,\n ) {\n this.componentAdapter = new ComponentAdapter(DashboardByIdPreact, [\n createCustomWidgetsContextConnector(this.customWidgetsService),\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DashboardByIdPropsPreact {\n return {\n dashboardOid: this.dashboardOid,\n config: this.config,\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n DrilldownBreadcrumbs as DrilldownBreadcrumbsPreact,\n type DrilldownBreadcrumbsProps as DrilldownBreadcrumbsPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../component-wrapper-helpers';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../types/utility-types';\n\n/**\n * Props of the {@link DrilldownBreadcrumbsComponent}.\n */\nexport interface DrilldownBreadcrumbsProps\n extends Omit<DrilldownBreadcrumbsPropsPreact, 'clearDrilldownSelections'> {\n drilldownSelectionsClear?: () => void;\n drilldownSelectionsSlice?: (event: {\n i: Arguments<DrilldownBreadcrumbsPropsPreact['sliceDrilldownSelections']>[0];\n }) => void;\n}\n\n/**\n * Drilldown Breadcrumbs Component\n *\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-drilldown-breadcrumbs',\n template,\n styles,\n})\nexport class DrilldownBreadcrumbsComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.filtersDisplayValues}\n *\n * @category Widget\n */\n @Input()\n filtersDisplayValues!: DrilldownBreadcrumbsProps['filtersDisplayValues'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.currentDimension}\n *\n * @category Widget\n */\n @Input()\n currentDimension!: DrilldownBreadcrumbsProps['currentDimension'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.clearDrilldownSelections}\n *\n * @category Widget\n */\n @Output()\n drilldownSelectionsClear = new EventEmitter<\n ArgumentsAsObject<DrilldownBreadcrumbsPropsPreact['clearDrilldownSelections'], []>\n >();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.sliceDrilldownSelections}\n *\n * @category Widget\n */\n @Output()\n drilldownSelectionsSlice = new EventEmitter<\n Arguments<DrilldownBreadcrumbsPropsPreact['sliceDrilldownSelections']>[0]\n >();\n\n private componentAdapter: ComponentAdapter<typeof DrilldownBreadcrumbsPreact>;\n\n /**\n * Constructor for the `DrilldownBreadcrumbsComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(DrilldownBreadcrumbsPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DrilldownBreadcrumbsPropsPreact {\n return {\n filtersDisplayValues: this.filtersDisplayValues,\n currentDimension: this.currentDimension,\n clearDrilldownSelections: () => this.drilldownSelectionsClear.emit(),\n sliceDrilldownSelections: (\n i: Arguments<DrilldownBreadcrumbsProps['sliceDrilldownSelections']>[0],\n ) => this.drilldownSelectionsSlice.emit(i),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n CriteriaFilterTile as CriteriaFilterTilePreact,\n type CriteriaFilterTileProps as CriteriaFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\n\n/**\n * Props of the {@link CriteriaFilterTileComponent}.\n */\nexport interface CriteriaFilterTileProps extends Omit<CriteriaFilterTilePropsPreact, 'onUpdate'> {\n filterChange?: (filter: Arguments<CriteriaFilterTilePropsPreact['onUpdate']>[0]) => void;\n}\n\n/**\n * Criteria Filter Tile Component\n *\n * @example\n * ```html\n * <csdk-criteria-filter-tile\n * [title]=\"criteriaFilterTileProps.title\"\n * [filter]=\"criteriaFilterTileProps.filter\"\n * (filterChange)=\"criteriaFilterTileProps.setFilter($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { Filter, filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-filters',\n * templateUrl: './filters.component.html',\n * styleUrls: ['./filters.component.scss'],\n * })\n * export class FiltersComponent {\n * DM = DM;\n * title: 'Room Number',\n * filter: filterFactory.lessThan(DM.Rooms.Room_number, 200) ,\n * setFilter({ filter }: { filter: Filter | null }) {\n * console.log(filter);\n * if (filter) {\n * this.filter = filter ;\n * }\n * },\n * }\n * ```\n * <img src=\"media://angular-criteria-filter-tile-example.png\" width=\"400px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-criteria-filter-tile',\n template,\n styles,\n})\nexport class CriteriaFilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.title}\n */\n @Input()\n title!: CriteriaFilterTileProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.filter}\n */\n @Input()\n filter!: CriteriaFilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.arrangement}\n */\n @Input()\n arrangement: CriteriaFilterTileProps['arrangement'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.measures}\n */\n @Input()\n measures: CriteriaFilterTileProps['measures'];\n\n /** @internal */\n @Input()\n tileDesignOptions: CriteriaFilterTileProps['tileDesignOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.onUpdate}\n */\n @Output()\n filterChange = new EventEmitter<\n ArgumentsAsObject<CriteriaFilterTilePropsPreact['onUpdate'], ['filter']>\n >();\n\n private componentAdapter: ComponentAdapter<typeof CriteriaFilterTilePreact>;\n\n /**\n * Constructor for the `CriteriaFilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(CriteriaFilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): CriteriaFilterTilePropsPreact {\n return {\n title: this.title,\n filter: this.filter,\n arrangement: this.arrangement,\n measures: this.measures,\n tileDesignOptions: this.tileDesignOptions,\n onUpdate: (...[filter]: Arguments<CriteriaFilterTilePropsPreact['onUpdate']>) =>\n this.filterChange.emit({ filter }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n DateRangeFilterTile as DateRangeFilterTilePreact,\n type DateRangeFilterTileProps as DateRangeFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\n\n/**\n * Props of the {@link DateRangeFilterTileComponent}.\n */\nexport interface DateRangeFilterTileProps extends Omit<DateRangeFilterTilePropsPreact, 'onChange'> {\n filterChange?: (filter: Arguments<DateRangeFilterTilePropsPreact['onChange']>[0]) => void;\n}\n\n/**\n * Date Range Filter Tile Component\n *\n * @example\n * ```html\n * <csdk-date-range-filter-tile\n * [title]=\"dateRangeFilterTileProps.title\"\n * [attribute]=\"dateRangeFilterTileProps.attribute\"\n * [filter]=\"dateRangeFilterTileProps.filter\"\n * (filterChange)=\"dateRangeFilterTileProps.setFilter($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { Filter, filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-filters',\n * templateUrl: './filters.component.html',\n * styleUrls: ['./filters.component.scss'],\n * })\n * export class FiltersComponent {\n * DM = DM;\n\n * dateRangeFilterTileProps = {\n * title: 'Range Filter',\n * attribute: DM.ER.Date.Years,\n * filter: filterFactory.dateRange(DM.ER.Date.Years),\n * setFilter({ filter }: { filter: Filter | null }) {\n * console.log(filter);\n * if (filter) {\n * this.filter = filter;\n * }\n * },\n * };\n * }\n * ```\n * <img src=\"media://angular-date-range-filter-tile-example.png\" width=\"600px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-date-range-filter-tile',\n template,\n styles,\n})\nexport class DateRangeFilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.title}\n */\n @Input()\n title!: DateRangeFilterTileProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.attribute}\n */\n @Input()\n attribute!: DateRangeFilterTileProps['attribute'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.dataSource}\n */\n @Input()\n dataSource: DateRangeFilterTileProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.filter}\n */\n @Input()\n filter!: DateRangeFilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.earliestDate}\n */\n @Input()\n earliestDate: DateRangeFilterTileProps['earliestDate'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.lastDate}\n */\n @Input()\n lastDate: DateRangeFilterTileProps['lastDate'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.onChange}\n */\n @Output()\n filterChange = new EventEmitter<\n ArgumentsAsObject<DateRangeFilterTilePropsPreact['onChange'], ['filter']>\n >();\n\n private componentAdapter: ComponentAdapter<typeof DateRangeFilterTilePreact>;\n\n /**\n * Constructor for the `DateRangeFilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(DateRangeFilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DateRangeFilterTilePropsPreact {\n return {\n title: this.title,\n attribute: this.attribute,\n dataSource: this.dataSource,\n filter: this.filter,\n earliestDate: this.earliestDate,\n lastDate: this.lastDate,\n onChange: (...[filter]: Arguments<DateRangeFilterTilePropsPreact['onChange']>) =>\n this.filterChange.emit({ filter }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { EventEmitter } from '@angular/core';\n\n/**\n * An extended version of Angular's `EventEmitter` that tracks\n * whether any listeners (subscribers) are attached.\n *\n * Useful when you need to know if an `@Output()` is being observed\n * in the template (i.e., bound with `(event)=\"...\"`).\n *\n * @template T - The type of values emitted by the EventEmitter.\n */\nexport class EventEmitterWithHasListeners<T> extends EventEmitter<T> {\n /**\n * Indicates whether the EventEmitter has at least one active subscriber.\n */\n hasListeners = false;\n\n /**\n * Overrides the default `subscribe()` method to set `hasListeners` to true\n * when a new subscriber is added.\n *\n * @param args - The arguments passed to the `subscribe()` method.\n * @returns A subscription object used to unsubscribe from the event.\n */\n override subscribe(\n ...args: Parameters<EventEmitter<T>['subscribe']>\n ): ReturnType<EventEmitter<T>['subscribe']> {\n this.hasListeners = true;\n return super.subscribe(...args);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n FilterTile as FilterTilePreact,\n type FilterTileProps as FilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { EventEmitterWithHasListeners } from '../../helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type {\n Arguments,\n BaseFilterTileEventProps,\n FilterChangeEvent,\n FilterEditEvent,\n} from '../../types';\n\n/**\n * Props of the {@link FilterTileComponent}.\n */\nexport interface FilterTileProps\n extends Omit<FilterTilePropsPreact, 'onChange' | 'onEdit' | 'onDelete'>,\n BaseFilterTileEventProps {}\n\n/**\n * UI component that renders a filter tile based on filter type\n *\n * @example\n * Here’s how to render a filter model as a filter tile.\n *\n * ```html\n<!--Component HTML template in example.component.html-->\n<csdk-filter-tile\n [filter]=\"filterTileProps.filter\"\n (filterChange)=\"filterTileProps.filterChange($event)\"\n/>\n * ```\n *\n * ```ts\n// Component behavior in example.component.ts\nimport { Component } from '@angular/core';\nimport { type FilterTileProps } from '@sisense/sdk-ui-angular';\nimport { filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n filterTileProps: FilterTileProps = {\n filter: filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),\n filterChange({ filter }) {\n if (filter) {\n this.filter = filter;\n }\n },\n };\n}\n * ```\n * <img src=\"media://angular-member-filter-tile-example.png\" width=\"225px\" />\n * @group Filter Tiles\n * @shortDescription Facade component rendering a filter tile based on filter type\n */\n@Component({\n selector: 'csdk-filter-tile',\n template,\n styles,\n})\nexport class FilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FilterTileProps.filter}\n */\n @Input()\n filter!: FilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FilterTileProps.defaultDataSource}\n */\n @Input()\n defaultDataSource: FilterTileProps['defaultDataSource'];\n\n /**\n * {@inheritDoc FilterTileProps.filterChange}\n */\n @Output()\n filterChange = new EventEmitter<FilterChangeEvent>();\n\n /**\n * {@inheritDoc FilterTileProps.filterEdit}\n */\n @Output()\n filterEdit: EventEmitter<FilterEditEvent> = new EventEmitterWithHasListeners<FilterEditEvent>();\n\n /**\n * {@inheritDoc FilterTileProps.filterDelete}\n */\n @Output()\n filterDelete: EventEmitter<void> = new EventEmitterWithHasListeners();\n\n private componentAdapter: ComponentAdapter<typeof FilterTilePreact>;\n\n /**\n * Constructor for the `FilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(FilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): FilterTilePropsPreact {\n const hasFilterEditListeners = (this.filterEdit as EventEmitterWithHasListeners<unknown>)\n .hasListeners;\n const hasFilterDeleteListeners = (this.filterDelete as EventEmitterWithHasListeners<unknown>)\n .hasListeners;\n\n return {\n filter: this.filter,\n defaultDataSource: this.defaultDataSource,\n onChange: (...[filter]: Arguments<FilterTilePropsPreact['onChange']>) =>\n this.filterChange.emit({ filter }),\n ...(hasFilterEditListeners && {\n onEdit: (...[levelIndex]: Arguments<FilterTilePropsPreact['onEdit']>) =>\n this.filterEdit.emit({ levelIndex }),\n }),\n ...(hasFilterDeleteListeners && { onDelete: () => this.filterDelete.emit() }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n FiltersPanel as FiltersPanelPreact,\n type FiltersPanelConfig,\n type FiltersPanelProps as FiltersPanelPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, FiltersPanelChangeEvent } from '../../types';\n\n/** Reexport related types */\nexport type { FiltersPanelConfig };\n\n/**\n * Props of the {@link FiltersPanelComponent}.\n */\nexport interface FiltersPanelProps extends Omit<FiltersPanelPropsPreact, 'onFiltersChange'> {\n /**\n * Callback to handle changes in filters\n */\n filtersChange?: (event: FiltersPanelChangeEvent) => void;\n}\n\n/**\n * Filters panel component that renders a list of filter tiles\n *\n * @example\n * Here's how to render a filters panel with a set of filters.\n *\n * ```html\n<!--Component HTML template in example.component.html-->\n<csdk-filters-panel\n [filters]=\"filtersPanelProps.filters\"\n [defaultDataSource]=\"filtersPanelProps.defaultDataSource\"\n (filtersChange)=\"filtersPanelProps.filtersChange($event)\"\n/>\n * ```\n *\n * ```ts\n// Component behavior in example.component.ts\nimport { Component } from '@angular/core';\nimport { type FiltersPanelProps } from '@sisense/sdk-ui-angular';\nimport { filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n filtersPanelProps: FiltersPanelProps = {\n filters: [\n filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),\n filterFactory.members(DM.ER.Departments.Department, ['Cardiology']),\n ],\n defaultDataSource: DM.DataSource,\n filtersChange({ filters }) {\n this.filtersPanelProps.filters = filters;\n },\n };\n}\n * ```\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-filters-panel',\n template,\n styles,\n})\nexport class FiltersPanelComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FiltersPanelProps.filters}\n */\n @Input()\n filters!: FiltersPanelProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FiltersPanelProps.defaultDataSource}\n */\n @Input()\n defaultDataSource: FiltersPanelProps['defaultDataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FiltersPanelProps.dataSources}\n *\n * @internal\n */\n @Input()\n dataSources: FiltersPanelProps['dataSources'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FiltersPanelProps.config}\n */\n @Input()\n config: FiltersPanelProps['config'];\n\n /**\n * {@inheritDoc FiltersPanelProps.filtersChange}\n */\n @Output()\n filtersChange = new EventEmitter<FiltersPanelChangeEvent>();\n\n private componentAdapter: ComponentAdapter<typeof FiltersPanelPreact>;\n\n /**\n * Constructor for the `FiltersPanelComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(FiltersPanelPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): FiltersPanelPropsPreact {\n return {\n filters: this.filters,\n defaultDataSource: this.defaultDataSource,\n dataSources: this.dataSources,\n config: this.config,\n onFiltersChange: (...[filters]: Arguments<FiltersPanelPropsPreact['onFiltersChange']>) =>\n this.filtersChange.emit({ filters }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n MemberFilterTile as MemberFilterTilePreact,\n type MemberFilterTileProps as MemberFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\n\n/**\n * Props of the {@link MemberFilterTileComponent}.\n */\nexport interface MemberFilterTileProps extends Omit<MemberFilterTilePropsPreact, 'onChange'> {\n filterChange?: (filter: Arguments<MemberFilterTilePropsPreact['onChange']>[0]) => void;\n}\n\n/**\n * Member Filter Tile Component\n *\n * @example\n * ```html\n * <csdk-member-filter-tile\n * title=\"Years Filter\"\n * [attribute]=\"DM.ER.Date.Years\"\n * [filter]=\"memberFilterTileProps.yearFilter\"\n * (filterChange)=\"memberFilterTileProps.setYearFilter($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { Filter, filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-filters',\n * templateUrl: './filters.component.html',\n * styleUrls: ['./filters.component.scss'],\n * })\n * export class FiltersComponent {\n * DM = DM;\n * memberFilterTileProps = {\n * yearFilter: filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),\n * setYearFilter({ filter }: { filter: Filter | null }) {\n * if (filter) {\n * this.yearFilter = filter;\n * }\n * },\n * };\n * }\n * ```\n * <img src=\"media://angular-member-filter-tile-example.png\" width=\"225px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-member-filter-tile',\n template,\n styles,\n})\nexport class MemberFilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.title}\n */\n @Input()\n title!: MemberFilterTileProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.dataSource}\n */\n @Input()\n dataSource: MemberFilterTileProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.attribute}\n */\n @Input()\n attribute!: MemberFilterTileProps['attribute'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.filter}\n */\n @Input()\n filter!: MemberFilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.onChange}\n */\n @Output()\n filterChange = new EventEmitter<\n ArgumentsAsObject<MemberFilterTilePropsPreact['onChange'], ['filter']>\n >();\n\n private componentAdapter: ComponentAdapter<typeof MemberFilterTilePreact>;\n\n /**\n * Constructor for the `MemberFilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(MemberFilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): MemberFilterTilePropsPreact {\n return {\n title: this.title,\n dataSource: this.dataSource,\n attribute: this.attribute,\n filter: this.filter,\n onChange: (...[filter]: Arguments<MemberFilterTilePropsPreact['onChange']>) =>\n this.filterChange.emit({ filter }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n RelativeDateFilterTile as RelativeDateFilterTilePreact,\n type RelativeDateFilterTileProps as RelativeDateFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\n\n/**\n * Props of the {@link RelativeDateFilterTileComponent}.\n */\nexport interface RelativeDateFilterTileProps\n extends Omit<RelativeDateFilterTilePropsPreact, 'onUpdate'> {\n filterChange?: (filter: Arguments<RelativeDateFilterTilePropsPreact['onUpdate']>[0]) => void;\n}\n\n/**\n * Relative Date Filter Tile Component\n *\n * @example\n * ```html\n * <csdk-relative-date-filter-tile\n * [title]=\"relativeDateFilterTileProps.title\"\n * [arrangement]=\"relativeDateFilterTileProps.arrangement\"\n * [filter]=\"relativeDateFilterTileProps.filter\"\n * (filterChange)=\"relativeDateFilterTileProps.setFilter($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { Filter, filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-filters',\n * templateUrl: './filters.component.html',\n * styleUrls: ['./filters.component.scss'],\n * })\n * export class FiltersComponent {\n * DM = DM;\n *\n * relativeDateFilterTileProps = {\n * title: 'Relative Date Filter',\n * arrangement: 'vertical',\n * filter: filterFactory.dateRelativeTo(DM.ER.Date.Days, 0, 150),\n * setFilter({ filter }: { filter: Filter | null }) {\n * console.log(filter);\n * if (filter) {\n * this.filter = filter;\n * }\n * },\n * };\n * }\n * ```\n * <img src=\"media://angular-relative-date-filter-tile-example.png\" width=\"600px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-relative-date-filter-tile',\n template,\n styles,\n})\nexport class RelativeDateFilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.title}\n */\n @Input()\n title!: RelativeDateFilterTileProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.filter}\n */\n @Input()\n filter!: RelativeDateFilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.arrangement}\n */\n @Input()\n arrangement: RelativeDateFilterTileProps['arrangement'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.limit}\n */\n @Input()\n limit: RelativeDateFilterTileProps['limit'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.onUpdate}\n */\n @Output()\n filterChange = new EventEmitter<\n ArgumentsAsObject<RelativeDateFilterTilePropsPreact['onUpdate'], ['filter']>\n >();\n\n private componentAdapter: ComponentAdapter<typeof RelativeDateFilterTilePreact>;\n\n /**\n * Constructor for the `RelativeDateFilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(RelativeDateFilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): RelativeDateFilterTilePropsPreact {\n return {\n title: this.title,\n filter: this.filter,\n arrangement: this.arrangement,\n limit: this.limit,\n onUpdate: (...[filter]: Arguments<RelativeDateFilterTilePropsPreact['onUpdate']>) =>\n this.filterChange.emit({ filter }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ChartWidget as ChartWidgetPreact,\n type ChartWidgetProps as ChartWidgetPropsPreact,\n ComponentAdapter,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { ChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport {\n ChartDataPointClickEvent,\n ChartDataPointContextMenuEvent,\n ChartDataPointsEvent,\n} from '../../types/data-point';\nimport type { Arguments } from '../../types/utility-types';\n\n/**\n * Props of the {@link ChartWidgetComponent}.\n */\nexport interface ChartWidgetProps\n extends WithoutPreactChartEventProps<ChartWidgetPropsPreact>,\n ChartEventProps {}\n\n/**\n * The Chart Widget component extending {@link ChartComponent} to support widget style options.\n *\n * @example\n * ```html\n * <csdk-chart-widget\n * [chartType]=\"chartWidget.chartType\"\n * [dataSource]=\"chartWidget.dataSource\"\n * [dataOptions]=\"chartWidget.dataOptions\"\n * [highlights]=\"filters\"\n * [title]=\"chartWidget.title\"\n * [description]=\"chartWidget.description\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { ChartType } from '@sisense/sdk-ui-angular';\n * import { filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-widgets',\n * templateUrl: './widgets.component.html',\n * styleUrls: ['./widgets.component.scss'],\n * })\n * export class WidgetsComponent {\n * filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n * chartWidget = {\n * chartType: 'column' as ChartType,\n * dataSource: DM.DataSource,\n * dataOptions: {\n * category: [DM.Divisions.Divison_name],\n * value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n * breakBy: [],\n * },\n * title: 'Chart Title',\n * description: 'Chart Description',\n * };\n * logArguments(...args: any[]) {\n * console.log(args);\n * }\n *\n * onBeforeRender(options: any) {\n * console.log('beforeRender');\n * console.log(options);\n * return options;\n * }\n *\n * }\n * ```\n * <img src=\"media://angular-chart-widget-example.png\" width=\"500px\" />\n * @group Dashboards\n */\n@Component({\n selector: 'csdk-chart-widget',\n template,\n styles,\n})\nexport class ChartWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.chartType}\n *\n * @category Chart\n */\n @Input()\n chartType!: ChartWidgetProps['chartType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.dataSource}\n *\n * @category Data\n */\n @Input()\n dataSource: ChartWidgetProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: ChartWidgetProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ChartWidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ChartWidgetProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.styleOptions}\n *\n * @category Widget\n */\n @Input()\n styleOptions: ChartWidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.drilldownOptions}\n *\n * @category Widget\n * @internal\n */\n @Input()\n drilldownOptions: ChartWidgetProps['drilldownOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: ChartWidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.description}\n *\n * @category Widget\n */\n @Input()\n description: ChartWidgetProps['description'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.highlightSelectionDisabled}\n *\n * @category Widget\n */\n @Input()\n highlightSelectionDisabled: ChartWidgetProps['highlightSelectionDisabled'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: ChartWidgetProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ChartWidgetProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ChartDataPointClickEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointContextMenuEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<ChartDataPointsEvent>();\n\n private componentAdapter: ComponentAdapter<typeof ChartWidgetPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(ChartWidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): ChartWidgetPropsPreact {\n return {\n chartType: this.chartType,\n dataSource: this.dataSource,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n drilldownOptions: this.drilldownOptions,\n title: this.title,\n description: this.description,\n highlightSelectionDisabled: this.highlightSelectionDisabled,\n onBeforeRender: this.beforeRender?.bind(this),\n onDataReady: this.dataReady?.bind(this),\n onDataPointClick: (\n ...[point, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointClick']>\n ) => this.dataPointClick.emit({ point, nativeEvent } as ChartDataPointClickEvent),\n onDataPointContextMenu: (\n ...[point, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointContextMenu']>\n ) => this.dataPointContextMenu.emit({ point, nativeEvent } as ChartDataPointContextMenuEvent),\n onDataPointsSelected: (\n ...[points, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointsSelected']>\n ) => this.dataPointsSelect.emit({ points, nativeEvent } as ChartDataPointsEvent),\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n type ComponentRenderer,\n type ContextMenuProps,\n createComponentRenderer,\n createWrapperElement,\n createWrapperElementHandler,\n type CustomDrilldownResult as CustomDrilldownResultBase,\n DrilldownBreadcrumbsProps,\n DrilldownWidget as DrilldownWidgetPreact,\n type DrilldownWidgetProps,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootContentId,\n rootId,\n styles,\n templateWithContent,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments } from '../../types/utility-types';\n\nexport type CustomDrilldownResult = CustomDrilldownResultBase & {\n breadcrumbsComponent?: {\n render: ComponentRenderer;\n };\n};\n\n/**\n * An Angular component designed to add drilldown functionality to any type of chart.\n *\n * It acts as a wrapper around a given chart component, enhancing it with drilldown capabilities\n *\n * The widget offers several features including:\n * - A context menu for initiating drilldown actions (can be provided as a custom component)\n * - Breadcrumbs that not only allow for drilldown selection slicing but also\n * provide an option to clear the selection (can be provided as a custom component)\n * - Filters specifically created for drilldown operation\n * - An option to navigate to the next drilldown dimension\n *\n * When an `initialDimension` is specified, the `drilldownDimension` will automatically inherit its value,\n * even before any points on the chart are selected.\n * This allows for complete control over the chart's dimensions to be handed over to the DrilldownWidget\n *\n * @example\n * An example of using the `csdk-drilldown-widget` component to plot a `csdk-column-chart`\n * over the Sample Healthcare data source hosted in a Sisense instance:\n * ```ts\n * // Component behavior in .component.ts\n * chart = {\n * dataOptions: {\n * category: [DM.Divisions.Divison_name],\n * value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n * breakBy: [],\n * },\n * dataPointContextMenu: ({ point, nativeEvent }: { point: any; nativeEvent: MouseEvent }) => {\n * this.drilldownResult?.onDataPointsSelected?.([point], nativeEvent);\n * this.drilldownResult?.onContextMenu({\n * left: nativeEvent.clientX,\n * top: nativeEvent.clientY,\n * });\n * }\n * }\n *\n * drilldownResult?: CustomDrilldownResult;\n *\n * drilldown = {\n * drilldownPaths: [DM.Patients.Gender, DM.Admissions.Surgical_Procedure],\n * initialDimension: DM.Divisions.Divison_name,\n * drilldownChange: (drilldownResult: CustomDrilldownResult) => {\n * this.drilldownResult = drilldownResult;\n * this.chart.dataOptions = {\n * ...this.chart.dataOptions,\n * category: [drilldownResult.drilldownDimension]\n * }\n * }\n * };\n * ```\n * ```html\n * <!--Component HTML template in .component.html-->\n * <csdk-drilldown-widget\n * [drilldownPaths]=\"drilldown.drilldownPaths\"\n * [initialDimension]=\"drilldown.initialDimension\"\n * (drilldownResultChange)=\"drilldown.drilldownChange($event)\"\n * >\n * <csdk-column-chart\n * [dataSet]=\"DM.DataSource\"\n * [dataOptions]=\"chart.dataOptions\"\n * [filters]=\"drilldownResult?.drilldownFilters || []\"\n * (dataPointContextMenu)=\"chart.dataPointContextMenu($event)\"\n * />\n * </csdk-drilldown-widget>\n * ```\n * <img src=\"media://angular-drilldown-widget-example.png\" width=\"800px\" />\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-drilldown-widget',\n template: templateWithContent,\n styles,\n})\nexport class DrilldownWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * @internal\n */\n @ViewChild(rootContentId)\n preactContentRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownWidgetProps.drilldownPaths}\n *\n * @category Widget\n */\n @Input()\n drilldownPaths: DrilldownWidgetProps['drilldownPaths'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownWidgetProps.initialDimension}\n *\n * @category Widget\n */\n @Input()\n initialDimension!: DrilldownWidgetProps['initialDimension'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownWidgetProps.config}\n *\n * @category Widget\n */\n @Input()\n config?: Omit<DrilldownWidgetProps['config'], 'breadcrumbsComponent | contextMenuComponent'> & {\n breadcrumbsComponent?: (drilldownBreadcrumbsProps: DrilldownBreadcrumbsProps) => HTMLDivElement;\n contextMenuComponent?: (contextMenuProps: ContextMenuProps) => HTMLDivElement;\n };\n\n /**\n * Drilldown result change handler callback\n *\n * @category Callbacks\n */\n @Output()\n drilldownResultChange = new EventEmitter<CustomDrilldownResult>();\n\n private componentAdapter: ComponentAdapter<typeof DrilldownWidgetPreact>;\n\n /**\n * Constructor for the `DrilldownWidgetComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(DrilldownWidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DrilldownWidgetProps {\n return {\n drilldownPaths: this.drilldownPaths,\n initialDimension: this.initialDimension,\n config: {\n ...this.config,\n ...(this.config?.breadcrumbsComponent && {\n breadcrumbsComponent: createWrapperElementHandler(this.config.breadcrumbsComponent),\n }),\n ...(this.config?.contextMenuComponent && {\n contextMenuComponent: (contextMenuProps: ContextMenuProps) =>\n createWrapperElement(this.config!.contextMenuComponent!(contextMenuProps)),\n }),\n },\n children: (customDrilldownResult: Arguments<DrilldownWidgetProps['children']>[0]) => {\n const { breadcrumbsComponent } = customDrilldownResult;\n this.drilldownResultChange.emit({\n ...customDrilldownResult,\n ...(breadcrumbsComponent && {\n breadcrumbsComponent: { render: createComponentRenderer(breadcrumbsComponent) },\n }),\n } as CustomDrilldownResult);\n return createWrapperElement(this.preactContentRef.nativeElement);\n },\n } as DrilldownWidgetProps;\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n PivotTableWidget as PivotTableWidgetPreact,\n type PivotTableWidgetProps as PivotTableWidgetPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services';\nimport { ThemeService } from '../../services';\n\n/**\n * Props of the {@link PivotTableWidgetComponent}.\n */\nexport interface PivotTableWidgetProps\n extends Omit<PivotTableWidgetPropsPreact, 'onDataPointClick' | 'onDataPointContextMenu'> {}\n\n/**\n * The Pivot Table Widget component extends the {@link PivotTableComponent} component to support widget features,\n * including a header, widget style options, and more.\n *\n * @example\n * ```html\n<csdk-pivot-table-widget\n [dataSource]=\"pivotProps.dataSource\"\n [dataOptions]=\"pivotProps.dataOptions\"\n [filters]=\"pivotProps.filters\"\n [styleOptions]=\"pivotProps.styleOptions\"\n [title]=\"pivotProps.title\"\n [description]=\"pivotProps.description\"\n/>\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { type PivotTableWidgetProps } from '@sisense/sdk-ui-angular';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-ecommerce';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n\n pivotProps: PivotTableWidgetProps = {\n dataSource: DM.DataSource,\n dataOptions: {\n rows: [\n { column: DM.Category.Category, includeSubTotals: true },\n { column: DM.Commerce.AgeRange, includeSubTotals: true },\n DM.Commerce.Condition,\n ],\n columns: [{ column: DM.Commerce.Gender, includeSubTotals: true }],\n values: [\n measureFactory.sum(DM.Commerce.Cost, 'Total Cost'),\n {\n column: measureFactory.sum(DM.Commerce.Revenue, 'Total Revenue'),\n totalsCalculation: 'sum',\n dataBars: true,\n },\n ],\n grandTotals: { title: 'Grand Total', rows: true, columns: true },\n },\n filters: [filterFactory.members(DM.Commerce.Gender, ['Female', 'Male'])],\n styleOptions: { width: 1400, height: 600, rowsPerPage: 25 },\n title: 'Pivot Table Widget',\n description: 'Pivot Table Widget Description',\n };\n}\n * ```\n * <img src=\"media://angular-pivot-table-widget-example.png\" width=\"800px\" />\n * @group Dashboards\n * @beta\n */\n@Component({\n selector: 'csdk-pivot-table-widget',\n template,\n styles,\n})\nexport class PivotTableWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.dataSource}\n *\n * @category Data\n */\n @Input()\n dataSource: PivotTableWidgetProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: PivotTableWidgetProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: PivotTableWidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: PivotTableWidgetProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.styleOptions}\n *\n * @category Representation\n */\n @Input()\n styleOptions: PivotTableWidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: PivotTableWidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n description: PivotTableWidgetProps['description'];\n\n private componentAdapter: ComponentAdapter<typeof PivotTableWidgetPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(PivotTableWidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): PivotTableWidgetPropsPreact {\n return {\n dataSource: this.dataSource,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n title: this.title,\n description: this.description,\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n TableWidget as TableWidgetPreact,\n type TableWidgetProps as TableWidgetPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\n\n/**\n * Props of the {@link TableWidgetComponent}.\n *\n * @internal\n */\nexport interface TableWidgetProps extends TableWidgetPropsPreact {}\n\n/**\n * The Table Widget component extending {@link TableComponent} component to support widget style options.\n *\n * @example\n * ```html\n * <csdk-table-widget\n * [dataSource]=\"table.dataSet\"\n * [dataOptions]=\"table.dataOptions\"\n * [filters]=\"filters\"\n * [title]=\"table.title\"\n * [description]=\"table.description\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { ChartType } from '@sisense/sdk-ui-angular';\n * import { filterFactory, measureFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-widgets',\n * templateUrl: './widgets.component.html',\n * styleUrls: ['./widgets.component.scss'],\n * })\n * export class WidgetsComponent {\n * filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n *\n * table = {\n * dataSet: DM.DataSource,\n * dataOptions: {\n * columns: [DM.Admissions.Patient_ID, measureFactory.sum(DM.Admissions.Cost_of_admission)],\n * }\n * title: 'Widget Title',\n * description: 'Widget Description',\n * };\n * }\n * ```\n * <img src=\"media://angular-table-widget-example.png\" width=\"800px\" />\n * @internal\n */\n@Component({\n selector: 'csdk-table-widget',\n template,\n styles,\n})\nexport class TableWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.dataSource}\n *\n * @category Data\n */\n @Input()\n dataSource: TableWidgetProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: TableWidgetProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: TableWidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.styleOptions}\n *\n * @category Representation\n */\n @Input()\n styleOptions: TableWidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: TableWidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.description}\n *\n * @category Widget\n */\n @Input()\n description: TableWidgetProps['description'];\n\n private componentAdapter: ComponentAdapter<typeof TableWidgetPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(TableWidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps() {\n return {\n dataSource: this.dataSource,\n dataOptions: this.dataOptions,\n filters: this.filters,\n styleOptions: this.styleOptions,\n title: this.title,\n description: this.description,\n };\n }\n\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n type BeforeMenuOpenHandler,\n ComponentAdapter,\n CustomWidgetProps,\n type SoftUnion,\n TextWidgetProps as TextWidgetPropsPreact,\n Widget as WidgetPreact,\n type WidgetProps as WidgetPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { translateToPreactWidgetProps } from '../../helpers/widget-props-preact-translator';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { TextWidgetEventProps, WithoutPreactChartEventProps } from '../../types';\nimport {\n ChartDataPointClickEvent,\n ChartDataPointContextMenuEvent,\n ChartDataPointsEvent,\n} from '../../types/data-point';\nimport { ChartWidgetProps } from './chart-widget.component';\nimport { PivotTableWidgetProps } from './pivot-table-widget.component';\n\n/**\n * Props for the text widget.\n */\nexport interface TextWidgetProps\n extends WithoutPreactChartEventProps<TextWidgetPropsPreact>,\n TextWidgetEventProps {}\n\n/**\n * {@inheritDoc @sisense/sdk-ui!WithCommonWidgetProps}\n */\nexport type WithCommonWidgetProps<BaseWidget, Type> = BaseWidget & {\n /**\n * Unique identifier of the widget within the container component (dashboard)\n *\n */\n readonly id: string;\n /**\n * Widget type\n */\n widgetType: Type;\n /**\n * Optional handler function to process menu options before opening the context menu.\n *\n * @internal\n */\n beforeMenuOpen?: BeforeMenuOpenHandler;\n};\n\n/**\n * Props of the {@link WidgetComponent}.\n */\nexport type WidgetProps = SoftUnion<\n | WithCommonWidgetProps<ChartWidgetProps, 'chart'>\n | WithCommonWidgetProps<PivotTableWidgetProps, 'pivot'>\n | WithCommonWidgetProps<TextWidgetProps, 'text'>\n | WithCommonWidgetProps<CustomWidgetProps, 'custom'>\n>;\n\n/**\n * Facade component that renders a widget within a dashboard based on the widget type.\n *\n * @example\n * ```html\n<!--Component HTML template in example.component.html-->\n<csdk-widget\n [id]=\"widgetProps.id\"\n [title]=\"widgetProps.title\"\n [widgetType]=\"widgetProps.widgetType\"\n [chartType]=\"widgetProps.chartType\"\n [dataSource]=\"widgetProps.dataSource\"\n [dataOptions]=\"widgetProps.dataOptions\"\n/>\n * ```\n *\n * ```ts\n// Component behavior in example.component.ts\nimport { Component } from '@angular/core';\nimport { type WidgetProps } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n widgetProps: WidgetProps = {\n id: 'widget-id',\n widgetType: 'chart',\n chartType: 'column',\n title: 'Widget Title',\n dataSource: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n}\n * ```\n * <img src=\"media://angular-chart-widget-example.png\" width=\"500px\" />\n * @group Dashboards\n */\n@Component({\n selector: 'csdk-widget',\n template,\n styles,\n})\nexport class WidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * Unique identifier of the widget\n *\n * @category Widget\n */\n @Input()\n id!: WidgetProps['id'];\n\n /**\n * Widget type\n *\n * @category Widget\n */\n @Input()\n widgetType!: WidgetProps['widgetType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.chartType}\n *\n * @category Chart\n */\n @Input()\n chartType: WidgetProps['chartType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CustomWidgetProps.customWidgetType}\n *\n * @category Widget\n */\n @Input()\n customWidgetType: WidgetProps['customWidgetType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.dataSource}\n *\n * @category Data\n */\n @Input()\n dataSource: WidgetProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions: WidgetProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: WidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: WidgetProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.styleOptions}\n *\n * @category Widget\n */\n @Input()\n styleOptions: WidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.drilldownOptions}\n *\n * @category Widget\n */\n @Input()\n drilldownOptions: WidgetProps['drilldownOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: WidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.description}\n *\n * @category Widget\n */\n @Input()\n description: WidgetProps['description'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.highlightSelectionDisabled}\n *\n * @category Widget\n * @internal\n */\n @Input()\n highlightSelectionDisabled: WidgetProps['highlightSelectionDisabled'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: WidgetProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: WidgetProps['dataReady'];\n\n /**\n * Optional handler function to process menu options before opening the context menu.\n *\n * @category Callbacks\n * @internal\n */\n @Input()\n beforeMenuOpen: WidgetProps['beforeMenuOpen'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ChartDataPointClickEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointContextMenuEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<ChartDataPointsEvent>();\n\n private componentAdapter: ComponentAdapter<typeof WidgetPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(WidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): WidgetPropsPreact {\n return translateToPreactWidgetProps({\n id: this.id,\n widgetType: this.widgetType,\n chartType: this.chartType,\n customWidgetType: this.customWidgetType,\n dataSource: this.dataSource,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n drilldownOptions: this.drilldownOptions,\n title: this.title,\n description: this.description,\n highlightSelectionDisabled: this.highlightSelectionDisabled,\n beforeRender: this.beforeRender?.bind(this),\n dataReady: this.dataReady?.bind(this),\n beforeMenuOpen: this.beforeMenuOpen?.bind(this),\n dataPointClick: this.dataPointClick.emit.bind(this.dataPointClick),\n dataPointContextMenu: this.dataPointContextMenu.emit.bind(this.dataPointContextMenu),\n dataPointsSelect: this.dataPointsSelect.emit.bind(this.dataPointsSelect),\n } as WidgetProps);\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n WidgetById as WidgetByIdPreact,\n type WidgetByIdProps as WidgetByIdPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { BaseChartEventProps, WithoutPreactChartEventProps } from '../../types';\n\n/**\n * Props of the {@link WidgetByIdComponent}.\n */\nexport interface WidgetByIdProps\n extends WithoutPreactChartEventProps<WidgetByIdPropsPreact>,\n BaseChartEventProps {}\n\n/**\n * The `WidgetById` component, which is a thin wrapper on {@link ChartWidgetComponent},\n * is used to render a widget created in a Sisense Fusion instance.\n *\n * To learn more about using Sisense Fusion Widgets in Compose SDK, see\n * [Sisense Fusion Widgets](https://developer.sisense.com/guides/sdk/guides/charts/guide-fusion-widgets.html).\n *\n * @example\n * ```html\n * <csdk-widget-by-id\n * [widgetOid]=\"widgetOid\"\n * [dashboardOid]=\"dashboardOid\"\n * [includeDashboardFilters]=\"true\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'app-widgets',\n * templateUrl: './widgets.component.html',\n * styleUrls: ['./widgets.component.scss'],\n * })\n * export class WidgetsComponent {\n * widgetOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';\n * dashboardOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';\n * }\n * ```\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Component({\n selector: 'csdk-widget-by-id',\n template,\n styles,\n})\nexport class WidgetByIdComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.widgetOid}\n *\n * @category Widget\n */\n @Input()\n widgetOid!: WidgetByIdProps['widgetOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.dashboardOid}\n *\n * @category Widget\n */\n @Input()\n dashboardOid!: WidgetByIdProps['dashboardOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: WidgetByIdProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: WidgetByIdProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.filtersMergeStrategy}\n *\n * @category Data\n */\n @Input()\n filtersMergeStrategy: WidgetByIdProps['filtersMergeStrategy'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.includeDashboardFilters}\n *\n * @category Data\n */\n @Input()\n includeDashboardFilters: WidgetByIdProps['includeDashboardFilters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.title}\n *\n * @category Widget\n */\n @Input()\n title: WidgetByIdProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.description}\n *\n * @category Widget\n */\n @Input()\n description: WidgetByIdProps['description'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.styleOptions}\n *\n * @category Widget\n */\n @Input()\n styleOptions: WidgetByIdProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.highlightSelectionDisabled}\n *\n * @category Widget\n */\n @Input()\n highlightSelectionDisabled: WidgetByIdProps['highlightSelectionDisabled'];\n\n /** @internal */\n @Input()\n drilldownOptions: WidgetByIdProps['drilldownOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: WidgetByIdProps['dataReady'];\n\n private componentAdapter: ComponentAdapter<typeof WidgetByIdPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(WidgetByIdPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n /** @internal */\n private getPreactComponentProps(): WidgetByIdPropsPreact {\n return {\n widgetOid: this.widgetOid,\n dashboardOid: this.dashboardOid,\n filters: this.filters,\n highlights: this.highlights,\n filtersMergeStrategy: this.filtersMergeStrategy,\n includeDashboardFilters: this.includeDashboardFilters,\n title: this.title,\n description: this.description,\n styleOptions: this.styleOptions,\n highlightSelectionDisabled: this.highlightSelectionDisabled,\n drilldownOptions: this.drilldownOptions,\n onDataReady: this.dataReady?.bind(this),\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n AreaChartComponent,\n AreamapChartComponent,\n AreaRangeChartComponent,\n BarChartComponent,\n BoxplotChartComponent,\n ChartComponent,\n ChartWidgetComponent,\n ColumnChartComponent,\n ContextMenuComponent,\n CriteriaFilterTileComponent,\n DashboardByIdComponent,\n DashboardComponent,\n DateRangeFilterTileComponent,\n DrilldownBreadcrumbsComponent,\n DrilldownWidgetComponent,\n FiltersPanelComponent,\n FilterTileComponent,\n FunnelChartComponent,\n IndicatorChartComponent,\n LineChartComponent,\n MemberFilterTileComponent,\n PieChartComponent,\n PivotTableComponent,\n PivotTableWidgetComponent,\n PolarChartComponent,\n RelativeDateFilterTileComponent,\n ScatterChartComponent,\n ScattermapChartComponent,\n SunburstChartComponent,\n TableComponent,\n TableWidgetComponent,\n TreemapChartComponent,\n WidgetByIdComponent,\n WidgetComponent,\n} from './components';\nimport { DecoratorsModule } from './decorators/decorators.module';\n\n/**\n * SDK UI Module, which is a container for components.\n *\n * @example\n * Example of importing `SdkUiModule` and injecting {@link SisenseContextConfig} into your application:\n *\n * ```ts\n * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {\n * url: \"<instance url>\", // replace with the URL of your Sisense instance\n * token: \"<api token>\", // replace with the API token of your user account\n * defaultDataSource: DM.DataSource,\n * };\n *\n * @NgModule({\n * imports: [\n * BrowserModule,\n * SdkUiModule,\n * ],\n * declarations: [AppComponent],\n * providers: [\n * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },\n * ],\n * bootstrap: [AppComponent],\n * })\n * ```\n * @group Contexts\n */\n@NgModule({\n declarations: [\n ChartComponent,\n TableComponent,\n ChartWidgetComponent,\n ColumnChartComponent,\n BarChartComponent,\n AreaChartComponent,\n AreaRangeChartComponent,\n LineChartComponent,\n IndicatorChartComponent,\n ScatterChartComponent,\n PieChartComponent,\n FunnelChartComponent,\n PolarChartComponent,\n TreemapChartComponent,\n SunburstChartComponent,\n TableWidgetComponent,\n WidgetByIdComponent,\n MemberFilterTileComponent,\n DrilldownWidgetComponent,\n DateRangeFilterTileComponent,\n RelativeDateFilterTileComponent,\n CriteriaFilterTileComponent,\n DrilldownBreadcrumbsComponent,\n ContextMenuComponent,\n BoxplotChartComponent,\n ScattermapChartComponent,\n AreamapChartComponent,\n PivotTableComponent,\n DashboardByIdComponent,\n DashboardComponent,\n PivotTableWidgetComponent,\n FilterTileComponent,\n FiltersPanelComponent,\n WidgetComponent,\n ],\n imports: [CommonModule, DecoratorsModule],\n exports: [\n ChartComponent,\n TableComponent,\n ChartWidgetComponent,\n ColumnChartComponent,\n BarChartComponent,\n AreaChartComponent,\n AreaRangeChartComponent,\n LineChartComponent,\n IndicatorChartComponent,\n ScatterChartComponent,\n PieChartComponent,\n FunnelChartComponent,\n PolarChartComponent,\n TreemapChartComponent,\n SunburstChartComponent,\n TableWidgetComponent,\n WidgetByIdComponent,\n MemberFilterTileComponent,\n DrilldownWidgetComponent,\n DateRangeFilterTileComponent,\n RelativeDateFilterTileComponent,\n CriteriaFilterTileComponent,\n DrilldownBreadcrumbsComponent,\n ContextMenuComponent,\n BoxplotChartComponent,\n ScattermapChartComponent,\n AreamapChartComponent,\n PivotTableComponent,\n DashboardByIdComponent,\n DashboardComponent,\n PivotTableWidgetComponent,\n FilterTileComponent,\n FiltersPanelComponent,\n WidgetComponent,\n ],\n providers: [],\n})\nexport class SdkUiModule {}\n","// This file re-exports common types/utils from @sisense/sdk-ui-preact\n\n// Re-exports utils from @sisense/sdk-ui-preact\nexport { boxWhiskerProcessResult, extractDimensionsAndMeasures } from '@sisense/sdk-ui-preact';\n\n// Re-exports types from @sisense/sdk-ui-preact\nexport type {\n // General (Others):\n AppConfig,\n AreamapChartDataOptions,\n AreamapChartType,\n AreamapStyleOptions,\n AreaRangeStyleOptions,\n AreaStyleOptions,\n AreaSubtype,\n AxisLabel,\n // Charts related:\n BeforeRenderHandler,\n BoxplotChartCustomDataOptions,\n BoxplotChartDataOptions,\n BoxplotChartType,\n BoxplotDataPoint,\n BoxplotStyleOptions,\n BoxplotSubtype,\n BoxWhiskerType,\n CartesianChartDataOptions,\n CartesianChartType,\n CartesianWidgetType,\n CategoricalChartDataOptions,\n CategoricalChartType,\n CategoricalWidgetType,\n // Data Options:\n ChartDataOptions,\n // Style Options:\n ChartStyleOptions,\n ChartType,\n ChartWidgetStyleOptions,\n Color,\n ColorPaletteTheme,\n // Props:\n CommonWidgetProps,\n ConditionalDataColorOptions,\n Convolution,\n // Dashboard:\n DashboardLayoutOptions,\n DashboardModel,\n DashStyle,\n DataColorCondition,\n DataColorOptions,\n // Style related:\n DataLimits,\n DataPoint,\n DateConfig,\n DateLevel,\n DayOfWeek,\n DecimalScale,\n DrilldownOptions,\n DrilldownSelection,\n EndCapType,\n FilterVariant,\n FunnelStyleOptions,\n GaugeIndicatorStyleOptions,\n GetDashboardModelOptions,\n GetDashboardModelsOptions,\n Hierarchy,\n HierarchyModel,\n HighchartsOptions,\n IndicatorBeforeRenderHandler,\n IndicatorChartDataOptions,\n IndicatorChartType,\n IndicatorComponents,\n IndicatorDataPoint,\n IndicatorRenderOptions,\n IndicatorStyleOptions,\n Labels,\n Legend,\n LineOptions,\n LineStyleOptions,\n LineSubtype,\n LineWidth,\n Markers,\n Member,\n MenuItemSection,\n MenuPosition,\n MonthOfYear,\n MultiColumnValueToColorMap,\n Navigator,\n // Data Options related:\n NumberFormatConfig,\n NumericBarIndicatorStyleOptions,\n NumericSimpleIndicatorStyleOptions,\n PieStyleOptions,\n PieSubtype,\n PivotRowsSort,\n PivotTableDataOptions,\n PivotTableStyleOptions,\n PivotTableWidgetStyleOptions,\n PolarStyleOptions,\n PolarSubtype,\n RangeChartDataOptions,\n RangeChartType,\n RangeDataColorOptions,\n ScatterChartDataOptions,\n ScatterChartType,\n ScatterDataPoint,\n ScattermapChartDataOptions,\n ScattermapChartType,\n ScattermapLocationLevel,\n ScattermapMarkers,\n ScattermapStyleOptions,\n ScatterMarkerSize,\n ScatterStyleOptions,\n SeriesChartType,\n SeriesLabels,\n SortDirection,\n StackableStyleOptions,\n StackableSubtype,\n StyledColumn,\n StyledMeasureColumn,\n SunburstStyleOptions,\n TableDataOptions,\n TableStyleOptions,\n TableType,\n TabularWidgetType,\n ThemeOid,\n ThemeSettings,\n TranslationConfig,\n TreemapStyleOptions,\n UniformDataColorOptions,\n ValueToColorMap,\n WidgetByIdStyleOptions,\n WidgetDataOptions,\n WidgetId,\n // Models:\n WidgetModel,\n WidgetsOptions,\n WidgetsPanelColumnLayout,\n WidgetsPanelLayout,\n WidgetStyleOptions,\n WidgetType,\n X2Title,\n} from '@sisense/sdk-ui-preact';\n","import {\n type DashboardModel,\n dashboardModelTranslator as dashboardModelTranslatorPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport { type DashboardProps } from '../components';\n\n/**\n * Translates {@link DashboardModel} to {@link DashboardProps}.\n *\n * @example\n * ```html\n<csdk-dashboard\n *ngIf=\"dashboard\"\n [title]=\"dashboard.title\"\n [layoutOptions]=\"dashboard.layoutOptions\"\n [widgets]=\"dashboard.widgets\"\n [filters]=\"dashboard.filters\"\n [defaultDataSource]=\"dashboard.defaultDataSource\"\n [widgetsOptions]=\"dashboard.widgetsOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type DashboardProps,\n DashboardService,\n dashboardModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n})\nexport class DashboardComponent {\n dashboard: DashboardProps | null = null;\n\n constructor(private dashboardService: DashboardService) {}\n\n async ngOnInit(): Promise<void> {\n const dashboardModel = await this.dashboardService.getDashboardModel('your-dashboard-oid', {\n includeWidgets: true,\n includeFilters: true,\n });\n this.dashboard = dashboardModelTranslator.toDashboardProps(dashboardModel);\n }\n}\n * ```\n */\nexport function toDashboardProps(dashboardModel: DashboardModel): DashboardProps {\n return dashboardModelTranslatorPreact.toDashboardProps(dashboardModel);\n}\n","import { Filter, FilterRelations } from '@sisense/sdk-data';\nimport {\n dashboardHelpers as dashboardHelpersPreact,\n type DashboardProps as DashboardPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport { DashboardProps } from '../components';\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.replaceFilters}\n *\n * @example\n * Replace all filters on a dashboard with a new set of filters.\n * ```ts\n * const existingDashboard: DashboardProps = {...}\n * const newFilters: Filter[] = [{...}, {...}, ...];\n * const updatedDashboard = dashboardHelpers.replaceFilters(existingDashboard, newFilters);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) whose filters are to be replaced.\n * @param newFilters - An array of new filters or filter relations to set on the dashboard.\n * @returns A new dashboard instance with the updated filters.\n */\nexport const replaceFilters = (\n dashboard: DashboardProps,\n newFilters: Filter[] | FilterRelations,\n): DashboardProps => {\n return dashboardHelpersPreact.replaceFilters(dashboard as DashboardPropsPreact, newFilters);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.addFilter}\n *\n * @example\n * Add a new filter to a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const newFilter: Filter = {...};\n * const updatedDashboard = dashboardHelpers.addFilter(existingDashboard, newFilter);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) to which the filter will be added.\n * @param newFilter - The filter to add to the dashboard.\n * @returns A new dashboard instance with the new filter added.\n */\nexport const addFilter = (dashboard: DashboardProps, newFilter: Filter): DashboardProps => {\n return dashboardHelpersPreact.addFilter(dashboard as DashboardPropsPreact, newFilter);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.addFilters}\n *\n * @example\n * Add multiple new filters to a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const newFilters: Filter[] = [{...}, {...}, ...];\n * const updatedDashboard = dashboardHelpers.addFilters(existingDashboard, newFilters);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) to which the filters will be added.\n * @param newFilters - An array of filters to add to the dashboard.\n * @returns A new dashboard instance with the new filters added.\n */\nexport const addFilters = (dashboard: DashboardProps, newFilters: Filter[]): DashboardProps => {\n return dashboardHelpersPreact.addFilters(dashboard as DashboardPropsPreact, newFilters);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.replaceFilter}\n *\n * @example\n * Replace a filter in a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const filterToReplace: Filter = {...};\n * const newFilter: Filter = {...};\n * const updatedDashboard = dashboardHelpers.replaceFilter(existingDashboard, filterToReplace, newFilter);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) containing the filter to be replaced.\n * @param filterToReplace - The existing filter to be replaced.\n * @param newFilter - The new filter to replace the existing one.\n * @returns A new dashboard instance with the specified filter replaced.\n */\nexport const replaceFilter = (\n dashboard: DashboardProps,\n filterToReplace: Filter,\n newFilter: Filter,\n): DashboardProps => {\n return dashboardHelpersPreact.replaceFilter(\n dashboard as DashboardPropsPreact,\n filterToReplace,\n newFilter,\n );\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.removeFilter}\n *\n * @example\n * Remove a filter from a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const filterToRemove: Filter = {...};\n * const updatedDashboard = dashboardHelpers.removeFilter(existingDashboard, filterToRemove);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) from which to remove the filter.\n * @param filterToRemove - The filter to be removed.\n * @returns A new dashboard instance with the specified filter removed.\n */\nexport const removeFilter = (dashboard: DashboardProps, filterToRemove: Filter): DashboardProps => {\n return dashboardHelpersPreact.removeFilter(dashboard as DashboardPropsPreact, filterToRemove);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.removeFilters}\n *\n * @example\n * Remove multiple filters from a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const filtersToRemove: Filter[] = [{...}, {...}, ...];\n * const updatedDashboard = dashboardHelpers.removeFilters(existingDashboard, filtersToRemove);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) from which the specified filters are removed.\n * @param filtersToRemove - An array of filters to remove.\n * @returns A new dashboard instance with the specified filters removed.\n */\nexport const removeFilters = (\n dashboard: DashboardProps,\n filtersToRemove: Filter[],\n): DashboardProps => {\n return dashboardHelpersPreact.removeFilters(dashboard as DashboardPropsPreact, filtersToRemove);\n};\n","import {\n type WidgetModel,\n widgetModelTranslator as widgetModelTranslatorPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n ChartProps,\n ChartWidgetProps,\n PivotTableProps,\n PivotTableWidgetProps,\n TableProps,\n type TextWidgetProps,\n} from '../components';\nimport { ExecutePivotQueryParams, ExecuteQueryParams } from '../services';\n\n/**\n * Translates a {@link WidgetModel} to the parameters for executing a query for the widget.\n *\n * @example\n * ```ts\nconst widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n});\nconst executeQueryParams = widgetModelTranslator.toExecuteQueryParams(widgetModel);\nconst queryResult = await queryService.executeQuery(executeQueryParams);\n * ```\n *\n * Note: this method is not supported for getting pivot query.\n * Use {@link toExecutePivotQueryParams} instead for getting query parameters for the pivot widget.\n */\nexport const toExecuteQueryParams = (widgetModel: WidgetModel): ExecuteQueryParams => {\n return widgetModelTranslatorPreact.toExecuteQueryParams(widgetModel);\n};\n\n/**\n * Translates a {@link WidgetModel} to the parameters for executing a query for the pivot widget.\n *\n * @example\n * ```ts\nconst widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n});\nconst executePivotQueryParams = widgetModelTranslator.toExecutePivotQueryParams(widgetModel);\nconst queryResult = await queryService.executePivotQuery(executeQueryParams);\n * ```\n *\n * Note: this method is supported only for getting pivot query.\n * Use {@link toExecuteQueryParams} instead for getting query parameters for non-pivot widgets.\n */\nexport const toExecutePivotQueryParams = (widgetModel: WidgetModel): ExecutePivotQueryParams => {\n return widgetModelTranslatorPreact.toExecutePivotQueryParams(widgetModel);\n};\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a chart.\n *\n * @example\n * ```html\n<csdk-chart\n *ngIf=\"chartProps\"\n [chartType]=\"chartProps.chartType\"\n [dataSet]=\"chartProps.dataSet\"\n [dataOptions]=\"chartProps.dataOptions\"\n [filters]=\"chartProps.filters\"\n [highlights]=\"chartProps.highlights\"\n [styleOptions]=\"chartProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type ChartProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n chartProps: ChartProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.chartProps = widgetModelTranslator.toChartProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for pivot widgets.\n * Use {@link toPivotTableProps} instead for getting props for the {@link PivotTableComponent}.\n */\nexport function toChartProps(widgetModel: WidgetModel): ChartProps {\n return widgetModelTranslatorPreact.toChartProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a table.\n *\n * @example\n * ```html\n<csdk-table\n *ngIf=\"tableProps\"\n [dataSet]=\"tableProps.dataSet\"\n [dataOptions]=\"tableProps.dataOptions\"\n [filters]=\"tableProps.filters\"\n [styleOptions]=\"tableProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type TableProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n tableProps: TableProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.tableProps = widgetModelTranslator.toTableProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for chart and pivot widgets.\n * Use {@link toChartProps} instead for getting props for the {@link ChartComponent}.\n * Use {@link toPivotTableProps} instead for getting props for the {@link PivotTableComponent}.\n */\nexport function toTableProps(widgetModel: WidgetModel): TableProps {\n return widgetModelTranslatorPreact.toTableProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a pivot table.\n *\n * @example\n * ```html\n<csdk-pivot-table\n *ngIf=\"pivotTableProps\"\n [dataSet]=\"pivotTableProps.dataSet\"\n [dataOptions]=\"pivotTableProps.dataOptions\"\n [filters]=\"pivotTableProps.filters\"\n [styleOptions]=\"pivotTableProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type PivotTableProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n pivotTableProps: PivotTableProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.pivotTableProps = widgetModelTranslator.toPivotTableProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for chart or table widgets.\n * Use {@link toChartProps} instead for getting props for the {@link ChartComponent}.\n * Use {@link toTableProps} instead for getting props for the {@link TableComponent}.\n */\nexport function toPivotTableProps(widgetModel: WidgetModel): PivotTableProps {\n return widgetModelTranslatorPreact.toPivotTableProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a chart widget.\n *\n * @example\n * ```html\n<csdk-chart-widget\n *ngIf=\"chartWidgetProps\"\n [chartType]=\"chartWidgetProps.chartType\"\n [dataSource]=\"chartWidgetProps.dataSource\"\n [dataOptions]=\"chartWidgetProps.dataOptions\"\n [filters]=\"chartWidgetProps.filters\"\n [highlights]=\"chartWidgetProps.highlights\"\n [styleOptions]=\"chartWidgetProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type ChartWidgetProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n chartWidgetProps: ChartWidgetProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.chartWidgetProps = widgetModelTranslator.toChartWidgetProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for pivot widgets.\n */\nexport function toChartWidgetProps(widgetModel: WidgetModel): ChartWidgetProps {\n return widgetModelTranslatorPreact.toChartWidgetProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a pivot table widget.\n *\n * @example\n * ```html\n<csdk-pivot-table-widget\n *ngIf=\"pivotWidgetProps\"\n [dataSet]=\"pivotWidgetProps.dataSet\"\n [dataOptions]=\"pivotWidgetProps.dataOptions\"\n [filters]=\"pivotWidgetProps.filters\"\n [styleOptions]=\"pivotWidgetProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type PivotTableWidgetProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n pivotWidgetProps: PivotTableWidgetProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.pivotWidgetProps = widgetModelTranslator.toPivotTableWidgetProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for chart or table widgets.\n * Use {@link toChartWidgetProps} instead for getting props for the {@link ChartWidgetComponent}.\n */\nexport function toPivotTableWidgetProps(widgetModel: WidgetModel): PivotTableWidgetProps {\n return widgetModelTranslatorPreact.toPivotTableWidgetProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a text widget.\n *\n * @example\n * ```ts\nconst widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n});\nconst textWidgetProps = widgetModelTranslator.toTextWidgetProps(widgetModel);\n * ```\n *\n * Note: this method is not supported for chart or pivot widgets.\n * Use {@link toChartWidgetProps} instead for getting props for the {@link ChartWidgetComponent}.\n * Use {@link toPivotTableWidgetProps} instead for getting props for the pivot table widget.\n */\nexport function toTextWidgetProps(widgetModel: WidgetModel): TextWidgetProps {\n return widgetModelTranslatorPreact.toTextWidgetProps(widgetModel);\n}\n","/**\n * Public API Surface of @sisense/sdk-ui-angular\n */\nexport * from './lib/components';\nexport * from './lib/sdk-ui.module';\nexport * from './lib/sdk-ui-core-exports';\nexport * from './lib/services';\nexport type {\n AreamapDataPointEvent,\n AreamapDataPointEventHandler,\n BoxplotDataPointEvent,\n BoxplotDataPointEventHandler,\n BoxplotDataPointsEvent,\n ChartDataPointClickEvent,\n ChartDataPointClickEventHandler,\n ChartDataPointContextMenuEvent,\n ChartDataPointContextMenuEventHandler,\n ChartDataPointsEvent,\n ChartDataPointsEventHandler,\n DataPointEvent,\n DataPointEventHandler,\n DataPointsEvent,\n DataPointsEventHandler,\n FilterChangeEvent,\n FilterChangeEventHandler,\n FilterDeleteEventHandler,\n FilterEditEvent,\n FilterEditEventHandler,\n FiltersPanelChangeEvent,\n FiltersPanelChangeEventHandler,\n IndicatorDataPointEvent,\n IndicatorDataPointEventHandler,\n ScatterDataPointEvent,\n ScatterDataPointEventHandler,\n ScatterDataPointsEvent,\n ScatterDataPointsEventHandler,\n ScattermapDataPointEvent,\n ScattermapDataPointEventHandler,\n} from './lib/types';\nexport * from './lib/utilities';\n\n/* Re-exports internal core functionalities to use in dependant angular modules */\nexport {\n createCustomWidgetsContextConnector,\n createSisenseContextConnector,\n createThemeContextConnector,\n} from './lib/component-wrapper-helpers';\nexport { TrackableService } from './lib/decorators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DynamicRenderer","i1.SisenseContextService","ChartPreact","i2.ThemeService","i1.ChartComponent","PivotTablePreact","i1.ThemeService","TablePreact","ContextMenuPreact","DashboardPreact","i3.CustomWidgetsService","DashboardByIdPreact","DrilldownBreadcrumbsPreact","CriteriaFilterTilePreact","DateRangeFilterTilePreact","FilterTilePreact","FiltersPanelPreact","MemberFilterTilePreact","RelativeDateFilterTilePreact","ChartWidgetPreact","DrilldownWidgetPreact","PivotTableWidgetPreact","TableWidgetPreact","WidgetPreact","WidgetByIdPreact","dashboardModelTranslatorPreact","dashboardHelpersPreact","widgetModelTranslatorPreact"],"mappings":"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"}
1
+ {"version":3,"file":"sisense-sdk-ui-angular.mjs","sources":["../../src/lib/component-wrapper-helpers/context-connectors.ts","../../src/lib/component-wrapper-helpers/template.ts","../../src/lib/services/sisense-context.service.ts","../../src/version.ts","../../src/lib/services/dynamic-renderer.service.ts","../../src/lib/services/custom-widgets.service.ts","../../src/lib/helpers/widget-props-preact-translator.ts","../../src/lib/helpers/dashboard-props-preact-translator.ts","../../src/lib/services/dashboard.service.ts","../../src/lib/services/filter.service.ts","../../src/lib/services/hierarchy.service.ts","../../src/lib/services/query.service.ts","../../src/lib/services/widget.service.ts","../../src/lib/decorators/decorators.module.ts","../../src/lib/decorators/trackable.decorator.ts","../../src/lib/services/theme.service.ts","../../src/lib/components/charts/chart.component.ts","../../src/lib/components/charts/area-chart.component.ts","../../src/lib/components/charts/area-range-chart.component.ts","../../src/lib/components/charts/areamap-chart.component.ts","../../src/lib/components/charts/bar-chart.component.ts","../../src/lib/components/charts/boxplot-chart.component.ts","../../src/lib/components/charts/calendar-heatmap-chart.component.ts","../../src/lib/components/charts/column-chart.component.ts","../../src/lib/components/charts/funnel-chart.component.ts","../../src/lib/components/charts/indicator-chart.component.ts","../../src/lib/components/charts/line-chart.component.ts","../../src/lib/components/charts/pie-chart.component.ts","../../src/lib/components/charts/pivot-table.component.ts","../../src/lib/components/charts/polar-chart.component.ts","../../src/lib/components/charts/scatter-chart.component.ts","../../src/lib/components/charts/scattermap-chart.component.ts","../../src/lib/components/charts/sunburst-chart.component.ts","../../src/lib/components/charts/table.component.ts","../../src/lib/components/charts/treemap-chart.component.ts","../../src/lib/components/context-menu.component.ts","../../src/lib/components/dashboard/dashboard.component.ts","../../src/lib/components/dashboard/dashboard-by-id.component.ts","../../src/lib/components/drilldown-breadcrumbs.component.ts","../../src/lib/components/filters/criteria-filter-tile.component.ts","../../src/lib/components/filters/date-range-filter-tile.component.ts","../../src/lib/helpers/event-emitter-with-has-listeners.ts","../../src/lib/components/filters/filter-tile.component.ts","../../src/lib/components/filters/filters-panel.component.ts","../../src/lib/components/filters/member-filter-tile.component.ts","../../src/lib/components/filters/relative-date-filter-tile.component.ts","../../src/lib/components/widgets/chart-widget.component.ts","../../src/lib/components/widgets/drilldown-widget.component.ts","../../src/lib/components/widgets/pivot-table-widget.component.ts","../../src/lib/components/widgets/table-widget.component.ts","../../src/lib/components/widgets/widget.component.ts","../../src/lib/components/widgets/widget-by-id.component.ts","../../src/lib/sdk-ui.module.ts","../../src/lib/sdk-ui-core-exports.ts","../../src/lib/utilities/dashboard-model-translator.ts","../../src/lib/utilities/dashboard-helpers.ts","../../src/lib/utilities/widget-model-translator.ts","../../src/public-api.ts","../../src/sisense-sdk-ui-angular.ts"],"sourcesContent":["import {\n ContextConnector,\n CustomSisenseContextProvider,\n CustomSisenseContextProviderProps,\n CustomThemeProvider,\n CustomThemeProviderProps,\n CustomWidgetsProviderAdapter,\n CustomWidgetsProviderAdapterProps,\n DataObserver,\n} from '@sisense/sdk-ui-preact';\n\nimport { CustomWidgetsService } from '../services/custom-widgets.service';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\n\n/**\n * Creates theme context connector\n *\n * @param themeService - The theme service\n * @internal\n */\nexport const createThemeContextConnector = (\n themeService: ThemeService,\n): ContextConnector<CustomThemeProviderProps> => {\n const themeSettings$ = themeService.getThemeSettings();\n const propsObserver = new DataObserver<CustomThemeProviderProps>();\n\n themeSettings$.subscribe({\n next: (themeSettings) => {\n propsObserver.setValue({\n context: {\n skipTracking: true,\n themeSettings,\n },\n });\n },\n error: (error: Error) => {\n propsObserver.setValue({\n error,\n });\n },\n });\n\n return {\n propsObserver,\n providerComponent: CustomThemeProvider,\n };\n};\n\nfunction getBaseSisenseContext(sisenseContextService: SisenseContextService) {\n const { showRuntimeErrors, appConfig } = sisenseContextService.getConfig() ?? {};\n return {\n isInitialized: sisenseContextService.isInitialized,\n tracking: {\n // if tracking is configured in appConfig, use it\n // if none is set, default to true\n enabled: appConfig?.trackingConfig?.enabled ?? true,\n packageName: 'sdk-ui-angular',\n },\n errorBoundary: {\n showErrorBox: showRuntimeErrors ?? true,\n },\n };\n}\n\n/**\n * Creates Sisense context connector\n *\n * @param sisenseContextService - The Sisense context service\n * @internal\n */\nexport const createSisenseContextConnector = (\n sisenseContextService: SisenseContextService,\n): ContextConnector<CustomSisenseContextProviderProps> => {\n const propsObserver = new DataObserver<CustomSisenseContextProviderProps>({\n context: getBaseSisenseContext(sisenseContextService),\n });\n\n sisenseContextService.getApp$().subscribe({\n next: ({ app, error }) => {\n if (error) {\n propsObserver.setValue({\n error,\n });\n return;\n }\n propsObserver.setValue({\n context: {\n ...getBaseSisenseContext(sisenseContextService),\n app,\n },\n });\n },\n error: (error: Error) => {\n propsObserver.setValue({\n error,\n });\n },\n });\n\n return {\n propsObserver,\n providerComponent: CustomSisenseContextProvider,\n };\n};\n\n/**\n * Creates custom widgets context connector\n *\n * @param customWidgetsService - The custom widgets service\n * @internal\n */\nexport const createCustomWidgetsContextConnector = (\n customWidgetsService: CustomWidgetsService,\n): ContextConnector<CustomWidgetsProviderAdapterProps> => {\n const { customWidgetsMap$ } = customWidgetsService;\n const propsObserver = new DataObserver<CustomWidgetsProviderAdapterProps>();\n\n customWidgetsMap$.subscribe({\n next: (customWidgetsMap) => {\n propsObserver.setValue({\n context: {\n customWidgetsMap: customWidgetsMap,\n },\n });\n },\n error: (error: Error) => {\n propsObserver.setValue({\n error,\n });\n },\n });\n\n return {\n propsObserver,\n providerComponent: CustomWidgetsProviderAdapter,\n };\n};\n","export const rootId = 'preact';\nexport const rootContentId = 'preactContent';\nexport const template = `\n <div #${rootId} class=\"csdk-full-size-container\"></div>\n`;\nexport const templateWithContent = `\n <div #${rootId} class=\"csdk-full-size-container\">\n <div #${rootContentId} class=\"csdk-full-size-container\">\n <ng-content></ng-content>\n </div>\n </div>\n`;\nexport const styles = [\n `.csdk-full-size-container {\n width: 100%;\n height: 100%;\n }`,\n];\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport type { SisenseContextProviderProps as SisenseContextConfig } from '@sisense/sdk-ui-preact';\nimport { ClientApplication, createClientApplication } from '@sisense/sdk-ui-preact';\nimport { concat, firstValueFrom, Observable, of, ReplaySubject } from 'rxjs';\n\nexport { type SisenseContextConfig };\n\n/**\n * Represents the state of the Sisense client application.\n */\ntype AppState =\n | {\n /** Successfully initialized client application */\n readonly app: ClientApplication;\n readonly error?: never;\n }\n | {\n /** Error that occurred during initialization or connection */\n readonly error: Error;\n readonly app?: never;\n };\n\n/**\n * Token used to inject {@link SisenseContextConfig} into your application\n *\n * @example\n * Example of importing {@link SdkUiModule} and injecting {@link SisenseContextConfig} into your application:\n *\n * ```ts\n * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {\n * url: \"<instance url>\", // replace with the URL of your Sisense instance\n * token: \"<api token>\", // replace with the API token of your user account\n * defaultDataSource: DM.DataSource,\n * };\n *\n * @NgModule({\n * imports: [\n * BrowserModule,\n * SdkUiModule,\n * ],\n * declarations: [AppComponent],\n * providers: [\n * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },\n * ],\n * bootstrap: [AppComponent],\n * })\n * ```\n * @group Contexts\n */\nexport const SISENSE_CONTEXT_CONFIG_TOKEN = new InjectionToken<SisenseContextConfig>(\n 'Props for connecting to Sisense instance',\n);\n\n/**\n * Service for managing Sisense Fusion context and client application lifecycle.\n *\n * This service provides a centralized way to configure and manage the connection to a Sisense instance within Angular applications.\n *\n * @group Contexts\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SisenseContextService {\n /**\n * Reactive stream of application state changes.\n *\n * Uses ReplaySubject to ensure late subscribers receive the latest state.\n */\n private readonly app$: ReplaySubject<AppState>;\n\n /**\n * Configuration object for the Sisense connection.\n *\n * This is set once during initialization and remains readonly thereafter\n * to prevent accidental mutations that could lead to inconsistent state.\n */\n private config?: SisenseContextConfig;\n\n /**\n * Flag indicating whether the service has been initialized with configuration.\n *\n * @internal\n */\n isInitialized = false;\n\n constructor(\n @Optional() @Inject(SISENSE_CONTEXT_CONFIG_TOKEN) sisenseContextConfig?: SisenseContextConfig,\n ) {\n // The buffer size of 1 ensures only the most recent state is cached.\n this.app$ = new ReplaySubject(1);\n\n if (sisenseContextConfig) {\n // Auto-configure if config is provided via DI\n void this.setConfig(sisenseContextConfig);\n }\n }\n\n /**\n * Retrieves the initialized Sisense client application.\n *\n * This method provides access to the client application instance.\n * It waits for the latest state from the reactive stream and either returns\n * the application or throws the error if initialization failed.\n *\n * @returns Promise that resolves to the ClientApplication instance\n * @throws {Error} When the service is not initialized or when application creation failed\n *\n * @internal\n */\n async getApp(): Promise<ClientApplication> {\n if (!this.isInitialized) {\n throw new Error('Sisense context is not initialized');\n }\n\n const { app, error } = await firstValueFrom(this.app$);\n\n if (error) {\n throw error;\n }\n return app;\n }\n\n /**\n * Provides reactive access to the Sisense application state.\n *\n * This method returns an Observable that emits the current application state\n * and all subsequent state changes. It's the preferred way to reactively\n * handle application lifecycle events in Angular components.\n *\n * If the service is not initialized, it immediately emits an error state\n * followed by any future state changes once initialization occurs.\n *\n * @returns Observable stream of AppState changes\n *\n * @internal\n */\n getApp$(): Observable<AppState> {\n if (!this.isInitialized) {\n return concat(\n of({ error: new Error('Sisense context is not initialized') } as const),\n this.app$,\n );\n }\n\n return this.app$;\n }\n\n /**\n * Retrieves the current {@link SisenseContextConfig} configuration object.\n *\n * @returns The current configuration object, or undefined if not yet configured\n */\n getConfig(): SisenseContextConfig | undefined {\n return this.config;\n }\n\n /**\n * Configures and initializes the Sisense context with the provided settings.\n *\n * This method allows to establish a connection to a Sisense instance.\n * It could be used as runtime alternative to {@link SISENSE_CONTEXT_CONFIG_TOKEN} based configuration.\n *\n * @param config - Configuration object\n * @returns Promise that resolves when configuration is complete (success or failure)\n *\n * @example\n * Basic configuration:\n * ```ts\n * await SisenseContextService.setConfig({\n * url: 'https://your-sisense-instance.com',\n * token: 'your-api-token',\n * defaultDataSource: 'Sample ECommerce'\n * });\n * ```\n */\n async setConfig(config: SisenseContextConfig): Promise<void> {\n this.config = {\n ...config,\n showRuntimeErrors: config.showRuntimeErrors ?? true,\n };\n this.isInitialized = true;\n\n try {\n const app = await createClientApplication(this.config);\n this.app$.next({ app } as const);\n } catch (error) {\n this.app$.next({ error: error as Error } as const);\n }\n }\n}\n","export default '2.12.0'","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\n\n/**\n * Result of rendering a dynamic component\n */\nexport interface RenderedComponent {\n /** The DOM element containing the rendered component */\n element: HTMLElement;\n /** Function to properly destroy the component and clean up resources */\n destroy: () => void;\n /** Reference to the Angular component instance */\n componentRef: ComponentRef<any>;\n}\n\n/**\n * Service for rendering components dynamically.\n *\n * @internal\n */\n@Injectable({ providedIn: 'root' })\nexport class DynamicRenderer {\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector,\n private envInjector: EnvironmentInjector,\n ) {}\n\n renderComponent<Props>(component: Type<Props>, props: Props): RenderedComponent {\n const componentRef = createComponent(component, {\n environmentInjector: this.envInjector,\n elementInjector: this.injector,\n });\n\n // Apply props to the component instance\n Object.assign(componentRef.instance as any, props);\n\n // Attach the component to the application\n this.appRef.attachView(componentRef.hostView);\n\n // Get the DOM element\n const domElem = (componentRef.hostView as any).rootNodes[0] as HTMLElement;\n\n // Create destroy function\n const destroy = () => {\n // Detach from application\n this.appRef.detachView(componentRef.hostView);\n\n // Destroy the component\n componentRef.destroy();\n };\n\n return {\n element: domElem,\n componentRef,\n destroy,\n };\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport {\n createWrapperElement,\n type CustomWidgetComponent as CustomWidgetComponentPreact,\n type CustomWidgetComponentProps,\n type GenericDataOptions,\n} from '@sisense/sdk-ui-preact';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DynamicRenderer } from './dynamic-renderer.service';\n\n/** Re-export related types */\nexport type { CustomWidgetComponentProps, GenericDataOptions };\n\n/**\n * Type representing an Angular component class that can be used as a user-defined custom widget.\n */\nexport type CustomWidgetComponent<\n Props extends CustomWidgetComponentProps = CustomWidgetComponentProps,\n> = Type<Props>;\n\n/**\n * Service for working with custom widgets.\n *\n * @group Dashboards\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomWidgetsService {\n /** @internal */\n customWidgetsMap$: BehaviorSubject<Map<string, CustomWidgetComponentPreact<any>>>;\n\n constructor(\n /** @internal */\n private dynamicRenderer: DynamicRenderer,\n ) {\n this.customWidgetsMap$ = new BehaviorSubject(\n new Map<string, CustomWidgetComponentPreact<any>>(),\n );\n }\n\n /**\n * Registers a new custom widget.\n *\n * @param customWidgetType - The unique identifier for the custom widget type.\n * @param customWidget - The custom widget component class to register.\n */\n registerCustomWidget<Props extends CustomWidgetComponentProps = CustomWidgetComponentProps>(\n customWidgetType: string,\n customWidget: CustomWidgetComponent<Props>,\n ): void {\n const customWidgetPreactComponent: CustomWidgetComponentPreact<Props> = (props: Props) => {\n const renderedComponent = this.dynamicRenderer.renderComponent(customWidget, props);\n return createWrapperElement(renderedComponent.element as HTMLDivElement, () =>\n renderedComponent.destroy(),\n );\n };\n\n const customWidgetsMap = this.customWidgetsMap$.value;\n if (!customWidgetsMap.has(customWidgetType)) {\n customWidgetsMap.set(customWidgetType, customWidgetPreactComponent);\n this.customWidgetsMap$.next(customWidgetsMap);\n }\n }\n\n /**\n * Checks if a custom widget is registered.\n *\n * @param customWidgetType - The type of the custom widget.\n * @returns True if the custom widget is registered, false otherwise.\n */\n hasCustomWidget(customWidgetType: string): boolean {\n return this.customWidgetsMap$.value.has(customWidgetType);\n }\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\nimport { SoftUnion, WidgetProps as WidgetPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { WidgetProps } from '../components/widgets';\nimport {\n Arguments,\n ChartDataPointClickEvent,\n ChartDataPointContextMenuEvent,\n ChartDataPointsEvent,\n WidgetDataPointClickEvent,\n WidgetDataPointClickEventHandler,\n} from '../types';\n\ntype SoftWidgetPropsPreact = SoftUnion<WidgetPropsPreact>;\n\nexport function translateToPreactWidgetProps(widgetProps: WidgetProps): WidgetPropsPreact {\n const {\n beforeRender,\n dataReady,\n beforeMenuOpen,\n dataPointClick,\n dataPointContextMenu,\n dataPointsSelect,\n ...commonWidgetProps\n } = widgetProps;\n return {\n ...commonWidgetProps,\n onBeforeRender: beforeRender,\n onDataReady: dataReady,\n onBeforeMenuOpen: beforeMenuOpen,\n onDataPointClick: dataPointClick\n ? (...[point, nativeEvent]: Arguments<SoftWidgetPropsPreact['onDataPointClick']>) =>\n (dataPointClick as WidgetDataPointClickEventHandler)({\n point,\n nativeEvent,\n } as WidgetDataPointClickEvent)\n : undefined,\n onDataPointContextMenu: dataPointContextMenu\n ? (...[point, nativeEvent]: Arguments<SoftWidgetPropsPreact['onDataPointContextMenu']>) =>\n dataPointContextMenu({ point, nativeEvent } as ChartDataPointContextMenuEvent)\n : undefined,\n onDataPointsSelected: dataPointsSelect\n ? (...[points, nativeEvent]: Arguments<SoftWidgetPropsPreact['onDataPointsSelected']>) =>\n dataPointsSelect({ points, nativeEvent } as ChartDataPointsEvent)\n : undefined,\n } as WidgetPropsPreact;\n}\n\nexport function translateFromPreactWidgetProps(widgetProps: WidgetPropsPreact): WidgetProps {\n const {\n onBeforeRender,\n onDataReady,\n onBeforeMenuOpen,\n onDataPointClick,\n onDataPointContextMenu,\n onDataPointsSelected,\n ...commonWidgetProps\n } = widgetProps as SoftWidgetPropsPreact;\n return {\n ...commonWidgetProps,\n beforeRender: onBeforeRender,\n dataReady: onDataReady,\n beforeMenuOpen: onBeforeMenuOpen,\n dataPointClick: onDataPointClick\n ? ({ point, nativeEvent }: ChartDataPointClickEvent) =>\n onDataPointClick(point as any, nativeEvent as any)\n : undefined,\n dataPointContextMenu: onDataPointContextMenu\n ? ({ point, nativeEvent }: ChartDataPointContextMenuEvent) =>\n onDataPointContextMenu(point as any, nativeEvent as any)\n : undefined,\n dataPointsSelect: onDataPointsSelected\n ? ({ points, nativeEvent }: ChartDataPointsEvent) =>\n onDataPointsSelected(points as any, nativeEvent as any)\n : undefined,\n } as WidgetProps;\n}\n","import { DashboardProps as DashboardPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { DashboardProps } from '../components/dashboard';\nimport {\n translateFromPreactWidgetProps,\n translateToPreactWidgetProps,\n} from './widget-props-preact-translator';\n\nexport function translateToPreactDashboardProps(\n dashboardProps: DashboardProps,\n): DashboardPropsPreact {\n return {\n ...dashboardProps,\n widgets: dashboardProps.widgets.map(translateToPreactWidgetProps),\n };\n}\n\nexport function translateFromPreactDashboardProps(\n dashboardProps: DashboardPropsPreact,\n): DashboardProps {\n return {\n ...dashboardProps,\n widgets: dashboardProps.widgets.map(translateFromPreactWidgetProps),\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Filter, FilterRelations } from '@sisense/sdk-data';\nimport {\n type ComposableDashboardProps as ComposableDashboardPropsPreact,\n createHookApiFacade,\n type DashboardProps as DashboardPropsPreact,\n getDashboardModel,\n type GetDashboardModelOptions,\n getDashboardModels,\n type GetDashboardModelsOptions,\n HookAdapter,\n useComposedDashboardInternal,\n UseComposedDashboardOptions,\n WidgetsPanelLayout,\n} from '@sisense/sdk-ui-preact';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { createSisenseContextConnector } from '../component-wrapper-helpers';\nimport { type DashboardProps } from '../components/dashboard/dashboard.component';\nimport { type WidgetProps } from '../components/widgets/widget.component';\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport {\n translateFromPreactDashboardProps,\n translateToPreactDashboardProps,\n} from '../helpers/dashboard-props-preact-translator';\nimport { SisenseContextService } from './sisense-context.service';\n\nexport interface ComposableDashboardProps extends Omit<ComposableDashboardPropsPreact, 'widgets'> {\n widgets: WidgetProps[];\n}\n\n/**\n * Service for working with Sisense Fusion dashboards.\n *\n * **Note:** Dashboard and Widget extensions based on JS scripts and add-ons in Fusion – for example, Blox and Jump To Dashboard – are not supported.\n *\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<DashboardService>(['getDashboardModel', 'getDashboardModels'])\nexport class DashboardService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Retrieves an existing dashboard model from the Sisense instance.\n *\n * @param dashboardOid - Identifier of the dashboard\n * @param options - Advanced configuration options\n * @returns Dashboard model\n */\n async getDashboardModel(dashboardOid: string, options?: GetDashboardModelOptions) {\n const app = await this.sisenseContextService.getApp();\n return getDashboardModel(app.httpClient, dashboardOid, options);\n }\n\n /**\n * Retrieves existing dashboard models from the Sisense instance.\n *\n * @param options - Advanced configuration options\n * @returns Dashboard models array\n */\n async getDashboardModels(options?: GetDashboardModelsOptions) {\n const app = await this.sisenseContextService.getApp();\n return getDashboardModels(app.httpClient, options);\n }\n\n /**\n * Сomposes dashboard or separate dashboard elements into a coordinated dashboard\n * with cross filtering, and change detection.\n *\n * @example\n * An example of using the `createComposedDashboard` to construct a composed dashboard and render it:\n * ```html\n <!--Component HTML template in example.component.html-->\n <div *ngIf=\"dashboard$ | async as dashboard\">\n <csdk-filter-tile\n *ngFor=\"let filter of getDashboardFilters(dashboard); trackBy: trackByIndex\"\n [filter]=\"filter\"\n />\n <csdk-widget\n *ngFor=\"let widget of dashboard.widgets; trackBy: trackByIndex\"\n [id]=\"widget.id\"\n [widgetType]=\"widget.widgetType\"\n [chartType]=\"widget.chartType\"\n [customWidgetType]=\"widget.customWidgetType\"\n [dataSource]=\"widget.dataSource\"\n [dataOptions]=\"widget.dataOptions\"\n [filters]=\"widget.filters\"\n [highlights]=\"widget.highlights\"\n [styleOptions]=\"widget.styleOptions\"\n [drilldownOptions]=\"widget.drilldownOptions\"\n [title]=\"widget.title\"\n [description]=\"widget.description\"\n [beforeMenuOpen]=\"widget.beforeMenuOpen\"\n (dataPointClick)=\"widget.dataPointClick?.($event)\"\n (dataPointContextMenu)=\"widget.dataPointContextMenu?.($event)\"\n (dataPointsSelect)=\"widget.dataPointsSelect?.($event)\"\n />\n </div>\n * ```\n *\n * ```ts\n // Component behavior in example.component.ts\n import { Component } from '@angular/core';\n import { BehaviorSubject } from 'rxjs';\n import { DashboardService, type DashboardProps } from '@sisense/sdk-ui-angular';\n\n @Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n })\n export class ExampleComponent {\n dashboard$: BehaviorSubject<DashboardProps> | undefined;\n\n constructor(private dashboardService: DashboardService) {}\n\n ngOnInit() {\n const initialDashboard: DashboardProps = { ... };\n const composedDashboard = this.dashboardService.createComposedDashboard(initialDashboard);\n this.dashboard$ = composedDashboard.dashboard$;\n }\n\n trackByIndex = (index: number) => index;\n\n getDashboardFilters = ({ filters }: DashboardProps) => Array.isArray(filters) ? filters : [];\n }\n * ```\n * @param initialDashboard - Initial dashboard\n * @param options - Configuration options\n * @returns Reactive composed dashboard object and API methods for interacting with it\n */\n createComposedDashboard<D extends ComposableDashboardProps | DashboardProps>(\n initialDashboard: D,\n options: UseComposedDashboardOptions = {},\n ): {\n dashboard$: BehaviorSubject<D>;\n setFilters: (filters: Filter[] | FilterRelations) => Promise<void>;\n setWidgetsLayout: (newLayout: WidgetsPanelLayout) => Promise<void>;\n } {\n const hookAdapter = new HookAdapter(\n useComposedDashboardInternal<ComposableDashboardPropsPreact | DashboardPropsPreact>,\n [createSisenseContextConnector(this.sisenseContextService)],\n );\n const dashboard$ = new BehaviorSubject<D>(initialDashboard);\n\n hookAdapter.subscribe(({ dashboard }) => {\n dashboard$.next(translateFromPreactDashboardProps(dashboard) as D);\n });\n\n hookAdapter.run(\n translateToPreactDashboardProps(initialDashboard) as\n | ComposableDashboardPropsPreact\n | DashboardPropsPreact,\n options,\n );\n\n const setFilters = createHookApiFacade(hookAdapter, 'setFilters', true);\n const setWidgetsLayout = createHookApiFacade(hookAdapter, 'setWidgetsLayout', true);\n\n return {\n dashboard$,\n setFilters,\n setWidgetsLayout,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n type GetFilterMembersData,\n type GetFilterMembersParams as GetFilterMembersParamsPreact,\n type GetFilterMembersResult as GetFilterMembersResultPreact,\n HookAdapter,\n useGetFilterMembers,\n} from '@sisense/sdk-ui-preact';\n\nimport { createSisenseContextConnector } from '../component-wrapper-helpers';\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { SisenseContextService } from './sisense-context.service';\n\nexport type { GetFilterMembersData };\n\n/**\n * Parameters for retrieving filter members.\n */\nexport interface GetFilterMembersParams extends Omit<GetFilterMembersParamsPreact, 'enabled'> {}\n\n/**\n * Service for working with filter.\n *\n * @group Filters\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<FilterService>(['getFilterMembers'])\nexport class FilterService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Retrieves members of the provided filter.\n *\n * Those members can be used to display a list of members in a third-party filter component such as Material UI Select.\n *\n * ## Example\n *\n * Retrieve selected members from a Filter on Country of the Sample ECommerce data model.\n *\n * ```ts\n * try {\n * const data = await filterService.getFilterMembers({\n * filter: filterFactory.members(DM.Country.Country, ['United States', 'Canada'])\n * });\n *\n * const { selectedMembers, allMembers, excludeMembers, enableMultiSelection } = data;\n * console.log('selectedMembers', selectedMembers);\n * } catch (error) {\n * console.error('Error:', error);\n * }\n * ```\n *\n * @param params - Parameters for retrieving filter members\n * @returns Promise that resolves to the filter members data\n */\n async getFilterMembers(params: GetFilterMembersParams): Promise<GetFilterMembersData> {\n const hookAdapter = new HookAdapter(useGetFilterMembers, [\n createSisenseContextConnector(this.sisenseContextService),\n ]);\n\n const resultPromise = new Promise<GetFilterMembersData>((resolve, reject) => {\n hookAdapter.subscribe((res: GetFilterMembersResultPreact) => {\n const { isError, isSuccess, error } = res;\n\n if (isError) {\n reject(error);\n } else if (isSuccess) {\n resolve(res.data);\n }\n });\n });\n\n hookAdapter.run(params);\n\n return resultPromise.finally(() => {\n hookAdapter.destroy();\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n getHierarchyModels,\n type GetHierarchyModelsParams as GetHierarchyModelsParamsPreact,\n HierarchyModel,\n} from '@sisense/sdk-ui-preact';\n\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { SisenseContextService } from './sisense-context.service';\n\n/**\n * Parameters for retrieving an existing hierarchy models from the Sisense instance.\n */\nexport interface GetHierarchyModelsParams extends Omit<GetHierarchyModelsParamsPreact, 'enabled'> {}\n\n/**\n * Service for working with Sisense Fusion hierarchies.\n *\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<HierarchyService>(['getHierarchyModels'])\nexport class HierarchyService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Retrieves existing hierarchy models from the Sisense instance.\n *\n * @param params - Parameters to identify the target hierarchy models\n * @returns Hierarchy models array\n */\n async getHierarchyModels(params: GetHierarchyModelsParams): Promise<HierarchyModel[]> {\n const app = await this.sisenseContextService.getApp();\n return getHierarchyModels(app.httpClient, params, app.defaultDataSource);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { getFilterListAndRelationsJaql, QueryResultData } from '@sisense/sdk-data';\nimport {\n type ExecuteCsvQueryParams as ExecuteCsvQueryParamsPreact,\n type ExecuteCustomWidgetQueryParams as ExecuteCustomWidgetQueryParamsPreact,\n executePivotQuery,\n type ExecutePivotQueryParams as ExecutePivotQueryParamsPreact,\n executeQuery,\n executeQueryByWidgetId,\n type ExecuteQueryByWidgetIdParams as ExecuteQueryByWidgetIdParamsPreact,\n type ExecuteQueryParams as ExecuteQueryParamsPreact,\n HookAdapter,\n useExecuteCsvQueryInternal,\n useExecuteCustomWidgetQueryInternal,\n} from '@sisense/sdk-ui-preact';\n\nimport { createSisenseContextConnector } from '../component-wrapper-helpers';\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { SisenseContextService } from './sisense-context.service';\n\ninterface ExecuteQueryHandlers {\n /** Sync or async callback that allows to modify the JAQL payload before it is sent to the server. */\n beforeQuery?: ExecuteQueryParamsPreact['onBeforeQuery'];\n}\n\n/**\n * Parameters for data query execution.\n */\nexport interface ExecuteQueryParams\n extends Omit<ExecuteQueryParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Parameters for data query by widget id execution.\n */\nexport interface ExecuteQueryByWidgetIdParams\n extends Omit<ExecuteQueryByWidgetIdParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Parameters for pivot data query execution.\n */\nexport interface ExecutePivotQueryParams\n extends Omit<ExecutePivotQueryParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Parameters for CSV data query execution.\n */\nexport interface ExecuteCsvQueryParams\n extends Omit<ExecuteCsvQueryParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Parameters for custom widget query execution.\n */\nexport interface ExecuteCustomWidgetQueryParams\n extends Omit<ExecuteCustomWidgetQueryParamsPreact, 'enabled' | 'onBeforeQuery'>,\n ExecuteQueryHandlers {}\n\n/**\n * Service for executing data queries.\n *\n * @group Queries\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<QueryService>([\n 'executeQuery',\n 'executeQueryByWidgetId',\n 'executePivotQuery',\n 'executeCustomWidgetQuery',\n])\nexport class QueryService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Executes a data query. If you want to display the query results, you can use\n * them to populate Compose SDK UI elements or third party UI elements.\n *\n * To learn how to populate third party UI elements with query results, see the\n * [External Charts Guide](/guides/sdk/guides/charts/guide-external-charts.html#query)\n *\n * @param params - Query parameters\n * @return Query result\n */\n async executeQuery(params: ExecuteQueryParams) {\n const {\n dataSource,\n dimensions,\n measures,\n filters,\n highlights,\n count,\n offset,\n ungroup,\n beforeQuery,\n } = params;\n const app = await this.sisenseContextService.getApp();\n const { filters: filterList, relations: filterRelations } =\n getFilterListAndRelationsJaql(filters);\n const data = await executeQuery(\n {\n dataSource,\n dimensions,\n measures,\n filters: filterList,\n filterRelations,\n highlights,\n count,\n offset,\n ungroup,\n },\n app,\n { onBeforeQuery: beforeQuery },\n );\n\n return { data };\n }\n\n /**\n * Executes a data query extracted from an existing widget in the Sisense instance.\n *\n * @param params - Parameters to identify the target widget\n * @returns Query result\n */\n async executeQueryByWidgetId(params: ExecuteQueryByWidgetIdParams) {\n const app = await this.sisenseContextService.getApp();\n\n return executeQueryByWidgetId({\n ...params,\n app,\n onBeforeQuery: params.beforeQuery,\n });\n }\n\n /**\n * Executes a data query for a pivot table.\n *\n * @param params - Pivot query parameters\n * @return Pivot query result\n * @beta\n */\n async executePivotQuery(params: ExecutePivotQueryParams) {\n const {\n dataSource,\n rows,\n columns,\n values,\n grandTotals,\n filters,\n highlights,\n count,\n offset,\n beforeQuery,\n } = params;\n const { filters: filterList, relations: filterRelations } =\n getFilterListAndRelationsJaql(filters);\n\n const app = await this.sisenseContextService.getApp();\n const data = await executePivotQuery(\n {\n dataSource,\n rows,\n columns,\n values,\n grandTotals,\n filters: filterList,\n filterRelations,\n highlights,\n count,\n offset,\n },\n app,\n { onBeforeQuery: beforeQuery },\n );\n\n return { data };\n }\n\n /**\n * Executes a CSV data query.\n * Similar to {@link QueryService.executeQuery}, but returns the data in CSV format as text or as a stream.\n *\n * @param params - CSV query parameters\n * @return CSV query result\n */\n async executeCsvQuery(params: ExecuteCsvQueryParams) {\n const hookAdapter = new HookAdapter(useExecuteCsvQueryInternal, [\n createSisenseContextConnector(this.sisenseContextService),\n ]);\n\n const resultPromise = new Promise<{ data: Blob | string }>((resolve, reject) => {\n hookAdapter.subscribe((res) => {\n const { data, isSuccess, isError, error } = res;\n if (isSuccess) {\n resolve({ data });\n } else if (isError) {\n reject(error);\n }\n });\n });\n\n hookAdapter.run(params);\n\n return resultPromise.finally(() => {\n hookAdapter.destroy();\n });\n }\n\n /**\n * Executes a data query from custom widget component props.\n *\n * This method takes custom widget props (dataSource, dataOptions, filters, etc.)\n * and executes the appropriate data query\n *\n * @param params - Custom widget component props containing data source, data options, filters, etc.\n * @returns Promise resolving to query result with formatted data\n */\n async executeCustomWidgetQuery(params: ExecuteCustomWidgetQueryParams) {\n const hookAdapter = new HookAdapter(useExecuteCustomWidgetQueryInternal, [\n createSisenseContextConnector(this.sisenseContextService),\n ]);\n\n const resultPromise = new Promise<{ data: QueryResultData }>((resolve, reject) => {\n hookAdapter.subscribe((res) => {\n const { data, isSuccess, isError, error } = res;\n if (isSuccess) {\n resolve({ data });\n } else if (isError) {\n reject(error);\n }\n });\n });\n\n hookAdapter.run(params);\n\n return resultPromise.finally(() => {\n hookAdapter.destroy();\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n getWidgetModel,\n type GetWidgetModelParams as GetWidgetModelParamsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { SisenseContextService } from './sisense-context.service';\n\n/**\n * Parameters for retrieving an existing widget model from the Sisense instance\n */\nexport interface GetWidgetModelParams extends Omit<GetWidgetModelParamsPreact, 'enabled'> {}\n\n/**\n * Service for working with Sisense Fusion widgets.\n *\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<WidgetService>(['getWidgetModel'])\nexport class WidgetService {\n constructor(private sisenseContextService: SisenseContextService) {}\n\n /**\n * Retrieves an existing widget model from the Sisense instance.\n *\n * @param params - Parameters to identify the target widget\n * @returns Widget model\n */\n async getWidgetModel(params: GetWidgetModelParams) {\n const { dashboardOid, widgetOid } = params;\n const app = await this.sisenseContextService.getApp();\n return getWidgetModel(app.httpClient, dashboardOid, widgetOid);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SisenseContextService } from '../services';\n\n@NgModule({\n declarations: [],\n exports: [],\n})\nexport class DecoratorsModule {\n static sisenseContextService: SisenseContextService;\n\n constructor(sisenseContextService: SisenseContextService) {\n DecoratorsModule.sisenseContextService = sisenseContextService;\n }\n}\n","import { trackProductEvent } from '@sisense/sdk-tracking';\nimport { TrackingEventType } from '@sisense/sdk-tracking/src/registry';\n\nimport packageVersion from '../../version';\nimport { DecoratorsModule } from './decorators.module';\n\nexport function Trackable(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: unknown[]) {\n track('sdkAngularServiceMethodExecuted', propertyKey);\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n}\n\ntype ConstructorOf<T> = { new (...args: any[]): T };\n\ntype SubType<Base, Condition> = Pick<\n Base,\n {\n [Key in keyof Base]: Base[Key] extends Condition ? Key : never;\n }[keyof Base]\n>;\ntype MethodsOnly<T> = SubType<T, (...args: any[]) => any>;\ntype MethodsArray<T> = T extends infer C ? (keyof MethodsOnly<C>)[] : [];\n\n/** @internal */\nexport function TrackableService<T>(trackableMethods: MethodsArray<T>) {\n return function (ServiceClass: ConstructorOf<T>): void | ConstructorOf<T> {\n trackableMethods.forEach((methodName) => {\n // eslint-disable-next-line security/detect-object-injection\n const original = ServiceClass.prototype[methodName];\n\n // eslint-disable-next-line security/detect-object-injection\n ServiceClass.prototype[methodName] = function (...params: unknown[]) {\n track('sdkAngularServiceMethodExecuted', `${ServiceClass.name}.${methodName}`);\n return original.apply(this, params);\n };\n });\n };\n}\n\nexport async function track(action: TrackingEventType, methodName: string) {\n try {\n const app = await DecoratorsModule.sisenseContextService.getApp();\n\n const trackingEnabled = app.settings?.trackingConfig?.enabled ?? true;\n\n if (app?.httpClient) {\n const payload = {\n packageName: 'sdk-ui-angular',\n packageVersion,\n methodName,\n };\n\n void trackProductEvent(action, payload, app.httpClient, !trackingEnabled);\n }\n } catch (e) {\n console.warn('tracking error', e);\n }\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport {\n type CompleteThemeSettings,\n getDefaultThemeSettings,\n getThemeSettingsByOid,\n type ThemeProviderProps as ThemeConfig,\n} from '@sisense/sdk-ui-preact';\nimport { BehaviorSubject, skip } from 'rxjs';\nimport merge from 'ts-deepmerge';\n\nimport { track, TrackableService } from '../decorators/trackable.decorator';\nimport { type ThemeSettings } from '../sdk-ui-core-exports';\nimport { SisenseContextService } from './sisense-context.service';\n\nexport { type ThemeConfig };\n\n/**\n * Token used to inject {@link ThemeConfig} into your application\n *\n * @example\n *\n * Example of injecting both {@link SisenseContextConfig} and {@link ThemeConfig} into your application:\n *\n * ```ts\n * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {\n * url: \"<instance url>\", // replace with the URL of your Sisense instance\n * token: \"<api token>\", // replace with the API token of your user account\n * defaultDataSource: DM.DataSource,\n * };\n *\n * @NgModule({\n * imports: [\n * BrowserModule,\n * SdkUiModule,\n * ],\n * declarations: [AppComponent],\n * providers: [\n * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },\n * {\n * provide: THEME_CONFIG_TOKEN,\n * useValue: {\n * // initial theme settings\n * } as ThemeConfig,\n * },\n * ],\n * bootstrap: [AppComponent],\n * })\n * ```\n * @group Contexts\n */\nexport const THEME_CONFIG_TOKEN = new InjectionToken<ThemeConfig>('theme configuration');\n\n/**\n * Service for working with Sisense Fusion themes.\n *\n * If no theme service is used, the current Fusion theme is applied by default.\n *\n * @group Contexts\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<ThemeService>(['updateThemeSettings'])\nexport class ThemeService {\n private themeSettings$: BehaviorSubject<CompleteThemeSettings>;\n\n private initializationPromise: Promise<void> = Promise.resolve();\n\n constructor(\n private sisenseContextService: SisenseContextService,\n @Optional() @Inject(THEME_CONFIG_TOKEN) themeConfig?: ThemeConfig,\n ) {\n this.themeSettings$ = new BehaviorSubject<CompleteThemeSettings>(getDefaultThemeSettings());\n this.initializationPromise = this.initThemeSettings(themeConfig?.theme);\n this.sisenseContextService\n .getApp$()\n // Skip current app value\n .pipe(skip(1))\n // Subscribe to new app values\n .subscribe({\n next: ({ app }) => {\n if (app) {\n this.initializationPromise = this.applyThemeSettings(app.settings.serverThemeSettings);\n }\n },\n });\n }\n\n private async initThemeSettings(theme: ThemeConfig['theme']) {\n const app = await this.sisenseContextService.getApp();\n\n // apply system theme settings first\n await this.applyThemeSettings(app.settings.serverThemeSettings);\n\n if (theme) {\n // Manually tracks theme update during initialization as execution of updateThemeSettings for consistency.\n track('sdkAngularServiceMethodExecuted', 'ThemeService.updateThemeSettings');\n await this.applyThemeSettings(theme);\n }\n }\n\n private async applyThemeSettings(theme: string | ThemeSettings) {\n try {\n const app = await this.sisenseContextService.getApp();\n const isThemeOid = typeof theme === 'string';\n let userThemeSettings = theme as ThemeSettings;\n\n if (isThemeOid) {\n userThemeSettings = await getThemeSettingsByOid(theme, app.httpClient);\n }\n\n const mergedThemeSettings = merge.withOptions(\n { mergeArrays: false },\n this.themeSettings$.value,\n userThemeSettings,\n ) as CompleteThemeSettings;\n\n this.themeSettings$.next(mergedThemeSettings);\n } catch (error) {\n this.themeSettings$.error(error);\n }\n }\n\n /** @internal */\n getThemeSettings() {\n return this.themeSettings$.asObservable();\n }\n\n async updateThemeSettings(theme: string | ThemeSettings) {\n await this.initializationPromise;\n await this.applyThemeSettings(theme);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n Chart as ChartPreact,\n type ChartProps as ChartPropsPreact,\n ComponentAdapter,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { ChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport {\n ChartDataPointClickEvent,\n ChartDataPointContextMenuEvent,\n ChartDataPointsEvent,\n} from '../../types/data-point';\nimport type { Arguments } from '../../types/utility-types';\n\n/**\n * Props shared across the {@link ChartComponent}.\n */\nexport interface ChartProps\n extends WithoutPreactChartEventProps<ChartPropsPreact>,\n ChartEventProps {}\n\n/**\n * An Angular component used for easily switching chart types or rendering multiple series of different chart types.\n *\n * @example\n * An example of using the `Chart` component to\n * plot a column chart of the Sample Healthcare data source hosted in a Sisense instance:\n *\n * ```html\n * <!--Component HTML template in .component.html-->\n * <csdk-chart\n * [chartType]=\"chart.chartType\"\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [filters]=\"chart.filters\"\n * [styleOptions]=\"chart.styleOptions\"\n * />\n * ```\n *\n * ```ts\n * // Component behavior in .component.ts\n * chart = {\n * chartType: 'column' as ChartType,\n * dataSet: DM.DataSource,\n * dataOptions: {\n * category: [DM.Admissions.Admission_Time.Months],\n * value: [measureFactory.count(DM.Admissions.Patient_ID, 'Total Patients')],\n * breakBy: [],\n * },\n * filters: [filterFactory.members(DM.Doctors.Specialty, ['Oncology', 'Cardiology'])],\n * styleOptions: {\n * width: 800,\n * height: 500,\n * xAxis: {\n * title: {\n * text: 'Months',\n * enabled: true,\n * },\n * },\n * yAxis: {\n * title: {\n * text: 'Total Patients',\n * enabled: true,\n * },\n * },\n * },\n * };\n * ```\n *\n * <img src=\"media://angular-chart-example.png\" width=\"800px\" />\n * @shortDescription Common component for rendering charts of different types including table\n * @group Charts\n */\n@Component({\n selector: 'csdk-chart',\n template,\n styles,\n})\nexport class ChartComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.chartType}\n *\n * @category Chart\n */\n @Input()\n chartType!: ChartProps['chartType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: ChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: ChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: ChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: ChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ChartDataPointClickEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointContextMenuEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<ChartDataPointsEvent>();\n\n private componentAdapter: ComponentAdapter<typeof ChartPreact>;\n\n /**\n * Constructor for the `Chart` component.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(ChartPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): ChartPropsPreact {\n return {\n chartType: this.chartType,\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n onBeforeRender: this.beforeRender?.bind(this),\n onDataReady: this.dataReady?.bind(this),\n onDataPointClick: (\n ...[point, nativeEvent]: Arguments<ChartPropsPreact['onDataPointClick']>\n ) => this.dataPointClick.emit({ point, nativeEvent } as ChartDataPointClickEvent),\n onDataPointContextMenu: (\n ...[point, nativeEvent]: Arguments<ChartPropsPreact['onDataPointContextMenu']>\n ) => this.dataPointContextMenu.emit({ point, nativeEvent } as ChartDataPointContextMenuEvent),\n onDataPointsSelected: (\n ...[points, nativeEvent]: Arguments<ChartPropsPreact['onDataPointsSelected']>\n ) => this.dataPointsSelect.emit({ points, nativeEvent } as ChartDataPointsEvent),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type AreaChartProps as AreaChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link AreaChartComponent} component.\n */\nexport interface AreaChartProps\n extends WithoutPreactChartEventProps<AreaChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component similar to a {@link LineChartComponent},\n * but with filled in areas under each line and an option to display them as stacked.\n *\n * @example\n * ```html\n * <csdk-area-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory, Filter } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-area-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-area-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class AreaChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: AreaChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: AreaChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: AreaChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: AreaChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: AreaChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: AreaChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: AreaChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'area';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type AreaRangeChartProps as AreaRangeChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link AreaRangeChartComponent}.\n */\nexport interface AreaRangeChartProps\n extends WithoutPreactChartEventProps<AreaRangeChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component that displays a range of data over a given time period or across multiple categories.\n * It is particularly useful for visualizing the minimum and maximum values in a dataset, along with\n * the area between these values.\n *\n * @example\n * ```html\n * <csdk-area-range-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory, Filter } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType, RangeChartDataOptions } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'arearange' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Admissions.Admission_Time.Years],\n value: [\n {\n title: 'Admission Cost Range',\n upperBound: measureFactory.multiply(\n measureFactory.sum(DM.Admissions.Cost_of_admission, 'Lower Admission'),\n 0.6,\n ),\n lowerBound: measureFactory.multiply(\n measureFactory.sum(DM.Admissions.Cost_of_admission, 'Upper Admission'),\n 1.4,\n ),\n }\n ],\n breakBy: [],\n } as RangeChartDataOptions,\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-area-range-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-area-range-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class AreaRangeChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: AreaRangeChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: AreaRangeChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: AreaRangeChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: AreaRangeChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: AreaRangeChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: AreaRangeChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: AreaRangeChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreaRangeChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'arearange';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n type AreamapChartProps as AreamapChartPropsPreact,\n type ChartType,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n AreamapChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { AreamapDataPointEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link AreamapChartComponent}.\n */\nexport interface AreamapChartProps\n extends WithoutPreactChartEventProps<AreamapChartPropsPreact>,\n AreamapChartEventProps {}\n\n/**\n * An Angular component that allows to visualize geographical data as polygons on a map.\n *\n * @example\n * ```html\n * <csdk-areamap-chart\n * [dataSet]=\"areamapChart.dataSet\"\n * [dataOptions]=\"areamapChart.dataOptions\"\n * [styleOptions]=\"areamapChart.styleOptions\"\n * (dataPointClick)=\"logArguments($event)\"\n * />\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-ecommerce';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n areamapChart = {\n dataSet: DM.DataSource,\n dataOptions: {\n geo: [DM.Country.Country],\n color: [measureFactory.sum(DM.Commerce.Revenue, 'Color by Revenue')],\n } as AreamapChartDataOptions,\n styleOptions: {\n mapType: 'world',\n } as AreamapStyleOptions,\n };\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-areamap-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-areamap-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n />\n `,\n})\nexport class AreamapChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: AreamapChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: AreamapChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: AreamapChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: AreamapChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: AreamapChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: AreamapChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!AreamapChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<AreamapDataPointEvent>();\n\n /** @internal */\n public chartType: ChartType = 'areamap';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type BarChartProps as BarChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link BarChartComponent}.\n */\nexport interface BarChartProps\n extends WithoutPreactChartEventProps<BarChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component representing categorical data with horizontal rectangular bars,\n * whose lengths are proportional to the values that they represent.\n *\n * @example\n * ```html\n * <csdk-bar-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-bar-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-bar-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class BarChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: BarChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: BarChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: BarChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: BarChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: BarChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: BarChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: BarChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BarChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'bar';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type BoxplotChartProps as BoxplotChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n BoxplotChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { BoxplotDataPointEvent, BoxplotDataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link BoxplotChartComponent}.\n */\nexport interface BoxplotChartProps\n extends WithoutPreactChartEventProps<BoxplotChartPropsPreact>,\n BoxplotChartEventProps {}\n\n/**\n * An Angular component representing data in a way that visually describes the distribution\n * variability, and center of a data set along an axis.\n *\n * @example\n * ```html\n * <csdk-boxplot-chart\n * [dataSet]=\"boxplotChart.dataSet\"\n * [dataOptions]=\"boxplotChart.dataOptions\"\n * [highlights]=\"boxplotChart.highlights\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport { filterFactory } from '@sisense/sdk-data';\nimport type { BoxplotChartDataOptions } from '@sisense/sdk-ui-angular';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n boxplotChart = {\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [DM.Admissions.TimeofStay],\n boxType: 'iqr',\n outliersEnabled: true,\n } as BoxplotChartDataOptions,\n highlights: [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])],\n };\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-boxplot-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-boxplot-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class BoxplotChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: BoxplotChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: BoxplotChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: BoxplotChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: BoxplotChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: BoxplotChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: BoxplotChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: BoxplotChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<BoxplotDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<BoxplotDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<BoxplotDataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'boxplot';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type CalendarHeatmapChartProps as CalendarHeatmapChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n CalendarHeatmapChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport {\n CalendarHeatmapDataPointEvent,\n CalendarHeatmapDataPointsEvent,\n} from '../../types/data-point';\n\n/**\n * Props of the {@link CalendarHeatmapChartComponent} component.\n */\nexport interface CalendarHeatmapChartProps\n extends WithoutPreactChartEventProps<CalendarHeatmapChartPropsPreact>,\n CalendarHeatmapChartEventProps {}\n\n/**\n * A component that visualizes values over days in a calendar-like view,\n * making it easy to identify daily patterns or anomalies\n *\n * @example\n * ```html\n * <csdk-calendar-heatmap-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"chart.highlights\"\n * [styleOptions]=\"chart.styleOptions\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-ecommerce';\nimport type { CalendarHeatmapChartProps } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n chart = {\n dataSet: DM.DataSource,\n dataOptions: {\n date: DM.Commerce.Date.Days,\n value: measureFactory.sum(DM.Commerce.Cost),\n },\n highlights: [\n filterFactory.dateRange(\n DM.Commerce.Date.Days,\n '2009-11-29',\n '2009-12-15'\n ),\n ],\n styleOptions: {\n viewType: 'quarter',\n },\n };\n}\n * ```\n * <img src=\"media://angular-calendar-heatmap-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-calendar-heatmap-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class CalendarHeatmapChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: CalendarHeatmapChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: CalendarHeatmapChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: CalendarHeatmapChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: CalendarHeatmapChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: CalendarHeatmapChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: CalendarHeatmapChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: CalendarHeatmapChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<CalendarHeatmapDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<CalendarHeatmapDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CalendarHeatmapChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<CalendarHeatmapDataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'calendar-heatmap';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ColumnChartProps as ColumnChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link ColumnChartComponent}.\n */\nexport interface ColumnChartProps\n extends WithoutPreactChartEventProps<ColumnChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component representing categorical data with vertical rectangular bars\n * whose heights are proportional to the values that they represent.\n *\n * @example\n * ```html\n * <csdk-column-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-column-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-column-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class ColumnChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: ColumnChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: ColumnChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ColumnChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ColumnChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: ColumnChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: ColumnChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ColumnChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ColumnChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'column';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type FunnelChartProps as FunnelChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link FunnelChartComponent}.\n */\nexport interface FunnelChartProps\n extends WithoutPreactChartEventProps<FunnelChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component representing data progressively decreasing in size or quantity through a funnel shape.\n *\n * @example\n * ```html\n * <csdk-funnel-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory, Filter } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-funnel-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-funnel-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class FunnelChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: FunnelChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: FunnelChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: FunnelChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: FunnelChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: FunnelChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: FunnelChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: FunnelChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FunnelChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'funnel';\n}\n","import { Component, Input } from '@angular/core';\nimport { type IndicatorChartProps as IndicatorChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n IndicatorChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\n\n/**\n * Props of the {@link IndicatorChartComponent}.\n */\nexport interface IndicatorChartProps\n extends WithoutPreactChartEventProps<IndicatorChartPropsPreact>,\n IndicatorChartEventProps {}\n\n/**\n * A component that provides various options for displaying one or two numeric values as a number, gauge or ticker.\n *\n * @example\n * ```html\n * <csdk-indicator-chart\n * [dataSet]=\"indicator.dataSet\"\n * [dataOptions]=\"indicator.dataOptions\"\n * [filters]=\"filters\"\n * [styleOptions]=\"indicator.styleOptions\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { IndicatorStyleOptions } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n indicator = {\n dataSet: DM.DataSource,\n dataOptions: {\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n secondary: [measureFactory.sum(DM.Admissions.Diagnosis_ID)],\n },\n styleOptions: {\n indicatorComponents: {\n title: {\n shouldBeShown: true,\n text: 'Total Cost_of_admission',\n },\n secondaryTitle: {\n text: 'Total Diagnosis_ID',\n },\n ticks: {\n shouldBeShown: true,\n },\n labels: {\n shouldBeShown: true,\n },\n },\n subtype: 'indicator/gauge',\n skin: 2,\n } as IndicatorStyleOptions,\n };\n\n}\n * ```\n * <img src=\"media://angular-indicator-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-indicator-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n />\n `,\n})\nexport class IndicatorChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: IndicatorChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: IndicatorChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: IndicatorChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: IndicatorChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: IndicatorChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: IndicatorChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!IndicatorChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: IndicatorChartProps['dataReady'];\n\n /** @internal */\n public chartType: ChartType = 'indicator';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type LineChartProps as LineChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link LineChartComponent}.\n */\nexport interface LineChartProps\n extends WithoutPreactChartEventProps<LineChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component displaying data as a series of points connected by a line. Used to show trends or changes over time.\n *\n * @example\n * ```html\n * <csdk-line-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory, Filter } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-line-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-line-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class LineChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: LineChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: LineChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: LineChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: LineChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: LineChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: LineChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: LineChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!LineChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'line';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type PieChartProps as PieChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link PieChartComponent}.\n */\nexport interface PieChartProps\n extends WithoutPreactChartEventProps<PieChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component representing data in a circular graph with the data shown as slices of a whole,\n * with each slice representing a proportion of the total.\n *\n * @example\n * ```html\n * <csdk-pie-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-pie-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-pie-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class PieChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: PieChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: PieChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: PieChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: PieChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: PieChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: PieChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: PieChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PieChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'pie';\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n PivotTable as PivotTablePreact,\n type PivotTableProps as PivotTablePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services';\nimport { ThemeService } from '../../services';\n\n/**\n * Props of the {@link PivotTableComponent}.\n */\nexport interface PivotTableProps extends PivotTablePropsPreact {}\n\n/**\n * Pivot Table with and pagination.\n *\n * @example\n * ```html\n * <csdk-pivot-table\n * [dataSet]=\"pivotTable.dataSet\"\n * [dataOptions]=\"pivotTable.dataOptions\"\n * [filters]=\"pivotTable.filters\"\n * [styleOptions]=\"pivotTable.styleOptions\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-ecommerce';\nimport type { PivotTableDataOptions } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n\n pivotTableDataOptions: PivotTableDataOptions = {\n rows: [\n { column: DM.Category.Category, includeSubTotals: true },\n { column: DM.Commerce.AgeRange, includeSubTotals: true },\n DM.Commerce.Condition,\n ],\n columns: [{ column: DM.Commerce.Gender, includeSubTotals: true }],\n values: [\n measureFactory.sum(DM.Commerce.Cost, 'Total Cost'),\n {\n column: measureFactory.sum(DM.Commerce.Revenue, 'Total Revenue'),\n totalsCalculation: 'sum',\n dataBars: true,\n },\n ],\n grandTotals: { title: 'Grand Total', rows: true, columns: true },\n };\n\n pivotTable = {\n dataSet: DM.DataSource,\n dataOptions: this.pivotTableDataOptions,\n filters: [filterFactory.members(DM.Commerce.Gender, ['Female', 'Male'])],\n styleOptions: { width: 1400, height: 600, rowsPerPage: 50 },\n };\n\n}\n * ```\n * <img src=\"media://angular-pivot-table-example.png\" width=\"800px\" />\n * @group Data Grids\n * @beta\n */\n@Component({\n selector: 'csdk-pivot-table',\n template,\n styles,\n})\nexport class PivotTableComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: PivotTableProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: PivotTableProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: PivotTableProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: PivotTableProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableProps.styleOptions}\n *\n * @category Representation\n */\n @Input()\n styleOptions: PivotTableProps['styleOptions'];\n\n private componentAdapter: ComponentAdapter<typeof PivotTablePreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(PivotTablePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): PivotTablePropsPreact {\n return {\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type PolarChartProps as PolarChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link PolarChartComponent}.\n */\nexport interface PolarChartProps\n extends WithoutPreactChartEventProps<PolarChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component comparing multiple categories/variables with a spacial perspective in a radial chart.\n *\n * @example\n * ```html\n * <csdk-polar-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-polar-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-polar-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class PolarChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: PolarChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: PolarChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: PolarChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: PolarChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: PolarChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: PolarChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: PolarChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PolarChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'polar';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ScatterChartProps as ScatterChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n ScatterChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { ScatterDataPointEvent, ScatterDataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link ScatterChartComponent}.\n */\nexport interface ScatterChartProps\n extends WithoutPreactChartEventProps<ScatterChartPropsPreact>,\n ScatterChartEventProps {}\n\n/**\n * A component displaying the distribution of two variables on an X-Axis, Y-Axis,\n * and two additional fields of data that are shown as colored circles scattered across the chart.\n *\n * **Point**: A field that for each of its members a scatter point is drawn. The maximum amount of data points is 500.\n *\n * **Size**: An optional field represented by the size of the circles.\n * If omitted, all scatter points are equal in size. If used, the circle sizes are relative to their values.\n *\n * @example\n * ```html\n * <csdk-scatter-chart\n * [dataSet]=\"scatter.dataSet\"\n * [dataOptions]=\"scatter.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n scatter = {\n dataSet: DM.DataSource,\n dataOptions: {\n x: DM.Admissions.Room_ID,\n y: measureFactory.sum(DM.Admissions.Cost_of_admission),\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-scatter-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-scatter-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class ScatterChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: ScatterChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: ScatterChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ScatterChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ScatterChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: ScatterChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: ScatterChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ScatterChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ScatterDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ScatterDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<ScatterDataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'scatter';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ScattermapChartProps as ScattermapChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n ScattermapChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { ScattermapDataPointEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link ScattermapChartComponent}.\n */\nexport interface ScattermapChartProps\n extends WithoutPreactChartEventProps<ScattermapChartPropsPreact>,\n ScattermapChartEventProps {}\n\n/**\n * An Angular component that allows to visualize geographical data as data points on a map.\n *\n * @example\n * ```html\n * <csdk-scattermap-chart\n * [dataSet]=\"scattermapChart.dataSet\"\n * [dataOptions]=\"scattermapChart.dataOptions\"\n * [styleOptions]=\"scattermapChart.styleOptions\"\n * (dataPointClick)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport type { ScattermapStyleOptions,ScattermapChartDataOptions } from '@sisense/sdk-ui-angular';\nimport * as DM from '../../assets/sample-ecommerce';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n scattermapChart = {\n dataSet: DM.DataSource,\n dataOptions: {\n geo: [DM.Country.Country],\n size: measureFactory.sum(DM.Commerce.Cost, 'Size by Cost'),\n colorBy: {\n column: measureFactory.sum(DM.Commerce.Revenue, 'Color by Revenue'),\n color: 'green',\n },\n details: DM.Category.Category,\n } as ScattermapChartDataOptions,\n styleOptions: {\n markers: {\n fill: 'hollow-bold',\n },\n } as ScattermapStyleOptions,\n };\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-scattermap-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-scattermap-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n />\n `,\n})\nexport class ScattermapChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: ScattermapChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: ScattermapChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ScattermapChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ScattermapChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: ScattermapChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ScattermapChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScattermapChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ScattermapDataPointEvent>();\n\n /** @internal */\n public chartType: ChartType = 'scattermap';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type SunburstChartProps as SunburstChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link SunburstChartComponent}.\n */\nexport interface SunburstChartProps\n extends WithoutPreactChartEventProps<SunburstChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component displaying hierarchical data in the form of nested slices.\n * This type of chart can be used instead of a pie chart for comparing a large number of categories and sub-categories.\n *\n * @example\n * ```html\n * <csdk-sunburst-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-sunburst-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-sunburst-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class SunburstChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: SunburstChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: SunburstChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: SunburstChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: SunburstChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: SunburstChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: SunburstChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: SunburstChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!SunburstChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'sunburst';\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n Table as TablePreact,\n type TableProps as TablePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { BaseChartEventProps, WithoutPreactChartEventProps } from '../../types';\n\n/**\n * Props of the {@link TableComponent}.\n */\nexport interface TableProps\n extends WithoutPreactChartEventProps<TablePropsPreact>,\n BaseChartEventProps {}\n/**\n * Table with aggregation and pagination.\n *\n * @example\n * ```html\n * <csdk-table [dataSet]=\"table.dataSet\" [dataOptions]=\"table.dataOptions\" [filters]=\"filters\" />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n table = {\n dataSet: DM.DataSource,\n dataOptions: {\n columns: [DM.Admissions.Patient_ID, measureFactory.sum(DM.Admissions.Cost_of_admission)],\n },\n };\n\n}\n * ```\n * <img src=\"media://angular-table-chart-example.png\" width=\"800px\" />\n * @group Data Grids\n */\n@Component({\n selector: 'csdk-table',\n template,\n styles,\n})\nexport class TableComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: TableProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: TableProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: TableProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.styleOptions}\n *\n * @category Representation\n */\n @Input()\n styleOptions: TableProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: TableProps['dataReady'];\n\n private componentAdapter: ComponentAdapter<typeof TablePreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(TablePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): TablePropsPreact {\n return {\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n styleOptions: this.styleOptions,\n onDataReady: this.dataReady,\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type TreemapChartProps as TreemapChartPropsPreact } from '@sisense/sdk-ui-preact';\n\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport {\n RegularChartEventProps,\n WithoutPreactChartEventProps,\n} from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointsEvent } from '../../types/data-point';\n\n/**\n * Props of the {@link TreemapChartComponent}.\n */\nexport interface TreemapChartProps\n extends WithoutPreactChartEventProps<TreemapChartPropsPreact>,\n RegularChartEventProps {}\n\n/**\n * A component displaying hierarchical data in the form of nested rectangles.\n * This type of chart can be used instead of a column chart for comparing a large number of categories and sub-categories.\n *\n * @example\n * ```html\n * <csdk-treemap-chart\n * [dataSet]=\"chart.dataSet\"\n * [dataOptions]=\"chart.dataOptions\"\n * [highlights]=\"filters\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport type { ChartType } from '@sisense/sdk-ui-angular';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n DM = DM;\n filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n chart = {\n chartType: 'column' as ChartType,\n dataSet: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n\n onBeforeRender(options: any) {\n console.log('beforeRender');\n console.log(options);\n return options;\n }\n\n logArguments(...args: any[]) {\n console.log(args);\n }\n}\n * ```\n * <img src=\"media://angular-treemap-chart-example.png\" width=\"800px\" />\n * @group Charts\n */\n@Component({\n selector: 'csdk-treemap-chart',\n template: `\n <csdk-chart\n [chartType]=\"chartType\"\n [dataSet]=\"dataSet\"\n [dataOptions]=\"dataOptions\"\n [filters]=\"filters\"\n [highlights]=\"highlights\"\n [styleOptions]=\"styleOptions\"\n [beforeRender]=\"beforeRender\"\n [dataReady]=\"dataReady\"\n (dataPointClick)=\"dataPointClick.emit($any($event))\"\n (dataPointContextMenu)=\"dataPointContextMenu.emit($any($event))\"\n (dataPointsSelect)=\"dataPointsSelect.emit($any($event))\"\n />\n `,\n})\nexport class TreemapChartComponent {\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.dataSet}\n *\n * @category Data\n */\n @Input()\n dataSet: TreemapChartProps['dataSet'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: TreemapChartProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: TreemapChartProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: TreemapChartProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.styleOptions}\n *\n * @category Chart\n */\n @Input()\n styleOptions: TreemapChartProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: TreemapChartProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: TreemapChartProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TreemapChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'treemap';\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n ContextMenu as ContextMenuPreact,\n type ContextMenuProps,\n createWrapperElement,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootContentId,\n rootId,\n styles,\n templateWithContent,\n} from '../component-wrapper-helpers';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport type { ArgumentsAsObject } from '../types/utility-types';\n\n/**\n * Context Menu Component\n *\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-context-menu',\n template: templateWithContent,\n styles,\n})\nexport class ContextMenuComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * @internal\n */\n @ViewChild(rootContentId)\n preactContentRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ContextMenuProps.position}\n */\n @Input()\n position: ContextMenuProps['position'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ContextMenuProps.itemSections}\n */\n @Input()\n itemSections: ContextMenuProps['itemSections'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ContextMenuProps.closeContextMenu}\n */\n @Output()\n contextMenuClose = new EventEmitter<\n ArgumentsAsObject<ContextMenuProps['closeContextMenu'], []>\n >();\n\n private componentAdapter: ComponentAdapter<typeof ContextMenuPreact>;\n\n /**\n * Constructor for the `ContextMenuComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(ContextMenuPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): ContextMenuProps {\n return {\n position: this.position,\n itemSections: this.itemSections,\n closeContextMenu: () => this.contextMenuClose.emit(),\n children: createWrapperElement(this.preactContentRef.nativeElement),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n type DashboardConfig,\n type DashboardFiltersPanelConfig,\n Dashboard as DashboardPreact,\n type DashboardProps as DashboardPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createCustomWidgetsContextConnector,\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { translateToPreactDashboardProps } from '../../helpers/dashboard-props-preact-translator';\nimport { CustomWidgetsService } from '../../services/custom-widgets.service';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { WidgetProps } from '../widgets/widget.component';\n\n// Re-exports related types\nexport { DashboardConfig, DashboardFiltersPanelConfig };\n\n/**\n * Props of the {@link DashboardComponent}.\n */\nexport interface DashboardProps extends Omit<DashboardPropsPreact, 'widgets'> {\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.widgets}\n */\n widgets: WidgetProps[];\n}\n\n/**\n * An Angular component used for easily rendering a dashboard created in Sisense Fusion.\n *\n * **Note:** Dashboard and Widget extensions based on JS scripts and add-ons in Fusion – for example, Blox and Jump To Dashboard – are not supported.\n *\n * @example\n * ```html\n * <csdk-dashboard\n * *ngIf=\"dashboard\"\n * [title]=\"dashboard.title\"\n * [layoutOptions]=\"dashboard.layoutOptions\"\n * [widgets]=\"dashboard.widgets\"\n * [filters]=\"dashboard.filters\"\n * [defaultDataSource]=\"dashboard.defaultDataSource\"\n * [widgetsOptions]=\"dashboard.widgetsOptions\"\n * />\n * ```\n *\n * ```ts\n * import { Component } from '@angular/core';\n * import {\n * type DashboardProps,\n * DashboardService,\n * dashboardModelTranslator,\n * } from '@sisense/sdk-ui-angular';\n *\n * @Component({\n * selector: 'app-dashboard',\n * templateUrl: './dashboard.component.html',\n * styleUrls: ['./dashboard.component.scss'],\n * })\n * export class DashboardComponent {\n *\n * dashboard: DashboardProps | null = null;\n *\n * constructor(private dashboardService: DashboardService) {}\n *\n * async ngOnInit(): Promise<void> {\n * const dashboardModel = await this.dashboardService.getDashboardModel('your-dashboard-oid', { includeWidgets: true, includeFilters: true });\n * this.dashboard = dashboardModelTranslator.toDashboardProps(dashboardModel);\n * }\n * ```\n *\n * To learn more about this and related dashboard components,\n * see [Embedded Dashboards](/guides/sdk/guides/dashboards/index.html).\n * @group Dashboards\n */\n@Component({\n selector: 'csdk-dashboard',\n template,\n styles,\n})\nexport class DashboardComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.title}\n */\n @Input()\n title: DashboardProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.layoutOptions}\n */\n @Input()\n layoutOptions: DashboardProps['layoutOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.config}\n */\n @Input()\n config: DashboardProps['config'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.widgets}\n */\n @Input()\n widgets!: DashboardProps['widgets'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.filters}\n */\n @Input()\n filters: DashboardProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.defaultDataSource}\n */\n @Input()\n defaultDataSource: DashboardProps['defaultDataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.widgetsOptions}\n */\n @Input()\n widgetsOptions: DashboardProps['widgetsOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.styleOptions}\n */\n @Input()\n styleOptions: DashboardProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.tabbersOptions}\n *\n * @internal\n */\n @Input()\n tabbersOptions: DashboardProps['tabbersOptions'];\n\n private componentAdapter: ComponentAdapter<typeof DashboardPreact>;\n\n /**\n * Constructor for the `Dashboard` component.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n /**\n * Custom widgets service\n *\n * @internal\n * @category Constructor\n */\n public customWidgetsService: CustomWidgetsService,\n ) {\n this.componentAdapter = new ComponentAdapter(DashboardPreact, [\n createCustomWidgetsContextConnector(this.customWidgetsService),\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DashboardPropsPreact {\n return translateToPreactDashboardProps({\n title: this.title,\n layoutOptions: this.layoutOptions,\n config: this.config,\n widgets: this.widgets,\n filters: this.filters,\n defaultDataSource: this.defaultDataSource,\n widgetsOptions: this.widgetsOptions,\n styleOptions: this.styleOptions,\n tabbersOptions: this.tabbersOptions,\n });\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n type DashboardByIdConfig,\n DashboardById as DashboardByIdPreact,\n type DashboardByIdProps as DashboardByIdPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createCustomWidgetsContextConnector,\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { CustomWidgetsService } from '../../services/custom-widgets.service';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\n\n// Re-exports related types\nexport { DashboardByIdConfig };\n\n/**\n * Props of the {@link DashboardByIdComponent}.\n */\nexport interface DashboardByIdProps extends DashboardByIdPropsPreact {}\n\n/**\n * An Angular component used for easily rendering a dashboard by its ID created in a Sisense Fusion instance.\n *\n * **Note:** Dashboard and Widget extensions based on JS scripts and add-ons in Fusion – for example, Blox and Jump To Dashboard – are not supported.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n * @Component({\n * selector: 'code-example',\n * template: `\n * <div style=\"width: 100vw;\">\n * <csdk-dashboard-by-id *ngIf=\"dashboardOid\" [dashboardOid]=\"dashboardOid\" />\n * </div>\n * `,\n * })\n * export class CodeExampleComponent {\n * dashboardOid = 'your-dashboard-oid';\n * }\n * ```\n *\n * To learn more about this and related dashboard components,\n * see [Embedded Dashboards](/guides/sdk/guides/dashboards/index.html).\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Component({\n selector: 'csdk-dashboard-by-id',\n template,\n styles,\n})\nexport class DashboardByIdComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardByIdProps.dashboardOid}\n */\n @Input()\n dashboardOid!: DashboardByIdProps['dashboardOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardByIdProps.config}\n */\n @Input()\n config: DashboardByIdProps['config'];\n\n private componentAdapter: ComponentAdapter<typeof DashboardByIdPreact>;\n\n /**\n * Constructor for the `DashboardById` component.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n /**\n * Custom widgets service\n *\n * @internal\n * @category Constructor\n */\n public customWidgetsService: CustomWidgetsService,\n ) {\n this.componentAdapter = new ComponentAdapter(DashboardByIdPreact, [\n createCustomWidgetsContextConnector(this.customWidgetsService),\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DashboardByIdPropsPreact {\n return {\n dashboardOid: this.dashboardOid,\n config: this.config,\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n DrilldownBreadcrumbs as DrilldownBreadcrumbsPreact,\n type DrilldownBreadcrumbsProps as DrilldownBreadcrumbsPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../component-wrapper-helpers';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../types/utility-types';\n\n/**\n * Props of the {@link DrilldownBreadcrumbsComponent}.\n */\nexport interface DrilldownBreadcrumbsProps\n extends Omit<DrilldownBreadcrumbsPropsPreact, 'clearDrilldownSelections'> {\n drilldownSelectionsClear?: () => void;\n drilldownSelectionsSlice?: (event: {\n i: Arguments<DrilldownBreadcrumbsPropsPreact['sliceDrilldownSelections']>[0];\n }) => void;\n}\n\n/**\n * Drilldown Breadcrumbs Component\n *\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-drilldown-breadcrumbs',\n template,\n styles,\n})\nexport class DrilldownBreadcrumbsComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.filtersDisplayValues}\n *\n * @category Widget\n */\n @Input()\n filtersDisplayValues!: DrilldownBreadcrumbsProps['filtersDisplayValues'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.currentDimension}\n *\n * @category Widget\n */\n @Input()\n currentDimension!: DrilldownBreadcrumbsProps['currentDimension'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.clearDrilldownSelections}\n *\n * @category Widget\n */\n @Output()\n drilldownSelectionsClear = new EventEmitter<\n ArgumentsAsObject<DrilldownBreadcrumbsPropsPreact['clearDrilldownSelections'], []>\n >();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownBreadcrumbsProps.sliceDrilldownSelections}\n *\n * @category Widget\n */\n @Output()\n drilldownSelectionsSlice = new EventEmitter<\n Arguments<DrilldownBreadcrumbsPropsPreact['sliceDrilldownSelections']>[0]\n >();\n\n private componentAdapter: ComponentAdapter<typeof DrilldownBreadcrumbsPreact>;\n\n /**\n * Constructor for the `DrilldownBreadcrumbsComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(DrilldownBreadcrumbsPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DrilldownBreadcrumbsPropsPreact {\n return {\n filtersDisplayValues: this.filtersDisplayValues,\n currentDimension: this.currentDimension,\n clearDrilldownSelections: () => this.drilldownSelectionsClear.emit(),\n sliceDrilldownSelections: (\n i: Arguments<DrilldownBreadcrumbsProps['sliceDrilldownSelections']>[0],\n ) => this.drilldownSelectionsSlice.emit(i),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n CriteriaFilterTile as CriteriaFilterTilePreact,\n type CriteriaFilterTileProps as CriteriaFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\n\n/**\n * Props of the {@link CriteriaFilterTileComponent}.\n */\nexport interface CriteriaFilterTileProps extends Omit<CriteriaFilterTilePropsPreact, 'onUpdate'> {\n filterChange?: (filter: Arguments<CriteriaFilterTilePropsPreact['onUpdate']>[0]) => void;\n}\n\n/**\n * Criteria Filter Tile Component\n *\n * @example\n * ```html\n * <csdk-criteria-filter-tile\n * [title]=\"criteriaFilterTileProps.title\"\n * [filter]=\"criteriaFilterTileProps.filter\"\n * (filterChange)=\"criteriaFilterTileProps.setFilter($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { Filter, filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-filters',\n * templateUrl: './filters.component.html',\n * styleUrls: ['./filters.component.scss'],\n * })\n * export class FiltersComponent {\n * DM = DM;\n * title: 'Room Number',\n * filter: filterFactory.lessThan(DM.Rooms.Room_number, 200) ,\n * setFilter({ filter }: { filter: Filter | null }) {\n * console.log(filter);\n * if (filter) {\n * this.filter = filter ;\n * }\n * },\n * }\n * ```\n * <img src=\"media://angular-criteria-filter-tile-example.png\" width=\"400px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-criteria-filter-tile',\n template,\n styles,\n})\nexport class CriteriaFilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.title}\n */\n @Input()\n title!: CriteriaFilterTileProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.filter}\n */\n @Input()\n filter!: CriteriaFilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.arrangement}\n */\n @Input()\n arrangement: CriteriaFilterTileProps['arrangement'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.measures}\n */\n @Input()\n measures: CriteriaFilterTileProps['measures'];\n\n /** @internal */\n @Input()\n tileDesignOptions: CriteriaFilterTileProps['tileDesignOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CriteriaFilterTileProps.onUpdate}\n */\n @Output()\n filterChange = new EventEmitter<\n ArgumentsAsObject<CriteriaFilterTilePropsPreact['onUpdate'], ['filter']>\n >();\n\n private componentAdapter: ComponentAdapter<typeof CriteriaFilterTilePreact>;\n\n /**\n * Constructor for the `CriteriaFilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(CriteriaFilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): CriteriaFilterTilePropsPreact {\n return {\n title: this.title,\n filter: this.filter,\n arrangement: this.arrangement,\n measures: this.measures,\n tileDesignOptions: this.tileDesignOptions,\n onUpdate: (...[filter]: Arguments<CriteriaFilterTilePropsPreact['onUpdate']>) =>\n this.filterChange.emit({ filter }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n DateRangeFilterTile as DateRangeFilterTilePreact,\n type DateRangeFilterTileProps as DateRangeFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\n\n/**\n * Props of the {@link DateRangeFilterTileComponent}.\n */\nexport interface DateRangeFilterTileProps extends Omit<DateRangeFilterTilePropsPreact, 'onChange'> {\n filterChange?: (filter: Arguments<DateRangeFilterTilePropsPreact['onChange']>[0]) => void;\n}\n\n/**\n * Date Range Filter Tile Component\n *\n * @example\n * ```html\n * <csdk-date-range-filter-tile\n * [title]=\"dateRangeFilterTileProps.title\"\n * [attribute]=\"dateRangeFilterTileProps.attribute\"\n * [filter]=\"dateRangeFilterTileProps.filter\"\n * (filterChange)=\"dateRangeFilterTileProps.setFilter($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { Filter, filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-filters',\n * templateUrl: './filters.component.html',\n * styleUrls: ['./filters.component.scss'],\n * })\n * export class FiltersComponent {\n * DM = DM;\n\n * dateRangeFilterTileProps = {\n * title: 'Range Filter',\n * attribute: DM.ER.Date.Years,\n * filter: filterFactory.dateRange(DM.ER.Date.Years),\n * setFilter({ filter }: { filter: Filter | null }) {\n * console.log(filter);\n * if (filter) {\n * this.filter = filter;\n * }\n * },\n * };\n * }\n * ```\n * <img src=\"media://angular-date-range-filter-tile-example.png\" width=\"600px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-date-range-filter-tile',\n template,\n styles,\n})\nexport class DateRangeFilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.title}\n */\n @Input()\n title!: DateRangeFilterTileProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.attribute}\n */\n @Input()\n attribute!: DateRangeFilterTileProps['attribute'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.dataSource}\n */\n @Input()\n dataSource: DateRangeFilterTileProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.filter}\n */\n @Input()\n filter!: DateRangeFilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.earliestDate}\n */\n @Input()\n earliestDate: DateRangeFilterTileProps['earliestDate'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.lastDate}\n */\n @Input()\n lastDate: DateRangeFilterTileProps['lastDate'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DateRangeFilterTileProps.onChange}\n */\n @Output()\n filterChange = new EventEmitter<\n ArgumentsAsObject<DateRangeFilterTilePropsPreact['onChange'], ['filter']>\n >();\n\n private componentAdapter: ComponentAdapter<typeof DateRangeFilterTilePreact>;\n\n /**\n * Constructor for the `DateRangeFilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(DateRangeFilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DateRangeFilterTilePropsPreact {\n return {\n title: this.title,\n attribute: this.attribute,\n dataSource: this.dataSource,\n filter: this.filter,\n earliestDate: this.earliestDate,\n lastDate: this.lastDate,\n onChange: (...[filter]: Arguments<DateRangeFilterTilePropsPreact['onChange']>) =>\n this.filterChange.emit({ filter }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { EventEmitter } from '@angular/core';\n\n/**\n * An extended version of Angular's `EventEmitter` that tracks\n * whether any listeners (subscribers) are attached.\n *\n * Useful when you need to know if an `@Output()` is being observed\n * in the template (i.e., bound with `(event)=\"...\"`).\n *\n * @template T - The type of values emitted by the EventEmitter.\n */\nexport class EventEmitterWithHasListeners<T> extends EventEmitter<T> {\n /**\n * Indicates whether the EventEmitter has at least one active subscriber.\n */\n hasListeners = false;\n\n /**\n * Overrides the default `subscribe()` method to set `hasListeners` to true\n * when a new subscriber is added.\n *\n * @param args - The arguments passed to the `subscribe()` method.\n * @returns A subscription object used to unsubscribe from the event.\n */\n override subscribe(\n ...args: Parameters<EventEmitter<T>['subscribe']>\n ): ReturnType<EventEmitter<T>['subscribe']> {\n this.hasListeners = true;\n return super.subscribe(...args);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n FilterTile as FilterTilePreact,\n type FilterTileProps as FilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { EventEmitterWithHasListeners } from '../../helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type {\n Arguments,\n BaseFilterTileEventProps,\n FilterChangeEvent,\n FilterEditEvent,\n} from '../../types';\n\n/**\n * Props of the {@link FilterTileComponent}.\n */\nexport interface FilterTileProps\n extends Omit<FilterTilePropsPreact, 'onChange' | 'onEdit' | 'onDelete'>,\n BaseFilterTileEventProps {}\n\n/**\n * UI component that renders a filter tile based on filter type\n *\n * @example\n * Here’s how to render a filter model as a filter tile.\n *\n * ```html\n<!--Component HTML template in example.component.html-->\n<csdk-filter-tile\n [filter]=\"filterTileProps.filter\"\n (filterChange)=\"filterTileProps.filterChange($event)\"\n/>\n * ```\n *\n * ```ts\n// Component behavior in example.component.ts\nimport { Component } from '@angular/core';\nimport { type FilterTileProps } from '@sisense/sdk-ui-angular';\nimport { filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n filterTileProps: FilterTileProps = {\n filter: filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),\n filterChange({ filter }) {\n if (filter) {\n this.filter = filter;\n }\n },\n };\n}\n * ```\n * <img src=\"media://angular-member-filter-tile-example.png\" width=\"225px\" />\n * @group Filter Tiles\n * @shortDescription Facade component rendering a filter tile based on filter type\n */\n@Component({\n selector: 'csdk-filter-tile',\n template,\n styles,\n})\nexport class FilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FilterTileProps.filter}\n */\n @Input()\n filter!: FilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FilterTileProps.defaultDataSource}\n */\n @Input()\n defaultDataSource: FilterTileProps['defaultDataSource'];\n\n /**\n * {@inheritDoc FilterTileProps.filterChange}\n */\n @Output()\n filterChange = new EventEmitter<FilterChangeEvent>();\n\n /**\n * {@inheritDoc FilterTileProps.filterEdit}\n */\n @Output()\n filterEdit: EventEmitter<FilterEditEvent> = new EventEmitterWithHasListeners<FilterEditEvent>();\n\n /**\n * {@inheritDoc FilterTileProps.filterDelete}\n */\n @Output()\n filterDelete: EventEmitter<void> = new EventEmitterWithHasListeners();\n\n private componentAdapter: ComponentAdapter<typeof FilterTilePreact>;\n\n /**\n * Constructor for the `FilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(FilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): FilterTilePropsPreact {\n const hasFilterEditListeners = (this.filterEdit as EventEmitterWithHasListeners<unknown>)\n .hasListeners;\n const hasFilterDeleteListeners = (this.filterDelete as EventEmitterWithHasListeners<unknown>)\n .hasListeners;\n\n return {\n filter: this.filter,\n defaultDataSource: this.defaultDataSource,\n onChange: (...[filter]: Arguments<FilterTilePropsPreact['onChange']>) =>\n this.filterChange.emit({ filter }),\n ...(hasFilterEditListeners && {\n onEdit: (...[levelIndex]: Arguments<FilterTilePropsPreact['onEdit']>) =>\n this.filterEdit.emit({ levelIndex }),\n }),\n ...(hasFilterDeleteListeners && { onDelete: () => this.filterDelete.emit() }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n type FiltersPanelConfig,\n FiltersPanel as FiltersPanelPreact,\n type FiltersPanelProps as FiltersPanelPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, FiltersPanelChangeEvent } from '../../types';\n\n/** Reexport related types */\nexport type { FiltersPanelConfig };\n\n/**\n * Props of the {@link FiltersPanelComponent}.\n */\nexport interface FiltersPanelProps extends Omit<FiltersPanelPropsPreact, 'onFiltersChange'> {\n /**\n * Callback to handle changes in filters\n */\n filtersChange?: (event: FiltersPanelChangeEvent) => void;\n}\n\n/**\n * Filters panel component that renders a list of filter tiles\n *\n * @example\n * Here's how to render a filters panel with a set of filters.\n *\n * ```html\n<!--Component HTML template in example.component.html-->\n<csdk-filters-panel\n [filters]=\"filtersPanelProps.filters\"\n [defaultDataSource]=\"filtersPanelProps.defaultDataSource\"\n (filtersChange)=\"filtersPanelProps.filtersChange($event)\"\n/>\n * ```\n *\n * ```ts\n// Component behavior in example.component.ts\nimport { Component } from '@angular/core';\nimport { type FiltersPanelProps } from '@sisense/sdk-ui-angular';\nimport { filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-healthcare-model';\n\n@Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n filtersPanelProps: FiltersPanelProps = {\n filters: [\n filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),\n filterFactory.members(DM.ER.Departments.Department, ['Cardiology']),\n ],\n defaultDataSource: DM.DataSource,\n filtersChange({ filters }) {\n this.filtersPanelProps.filters = filters;\n },\n };\n}\n * ```\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-filters-panel',\n template,\n styles,\n})\nexport class FiltersPanelComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FiltersPanelProps.filters}\n */\n @Input()\n filters!: FiltersPanelProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FiltersPanelProps.defaultDataSource}\n */\n @Input()\n defaultDataSource: FiltersPanelProps['defaultDataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FiltersPanelProps.dataSources}\n *\n * @internal\n */\n @Input()\n dataSources: FiltersPanelProps['dataSources'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!FiltersPanelProps.config}\n */\n @Input()\n config: FiltersPanelProps['config'];\n\n /**\n * {@inheritDoc FiltersPanelProps.filtersChange}\n */\n @Output()\n filtersChange = new EventEmitter<FiltersPanelChangeEvent>();\n\n private componentAdapter: ComponentAdapter<typeof FiltersPanelPreact>;\n\n /**\n * Constructor for the `FiltersPanelComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(FiltersPanelPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): FiltersPanelPropsPreact {\n return {\n filters: this.filters,\n defaultDataSource: this.defaultDataSource,\n dataSources: this.dataSources,\n config: this.config,\n onFiltersChange: (...[filters]: Arguments<FiltersPanelPropsPreact['onFiltersChange']>) =>\n this.filtersChange.emit({ filters }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n MemberFilterTile as MemberFilterTilePreact,\n type MemberFilterTileProps as MemberFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\n\n/**\n * Props of the {@link MemberFilterTileComponent}.\n */\nexport interface MemberFilterTileProps extends Omit<MemberFilterTilePropsPreact, 'onChange'> {\n filterChange?: (filter: Arguments<MemberFilterTilePropsPreact['onChange']>[0]) => void;\n}\n\n/**\n * Member Filter Tile Component\n *\n * @example\n * ```html\n * <csdk-member-filter-tile\n * title=\"Years Filter\"\n * [attribute]=\"DM.ER.Date.Years\"\n * [filter]=\"memberFilterTileProps.yearFilter\"\n * (filterChange)=\"memberFilterTileProps.setYearFilter($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { Filter, filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-filters',\n * templateUrl: './filters.component.html',\n * styleUrls: ['./filters.component.scss'],\n * })\n * export class FiltersComponent {\n * DM = DM;\n * memberFilterTileProps = {\n * yearFilter: filterFactory.members(DM.ER.Date.Years, ['2013-01-01T00:00:00']),\n * setYearFilter({ filter }: { filter: Filter | null }) {\n * if (filter) {\n * this.yearFilter = filter;\n * }\n * },\n * };\n * }\n * ```\n * <img src=\"media://angular-member-filter-tile-example.png\" width=\"225px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-member-filter-tile',\n template,\n styles,\n})\nexport class MemberFilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.title}\n */\n @Input()\n title!: MemberFilterTileProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.dataSource}\n */\n @Input()\n dataSource: MemberFilterTileProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.attribute}\n */\n @Input()\n attribute!: MemberFilterTileProps['attribute'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.filter}\n */\n @Input()\n filter!: MemberFilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!MemberFilterTileProps.onChange}\n */\n @Output()\n filterChange = new EventEmitter<\n ArgumentsAsObject<MemberFilterTilePropsPreact['onChange'], ['filter']>\n >();\n\n private componentAdapter: ComponentAdapter<typeof MemberFilterTilePreact>;\n\n /**\n * Constructor for the `MemberFilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(MemberFilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): MemberFilterTilePropsPreact {\n return {\n title: this.title,\n dataSource: this.dataSource,\n attribute: this.attribute,\n filter: this.filter,\n onChange: (...[filter]: Arguments<MemberFilterTilePropsPreact['onChange']>) =>\n this.filterChange.emit({ filter }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n RelativeDateFilterTile as RelativeDateFilterTilePreact,\n type RelativeDateFilterTileProps as RelativeDateFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\n\n/**\n * Props of the {@link RelativeDateFilterTileComponent}.\n */\nexport interface RelativeDateFilterTileProps\n extends Omit<RelativeDateFilterTilePropsPreact, 'onUpdate'> {\n filterChange?: (filter: Arguments<RelativeDateFilterTilePropsPreact['onUpdate']>[0]) => void;\n}\n\n/**\n * Relative Date Filter Tile Component\n *\n * @example\n * ```html\n * <csdk-relative-date-filter-tile\n * [title]=\"relativeDateFilterTileProps.title\"\n * [arrangement]=\"relativeDateFilterTileProps.arrangement\"\n * [filter]=\"relativeDateFilterTileProps.filter\"\n * (filterChange)=\"relativeDateFilterTileProps.setFilter($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { Filter, filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-filters',\n * templateUrl: './filters.component.html',\n * styleUrls: ['./filters.component.scss'],\n * })\n * export class FiltersComponent {\n * DM = DM;\n *\n * relativeDateFilterTileProps = {\n * title: 'Relative Date Filter',\n * arrangement: 'vertical',\n * filter: filterFactory.dateRelativeTo(DM.ER.Date.Days, 0, 150),\n * setFilter({ filter }: { filter: Filter | null }) {\n * console.log(filter);\n * if (filter) {\n * this.filter = filter;\n * }\n * },\n * };\n * }\n * ```\n * <img src=\"media://angular-relative-date-filter-tile-example.png\" width=\"600px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-relative-date-filter-tile',\n template,\n styles,\n})\nexport class RelativeDateFilterTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.title}\n */\n @Input()\n title!: RelativeDateFilterTileProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.filter}\n */\n @Input()\n filter!: RelativeDateFilterTileProps['filter'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.arrangement}\n */\n @Input()\n arrangement: RelativeDateFilterTileProps['arrangement'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.limit}\n */\n @Input()\n limit: RelativeDateFilterTileProps['limit'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!RelativeDateFilterTileProps.onUpdate}\n */\n @Output()\n filterChange = new EventEmitter<\n ArgumentsAsObject<RelativeDateFilterTilePropsPreact['onUpdate'], ['filter']>\n >();\n\n private componentAdapter: ComponentAdapter<typeof RelativeDateFilterTilePreact>;\n\n /**\n * Constructor for the `RelativeDateFilterTileComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(RelativeDateFilterTilePreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): RelativeDateFilterTilePropsPreact {\n return {\n title: this.title,\n filter: this.filter,\n arrangement: this.arrangement,\n limit: this.limit,\n onUpdate: (...[filter]: Arguments<RelativeDateFilterTilePropsPreact['onUpdate']>) =>\n this.filterChange.emit({ filter }),\n };\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ChartWidget as ChartWidgetPreact,\n type ChartWidgetProps as ChartWidgetPropsPreact,\n ComponentAdapter,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { ChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport {\n ChartDataPointClickEvent,\n ChartDataPointContextMenuEvent,\n ChartDataPointsEvent,\n} from '../../types/data-point';\nimport type { Arguments } from '../../types/utility-types';\n\n/**\n * Props of the {@link ChartWidgetComponent}.\n */\nexport interface ChartWidgetProps\n extends WithoutPreactChartEventProps<ChartWidgetPropsPreact>,\n ChartEventProps {}\n\n/**\n * The Chart Widget component extending {@link ChartComponent} to support widget style options.\n *\n * @example\n * ```html\n * <csdk-chart-widget\n * [chartType]=\"chartWidget.chartType\"\n * [dataSource]=\"chartWidget.dataSource\"\n * [dataOptions]=\"chartWidget.dataOptions\"\n * [highlights]=\"filters\"\n * [title]=\"chartWidget.title\"\n * [description]=\"chartWidget.description\"\n * [beforeRender]=\"onBeforeRender\"\n * (dataPointClick)=\"logArguments($event)\"\n * (dataPointContextMenu)=\"logArguments($event)\"\n * (dataPointsSelect)=\"logArguments($event)\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { ChartType } from '@sisense/sdk-ui-angular';\n * import { filterFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-widgets',\n * templateUrl: './widgets.component.html',\n * styleUrls: ['./widgets.component.scss'],\n * })\n * export class WidgetsComponent {\n * filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n * chartWidget = {\n * chartType: 'column' as ChartType,\n * dataSource: DM.DataSource,\n * dataOptions: {\n * category: [DM.Divisions.Divison_name],\n * value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n * breakBy: [],\n * },\n * title: 'Chart Title',\n * description: 'Chart Description',\n * };\n * logArguments(...args: any[]) {\n * console.log(args);\n * }\n *\n * onBeforeRender(options: any) {\n * console.log('beforeRender');\n * console.log(options);\n * return options;\n * }\n *\n * }\n * ```\n * <img src=\"media://angular-chart-widget-example.png\" width=\"500px\" />\n * @group Dashboards\n */\n@Component({\n selector: 'csdk-chart-widget',\n template,\n styles,\n})\nexport class ChartWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.chartType}\n *\n * @category Chart\n */\n @Input()\n chartType!: ChartWidgetProps['chartType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.dataSource}\n *\n * @category Data\n */\n @Input()\n dataSource: ChartWidgetProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions!: ChartWidgetProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: ChartWidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: ChartWidgetProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.styleOptions}\n *\n * @category Widget\n */\n @Input()\n styleOptions: ChartWidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.drilldownOptions}\n *\n * @category Widget\n * @internal\n */\n @Input()\n drilldownOptions: ChartWidgetProps['drilldownOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: ChartWidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.description}\n *\n * @category Widget\n */\n @Input()\n description: ChartWidgetProps['description'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.highlightSelectionDisabled}\n *\n * @category Widget\n */\n @Input()\n highlightSelectionDisabled: ChartWidgetProps['highlightSelectionDisabled'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: ChartWidgetProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: ChartWidgetProps['dataReady'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ChartDataPointClickEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointContextMenuEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<ChartDataPointsEvent>();\n\n private componentAdapter: ComponentAdapter<typeof ChartWidgetPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(ChartWidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): ChartWidgetPropsPreact {\n return {\n chartType: this.chartType,\n dataSource: this.dataSource,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n drilldownOptions: this.drilldownOptions,\n title: this.title,\n description: this.description,\n highlightSelectionDisabled: this.highlightSelectionDisabled,\n onBeforeRender: this.beforeRender?.bind(this),\n onDataReady: this.dataReady?.bind(this),\n onDataPointClick: (\n ...[point, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointClick']>\n ) => this.dataPointClick.emit({ point, nativeEvent } as ChartDataPointClickEvent),\n onDataPointContextMenu: (\n ...[point, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointContextMenu']>\n ) => this.dataPointContextMenu.emit({ point, nativeEvent } as ChartDataPointContextMenuEvent),\n onDataPointsSelected: (\n ...[points, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointsSelected']>\n ) => this.dataPointsSelect.emit({ points, nativeEvent } as ChartDataPointsEvent),\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n type ComponentRenderer,\n type ContextMenuProps,\n createComponentRenderer,\n createWrapperElement,\n createWrapperElementHandler,\n type CustomDrilldownResult as CustomDrilldownResultBase,\n DrilldownBreadcrumbsProps,\n DrilldownWidget as DrilldownWidgetPreact,\n type DrilldownWidgetProps,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootContentId,\n rootId,\n styles,\n templateWithContent,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments } from '../../types/utility-types';\n\nexport type CustomDrilldownResult = CustomDrilldownResultBase & {\n breadcrumbsComponent?: {\n render: ComponentRenderer;\n };\n};\n\n/**\n * An Angular component designed to add drilldown functionality to any type of chart.\n *\n * It acts as a wrapper around a given chart component, enhancing it with drilldown capabilities\n *\n * The widget offers several features including:\n * - A context menu for initiating drilldown actions (can be provided as a custom component)\n * - Breadcrumbs that not only allow for drilldown selection slicing but also\n * provide an option to clear the selection (can be provided as a custom component)\n * - Filters specifically created for drilldown operation\n * - An option to navigate to the next drilldown dimension\n *\n * When an `initialDimension` is specified, the `drilldownDimension` will automatically inherit its value,\n * even before any points on the chart are selected.\n * This allows for complete control over the chart's dimensions to be handed over to the DrilldownWidget\n *\n * @example\n * An example of using the `csdk-drilldown-widget` component to plot a `csdk-column-chart`\n * over the Sample Healthcare data source hosted in a Sisense instance:\n * ```ts\n * // Component behavior in .component.ts\n * chart = {\n * dataOptions: {\n * category: [DM.Divisions.Divison_name],\n * value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n * breakBy: [],\n * },\n * dataPointContextMenu: ({ point, nativeEvent }: { point: any; nativeEvent: MouseEvent }) => {\n * this.drilldownResult?.onDataPointsSelected?.([point], nativeEvent);\n * this.drilldownResult?.onContextMenu({\n * left: nativeEvent.clientX,\n * top: nativeEvent.clientY,\n * });\n * }\n * }\n *\n * drilldownResult?: CustomDrilldownResult;\n *\n * drilldown = {\n * drilldownPaths: [DM.Patients.Gender, DM.Admissions.Surgical_Procedure],\n * initialDimension: DM.Divisions.Divison_name,\n * drilldownChange: (drilldownResult: CustomDrilldownResult) => {\n * this.drilldownResult = drilldownResult;\n * this.chart.dataOptions = {\n * ...this.chart.dataOptions,\n * category: [drilldownResult.drilldownDimension]\n * }\n * }\n * };\n * ```\n * ```html\n * <!--Component HTML template in .component.html-->\n * <csdk-drilldown-widget\n * [drilldownPaths]=\"drilldown.drilldownPaths\"\n * [initialDimension]=\"drilldown.initialDimension\"\n * (drilldownResultChange)=\"drilldown.drilldownChange($event)\"\n * >\n * <csdk-column-chart\n * [dataSet]=\"DM.DataSource\"\n * [dataOptions]=\"chart.dataOptions\"\n * [filters]=\"drilldownResult?.drilldownFilters || []\"\n * (dataPointContextMenu)=\"chart.dataPointContextMenu($event)\"\n * />\n * </csdk-drilldown-widget>\n * ```\n * <img src=\"media://angular-drilldown-widget-example.png\" width=\"800px\" />\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-drilldown-widget',\n template: templateWithContent,\n styles,\n})\nexport class DrilldownWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * @internal\n */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * @internal\n */\n @ViewChild(rootContentId)\n preactContentRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownWidgetProps.drilldownPaths}\n *\n * @category Widget\n */\n @Input()\n drilldownPaths: DrilldownWidgetProps['drilldownPaths'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownWidgetProps.initialDimension}\n *\n * @category Widget\n */\n @Input()\n initialDimension!: DrilldownWidgetProps['initialDimension'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownWidgetProps.config}\n *\n * @category Widget\n */\n @Input()\n config?: Omit<DrilldownWidgetProps['config'], 'breadcrumbsComponent | contextMenuComponent'> & {\n breadcrumbsComponent?: (drilldownBreadcrumbsProps: DrilldownBreadcrumbsProps) => HTMLDivElement;\n contextMenuComponent?: (contextMenuProps: ContextMenuProps) => HTMLDivElement;\n };\n\n /**\n * Drilldown result change handler callback\n *\n * @category Callbacks\n */\n @Output()\n drilldownResultChange = new EventEmitter<CustomDrilldownResult>();\n\n private componentAdapter: ComponentAdapter<typeof DrilldownWidgetPreact>;\n\n /**\n * Constructor for the `DrilldownWidgetComponent`.\n *\n * @param sisenseContextService - Sisense context service\n * @param themeService - Theme service\n */\n constructor(\n /**\n * Sisense context service\n *\n * @category Constructor\n */\n public sisenseContextService: SisenseContextService,\n /**\n * Theme service\n *\n * @category Constructor\n */\n public themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(DrilldownWidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): DrilldownWidgetProps {\n return {\n drilldownPaths: this.drilldownPaths,\n initialDimension: this.initialDimension,\n config: {\n ...this.config,\n ...(this.config?.breadcrumbsComponent && {\n breadcrumbsComponent: createWrapperElementHandler(this.config.breadcrumbsComponent),\n }),\n ...(this.config?.contextMenuComponent && {\n contextMenuComponent: (contextMenuProps: ContextMenuProps) =>\n createWrapperElement(this.config!.contextMenuComponent!(contextMenuProps)),\n }),\n },\n children: (customDrilldownResult: Arguments<DrilldownWidgetProps['children']>[0]) => {\n const { breadcrumbsComponent } = customDrilldownResult;\n this.drilldownResultChange.emit({\n ...customDrilldownResult,\n ...(breadcrumbsComponent && {\n breadcrumbsComponent: { render: createComponentRenderer(breadcrumbsComponent) },\n }),\n } as CustomDrilldownResult);\n return createWrapperElement(this.preactContentRef.nativeElement);\n },\n } as DrilldownWidgetProps;\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n PivotTableWidget as PivotTableWidgetPreact,\n type PivotTableWidgetProps as PivotTableWidgetPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services';\nimport { ThemeService } from '../../services';\n\n/**\n * Props of the {@link PivotTableWidgetComponent}.\n */\nexport interface PivotTableWidgetProps\n extends Omit<PivotTableWidgetPropsPreact, 'onDataPointClick' | 'onDataPointContextMenu'> {}\n\n/**\n * The Pivot Table Widget component extends the {@link PivotTableComponent} component to support widget features,\n * including a header, widget style options, and more.\n *\n * @example\n * ```html\n<csdk-pivot-table-widget\n [dataSource]=\"pivotProps.dataSource\"\n [dataOptions]=\"pivotProps.dataOptions\"\n [filters]=\"pivotProps.filters\"\n [styleOptions]=\"pivotProps.styleOptions\"\n [title]=\"pivotProps.title\"\n [description]=\"pivotProps.description\"\n/>\n * ```\n * ```ts\nimport { Component } from '@angular/core';\nimport { type PivotTableWidgetProps } from '@sisense/sdk-ui-angular';\nimport { measureFactory, filterFactory } from '@sisense/sdk-data';\nimport * as DM from '../../assets/sample-ecommerce';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.scss'],\n})\nexport class AnalyticsComponent {\n\n pivotProps: PivotTableWidgetProps = {\n dataSource: DM.DataSource,\n dataOptions: {\n rows: [\n { column: DM.Category.Category, includeSubTotals: true },\n { column: DM.Commerce.AgeRange, includeSubTotals: true },\n DM.Commerce.Condition,\n ],\n columns: [{ column: DM.Commerce.Gender, includeSubTotals: true }],\n values: [\n measureFactory.sum(DM.Commerce.Cost, 'Total Cost'),\n {\n column: measureFactory.sum(DM.Commerce.Revenue, 'Total Revenue'),\n totalsCalculation: 'sum',\n dataBars: true,\n },\n ],\n grandTotals: { title: 'Grand Total', rows: true, columns: true },\n },\n filters: [filterFactory.members(DM.Commerce.Gender, ['Female', 'Male'])],\n styleOptions: { width: 1400, height: 600, rowsPerPage: 25 },\n title: 'Pivot Table Widget',\n description: 'Pivot Table Widget Description',\n };\n}\n * ```\n * <img src=\"media://angular-pivot-table-widget-example.png\" width=\"800px\" />\n * @group Dashboards\n * @beta\n */\n@Component({\n selector: 'csdk-pivot-table-widget',\n template,\n styles,\n})\nexport class PivotTableWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.dataSource}\n *\n * @category Data\n */\n @Input()\n dataSource: PivotTableWidgetProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: PivotTableWidgetProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: PivotTableWidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: PivotTableWidgetProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.styleOptions}\n *\n * @category Representation\n */\n @Input()\n styleOptions: PivotTableWidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: PivotTableWidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!PivotTableWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n description: PivotTableWidgetProps['description'];\n\n private componentAdapter: ComponentAdapter<typeof PivotTableWidgetPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(PivotTableWidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): PivotTableWidgetPropsPreact {\n return {\n dataSource: this.dataSource,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n title: this.title,\n description: this.description,\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n TableWidget as TableWidgetPreact,\n type TableWidgetProps as TableWidgetPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\n\n/**\n * Props of the {@link TableWidgetComponent}.\n *\n * @internal\n */\nexport interface TableWidgetProps extends TableWidgetPropsPreact {}\n\n/**\n * The Table Widget component extending {@link TableComponent} component to support widget style options.\n *\n * @example\n * ```html\n * <csdk-table-widget\n * [dataSource]=\"table.dataSet\"\n * [dataOptions]=\"table.dataOptions\"\n * [filters]=\"filters\"\n * [title]=\"table.title\"\n * [description]=\"table.description\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n * import { ChartType } from '@sisense/sdk-ui-angular';\n * import { filterFactory, measureFactory } from '@sisense/sdk-data';\n * import * as DM from '../../assets/sample-healthcare-model';\n *\n * @Component({\n * selector: 'app-widgets',\n * templateUrl: './widgets.component.html',\n * styleUrls: ['./widgets.component.scss'],\n * })\n * export class WidgetsComponent {\n * filters = [filterFactory.members(DM.Divisions.Divison_name, ['Cardiology', 'Neurology'])];\n *\n * table = {\n * dataSet: DM.DataSource,\n * dataOptions: {\n * columns: [DM.Admissions.Patient_ID, measureFactory.sum(DM.Admissions.Cost_of_admission)],\n * }\n * title: 'Widget Title',\n * description: 'Widget Description',\n * };\n * }\n * ```\n * <img src=\"media://angular-table-widget-example.png\" width=\"800px\" />\n * @internal\n */\n@Component({\n selector: 'csdk-table-widget',\n template,\n styles,\n})\nexport class TableWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.dataSource}\n *\n * @category Data\n */\n @Input()\n dataSource: TableWidgetProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.dataOptions}\n *\n * @category Data\n */\n @Input()\n dataOptions!: TableWidgetProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: TableWidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.styleOptions}\n *\n * @category Representation\n */\n @Input()\n styleOptions: TableWidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: TableWidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!TableWidgetProps.description}\n *\n * @category Widget\n */\n @Input()\n description: TableWidgetProps['description'];\n\n private componentAdapter: ComponentAdapter<typeof TableWidgetPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(TableWidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps() {\n return {\n dataSource: this.dataSource,\n dataOptions: this.dataOptions,\n filters: this.filters,\n styleOptions: this.styleOptions,\n title: this.title,\n description: this.description,\n };\n }\n\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n type BeforeMenuOpenHandler,\n ComponentAdapter,\n CustomWidgetProps,\n type SoftUnion,\n TextWidgetProps as TextWidgetPropsPreact,\n Widget as WidgetPreact,\n type WidgetProps as WidgetPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { translateToPreactWidgetProps } from '../../helpers/widget-props-preact-translator';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { TextWidgetEventProps, WithoutPreactChartEventProps } from '../../types';\nimport {\n ChartDataPointClickEvent,\n ChartDataPointContextMenuEvent,\n ChartDataPointsEvent,\n} from '../../types/data-point';\nimport { ChartWidgetProps } from './chart-widget.component';\nimport { PivotTableWidgetProps } from './pivot-table-widget.component';\n\n/**\n * Props for the text widget.\n */\nexport interface TextWidgetProps\n extends WithoutPreactChartEventProps<TextWidgetPropsPreact>,\n TextWidgetEventProps {}\n\n/**\n * {@inheritDoc @sisense/sdk-ui!WithCommonWidgetProps}\n */\nexport type WithCommonWidgetProps<BaseWidget, Type> = BaseWidget & {\n /**\n * Unique identifier of the widget within the container component (dashboard)\n *\n */\n readonly id: string;\n /**\n * Widget type\n */\n widgetType: Type;\n /**\n * Optional handler function to process menu options before opening the context menu.\n *\n * @internal\n */\n beforeMenuOpen?: BeforeMenuOpenHandler;\n};\n\n/**\n * Props of the {@link WidgetComponent}.\n */\nexport type WidgetProps = SoftUnion<\n | WithCommonWidgetProps<ChartWidgetProps, 'chart'>\n | WithCommonWidgetProps<PivotTableWidgetProps, 'pivot'>\n | WithCommonWidgetProps<TextWidgetProps, 'text'>\n | WithCommonWidgetProps<CustomWidgetProps, 'custom'>\n>;\n\n/**\n * Facade component that renders a widget within a dashboard based on the widget type.\n *\n * @example\n * ```html\n<!--Component HTML template in example.component.html-->\n<csdk-widget\n [id]=\"widgetProps.id\"\n [title]=\"widgetProps.title\"\n [widgetType]=\"widgetProps.widgetType\"\n [chartType]=\"widgetProps.chartType\"\n [dataSource]=\"widgetProps.dataSource\"\n [dataOptions]=\"widgetProps.dataOptions\"\n/>\n * ```\n *\n * ```ts\n// Component behavior in example.component.ts\nimport { Component } from '@angular/core';\nimport { type WidgetProps } from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n widgetProps: WidgetProps = {\n id: 'widget-id',\n widgetType: 'chart',\n chartType: 'column',\n title: 'Widget Title',\n dataSource: DM.DataSource,\n dataOptions: {\n category: [DM.Divisions.Divison_name],\n value: [measureFactory.sum(DM.Admissions.Cost_of_admission)],\n breakBy: [],\n },\n };\n}\n * ```\n * <img src=\"media://angular-chart-widget-example.png\" width=\"500px\" />\n * @group Dashboards\n */\n@Component({\n selector: 'csdk-widget',\n template,\n styles,\n})\nexport class WidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * Unique identifier of the widget\n *\n * @category Widget\n */\n @Input()\n id!: WidgetProps['id'];\n\n /**\n * Widget type\n *\n * @category Widget\n */\n @Input()\n widgetType!: WidgetProps['widgetType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.chartType}\n *\n * @category Chart\n */\n @Input()\n chartType: WidgetProps['chartType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!CustomWidgetProps.customWidgetType}\n *\n * @category Widget\n */\n @Input()\n customWidgetType: WidgetProps['customWidgetType'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.dataSource}\n *\n * @category Data\n */\n @Input()\n dataSource: WidgetProps['dataSource'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.dataOptions}\n *\n * @category Chart\n */\n @Input()\n dataOptions: WidgetProps['dataOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: WidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: WidgetProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.styleOptions}\n *\n * @category Widget\n */\n @Input()\n styleOptions: WidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.drilldownOptions}\n *\n * @category Widget\n */\n @Input()\n drilldownOptions: WidgetProps['drilldownOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: WidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.description}\n *\n * @category Widget\n */\n @Input()\n description: WidgetProps['description'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.highlightSelectionDisabled}\n *\n * @category Widget\n * @internal\n */\n @Input()\n highlightSelectionDisabled: WidgetProps['highlightSelectionDisabled'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onBeforeRender}\n *\n * @category Callbacks\n */\n @Input()\n beforeRender: WidgetProps['beforeRender'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: WidgetProps['dataReady'];\n\n /**\n * Optional handler function to process menu options before opening the context menu.\n *\n * @category Callbacks\n * @internal\n */\n @Input()\n beforeMenuOpen: WidgetProps['beforeMenuOpen'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointClick}\n *\n * @category Callbacks\n */\n @Output()\n dataPointClick = new EventEmitter<ChartDataPointClickEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointContextMenuEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<ChartDataPointsEvent>();\n\n private componentAdapter: ComponentAdapter<typeof WidgetPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(WidgetPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n private getPreactComponentProps(): WidgetPropsPreact {\n return translateToPreactWidgetProps({\n id: this.id,\n widgetType: this.widgetType,\n chartType: this.chartType,\n customWidgetType: this.customWidgetType,\n dataSource: this.dataSource,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n drilldownOptions: this.drilldownOptions,\n title: this.title,\n description: this.description,\n highlightSelectionDisabled: this.highlightSelectionDisabled,\n beforeRender: this.beforeRender?.bind(this),\n dataReady: this.dataReady?.bind(this),\n beforeMenuOpen: this.beforeMenuOpen?.bind(this),\n dataPointClick: this.dataPointClick.emit.bind(this.dataPointClick),\n dataPointContextMenu: this.dataPointContextMenu.emit.bind(this.dataPointContextMenu),\n dataPointsSelect: this.dataPointsSelect.emit.bind(this.dataPointsSelect),\n } as WidgetProps);\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n ComponentAdapter,\n WidgetById as WidgetByIdPreact,\n type WidgetByIdProps as WidgetByIdPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n rootId,\n styles,\n template,\n} from '../../component-wrapper-helpers';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport { BaseChartEventProps, WithoutPreactChartEventProps } from '../../types';\n\n/**\n * Props of the {@link WidgetByIdComponent}.\n */\nexport interface WidgetByIdProps\n extends WithoutPreactChartEventProps<WidgetByIdPropsPreact>,\n BaseChartEventProps {}\n\n/**\n * The `WidgetById` component, which is a thin wrapper on {@link ChartWidgetComponent},\n * is used to render a widget created in a Sisense Fusion instance.\n *\n * To learn more about using Sisense Fusion Widgets in Compose SDK, see\n * [Sisense Fusion Widgets](https://developer.sisense.com/guides/sdk/guides/charts/guide-fusion-widgets.html).\n *\n * @example\n * ```html\n * <csdk-widget-by-id\n * [widgetOid]=\"widgetOid\"\n * [dashboardOid]=\"dashboardOid\"\n * [includeDashboardFilters]=\"true\"\n * />\n * ```\n * ```ts\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'app-widgets',\n * templateUrl: './widgets.component.html',\n * styleUrls: ['./widgets.component.scss'],\n * })\n * export class WidgetsComponent {\n * widgetOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';\n * dashboardOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';\n * }\n * ```\n * @group Fusion Assets\n * @fusionEmbed\n */\n@Component({\n selector: 'csdk-widget-by-id',\n template,\n styles,\n})\nexport class WidgetByIdComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.widgetOid}\n *\n * @category Widget\n */\n @Input()\n widgetOid!: WidgetByIdProps['widgetOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.dashboardOid}\n *\n * @category Widget\n */\n @Input()\n dashboardOid!: WidgetByIdProps['dashboardOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: WidgetByIdProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: WidgetByIdProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.filtersMergeStrategy}\n *\n * @category Data\n */\n @Input()\n filtersMergeStrategy: WidgetByIdProps['filtersMergeStrategy'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.includeDashboardFilters}\n *\n * @category Data\n */\n @Input()\n includeDashboardFilters: WidgetByIdProps['includeDashboardFilters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.title}\n *\n * @category Widget\n */\n @Input()\n title: WidgetByIdProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.description}\n *\n * @category Widget\n */\n @Input()\n description: WidgetByIdProps['description'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.styleOptions}\n *\n * @category Widget\n */\n @Input()\n styleOptions: WidgetByIdProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.highlightSelectionDisabled}\n *\n * @category Widget\n */\n @Input()\n highlightSelectionDisabled: WidgetByIdProps['highlightSelectionDisabled'];\n\n /** @internal */\n @Input()\n drilldownOptions: WidgetByIdProps['drilldownOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!WidgetByIdProps.onDataReady}\n *\n * @category Callbacks\n */\n @Input()\n dataReady: WidgetByIdProps['dataReady'];\n\n private componentAdapter: ComponentAdapter<typeof WidgetByIdPreact>;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(WidgetByIdPreact, [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ]);\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement, this.getPreactComponentProps());\n }\n }\n\n /** @internal */\n private getPreactComponentProps(): WidgetByIdPropsPreact {\n return {\n widgetOid: this.widgetOid,\n dashboardOid: this.dashboardOid,\n filters: this.filters,\n highlights: this.highlights,\n filtersMergeStrategy: this.filtersMergeStrategy,\n includeDashboardFilters: this.includeDashboardFilters,\n title: this.title,\n description: this.description,\n styleOptions: this.styleOptions,\n highlightSelectionDisabled: this.highlightSelectionDisabled,\n drilldownOptions: this.drilldownOptions,\n onDataReady: this.dataReady?.bind(this),\n };\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n AreaChartComponent,\n AreamapChartComponent,\n AreaRangeChartComponent,\n BarChartComponent,\n BoxplotChartComponent,\n CalendarHeatmapChartComponent,\n ChartComponent,\n ChartWidgetComponent,\n ColumnChartComponent,\n ContextMenuComponent,\n CriteriaFilterTileComponent,\n DashboardByIdComponent,\n DashboardComponent,\n DateRangeFilterTileComponent,\n DrilldownBreadcrumbsComponent,\n DrilldownWidgetComponent,\n FiltersPanelComponent,\n FilterTileComponent,\n FunnelChartComponent,\n IndicatorChartComponent,\n LineChartComponent,\n MemberFilterTileComponent,\n PieChartComponent,\n PivotTableComponent,\n PivotTableWidgetComponent,\n PolarChartComponent,\n RelativeDateFilterTileComponent,\n ScatterChartComponent,\n ScattermapChartComponent,\n SunburstChartComponent,\n TableComponent,\n TableWidgetComponent,\n TreemapChartComponent,\n WidgetByIdComponent,\n WidgetComponent,\n} from './components';\nimport { DecoratorsModule } from './decorators/decorators.module';\n\n/**\n * SDK UI Module, which is a container for components.\n *\n * @example\n * Example of importing `SdkUiModule` and injecting {@link SisenseContextConfig} into your application:\n *\n * ```ts\n * export const SISENSE_CONTEXT_CONFIG: SisenseContextConfig = {\n * url: \"<instance url>\", // replace with the URL of your Sisense instance\n * token: \"<api token>\", // replace with the API token of your user account\n * defaultDataSource: DM.DataSource,\n * };\n *\n * @NgModule({\n * imports: [\n * BrowserModule,\n * SdkUiModule,\n * ],\n * declarations: [AppComponent],\n * providers: [\n * { provide: SISENSE_CONTEXT_CONFIG_TOKEN, useValue: SISENSE_CONTEXT_CONFIG },\n * ],\n * bootstrap: [AppComponent],\n * })\n * ```\n * @group Contexts\n */\n@NgModule({\n declarations: [\n ChartComponent,\n TableComponent,\n ChartWidgetComponent,\n ColumnChartComponent,\n BarChartComponent,\n AreaChartComponent,\n CalendarHeatmapChartComponent,\n AreaRangeChartComponent,\n LineChartComponent,\n IndicatorChartComponent,\n ScatterChartComponent,\n PieChartComponent,\n FunnelChartComponent,\n PolarChartComponent,\n TreemapChartComponent,\n SunburstChartComponent,\n TableWidgetComponent,\n WidgetByIdComponent,\n MemberFilterTileComponent,\n DrilldownWidgetComponent,\n DateRangeFilterTileComponent,\n RelativeDateFilterTileComponent,\n CriteriaFilterTileComponent,\n DrilldownBreadcrumbsComponent,\n ContextMenuComponent,\n BoxplotChartComponent,\n ScattermapChartComponent,\n AreamapChartComponent,\n PivotTableComponent,\n DashboardByIdComponent,\n DashboardComponent,\n PivotTableWidgetComponent,\n FilterTileComponent,\n FiltersPanelComponent,\n WidgetComponent,\n ],\n imports: [CommonModule, DecoratorsModule],\n exports: [\n ChartComponent,\n TableComponent,\n ChartWidgetComponent,\n ColumnChartComponent,\n BarChartComponent,\n AreaChartComponent,\n CalendarHeatmapChartComponent,\n AreaRangeChartComponent,\n LineChartComponent,\n IndicatorChartComponent,\n ScatterChartComponent,\n PieChartComponent,\n FunnelChartComponent,\n PolarChartComponent,\n TreemapChartComponent,\n SunburstChartComponent,\n TableWidgetComponent,\n WidgetByIdComponent,\n MemberFilterTileComponent,\n DrilldownWidgetComponent,\n DateRangeFilterTileComponent,\n RelativeDateFilterTileComponent,\n CriteriaFilterTileComponent,\n DrilldownBreadcrumbsComponent,\n ContextMenuComponent,\n BoxplotChartComponent,\n ScattermapChartComponent,\n AreamapChartComponent,\n PivotTableComponent,\n DashboardByIdComponent,\n DashboardComponent,\n PivotTableWidgetComponent,\n FilterTileComponent,\n FiltersPanelComponent,\n WidgetComponent,\n ],\n providers: [],\n})\nexport class SdkUiModule {}\n","// This file re-exports common types/utils from @sisense/sdk-ui-preact\n\n// Re-exports utils from @sisense/sdk-ui-preact\nexport { boxWhiskerProcessResult, extractDimensionsAndMeasures } from '@sisense/sdk-ui-preact';\n\n// Re-exports types from @sisense/sdk-ui-preact\nexport type {\n // General (Others):\n AppConfig,\n AreamapChartDataOptions,\n AreamapChartType,\n AreamapStyleOptions,\n AreaRangeStyleOptions,\n AreaStyleOptions,\n AreaSubtype,\n AxisLabel,\n // Charts related:\n BeforeRenderHandler,\n BoxplotChartCustomDataOptions,\n BoxplotChartDataOptions,\n BoxplotChartType,\n BoxplotDataPoint,\n BoxplotStyleOptions,\n BoxplotSubtype,\n BoxWhiskerType,\n CalendarDayOfWeek,\n CalendarHeatmapChartDataOptions,\n CalendarHeatmapChartType,\n CalendarHeatmapDataPoint,\n CalendarHeatmapStyleOptions,\n CalendarHeatmapViewType,\n CartesianChartDataOptions,\n CartesianChartType,\n CartesianWidgetType,\n CategoricalChartDataOptions,\n CategoricalChartType,\n CategoricalWidgetType,\n // Data Options:\n ChartDataOptions,\n // Style Options:\n ChartStyleOptions,\n ChartType,\n ChartWidgetStyleOptions,\n Color,\n ColorPaletteTheme,\n // Props:\n CommonWidgetProps,\n ConditionalDataColorOptions,\n Convolution,\n // Dashboard:\n DashboardLayoutOptions,\n DashboardModel,\n DashStyle,\n DataColorCondition,\n DataColorOptions,\n // Style related:\n DataLimits,\n DataPoint,\n DateConfig,\n DateLevel,\n DayOfWeek,\n DecimalScale,\n DrilldownOptions,\n DrilldownSelection,\n EndCapType,\n FilterVariant,\n FunnelStyleOptions,\n GaugeIndicatorStyleOptions,\n GetDashboardModelOptions,\n GetDashboardModelsOptions,\n Hierarchy,\n HierarchyModel,\n HighchartsOptions,\n IndicatorBeforeRenderHandler,\n IndicatorChartDataOptions,\n IndicatorChartType,\n IndicatorComponents,\n IndicatorDataPoint,\n IndicatorRenderOptions,\n IndicatorStyleOptions,\n Labels,\n Legend,\n LineOptions,\n LineStyleOptions,\n LineSubtype,\n LineWidth,\n Markers,\n Member,\n MenuItemSection,\n MenuPosition,\n MonthOfYear,\n MultiColumnValueToColorMap,\n Navigator,\n // Data Options related:\n NumberFormatConfig,\n NumericBarIndicatorStyleOptions,\n NumericSimpleIndicatorStyleOptions,\n PieStyleOptions,\n PieSubtype,\n PivotRowsSort,\n PivotTableDataOptions,\n PivotTableStyleOptions,\n PivotTableWidgetStyleOptions,\n PolarStyleOptions,\n PolarSubtype,\n RangeChartDataOptions,\n RangeChartType,\n RangeDataColorOptions,\n ScatterChartDataOptions,\n ScatterChartType,\n ScatterDataPoint,\n ScattermapChartDataOptions,\n ScattermapChartType,\n ScattermapLocationLevel,\n ScattermapMarkers,\n ScattermapStyleOptions,\n ScatterMarkerSize,\n ScatterStyleOptions,\n SeriesChartType,\n SeriesLabels,\n SortDirection,\n StackableStyleOptions,\n StackableSubtype,\n StyledColumn,\n StyledMeasureColumn,\n SunburstStyleOptions,\n TableDataOptions,\n TableStyleOptions,\n TableType,\n TabularWidgetType,\n ThemeOid,\n ThemeSettings,\n TranslationConfig,\n TreemapStyleOptions,\n UniformDataColorOptions,\n ValueToColorMap,\n WidgetByIdStyleOptions,\n WidgetDataOptions,\n WidgetId,\n // Models:\n WidgetModel,\n WidgetsOptions,\n WidgetsPanelColumnLayout,\n WidgetsPanelLayout,\n WidgetStyleOptions,\n WidgetType,\n X2Title,\n} from '@sisense/sdk-ui-preact';\n","import {\n type DashboardModel,\n dashboardModelTranslator as dashboardModelTranslatorPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport { type DashboardProps } from '../components';\n\n/**\n * Translates {@link DashboardModel} to {@link DashboardProps}.\n *\n * @example\n * ```html\n<csdk-dashboard\n *ngIf=\"dashboard\"\n [title]=\"dashboard.title\"\n [layoutOptions]=\"dashboard.layoutOptions\"\n [widgets]=\"dashboard.widgets\"\n [filters]=\"dashboard.filters\"\n [defaultDataSource]=\"dashboard.defaultDataSource\"\n [widgetsOptions]=\"dashboard.widgetsOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type DashboardProps,\n DashboardService,\n dashboardModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n})\nexport class DashboardComponent {\n dashboard: DashboardProps | null = null;\n\n constructor(private dashboardService: DashboardService) {}\n\n async ngOnInit(): Promise<void> {\n const dashboardModel = await this.dashboardService.getDashboardModel('your-dashboard-oid', {\n includeWidgets: true,\n includeFilters: true,\n });\n this.dashboard = dashboardModelTranslator.toDashboardProps(dashboardModel);\n }\n}\n * ```\n */\nexport function toDashboardProps(dashboardModel: DashboardModel): DashboardProps {\n return dashboardModelTranslatorPreact.toDashboardProps(dashboardModel);\n}\n","import { Filter, FilterRelations } from '@sisense/sdk-data';\nimport {\n dashboardHelpers as dashboardHelpersPreact,\n type DashboardProps as DashboardPropsPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport { DashboardProps } from '../components';\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.replaceFilters}\n *\n * @example\n * Replace all filters on a dashboard with a new set of filters.\n * ```ts\n * const existingDashboard: DashboardProps = {...}\n * const newFilters: Filter[] = [{...}, {...}, ...];\n * const updatedDashboard = dashboardHelpers.replaceFilters(existingDashboard, newFilters);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) whose filters are to be replaced.\n * @param newFilters - An array of new filters or filter relations to set on the dashboard.\n * @returns A new dashboard instance with the updated filters.\n */\nexport const replaceFilters = (\n dashboard: DashboardProps,\n newFilters: Filter[] | FilterRelations,\n): DashboardProps => {\n return dashboardHelpersPreact.replaceFilters(dashboard as DashboardPropsPreact, newFilters);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.addFilter}\n *\n * @example\n * Add a new filter to a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const newFilter: Filter = {...};\n * const updatedDashboard = dashboardHelpers.addFilter(existingDashboard, newFilter);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) to which the filter will be added.\n * @param newFilter - The filter to add to the dashboard.\n * @returns A new dashboard instance with the new filter added.\n */\nexport const addFilter = (dashboard: DashboardProps, newFilter: Filter): DashboardProps => {\n return dashboardHelpersPreact.addFilter(dashboard as DashboardPropsPreact, newFilter);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.addFilters}\n *\n * @example\n * Add multiple new filters to a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const newFilters: Filter[] = [{...}, {...}, ...];\n * const updatedDashboard = dashboardHelpers.addFilters(existingDashboard, newFilters);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) to which the filters will be added.\n * @param newFilters - An array of filters to add to the dashboard.\n * @returns A new dashboard instance with the new filters added.\n */\nexport const addFilters = (dashboard: DashboardProps, newFilters: Filter[]): DashboardProps => {\n return dashboardHelpersPreact.addFilters(dashboard as DashboardPropsPreact, newFilters);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.replaceFilter}\n *\n * @example\n * Replace a filter in a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const filterToReplace: Filter = {...};\n * const newFilter: Filter = {...};\n * const updatedDashboard = dashboardHelpers.replaceFilter(existingDashboard, filterToReplace, newFilter);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) containing the filter to be replaced.\n * @param filterToReplace - The existing filter to be replaced.\n * @param newFilter - The new filter to replace the existing one.\n * @returns A new dashboard instance with the specified filter replaced.\n */\nexport const replaceFilter = (\n dashboard: DashboardProps,\n filterToReplace: Filter,\n newFilter: Filter,\n): DashboardProps => {\n return dashboardHelpersPreact.replaceFilter(\n dashboard as DashboardPropsPreact,\n filterToReplace,\n newFilter,\n );\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.removeFilter}\n *\n * @example\n * Remove a filter from a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const filterToRemove: Filter = {...};\n * const updatedDashboard = dashboardHelpers.removeFilter(existingDashboard, filterToRemove);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) from which to remove the filter.\n * @param filterToRemove - The filter to be removed.\n * @returns A new dashboard instance with the specified filter removed.\n */\nexport const removeFilter = (dashboard: DashboardProps, filterToRemove: Filter): DashboardProps => {\n return dashboardHelpersPreact.removeFilter(dashboard as DashboardPropsPreact, filterToRemove);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.removeFilters}\n *\n * @example\n * Remove multiple filters from a dashboard.\n * ```ts\n * const existingDashboard: DashboardProps = {...};\n * const filtersToRemove: Filter[] = [{...}, {...}, ...];\n * const updatedDashboard = dashboardHelpers.removeFilters(existingDashboard, filtersToRemove);\n * ```\n * @param dashboard - The original dashboard (`DashboardProps`) from which the specified filters are removed.\n * @param filtersToRemove - An array of filters to remove.\n * @returns A new dashboard instance with the specified filters removed.\n */\nexport const removeFilters = (\n dashboard: DashboardProps,\n filtersToRemove: Filter[],\n): DashboardProps => {\n return dashboardHelpersPreact.removeFilters(dashboard as DashboardPropsPreact, filtersToRemove);\n};\n","import {\n type WidgetModel,\n widgetModelTranslator as widgetModelTranslatorPreact,\n} from '@sisense/sdk-ui-preact';\n\nimport {\n ChartProps,\n ChartWidgetProps,\n PivotTableProps,\n PivotTableWidgetProps,\n TableProps,\n type TextWidgetProps,\n} from '../components';\nimport { ExecutePivotQueryParams, ExecuteQueryParams } from '../services';\n\n/**\n * Translates a {@link WidgetModel} to the parameters for executing a query for the widget.\n *\n * @example\n * ```ts\nconst widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n});\nconst executeQueryParams = widgetModelTranslator.toExecuteQueryParams(widgetModel);\nconst queryResult = await queryService.executeQuery(executeQueryParams);\n * ```\n *\n * Note: this method is not supported for getting pivot query.\n * Use {@link toExecutePivotQueryParams} instead for getting query parameters for the pivot widget.\n */\nexport const toExecuteQueryParams = (widgetModel: WidgetModel): ExecuteQueryParams => {\n return widgetModelTranslatorPreact.toExecuteQueryParams(widgetModel);\n};\n\n/**\n * Translates a {@link WidgetModel} to the parameters for executing a query for the pivot widget.\n *\n * @example\n * ```ts\nconst widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n});\nconst executePivotQueryParams = widgetModelTranslator.toExecutePivotQueryParams(widgetModel);\nconst queryResult = await queryService.executePivotQuery(executeQueryParams);\n * ```\n *\n * Note: this method is supported only for getting pivot query.\n * Use {@link toExecuteQueryParams} instead for getting query parameters for non-pivot widgets.\n */\nexport const toExecutePivotQueryParams = (widgetModel: WidgetModel): ExecutePivotQueryParams => {\n return widgetModelTranslatorPreact.toExecutePivotQueryParams(widgetModel);\n};\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a chart.\n *\n * @example\n * ```html\n<csdk-chart\n *ngIf=\"chartProps\"\n [chartType]=\"chartProps.chartType\"\n [dataSet]=\"chartProps.dataSet\"\n [dataOptions]=\"chartProps.dataOptions\"\n [filters]=\"chartProps.filters\"\n [highlights]=\"chartProps.highlights\"\n [styleOptions]=\"chartProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type ChartProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n chartProps: ChartProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.chartProps = widgetModelTranslator.toChartProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for pivot widgets.\n * Use {@link toPivotTableProps} instead for getting props for the {@link PivotTableComponent}.\n */\nexport function toChartProps(widgetModel: WidgetModel): ChartProps {\n return widgetModelTranslatorPreact.toChartProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a table.\n *\n * @example\n * ```html\n<csdk-table\n *ngIf=\"tableProps\"\n [dataSet]=\"tableProps.dataSet\"\n [dataOptions]=\"tableProps.dataOptions\"\n [filters]=\"tableProps.filters\"\n [styleOptions]=\"tableProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type TableProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n tableProps: TableProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.tableProps = widgetModelTranslator.toTableProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for chart and pivot widgets.\n * Use {@link toChartProps} instead for getting props for the {@link ChartComponent}.\n * Use {@link toPivotTableProps} instead for getting props for the {@link PivotTableComponent}.\n */\nexport function toTableProps(widgetModel: WidgetModel): TableProps {\n return widgetModelTranslatorPreact.toTableProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a pivot table.\n *\n * @example\n * ```html\n<csdk-pivot-table\n *ngIf=\"pivotTableProps\"\n [dataSet]=\"pivotTableProps.dataSet\"\n [dataOptions]=\"pivotTableProps.dataOptions\"\n [filters]=\"pivotTableProps.filters\"\n [styleOptions]=\"pivotTableProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type PivotTableProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n pivotTableProps: PivotTableProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.pivotTableProps = widgetModelTranslator.toPivotTableProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for chart or table widgets.\n * Use {@link toChartProps} instead for getting props for the {@link ChartComponent}.\n * Use {@link toTableProps} instead for getting props for the {@link TableComponent}.\n */\nexport function toPivotTableProps(widgetModel: WidgetModel): PivotTableProps {\n return widgetModelTranslatorPreact.toPivotTableProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a chart widget.\n *\n * @example\n * ```html\n<csdk-chart-widget\n *ngIf=\"chartWidgetProps\"\n [chartType]=\"chartWidgetProps.chartType\"\n [dataSource]=\"chartWidgetProps.dataSource\"\n [dataOptions]=\"chartWidgetProps.dataOptions\"\n [filters]=\"chartWidgetProps.filters\"\n [highlights]=\"chartWidgetProps.highlights\"\n [styleOptions]=\"chartWidgetProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type ChartWidgetProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n chartWidgetProps: ChartWidgetProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.chartWidgetProps = widgetModelTranslator.toChartWidgetProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for pivot widgets.\n */\nexport function toChartWidgetProps(widgetModel: WidgetModel): ChartWidgetProps {\n return widgetModelTranslatorPreact.toChartWidgetProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a pivot table widget.\n *\n * @example\n * ```html\n<csdk-pivot-table-widget\n *ngIf=\"pivotWidgetProps\"\n [dataSet]=\"pivotWidgetProps.dataSet\"\n [dataOptions]=\"pivotWidgetProps.dataOptions\"\n [filters]=\"pivotWidgetProps.filters\"\n [styleOptions]=\"pivotWidgetProps.styleOptions\"\n/>\n * ```\n *\n * ```ts\nimport { Component } from '@angular/core';\nimport {\n type PivotTableWidgetProps\n WidgetService,\n widgetModelTranslator,\n} from '@sisense/sdk-ui-angular';\n\n@Component({\n selector: 'app-example',\n templateUrl: './example.component.html',\n styleUrls: ['./example.component.scss'],\n})\nexport class ExampleComponent {\n pivotWidgetProps: PivotTableWidgetProps | null = null;\n\n constructor(private widgetService: WidgetService) {}\n\n async ngOnInit(): Promise<void> {\n const widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n });\n this.pivotWidgetProps = widgetModelTranslator.toPivotTableWidgetProps(widgetModel);\n }\n}\n * ```\n *\n * Note: this method is not supported for chart or table widgets.\n * Use {@link toChartWidgetProps} instead for getting props for the {@link ChartWidgetComponent}.\n */\nexport function toPivotTableWidgetProps(widgetModel: WidgetModel): PivotTableWidgetProps {\n return widgetModelTranslatorPreact.toPivotTableWidgetProps(widgetModel);\n}\n\n/**\n * Translates a {@link WidgetModel} to the props for rendering a text widget.\n *\n * @example\n * ```ts\nconst widgetModel = await widgetService.getWidgetModel({\n dashboardOid: 'your-dashboard-oid',\n widgetOid: 'your-widget-oid'\n});\nconst textWidgetProps = widgetModelTranslator.toTextWidgetProps(widgetModel);\n * ```\n *\n * Note: this method is not supported for chart or pivot widgets.\n * Use {@link toChartWidgetProps} instead for getting props for the {@link ChartWidgetComponent}.\n * Use {@link toPivotTableWidgetProps} instead for getting props for the pivot table widget.\n */\nexport function toTextWidgetProps(widgetModel: WidgetModel): TextWidgetProps {\n return widgetModelTranslatorPreact.toTextWidgetProps(widgetModel);\n}\n","/**\n * Public API Surface of @sisense/sdk-ui-angular\n */\nexport * from './lib/components';\nexport * from './lib/sdk-ui.module';\nexport * from './lib/sdk-ui-core-exports';\nexport * from './lib/services';\nexport type {\n AreamapDataPointEvent,\n AreamapDataPointEventHandler,\n BoxplotDataPointEvent,\n BoxplotDataPointEventHandler,\n BoxplotDataPointsEvent,\n CalendarHeatmapDataPointEvent,\n CalendarHeatmapDataPointEventHandler,\n CalendarHeatmapDataPointsEvent,\n CalendarHeatmapDataPointsEventHandler,\n ChartDataPointClickEvent,\n ChartDataPointClickEventHandler,\n ChartDataPointContextMenuEvent,\n ChartDataPointContextMenuEventHandler,\n ChartDataPointsEvent,\n ChartDataPointsEventHandler,\n DataPointEvent,\n DataPointEventHandler,\n DataPointsEvent,\n DataPointsEventHandler,\n FilterChangeEvent,\n FilterChangeEventHandler,\n FilterDeleteEventHandler,\n FilterEditEvent,\n FilterEditEventHandler,\n FiltersPanelChangeEvent,\n FiltersPanelChangeEventHandler,\n IndicatorDataPointEvent,\n IndicatorDataPointEventHandler,\n ScatterDataPointEvent,\n ScatterDataPointEventHandler,\n ScatterDataPointsEvent,\n ScatterDataPointsEventHandler,\n ScattermapDataPointEvent,\n ScattermapDataPointEventHandler,\n} from './lib/types';\nexport * from './lib/utilities';\n\n/* Re-exports internal core functionalities to use in dependant angular modules */\nexport {\n createCustomWidgetsContextConnector,\n createSisenseContextConnector,\n createThemeContextConnector,\n} from './lib/component-wrapper-helpers';\nexport { TrackableService } from './lib/decorators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DynamicRenderer","i1.SisenseContextService","ChartPreact","i2.ThemeService","i1.ChartComponent","PivotTablePreact","i1.ThemeService","TablePreact","ContextMenuPreact","DashboardPreact","i3.CustomWidgetsService","DashboardByIdPreact","DrilldownBreadcrumbsPreact","CriteriaFilterTilePreact","DateRangeFilterTilePreact","FilterTilePreact","FiltersPanelPreact","MemberFilterTilePreact","RelativeDateFilterTilePreact","ChartWidgetPreact","DrilldownWidgetPreact","PivotTableWidgetPreact","TableWidgetPreact","WidgetPreact","WidgetByIdPreact","dashboardModelTranslatorPreact","dashboardHelpersPreact","widgetModelTranslatorPreact"],"mappings":"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"}