UNPKG

@true-directive/base

Version:

The set of base classes for the TrueDirective Grid

147 lines (146 loc) 5.69 kB
/** * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company. * @link https://truedirective.com/ * @license MIT */ import { Column } from './column.class'; import { Filter } from './filter.class'; import { SortInfo } from './sort-info.class'; import { ColumnCollection } from './column-collection.class'; import { CellPosition } from './cell-position.class'; import { GridSettings } from './grid-settings.class'; import { ValueFormatter } from './value-formatter.class'; import { DataQuery } from './data-query.class'; /** * Источник данных */ export declare class DataSource { columnCollection: ColumnCollection; settings: GridSettings; /** * Исходный набор строк */ private _model; model: any[]; private _totalRowCount?; totalRowCount: number; lazyLoaded?: number; readonly loadedRowCount: number; /** * Общий текстовый фильтр */ searchString: string; /** * Filters */ readonly filters: Filter[]; /** * Sortings */ readonly sortings: SortInfo[]; /** * Resulting rows list */ protected _resultRows: any[]; readonly resultRowCount: number; readonly resultRows: any[]; readonly valueFormatter: ValueFormatter; clearSorting(): void; clearFilters(): void; clear(): void; getQuery(counter?: number, subject?: any): DataQuery; /** * Наложение фильтров * @param rows Список строк * @return Отфильтрованный набор строк */ doFilter(rows: any[]): any[]; /** * Сортировка строк. * @param rows Список строк, подлежащих группировке * @return Отсортированный список строк */ doSort(rows: any[]): any[]; summaries(columns: Column[]): void; sortedByField(fieldName: string): SortInfo; summariedByColumn(col: Column): boolean; /** * Проверка видимости строки после изменения значения одного из полей * @param r Измененная строка * @param fieldName Наименование поля * @return Необходим ли перезапрос данных */ checkDataUpdateNeed(r: any, fieldName: string): boolean; /** * Окончательная обрабтка данных и сохранение в resultRows. * @param rows [description] * @return [description] */ accomplishFetch(rows: any[]): void; /** * Пересчет данных для отображения */ recalcData(): void; /** * Получение данных для отображения, которые обработаны вне нашего компонента. * Например, сервером. * @param rows Отфильтрованные, отсортированные данные. * @param settings Настройки */ fetchData(rows: any[], totalRowCount?: number): void; /** * Установка фильтра * @param f Фильтр */ setFilter(f: Filter): void; /** * Удаляем фильтр по заданной колонке * @param fieldName Наименование поля * @return Если фильтр удален - возвращаем true. Если фильтра не было - false. */ removeFilter(fieldName: string): boolean; /** * Получить фильтр заданной колонки. * Используется в том числе заголовком для отображения подсвеченной иконки * @param c Колонка, для которой нужно получить фильтр * @return Фильтр, если есть */ getFilter(c: Column): Filter; /** * Data sorting * @param sortings List of sortings */ sort(sortings: SortInfo[]): void; /** * Data filtering * @param filters List of filters */ filter(filters: Filter[]): void; /** * Сортировка по колонке * @param col Колонка */ sortByColumn(col: Column, add?: boolean): void; /** * Убрать одну строку из результирующего набора строк. Например, по причине * того, что она перестала удовлетворять условиям фильтра при изменении одного * из полей. * @param r Строка, подлежащая скрытию * @return Было ли удаление */ removeResultRow(r: any): boolean; rowData(row: any): any; displayedValue(col: Column, value: any, row: any): string; value(row: any, fieldName: string): any; updateValue(row: any, fieldName: string, value: any): any; /** * Check drag possibility * @param draggedRows [description] * @param dropRow [description] * @param dropPos [description] * @return [description] */ canDrop(draggedRows: any[], dropRow: any, dropPos: string): string; canEditCell(cp: CellPosition): boolean; moveRows(draggedRows: any[], dropTarget: any, dropPos: string): boolean; }