trala-angulartics2
Version:
Vendor-agnostic web analytics for Angular2 applications
64 lines • 8.21 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../../angulartics2-core";
import * as i2 from "@angular/platform-browser";
export class Angulartics2Clicky {
constructor(angulartics2, titleService) {
this.angulartics2 = angulartics2;
this.titleService = titleService;
if (typeof clicky === 'undefined') {
console.warn('Angulartics 2 Clicky Plugin: clicky global not found');
}
}
startTracking() {
this.angulartics2.pageTrack
.pipe(this.angulartics2.filterDeveloperMode())
.subscribe(x => this.pageTrack(x.path));
this.angulartics2.eventTrack
.pipe(this.angulartics2.filterDeveloperMode())
.subscribe(x => this.eventOrGoalTrack(x.action, x.properties));
}
/**
* Track Page in Clicky
*
* @param path location
*
* @link https://clicky.com/help/custom/manual#log
*/
pageTrack(path) {
const title = this.titleService.getTitle();
clicky.log(path, title, 'pageview');
}
/**
* Track Event Or Goal in Clicky
*
* @param action Action name
* @param properties Definition of 'properties.goal' determines goal vs event tracking
*
* @link https://clicky.com/help/custom/manual#log
* @link https://clicky.com/help/custom/manual#goal
*/
eventOrGoalTrack(action, properties) {
if (typeof properties.goal === 'undefined') {
const title = properties.title || null;
const type = properties.type != null ? this.validateType(properties.type) : null;
clicky.log(action, title, type);
}
else {
const goalId = properties.goal;
const revenue = properties.revenue;
clicky.goal(goalId, revenue, !!properties.noQueue);
}
}
validateType(type) {
const EventType = ['pageview', 'click', 'download', 'outbound'];
return EventType.indexOf(type) > -1 ? type : 'pageview';
}
}
Angulartics2Clicky.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2Clicky, deps: [{ token: i1.Angulartics2 }, { token: i2.Title }], target: i0.ɵɵFactoryTarget.Injectable });
Angulartics2Clicky.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2Clicky, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Angulartics2Clicky, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i1.Angulartics2 }, { type: i2.Title }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2t5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9wcm92aWRlcnMvY2xpY2t5L2NsaWNreS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBb0IsWUFBMEIsRUFBVSxZQUFtQjtRQUF2RCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFPO1FBQ3pFLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0RBQXNELENBQUMsQ0FBQztTQUN0RTtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTO2FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDN0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVU7YUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM3QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLElBQVk7UUFDcEIsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZ0JBQWdCLENBQUMsTUFBYyxFQUFFLFVBQXFDO1FBQ3BFLElBQUksT0FBTyxVQUFVLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUMxQyxNQUFNLEtBQUssR0FBVyxVQUFVLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztZQUMvQyxNQUFNLElBQUksR0FBVyxVQUFVLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6RixNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNMLE1BQU0sTUFBTSxHQUFXLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDdkMsTUFBTSxPQUFPLEdBQVcsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUMzQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsSUFBWTtRQUMvQixNQUFNLFNBQVMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDMUQsQ0FBQzs7K0dBcERVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBREwsTUFBTTsyRkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7IEFuZ3VsYXJ0aWNzMiB9IGZyb20gJy4uLy4uL2FuZ3VsYXJ0aWNzMi1jb3JlJztcclxuaW1wb3J0IHsgQ2xpY2t5UHJvcGVydGllcyB9IGZyb20gJy4vY2xpY2t5LmludGVyZmFjZXMnO1xyXG5cclxuZGVjbGFyZSB2YXIgY2xpY2t5OiBhbnk7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhcnRpY3MyQ2xpY2t5IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuZ3VsYXJ0aWNzMjogQW5ndWxhcnRpY3MyLCBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUpIHtcclxuICAgIGlmICh0eXBlb2YgY2xpY2t5ID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ0FuZ3VsYXJ0aWNzIDIgQ2xpY2t5IFBsdWdpbjogY2xpY2t5IGdsb2JhbCBub3QgZm91bmQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXJ0VHJhY2tpbmcoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5wYWdlVHJhY2tcclxuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxyXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy5wYWdlVHJhY2soeC5wYXRoKSk7XHJcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5ldmVudFRyYWNrXHJcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcclxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMuZXZlbnRPckdvYWxUcmFjayh4LmFjdGlvbiwgeC5wcm9wZXJ0aWVzKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmFjayBQYWdlIGluIENsaWNreVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhdGggbG9jYXRpb25cclxuICAgKlxyXG4gICAqIEBsaW5rIGh0dHBzOi8vY2xpY2t5LmNvbS9oZWxwL2N1c3RvbS9tYW51YWwjbG9nXHJcbiAgICovXHJcbiAgcGFnZVRyYWNrKHBhdGg6IHN0cmluZykge1xyXG4gICAgY29uc3QgdGl0bGU6IHN0cmluZyA9IHRoaXMudGl0bGVTZXJ2aWNlLmdldFRpdGxlKCk7XHJcbiAgICBjbGlja3kubG9nKHBhdGgsIHRpdGxlLCAncGFnZXZpZXcnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYWNrIEV2ZW50IE9yIEdvYWwgaW4gQ2xpY2t5XHJcbiAgICpcclxuICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiBuYW1lXHJcbiAgICogQHBhcmFtIHByb3BlcnRpZXMgRGVmaW5pdGlvbiBvZiAncHJvcGVydGllcy5nb2FsJyBkZXRlcm1pbmVzIGdvYWwgdnMgZXZlbnQgdHJhY2tpbmdcclxuICAgKlxyXG4gICAqIEBsaW5rIGh0dHBzOi8vY2xpY2t5LmNvbS9oZWxwL2N1c3RvbS9tYW51YWwjbG9nXHJcbiAgICogQGxpbmsgaHR0cHM6Ly9jbGlja3kuY29tL2hlbHAvY3VzdG9tL21hbnVhbCNnb2FsXHJcbiAgICovXHJcbiAgZXZlbnRPckdvYWxUcmFjayhhY3Rpb246IHN0cmluZywgcHJvcGVydGllczogUGFydGlhbDxDbGlja3lQcm9wZXJ0aWVzPikge1xyXG4gICAgaWYgKHR5cGVvZiBwcm9wZXJ0aWVzLmdvYWwgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIGNvbnN0IHRpdGxlOiBzdHJpbmcgPSBwcm9wZXJ0aWVzLnRpdGxlIHx8IG51bGw7XHJcbiAgICAgIGNvbnN0IHR5cGU6IHN0cmluZyA9IHByb3BlcnRpZXMudHlwZSAhPSBudWxsID8gdGhpcy52YWxpZGF0ZVR5cGUocHJvcGVydGllcy50eXBlKSA6IG51bGw7XHJcbiAgICAgIGNsaWNreS5sb2coYWN0aW9uLCB0aXRsZSwgdHlwZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBnb2FsSWQ6IHN0cmluZyA9IHByb3BlcnRpZXMuZ29hbDtcclxuICAgICAgY29uc3QgcmV2ZW51ZTogbnVtYmVyID0gcHJvcGVydGllcy5yZXZlbnVlO1xyXG4gICAgICBjbGlja3kuZ29hbChnb2FsSWQsIHJldmVudWUsICEhcHJvcGVydGllcy5ub1F1ZXVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBFdmVudFR5cGUgPSBbJ3BhZ2V2aWV3JywgJ2NsaWNrJywgJ2Rvd25sb2FkJywgJ291dGJvdW5kJ107XHJcbiAgICByZXR1cm4gRXZlbnRUeXBlLmluZGV4T2YodHlwZSkgPiAtMSA/IHR5cGUgOiAncGFnZXZpZXcnO1xyXG4gIH1cclxufVxyXG4iXX0=