@o3r/analytics 12.1.0-prerelease.79 → 12.1.0-prerelease.80

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.
Files changed (34) hide show
  1. package/esm2022/contracts/events-contracts.mjs +2 -0
  2. package/esm2022/contracts/index.mjs +2 -0
  3. package/esm2022/directives/index.mjs +2 -0
  4. package/esm2022/directives/track-events/base-track-events.mjs +72 -0
  5. package/esm2022/directives/track-events/index.mjs +5 -0
  6. package/esm2022/directives/track-events/track-click/track-click.directive.mjs +42 -0
  7. package/esm2022/directives/track-events/track-events.directive.mjs +49 -0
  8. package/esm2022/directives/track-events/track-events.module.mjs +18 -0
  9. package/esm2022/directives/track-events/track-focus/track-focus.directive.mjs +39 -0
  10. package/esm2022/fixtures/jasmine/event-track.service.fixture.jasmine.mjs +40 -0
  11. package/esm2022/fixtures/jasmine/index.mjs +2 -0
  12. package/esm2022/fixtures/jasmine/o3r-analytics-fixtures-jasmine.mjs +5 -0
  13. package/esm2022/fixtures/jest/event-track.service.fixture.jest.mjs +40 -0
  14. package/esm2022/fixtures/jest/index.mjs +2 -0
  15. package/esm2022/fixtures/jest/o3r-analytics-fixtures-jest.mjs +5 -0
  16. package/esm2022/o3r-analytics.mjs +5 -0
  17. package/esm2022/public_api.mjs +5 -0
  18. package/esm2022/services/event-track/event-track.configuration.mjs +14 -0
  19. package/esm2022/services/event-track/event-track.service.mjs +303 -0
  20. package/esm2022/services/event-track/index.mjs +3 -0
  21. package/esm2022/services/index.mjs +2 -0
  22. package/esm2022/stores/event-track/event-track.actions.mjs +28 -0
  23. package/esm2022/stores/event-track/event-track.module.mjs +39 -0
  24. package/esm2022/stores/event-track/event-track.reducer.mjs +101 -0
  25. package/esm2022/stores/event-track/event-track.selectors.mjs +7 -0
  26. package/esm2022/stores/event-track/event-track.state.mjs +5 -0
  27. package/esm2022/stores/event-track/event-track.sync.mjs +7 -0
  28. package/esm2022/stores/event-track/index.mjs +7 -0
  29. package/esm2022/stores/index.mjs +2 -0
  30. package/package.json +8 -8
  31. package/schematics/analytics-to-component/index.js.map +1 -0
  32. package/schematics/analytics-to-component/schema.js.map +1 -0
  33. package/schematics/ng-add/index.js.map +1 -0
  34. package/schematics/ng-add/schema.js.map +1 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLWNvbnRyYWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdHMvZXZlbnRzLWNvbnRyYWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXRlZ29yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3J5IHtcbiAgLyoqIFByaW1hcnkgY2F0ZWdvcnkgKi9cbiAgcHJpbWFyeUNhdGVnb3J5OiBzdHJpbmc7XG4gIC8qKiBTdWIgY2F0ZWdvcnkgKi9cbiAgc3ViQ2F0ZWdvcnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGluZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRJbmZvIHtcbiAgLyoqIEV2ZW50IGtleSAqL1xuICBrZXk/OiBzdHJpbmc7XG4gIC8qKiBFdmVudCBuYW1lICovXG4gIGV2ZW50TmFtZTogc3RyaW5nO1xuICAvKiogUGFnZSBpZCAqL1xuICBwYWdlSWQ/OiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgKi9cbiAgdGltZVN0YW1wPzogc3RyaW5nO1xuICAvKiogUHJvZHVjdCBpZCAqL1xuICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG4gIC8qKiBDb21wb25lbnQgaWQgKi9cbiAgY29tcG9uZW50SWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gZXZlbnQgYXR0cmlidXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlIHtcbiAgLyoqIEF0dHJpYnV0ZSBrZXkgKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBBdHRyaWJ1dGUgdmFsdWUgKi9cbiAgdmFsdWU6IHN0cmluZztcbiAgLyoqIEF0dHJpYnV0ZSB0byBkZWZpbmVkIGlmIGl0IGlzIGEgc2Vuc2l0aXZlIGRhdGEgb3Igbm90ICovXG4gIGlzU2Vuc2l0aXZlRGF0YT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudENvbnRleHQge1xuICAvKiogQ2F0ZWdvcnkgKi9cbiAgY2F0ZWdvcnk/OiBDYXRlZ29yeTtcbiAgLyoqIEV2ZW50IGluZm9ybWF0aW9uICovXG4gIGV2ZW50SW5mbzogRXZlbnRJbmZvO1xuICAvKiogTGlzdCBvZiBhdHRyaWJ1dGUgKi9cbiAgYXR0cmlidXRlcz86IEF0dHJpYnV0ZVtdO1xufVxuXG4vKipcbiAqIEdlbmVyaWMgYW5hbHl0aWNzIGV2ZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl0aWNzRXZlbnQgZXh0ZW5kcyBFdmVudENvbnRleHQge31cblxuLyoqXG4gKiBHZW5lcmljIG1vZGVsIGZvciB0aGUgcGFyYW1ldGVyIG9mIGBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50YFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdG9yQW5hbHl0aWNzRXZlbnRQYXJhbWV0ZXJzIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG4vKipcbiAqIFR5cGUgZm9yIEFuYWx5dGljc0V2ZW50IGNsYXNzZXNcbiAqL1xuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3JBbmFseXRpY3NFdmVudDxUIGV4dGVuZHMgQW5hbHl0aWNzRXZlbnQ+ID0gbmV3IChwYXJhbWV0ZXJzPzogQ29uc3RydWN0b3JBbmFseXRpY3NFdmVudFBhcmFtZXRlcnMpID0+IFQ7XG5cbi8qKlxuICogRGljdGlvbmFyeSBvZiBhbmFseXRpY3MgZXZlbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl0aWNzRXZlbnRzIHtcbiAgW2tleTogc3RyaW5nXTogQ29uc3RydWN0b3JBbmFseXRpY3NFdmVudDxBbmFseXRpY3NFdmVudD47XG59XG5cbi8qKlxuICogVHJhY2thYmxlIGl0ZW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFja2FibGU8VCBleHRlbmRzIEFuYWx5dGljc0V2ZW50cz4ge1xuICAvKipcbiAgICogQW5hbHl0aWNzIGV2ZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgYW5hbHl0aWNzRXZlbnRzOiBUO1xufVxuXG4vKiogVGhlIFVJIGV2ZW50IG9iamVjdCB3aGljaCB3aWxsIGJlIGVtaXR0ZWQgYnkgZXZlbnQgdHJhY2tlciBzZXJ2aWNlICovXG5leHBvcnQgaW50ZXJmYWNlIFVpRXZlbnRQYXlsb2FkIHtcbiAgLyoqIFRoZSBldmVudCB3aGljaCB0YWtlcyBwbGFjZSBpbiB0aGUgRE9NICovXG4gIG5hdGl2ZUV2ZW50OiBFdmVudDtcbiAgLyoqIFRoZSBjdXN0b20gb2JqZWN0IHdpdGggYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnQgY2FwdHVyZWQgKi9cbiAgY29udGV4dDogRXZlbnRDb250ZXh0O1xufVxuXG4vKiogVGhlIGN1c3RvbSBldmVudCBvYmplY3Qgd2hpY2ggd2lsbCBiZSBlbWl0dGVkIGJ5IGV2ZW50IHRyYWNrZXIgc2VydmljZSAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21FdmVudFBheWxvYWQge1xuICAvKiogVGhlIGN1c3RvbSBvYmplY3Qgd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudCBjYXB0dXJlZCAqL1xuICBjb250ZXh0OiBFdmVudENvbnRleHQ7XG59XG5cbi8qKiBUaGUgZXZlbnQgbmFtZSB3aGljaCBoYXMgdG8gYmUgdHJhY2tlZCAqL1xuZXhwb3J0IHR5cGUgVHJhY2tFdmVudE5hbWUgPSBrZXlvZiBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXA7XG5cbi8qKlxuICogRXZlbnQgdGltaW5nIG1hcmtzXG4gKiBUaG9zZSBtYXJrcyBhcmUgbWVhbnQgdG8gYmUgdXNlZCBlaXRoZXIgYXMgc3RhcnQgYW5kIGVuZCBvZiBhbiBldmVudCAoZS5nLiBhIHNlcnZlciBjYWxsKVxuICogZWl0aGVyIGFzIGxvd2VyIGFuZCB1cHBlciBib3VuZCBmb3IgYSBzcGVjaWZpYyBtYXJrIChlLmcuIGZpcnN0IHBhaW50KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VGltaW5nIHtcbiAgLyoqIFRpbWVzdGFtcCBvZiB0aGUgc3RhcnQgb2YgYW4gZXZlbnQgb3IgbG93ZXIgYm91bmQgZm9yIGEgdGltZSBtYXJrICovXG4gIHN0YXJ0VGltZTogbnVtYmVyO1xuICAvKiogVGltZXN0YW1wIG9mIHRoZSBlbmQgb2YgYW4gZXZlbnQgb3IgdXBwZXIgYm91bmQgZm9yIGEgdGltZSBtYXJrICovXG4gIGVuZFRpbWU/OiBudW1iZXI7XG59XG5cbi8qKiBQZXJjZWl2ZWQgZXZlbnRzIG1hcmtzICovXG5leHBvcnQgaW50ZXJmYWNlIFBlcmNlaXZlZEV2ZW50cyB7XG4gIC8qKlxuICAgKiBNYXJrIHRoZSB0aW1lIGZyb20gdGhlIG5hdmlnYXRpb24gc3RhcnQgdW50aWwgdGhlIGxvYWRpbmcgaW5kaWNhdG9yIHRyaWdnZXJzXG4gICAqIHtAbGluayBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS93ZWIvdG9vbHMvbGlnaHRob3VzZS9hdWRpdHMvZmlyc3QtY29udGVudGZ1bC1wYWludHxGUH1cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gLS0gbmFtaW5nIGNvbnZlbnRpb24gaW1wb3NlZCBieSBMaWdodGhvdXNlXG4gIEZQPzogRXZlbnRUaW1pbmc7XG4gIC8qKlxuICAgKiBNYXJrcyB0aGUgdGltZSB3aGVuIHRoZSBwYWdlIGFwcGVhcnMgdG8gYmUgbWVhbmluZ2Z1bGx5IGNvbXBsZXRlXG4gICAqIFRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHBhaW50IGFmdGVyIHdoaWNoIHRoZSBiaWdnZXN0IGFib3ZlLXRoZS1mb2xkIGxheW91dCBjaGFuZ2UgaGFzIGhhcHBlbmVkLCBhbmQgd2ViIGZvbnRzIGhhdmUgbG9hZGVkLlxuICAgKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vd2ViL3Rvb2xzL2xpZ2h0aG91c2UvYXVkaXRzL2ZpcnN0LW1lYW5pbmdmdWwtcGFpbnR8Rk1QfVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAtLSBuYW1pbmcgY29udmVudGlvbiBpbXBvc2VkIGJ5IExpZ2h0aG91c2VcbiAgRk1QPzogRXZlbnRUaW1pbmc7XG4gIC8qKiBNYXJrcyB0aGUgdGltZSB3aGVuIHRoZSBwYWdlIGNvbnNpZGVycyBpdCBoYXMgYWxsIHRoZSBkYXRhIHRvIGJlY29tZSBpbnRlcmFjdGl2ZSAgKi9cbiAgZGF0YVJlYWR5PzogRXZlbnRUaW1pbmc7XG59XG5cbi8qKiBOZXR3b3JrIG1ldHJpY3MgZm9yIGEgc2VydmVyIGNhbGwgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyQ2FsbE1ldHJpYyB7XG4gIC8qKiBSZXF1ZXN0IHVybCAqL1xuICB1cmw6IHN0cmluZztcbiAgLyoqIEh0dHAgcmVxdWVzdCBtZXRob2QgKi9cbiAgaHR0cE1ldGhvZD86IHN0cmluZztcbiAgLyoqIFRpbWUgdGFrZW4gZm9yIGEgc2VydmVyIGNhbGw7IFN0YXJ0IHRpbWUgd2hlbiB0aGUgY2FsbCBoYXMgZmlyZWQgYW5kIGVuZCB0aW1lIHdoZW4gdGhlIGNhbGwgaGFzIGZpbmlzaGVkICovXG4gIHRpbWluZzogRXZlbnRUaW1pbmc7XG4gIC8qKiBDdXN0b20gZXJyb3Igb2JqZWN0IGFkZGVkIGZvciBhIHJlcXVlc3Q7IGV4LiBBbiBlcnJvciBvYmplY3Qgd2hlbiB0aGUgbmV0d29yayBpcyBkb3duICovXG4gIGVycm9yPzogRXJyb3I7XG4gIC8qKiBTdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UgICovXG4gIGh0dHBTdGF0dXM/OiBudW1iZXI7XG4gIC8qKiBTaXplIG9mIHRoZSByZXNwb25zZSBpbiBieXRlcyAqL1xuICByZXNwb25zZVNpemU/OiBudW1iZXI7XG4gIC8qKiBJZiBhdmFpbGFibGUsIGl0IGlkZW50aWZpZXMgdGhlIGNhbGwgd2l0aCB0aGUgc2VydmVyIGxvZ3MgKGUuZy4gYW1hLXJlcXVlc3QtaWQgZm9yIER4QVBJIGNhbGxzKSAqL1xuICByZXF1ZXN0SWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBDdXN0b20gbWFyayBldmVudCBhZGRlZCBvbiBhIHBhZ2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRXZlbnRNYXJrcyB7XG4gIC8qKiBOYW1lIG9mIHRoZSBtZXRyaWMgbmVlZGVkICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBUaW1lIHJhbmdlIHRha2VuIGZvciB0aGUgYWRkZWQgbWFyayAqL1xuICB0aW1pbmc6IEV2ZW50VGltaW5nO1xufVxuXG4vKiogT2JqZWN0IHN0cnVjdHVyZSBmb3IgZmlyc3QgbG9hZCBvZiB0aGUgYXBwICovXG5leHBvcnQgaW50ZXJmYWNlIEZpcnN0TG9hZERhdGFQYXlsb2FkIHtcbiAgLyoqIFRpbWUgYmV0d2VlbiBuYXZpZ2F0aW9uIGlzIHRyaWdnZXJlZCBhbmQgdGhlIGNvbm5lY3Rpb24gaXMgb3BlbmVkIHRvIHRoZSBuZXR3b3JrIGluIG1zICovXG4gIGNvbm5lY3Rpb246IG51bWJlcjtcbiAgLyoqIFRpbWUgYmV0d2VlbiB0aGUgY29ubmVjdGlvbiBpcyBvcGVuZWQgdG8gdGhlIG5ldHdvcmsgKGNvbm5lY3RFbmQpIGFuZCB0aGUgZmlyc3QgYnl0ZSBvZiByZXNwb25zZSBpcyByZWNlaXZlZCAocmVzcG9uc2VTdGFydCkgaW4gbXMgKi9cbiAgcmVxdWVzdDogbnVtYmVyO1xuICAvKiogVGhlIGR1cmF0aW9uIHdoaWxlIHRoZSByZXNwb25zZSBpcyByZWNlaXZlZCBpbiBtczsgZnJvbSB0aGUgZmlyc3QgYnl0ZSBmcm9tIHJlc3BvbnNlIHJlY2VpdmVkIHRvIHRoZSBsYXN0IG9uZSAqL1xuICByZXNwb25zZTogbnVtYmVyO1xuICAvKiogRE9NIGxvYWRpbmcuIFRpbWUgYmV0d2VlbiBicm93c2VyIHJlc291cmNlcyByZWNlaXZlZCBhbmQgRE9NIHJlbmRlcmVkIGluIG1zICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gLS0gbmFtaW5nIGNvbnZlbnRpb24gaW1wb3NlZCBieSBMaWdodGhvdXNlXG4gIERPTTogbnVtYmVyO1xuICAvKiogVGhlIHRvdGFsIHBhZ2UgbG9hZCB0aW1lIGluIG1zICovXG4gIHRvdGFsOiBudW1iZXI7XG59XG5cbi8qKiBUaGUgcGVyZm9ybWFuY2UgZXZlbnQgb2JqZWN0IHdoaWNoIHdpbGwgYmUgZW1pdHRlZCBieSBldmVudCB0cmFja2VyIHNlcnZpY2UgIGZvciBhIHBhZ2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyZkV2ZW50UGF5bG9hZCB7XG4gIC8qKiBUaGUgcGFnZSBuYW1lIChyb3V0ZSBvciBwYWdlIGNvZGUgb3IgbmFtaW5nIGNvbnZlbnRpb24pIHdoZXJlIHRoZSBwZXJmb3JtYW5jZSBldmVudHMgYXJlIHRyYWNrZWQgKi9cbiAgcGFnZTogc3RyaW5nO1xuICAvKiogTWFya3MgZm9yIHBlcmNlaXZlZCBldmVudHMgKi9cbiAgcGVyY2VpdmVkOiBQZXJjZWl2ZWRFdmVudHM7XG4gIC8qKiBNYXJrcyBmb3IgdGhlIGZpcnN0IGxvYWQgb2YgdGhlIGFwcCAgKi9cbiAgZmlyc3RMb2FkPzogRmlyc3RMb2FkRGF0YVBheWxvYWQ7XG4gIC8qKiBTZXJ2ZXIgY2FsbHMgaW4gdGhlIHBhZ2UsIGV4Y2x1ZGluZyB0aGUgcmVzb3VyY2VzIGNhbGxzICovXG4gIHNlcnZlckNhbGxzOiBTZXJ2ZXJDYWxsTWV0cmljW107XG4gIC8qKiBDdXN0b20gbWFya3MgYWRkZWQgdG8gdGhlIHBhZ2UgKi9cbiAgY3VzdG9tTWFya3M6IEN1c3RvbUV2ZW50TWFya3NbXTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './events-contracts';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2V2ZW50cy1jb250cmFjdHMnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './track-events/index';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90cmFjay1ldmVudHMvaW5kZXgnO1xuIl19
