@microsoft/applicationinsights-angularplugin-js 2.8.0 → 2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { arrForEach } from '@microsoft/applicationinsights-core-js';
2
+ import { arrForEach, isFunction } from '@microsoft/applicationinsights-core-js';
3
3
  import * as i0 from "@angular/core";
4
4
  export class ApplicationinsightsAngularpluginErrorService {
5
5
  constructor() {
@@ -12,7 +12,17 @@ export class ApplicationinsightsAngularpluginErrorService {
12
12
  this.analyticsPlugin = analyticsPlugin;
13
13
  }
14
14
  addErrorHandler(errorService) {
15
- this.errorServices.push(errorService);
15
+ if (errorService && isFunction(errorService.handleError)) {
16
+ this.errorServices.push(errorService);
17
+ }
18
+ }
19
+ removeErrorHandler(errorService) {
20
+ if (errorService && isFunction(errorService.handleError)) {
21
+ const idx = this.errorServices.indexOf(errorService);
22
+ if (idx !== -1) {
23
+ this.errorServices.splice(idx, 1);
24
+ }
25
+ }
16
26
  }
17
27
  handleError(error) {
18
28
  if (this.analyticsPlugin) {
@@ -20,7 +30,7 @@ export class ApplicationinsightsAngularpluginErrorService {
20
30
  }
21
31
  if (this.errorServices && this.errorServices.length > 0) {
22
32
  arrForEach(this.errorServices, errorService => {
23
- if (errorService.handleError && typeof errorService.handleError === 'function') {
33
+ if (isFunction(errorService.handleError)) {
24
34
  errorService.handleError(error);
25
35
  }
26
36
  });
@@ -36,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
36
46
  providedIn: 'root'
37
47
  }]
38
48
  }], ctorParameters: function () { return []; } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tanMvc3JjL2xpYi9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFNcEUsTUFBTSxPQUFPLDRDQUE0QztJQUt2RDtRQUZRLGtCQUFhLEdBQW9CLEVBQUUsQ0FBQztRQUcxQyxJQUFJLDRDQUE0QyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDbEUsNENBQTRDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUM5RDtJQUNILENBQUM7SUFFRCxJQUFXLE1BQU0sQ0FBQyxlQUE2QjtRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQTJCO1FBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUMzRDtRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkQsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQzVDLElBQUksWUFBWSxDQUFDLFdBQVcsSUFBSSxPQUFPLFlBQVksQ0FBQyxXQUFXLEtBQUssVUFBVSxFQUFFO29CQUM5RSxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNqQztZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQTlCYSxxREFBUSxHQUFpRCxJQUFLLENBQUE7eUlBRGpFLDRDQUE0Qzs2SUFBNUMsNENBQTRDLGNBRjNDLE1BQU07MkZBRVAsNENBQTRDO2tCQUh4RCxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUFwcEluc2lnaHRzIH0gZnJvbSAnQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbic7XHJcbmltcG9ydCB7IGFyckZvckVhY2ggfSBmcm9tICdAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qcyc7XHJcbmltcG9ydCB7IElFcnJvclNlcnZpY2UgfSBmcm9tICcuL0lFcnJvclNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UgaW1wbGVtZW50cyBJRXJyb3JTZXJ2aWNlIHtcclxuICBwdWJsaWMgc3RhdGljIGluc3RhbmNlOiBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBhbmFseXRpY3NQbHVnaW46IElBcHBJbnNpZ2h0cztcclxuICBwcml2YXRlIGVycm9yU2VydmljZXM6IElFcnJvclNlcnZpY2VbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGlmIChBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZS5pbnN0YW5jZSA9PT0gbnVsbCkge1xyXG4gICAgICBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZS5pbnN0YW5jZSA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHBsdWdpbihhbmFseXRpY3NQbHVnaW46IElBcHBJbnNpZ2h0cykge1xyXG4gICAgdGhpcy5hbmFseXRpY3NQbHVnaW4gPSBhbmFseXRpY3NQbHVnaW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkRXJyb3JIYW5kbGVyKGVycm9yU2VydmljZTogSUVycm9yU2VydmljZSk6IHZvaWQge1xyXG4gICAgdGhpcy5lcnJvclNlcnZpY2VzLnB1c2goZXJyb3JTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFuYWx5dGljc1BsdWdpbikge1xyXG4gICAgICB0aGlzLmFuYWx5dGljc1BsdWdpbi50cmFja0V4Y2VwdGlvbih7IGV4Y2VwdGlvbjogZXJyb3IgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZXJyb3JTZXJ2aWNlcyAmJiB0aGlzLmVycm9yU2VydmljZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBhcnJGb3JFYWNoKHRoaXMuZXJyb3JTZXJ2aWNlcywgZXJyb3JTZXJ2aWNlID0+IHtcclxuICAgICAgICBpZiAoZXJyb3JTZXJ2aWNlLmhhbmRsZUVycm9yICYmIHR5cGVvZiBlcnJvclNlcnZpY2UuaGFuZGxlRXJyb3IgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIGVycm9yU2VydmljZS5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tanMvc3JjL2xpYi9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBTWhGLE1BQU0sT0FBTyw0Q0FBNEM7SUFLckQ7UUFGUSxrQkFBYSxHQUFvQixFQUFFLENBQUM7UUFHeEMsSUFBSSw0Q0FBNEMsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ2hFLDRDQUE0QyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBRUQsSUFBVyxNQUFNLENBQUMsZUFBNkI7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDM0MsQ0FBQztJQUVNLGVBQWUsQ0FBQyxZQUEyQjtRQUM5QyxJQUFJLFlBQVksSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFlBQTJCO1FBQ2pELElBQUksWUFBWSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckQsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDN0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JELFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFO2dCQUMxQyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ3RDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ25DO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7O0FBekNhLHFEQUFRLEdBQWlELElBQUssQ0FBQTt5SUFEbkUsNENBQTRDOzZJQUE1Qyw0Q0FBNEMsY0FGekMsTUFBTTsyRkFFVCw0Q0FBNEM7a0JBSHhELFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJQXBwSW5zaWdodHMgfSBmcm9tICdAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uJztcclxuaW1wb3J0IHsgYXJyRm9yRWFjaCwgaXNGdW5jdGlvbiB9IGZyb20gJ0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb3JlLWpzJztcclxuaW1wb3J0IHsgSUVycm9yU2VydmljZSB9IGZyb20gJy4vSUVycm9yU2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlIGltcGxlbWVudHMgSUVycm9yU2VydmljZSB7XHJcbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlOiBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGFuYWx5dGljc1BsdWdpbjogSUFwcEluc2lnaHRzO1xyXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2VzOiBJRXJyb3JTZXJ2aWNlW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBpZiAoQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHBsdWdpbihhbmFseXRpY3NQbHVnaW46IElBcHBJbnNpZ2h0cykge1xyXG4gICAgICAgIHRoaXMuYW5hbHl0aWNzUGx1Z2luID0gYW5hbHl0aWNzUGx1Z2luO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRFcnJvckhhbmRsZXIoZXJyb3JTZXJ2aWNlOiBJRXJyb3JTZXJ2aWNlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGVycm9yU2VydmljZSAmJiBpc0Z1bmN0aW9uKGVycm9yU2VydmljZS5oYW5kbGVFcnJvcikpIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2VzLnB1c2goZXJyb3JTZXJ2aWNlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUVycm9ySGFuZGxlcihlcnJvclNlcnZpY2U6IElFcnJvclNlcnZpY2UpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXJyb3JTZXJ2aWNlICYmIGlzRnVuY3Rpb24oZXJyb3JTZXJ2aWNlLmhhbmRsZUVycm9yKSkge1xyXG4gICAgICAgICAgICBjb25zdCBpZHggPSB0aGlzLmVycm9yU2VydmljZXMuaW5kZXhPZihlcnJvclNlcnZpY2UpO1xyXG4gICAgICAgICAgICBpZiAoaWR4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2VzLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hbmFseXRpY3NQbHVnaW4pIHtcclxuICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NQbHVnaW4udHJhY2tFeGNlcHRpb24oeyBleGNlcHRpb246IGVycm9yIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JTZXJ2aWNlcyAmJiB0aGlzLmVycm9yU2VydmljZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBhcnJGb3JFYWNoKHRoaXMuZXJyb3JTZXJ2aWNlcywgZXJyb3JTZXJ2aWNlID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKGVycm9yU2VydmljZS5oYW5kbGVFcnJvcikpIHtcclxuICAgICAgICAgICAgICAgICAgICBlcnJvclNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,56 +1,75 @@
1
1
  import { Component } from '@angular/core';
2
- import { PropertiesPluginIdentifier, Util } from '@microsoft/applicationinsights-common';
3
- import { BaseTelemetryPlugin, arrForEach, _InternalMessageId, LoggingSeverity, getLocation } from '@microsoft/applicationinsights-core-js';
2
+ import { PropertiesPluginIdentifier, Util, AnalyticsPluginIdentifier } from '@microsoft/applicationinsights-common';
3
+ import { BaseTelemetryPlugin, arrForEach, getLocation, _throwInternal } from '@microsoft/applicationinsights-core-js';
4
4
  import { NavigationEnd } from '@angular/router';
5
5
  import { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';
6
6
  import * as i0 from "@angular/core";
7
7
  // eslint-disable-next-line @angular-eslint/component-class-suffix
8
8
  export class AngularPlugin extends BaseTelemetryPlugin {
9
9
  constructor() {
10
- super(...arguments);
10
+ super();
11
11
  this.priority = 186;
12
12
  this.identifier = 'AngularPlugin';
13
+ this._angularCfg = null;
14
+ this._eventSubscription = null;
15
+ let self = this;
16
+ self._doTeardown = (unloadCtx, unloadState, asyncCallback) => {
17
+ if (this.analyticsPlugin && ApplicationinsightsAngularpluginErrorService.instance !== null) {
18
+ ApplicationinsightsAngularpluginErrorService.instance.plugin = null;
19
+ if (self._angularCfg) {
20
+ if (self._angularCfg.errorServices && Array.isArray(self._angularCfg.errorServices)) {
21
+ arrForEach(self._angularCfg.errorServices, (errorService) => {
22
+ ApplicationinsightsAngularpluginErrorService.instance.removeErrorHandler(errorService);
23
+ });
24
+ }
25
+ }
26
+ }
27
+ if (self._eventSubscription) {
28
+ self._eventSubscription.unsubscribe();
29
+ self._eventSubscription = null;
30
+ }
31
+ self.analyticsPlugin = null;
32
+ self.propertiesPlugin = null;
33
+ self._angularCfg = null;
34
+ };
13
35
  }
14
36
  initialize(config, core, extensions, pluginChain) {
15
37
  super.initialize(config, core, extensions, pluginChain);
16
38
  const self = this;
17
39
  const ctx = self._getTelCtx();
18
40
  const extConfig = ctx.getExtCfg(self.identifier, { router: null, errorServices: null });
19
- arrForEach(extensions, ext => {
20
- const identifier = ext.identifier;
21
- if (identifier === 'ApplicationInsightsAnalytics') {
22
- self.analyticsPlugin = ext;
23
- if (ApplicationinsightsAngularpluginErrorService.instance !== null) {
24
- ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;
25
- if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {
26
- arrForEach(extConfig.errorServices, (errorService) => {
27
- ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);
28
- });
29
- }
41
+ self.propertiesPlugin = core.getPlugin(PropertiesPluginIdentifier)?.plugin;
42
+ self.analyticsPlugin = core.getPlugin(AnalyticsPluginIdentifier)?.plugin;
43
+ if (self.analyticsPlugin) {
44
+ if (ApplicationinsightsAngularpluginErrorService.instance !== null) {
45
+ ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;
46
+ if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {
47
+ arrForEach(extConfig.errorServices, (errorService) => {
48
+ ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);
49
+ });
30
50
  }
31
51
  }
32
- if (identifier === PropertiesPluginIdentifier) {
33
- self.propertiesPlugin = ext;
34
- }
35
- });
52
+ }
36
53
  if (extConfig.router) {
37
54
  let isPageInitialLoad = true;
38
55
  const pageViewTelemetry = {
39
56
  uri: extConfig.router.url
40
57
  };
41
58
  self.trackPageView(pageViewTelemetry);
42
- extConfig.router.events.subscribe(event => {
43
- if (event instanceof NavigationEnd) {
44
- // for page initial load, do not call trackPageView twice
45
- if (isPageInitialLoad) {
46
- isPageInitialLoad = false;
47
- return;
59
+ self._eventSubscription = extConfig.router.events.subscribe(event => {
60
+ if (self.isInitialized()) {
61
+ if (event instanceof NavigationEnd) {
62
+ // for page initial load, do not call trackPageView twice
63
+ if (isPageInitialLoad) {
64
+ isPageInitialLoad = false;
65
+ return;
66
+ }
67
+ const pvt = {
68
+ uri: extConfig.router.url,
69
+ properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0
70
+ };
71
+ self.trackPageView(pvt);
48
72
  }
49
- const pvt = {
50
- uri: extConfig.router.url,
51
- properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0
52
- };
53
- self.trackPageView(pvt);
54
73
  }
55
74
  });
56
75
  }
@@ -74,13 +93,11 @@ export class AngularPlugin extends BaseTelemetryPlugin {
74
93
  self.analyticsPlugin.trackPageView(pageView);
75
94
  }
76
95
  else {
77
- self.diagLog().throwInternal(
78
- // eslint-disable-next-line max-len
79
- LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');
96
+ _throwInternal(self.diagLog(), 1 /* CRITICAL */, 64 /* TelemetryInitializerFailed */, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');
80
97
  }
81
98
  }
82
99
  }
83
- AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, deps: null, target: i0.ɵɵFactoryTarget.Component });
100
+ AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, deps: [], target: i0.ɵɵFactoryTarget.Component });
84
101
  AngularPlugin.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: AngularPlugin, selector: "lib-applicationinsights-angularplugin-js", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
85
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, decorators: [{
86
103
  type: Component,
@@ -89,5 +106,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
89
106
  template: ``,
90
107
  styles: []
91
108
  }]
92
- }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ3dDLDBCQUEwQixFQUFFLElBQUksRUFDOUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBRWUsbUJBQW1CLEVBQUUsVUFBVSxFQUN2QixrQkFBa0IsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUM3RSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFvQmpILGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sYUFBYyxTQUFRLG1CQUFtQjtJQU50RDs7UUFPVyxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsZUFBVSxHQUFHLGVBQWUsQ0FBQztLQTRFdkM7SUF2RUcsVUFBVSxDQUFDLE1BQWdDLEVBQUUsSUFBc0IsRUFBRSxVQUFxQixFQUFFLFdBQW1DO1FBQzNILEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUEwQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFB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QUMsT0FBTyxFQUFFLENBQUMsYUFBYTtZQUN4QixtQ0FBbUM7WUFDbkMsZUFBZSxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQywwQkFBMEIsRUFBRSxnRkFBZ0YsQ0FBQyxDQUFDO1NBQ2xLO0lBQ0wsQ0FBQzs7MEdBN0VRLGFBQWE7OEZBQWIsYUFBYSx1R0FKWixFQUFFOzJGQUlILGFBQWE7a0JBTnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsUUFBUSxFQUFFLEVBQUU7b0JBQ1osTUFBTSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIElDb25maWcsIElQYWdlVmlld1RlbGVtZXRyeSwgSUFwcEluc2lnaHRzLCBQcm9wZXJ0aWVzUGx1Z2luSWRlbnRpZmllciwgVXRpbFxyXG59IGZyb20gJ0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gICAgSVBsdWdpbiwgSUNvbmZpZ3VyYXRpb24sIElBcHBJbnNpZ2h0c0NvcmUsXHJcbiAgICBJVGVsZW1ldHJ5UGx1Z2luLCBCYXNlVGVsZW1ldHJ5UGx1Z2luLCBhcnJGb3JFYWNoLCBJVGVsZW1ldHJ5SXRlbSwgSVRlbGVtZXRyeVBsdWdpbkNoYWluLFxyXG4gICAgSVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0LCBfSW50ZXJuYWxNZXNzYWdlSWQsIExvZ2dpbmdTZXZlcml0eSwgZ2V0TG9jYXRpb25cclxufSBmcm9tICdAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qcyc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbi8vIEZvciB0eXBlcyBvbmx5XHJcbmltcG9ydCAqIGFzIHByb3BlcnRpZXMgZnJvbSAnQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXByb3BlcnRpZXMtanMnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi9JRXJyb3JTZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBJQW5ndWxhckV4dGVuc2lvbkNvbmZpZyB7XHJcbiAgICAvKipcclxuICAgICAqIEFuZ3VsYXIgcm91dGVyIGZvciBlbmFibGluZyBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBQYWdlVmlldyB0cmFja2luZy5cclxuICAgICAqL1xyXG4gICAgcm91dGVyPzogUm91dGVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIGVycm9yIHNlcnZpY2UgZm9yIGdsb2JhbCBlcnJvciBoYW5kbGluZy5cclxuICAgICAqL1xyXG4gICAgZXJyb3JTZXJ2aWNlcz86IElFcnJvclNlcnZpY2VbXTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tanMnLFxyXG4gICAgdGVtcGxhdGU6IGBgLFxyXG4gICAgc3R5bGVzOiBbXVxyXG59KVxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1jbGFzcy1zdWZmaXhcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJQbHVnaW4gZXh0ZW5kcyBCYXNlVGVsZW1ldHJ5UGx1Z2luIHtcclxuICAgIHB1YmxpYyBwcmlvcml0eSA9IDE4NjtcclxuICAgIHB1YmxpYyBpZGVudGlmaWVyID0gJ0FuZ3VsYXJQbHVnaW4nO1xyXG5cclxuICAgIHByaXZhdGUgYW5hbHl0aWNzUGx1Z2luOiBJQXBwSW5zaWdodHM7XHJcbiAgICBwcml2YXRlIHByb3BlcnRpZXNQbHVnaW46IHByb3BlcnRpZXMuUHJvcGVydGllc1BsdWdpbjtcclxuXHJcbiAgICBpbml0aWFsaXplKGNvbmZpZzogSUNvbmZpZ3VyYXRpb24gJiBJQ29uZmlnLCBjb3JlOiBJQXBwSW5zaWdodHNDb3JlLCBleHRlbnNpb25zOiBJUGx1Z2luW10sIHBsdWdpbkNoYWluPzogSVRlbGVtZXRyeVBsdWdpbkNoYWluKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZShjb25maWcsIGNvcmUsIGV4dGVuc2lvbnMsIHBsdWdpbkNoYWluKTtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuICAgICAgICBjb25zdCBjdHggPSBzZWxmLl9nZXRUZWxDdHgoKTtcclxuICAgICAgICBjb25zdCBleHRDb25maWcgPSBjdHguZ2V0RXh0Q2ZnPElBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnPihzZWxmLmlkZW50aWZpZXIsIHsgcm91dGVyOiBudWxsLCBlcnJvclNlcnZpY2VzOiBudWxsIH0pO1xyXG4gICAgICAgIGFyckZvckVhY2goZXh0ZW5zaW9ucywgZXh0ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IChleHQgYXMgSVRlbGVtZXRyeVBsdWdpbikuaWRlbnRpZmllcjtcclxuICAgICAgICAgICAgaWYgKGlkZW50aWZpZXIgPT09ICdBcHBsaWNhdGlvbkluc2lnaHRzQW5hbHl0aWNzJykge1xyXG4gICAgICAgICAgICAgICAgc2VsZi5hbmFseXRpY3NQbHVnaW4gPSAoZXh0IGFzIGFueSkgYXMgSUFwcEluc2lnaHRzO1xyXG4gICAgICAgICAgICAgICAgaWYgKEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlLmluc3RhbmNlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UucGx1Z2luID0gc2VsZi5hbmFseXRpY3NQbHVnaW47XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4dENvbmZpZy5lcnJvclNlcnZpY2VzICYmIEFycmF5LmlzQXJyYXkoZXh0Q29uZmlnLmVycm9yU2VydmljZXMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyckZvckVhY2goZXh0Q29uZmlnLmVycm9yU2VydmljZXMsIChlcnJvclNlcnZpY2U6IElFcnJvclNlcnZpY2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlLmluc3RhbmNlLmFkZEVycm9ySGFuZGxlcihlcnJvclNlcnZpY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGlkZW50aWZpZXIgPT09IFByb3BlcnRpZXNQbHVnaW5JZGVudGlmaWVyKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnByb3BlcnRpZXNQbHVnaW4gPSAoZXh0IGFzIGFueSkgYXMgcHJvcGVydGllcy5Qcm9wZXJ0aWVzUGx1Z2luO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChleHRDb25maWcucm91dGVyKSB7XHJcbiAgICAgICAgICAgIGxldCBpc1BhZ2VJbml0aWFsTG9hZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VWaWV3VGVsZW1ldHJ5OiBJUGFnZVZpZXdUZWxlbWV0cnkgPSB7XHJcbiAgICAgICAgICAgICAgICB1cmk6IGV4dENvbmZpZy5yb3V0ZXIudXJsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHNlbGYudHJhY2tQYWdlVmlldyhwYWdlVmlld1RlbGVtZXRyeSk7XHJcbiAgICAgICAgICAgIGV4dENvbmZpZy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhZ2UgaW5pdGlhbCBsb2FkLCBkbyBub3QgY2FsbCB0cmFja1BhZ2VWaWV3IHR3aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGFnZUluaXRpYWxMb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFnZUluaXRpYWxMb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHZ0OiBJUGFnZVZpZXdUZWxlbWV0cnkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVyaTogZXh0Q29uZmlnLnJvdXRlci51cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsgZHVyYXRpb246IDAgfSAvLyBTUEEgcm91dGUgY2hhbmdlIGxvYWRpbmcgZHVyYXRpb25zIGFyZSB1bmRlZmluZWQsIHNvIHNlbmQgMFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFja1BhZ2VWaWV3KHB2dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBQYXJ0IEEgZmllbGRzIHRvIHRoZSBldmVudFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgdGhhdCBuZWVkcyB0byBiZSBwcm9jZXNzZWRcclxuICAgICAqL1xyXG4gICAgcHJvY2Vzc1RlbGVtZXRyeShldmVudDogSVRlbGVtZXRyeUl0ZW0sIGl0ZW1DdHg/OiBJUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQpIHtcclxuICAgICAgICB0aGlzLnByb2Nlc3NOZXh0KGV2ZW50LCBpdGVtQ3R4KTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja1BhZ2VWaWV3KHBhZ2VWaWV3OiBJUGFnZVZpZXdUZWxlbWV0cnkpIHtcclxuICAgICAgICBjb25zdCBzZWxmID0gdGhpcztcclxuXHJcbiAgICAgICAgaWYgKHNlbGYuYW5hbHl0aWNzUGx1Z2luKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gZ2V0TG9jYXRpb24oKTtcclxuICAgICAgICAgICAgaWYgKHNlbGYucHJvcGVydGllc1BsdWdpbiAmJiBzZWxmLnByb3BlcnRpZXNQbHVnaW4uY29udGV4dCAmJiBzZWxmLnByb3BlcnRpZXNQbHVnaW4uY29udGV4dC50ZWxlbWV0cnlUcmFjZSkge1xyXG4gICAgICAgICAgICAgICAgc2VsZi5wcm9wZXJ0aWVzUGx1Z2luLmNvbnRleHQudGVsZW1ldHJ5VHJhY2UudHJhY2VJRCA9IFV0aWwuZ2VuZXJhdGVXM0NJZCgpO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5wcm9wZXJ0aWVzUGx1Z2luLmNvbnRleHQudGVsZW1ldHJ5VHJhY2UubmFtZSA9IGxvY2F0aW9uICYmIGxvY2F0aW9uLnBhdGhuYW1lIHx8ICdfdW5rbm93bl8nO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHNlbGYuYW5hbHl0aWNzUGx1Z2luLnRyYWNrUGFnZVZpZXcocGFnZVZpZXcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNlbGYuZGlhZ0xvZygpLnRocm93SW50ZXJuYWwoXHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxyXG4gICAgICAgICAgICAgICAgTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMLCBfSW50ZXJuYWxNZXNzYWdlSWQuVGVsZW1ldHJ5SW5pdGlhbGl6ZXJGYWlsZWQsICdBbmFseXRpY3MgcGx1Z2luIGlzIG5vdCBhdmFpbGFibGUsIEFuZ3VsYXIgcGx1Z2luIHRlbGVtZXRyeSB3aWxsIG5vdCBiZSBzZW50OiAnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
109
+ }], ctorParameters: function () { return []; } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ3dDLDBCQUEwQixFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFDekcsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBRUgsbUJBQW1CLEVBQUUsVUFBVSxFQUNMLFdBQVcsRUFBRSxjQUFjLEVBQ3hELE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBR3hELE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQXNCakgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxhQUFjLFNBQVEsbUJBQW1CO0lBVWxEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFWTCxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUk1QixnQkFBVyxHQUE0QixJQUFJLENBQUM7UUFDNUMsdUJBQWtCLEdBQWlCLElBQUksQ0FBQztRQUs1QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFFaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLFNBQTBDLEVBQUUsV0FBbUMsRUFBRSxhQUEwQixFQUFrQixFQUFFO1lBQy9JLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSw0Q0FBNEMsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUN4Riw0Q0FBNEMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElB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YixhQUFhLHVHQUpaLEVBQUU7MkZBSUgsYUFBYTtrQkFOekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxRQUFRLEVBQUUsRUFBRTtvQkFDWixNQUFNLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgSUNvbmZpZywgSVBhZ2VWaWV3VGVsZW1ldHJ5LCBJQXBwSW5zaWdodHMsIFByb3BlcnRpZXNQbHVnaW5JZGVudGlmaWVyLCBVdGlsLCBBbmFseXRpY3NQbHVnaW5JZGVudGlmaWVyXHJcbn0gZnJvbSAnQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgICBJUGx1Z2luLCBJQ29uZmlndXJhdGlvbiwgSUFwcEluc2lnaHRzQ29yZSxcclxuICAgIEJhc2VUZWxlbWV0cnlQbHVnaW4sIGFyckZvckVhY2gsIElUZWxlbWV0cnlJdGVtLCBJVGVsZW1ldHJ5UGx1Z2luQ2hhaW4sXHJcbiAgICBJUHJvY2Vzc1RlbGVtZXRyeUNvbnRleHQsIGdldExvY2F0aW9uLCBfdGhyb3dJbnRlcm5hbCwgZUxvZ2dpbmdTZXZlcml0eSwgX2VJbnRlcm5hbE1lc3NhZ2VJZCwgSVByb2Nlc3NUZWxlbWV0cnlVbmxvYWRDb250ZXh0LCBJVGVsZW1ldHJ5VW5sb2FkU3RhdGVcclxufSBmcm9tICdAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qcyc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbi8vIEZvciB0eXBlcyBvbmx5XHJcbmltcG9ydCAqIGFzIHByb3BlcnRpZXMgZnJvbSAnQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXByb3BlcnRpZXMtanMnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi9JRXJyb3JTZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFuYWx5dGljc1BsdWdpbiB9IGZyb20gJ0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1hbmFseXRpY3MtanMnO1xyXG5cclxuaW50ZXJmYWNlIElBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnIHtcclxuICAgIC8qKlxyXG4gICAgICogQW5ndWxhciByb3V0ZXIgZm9yIGVuYWJsaW5nIEFwcGxpY2F0aW9uIEluc2lnaHRzIFBhZ2VWaWV3IHRyYWNraW5nLlxyXG4gICAgICovXHJcbiAgICByb3V0ZXI/OiBSb3V0ZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gZXJyb3Igc2VydmljZSBmb3IgZ2xvYmFsIGVycm9yIGhhbmRsaW5nLlxyXG4gICAgICovXHJcbiAgICBlcnJvclNlcnZpY2VzPzogSUVycm9yU2VydmljZVtdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWFwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcycsXHJcbiAgICB0ZW1wbGF0ZTogYGAsXHJcbiAgICBzdHlsZXM6IFtdXHJcbn0pXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgY2xhc3MgQW5ndWxhclBsdWdpbiBleHRlbmRzIEJhc2VUZWxlbWV0cnlQbHVnaW4ge1xyXG4gICAgcHVibGljIHByaW9yaXR5ID0gMTg2O1xyXG4gICAgcHVibGljIGlkZW50aWZpZXIgPSAnQW5ndWxhclBsdWdpbic7XHJcblxyXG4gICAgcHJpdmF0ZSBhbmFseXRpY3NQbHVnaW46IEFuYWx5dGljc1BsdWdpbjtcclxuICAgIHByaXZhdGUgcHJvcGVydGllc1BsdWdpbjogcHJvcGVydGllcy5Qcm9wZXJ0aWVzUGx1Z2luO1xyXG4gICAgcHJpdmF0ZSBfYW5ndWxhckNmZzogSUFuZ3VsYXJFeHRlbnNpb25Db25maWcgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBfZXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgbGV0IHNlbGYgPSB0aGlzO1xyXG5cclxuICAgICAgICBzZWxmLl9kb1RlYXJkb3duID0gKHVubG9hZEN0eD86IElQcm9jZXNzVGVsZW1ldHJ5VW5sb2FkQ29udGV4dCwgdW5sb2FkU3RhdGU/OiBJVGVsZW1ldHJ5VW5sb2FkU3RhdGUsIGFzeW5jQ2FsbGJhY2s/OiAoKSA9PiB2b2lkKTogdm9pZCB8IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hbmFseXRpY3NQbHVnaW4gJiYgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlLmluc3RhbmNlLnBsdWdpbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5fYW5ndWxhckNmZykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9hbmd1bGFyQ2ZnLmVycm9yU2VydmljZXMgJiYgQXJyYXkuaXNBcnJheShzZWxmLl9hbmd1bGFyQ2ZnLmVycm9yU2VydmljZXMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyckZvckVhY2goc2VsZi5fYW5ndWxhckNmZy5lcnJvclNlcnZpY2VzLCAoZXJyb3JTZXJ2aWNlOiBJRXJyb3JTZXJ2aWNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZS5pbnN0YW5jZS5yZW1vdmVFcnJvckhhbmRsZXIoZXJyb3JTZXJ2aWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoc2VsZi5fZXZlbnRTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIHNlbGYuX2V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICBzZWxmLl9ldmVudFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNlbGYuYW5hbHl0aWNzUGx1Z2luID0gbnVsbDtcclxuICAgICAgICAgICAgc2VsZi5wcm9wZXJ0aWVzUGx1Z2luID0gbnVsbDtcclxuICAgICAgICAgICAgc2VsZi5fYW5ndWxhckNmZyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemUoY29uZmlnOiBJQ29uZmlndXJhdGlvbiAmIElDb25maWcsIGNvcmU6IElBcHBJbnNpZ2h0c0NvcmUsIGV4dGVuc2lvbnM6IElQbHVnaW5bXSwgcGx1Z2luQ2hhaW4/OiBJVGVsZW1ldHJ5UGx1Z2luQ2hhaW4pIHtcclxuICAgICAgICBzdXBlci5pbml0aWFsaXplKGNvbmZpZywgY29yZSwgZXh0ZW5zaW9ucywgcGx1Z2luQ2hhaW4pO1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IGN0eCA9IHNlbGYuX2dldFRlbEN0eCgpO1xyXG4gICAgICAgIGNvbnN0IGV4dENvbmZpZyA9IGN0eC5nZXRFeHRDZmc8SUFuZ3VsYXJFeHRlbnNpb25Db25maWc+KHNlbGYuaWRlbnRpZmllciwgeyByb3V0ZXI6IG51bGwsIGVycm9yU2VydmljZXM6IG51bGwgfSk7XHJcblxyXG4gICAgICAgIHNlbGYucHJvcGVydGllc1BsdWdpbiA9IGNvcmUuZ2V0UGx1Z2luPHByb3BlcnRpZXMuUHJvcGVydGllc1BsdWdpbj4oUHJvcGVydGllc1BsdWdpbklkZW50aWZpZXIpPy5wbHVnaW47XHJcbiAgICAgICAgc2VsZi5hbmFseXRpY3NQbHVnaW4gPSBjb3JlLmdldFBsdWdpbjxBbmFseXRpY3NQbHVnaW4+KEFuYWx5dGljc1BsdWdpbklkZW50aWZpZXIpPy5wbHVnaW47XHJcbiAgICAgICAgaWYgKHNlbGYuYW5hbHl0aWNzUGx1Z2luKSB7XHJcbiAgICAgICAgICAgIGlmIChBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZS5pbnN0YW5jZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UucGx1Z2luID0gc2VsZi5hbmFseXRpY3NQbHVnaW47XHJcbiAgICAgICAgICAgICAgICBpZiAoZXh0Q29uZmlnLmVycm9yU2VydmljZXMgJiYgQXJyYXkuaXNBcnJheShleHRDb25maWcuZXJyb3JTZXJ2aWNlcykpIHtcclxuICAgICAgICAgICAgICAgICAgICBhcnJGb3JFYWNoKGV4dENvbmZpZy5lcnJvclNlcnZpY2VzLCAoZXJyb3JTZXJ2aWNlOiBJRXJyb3JTZXJ2aWNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlLmluc3RhbmNlLmFkZEVycm9ySGFuZGxlcihlcnJvclNlcnZpY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXh0Q29uZmlnLnJvdXRlcikge1xyXG4gICAgICAgICAgICBsZXQgaXNQYWdlSW5pdGlhbExvYWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBwYWdlVmlld1RlbGVtZXRyeTogSVBhZ2VWaWV3VGVsZW1ldHJ5ID0ge1xyXG4gICAgICAgICAgICAgICAgdXJpOiBleHRDb25maWcucm91dGVyLnVybFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBzZWxmLnRyYWNrUGFnZVZpZXcocGFnZVZpZXdUZWxlbWV0cnkpO1xyXG4gICAgICAgICAgICBzZWxmLl9ldmVudFN1YnNjcmlwdGlvbiA9IGV4dENvbmZpZy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5pc0luaXRpYWxpemVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBwYWdlIGluaXRpYWwgbG9hZCwgZG8gbm90IGNhbGwgdHJhY2tQYWdlVmlldyB0d2ljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYWdlSW5pdGlhbExvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFnZUluaXRpYWxMb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHZ0OiBJUGFnZVZpZXdUZWxlbWV0cnkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmk6IGV4dENvbmZpZy5yb3V0ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogeyBkdXJhdGlvbjogMCB9IC8vIFNQQSByb3V0ZSBjaGFuZ2UgbG9hZGluZyBkdXJhdGlvbnMgYXJlIHVuZGVmaW5lZCwgc28gc2VuZCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhY2tQYWdlVmlldyhwdnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIFBhcnQgQSBmaWVsZHMgdG8gdGhlIGV2ZW50XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCB0aGF0IG5lZWRzIHRvIGJlIHByb2Nlc3NlZFxyXG4gICAgICovXHJcbiAgICBwcm9jZXNzVGVsZW1ldHJ5KGV2ZW50OiBJVGVsZW1ldHJ5SXRlbSwgaXRlbUN0eD86IElQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dCkge1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc05leHQoZXZlbnQsIGl0ZW1DdHgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrUGFnZVZpZXcocGFnZVZpZXc6IElQYWdlVmlld1RlbGVtZXRyeSkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG5cclxuICAgICAgICBpZiAoc2VsZi5hbmFseXRpY3NQbHVnaW4pIHtcclxuICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBnZXRMb2NhdGlvbigpO1xyXG4gICAgICAgICAgICBpZiAoc2VsZi5wcm9wZXJ0aWVzUGx1Z2luICYmIHNlbGYucHJvcGVydGllc1BsdWdpbi5jb250ZXh0ICYmIHNlbGYucHJvcGVydGllc1BsdWdpbi5jb250ZXh0LnRlbGVtZXRyeVRyYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnByb3BlcnRpZXNQbHVnaW4uY29udGV4dC50ZWxlbWV0cnlUcmFjZS50cmFjZUlEID0gVXRpbC5nZW5lcmF0ZVczQ0lkKCk7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnByb3BlcnRpZXNQbHVnaW4uY29udGV4dC50ZWxlbWV0cnlUcmFjZS5uYW1lID0gbG9jYXRpb24gJiYgbG9jYXRpb24ucGF0aG5hbWUgfHwgJ191bmtub3duXyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VsZi5hbmFseXRpY3NQbHVnaW4udHJhY2tQYWdlVmlldyhwYWdlVmlldyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoc2VsZi5kaWFnTG9nKCksXHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxyXG4gICAgICAgICAgICAgICAgZUxvZ2dpbmdTZXZlcml0eS5DUklUSUNBTCwgX2VJbnRlcm5hbE1lc3NhZ2VJZC5UZWxlbWV0cnlJbml0aWFsaXplckZhaWxlZCwgJ0FuYWx5dGljcyBwbHVnaW4gaXMgbm90IGF2YWlsYWJsZSwgQW5ndWxhciBwbHVnaW4gdGVsZW1ldHJ5IHdpbGwgbm90IGJlIHNlbnQ6ICcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
20
20
  ]
21
21
  }]
22
22
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBV2pILE1BQU0sT0FBTyx3Q0FBd0M7O3FJQUF4Qyx3Q0FBd0M7c0lBQXhDLHdDQUF3QyxpQkFScEMsYUFBYSxhQUdsQixhQUFhO3NJQUtaLHdDQUF3QyxhQUp4QztRQUNULDRDQUE0QztLQUM3QyxZQUxRLEVBQ1I7MkZBTVUsd0NBQXdDO2tCQVRwRCxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLEVBQ1I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1QsNENBQTRDO3FCQUM3QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFuZ3VsYXJQbHVnaW4gfSBmcm9tICcuL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBbmd1bGFyUGx1Z2luXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgXSxcclxuICBleHBvcnRzOiBbQW5ndWxhclBsdWdpbl0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luSnNNb2R1bGUgeyB9XHJcbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBV2pILE1BQU0sT0FBTyx3Q0FBd0M7O3FJQUF4Qyx3Q0FBd0M7c0lBQXhDLHdDQUF3QyxpQkFSbEMsYUFBYSxhQUdsQixhQUFhO3NJQUtkLHdDQUF3QyxhQUp0QztRQUNQLDRDQUE0QztLQUMvQyxZQUxRLEVBQ1I7MkZBTVEsd0NBQXdDO2tCQVRwRCxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLEVBQ1I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1AsNENBQTRDO3FCQUMvQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFuZ3VsYXJQbHVnaW4gfSBmcm9tICcuL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW0FuZ3VsYXJQbHVnaW5dLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtBbmd1bGFyUGx1Z2luXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkpzTW9kdWxlIHsgfVxyXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, NgModule } from '@angular/core';
3
- import { PropertiesPluginIdentifier, Util } from '@microsoft/applicationinsights-common';
4
- import { arrForEach, BaseTelemetryPlugin, getLocation, LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';
3
+ import { PropertiesPluginIdentifier, AnalyticsPluginIdentifier, Util } from '@microsoft/applicationinsights-common';
4
+ import { isFunction, arrForEach, BaseTelemetryPlugin, getLocation, _throwInternal } from '@microsoft/applicationinsights-core-js';
5
5
  import { NavigationEnd } from '@angular/router';
6
6
 
7
7
  class ApplicationinsightsAngularpluginErrorService {
@@ -15,7 +15,17 @@ class ApplicationinsightsAngularpluginErrorService {
15
15
  this.analyticsPlugin = analyticsPlugin;
16
16
  }
17
17
  addErrorHandler(errorService) {
18
- this.errorServices.push(errorService);
18
+ if (errorService && isFunction(errorService.handleError)) {
19
+ this.errorServices.push(errorService);
20
+ }
21
+ }
22
+ removeErrorHandler(errorService) {
23
+ if (errorService && isFunction(errorService.handleError)) {
24
+ const idx = this.errorServices.indexOf(errorService);
25
+ if (idx !== -1) {
26
+ this.errorServices.splice(idx, 1);
27
+ }
28
+ }
19
29
  }
20
30
  handleError(error) {
21
31
  if (this.analyticsPlugin) {
@@ -23,7 +33,7 @@ class ApplicationinsightsAngularpluginErrorService {
23
33
  }
24
34
  if (this.errorServices && this.errorServices.length > 0) {
25
35
  arrForEach(this.errorServices, errorService => {
26
- if (errorService.handleError && typeof errorService.handleError === 'function') {
36
+ if (isFunction(errorService.handleError)) {
27
37
  errorService.handleError(error);
28
38
  }
29
39
  });
@@ -43,50 +53,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
43
53
  // eslint-disable-next-line @angular-eslint/component-class-suffix
44
54
  class AngularPlugin extends BaseTelemetryPlugin {
45
55
  constructor() {
46
- super(...arguments);
56
+ super();
47
57
  this.priority = 186;
48
58
  this.identifier = 'AngularPlugin';
59
+ this._angularCfg = null;
60
+ this._eventSubscription = null;
61
+ let self = this;
62
+ self._doTeardown = (unloadCtx, unloadState, asyncCallback) => {
63
+ if (this.analyticsPlugin && ApplicationinsightsAngularpluginErrorService.instance !== null) {
64
+ ApplicationinsightsAngularpluginErrorService.instance.plugin = null;
65
+ if (self._angularCfg) {
66
+ if (self._angularCfg.errorServices && Array.isArray(self._angularCfg.errorServices)) {
67
+ arrForEach(self._angularCfg.errorServices, (errorService) => {
68
+ ApplicationinsightsAngularpluginErrorService.instance.removeErrorHandler(errorService);
69
+ });
70
+ }
71
+ }
72
+ }
73
+ if (self._eventSubscription) {
74
+ self._eventSubscription.unsubscribe();
75
+ self._eventSubscription = null;
76
+ }
77
+ self.analyticsPlugin = null;
78
+ self.propertiesPlugin = null;
79
+ self._angularCfg = null;
80
+ };
49
81
  }
50
82
  initialize(config, core, extensions, pluginChain) {
83
+ var _a, _b;
51
84
  super.initialize(config, core, extensions, pluginChain);
52
85
  const self = this;
53
86
  const ctx = self._getTelCtx();
54
87
  const extConfig = ctx.getExtCfg(self.identifier, { router: null, errorServices: null });
55
- arrForEach(extensions, ext => {
56
- const identifier = ext.identifier;
57
- if (identifier === 'ApplicationInsightsAnalytics') {
58
- self.analyticsPlugin = ext;
59
- if (ApplicationinsightsAngularpluginErrorService.instance !== null) {
60
- ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;
61
- if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {
62
- arrForEach(extConfig.errorServices, (errorService) => {
63
- ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);
64
- });
65
- }
88
+ self.propertiesPlugin = (_a = core.getPlugin(PropertiesPluginIdentifier)) === null || _a === void 0 ? void 0 : _a.plugin;
89
+ self.analyticsPlugin = (_b = core.getPlugin(AnalyticsPluginIdentifier)) === null || _b === void 0 ? void 0 : _b.plugin;
90
+ if (self.analyticsPlugin) {
91
+ if (ApplicationinsightsAngularpluginErrorService.instance !== null) {
92
+ ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;
93
+ if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {
94
+ arrForEach(extConfig.errorServices, (errorService) => {
95
+ ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);
96
+ });
66
97
  }
67
98
  }
68
- if (identifier === PropertiesPluginIdentifier) {
69
- self.propertiesPlugin = ext;
70
- }
71
- });
99
+ }
72
100
  if (extConfig.router) {
73
101
  let isPageInitialLoad = true;
74
102
  const pageViewTelemetry = {
75
103
  uri: extConfig.router.url
76
104
  };
77
105
  self.trackPageView(pageViewTelemetry);
78
- extConfig.router.events.subscribe(event => {
79
- if (event instanceof NavigationEnd) {
80
- // for page initial load, do not call trackPageView twice
81
- if (isPageInitialLoad) {
82
- isPageInitialLoad = false;
83
- return;
106
+ self._eventSubscription = extConfig.router.events.subscribe(event => {
107
+ if (self.isInitialized()) {
108
+ if (event instanceof NavigationEnd) {
109
+ // for page initial load, do not call trackPageView twice
110
+ if (isPageInitialLoad) {
111
+ isPageInitialLoad = false;
112
+ return;
113
+ }
114
+ const pvt = {
115
+ uri: extConfig.router.url,
116
+ properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0
117
+ };
118
+ self.trackPageView(pvt);
84
119
  }
85
- const pvt = {
86
- uri: extConfig.router.url,
87
- properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0
88
- };
89
- self.trackPageView(pvt);
90
120
  }
91
121
  });
92
122
  }
@@ -110,13 +140,11 @@ class AngularPlugin extends BaseTelemetryPlugin {
110
140
  self.analyticsPlugin.trackPageView(pageView);
111
141
  }
112
142
  else {
113
- self.diagLog().throwInternal(
114
- // eslint-disable-next-line max-len
115
- LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');
143
+ _throwInternal(self.diagLog(), 1 /* CRITICAL */, 64 /* TelemetryInitializerFailed */, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');
116
144
  }
117
145
  }
118
146
  }
119
- AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, deps: null, target: i0.ɵɵFactoryTarget.Component });
147
+ AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, deps: [], target: i0.ɵɵFactoryTarget.Component });
120
148
  AngularPlugin.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: AngularPlugin, selector: "lib-applicationinsights-angularplugin-js", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
121
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, decorators: [{
122
150
  type: Component,
@@ -125,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
125
153
  template: ``,
126
154
  styles: []
127
155
  }]
128
- }] });
156
+ }], ctorParameters: function () { return []; } });
129
157
 
