@microsoft/applicationinsights-angularplugin-js 15.1.1 → 15.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/IErrorService.mjs +2 -0
- package/esm2020/lib/applicationinsights-angularplugin-error.service.mjs +52 -0
- package/esm2020/lib/applicationinsights-angularplugin-js.component.mjs +152 -0
- package/esm2020/lib/applicationinsights-angularplugin-js.module.mjs +23 -0
- package/esm2020/microsoft-applicationinsights-angularplugin-js.mjs +5 -0
- package/esm2020/public-api.mjs +8 -0
- package/fesm2015/microsoft-applicationinsights-angularplugin-js.mjs +231 -0
- package/fesm2015/microsoft-applicationinsights-angularplugin-js.mjs.map +1 -0
- package/fesm2020/microsoft-applicationinsights-angularplugin-js.mjs +230 -0
- package/fesm2020/microsoft-applicationinsights-angularplugin-js.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/{src/lib/IErrorService.ts → lib/IErrorService.d.ts} +0 -1
- package/lib/applicationinsights-angularplugin-error.service.d.ts +16 -0
- package/lib/applicationinsights-angularplugin-js.component.d.ts +20 -0
- package/lib/applicationinsights-angularplugin-js.module.d.ts +7 -0
- package/package.json +47 -30
- package/{src/public-api.ts → public-api.d.ts} +0 -4
- package/.eslintrc.json +0 -74
- package/NOTICE +0 -17
- package/PRIVACY +0 -3
- package/SECURITY.md +0 -41
- package/SUPPORT.md +0 -14
- package/karma.conf.js +0 -43
- package/ng-package.json +0 -15
- package/src/lib/applicationininsights-angularplugin-multiple-instace.spec.ts +0 -245
- package/src/lib/applicationinsights-angularplugin-error.service.spec.ts +0 -113
- package/src/lib/applicationinsights-angularplugin-error.service.ts +0 -57
- package/src/lib/applicationinsights-angularplugin-js.component.spec.ts +0 -158
- package/src/lib/applicationinsights-angularplugin-js.component.ts +0 -203
- package/src/lib/applicationinsights-angularplugin-js.module.ts +0 -14
- package/src/test.ts +0 -13
- package/tsconfig.lib.json +0 -30
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUVycm9yU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL0lFcnJvclNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9ySGFuZGxlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElFcnJvclNlcnZpY2UgZXh0ZW5kcyBFcnJvckhhbmRsZXIge1xyXG4gICAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQ7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { arrForEach, isFunction } from "@microsoft/applicationinsights-core-js";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ApplicationinsightsAngularpluginErrorService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.errorServices = [];
|
|
7
|
+
if (ApplicationinsightsAngularpluginErrorService.instance === null) {
|
|
8
|
+
ApplicationinsightsAngularpluginErrorService.instance = this;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
set plugin(analyticsPlugin) {
|
|
12
|
+
this.analyticsPlugin = analyticsPlugin;
|
|
13
|
+
}
|
|
14
|
+
clearErrorHandlers() {
|
|
15
|
+
this.errorServices = [];
|
|
16
|
+
}
|
|
17
|
+
addErrorHandler(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
|
+
}
|
|
29
|
+
}
|
|
30
|
+
handleError(error) {
|
|
31
|
+
if (this.analyticsPlugin) {
|
|
32
|
+
this.analyticsPlugin.trackException({ exception: error });
|
|
33
|
+
}
|
|
34
|
+
if (this.errorServices && this.errorServices.length > 0) {
|
|
35
|
+
arrForEach(this.errorServices, errorService => {
|
|
36
|
+
if (isFunction(errorService.handleError)) {
|
|
37
|
+
errorService.handleError(error);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
ApplicationinsightsAngularpluginErrorService.instance = null;
|
|
44
|
+
ApplicationinsightsAngularpluginErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
45
|
+
ApplicationinsightsAngularpluginErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, providedIn: "root" });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, decorators: [{
|
|
47
|
+
type: Injectable,
|
|
48
|
+
args: [{
|
|
49
|
+
providedIn: "root"
|
|
50
|
+
}]
|
|
51
|
+
}], ctorParameters: function () { return []; } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tanMvc3JjL2xpYi9hcHBsaWNhdGlvbmluc2lnaHRzLWFuZ3VsYXJwbHVnaW4tZXJyb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBTWhGLE1BQU0sT0FBTyw0Q0FBNEM7SUFLckQ7UUFGUSxrQkFBYSxHQUFvQixFQUFFLENBQUM7UUFHeEMsSUFBSSw0Q0FBNEMsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ2hFLDRDQUE0QyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBRUQsSUFBVyxNQUFNLENBQUMsZUFBNkI7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDM0MsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQTJCO1FBQzlDLElBQUksWUFBWSxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsWUFBMkI7UUFDakQsSUFBSSxZQUFZLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNyRCxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDckM7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNsQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM3RDtRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQzFDLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDdEMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbkM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQzs7QUE3Q2EscURBQVEsR0FBaUQsSUFBSSxDQUFDOzBJQURuRSw0Q0FBNEM7OElBQTVDLDRDQUE0QyxjQUZ6QyxNQUFNOzRGQUVULDRDQUE0QztrQkFIeEQsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSUFwcEluc2lnaHRzIH0gZnJvbSBcIkBtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy1jb21tb25cIjtcclxuaW1wb3J0IHsgYXJyRm9yRWFjaCwgaXNGdW5jdGlvbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29yZS1qc1wiO1xyXG5pbXBvcnQgeyBJRXJyb3JTZXJ2aWNlIH0gZnJvbSBcIi4vSUVycm9yU2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlIGltcGxlbWVudHMgSUVycm9yU2VydmljZSB7XHJcbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlOiBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGFuYWx5dGljc1BsdWdpbjogSUFwcEluc2lnaHRzO1xyXG4gICAgcHJpdmF0ZSBlcnJvclNlcnZpY2VzOiBJRXJyb3JTZXJ2aWNlW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBpZiAoQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHBsdWdpbihhbmFseXRpY3NQbHVnaW46IElBcHBJbnNpZ2h0cykge1xyXG4gICAgICAgIHRoaXMuYW5hbHl0aWNzUGx1Z2luID0gYW5hbHl0aWNzUGx1Z2luO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhckVycm9ySGFuZGxlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvclNlcnZpY2VzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEVycm9ySGFuZGxlcihlcnJvclNlcnZpY2U6IElFcnJvclNlcnZpY2UpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXJyb3JTZXJ2aWNlICYmIGlzRnVuY3Rpb24oZXJyb3JTZXJ2aWNlLmhhbmRsZUVycm9yKSkge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yU2VydmljZXMucHVzaChlcnJvclNlcnZpY2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVtb3ZlRXJyb3JIYW5kbGVyKGVycm9yU2VydmljZTogSUVycm9yU2VydmljZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlcnJvclNlcnZpY2UgJiYgaXNGdW5jdGlvbihlcnJvclNlcnZpY2UuaGFuZGxlRXJyb3IpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuZXJyb3JTZXJ2aWNlcy5pbmRleE9mKGVycm9yU2VydmljZSk7XHJcbiAgICAgICAgICAgIGlmIChpZHggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yU2VydmljZXMuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFuYWx5dGljc1BsdWdpbikge1xyXG4gICAgICAgICAgICB0aGlzLmFuYWx5dGljc1BsdWdpbi50cmFja0V4Y2VwdGlvbih7IGV4Y2VwdGlvbjogZXJyb3IgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5lcnJvclNlcnZpY2VzICYmIHRoaXMuZXJyb3JTZXJ2aWNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGFyckZvckVhY2godGhpcy5lcnJvclNlcnZpY2VzLCBlcnJvclNlcnZpY2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oZXJyb3JTZXJ2aWNlLmhhbmRsZUVycm9yKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yU2VydmljZS5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuIl19
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { PropertiesPluginIdentifier, AnalyticsPluginIdentifier } from "@microsoft/applicationinsights-common";
|
|
3
|
+
import { BaseTelemetryPlugin, arrForEach, getLocation, _throwInternal, generateW3CId, onConfigChange, isArray } from "@microsoft/applicationinsights-core-js";
|
|
4
|
+
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
5
|
+
import { NavigationEnd } from "@angular/router";
|
|
6
|
+
import { ApplicationinsightsAngularpluginErrorService } from "./applicationinsights-angularplugin-error.service";
|
|
7
|
+
import { objDeepFreeze } from "@nevware21/ts-utils";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
let undefValue;
|
|
10
|
+
const defaultAngularExtensionConfig = objDeepFreeze({
|
|
11
|
+
router: { blkVal: true, v: undefValue },
|
|
12
|
+
errorServices: { blkVal: true, v: undefValue }
|
|
13
|
+
});
|
|
14
|
+
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
15
|
+
export class AngularPlugin extends BaseTelemetryPlugin {
|
|
16
|
+
constructor(_injector) {
|
|
17
|
+
super();
|
|
18
|
+
this._injector = _injector;
|
|
19
|
+
this.priority = 186;
|
|
20
|
+
this.identifier = "AngularPlugin";
|
|
21
|
+
let _analyticsPlugin;
|
|
22
|
+
let _propertiesPlugin;
|
|
23
|
+
let _angularCfg;
|
|
24
|
+
let _eventSubscription;
|
|
25
|
+
let _isPageInitialLoad;
|
|
26
|
+
let _prevRouter;
|
|
27
|
+
let _errorServiceInstance;
|
|
28
|
+
dynamicProto(AngularPlugin, this, (_self, _base) => {
|
|
29
|
+
const _initDefaults = () => {
|
|
30
|
+
_analyticsPlugin = null;
|
|
31
|
+
_propertiesPlugin = null;
|
|
32
|
+
_angularCfg = null;
|
|
33
|
+
_eventSubscription = null;
|
|
34
|
+
_isPageInitialLoad = true;
|
|
35
|
+
_prevRouter = undefValue;
|
|
36
|
+
};
|
|
37
|
+
_initDefaults();
|
|
38
|
+
_self.initialize = (config, core, extensions, pluginChain) => {
|
|
39
|
+
super.initialize(config, core, extensions, pluginChain);
|
|
40
|
+
_self._addHook(onConfigChange(config, (details) => {
|
|
41
|
+
let ctx = _self._getTelCtx();
|
|
42
|
+
_angularCfg = ctx.getExtCfg(_self.identifier, defaultAngularExtensionConfig);
|
|
43
|
+
_propertiesPlugin = core.getPlugin(PropertiesPluginIdentifier)?.plugin;
|
|
44
|
+
_analyticsPlugin = core.getPlugin(AnalyticsPluginIdentifier)?.plugin;
|
|
45
|
+
if (_angularCfg.useInjector && _injector) {
|
|
46
|
+
_errorServiceInstance = this._injector.get(ApplicationinsightsAngularpluginErrorService);
|
|
47
|
+
}
|
|
48
|
+
_errorServiceInstance = _errorServiceInstance ? _errorServiceInstance
|
|
49
|
+
: ApplicationinsightsAngularpluginErrorService.instance;
|
|
50
|
+
// two instance of errorService
|
|
51
|
+
if (_analyticsPlugin) {
|
|
52
|
+
if (_errorServiceInstance !== null) {
|
|
53
|
+
_errorServiceInstance.plugin = _analyticsPlugin;
|
|
54
|
+
if (_angularCfg.errorServices && isArray(_angularCfg.errorServices)) {
|
|
55
|
+
_errorServiceInstance.clearErrorHandlers();
|
|
56
|
+
arrForEach(_angularCfg.errorServices, (errorService) => {
|
|
57
|
+
_errorServiceInstance.addErrorHandler(errorService);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (_angularCfg.router !== _prevRouter) {
|
|
63
|
+
// router is changed, or has not been initialized yet
|
|
64
|
+
// unsubscribe previous router events
|
|
65
|
+
if (_eventSubscription) {
|
|
66
|
+
_eventSubscription.unsubscribe();
|
|
67
|
+
}
|
|
68
|
+
if (_angularCfg.router) {
|
|
69
|
+
// only track page view if it is the initial page load for this plugin
|
|
70
|
+
if (_isPageInitialLoad) {
|
|
71
|
+
const pageViewTelemetry = {
|
|
72
|
+
uri: _angularCfg.router.url
|
|
73
|
+
};
|
|
74
|
+
_self.trackPageView(pageViewTelemetry);
|
|
75
|
+
}
|
|
76
|
+
// subscribe to new router events
|
|
77
|
+
_eventSubscription = _angularCfg.router.events.subscribe(event => {
|
|
78
|
+
if (_self.isInitialized()) {
|
|
79
|
+
if (event instanceof NavigationEnd) {
|
|
80
|
+
// for page initial load, do not call trackPageView twice
|
|
81
|
+
if (_isPageInitialLoad) {
|
|
82
|
+
_isPageInitialLoad = false;
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const pvt = {
|
|
86
|
+
uri: _angularCfg.router.url,
|
|
87
|
+
properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0
|
|
88
|
+
};
|
|
89
|
+
_self.trackPageView(pvt);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
_prevRouter = _angularCfg.router;
|
|
95
|
+
}
|
|
96
|
+
}));
|
|
97
|
+
// for test purpose only
|
|
98
|
+
_self["_getDbgPlgTargets"] = () => _angularCfg;
|
|
99
|
+
_self["_getErrorService"] = () => _errorServiceInstance;
|
|
100
|
+
};
|
|
101
|
+
_self.trackPageView = (pageView) => {
|
|
102
|
+
if (_analyticsPlugin) {
|
|
103
|
+
const location = getLocation();
|
|
104
|
+
if (_propertiesPlugin && _propertiesPlugin.context && _propertiesPlugin.context.telemetryTrace) {
|
|
105
|
+
_propertiesPlugin.context.telemetryTrace.traceID = generateW3CId();
|
|
106
|
+
_propertiesPlugin.context.telemetryTrace.name = location && location.pathname || "_unknown_";
|
|
107
|
+
}
|
|
108
|
+
_analyticsPlugin.trackPageView(pageView);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
_throwInternal(_self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, "Analytics plugin is not available, Angular plugin telemetry will not be sent: ");
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
_self._doTeardown = (unloadCtx, unloadState, asyncCallback) => {
|
|
115
|
+
if (_analyticsPlugin && _errorServiceInstance !== null) {
|
|
116
|
+
_errorServiceInstance.plugin = null;
|
|
117
|
+
if (_angularCfg) {
|
|
118
|
+
if (_angularCfg.errorServices && Array.isArray(_angularCfg.errorServices)) {
|
|
119
|
+
_errorServiceInstance.clearErrorHandlers();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (_eventSubscription) {
|
|
124
|
+
_eventSubscription.unsubscribe();
|
|
125
|
+
_eventSubscription = null;
|
|
126
|
+
}
|
|
127
|
+
_initDefaults();
|
|
128
|
+
};
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Add Part A fields to the event
|
|
133
|
+
*
|
|
134
|
+
* @param event The event that needs to be processed
|
|
135
|
+
*/
|
|
136
|
+
processTelemetry(event, itemCtx) {
|
|
137
|
+
this.processNext(event, itemCtx);
|
|
138
|
+
}
|
|
139
|
+
initialize(config, core, extensions, pluginChain) {
|
|
140
|
+
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
141
|
+
}
|
|
142
|
+
trackPageView(pageView) {
|
|
143
|
+
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularPlugin, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
147
|
+
AngularPlugin.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AngularPlugin, selector: "lib-applicationinsights-angularplugin-js", usesInheritance: true, ngImport: i0, template: "", isInline: true });
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularPlugin, decorators: [{
|
|
149
|
+
type: Component,
|
|
150
|
+
args: [{ selector: "lib-applicationinsights-angularplugin-js", template: "" }]
|
|
151
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQzBCLDBCQUEwQixFQUFFLHlCQUF5QixFQUNyRixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFDd0MsbUJBQW1CLEVBQUUsVUFBVSxFQUNoRCxXQUFXLEVBQUUsY0FBYyxFQUM5QixhQUFhLEVBQUUsY0FBYyxFQUFtQixPQUFPLEVBQ2pGLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxZQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBSWpILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFnQmxELElBQUksVUFBVSxDQUFDO0FBRWYsTUFBTSw2QkFBNkIsR0FBNkMsYUFBYSxDQUFDO0lBQzFGLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBQztJQUN0QyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUM7Q0FDaEQsQ0FBQyxDQUFDO0FBT0gsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxhQUFjLFNBQVEsbUJBQW1CO0lBSWxELFlBQW9CLFNBQW9CO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRFEsY0FB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QUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUdELFVBQVUsQ0FBQyxNQUFnQyxFQUFFLElBQXNCLEVBQUUsVUFBcUIsRUFBRSxXQUFtQztRQUMzSCxvRkFBb0Y7SUFDeEYsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUE0QjtRQUN0QyxvRkFBb0Y7SUFDeEYsQ0FBQzs7MkdBMUpRLGFBQWE7K0ZBQWIsYUFBYSx1R0FKWixFQUFFOzRGQUlILGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0ksMENBQTBDLFlBQzFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gICAgSUNvbmZpZywgSVBhZ2VWaWV3VGVsZW1ldHJ5LCBQcm9wZXJ0aWVzUGx1Z2luSWRlbnRpZmllciwgQW5hbHl0aWNzUGx1Z2luSWRlbnRpZmllclxyXG59IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtY29tbW9uXCI7XHJcbmltcG9ydCB7XHJcbiAgICBJUGx1Z2luLCBJQ29uZmlndXJhdGlvbiwgSUFwcEluc2lnaHRzQ29yZSwgQmFzZVRlbGVtZXRyeVBsdWdpbiwgYXJyRm9yRWFjaCwgSVRlbGVtZXRyeUl0ZW0sIElUZWxlbWV0cnlQbHVnaW5DaGFpbixcclxuICAgIElQcm9jZXNzVGVsZW1ldHJ5Q29udGV4dCwgZ2V0TG9jYXRpb24sIF90aHJvd0ludGVybmFsLCBlTG9nZ2luZ1NldmVyaXR5LCBfZUludGVybmFsTWVzc2FnZUlkLCBJUHJvY2Vzc1RlbGVtZXRyeVVubG9hZENvbnRleHQsXHJcbiAgICBJVGVsZW1ldHJ5VW5sb2FkU3RhdGUsIGdlbmVyYXRlVzNDSWQsIG9uQ29uZmlnQ2hhbmdlLCBJQ29uZmlnRGVmYXVsdHMsIGlzQXJyYXlcclxufSBmcm9tIFwiQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLWNvcmUtanNcIjtcclxuaW1wb3J0IGR5bmFtaWNQcm90byBmcm9tIFwiQG1pY3Jvc29mdC9keW5hbWljcHJvdG8tanNcIjtcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSB9IGZyb20gXCIuL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1lcnJvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IElFcnJvclNlcnZpY2UgfSBmcm9tIFwiLi9JRXJyb3JTZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFuYWx5dGljc1BsdWdpbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtYW5hbHl0aWNzLWpzXCI7XHJcbmltcG9ydCB7b2JqRGVlcEZyZWV6ZX0gZnJvbSBcIkBuZXZ3YXJlMjEvdHMtdXRpbHNcIjtcclxuaW1wb3J0IHsgUHJvcGVydGllc1BsdWdpbiB9IGZyb20gXCJAbWljcm9zb2Z0L2FwcGxpY2F0aW9uaW5zaWdodHMtcHJvcGVydGllcy1qc1wiO1xyXG5cclxuaW50ZXJmYWNlIElBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnIHtcclxuICAgIC8qKlxyXG4gICAgICogQW5ndWxhciByb3V0ZXIgZm9yIGVuYWJsaW5nIEFwcGxpY2F0aW9uIEluc2lnaHRzIFBhZ2VWaWV3IHRyYWNraW5nLlxyXG4gICAgICovXHJcbiAgICByb3V0ZXI/OiBSb3V0ZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gZXJyb3Igc2VydmljZSBmb3IgZ2xvYmFsIGVycm9yIGhhbmRsaW5nLlxyXG4gICAgICovXHJcbiAgICBlcnJvclNlcnZpY2VzPzogSUVycm9yU2VydmljZVtdO1xyXG4gICAgdXNlSW5qZWN0b3I/OiBib29sZWFuO1xyXG59XHJcblxyXG5sZXQgdW5kZWZWYWx1ZTtcclxuXHJcbmNvbnN0IGRlZmF1bHRBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnOiBJQ29uZmlnRGVmYXVsdHM8SUFuZ3VsYXJFeHRlbnNpb25Db25maWc+ID0gb2JqRGVlcEZyZWV6ZSh7XHJcbiAgICByb3V0ZXI6IHsgYmxrVmFsOiB0cnVlLCB2OiB1bmRlZlZhbHVlfSxcclxuICAgIGVycm9yU2VydmljZXM6IHsgYmxrVmFsOiB0cnVlLCB2OiB1bmRlZlZhbHVlfVxyXG59KTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwibGliLWFwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qc1wiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBzdHlsZXM6IFtdXHJcbn0pXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgY2xhc3MgQW5ndWxhclBsdWdpbiBleHRlbmRzIEJhc2VUZWxlbWV0cnlQbHVnaW4ge1xyXG4gICAgcHVibGljIHByaW9yaXR5ID0gMTg2O1xyXG4gICAgcHVibGljIGlkZW50aWZpZXIgPSBcIkFuZ3VsYXJQbHVnaW5cIjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pbmplY3Rvcj86IEluamVjdG9yKSB7IC8vIF9pbmplY3RvciBpcyBvcHRpb25hbCB0byBwcm92aWRlXHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBsZXQgX2FuYWx5dGljc1BsdWdpbjogQW5hbHl0aWNzUGx1Z2luO1xyXG4gICAgICAgIGxldCBfcHJvcGVydGllc1BsdWdpbjogUHJvcGVydGllc1BsdWdpbjtcclxuICAgICAgICBsZXQgX2FuZ3VsYXJDZmc6IElBbmd1bGFyRXh0ZW5zaW9uQ29uZmlnO1xyXG4gICAgICAgIGxldCBfZXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgICAgICBsZXQgX2lzUGFnZUluaXRpYWxMb2FkOiBib29sZWFuO1xyXG4gICAgICAgIGxldCBfcHJldlJvdXRlcjogUm91dGVyO1xyXG4gICAgICAgIGxldCBfZXJyb3JTZXJ2aWNlSW5zdGFuY2U6IEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlO1xyXG5cclxuICAgICAgICBkeW5hbWljUHJvdG8oQW5ndWxhclBsdWdpbiwgdGhpcywgKF9zZWxmLCBfYmFzZSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgY29uc3QgX2luaXREZWZhdWx0cyA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIF9hbmFseXRpY3NQbHVnaW4gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX3Byb3BlcnRpZXNQbHVnaW4gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX2FuZ3VsYXJDZmcgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgX2V2ZW50U3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIF9pc1BhZ2VJbml0aWFsTG9hZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBfcHJldlJvdXRlciA9IHVuZGVmVmFsdWU7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBfaW5pdERlZmF1bHRzKCk7XHJcblxyXG4gICAgICAgICAgICBfc2VsZi5pbml0aWFsaXplID0gKGNvbmZpZzogSUNvbmZpZ3VyYXRpb24gJiBJQ29uZmlnLCBjb3JlOiBJQXBwSW5zaWdodHNDb3JlLCBleHRlbnNpb25zOiBJUGx1Z2luW10sXHJcbiAgICAgICAgICAgICAgICBwbHVnaW5DaGFpbj86IElUZWxlbWV0cnlQbHVnaW5DaGFpbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZShjb25maWcsIGNvcmUsIGV4dGVuc2lvbnMsIHBsdWdpbkNoYWluKTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIF9zZWxmLl9hZGRIb29rKG9uQ29uZmlnQ2hhbmdlKGNvbmZpZywgKGRldGFpbHMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY3R4ID0gX3NlbGYuX2dldFRlbEN0eCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9hbmd1bGFyQ2ZnID0gY3R4LmdldEV4dENmZzxJQW5ndWxhckV4dGVuc2lvbkNvbmZpZz4oX3NlbGYuaWRlbnRpZmllciwgZGVmYXVsdEFuZ3VsYXJFeHRlbnNpb25Db25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wZXJ0aWVzUGx1Z2luID0gY29yZS5nZXRQbHVnaW48UHJvcGVydGllc1BsdWdpbj4oUHJvcGVydGllc1BsdWdpbklkZW50aWZpZXIpPy5wbHVnaW4gYXMgUHJvcGVydGllc1BsdWdpbjtcclxuICAgICAgICAgICAgICAgICAgICBfYW5hbHl0aWNzUGx1Z2luID0gY29yZS5nZXRQbHVnaW48QW5hbHl0aWNzUGx1Z2luPihBbmFseXRpY3NQbHVnaW5JZGVudGlmaWVyKT8ucGx1Z2luIGFzIEFuYWx5dGljc1BsdWdpbjtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX2FuZ3VsYXJDZmcudXNlSW5qZWN0b3IgJiYgX2luamVjdG9yKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2Vycm9yU2VydmljZUluc3RhbmNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luRXJyb3JTZXJ2aWNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgX2Vycm9yU2VydmljZUluc3RhbmNlID0gX2Vycm9yU2VydmljZUluc3RhbmNlID8gX2Vycm9yU2VydmljZUluc3RhbmNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2UuaW5zdGFuY2U7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHR3byBpbnN0YW5jZSBvZiBlcnJvclNlcnZpY2VcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9hbmFseXRpY3NQbHVnaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9lcnJvclNlcnZpY2VJbnN0YW5jZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Vycm9yU2VydmljZUluc3RhbmNlLnBsdWdpbiA9IF9hbmFseXRpY3NQbHVnaW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2FuZ3VsYXJDZmcuZXJyb3JTZXJ2aWNlcyAmJiBpc0FycmF5KF9hbmd1bGFyQ2ZnLmVycm9yU2VydmljZXMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Vycm9yU2VydmljZUluc3RhbmNlLmNsZWFyRXJyb3JIYW5kbGVycygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyckZvckVhY2goX2FuZ3VsYXJDZmcuZXJyb3JTZXJ2aWNlcywgKGVycm9yU2VydmljZTogSUVycm9yU2VydmljZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UuYWRkRXJyb3JIYW5kbGVyKGVycm9yU2VydmljZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9hbmd1bGFyQ2ZnLnJvdXRlciAhPT0gX3ByZXZSb3V0ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm91dGVyIGlzIGNoYW5nZWQsIG9yIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXRcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVuc3Vic2NyaWJlIHByZXZpb3VzIHJvdXRlciBldmVudHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9ldmVudFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfYW5ndWxhckNmZy5yb3V0ZXIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSB0cmFjayBwYWdlIHZpZXcgaWYgaXQgaXMgdGhlIGluaXRpYWwgcGFnZSBsb2FkIGZvciB0aGlzIHBsdWdpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9pc1BhZ2VJbml0aWFsTG9hZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFnZVZpZXdUZWxlbWV0cnk6IElQYWdlVmlld1RlbGVtZXRyeSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpOiBfYW5ndWxhckNmZy5yb3V0ZXIudXJsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc2VsZi50cmFja1BhZ2VWaWV3KHBhZ2VWaWV3VGVsZW1ldHJ5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Vic2NyaWJlIHRvIG5ldyByb3V0ZXIgZXZlbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXZlbnRTdWJzY3JpcHRpb24gPSBfYW5ndWxhckNmZy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9zZWxmLmlzSW5pdGlhbGl6ZWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgcGFnZSBpbml0aWFsIGxvYWQsIGRvIG5vdCBjYWxsIHRyYWNrUGFnZVZpZXcgdHdpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaXNQYWdlSW5pdGlhbExvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXNQYWdlSW5pdGlhbExvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwdnQ6IElQYWdlVmlld1RlbGVtZXRyeSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmk6IF9hbmd1bGFyQ2ZnLnJvdXRlci51cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogeyBkdXJhdGlvbjogMCB9IC8vIFNQQSByb3V0ZSBjaGFuZ2UgbG9hZGluZyBkdXJhdGlvbnMgYXJlIHVuZGVmaW5lZCwgc28gc2VuZCAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGYudHJhY2tQYWdlVmlldyhwdnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZSb3V0ZXIgPSBfYW5ndWxhckNmZy5yb3V0ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGZvciB0ZXN0IHB1cnBvc2Ugb25seVxyXG4gICAgICAgICAgICAgICAgX3NlbGZbXCJfZ2V0RGJnUGxnVGFyZ2V0c1wiXSA9ICgpID0+IF9hbmd1bGFyQ2ZnO1xyXG4gICAgICAgICAgICAgICAgX3NlbGZbXCJfZ2V0RXJyb3JTZXJ2aWNlXCJdID0gKCkgPT4gX2Vycm9yU2VydmljZUluc3RhbmNlO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgX3NlbGYudHJhY2tQYWdlVmlldyA9IChwYWdlVmlldzogSVBhZ2VWaWV3VGVsZW1ldHJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX2FuYWx5dGljc1BsdWdpbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gZ2V0TG9jYXRpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX3Byb3BlcnRpZXNQbHVnaW4gJiYgX3Byb3BlcnRpZXNQbHVnaW4uY29udGV4dCAmJiBfcHJvcGVydGllc1BsdWdpbi5jb250ZXh0LnRlbGVtZXRyeVRyYWNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9wcm9wZXJ0aWVzUGx1Z2luLmNvbnRleHQudGVsZW1ldHJ5VHJhY2UudHJhY2VJRCA9IGdlbmVyYXRlVzNDSWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX3Byb3BlcnRpZXNQbHVnaW4uY29udGV4dC50ZWxlbWV0cnlUcmFjZS5uYW1lID0gbG9jYXRpb24gJiYgbG9jYXRpb24ucGF0aG5hbWUgfHwgXCJfdW5rbm93bl9cIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgX2FuYWx5dGljc1BsdWdpbi50cmFja1BhZ2VWaWV3KHBhZ2VWaWV3KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3Rocm93SW50ZXJuYWwoX3NlbGYuZGlhZ0xvZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlTG9nZ2luZ1NldmVyaXR5LkNSSVRJQ0FMLCBfZUludGVybmFsTWVzc2FnZUlkLlRlbGVtZXRyeUluaXRpYWxpemVyRmFpbGVkLCBcIkFuYWx5dGljcyBwbHVnaW4gaXMgbm90IGF2YWlsYWJsZSwgQW5ndWxhciBwbHVnaW4gdGVsZW1ldHJ5IHdpbGwgbm90IGJlIHNlbnQ6IFwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIF9zZWxmLl9kb1RlYXJkb3duID0gKHVubG9hZEN0eD86IElQcm9jZXNzVGVsZW1ldHJ5VW5sb2FkQ29udGV4dCwgdW5sb2FkU3RhdGU/OiBJVGVsZW1ldHJ5VW5sb2FkU3RhdGUsXHJcbiAgICAgICAgICAgICAgICBhc3luY0NhbGxiYWNrPzogKCkgPT4gdm9pZCk6IHZvaWQgfCBib29sZWFuID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChfYW5hbHl0aWNzUGx1Z2luICYmIF9lcnJvclNlcnZpY2VJbnN0YW5jZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF9lcnJvclNlcnZpY2VJbnN0YW5jZS5wbHVnaW4gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfYW5ndWxhckNmZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2FuZ3VsYXJDZmcuZXJyb3JTZXJ2aWNlcyAmJiBBcnJheS5pc0FycmF5KF9hbmd1bGFyQ2ZnLmVycm9yU2VydmljZXMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXJyb3JTZXJ2aWNlSW5zdGFuY2UuY2xlYXJFcnJvckhhbmRsZXJzKCk7XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgaWYgKF9ldmVudFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIF9ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9ldmVudFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBfaW5pdERlZmF1bHRzKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgUGFydCBBIGZpZWxkcyB0byB0aGUgZXZlbnRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IHRoYXQgbmVlZHMgdG8gYmUgcHJvY2Vzc2VkXHJcbiAgICAgKi9cclxuICAgIHByb2Nlc3NUZWxlbWV0cnkoZXZlbnQ6IElUZWxlbWV0cnlJdGVtLCBpdGVtQ3R4PzogSVByb2Nlc3NUZWxlbWV0cnlDb250ZXh0KSB7XHJcbiAgICAgICAgdGhpcy5wcm9jZXNzTmV4dChldmVudCwgaXRlbUN0eCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGluaXRpYWxpemUoY29uZmlnOiBJQ29uZmlndXJhdGlvbiAmIElDb25maWcsIGNvcmU6IElBcHBJbnNpZ2h0c0NvcmUsIGV4dGVuc2lvbnM6IElQbHVnaW5bXSwgcGx1Z2luQ2hhaW4/OiBJVGVsZW1ldHJ5UGx1Z2luQ2hhaW4pIHtcclxuICAgICAgICAvLyBARHluYW1pY1Byb3RvU3R1YiAtLSBETyBOT1QgYWRkIGFueSBjb2RlIGFzIHRoaXMgd2lsbCBiZSByZW1vdmVkIGR1cmluZyBwYWNrYWdpbmdcclxuICAgIH1cclxuXHJcbiAgICB0cmFja1BhZ2VWaWV3KHBhZ2VWaWV3OiBJUGFnZVZpZXdUZWxlbWV0cnkpIHtcclxuICAgICAgICAvLyBARHluYW1pY1Byb3RvU3R1YiAtLSBETyBOT1QgYWRkIGFueSBjb2RlIGFzIHRoaXMgd2lsbCBiZSByZW1vdmVkIGR1cmluZyBwYWNrYWdpbmdcclxuICAgIH1cclxuXHJcblxyXG4gICBcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { AngularPlugin } from "./applicationinsights-angularplugin-js.component";
|
|
3
|
+
import { ApplicationinsightsAngularpluginErrorService } from "./applicationinsights-angularplugin-error.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ApplicationinsightsAngularpluginJsModule {
|
|
6
|
+
}
|
|
7
|
+
ApplicationinsightsAngularpluginJsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
ApplicationinsightsAngularpluginJsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, declarations: [AngularPlugin], exports: [AngularPlugin] });
|
|
9
|
+
ApplicationinsightsAngularpluginJsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, providers: [
|
|
10
|
+
ApplicationinsightsAngularpluginErrorService
|
|
11
|
+
] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [AngularPlugin],
|
|
16
|
+
imports: [],
|
|
17
|
+
exports: [AngularPlugin],
|
|
18
|
+
providers: [
|
|
19
|
+
ApplicationinsightsAngularpluginErrorService
|
|
20
|
+
]
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakYsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBV2pILE1BQU0sT0FBTyx3Q0FBd0M7O3NJQUF4Qyx3Q0FBd0M7dUlBQXhDLHdDQUF3QyxpQkFSbEMsYUFBYSxhQUdsQixhQUFhO3VJQUtkLHdDQUF3QyxhQUp0QztRQUNQLDRDQUE0QztLQUMvQzs0RkFFUSx3Q0FBd0M7a0JBVHBELFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUM3QixPQUFPLEVBQUUsRUFDUjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDUCw0Q0FBNEM7cUJBQy9DO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBbmd1bGFyUGx1Z2luIH0gZnJvbSBcIi4vYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbmluc2lnaHRzQW5ndWxhcnBsdWdpbkVycm9yU2VydmljZSB9IGZyb20gXCIuL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1lcnJvci5zZXJ2aWNlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbQW5ndWxhclBsdWdpbl0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW0FuZ3VsYXJQbHVnaW5dLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgQXBwbGljYXRpb25pbnNpZ2h0c0FuZ3VsYXJwbHVnaW5FcnJvclNlcnZpY2VcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uaW5zaWdodHNBbmd1bGFycGx1Z2luSnNNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zb2Z0LWFwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvbWljcm9zb2Z0LWFwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of applicationinsights-angularplugin-js
|
|
3
|
+
*/
|
|
4
|
+
export * from "./lib/applicationinsights-angularplugin-js.component";
|
|
5
|
+
export * from "./lib/applicationinsights-angularplugin-js.module";
|
|
6
|
+
export * from "./lib/applicationinsights-angularplugin-error.service";
|
|
7
|
+
export * from "./lib/IErrorService";
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYXBwbGljYXRpb25pbnNpZ2h0cy1hbmd1bGFycGx1Z2luLWpzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5jb21wb25lbnRcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1qcy5tb2R1bGVcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2FwcGxpY2F0aW9uaW5zaWdodHMtYW5ndWxhcnBsdWdpbi1lcnJvci5zZXJ2aWNlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9JRXJyb3JTZXJ2aWNlXCI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Component, NgModule } from '@angular/core';
|
|
3
|
+
import { PropertiesPluginIdentifier, AnalyticsPluginIdentifier } from '@microsoft/applicationinsights-common';
|
|
4
|
+
import { isFunction, arrForEach, BaseTelemetryPlugin, onConfigChange, isArray, getLocation, generateW3CId, _throwInternal } from '@microsoft/applicationinsights-core-js';
|
|
5
|
+
import dynamicProto from '@microsoft/dynamicproto-js';
|
|
6
|
+
import { NavigationEnd } from '@angular/router';
|
|
7
|
+
import { objDeepFreeze } from '@nevware21/ts-utils';
|
|
8
|
+
|
|
9
|
+
class ApplicationinsightsAngularpluginErrorService {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.errorServices = [];
|
|
12
|
+
if (ApplicationinsightsAngularpluginErrorService.instance === null) {
|
|
13
|
+
ApplicationinsightsAngularpluginErrorService.instance = this;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
set plugin(analyticsPlugin) {
|
|
17
|
+
this.analyticsPlugin = analyticsPlugin;
|
|
18
|
+
}
|
|
19
|
+
clearErrorHandlers() {
|
|
20
|
+
this.errorServices = [];
|
|
21
|
+
}
|
|
22
|
+
addErrorHandler(errorService) {
|
|
23
|
+
if (errorService && isFunction(errorService.handleError)) {
|
|
24
|
+
this.errorServices.push(errorService);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
removeErrorHandler(errorService) {
|
|
28
|
+
if (errorService && isFunction(errorService.handleError)) {
|
|
29
|
+
const idx = this.errorServices.indexOf(errorService);
|
|
30
|
+
if (idx !== -1) {
|
|
31
|
+
this.errorServices.splice(idx, 1);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
handleError(error) {
|
|
36
|
+
if (this.analyticsPlugin) {
|
|
37
|
+
this.analyticsPlugin.trackException({ exception: error });
|
|
38
|
+
}
|
|
39
|
+
if (this.errorServices && this.errorServices.length > 0) {
|
|
40
|
+
arrForEach(this.errorServices, errorService => {
|
|
41
|
+
if (isFunction(errorService.handleError)) {
|
|
42
|
+
errorService.handleError(error);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
ApplicationinsightsAngularpluginErrorService.instance = null;
|
|
49
|
+
ApplicationinsightsAngularpluginErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
50
|
+
ApplicationinsightsAngularpluginErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, providedIn: "root" });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, decorators: [{
|
|
52
|
+
type: Injectable,
|
|
53
|
+
args: [{
|
|
54
|
+
providedIn: "root"
|
|
55
|
+
}]
|
|
56
|
+
}], ctorParameters: function () { return []; } });
|
|
57
|
+
|
|
58
|
+
let undefValue;
|
|
59
|
+
const defaultAngularExtensionConfig = objDeepFreeze({
|
|
60
|
+
router: { blkVal: true, v: undefValue },
|
|
61
|
+
errorServices: { blkVal: true, v: undefValue }
|
|
62
|
+
});
|
|
63
|
+
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
64
|
+
class AngularPlugin extends BaseTelemetryPlugin {
|
|
65
|
+
constructor(_injector) {
|
|
66
|
+
super();
|
|
67
|
+
this._injector = _injector;
|
|
68
|
+
this.priority = 186;
|
|
69
|
+
this.identifier = "AngularPlugin";
|
|
70
|
+
let _analyticsPlugin;
|
|
71
|
+
let _propertiesPlugin;
|
|
72
|
+
let _angularCfg;
|
|
73
|
+
let _eventSubscription;
|
|
74
|
+
let _isPageInitialLoad;
|
|
75
|
+
let _prevRouter;
|
|
76
|
+
let _errorServiceInstance;
|
|
77
|
+
dynamicProto(AngularPlugin, this, (_self, _base) => {
|
|
78
|
+
const _initDefaults = () => {
|
|
79
|
+
_analyticsPlugin = null;
|
|
80
|
+
_propertiesPlugin = null;
|
|
81
|
+
_angularCfg = null;
|
|
82
|
+
_eventSubscription = null;
|
|
83
|
+
_isPageInitialLoad = true;
|
|
84
|
+
_prevRouter = undefValue;
|
|
85
|
+
};
|
|
86
|
+
_initDefaults();
|
|
87
|
+
_self.initialize = (config, core, extensions, pluginChain) => {
|
|
88
|
+
super.initialize(config, core, extensions, pluginChain);
|
|
89
|
+
_self._addHook(onConfigChange(config, (details) => {
|
|
90
|
+
var _a, _b;
|
|
91
|
+
let ctx = _self._getTelCtx();
|
|
92
|
+
_angularCfg = ctx.getExtCfg(_self.identifier, defaultAngularExtensionConfig);
|
|
93
|
+
_propertiesPlugin = (_a = core.getPlugin(PropertiesPluginIdentifier)) === null || _a === void 0 ? void 0 : _a.plugin;
|
|
94
|
+
_analyticsPlugin = (_b = core.getPlugin(AnalyticsPluginIdentifier)) === null || _b === void 0 ? void 0 : _b.plugin;
|
|
95
|
+
if (_angularCfg.useInjector && _injector) {
|
|
96
|
+
_errorServiceInstance = this._injector.get(ApplicationinsightsAngularpluginErrorService);
|
|
97
|
+
}
|
|
98
|
+
_errorServiceInstance = _errorServiceInstance ? _errorServiceInstance
|
|
99
|
+
: ApplicationinsightsAngularpluginErrorService.instance;
|
|
100
|
+
// two instance of errorService
|
|
101
|
+
if (_analyticsPlugin) {
|
|
102
|
+
if (_errorServiceInstance !== null) {
|
|
103
|
+
_errorServiceInstance.plugin = _analyticsPlugin;
|
|
104
|
+
if (_angularCfg.errorServices && isArray(_angularCfg.errorServices)) {
|
|
105
|
+
_errorServiceInstance.clearErrorHandlers();
|
|
106
|
+
arrForEach(_angularCfg.errorServices, (errorService) => {
|
|
107
|
+
_errorServiceInstance.addErrorHandler(errorService);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (_angularCfg.router !== _prevRouter) {
|
|
113
|
+
// router is changed, or has not been initialized yet
|
|
114
|
+
// unsubscribe previous router events
|
|
115
|
+
if (_eventSubscription) {
|
|
116
|
+
_eventSubscription.unsubscribe();
|
|
117
|
+
}
|
|
118
|
+
if (_angularCfg.router) {
|
|
119
|
+
// only track page view if it is the initial page load for this plugin
|
|
120
|
+
if (_isPageInitialLoad) {
|
|
121
|
+
const pageViewTelemetry = {
|
|
122
|
+
uri: _angularCfg.router.url
|
|
123
|
+
};
|
|
124
|
+
_self.trackPageView(pageViewTelemetry);
|
|
125
|
+
}
|
|
126
|
+
// subscribe to new router events
|
|
127
|
+
_eventSubscription = _angularCfg.router.events.subscribe(event => {
|
|
128
|
+
if (_self.isInitialized()) {
|
|
129
|
+
if (event instanceof NavigationEnd) {
|
|
130
|
+
// for page initial load, do not call trackPageView twice
|
|
131
|
+
if (_isPageInitialLoad) {
|
|
132
|
+
_isPageInitialLoad = false;
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const pvt = {
|
|
136
|
+
uri: _angularCfg.router.url,
|
|
137
|
+
properties: { duration: 0 } // SPA route change loading durations are undefined, so send 0
|
|
138
|
+
};
|
|
139
|
+
_self.trackPageView(pvt);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
_prevRouter = _angularCfg.router;
|
|
145
|
+
}
|
|
146
|
+
}));
|
|
147
|
+
// for test purpose only
|
|
148
|
+
_self["_getDbgPlgTargets"] = () => _angularCfg;
|
|
149
|
+
_self["_getErrorService"] = () => _errorServiceInstance;
|
|
150
|
+
};
|
|
151
|
+
_self.trackPageView = (pageView) => {
|
|
152
|
+
if (_analyticsPlugin) {
|
|
153
|
+
const location = getLocation();
|
|
154
|
+
if (_propertiesPlugin && _propertiesPlugin.context && _propertiesPlugin.context.telemetryTrace) {
|
|
155
|
+
_propertiesPlugin.context.telemetryTrace.traceID = generateW3CId();
|
|
156
|
+
_propertiesPlugin.context.telemetryTrace.name = location && location.pathname || "_unknown_";
|
|
157
|
+
}
|
|
158
|
+
_analyticsPlugin.trackPageView(pageView);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
_throwInternal(_self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, "Analytics plugin is not available, Angular plugin telemetry will not be sent: ");
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
_self._doTeardown = (unloadCtx, unloadState, asyncCallback) => {
|
|
165
|
+
if (_analyticsPlugin && _errorServiceInstance !== null) {
|
|
166
|
+
_errorServiceInstance.plugin = null;
|
|
167
|
+
if (_angularCfg) {
|
|
168
|
+
if (_angularCfg.errorServices && Array.isArray(_angularCfg.errorServices)) {
|
|
169
|
+
_errorServiceInstance.clearErrorHandlers();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (_eventSubscription) {
|
|
174
|
+
_eventSubscription.unsubscribe();
|
|
175
|
+
_eventSubscription = null;
|
|
176
|
+
}
|
|
177
|
+
_initDefaults();
|
|
178
|
+
};
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Add Part A fields to the event
|
|
183
|
+
*
|
|
184
|
+
* @param event The event that needs to be processed
|
|
185
|
+
*/
|
|
186
|
+
processTelemetry(event, itemCtx) {
|
|
187
|
+
this.processNext(event, itemCtx);
|
|
188
|
+
}
|
|
189
|
+
initialize(config, core, extensions, pluginChain) {
|
|
190
|
+
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
191
|
+
}
|
|
192
|
+
trackPageView(pageView) {
|
|
193
|
+
// @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularPlugin, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
197
|
+
AngularPlugin.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AngularPlugin, selector: "lib-applicationinsights-angularplugin-js", usesInheritance: true, ngImport: i0, template: "", isInline: true });
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AngularPlugin, decorators: [{
|
|
199
|
+
type: Component,
|
|
200
|
+
args: [{ selector: "lib-applicationinsights-angularplugin-js", template: "" }]
|
|
201
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
202
|
+
|
|
203
|
+
class ApplicationinsightsAngularpluginJsModule {
|
|
204
|
+
}
|
|
205
|
+
ApplicationinsightsAngularpluginJsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
206
|
+
ApplicationinsightsAngularpluginJsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, declarations: [AngularPlugin], exports: [AngularPlugin] });
|
|
207
|
+
ApplicationinsightsAngularpluginJsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, providers: [
|
|
208
|
+
ApplicationinsightsAngularpluginErrorService
|
|
209
|
+
] });
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, decorators: [{
|
|
211
|
+
type: NgModule,
|
|
212
|
+
args: [{
|
|
213
|
+
declarations: [AngularPlugin],
|
|
214
|
+
imports: [],
|
|
215
|
+
exports: [AngularPlugin],
|
|
216
|
+
providers: [
|
|
217
|
+
ApplicationinsightsAngularpluginErrorService
|
|
218
|
+
]
|
|
219
|
+
}]
|
|
220
|
+
}] });
|
|
221
|
+
|
|
222
|
+
/*
|
|
223
|
+
* Public API Surface of applicationinsights-angularplugin-js
|
|
224
|
+
*/
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Generated bundle index. Do not edit.
|
|
228
|
+
*/
|
|
229
|
+
|
|
230
|
+
export { AngularPlugin, ApplicationinsightsAngularpluginErrorService, ApplicationinsightsAngularpluginJsModule };
|
|
231
|
+
//# sourceMappingURL=microsoft-applicationinsights-angularplugin-js.mjs.map
|
|
@@ -0,0 +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, 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 clearErrorHandlers() {\r\n this.errorServices = [];\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, Injector} from \"@angular/core\";\r\nimport {\r\n IConfig, IPageViewTelemetry, PropertiesPluginIdentifier, AnalyticsPluginIdentifier\r\n} from \"@microsoft/applicationinsights-common\";\r\nimport {\r\n IPlugin, IConfiguration, IAppInsightsCore, BaseTelemetryPlugin, arrForEach, ITelemetryItem, ITelemetryPluginChain,\r\n IProcessTelemetryContext, getLocation, _throwInternal, eLoggingSeverity, _eInternalMessageId, IProcessTelemetryUnloadContext,\r\n ITelemetryUnloadState, generateW3CId, onConfigChange, IConfigDefaults, isArray\r\n} from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\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\nimport {objDeepFreeze} from \"@nevware21/ts-utils\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-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 useInjector?: boolean;\r\n}\r\n\r\nlet undefValue;\r\n\r\nconst defaultAngularExtensionConfig: IConfigDefaults<IAngularExtensionConfig> = objDeepFreeze({\r\n router: { blkVal: true, v: undefValue},\r\n errorServices: { blkVal: true, v: undefValue}\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 constructor(private _injector?: Injector) { // _injector is optional to provide\r\n super();\r\n let _analyticsPlugin: AnalyticsPlugin;\r\n let _propertiesPlugin: PropertiesPlugin;\r\n let _angularCfg: IAngularExtensionConfig;\r\n let _eventSubscription: Subscription;\r\n let _isPageInitialLoad: boolean;\r\n let _prevRouter: Router;\r\n let _errorServiceInstance: ApplicationinsightsAngularpluginErrorService;\r\n\r\n dynamicProto(AngularPlugin, this, (_self, _base) => {\r\n\r\n const _initDefaults = () => {\r\n _analyticsPlugin = null;\r\n _propertiesPlugin = null;\r\n _angularCfg = null;\r\n _eventSubscription = null;\r\n _isPageInitialLoad = true;\r\n _prevRouter = undefValue;\r\n };\r\n\r\n _initDefaults();\r\n\r\n _self.initialize = (config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[],\r\n pluginChain?: ITelemetryPluginChain) => {\r\n super.initialize(config, core, extensions, pluginChain);\r\n \r\n _self._addHook(onConfigChange(config, (details) => {\r\n let ctx = _self._getTelCtx();\r\n _angularCfg = ctx.getExtCfg<IAngularExtensionConfig>(_self.identifier, defaultAngularExtensionConfig);\r\n _propertiesPlugin = core.getPlugin<PropertiesPlugin>(PropertiesPluginIdentifier)?.plugin as PropertiesPlugin;\r\n _analyticsPlugin = core.getPlugin<AnalyticsPlugin>(AnalyticsPluginIdentifier)?.plugin as AnalyticsPlugin;\r\n \r\n if (_angularCfg.useInjector && _injector){\r\n _errorServiceInstance = this._injector.get(ApplicationinsightsAngularpluginErrorService);\r\n }\r\n _errorServiceInstance = _errorServiceInstance ? _errorServiceInstance\r\n : ApplicationinsightsAngularpluginErrorService.instance;\r\n\r\n // two instance of errorService\r\n\r\n if (_analyticsPlugin) {\r\n if (_errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = _analyticsPlugin;\r\n if (_angularCfg.errorServices && isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n arrForEach(_angularCfg.errorServices, (errorService: IErrorService) => {\r\n _errorServiceInstance.addErrorHandler(errorService);\r\n });\r\n }\r\n }\r\n }\r\n \r\n if (_angularCfg.router !== _prevRouter) {\r\n // router is changed, or has not been initialized yet\r\n\r\n // unsubscribe previous router events\r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n }\r\n\r\n if (_angularCfg.router){\r\n // only track page view if it is the initial page load for this plugin\r\n if (_isPageInitialLoad){\r\n const pageViewTelemetry: IPageViewTelemetry = {\r\n uri: _angularCfg.router.url\r\n };\r\n _self.trackPageView(pageViewTelemetry);\r\n }\r\n \r\n // subscribe to new router events\r\n _eventSubscription = _angularCfg.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: _angularCfg.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 _prevRouter = _angularCfg.router;\r\n }\r\n }));\r\n\r\n // for test purpose only\r\n _self[\"_getDbgPlgTargets\"] = () => _angularCfg;\r\n _self[\"_getErrorService\"] = () => _errorServiceInstance;\r\n };\r\n\r\n _self.trackPageView = (pageView: IPageViewTelemetry) => {\r\n if (_analyticsPlugin) {\r\n const location = getLocation();\r\n if (_propertiesPlugin && _propertiesPlugin.context && _propertiesPlugin.context.telemetryTrace) {\r\n _propertiesPlugin.context.telemetryTrace.traceID = generateW3CId();\r\n _propertiesPlugin.context.telemetryTrace.name = location && location.pathname || \"_unknown_\";\r\n }\r\n _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 _self._doTeardown = (unloadCtx?: IProcessTelemetryUnloadContext, unloadState?: ITelemetryUnloadState,\r\n asyncCallback?: () => void): void | boolean => {\r\n if (_analyticsPlugin && _errorServiceInstance !== null) {\r\n _errorServiceInstance.plugin = null;\r\n if (_angularCfg) {\r\n if (_angularCfg.errorServices && Array.isArray(_angularCfg.errorServices)) {\r\n _errorServiceInstance.clearErrorHandlers();\r\n \r\n }\r\n }\r\n }\r\n \r\n if (_eventSubscription) {\r\n _eventSubscription.unsubscribe();\r\n _eventSubscription = null;\r\n }\r\n _initDefaults();\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\r\n initialize(config: IConfiguration & IConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\r\n\r\n trackPageView(pageView: IPageViewTelemetry) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n }\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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"}
|