/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE  AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE:  you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { __extends } from "tslib";
import { Base, String_$type, markType } from "./type";
import { Dictionary$2 } from "./Dictionary$2";
import { WebGridStateBaseDirectiveDescriptionMetadata } from "./WebGridStateBaseDirectiveDescriptionMetadata";
import { WebGridStateDescription } from "./WebGridStateDescription";
import { WebGridStateInfoEventArgsDescription } from "./WebGridStateInfoEventArgsDescription";
import { WebColumnStateDescriptionMetadata } from "./WebColumnStateDescriptionMetadata";
import { WebFilteringExpressionsTreeDescriptionMetadata } from "./WebFilteringExpressionsTreeDescriptionMetadata";
import { WebPagingStateDescriptionMetadata } from "./WebPagingStateDescriptionMetadata";
import { WebSortingExpressionDescriptionMetadata } from "./WebSortingExpressionDescriptionMetadata";
import { WebGroupingStateDescriptionMetadata } from "./WebGroupingStateDescriptionMetadata";
import { WebGridSelectionRangeDescriptionMetadata } from "./WebGridSelectionRangeDescriptionMetadata";
import { WebPinningConfigDescriptionMetadata } from "./WebPinningConfigDescriptionMetadata";
import { WebPivotConfigurationDescriptionMetadata } from "./WebPivotConfigurationDescriptionMetadata";
import { WebGridStateInfoDescription } from "./WebGridStateInfoDescription";
import { WebGridStateCollectionDescription } from "./WebGridStateCollectionDescription";
/**
 * @hidden
 */
var WebGridStateDescriptionMetadata = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(WebGridStateDescriptionMetadata, _super);
    function WebGridStateDescriptionMetadata() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    WebGridStateDescriptionMetadata.b = function (a) {
        if (WebGridStateDescriptionMetadata.a == null) {
            WebGridStateDescriptionMetadata.a = new Dictionary$2(String_$type, String_$type, 0);
            WebGridStateDescriptionMetadata.c(WebGridStateDescriptionMetadata.a);
        }
        if (a.k(WebGridStateDescriptionMetadata.a)) {
            return;
        }
        a.ab(WebGridStateDescriptionMetadata.a);
        WebGridStateInfoEventArgsDescriptionMetadata.d(a);
    };
    WebGridStateDescriptionMetadata.c = function (a) {
        WebGridStateBaseDirectiveDescriptionMetadata.c(a);
        a.item("__qualifiedNameTS", "String:GridState");
        a.item("__tagNameWC", "String:igc-grid-state");
        a.item("__packageNameWC", "String:grids");
        a.item("__skipModuleRegisterWebComponents", "Boolean");
        a.item("__importOverrideWebComponents", "String:igniteui-webcomponents-grids/grids/combined");
        a.item("__importTypesWebComponents", "String:igniteui-webcomponents-grids/grids");
        if (a.containsKey("__skipSuffix")) {
            a.removeItem("__skipSuffix");
        }
        a.item("__manageCollectionInMarkup", "Boolean");
        a.item("StateParsedRef", "EventRef::stateParsed:customEvent");
    };
    WebGridStateDescriptionMetadata.d = function (a) {
        WebGridStateDescriptionMetadata.b(a);
        a.ad("WebGridState", function () { return new WebGridStateDescription(); });
        a.ac("WebGridState", WebGridStateDescriptionMetadata.a);
    };
    WebGridStateDescriptionMetadata.$t = markType(WebGridStateDescriptionMetadata, 'WebGridStateDescriptionMetadata');
    WebGridStateDescriptionMetadata.a = null;
    return WebGridStateDescriptionMetadata;
}(Base));
export { WebGridStateDescriptionMetadata };
/**
 * @hidden
 */
