import { IgrShapefileRecord } from "./igr-shapefile-record";
import { ShapeFilterRecordEventArgs as ShapeFilterRecordEventArgs_internal } from "./ShapeFilterRecordEventArgs";
import { ensureBool } from "./componentUtil";
var IgrShapeFilterRecordEventArgs = /** @class */ /*@__PURE__*/ (function () {
    function IgrShapeFilterRecordEventArgs() {
        this.mounted = false;
        this._implementation = this.createImplementation();
        this._implementation.externalObject = this;
        this.onImplementationCreated();
        if (this._initializeAdapters) {
            this._initializeAdapters();
        }
    }
    IgrShapeFilterRecordEventArgs.prototype.createImplementation = function () {
        return new ShapeFilterRecordEventArgs_internal();
    };
    Object.defineProperty(IgrShapeFilterRecordEventArgs.prototype, "i", {
        /**
         * @hidden
         */
        get: function () {
            return this._implementation;
        },
        enumerable: false,
        configurable: true
    });
    IgrShapeFilterRecordEventArgs.prototype.onImplementationCreated = function () {
    };
    IgrShapeFilterRecordEventArgs.prototype._provideImplementation = function (i) {
        this._implementation = i;
        this._implementation.externalObject = this;
        this.onImplementationCreated();
        if (this._initializeAdapters) {
            this._initializeAdapters();
        }
    };
    Object.defineProperty(IgrShapeFilterRecordEventArgs.prototype, "record", {
        get: function () {
            var r = this.i.a;
            if (r == null) {
                return null;
            }
            if (!r.externalObject) {
                var e = new IgrShapefileRecord();
                if (r.$type) {
                    e._implementation = r;
                }
                else {
                    if (e.i.setNativeElement) {
                        e.i.setNativeElement(r);
                    }
                }
                r.externalObject = e;
            }
            return r.externalObject;
        },
        set: function (v) {
            v == null ? this.i.a = null : this.i.a = v.i;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(IgrShapeFilterRecordEventArgs.prototype, "shouldInclude", {
        get: function () {
            return this.i.b;
        },
        set: function (v) {
            this.i.b = ensureBool(v);
        },
        enumerable: false,
        configurable: true
    });
    return IgrShapeFilterRecordEventArgs;
}());
export { IgrShapeFilterRecordEventArgs };
