import type { IdsDataGridColumn } from './ids-data-grid-column'; import '../ids-menu-button/ids-menu-button'; import '../ids-popup-menu/ids-popup-menu'; import '../ids-popup/ids-popup'; import '../ids-menu/ids-menu'; import '../ids-menu/ids-menu-item'; import '../ids-input/ids-input'; import '../ids-dropdown/ids-dropdown'; import '../ids-dropdown/ids-dropdown-list'; import '../ids-multiselect/ids-multiselect'; import '../ids-icon/ids-icon'; import '../ids-trigger-field/ids-trigger-button'; import '../ids-trigger-field/ids-trigger-field'; import '../ids-date-picker/ids-date-picker-popup'; import '../ids-time-picker/ids-time-picker-popup'; export interface IdsDataGridFilterConditions { /** The filter element */ filterElem?: any; /** The id of the column */ columnId?: string; /** The value filter */ value?: string; /** The filter operator */ operator?: 'equals' | 'does-not-equal' | 'contains' | 'does-not-contain' | 'end-with' | 'start-with' | 'does-not-end-with' | 'does-not-start-with' | 'is-empty' | 'is-not-empty' | 'in-range' | 'less-than' | 'less-equals' | 'greater-than' | 'greater-equals' | 'selected' | 'not-selected' | 'selected-notselected' | 'earlier-than' | 'earlier-equals' | 'later-than' | 'later-equals' | 'in'; } /** * IDS Data Grid Filters * Manages filtering functionality for the data grid including filter UI generation, * filter condition management, and filter application logic. */ export default class IdsDataGridFilters { #private; /** * Creates a new IdsDataGridFilters instance * @param {any} root The parent data grid component */ constructor(root: any); /** Reference to the parent data grid component */ root: any; /** * Default filter configuration values */ DEFAULTS: { disableClientFilter: boolean; filterable: boolean; filterWhenTyping: boolean; filterRowDisabled: boolean; }; /** * Flag indicating whether a filter operation is currently in progress * @private */ filterIsProcessing: boolean; /** * Currently focused filter element, used during filter rerender * @private */ focused: any; /** * Text filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ text(column: IdsDataGridColumn): string; /** * Integer filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ integer(column: IdsDataGridColumn): string; /** * Decimal filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ decimal(column: IdsDataGridColumn): string; /** * Contents filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ contents(column: IdsDataGridColumn): string; /** * Dropdown filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ dropdown(column: IdsDataGridColumn): string; /** * Checkbox filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ checkbox(column: IdsDataGridColumn): string; /** * Multiselect filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ multiselect(column: IdsDataGridColumn): string; /** * Date filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ date(column: IdsDataGridColumn): string; /** * Time filter markup. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ time(column: IdsDataGridColumn): string; /** * Get filter wrapper element by given column id * @param {string} columnId The column id * @returns {HTMLElement|undefined} The filter wrapper element */ filterWrapperById(columnId: string | undefined): any; /** * Returns markup for a header cell filter in data grid. * @param {IdsDataGridColumn} column The column info * @returns {string} The resulting template */ filterTemplate(column: IdsDataGridColumn): any; /** * Reset all filters as initial state. * @returns {void} */ resetFilters(): void; /** * Set filter conditions on the UI Only. * @param {Array} conditions An array of objects with the filter conditions. * @returns {Array} An array of currently showing filter conditions. */ setFilterConditions(conditions: Array): IdsDataGridFilterConditions[]; /** * Get filter conditions in array from whats set in the UI. * @returns {Array} An array of currently showing filter conditions. */ filterConditions(): Array; /** * Apply the Filter with the currently selected conditions, or the ones passed in. * @param {Array} conditions An array of objects with the filter conditions * @returns {void} */ applyFilter(conditions?: any): void; /** * Set disabled filter row * @returns {void} */ setFilterRowDisabled(): void; /** * Attach filters setting after data grid render * @returns {void} */ attachFilterSettings(): void; /** * Handle all triggering and handling of events * @returns {void} */ attachFilterEventHandlers(): void; /** * Set filter event when typing for all filter inputs * @returns {void} */ setFilterWhenTyping(): void; /** * Returns filter IdsPopupMenu template for header cell * @param {string} id ID of btn and popup pairing * @param {string} type Must be exactly the same as filter method name * @param {IdsDataGridColumn} column The column info. * @returns {string} The resulting template */ filterButtonPopupTemplate(id: string, type: string, column: IdsDataGridColumn): string; /** * Get list of filter wrapper elements * @returns {Array} List of filter wrapper elements */ get filterNodes(): any; /** * Detaches all filter popups from the component * @param {boolean} isRedraw - Whether this detachment is part of a redraw operation * @returns {void} */ detachAllFilterPopups(isRedraw: boolean): void; /** * Close all open filter popups * @private */ closeAllFilterPopups(): void; }