var WebGridStateInfoEventArgsDescriptionMetadata = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(WebGridStateInfoEventArgsDescriptionMetadata, _super);
    function WebGridStateInfoEventArgsDescriptionMetadata() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    WebGridStateInfoEventArgsDescriptionMetadata.b = function (a) {
        if (WebGridStateInfoEventArgsDescriptionMetadata.a == null) {
            WebGridStateInfoEventArgsDescriptionMetadata.a = new Dictionary$2(String_$type, String_$type, 0);
            WebGridStateInfoEventArgsDescriptionMetadata.c(WebGridStateInfoEventArgsDescriptionMetadata.a);
        }
        if (a.k(WebGridStateInfoEventArgsDescriptionMetadata.a)) {
            return;
        }
        a.ab(WebGridStateInfoEventArgsDescriptionMetadata.a);
        WebGridStateInfoDescriptionMetadata.d(a);
    };
    WebGridStateInfoEventArgsDescriptionMetadata.c = function (a) {
        a.item("__qualifiedNameTS", "String:GridStateInfoEventArgs");
        a.item("__packageNameWC", "String:grids");
        a.item("__skipModuleRegisterWebComponents", "Boolean");
        a.item("__importOverrideWebComponents", "String:igniteui-webcomponents-grids/grids/combined");
        a.item("__importTypesWebComponents", "String:igniteui-webcomponents-grids/grids");
        a.item("__marshalByValue", "Boolean");
        a.item("Detail", "ExportedType:WebGridStateInfo");
    };
    WebGridStateInfoEventArgsDescriptionMetadata.d = function (a) {
        WebGridStateInfoEventArgsDescriptionMetadata.b(a);
        a.ad("WebGridStateInfoEventArgs", function () { return new WebGridStateInfoEventArgsDescription(); });
        a.ac("WebGridStateInfoEventArgs", WebGridStateInfoEventArgsDescriptionMetadata.a);
    };
    WebGridStateInfoEventArgsDescriptionMetadata.$t = markType(WebGridStateInfoEventArgsDescriptionMetadata, 'WebGridStateInfoEventArgsDescriptionMetadata');
    WebGridStateInfoEventArgsDescriptionMetadata.a = null;
    return WebGridStateInfoEventArgsDescriptionMetadata;
}(Base));
export { WebGridStateInfoEventArgsDescriptionMetadata };
/**
 * @hidden
 */
var WebGridStateInfoDescriptionMetadata = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(WebGridStateInfoDescriptionMetadata, _super);
    function WebGridStateInfoDescriptionMetadata() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    WebGridStateInfoDescriptionMetadata.b = function (a) {
        if (WebGridStateInfoDescriptionMetadata.a == null) {
            WebGridStateInfoDescriptionMetadata.a = new Dictionary$2(String_$type, String_$type, 0);
            WebGridStateInfoDescriptionMetadata.c(WebGridStateInfoDescriptionMetadata.a);
        }
        if (a.k(WebGridStateInfoDescriptionMetadata.a)) {
            return;
        }
        a.ab(WebGridStateInfoDescriptionMetadata.a);
        WebColumnStateDescriptionMetadata.d(a);
        WebFilteringExpressionsTreeDescriptionMetadata.d(a);
        WebPagingStateDescriptionMetadata.d(a);
        WebSortingExpressionDescriptionMetadata.d(a);
        WebGroupingStateDescriptionMetadata.d(a);
        WebGridSelectionRangeDescriptionMetadata.d(a);
        WebPinningConfigDescriptionMetadata.d(a);
        WebGridStateCollectionDescriptionMetadata.d(a);
        WebPivotConfigurationDescriptionMetadata.d(a);
    };
    WebGridStateInfoDescriptionMetadata.c = function (a) {
        a.item("__qualifiedNameTS", "String:GridStateInfo");
        a.item("__packageNameWC", "String:grids");
        a.item("__skipModuleRegisterWebComponents", "Boolean");
        a.item("__importOverrideWebComponents", "String:igniteui-webcomponents-grids/grids/combined");
        a.item("__importTypesWebComponents", "String:igniteui-webcomponents-grids/grids");
        a.item("__isPlainObject", "Boolean");
        a.item("__marshalByValue", "Boolean");
        a.item("__skipSuffix", "Boolean");
        a.item("__isTSPlainInterface", "Boolean");
        a.item("Columns", "Array:WebColumnStateDescription:ColumnState");
        a.item("Filtering", "ExportedType:WebFilteringExpressionsTree");
        a.item("AdvancedFiltering", "ExportedType:WebFilteringExpressionsTree");
        a.item("Paging", "ExportedType:WebPagingState");
        a.item("Moving", "Boolean");
        a.item("Sorting", "Array:WebSortingExpressionDescription:SortingExpression");
        a.item("GroupBy", "ExportedType:WebGroupingState");
        a.item("CellSelection", "Array:WebGridSelectionRangeDescription:GridSelectionRange");
        a.item("RowSelection", "Array:object");
        a.item("ColumnSelection", "Array:string");
        a.item("RowPinning", "Array:object");
        a.item("PinningConfig", "ExportedType:WebPinningConfig");
        a.item("Expansion", "Array:object");
        a.item("RowIslands", "Array:WebGridStateCollectionDescription:GridStateCollection");
        a.item("Id", "String");
        a.item("PivotConfiguration", "ExportedType:WebPivotConfiguration");
    };
    WebGridStateInfoDescriptionMetadata.d = function (a) {
        WebGridStateInfoDescriptionMetadata.b(a);
        a.ad("WebGridStateInfo", function () { return new WebGridStateInfoDescription(); });
        a.ac("WebGridStateInfo", WebGridStateInfoDescriptionMetadata.a);
    };
    WebGridStateInfoDescriptionMetadata.$t = markType(WebGridStateInfoDescriptionMetadata, 'WebGridStateInfoDescriptionMetadata');
    WebGridStateInfoDescriptionMetadata.a = null;
    return WebGridStateInfoDescriptionMetadata;
}(Base));
export { WebGridStateInfoDescriptionMetadata };
/**
 * @hidden
 */
