@porscheinformatik/clr-addons
Version:
Addon components for Clarity Angular
79 lines (78 loc) • 3.73 kB
TypeScript
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>;
}