UNPKG

@xysfe/memento-core

Version:

record and replay the web

61 lines (60 loc) 3.05 kB
import { Mirror, throttleOptions, listenerHandler, hookResetter, blockClass, eventWithTime, addedNodeMutation, removedNodeMutation, textMutation, attributeMutation, mutationData, scrollData, inputData } from './types'; import { INode, BlockElement } from '@xysfe/memento-snapshot'; export declare function on(type: string, fn: EventListenerOrEventListenerObject, target?: Document | Window): listenerHandler; export declare const mirror: Mirror; export declare function throttle<T>(func: (arg: T) => void, wait: number, options?: throttleOptions): (arg: T) => void; export declare function hookSetter<T>(target: T, key: string | number | symbol, d: PropertyDescriptor, isRevoked?: boolean, win?: Window & typeof globalThis): hookResetter; export declare function patch(source: { [key: string]: any; }, name: string, replacement: (...args: any[]) => any): () => void; export declare function getWindowHeight(): number; export declare function getWindowWidth(): number; export declare function isBlocked(node: Node | null, blockClass: blockClass, blockElements?: BlockElement[]): boolean; export declare function isAncestorRemoved(target: INode): boolean; export declare function isTouchEvent(event: MouseEvent | TouchEvent): event is TouchEvent; export declare function polyfill(): void; export declare function dateFormat(date: Date, fmt: string): string; export declare function needCastInSyncMode(event: eventWithTime): boolean; export declare type TreeNode = { id: number; mutation: addedNodeMutation; parent?: TreeNode; children: Record<number, TreeNode>; texts: textMutation[]; attributes: attributeMutation[]; }; export declare class TreeIndex { tree: Record<number, TreeNode>; private removeNodeMutations; private textMutations; private attributeMutations; private indexes; private removeIdSet; private scrollMap; private inputMap; constructor(); add(mutation: addedNodeMutation): void; remove(mutation: removedNodeMutation): void; text(mutation: textMutation): void; attribute(mutation: attributeMutation): void; scroll(d: scrollData): void; input(d: inputData): void; flush(): { mutationData: mutationData; scrollMap: TreeIndex['scrollMap']; inputMap: TreeIndex['inputMap']; }; private reset; } export declare function isNumber(value: any): boolean; export declare function isString(value: any): boolean; export declare function isArray(value: any): boolean; export declare function isBoolean(value: any): boolean; export declare function isUndefined(value: any): boolean; export declare function isNull(value: any): boolean; export declare function isSymbol(value: any): boolean; export declare function isObject(value: any): boolean; export declare function isFunction(value: any): boolean; export declare function isElement(value: any): boolean; export declare function isWindow(value: any): boolean; export declare function isPlainObject(obj: any): any;