ionic-logging-viewer 10.0.0 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -6
- package/esm2020/ionic-logging-viewer.mjs +5 -0
- package/esm2020/lib/logging-viewer/logging-viewer.component.mjs +119 -0
- package/esm2020/lib/logging-viewer-filter.service.mjs +64 -0
- package/esm2020/lib/logging-viewer-levels/logging-viewer-levels.component.mjs +71 -0
- package/esm2020/lib/logging-viewer-modal/logging-viewer-modal-properties.model.mjs +2 -0
- package/esm2020/lib/logging-viewer-modal/logging-viewer-modal.component.mjs +141 -0
- package/esm2020/lib/logging-viewer-search/logging-viewer-search.component.mjs +73 -0
- package/esm2020/lib/logging-viewer-translation.model.mjs +2 -0
- package/esm2020/lib/logging-viewer.module.mjs +55 -0
- package/esm2020/public_api.mjs +11 -0
- package/fesm2015/ionic-logging-viewer.mjs +500 -0
- package/fesm2015/ionic-logging-viewer.mjs.map +1 -0
- package/fesm2020/ionic-logging-viewer.mjs +495 -0
- package/fesm2020/ionic-logging-viewer.mjs.map +1 -0
- package/ionic-logging-viewer.d.ts +1 -1
- package/lib/logging-viewer/logging-viewer.component.d.ts +3 -0
- package/lib/logging-viewer-filter.service.d.ts +8 -0
- package/lib/logging-viewer-levels/logging-viewer-levels.component.d.ts +3 -0
- package/lib/logging-viewer-modal/logging-viewer-modal.component.d.ts +3 -0
- package/lib/logging-viewer-search/logging-viewer-search.component.d.ts +3 -0
- package/lib/logging-viewer.module.d.ts +11 -0
- package/package.json +28 -16
- package/bundles/ionic-logging-viewer.umd.js +0 -782
- package/bundles/ionic-logging-viewer.umd.js.map +0 -1
- package/bundles/ionic-logging-viewer.umd.min.js +0 -16
- package/bundles/ionic-logging-viewer.umd.min.js.map +0 -1
- package/esm2015/ionic-logging-viewer.js +0 -6
- package/esm2015/lib/logging-viewer/logging-viewer.component.js +0 -127
- package/esm2015/lib/logging-viewer-filter.service.js +0 -60
- package/esm2015/lib/logging-viewer-levels/logging-viewer-levels.component.js +0 -74
- package/esm2015/lib/logging-viewer-modal/logging-viewer-modal-properties.model.js +0 -1
- package/esm2015/lib/logging-viewer-modal/logging-viewer-modal.component.js +0 -158
- package/esm2015/lib/logging-viewer-search/logging-viewer-search.component.js +0 -79
- package/esm2015/lib/logging-viewer-translation.model.js +0 -1
- package/esm2015/lib/logging-viewer.module.js +0 -39
- package/esm2015/public_api.js +0 -9
- package/esm5/ionic-logging-viewer.js +0 -6
- package/esm5/lib/logging-viewer/logging-viewer.component.js +0 -144
- package/esm5/lib/logging-viewer-filter.service.js +0 -69
- package/esm5/lib/logging-viewer-levels/logging-viewer-levels.component.js +0 -76
- package/esm5/lib/logging-viewer-modal/logging-viewer-modal-properties.model.js +0 -1
- package/esm5/lib/logging-viewer-modal/logging-viewer-modal.component.js +0 -191
- package/esm5/lib/logging-viewer-search/logging-viewer-search.component.js +0 -81
- package/esm5/lib/logging-viewer-translation.model.js +0 -1
- package/esm5/lib/logging-viewer.module.js +0 -42
- package/esm5/public_api.js +0 -9
- package/fesm2015/ionic-logging-viewer.js +0 -519
- package/fesm2015/ionic-logging-viewer.js.map +0 -1
- package/fesm5/ionic-logging-viewer.js +0 -585
- package/fesm5/ionic-logging-viewer.js.map +0 -1
- package/ionic-logging-viewer.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ionic-logging-viewer.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://ionic-logging-viewer/lib/logging-viewer-filter.service.ts","ng://ionic-logging-viewer/lib/logging-viewer/logging-viewer.component.ts","ng://ionic-logging-viewer/lib/logging-viewer-levels/logging-viewer-levels.component.ts","ng://ionic-logging-viewer/lib/logging-viewer-search/logging-viewer-search.component.ts","ng://ionic-logging-viewer/lib/logging-viewer-modal/logging-viewer-modal.component.ts","ng://ionic-logging-viewer/lib/logging-viewer.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { EventEmitter, Injectable } from \"@angular/core\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\n/**\n * Service for storing filter settings for logging viewer.\n */\n@Injectable()\nexport class LoggingViewerFilterService {\n\n\t/**\n\t * Event triggered when the filter was changed.\n\t */\n\tpublic filterChanged: EventEmitter<void>;\n\n\tprivate logger: Logger;\n\tprivate levelValue: string;\n\tprivate searchValue: string;\n\n\t/**\n\t * Creates a new instance of the service.\n\t * @param loggingService needed for internal logging.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Filter.Service\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.levelValue = \"DEBUG\";\n\t\tthis.searchValue = \"\";\n\t\tthis.filterChanged = new EventEmitter<void>();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Gets the current log level.\n\t * @return log level\n\t */\n\tpublic get level(): string {\n\t\treturn this.levelValue;\n\t}\n\n\t/**\n\t * Sets the new log level and emits a filterChanged event.\n\t * @param value new slog level\n\t */\n\tpublic set level(value: string) {\n\t\tthis.levelValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n\n\t/**\n\t * Gets the current search value.\n\t * @return search value\n\t */\n\tpublic get search(): string {\n\t\treturn this.searchValue;\n\t}\n\n\t/**\n\t * Sets the new search value and emits a filterChanged event.\n\t * @param value new search value\n\t */\n\tpublic set search(value: string) {\n\t\tthis.searchValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n}\n","import { Component, OnDestroy, OnInit, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService, LogLevelConverter, LogMessage } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer></ionic-logging-viewer>\n */\n@Component({\n\tselector: \"ionic-logging-viewer\",\n\ttemplateUrl: \"./logging-viewer.component.html\",\n\tstyleUrls: [\"./logging-viewer.component.scss\"]\n})\nexport class LoggingViewerComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Log messages which fulfill the filter condition.\n\t */\n\tpublic logMessagesForDisplay: LogMessage[];\n\n\tprivate logger: Logger;\n\tprivate logMessages: LogMessage[];\n\tprivate logMessagesChangedSubscription: Subscription;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tprivate loggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html)\n\t * and the log messages from [LoggingService](../../../ionic-logging-service/typedoc/index.html).\n\t * If the localStorageKeys property is set, the messages are read from local storage.\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.loadLogMessages();\n\t\tthis.filterLogMessages();\n\n\t\t// subscribe to loggingService.logMessagesChanged event, to refresh, when new message is logged\n\t\tthis.logMessagesChangedSubscription = this.loggingService.logMessagesChanged.subscribe(async () => {\n\t\t\tthis.loadLogMessages();\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh, when filter is modified\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logMessagesChangedSubscription.unsubscribe();\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Filter the log messages.\n\t */\n\tpublic filterLogMessages(): void {\n\t\tthis.logMessagesForDisplay = this.logMessages.filter((message) => {\n\t\t\treturn this.filterLogMessagesByLevel(message) && this.filterLogMessagesBySearch(message);\n\t\t});\n\t}\n\n\t/**\n\t * Check if the log message's level fulfills the level condition.\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesByLevel(message: LogMessage): boolean {\n\t\tconst levelValue = this.loggingViewerFilterService.level;\n\t\treturn LogLevelConverter.levelFromString(message.level) >= LogLevelConverter.levelFromString(levelValue);\n\t}\n\n\t/**\n\t * Check if the log message fulfills the search condition.\n\t *\n\t * The search value gets searched in:\n\t * - logger name\n\t * - method name\n\t * - message\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesBySearch(message: LogMessage): boolean {\n\t\tconst searchValue = new RegExp(this.loggingViewerFilterService.search, \"i\");\n\t\treturn message.logger.search(searchValue) >= 0 ||\n\t\t\tmessage.methodName.search(searchValue) >= 0 ||\n\t\t\tmessage.message.join(\"|\").search(searchValue) >= 0;\n\t}\n\n\t/**\n\t * Load the current log messages.\n\t * For unit test purposes mainly.\n\t */\n\tpublic loadLogMessages(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tthis.logMessages = [];\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.logMessages = this.logMessages.concat(this.loggingService.getLogMessagesFromLocalStorage(localStorageKey));\n\t\t\t}\n\t\t\tthis.logMessages = this.logMessages.sort((a, b) => a.timeStamp.getTime() - b.timeStamp.getTime());\n\t\t} else {\n\t\t\tthis.logMessages = this.loggingService.getLogMessages();\n\t\t}\n\t}\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the log levels for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-levels\",\n\ttemplateUrl: \"./logging-viewer-levels.component.html\",\n\tstyleUrls: [\"./logging-viewer-levels.component.scss\"]\n})\nexport class LoggingViewerLevelsComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Log levels used for filtering: DEBUG, INFO, WARN, ERROR\n\t */\n\tpublic logLevels: string[];\n\n\t/**\n\t * Selected level.\n\t */\n\tpublic selectedLevel: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Levels.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logLevels = [];\n\t\tthis.logLevels.push(\n\t\t\t\"DEBUG\",\n\t\t\t\"INFO\",\n\t\t\t\"WARN\",\n\t\t\t\"ERROR\",\n\t\t);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the level\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the level was changed in the UI.\n\t */\n\tpublic onLevelChanged(): void {\n\t\tconst methodName = \"onLevelChanged\";\n\t\tthis.logger.entry(methodName, this.selectedLevel);\n\n\t\tthis.loggingViewerFilterService.level = this.selectedLevel;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { LoggingService, Logger } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the search bar for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-search placeholder=\"Search\"></ionic-logging-viewer-search>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-search\",\n\ttemplateUrl: \"./logging-viewer-search.component.html\",\n\tstyleUrls: [\"./logging-viewer-search.component.scss\"]\n})\nexport class LoggingViewerSearchComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Placeholder to be shown in the empty search bar.\n\t */\n\t@Input()\n\tpublic placeholder: string;\n\n\t/**\n\t * Current search value.\n\t */\n\tpublic search: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Search.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tif (!this.placeholder) {\n\t\t\tthis.placeholder = \"Search\";\n\t\t}\n\t\tthis.search = this.loggingViewerFilterService.search;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the search value\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.search = this.loggingViewerFilterService.search;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the search value was changed in the UI.\n\t */\n\tpublic onSearchChanged(): void {\n\t\tconst methodName = \"onSearchChanged\";\n\t\tthis.logger.entry(methodName, this.search);\n\n\t\tthis.loggingViewerFilterService.search = this.search;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","import { Component, OnInit, Input } from \"@angular/core\";\n\nimport { ModalController, Platform, AlertController } from \"@ionic/angular\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerTranslation } from \"../logging-viewer-translation.model\";\n\n/**\n * Ionic modal containing [LoggingViewerComponent](LoggingViewerComponent.html),\n * [LoggingViewerLevelsComponent](LoggingViewerLevelsComponent.html) and\n * [LoggingViewerSearchComponent](LoggingViewerSearchComponent.html).\n */\n@Component({\n\tselector: \"ionic-logging-viewer-modal\",\n\ttemplateUrl: \"./logging-viewer-modal.component.html\",\n\tstyleUrls: [\"./logging-viewer-modal.component.scss\"]\n})\nexport class LoggingViewerModalComponent implements OnInit {\n\n\tprivate static languageEn = \"en\";\n\tprivate static languageDe = \"de\";\n\n\t/**\n\t * Language to be used for the modal.\n\t * Currently supported: en, de\n\t */\n\t@Input()\n\tpublic language: string;\n\n\t/**\n\t * Translation to be used for the modal.\n\t * If specified, the language is ignored.\n\t */\n\t@Input()\n\tpublic translation: LoggingViewerTranslation;\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Flag showing a delete button, which removes all existing log messages.\n\t */\n\t@Input()\n\tpublic allowClearLogs: boolean;\n\n\t/**\n\t * Flag controlling which close button will be shown.\n\t */\n\tpublic isAndroid: boolean;\n\n\t// tslint:disable-next-line:completed-docs\n\tprivate logger: Logger;\n\n\t// tslint:disable-next-line:completed-docs\n\tprivate translations: { [language: string]: LoggingViewerTranslation; };\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tplatform: Platform,\n\t\tprivate alertController: AlertController,\n\t\tprivate modalController: ModalController,\n\t\tprivate loggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Modal.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.isAndroid = platform.is(\"android\");\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initializes the LoggingViewerModalComponent.\n\t * It configures the supported translations.\n\t */\n\tpublic ngOnInit(): void {\n\t\t// prepare translations\n\t\tthis.translations = {};\n\t\tthis.translations[LoggingViewerModalComponent.languageEn] = {\n\t\t\tcancel: \"Cancel\",\n\t\t\tconfirmDelete: \"Delete all log messages?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Search\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t\tthis.translations[LoggingViewerModalComponent.languageDe] = {\n\t\t\tcancel: \"Abbrechen\",\n\t\t\tconfirmDelete: \"Alle Logs löschen?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Suchen\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t}\n\n\t/**\n\t * Eventhandler called by Ionic when the modal is opened.\n\t */\n\tpublic ionViewDidEnter(): void {\n\t\tconst methodName = \"ionViewDidEnter\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the cancel button is clicked.\n\t */\n\tpublic async onClose(): Promise<void> {\n\t\tconst methodName = \"onClose\";\n\t\tthis.logger.entry(methodName);\n\n\t\tawait this.modalController.dismiss();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the clear button is clicked.\n\t */\n\tpublic async onClearLogs(): Promise<void> {\n\t\tconst methodName = \"onClearLogs\";\n\t\tthis.logger.entry(methodName);\n\n\t\tconst alert = await this.alertController.create({\n\t\t\theader: this.getTranslation().confirmDelete,\n\t\t\tbuttons: [\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().cancel,\n\t\t\t\t\trole: \"cancel\",\n\t\t\t\t\tcssClass: \"secondary\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().ok,\n\t\t\t\t\thandler: this.clearLogs\n\t\t\t\t},\n\t\t\t]\n\t\t});\n\t\tawait alert.present();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clear logs.\n\t */\n\tpublic clearLogs(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.loggingService.removeLogMessagesFromLocalStorage(localStorageKey);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.loggingService.removeLogMessages();\n\t\t}\n\t}\n\n\t/**\n\t * Helper method returning the current translation:\n\t * - the property translation if defined\n\t * - the translation according property language if valid\n\t * - English translation, otherwise\n\t */\n\tpublic getTranslation(): LoggingViewerTranslation {\n\t\tif (typeof this.translation !== \"undefined\") {\n\t\t\treturn this.translation;\n\t\t} else if (typeof this.language !== \"undefined\" && typeof this.translations[this.language] === \"object\") {\n\t\t\treturn this.translations[this.language];\n\t\t} else {\n\t\t\treturn this.translations[LoggingViewerModalComponent.languageEn];\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { IonicModule } from \"@ionic/angular\";\n\nimport { LoggingViewerComponent } from \"./logging-viewer/logging-viewer.component\";\nimport { LoggingViewerFilterService } from \"./logging-viewer-filter.service\";\nimport { LoggingViewerLevelsComponent } from \"./logging-viewer-levels/logging-viewer-levels.component\";\nimport { LoggingViewerSearchComponent } from \"./logging-viewer-search/logging-viewer-search.component\";\nimport { LoggingViewerModalComponent } from \"./logging-viewer-modal/logging-viewer-modal.component\";\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tIonicModule\n\t],\n\tdeclarations: [\n\t\tLoggingViewerComponent,\n\t\tLoggingViewerSearchComponent,\n\t\tLoggingViewerLevelsComponent,\n\t\tLoggingViewerModalComponent\n\t],\n\tentryComponents: [\n\t],\n\texports: [\n\t\tLoggingViewerComponent,\n\t\tLoggingViewerSearchComponent,\n\t\tLoggingViewerLevelsComponent,\n\t\tLoggingViewerModalComponent\n\t],\n\tproviders: [\n\t\tLoggingViewerFilterService\n\t]\n})\nexport class LoggingViewerModule { }\n"],"names":["EventEmitter","LoggingService","Injectable","LogLevelConverter","Input","Component","Platform","AlertController","ModalController","NgModule","CommonModule","FormsModule","IonicModule"],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("@ionic/angular"),require("ionic-logging-service")):"function"==typeof define&&define.amd?define("ionic-logging-viewer",["exports","@angular/core","@angular/common","@angular/forms","@ionic/angular","ionic-logging-service"],t):t((e=e||self)["ionic-logging-viewer"]={},e.ng.core,e.ng.common,e.ng.forms,e.angular,e.ionicLoggingService)}(this,(function(e,t,n,o,i,r){"use strict";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
5
|
-
this file except in compliance with the License. You may obtain a copy of the
|
|
6
|
-
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
|
|
8
|
-
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
9
|
-
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
10
|
-
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
11
|
-
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
12
|
-
|
|
13
|
-
See the Apache Version 2.0 License for specific language governing permissions
|
|
14
|
-
and limitations under the License.
|
|
15
|
-
***************************************************************************** */function g(e,t,n,o){var i,r=arguments.length,g=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)g=Reflect.decorate(e,t,n,o);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(g=(r<3?i(g):r>3?i(t,n,g):i(t,n))||g);return r>3&&g&&Object.defineProperty(t,n,g),g}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function s(e,t,n,o){return new(n||(n=Promise))((function(i,r){function g(e){try{s(o.next(e))}catch(e){r(e)}}function l(e){try{s(o.throw(e))}catch(e){r(e)}}function s(e){e.done?i(e.value):new n((function(t){t(e.value)})).then(g,l)}s((o=o.apply(e,t||[])).next())}))}function a(e,t){var n,o,i,r,g={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function l(r){return function(l){return function(r){if(n)throw new TypeError("Generator is already executing.");for(;g;)try{if(n=1,o&&(i=2&r[0]?o.return:r[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,r[1])).done)return i;switch(o=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return g.label++,{value:r[1],done:!1};case 5:g.label++,o=r[1],r=[0];continue;case 7:r=g.ops.pop(),g.trys.pop();continue;default:if(!(i=(i=g.trys).length>0&&i[i.length-1])&&(6===r[0]||2===r[0])){g=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){g.label=r[1];break}if(6===r[0]&&g.label<i[1]){g.label=i[1],i=r;break}if(i&&g.label<i[2]){g.label=i[2],g.ops.push(r);break}i[2]&&g.ops.pop(),g.trys.pop();continue}r=t.call(e,g)}catch(e){r=[6,e],o=0}finally{n=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,l])}}}function c(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}var h=function(){function e(e){this.logger=e.getLogger("Ionic.Logging.Viewer.Filter.Service");this.logger.entry("ctor"),this.levelValue="DEBUG",this.searchValue="",this.filterChanged=new t.EventEmitter,this.logger.exit("ctor")}return Object.defineProperty(e.prototype,"level",{get:function(){return this.levelValue},set:function(e){this.levelValue=e,this.filterChanged.emit()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"search",{get:function(){return this.searchValue},set:function(e){this.searchValue=e,this.filterChanged.emit()},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:r.LoggingService}]},e=g([t.Injectable(),l("design:paramtypes",[r.LoggingService])],e)}(),u=function(){function e(e,t){this.loggingService=e,this.loggingViewerFilterService=t,this.logger=e.getLogger("Ionic.Logging.Viewer.Component");this.logger.entry("ctor"),this.logger.exit("ctor")}return e.prototype.ngOnInit=function(){var e=this;this.logger.entry("ngOnInit"),this.loadLogMessages(),this.filterLogMessages(),this.logMessagesChangedSubscription=this.loggingService.logMessagesChanged.subscribe((function(){return s(e,void 0,void 0,(function(){return a(this,(function(e){return this.loadLogMessages(),this.filterLogMessages(),[2]}))}))})),this.filterChangedSubscription=this.loggingViewerFilterService.filterChanged.subscribe((function(){e.filterLogMessages()})),this.logger.exit("ngOnInit")},e.prototype.ngOnDestroy=function(){this.logger.entry("ngOnDestroy"),this.logMessagesChangedSubscription.unsubscribe(),this.filterChangedSubscription.unsubscribe(),this.logger.exit("ngOnDestroy")},e.prototype.filterLogMessages=function(){var e=this;this.logMessagesForDisplay=this.logMessages.filter((function(t){return e.filterLogMessagesByLevel(t)&&e.filterLogMessagesBySearch(t)}))},e.prototype.filterLogMessagesByLevel=function(e){var t=this.loggingViewerFilterService.level;return r.LogLevelConverter.levelFromString(e.level)>=r.LogLevelConverter.levelFromString(t)},e.prototype.filterLogMessagesBySearch=function(e){var t=new RegExp(this.loggingViewerFilterService.search,"i");return e.logger.search(t)>=0||e.methodName.search(t)>=0||e.message.join("|").search(t)>=0},e.prototype.loadLogMessages=function(){var e,t;if(this.localStorageKeys){this.logMessages=[];try{for(var n=c(this.localStorageKeys.split(",")),o=n.next();!o.done;o=n.next()){var i=o.value;this.logMessages=this.logMessages.concat(this.loggingService.getLogMessagesFromLocalStorage(i))}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}this.logMessages=this.logMessages.sort((function(e,t){return e.timeStamp.getTime()-t.timeStamp.getTime()}))}else this.logMessages=this.loggingService.getLogMessages()},e.ctorParameters=function(){return[{type:r.LoggingService},{type:h}]},g([t.Input(),l("design:type",String)],e.prototype,"localStorageKeys",void 0),e=g([t.Component({selector:"ionic-logging-viewer",template:'<ion-list>\n\t<ion-item *ngFor="let logMessage of logMessagesForDisplay">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:\'dd.MM.yyyy HH:mm:ss\' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor="let messagePart of logMessage.message"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>',styles:[""]}),l("design:paramtypes",[r.LoggingService,h])],e)}(),p=function(){function e(e,t){this.loggingViewerFilterService=t,this.logger=e.getLogger("Ionic.Logging.Viewer.Levels.Component");this.logger.entry("ctor"),this.logLevels=[],this.logLevels.push("DEBUG","INFO","WARN","ERROR"),this.logger.exit("ctor")}return e.prototype.ngOnInit=function(){var e=this;this.logger.entry("ngOnInit"),this.selectedLevel=this.loggingViewerFilterService.level,this.filterChangedSubscription=this.loggingViewerFilterService.filterChanged.subscribe((function(){e.selectedLevel=e.loggingViewerFilterService.level})),this.logger.exit("ngOnInit")},e.prototype.ngOnDestroy=function(){this.logger.entry("ngOnDestroy"),this.filterChangedSubscription.unsubscribe(),this.logger.exit("ngOnDestroy")},e.prototype.onLevelChanged=function(){this.logger.entry("onLevelChanged",this.selectedLevel),this.loggingViewerFilterService.level=this.selectedLevel,this.logger.exit("onLevelChanged")},e.ctorParameters=function(){return[{type:r.LoggingService},{type:h}]},e=g([t.Component({selector:"ionic-logging-viewer-levels",template:'<ion-segment [(ngModel)]="selectedLevel" (ionChange)="onLevelChanged()">\n\t<ion-segment-button *ngFor="let logLevel of logLevels" [value]="logLevel">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>',styles:[""]}),l("design:paramtypes",[r.LoggingService,h])],e)}(),f=function(){function e(e,t){this.loggingViewerFilterService=t,this.logger=e.getLogger("Ionic.Logging.Viewer.Search.Component");this.logger.entry("ctor"),this.logger.exit("ctor")}return e.prototype.ngOnInit=function(){var e=this;this.logger.entry("ngOnInit"),this.placeholder||(this.placeholder="Search"),this.search=this.loggingViewerFilterService.search,this.filterChangedSubscription=this.loggingViewerFilterService.filterChanged.subscribe((function(){e.search=e.loggingViewerFilterService.search})),this.logger.exit("ngOnInit")},e.prototype.ngOnDestroy=function(){this.logger.entry("ngOnDestroy"),this.filterChangedSubscription.unsubscribe(),this.logger.exit("ngOnDestroy")},e.prototype.onSearchChanged=function(){this.logger.entry("onSearchChanged",this.search),this.loggingViewerFilterService.search=this.search,this.logger.exit("onSearchChanged")},e.ctorParameters=function(){return[{type:r.LoggingService},{type:h}]},g([t.Input(),l("design:type",String)],e.prototype,"placeholder",void 0),e=g([t.Component({selector:"ionic-logging-viewer-search",template:'<ion-searchbar placeholder="{{placeholder}}" [(ngModel)]="search" (ionChange)="onSearchChanged()"></ion-searchbar>',styles:["ion-searchbar{padding-top:3px;padding-bottom:0}"]}),l("design:paramtypes",[r.LoggingService,h])],e)}(),d=function(){function e(e,t,n,o){this.alertController=t,this.modalController=n,this.loggingService=o,this.logger=o.getLogger("Ionic.Logging.Viewer.Modal.Component");this.logger.entry("ctor"),this.isAndroid=e.is("android"),this.logger.exit("ctor")}var n;return n=e,e.prototype.ngOnInit=function(){this.translations={},this.translations[n.languageEn]={cancel:"Cancel",confirmDelete:"Delete all log messages?",ok:"Ok",searchPlaceholder:"Search",title:"Logging"},this.translations[n.languageDe]={cancel:"Abbrechen",confirmDelete:"Alle Logs löschen?",ok:"Ok",searchPlaceholder:"Suchen",title:"Logging"}},e.prototype.ionViewDidEnter=function(){this.logger.entry("ionViewDidEnter"),this.logger.exit("ionViewDidEnter")},e.prototype.onClose=function(){return s(this,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:return e="onClose",this.logger.entry(e),[4,this.modalController.dismiss()];case 1:return t.sent(),this.logger.exit(e),[2]}}))}))},e.prototype.onClearLogs=function(){return s(this,void 0,void 0,(function(){var e;return a(this,(function(t){switch(t.label){case 0:return e="onClearLogs",this.logger.entry(e),[4,this.alertController.create({header:this.getTranslation().confirmDelete,buttons:[{text:this.getTranslation().cancel,role:"cancel",cssClass:"secondary"},{text:this.getTranslation().ok,handler:this.clearLogs}]})];case 1:return[4,t.sent().present()];case 2:return t.sent(),this.logger.exit(e),[2]}}))}))},e.prototype.clearLogs=function(){var e,t;if(this.localStorageKeys)try{for(var n=c(this.localStorageKeys.split(",")),o=n.next();!o.done;o=n.next()){var i=o.value;this.loggingService.removeLogMessagesFromLocalStorage(i)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}else this.loggingService.removeLogMessages()},e.prototype.getTranslation=function(){return void 0!==this.translation?this.translation:void 0!==this.language&&"object"==typeof this.translations[this.language]?this.translations[this.language]:this.translations[n.languageEn]},e.languageEn="en",e.languageDe="de",e.ctorParameters=function(){return[{type:i.Platform},{type:i.AlertController},{type:i.ModalController},{type:r.LoggingService}]},g([t.Input(),l("design:type",String)],e.prototype,"language",void 0),g([t.Input(),l("design:type",Object)],e.prototype,"translation",void 0),g([t.Input(),l("design:type",String)],e.prototype,"localStorageKeys",void 0),g([t.Input(),l("design:type",Boolean)],e.prototype,"allowClearLogs",void 0),e=n=g([t.Component({selector:"ionic-logging-viewer-modal",template:'<ion-header>\n\t<ion-toolbar color=primary>\n\t\t<ion-title>{{ getTranslation().title }}</ion-title>\n\t\t<ion-buttons slot="start">\n\t\t\t<ion-button *ngIf="!isAndroid" (click)="onClose()">\n\t\t\t\t{{ getTranslation().cancel }}\n\t\t\t</ion-button>\n\t\t\t<ion-button *ngIf="isAndroid" icon-only (click)="onClose()">\n\t\t\t\t<ion-icon name="md-close"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-search [placeholder]="getTranslation().searchPlaceholder"></ionic-logging-viewer-search>\n\t\t<ion-buttons slot="end" *ngIf="allowClearLogs !== false" class="clearLogs">\n\t\t\t<ion-button (click)="onClearLogs()">\n\t\t\t\t<ion-icon name="trash-outline"></ion-icon>\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\t</ion-toolbar>\n\t<ion-toolbar>\n\t\t<ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n\t</ion-toolbar>\n</ion-header>\n<ion-content>\n\t<ionic-logging-viewer [localStorageKeys]="localStorageKeys"></ionic-logging-viewer>\n</ion-content>',styles:["ionic-logging-viewer-levels{width:100%;padding-left:12px;padding-right:12px}.clearLogs{padding-top:3px}"]}),l("design:paramtypes",[i.Platform,i.AlertController,i.ModalController,r.LoggingService])],e)}(),v=function(){function e(){}return e=g([t.NgModule({imports:[n.CommonModule,o.FormsModule,i.IonicModule],declarations:[u,f,p,d],entryComponents:[],exports:[u,f,p,d],providers:[h]})],e)}();e.LoggingViewerComponent=u,e.LoggingViewerLevelsComponent=p,e.LoggingViewerModalComponent=d,e.LoggingViewerModule=v,e.LoggingViewerSearchComponent=f,e.ɵa=h,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
|
-
//# sourceMappingURL=ionic-logging-viewer.umd.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://ionic-logging-viewer/lib/logging-viewer-filter.service.ts","ng://ionic-logging-viewer/lib/logging-viewer/logging-viewer.component.ts","ng://ionic-logging-viewer/lib/logging-viewer-levels/logging-viewer-levels.component.ts","ng://ionic-logging-viewer/lib/logging-viewer-search/logging-viewer-search.component.ts","ng://ionic-logging-viewer/lib/logging-viewer-modal/logging-viewer-modal.component.ts","ng://ionic-logging-viewer/lib/logging-viewer.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","push","__values","o","m","LoggingViewerFilterService","loggingService","logger","getLogger","entry","levelValue","searchValue","filterChanged","EventEmitter","exit","prototype","emit","LoggingService","Injectable","LoggingViewerComponent","loggingViewerFilterService","ngOnInit","_this","loadLogMessages","filterLogMessages","logMessagesChangedSubscription","logMessagesChanged","subscribe","filterChangedSubscription","ngOnDestroy","unsubscribe","logMessagesForDisplay","logMessages","filter","message","filterLogMessagesByLevel","filterLogMessagesBySearch","level","LogLevelConverter","levelFromString","RegExp","search","methodName","join","localStorageKeys","_b","split","_c","localStorageKey","concat","getLogMessagesFromLocalStorage","sort","a","b","timeStamp","getTime","getLogMessages","Input","Component","selector","template","LoggingViewerLevelsComponent","logLevels","selectedLevel","onLevelChanged","LoggingViewerSearchComponent","placeholder","onSearchChanged","LoggingViewerModalComponent","platform","alertController","modalController","isAndroid","is","translations","LoggingViewerModalComponent_1","languageEn","cancel","confirmDelete","ok","searchPlaceholder","title","languageDe","ionViewDidEnter","onClose","dismiss","_a","onClearLogs","create","header","getTranslation","buttons","text","role","cssClass","handler","clearLogs","present","removeLogMessagesFromLocalStorage","removeLogMessages","translation","language","Platform","AlertController","ModalController","LoggingViewerModule","NgModule","imports","CommonModule","FormsModule","IonicModule","declarations","entryComponents","exports","providers"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { EventEmitter, Injectable } from \"@angular/core\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\n/**\n * Service for storing filter settings for logging viewer.\n */\n@Injectable()\nexport class LoggingViewerFilterService {\n\n\t/**\n\t * Event triggered when the filter was changed.\n\t */\n\tpublic filterChanged: EventEmitter<void>;\n\n\tprivate logger: Logger;\n\tprivate levelValue: string;\n\tprivate searchValue: string;\n\n\t/**\n\t * Creates a new instance of the service.\n\t * @param loggingService needed for internal logging.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Filter.Service\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.levelValue = \"DEBUG\";\n\t\tthis.searchValue = \"\";\n\t\tthis.filterChanged = new EventEmitter<void>();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Gets the current log level.\n\t * @return log level\n\t */\n\tpublic get level(): string {\n\t\treturn this.levelValue;\n\t}\n\n\t/**\n\t * Sets the new log level and emits a filterChanged event.\n\t * @param value new slog level\n\t */\n\tpublic set level(value: string) {\n\t\tthis.levelValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n\n\t/**\n\t * Gets the current search value.\n\t * @return search value\n\t */\n\tpublic get search(): string {\n\t\treturn this.searchValue;\n\t}\n\n\t/**\n\t * Sets the new search value and emits a filterChanged event.\n\t * @param value new search value\n\t */\n\tpublic set search(value: string) {\n\t\tthis.searchValue = value;\n\t\tthis.filterChanged.emit();\n\t}\n}\n","import { Component, OnDestroy, OnInit, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService, LogLevelConverter, LogMessage } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer></ionic-logging-viewer>\n */\n@Component({\n\tselector: \"ionic-logging-viewer\",\n\ttemplateUrl: \"./logging-viewer.component.html\",\n\tstyleUrls: [\"./logging-viewer.component.scss\"]\n})\nexport class LoggingViewerComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Log messages which fulfill the filter condition.\n\t */\n\tpublic logMessagesForDisplay: LogMessage[];\n\n\tprivate logger: Logger;\n\tprivate logMessages: LogMessage[];\n\tprivate logMessagesChangedSubscription: Subscription;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tprivate loggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html)\n\t * and the log messages from [LoggingService](../../../ionic-logging-service/typedoc/index.html).\n\t * If the localStorageKeys property is set, the messages are read from local storage.\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.loadLogMessages();\n\t\tthis.filterLogMessages();\n\n\t\t// subscribe to loggingService.logMessagesChanged event, to refresh, when new message is logged\n\t\tthis.logMessagesChangedSubscription = this.loggingService.logMessagesChanged.subscribe(async () => {\n\t\t\tthis.loadLogMessages();\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh, when filter is modified\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.filterLogMessages();\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logMessagesChangedSubscription.unsubscribe();\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Filter the log messages.\n\t */\n\tpublic filterLogMessages(): void {\n\t\tthis.logMessagesForDisplay = this.logMessages.filter((message) => {\n\t\t\treturn this.filterLogMessagesByLevel(message) && this.filterLogMessagesBySearch(message);\n\t\t});\n\t}\n\n\t/**\n\t * Check if the log message's level fulfills the level condition.\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesByLevel(message: LogMessage): boolean {\n\t\tconst levelValue = this.loggingViewerFilterService.level;\n\t\treturn LogLevelConverter.levelFromString(message.level) >= LogLevelConverter.levelFromString(levelValue);\n\t}\n\n\t/**\n\t * Check if the log message fulfills the search condition.\n\t *\n\t * The search value gets searched in:\n\t * - logger name\n\t * - method name\n\t * - message\n\t *\n\t * @param message the log message to check\n\t * @returns true if check was successful\n\t */\n\tpublic filterLogMessagesBySearch(message: LogMessage): boolean {\n\t\tconst searchValue = new RegExp(this.loggingViewerFilterService.search, \"i\");\n\t\treturn message.logger.search(searchValue) >= 0 ||\n\t\t\tmessage.methodName.search(searchValue) >= 0 ||\n\t\t\tmessage.message.join(\"|\").search(searchValue) >= 0;\n\t}\n\n\t/**\n\t * Load the current log messages.\n\t * For unit test purposes mainly.\n\t */\n\tpublic loadLogMessages(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tthis.logMessages = [];\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.logMessages = this.logMessages.concat(this.loggingService.getLogMessagesFromLocalStorage(localStorageKey));\n\t\t\t}\n\t\t\tthis.logMessages = this.logMessages.sort((a, b) => a.timeStamp.getTime() - b.timeStamp.getTime());\n\t\t} else {\n\t\t\tthis.logMessages = this.loggingService.getLogMessages();\n\t\t}\n\t}\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the log levels for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-levels></ionic-logging-viewer-levels>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-levels\",\n\ttemplateUrl: \"./logging-viewer-levels.component.html\",\n\tstyleUrls: [\"./logging-viewer-levels.component.scss\"]\n})\nexport class LoggingViewerLevelsComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Log levels used for filtering: DEBUG, INFO, WARN, ERROR\n\t */\n\tpublic logLevels: string[];\n\n\t/**\n\t * Selected level.\n\t */\n\tpublic selectedLevel: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Levels.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logLevels = [];\n\t\tthis.logLevels.push(\n\t\t\t\"DEBUG\",\n\t\t\t\"INFO\",\n\t\t\t\"WARN\",\n\t\t\t\"ERROR\",\n\t\t);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the level\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.selectedLevel = this.loggingViewerFilterService.level;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the level was changed in the UI.\n\t */\n\tpublic onLevelChanged(): void {\n\t\tconst methodName = \"onLevelChanged\";\n\t\tthis.logger.entry(methodName, this.selectedLevel);\n\n\t\tthis.loggingViewerFilterService.level = this.selectedLevel;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { LoggingService, Logger } from \"ionic-logging-service\";\n\nimport { LoggingViewerFilterService } from \"../logging-viewer-filter.service\";\n\n/**\n * Component for displaying the search bar for filtering the current logs.\n *\n * The component can be embedded in any web page using:\n *\n * <ionic-logging-viewer-search placeholder=\"Search\"></ionic-logging-viewer-search>\n */\n@Component({\n\tselector: \"ionic-logging-viewer-search\",\n\ttemplateUrl: \"./logging-viewer-search.component.html\",\n\tstyleUrls: [\"./logging-viewer-search.component.scss\"]\n})\nexport class LoggingViewerSearchComponent implements OnInit, OnDestroy {\n\n\t/**\n\t * Placeholder to be shown in the empty search bar.\n\t */\n\t@Input()\n\tpublic placeholder: string;\n\n\t/**\n\t * Current search value.\n\t */\n\tpublic search: string;\n\n\tprivate logger: Logger;\n\tprivate filterChangedSubscription: Subscription;\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tloggingService: LoggingService,\n\t\tprivate loggingViewerFilterService: LoggingViewerFilterService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Search.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initialize the component.\n\t *\n\t * This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).\n\t */\n\tpublic ngOnInit(): void {\n\t\tconst methodName = \"ngOnInit\";\n\t\tthis.logger.entry(methodName);\n\n\t\tif (!this.placeholder) {\n\t\t\tthis.placeholder = \"Search\";\n\t\t}\n\t\tthis.search = this.loggingViewerFilterService.search;\n\n\t\t// subscribe to loggingViewerFilterService.filterChanged event, to refresh,\n\t\t// when someone else modifies the search value\n\t\tthis.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {\n\t\t\tthis.search = this.loggingViewerFilterService.search;\n\t\t});\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clean up.\n\t */\n\tpublic ngOnDestroy(): void {\n\t\tconst methodName = \"ngOnDestroy\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.filterChangedSubscription.unsubscribe();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Callback when the search value was changed in the UI.\n\t */\n\tpublic onSearchChanged(): void {\n\t\tconst methodName = \"onSearchChanged\";\n\t\tthis.logger.entry(methodName, this.search);\n\n\t\tthis.loggingViewerFilterService.search = this.search;\n\n\t\tthis.logger.exit(methodName);\n\t}\n}\n","import { Component, OnInit, Input } from \"@angular/core\";\n\nimport { ModalController, Platform, AlertController } from \"@ionic/angular\";\n\nimport { Logger, LoggingService } from \"ionic-logging-service\";\n\nimport { LoggingViewerTranslation } from \"../logging-viewer-translation.model\";\n\n/**\n * Ionic modal containing [LoggingViewerComponent](LoggingViewerComponent.html),\n * [LoggingViewerLevelsComponent](LoggingViewerLevelsComponent.html) and\n * [LoggingViewerSearchComponent](LoggingViewerSearchComponent.html).\n */\n@Component({\n\tselector: \"ionic-logging-viewer-modal\",\n\ttemplateUrl: \"./logging-viewer-modal.component.html\",\n\tstyleUrls: [\"./logging-viewer-modal.component.scss\"]\n})\nexport class LoggingViewerModalComponent implements OnInit {\n\n\tprivate static languageEn = \"en\";\n\tprivate static languageDe = \"de\";\n\n\t/**\n\t * Language to be used for the modal.\n\t * Currently supported: en, de\n\t */\n\t@Input()\n\tpublic language: string;\n\n\t/**\n\t * Translation to be used for the modal.\n\t * If specified, the language is ignored.\n\t */\n\t@Input()\n\tpublic translation: LoggingViewerTranslation;\n\n\t/**\n\t * Comma-separated list of localStorageKeys. If set, the logs get loaded from localStorage instead of memory.\n\t */\n\t@Input()\n\tpublic localStorageKeys: string;\n\n\t/**\n\t * Flag showing a delete button, which removes all existing log messages.\n\t */\n\t@Input()\n\tpublic allowClearLogs: boolean;\n\n\t/**\n\t * Flag controlling which close button will be shown.\n\t */\n\tpublic isAndroid: boolean;\n\n\t// tslint:disable-next-line:completed-docs\n\tprivate logger: Logger;\n\n\t// tslint:disable-next-line:completed-docs\n\tprivate translations: { [language: string]: LoggingViewerTranslation; };\n\n\t/**\n\t * Creates a new instance of the component.\n\t */\n\tconstructor(\n\t\tplatform: Platform,\n\t\tprivate alertController: AlertController,\n\t\tprivate modalController: ModalController,\n\t\tprivate loggingService: LoggingService) {\n\n\t\tthis.logger = loggingService.getLogger(\"Ionic.Logging.Viewer.Modal.Component\");\n\t\tconst methodName = \"ctor\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.isAndroid = platform.is(\"android\");\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Initializes the LoggingViewerModalComponent.\n\t * It configures the supported translations.\n\t */\n\tpublic ngOnInit(): void {\n\t\t// prepare translations\n\t\tthis.translations = {};\n\t\tthis.translations[LoggingViewerModalComponent.languageEn] = {\n\t\t\tcancel: \"Cancel\",\n\t\t\tconfirmDelete: \"Delete all log messages?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Search\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t\tthis.translations[LoggingViewerModalComponent.languageDe] = {\n\t\t\tcancel: \"Abbrechen\",\n\t\t\tconfirmDelete: \"Alle Logs löschen?\",\n\t\t\tok: \"Ok\",\n\t\t\tsearchPlaceholder: \"Suchen\",\n\t\t\ttitle: \"Logging\",\n\t\t};\n\t}\n\n\t/**\n\t * Eventhandler called by Ionic when the modal is opened.\n\t */\n\tpublic ionViewDidEnter(): void {\n\t\tconst methodName = \"ionViewDidEnter\";\n\t\tthis.logger.entry(methodName);\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the cancel button is clicked.\n\t */\n\tpublic async onClose(): Promise<void> {\n\t\tconst methodName = \"onClose\";\n\t\tthis.logger.entry(methodName);\n\n\t\tawait this.modalController.dismiss();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Eventhandler called when the clear button is clicked.\n\t */\n\tpublic async onClearLogs(): Promise<void> {\n\t\tconst methodName = \"onClearLogs\";\n\t\tthis.logger.entry(methodName);\n\n\t\tconst alert = await this.alertController.create({\n\t\t\theader: this.getTranslation().confirmDelete,\n\t\t\tbuttons: [\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().cancel,\n\t\t\t\t\trole: \"cancel\",\n\t\t\t\t\tcssClass: \"secondary\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: this.getTranslation().ok,\n\t\t\t\t\thandler: this.clearLogs\n\t\t\t\t},\n\t\t\t]\n\t\t});\n\t\tawait alert.present();\n\n\t\tthis.logger.exit(methodName);\n\t}\n\n\t/**\n\t * Clear logs.\n\t */\n\tpublic clearLogs(): void {\n\t\tif (this.localStorageKeys) {\n\t\t\tfor (const localStorageKey of this.localStorageKeys.split(\",\")) {\n\t\t\t\tthis.loggingService.removeLogMessagesFromLocalStorage(localStorageKey);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.loggingService.removeLogMessages();\n\t\t}\n\t}\n\n\t/**\n\t * Helper method returning the current translation:\n\t * - the property translation if defined\n\t * - the translation according property language if valid\n\t * - English translation, otherwise\n\t */\n\tpublic getTranslation(): LoggingViewerTranslation {\n\t\tif (typeof this.translation !== \"undefined\") {\n\t\t\treturn this.translation;\n\t\t} else if (typeof this.language !== \"undefined\" && typeof this.translations[this.language] === \"object\") {\n\t\t\treturn this.translations[this.language];\n\t\t} else {\n\t\t\treturn this.translations[LoggingViewerModalComponent.languageEn];\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { IonicModule } from \"@ionic/angular\";\n\nimport { LoggingViewerComponent } from \"./logging-viewer/logging-viewer.component\";\nimport { LoggingViewerFilterService } from \"./logging-viewer-filter.service\";\nimport { LoggingViewerLevelsComponent } from \"./logging-viewer-levels/logging-viewer-levels.component\";\nimport { LoggingViewerSearchComponent } from \"./logging-viewer-search/logging-viewer-search.component\";\nimport { LoggingViewerModalComponent } from \"./logging-viewer-modal/logging-viewer-modal.component\";\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tIonicModule\n\t],\n\tdeclarations: [\n\t\tLoggingViewerComponent,\n\t\tLoggingViewerSearchComponent,\n\t\tLoggingViewerLevelsComponent,\n\t\tLoggingViewerModalComponent\n\t],\n\tentryComponents: [\n\t],\n\texports: [\n\t\tLoggingViewerComponent,\n\t\tLoggingViewerSearchComponent,\n\t\tLoggingViewerLevelsComponent,\n\t\tLoggingViewerModalComponent\n\t],\n\tproviders: [\n\t\tLoggingViewerFilterService\n\t]\n})\nexport class LoggingViewerModule { }\n"]}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
export { LoggingViewerFilterService as ɵa } from './lib/logging-viewer-filter.service';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtbG9nZ2luZy12aWV3ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pb25pYy1sb2dnaW5nLXZpZXdlci8iLCJzb3VyY2VzIjpbImlvbmljLWxvZ2dpbmctdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0xvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlIGFzIMm1YX0gZnJvbSAnLi9saWIvbG9nZ2luZy12aWV3ZXItZmlsdGVyLnNlcnZpY2UnOyJdfQ==
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component, Input } from "@angular/core";
|
|
3
|
-
import { Logger, LoggingService, LogLevelConverter, LogMessage } from "ionic-logging-service";
|
|
4
|
-
import { LoggingViewerFilterService } from "../logging-viewer-filter.service";
|
|
5
|
-
/**
|
|
6
|
-
* Component for displaying the current logs.
|
|
7
|
-
*
|
|
8
|
-
* The component can be embedded in any web page using:
|
|
9
|
-
*
|
|
10
|
-
* <ionic-logging-viewer></ionic-logging-viewer>
|
|
11
|
-
*/
|
|
12
|
-
let LoggingViewerComponent = class LoggingViewerComponent {
|
|
13
|
-
/**
|
|
14
|
-
* Creates a new instance of the component.
|
|
15
|
-
*/
|
|
16
|
-
constructor(loggingService, loggingViewerFilterService) {
|
|
17
|
-
this.loggingService = loggingService;
|
|
18
|
-
this.loggingViewerFilterService = loggingViewerFilterService;
|
|
19
|
-
this.logger = loggingService.getLogger("Ionic.Logging.Viewer.Component");
|
|
20
|
-
const methodName = "ctor";
|
|
21
|
-
this.logger.entry(methodName);
|
|
22
|
-
this.logger.exit(methodName);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Initialize the component.
|
|
26
|
-
*
|
|
27
|
-
* This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html)
|
|
28
|
-
* and the log messages from [LoggingService](../../../ionic-logging-service/typedoc/index.html).
|
|
29
|
-
* If the localStorageKeys property is set, the messages are read from local storage.
|
|
30
|
-
*/
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
const methodName = "ngOnInit";
|
|
33
|
-
this.logger.entry(methodName);
|
|
34
|
-
this.loadLogMessages();
|
|
35
|
-
this.filterLogMessages();
|
|
36
|
-
// subscribe to loggingService.logMessagesChanged event, to refresh, when new message is logged
|
|
37
|
-
this.logMessagesChangedSubscription = this.loggingService.logMessagesChanged.subscribe(() => __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
this.loadLogMessages();
|
|
39
|
-
this.filterLogMessages();
|
|
40
|
-
}));
|
|
41
|
-
// subscribe to loggingViewerFilterService.filterChanged event, to refresh, when filter is modified
|
|
42
|
-
this.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {
|
|
43
|
-
this.filterLogMessages();
|
|
44
|
-
});
|
|
45
|
-
this.logger.exit(methodName);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Clean up.
|
|
49
|
-
*/
|
|
50
|
-
ngOnDestroy() {
|
|
51
|
-
const methodName = "ngOnDestroy";
|
|
52
|
-
this.logger.entry(methodName);
|
|
53
|
-
this.logMessagesChangedSubscription.unsubscribe();
|
|
54
|
-
this.filterChangedSubscription.unsubscribe();
|
|
55
|
-
this.logger.exit(methodName);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Filter the log messages.
|
|
59
|
-
*/
|
|
60
|
-
filterLogMessages() {
|
|
61
|
-
this.logMessagesForDisplay = this.logMessages.filter((message) => {
|
|
62
|
-
return this.filterLogMessagesByLevel(message) && this.filterLogMessagesBySearch(message);
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Check if the log message's level fulfills the level condition.
|
|
67
|
-
*
|
|
68
|
-
* @param message the log message to check
|
|
69
|
-
* @returns true if check was successful
|
|
70
|
-
*/
|
|
71
|
-
filterLogMessagesByLevel(message) {
|
|
72
|
-
const levelValue = this.loggingViewerFilterService.level;
|
|
73
|
-
return LogLevelConverter.levelFromString(message.level) >= LogLevelConverter.levelFromString(levelValue);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Check if the log message fulfills the search condition.
|
|
77
|
-
*
|
|
78
|
-
* The search value gets searched in:
|
|
79
|
-
* - logger name
|
|
80
|
-
* - method name
|
|
81
|
-
* - message
|
|
82
|
-
*
|
|
83
|
-
* @param message the log message to check
|
|
84
|
-
* @returns true if check was successful
|
|
85
|
-
*/
|
|
86
|
-
filterLogMessagesBySearch(message) {
|
|
87
|
-
const searchValue = new RegExp(this.loggingViewerFilterService.search, "i");
|
|
88
|
-
return message.logger.search(searchValue) >= 0 ||
|
|
89
|
-
message.methodName.search(searchValue) >= 0 ||
|
|
90
|
-
message.message.join("|").search(searchValue) >= 0;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Load the current log messages.
|
|
94
|
-
* For unit test purposes mainly.
|
|
95
|
-
*/
|
|
96
|
-
loadLogMessages() {
|
|
97
|
-
if (this.localStorageKeys) {
|
|
98
|
-
this.logMessages = [];
|
|
99
|
-
for (const localStorageKey of this.localStorageKeys.split(",")) {
|
|
100
|
-
this.logMessages = this.logMessages.concat(this.loggingService.getLogMessagesFromLocalStorage(localStorageKey));
|
|
101
|
-
}
|
|
102
|
-
this.logMessages = this.logMessages.sort((a, b) => a.timeStamp.getTime() - b.timeStamp.getTime());
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
this.logMessages = this.loggingService.getLogMessages();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
LoggingViewerComponent.ctorParameters = () => [
|
|
110
|
-
{ type: LoggingService },
|
|
111
|
-
{ type: LoggingViewerFilterService }
|
|
112
|
-
];
|
|
113
|
-
__decorate([
|
|
114
|
-
Input(),
|
|
115
|
-
__metadata("design:type", String)
|
|
116
|
-
], LoggingViewerComponent.prototype, "localStorageKeys", void 0);
|
|
117
|
-
LoggingViewerComponent = __decorate([
|
|
118
|
-
Component({
|
|
119
|
-
selector: "ionic-logging-viewer",
|
|
120
|
-
template: "<ion-list>\n\t<ion-item *ngFor=\"let logMessage of logMessagesForDisplay\">\n\t\t<ion-label>\n\t\t\t<p>{{ logMessage.timeStamp | date:'dd.MM.yyyy HH:mm:ss' }} {{ logMessage.level }}</p>\n\t\t\t<p>{{ logMessage.logger }}</p>\n\t\t\t<p>\n\t\t\t\t{{ logMessage.methodName }}\n\t\t\t\t<span *ngFor=\"let messagePart of logMessage.message\"> {{ messagePart }} </span>\n\t\t\t</p>\n\t\t</ion-label>\n\t</ion-item>\n</ion-list>",
|
|
121
|
-
styles: [""]
|
|
122
|
-
}),
|
|
123
|
-
__metadata("design:paramtypes", [LoggingService,
|
|
124
|
-
LoggingViewerFilterService])
|
|
125
|
-
], LoggingViewerComponent);
|
|
126
|
-
export { LoggingViewerComponent };
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaW9uaWMtbG9nZ2luZy12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvbG9nZ2luZy12aWV3ZXIvbG9nZ2luZy12aWV3ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFOUU7Ozs7OztHQU1HO0FBTUgsSUFBYSxzQkFBc0IsR0FBbkMsTUFBYSxzQkFBc0I7SUFrQmxDOztPQUVHO0lBQ0gsWUFDUyxjQUE4QixFQUM5QiwwQkFBc0Q7UUFEdEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFFOUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDekUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxRQUFRO1FBQ2QsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QiwrRkFBK0Y7UUFDL0YsSUFB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RUFBRSxDQUFDLENBQUM7U0FDbEc7YUFBTTtZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4RDtJQUNGLENBQUM7Q0FDRCxDQUFBOztZQXhHeUIsY0FBYztZQUNGLDBCQUEwQjs7QUFqQi9EO0lBREMsS0FBSyxFQUFFOztnRUFDd0I7QUFOcEIsc0JBQXNCO0lBTGxDLFNBQVMsQ0FBQztRQUNWLFFBQVEsRUFBRSxzQkFBc0I7UUFDaEMsZ2JBQThDOztLQUU5QyxDQUFDO3FDQXVCd0IsY0FBYztRQUNGLDBCQUEwQjtHQXZCbkQsc0JBQXNCLENBOEhsQztTQTlIWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dpbmdTZXJ2aWNlLCBMb2dMZXZlbENvbnZlcnRlciwgTG9nTWVzc2FnZSB9IGZyb20gXCJpb25pYy1sb2dnaW5nLXNlcnZpY2VcIjtcblxuaW1wb3J0IHsgTG9nZ2luZ1ZpZXdlckZpbHRlclNlcnZpY2UgfSBmcm9tIFwiLi4vbG9nZ2luZy12aWV3ZXItZmlsdGVyLnNlcnZpY2VcIjtcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgdGhlIGN1cnJlbnQgbG9ncy5cbiAqXG4gKiBUaGUgY29tcG9uZW50IGNhbiBiZSBlbWJlZGRlZCBpbiBhbnkgd2ViIHBhZ2UgdXNpbmc6XG4gKlxuICogJmx0O2lvbmljLWxvZ2dpbmctdmlld2VyPiZsdDsvaW9uaWMtbG9nZ2luZy12aWV3ZXI+XG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJpb25pYy1sb2dnaW5nLXZpZXdlclwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL2xvZ2dpbmctdmlld2VyLmNvbXBvbmVudC5odG1sXCIsXG5cdHN0eWxlVXJsczogW1wiLi9sb2dnaW5nLXZpZXdlci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dnaW5nVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG5cdC8qKlxuXHQgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBsb2NhbFN0b3JhZ2VLZXlzLiBJZiBzZXQsIHRoZSBsb2dzIGdldCBsb2FkZWQgZnJvbSBsb2NhbFN0b3JhZ2UgaW5zdGVhZCBvZiBtZW1vcnkuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRwdWJsaWMgbG9jYWxTdG9yYWdlS2V5czogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBMb2cgbWVzc2FnZXMgd2hpY2ggZnVsZmlsbCB0aGUgZmlsdGVyIGNvbmRpdGlvbi5cblx0ICovXG5cdHB1YmxpYyBsb2dNZXNzYWdlc0ZvckRpc3BsYXk6IExvZ01lc3NhZ2VbXTtcblxuXHRwcml2YXRlIGxvZ2dlcjogTG9nZ2VyO1xuXHRwcml2YXRlIGxvZ01lc3NhZ2VzOiBMb2dNZXNzYWdlW107XG5cdHByaXZhdGUgbG9nTWVzc2FnZXNDaGFuZ2VkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cdHByaXZhdGUgZmlsdGVyQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGxvZ2dpbmdTZXJ2aWNlOiBMb2dnaW5nU2VydmljZSxcblx0XHRwcml2YXRlIGxvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlOiBMb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZSkge1xuXG5cdFx0dGhpcy5sb2dnZXIgPSBsb2dnaW5nU2VydmljZS5nZXRMb2dnZXIoXCJJb25pYy5Mb2dnaW5nLlZpZXdlci5Db21wb25lbnRcIik7XG5cdFx0Y29uc3QgbWV0aG9kTmFtZSA9IFwiY3RvclwiO1xuXHRcdHRoaXMubG9nZ2VyLmVudHJ5KG1ldGhvZE5hbWUpO1xuXG5cdFx0dGhpcy5sb2dnZXIuZXhpdChtZXRob2ROYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbml0aWFsaXplIHRoZSBjb21wb25lbnQuXG5cdCAqXG5cdCAqIFRoaXMgaXMgZG9uZSBieSByZWFkaW5nIHRoZSBmaWx0ZXIgZGF0YSBmcm9tIFtMb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZV0oTG9nZ2luZ1ZpZXdlckZpbHRlclNlcnZpY2UuaHRtbClcblx0ICogYW5kIHRoZSBsb2cgbWVzc2FnZXMgZnJvbSBbTG9nZ2luZ1NlcnZpY2VdKC4uLy4uLy4uL2lvbmljLWxvZ2dpbmctc2VydmljZS90eXBlZG9jL2luZGV4Lmh0bWwpLlxuXHQgKiBJZiB0aGUgbG9jYWxTdG9yYWdlS2V5cyBwcm9wZXJ0eSBpcyBzZXQsIHRoZSBtZXNzYWdlcyBhcmUgcmVhZCBmcm9tIGxvY2FsIHN0b3JhZ2UuXG5cdCAqL1xuXHRwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cdFx0Y29uc3QgbWV0aG9kTmFtZSA9IFwibmdPbkluaXRcIjtcblx0XHR0aGlzLmxvZ2dlci5lbnRyeShtZXRob2ROYW1lKTtcblxuXHRcdHRoaXMubG9hZExvZ01lc3NhZ2VzKCk7XG5cdFx0dGhpcy5maWx0ZXJMb2dNZXNzYWdlcygpO1xuXG5cdFx0Ly8gc3Vic2NyaWJlIHRvIGxvZ2dpbmdTZXJ2aWNlLmxvZ01lc3NhZ2VzQ2hhbmdlZCBldmVudCwgdG8gcmVmcmVzaCwgd2hlbiBuZXcgbWVzc2FnZSBpcyBsb2dnZWRcblx0XHR0aGlzLmxvZ01lc3NhZ2VzQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMubG9nZ2luZ1NlcnZpY2UubG9nTWVzc2FnZXNDaGFuZ2VkLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG5cdFx0XHR0aGlzLmxvYWRMb2dNZXNzYWdlcygpO1xuXHRcdFx0dGhpcy5maWx0ZXJMb2dNZXNzYWdlcygpO1xuXHRcdH0pO1xuXG5cdFx0Ly8gc3Vic2NyaWJlIHRvIGxvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlLmZpbHRlckNoYW5nZWQgZXZlbnQsIHRvIHJlZnJlc2gsIHdoZW4gZmlsdGVyIGlzIG1vZGlmaWVkXG5cdFx0dGhpcy5maWx0ZXJDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5sb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZS5maWx0ZXJDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLmZpbHRlckxvZ01lc3NhZ2VzKCk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmxvZ2dlci5leGl0KG1ldGhvZE5hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENsZWFuIHVwLlxuXHQgKi9cblx0cHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdGNvbnN0IG1ldGhvZE5hbWUgPSBcIm5nT25EZXN0cm95XCI7XG5cdFx0dGhpcy5sb2dnZXIuZW50cnkobWV0aG9kTmFtZSk7XG5cblx0XHR0aGlzLmxvZ01lc3NhZ2VzQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdHRoaXMuZmlsdGVyQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG5cdFx0dGhpcy5sb2dnZXIuZXhpdChtZXRob2ROYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGaWx0ZXIgdGhlIGxvZyBtZXNzYWdlcy5cblx0ICovXG5cdHB1YmxpYyBmaWx0ZXJMb2dNZXNzYWdlcygpOiB2b2lkIHtcblx0XHR0aGlzLmxvZ01lc3NhZ2VzRm9yRGlzcGxheSA9IHRoaXMubG9nTWVzc2FnZXMuZmlsdGVyKChtZXNzYWdlKSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5maWx0ZXJMb2dNZXNzYWdlc0J5TGV2ZWwobWVzc2FnZSkgJiYgdGhpcy5maWx0ZXJMb2dNZXNzYWdlc0J5U2VhcmNoKG1lc3NhZ2UpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrIGlmIHRoZSBsb2cgbWVzc2FnZSdzIGxldmVsIGZ1bGZpbGxzIHRoZSBsZXZlbCBjb25kaXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlIHRoZSBsb2cgbWVzc2FnZSB0byBjaGVja1xuXHQgKiBAcmV0dXJucyB0cnVlIGlmIGNoZWNrIHdhcyBzdWNjZXNzZnVsXG5cdCAqL1xuXHRwdWJsaWMgZmlsdGVyTG9nTWVzc2FnZXNCeUxldmVsKG1lc3NhZ2U6IExvZ01lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRjb25zdCBsZXZlbFZhbHVlID0gdGhpcy5sb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZS5sZXZlbDtcblx0XHRyZXR1cm4gTG9nTGV2ZWxDb252ZXJ0ZXIubGV2ZWxGcm9tU3RyaW5nKG1lc3NhZ2UubGV2ZWwpID49IExvZ0xldmVsQ29udmVydGVyLmxldmVsRnJvbVN0cmluZyhsZXZlbFZhbHVlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVjayBpZiB0aGUgbG9nIG1lc3NhZ2UgZnVsZmlsbHMgdGhlIHNlYXJjaCBjb25kaXRpb24uXG5cdCAqXG5cdCAqIFRoZSBzZWFyY2ggdmFsdWUgZ2V0cyBzZWFyY2hlZCBpbjpcblx0ICogLSBsb2dnZXIgbmFtZVxuXHQgKiAtIG1ldGhvZCBuYW1lXG5cdCAqIC0gbWVzc2FnZVxuXHQgKlxuXHQgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbG9nIG1lc3NhZ2UgdG8gY2hlY2tcblx0ICogQHJldHVybnMgdHJ1ZSBpZiBjaGVjayB3YXMgc3VjY2Vzc2Z1bFxuXHQgKi9cblx0cHVibGljIGZpbHRlckxvZ01lc3NhZ2VzQnlTZWFyY2gobWVzc2FnZTogTG9nTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IHNlYXJjaFZhbHVlID0gbmV3IFJlZ0V4cCh0aGlzLmxvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlLnNlYXJjaCwgXCJpXCIpO1xuXHRcdHJldHVybiBtZXNzYWdlLmxvZ2dlci5zZWFyY2goc2VhcmNoVmFsdWUpID49IDAgfHxcblx0XHRcdG1lc3NhZ2UubWV0aG9kTmFtZS5zZWFyY2goc2VhcmNoVmFsdWUpID49IDAgfHxcblx0XHRcdG1lc3NhZ2UubWVzc2FnZS5qb2luKFwifFwiKS5zZWFyY2goc2VhcmNoVmFsdWUpID49IDA7XG5cdH1cblxuXHQvKipcblx0ICogTG9hZCB0aGUgY3VycmVudCBsb2cgbWVzc2FnZXMuXG5cdCAqIEZvciB1bml0IHRlc3QgcHVycG9zZXMgbWFpbmx5LlxuXHQgKi9cblx0cHVibGljIGxvYWRMb2dNZXNzYWdlcygpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5sb2NhbFN0b3JhZ2VLZXlzKSB7XG5cdFx0XHR0aGlzLmxvZ01lc3NhZ2VzID0gW107XG5cdFx0XHRmb3IgKGNvbnN0IGxvY2FsU3RvcmFnZUtleSBvZiB0aGlzLmxvY2FsU3RvcmFnZUtleXMuc3BsaXQoXCIsXCIpKSB7XG5cdFx0XHRcdHRoaXMubG9nTWVzc2FnZXMgPSB0aGlzLmxvZ01lc3NhZ2VzLmNvbmNhdCh0aGlzLmxvZ2dpbmdTZXJ2aWNlLmdldExvZ01lc3NhZ2VzRnJvbUxvY2FsU3RvcmFnZShsb2NhbFN0b3JhZ2VLZXkpKTtcblx0XHRcdH1cblx0XHRcdHRoaXMubG9nTWVzc2FnZXMgPSB0aGlzLmxvZ01lc3NhZ2VzLnNvcnQoKGEsIGIpID0+IGEudGltZVN0YW1wLmdldFRpbWUoKSAtIGIudGltZVN0YW1wLmdldFRpbWUoKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMubG9nTWVzc2FnZXMgPSB0aGlzLmxvZ2dpbmdTZXJ2aWNlLmdldExvZ01lc3NhZ2VzKCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { EventEmitter, Injectable } from "@angular/core";
|
|
3
|
-
import { Logger, LoggingService } from "ionic-logging-service";
|
|
4
|
-
/**
|
|
5
|
-
* Service for storing filter settings for logging viewer.
|
|
6
|
-
*/
|
|
7
|
-
let LoggingViewerFilterService = class LoggingViewerFilterService {
|
|
8
|
-
/**
|
|
9
|
-
* Creates a new instance of the service.
|
|
10
|
-
* @param loggingService needed for internal logging.
|
|
11
|
-
*/
|
|
12
|
-
constructor(loggingService) {
|
|
13
|
-
this.logger = loggingService.getLogger("Ionic.Logging.Viewer.Filter.Service");
|
|
14
|
-
const methodName = "ctor";
|
|
15
|
-
this.logger.entry(methodName);
|
|
16
|
-
this.levelValue = "DEBUG";
|
|
17
|
-
this.searchValue = "";
|
|
18
|
-
this.filterChanged = new EventEmitter();
|
|
19
|
-
this.logger.exit(methodName);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Gets the current log level.
|
|
23
|
-
* @return log level
|
|
24
|
-
*/
|
|
25
|
-
get level() {
|
|
26
|
-
return this.levelValue;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Sets the new log level and emits a filterChanged event.
|
|
30
|
-
* @param value new slog level
|
|
31
|
-
*/
|
|
32
|
-
set level(value) {
|
|
33
|
-
this.levelValue = value;
|
|
34
|
-
this.filterChanged.emit();
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Gets the current search value.
|
|
38
|
-
* @return search value
|
|
39
|
-
*/
|
|
40
|
-
get search() {
|
|
41
|
-
return this.searchValue;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Sets the new search value and emits a filterChanged event.
|
|
45
|
-
* @param value new search value
|
|
46
|
-
*/
|
|
47
|
-
set search(value) {
|
|
48
|
-
this.searchValue = value;
|
|
49
|
-
this.filterChanged.emit();
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
LoggingViewerFilterService.ctorParameters = () => [
|
|
53
|
-
{ type: LoggingService }
|
|
54
|
-
];
|
|
55
|
-
LoggingViewerFilterService = __decorate([
|
|
56
|
-
Injectable(),
|
|
57
|
-
__metadata("design:paramtypes", [LoggingService])
|
|
58
|
-
], LoggingViewerFilterService);
|
|
59
|
-
export { LoggingViewerFilterService };
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy12aWV3ZXItZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pb25pYy1sb2dnaW5nLXZpZXdlci8iLCJzb3VyY2VzIjpbImxpYi9sb2dnaW5nLXZpZXdlci1maWx0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRDs7R0FFRztBQUVILElBQWEsMEJBQTBCLEdBQXZDLE1BQWEsMEJBQTBCO0lBV3RDOzs7T0FHRztJQUNILFlBQ0MsY0FBOEI7UUFFOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU5QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxLQUFLO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEtBQUssQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsTUFBTSxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0QsQ0FBQTs7WUE5Q2lCLGNBQWM7O0FBaEJuQiwwQkFBMEI7SUFEdEMsVUFBVSxFQUFFO3FDQWlCSyxjQUFjO0dBaEJuQiwwQkFBMEIsQ0E4RHRDO1NBOURZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IExvZ2dlciwgTG9nZ2luZ1NlcnZpY2UgfSBmcm9tIFwiaW9uaWMtbG9nZ2luZy1zZXJ2aWNlXCI7XG5cbi8qKlxuICogU2VydmljZSBmb3Igc3RvcmluZyBmaWx0ZXIgc2V0dGluZ3MgZm9yIGxvZ2dpbmcgdmlld2VyLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9nZ2luZ1ZpZXdlckZpbHRlclNlcnZpY2Uge1xuXG5cdC8qKlxuXHQgKiBFdmVudCB0cmlnZ2VyZWQgd2hlbiB0aGUgZmlsdGVyIHdhcyBjaGFuZ2VkLlxuXHQgKi9cblx0cHVibGljIGZpbHRlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuXHRwcml2YXRlIGxvZ2dlcjogTG9nZ2VyO1xuXHRwcml2YXRlIGxldmVsVmFsdWU6IHN0cmluZztcblx0cHJpdmF0ZSBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBzZXJ2aWNlLlxuXHQgKiBAcGFyYW0gbG9nZ2luZ1NlcnZpY2UgbmVlZGVkIGZvciBpbnRlcm5hbCBsb2dnaW5nLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoXG5cdFx0bG9nZ2luZ1NlcnZpY2U6IExvZ2dpbmdTZXJ2aWNlKSB7XG5cblx0XHR0aGlzLmxvZ2dlciA9IGxvZ2dpbmdTZXJ2aWNlLmdldExvZ2dlcihcIklvbmljLkxvZ2dpbmcuVmlld2VyLkZpbHRlci5TZXJ2aWNlXCIpO1xuXHRcdGNvbnN0IG1ldGhvZE5hbWUgPSBcImN0b3JcIjtcblx0XHR0aGlzLmxvZ2dlci5lbnRyeShtZXRob2ROYW1lKTtcblxuXHRcdHRoaXMubGV2ZWxWYWx1ZSA9IFwiREVCVUdcIjtcblx0XHR0aGlzLnNlYXJjaFZhbHVlID0gXCJcIjtcblx0XHR0aGlzLmZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0XHR0aGlzLmxvZ2dlci5leGl0KG1ldGhvZE5hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGN1cnJlbnQgbG9nIGxldmVsLlxuXHQgKiBAcmV0dXJuIGxvZyBsZXZlbFxuXHQgKi9cblx0cHVibGljIGdldCBsZXZlbCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmxldmVsVmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgbmV3IGxvZyBsZXZlbCBhbmQgZW1pdHMgYSBmaWx0ZXJDaGFuZ2VkIGV2ZW50LlxuXHQgKiBAcGFyYW0gdmFsdWUgbmV3IHNsb2cgbGV2ZWxcblx0ICovXG5cdHB1YmxpYyBzZXQgbGV2ZWwodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMubGV2ZWxWYWx1ZSA9IHZhbHVlO1xuXHRcdHRoaXMuZmlsdGVyQ2hhbmdlZC5lbWl0KCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgY3VycmVudCBzZWFyY2ggdmFsdWUuXG5cdCAqIEByZXR1cm4gc2VhcmNoIHZhbHVlXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHNlYXJjaCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnNlYXJjaFZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIG5ldyBzZWFyY2ggdmFsdWUgYW5kIGVtaXRzIGEgZmlsdGVyQ2hhbmdlZCBldmVudC5cblx0ICogQHBhcmFtIHZhbHVlIG5ldyBzZWFyY2ggdmFsdWVcblx0ICovXG5cdHB1YmxpYyBzZXQgc2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnNlYXJjaFZhbHVlID0gdmFsdWU7XG5cdFx0dGhpcy5maWx0ZXJDaGFuZ2VkLmVtaXQoKTtcblx0fVxufVxuIl19
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component } from "@angular/core";
|
|
3
|
-
import { Logger, LoggingService } from "ionic-logging-service";
|
|
4
|
-
import { LoggingViewerFilterService } from "../logging-viewer-filter.service";
|
|
5
|
-
/**
|
|
6
|
-
* Component for displaying the log levels for filtering the current logs.
|
|
7
|
-
*
|
|
8
|
-
* The component can be embedded in any web page using:
|
|
9
|
-
*
|
|
10
|
-
* <ionic-logging-viewer-levels></ionic-logging-viewer-levels>
|
|
11
|
-
*/
|
|
12
|
-
let LoggingViewerLevelsComponent = class LoggingViewerLevelsComponent {
|
|
13
|
-
/**
|
|
14
|
-
* Creates a new instance of the component.
|
|
15
|
-
*/
|
|
16
|
-
constructor(loggingService, loggingViewerFilterService) {
|
|
17
|
-
this.loggingViewerFilterService = loggingViewerFilterService;
|
|
18
|
-
this.logger = loggingService.getLogger("Ionic.Logging.Viewer.Levels.Component");
|
|
19
|
-
const methodName = "ctor";
|
|
20
|
-
this.logger.entry(methodName);
|
|
21
|
-
this.logLevels = [];
|
|
22
|
-
this.logLevels.push("DEBUG", "INFO", "WARN", "ERROR");
|
|
23
|
-
this.logger.exit(methodName);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Initialize the component.
|
|
27
|
-
*
|
|
28
|
-
* This is done by reading the filter data from [LoggingViewerFilterService](LoggingViewerFilterService.html).
|
|
29
|
-
*/
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
const methodName = "ngOnInit";
|
|
32
|
-
this.logger.entry(methodName);
|
|
33
|
-
this.selectedLevel = this.loggingViewerFilterService.level;
|
|
34
|
-
// subscribe to loggingViewerFilterService.filterChanged event, to refresh,
|
|
35
|
-
// when someone else modifies the level
|
|
36
|
-
this.filterChangedSubscription = this.loggingViewerFilterService.filterChanged.subscribe(() => {
|
|
37
|
-
this.selectedLevel = this.loggingViewerFilterService.level;
|
|
38
|
-
});
|
|
39
|
-
this.logger.exit(methodName);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Clean up.
|
|
43
|
-
*/
|
|
44
|
-
ngOnDestroy() {
|
|
45
|
-
const methodName = "ngOnDestroy";
|
|
46
|
-
this.logger.entry(methodName);
|
|
47
|
-
this.filterChangedSubscription.unsubscribe();
|
|
48
|
-
this.logger.exit(methodName);
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Callback when the level was changed in the UI.
|
|
52
|
-
*/
|
|
53
|
-
onLevelChanged() {
|
|
54
|
-
const methodName = "onLevelChanged";
|
|
55
|
-
this.logger.entry(methodName, this.selectedLevel);
|
|
56
|
-
this.loggingViewerFilterService.level = this.selectedLevel;
|
|
57
|
-
this.logger.exit(methodName);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
LoggingViewerLevelsComponent.ctorParameters = () => [
|
|
61
|
-
{ type: LoggingService },
|
|
62
|
-
{ type: LoggingViewerFilterService }
|
|
63
|
-
];
|
|
64
|
-
LoggingViewerLevelsComponent = __decorate([
|
|
65
|
-
Component({
|
|
66
|
-
selector: "ionic-logging-viewer-levels",
|
|
67
|
-
template: "<ion-segment [(ngModel)]=\"selectedLevel\" (ionChange)=\"onLevelChanged()\">\n\t<ion-segment-button *ngFor=\"let logLevel of logLevels\" [value]=\"logLevel\">\n\t\t<ion-label>{{ logLevel }}</ion-label>\n\t</ion-segment-button>\n</ion-segment>",
|
|
68
|
-
styles: [""]
|
|
69
|
-
}),
|
|
70
|
-
__metadata("design:paramtypes", [LoggingService,
|
|
71
|
-
LoggingViewerFilterService])
|
|
72
|
-
], LoggingViewerLevelsComponent);
|
|
73
|
-
export { LoggingViewerLevelsComponent };
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy12aWV3ZXItbGV2ZWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lvbmljLWxvZ2dpbmctdmlld2VyLyIsInNvdXJjZXMiOlsibGliL2xvZ2dpbmctdmlld2VyLWxldmVscy9sb2dnaW5nLXZpZXdlci1sZXZlbHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTlFOzs7Ozs7R0FNRztBQU1ILElBQWEsNEJBQTRCLEdBQXpDLE1BQWEsNEJBQTRCO0lBZXhDOztPQUVHO0lBQ0gsWUFDQyxjQUE4QixFQUN0QiwwQkFBc0Q7UUFBdEQsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQUU5RCxJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUNoRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2xCLE9BQU8sRUFDUCxNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sQ0FDUCxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRO1FBQ2QsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQztRQUUzRCwyRUFBMkU7UUFDM0UsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNqQixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDcEIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNELENBQUE7O1lBN0RpQixjQUFjO1lBQ00sMEJBQTBCOztBQXBCbkQsNEJBQTRCO0lBTHhDLFNBQVMsQ0FBQztRQUNWLFFBQVEsRUFBRSw2QkFBNkI7UUFDdkMsOFBBQXFEOztLQUVyRCxDQUFDO3FDQW9CZ0IsY0FBYztRQUNNLDBCQUEwQjtHQXBCbkQsNEJBQTRCLENBZ0Z4QztTQWhGWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7IExvZ2dlciwgTG9nZ2luZ1NlcnZpY2UgfSBmcm9tIFwiaW9uaWMtbG9nZ2luZy1zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IExvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL2xvZ2dpbmctdmlld2VyLWZpbHRlci5zZXJ2aWNlXCI7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBkaXNwbGF5aW5nIHRoZSBsb2cgbGV2ZWxzIGZvciBmaWx0ZXJpbmcgdGhlIGN1cnJlbnQgbG9ncy5cbiAqXG4gKiBUaGUgY29tcG9uZW50IGNhbiBiZSBlbWJlZGRlZCBpbiBhbnkgd2ViIHBhZ2UgdXNpbmc6XG4gKlxuICogJmx0O2lvbmljLWxvZ2dpbmctdmlld2VyLWxldmVscz4mbHQ7L2lvbmljLWxvZ2dpbmctdmlld2VyLWxldmVscz5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImlvbmljLWxvZ2dpbmctdmlld2VyLWxldmVsc1wiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL2xvZ2dpbmctdmlld2VyLWxldmVscy5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZVVybHM6IFtcIi4vbG9nZ2luZy12aWV3ZXItbGV2ZWxzLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2dpbmdWaWV3ZXJMZXZlbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cblx0LyoqXG5cdCAqIExvZyBsZXZlbHMgdXNlZCBmb3IgZmlsdGVyaW5nOiBERUJVRywgSU5GTywgV0FSTiwgRVJST1Jcblx0ICovXG5cdHB1YmxpYyBsb2dMZXZlbHM6IHN0cmluZ1tdO1xuXG5cdC8qKlxuXHQgKiBTZWxlY3RlZCBsZXZlbC5cblx0ICovXG5cdHB1YmxpYyBzZWxlY3RlZExldmVsOiBzdHJpbmc7XG5cblx0cHJpdmF0ZSBsb2dnZXI6IExvZ2dlcjtcblx0cHJpdmF0ZSBmaWx0ZXJDaGFuZ2VkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGNvbXBvbmVudC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGxvZ2dpbmdTZXJ2aWNlOiBMb2dnaW5nU2VydmljZSxcblx0XHRwcml2YXRlIGxvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlOiBMb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZSkge1xuXG5cdFx0dGhpcy5sb2dnZXIgPSBsb2dnaW5nU2VydmljZS5nZXRMb2dnZXIoXCJJb25pYy5Mb2dnaW5nLlZpZXdlci5MZXZlbHMuQ29tcG9uZW50XCIpO1xuXHRcdGNvbnN0IG1ldGhvZE5hbWUgPSBcImN0b3JcIjtcblx0XHR0aGlzLmxvZ2dlci5lbnRyeShtZXRob2ROYW1lKTtcblxuXHRcdHRoaXMubG9nTGV2ZWxzID0gW107XG5cdFx0dGhpcy5sb2dMZXZlbHMucHVzaChcblx0XHRcdFwiREVCVUdcIixcblx0XHRcdFwiSU5GT1wiLFxuXHRcdFx0XCJXQVJOXCIsXG5cdFx0XHRcIkVSUk9SXCIsXG5cdFx0KTtcblxuXHRcdHRoaXMubG9nZ2VyLmV4aXQobWV0aG9kTmFtZSk7XG5cdH1cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50LlxuXHQgKlxuXHQgKiBUaGlzIGlzIGRvbmUgYnkgcmVhZGluZyB0aGUgZmlsdGVyIGRhdGEgZnJvbSBbTG9nZ2luZ1ZpZXdlckZpbHRlclNlcnZpY2VdKExvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlLmh0bWwpLlxuXHQgKi9cblx0cHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGNvbnN0IG1ldGhvZE5hbWUgPSBcIm5nT25Jbml0XCI7XG5cdFx0dGhpcy5sb2dnZXIuZW50cnkobWV0aG9kTmFtZSk7XG5cblx0XHR0aGlzLnNlbGVjdGVkTGV2ZWwgPSB0aGlzLmxvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlLmxldmVsO1xuXG5cdFx0Ly8gc3Vic2NyaWJlIHRvIGxvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlLmZpbHRlckNoYW5nZWQgZXZlbnQsIHRvIHJlZnJlc2gsXG5cdFx0Ly8gd2hlbiBzb21lb25lIGVsc2UgbW9kaWZpZXMgdGhlIGxldmVsXG5cdFx0dGhpcy5maWx0ZXJDaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5sb2dnaW5nVmlld2VyRmlsdGVyU2VydmljZS5maWx0ZXJDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLnNlbGVjdGVkTGV2ZWwgPSB0aGlzLmxvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlLmxldmVsO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5sb2dnZXIuZXhpdChtZXRob2ROYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDbGVhbiB1cC5cblx0ICovXG5cdHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHRjb25zdCBtZXRob2ROYW1lID0gXCJuZ09uRGVzdHJveVwiO1xuXHRcdHRoaXMubG9nZ2VyLmVudHJ5KG1ldGhvZE5hbWUpO1xuXG5cdFx0dGhpcy5maWx0ZXJDaGFuZ2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cblx0XHR0aGlzLmxvZ2dlci5leGl0KG1ldGhvZE5hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxiYWNrIHdoZW4gdGhlIGxldmVsIHdhcyBjaGFuZ2VkIGluIHRoZSBVSS5cblx0ICovXG5cdHB1YmxpYyBvbkxldmVsQ2hhbmdlZCgpOiB2b2lkIHtcblx0XHRjb25zdCBtZXRob2ROYW1lID0gXCJvbkxldmVsQ2hhbmdlZFwiO1xuXHRcdHRoaXMubG9nZ2VyLmVudHJ5KG1ldGhvZE5hbWUsIHRoaXMuc2VsZWN0ZWRMZXZlbCk7XG5cblx0XHR0aGlzLmxvZ2dpbmdWaWV3ZXJGaWx0ZXJTZXJ2aWNlLmxldmVsID0gdGhpcy5zZWxlY3RlZExldmVsO1xuXG5cdFx0dGhpcy5sb2dnZXIuZXhpdChtZXRob2ROYW1lKTtcblx0fVxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy12aWV3ZXItbW9kYWwtcHJvcGVydGllcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lvbmljLWxvZ2dpbmctdmlld2VyLyIsInNvdXJjZXMiOlsibGliL2xvZ2dpbmctdmlld2VyLW1vZGFsL2xvZ2dpbmctdmlld2VyLW1vZGFsLXByb3BlcnRpZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dpbmdWaWV3ZXJUcmFuc2xhdGlvbiB9IGZyb20gXCIuLi9sb2dnaW5nLXZpZXdlci10cmFuc2xhdGlvbi5tb2RlbFwiO1xuXG4vKipcbiAqIERlc2NyaWJlcyBhbGwgcHJvcGVydGllcyB3aGljaCBjYW4gYmUgcGFzc2VkIHRvIHRoZVxuICogW0xvZ2dpbmdWaWV3ZXJNb2RhbENvbXBvbmVudF0oLi4vY2xhc3Nlcy9Mb2dnaW5nVmlld2VyTW9kYWxDb21wb25lbnQuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2luZ1ZpZXdlck1vZGFsUHJvcGVydGllcyB7XG5cblx0LyoqXG5cdCAqIExhbmd1YWdlIHRvIGJlIHVzZWQgZm9yIHRoZSBtb2RhbC5cblx0ICogQ3VycmVudGx5IHN1cHBvcnRlZDogZW4sIGRlXG5cdCAqL1xuXHRsYW5ndWFnZT86IHN0cmluZztcblxuXHQvKipcblx0ICogVHJhbnNsYXRpb24gdG8gYmUgdXNlZCBmb3IgdGhlIG1vZGFsLlxuXHQgKiBJZiBzcGVjaWZpZWQsIHRoZSBsYW5ndWFnZSBpcyBpZ25vcmVkLlxuXHQgKi9cblx0dHJhbnNsYXRpb24/OiBMb2dnaW5nVmlld2VyVHJhbnNsYXRpb247XG5cblx0LyoqXG5cdCAqIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGxvY2FsU3RvcmFnZUtleXMuIElmIHNldCwgdGhlIGxvZ3MgZ2V0IGxvYWRlZCBmcm9tIGxvY2FsU3RvcmFnZSBpbnN0ZWFkIG9mIG1lbW9yeS5cblx0ICovXG5cdGxvY2FsU3RvcmFnZUtleXM/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEZsYWcgc2hvd2luZyBhIGRlbGV0ZSBidXR0b24sIHdoaWNoIHJlbW92ZXMgYWxsIGV4aXN0aW5nIGxvZyBtZXNzYWdlcy5cblx0ICovXG5cdGFsbG93Q2xlYXJMb2dzPzogYm9vbGVhbjtcbn1cbiJdfQ==
|