ngx-matomo-client
Version:
Matomo (fka. Piwik) client for Angular applications
18 lines (17 loc) • 1.17 kB
TypeScript
import { InjectionToken, Provider, Type } from '@angular/core';
import { NavigationEnd } from '@angular/router';
import { Observable } from 'rxjs';
export declare const MATOMO_ROUTER_INTERCEPTORS: InjectionToken<MatomoRouterInterceptor[]>;
/** Interceptor used to hook just before every page tracking */
export type MatomoRouterInterceptorFn = (event: NavigationEnd) => Observable<void> | Promise<void> | void;
/** Interceptor used to hook into the page tracking process */
export interface MatomoRouterInterceptor {
/**
* Called after a router event has occurred and before page view has been tracked (i.e. before `trackPageView()` has been called)
*
* If an Observable or a Promise is returned, the observable (first emission or completion) or promise resolution is awaited before tracking call.
*/
beforePageTrack(event: NavigationEnd): Observable<void> | Promise<void> | void;
}
export declare function provideInterceptor(typeOrFn: Type<MatomoRouterInterceptor> | MatomoRouterInterceptorFn): Provider;
export declare function provideInterceptors(types: (Type<MatomoRouterInterceptor> | MatomoRouterInterceptorFn)[] | undefined): Provider[];