import { HorizontalAlignment_$type } from "igniteui-react-core";
import { VerticalAlignment_$type } from "igniteui-react-core";
import { Visibility_$type } from "igniteui-react-core";
import { YAxisLabelLocation_$type } from "./YAxisLabelLocation";
import { XAxisLabelLocation_$type } from "./XAxisLabelLocation";
import { IgrDomainChart } from "./igr-domain-chart";
import { brushToString, stringToBrush, ensureBool, ensureEnum, arrayFindByName } from "igniteui-react-core";
/**
 * Represents a base class for domain charts with X/Y axes
*/
export class IgrXYChart extends IgrDomainChart {
    /**
                                 * @hidden
                                 */
    get i() {
        return this._implementation;
    }
    constructor(props) {
        super(props);
    }
    /**
     * Gets or sets function which takes an context object and returns a formatted label for the X-axis.
    *
    * To customize the text of the x-axis label, set `XAxisFormatLabel` to a single-parameter function.  The argument passed to that function will be your data item.
    *
    * ```ts
    * formatX(item: any): string {
    *     return "[ " + item.label + "! ]";
    * }
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisFormatLabel="formatX"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisFormatLabel() {
        return this.i.z3;
    }
    set xAxisFormatLabel(v) {
        this.i.z3 = v;
    }
    /**
     * Gets or sets function which takes a context object and returns a formatted label for the Y-axis.
    *
    * To customize the text of the y-axis label, set `YAxisFormatLabel` to a single-parameter function.  The argument passed to that function will be the numeric value corresponding to a position on the y-axis.
    *
    * ```ts
    * formatY(value: any): string {
    *     return "[ " + value+ "! ]";
    * }
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisFormatLabel="formatY"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisFormatLabel() {
        return this.i.z4;
    }
    set yAxisFormatLabel(v) {
        this.i.z4 = v;
    }
    /**
     * Gets or sets the left margin of labels on the X-axis
    *
    * Use the `XAxisLabelLeftMargin` property to apply a margin left of the x-axis labels.
    *
    * ```ts
    * this.chart.xAxisLabelLeftMargin ="100";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisLabelLeftMargin={100}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelLeftMargin() {
        return this.i.abk;
    }
    set xAxisLabelLeftMargin(v) {
        this.i.abk = +v;
    }
    /**
     * Gets or sets the top margin of labels on the X-axis
    *
    * Use the `XAxisLabelTopMargin` property to apply a margin above the x-axis labels.
    *
    * ```ts
    * this.chart.xAxisTitleTopMargin="250";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTitleTopMargin	={250}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelTopMargin() {
        return this.i.abm;
    }
    set xAxisLabelTopMargin(v) {
        this.i.abm = +v;
    }
    /**
     * Gets or sets the right margin of labels on the X-axis
    *
    * Use the `XAxisLabelRightMargin` property to apply a margin right of the x-axis labels.
    *
    * ```ts
    * this.chart.xAxisLabelRightMargin="100";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisLabelRightMargin={250}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelRightMargin() {
        return this.i.abl;
    }
    set xAxisLabelRightMargin(v) {
        this.i.abl = +v;
    }
    /**
     * Gets or sets the bottom margin of labels on the X-axis
    *
    * Use the `XAxisLabelBottomMargin` property to apply a margin below the x-axis labels.
    *
    * ```ts
    * this.chart.xAxisLabelBottomMargin ="100";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisLabelBottomMargin={100}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelBottomMargin() {
        return this.i.abj;
    }
    set xAxisLabelBottomMargin(v) {
        this.i.abj = +v;
    }
    /**
     * Gets or sets the left margin of labels on the Y-axis
    *
    * Use the `YAxisLabelLeftMargin` property to apply a margin left of the y-axis labels.
    *
    * ```ts
    * this.chart. yAxisLabelLeftMargin="250";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 yAxisLabelLeftMargin={250}
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelLeftMargin() {
        return this.i.ab1;
    }
    set yAxisLabelLeftMargin(v) {
        this.i.ab1 = +v;
    }
    /**
     * Gets or sets the top margin of labels on the Y-axis
    *
    * Use the `YAxisLabelTopMargin` property to apply a margin above the y-axis labels.
    *
    * ```ts
    * this.chart.yAxisLabelTopMargin="250";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisLabelTopMargin	={250}
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelTopMargin() {
        return this.i.ab3;
    }
    set yAxisLabelTopMargin(v) {
        this.i.ab3 = +v;
    }
    /**
     * Gets or sets the right margin of labels on the Y-axis
    *
    * Use the `YAxisLabelRightMargin` property to apply a margin right of the y-axis labels.
    *
    * ```ts
    * this.chart.yAxisLabelRightMargin="250";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisLabelRightMargin={250}
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelRightMargin() {
        return this.i.ab2;
    }
    set yAxisLabelRightMargin(v) {
        this.i.ab2 = +v;
    }
    /**
     * Gets or sets the bottom margin of labels on the Y-axis
    *
    * Use the `YAxisLabelBottomMargin` property to apply a margin below the y-axis labels.
    *
    * ```ts
    * this.chart.yAxisLabelBottomMargin="250";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisLabelBottomMargin={250}
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelBottomMargin() {
        return this.i.ab0;
    }
    set yAxisLabelBottomMargin(v) {
        this.i.ab0 = +v;
    }
    /**
     * Gets or sets color of labels on the X-axis
    *
    * To change the color of x-axis labels, set the `XAxisLabelTextColor` property to a color string.
    *
    * ```ts
    * this.chart.xAxisLabelTextColor="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisLabelTextColor="green"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelTextColor() {
        return brushToString(this.i.af8);
    }
    set xAxisLabelTextColor(v) {
        this.i.af8 = stringToBrush(v);
    }
    /**
     * Gets or sets color of labels on the Y-axis
    *
    * To change the color of y-axis labels, set the `YAxisLabelTextColor` property to a color string.
    *
    * ```ts
    * this.chart.yAxisLabelTextColor="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisLabelTextColor="green"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelTextColor() {
        return brushToString(this.i.agf);
    }
    set yAxisLabelTextColor(v) {
        this.i.agf = stringToBrush(v);
    }
    /**
     * Gets the actual color of labels on the X-axis
    */
    get actualXAxisLabelTextColor() {
        return brushToString(this.i.af6);
    }
    set actualXAxisLabelTextColor(v) {
        this.i.af6 = stringToBrush(v);
    }
    /**
     * Gets the actual color of labels on the Y-axis
    */
    get actualYAxisLabelTextColor() {
        return brushToString(this.i.af7);
    }
    set actualYAxisLabelTextColor(v) {
        this.i.af7 = stringToBrush(v);
    }
    /**
     * Gets or sets the margin around a title on the X-axis
    *
    * Use the `XAxisTitleMargin` property to set a margin around the y-axis title.
    */
    get xAxisTitleMargin() {
        return this.i.abv;
    }
    set xAxisTitleMargin(v) {
        this.i.abv = +v;
    }
    /**
     * Gets or sets the margin around a title on the Y-axis
    *
    * Use the `YAxisTitleMargin` property to set a margin around the y-axis title.
    */
    get yAxisTitleMargin() {
        return this.i.acc;
    }
    set yAxisTitleMargin(v) {
        this.i.acc = +v;
    }
    /**
     * Gets or sets the left margin of a title on the X-axis
    *
    * Use the `XAxisTitleLeftMargin` property to apply a margin left of the x-axis title.
    *
    * ```ts
    * this.chart.xAxisTitleLeftMargin="150";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTitleLeftMargin={150}
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitleLeftMargin() {
        return this.i.abu;
    }
    set xAxisTitleLeftMargin(v) {
        this.i.abu = +v;
    }
    /**
     * Gets or sets the left margin of a title on the Y-axis
    *
    * Use the `YAxisTitleLeftMargin` property to apply a margin left of the y-axis title.
    *
    * ```ts
    * this.chart.yAxisTitleLeftMargin="150";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitleLeftMargin={150}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitleLeftMargin() {
        return this.i.acb;
    }
    set yAxisTitleLeftMargin(v) {
        this.i.acb = +v;
    }
    /**
     * Gets or sets the top margin of a title on the X-axis
    *
    * Use the `XAxisTitleTopMargin` property to apply a margin above the x-axis title.
    *
    * ```ts
    * this.chart.xAxisTitleTopMargin="150";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTitleTopMargin	={150}
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitleTopMargin() {
        return this.i.abx;
    }
    set xAxisTitleTopMargin(v) {
        this.i.abx = +v;
    }
    /**
     * Gets or sets the top margin of a title on the Y-axis
    *
    * Use the `YAxisTitleTopMargin` property to apply a margin above the y-axis title.
    *
    * ```ts
    * this.chart.yAxisTitleTopMargin="150";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitleTopMargin	={150}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitleTopMargin() {
        return this.i.ace;
    }
    set yAxisTitleTopMargin(v) {
        this.i.ace = +v;
    }
    /**
     * Gets or sets the right margin of a title on the X-axis
    *
    * Use the `XAxisTitleRightMargin` property to apply a margin right of the x-axis title.
    *
    * ```ts
    * this.chart.xAxisTitleRightMargin="100";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTitleRightMargin="100"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitleRightMargin() {
        return this.i.abw;
    }
    set xAxisTitleRightMargin(v) {
        this.i.abw = +v;
    }
    /**
     * Gets or sets the right margin of a title on the Y-axis
    *
    * Use the `YAxisTitleRightMargin` property to apply a margin right of the y-axis title.
    *
    * ```ts
    * this.chart.yAxisTitleRightMargin="150";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitleRightMargin={150}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitleRightMargin() {
        return this.i.acd;
    }
    set yAxisTitleRightMargin(v) {
        this.i.acd = +v;
    }
    /**
     * Gets or sets the bottom margin of a title on the X-axis
    *
    * Use the `XAxisTitleBottomMargin` property to apply a margin below the x-axis title.
    *
    * ```ts
    * this.chart.xAxisTitleBottomMargin="150";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTitleBottomMargin={250}
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitleBottomMargin() {
        return this.i.abt;
    }
    set xAxisTitleBottomMargin(v) {
        this.i.abt = +v;
    }
    /**
     * Gets or sets the bottom margin of a title on the Y-axis
    *
    * Use the `YAxisTitleBottomMargin` property to apply a margin below the y-axis title.
    *
    * ```ts
    * this.chart.yAxisTitleBottomMargin="150";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitleBottomMargin	={150}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitleBottomMargin() {
        return this.i.aca;
    }
    set yAxisTitleBottomMargin(v) {
        this.i.aca = +v;
    }
    /**
     * Gets or sets color of title on the X-axis
    *
    * To change the color of the x-axis title, set the `XAxisTitleTextColor` property to a color string.
    *
    * ```ts
    * this.chart.xAxisTitleTextColor="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisTitleTextColor="green"
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitleTextColor() {
        return brushToString(this.i.age);
    }
    set xAxisTitleTextColor(v) {
        this.i.age = stringToBrush(v);
    }
    /**
     * Gets or sets color of title on the Y-axis
    *
    * To change the color of the y-axis title, set the `YAxisTitleTextColor` property to a color string.
    *
    * ```ts
    * this.chart.yAxisTitleTextColor="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitleTextColor="green"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitleTextColor() {
        return brushToString(this.i.agl);
    }
    set yAxisTitleTextColor(v) {
        this.i.agl = stringToBrush(v);
    }
    /**
     * Gets or sets CSS font property for labels on X-axis
    *
    * To change the font of x-axis labels, set the `XAxisLabelTextStyle` property.
    *
    * ```ts
    * this.chart.xAxisLabelTextStyle="italic 15px arial, sans-serif";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisLabelTextStyle="italic 15px arial, sans-serif"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelTextStyle() {
        return this.i.ac8;
    }
    set xAxisLabelTextStyle(v) {
        this.i.ac8 = v;
    }
    /**
     * Gets or sets CSS font property for labels on Y-axis
    *
    * To change the font of x-axis labels, set the `YAxisLabelTextStyle` property.
    *
    * ```ts
    * this.chart. yAxisLabelTextStyle="italic 15px arial, sans-serif";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 yAxisLabelTextStyle="italic 15px arial, sans-serif"
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelTextStyle() {
        return this.i.aed;
    }
    set yAxisLabelTextStyle(v) {
        this.i.aed = v;
    }
    /**
     * Gets or sets CSS font property for title on X-axis
    *
    * To change the font of the x-axis title, set the `XAxisTitleTextStyle` property.
    *
    * ```ts
    * this.chart.xAxisTitleTextStyle="italic 15px arial, sans-serif";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTitleTextStyle="italic 15px arial, sans-serif"
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitleTextStyle() {
        return this.i.adw;
    }
    set xAxisTitleTextStyle(v) {
        this.i.adw = v;
    }
    /**
     * Gets or sets CSS font property for title on Y-axis
    *
    * To change the font of the x-axis title, set the `YAxisTitleTextStyle` property.
    *
    * ```ts
    * this.chart.yAxisTitleTextStyle="italic 15px arial, sans-serif";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitleTextStyle="italic 15px arial, sans-serif"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitleTextStyle() {
        return this.i.ae1;
    }
    set yAxisTitleTextStyle(v) {
        this.i.ae1 = v;
    }
    /**
     * Gets or sets the format for labels along the X-axis.
    */
    get xAxisLabel() {
        return this.i.ach;
    }
    set xAxisLabel(v) {
        this.i.ach = v;
    }
    /**
     * Gets or sets the property or string from which the labels are derived.
    */
    get yAxisLabel() {
        return this.i.aci;
    }
    set yAxisLabel(v) {
        this.i.aci = v;
    }
    /**
     * Gets or sets the color to apply to major gridlines along the X-axis.
    *
    * Set `XAxisMajorStroke` to control the color of major gridlines extending vertically from the x-axis.
    *
    * ```ts
    * this.chart.xAxisMajorStroke="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisMajorStroke="green"
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisMajorStroke() {
        return brushToString(this.i.af9);
    }
    set xAxisMajorStroke(v) {
        this.i.af9 = stringToBrush(v);
    }
    /**
     * Gets or sets the color to apply to major gridlines along the Y-axis.
    *
    * Set `YAxisMajorStroke` to control the color of major gridlines extending horizontally from the y-axis.
    *
    * ```ts
    * this.chart.yAxisMajorStroke="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    *     yAxisMajorStroke="green"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisMajorStroke() {
        return brushToString(this.i.agg);
    }
    set yAxisMajorStroke(v) {
        this.i.agg = stringToBrush(v);
    }
    /**
     * Gets or sets the thickness to apply to major gridlines along the X-axis.
    *
    * Set `XAxisMajorStrokeThickness` to control the thickness of major gridlines extending vertically from the x-axis.
    *
    * ```ts
    * this.chart.xAxisMajorStrokeThickness="3" ;
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisMajorStrokeThickness="3"
    * 	xAxisExtent	={250}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisMajorStrokeThickness() {
        return this.i.abn;
    }
    set xAxisMajorStrokeThickness(v) {
        this.i.abn = +v;
    }
    /**
     * Gets or sets the thickness to apply to major gridlines along the Y-axis.
    *
    * Set `YAxisMajorStrokeThickness` to control the thickness of major gridlines extending horizontally from the y-axis.
    *
    * ```ts
    * this.chart.yAxisMajorStrokeThickness="2";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisMajorStrokeThickness={2}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisMajorStrokeThickness() {
        return this.i.ab4;
    }
    set yAxisMajorStrokeThickness(v) {
        this.i.ab4 = +v;
    }
    /**
     * Gets or sets the thickness to apply to minor gridlines along the X-axis.
    *
    * Set `XAxisMinorStrokeThickness` to control the thickness of minor gridlines extending vertically from the x-axis.
    *
    * ```ts
    * this.chart.xAxisMinorStrokeThickness="3";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisMinorStrokeThickness="3"
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisMinorStrokeThickness() {
        return this.i.abo;
    }
    set xAxisMinorStrokeThickness(v) {
        this.i.abo = +v;
    }
    /**
     * Gets or sets the thickness to apply to minor gridlines along the Y-axis.
    *
    * Set `YAxisMinorStrokeThickness` to control the thickness of minor gridlines extending horizontally from the y-axis.
    *
    * ```ts
    * this.chart.yAxisMinorStrokeThickness="3";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisMinorStrokeThickness={3}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisMinorStrokeThickness() {
        return this.i.ab5;
    }
    set yAxisMinorStrokeThickness(v) {
        this.i.ab5 = +v;
    }
    /**
     * Gets or sets the color to apply to stripes along the X-axis.
    *
    * Set `XAxisStrip` to control the alternating color of stripes extending vertically from the x-axis.
    *
    * ```ts
    * this.chart.xAxisStrip="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisStrip="green"
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisStrip() {
        return brushToString(this.i.agb);
    }
    set xAxisStrip(v) {
        this.i.agb = stringToBrush(v);
    }
    /**
     * Gets or sets the color to apply to stripes along the Y-axis.
    *
    * Set `YAxisStrip` to control the alternating color of stripes extending horizontally from the y-axis.
    *
    * ```ts
    * this.chart.yAxisStrip="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisStrip="green"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisStrip() {
        return brushToString(this.i.agi);
    }
    set yAxisStrip(v) {
        this.i.agi = stringToBrush(v);
    }
    /**
     * Gets or sets the color to apply to the X-axis line.
    *
    * Set `XAxisStroke` to control the color of the x-axis line.
    *
    * ```ts
    * this.chart.xAxisStroke="green"";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisStroke="green"
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisStroke() {
        return brushToString(this.i.agc);
    }
    set xAxisStroke(v) {
        this.i.agc = stringToBrush(v);
    }
    /**
     * Gets or sets the color to apply to the Y-axis line.
    *
    * Set `YAxisStroke` to control the color of the y-axis line.
    *
    * ```ts
    * this.chart.yAxisStroke="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisStroke="green"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisStroke() {
        return brushToString(this.i.agj);
    }
    set yAxisStroke(v) {
        this.i.agj = stringToBrush(v);
    }
    /**
     * Gets or sets the thickness to apply to the X-axis line.
    *
    * Set `XAxisStrokeThickness` to control the thickness of the x-axis line.
    *
    * ```ts
    * this.chart.xAxisStrokeThickness="2";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisStrokeThickness={2}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisStrokeThickness() {
        return this.i.abp;
    }
    set xAxisStrokeThickness(v) {
        this.i.abp = +v;
    }
    /**
     * Gets or sets the thickness to apply to the Y-axis line.
    *
    * Set `YAxisStrokeThickness` to control the thickness of the y-axis line.
    *
    * ```ts
    * this.chart. yAxisStrokeThickness="2";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 yAxisStrokeThickness={2}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisStrokeThickness() {
        return this.i.ab6;
    }
    set yAxisStrokeThickness(v) {
        this.i.ab6 = +v;
    }
    /**
     * Gets or sets the length of tickmarks along the X-axis.
    *
    * Set `XAxisTickLength` to control the length of tickmarks extending vertically from the x-axis line.
    *
    * ```ts
    * this.chart.xAxisTickLength="25";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTickLength	={25}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTickLength() {
        return this.i.abq;
    }
    set xAxisTickLength(v) {
        this.i.abq = +v;
    }
    /**
     * Gets or sets the length of tickmarks along the Y-axis.
    *
    * Set `YAxisTickLength` to control the length of tickmarks extending horizontally from the y-axis line.
    *
    * ```ts
    * this.chart.yAxisTickLength="25";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTickLength	={25}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTickLength() {
        return this.i.ab7;
    }
    set yAxisTickLength(v) {
        this.i.ab7 = +v;
    }
    /**
     * Gets or sets the color to apply to tickmarks along the X-axis.
    *
    * Set `XAxisTickStroke` to control the color of tickmarks extending vertically from the x-axis line.
    *
    * ```ts
    * this.chart. xAxisTickStroke="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisTickStroke="green"
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTickStroke() {
        return brushToString(this.i.agd);
    }
    set xAxisTickStroke(v) {
        this.i.agd = stringToBrush(v);
    }
    /**
     * Gets or sets the color to apply to tickmarks along the Y-axis.
    *
    * Set `YAxisTickStroke` to control the color of tickmarks extending horizontally from the y-axis line.
    *
    * ```ts
    * this.chart.yAxisTickStroke="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTickStroke="green"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTickStroke() {
        return brushToString(this.i.agk);
    }
    set yAxisTickStroke(v) {
        this.i.agk = stringToBrush(v);
    }
    /**
     * Gets or sets the thickness to apply to tickmarks along the X-axis.
    *
    * Set `XAxisTickStrokeThickness` to control the thickness of tickmarks extending vertically from the x-axis line.
    *
    * ```ts
    * this.chart.xAxisTickStrokeThickness="20";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTickStrokeThickness={20}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTickStrokeThickness() {
        return this.i.abr;
    }
    set xAxisTickStrokeThickness(v) {
        this.i.abr = +v;
    }
    /**
     * Gets or sets the thickness to apply to tickmarks along the Y-axis.
    *
    * Set `YAxisTickStrokeThickness` to control the thickness of tickmarks extending vertically from the y-axis line.
    *
    * ```ts
    * this.chart.yAxisTickStrokeThickness="25";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTickStrokeThickness	={25}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTickStrokeThickness() {
        return this.i.ab8;
    }
    set yAxisTickStrokeThickness(v) {
        this.i.ab8 = +v;
    }
    /**
     * Gets or sets the Text to display below the X-axis.
    *
    * Set `XAxisTitle` to display a label adjacent to the x-axis.
    *
    * ```ts
    * this.chart. xAxisTitle="x axis";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTitle="x axis"
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitle() {
        return this.i.adn;
    }
    set xAxisTitle(v) {
        this.i.adn = v;
    }
    /**
     * Gets or sets the Text to display to the left of the Y-axis.
    *
    * Set `YAxisTitle` to display a label adjacent to the y-axis.
    *
    * ```ts
    * this.chart.yAxisTitle="y axis";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitle="y axis"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitle() {
        return this.i.aes;
    }
    set yAxisTitle(v) {
        this.i.aes = v;
    }
    /**
     * Gets or sets the color to apply to minor gridlines along the X-axis.
    *
    * Set `XAxisMinorStroke` to control the color of minor gridlines extending vertically from the x-axis.
    *
    * ```ts
    * this.chart.xAxisExtent="250";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisMinorStroke="green"
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisMinorStroke() {
        return brushToString(this.i.aga);
    }
    set xAxisMinorStroke(v) {
        this.i.aga = stringToBrush(v);
    }
    /**
     * Gets or sets the color to apply to minor gridlines along the Y-axis.
    *
    * Set `YAxisMinorStroke` to control the color of minor gridlines extending horizontally from the y-axis.
    *
    * ```ts
    * this.chart.yAxisMinorStroke="green";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisMinorStroke="green"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisMinorStroke() {
        return brushToString(this.i.agh);
    }
    set yAxisMinorStroke(v) {
        this.i.agh = stringToBrush(v);
    }
    /**
     * Gets or sets the angle of rotation for labels along the X-axis.
    *
    * To control the rotation of labels on the x-axis, set the `XAxisLabelAngle` property to a number of rotational degrees.
    *
    * ```ts
    * this.chart.xAxisLabelAngle="45";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisLabelAngle={45}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelAngle() {
        return this.i.abi;
    }
    set xAxisLabelAngle(v) {
        this.i.abi = +v;
    }
    /**
     * Gets or sets the angle of rotation for labels along the Y-axis.
    *
    * To control the rotation of labels on the y-axis, set the `YAxisLabelAngle` property to a number of rotational degrees.
    *
    * ```ts
    * this.chart.yAxisLabelAngle="25";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisLabelAngle	={25}
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelAngle() {
        return this.i.abz;
    }
    set yAxisLabelAngle(v) {
        this.i.abz = +v;
    }
    /**
     * Gets or sets the distance between the X-axis and the bottom of the chart.
    *
    * To allocate space between the x-axis and the edge of the chart, set the `XAxisExtent` property.
    *
    * ```ts
    * this.chart.xAxisExtent="250";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisExtent	={250}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisExtent() {
        return this.i.abh;
    }
    set xAxisExtent(v) {
        this.i.abh = +v;
    }
    /**
     * Gets or sets the distance between the Y-axis and the left edge of the chart.
    *
    * To allocate space between the x-axis and the edge of the chart, set the `XAxisExtent` property.
    *
    * ```ts
    * this.chart.xAxisExtent="250";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisExtent	={250}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisExtent() {
        return this.i.aby;
    }
    set yAxisExtent(v) {
        this.i.aby = +v;
    }
    /**
     * Gets or sets the angle of rotation for the X-axis title.
    *
    * Set `XAxisTitleAngle` to control the rotation of the x-axis title.
    *
    * ```ts
    * this.chart.xAxisTitleAngle="50";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisTitleAngle	={50}
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitleAngle() {
        return this.i.abs;
    }
    set xAxisTitleAngle(v) {
        this.i.abs = +v;
    }
    /**
     * Gets or sets the angle of rotation for the Y-axis title.
    *
    * Set `YAxisTitleAngle` to control the rotation of the y-axis title.
    *
    * ```ts
    * this.chart.yAxisTitleAngle="25";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitleAngle	={24}
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitleAngle() {
        return this.i.ab9;
    }
    set yAxisTitleAngle(v) {
        this.i.ab9 = +v;
    }
    /**
     * Gets or sets whether to invert the direction of the X-axis by placing the first data items on the right side of the chart.
    *
    * To reverse the direction of items along the x-axis, set the `XAxisInverted` property to true.
    *
    * ```ts
    * this.chart.XAxisInverted="True";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	XAxisInverted="True"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisInverted() {
        return this.i.aad;
    }
    set xAxisInverted(v) {
        this.i.aad = ensureBool(v);
    }
    /**
     * Gets or sets whether to invert the direction of the Y-axis by placing the minimum numeric value at the top of the chart.
    *
    * You can use `YAxisInverted` to invert the scale of the y axis like this:
    *
    * ```ts
    * this.chart.yAxisInverted="true";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 yAxisInverted="true"
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    *
    * The default value of `YAxisInverted` is false.
    */
    get yAxisInverted() {
        return this.i.aae;
    }
    set yAxisInverted(v) {
        this.i.aae = ensureBool(v);
    }
    /**
     * Gets or sets Horizontal alignment of the X-axis title.
    *
    * Set `XAxisTitleAlignment` to control the horizontal alignment of the x-axis title.
    *
    * ```ts
    * this.chart.xAxisTitleAlignment="right";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisTitleAlignment="right"
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisTitleAlignment() {
        return this.i.afo;
    }
    set xAxisTitleAlignment(v) {
        this.i.afo = ensureEnum(HorizontalAlignment_$type, v);
    }
    /**
     * Gets or sets Vertical alignment of the Y-axis title.
    *
    * Set `YAxisTitleAlignment` to control the vertical alignment of the x-axis title.
    *
    * ```ts
    * this.chart.yAxisTitleAlignment="bottom";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisTitleAlignment="bottom"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisTitleAlignment() {
        return this.i.agr;
    }
    set yAxisTitleAlignment(v) {
        this.i.agr = ensureEnum(VerticalAlignment_$type, v);
    }
    /**
     * Gets or sets Horizontal alignment of X-axis labels.
    */
    get xAxisLabelHorizontalAlignment() {
        return this.i.afn;
    }
    set xAxisLabelHorizontalAlignment(v) {
        this.i.afn = ensureEnum(HorizontalAlignment_$type, v);
    }
    /**
     * Gets or sets Horizontal alignment of Y-axis labels.
    *
    * Set the `YAxisLabelHorizontalAlignment` property to change the horizontal alignment of y-axis labels.
    */
    get yAxisLabelHorizontalAlignment() {
        return this.i.afp;
    }
    set yAxisLabelHorizontalAlignment(v) {
        this.i.afp = ensureEnum(HorizontalAlignment_$type, v);
    }
    /**
     * Gets or sets Vertical alignment of X-axis labels.
    *
    * Use the `XAxisLabelVerticalAlignment` property to change the vertical position of x-axis labels.
    *
    * ```ts
    * this.chart.xAxisLabelVerticalAlignment="bottom";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	xAxisLabelVerticalAlignment="bottom"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelVerticalAlignment() {
        return this.i.agp;
    }
    set xAxisLabelVerticalAlignment(v) {
        this.i.agp = ensureEnum(VerticalAlignment_$type, v);
    }
    /**
     * Gets or sets Vertical alignment of Y-axis labels.
    */
    get yAxisLabelVerticalAlignment() {
        return this.i.agq;
    }
    set yAxisLabelVerticalAlignment(v) {
        this.i.agq = ensureEnum(VerticalAlignment_$type, v);
    }
    /**
     * Gets or sets Visibility of X-axis labels.
    *
    * To hide the x-axis labels, set `XAxisLabelVisibility` to collapsed.
    *
    * ```ts
    * this.chart.xAxisLabelVisibility="collapsed";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	 xAxisLabelVisibility="collapsed"
    * 	dataSource={this.state.data}>
    * </IgrCategoryChart>
    * ```
    */
    get xAxisLabelVisibility() {
        return this.i.agu;
    }
    set xAxisLabelVisibility(v) {
        this.i.agu = ensureEnum(Visibility_$type, v);
    }
    /**
     * Gets or sets Visibility of Y-axis labels.
    *
    * To hide the y-axis labels, set `YAxisLabelVisibility` to collapsed.
    *
    * ```ts
    * this.chart.yAxisLabelVisibility="collapsed"";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisLabelVisibility="collapsed"
    * 	dataSource={this.state.data}
    * 	chartType="stepArea" >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelVisibility() {
        return this.i.agv;
    }
    set yAxisLabelVisibility(v) {
        this.i.agv = ensureEnum(Visibility_$type, v);
    }
    /**
     * Gets or sets location of Y-axis labels, relative to the plot area.
    *
    * Set the `YAxisLabelLocation` property to change the location of the y-axis and its labels.
    *
    * ```ts
    * this.chart.yAxisLabelLocation="outsideRight";
    * ```
    *
    * ```ts
    * <IgrCategoryChart
    * 	yAxisLabelLocation="outsideRight"
    * 	dataSource={this.state.data} >
    * </IgrCategoryChart>
    * ```
    */
    get yAxisLabelLocation() {
        return this.i.aaa;
    }
    set yAxisLabelLocation(v) {
        this.i.aaa = ensureEnum(YAxisLabelLocation_$type, v);
    }
    /**
     * Gets or sets location of X-axis labels, relative to the plot area.
    */
    get xAxisLabelLocation() {
        return this.i.z8;
    }
    set xAxisLabelLocation(v) {
        this.i.z8 = ensureEnum(XAxisLabelLocation_$type, v);
    }
    /**
     * Gets or sets the format string for the X axis label.
    */
    get xAxisLabelFormat() {
        return this.i.acz;
    }
    set xAxisLabelFormat(v) {
        this.i.acz = v;
    }
    /**
     * Gets or sets the format specifiers to use with the XAxisLabelFormat string.
    */
    get xAxisLabelFormatSpecifiers() {
        return this.i.zx;
    }
    set xAxisLabelFormatSpecifiers(v) {
        if (v && !Array.isArray(v) && typeof (v) == "string") {
            const re = /\s*(?:,|\s|$)\s*/gm;
            v = v.split(re);
        }
        this.i.zx = v;
    }
    /**
     * Gets or sets the format string for the Y axis label.
    */
    get yAxisLabelFormat() {
        return this.i.ad4;
    }
    set yAxisLabelFormat(v) {
        this.i.ad4 = v;
    }
    /**
     * Gets or sets the format specifiers to use with the YAxisLabelFormat string.
    */
    get yAxisLabelFormatSpecifiers() {
        return this.i.zy;
    }
    set yAxisLabelFormatSpecifiers(v) {
        if (v && !Array.isArray(v) && typeof (v) == "string") {
            const re = /\s*(?:,|\s|$)\s*/gm;
            v = v.split(re);
        }
        this.i.zy = v;
    }
    findByName(name) {
        var baseResult = super.findByName(name);
        if (baseResult) {
            return baseResult;
        }
        if (this.xAxisLabelFormatSpecifiers != null && arrayFindByName(this.xAxisLabelFormatSpecifiers, name)) {
            return arrayFindByName(this.xAxisLabelFormatSpecifiers, name);
        }
        if (this.yAxisLabelFormatSpecifiers != null && arrayFindByName(this.yAxisLabelFormatSpecifiers, name)) {
            return arrayFindByName(this.yAxisLabelFormatSpecifiers, name);
        }
        return null;
    }
    /**
     * Called by the UI framework to provide a UI container for rendering this control.
    
    * @param container  * The UI container element.
    */
    provideContainer(container) {
        this.i.provideContainer(container);
    }
    /**
     * Converts the given visual location to a data value.
    
    * @param unscaledValue  * The x-coordinate of the location to scale.
    */
    getScaledValueX(unscaledValue) {
        let iv = this.i.abd(unscaledValue);
        return (iv);
    }
    /**
     * Converts the given data value to a visual location.
    
    * @param scaledValue  * The data value to un-scale.
    */
    getUnscaledValueX(scaledValue) {
        let iv = this.i.abf(scaledValue);
        return (iv);
    }
    /**
     * Converts the given visual location to a data value.
    
    * @param unscaledValue  * The y-coordinate of the location to scale.
    */
    getScaledValueY(unscaledValue) {
        let iv = this.i.abe(unscaledValue);
        return (iv);
    }
    /**
     * Converts the given data value to a visual location.
    
    * @param scaledValue  * The data value to un-scale.
    */
    getUnscaledValueY(scaledValue) {
        let iv = this.i.abg(scaledValue);
        return (iv);
    }
}
