UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

73 lines (72 loc) 2.63 kB
// SPDX-License-Identifier: Apache-2.0 // FILTER OPERATORS export const filterOperatorValues = [ 'eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'like', 'nlike', 'in', 'nin', 'before', 'after', 'between', 'nbetween', 'nul', 'nnul', 'intersects', 'within', 'contains' ]; export const filterOperators = [ { operator: 'eq', displayName: '=' }, { operator: 'neq', displayName: '!=' }, { operator: 'like', displayName: 'filteroperator-LIKE' }, { operator: 'nlike', displayName: 'filteroperator-NOT LIKE' }, { operator: 'gt', displayName: '>' }, { operator: 'gte', displayName: '>=' }, { operator: 'lt', displayName: '<' }, { operator: 'lte', displayName: '<=' }, { operator: 'in', displayName: 'filteroperator-IN' }, { operator: 'nin', displayName: 'filteroperator-NOT IN' }, { operator: 'before', displayName: 'filteroperator-BEFORE' }, { operator: 'after', displayName: 'filteroperator-AFTER' }, { operator: 'between', displayName: 'filteroperator-BETWEEN' }, { operator: 'nbetween', displayName: 'filteroperator-NOT BETWEEN' }, { operator: 'nul', displayName: 'filteroperator-IS NULL' }, { operator: 'nnul', displayName: 'filteroperator-IS NOT NULL' }, { operator: 'intersects', displayName: 'filteroperator-INTERSECTS' }, { operator: 'within', displayName: 'filteroperator-WITHIN' }, { operator: 'contains', displayName: 'filteroperator-CONTAINS' } ]; export function isFilterOperator(value) { return filterOperatorValues.includes(value); } export function isValuelessFilterOperator(operator) { return ['nul', 'nnul'].includes(operator); } export function isTwoSidedFilterOperator(operator) { return ['between', 'nbetween'].includes(operator); } export function isListFilterOperator(operator) { return ['in', 'nin'].includes(operator); } export const operatorsByAttributeTypeGroup = { string: ['eq', 'neq', 'like', 'nlike', 'nul', 'nnul'], number: ['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'between', 'nbetween', 'nul', 'nnul'], date: ['eq', 'neq', 'before', 'after', 'between', 'nbetween', 'nnul'], geometry: ['intersects', 'within', 'contains'] }; // LOGICAL FILTER OPERATORS const logicalFilterOperatorValues = ['and', 'or', 'not']; export const logicalFilterOperators = [ { operator: 'and', displayName: 'filteroperator-AND' }, { operator: 'or', displayName: 'filteroperator-OR' }, { operator: 'not', displayName: 'filteroperator-NOT' } ]; export function isLogicalFilterOperator(value) { return logicalFilterOperatorValues.includes(value); }