@dereekb/dbx-analytics 1.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,31 +8,31 @@ import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
8
8
  import { AbstractAsyncWindowLoadedService } from '@dereekb/browser';
9
9
  import { poll } from '@dereekb/util';
10
10
 
11
- var AnalyticsStreamEventType;
12
- (function (AnalyticsStreamEventType) {
13
- AnalyticsStreamEventType[AnalyticsStreamEventType["PageView"] = 0] = "PageView";
14
- AnalyticsStreamEventType[AnalyticsStreamEventType["UserChange"] = 1] = "UserChange";
11
+ var DbxAnalyticsStreamEventType;
12
+ (function (DbxAnalyticsStreamEventType) {
13
+ DbxAnalyticsStreamEventType[DbxAnalyticsStreamEventType["PageView"] = 0] = "PageView";
14
+ DbxAnalyticsStreamEventType[DbxAnalyticsStreamEventType["UserChange"] = 1] = "UserChange";
15
15
  // User Events
16
- AnalyticsStreamEventType[AnalyticsStreamEventType["NewUserEvent"] = 2] = "NewUserEvent";
17
- AnalyticsStreamEventType[AnalyticsStreamEventType["UserLoginEvent"] = 3] = "UserLoginEvent";
18
- AnalyticsStreamEventType[AnalyticsStreamEventType["UserLogoutEvent"] = 4] = "UserLogoutEvent";
19
- AnalyticsStreamEventType[AnalyticsStreamEventType["UserPropertiesEvent"] = 5] = "UserPropertiesEvent";
16
+ DbxAnalyticsStreamEventType[DbxAnalyticsStreamEventType["NewUserEvent"] = 2] = "NewUserEvent";
17
+ DbxAnalyticsStreamEventType[DbxAnalyticsStreamEventType["UserLoginEvent"] = 3] = "UserLoginEvent";
18
+ DbxAnalyticsStreamEventType[DbxAnalyticsStreamEventType["UserLogoutEvent"] = 4] = "UserLogoutEvent";
19
+ DbxAnalyticsStreamEventType[DbxAnalyticsStreamEventType["UserPropertiesEvent"] = 5] = "UserPropertiesEvent";
20
20
  // Events
21
- AnalyticsStreamEventType[AnalyticsStreamEventType["Event"] = 6] = "Event";
22
- })(AnalyticsStreamEventType || (AnalyticsStreamEventType = {}));
21
+ DbxAnalyticsStreamEventType[DbxAnalyticsStreamEventType["Event"] = 6] = "Event";
22
+ })(DbxAnalyticsStreamEventType || (DbxAnalyticsStreamEventType = {}));
23
23
 
24
- class AnalyticsEventEmitterService {
24
+ class DbxAnalyticsEventEmitterService {
25
25
  }
26
- class AnalyticsEventStreamService {
26
+ class DbxAnalyticsEventStreamService {
27
27
  }
28
- class AnalyticsUserSource {
28
+ class DbxAnalyticsUserSource {
29
29
  }
30
- class AnalyticsServiceListener {
30
+ class DbxAnalyticsServiceListener {
31
31
  }
32
32
  /**
33
33
  * Abstract AnalyticsServiceListener implementation.
34
34
  */
35
- class AbstractAnalyticsServiceListener {
35
+ class AbstractDbxAnalyticsServiceListener {
36
36
  constructor() {
37
37
  this._sub = new SubscriptionObject();
38
38
  this._analytics = new BehaviorSubject(undefined);
@@ -53,13 +53,13 @@ class AbstractAnalyticsServiceListener {
53
53
  this._sub.destroy();
54
54
  }
55
55
  }
56
- class AnalyticsServiceConfiguration {
56
+ class DbxAnalyticsServiceConfiguration {
57
57
  constructor() {
58
58
  this.listeners = [];
59
59
  }
60
60
  }
61
- class AnalyticsStreamEventAnalyticsEventWrapper {
62
- constructor(event, type = AnalyticsStreamEventType.Event) {
61
+ class DbxAnalyticsStreamEventAnalyticsEventWrapper {
62
+ constructor(event, type = DbxAnalyticsStreamEventType.Event) {
63
63
  this.event = event;
64
64
  this.type = type;
65
65
  }
@@ -73,7 +73,7 @@ class AnalyticsStreamEventAnalyticsEventWrapper {
73
73
  /**
74
74
  * Primary analytics service that emits analytics events that components can listen to.
75
75
  */
76
- class AnalyticsService {
76
+ class DbxAnalyticsService {
77
77
  constructor(_config, userSource = _config.userSource) {
78
78
  this._config = _config;
79
79
  this._subject = new Subject();
@@ -107,30 +107,30 @@ class AnalyticsService {
107
107
  */
108
108
  sendNewUserEvent(user, data) {
109
109
  this.sendNextEvent({
110
- name: AnalyticsService.USER_REGISTRATION_EVENT_NAME,
110
+ name: DbxAnalyticsService.USER_REGISTRATION_EVENT_NAME,
111
111
  data
112
- }, AnalyticsStreamEventType.NewUserEvent, user);
112
+ }, DbxAnalyticsStreamEventType.NewUserEvent, user);
113
113
  }
114
114
  sendUserLoginEvent(user, data) {
115
115
  this.sendNextEvent({
116
- name: AnalyticsService.USER_LOGIN_EVENT_NAME,
116
+ name: DbxAnalyticsService.USER_LOGIN_EVENT_NAME,
117
117
  data
118
- }, AnalyticsStreamEventType.UserLoginEvent, user);
118
+ }, DbxAnalyticsStreamEventType.UserLoginEvent, user);
119
119
  }
120
120
  sendUserLogoutEvent(data, clearUser = true) {
121
121
  this.sendNextEvent({
122
- name: AnalyticsService.USER_LOGOUT_EVENT_NAME,
122
+ name: DbxAnalyticsService.USER_LOGOUT_EVENT_NAME,
123
123
  data
124
- }, AnalyticsStreamEventType.UserLogoutEvent);
124
+ }, DbxAnalyticsStreamEventType.UserLogoutEvent);
125
125
  if (clearUser) {
126
126
  this.setUser(undefined);
127
127
  }
128
128
  }
129
129
  sendUserPropertiesEvent(user, data) {
130
130
  this.sendNextEvent({
131
- name: AnalyticsService.USER_PROPERTIES_EVENT_NAME,
131
+ name: DbxAnalyticsService.USER_PROPERTIES_EVENT_NAME,
132
132
  data
133
- }, AnalyticsStreamEventType.UserPropertiesEvent, user);
133
+ }, DbxAnalyticsStreamEventType.UserPropertiesEvent, user);
134
134
  }
135
135
  sendEventData(name, data) {
136
136
  return this.sendEvent({
@@ -141,15 +141,15 @@ class AnalyticsService {
141
141
  sendEventType(eventType) {
142
142
  this.sendNextEvent({
143
143
  name: eventType
144
- }, AnalyticsStreamEventType.Event);
144
+ }, DbxAnalyticsStreamEventType.Event);
145
145
  }
146
146
  sendEvent(event) {
147
- this.sendNextEvent(event, AnalyticsStreamEventType.Event);
147
+ this.sendNextEvent(event, DbxAnalyticsStreamEventType.Event);
148
148
  }
149
149
  sendPageView(page) {
150
150
  this.sendNextEvent({
151
151
  name: page
152
- }, AnalyticsStreamEventType.PageView);
152
+ }, DbxAnalyticsStreamEventType.PageView);
153
153
  }
154
154
  sendNextEvent(event = {}, type, userOverride) {
155
155
  this.user$.pipe(first()).subscribe((analyticsUser) => {
@@ -159,7 +159,7 @@ class AnalyticsService {
159
159
  });
160
160
  }
161
161
  nextEvent(event, type) {
162
- const wrapper = new AnalyticsStreamEventAnalyticsEventWrapper(event, type);
162
+ const wrapper = new DbxAnalyticsStreamEventAnalyticsEventWrapper(event, type);
163
163
  this._subject.next(wrapper);
164
164
  }
165
165
  // MARK: Internal
@@ -177,32 +177,33 @@ class AnalyticsService {
177
177
  console.log('AnalyticsService: Log analytics events enabled.');
178
178
  // Create a new subscription
179
179
  this._loggerSub.subscription = this._subject.subscribe((x) => {
180
- console.log(`AnalyticsService: Analytics Event - ${AnalyticsStreamEventType[x.type]} User: ${x.userId} Data: ${JSON.stringify(x.event)}.`);
180
+ console.log(`AnalyticsService: Analytics Event - ${DbxAnalyticsStreamEventType[x.type]} User: ${x.userId} Data: ${JSON.stringify(x.event)}.`);
181
181
  });
182
182
  }
183
183
  this._userSourceSub.subscription = this.user$.subscribe(() => {
184
- this.sendNextEvent({}, AnalyticsStreamEventType.UserChange);
184
+ this.sendNextEvent({}, DbxAnalyticsStreamEventType.UserChange);
185
185
  });
186
186
  }
187
187
  destroy() {
188
+ this._subject.complete();
188
189
  this._userSourceSub.destroy();
189
190
  this._loggerSub.destroy();
190
191
  }
191
192
  }
192
193
  // TODO: Make these configurable.
193
- AnalyticsService.USER_REGISTRATION_EVENT_NAME = 'User Registered';
194
- AnalyticsService.USER_LOGIN_EVENT_NAME = 'User Login';
195
- AnalyticsService.USER_LOGOUT_EVENT_NAME = 'User Logout';
196
- AnalyticsService.USER_PROPERTIES_EVENT_NAME = 'User Properties';
197
- AnalyticsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AnalyticsService, deps: [{ token: AnalyticsServiceConfiguration }, { token: AnalyticsUserSource, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
198
- AnalyticsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AnalyticsService });
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AnalyticsService, decorators: [{
194
+ DbxAnalyticsService.USER_REGISTRATION_EVENT_NAME = 'User Registered';
195
+ DbxAnalyticsService.USER_LOGIN_EVENT_NAME = 'User Login';
196
+ DbxAnalyticsService.USER_LOGOUT_EVENT_NAME = 'User Logout';
197
+ DbxAnalyticsService.USER_PROPERTIES_EVENT_NAME = 'User Properties';
198
+ DbxAnalyticsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsService, deps: [{ token: DbxAnalyticsServiceConfiguration }, { token: DbxAnalyticsUserSource, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
199
+ DbxAnalyticsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsService });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsService, decorators: [{
200
201
  type: Injectable
201
- }], ctorParameters: function () { return [{ type: AnalyticsServiceConfiguration }, { type: undefined, decorators: [{
202
+ }], ctorParameters: function () { return [{ type: DbxAnalyticsServiceConfiguration }, { type: undefined, decorators: [{
202
203
  type: Optional
203
204
  }, {
204
205
  type: Inject,
205
- args: [AnalyticsUserSource]
206
+ args: [DbxAnalyticsUserSource]
206
207
  }] }]; } });
207
208
 
208
209
  var DbxActionAnalyticsTriggerType;
@@ -259,26 +260,26 @@ class DbxActionAnalyticsDirective extends AbstractSubscriptionDirective {
259
260
  });
260
261
  }
261
262
  }
262
- DbxActionAnalyticsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxActionAnalyticsDirective, deps: [{ token: i1.ActionContextStoreSourceInstance, host: true }, { token: AnalyticsService }], target: i0.ɵɵFactoryTarget.Directive });
263
- DbxActionAnalyticsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: DbxActionAnalyticsDirective, selector: "[dbxActionAnalytics]", inputs: { config: ["dbxActionAnalytics", "config"] }, usesInheritance: true, ngImport: i0 });
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxActionAnalyticsDirective, decorators: [{
263
+ DbxActionAnalyticsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxActionAnalyticsDirective, deps: [{ token: i1.DbxActionContextStoreSourceInstance, host: true }, { token: DbxAnalyticsService }], target: i0.ɵɵFactoryTarget.Directive });
264
+ DbxActionAnalyticsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxActionAnalyticsDirective, selector: "[dbxActionAnalytics]", inputs: { config: ["dbxActionAnalytics", "config"] }, usesInheritance: true, ngImport: i0 });
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxActionAnalyticsDirective, decorators: [{
265
266
  type: Directive,
266
267
  args: [{
267
268
  selector: '[dbxActionAnalytics]',
268
269
  }]
269
- }], ctorParameters: function () { return [{ type: i1.ActionContextStoreSourceInstance, decorators: [{
270
+ }], ctorParameters: function () { return [{ type: i1.DbxActionContextStoreSourceInstance, decorators: [{
270
271
  type: Host
271
- }] }, { type: AnalyticsService }]; }, propDecorators: { config: [{
272
+ }] }, { type: DbxAnalyticsService }]; }, propDecorators: { config: [{
272
273
  type: Input,
273
274
  args: ['dbxActionAnalytics']
274
275
  }] } });
