@o3r/analytics 14.0.0-next.1 → 14.0.0-next.3
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/fesm2022/o3r-analytics-fixtures-jasmine.mjs.map +1 -1
- package/fesm2022/o3r-analytics-fixtures-jest.mjs.map +1 -1
- package/fesm2022/o3r-analytics.mjs +23 -23
- package/fesm2022/o3r-analytics.mjs.map +1 -1
- package/fixtures/jasmine/{event-track.service.fixture.jasmine.d.ts → event-track-service-fixture-jasmine.d.ts} +1 -1
- package/fixtures/jasmine/{event-track.service.fixture.jasmine.d.ts.map → event-track-service-fixture-jasmine.d.ts.map} +1 -1
- package/fixtures/jasmine/index.d.ts +1 -1
- package/fixtures/jest/{event-track.service.fixture.jest.d.ts → event-track-service-fixture-jest.d.ts} +1 -1
- package/fixtures/jest/{event-track.service.fixture.jest.d.ts.map → event-track-service-fixture-jest.d.ts.map} +1 -1
- package/fixtures/jest/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/package.json +5 -6
- package/plugins/webpack/build-metrics/{build-stats.plugin.d.ts → build-stats-plugin.d.ts} +2 -2
- package/plugins/webpack/build-metrics/{build-stats.plugin.d.ts.map → build-stats-plugin.d.ts.map} +1 -1
- package/plugins/webpack/build-metrics/{build-stats.plugin.js → build-stats-plugin.js} +1 -1
- package/plugins/webpack/build-metrics/{build-stats.plugin.js.map → build-stats-plugin.js.map} +1 -1
- package/plugins/webpack/build-metrics/index.d.ts +2 -2
- package/plugins/webpack/build-metrics/index.js +2 -2
- package/plugins/webpack/build-metrics/{reporters.interface.d.ts → reporters-interface.d.ts} +1 -1
- package/plugins/webpack/build-metrics/{reporters.interface.d.ts.map → reporters-interface.d.ts.map} +1 -1
- package/plugins/webpack/build-metrics/{reporters.interface.js → reporters-interface.js} +1 -1
- package/plugins/webpack/build-metrics/reporters-interface.js.map +1 -0
- package/schematics/analytics-to-component/index.d.ts.map +1 -1
- package/schematics/analytics-to-component/index.js +6 -6
- package/plugins/webpack/build-metrics/reporters.interface.js.map +0 -1
- package/schematics/analytics-to-component/index.js.map +0 -1
- package/schematics/analytics-to-component/schema.js.map +0 -1
- package/schematics/ng-add/index.js.map +0 -1
- package/schematics/ng-add/schema.js.map +0 -1
- /package/schematics/analytics-to-component/templates/{__name__.analytics.ts.template → __name__-analytics.ts.template} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o3r-analytics-fixtures-jasmine.mjs","sources":["../../src/fixtures/jasmine/event-track
|
|
1
|
+
{"version":3,"file":"o3r-analytics-fixtures-jasmine.mjs","sources":["../../src/fixtures/jasmine/event-track-service-fixture-jasmine.ts","../../src/fixtures/jasmine/o3r-analytics-fixtures-jasmine.ts"],"sourcesContent":["import type {\n EventTrackService,\n} from '@o3r/analytics';\n\n/**\n * Fixture for the EventTrack Service\n */\nexport class EventTrackServiceFixture implements Readonly<Partial<EventTrackService>> {\n /** @inheritdoc */\n public markFirstLoad: jasmine.Spy = jasmine.createSpy('markFirstLoad');\n\n /** @inheritdoc */\n public markFP: jasmine.Spy = jasmine.createSpy('markFP');\n\n /** @inheritdoc */\n public markFMP: jasmine.Spy = jasmine.createSpy('markFMP');\n\n /** @inheritdoc */\n public markDataReady: jasmine.Spy = jasmine.createSpy('markDataReady');\n\n /** @inheritdoc */\n public addCustomMark: jasmine.Spy = jasmine.createSpy('addCustomMark');\n\n /** @inheritdoc */\n public addServerCallMark: jasmine.Spy = jasmine.createSpy('addServerCallMark');\n\n /** @inheritdoc */\n public addSDKServerCallMark: jasmine.Spy = jasmine.createSpy('addSDKServerCallMark');\n\n /** @inheritdoc */\n public startCustomMark: jasmine.Spy = jasmine.createSpy('startCustomMark');\n\n /** @inheritdoc */\n public endCustomMark: jasmine.Spy = jasmine.createSpy('endCustomMark');\n\n /** @inheritdoc */\n public getTiming: jasmine.Spy = jasmine.createSpy('getTiming');\n\n /** @inheritdoc */\n public addEvent: jasmine.Spy = jasmine.createSpy('addEvent');\n\n /** @inheritdoc */\n public addUiEvent: jasmine.Spy = jasmine.createSpy('addUiEvent');\n\n /** @inheritdoc */\n public toggleTracking: jasmine.Spy = jasmine.createSpy('toggleTracking');\n\n /** @inheritdoc */\n public toggleUiTracking: jasmine.Spy = jasmine.createSpy('toggleUiTracking');\n\n /** @inheritdoc */\n public togglePerfTracking: jasmine.Spy = jasmine.createSpy('togglePerfTracking');\n\n /** @inheritdoc */\n public addCustomEvent: jasmine.Spy = jasmine.createSpy('addCustomEvent');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAIA;;AAEG;MACU,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;;AAES,QAAA,IAAA,CAAA,aAAa,GAAgB,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;;AAG/D,QAAA,IAAA,CAAA,MAAM,GAAgB,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;;AAGjD,QAAA,IAAA,CAAA,OAAO,GAAgB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;;AAGnD,QAAA,IAAA,CAAA,aAAa,GAAgB,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;;AAG/D,QAAA,IAAA,CAAA,aAAa,GAAgB,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;;AAG/D,QAAA,IAAA,CAAA,iBAAiB,GAAgB,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC;;AAGvE,QAAA,IAAA,CAAA,oBAAoB,GAAgB,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC;;AAG7E,QAAA,IAAA,CAAA,eAAe,GAAgB,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC;;AAGnE,QAAA,IAAA,CAAA,aAAa,GAAgB,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;;AAG/D,QAAA,IAAA,CAAA,SAAS,GAAgB,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;;AAGvD,QAAA,IAAA,CAAA,QAAQ,GAAgB,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;;AAGrD,QAAA,IAAA,CAAA,UAAU,GAAgB,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;;AAGzD,QAAA,IAAA,CAAA,cAAc,GAAgB,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC;;AAGjE,QAAA,IAAA,CAAA,gBAAgB,GAAgB,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC;;AAGrE,QAAA,IAAA,CAAA,kBAAkB,GAAgB,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC;;AAGzE,QAAA,IAAA,CAAA,cAAc,GAAgB,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC;IAC1E;AAAC;;ACvDD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o3r-analytics-fixtures-jest.mjs","sources":["../../src/fixtures/jest/event-track
|
|
1
|
+
{"version":3,"file":"o3r-analytics-fixtures-jest.mjs","sources":["../../src/fixtures/jest/event-track-service-fixture-jest.ts","../../src/fixtures/jest/o3r-analytics-fixtures-jest.ts"],"sourcesContent":["import type {\n EventTrackService,\n} from '@o3r/analytics';\n\n/**\n * Fixture for the EventTrack Service\n */\nexport class EventTrackServiceFixture implements Readonly<Partial<EventTrackService>> {\n /** @inheritdoc */\n public markFirstLoad: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public markFP: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public markFMP: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public markDataReady: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public addCustomMark: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public addServerCallMark: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public addSDKServerCallMark: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public startCustomMark: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public endCustomMark: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public getTiming: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public addEvent: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public addUiEvent: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public toggleTracking: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public toggleUiTracking: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public togglePerfTracking: jest.Mock<any, any> = jest.fn();\n\n /** @inheritdoc */\n public addCustomEvent: jest.Mock<any, any> = jest.fn();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAIA;;AAEG;MACU,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;;AAES,QAAA,IAAA,CAAA,aAAa,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAG9C,QAAA,IAAA,CAAA,MAAM,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAGvC,QAAA,IAAA,CAAA,OAAO,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAGxC,QAAA,IAAA,CAAA,aAAa,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAG9C,QAAA,IAAA,CAAA,aAAa,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAG9C,QAAA,IAAA,CAAA,iBAAiB,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAGlD,QAAA,IAAA,CAAA,oBAAoB,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAGrD,QAAA,IAAA,CAAA,eAAe,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAGhD,QAAA,IAAA,CAAA,aAAa,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAG9C,QAAA,IAAA,CAAA,SAAS,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAG1C,QAAA,IAAA,CAAA,QAAQ,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAGzC,QAAA,IAAA,CAAA,UAAU,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAG3C,QAAA,IAAA,CAAA,cAAc,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAG/C,QAAA,IAAA,CAAA,gBAAgB,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAGjD,QAAA,IAAA,CAAA,kBAAkB,GAAwB,IAAI,CAAC,EAAE,EAAE;;AAGnD,QAAA,IAAA,CAAA,cAAc,GAAwB,IAAI,CAAC,EAAE,EAAE;IACxD;AAAC;;ACvDD;;AAEG;;;;"}
|
|
@@ -330,10 +330,10 @@ class EventTrackService {
|
|
|
330
330
|
togglePerfTracking(activate) {
|
|
331
331
|
this.perfTrackingActivated.next(activate);
|
|
332
332
|
}
|
|
333
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
334
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
|
333
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: EventTrackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
334
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: EventTrackService, providedIn: 'root' }); }
|
|
335
335
|
}
|
|
336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
336
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: EventTrackService, decorators: [{
|
|
337
337
|
type: Injectable,
|
|
338
338
|
args: [{
|
|
339
339
|
providedIn: 'root'
|
|
@@ -400,10 +400,10 @@ class BaseTrackEvents {
|
|
|
400
400
|
this.unlistenFns.push(this.nativeListen(event));
|
|
401
401
|
}
|
|
402
402
|
}
|
|
403
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
404
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
403
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BaseTrackEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
404
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.13", type: BaseTrackEvents, isStandalone: true, ngImport: i0 }); }
|
|
405
405
|
}
|
|
406
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
406
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BaseTrackEvents, decorators: [{
|
|
407
407
|
type: Directive
|
|
408
408
|
}], ctorParameters: () => [] });
|
|
409
409
|
|
|
@@ -425,10 +425,10 @@ class TrackClickDirective extends BaseTrackEvents {
|
|
|
425
425
|
this.trackEvent('contextmenu');
|
|
426
426
|
this.trackEvent('auxclick');
|
|
427
427
|
}
|
|
428
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
429
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
428
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackClickDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
429
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.13", type: TrackClickDirective, isStandalone: true, selector: "[trackClick]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters" }, usesInheritance: true, ngImport: i0 }); }
|
|
430
430
|
}
|
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackClickDirective, decorators: [{
|
|
432
432
|
type: Directive,
|
|
433
433
|
args: [{
|
|
434
434
|
selector: '[trackClick]'
|
|
@@ -466,10 +466,10 @@ class TrackEventsDirective extends BaseTrackEvents {
|
|
|
466
466
|
this.trackEventNames.forEach((eventName) => this.trackEvent(eventName));
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
470
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
469
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackEventsDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
470
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.13", type: TrackEventsDirective, isStandalone: true, selector: "[trackEvents]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters", trackEventNames: ["trackEvents", "trackEventNames"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
471
471
|
}
|
|
472
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
472
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackEventsDirective, decorators: [{
|
|
473
473
|
type: Directive,
|
|
474
474
|
args: [{
|
|
475
475
|
selector: '[trackEvents]'
|
|
@@ -500,10 +500,10 @@ class TrackFocusDirective extends BaseTrackEvents {
|
|
|
500
500
|
ngOnInit() {
|
|
501
501
|
this.trackEvent('focus');
|
|
502
502
|
}
|
|
503
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
504
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.
|
|
503
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackFocusDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
504
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.13", type: TrackFocusDirective, isStandalone: true, selector: "[trackFocus]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters" }, usesInheritance: true, ngImport: i0 }); }
|
|
505
505
|
}
|
|
506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
506
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackFocusDirective, decorators: [{
|
|
507
507
|
type: Directive,
|
|
508
508
|
args: [{
|
|
509
509
|
selector: '[trackFocus]'
|
|
@@ -520,11 +520,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
|
|
|
520
520
|
* @deprecated TrackEventsDirective, TrackClickDirective and TrackFocusDirective are now standalone, this module will be removed in v14
|
|
521
521
|
*/
|
|
522
522
|
class TrackEventsModule {
|
|
523
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
524
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
525
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
523
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackEventsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
524
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: TrackEventsModule, imports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective], exports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective] }); }
|
|
525
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackEventsModule }); }
|
|
526
526
|
}
|
|
527
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
527
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TrackEventsModule, decorators: [{
|
|
528
528
|
type: NgModule,
|
|
529
529
|
args: [{
|
|
530
530
|
imports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective],
|
|
@@ -678,13 +678,13 @@ class EventTrackStoreModule {
|
|
|
678
678
|
]
|
|
679
679
|
};
|
|
680
680
|
}
|
|
681
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
682
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
683
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
681
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: EventTrackStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
682
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: EventTrackStoreModule, imports: [i1.StoreFeatureModule] }); }
|
|
683
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: EventTrackStoreModule, providers: [
|
|
684
684
|
{ provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: getDefaultEventTrackReducer }
|
|
685
685
|
], imports: [StoreModule.forFeature(EVENT_TRACK_STORE_NAME, EVENT_TRACK_REDUCER_TOKEN)] }); }
|
|
686
686
|
}
|
|
687
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
687
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: EventTrackStoreModule, decorators: [{
|
|
688
688
|
type: NgModule,
|
|
689
689
|
args: [{
|
|
690
690
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o3r-analytics.mjs","sources":["../../src/services/event-track/event-track.configuration.ts","../../src/services/event-track/event-track.helpers.ts","../../src/services/event-track/event-track.service.ts","../../src/directives/track-events/base-track-events.ts","../../src/directives/track-events/track-click/track-click.directive.ts","../../src/directives/track-events/track-events.directive.ts","../../src/directives/track-events/track-focus/track-focus.directive.ts","../../src/directives/track-events/track-events.module.ts","../../src/stores/event-track/event-track.actions.ts","../../src/stores/event-track/event-track.reducer.ts","../../src/stores/event-track/event-track.state.ts","../../src/stores/event-track/event-track.module.ts","../../src/stores/event-track/event-track.selectors.ts","../../src/stores/event-track/event-track.sync.ts","../../src/o3r-analytics.ts"],"sourcesContent":["import {\n InjectionToken,\n} from '@angular/core';\n\n/** Controls the activation of mesurements and ui events tracking */\nexport interface TrackActive {\n /** Boolean to activate/deactivate the ui event tracking */\n uiTracking: boolean;\n /** Boolean to activate/deactivate performace measurements */\n perfTracking: boolean;\n}\n\n/** Track events service configuration object */\nexport interface EventTrackConfiguration {\n /** Defines how many values will be kept in performance metrics stream */\n perfBufferSize: number;\n /** Defines how many values will be kept in ui events stream */\n uiEventsBufferSize: number;\n /** If true, it will use the browser API to get the value of the FP for the first time; */\n useBrowserApiForFirstFP: boolean;\n /** Controls the activation of mesurements and ui events tracking */\n activate: TrackActive;\n /**\n * Request ID header from call (default: {@link defaultEventTrackConfiguration.requestIdHeader})\n * @default 'ama-request-id'\n */\n requestIdHeader: string;\n /**\n * Trace header from call (default: {@link defaultEventTrackConfiguration.traceHeader})\n * @default 'traceparent'\n */\n traceHeader: string;\n}\n\n/** Default configuration of tracking service */\nexport const defaultEventTrackConfiguration = {\n perfBufferSize: 10,\n uiEventsBufferSize: 20,\n useBrowserApiForFirstFP: false,\n requestIdHeader: 'ama-request-id',\n traceHeader: 'traceparent',\n activate: {\n uiTracking: true,\n perfTracking: true\n }\n} as const satisfies EventTrackConfiguration;\n\n/** Tracking service configuration token used to override the default configuration */\nexport const EVENT_TRACK_SERVICE_CONFIGURATION = new InjectionToken<Partial<EventTrackConfiguration>>('EVENT TRACK');\n","/**\n * Check if input is of type {@link PerformanceNavigationTiming}\n * @param entry PerformanceEntry\n * @returns type indicator if {@link entry} meets the condition of {@link PerformanceNavigationTiming}\n */\nexport function isPerformanceNavigationEntry(entry: PerformanceEntry | undefined): entry is PerformanceNavigationTiming {\n return entry?.entryType === 'navigation';\n}\n","/* eslint-disable @typescript-eslint/naming-convention -- naming convention for DOM, FP, and FMP imposed by Lighthouse */\nimport {\n decodeTraceparentHeader,\n type Mark,\n} from '@ama-sdk/core';\nimport {\n inject,\n Injectable,\n NgZone,\n} from '@angular/core';\nimport {\n NavigationEnd,\n Router,\n} from '@angular/router';\nimport {\n BehaviorSubject,\n combineLatest,\n fromEvent,\n Observable,\n of,\n ReplaySubject,\n switchMap,\n} from 'rxjs';\nimport {\n delay,\n filter,\n skip,\n skipWhile,\n take,\n takeWhile,\n withLatestFrom,\n} from 'rxjs/operators';\nimport {\n CustomEventMarks,\n CustomEventPayload,\n EventTiming,\n FirstLoadDataPayload,\n PerfEventPayload,\n ServerCallMetric,\n UiEventPayload,\n} from '../../contracts';\nimport {\n defaultEventTrackConfiguration,\n EVENT_TRACK_SERVICE_CONFIGURATION,\n} from './event-track.configuration';\nimport {\n isPerformanceNavigationEntry,\n} from './event-track.helpers';\n\n/** The initial value of the performance measurements */\nexport const performanceMarksInitialState: Readonly<PerfEventPayload> = {\n page: '',\n perceived: {},\n serverCalls: [],\n customMarks: []\n} as const;\n\n/**\n * Service to expose the tracked events as streams. Also provide a way to activate/deactivate the tracking\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class EventTrackService {\n private readonly uiEventTrack: ReplaySubject<UiEventPayload>;\n\n private readonly customEventTrack: ReplaySubject<CustomEventPayload>;\n\n private readonly perfEventTrack: ReplaySubject<PerfEventPayload>;\n\n private readonly uiTrackingActivated: BehaviorSubject<boolean>;\n\n private readonly perfTrackingActivated: BehaviorSubject<boolean>;\n\n private firstPaint?: Promise<EventTiming>;\n\n /** UI captured events as stream */\n public uiEventTrack$: Observable<UiEventPayload>;\n\n /** Custom captured events as stream */\n public customEventTrack$: Observable<CustomEventPayload>;\n\n /** Performance captured events as stream */\n public perfEventTrack$: Observable<PerfEventPayload>;\n\n /** Stream of booleans for the ui tracking mode active/inactive */\n public uiTrackingActive$: Observable<boolean>;\n\n /** Stream of booleans for the performance tracking mode active/inactive */\n public perfTrackingActive$: Observable<boolean>;\n\n /** True if the perf tracking is activated; false otherwise */\n private isPerfTrackingActive!: boolean;\n\n /** Boolean to indicate the first load of the application */\n private isFirstLoad = true;\n\n private _performancePayload: PerfEventPayload = performanceMarksInitialState;\n /** Performance payload object */\n private get performancePayload() {\n return this._performancePayload;\n }\n\n /** Performance payload object */\n private set performancePayload(value: PerfEventPayload) {\n if (this.isPerfTrackingActive) {\n this._performancePayload = { ...value, page: this.router.url }; // Saves the current page url\n this.perfEventTrack.next(this._performancePayload);\n }\n }\n\n private readonly requestIdHeader: string;\n private readonly traceHeader: string;\n\n private readonly router = inject(Router);\n private readonly zone = inject(NgZone);\n private readonly config = inject(EVENT_TRACK_SERVICE_CONFIGURATION, { optional: true });\n\n constructor() {\n const eventConfiguration = { ...defaultEventTrackConfiguration, ...this.config };\n this.requestIdHeader = eventConfiguration.requestIdHeader;\n this.traceHeader = eventConfiguration.traceHeader;\n this.uiTrackingActivated = new BehaviorSubject<boolean>(eventConfiguration.activate.uiTracking);\n this.uiTrackingActive$ = this.uiTrackingActivated.asObservable();\n this.uiEventTrack = new ReplaySubject<UiEventPayload>(eventConfiguration.uiEventsBufferSize);\n this.uiEventTrack$ = this.uiEventTrack.asObservable();\n\n // Custom events\n this.customEventTrack = new ReplaySubject<CustomEventPayload>();\n this.customEventTrack$ = this.customEventTrack.asObservable();\n\n this.perfTrackingActivated = new BehaviorSubject<boolean>(eventConfiguration.activate.perfTracking);\n this.perfTrackingActive$ = this.perfTrackingActivated.asObservable();\n this.perfEventTrack = new ReplaySubject<PerfEventPayload>(eventConfiguration.perfBufferSize);\n this.perfEventTrack$ = this.perfEventTrack.asObservable();\n\n this.perfTrackingActive$.subscribe((activated) => this.isPerfTrackingActive = activated);\n\n const routerNavigationEnd$ = this.router.events.pipe(filter((event): event is NavigationEnd => event instanceof NavigationEnd));\n const trackingNavigationEnd$ = routerNavigationEnd$.pipe(withLatestFrom(this.perfTrackingActive$));\n\n // Handles first load navigation\n combineLatest(\n trackingNavigationEnd$.pipe(\n take(1),\n filter(() => typeof window.performance.timing !== 'undefined'),\n takeWhile(([_event, active]) => active)\n ),\n of(window.performance).pipe(\n switchMap((windowPerformance) => {\n const latestPerformanceEntry = windowPerformance.getEntriesByType?.('navigation').at(-1);\n const wasLoadEventTriggered = isPerformanceNavigationEntry(latestPerformanceEntry) && latestPerformanceEntry.duration > 0;\n if (wasLoadEventTriggered) {\n return of(true);\n }\n\n return fromEvent(window, 'load').pipe(delay(0));\n })\n )\n ).subscribe(async () => {\n if (eventConfiguration.useBrowserApiForFirstFP) {\n const browserEntries = window.performance.getEntriesByType && window.performance.getEntriesByType('paint');\n const browserFP = browserEntries && browserEntries.find((entry) => entry.name === 'first-paint');\n if (browserFP) {\n const endTime = Math.round(browserFP.startTime);\n this.addFPToPerfPayload({ startTime: 0, endTime });\n }\n } else if (this.firstPaint) { // If there is a registered firstPaint value emit it\n this.addFPToPerfPayload(await this.firstPaint);\n this.firstPaint = undefined;\n }\n this.markFirstLoad();\n });\n\n // Handles later navigation\n trackingNavigationEnd$.pipe(\n skip(1),\n skipWhile(([_event, active]) => !active)\n ).subscribe(async () => {\n this.isFirstLoad = false;\n this.resetPerfMarks();\n if (this.firstPaint) { // If there is a registered firstPaint value emit it\n this.addFPToPerfPayload(await this.firstPaint);\n this.firstPaint = undefined;\n }\n });\n }\n\n /**\n * Create metrics object for the first load of the application\n */\n private createFirstLoadData(): FirstLoadDataPayload {\n const navigation = window.performance.timing;\n return {\n connection: Math.round(navigation.connectEnd - navigation.navigationStart),\n request: Math.round(navigation.responseStart - navigation.connectEnd),\n response: Math.round(navigation.responseEnd - navigation.responseStart),\n DOM: Math.round(navigation.loadEventEnd - navigation.responseEnd),\n total: Math.round(navigation.loadEventEnd - navigation.navigationStart)\n };\n }\n\n /**\n * Populate performance payload with FP object\n * @param FP\n */\n private addFPToPerfPayload(FP: EventTiming) {\n const perfFirstPaint = {\n ...this.performancePayload,\n perceived: {\n ...this.performancePayload.perceived,\n FP\n }\n };\n this.performancePayload = perfFirstPaint;\n }\n\n /**\n * Reset all metrics to initial state; Add the pageName on top of it\n */\n public resetPerfMarks() {\n this.performancePayload = { ...performanceMarksInitialState };\n }\n\n /**\n * Mark the first load metrics using the navigation API.\n * This has to be called only once in a single page application, being meaningful only for the first load\n * This mark is populated by default in this service when the NavigationEnd event of the router emits for the first time\n */\n public markFirstLoad() {\n const firstLoad = this.createFirstLoadData();\n this.performancePayload = { ...this.performancePayload, firstLoad };\n }\n\n /**\n * Mark the first paint value\n * Store the first paint timing value to be emitted at Navigation End\n * @param emit If true, sets the FP to the current page. Otherwise, wait for next NavigationEnd event to happen\n */\n public async markFP(emit = false) {\n this.firstPaint = this.getTiming();\n if (emit) {\n this.addFPToPerfPayload(await this.firstPaint);\n this.firstPaint = undefined;\n }\n }\n\n /**\n * Mark the first meaningful paint value.\n * @param markOnlyFirstLoad If false, marks the FMP for subsequent loads else only for the first load of the application\n */\n public async markFMP(markOnlyFirstLoad = true) {\n if (!markOnlyFirstLoad || (markOnlyFirstLoad && this.isFirstLoad)) {\n const timing = await this.getTiming();\n const perfFirstMeaningfulPaint = {\n ...this.performancePayload,\n perceived: {\n ...this.performancePayload.perceived,\n FMP: timing\n }\n };\n this.performancePayload = perfFirstMeaningfulPaint;\n }\n }\n\n /**\n * Add data ready perceived event\n * This probe marks the time when the page considers it has all the data to become interactive\n */\n public async markDataReady() {\n const timing = await this.getTiming();\n const perfDataReady = {\n ...this.performancePayload,\n perceived: {\n ...this.performancePayload.perceived,\n dataReady: timing\n }\n };\n this.performancePayload = perfDataReady;\n }\n\n /**\n * Add a custom event and its measurements\n * @param label The event name\n */\n public async addCustomMark(label: string) {\n const timing = await this.getTiming();\n const customMark = { label, timing } as const satisfies CustomEventMarks;\n const perf = { ...this.performancePayload, customMarks: this.performancePayload.customMarks.concat(customMark) };\n this.performancePayload = perf;\n }\n\n /**\n * Add a server call object in the list of server calls metrics\n * @param serverCall The object to add in the server calls metrics\n */\n public addServerCallMark(serverCall: ServerCallMetric) {\n const perf = { ...this.performancePayload, serverCalls: this.performancePayload.serverCalls.concat(serverCall) };\n this.performancePayload = perf;\n }\n\n /**\n * Add a SDK server call mark, in the list of server calls metrics.\n * In order to have requestId for the API calls, your server has to expose 'ama-request-id' via Access-Control-Expose-Headers\n * @param serverMark The mark object\n */\n public async addSDKServerCallMark(serverMark: Mark) {\n let serverCallMetric: ServerCallMetric = {\n url: serverMark.url,\n httpMethod: serverMark.requestOptions.method,\n httpStatus: serverMark.response && serverMark.response.status,\n timing: { startTime: serverMark.startTime, endTime: serverMark.endTime },\n error: serverMark.error\n };\n if (serverMark.response) {\n const clonedResponse = serverMark.response.clone();\n const traceHeader = clonedResponse.headers.get(this.traceHeader);\n const requestId = serverMark.openTelemetryTrace?.traceId\n || (traceHeader && decodeTraceparentHeader(traceHeader)?.traceId)\n || clonedResponse.headers.get(this.requestIdHeader)\n || undefined;\n const blob = await clonedResponse.blob();\n serverCallMetric = {\n ...serverCallMetric,\n responseSize: blob.size,\n requestId\n };\n }\n this.addServerCallMark(serverCallMetric);\n }\n\n /**\n * Add a custom event and mark the start time, and returns the element index\n * @param label Event name\n * @returns the element index if tracking is active. Otherwise, -1\n */\n public startCustomMark(label: string) {\n if (!this.isPerfTrackingActive) {\n return -1;\n }\n const startTime = Math.round(window.performance.now());\n const customMark = { label, timing: { startTime } } as const satisfies CustomEventMarks;\n const perf = { ...this.performancePayload, customMarks: this.performancePayload.customMarks.concat(customMark) };\n this.performancePayload = perf;\n return this.performancePayload.customMarks.length - 1;\n }\n\n /**\n * End the event mark given in parameter;\n * Returns false if the custom event is not found in the list of custom marks; true otherwise\n * @param eventIndex Index of the custom event to be marked as ended\n */\n public endCustomMark(eventIndex: number) {\n if (!this.isPerfTrackingActive) {\n return false;\n }\n let updated = false;\n const perf = {\n ...this.performancePayload,\n customMarks: this.performancePayload.customMarks.map((eventObj, index) => {\n if (index !== eventIndex) {\n return eventObj;\n }\n updated = true;\n const endTime = Math.round(window.performance.now());\n return { label: eventObj.label, timing: { ...eventObj.timing, endTime } };\n })\n };\n this.performancePayload = perf;\n return updated;\n }\n\n /**\n * The goal of this method is to compute a time range duration between the moment you call the function (lower bound timestamp)\n * and the end of the composite rendering (upper bound measurement - a time mark that occurs after the real composite)\n * For the first load of the application, the start time is considered as the start of navigation to ensure a cumulative measure.\n * It is using the 'NgZone' service to runOutsideAngular to prevent any change detection to occur, nor angular error handling, speeding up the measurement.\n * Example {@link markFMP} is called in {@link ngAfterViewInit}, the end time will be computed once the render pipeline stage completed the changes triggered by the javascript\n */\n public getTiming(): Promise<EventTiming> {\n const startTime = this.isFirstLoad ? 0 : Math.round(window.performance.now());\n return new Promise((resolve) => {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const endTime = Math.round(window.performance.now());\n resolve({ startTime, endTime });\n }, 0);\n });\n });\n }\n\n /**\n * Add an event to the stream of captured UI events\n * @param uiEvent emitted event object\n */\n public addUiEvent(uiEvent: UiEventPayload) {\n this.uiEventTrack.next(uiEvent);\n }\n\n /**\n * Add an event to the stream of captured custom events\n * @param customEvent emitted event object\n */\n public addCustomEvent(customEvent: CustomEventPayload) {\n this.customEventTrack.next(customEvent);\n }\n\n /**\n * Activate/deactivate the tracking mode for UI events\n * @param activate activation/deactivation boolean\n */\n public toggleUiTracking(activate: boolean) {\n this.uiTrackingActivated.next(activate);\n }\n\n /**\n * Activate/deactivate the tracking mode for performance measurements\n * @param activate activation/deactivation boolean\n */\n public togglePerfTracking(activate: boolean) {\n this.perfTrackingActivated.next(activate);\n }\n}\n","import {\n Directive,\n ElementRef,\n inject,\n Renderer2,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n} from '@angular/core/rxjs-interop';\nimport {\n AnalyticsEvent,\n ConstructorAnalyticsEvent,\n ConstructorAnalyticsEventParameters,\n EventContext,\n TrackEventName,\n} from '../../contracts';\nimport {\n EventTrackService,\n} from '../../services/event-track';\n\n@Directive()\nexport abstract class BaseTrackEvents {\n private readonly el = inject(ElementRef);\n private readonly trackEventsService = inject(EventTrackService);\n private readonly renderer = inject(Renderer2);\n\n /**\n * Custom object to be stored when the click event is captured\n */\n public abstract trackEventContext?: EventContext;\n\n /**\n * Class to create the EventContext\n */\n public abstract trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;\n\n /**\n * Parameter that should be given to the\n */\n public abstract trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;\n\n /**\n * Store the functions returned by the angular renderer when an event listener is built\n * The functions can be called to destroy the associated listeners\n */\n protected unlistenFns: (() => void)[] = [];\n\n /** Array of track events objects */\n protected trackingEvents: TrackEventName[] = [];\n\n /** Flag for the tracking mode */\n protected isTrackingActive = false;\n\n constructor() {\n this.trackEventsService.uiTrackingActive$.pipe(takeUntilDestroyed()).subscribe((isActive) => {\n this.isTrackingActive = isActive;\n if (isActive) {\n this.listen();\n } else {\n this.unlisten();\n }\n });\n }\n\n /**\n * Create the listener for the given event\n * @param event name\n */\n protected nativeListen(event: TrackEventName) {\n // Renderer is used because it is manipulating the DOM and when the element is destroyed the event listener is destroyed too.\n // Usage of an observable from event was not possible because the ngOnDestroy with the unsubscribe was called before the ui event was handled\n return this.renderer.listen(this.el.nativeElement, event, (nativeEvent) => {\n if (this.trackEventContextConstructor) {\n this.trackEventsService.addUiEvent({ nativeEvent, context: new this.trackEventContextConstructor(this.trackEventContextConstructorParameters) });\n } else if (this.trackEventContext) {\n this.trackEventsService.addUiEvent({ nativeEvent, context: this.trackEventContext });\n }\n });\n }\n\n /** Create the events listeners */\n public listen() {\n this.unlisten();\n this.unlistenFns = this.trackingEvents.map((event) => this.nativeListen(event));\n }\n\n /** Remove the created events listeners */\n public unlisten() {\n this.unlistenFns.forEach((fn) => fn());\n this.unlistenFns = [];\n }\n\n /**\n * Keep the events to be listen and create the listener event for the given event name\n * @param event name\n */\n public trackEvent(event: TrackEventName) {\n this.trackingEvents.push(event);\n if (this.isTrackingActive) {\n this.unlistenFns.push(this.nativeListen(event));\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n} from '@angular/core';\nimport {\n AnalyticsEvent,\n ConstructorAnalyticsEvent,\n ConstructorAnalyticsEventParameters,\n EventContext,\n} from '../../../contracts/index';\nimport {\n BaseTrackEvents,\n} from '../base-track-events';\n\n/**\n * Directive to capture the 'click' event on the reference element.\n * The captured event will be exposed via EventTrackService\n * @example\n * ```html\n * <my-component\n * (click)=\"doSomething()\"\n * trackClick\n * [trackEventContext]=\"{context: 'click on the component with tag: my-component'}\">\n * </my-component>\n * ```\n */\n@Directive({\n selector: '[trackClick]'\n})\nexport class TrackClickDirective extends BaseTrackEvents implements OnInit {\n /**\n * @inheritdoc\n */\n @Input() public trackEventContext?: EventContext;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;\n\n public ngOnInit() {\n this.trackEvent('click');\n this.trackEvent('contextmenu');\n this.trackEvent('auxclick');\n }\n}\n","import {\n Directive,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport {\n AnalyticsEvent,\n ConstructorAnalyticsEvent,\n ConstructorAnalyticsEventParameters,\n EventContext,\n TrackEventName,\n} from '../../contracts';\nimport {\n BaseTrackEvents,\n} from './base-track-events';\n\n/**\n * Directive to capture the events given as input, on the reference element.\n * The captured event will be exposed via EventTrackService\n * @example\n * ```html\n * <my-component\n * (click)=\"doSomething()\"\n * [trackEvents]=\"['mouseenter', 'mouseleave']\"\n * [trackEventContext]=\"{context: 'click on the component with tag: my-component'}\">\n * </my-component>\n * ```\n */\n@Directive({\n selector: '[trackEvents]'\n})\nexport class TrackEventsDirective extends BaseTrackEvents implements OnChanges {\n /**\n * @inheritdoc\n */\n @Input() public trackEventContext?: EventContext;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;\n\n /** The list of events to listen */\n @Input('trackEvents') public trackEventNames: TrackEventName[] = [];\n\n public ngOnChanges(changes: SimpleChanges) {\n if ('trackEventNames' in changes) {\n this.trackingEvents = [];\n this.unlisten();\n this.trackEventNames.forEach((eventName) => this.trackEvent(eventName));\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n} from '@angular/core';\nimport {\n AnalyticsEvent,\n ConstructorAnalyticsEvent,\n ConstructorAnalyticsEventParameters,\n EventContext,\n} from '../../../contracts/index';\nimport {\n BaseTrackEvents,\n} from '../base-track-events';\n\n/**\n * Directive to capture the 'focus' event on the reference element.\n * The captured event will be exposed via EventTrackService\n * @example\n * ```html\n * <my-component\n * trackFocus\n * [trackEventContext]=\"{context: 'focus on the component with tag: my-component'}\">\n * </my-component>\n * ```\n */\n@Directive({\n selector: '[trackFocus]'\n})\nexport class TrackFocusDirective extends BaseTrackEvents implements OnInit {\n /**\n * @inheritdoc\n */\n @Input() public trackEventContext?: EventContext;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;\n\n public ngOnInit() {\n this.trackEvent('focus');\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n TrackClickDirective,\n} from './track-click/track-click.directive';\nimport {\n TrackEventsDirective,\n} from './track-events.directive';\nimport {\n TrackFocusDirective,\n} from './track-focus/track-focus.directive';\n\n/**\n * @deprecated TrackEventsDirective, TrackClickDirective and TrackFocusDirective are now standalone, this module will be removed in v14\n */\n@NgModule({\n imports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective],\n exports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective]\n})\nexport class TrackEventsModule {}\n","import {\n createAction,\n props,\n} from '@ngrx/store';\nimport {\n EventTrackState,\n RegisterHeroComponentPayload,\n} from './event-track.state';\n\n/** StateActions */\nconst ACTION_SET = '[EventTrack] set';\nconst ACTION_UPDATE = '[EventTrack] update';\nconst ACTION_REGISTER_HERO_COMPONENT = '[EventTrack] register hero component';\nconst ACTION_SET_HERO_COMPONENT_TTI = '[EventTrack] set hero component TTI';\nconst ACTION_RESET = '[EventTrack] reset';\n\n/**\n * The payload for setting TTI for a hero component\n */\nexport interface SetHeroComponentTTIPayload {\n /**\n * The identifier of the hero component\n */\n id: string;\n\n /**\n * The TTI measure for the hero component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention -- naming convention imposed by Lighthouse\n TTI: number;\n\n /**\n * List of API endpoints used in the Hero component and it's subcomponents\n * These are the API's invoked when the TTI is measured\n */\n involvedApiEndpoints?: string[];\n}\n\n/**\n * Clear the current store object and replace it with the new one\n */\nexport const setEventTrack = createAction(ACTION_SET, props<{ model: EventTrackState }>());\n\n/**\n * Change a part or the whole object in the store.\n */\nexport const updateEventTrack = createAction(ACTION_UPDATE, props<Partial<{ model: EventTrackState }>>());\n\n/**\n * Clear the whole state, return to the initial one\n */\nexport const resetEventTrack = createAction(ACTION_RESET);\n\n/**\n * Register hero component in the store\n */\nexport const registerHeroComponent = createAction(ACTION_REGISTER_HERO_COMPONENT, props<{ model: RegisterHeroComponentPayload }>());\n\n/**\n * Set the TTI measure for a hero component in the store\n */\nexport const setHeroComponentTTI = createAction(ACTION_SET_HERO_COMPONENT_TTI, props<{ model: SetHeroComponentTTIPayload }>());\n","import {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './event-track.actions';\nimport {\n EventTrackState,\n HeroComponent,\n} from './event-track.state';\n\n/** The initial value of the Hero component */\nexport const heroComponentInitialState: HeroComponent = { id: '', TTI: 0, involvedApiEndpoints: [] };\n\n/**\n * eventTrack initial state\n */\nexport const eventTrackInitialState: EventTrackState = {\n heroComponent: heroComponentInitialState,\n isTTIComputed: false\n};\n\n/**\n * Return all the involved API endpoints present in the component including its child & subchild\n * Iterate recursively till the component with no children\n * @param component\n * @returns string[]\n */\nfunction getComponentInvolvedEndPoints(component: HeroComponent): string[] {\n return Array.from(\n (component.children || []).reduce((accum, value) => {\n getComponentInvolvedEndPoints(value).forEach((item) => accum.add(item));\n return accum;\n }, new Set<string>(component.involvedApiEndpoints))\n );\n}\n\n/**\n * Get all the involved API endpoints of the heroComponent with maximum TTI value\n * If the parent contains max TTI, then all its child & subchild end points are used\n * otherwise only component with max TTI end points are used\n * @param component\n * @param maxTTI\n * @returns string[]\n */\nfunction getInvolvedAPIEndpoints(component: HeroComponent, maxTTI: number): string[] {\n if (component.componentTTI === maxTTI) {\n return getComponentInvolvedEndPoints(component);\n }\n return Array.from(\n (component.children || []).reduce((accum, value) => {\n getInvolvedAPIEndpoints(value, maxTTI).forEach((endpoint) => accum.add(endpoint));\n return accum;\n }, new Set<string>())\n );\n}\n\n/**\n * Recursively iterate the page hierarchy\n * and set the TTI for the specified component\n * and compute the TTI for the corresponding parent\n * @param component the parent component/page\n * @param id the identifier of the component/page\n * @param value the TTI value\n * @param endpoints API URLs of the component\n * @returns HeroComponent\n */\nfunction computeTTI(component: HeroComponent, id: string, value: number, endpoints: string[] = []): HeroComponent {\n const computedComponent = { ...component };\n if (computedComponent.id === id) {\n computedComponent.TTI = value;\n computedComponent.hasBeenLogged = true;\n computedComponent.involvedApiEndpoints = endpoints;\n computedComponent.componentTTI = value;\n } else if (computedComponent.children) {\n computedComponent.children = computedComponent.children.map((child) => computeTTI(child, id, value, endpoints));\n }\n // Compute the TTI of the current component comparing the child TTI measures\n if (computedComponent.children && computedComponent.children.length > 0) {\n const maxChildTTI = Math.max(...computedComponent.children.map((child: HeroComponent) => child.TTI));\n computedComponent.TTI = Math.max(maxChildTTI, computedComponent.TTI);\n }\n return computedComponent;\n}\n\n/**\n * Check if the TTI for the page is computed\n * @param component the parent component/page\n * @returns boolean\n */\nfunction isTTIComputed(component: HeroComponent): boolean {\n if (component.measureSelf && !component.hasBeenLogged) {\n return false;\n }\n return component.children && component.children.length > 0 ? component.children.every((child) => isTTIComputed(child)) : component.TTI > 0;\n}\n\n/**\n * List of basic actions for EventTrack\n */\nexport const eventTrackReducerFeatures: ReducerTypes<EventTrackState, ActionCreator[]>[] = [\n on(actions.setEventTrack, (_state, payload) => ({ ...payload.model })),\n\n on(actions.updateEventTrack, (state, payload) => ({ ...state, ...payload.model })),\n\n on(actions.resetEventTrack, () => eventTrackInitialState),\n\n on(actions.registerHeroComponent, (state, payload) => ({ ...state, heroComponent: { ...payload.model, TTI: 0 } })),\n\n on(actions.setHeroComponentTTI, (state, payload) => {\n const updatedHeroComponent = computeTTI(state.heroComponent, payload.model.id, payload.model.TTI, payload.model.involvedApiEndpoints);\n const isComputed = isTTIComputed(updatedHeroComponent);\n if (isComputed) {\n updatedHeroComponent.involvedApiEndpoints = getInvolvedAPIEndpoints(updatedHeroComponent, updatedHeroComponent.TTI) || [];\n }\n return { ...state, heroComponent: updatedHeroComponent, isTTIComputed: isComputed };\n })\n];\n\n/**\n * EventTrack Store default reducer\n */\nexport const eventTrackReducer = createReducer(\n eventTrackInitialState,\n ...eventTrackReducerFeatures\n);\n","/**\n * The interface for Hero component, which determines the Time To Interactive (TTI) for a page\n * It follows a Tree data structure, with the root node as the Page and the hero components as\n * its children. Each child can have its own hero components. The TTI for the page\n * would be computed using a bottom-up approach starting from the children at the bottom (leaf nodes).\n */\nexport interface HeroComponent extends RegisterHeroComponentPayload {\n /** The Time To Interactive(TTI) measure for the component */\n // eslint-disable-next-line @typescript-eslint/naming-convention -- naming convention imposed by Lighthouse\n TTI: number;\n\n /**\n * Boolean to indicate if the TTI for the component\n * has been explicitly measured and logged\n */\n hasBeenLogged?: boolean;\n\n /**\n * List of API endpoints used in the Hero component and it's subcomponents\n * These are the API's invoked when the TTI is measured\n */\n involvedApiEndpoints?: string[];\n\n /**\n * Actual TTI measure of the component,\n * doesn't change upon it's children Max TTI value\n */\n componentTTI?: number;\n}\n\n/** The interface for the register hero component payload, which is used to register a hero component and its children */\nexport interface RegisterHeroComponentPayload {\n /** The identifier of the hero component */\n id: string;\n /**\n * Boolean to indicate if the TTI computation should take into account\n * the TTI of the component itself in addition to that of its child components\n */\n measureSelf?: boolean;\n /** The identifiers of the children hero components */\n children?: HeroComponent[];\n}\n\n/**\n * EventTrack store state\n */\nexport interface EventTrackState {\n /** The hero component for computing TTI */\n heroComponent: HeroComponent;\n\n /**\n * Boolean to indicate the completion of TTI computation\n * TTI for a hero component is considered to be computed\n * only when the TTI of all its children have been computed\n * eg: for a component A having B and C as children, this value\n * is set only when TTI for all A, B and C have been set\n */\n isTTIComputed: boolean;\n}\n\n/**\n * Name of the EventTrack Store\n */\nexport const EVENT_TRACK_STORE_NAME = 'eventTrack';\n\n/**\n * EventTrack Store Interface\n */\nexport interface EventTrackStore {\n /** EventTrack state */\n [EVENT_TRACK_STORE_NAME]: EventTrackState;\n}\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n eventTrackReducer,\n} from './event-track.reducer';\nimport {\n EVENT_TRACK_STORE_NAME,\n EventTrackState,\n} from './event-track.state';\n\n/** Token of the EventTrack reducer */\nexport const EVENT_TRACK_REDUCER_TOKEN = new InjectionToken<ActionReducer<EventTrackState, Action>>('Feature EventTrack Reducer');\n\n/** Provide default reducer for EventTrack store */\nexport function getDefaultEventTrackReducer() {\n return eventTrackReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(EVENT_TRACK_STORE_NAME, EVENT_TRACK_REDUCER_TOKEN)\n ],\n providers: [\n { provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: getDefaultEventTrackReducer }\n ]\n})\nexport class EventTrackStoreModule {\n public static forRoot<T extends EventTrackState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<EventTrackStoreModule> {\n return {\n ngModule: EventTrackStoreModule,\n providers: [\n { provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createFeatureSelector,\n createSelector,\n} from '@ngrx/store';\nimport {\n EVENT_TRACK_STORE_NAME,\n EventTrackState,\n} from './event-track.state';\n\n/** Select EventTrack State */\nexport const selectEventTrackState = createFeatureSelector<EventTrackState>(EVENT_TRACK_STORE_NAME);\n\n/** Select hero component status */\nexport const selectHeroComponentStatus = createSelector(selectEventTrackState, (state): number | undefined => (state.isTTIComputed ? state.heroComponent.TTI : undefined));\n","import type {\n Serializer,\n} from '@o3r/core';\nimport {\n eventTrackInitialState,\n} from './event-track.reducer';\nimport {\n EventTrackState,\n} from './event-track.state';\n\nexport const eventTrackStorageSync: Readonly<Serializer<EventTrackState>> = {\n deserialize: (rawObject: any) => {\n return rawObject ? rawObject as EventTrackState : eventTrackInitialState;\n }\n} as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["actions.setEventTrack","actions.updateEventTrack","actions.resetEventTrack","actions.registerHeroComponent","actions.setHeroComponentTTI"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"o3r-analytics.mjs","sources":["../../src/services/event-track/event-track-configuration.ts","../../src/services/event-track/event-track-helpers.ts","../../src/services/event-track/event-track-service.ts","../../src/directives/track-events/base-track-events.ts","../../src/directives/track-events/track-click/track-click-directive.ts","../../src/directives/track-events/track-events-directive.ts","../../src/directives/track-events/track-focus/track-focus-directive.ts","../../src/directives/track-events/track-events-module.ts","../../src/stores/event-track/event-track.actions.ts","../../src/stores/event-track/event-track.reducer.ts","../../src/stores/event-track/event-track.state.ts","../../src/stores/event-track/event-track-module.ts","../../src/stores/event-track/event-track.selectors.ts","../../src/stores/event-track/event-track.sync.ts","../../src/o3r-analytics.ts"],"sourcesContent":["import {\n InjectionToken,\n} from '@angular/core';\n\n/** Controls the activation of mesurements and ui events tracking */\nexport interface TrackActive {\n /** Boolean to activate/deactivate the ui event tracking */\n uiTracking: boolean;\n /** Boolean to activate/deactivate performace measurements */\n perfTracking: boolean;\n}\n\n/** Track events service configuration object */\nexport interface EventTrackConfiguration {\n /** Defines how many values will be kept in performance metrics stream */\n perfBufferSize: number;\n /** Defines how many values will be kept in ui events stream */\n uiEventsBufferSize: number;\n /** If true, it will use the browser API to get the value of the FP for the first time; */\n useBrowserApiForFirstFP: boolean;\n /** Controls the activation of mesurements and ui events tracking */\n activate: TrackActive;\n /**\n * Request ID header from call (default: {@link defaultEventTrackConfiguration.requestIdHeader})\n * @default 'ama-request-id'\n */\n requestIdHeader: string;\n /**\n * Trace header from call (default: {@link defaultEventTrackConfiguration.traceHeader})\n * @default 'traceparent'\n */\n traceHeader: string;\n}\n\n/** Default configuration of tracking service */\nexport const defaultEventTrackConfiguration = {\n perfBufferSize: 10,\n uiEventsBufferSize: 20,\n useBrowserApiForFirstFP: false,\n requestIdHeader: 'ama-request-id',\n traceHeader: 'traceparent',\n activate: {\n uiTracking: true,\n perfTracking: true\n }\n} as const satisfies EventTrackConfiguration;\n\n/** Tracking service configuration token used to override the default configuration */\nexport const EVENT_TRACK_SERVICE_CONFIGURATION = new InjectionToken<Partial<EventTrackConfiguration>>('EVENT TRACK');\n","/**\n * Check if input is of type {@link PerformanceNavigationTiming}\n * @param entry PerformanceEntry\n * @returns type indicator if {@link entry} meets the condition of {@link PerformanceNavigationTiming}\n */\nexport function isPerformanceNavigationEntry(entry: PerformanceEntry | undefined): entry is PerformanceNavigationTiming {\n return entry?.entryType === 'navigation';\n}\n","/* eslint-disable @typescript-eslint/naming-convention -- naming convention for DOM, FP, and FMP imposed by Lighthouse */\nimport {\n decodeTraceparentHeader,\n type Mark,\n} from '@ama-sdk/core';\nimport {\n inject,\n Injectable,\n NgZone,\n} from '@angular/core';\nimport {\n NavigationEnd,\n Router,\n} from '@angular/router';\nimport {\n BehaviorSubject,\n combineLatest,\n fromEvent,\n Observable,\n of,\n ReplaySubject,\n switchMap,\n} from 'rxjs';\nimport {\n delay,\n filter,\n skip,\n skipWhile,\n take,\n takeWhile,\n withLatestFrom,\n} from 'rxjs/operators';\nimport {\n CustomEventMarks,\n CustomEventPayload,\n EventTiming,\n FirstLoadDataPayload,\n PerfEventPayload,\n ServerCallMetric,\n UiEventPayload,\n} from '../../contracts';\nimport {\n defaultEventTrackConfiguration,\n EVENT_TRACK_SERVICE_CONFIGURATION,\n} from './event-track-configuration';\nimport {\n isPerformanceNavigationEntry,\n} from './event-track-helpers';\n\n/** The initial value of the performance measurements */\nexport const performanceMarksInitialState: Readonly<PerfEventPayload> = {\n page: '',\n perceived: {},\n serverCalls: [],\n customMarks: []\n} as const;\n\n/**\n * Service to expose the tracked events as streams. Also provide a way to activate/deactivate the tracking\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class EventTrackService {\n private readonly uiEventTrack: ReplaySubject<UiEventPayload>;\n\n private readonly customEventTrack: ReplaySubject<CustomEventPayload>;\n\n private readonly perfEventTrack: ReplaySubject<PerfEventPayload>;\n\n private readonly uiTrackingActivated: BehaviorSubject<boolean>;\n\n private readonly perfTrackingActivated: BehaviorSubject<boolean>;\n\n private firstPaint?: Promise<EventTiming>;\n\n /** UI captured events as stream */\n public uiEventTrack$: Observable<UiEventPayload>;\n\n /** Custom captured events as stream */\n public customEventTrack$: Observable<CustomEventPayload>;\n\n /** Performance captured events as stream */\n public perfEventTrack$: Observable<PerfEventPayload>;\n\n /** Stream of booleans for the ui tracking mode active/inactive */\n public uiTrackingActive$: Observable<boolean>;\n\n /** Stream of booleans for the performance tracking mode active/inactive */\n public perfTrackingActive$: Observable<boolean>;\n\n /** True if the perf tracking is activated; false otherwise */\n private isPerfTrackingActive!: boolean;\n\n /** Boolean to indicate the first load of the application */\n private isFirstLoad = true;\n\n private _performancePayload: PerfEventPayload = performanceMarksInitialState;\n /** Performance payload object */\n private get performancePayload() {\n return this._performancePayload;\n }\n\n /** Performance payload object */\n private set performancePayload(value: PerfEventPayload) {\n if (this.isPerfTrackingActive) {\n this._performancePayload = { ...value, page: this.router.url }; // Saves the current page url\n this.perfEventTrack.next(this._performancePayload);\n }\n }\n\n private readonly requestIdHeader: string;\n private readonly traceHeader: string;\n\n private readonly router = inject(Router);\n private readonly zone = inject(NgZone);\n private readonly config = inject(EVENT_TRACK_SERVICE_CONFIGURATION, { optional: true });\n\n constructor() {\n const eventConfiguration = { ...defaultEventTrackConfiguration, ...this.config };\n this.requestIdHeader = eventConfiguration.requestIdHeader;\n this.traceHeader = eventConfiguration.traceHeader;\n this.uiTrackingActivated = new BehaviorSubject<boolean>(eventConfiguration.activate.uiTracking);\n this.uiTrackingActive$ = this.uiTrackingActivated.asObservable();\n this.uiEventTrack = new ReplaySubject<UiEventPayload>(eventConfiguration.uiEventsBufferSize);\n this.uiEventTrack$ = this.uiEventTrack.asObservable();\n\n // Custom events\n this.customEventTrack = new ReplaySubject<CustomEventPayload>();\n this.customEventTrack$ = this.customEventTrack.asObservable();\n\n this.perfTrackingActivated = new BehaviorSubject<boolean>(eventConfiguration.activate.perfTracking);\n this.perfTrackingActive$ = this.perfTrackingActivated.asObservable();\n this.perfEventTrack = new ReplaySubject<PerfEventPayload>(eventConfiguration.perfBufferSize);\n this.perfEventTrack$ = this.perfEventTrack.asObservable();\n\n this.perfTrackingActive$.subscribe((activated) => this.isPerfTrackingActive = activated);\n\n const routerNavigationEnd$ = this.router.events.pipe(filter((event): event is NavigationEnd => event instanceof NavigationEnd));\n const trackingNavigationEnd$ = routerNavigationEnd$.pipe(withLatestFrom(this.perfTrackingActive$));\n\n // Handles first load navigation\n combineLatest(\n trackingNavigationEnd$.pipe(\n take(1),\n filter(() => typeof window.performance.timing !== 'undefined'),\n takeWhile(([_event, active]) => active)\n ),\n of(window.performance).pipe(\n switchMap((windowPerformance) => {\n const latestPerformanceEntry = windowPerformance.getEntriesByType?.('navigation').at(-1);\n const wasLoadEventTriggered = isPerformanceNavigationEntry(latestPerformanceEntry) && latestPerformanceEntry.duration > 0;\n if (wasLoadEventTriggered) {\n return of(true);\n }\n\n return fromEvent(window, 'load').pipe(delay(0));\n })\n )\n ).subscribe(async () => {\n if (eventConfiguration.useBrowserApiForFirstFP) {\n const browserEntries = window.performance.getEntriesByType && window.performance.getEntriesByType('paint');\n const browserFP = browserEntries && browserEntries.find((entry) => entry.name === 'first-paint');\n if (browserFP) {\n const endTime = Math.round(browserFP.startTime);\n this.addFPToPerfPayload({ startTime: 0, endTime });\n }\n } else if (this.firstPaint) { // If there is a registered firstPaint value emit it\n this.addFPToPerfPayload(await this.firstPaint);\n this.firstPaint = undefined;\n }\n this.markFirstLoad();\n });\n\n // Handles later navigation\n trackingNavigationEnd$.pipe(\n skip(1),\n skipWhile(([_event, active]) => !active)\n ).subscribe(async () => {\n this.isFirstLoad = false;\n this.resetPerfMarks();\n if (this.firstPaint) { // If there is a registered firstPaint value emit it\n this.addFPToPerfPayload(await this.firstPaint);\n this.firstPaint = undefined;\n }\n });\n }\n\n /**\n * Create metrics object for the first load of the application\n */\n private createFirstLoadData(): FirstLoadDataPayload {\n const navigation = window.performance.timing;\n return {\n connection: Math.round(navigation.connectEnd - navigation.navigationStart),\n request: Math.round(navigation.responseStart - navigation.connectEnd),\n response: Math.round(navigation.responseEnd - navigation.responseStart),\n DOM: Math.round(navigation.loadEventEnd - navigation.responseEnd),\n total: Math.round(navigation.loadEventEnd - navigation.navigationStart)\n };\n }\n\n /**\n * Populate performance payload with FP object\n * @param FP\n */\n private addFPToPerfPayload(FP: EventTiming) {\n const perfFirstPaint = {\n ...this.performancePayload,\n perceived: {\n ...this.performancePayload.perceived,\n FP\n }\n };\n this.performancePayload = perfFirstPaint;\n }\n\n /**\n * Reset all metrics to initial state; Add the pageName on top of it\n */\n public resetPerfMarks() {\n this.performancePayload = { ...performanceMarksInitialState };\n }\n\n /**\n * Mark the first load metrics using the navigation API.\n * This has to be called only once in a single page application, being meaningful only for the first load\n * This mark is populated by default in this service when the NavigationEnd event of the router emits for the first time\n */\n public markFirstLoad() {\n const firstLoad = this.createFirstLoadData();\n this.performancePayload = { ...this.performancePayload, firstLoad };\n }\n\n /**\n * Mark the first paint value\n * Store the first paint timing value to be emitted at Navigation End\n * @param emit If true, sets the FP to the current page. Otherwise, wait for next NavigationEnd event to happen\n */\n public async markFP(emit = false) {\n this.firstPaint = this.getTiming();\n if (emit) {\n this.addFPToPerfPayload(await this.firstPaint);\n this.firstPaint = undefined;\n }\n }\n\n /**\n * Mark the first meaningful paint value.\n * @param markOnlyFirstLoad If false, marks the FMP for subsequent loads else only for the first load of the application\n */\n public async markFMP(markOnlyFirstLoad = true) {\n if (!markOnlyFirstLoad || (markOnlyFirstLoad && this.isFirstLoad)) {\n const timing = await this.getTiming();\n const perfFirstMeaningfulPaint = {\n ...this.performancePayload,\n perceived: {\n ...this.performancePayload.perceived,\n FMP: timing\n }\n };\n this.performancePayload = perfFirstMeaningfulPaint;\n }\n }\n\n /**\n * Add data ready perceived event\n * This probe marks the time when the page considers it has all the data to become interactive\n */\n public async markDataReady() {\n const timing = await this.getTiming();\n const perfDataReady = {\n ...this.performancePayload,\n perceived: {\n ...this.performancePayload.perceived,\n dataReady: timing\n }\n };\n this.performancePayload = perfDataReady;\n }\n\n /**\n * Add a custom event and its measurements\n * @param label The event name\n */\n public async addCustomMark(label: string) {\n const timing = await this.getTiming();\n const customMark = { label, timing } as const satisfies CustomEventMarks;\n const perf = { ...this.performancePayload, customMarks: this.performancePayload.customMarks.concat(customMark) };\n this.performancePayload = perf;\n }\n\n /**\n * Add a server call object in the list of server calls metrics\n * @param serverCall The object to add in the server calls metrics\n */\n public addServerCallMark(serverCall: ServerCallMetric) {\n const perf = { ...this.performancePayload, serverCalls: this.performancePayload.serverCalls.concat(serverCall) };\n this.performancePayload = perf;\n }\n\n /**\n * Add a SDK server call mark, in the list of server calls metrics.\n * In order to have requestId for the API calls, your server has to expose 'ama-request-id' via Access-Control-Expose-Headers\n * @param serverMark The mark object\n */\n public async addSDKServerCallMark(serverMark: Mark) {\n let serverCallMetric: ServerCallMetric = {\n url: serverMark.url,\n httpMethod: serverMark.requestOptions.method,\n httpStatus: serverMark.response && serverMark.response.status,\n timing: { startTime: serverMark.startTime, endTime: serverMark.endTime },\n error: serverMark.error\n };\n if (serverMark.response) {\n const clonedResponse = serverMark.response.clone();\n const traceHeader = clonedResponse.headers.get(this.traceHeader);\n const requestId = serverMark.openTelemetryTrace?.traceId\n || (traceHeader && decodeTraceparentHeader(traceHeader)?.traceId)\n || clonedResponse.headers.get(this.requestIdHeader)\n || undefined;\n const blob = await clonedResponse.blob();\n serverCallMetric = {\n ...serverCallMetric,\n responseSize: blob.size,\n requestId\n };\n }\n this.addServerCallMark(serverCallMetric);\n }\n\n /**\n * Add a custom event and mark the start time, and returns the element index\n * @param label Event name\n * @returns the element index if tracking is active. Otherwise, -1\n */\n public startCustomMark(label: string) {\n if (!this.isPerfTrackingActive) {\n return -1;\n }\n const startTime = Math.round(window.performance.now());\n const customMark = { label, timing: { startTime } } as const satisfies CustomEventMarks;\n const perf = { ...this.performancePayload, customMarks: this.performancePayload.customMarks.concat(customMark) };\n this.performancePayload = perf;\n return this.performancePayload.customMarks.length - 1;\n }\n\n /**\n * End the event mark given in parameter;\n * Returns false if the custom event is not found in the list of custom marks; true otherwise\n * @param eventIndex Index of the custom event to be marked as ended\n */\n public endCustomMark(eventIndex: number) {\n if (!this.isPerfTrackingActive) {\n return false;\n }\n let updated = false;\n const perf = {\n ...this.performancePayload,\n customMarks: this.performancePayload.customMarks.map((eventObj, index) => {\n if (index !== eventIndex) {\n return eventObj;\n }\n updated = true;\n const endTime = Math.round(window.performance.now());\n return { label: eventObj.label, timing: { ...eventObj.timing, endTime } };\n })\n };\n this.performancePayload = perf;\n return updated;\n }\n\n /**\n * The goal of this method is to compute a time range duration between the moment you call the function (lower bound timestamp)\n * and the end of the composite rendering (upper bound measurement - a time mark that occurs after the real composite)\n * For the first load of the application, the start time is considered as the start of navigation to ensure a cumulative measure.\n * It is using the 'NgZone' service to runOutsideAngular to prevent any change detection to occur, nor angular error handling, speeding up the measurement.\n * Example {@link markFMP} is called in {@link ngAfterViewInit}, the end time will be computed once the render pipeline stage completed the changes triggered by the javascript\n */\n public getTiming(): Promise<EventTiming> {\n const startTime = this.isFirstLoad ? 0 : Math.round(window.performance.now());\n return new Promise((resolve) => {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const endTime = Math.round(window.performance.now());\n resolve({ startTime, endTime });\n }, 0);\n });\n });\n }\n\n /**\n * Add an event to the stream of captured UI events\n * @param uiEvent emitted event object\n */\n public addUiEvent(uiEvent: UiEventPayload) {\n this.uiEventTrack.next(uiEvent);\n }\n\n /**\n * Add an event to the stream of captured custom events\n * @param customEvent emitted event object\n */\n public addCustomEvent(customEvent: CustomEventPayload) {\n this.customEventTrack.next(customEvent);\n }\n\n /**\n * Activate/deactivate the tracking mode for UI events\n * @param activate activation/deactivation boolean\n */\n public toggleUiTracking(activate: boolean) {\n this.uiTrackingActivated.next(activate);\n }\n\n /**\n * Activate/deactivate the tracking mode for performance measurements\n * @param activate activation/deactivation boolean\n */\n public togglePerfTracking(activate: boolean) {\n this.perfTrackingActivated.next(activate);\n }\n}\n","import {\n Directive,\n ElementRef,\n inject,\n Renderer2,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n} from '@angular/core/rxjs-interop';\nimport {\n AnalyticsEvent,\n ConstructorAnalyticsEvent,\n ConstructorAnalyticsEventParameters,\n EventContext,\n TrackEventName,\n} from '../../contracts';\nimport {\n EventTrackService,\n} from '../../services/event-track';\n\n@Directive()\nexport abstract class BaseTrackEvents {\n private readonly el = inject(ElementRef);\n private readonly trackEventsService = inject(EventTrackService);\n private readonly renderer = inject(Renderer2);\n\n /**\n * Custom object to be stored when the click event is captured\n */\n public abstract trackEventContext?: EventContext;\n\n /**\n * Class to create the EventContext\n */\n public abstract trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;\n\n /**\n * Parameter that should be given to the\n */\n public abstract trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;\n\n /**\n * Store the functions returned by the angular renderer when an event listener is built\n * The functions can be called to destroy the associated listeners\n */\n protected unlistenFns: (() => void)[] = [];\n\n /** Array of track events objects */\n protected trackingEvents: TrackEventName[] = [];\n\n /** Flag for the tracking mode */\n protected isTrackingActive = false;\n\n constructor() {\n this.trackEventsService.uiTrackingActive$.pipe(takeUntilDestroyed()).subscribe((isActive) => {\n this.isTrackingActive = isActive;\n if (isActive) {\n this.listen();\n } else {\n this.unlisten();\n }\n });\n }\n\n /**\n * Create the listener for the given event\n * @param event name\n */\n protected nativeListen(event: TrackEventName) {\n // Renderer is used because it is manipulating the DOM and when the element is destroyed the event listener is destroyed too.\n // Usage of an observable from event was not possible because the ngOnDestroy with the unsubscribe was called before the ui event was handled\n return this.renderer.listen(this.el.nativeElement, event, (nativeEvent) => {\n if (this.trackEventContextConstructor) {\n this.trackEventsService.addUiEvent({ nativeEvent, context: new this.trackEventContextConstructor(this.trackEventContextConstructorParameters) });\n } else if (this.trackEventContext) {\n this.trackEventsService.addUiEvent({ nativeEvent, context: this.trackEventContext });\n }\n });\n }\n\n /** Create the events listeners */\n public listen() {\n this.unlisten();\n this.unlistenFns = this.trackingEvents.map((event) => this.nativeListen(event));\n }\n\n /** Remove the created events listeners */\n public unlisten() {\n this.unlistenFns.forEach((fn) => fn());\n this.unlistenFns = [];\n }\n\n /**\n * Keep the events to be listen and create the listener event for the given event name\n * @param event name\n */\n public trackEvent(event: TrackEventName) {\n this.trackingEvents.push(event);\n if (this.isTrackingActive) {\n this.unlistenFns.push(this.nativeListen(event));\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n} from '@angular/core';\nimport {\n AnalyticsEvent,\n ConstructorAnalyticsEvent,\n ConstructorAnalyticsEventParameters,\n EventContext,\n} from '../../../contracts/index';\nimport {\n BaseTrackEvents,\n} from '../base-track-events';\n\n/**\n * Directive to capture the 'click' event on the reference element.\n * The captured event will be exposed via EventTrackService\n * @example\n * ```html\n * <my-component\n * (click)=\"doSomething()\"\n * trackClick\n * [trackEventContext]=\"{context: 'click on the component with tag: my-component'}\">\n * </my-component>\n * ```\n */\n@Directive({\n selector: '[trackClick]'\n})\nexport class TrackClickDirective extends BaseTrackEvents implements OnInit {\n /**\n * @inheritdoc\n */\n @Input() public trackEventContext?: EventContext;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;\n\n public ngOnInit() {\n this.trackEvent('click');\n this.trackEvent('contextmenu');\n this.trackEvent('auxclick');\n }\n}\n","import {\n Directive,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport {\n AnalyticsEvent,\n ConstructorAnalyticsEvent,\n ConstructorAnalyticsEventParameters,\n EventContext,\n TrackEventName,\n} from '../../contracts';\nimport {\n BaseTrackEvents,\n} from './base-track-events';\n\n/**\n * Directive to capture the events given as input, on the reference element.\n * The captured event will be exposed via EventTrackService\n * @example\n * ```html\n * <my-component\n * (click)=\"doSomething()\"\n * [trackEvents]=\"['mouseenter', 'mouseleave']\"\n * [trackEventContext]=\"{context: 'click on the component with tag: my-component'}\">\n * </my-component>\n * ```\n */\n@Directive({\n selector: '[trackEvents]'\n})\nexport class TrackEventsDirective extends BaseTrackEvents implements OnChanges {\n /**\n * @inheritdoc\n */\n @Input() public trackEventContext?: EventContext;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;\n\n /** The list of events to listen */\n @Input('trackEvents') public trackEventNames: TrackEventName[] = [];\n\n public ngOnChanges(changes: SimpleChanges) {\n if ('trackEventNames' in changes) {\n this.trackingEvents = [];\n this.unlisten();\n this.trackEventNames.forEach((eventName) => this.trackEvent(eventName));\n }\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n} from '@angular/core';\nimport {\n AnalyticsEvent,\n ConstructorAnalyticsEvent,\n ConstructorAnalyticsEventParameters,\n EventContext,\n} from '../../../contracts/index';\nimport {\n BaseTrackEvents,\n} from '../base-track-events';\n\n/**\n * Directive to capture the 'focus' event on the reference element.\n * The captured event will be exposed via EventTrackService\n * @example\n * ```html\n * <my-component\n * trackFocus\n * [trackEventContext]=\"{context: 'focus on the component with tag: my-component'}\">\n * </my-component>\n * ```\n */\n@Directive({\n selector: '[trackFocus]'\n})\nexport class TrackFocusDirective extends BaseTrackEvents implements OnInit {\n /**\n * @inheritdoc\n */\n @Input() public trackEventContext?: EventContext;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;\n\n /**\n * @inheritdoc\n */\n @Input() public trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;\n\n public ngOnInit() {\n this.trackEvent('focus');\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n TrackClickDirective,\n} from './track-click/track-click-directive';\nimport {\n TrackEventsDirective,\n} from './track-events-directive';\nimport {\n TrackFocusDirective,\n} from './track-focus/track-focus-directive';\n\n/**\n * @deprecated TrackEventsDirective, TrackClickDirective and TrackFocusDirective are now standalone, this module will be removed in v14\n */\n@NgModule({\n imports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective],\n exports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective]\n})\nexport class TrackEventsModule {}\n","import {\n createAction,\n props,\n} from '@ngrx/store';\nimport {\n EventTrackState,\n RegisterHeroComponentPayload,\n} from './event-track.state';\n\n/** StateActions */\nconst ACTION_SET = '[EventTrack] set';\nconst ACTION_UPDATE = '[EventTrack] update';\nconst ACTION_REGISTER_HERO_COMPONENT = '[EventTrack] register hero component';\nconst ACTION_SET_HERO_COMPONENT_TTI = '[EventTrack] set hero component TTI';\nconst ACTION_RESET = '[EventTrack] reset';\n\n/**\n * The payload for setting TTI for a hero component\n */\nexport interface SetHeroComponentTTIPayload {\n /**\n * The identifier of the hero component\n */\n id: string;\n\n /**\n * The TTI measure for the hero component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention -- naming convention imposed by Lighthouse\n TTI: number;\n\n /**\n * List of API endpoints used in the Hero component and it's subcomponents\n * These are the API's invoked when the TTI is measured\n */\n involvedApiEndpoints?: string[];\n}\n\n/**\n * Clear the current store object and replace it with the new one\n */\nexport const setEventTrack = createAction(ACTION_SET, props<{ model: EventTrackState }>());\n\n/**\n * Change a part or the whole object in the store.\n */\nexport const updateEventTrack = createAction(ACTION_UPDATE, props<Partial<{ model: EventTrackState }>>());\n\n/**\n * Clear the whole state, return to the initial one\n */\nexport const resetEventTrack = createAction(ACTION_RESET);\n\n/**\n * Register hero component in the store\n */\nexport const registerHeroComponent = createAction(ACTION_REGISTER_HERO_COMPONENT, props<{ model: RegisterHeroComponentPayload }>());\n\n/**\n * Set the TTI measure for a hero component in the store\n */\nexport const setHeroComponentTTI = createAction(ACTION_SET_HERO_COMPONENT_TTI, props<{ model: SetHeroComponentTTIPayload }>());\n","import {\n ActionCreator,\n createReducer,\n on,\n ReducerTypes,\n} from '@ngrx/store';\nimport * as actions from './event-track.actions';\nimport {\n EventTrackState,\n HeroComponent,\n} from './event-track.state';\n\n/** The initial value of the Hero component */\nexport const heroComponentInitialState: HeroComponent = { id: '', TTI: 0, involvedApiEndpoints: [] };\n\n/**\n * eventTrack initial state\n */\nexport const eventTrackInitialState: EventTrackState = {\n heroComponent: heroComponentInitialState,\n isTTIComputed: false\n};\n\n/**\n * Return all the involved API endpoints present in the component including its child & subchild\n * Iterate recursively till the component with no children\n * @param component\n * @returns string[]\n */\nfunction getComponentInvolvedEndPoints(component: HeroComponent): string[] {\n return Array.from(\n (component.children || []).reduce((accum, value) => {\n getComponentInvolvedEndPoints(value).forEach((item) => accum.add(item));\n return accum;\n }, new Set<string>(component.involvedApiEndpoints))\n );\n}\n\n/**\n * Get all the involved API endpoints of the heroComponent with maximum TTI value\n * If the parent contains max TTI, then all its child & subchild end points are used\n * otherwise only component with max TTI end points are used\n * @param component\n * @param maxTTI\n * @returns string[]\n */\nfunction getInvolvedAPIEndpoints(component: HeroComponent, maxTTI: number): string[] {\n if (component.componentTTI === maxTTI) {\n return getComponentInvolvedEndPoints(component);\n }\n return Array.from(\n (component.children || []).reduce((accum, value) => {\n getInvolvedAPIEndpoints(value, maxTTI).forEach((endpoint) => accum.add(endpoint));\n return accum;\n }, new Set<string>())\n );\n}\n\n/**\n * Recursively iterate the page hierarchy\n * and set the TTI for the specified component\n * and compute the TTI for the corresponding parent\n * @param component the parent component/page\n * @param id the identifier of the component/page\n * @param value the TTI value\n * @param endpoints API URLs of the component\n * @returns HeroComponent\n */\nfunction computeTTI(component: HeroComponent, id: string, value: number, endpoints: string[] = []): HeroComponent {\n const computedComponent = { ...component };\n if (computedComponent.id === id) {\n computedComponent.TTI = value;\n computedComponent.hasBeenLogged = true;\n computedComponent.involvedApiEndpoints = endpoints;\n computedComponent.componentTTI = value;\n } else if (computedComponent.children) {\n computedComponent.children = computedComponent.children.map((child) => computeTTI(child, id, value, endpoints));\n }\n // Compute the TTI of the current component comparing the child TTI measures\n if (computedComponent.children && computedComponent.children.length > 0) {\n const maxChildTTI = Math.max(...computedComponent.children.map((child: HeroComponent) => child.TTI));\n computedComponent.TTI = Math.max(maxChildTTI, computedComponent.TTI);\n }\n return computedComponent;\n}\n\n/**\n * Check if the TTI for the page is computed\n * @param component the parent component/page\n * @returns boolean\n */\nfunction isTTIComputed(component: HeroComponent): boolean {\n if (component.measureSelf && !component.hasBeenLogged) {\n return false;\n }\n return component.children && component.children.length > 0 ? component.children.every((child) => isTTIComputed(child)) : component.TTI > 0;\n}\n\n/**\n * List of basic actions for EventTrack\n */\nexport const eventTrackReducerFeatures: ReducerTypes<EventTrackState, ActionCreator[]>[] = [\n on(actions.setEventTrack, (_state, payload) => ({ ...payload.model })),\n\n on(actions.updateEventTrack, (state, payload) => ({ ...state, ...payload.model })),\n\n on(actions.resetEventTrack, () => eventTrackInitialState),\n\n on(actions.registerHeroComponent, (state, payload) => ({ ...state, heroComponent: { ...payload.model, TTI: 0 } })),\n\n on(actions.setHeroComponentTTI, (state, payload) => {\n const updatedHeroComponent = computeTTI(state.heroComponent, payload.model.id, payload.model.TTI, payload.model.involvedApiEndpoints);\n const isComputed = isTTIComputed(updatedHeroComponent);\n if (isComputed) {\n updatedHeroComponent.involvedApiEndpoints = getInvolvedAPIEndpoints(updatedHeroComponent, updatedHeroComponent.TTI) || [];\n }\n return { ...state, heroComponent: updatedHeroComponent, isTTIComputed: isComputed };\n })\n];\n\n/**\n * EventTrack Store default reducer\n */\nexport const eventTrackReducer = createReducer(\n eventTrackInitialState,\n ...eventTrackReducerFeatures\n);\n","/**\n * The interface for Hero component, which determines the Time To Interactive (TTI) for a page\n * It follows a Tree data structure, with the root node as the Page and the hero components as\n * its children. Each child can have its own hero components. The TTI for the page\n * would be computed using a bottom-up approach starting from the children at the bottom (leaf nodes).\n */\nexport interface HeroComponent extends RegisterHeroComponentPayload {\n /** The Time To Interactive(TTI) measure for the component */\n // eslint-disable-next-line @typescript-eslint/naming-convention -- naming convention imposed by Lighthouse\n TTI: number;\n\n /**\n * Boolean to indicate if the TTI for the component\n * has been explicitly measured and logged\n */\n hasBeenLogged?: boolean;\n\n /**\n * List of API endpoints used in the Hero component and it's subcomponents\n * These are the API's invoked when the TTI is measured\n */\n involvedApiEndpoints?: string[];\n\n /**\n * Actual TTI measure of the component,\n * doesn't change upon it's children Max TTI value\n */\n componentTTI?: number;\n}\n\n/** The interface for the register hero component payload, which is used to register a hero component and its children */\nexport interface RegisterHeroComponentPayload {\n /** The identifier of the hero component */\n id: string;\n /**\n * Boolean to indicate if the TTI computation should take into account\n * the TTI of the component itself in addition to that of its child components\n */\n measureSelf?: boolean;\n /** The identifiers of the children hero components */\n children?: HeroComponent[];\n}\n\n/**\n * EventTrack store state\n */\nexport interface EventTrackState {\n /** The hero component for computing TTI */\n heroComponent: HeroComponent;\n\n /**\n * Boolean to indicate the completion of TTI computation\n * TTI for a hero component is considered to be computed\n * only when the TTI of all its children have been computed\n * eg: for a component A having B and C as children, this value\n * is set only when TTI for all A, B and C have been set\n */\n isTTIComputed: boolean;\n}\n\n/**\n * Name of the EventTrack Store\n */\nexport const EVENT_TRACK_STORE_NAME = 'eventTrack';\n\n/**\n * EventTrack Store Interface\n */\nexport interface EventTrackStore {\n /** EventTrack state */\n [EVENT_TRACK_STORE_NAME]: EventTrackState;\n}\n","import {\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n Action,\n ActionReducer,\n StoreModule,\n} from '@ngrx/store';\nimport {\n eventTrackReducer,\n} from './event-track.reducer';\nimport {\n EVENT_TRACK_STORE_NAME,\n EventTrackState,\n} from './event-track.state';\n\n/** Token of the EventTrack reducer */\nexport const EVENT_TRACK_REDUCER_TOKEN = new InjectionToken<ActionReducer<EventTrackState, Action>>('Feature EventTrack Reducer');\n\n/** Provide default reducer for EventTrack store */\nexport function getDefaultEventTrackReducer() {\n return eventTrackReducer;\n}\n\n@NgModule({\n imports: [\n StoreModule.forFeature(EVENT_TRACK_STORE_NAME, EVENT_TRACK_REDUCER_TOKEN)\n ],\n providers: [\n { provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: getDefaultEventTrackReducer }\n ]\n})\nexport class EventTrackStoreModule {\n public static forRoot<T extends EventTrackState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<EventTrackStoreModule> {\n return {\n ngModule: EventTrackStoreModule,\n providers: [\n { provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: reducerFactory }\n ]\n };\n }\n}\n","import {\n createFeatureSelector,\n createSelector,\n} from '@ngrx/store';\nimport {\n EVENT_TRACK_STORE_NAME,\n EventTrackState,\n} from './event-track.state';\n\n/** Select EventTrack State */\nexport const selectEventTrackState = createFeatureSelector<EventTrackState>(EVENT_TRACK_STORE_NAME);\n\n/** Select hero component status */\nexport const selectHeroComponentStatus = createSelector(selectEventTrackState, (state): number | undefined => (state.isTTIComputed ? state.heroComponent.TTI : undefined));\n","import type {\n Serializer,\n} from '@o3r/core';\nimport {\n eventTrackInitialState,\n} from './event-track.reducer';\nimport {\n EventTrackState,\n} from './event-track.state';\n\nexport const eventTrackStorageSync: Readonly<Serializer<EventTrackState>> = {\n deserialize: (rawObject: any) => {\n return rawObject ? rawObject as EventTrackState : eventTrackInitialState;\n }\n} as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["actions.setEventTrack","actions.updateEventTrack","actions.resetEventTrack","actions.registerHeroComponent","actions.setHeroComponentTTI"],"mappings":"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"}
|
|
@@ -36,4 +36,4 @@ export declare class EventTrackServiceFixture implements Readonly<Partial<EventT
|
|
|
36
36
|
/** @inheritdoc */
|
|
37
37
|
addCustomEvent: jasmine.Spy;
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=event-track
|
|
39
|
+
//# sourceMappingURL=event-track-service-fixture-jasmine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-track
|
|
1
|
+
{"version":3,"file":"event-track-service-fixture-jasmine.d.ts","sourceRoot":"","sources":["../../../src/fixtures/jasmine/event-track-service-fixture-jasmine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,qBAAa,wBAAyB,YAAW,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnF,kBAAkB;IACX,aAAa,EAAE,OAAO,CAAC,GAAG,CAAsC;IAEvE,kBAAkB;IACX,MAAM,EAAE,OAAO,CAAC,GAAG,CAA+B;IAEzD,kBAAkB;IACX,OAAO,EAAE,OAAO,CAAC,GAAG,CAAgC;IAE3D,kBAAkB;IACX,aAAa,EAAE,OAAO,CAAC,GAAG,CAAsC;IAEvE,kBAAkB;IACX,aAAa,EAAE,OAAO,CAAC,GAAG,CAAsC;IAEvE,kBAAkB;IACX,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAA0C;IAE/E,kBAAkB;IACX,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAA6C;IAErF,kBAAkB;IACX,eAAe,EAAE,OAAO,CAAC,GAAG,CAAwC;IAE3E,kBAAkB;IACX,aAAa,EAAE,OAAO,CAAC,GAAG,CAAsC;IAEvE,kBAAkB;IACX,SAAS,EAAE,OAAO,CAAC,GAAG,CAAkC;IAE/D,kBAAkB;IACX,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAiC;IAE7D,kBAAkB;IACX,UAAU,EAAE,OAAO,CAAC,GAAG,CAAmC;IAEjE,kBAAkB;IACX,cAAc,EAAE,OAAO,CAAC,GAAG,CAAuC;IAEzE,kBAAkB;IACX,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAyC;IAE7E,kBAAkB;IACX,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAA2C;IAEjF,kBAAkB;IACX,cAAc,EAAE,OAAO,CAAC,GAAG,CAAuC;CAC1E"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './event-track
|
|
1
|
+
export * from './event-track-service-fixture-jasmine';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -36,4 +36,4 @@ export declare class EventTrackServiceFixture implements Readonly<Partial<EventT
|
|
|
36
36
|
/** @inheritdoc */
|
|
37
37
|
addCustomEvent: jest.Mock<any, any>;
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=event-track
|
|
39
|
+
//# sourceMappingURL=event-track-service-fixture-jest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-track
|
|
1
|
+
{"version":3,"file":"event-track-service-fixture-jest.d.ts","sourceRoot":"","sources":["../../../src/fixtures/jest/event-track-service-fixture-jest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,qBAAa,wBAAyB,YAAW,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnF,kBAAkB;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEtD,kBAAkB;IACX,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAE/C,kBAAkB;IACX,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEhD,kBAAkB;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEtD,kBAAkB;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEtD,kBAAkB;IACX,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAE1D,kBAAkB;IACX,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAE7D,kBAAkB;IACX,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAExD,kBAAkB;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEtD,kBAAkB;IACX,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAElD,kBAAkB;IACX,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEjD,kBAAkB;IACX,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEnD,kBAAkB;IACX,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEvD,kBAAkB;IACX,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAEzD,kBAAkB;IACX,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;IAE3D,kBAAkB;IACX,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;CACxD"}
|
package/fixtures/jest/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './event-track
|
|
1
|
+
export * from './event-track-service-fixture-jest';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../src/contracts/events-contracts.ts","../src/directives/track-events/base-track-events.ts","../src/directives/track-events/track-click/track-click
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../src/contracts/events-contracts.ts","../src/directives/track-events/base-track-events.ts","../src/directives/track-events/track-click/track-click-directive.ts","../src/directives/track-events/track-events-directive.ts","../src/directives/track-events/track-focus/track-focus-directive.ts","../src/directives/track-events/track-events-module.ts","../src/services/event-track/event-track-configuration.ts","../src/services/event-track/event-track-helpers.ts","../src/services/event-track/event-track-service.ts","../src/stores/event-track/event-track.state.ts","../src/stores/event-track/event-track.actions.ts","../src/stores/event-track/event-track-module.ts","../src/stores/event-track/event-track.reducer.ts","../src/stores/event-track/event-track.selectors.ts","../src/stores/event-track/event-track.sync.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;AAAA;;AAEG;;;;;;AAMF;AAED;;AAEG;;;;;;;;;;;;;;AAcF;AAED;;AAEG;;;;;;;;AAQF;AAED;;AAEG;;;;;;;AAOD;AACD;AAED;;AAEG;AACG;AAAiD;AAEvD;;AAEG;;AAED;AACD;AAED;;AAEG;AACG;AAEN;;AAEG;;;AAGF;AAED;;AAEG;AACG;AACJ;;AAEG;AACH;AACD;AAED;;;;;;AAMC;AAED;;;;AAIC;AAED;AACM;AAEN;;;;AAIG;;;;;;AAMF;AAED;;AAEE;;;AAGG;;AAGH;;;;AAIG;;;;AAKJ;AAED;;;;;;;;;;;;;;;;AAgBC;AAED;;;;;;AAMC;AAED;;;;;;;;;;;;AAaC;AAED;;;;;;;;;;;;AAYC;;ACvKD;AAEE;AACA;AACA;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH;AAEA;;;AAGG;;;AAIH;;;;AAgBA;;;AAGG;AACH;;;;;AAwBA;;;AAGG;;;;AAOJ;;ACvFD;;;;;;;;;;;AAWG;AACH;AAIE;;AAEG;;AAGH;;AAEG;AACa;AAEhB;;AAEG;;;;;AAQJ;;AClCD;;;;;;;;;;;AAWG;AACH;AAIE;;AAEG;;AAGH;;AAEG;AACa;AAEhB;;AAEG;;;;;;;AAaJ;;AC3CD;;;;;;;;;;AAUG;AACH;AAIE;;AAEG;;AAGH;;AAEG;AACa;AAEhB;;AAEG;;;;;AAMJ;;ACnCD;;AAEG;AACH;;;;AAIiC;;AChBjC;;;;;;AAMC;AAED;;;;;;;;;;AAUE;;;AAGG;;AAEH;;;AAGG;;AAEJ;AAED;AACA;;;;;;;;;;;AAYA;AACA;;AChDA;;;;AAIG;AACH;;AC4CA;AACA;AAOA;;AAEG;AACH;AAIE;AAEA;AAEA;AAEA;AAEA;;;AAKO;;AAGA;;AAGA;;AAGA;;AAGA;;;;;;;;;;AAsBP;AACA;AAEA;AACA;AACA;;AAwEA;;AAEG;AACH;AAWA;;;AAGG;AACH;AAWA;;AAEG;;AAKH;;;;AAIG;;AAMH;;;;AAIG;;AASH;;;AAGG;;AAeH;;;AAGG;;AAaH;;;AAGG;;AAQH;;;AAGG;;AAMH;;;;AAIG;;AA0BH;;;;AAIG;;AAYH;;;;AAIG;;AAqBH;;;;;;AAMG;AACI;AAYP;;;AAGG;;AAKH;;;AAGG;;AAKH;;;AAGG;;AAKH;;;AAGG;;;;AAIJ;;ACtaD;;;;;AAKG;AACG;;;AAKJ;;;AAGG;;AAGH;;;AAGG;AACH;AAEA;;;AAGG;;AAEJ;AAED;;;;AAIE;;;AAGG;;;AAGH;AACD;AAED;;AAEG;;;;AAKD;;;;;;AAMG;;AAEJ;AAED;;AAEG;AACH;AAEA;;AAEG;;;AAGD;AACD;;ACvDD;;AAEG;;AAED;;AAEG;;AAGH;;AAEG;;AAIH;;;AAGG;AACH;AACD;AAED;;AAEG;AACH;;;;;AAEA;;AAEG;AACH;;;;;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH;;;;;AAEA;;AAEG;AACH;;;;;;AC3CA;AACA;AAEA;AACA;AAIA;AASgB;;;;AAQf;;AC/BD;AACA;AAEA;;AAEG;AACH;AAgFA;;AAEG;AACH;AAmBA;;AAEG;AACH;;AClHA;AACA;AAEA;AACA;;ACHA;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/analytics",
|
|
3
|
-
"version": "14.0.0-next.
|
|
3
|
+
"version": "14.0.0-next.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"otter-module"
|
|
12
12
|
],
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"@ama-sdk/core": "
|
|
14
|
+
"@ama-sdk/core": "~14.0.0-next.3",
|
|
15
15
|
"@angular-devkit/schematics": "^20.0.0",
|
|
16
16
|
"@angular/common": "^20.0.0",
|
|
17
17
|
"@angular/core": "^20.0.0",
|
|
@@ -19,12 +19,11 @@
|
|
|
19
19
|
"@angular/platform-browser-dynamic": "^20.0.0",
|
|
20
20
|
"@angular/router": "^20.0.0",
|
|
21
21
|
"@ngrx/store": "^20.0.0",
|
|
22
|
-
"@o3r/core": "
|
|
23
|
-
"@o3r/schematics": "
|
|
22
|
+
"@o3r/core": "~14.0.0-next.3",
|
|
23
|
+
"@o3r/schematics": "~14.0.0-next.3",
|
|
24
24
|
"@schematics/angular": "^20.0.0",
|
|
25
25
|
"jasmine": "^5.0.0",
|
|
26
26
|
"rxjs": "^7.8.1",
|
|
27
|
-
"ts-node": "~10.9.2",
|
|
28
27
|
"type-fest": "^4.30.1",
|
|
29
28
|
"typescript": "^5.9.0",
|
|
30
29
|
"webpack": "^5.96.0"
|
|
@@ -53,7 +52,7 @@
|
|
|
53
52
|
}
|
|
54
53
|
},
|
|
55
54
|
"dependencies": {
|
|
56
|
-
"@o3r/schematics": "
|
|
55
|
+
"@o3r/schematics": "~14.0.0-next.3",
|
|
57
56
|
"tslib": "^2.6.2"
|
|
58
57
|
},
|
|
59
58
|
"exports": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Compiler, WebpackPluginInstance } from 'webpack';
|
|
2
|
-
import type { Reporter } from './reporters
|
|
2
|
+
import type { Reporter } from './reporters-interface';
|
|
3
3
|
/**
|
|
4
4
|
* BuildStats Plugin Options
|
|
5
5
|
*/
|
|
@@ -34,4 +34,4 @@ export declare class BuildStatsPlugin implements WebpackPluginInstance {
|
|
|
34
34
|
/** @inheritdoc */
|
|
35
35
|
apply(compiler: Compiler): void;
|
|
36
36
|
}
|
|
37
|
-
//# sourceMappingURL=build-stats
|
|
37
|
+
//# sourceMappingURL=build-stats-plugin.d.ts.map
|
package/plugins/webpack/build-metrics/{build-stats.plugin.d.ts.map → build-stats-plugin.d.ts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-stats
|
|
1
|
+
{"version":3,"file":"build-stats-plugin.d.ts","sourceRoot":"","sources":["../../../../plugins/webpack/build-metrics/build-stats-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,QAAQ,EAIR,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAEV,QAAQ,EAET,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAaD,qBAAa,gBAAiB,YAAW,qBAAqB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,eAAe,CAAiC;gBAE5C,OAAO,CAAC,EAAE,uBAAuB;IAK7C,OAAO,CAAC,qBAAqB;IA4E7B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,wCAAwC;IAYhD,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,oBAAoB;IA4C5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAehC;IAEH,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IAMlB,kBAAkB;IACX,KAAK,CAAC,QAAQ,EAAE,QAAQ;CAIhC"}
|
package/plugins/webpack/build-metrics/{build-stats.plugin.js.map → build-stats-plugin.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-stats
|
|
1
|
+
{"version":3,"file":"build-stats-plugin.js","sourceRoot":"","sources":["../../../../plugins/webpack/build-metrics/build-stats-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './build-stats
|
|
2
|
-
export * from './reporters
|
|
1
|
+
export * from './build-stats-plugin';
|
|
2
|
+
export * from './reporters-interface';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./build-stats
|
|
5
|
-
tslib_1.__exportStar(require("./reporters
|
|
4
|
+
tslib_1.__exportStar(require("./build-stats-plugin"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./reporters-interface"), exports);
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/plugins/webpack/build-metrics/{reporters.interface.d.ts.map → reporters-interface.d.ts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporters
|
|
1
|
+
{"version":3,"file":"reporters-interface.d.ts","sourceRoot":"","sources":["../../../../plugins/webpack/build-metrics/reporters-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACR,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACV,MAAM,EACP,MAAM,WAAW,CAAC;AAEnB,qBAAqB;AACrB,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjD,6DAA6D;AAC7D,MAAM,WAAW,QAAQ;IACvB,uBAAuB;IACvB,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,uCAAuC;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,sBAAsB;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,+BAA+B;IAC/B,GAAG,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporters-interface.js","sourceRoot":"","sources":["../../../../plugins/webpack/build-metrics/reporters-interface.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/analytics-to-component/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/analytics-to-component/index.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,IAAI,EAKL,MAAM,4BAA4B,CAAC;AA0BpC,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,UAAU,CAAC;AAiClB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI,CA8K9E;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,wBAAyC,CAAC"}
|
|
@@ -13,7 +13,7 @@ const analyticsProperties = [
|
|
|
13
13
|
];
|
|
14
14
|
const checkAnalytics = (componentPath, tree, baseFileName) => {
|
|
15
15
|
const files = [
|
|
16
|
-
node_path_1.posix.join(componentPath, `${baseFileName}
|
|
16
|
+
node_path_1.posix.join(componentPath, `${baseFileName}-analytics.ts`)
|
|
17
17
|
];
|
|
18
18
|
if (files.some((file) => tree.exists(file))) {
|
|
19
19
|
throw new schematics_2.O3rCliError(`Unable to add analytics to this component because it already has at least one of these files: ${files.join(', ')}.`);
|
|
@@ -34,14 +34,14 @@ const checkAnalytics = (componentPath, tree, baseFileName) => {
|
|
|
34
34
|
function ngAddAnalyticsFn(options) {
|
|
35
35
|
return async (tree, context) => {
|
|
36
36
|
try {
|
|
37
|
-
const baseFileName = (0,
|
|
37
|
+
const baseFileName = (0, schematics_2.getComponentBaseFileName)(options.path);
|
|
38
38
|
const { name, standalone, templateRelativePath } = (0, schematics_2.getO3rComponentInfoOrThrowIfNotFound)(tree, options.path);
|
|
39
39
|
checkAnalytics(options.path, tree, baseFileName);
|
|
40
40
|
const properties = {
|
|
41
41
|
...options,
|
|
42
42
|
componentName: name,
|
|
43
|
-
componentAnalytics:
|
|
44
|
-
name:
|
|
43
|
+
componentAnalytics: (0, schematics_2.getComponentAnalyticsName)(baseFileName),
|
|
44
|
+
name: baseFileName
|
|
45
45
|
};
|
|
46
46
|
const createAnalyticsFilesRule = (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./templates'), [
|
|
47
47
|
(0, schematics_1.template)(properties),
|
|
@@ -58,7 +58,7 @@ function ngAddAnalyticsFn(options) {
|
|
|
58
58
|
]
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
from: `./${properties.name}
|
|
61
|
+
from: `./${properties.name}-analytics`,
|
|
62
62
|
importNames: [
|
|
63
63
|
'analyticsEvents',
|
|
64
64
|
properties.componentAnalytics
|
|
@@ -127,7 +127,7 @@ function ngAddAnalyticsFn(options) {
|
|
|
127
127
|
return tree;
|
|
128
128
|
};
|
|
129
129
|
const updateModuleRule = () => {
|
|
130
|
-
const moduleFilePath =
|
|
130
|
+
const moduleFilePath = node_path_1.posix.join((0, node_path_1.dirname)(options.path), `${properties.name}-module.ts`);
|
|
131
131
|
const moduleSourceFile = ts.createSourceFile(moduleFilePath, tree.readText(moduleFilePath), ts.ScriptTarget.ES2020, true);
|
|
132
132
|
const recorder = tree.beginUpdate(moduleFilePath);
|
|
133
133
|
const changes = (0, ast_utils_1.addImportToModule)(moduleSourceFile, moduleFilePath, 'TrackEventsModule', '@o3r/analytics');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reporters.interface.js","sourceRoot":"","sources":["../../../../plugins/webpack/build-metrics/reporters.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/analytics-to-component/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/analytics-to-component/schema.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,2DAGoC;AACpC,gDAGyB;AAKzB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,qBAAqB,GAAG;IAC5B,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,2BAA2B;IAC3B,mCAAmC;IACnC,aAAa;IACb,MAAM;CACP,CAAC;AAEF;;GAEG;AACH,MAAM,wBAAwB,GAAa,EAC1C,CAAC;AAEF;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA8B;IAC7C,kBAAkB;IAClB,OAAO,IAAA,kBAAK,EAAC;QACX,IAAA,kCAAqB,EAAC,OAAO,EAAE,eAAe,EAAE,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,CAAC;KACrG,CAAC,CAAC;AACL,CAAC;AAEM,MAAM,KAAK,GAAG,CAAC,OAA8B,EAAE,EAAE,CAAC,IAAA,iCAAoB,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAAnF,QAAA,KAAK,SAA8E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":""}
|