feat: regex operator is added in the string type for all data source (#3362)

This commit is contained in:
Palash Gupta 2023-08-18 09:18:50 +05:30 committed by GitHub
parent c8bad4fc79
commit 458cff32fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 2 deletions

View File

@ -260,6 +260,8 @@ export const OPERATORS = {
NIN: 'NOT_IN', NIN: 'NOT_IN',
LIKE: 'LIKE', LIKE: 'LIKE',
NLIKE: 'NOT_LIKE', NLIKE: 'NOT_LIKE',
REGEX: 'REGEX',
NREGEX: 'NOT_REGEX',
'=': '=', '=': '=',
'!=': '!=', '!=': '!=',
EXISTS: 'EXISTS', EXISTS: 'EXISTS',
@ -284,6 +286,8 @@ export const QUERY_BUILDER_OPERATORS_BY_TYPES = {
OPERATORS.NOT_CONTAINS, OPERATORS.NOT_CONTAINS,
OPERATORS.EXISTS, OPERATORS.EXISTS,
OPERATORS.NOT_EXISTS, OPERATORS.NOT_EXISTS,
OPERATORS.REGEX,
OPERATORS.NREGEX,
], ],
int64: [ int64: [
OPERATORS['='], OPERATORS['='],

View File

@ -1,10 +1,9 @@
import { OPERATORS } from 'constants/queryBuilder'; import { OPERATORS } from 'constants/queryBuilder';
// eslint-disable-next-line import/no-extraneous-dependencies
import * as Papa from 'papaparse'; import * as Papa from 'papaparse';
import { orderByValueDelimiter } from '../OrderByFilter/utils'; import { orderByValueDelimiter } from '../OrderByFilter/utils';
export const tagRegexp = /([a-zA-Z0-9_.:@$()\-/\\]+)\s*(!=|=|<=|<|>=|>|IN|NOT_IN|LIKE|NOT_LIKE|EXISTS|NOT_EXISTS|CONTAINS|NOT_CONTAINS)\s*([\s\S]*)/g; export const tagRegexp = /([a-zA-Z0-9_.:@$()\-/\\]+)\s*(!=|=|<=|<|>=|>|IN|NOT_IN|LIKE|NOT_LIKE|REGEX|NOT_REGEX|EXISTS|NOT_EXISTS|CONTAINS|NOT_CONTAINS)\s*([\s\S]*)/g;
export function isInNInOperator(value: string): boolean { export function isInNInOperator(value: string): boolean {
return value === OPERATORS.IN || value === OPERATORS.NIN; return value === OPERATORS.IN || value === OPERATORS.NIN;
@ -56,6 +55,10 @@ export function getOperatorValue(op: string): string {
return 'in'; return 'in';
case 'NOT_IN': case 'NOT_IN':
return 'nin'; return 'nin';
case OPERATORS.REGEX:
return 'regex';
case OPERATORS.NREGEX:
return 'nregex';
case 'LIKE': case 'LIKE':
return 'like'; return 'like';
case 'NOT_LIKE': case 'NOT_LIKE':
@ -81,6 +84,10 @@ export function getOperatorFromValue(op: string): string {
return 'NOT_IN'; return 'NOT_IN';
case 'like': case 'like':
return 'LIKE'; return 'LIKE';
case 'regex':
return OPERATORS.REGEX;
case 'nregex':
return OPERATORS.NREGEX;
case 'nlike': case 'nlike':
return 'NOT_LIKE'; return 'NOT_LIKE';
case 'exists': case 'exists':

View File

@ -17,6 +17,8 @@ const operatorTypeMapper: Record<string, OperatorType> = {
[OPERATORS['>']]: 'SINGLE_VALUE', [OPERATORS['>']]: 'SINGLE_VALUE',
[OPERATORS.LIKE]: 'SINGLE_VALUE', [OPERATORS.LIKE]: 'SINGLE_VALUE',
[OPERATORS.NLIKE]: 'SINGLE_VALUE', [OPERATORS.NLIKE]: 'SINGLE_VALUE',
[OPERATORS.REGEX]: 'SINGLE_VALUE',
[OPERATORS.NREGEX]: 'SINGLE_VALUE',
[OPERATORS.CONTAINS]: 'SINGLE_VALUE', [OPERATORS.CONTAINS]: 'SINGLE_VALUE',
[OPERATORS.NOT_CONTAINS]: 'SINGLE_VALUE', [OPERATORS.NOT_CONTAINS]: 'SINGLE_VALUE',
[OPERATORS['=']]: 'SINGLE_VALUE', [OPERATORS['=']]: 'SINGLE_VALUE',