import { jsx as _jsx } from "react/jsx-runtime";
// logic
// math
// string
// date
import { RegisterExpression } from "./Utilities/RegisterExpression";
// icon
import { AbsoluteIcon } from "../CommonUI/Icon/AbsoluteIcon";
import { PlusOutlineIcon } from "../CommonUI/Icon/PlusOutlineIcon";
import { AsPercentageIcon } from "../CommonUI/Icon/AsPercentageIcon";
import { AverageIcon } from "../CommonUI/Icon/AverageIcon";
import { DateEqualToIcon } from "../CommonUI/Icon/DateEqualToIcon";
import { TextIcon } from "../CommonUI/TextIcon";
import { DateGreaterThanIcon } from "../CommonUI/Icon/DateGreaterThanIcon";
import { DevideIcon } from "../CommonUI/Icon/DevideIcon";
import { DateLessThanIcon } from "../CommonUI/Icon/DateLessThanIcon";
import { EqualIcon } from "../CommonUI/Icon/EqualIcon";
import { ExistsIcon } from "../CommonUI/Icon/ExistsIcon";
import { GreaterThanIcon } from "../CommonUI/Icon/GreaterThanIcon";
import { GreaterThanEqualIcon } from "../CommonUI/Icon/GreaterThanEqualIcon";
import { AndIcon } from "../CommonUI/Icon/AndIcon";
import { OrIcon } from "../CommonUI/Icon/OrIcon";
import { IfThenIcon } from "../CommonUI/Icon/IfThenIcon";
import { IsFalseIcon } from "../CommonUI/Icon/IsFalseIcon";
import { IsTrueIcon } from "../CommonUI/Icon/IsTrueIcon";
import { LessThanIcon } from "../CommonUI/Icon/LessThanIcon";
import { LessThanEqualIcon } from "../CommonUI/Icon/LessThanEqualIcon";
import { MaxIcon } from "../CommonUI/Icon/MaxIcon";
import { MinIcon } from "../CommonUI/Icon/MinIcon";
import { ModIcon } from "../CommonUI/Icon/ModIcon";
import { MultiplyIcon } from "../CommonUI/Icon/MultiplyIcon";
import { NotIcon } from "../CommonUI/Icon/NotIcon";
import { NotEqualIcon } from "../CommonUI/Icon/NotEqualIcon";
import { RandomIcon } from "../CommonUI/Icon/RandomIcon";
import { RoundIcon } from "../CommonUI/Icon/RoundIcon";
import { CombineIcon } from "../CommonUI/Icon/CombineIcon";
import { TextContainsIcon } from "../CommonUI/Icon/TextContainsIcon";
import { StartWithIcon } from "../CommonUI/Icon/StartWithIcon";
import { IndexOfIcon } from "../CommonUI/Icon/IndexOfIcon";
import { TextEmptyIcon } from "../CommonUI/Icon/TextEmptyIcon";
import { NotEmptyIcon } from "../CommonUI/Icon/NotEmptyIcon";
import { EmailValidIcon } from "../CommonUI/Icon/EmailValidIcon";
import { TextLengthIcon } from "../CommonUI/Icon/TextLengthIcon";
import { NotContainsIcon } from "../CommonUI/Icon/NotContainsIcon";
import { LowercaseIcon } from "../CommonUI/Icon/LowercaseIcon";
import { ProperIcon } from "../CommonUI/Icon/ProperIcon";
import { TrimIcon } from "../CommonUI/Icon/TrimIcon";
import { UppercaseIcon } from "../CommonUI/Icon/UppercaseIcon";
import { SubstractIcon } from "../CommonUI/Icon/SubstractIcon";
import { SumIcon } from "../CommonUI/Icon/SumIcon";
import { NumberDataDefinition } from "../Common/Data/Definitions/NumberDataDefinition";
import { BooleanDataDefinition } from "../Common/Data/Definitions/BooleanDataDefinition";
import { StringDataDefinition } from "../Common/Data/Definitions/StringDataDefinition";
import { AbsoluteExpression } from "./ExpressionElements/Math/AbsoluteExpression";
import { DateEqualToExpression } from "./ExpressionElements/Date/DateEqualToExpression";
import { DateGetDayExpression } from "./ExpressionElements/Date/DateGetDayExpression";
import { DateGetHourExpression } from "./ExpressionElements/Date/DateGetHourExpression";
import { DateGetMinuteExpression } from "./ExpressionElements/Date/DateGetMinuteExpression";
import { DateGetMonthExpression } from "./ExpressionElements/Date/DateGetMonthExpression";
import { DateGetSecondExpression } from "./ExpressionElements/Date/DateGetSecondExpression";
import { DateGetTodayExpression } from "./ExpressionElements/Date/DateGetTodayExpression";
import { DateGetYearExpression } from "./ExpressionElements/Date/DateGetYearExpression";
import { DateGreaterThanExpression } from "./ExpressionElements/Date/DateGreaterThanExpression";
import { DateLessThanExpression } from "./ExpressionElements/Date/DateLessThanExpression";
import { ExistsExpression } from "./ExpressionElements/Logic/Exists";
import { GreaterThanExpression } from "./ExpressionElements/Logic/GreaterThan";
import { LessThanExpression } from "./ExpressionElements/Logic/LessThan";
import { StringIndexOfExpression } from "./ExpressionElements/String/StringIndexOfExpression";
import { StringListInExpression } from "./ExpressionElements/String/StringListInExpression";
import { StringListContainsExpression } from "./ExpressionElements/String/StringListContainsExpression";
import { StringStartWithExpression } from "./ExpressionElements/String/StringStartWithExpression";
import { MaxExpression } from "./ExpressionElements/Math/MaxExpression";
import { StringTrimExpression } from "./ExpressionElements/String/StringTrimExpression";
import { StringUppercaseExpression } from "./ExpressionElements/String/StringUppercaseExpression";
import { EqualExpression } from "./ExpressionElements/Math/EqualExpression";
import { ModExpression } from "./ExpressionElements/Math/ModExpression";
import { NotExpression } from "./ExpressionElements/Logic/Not";
import { StringLowercaseExpression } from "./ExpressionElements/String/StringLowercaseExpression";
import { StringNotContainsExpression } from "./ExpressionElements/String/StringNotContainsExpression";
import { AndGroup, OrGroup } from "./ExpressionElements/Logic/Grouping";
import { GreaterThanEqualToExpression } from "./ExpressionElements/Logic/GreaterThanEqualTo";
import { NotEqualExpression } from "./ExpressionElements/Math/NotEqualExpression";
import { RandomExpression } from "./ExpressionElements/Math/RandomExpression";
import { StringListNotAllInExpression } from "./ExpressionElements/String/StringListNotAllInExpression";
import { StringListAllInExpression } from "./ExpressionElements/String/StringListAllInExpression";
import { StringLengthExpression } from "./ExpressionElements/String/StringLengthExpression";
import { StringContainsExpression } from "./ExpressionElements/String/StringContainsExpression";
import { StringEqualExpression } from "./ExpressionElements/String/StringEqualExpression";
import { StringEndWithExpression } from "./ExpressionElements/String/StringEndWithExpression";
import { StringListGetStringByIndexExpression } from "./ExpressionElements/String/StringListGetStringByIndexExpression";
import { AsPercentageExpression } from "./ExpressionElements/Math/AsPercentageExpression";
import { StringIsNotEmptyExpression } from "./ExpressionElements/String/StringIsNotEmptyExpression";
import { StringIsEmptyExpression } from "./ExpressionElements/String/StringIsEmptyExpression";
import { StringListCombineExpression } from "./ExpressionElements/String/StringListCombineExpression";
import { IfThenExpression } from "./ExpressionElements/Logic/IfThenExpression";
import { StringIsValidEmailExpression } from "./ExpressionElements/String/StringIsValidEmailExpression";
import { MultiplyExpression } from "./ExpressionElements/Math/MultiplyExpression";
import { IsFalseExpression } from "./ExpressionElements/Logic/IsFalse";
import { RoundExpression } from "./ExpressionElements/Math/RoundExpression";
import { LessThanEqualToExpression } from "./ExpressionElements/Logic/LessThanEqualTo";
import { AverageExpression } from "./ExpressionElements/Math/AverageExpression";
import { StringListNotContainsExpression } from "./ExpressionElements/String/StringListNotContainsExpression";
import { IsTrueExpression } from "./ExpressionElements/Logic/IsTrue";
import { StringProperExpression } from "./ExpressionElements/String/StringProperExpression";
import { MinExpression } from "./ExpressionElements/Math/MinExpression";
import { DivideExpression } from "./ExpressionElements/Math/DivideExpression";
import { StringCombineExpression } from "./ExpressionElements/String/StringCombineExpression";
import { AddExpression } from "./ExpressionElements/Math/AddExpression";
import { StringListNotInExpression } from "./ExpressionElements/String/StringListNotInExpression";
import { SubstractExpression } from "./ExpressionElements/Math/SubstractExpression";
import { AsCurrencyExpression } from "./ExpressionElements/Math/AsCurrencyExpression";
import { SumExpression } from "./ExpressionElements/Math/SumExpression";
// -------------
// this is the registration of all default expression elements
// -------------
export class RegisterExpressionElements {
    static doRegistration() {
        if (RegisterExpressionElements.isRegistered)
            return;
        RegisterExpressionElements.isRegistered = true;
        RegisterExpression(new AbsoluteExpression(), "Math", _jsx(AbsoluteIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new DateEqualToExpression(), "Date", _jsx(DateEqualToIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new DateGetDayExpression(), "Date", _jsx(TextIcon, { name: "D" }, void 0), new NumberDataDefinition());
        RegisterExpression(new DateGetHourExpression(), "Date", _jsx(TextIcon, { name: "H" }, void 0), new NumberDataDefinition());
        RegisterExpression(new DateGetMinuteExpression(), "Date", _jsx(TextIcon, { name: "m" }, void 0), new NumberDataDefinition());
        RegisterExpression(new DateGetMonthExpression(), "Date", _jsx(TextIcon, { name: "M" }, void 0), new NumberDataDefinition());
        RegisterExpression(new DateGetSecondExpression(), "Date", _jsx(TextIcon, { name: "s" }, void 0), new NumberDataDefinition());
        RegisterExpression(new DateGetTodayExpression(), "Date", _jsx(TextIcon, { name: "s" }, void 0), new NumberDataDefinition());
        RegisterExpression(new DateGetYearExpression(), "Date", _jsx(TextIcon, { name: "Y" }, void 0), new NumberDataDefinition());
        RegisterExpression(new DateGreaterThanExpression(), "Date", _jsx(DateGreaterThanIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new DateLessThanExpression(), "Date", _jsx(DateLessThanIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new ExistsExpression(), "Logic", _jsx(ExistsIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new GreaterThanExpression(), "Logic", _jsx(GreaterThanIcon, {}, void 0), new BooleanDataDefinition(), true);
        RegisterExpression(new GreaterThanEqualToExpression(), "Logic", _jsx(GreaterThanEqualIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new AndGroup(), "Logic", _jsx(AndIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new OrGroup(), "Logic", _jsx(OrIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new IfThenExpression(), "Logic", _jsx(IfThenIcon, {}, void 0), new BooleanDataDefinition(), true);
        RegisterExpression(new IsFalseExpression(), "Logic", _jsx(IsFalseIcon, {}, void 0), new BooleanDataDefinition(), true);
        RegisterExpression(new IsTrueExpression(), "Logic", _jsx(IsTrueIcon, {}, void 0), new BooleanDataDefinition(), true);
        RegisterExpression(new LessThanExpression(), "Logic", _jsx(LessThanIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new LessThanEqualToExpression(), "Logic", _jsx(LessThanEqualIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new NotExpression(), "Logic", _jsx(NotIcon, {}, void 0), new BooleanDataDefinition(), true);
        RegisterExpression(new AddExpression(), "Math", _jsx(PlusOutlineIcon, {}, void 0), new NumberDataDefinition(), true);
        RegisterExpression(new AsCurrencyExpression(), "Math", _jsx(AsPercentageIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new AsPercentageExpression(), "Math", _jsx(AsPercentageIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new AverageExpression(), "Math", _jsx(AverageIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new DivideExpression(), "Math", _jsx(DevideIcon, {}, void 0), new NumberDataDefinition(), true);
        RegisterExpression(new EqualExpression(), "Math", _jsx(EqualIcon, {}, void 0), new NumberDataDefinition(), true);
        RegisterExpression(new MaxExpression(), "Math", _jsx(MaxIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new MinExpression(), "Math", _jsx(MinIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new ModExpression(), "Math", _jsx(ModIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new MultiplyExpression(), "Math", _jsx(MultiplyIcon, {}, void 0), new NumberDataDefinition(), true);
        RegisterExpression(new SubstractExpression(), "Math", _jsx(SubstractIcon, {}, void 0), new NumberDataDefinition(), true);
        RegisterExpression(new SumExpression(), "Math", _jsx(SumIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new NotEqualExpression(), "Math", _jsx(NotEqualIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new RandomExpression(), "Math", _jsx(RandomIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new RoundExpression(), "Math", _jsx(RoundIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new StringCombineExpression(), "Text", _jsx(CombineIcon, {}, void 0), new StringDataDefinition());
        RegisterExpression(new StringContainsExpression(), "Text", _jsx(TextContainsIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringEqualExpression(), "Text", _jsx(EqualIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringEndWithExpression(), "Text", _jsx(StartWithIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringIndexOfExpression(), "Text", _jsx(IndexOfIcon, {}, void 0), new NumberDataDefinition());
        RegisterExpression(new StringIsEmptyExpression(), "Text", _jsx(TextEmptyIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringIsNotEmptyExpression(), "Text", _jsx(NotEmptyIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringIsValidEmailExpression(), "Text", _jsx(EmailValidIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringLengthExpression(), "Text", _jsx(TextLengthIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringLowercaseExpression(), "Text", _jsx(LowercaseIcon, {}, void 0), new StringDataDefinition());
        RegisterExpression(new StringNotContainsExpression(), "Text", _jsx(NotContainsIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringProperExpression(), "Text", _jsx(ProperIcon, {}, void 0), new StringDataDefinition());
        RegisterExpression(new StringStartWithExpression(), "Text", _jsx(StartWithIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringTrimExpression(), "Text", _jsx(TrimIcon, {}, void 0), new StringDataDefinition());
        RegisterExpression(new StringUppercaseExpression(), "Text", _jsx(UppercaseIcon, {}, void 0), new StringDataDefinition());
        let stringlistdd = new StringDataDefinition();
        stringlistdd.list = true;
        RegisterExpression(new StringListCombineExpression(), "Text", _jsx(CombineIcon, {}, void 0), stringlistdd);
        RegisterExpression(new StringListContainsExpression(), "Text", _jsx(TextContainsIcon, {}, void 0), new StringDataDefinition());
        RegisterExpression(new StringListGetStringByIndexExpression(), "Text", _jsx(CombineIcon, {}, void 0), new StringDataDefinition());
        RegisterExpression(new StringListInExpression(), "Text", _jsx(TextContainsIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringListNotAllInExpression(), "Text", _jsx(NotContainsIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringListNotContainsExpression(), "Text", _jsx(NotContainsIcon, {}, void 0), new StringDataDefinition());
        RegisterExpression(new StringListNotInExpression(), "Text", _jsx(NotContainsIcon, {}, void 0), new BooleanDataDefinition());
        RegisterExpression(new StringListAllInExpression(), "Text", _jsx(TextContainsIcon, {}, void 0), new BooleanDataDefinition());
    }
}
RegisterExpressionElements.isRegistered = false;
//# sourceMappingURL=registerElements.js.map