@yqg/multiple-click
Version:
Monitor user's multiple click behavior and report
60 lines (59 loc) • 1.87 kB
TypeScript
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 {};