UNPKG

ngx-matomo

Version:

Matomo (aka. Piwik) web analytics for Angular applications.

74 lines 9.01 kB
import { NgModule, Inject, PLATFORM_ID } from '@angular/core'; import { isPlatformBrowser } from '@angular/common'; import { MATOMO_CONFIGURATION } from './matomo-configuration'; import { MatomoInjector } from './matomo-injector.service'; import { MatomoTracker } from './matomo-tracker.service'; import { MatomoRouteTracker } from './matomo-route-tracker.service'; import { MatomoTrackClickDirective } from './matomo-track-click.directive'; import * as i0 from "@angular/core"; import * as i1 from "./matomo-injector.service"; /** * Angular module encapsulating Matomo features. */ export class MatomoModule { /** * Creates an instance of Matomo module. * * @param platformId Angular platform provided by DI. * @param injector Instance of Angular Injector provided by DI. * @param configuration Matomo configuration provided by DI. * @param matomoInjector Instance of MatomoInjector provided by DI. */ constructor(platformId, injector, configuration, matomoInjector) { this.platformId = platformId; this.injector = injector; this.configuration = configuration; this.matomoInjector = matomoInjector; // Warn if module is not being loaded by a browser. if (!isPlatformBrowser(this.platformId)) { console.warn('ngx-Matomo does not support server platform'); } // Inject the Matomo script and create trackers. this.matomoInjector.init(); // Enable route tracking if requested. if (this.configuration?.routeTracking?.enable === true) { // Using Injector instead of DI in order to allow use in routerless apps. this.injector.get(MatomoRouteTracker).startTracking(); } } /** * Use this method in your root module to provide the MatomoTracker service. */ static forRoot(configuration) { return { ngModule: MatomoModule, providers: [ { provide: MATOMO_CONFIGURATION, useValue: configuration, }, MatomoTracker, MatomoRouteTracker, ], }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: MatomoModule, deps: [{ token: PLATFORM_ID }, { token: i0.Injector }, { token: MATOMO_CONFIGURATION }, { token: i1.MatomoInjector }], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: MatomoModule, declarations: [MatomoTrackClickDirective], exports: [MatomoTrackClickDirective] }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: MatomoModule, providers: [MatomoInjector, MatomoTracker, MatomoRouteTracker] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: MatomoModule, decorators: [{ type: NgModule, args: [{ declarations: [MatomoTrackClickDirective], imports: [], exports: [MatomoTrackClickDirective], providers: [MatomoInjector, MatomoTracker, MatomoRouteTracker], }] }], ctorParameters: function () { return [{ type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }, { type: i0.Injector }, { type: undefined, decorators: [{ type: Inject, args: [MATOMO_CONFIGURATION] }] }, { type: i1.MatomoInjector }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0b21vLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRvbW8vc3JjL2xpYi9tYXRvbW8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sRUFBRSxXQUFXLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUF1QixvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUUzRTs7R0FFRztBQU9ILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOzs7Ozs7O09BT0c7SUFDSCxZQUN3QyxVQUFrQixFQUN2QyxRQUFrQixFQUNZLGFBQWtDLEVBQ2hFLGNBQThCO1FBSFQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUN2QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ1ksa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2hFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUUvQyxtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDN0Q7UUFDRCxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3RELHlFQUF5RTtZQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUE0QztRQUN6RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtnQkFDRCxhQUFhO2dCQUNiLGtCQUFrQjthQUNuQjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQTNDVSxZQUFZLGtCQVViLFdBQVcscUNBRVgsb0JBQW9COytHQVpuQixZQUFZLGlCQUxSLHlCQUF5QixhQUU5Qix5QkFBeUI7K0dBR3hCLFlBQVksYUFGWixDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLENBQUM7OzJGQUVuRCxZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN6QyxPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDcEMsU0FBUyxFQUFFLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztpQkFDL0Q7OzBCQVdJLE1BQU07MkJBQUMsV0FBVzs7MEJBRWxCLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIEluamVjdCwgUExBVEZPUk1fSUQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE1hdG9tb0NvbmZpZ3VyYXRpb24sIE1BVE9NT19DT05GSUdVUkFUSU9OIH0gZnJvbSAnLi9tYXRvbW8tY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBNYXRvbW9JbmplY3RvciB9IGZyb20gJy4vbWF0b21vLWluamVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0b21vVHJhY2tlciB9IGZyb20gJy4vbWF0b21vLXRyYWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRvbW9Sb3V0ZVRyYWNrZXIgfSBmcm9tICcuL21hdG9tby1yb3V0ZS10cmFja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0b21vVHJhY2tDbGlja0RpcmVjdGl2ZSB9IGZyb20gJy4vbWF0b21vLXRyYWNrLWNsaWNrLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQW5ndWxhciBtb2R1bGUgZW5jYXBzdWxhdGluZyBNYXRvbW8gZmVhdHVyZXMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW01hdG9tb1RyYWNrQ2xpY2tEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW01hdG9tb1RyYWNrQ2xpY2tEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtNYXRvbW9JbmplY3RvciwgTWF0b21vVHJhY2tlciwgTWF0b21vUm91dGVUcmFja2VyXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0b21vTW9kdWxlIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTWF0b21vIG1vZHVsZS5cbiAgICpcbiAgICogQHBhcmFtIHBsYXRmb3JtSWQgQW5ndWxhciBwbGF0Zm9ybSBwcm92aWRlZCBieSBESS5cbiAgICogQHBhcmFtIGluamVjdG9yIEluc3RhbmNlIG9mIEFuZ3VsYXIgSW5qZWN0b3IgcHJvdmlkZWQgYnkgREkuXG4gICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIE1hdG9tbyBjb25maWd1cmF0aW9uIHByb3ZpZGVkIGJ5IERJLlxuICAgKiBAcGFyYW0gbWF0b21vSW5qZWN0b3IgSW5zdGFuY2Ugb2YgTWF0b21vSW5qZWN0b3IgcHJvdmlkZWQgYnkgREkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KE1BVE9NT19DT05GSUdVUkFUSU9OKSBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IE1hdG9tb0NvbmZpZ3VyYXRpb24sXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXRvbW9JbmplY3RvcjogTWF0b21vSW5qZWN0b3JcbiAgKSB7XG4gICAgLy8gV2FybiBpZiBtb2R1bGUgaXMgbm90IGJlaW5nIGxvYWRlZCBieSBhIGJyb3dzZXIuXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ25neC1NYXRvbW8gZG9lcyBub3Qgc3VwcG9ydCBzZXJ2ZXIgcGxhdGZvcm0nKTtcbiAgICB9XG4gICAgLy8gSW5qZWN0IHRoZSBNYXRvbW8gc2NyaXB0IGFuZCBjcmVhdGUgdHJhY2tlcnMuXG4gICAgdGhpcy5tYXRvbW9JbmplY3Rvci5pbml0KCk7XG4gICAgLy8gRW5hYmxlIHJvdXRlIHRyYWNraW5nIGlmIHJlcXVlc3RlZC5cbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uPy5yb3V0ZVRyYWNraW5nPy5lbmFibGUgPT09IHRydWUpIHtcbiAgICAgIC8vIFVzaW5nIEluamVjdG9yIGluc3RlYWQgb2YgREkgaW4gb3JkZXIgdG8gYWxsb3cgdXNlIGluIHJvdXRlcmxlc3MgYXBwcy5cbiAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE1hdG9tb1JvdXRlVHJhY2tlcikuc3RhcnRUcmFja2luZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgaW4geW91ciByb290IG1vZHVsZSB0byBwcm92aWRlIHRoZSBNYXRvbW9UcmFja2VyIHNlcnZpY2UuXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChjb25maWd1cmF0aW9uPzogUGFydGlhbDxNYXRvbW9Db25maWd1cmF0aW9uPik6IE1vZHVsZVdpdGhQcm92aWRlcnM8TWF0b21vTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBNYXRvbW9Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE1BVE9NT19DT05GSUdVUkFUSU9OLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWd1cmF0aW9uLFxuICAgICAgICB9LFxuICAgICAgICBNYXRvbW9UcmFja2VyLFxuICAgICAgICBNYXRvbW9Sb3V0ZVRyYWNrZXIsXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==