ngx-matomo-client
Version:
Matomo (fka. Piwik) client for Angular applications
16 lines (15 loc) • 740 B
TypeScript
import { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { MatomoRouterInterceptor } from '../interceptor';
/**
* Simple interceptor base looking into route's data for tracking
*
* @see MatomoRouteDataInterceptor
*/
export declare abstract class MatomoRouteInterceptorBase<D> implements MatomoRouterInterceptor {
protected readonly router: Router;
beforePageTrack(event: NavigationEnd): Observable<void> | Promise<void> | void;
protected getRoute(_: NavigationEnd): ActivatedRouteSnapshot;
protected abstract extractRouteData(route: ActivatedRouteSnapshot): D;
protected abstract processRouteData(data: D): Observable<void> | Promise<void> | void;
}