angular-toolbox 0.12.2 → 1.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.
Files changed (148) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/component/angular-toolbox-logo/angular-toolbox-logo.component.mjs +3 -3
  3. package/esm2022/lib/framework/logging/connector/console-log-connector.mjs +2 -2
  4. package/esm2022/lib/framework/logging/impl/log-impl.mjs +4 -1
  5. package/esm2022/lib/framework/logging/util/log.builder.mjs +2 -2
  6. package/esm2022/lib/framework/logging/util/log.util.mjs +3 -3
  7. package/esm2022/lib/framework/mock/http-monitoring-console/component/abstract/log-renderer-base.mjs +34 -0
  8. package/esm2022/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.mjs +16 -17
  9. package/esm2022/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.mjs +25 -15
  10. package/esm2022/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.mjs +41 -119
  11. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.mjs +38 -13
  12. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.mjs +15 -4
  13. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.mjs +12 -4
  14. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.mjs +36 -16
  15. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/request-info-renderer/request-info-renderer.component.mjs +43 -0
  16. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/request-list-renderer/request-list-renderer.component.mjs +116 -0
  17. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.mjs +63 -24
  18. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.mjs +72 -28
  19. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/spinner/spinner.component.mjs +22 -0
  20. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.mjs +53 -27
  21. package/esm2022/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.mjs +45 -21
  22. package/esm2022/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.mjs +15 -8
  23. package/esm2022/lib/framework/mock/http-monitoring-console/index.mjs +1 -1
  24. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.mjs +27 -1
  25. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.mjs +1 -1
  26. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.mjs +1 -1
  27. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.mjs +5 -1
  28. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-timeline-data.mjs +9 -0
  29. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.mjs +1 -1
  30. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.mjs +1 -1
  31. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.mjs +1 -1
  32. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.mjs +1 -1
  33. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.mjs +1 -1
  34. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.mjs +1 -1
  35. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.mjs +1 -1
  36. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.mjs +1 -1
  37. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.mjs +71 -43
  38. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-monitoring-console.controller.mjs +96 -0
  39. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-monitoring-console.state.mjs +126 -0
  40. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-user-action.service.mjs +40 -0
  41. package/esm2022/lib/framework/mock/http-monitoring-console/util/console-body-type.mjs +33 -1
  42. package/esm2022/lib/framework/mock/http-monitoring-console/util/console-type-class.mjs +29 -1
  43. package/esm2022/lib/framework/mock/http-monitoring-console/util/data.util.mjs +21 -1
  44. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/body-converter.mjs +40 -0
  45. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/body-serializer.mjs +58 -0
  46. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/form-data-serializer.mjs +33 -0
  47. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/hmfl-builder.mjs +27 -0
  48. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/http-request-converter.mjs +62 -0
  49. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/http-response-converter.mjs +50 -0
  50. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-converter.mjs +43 -0
  51. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-headers-converter.mjs +53 -0
  52. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-message.util.mjs +30 -0
  53. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/log-metadata-converter.mjs +45 -0
  54. package/esm2022/lib/framework/mock/http-monitoring-console/util/io/request-metadata-converter.mjs +47 -0
  55. package/esm2022/lib/framework/mock/http-monitoring-console/util/size.util.mjs +24 -2
  56. package/esm2022/lib/framework/mock/http-monitoring-console/util/timeline.util.mjs +28 -0
  57. package/esm2022/lib/framework/mock/http-monitoring-console/util/url.util.mjs +26 -1
  58. package/esm2022/lib/model/business/logging/log-level.enum.mjs +1 -2
  59. package/esm2022/lib/model/business/logging/logger.mjs +1 -1
  60. package/esm2022/lib/model/business/logging/transactional-logger.mjs +1 -1
  61. package/esm2022/lib/model/business/mock/http/popup/atx-http-mock-console-popup.mjs +9 -0
  62. package/esm2022/lib/model/service/mock/http/logging/atx-http-mock-console.service.mjs +94 -0
  63. package/esm2022/lib/model/service/mock/http/logging/http-mock-logging-service.mjs +11 -4
  64. package/esm2022/lib/model/service/mock/http/logging/index.mjs +2 -1
  65. package/esm2022/lib/model/service/ui/app-bridge.service.mjs +1 -1
  66. package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +5 -6
  67. package/fesm2022/angular-toolbox.mjs +3027 -1945
  68. package/fesm2022/angular-toolbox.mjs.map +1 -1
  69. package/lib/framework/logging/connector/console-log-connector.d.ts +1 -1
  70. package/lib/framework/logging/impl/log-impl.d.ts +3 -0
  71. package/lib/framework/logging/util/log.builder.d.ts +1 -1
  72. package/lib/framework/logging/util/log.util.d.ts +2 -2
  73. package/lib/framework/mock/http-monitoring-console/component/abstract/log-renderer-base.d.ts +28 -0
  74. package/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.d.ts +11 -4
  75. package/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.d.ts +18 -16
  76. package/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.d.ts +16 -37
  77. package/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.d.ts +20 -4
  78. package/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.d.ts +11 -0
  79. package/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.d.ts +8 -0
  80. package/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.d.ts +18 -11
  81. package/lib/framework/mock/http-monitoring-console/component/renderer/request-info-renderer/request-info-renderer.component.d.ts +25 -0
  82. package/lib/framework/mock/http-monitoring-console/component/renderer/request-list-renderer/request-list-renderer.component.d.ts +57 -0
  83. package/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.d.ts +27 -12
  84. package/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.d.ts +41 -7
  85. package/lib/framework/mock/http-monitoring-console/component/renderer/spinner/spinner.component.d.ts +9 -0
  86. package/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.d.ts +29 -3
  87. package/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.d.ts +36 -12
  88. package/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.d.ts +10 -5
  89. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.d.ts +27 -1
  90. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.d.ts +12 -0
  91. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.d.ts +20 -0
  92. package/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.d.ts +4 -0
  93. package/lib/framework/mock/http-monitoring-console/model/business/atx-timeline-data.d.ts +21 -0
  94. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.d.ts +14 -1
  95. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.d.ts +12 -0
  96. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.d.ts +14 -1
  97. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.d.ts +7 -0
  98. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.d.ts +6 -0
  99. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.d.ts +38 -1
  100. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.d.ts +26 -1
  101. package/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.d.ts +12 -0
  102. package/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.d.ts +24 -2
  103. package/lib/framework/mock/http-monitoring-console/model/service/atx-monitoring-console.controller.d.ts +55 -0
  104. package/lib/framework/mock/http-monitoring-console/model/service/atx-monitoring-console.state.d.ts +75 -0
  105. package/lib/framework/mock/http-monitoring-console/model/service/atx-user-action.service.d.ts +32 -0
  106. package/lib/framework/mock/http-monitoring-console/util/console-body-type.d.ts +32 -0
  107. package/lib/framework/mock/http-monitoring-console/util/console-type-class.d.ts +28 -0
  108. package/lib/framework/mock/http-monitoring-console/util/data.util.d.ts +20 -0
  109. package/lib/framework/mock/http-monitoring-console/util/io/body-converter.d.ts +30 -0
  110. package/lib/framework/mock/http-monitoring-console/util/io/body-serializer.d.ts +32 -0
  111. package/lib/framework/mock/http-monitoring-console/util/io/form-data-serializer.d.ts +21 -0
  112. package/lib/framework/mock/http-monitoring-console/util/io/hmfl-builder.d.ts +23 -0
  113. package/lib/framework/mock/http-monitoring-console/util/io/http-request-converter.d.ts +31 -0
  114. package/lib/framework/mock/http-monitoring-console/util/io/http-response-converter.d.ts +31 -0
  115. package/lib/framework/mock/http-monitoring-console/util/io/log-converter.d.ts +31 -0
  116. package/lib/framework/mock/http-monitoring-console/util/io/log-headers-converter.d.ts +31 -0
  117. package/lib/framework/mock/http-monitoring-console/util/io/log-message.util.d.ts +23 -0
  118. package/lib/framework/mock/http-monitoring-console/util/io/log-metadata-converter.d.ts +31 -0
  119. package/lib/framework/mock/http-monitoring-console/util/io/request-metadata-converter.d.ts +31 -0
  120. package/lib/framework/mock/http-monitoring-console/util/size.util.d.ts +22 -0
  121. package/lib/framework/mock/http-monitoring-console/util/timeline.util.d.ts +23 -0
  122. package/lib/framework/mock/http-monitoring-console/util/url.util.d.ts +25 -0
  123. package/lib/model/business/logging/log-level.enum.d.ts +0 -1
  124. package/lib/model/business/logging/logger.d.ts +5 -5
  125. package/lib/model/business/logging/transactional-logger.d.ts +1 -1
  126. package/lib/model/business/mock/http/popup/atx-http-mock-console-popup.d.ts +23 -0
  127. package/lib/model/service/mock/http/logging/atx-http-mock-console.service.d.ts +53 -0
  128. package/lib/model/service/mock/http/logging/http-mock-logging-service.d.ts +6 -1
  129. package/lib/model/service/mock/http/logging/index.d.ts +1 -0
  130. package/package.json +1 -1
  131. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/body-converter.mjs +0 -22
  132. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/body-serializer.mjs +0 -47
  133. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/http-request-converter.mjs +0 -44
  134. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/http-response-converter.mjs +0 -32
  135. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-converter.mjs +0 -31
  136. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-headers-converter.mjs +0 -35
  137. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-message.util.mjs +0 -19
  138. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-metadata-converter.mjs +0 -27
  139. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/request-metadata-converter.mjs +0 -29
  140. package/lib/framework/mock/http-monitoring-console/model/service/io/body-converter.d.ts +0 -12
  141. package/lib/framework/mock/http-monitoring-console/model/service/io/body-serializer.d.ts +0 -13
  142. package/lib/framework/mock/http-monitoring-console/model/service/io/http-request-converter.d.ts +0 -13
  143. package/lib/framework/mock/http-monitoring-console/model/service/io/http-response-converter.d.ts +0 -13
  144. package/lib/framework/mock/http-monitoring-console/model/service/io/log-converter.d.ts +0 -13
  145. package/lib/framework/mock/http-monitoring-console/model/service/io/log-headers-converter.d.ts +0 -13
  146. package/lib/framework/mock/http-monitoring-console/model/service/io/log-message.util.d.ts +0 -12
  147. package/lib/framework/mock/http-monitoring-console/model/service/io/log-metadata-converter.d.ts +0 -13
  148. package/lib/framework/mock/http-monitoring-console/model/service/io/request-metadata-converter.d.ts +0 -13
