var IgxCategoryXAxisComponent_1;
import * as tslib_1 from "tslib";
import { Component, forwardRef, Input, ChangeDetectionStrategy } from '@angular/core';
import { IgxCategoryAxisBaseComponent } from "./igx-category-axis-base-component";
import { IgxAxisComponent } from "./igx-axis-component";
import { CategoryXAxis } from "./CategoryXAxis";
/**
 * Represents a IgxDataChartComponent category X axis.
*
* `IgxCategoryXAxisComponent` class represents a IgxDataChartComponent category X axis.
*
* ```html
* <igx-data-chart [dataSource]="data">
*   <igx-category-x-axis #xAxis
*     label="label" >
*   </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
* let series = new IgxColumnSeriesComponent();
* series.xAxis = this.xAxis;
* series.yAxis = this.yAxis;
* series.valueMemberPath="value";
* this.chart.series.add(series);
* ```
*/
export const IgxCategoryXAxisComponent_PROVIDERS = [{ provide: IgxCategoryAxisBaseComponent, useExisting: forwardRef(() => IgxCategoryXAxisComponent) }, { provide: IgxAxisComponent, useExisting: forwardRef(() => IgxCategoryXAxisComponent) }];
let IgxCategoryXAxisComponent = IgxCategoryXAxisComponent_1 = class IgxCategoryXAxisComponent extends IgxCategoryAxisBaseComponent {
    constructor() {
        super();
    }
    createImplementation() {
        return new CategoryXAxis();
    }
    /**
                                 * @hidden
                                 */
    get i() {
        return this._implementation;
    }
    /**
     * Gets or sets the frequency of displayed labels.
     * The set value is a factor that determines which labels will be hidden. For example, an interval of 2 will display every other label.
    *
    * `interval` determines how often to show a label, tickmark, and/or gridline along the x-axis.  Set this property to _n_ to display a label every _nth_ item.
    *
    * ```html
    * <igx-data-chart [dataSource]="data">
    *   <igx-category-x-axis #xAxis
    *     label="label"
    *     interval="3">
    *   </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
    * let series = new IgxColumnSeriesComponent();
    * series.xAxis = this.xAxis;
    * xAxis.interval="3";
    * series.yAxis = this.yAxis;
    *
    * series.valueMemberPath="value";
    * this.chart.series.add(series);
    * ```
    */
    get interval() {
        return this.i.k6;
    }
    set interval(v) {
        this.i.k6 = +v;
    }
    /**
     * Gets the effective value for the current Interval.
    *
    * ```ts
    * let effectiveInterval: number = xAxis.actualInterval;
    * ```
    */
    get actualInterval() {
        return this.i.k1;
    }
    set actualInterval(v) {
        this.i.k1 = +v;
    }
    /**
     * Gets or sets the frequency of displayed minor lines.
     * The set value is a factor that determines how the minor lines will be displayed.
    *
    * `minorInterval` determines how often to show a minor gridline along the x-axis.  This property is relevant only when the displayed series is a type with grouping, like column series.
    *
    * `minorInterval` is expressed as a number between 0 and 1, representing the frequency of the interval.  To display minor gridlines representing 10ths of an item width, set `minorInterval` to 0.1.
    *
    * ```html
    * <igx-data-chart [dataSource]="data">
    *   <igx-category-x-axis #xAxis
    *     label="label"
    *     minorInterval="0.1"
    *     minorStroke="green"
    *     minorStrokeThickness="1">
    *   </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
    * let series = new IgxColumnSeriesComponent();
    * series.xAxis = this.xAxis;
    * xAxis.minorInterval="0.1";
    * series.yAxis = this.yAxis;
    * series.valueMemberPath="value";
    * this.chart.series.add(series);
    * ```
    */
    get minorInterval() {
        return this.i.k7;
    }
    set minorInterval(v) {
        this.i.k7 = +v;
    }
    /**
     * Gets the effective value for the current MinorInterval.
    *
    * ```ts
    * let effectiveMinorInterval: number = xAxis.actualMinorInterval;
    * ```
    */
    get actualMinorInterval() {
        return this.i.k2;
    }
    set actualMinorInterval(v) {
        this.i.k2 = +v;
    }
    /**
     * Scrolls the specified item into view.
    
    * @param item  * Data item to scroll into view
    */
    scrollIntoView(item) {
        this.i.lg(item);
    }
    scrollRangeIntoView(minimum, maximum) {
        this.i.lh(minimum, maximum);
    }
};
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxCategoryXAxisComponent.prototype, "interval", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxCategoryXAxisComponent.prototype, "actualInterval", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxCategoryXAxisComponent.prototype, "minorInterval", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxCategoryXAxisComponent.prototype, "actualMinorInterval", null);
IgxCategoryXAxisComponent = IgxCategoryXAxisComponent_1 = tslib_1.__decorate([
    Component({
        selector: 'igx-category-x-axis',
        template: ``,
        providers: [{ provide: IgxCategoryAxisBaseComponent, useExisting: forwardRef(() => IgxCategoryXAxisComponent_1) }, { provide: IgxAxisComponent, useExisting: forwardRef(() => IgxCategoryXAxisComponent_1) }],
        changeDetection: ChangeDetectionStrategy.OnPush
    }),
    tslib_1.__metadata("design:paramtypes", [])
], IgxCategoryXAxisComponent);
export { IgxCategoryXAxisComponent };
//# sourceMappingURL=igx-category-x-axis-component.js.map