275
276
 
276
- class AnalyticsActionModule {
277
+ class DbxAnalyticsActionModule {
277
278
  }
278
- AnalyticsActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AnalyticsActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
279
- AnalyticsActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AnalyticsActionModule, declarations: [DbxActionAnalyticsDirective], exports: [DbxActionAnalyticsDirective] });
280
- AnalyticsActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AnalyticsActionModule });
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AnalyticsActionModule, decorators: [{
279
+ DbxAnalyticsActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
280
+ DbxAnalyticsActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsActionModule, declarations: [DbxActionAnalyticsDirective], exports: [DbxActionAnalyticsDirective] });
281
+ DbxAnalyticsActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsActionModule });
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsActionModule, decorators: [{
282
283
  type: NgModule,
283
284
  args: [{
284
285
  declarations: [
@@ -298,20 +299,20 @@ class DbxAnalyticsModule {
298
299
  // Configuration
299
300
  options.analyticsConfigurationProvider,
300
301
  // Service
301
- AnalyticsService
302
+ DbxAnalyticsService
302
303
  ]
303
304
  };
304
305
  }
305
306
  }
306
- DbxAnalyticsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxAnalyticsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
307
- DbxAnalyticsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxAnalyticsModule });
308
- DbxAnalyticsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxAnalyticsModule });
309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxAnalyticsModule, decorators: [{
307
+ DbxAnalyticsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
308
+ DbxAnalyticsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsModule });
309
+ DbxAnalyticsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsModule });
310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsModule, decorators: [{
310
311
  type: NgModule
311
312
  }] });
312
313
 
