/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
/**
* Constants for OData query.
*/
export const CONJUNCTIONS = {
AND: 'and',
OR: 'or',
};
export const FUNCTIONAL_OPERATORS = {
CONTAINS: 'contains',
};
export const NOT_OPERATORS = {
NOT_CONTAINS: 'not-contains',
NOT_EQ: 'not-eq',
};
export const GROUP = 'GROUP';
export const RELATIONAL_OPERATORS = {
EQ: 'eq',
GE: 'ge',
GT: 'gt',
LE: 'le',
LT: 'lt',
};
/**
* Constants to match property types in the passed in supportedProperties array.
*/
export const PROPERTY_TYPES = {
BOOLEAN: 'boolean',
COLLECTION: 'collection',
DATE: 'date',
DATE_TIME: 'date-time',
DOUBLE: 'double',
ID: 'id',
INTEGER: 'integer',
STRING: 'string',
};
/**
* Constants for CriteriaBuilder component.
*/
const {AND, OR} = CONJUNCTIONS;
const {EQ, GE, GT, LE, LT} = RELATIONAL_OPERATORS;
const {NOT_CONTAINS, NOT_EQ} = NOT_OPERATORS;
const {CONTAINS} = FUNCTIONAL_OPERATORS;
const {
BOOLEAN,
COLLECTION,
DATE,
DATE_TIME,
DOUBLE,
ID,
INTEGER,
STRING,
} = PROPERTY_TYPES;
export const SUPPORTED_CONJUNCTIONS = [
{
label: Liferay.Language.get('and'),
name: AND,
},
{
label: Liferay.Language.get('or'),
name: OR,
},
];
export const SUPPORTED_OPERATORS = [
{
label: Liferay.Language.get('equals'),
name: EQ,
},
{
label: Liferay.Language.get('not-equals'),
name: NOT_EQ,
},
{
label: Liferay.Language.get('greater-than'),
name: GT,
},
{
label: Liferay.Language.get('greater-than-or-equals'),
name: GE,
},
{
label: Liferay.Language.get('less-than'),
name: LT,
},
{
label: Liferay.Language.get('less-than-or-equals'),
name: LE,
},
{
label: Liferay.Language.get('contains'),
name: CONTAINS,
},
{
label: Liferay.Language.get('not-contains'),
name: NOT_CONTAINS,
},
];
export const SUPPORTED_PROPERTY_TYPES = {
[BOOLEAN]: [EQ, NOT_EQ],
[COLLECTION]: [EQ, NOT_EQ, CONTAINS, NOT_CONTAINS],
[DATE]: [EQ, GE, GT, LE, LT, NOT_EQ],
[DATE_TIME]: [EQ, GE, GT, LE, LT, NOT_EQ],
[DOUBLE]: [EQ, GE, GT, LE, LT, NOT_EQ],
[ID]: [EQ, NOT_EQ],
[INTEGER]: [EQ, GE, GT, LE, LT, NOT_EQ],
[STRING]: [EQ, NOT_EQ, CONTAINS, NOT_CONTAINS],
};
/**
* Values for criteria row inputs.
*/
export const BOOLEAN_OPTIONS = [
{
label: 'TRUE',
value: 'true',
},
{
label: 'FALSE',
value: 'false',
},
];