@o3r/analytics 14.1.0-prerelease.4 → 14.1.0-prerelease.41

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.
@@ -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: "21.0.9", ngImport: i0, type: EventTrackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
334
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: EventTrackService, providedIn: 'root' }); }
333
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: EventTrackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
334
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: EventTrackService, providedIn: 'root' }); }
335
335
  }
336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: EventTrackService, decorators: [{
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", 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: "21.0.9", ngImport: i0, type: BaseTrackEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
404
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: BaseTrackEvents, isStandalone: true, ngImport: i0 }); }
403
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: BaseTrackEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
404
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.4", type: BaseTrackEvents, isStandalone: true, ngImport: i0 }); }
405
405
  }
406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: BaseTrackEvents, decorators: [{
406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", 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: "21.0.9", ngImport: i0, type: TrackClickDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
429
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TrackClickDirective, isStandalone: true, selector: "[trackClick]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters" }, usesInheritance: true, ngImport: i0 }); }
428
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: TrackClickDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
429
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.4", 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: "21.0.9", ngImport: i0, type: TrackClickDirective, decorators: [{
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", 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: "21.0.9", ngImport: i0, type: TrackEventsDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
470
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TrackEventsDirective, isStandalone: true, selector: "[trackEvents]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters", trackEventNames: ["trackEvents", "trackEventNames"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
469
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: TrackEventsDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
470
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.4", 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: "21.0.9", ngImport: i0, type: TrackEventsDirective, decorators: [{
472
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", 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: "21.0.9", ngImport: i0, type: TrackFocusDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
504
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TrackFocusDirective, isStandalone: true, selector: "[trackFocus]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters" }, usesInheritance: true, ngImport: i0 }); }
503
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: TrackFocusDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
504
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.4", 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: "21.0.9", ngImport: i0, type: TrackFocusDirective, decorators: [{
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: TrackFocusDirective, decorators: [{
507
507
  type: Directive,
508
508
  args: [{
509
509
  selector: '[trackFocus]'
@@ -662,13 +662,13 @@ class EventTrackStoreModule {
662
662
  ]
663
663
  };
664
664
  }
665
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: EventTrackStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
666
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: EventTrackStoreModule, imports: [i1.StoreFeatureModule] }); }
667
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: EventTrackStoreModule, providers: [
665
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: EventTrackStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
666
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.4", ngImport: i0, type: EventTrackStoreModule, imports: [i1.StoreFeatureModule] }); }
667
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: EventTrackStoreModule, providers: [
668
668
  { provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: getDefaultEventTrackReducer }
669
669
  ], imports: [StoreModule.forFeature(EVENT_TRACK_STORE_NAME, EVENT_TRACK_REDUCER_TOKEN)] }); }
670
670
  }
