API Reference
The package exposes the following public API.
TrackEventDirective
A standalone directive with selector [trackEvent]. Its required input accepts a TrackConfig object.
<button [trackEvent]="trackConfig('save:clicked', { id: 42 })">Save</button>trackConfig
Creates a typed TrackConfig object.
function trackConfig<E extends string, D = unknown>(
event: E,
data?: D,
onceOrOptions?: boolean | TrackOptions,
): TrackConfig<E, D>;trackConfig('hero:viewed');
trackConfig('add-to-cart:clicked', { productId: 42 });
trackConfig('promo:viewed', { campaign: 'summer' }, false);
trackConfig('dialog:opened', undefined, { trigger: 'dialog-opened', once: true });provideTrackingAdapter
Registers a TrackingAdapter with Angular dependency injection.
function provideTrackingAdapter(adapter: TrackingAdapter): Provider;TRACKING_ADAPTER
The InjectionToken<TrackingAdapter> used by provideTrackingAdapter. Most applications should use the provider function instead of registering the token directly.
parseTriggerFromEvent
Returns the trigger inferred from the suffix after the final :.
function parseTriggerFromEvent(event: string): TrackTrigger;
parseTriggerFromEvent('save:clicked'); // 'click'
parseTriggerFromEvent('dialog:opened'); // 'unknown'TrackConfig
interface TrackConfig<E extends string = string, D = unknown> {
event: E;
data?: D;
trigger?: TrackTrigger;
once?: boolean;
}eventis the analytics event name. Its suffix selects the trigger whentriggeris omitted.datais passed unchanged to the adapter.triggerselects a standard or custom DOM event, or the specialviewtrigger.onceoverrides the trigger's default one-time behavior.
TrackOptions
interface TrackOptions {
trigger?: TrackTrigger;
once?: boolean;
}Pass this object as the third trackConfig argument. Passing a boolean remains supported for backward compatibility and sets once directly.
TrackTrigger
type TrackTrigger = 'click' | 'view' | 'hover' | 'unknown' | (string & {});The named values provide autocomplete for built-in behavior. Other strings are treated as DOM event names.
TrackingAdapter
The contract implemented by analytics adapters.
interface TrackingAdapter {
track(eventName: string, data?: unknown): void;
}See Adapter Setup for provider examples.
