@igo2/core
Version:
88 lines • 12.1 kB
JavaScript
import { Injectable } from '@angular/core';
import { ConfigService } from '@igo2/core/config';
import * as i0 from "@angular/core";
import * as i1 from "@igo2/core/config";
export class AnalyticsService {
config;
options;
get paq() {
return (window._paq = window._paq || []);
}
constructor(config) {
this.config = config;
this.options = this.config.getConfig('analytics') || {};
if (this.options.provider === 'matomo') {
this.initMatomo();
}
}
initMatomo() {
if (!this.options.url || !this.options.id) {
return;
}
const url = this.options.url.substr(-1) === '/'
? this.options.url + 'matomo'
: this.options.url;
// this.paq.push(['trackPageView']);
// this.paq.push(['enableLinkTracking']);
(() => {
this.paq.push(['setTrackerUrl', url + '.php']);
this.paq.push(['setSiteId', this.options.id]);
this.paq.push(['setSecureCookie', location.protocol === 'https:']);
const g = document.createElement('script');
const s = document.getElementsByTagName('script')[0];
g.type = 'text/javascript';
g.async = true;
g.defer = true;
g.src = url + '.js';
s.parentNode.insertBefore(g, s);
})();
}
/**
* Pass `null` to unset the user.
*/
setUser(user, profils) {
if (this.options.provider === 'matomo') {
if (!user) {
this.paq.push(['resetUserId']);
this.paq.push(['deleteCustomVariable', 1, 'user']);
this.paq.push(['deleteCustomVariable', 2, 'name']);
this.paq.push(['deleteCustomVariable', 3, 'profils']);
}
else {
this.paq.push(['setUserId', user.id]);
const name = `${user.firstName} ${user.lastName}`;
this.paq.push(['setCustomVariable', 1, 'user', user.sourceId, 'visit']);
this.paq.push(['setCustomVariable', 2, 'name', name, 'visit']);
this.paq.push(['setCustomVariable', 3, 'profils', profils, 'visit']);
}
this.paq.push(['trackPageView']);
this.paq.push(['enableLinkTracking']);
}
}
trackSearch(term, nbResults) {
if (this.options.provider === 'matomo') {
this.paq.push(['trackSiteSearch', term, false, nbResults]);
}
}
trackEvent(category, action, name) {
if (this.options.provider === 'matomo') {
this.paq.push(['trackEvent', category, action, name]);
}
}
/**
* Function that tracks layers added to the map
*/
trackLayer(category, action, parameters) {
if (this.options.provider === 'matomo')
this.paq.push(['trackEvent', category, action, parameters]);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnalyticsService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnalyticsService, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnalyticsService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.ConfigService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL2FuYWx5dGljcy9zcmMvYW5hbHl0aWNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQU9sRCxNQUFNLE9BQU8sZ0JBQWdCO0lBT1A7SUFOWixPQUFPLENBQW1CO0lBRWxDLElBQUksR0FBRztRQUNMLE9BQU8sQ0FBRSxNQUFjLENBQUMsSUFBSSxHQUFJLE1BQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEdBQUcsR0FDUCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxRQUFRO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxD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SUFFTSxXQUFXLENBQUMsSUFBWSxFQUFFLFNBQWlCO1FBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsSUFBWTtRQUM5RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLFFBQWdCLEVBQUUsTUFBYyxFQUFFLFVBQWU7UUFDakUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRO1lBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO3dHQWxGVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5cbmltcG9ydCB7IEFuYWx5dGljc0Jhc2VVc2VyLCBBbmFseXRpY3NPcHRpb25zIH0gZnJvbSAnLi9hbmFseXRpY3MuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzU2VydmljZSB7XG4gIHByaXZhdGUgb3B0aW9uczogQW5hbHl0aWNzT3B0aW9ucztcblxuICBnZXQgcGFxKCkge1xuICAgIHJldHVybiAoKHdpbmRvdyBhcyBhbnkpLl9wYXEgPSAod2luZG93IGFzIGFueSkuX3BhcSB8fCBbXSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYW5hbHl0aWNzJykgfHwge307XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnByb3ZpZGVyID09PSAnbWF0b21vJykge1xuICAgICAgdGhpcy5pbml0TWF0b21vKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0TWF0b21vKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnVybCB8fCAhdGhpcy5vcHRpb25zLmlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLm9wdGlvbnMudXJsLnN1YnN0cigtMSkgPT09ICcvJ1xuICAgICAgICA/IHRoaXMub3B0aW9ucy51cmwgKyAnbWF0b21vJ1xuICAgICAgICA6IHRoaXMub3B0aW9ucy51cmw7XG5cbiAgICAvLyB0aGlzLnBhcS5wdXNoKFsndHJhY2tQYWdlVmlldyddKTtcbiAgICAvLyB0aGlzLnBhcS5wdXNoKFsnZW5hYmxlTGlua1RyYWNraW5nJ10pO1xuICAgICgoKSA9PiB7XG4gICAgICB0aGlzLnBhcS5wdXNoKFsnc2V0VHJhY2tlclVybCcsIHVybCArICcucGhwJ10pO1xuICAgICAgdGhpcy5wYXEucHVzaChbJ3NldFNpdGVJZCcsIHRoaXMub3B0aW9ucy5pZF0pO1xuICAgICAgdGhpcy5wYXEucHVzaChbJ3NldFNlY3VyZUNvb2tpZScsIGxvY2F0aW9uLnByb3RvY29sID09PSAnaHR0cHM6J10pO1xuICAgICAgY29uc3QgZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgY29uc3QgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTtcbiAgICAgIGcudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgZy5hc3luYyA9IHRydWU7XG4gICAgICBnLmRlZmVyID0gdHJ1ZTtcbiAgICAgIGcuc3JjID0gdXJsICsgJy5qcyc7XG4gICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGcsIHMpO1xuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogUGFzcyBgbnVsbGAgdG8gdW5zZXQgdGhlIHVzZXIuXG4gICAqL1xuICBwdWJsaWMgc2V0VXNlcih1c2VyOiBBbmFseXRpY3NCYXNlVXNlciB8IG51bGwsIHByb2ZpbHM/OiBzdHJpbmdbXSkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucHJvdmlkZXIgPT09ICdtYXRvbW8nKSB7XG4gICAgICBpZiAoIXVzZXIpIHtcbiAgICAgICAgdGhpcy5wYXEucHVzaChbJ3Jlc2V0VXNlcklkJ10pO1xuICAgICAgICB0aGlzLnBhcS5wdXNoKFsnZGVsZXRlQ3VzdG9tVmFyaWFibGUnLCAxLCAndXNlciddKTtcbiAgICAgICAgdGhpcy5wYXEucHVzaChbJ2RlbGV0ZUN1c3RvbVZhcmlhYmxlJywgMiwgJ25hbWUnXSk7XG4gICAgICAgIHRoaXMucGFxLnB1c2goWydkZWxldGVDdXN0b21WYXJpYWJsZScsIDMsICdwcm9maWxzJ10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYXEucHVzaChbJ3NldFVzZXJJZCcsIHVzZXIuaWRdKTtcblxuICAgICAgICBjb25zdCBuYW1lID0gYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gO1xuICAgICAgICB0aGlzLnBhcS5wdXNoKFsnc2V0Q3VzdG9tVmFyaWFibGUnLCAxLCAndXNlcicsIHVzZXIuc291cmNlSWQsICd2aXNpdCddKTtcbiAgICAgICAgdGhpcy5wYXEucHVzaChbJ3NldEN1c3RvbVZhcmlhYmxlJywgMiwgJ25hbWUnLCBuYW1lLCAndmlzaXQnXSk7XG4gICAgICAgIHRoaXMucGFxLnB1c2goWydzZXRDdXN0b21WYXJpYWJsZScsIDMsICdwcm9maWxzJywgcHJvZmlscywgJ3Zpc2l0J10pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBhcS5wdXNoKFsndHJhY2tQYWdlVmlldyddKTtcbiAgICAgIHRoaXMucGFxLnB1c2goWydlbmFibGVMaW5rVHJhY2tpbmcnXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyYWNrU2VhcmNoKHRlcm06IHN0cmluZywgbmJSZXN1bHRzOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLnByb3ZpZGVyID09PSAnbWF0b21vJykge1xuICAgICAgdGhpcy5wYXEucHVzaChbJ3RyYWNrU2l0ZVNlYXJjaCcsIHRlcm0sIGZhbHNlLCBuYlJlc3VsdHNdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tFdmVudChjYXRlZ29yeTogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcm92aWRlciA9PT0gJ21hdG9tbycpIHtcbiAgICAgIHRoaXMucGFxLnB1c2goWyd0cmFja0V2ZW50JywgY2F0ZWdvcnksIGFjdGlvbiwgbmFtZV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IHRyYWNrcyBsYXllcnMgYWRkZWQgdG8gdGhlIG1hcFxuICAgKi9cbiAgcHVibGljIHRyYWNrTGF5ZXIoY2F0ZWdvcnk6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcsIHBhcmFtZXRlcnM6IGFueSkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucHJvdmlkZXIgPT09ICdtYXRvbW8nKVxuICAgICAgdGhpcy5wYXEucHVzaChbJ3RyYWNrRXZlbnQnLCBjYXRlZ29yeSwgYWN0aW9uLCBwYXJhbWV0ZXJzXSk7XG4gIH1cbn1cbiJdfQ==