@lucasheight/kendo-grid-state
Version:
A helper library that implements a directive to manage grid state during session or between sessions for Progress Kendo UI for Angular Grid.
80 lines (72 loc) • 3.32 kB
TypeScript
import { State, CompositeFilterDescriptor, SortDescriptor, GroupDescriptor } from '@progress/kendo-data-query';
import * as i0 from '@angular/core';
import { OnInit, OnDestroy, AfterContentInit, EventEmitter, InjectionToken } from '@angular/core';
import { DataStateChangeEvent } from '@progress/kendo-angular-grid';
declare class Column {
origIdx?: number;
orderIndex?: number;
leafIndex?: number;
hidden?: boolean;
width?: number;
expanded?: boolean;
title?: string;
field?: string;
}
interface IGridState {
columns: Column[];
state: State;
expandedRows?: boolean[];
}
declare class GridStateDirective implements OnInit, OnDestroy, AfterContentInit {
private grid;
private storageService;
private subs;
private _expandedRows;
get expandedRows(): any[];
set expandedRows(val: any[]);
expandedRowsChange: EventEmitter<any[]>;
stateReady: EventEmitter<DataStateChangeEvent>;
filter: CompositeFilterDescriptor;
filterChange: EventEmitter<CompositeFilterDescriptor>;
gridState: string;
sort: Array<SortDescriptor>;
sortChange: EventEmitter<Array<SortDescriptor>>;
skip?: number;
skipChange: EventEmitter<number>;
group?: Array<GroupDescriptor>;
groupChange: EventEmitter<Array<GroupDescriptor>>;
take?: number;
takeChange: EventEmitter<number>;
constructor();
private expander;
private get key();
get state(): IGridState;
set state(val: IGridState);
get initState(): DataStateChangeEvent;
ngOnInit(): void;
private colMapper;
ngAfterContentInit(): void;
unload(e: BeforeUnloadEvent): void;
private saveState;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GridStateDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GridStateDirective, "kendo-grid[gridState]", never, { "expandedRows": { "alias": "expandedRows"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "gridState": { "alias": "gridState"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "skip": { "alias": "skip"; "required": false; }; "group": { "alias": "group"; "required": false; }; "take": { "alias": "take"; "required": false; }; }, { "expandedRowsChange": "expandedRowsChange"; "stateReady": "stateReady"; "filterChange": "filterChange"; "sortChange": "sortChange"; "skipChange": "skipChange"; "groupChange": "groupChange"; "takeChange": "takeChange"; }, never, never, true, never>;
}
declare class GridStateModule {
static ɵfac: i0.ɵɵFactoryDeclaration<GridStateModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<GridStateModule, never, [typeof GridStateDirective], [typeof GridStateDirective]>;
static ɵinj: i0.ɵɵInjectorDeclaration<GridStateModule>;
}
declare const APP_STORAGE: InjectionToken<Storage>;
declare class StorageService {
private store;
clear(): void;
getItem(key: string): string;
key(index: number): string;
removeItem(key: string): void;
setItem(key: string, value: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<StorageService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<StorageService>;
}
export { APP_STORAGE, Column, GridStateDirective, GridStateModule, StorageService };
export type { IGridState };