@dereekb/dbx-analytics 9.25.16 → 10.0.1
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.
- package/{esm2020 → esm2022}/lib/action/analytics.action.directive.mjs +10 -10
- package/{esm2020 → esm2022}/lib/action/analytics.action.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/analytics/analytics.module.mjs +5 -5
- package/esm2022/lib/analytics/analytics.service.mjs +191 -0
- package/{esm2020 → esm2022}/lib/providers/segment/segment.listener.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/providers/segment/segment.module.mjs +5 -5
- package/esm2022/lib/providers/segment/segment.service.mjs +61 -0
- package/{fesm2020 → fesm2022}/dereekb-dbx-analytics.mjs +37 -37
- package/{fesm2020 → fesm2022}/dereekb-dbx-analytics.mjs.map +1 -1
- package/lib/action/analytics.action.directive.d.ts +1 -1
- package/lib/analytics/analytics.d.ts +3 -3
- package/package.json +12 -17
- package/esm2020/lib/analytics/analytics.service.mjs +0 -191
- package/esm2020/lib/providers/segment/segment.service.mjs +0 -61
- package/fesm2015/dereekb-dbx-analytics.mjs +0 -481
- package/fesm2015/dereekb-dbx-analytics.mjs.map +0 -1
- /package/{esm2020 → esm2022}/dereekb-dbx-analytics.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/action/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/analytics/analytics.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/analytics/analytics.stream.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/analytics/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/providers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/providers/segment/index.mjs +0 -0
|
@@ -10,6 +10,12 @@ import * as i2 from "../analytics/analytics.service";
|
|
|
10
10
|
* Used to listen to an ActionContext and send analytical events based on action events.
|
|
11
11
|
*/
|
|
12
12
|
export class DbxActionAnalyticsDirective extends AbstractSubscriptionDirective {
|
|
13
|
+
get config() {
|
|
14
|
+
return this._config.value;
|
|
15
|
+
}
|
|
16
|
+
set config(config) {
|
|
17
|
+
this._config.next(config);
|
|
18
|
+
}
|
|
13
19
|
constructor(source, analyticsService) {
|
|
14
20
|
super();
|
|
15
21
|
this.source = source;
|
|
@@ -17,12 +23,6 @@ export class DbxActionAnalyticsDirective extends AbstractSubscriptionDirective {
|
|
|
17
23
|
this._config = new BehaviorSubject(undefined);
|
|
18
24
|
this.config$ = this._config.pipe(filterMaybe(), shareReplay(1));
|
|
19
25
|
}
|
|
20
|
-
get config() {
|
|
21
|
-
return this._config.value;
|
|
22
|
-
}
|
|
23
|
-
set config(config) {
|
|
24
|
-
this._config.next(config);
|
|
25
|
-
}
|
|
26
26
|
ngOnInit() {
|
|
27
27
|
this.sub = this.config$
|
|
28
28
|
.pipe(switchMap(({ onTriggered, onReady, onSuccess, onError }) => {
|
|
@@ -54,10 +54,10 @@ export class DbxActionAnalyticsDirective extends AbstractSubscriptionDirective {
|
|
|
54
54
|
this._config.complete();
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionAnalyticsDirective, deps: [{ token: i1.DbxActionContextStoreSourceInstance, host: true }, { token: i2.DbxAnalyticsService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxActionAnalyticsDirective, selector: "[dbxActionAnalytics]", inputs: { config: ["dbxActionAnalytics", "config"] }, usesInheritance: true, ngImport: i0 }); }
|
|
57
59
|
}
|
|
58
|
-
|
|
59
|
-
DbxActionAnalyticsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxActionAnalyticsDirective, selector: "[dbxActionAnalytics]", inputs: { config: ["dbxActionAnalytics", "config"] }, usesInheritance: true, ngImport: i0 });
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxActionAnalyticsDirective, decorators: [{
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionAnalyticsDirective, decorators: [{
|
|
61
61
|
type: Directive,
|
|
62
62
|
args: [{
|
|
63
63
|
selector: '[dbxActionAnalytics]'
|
|
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
68
68
|
type: Input,
|
|
69
69
|
args: ['dbxActionAnalytics']
|
|
70
70
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLmFjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtYW5hbHl0aWNzL3NyYy9saWIvYWN0aW9uL2FuYWx5dGljcy5hY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFhckU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQWtDLFNBQVEsNkJBQTZCO0lBSWxGLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLE1BQTZDO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUE2QixNQUFpRCxFQUFXLGdCQUFxQztRQUM1SCxLQUFLLEVBQUUsQ0FBQztRQURtQixXQUFNLEdBQU4sTUFBTSxDQUEyQztRQUFXLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFadEgsWUFBTyxHQUFHLElBQUksZUFBZSxDQUF3QyxTQUFTLENBQUMsQ0FBQztRQUMvRSxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFhcEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ3BCLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDekQsTUFBTSxVQUFVLEdBQTBCLEVBQUUsQ0FBQztZQUU3QyxJQUFJLFdBQVcsRUFBRTtnQkFDZixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdGO1lBRUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RHO1lBRUQsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZHO1lBRUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsVUFBVSxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JCLFdBQVcsRUFBRSxFQUNiLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUN0RCxDQUNGLENBQUM7YUFDSDtZQUVELElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtnQkFDckIsT0FBTyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsRUFBRSxDQUFDO2FBQ2I7UUFDSCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDcEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTNEVSwyQkFBMkI7bUdBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7MEJBY2MsSUFBSTs4RUFSYixNQUFNO3NCQURULEtBQUs7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyTWF5YmUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwLCBzaGFyZVJlcGxheSwgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhvc3QsIERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSwgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vYW5hbHl0aWNzL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IE1heWJlLCBSZWFkYWJsZUVycm9yIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogRGJ4QWN0aW9uQW5hbHl0aWNzRGlyZWN0aXZlIGNvbmZpZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEFjdGlvbkFuYWx5dGljc0NvbmZpZzxUID0gdW5rbm93biwgTyA9IHVua25vd24+IHtcbiAgb25UcmlnZ2VyZWQ/OiAoc2VydmljZTogRGJ4QW5hbHl0aWNzU2VydmljZSkgPT4gdm9pZDtcbiAgb25SZWFkeT86IChzZXJ2aWNlOiBEYnhBbmFseXRpY3NTZXJ2aWNlLCB2YWx1ZTogVCkgPT4gdm9pZDtcbiAgb25TdWNjZXNzPzogKHNlcnZpY2U6IERieEFuYWx5dGljc1NlcnZpY2UsIHZhbHVlOiBNYXliZTxPPikgPT4gdm9pZDtcbiAgb25FcnJvcj86IChzZXJ2aWNlOiBEYnhBbmFseXRpY3NTZXJ2aWNlLCBlcnJvcjogTWF5YmU8UmVhZGFibGVFcnJvcj4pID0+IHZvaWQ7XG59XG5cbi8qKlxuICogVXNlZCB0byBsaXN0ZW4gdG8gYW4gQWN0aW9uQ29udGV4dCBhbmQgc2VuZCBhbmFseXRpY2FsIGV2ZW50cyBiYXNlZCBvbiBhY3Rpb24gZXZlbnRzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uQW5hbHl0aWNzXSdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QWN0aW9uQW5hbHl0aWNzRGlyZWN0aXZlPFQsIE8+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2NvbmZpZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RGJ4QWN0aW9uQW5hbHl0aWNzQ29uZmlnPFQsIE8+Pj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgY29uZmlnJCA9IHRoaXMuX2NvbmZpZy5waXBlKGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICBASW5wdXQoJ2RieEFjdGlvbkFuYWx5dGljcycpXG4gIGdldCBjb25maWcoKTogTWF5YmU8RGJ4QWN0aW9uQW5hbHl0aWNzQ29uZmlnPFQsIE8+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb25maWcoY29uZmlnOiBNYXliZTxEYnhBY3Rpb25BbmFseXRpY3NDb25maWc8VCwgTz4+KSB7XG4gICAgdGhpcy5fY29uZmlnLm5leHQoY29uZmlnKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcmVhZG9ubHkgc291cmNlOiBEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZTxULCBPPiwgcmVhZG9ubHkgYW5hbHl0aWNzU2VydmljZTogRGJ4QW5hbHl0aWNzU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuY29uZmlnJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoeyBvblRyaWdnZXJlZCwgb25SZWFkeSwgb25TdWNjZXNzLCBvbkVycm9yIH0pID0+IHtcbiAgICAgICAgICBjb25zdCB0cmlnZ2VyT2JzOiBPYnNlcnZhYmxlPHVua25vd24+W10gPSBbXTtcblxuICAgICAgICAgIGlmIChvblRyaWdnZXJlZCkge1xuICAgICAgICAgICAgdHJpZ2dlck9icy5wdXNoKHRoaXMuc291cmNlLnRyaWdnZXJlZCQucGlwZSh0YXAoKCkgPT4gb25UcmlnZ2VyZWQodGhpcy5hbmFseXRpY3NTZXJ2aWNlKSkpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAob25SZWFkeSkge1xuICAgICAgICAgICAgdHJpZ2dlck9icy5wdXNoKHRoaXMuc291cmNlLnZhbHVlUmVhZHkkLnBpcGUodGFwKCh2YWx1ZSkgPT4gb25SZWFkeSh0aGlzLmFuYWx5dGljc1NlcnZpY2UsIHZhbHVlKSkpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAob25TdWNjZXNzKSB7XG4gICAgICAgICAgICB0cmlnZ2VyT2JzLnB1c2godGhpcy5zb3VyY2Uuc3VjY2VzcyQucGlwZSh0YXAoKHJlc3VsdCkgPT4gb25TdWNjZXNzKHRoaXMuYW5hbHl0aWNzU2VydmljZSwgcmVzdWx0KSkpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAob25FcnJvcikge1xuICAgICAgICAgICAgdHJpZ2dlck9icy5wdXNoKFxuICAgICAgICAgICAgICB0aGlzLnNvdXJjZS5lcnJvciQucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXJNYXliZSgpLFxuICAgICAgICAgICAgICAgIHRhcCgoZXJyb3IpID0+IG9uRXJyb3IodGhpcy5hbmFseXRpY3NTZXJ2aWNlLCBlcnJvcikpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRyaWdnZXJPYnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2UoLi4udHJpZ2dlck9icyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc291cmNlLmxvY2tTZXQub25OZXh0VW5sb2NrKCgpID0+IHtcbiAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICB0aGlzLl9jb25maWcuY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -2,15 +2,15 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { DbxActionAnalyticsDirective } from './analytics.action.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class DbxAnalyticsActionModule {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsActionModule, declarations: [DbxActionAnalyticsDirective], exports: [DbxActionAnalyticsDirective] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsActionModule }); }
|
|
5
8
|
}
|
|
6
|
-
|
|
7
|
-
DbxAnalyticsActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsActionModule, declarations: [DbxActionAnalyticsDirective], exports: [DbxActionAnalyticsDirective] });
|
|
8
|
-
DbxAnalyticsActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsActionModule });
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsActionModule, decorators: [{
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsActionModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
12
|
declarations: [DbxActionAnalyticsDirective],
|
|
13
13
|
exports: [DbxActionAnalyticsDirective]
|
|
14
14
|
}]
|
|
15
15
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLmFjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtYW5hbHl0aWNzL3NyYy9saWIvYWN0aW9uL2FuYWx5dGljcy5hY3Rpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBTTNFLE1BQU0sT0FBTyx3QkFBd0I7K0dBQXhCLHdCQUF3QjtnSEFBeEIsd0JBQXdCLGlCQUhwQiwyQkFBMkIsYUFDaEMsMkJBQTJCO2dIQUUxQix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhBY3Rpb25BbmFseXRpY3NEaXJlY3RpdmUgfSBmcm9tICcuL2FuYWx5dGljcy5hY3Rpb24uZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRGJ4QWN0aW9uQW5hbHl0aWNzRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0RieEFjdGlvbkFuYWx5dGljc0RpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4QW5hbHl0aWNzQWN0aW9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -13,11 +13,11 @@ export class DbxAnalyticsModule {
|
|
|
13
13
|
]
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsModule }); }
|
|
18
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsModule }); }
|
|
16
19
|
}
|
|
17
|
-
|
|
18
|
-
DbxAnalyticsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsModule });
|
|
19
|
-
DbxAnalyticsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsModule });
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsModule, decorators: [{
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsModule, decorators: [{
|
|
21
21
|
type: NgModule
|
|
22
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1hbmFseXRpY3Mvc3JjL2xpYi9hbmFseXRpY3MvYW5hbHl0aWNzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFVMUQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWtDO1FBQy9DLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVCxnQkFBZ0I7Z0JBQ2hCLE9BQU8sQ0FBQyw4QkFBOEI7Z0JBQ3RDLFVBQVU7Z0JBQ1YsbUJBQW1CO2FBQ3BCO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBWFUsa0JBQWtCO2dIQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4QW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vYW5hbHl0aWNzLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEFuYWx5dGljc01vZHVsZU9wdGlvbnMge1xuICAvKipcbiAgICogUHJvdmlkZXMgYSBBbmFseXRpY3NTZXJ2aWNlQ29uZmlndXJhdGlvbiB2YWx1ZS5cbiAgICovXG4gIGFuYWx5dGljc0NvbmZpZ3VyYXRpb25Qcm92aWRlcjogUHJvdmlkZXI7XG59XG5cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgRGJ4QW5hbHl0aWNzTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9uczogRGJ4QW5hbHl0aWNzTW9kdWxlT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGJ4QW5hbHl0aWNzTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBEYnhBbmFseXRpY3NNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLy8gQ29uZmlndXJhdGlvblxuICAgICAgICBvcHRpb25zLmFuYWx5dGljc0NvbmZpZ3VyYXRpb25Qcm92aWRlcixcbiAgICAgICAgLy8gU2VydmljZVxuICAgICAgICBEYnhBbmFseXRpY3NTZXJ2aWNlXG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Subject, BehaviorSubject, of, first, shareReplay, switchMap } from 'rxjs';
|
|
2
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
+
import { SubscriptionObject, filterMaybe } from '@dereekb/rxjs';
|
|
4
|
+
import { DbxAnalyticsStreamEventType } from './analytics.stream';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class DbxAnalyticsEventEmitterService {
|
|
7
|
+
}
|
|
8
|
+
export class DbxAnalyticsEventStreamService {
|
|
9
|
+
}
|
|
10
|
+
export class DbxAnalyticsUserSource {
|
|
11
|
+
}
|
|
12
|
+
export class DbxAnalyticsServiceListener {
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Abstract AnalyticsServiceListener implementation.
|
|
16
|
+
*/
|
|
17
|
+
export class AbstractDbxAnalyticsServiceListener {
|
|
18
|
+
constructor() {
|
|
19
|
+
this._sub = new SubscriptionObject();
|
|
20
|
+
this._analytics = new BehaviorSubject(undefined);
|
|
21
|
+
this.analytics$ = this._analytics.pipe(filterMaybe(), shareReplay(1));
|
|
22
|
+
this.analyticsEvents$ = this.analytics$.pipe(switchMap((x) => x.events$), shareReplay(1));
|
|
23
|
+
}
|
|
24
|
+
// MARK: AnalyticsServiceListener
|
|
25
|
+
listenToService(service) {
|
|
26
|
+
this._analytics.next(service);
|
|
27
|
+
const sub = this._initializeServiceSubscription();
|
|
28
|
+
if (sub !== false) {
|
|
29
|
+
this._sub.subscription = sub;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// MARK: Destroy
|
|
33
|
+
destroy() {
|
|
34
|
+
this._analytics.complete();
|
|
35
|
+
this._sub.destroy();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class DbxAnalyticsServiceConfiguration {
|
|
39
|
+
constructor() {
|
|
40
|
+
this.listeners = [];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class DbxAnalyticsStreamEventAnalyticsEventWrapper {
|
|
44
|
+
constructor(event, type = DbxAnalyticsStreamEventType.Event) {
|
|
45
|
+
this.event = event;
|
|
46
|
+
this.type = type;
|
|
47
|
+
}
|
|
48
|
+
get user() {
|
|
49
|
+
return this.event.user;
|
|
50
|
+
}
|
|
51
|
+
get userId() {
|
|
52
|
+
return this.user ? this.user.user : undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Primary analytics service that emits analytics events that components can listen to.
|
|
57
|
+
*/
|
|
58
|
+
export class DbxAnalyticsService {
|
|
59
|
+
// TODO: Make these configurable.
|
|
60
|
+
static { this.USER_REGISTRATION_EVENT_NAME = 'User Registered'; }
|
|
61
|
+
static { this.USER_LOGIN_EVENT_NAME = 'User Login'; }
|
|
62
|
+
static { this.USER_LOGOUT_EVENT_NAME = 'User Logout'; }
|
|
63
|
+
static { this.USER_PROPERTIES_EVENT_NAME = 'User Properties'; }
|
|
64
|
+
constructor(_config, userSource) {
|
|
65
|
+
this._config = _config;
|
|
66
|
+
this._subject = new Subject();
|
|
67
|
+
this.events$ = this._subject.asObservable();
|
|
68
|
+
this._userSource = new BehaviorSubject(undefined);
|
|
69
|
+
this.user$ = this._userSource.pipe(switchMap((x) => (x ? x.analyticsUser$ : of(undefined))), shareReplay(1));
|
|
70
|
+
this._userSourceSub = new SubscriptionObject();
|
|
71
|
+
this._loggerSub = new SubscriptionObject();
|
|
72
|
+
this._init();
|
|
73
|
+
userSource = userSource || _config.userSource;
|
|
74
|
+
if (userSource) {
|
|
75
|
+
this.setUserSource(userSource);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// MARK: Source
|
|
79
|
+
/**
|
|
80
|
+
* Sets the user directly.
|
|
81
|
+
*/
|
|
82
|
+
setUser(user) {
|
|
83
|
+
let source;
|
|
84
|
+
if (user) {
|
|
85
|
+
source = { analyticsUser$: of(user) };
|
|
86
|
+
}
|
|
87
|
+
this._userSource.next(source);
|
|
88
|
+
}
|
|
89
|
+
setUserSource(source) {
|
|
90
|
+
this._userSource.next(source);
|
|
91
|
+
}
|
|
92
|
+
// MARK: AnalyticsEventEmitterService
|
|
93
|
+
/**
|
|
94
|
+
* Sends an event.
|
|
95
|
+
*/
|
|
96
|
+
sendNewUserEvent(user, data) {
|
|
97
|
+
this.sendNextEvent({
|
|
98
|
+
name: DbxAnalyticsService.USER_REGISTRATION_EVENT_NAME,
|
|
99
|
+
data
|
|
100
|
+
}, DbxAnalyticsStreamEventType.NewUserEvent, user);
|
|
101
|
+
}
|
|
102
|
+
sendUserLoginEvent(user, data) {
|
|
103
|
+
this.sendNextEvent({
|
|
104
|
+
name: DbxAnalyticsService.USER_LOGIN_EVENT_NAME,
|
|
105
|
+
data
|
|
106
|
+
}, DbxAnalyticsStreamEventType.UserLoginEvent, user);
|
|
107
|
+
}
|
|
108
|
+
sendUserLogoutEvent(data, clearUser = true) {
|
|
109
|
+
this.sendNextEvent({
|
|
110
|
+
name: DbxAnalyticsService.USER_LOGOUT_EVENT_NAME,
|
|
111
|
+
data
|
|
112
|
+
}, DbxAnalyticsStreamEventType.UserLogoutEvent);
|
|
113
|
+
if (clearUser) {
|
|
114
|
+
this.setUser(undefined);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
sendUserPropertiesEvent(user, data) {
|
|
118
|
+
this.sendNextEvent({
|
|
119
|
+
name: DbxAnalyticsService.USER_PROPERTIES_EVENT_NAME,
|
|
120
|
+
data
|
|
121
|
+
}, DbxAnalyticsStreamEventType.UserPropertiesEvent, user);
|
|
122
|
+
}
|
|
123
|
+
sendEventData(name, data) {
|
|
124
|
+
return this.sendEvent({
|
|
125
|
+
name,
|
|
126
|
+
data
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
sendEventType(eventType) {
|
|
130
|
+
this.sendNextEvent({
|
|
131
|
+
name: eventType
|
|
132
|
+
}, DbxAnalyticsStreamEventType.Event);
|
|
133
|
+
}
|
|
134
|
+
sendEvent(event) {
|
|
135
|
+
this.sendNextEvent(event, DbxAnalyticsStreamEventType.Event);
|
|
136
|
+
}
|
|
137
|
+
sendPageView(page) {
|
|
138
|
+
this.sendNextEvent({
|
|
139
|
+
name: page
|
|
140
|
+
}, DbxAnalyticsStreamEventType.PageView);
|
|
141
|
+
}
|
|
142
|
+
sendNextEvent(event = {}, type, userOverride) {
|
|
143
|
+
this.user$.pipe(first()).subscribe((analyticsUser) => {
|
|
144
|
+
const user = userOverride != null ? userOverride : analyticsUser;
|
|
145
|
+
const analyticsEvent = { ...event, user };
|
|
146
|
+
this.nextEvent(analyticsEvent, type);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
nextEvent(event, type) {
|
|
150
|
+
const wrapper = new DbxAnalyticsStreamEventAnalyticsEventWrapper(event, type);
|
|
151
|
+
this._subject.next(wrapper);
|
|
152
|
+
}
|
|
153
|
+
// MARK: Internal
|
|
154
|
+
_init() {
|
|
155
|
+
if (this._config.isProduction) {
|
|
156
|
+
// Initialize listeners.
|
|
157
|
+
this._config.listeners.forEach((listener) => {
|
|
158
|
+
listener.listenToService(this);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
console.warn('AnalyticsService: Analytics not in production mode. All analytics events are ignored.');
|
|
163
|
+
}
|
|
164
|
+
if (this._config.logEvents || !this._config.isProduction) {
|
|
165
|
+
console.log('AnalyticsService: Log analytics events enabled.');
|
|
166
|
+
// Create a new subscription
|
|
167
|
+
this._loggerSub.subscription = this._subject.subscribe((x) => {
|
|
168
|
+
console.log(`AnalyticsService: Analytics Event - ${DbxAnalyticsStreamEventType[x.type]} | User: ${x.userId} | Data: ${JSON.stringify(x.event)}.`);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
this._userSourceSub.subscription = this.user$.subscribe(() => {
|
|
172
|
+
this.sendNextEvent({}, DbxAnalyticsStreamEventType.UserChange);
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
destroy() {
|
|
176
|
+
this._subject.complete();
|
|
177
|
+
this._userSourceSub.destroy();
|
|
178
|
+
this._loggerSub.destroy();
|
|
179
|
+
}
|
|
180
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsService, deps: [{ token: DbxAnalyticsServiceConfiguration }, { token: DbxAnalyticsUserSource, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
181
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsService }); }
|
|
182
|
+
}
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsService, decorators: [{
|
|
184
|
+
type: Injectable
|
|
185
|
+
}], ctorParameters: function () { return [{ type: DbxAnalyticsServiceConfiguration }, { type: undefined, decorators: [{
|
|
186
|
+
type: Optional
|
|
187
|
+
}, {
|
|
188
|
+
type: Inject,
|
|
189
|
+
args: [DbxAnalyticsUserSource]
|
|
190
|
+
}] }]; } });
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtYW5hbHl0aWNzL3NyYy9saWIvYW5hbHl0aWNzL2FuYWx5dGljcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBZ0IsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0csT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUEyQiwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUcxRixNQUFNLE9BQWdCLCtCQUErQjtDQVFwRDtBQUVELE1BQU0sT0FBZ0IsOEJBQThCO0NBRW5EO0FBRUQsTUFBTSxPQUFnQixzQkFBc0I7Q0FFM0M7QUFFRCxNQUFNLE9BQWdCLDJCQUEyQjtDQUVoRDtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixtQ0FBbUM7SUFBekQ7UUFDVSxTQUFJLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBNkIsU0FBUyxDQUFDLENBQUM7UUFFekUsZUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLHFCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUM5QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFDM0IsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7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LENBQUM7SUFDNUIsQ0FBQzsrR0F6S1UsbUJBQW1CLCtEQW9CcUQsc0JBQXNCO21IQXBCOUYsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOzswQkFxQnVELFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0LCBvZiwgU3Vic2NyaXB0aW9uLCBmaXJzdCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0LCBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4QW5hbHl0aWNzRXZlbnQsIERieEFuYWx5dGljc0V2ZW50RGF0YSwgRGJ4QW5hbHl0aWNzRXZlbnROYW1lLCBEYnhBbmFseXRpY3NVc2VyLCBOZXdVc2VyQW5hbHl0aWNzRXZlbnREYXRhLCBEYnhVc2VyQW5hbHl0aWNzRXZlbnQgfSBmcm9tICcuL2FuYWx5dGljcyc7XG5pbXBvcnQgeyBEYnhBbmFseXRpY3NTdHJlYW1FdmVudCwgRGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnRUeXBlIH0gZnJvbSAnLi9hbmFseXRpY3Muc3RyZWFtJztcbmltcG9ydCB7IE1heWJlLCBEZXN0cm95YWJsZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4QW5hbHl0aWNzRXZlbnRFbWl0dGVyU2VydmljZSB7XG4gIGFic3RyYWN0IHNlbmROZXdVc2VyRXZlbnQodXNlcjogRGJ4QW5hbHl0aWNzVXNlciwgZGF0YTogTmV3VXNlckFuYWx5dGljc0V2ZW50RGF0YSk6IHZvaWQ7XG4gIGFic3RyYWN0IHNlbmRVc2VyTG9naW5FdmVudCh1c2VyOiBEYnhBbmFseXRpY3NVc2VyLCBkYXRhPzogRGJ4QW5hbHl0aWNzRXZlbnREYXRhKTogdm9pZDtcbiAgYWJzdHJhY3Qgc2VuZFVzZXJMb2dvdXRFdmVudChkYXRhPzogRGJ4QW5hbHl0aWNzRXZlbnREYXRhKTogdm9pZDtcbiAgYWJzdHJhY3Qgc2VuZFVzZXJQcm9wZXJ0aWVzRXZlbnQodXNlcjogRGJ4QW5hbHl0aWNzVXNlciwgZGF0YT86IERieEFuYWx5dGljc0V2ZW50RGF0YSk6IHZvaWQ7XG4gIGFic3RyYWN0IHNlbmRFdmVudERhdGEobmFtZTogRGJ4QW5hbHl0aWNzRXZlbnROYW1lLCBkYXRhPzogRGJ4QW5hbHl0aWNzRXZlbnREYXRhKTogdm9pZDtcbiAgYWJzdHJhY3Qgc2VuZEV2ZW50KGV2ZW50OiBEYnhBbmFseXRpY3NFdmVudCk6IHZvaWQ7XG4gIGFic3RyYWN0IHNlbmRQYWdlVmlldyhwYWdlPzogc3RyaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEFuYWx5dGljc0V2ZW50U3RyZWFtU2VydmljZSB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGV2ZW50cyQ6IE9ic2VydmFibGU8RGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnQ+O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4QW5hbHl0aWNzVXNlclNvdXJjZSB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGFuYWx5dGljc1VzZXIkOiBPYnNlcnZhYmxlPE1heWJlPERieEFuYWx5dGljc1VzZXI+Pjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEFuYWx5dGljc1NlcnZpY2VMaXN0ZW5lciB7XG4gIHB1YmxpYyBhYnN0cmFjdCBsaXN0ZW5Ub1NlcnZpY2Uoc2VydmljZTogRGJ4QW5hbHl0aWNzU2VydmljZSk6IHZvaWQ7XG59XG5cbi8qKlxuICogQWJzdHJhY3QgQW5hbHl0aWNzU2VydmljZUxpc3RlbmVyIGltcGxlbWVudGF0aW9uLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYnhBbmFseXRpY3NTZXJ2aWNlTGlzdGVuZXIgaW1wbGVtZW50cyBEYnhBbmFseXRpY3NTZXJ2aWNlTGlzdGVuZXIsIERlc3Ryb3lhYmxlIHtcbiAgcHJpdmF0ZSBfc3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcm90ZWN0ZWQgX2FuYWx5dGljcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RGJ4QW5hbHl0aWNzU2VydmljZT4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgYW5hbHl0aWNzJCA9IHRoaXMuX2FuYWx5dGljcy5waXBlKGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkgYW5hbHl0aWNzRXZlbnRzJCA9IHRoaXMuYW5hbHl0aWNzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5ldmVudHMkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8vIE1BUks6IEFuYWx5dGljc1NlcnZpY2VMaXN0ZW5lclxuICBsaXN0ZW5Ub1NlcnZpY2Uoc2VydmljZTogRGJ4QW5hbHl0aWNzU2VydmljZSk6IHZvaWQge1xuICAgIHRoaXMuX2FuYWx5dGljcy5uZXh0KHNlcnZpY2UpO1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuX2luaXRpYWxpemVTZXJ2aWNlU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBpZiAoc3ViICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5fc3ViLnN1YnNjcmlwdGlvbiA9IHN1YjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2luaXRpYWxpemVTZXJ2aWNlU3Vic2NyaXB0aW9uKCk6IFN1YnNjcmlwdGlvbiB8IGZhbHNlO1xuXG4gIC8vIE1BUks6IERlc3Ryb3lcbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbmFseXRpY3MuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdWIuZGVzdHJveSgpO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhBbmFseXRpY3NTZXJ2aWNlQ29uZmlndXJhdGlvbiB7XG4gIGxpc3RlbmVyczogRGJ4QW5hbHl0aWNzU2VydmljZUxpc3RlbmVyW10gPSBbXTtcbiAgaXNQcm9kdWN0aW9uPzogYm9vbGVhbjtcbiAgbG9nRXZlbnRzPzogYm9vbGVhbjtcbiAgdXNlclNvdXJjZT86IERieEFuYWx5dGljc1VzZXJTb3VyY2U7XG59XG5cbmV4cG9ydCBjbGFzcyBEYnhBbmFseXRpY3NTdHJlYW1FdmVudEFuYWx5dGljc0V2ZW50V3JhcHBlciBpbXBsZW1lbnRzIERieEFuYWx5dGljc1N0cmVhbUV2ZW50IHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGV2ZW50OiBEYnhVc2VyQW5hbHl0aWNzRXZlbnQsIHB1YmxpYyByZWFkb25seSB0eXBlOiBEYnhBbmFseXRpY3NTdHJlYW1FdmVudFR5cGUgPSBEYnhBbmFseXRpY3NTdHJlYW1FdmVudFR5cGUuRXZlbnQpIHt9XG5cbiAgcHVibGljIGdldCB1c2VyKCk6IE1heWJlPERieEFuYWx5dGljc1VzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5ldmVudC51c2VyO1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VySWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy51c2VyID8gdGhpcy51c2VyLnVzZXIgOiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQcmltYXJ5IGFuYWx5dGljcyBzZXJ2aWNlIHRoYXQgZW1pdHMgYW5hbHl0aWNzIGV2ZW50cyB0aGF0IGNvbXBvbmVudHMgY2FuIGxpc3RlbiB0by5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieEFuYWx5dGljc1NlcnZpY2UgaW1wbGVtZW50cyBEYnhBbmFseXRpY3NFdmVudFN0cmVhbVNlcnZpY2UsIERieEFuYWx5dGljc0V2ZW50RW1pdHRlclNlcnZpY2UsIERlc3Ryb3lhYmxlIHtcbiAgLy8gVE9ETzogTWFrZSB0aGVzZSBjb25maWd1cmFibGUuXG5cbiAgc3RhdGljIHJlYWRvbmx5IFVTRVJfUkVHSVNUUkFUSU9OX0VWRU5UX05BTUUgPSAnVXNlciBSZWdpc3RlcmVkJztcbiAgc3RhdGljIHJlYWRvbmx5IFVTRVJfTE9HSU5fRVZFTlRfTkFNRSA9ICdVc2VyIExvZ2luJztcbiAgc3RhdGljIHJlYWRvbmx5IFVTRVJfTE9HT1VUX0VWRU5UX05BTUUgPSAnVXNlciBMb2dvdXQnO1xuICBzdGF0aWMgcmVhZG9ubHkgVVNFUl9QUk9QRVJUSUVTX0VWRU5UX05BTUUgPSAnVXNlciBQcm9wZXJ0aWVzJztcblxuICBwcml2YXRlIF9zdWJqZWN0ID0gbmV3IFN1YmplY3Q8RGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IGV2ZW50cyQgPSB0aGlzLl9zdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgX3VzZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPERieEFuYWx5dGljc1VzZXJTb3VyY2U+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSB1c2VyJCA9IHRoaXMuX3VzZXJTb3VyY2UucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+ICh4ID8geC5hbmFseXRpY3NVc2VyJCA6IG9mKHVuZGVmaW5lZCkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHByaXZhdGUgX3VzZXJTb3VyY2VTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2xvZ2dlclN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb25maWc6IERieEFuYWx5dGljc1NlcnZpY2VDb25maWd1cmF0aW9uLCBAT3B0aW9uYWwoKSBASW5qZWN0KERieEFuYWx5dGljc1VzZXJTb3VyY2UpIHVzZXJTb3VyY2U/OiBNYXliZTxEYnhBbmFseXRpY3NVc2VyU291cmNlPikge1xuICAgIHRoaXMuX2luaXQoKTtcblxuICAgIHVzZXJTb3VyY2UgPSB1c2VyU291cmNlIHx8IF9jb25maWcudXNlclNvdXJjZTtcbiAgICBpZiAodXNlclNvdXJjZSkge1xuICAgICAgdGhpcy5zZXRVc2VyU291cmNlKHVzZXJTb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1BUks6IFNvdXJjZVxuICAvKipcbiAgICogU2V0cyB0aGUgdXNlciBkaXJlY3RseS5cbiAgICovXG4gIHB1YmxpYyBzZXRVc2VyKHVzZXI6IE1heWJlPERieEFuYWx5dGljc1VzZXI+KTogdm9pZCB7XG4gICAgbGV0IHNvdXJjZTogTWF5YmU8RGJ4QW5hbHl0aWNzVXNlclNvdXJjZT47XG5cbiAgICBpZiAodXNlcikge1xuICAgICAgc291cmNlID0geyBhbmFseXRpY3NVc2VyJDogb2YodXNlcikgfTtcbiAgICB9XG5cbiAgICB0aGlzLl91c2VyU291cmNlLm5leHQoc291cmNlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VyU291cmNlKHNvdXJjZTogRGJ4QW5hbHl0aWNzVXNlclNvdXJjZSk6IHZvaWQge1xuICAgIHRoaXMuX3VzZXJTb3VyY2UubmV4dChzb3VyY2UpO1xuICB9XG5cbiAgLy8gTUFSSzogQW5hbHl0aWNzRXZlbnRFbWl0dGVyU2VydmljZVxuICAvKipcbiAgICogU2VuZHMgYW4gZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgc2VuZE5ld1VzZXJFdmVudCh1c2VyOiBEYnhBbmFseXRpY3NVc2VyLCBkYXRhOiBOZXdVc2VyQW5hbHl0aWNzRXZlbnREYXRhKTogdm9pZCB7XG4gICAgdGhpcy5zZW5kTmV4dEV2ZW50KFxuICAgICAge1xuICAgICAgICBuYW1lOiBEYnhBbmFseXRpY3NTZXJ2aWNlLlVTRVJfUkVHSVNUUkFUSU9OX0VWRU5UX05BTUUsXG4gICAgICAgIGRhdGFcbiAgICAgIH0sXG4gICAgICBEYnhBbmFseXRpY3NTdHJlYW1FdmVudFR5cGUuTmV3VXNlckV2ZW50LFxuICAgICAgdXNlclxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VuZFVzZXJMb2dpbkV2ZW50KHVzZXI6IERieEFuYWx5dGljc1VzZXIsIGRhdGE/OiBEYnhBbmFseXRpY3NFdmVudERhdGEpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmROZXh0RXZlbnQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IERieEFuYWx5dGljc1NlcnZpY2UuVVNFUl9MT0dJTl9FVkVOVF9OQU1FLFxuICAgICAgICBkYXRhXG4gICAgICB9LFxuICAgICAgRGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnRUeXBlLlVzZXJMb2dpbkV2ZW50LFxuICAgICAgdXNlclxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VuZFVzZXJMb2dvdXRFdmVudChkYXRhPzogRGJ4QW5hbHl0aWNzRXZlbnREYXRhLCBjbGVhclVzZXIgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5zZW5kTmV4dEV2ZW50KFxuICAgICAge1xuICAgICAgICBuYW1lOiBEYnhBbmFseXRpY3NTZXJ2aWNlLlVTRVJfTE9HT1VUX0VWRU5UX05BTUUsXG4gICAgICAgIGRhdGFcbiAgICAgIH0sXG4gICAgICBEYnhBbmFseXRpY3NTdHJlYW1FdmVudFR5cGUuVXNlckxvZ291dEV2ZW50XG4gICAgKTtcblxuICAgIGlmIChjbGVhclVzZXIpIHtcbiAgICAgIHRoaXMuc2V0VXNlcih1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZW5kVXNlclByb3BlcnRpZXNFdmVudCh1c2VyOiBEYnhBbmFseXRpY3NVc2VyLCBkYXRhPzogRGJ4QW5hbHl0aWNzRXZlbnREYXRhKTogdm9pZCB7XG4gICAgdGhpcy5zZW5kTmV4dEV2ZW50KFxuICAgICAge1xuICAgICAgICBuYW1lOiBEYnhBbmFseXRpY3NTZXJ2aWNlLlVTRVJfUFJPUEVSVElFU19FVkVOVF9OQU1FLFxuICAgICAgICBkYXRhXG4gICAgICB9LFxuICAgICAgRGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnRUeXBlLlVzZXJQcm9wZXJ0aWVzRXZlbnQsXG4gICAgICB1c2VyXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZW5kRXZlbnREYXRhKG5hbWU6IERieEFuYWx5dGljc0V2ZW50TmFtZSwgZGF0YT86IERieEFuYWx5dGljc0V2ZW50RGF0YSk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnNlbmRFdmVudCh7XG4gICAgICBuYW1lLFxuICAgICAgZGF0YVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbmRFdmVudFR5cGUoZXZlbnRUeXBlOiBEYnhBbmFseXRpY3NFdmVudE5hbWUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmROZXh0RXZlbnQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGV2ZW50VHlwZVxuICAgICAgfSxcbiAgICAgIERieEFuYWx5dGljc1N0cmVhbUV2ZW50VHlwZS5FdmVudFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2VuZEV2ZW50KGV2ZW50OiBEYnhBbmFseXRpY3NFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VuZE5leHRFdmVudChldmVudCwgRGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnRUeXBlLkV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZW5kUGFnZVZpZXcocGFnZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VuZE5leHRFdmVudChcbiAgICAgIHtcbiAgICAgICAgbmFtZTogcGFnZVxuICAgICAgfSxcbiAgICAgIERieEFuYWx5dGljc1N0cmVhbUV2ZW50VHlwZS5QYWdlVmlld1xuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VuZE5leHRFdmVudChldmVudDogRGJ4QW5hbHl0aWNzRXZlbnQgPSB7fSwgdHlwZTogRGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnRUeXBlLCB1c2VyT3ZlcnJpZGU/OiBEYnhBbmFseXRpY3NVc2VyKTogdm9pZCB7XG4gICAgdGhpcy51c2VyJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoYW5hbHl0aWNzVXNlcikgPT4ge1xuICAgICAgY29uc3QgdXNlcjogTWF5YmU8RGJ4QW5hbHl0aWNzVXNlcj4gPSB1c2VyT3ZlcnJpZGUgIT0gbnVsbCA/IHVzZXJPdmVycmlkZSA6IGFuYWx5dGljc1VzZXI7XG4gICAgICBjb25zdCBhbmFseXRpY3NFdmVudDogRGJ4VXNlckFuYWx5dGljc0V2ZW50ID0geyAuLi5ldmVudCwgdXNlciB9O1xuICAgICAgdGhpcy5uZXh0RXZlbnQoYW5hbHl0aWNzRXZlbnQsIHR5cGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5leHRFdmVudChldmVudDogRGJ4VXNlckFuYWx5dGljc0V2ZW50LCB0eXBlOiBEYnhBbmFseXRpY3NTdHJlYW1FdmVudFR5cGUpOiB2b2lkIHtcbiAgICBjb25zdCB3cmFwcGVyID0gbmV3IERieEFuYWx5dGljc1N0cmVhbUV2ZW50QW5hbHl0aWNzRXZlbnRXcmFwcGVyKGV2ZW50LCB0eXBlKTtcbiAgICB0aGlzLl9zdWJqZWN0Lm5leHQod3JhcHBlcik7XG4gIH1cblxuICAvLyBNQVJLOiBJbnRlcm5hbFxuICBwcml2YXRlIF9pbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb25maWcuaXNQcm9kdWN0aW9uKSB7XG4gICAgICAvLyBJbml0aWFsaXplIGxpc3RlbmVycy5cbiAgICAgIHRoaXMuX2NvbmZpZy5saXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICAgICAgbGlzdGVuZXIubGlzdGVuVG9TZXJ2aWNlKHRoaXMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignQW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzIG5vdCBpbiBwcm9kdWN0aW9uIG1vZGUuIEFsbCBhbmFseXRpY3MgZXZlbnRzIGFyZSBpZ25vcmVkLicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcubG9nRXZlbnRzIHx8ICF0aGlzLl9jb25maWcuaXNQcm9kdWN0aW9uKSB7XG4gICAgICBjb25zb2xlLmxvZygnQW5hbHl0aWNzU2VydmljZTogTG9nIGFuYWx5dGljcyBldmVudHMgZW5hYmxlZC4nKTtcblxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IHN1YnNjcmlwdGlvblxuICAgICAgdGhpcy5fbG9nZ2VyU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuX3N1YmplY3Quc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBBbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3MgRXZlbnQgLSAke0RieEFuYWx5dGljc1N0cmVhbUV2ZW50VHlwZVt4LnR5cGVdfSB8IFVzZXI6ICR7eC51c2VySWR9IHwgRGF0YTogJHtKU09OLnN0cmluZ2lmeSh4LmV2ZW50KX0uYCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl91c2VyU291cmNlU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMudXNlciQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2VuZE5leHRFdmVudCh7fSwgRGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnRUeXBlLlVzZXJDaGFuZ2UpO1xuICAgIH0pO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fdXNlclNvdXJjZVN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fbG9nZ2VyU3ViLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
|
|
@@ -85,10 +85,10 @@ export class DbxAnalyticsSegmentServiceListener extends AbstractDbxAnalyticsServ
|
|
|
85
85
|
api.reset();
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentServiceListener, deps: [{ token: i1.DbxAnalyticsSegmentApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
89
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentServiceListener }); }
|
|
88
90
|
}
|
|
89
|
-
|
|
90
|
-
DbxAnalyticsSegmentServiceListener.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsSegmentServiceListener });
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsSegmentServiceListener, decorators: [{
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentServiceListener, decorators: [{
|
|
92
92
|
type: Injectable
|
|
93
93
|
}], ctorParameters: function () { return [{ type: i1.DbxAnalyticsSegmentApiService }]; } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5saXN0ZW5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWFuYWx5dGljcy9zcmMvbGliL3Byb3ZpZGVycy9zZWdtZW50L3NlZ21lbnQubGlzdGVuZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLG1DQUFtQyxFQUEyQiwyQkFBMkIsRUFBb0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM5SSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRWxFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLG1DQUFtQztJQUN6RixZQUFvQixXQUEwQztRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQURVLGdCQUFXLEdBQVgsV0FBVyxDQUErQjtRQUc1RCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7U0FDNUU7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMseUZBQXlGLENBQUMsQ0FBQztTQUN4RztJQUNILENBQUM7SUFFUyw4QkFBOEI7UUFDdEMsT0FBTyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBMEQsRUFBRSxFQUFFO1lBQ3JLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFN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QztrQkFEOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdERieEFuYWx5dGljc1NlcnZpY2VMaXN0ZW5lciwgRGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnQsIERieEFuYWx5dGljc1N0cmVhbUV2ZW50VHlwZSwgRGJ4QW5hbHl0aWNzVXNlciB9IGZyb20gJy4uLy4uL2FuYWx5dGljcyc7XG5pbXBvcnQgeyBEYnhBbmFseXRpY3NTZWdtZW50QXBpU2VydmljZSB9IGZyb20gJy4vc2VnbWVudC5zZXJ2aWNlJztcblxuLyoqXG4gKiBEYnhBbmFseXRpY3NTZXJ2aWNlTGlzdGVuZXIgYWRhcHRlciBmb3IgU2VnbWVudC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieEFuYWx5dGljc1NlZ21lbnRTZXJ2aWNlTGlzdGVuZXIgZXh0ZW5kcyBBYnN0cmFjdERieEFuYWx5dGljc1NlcnZpY2VMaXN0ZW5lciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlZ21lbnRBcGk6IERieEFuYWx5dGljc1NlZ21lbnRBcGlTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmICh0aGlzLl9zZWdtZW50QXBpLmNvbmZpZy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnU2VnbWVudEFuYWx5dGljc0xpc3RlbmVyU2VydmljZTogU2VnbWVudCBpcyBsb2dnaW5nIGV2ZW50cy4nKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX3NlZ21lbnRBcGkuY29uZmlnLmFjdGl2ZSkge1xuICAgICAgY29uc29sZS5sb2coJ1NlZ21lbnRBbmFseXRpY3NMaXN0ZW5lclNlcnZpY2U6IFNlZ21lbnQgaXMgZGlzYWJsZWQgZnJvbSBzZW5kaW5nIGV2ZW50cyB0byB0aGUgc2VydmVyLicpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaW5pdGlhbGl6ZVNlcnZpY2VTdWJzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuX3NlZ21lbnRBcGkuc2VydmljZSQsIHRoaXMuYW5hbHl0aWNzRXZlbnRzJF0pLnN1YnNjcmliZSgoW3NlZ21lbnQsIHN0cmVhbUV2ZW50XTogW1NlZ21lbnRBbmFseXRpY3MuQW5hbHl0aWNzSlMsIERieEFuYWx5dGljc1N0cmVhbUV2ZW50XSkgPT4ge1xuICAgICAgaWYgKHRoaXMuX3NlZ21lbnRBcGkuY29uZmlnLmxvZ2dpbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1NlZ21lbnQgTGlzdGVuZXIgTG9nZ2luZyBFdmVudDogJywgc3RyZWFtRXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fc2VnbWVudEFwaS5jb25maWcuYWN0aXZlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlU3RyZWFtRXZlbnQoc2VnbWVudCwgc3RyZWFtRXZlbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVN0cmVhbUV2ZW50KGFwaTogU2VnbWVudEFuYWx5dGljcy5BbmFseXRpY3NKUywgc3RyZWFtRXZlbnQ6IERieEFuYWx5dGljc1N0cmVhbUV2ZW50KTogdm9pZCB7XG4gICAgc3dpdGNoIChzdHJlYW1FdmVudC50eXBlKSB7XG4gICAgICBjYXNlIERieEFuYWx5dGljc1N0cmVhbUV2ZW50VHlwZS5OZXdVc2VyRXZlbnQ6XG4gICAgICAgIHRoaXMudXBkYXRlV2l0aE5ld1VzZXJFdmVudChhcGksIHN0cmVhbUV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERieEFuYWx5dGljc1N0cmVhbUV2ZW50VHlwZS5Vc2VyTG9naW5FdmVudDpcbiAgICAgIGNhc2UgRGJ4QW5hbHl0aWNzU3RyZWFtRXZlbnRUeXBlLkV2ZW50OlxuICAgICAgICB0aGlzLnVwZGF0ZVdpdGhFdmVudChhcGksIHN0cmVhbUV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERieEFuYWx5dGljc1N0cmVhbUV2ZW50VHlwZS5Vc2VyTG9nb3V0RXZlbnQ6XG4gICAgICAgIHRoaXMuY2hhbmdlVXNlcihhcGksIHVuZGVmaW5lZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBEYnhBbmFseXRpY3NTdHJlYW1FdmVudFR5cGUuUGFnZVZpZXc6XG4gICAgICAgIGFwaS5wYWdlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBEYnhBbmFseXRpY3NTdHJlYW1FdmVudFR5cGUuVXNlckNoYW5nZTpcbiAgICAgICAgdGhpcy5jaGFuZ2VVc2VyKGFwaSwgc3RyZWFtRXZlbnQudXNlcik7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVXaXRoTmV3VXNlckV2ZW50KGFwaTogU2VnbWVudEFuYWx5dGljcy5BbmFseXRpY3NKUywgc3RyZWFtRXZlbnQ6IERieEFuYWx5dGljc1N0cmVhbUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VVc2VyKGFwaSwgc3RyZWFtRXZlbnQudXNlcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlV2l0aEV2ZW50KGFwaTogU2VnbWVudEFuYWx5dGljcy5BbmFseXRpY3NKUywgc3RyZWFtRXZlbnQ6IERieEFuYWx5dGljc1N0cmVhbUV2ZW50LCBuYW1lPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnQgPSBzdHJlYW1FdmVudC5ldmVudDtcbiAgICBjb25zdCBldmVudE5hbWUgPSBuYW1lIHx8IGV2ZW50Py5uYW1lO1xuXG4gICAgaWYgKGV2ZW50TmFtZSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBldmVudD8udmFsdWU7XG4gICAgICBjb25zdCBkYXRhID0gZXZlbnQ/LmRhdGE7XG5cbiAgICAgIGFwaS50cmFjayhcbiAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICB7XG4gICAgICAgICAgLi4uKHZhbHVlICE9IG51bGxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkKSxcbiAgICAgICAgICAuLi5kYXRhXG4gICAgICAgIH0sXG4gICAgICAgIHt9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3NlZ21lbnRBcGkuY29uZmlnLmxvZ2dpbmcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTZWdtZW50IHRyYWNrIHN1Y2Nlc3MuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlVXNlcihhcGk6IFNlZ21lbnRBbmFseXRpY3MuQW5hbHl0aWNzSlMsIHVzZXI6IE1heWJlPERieEFuYWx5dGljc1VzZXI+KTogdm9pZCB7XG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIGFwaS5pZGVudGlmeShcbiAgICAgICAgdXNlci51c2VyLFxuICAgICAgICB7XG4gICAgICAgICAgLi4udXNlci5wcm9wZXJ0aWVzXG4gICAgICAgIH0sXG4gICAgICAgIHt9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3NlZ21lbnRBcGkuY29uZmlnLmxvZ2dpbmcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTZWdtZW50IGlkZW50aWZ5IHN1Y2Nlc3MuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVzZXQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -14,15 +14,15 @@ export class DbxAnalyticsSegmentModule {
|
|
|
14
14
|
]
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
18
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentModule }); }
|
|
19
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentModule }); }
|
|
17
20
|
}
|
|
18
|
-
|
|
19
|
-
DbxAnalyticsSegmentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsSegmentModule });
|
|
20
|
-
DbxAnalyticsSegmentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsSegmentModule });
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxAnalyticsSegmentModule, decorators: [{
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentModule, decorators: [{
|
|
22
22
|
type: NgModule,
|
|
23
23
|
args: [{
|
|
24
24
|
declarations: [],
|
|
25
25
|
imports: []
|
|
26
26
|
}]
|
|
27
27
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtYW5hbHl0aWNzL3NyYy9saWIvcHJvdmlkZXJzL3NlZ21lbnQvc2VnbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTXpGLE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUF3QjtRQUNyQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtvQkFDOUIsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCO2dCQUNELDZCQUE2QjthQUM5QjtTQUNGLENBQUM7SUFDSixDQUFDOytHQVpVLHlCQUF5QjtnSEFBekIseUJBQXlCO2dIQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBSRUxPQURfU0VHTUVOVF9UT0tFTiwgRGJ4QW5hbHl0aWNzU2VnbWVudEFwaVNlcnZpY2UgfSBmcm9tICcuL3NlZ21lbnQuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIERieEFuYWx5dGljc1NlZ21lbnRNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChwcmVsb2FkU2VydmljZT86IGJvb2xlYW4pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPERieEFuYWx5dGljc1NlZ21lbnRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IERieEFuYWx5dGljc1NlZ21lbnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFBSRUxPQURfU0VHTUVOVF9UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogcHJlbG9hZFNlcnZpY2VcbiAgICAgICAgfSxcbiAgICAgICAgRGJ4QW5hbHl0aWNzU2VnbWVudEFwaVNlcnZpY2VcbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Injectable, InjectionToken, Inject } from '@angular/core';
|
|
2
|
+
import { AbstractAsyncWindowLoadedService } from '@dereekb/browser';
|
|
3
|
+
import { poll } from '@dereekb/util';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export const PRELOAD_SEGMENT_TOKEN = new InjectionToken('DbxAnalyticsSegmentApiServicePreload');
|
|
6
|
+
export class DbxAnalyticsSegmentApiServiceConfig {
|
|
7
|
+
constructor(writeKey) {
|
|
8
|
+
this.writeKey = writeKey;
|
|
9
|
+
this.logging = true;
|
|
10
|
+
this.active = true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Segment API Service used for waiting/retrieving the segment API from window when initialized.
|
|
15
|
+
*
|
|
16
|
+
* This requires some setup in index.html.
|
|
17
|
+
*/
|
|
18
|
+
export class DbxAnalyticsSegmentApiService extends AbstractAsyncWindowLoadedService {
|
|
19
|
+
static { this.SEGMENT_API_WINDOW_KEY = 'analytics'; }
|
|
20
|
+
static { this.SEGMENT_READY_KEY = 'SegmentReady'; }
|
|
21
|
+
constructor(_config, preload = true) {
|
|
22
|
+
super(DbxAnalyticsSegmentApiService.SEGMENT_API_WINDOW_KEY, undefined, 'Segment', preload);
|
|
23
|
+
this._config = _config;
|
|
24
|
+
}
|
|
25
|
+
get config() {
|
|
26
|
+
return this._config;
|
|
27
|
+
}
|
|
28
|
+
_prepareCompleteLoadingService() {
|
|
29
|
+
return poll({
|
|
30
|
+
// poll until analytics.invoked is true.
|
|
31
|
+
check: () => Boolean(window.analytics.invoked),
|
|
32
|
+
timesToGiveup: 100
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
_initService(service) {
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
try {
|
|
38
|
+
service.load(this._config.writeKey); // Initialize Segment
|
|
39
|
+
// Wait for the service to ready itself.
|
|
40
|
+
service.ready(() => {
|
|
41
|
+
// Segment changes itself or rather the target, and the previous initial target is ignored after.
|
|
42
|
+
const segment = window[DbxAnalyticsSegmentApiService.SEGMENT_API_WINDOW_KEY];
|
|
43
|
+
resolve(segment);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
console.log('Failed to init segment: ' + e);
|
|
48
|
+
reject(e);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentApiService, deps: [{ token: DbxAnalyticsSegmentApiServiceConfig }, { token: PRELOAD_SEGMENT_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
53
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentApiService }); }
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxAnalyticsSegmentApiService, decorators: [{
|
|
56
|
+
type: Injectable
|
|
57
|
+
}], ctorParameters: function () { return [{ type: DbxAnalyticsSegmentApiServiceConfig }, { type: undefined, decorators: [{
|
|
58
|
+
type: Inject,
|
|
59
|
+
args: [PRELOAD_SEGMENT_TOKEN]
|
|
60
|
+
}] }]; } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWFuYWx5dGljcy9zcmMvbGliL3Byb3ZpZGVycy9zZWdtZW50L3NlZ21lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFckMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQVMsc0NBQXNDLENBQUMsQ0FBQztBQUV4RyxNQUFNLE9BQU8sbUNBQW1DO0lBRzlDLFlBQW1CLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFGbkMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFDd0IsQ0FBQztDQUN4QztBQU9EOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsZ0NBQThEO2FBQy9GLDJCQUFzQixHQUFHLFdBQVcsQUFBZCxDQUFlO2FBQ3JDLHNCQUFpQixHQUFHLGNBQWMsQUFBakIsQ0FBa0I7SUFFbkQsWUFBb0IsT0FBNEMsRUFBaUMsVUFBbUIsSUFBSTtRQUN0SCxLQUFLLENBQUMsNkJBQTZCLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUR6RSxZQUFPLEdBQVAsT0FBTyxDQUFxQztJQUVoRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFa0IsOEJBQThCO1FBQy9DLE9BQU8sSUFBSSxDQUFDO1lBQ1Ysd0NBQXdDO1lBQ3hDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUUsTUFBTSxDQUFDLFNBQXFDLENBQUMsT0FBTyxDQUFDO1lBQzNFLGFBQWEsRUFBRSxHQUFHO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFa0IsWUFBWSxDQUFDLE9BQXFDO1FBQ25FLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSTtnQkFDRixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7Z0JBRTFELHdDQUF3QztnQkFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7b0JBQ2pCLGlHQUFpRztvQkFDakcsTUFBTSxPQUFPLEdBQWlDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO29CQUMzRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FwQ1UsNkJBQTZCLGtFQUlrQyxxQkFBcUI7bUhBSnBGLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVTs7MEJBSzBELE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RBc3luY1dpbmRvd0xvYWRlZFNlcnZpY2UgfSBmcm9tICdAZGVyZWVrYi9icm93c2VyJztcbmltcG9ydCB7IHBvbGwgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuZXhwb3J0IGNvbnN0IFBSRUxPQURfU0VHTUVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdEYnhBbmFseXRpY3NTZWdtZW50QXBpU2VydmljZVByZWxvYWQnKTtcblxuZXhwb3J0IGNsYXNzIERieEFuYWx5dGljc1NlZ21lbnRBcGlTZXJ2aWNlQ29uZmlnIHtcbiAgbG9nZ2luZyA9IHRydWU7XG4gIGFjdGl2ZSA9IHRydWU7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB3cml0ZUtleTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFdoZW4gdGhlIFNlZ21lbnQgbGlicmFyeSBmaW5pc2hlcyBsb2FkaW5nLCBpdCBpcyBpbnZva2VkLlxuICovXG50eXBlIFNlZ21lbnRBbmFseXRpY3NJbnZva2VkID0gU2VnbWVudEFuYWx5dGljcy5BbmFseXRpY3NKUyAmIHsgaW52b2tlZD86IGJvb2xlYW4gfTtcblxuLyoqXG4gKiBTZWdtZW50IEFQSSBTZXJ2aWNlIHVzZWQgZm9yIHdhaXRpbmcvcmV0cmlldmluZyB0aGUgc2VnbWVudCBBUEkgZnJvbSB3aW5kb3cgd2hlbiBpbml0aWFsaXplZC5cbiAqXG4gKiBUaGlzIHJlcXVpcmVzIHNvbWUgc2V0dXAgaW4gaW5kZXguaHRtbC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieEFuYWx5dGljc1NlZ21lbnRBcGlTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RBc3luY1dpbmRvd0xvYWRlZFNlcnZpY2U8U2VnbWVudEFuYWx5dGljcy5BbmFseXRpY3NKUz4ge1xuICBzdGF0aWMgcmVhZG9ubHkgU0VHTUVOVF9BUElfV0lORE9XX0tFWSA9ICdhbmFseXRpY3MnO1xuICBzdGF0aWMgcmVhZG9ubHkgU0VHTUVOVF9SRUFEWV9LRVkgPSAnU2VnbWVudFJlYWR5JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb25maWc6IERieEFuYWx5dGljc1NlZ21lbnRBcGlTZXJ2aWNlQ29uZmlnLCBASW5qZWN0KFBSRUxPQURfU0VHTUVOVF9UT0tFTikgcHJlbG9hZDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBzdXBlcihEYnhBbmFseXRpY3NTZWdtZW50QXBpU2VydmljZS5TRUdNRU5UX0FQSV9XSU5ET1dfS0VZLCB1bmRlZmluZWQsICdTZWdtZW50JywgcHJlbG9hZCk7XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IERieEFuYWx5dGljc1NlZ21lbnRBcGlTZXJ2aWNlQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIF9wcmVwYXJlQ29tcGxldGVMb2FkaW5nU2VydmljZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gcG9sbCh7XG4gICAgICAvLyBwb2xsIHVudGlsIGFuYWx5dGljcy5pbnZva2VkIGlzIHRydWUuXG4gICAgICBjaGVjazogKCkgPT4gQm9vbGVhbigod2luZG93LmFuYWx5dGljcyBhcyBTZWdtZW50QW5hbHl0aWNzSW52b2tlZCkuaW52b2tlZCksXG4gICAgICB0aW1lc1RvR2l2ZXVwOiAxMDBcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfaW5pdFNlcnZpY2Uoc2VydmljZTogU2VnbWVudEFuYWx5dGljcy5BbmFseXRpY3NKUyk6IFByb21pc2U8U2VnbWVudEFuYWx5dGljcy5BbmFseXRpY3NKUz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBzZXJ2aWNlLmxvYWQodGhpcy5fY29uZmlnLndyaXRlS2V5KTsgLy8gSW5pdGlhbGl6ZSBTZWdtZW50XG5cbiAgICAgICAgLy8gV2FpdCBmb3IgdGhlIHNlcnZpY2UgdG8gcmVhZHkgaXRzZWxmLlxuICAgICAgICBzZXJ2aWNlLnJlYWR5KCgpID0+IHtcbiAgICAgICAgICAvLyBTZWdtZW50IGNoYW5nZXMgaXRzZWxmIG9yIHJhdGhlciB0aGUgdGFyZ2V0LCBhbmQgdGhlIHByZXZpb3VzIGluaXRpYWwgdGFyZ2V0IGlzIGlnbm9yZWQgYWZ0ZXIuXG4gICAgICAgICAgY29uc3Qgc2VnbWVudDogU2VnbWVudEFuYWx5dGljcy5BbmFseXRpY3NKUyA9IHdpbmRvd1tEYnhBbmFseXRpY3NTZWdtZW50QXBpU2VydmljZS5TRUdNRU5UX0FQSV9XSU5ET1dfS0VZXTtcbiAgICAgICAgICByZXNvbHZlKHNlZ21lbnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0ZhaWxlZCB0byBpbml0IHNlZ21lbnQ6ICcgKyBlKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|