313
- const PRELOAD_SEGMENT_TOKEN = new InjectionToken('PreLoadSegmentService');
314
- class SegmentApiServiceConfig {
314
+ const PRELOAD_SEGMENT_TOKEN = new InjectionToken('DbxAnalyticsSegmentApiServicePreload');
315
+ class DbxAnalyticsSegmentApiServiceConfig {
315
316
  constructor(writeKey) {
316
317
  this.writeKey = writeKey;
317
318
  this.logging = true;
@@ -323,9 +324,9 @@ class SegmentApiServiceConfig {
323
324
  *
324
325
  * This requires some setup in index.html.
325
326
  */
326
- class SegmentApiService extends AbstractAsyncWindowLoadedService {
327
+ class DbxAnalyticsSegmentApiService extends AbstractAsyncWindowLoadedService {
327
328
  constructor(_config, preload = true) {
328
- super(SegmentApiService.SEGMENT_API_WINDOW_KEY, undefined, 'Segment', preload);
329
+ super(DbxAnalyticsSegmentApiService.SEGMENT_API_WINDOW_KEY, undefined, 'Segment', preload);
329
330
  this._config = _config;
330
331
  }
331
332
  get config() {
@@ -345,7 +346,7 @@ class SegmentApiService extends AbstractAsyncWindowLoadedService {
345
346
  // Wait for the service to ready itself.
346
347
  service.ready(() => {
347
348
  // Segment changes itself or rather the target, and the previous initial target is ignored after.
348
- const segment = window[SegmentApiService.SEGMENT_API_WINDOW_KEY];
349
+ const segment = window[DbxAnalyticsSegmentApiService.SEGMENT_API_WINDOW_KEY];
349
350
  resolve(segment);
350
351
  });
351
352
  }
@@ -356,21 +357,21 @@ class SegmentApiService extends AbstractAsyncWindowLoadedService {
356
357
  });
357
358
  }
358
359
  }
359
- SegmentApiService.SEGMENT_API_WINDOW_KEY = 'analytics';
360
- SegmentApiService.SEGMENT_READY_KEY = 'SegmentReady';
361
- SegmentApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentApiService, deps: [{ token: SegmentApiServiceConfig }, { token: PRELOAD_SEGMENT_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
362
- SegmentApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentApiService });
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentApiService, decorators: [{
360
+ DbxAnalyticsSegmentApiService.SEGMENT_API_WINDOW_KEY = 'analytics';
361
+ DbxAnalyticsSegmentApiService.SEGMENT_READY_KEY = 'SegmentReady';
362
+ DbxAnalyticsSegmentApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentApiService, deps: [{ token: DbxAnalyticsSegmentApiServiceConfig }, { token: PRELOAD_SEGMENT_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
363
+ DbxAnalyticsSegmentApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentApiService });
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentApiService, decorators: [{
364
365
  type: Injectable
365
- }], ctorParameters: function () { return [{ type: SegmentApiServiceConfig }, { type: undefined, decorators: [{
366
+ }], ctorParameters: function () { return [{ type: DbxAnalyticsSegmentApiServiceConfig }, { type: undefined, decorators: [{
366
367
  type: Inject,
367
368
  args: [PRELOAD_SEGMENT_TOKEN]
368
369
  }] }]; } });
369
370
 
370
371
  /**
371
- * AnalyticsServiceListener adapter for Segment.
372
+ * DbxAnalyticsServiceListener adapter for Segment.
372
373
  */
373
- class SegmentAnalyticsListenerService extends AbstractAnalyticsServiceListener {
374
+ class DbxAnalyticsSegmentServiceListener extends AbstractDbxAnalyticsServiceListener {
374
375
  constructor(_segmentApi) {
375
376
  super();
376
377
  this._segmentApi = _segmentApi;
@@ -393,20 +394,20 @@ class SegmentAnalyticsListenerService extends AbstractAnalyticsServiceListener {
393
394
  }
394
395
  handleStreamEvent(api, streamEvent) {
395
396
  switch (streamEvent.type) {
396
- case AnalyticsStreamEventType.NewUserEvent:
397
+ case DbxAnalyticsStreamEventType.NewUserEvent:
397
398
  this.updateWithNewUserEvent(api, streamEvent);
398
399
  break;
399
- case AnalyticsStreamEventType.UserLoginEvent:
400
- case AnalyticsStreamEventType.Event:
400
+ case DbxAnalyticsStreamEventType.UserLoginEvent:
401
+ case DbxAnalyticsStreamEventType.Event:
401
402
  this.updateWithEvent(api, streamEvent);
402
403
  break;
403
- case AnalyticsStreamEventType.UserLogoutEvent:
404
+ case DbxAnalyticsStreamEventType.UserLogoutEvent:
404
405
  this.changeUser(api, undefined);
405
406
  break;
406
- case AnalyticsStreamEventType.PageView:
407
+ case DbxAnalyticsStreamEventType.PageView:
407
408
  api.page();
408
409
  break;
409
- case AnalyticsStreamEventType.UserChange:
410
+ case DbxAnalyticsStreamEventType.UserChange:
410
411
  this.changeUser(api, streamEvent.user);
411
412
  break;
412
413
  }
@@ -447,30 +448,30 @@ class SegmentAnalyticsListenerService extends AbstractAnalyticsServiceListener {
447
448
  }
448
449
  }
449
450
  }
450
- SegmentAnalyticsListenerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentAnalyticsListenerService, deps: [{ token: SegmentApiService }], target: i0.ɵɵFactoryTarget.Injectable });
451
- SegmentAnalyticsListenerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentAnalyticsListenerService });
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentAnalyticsListenerService, decorators: [{
451
+ DbxAnalyticsSegmentServiceListener.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentServiceListener, deps: [{ token: DbxAnalyticsSegmentApiService }], target: i0.ɵɵFactoryTarget.Injectable });
452
+ DbxAnalyticsSegmentServiceListener.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentServiceListener });
453
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentServiceListener, decorators: [{
453
454
  type: Injectable
454
- }], ctorParameters: function () { return [{ type: SegmentApiService }]; } });
455
+ }], ctorParameters: function () { return [{ type: DbxAnalyticsSegmentApiService }]; } });
455
456
 