671
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: EventTrackStoreModule, decorators: [{
671
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: EventTrackStoreModule, decorators: [{
672
672
  type: NgModule,
673
673
  args: [{
674
674
  imports: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/analytics",
3
- "version": "14.1.0-prerelease.4",
3
+ "version": "14.1.0-prerelease.41",
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.1.0-prerelease.4",
14
+ "@ama-sdk/core": "~14.1.0-prerelease.41",
15
15
  "@angular-devkit/schematics": "^21.0.0",
16
16
  "@angular/common": "^21.0.0",
17
17
  "@angular/core": "^21.0.0",
@@ -19,8 +19,8 @@
19
19
  "@angular/platform-browser-dynamic": "^21.0.0",
20
20
  "@angular/router": "^21.0.0",
21
21
  "@ngrx/store": "^21.0.0",
22
- "@o3r/core": "~14.1.0-prerelease.4",
23
- "@o3r/schematics": "~14.1.0-prerelease.4",
22
+ "@o3r/core": "~14.1.0-prerelease.41",
23
+ "@o3r/schematics": "~14.1.0-prerelease.41",
24
24
  "@schematics/angular": "^21.0.0",
25
25
  "jasmine": "^5.0.0",
26
26
  "rxjs": "^7.8.1",
@@ -52,7 +52,7 @@
52
52
  }
53
53
  },
54
54
  "dependencies": {
55
- "@o3r/schematics": "~14.1.0-prerelease.4",
55
+ "@o3r/schematics": "~14.1.0-prerelease.41",
56
56
  "tslib": "^2.6.2"
57
57
  },
58
58
  "exports": {
@@ -77,7 +77,7 @@
77
77
  }
78
78
  },
79
79
  "engines": {
80
- "node": "^20.19.0 || ^22.17.0 || ^24.0.0"
80
+ "node": "^22.17.0 || ^24.0.0"
81
81
  },
82
82
  "builders": "./builders.json",
83
83
  "schematics": "./collection.json",
package/index.d.ts DELETED
@@ -1,659 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { OnInit, OnChanges, SimpleChanges, InjectionToken, ModuleWithProviders } from '@angular/core';
3
- import { Mark } from '@ama-sdk/core';
4
- import { Observable } from 'rxjs';
5
- import * as _ngrx_store from '@ngrx/store';
6
- import { ActionReducer, Action, ReducerTypes, ActionCreator } from '@ngrx/store';
7
- import { Serializer } from '@o3r/core';
8
-
9
- /**
10
- * Category
11
- */
12
- interface Category {
13
- /** Primary category */
14
- primaryCategory: string;
15
- /** Sub category */
16
- subCategory?: string;
17
- }
18
- /**
19
- * The event information
20
- */
21
- interface EventInfo {
22
- /** Event key */
23
- key?: string;
24
- /** Event name */
25
- eventName: string;
26
- /** Page id */
27
- pageId?: string;
28
- /** Timestamp */
29
- timeStamp?: string;
30
- /** Product id */
31
- productId?: string;
32
- /** Component id */
33
- componentId?: string;
34
- }
35
- /**
36
- * An event attribute
37
- */
38
- interface Attribute {
39
- /** Attribute key */
40
- key: string;
41
- /** Attribute value */
42
- value: string;
43
- /** Attribute to defined if it is a sensitive data or not */
44
- isSensitiveData?: boolean;
45
- }
46
- /**
47
- * The event context
48
- */
49
- interface EventContext {
50
- /** Category */
51
- category?: Category;
52
- /** Event information */
53
- eventInfo: EventInfo;
54
- /** List of attribute */
55
- attributes?: Attribute[];
56
- }
57
- /**
58
- * Generic analytics event
59
- */
60
- interface AnalyticsEvent extends EventContext {
61
- }
62
- /**
63
- * Generic model for the parameter of `ConstructorAnalyticsEvent`
64
- */
65
- interface ConstructorAnalyticsEventParameters {
66
- [key: string]: any;
67
- }
68
- /**
69
- * Type for AnalyticsEvent classes
70
- */
71
- type ConstructorAnalyticsEvent<T extends AnalyticsEvent> = new (parameters?: ConstructorAnalyticsEventParameters) => T;
72
- /**
73
- * Dictionary of analytics events
74
- */
75
- interface AnalyticsEvents {
76
- [key: string]: ConstructorAnalyticsEvent<AnalyticsEvent>;
77
- }
78
- /**
79
- * Trackable item
80
- */
81
- interface Trackable<T extends AnalyticsEvents> {
82
- /**
83
- * Analytics events
84
- */
85
- readonly analyticsEvents: T;
86
- }
87
- /** The UI event object which will be emitted by event tracker service */
88
- interface UiEventPayload {
89
- /** The event which takes place in the DOM */
90
- nativeEvent: Event;
91
- /** The custom object with additional information about the event captured */
92
- context: EventContext;
93
- }
94
- /** The custom event object which will be emitted by event tracker service */
95
- interface CustomEventPayload {
96
- /** The custom object with additional information about the event captured */
97
- context: EventContext;
98
- }
99
- /** The event name which has to be tracked */
100
- type TrackEventName = keyof GlobalEventHandlersEventMap;
101
- /**
102
- * Event timing marks
103
- * Those marks are meant to be used either as start and end of an event (e.g. a server call)
104
- * either as lower and upper bound for a specific mark (e.g. first paint)
105
- */
106
- interface EventTiming {
107
- /** Timestamp of the start of an event or lower bound for a time mark */
108
- startTime: number;
109
- /** Timestamp of the end of an event or upper bound for a time mark */
110
- endTime?: number;
111
- }
112
- /** Perceived events marks */
113
- interface PerceivedEvents {
114
- /**
115
- * Mark the time from the navigation start until the loading indicator triggers
116
- * {@link https://developers.google.com/web/tools/lighthouse/audits/first-contentful-paint|FP}
117
- */
118
- FP?: EventTiming;
119
- /**
120
- * Marks the time when the page appears to be meaningfully complete
121
- * This is essentially the paint after which the biggest above-the-fold layout change has happened, and web fonts have loaded.
122
- * {@link https://developers.google.com/web/tools/lighthouse/audits/first-meaningful-paint|FMP}
123
- */
124
- FMP?: EventTiming;
125
- /** Marks the time when the page considers it has all the data to become interactive */
126
- dataReady?: EventTiming;
127
- }
128
- /** Network metrics for a server call */
129
- interface ServerCallMetric {
130
- /** Request url */
131
- url: string;
132
- /** Http request method */
133
- httpMethod?: string;
134
- /** Time taken for a server call; Start time when the call has fired and end time when the call has finished */
135
- timing: EventTiming;
136
- /** Custom error object added for a request; ex. An error object when the network is down */
137
- error?: Error;
138
- /** Status code of the response */
139
- httpStatus?: number;
140
- /** Size of the response in bytes */
141
- responseSize?: number;
142
- /** If available, it identifies the call with the server logs (e.g. ama-request-id for DxAPI calls) */
143
- requestId?: string;
144
- }
145
- /** Custom mark event added on a page */
146
- interface CustomEventMarks {
147
- /** Name of the metric needed */
148
- label: string;
149
- /** Time range taken for the added mark */
150
- timing: EventTiming;
151
- }
152
- /** Object structure for first load of the app */
153
- interface FirstLoadDataPayload {
154
- /** Time between navigation is triggered and the connection is opened to the network in ms */
155
- connection: number;
156
- /** Time between the connection is opened to the network (connectEnd) and the first byte of response is received (responseStart) in ms */
157
- request: number;
158
- /** The duration while the response is received in ms; from the first byte from response received to the last one */
159
- response: number;
160
- /** DOM loading. Time between browser resources received and DOM rendered in ms */
161
- DOM: number;
162
- /** The total page load time in ms */
163
- total: number;
164
- }
165
- /** The performance event object which will be emitted by event tracker service for a page */
166
- interface PerfEventPayload {
167
- /** The page name (route or page code or naming convention) where the performance events are tracked */
168
- page: string;
169
- /** Marks for perceived events */
170
- perceived: PerceivedEvents;
171
- /** Marks for the first load of the app */
172
- firstLoad?: FirstLoadDataPayload;
173
- /** Server calls in the page, excluding the resources calls */
174
- serverCalls: ServerCallMetric[];
175
- /** Custom marks added to the page */
176
- customMarks: CustomEventMarks[];
177
- }
178
-
179
- declare abstract class BaseTrackEvents {
180
- private readonly el;
181
- private readonly trackEventsService;
182
- private readonly renderer;
183
- /**
184
- * Custom object to be stored when the click event is captured
185
- */
186
- abstract trackEventContext?: EventContext;
187
- /**
188
- * Class to create the EventContext
189
- */
190
- abstract trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;
191
- /**
192
- * Parameter that should be given to the
193
- */
194
- abstract trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;
195
- /**
196
- * Store the functions returned by the angular renderer when an event listener is built
197
- * The functions can be called to destroy the associated listeners
198
- */
199
- protected unlistenFns: (() => void)[];
200
- /** Array of track events objects */
201
- protected trackingEvents: TrackEventName[];
202
- /** Flag for the tracking mode */
203
- protected isTrackingActive: boolean;
204
- constructor();
205
- /**
206
- * Create the listener for the given event
207
- * @param event name
208
- */
209
- protected nativeListen(event: TrackEventName): () => void;
210
- /** Create the events listeners */
211
- listen(): void;
212
- /** Remove the created events listeners */
213
- unlisten(): void;
214
- /**
215
- * Keep the events to be listen and create the listener event for the given event name
216
- * @param event name
217
- */
218
- trackEvent(event: TrackEventName): void;
219
- static ɵfac: i0.ɵɵFactoryDeclaration<BaseTrackEvents, never>;
220
- static ɵdir: i0.ɵɵDirectiveDeclaration<BaseTrackEvents, never, never, {}, {}, never, never, true, never>;
221
- }
222
-
223
- /**
224
- * Directive to capture the 'click' event on the reference element.
225
- * The captured event will be exposed via EventTrackService
226
- * @example
227
- * ```html
228
- * <my-component
229
- * (click)="doSomething()"
230
- * trackClick
231
- * [trackEventContext]="{context: 'click on the component with tag: my-component'}">
232
- * </my-component>
233
- * ```
234
- */
235
- declare class TrackClickDirective extends BaseTrackEvents implements OnInit {
236
- /**
237
- * @inheritdoc
238
- */
239
- trackEventContext?: EventContext;
240
- /**
241
- * @inheritdoc
242
- */
243
- trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;
244
- /**
245
- * @inheritdoc
246
- */
247
- trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;
248
- ngOnInit(): void;
249
- static ɵfac: i0.ɵɵFactoryDeclaration<TrackClickDirective, never>;
250
- static ɵdir: i0.ɵɵDirectiveDeclaration<TrackClickDirective, "[trackClick]", never, { "trackEventContext": { "alias": "trackEventContext"; "required": false; }; "trackEventContextConstructor": { "alias": "trackEventContextConstructor"; "required": false; }; "trackEventContextConstructorParameters": { "alias": "trackEventContextConstructorParameters"; "required": false; }; }, {}, never, never, true, never>;
251
- }
252
-
253
- /**
254
- * Directive to capture the events given as input, on the reference element.
255
- * The captured event will be exposed via EventTrackService
256
- * @example
257
- * ```html
258
- * <my-component
259
- * (click)="doSomething()"
260
- * [trackEvents]="['mouseenter', 'mouseleave']"
261
- * [trackEventContext]="{context: 'click on the component with tag: my-component'}">
262
- * </my-component>
263
- * ```
264
- */
265
- declare class TrackEventsDirective extends BaseTrackEvents implements OnChanges {
266
- /**
267
- * @inheritdoc
268
- */
269
- trackEventContext?: EventContext;
270
- /**
271
- * @inheritdoc
272
- */
273
- trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;
274
- /**
275
- * @inheritdoc
276
- */
277
- trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;
278
- /** The list of events to listen */
279
- trackEventNames: TrackEventName[];
280
- ngOnChanges(changes: SimpleChanges): void;
281
- static ɵfac: i0.ɵɵFactoryDeclaration<TrackEventsDirective, never>;
282
- static ɵdir: i0.ɵɵDirectiveDeclaration<TrackEventsDirective, "[trackEvents]", never, { "trackEventContext": { "alias": "trackEventContext"; "required": false; }; "trackEventContextConstructor": { "alias": "trackEventContextConstructor"; "required": false; }; "trackEventContextConstructorParameters": { "alias": "trackEventContextConstructorParameters"; "required": false; }; "trackEventNames": { "alias": "trackEvents"; "required": false; }; }, {}, never, never, true, never>;
283
- }
284
-
285
- /**
286
- * Directive to capture the 'focus' event on the reference element.
287
- * The captured event will be exposed via EventTrackService
288
- * @example
289
- * ```html
290
- * <my-component
291
- * trackFocus
292
- * [trackEventContext]="{context: 'focus on the component with tag: my-component'}">
293
- * </my-component>
294
- * ```
295
- */
296
- declare class TrackFocusDirective extends BaseTrackEvents implements OnInit {
297
- /**
298
- * @inheritdoc
299
- */
300
- trackEventContext?: EventContext;
301
- /**
302
- * @inheritdoc
303
- */
304
- trackEventContextConstructor?: ConstructorAnalyticsEvent<AnalyticsEvent>;
305
- /**
306
- * @inheritdoc
307
- */
308
- trackEventContextConstructorParameters?: ConstructorAnalyticsEventParameters;
309
- ngOnInit(): void;
310
- static ɵfac: i0.ɵɵFactoryDeclaration<TrackFocusDirective, never>;
311
- static ɵdir: i0.ɵɵDirectiveDeclaration<TrackFocusDirective, "[trackFocus]", never, { "trackEventContext": { "alias": "trackEventContext"; "required": false; }; "trackEventContextConstructor": { "alias": "trackEventContextConstructor"; "required": false; }; "trackEventContextConstructorParameters": { "alias": "trackEventContextConstructorParameters"; "required": false; }; }, {}, never, never, true, never>;
312
- }
313
-
314
- /**
315
- * @deprecated TrackEventsDirective, TrackClickDirective and TrackFocusDirective are now standalone, this module will be removed in v14
316
- */
317
- declare class TrackEventsModule {
318
- static ɵfac: i0.ɵɵFactoryDeclaration<TrackEventsModule, never>;
319
- static ɵmod: i0.ɵɵNgModuleDeclaration<TrackEventsModule, never, [typeof TrackEventsDirective, typeof TrackClickDirective, typeof TrackFocusDirective], [typeof TrackEventsDirective, typeof TrackClickDirective, typeof TrackFocusDirective]>;
320
- static ɵinj: i0.ɵɵInjectorDeclaration<TrackEventsModule>;
321
- }
322
-
323
- /** Controls the activation of mesurements and ui events tracking */
324
- interface TrackActive {
325
- /** Boolean to activate/deactivate the ui event tracking */
326
- uiTracking: boolean;
327
- /** Boolean to activate/deactivate performace measurements */
328
- perfTracking: boolean;
329
- }
330
- /** Track events service configuration object */
331
- interface EventTrackConfiguration {
332
- /** Defines how many values will be kept in performance metrics stream */
333
- perfBufferSize: number;
334
- /** Defines how many values will be kept in ui events stream */
335
- uiEventsBufferSize: number;
336
- /** If true, it will use the browser API to get the value of the FP for the first time; */
337
- useBrowserApiForFirstFP: boolean;
338
- /** Controls the activation of mesurements and ui events tracking */
339
- activate: TrackActive;
340
- /**
341
- * Request ID header from call (default: {@link defaultEventTrackConfiguration.requestIdHeader})
342
- * @default 'ama-request-id'
343
- */
344
- requestIdHeader: string;
345
- /**
346
- * Trace header from call (default: {@link defaultEventTrackConfiguration.traceHeader})
347
- * @default 'traceparent'
348
- */
349
- traceHeader: string;
350
- }
351
- /** Default configuration of tracking service */
352
- declare const defaultEventTrackConfiguration: {
353
- readonly perfBufferSize: 10;
354
- readonly uiEventsBufferSize: 20;
355
- readonly useBrowserApiForFirstFP: false;
356
- readonly requestIdHeader: "ama-request-id";
357
- readonly traceHeader: "traceparent";
358
- readonly activate: {
359
- readonly uiTracking: true;
360
- readonly perfTracking: true;
361
- };
362
- };
363
- /** Tracking service configuration token used to override the default configuration */
364
- declare const EVENT_TRACK_SERVICE_CONFIGURATION: InjectionToken<Partial<EventTrackConfiguration>>;
365
-
366
- /**
367
- * Check if input is of type {@link PerformanceNavigationTiming}
368
- * @param entry PerformanceEntry
369
- * @returns type indicator if {@link entry} meets the condition of {@link PerformanceNavigationTiming}
370
- */
371
- declare function isPerformanceNavigationEntry(entry: PerformanceEntry | undefined): entry is PerformanceNavigationTiming;
372
-
373
- /** The initial value of the performance measurements */
374
- declare const performanceMarksInitialState: Readonly<PerfEventPayload>;
375
- /**
376
- * Service to expose the tracked events as streams. Also provide a way to activate/deactivate the tracking
377
- */
378
- declare class EventTrackService {
379
- private readonly uiEventTrack;
380
- private readonly customEventTrack;
381
- private readonly perfEventTrack;
382
- private readonly uiTrackingActivated;
383
- private readonly perfTrackingActivated;
384
- private firstPaint?;
385
- /** UI captured events as stream */
386
- uiEventTrack$: Observable<UiEventPayload>;
387
- /** Custom captured events as stream */
388
- customEventTrack$: Observable<CustomEventPayload>;
389
- /** Performance captured events as stream */
390
- perfEventTrack$: Observable<PerfEventPayload>;
391
- /** Stream of booleans for the ui tracking mode active/inactive */
392
- uiTrackingActive$: Observable<boolean>;
393
- /** Stream of booleans for the performance tracking mode active/inactive */
394
- perfTrackingActive$: Observable<boolean>;
395
- /** True if the perf tracking is activated; false otherwise */
396
- private isPerfTrackingActive;
397
- /** Boolean to indicate the first load of the application */
398
- private isFirstLoad;
399
- private _performancePayload;
400
- /** Performance payload object */
401
- private get performancePayload();
402
- /** Performance payload object */
403
- private set performancePayload(value);
404
- private readonly requestIdHeader;
405
- private readonly traceHeader;
406
- private readonly router;
407
- private readonly zone;
408
- private readonly config;
409
- constructor();
410
- /**
411
- * Create metrics object for the first load of the application
412
- */
413
- private createFirstLoadData;
414
- /**
415
- * Populate performance payload with FP object
416
- * @param FP
417
- */
418
- private addFPToPerfPayload;
419
- /**
420
- * Reset all metrics to initial state; Add the pageName on top of it
421
- */
422
- resetPerfMarks(): void;
423
- /**
424
- * Mark the first load metrics using the navigation API.
425
- * This has to be called only once in a single page application, being meaningful only for the first load
426
- * This mark is populated by default in this service when the NavigationEnd event of the router emits for the first time
427
- */
428
- markFirstLoad(): void;
429
- /**
430
- * Mark the first paint value
431
- * Store the first paint timing value to be emitted at Navigation End
432
- * @param emit If true, sets the FP to the current page. Otherwise, wait for next NavigationEnd event to happen
433
- */
434
- markFP(emit?: boolean): Promise<void>;
435
- /**
436
- * Mark the first meaningful paint value.
437
- * @param markOnlyFirstLoad If false, marks the FMP for subsequent loads else only for the first load of the application
438
- */
439
- markFMP(markOnlyFirstLoad?: boolean): Promise<void>;
440
- /**
441
- * Add data ready perceived event
442
- * This probe marks the time when the page considers it has all the data to become interactive
443
- */
444
- markDataReady(): Promise<void>;
445
- /**
446
- * Add a custom event and its measurements
447
- * @param label The event name
448
- */
449
- addCustomMark(label: string): Promise<void>;
450
- /**
451
- * Add a server call object in the list of server calls metrics
452
- * @param serverCall The object to add in the server calls metrics
453
- */
454
- addServerCallMark(serverCall: ServerCallMetric): void;
455
- /**
456
- * Add a SDK server call mark, in the list of server calls metrics.
457
- * In order to have requestId for the API calls, your server has to expose 'ama-request-id' via Access-Control-Expose-Headers
458
- * @param serverMark The mark object
459
- */
460
- addSDKServerCallMark(serverMark: Mark): Promise<void>;
461
- /**
462
- * Add a custom event and mark the start time, and returns the element index
463
- * @param label Event name
464
- * @returns the element index if tracking is active. Otherwise, -1
465
- */
466
- startCustomMark(label: string): number;
467
- /**
468
- * End the event mark given in parameter;
469
- * Returns false if the custom event is not found in the list of custom marks; true otherwise
470
- * @param eventIndex Index of the custom event to be marked as ended
471
- */
472
- endCustomMark(eventIndex: number): boolean;
473
- /**
474
- * The goal of this method is to compute a time range duration between the moment you call the function (lower bound timestamp)
475
- * and the end of the composite rendering (upper bound measurement - a time mark that occurs after the real composite)
476
- * For the first load of the application, the start time is considered as the start of navigation to ensure a cumulative measure.
477
- * It is using the 'NgZone' service to runOutsideAngular to prevent any change detection to occur, nor angular error handling, speeding up the measurement.
478
- * 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
479
- */
480
- getTiming(): Promise<EventTiming>;
481
- /**
482
- * Add an event to the stream of captured UI events
483
- * @param uiEvent emitted event object
484
- */
485
- addUiEvent(uiEvent: UiEventPayload): void;
486
- /**
487
- * Add an event to the stream of captured custom events
488
- * @param customEvent emitted event object
489
- */
490
- addCustomEvent(customEvent: CustomEventPayload): void;
491
- /**
492
- * Activate/deactivate the tracking mode for UI events
493
- * @param activate activation/deactivation boolean
494
- */
495
- toggleUiTracking(activate: boolean): void;
496
- /**
497
- * Activate/deactivate the tracking mode for performance measurements
498
- * @param activate activation/deactivation boolean
499
- */
500
- togglePerfTracking(activate: boolean): void;
501
- static ɵfac: i0.ɵɵFactoryDeclaration<EventTrackService, never>;
502
- static ɵprov: i0.ɵɵInjectableDeclaration<EventTrackService>;
503
- }
504
-
505
- /**
506
- * The interface for Hero component, which determines the Time To Interactive (TTI) for a page
507
- * It follows a Tree data structure, with the root node as the Page and the hero components as
508
- * its children. Each child can have its own hero components. The TTI for the page
509
- * would be computed using a bottom-up approach starting from the children at the bottom (leaf nodes).
510
- */
511
- interface HeroComponent extends RegisterHeroComponentPayload {
512
- /** The Time To Interactive(TTI) measure for the component */
513
- TTI: number;
514
- /**
515
- * Boolean to indicate if the TTI for the component
516
- * has been explicitly measured and logged
517
- */
518
- hasBeenLogged?: boolean;
519
- /**
520
- * List of API endpoints used in the Hero component and it's subcomponents
521
- * These are the API's invoked when the TTI is measured
522
- */
523
- involvedApiEndpoints?: string[];
524
- /**
525
- * Actual TTI measure of the component,
526
- * doesn't change upon it's children Max TTI value
527
- */
528
- componentTTI?: number;
529
- }
530
- /** The interface for the register hero component payload, which is used to register a hero component and its children */
531
- interface RegisterHeroComponentPayload {
532
- /** The identifier of the hero component */
533
- id: string;
534
- /**
535
- * Boolean to indicate if the TTI computation should take into account
536
- * the TTI of the component itself in addition to that of its child components
537
- */
538
- measureSelf?: boolean;
539
- /** The identifiers of the children hero components */
540
- children?: HeroComponent[];
541
- }
542
- /**
543
- * EventTrack store state
544
- */
545
- interface EventTrackState {
546
- /** The hero component for computing TTI */
547
- heroComponent: HeroComponent;
548
- /**
549
- * Boolean to indicate the completion of TTI computation
550
- * TTI for a hero component is considered to be computed
551
- * only when the TTI of all its children have been computed
552
- * eg: for a component A having B and C as children, this value
553
- * is set only when TTI for all A, B and C have been set
554
- */
555
- isTTIComputed: boolean;
556
- }
557
- /**
558
- * Name of the EventTrack Store
559
- */
560
- declare const EVENT_TRACK_STORE_NAME = "eventTrack";
561
- /**
562
- * EventTrack Store Interface
563
- */
564
- interface EventTrackStore {
565
- /** EventTrack state */
566
- [EVENT_TRACK_STORE_NAME]: EventTrackState;
567
- }
568
-
569
- /**
570
- * The payload for setting TTI for a hero component
571
- */
572
- interface SetHeroComponentTTIPayload {
573
- /**
574
- * The identifier of the hero component
575
- */
576
- id: string;
577
- /**
578
- * The TTI measure for the hero component
579
- */
580
- TTI: number;
581
- /**
582
- * List of API endpoints used in the Hero component and it's subcomponents
583
- * These are the API's invoked when the TTI is measured
584
- */
585
- involvedApiEndpoints?: string[];
586
- }
587
- /**
588
- * Clear the current store object and replace it with the new one
589
- */
590
- declare const setEventTrack: _ngrx_store.ActionCreator<"[EventTrack] set", (props: {
591
- model: EventTrackState;
592
- }) => {
593
- model: EventTrackState;
594
- } & _ngrx_store.Action<"[EventTrack] set">>;
595
- /**
596
- * Change a part or the whole object in the store.
597
- */
598
- declare const updateEventTrack: _ngrx_store.ActionCreator<"[EventTrack] update", (props: Partial<{
599
- model: EventTrackState;
600
- }>) => Partial<{
601
- model: EventTrackState;
602
- }> & _ngrx_store.Action<"[EventTrack] update">>;
603
- /**
604
- * Clear the whole state, return to the initial one
605
- */
606
- declare const resetEventTrack: _ngrx_store.ActionCreator<"[EventTrack] reset", () => _ngrx_store.Action<"[EventTrack] reset">>;
607
- /**
608
- * Register hero component in the store
609
- */
610
- declare const registerHeroComponent: _ngrx_store.ActionCreator<"[EventTrack] register hero component", (props: {
611
- model: RegisterHeroComponentPayload;
612
- }) => {
613
- model: RegisterHeroComponentPayload;
614
- } & _ngrx_store.Action<"[EventTrack] register hero component">>;
615
- /**
616
- * Set the TTI measure for a hero component in the store
617
- */
618
- declare const setHeroComponentTTI: _ngrx_store.ActionCreator<"[EventTrack] set hero component TTI", (props: {
619
- model: SetHeroComponentTTIPayload;
620
- }) => {
621
- model: SetHeroComponentTTIPayload;
622
- } & _ngrx_store.Action<"[EventTrack] set hero component TTI">>;
623
-
624
- /** Token of the EventTrack reducer */
625
- declare const EVENT_TRACK_REDUCER_TOKEN: InjectionToken<ActionReducer<EventTrackState, Action<string>>>;
626
- /** Provide default reducer for EventTrack store */
627
- declare function getDefaultEventTrackReducer(): ActionReducer<EventTrackState, Action<string>>;
628
- declare class EventTrackStoreModule {
629
- static forRoot<T extends EventTrackState>(reducerFactory: () => ActionReducer<T, Action>): ModuleWithProviders<EventTrackStoreModule>;
630
- static ɵfac: i0.ɵɵFactoryDeclaration<EventTrackStoreModule, never>;
631
- static ɵmod: i0.ɵɵNgModuleDeclaration<EventTrackStoreModule, never, [typeof _ngrx_store.StoreFeatureModule], never>;
632
- static ɵinj: i0.ɵɵInjectorDeclaration<EventTrackStoreModule>;
633
- }
634
-
635
- /** The initial value of the Hero component */
636
- declare const heroComponentInitialState: HeroComponent;
637
- /**
638
- * eventTrack initial state
639
- */
640
- declare const eventTrackInitialState: EventTrackState;
641
- /**
642
- * List of basic actions for EventTrack
643
- */
644
- declare const eventTrackReducerFeatures: ReducerTypes<EventTrackState, ActionCreator[]>[];
645
- /**
646
- * EventTrack Store default reducer
647
- */
648
- declare const eventTrackReducer: _ngrx_store.ActionReducer<EventTrackState, _ngrx_store.Action<string>>;
649
-
650
- /** Select EventTrack State */
651
- declare const selectEventTrackState: _ngrx_store.MemoizedSelector<object, EventTrackState, _ngrx_store.DefaultProjectorFn<EventTrackState>>;
652
- /** Select hero component status */
653
- declare const selectHeroComponentStatus: _ngrx_store.MemoizedSelector<object, number | undefined, (s1: EventTrackState) => number | undefined>;
654
-
655
- declare const eventTrackStorageSync: Readonly<Serializer<EventTrackState>>;
656
-
657
- export { EVENT_TRACK_REDUCER_TOKEN, EVENT_TRACK_SERVICE_CONFIGURATION, EVENT_TRACK_STORE_NAME, EventTrackService, EventTrackStoreModule, TrackClickDirective, TrackEventsDirective, TrackEventsModule, TrackFocusDirective, defaultEventTrackConfiguration, eventTrackInitialState, eventTrackReducer, eventTrackReducerFeatures, eventTrackStorageSync, getDefaultEventTrackReducer, heroComponentInitialState, isPerformanceNavigationEntry, performanceMarksInitialState, registerHeroComponent, resetEventTrack, selectEventTrackState, selectHeroComponentStatus, setEventTrack, setHeroComponentTTI, updateEventTrack };
658
- export type { AnalyticsEvent, AnalyticsEvents, Attribute, Category, ConstructorAnalyticsEvent, ConstructorAnalyticsEventParameters, CustomEventMarks, CustomEventPayload, EventContext, EventInfo, EventTiming, EventTrackConfiguration, EventTrackState, EventTrackStore, FirstLoadDataPayload, HeroComponent, PerceivedEvents, PerfEventPayload, RegisterHeroComponentPayload, ServerCallMetric, SetHeroComponentTTIPayload, TrackActive, TrackEventName, Trackable, UiEventPayload };
659
- //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map DELETED
@@ -1 +0,0 @@
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":"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"}