@anglr/grid
Version:
Angular module displaying grid
63 lines • 2.91 kB
TypeScript
import { PromiseOr, RecursivePartial } from '@jscrpt/common';
import { Observable } from 'rxjs';
import { GridOptions } from '../gridOptions/gridOptions.interface';
import { GridPlugin } from '../gridPlugin/gridPlugin.interface';
import { GridAction, GridFunction } from '../../misc/types';
import { GridPluginType } from '../../misc/enums';
import { ContentRenderer, DataLoader, GridInitializer, MetadataSelector, NoDataRenderer, Ordering, Paging, RowSelector } from '../plugins';
/**
* Public API for grid
*/
export interface Grid {
/**
* Occurs every time when grid is initialized or reinitialized, if value is false grid was not initialized yet or is being reinitialized
*/
readonly initialized: Observable<boolean>;
/**
* Occurs everytime when plugins options initialization changes, if value is false plugins options were not initialized yet, or are being reinitialized
*/
readonly pluginsOptionsInitialized: Observable<boolean>;
/**
* Gets or sets grid options
*/
get gridOptions(): GridOptions;
set gridOptions(value: RecursivePartial<GridOptions>);
/**
* Initialize component, automatically called once if not blocked by options
* @param force - Indication that all plugins should be fully reinitialized, even thou nothing has changed
*/
initialize(force: boolean): PromiseOr<void>;
/**
* Initialize options, automaticaly called during init phase, but can be used to reinitialize GridOptions
*/
initOptions(): PromiseOr<void>;
/**
* Gets instance of plugin by its id
* @param pluginId - Id of plugin, use constants
*/
getPlugin(pluginId: GridPluginType.ContentRenderer): ContentRenderer;
getPlugin(pluginId: GridPluginType.DataLoader): DataLoader;
getPlugin(pluginId: GridPluginType.GridInitializer): GridInitializer;
getPlugin(pluginId: GridPluginType.MetadataSelector): MetadataSelector;
getPlugin(pluginId: GridPluginType.NoDataRenderer): NoDataRenderer;
getPlugin(pluginId: GridPluginType.Ordering): Ordering;
getPlugin(pluginId: GridPluginType.Paging): Paging;
getPlugin(pluginId: GridPluginType.RowSelector): RowSelector;
getPlugin<PluginInstance extends GridPlugin>(pluginId: GridPluginType): PluginInstance;
/**
* Sets GridPluginInstances into GridPlugin
* @param plugin - Grid plugin to be filled with grid GridPluginInstances
*/
setGridPluginInstances(plugin: GridPlugin): void;
/**
* Executes actions on grid
* @param actions - Array of actions that are executed over grid
*/
execute(...actions: GridAction[]): PromiseOr<void>;
/**
* Executes function on grid and returns result
* @param func - Function that is executed and its result is returned
*/
executeAndReturn<TResult>(func: GridFunction<TResult>): TResult;
}
//# sourceMappingURL=grid.interface.d.ts.map