456
- class SegmentModule {
457
+ class DbxAnalyticsSegmentModule {
457
458
  static forRoot(preloadService) {
458
459
  return {
459
- ngModule: SegmentModule,
460
+ ngModule: DbxAnalyticsSegmentModule,
460
461
  providers: [
461
462
  {
462
463
  provide: PRELOAD_SEGMENT_TOKEN,
463
464
  useValue: preloadService
464
465
  },
465
- SegmentApiService
466
+ DbxAnalyticsSegmentApiService
466
467
  ]
467
468
  };
468
469
  }
469
470
  }
470
- SegmentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
471
- SegmentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentModule });
472
- SegmentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentModule, imports: [[]] });
473
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SegmentModule, decorators: [{
471
+ DbxAnalyticsSegmentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
472
+ DbxAnalyticsSegmentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentModule });
473
+ DbxAnalyticsSegmentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentModule, imports: [[]] });
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxAnalyticsSegmentModule, decorators: [{
474
475
  type: NgModule,
475
476
  args: [{
476
477
  declarations: [],
@@ -482,5 +483,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
482
483
  * Generated bundle index. Do not edit.
483
484
  */
484
485
 
485
- export { AbstractAnalyticsServiceListener, AnalyticsActionModule, AnalyticsEventEmitterService, AnalyticsEventStreamService, AnalyticsService, AnalyticsServiceConfiguration, AnalyticsServiceListener, AnalyticsStreamEventAnalyticsEventWrapper, AnalyticsStreamEventType, AnalyticsUserSource, DbxActionAnalyticsDirective, DbxActionAnalyticsTriggerType, DbxAnalyticsModule, PRELOAD_SEGMENT_TOKEN, SegmentAnalyticsListenerService, SegmentApiService, SegmentApiServiceConfig, SegmentModule };
486
+ export { AbstractDbxAnalyticsServiceListener, DbxActionAnalyticsDirective, DbxActionAnalyticsTriggerType, DbxAnalyticsActionModule, DbxAnalyticsEventEmitterService, DbxAnalyticsEventStreamService, DbxAnalyticsModule, DbxAnalyticsSegmentApiService, DbxAnalyticsSegmentApiServiceConfig, DbxAnalyticsSegmentModule, DbxAnalyticsSegmentServiceListener, DbxAnalyticsService, DbxAnalyticsServiceConfiguration, DbxAnalyticsServiceListener, DbxAnalyticsStreamEventAnalyticsEventWrapper, DbxAnalyticsStreamEventType, DbxAnalyticsUserSource, PRELOAD_SEGMENT_TOKEN };
486
487
  //# sourceMappingURL=dereekb-dbx-analytics.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dereekb-dbx-analytics.mjs","sources":["../../../../packages/dbx-analytics/src/lib/analytics/analytics.stream.ts","../../../../packages/dbx-analytics/src/lib/analytics/analytics.service.ts","../../../../packages/dbx-analytics/src/lib/action/analytics.action.directive.ts","../../../../packages/dbx-analytics/src/lib/action/analytics.action.module.ts","../../../../packages/dbx-analytics/src/lib/analytics/analytics.module.ts","../../../../packages/dbx-analytics/src/lib/providers/segment/segment.service.ts","../../../../packages/dbx-analytics/src/lib/providers/segment/segment.listener.service.ts","../../../../packages/dbx-analytics/src/lib/providers/segment/segment.module.ts","../../../../packages/dbx-analytics/src/dereekb-dbx-analytics.ts"],"sourcesContent":["import { Maybe } from \"@dereekb/util\";\nimport { AnalyticsUser, UserAnalyticsEvent, AnalyticsUserId } from \"./analytics\";\n\nexport enum AnalyticsStreamEventType {\n\n PageView,\n UserChange,\n\n // User Events\n NewUserEvent,\n UserLoginEvent,\n UserLogoutEvent,\n UserPropertiesEvent,\n\n // Events\n Event\n\n}\n\nexport interface AnalyticsStreamEvent {\n readonly type: AnalyticsStreamEventType;\n readonly user?: Maybe<AnalyticsUser>;\n readonly event?: UserAnalyticsEvent;\n readonly userId?: AnalyticsUserId;\n}\n","import { Observable, Subject, BehaviorSubject, of, Subscription } from 'rxjs';\nimport { filter, first, shareReplay, switchMap } from 'rxjs/operators';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { SubscriptionObject, filterMaybe } from '@dereekb/rxjs';\nimport { AnalyticsEvent, AnalyticsEventData, AnalyticsEventName, AnalyticsUser, NewUserAnalyticsEventData, UserAnalyticsEvent } from './analytics';\nimport { AnalyticsStreamEvent, AnalyticsStreamEventType } from './analytics.stream';\nimport { Maybe, Destroyable } from '@dereekb/util';\n\nexport abstract class AnalyticsEventEmitterService {\n abstract sendNewUserEvent(user: AnalyticsUser, data: NewUserAnalyticsEventData): void;\n abstract sendUserLoginEvent(user: AnalyticsUser, data?: AnalyticsEventData): void;\n abstract sendUserLogoutEvent(data?: AnalyticsEventData): void;\n abstract sendUserPropertiesEvent(user: AnalyticsUser, data?: AnalyticsEventData): void;\n abstract sendEventData(name: AnalyticsEventName, data?: AnalyticsEventData): void;\n abstract sendEvent(event: AnalyticsEvent): void;\n abstract sendPageView(page?: string): void;\n}\n\nexport abstract class AnalyticsEventStreamService {\n abstract readonly events$: Observable<AnalyticsStreamEvent>;\n}\n\nexport abstract class AnalyticsUserSource {\n abstract readonly analyticsUser$: Observable<Maybe<AnalyticsUser>>;\n}\n\nexport abstract class AnalyticsServiceListener {\n public abstract listenToService(service: AnalyticsService): void;\n}\n\n/**\n * Abstract AnalyticsServiceListener implementation.\n */\nexport abstract class AbstractAnalyticsServiceListener implements AnalyticsServiceListener, Destroyable {\n\n private _sub = new SubscriptionObject();\n protected _analytics = new BehaviorSubject<Maybe<AnalyticsService>>(undefined);\n\n readonly analytics$ = this._analytics.pipe(filterMaybe(), shareReplay(1));\n readonly analyticsEvents$ = this.analytics$.pipe(switchMap(x => x.events$), shareReplay(1));\n\n // MARK: AnalyticsServiceListener\n listenToService(service: AnalyticsService): void {\n this._analytics.next(service);\n const sub = this._initializeServiceSubscription();\n\n if (sub !== false) {\n this._sub.subscription = sub;\n }\n }\n\n protected abstract _initializeServiceSubscription(): Subscription | false;\n\n // MARK: Destroy\n destroy(): void {\n this._analytics.complete();\n this._sub.destroy();\n }\n\n}\n\nexport abstract class AnalyticsServiceConfiguration {\n listeners: AnalyticsServiceListener[] = [];\n isProduction?: boolean;\n logEvents?: boolean;\n userSource?: AnalyticsUserSource;\n}\n\nexport class AnalyticsStreamEventAnalyticsEventWrapper implements AnalyticsStreamEvent {\n\n constructor(public readonly event: UserAnalyticsEvent, public readonly type: AnalyticsStreamEventType = AnalyticsStreamEventType.Event) { }\n\n public get user(): Maybe<AnalyticsUser> {\n return this.event.user;\n }\n\n public get userId(): string | undefined {\n return (this.user) ? this.user.user : undefined;\n }\n\n}\n\n/**\n * Primary analytics service that emits analytics events that components can listen to.\n */\n@Injectable()\nexport class AnalyticsService implements AnalyticsEventStreamService, AnalyticsEventEmitterService, Destroyable {\n\n // TODO: Make these configurable.\n\n static readonly USER_REGISTRATION_EVENT_NAME = 'User Registered';\n static readonly USER_LOGIN_EVENT_NAME = 'User Login';\n static readonly USER_LOGOUT_EVENT_NAME = 'User Logout';\n static readonly USER_PROPERTIES_EVENT_NAME = 'User Properties';\n\n private _subject = new Subject<AnalyticsStreamEvent>();\n readonly events$ = this._subject.asObservable();\n\n private _userSource = new BehaviorSubject<Maybe<AnalyticsUserSource>>(undefined);\n readonly user$ = this._userSource.pipe(switchMap(x => (x) ? x.analyticsUser$ : of(undefined)), shareReplay(1));\n\n private _userSourceSub = new SubscriptionObject();\n private _loggerSub = new SubscriptionObject();\n\n constructor(\n private _config: AnalyticsServiceConfiguration,\n @Optional() @Inject(AnalyticsUserSource) userSource: Maybe<AnalyticsUserSource> = _config.userSource\n ) {\n this._init();\n\n if (userSource) {\n this.setUserSource(userSource);\n }\n }\n\n // MARK: Source\n /**\n * Sets the user directly.\n */\n public setUser(user: Maybe<AnalyticsUser>): void {\n let source: Maybe<AnalyticsUserSource>;\n\n if (user) {\n source = { analyticsUser$: of(user) };\n }\n\n this._userSource.next(source);\n }\n\n public setUserSource(source: AnalyticsUserSource): void {\n this._userSource.next(source);\n }\n\n // MARK: AnalyticsEventEmitterService\n /**\n * Sends an event.\n */\n public sendNewUserEvent(user: AnalyticsUser, data: NewUserAnalyticsEventData): void {\n this.sendNextEvent({\n name: AnalyticsService.USER_REGISTRATION_EVENT_NAME,\n data\n }, AnalyticsStreamEventType.NewUserEvent, user);\n }\n\n public sendUserLoginEvent(user: AnalyticsUser, data?: AnalyticsEventData): void {\n this.sendNextEvent({\n name: AnalyticsService.USER_LOGIN_EVENT_NAME,\n data\n }, AnalyticsStreamEventType.UserLoginEvent, user);\n }\n\n public sendUserLogoutEvent(data?: AnalyticsEventData, clearUser = true): void {\n this.sendNextEvent({\n name: AnalyticsService.USER_LOGOUT_EVENT_NAME,\n data\n }, AnalyticsStreamEventType.UserLogoutEvent);\n\n if (clearUser) {\n this.setUser(undefined);\n }\n }\n\n public sendUserPropertiesEvent(user: AnalyticsUser, data?: AnalyticsEventData): void {\n this.sendNextEvent({\n name: AnalyticsService.USER_PROPERTIES_EVENT_NAME,\n data\n }, AnalyticsStreamEventType.UserPropertiesEvent, user);\n }\n\n public sendEventData(name: AnalyticsEventName, data?: AnalyticsEventData): void {\n return this.sendEvent({\n name,\n data\n });\n }\n\n public sendEventType(eventType: AnalyticsEventName): void {\n this.sendNextEvent({\n name: eventType\n }, AnalyticsStreamEventType.Event);\n }\n\n public sendEvent(event: AnalyticsEvent): void {\n this.sendNextEvent(event, AnalyticsStreamEventType.Event);\n }\n\n public sendPageView(page?: string): void {\n this.sendNextEvent({\n name: page\n }, AnalyticsStreamEventType.PageView);\n }\n\n protected sendNextEvent(event: AnalyticsEvent = {}, type: AnalyticsStreamEventType, userOverride?: AnalyticsUser): void {\n this.user$.pipe(first()).subscribe((analyticsUser) => {\n const user: Maybe<AnalyticsUser> = (userOverride != null) ? userOverride : analyticsUser;\n const analyticsEvent: UserAnalyticsEvent = { ...event, user };\n this.nextEvent(analyticsEvent, type);\n });\n }\n\n protected nextEvent(event: UserAnalyticsEvent, type: AnalyticsStreamEventType): void {\n const wrapper = new AnalyticsStreamEventAnalyticsEventWrapper(event, type);\n this._subject.next(wrapper);\n }\n\n // MARK: Internal\n private _init(): void {\n\n if (this._config.isProduction) {\n // Initialize listeners.\n this._config.listeners.forEach((listener) => {\n listener.listenToService(this);\n });\n } else {\n console.warn('AnalyticsService: Analytics not in production mode. All analytics events are ignored.');\n }\n\n if (this._config.logEvents || !this._config.isProduction) {\n console.log('AnalyticsService: Log analytics events enabled.');\n\n // Create a new subscription\n this._loggerSub.subscription = this._subject.subscribe((x) => {\n console.log(`AnalyticsService: Analytics Event - ${AnalyticsStreamEventType[x.type]} User: ${x.userId} Data: ${JSON.stringify(x.event)}.`);\n });\n }\n\n this._userSourceSub.subscription = this.user$.subscribe(() => {\n this.sendNextEvent({}, AnalyticsStreamEventType.UserChange);\n });\n }\n\n destroy() {\n this._userSourceSub.destroy();\n this._loggerSub.destroy();\n }\n\n}\n","import { filterMaybe } from '@dereekb/rxjs';\nimport { switchMap, tap, shareReplay } from 'rxjs/operators';\nimport { Host, Directive, Input, OnInit, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, merge, Observable, of } from 'rxjs';\nimport { ActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { AnalyticsService } from '../analytics/analytics.service';\nimport { Maybe, ReadableError } from '@dereekb/util';\n\nexport enum DbxActionAnalyticsTriggerType {\n TRIGGER,\n READY,\n SUCCESS,\n ERROR\n}\n\nexport interface DbxActionAnalyticsConfig<T = any, O = any> {\n onTriggered: (service: AnalyticsService) => void;\n onReady: (service: AnalyticsService, value: T) => void;\n onSuccess: (service: AnalyticsService, value: Maybe<O>) => void;\n onError: (service: AnalyticsService, error: Maybe<ReadableError>) => void;\n}\n\n/**\n * Used to listen to an ActionContext and send analytical events based on action events.\n */\n@Directive({\n selector: '[dbxActionAnalytics]',\n})\nexport class DbxActionAnalyticsDirective<T> extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n\n private _config = new BehaviorSubject<Maybe<DbxActionAnalyticsConfig>>(undefined);\n readonly config$ = this._config.pipe(filterMaybe(), shareReplay(1));\n\n @Input('dbxActionAnalytics')\n get config(): Maybe<DbxActionAnalyticsConfig> {\n return this._config.value;\n }\n\n set config(config: Maybe<DbxActionAnalyticsConfig>) {\n this._config.next(config);\n }\n\n constructor(\n @Host() readonly source: ActionContextStoreSourceInstance,\n readonly analyticsService: AnalyticsService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.config$.pipe(\n switchMap(({ onTriggered, onReady, onSuccess, onError }) => {\n const triggerObs: Observable<any>[] = [];\n\n if (onTriggered) {\n triggerObs.push(this.source.triggered$.pipe(\n tap(() => onTriggered(this.analyticsService))\n ));\n }\n\n if (onReady) {\n triggerObs.push(this.source.valueReady$.pipe(\n tap((value) => onReady(this.analyticsService, value))\n ));\n }\n\n if (onSuccess) {\n triggerObs.push(this.source.success$.pipe(\n tap((result) => onSuccess(this.analyticsService, result))\n ));\n }\n\n if (onError) {\n triggerObs.push(this.source.error$.pipe(\n tap((error) => onError(this.analyticsService, error))\n ));\n }\n\n if (triggerObs.length) {\n return merge(triggerObs);\n } else {\n return of();\n }\n })\n ).subscribe();\n }\n\n override ngOnDestroy(): void {\n this.source.lockSet.onNextUnlock(() => {\n super.ngOnDestroy();\n this._config.complete();\n });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { DbxActionAnalyticsDirective } from './analytics.action.directive';\n\n@NgModule({\n declarations: [\n DbxActionAnalyticsDirective\n ],\n exports: [\n DbxActionAnalyticsDirective\n ]\n})\nexport class AnalyticsActionModule { }\n","import { NgModule, ModuleWithProviders, Provider } from '@angular/core';\nimport { AnalyticsService } from './analytics.service';\n\n\nexport interface DbxAnalyticsModuleOptions {\n\n /**\n * Provides a AnalyticsServiceConfiguration value.\n */\n analyticsConfigurationProvider: Provider;\n\n}\n\n@NgModule()\nexport class DbxAnalyticsModule {\n\n static forRoot(options: DbxAnalyticsModuleOptions): ModuleWithProviders<DbxAnalyticsModule> {\n return {\n ngModule: DbxAnalyticsModule,\n providers: [\n // Configuration\n options.analyticsConfigurationProvider,\n // Service\n AnalyticsService\n ]\n };\n }\n\n}\n","import { Injectable, InjectionToken, Inject } from '@angular/core';\nimport { AbstractAsyncWindowLoadedService } from '@dereekb/browser';\nimport { poll } from '@dereekb/util';\n\nexport const PRELOAD_SEGMENT_TOKEN = new InjectionToken<string>('PreLoadSegmentService');\n\nexport class SegmentApiServiceConfig {\n logging = true;\n active = true;\n constructor(public writeKey: string) { }\n}\n\n\n/**\n * Segment API Service used for waiting/retrieving the segment API from window when initialized.\n *\n * This requires some setup in index.html.\n */\n@Injectable()\nexport class SegmentApiService extends AbstractAsyncWindowLoadedService<SegmentAnalytics.AnalyticsJS> {\n\n static readonly SEGMENT_API_WINDOW_KEY = 'analytics';\n static readonly SEGMENT_READY_KEY = 'SegmentReady';\n\n constructor(private _config: SegmentApiServiceConfig, @Inject(PRELOAD_SEGMENT_TOKEN) preload: boolean = true) {\n super(SegmentApiService.SEGMENT_API_WINDOW_KEY, undefined, 'Segment', preload);\n }\n\n get config(): SegmentApiServiceConfig {\n return this._config;\n }\n\n protected override _prepareCompleteLoadingService(): Promise<void> {\n return poll({\n // poll until analytics.invoked is true.\n check: () => Boolean((window.analytics as any)?.invoked),\n timesToGiveup: 100\n });\n }\n\n protected override _initService(service: SegmentAnalytics.AnalyticsJS): Promise<SegmentAnalytics.AnalyticsJS> {\n return new Promise((resolve, reject) => {\n try {\n service.load(this._config.writeKey); // Initialize Segment\n\n // Wait for the service to ready itself.\n service.ready(() => {\n // Segment changes itself or rather the target, and the previous initial target is ignored after.\n const segment: SegmentAnalytics.AnalyticsJS = window[SegmentApiService.SEGMENT_API_WINDOW_KEY];\n resolve(segment);\n });\n } catch (e) {\n console.log('Failed to init segment: ' + e);\n reject(e);\n }\n });\n\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { combineLatest } from 'rxjs';\nimport { AbstractAnalyticsServiceListener, AnalyticsStreamEvent, AnalyticsStreamEventType, AnalyticsUser } from '../../analytics';\nimport { SegmentApiService } from './segment.service';\n\n/**\n * AnalyticsServiceListener adapter for Segment.\n */\n@Injectable()\nexport class SegmentAnalyticsListenerService extends AbstractAnalyticsServiceListener {\n\n constructor(private _segmentApi: SegmentApiService) {\n super();\n\n if (this._segmentApi.config.logging) {\n console.log('SegmentAnalyticsListenerService: Segment is logging events.');\n }\n\n if (this._segmentApi.config.active) {\n console.log('SegmentAnalyticsListenerService: Segment is disabled from sending events to the server.');\n }\n }\n\n protected _initializeServiceSubscription() {\n return combineLatest([this._segmentApi.service$, this.analyticsEvents$]).subscribe(\n ([segment, streamEvent]: [SegmentAnalytics.AnalyticsJS, AnalyticsStreamEvent]) => {\n if (this._segmentApi.config.logging) {\n console.log('Segment Listener Logging Event: ', streamEvent);\n }\n\n if (this._segmentApi.config.active) {\n this.handleStreamEvent(segment, streamEvent);\n }\n });\n }\n\n protected handleStreamEvent(api: SegmentAnalytics.AnalyticsJS, streamEvent: AnalyticsStreamEvent): void {\n switch (streamEvent.type) {\n case AnalyticsStreamEventType.NewUserEvent:\n this.updateWithNewUserEvent(api, streamEvent);\n break;\n case AnalyticsStreamEventType.UserLoginEvent:\n case AnalyticsStreamEventType.Event:\n this.updateWithEvent(api, streamEvent);\n break;\n case AnalyticsStreamEventType.UserLogoutEvent:\n this.changeUser(api, undefined);\n break;\n case AnalyticsStreamEventType.PageView:\n api.page();\n break;\n case AnalyticsStreamEventType.UserChange:\n this.changeUser(api, streamEvent.user);\n break;\n }\n }\n\n protected updateWithNewUserEvent(api: SegmentAnalytics.AnalyticsJS, streamEvent: AnalyticsStreamEvent): void {\n this.changeUser(api, streamEvent.user);\n }\n\n protected updateWithEvent(api: SegmentAnalytics.AnalyticsJS, streamEvent: AnalyticsStreamEvent, name?: string): void {\n const event = streamEvent.event;\n const eventName = name || event?.name;\n\n if (eventName) {\n const value = event?.value\n const data = event?.data;\n\n api.track(eventName, {\n ...(value != null) ? {\n value\n } : undefined,\n ...data\n }, {}, () => {\n if (this._segmentApi.config.logging) {\n console.log('Segment track success.');\n }\n });\n }\n }\n\n private changeUser(api: SegmentAnalytics.AnalyticsJS, user: Maybe<AnalyticsUser>): void {\n if (user) {\n api.identify(user.user, {\n ...user.properties\n }, {}, () => {\n if (this._segmentApi.config.logging) {\n console.log('Segment identify success.');\n }\n });\n } else {\n api.reset();\n }\n }\n\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { PRELOAD_SEGMENT_TOKEN, SegmentApiService } from './segment.service';\n\n@NgModule({\n declarations: [],\n imports: []\n})\nexport class SegmentModule {\n\n static forRoot(preloadService?: boolean): ModuleWithProviders<SegmentModule> {\n return {\n ngModule: SegmentModule,\n providers: [\n {\n provide: PRELOAD_SEGMENT_TOKEN,\n useValue: preloadService\n },\n SegmentApiService\n ]\n };\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dereekb-dbx-analytics.mjs","sources":["../../../../packages/dbx-analytics/src/lib/analytics/analytics.stream.ts","../../../../packages/dbx-analytics/src/lib/analytics/analytics.service.ts","../../../../packages/dbx-analytics/src/lib/action/analytics.action.directive.ts","../../../../packages/dbx-analytics/src/lib/action/analytics.action.module.ts","../../../../packages/dbx-analytics/src/lib/analytics/analytics.module.ts","../../../../packages/dbx-analytics/src/lib/providers/segment/segment.service.ts","../../../../packages/dbx-analytics/src/lib/providers/segment/segment.listener.service.ts","../../../../packages/dbx-analytics/src/lib/providers/segment/segment.module.ts","../../../../packages/dbx-analytics/src/dereekb-dbx-analytics.ts"],"sourcesContent":["import { Maybe } from \"@dereekb/util\";\nimport { DbxAnalyticsUser, DbxUserAnalyticsEvent, DbxAnalyticsUserId } from \"./analytics\";\n\nexport enum DbxAnalyticsStreamEventType {\n\n PageView,\n UserChange,\n\n // User Events\n NewUserEvent,\n UserLoginEvent,\n UserLogoutEvent,\n UserPropertiesEvent,\n\n // Events\n Event\n\n}\n\nexport interface DbxAnalyticsStreamEvent {\n readonly type: DbxAnalyticsStreamEventType;\n readonly user?: Maybe<DbxAnalyticsUser>;\n readonly event?: DbxUserAnalyticsEvent;\n readonly userId?: DbxAnalyticsUserId;\n}\n","import { Observable, Subject, BehaviorSubject, of, Subscription } from 'rxjs';\nimport { filter, first, shareReplay, switchMap } from 'rxjs/operators';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { SubscriptionObject, filterMaybe } from '@dereekb/rxjs';\nimport { DbxAnalyticsEvent, DbxAnalyticsEventData, DbxAnalyticsEventName, DbxAnalyticsUser, NewUserAnalyticsEventData, DbxUserAnalyticsEvent } from './analytics';\nimport { DbxAnalyticsStreamEvent, DbxAnalyticsStreamEventType } from './analytics.stream';\nimport { Maybe, Destroyable } from '@dereekb/util';\n\nexport abstract class DbxAnalyticsEventEmitterService {\n abstract sendNewUserEvent(user: DbxAnalyticsUser, data: NewUserAnalyticsEventData): void;\n abstract sendUserLoginEvent(user: DbxAnalyticsUser, data?: DbxAnalyticsEventData): void;\n abstract sendUserLogoutEvent(data?: DbxAnalyticsEventData): void;\n abstract sendUserPropertiesEvent(user: DbxAnalyticsUser, data?: DbxAnalyticsEventData): void;\n abstract sendEventData(name: DbxAnalyticsEventName, data?: DbxAnalyticsEventData): void;\n abstract sendEvent(event: DbxAnalyticsEvent): void;\n abstract sendPageView(page?: string): void;\n}\n\nexport abstract class DbxAnalyticsEventStreamService {\n abstract readonly events$: Observable<DbxAnalyticsStreamEvent>;\n}\n\nexport abstract class DbxAnalyticsUserSource {\n abstract readonly analyticsUser$: Observable<Maybe<DbxAnalyticsUser>>;\n}\n\nexport abstract class DbxAnalyticsServiceListener {\n public abstract listenToService(service: DbxAnalyticsService): void;\n}\n\n/**\n * Abstract AnalyticsServiceListener implementation.\n */\nexport abstract class AbstractDbxAnalyticsServiceListener implements DbxAnalyticsServiceListener, Destroyable {\n\n private _sub = new SubscriptionObject();\n protected _analytics = new BehaviorSubject<Maybe<DbxAnalyticsService>>(undefined);\n\n readonly analytics$ = this._analytics.pipe(filterMaybe(), shareReplay(1));\n readonly analyticsEvents$ = this.analytics$.pipe(switchMap(x => x.events$), shareReplay(1));\n\n // MARK: AnalyticsServiceListener\n listenToService(service: DbxAnalyticsService): void {\n this._analytics.next(service);\n const sub = this._initializeServiceSubscription();\n\n if (sub !== false) {\n this._sub.subscription = sub;\n }\n }\n\n protected abstract _initializeServiceSubscription(): Subscription | false;\n\n // MARK: Destroy\n destroy(): void {\n this._analytics.complete();\n this._sub.destroy();\n }\n\n}\n\nexport abstract class DbxAnalyticsServiceConfiguration {\n listeners: DbxAnalyticsServiceListener[] = [];\n isProduction?: boolean;\n logEvents?: boolean;\n userSource?: DbxAnalyticsUserSource;\n}\n\nexport class DbxAnalyticsStreamEventAnalyticsEventWrapper implements DbxAnalyticsStreamEvent {\n\n constructor(public readonly event: DbxUserAnalyticsEvent, public readonly type: DbxAnalyticsStreamEventType = DbxAnalyticsStreamEventType.Event) { }\n\n public get user(): Maybe<DbxAnalyticsUser> {\n return this.event.user;\n }\n\n public get userId(): string | undefined {\n return (this.user) ? this.user.user : undefined;\n }\n\n}\n\n/**\n * Primary analytics service that emits analytics events that components can listen to.\n */\n@Injectable()\nexport class DbxAnalyticsService implements DbxAnalyticsEventStreamService, DbxAnalyticsEventEmitterService, Destroyable {\n\n // TODO: Make these configurable.\n\n static readonly USER_REGISTRATION_EVENT_NAME = 'User Registered';\n static readonly USER_LOGIN_EVENT_NAME = 'User Login';\n static readonly USER_LOGOUT_EVENT_NAME = 'User Logout';\n static readonly USER_PROPERTIES_EVENT_NAME = 'User Properties';\n\n private _subject = new Subject<DbxAnalyticsStreamEvent>();\n readonly events$ = this._subject.asObservable();\n\n private _userSource = new BehaviorSubject<Maybe<DbxAnalyticsUserSource>>(undefined);\n readonly user$ = this._userSource.pipe(switchMap(x => (x) ? x.analyticsUser$ : of(undefined)), shareReplay(1));\n\n private _userSourceSub = new SubscriptionObject();\n private _loggerSub = new SubscriptionObject();\n\n constructor(\n private _config: DbxAnalyticsServiceConfiguration,\n @Optional() @Inject(DbxAnalyticsUserSource) userSource: Maybe<DbxAnalyticsUserSource> = _config.userSource\n ) {\n this._init();\n\n if (userSource) {\n this.setUserSource(userSource);\n }\n }\n\n // MARK: Source\n /**\n * Sets the user directly.\n */\n public setUser(user: Maybe<DbxAnalyticsUser>): void {\n let source: Maybe<DbxAnalyticsUserSource>;\n\n if (user) {\n source = { analyticsUser$: of(user) };\n }\n\n this._userSource.next(source);\n }\n\n public setUserSource(source: DbxAnalyticsUserSource): void {\n this._userSource.next(source);\n }\n\n // MARK: AnalyticsEventEmitterService\n /**\n * Sends an event.\n */\n public sendNewUserEvent(user: DbxAnalyticsUser, data: NewUserAnalyticsEventData): void {\n this.sendNextEvent({\n name: DbxAnalyticsService.USER_REGISTRATION_EVENT_NAME,\n data\n }, DbxAnalyticsStreamEventType.NewUserEvent, user);\n }\n\n public sendUserLoginEvent(user: DbxAnalyticsUser, data?: DbxAnalyticsEventData): void {\n this.sendNextEvent({\n name: DbxAnalyticsService.USER_LOGIN_EVENT_NAME,\n data\n }, DbxAnalyticsStreamEventType.UserLoginEvent, user);\n }\n\n public sendUserLogoutEvent(data?: DbxAnalyticsEventData, clearUser = true): void {\n this.sendNextEvent({\n name: DbxAnalyticsService.USER_LOGOUT_EVENT_NAME,\n data\n }, DbxAnalyticsStreamEventType.UserLogoutEvent);\n\n if (clearUser) {\n this.setUser(undefined);\n }\n }\n\n public sendUserPropertiesEvent(user: DbxAnalyticsUser, data?: DbxAnalyticsEventData): void {\n this.sendNextEvent({\n name: DbxAnalyticsService.USER_PROPERTIES_EVENT_NAME,\n data\n }, DbxAnalyticsStreamEventType.UserPropertiesEvent, user);\n }\n\n public sendEventData(name: DbxAnalyticsEventName, data?: DbxAnalyticsEventData): void {\n return this.sendEvent({\n name,\n data\n });\n }\n\n public sendEventType(eventType: DbxAnalyticsEventName): void {\n this.sendNextEvent({\n name: eventType\n }, DbxAnalyticsStreamEventType.Event);\n }\n\n public sendEvent(event: DbxAnalyticsEvent): void {\n this.sendNextEvent(event, DbxAnalyticsStreamEventType.Event);\n }\n\n public sendPageView(page?: string): void {\n this.sendNextEvent({\n name: page\n }, DbxAnalyticsStreamEventType.PageView);\n }\n\n protected sendNextEvent(event: DbxAnalyticsEvent = {}, type: DbxAnalyticsStreamEventType, userOverride?: DbxAnalyticsUser): void {\n this.user$.pipe(first()).subscribe((analyticsUser) => {\n const user: Maybe<DbxAnalyticsUser> = (userOverride != null) ? userOverride : analyticsUser;\n const analyticsEvent: DbxUserAnalyticsEvent = { ...event, user };\n this.nextEvent(analyticsEvent, type);\n });\n }\n\n protected nextEvent(event: DbxUserAnalyticsEvent, type: DbxAnalyticsStreamEventType): void {\n const wrapper = new DbxAnalyticsStreamEventAnalyticsEventWrapper(event, type);\n this._subject.next(wrapper);\n }\n\n // MARK: Internal\n private _init(): void {\n\n if (this._config.isProduction) {\n // Initialize listeners.\n this._config.listeners.forEach((listener) => {\n listener.listenToService(this);\n });\n } else {\n console.warn('AnalyticsService: Analytics not in production mode. All analytics events are ignored.');\n }\n\n if (this._config.logEvents || !this._config.isProduction) {\n console.log('AnalyticsService: Log analytics events enabled.');\n\n // Create a new subscription\n this._loggerSub.subscription = this._subject.subscribe((x) => {\n console.log(`AnalyticsService: Analytics Event - ${DbxAnalyticsStreamEventType[x.type]} User: ${x.userId} Data: ${JSON.stringify(x.event)}.`);\n });\n }\n\n this._userSourceSub.subscription = this.user$.subscribe(() => {\n this.sendNextEvent({}, DbxAnalyticsStreamEventType.UserChange);\n });\n }\n\n destroy() {\n this._subject.complete();\n this._userSourceSub.destroy();\n this._loggerSub.destroy();\n }\n\n}\n","import { filterMaybe } from '@dereekb/rxjs';\nimport { switchMap, tap, shareReplay } from 'rxjs/operators';\nimport { Host, Directive, Input, OnInit, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, merge, Observable, of } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxAnalyticsService } from '../analytics/analytics.service';\nimport { Maybe, ReadableError } from '@dereekb/util';\n\nexport enum DbxActionAnalyticsTriggerType {\n TRIGGER,\n READY,\n SUCCESS,\n ERROR\n}\n\nexport interface DbxActionAnalyticsConfig<T = any, O = any> {\n onTriggered: (service: DbxAnalyticsService) => void;\n onReady: (service: DbxAnalyticsService, value: T) => void;\n onSuccess: (service: DbxAnalyticsService, value: Maybe<O>) => void;\n onError: (service: DbxAnalyticsService, error: Maybe<ReadableError>) => void;\n}\n\n/**\n * Used to listen to an ActionContext and send analytical events based on action events.\n */\n@Directive({\n selector: '[dbxActionAnalytics]',\n})\nexport class DbxActionAnalyticsDirective<T> extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n\n private _config = new BehaviorSubject<Maybe<DbxActionAnalyticsConfig>>(undefined);\n readonly config$ = this._config.pipe(filterMaybe(), shareReplay(1));\n\n @Input('dbxActionAnalytics')\n get config(): Maybe<DbxActionAnalyticsConfig> {\n return this._config.value;\n }\n\n set config(config: Maybe<DbxActionAnalyticsConfig>) {\n this._config.next(config);\n }\n\n constructor(\n @Host() readonly source: DbxActionContextStoreSourceInstance,\n readonly analyticsService: DbxAnalyticsService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.config$.pipe(\n switchMap(({ onTriggered, onReady, onSuccess, onError }) => {\n const triggerObs: Observable<any>[] = [];\n\n if (onTriggered) {\n triggerObs.push(this.source.triggered$.pipe(\n tap(() => onTriggered(this.analyticsService))\n ));\n }\n\n if (onReady) {\n triggerObs.push(this.source.valueReady$.pipe(\n tap((value) => onReady(this.analyticsService, value))\n ));\n }\n\n if (onSuccess) {\n triggerObs.push(this.source.success$.pipe(\n tap((result) => onSuccess(this.analyticsService, result))\n ));\n }\n\n if (onError) {\n triggerObs.push(this.source.error$.pipe(\n tap((error) => onError(this.analyticsService, error))\n ));\n }\n\n if (triggerObs.length) {\n return merge(triggerObs);\n } else {\n return of();\n }\n })\n ).subscribe();\n }\n\n override ngOnDestroy(): void {\n this.source.lockSet.onNextUnlock(() => {\n super.ngOnDestroy();\n this._config.complete();\n });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { DbxActionAnalyticsDirective } from './analytics.action.directive';\n\n@NgModule({\n declarations: [\n DbxActionAnalyticsDirective\n ],\n exports: [\n DbxActionAnalyticsDirective\n ]\n})\nexport class DbxAnalyticsActionModule { }\n","import { NgModule, ModuleWithProviders, Provider } from '@angular/core';\nimport { DbxAnalyticsService } from './analytics.service';\n\n\nexport interface DbxAnalyticsModuleOptions {\n\n /**\n * Provides a AnalyticsServiceConfiguration value.\n */\n analyticsConfigurationProvider: Provider;\n\n}\n\n@NgModule()\nexport class DbxAnalyticsModule {\n\n static forRoot(options: DbxAnalyticsModuleOptions): ModuleWithProviders<DbxAnalyticsModule> {\n return {\n ngModule: DbxAnalyticsModule,\n providers: [\n // Configuration\n options.analyticsConfigurationProvider,\n // Service\n DbxAnalyticsService\n ]\n };\n }\n\n}\n","import { Injectable, InjectionToken, Inject } from '@angular/core';\nimport { AbstractAsyncWindowLoadedService } from '@dereekb/browser';\nimport { poll } from '@dereekb/util';\n\nexport const PRELOAD_SEGMENT_TOKEN = new InjectionToken<string>('DbxAnalyticsSegmentApiServicePreload');\n\nexport class DbxAnalyticsSegmentApiServiceConfig {\n logging = true;\n active = true;\n constructor(public writeKey: string) { }\n}\n\n\n/**\n * Segment API Service used for waiting/retrieving the segment API from window when initialized.\n *\n * This requires some setup in index.html.\n */\n@Injectable()\nexport class DbxAnalyticsSegmentApiService extends AbstractAsyncWindowLoadedService<SegmentAnalytics.AnalyticsJS> {\n\n static readonly SEGMENT_API_WINDOW_KEY = 'analytics';\n static readonly SEGMENT_READY_KEY = 'SegmentReady';\n\n constructor(private _config: DbxAnalyticsSegmentApiServiceConfig, @Inject(PRELOAD_SEGMENT_TOKEN) preload: boolean = true) {\n super(DbxAnalyticsSegmentApiService.SEGMENT_API_WINDOW_KEY, undefined, 'Segment', preload);\n }\n\n get config(): DbxAnalyticsSegmentApiServiceConfig {\n return this._config;\n }\n\n protected override _prepareCompleteLoadingService(): Promise<void> {\n return poll({\n // poll until analytics.invoked is true.\n check: () => Boolean((window.analytics as any)?.invoked),\n timesToGiveup: 100\n });\n }\n\n protected override _initService(service: SegmentAnalytics.AnalyticsJS): Promise<SegmentAnalytics.AnalyticsJS> {\n return new Promise((resolve, reject) => {\n try {\n service.load(this._config.writeKey); // Initialize Segment\n\n // Wait for the service to ready itself.\n service.ready(() => {\n // Segment changes itself or rather the target, and the previous initial target is ignored after.\n const segment: SegmentAnalytics.AnalyticsJS = window[DbxAnalyticsSegmentApiService.SEGMENT_API_WINDOW_KEY];\n resolve(segment);\n });\n } catch (e) {\n console.log('Failed to init segment: ' + e);\n reject(e);\n }\n });\n\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { combineLatest } from 'rxjs';\nimport { AbstractDbxAnalyticsServiceListener, DbxAnalyticsStreamEvent, DbxAnalyticsStreamEventType, DbxAnalyticsUser } from '../../analytics';\nimport { DbxAnalyticsSegmentApiService } from './segment.service';\n\n/**\n * DbxAnalyticsServiceListener adapter for Segment.\n */\n@Injectable()\nexport class DbxAnalyticsSegmentServiceListener extends AbstractDbxAnalyticsServiceListener {\n\n constructor(private _segmentApi: DbxAnalyticsSegmentApiService) {\n super();\n\n if (this._segmentApi.config.logging) {\n console.log('SegmentAnalyticsListenerService: Segment is logging events.');\n }\n\n if (this._segmentApi.config.active) {\n console.log('SegmentAnalyticsListenerService: Segment is disabled from sending events to the server.');\n }\n }\n\n protected _initializeServiceSubscription() {\n return combineLatest([this._segmentApi.service$, this.analyticsEvents$]).subscribe(\n ([segment, streamEvent]: [SegmentAnalytics.AnalyticsJS, DbxAnalyticsStreamEvent]) => {\n if (this._segmentApi.config.logging) {\n console.log('Segment Listener Logging Event: ', streamEvent);\n }\n\n if (this._segmentApi.config.active) {\n this.handleStreamEvent(segment, streamEvent);\n }\n });\n }\n\n protected handleStreamEvent(api: SegmentAnalytics.AnalyticsJS, streamEvent: DbxAnalyticsStreamEvent): void {\n switch (streamEvent.type) {\n case DbxAnalyticsStreamEventType.NewUserEvent:\n this.updateWithNewUserEvent(api, streamEvent);\n break;\n case DbxAnalyticsStreamEventType.UserLoginEvent:\n case DbxAnalyticsStreamEventType.Event:\n this.updateWithEvent(api, streamEvent);\n break;\n case DbxAnalyticsStreamEventType.UserLogoutEvent:\n this.changeUser(api, undefined);\n break;\n case DbxAnalyticsStreamEventType.PageView:\n api.page();\n break;\n case DbxAnalyticsStreamEventType.UserChange:\n this.changeUser(api, streamEvent.user);\n break;\n }\n }\n\n protected updateWithNewUserEvent(api: SegmentAnalytics.AnalyticsJS, streamEvent: DbxAnalyticsStreamEvent): void {\n this.changeUser(api, streamEvent.user);\n }\n\n protected updateWithEvent(api: SegmentAnalytics.AnalyticsJS, streamEvent: DbxAnalyticsStreamEvent, name?: string): void {\n const event = streamEvent.event;\n const eventName = name || event?.name;\n\n if (eventName) {\n const value = event?.value\n const data = event?.data;\n\n api.track(eventName, {\n ...(value != null) ? {\n value\n } : undefined,\n ...data\n }, {}, () => {\n if (this._segmentApi.config.logging) {\n console.log('Segment track success.');\n }\n });\n }\n }\n\n private changeUser(api: SegmentAnalytics.AnalyticsJS, user: Maybe<DbxAnalyticsUser>): void {\n if (user) {\n api.identify(user.user, {\n ...user.properties\n }, {}, () => {\n if (this._segmentApi.config.logging) {\n console.log('Segment identify success.');\n }\n });\n } else {\n api.reset();\n }\n }\n\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { PRELOAD_SEGMENT_TOKEN, DbxAnalyticsSegmentApiService } from './segment.service';\n\n@NgModule({\n declarations: [],\n imports: []\n})\nexport class DbxAnalyticsSegmentModule {\n\n static forRoot(preloadService?: boolean): ModuleWithProviders<DbxAnalyticsSegmentModule> {\n return {\n ngModule: DbxAnalyticsSegmentModule,\n providers: [\n {\n provide: PRELOAD_SEGMENT_TOKEN,\n useValue: preloadService\n },\n DbxAnalyticsSegmentApiService\n ]\n };\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { OnInit, OnDestroy } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
- import { ActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
- import { AnalyticsService } from '../analytics/analytics.service';
3
+ import { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
+ import { DbxAnalyticsService } from '../analytics/analytics.service';
5
5
  import { Maybe, ReadableError } from '@dereekb/util';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare enum DbxActionAnalyticsTriggerType {
@@ -11,22 +11,22 @@ export declare enum DbxActionAnalyticsTriggerType {
11
11
  ERROR = 3
12
12
  }
13
13
  export interface DbxActionAnalyticsConfig<T = any, O = any> {
14
- onTriggered: (service: AnalyticsService) => void;
15
- onReady: (service: AnalyticsService, value: T) => void;
16
- onSuccess: (service: AnalyticsService, value: Maybe<O>) => void;
17
- onError: (service: AnalyticsService, error: Maybe<ReadableError>) => void;
14
+ onTriggered: (service: DbxAnalyticsService) => void;
15
+ onReady: (service: DbxAnalyticsService, value: T) => void;
16
+ onSuccess: (service: DbxAnalyticsService, value: Maybe<O>) => void;
17
+ onError: (service: DbxAnalyticsService, error: Maybe<ReadableError>) => void;
18
18
  }
19
19
  /**
20
20
  * Used to listen to an ActionContext and send analytical events based on action events.
21
21
  */
22
22
  export declare class DbxActionAnalyticsDirective<T> extends AbstractSubscriptionDirective implements OnInit, OnDestroy {
23
- readonly source: ActionContextStoreSourceInstance;
24
- readonly analyticsService: AnalyticsService;
23
+ readonly source: DbxActionContextStoreSourceInstance;
24
+ readonly analyticsService: DbxAnalyticsService;
25
25
  private _config;
26
26
  readonly config$: Observable<DbxActionAnalyticsConfig<any, any>>;
27
27
  get config(): Maybe<DbxActionAnalyticsConfig>;
28
28
  set config(config: Maybe<DbxActionAnalyticsConfig>);
29
- constructor(source: ActionContextStoreSourceInstance, analyticsService: AnalyticsService);
29
+ constructor(source: DbxActionContextStoreSourceInstance, analyticsService: DbxAnalyticsService);
30
30
  ngOnInit(): void;
31
31
  ngOnDestroy(): void;
32
32
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxActionAnalyticsDirective<any>, [{ host: true; }, null]>;
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./analytics.action.directive";
3
- export declare class AnalyticsActionModule {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsActionModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<AnalyticsActionModule, [typeof i1.DbxActionAnalyticsDirective], never, [typeof i1.DbxActionAnalyticsDirective]>;
6
- static ɵinj: i0.ɵɵInjectorDeclaration<AnalyticsActionModule>;
3
+ export declare class DbxAnalyticsActionModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxAnalyticsActionModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxAnalyticsActionModule, [typeof i1.DbxActionAnalyticsDirective], never, [typeof i1.DbxActionAnalyticsDirective]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxAnalyticsActionModule>;
7
7
  }
@@ -1,24 +1,24 @@
1
1
  import { Maybe, PrimativeKey } from "@dereekb/util";
2
- export declare type AnalyticsEventName = string;
3
- export declare type AnalyticsUserId = string;
4
- export interface AnalyticsUser {
5
- readonly user: AnalyticsUserId;
2
+ export declare type DbxAnalyticsEventName = string;
3
+ export declare type DbxAnalyticsUserId = string;
4
+ export interface DbxAnalyticsUser {
5
+ readonly user: DbxAnalyticsUserId;
6
6
  readonly properties?: {
7
7
  readonly [key: string]: PrimativeKey | boolean;
8
8
  };
9
9
  }
10
- export interface AnalyticsEventData {
10
+ export interface DbxAnalyticsEventData {
11
11
  readonly [key: string]: PrimativeKey | boolean;
12
12
  }
13
- export declare type NewUserRegistrationMethod = 'facebook' | 'google' | 'email' | string;
14
- export interface NewUserAnalyticsEventData extends AnalyticsEventData {
15
- method: NewUserRegistrationMethod;
16
- }
17
- export interface AnalyticsEvent {
18
- readonly name?: AnalyticsEventName;
13
+ export interface DbxAnalyticsEvent {
14
+ readonly name?: DbxAnalyticsEventName;
19
15
  readonly value?: number;
20
- readonly data?: AnalyticsEventData;
16
+ readonly data?: DbxAnalyticsEventData;
21
17
  }
22
- export interface UserAnalyticsEvent extends AnalyticsEvent {
23
- readonly user?: Maybe<AnalyticsUser>;
18
+ export interface DbxUserAnalyticsEvent extends DbxAnalyticsEvent {
19
+ readonly user?: Maybe<DbxAnalyticsUser>;
20
+ }
21
+ export declare type NewUserRegistrationMethod = 'facebook' | 'google' | 'email' | string;
22
+ export interface NewUserAnalyticsEventData extends DbxAnalyticsEventData {
23
+ method: NewUserRegistrationMethod;
24
24
  }