@v4fire/client
Version:
V4Fire client core library
75 lines (60 loc) • 1.82 kB
text/typescript
/*!
* V4Fire Client Core
* https://github.com/V4Fire/Client
*
* Released under the MIT license
* https://github.com/V4Fire/Client/blob/master/LICENSE
*/
import type { AbstractCache } from 'core/cache';
import type bDynamicPage from 'base/b-dynamic-page/b-dynamic-page';
import type iDynamicPage from 'super/i-dynamic-page/i-dynamic-page';
import type { ComponentElement, UnsafeIData } from 'super/i-dynamic-page/i-dynamic-page';
export type Include =
CanArray<string> |
RegExp |
((page: string, route: iDynamicPage['route'], ctx: bDynamicPage) => boolean | string | KeepAliveCache);
export type Exclude =
CanArray<string> |
RegExp |
((page: string, route: iDynamicPage['route'], ctx: bDynamicPage) => boolean);
export type iDynamicPageEl = ComponentElement<iDynamicPage>;
export interface KeepAliveCache {
/**
* Key to cache a page
*/
cacheKey: string;
/**
* Name of the used cache group.
* Pages with the same group will use the same cache object.
*/
cacheGroup: string;
/**
* Creates an object to cache pages
*/
createCache(): AbstractCache<iDynamicPageEl>;
}
export interface KeepAliveStrategy {
isLoopback: boolean;
has(): boolean;
get(): CanUndef<iDynamicPageEl>;
add(page: iDynamicPageEl): iDynamicPageEl;
remove(): CanUndef<iDynamicPageEl>;
}
// @ts-ignore (extend)
export interface UnsafeBDynamicPage<CTX extends bDynamicPage = bDynamicPage> extends UnsafeIData<CTX> {
// @ts-ignore (access)
renderIterator: CTX['renderIterator'];
// @ts-ignore (access)
renderFilter: CTX['renderFilter'];
// @ts-ignore (access)
getKeepAliveStrategy: CTX['getKeepAliveStrategy'];
// @ts-ignore (access)
wrapCache: CTX['wrapCache'];
}
export interface OnBeforeSwitchPage {
/**
* Saves the scroll position of an element
* @param el
*/
saveScroll(el: Element): void;
}