/**-----------------------------------------------------------------------------------------
* 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;
}