130
158
  class ApplicationinsightsAngularpluginJsModule {
131
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-applicationinsights-angularplugin-js.mjs","sources":["../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-error.service.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.component.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.module.ts","../../../projects/applicationinsights-angularplugin-js/src/public-api.ts","../../../projects/applicationinsights-angularplugin-js/src/microsoft-applicationinsights-angularplugin-js.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { IAppInsights } from '@microsoft/applicationinsights-common';\r\nimport { arrForEach } from '@microsoft/applicationinsights-core-js';\r\nimport { IErrorService } from './IErrorService';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationinsightsAngularpluginErrorService implements IErrorService {\r\n public static instance: ApplicationinsightsAngularpluginErrorService = null;\r\n private analyticsPlugin: IAppInsights;\r\n private errorServices: IErrorService[] = [];\r\n\r\n constructor() {\r\n if (ApplicationinsightsAngularpluginErrorService.instance === null) {\r\n ApplicationinsightsAngularpluginErrorService.instance = this;\r\n }\r\n }\r\n\r\n public set plugin(analyticsPlugin: IAppInsights) {\r\n this.analyticsPlugin = analyticsPlugin;\r\n }\r\n\r\n public addErrorHandler(errorService: IErrorService): void {\r\n this.errorServices.push(errorService);\r\n }\r\n\r\n handleError(error: any): void {\r\n if (this.analyticsPlugin) {\r\n this.analyticsPlugin.trackException({ exception: error });\r\n }\r\n\r\n if (this.errorServices && this.errorServices.length > 0) {\r\n arrForEach(this.errorServices, errorService => {\r\n if (errorService.handleError && typeof errorService.handleError === 'function') {\r\n errorService.handleError(error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport {\r\n IConfig, IPageViewTelemetry, IAppInsights, PropertiesPluginIdentifier, Util\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore,\r\n ITelemetryPlugin, BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, _InternalMessageId, LoggingSeverity, getLocation\r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n// For types only\r\nimport * as properties from '@microsoft/applicationinsights-properties-js';\r\nimport { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';\r\nimport { IErrorService } from './IErrorService';\r\n\r\ninterface IAngularExtensionConfig {\r\n /**\r\n * Angular router for enabling Application Insights PageView tracking.\r\n */\r\n router?: Router;\r\n\r\n /**\r\n * Custom error service for global error handling.\r\n */\r\n errorServices?: IErrorService[];\r\n}\r\n\r\n@Component({\r\n selector: 'lib-applicationinsights-angularplugin-js',\r\n template: ``,\r\n styles: []\r\n})\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class AngularPlugin extends BaseTelemetryPlugin {\r\n public priority = 186;\r\n public identifier = 'AngularPlugin';\r\n\r\n private analyticsPlugin: IAppInsights;\r\n private propertiesPlugin: properties.PropertiesPlugin;\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n super.initialize(config, core, extensions, pluginChain);\r\n const self = this;\r\n const ctx = self._getTelCtx();\r\n const extConfig = ctx.getExtCfg<IAngularExtensionConfig>(self.identifier, { router: null, errorServices: null });\r\n arrForEach(extensions, ext => {\r\n const identifier = (ext as ITelemetryPlugin).identifier;\r\n if (identifier === 'ApplicationInsightsAnalytics') {\r\n self.analyticsPlugin = (ext as any) as IAppInsights;\r\n if (ApplicationinsightsAngularpluginErrorService.instance !== null) {\r\n ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;\r\n if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {\r\n arrForEach(extConfig.errorServices, (errorService: IErrorService) => {\r\n ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n if (identifier === PropertiesPluginIdentifier) {\r\n self.propertiesPlugin = (ext as any) as properties.PropertiesPlugin;\r\n }\r\n });\r\n\r\n if (extConfig.router) {\r\n let isPageInitialLoad = true;\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: extConfig.router.url\r\n };\r\n self.trackPageView(pageViewTelemetry);\r\n extConfig.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n // for page initial load, do not call trackPageView twice\r\n if (isPageInitialLoad) {\r\n isPageInitialLoad = false;\r\n return;\r\n }\r\n const pvt: IPageViewTelemetry = {\r\n uri: extConfig.router.url,\r\n properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0\r\n };\r\n self.trackPageView(pvt);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Add Part A fields to the event\r\n *\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n const self = this;\r\n\r\n if (self.analyticsPlugin) {\r\n const location = getLocation();\r\n if (self.propertiesPlugin && self.propertiesPlugin.context && self.propertiesPlugin.context.telemetryTrace) {\r\n self.propertiesPlugin.context.telemetryTrace.traceID = Util.generateW3CId();\r\n self.propertiesPlugin.context.telemetryTrace.name = location && location.pathname || '_unknown_';\r\n }\r\n self.analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n self.diagLog().throwInternal(\r\n // eslint-disable-next-line max-len\r\n LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AngularPlugin } from './applicationinsights-angularplugin-js.component';\r\nimport { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';\r\n\r\n@NgModule({\r\n declarations: [AngularPlugin],\r\n imports: [\r\n ],\r\n exports: [AngularPlugin],\r\n providers: [\r\n ApplicationinsightsAngularpluginErrorService\r\n ]\r\n})\r\nexport class ApplicationinsightsAngularpluginJsModule { }\r\n","/*\r\n * Public API Surface of applicationinsights-angularplugin-js\r\n */\r\n\r\nexport * from './lib/applicationinsights-angularplugin-js.component';\r\nexport * from './lib/applicationinsights-angularplugin-js.module';\r\nexport * from './lib/applicationinsights-angularplugin-error.service';\r\nexport * from './lib/IErrorService';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"microsoft-applicationinsights-angularplugin-js.mjs","sources":["../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-error.service.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.component.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.module.ts","../../../projects/applicationinsights-angularplugin-js/src/public-api.ts","../../../projects/applicationinsights-angularplugin-js/src/microsoft-applicationinsights-angularplugin-js.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { IAppInsights } from '@microsoft/applicationinsights-common';\r\nimport { arrForEach, isFunction } from '@microsoft/applicationinsights-core-js';\r\nimport { IErrorService } from './IErrorService';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationinsightsAngularpluginErrorService implements IErrorService {\r\n public static instance: ApplicationinsightsAngularpluginErrorService = null;\r\n private analyticsPlugin: IAppInsights;\r\n private errorServices: IErrorService[] = [];\r\n\r\n constructor() {\r\n if (ApplicationinsightsAngularpluginErrorService.instance === null) {\r\n ApplicationinsightsAngularpluginErrorService.instance = this;\r\n }\r\n }\r\n\r\n public set plugin(analyticsPlugin: IAppInsights) {\r\n this.analyticsPlugin = analyticsPlugin;\r\n }\r\n\r\n public addErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n this.errorServices.push(errorService);\r\n }\r\n }\r\n\r\n public removeErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n const idx = this.errorServices.indexOf(errorService);\r\n if (idx !== -1) {\r\n this.errorServices.splice(idx, 1);\r\n }\r\n }\r\n }\r\n\r\n handleError(error: any): void {\r\n if (this.analyticsPlugin) {\r\n this.analyticsPlugin.trackException({ exception: error });\r\n }\r\n\r\n if (this.errorServices && this.errorServices.length > 0) {\r\n arrForEach(this.errorServices, errorService => {\r\n if (isFunction(errorService.handleError)) {\r\n errorService.handleError(error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport {\r\n IConfig, IPageViewTelemetry, IAppInsights, PropertiesPluginIdentifier, Util, AnalyticsPluginIdentifier\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore,\r\n BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, getLocation, _throwInternal, eLoggingSeverity, _eInternalMessageId, IProcessTelemetryUnloadContext, ITelemetryUnloadState\r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n// For types only\r\nimport * as properties from '@microsoft/applicationinsights-properties-js';\r\nimport { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';\r\nimport { IErrorService } from './IErrorService';\r\nimport { Subscription } from 'rxjs';\r\nimport { AnalyticsPlugin } from '@microsoft/applicationinsights-analytics-js';\r\n\r\ninterface IAngularExtensionConfig {\r\n /**\r\n * Angular router for enabling Application Insights PageView tracking.\r\n */\r\n router?: Router;\r\n\r\n /**\r\n * Custom error service for global error handling.\r\n */\r\n errorServices?: IErrorService[];\r\n}\r\n\r\n@Component({\r\n selector: 'lib-applicationinsights-angularplugin-js',\r\n template: ``,\r\n styles: []\r\n})\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class AngularPlugin extends BaseTelemetryPlugin {\r\n public priority = 186;\r\n public identifier = 'AngularPlugin';\r\n\r\n private analyticsPlugin: AnalyticsPlugin;\r\n private propertiesPlugin: properties.PropertiesPlugin;\r\n private _angularCfg: IAngularExtensionConfig = null;\r\n private _eventSubscription: Subscription = null;\r\n\r\n\r\n constructor() {\r\n super();\r\n let self = this;\r\n\r\n self._doTeardown = (unloadCtx?: IProcessTelemetryUnloadContext, unloadState?: ITelemetryUnloadState, asyncCallback?: () => void): void | boolean => {\r\n if (this.analyticsPlugin && ApplicationinsightsAngularpluginErrorService.instance !== null) {\r\n ApplicationinsightsAngularpluginErrorService.instance.plugin = null;\r\n if (self._angularCfg) {\r\n if (self._angularCfg.errorServices && Array.isArray(self._angularCfg.errorServices)) {\r\n arrForEach(self._angularCfg.errorServices, (errorService: IErrorService) => {\r\n ApplicationinsightsAngularpluginErrorService.instance.removeErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (self._eventSubscription) {\r\n self._eventSubscription.unsubscribe();\r\n self._eventSubscription = null;\r\n }\r\n\r\n self.analyticsPlugin = null;\r\n self.propertiesPlugin = null;\r\n self._angularCfg = null;\r\n }\r\n }\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n super.initialize(config, core, extensions, pluginChain);\r\n const self = this;\r\n const ctx = self._getTelCtx();\r\n const extConfig = ctx.getExtCfg<IAngularExtensionConfig>(self.identifier, { router: null, errorServices: null });\r\n\r\n self.propertiesPlugin = core.getPlugin<properties.PropertiesPlugin>(PropertiesPluginIdentifier)?.plugin;\r\n self.analyticsPlugin = core.getPlugin<AnalyticsPlugin>(AnalyticsPluginIdentifier)?.plugin;\r\n if (self.analyticsPlugin) {\r\n if (ApplicationinsightsAngularpluginErrorService.instance !== null) {\r\n ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;\r\n if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {\r\n arrForEach(extConfig.errorServices, (errorService: IErrorService) => {\r\n ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (extConfig.router) {\r\n let isPageInitialLoad = true;\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: extConfig.router.url\r\n };\r\n self.trackPageView(pageViewTelemetry);\r\n self._eventSubscription = extConfig.router.events.subscribe(event => {\r\n if (self.isInitialized()) {\r\n if (event instanceof NavigationEnd) {\r\n // for page initial load, do not call trackPageView twice\r\n if (isPageInitialLoad) {\r\n isPageInitialLoad = false;\r\n return;\r\n }\r\n const pvt: IPageViewTelemetry = {\r\n uri: extConfig.router.url,\r\n properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0\r\n };\r\n self.trackPageView(pvt);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Add Part A fields to the event\r\n *\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n const self = this;\r\n\r\n if (self.analyticsPlugin) {\r\n const location = getLocation();\r\n if (self.propertiesPlugin && self.propertiesPlugin.context && self.propertiesPlugin.context.telemetryTrace) {\r\n self.propertiesPlugin.context.telemetryTrace.traceID = Util.generateW3CId();\r\n self.propertiesPlugin.context.telemetryTrace.name = location && location.pathname || '_unknown_';\r\n }\r\n self.analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n _throwInternal(self.diagLog(),\r\n // eslint-disable-next-line max-len\r\n eLoggingSeverity.CRITICAL, _eInternalMessageId.TelemetryInitializerFailed, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AngularPlugin } from './applicationinsights-angularplugin-js.component';\r\nimport { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';\r\n\r\n@NgModule({\r\n declarations: [AngularPlugin],\r\n imports: [\r\n ],\r\n exports: [AngularPlugin],\r\n providers: [\r\n ApplicationinsightsAngularpluginErrorService\r\n ]\r\n})\r\nexport class ApplicationinsightsAngularpluginJsModule { }\r\n","/*\r\n * Public API Surface of applicationinsights-angularplugin-js\r\n */\r\n\r\nexport * from './lib/applicationinsights-angularplugin-js.component';\r\nexport * from './lib/applicationinsights-angularplugin-js.module';\r\nexport * from './lib/applicationinsights-angularplugin-error.service';\r\nexport * from './lib/IErrorService';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, NgModule } from '@angular/core';
3
- import { PropertiesPluginIdentifier, Util } from '@microsoft/applicationinsights-common';
4
- import { arrForEach, BaseTelemetryPlugin, getLocation, LoggingSeverity, _InternalMessageId } from '@microsoft/applicationinsights-core-js';
3
+ import { PropertiesPluginIdentifier, AnalyticsPluginIdentifier, Util } from '@microsoft/applicationinsights-common';
4
+ import { isFunction, arrForEach, BaseTelemetryPlugin, getLocation, _throwInternal } from '@microsoft/applicationinsights-core-js';
5
5
  import { NavigationEnd } from '@angular/router';
6
6
 
7
7
  class ApplicationinsightsAngularpluginErrorService {
@@ -15,7 +15,17 @@ class ApplicationinsightsAngularpluginErrorService {
15
15
  this.analyticsPlugin = analyticsPlugin;
16
16
  }
17
17
  addErrorHandler(errorService) {
18
- this.errorServices.push(errorService);
18
+ if (errorService && isFunction(errorService.handleError)) {
19
+ this.errorServices.push(errorService);
20
+ }
21
+ }
22
+ removeErrorHandler(errorService) {
23
+ if (errorService && isFunction(errorService.handleError)) {
24
+ const idx = this.errorServices.indexOf(errorService);
25
+ if (idx !== -1) {
26
+ this.errorServices.splice(idx, 1);
27
+ }
28
+ }
19
29
  }
20
30
  handleError(error) {
21
31
  if (this.analyticsPlugin) {
@@ -23,7 +33,7 @@ class ApplicationinsightsAngularpluginErrorService {
23
33
  }
24
34
  if (this.errorServices && this.errorServices.length > 0) {
25
35
  arrForEach(this.errorServices, errorService => {
26
- if (errorService.handleError && typeof errorService.handleError === 'function') {
36
+ if (isFunction(errorService.handleError)) {
27
37
  errorService.handleError(error);
28
38
  }
29
39
  });
@@ -43,50 +53,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
43
53
  // eslint-disable-next-line @angular-eslint/component-class-suffix
44
54
  class AngularPlugin extends BaseTelemetryPlugin {
45
55
  constructor() {
46
- super(...arguments);
56
+ super();
47
57
  this.priority = 186;
48
58
  this.identifier = 'AngularPlugin';
59
+ this._angularCfg = null;
60
+ this._eventSubscription = null;
61
+ let self = this;
62
+ self._doTeardown = (unloadCtx, unloadState, asyncCallback) => {
63
+ if (this.analyticsPlugin && ApplicationinsightsAngularpluginErrorService.instance !== null) {
64
+ ApplicationinsightsAngularpluginErrorService.instance.plugin = null;
65
+ if (self._angularCfg) {
66
+ if (self._angularCfg.errorServices && Array.isArray(self._angularCfg.errorServices)) {
67
+ arrForEach(self._angularCfg.errorServices, (errorService) => {
68
+ ApplicationinsightsAngularpluginErrorService.instance.removeErrorHandler(errorService);
69
+ });
70
+ }
71
+ }
72
+ }
73
+ if (self._eventSubscription) {
74
+ self._eventSubscription.unsubscribe();
75
+ self._eventSubscription = null;
76
+ }
77
+ self.analyticsPlugin = null;
78
+ self.propertiesPlugin = null;
79
+ self._angularCfg = null;
80
+ };
49
81
  }
50
82
  initialize(config, core, extensions, pluginChain) {
51
83
  super.initialize(config, core, extensions, pluginChain);
52
84
  const self = this;
53
85
  const ctx = self._getTelCtx();
54
86
  const extConfig = ctx.getExtCfg(self.identifier, { router: null, errorServices: null });
55
- arrForEach(extensions, ext => {
56
- const identifier = ext.identifier;
57
- if (identifier === 'ApplicationInsightsAnalytics') {
58
- self.analyticsPlugin = ext;
59
- if (ApplicationinsightsAngularpluginErrorService.instance !== null) {
60
- ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;
61
- if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {
62
- arrForEach(extConfig.errorServices, (errorService) => {
63
- ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);
64
- });
65
- }
87
+ self.propertiesPlugin = core.getPlugin(PropertiesPluginIdentifier)?.plugin;
88
+ self.analyticsPlugin = core.getPlugin(AnalyticsPluginIdentifier)?.plugin;
89
+ if (self.analyticsPlugin) {
90
+ if (ApplicationinsightsAngularpluginErrorService.instance !== null) {
91
+ ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;
92
+ if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {
93
+ arrForEach(extConfig.errorServices, (errorService) => {
94
+ ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);
95
+ });
66
96
  }
67
97
  }
68
- if (identifier === PropertiesPluginIdentifier) {
69
- self.propertiesPlugin = ext;
70
- }
71
- });
98
+ }
72
99
  if (extConfig.router) {
73
100
  let isPageInitialLoad = true;
74
101
  const pageViewTelemetry = {
75
102
  uri: extConfig.router.url
76
103
  };
77
104
  self.trackPageView(pageViewTelemetry);
78
- extConfig.router.events.subscribe(event => {
79
- if (event instanceof NavigationEnd) {
80
- // for page initial load, do not call trackPageView twice
81
- if (isPageInitialLoad) {
82
- isPageInitialLoad = false;
83
- return;
105
+ self._eventSubscription = extConfig.router.events.subscribe(event => {
106
+ if (self.isInitialized()) {
107
+ if (event instanceof NavigationEnd) {
108
+ // for page initial load, do not call trackPageView twice
109
+ if (isPageInitialLoad) {
110
+ isPageInitialLoad = false;
111
+ return;
112
+ }
113
+ const pvt = {
114
+ uri: extConfig.router.url,
115
+ properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0
116
+ };
117
+ self.trackPageView(pvt);
84
118
  }
85
- const pvt = {
86
- uri: extConfig.router.url,
87
- properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0
88
- };
89
- self.trackPageView(pvt);
90
119
  }
91
120
  });
92
121
  }
@@ -110,13 +139,11 @@ class AngularPlugin extends BaseTelemetryPlugin {
110
139
  self.analyticsPlugin.trackPageView(pageView);
111
140
  }
112
141
  else {
113
- self.diagLog().throwInternal(
114
- // eslint-disable-next-line max-len
115
- LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');
142
+ _throwInternal(self.diagLog(), 1 /* CRITICAL */, 64 /* TelemetryInitializerFailed */, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');
116
143
  }
117
144
  }
118
145
  }
119
- AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, deps: null, target: i0.ɵɵFactoryTarget.Component });
146
+ AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, deps: [], target: i0.ɵɵFactoryTarget.Component });
120
147
  AngularPlugin.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: AngularPlugin, selector: "lib-applicationinsights-angularplugin-js", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
121
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AngularPlugin, decorators: [{
122
149
  type: Component,
@@ -125,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
125
152
  template: ``,
126
153
  styles: []
127
154
  }]
128
- }] });
155
+ }], ctorParameters: function () { return []; } });
129
156
 
130
157
  class ApplicationinsightsAngularpluginJsModule {
131
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-applicationinsights-angularplugin-js.mjs","sources":["../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-error.service.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.component.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.module.ts","../../../projects/applicationinsights-angularplugin-js/src/public-api.ts","../../../projects/applicationinsights-angularplugin-js/src/microsoft-applicationinsights-angularplugin-js.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { IAppInsights } from '@microsoft/applicationinsights-common';\r\nimport { arrForEach } from '@microsoft/applicationinsights-core-js';\r\nimport { IErrorService } from './IErrorService';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationinsightsAngularpluginErrorService implements IErrorService {\r\n public static instance: ApplicationinsightsAngularpluginErrorService = null;\r\n private analyticsPlugin: IAppInsights;\r\n private errorServices: IErrorService[] = [];\r\n\r\n constructor() {\r\n if (ApplicationinsightsAngularpluginErrorService.instance === null) {\r\n ApplicationinsightsAngularpluginErrorService.instance = this;\r\n }\r\n }\r\n\r\n public set plugin(analyticsPlugin: IAppInsights) {\r\n this.analyticsPlugin = analyticsPlugin;\r\n }\r\n\r\n public addErrorHandler(errorService: IErrorService): void {\r\n this.errorServices.push(errorService);\r\n }\r\n\r\n handleError(error: any): void {\r\n if (this.analyticsPlugin) {\r\n this.analyticsPlugin.trackException({ exception: error });\r\n }\r\n\r\n if (this.errorServices && this.errorServices.length > 0) {\r\n arrForEach(this.errorServices, errorService => {\r\n if (errorService.handleError && typeof errorService.handleError === 'function') {\r\n errorService.handleError(error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport {\r\n IConfig, IPageViewTelemetry, IAppInsights, PropertiesPluginIdentifier, Util\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore,\r\n ITelemetryPlugin, BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, _InternalMessageId, LoggingSeverity, getLocation\r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n// For types only\r\nimport * as properties from '@microsoft/applicationinsights-properties-js';\r\nimport { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';\r\nimport { IErrorService } from './IErrorService';\r\n\r\ninterface IAngularExtensionConfig {\r\n /**\r\n * Angular router for enabling Application Insights PageView tracking.\r\n */\r\n router?: Router;\r\n\r\n /**\r\n * Custom error service for global error handling.\r\n */\r\n errorServices?: IErrorService[];\r\n}\r\n\r\n@Component({\r\n selector: 'lib-applicationinsights-angularplugin-js',\r\n template: ``,\r\n styles: []\r\n})\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class AngularPlugin extends BaseTelemetryPlugin {\r\n public priority = 186;\r\n public identifier = 'AngularPlugin';\r\n\r\n private analyticsPlugin: IAppInsights;\r\n private propertiesPlugin: properties.PropertiesPlugin;\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n super.initialize(config, core, extensions, pluginChain);\r\n const self = this;\r\n const ctx = self._getTelCtx();\r\n const extConfig = ctx.getExtCfg<IAngularExtensionConfig>(self.identifier, { router: null, errorServices: null });\r\n arrForEach(extensions, ext => {\r\n const identifier = (ext as ITelemetryPlugin).identifier;\r\n if (identifier === 'ApplicationInsightsAnalytics') {\r\n self.analyticsPlugin = (ext as any) as IAppInsights;\r\n if (ApplicationinsightsAngularpluginErrorService.instance !== null) {\r\n ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;\r\n if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {\r\n arrForEach(extConfig.errorServices, (errorService: IErrorService) => {\r\n ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n if (identifier === PropertiesPluginIdentifier) {\r\n self.propertiesPlugin = (ext as any) as properties.PropertiesPlugin;\r\n }\r\n });\r\n\r\n if (extConfig.router) {\r\n let isPageInitialLoad = true;\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: extConfig.router.url\r\n };\r\n self.trackPageView(pageViewTelemetry);\r\n extConfig.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n // for page initial load, do not call trackPageView twice\r\n if (isPageInitialLoad) {\r\n isPageInitialLoad = false;\r\n return;\r\n }\r\n const pvt: IPageViewTelemetry = {\r\n uri: extConfig.router.url,\r\n properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0\r\n };\r\n self.trackPageView(pvt);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Add Part A fields to the event\r\n *\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n const self = this;\r\n\r\n if (self.analyticsPlugin) {\r\n const location = getLocation();\r\n if (self.propertiesPlugin && self.propertiesPlugin.context && self.propertiesPlugin.context.telemetryTrace) {\r\n self.propertiesPlugin.context.telemetryTrace.traceID = Util.generateW3CId();\r\n self.propertiesPlugin.context.telemetryTrace.name = location && location.pathname || '_unknown_';\r\n }\r\n self.analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n self.diagLog().throwInternal(\r\n // eslint-disable-next-line max-len\r\n LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AngularPlugin } from './applicationinsights-angularplugin-js.component';\r\nimport { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';\r\n\r\n@NgModule({\r\n declarations: [AngularPlugin],\r\n imports: [\r\n ],\r\n exports: [AngularPlugin],\r\n providers: [\r\n ApplicationinsightsAngularpluginErrorService\r\n ]\r\n})\r\nexport class ApplicationinsightsAngularpluginJsModule { }\r\n","/*\r\n * Public API Surface of applicationinsights-angularplugin-js\r\n */\r\n\r\nexport * from './lib/applicationinsights-angularplugin-js.component';\r\nexport * from './lib/applicationinsights-angularplugin-js.module';\r\nexport * from './lib/applicationinsights-angularplugin-error.service';\r\nexport * from './lib/IErrorService';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"microsoft-applicationinsights-angularplugin-js.mjs","sources":["../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-error.service.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.component.ts","../../../projects/applicationinsights-angularplugin-js/src/lib/applicationinsights-angularplugin-js.module.ts","../../../projects/applicationinsights-angularplugin-js/src/public-api.ts","../../../projects/applicationinsights-angularplugin-js/src/microsoft-applicationinsights-angularplugin-js.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { IAppInsights } from '@microsoft/applicationinsights-common';\r\nimport { arrForEach, isFunction } from '@microsoft/applicationinsights-core-js';\r\nimport { IErrorService } from './IErrorService';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationinsightsAngularpluginErrorService implements IErrorService {\r\n public static instance: ApplicationinsightsAngularpluginErrorService = null;\r\n private analyticsPlugin: IAppInsights;\r\n private errorServices: IErrorService[] = [];\r\n\r\n constructor() {\r\n if (ApplicationinsightsAngularpluginErrorService.instance === null) {\r\n ApplicationinsightsAngularpluginErrorService.instance = this;\r\n }\r\n }\r\n\r\n public set plugin(analyticsPlugin: IAppInsights) {\r\n this.analyticsPlugin = analyticsPlugin;\r\n }\r\n\r\n public addErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n this.errorServices.push(errorService);\r\n }\r\n }\r\n\r\n public removeErrorHandler(errorService: IErrorService): void {\r\n if (errorService && isFunction(errorService.handleError)) {\r\n const idx = this.errorServices.indexOf(errorService);\r\n if (idx !== -1) {\r\n this.errorServices.splice(idx, 1);\r\n }\r\n }\r\n }\r\n\r\n handleError(error: any): void {\r\n if (this.analyticsPlugin) {\r\n this.analyticsPlugin.trackException({ exception: error });\r\n }\r\n\r\n if (this.errorServices && this.errorServices.length > 0) {\r\n arrForEach(this.errorServices, errorService => {\r\n if (isFunction(errorService.handleError)) {\r\n errorService.handleError(error);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport {\r\n IConfig, IPageViewTelemetry, IAppInsights, PropertiesPluginIdentifier, Util, AnalyticsPluginIdentifier\r\n} from '@microsoft/applicationinsights-common';\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore,\r\n BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, getLocation, _throwInternal, eLoggingSeverity, _eInternalMessageId, IProcessTelemetryUnloadContext, ITelemetryUnloadState\r\n} from '@microsoft/applicationinsights-core-js';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n// For types only\r\nimport * as properties from '@microsoft/applicationinsights-properties-js';\r\nimport { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';\r\nimport { IErrorService } from './IErrorService';\r\nimport { Subscription } from 'rxjs';\r\nimport { AnalyticsPlugin } from '@microsoft/applicationinsights-analytics-js';\r\n\r\ninterface IAngularExtensionConfig {\r\n /**\r\n * Angular router for enabling Application Insights PageView tracking.\r\n */\r\n router?: Router;\r\n\r\n /**\r\n * Custom error service for global error handling.\r\n */\r\n errorServices?: IErrorService[];\r\n}\r\n\r\n@Component({\r\n selector: 'lib-applicationinsights-angularplugin-js',\r\n template: ``,\r\n styles: []\r\n})\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class AngularPlugin extends BaseTelemetryPlugin {\r\n public priority = 186;\r\n public identifier = 'AngularPlugin';\r\n\r\n private analyticsPlugin: AnalyticsPlugin;\r\n private propertiesPlugin: properties.PropertiesPlugin;\r\n private _angularCfg: IAngularExtensionConfig = null;\r\n private _eventSubscription: Subscription = null;\r\n\r\n\r\n constructor() {\r\n super();\r\n let self = this;\r\n\r\n self._doTeardown = (unloadCtx?: IProcessTelemetryUnloadContext, unloadState?: ITelemetryUnloadState, asyncCallback?: () => void): void | boolean => {\r\n if (this.analyticsPlugin && ApplicationinsightsAngularpluginErrorService.instance !== null) {\r\n ApplicationinsightsAngularpluginErrorService.instance.plugin = null;\r\n if (self._angularCfg) {\r\n if (self._angularCfg.errorServices && Array.isArray(self._angularCfg.errorServices)) {\r\n arrForEach(self._angularCfg.errorServices, (errorService: IErrorService) => {\r\n ApplicationinsightsAngularpluginErrorService.instance.removeErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (self._eventSubscription) {\r\n self._eventSubscription.unsubscribe();\r\n self._eventSubscription = null;\r\n }\r\n\r\n self.analyticsPlugin = null;\r\n self.propertiesPlugin = null;\r\n self._angularCfg = null;\r\n }\r\n }\r\n\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n super.initialize(config, core, extensions, pluginChain);\r\n const self = this;\r\n const ctx = self._getTelCtx();\r\n const extConfig = ctx.getExtCfg<IAngularExtensionConfig>(self.identifier, { router: null, errorServices: null });\r\n\r\n self.propertiesPlugin = core.getPlugin<properties.PropertiesPlugin>(PropertiesPluginIdentifier)?.plugin;\r\n self.analyticsPlugin = core.getPlugin<AnalyticsPlugin>(AnalyticsPluginIdentifier)?.plugin;\r\n if (self.analyticsPlugin) {\r\n if (ApplicationinsightsAngularpluginErrorService.instance !== null) {\r\n ApplicationinsightsAngularpluginErrorService.instance.plugin = self.analyticsPlugin;\r\n if (extConfig.errorServices && Array.isArray(extConfig.errorServices)) {\r\n arrForEach(extConfig.errorServices, (errorService: IErrorService) => {\r\n ApplicationinsightsAngularpluginErrorService.instance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (extConfig.router) {\r\n let isPageInitialLoad = true;\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: extConfig.router.url\r\n };\r\n self.trackPageView(pageViewTelemetry);\r\n self._eventSubscription = extConfig.router.events.subscribe(event => {\r\n if (self.isInitialized()) {\r\n if (event instanceof NavigationEnd) {\r\n // for page initial load, do not call trackPageView twice\r\n if (isPageInitialLoad) {\r\n isPageInitialLoad = false;\r\n return;\r\n }\r\n const pvt: IPageViewTelemetry = {\r\n uri: extConfig.router.url,\r\n properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0\r\n };\r\n self.trackPageView(pvt);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Add Part A fields to the event\r\n *\r\n * @param event The event that needs to be processed\r\n */\r\n processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {\r\n this.processNext(event, itemCtx);\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n const self = this;\r\n\r\n if (self.analyticsPlugin) {\r\n const location = getLocation();\r\n if (self.propertiesPlugin && self.propertiesPlugin.context && self.propertiesPlugin.context.telemetryTrace) {\r\n self.propertiesPlugin.context.telemetryTrace.traceID = Util.generateW3CId();\r\n self.propertiesPlugin.context.telemetryTrace.name = location && location.pathname || '_unknown_';\r\n }\r\n self.analyticsPlugin.trackPageView(pageView);\r\n } else {\r\n _throwInternal(self.diagLog(),\r\n // eslint-disable-next-line max-len\r\n eLoggingSeverity.CRITICAL, _eInternalMessageId.TelemetryInitializerFailed, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AngularPlugin } from './applicationinsights-angularplugin-js.component';\r\nimport { ApplicationinsightsAngularpluginErrorService } from './applicationinsights-angularplugin-error.service';\r\n\r\n@NgModule({\r\n declarations: [AngularPlugin],\r\n imports: [\r\n ],\r\n exports: [AngularPlugin],\r\n providers: [\r\n ApplicationinsightsAngularpluginErrorService\r\n ]\r\n})\r\nexport class ApplicationinsightsAngularpluginJsModule { }\r\n","/*\r\n * Public API Surface of applicationinsights-angularplugin-js\r\n */\r\n\r\nexport * from './lib/applicationinsights-angularplugin-js.component';\r\nexport * from './lib/applicationinsights-angularplugin-js.module';\r\nexport * from './lib/applicationinsights-angularplugin-error.service';\r\nexport * from './lib/IErrorService';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAQa,4CAA4C;IAKrD;QAFQ,kBAAa,GAAoB,EAAE,CAAC;QAGxC,IAAI,4CAA4C,CAAC,QAAQ,KAAK,IAAI,EAAE;YAChE,4CAA4C,CAAC,QAAQ,GAAG,IAAI,CAAC;SAChE;KACJ;IAED,IAAW,MAAM,CAAC,eAA6B;QAC3C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;KAC1C;IAEM,eAAe,CAAC,YAA2B;QAC9C,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACzC;KACJ;IAEM,kBAAkB,CAAC,YAA2B;QACjD,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACrC;SACJ;KACJ;IAED,WAAW,CAAC,KAAU;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACrD,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY;gBACvC,IAAI,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;oBACtC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBACnC;aACJ,CAAC,CAAC;SACN;KACJ;;AAzCa,qDAAQ,GAAiD,IAAK,CAAA;yIADnE,4CAA4C;6IAA5C,4CAA4C,cAFzC,MAAM;2FAET,4CAA4C;kBAHxD,UAAU;mBAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;;;AC2BD;MACa,aAAc,SAAQ,mBAAmB;IAUlD;QACI,KAAK,EAAE,CAAC;QAVL,aAAQ,GAAG,GAAG,CAAC;QACf,eAAU,GAAG,eAAe,CAAC;QAI5B,gBAAW,GAA4B,IAAI,CAAC;QAC5C,uBAAkB,GAAiB,IAAI,CAAC;QAK5C,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,IAAI,CAAC,WAAW,GAAG,CAAC,SAA0C,EAAE,WAAmC,EAAE,aAA0B;YAC3H,IAAI,IAAI,CAAC,eAAe,IAAI,4CAA4C,CAAC,QAAQ,KAAK,IAAI,EAAE;gBACxF,4CAA4C,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpE,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;wBACjF,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,YAA2B;4BACnE,4CAA4C,CAAC,QAAQ,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;yBAC1F,CAAC,CAAC;qBACN;iBACJ;aACJ;YAED,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;gBACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;aAClC;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B,CAAA;KACJ;IAED,UAAU,CAAC,MAAgC,EAAE,IAAsB,EAAE,UAAqB,EAAE,WAAmC;QAC3H,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAA0B,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAA8B,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACxG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAkB,yBAAyB,CAAC,EAAE,MAAM,CAAC;QAC1F,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,4CAA4C,CAAC,QAAQ,KAAK,IAAI,EAAE;gBAChE,4CAA4C,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;gBACpF,IAAI,SAAS,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;oBACnE,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,YAA2B;wBAC5D,4CAA4C,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;qBACvF,CAAC,CAAC;iBACN;aACJ;SACJ;QAED,IAAI,SAAS,CAAC,MAAM,EAAE;YAClB,IAAI,iBAAiB,GAAG,IAAI,CAAC;YAC7B,MAAM,iBAAiB,GAAuB;gBAC1C,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG;aAC5B,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK;gBAC7D,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;oBACtB,IAAI,KAAK,YAAY,aAAa,EAAE;;wBAEhC,IAAI,iBAAiB,EAAE;4BACnB,iBAAiB,GAAG,KAAK,CAAC;4BAC1B,OAAO;yBACV;wBACD,MAAM,GAAG,GAAuB;4BAC5B,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG;4BACzB,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;yBAC9B,CAAC;wBACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;qBAC3B;iBACJ;aACJ,CAAC,CAAC;SACN;KACJ;;;;;;IAOD,gBAAgB,CAAC,KAAqB,EAAE,OAAkC;QACtE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACpC;IAED,aAAa,CAAC,QAA4B;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE;gBACxG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC5E,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,WAAW,CAAC;aACpG;YACD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SAChD;aAAM;YACH,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,yDAEkD,gFAAgF,CAAC,CAAC;SACpK;KACJ;;0GAzGQ,aAAa;8FAAb,aAAa,uGAJZ,EAAE;2FAIH,aAAa;kBANzB,SAAS;mBAAC;oBACP,QAAQ,EAAE,0CAA0C;oBACpD,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE,EAAE;iBACb;;;MCpBY,wCAAwC;;qIAAxC,wCAAwC;sIAAxC,wCAAwC,iBARlC,aAAa,aAGlB,aAAa;sIAKd,wCAAwC,aAJtC;QACP,4CAA4C;KAC/C,YALQ,EACR;2FAMQ,wCAAwC;kBATpD,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,aAAa,CAAC;oBAC7B,OAAO,EAAE,EACR;oBACD,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACP,4CAA4C;qBAC/C;iBACJ;;;ACZD;;;;ACAA;;;;;;"}
@@ -8,6 +8,7 @@ export declare class ApplicationinsightsAngularpluginErrorService implements IEr
8
8
  constructor();
9
9
  set plugin(analyticsPlugin: IAppInsights);
10
10
  addErrorHandler(errorService: IErrorService): void;
11
+ removeErrorHandler(errorService: IErrorService): void;
11
12
  handleError(error: any): void;
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<ApplicationinsightsAngularpluginErrorService, never>;
13
14
  static ɵprov: i0.ɵɵInjectableDeclaration<ApplicationinsightsAngularpluginErrorService>;
@@ -6,6 +6,9 @@ export declare class AngularPlugin extends BaseTelemetryPlugin {
6
6
  identifier: string;
7
7
  private analyticsPlugin;
8
8
  private propertiesPlugin;
9
+ private _angularCfg;
10
+ private _eventSubscription;
11
+ constructor();
9
12
  initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain): void;
10
13
  /**
11
14
  * Add Part A fields to the event
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@microsoft/applicationinsights-angularplugin-js",
3
- "version": "2.8.0",
3
+ "version": "2.9.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.3",
6
6
  "@angular/core": "^13.0.3"
7
7
  },
8
8
  "dependencies": {
9
- "@microsoft/applicationinsights-common": "^2.7.3",
10
- "@microsoft/applicationinsights-core-js": "^2.7.3",
11
- "@microsoft/applicationinsights-properties-js": "^2.7.3",
9
+ "@microsoft/applicationinsights-common": "~2.8.2",
10
+ "@microsoft/applicationinsights-core-js": "~2.8.2",
11
+ "@microsoft/applicationinsights-properties-js": "~2.8.2",
12
12
  "@microsoft/applicationinsights-rollup-es3": "^1.1.3",
13
13
  "@microsoft/applicationinsights-shims": "^1.0.3",
14
14
  "tslib": "^2.0.0"