UNPKG

@progress/kendo-angular-filter

Version:
175 lines (174 loc) 5.46 kB
/**----------------------------------------------------------------------------------------- * 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` };