UNPKG

@yqg/multiple-click

Version:

Monitor user's multiple click behavior and report

60 lines (59 loc) 1.87 kB
export declare type MouseEventHandler = (event: MouseEvent) => any; export declare type ExtraTrackingInfo = { url: string; outerHTML: string; selector: string; offsetTop: number; offsetLeft: number; clientTop: number; clientLeft: number; }; declare type ExcludeRule<T> = { selector: string; shallow?: boolean; page?: T; }; export declare enum ENV_TYPE { DEV = "dev", TEST = "test", FEAT = "feat", PROD = "prod", TEST_OVERSEAS = "test-overseas", TEST_INDO = "test-indo", TEST_MEX = "test-mex", TEST_SEA = "test-sea", TEST_EU = "test-eu", FEAT_OVERSEAS = "feat-overseas", PROD_INDO = "prod-indo", PROD_MEX_HUAWEI = "prod-mex-huawei", PROD_PHI = "prod-phi", PROD_SEA = "prod-sea", PROD_EU = "prod-eu", PROD_HILL = "prod-hill" } export declare type IExposeMultipleClickTrackingConfig = { appId: string; appVersion?: string; env: ENV_TYPE; interval?: number; continuousCount?: number; range?: number; filter?: (event: MouseEvent) => boolean; excludeRules?: ExcludeRule<string | string[]>[]; customTrackingInfo?: (event: MouseEvent, extraTrackingInfo: ExtraTrackingInfo) => Record<string, any>; }; export declare type MultipleClickTrackingConfig = Required<Pick<IExposeMultipleClickTrackingConfig, 'interval' | 'continuousCount' | 'range' | 'filter'>> & { excludeRules: ExcludeRule<string[]>[]; uploadTrackingInfo: (event: MouseEvent) => void; }; export declare type RemoteMultipleClickTrackingConfig = Pick<IExposeMultipleClickTrackingConfig, 'interval' | 'continuousCount' | 'range' | 'excludeRules'> & { disabled?: boolean; }; export declare type TriggerItem = { target: EventTarget; timeStamp: number; pageX: number; pageY: number; }; export declare type TriggerQueue = Array<TriggerItem>; export {};