import * as tslib_1 from "tslib";
import { forwardRef, Input } from '@angular/core';
import { MarkerType, MarkerType_$type } from "./MarkerType";
import { IgxSeriesComponent } from "./igx-series-component";
import { ensureEnum, brushToString, stringToBrush } from "igniteui-angular-core/ES2015/componentUtil";
/**
 * Represents the base class for series containing markers.
*
* MarkerSeries represents the base class for series containing markers.
*
* Example:
*
* ```html
* <igx-data-chart
*     [dataSource]="data">
* 	<igx-category-x-axis
*         label="label"
*         #xAxis
*         >
*       </igx-category-x-axis>
*       <igx-numeric-y-axis
*         minimumValue="0"
*         #yAxis>
*       </igx-numeric-y-axis>
* 	 <igx-column-series
*         #series
*         [xAxis]="xAxis"
*         [yAxis]="yAxis"
*      valueMemberPath="value">
*      </igx-column-series>
* </igx-data-chart>
* ```
*/
export const IgxMarkerSeriesComponent_PROVIDERS = [{ provide: IgxSeriesComponent, useExisting: forwardRef(() => IgxMarkerSeriesComponent) }];
export class IgxMarkerSeriesComponent extends IgxSeriesComponent {
    constructor() {
        super();
    }
    get i() {
        return this._implementation;
    }
    /**
     * Returns whether the current series supports visual markers.
    *
    * `hasMarkers` property is overriden, it returns whether the current series supports visual markers. You can use it like this:
    *
    * ```ts
    *  let gotMarkers: boolean = this.series.hasMarkers;
    * ```
    */
    get hasMarkers() {
        return this.i.hasMarkers;
    }
    /**
     * Gets or sets the marker type for the current series object.
     * If the MarkerTemplate property is set, the setting of the MarkerType property will be ignored.
    *
    * `markerType` property gets or sets the marker type for the current series object. For example, you can set it like this:
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data">
    * 	 <igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *     </igx-category-x-axis>
    *     <igx-numeric-y-axis
    *         #yAxis>
    *     </igx-numeric-y-axis>
    * 	 <igx-column-series
    *         #series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *      valueMemberPath="value">
    * 	 markerType = "circle">
    *      </igx-column-series>
    * </igx-data-chart>
    * ```
    */
    get markerType() {
        return this.i.lt;
    }
    set markerType(v) {
        this.i.lt = ensureEnum(MarkerType_$type, v);
    }
    /**
     * Gets or sets the MarkerTemplate for the current series object.
    *
    * `markerTemplate` property gets or sets the MarkerTemplate for the current series object. For example, you can use it like this:
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data">
    * 	<igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *       </igx-category-x-axis>
    *       <igx-numeric-y-axis #yAxis>
    *       </igx-numeric-y-axis>
    * 	 <igx-column-series
    *         #series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *      valueMemberPath="value">
    * 	 markerTemplate="circleMarkerTemplate">
    *      </igx-column-series>
    * </igx-data-chart>
    * ```
    */
    get markerTemplate() {
        return this.i.mc;
    }
    set markerTemplate(v) {
        this.i.mc = v;
    }
    /**
     * Gets the effective marker template for the current series object.
    *
    * `actualMarkerTemplate` property gets the effective marker template for the current series object. You can use it like this:
    *
    * ```ts
    *  let effectiveMarkerTemplate: IgxDataTemplate = this.series.actualMarkerTemplate;
    * ```
    */
    get actualMarkerTemplate() {
        return this.i.ma;
    }
    set actualMarkerTemplate(v) {
        this.i.ma = v;
    }
    /**
     * Gets or sets the brush that specifies how the current series object's marker interiors are painted.
    *
    * `markerBrush` property gets or sets the brush that specifies how the current series object's marker interiors are painted. You can use it like this:
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data">
    * 	<igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *       </igx-category-x-axis>
    *       <igx-numeric-y-axis #yAxis>
    *       </igx-numeric-y-axis>
    * 	 <igx-column-series
    *         #series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *      valueMemberPath="value"
    * 	 markerBrush = "blue">
    *      </igx-column-series>
    * </igx-data-chart>
    * ```
    */
    get markerBrush() {
        return brushToString(this.i.mp);
    }
    set markerBrush(v) {
        this.i.mp = stringToBrush(v);
    }
    /**
     * Gets the effective marker brush for the current series object.
    *
    * `actualMarkerBrush` property gets the effective marker brush for the current series object. For example, you can use it like this:
    *
    * ```ts
    *  let effectiveMarkerBrush: string = this.series.actualMarkerBrush;
    *
    * ```
    */
    get actualMarkerBrush() {
        return brushToString(this.i.mn);
    }
    set actualMarkerBrush(v) {
        this.i.mn = stringToBrush(v);
    }
    /**
     * Gets or sets the brush that specifies how the current series object's marker outlines are painted.
    *
    * `markerOutline` property gets or sets the brush that specifies how the current series object's marker outlines are painted. You can use it like this:
    *
    * ```html
    * <igx-data-chart
    *     [dataSource]="data">
    * 	<igx-category-x-axis
    *         label="label"
    *         #xAxis>
    *       </igx-category-x-axis>
    *       <igx-numeric-y-axis #yAxis>
    *       </igx-numeric-y-axis>
    * 	 <igx-column-series
    *         #series
    *         [xAxis]="xAxis"
    *         [yAxis]="yAxis"
    *      valueMemberPath="value">
    * 	 markerOutline = "blue">
    *      </igx-column-series>
    * </igx-data-chart>
    * ```
    */
    get markerOutline() {
        return brushToString(this.i.mq);
    }
    set markerOutline(v) {
        this.i.mq = stringToBrush(v);
    }
    /**
     * Gets the effective marker outline for the current series object.
    *
    * `actualMarkerOutline` property gets the effective marker outline for the current series object. You can use it like this:
    *
    * ```ts
    *  let effectiveMarkerOutline: string = this.series.actualMarkerOutline;
    *
    * ```
    */
    get actualMarkerOutline() {
        return brushToString(this.i.mo);
    }
    set actualMarkerOutline(v) {
        this.i.mo = stringToBrush(v);
    }
}
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Number),
    tslib_1.__metadata("design:paramtypes", [Number])
], IgxMarkerSeriesComponent.prototype, "markerType", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Object),
    tslib_1.__metadata("design:paramtypes", [Object])
], IgxMarkerSeriesComponent.prototype, "markerTemplate", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", Object),
    tslib_1.__metadata("design:paramtypes", [Object])
], IgxMarkerSeriesComponent.prototype, "actualMarkerTemplate", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxMarkerSeriesComponent.prototype, "markerBrush", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxMarkerSeriesComponent.prototype, "actualMarkerBrush", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxMarkerSeriesComponent.prototype, "markerOutline", null);
tslib_1.__decorate([
    Input(),
    tslib_1.__metadata("design:type", String),
    tslib_1.__metadata("design:paramtypes", [String])
], IgxMarkerSeriesComponent.prototype, "actualMarkerOutline", null);
//# sourceMappingURL=igx-marker-series-component.js.map