UNPKG

clarity-js

Version:

An analytics library that uses web page interactions to generate aggregated insights

28 lines (23 loc) 738 B
import { BooleanFlag, Event } from "@clarity-types/data"; import { VisibilityData } from "@clarity-types/interaction"; import { bind } from "@src/core/event"; import { time } from "@src/core/time"; import encode from "./encode"; export let data: VisibilityData; export function start(): void { bind(document, "visibilitychange", recompute); recompute(); } function recompute(evt: UIEvent = null): void { if ("visibilityState" in document) { const visible = document.visibilityState === "visible" ? BooleanFlag.True : BooleanFlag.False; data = { visible }; encode(Event.Visibility, time(evt)); } } export function reset(): void { data = null; } export function stop(): void { reset(); }