clarity-js
Version:
An analytics library that uses web page interactions to generate aggregated insights
26 lines (19 loc) • 586 B
text/typescript
import { BooleanFlag, Event } from "@clarity-types/data";
import { FocusData } from "@clarity-types/interaction";
import { bind } from "@src/core/event";
import encode from "./encode";
export let data: FocusData;
export function start(): void {
bind(window, "focus", () => compute(BooleanFlag.True));
bind(window, "blur", () => compute(BooleanFlag.False));
}
export function stop(): void {
reset();
}
export function reset(): void {
data = null;
}
function compute(focus: BooleanFlag): void {
data = { focused: focus };
encode(Event.Focus);
}