@@ -0,0 +1,72 @@
1
+ import { Directive, ElementRef, Renderer2, } from '@angular/core';
2
+ import { takeUntilDestroyed, } from '@angular/core/rxjs-interop';
3
+ import { EventTrackService, } from '../../services/event-track';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/event-track";
6
+ export class BaseTrackEvents {
7
+ constructor(el, trackEventsService, renderer) {
8
+ this.el = el;
9
+ this.trackEventsService = trackEventsService;
10
+ this.renderer = renderer;
11
+ /**
12
+ * Store the functions returned by the angular renderer when an event listener is built
13
+ * The functions can be called to destroy the associated listeners
14
+ */
15
+ this.unlistenFns = [];
16
+ /** Array of track events objects */
17
+ this.trackingEvents = [];
18
+ /** Flag for the tracking mode */
19
+ this.isTrackingActive = false;
20
+ this.trackEventsService.uiTrackingActive$.pipe(takeUntilDestroyed()).subscribe((isActive) => {
21
+ this.isTrackingActive = isActive;
22
+ if (isActive) {
23
+ this.listen();
24
+ }
25
+ else {
26
+ this.unlisten();
27
+ }
28
+ });
29
+ }
30
+ /**
31
+ * Create the listener for the given event
32
+ * @param event name
33
+ */
34
+ nativeListen(event) {
35
+ // Renderer is used because it is manipulating the DOM and when the element is destroyed the event listener is destroyed too.
36
+ // Usage of an observable from event was not possible because the ngOnDestroy with the unsubscribe was called before the ui event was handled
37
+ return this.renderer.listen(this.el.nativeElement, event, (nativeEvent) => {
38
+ if (this.trackEventContextConstructor) {
39
+ this.trackEventsService.addUiEvent({ nativeEvent, context: new this.trackEventContextConstructor(this.trackEventContextConstructorParameters) });
40
+ }
41
+ else if (this.trackEventContext) {
42
+ this.trackEventsService.addUiEvent({ nativeEvent, context: this.trackEventContext });
43
+ }
44
+ });
45
+ }
46
+ /** Create the events listeners */
47
+ listen() {
48
+ this.unlisten();
49
+ this.unlistenFns = this.trackingEvents.map((event) => this.nativeListen(event));
50
+ }
51
+ /** Remove the created events listeners */
52
+ unlisten() {
53
+ this.unlistenFns.forEach((fn) => fn());
54
+ this.unlistenFns = [];
55
+ }
56
+ /**
57
+ * Keep the events to be listen and create the listener event for the given event name
58
+ * @param event name
59
+ */
60
+ trackEvent(event) {
61
+ this.trackingEvents.push(event);
62
+ if (this.isTrackingActive) {
63
+ this.unlistenFns.push(this.nativeListen(event));
64
+ }
65
+ }
66
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseTrackEvents, deps: [{ token: i0.ElementRef }, { token: i1.EventTrackService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
67
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: BaseTrackEvents, ngImport: i0 }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseTrackEvents, decorators: [{
70
+ type: Directive
71
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.EventTrackService }, { type: i0.Renderer2 }] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10cmFjay1ldmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy90cmFjay1ldmVudHMvYmFzZS10cmFjay1ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQVFwQyxPQUFPLEVBQ0wsaUJBQWlCLEdBQ2xCLE1BQU0sNEJBQTRCLENBQUM7OztBQUdwQyxNQUFNLE9BQWdCLGVBQWU7SUE0Qm5DLFlBQWdDLEVBQWMsRUFBWSxrQkFBcUMsRUFBWSxRQUFtQjtRQUE5RixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUFZLGFBQVEsR0FBUixRQUFRLENBQVc7UUFaOUg7OztXQUdHO1FBQ08sZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBRTNDLG9DQUFvQztRQUMxQixtQkFBYyxHQUFxQixFQUFFLENBQUM7UUFFaEQsaUNBQWlDO1FBQ3ZCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUdqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMxRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1lBQ2pDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVksQ0FBQyxLQUFxQjtRQUMxQyw2SEFBNkg7UUFDN0gsNklBQTZJO1FBQzdJLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDeEUsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25KLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztZQUN2RixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0NBQWtDO0lBQzNCLE1BQU07UUFDWCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCwwQ0FBMEM7SUFDbkMsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsS0FBcUI7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7a0lBNUVtQixlQUFlO3NIQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICB0YWtlVW50aWxEZXN0cm95ZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFuYWx5dGljc0V2ZW50LFxuICBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50LFxuICBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50UGFyYW1ldGVycyxcbiAgRXZlbnRDb250ZXh0LFxuICBUcmFja0V2ZW50TmFtZSxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcbmltcG9ydCB7XG4gIEV2ZW50VHJhY2tTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ldmVudC10cmFjayc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VUcmFja0V2ZW50cyB7XG4gIC8qKlxuICAgKiBDdXN0b20gb2JqZWN0IHRvIGJlIHN0b3JlZCB3aGVuIHRoZSBjbGljayBldmVudCBpcyBjYXB0dXJlZFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRyYWNrRXZlbnRDb250ZXh0PzogRXZlbnRDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBDbGFzcyB0byBjcmVhdGUgdGhlIEV2ZW50Q29udGV4dFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRyYWNrRXZlbnRDb250ZXh0Q29uc3RydWN0b3I/OiBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50PEFuYWx5dGljc0V2ZW50PjtcblxuICAvKipcbiAgICogUGFyYW1ldGVyIHRoYXQgc2hvdWxkIGJlIGdpdmVuIHRvIHRoZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRyYWNrRXZlbnRDb250ZXh0Q29uc3RydWN0b3JQYXJhbWV0ZXJzPzogQ29uc3RydWN0b3JBbmFseXRpY3NFdmVudFBhcmFtZXRlcnM7XG5cbiAgLyoqXG4gICAqIFN0b3JlIHRoZSBmdW5jdGlvbnMgcmV0dXJuZWQgYnkgdGhlIGFuZ3VsYXIgcmVuZGVyZXIgd2hlbiBhbiBldmVudCBsaXN0ZW5lciBpcyBidWlsdFxuICAgKiBUaGUgZnVuY3Rpb25zIGNhbiBiZSBjYWxsZWQgdG8gZGVzdHJveSB0aGUgYXNzb2NpYXRlZCBsaXN0ZW5lcnNcbiAgICovXG4gIHByb3RlY3RlZCB1bmxpc3RlbkZuczogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICAvKiogQXJyYXkgb2YgdHJhY2sgZXZlbnRzIG9iamVjdHMgKi9cbiAgcHJvdGVjdGVkIHRyYWNraW5nRXZlbnRzOiBUcmFja0V2ZW50TmFtZVtdID0gW107XG5cbiAgLyoqIEZsYWcgZm9yIHRoZSB0cmFja2luZyBtb2RlICovXG4gIHByb3RlY3RlZCBpc1RyYWNraW5nQWN0aXZlID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbDogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHRyYWNrRXZlbnRzU2VydmljZTogRXZlbnRUcmFja1NlcnZpY2UsIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy50cmFja0V2ZW50c1NlcnZpY2UudWlUcmFja2luZ0FjdGl2ZSQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKChpc0FjdGl2ZSkgPT4ge1xuICAgICAgdGhpcy5pc1RyYWNraW5nQWN0aXZlID0gaXNBY3RpdmU7XG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgdGhpcy5saXN0ZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudW5saXN0ZW4oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGxpc3RlbmVyIGZvciB0aGUgZ2l2ZW4gZXZlbnRcbiAgICogQHBhcmFtIGV2ZW50IG5hbWVcbiAgICovXG4gIHByb3RlY3RlZCBuYXRpdmVMaXN0ZW4oZXZlbnQ6IFRyYWNrRXZlbnROYW1lKSB7XG4gICAgLy8gUmVuZGVyZXIgaXMgdXNlZCBiZWNhdXNlIGl0IGlzIG1hbmlwdWxhdGluZyB0aGUgRE9NIGFuZCB3aGVuIHRoZSBlbGVtZW50IGlzIGRlc3Ryb3llZCB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgZGVzdHJveWVkIHRvby5cbiAgICAvLyBVc2FnZSBvZiBhbiBvYnNlcnZhYmxlIGZyb20gZXZlbnQgd2FzIG5vdCBwb3NzaWJsZSBiZWNhdXNlIHRoZSBuZ09uRGVzdHJveSB3aXRoIHRoZSB1bnN1YnNjcmliZSB3YXMgY2FsbGVkIGJlZm9yZSB0aGUgdWkgZXZlbnQgd2FzIGhhbmRsZWRcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCBldmVudCwgKG5hdGl2ZUV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy50cmFja0V2ZW50Q29udGV4dENvbnN0cnVjdG9yKSB7XG4gICAgICAgIHRoaXMudHJhY2tFdmVudHNTZXJ2aWNlLmFkZFVpRXZlbnQoeyBuYXRpdmVFdmVudCwgY29udGV4dDogbmV3IHRoaXMudHJhY2tFdmVudENvbnRleHRDb25zdHJ1Y3Rvcih0aGlzLnRyYWNrRXZlbnRDb250ZXh0Q29uc3RydWN0b3JQYXJhbWV0ZXJzKSB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFja0V2ZW50Q29udGV4dCkge1xuICAgICAgICB0aGlzLnRyYWNrRXZlbnRzU2VydmljZS5hZGRVaUV2ZW50KHsgbmF0aXZlRXZlbnQsIGNvbnRleHQ6IHRoaXMudHJhY2tFdmVudENvbnRleHQgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogQ3JlYXRlIHRoZSBldmVudHMgbGlzdGVuZXJzICovXG4gIHB1YmxpYyBsaXN0ZW4oKSB7XG4gICAgdGhpcy51bmxpc3RlbigpO1xuICAgIHRoaXMudW5saXN0ZW5GbnMgPSB0aGlzLnRyYWNraW5nRXZlbnRzLm1hcCgoZXZlbnQpID0+IHRoaXMubmF0aXZlTGlzdGVuKGV2ZW50KSk7XG4gIH1cblxuICAvKiogUmVtb3ZlIHRoZSBjcmVhdGVkIGV2ZW50cyBsaXN0ZW5lcnMgKi9cbiAgcHVibGljIHVubGlzdGVuKCkge1xuICAgIHRoaXMudW5saXN0ZW5GbnMuZm9yRWFjaCgoZm4pID0+IGZuKCkpO1xuICAgIHRoaXMudW5saXN0ZW5GbnMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBLZWVwIHRoZSBldmVudHMgdG8gYmUgbGlzdGVuIGFuZCBjcmVhdGUgdGhlIGxpc3RlbmVyIGV2ZW50IGZvciB0aGUgZ2l2ZW4gZXZlbnQgbmFtZVxuICAgKiBAcGFyYW0gZXZlbnQgbmFtZVxuICAgKi9cbiAgcHVibGljIHRyYWNrRXZlbnQoZXZlbnQ6IFRyYWNrRXZlbnROYW1lKSB7XG4gICAgdGhpcy50cmFja2luZ0V2ZW50cy5wdXNoKGV2ZW50KTtcbiAgICBpZiAodGhpcy5pc1RyYWNraW5nQWN0aXZlKSB7XG4gICAgICB0aGlzLnVubGlzdGVuRm5zLnB1c2godGhpcy5uYXRpdmVMaXN0ZW4oZXZlbnQpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './track-click/track-click.directive';
2
+ export * from './track-events.directive';
3
+ export * from './track-events.module';
4
+ export * from './track-focus/track-focus.directive';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy90cmFjay1ldmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHJhY2stY2xpY2svdHJhY2stY2xpY2suZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhY2stZXZlbnRzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYWNrLWV2ZW50cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFjay1mb2N1cy90cmFjay1mb2N1cy5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,42 @@
1
+ import { Directive, ElementRef, Input, Renderer2, } from '@angular/core';
2
+ import { EventTrackService, } from '../../../services/event-track/event-track.service';
3
+ import { BaseTrackEvents, } from '../base-track-events';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services/event-track/event-track.service";
6
+ /**
7
+ * Directive to capture the 'click' event on the reference element.
8
+ * The captured event will be exposed via EventTrackService
9
+ * @example
10
+ * ```html
11
+ * <my-component
12
+ * (click)="doSomething()"
13
+ * trackClick
14
+ * [trackEventContext]="{context: 'click on the component with tag: my-component'}">
15
+ * </my-component>
16
+ * ```
17
+ */
18
+ export class TrackClickDirective extends BaseTrackEvents {
19
+ constructor(el, trackEventsService, renderer) {
20
+ super(el, trackEventsService, renderer);
21
+ }
22
+ ngOnInit() {
23
+ this.trackEvent('click');
24
+ this.trackEvent('contextmenu');
25
+ this.trackEvent('auxclick');
26
+ }
27
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackClickDirective, deps: [{ token: i0.ElementRef }, { token: i1.EventTrackService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
28
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TrackClickDirective, selector: "[trackClick]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters" }, usesInheritance: true, ngImport: i0 }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackClickDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ selector: '[trackClick]'
34
+ }]
35
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.EventTrackService }, { type: i0.Renderer2 }], propDecorators: { trackEventContext: [{
36
+ type: Input
37
+ }], trackEventContextConstructor: [{
38
+ type: Input
39
+ }], trackEventContextConstructorParameters: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stY2xpY2suZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvdHJhY2stZXZlbnRzL3RyYWNrLWNsaWNrL3RyYWNrLWNsaWNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxtREFBbUQsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZUFBZSxHQUNoQixNQUFNLHNCQUFzQixDQUFDOzs7QUFFOUI7Ozs7Ozs7Ozs7O0dBV0c7QUFJSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWdCdEQsWUFBWSxFQUFjLEVBQUUsa0JBQXFDLEVBQUUsUUFBbUI7UUFDcEYsS0FBSyxDQUFDLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7a0lBeEJVLG1CQUFtQjtzSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjt1SUFLaUIsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUtVLDRCQUE0QjtzQkFBM0MsS0FBSztnQkFLVSxzQ0FBc0M7c0JBQXJELEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBbmFseXRpY3NFdmVudCxcbiAgQ29uc3RydWN0b3JBbmFseXRpY3NFdmVudCxcbiAgQ29uc3RydWN0b3JBbmFseXRpY3NFdmVudFBhcmFtZXRlcnMsXG4gIEV2ZW50Q29udGV4dCxcbn0gZnJvbSAnLi4vLi4vLi4vY29udHJhY3RzL2luZGV4JztcbmltcG9ydCB7XG4gIEV2ZW50VHJhY2tTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudC10cmFjay9ldmVudC10cmFjay5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEJhc2VUcmFja0V2ZW50cyxcbn0gZnJvbSAnLi4vYmFzZS10cmFjay1ldmVudHMnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBjYXB0dXJlIHRoZSAnY2xpY2snIGV2ZW50IG9uIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIFRoZSBjYXB0dXJlZCBldmVudCB3aWxsIGJlIGV4cG9zZWQgdmlhIEV2ZW50VHJhY2tTZXJ2aWNlXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPG15LWNvbXBvbmVudFxuICogICAgKGNsaWNrKT1cImRvU29tZXRoaW5nKClcIlxuICogICAgdHJhY2tDbGlja1xuICogICAgW3RyYWNrRXZlbnRDb250ZXh0XT1cIntjb250ZXh0OiAnY2xpY2sgb24gdGhlIGNvbXBvbmVudCB3aXRoIHRhZzogbXktY29tcG9uZW50J31cIj5cbiAqIDwvbXktY29tcG9uZW50PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0cmFja0NsaWNrXSdcbn0pXG5leHBvcnQgY2xhc3MgVHJhY2tDbGlja0RpcmVjdGl2ZSBleHRlbmRzIEJhc2VUcmFja0V2ZW50cyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHRyYWNrRXZlbnRDb250ZXh0PzogRXZlbnRDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHRyYWNrRXZlbnRDb250ZXh0Q29uc3RydWN0b3I/OiBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50PEFuYWx5dGljc0V2ZW50PjtcblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmFja0V2ZW50Q29udGV4dENvbnN0cnVjdG9yUGFyYW1ldGVycz86IENvbnN0cnVjdG9yQW5hbHl0aWNzRXZlbnRQYXJhbWV0ZXJzO1xuXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCB0cmFja0V2ZW50c1NlcnZpY2U6IEV2ZW50VHJhY2tTZXJ2aWNlLCByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgc3VwZXIoZWwsIHRyYWNrRXZlbnRzU2VydmljZSwgcmVuZGVyZXIpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMudHJhY2tFdmVudCgnY2xpY2snKTtcbiAgICB0aGlzLnRyYWNrRXZlbnQoJ2NvbnRleHRtZW51Jyk7XG4gICAgdGhpcy50cmFja0V2ZW50KCdhdXhjbGljaycpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Directive, ElementRef, Input, Renderer2, } from '@angular/core';
2
+ import { EventTrackService, } from '../../services/event-track/event-track.service';
3
+ import { BaseTrackEvents, } from './base-track-events';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/event-track/event-track.service";
6
+ /**
7
+ * Directive to capture the events given as input, on the reference element.
8
+ * The captured event will be exposed via EventTrackService
9
+ * @example
10
+ * ```html
11
+ * <my-component
12
+ * (click)="doSomething()"
13
+ * [trackEvents]="['mouseenter', 'mouseleave']"
14
+ * [trackEventContext]="{context: 'click on the component with tag: my-component'}">
15
+ * </my-component>
16
+ * ```
17
+ */
18
+ export class TrackEventsDirective extends BaseTrackEvents {
19
+ constructor(el, trackEventsService, renderer) {
20
+ super(el, trackEventsService, renderer);
21
+ /** The list of events to listen */
22
+ this.trackEventNames = [];
23
+ }
24
+ ngOnChanges(changes) {
25
+ if ('trackEventNames' in changes) {
26
+ this.trackingEvents = [];
27
+ this.unlisten();
28
+ this.trackEventNames.forEach((eventName) => this.trackEvent(eventName));
29
+ }
30
+ }
31
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackEventsDirective, deps: [{ token: i0.ElementRef }, { token: i1.EventTrackService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
32
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TrackEventsDirective, selector: "[trackEvents]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters", trackEventNames: ["trackEvents", "trackEventNames"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackEventsDirective, decorators: [{
35
+ type: Directive,
36
+ args: [{
37
+ selector: '[trackEvents]'
38
+ }]
39
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.EventTrackService }, { type: i0.Renderer2 }], propDecorators: { trackEventContext: [{
40
+ type: Input
41
+ }], trackEventContextConstructor: [{
42
+ type: Input
43
+ }], trackEventContextConstructorParameters: [{
44
+ type: Input
45
+ }], trackEventNames: [{
46
+ type: Input,
47
+ args: ['trackEvents']
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stZXZlbnRzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL3RyYWNrLWV2ZW50cy90cmFjay1ldmVudHMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUNMLGlCQUFpQixHQUNsQixNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFDTCxlQUFlLEdBQ2hCLE1BQU0scUJBQXFCLENBQUM7OztBQUU3Qjs7Ozs7Ozs7Ozs7R0FXRztBQUlILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxlQUFlO0lBbUJ2RCxZQUFZLEVBQWMsRUFBRSxrQkFBcUMsRUFBRSxRQUFtQjtRQUNwRixLQUFLLENBQUMsRUFBRSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBSjFDLG1DQUFtQztRQUNOLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztJQUlwRSxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksaUJBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7a0lBN0JVLG9CQUFvQjtzSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjt1SUFLaUIsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUtVLDRCQUE0QjtzQkFBM0MsS0FBSztnQkFLVSxzQ0FBc0M7c0JBQXJELEtBQUs7Z0JBR3VCLGVBQWU7c0JBQTNDLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFuYWx5dGljc0V2ZW50LFxuICBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50LFxuICBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50UGFyYW1ldGVycyxcbiAgRXZlbnRDb250ZXh0LFxuICBUcmFja0V2ZW50TmFtZSxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcbmltcG9ydCB7XG4gIEV2ZW50VHJhY2tTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ldmVudC10cmFjay9ldmVudC10cmFjay5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEJhc2VUcmFja0V2ZW50cyxcbn0gZnJvbSAnLi9iYXNlLXRyYWNrLWV2ZW50cyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIGNhcHR1cmUgdGhlIGV2ZW50cyBnaXZlbiBhcyBpbnB1dCwgb24gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogVGhlIGNhcHR1cmVkIGV2ZW50IHdpbGwgYmUgZXhwb3NlZCB2aWEgRXZlbnRUcmFja1NlcnZpY2VcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8bXktY29tcG9uZW50XG4gKiAgICAoY2xpY2spPVwiZG9Tb21ldGhpbmcoKVwiXG4gKiAgICBbdHJhY2tFdmVudHNdPVwiWydtb3VzZWVudGVyJywgJ21vdXNlbGVhdmUnXVwiXG4gKiAgICBbdHJhY2tFdmVudENvbnRleHRdPVwie2NvbnRleHQ6ICdjbGljayBvbiB0aGUgY29tcG9uZW50IHdpdGggdGFnOiBteS1jb21wb25lbnQnfVwiPlxuICogPC9teS1jb21wb25lbnQ+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RyYWNrRXZlbnRzXSdcbn0pXG5leHBvcnQgY2xhc3MgVHJhY2tFdmVudHNEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlVHJhY2tFdmVudHMgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmFja0V2ZW50Q29udGV4dD86IEV2ZW50Q29udGV4dDtcblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmFja0V2ZW50Q29udGV4dENvbnN0cnVjdG9yPzogQ29uc3RydWN0b3JBbmFseXRpY3NFdmVudDxBbmFseXRpY3NFdmVudD47XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgdHJhY2tFdmVudENvbnRleHRDb25zdHJ1Y3RvclBhcmFtZXRlcnM/OiBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50UGFyYW1ldGVycztcblxuICAvKiogVGhlIGxpc3Qgb2YgZXZlbnRzIHRvIGxpc3RlbiAqL1xuICBASW5wdXQoJ3RyYWNrRXZlbnRzJykgcHVibGljIHRyYWNrRXZlbnROYW1lczogVHJhY2tFdmVudE5hbWVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCB0cmFja0V2ZW50c1NlcnZpY2U6IEV2ZW50VHJhY2tTZXJ2aWNlLCByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgc3VwZXIoZWwsIHRyYWNrRXZlbnRzU2VydmljZSwgcmVuZGVyZXIpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ3RyYWNrRXZlbnROYW1lcycgaW4gY2hhbmdlcykge1xuICAgICAgdGhpcy50cmFja2luZ0V2ZW50cyA9IFtdO1xuICAgICAgdGhpcy51bmxpc3RlbigpO1xuICAgICAgdGhpcy50cmFja0V2ZW50TmFtZXMuZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB0aGlzLnRyYWNrRXZlbnQoZXZlbnROYW1lKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule, } from '@angular/core';
2
+ import { TrackClickDirective, } from './track-click/track-click.directive';
3
+ import { TrackEventsDirective, } from './track-events.directive';
4
+ import { TrackFocusDirective, } from './track-focus/track-focus.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class TrackEventsModule {
7
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackEventsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TrackEventsModule, declarations: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective], exports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective] }); }
9
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackEventsModule }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackEventsModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective],
15
+ exports: [TrackEventsDirective, TrackClickDirective, TrackFocusDirective]
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stZXZlbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL3RyYWNrLWV2ZW50cy90cmFjay1ldmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG1CQUFtQixHQUNwQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFDTCxvQkFBb0IsR0FDckIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsbUJBQW1CLEdBQ3BCLE1BQU0scUNBQXFDLENBQUM7O0FBTTdDLE1BQU0sT0FBTyxpQkFBaUI7a0lBQWpCLGlCQUFpQjttSUFBakIsaUJBQWlCLGlCQUhiLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixhQUNuRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUI7bUlBRTdELGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQztvQkFDOUUsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUM7aUJBQzFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVHJhY2tDbGlja0RpcmVjdGl2ZSxcbn0gZnJvbSAnLi90cmFjay1jbGljay90cmFjay1jbGljay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgVHJhY2tFdmVudHNEaXJlY3RpdmUsXG59IGZyb20gJy4vdHJhY2stZXZlbnRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBUcmFja0ZvY3VzRGlyZWN0aXZlLFxufSBmcm9tICcuL3RyYWNrLWZvY3VzL3RyYWNrLWZvY3VzLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1RyYWNrRXZlbnRzRGlyZWN0aXZlLCBUcmFja0NsaWNrRGlyZWN0aXZlLCBUcmFja0ZvY3VzRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1RyYWNrRXZlbnRzRGlyZWN0aXZlLCBUcmFja0NsaWNrRGlyZWN0aXZlLCBUcmFja0ZvY3VzRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBUcmFja0V2ZW50c01vZHVsZSB7fVxuIl19
@@ -0,0 +1,39 @@
1
+ import { Directive, ElementRef, Input, Renderer2, } from '@angular/core';
2
+ import { EventTrackService, } from '../../../services/event-track/event-track.service';
3
+ import { BaseTrackEvents, } from '../base-track-events';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services/event-track/event-track.service";
6
+ /**
7
+ * Directive to capture the 'focus' event on the reference element.
8
+ * The captured event will be exposed via EventTrackService
9
+ * @example
10
+ * ```html
11
+ * <my-component
12
+ * trackFocus
13
+ * [trackEventContext]="{context: 'focus on the component with tag: my-component'}">
14
+ * </my-component>
15
+ * ```
16
+ */
17
+ export class TrackFocusDirective extends BaseTrackEvents {
18
+ constructor(el, trackEventsService, renderer) {
19
+ super(el, trackEventsService, renderer);
20
+ }
21
+ ngOnInit() {
22
+ this.trackEvent('focus');
23
+ }
24
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackFocusDirective, deps: [{ token: i0.ElementRef }, { token: i1.EventTrackService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
25
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TrackFocusDirective, selector: "[trackFocus]", inputs: { trackEventContext: "trackEventContext", trackEventContextConstructor: "trackEventContextConstructor", trackEventContextConstructorParameters: "trackEventContextConstructorParameters" }, usesInheritance: true, ngImport: i0 }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TrackFocusDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: '[trackFocus]'
31
+ }]
32
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.EventTrackService }, { type: i0.Renderer2 }], propDecorators: { trackEventContext: [{
33
+ type: Input
34
+ }], trackEventContextConstructor: [{
35
+ type: Input
36
+ }], trackEventContextConstructorParameters: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvdHJhY2stZXZlbnRzL3RyYWNrLWZvY3VzL3RyYWNrLWZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxtREFBbUQsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZUFBZSxHQUNoQixNQUFNLHNCQUFzQixDQUFDOzs7QUFFOUI7Ozs7Ozs7Ozs7R0FVRztBQUlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUFlO0lBZ0J0RCxZQUFZLEVBQWMsRUFBRSxrQkFBcUMsRUFBRSxRQUFtQjtRQUNwRixLQUFLLENBQUMsRUFBRSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO2tJQXRCVSxtQkFBbUI7c0hBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7dUlBS2lCLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFLVSw0QkFBNEI7c0JBQTNDLEtBQUs7Z0JBS1Usc0NBQXNDO3NCQUFyRCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzRXZlbnQsXG4gIENvbnN0cnVjdG9yQW5hbHl0aWNzRXZlbnQsXG4gIENvbnN0cnVjdG9yQW5hbHl0aWNzRXZlbnRQYXJhbWV0ZXJzLFxuICBFdmVudENvbnRleHQsXG59IGZyb20gJy4uLy4uLy4uL2NvbnRyYWN0cy9pbmRleCc7XG5pbXBvcnQge1xuICBFdmVudFRyYWNrU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnQtdHJhY2svZXZlbnQtdHJhY2suc2VydmljZSc7XG5pbXBvcnQge1xuICBCYXNlVHJhY2tFdmVudHMsXG59IGZyb20gJy4uL2Jhc2UtdHJhY2stZXZlbnRzJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdG8gY2FwdHVyZSB0aGUgJ2ZvY3VzJyBldmVudCBvbiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBUaGUgY2FwdHVyZWQgZXZlbnQgd2lsbCBiZSBleHBvc2VkIHZpYSBFdmVudFRyYWNrU2VydmljZVxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxteS1jb21wb25lbnRcbiAqICAgIHRyYWNrRm9jdXNcbiAqICAgIFt0cmFja0V2ZW50Q29udGV4dF09XCJ7Y29udGV4dDogJ2ZvY3VzIG9uIHRoZSBjb21wb25lbnQgd2l0aCB0YWc6IG15LWNvbXBvbmVudCd9XCI+XG4gKiA8L215LWNvbXBvbmVudD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdHJhY2tGb2N1c10nXG59KVxuZXhwb3J0IGNsYXNzIFRyYWNrRm9jdXNEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlVHJhY2tFdmVudHMgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmFja0V2ZW50Q29udGV4dD86IEV2ZW50Q29udGV4dDtcblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmFja0V2ZW50Q29udGV4dENvbnN0cnVjdG9yPzogQ29uc3RydWN0b3JBbmFseXRpY3NFdmVudDxBbmFseXRpY3NFdmVudD47XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgdHJhY2tFdmVudENvbnRleHRDb25zdHJ1Y3RvclBhcmFtZXRlcnM/OiBDb25zdHJ1Y3RvckFuYWx5dGljc0V2ZW50UGFyYW1ldGVycztcblxuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZiwgdHJhY2tFdmVudHNTZXJ2aWNlOiBFdmVudFRyYWNrU2VydmljZSwgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHN1cGVyKGVsLCB0cmFja0V2ZW50c1NlcnZpY2UsIHJlbmRlcmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRyYWNrRXZlbnQoJ2ZvY3VzJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Fixture for the EventTrack Service
3
+ */
4
+ export class EventTrackServiceFixture {
5
+ constructor() {
6
+ /** @inheritdoc */
7
+ this.markFirstLoad = jasmine.createSpy('markFirstLoad');
8
+ /** @inheritdoc */
9
+ this.markFP = jasmine.createSpy('markFP');
10
+ /** @inheritdoc */
11
+ this.markFMP = jasmine.createSpy('markFMP');
12
+ /** @inheritdoc */
13
+ this.markDataReady = jasmine.createSpy('markDataReady');
14
+ /** @inheritdoc */
15
+ this.addCustomMark = jasmine.createSpy('addCustomMark');
16
+ /** @inheritdoc */
17
+ this.addServerCallMark = jasmine.createSpy('addServerCallMark');
18
+ /** @inheritdoc */
19
+ this.addSDKServerCallMark = jasmine.createSpy('addSDKServerCallMark');
20
+ /** @inheritdoc */
21
+ this.startCustomMark = jasmine.createSpy('startCustomMark');
22
+ /** @inheritdoc */
23
+ this.endCustomMark = jasmine.createSpy('endCustomMark');
24
+ /** @inheritdoc */
25
+ this.getTiming = jasmine.createSpy('getTiming');
26
+ /** @inheritdoc */
27
+ this.addEvent = jasmine.createSpy('addEvent');
28
+ /** @inheritdoc */
29
+ this.addUiEvent = jasmine.createSpy('addUiEvent');
30
+ /** @inheritdoc */
31
+ this.toggleTracking = jasmine.createSpy('toggleTracking');
32
+ /** @inheritdoc */
33
+ this.toggleUiTracking = jasmine.createSpy('toggleUiTracking');
34
+ /** @inheritdoc */
35
+ this.togglePerfTracking = jasmine.createSpy('togglePerfTracking');
36
+ /** @inheritdoc */
37
+ this.addCustomEvent = jasmine.createSpy('addCustomEvent');
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2suc2VydmljZS5maXh0dXJlLmphc21pbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZml4dHVyZXMvamFzbWluZS9ldmVudC10cmFjay5zZXJ2aWNlLmZpeHR1cmUuamFzbWluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7R0FFRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFBckM7UUFDRSxrQkFBa0I7UUFDWCxrQkFBYSxHQUFnQixPQUFPLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXZFLGtCQUFrQjtRQUNYLFdBQU0sR0FBZ0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxrQkFBa0I7UUFDWCxZQUFPLEdBQWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFM0Qsa0JBQWtCO1FBQ1gsa0JBQWEsR0FBZ0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2RSxrQkFBa0I7UUFDWCxrQkFBYSxHQUFnQixPQUFPLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXZFLGtCQUFrQjtRQUNYLHNCQUFpQixHQUFnQixPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFL0Usa0JBQWtCO1FBQ1gseUJBQW9CLEdBQWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVyRixrQkFBa0I7UUFDWCxvQkFBZSxHQUFnQixPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFM0Usa0JBQWtCO1FBQ1gsa0JBQWEsR0FBZ0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2RSxrQkFBa0I7UUFDWCxjQUFTLEdBQWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFL0Qsa0JBQWtCO1FBQ1gsYUFBUSxHQUFnQixPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdELGtCQUFrQjtRQUNYLGVBQVUsR0FBZ0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqRSxrQkFBa0I7UUFDWCxtQkFBYyxHQUFnQixPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFekUsa0JBQWtCO1FBQ1gscUJBQWdCLEdBQWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3RSxrQkFBa0I7UUFDWCx1QkFBa0IsR0FBZ0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRWpGLGtCQUFrQjtRQUNYLG1CQUFjLEdBQWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMzRSxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEV2ZW50VHJhY2tTZXJ2aWNlLFxufSBmcm9tICdAbzNyL2FuYWx5dGljcyc7XG5cbi8qKlxuICogRml4dHVyZSBmb3IgdGhlIEV2ZW50VHJhY2sgU2VydmljZVxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRUcmFja1NlcnZpY2VGaXh0dXJlIGltcGxlbWVudHMgUmVhZG9ubHk8UGFydGlhbDxFdmVudFRyYWNrU2VydmljZT4+IHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBtYXJrRmlyc3RMb2FkOiBqYXNtaW5lLlNweSA9IGphc21pbmUuY3JlYXRlU3B5KCdtYXJrRmlyc3RMb2FkJyk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBtYXJrRlA6IGphc21pbmUuU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ21hcmtGUCcpO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbWFya0ZNUDogamFzbWluZS5TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgnbWFya0ZNUCcpO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbWFya0RhdGFSZWFkeTogamFzbWluZS5TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgnbWFya0RhdGFSZWFkeScpO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgYWRkQ3VzdG9tTWFyazogamFzbWluZS5TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgnYWRkQ3VzdG9tTWFyaycpO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgYWRkU2VydmVyQ2FsbE1hcms6IGphc21pbmUuU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ2FkZFNlcnZlckNhbGxNYXJrJyk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBhZGRTREtTZXJ2ZXJDYWxsTWFyazogamFzbWluZS5TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgnYWRkU0RLU2VydmVyQ2FsbE1hcmsnKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIHN0YXJ0Q3VzdG9tTWFyazogamFzbWluZS5TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgnc3RhcnRDdXN0b21NYXJrJyk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBlbmRDdXN0b21NYXJrOiBqYXNtaW5lLlNweSA9IGphc21pbmUuY3JlYXRlU3B5KCdlbmRDdXN0b21NYXJrJyk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBnZXRUaW1pbmc6IGphc21pbmUuU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ2dldFRpbWluZycpO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgYWRkRXZlbnQ6IGphc21pbmUuU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ2FkZEV2ZW50Jyk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBhZGRVaUV2ZW50OiBqYXNtaW5lLlNweSA9IGphc21pbmUuY3JlYXRlU3B5KCdhZGRVaUV2ZW50Jyk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyB0b2dnbGVUcmFja2luZzogamFzbWluZS5TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgndG9nZ2xlVHJhY2tpbmcnKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIHRvZ2dsZVVpVHJhY2tpbmc6IGphc21pbmUuU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ3RvZ2dsZVVpVHJhY2tpbmcnKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIHRvZ2dsZVBlcmZUcmFja2luZzogamFzbWluZS5TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgndG9nZ2xlUGVyZlRyYWNraW5nJyk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBhZGRDdXN0b21FdmVudDogamFzbWluZS5TcHkgPSBqYXNtaW5lLmNyZWF0ZVNweSgnYWRkQ3VzdG9tRXZlbnQnKTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './event-track.service.fixture.jasmine';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZml4dHVyZXMvamFzbWluZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldmVudC10cmFjay5zZXJ2aWNlLmZpeHR1cmUuamFzbWluZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLWFuYWx5dGljcy1maXh0dXJlcy1qYXNtaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ZpeHR1cmVzL2phc21pbmUvbzNyLWFuYWx5dGljcy1maXh0dXJlcy1qYXNtaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Fixture for the EventTrack Service
3
+ */
4
+ export class EventTrackServiceFixture {
5
+ constructor() {
6
+ /** @inheritdoc */
7
+ this.markFirstLoad = jest.fn();
8
+ /** @inheritdoc */
9
+ this.markFP = jest.fn();
10
+ /** @inheritdoc */
11
+ this.markFMP = jest.fn();
12
+ /** @inheritdoc */
13
+ this.markDataReady = jest.fn();
14
+ /** @inheritdoc */
15
+ this.addCustomMark = jest.fn();
16
+ /** @inheritdoc */
17
+ this.addServerCallMark = jest.fn();
18
+ /** @inheritdoc */
19
+ this.addSDKServerCallMark = jest.fn();
20
+ /** @inheritdoc */
21
+ this.startCustomMark = jest.fn();
22
+ /** @inheritdoc */
23
+ this.endCustomMark = jest.fn();
24
+ /** @inheritdoc */
25
+ this.getTiming = jest.fn();
26
+ /** @inheritdoc */
27
+ this.addEvent = jest.fn();
28
+ /** @inheritdoc */
29
+ this.addUiEvent = jest.fn();
30
+ /** @inheritdoc */
31
+ this.toggleTracking = jest.fn();
32
+ /** @inheritdoc */
33
+ this.toggleUiTracking = jest.fn();
34
+ /** @inheritdoc */
35
+ this.togglePerfTracking = jest.fn();
36
+ /** @inheritdoc */
37
+ this.addCustomEvent = jest.fn();
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2suc2VydmljZS5maXh0dXJlLmplc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZml4dHVyZXMvamVzdC9ldmVudC10cmFjay5zZXJ2aWNlLmZpeHR1cmUuamVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7R0FFRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFBckM7UUFDRSxrQkFBa0I7UUFDWCxrQkFBYSxHQUF3QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFdEQsa0JBQWtCO1FBQ1gsV0FBTSxHQUF3QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFL0Msa0JBQWtCO1FBQ1gsWUFBTyxHQUF3QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFaEQsa0JBQWtCO1FBQ1gsa0JBQWEsR0FBd0IsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRXRELGtCQUFrQjtRQUNYLGtCQUFhLEdBQXdCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUV0RCxrQkFBa0I7UUFDWCxzQkFBaUIsR0FBd0IsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRTFELGtCQUFrQjtRQUNYLHlCQUFvQixHQUF3QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFN0Qsa0JBQWtCO1FBQ1gsb0JBQWUsR0FBd0IsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRXhELGtCQUFrQjtRQUNYLGtCQUFhLEdBQXdCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUV0RCxrQkFBa0I7UUFDWCxjQUFTLEdBQXdCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUVsRCxrQkFBa0I7UUFDWCxhQUFRLEdBQXdCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUVqRCxrQkFBa0I7UUFDWCxlQUFVLEdBQXdCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUVuRCxrQkFBa0I7UUFDWCxtQkFBYyxHQUF3QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFdkQsa0JBQWtCO1FBQ1gscUJBQWdCLEdBQXdCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUV6RCxrQkFBa0I7UUFDWCx1QkFBa0IsR0FBd0IsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRTNELGtCQUFrQjtRQUNYLG1CQUFjLEdBQXdCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEV2ZW50VHJhY2tTZXJ2aWNlLFxufSBmcm9tICdAbzNyL2FuYWx5dGljcyc7XG5cbi8qKlxuICogRml4dHVyZSBmb3IgdGhlIEV2ZW50VHJhY2sgU2VydmljZVxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRUcmFja1NlcnZpY2VGaXh0dXJlIGltcGxlbWVudHMgUmVhZG9ubHk8UGFydGlhbDxFdmVudFRyYWNrU2VydmljZT4+IHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBtYXJrRmlyc3RMb2FkOiBqZXN0Lk1vY2s8YW55LCBhbnk+ID0gamVzdC5mbigpO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbWFya0ZQOiBqZXN0Lk1vY2s8YW55LCBhbnk+ID0gamVzdC5mbigpO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbWFya0ZNUDogamVzdC5Nb2NrPGFueSwgYW55PiA9IGplc3QuZm4oKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIG1hcmtEYXRhUmVhZHk6IGplc3QuTW9jazxhbnksIGFueT4gPSBqZXN0LmZuKCk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBhZGRDdXN0b21NYXJrOiBqZXN0Lk1vY2s8YW55LCBhbnk+ID0gamVzdC5mbigpO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgYWRkU2VydmVyQ2FsbE1hcms6IGplc3QuTW9jazxhbnksIGFueT4gPSBqZXN0LmZuKCk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBhZGRTREtTZXJ2ZXJDYWxsTWFyazogamVzdC5Nb2NrPGFueSwgYW55PiA9IGplc3QuZm4oKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIHN0YXJ0Q3VzdG9tTWFyazogamVzdC5Nb2NrPGFueSwgYW55PiA9IGplc3QuZm4oKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIGVuZEN1c3RvbU1hcms6IGplc3QuTW9jazxhbnksIGFueT4gPSBqZXN0LmZuKCk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBnZXRUaW1pbmc6IGplc3QuTW9jazxhbnksIGFueT4gPSBqZXN0LmZuKCk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBhZGRFdmVudDogamVzdC5Nb2NrPGFueSwgYW55PiA9IGplc3QuZm4oKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIGFkZFVpRXZlbnQ6IGplc3QuTW9jazxhbnksIGFueT4gPSBqZXN0LmZuKCk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyB0b2dnbGVUcmFja2luZzogamVzdC5Nb2NrPGFueSwgYW55PiA9IGplc3QuZm4oKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIHRvZ2dsZVVpVHJhY2tpbmc6IGplc3QuTW9jazxhbnksIGFueT4gPSBqZXN0LmZuKCk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyB0b2dnbGVQZXJmVHJhY2tpbmc6IGplc3QuTW9jazxhbnksIGFueT4gPSBqZXN0LmZuKCk7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBhZGRDdXN0b21FdmVudDogamVzdC5Nb2NrPGFueSwgYW55PiA9IGplc3QuZm4oKTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './event-track.service.fixture.jest';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZml4dHVyZXMvamVzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldmVudC10cmFjay5zZXJ2aWNlLmZpeHR1cmUuamVzdCc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLWFuYWx5dGljcy1maXh0dXJlcy1qZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ZpeHR1cmVzL2plc3QvbzNyLWFuYWx5dGljcy1maXh0dXJlcy1qZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLWFuYWx5dGljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vM3ItYW5hbHl0aWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './contracts/index';
2
+ export * from './directives/index';
3
+ export * from './services/index';
4
+ export * from './stores/index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRyYWN0cy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3Jlcy9pbmRleCc7XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { InjectionToken, } from '@angular/core';
2
+ /** Default configuration of tracking service */
3
+ export const defaultEventTrackConfiguration = {
4
+ perfBufferSize: 10,
5
+ uiEventsBufferSize: 20,
6
+ useBrowserApiForFirstFP: false,
7
+ activate: {
8
+ uiTracking: true,
9
+ perfTracking: true
10
+ }
11
+ };
12
+ /** Tracking service configuration token used to override the default configuration */
13
+ export const EVENT_TRACK_SERVICE_CONFIGURATION = new InjectionToken('EVENT TRACK');
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2suY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9ldmVudC10cmFjay9ldmVudC10cmFjay5jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFzQnZCLGdEQUFnRDtBQUNoRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRztJQUM1QyxjQUFjLEVBQUUsRUFBRTtJQUNsQixrQkFBa0IsRUFBRSxFQUFFO0lBQ3RCLHVCQUF1QixFQUFFLEtBQUs7SUFDOUIsUUFBUSxFQUFFO1FBQ1IsVUFBVSxFQUFFLElBQUk7UUFDaEIsWUFBWSxFQUFFLElBQUk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsc0ZBQXNGO0FBQ3RGLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLElBQUksY0FBYyxDQUFtQyxhQUFhLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGlvblRva2VuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIENvbnRyb2xzIHRoZSBhY3RpdmF0aW9uIG9mIG1lc3VyZW1lbnRzIGFuZCB1aSBldmVudHMgdHJhY2tpbmcgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tBY3RpdmUge1xuICAvKiogQm9vbGVhbiB0byBhY3RpdmF0ZS9kZWFjdGl2YXRlIHRoZSB1aSBldmVudCB0cmFja2luZyAqL1xuICB1aVRyYWNraW5nOiBib29sZWFuO1xuICAvKiogQm9vbGVhbiB0byBhY3RpdmF0ZS9kZWFjdGl2YXRlIHBlcmZvcm1hY2UgbWVhc3VyZW1lbnRzICovXG4gIHBlcmZUcmFja2luZzogYm9vbGVhbjtcbn1cblxuLyoqIFRyYWNrIGV2ZW50cyBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gb2JqZWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHJhY2tDb25maWd1cmF0aW9uIHtcbiAgLyoqIERlZmluZXMgaG93IG1hbnkgdmFsdWVzIHdpbGwgYmUga2VwdCBpbiBwZXJmb3JtYW5jZSBtZXRyaWNzIHN0cmVhbSAqL1xuICBwZXJmQnVmZmVyU2l6ZTogbnVtYmVyO1xuICAvKiogRGVmaW5lcyBob3cgbWFueSB2YWx1ZXMgd2lsbCBiZSBrZXB0IGluIHVpIGV2ZW50cyBzdHJlYW0gKi9cbiAgdWlFdmVudHNCdWZmZXJTaXplOiBudW1iZXI7XG4gIC8qKiBJZiB0cnVlLCBpdCB3aWxsIHVzZSB0aGUgYnJvd3NlciBBUEkgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgRlAgZm9yIHRoZSBmaXJzdCB0aW1lOyAqL1xuICB1c2VCcm93c2VyQXBpRm9yRmlyc3RGUDogYm9vbGVhbjtcbiAgLyoqIENvbnRyb2xzIHRoZSBhY3RpdmF0aW9uIG9mIG1lc3VyZW1lbnRzIGFuZCB1aSBldmVudHMgdHJhY2tpbmcgKi9cbiAgYWN0aXZhdGU6IFRyYWNrQWN0aXZlO1xufVxuXG4vKiogRGVmYXVsdCBjb25maWd1cmF0aW9uIG9mIHRyYWNraW5nIHNlcnZpY2UgKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXZlbnRUcmFja0NvbmZpZ3VyYXRpb24gPSB7XG4gIHBlcmZCdWZmZXJTaXplOiAxMCxcbiAgdWlFdmVudHNCdWZmZXJTaXplOiAyMCxcbiAgdXNlQnJvd3NlckFwaUZvckZpcnN0RlA6IGZhbHNlLFxuICBhY3RpdmF0ZToge1xuICAgIHVpVHJhY2tpbmc6IHRydWUsXG4gICAgcGVyZlRyYWNraW5nOiB0cnVlXG4gIH1cbn07XG5cbi8qKiBUcmFja2luZyBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gdG9rZW4gdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uICovXG5leHBvcnQgY29uc3QgRVZFTlRfVFJBQ0tfU0VSVklDRV9DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuPFBhcnRpYWw8RXZlbnRUcmFja0NvbmZpZ3VyYXRpb24+PignRVZFTlQgVFJBQ0snKTtcbiJdfQ==
@@ -0,0 +1,303 @@
1
+ import { Inject, Injectable, NgZone, Optional, } from '@angular/core';
2
+ import { NavigationEnd, Router, } from '@angular/router';
3
+ import { BehaviorSubject, combineLatest, fromEvent, ReplaySubject, } from 'rxjs';
4
+ import { delay, filter, skip, skipWhile, take, takeWhile, withLatestFrom, } from 'rxjs/operators';
5
+ import { defaultEventTrackConfiguration, EVENT_TRACK_SERVICE_CONFIGURATION, } from './event-track.configuration';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ /** The initial value of the performance measurements */
9
+ export const performanceMarksInitialState = {
10
+ page: '',
11
+ perceived: {},
12
+ serverCalls: [],
13
+ customMarks: []
14
+ };
15
+ /**
16
+ * Service to expose the tracked events as streams. Also provide a way to activate/deactivate the tracking
17
+ */
18
+ export class EventTrackService {
19
+ /** Performance payload object */
20
+ get performancePayload() {
21
+ return this._performancePayload;
22
+ }
23
+ /** Performance payload object */
24
+ set performancePayload(value) {
25
+ if (this.isPerfTrackingActive) {
26
+ this._performancePayload = { ...value, page: this.router.url }; // Saves the current page url
27
+ this.perfEventTrack.next(this._performancePayload);
28
+ }
29
+ }
30
+ constructor(router, zone, config) {
31
+ this.router = router;
32
+ this.zone = zone;
33
+ /** Boolean to indicate the first load of the application */
34
+ this.isFirstLoad = true;
35
+ this._performancePayload = performanceMarksInitialState;
36
+ const eventConfiguration = { ...defaultEventTrackConfiguration, ...config };
37
+ this.uiTrackingActivated = new BehaviorSubject(eventConfiguration.activate.uiTracking);
38
+ this.uiTrackingActive$ = this.uiTrackingActivated.asObservable();
39
+ this.uiEventTrack = new ReplaySubject(eventConfiguration.uiEventsBufferSize);
40
+ this.uiEventTrack$ = this.uiEventTrack.asObservable();
41
+ // Custom events
42
+ this.customEventTrack = new ReplaySubject();
43
+ this.customEventTrack$ = this.customEventTrack.asObservable();
44
+ this.perfTrackingActivated = new BehaviorSubject(eventConfiguration.activate.perfTracking);
45
+ this.perfTrackingActive$ = this.perfTrackingActivated.asObservable();
46
+ this.perfEventTrack = new ReplaySubject(eventConfiguration.perfBufferSize);
47
+ this.perfEventTrack$ = this.perfEventTrack.asObservable();
48
+ this.perfTrackingActive$.subscribe((activated) => this.isPerfTrackingActive = activated);
49
+ const routerNavigationEnd$ = this.router.events.pipe(filter((event) => event instanceof NavigationEnd));
50
+ const trackingNavigationEnd$ = routerNavigationEnd$.pipe(withLatestFrom(this.perfTrackingActive$));
51
+ // Handles first load navigation
52
+ combineLatest(trackingNavigationEnd$.pipe(take(1), filter(() => typeof window.performance.timing !== 'undefined'), takeWhile(([_event, active]) => active)), fromEvent(window, 'load').pipe(delay(0))).subscribe(async () => {
53
+ if (eventConfiguration.useBrowserApiForFirstFP) {
54
+ const browserEntries = window.performance.getEntriesByType && window.performance.getEntriesByType('paint');
55
+ const browserFP = browserEntries && browserEntries.find((entry) => entry.name === 'first-paint');
56
+ if (browserFP) {
57
+ const endTime = Math.round(browserFP.startTime);
58
+ this.addFPToPerfPayload({ startTime: 0, endTime });
59
+ }
60
+ }
61
+ else if (this.firstPaint) { // If there is a registered firstPaint value emit it
62
+ this.addFPToPerfPayload(await this.firstPaint);
63
+ this.firstPaint = undefined;
64
+ }
65
+ this.markFirstLoad();
66
+ });
67
+ // Handles later navigation
68
+ trackingNavigationEnd$.pipe(skip(1), skipWhile(([_event, active]) => !active)).subscribe(async () => {
69
+ this.isFirstLoad = false;
70
+ this.resetPerfMarks();
71
+ if (this.firstPaint) { // If there is a registered firstPaint value emit it
72
+ this.addFPToPerfPayload(await this.firstPaint);
73
+ this.firstPaint = undefined;
74
+ }
75
+ });
76
+ }
77
+ /**
78
+ * Create metrics object for the first load of the application
79
+ */
80
+ createFirstLoadData() {
81
+ const navigation = window.performance.timing;
82
+ return {
83
+ connection: Math.round(navigation.connectEnd - navigation.navigationStart),
84
+ request: Math.round(navigation.responseStart - navigation.connectEnd),
85
+ response: Math.round(navigation.responseEnd - navigation.responseStart),
86
+ DOM: Math.round(navigation.loadEventEnd - navigation.responseEnd),
87
+ total: Math.round(navigation.loadEventEnd - navigation.navigationStart)
88
+ };
89
+ }
90
+ /**
91
+ * Populate performance payload with FP object
92
+ * @param FP
93
+ */
94
+ addFPToPerfPayload(FP) {
95
+ const perfFirstPaint = {
96
+ ...this.performancePayload,
97
+ perceived: {
98
+ ...this.performancePayload.perceived,
99
+ FP
100
+ }
101
+ };
102
+ this.performancePayload = perfFirstPaint;
103
+ }
104
+ /**
105
+ * Reset all metrics to initial state; Add the pageName on top of it
106
+ */
107
+ resetPerfMarks() {
108
+ this.performancePayload = { ...performanceMarksInitialState };
109
+ }
110
+ /**
111
+ * Mark the first load metrics using the navigation API.
112
+ * This has to be called only once in a single page application, being meaningful only for the first load
113
+ * This mark is populated by default in this service when the NavigationEnd event of the router emits for the first time
114
+ */
115
+ markFirstLoad() {
116
+ const firstLoad = this.createFirstLoadData();
117
+ this.performancePayload = { ...this.performancePayload, firstLoad };
118
+ }
119
+ /**
120
+ * Mark the first paint value
121
+ * Store the first paint timing value to be emitted at Navigation End
122
+ * @param emit If true, sets the FP to the current page. Otherwise, wait for next NavigationEnd event to happen
123
+ */
124
+ async markFP(emit = false) {
125
+ this.firstPaint = this.getTiming();
126
+ if (emit) {
127
+ this.addFPToPerfPayload(await this.firstPaint);
128
+ this.firstPaint = undefined;
129
+ }
130
+ }
131
+ /**
132
+ * Mark the first meaningful paint value.
133
+ * @param markOnlyFirstLoad If false, marks the FMP for subsequent loads else only for the first load of the application
134
+ */
135
+ async markFMP(markOnlyFirstLoad = true) {
136
+ if (!markOnlyFirstLoad || (markOnlyFirstLoad && this.isFirstLoad)) {
137
+ const timing = await this.getTiming();
138
+ const perfFirstMeaningfulPaint = {
139
+ ...this.performancePayload,
140
+ perceived: {
141
+ ...this.performancePayload.perceived,
142
+ FMP: timing
143
+ }
144
+ };
145
+ this.performancePayload = perfFirstMeaningfulPaint;
146
+ }
147
+ }
148
+ /**
149
+ * Add data ready perceived event
150
+ * This probe marks the time when the page considers it has all the data to become interactive
151
+ */
152
+ async markDataReady() {
153
+ const timing = await this.getTiming();
154
+ const perfDataReady = {
155
+ ...this.performancePayload,
156
+ perceived: {
157
+ ...this.performancePayload.perceived,
158
+ dataReady: timing
159
+ }
160
+ };
161
+ this.performancePayload = perfDataReady;
162
+ }
163
+ /**
164
+ * Add a custom event and its measurements
165
+ * @param label The event name
166
+ */
167
+ async addCustomMark(label) {
168
+ const timing = await this.getTiming();
169
+ const customMark = { label, timing };
170
+ const perf = { ...this.performancePayload, customMarks: this.performancePayload.customMarks.concat(customMark) };
171
+ this.performancePayload = perf;
172
+ }
173
+ /**
174
+ * Add a server call object in the list of server calls metrics
175
+ * @param serverCall The object to add in the server calls metrics
176
+ */
177
+ addServerCallMark(serverCall) {
178
+ const perf = { ...this.performancePayload, serverCalls: this.performancePayload.serverCalls.concat(serverCall) };
179
+ this.performancePayload = perf;
180
+ }
181
+ /**
182
+ * Add a DxAPI SDK server call object, created by the SDK Probe plugin, in the list of server calls metrics.
183
+ * In order to have requestId for the DxAPI calls, your server has to expose 'ama-request-id' via Access-Control-Expose-Headers
184
+ * @param serverMark The mark object
185
+ */
186
+ async addSDKServerCallMark(serverMark) {
187
+ let serverCallMetric = {
188
+ url: serverMark.url,
189
+ httpMethod: serverMark.requestOptions.method,
190
+ httpStatus: serverMark.response && serverMark.response.status,
191
+ timing: { startTime: serverMark.startTime, endTime: serverMark.endTime },
192
+ error: serverMark.error
193
+ };
194
+ if (serverMark.response) {
195
+ const clonedResponse = serverMark.response.clone();
196
+ const amaRequestId = clonedResponse.headers.get('ama-request-id');
197
+ const blob = await clonedResponse.blob();
198
+ serverCallMetric = {
199
+ ...serverCallMetric,
200
+ responseSize: blob.size,
201
+ requestId: amaRequestId || undefined
202
+ };
203
+ }
204
+ this.addServerCallMark(serverCallMetric);
205
+ }
206
+ /**
207
+ * Add a custom event and mark the start time, and returns the element index
208
+ * @param label Event name
209
+ * @returns the element index if tracking is active. Otherwise, -1
210
+ */
211
+ startCustomMark(label) {
212
+ if (!this.isPerfTrackingActive) {
213
+ return -1;
214
+ }
215
+ const startTime = Math.round(window.performance.now());
216
+ const customMark = { label, timing: { startTime } };
217
+ const perf = { ...this.performancePayload, customMarks: this.performancePayload.customMarks.concat(customMark) };
218
+ this.performancePayload = perf;
219
+ return this.performancePayload.customMarks.length - 1;
220
+ }
221
+ /**
222
+ * End the event mark given in parameter;
223
+ * Returns false if the custom event is not found in the list of custom marks; true otherwise
224
+ * @param eventIndex Index of the custom event to be marked as ended
225
+ */
226
+ endCustomMark(eventIndex) {
227
+ if (!this.isPerfTrackingActive) {
228
+ return false;
229
+ }
230
+ let updated = false;
231
+ const perf = {
232
+ ...this.performancePayload,
233
+ customMarks: this.performancePayload.customMarks.map((eventObj, index) => {
234
+ if (index !== eventIndex) {
235
+ return eventObj;
236
+ }
237
+ updated = true;
238
+ const endTime = Math.round(window.performance.now());
239
+ return { label: eventObj.label, timing: { ...eventObj.timing, endTime } };
240
+ })
241
+ };
242
+ this.performancePayload = perf;
243
+ return updated;
244
+ }
245
+ /**
246
+ * The goal of this method is to compute a time range duration between the moment you call the function (lower bound timestamp)
247
+ * and the end of the composite rendering (upper bound measurement - a time mark that occurs after the real composite)
248
+ * For the first load of the application, the start time is considered as the start of navigation to ensure a cumulative measure.
249
+ * It is using the 'NgZone' service to runOutsideAngular to prevent any change detection to occur, nor angular error handling, speeding up the measurement.
250
+ * 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
251
+ */
252
+ getTiming() {
253
+ const startTime = this.isFirstLoad ? 0 : Math.round(window.performance.now());
254
+ return new Promise((resolve) => {
255
+ this.zone.runOutsideAngular(() => {
256
+ setTimeout(() => {
257
+ const endTime = Math.round(window.performance.now());
258
+ resolve({ startTime, endTime });
259
+ }, 0);
260
+ });
261
+ });
262
+ }
263
+ /**
264
+ * Add an event to the stream of captured UI events
265
+ * @param uiEvent emitted event object
266
+ */
267
+ addUiEvent(uiEvent) {
268
+ this.uiEventTrack.next(uiEvent);
269
+ }
270
+ /**
271
+ * Add an event to the stream of captured custom events
272
+ * @param customEvent emitted event object
273
+ */
274
+ addCustomEvent(customEvent) {
275
+ this.customEventTrack.next(customEvent);
276
+ }
277
+ /**
278
+ * Activate/deactivate the tracking mode for UI events
279
+ * @param activate activation/deactivation boolean
280
+ */
281
+ toggleUiTracking(activate) {
282
+ this.uiTrackingActivated.next(activate);
283
+ }
284
+ /**
285
+ * Activate/deactivate the tracking mode for performance measurements
286
+ * @param activate activation/deactivation boolean
287
+ */
288
+ togglePerfTracking(activate) {
289
+ this.perfTrackingActivated.next(activate);
290
+ }
291
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventTrackService, deps: [{ token: i1.Router }, { token: i0.NgZone }, { token: EVENT_TRACK_SERVICE_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
292
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventTrackService, providedIn: 'root' }); }
293
+ }
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventTrackService, decorators: [{
295
+ type: Injectable,
296
+ args: [{ providedIn: 'root' }]
297
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i0.NgZone }, { type: undefined, decorators: [{
298
+ type: Optional
299
+ }, {
300
+ type: Inject,
301
+ args: [EVENT_TRACK_SERVICE_CONFIGURATION]
302
+ }] }] });
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9ldmVudC10cmFjay9ldmVudC10cmFjay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGFBQWEsRUFDYixNQUFNLEdBQ1AsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixTQUFTLEVBRVQsYUFBYSxHQUNkLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBVXhCLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsaUNBQWlDLEdBRWxDLE1BQU0sNkJBQTZCLENBQUM7OztBQUVyQyx3REFBd0Q7QUFDeEQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQStCO0lBQ3RFLElBQUksRUFBRSxFQUFFO0lBQ1IsU0FBUyxFQUFFLEVBQUU7SUFDYixXQUFXLEVBQUUsRUFBRTtJQUNmLFdBQVcsRUFBRSxFQUFFO0NBQ1AsQ0FBQztBQUVYOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQW1DNUIsaUNBQWlDO0lBQ2pDLElBQVksa0JBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsSUFBWSxrQkFBa0IsQ0FBQyxLQUF1QjtRQUNwRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxJ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QUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDckQsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNSLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLE9BQXVCO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjLENBQUMsV0FBK0I7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsUUFBaUI7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsUUFBaUI7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO2tJQS9VVSxpQkFBaUIsOERBZ0RvRSxpQ0FBaUM7c0lBaER0SCxpQkFBaUIsY0FGZCxNQUFNOzs0RkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQ1QsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFrRHVELFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uIC0tIG5hbWluZyBjb252ZW50aW9uIGZvciBET00sIEZQLCBhbmQgRk1QIGltcG9zZWQgYnkgTGlnaHRob3VzZSAqL1xuaW1wb3J0IHR5cGUge1xuICBNYXJrLFxufSBmcm9tICdAYW1hLXNkay9jb3JlJztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgTmdab25lLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBOYXZpZ2F0aW9uRW5kLFxuICBSb3V0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb21FdmVudCxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWxheSxcbiAgZmlsdGVyLFxuICBza2lwLFxuICBza2lwV2hpbGUsXG4gIHRha2UsXG4gIHRha2VXaGlsZSxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEN1c3RvbUV2ZW50TWFya3MsXG4gIEN1c3RvbUV2ZW50UGF5bG9hZCxcbiAgRXZlbnRUaW1pbmcsXG4gIEZpcnN0TG9hZERhdGFQYXlsb2FkLFxuICBQZXJmRXZlbnRQYXlsb2FkLFxuICBTZXJ2ZXJDYWxsTWV0cmljLFxuICBVaUV2ZW50UGF5bG9hZCxcbn0gZnJvbSAnLi4vLi4vY29udHJhY3RzJztcbmltcG9ydCB7XG4gIGRlZmF1bHRFdmVudFRyYWNrQ29uZmlndXJhdGlvbixcbiAgRVZFTlRfVFJBQ0tfU0VSVklDRV9DT05GSUdVUkFUSU9OLFxuICBFdmVudFRyYWNrQ29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi9ldmVudC10cmFjay5jb25maWd1cmF0aW9uJztcblxuLyoqIFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBwZXJmb3JtYW5jZSBtZWFzdXJlbWVudHMgKi9cbmV4cG9ydCBjb25zdCBwZXJmb3JtYW5jZU1hcmtzSW5pdGlhbFN0YXRlOiBSZWFkb25seTxQZXJmRXZlbnRQYXlsb2FkPiA9IHtcbiAgcGFnZTogJycsXG4gIHBlcmNlaXZlZDoge30sXG4gIHNlcnZlckNhbGxzOiBbXSxcbiAgY3VzdG9tTWFya3M6IFtdXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gZXhwb3NlIHRoZSB0cmFja2VkIGV2ZW50cyBhcyBzdHJlYW1zLiBBbHNvIHByb3ZpZGUgYSB3YXkgdG8gYWN0aXZhdGUvZGVhY3RpdmF0ZSB0aGUgdHJhY2tpbmdcbiAqL1xuQEluamVjdGFibGUoXG4gIHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH1cbilcbmV4cG9ydCBjbGFzcyBFdmVudFRyYWNrU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdWlFdmVudFRyYWNrOiBSZXBsYXlTdWJqZWN0PFVpRXZlbnRQYXlsb2FkPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUV2ZW50VHJhY2s6IFJlcGxheVN1YmplY3Q8Q3VzdG9tRXZlbnRQYXlsb2FkPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBlcmZFdmVudFRyYWNrOiBSZXBsYXlTdWJqZWN0PFBlcmZFdmVudFBheWxvYWQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdWlUcmFja2luZ0FjdGl2YXRlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGVyZlRyYWNraW5nQWN0aXZhdGVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBmaXJzdFBhaW50PzogUHJvbWlzZTxFdmVudFRpbWluZz47XG5cbiAgLyoqIFVJIGNhcHR1cmVkIGV2ZW50cyBhcyBzdHJlYW0gKi9cbiAgcHVibGljIHVpRXZlbnRUcmFjayQ6IE9ic2VydmFibGU8VWlFdmVudFBheWxvYWQ+O1xuXG4gIC8qKiBDdXN0b20gY2FwdHVyZWQgZXZlbnRzIGFzIHN0cmVhbSAqL1xuICBwdWJsaWMgY3VzdG9tRXZlbnRUcmFjayQ6IE9ic2VydmFibGU8Q3VzdG9tRXZlbnRQYXlsb2FkPjtcblxuICAvKiogUGVyZm9ybWFuY2UgY2FwdHVyZWQgZXZlbnRzIGFzIHN0cmVhbSAqL1xuICBwdWJsaWMgcGVyZkV2ZW50VHJhY2skOiBPYnNlcnZhYmxlPFBlcmZFdmVudFBheWxvYWQ+O1xuXG4gIC8qKiBTdHJlYW0gb2YgYm9vbGVhbnMgZm9yIHRoZSB1aSB0cmFja2luZyBtb2RlIGFjdGl2ZS9pbmFjdGl2ZSAqL1xuICBwdWJsaWMgdWlUcmFja2luZ0FjdGl2ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqIFN0cmVhbSBvZiBib29sZWFucyBmb3IgdGhlIHBlcmZvcm1hbmNlIHRyYWNraW5nIG1vZGUgYWN0aXZlL2luYWN0aXZlICovXG4gIHB1YmxpYyBwZXJmVHJhY2tpbmdBY3RpdmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKiBUcnVlIGlmIHRoZSBwZXJmIHRyYWNraW5nIGlzIGFjdGl2YXRlZDsgZmFsc2Ugb3RoZXJ3aXNlICovXG4gIHByaXZhdGUgaXNQZXJmVHJhY2tpbmdBY3RpdmUhOiBib29sZWFuO1xuXG4gIC8qKiBCb29sZWFuIHRvIGluZGljYXRlIHRoZSBmaXJzdCBsb2FkIG9mIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBwcml2YXRlIGlzRmlyc3RMb2FkID0gdHJ1ZTtcblxuICBwcml2YXRlIF9wZXJmb3JtYW5jZVBheWxvYWQ6IFBlcmZFdmVudFBheWxvYWQgPSBwZXJmb3JtYW5jZU1hcmtzSW5pdGlhbFN0YXRlO1xuICAvKiogUGVyZm9ybWFuY2UgcGF5bG9hZCBvYmplY3QgKi9cbiAgcHJpdmF0ZSBnZXQgcGVyZm9ybWFuY2VQYXlsb2FkKCkge1xuICAgIHJldHVybiB0aGlzLl9wZXJmb3JtYW5jZVBheWxvYWQ7XG4gIH1cblxuICAvKiogUGVyZm9ybWFuY2UgcGF5bG9hZCBvYmplY3QgKi9cbiAgcHJpdmF0ZSBzZXQgcGVyZm9ybWFuY2VQYXlsb2FkKHZhbHVlOiBQZXJmRXZlbnRQYXlsb2FkKSB7XG4gICAgaWYgKHRoaXMuaXNQZXJmVHJhY2tpbmdBY3RpdmUpIHtcbiAgICAgIHRoaXMuX3BlcmZvcm1hbmNlUGF5bG9hZCA9IHsgLi4udmFsdWUsIHBhZ2U6IHRoaXMucm91dGVyLnVybCB9OyAvLyBTYXZlcyB0aGUgY3VycmVudCBwYWdlIHVybFxuICAgICAgdGhpcy5wZXJmRXZlbnRUcmFjay5uZXh0KHRoaXMuX3BlcmZvcm1hbmNlUGF5bG9hZCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByZWFkb25seSB6b25lOiBOZ1pvbmUsIEBPcHRpb25hbCgpIEBJbmplY3QoRVZFTlRfVFJBQ0tfU0VSVklDRV9DT05GSUdVUkFUSU9OKSBjb25maWc/OiBFdmVudFRyYWNrQ29uZmlndXJhdGlvbikge1xuICAgIGNvbnN0IGV2ZW50Q29uZmlndXJhdGlvbiA9IHsgLi4uZGVmYXVsdEV2ZW50VHJhY2tDb25maWd1cmF0aW9uLCAuLi5jb25maWcgfTtcbiAgICB0aGlzLnVpVHJhY2tpbmdBY3RpdmF0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGV2ZW50Q29uZmlndXJhdGlvbi5hY3RpdmF0ZS51aVRyYWNraW5nKTtcbiAgICB0aGlzLnVpVHJhY2tpbmdBY3RpdmUkID0gdGhpcy51aVRyYWNraW5nQWN0aXZhdGVkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMudWlFdmVudFRyYWNrID0gbmV3IFJlcGxheVN1YmplY3Q8VWlFdmVudFBheWxvYWQ+KGV2ZW50Q29uZmlndXJhdGlvbi51aUV2ZW50c0J1ZmZlclNpemUpO1xuICAgIHRoaXMudWlFdmVudFRyYWNrJCA9IHRoaXMudWlFdmVudFRyYWNrLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgLy8gQ3VzdG9tIGV2ZW50c1xuICAgIHRoaXMuY3VzdG9tRXZlbnRUcmFjayA9IG5ldyBSZXBsYXlTdWJqZWN0PEN1c3RvbUV2ZW50UGF5bG9hZD4oKTtcbiAgICB0aGlzLmN1c3RvbUV2ZW50VHJhY2skID0gdGhpcy5jdXN0b21FdmVudFRyYWNrLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgdGhpcy5wZXJmVHJhY2tpbmdBY3RpdmF0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGV2ZW50Q29uZmlndXJhdGlvbi5hY3RpdmF0ZS5wZXJmVHJhY2tpbmcpO1xuICAgIHRoaXMucGVyZlRyYWNraW5nQWN0aXZlJCA9IHRoaXMucGVyZlRyYWNraW5nQWN0aXZhdGVkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGVyZkV2ZW50VHJhY2sgPSBuZXcgUmVwbGF5U3ViamVjdDxQZXJmRXZlbnRQYXlsb2FkPihldmVudENvbmZpZ3VyYXRpb24ucGVyZkJ1ZmZlclNpemUpO1xuICAgIHRoaXMucGVyZkV2ZW50VHJhY2skID0gdGhpcy5wZXJmRXZlbnRUcmFjay5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMucGVyZlRyYWNraW5nQWN0aXZlJC5zdWJzY3JpYmUoKGFjdGl2YXRlZCkgPT4gdGhpcy5pc1BlcmZUcmFja2luZ0FjdGl2ZSA9IGFjdGl2YXRlZCk7XG5cbiAgICBjb25zdCByb3V0ZXJOYXZpZ2F0aW9uRW5kJCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBOYXZpZ2F0aW9uRW5kID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpO1xuICAgIGNvbnN0IHRyYWNraW5nTmF2aWdhdGlvbkVuZCQgPSByb3V0ZXJOYXZpZ2F0aW9uRW5kJC5waXBlKHdpdGhMYXRlc3RGcm9tKHRoaXMucGVyZlRyYWNraW5nQWN0aXZlJCkpO1xuXG4gICAgLy8gSGFuZGxlcyBmaXJzdCBsb2FkIG5hdmlnYXRpb25cbiAgICBjb21iaW5lTGF0ZXN0KFxuICAgICAgdHJhY2tpbmdOYXZpZ2F0aW9uRW5kJC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdHlwZW9mIHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmcgIT09ICd1bmRlZmluZWQnKSxcbiAgICAgICAgdGFrZVdoaWxlKChbX2V2ZW50LCBhY3RpdmVdKSA9PiBhY3RpdmUpXG4gICAgICApLFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ2xvYWQnKS5waXBlKGRlbGF5KDApKVxuICAgICkuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgIGlmIChldmVudENvbmZpZ3VyYXRpb24udXNlQnJvd3NlckFwaUZvckZpcnN0RlApIHtcbiAgICAgICAgY29uc3QgYnJvd3NlckVudHJpZXMgPSB3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSAmJiB3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgncGFpbnQnKTtcbiAgICAgICAgY29uc3QgYnJvd3NlckZQID0gYnJvd3NlckVudHJpZXMgJiYgYnJvd3NlckVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5Lm5hbWUgPT09ICdmaXJzdC1wYWludCcpO1xuICAgICAgICBpZiAoYnJvd3NlckZQKSB7XG4gICAgICAgICAgY29uc3QgZW5kVGltZSA9IE1hdGgucm91bmQoYnJvd3NlckZQLnN0YXJ0VGltZSk7XG4gICAgICAgICAgdGhpcy5hZGRGUFRvUGVyZlBheWxvYWQoeyBzdGFydFRpbWU6IDAsIGVuZFRpbWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5maXJzdFBhaW50KSB7IC8vIElmIHRoZXJlIGlzIGEgcmVnaXN0ZXJlZCBmaXJzdFBhaW50IHZhbHVlIGVtaXQgaXRcbiAgICAgICAgdGhpcy5hZGRGUFRvUGVyZlBheWxvYWQoYXdhaXQgdGhpcy5maXJzdFBhaW50KTtcbiAgICAgICAgdGhpcy5maXJzdFBhaW50ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXJrRmlyc3RMb2FkKCk7XG4gICAgfSk7XG5cbiAgICAvLyBIYW5kbGVzIGxhdGVyIG5hdmlnYXRpb25cbiAgICB0cmFja2luZ05hdmlnYXRpb25FbmQkLnBpcGUoXG4gICAgICBza2lwKDEpLFxuICAgICAgc2tpcFdoaWxlKChbX2V2ZW50LCBhY3RpdmVdKSA9PiAhYWN0aXZlKVxuICAgICkuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMuaXNGaXJzdExvYWQgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVzZXRQZXJmTWFya3MoKTtcbiAgICAgIGlmICh0aGlzLmZpcnN0UGFpbnQpIHsgLy8gSWYgdGhlcmUgaXMgYSByZWdpc3RlcmVkIGZpcnN0UGFpbnQgdmFsdWUgZW1pdCBpdFxuICAgICAgICB0aGlzLmFkZEZQVG9QZXJmUGF5bG9hZChhd2FpdCB0aGlzLmZpcnN0UGFpbnQpO1xuICAgICAgICB0aGlzLmZpcnN0UGFpbnQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG1ldHJpY3Mgb2JqZWN0IGZvciB0aGUgZmlyc3QgbG9hZCBvZiB0aGUgYXBwbGljYXRpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRmlyc3RMb2FkRGF0YSgpOiBGaXJzdExvYWREYXRhUGF5bG9hZCB7XG4gICAgY29uc3QgbmF2aWdhdGlvbiA9IHdpbmRvdy5wZXJmb3JtYW5jZS50aW1pbmc7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbm5lY3Rpb246IE1hdGgucm91bmQobmF2aWdhdGlvbi5jb25uZWN0RW5kIC0gbmF2aWdhdGlvbi5uYXZpZ2F0aW9uU3RhcnQpLFxuICAgICAgcmVxdWVzdDogTWF0aC5yb3VuZChuYXZpZ2F0aW9uLnJlc3BvbnNlU3RhcnQgLSBuYXZpZ2F0aW9uLmNvbm5lY3RFbmQpLFxuICAgICAgcmVzcG9uc2U6IE1hdGgucm91bmQobmF2aWdhdGlvbi5yZXNwb25zZUVuZCAtIG5hdmlnYXRpb24ucmVzcG9uc2VTdGFydCksXG4gICAgICBET006IE1hdGgucm91bmQobmF2aWdhdGlvbi5sb2FkRXZlbnRFbmQgLSBuYXZpZ2F0aW9uLnJlc3BvbnNlRW5kKSxcbiAgICAgIHRvdGFsOiBNYXRoLnJvdW5kKG5hdmlnYXRpb24ubG9hZEV2ZW50RW5kIC0gbmF2aWdhdGlvbi5uYXZpZ2F0aW9uU3RhcnQpXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZSBwZXJmb3JtYW5jZSBwYXlsb2FkIHdpdGggRlAgb2JqZWN0XG4gICAqIEBwYXJhbSBGUFxuICAgKi9cbiAgcHJpdmF0ZSBhZGRGUFRvUGVyZlBheWxvYWQoRlA6IEV2ZW50VGltaW5nKSB7XG4gICAgY29uc3QgcGVyZkZpcnN0UGFpbnQgPSB7XG4gICAgICAuLi50aGlzLnBlcmZvcm1hbmNlUGF5bG9hZCxcbiAgICAgIHBlcmNlaXZlZDoge1xuICAgICAgICAuLi50aGlzLnBlcmZvcm1hbmNlUGF5bG9hZC5wZXJjZWl2ZWQsXG4gICAgICAgIEZQXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnBlcmZvcm1hbmNlUGF5bG9hZCA9IHBlcmZGaXJzdFBhaW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGFsbCBtZXRyaWNzIHRvIGluaXRpYWwgc3RhdGU7IEFkZCB0aGUgcGFnZU5hbWUgb24gdG9wIG9mIGl0XG4gICAqL1xuICBwdWJsaWMgcmVzZXRQZXJmTWFya3MoKSB7XG4gICAgdGhpcy5wZXJmb3JtYW5jZVBheWxvYWQgPSB7IC4uLnBlcmZvcm1hbmNlTWFya3NJbml0aWFsU3RhdGUgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrIHRoZSBmaXJzdCBsb2FkIG1ldHJpY3MgdXNpbmcgdGhlIG5hdmlnYXRpb24gQVBJLlxuICAgKiBUaGlzIGhhcyB0byBiZSBjYWxsZWQgb25seSBvbmNlIGluIGEgc2luZ2xlIHBhZ2UgYXBwbGljYXRpb24sIGJlaW5nIG1lYW5pbmdmdWwgb25seSBmb3IgdGhlIGZpcnN0IGxvYWRcbiAgICogVGhpcyBtYXJrIGlzIHBvcHVsYXRlZCBieSBkZWZhdWx0IGluIHRoaXMgc2VydmljZSB3aGVuIHRoZSBOYXZpZ2F0aW9uRW5kIGV2ZW50IG9mIHRoZSByb3V0ZXIgZW1pdHMgZm9yIHRoZSBmaXJzdCB0aW1lXG4gICAqL1xuICBwdWJsaWMgbWFya0ZpcnN0TG9hZCgpIHtcbiAgICBjb25zdCBmaXJzdExvYWQgPSB0aGlzLmNyZWF0ZUZpcnN0TG9hZERhdGEoKTtcbiAgICB0aGlzLnBlcmZvcm1hbmNlUGF5bG9hZCA9IHsgLi4udGhpcy5wZXJmb3JtYW5jZVBheWxvYWQsIGZpcnN0TG9hZCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIGZpcnN0IHBhaW50IHZhbHVlXG4gICAqIFN0b3JlIHRoZSBmaXJzdCBwYWludCB0aW1pbmcgdmFsdWUgdG8gYmUgZW1pdHRlZCBhdCBOYXZpZ2F0aW9uIEVuZFxuICAgKiBAcGFyYW0gZW1pdCBJZiB0cnVlLCBzZXRzIHRoZSBGUCB0byB0aGUgY3VycmVudCBwYWdlLiBPdGhlcndpc2UsIHdhaXQgZm9yIG5leHQgTmF2aWdhdGlvbkVuZCBldmVudCB0byBoYXBwZW5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBtYXJrRlAoZW1pdCA9IGZhbHNlKSB7XG4gICAgdGhpcy5maXJzdFBhaW50ID0gdGhpcy5nZXRUaW1pbmcoKTtcbiAgICBpZiAoZW1pdCkge1xuICAgICAgdGhpcy5hZGRGUFRvUGVyZlBheWxvYWQoYXdhaXQgdGhpcy5maXJzdFBhaW50KTtcbiAgICAgIHRoaXMuZmlyc3RQYWludCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGUgZmlyc3QgbWVhbmluZ2Z1bCBwYWludCB2YWx1ZS5cbiAgICogQHBhcmFtIG1hcmtPbmx5Rmlyc3RMb2FkIElmIGZhbHNlLCBtYXJrcyB0aGUgRk1QIGZvciBzdWJzZXF1ZW50IGxvYWRzIGVsc2Ugb25seSBmb3IgdGhlIGZpcnN0IGxvYWQgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbWFya0ZNUChtYXJrT25seUZpcnN0TG9hZCA9IHRydWUpIHtcbiAgICBpZiAoIW1hcmtPbmx5Rmlyc3RMb2FkIHx8IChtYXJrT25seUZpcnN0TG9hZCAmJiB0aGlzLmlzRmlyc3RMb2FkKSkge1xuICAgICAgY29uc3QgdGltaW5nID0gYXdhaXQgdGhpcy5nZXRUaW1pbmcoKTtcbiAgICAgIGNvbnN0IHBlcmZGaXJzdE1lYW5pbmdmdWxQYWludCA9IHtcbiAgICAgICAgLi4udGhpcy5wZXJmb3JtYW5jZVBheWxvYWQsXG4gICAgICAgIHBlcmNlaXZlZDoge1xuICAgICAgICAgIC4uLnRoaXMucGVyZm9ybWFuY2VQYXlsb2FkLnBlcmNlaXZlZCxcbiAgICAgICAgICBGTVA6IHRpbWluZ1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5wZXJmb3JtYW5jZVBheWxvYWQgPSBwZXJmRmlyc3RNZWFuaW5nZnVsUGFpbnQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBkYXRhIHJlYWR5IHBlcmNlaXZlZCBldmVudFxuICAgKiBUaGlzIHByb2JlIG1hcmtzIHRoZSB0aW1lIHdoZW4gdGhlIHBhZ2UgY29uc2lkZXJzIGl0IGhhcyBhbGwgdGhlIGRhdGEgdG8gYmVjb21lIGludGVyYWN0aXZlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbWFya0RhdGFSZWFkeSgpIHtcbiAgICBjb25zdCB0aW1pbmcgPSBhd2FpdCB0aGlzLmdldFRpbWluZygpO1xuICAgIGNvbnN0IHBlcmZEYXRhUmVhZHkgPSB7XG4gICAgICAuLi50aGlzLnBlcmZvcm1hbmNlUGF5bG9hZCxcbiAgICAgIHBlcmNlaXZlZDoge1xuICAgICAgICAuLi50aGlzLnBlcmZvcm1hbmNlUGF5bG9hZC5wZXJjZWl2ZWQsXG4gICAgICAgIGRhdGFSZWFkeTogdGltaW5nXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnBlcmZvcm1hbmNlUGF5bG9hZCA9IHBlcmZEYXRhUmVhZHk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgY3VzdG9tIGV2ZW50IGFuZCBpdHMgbWVhc3VyZW1lbnRzXG4gICAqIEBwYXJhbSBsYWJlbCBUaGUgZXZlbnQgbmFtZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGFkZEN1c3RvbU1hcmsobGFiZWw6IHN0cmluZykge1xuICAgIGNvbnN0IHRpbWluZyA9IGF3YWl0IHRoaXMuZ2V0VGltaW5nKCk7XG4gICAgY29uc3QgY3VzdG9tTWFyayA9IHsgbGFiZWwsIHRpbWluZyB9IGFzIGNvbnN0IHNhdGlzZmllcyBDdXN0b21FdmVudE1hcmtzO1xuICAgIGNvbnN0IHBlcmYgPSB7IC4uLnRoaXMucGVyZm9ybWFuY2VQYXlsb2FkLCBjdXN0b21NYXJrczogdGhpcy5wZXJmb3JtYW5jZVBheWxvYWQuY3VzdG9tTWFya3MuY29uY2F0KGN1c3RvbU1hcmspIH07XG4gICAgdGhpcy5wZXJmb3JtYW5jZVBheWxvYWQgPSBwZXJmO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHNlcnZlciBjYWxsIG9iamVjdCBpbiB0aGUgbGlzdCBvZiBzZXJ2ZXIgY2FsbHMgbWV0cmljc1xuICAgKiBAcGFyYW0gc2VydmVyQ2FsbCBUaGUgb2JqZWN0IHRvIGFkZCBpbiB0aGUgc2VydmVyIGNhbGxzIG1ldHJpY3NcbiAgICovXG4gIHB1YmxpYyBhZGRTZXJ2ZXJDYWxsTWFyayhzZXJ2ZXJDYWxsOiBTZXJ2ZXJDYWxsTWV0cmljKSB7XG4gICAgY29uc3QgcGVyZiA9IHsgLi4udGhpcy5wZXJmb3JtYW5jZVBheWxvYWQsIHNlcnZlckNhbGxzOiB0aGlzLnBlcmZvcm1hbmNlUGF5bG9hZC5zZXJ2ZXJDYWxscy5jb25jYXQoc2VydmVyQ2FsbCkgfTtcbiAgICB0aGlzLnBlcmZvcm1hbmNlUGF5bG9hZCA9IHBlcmY7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgRHhBUEkgU0RLIHNlcnZlciBjYWxsIG9iamVjdCwgY3JlYXRlZCBieSB0aGUgU0RLIFByb2JlIHBsdWdpbiwgaW4gdGhlIGxpc3Qgb2Ygc2VydmVyIGNhbGxzIG1ldHJpY3MuXG4gICAqIEluIG9yZGVyIHRvIGhhdmUgcmVxdWVzdElkIGZvciB0aGUgRHhBUEkgY2FsbHMsIHlvdXIgc2VydmVyIGhhcyB0byBleHBvc2UgJ2FtYS1yZXF1ZXN0LWlkJyB2aWEgQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnNcbiAgICogQHBhcmFtIHNlcnZlck1hcmsgVGhlIG1hcmsgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYWRkU0RLU2VydmVyQ2FsbE1hcmsoc2VydmVyTWFyazogTWFyaykge1xuICAgIGxldCBzZXJ2ZXJDYWxsTWV0cmljOiBTZXJ2ZXJDYWxsTWV0cmljID0ge1xuICAgICAgdXJsOiBzZXJ2ZXJNYXJrLnVybCxcbiAgICAgIGh0dHBNZXRob2Q6IHNlcnZlck1hcmsucmVxdWVzdE9wdGlvbnMubWV0aG9kLFxuICAgICAgaHR0cFN0YXR1czogc2VydmVyTWFyay5yZXNwb25zZSAmJiBzZXJ2ZXJNYXJrLnJlc3BvbnNlLnN0YXR1cyxcbiAgICAgIHRpbWluZzogeyBzdGFydFRpbWU6IHNlcnZlck1hcmsuc3RhcnRUaW1lLCBlbmRUaW1lOiBzZXJ2ZXJNYXJrLmVuZFRpbWUgfSxcbiAgICAgIGVycm9yOiBzZXJ2ZXJNYXJrLmVycm9yXG4gICAgfTtcbiAgICBpZiAoc2VydmVyTWFyay5yZXNwb25zZSkge1xuICAgICAgY29uc3QgY2xvbmVkUmVzcG9uc2UgPSBzZXJ2ZXJNYXJrLnJlc3BvbnNlLmNsb25lKCk7XG4gICAgICBjb25zdCBhbWFSZXF1ZXN0SWQgPSBjbG9uZWRSZXNwb25zZS5oZWFkZXJzLmdldCgnYW1hLXJlcXVlc3QtaWQnKTtcbiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBjbG9uZWRSZXNwb25zZS5ibG9iKCk7XG4gICAgICBzZXJ2ZXJDYWxsTWV0cmljID0ge1xuICAgICAgICAuLi5zZXJ2ZXJDYWxsTWV0cmljLFxuICAgICAgICByZXNwb25zZVNpemU6IGJsb2Iuc2l6ZSxcbiAgICAgICAgcmVxdWVzdElkOiBhbWFSZXF1ZXN0SWQgfHwgdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLmFkZFNlcnZlckNhbGxNYXJrKHNlcnZlckNhbGxNZXRyaWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGN1c3RvbSBldmVudCBhbmQgbWFyayB0aGUgc3RhcnQgdGltZSwgYW5kIHJldHVybnMgdGhlIGVsZW1lbnQgaW5kZXhcbiAgICogQHBhcmFtIGxhYmVsIEV2ZW50IG5hbWVcbiAgICogQHJldHVybnMgdGhlIGVsZW1lbnQgaW5kZXggaWYgdHJhY2tpbmcgaXMgYWN0aXZlLiBPdGhlcndpc2UsIC0xXG4gICAqL1xuICBwdWJsaWMgc3RhcnRDdXN0b21NYXJrKGxhYmVsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuaXNQZXJmVHJhY2tpbmdBY3RpdmUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpO1xuICAgIGNvbnN0IGN1c3RvbU1hcmsgPSB7IGxhYmVsLCB0aW1pbmc6IHsgc3RhcnRUaW1lIH0gfSBhcyBjb25zdCBzYXRpc2ZpZXMgQ3VzdG9tRXZlbnRNYXJrcztcbiAgICBjb25zdCBwZXJmID0geyAuLi50aGlzLnBlcmZvcm1hbmNlUGF5bG9hZCwgY3VzdG9tTWFya3M6IHRoaXMucGVyZm9ybWFuY2VQYXlsb2FkLmN1c3RvbU1hcmtzLmNvbmNhdChjdXN0b21NYXJrKSB9O1xuICAgIHRoaXMucGVyZm9ybWFuY2VQYXlsb2FkID0gcGVyZjtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtYW5jZVBheWxvYWQuY3VzdG9tTWFya3MubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmQgdGhlIGV2ZW50IG1hcmsgZ2l2ZW4gaW4gcGFyYW1ldGVyO1xuICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBjdXN0b20gZXZlbnQgaXMgbm90IGZvdW5kIGluIHRoZSBsaXN0IG9mIGN1c3RvbSBtYXJrczsgdHJ1ZSBvdGhlcndpc2VcbiAgICogQHBhcmFtIGV2ZW50SW5kZXggSW5kZXggb2YgdGhlIGN1c3RvbSBldmVudCB0byBiZSBtYXJrZWQgYXMgZW5kZWRcbiAgICovXG4gIHB1YmxpYyBlbmRDdXN0b21NYXJrKGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5pc1BlcmZUcmFja2luZ0FjdGl2ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgdXBkYXRlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHBlcmYgPSB7XG4gICAgICAuLi50aGlzLnBlcmZvcm1hbmNlUGF5bG9hZCxcbiAgICAgIGN1c3RvbU1hcmtzOiB0aGlzLnBlcmZvcm1hbmNlUGF5bG9hZC5jdXN0b21NYXJrcy5tYXAoKGV2ZW50T2JqLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoaW5kZXggIT09IGV2ZW50SW5kZXgpIHtcbiAgICAgICAgICByZXR1cm4gZXZlbnRPYmo7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSk7XG4gICAgICAgIHJldHVybiB7IGxhYmVsOiBldmVudE9iai5sYWJlbCwgdGltaW5nOiB7IC4uLmV2ZW50T2JqLnRpbWluZywgZW5kVGltZSB9IH07XG4gICAgICB9KVxuICAgIH07XG4gICAgdGhpcy5wZXJmb3JtYW5jZVBheWxvYWQgPSBwZXJmO1xuICAgIHJldHVybiB1cGRhdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBnb2FsIG9mIHRoaXMgbWV0aG9kIGlzIHRvIGNvbXB1dGUgYSB0aW1lIHJhbmdlIGR1cmF0aW9uIGJldHdlZW4gdGhlIG1vbWVudCB5b3UgY2FsbCB0aGUgZnVuY3Rpb24gKGxvd2VyIGJvdW5kIHRpbWVzdGFtcClcbiAgICogYW5kIHRoZSBlbmQgb2YgdGhlIGNvbXBvc2l0ZSByZW5kZXJpbmcgKHVwcGVyIGJvdW5kIG1lYXN1cmVtZW50IC0gYSB0aW1lIG1hcmsgdGhhdCBvY2N1cnMgYWZ0ZXIgdGhlIHJlYWwgY29tcG9zaXRlKVxuICAgKiBGb3IgdGhlIGZpcnN0IGxvYWQgb2YgdGhlIGFwcGxpY2F0aW9uLCB0aGUgc3RhcnQgdGltZSBpcyBjb25zaWRlcmVkIGFzIHRoZSBzdGFydCBvZiBuYXZpZ2F0aW9uIHRvIGVuc3VyZSBhIGN1bXVsYXRpdmUgbWVhc3VyZS5cbiAgICogSXQgaXMgdXNpbmcgdGhlICdOZ1pvbmUnIHNlcnZpY2UgdG8gcnVuT3V0c2lkZUFuZ3VsYXIgdG8gcHJldmVudCBhbnkgY2hhbmdlIGRldGVjdGlvbiB0byBvY2N1ciwgbm9yIGFuZ3VsYXIgZXJyb3IgaGFuZGxpbmcsIHNwZWVkaW5nIHVwIHRoZSBtZWFzdXJlbWVudC5cbiAgICogRXhhbXBsZSB7QGxpbmsgbWFya0ZNUH0gaXMgY2FsbGVkIGluIHtAbGluayBuZ0FmdGVyVmlld0luaXR9LCB0aGUgZW5kIHRpbWUgd2lsbCBiZSBjb21wdXRlZCBvbmNlIHRoZSByZW5kZXIgcGlwZWxpbmUgc3RhZ2UgY29tcGxldGVkIHRoZSBjaGFuZ2VzIHRyaWdnZXJlZCBieSB0aGUgamF2YXNjcmlwdFxuICAgKi9cbiAgcHVibGljIGdldFRpbWluZygpOiBQcm9taXNlPEV2ZW50VGltaW5nPiB7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gdGhpcy5pc0ZpcnN0TG9hZCA/IDAgOiBNYXRoLnJvdW5kKHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBlbmRUaW1lID0gTWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpO1xuICAgICAgICAgIHJlc29sdmUoeyBzdGFydFRpbWUsIGVuZFRpbWUgfSk7XG4gICAgICAgIH0sIDApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGV2ZW50IHRvIHRoZSBzdHJlYW0gb2YgY2FwdHVyZWQgVUkgZXZlbnRzXG4gICAqIEBwYXJhbSB1aUV2ZW50IGVtaXR0ZWQgZXZlbnQgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgYWRkVWlFdmVudCh1aUV2ZW50OiBVaUV2ZW50UGF5bG9hZCkge1xuICAgIHRoaXMudWlFdmVudFRyYWNrLm5leHQodWlFdmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGV2ZW50IHRvIHRoZSBzdHJlYW0gb2YgY2FwdHVyZWQgY3VzdG9tIGV2ZW50c1xuICAgKiBAcGFyYW0gY3VzdG9tRXZlbnQgZW1pdHRlZCBldmVudCBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBhZGRDdXN0b21FdmVudChjdXN0b21FdmVudDogQ3VzdG9tRXZlbnRQYXlsb2FkKSB7XG4gICAgdGhpcy5jdXN0b21FdmVudFRyYWNrLm5leHQoY3VzdG9tRXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlL2RlYWN0aXZhdGUgdGhlIHRyYWNraW5nIG1vZGUgZm9yIFVJIGV2ZW50c1xuICAgKiBAcGFyYW0gYWN0aXZhdGUgYWN0aXZhdGlvbi9kZWFjdGl2YXRpb24gYm9vbGVhblxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVVpVHJhY2tpbmcoYWN0aXZhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVpVHJhY2tpbmdBY3RpdmF0ZWQubmV4dChhY3RpdmF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUvZGVhY3RpdmF0ZSB0aGUgdHJhY2tpbmcgbW9kZSBmb3IgcGVyZm9ybWFuY2UgbWVhc3VyZW1lbnRzXG4gICAqIEBwYXJhbSBhY3RpdmF0ZSBhY3RpdmF0aW9uL2RlYWN0aXZhdGlvbiBib29sZWFuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlUGVyZlRyYWNraW5nKGFjdGl2YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wZXJmVHJhY2tpbmdBY3RpdmF0ZWQubmV4dChhY3RpdmF0ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './event-track.configuration';
2
+ export * from './event-track.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvZXZlbnQtdHJhY2svaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldmVudC10cmFjay5jb25maWd1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtdHJhY2suc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './event-track/index';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXZlbnQtdHJhY2svaW5kZXgnO1xuIl19
@@ -0,0 +1,28 @@
1
+ import { createAction, props, } from '@ngrx/store';
2
+ /** StateActions */
3
+ const ACTION_SET = '[EventTrack] set';
4
+ const ACTION_UPDATE = '[EventTrack] update';
5
+ const ACTION_REGISTER_HERO_COMPONENT = '[EventTrack] register hero component';
6
+ const ACTION_SET_HERO_COMPONENT_TTI = '[EventTrack] set hero component TTI';
7
+ const ACTION_RESET = '[EventTrack] reset';
8
+ /**
9
+ * Clear the current store object and replace it with the new one
10
+ */
11
+ export const setEventTrack = createAction(ACTION_SET, props());
12
+ /**
13
+ * Change a part or the whole object in the store.
14
+ */
15
+ export const updateEventTrack = createAction(ACTION_UPDATE, props());
16
+ /**
17
+ * Clear the whole state, return to the initial one
18
+ */
19
+ export const resetEventTrack = createAction(ACTION_RESET);
20
+ /**
21
+ * Register hero component in the store
22
+ */
23
+ export const registerHeroComponent = createAction(ACTION_REGISTER_HERO_COMPONENT, props());
24
+ /**
25
+ * Set the TTI measure for a hero component in the store
26
+ */
27
+ export const setHeroComponentTTI = createAction(ACTION_SET_HERO_COMPONENT_TTI, props());
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2suYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdG9yZXMvZXZlbnQtdHJhY2svZXZlbnQtdHJhY2suYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGFBQWEsQ0FBQztBQU1yQixtQkFBbUI7QUFDbkIsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUM7QUFDdEMsTUFBTSxhQUFhLEdBQUcscUJBQXFCLENBQUM7QUFDNUMsTUFBTSw4QkFBOEIsR0FBRyxzQ0FBc0MsQ0FBQztBQUM5RSxNQUFNLDZCQUE2QixHQUFHLHFDQUFxQyxDQUFDO0FBQzVFLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBd0IxQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBOEIsQ0FBQyxDQUFDO0FBRTNGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQXVDLENBQUMsQ0FBQztBQUUxRzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFMUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQUMsOEJBQThCLEVBQUUsS0FBSyxFQUEyQyxDQUFDLENBQUM7QUFFcEk7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxFQUF5QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGVBY3Rpb24sXG4gIHByb3BzLFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBFdmVudFRyYWNrU3RhdGUsXG4gIFJlZ2lzdGVySGVyb0NvbXBvbmVudFBheWxvYWQsXG59IGZyb20gJy4vZXZlbnQtdHJhY2suc3RhdGUnO1xuXG4vKiogU3RhdGVBY3Rpb25zICovXG5jb25zdCBBQ1RJT05fU0VUID0gJ1tFdmVudFRyYWNrXSBzZXQnO1xuY29uc3QgQUNUSU9OX1VQREFURSA9ICdbRXZlbnRUcmFja10gdXBkYXRlJztcbmNvbnN0IEFDVElPTl9SRUdJU1RFUl9IRVJPX0NPTVBPTkVOVCA9ICdbRXZlbnRUcmFja10gcmVnaXN0ZXIgaGVybyBjb21wb25lbnQnO1xuY29uc3QgQUNUSU9OX1NFVF9IRVJPX0NPTVBPTkVOVF9UVEkgPSAnW0V2ZW50VHJhY2tdIHNldCBoZXJvIGNvbXBvbmVudCBUVEknO1xuY29uc3QgQUNUSU9OX1JFU0VUID0gJ1tFdmVudFRyYWNrXSByZXNldCc7XG5cbi8qKlxuICogVGhlIHBheWxvYWQgZm9yIHNldHRpbmcgVFRJIGZvciBhIGhlcm8gY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0SGVyb0NvbXBvbmVudFRUSVBheWxvYWQge1xuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGhlcm8gY29tcG9uZW50XG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVFRJIG1lYXN1cmUgZm9yIHRoZSBoZXJvIGNvbXBvbmVudFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAtLSBuYW1pbmcgY29udmVudGlvbiBpbXBvc2VkIGJ5IExpZ2h0aG91c2VcbiAgVFRJOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgQVBJIGVuZHBvaW50cyB1c2VkIGluIHRoZSBIZXJvIGNvbXBvbmVudCBhbmQgaXQncyBzdWJjb21wb25lbnRzXG4gICAqIFRoZXNlIGFyZSB0aGUgQVBJJ3MgaW52b2tlZCB3aGVuIHRoZSBUVEkgaXMgbWVhc3VyZWRcbiAgICovXG4gIGludm9sdmVkQXBpRW5kcG9pbnRzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQ2xlYXIgdGhlIGN1cnJlbnQgc3RvcmUgb2JqZWN0IGFuZCByZXBsYWNlIGl0IHdpdGggdGhlIG5ldyBvbmVcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV2ZW50VHJhY2sgPSBjcmVhdGVBY3Rpb24oQUNUSU9OX1NFVCwgcHJvcHM8eyBtb2RlbDogRXZlbnRUcmFja1N0YXRlIH0+KCkpO1xuXG4vKipcbiAqIENoYW5nZSBhIHBhcnQgb3IgdGhlIHdob2xlIG9iamVjdCBpbiB0aGUgc3RvcmUuXG4gKi9cbmV4cG9ydCBjb25zdCB1cGRhdGVFdmVudFRyYWNrID0gY3JlYXRlQWN0aW9uKEFDVElPTl9VUERBVEUsIHByb3BzPFBhcnRpYWw8eyBtb2RlbDogRXZlbnRUcmFja1N0YXRlIH0+PigpKTtcblxuLyoqXG4gKiBDbGVhciB0aGUgd2hvbGUgc3RhdGUsIHJldHVybiB0byB0aGUgaW5pdGlhbCBvbmVcbiAqL1xuZXhwb3J0IGNvbnN0IHJlc2V0RXZlbnRUcmFjayA9IGNyZWF0ZUFjdGlvbihBQ1RJT05fUkVTRVQpO1xuXG4vKipcbiAqIFJlZ2lzdGVyIGhlcm8gY29tcG9uZW50IGluIHRoZSBzdG9yZVxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJIZXJvQ29tcG9uZW50ID0gY3JlYXRlQWN0aW9uKEFDVElPTl9SRUdJU1RFUl9IRVJPX0NPTVBPTkVOVCwgcHJvcHM8eyBtb2RlbDogUmVnaXN0ZXJIZXJvQ29tcG9uZW50UGF5bG9hZCB9PigpKTtcblxuLyoqXG4gKiBTZXQgdGhlIFRUSSBtZWFzdXJlIGZvciBhIGhlcm8gY29tcG9uZW50IGluIHRoZSBzdG9yZVxuICovXG5leHBvcnQgY29uc3Qgc2V0SGVyb0NvbXBvbmVudFRUSSA9IGNyZWF0ZUFjdGlvbihBQ1RJT05fU0VUX0hFUk9fQ09NUE9ORU5UX1RUSSwgcHJvcHM8eyBtb2RlbDogU2V0SGVyb0NvbXBvbmVudFRUSVBheWxvYWQgfT4oKSk7XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { InjectionToken, NgModule, } from '@angular/core';
2
+ import { StoreModule, } from '@ngrx/store';
3
+ import { eventTrackReducer, } from './event-track.reducer';
4
+ import { EVENT_TRACK_STORE_NAME, } from './event-track.state';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngrx/store";
7
+ /** Token of the EventTrack reducer */
8
+ export const EVENT_TRACK_REDUCER_TOKEN = new InjectionToken('Feature EventTrack Reducer');
9
+ /** Provide default reducer for EventTrack store */
10
+ export function getDefaultEventTrackReducer() {
11
+ return eventTrackReducer;
12
+ }
13
+ export class EventTrackStoreModule {
14
+ static forRoot(reducerFactory) {
15
+ return {
16
+ ngModule: EventTrackStoreModule,
17
+ providers: [
18
+ { provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: reducerFactory }
19
+ ]
20
+ };
21
+ }
22
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventTrackStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EventTrackStoreModule, imports: [i1.StoreFeatureModule] }); }
24
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventTrackStoreModule, providers: [
25
+ { provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: getDefaultEventTrackReducer }
26
+ ], imports: [StoreModule.forFeature(EVENT_TRACK_STORE_NAME, EVENT_TRACK_REDUCER_TOKEN)] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventTrackStoreModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ imports: [
32
+ StoreModule.forFeature(EVENT_TRACK_STORE_NAME, EVENT_TRACK_REDUCER_TOKEN)
33
+ ],
34
+ providers: [
35
+ { provide: EVENT_TRACK_REDUCER_TOKEN, useFactory: getDefaultEventTrackReducer }
36
+ ]
37
+ }]
38
+ }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2subW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9ldmVudC10cmFjay9ldmVudC10cmFjay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFFZCxRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFdBQVcsR0FDWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0wsaUJBQWlCLEdBQ2xCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLHNCQUFzQixHQUV2QixNQUFNLHFCQUFxQixDQUFDOzs7QUFFN0Isc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUF5Qyw0QkFBNEIsQ0FBQyxDQUFDO0FBRWxJLG1EQUFtRDtBQUNuRCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQztBQVVELE1BQU0sT0FBTyxxQkFBcUI7SUFDekIsTUFBTSxDQUFDLE9BQU8sQ0FBNEIsY0FBOEM7UUFDN0YsT0FBTztZQUNMLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUU7YUFDbkU7U0FDRixDQUFDO0lBQ0osQ0FBQztrSUFSVSxxQkFBcUI7bUlBQXJCLHFCQUFxQjttSUFBckIscUJBQXFCLGFBSnJCO1lBQ1QsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFO1NBQ2hGLFlBSkMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSx5QkFBeUIsQ0FBQzs7NEZBTWhFLHFCQUFxQjtrQkFSakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSx5QkFBeUIsQ0FBQztxQkFDMUU7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFVBQVUsRUFBRSwyQkFBMkIsRUFBRTtxQkFDaEY7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3Rpb25Ub2tlbixcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9uLFxuICBBY3Rpb25SZWR1Y2VyLFxuICBTdG9yZU1vZHVsZSxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgZXZlbnRUcmFja1JlZHVjZXIsXG59IGZyb20gJy4vZXZlbnQtdHJhY2sucmVkdWNlcic7XG5pbXBvcnQge1xuICBFVkVOVF9UUkFDS19TVE9SRV9OQU1FLFxuICBFdmVudFRyYWNrU3RhdGUsXG59IGZyb20gJy4vZXZlbnQtdHJhY2suc3RhdGUnO1xuXG4vKiogVG9rZW4gb2YgdGhlIEV2ZW50VHJhY2sgcmVkdWNlciAqL1xuZXhwb3J0IGNvbnN0IEVWRU5UX1RSQUNLX1JFRFVDRVJfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QWN0aW9uUmVkdWNlcjxFdmVudFRyYWNrU3RhdGUsIEFjdGlvbj4+KCdGZWF0dXJlIEV2ZW50VHJhY2sgUmVkdWNlcicpO1xuXG4vKiogUHJvdmlkZSBkZWZhdWx0IHJlZHVjZXIgZm9yIEV2ZW50VHJhY2sgc3RvcmUgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0RXZlbnRUcmFja1JlZHVjZXIoKSB7XG4gIHJldHVybiBldmVudFRyYWNrUmVkdWNlcjtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoRVZFTlRfVFJBQ0tfU1RPUkVfTkFNRSwgRVZFTlRfVFJBQ0tfUkVEVUNFUl9UT0tFTilcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBFVkVOVF9UUkFDS19SRURVQ0VSX1RPS0VOLCB1c2VGYWN0b3J5OiBnZXREZWZhdWx0RXZlbnRUcmFja1JlZHVjZXIgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50VHJhY2tTdG9yZU1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdDxUIGV4dGVuZHMgRXZlbnRUcmFja1N0YXRlPihyZWR1Y2VyRmFjdG9yeTogKCkgPT4gQWN0aW9uUmVkdWNlcjxULCBBY3Rpb24+KTogTW9kdWxlV2l0aFByb3ZpZGVyczxFdmVudFRyYWNrU3RvcmVNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEV2ZW50VHJhY2tTdG9yZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEVWRU5UX1RSQUNLX1JFRFVDRVJfVE9LRU4sIHVzZUZhY3Rvcnk6IHJlZHVjZXJGYWN0b3J5IH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,101 @@
1
+ import { createReducer, on, } from '@ngrx/store';
2
+ import * as actions from './event-track.actions';
3
+ /** The initial value of the Hero component */
4
+ export const heroComponentInitialState = { id: '', TTI: 0, involvedApiEndpoints: [] };
5
+ /**
6
+ * eventTrack initial state
7
+ */
8
+ export const eventTrackInitialState = {
9
+ heroComponent: heroComponentInitialState,
10
+ isTTIComputed: false
11
+ };
12
+ /**
13
+ * Return all the involved API endpoints present in the component including its child & subchild
14
+ * Iterate recursively till the component with no children
15
+ * @param component
16
+ * @returns string[]
17
+ */
18
+ function getComponentInvolvedEndPoints(component) {
19
+ return Array.from((component.children || []).reduce((accum, value) => {
20
+ getComponentInvolvedEndPoints(value).forEach((item) => accum.add(item));
21
+ return accum;
22
+ }, new Set(component.involvedApiEndpoints)));
23
+ }
24
+ /**
25
+ * Get all the involved API endpoints of the heroComponent with maximum TTI value
26
+ * If the parent contains max TTI, then all its child & subchild end points are used
27
+ * otherwise only component with max TTI end points are used
28
+ * @param component
29
+ * @param maxTTI
30
+ * @returns string[]
31
+ */
32
+ function getInvolvedAPIEndpoints(component, maxTTI) {
33
+ if (component.componentTTI === maxTTI) {
34
+ return getComponentInvolvedEndPoints(component);
35
+ }
36
+ return Array.from((component.children || []).reduce((accum, value) => {
37
+ getInvolvedAPIEndpoints(value, maxTTI).forEach((endpoint) => accum.add(endpoint));
38
+ return accum;
39
+ }, new Set()));
40
+ }
41
+ /**
42
+ * Recursively iterate the page hierarchy
43
+ * and set the TTI for the specified component
44
+ * and compute the TTI for the corresponding parent
45
+ * @param component the parent component/page
46
+ * @param id the identifier of the component/page
47
+ * @param value the TTI value
48
+ * @param endpoints API URLs of the component
49
+ * @returns HeroComponent
50
+ */
51
+ function computeTTI(component, id, value, endpoints = []) {
52
+ const computedComponent = { ...component };
53
+ if (computedComponent.id === id) {
54
+ computedComponent.TTI = value;
55
+ computedComponent.hasBeenLogged = true;
56
+ computedComponent.involvedApiEndpoints = endpoints;
57
+ computedComponent.componentTTI = value;
58
+ }
59
+ else if (computedComponent.children) {
60
+ computedComponent.children = computedComponent.children.map((child) => computeTTI(child, id, value, endpoints));
61
+ }
62
+ // Compute the TTI of the current component comparing the child TTI measures
63
+ if (computedComponent.children && computedComponent.children.length > 0) {
64
+ const maxChildTTI = Math.max(...computedComponent.children.map((child) => child.TTI));
65
+ computedComponent.TTI = Math.max(maxChildTTI, computedComponent.TTI);
66
+ }
67
+ return computedComponent;
68
+ }
69
+ /**
70
+ * Check if the TTI for the page is computed
71
+ * @param component the parent component/page
72
+ * @returns boolean
73
+ */
74
+ function isTTIComputed(component) {
75
+ if (component.measureSelf && !component.hasBeenLogged) {
76
+ return false;
77
+ }
78
+ return component.children && component.children.length > 0 ? component.children.every((child) => isTTIComputed(child)) : component.TTI > 0;
79
+ }
80
+ /**
81
+ * List of basic actions for EventTrack
82
+ */
83
+ export const eventTrackReducerFeatures = [
84
+ on(actions.setEventTrack, (_state, payload) => ({ ...payload.model })),
85
+ on(actions.updateEventTrack, (state, payload) => ({ ...state, ...payload.model })),
86
+ on(actions.resetEventTrack, () => eventTrackInitialState),
87
+ on(actions.registerHeroComponent, (state, payload) => ({ ...state, heroComponent: { ...payload.model, TTI: 0 } })),
88
+ on(actions.setHeroComponentTTI, (state, payload) => {
89
+ const updatedHeroComponent = computeTTI(state.heroComponent, payload.model.id, payload.model.TTI, payload.model.involvedApiEndpoints);
90
+ const isComputed = isTTIComputed(updatedHeroComponent);
91
+ if (isComputed) {
92
+ updatedHeroComponent.involvedApiEndpoints = getInvolvedAPIEndpoints(updatedHeroComponent, updatedHeroComponent.TTI) || [];
93
+ }
94
+ return { ...state, heroComponent: updatedHeroComponent, isTTIComputed: isComputed };
95
+ })
96
+ ];
97
+ /**
98
+ * EventTrack Store default reducer
99
+ */
100
+ export const eventTrackReducer = createReducer(eventTrackInitialState, ...eventTrackReducerFeatures);
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2sucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdG9yZXMvZXZlbnQtdHJhY2svZXZlbnQtdHJhY2sucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsYUFBYSxFQUNiLEVBQUUsR0FFSCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEtBQUssT0FBTyxNQUFNLHVCQUF1QixDQUFDO0FBTWpELDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBa0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFFckc7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBb0I7SUFDckQsYUFBYSxFQUFFLHlCQUF5QjtJQUN4QyxhQUFhLEVBQUUsS0FBSztDQUNyQixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxTQUFTLDZCQUE2QixDQUFDLFNBQXdCO0lBQzdELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZixDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2pELDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFTLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQ3BELENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsdUJBQXVCLENBQUMsU0FBd0IsRUFBRSxNQUFjO0lBQ3ZFLElBQUksU0FBUyxDQUFDLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN0QyxPQUFPLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2YsQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNqRCx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsVUFBVSxDQUFDLFNBQXdCLEVBQUUsRUFBVSxFQUFFLEtBQWEsRUFBRSxZQUFzQixFQUFFO0lBQy9GLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQzNDLElBQUksaUJBQWlCLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDOUIsaUJBQWlCLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUN2QyxpQkFBaUIsQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7UUFDbkQsaUJBQWlCLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUN6QyxDQUFDO1NBQU0sSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUNELDRFQUE0RTtJQUM1RSxJQUFJLGlCQUFpQixDQUFDLFFBQVEsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckcsaUJBQWlCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxPQUFPLGlCQUFpQixDQUFDO0FBQzNCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxhQUFhLENBQUMsU0FBd0I7SUFDN0MsSUFBSSxTQUFTLENBQUMsV0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDN0ksQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXFEO0lBQ3pGLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFdEUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRWxGLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO0lBRXpELEVBQUUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbEgsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNqRCxNQUFNLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN0SSxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN2RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2Ysb0JBQW9CLENBQUMsb0JBQW9CLEdBQUcsdUJBQXVCLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVILENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN0RixDQUFDLENBQUM7Q0FDSCxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQzVDLHNCQUFzQixFQUN0QixHQUFHLHlCQUF5QixDQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWN0aW9uQ3JlYXRvcixcbiAgY3JlYXRlUmVkdWNlcixcbiAgb24sXG4gIFJlZHVjZXJUeXBlcyxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgYWN0aW9ucyBmcm9tICcuL2V2ZW50LXRyYWNrLmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgRXZlbnRUcmFja1N0YXRlLFxuICBIZXJvQ29tcG9uZW50LFxufSBmcm9tICcuL2V2ZW50LXRyYWNrLnN0YXRlJztcblxuLyoqIFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBIZXJvIGNvbXBvbmVudCAqL1xuZXhwb3J0IGNvbnN0IGhlcm9Db21wb25lbnRJbml0aWFsU3RhdGU6IEhlcm9Db21wb25lbnQgPSB7IGlkOiAnJywgVFRJOiAwLCBpbnZvbHZlZEFwaUVuZHBvaW50czogW10gfTtcblxuLyoqXG4gKiBldmVudFRyYWNrIGluaXRpYWwgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGV2ZW50VHJhY2tJbml0aWFsU3RhdGU6IEV2ZW50VHJhY2tTdGF0ZSA9IHtcbiAgaGVyb0NvbXBvbmVudDogaGVyb0NvbXBvbmVudEluaXRpYWxTdGF0ZSxcbiAgaXNUVElDb21wdXRlZDogZmFsc2Vcbn07XG5cbi8qKlxuICogUmV0dXJuIGFsbCB0aGUgaW52b2x2ZWQgQVBJIGVuZHBvaW50cyBwcmVzZW50IGluIHRoZSBjb21wb25lbnQgaW5jbHVkaW5nIGl0cyBjaGlsZCAmIHN1YmNoaWxkXG4gKiBJdGVyYXRlIHJlY3Vyc2l2ZWx5IHRpbGwgdGhlIGNvbXBvbmVudCB3aXRoIG5vIGNoaWxkcmVuXG4gKiBAcGFyYW0gY29tcG9uZW50XG4gKiBAcmV0dXJucyBzdHJpbmdbXVxuICovXG5mdW5jdGlvbiBnZXRDb21wb25lbnRJbnZvbHZlZEVuZFBvaW50cyhjb21wb25lbnQ6IEhlcm9Db21wb25lbnQpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKFxuICAgIChjb21wb25lbnQuY2hpbGRyZW4gfHwgW10pLnJlZHVjZSgoYWNjdW0sIHZhbHVlKSA9PiB7XG4gICAgICBnZXRDb21wb25lbnRJbnZvbHZlZEVuZFBvaW50cyh2YWx1ZSkuZm9yRWFjaCgoaXRlbSkgPT4gYWNjdW0uYWRkKGl0ZW0pKTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBuZXcgU2V0PHN0cmluZz4oY29tcG9uZW50Lmludm9sdmVkQXBpRW5kcG9pbnRzKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHRoZSBpbnZvbHZlZCBBUEkgZW5kcG9pbnRzIG9mIHRoZSBoZXJvQ29tcG9uZW50IHdpdGggbWF4aW11bSBUVEkgdmFsdWVcbiAqIElmIHRoZSBwYXJlbnQgY29udGFpbnMgbWF4IFRUSSwgdGhlbiBhbGwgaXRzIGNoaWxkICYgc3ViY2hpbGQgZW5kIHBvaW50cyBhcmUgdXNlZFxuICogb3RoZXJ3aXNlIG9ubHkgY29tcG9uZW50IHdpdGggbWF4IFRUSSBlbmQgcG9pbnRzIGFyZSB1c2VkXG4gKiBAcGFyYW0gY29tcG9uZW50XG4gKiBAcGFyYW0gbWF4VFRJXG4gKiBAcmV0dXJucyBzdHJpbmdbXVxuICovXG5mdW5jdGlvbiBnZXRJbnZvbHZlZEFQSUVuZHBvaW50cyhjb21wb25lbnQ6IEhlcm9Db21wb25lbnQsIG1heFRUSTogbnVtYmVyKTogc3RyaW5nW10ge1xuICBpZiAoY29tcG9uZW50LmNvbXBvbmVudFRUSSA9PT0gbWF4VFRJKSB7XG4gICAgcmV0dXJuIGdldENvbXBvbmVudEludm9sdmVkRW5kUG9pbnRzKGNvbXBvbmVudCk7XG4gIH1cbiAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgKGNvbXBvbmVudC5jaGlsZHJlbiB8fCBbXSkucmVkdWNlKChhY2N1bSwgdmFsdWUpID0+IHtcbiAgICAgIGdldEludm9sdmVkQVBJRW5kcG9pbnRzKHZhbHVlLCBtYXhUVEkpLmZvckVhY2goKGVuZHBvaW50KSA9PiBhY2N1bS5hZGQoZW5kcG9pbnQpKTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBuZXcgU2V0PHN0cmluZz4oKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBpdGVyYXRlIHRoZSBwYWdlIGhpZXJhcmNoeVxuICogYW5kIHNldCB0aGUgVFRJIGZvciB0aGUgc3BlY2lmaWVkIGNvbXBvbmVudFxuICogYW5kIGNvbXB1dGUgdGhlIFRUSSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcGFyZW50XG4gKiBAcGFyYW0gY29tcG9uZW50IHRoZSBwYXJlbnQgY29tcG9uZW50L3BhZ2VcbiAqIEBwYXJhbSBpZCB0aGUgaWRlbnRpZmllciBvZiB0aGUgY29tcG9uZW50L3BhZ2VcbiAqIEBwYXJhbSB2YWx1ZSB0aGUgVFRJIHZhbHVlXG4gKiBAcGFyYW0gZW5kcG9pbnRzIEFQSSBVUkxzIG9mIHRoZSBjb21wb25lbnRcbiAqIEByZXR1cm5zIEhlcm9Db21wb25lbnRcbiAqL1xuZnVuY3Rpb24gY29tcHV0ZVRUSShjb21wb25lbnQ6IEhlcm9Db21wb25lbnQsIGlkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIGVuZHBvaW50czogc3RyaW5nW10gPSBbXSk6IEhlcm9Db21wb25lbnQge1xuICBjb25zdCBjb21wdXRlZENvbXBvbmVudCA9IHsgLi4uY29tcG9uZW50IH07XG4gIGlmIChjb21wdXRlZENvbXBvbmVudC5pZCA9PT0gaWQpIHtcbiAgICBjb21wdXRlZENvbXBvbmVudC5UVEkgPSB2YWx1ZTtcbiAgICBjb21wdXRlZENvbXBvbmVudC5oYXNCZWVuTG9nZ2VkID0gdHJ1ZTtcbiAgICBjb21wdXRlZENvbXBvbmVudC5pbnZvbHZlZEFwaUVuZHBvaW50cyA9IGVuZHBvaW50cztcbiAgICBjb21wdXRlZENvbXBvbmVudC5jb21wb25lbnRUVEkgPSB2YWx1ZTtcbiAgfSBlbHNlIGlmIChjb21wdXRlZENvbXBvbmVudC5jaGlsZHJlbikge1xuICAgIGNvbXB1dGVkQ29tcG9uZW50LmNoaWxkcmVuID0gY29tcHV0ZWRDb21wb25lbnQuY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4gY29tcHV0ZVRUSShjaGlsZCwgaWQsIHZhbHVlLCBlbmRwb2ludHMpKTtcbiAgfVxuICAvLyBDb21wdXRlIHRoZSBUVEkgb2YgdGhlIGN1cnJlbnQgY29tcG9uZW50IGNvbXBhcmluZyB0aGUgY2hpbGQgVFRJIG1lYXN1cmVzXG4gIGlmIChjb21wdXRlZENvbXBvbmVudC5jaGlsZHJlbiAmJiBjb21wdXRlZENvbXBvbmVudC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgbWF4Q2hpbGRUVEkgPSBNYXRoLm1heCguLi5jb21wdXRlZENvbXBvbmVudC5jaGlsZHJlbi5tYXAoKGNoaWxkOiBIZXJvQ29tcG9uZW50KSA9PiBjaGlsZC5UVEkpKTtcbiAgICBjb21wdXRlZENvbXBvbmVudC5UVEkgPSBNYXRoLm1heChtYXhDaGlsZFRUSSwgY29tcHV0ZWRDb21wb25lbnQuVFRJKTtcbiAgfVxuICByZXR1cm4gY29tcHV0ZWRDb21wb25lbnQ7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIFRUSSBmb3IgdGhlIHBhZ2UgaXMgY29tcHV0ZWRcbiAqIEBwYXJhbSBjb21wb25lbnQgdGhlIHBhcmVudCBjb21wb25lbnQvcGFnZVxuICogQHJldHVybnMgYm9vbGVhblxuICovXG5mdW5jdGlvbiBpc1RUSUNvbXB1dGVkKGNvbXBvbmVudDogSGVyb0NvbXBvbmVudCk6IGJvb2xlYW4ge1xuICBpZiAoY29tcG9uZW50Lm1lYXN1cmVTZWxmICYmICFjb21wb25lbnQuaGFzQmVlbkxvZ2dlZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gY29tcG9uZW50LmNoaWxkcmVuICYmIGNvbXBvbmVudC5jaGlsZHJlbi5sZW5ndGggPiAwID8gY29tcG9uZW50LmNoaWxkcmVuLmV2ZXJ5KChjaGlsZCkgPT4gaXNUVElDb21wdXRlZChjaGlsZCkpIDogY29tcG9uZW50LlRUSSA+IDA7XG59XG5cbi8qKlxuICogTGlzdCBvZiBiYXNpYyBhY3Rpb25zIGZvciBFdmVudFRyYWNrXG4gKi9cbmV4cG9ydCBjb25zdCBldmVudFRyYWNrUmVkdWNlckZlYXR1cmVzOiBSZWR1Y2VyVHlwZXM8RXZlbnRUcmFja1N0YXRlLCBBY3Rpb25DcmVhdG9yW10+W10gPSBbXG4gIG9uKGFjdGlvbnMuc2V0RXZlbnRUcmFjaywgKF9zdGF0ZSwgcGF5bG9hZCkgPT4gKHsgLi4ucGF5bG9hZC5tb2RlbCB9KSksXG5cbiAgb24oYWN0aW9ucy51cGRhdGVFdmVudFRyYWNrLCAoc3RhdGUsIHBheWxvYWQpID0+ICh7IC4uLnN0YXRlLCAuLi5wYXlsb2FkLm1vZGVsIH0pKSxcblxuICBvbihhY3Rpb25zLnJlc2V0RXZlbnRUcmFjaywgKCkgPT4gZXZlbnRUcmFja0luaXRpYWxTdGF0ZSksXG5cbiAgb24oYWN0aW9ucy5yZWdpc3Rlckhlcm9Db21wb25lbnQsIChzdGF0ZSwgcGF5bG9hZCkgPT4gKHsgLi4uc3RhdGUsIGhlcm9Db21wb25lbnQ6IHsgLi4ucGF5bG9hZC5tb2RlbCwgVFRJOiAwIH0gfSkpLFxuXG4gIG9uKGFjdGlvbnMuc2V0SGVyb0NvbXBvbmVudFRUSSwgKHN0YXRlLCBwYXlsb2FkKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlZEhlcm9Db21wb25lbnQgPSBjb21wdXRlVFRJKHN0YXRlLmhlcm9Db21wb25lbnQsIHBheWxvYWQubW9kZWwuaWQsIHBheWxvYWQubW9kZWwuVFRJLCBwYXlsb2FkLm1vZGVsLmludm9sdmVkQXBpRW5kcG9pbnRzKTtcbiAgICBjb25zdCBpc0NvbXB1dGVkID0gaXNUVElDb21wdXRlZCh1cGRhdGVkSGVyb0NvbXBvbmVudCk7XG4gICAgaWYgKGlzQ29tcHV0ZWQpIHtcbiAgICAgIHVwZGF0ZWRIZXJvQ29tcG9uZW50Lmludm9sdmVkQXBpRW5kcG9pbnRzID0gZ2V0SW52b2x2ZWRBUElFbmRwb2ludHModXBkYXRlZEhlcm9Db21wb25lbnQsIHVwZGF0ZWRIZXJvQ29tcG9uZW50LlRUSSkgfHwgW107XG4gICAgfVxuICAgIHJldHVybiB7IC4uLnN0YXRlLCBoZXJvQ29tcG9uZW50OiB1cGRhdGVkSGVyb0NvbXBvbmVudCwgaXNUVElDb21wdXRlZDogaXNDb21wdXRlZCB9O1xuICB9KVxuXTtcblxuLyoqXG4gKiBFdmVudFRyYWNrIFN0b3JlIGRlZmF1bHQgcmVkdWNlclxuICovXG5leHBvcnQgY29uc3QgZXZlbnRUcmFja1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICBldmVudFRyYWNrSW5pdGlhbFN0YXRlLFxuICAuLi5ldmVudFRyYWNrUmVkdWNlckZlYXR1cmVzXG4pO1xuIl19
@@ -0,0 +1,7 @@
1
+ import { createFeatureSelector, createSelector, } from '@ngrx/store';
2
+ import { EVENT_TRACK_STORE_NAME, } from './event-track.state';
3
+ /** Select EventTrack State */
4
+ export const selectEventTrackState = createFeatureSelector(EVENT_TRACK_STORE_NAME);
5
+ /** Select hero component status */
6
+ export const selectHeroComponentStatus = createSelector(selectEventTrackState, (state) => (state.isTTIComputed ? state.heroComponent.TTI : undefined));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2suc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9ldmVudC10cmFjay9ldmVudC10cmFjay5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixjQUFjLEdBQ2YsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLHNCQUFzQixHQUV2QixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLDhCQUE4QjtBQUM5QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBa0Isc0JBQXNCLENBQUMsQ0FBQztBQUVwRyxtQ0FBbUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxFQUFzQixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUZlYXR1cmVTZWxlY3RvcixcbiAgY3JlYXRlU2VsZWN0b3IsXG59IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEVWRU5UX1RSQUNLX1NUT1JFX05BTUUsXG4gIEV2ZW50VHJhY2tTdGF0ZSxcbn0gZnJvbSAnLi9ldmVudC10cmFjay5zdGF0ZSc7XG5cbi8qKiBTZWxlY3QgRXZlbnRUcmFjayBTdGF0ZSAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdEV2ZW50VHJhY2tTdGF0ZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxFdmVudFRyYWNrU3RhdGU+KEVWRU5UX1RSQUNLX1NUT1JFX05BTUUpO1xuXG4vKiogU2VsZWN0IGhlcm8gY29tcG9uZW50IHN0YXR1cyAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdEhlcm9Db21wb25lbnRTdGF0dXMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RFdmVudFRyYWNrU3RhdGUsIChzdGF0ZSk6IG51bWJlciB8IHVuZGVmaW5lZCA9PiAoc3RhdGUuaXNUVElDb21wdXRlZCA/IHN0YXRlLmhlcm9Db21wb25lbnQuVFRJIDogdW5kZWZpbmVkKSk7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Name of the EventTrack Store
3
+ */
4
+ export const EVENT_TRACK_STORE_NAME = 'eventTrack';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2suc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmVzL2V2ZW50LXRyYWNrL2V2ZW50LXRyYWNrLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTREQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGludGVyZmFjZSBmb3IgSGVybyBjb21wb25lbnQsIHdoaWNoIGRldGVybWluZXMgdGhlIFRpbWUgVG8gSW50ZXJhY3RpdmUgKFRUSSkgZm9yIGEgcGFnZVxuICogSXQgZm9sbG93cyBhIFRyZWUgZGF0YSBzdHJ1Y3R1cmUsIHdpdGggdGhlIHJvb3Qgbm9kZSBhcyB0aGUgUGFnZSBhbmQgdGhlIGhlcm8gY29tcG9uZW50cyBhc1xuICogaXRzIGNoaWxkcmVuLiBFYWNoIGNoaWxkIGNhbiBoYXZlIGl0cyBvd24gaGVybyBjb21wb25lbnRzLiBUaGUgVFRJIGZvciB0aGUgcGFnZVxuICogd291bGQgYmUgY29tcHV0ZWQgdXNpbmcgYSBib3R0b20tdXAgYXBwcm9hY2ggc3RhcnRpbmcgZnJvbSB0aGUgY2hpbGRyZW4gYXQgdGhlIGJvdHRvbSAobGVhZiBub2RlcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVyb0NvbXBvbmVudCBleHRlbmRzIFJlZ2lzdGVySGVyb0NvbXBvbmVudFBheWxvYWQge1xuICAvKiogVGhlIFRpbWUgVG8gSW50ZXJhY3RpdmUoVFRJKSBtZWFzdXJlIGZvciB0aGUgY29tcG9uZW50ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gLS0gbmFtaW5nIGNvbnZlbnRpb24gaW1wb3NlZCBieSBMaWdodGhvdXNlXG4gIFRUSTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBCb29sZWFuIHRvIGluZGljYXRlIGlmIHRoZSBUVEkgZm9yIHRoZSBjb21wb25lbnRcbiAgICogaGFzIGJlZW4gZXhwbGljaXRseSBtZWFzdXJlZCBhbmQgbG9nZ2VkXG4gICAqL1xuICBoYXNCZWVuTG9nZ2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBBUEkgZW5kcG9pbnRzIHVzZWQgaW4gdGhlIEhlcm8gY29tcG9uZW50IGFuZCBpdCdzIHN1YmNvbXBvbmVudHNcbiAgICogVGhlc2UgYXJlIHRoZSBBUEkncyBpbnZva2VkIHdoZW4gdGhlIFRUSSBpcyBtZWFzdXJlZFxuICAgKi9cbiAgaW52b2x2ZWRBcGlFbmRwb2ludHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWN0dWFsIFRUSSBtZWFzdXJlIG9mIHRoZSBjb21wb25lbnQsXG4gICAqIGRvZXNuJ3QgY2hhbmdlIHVwb24gaXQncyBjaGlsZHJlbiBNYXggVFRJIHZhbHVlXG4gICAqL1xuICBjb21wb25lbnRUVEk/OiBudW1iZXI7XG59XG5cbi8qKiBUaGUgaW50ZXJmYWNlIGZvciB0aGUgcmVnaXN0ZXIgaGVybyBjb21wb25lbnQgcGF5bG9hZCwgd2hpY2ggaXMgdXNlZCB0byByZWdpc3RlciBhIGhlcm8gY29tcG9uZW50IGFuZCBpdHMgY2hpbGRyZW4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJIZXJvQ29tcG9uZW50UGF5bG9hZCB7XG4gIC8qKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaGVybyBjb21wb25lbnQgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEJvb2xlYW4gdG8gaW5kaWNhdGUgaWYgdGhlIFRUSSBjb21wdXRhdGlvbiBzaG91bGQgdGFrZSBpbnRvIGFjY291bnRcbiAgICogdGhlIFRUSSBvZiB0aGUgY29tcG9uZW50IGl0c2VsZiBpbiBhZGRpdGlvbiB0byB0aGF0IG9mIGl0cyBjaGlsZCBjb21wb25lbnRzXG4gICAqL1xuICBtZWFzdXJlU2VsZj86IGJvb2xlYW47XG4gIC8qKiBUaGUgaWRlbnRpZmllcnMgb2YgdGhlIGNoaWxkcmVuIGhlcm8gY29tcG9uZW50cyAqL1xuICBjaGlsZHJlbj86IEhlcm9Db21wb25lbnRbXTtcbn1cblxuLyoqXG4gKiBFdmVudFRyYWNrIHN0b3JlIHN0YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRUcmFja1N0YXRlIHtcbiAgLyoqIFRoZSBoZXJvIGNvbXBvbmVudCBmb3IgY29tcHV0aW5nIFRUSSAqL1xuICBoZXJvQ29tcG9uZW50OiBIZXJvQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBCb29sZWFuIHRvIGluZGljYXRlIHRoZSBjb21wbGV0aW9uIG9mIFRUSSBjb21wdXRhdGlvblxuICAgKiBUVEkgZm9yIGEgaGVybyBjb21wb25lbnQgaXMgY29uc2lkZXJlZCB0byBiZSBjb21wdXRlZFxuICAgKiBvbmx5IHdoZW4gdGhlIFRUSSBvZiBhbGwgaXRzIGNoaWxkcmVuIGhhdmUgYmVlbiBjb21wdXRlZFxuICAgKiBlZzogZm9yIGEgY29tcG9uZW50IEEgaGF2aW5nIEIgYW5kIEMgYXMgY2hpbGRyZW4sIHRoaXMgdmFsdWVcbiAgICogaXMgc2V0IG9ubHkgd2hlbiBUVEkgZm9yIGFsbCBBLCBCIGFuZCBDIGhhdmUgYmVlbiBzZXRcbiAgICovXG4gIGlzVFRJQ29tcHV0ZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogTmFtZSBvZiB0aGUgRXZlbnRUcmFjayBTdG9yZVxuICovXG5leHBvcnQgY29uc3QgRVZFTlRfVFJBQ0tfU1RPUkVfTkFNRSA9ICdldmVudFRyYWNrJztcblxuLyoqXG4gKiBFdmVudFRyYWNrIFN0b3JlIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50VHJhY2tTdG9yZSB7XG4gIC8qKiBFdmVudFRyYWNrIHN0YXRlICovXG4gIFtFVkVOVF9UUkFDS19TVE9SRV9OQU1FXTogRXZlbnRUcmFja1N0YXRlO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ import { eventTrackInitialState, } from './event-track.reducer';
2
+ export const eventTrackStorageSync = {
3
+ deserialize: (rawObject) => {
4
+ return rawObject ? rawObject : eventTrackInitialState;
5
+ }
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtdHJhY2suc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdG9yZXMvZXZlbnQtdHJhY2svZXZlbnQtdHJhY2suc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0wsc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFLL0IsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQTBDO0lBQzFFLFdBQVcsRUFBRSxDQUFDLFNBQWMsRUFBRSxFQUFFO1FBQzlCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUE0QixDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztJQUMzRSxDQUFDO0NBQ08sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2VyaWFsaXplcixcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7XG4gIGV2ZW50VHJhY2tJbml0aWFsU3RhdGUsXG59IGZyb20gJy4vZXZlbnQtdHJhY2sucmVkdWNlcic7XG5pbXBvcnQge1xuICBFdmVudFRyYWNrU3RhdGUsXG59IGZyb20gJy4vZXZlbnQtdHJhY2suc3RhdGUnO1xuXG5leHBvcnQgY29uc3QgZXZlbnRUcmFja1N0b3JhZ2VTeW5jOiBSZWFkb25seTxTZXJpYWxpemVyPEV2ZW50VHJhY2tTdGF0ZT4+ID0ge1xuICBkZXNlcmlhbGl6ZTogKHJhd09iamVjdDogYW55KSA9PiB7XG4gICAgcmV0dXJuIHJhd09iamVjdCA/IHJhd09iamVjdCBhcyBFdmVudFRyYWNrU3RhdGUgOiBldmVudFRyYWNrSW5pdGlhbFN0YXRlO1xuICB9XG59IGFzIGNvbnN0O1xuIl19
@@ -0,0 +1,7 @@
1
+ export * from './event-track.actions';
2
+ export * from './event-track.module';
3
+ export * from './event-track.reducer';
4
+ export * from './event-track.selectors';
5
+ export * from './event-track.state';
6
+ export * from './event-track.sync';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmVzL2V2ZW50LXRyYWNrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldmVudC10cmFjay5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtdHJhY2subW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtdHJhY2sucmVkdWNlcic7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LXRyYWNrLnNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LXRyYWNrLnN0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtdHJhY2suc3luYyc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './event-track/index';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2V2ZW50LXRyYWNrL2luZGV4JztcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@o3r/analytics",
3
- "version": "12.1.0-prerelease.79",
3
+ "version": "12.1.0-prerelease.80",
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": "^12.1.0-prerelease.79",
14
+ "@ama-sdk/core": "^12.1.0-prerelease.80",
15
15
  "@angular-devkit/schematics": "^19.0.0",
16
16
  "@angular/common": "^19.0.0",
17
17
  "@angular/core": "^19.0.0",
@@ -19,8 +19,8 @@
19
19
  "@angular/platform-browser-dynamic": "^19.0.0",
20
20
  "@angular/router": "^19.0.0",
21
21
  "@ngrx/store": "^19.0.0",
22
- "@o3r/core": "^12.1.0-prerelease.79",
23
- "@o3r/schematics": "^12.1.0-prerelease.79",
22
+ "@o3r/core": "^12.1.0-prerelease.80",
23
+ "@o3r/schematics": "^12.1.0-prerelease.80",
24
24
  "@schematics/angular": "^19.0.0",
25
25
  "jasmine": "^5.0.0",
26
26
  "rxjs": "^7.8.1",
@@ -63,13 +63,13 @@
63
63
  "types": "./index.d.ts",
64
64
  "default": "./fesm2022/o3r-analytics.mjs"
65
65
  },
