UNPKG

@porscheinformatik/clr-addons

Version:
79 lines (78 loc) 3.73 kB
import { AfterContentInit, ElementRef, OnDestroy, QueryList } from '@angular/core'; import { ClrDatagrid, ClrDatagridColumn, ClrDatagridFilter, ClrDatagridPagination } from '@clr/angular'; import { ClrDatagridStatePersistenceModel } from './datagrid-state-persistence-model.interface'; import { Subject } from 'rxjs'; import { StatePersistenceOptions } from './state-persistence-options.interface'; import * as i0 from "@angular/core"; export declare class StatePersistenceKeyDirective implements AfterContentInit, OnDestroy { private datagrid; /** * Configuration options for the persistence. * 'Key' represents the local storage key under which the persistence state is stored. * * Optional fields with the 'persist' prefix toggle the persistence of the respective datagrid functionality, * the default value is always 'true'. */ options: StatePersistenceOptions; useLocalStoreOnly: boolean; paginationDescription: string; pagination: ClrDatagridPagination; paginationElem: ElementRef; customFilters: QueryList<ClrDatagridFilter>; gridColumnRefs: QueryList<ElementRef>; gridColumns: QueryList<ClrDatagridColumn>; canShowPaginationDescription: boolean; warnedAboutCustomDescription: boolean; destroy$: Subject<void>; constructor(datagrid: ClrDatagrid); ngAfterContentInit(): void; private init; /** * With this method filters can be cleared * @param key The key for clrStatePersistenceKey * @param useLocalStoreOnly The clrUseLocalStoreOnly indicator */ static clearFilters(key: string, useLocalStoreOnly: boolean): void; private initPageSizePersister; private initCurrentPage; private initFilter; private initSorting; private initColumnWidths; private initDatagridPersister; private persistFiltersAndCurrentPage; private persistSorting; private persistColumnWidths; /** * Pagination description must be set by this directive, * otherwise we can't update datagrid values from localStorage * without getting ExpressionChangedAfterItHasBeenCheckedError */ private updatePaginationDescription; /** * Gets the state of volatile data. This can be influenced by clrUseLocalStoreOnly. */ getVolatileDataState(): ClrDatagridStatePersistenceModel; getLocalStorageState(): ClrDatagridStatePersistenceModel; /** * Save the state of volatile data. This can be influenced by clrUseLocalStoreOnly. */ saveVolatileDataState(state: ClrDatagridStatePersistenceModel): void; saveLocalStorageState(state: ClrDatagridStatePersistenceModel): void; private getStorageBasedOnInputFlag; /** * As a date is serialized as string, but not deserialized as date * we need to add some meta information to do that manually later */ private enrichFilterValue; /** * Parse filter values with meta information like date, which needs manual deserialization to a date object */ private parseFilterValue; private getFilter; private getFilterPropertyName; private resolveSignal; private getSortProperty; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<StatePersistenceKeyDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<StatePersistenceKeyDirective, "[clrStatePersistenceKey]", never, { "options": { "alias": "clrStatePersistenceKey"; "required": false; }; "useLocalStoreOnly": { "alias": "clrUseLocalStoreOnly"; "required": false; }; "paginationDescription": { "alias": "clrPaginationDescription"; "required": false; }; }, {}, ["pagination", "paginationElem", "customFilters", "gridColumnRefs", "gridColumns"], never, false, never>; }