@progress/kendo-angular-filter
Version:
Kendo UI Angular Filter
175 lines (174 loc) • 5.46 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
/**
* @hidden
*/
export const nullOperators = ["isnull", "isnotnull", "isempty", "isnotempty"];
/**
* @hidden
*/
export const numericOperators = [
{ text: "Is equal to", value: "eq" },
{ text: "Not equal to", value: "neq" },
{ text: "Greater than or equal to", value: "gte" },
{ text: "Greater than", value: "gt" },
{ text: "Less than or equal to", value: "lte" },
{ text: "Less than", value: "lt" },
{ text: "Is null", value: "isnull" },
{ text: "Is not null", value: "isnotnull" }
];
/**
* @hidden
*/
export const stringOperators = [
{ text: "Is equal to", value: "eq" },
{ text: "Not equal to", value: "neq" },
{ text: "Contains", value: "contains" },
{ text: "Does not contain", value: "doesnotcontain" },
{ text: "Starts with", value: "startswith" },
{ text: "Ends with", value: "endswith" },
{ text: "Is null", value: "isnull" },
{ text: "Is not null", value: "isnotnull" },
{ text: "Is empty", value: "isempty" },
{ text: "Is not empty", value: "isnotempty" }
];
/**
* @hidden
*/
export const booleanOperators = [
{ text: "Is equal to", value: "eq" },
{ text: "Is not equal to", value: "neq" }
];
/**
* @hidden
*/
export const dateOperators = [
{ text: "Is equal to", value: "eq" },
{ text: "Not equal to", value: "neq" },
{ text: "Greater than or equal to", value: "gte" },
{ text: "Greater than", value: "gt" },
{ text: "Less than or equal to", value: "lte" },
{ text: "Less than", value: "lt" },
{ text: "Is null", value: "isnull" },
{ text: "Is not null", value: "isnotnull" }
];
/**
* @hidden
*/
export const isArray = (value) => Array.isArray(value);
/**
* @hidden
*/
export const getKeyByValue = (object, value) => {
return object && Object.keys(object).find(key => object[key] === value);
};
/**
* @hidden
*/
export const defaultStringOperators = {
"filterEqOperator": "eq",
"filterNotEqOperator": "neq",
"filterContainsOperator": "contains",
"filterNotContainsOperator": "doesnotcontain",
"filterStartsWithOperator": "startswith",
"filterEndsWithOperator": "endswith",
"filterIsNullOperator": "isnull",
"filterIsNotNullOperator": "isnotnull",
"filterIsEmptyOperator": "isempty",
"filterIsNotEmptyOperator": "isnotempty"
};
/**
* @hidden
*/
export const defaultNumericOperators = {
"filterEqOperator": "eq",
"filterNotEqOperator": "neq",
"filterGteOperator": "gte",
"filterGtOperator": "gt",
"filterLteOperator": "lte",
"filterLtOperator": "lt",
"filterIsNullOperator": "isnull",
"filterIsNotNullOperator": "isnotnull"
};
/**
* @hidden
*/
export const defaultDateOperators = {
"filterEqOperator": "eq",
"filterNotEqOperator": "neq",
"filterAfterOrEqualOperator": "gte",
"filterAfterOperator": "gt",
"filterBeforeOrEqualOperator": "lte",
"filterBeforeOperator": "lt",
"filterIsNullOperator": "isnull",
"filterIsNotNullOperator": "isnotnull"
};
/**
* @hidden
*/
export const defaultOperators = {
"string": defaultStringOperators,
"number": defaultNumericOperators,
"date": defaultDateOperators
};
/**
* @hidden
*/
export const logicOperators = {
"filterAndLogic": 'and',
"filterOrLogic": 'or'
};
/**
* @hidden
*/
export const isFilterEditor = (editorType) => {
const supportedEditorTypes = ['string', 'number', 'boolean', 'date'];
return supportedEditorTypes.indexOf(editorType) >= 0;
};
/**
* @hidden
*/
export const localizeOperators = operators => localization => Object.keys(operators).map(key => ({
text: localization.get(key),
value: operators[key]
}));
/**
* @hidden
*/
export const isPresent = (value) => value !== null && value !== undefined;
/**
* @hidden
*/
export class FilterItem {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterItem, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterItem });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterItem, decorators: [{
type: Injectable
}] });
/**
* @hidden
*/
export const selectors = {
andButton: `button.k-group-start`,
orButton: `button.k-group-end`,
addFilterButton: `button[icon="filter-add-expression"]`,
addGroupButton: `button[icon="filter-add-group"]`,
removeButton: `button[icon="x"]`,
filterFieldWrapper: `.k-filter-field`,
filterOperatorWrapper: `.k-filter-operator`,
filterValueEditorWrapper: `.k-filter-value`,
kendoDropDownListComponent: `kendo-dropdownlist`,
kendoInput: `.k-input`,
kendoInputInner: `.k-input-inner`,
inputElement: `input`,
textAreaElement: `textarea`,
kendoToolbar: `.k-toolbar`,
kendoButton: `.k-button`,
kendoFilterToolbarItem: `.k-toolbar-item`,
kendoFilterToolbarButton: `.k-toolbar-button`
};