@@ -7,66 +7,94 @@
7
7
  */
8
8
  import { Injectable } from "@angular/core";
9
9
  import { LogLevel } from '../../../../../model';
10
- import { LogConverter } from "./io/log-converter";
10
+ import { LogConverter } from "../../util/io/log-converter";
11
+ import { formatDate } from "@angular/common";
12
+ import { HMFLBuilder } from "../../util/io/hmfl-builder";
11
13
  import * as i0 from "@angular/core";
12
14
  import * as i1 from "../../../../../model";
15
+ /**
16
+ * @private
17
+ */
18
+ const BLOB_TYPE = { type: 'application/json' };
19
+ /**
20
+ * @private
21
+ */
22
+ const UTF8 = "UTF-8";
23
+ /**
24
+ * @private
25
+ * The service responsible for exporting and importing `hmfl` log files.
26
+ */
13
27
  export class AtxLogIoService {
28
+ /**
29
+ * @private
30
+ */
14
31
  constructor(_logger) {
15
32
  this._logger = _logger;
16
- this._converter = new LogConverter();
17
33
  }
34
+ /**
35
+ * @private
36
+ * Exports the specified logs into a hmfl file.
37
+ *
38
+ * @param logs The logs to exports.
39
+ */
18
40
  exportFile(logs) {
19
41
  const logDtoList = [];
20
42
  let cursor = logs.length - 1;
21
43
  for (; cursor >= 0; cursor--) {
22
44
  const log = logs[cursor];
23
45
  if (log.level !== LogLevel.CONFIG)
24
- logDtoList.push(this._converter.logToDto(log));
46
+ logDtoList.push(LogConverter.logToDto(log));
25
47
  }
26
- const exportData = {
27
- logs: logDtoList,
28
- timestamp: Date.now()
29
- };
48
+ const exportData = HMFLBuilder.build(logDtoList);
30
49
  const a = document.createElement("a");
31
- const file = new Blob([JSON.stringify(exportData)], { type: 'application/json' });
50
+ const file = new Blob([JSON.stringify(exportData)], BLOB_TYPE);
51
+ const timeFmt = formatDate(exportData.timestamp, "MM/dd/yy-hh:mm-a", "en-US");
32
52
  a.href = URL.createObjectURL(file);
33
- a.download = "logs.hmfl";
53
+ a.download = `logs-${timeFmt}.hmfl`;
34
54
  a.click();
35
55
  }
36
- importFile() {
37
- const input = document.createElement("input");
38
- const converter = this._converter;
56
+ /**
57
+ * @private
58
+ * Imports the logs loaded through the specified `FileList` object.
59
+ *
60
+ * @param fileList The logs to import.
61
+ */
62
+ importFile(fileList) {
39
63
  const logger = this._logger;
40
- input.setAttribute("type", "file");
41
- input.setAttribute("accept", ".hmfl");
42
- input.onchange = (event) => {
43
- const fileList = event.target.files;
44
- const file = fileList[0];
45
- if (file) {
46
- var reader = new FileReader();
47
- reader.readAsText(file, "UTF-8");
48
- reader.onload = function (evt) {
49
- const result = reader.result;
50
- const resultLogData = JSON.parse(result);
51
- const logs = resultLogData.logs;
52
- let cursor = logs.length - 1;
53
- for (; cursor >= 0; cursor--) {
54
- const log = converter.dtoToLog(logs[cursor]);
55
- const metadata = log.metadata;
56
- const level = log.level;
57
- if (level === LogLevel.INFO)
58
- logger.info(metadata);
59
- else if (level === LogLevel.ERROR)
60
- logger.error(metadata);
61
- }
62
- ;
63
- };
64
- reader.onerror = function (e) {
65
- console.log(e);
66
- };
67
- }
68
- };
69
- input.click();
64
+ const files = fileList[0];
65
+ const killReader = this.killReader;
66
+ if (files) {
67
+ const reader = new FileReader();
68
+ reader.readAsText(files, UTF8);
69
+ reader.onload = () => {
70
+ const result = reader.result;
71
+ const resultLogData = JSON.parse(result);
72
+ const logs = resultLogData.logs;
73
+ let cursor = logs.length - 1;
74
+ for (; cursor >= 0; cursor--) {
75
+ const log = LogConverter.dtoToLog(logs[cursor]);
76
+ const metadata = log.metadata;
77
+ const level = log.level;
78
+ if (level === LogLevel.INFO)
79
+ logger.info(metadata);
80
+ else if (level === LogLevel.ERROR)
81
+ logger.error(metadata);
82
+ }
83
+ ;
84
+ killReader(reader);
85
+ };
86
+ reader.onerror = (e) => {
87
+ killReader(reader);
88
+ console.log(e);
89
+ };
90
+ }
91
+ }
92
+ /**
93
+ * @private
94
+ */
95
+ killReader(reader) {
96
+ reader.onload = null;
97
+ reader.onerror = null;
70
98
  }
71
99
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxLogIoService, deps: [{ token: i1.HttpMockLoggingService }], target: i0.ɵɵFactoryTarget.Injectable }); }
72
100
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxLogIoService }); }
@@ -74,4 +102,4 @@ export class AtxLogIoService {
74
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxLogIoService, decorators: [{
75
103
  type: Injectable
76
104
  }], ctorParameters: () => [{ type: i1.HttpMockLoggingService }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LWxvZy1pby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUvbW9kZWwvc2VydmljZS9hdHgtbG9nLWlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXdELFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBS2xELE1BQU0sT0FBTyxlQUFlO0lBSTFCLFlBQW9CLE9BQStCO1FBQS9CLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU0sVUFBVSxDQUFDLElBQVc7UUFDM0IsTUFBTSxVQUFVLEdBQW9CLEVBQUUsQ0FBQztRQUN2QyxJQUFJLE1BQU0sR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyQyxPQUFPLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLEdBQUcsR0FBUSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQVM7WUFDdkIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7U0FDdEIsQ0FBQztRQUNGLE1BQU0sQ0FBQyxHQUFzQixRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDekIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVNLFVBQVU7UUFDZixNQUFNLEtBQUssR0FBcUIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLFNBQVMsR0FBaUIsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNoRCxNQUFNLE1BQU0sR0FBMkIsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNwRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuQyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBVSxFQUFDLEVBQUU7WUFDN0IsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDcEMsTUFBTSxJQUFJLEdBQVMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2pDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsVUFBVSxHQUFHO29CQUMzQixNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsTUFBYSxDQUFDO29CQUM1QyxNQUFNLGFBQWEsR0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvQyxNQUFNLElBQUksR0FBb0IsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDakQsSUFBSSxNQUFNLEdBQVcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7b0JBQ3JDLE9BQU8sTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO3dCQUM3QixNQUFNLEdBQUcsR0FBUSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO3dCQUNsRCxNQUFNLFFBQVEsR0FBNEIsR0FBRyxDQUFDLFFBQVEsQ0FBQzt3QkFDdkQsTUFBTSxLQUFLLEdBQWEsR0FBRyxDQUFDLEtBQUssQ0FBQzt3QkFDbEMsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLElBQUk7NEJBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzs2QkFDOUMsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUs7NEJBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDNUQsQ0FBQztvQkFBQSxDQUFDO2dCQUNKLENBQUMsQ0FBQTtnQkFDRCxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztvQkFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDaEIsQ0FBQyxDQUFBO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQTtRQUNELEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQixDQUFDOzhHQXpEVSxlQUFlO2tIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cE1vY2tMb2dnaW5nTWV0YWRhdGEsIEh0dHBNb2NrTG9nZ2luZ1NlcnZpY2UsIExvZywgTG9nTGV2ZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbCc7XHJcbmltcG9ydCB7IExvZ0NvbnZlcnRlciB9IGZyb20gXCIuL2lvL2xvZy1jb252ZXJ0ZXJcIjtcclxuaW1wb3J0IHsgQXR4SHR0cExvZ0R0byB9IGZyb20gXCIuLi9idXNpbmVzcy9pby9hdHgtaHR0cC1sb2cuZHRvXCI7XHJcbmltcG9ydCB7IEhNRkwgfSBmcm9tIFwiLi4vYnVzaW5lc3MvaW8vaG1mbFwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXR4TG9nSW9TZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udmVydGVyOiBMb2dDb252ZXJ0ZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2xvZ2dlcjogSHR0cE1vY2tMb2dnaW5nU2VydmljZSkge1xyXG4gICAgdGhpcy5fY29udmVydGVyID0gbmV3IExvZ0NvbnZlcnRlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cG9ydEZpbGUobG9nczogTG9nW10pOiB2b2lkIHtcclxuICAgIGNvbnN0IGxvZ0R0b0xpc3Q6IEF0eEh0dHBMb2dEdG9bXSA9IFtdO1xyXG4gICAgbGV0IGN1cnNvcjogbnVtYmVyID0gbG9ncy5sZW5ndGggLSAxO1xyXG4gICAgZm9yICg7IGN1cnNvciA+PSAwOyBjdXJzb3ItLSkge1xyXG4gICAgICBjb25zdCBsb2c6IExvZyA9IGxvZ3NbY3Vyc29yXTtcclxuICAgICAgaWYgKGxvZy5sZXZlbCAhPT0gTG9nTGV2ZWwuQ09ORklHKSBsb2dEdG9MaXN0LnB1c2godGhpcy5fY29udmVydGVyLmxvZ1RvRHRvKGxvZykpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZXhwb3J0RGF0YTogSE1GTCA9IHtcclxuICAgICAgbG9nczogbG9nRHRvTGlzdCxcclxuICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpXHJcbiAgICB9O1xyXG4gICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgIGNvbnN0IGZpbGU6IEJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZXhwb3J0RGF0YSldLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcclxuICAgIGEuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XHJcbiAgICBhLmRvd25sb2FkID0gXCJsb2dzLmhtZmxcIjtcclxuICAgIGEuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbXBvcnRGaWxlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XHJcbiAgICBjb25zdCBjb252ZXJ0ZXI6IExvZ0NvbnZlcnRlciA9IHRoaXMuX2NvbnZlcnRlcjtcclxuICAgIGNvbnN0IGxvZ2dlcjogSHR0cE1vY2tMb2dnaW5nU2VydmljZSA9IHRoaXMuX2xvZ2dlcjtcclxuICAgIGlucHV0LnNldEF0dHJpYnV0ZShcInR5cGVcIiwgXCJmaWxlXCIpO1xyXG4gICAgaW5wdXQuc2V0QXR0cmlidXRlKFwiYWNjZXB0XCIsIFwiLmhtZmxcIik7XHJcbiAgICBpbnB1dC5vbmNoYW5nZSA9IChldmVudDogYW55KT0+IHtcclxuICAgICAgY29uc3QgZmlsZUxpc3QgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBmaWxlTGlzdFswXTtcclxuICAgICAgaWYgKGZpbGUpIHtcclxuICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlLCBcIlVURi04XCIpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoZXZ0KSB7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IHN0cmluZyA9IHJlYWRlci5yZXN1bHQgYXMgYW55O1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0TG9nRGF0YTogSE1GTCA9IEpTT04ucGFyc2UocmVzdWx0KTtcclxuICAgICAgICAgIGNvbnN0IGxvZ3M6IEF0eEh0dHBMb2dEdG9bXSA9IHJlc3VsdExvZ0RhdGEubG9ncztcclxuICAgICAgICAgIGxldCBjdXJzb3I6IG51bWJlciA9IGxvZ3MubGVuZ3RoIC0gMTtcclxuICAgICAgICAgIGZvciAoOyBjdXJzb3IgPj0gMDsgY3Vyc29yLS0pIHtcclxuICAgICAgICAgICAgY29uc3QgbG9nOiBMb2cgPSBjb252ZXJ0ZXIuZHRvVG9Mb2cobG9nc1tjdXJzb3JdKTtcclxuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGE6IEh0dHBNb2NrTG9nZ2luZ01ldGFkYXRhID0gbG9nLm1ldGFkYXRhO1xyXG4gICAgICAgICAgICBjb25zdCBsZXZlbDogTG9nTGV2ZWwgPSBsb2cubGV2ZWw7XHJcbiAgICAgICAgICAgIGlmIChsZXZlbCA9PT0gTG9nTGV2ZWwuSU5GTykgbG9nZ2VyLmluZm8obWV0YWRhdGEpO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChsZXZlbCA9PT0gTG9nTGV2ZWwuRVJST1IpIGxvZ2dlci5lcnJvcihtZXRhZGF0YSk7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaW5wdXQuY2xpY2soKTtcclxuICB9XHJcbn0iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LWxvZy1pby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUvbW9kZWwvc2VydmljZS9hdHgtbG9nLWlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXdELFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLFNBQVMsR0FBUSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxJQUFJLEdBQVEsT0FBTyxDQUFDO0FBRTFCOzs7R0FHRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBRTFCOztPQUVHO0lBQ0gsWUFBb0IsT0FBK0I7UUFBL0IsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7SUFBRyxDQUFDO0lBRXZEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUFDLElBQVc7UUFDM0IsTUFBTSxVQUFVLEdBQW9CLEVBQUUsQ0FBQztRQUN2QyxJQUFJLE1BQU0sR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyQyxPQUFPLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLEdBQUcsR0FBUSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxNQUFNO2dCQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBUyxXQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxHQUFzQixRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sT0FBTyxHQUFXLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsT0FBTyxPQUFPLENBQUM7UUFDcEMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUFDLFFBQWtCO1FBQ2xDLE1BQU0sTUFBTSxHQUEyQixJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFTLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBYSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzdDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLE1BQU0sR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRSxFQUFFO2dCQUNsQixNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsTUFBYSxDQUFDO2dCQUM1QyxNQUFNLGFBQWEsR0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLElBQUksR0FBb0IsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDakQsSUFBSSxNQUFNLEdBQVcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ3JDLE9BQU8sTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO29CQUM3QixNQUFNLEdBQUcsR0FBUSxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNyRCxNQUFNLFFBQVEsR0FBNEIsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDdkQsTUFBTSxLQUFLLEdBQWEsR0FBRyxDQUFDLEtBQUssQ0FBQztvQkFDbEMsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLElBQUk7d0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzt5QkFDOUMsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUs7d0JBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUQsQ0FBQztnQkFBQSxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUE7WUFDRCxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFDLEVBQUU7Z0JBQ3BCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNoQixDQUFDLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVSxDQUFDLE1BQWtCO1FBQ25DLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7OEdBckVVLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwTW9ja0xvZ2dpbmdNZXRhZGF0YSwgSHR0cE1vY2tMb2dnaW5nU2VydmljZSwgTG9nLCBMb2dMZXZlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVsJztcclxuaW1wb3J0IHsgTG9nQ29udmVydGVyIH0gZnJvbSBcIi4uLy4uL3V0aWwvaW8vbG9nLWNvbnZlcnRlclwiO1xyXG5pbXBvcnQgeyBBdHhIdHRwTG9nRHRvIH0gZnJvbSBcIi4uL2J1c2luZXNzL2lvL2F0eC1odHRwLWxvZy5kdG9cIjtcclxuaW1wb3J0IHsgSE1GTCB9IGZyb20gXCIuLi9idXNpbmVzcy9pby9obWZsXCI7XHJcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEhNRkxCdWlsZGVyIH0gZnJvbSBcIi4uLy4uL3V0aWwvaW8vaG1mbC1idWlsZGVyXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEJMT0JfVFlQRTogYW55ID0geyB0eXBlOiAnYXBwbGljYXRpb24vanNvbicgfTtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxuY29uc3QgVVRGODogYW55ID0gXCJVVEYtOFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIFRoZSBzZXJ2aWNlIHJlc3BvbnNpYmxlIGZvciBleHBvcnRpbmcgYW5kIGltcG9ydGluZyBgaG1mbGAgbG9nIGZpbGVzLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXR4TG9nSW9TZXJ2aWNlIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9sb2dnZXI6IEh0dHBNb2NrTG9nZ2luZ1NlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogRXhwb3J0cyB0aGUgc3BlY2lmaWVkIGxvZ3MgaW50byBhIGhtZmwgZmlsZS5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gbG9ncyBUaGUgbG9ncyB0byBleHBvcnRzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBleHBvcnRGaWxlKGxvZ3M6IExvZ1tdKTogdm9pZCB7XHJcbiAgICBjb25zdCBsb2dEdG9MaXN0OiBBdHhIdHRwTG9nRHRvW10gPSBbXTtcclxuICAgIGxldCBjdXJzb3I6IG51bWJlciA9IGxvZ3MubGVuZ3RoIC0gMTtcclxuICAgIGZvciAoOyBjdXJzb3IgPj0gMDsgY3Vyc29yLS0pIHtcclxuICAgICAgY29uc3QgbG9nOiBMb2cgPSBsb2dzW2N1cnNvcl07XHJcbiAgICAgIGlmIChsb2cubGV2ZWwgIT09IExvZ0xldmVsLkNPTkZJRykgbG9nRHRvTGlzdC5wdXNoKExvZ0NvbnZlcnRlci5sb2dUb0R0byhsb2cpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGV4cG9ydERhdGE6IEhNRkwgPSBITUZMQnVpbGRlci5idWlsZChsb2dEdG9MaXN0KTtcclxuICAgIGNvbnN0IGE6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBjb25zdCBmaWxlOiBCbG9iID0gbmV3IEJsb2IoW0pTT04uc3RyaW5naWZ5KGV4cG9ydERhdGEpXSwgQkxPQl9UWVBFKTtcclxuICAgIGNvbnN0IHRpbWVGbXQ6IHN0cmluZyA9IGZvcm1hdERhdGUoZXhwb3J0RGF0YS50aW1lc3RhbXAsIFwiTU0vZGQveXktaGg6bW0tYVwiLCBcImVuLVVTXCIpO1xyXG4gICAgYS5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcclxuICAgIGEuZG93bmxvYWQgPSBgbG9ncy0ke3RpbWVGbXR9LmhtZmxgO1xyXG4gICAgYS5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBJbXBvcnRzIHRoZSBsb2dzIGxvYWRlZCB0aHJvdWdoIHRoZSBzcGVjaWZpZWQgYEZpbGVMaXN0YCBvYmplY3QuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGZpbGVMaXN0IFRoZSBsb2dzIHRvIGltcG9ydC5cclxuICAgKi9cclxuICBwdWJsaWMgaW1wb3J0RmlsZShmaWxlTGlzdDogRmlsZUxpc3QpOiB2b2lkIHtcclxuICAgIGNvbnN0IGxvZ2dlcjogSHR0cE1vY2tMb2dnaW5nU2VydmljZSA9IHRoaXMuX2xvZ2dlcjtcclxuICAgIGNvbnN0IGZpbGVzOiBGaWxlID0gZmlsZUxpc3RbMF07XHJcbiAgICBjb25zdCBraWxsUmVhZGVyOiBGdW5jdGlvbiA9IHRoaXMua2lsbFJlYWRlcjtcclxuICAgIGlmIChmaWxlcykge1xyXG4gICAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlcywgVVRGOCk7XHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKT0+IHtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IHN0cmluZyA9IHJlYWRlci5yZXN1bHQgYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdExvZ0RhdGE6IEhNRkwgPSBKU09OLnBhcnNlKHJlc3VsdCk7XHJcbiAgICAgICAgY29uc3QgbG9nczogQXR4SHR0cExvZ0R0b1tdID0gcmVzdWx0TG9nRGF0YS5sb2dzO1xyXG4gICAgICAgIGxldCBjdXJzb3I6IG51bWJlciA9IGxvZ3MubGVuZ3RoIC0gMTtcclxuICAgICAgICBmb3IgKDsgY3Vyc29yID49IDA7IGN1cnNvci0tKSB7XHJcbiAgICAgICAgICBjb25zdCBsb2c6IExvZyA9IExvZ0NvbnZlcnRlci5kdG9Ub0xvZyhsb2dzW2N1cnNvcl0pO1xyXG4gICAgICAgICAgY29uc3QgbWV0YWRhdGE6IEh0dHBNb2NrTG9nZ2luZ01ldGFkYXRhID0gbG9nLm1ldGFkYXRhO1xyXG4gICAgICAgICAgY29uc3QgbGV2ZWw6IExvZ0xldmVsID0gbG9nLmxldmVsO1xyXG4gICAgICAgICAgaWYgKGxldmVsID09PSBMb2dMZXZlbC5JTkZPKSBsb2dnZXIuaW5mbyhtZXRhZGF0YSk7XHJcbiAgICAgICAgICBlbHNlIGlmIChsZXZlbCA9PT0gTG9nTGV2ZWwuRVJST1IpIGxvZ2dlci5lcnJvcihtZXRhZGF0YSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBraWxsUmVhZGVyKHJlYWRlcik7XHJcbiAgICAgIH1cclxuICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZSk9PiB7XHJcbiAgICAgICAga2lsbFJlYWRlcihyZWFkZXIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBraWxsUmVhZGVyKHJlYWRlcjogRmlsZVJlYWRlcik6IHZvaWQge1xyXG4gICAgcmVhZGVyLm9ubG9hZCA9IG51bGw7XHJcbiAgICByZWFkZXIub25lcnJvciA9IG51bGw7XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { Injectable } from "@angular/core";
9
+ import { HttpMonitoringConsoleLogConnector } from "../../connector/http-monitoring-console-log-connector";
10
+ import { IdentifiableComponent } from '../../../../../core';
11
+ import { AtxConsoleActionType } from "../business/atx-console-action-type";
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "../../../../../model";
14
+ import * as i2 from "./atx-monitoring-console.state";
15
+ import * as i3 from "./atx-log-io.service";
16
+ import * as i4 from "./atx-user-action.service";
17
+ /**
18
+ * @private
19
+ * The service that manages user interactions with an `AtxMonitoringConsoleComponent` instance.
20
+ */
21
+ export class AtxMonitoringConsoleController extends IdentifiableComponent {
22
+ /**
23
+ * @private
24
+ */
25
+ constructor(_logger, _state, _ioSvc, _subscribe, action) {
26
+ super("AtxMonitoringConsoleController");
27
+ this._logger = _logger;
28
+ this._state = _state;
29
+ this._ioSvc = _ioSvc;
30
+ this._subscribe = _subscribe;
31
+ const connector = new HttpMonitoringConsoleLogConnector();
32
+ const logs = this._logger.getLogs();
33
+ this.connector = connector;
34
+ this._subscribe.register(this, connector.change.subscribe((log) => this.addLog(log)))
35
+ .append(action.action.subscribe((action) => this.onAction(action)));
36
+ this.connector.init(logs);
37
+ this._state.init(logs);
38
+ this._logger.setLogConnector(connector);
39
+ }
40
+ /**
41
+ * @private
42
+ */
43
+ ngOnDestroy() {
44
+ this._subscribe.clearAll(this);
45
+ this._logger.setLogConnector(null);
46
+ this.connector.destroy();
47
+ this.connector = null;
48
+ }
49
+ /**
50
+ * @private
51
+ */
52
+ clearLogs() {
53
+ this._logger.clearLogs();
54
+ this._state.clearLogs();
55
+ }
56
+ /**
57
+ * @private
58
+ */
59
+ exportLogs() {
60
+ this._ioSvc.exportFile(this._state.logs);
61
+ }
62
+ /**
63
+ * @private
64
+ */
65
+ addLog(log) {
66
+ this._state.addLog(log);
67
+ }
68
+ /**
69
+ * @private
70
+ */
71
+ onAction(action) {
72
+ switch (action.type) {
73
+ case AtxConsoleActionType.CLEAR_LOGS:
74
+ this.clearLogs();
75
+ break;
76
+ case AtxConsoleActionType.EXPORT_LOGS:
77
+ this.exportLogs();
78
+ break;
79
+ case AtxConsoleActionType.IMPORT_LOGS:
80
+ this._ioSvc.importFile(action.data);
81
+ break;
82
+ case AtxConsoleActionType.LOG_SELECT:
83
+ this._state.selectLog(action.data);
84
+ break;
85
+ case AtxConsoleActionType.CLOSE_DETAILS_PANEL:
86
+ this._state.selectLog(null);
87
+ break;
88
+ }
89
+ }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMonitoringConsoleController, deps: [{ token: i1.HttpMockLoggingService }, { token: i2.AtxMonitoringConsoleState }, { token: i3.AtxLogIoService }, { token: i1.SubscriptionService }, { token: i4.AtxUserActionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
91
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMonitoringConsoleController }); }
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMonitoringConsoleController, decorators: [{
94
+ type: Injectable
95
+ }], ctorParameters: () => [{ type: i1.HttpMockLoggingService }, { type: i2.AtxMonitoringConsoleState }, { type: i3.AtxLogIoService }, { type: i1.SubscriptionService }, { type: i4.AtxUserActionService }] });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LW1vbml0b3JpbmctY29uc29sZS5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUvbW9kZWwvc2VydmljZS9hdHgtbW9uaXRvcmluZy1jb25zb2xlLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUl0RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBRzNFOzs7R0FHRztBQUVILE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxxQkFBcUI7SUFPdkU7O09BRUc7SUFDSCxZQUFvQixPQUErQixFQUMvQixNQUFpQyxFQUNqQyxNQUF1QixFQUN2QixVQUErQixFQUN2QyxNQUE0QjtRQUN0QyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUx0QixZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUdqRCxNQUFNLFNBQVMsR0FBc0MsSUFBSSxpQ0FBaUMsRUFBRSxDQUFDO1FBQzdGLE1BQU0sSUFBSSxHQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDeEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBd0IsRUFBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBVyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNLLE1BQU0sQ0FBQyxHQUFRO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNLLFFBQVEsQ0FBQyxNQUF3QjtRQUN2QyxRQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixLQUFLLG9CQUFvQixDQUFDLFVBQVU7Z0JBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUFDLE1BQU07WUFDL0QsS0FBSyxvQkFBb0IsQ0FBQyxXQUFXO2dCQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFBQyxNQUFNO1lBQ2hFLEtBQUssb0JBQW9CLENBQUMsV0FBVztnQkFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUMsTUFBTTtZQUNsRixLQUFLLG9CQUFvQixDQUFDLFVBQVU7Z0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFDLE1BQU07WUFDaEYsS0FBSyxvQkFBb0IsQ0FBQyxtQkFBbUI7Z0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUMsTUFBTTtRQUNwRixDQUFDO0lBQ0gsQ0FBQzs4R0FyRVUsOEJBQThCO2tIQUE5Qiw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBRDFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwTW9ja0xvZ2dpbmdTZXJ2aWNlLCBMb2csIFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbCc7XHJcbmltcG9ydCB7IEF0eExvZ0lvU2VydmljZSB9IGZyb20gXCIuL2F0eC1sb2ctaW8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBdHhNb25pdG9yaW5nQ29uc29sZVN0YXRlIH0gZnJvbSBcIi4vYXR4LW1vbml0b3JpbmctY29uc29sZS5zdGF0ZVwiO1xyXG5pbXBvcnQgeyBIdHRwTW9uaXRvcmluZ0NvbnNvbGVMb2dDb25uZWN0b3IgfSBmcm9tIFwiLi4vLi4vY29ubmVjdG9yL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlLWxvZy1jb25uZWN0b3JcIjtcclxuaW1wb3J0IHsgSWRlbnRpZmlhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZSc7XHJcbmltcG9ydCB7IEF0eENvbnNvbGVBY3Rpb24gfSBmcm9tIFwiLi4vYnVzaW5lc3MvYXR4LWNvbnNvbGUtYWN0aW9uXCI7XHJcbmltcG9ydCB7IEF0eENvbnNvbGVBY3Rpb25UeXBlIH0gZnJvbSBcIi4uL2J1c2luZXNzL2F0eC1jb25zb2xlLWFjdGlvbi10eXBlXCI7XHJcbmltcG9ydCB7IEF0eFVzZXJBY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4vYXR4LXVzZXItYWN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgc2VydmljZSB0aGF0IG1hbmFnZXMgdXNlciBpbnRlcmFjdGlvbnMgd2l0aCBhbiBgQXR4TW9uaXRvcmluZ0NvbnNvbGVDb21wb25lbnRgIGluc3RhbmNlLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXR4TW9uaXRvcmluZ0NvbnNvbGVDb250cm9sbGVyIGV4dGVuZHMgSWRlbnRpZmlhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgY29ubmVjdG9yOiBIdHRwTW9uaXRvcmluZ0NvbnNvbGVMb2dDb25uZWN0b3I7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbG9nZ2VyOiBIdHRwTW9ja0xvZ2dpbmdTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX3N0YXRlOiBBdHhNb25pdG9yaW5nQ29uc29sZVN0YXRlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX2lvU3ZjOiBBdHhMb2dJb1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfc3Vic2NyaWJlOiBTdWJzY3JpcHRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIGFjdGlvbjogQXR4VXNlckFjdGlvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKFwiQXR4TW9uaXRvcmluZ0NvbnNvbGVDb250cm9sbGVyXCIpO1xyXG4gICAgY29uc3QgY29ubmVjdG9yOiBIdHRwTW9uaXRvcmluZ0NvbnNvbGVMb2dDb25uZWN0b3IgPSBuZXcgSHR0cE1vbml0b3JpbmdDb25zb2xlTG9nQ29ubmVjdG9yKCk7XHJcbiAgICBjb25zdCBsb2dzOiBMb2dbXSA9IHRoaXMuX2xvZ2dlci5nZXRMb2dzKCk7XHJcbiAgICB0aGlzLmNvbm5lY3RvciA9IGNvbm5lY3RvcjtcclxuICAgIHRoaXMuX3N1YnNjcmliZS5yZWdpc3Rlcih0aGlzLCBjb25uZWN0b3IuY2hhbmdlLnN1YnNjcmliZSgobG9nOiBMb2cpPT4gdGhpcy5hZGRMb2cobG9nKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChhY3Rpb24uYWN0aW9uLnN1YnNjcmliZSgoYWN0aW9uOiBBdHhDb25zb2xlQWN0aW9uKT0+IHRoaXMub25BY3Rpb24oYWN0aW9uKSkpO1xyXG4gICAgdGhpcy5jb25uZWN0b3IuaW5pdChsb2dzKVxyXG4gICAgdGhpcy5fc3RhdGUuaW5pdChsb2dzKTtcclxuICAgIHRoaXMuX2xvZ2dlci5zZXRMb2dDb25uZWN0b3IoY29ubmVjdG9yKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vic2NyaWJlLmNsZWFyQWxsKHRoaXMpO1xyXG4gICAgdGhpcy5fbG9nZ2VyLnNldExvZ0Nvbm5lY3RvcihudWxsKTtcclxuICAgIHRoaXMuY29ubmVjdG9yLmRlc3Ryb3koKTtcclxuICAgIHRoaXMuY29ubmVjdG9yID0gbnVsbCBhcyBhbnk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgY2xlYXJMb2dzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbG9nZ2VyLmNsZWFyTG9ncygpO1xyXG4gICAgdGhpcy5fc3RhdGUuY2xlYXJMb2dzKCk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBleHBvcnRMb2dzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5faW9TdmMuZXhwb3J0RmlsZSh0aGlzLl9zdGF0ZS5sb2dzKTtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGFkZExvZyhsb2c6IExvZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RhdGUuYWRkTG9nKGxvZyk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvbkFjdGlvbihhY3Rpb246IEF0eENvbnNvbGVBY3Rpb24pOiB2b2lkIHtcclxuICAgIHN3aXRjaChhY3Rpb24udHlwZSkge1xyXG4gICAgICBjYXNlIEF0eENvbnNvbGVBY3Rpb25UeXBlLkNMRUFSX0xPR1MgOiB0aGlzLmNsZWFyTG9ncygpOyBicmVhaztcclxuICAgICAgY2FzZSBBdHhDb25zb2xlQWN0aW9uVHlwZS5FWFBPUlRfTE9HUzogdGhpcy5leHBvcnRMb2dzKCk7IGJyZWFrO1xyXG4gICAgICBjYXNlIEF0eENvbnNvbGVBY3Rpb25UeXBlLklNUE9SVF9MT0dTOiB0aGlzLl9pb1N2Yy5pbXBvcnRGaWxlKGFjdGlvbi5kYXRhKTsgYnJlYWs7XHJcbiAgICAgIGNhc2UgQXR4Q29uc29sZUFjdGlvblR5cGUuTE9HX1NFTEVDVDogdGhpcy5fc3RhdGUuc2VsZWN0TG9nKGFjdGlvbi5kYXRhKTsgYnJlYWs7XHJcbiAgICAgIGNhc2UgQXR4Q29uc29sZUFjdGlvblR5cGUuQ0xPU0VfREVUQUlMU19QQU5FTDogdGhpcy5fc3RhdGUuc2VsZWN0TG9nKG51bGwpOyBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,126 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { Injectable } from "@angular/core";
9
+ import { LogLevel } from '../../../../../model';
10
+ import { SizeUtil } from "../../util/size.util";
11
+ import * as i0 from "@angular/core";
12
+ /**
13
+ * @private
14
+ * A convenient service that stores the state of an `AtxMonitoringConsoleComponent` instance.
15
+ */
16
+ export class AtxMonitoringConsoleState {
17
+ constructor() {
18
+ /**
19
+ * @private
20
+ */
21
+ this._selectedLog = null;
22
+ /**
23
+ * @private
24
+ */
25
+ this._cumulativeSize = SizeUtil.INITIAL_SIZE;
26
+ /**
27
+ * @private
28
+ */
29
+ this._logs = [];
30
+ /**
31
+ * @private
32
+ */
33
+ this._size = 0;
34
+ }
35
+ /**
36
+ * @private
37
+ * Returns the `Log` object currently selected, or `null` if no log is selected.
38
+ */
39
+ get selectedLog() {
40
+ return this._selectedLog;
41
+ }
42
+ ;
43
+ /**
44
+ * @private
45
+ * Returns a string that represents the size of all requests stored within this service.
46
+ * The string is in the format defined by the `SizeUtil.sizeToString()` method.
47
+ */
48
+ get cumulativeSize() {
49
+ return this._cumulativeSize;
50
+ }
51
+ ;
52
+ /**
53
+ * @private
54
+ * Returns the list of logs stored within this service.
55
+ */
56
+ get logs() {
57
+ return this._logs;
58
+ }
59
+ ;
60
+ /**
61
+ * @private
62
+ * Returns the number of logs stored within this service.
63
+ */
64
+ get numLogs() {
65
+ return this._logs.length;
66
+ }
67
+ ;
68
+ /**
69
+ * @private
70
+ * Initializes the service.
71
+ * Allows to inject the logs previously collected by the `HttpMockLoggingService` singleton.
72
+ *
73
+ * @param logs The list of logs that must be stored within this service.
74
+ */
75
+ init(logs) {
76
+ const len = logs.length - 1;
77
+ let i = 0;
78
+ for (; i <= len; ++i)
79
+ this.addLog(logs[i]);
80
+ }
81
+ /**
82
+ * @private
83
+ * Adds the specified log to the service for storage purpose.
84
+ *
85
+ * @param log The log to add to this service.
86
+ */
87
+ addLog(log) {
88
+ if (log.level !== LogLevel.CONFIG) {
89
+ const size = SizeUtil.getSize(log.metadata.response.body);
90
+ const id = log.metadata.requestMetadata.id;
91
+ this._size += size;
92
+ this._cumulativeSize = SizeUtil.sizeToString(this._size);
93
+ const idx = this._logs.findIndex(prefetch => prefetch.metadata.requestMetadata.id === id);
94
+ idx > -1 ? this._logs.splice(idx, 1, log) : this._logs.push(log);
95
+ if (this.selectedLog?.metadata.requestMetadata.id === id)
96
+ this._selectedLog = log;
97
+ }
98
+ else
99
+ this._logs.push(log);
100
+ }
101
+ /**
102
+ * @private
103
+ * Removes all the logs stored within this service and sets all service properties
104
+ * to their default value.
105
+ */
106
+ clearLogs() {
107
+ this._selectedLog = null;
108
+ this._size = this._logs.length = 0;
109
+ this._cumulativeSize = SizeUtil.INITIAL_SIZE;
110
+ }
111
+ /**
112
+ * @private
113
+ * Indicates that the specified log is the currently selected log.
114
+ *
115
+ * @param log The log to set as the currently selected log.
116
+ */
117
+ selectLog(log) {
118
+ this._selectedLog = log;
119
+ }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMonitoringConsoleState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
121
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMonitoringConsoleState }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMonitoringConsoleState, decorators: [{
124
+ type: Injectable
125
+ }] });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LW1vbml0b3JpbmctY29uc29sZS5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL21vZGVsL3NlcnZpY2UvYXR4LW1vbml0b3JpbmctY29uc29sZS5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBTyxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRWhEOzs7R0FHRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFEdEM7UUFvQ0U7O1dBRUc7UUFDSyxpQkFBWSxHQUFlLElBQUksQ0FBQztRQUV4Qzs7V0FFRztRQUNLLG9CQUFlLEdBQVcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUV4RDs7V0FFRztRQUNLLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFMUI7O1dBRUc7UUFDSyxVQUFLLEdBQVcsQ0FBQyxDQUFDO0tBcUQzQjtJQXhHQzs7O09BR0c7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFBQSxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUFBLENBQUM7SUFFRjs7O09BR0c7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUFBLENBQUM7SUFFRjs7O09BR0c7SUFDSCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBQUEsQ0FBQztJQXNCRjs7Ozs7O09BTUc7SUFDSSxJQUFJLENBQUMsSUFBVztRQUNyQixNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsR0FBVyxDQUFDLENBQUM7UUFDbEIsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQVE7UUFDcEIsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksR0FBVyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sRUFBRSxHQUFTLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2xHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDcEYsQ0FBQzs7WUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFNBQVM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFDLEdBQWU7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7SUFDMUIsQ0FBQzs4R0F6R1UseUJBQXlCO2tIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9nLCBMb2dMZXZlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVsJztcclxuaW1wb3J0IHsgVXVpZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwnO1xyXG5pbXBvcnQgeyBTaXplVXRpbCB9IGZyb20gXCIuLi8uLi91dGlsL3NpemUudXRpbFwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEEgY29udmVuaWVudCBzZXJ2aWNlIHRoYXQgc3RvcmVzIHRoZSBzdGF0ZSBvZiBhbiBgQXR4TW9uaXRvcmluZ0NvbnNvbGVDb21wb25lbnRgIGluc3RhbmNlLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXR4TW9uaXRvcmluZ0NvbnNvbGVTdGF0ZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogUmV0dXJucyB0aGUgYExvZ2Agb2JqZWN0IGN1cnJlbnRseSBzZWxlY3RlZCwgb3IgYG51bGxgIGlmIG5vIGxvZyBpcyBzZWxlY3RlZC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkTG9nKCk6IExvZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkTG9nO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogUmV0dXJucyBhIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIHNpemUgb2YgYWxsIHJlcXVlc3RzIHN0b3JlZCB3aXRoaW4gdGhpcyBzZXJ2aWNlLlxyXG4gICAqIFRoZSBzdHJpbmcgaXMgaW4gdGhlIGZvcm1hdCBkZWZpbmVkIGJ5IHRoZSBgU2l6ZVV0aWwuc2l6ZVRvU3RyaW5nKClgIG1ldGhvZC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGN1bXVsYXRpdmVTaXplKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VtdWxhdGl2ZVNpemU7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGxvZ3Mgc3RvcmVkIHdpdGhpbiB0aGlzIHNlcnZpY2UuXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBsb2dzKCk6IExvZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2dzO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxvZ3Mgc3RvcmVkIHdpdGhpbiB0aGlzIHNlcnZpY2UuXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBudW1Mb2dzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9ncy5sZW5ndGg7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIF9zZWxlY3RlZExvZzogTG9nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY3VtdWxhdGl2ZVNpemU6IHN0cmluZyA9IFNpemVVdGlsLklOSVRJQUxfU0laRTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIF9sb2dzOiBMb2dbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3NpemU6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHNlcnZpY2UuXHJcbiAgICogQWxsb3dzIHRvIGluamVjdCB0aGUgbG9ncyBwcmV2aW91c2x5IGNvbGxlY3RlZCBieSB0aGUgYEh0dHBNb2NrTG9nZ2luZ1NlcnZpY2VgIHNpbmdsZXRvbi5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gbG9ncyBUaGUgbGlzdCBvZiBsb2dzIHRoYXQgbXVzdCBiZSBzdG9yZWQgd2l0aGluIHRoaXMgc2VydmljZS5cclxuICAgKi9cclxuICBwdWJsaWMgaW5pdChsb2dzOiBMb2dbXSk6IHZvaWQge1xyXG4gICAgY29uc3QgbGVuOiBudW1iZXIgPSBsb2dzLmxlbmd0aCAtIDE7XHJcbiAgICBsZXQgaTogbnVtYmVyID0gMDtcclxuICAgIGZvciAoOyBpIDw9IGxlbjsgKytpKSB0aGlzLmFkZExvZyhsb2dzW2ldKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQWRkcyB0aGUgc3BlY2lmaWVkIGxvZyB0byB0aGUgc2VydmljZSBmb3Igc3RvcmFnZSBwdXJwb3NlLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsb2cgVGhlIGxvZyB0byBhZGQgdG8gdGhpcyBzZXJ2aWNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRMb2cobG9nOiBMb2cpOiB2b2lkIHtcclxuICAgIGlmIChsb2cubGV2ZWwgIT09IExvZ0xldmVsLkNPTkZJRykge1xyXG4gICAgICBjb25zdCBzaXplOiBudW1iZXIgPSBTaXplVXRpbC5nZXRTaXplKGxvZy5tZXRhZGF0YS5yZXNwb25zZS5ib2R5KTtcclxuICAgICAgY29uc3QgaWQ6IFV1aWQgPSBsb2cubWV0YWRhdGEucmVxdWVzdE1ldGFkYXRhLmlkO1xyXG4gICAgICB0aGlzLl9zaXplICs9IHNpemU7XHJcbiAgICAgIHRoaXMuX2N1bXVsYXRpdmVTaXplID0gU2l6ZVV0aWwuc2l6ZVRvU3RyaW5nKHRoaXMuX3NpemUpO1xyXG4gICAgICBjb25zdCBpZHg6IG51bWJlciA9IHRoaXMuX2xvZ3MuZmluZEluZGV4KHByZWZldGNoID0+IHByZWZldGNoLm1ldGFkYXRhLnJlcXVlc3RNZXRhZGF0YS5pZCA9PT0gaWQpO1xyXG4gICAgICBpZHggPiAtMSA/IHRoaXMuX2xvZ3Muc3BsaWNlKGlkeCwgMSwgbG9nKSA6IHRoaXMuX2xvZ3MucHVzaChsb2cpO1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZExvZz8ubWV0YWRhdGEucmVxdWVzdE1ldGFkYXRhLmlkID09PSBpZCkgdGhpcy5fc2VsZWN0ZWRMb2cgPSBsb2c7XHJcbiAgICB9IGVsc2UgdGhpcy5fbG9ncy5wdXNoKGxvZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIFJlbW92ZXMgYWxsIHRoZSBsb2dzIHN0b3JlZCB3aXRoaW4gdGhpcyBzZXJ2aWNlIGFuZCBzZXRzIGFsbCBzZXJ2aWNlIHByb3BlcnRpZXNcclxuICAgKiB0byB0aGVpciBkZWZhdWx0IHZhbHVlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjbGVhckxvZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZExvZyA9IG51bGw7XHJcbiAgICB0aGlzLl9zaXplID0gdGhpcy5fbG9ncy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5fY3VtdWxhdGl2ZVNpemUgPSBTaXplVXRpbC5JTklUSUFMX1NJWkU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBzcGVjaWZpZWQgbG9nIGlzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbG9nLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsb2cgVGhlIGxvZyB0byBzZXQgYXMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBsb2cuXHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdExvZyhsb2c6IExvZyB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkTG9nID0gbG9nO1xyXG4gIH1cclxufSJdfQ==
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license
3
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be found in
6
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
+ */
8
+ import { EventEmitter, Injectable, Output } from "@angular/core";
9
+ import * as i0 from "@angular/core";
10
+ /**
11
+ * @private
12
+ * The service responsible for sending user's actions to the controller.
13
+ */
14
+ export class AtxUserActionService {
15
+ constructor() {
16
+ /**
17
+ * @private
18
+ * An event emitter that triggers event representing user's actions.
19
+ */
20
+ this.action = new EventEmitter(true);
21
+ }
22
+ /**
23
+ * @private
24
+ * Sends a user's actions to the system.
25
+ *
26
+ * @param type The type of action to send.
27
+ * @param data Optional data associated with the user's actions.
28
+ */
29
+ sendAction(type, data = null) {
30
+ this.action.emit({ type: type, data: data });
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxUserActionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxUserActionService }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxUserActionService, decorators: [{
36
+ type: Injectable
37
+ }], propDecorators: { action: [{
38
+ type: Output
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LXVzZXItYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwLW1vbml0b3JpbmctY29uc29sZS9tb2RlbC9zZXJ2aWNlL2F0eC11c2VyLWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJakU7OztHQUdHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUdFOzs7V0FHRztRQUVhLFdBQU0sR0FBbUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7S0FZakY7SUFWQzs7Ozs7O09BTUc7SUFDSSxVQUFVLENBQUMsSUFBMEIsRUFBRSxPQUFZLElBQUk7UUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBRSxDQUFDO0lBQ2pELENBQUM7OEdBbEJVLG9CQUFvQjtrSEFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzhCQVFPLE1BQU07c0JBRHJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEF0eENvbnNvbGVBY3Rpb24gfSBmcm9tIFwiLi4vYnVzaW5lc3MvYXR4LWNvbnNvbGUtYWN0aW9uXCI7XHJcbmltcG9ydCB7IEF0eENvbnNvbGVBY3Rpb25UeXBlIH0gZnJvbSBcIi4uL2J1c2luZXNzL2F0eC1jb25zb2xlLWFjdGlvbi10eXBlXCI7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIHNlcnZpY2UgcmVzcG9uc2libGUgZm9yIHNlbmRpbmcgdXNlcidzIGFjdGlvbnMgdG8gdGhlIGNvbnRyb2xsZXIuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdHhVc2VyQWN0aW9uU2VydmljZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQW4gZXZlbnQgZW1pdHRlciB0aGF0IHRyaWdnZXJzIGV2ZW50IHJlcHJlc2VudGluZyB1c2VyJ3MgYWN0aW9ucy5cclxuICAgKi9cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uOiBFdmVudEVtaXR0ZXI8QXR4Q29uc29sZUFjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyKHRydWUpO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogU2VuZHMgYSB1c2VyJ3MgYWN0aW9ucyB0byB0aGUgc3lzdGVtLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIGFjdGlvbiB0byBzZW5kLlxyXG4gICAqIEBwYXJhbSBkYXRhIE9wdGlvbmFsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2VyJ3MgYWN0aW9ucy5cclxuICAgKi9cclxuICBwdWJsaWMgc2VuZEFjdGlvbih0eXBlOiBBdHhDb25zb2xlQWN0aW9uVHlwZSwgZGF0YTogYW55ID0gbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCggeyB0eXBlOiB0eXBlLCBkYXRhOiBkYXRhIH0gKTtcclxuICB9XHJcbn0iXX0=
@@ -5,14 +5,46 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be found in
6
6
  * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
7
  */
8
+ /**
9
+ * @private
10
+ * The list of object types used to qualify parsed objects.
11
+ */
8
12
  export var ConsoleBodyType;
9
13
  (function (ConsoleBodyType) {
14
+ /**
15
+ * @private
16
+ * Indicates that the type of object is not supported.
17
+ */
10
18
  ConsoleBodyType[ConsoleBodyType["INVALID"] = -1] = "INVALID";
19
+ /**
20
+ * @private
21
+ * Indicates that the object is null.
22
+ */
11
23
  ConsoleBodyType[ConsoleBodyType["NULL"] = 0] = "NULL";
24
+ /**
25
+ * @private
26
+ * Indicates that the object is a Json.
27
+ */
12
28
  ConsoleBodyType[ConsoleBodyType["JSON"] = 1] = "JSON";
29
+ /**
30
+ * @private
31
+ * Indicates that the object is a string.
32
+ */
13
33
  ConsoleBodyType[ConsoleBodyType["TEXT"] = 2] = "TEXT";
34
+ /**
35
+ * @private
36
+ * Indicates that the object is a Blob instance.
37
+ */
14
38
  ConsoleBodyType[ConsoleBodyType["BLOB"] = 3] = "BLOB";
39
+ /**
40
+ * @private
41
+ * Indicates that the object is a FormData instance.
42
+ */
15
43
  ConsoleBodyType[ConsoleBodyType["FORM_DATA"] = 4] = "FORM_DATA";
44
+ /**
45
+ * @private
46
+ * Indicates that the object is an ArrayBuffer instance.
47
+ */
16
48
  ConsoleBodyType[ConsoleBodyType["ARRAY_BUFFER"] = 5] = "ARRAY_BUFFER";
17
49
  })(ConsoleBodyType || (ConsoleBodyType = {}));
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS1ib2R5LXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwLW1vbml0b3JpbmctY29uc29sZS91dGlsL2NvbnNvbGUtYm9keS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE1BQU0sQ0FBTixJQUFZLGVBVVg7QUFWRCxXQUFZLGVBQWU7SUFFdkIsNERBQVksQ0FBQTtJQUNaLHFEQUFRLENBQUE7SUFDUixxREFBUSxDQUFBO0lBQ1IscURBQVEsQ0FBQTtJQUNSLHFEQUFRLENBQUE7SUFDUiwrREFBYSxDQUFBO0lBQ2IscUVBQWdCLENBQUE7QUFFcEIsQ0FBQyxFQVZXLGVBQWUsS0FBZixlQUFlLFFBVTFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuZXhwb3J0IGVudW0gQ29uc29sZUJvZHlUeXBlIHtcclxuXHJcbiAgICBJTlZBTElEID0gLTEsXHJcbiAgICBOVUxMID0gMCxcclxuICAgIEpTT04gPSAxLFxyXG4gICAgVEVYVCA9IDIsXHJcbiAgICBCTE9CID0gMyxcclxuICAgIEZPUk1fREFUQSA9IDQsXHJcbiAgICBBUlJBWV9CVUZGRVIgPSA1XHJcbiAgICBcclxufVxyXG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS1ib2R5LXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwLW1vbml0b3JpbmctY29uc29sZS91dGlsL2NvbnNvbGUtYm9keS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLGVBMkNYO0FBM0NELFdBQVksZUFBZTtJQUV2Qjs7O09BR0c7SUFDSCw0REFBWSxDQUFBO0lBRVo7OztPQUdHO0lBQ0gscURBQVEsQ0FBQTtJQUVSOzs7T0FHRztJQUNILHFEQUFRLENBQUE7SUFFUjs7O09BR0c7SUFDSCxxREFBUSxDQUFBO0lBRVI7OztPQUdHO0lBQ0gscURBQVEsQ0FBQTtJQUVSOzs7T0FHRztJQUNILCtEQUFhLENBQUE7SUFFYjs7O09BR0c7SUFDSCxxRUFBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBM0NXLGVBQWUsS0FBZixlQUFlLFFBMkMxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgbGlzdCBvZiBvYmplY3QgdHlwZXMgdXNlZCB0byBxdWFsaWZ5IHBhcnNlZCBvYmplY3RzLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gQ29uc29sZUJvZHlUeXBlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgdHlwZSBvZiBvYmplY3QgaXMgbm90IHN1cHBvcnRlZC5cclxuICAgICAqL1xyXG4gICAgSU5WQUxJRCA9IC0xLFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgb2JqZWN0IGlzIG51bGwuXHJcbiAgICAgKi9cclxuICAgIE5VTEwgPSAwLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBvYmplY3QgaXMgYSBKc29uLlxyXG4gICAgICovXHJcbiAgICBKU09OID0gMSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgb2JqZWN0IGlzIGEgc3RyaW5nLlxyXG4gICAgICovXHJcbiAgICBURVhUID0gMixcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgb2JqZWN0IGlzIGEgQmxvYiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgQkxPQiA9IDMsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIG9iamVjdCBpcyBhIEZvcm1EYXRhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBGT1JNX0RBVEEgPSA0LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBvYmplY3QgaXMgYW4gQXJyYXlCdWZmZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIEFSUkFZX0JVRkZFUiA9IDVcclxufVxyXG4iXX0=
@@ -5,13 +5,41 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be found in
6
6
  * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7
7
  */
8
+ /**
9
+ * @private
10
+ * The list of CSS class types for rendered objects.
11
+ */
8
12
  export var ConsoleTypeClass;
9
13
  (function (ConsoleTypeClass) {
14
+ /**
15
+ * @private
16
+ * The class type for JS vanilla objects.
17
+ */
10
18
  ConsoleTypeClass["OBJECT"] = "atx-object";
19
+ /**
20
+ * @private
21
+ * The class type for JS string primitives.
22
+ */
11
23
  ConsoleTypeClass["STRING"] = "atx-string";
24
+ /**
25
+ * @private
26
+ * The class type for JS number primitives.
27
+ */
12
28
  ConsoleTypeClass["NUMBER"] = "atx-number";
29
+ /**
30
+ * @private
31
+ * The class type for JS boolean primitives.
32
+ */
13
33
  ConsoleTypeClass["BOOLEAN"] = "atx-boolean";
34
+ /**
35
+ * @private
36
+ * The class type for JS Arrays.
37
+ */
14
38
  ConsoleTypeClass["ARRAY"] = "atx-array";
39
+ /**
40
+ * @private
41
+ * The class type for the JS `null` type.
42
+ */
15
43
  ConsoleTypeClass["NULL"] = "atx-null";
16
44
  })(ConsoleTypeClass || (ConsoleTypeClass = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS10eXBlLWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUvdXRpbC9jb25zb2xlLXR5cGUtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsTUFBTSxDQUFOLElBQVksZ0JBUVg7QUFSRCxXQUFZLGdCQUFnQjtJQUV4Qix5Q0FBcUIsQ0FBQTtJQUNyQix5Q0FBcUIsQ0FBQTtJQUNyQix5Q0FBb0IsQ0FBQTtJQUNwQiwyQ0FBc0IsQ0FBQTtJQUN0Qix1Q0FBa0IsQ0FBQTtJQUNsQixxQ0FBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBUlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQVEzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBlbnVtIENvbnNvbGVUeXBlQ2xhc3Mge1xyXG5cclxuICAgIE9CSkVDVCA9IFwiYXR4LW9iamVjdFwiLFxyXG4gICAgU1RSSU5HID0gXCJhdHgtc3RyaW5nXCIsXHJcbiAgICBOVU1CRVI9IFwiYXR4LW51bWJlclwiLFxyXG4gICAgQk9PTEVBTj0gXCJhdHgtYm9vbGVhblwiLFxyXG4gICAgQVJSQVk9IFwiYXR4LWFycmF5XCIsXHJcbiAgICBOVUxMPSBcImF0eC1udWxsXCJcclxufVxyXG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS10eXBlLWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUvdXRpbC9jb25zb2xlLXR5cGUtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFOLElBQVksZ0JBcUNYO0FBckNELFdBQVksZ0JBQWdCO0lBRXhCOzs7T0FHRztJQUNILHlDQUFxQixDQUFBO0lBRXJCOzs7T0FHRztJQUNILHlDQUFxQixDQUFBO0lBRXJCOzs7T0FHRztJQUNILHlDQUFvQixDQUFBO0lBRXBCOzs7T0FHRztJQUNILDJDQUFzQixDQUFBO0lBRXRCOzs7T0FHRztJQUNILHVDQUFrQixDQUFBO0lBRWxCOzs7T0FHRztJQUNILHFDQUFnQixDQUFBO0FBQ3BCLENBQUMsRUFyQ1csZ0JBQWdCLEtBQWhCLGdCQUFnQixRQXFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIGxpc3Qgb2YgQ1NTIGNsYXNzIHR5cGVzIGZvciByZW5kZXJlZCBvYmplY3RzLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gQ29uc29sZVR5cGVDbGFzcyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIGNsYXNzIHR5cGUgZm9yIEpTIHZhbmlsbGEgb2JqZWN0cy5cclxuICAgICAqL1xyXG4gICAgT0JKRUNUID0gXCJhdHgtb2JqZWN0XCIsXHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFRoZSBjbGFzcyB0eXBlIGZvciBKUyBzdHJpbmcgcHJpbWl0aXZlcy5cclxuICAgICAqL1xyXG4gICAgU1RSSU5HID0gXCJhdHgtc3RyaW5nXCIsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIGNsYXNzIHR5cGUgZm9yIEpTIG51bWJlciBwcmltaXRpdmVzLlxyXG4gICAgICovXHJcbiAgICBOVU1CRVI9IFwiYXR4LW51bWJlclwiLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFRoZSBjbGFzcyB0eXBlIGZvciBKUyBib29sZWFuIHByaW1pdGl2ZXMuXHJcbiAgICAgKi9cclxuICAgIEJPT0xFQU49IFwiYXR4LWJvb2xlYW5cIixcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIGNsYXNzIHR5cGUgZm9yIEpTIEFycmF5cy5cclxuICAgICAqL1xyXG4gICAgQVJSQVk9IFwiYXR4LWFycmF5XCIsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogVGhlIGNsYXNzIHR5cGUgZm9yIHRoZSBKUyBgbnVsbGAgdHlwZS5cclxuICAgICAqL1xyXG4gICAgTlVMTD0gXCJhdHgtbnVsbFwiXHJcbn1cclxuIl19