{"version":3,"file":"comparisonType.js","sources":["../../../../Framework/Core/Reporting/comparisonType.ts"],"sourcesContent":["// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { FilterMode } from \"./filterMode\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\n\n/** The comparison types typically used for simple binary comparison. */\nexport const binaryComparisonTypes: ComparisonType = ComparisonType.EqualTo\n | ComparisonType.NotEqualTo;\n\n/** The comparison types typically used for string-type values. */\nexport const stringComparisonTypes: ComparisonType = ComparisonType.Contains\n | ComparisonType.DoesNotContain\n | ComparisonType.EqualTo\n | ComparisonType.NotEqualTo\n | ComparisonType.IsBlank\n | ComparisonType.IsNotBlank\n | ComparisonType.StartsWith\n | ComparisonType.EndsWith;\n\n/** The comparison types typically used for multiple choice values. */\nexport const containsComparisonTypes: ComparisonType = ComparisonType.Contains\n | ComparisonType.DoesNotContain\n | ComparisonType.IsBlank;\n\n/** The comparison types typically used for numeric values. */\nexport const numericComparisonTypes: ComparisonType = ComparisonType.EqualTo\n | ComparisonType.IsBlank\n | ComparisonType.IsNotBlank\n | ComparisonType.NotEqualTo\n | ComparisonType.GreaterThan\n | ComparisonType.GreaterThanOrEqualTo\n | ComparisonType.LessThan\n | ComparisonType.LessThanOrEqualTo;\n\n/** The comparison types typically used for date values. */\nexport const dateComparisonTypes: ComparisonType = ComparisonType.EqualTo\n | ComparisonType.IsBlank\n | ComparisonType.IsNotBlank\n | ComparisonType.GreaterThan\n | ComparisonType.GreaterThanOrEqualTo\n | ComparisonType.LessThan\n | ComparisonType.LessThanOrEqualTo\n | ComparisonType.Between;\n\n/**\n * Gets the user friendly name for the comparison type.\n *\n * @param type The type of comparison.\n *\n * @returns A string containing the name of the comparison.\n */\nexport function getComparisonName(type: ComparisonType): string {\n switch (type) {\n case ComparisonType.EqualTo:\n return \"Equal To\";\n\n case ComparisonType.NotEqualTo:\n return \"Not Equal To\";\n\n case ComparisonType.StartsWith:\n return \"Starts With\";\n\n case ComparisonType.Contains:\n return \"Contains\";\n\n case ComparisonType.DoesNotContain:\n return \"Does Not Contain\";\n\n case ComparisonType.IsBlank:\n return \"Is Blank\";\n\n case ComparisonType.IsNotBlank:\n return \"Is Not Blank\";\n\n case ComparisonType.GreaterThan:\n return \"Greater Than\";\n\n case ComparisonType.GreaterThanOrEqualTo:\n return \"Greater Than Or Equal To\";\n\n case ComparisonType.LessThan:\n return \"Less Than\";\n\n case ComparisonType.LessThanOrEqualTo:\n return \"Less Than Or Equal To\";\n\n case ComparisonType.EndsWith:\n return \"Ends With\";\n\n case ComparisonType.Between:\n return \"Between\";\n\n case ComparisonType.RegularExpression:\n return \"Regular Expression\";\n\n default:\n return \"\";\n }\n}\n\n/**\n * Checks if the standard comparison type component should be visible or not for\n * the given comparison type options and filter mode.\n *\n * @param comparisonType The comparison types available to be selected.\n * @param filterMode The type of filtering UI to show.\n *\n * @returns true if the comparison type component should be visible; otherwise false.\n */\nexport function isCompareVisibleForComparisonFilter(comparisonType: ComparisonType, filterMode: FilterMode): boolean {\n if (filterMode !== FilterMode.Simple) {\n return true;\n }\n\n const isHideable = comparisonType === binaryComparisonTypes\n || comparisonType === stringComparisonTypes\n || comparisonType === containsComparisonTypes;\n\n return !isHideable;\n}\n\n/**\n * Determines if this comparision type specifies one and only one type. This\n * uses bitwise logic to ensure that only a single bit is set.\n *\n * @param comparisionType The comparison type to check.\n *\n * @returns true if the comparison type specifies one and only one type.\n */\nexport function isSingleComparisonType(comparisionType: ComparisonType): boolean {\n return comparisionType === ComparisonType.EqualTo\n || comparisionType === ComparisonType.NotEqualTo\n || comparisionType === ComparisonType.StartsWith\n || comparisionType === ComparisonType.Contains\n || comparisionType === ComparisonType.DoesNotContain\n || comparisionType === ComparisonType.IsBlank\n || comparisionType === ComparisonType.IsNotBlank\n || comparisionType === ComparisonType.GreaterThan\n || comparisionType === ComparisonType.GreaterThanOrEqualTo\n || comparisionType === ComparisonType.LessThan\n || comparisionType === ComparisonType.LessThanOrEqualTo\n || comparisionType === ComparisonType.EndsWith\n || comparisionType === ComparisonType.Between\n || comparisionType === ComparisonType.RegularExpression;\n}\n"],"names":["binaryComparisonTypes","ComparisonType","EqualTo","NotEqualTo","stringComparisonTypes","Contains","DoesNotContain","IsBlank","IsNotBlank","StartsWith","EndsWith","containsComparisonTypes","numericComparisonTypes","GreaterThan","GreaterThanOrEqualTo","LessThan","LessThanOrEqualTo","dateComparisonTypes","Between","getComparisonName","type","RegularExpression","isCompareVisibleForComparisonFilter","comparisonType","filterMode","FilterMode","Simple","isHideable","isSingleComparisonType","comparisionType"],"mappings":"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"}