/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChange, QueryList, EventEmitter, ElementRef, EmbeddedViewRef } from '@angular/core'; import { IntlService } from '@progress/kendo-angular-intl'; import { LocalizationService } from '@progress/kendo-angular-l10n'; import { Group, ImageExportOptions, Surface } from '@progress/kendo-drawing'; import { Subscription } from 'rxjs'; import { ChartAxis } from './api-types/chart-axis.interface'; import { ChartPane } from './api-types/chart-pane.interface'; import { ChartPlotArea } from './api-types/chart-plotarea.interface'; import { SeriesPoint } from './api-types/series-point.interface'; import './chart-defaults'; import { ChartOptions } from './chart-options.interface'; import { DonutCenterTemplateDirective } from './chart/donut-center-template.directive'; import { NoDataTemplateDirective } from './chart/no-data-template.directive'; import { SeriesItemComponent } from './chart/series-item.component'; import { CrosshairTooltipsContainerComponent } from './chart/tooltip/crosshair-tooltips-container.component'; import { PopupSettings } from './chart/tooltip/popup-settings.interface'; import { TooltipPopupComponent } from './chart/tooltip/tooltip-popup.component'; import { ChartSVGExportOptions, ChartVisualExportOptions } from './common/api-types'; import { ChartInstanceObserver } from './common/chart-instance-observer'; import { ConfigurationService } from './common/configuration.service'; import { AxisDefaults, CategoryAxis, ChartArea, DragAction, Legend, Pane, PaneDefaults, PlotArea, Series, SeriesDefaults, Subtitle, Title, Tooltip, ValueAxis, XAxis, YAxis, Zoomable } from './common/property-types'; import { ThemeService } from './common/theme.service'; import { AxisLabelClickEvent } from './events/axis-label-click-event'; import { DragEndEvent } from './events/drag-end-event'; import { DragEvent } from './events/drag-event'; import { DragStartEvent } from './events/drag-start-event'; import { InstanceEventService } from './events/instance-event.service'; import { LegendItemClickEvent } from './events/legend-item-click-event'; import { LegendItemHoverEvent } from './events/legend-item-hover-event'; import { LegendItemLeaveEvent } from './events/legend-item-leave-event'; import { NoteClickEvent } from './events/note-click-event'; import { NoteHoverEvent } from './events/note-hover-event'; import { NoteLeaveEvent } from './events/note-leave-event'; import { PaneRenderEvent } from './events/pane-render-event'; import { PlotAreaClickEvent } from './events/plot-area-click-event'; import { PlotAreaHoverEvent } from './events/plot-area-hover-event'; import { PlotAreaLeaveEvent } from './events/plot-area-leave-event'; import { RenderEvent } from './events/render-event'; import { SelectEndEvent } from './events/select-end-event'; import { SelectEvent } from './events/select-event'; import { SelectStartEvent } from './events/select-start-event'; import { SeriesClickEvent } from './events/series-click-event'; import { SeriesHoverEvent } from './events/series-hover-event'; import { SeriesLeaveEvent } from './events/series-leave-event'; import { SeriesOverEvent } from './events/series-over-event'; import { ZoomEndEvent } from './events/zoom-end-event'; import { ZoomEvent } from './events/zoom-event'; import { ZoomStartEvent } from './events/zoom-start-event'; import { SeriesComponent } from './chart/series.component'; import { DrilldownEvent } from './events/drilldown-event'; import * as i0 from "@angular/core"; /** * Represents the Kendo UI Chart component for Angular. * * @example * ```html * * * * * * * * * ``` * * @remarks * Supported children are: {@link SeriesComponent}, {@link SeriesDefaultsComponent}, {@link PanesComponent}, {@link PaneDefaultsComponent}, * {@link CategoryAxisComponent}, {@link ValueAxisComponent}, {@link XAxisComponent}, {@link YAxisComponent}, {@link LegendComponent}, * {@link ChartAreaComponent}, {@link PlotAreaComponent}, {@link TooltipComponent}, {@link SubtitleComponent}, {@link TitleComponent}, * {@link ZoomableComponent}, {@link AxisDefaultsComponent}, {@link ChartCustomMessagesComponent} {@link PaneComponent}. */ export declare class ChartComponent implements ChartOptions, OnChanges, OnInit, OnDestroy, AfterViewInit, AfterViewChecked { configurationService: ConfigurationService; themeService: ThemeService; protected element: ElementRef; protected intl: IntlService; protected localizationService: LocalizationService; protected ngZone: NgZone; protected instanceEventService: InstanceEventService; protected changeDetector: ChangeDetectorRef; protected renderer: Renderer2; /** * Defines whether the Chart can be panned. * Panning is not available for the `Donut`, `Pie`, `Funnel`, `Pyramid`, `Polar`, and `Radar` series. * @default false */ pannable: boolean | DragAction; /** * Defines the rendering mode of the Chart. * @default 'svg' */ renderAs: 'svg' | 'canvas'; /** * Defines the default colors for the Chart series. */ seriesColors: string[]; /** * Defines the subtitle configuration of the Chart. */ subtitle: string | Subtitle; /** * Defines the title configuration of the Chart. */ title: string | Title; /** * Defines whether to show the no-data template when the Chart has no data. * @default true */ noData: boolean; /** * Defines whether the Chart plays animations when it displays the series. * By default, animations are enabled. * @default true */ transitions: boolean; /** * Defines the zoom configuration of the Chart. */ zoomable: boolean | Zoomable; /** * Defines the default configuration for all axes. */ axisDefaults: AxisDefaults; /** * Defines the category axis configuration. */ categoryAxis: CategoryAxis | CategoryAxis[]; /** * Defines the Chart area configuration. */ chartArea: ChartArea; /** * Defines the Chart legend configuration. */ legend: Legend; /** * Defines the Chart panes configuration. */ panes: Pane[]; /** * Defines the default configuration for all panes. */ paneDefaults: PaneDefaults; /** * Defines the plot area configuration. */ plotArea: PlotArea; /** * Defines the Chart series configuration. */ series: Series[]; /** * Defines the default configuration for all series. */ seriesDefaults: SeriesDefaults; /** * Defines the Chart tooltip configuration. */ tooltip: Tooltip; /** * Defines the value axis configuration. */ valueAxis: ValueAxis | ValueAxis[]; /** * Defines the X axis configuration. */ xAxis: XAxis | XAxis[]; /** * Defines the Y axis configuration. */ yAxis: YAxis | YAxis[]; /** * Fires when you click an axis label ([see example](slug:events_chart)). */ axisLabelClick: EventEmitter; /** * Fires as long as you drag the Chart with the mouse or through swipe gestures. */ drag: EventEmitter; /** * Fires when you stop dragging the Chart. */ dragEnd: EventEmitter; /** * Fires when you start dragging the Chart. */ dragStart: EventEmitter; /** * Fires when you hover over a legend item ([see example](slug:events_chart)). */ legendItemHover: EventEmitter; /** * Fires when the cursor leaves a legend item. */ legendItemLeave: EventEmitter; /** * Fires when you click a note. */ noteClick: EventEmitter; /** * Fires when you hover over a note. */ noteHover: EventEmitter; /** * Fires when the cursor leaves a note. */ noteLeave: EventEmitter; /** * Fires when a pane is rendered because the Chart is rendered, performs panning or zooming, or is exported with different options. * The event is used to render custom visuals in the panes. */ paneRender: EventEmitter; /** * Fires when you click the plot area ([see example](slug:events_chart)). * The `click` event is triggered by the `tap` and `contextmenu` events. * To distinguish between the original events, inspect the `e.originalEvent.type` field. */ plotAreaClick: EventEmitter; /** * Fires when you hover the plot area ([see example](slug:events_chart)). */ plotAreaHover: EventEmitter; /** * Fires when the cursor leaves the plot area. */ plotAreaLeave: EventEmitter; /** * Fires when the Chart is ready to render on screen ([see example](slug:events_chart)). * For example, you can use it to remove loading indicators. * Any changes made to the options are ignored. */ render: EventEmitter; /** * Fires when you modify the selection. * * The range units include a generic axis category index (0-based) and a date axis represented by a date instance. */ select: EventEmitter; /** * Fires when you complete the modification of the selection. * * The range units include a generic axis category index (0-based) and a date axis represented by a date instance. */ selectEnd: EventEmitter; /** * Fires when you start modifying the axis selection. * * The range units include a generic axis category index (0-based) and a date axis represented by a date instance. */ selectStart: EventEmitter; /** * Fires when you click the Chart series. * * The `click` event will be triggered by the `tap` and `contextmenu` events ([see example](slug:events_chart)). * To distinguish between the original events, inspect the `e.originalEvent.type` field. */ seriesClick: EventEmitter; /** * Fires when you want to drill down on a specific point. */ drilldown: EventEmitter; /** * Fires when you hover the Chart series ([see example](slug:events_chart)). */ seriesHover: EventEmitter; /** * Fires when the cursor enters a series. */ seriesOver: EventEmitter; /** * Fires when the cursor leaves a series. */ seriesLeave: EventEmitter; /** * Fires as long as you zoom the Chart by using the mousewheel operation. */ zoom: EventEmitter; /** * Fires when you stop zooming the Chart. */ zoomEnd: EventEmitter; /** * Fires when you use the mousewheel to zoom the Chart. */ zoomStart: EventEmitter; /** * Fires when a legend item is clicked before the selected series visibility is toggled. * You can prevent this event. */ legendItemClick: EventEmitter; /** * Fires when the drill-down level has changed. */ drilldownLevelChange: EventEmitter; /** * Limits the automatic resizing of the Chart. Sets the maximum number of times per second * that the component redraws its content when the size of its container changes. * To disable the automatic resizing, set it to `0`. * * @default 10 */ resizeRateLimit: number; /** * Defines the settings for the tooltip popup. */ popupSettings: PopupSettings; /** * Gets or sets the current drill-down level for [Drilldown Charts](slug:drilldown_chart_charts). * * To return to a previous level, set the value to a number less than the current level. * To return to the root chart, set the value to `0`. * * Setting the value to a number greater than the current level has no effect. */ get drilldownLevel(): number; set drilldownLevel(level: number); /** * Represents the Drawing `Surface` of the Chart. */ surface: Surface; seriesCollectionComponent: QueryList; seriesComponents: QueryList; donutCenterTemplate: DonutCenterTemplateDirective; noDataTemplate: NoDataTemplateDirective; tooltipInstance: TooltipPopupComponent; crossahirTooltips: CrosshairTooltipsContainerComponent; surfaceElement: ElementRef; /** * @hidden */ donutCenterStyle: any; /** * @hidden */ messageFor(key: string): string; /** * @hidden */ showLicenseWatermark: boolean; /** * @hidden */ licenseMessage?: string; instance: any; protected options: any; protected theme: any; protected optionsChange: Subscription; protected suppressTransitions: boolean; protected resizeTimeout: any; protected redrawTimeout: any; protected domSubscriptions: () => void; protected destroyed: boolean; protected subscriptions: Subscription; protected rtl: boolean; protected hostClasses: string[]; protected drilldownState: EmbeddedViewRef[]; constructor(configurationService: ConfigurationService, themeService: ThemeService, element: ElementRef, intl: IntlService, localizationService: LocalizationService, ngZone: NgZone, instanceEventService: InstanceEventService, changeDetector: ChangeDetectorRef, renderer: Renderer2); ngOnInit(): void; ngAfterViewInit(): void; private onDrilldown; ngAfterViewChecked(): void; ngOnChanges(changes: { [propertyName: string]: SimpleChange; }): void; /** * Updates the component fields with the specified values and refreshes the Chart. * * Use this method when the configuration values cannot be set through the template. * * @example * ```ts-no-run * chart.notifyChanges({ title: { text: 'New Title' } }); * ``` * * @param changes An object containing the updated input fields. */ notifyChanges(changes: any): void; ngOnDestroy(): void; protected createInstance(element: any, observer: ChartInstanceObserver): void; /** * Exports the Chart as an image. The export operation is asynchronous and returns a promise. * * @param options - The parameters for the exported image. * @returns A promise that resolves with a PNG image encoded as a Data URI. */ exportImage(options?: ImageExportOptions): Promise; /** * Exports the Chart as an SVG document. The export operation is asynchronous and returns a promise. * * @param options - The parameters for the exported file. * @returns A promise that resolves with an SVG document encoded as a Data URI. */ exportSVG(options?: ChartSVGExportOptions): Promise; /** * Exports the Chart as a Drawing `Scene`. * * @param options - The parameters for the export operation. * @returns The root `Group` of the scene. */ exportVisual(options?: ChartVisualExportOptions | any): Group; /** * Returns the axis with the specified name. * * @param name - The axis name. * @returns The axis with a corresponding name. */ findAxisByName(name: string): ChartAxis; /** * Returns the pane at the specified index. * * @param index - The pane index. * @returns The pane at the specified index. */ findPaneByIndex(index: number): ChartPane; /** * Returns the pane with the specified name. * * @param name - The name of the pane. * @returns The pane with the provided name. */ findPaneByName(name: string): ChartPane; /** * Returns the plot area of the Chart. * * @returns The plot area of the Chart. */ getPlotArea(): ChartPlotArea; /** * Highlights the series points or the segments of a Pie, Donut, Funnel, or Pyramid Charts. * * See [Series Highlight]({% slug serieshighlight_chart_charts %}) for more details (with an [example](slug:serieshighlight_chart_charts#toc-toggling-the-highlight-with-code)). * * @param show - A Boolean value that indicates whether the highlight is shown or hidden. * @param filter - A string that represents the series or category name, an object with the series and category name, or a function which will be called for each point. The function should return `true` for the points for which the highlight is toggled. */ toggleHighlight(show: boolean, filter: string | { category: string; series: string; } | { (point: SeriesPoint): boolean; }): void; /** * Hides the tooltip of the Chart. */ hideTooltip(): void; /** * Shows the Chart tooltip of a specific point or the shared tooltip of a specific category. * * @param filter - The category for a shared tooltip or a function which will be called for each point until the function returns `true`. */ showTooltip(filter: number | string | Date | { (point: SeriesPoint): boolean; }): void; protected init(): void; /** * Detects the size of the container and redraws the Chart. * Resizing is automatic unless you set the `resizeRateLimit` option to `0`. */ resize(): void; /** * @hidden */ onResize(): void; /** * Reloads the Chart appearance settings from the current [Kendo UI Theme]({% slug themesandstyles %}). * * Call this method after loading a different theme stylesheet. */ reloadTheme(): void; protected onLegendItemClick(e: any): void; protected onInit(e: any): void; protected onRender(e: any): void; protected onShowTooltip(e: any): void; protected onHideTooltip(e: any): void; protected trigger(name: string, e: any): boolean; protected requiresHandlers(names: string[]): boolean; protected refresh(): void; protected setChartAreaSize(): void; protected updateOptions(): void; /** * @hidden */ tooltipMouseleave(e: any): void; /** * @hidden */ chartMouseleave(e: any): void; protected get canRender(): boolean; protected get autoResize(): boolean; protected activeEmitter(name: string): any; protected getDonutCenterStyle(): any; protected refreshWait(): void; protected run(callback: any, inZone?: boolean, detectChanges?: boolean): void; protected detectChanges(): void; protected intlChange(): void; protected rtlChange(): void; protected deferredRedraw(): void; protected updateDirection(): void; protected setDirection(): void; protected get isRTL(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }