import type { ColumnConfiguration } from '../internal/types.js'; import DataOperation from './base.js'; /** * Built-in quick-filter (global search) data operation. * * @remarks * Performs a case-insensitive substring match of the search term across every visible * column's stringified value. Returns the original dataset unchanged when the search * term is empty / whitespace-only. Used by the grid when `quickFilter` is set; the * search can be customised through {@link DataPipelineConfiguration.quickFilter}. */ export default class QuickFilterDataOperation extends DataOperation { /** * Returns the records whose visible column values contain `searchTerm` (case-insensitive). * * @param data - The dataset to filter. * @param searchTerm - The trimmed search term (already normalised to lower-case is fine). * @param columns - The current column configuration; hidden columns are skipped. */ apply(data: T[], searchTerm: string, columns: Array>): T[]; }