import { IgxShapefileRecord } from "./igx-shapefile-record";
import { ShapeFilterRecordEventArgs as ShapeFilterRecordEventArgs_internal } from "./ShapeFilterRecordEventArgs";
import { ensureBool } from "./componentUtil";
export class IgxShapeFilterRecordEventArgs {
    constructor() {
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    createImplementation() {
        return new ShapeFilterRecordEventArgs_internal();
    }
    /**
     * @hidden
     */
    get i() {
        return this._implementation;
    }
    onImplementationCreated() {
    }
    _provideImplementation(i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
    }
    get record() {
        const r = this.i.a;
        if (r == null) {
            return null;
        }
        if (!r.externalObject) {
            let e = new IgxShapefileRecord();
            if (r.$type) {
                e._implementation = r;
            }
            else {
                if (e.i.setNativeElement) {
                    e.i.setNativeElement(r);
                }
            }
            r.externalObject = e;
        }
        return r.externalObject;
    }
    set record(v) {
        v == null ? this.i.a = null : this.i.a = v.i;
    }
    get shouldInclude() {
        return this.i.b;
    }
    set shouldInclude(v) {
        this.i.b = ensureBool(v);
    }
}
