@adaptabletools/adaptable
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
92 lines (91 loc) • 2.88 kB
TypeScript
import { AdaptableState } from '../AdaptableState/AdaptableState';
/**
* Options related to Adaptable State hydration / dehydration; allows users to intercept state persistence and loading with custom functionality
*/
export interface StateOptions {
/**
* Allows customization of Adaptable State loading
*/
loadState?: AdaptableLoadStateFunction;
/**
* Allows hooking into Adaptable State hydration
*/
applyState?: (state: any) => any;
/**
* Allows customization of Adaptable State about to be persisted
*/
saveState?: AdaptableSaveStateFunction;
/**
* Allows customization of Adaptable State persistence
*/
persistState?: AdaptablePersistStateFunction;
/**
* Allows clearing of remote Adaptable State
*
* @defaultValue undefined
*/
clearState?: AdaptableClearStateFunction;
/**
* Delay (in ms) to debounce `saveState` / `persistState` calls enabling grouping multiple sequential calls in single one (e.g. elevator doors)
*
* **Defaults to: 400**. Also, the wait will be max 1000ms, at which point the save/persist calls will happen anyway.
*
* @defaultValue 400
*/
debounceStateDelay?: number;
/**
* Automatically migrate State from previous AdapTable version to current one
*
* @defaultValue true
*/
autoMigrateState?: boolean;
}
/**
* State Function Config object passed into all State Options functions (except 'applyState')
*/
export interface AdaptableStateFunctionConfig {
/**
* Id of current Adaptable instance
*/
adaptableId: string;
/**
* State Key being used
*/
adaptableStateKey: string;
/**
* current Adaptable user
*/
userName: string;
}
/**
* Allows customization of state persistence - used `persistState` function in StateOptions
*
* @example
* ```
* persistState = (state, stateFunctionConfig) => {
* localStorage.setItem(stateFunctionConfig.adaptableStateKey, JSON.stringify(state))
* }
* ```
*/
export interface AdaptablePersistStateFunction {
(state: any, adaptableStateFunctionConfig: AdaptableStateFunctionConfig): Promise<any>;
}
/**
* Allows clearing state when a custom persistState is used.
* Only called by StateApi.reloadInitialState
*/
export interface AdaptableClearStateFunction {
(adaptableStateFunctionConfig: AdaptableStateFunctionConfig): Promise<any>;
}
/**
* Allows the customization state persistence - used by `saveState` function in StateOptions
*/
export interface AdaptableSaveStateFunction {
(state: AdaptableState, adaptablestatefunctionconfig: AdaptableStateFunctionConfig): any;
}
/**
* Allows customization of state loading - used by `loadState` function in StateOptions
*/
export interface AdaptableLoadStateFunction {
(config: AdaptableStateFunctionConfig): Promise<any>;
}