@microsoft/applicationinsights-debugplugin-js 2.8.1 → 2.8.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/browser/{ai.dbg.2.8.1.cjs.js → ai.dbg.2.8.2.cjs.js} +26 -21
- package/browser/ai.dbg.2.8.2.cjs.js.map +1 -0
- package/browser/ai.dbg.2.8.2.cjs.min.js +6 -0
- package/browser/ai.dbg.2.8.2.cjs.min.js.map +1 -0
- package/browser/{ai.dbg.2.8.1.gbl.js → ai.dbg.2.8.2.gbl.js} +26 -21
- package/browser/ai.dbg.2.8.2.gbl.js.map +1 -0
- package/browser/ai.dbg.2.8.2.gbl.min.js +6 -0
- package/browser/ai.dbg.2.8.2.gbl.min.js.map +1 -0
- package/browser/ai.dbg.2.8.2.integrity.json +66 -0
- package/browser/{ai.dbg.2.8.1.js → ai.dbg.2.8.2.js} +26 -21
- package/browser/ai.dbg.2.8.2.js.map +1 -0
- package/browser/ai.dbg.2.8.2.min.js +6 -0
- package/browser/ai.dbg.2.8.2.min.js.map +1 -0
- package/browser/ai.dbg.2.cjs.js +25 -20
- package/browser/ai.dbg.2.cjs.js.map +1 -1
- package/browser/ai.dbg.2.cjs.min.js +2 -2
- package/browser/ai.dbg.2.cjs.min.js.map +1 -1
- package/browser/ai.dbg.2.gbl.js +25 -20
- package/browser/ai.dbg.2.gbl.js.map +1 -1
- package/browser/ai.dbg.2.gbl.min.js +2 -2
- package/browser/ai.dbg.2.gbl.min.js.map +1 -1
- package/browser/ai.dbg.2.js +25 -20
- package/browser/ai.dbg.2.js.map +1 -1
- package/browser/ai.dbg.2.min.js +2 -2
- package/browser/ai.dbg.2.min.js.map +1 -1
- package/dist/applicationinsights-debugplugin-js.api.json +1 -1
- package/dist/applicationinsights-debugplugin-js.d.ts +1 -1
- package/dist/applicationinsights-debugplugin-js.js +25 -20
- package/dist/applicationinsights-debugplugin-js.js.map +1 -1
- package/dist/applicationinsights-debugplugin-js.min.js +2 -2
- package/dist/applicationinsights-debugplugin-js.min.js.map +1 -1
- package/dist/applicationinsights-debugplugin-js.rollup.d.ts +1 -1
- package/dist-esm/DebugPlugin.js +8 -8
- package/dist-esm/DebugPlugin.js.map +1 -1
- package/dist-esm/applicationinsights-debugplugin-js.js +1 -1
- package/dist-esm/components/Dashboard.js +5 -5
- package/dist-esm/components/Dashboard.js.map +1 -1
- package/dist-esm/components/LogEntry.js +1 -1
- package/dist-esm/components/debugBins.js +1 -1
- package/dist-esm/components/filterList.js +3 -2
- package/dist-esm/components/filterList.js.map +1 -1
- package/dist-esm/components/helpers.js +4 -4
- package/dist-esm/components/helpers.js.map +1 -1
- package/dist-esm/components/styleNodeSrc.js +1 -1
- package/dist-esm/interfaces/IDebugPluginConfig.js +1 -1
- package/package.json +4 -4
- package/src/DebugPlugin.ts +7 -7
- package/src/components/Dashboard.ts +4 -4
- package/src/components/filterList.ts +3 -1
- package/src/components/helpers.ts +3 -3
- package/types/tsdoc-metadata.json +1 -1
- package/browser/ai.dbg.2.8.1.cjs.js.map +0 -1
- package/browser/ai.dbg.2.8.1.cjs.min.js +0 -6
- package/browser/ai.dbg.2.8.1.cjs.min.js.map +0 -1
- package/browser/ai.dbg.2.8.1.gbl.js.map +0 -1
- package/browser/ai.dbg.2.8.1.gbl.min.js +0 -6
- package/browser/ai.dbg.2.8.1.gbl.min.js.map +0 -1
- package/browser/ai.dbg.2.8.1.integrity.json +0 -66
- package/browser/ai.dbg.2.8.1.js.map +0 -1
- package/browser/ai.dbg.2.8.1.min.js +0 -6
- package/browser/ai.dbg.2.8.1.min.js.map +0 -1
package/dist-esm/DebugPlugin.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.8.
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.8.2
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
import { __extendsFn as __extends } from "@microsoft/applicationinsights-shims";
|
|
8
|
-
import { BaseTelemetryPlugin, arrForEach, InstrumentFunc, objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt } from "@microsoft/applicationinsights-core-js";
|
|
8
|
+
import { BaseTelemetryPlugin, arrForEach, InstrumentFunc, objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt, arrIndexOf } from "@microsoft/applicationinsights-core-js";
|
|
9
9
|
import { Dashboard } from "./components/Dashboard";
|
|
10
10
|
import { getTargetName } from "./components/helpers";
|
|
11
11
|
import { permStyle } from "./components/styleNodeSrc";
|
|
@@ -119,16 +119,16 @@ var DebugPlugin = /** @class */ (function (_super) {
|
|
|
119
119
|
dashboard.newLogEntry(perfEvent, dateNow() - startTime, evtName, 0, "perfEvent");
|
|
120
120
|
}
|
|
121
121
|
});
|
|
122
|
-
if (trackers
|
|
122
|
+
if (arrIndexOf(trackers, "eventsSent") !== -1) {
|
|
123
123
|
foundTrackers_1.push("eventsSent");
|
|
124
124
|
}
|
|
125
|
-
if (trackers
|
|
125
|
+
if (arrIndexOf(trackers, "eventsSendRequest") !== -1) {
|
|
126
126
|
foundTrackers_1.push("eventsSendRequest");
|
|
127
127
|
}
|
|
128
|
-
if (trackers
|
|
128
|
+
if (arrIndexOf(trackers, "eventsDiscarded") !== -1) {
|
|
129
129
|
foundTrackers_1.push("eventsDiscarded");
|
|
130
130
|
}
|
|
131
|
-
if (trackers
|
|
131
|
+
if (arrIndexOf(trackers, "perfEvent") !== -1) {
|
|
132
132
|
foundTrackers_1.push("perfEvent");
|
|
133
133
|
}
|
|
134
134
|
}
|
|
@@ -168,7 +168,7 @@ var DebugPlugin = /** @class */ (function (_super) {
|
|
|
168
168
|
rsp: _handleInstPostHook()
|
|
169
169
|
}, true);
|
|
170
170
|
if (val) {
|
|
171
|
-
if (foundTrackers_1
|
|
171
|
+
if (arrIndexOf(foundTrackers_1, tracker) === -1) {
|
|
172
172
|
foundTrackers_1.push(tracker);
|
|
173
173
|
}
|
|
174
174
|
}
|
|
@@ -211,7 +211,7 @@ var DebugPlugin = /** @class */ (function (_super) {
|
|
|
211
211
|
}
|
|
212
212
|
};
|
|
213
213
|
function _addTarget(targetObjects, ext) {
|
|
214
|
-
if (ext && targetObjects
|
|
214
|
+
if (ext && arrIndexOf(targetObjects, ext) === -1) {
|
|
215
215
|
targetObjects.push(ext);
|
|
216
216
|
return true;
|
|
217
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugPlugin.js.map","sources":["DebugPlugin.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { BaseTelemetryPlugin, arrForEach, InstrumentFunc, objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Dashboard } from \"./components/Dashboard\";\r\nimport { getTargetName } from \"./components/helpers\";\r\nimport { permStyle } from \"./components/styleNodeSrc\";\r\nimport { DebugBin, DebugBinParent } from \"./components/debugBins\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar getDefaultConfig = function () {\r\n var config = {\r\n trackers: function () { return [\r\n \"flush\",\r\n \"track\",\r\n \"trackEvent\",\r\n \"trackPageView\",\r\n \"trackPageViewPerformance\",\r\n \"trackException\",\r\n \"trackTrace\",\r\n \"trackMetric\",\r\n \"trackDependencyData\",\r\n \"processTelemetry\",\r\n \"throwInternal\",\r\n \"logInternalMessage\",\r\n \"triggerSend\",\r\n \"_sender\",\r\n \"perfEvent\",\r\n \"initialize\"\r\n ]; },\r\n excludeKeys: function () { return [\r\n \"_dynInstFuncs\",\r\n \"_getTelCtx\",\r\n \"_baseTelInit\",\r\n \"diagLog\",\r\n \"isInitialized\",\r\n \"setInitialized\",\r\n \"setNextPlugin\",\r\n \"processNext\"\r\n ]; },\r\n cssPrefix: function () { return \"ai\"; },\r\n disableNotifications: function () { return false; },\r\n dumpToConsole: function () { return false; },\r\n maxMessages: function () { return 5000; },\r\n showFunctions: function () { return false; },\r\n logProcessTelemetry: function () { return false; }\r\n };\r\n return config;\r\n};\r\nvar DebugPlugin = /** @class */ (function (_super) {\r\n __extends(DebugPlugin, _super);\r\n function DebugPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = DebugPlugin.identifier;\r\n var dashboard;\r\n /**\r\n * the style that will be permanently embedded in the webpage\r\n * TODO: manage style conflicts (prepend unique ID to relevant class names?)\r\n */\r\n var permStyleEl;\r\n /**\r\n * an object containing the individual debug bin items\r\n */\r\n var debugBins;\r\n /**\r\n * the parent containing all the individual debugBins\r\n */\r\n var debugBinParent;\r\n /**\r\n * the different telemetry functions that will be tracked\r\n */\r\n var trackers;\r\n /**\r\n * timestamp used to track number of seconds since webpage was loaded\r\n */\r\n var startTime = +new Date();\r\n /**\r\n * the config for this plugin\r\n */\r\n var _theConfig = getDefaultConfig();\r\n dynamicProto(DebugPlugin, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var defaultConfig = getDefaultConfig();\r\n var ctx_1 = _self._getTelCtx();\r\n var identifier_1 = _self.identifier;\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _theConfig[field] = function () { return ctx_1.getConfig(identifier_1, field, value()); };\r\n });\r\n var foundTrackers_1 = [];\r\n trackers = _theConfig.trackers();\r\n var prefix = _theConfig.cssPrefix();\r\n // 1. Listen to Notifications\r\n if (!_theConfig.disableNotifications()) {\r\n var notifyMgr = (isFunction(core.getNotifyMgr) && core.getNotifyMgr()) || core[\"_notificationManager\"];\r\n if (notifyMgr) {\r\n notifyMgr.addNotificationListener({\r\n eventsSent: function (events) {\r\n dashboard.newLogEntry(events, dateNow() - startTime, \"Notification:eventsSent\", 0, \"eventsSent\");\r\n },\r\n eventsDiscarded: function (events, reason) {\r\n dashboard.newLogEntry({\r\n events: events,\r\n reason: reason\r\n }, dateNow() - startTime, \"Notification:eventsDiscarded\", 0, \"eventsDiscarded\");\r\n },\r\n eventsSendRequest: function (sendReason, isAsync) {\r\n dashboard.newLogEntry({\r\n sendReason: sendReason,\r\n isAsync: isAsync\r\n }, dateNow() - startTime, \"Notification:eventsSendRequest\", 0, \"eventsSendRequest\");\r\n },\r\n perfEvent: function (perfEvent) {\r\n var evtName = \"Notification:perfEvent[\".concat(perfEvent.name, \"]\");\r\n dashboard.newLogEntry(perfEvent, dateNow() - startTime, evtName, 0, \"perfEvent\");\r\n }\r\n });\r\n if (trackers.indexOf(\"eventsSent\") !== -1) {\r\n foundTrackers_1.push(\"eventsSent\");\r\n }\r\n if (trackers.indexOf(\"eventsSendRequest\") !== -1) {\r\n foundTrackers_1.push(\"eventsSendRequest\");\r\n }\r\n if (trackers.indexOf(\"eventsDiscarded\") !== -1) {\r\n foundTrackers_1.push(\"eventsDiscarded\");\r\n }\r\n if (trackers.indexOf(\"perfEvent\") !== -1) {\r\n foundTrackers_1.push(\"perfEvent\");\r\n }\r\n }\r\n }\r\n // 2. Get all of the extensions and channels\r\n debugBins = {};\r\n var targetObjects_1 = [core, _self.diagLog()];\r\n // Get all of the config extensions\r\n if (config.extensions) {\r\n arrForEach(config.extensions, function (ext) {\r\n _addTargets(targetObjects_1, ext);\r\n });\r\n }\r\n // Get all of the passed extensions\r\n if (extensions) {\r\n arrForEach(extensions, function (ext) {\r\n _addTargets(targetObjects_1, ext);\r\n });\r\n }\r\n if (isFunction(core.getTransmissionControls)) {\r\n var channelControls = core.getTransmissionControls();\r\n if (channelControls) {\r\n arrForEach(channelControls, function (channel) {\r\n if (isArray(channel)) {\r\n arrForEach(channel, function (theChannel) {\r\n _addTargets(targetObjects_1, theChannel);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n // 3. Instrument the functions\r\n arrForEach(trackers, function (tracker) {\r\n arrForEach(targetObjects_1, function (target, idx) {\r\n var val = InstrumentFunc(target, tracker, {\r\n req: _handleInstPreHook(),\r\n rsp: _handleInstPostHook()\r\n }, true);\r\n if (val) {\r\n if (foundTrackers_1.indexOf(tracker) === -1) {\r\n foundTrackers_1.push(tracker);\r\n }\r\n }\r\n });\r\n });\r\n // Sort the items\r\n foundTrackers_1 = foundTrackers_1.sort();\r\n // 4. Create the Dashboard\r\n dashboard = new Dashboard({\r\n prefix: prefix,\r\n trackers: foundTrackers_1,\r\n excludeKeys: _theConfig.excludeKeys(),\r\n maxMessages: _theConfig.maxMessages(),\r\n includeFunctions: _theConfig.showFunctions()\r\n });\r\n // 5. setup debugBin\r\n var debugBinContainer = document.createElement(\"div\");\r\n debugBinContainer.className = \"\".concat(prefix, \"-debug-bin-container\");\r\n debugBinParent = new DebugBinParent(debugBinContainer, [], 0, prefix);\r\n arrForEach(foundTrackers_1, function (tracker, idx) {\r\n debugBins[tracker] = new DebugBin(tracker, 0, debugBinParent, (idx + 1) * 50);\r\n });\r\n // 6. append permanent style\r\n permStyleEl = document.createElement(\"style\");\r\n permStyleEl.innerHTML = permStyle(prefix);\r\n document.head.appendChild(permStyleEl);\r\n // 7. add button to debugBinParent\r\n debugBinParent.addButton(function (evt) {\r\n evt.stopPropagation();\r\n if (dashboard.isDisplayed()) {\r\n dashboard.hide();\r\n }\r\n else {\r\n dashboard.show();\r\n }\r\n }, \"show dashboard\");\r\n document.body.appendChild(debugBinContainer);\r\n // 8. Log the config as \"keep\" so it won't be dropped or cleared\r\n dashboard.newLogEntry(config, 0, \"config\", 0, \"config\", true);\r\n }\r\n };\r\n function _addTarget(targetObjects, ext) {\r\n if (ext && targetObjects.indexOf(ext) === -1) {\r\n targetObjects.push(ext);\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _addTargets(targetObjects, ext) {\r\n if (_addTarget(targetObjects, ext)) {\r\n if (isFunction(ext[\"_getDbgPlgTargets\"])) {\r\n var extra = ext[\"_getDbgPlgTargets\"]();\r\n if (isArray(extra)) {\r\n arrForEach(extra, function (tgt) {\r\n _addTargets(targetObjects, tgt);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n function _createInstrumentObject(funcArgs, orgArgs) {\r\n var result = {\r\n funcName: funcArgs.name,\r\n inst: funcArgs.inst\r\n };\r\n if (orgArgs && orgArgs.length) {\r\n result.args = orgArgs;\r\n }\r\n if (!isUndefined(funcArgs.err)) {\r\n result.err = funcArgs.err;\r\n }\r\n if (!isUndefined(funcArgs.rslt)) {\r\n result.rslt = funcArgs.rslt;\r\n }\r\n return result;\r\n }\r\n function _getEvtPrefix(funcArgs) {\r\n var identifier = getTargetName(funcArgs.inst);\r\n var evtPrefix = funcArgs.name;\r\n if (identifier) {\r\n evtPrefix += \":\" + identifier;\r\n }\r\n return evtPrefix;\r\n }\r\n function _logEntry(theEvent, evtName, kind) {\r\n dashboard.newLogEntry(theEvent, dateNow() - startTime, evtName, 0, kind);\r\n var dbgExt = getDebugExt(_self.core.config);\r\n if (dbgExt && dbgExt.debugMsg) {\r\n dbgExt.debugMsg(evtName, theEvent);\r\n }\r\n }\r\n function _handleInstPreHook() {\r\n return function (funcArgs) {\r\n var orgArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n orgArgs[_i - 1] = arguments[_i];\r\n }\r\n (debugBins[funcArgs.name] || debugBins[\"default\"]).increment();\r\n if (funcArgs.name === \"trackException\" && !debugBinParent.showChildren) {\r\n debugBinParent.addClassToEl(\"notify\");\r\n }\r\n var evtPrefix = _getEvtPrefix(funcArgs);\r\n _logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(evtPrefix, \"] preProcess - funcArgs: \"), funcArgs);\r\n console.log(\"[\".concat(evtPrefix, \"] preProcess - orgArgs: \"), orgArgs);\r\n }\r\n };\r\n }\r\n function _handleInstPostHook() {\r\n return function (funcArgs) {\r\n var orgArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n orgArgs[_i - 1] = arguments[_i];\r\n }\r\n if (!isUndefined(funcArgs.err)) {\r\n var evtPrefix = _getEvtPrefix(funcArgs);\r\n if (!debugBinParent.showChildren) {\r\n debugBinParent.addClassToEl(\"notify\");\r\n }\r\n // The called function threw an exception\r\n _logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(evtPrefix, \"] complete\"));\r\n }\r\n }\r\n };\r\n }\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(_self.identifier, \":processTelemetry] complete\"));\r\n }\r\n if (!debugBins[\"processTelemetry\"] && _theConfig.logProcessTelemetry() === true) {\r\n _logEntry(event, \"[\".concat(_self.identifier, \":processTelemetry[\").concat(event.baseType, \"]\"), \"processTelemetry\");\r\n }\r\n _self.processNext(event, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n DebugPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n DebugPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n DebugPlugin.identifier = \"DebugPlugin\";\r\n return DebugPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default DebugPlugin;\r\n//# sourceMappingURL=DebugPlugin.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC,gFAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;2DAKM;AACN;AACA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"DebugPlugin.js.map","sources":["DebugPlugin.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { BaseTelemetryPlugin, arrForEach, InstrumentFunc, objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt, arrIndexOf } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Dashboard } from \"./components/Dashboard\";\r\nimport { getTargetName } from \"./components/helpers\";\r\nimport { permStyle } from \"./components/styleNodeSrc\";\r\nimport { DebugBin, DebugBinParent } from \"./components/debugBins\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar getDefaultConfig = function () {\r\n var config = {\r\n trackers: function () { return [\r\n \"flush\",\r\n \"track\",\r\n \"trackEvent\",\r\n \"trackPageView\",\r\n \"trackPageViewPerformance\",\r\n \"trackException\",\r\n \"trackTrace\",\r\n \"trackMetric\",\r\n \"trackDependencyData\",\r\n \"processTelemetry\",\r\n \"throwInternal\",\r\n \"logInternalMessage\",\r\n \"triggerSend\",\r\n \"_sender\",\r\n \"perfEvent\",\r\n \"initialize\"\r\n ]; },\r\n excludeKeys: function () { return [\r\n \"_dynInstFuncs\",\r\n \"_getTelCtx\",\r\n \"_baseTelInit\",\r\n \"diagLog\",\r\n \"isInitialized\",\r\n \"setInitialized\",\r\n \"setNextPlugin\",\r\n \"processNext\"\r\n ]; },\r\n cssPrefix: function () { return \"ai\"; },\r\n disableNotifications: function () { return false; },\r\n dumpToConsole: function () { return false; },\r\n maxMessages: function () { return 5000; },\r\n showFunctions: function () { return false; },\r\n logProcessTelemetry: function () { return false; }\r\n };\r\n return config;\r\n};\r\nvar DebugPlugin = /** @class */ (function (_super) {\r\n __extends(DebugPlugin, _super);\r\n function DebugPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = DebugPlugin.identifier;\r\n var dashboard;\r\n /**\r\n * the style that will be permanently embedded in the webpage\r\n * TODO: manage style conflicts (prepend unique ID to relevant class names?)\r\n */\r\n var permStyleEl;\r\n /**\r\n * an object containing the individual debug bin items\r\n */\r\n var debugBins;\r\n /**\r\n * the parent containing all the individual debugBins\r\n */\r\n var debugBinParent;\r\n /**\r\n * the different telemetry functions that will be tracked\r\n */\r\n var trackers;\r\n /**\r\n * timestamp used to track number of seconds since webpage was loaded\r\n */\r\n var startTime = +new Date();\r\n /**\r\n * the config for this plugin\r\n */\r\n var _theConfig = getDefaultConfig();\r\n dynamicProto(DebugPlugin, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var defaultConfig = getDefaultConfig();\r\n var ctx_1 = _self._getTelCtx();\r\n var identifier_1 = _self.identifier;\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _theConfig[field] = function () { return ctx_1.getConfig(identifier_1, field, value()); };\r\n });\r\n var foundTrackers_1 = [];\r\n trackers = _theConfig.trackers();\r\n var prefix = _theConfig.cssPrefix();\r\n // 1. Listen to Notifications\r\n if (!_theConfig.disableNotifications()) {\r\n var notifyMgr = (isFunction(core.getNotifyMgr) && core.getNotifyMgr()) || core[\"_notificationManager\"];\r\n if (notifyMgr) {\r\n notifyMgr.addNotificationListener({\r\n eventsSent: function (events) {\r\n dashboard.newLogEntry(events, dateNow() - startTime, \"Notification:eventsSent\", 0, \"eventsSent\");\r\n },\r\n eventsDiscarded: function (events, reason) {\r\n dashboard.newLogEntry({\r\n events: events,\r\n reason: reason\r\n }, dateNow() - startTime, \"Notification:eventsDiscarded\", 0, \"eventsDiscarded\");\r\n },\r\n eventsSendRequest: function (sendReason, isAsync) {\r\n dashboard.newLogEntry({\r\n sendReason: sendReason,\r\n isAsync: isAsync\r\n }, dateNow() - startTime, \"Notification:eventsSendRequest\", 0, \"eventsSendRequest\");\r\n },\r\n perfEvent: function (perfEvent) {\r\n var evtName = \"Notification:perfEvent[\".concat(perfEvent.name, \"]\");\r\n dashboard.newLogEntry(perfEvent, dateNow() - startTime, evtName, 0, \"perfEvent\");\r\n }\r\n });\r\n if (arrIndexOf(trackers, \"eventsSent\") !== -1) {\r\n foundTrackers_1.push(\"eventsSent\");\r\n }\r\n if (arrIndexOf(trackers, \"eventsSendRequest\") !== -1) {\r\n foundTrackers_1.push(\"eventsSendRequest\");\r\n }\r\n if (arrIndexOf(trackers, \"eventsDiscarded\") !== -1) {\r\n foundTrackers_1.push(\"eventsDiscarded\");\r\n }\r\n if (arrIndexOf(trackers, \"perfEvent\") !== -1) {\r\n foundTrackers_1.push(\"perfEvent\");\r\n }\r\n }\r\n }\r\n // 2. Get all of the extensions and channels\r\n debugBins = {};\r\n var targetObjects_1 = [core, _self.diagLog()];\r\n // Get all of the config extensions\r\n if (config.extensions) {\r\n arrForEach(config.extensions, function (ext) {\r\n _addTargets(targetObjects_1, ext);\r\n });\r\n }\r\n // Get all of the passed extensions\r\n if (extensions) {\r\n arrForEach(extensions, function (ext) {\r\n _addTargets(targetObjects_1, ext);\r\n });\r\n }\r\n if (isFunction(core.getTransmissionControls)) {\r\n var channelControls = core.getTransmissionControls();\r\n if (channelControls) {\r\n arrForEach(channelControls, function (channel) {\r\n if (isArray(channel)) {\r\n arrForEach(channel, function (theChannel) {\r\n _addTargets(targetObjects_1, theChannel);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n // 3. Instrument the functions\r\n arrForEach(trackers, function (tracker) {\r\n arrForEach(targetObjects_1, function (target, idx) {\r\n var val = InstrumentFunc(target, tracker, {\r\n req: _handleInstPreHook(),\r\n rsp: _handleInstPostHook()\r\n }, true);\r\n if (val) {\r\n if (arrIndexOf(foundTrackers_1, tracker) === -1) {\r\n foundTrackers_1.push(tracker);\r\n }\r\n }\r\n });\r\n });\r\n // Sort the items\r\n foundTrackers_1 = foundTrackers_1.sort();\r\n // 4. Create the Dashboard\r\n dashboard = new Dashboard({\r\n prefix: prefix,\r\n trackers: foundTrackers_1,\r\n excludeKeys: _theConfig.excludeKeys(),\r\n maxMessages: _theConfig.maxMessages(),\r\n includeFunctions: _theConfig.showFunctions()\r\n });\r\n // 5. setup debugBin\r\n var debugBinContainer = document.createElement(\"div\");\r\n debugBinContainer.className = \"\".concat(prefix, \"-debug-bin-container\");\r\n debugBinParent = new DebugBinParent(debugBinContainer, [], 0, prefix);\r\n arrForEach(foundTrackers_1, function (tracker, idx) {\r\n debugBins[tracker] = new DebugBin(tracker, 0, debugBinParent, (idx + 1) * 50);\r\n });\r\n // 6. append permanent style\r\n permStyleEl = document.createElement(\"style\");\r\n permStyleEl.innerHTML = permStyle(prefix);\r\n document.head.appendChild(permStyleEl);\r\n // 7. add button to debugBinParent\r\n debugBinParent.addButton(function (evt) {\r\n evt.stopPropagation();\r\n if (dashboard.isDisplayed()) {\r\n dashboard.hide();\r\n }\r\n else {\r\n dashboard.show();\r\n }\r\n }, \"show dashboard\");\r\n document.body.appendChild(debugBinContainer);\r\n // 8. Log the config as \"keep\" so it won't be dropped or cleared\r\n dashboard.newLogEntry(config, 0, \"config\", 0, \"config\", true);\r\n }\r\n };\r\n function _addTarget(targetObjects, ext) {\r\n if (ext && arrIndexOf(targetObjects, ext) === -1) {\r\n targetObjects.push(ext);\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _addTargets(targetObjects, ext) {\r\n if (_addTarget(targetObjects, ext)) {\r\n if (isFunction(ext[\"_getDbgPlgTargets\"])) {\r\n var extra = ext[\"_getDbgPlgTargets\"]();\r\n if (isArray(extra)) {\r\n arrForEach(extra, function (tgt) {\r\n _addTargets(targetObjects, tgt);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n function _createInstrumentObject(funcArgs, orgArgs) {\r\n var result = {\r\n funcName: funcArgs.name,\r\n inst: funcArgs.inst\r\n };\r\n if (orgArgs && orgArgs.length) {\r\n result.args = orgArgs;\r\n }\r\n if (!isUndefined(funcArgs.err)) {\r\n result.err = funcArgs.err;\r\n }\r\n if (!isUndefined(funcArgs.rslt)) {\r\n result.rslt = funcArgs.rslt;\r\n }\r\n return result;\r\n }\r\n function _getEvtPrefix(funcArgs) {\r\n var identifier = getTargetName(funcArgs.inst);\r\n var evtPrefix = funcArgs.name;\r\n if (identifier) {\r\n evtPrefix += \":\" + identifier;\r\n }\r\n return evtPrefix;\r\n }\r\n function _logEntry(theEvent, evtName, kind) {\r\n dashboard.newLogEntry(theEvent, dateNow() - startTime, evtName, 0, kind);\r\n var dbgExt = getDebugExt(_self.core.config);\r\n if (dbgExt && dbgExt.debugMsg) {\r\n dbgExt.debugMsg(evtName, theEvent);\r\n }\r\n }\r\n function _handleInstPreHook() {\r\n return function (funcArgs) {\r\n var orgArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n orgArgs[_i - 1] = arguments[_i];\r\n }\r\n (debugBins[funcArgs.name] || debugBins[\"default\"]).increment();\r\n if (funcArgs.name === \"trackException\" && !debugBinParent.showChildren) {\r\n debugBinParent.addClassToEl(\"notify\");\r\n }\r\n var evtPrefix = _getEvtPrefix(funcArgs);\r\n _logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(evtPrefix, \"] preProcess - funcArgs: \"), funcArgs);\r\n console.log(\"[\".concat(evtPrefix, \"] preProcess - orgArgs: \"), orgArgs);\r\n }\r\n };\r\n }\r\n function _handleInstPostHook() {\r\n return function (funcArgs) {\r\n var orgArgs = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n orgArgs[_i - 1] = arguments[_i];\r\n }\r\n if (!isUndefined(funcArgs.err)) {\r\n var evtPrefix = _getEvtPrefix(funcArgs);\r\n if (!debugBinParent.showChildren) {\r\n debugBinParent.addClassToEl(\"notify\");\r\n }\r\n // The called function threw an exception\r\n _logEntry(_createInstrumentObject(funcArgs, orgArgs), evtPrefix, funcArgs.name);\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(evtPrefix, \"] complete\"));\r\n }\r\n }\r\n };\r\n }\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (_theConfig.dumpToConsole() && console && console.log) {\r\n console.log(\"[\".concat(_self.identifier, \":processTelemetry] complete\"));\r\n }\r\n if (!debugBins[\"processTelemetry\"] && _theConfig.logProcessTelemetry() === true) {\r\n _logEntry(event, \"[\".concat(_self.identifier, \":processTelemetry[\").concat(event.baseType, \"]\"), \"processTelemetry\");\r\n }\r\n _self.processNext(event, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n DebugPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n DebugPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n DebugPlugin.identifier = \"DebugPlugin\";\r\n return DebugPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default DebugPlugin;\r\n//# sourceMappingURL=DebugPlugin.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC,gFAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;2DAKM;AACN;AACA;AACA;AACA;AACA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.8.
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.8.2
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
|
-
import { arrForEach } from "@microsoft/applicationinsights-core-js";
|
|
5
|
+
import { arrForEach, arrIndexOf } from "@microsoft/applicationinsights-core-js";
|
|
6
6
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
7
7
|
import { tempStyle } from "./styleNodeSrc";
|
|
8
8
|
import { FilterList } from "./filterList";
|
|
@@ -112,12 +112,12 @@ var Dashboard = /** @class */ (function () {
|
|
|
112
112
|
return;
|
|
113
113
|
}
|
|
114
114
|
var type = entry.getKind();
|
|
115
|
-
var allowOther = excludedTypes_1
|
|
116
|
-
if (trackers
|
|
115
|
+
var allowOther = arrIndexOf(excludedTypes_1, "other") === -1; // Other types are not excluded
|
|
116
|
+
if (arrIndexOf(trackers, type) === -1 && !allowOther) {
|
|
117
117
|
// Not a tracked type and we are not allowing other types
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
120
|
-
else if (excludedTypes_1
|
|
120
|
+
else if (arrIndexOf(excludedTypes_1, type) !== -1) {
|
|
121
121
|
// This type is explicitly excluded
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.js.map","sources":["Dashboard.js"],"sourcesContent":["import { arrForEach } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { tempStyle } from \"./styleNodeSrc\";\r\nimport { FilterList } from \"./filterList\";\r\nimport { LogEntry } from \"./LogEntry\";\r\nimport { copySelectedTree } from \"./helpers\";\r\nvar Dashboard = /** @class */ (function () {\r\n function Dashboard(config) {\r\n var _this = this;\r\n var msgTracker = [];\r\n var textFilter = \"\";\r\n /**\r\n * the root element of the logger\r\n */\r\n var rootElement;\r\n /**\r\n * the style that is only on the webpage when the log is active\r\n */\r\n var tempStyleEl;\r\n var filterList;\r\n var loggerEl;\r\n dynamicProto(Dashboard, this, function (_self) {\r\n var prefix = config.prefix;\r\n var trackers = config.trackers;\r\n var rootEl = rootElement = document.createElement(\"div\");\r\n rootEl.className = \"\".concat(prefix, \"-dbg-lgr-dashboard\");\r\n tempStyleEl = document.createElement(\"style\");\r\n tempStyleEl.innerHTML = tempStyle(prefix);\r\n // TODO: research more accessibility (aria)\r\n rootEl.style.position = \"fixed\";\r\n rootEl.style.width = \"100vw\";\r\n rootEl.style.height = \"100vh\";\r\n rootEl.style.backgroundColor = \"#ffffff\";\r\n rootEl.style.opacity = \"1\";\r\n rootEl.style.pointerEvents = \"auto\";\r\n rootEl.style.top = \"-100%\";\r\n rootEl.style.transition = \".2s top cubic-bezier(0.87, 0, 0.13, 1)\";\r\n var logHeading = document.createElement(\"h1\");\r\n logHeading.textContent = \"dashboard\";\r\n logHeading.style.fontFamily = \"monospace\";\r\n logHeading.style.textAlign = \"center\";\r\n rootEl.appendChild(logHeading);\r\n _createLogger(rootEl, prefix, trackers);\r\n _self.getElm = function () {\r\n return rootEl;\r\n };\r\n _self.isDisplayed = function () {\r\n return !!(rootEl.parentElement || rootEl.parentNode);\r\n };\r\n _self.getTextFilter = function () {\r\n return textFilter;\r\n };\r\n _self.setTextFilter = function (value) {\r\n if (value !== textFilter) {\r\n textFilter = value;\r\n _self.render();\r\n }\r\n };\r\n _self.getTrackers = function () {\r\n return trackers;\r\n };\r\n _self.newLogEntry = function (target, tm, key, level, kind, keep) {\r\n var _self = _this;\r\n msgTracker.push(new LogEntry(target, tm, key, level, kind, keep));\r\n if (msgTracker.length > config.maxMessages) {\r\n var lp = 0;\r\n while (lp < msgTracker.length) {\r\n var entry = msgTracker[lp];\r\n if (!entry.isKeep()) {\r\n var el = entry.getEl();\r\n if (el && el.parentElement) {\r\n el.parentElement.removeChild(el);\r\n }\r\n msgTracker.splice(lp, 1);\r\n break;\r\n }\r\n lp++;\r\n }\r\n }\r\n _self.render();\r\n };\r\n _self.show = function () {\r\n if (!_this.isDisplayed()) {\r\n document.body.appendChild(rootEl);\r\n document.head.appendChild(tempStyleEl);\r\n rootEl.style.top = \"0%\";\r\n rootEl.style.pointerEvents = \"auto\";\r\n _self.render();\r\n }\r\n };\r\n _self.hide = function () {\r\n if (_self.isDisplayed()) {\r\n rootEl.style.top = \"-100%\";\r\n rootEl.style.pointerEvents = \"none\";\r\n document.head.removeChild(tempStyleEl);\r\n document.body.removeChild(rootEl);\r\n }\r\n };\r\n _self.render = function () {\r\n if (_self.isDisplayed()) {\r\n var excludedTypes_1 = filterList.getCurrentFilter();\r\n arrForEach(msgTracker, function (entry) {\r\n var el = entry.getEl();\r\n if (el && el.parentElement) {\r\n el.parentElement.removeChild(el);\r\n }\r\n if (!entry.isMatch(textFilter, config.excludeKeys, config.includeFunctions)) {\r\n return;\r\n }\r\n var type = entry.getKind();\r\n var allowOther = excludedTypes_1.indexOf(\"other\") === -1; // Other types are not excluded\r\n if (trackers.indexOf(type) === -1 && !allowOther) {\r\n // Not a tracked type and we are not allowing other types\r\n return;\r\n }\r\n else if (excludedTypes_1.indexOf(type) !== -1) {\r\n // This type is explicitly excluded\r\n return;\r\n }\r\n var newEl = entry.render(textFilter, config.excludeKeys, config.includeFunctions);\r\n if (newEl) {\r\n loggerEl.appendChild(newEl);\r\n }\r\n });\r\n }\r\n };\r\n function clearEvents() {\r\n var newEvents = [];\r\n arrForEach(msgTracker, function (entry) {\r\n if (entry.isKeep()) {\r\n newEvents.push(entry);\r\n }\r\n else {\r\n var el = entry.getEl();\r\n if (el && el.parentElement) {\r\n el.parentElement.removeChild(el);\r\n }\r\n }\r\n });\r\n msgTracker = newEvents;\r\n _self.render();\r\n }\r\n function closeDashboard() {\r\n _self.hide();\r\n }\r\n function _createLogger(hostDiv, prefix, trackers) {\r\n loggerEl = document.createElement(\"div\");\r\n loggerEl.className = \"\".concat(prefix, \"-dbg-lgr\");\r\n var controlDiv = document.createElement(\"div\");\r\n controlDiv.className = \"controls\";\r\n var textFilterInput = document.createElement(\"input\");\r\n textFilterInput.className = \"text-filter-input\";\r\n textFilterInput.setAttribute(\"placeholder\", \"filter text\");\r\n textFilterInput.onchange = function (evt) {\r\n _self.setTextFilter(textFilterInput.value);\r\n };\r\n textFilterInput.onblur = function (evt) {\r\n _self.setTextFilter(textFilterInput.value);\r\n };\r\n textFilterInput.onkeyup = function (evt) {\r\n if (keyupTimer != null) {\r\n clearTimeout(keyupTimer);\r\n }\r\n var newValue = textFilterInput.value;\r\n if (newValue !== _self.getTextFilter()) {\r\n keyupTimer = setTimeout(function () {\r\n keyupTimer = null;\r\n _self.setTextFilter(textFilterInput.value);\r\n }, 200);\r\n }\r\n };\r\n controlDiv.appendChild(textFilterInput);\r\n var copyButton = document.createElement(\"button\");\r\n copyButton.innerText = \"copy current node\";\r\n copyButton.className = \"btn-secondary\";\r\n copyButton.onclick = copySelectedTree;\r\n copyButton.ontouchend = copySelectedTree;\r\n var keyupTimer = null;\r\n filterList = new FilterList(controlDiv, trackers.slice(0), function () { return _self.render(); });\r\n controlDiv.appendChild(copyButton);\r\n var clearEventsBtn = document.createElement(\"button\");\r\n clearEventsBtn.innerText = \"clear events\";\r\n clearEventsBtn.className = \"btn-secondary\";\r\n clearEventsBtn.onclick = clearEvents;\r\n clearEventsBtn.ontouchend = clearEvents;\r\n controlDiv.appendChild(clearEventsBtn);\r\n var closeEventsBtn = document.createElement(\"button\");\r\n closeEventsBtn.id = \"close-dashboard\";\r\n closeEventsBtn.innerText = \"close dashboard\";\r\n closeEventsBtn.className = \"btn-primary\";\r\n closeEventsBtn.onclick = closeDashboard;\r\n closeEventsBtn.ontouchend = closeDashboard;\r\n controlDiv.appendChild(closeEventsBtn);\r\n hostDiv.appendChild(controlDiv);\r\n hostDiv.appendChild(loggerEl);\r\n }\r\n });\r\n }\r\n Dashboard.prototype.getElm = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n Dashboard.prototype.isDisplayed = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n Dashboard.prototype.getTextFilter = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n Dashboard.prototype.setTextFilter = function (value) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Dashboard.prototype.getTrackers = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n Dashboard.prototype.newLogEntry = function (target, tm, key, level, kind, keep) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Dashboard.prototype.render = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Dashboard.prototype.show = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Dashboard.prototype.hide = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return Dashboard;\r\n}());\r\nexport { Dashboard };\r\n//# sourceMappingURL=Dashboard.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;6CA8BM;AACN;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"Dashboard.js.map","sources":["Dashboard.js"],"sourcesContent":["import { arrForEach, arrIndexOf } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { tempStyle } from \"./styleNodeSrc\";\r\nimport { FilterList } from \"./filterList\";\r\nimport { LogEntry } from \"./LogEntry\";\r\nimport { copySelectedTree } from \"./helpers\";\r\nvar Dashboard = /** @class */ (function () {\r\n function Dashboard(config) {\r\n var _this = this;\r\n var msgTracker = [];\r\n var textFilter = \"\";\r\n /**\r\n * the root element of the logger\r\n */\r\n var rootElement;\r\n /**\r\n * the style that is only on the webpage when the log is active\r\n */\r\n var tempStyleEl;\r\n var filterList;\r\n var loggerEl;\r\n dynamicProto(Dashboard, this, function (_self) {\r\n var prefix = config.prefix;\r\n var trackers = config.trackers;\r\n var rootEl = rootElement = document.createElement(\"div\");\r\n rootEl.className = \"\".concat(prefix, \"-dbg-lgr-dashboard\");\r\n tempStyleEl = document.createElement(\"style\");\r\n tempStyleEl.innerHTML = tempStyle(prefix);\r\n // TODO: research more accessibility (aria)\r\n rootEl.style.position = \"fixed\";\r\n rootEl.style.width = \"100vw\";\r\n rootEl.style.height = \"100vh\";\r\n rootEl.style.backgroundColor = \"#ffffff\";\r\n rootEl.style.opacity = \"1\";\r\n rootEl.style.pointerEvents = \"auto\";\r\n rootEl.style.top = \"-100%\";\r\n rootEl.style.transition = \".2s top cubic-bezier(0.87, 0, 0.13, 1)\";\r\n var logHeading = document.createElement(\"h1\");\r\n logHeading.textContent = \"dashboard\";\r\n logHeading.style.fontFamily = \"monospace\";\r\n logHeading.style.textAlign = \"center\";\r\n rootEl.appendChild(logHeading);\r\n _createLogger(rootEl, prefix, trackers);\r\n _self.getElm = function () {\r\n return rootEl;\r\n };\r\n _self.isDisplayed = function () {\r\n return !!(rootEl.parentElement || rootEl.parentNode);\r\n };\r\n _self.getTextFilter = function () {\r\n return textFilter;\r\n };\r\n _self.setTextFilter = function (value) {\r\n if (value !== textFilter) {\r\n textFilter = value;\r\n _self.render();\r\n }\r\n };\r\n _self.getTrackers = function () {\r\n return trackers;\r\n };\r\n _self.newLogEntry = function (target, tm, key, level, kind, keep) {\r\n var _self = _this;\r\n msgTracker.push(new LogEntry(target, tm, key, level, kind, keep));\r\n if (msgTracker.length > config.maxMessages) {\r\n var lp = 0;\r\n while (lp < msgTracker.length) {\r\n var entry = msgTracker[lp];\r\n if (!entry.isKeep()) {\r\n var el = entry.getEl();\r\n if (el && el.parentElement) {\r\n el.parentElement.removeChild(el);\r\n }\r\n msgTracker.splice(lp, 1);\r\n break;\r\n }\r\n lp++;\r\n }\r\n }\r\n _self.render();\r\n };\r\n _self.show = function () {\r\n if (!_this.isDisplayed()) {\r\n document.body.appendChild(rootEl);\r\n document.head.appendChild(tempStyleEl);\r\n rootEl.style.top = \"0%\";\r\n rootEl.style.pointerEvents = \"auto\";\r\n _self.render();\r\n }\r\n };\r\n _self.hide = function () {\r\n if (_self.isDisplayed()) {\r\n rootEl.style.top = \"-100%\";\r\n rootEl.style.pointerEvents = \"none\";\r\n document.head.removeChild(tempStyleEl);\r\n document.body.removeChild(rootEl);\r\n }\r\n };\r\n _self.render = function () {\r\n if (_self.isDisplayed()) {\r\n var excludedTypes_1 = filterList.getCurrentFilter();\r\n arrForEach(msgTracker, function (entry) {\r\n var el = entry.getEl();\r\n if (el && el.parentElement) {\r\n el.parentElement.removeChild(el);\r\n }\r\n if (!entry.isMatch(textFilter, config.excludeKeys, config.includeFunctions)) {\r\n return;\r\n }\r\n var type = entry.getKind();\r\n var allowOther = arrIndexOf(excludedTypes_1, \"other\") === -1; // Other types are not excluded\r\n if (arrIndexOf(trackers, type) === -1 && !allowOther) {\r\n // Not a tracked type and we are not allowing other types\r\n return;\r\n }\r\n else if (arrIndexOf(excludedTypes_1, type) !== -1) {\r\n // This type is explicitly excluded\r\n return;\r\n }\r\n var newEl = entry.render(textFilter, config.excludeKeys, config.includeFunctions);\r\n if (newEl) {\r\n loggerEl.appendChild(newEl);\r\n }\r\n });\r\n }\r\n };\r\n function clearEvents() {\r\n var newEvents = [];\r\n arrForEach(msgTracker, function (entry) {\r\n if (entry.isKeep()) {\r\n newEvents.push(entry);\r\n }\r\n else {\r\n var el = entry.getEl();\r\n if (el && el.parentElement) {\r\n el.parentElement.removeChild(el);\r\n }\r\n }\r\n });\r\n msgTracker = newEvents;\r\n _self.render();\r\n }\r\n function closeDashboard() {\r\n _self.hide();\r\n }\r\n function _createLogger(hostDiv, prefix, trackers) {\r\n loggerEl = document.createElement(\"div\");\r\n loggerEl.className = \"\".concat(prefix, \"-dbg-lgr\");\r\n var controlDiv = document.createElement(\"div\");\r\n controlDiv.className = \"controls\";\r\n var textFilterInput = document.createElement(\"input\");\r\n textFilterInput.className = \"text-filter-input\";\r\n textFilterInput.setAttribute(\"placeholder\", \"filter text\");\r\n textFilterInput.onchange = function (evt) {\r\n _self.setTextFilter(textFilterInput.value);\r\n };\r\n textFilterInput.onblur = function (evt) {\r\n _self.setTextFilter(textFilterInput.value);\r\n };\r\n textFilterInput.onkeyup = function (evt) {\r\n if (keyupTimer != null) {\r\n clearTimeout(keyupTimer);\r\n }\r\n var newValue = textFilterInput.value;\r\n if (newValue !== _self.getTextFilter()) {\r\n keyupTimer = setTimeout(function () {\r\n keyupTimer = null;\r\n _self.setTextFilter(textFilterInput.value);\r\n }, 200);\r\n }\r\n };\r\n controlDiv.appendChild(textFilterInput);\r\n var copyButton = document.createElement(\"button\");\r\n copyButton.innerText = \"copy current node\";\r\n copyButton.className = \"btn-secondary\";\r\n copyButton.onclick = copySelectedTree;\r\n copyButton.ontouchend = copySelectedTree;\r\n var keyupTimer = null;\r\n filterList = new FilterList(controlDiv, trackers.slice(0), function () { return _self.render(); });\r\n controlDiv.appendChild(copyButton);\r\n var clearEventsBtn = document.createElement(\"button\");\r\n clearEventsBtn.innerText = \"clear events\";\r\n clearEventsBtn.className = \"btn-secondary\";\r\n clearEventsBtn.onclick = clearEvents;\r\n clearEventsBtn.ontouchend = clearEvents;\r\n controlDiv.appendChild(clearEventsBtn);\r\n var closeEventsBtn = document.createElement(\"button\");\r\n closeEventsBtn.id = \"close-dashboard\";\r\n closeEventsBtn.innerText = \"close dashboard\";\r\n closeEventsBtn.className = \"btn-primary\";\r\n closeEventsBtn.onclick = closeDashboard;\r\n closeEventsBtn.ontouchend = closeDashboard;\r\n controlDiv.appendChild(closeEventsBtn);\r\n hostDiv.appendChild(controlDiv);\r\n hostDiv.appendChild(loggerEl);\r\n }\r\n });\r\n }\r\n Dashboard.prototype.getElm = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n Dashboard.prototype.isDisplayed = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n Dashboard.prototype.getTextFilter = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n Dashboard.prototype.setTextFilter = function (value) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Dashboard.prototype.getTrackers = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n Dashboard.prototype.newLogEntry = function (target, tm, key, level, kind, keep) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Dashboard.prototype.render = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Dashboard.prototype.show = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Dashboard.prototype.hide = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return Dashboard;\r\n}());\r\nexport { Dashboard };\r\n//# sourceMappingURL=Dashboard.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;6CA8BM;AACN;AACA;AACA;AACA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.8.
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.8.2
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
import { isBoolean, isNumber, isObject, isString, objToString } from "@microsoft/applicationinsights-core-js";
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.8.
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.8.2
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
|
|
7
|
+
import { arrIndexOf } from "@microsoft/applicationinsights-core-js";
|
|
7
8
|
var FilterList = /** @class */ (function () {
|
|
8
9
|
function FilterList(parent, trackers, toggleCb) {
|
|
9
10
|
var _this = this;
|
|
@@ -59,7 +60,7 @@ var FilterList = /** @class */ (function () {
|
|
|
59
60
|
ch.childNodes[0].className = "checkbox off";
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
_self.filterList.splice(_self.filterList
|
|
63
|
+
_self.filterList.splice(arrIndexOf(_self.filterList, t), 1);
|
|
63
64
|
checkbox.className = "checkbox on";
|
|
64
65
|
}
|
|
65
66
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterList.js.map","sources":["filterList.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar FilterList = /** @class */ (function () {\r\n function FilterList(parent, trackers, toggleCb) {\r\n var _this = this;\r\n this.children = [];\r\n this.getCurrentFilter = function () {\r\n return _this.filterList;\r\n };\r\n var _self = this;\r\n var active = false;\r\n trackers = trackers.concat(\"other\");\r\n _self.filterList = [];\r\n _self.el = document.createElement(\"div\");\r\n _self.el.className = \"filterlist\";\r\n var inputEl = document.createElement(\"div\");\r\n inputEl.className = \"filterlist-input\";\r\n inputEl.innerText = \"filter nodes...\";\r\n _self.el.appendChild(inputEl);\r\n var dropdownMenuEl = document.createElement(\"div\");\r\n dropdownMenuEl.className = \"filterlist-dropdown\";\r\n _self.el.appendChild(dropdownMenuEl);\r\n dropdownMenuEl.onkeyup = function (evt) {\r\n if (active && evt.keyCode === 27) {\r\n evt.stopPropagation();\r\n _hideDropdown();\r\n }\r\n };\r\n var _loop_1 = function (t) {\r\n var chEl = document.createElement(\"div\");\r\n chEl.setAttribute(\"tabindex\", \"0\");\r\n chEl.setAttribute(\"filter-type\", t);\r\n chEl.className = \"filterlist-toggle\";\r\n var checkbox = document.createElement(\"div\");\r\n checkbox.className = \"checkbox on\";\r\n var label = document.createElement(\"span\");\r\n label.className = \"label\";\r\n label.innerText = t;\r\n chEl.appendChild(checkbox);\r\n chEl.appendChild(label);\r\n chEl.onkeyup = function (evt) {\r\n if (active && evt.keyCode === 27) {\r\n evt.stopPropagation();\r\n _hideDropdown();\r\n }\r\n };\r\n chEl.onclick = function (evt) {\r\n evt.stopPropagation();\r\n chEl.focus();\r\n if (checkbox.className === \"checkbox off\") {\r\n if (evt.shiftKey) {\r\n _self.filterList = trackers.concat();\r\n for (var _i = 0, _a = _self.children; _i < _a.length; _i++) {\r\n var ch = _a[_i];\r\n ch.childNodes[0].className = \"checkbox off\";\r\n }\r\n }\r\n _self.filterList.splice(_self.filterList
|
|
1
|
+
{"version":3,"file":"filterList.js.map","sources":["filterList.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrIndexOf } from \"@microsoft/applicationinsights-core-js\";\r\nvar FilterList = /** @class */ (function () {\r\n function FilterList(parent, trackers, toggleCb) {\r\n var _this = this;\r\n this.children = [];\r\n this.getCurrentFilter = function () {\r\n return _this.filterList;\r\n };\r\n var _self = this;\r\n var active = false;\r\n trackers = trackers.concat(\"other\");\r\n _self.filterList = [];\r\n _self.el = document.createElement(\"div\");\r\n _self.el.className = \"filterlist\";\r\n var inputEl = document.createElement(\"div\");\r\n inputEl.className = \"filterlist-input\";\r\n inputEl.innerText = \"filter nodes...\";\r\n _self.el.appendChild(inputEl);\r\n var dropdownMenuEl = document.createElement(\"div\");\r\n dropdownMenuEl.className = \"filterlist-dropdown\";\r\n _self.el.appendChild(dropdownMenuEl);\r\n dropdownMenuEl.onkeyup = function (evt) {\r\n if (active && evt.keyCode === 27) {\r\n evt.stopPropagation();\r\n _hideDropdown();\r\n }\r\n };\r\n var _loop_1 = function (t) {\r\n var chEl = document.createElement(\"div\");\r\n chEl.setAttribute(\"tabindex\", \"0\");\r\n chEl.setAttribute(\"filter-type\", t);\r\n chEl.className = \"filterlist-toggle\";\r\n var checkbox = document.createElement(\"div\");\r\n checkbox.className = \"checkbox on\";\r\n var label = document.createElement(\"span\");\r\n label.className = \"label\";\r\n label.innerText = t;\r\n chEl.appendChild(checkbox);\r\n chEl.appendChild(label);\r\n chEl.onkeyup = function (evt) {\r\n if (active && evt.keyCode === 27) {\r\n evt.stopPropagation();\r\n _hideDropdown();\r\n }\r\n };\r\n chEl.onclick = function (evt) {\r\n evt.stopPropagation();\r\n chEl.focus();\r\n if (checkbox.className === \"checkbox off\") {\r\n if (evt.shiftKey) {\r\n _self.filterList = trackers.concat();\r\n for (var _i = 0, _a = _self.children; _i < _a.length; _i++) {\r\n var ch = _a[_i];\r\n ch.childNodes[0].className = \"checkbox off\";\r\n }\r\n }\r\n _self.filterList.splice(arrIndexOf(_self.filterList, t), 1);\r\n checkbox.className = \"checkbox on\";\r\n }\r\n else {\r\n if (evt.shiftKey) {\r\n _self.filterList = [];\r\n for (var _b = 0, _c = _self.children; _b < _c.length; _b++) {\r\n var ch = _c[_b];\r\n ch.childNodes[0].className = \"checkbox on\";\r\n }\r\n }\r\n _self.filterList.push(t);\r\n checkbox.className = \"checkbox off\";\r\n }\r\n toggleCb();\r\n };\r\n _self.children.push(chEl);\r\n };\r\n for (var _i = 0, trackers_1 = trackers; _i < trackers_1.length; _i++) {\r\n var t = trackers_1[_i];\r\n _loop_1(t);\r\n }\r\n function _hideDropdown() {\r\n active = false;\r\n for (var _i = 0, _a = _self.children; _i < _a.length; _i++) {\r\n var ch = _a[_i];\r\n dropdownMenuEl.removeChild(ch);\r\n }\r\n }\r\n function _showDropdown() {\r\n active = true;\r\n for (var _i = 0, _a = _self.children; _i < _a.length; _i++) {\r\n var ch = _a[_i];\r\n dropdownMenuEl.appendChild(ch);\r\n }\r\n dropdownMenuEl.focus();\r\n }\r\n _self.el.onkeyup = function (evt) {\r\n if (active && evt.keyCode === 27) {\r\n evt.stopPropagation();\r\n _hideDropdown();\r\n }\r\n };\r\n _self.el.onclick = function () {\r\n if (!active) {\r\n _showDropdown();\r\n }\r\n else {\r\n _hideDropdown();\r\n }\r\n };\r\n parent.appendChild(_self.el);\r\n }\r\n return FilterList;\r\n}());\r\nexport { FilterList };\r\n//# sourceMappingURL=filterList.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Debug Plugin, 2.8.
|
|
2
|
+
* Application Insights JavaScript SDK - Debug Plugin, 2.8.2
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -211,7 +211,7 @@ export function getTargetKeys(target, excludedKeys, includeFunctions) {
|
|
|
211
211
|
if (propKeys) {
|
|
212
212
|
arrForEach(propKeys, function (key) {
|
|
213
213
|
var theKey = _toString(key);
|
|
214
|
-
if (theKey && keys
|
|
214
|
+
if (theKey && arrIndexOf(keys, theKey) === -1) {
|
|
215
215
|
keys.push(key);
|
|
216
216
|
}
|
|
217
217
|
});
|
|
@@ -229,7 +229,7 @@ export function getTargetKeys(target, excludedKeys, includeFunctions) {
|
|
|
229
229
|
return;
|
|
230
230
|
}
|
|
231
231
|
var theKey = _toString(key);
|
|
232
|
-
if (theKey && excludedKeys
|
|
232
|
+
if (theKey && arrIndexOf(excludedKeys, theKey) === -1) {
|
|
233
233
|
theKeys.push(theKey);
|
|
234
234
|
}
|
|
235
235
|
});
|
|
@@ -273,7 +273,7 @@ export function formatLogElements(target, tmLabel, key, level, textFilter, exclu
|
|
|
273
273
|
}
|
|
274
274
|
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
275
275
|
var key_1 = keys_1[_i];
|
|
276
|
-
if (excludeKeys
|
|
276
|
+
if (arrIndexOf(excludeKeys, key_1) !== -1) {
|
|
277
277
|
continue;
|
|
278
278
|
}
|
|
279
279
|
var targetValue = target[key_1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js.map","sources":["helpers.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, hasOwnProperty, isFunction, isObject, isString, isSymbol, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Util } from \"@microsoft/applicationinsights-common\";\r\nimport { strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nvar strConstructor = \"constructor\";\r\nvar strGetOwnPropertyNames = \"getOwnPropertyNames\";\r\nexport var MAX_DEPTH = 16;\r\nexport function makeRegex(value) {\r\n if (value && value.length > 0) {\r\n // Escape any slashes first!\r\n value = value.replace(/\\\\/g, \"\\\\\\\\\");\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n value = value.replace(/([\\+\\?\\|\\{\\}\\[\\]\\(\\)\\^\\$\\#\\.\\=\\!\\:\\/])/g, \"\\\\$1\");\r\n value = value.replace(/\\*/g, \".*\");\r\n return new RegExp(\"(\" + value + \")\");\r\n }\r\n return null;\r\n}\r\nexport function toggleClassName(el, className) {\r\n var idx = el.className.indexOf(className);\r\n if (idx === -1) {\r\n el.className += className;\r\n }\r\n else {\r\n el.className = el.className.substring(0, idx) + el.className.substring(idx + className.length);\r\n }\r\n}\r\nexport function traverseAndReplace(target, maxDepth, currentDepth, thingsReferenced, excludedKeys, includeFunctions) {\r\n var out = {};\r\n if (!thingsReferenced) {\r\n thingsReferenced = [];\r\n }\r\n if (isObject(target)) {\r\n for (var _i = 0, _a = getTargetKeys(target, excludedKeys, includeFunctions); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n var targetValue = target[key];\r\n if (isSymbol(targetValue)) {\r\n targetValue = targetValue.toString();\r\n }\r\n if (targetValue !== null && arrIndexOf(thingsReferenced, targetValue) !== -1) {\r\n out[key] = \"<circular (\".concat(key, \" - \\\"\").concat(getTargetName(targetValue), \"\\\")>\");\r\n }\r\n else if (targetValue !== null && isObject(targetValue)) {\r\n if (currentDepth >= maxDepth) {\r\n out[key] = \"<max allowed depth reached>\";\r\n }\r\n else {\r\n thingsReferenced.push(target);\r\n out[key] = traverseAndReplace(targetValue, maxDepth, currentDepth + 1, thingsReferenced, excludedKeys, includeFunctions);\r\n thingsReferenced.pop();\r\n }\r\n }\r\n else {\r\n out[key] = targetValue;\r\n }\r\n }\r\n }\r\n return out;\r\n}\r\nfunction _sanitizeText(value) {\r\n if (value) {\r\n value = value.replace(/&/g, \"&\");\r\n value = value.replace(/>/g, \">\");\r\n value = value.replace(/</g, \"<\");\r\n }\r\n return value;\r\n}\r\nfunction _setInnerText(elm, theText, textFilter) {\r\n var innerText = theText;\r\n var matchPos = -1;\r\n var matchLen = 0;\r\n var rg = makeRegex(textFilter);\r\n if (rg) {\r\n var matchTxt = rg.exec(innerText);\r\n if (matchTxt && matchTxt[1]) {\r\n matchPos = theText.indexOf(matchTxt[1]);\r\n matchLen = matchTxt[1].length;\r\n }\r\n }\r\n if (matchPos !== -1) {\r\n var innerHtml = _sanitizeText(theText.substring(0, matchPos)) +\r\n \"<span class=\\\"matched-text-filter\\\">\" +\r\n _sanitizeText(theText.substring(matchPos, matchPos + matchLen)) +\r\n \"</span>\" +\r\n theText.substring(matchPos + matchLen);\r\n elm.innerHTML = innerHtml;\r\n return true;\r\n }\r\n elm.innerText = theText;\r\n return false;\r\n}\r\nvar lastSelectedElement;\r\nvar selectedObject;\r\nexport function copySelectedTree() {\r\n var toCopy = selectedObject;\r\n if (!toCopy) {\r\n return;\r\n }\r\n var textArea = document.createElement(\"textarea\");\r\n textArea.innerText = JSON.stringify(toCopy);\r\n textArea.style.opacity = \"0\";\r\n document.body.appendChild(textArea);\r\n textArea.select();\r\n document.execCommand(\"copy\");\r\n textArea.parentElement.removeChild(textArea);\r\n}\r\nexport function focusHandler(evt, target, level, excludeKeys, includeFunctions) {\r\n if (lastSelectedElement) {\r\n toggleClassName(lastSelectedElement, \" last-selected-element\");\r\n }\r\n lastSelectedElement = evt.target;\r\n for (var i = 0; i < 10; i++) {\r\n if (lastSelectedElement.tagName === \"DIV\") {\r\n break;\r\n }\r\n lastSelectedElement = lastSelectedElement.parentElement;\r\n }\r\n lastSelectedElement.className += \" last-selected-element\";\r\n selectedObject = traverseAndReplace(target, MAX_DEPTH, level, null, excludeKeys, includeFunctions);\r\n}\r\nfunction _navHandler(evt, openHandler, currentState) {\r\n var el = evt.target;\r\n switch (evt.which) {\r\n // Enter\r\n case 13:\r\n (openHandler) ? openHandler(evt) : void 0;\r\n break;\r\n // ArrowUp\r\n case 38:\r\n evt.preventDefault();\r\n var prev = el.previousElementSibling;\r\n if (prev && prev.tagName !== \"BUTTON\") {\r\n prev.focus();\r\n }\r\n break;\r\n // ArrowDown\r\n case 40:\r\n evt.preventDefault();\r\n var next = el.nextElementSibling;\r\n if (next) {\r\n next.focus();\r\n }\r\n break;\r\n // ArrowRight\r\n case 39:\r\n if (openHandler) {\r\n openHandler(evt, true);\r\n if (currentState) {\r\n el.firstElementChild.nextSibling.focus();\r\n }\r\n }\r\n break;\r\n // ArrowLeft\r\n case 37:\r\n if (openHandler) {\r\n openHandler(evt, false);\r\n }\r\n if (!currentState) {\r\n el.parentElement.focus();\r\n }\r\n break;\r\n // c\r\n case 67:\r\n if (evt.ctrlKey) {\r\n copySelectedTree();\r\n evt.target.focus();\r\n }\r\n break;\r\n }\r\n}\r\nexport function getTargetName(target) {\r\n if (target) {\r\n if (isString(target.identifier)) {\r\n return target.identifier;\r\n }\r\n if (isString(target.name)) {\r\n return target.name;\r\n }\r\n if (hasOwnProperty(target, strShimPrototype)) {\r\n // Look like a prototype\r\n return target.name || \"\";\r\n }\r\n return ((target[strConstructor]) || {}).name || \"\";\r\n }\r\n return \"\";\r\n}\r\nfunction _toString(value) {\r\n if (isString(value)) {\r\n return value;\r\n }\r\n if (isSymbol(value)) {\r\n return value.toString();\r\n }\r\n if (isFunction(value[\"toString\"])) {\r\n return value[\"toString\"]() || \"\";\r\n }\r\n return \"\";\r\n}\r\nexport function getTargetKeys(target, excludedKeys, includeFunctions) {\r\n var keys = objKeys(target);\r\n if (!Util.isArray(target)) {\r\n try {\r\n if (Object[strGetOwnPropertyNames]) {\r\n // We need to use this for built in objects such as Error which don't return their values via objKeys because they are not enumerable for example\r\n var propKeys = Object[strGetOwnPropertyNames](target);\r\n if (propKeys) {\r\n arrForEach(propKeys, function (key) {\r\n var theKey = _toString(key);\r\n if (theKey && keys.indexOf(theKey) === -1) {\r\n keys.push(key);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n // getOwnPropertyNames can fail in ES5, if the argument to this method is not an object (a primitive),\r\n // then it will cause a TypeError. In ES2015, a non-object argument will be coerced to an object.\r\n }\r\n }\r\n var theKeys = [];\r\n arrForEach(keys, function (key) {\r\n if (!includeFunctions && isFunction(target[key])) {\r\n return;\r\n }\r\n var theKey = _toString(key);\r\n if (theKey && excludedKeys.indexOf(theKey) === -1) {\r\n theKeys.push(theKey);\r\n }\r\n });\r\n return theKeys;\r\n}\r\nexport function formatLogElements(target, tmLabel, key, level, textFilter, excludeKeys, thingsReferenced, includeFunctions) {\r\n var openState = false;\r\n if (!level) {\r\n level = 0;\r\n }\r\n if (!thingsReferenced) {\r\n thingsReferenced = [];\r\n }\r\n var isObj = isObject(target) || Util.isError(target);\r\n var isErr = target[\"baseType\"] === \"ExceptionData\" || Util.isError(target);\r\n var children = [];\r\n function _openNode(currentLine) {\r\n openState = true;\r\n arrForEach(children, function (child) {\r\n rootDiv.appendChild(child);\r\n });\r\n currentLine.className = \"obj-key expandable open\";\r\n }\r\n function _collapseNode(currentLine) {\r\n // rootDiv.innerHTML = '';\r\n arrForEach(children, function (child) {\r\n rootDiv.removeChild(child);\r\n });\r\n // rootDiv.appendChild(currentLine);\r\n openState = false;\r\n currentLine.className = \"obj-key expandable closed\";\r\n }\r\n var matched = false;\r\n var childOpened = false;\r\n var keys = getTargetKeys(target, excludeKeys, includeFunctions);\r\n if (keys.length === 0) {\r\n keys.push(\"<empty>\");\r\n }\r\n if (level >= MAX_DEPTH) {\r\n keys.unshift(\"<maxdepth>\");\r\n }\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key_1 = keys_1[_i];\r\n if (excludeKeys.indexOf(key_1) !== -1) {\r\n continue;\r\n }\r\n var targetValue = target[key_1];\r\n if (isSymbol(targetValue)) {\r\n targetValue = targetValue.toString();\r\n }\r\n if (key_1 === \"<maxdepth>\") {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<max allowed depth reached>\";\r\n children.push(builder);\r\n break;\r\n }\r\n else if (key_1 === \"<empty>\") {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<empty>\";\r\n children.push(builder);\r\n }\r\n else if (targetValue !== null && arrIndexOf(thingsReferenced, targetValue) !== -1) {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<circular (\".concat(key_1, \") - \\\"\").concat(getTargetName(targetValue), \"\\\">\");\r\n children.push(builder);\r\n }\r\n else if (targetValue !== null && (isObject(targetValue) || Util.isError(targetValue))) {\r\n thingsReferenced.push(target);\r\n var formatted = formatLogElements(targetValue, null, key_1, level + 1, textFilter, excludeKeys, thingsReferenced, includeFunctions);\r\n thingsReferenced.pop();\r\n if (formatted.matched) {\r\n childOpened = true;\r\n }\r\n if (formatted.isErr) {\r\n isErr = true;\r\n }\r\n children.push(formatted.root);\r\n }\r\n else {\r\n var builder = document.createElement(\"div\");\r\n builder.setAttribute(\"tabindex\", \"0\");\r\n builder.onclick = function (evt) {\r\n evt.stopPropagation();\r\n };\r\n builder.ontouchend = function (evt) {\r\n evt.stopPropagation();\r\n };\r\n builder.onkeydown = function (evt) {\r\n evt.stopPropagation();\r\n _navHandler(evt);\r\n };\r\n builder.onfocus = function (evt) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n };\r\n var outerSpan = document.createElement(\"span\");\r\n var keySpan = document.createElement(\"span\");\r\n keySpan.className = \"key\";\r\n if (_setInnerText(keySpan, \"\".concat(key_1, \": \"), textFilter)) {\r\n childOpened = true;\r\n }\r\n outerSpan.appendChild(keySpan);\r\n var valueSpan = document.createElement(\"span\");\r\n if (isFunction(targetValue)) {\r\n var fnStr = targetValue.toString();\r\n var fnHead = fnStr.match(/^([^{]+)/)[1];\r\n valueSpan.textContent = \"\".concat(fnHead, \"{...}\");\r\n }\r\n else {\r\n if (_setInnerText(valueSpan, \"\".concat(targetValue), textFilter)) {\r\n childOpened = true;\r\n }\r\n }\r\n valueSpan.className = \"\".concat(typeof targetValue);\r\n outerSpan.appendChild(valueSpan);\r\n builder.appendChild(outerSpan);\r\n children.push(builder);\r\n }\r\n }\r\n var rootDiv = document.createElement(\"div\");\r\n var innerText = \"\";\r\n var currentLine = document.createElement(\"span\");\r\n if (isObj || children.length) {\r\n innerText = \"\".concat(key ? key : \"obj\", \": \");\r\n if (Util.isArray(target)) {\r\n innerText += \"[\".concat(getTargetKeys(target, excludeKeys, includeFunctions).length, \"]\");\r\n }\r\n else {\r\n var targetName = getTargetName(target);\r\n if (targetName) {\r\n innerText += \" <\\\"\".concat(targetName, \"\\\"> \");\r\n }\r\n innerText += \"{\".concat(getTargetKeys(target, excludeKeys, includeFunctions).length, \"}\");\r\n }\r\n matched = _setInnerText(currentLine, innerText, textFilter);\r\n if (tmLabel) {\r\n var tmWrapper = document.createElement(\"span\");\r\n var tmDetails = document.createElement(\"span\");\r\n tmDetails.className = \"obj-time\";\r\n tmDetails.innerText = tmLabel;\r\n tmWrapper.appendChild(tmDetails);\r\n tmWrapper.appendChild(currentLine);\r\n currentLine = tmWrapper;\r\n }\r\n currentLine.className = \"obj-key expandable closed\";\r\n }\r\n else {\r\n innerText = \"\".concat(key ? key : \"obj\", \": \").concat(target.toString());\r\n matched = _setInnerText(currentLine, innerText, textFilter);\r\n currentLine.className = \"obj-key\";\r\n }\r\n rootDiv.appendChild(currentLine);\r\n rootDiv.setAttribute(\"tabindex\", \"0\");\r\n if (childOpened) {\r\n // A child node matched so auto-expand\r\n _openNode(currentLine);\r\n }\r\n if (isObj) {\r\n if (isErr) {\r\n rootDiv.className = \"exception\";\r\n }\r\n var openHandler_1 = function (evt, forceState) {\r\n evt.stopPropagation();\r\n if (Util.getIEVersion()) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n }\r\n if (forceState !== undefined && openState === forceState) {\r\n return;\r\n }\r\n if (lastSelectedElement === rootDiv) {\r\n if (openState) {\r\n _collapseNode(currentLine);\r\n }\r\n else {\r\n _openNode(currentLine);\r\n }\r\n }\r\n };\r\n rootDiv.onkeydown = function (evt) {\r\n _navHandler(evt, openHandler_1, openState);\r\n };\r\n rootDiv.onclick = function (evt) {\r\n openHandler_1(evt);\r\n };\r\n rootDiv.ontouchend = function (evt) {\r\n openHandler_1(evt);\r\n };\r\n rootDiv.onfocus = function (evt) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n };\r\n }\r\n return {\r\n root: rootDiv,\r\n isErr: isErr,\r\n matched: matched || childOpened\r\n };\r\n}\r\n//# sourceMappingURL=helpers.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"helpers.js.map","sources":["helpers.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, hasOwnProperty, isFunction, isObject, isString, isSymbol, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Util } from \"@microsoft/applicationinsights-common\";\r\nimport { strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nvar strConstructor = \"constructor\";\r\nvar strGetOwnPropertyNames = \"getOwnPropertyNames\";\r\nexport var MAX_DEPTH = 16;\r\nexport function makeRegex(value) {\r\n if (value && value.length > 0) {\r\n // Escape any slashes first!\r\n value = value.replace(/\\\\/g, \"\\\\\\\\\");\r\n // eslint-disable-next-line security/detect-non-literal-regexp\r\n value = value.replace(/([\\+\\?\\|\\{\\}\\[\\]\\(\\)\\^\\$\\#\\.\\=\\!\\:\\/])/g, \"\\\\$1\");\r\n value = value.replace(/\\*/g, \".*\");\r\n return new RegExp(\"(\" + value + \")\");\r\n }\r\n return null;\r\n}\r\nexport function toggleClassName(el, className) {\r\n var idx = el.className.indexOf(className);\r\n if (idx === -1) {\r\n el.className += className;\r\n }\r\n else {\r\n el.className = el.className.substring(0, idx) + el.className.substring(idx + className.length);\r\n }\r\n}\r\nexport function traverseAndReplace(target, maxDepth, currentDepth, thingsReferenced, excludedKeys, includeFunctions) {\r\n var out = {};\r\n if (!thingsReferenced) {\r\n thingsReferenced = [];\r\n }\r\n if (isObject(target)) {\r\n for (var _i = 0, _a = getTargetKeys(target, excludedKeys, includeFunctions); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n var targetValue = target[key];\r\n if (isSymbol(targetValue)) {\r\n targetValue = targetValue.toString();\r\n }\r\n if (targetValue !== null && arrIndexOf(thingsReferenced, targetValue) !== -1) {\r\n out[key] = \"<circular (\".concat(key, \" - \\\"\").concat(getTargetName(targetValue), \"\\\")>\");\r\n }\r\n else if (targetValue !== null && isObject(targetValue)) {\r\n if (currentDepth >= maxDepth) {\r\n out[key] = \"<max allowed depth reached>\";\r\n }\r\n else {\r\n thingsReferenced.push(target);\r\n out[key] = traverseAndReplace(targetValue, maxDepth, currentDepth + 1, thingsReferenced, excludedKeys, includeFunctions);\r\n thingsReferenced.pop();\r\n }\r\n }\r\n else {\r\n out[key] = targetValue;\r\n }\r\n }\r\n }\r\n return out;\r\n}\r\nfunction _sanitizeText(value) {\r\n if (value) {\r\n value = value.replace(/&/g, \"&\");\r\n value = value.replace(/>/g, \">\");\r\n value = value.replace(/</g, \"<\");\r\n }\r\n return value;\r\n}\r\nfunction _setInnerText(elm, theText, textFilter) {\r\n var innerText = theText;\r\n var matchPos = -1;\r\n var matchLen = 0;\r\n var rg = makeRegex(textFilter);\r\n if (rg) {\r\n var matchTxt = rg.exec(innerText);\r\n if (matchTxt && matchTxt[1]) {\r\n matchPos = theText.indexOf(matchTxt[1]);\r\n matchLen = matchTxt[1].length;\r\n }\r\n }\r\n if (matchPos !== -1) {\r\n var innerHtml = _sanitizeText(theText.substring(0, matchPos)) +\r\n \"<span class=\\\"matched-text-filter\\\">\" +\r\n _sanitizeText(theText.substring(matchPos, matchPos + matchLen)) +\r\n \"</span>\" +\r\n theText.substring(matchPos + matchLen);\r\n elm.innerHTML = innerHtml;\r\n return true;\r\n }\r\n elm.innerText = theText;\r\n return false;\r\n}\r\nvar lastSelectedElement;\r\nvar selectedObject;\r\nexport function copySelectedTree() {\r\n var toCopy = selectedObject;\r\n if (!toCopy) {\r\n return;\r\n }\r\n var textArea = document.createElement(\"textarea\");\r\n textArea.innerText = JSON.stringify(toCopy);\r\n textArea.style.opacity = \"0\";\r\n document.body.appendChild(textArea);\r\n textArea.select();\r\n document.execCommand(\"copy\");\r\n textArea.parentElement.removeChild(textArea);\r\n}\r\nexport function focusHandler(evt, target, level, excludeKeys, includeFunctions) {\r\n if (lastSelectedElement) {\r\n toggleClassName(lastSelectedElement, \" last-selected-element\");\r\n }\r\n lastSelectedElement = evt.target;\r\n for (var i = 0; i < 10; i++) {\r\n if (lastSelectedElement.tagName === \"DIV\") {\r\n break;\r\n }\r\n lastSelectedElement = lastSelectedElement.parentElement;\r\n }\r\n lastSelectedElement.className += \" last-selected-element\";\r\n selectedObject = traverseAndReplace(target, MAX_DEPTH, level, null, excludeKeys, includeFunctions);\r\n}\r\nfunction _navHandler(evt, openHandler, currentState) {\r\n var el = evt.target;\r\n switch (evt.which) {\r\n // Enter\r\n case 13:\r\n (openHandler) ? openHandler(evt) : void 0;\r\n break;\r\n // ArrowUp\r\n case 38:\r\n evt.preventDefault();\r\n var prev = el.previousElementSibling;\r\n if (prev && prev.tagName !== \"BUTTON\") {\r\n prev.focus();\r\n }\r\n break;\r\n // ArrowDown\r\n case 40:\r\n evt.preventDefault();\r\n var next = el.nextElementSibling;\r\n if (next) {\r\n next.focus();\r\n }\r\n break;\r\n // ArrowRight\r\n case 39:\r\n if (openHandler) {\r\n openHandler(evt, true);\r\n if (currentState) {\r\n el.firstElementChild.nextSibling.focus();\r\n }\r\n }\r\n break;\r\n // ArrowLeft\r\n case 37:\r\n if (openHandler) {\r\n openHandler(evt, false);\r\n }\r\n if (!currentState) {\r\n el.parentElement.focus();\r\n }\r\n break;\r\n // c\r\n case 67:\r\n if (evt.ctrlKey) {\r\n copySelectedTree();\r\n evt.target.focus();\r\n }\r\n break;\r\n }\r\n}\r\nexport function getTargetName(target) {\r\n if (target) {\r\n if (isString(target.identifier)) {\r\n return target.identifier;\r\n }\r\n if (isString(target.name)) {\r\n return target.name;\r\n }\r\n if (hasOwnProperty(target, strShimPrototype)) {\r\n // Look like a prototype\r\n return target.name || \"\";\r\n }\r\n return ((target[strConstructor]) || {}).name || \"\";\r\n }\r\n return \"\";\r\n}\r\nfunction _toString(value) {\r\n if (isString(value)) {\r\n return value;\r\n }\r\n if (isSymbol(value)) {\r\n return value.toString();\r\n }\r\n if (isFunction(value[\"toString\"])) {\r\n return value[\"toString\"]() || \"\";\r\n }\r\n return \"\";\r\n}\r\nexport function getTargetKeys(target, excludedKeys, includeFunctions) {\r\n var keys = objKeys(target);\r\n if (!Util.isArray(target)) {\r\n try {\r\n if (Object[strGetOwnPropertyNames]) {\r\n // We need to use this for built in objects such as Error which don't return their values via objKeys because they are not enumerable for example\r\n var propKeys = Object[strGetOwnPropertyNames](target);\r\n if (propKeys) {\r\n arrForEach(propKeys, function (key) {\r\n var theKey = _toString(key);\r\n if (theKey && arrIndexOf(keys, theKey) === -1) {\r\n keys.push(key);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n // getOwnPropertyNames can fail in ES5, if the argument to this method is not an object (a primitive),\r\n // then it will cause a TypeError. In ES2015, a non-object argument will be coerced to an object.\r\n }\r\n }\r\n var theKeys = [];\r\n arrForEach(keys, function (key) {\r\n if (!includeFunctions && isFunction(target[key])) {\r\n return;\r\n }\r\n var theKey = _toString(key);\r\n if (theKey && arrIndexOf(excludedKeys, theKey) === -1) {\r\n theKeys.push(theKey);\r\n }\r\n });\r\n return theKeys;\r\n}\r\nexport function formatLogElements(target, tmLabel, key, level, textFilter, excludeKeys, thingsReferenced, includeFunctions) {\r\n var openState = false;\r\n if (!level) {\r\n level = 0;\r\n }\r\n if (!thingsReferenced) {\r\n thingsReferenced = [];\r\n }\r\n var isObj = isObject(target) || Util.isError(target);\r\n var isErr = target[\"baseType\"] === \"ExceptionData\" || Util.isError(target);\r\n var children = [];\r\n function _openNode(currentLine) {\r\n openState = true;\r\n arrForEach(children, function (child) {\r\n rootDiv.appendChild(child);\r\n });\r\n currentLine.className = \"obj-key expandable open\";\r\n }\r\n function _collapseNode(currentLine) {\r\n // rootDiv.innerHTML = '';\r\n arrForEach(children, function (child) {\r\n rootDiv.removeChild(child);\r\n });\r\n // rootDiv.appendChild(currentLine);\r\n openState = false;\r\n currentLine.className = \"obj-key expandable closed\";\r\n }\r\n var matched = false;\r\n var childOpened = false;\r\n var keys = getTargetKeys(target, excludeKeys, includeFunctions);\r\n if (keys.length === 0) {\r\n keys.push(\"<empty>\");\r\n }\r\n if (level >= MAX_DEPTH) {\r\n keys.unshift(\"<maxdepth>\");\r\n }\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key_1 = keys_1[_i];\r\n if (arrIndexOf(excludeKeys, key_1) !== -1) {\r\n continue;\r\n }\r\n var targetValue = target[key_1];\r\n if (isSymbol(targetValue)) {\r\n targetValue = targetValue.toString();\r\n }\r\n if (key_1 === \"<maxdepth>\") {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<max allowed depth reached>\";\r\n children.push(builder);\r\n break;\r\n }\r\n else if (key_1 === \"<empty>\") {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<empty>\";\r\n children.push(builder);\r\n }\r\n else if (targetValue !== null && arrIndexOf(thingsReferenced, targetValue) !== -1) {\r\n var builder = document.createElement(\"div\");\r\n builder.className = \"empty\";\r\n builder.innerText = \"<circular (\".concat(key_1, \") - \\\"\").concat(getTargetName(targetValue), \"\\\">\");\r\n children.push(builder);\r\n }\r\n else if (targetValue !== null && (isObject(targetValue) || Util.isError(targetValue))) {\r\n thingsReferenced.push(target);\r\n var formatted = formatLogElements(targetValue, null, key_1, level + 1, textFilter, excludeKeys, thingsReferenced, includeFunctions);\r\n thingsReferenced.pop();\r\n if (formatted.matched) {\r\n childOpened = true;\r\n }\r\n if (formatted.isErr) {\r\n isErr = true;\r\n }\r\n children.push(formatted.root);\r\n }\r\n else {\r\n var builder = document.createElement(\"div\");\r\n builder.setAttribute(\"tabindex\", \"0\");\r\n builder.onclick = function (evt) {\r\n evt.stopPropagation();\r\n };\r\n builder.ontouchend = function (evt) {\r\n evt.stopPropagation();\r\n };\r\n builder.onkeydown = function (evt) {\r\n evt.stopPropagation();\r\n _navHandler(evt);\r\n };\r\n builder.onfocus = function (evt) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n };\r\n var outerSpan = document.createElement(\"span\");\r\n var keySpan = document.createElement(\"span\");\r\n keySpan.className = \"key\";\r\n if (_setInnerText(keySpan, \"\".concat(key_1, \": \"), textFilter)) {\r\n childOpened = true;\r\n }\r\n outerSpan.appendChild(keySpan);\r\n var valueSpan = document.createElement(\"span\");\r\n if (isFunction(targetValue)) {\r\n var fnStr = targetValue.toString();\r\n var fnHead = fnStr.match(/^([^{]+)/)[1];\r\n valueSpan.textContent = \"\".concat(fnHead, \"{...}\");\r\n }\r\n else {\r\n if (_setInnerText(valueSpan, \"\".concat(targetValue), textFilter)) {\r\n childOpened = true;\r\n }\r\n }\r\n valueSpan.className = \"\".concat(typeof targetValue);\r\n outerSpan.appendChild(valueSpan);\r\n builder.appendChild(outerSpan);\r\n children.push(builder);\r\n }\r\n }\r\n var rootDiv = document.createElement(\"div\");\r\n var innerText = \"\";\r\n var currentLine = document.createElement(\"span\");\r\n if (isObj || children.length) {\r\n innerText = \"\".concat(key ? key : \"obj\", \": \");\r\n if (Util.isArray(target)) {\r\n innerText += \"[\".concat(getTargetKeys(target, excludeKeys, includeFunctions).length, \"]\");\r\n }\r\n else {\r\n var targetName = getTargetName(target);\r\n if (targetName) {\r\n innerText += \" <\\\"\".concat(targetName, \"\\\"> \");\r\n }\r\n innerText += \"{\".concat(getTargetKeys(target, excludeKeys, includeFunctions).length, \"}\");\r\n }\r\n matched = _setInnerText(currentLine, innerText, textFilter);\r\n if (tmLabel) {\r\n var tmWrapper = document.createElement(\"span\");\r\n var tmDetails = document.createElement(\"span\");\r\n tmDetails.className = \"obj-time\";\r\n tmDetails.innerText = tmLabel;\r\n tmWrapper.appendChild(tmDetails);\r\n tmWrapper.appendChild(currentLine);\r\n currentLine = tmWrapper;\r\n }\r\n currentLine.className = \"obj-key expandable closed\";\r\n }\r\n else {\r\n innerText = \"\".concat(key ? key : \"obj\", \": \").concat(target.toString());\r\n matched = _setInnerText(currentLine, innerText, textFilter);\r\n currentLine.className = \"obj-key\";\r\n }\r\n rootDiv.appendChild(currentLine);\r\n rootDiv.setAttribute(\"tabindex\", \"0\");\r\n if (childOpened) {\r\n // A child node matched so auto-expand\r\n _openNode(currentLine);\r\n }\r\n if (isObj) {\r\n if (isErr) {\r\n rootDiv.className = \"exception\";\r\n }\r\n var openHandler_1 = function (evt, forceState) {\r\n evt.stopPropagation();\r\n if (Util.getIEVersion()) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n }\r\n if (forceState !== undefined && openState === forceState) {\r\n return;\r\n }\r\n if (lastSelectedElement === rootDiv) {\r\n if (openState) {\r\n _collapseNode(currentLine);\r\n }\r\n else {\r\n _openNode(currentLine);\r\n }\r\n }\r\n };\r\n rootDiv.onkeydown = function (evt) {\r\n _navHandler(evt, openHandler_1, openState);\r\n };\r\n rootDiv.onclick = function (evt) {\r\n openHandler_1(evt);\r\n };\r\n rootDiv.ontouchend = function (evt) {\r\n openHandler_1(evt);\r\n };\r\n rootDiv.onfocus = function (evt) {\r\n focusHandler(evt, target, level, excludeKeys, includeFunctions);\r\n };\r\n }\r\n return {\r\n root: rootDiv,\r\n isErr: isErr,\r\n matched: matched || childOpened\r\n };\r\n}\r\n//# sourceMappingURL=helpers.js.map"],"names":[],"mappings":";;;;AAA4D;AAC1B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/applicationinsights-debugplugin-js",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.2",
|
|
4
4
|
"description": "Microsoft Application Insights JavaScript SDK - Debug Plugin extension",
|
|
5
5
|
"homepage": "https://github.com/microsoft/ApplicationInsights-JS#readme",
|
|
6
6
|
"author": "Microsoft Application Insights Team",
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"tslib": "*"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@microsoft/dynamicproto-js": "^1.1.
|
|
49
|
-
"@microsoft/applicationinsights-common": "2.8.
|
|
50
|
-
"@microsoft/applicationinsights-core-js": "2.8.
|
|
48
|
+
"@microsoft/dynamicproto-js": "^1.1.5",
|
|
49
|
+
"@microsoft/applicationinsights-common": "2.8.2",
|
|
50
|
+
"@microsoft/applicationinsights-core-js": "2.8.2",
|
|
51
51
|
"@microsoft/applicationinsights-shims": "2.0.1"
|
|
52
52
|
},
|
|
53
53
|
"license": "MIT"
|
package/src/DebugPlugin.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
BaseTelemetryPlugin, IConfiguration, arrForEach,
|
|
6
6
|
IAppInsightsCore, IPlugin, ITelemetryItem, IProcessTelemetryContext, _InternalLogMessage,
|
|
7
7
|
ITelemetryPluginChain, InstrumentFunc, IInstrumentCallDetails, InstrumentorHooksCallback, IPerfEvent, IChannelControls,
|
|
8
|
-
objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt
|
|
8
|
+
objForEachKey, isFunction, dateNow, isArray, isUndefined, getDebugExt, arrIndexOf
|
|
9
9
|
} from "@microsoft/applicationinsights-core-js";
|
|
10
10
|
import { Dashboard } from "./components/Dashboard";
|
|
11
11
|
import { getTargetName } from "./components/helpers";
|
|
@@ -162,16 +162,16 @@ export default class DebugPlugin extends BaseTelemetryPlugin {
|
|
|
162
162
|
}
|
|
163
163
|
});
|
|
164
164
|
|
|
165
|
-
if (trackers
|
|
165
|
+
if (arrIndexOf(trackers, "eventsSent") !== -1) {
|
|
166
166
|
foundTrackers.push("eventsSent");
|
|
167
167
|
}
|
|
168
|
-
if (trackers
|
|
168
|
+
if (arrIndexOf(trackers, "eventsSendRequest") !== -1) {
|
|
169
169
|
foundTrackers.push("eventsSendRequest");
|
|
170
170
|
}
|
|
171
|
-
if (trackers
|
|
171
|
+
if (arrIndexOf(trackers, "eventsDiscarded") !== -1) {
|
|
172
172
|
foundTrackers.push("eventsDiscarded");
|
|
173
173
|
}
|
|
174
|
-
if (trackers
|
|
174
|
+
if (arrIndexOf(trackers, "perfEvent") !== -1) {
|
|
175
175
|
foundTrackers.push("perfEvent");
|
|
176
176
|
}
|
|
177
177
|
}
|
|
@@ -217,7 +217,7 @@ export default class DebugPlugin extends BaseTelemetryPlugin {
|
|
|
217
217
|
}, true);
|
|
218
218
|
|
|
219
219
|
if (val) {
|
|
220
|
-
if (foundTrackers
|
|
220
|
+
if (arrIndexOf(foundTrackers, tracker) === -1) {
|
|
221
221
|
foundTrackers.push(tracker);
|
|
222
222
|
}
|
|
223
223
|
}
|
|
@@ -271,7 +271,7 @@ export default class DebugPlugin extends BaseTelemetryPlugin {
|
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
function _addTarget(targetObjects: any[], ext:any) {
|
|
274
|
-
if (ext && targetObjects
|
|
274
|
+
if (ext && arrIndexOf(targetObjects, ext) === -1) {
|
|
275
275
|
targetObjects.push(ext);
|
|
276
276
|
return true;
|
|
277
277
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { arrForEach } from "@microsoft/applicationinsights-core-js";
|
|
1
|
+
import { arrForEach, arrIndexOf } from "@microsoft/applicationinsights-core-js";
|
|
2
2
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
3
3
|
import { tempStyle } from "./styleNodeSrc";
|
|
4
4
|
import { FilterList } from "./filterList";
|
|
@@ -138,11 +138,11 @@ export class Dashboard {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
let type = entry.getKind();
|
|
141
|
-
let allowOther = excludedTypes
|
|
142
|
-
if (trackers
|
|
141
|
+
let allowOther = arrIndexOf(excludedTypes, "other") === -1; // Other types are not excluded
|
|
142
|
+
if (arrIndexOf(trackers, type) === -1 && !allowOther) {
|
|
143
143
|
// Not a tracked type and we are not allowing other types
|
|
144
144
|
return;
|
|
145
|
-
} else if (excludedTypes
|
|
145
|
+
} else if (arrIndexOf(excludedTypes, type) !== -1) {
|
|
146
146
|
// This type is explicitly excluded
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
|
|
4
|
+
import { arrIndexOf } from "@microsoft/applicationinsights-core-js";
|
|
5
|
+
|
|
4
6
|
export class FilterList {
|
|
5
7
|
|
|
6
8
|
private el: HTMLElement;
|
|
@@ -70,7 +72,7 @@ export class FilterList {
|
|
|
70
72
|
(ch.childNodes[0] as HTMLElement).className = "checkbox off";
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
|
-
_self.filterList.splice(_self.filterList
|
|
75
|
+
_self.filterList.splice(arrIndexOf(_self.filterList, t), 1);
|
|
74
76
|
checkbox.className = "checkbox on";
|
|
75
77
|
} else {
|
|
76
78
|
if (evt.shiftKey) {
|
|
@@ -233,7 +233,7 @@ export function getTargetKeys(target: any, excludedKeys: string[], includeFuncti
|
|
|
233
233
|
if (propKeys) {
|
|
234
234
|
arrForEach(propKeys, (key) => {
|
|
235
235
|
const theKey = _toString(key);
|
|
236
|
-
if (theKey && keys
|
|
236
|
+
if (theKey && arrIndexOf(keys, theKey) === -1) {
|
|
237
237
|
keys.push(key);
|
|
238
238
|
}
|
|
239
239
|
});
|
|
@@ -253,7 +253,7 @@ export function getTargetKeys(target: any, excludedKeys: string[], includeFuncti
|
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
const theKey = _toString(key);
|
|
256
|
-
if (theKey && excludedKeys
|
|
256
|
+
if (theKey && arrIndexOf(excludedKeys, theKey) === -1) {
|
|
257
257
|
theKeys.push(theKey);
|
|
258
258
|
}
|
|
259
259
|
});
|
|
@@ -305,7 +305,7 @@ export function formatLogElements(target: Object, tmLabel: string, key: string,
|
|
|
305
305
|
keys.unshift("<maxdepth>");
|
|
306
306
|
}
|
|
307
307
|
for (const key of keys) {
|
|
308
|
-
if (excludeKeys
|
|
308
|
+
if (arrIndexOf(excludeKeys, key) !== -1) {
|
|
309
309
|
continue;
|
|
310
310
|
}
|
|
311
311
|
|