import { jsx as _jsx } from "react/jsx-runtime";
import { TextIcon } from "../../../CommonUI/TextIcon";
import { RegisterValueTableRule } from "./ValueTableRegistrationData";
import { StringContains } from "./ValueTableRules/StringRules/Contains";
import { StringEquals } from "./ValueTableRules/StringRules/Equals";
import { StringDoesNotEqual } from "./ValueTableRules/StringRules/DoesNotEqual";
import { StringDoesNotContain } from "./ValueTableRules/StringRules/DoesNotContain";
import { StringEndsWith } from "./ValueTableRules/StringRules/EndsWith";
import { StringIsEmpty } from "./ValueTableRules/StringRules/IsEmpty";
import { StringStartsWith } from "./ValueTableRules/StringRules/StartsWith";
import { StringListContains } from './ValueTableRules/StringListRules/Contains';
import { StringListCountGreaterThan } from './ValueTableRules/StringListRules/CountGreaterThan';
import { StringListCountLessThan } from './ValueTableRules/StringListRules/CountLessThan';
import { StringListDoesNotContain } from './ValueTableRules/StringListRules/DoesNotContain';
import { StringListIsEmpty } from './ValueTableRules/StringListRules/IsEmpty';
import { NumberDoesNotEqual } from './ValueTableRules/NumberRules/DoesNotEqual';
import { NumberEquals } from './ValueTableRules/NumberRules/Equals';
import { NumberGreaterThan } from './ValueTableRules/NumberRules/GreaterThan';
import { NumberGreaterThanOrEqualTo } from './ValueTableRules/NumberRules/GreaterThanOrEqualTo';
import { NumberLessThan } from './ValueTableRules/NumberRules/LessThan';
import { NumberLessThanOrEqualTo } from './ValueTableRules/NumberRules/LessThanOrEqualTo';
import { DateEquals } from './ValueTableRules/DateRules/Equals';
import { DateGreaterThan } from './ValueTableRules/DateRules/GreaterThan';
import { DateGreaterThanOrEqualTo } from './ValueTableRules/DateRules/GreaterThanOrEqualTo';
import { DateLessThan } from './ValueTableRules/DateRules/LessThan';
import { DateLessThanOrEqualTo } from './ValueTableRules/DateRules/LessThanOrEqualTo';
import { BooleanExists } from './ValueTableRules/BooleanRules/Exists';
import { BooleanIs } from './ValueTableRules/BooleanRules/Is';
import { XDataType } from "../../../Common/Data/XDataType";
export class RegisterValueTableElements {
    static doRegistration() {
        if (RegisterValueTableElements.isRegistered)
            return;
        this.isRegistered = true;
        // register each element
        // string
        RegisterValueTableRule(new StringEquals(), XDataType.STRING, 'StringEquals', _jsx(TextIcon, { name: "E" }, void 0));
        RegisterValueTableRule(new StringContains(), XDataType.STRING, 'StringContains', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringDoesNotEqual(), XDataType.STRING, 'StringDoesNotEqual', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringDoesNotContain(), XDataType.STRING, 'StringDoesNotContain', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringEndsWith(), XDataType.STRING, 'StringEndsWith', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringIsEmpty(), XDataType.STRING, 'StringIsEmpty', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringStartsWith(), XDataType.STRING, 'StringStartsWith', _jsx(TextIcon, { name: "C" }, void 0));
        // selectedColForRule
        RegisterValueTableRule(new StringListContains(), XDataType.STRING, 'StringListContains', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringListCountGreaterThan(), XDataType.STRING, 'StringListCountGreaterThan', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringListCountLessThan(), XDataType.STRING, 'StringListCountLessThan', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringListDoesNotContain(), XDataType.STRING, 'StringListDoesNotContain', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new StringListIsEmpty(), XDataType.STRING, 'StringListIsEmpty', _jsx(TextIcon, { name: "C" }, void 0));
        // Number
        RegisterValueTableRule(new NumberDoesNotEqual(), XDataType.NUMBER, 'NumberDoesNotEqual', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new NumberEquals(), XDataType.NUMBER, 'NumberEquals', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new NumberGreaterThan(), XDataType.NUMBER, 'NumberGreaterThan', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new NumberGreaterThanOrEqualTo(), XDataType.NUMBER, 'NumberGreaterThanOrEqualTo', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new NumberLessThan(), XDataType.NUMBER, 'NumberLessThan', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new NumberLessThanOrEqualTo(), XDataType.NUMBER, 'NumberLessThanOrEqualTo', _jsx(TextIcon, { name: "C" }, void 0));
        // Date
        RegisterValueTableRule(new DateEquals(), XDataType.DATE, 'DateEquals', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new DateGreaterThan(), XDataType.DATE, 'DateGreaterThan', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new DateGreaterThanOrEqualTo(), XDataType.DATE, 'DateGreaterThanOrEqualTo', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new DateLessThan(), XDataType.DATE, 'DateLessThan', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new DateLessThanOrEqualTo(), XDataType.DATE, 'DateLessThanOrEqualTo', _jsx(TextIcon, { name: "C" }, void 0));
        // Boolean
        RegisterValueTableRule(new BooleanExists(), XDataType.BOOLEAN, 'BooleanExists', _jsx(TextIcon, { name: "C" }, void 0));
        RegisterValueTableRule(new BooleanIs(), XDataType.BOOLEAN, 'BooleanIs', _jsx(TextIcon, { name: "C" }, void 0));
    }
}
RegisterValueTableElements.isRegistered = false;
//# sourceMappingURL=registerElements.js.map