@microsoft/applicationinsights-angularplugin-js 3.0.2 → 14.0.0

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,8 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, NgModule } from '@angular/core';
3
3
  import { PropertiesPluginIdentifier, AnalyticsPluginIdentifier } from '@microsoft/applicationinsights-common';
4
- import { isFunction, arrForEach, BaseTelemetryPlugin, getLocation, generateW3CId, _throwInternal } from '@microsoft/applicationinsights-core-js';
4
+ import { isFunction, arrForEach, BaseTelemetryPlugin, onConfigChange, isArray, getLocation, generateW3CId, _throwInternal } from '@microsoft/applicationinsights-core-js';
5
+ import dynamicProto from '@microsoft/dynamicproto-js';
5
6
  import { NavigationEnd } from '@angular/router';
7
+ import { objDeepFreeze } from '@nevware21/ts-utils';
6
8
 
7
9
  class ApplicationinsightsAngularpluginErrorService {
8
10
  constructor() {
@@ -14,6 +16,9 @@ class ApplicationinsightsAngularpluginErrorService {
14
16
  set plugin(analyticsPlugin) {
15
17
  this.analyticsPlugin = analyticsPlugin;
16
18
  }
19
+ clearErrorHandlers() {
20
+ this.errorServices = [];
21
+ }
17
22
  addErrorHandler(errorService) {
18
23
  if (errorService && isFunction(errorService.handleError)) {
19
24
  this.errorServices.push(errorService);
@@ -41,85 +46,137 @@ class ApplicationinsightsAngularpluginErrorService {
41
46
  }
42
47
  }
43
48
  ApplicationinsightsAngularpluginErrorService.instance = null;
44
- ApplicationinsightsAngularpluginErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
45
- ApplicationinsightsAngularpluginErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, providedIn: 'root' });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, decorators: [{
49
+ ApplicationinsightsAngularpluginErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
50
+ ApplicationinsightsAngularpluginErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, providedIn: "root" });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ApplicationinsightsAngularpluginErrorService, decorators: [{
47
52
  type: Injectable,
48
53
  args: [{
49
- providedIn: 'root'
54
+ providedIn: "root"
50
55
  }]
51
56
  }], ctorParameters: function () { return []; } });
52
57
 
58
+ let undefValue;
59
+ const defaultAngularExtensionConfig = objDeepFreeze({
60
+ router: { blkVal: true, v: undefValue },
61
+ errorServices: { blkVal: true, v: undefValue }
62
+ });
53
63
  // eslint-disable-next-line @angular-eslint/component-class-suffix
54
64
  class AngularPlugin extends BaseTelemetryPlugin {
55
- constructor() {
65
+ constructor(_injector) {
56
66
  super();
67
+ this._injector = _injector;
57
68
  this.priority = 186;
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
- });
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_";
70
157
  }
158
+ _analyticsPlugin.trackPageView(pageView);
71
159
  }
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
- };
81
- }
82
- initialize(config, core, extensions, pluginChain) {
83
- var _a, _b;
84
- super.initialize(config, core, extensions, pluginChain);
85
- const self = this;
86
- const ctx = self._getTelCtx();
87
- const extConfig = ctx.getExtCfg(self.identifier, { router: null, errorServices: null });
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
- });
160
+ else {
161
+ _throwInternal(_self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, "Analytics plugin is not available, Angular plugin telemetry will not be sent: ");
97
162
  }
98
- }
99
- }
100
- if (extConfig.router) {
101
- let isPageInitialLoad = true;
102
- const pageViewTelemetry = {
103
- uri: extConfig.router.url
104
163
  };
105
- self.trackPageView(pageViewTelemetry);
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;
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();
113
170
  }
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);
119
171
  }
120
172
  }
121
- });
122
- }
173
+ if (_eventSubscription) {
174
+ _eventSubscription.unsubscribe();
175
+ _eventSubscription = null;
176
+ }
177
+ _initDefaults();
178
+ };
179
+ });
123
180
  }