66
- "./fixtures/jest": {
67
- "types": "./fixtures/jest/index.d.ts",
68
- "default": "./fesm2022/o3r-analytics-fixtures-jest.mjs"
69
- },
70
66
  "./fixtures/jasmine": {
71
67
  "types": "./fixtures/jasmine/index.d.ts",
72
68
  "default": "./fesm2022/o3r-analytics-fixtures-jasmine.mjs"
69
+ },
70
+ "./fixtures/jest": {
71
+ "types": "./fixtures/jest/index.d.ts",
72
+ "default": "./fesm2022/o3r-analytics-fixtures-jest.mjs"
73
73
  }
74
74
  },
75
75
  "engines": {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/analytics-to-component/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/analytics-to-component/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAQlC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAE5E,MAAM,0BAA0B,GAAG,CAAC,MAA2C,EAAE,EAAE,CAAC,CAAC,MAAW,EAAE,EAAE;IAClG,MAAM,CAAC,KAAK,CAAC;;8CAE+B,CAAC,CAAC;IAC9C,MAAM,MAAM,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA8B;IAC7C,kBAAkB;IAClB,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,GAAG,2CAAa,iBAAiB,EAAC,CAAC;QACvF,OAAO,iBAAiB,CAAC;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,uBAAuB,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;SACpH,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAEM,MAAM,KAAK,GAAG,CAAC,OAA8B,EAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACrF,MAAM,EACJ,oBAAoB,EACrB,GAAG,MAAM,qCAAO,iBAAiB,GAAE,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":""}