import { IgxSeriesComponent } from "./igx-series-component";
import { CalloutLabelUpdatingEventArgs as CalloutLabelUpdatingEventArgs_internal } from "./CalloutLabelUpdatingEventArgs";
/**
 * Represents event arguments for updating label of callout layer
*/
export class IgxCalloutLabelUpdatingEventArgs {
    constructor() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
        if (this._initializeAdapters) {
            this._initializeAdapters();
        }
    }
    createImplementation() {
        return new CalloutLabelUpdatingEventArgs_internal();
    }
    /**
     * @hidden
     */
    get i() {
        return this._implementation;
    }
    onImplementationCreated() {
    }
    _provideImplementation(i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    /**
     * Gets data X-value associated with callout layer
    */
    get xValue() {
        return this.i.d;
    }
    set xValue(v) {
        this.i.d = v;
    }
    /**
     * Gets data Y-value associated with callout layer
    */
    get yValue() {
        return this.i.e;
    }
    set yValue(v) {
        this.i.e = v;
    }
    /**
     * Gets data item associated with callout layer
    */
    get item() {
        return this.i.item;
    }
    set item(v) {
        this.i.item = v;
    }
    /**
     * Gets series associated with callout item, if available
    */
    get series() {
        const r = this.i.a;
        if (r == null) {
            return null;
        }
        if (!r.externalObject) {
            let e = IgxSeriesComponent._createFromInternal(r);
            if (e) {
                e._implementation = r;
            }
            r.externalObject = e;
        }
        return r.externalObject;
    }
    set series(v) {
        v == null ? this.i.a = null : this.i.a = v.i;
    }
    /**
     * Gets series name associated with callout item, if available
    */
    get seriesName() {
        return this.i.f;
    }
    set seriesName(v) {
        this.i.f = v;
    }
    /**
     * Gets or sets label displayed by callout layer
    */
    get label() {
        return this.i.c;
    }
    set label(v) {
        this.i.c = v;
    }
}
