clarity-js
Version:
An analytics library that uses web page interactions to generate aggregated insights
43 lines (39 loc) • 1.37 kB
text/typescript
import { start as discStart } from "@src/layout/discover";
import { start as docStart, stop as docStop } from "@src/layout/document";
import { start as domStart, stop as domStop } from "@src/layout/dom";
import { start as mutStart, stop as mutStop } from "@src/layout/mutation";
import { start as regStart, stop as regStop } from "@src/layout/region";
import { start as styStart, stop as styStop } from "@src/layout/style";
import { start as animStart, stop as animStop } from "@src/layout/animation";
import { start as custStart, stop as custStop } from "@src/layout/custom";
import { bind } from "@src/core/event";
import config from "@src/core/config";
export { hashText } from "@src/layout/dom";
export function start(): void {
// The order below is important and is determined by interdependencies of modules
docStart();
regStart();
domStart();
if (config.delayDom) {
bind(window, 'load', () => {
mutStart();
});
} else {
mutStart();
}
// IMPORTANT: Start custom element detection BEFORE discover
// This ensures pre-existing custom elements are registered before DOM traversal
custStart();
discStart();
styStart();
animStart();
}
export function stop(): void {
regStop();
domStop();
mutStop();
docStop();
styStop();
animStop();
custStop();
}