@progress/kendo-react-grid
Version:
KendoReact Grid package
144 lines • 4.8 kB
JavaScript
import { messages } from './messages';
/**
* @hidden
*/
export var filterLogicList = [
{ text: 'grid.filterAndLogic', value: 'and' },
{ text: 'grid.filterOrLogic', value: 'or' }
];
/**
* @hidden
*/
export var operators = {
'text': [
{ text: 'grid.filterEqOperator', value: 'eq' },
{ text: 'grid.filterNotEqOperator', value: 'neq' },
{ text: 'grid.filterContainsOperator', value: 'contains' },
{ text: 'grid.filterNotContainsOperator', value: 'doesnotcontain' },
{ text: 'grid.filterStartsWithOperator', value: 'startswith' },
{ text: 'grid.filterEndsWithOperator', value: 'endswith' },
{ text: 'grid.filterIsNullOperator', value: 'isnull' },
{ text: 'grid.filterIsNotNullOperator', value: 'isnotnull' },
{ text: 'grid.filterIsEmptyOperator', value: 'isempty' },
{ text: 'grid.filterIsNotEmptyOperator', value: 'isnotempty' }
],
'numeric': [
{ text: 'grid.filterEqOperator', value: 'eq' },
{ text: 'grid.filterNotEqOperator', value: 'neq' },
{ text: 'grid.filterGteOperator', value: 'gte' },
{ text: 'grid.filterGtOperator', value: 'gt' },
{ text: 'grid.filterLteOperator', value: 'lte' },
{ text: 'grid.filterLtOperator', value: 'lt' },
{ text: 'grid.filterIsNullOperator', value: 'isnull' },
{ text: 'grid.filterIsNotNullOperator', value: 'isnotnull' }
],
'date': [
{ text: 'grid.filterEqOperator', value: 'eq' },
{ text: 'grid.filterNotEqOperator', value: 'neq' },
{ text: 'grid.filterAfterOrEqualOperator', value: 'gte' },
{ text: 'grid.filterAfterOperator', value: 'gt' },
{ text: 'grid.filterBeforeOperator', value: 'lt' },
{ text: 'grid.filterBeforeOrEqualOperator', value: 'lte' },
{ text: 'grid.filterIsNullOperator', value: 'isnull' },
{ text: 'grid.filterIsNotNullOperator', value: 'isnotnull' }
],
'boolean': [
{ text: 'grid.filterBooleanAll', value: '' },
{ text: 'grid.filterIsTrue', value: true },
{ text: 'grid.filterIsFalse', value: false }
]
};
/**
* @hidden
*/
export var IsUnaryFilter = function (operator) {
return operator === 'isnull' || operator === 'isnotnull' || operator === 'isempty' || operator === 'isnotempty';
};
/**
* @hidden
*/
export var operatorMap = function (iterable, service) { return iterable.map(function (operator) { return ({
text: service.toLanguageString(operator.text, messages[operator.text]),
operator: operator.value
}); }); };
/**
* @hidden
*/
export var defaultOperators = {
text: 'contains',
numeric: 'eq',
date: 'eq',
boolean: 'eq'
};
/**
* @hidden
*/
export var defaultHideSecondFilter = {
text: false,
numeric: false,
date: false,
boolean: true
};
/**
* @hidden
*/
export var cellInputChange = function (value, e, props) {
var operator = props.operator;
switch (props.filterType) {
case 'numeric':
if (!operator || IsUnaryFilter(operator)) {
// change the operator to default
operator = defaultOperators.numeric;
}
if (value === null && operator === defaultOperators.numeric) {
// clear only the default operator
operator = '';
}
break;
case 'date':
if (!operator || IsUnaryFilter(operator)) {
operator = defaultOperators.date;
}
if (value === null && operator === defaultOperators.date) {
operator = '';
}
break;
case 'text':
if (!operator || IsUnaryFilter(operator)) {
operator = defaultOperators.text;
}
if (!value && operator === defaultOperators.text) {
operator = '';
}
break;
default: return;
}
props.onChange({ value: value, operator: operator, syntheticEvent: e });
};
/**
* @hidden
*/
export var cellBoolDropdownChange = function (event, onChange) {
var item = event.target.value;
onChange({
value: item.operator,
operator: item.operator === '' ? '' : defaultOperators.boolean,
syntheticEvent: event.syntheticEvent
});
};
/**
* @hidden
*/
export var cellOperatorChange = function (event, currentValue, onChange) {
var value = currentValue;
var item = event.target.value;
if (!event.target.state.opened) {
return;
}
if (IsUnaryFilter(item.operator)) {
// clear the value to avoid confusion on what is filtered
value = null;
}
onChange({ value: value, operator: item.operator, syntheticEvent: event.syntheticEvent });
};
//# sourceMappingURL=filterCommon.js.map