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.

185 lines (184 loc) 6.11 kB
import { L10n } from '@syncfusion/ej2-base'; import { Query, Predicate } from '@syncfusion/ej2-data'; import { IFilterArgs, FilterSearchBeginEventArgs } from '../base/interface'; import { PredicateModel } from '../base/grid-model'; import { ValueFormatter } from '../services/value-formatter'; import { Column } from '../models/column'; import { Dialog } from '@syncfusion/ej2-popups'; import { IXLFilter } from '../common/filter-interface'; /** * @hidden * `CheckBoxFilterBase` module is used to handle filtering action. */ export declare class CheckBoxFilterBase { protected sBox: HTMLElement; private searchInputArgs; protected isExcel: boolean; protected id: string; protected colType: string; protected fullData: Object[]; protected filteredData: Object[]; protected isFiltered: boolean | number; protected dlg: Element; protected dialogObj: Dialog; protected cBox: HTMLElement; protected spinner: HTMLElement; protected searchBox: Element; protected sInput: HTMLInputElement; protected sIcon: Element; protected isExecuteLocal: boolean; private queryFilteredColumn; /** @hidden */ options: IFilterArgs; protected customQuery: boolean; protected existingPredicate: { [key: string]: PredicateModel[]; }; protected foreignKeyData: Object[]; protected foreignKeyQuery: Query; /** @hidden */ filterState: boolean; protected values: Object; private cBoxTrue; private cBoxFalse; private itemsCnt; private result; protected renderEmpty: boolean; protected parent: IXLFilter; protected localeObj: L10n; protected valueFormatter: ValueFormatter; private searchHandler; private isMenuNotEqual; private isBlanks; private isCheckboxFilterTemplate; private infiniteRenderMod; private infiniteInitialLoad; private infiniteSearchValChange; private infinitePermenantLocalData; private infiniteQuery; private infiniteQueryExecutionPending; private infiniteSkipCnt; private infiniteScrollAppendDiff; private prevInfiniteScrollDirection; private infiniteLoadedElem; private infiniteDataCount; private infiniteSearchPred; private infiniteLocalSelectAll; private localInfiniteSelectAllClicked; private localInfiniteSelectionInteracted; private infiniteManualSelectMaintainPred; private infiniteUnloadParentExistPred; private filterPreventColumns; /** * Constructor for checkbox filtering module * * @param {IXLFilter} parent - specifies the IXLFilter * @hidden */ constructor(parent?: IXLFilter); /** * @returns {void} * @hidden */ destroy(): void; private wireEvents; private unWireEvents; protected foreignKeyFilter(args: Object, fColl?: Object[], mPredicate?: Predicate): void; private searchBoxClick; private searchBoxKeyUp; private updateSearchIcon; /** * Gets the localized label by locale keyword. * * @param {string} key - Defines localization key * @returns {string} - returns localization label */ getLocalizedLabel(key: string): string; private updateDataSource; protected updateModel(options: IFilterArgs): void; protected getAndSetChkElem(options: IFilterArgs): HTMLElement; protected showDialog(options: IFilterArgs): void; private renderResponsiveFilter; private dialogCreated; openDialog(options: IFilterArgs): void; closeDialog(): void; /** * @param {Column} col - Defines column details * @returns {void} * @hidden */ clearFilter(col?: Column): void; private btnClick; /** * @returns {void} * @hidden */ fltrBtnHandler(): void; private complexQueryPredicate; private infiniteFltrBtnHandler; private notifyFilterPrevEvent; /** @hidden */ static generateNullValuePredicates(defaults: { predicate?: string; field?: string; type?: string; uid?: string; operator?: string; matchCase?: boolean; ignoreAccent?: boolean; }): PredicateModel[]; /** @hidden */ initiateFilter(fColl: PredicateModel[]): void; protected isForeignColumn(col: Column): boolean; private refreshCheckboxes; protected search(args: FilterSearchBeginEventArgs, query: Query): void; private getPredicateFromCols; protected getQuery(): Query; private getAllData; private addDistinct; private getPredicateFields; private filterEvent; private addInfiniteScrollEvent; private infiniteScrollMouseKeyDownHandler; private infiniteScrollMouseKeyUpHandler; private getShimmerTemplate; /** * @returns {void} * @hidden */ showMask(): void; private removeMask; private infiniteScrollHandler; private makeInfiniteScrollRequest; private processDataOperation; private executeQueryOperations; private dataSuccess; private queryGenerate; private processDataSource; private processSearch; private updateResult; private clickHandler; private updateInfiniteManualSelectPred; /** * Method to set the next target element on keyboard navigation using arrow keys. * * @param {KeyboardEventArgs} e - Defines the Keyboard event argument * @param {HTMLElement[]} focusableElements - Defines the Focusable elements * @returns {void} */ private focusNextOrPrev; private keyupHandler; private setFocus; private updateAllCBoxes; private dialogOpen; private createCheckbox; private updateIndeterminatenBtn; private createFilterItems; private updateInfiniteUnLoadedCheckboxExistPred; private getCheckedState; static getDistinct(json: Object[], field: string, column?: Column, foreignKeyData?: Object[], checkboxFilter?: CheckBoxFilterBase): Object; static getPredicate(columns: PredicateModel[], isExecuteLocal?: boolean): Predicate; private static generatePredicate; private static getCaseValue; private static updateDateFilter; }