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