var WebGridStateCollectionDescriptionMetadata = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(WebGridStateCollectionDescriptionMetadata, _super);
    function WebGridStateCollectionDescriptionMetadata() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    WebGridStateCollectionDescriptionMetadata.b = function (a) {
        if (WebGridStateCollectionDescriptionMetadata.a == null) {
            WebGridStateCollectionDescriptionMetadata.a = new Dictionary$2(String_$type, String_$type, 0);
            WebGridStateCollectionDescriptionMetadata.c(WebGridStateCollectionDescriptionMetadata.a);
        }
        if (a.k(WebGridStateCollectionDescriptionMetadata.a)) {
            return;
        }
        a.ab(WebGridStateCollectionDescriptionMetadata.a);
        WebGridStateDescriptionMetadata.d(a);
    };
    WebGridStateCollectionDescriptionMetadata.c = function (a) {
        a.item("__qualifiedNameTS", "String:GridStateCollection");
        a.item("__packageNameWC", "String:grids");
        a.item("__skipModuleRegisterWebComponents", "Boolean");
        a.item("__importOverrideWebComponents", "String:igniteui-webcomponents-grids/grids/combined");
        a.item("__importTypesWebComponents", "String:igniteui-webcomponents-grids/grids");
        a.item("__isPlainObject", "Boolean");
        a.item("__marshalByValue", "Boolean");
        a.item("__skipSuffix", "Boolean");
        a.item("Id", "String");
        a.item("ParentRowID", "Unknown");
        a.item("State", "ExportedType:WebGridState");
    };
    WebGridStateCollectionDescriptionMetadata.d = function (a) {
        WebGridStateCollectionDescriptionMetadata.b(a);
        a.ad("WebGridStateCollection", function () { return new WebGridStateCollectionDescription(); });
        a.ac("WebGridStateCollection", WebGridStateCollectionDescriptionMetadata.a);
    };
    WebGridStateCollectionDescriptionMetadata.$t = markType(WebGridStateCollectionDescriptionMetadata, 'WebGridStateCollectionDescriptionMetadata');
    WebGridStateCollectionDescriptionMetadata.a = null;
    return WebGridStateCollectionDescriptionMetadata;
}(Base));
export { WebGridStateCollectionDescriptionMetadata };
