angular-ga
Advanced tools
Comparing version 0.2.0 to 0.3.0
export { GoogleAnalyticsModule } from './lib/ga.module'; | ||
export { GoogleAnalyticsService } from './lib/ga.service'; | ||
export { GA_TOKEN } from './lib/ga.token'; | ||
export { GA_TOKEN, GA_OPTIONS } from './lib/ga.token'; |
export { GoogleAnalyticsModule } from './lib/ga.module'; | ||
export { GoogleAnalyticsService } from './lib/ga.service'; | ||
export { GA_TOKEN } from './lib/ga.token'; | ||
export { GA_TOKEN, GA_OPTIONS } from './lib/ga.token'; |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./lib/ga.module","export":["GoogleAnalyticsModule"]},{"from":"./lib/ga.service","export":["GoogleAnalyticsService"]},{"from":"./lib/ga.token","export":["GA_TOKEN"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./lib/ga.module","export":["GoogleAnalyticsModule"]},{"from":"./lib/ga.service","export":["GoogleAnalyticsService"]},{"from":"./lib/ga.token","export":["GA_TOKEN"]}]}] | ||
[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./lib/ga.module","export":["GoogleAnalyticsModule"]},{"from":"./lib/ga.service","export":["GoogleAnalyticsService"]},{"from":"./lib/ga.token","export":["GA_TOKEN","GA_OPTIONS"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./lib/ga.module","export":["GoogleAnalyticsModule"]},{"from":"./lib/ga.service","export":["GoogleAnalyticsService"]},{"from":"./lib/ga.token","export":["GA_TOKEN","GA_OPTIONS"]}]}] |
@@ -1,4 +0,4 @@ | ||
import { ModuleWithProviders, Provider } from '@angular/core'; | ||
import { ModuleWithProviders } from '@angular/core'; | ||
export declare class GoogleAnalyticsModule { | ||
static forRoot(provider: Provider): ModuleWithProviders; | ||
static forRoot(): ModuleWithProviders; | ||
} |
@@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; | ||
} | ||
GoogleAnalyticsModule.forRoot = function (provider) { | ||
GoogleAnalyticsModule.forRoot = function () { | ||
return { | ||
ngModule: GoogleAnalyticsModule, | ||
providers: [ | ||
provider, | ||
GoogleAnalyticsService | ||
@@ -13,0 +12,0 @@ ] |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"GoogleAnalyticsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[],"declarations":[],"exports":[]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":["provider"],"value":{"ngModule":{"__symbolic":"reference","name":"GoogleAnalyticsModule"},"providers":[{"__symbolic":"reference","name":"provider"},{"__symbolic":"reference","module":"./ga.service","name":"GoogleAnalyticsService"}]}}}}}},{"__symbolic":"module","version":1,"metadata":{"GoogleAnalyticsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[],"declarations":[],"exports":[]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":["provider"],"value":{"ngModule":{"__symbolic":"reference","name":"GoogleAnalyticsModule"},"providers":[{"__symbolic":"reference","name":"provider"},{"__symbolic":"reference","module":"./ga.service","name":"GoogleAnalyticsService"}]}}}}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"GoogleAnalyticsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[],"declarations":[],"exports":[]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"GoogleAnalyticsModule"},"providers":[{"__symbolic":"reference","module":"./ga.service","name":"GoogleAnalyticsService"}]}}}}}},{"__symbolic":"module","version":1,"metadata":{"GoogleAnalyticsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[],"declarations":[],"exports":[]}]}],"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"GoogleAnalyticsModule"},"providers":[{"__symbolic":"reference","module":"./ga.service","name":"GoogleAnalyticsService"}]}}}}}}] |
import { EventEmitter } from '@angular/core'; | ||
import { Event } from './interfaces/event'; | ||
import { PageView } from './interfaces/pageview'; | ||
import { TrackingOptions } from './interfaces/tracking-options'; | ||
export declare class GoogleAnalyticsService { | ||
event: EventEmitter<Event>; | ||
pageview: EventEmitter<PageView>; | ||
constructor(trackingId: string); | ||
constructor(trackingId: string, options: any); | ||
configure(trackingId: string, options?: TrackingOptions): void; | ||
set(fieldsObject: any): void; | ||
set(fieldName: string, fieldValue: any): void; | ||
private onEvent(event); | ||
private onPageView(pageview); | ||
} |
@@ -1,13 +0,33 @@ | ||
import { Injectable, Inject, EventEmitter } from '@angular/core'; | ||
import { GA_TOKEN } from './ga.token'; | ||
import { Injectable, Inject, Optional, EventEmitter } from '@angular/core'; | ||
import { GA_TOKEN, GA_OPTIONS } from './ga.token'; | ||
export var GoogleAnalyticsService = (function () { | ||
function GoogleAnalyticsService(trackingId) { | ||
var _this = this; | ||
function GoogleAnalyticsService(trackingId, options) { | ||
this.event = new EventEmitter(); | ||
this.pageview = new EventEmitter(); | ||
ga('create', trackingId, 'auto'); | ||
if (trackingId) { | ||
this.configure(trackingId, options); | ||
} | ||
} | ||
GoogleAnalyticsService.prototype.configure = function (trackingId, options) { | ||
var _this = this; | ||
if (options === void 0) { options = 'auto'; } | ||
ga('create', trackingId, options); | ||
ga('send', 'pageview'); | ||
this.event.subscribe(function (x) { return _this.onEvent(x); }); | ||
this.pageview.subscribe(function (x) { return _this.onPageView(x); }); | ||
} | ||
}; | ||
GoogleAnalyticsService.prototype.set = function (key, value) { | ||
if (typeof key !== 'string' && typeof key !== 'object') { | ||
throw new TypeError("Expected `fieldName` to be of type `string` or `object`, got `" + typeof key + "`"); | ||
} | ||
if (typeof key === 'string' && value === undefined) { | ||
throw new TypeError("Expected `fieldValue` to not be `undefined`"); | ||
} | ||
if (typeof key === 'object') { | ||
ga('set', key); | ||
} | ||
else { | ||
ga('set', key, value); | ||
} | ||
}; | ||
GoogleAnalyticsService.prototype.onEvent = function (event) { | ||
@@ -28,5 +48,6 @@ ga('send', 'event', event.category, event.action, event.label, event.value); | ||
GoogleAnalyticsService.ctorParameters = function () { return [ | ||
{ type: undefined, decorators: [{ type: Inject, args: [GA_TOKEN,] },] }, | ||
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GA_TOKEN,] },] }, | ||
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GA_OPTIONS,] },] }, | ||
]; }; | ||
return GoogleAnalyticsService; | ||
}()); |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"GoogleAnalyticsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./ga.token","name":"GA_TOKEN"}]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"onEvent":[{"__symbolic":"method"}],"onPageView":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"GoogleAnalyticsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./ga.token","name":"GA_TOKEN"}]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"onEvent":[{"__symbolic":"method"}],"onPageView":[{"__symbolic":"method"}]}}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"GoogleAnalyticsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./ga.token","name":"GA_TOKEN"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./ga.token","name":"GA_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"configure":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"onEvent":[{"__symbolic":"method"}],"onPageView":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"GoogleAnalyticsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./ga.token","name":"GA_TOKEN"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"./ga.token","name":"GA_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"configure":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"onEvent":[{"__symbolic":"method"}],"onPageView":[{"__symbolic":"method"}]}}}}] |
import { OpaqueToken } from '@angular/core'; | ||
export declare const GA_TOKEN: OpaqueToken; | ||
export declare const GA_OPTIONS: OpaqueToken; |
import { OpaqueToken } from '@angular/core'; | ||
export var GA_TOKEN = new OpaqueToken('angular-ga TrackingId'); | ||
export var GA_OPTIONS = new OpaqueToken('angular-ga Tracking Options'); |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"GA_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["angular-ga TrackingId"]}}},{"__symbolic":"module","version":1,"metadata":{"GA_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["angular-ga TrackingId"]}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"GA_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["angular-ga TrackingId"]},"GA_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["angular-ga Tracking Options"]}}},{"__symbolic":"module","version":1,"metadata":{"GA_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["angular-ga TrackingId"]},"GA_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["angular-ga Tracking Options"]}}}] |
{ | ||
"name": "angular-ga", | ||
"version": "0.2.0", | ||
"version": "0.3.0", | ||
"description": "Google Analytics for your Angular application", | ||
"license": "MIT", | ||
@@ -11,3 +12,2 @@ "repository": "SamVerschueren/angular-ga", | ||
"main": "index.js", | ||
"module": "index.js", | ||
"engines": { | ||
@@ -23,2 +23,8 @@ "node": ">=4" | ||
}, | ||
"files": [ | ||
"index.js", | ||
"index.d.ts", | ||
"index.metadata.json", | ||
"lib" | ||
], | ||
"keywords": [ | ||
@@ -33,14 +39,8 @@ "angular", | ||
], | ||
"files": [ | ||
"index.js", | ||
"index.d.ts", | ||
"index.metadata.json", | ||
"lib" | ||
], | ||
"dependencies": {}, | ||
"devDependencies": { | ||
"@angular/core": "^2.4.5", | ||
"@angular/common": "^2.4.5", | ||
"@angular/compiler": "^2.4.5", | ||
"@angular/compiler-cli": "^2.4.5", | ||
"@angular/core": "^2.4.5", | ||
"@angular/platform-server": "^2.4.5", | ||
@@ -52,3 +52,4 @@ "codelyzer": "^0.0.28", | ||
"zone.js": "0.7.2" | ||
} | ||
}, | ||
"module": "index.js" | ||
} |
@@ -29,6 +29,3 @@ # angular-ga [![Build Status](https://travis-ci.org/SamVerschueren/angular-ga.svg?branch=master)](https://travis-ci.org/SamVerschueren/angular-ga) | ||
BrowserModule, | ||
GoogleAnalyticsModule.forRoot({ | ||
provide: GA_TOKEN, | ||
useValue: 'UA-TOKEN-1' | ||
}) | ||
GoogleAnalyticsModule.forRoot() | ||
], | ||
@@ -38,2 +35,21 @@ declarations: [ | ||
], | ||
bootstrap: [AppComponent], | ||
providers: [ | ||
{ provide: GA_TOKEN, useValue: 'UA-TOKEN-1' } | ||
] | ||
}) | ||
export class AppModule { } | ||
``` | ||
It's also possible to leave the configuration empty and configure the library later on through the service. | ||
```js | ||
@NgModule({ | ||
imports: [ | ||
BrowserModule, | ||
GoogleAnalyticsModule.forRoot() | ||
], | ||
declarations: [ | ||
AppComponent | ||
], | ||
bootstrap: [AppComponent] | ||
@@ -53,3 +69,2 @@ }) | ||
@Component({ | ||
moduleId: module.id, | ||
templateUrl: 'app.component.html' | ||
@@ -72,5 +87,44 @@ }) | ||
#### Configuration | ||
```js | ||
import { Component, OnInit } from '@angular/core'; | ||
import { GoogleAnalyticsService } from 'angular-ga'; | ||
@Component({ | ||
templateUrl: 'app.component.html' | ||
}) | ||
export class AppComponent implements OnInit { | ||
constructor( | ||
private gaService: GoogleAnalyticsService | ||
) { } | ||
ngOnInit() { | ||
this.gaService.configure('UA-TOKEN-1'); | ||
} | ||
} | ||
``` | ||
### Service | ||
## API | ||
### service.configure(trackingId, [options]) | ||
#### trackingId | ||
Type: `string` | ||
Tracking Id. | ||
#### options | ||
Type: `Object` `string`<br> | ||
Default: `auto` | ||
Any of the [`Create Only Fields`](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#create). | ||
### service.event.emit(event: Event) | ||
@@ -77,0 +131,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
14850
21
131
181