@sisense/sdk-ui-angular 1.32.0 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/ai/lib/components/chatbot.component.d.ts +1 -2
  2. package/dist/ai/lib/components/get-nlg-insights.component.d.ts +1 -2
  3. package/dist/esm2020/ai/lib/components/chatbot.component.mjs +2 -3
  4. package/dist/esm2020/ai/lib/components/get-nlg-insights.component.mjs +2 -3
  5. package/dist/esm2020/lib/components/dashboard/dashboard-by-id.component.mjs +4 -4
  6. package/dist/esm2020/lib/components/dashboard/dashboard.component.mjs +1 -1
  7. package/dist/esm2020/lib/components/widgets/index.mjs +2 -1
  8. package/dist/esm2020/lib/components/widgets/pivot-table-widget.component.mjs +127 -0
  9. package/dist/esm2020/lib/sdk-ui-core-exports.mjs +2 -2
  10. package/dist/esm2020/lib/sdk-ui.module.mjs +8 -4
  11. package/dist/esm2020/lib/services/query.service.mjs +31 -5
  12. package/dist/esm2020/lib/types/dashboard-config.mjs +2 -0
  13. package/dist/esm2020/lib/types/index.mjs +2 -1
  14. package/dist/esm2020/lib/utilities/dashboard-helpers.mjs +119 -0
  15. package/dist/esm2020/lib/utilities/dashboard-model-translator.mjs +49 -0
  16. package/dist/esm2020/lib/utilities/index.mjs +7 -0
  17. package/dist/esm2020/lib/utilities/widget-model-translator.mjs +304 -0
  18. package/dist/esm2020/public-api.mjs +2 -1
  19. package/dist/esm2020/version.mjs +2 -2
  20. package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs +2 -4
  21. package/dist/fesm2015/sisense-sdk-ui-angular-ai.mjs.map +1 -1
  22. package/dist/fesm2015/sisense-sdk-ui-angular.mjs +663 -13
  23. package/dist/fesm2015/sisense-sdk-ui-angular.mjs.map +1 -1
  24. package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs +2 -4
  25. package/dist/fesm2020/sisense-sdk-ui-angular-ai.mjs.map +1 -1
  26. package/dist/fesm2020/sisense-sdk-ui-angular.mjs +660 -12
  27. package/dist/fesm2020/sisense-sdk-ui-angular.mjs.map +1 -1
  28. package/dist/lib/components/dashboard/dashboard-by-id.component.d.ts +8 -5
  29. package/dist/lib/components/dashboard/dashboard.component.d.ts +5 -2
  30. package/dist/lib/components/widgets/index.d.ts +1 -0
  31. package/dist/lib/components/widgets/pivot-table-widget.component.d.ts +127 -0
  32. package/dist/lib/sdk-ui-core-exports.d.ts +2 -2
  33. package/dist/lib/sdk-ui.module.d.ts +4 -3
  34. package/dist/lib/services/query.service.d.ts +29 -3
  35. package/dist/lib/types/dashboard-config.d.ts +24 -0
  36. package/dist/lib/types/index.d.ts +1 -0
  37. package/dist/lib/utilities/dashboard-helpers.d.ts +105 -0
  38. package/dist/lib/utilities/dashboard-model-translator.d.ts +47 -0
  39. package/dist/lib/utilities/index.d.ts +23 -0
  40. package/dist/lib/utilities/widget-model-translator.d.ts +289 -0
  41. package/dist/package.json +1 -1
  42. package/dist/public-api.d.ts +2 -1
  43. package/dist/version.d.ts +1 -1
  44. package/package.json +4 -4
