From bc4e4613203198863208b635aec779304c018e86 Mon Sep 17 00:00:00 2001 From: Steven Fan Date: Mon, 27 Jul 2015 17:17:55 -0400 Subject: [PATCH] add basic angulartics typings --- angulartics/angulartics-tests.ts | 25 ++++++++++++++++++++ angulartics/angulartics.d.ts | 39 ++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 angulartics/angulartics-tests.ts create mode 100644 angulartics/angulartics.d.ts diff --git a/angulartics/angulartics-tests.ts b/angulartics/angulartics-tests.ts new file mode 100644 index 000000000..cc816a2ab --- /dev/null +++ b/angulartics/angulartics-tests.ts @@ -0,0 +1,25 @@ +/// +/// + +module Analytics { + angular.module("angulartics.app", ["angulartics"]) + .config(["$analyticsProvider", ($analyticsProvider: Angulartics.IAnalyticsServiceProvider) => { + angulartics.waitForVendorApi("location", 1000, (message: string) => { + console.log(message); + }); + + $analyticsProvider.virtualPageviews(false); + $analyticsProvider.firstPageview(false); + $analyticsProvider.withAutoBase(true); + $analyticsProvider.developerMode(true); + + $analyticsProvider.registerEventTrack((action: string, properties?: any) => { + console.log(action); + }); + + $analyticsProvider.registerPageTrack((path: string, locationObj: ng.ILocationService) => { + console.log("viewed " + path); + }); + }]); +} + diff --git a/angulartics/angulartics.d.ts b/angulartics/angulartics.d.ts new file mode 100644 index 000000000..8c8957569 --- /dev/null +++ b/angulartics/angulartics.d.ts @@ -0,0 +1,39 @@ +// Type definitions for Angulartics v0.19.2 +// Project: http://luisfarzati.github.io/angulartics/ +// Definitions by: Steven Fan +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +interface Angulartics { + waitForVendorApi(objectName: string, delay: number, containsField?: any, registerFn?: any, onTimeout?: boolean): void; +} + +declare module Angulartics { + + interface IAnalyticsService { + eventTrack(eventName: string, properties?: any): any; + pageTrack(path: string, location?: ng.ILocationService): any; + setAlias(alias: string): any; + setUsername(username: string): any; + setUserProperties(properties: any): any; + setSuperProperties(properties: any): any; + } + + interface IAnalyticsServiceProvider extends angular.IServiceProvider { + virtualPageviews(value: boolean): void; + firstPageview(value: boolean): void; + withBase(value: boolean): void; + withAutoBase(value: boolean): void; + developerMode(value: boolean): void; + + registerPageTrack(callback: (path: string, location?: ng.ILocationService) => any): void; + registerEventTrack(callback: (eventName: string, properties?: any) => any): void; + registerSetAlias(callback: (alias: string) => any): void + registerSetUsername(callback: (username: string) => any): void + registerSetUserProperties(callback: (userProperties: any) => any): void + registerSetSuperProperties(callback: (superProperties: any) => any): void + } +} + +declare var angulartics:Angulartics;