import * as tslib_1 from "tslib";
import { EventEmitter, Output, Input } from '@angular/core';
import { delegateCombine } from "igniteui-angular-core";
import { ChartHitTestMode, ChartHitTestMode_$type } from "./ChartHitTestMode";
import { WindowResponse, WindowResponse_$type } from "./WindowResponse";
import { Visibility, Visibility_$type } from "igniteui-angular-core";
import { InteractionState, InteractionState_$type } from "igniteui-angular-core";
import { ModifierKeys, ModifierKeys_$type } from "igniteui-angular-core";
import { HorizontalAlignment, HorizontalAlignment_$type } from "igniteui-angular-core";
import { IgxChartCursorEventArgs } from "./igx-chart-cursor-event-args";
import { IgxDataChartMouseButtonEventArgs } from "./igx-data-chart-mouse-button-event-args";
import { IgxChartMouseEventArgs } from "./igx-chart-mouse-event-args";
import { IgxRectChangedEventArgs } from "igniteui-angular-core";
import { TypeRegistrar } from "igniteui-angular-core";
import { NamePatcher, fromPoint, toPoint, ensureBool, fromRect, toRect, ensureEnum, brushToString, stringToBrush, toSpinal, initializePropertiesFromCss } from "igniteui-angular-core";
/**
 * Represents a control for viewing series objects.
*/
export const IgxSeriesViewerComponent_PROVIDERS = [];
export class IgxSeriesViewerComponent {
    constructor() {
        this.__p = null;
        this._hasUserValues = new Set();
        this._stylingContainer = null;
        this._stylingParent = null;
        this._inStyling = false;
        this._seriesCursorMouseMove = null;
        this._seriesMouseLeftButtonDown = null;
        this._seriesMouseLeftButtonUp = null;
        this._seriesMouseMove = null;
        this._seriesMouseEnter = null;
        this._seriesMouseLeave = null;
        this._windowRectChanged = null;
        this._sizeChanged = null;
        this._actualWindowRectChanged = null;
        this._gridAreaRectChanged = null;
        this._zoneRunner = null;
        if (this._styling) {
            NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this));
        }
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    createImplementation() {
        return null;
    }
    ngOnInit() {
    }
    /**
     * @hidden
     */
    get i() {
        return this._implementation;
    } /**
                                 * @hidden
                                 */
    static _createFromInternal(internal) {
        if (!internal) {
            return null;
        }
        if (!internal.$type) {
            return null;
        }
        let name = internal.$type.name;
        let externalName = "Igx" + name + "Component";
        if (!TypeRegistrar.isRegistered(externalName)) {
            return null;
        }
        return TypeRegistrar.create(externalName);
    }
    onImplementationCreated() {
    }
    /**
     * Gets or sets the cross hair point (in world coordinates)
     * Either or both of the crosshair point's X and Y may be set to double.NaN, in which
     * case the relevant crosshair line is hidden.
    *
    * The `crosshairPoint` property is used to gets/sets the cross hair point (in world coordinates).
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     crosshairVisibility="visible"
    *     crosshairPoint={x:.8,y:.2}>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.crosshairPoint = {x:.8,y:.2};
    * ```
    */
    get crosshairPoint() {
        return fromPoint(this.i.mi);
    }
    set crosshairPoint(v) {
        this.i.mi = toPoint(v);
    }
    /**
     * Gets or sets whether the series animations should be allowed when a range change has been detected on an axis.
    *
    * `animateSeriesWhenAxisRangeChanges` is a Boolean property to override the default behavior in which series do not animate if an axis range changes.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     animateSeriesWhenAxisRangeChanges=true>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value"
    *         transitionInMode="accordionFromBottom"
    *         isTransitionInEnabled=true
    *         transitionInSpeedType="indexScaled"
    *         transitionDuration=1000>
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.animateSeriesWhenAxisRangeChanges = true;
    * ```
    */
    get animateSeriesWhenAxisRangeChanges() {
        return this.i.cd;
    }
    set animateSeriesWhenAxisRangeChanges(v) {
        this.i.cd = ensureBool(v);
    }
    /**
     * Gets the viewport rectangle associated with the SeriesViewer, the physical dimensions of the plot area.
    *
    * ```ts
    * let viewPortRect: IgxRect = this.chart.viewportRect;
    * ```
    */
    get viewportRect() {
        return fromRect(this.i.m3);
    }
    /**
     * Gets the EffectiveViewport rectangle, representing the effective viewport area after margins have been subtracted.
    *
    *  ``ts
    * let viewport: IgxRect = this.chart.effectiveViewport;
    *
    * ```
    *
    * ```
    */
    get effectiveViewport() {
        return fromRect(this.i.mu);
    }
    set effectiveViewport(v) {
        this.i.mu = toRect(v);
    }
    /**
     * Represents the subset area within the viewport into which content should be mapped.
     * This is the projection of the current EffectiveViewport into the viewport at current zoom level.
    *
    * ```ts
    * let contentViewport: IgxRect = this.chart.contentViewport;
    * ```
    */
    get contentViewport() {
        return fromRect(this.i.mt);
    }
    /**
     * A rectangle representing the portion of the SeriesViewer currently in view.
     * A rectangle at X=0, Y=0 with a Height and Width of 1 implies the entire plotting area is in view.  A Height and Width of .5 would imply that the view is halfway zoomed in.
    *
    * You can set the `windowRect` to zoom in on an area of interest in the chart.
    *
    * ```ts
    * this.chart.windowRect = {left:0, top:1, width: .5, height: .5};
    * ```
    */
    get windowRect() {
        return fromRect(this.i.m4);
    }
    set windowRect(v) {
        this.i.m4 = toRect(v);
    }
    /**
     * Gets or sets whether the series viewer should use cached tiles during zooms rather than the default live content.
    */
    get useTiledZooming() {
        return this.i.dj;
    }
    set useTiledZooming(v) {
        this.i.dj = ensureBool(v);
    }
    /**
     * Gets or sets whether the series viewer should prefer selecting higher resolution tiles over lower resolution tiles when performing tile zooming. Setting this to true will lower performance but increase quality.
    */
    get preferHigherResolutionTiles() {
        return this.i.db;
    }
    set preferHigherResolutionTiles(v) {
        this.i.db = ensureBool(v);
    }
    /**
     * Gets or sets the maximum number of zoom tiles that the series viewer should cache while in tiled zooming mode.
    */
    get zoomTileCacheSize() {
        return this.i.e6;
    }
    set zoomTileCacheSize(v) {
        this.i.e6 = +v;
    }
    /**
     * Gets or sets the duration the highlighting/de-highlighting effects.
    *
    * The `highlightingTransitionDuration` property is used to set the time for highlighting transition in milliseconds .
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    * 	HighlightingTransitionDuration=500 >
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value" >
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * chart.HighlightingTransitionDuration=500;
    * ```
    */
    get highlightingTransitionDuration() {
        return this.i.e5;
    }
    set highlightingTransitionDuration(v) {
        this.i.e5 = +v;
    }
    /**
     * Gets or sets the whether the series viewer can allow the page to pan if a control pan is not possible in the requested direction.
    */
    get isPagePanningAllowed() {
        return this.i.cy;
    }
    set isPagePanningAllowed(v) {
        this.i.cy = ensureBool(v);
    }
    /**
     * Determines the method of hit testing used when mousing over elements in the chart.
    *
    * ```ts
    * this.chart.contentHitTestMode = ChartHitTestMode.Computational;
    * ```
    */
    get contentHitTestMode() {
        return this.i.ap;
    }
    set contentHitTestMode(v) {
        this.i.ap = ensureEnum(ChartHitTestMode_$type, v);
    }
    /**
     * Resolved method of hit testing used when the pointer is over elements in the chart.
    *
    * ```ts
    * let actualContentHitTestMode: ChartHitTestMode  =this.chart.actualContentHitTestMode;
    * ```
    */
    get actualContentHitTestMode() {
        return this.i.ao;
    }
    set actualContentHitTestMode(v) {
        this.i.ao = ensureEnum(ChartHitTestMode_$type, v);
    }
    /**
     * Gets or sets whether all surface interactions with the plot area should be disabled.
    *
    * The `isSurfaceInteractionDisabled` property is used to enable/disable interactions with the plot surface.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     isSurfaceInteractionDisabled=true>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * chart.isSurfaceInteractionDisabled=true;
    * ```
    */
    get isSurfaceInteractionDisabled() {
        return this.i.cz;
    }
    set isSurfaceInteractionDisabled(v) {
        this.i.cz = ensureBool(v);
    }
    /**
     * Indicates if this SeriesViewer is a map.
    */
    get isMap() {
        return this.i.cx;
    }
    /**
     * The response to user panning and zooming: whether to update the view immediately while the user action is happening, or to defer the update to after the user action is complete.  The user action will be an action such as a mouse drag which causes panning and/or zooming to occur.
    *
    * The `windowResponse` property is used to set the response to user panning and zooming: whether to update the view immediately while the user action is happening, or to defer the update to after the user action is complete.
    * The user action will be an action such as a mouse drag which causes panning and/or zooming to occur.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     isHorizontalZoomEnabled=true
    *     windowResponse="deferred">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.windowResponse="deferred";
    * ```
    */
    get windowResponse() {
        return this.i.ba;
    }
    set windowResponse(v) {
        this.i.ba = ensureEnum(WindowResponse_$type, v);
    }
    /**
     * Sets or gets the minimum width that the window rect is allowed to reach before being clamped.
     * Decrease this value if you want to allow for further zooming into the viewer.
     * If this value is lowered too much it can cause graphical corruption due to floating point arithmetic inaccuracy.
    *
    * The `windowRectMinWidth` property is used to set or get the minimum width that the window rect is allowed to reach before being clamped.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     isHorizontalZoomEnabled=true
    *     windowRectMinWidth=.2>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.WindowRectMinWidth=".2";
    * ```
    */
    get windowRectMinWidth() {
        return this.i.ex;
    }
    set windowRectMinWidth(v) {
        this.i.ex = +v;
    }
    /**
     * Gets or sets the current SeriesViewer's crosshair visibility override.
    *
    * The `crosshairVisibility` property is used to gets or sets the current Chart's crosshair visibility override. Note: setting this property does not affect the mobile browser version of the chart.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     crosshairVisibility="visible">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.crosshairVisibility = Visibility.Visible;
    * ```
    */
    get crosshairVisibility() {
        return this.i.m7;
    }
    set crosshairVisibility(v) {
        this.i.m7 = ensureEnum(Visibility_$type, v);
    }
    /**
     * Gets or sets the brush used as the background for the current SeriesViewer object's plot area.
    *
    * `plotAreaBackground` property set the background brush to the current Chart object's plot area.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     plotAreaBackground="#F0F8FF">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.plotAreaBackground="#F0F8FF";
    * ```
    */
    get plotAreaBackground() {
        return brushToString(this.i.md);
    }
    set plotAreaBackground(v) {
        this.i.md = stringToBrush(v);
    }
    /**
     * Gets or sets the DefaultInteraction property.
     * The default interaction state defines the SeriesViewer's response to mouse events.
    *
    * The default interaction state defines the chart's response to mouse events.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     isHorizontalZoomEnabled=true
    *     defaultInteraction="dragPan">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.defaultInteraction = InteractionState.DragPan;
    * ```
    */
    get defaultInteraction() {
        return this.i.bc;
    }
    set defaultInteraction(v) {
        this.i.bc = ensureEnum(InteractionState_$type, v);
    }
    /**
     * Gets or sets the RightButtonDefaultInteraction property.
     * The default interaction state defines the SeriesViewer's response to right button mouse events.
    */
    get rightButtonDefaultInteraction() {
        return this.i.be;
    }
    set rightButtonDefaultInteraction(v) {
        this.i.be = ensureEnum(InteractionState_$type, v);
    }
    /**
     * Gets or sets the current SeriesViewer's DragModifier property.
    *
    * `dragModifier` is useful to enable zooming when zooming is not the default interaction.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     isHorizontalZoomEnabled=true
    *     defaultInteraction="dragPan"
    *     dragModifier="alt">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.dragModifier = ModifierKeys.Alt;
    * ```
    */
    get dragModifier() {
        return this.i.l0;
    }
    set dragModifier(v) {
        this.i.l0 = ensureEnum(ModifierKeys_$type, v);
    }
    /**
     * Gets or sets the current SeriesViewer's PanModifier property.
    *
    * `panModifier` is useful to enable panning when panning is not the default interaction.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     isHorizontalZoomEnabled=true
    *     defaultInteraction="dragZoom"
    *     panModifier="alt">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.panModifier = ModifierKeys.Alt;
    * ```
    */
    get panModifier() {
        return this.i.l1;
    }
    set panModifier(v) {
        this.i.l1 = ensureEnum(ModifierKeys_$type, v);
    }
    /**
     * Gets or sets the preview rectangle.
     * The preview rectangle may be set to Rect.Empty, in which case the visible preview
     * strokePath is hidden.
    *
    * `previewRect` can be used to highlight an area of importance.
    *
    * ```ts
    * this.chart.previewRect = {left:0,top:0,height:.5,width:.5};
    * ```
    */
    get previewRect() {
        return fromRect(this.i.mz);
    }
    set previewRect(v) {
        this.i.mz = toRect(v);
    }
    /**
     * A number between 0 and 1 determining the position of the horizontal scroll.
     * This property is effectively a shortcut to the X position of the WindowRect property.
    *
    * ```ts
    * this.chart.windowPositionHorizontal = .2;
    * ```
    */
    get windowPositionHorizontal() {
        return this.i.ev;
    }
    set windowPositionHorizontal(v) {
        this.i.ev = +v;
    }
    /**
     * A number between 0 and 1 determining the position of the vertical scroll.
     * This property is effectively a shortcut to the Y position of the WindowRect property.
    *
    * ```ts
    * this.chart.windowPositionVertical = .2;
    * ```
    */
    get windowPositionVertical() {
        return this.i.ew;
    }
    set windowPositionVertical(v) {
        this.i.ew = +v;
    }
    /**
     * Text to display above the plot area.
    *
    * The `chartTitle` property is used to set the title to display for the component.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.title="Items Sold";
    * ```
    */
    get chartTitle() {
        return this.i.gq;
    }
    set chartTitle(v) {
        this.i.gq = v;
    }
    /**
     * Gets or sets the TitleHorizontalAlignment property.
    *
    * The `subtitleHorizontalAlignment` property is used to set horizontal alignment for the subtitle.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="date of sale: 1/1/2018"
    *     titleHorizontalAlignment="left"
    *     subtitleHorizontalAlignment="left">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.titleHorizontalAlignment="left";
    * ```
    */
    get titleHorizontalAlignment() {
        return this.i.lz;
    }
    set titleHorizontalAlignment(v) {
        this.i.lz = ensureEnum(HorizontalAlignment_$type, v);
    }
    /**
     * Gets or sets the SubtitleHorizontalAlignment property.
    *
    * The `subtitleBottomMargin` property is used to set the horizontal alignment for the subtitle.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="Date of Sale: 1/1/2018"
    *     titleHorizontalAlignment="left"
    *     subtitleHorizontalAlignment="left">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.subtitleHorizontalAlignment="left";
    * ```
    */
    get subtitleHorizontalAlignment() {
        return this.i.ly;
    }
    set subtitleHorizontalAlignment(v) {
        this.i.ly = ensureEnum(HorizontalAlignment_$type, v);
    }
    /**
     * Font settings for the title.
    */
    get titleTextStyle() {
        return this.i.gx;
    }
    set titleTextStyle(v) {
        this.i.gx = v;
    }
    /**
     * Font settings for the subtitle.
    */
    get subtitleTextStyle() {
        return this.i.gl;
    }
    set subtitleTextStyle(v) {
        this.i.gl = v;
    }
    /**
     * Gets or sets the Color used for the Title Text.
    *
    * The `titleTextColor` property is used to set the title brush.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="date of sale: 1/1/2018"
    *     titleTextColor="blue">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.titleTextColor="blue" ;
    * ```
    */
    get titleTextColor() {
        return brushToString(this.i.mg);
    }
    set titleTextColor(v) {
        this.i.mg = stringToBrush(v);
    }
    /**
     * Gets or sets the Color used for the Subtitle Text.
    *
    * The `subtitleTextColor` property is used to set the color for the subtitle.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="Date of Sale: 1/1/2018"
    *     subtitleTextColor="blue">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.subtitleTextColor="blue";
    * ```
    */
    get subtitleTextColor() {
        return brushToString(this.i.mf);
    }
    set subtitleTextColor(v) {
        this.i.mf = stringToBrush(v);
    }
    /**
     * Margin applied above the title.
    *
    * The `titleTopMargin` property is used to set the top margin for the title.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     titleLeftMarging=10
    *     titleTopMargin=10
    *     titleRightMargin=10
    *     titleBottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.titleTopMargin=10;
    * ```
    */
    get titleTopMargin() {
        return this.i.et;
    }
    set titleTopMargin(v) {
        this.i.et = +v;
    }
    /**
     * Margin applied to the left of the title.
    *
    * The `titleLeftMarging` property is used to set the left margin for the title.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     titleLeftMarging=10
    *     titleTopMargin=10
    *     titleRightMargin=10
    *     titleBottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.titleLeftMarging=10;
    * ```
    */
    get titleLeftMargin() {
        return this.i.er;
    }
    set titleLeftMargin(v) {
        this.i.er = +v;
    }
    /**
     * Margin applied to the right of the title.
    *
    * The `titleRightMargin` property is used to set the right margin for the title.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     titleLeftMarging=10
    *     titleTopMargin=10
    *     titleRightMargin=10
    *     titleBottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.titleRightMargin=10;
    * ```
    */
    get titleRightMargin() {
        return this.i.es;
    }
    set titleRightMargin(v) {
        this.i.es = +v;
    }
    /**
     * Margin applied below the title.
    *
    * The `titleBottomMargin` property is used to set the bottom margin for the title.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     titleLeftMarging=10
    *     titleTopMargin=10
    *     titleRightMargin=10
    *     titleBottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.titleBottomMargin=20;
    * ```
    */
    get titleBottomMargin() {
        return this.i.eq;
    }
    set titleBottomMargin(v) {
        this.i.eq = +v;
    }
    /**
     * Margin applied above the subtitle.
    *
    * The `subtitleTopMargin` property is used to set the top margin for the subtitle.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="date of sale: 1/1/2018"
    *     subtitleLeftMarging=10
    *     subtitleTopMargin=10
    *     subtitleRightMargin=10
    *     subtitleBottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.subtitleTopMargin =10;
    * ```
    */
    get subtitleTopMargin() {
        return this.i.ep;
    }
    set subtitleTopMargin(v) {
        this.i.ep = +v;
    }
    /**
     * Margin applied to the left of the subtitle.
    *
    * The `subtitleLeftMarging` property is used to set the left margin for the subtitle.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="date of sale: 1/1/2018"
    *     subtitleLeftMarging=10
    *     subtitleTopMargin=10
    *     subtitleRightMargin=10
    *     subtitleBottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.subtitleLeftMarging=10;
    * ```
    */
    get subtitleLeftMargin() {
        return this.i.en;
    }
    set subtitleLeftMargin(v) {
        this.i.en = +v;
    }
    /**
     * Margin applied to the right of the subtitle.
    *
    * The `subTitleRightMargin` property is used to set the right margin for the subtitle.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="date of sale: 1/1/2018"
    *     subtitleLeftMarging=10
    *     subtitleTopMargin=10
    *     subTitleRightMargin=10
    *     subtitleBottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.subtitleLeftMarging=10;
    * ```
    */
    get subtitleRightMargin() {
        return this.i.eo;
    }
    set subtitleRightMargin(v) {
        this.i.eo = +v;
    }
    /**
     * Margin applied below the subtitle.
    *
    * The `subtitleBottomMargin` property is used to set the bottom margin for the subtitle.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="date of sale: 1/1/2018"
    *     subtitleLeftMarging=10
    *     subtitleTopMargin=10
    *     subtitleRightMargin=10
    *     subtitleBottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.subtitleBottomMargin = 20;
    * ```
    */
    get subtitleBottomMargin() {
        return this.i.em;
    }
    set subtitleBottomMargin(v) {
        this.i.em = +v;
    }
    /**
     * Gets or sets the Subtitle property.
     * The Title property defines the Subtitle of the chart
    *
    * The `subtitle` property is used to display subtitle for the component.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     title="Items Sold"
    *     subtitle="Date of Sale: 1/1/2018">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.subtitle="Date of Sale: 1/1/2018";
    * ```
    */
    get subtitle() {
        return this.i.ge;
    }
    set subtitle(v) {
        this.i.ge = v;
    }
    /**
     * Sets or gets the top margin to use around the chart content.
    *
    * The `topMargin` property is used to set the top margin.
    *
    * ```html
    *  <igx-data-chart
    *     [dataSource]="data"
    *     leftMargin=20
    *     rightMargin=20
    *     topMargin=30
    *     bottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.topMargin=30;
    * ```
    */
    get topMargin() {
        return this.i.eu;
    }
    set topMargin(v) {
        this.i.eu = +v;
    }
    /**
     * Sets or gets the left margin to use around the chart content.
    *
    * The `leftMargin` property is used to set the left margin.
    *
    * ```html
    *  <igx-data-chart
    *     [dataSource]="data"
    *     leftMargin=20
    *     rightMargin=20
    *     topMargin=30
    *     bottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    *  this.chart.leftMargin = 20;
    * ```
    */
    get leftMargin() {
        return this.i.ej;
    }
    set leftMargin(v) {
        this.i.ej = +v;
    }
    /**
     * Sets or gets the right margin to use around the chart content.
    *
    * The `rightMargin` property is used to set the left margin around the chart content in the canvas.
    *
    * ```html
    *  <igx-data-chart
    *     [dataSource]="data"
    *     leftMargin=20
    *     rightMargin=20
    *     topMargin=30
    *     bottomMargin=20>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.rightMargin=20;
    * ```
    */
    get rightMargin() {
        return this.i.el;
    }
    set rightMargin(v) {
        this.i.el = +v;
    }
    /**
     * Sets or gets the bottom margin to use around the chart content.
    *
    * The `bottomMargin` property is used to gets/set the bottom margin around the chart content in the canvas.
    *
    * ```ts
    * this.chart.bottomMargin = 50;
    * ```
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     bottomMargin=50>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    */
    get bottomMargin() {
        return this.i.ef;
    }
    set bottomMargin(v) {
        this.i.ef = +v;
    }
    /**
     * Sets or gets the automatic width to add when automatically adding margins to the chart.
    *
    * The `autoMarginWidth` propertry is used find the automatic width to add when automatically adding margins to the chart.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     autoMarginWidth=50>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * this.chart.autoMarginWidth = 50;
    * ```
    */
    get autoMarginWidth() {
        return this.i.ee;
    }
    set autoMarginWidth(v) {
        this.i.ee = +v;
    }
    /**
     * Sets or gets the automatic height to add when automatically adding margins to the chart.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     autoMarginHeight=50>
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-column-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-column-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    *  this.chart.autoMarginHeight = 50;
    * ```
    */
    get autoMarginHeight() {
        return this.i.ed;
    }
    set autoMarginHeight(v) {
        this.i.ed = +v;
    }
    /**
     * Gets or sets the IsAntiAliasingEnabledDuringInteraction property.
    */
    get isAntiAliasingEnabledDuringInteraction() {
        return this.i.cp;
    }
    set isAntiAliasingEnabledDuringInteraction(v) {
        this.i.cp = ensureBool(v);
    }
    /**
     * Gets or sets the scaling value used to affect the pixel density of the control.
     * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
     * to appear blurry.
    */
    get pixelScalingRatio() {
        return this.i.ek;
    }
    set pixelScalingRatio(v) {
        this.i.ek = +v;
    }
    /**
     * Method of pixel scaling to use during end user interaction with the chart.
    */
    get interactionPixelScalingRatio() {
        return this.i.ei;
    }
    set interactionPixelScalingRatio(v) {
        this.i.ei = +v;
    }
    /**
     * Gets the resolved pixel scaling ratio.
    *
    * A higher scaling ratio will produce crisper visuals at the expense of memory. Lower values will cause the control to appear blurry
    *
    * ```ts
    * let actualPixelScalingRatio: number = this.chart.actualPixelScalingRatio;
    * ```
    */
    get actualPixelScalingRatio() {
        return this.i.ea;
    }
    set actualPixelScalingRatio(v) {
        this.i.ea = +v;
    }
    /**
     * Resolved method of pixel scaling to use during end user interaction with the chart.
    *
    * ```ts
    * let actualInteractionPixelScalingRatio: number = this.chart.actualInteractionPixelScalingRatio;
    * ```
    */
    get actualInteractionPixelScalingRatio() {
        return this.i.d9;
    }
    set actualInteractionPixelScalingRatio(v) {
        this.i.d9 = +v;
    }
    /**
     * Gets the actual value of the window rectangle, which represents the current zoom level.
    *
    * ```ts
    * let actualWindowRect: IgxRect = this.chart.actualWindowRect;
    * ``
    * ```
    */
    get actualWindowRect() {
        return fromRect(this.i.mq);
    }
    set actualWindowRect(v) {
        this.i.mq = toRect(v);
    }
    /**
     * A number between 0 and 1 determining the position of the horizontal scroll.
     * This property is effectively a shortcut to the Left of the ActualWindowRect property.
    *
    * ```ts
    * let actualWindowPositionHorizontal: number = this.chart.actualWindowPositionHorizontal;
    * ```
    */
    get actualWindowPositionHorizontal() {
        return this.i.eb;
    }
    set actualWindowPositionHorizontal(v) {
        this.i.eb = +v;
    }
    /**
     * A number between 0 and 1 determining the position of the vertical scroll.
     * This property is effectively a shortcut to the Top of the ActualWindowRect property.
    *
    * ```ts
    * let actualWindowPositionVertical: number = this.chart.actualWindowPositionVertical;
    * ``
    * ```
    */
    get actualWindowPositionVertical() {
        return this.i.ec;
    }
    set actualWindowPositionVertical(v) {
        this.i.ec = +v;
    }
    get hasUserValues() {
        return this._hasUserValues;
    }
    __m(propertyName) {
        if (!this._inStyling) {
            this._hasUserValues.add(propertyName);
        }
    }
    _styling(container, component, parent) {
        if (this._inStyling) {
            return;
        }
        this._inStyling = true;
        this._stylingContainer = container;
        this._stylingParent = component;
        let genericPrefix = "";
        let typeName = this.i.$type.name;
        if (typeName.indexOf("Xam") === 0) {
            typeName = typeName.substring(3);
        }
        genericPrefix = toSpinal("SeriesViewerComponent");
        let additionalPrefixes = [];
        let prefix = toSpinal(typeName);
        additionalPrefixes.push(prefix + "-");
        let b = this.i.$type.baseType;
        while (b && b.name != "Object" &&
            b.name != "Base" &&
            b.name != "Control" &&
            b.Name != "DependencyObject" &&
            b.Name != "FrameworkElement") {
            typeName = b.name;
            if (typeName.indexOf("Xam") === 0) {
                typeName = typeName.substring(3);
            }
            let basePrefix = toSpinal(typeName);
            additionalPrefixes.push(basePrefix + "-");
            b = b.baseType;
        }
        if (parent) {
            let parentTypeName = parent.i.$type.name;
            if (parentTypeName.indexOf("Xam") === 0) {
                parentTypeName = parentTypeName.substring(3);
            }
            let parentPrefix = toSpinal(parentTypeName);
            additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-");
            additionalPrefixes.push(parentPrefix + "-" + prefix + "-");
        }
        initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes);
        if (this._otherStyling) {
            this._otherStyling(container, component, parent);
        }
        this._inStyling = false;
    }
    /**
     * Hides the active main tooltip, if displayed.
    
    *
    * ```ts
    * this.chart.hideToolTip();
    * ```
    */
    hideToolTip() {
        this.i.ho();
    }
    /**
     * Manually starts a tiled zoom if one isn't already running.
    
    */
    startTiledZoomingIfNecessary() {
        this.i.j7();
    }
    /**
     * Manually ends a tiled zoom if one is running.
    
    */
    endTiledZoomingIfRunning() {
        this.i.hj();
    }
    /**
     * Clears the tile zoom tile cache so that new tiles will be generated. Only applies if the viewer is using a tile based zoom.
    
    */
    clearTileZoomCache() {
        this.i.hd();
    }
    /**
     * Resets the zoom level to default.
    
    */
    resetZoom() {
        this.i.j1();
    }
    /**
     * Gets actual window scale for horizontal dimension of the control
    
    *
    * ```ts
    * let actualWindowScaleHorizontal: number = chart.getActualWindowScaleHorizontal();
    * ```
    */
    getActualWindowScaleHorizontal() {
        let iv = this.i.eg();
        return (iv);
    }
    /**
     * Gets actual window scale for vertical dimension of the control
    
    *
    * ```ts
    * let actualWindowScaleVertical: number = chart.getActualWindowScaleVertical();
    * ```
    */
    getActualWindowScaleVertical() {
        let iv = this.i.eh();
        return (iv);
    }
    /**
     * Notification from the containing object that the container has been resized.
    
    */
    notifyContainerResized() {
        this.i.notifyContainerResized();
    }
    /**
     * Attaches the given series to the chart.
    
    * @param s  * The series to attach to the chart.
    */
    attachSeries(s) {
        this.i.hb((s == null ? null : s.i));
    }
    notifySetItem(source_, index, oldItem, newItem) {
        this.i.h0(source_, index, oldItem, newItem);
    }
    /**
     * Used to manually notify the SeriesViewer that the data source has reset or cleared its items.  Invoking this method is only necessary if that datasource is not observable.
    
    * @param source_  * The data source which was cleared or reset.
    *
    * ```ts
    * this.chart.notifyClearItems(this.data);
    * ```
    */
    notifyClearItems(source_) {
        this.i.hv(source_);
    }
    notifyInsertItem(source_, index, newItem) {
        this.i.hy(source_, index, newItem);
    }
    notifyRemoveItem(source_, index, oldItem) {
        this.i.hz(source_, index, oldItem);
    }
    /**
     * Release any resources held by the control.
    
    */
    destroy() {
        this.i.destroy();
    }
    /**
     * Use to force the SeriesViewer to finish any deferred work before printing or evaluating its visual.
     * This should only be called if the visual of the SeriesViewer needs to be synchronously saved or evaluated.
     * Calling this method too often will hinder the performance of the SeriesViewer.
    
    *
    * ```ts
    * this.chart.flush();
    * ```
    */
    flush() {
        this.i.flush();
    }
    /**
     * Occurs when the cursors are moved over a series in this SeriesViewer.
    */
    get seriesCursorMouseMove() {
        if (this._seriesCursorMouseMove == null) {
            this._seriesCursorMouseMove = new EventEmitter();
            this.i.seriesCursorMouseMove = delegateCombine(this.i.seriesCursorMouseMove, (o, e) => {
                let outerArgs = new IgxChartCursorEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeSeriesCursorMouseMove) {
                    this.beforeSeriesCursorMouseMove(this, outerArgs);
                }
                this._seriesCursorMouseMove.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._seriesCursorMouseMove;
    }
    /**
     * Occurs when the left mouse button is pressed while the mouse pointer is over a Series.
    *
    * The `SeriesMouseLeftButtonDown` event occurs when the left mouse button is pressed while the mouse pointer is over an element of this chart.
    *
    * &lt;-- position: content member-->
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     (seriesMouseLeftButtonDown)="onSeriesMouseLeftButtonDown($event)">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value"
    *         thickness=5>
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * public onSeriesMouseLeftButtonDown(event: {sender: any, args: DataChartMouseButtonEventArgs})
    * {
    *     var item = event.args.item;
    * }
    * ```
    */
    get seriesMouseLeftButtonDown() {
        if (this._seriesMouseLeftButtonDown == null) {
            this._seriesMouseLeftButtonDown = new EventEmitter();
            this.i.seriesMouseLeftButtonDown = delegateCombine(this.i.seriesMouseLeftButtonDown, (o, e) => {
                this._runInZone(() => {
                    let outerArgs = new IgxDataChartMouseButtonEventArgs();
                    outerArgs._provideImplementation(e);
                    if (this.beforeSeriesMouseLeftButtonDown) {
                        this.beforeSeriesMouseLeftButtonDown(this, outerArgs);
                    }
                    this._seriesMouseLeftButtonDown.emit({
                        sender: this,
                        args: outerArgs
                    });
                });
            });
        }
        return this._seriesMouseLeftButtonDown;
    }
    /**
     * Occurs when the left mouse button is released while the mouse pointer is over a Series.
    *
    * The `SeriesMouseLeftButtonUp` event occurs when the left mouse button is released while the mouse pointer is over an element of this chart.
    *
    * &lt;-- position: content member-->
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     (seriesMouseLeftButtonUp)="onSeriesMouseLeftButtonUp($event)">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value"
    *         thickness=5>
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * &lt;-- position: content member-->
    *
    * ```ts
    * public onSeriesMouseLeftButtonUp(event: {sender: any, args: DataChartMouseButtonEventArgs})
    * {
    *     var item = event.args.item;
    * }
    * ```
    *
    * ```ts
    * public onSeriesMouseLeftButtonUp =(event: any, args: DataChartMouseButtonEventArgs )
    * {
    *
    * }
    * ```
    */
    get seriesMouseLeftButtonUp() {
        if (this._seriesMouseLeftButtonUp == null) {
            this._seriesMouseLeftButtonUp = new EventEmitter();
            this.i.seriesMouseLeftButtonUp = delegateCombine(this.i.seriesMouseLeftButtonUp, (o, e) => {
                this._runInZone(() => {
                    let outerArgs = new IgxDataChartMouseButtonEventArgs();
                    outerArgs._provideImplementation(e);
                    if (this.beforeSeriesMouseLeftButtonUp) {
                        this.beforeSeriesMouseLeftButtonUp(this, outerArgs);
                    }
                    this._seriesMouseLeftButtonUp.emit({
                        sender: this,
                        args: outerArgs
                    });
                });
            });
        }
        return this._seriesMouseLeftButtonUp;
    }
    /**
     * Occurs when the mouse pointer moves while over a Series.
    *
    * The `SeriesMouseMove` event occurs when the left mouse pointer moves while over an element of this chart.
    *
    * &lt;-- position: content member-->
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     (seriesMouseMove)="onSeriesMouseMove($event)">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value"
    *         thickness=5>
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * &lt;-- position: content member-->
    *
    * ```ts
    * public onSeriesMouseMove(event: {sender: any, args: ChartMouseEventArgs})
    * {
    *     var item = event.args.item;
    * }
    * ```
    *
    * ```ts
    * public onSeriesMouseMove =( event: any, args: ChartMouseEventArgs) => {
    *                  }
    * ```
    */
    get seriesMouseMove() {
        if (this._seriesMouseMove == null) {
            this._seriesMouseMove = new EventEmitter();
            this.i.seriesMouseMove = delegateCombine(this.i.seriesMouseMove, (o, e) => {
                let outerArgs = new IgxChartMouseEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeSeriesMouseMove) {
                    this.beforeSeriesMouseMove(this, outerArgs);
                }
                this._seriesMouseMove.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._seriesMouseMove;
    }
    /**
     * Occurs when the mouse pointer enters a Series.
    *
    * The `SeriesMouseEnter` event occurs when the left mouse pointer enters an element of this chart.
    *
    * &lt;-- position: content member-->
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     (seriesMouseEnter)="onSeriesMouseEnter($event)">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value"
    *         thickness=5>
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * public onSeriesMouseEnter(event: {sender: any, args: ChartMouseEventArgs})
    * {
    *     var item = event.args.item;
    * }
    * ```
    */
    get seriesMouseEnter() {
        if (this._seriesMouseEnter == null) {
            this._seriesMouseEnter = new EventEmitter();
            this.i.seriesMouseEnter = delegateCombine(this.i.seriesMouseEnter, (o, e) => {
                this._runInZone(() => {
                    let outerArgs = new IgxChartMouseEventArgs();
                    outerArgs._provideImplementation(e);
                    if (this.beforeSeriesMouseEnter) {
                        this.beforeSeriesMouseEnter(this, outerArgs);
                    }
                    this._seriesMouseEnter.emit({
                        sender: this,
                        args: outerArgs
                    });
                });
            });
        }
        return this._seriesMouseEnter;
    }
    /**
     * Occurs when the mouse pointer leaves a Series.
    *
    * The `SeriesMouseLeave` event occurs when the left mouse pointer leaves an element of this chart.
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     (seriesMouseLeave)="onSeriesMouseLeave($event)">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value"
    *         thickness=5>
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * ```ts
    * public onSeriesMouseLeave(event: {sender: any, args: ChartMouseEventArgs})
    * {
    *     var item = event.args.item;
    * }
    * ```
    */
    get seriesMouseLeave() {
        if (this._seriesMouseLeave == null) {
            this._seriesMouseLeave = new EventEmitter();
            this.i.seriesMouseLeave = delegateCombine(this.i.seriesMouseLeave, (o, e) => {
                this._runInZone(() => {
                    let outerArgs = new IgxChartMouseEventArgs();
                    outerArgs._provideImplementation(e);
                    if (this.beforeSeriesMouseLeave) {
                        this.beforeSeriesMouseLeave(this, outerArgs);
                    }
                    this._seriesMouseLeave.emit({
                        sender: this,
                        args: outerArgs
                    });
                });
            });
        }
        return this._seriesMouseLeave;
    }
    /**
     * Occurs just after the current SeriesViewer's window rectangle is changed.
    *
    * &lt;-- position: content member-->
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     isHorizontalZoomEnabled=true
    *     (windowRectChanged)="onWindowRectChanged($event)">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * &lt;-- position: content member-->
    *
    * ```ts
    * public onWindowRectChanged(event: {sender: any, args: RectChangedEventArgs})
    * {
    *     let newRect: IgxRect = event.args.newRect;
    * }
    * ```
    *
    * ```ts
    * public onWindowRectChanged =( s:any, e: RectChangedEventArgs) => {
    *
    *        }
    * ```
    */
    get windowRectChanged() {
        if (this._windowRectChanged == null) {
            this._windowRectChanged = new EventEmitter();
            this.i.windowRectChanged = delegateCombine(this.i.windowRectChanged, (o, e) => {
                let outerArgs = new IgxRectChangedEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeWindowRectChanged) {
                    this.beforeWindowRectChanged(this, outerArgs);
                }
                this._windowRectChanged.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._windowRectChanged;
    }
    /**
     * Occurs after the size of the series viewer changes.
    *
    * &lt;-- position: content member-->
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data"
    *     (sizeChanged)="onSizeChanged($event)">
    *     <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    *     <igx-line-series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *         valueMemberPath="value">
    *     </igx-line-series>
    * </igx-data-chart>
    * ```
    *
    * &lt;-- position: content member-->
    *
    * ```ts
    * public onSizeChanged(event: {sender: any, args: RectChangedEventArgs})
    * {
    *     let newRect: IgxRect = event.args.newRect;
    * }
    * ```
    *
    * ```ts
    * public onSizeChanged =(event: any, args: RectChangedEventArgs}){
    *
    * }
    * ```
    */
    get sizeChanged() {
        if (this._sizeChanged == null) {
            this._sizeChanged = new EventEmitter();
            this.i.sizeChanged = delegateCombine(this.i.sizeChanged, (o, e) => {
                let outerArgs = new IgxRectChangedEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeSizeChanged) {
                    this.beforeSizeChanged(this, outerArgs);
                }
                this._sizeChanged.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._sizeChanged;
    }
    /**
     * Raised when the actual window rectangle of the SeriesViewer changes.
    */
    get actualWindowRectChanged() {
        if (this._actualWindowRectChanged == null) {
            this._actualWindowRectChanged = new EventEmitter();
            this.i.actualWindowRectChanged = delegateCombine(this.i.actualWindowRectChanged, (o, e) => {
                let outerArgs = new IgxRectChangedEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeActualWindowRectChanged) {
                    this.beforeActualWindowRectChanged(this, outerArgs);
                }
                this._actualWindowRectChanged.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._actualWindowRectChanged;
    }
    /**
     * Occurs just after the current SeriesViewer's grid area rectangle is changed.
     * The grid area may change as the result of the SeriesViewer being resized, or
     * of an axis being added or changing size, possibly in another SeriesViewer.
    */
    get gridAreaRectChanged() {
        if (this._gridAreaRectChanged == null) {
            this._gridAreaRectChanged = new EventEmitter();
            this.i.gridAreaRectChanged = delegateCombine(this.i.gridAreaRectChanged, (o, e) => {
                let outerArgs = new IgxRectChangedEventArgs();
                outerArgs._provideImplementation(e);
                if (this.beforeGridAreaRectChanged) {
                    this.beforeGridAreaRectChanged(this, outerArgs);
                }
                this._gridAreaRectChanged.emit({
                    sender: this,
                    args: outerArgs
                });
            });
        }
        return this._gridAreaRectChanged;
    }
    _runInZone(act) {
        if (this._zoneRunner != null) {
            this._zoneRunner(act);
        }
        else {
            act();
        }
    }
}
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Object),
    tslib_1.__metadata("design:paramtypes", [Object])
], IgxSeriesViewerComponent.prototype, "crosshairPoint", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Boolean),
    tslib_1.__metadata("design:paramtypes", [Boolean])
], IgxSeriesViewerComponent.prototype, "animateSeriesWhenAxisRangeChanges", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Object),
    tslib_1.__metadata("design:paramtypes", [Object])
], IgxSeriesViewerComponent.prototype, "effectiveViewport", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Object),
    tslib_1.__metadata("design:paramtypes", [Object])
], IgxSeriesViewerComponent.prototype, "windowRect", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Boolean),
    tslib_1.__metadata("design:paramtypes", [Boolean])
], IgxSeriesViewerComponent.prototype, "useTiledZooming", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Boolean),
    tslib_1.__metadata("design:paramtypes", [Boolean])
], IgxSeriesViewerComponent.prototype, "preferHigherResolutionTiles", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "zoomTileCacheSize", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "highlightingTransitionDuration", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Boolean),
    tslib_1.__metadata("design:paramtypes", [Boolean])
], IgxSeriesViewerComponent.prototype, "isPagePanningAllowed", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "contentHitTestMode", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "actualContentHitTestMode", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Boolean),
    tslib_1.__metadata("design:paramtypes", [Boolean])
], IgxSeriesViewerComponent.prototype, "isSurfaceInteractionDisabled", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "windowResponse", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "windowRectMinWidth", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "crosshairVisibility", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxSeriesViewerComponent.prototype, "plotAreaBackground", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "defaultInteraction", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "rightButtonDefaultInteraction", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "dragModifier", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "panModifier", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Object),
    tslib_1.__metadata("design:paramtypes", [Object])
], IgxSeriesViewerComponent.prototype, "previewRect", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "windowPositionHorizontal", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "windowPositionVertical", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxSeriesViewerComponent.prototype, "chartTitle", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "titleHorizontalAlignment", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "subtitleHorizontalAlignment", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxSeriesViewerComponent.prototype, "titleTextStyle", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxSeriesViewerComponent.prototype, "subtitleTextStyle", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxSeriesViewerComponent.prototype, "titleTextColor", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxSeriesViewerComponent.prototype, "subtitleTextColor", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "titleTopMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "titleLeftMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "titleRightMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "titleBottomMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "subtitleTopMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "subtitleLeftMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "subtitleRightMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "subtitleBottomMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxSeriesViewerComponent.prototype, "subtitle", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "topMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "leftMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "rightMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "bottomMargin", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "autoMarginWidth", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "autoMarginHeight", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Boolean),
    tslib_1.__metadata("design:paramtypes", [Boolean])
], IgxSeriesViewerComponent.prototype, "isAntiAliasingEnabledDuringInteraction", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "pixelScalingRatio", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "interactionPixelScalingRatio", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "actualPixelScalingRatio", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "actualInteractionPixelScalingRatio", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Object),
    tslib_1.__metadata("design:paramtypes", [Object])
], IgxSeriesViewerComponent.prototype, "actualWindowRect", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "actualWindowPositionHorizontal", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxSeriesViewerComponent.prototype, "actualWindowPositionVertical", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "seriesCursorMouseMove", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "seriesMouseLeftButtonDown", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "seriesMouseLeftButtonUp", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "seriesMouseMove", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "seriesMouseEnter", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "seriesMouseLeave", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "windowRectChanged", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "sizeChanged", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "actualWindowRectChanged", null);
tslib_1.__decorate([
    Output(),
    tslib_1.__metadata("design:type", EventEmitter),
    tslib_1.__metadata("design:paramtypes", [])
], IgxSeriesViewerComponent.prototype, "gridAreaRectChanged", null);
//# sourceMappingURL=igx-series-viewer-component.js.map