@@ -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/lib/services/query.service.ts","../../src/lib/services/plugins.service.ts","../../src/lib/services/dashboard.service.ts","../../src/lib/services/widget.service.ts","../../src/lib/services/hierarchy.service.ts","../../src/lib/decorators/decorators.module.ts","../../src/version.ts","../../src/lib/decorators/trackable.decorator.ts","../../src/lib/services/theme.service.ts","../../src/lib/components/filters/member-filter-tile.component.ts","../../src/lib/components/filters/date-range-filter-tile.component.ts","../../src/lib/components/filters/relative-date-filter-tile.component.ts","../../src/lib/components/filters/criteria-filter-tile.component.ts","../../src/lib/components/charts/chart.component.ts","../../src/lib/components/charts/table.component.ts","../../src/lib/components/charts/column-chart.component.ts","../../src/lib/components/charts/bar-chart.component.ts","../../src/lib/components/charts/area-chart.component.ts","../../src/lib/components/charts/line-chart.component.ts","../../src/lib/components/charts/indicator-chart.component.ts","../../src/lib/components/charts/scatter-chart.component.ts","../../src/lib/components/charts/pie-chart.component.ts","../../src/lib/components/charts/funnel-chart.component.ts","../../src/lib/components/charts/polar-chart.component.ts","../../src/lib/components/charts/treemap-chart.component.ts","../../src/lib/components/charts/sunburst-chart.component.ts","../../src/lib/components/charts/boxplot-chart.component.ts","../../src/lib/components/charts/scattermap-chart.component.ts","../../src/lib/components/charts/areamap-chart.component.ts","../../src/lib/components/charts/pivot-table.component.ts","../../src/lib/components/charts/area-range-chart.component.ts","../../src/lib/components/widgets/table-widget.component.ts","../../src/lib/components/widgets/dashboard-widget.component.ts","../../src/lib/components/widgets/widget-by-id.component.ts","../../src/lib/components/widgets/drilldown-widget.component.ts","../../src/lib/components/widgets/chart-widget.component.ts","../../src/lib/components/dashboard/dashboard-by-id.component.ts","../../src/lib/components/dashboard/dashboard.component.ts","../../src/lib/components/drilldown-breadcrumbs.component.ts","../../src/lib/components/context-menu.component.ts","../../src/lib/sdk-ui.module.ts","../../src/lib/sdk-ui-core-exports.ts","../../src/public-api.ts","../../src/sisense-sdk-ui-angular.ts"],"sourcesContent":["import {\n ContextConnector,\n createContextProviderRenderer,\n CustomSisenseContext,\n CustomSisenseContextProvider,\n CustomThemeProvider,\n CustomThemeProviderProps,\n CustomPluginsProvider,\n CustomPluginsProviderProps,\n} from '@sisense/sdk-ui-preact';\nimport { map } from 'rxjs';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport { PluginsService } from '../services/plugins.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['context']> => {\n return {\n prepareContext() {\n return themeService.getThemeSettings().pipe(\n map((themeSettings) => ({\n themeSettings,\n skipTracking: true,\n })),\n );\n },\n renderContextProvider: createContextProviderRenderer(CustomThemeProvider),\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<CustomSisenseContext> => {\n return {\n async prepareContext() {\n const { showRuntimeErrors, appConfig } = sisenseContextService.getConfig();\n const app = await sisenseContextService.getApp();\n return {\n app,\n isInitialized: true,\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 renderContextProvider: createContextProviderRenderer(CustomSisenseContextProvider),\n };\n};\n\n/**\n * Creates plugins context connector\n *\n * @param pluginsService - The plugin service\n * @internal\n */\nexport const createPluginsContextConnector = (\n pluginsService: PluginsService,\n): ContextConnector<CustomPluginsProviderProps['context']> => {\n return {\n prepareContext() {\n return {\n pluginMap: pluginsService.getPlugins().value,\n registerPlugin: pluginsService.registerPlugin.bind(pluginsService),\n getPlugin: pluginsService.getPlugin.bind(pluginsService),\n };\n },\n renderContextProvider: createContextProviderRenderer(CustomPluginsProvider),\n };\n};\n","export const rootId = 'preact';\nexport const rootContentId = 'preactContent';\nexport const template = `\n <div #${rootId} style=\"width: 100%; height: 100%\"></div>\n`;\nexport const templateWithContent = `\n <div #${rootId} style=\"width: 100%; height: 100%\">\n <div #${rootContentId} style=\"width: 100%; height: 100%\">\n <ng-content></ng-content>\n </div>\n </div>\n`;\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { ClientApplication, createClientApplication } from '@sisense/sdk-ui-preact';\nimport type { SisenseContextProviderProps as SisenseContextConfig } from '@sisense/sdk-ui-preact';\n\nexport { type SisenseContextConfig };\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 working with Sisense Fusion context.\n *\n * @group Contexts\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SisenseContextService {\n private appPromise: Promise<ClientApplication>;\n\n private config: SisenseContextConfig;\n\n constructor(@Inject(SISENSE_CONTEXT_CONFIG_TOKEN) sisenseContextConfig: SisenseContextConfig) {\n this.appPromise = createClientApplication(sisenseContextConfig);\n\n const { showRuntimeErrors } = sisenseContextConfig;\n this.config = {\n ...sisenseContextConfig,\n showRuntimeErrors: showRuntimeErrors ?? true,\n };\n }\n\n /** @internal */\n getApp(): Promise<ClientApplication> {\n return this.appPromise;\n }\n\n getConfig(): SisenseContextConfig {\n return this.config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n executeQuery,\n executeQueryByWidgetId,\n type ExecuteQueryParams as ExecuteQueryParamsPreact,\n type ExecuteQueryByWidgetIdParams as ExecuteQueryByWidgetIdParamsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { getFilterListAndRelationsJaql } from '@sisense/sdk-data';\n\n/**\n * Parameters for data query execution.\n */\nexport interface ExecuteQueryParams extends Omit<ExecuteQueryParamsPreact, 'enabled'> {}\n\n/**\n * Parameters for data query by widget id execution.\n */\nexport interface ExecuteQueryByWidgetIdParams\n extends Omit<ExecuteQueryByWidgetIdParamsPreact, 'enabled'> {}\n\n/**\n * Service for executing data queries.\n *\n * @group Queries\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<QueryService>(['executeQuery', 'executeQueryByWidgetId'])\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 { dataSource, dimensions, measures, filters, highlights, count, offset, onBeforeQuery } =\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 },\n app,\n { onBeforeQuery },\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 });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { PluginComponent } from '@sisense/sdk-ui-preact';\n\n/**\n * Service for working with plugins fetched from an external environment.\n *\n * Provides methods for registering, retrieving, and interacting with plugins.\n *\n * @internal\n * @group Contexts\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PluginsService {\n private pluginMap$: BehaviorSubject<Map<string, PluginComponent>>;\n\n constructor() {\n this.pluginMap$ = new BehaviorSubject(new Map<string, PluginComponent>());\n }\n\n /**\n * Registers a new plugin into the plugin map.\n *\n * @param pluginType - The unique identifier for the plugin type.\n * @param plugin - The plugin instance to register.\n */\n registerPlugin(pluginType: string, plugin: PluginComponent): void {\n const pluginMap = this.pluginMap$.value;\n if (!pluginMap.has(pluginType)) {\n pluginMap.set(pluginType, plugin);\n this.pluginMap$.next(pluginMap);\n }\n }\n\n /**\n * Retrieves a plugin by its type.\n *\n * @param pluginType - The unique identifier for the plugin type.\n * @returns The plugin instance if found, otherwise undefined.\n */\n getPlugin(pluginType: string): PluginComponent | undefined {\n return this.pluginMap$.value.get(pluginType);\n }\n\n /**\n * Retrieves a complete plugin map.\n *\n * @returns A plugin map.\n */\n getPlugins() {\n return this.pluginMap$;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n getDashboardModel,\n getDashboardModels,\n type GetDashboardModelsOptions,\n type GetDashboardModelOptions,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\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","import { Injectable } from '@angular/core';\nimport {\n getWidgetModel,\n type GetWidgetModelParams as GetWidgetModelParamsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\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 { Injectable } from '@angular/core';\nimport {\n HierarchyModel,\n getHierarchyModels,\n type GetHierarchyModelsParams as GetHierarchyModelsParamsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\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 { NgModule } from '@angular/core';\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","export default '1.32.0'","import { DecoratorsModule } from './decorators.module';\nimport { trackProductEvent } from '@sisense/sdk-tracking';\nimport packageVersion from '../../version';\nimport { TrackingEventType } from '@sisense/sdk-tracking/src/registry';\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\nasync 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 { BehaviorSubject } from 'rxjs';\nimport merge from 'ts-deepmerge';\nimport {\n getDefaultThemeSettings,\n getThemeSettingsByOid,\n type ThemeProviderProps as ThemeConfig,\n type CompleteThemeSettings,\n} from '@sisense/sdk-ui-preact';\nimport { type ThemeSettings } from '../sdk-ui-core-exports';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\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 constructor(\n private sisenseContextService: SisenseContextService,\n @Optional() @Inject(THEME_CONFIG_TOKEN) themeConfig?: ThemeConfig,\n ) {\n this.themeSettings$ = new BehaviorSubject<CompleteThemeSettings>(getDefaultThemeSettings());\n void this.initThemeSettings(themeConfig?.theme);\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 await this.updateThemeSettings(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.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 MemberFilterTile,\n type MemberFilterTileProps as MemberFilterTilePropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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=\"400px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-member-filter-tile',\n template,\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(MemberFilterTile, props);\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 DateRangeFilterTile,\n type DateRangeFilterTileProps as DateRangeFilterTilePropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(DateRangeFilterTile, props);\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 RelativeDateFilterTile,\n type RelativeDateFilterTileProps as RelativeDateFilterTilePropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(RelativeDateFilterTile, props);\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 createElement,\n CriteriaFilterTile,\n type CriteriaFilterTileProps as CriteriaFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(CriteriaFilterTile, props);\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 Chart,\n type ChartProps as ChartPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\nimport { ChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport { ChartDataPointEvent, ChartDataPointsEvent } from '../../types/data-point';\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 *\n * @group Charts\n */\n@Component({\n selector: 'csdk-chart',\n template,\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 * @internal\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<ChartDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointEvent>();\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 }),\n onDataPointContextMenu: (\n ...[point, nativeEvent]: Arguments<ChartPropsPreact['onDataPointContextMenu']>\n ) => this.dataPointContextMenu.emit({ point, nativeEvent }),\n onDataPointsSelected: (\n ...[points, nativeEvent]: Arguments<ChartPropsPreact['onDataPointsSelected']>\n ) => this.dataPointsSelect.emit({ points, nativeEvent }),\n };\n\n return createElement(Chart, props);\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 Table,\n type TableProps as TablePropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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 *\n * @group Data Grids\n */\n@Component({\n selector: 'csdk-table',\n template,\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 * @internal\n */\n @Input()\n dataReady: TableProps['dataReady'];\n\n private componentAdapter: ComponentAdapter;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n styleOptions: this.styleOptions,\n onDataReady: this.dataReady,\n };\n\n return createElement(Table, props);\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type ColumnChartProps as ColumnChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type BarChartProps as BarChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type AreaChartProps as AreaChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type LineChartProps as LineChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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, Input } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type IndicatorChartProps as IndicatorChartPropsPreact } from '@sisense/sdk-ui-preact';\nimport {\n BaseChartEventProps,\n HighchartsBasedChartEventProps,\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 BaseChartEventProps,\n HighchartsBasedChartEventProps {}\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type ScatterChartProps as ScatterChartPropsPreact } from '@sisense/sdk-ui-preact';\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 ScatterChartComponent}.\n */\nexport interface ScatterChartProps\n extends WithoutPreactChartEventProps<ScatterChartPropsPreact>,\n RegularChartEventProps {}\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 *\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 * @internal\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<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'scatter';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type PieChartProps as PieChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type FunnelChartProps as FunnelChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type PolarChartProps as PolarChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type TreemapChartProps as TreemapChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type SunburstChartProps as SunburstChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type BoxplotChartProps as BoxplotChartPropsPreact } from '@sisense/sdk-ui-preact';\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 BoxplotChartComponent}.\n */\nexport interface BoxplotChartProps\n extends WithoutPreactChartEventProps<BoxplotChartPropsPreact>,\n RegularChartEventProps {}\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 *\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 * @internal\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<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'boxplot';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type ScattermapChartProps as ScattermapChartPropsPreact } from '@sisense/sdk-ui-preact';\nimport { BaseChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointEventHandler } from '../../types/data-point';\n\n/**\n * Props of the {@link ScattermapChartComponent}.\n */\nexport interface ScattermapChartProps\n extends WithoutPreactChartEventProps<ScattermapChartPropsPreact>,\n BaseChartEventProps {\n dataPointClick?: DataPointEventHandler;\n}\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 * @internal\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<DataPointEvent>();\n\n /** @internal */\n public chartType: ChartType = 'scattermap';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n type ChartType,\n type AreamapChartProps as AreamapChartPropsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { BaseChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointEventHandler } from '../../types/data-point';\n\n/**\n * Props of the {@link AreamapChartComponent}.\n */\nexport interface AreamapChartProps\n extends WithoutPreactChartEventProps<AreamapChartPropsPreact>,\n BaseChartEventProps {\n dataPointClick?: DataPointEventHandler;\n}\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 *\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 * @internal\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<DataPointEvent>();\n\n /** @internal */\n public chartType: ChartType = 'areamap';\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n PivotTable,\n ComponentAdapter,\n createElement,\n type PivotTableProps as PivotTablePropsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services';\nimport { ThemeService } from '../../services';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n };\n\n return createElement(PivotTable, props);\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type AreaRangeChartProps as AreaRangeChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\n * @group Charts\n * @beta\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 * @internal\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 {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n TableWidget,\n type TableWidgetProps as TableWidgetPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(TableWidget, props);\n }\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 DashboardWidget,\n type DashboardWidgetProps,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\n\n/**\n * The Dashboard Widget 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://sisense.dev/guides/sdk/guides/charts/guide-fusion-widgets.html).\n *\n * @example\n * ```html\n * <csdk-dashboard-widget\n * [widgetOid]=\"widgetOid\"\n * [dashboardOid]=\"dashboardOid\"\n * [includeDashboardFilters]=\"true\"\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 * widgetOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';\n * dashboardOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';\n * }\n * ```\n * @group Fusion Assets\n * @deprecated Use the `widget-by-id` component instead.\n * @fusionEmbed\n */\n@Component({\n selector: 'csdk-dashboard-widget',\n template,\n})\nexport class DashboardWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.widgetOid}\n *\n * @category Widget\n */\n @Input()\n widgetOid!: DashboardWidgetProps['widgetOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.dashboardOid}\n *\n * @category Widget\n */\n @Input()\n dashboardOid!: DashboardWidgetProps['dashboardOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: DashboardWidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: DashboardWidgetProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.filtersMergeStrategy}\n *\n * @category Data\n */\n @Input()\n filtersMergeStrategy: DashboardWidgetProps['filtersMergeStrategy'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.includeDashboardFilters}\n *\n * @category Data\n */\n @Input()\n includeDashboardFilters: DashboardWidgetProps['includeDashboardFilters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: DashboardWidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.description}\n *\n * @category Widget\n */\n @Input()\n description: DashboardWidgetProps['description'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.styleOptions}\n *\n * @category Widget\n */\n @Input()\n styleOptions: DashboardWidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.highlightSelectionDisabled}\n *\n * @category Widget\n */\n @Input()\n highlightSelectionDisabled: DashboardWidgetProps['highlightSelectionDisabled'];\n\n /** @internal */\n @Input()\n drilldownOptions: DashboardWidgetProps['drilldownOptions'];\n\n private componentAdapter: ComponentAdapter;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n /** @internal */\n private createPreactComponent() {\n const props = {\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 };\n\n return createElement(DashboardWidget, props);\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 WidgetById,\n type WidgetByIdProps as WidgetByIdPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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://sisense.dev/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})\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 * @internal\n */\n @Input()\n dataReady: WidgetByIdProps['dataReady'];\n\n private componentAdapter: ComponentAdapter;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n /** @internal */\n private createPreactComponent() {\n const props = {\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 return createElement(WidgetById, props);\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 createElement,\n DrilldownWidget,\n type DrilldownWidgetProps,\n type ContextMenuProps,\n type CustomDrilldownResult as CustomDrilldownResultBase,\n type ComponentRenderer,\n DrilldownBreadcrumbsProps,\n createWrapperElement,\n createWrapperElementHandler,\n createComponentRenderer,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport {\n templateWithContent,\n rootId,\n rootContentId,\n} from '../../component-wrapper-helpers/template';\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 *\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-drilldown-widget',\n template: templateWithContent,\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.drilldownDimensions}\n *\n * @category Widget\n * @deprecated Use {@link drilldownPaths} instead\n *\n */\n @Input()\n drilldownDimensions: DrilldownWidgetProps['drilldownDimensions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownWidgetProps.drilldownPaths}\n *\n * @category Widget\n *\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n drilldownDimensions: this.drilldownDimensions,\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 } as DrilldownWidgetProps;\n\n return createElement(\n DrilldownWidget,\n props,\n (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 );\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,\n type ChartWidgetProps as ChartWidgetPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\nimport { ChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport { ChartDataPointEvent, ChartDataPointsEvent } from '../../types/data-point';\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=\"800px\" />\n *\n * @group Dashboards\n */\n@Component({\n selector: 'csdk-chart-widget',\n template,\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 * @internal\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<ChartDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointEvent>();\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;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 }),\n onDataPointContextMenu: (\n ...[point, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointContextMenu']>\n ) => this.dataPointContextMenu.emit({ point, nativeEvent }),\n onDataPointsSelected: (\n ...[points, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointsSelected']>\n ) => this.dataPointsSelect.emit({ points, nativeEvent }),\n };\n\n return createElement(ChartWidget, props);\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 DashboardById,\n type DashboardByIdProps as DashboardByIdPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createPluginsContextConnector,\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\nimport { PluginsService } from '../../services/plugins.service';\n\n/**\n * Props of the {@link DashboardByIdComponent}.\n */\nexport interface DashboardByIdProps extends DashboardByIdPropsPreact {}\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})\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.persist}\n *\n * @alpha\n */\n @Input()\n persist: DashboardByIdProps['persist'];\n\n private componentAdapter: ComponentAdapter;\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 * Plugin service\n *\n * @internal\n * @category Constructor\n */\n public pluginService: PluginsService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n createPluginsContextConnector(this.pluginService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n dashboardOid: this.dashboardOid,\n persist: this.persist,\n };\n\n return createElement(DashboardById, props);\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 Dashboard,\n type DashboardProps as DashboardPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\n\n/**\n * Props of the {@link DashboardComponent}.\n */\nexport interface DashboardProps extends DashboardPropsPreact {}\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})\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 * @internal\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 private componentAdapter: ComponentAdapter;\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 this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 };\n\n return createElement(Dashboard, props);\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 DrilldownBreadcrumbs,\n type DrilldownBreadcrumbsProps as DrilldownBreadcrumbsPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../component-wrapper-helpers';\nimport { template, rootId } from '../component-wrapper-helpers/template';\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})\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(DrilldownBreadcrumbs, props);\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 ContextMenu,\n type ContextMenuProps,\n ComponentAdapter,\n createElement,\n createWrapperElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport type { ArgumentsAsObject } from '../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../component-wrapper-helpers';\nimport { rootId, rootContentId, templateWithContent } from '../component-wrapper-helpers/template';\n\n/**\n * Context Menu Component\n *\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-context-menu',\n template: templateWithContent,\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n position: this.position,\n itemSections: this.itemSections,\n closeContextMenu: () => this.contextMenuClose.emit(),\n } as ContextMenuProps;\n\n return createElement(\n ContextMenu,\n props,\n createWrapperElement(this.preactContentRef.nativeElement),\n );\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\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 DashboardWidgetComponent,\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} 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 *\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 DashboardWidgetComponent,\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 ],\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 DashboardWidgetComponent,\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 ],\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 {\n boxWhiskerProcessResult,\n widgetModelTranslator,\n dashboardModelTranslator,\n dashboardHelpers,\n} from '@sisense/sdk-ui-preact';\n\n// Re-exports types from @sisense/sdk-ui-preact\nexport type {\n ChartType,\n CartesianChartType,\n CategoricalChartType,\n ScatterChartType,\n IndicatorChartType,\n BoxplotChartType,\n ScattermapChartType,\n AreamapChartType,\n RangeChartType,\n TableType,\n AreaSubtype,\n LineSubtype,\n PieSubtype,\n PolarSubtype,\n StackableSubtype,\n BoxplotSubtype,\n WidgetType,\n CartesianWidgetType,\n CategoricalWidgetType,\n TabularWidgetType,\n\n // Data Options:\n ChartDataOptions,\n CartesianChartDataOptions,\n CategoricalChartDataOptions,\n ScatterChartDataOptions,\n IndicatorChartDataOptions,\n BoxplotChartDataOptions,\n BoxplotChartCustomDataOptions,\n ScattermapChartDataOptions,\n AreamapChartDataOptions,\n TableDataOptions,\n PivotTableDataOptions,\n WidgetDataOptions,\n RangeChartDataOptions,\n\n // Data Options related:\n NumberFormatConfig,\n DecimalScale,\n DataColorCondition,\n ConditionalDataColorOptions,\n DataColorOptions,\n RangeDataColorOptions,\n UniformDataColorOptions,\n ValueToColorMap,\n MultiColumnValueToColorMap,\n SortDirection,\n BoxWhiskerType,\n ScattermapLocationLevel,\n StyledColumn,\n StyledMeasureColumn,\n PivotRowsSort,\n\n // Style Options:\n ChartStyleOptions,\n LineStyleOptions,\n AreaStyleOptions,\n StackableStyleOptions,\n PieStyleOptions,\n FunnelStyleOptions,\n PolarStyleOptions,\n IndicatorStyleOptions,\n NumericSimpleIndicatorStyleOptions,\n NumericBarIndicatorStyleOptions,\n GaugeIndicatorStyleOptions,\n ScatterStyleOptions,\n TreemapStyleOptions,\n SunburstStyleOptions,\n BoxplotStyleOptions,\n ScattermapStyleOptions,\n AreamapStyleOptions,\n ChartWidgetStyleOptions,\n WidgetStyleOptions,\n DashboardWidgetStyleOptions,\n WidgetByIdStyleOptions,\n TableStyleOptions,\n PivotTableStyleOptions,\n PivotTableWidgetStyleOptions,\n AreaRangeStyleOptions,\n\n // Style related:\n DataLimits,\n Legend,\n Markers,\n Labels,\n IndicatorComponents,\n ScatterMarkerSize,\n LineWidth,\n AxisLabel,\n Convolution,\n SeriesLabels,\n X2Title,\n ScattermapMarkers,\n\n // Models:\n WidgetModel,\n DashboardModel,\n HierarchyModel,\n\n // Charts related:\n BeforeRenderHandler,\n DataPoint,\n ScatterDataPoint,\n HighchartsOptions,\n BoxplotDataPoint,\n IndicatorBeforeRenderHandler,\n IndicatorRenderOptions,\n\n // Dashboard:\n DashboardLayoutOptions,\n DashboardConfig,\n WidgetsPanelLayout,\n WidgetsPanelColumnLayout,\n WidgetId,\n WidgetsOptions,\n\n // General (Others):\n AppConfig,\n DateConfig,\n MenuItemSection,\n MonthOfYear,\n DayOfWeek,\n DateLevel,\n ThemeOid,\n GetDashboardModelOptions,\n GetDashboardModelsOptions,\n SeriesChartType,\n MenuPosition,\n ThemeSettings,\n Color,\n ColorPaletteTheme,\n Navigator,\n DrilldownOptions,\n DrilldownSelection,\n Member,\n FilterVariant,\n Hierarchy,\n CriteriaFilterType,\n\n // Props:\n CommonWidgetProps,\n WidgetProps,\n} from '@sisense/sdk-ui-preact';\n","/**\n * Public API Surface of @sisense/sdk-ui-angular\n */\nexport * from './lib/sdk-ui.module';\nexport * from './lib/components';\nexport * from './lib/services';\nexport * from './lib/sdk-ui-core-exports';\nexport type {\n DataPointEvent,\n AreamapDataPointEvent,\n BoxplotDataPointEvent,\n ScatterDataPointEvent,\n ScattermapDataPointEvent,\n ChartDataPointEvent,\n DataPointsEvent,\n ChartDataPointsEvent,\n ScatterDataPointsEvent,\n DataPointEventHandler,\n ScattermapDataPointEventHandler,\n AreamapDataPointEventHandler,\n BoxplotDataPointEventHandler,\n DataPointsEventHandler,\n ScatterDataPointEventHandler,\n ScatterDataPointsEventHandler,\n} from './lib/types';\n\n/* Re-exports internal core functionalities to use in dependant angular modules */\nexport {\n createThemeContextConnector,\n createSisenseContextConnector,\n createPluginsContextConnector,\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.SisenseContextService","i2.ThemeService","i1.ChartComponent","i1.ThemeService","i3.PluginsService"],"mappings":";;;;;;;;;;;AAeA;;;;;AAKG;AACU,MAAA,2BAA2B,GAAG,CACzC,YAA0B,KAC+B;IACzD,OAAO;QACL,cAAc,GAAA;AACZ,YAAA,OAAO,YAAY,CAAC,gBAAgB,EAAE,CAAC,IAAI,CACzC,GAAG,CAAC,CAAC,aAAa,MAAM;gBACtB,aAAa;AACb,gBAAA,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC,CACJ,CAAC;SACH;AACD,QAAA,qBAAqB,EAAE,6BAA6B,CAAC,mBAAmB,CAAC;KAC1E,CAAC;AACJ,EAAE;AAEF;;;;;AAKG;AACU,MAAA,6BAA6B,GAAG,CAC3C,qBAA4C,KACF;IAC1C,OAAO;AACL,QAAA,MAAM,cAAc,GAAA;YAClB,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC,SAAS,EAAE,CAAC;AAC3E,YAAA,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO;gBACL,GAAG;AACH,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,QAAQ,EAAE;;;AAGR,oBAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,IAAI,IAAI;AACnD,oBAAA,WAAW,EAAE,gBAAgB;AAC9B,iBAAA;AACD,gBAAA,aAAa,EAAE;oBACb,YAAY,EAAE,iBAAiB,IAAI,IAAI;AACxC,iBAAA;aACF,CAAC;SACH;AACD,QAAA,qBAAqB,EAAE,6BAA6B,CAAC,4BAA4B,CAAC;KACnF,CAAC;AACJ,EAAE;AAEF;;;;;AAKG;AACU,MAAA,6BAA6B,GAAG,CAC3C,cAA8B,KAC6B;IAC3D,OAAO;QACL,cAAc,GAAA;YACZ,OAAO;AACL,gBAAA,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK;gBAC5C,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;gBAClE,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;aACzD,CAAC;SACH;AACD,QAAA,qBAAqB,EAAE,6BAA6B,CAAC,qBAAqB,CAAC;KAC5E,CAAC;AACJ;;ACvFO,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,QAAQ,GAAG,CAAA;YACZ,MAAM,CAAA;CACjB,CAAC;AACK,MAAM,mBAAmB,GAAG,CAAA;YACvB,MAAM,CAAA;gBACF,aAAa,CAAA;;;;CAI5B;;ACLD;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;MACU,4BAA4B,GAAG,IAAI,cAAc,CAC5D,0CAA0C,EAC1C;AAEF;;;;AAIG;MAIU,qBAAqB,CAAA;AAKhC,IAAA,WAAA,CAAkD,oBAA0C,EAAA;AAC1F,QAAA,IAAI,CAAC,UAAU,GAAG,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAEhE,QAAA,MAAM,EAAE,iBAAiB,EAAE,GAAG,oBAAoB,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,GAAG,oBAAoB;YACvB,iBAAiB,EAAE,iBAAiB,IAAI,IAAI;SAC7C,CAAC;KACH;;IAGD,MAAM,GAAA;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;;AAtBU,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAKZ,4BAA4B,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AALrC,qBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAMc,MAAM;2BAAC,4BAA4B,CAAA;;;AC5BlD;;;;AAIG;AAKU,IAAA,YAAY,GAAlB,MAAM,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;KAAI;AAEpE;;;;;;;;;AASG;IACH,MAAM,YAAY,CAAC,MAA0B,EAAA;AAC3C,QAAA,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,GAC3F,MAAM,CAAC;QACT,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;AACtD,QAAA,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,GACvD,6BAA6B,CAAC,OAAO,CAAC,CAAC;AACzC,QAAA,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;YACE,UAAU;YACV,UAAU;YACV,QAAQ;AACR,YAAA,OAAO,EAAE,UAAU;YACnB,eAAe;YACf,UAAU;YACV,KAAK;YACL,MAAM;AACP,SAAA,EACD,GAAG,EACH,EAAE,aAAa,EAAE,CAClB,CAAC;QAEF,OAAO,EAAE,IAAI,EAAE,CAAC;KACjB;AAED;;;;;AAKG;IACH,MAAM,sBAAsB,CAAC,MAAoC,EAAA;QAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;AAEtD,QAAA,OAAO,sBAAsB,CAAC;AAC5B,YAAA,GAAG,MAAM;YACT,GAAG;AACJ,SAAA,CAAC,CAAC;KACJ;;0GAlDU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAHX,MAAM,EAAA,CAAA,CAAA;AAGP,YAAY,GAAA,UAAA,CAAA;AADxB,IAAA,gBAAgB,CAAe,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;AAC9D,CAAA,EAAA,YAAY,CAmDxB,CAAA;4FAnDY,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACzBD;;;;;;;AAOG;MAIU,cAAc,CAAA;AAGzB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,GAAG,EAA2B,CAAC,CAAC;KAC3E;AAED;;;;;AAKG;IACH,cAAc,CAAC,UAAkB,EAAE,MAAuB,EAAA;AACxD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC9B,YAAA,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjC,SAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,SAAS,CAAC,UAAkB,EAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAC9C;AAED;;;;AAIG;IACH,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;;4GAtCU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACJD;;;;;;;AAOG;AAKU,IAAA,gBAAgB,GAAtB,MAAM,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;KAAI;AAEpE;;;;;;AAMG;AACH,IAAA,MAAM,iBAAiB,CAAC,YAAoB,EAAE,OAAkC,EAAA;QAC9E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;QACtD,OAAO,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;KACjE;AAED;;;;;AAKG;IACH,MAAM,kBAAkB,CAAC,OAAmC,EAAA;QAC1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;QACtD,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;KACpD;;8GAxBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAHf,MAAM,EAAA,CAAA,CAAA;AAGP,gBAAgB,GAAA,UAAA,CAAA;AAD5B,IAAA,gBAAgB,CAAmB,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;AACnE,CAAA,EAAA,gBAAgB,CAyB5B,CAAA;4FAzBY,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACPD;;;;;AAKG;AAKU,IAAA,aAAa,GAAnB,MAAM,aAAa,CAAA;AACxB,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;KAAI;AAEpE;;;;;AAKG;IACH,MAAM,cAAc,CAAC,MAA4B,EAAA;AAC/C,QAAA,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;QACtD,OAAO,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;KAChE;;2GAbU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAHZ,MAAM,EAAA,CAAA,CAAA;AAGP,aAAa,GAAA,UAAA,CAAA;AADzB,IAAA,gBAAgB,CAAgB,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAA,EAAA,aAAa,CAczB,CAAA;4FAdY,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACPD;;;;;AAKG;AAKU,IAAA,gBAAgB,GAAtB,MAAM,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;KAAI;AAEpE;;;;;AAKG;IACH,MAAM,kBAAkB,CAAC,MAAgC,EAAA;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;AACtD,QAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;KAC1E;;8GAZU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAHf,MAAM,EAAA,CAAA,CAAA;AAGP,gBAAgB,GAAA,UAAA,CAAA;AAD5B,IAAA,gBAAgB,CAAmB,CAAC,oBAAoB,CAAC,CAAC;AAC9C,CAAA,EAAA,gBAAgB,CAa5B,CAAA;4FAbY,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCfY,gBAAgB,CAAA;AAG3B,IAAA,WAAA,CAAY,qBAA4C,EAAA;AACtD,QAAA,gBAAgB,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;KAChE;;8GALU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,CAAA,CAAA;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAA;;;ACND,qBAAe,QAAQ;;SCKP,SAAS,CAAC,MAAe,EAAE,WAAmB,EAAE,UAA8B,EAAA;AAC5F,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;AAExC,IAAA,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAe,EAAA;AAC7C,QAAA,KAAK,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAAC;QACtD,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1C,KAAC,CAAC;AAEF,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC;AAaD;AACM,SAAU,gBAAgB,CAAI,gBAAiC,EAAA;AACnE,IAAA,OAAO,UAAU,YAA8B,EAAA;AAC7C,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;;YAEtC,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;;YAGpD,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,MAAiB,EAAA;gBACjE,KAAK,CAAC,iCAAiC,EAAE,CAAG,EAAA,YAAY,CAAC,IAAI,CAAI,CAAA,EAAA,UAAU,CAAE,CAAA,CAAC,CAAC;gBAC/E,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACtC,aAAC,CAAC;AACJ,SAAC,CAAC,CAAC;AACL,KAAC,CAAC;AACJ,CAAC;AAED,eAAe,KAAK,CAAC,MAAyB,EAAE,UAAkB,EAAA;IAChE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;QAElE,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,IAAI,IAAI,CAAC;QAEtE,IAAI,GAAG,EAAE,UAAU,EAAE;AACnB,YAAA,MAAM,OAAO,GAAG;AACd,gBAAA,WAAW,EAAE,gBAAgB;gBAC7B,cAAc;gBACd,UAAU;aACX,CAAC;AAEF,YAAA,KAAK,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC;AAC3E,SAAA;AACF,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACnC,KAAA;AACH;;AC9CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCG;MACU,kBAAkB,GAAG,IAAI,cAAc,CAAc,qBAAqB,EAAE;AAEzF;;;;;;AAMG;AAKU,IAAA,YAAY,GAAlB,MAAM,YAAY,CAAA;IAGvB,WACU,CAAA,qBAA4C,EACZ,WAAyB,EAAA;QADzD,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAGpD,IAAI,CAAC,cAAc,GAAG,IAAI,eAAe,CAAwB,uBAAuB,EAAE,CAAC,CAAC;QAC5F,KAAK,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;KACjD;IAEO,MAAM,iBAAiB,CAAC,KAA2B,EAAA;QACzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;;QAGtD,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAEhE,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;KACF;IAEO,MAAM,kBAAkB,CAAC,KAA6B,EAAA;QAC5D,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;AACtD,YAAA,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC;YAC7C,IAAI,iBAAiB,GAAG,KAAsB,CAAC;AAE/C,YAAA,IAAI,UAAU,EAAE;gBACd,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACxE,aAAA;YAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAC3C,EAAE,WAAW,EAAE,KAAK,EAAE,EACtB,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,iBAAiB,CACO,CAAC;AAE3B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC/C,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,SAAA;KACF;;IAGD,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC3C;IAED,MAAM,mBAAmB,CAAC,KAA6B,EAAA;AACrD,QAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;KACtC;;AAnDU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,oDAKD,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAL7B,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAHX,MAAM,EAAA,CAAA,CAAA;AAGP,YAAY,GAAA,UAAA,CAAA;AADxB,IAAA,gBAAgB,CAAe,CAAC,qBAAqB,CAAC,CAAC;AAC3C,CAAA,EAAA,YAAY,CAoDxB,CAAA;4FApDY,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOI,QAAQ;;0BAAI,MAAM;2BAAC,kBAAkB,CAAA;;;AClC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;MAKU,yBAAyB,CAAA;AAyCpC;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AA5BnC;;AAEG;AAEH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAE5B,CAAC;AAwBF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAqD,KACxE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;SACrC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;KAC/C;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;uHAxGU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAAzB,yBAAyB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;oBACnC,QAAQ;AACT,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,UAAU,EAAA,CAAA;sBADT,KAAK;gBAON,SAAS,EAAA,CAAA;sBADR,KAAK;gBAON,MAAM,EAAA,CAAA;sBADL,KAAK;gBAON,YAAY,EAAA,CAAA;sBADX,MAAM;;;AC3ET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;MAKU,4BAA4B,CAAA;AAqDvC;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AA5BnC;;AAEG;AAEH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAE5B,CAAC;AAwBF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAwD,KAC3E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;SACrC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;KAClD;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;0HAtHU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8GAA5B,4BAA4B,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;oBACvC,QAAQ;AACT,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,SAAS,EAAA,CAAA;sBADR,KAAK;gBAON,UAAU,EAAA,CAAA;sBADT,KAAK;gBAON,MAAM,EAAA,CAAA;sBADL,KAAK;gBAON,YAAY,EAAA,CAAA;sBADX,KAAK;gBAON,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAON,YAAY,EAAA,CAAA;sBADX,MAAM;;;AC1FT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;MAKU,+BAA+B,CAAA;AAyC1C;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AA5BnC;;AAEG;AAEH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAE5B,CAAC;AAwBF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAA2D,KAC9E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;SACrC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;KACrD;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;6HAxGU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iHAA/B,+BAA+B,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;oBAC1C,QAAQ;AACT,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,MAAM,EAAA,CAAA;sBADL,KAAK;gBAON,WAAW,EAAA,CAAA;sBADV,KAAK;gBAON,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,YAAY,EAAA,CAAA;sBADX,MAAM;;;AChFT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;MAKU,2BAA2B,CAAA;AA6CtC;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AA5BnC;;AAEG;AAEH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAE5B,CAAC;AAwBF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;AACzC,YAAA,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAuD,KAC1E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;SACrC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;KACjD;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;yHA7GU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAA3B,2BAA2B,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,QAAQ;AACT,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,MAAM,EAAA,CAAA;sBADL,KAAK;gBAON,WAAW,EAAA,CAAA;sBADV,KAAK;gBAON,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAON,YAAY,EAAA,CAAA;sBADX,MAAM;;;AC5ET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDG;MAKU,cAAc,CAAA;AAkGzB;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AA5CnC;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAuB,CAAC;AAEzD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE/D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAwB,CAAC;AAwB1D,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;YACvC,gBAAgB,EAAE,CAChB,GAAG,CAAC,KAAK,EAAE,WAAW,CAAkD,KACrE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACrD,sBAAsB,EAAE,CACtB,GAAG,CAAC,KAAK,EAAE,WAAW,CAAwD,KAC3E,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YAC3D,oBAAoB,EAAE,CACpB,GAAG,CAAC,MAAM,EAAE,WAAW,CAAsD,KAC1E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;SACzD,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KACpC;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;4GA5KU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAd,cAAc,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;oBACtB,QAAQ;AACT,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBASjB,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;AC3JT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;MAKU,cAAc,CAAA;IAgDzB,WACU,CAAA,qBAA4C,EAC5C,YAA0B,EAAA;QAD1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAElC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;;IAGD,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;;IAGD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KACpC;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;4GAxFU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAd,cAAc,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;oBACtB,QAAQ;AACT,iBAAA,CAAA;iIAIC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBASjB,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;;;AC9FR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDG;MAmBU,oBAAoB,CAAA;AAlBjC,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,QAAQ,CAAC;AACxC,KAAA;;kHApFY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAhBrB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACxJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDG;MAmBU,iBAAiB,CAAA;AAlB9B,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,KAAK,CAAC;AACrC,KAAA;;+GApFY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAhBlB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAlB7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACzJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDG;MAmBU,kBAAkB,CAAA;AAlB/B,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,MAAM,CAAC;AACtC,KAAA;;gHApFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAhBnB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACxJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDG;MAmBU,kBAAkB,CAAA;AAlB/B,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,MAAM,CAAC;AACtC,KAAA;;gHApFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAhBnB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACrJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DG;MAgBU,uBAAuB,CAAA;AAfpC,IAAA,WAAA,GAAA;;QA0ES,IAAS,CAAA,SAAA,GAAc,WAAW,CAAC;AAC3C,KAAA;;qHA5DY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAbxB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAfnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;;;AClIR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDG;MAmBU,qBAAqB,CAAA;AAlBlC,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,SAAS,CAAC;AACzC,KAAA;;mHApFY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAhBtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;AC1JT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDG;MAmBU,iBAAiB,CAAA;AAlB9B,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,KAAK,CAAC;AACrC,KAAA;;+GApFY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAhBlB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAlB7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACxJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDG;MAmBU,oBAAoB,CAAA;AAlBjC,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,QAAQ,CAAC;AACxC,KAAA;;kHApFY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAhBrB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACtJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDG;MAmBU,mBAAmB,CAAA;AAlBhC,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,OAAO,CAAC;AACvC,KAAA;;iHApFY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAhBpB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAlB/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACvJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDG;MAmBU,qBAAqB,CAAA;AAlBlC,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,SAAS,CAAC;AACzC,KAAA;;mHApFY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAhBtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACxJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDG;MAmBU,sBAAsB,CAAA;AAlBnC,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,UAAU,CAAC;AAC1C,KAAA;;oHApFY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAhBvB,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAlBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACxJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDG;MAmBU,qBAAqB,CAAA;AAlBlC,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,SAAS,CAAC;AACzC,KAAA;;mHApFY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAhBtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACnJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDG;MAgBU,wBAAwB,CAAA;AAfrC,IAAA,WAAA,GAAA;AAiEE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;;QAG7C,IAAS,CAAA,SAAA,GAAc,YAAY,CAAC;AAC5C,KAAA;;sHA5DY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAbzB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAfpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;;;ACtHT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CG;MAgBU,qBAAqB,CAAA;AAflC,IAAA,WAAA,GAAA;AAiEE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;;QAG7C,IAAS,CAAA,SAAA,GAAc,SAAS,CAAC;AACzC,KAAA;;mHA5DY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAbtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAfjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;;;ACvGT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDG;MAKU,mBAAmB,CAAA;IA+C9B,WACU,CAAA,qBAA4C,EAC5C,YAA0B,EAAA;QAD1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAElC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;;IAGD,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;;IAGD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACzC;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;iHAvFU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAAnB,mBAAmB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ;AACT,iBAAA,CAAA;iIAIC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBASjB,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;;;AClHR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEG;MAmBU,uBAAuB,CAAA;AAlBpC,IAAA,WAAA,GAAA;AA4EE;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEpD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAkB,CAAC;AAE1D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;;QAGhD,IAAS,CAAA,SAAA,GAAc,WAAW,CAAC;AAC3C,KAAA;;qHApFY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAhBxB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FAEU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQC,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;ACxJT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;MAKU,oBAAoB,CAAA;IAuD/B,WACU,CAAA,qBAA4C,EAC5C,YAA0B,EAAA;QAD1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAElC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;IAED,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;KAC1C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;kHA7FU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAApB,oBAAoB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ;AACT,iBAAA,CAAA;iIAIC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBASjB,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;;;ACrGR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MAKU,wBAAwB,CAAA;IA2FnC,WACU,CAAA,qBAA4C,EAC5C,YAA0B,EAAA;QAD1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAElC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;;IAGD,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;;IAGD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;;IAGO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;KAC9C;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;sHA1IU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAxB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ;AACT,iBAAA,CAAA;iIAIC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBASjB,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBASN,uBAAuB,EAAA,CAAA;sBADtB,KAAK;gBASN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,0BAA0B,EAAA,CAAA;sBADzB,KAAK;gBAKN,gBAAgB,EAAA,CAAA;sBADf,KAAK;;;ACrHR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;MAKU,mBAAmB,CAAA;IAoG9B,WACU,CAAA,qBAA4C,EAC5C,YAA0B,EAAA;QAD1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAElC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;;IAGD,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;;IAGD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;;IAGO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;SACxC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACzC;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;iHApJU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAAnB,mBAAmB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ;AACT,iBAAA,CAAA;iIAIC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBASjB,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBASN,uBAAuB,EAAA,CAAA;sBADtB,KAAK;gBASN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,0BAA0B,EAAA,CAAA;sBADzB,KAAK;gBAKN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;;;ACtHR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEG;MAKU,wBAAwB,CAAA;AA6DnC;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AA5BnC;;;;AAIG;AAEH,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAyB,CAAC;AAwBhE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACvC,YAAA,MAAM,EAAE;gBACN,GAAG,IAAI,CAAC,MAAM;AACd,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE,oBAAoB,IAAI;oBACvC,oBAAoB,EAAE,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;iBACpF,CAAC;AACF,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE,oBAAoB,IAAI;AACvC,oBAAA,oBAAoB,EAAE,CAAC,gBAAkC,KACvD,oBAAoB,CAAC,IAAI,CAAC,MAAO,CAAC,oBAAqB,CAAC,gBAAgB,CAAC,CAAC;iBAC7E,CAAC;AACH,aAAA;SACsB,CAAC;QAE1B,OAAO,aAAa,CAClB,eAAe,EACf,KAAK,EACL,CAAC,qBAAqE,KAAI;AACxE,YAAA,MAAM,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,CAAC;AACvD,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AAC9B,gBAAA,GAAG,qBAAqB;gBACxB,IAAI,oBAAoB,IAAI;oBAC1B,oBAAoB,EAAE,EAAE,MAAM,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,EAAE;iBAChF,CAAC;AACsB,aAAA,CAAC,CAAC;YAC5B,OAAO,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACnE,SAAC,CACF,CAAC;KACH;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;sHAhJU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAxB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gMAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,gBAAgB,EAAA,CAAA;sBADf,SAAS;uBAAC,aAAa,CAAA;gBAWxB,mBAAmB,EAAA,CAAA;sBADlB,KAAK;gBAUN,cAAc,EAAA,CAAA;sBADb,KAAK;gBASN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBASN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAYN,qBAAqB,EAAA,CAAA;sBADpB,MAAM;;;ACzIT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDG;MAKU,oBAAoB,CAAA;IAiI/B,WACU,CAAA,qBAA4C,EAC5C,YAA0B,EAAA;QAD1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AA5BpC;;;;AAIG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAuB,CAAC;AAEzD;;;;AAIG;AAEH,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE/D;;;;AAIG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAwB,CAAC;AAQ1D,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;;IAGD,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;;IAGD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;YACvC,gBAAgB,EAAE,CAChB,GAAG,CAAC,KAAK,EAAE,WAAW,CAAwD,KAC3E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACrD,sBAAsB,EAAE,CACtB,GAAG,CAAC,KAAK,EAAE,WAAW,CAA8D,KACjF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YAC3D,oBAAoB,EAAE,CACpB,GAAG,CAAC,MAAM,EAAE,WAAW,CAA4D,KAChF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;SACzD,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;KAC1C;;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;kHAzLU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAApB,oBAAoB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ;AACT,iBAAA,CAAA;iIAIC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBASjB,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;gBASN,UAAU,EAAA,CAAA;sBADT,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBASN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBASN,WAAW,EAAA,CAAA;sBADV,KAAK;gBASN,0BAA0B,EAAA,CAAA;sBADzB,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAUN,SAAS,EAAA,CAAA;sBADR,KAAK;gBASN,cAAc,EAAA,CAAA;sBADb,MAAM;gBASP,oBAAoB,EAAA,CAAA;sBADnB,MAAM;gBASP,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;AChMT;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;MAKU,sBAAsB,CAAA;AAuBjC;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B;AACjC;;;;;AAKG;IACI,aAA6B,EAAA;QAb7B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAO1B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;AAEpC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,YAAA,6BAA6B,CAAC,IAAI,CAAC,aAAa,CAAC;AAClD,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;KAC5C;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;oHA1FU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAtB,sBAAsB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,QAAQ;AACT,iBAAA,CAAA;2JAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,YAAY,EAAA,CAAA;sBADX,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,KAAK;;;ACjDR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CG;MAKU,kBAAkB,CAAA;AA2D7B;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAEjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KACxC;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;gHA5HU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ;AACT,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,aAAa,EAAA,CAAA;sBADZ,KAAK;gBASN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAON,OAAO,EAAA,CAAA;sBADN,KAAK;gBAON,OAAO,EAAA,CAAA;sBADN,KAAK;gBAON,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAON,cAAc,EAAA,CAAA;sBADb,KAAK;gBAON,YAAY,EAAA,CAAA;sBADX,KAAK;;;AChGR;;;;AAIG;MAKU,6BAA6B,CAAA;AA6CxC;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAxCnC;;;;AAIG;AAEH,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,YAAY,EAExC,CAAC;AAEJ;;;;AAIG;AAEH,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,YAAY,EAExC,CAAC;AAwBF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;AACpE,YAAA,wBAAwB,EAAE,CACxB,CAAsE,KACnE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3C,CAAC;AAEF,QAAA,OAAO,aAAa,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;KACnD;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;2HA5GU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;+GAA7B,6BAA6B,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,iEAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;oBACtC,QAAQ;AACT,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBASjB,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBASN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBASN,wBAAwB,EAAA,CAAA;sBADvB,MAAM;gBAWP,wBAAwB,EAAA,CAAA;sBADvB,MAAM;;;ACzDT;;;;AAIG;MAKU,oBAAoB,CAAA;AAmC/B;;;;;AAKG;AACH,IAAA,WAAA;AACE;;;;AAIG;IACI,qBAA4C;AACnD;;;;AAIG;IACI,YAA0B,EAAA;QAN1B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAM5C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AA5BnC;;AAEG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAEhC,CAAC;AAwBF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAClC;AACE,YAAA,6BAA6B,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,YAAA,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACH,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;KAC5D;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;SACjC,CAAC;AAEtB,QAAA,OAAO,aAAa,CAClB,WAAW,EACX,KAAK,EACL,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAC1D,CAAC;KACH;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;KACjC;;kHAnGU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAApB,oBAAoB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gMAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;iIAMC,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,MAAM,CAAA;gBAOjB,gBAAgB,EAAA,CAAA;sBADf,SAAS;uBAAC,aAAa,CAAA;gBAOxB,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAON,YAAY,EAAA,CAAA;sBADX,KAAK;gBAON,gBAAgB,EAAA,CAAA;sBADf,MAAM;;;AC3BT;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;MAuEU,WAAW,CAAA;;yGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBApEpB,cAAc;QACd,cAAc;QACd,oBAAoB;QACpB,oBAAoB;QACpB,iBAAiB;QACjB,kBAAkB;QAClB,uBAAuB;QACvB,kBAAkB;QAClB,uBAAuB;QACvB,qBAAqB;QACrB,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;QACrB,sBAAsB;QACtB,oBAAoB;QACpB,wBAAwB;QACxB,mBAAmB;QACnB,yBAAyB;QACzB,wBAAwB;QACxB,4BAA4B;QAC5B,+BAA+B;QAC/B,2BAA2B;QAC3B,6BAA6B;QAC7B,oBAAoB;QACpB,qBAAqB;QACrB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB;AACtB,QAAA,kBAAkB,CAEV,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,aAEtC,cAAc;QACd,cAAc;QACd,oBAAoB;QACpB,oBAAoB;QACpB,iBAAiB;QACjB,kBAAkB;QAClB,uBAAuB;QACvB,kBAAkB;QAClB,uBAAuB;QACvB,qBAAqB;QACrB,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;QACrB,sBAAsB;QACtB,oBAAoB;QACpB,wBAAwB;QACxB,mBAAmB;QACnB,yBAAyB;QACzB,wBAAwB;QACxB,4BAA4B;QAC5B,+BAA+B;QAC/B,2BAA2B;QAC3B,6BAA6B;QAC7B,oBAAoB;QACpB,qBAAqB;QACrB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB;QACtB,kBAAkB,CAAA,EAAA,CAAA,CAAA;0GAIT,WAAW,EAAA,OAAA,EAAA,CApCZ,YAAY,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA;4FAoC7B,WAAW,EAAA,UAAA,EAAA,CAAA;kBAtEvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;wBACd,cAAc;wBACd,oBAAoB;wBACpB,oBAAoB;wBACpB,iBAAiB;wBACjB,kBAAkB;wBAClB,uBAAuB;wBACvB,kBAAkB;wBAClB,uBAAuB;wBACvB,qBAAqB;wBACrB,iBAAiB;wBACjB,oBAAoB;wBACpB,mBAAmB;wBACnB,qBAAqB;wBACrB,sBAAsB;wBACtB,oBAAoB;wBACpB,wBAAwB;wBACxB,mBAAmB;wBACnB,yBAAyB;wBACzB,wBAAwB;wBACxB,4BAA4B;wBAC5B,+BAA+B;wBAC/B,2BAA2B;wBAC3B,6BAA6B;wBAC7B,oBAAoB;wBACpB,qBAAqB;wBACrB,wBAAwB;wBACxB,qBAAqB;wBACrB,mBAAmB;wBACnB,sBAAsB;wBACtB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACzC,oBAAA,OAAO,EAAE;wBACP,cAAc;wBACd,cAAc;wBACd,oBAAoB;wBACpB,oBAAoB;wBACpB,iBAAiB;wBACjB,kBAAkB;wBAClB,uBAAuB;wBACvB,kBAAkB;wBAClB,uBAAuB;wBACvB,qBAAqB;wBACrB,iBAAiB;wBACjB,oBAAoB;wBACpB,mBAAmB;wBACnB,qBAAqB;wBACrB,sBAAsB;wBACtB,oBAAoB;wBACpB,wBAAwB;wBACxB,mBAAmB;wBACnB,yBAAyB;wBACzB,wBAAwB;wBACxB,4BAA4B;wBAC5B,+BAA+B;wBAC/B,2BAA2B;wBAC3B,6BAA6B;wBAC7B,oBAAoB;wBACpB,qBAAqB;wBACrB,wBAAwB;wBACxB,qBAAqB;wBACrB,mBAAmB;wBACnB,sBAAsB;wBACtB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACtID;AAEA;;ACFA;;AAEG;;ACFH;;AAEG;;;;"}
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/lib/services/query.service.ts","../../src/lib/services/plugins.service.ts","../../src/lib/services/dashboard.service.ts","../../src/lib/services/widget.service.ts","../../src/lib/services/hierarchy.service.ts","../../src/lib/decorators/decorators.module.ts","../../src/version.ts","../../src/lib/decorators/trackable.decorator.ts","../../src/lib/services/theme.service.ts","../../src/lib/components/filters/member-filter-tile.component.ts","../../src/lib/components/filters/date-range-filter-tile.component.ts","../../src/lib/components/filters/relative-date-filter-tile.component.ts","../../src/lib/components/filters/criteria-filter-tile.component.ts","../../src/lib/components/charts/chart.component.ts","../../src/lib/components/charts/table.component.ts","../../src/lib/components/charts/column-chart.component.ts","../../src/lib/components/charts/bar-chart.component.ts","../../src/lib/components/charts/area-chart.component.ts","../../src/lib/components/charts/line-chart.component.ts","../../src/lib/components/charts/indicator-chart.component.ts","../../src/lib/components/charts/scatter-chart.component.ts","../../src/lib/components/charts/pie-chart.component.ts","../../src/lib/components/charts/funnel-chart.component.ts","../../src/lib/components/charts/polar-chart.component.ts","../../src/lib/components/charts/treemap-chart.component.ts","../../src/lib/components/charts/sunburst-chart.component.ts","../../src/lib/components/charts/boxplot-chart.component.ts","../../src/lib/components/charts/scattermap-chart.component.ts","../../src/lib/components/charts/areamap-chart.component.ts","../../src/lib/components/charts/pivot-table.component.ts","../../src/lib/components/charts/area-range-chart.component.ts","../../src/lib/components/widgets/table-widget.component.ts","../../src/lib/components/widgets/dashboard-widget.component.ts","../../src/lib/components/widgets/widget-by-id.component.ts","../../src/lib/components/widgets/drilldown-widget.component.ts","../../src/lib/components/widgets/chart-widget.component.ts","../../src/lib/components/widgets/pivot-table-widget.component.ts","../../src/lib/components/dashboard/dashboard-by-id.component.ts","../../src/lib/components/dashboard/dashboard.component.ts","../../src/lib/components/drilldown-breadcrumbs.component.ts","../../src/lib/components/context-menu.component.ts","../../src/lib/sdk-ui.module.ts","../../src/lib/utilities/dashboard-model-translator.ts","../../src/lib/utilities/dashboard-helpers.ts","../../src/lib/utilities/widget-model-translator.ts","../../src/lib/sdk-ui-core-exports.ts","../../src/public-api.ts","../../src/sisense-sdk-ui-angular.ts"],"sourcesContent":["import {\n ContextConnector,\n createContextProviderRenderer,\n CustomSisenseContext,\n CustomSisenseContextProvider,\n CustomThemeProvider,\n CustomThemeProviderProps,\n CustomPluginsProvider,\n CustomPluginsProviderProps,\n} from '@sisense/sdk-ui-preact';\nimport { map } from 'rxjs';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport { PluginsService } from '../services/plugins.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['context']> => {\n return {\n prepareContext() {\n return themeService.getThemeSettings().pipe(\n map((themeSettings) => ({\n themeSettings,\n skipTracking: true,\n })),\n );\n },\n renderContextProvider: createContextProviderRenderer(CustomThemeProvider),\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<CustomSisenseContext> => {\n return {\n async prepareContext() {\n const { showRuntimeErrors, appConfig } = sisenseContextService.getConfig();\n const app = await sisenseContextService.getApp();\n return {\n app,\n isInitialized: true,\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 renderContextProvider: createContextProviderRenderer(CustomSisenseContextProvider),\n };\n};\n\n/**\n * Creates plugins context connector\n *\n * @param pluginsService - The plugin service\n * @internal\n */\nexport const createPluginsContextConnector = (\n pluginsService: PluginsService,\n): ContextConnector<CustomPluginsProviderProps['context']> => {\n return {\n prepareContext() {\n return {\n pluginMap: pluginsService.getPlugins().value,\n registerPlugin: pluginsService.registerPlugin.bind(pluginsService),\n getPlugin: pluginsService.getPlugin.bind(pluginsService),\n };\n },\n renderContextProvider: createContextProviderRenderer(CustomPluginsProvider),\n };\n};\n","export const rootId = 'preact';\nexport const rootContentId = 'preactContent';\nexport const template = `\n <div #${rootId} style=\"width: 100%; height: 100%\"></div>\n`;\nexport const templateWithContent = `\n <div #${rootId} style=\"width: 100%; height: 100%\">\n <div #${rootContentId} style=\"width: 100%; height: 100%\">\n <ng-content></ng-content>\n </div>\n </div>\n`;\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { ClientApplication, createClientApplication } from '@sisense/sdk-ui-preact';\nimport type { SisenseContextProviderProps as SisenseContextConfig } from '@sisense/sdk-ui-preact';\n\nexport { type SisenseContextConfig };\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 working with Sisense Fusion context.\n *\n * @group Contexts\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SisenseContextService {\n private appPromise: Promise<ClientApplication>;\n\n private config: SisenseContextConfig;\n\n constructor(@Inject(SISENSE_CONTEXT_CONFIG_TOKEN) sisenseContextConfig: SisenseContextConfig) {\n this.appPromise = createClientApplication(sisenseContextConfig);\n\n const { showRuntimeErrors } = sisenseContextConfig;\n this.config = {\n ...sisenseContextConfig,\n showRuntimeErrors: showRuntimeErrors ?? true,\n };\n }\n\n /** @internal */\n getApp(): Promise<ClientApplication> {\n return this.appPromise;\n }\n\n getConfig(): SisenseContextConfig {\n return this.config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n executeQuery,\n executeQueryByWidgetId,\n executePivotQuery,\n type ExecuteQueryParams as ExecuteQueryParamsPreact,\n type ExecuteQueryByWidgetIdParams as ExecuteQueryByWidgetIdParamsPreact,\n type ExecutePivotQueryParams as ExecutePivotQueryParamsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\nimport { getFilterListAndRelationsJaql } from '@sisense/sdk-data';\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 * Sync or async callback that allows to modify the JAQL payload before it is sent to the server.\n *\n * @deprecated Use `beforeQuery` instead.\n */\n onBeforeQuery?: 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 Omit<ExecuteQueryHandlers, 'onBeforeQuery'> {}\n\n/**\n * Service for executing data queries.\n *\n * @group Queries\n */\n@Injectable({\n providedIn: 'root',\n})\n@TrackableService<QueryService>(['executeQuery', 'executeQueryByWidgetId', 'executePivotQuery'])\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 beforeQuery,\n onBeforeQuery,\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 },\n app,\n { onBeforeQuery: beforeQuery ?? onBeforeQuery },\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 ?? params.onBeforeQuery,\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","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { PluginComponent } from '@sisense/sdk-ui-preact';\n\n/**\n * Service for working with plugins fetched from an external environment.\n *\n * Provides methods for registering, retrieving, and interacting with plugins.\n *\n * @internal\n * @group Contexts\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PluginsService {\n private pluginMap$: BehaviorSubject<Map<string, PluginComponent>>;\n\n constructor() {\n this.pluginMap$ = new BehaviorSubject(new Map<string, PluginComponent>());\n }\n\n /**\n * Registers a new plugin into the plugin map.\n *\n * @param pluginType - The unique identifier for the plugin type.\n * @param plugin - The plugin instance to register.\n */\n registerPlugin(pluginType: string, plugin: PluginComponent): void {\n const pluginMap = this.pluginMap$.value;\n if (!pluginMap.has(pluginType)) {\n pluginMap.set(pluginType, plugin);\n this.pluginMap$.next(pluginMap);\n }\n }\n\n /**\n * Retrieves a plugin by its type.\n *\n * @param pluginType - The unique identifier for the plugin type.\n * @returns The plugin instance if found, otherwise undefined.\n */\n getPlugin(pluginType: string): PluginComponent | undefined {\n return this.pluginMap$.value.get(pluginType);\n }\n\n /**\n * Retrieves a complete plugin map.\n *\n * @returns A plugin map.\n */\n getPlugins() {\n return this.pluginMap$;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n getDashboardModel,\n getDashboardModels,\n type GetDashboardModelsOptions,\n type GetDashboardModelOptions,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\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","import { Injectable } from '@angular/core';\nimport {\n getWidgetModel,\n type GetWidgetModelParams as GetWidgetModelParamsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\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 { Injectable } from '@angular/core';\nimport {\n HierarchyModel,\n getHierarchyModels,\n type GetHierarchyModelsParams as GetHierarchyModelsParamsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\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 { NgModule } from '@angular/core';\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","export default '1.33.0'","import { DecoratorsModule } from './decorators.module';\nimport { trackProductEvent } from '@sisense/sdk-tracking';\nimport packageVersion from '../../version';\nimport { TrackingEventType } from '@sisense/sdk-tracking/src/registry';\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\nasync 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 { BehaviorSubject } from 'rxjs';\nimport merge from 'ts-deepmerge';\nimport {\n getDefaultThemeSettings,\n getThemeSettingsByOid,\n type ThemeProviderProps as ThemeConfig,\n type CompleteThemeSettings,\n} from '@sisense/sdk-ui-preact';\nimport { type ThemeSettings } from '../sdk-ui-core-exports';\nimport { SisenseContextService } from './sisense-context.service';\nimport { TrackableService } from '../decorators/trackable.decorator';\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 constructor(\n private sisenseContextService: SisenseContextService,\n @Optional() @Inject(THEME_CONFIG_TOKEN) themeConfig?: ThemeConfig,\n ) {\n this.themeSettings$ = new BehaviorSubject<CompleteThemeSettings>(getDefaultThemeSettings());\n void this.initThemeSettings(themeConfig?.theme);\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 await this.updateThemeSettings(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.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 MemberFilterTile,\n type MemberFilterTileProps as MemberFilterTilePropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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=\"400px\" />\n * @group Filter Tiles\n */\n@Component({\n selector: 'csdk-member-filter-tile',\n template,\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(MemberFilterTile, props);\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 DateRangeFilterTile,\n type DateRangeFilterTileProps as DateRangeFilterTilePropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(DateRangeFilterTile, props);\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 RelativeDateFilterTile,\n type RelativeDateFilterTileProps as RelativeDateFilterTilePropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(RelativeDateFilterTile, props);\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 createElement,\n CriteriaFilterTile,\n type CriteriaFilterTileProps as CriteriaFilterTilePropsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(CriteriaFilterTile, props);\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 Chart,\n type ChartProps as ChartPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\nimport { ChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport { ChartDataPointEvent, ChartDataPointsEvent } from '../../types/data-point';\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 *\n * @group Charts\n */\n@Component({\n selector: 'csdk-chart',\n template,\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 * @internal\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<ChartDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointEvent>();\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 }),\n onDataPointContextMenu: (\n ...[point, nativeEvent]: Arguments<ChartPropsPreact['onDataPointContextMenu']>\n ) => this.dataPointContextMenu.emit({ point, nativeEvent }),\n onDataPointsSelected: (\n ...[points, nativeEvent]: Arguments<ChartPropsPreact['onDataPointsSelected']>\n ) => this.dataPointsSelect.emit({ points, nativeEvent }),\n };\n\n return createElement(Chart, props);\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 Table,\n type TableProps as TablePropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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 *\n * @group Data Grids\n */\n@Component({\n selector: 'csdk-table',\n template,\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 * @internal\n */\n @Input()\n dataReady: TableProps['dataReady'];\n\n private componentAdapter: ComponentAdapter;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n styleOptions: this.styleOptions,\n onDataReady: this.dataReady,\n };\n\n return createElement(Table, props);\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type ColumnChartProps as ColumnChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type BarChartProps as BarChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type AreaChartProps as AreaChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type LineChartProps as LineChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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, Input } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type IndicatorChartProps as IndicatorChartPropsPreact } from '@sisense/sdk-ui-preact';\nimport {\n BaseChartEventProps,\n HighchartsBasedChartEventProps,\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 BaseChartEventProps,\n HighchartsBasedChartEventProps {}\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type ScatterChartProps as ScatterChartPropsPreact } from '@sisense/sdk-ui-preact';\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 ScatterChartComponent}.\n */\nexport interface ScatterChartProps\n extends WithoutPreactChartEventProps<ScatterChartPropsPreact>,\n RegularChartEventProps {}\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 *\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 * @internal\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<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ScatterChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'scatter';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type PieChartProps as PieChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type FunnelChartProps as FunnelChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type PolarChartProps as PolarChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 ChartType } from '../../sdk-ui-core-exports';\nimport { type TreemapChartProps as TreemapChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type SunburstChartProps as SunburstChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\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 * @internal\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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type BoxplotChartProps as BoxplotChartPropsPreact } from '@sisense/sdk-ui-preact';\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 BoxplotChartComponent}.\n */\nexport interface BoxplotChartProps\n extends WithoutPreactChartEventProps<BoxplotChartPropsPreact>,\n RegularChartEventProps {}\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 *\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 * @internal\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<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<DataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!BoxplotChartProps.onDataPointsSelected}\n *\n * @category Callbacks\n */\n @Output()\n dataPointsSelect = new EventEmitter<DataPointsEvent>();\n\n /** @internal */\n public chartType: ChartType = 'boxplot';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type ScattermapChartProps as ScattermapChartPropsPreact } from '@sisense/sdk-ui-preact';\nimport { BaseChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointEventHandler } from '../../types/data-point';\n\n/**\n * Props of the {@link ScattermapChartComponent}.\n */\nexport interface ScattermapChartProps\n extends WithoutPreactChartEventProps<ScattermapChartPropsPreact>,\n BaseChartEventProps {\n dataPointClick?: DataPointEventHandler;\n}\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 * @internal\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<DataPointEvent>();\n\n /** @internal */\n public chartType: ChartType = 'scattermap';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n type ChartType,\n type AreamapChartProps as AreamapChartPropsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { BaseChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport { DataPointEvent, DataPointEventHandler } from '../../types/data-point';\n\n/**\n * Props of the {@link AreamapChartComponent}.\n */\nexport interface AreamapChartProps\n extends WithoutPreactChartEventProps<AreamapChartPropsPreact>,\n BaseChartEventProps {\n dataPointClick?: DataPointEventHandler;\n}\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 *\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 * @internal\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<DataPointEvent>();\n\n /** @internal */\n public chartType: ChartType = 'areamap';\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n PivotTable,\n ComponentAdapter,\n createElement,\n type PivotTableProps as PivotTablePropsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services';\nimport { ThemeService } from '../../services';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n dataSet: this.dataSet,\n dataOptions: this.dataOptions,\n filters: this.filters,\n highlights: this.highlights,\n styleOptions: this.styleOptions,\n };\n\n return createElement(PivotTable, props);\n }\n\n /** @internal */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type ChartType } from '../../sdk-ui-core-exports';\nimport { type AreaRangeChartProps as AreaRangeChartPropsPreact } from '@sisense/sdk-ui-preact';\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 *\n * @group Charts\n * @beta\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 * @internal\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 {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n TableWidget,\n type TableWidgetProps as TableWidgetPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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})\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;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(TableWidget, props);\n }\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 DashboardWidget,\n type DashboardWidgetProps,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\n\n/**\n * The Dashboard Widget 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://sisense.dev/guides/sdk/guides/charts/guide-fusion-widgets.html).\n *\n * @example\n * ```html\n * <csdk-dashboard-widget\n * [widgetOid]=\"widgetOid\"\n * [dashboardOid]=\"dashboardOid\"\n * [includeDashboardFilters]=\"true\"\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 * widgetOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';\n * dashboardOid: string = '60f3e3e3e4b0e3e3e4b0e3e3';\n * }\n * ```\n * @group Fusion Assets\n * @deprecated Use the `widget-by-id` component instead.\n * @fusionEmbed\n */\n@Component({\n selector: 'csdk-dashboard-widget',\n template,\n})\nexport class DashboardWidgetComponent implements AfterViewInit, OnChanges, OnDestroy {\n /** @internal */\n @ViewChild(rootId)\n preactRef!: ElementRef<HTMLDivElement>;\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.widgetOid}\n *\n * @category Widget\n */\n @Input()\n widgetOid!: DashboardWidgetProps['widgetOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.dashboardOid}\n *\n * @category Widget\n */\n @Input()\n dashboardOid!: DashboardWidgetProps['dashboardOid'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.filters}\n *\n * @category Data\n */\n @Input()\n filters: DashboardWidgetProps['filters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.highlights}\n *\n * @category Data\n */\n @Input()\n highlights: DashboardWidgetProps['highlights'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.filtersMergeStrategy}\n *\n * @category Data\n */\n @Input()\n filtersMergeStrategy: DashboardWidgetProps['filtersMergeStrategy'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.includeDashboardFilters}\n *\n * @category Data\n */\n @Input()\n includeDashboardFilters: DashboardWidgetProps['includeDashboardFilters'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.title}\n *\n * @category Widget\n */\n @Input()\n title: DashboardWidgetProps['title'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.description}\n *\n * @category Widget\n */\n @Input()\n description: DashboardWidgetProps['description'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.styleOptions}\n *\n * @category Widget\n */\n @Input()\n styleOptions: DashboardWidgetProps['styleOptions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardWidgetProps.highlightSelectionDisabled}\n *\n * @category Widget\n */\n @Input()\n highlightSelectionDisabled: DashboardWidgetProps['highlightSelectionDisabled'];\n\n /** @internal */\n @Input()\n drilldownOptions: DashboardWidgetProps['drilldownOptions'];\n\n private componentAdapter: ComponentAdapter;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n /** @internal */\n private createPreactComponent() {\n const props = {\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 };\n\n return createElement(DashboardWidget, props);\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 WidgetById,\n type WidgetByIdProps as WidgetByIdPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\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://sisense.dev/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})\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 * @internal\n */\n @Input()\n dataReady: WidgetByIdProps['dataReady'];\n\n private componentAdapter: ComponentAdapter;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n /** @internal */\n private createPreactComponent() {\n const props = {\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 return createElement(WidgetById, props);\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 createElement,\n DrilldownWidget,\n type DrilldownWidgetProps,\n type ContextMenuProps,\n type CustomDrilldownResult as CustomDrilldownResultBase,\n type ComponentRenderer,\n DrilldownBreadcrumbsProps,\n createWrapperElement,\n createWrapperElementHandler,\n createComponentRenderer,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport {\n templateWithContent,\n rootId,\n rootContentId,\n} from '../../component-wrapper-helpers/template';\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 *\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-drilldown-widget',\n template: templateWithContent,\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.drilldownDimensions}\n *\n * @category Widget\n * @deprecated Use {@link drilldownPaths} instead\n *\n */\n @Input()\n drilldownDimensions: DrilldownWidgetProps['drilldownDimensions'];\n\n /**\n * {@inheritDoc @sisense/sdk-ui!DrilldownWidgetProps.drilldownPaths}\n *\n * @category Widget\n *\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n drilldownDimensions: this.drilldownDimensions,\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 } as DrilldownWidgetProps;\n\n return createElement(\n DrilldownWidget,\n props,\n (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 );\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,\n type ChartWidgetProps as ChartWidgetPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport type { Arguments } from '../../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\nimport { ChartEventProps, WithoutPreactChartEventProps } from '../../types/chart-event-props';\nimport { ChartDataPointEvent, ChartDataPointsEvent } from '../../types/data-point';\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=\"800px\" />\n *\n * @group Dashboards\n */\n@Component({\n selector: 'csdk-chart-widget',\n template,\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 * @internal\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<ChartDataPointEvent>();\n\n /**\n * {@inheritDoc @sisense/sdk-ui!ChartWidgetProps.onDataPointContextMenu}\n *\n * @category Callbacks\n */\n @Output()\n dataPointContextMenu = new EventEmitter<ChartDataPointEvent>();\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;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 }),\n onDataPointContextMenu: (\n ...[point, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointContextMenu']>\n ) => this.dataPointContextMenu.emit({ point, nativeEvent }),\n onDataPointsSelected: (\n ...[points, nativeEvent]: Arguments<ChartWidgetPropsPreact['onDataPointsSelected']>\n ) => this.dataPointsSelect.emit({ points, nativeEvent }),\n };\n\n return createElement(ChartWidget, props);\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 PivotTableWidget as PivotTableWidgetPreact,\n ComponentAdapter,\n createElement,\n type PivotTableWidgetProps as PivotTableWidgetPropsPreact,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services';\nimport { ThemeService } from '../../services';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\n\n/**\n * Props of the {@link PivotTableWidgetComponent}.\n */\nexport interface PivotTableWidgetProps extends PivotTableWidgetPropsPreact {}\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})\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;\n\n constructor(\n private sisenseContextService: SisenseContextService,\n private themeService: ThemeService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /** @internal */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /** @internal */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(PivotTableWidgetPreact, props);\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 DashboardById,\n type DashboardByIdProps as DashboardByIdPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createPluginsContextConnector,\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\nimport { PluginsService } from '../../services/plugins.service';\nimport type { DashboardByIdConfig } from '../../types';\n\n/**\n * Props of the {@link DashboardByIdComponent}.\n */\nexport interface DashboardByIdProps extends DashboardByIdPropsPreact {\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardByIdProps.config}\n */\n config?: DashboardByIdConfig;\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})\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;\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 * Plugin service\n *\n * @internal\n * @category Constructor\n */\n public pluginService: PluginsService,\n ) {\n this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n createPluginsContextConnector(this.pluginService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n dashboardOid: this.dashboardOid,\n config: this.config,\n };\n\n return createElement(DashboardById, props);\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 Dashboard,\n type DashboardProps as DashboardPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../../services/sisense-context.service';\nimport { ThemeService } from '../../services/theme.service';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../../component-wrapper-helpers';\nimport { template, rootId } from '../../component-wrapper-helpers/template';\nimport type { DashboardConfig } from '../../types';\n\n/**\n * Props of the {@link DashboardComponent}.\n */\nexport interface DashboardProps extends DashboardPropsPreact {\n /**\n * {@inheritDoc @sisense/sdk-ui!DashboardProps.config}\n */\n config?: DashboardConfig;\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})\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 private componentAdapter: ComponentAdapter;\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 this.componentAdapter = new ComponentAdapter(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 };\n\n return createElement(Dashboard, props);\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 DrilldownBreadcrumbs,\n type DrilldownBreadcrumbsProps as DrilldownBreadcrumbsPropsPreact,\n ComponentAdapter,\n createElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport type { Arguments, ArgumentsAsObject } from '../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../component-wrapper-helpers';\nimport { template, rootId } from '../component-wrapper-helpers/template';\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})\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\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 return createElement(DrilldownBreadcrumbs, props);\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 ContextMenu,\n type ContextMenuProps,\n ComponentAdapter,\n createElement,\n createWrapperElement,\n} from '@sisense/sdk-ui-preact';\nimport { SisenseContextService } from '../services/sisense-context.service';\nimport { ThemeService } from '../services/theme.service';\nimport type { ArgumentsAsObject } from '../types/utility-types';\nimport {\n createSisenseContextConnector,\n createThemeContextConnector,\n} from '../component-wrapper-helpers';\nimport { rootId, rootContentId, templateWithContent } from '../component-wrapper-helpers/template';\n\n/**\n * Context Menu Component\n *\n * @group Drilldown\n */\n@Component({\n selector: 'csdk-context-menu',\n template: templateWithContent,\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;\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(\n () => this.createPreactComponent(),\n [\n createSisenseContextConnector(this.sisenseContextService),\n createThemeContextConnector(this.themeService),\n ],\n );\n }\n\n /**\n * @internal\n */\n ngAfterViewInit() {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n\n /**\n * @internal\n */\n ngOnChanges() {\n if (this.preactRef) {\n this.componentAdapter.render(this.preactRef.nativeElement);\n }\n }\n\n private createPreactComponent() {\n const props = {\n position: this.position,\n itemSections: this.itemSections,\n closeContextMenu: () => this.contextMenuClose.emit(),\n } as ContextMenuProps;\n\n return createElement(\n ContextMenu,\n props,\n createWrapperElement(this.preactContentRef.nativeElement),\n );\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.componentAdapter.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\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 DashboardWidgetComponent,\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} 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 *\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 DashboardWidgetComponent,\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 ],\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 DashboardWidgetComponent,\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 ],\n providers: [],\n})\nexport class SdkUiModule {}\n","import {\n type DashboardModel,\n dashboardModelTranslator as dashboardModelTranslatorPreact,\n} from '@sisense/sdk-ui-preact';\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 { dashboardHelpers as dashboardHelpersPreact } from '@sisense/sdk-ui-preact';\nimport { DashboardProps } from '../components';\nimport { Filter, FilterRelations } from '@sisense/sdk-data';\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, 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, 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, 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(dashboard, filterToReplace, newFilter);\n};\n\n/**\n * {@inheritDoc @sisense/sdk-ui!dashboardHelpers.modifyFilter}\n *\n * @deprecated Use {@link replaceFilter} instead\n *\n * @param dashboard - The original dashboard (`DashboardProps`) containing the filter to modify.\n * @param filterToModify - The existing filter to be modified.\n * @param newFilter - The new filter to replace the existing one.\n * @returns A new dashboard instance with the specified filter modified.\n */\nexport const modifyFilter = (\n dashboard: DashboardProps,\n filterToModify: Filter,\n newFilter: Filter,\n): DashboardProps => {\n return dashboardHelpersPreact.modifyFilter(dashboard, filterToModify, newFilter);\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, 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, filtersToRemove);\n};\n","import {\n widgetModelTranslator as widgetModelTranslatorPreact,\n type WidgetModel,\n type TextWidgetProps,\n} from '@sisense/sdk-ui-preact';\nimport { ExecutePivotQueryParams, ExecuteQueryParams } from '../services';\nimport {\n ChartProps,\n ChartWidgetProps,\n PivotTableProps,\n PivotTableWidgetProps,\n TableProps,\n} from '../components';\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","// This file re-exports common types/utils from @sisense/sdk-ui-preact\n\n// Re-exports utils from @sisense/sdk-ui-preact\nexport { boxWhiskerProcessResult } from '@sisense/sdk-ui-preact';\n\n// Re-exports types from @sisense/sdk-ui-preact\nexport type {\n ChartType,\n CartesianChartType,\n CategoricalChartType,\n ScatterChartType,\n IndicatorChartType,\n BoxplotChartType,\n ScattermapChartType,\n AreamapChartType,\n RangeChartType,\n TableType,\n AreaSubtype,\n LineSubtype,\n PieSubtype,\n PolarSubtype,\n StackableSubtype,\n BoxplotSubtype,\n WidgetType,\n CartesianWidgetType,\n CategoricalWidgetType,\n TabularWidgetType,\n\n // Data Options:\n ChartDataOptions,\n CartesianChartDataOptions,\n CategoricalChartDataOptions,\n ScatterChartDataOptions,\n IndicatorChartDataOptions,\n BoxplotChartDataOptions,\n BoxplotChartCustomDataOptions,\n ScattermapChartDataOptions,\n AreamapChartDataOptions,\n TableDataOptions,\n PivotTableDataOptions,\n WidgetDataOptions,\n RangeChartDataOptions,\n\n // Data Options related:\n NumberFormatConfig,\n DecimalScale,\n DataColorCondition,\n ConditionalDataColorOptions,\n DataColorOptions,\n RangeDataColorOptions,\n UniformDataColorOptions,\n ValueToColorMap,\n MultiColumnValueToColorMap,\n SortDirection,\n BoxWhiskerType,\n ScattermapLocationLevel,\n StyledColumn,\n StyledMeasureColumn,\n PivotRowsSort,\n\n // Style Options:\n ChartStyleOptions,\n LineStyleOptions,\n AreaStyleOptions,\n StackableStyleOptions,\n PieStyleOptions,\n FunnelStyleOptions,\n PolarStyleOptions,\n IndicatorStyleOptions,\n NumericSimpleIndicatorStyleOptions,\n NumericBarIndicatorStyleOptions,\n GaugeIndicatorStyleOptions,\n ScatterStyleOptions,\n TreemapStyleOptions,\n SunburstStyleOptions,\n BoxplotStyleOptions,\n ScattermapStyleOptions,\n AreamapStyleOptions,\n ChartWidgetStyleOptions,\n WidgetStyleOptions,\n DashboardWidgetStyleOptions,\n WidgetByIdStyleOptions,\n TableStyleOptions,\n PivotTableStyleOptions,\n PivotTableWidgetStyleOptions,\n AreaRangeStyleOptions,\n\n // Style related:\n DataLimits,\n Legend,\n Markers,\n Labels,\n IndicatorComponents,\n ScatterMarkerSize,\n LineWidth,\n AxisLabel,\n Convolution,\n SeriesLabels,\n X2Title,\n ScattermapMarkers,\n\n // Models:\n WidgetModel,\n DashboardModel,\n HierarchyModel,\n\n // Charts related:\n BeforeRenderHandler,\n DataPoint,\n ScatterDataPoint,\n HighchartsOptions,\n BoxplotDataPoint,\n IndicatorBeforeRenderHandler,\n IndicatorRenderOptions,\n\n // Dashboard:\n DashboardLayoutOptions,\n WidgetsPanelLayout,\n WidgetsPanelColumnLayout,\n WidgetId,\n WidgetsOptions,\n\n // General (Others):\n AppConfig,\n DateConfig,\n MenuItemSection,\n MonthOfYear,\n DayOfWeek,\n DateLevel,\n ThemeOid,\n GetDashboardModelOptions,\n GetDashboardModelsOptions,\n SeriesChartType,\n MenuPosition,\n ThemeSettings,\n Color,\n ColorPaletteTheme,\n Navigator,\n DrilldownOptions,\n DrilldownSelection,\n Member,\n FilterVariant,\n Hierarchy,\n CriteriaFilterType,\n\n // Props:\n CommonWidgetProps,\n WidgetProps,\n TextWidgetProps,\n} from '@sisense/sdk-ui-preact';\n","/**\n * Public API Surface of @sisense/sdk-ui-angular\n */\nexport * from './lib/sdk-ui.module';\nexport * from './lib/components';\nexport * from './lib/services';\nexport * from './lib/utilities';\nexport * from './lib/sdk-ui-core-exports';\nexport type {\n DataPointEvent,\n AreamapDataPointEvent,\n BoxplotDataPointEvent,\n ScatterDataPointEvent,\n ScattermapDataPointEvent,\n ChartDataPointEvent,\n DataPointsEvent,\n ChartDataPointsEvent,\n ScatterDataPointsEvent,\n DataPointEventHandler,\n ScattermapDataPointEventHandler,\n AreamapDataPointEventHandler,\n BoxplotDataPointEventHandler,\n DataPointsEventHandler,\n ScatterDataPointEventHandler,\n ScatterDataPointsEventHandler,\n DashboardConfig,\n DashboardByIdConfig,\n DashboardFiltersPanelConfig,\n} from './lib/types';\n\n/* Re-exports internal core functionalities to use in dependant angular modules */\nexport {\n createThemeContextConnector,\n createSisenseContextConnector,\n createPluginsContextConnector,\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.SisenseContextService","i2.ThemeService","i1.ChartComponent","i1.ThemeService","PivotTableWidgetPreact","i3.PluginsService","dashboardModelTranslatorPreact","dashboardHelpersPreact","widgetModelTranslatorPreact"],"mappings":"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"}