UNPKG

ngx-matomo

Version:

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

75 lines 8.66 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 * 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( // eslint-disable-next-line @typescript-eslint/ban-types 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, ], }; } } MatomoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: MatomoModule, deps: [{ token: PLATFORM_ID }, { token: i0.Injector }, { token: MATOMO_CONFIGURATION }, { token: i1.MatomoInjector }], target: i0.ɵɵFactoryTarget.NgModule }); MatomoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: MatomoModule }); MatomoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: MatomoModule, providers: [MatomoInjector, MatomoTracker, MatomoRouteTracker] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: MatomoModule, decorators: [{ type: NgModule, args: [{ declarations: [], imports: [], exports: [], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0b21vLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRvbW8vc3JjL2xpYi9tYXRvbW8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sRUFBRSxXQUFXLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUF1QixvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUVwRTs7R0FFRztBQU9ILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOzs7Ozs7O09BT0c7SUFDSDtJQUNFLHdEQUF3RDtJQUNsQixVQUFrQixFQUN2QyxRQUFrQixFQUNZLGFBQWtDLEVBQ2hFLGNBQThCO1FBSFQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUN2QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ1ksa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2hFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUUvQyxtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDN0Q7UUFDRCxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3RELHlFQUF5RTtZQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUE0QztRQUN6RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtnQkFDRCxhQUFhO2dCQUNiLGtCQUFrQjthQUNuQjtTQUNGLENBQUM7SUFDSixDQUFDOzt5R0E1Q1UsWUFBWSxrQkFXYixXQUFXLHFDQUVYLG9CQUFvQjswR0FibkIsWUFBWTswR0FBWixZQUFZLGFBRlosQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDOzJGQUVuRCxZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUUsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDO2lCQUMvRDswREFZcUQsTUFBTTswQkFBdkQsTUFBTTsyQkFBQyxXQUFXOzswQkFFbEIsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgSW5qZWN0LCBQTEFURk9STV9JRCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTWF0b21vQ29uZmlndXJhdGlvbiwgTUFUT01PX0NPTkZJR1VSQVRJT04gfSBmcm9tICcuL21hdG9tby1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IE1hdG9tb0luamVjdG9yIH0gZnJvbSAnLi9tYXRvbW8taW5qZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRvbW9UcmFja2VyIH0gZnJvbSAnLi9tYXRvbW8tdHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdG9tb1JvdXRlVHJhY2tlciB9IGZyb20gJy4vbWF0b21vLXJvdXRlLXRyYWNrZXIuc2VydmljZSc7XG5cbi8qKlxuICogQW5ndWxhciBtb2R1bGUgZW5jYXBzdWxhdGluZyBNYXRvbW8gZmVhdHVyZXMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbXSxcbiAgcHJvdmlkZXJzOiBbTWF0b21vSW5qZWN0b3IsIE1hdG9tb1RyYWNrZXIsIE1hdG9tb1JvdXRlVHJhY2tlcl0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdG9tb01vZHVsZSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIE1hdG9tbyBtb2R1bGUuXG4gICAqXG4gICAqIEBwYXJhbSBwbGF0Zm9ybUlkIEFuZ3VsYXIgcGxhdGZvcm0gcHJvdmlkZWQgYnkgREkuXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbnN0YW5jZSBvZiBBbmd1bGFyIEluamVjdG9yIHByb3ZpZGVkIGJ5IERJLlxuICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiBNYXRvbW8gY29uZmlndXJhdGlvbiBwcm92aWRlZCBieSBESS5cbiAgICogQHBhcmFtIG1hdG9tb0luamVjdG9yIEluc3RhbmNlIG9mIE1hdG9tb0luamVjdG9yIHByb3ZpZGVkIGJ5IERJLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KE1BVE9NT19DT05GSUdVUkFUSU9OKSBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IE1hdG9tb0NvbmZpZ3VyYXRpb24sXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXRvbW9JbmplY3RvcjogTWF0b21vSW5qZWN0b3JcbiAgKSB7XG4gICAgLy8gV2FybiBpZiBtb2R1bGUgaXMgbm90IGJlaW5nIGxvYWRlZCBieSBhIGJyb3dzZXIuXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ25neC1NYXRvbW8gZG9lcyBub3Qgc3VwcG9ydCBzZXJ2ZXIgcGxhdGZvcm0nKTtcbiAgICB9XG4gICAgLy8gSW5qZWN0IHRoZSBNYXRvbW8gc2NyaXB0IGFuZCBjcmVhdGUgdHJhY2tlcnMuXG4gICAgdGhpcy5tYXRvbW9JbmplY3Rvci5pbml0KCk7XG4gICAgLy8gRW5hYmxlIHJvdXRlIHRyYWNraW5nIGlmIHJlcXVlc3RlZC5cbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uPy5yb3V0ZVRyYWNraW5nPy5lbmFibGUgPT09IHRydWUpIHtcbiAgICAgIC8vIFVzaW5nIEluamVjdG9yIGluc3RlYWQgb2YgREkgaW4gb3JkZXIgdG8gYWxsb3cgdXNlIGluIHJvdXRlcmxlc3MgYXBwcy5cbiAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE1hdG9tb1JvdXRlVHJhY2tlcikuc3RhcnRUcmFja2luZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgaW4geW91ciByb290IG1vZHVsZSB0byBwcm92aWRlIHRoZSBNYXRvbW9UcmFja2VyIHNlcnZpY2UuXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChjb25maWd1cmF0aW9uPzogUGFydGlhbDxNYXRvbW9Db25maWd1cmF0aW9uPik6IE1vZHVsZVdpdGhQcm92aWRlcnM8TWF0b21vTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBNYXRvbW9Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE1BVE9NT19DT05GSUdVUkFUSU9OLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWd1cmF0aW9uLFxuICAgICAgICB9LFxuICAgICAgICBNYXRvbW9UcmFja2VyLFxuICAgICAgICBNYXRvbW9Sb3V0ZVRyYWNrZXIsXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==