UNPKG

@syncfusion/ej2-grids

Version:

Feature-rich JavaScript datagrid (datatable) control with built-in support for editing, filtering, grouping, paging, sorting, and exporting to Excel.

274 lines (273 loc) 8.91 kB
import { FilterSettings } from '../base/grid'; import { IGrid, IAction, NotifyArgs, IFilterOperator, FilterUI, CustomOperators } from '../base/interface'; import { PredicateModel } from '../base/grid-model'; import { ServiceLocator } from '../services/service-locator'; import { Column } from '../models/column'; import { ResponsiveDialogRenderer } from '../renderer/responsive-dialog-renderer'; import { InputArgs } from '@syncfusion/ej2-inputs'; import { CheckBoxFilterBase } from '../common/checkbox-filter-base'; import { ExcelFilterBase } from '../common/excel-filter-base'; /** * * The `Filter` module is used to handle filtering action. */ export declare class Filter implements IAction { private filterSettings; private element; private value; private predicate; private operator; private column; private fieldName; private matchCase; private ignoreAccent; private timer; private filterStatusMsg; private currentFilterObject; private isRemove; private contentRefresh; private initialLoad; private filterByMethod; private refresh; private values; operators: Object; private cellText; private nextFlMenuOpen; private refreshFilterValueFn; private type; /** @hidden */ filterModule: { openDialog: Function; closeDialog: Function; destroy: Function; isresetFocus: boolean; getFilterUIInfo: Function; clearCustomFilter: Function; closeResponsiveDialog: Function; applyCustomFilter: Function; renderCheckBoxMenu?: Function; afterRenderFilterUI?: Function; checkBoxBase: CheckBoxFilterBase; excelFilterBase: ExcelFilterBase; isDialogOpen?: boolean; getOperatorDropdown?: Function; }; /** @hidden */ filterOperators: IFilterOperator; private fltrDlgDetails; customOperators: CustomOperators; /** @hidden */ skipNumberInput: string[]; skipStringInput: string[]; /** @hidden */ parent: IGrid; /** @hidden */ serviceLocator: ServiceLocator; private l10n; private valueFormatter; private actualPredicate; prevFilterObject: PredicateModel; checkboxPrevFilterObject: { field: string; }[]; checkboxFilterObject: Object[]; actualData: string[]; filterObjIndex: number; /** @hidden */ responsiveDialogRenderer: ResponsiveDialogRenderer; menuOperator: { [key: string]: Object; }[]; private docClickHandler; /** @hidden */ inputList: InputArgs[]; /** @hidden */ isFilterCleared: boolean; /** * Constructor for Grid filtering module * * @param {IGrid} parent - specifies the IGrid * @param {FilterSettings} filterSettings - specifies the filterSettings * @param {ServiceLocator} serviceLocator - specifes the serviceLocator * @hidden */ constructor(parent?: IGrid, filterSettings?: FilterSettings, serviceLocator?: ServiceLocator); /** * To render filter bar when filtering enabled. * * @param {NotifyArgs} e - specifies the NotifyArgs * @returns {void} * @hidden */ render(e?: NotifyArgs): void; /** * To show the responsive custom filter dialog * * @param {boolean} enable - specifes dialog open * @returns {void} * @hidden */ showCustomFilter(enable: boolean): void; private renderResponsiveChangeAction; /** * To create the filter module. * * @param {Column} col - specifies the filtering column name * @returns {void} * @hidden */ setFilterModel(col: Column): void; /** * To destroy the filter bar. * * @returns {void} * @hidden */ destroy(): void; private setFullScreenDialog; private generateRow; private generateCells; private generateCell; /** * To update filterSettings when applying filter. * * @returns {void} * @hidden */ updateModel(): void; private handleExistingFilterCleanup; private getFilteredColsIndexByField; /** * To trigger action complete event. * * @param {NotifyArgs} e - specifies the NotifyArgs * @returns {void} * @hidden */ onActionComplete(e: NotifyArgs): void; private wireEvents; private unWireEvents; private enableAfterRender; private refreshFilterValue; private initialEnd; /** * @returns {void} * @hidden */ addEventListener(): void; /** * @returns {void} * @hidden */ removeEventListener(): void; private refreshClearIcon; private filterMenuClose; /** * Filters the Grid row by fieldName, filterOperator, and filterValue. * * @param {string} fieldName - Defines the field name of the filter column. * @param {string} filterOperator - Defines the operator to filter records. * @param {string | number | Date | boolean} filterValue - Defines the value which is used to filter records. * @param {string} predicate - Defines the relationship of one filter query with another by using AND or OR predicate. * @param {boolean} matchCase - If match case is set to true, then the filter records * the exact match or <br> filters records that are case insensitive (uppercase and lowercase letters treated the same). * @param {boolean} ignoreAccent - If ignoreAccent set to true, then filter ignores the diacritic characters or accents while filtering. * @param {string} actualFilterValue - Defines the actual filter value for the filter column. * @param {string} actualOperator - Defines the actual filter operator for the filter column. * @param {boolean} isForeignColumn - Defines whether it is a foreign key column. * @returns {void} */ filterByColumn(fieldName: string, filterOperator: string, filterValue: string | number | Date | boolean | number[] | string[] | Date[] | boolean[], predicate?: string, matchCase?: boolean, ignoreAccent?: boolean, actualFilterValue?: Object, actualOperator?: Object, isForeignColumn?: boolean): void; private applyColumnFormat; private skipUid; private onPropertyChanged; private refreshFilterSettings; private updateFilterIcon; private getFilterBarElement; /** * @private * @returns {void} */ refreshFilter(): void; /** * Clears all the filtered rows of the Grid. * * @param {string[]} fields - returns the fields * @returns {void} */ clearFiltering(fields?: string[]): void; private checkAlreadyColFiltered; private checkDateColumnValue; private columnMenuFilter; private filterDialogOpen; /** * Create filter dialog options * * @param {Column} col - Filtering column detail. * @param {Element} target - Filter dialog target. * @param {number} left - Filter dialog left position. * @param {number} top - Filter dialog top position. * @returns {Object} returns the created dialog options * @hidden */ createOptions(col: Column, target: Element, left?: number, top?: number): Object; /** * Removes filtered column by field name. * * @param {string} field - Defines column field name to remove filter. * @param {boolean} isClearFilterBar - Specifies whether the filter bar value needs to be cleared. * @returns {void} * @hidden */ removeFilteredColsByField(field: string, isClearFilterBar?: boolean): void; /** * For internal use only - Get the module name. * * @returns {string} returns the module name * @private */ protected getModuleName(): string; private keyUpHandlerImmediate; private keyUpHandler; private updateCrossIcon; private updateFilterMsg; private setFormatForFlColumn; private checkForSkipInput; private processFilter; private startTimer; private stopTimer; private onTimerTick; private validateFilterValue; private getOperator; private columnPositionChanged; private getLocalizedCustomOperators; /** * @param {string} field - specifies the field name * @returns {void} * @hidden */ openMenuByField(field: string): void; private filterIconClickHandler; private clickHandler; private filterHandler; private updateFilter; private refreshFilterIcon; private addFilteredClass; /** * @hidden * @returns {FilterUI} returns the FilterUI */ getFilterUIInfo(): FilterUI; /** * @param {string} field - specifies the field name * @returns {string} returns the operator name * @hidden */ private getOperatorName; /** * Renders checkbox items in Menu filter dialog. * * @returns {void} */ renderCheckboxOnFilterMenu(): HTMLElement; }