124
181
  /**
125
182
  * Add Part A fields to the event
@@ -129,36 +186,28 @@ class AngularPlugin extends BaseTelemetryPlugin {
129
186
  processTelemetry(event, itemCtx) {
130
187
  this.processNext(event, itemCtx);
131
188
  }
189
+ initialize(config, core, extensions, pluginChain) {
190
+ // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
191
+ }
132
192
  trackPageView(pageView) {
133
- const self = this;
134
- if (self.analyticsPlugin) {
135
- const location = getLocation();
136
- if (self.propertiesPlugin && self.propertiesPlugin.context && self.propertiesPlugin.context.telemetryTrace) {
137
- self.propertiesPlugin.context.telemetryTrace.traceID = generateW3CId();
138
- self.propertiesPlugin.context.telemetryTrace.name = location && location.pathname || '_unknown_';
139
- }
140
- self.analyticsPlugin.trackPageView(pageView);
141
- }
142
- else {
143
- _throwInternal(self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, 'Analytics plugin is not available, Angular plugin telemetry will not be sent: ');
144
- }
193
+ // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
145
194
  }
146
195
  }
147
- AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AngularPlugin, deps: [], target: i0.ɵɵFactoryTarget.Component });
148
- AngularPlugin.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AngularPlugin, selector: "lib-applicationinsights-angularplugin-js", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AngularPlugin, decorators: [{
196
+ AngularPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AngularPlugin, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
197
+ AngularPlugin.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AngularPlugin, selector: "lib-applicationinsights-angularplugin-js", usesInheritance: true, ngImport: i0, template: "", isInline: true });
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AngularPlugin, decorators: [{
150
199
  type: Component,
151
- args: [{ selector: 'lib-applicationinsights-angularplugin-js', template: `` }]
152
- }], ctorParameters: function () { return []; } });
200
+ args: [{ selector: "lib-applicationinsights-angularplugin-js", template: "" }]
201
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
153
202
 
154
203
  class ApplicationinsightsAngularpluginJsModule {
155
204
  }
156
- ApplicationinsightsAngularpluginJsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
157
- ApplicationinsightsAngularpluginJsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, declarations: [AngularPlugin], exports: [AngularPlugin] });
158
- ApplicationinsightsAngularpluginJsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, providers: [
205
+ ApplicationinsightsAngularpluginJsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
206
+ ApplicationinsightsAngularpluginJsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, declarations: [AngularPlugin], exports: [AngularPlugin] });
207
+ ApplicationinsightsAngularpluginJsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, providers: [
159
208
  ApplicationinsightsAngularpluginErrorService
160
209
  ] });
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, decorators: [{
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ApplicationinsightsAngularpluginJsModule, decorators: [{
162
211
  type: NgModule,
163
212
  args: [{
164
213
  declarations: [AngularPlugin],
@@ -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, 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, 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, generateW3CId\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 = 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
+ {"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":";;;;;;;;MAQa,4CAA4C,CAAA;AAKrD,IAAA,WAAA,GAAA;AAFQ,QAAA,IAAa,CAAA,aAAA,GAAoB,EAAE,CAAC;AAGxC,QAAA,IAAI,4CAA4C,CAAC,QAAQ,KAAK,IAAI,EAAE;AAChE,YAAA,4CAA4C,CAAC,QAAQ,GAAG,IAAI,CAAC;AAChE,SAAA;KACJ;IAED,IAAW,MAAM,CAAC,eAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;KAC1C;IAEM,kBAAkB,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;AAEM,IAAA,eAAe,CAAC,YAA2B,EAAA;QAC9C,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzC,SAAA;KACJ;AAEM,IAAA,kBAAkB,CAAC,YAA2B,EAAA;QACjD,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACrD,YAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,SAAA;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,YAAA,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,IAAG;AAC1C,gBAAA,IAAI,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;AACtC,oBAAA,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;;AA7Ca,4CAAQ,CAAA,QAAA,GAAiD,IAAK,CAAA;yIADnE,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5C,4CAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4CAA4C,cAFzC,MAAM,EAAA,CAAA,CAAA;2FAET,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBAHxD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;ACwBD,IAAI,UAAU,CAAC;AAEf,MAAM,6BAA6B,GAA6C,aAAa,CAAC;IAC1F,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAC;IACtC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAC;AAChD,CAAA,CAAC,CAAC;AAOH;AACM,MAAO,aAAc,SAAQ,mBAAmB,CAAA;AAIlD,IAAA,WAAA,CAAoB,SAAoB,EAAA;AACpC,QAAA,KAAK,EAAE,CAAC;AADQ,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAHjC,QAAA,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;AACf,QAAA,IAAU,CAAA,UAAA,GAAG,eAAe,CAAC;AAIhC,QAAA,IAAI,gBAAiC,CAAC;AACtC,QAAA,IAAI,iBAAmC,CAAC;AACxC,QAAA,IAAI,WAAoC,CAAC;AACzC,QAAA,IAAI,kBAAgC,CAAC;AACrC,QAAA,IAAI,kBAA2B,CAAC;AAChC,QAAA,IAAI,WAAmB,CAAC;AACxB,QAAA,IAAI,qBAAmE,CAAC;QAExE,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAI;YAE/C,MAAM,aAAa,GAAG,MAAK;gBACvB,gBAAgB,GAAG,IAAI,CAAC;gBACxB,iBAAiB,GAAG,IAAI,CAAC;gBACzB,WAAW,GAAG,IAAI,CAAC;gBACnB,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,WAAW,GAAG,UAAU,CAAC;AAC7B,aAAC,CAAC;AAEF,YAAA,aAAa,EAAE,CAAC;AAEhB,YAAA,KAAK,CAAC,UAAU,GAAG,CAAC,MAAgC,EAAE,IAAsB,EAAE,UAAqB,EAC/F,WAAmC,KAAI;gBACvC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAExD,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,OAAO,KAAI;;AAC9C,oBAAA,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;oBAC7B,WAAW,GAAG,GAAG,CAAC,SAAS,CAA0B,KAAK,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;oBACtG,iBAAiB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAmB,0BAA0B,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAA0B,CAAC;oBAC7G,gBAAgB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAkB,yBAAyB,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAyB,CAAC;AAEzG,oBAAA,IAAI,WAAW,CAAC,WAAW,IAAI,SAAS,EAAC;wBACrC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAC5F,qBAAA;AACD,oBAAA,qBAAqB,GAAG,qBAAqB,GAAG,qBAAqB;AACjE,0BAAE,4CAA4C,CAAC,QAAQ,CAAC;;AAI5D,oBAAA,IAAI,gBAAgB,EAAE;wBAClB,IAAI,qBAAqB,KAAK,IAAI,EAAE;AAChC,4BAAA,qBAAqB,CAAC,MAAM,GAAG,gBAAgB,CAAC;4BAChD,IAAI,WAAW,CAAC,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;gCACjE,qBAAqB,CAAC,kBAAkB,EAAE,CAAC;gCAC3C,UAAU,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,YAA2B,KAAI;AAClE,oCAAA,qBAAqB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AACxD,iCAAC,CAAC,CAAC;AACN,6BAAA;AACJ,yBAAA;AACJ,qBAAA;AAED,oBAAA,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,EAAE;;;AAIpC,wBAAA,IAAI,kBAAkB,EAAE;4BACpB,kBAAkB,CAAC,WAAW,EAAE,CAAC;AACpC,yBAAA;wBAED,IAAI,WAAW,CAAC,MAAM,EAAC;;AAEnB,4BAAA,IAAI,kBAAkB,EAAC;AACnB,gCAAA,MAAM,iBAAiB,GAAuB;AAC1C,oCAAA,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;iCAC9B,CAAC;AACF,gCAAA,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAC1C,6BAAA;;4BAGD,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;AAC7D,gCAAA,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE;oCACvB,IAAI,KAAK,YAAY,aAAa,EAAE;;AAEhC,wCAAA,IAAI,kBAAkB,EAAE;4CACpB,kBAAkB,GAAG,KAAK,CAAC;4CAC3B,OAAO;AACV,yCAAA;AACD,wCAAA,MAAM,GAAG,GAAuB;AAC5B,4CAAA,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;AAC3B,4CAAA,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;yCAC9B,CAAC;AACF,wCAAA,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,qCAAA;AACJ,iCAAA;AACL,6BAAC,CAAC,CAAC;AACN,yBAAA;AACD,wBAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;AACpC,qBAAA;iBACJ,CAAC,CAAC,CAAC;;gBAGJ,KAAK,CAAC,mBAAmB,CAAC,GAAG,MAAM,WAAW,CAAC;gBAC/C,KAAK,CAAC,kBAAkB,CAAC,GAAG,MAAM,qBAAqB,CAAC;AAC5D,aAAC,CAAC;AAEF,YAAA,KAAK,CAAC,aAAa,GAAG,CAAC,QAA4B,KAAI;AACnD,gBAAA,IAAI,gBAAgB,EAAE;AAClB,oBAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;oBAC/B,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,cAAc,EAAE;wBAC5F,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,GAAG,aAAa,EAAE,CAAC;AACnE,wBAAA,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,WAAW,CAAC;AAChG,qBAAA;AACD,oBAAA,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC5C,iBAAA;AAAM,qBAAA;AACH,oBAAA,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,EAEiD,CAAA,kCAAA,EAAA,uDAAA,gFAAgF,CAAC,CAAC;AACpK,iBAAA;AACL,aAAC,CAAC;YAGF,KAAK,CAAC,WAAW,GAAG,CAAC,SAA0C,EAAE,WAAmC,EAChG,aAA0B,KAAoB;AAC9C,gBAAA,IAAI,gBAAgB,IAAI,qBAAqB,KAAK,IAAI,EAAE;AACpD,oBAAA,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC;AACpC,oBAAA,IAAI,WAAW,EAAE;AACb,wBAAA,IAAI,WAAW,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;4BACvE,qBAAqB,CAAC,kBAAkB,EAAE,CAAC;AAE9C,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AAED,gBAAA,IAAI,kBAAkB,EAAE;oBACpB,kBAAkB,CAAC,WAAW,EAAE,CAAC;oBACjC,kBAAkB,GAAG,IAAI,CAAC;AAC7B,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC;AACpB,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;KAEN;AACD;;;;AAIG;IACH,gBAAgB,CAAC,KAAqB,EAAE,OAAkC,EAAA;AACtE,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACpC;AAGD,IAAA,UAAU,CAAC,MAAgC,EAAE,IAAsB,EAAE,UAAqB,EAAE,WAAmC,EAAA;;KAE9H;AAED,IAAA,aAAa,CAAC,QAA4B,EAAA;;KAEzC;;0GA1JQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,uGAJZ,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAIH,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0CAA0C,YAC1C,EAAE,EAAA,CAAA;;;MC3BH,wCAAwC,CAAA;;qIAAxC,wCAAwC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;sIAAxC,wCAAwC,EAAA,YAAA,EAAA,CARlC,aAAa,CAAA,EAAA,OAAA,EAAA,CAGlB,aAAa,CAAA,EAAA,CAAA,CAAA;AAKd,wCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wCAAwC,EAJtC,SAAA,EAAA;QACP,4CAA4C;AAC/C,KAAA,EAAA,CAAA,CAAA;2FAEQ,wCAAwC,EAAA,UAAA,EAAA,CAAA;kBATpD,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,aAAa,CAAC;AAC7B,oBAAA,OAAO,EAAE,EACR;oBACD,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,SAAS,EAAE;wBACP,4CAA4C;AAC/C,qBAAA;iBACJ,CAAA;;;ACZD;;AAEG;;ACFH;;AAEG;;;;"}