angular-toolbox 0.11.2 → 0.11.4

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 (223) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/core/bridge/app-bridge.mjs +3 -3
  3. package/esm2022/lib/core/error/app-bridge-error.mjs +3 -3
  4. package/esm2022/lib/core/error/http-mock-service-error.mjs +3 -3
  5. package/esm2022/lib/core/error/integrity-error.mjs +3 -3
  6. package/esm2022/lib/core/error/subscription-error.mjs +3 -3
  7. package/esm2022/lib/core/impl/lang/identifiable-component.mjs +3 -3
  8. package/esm2022/lib/core/impl/version/version.impl.mjs +3 -3
  9. package/esm2022/lib/framework/index.mjs +3 -1
  10. package/esm2022/lib/framework/logging/connector/console-log-connector.mjs +48 -0
  11. package/esm2022/lib/framework/logging/connector/default-log-connector.mjs +34 -0
  12. package/esm2022/lib/framework/logging/connector/html-log-connector.mjs +177 -0
  13. package/esm2022/lib/framework/logging/connector/index.mjs +4 -0
  14. package/esm2022/lib/framework/logging/impl/abstract-logger.mjs +100 -0
  15. package/esm2022/lib/framework/logging/impl/index.mjs +3 -0
  16. package/esm2022/lib/framework/logging/impl/log-impl.mjs +28 -0
  17. package/esm2022/lib/framework/logging/index.mjs +4 -0
  18. package/esm2022/lib/framework/logging/util/index.mjs +4 -0
  19. package/esm2022/lib/framework/logging/util/log.builder.mjs +28 -0
  20. package/esm2022/lib/framework/logging/util/log.constant.mjs +24 -0
  21. package/esm2022/lib/framework/logging/util/log.util.mjs +142 -0
  22. package/esm2022/lib/framework/mock/http/core/data-storage.mjs +1 -1
  23. package/esm2022/lib/framework/mock/http/core/response-delay.mjs +9 -0
  24. package/esm2022/lib/framework/mock/http/event/event-target.impl.mjs +15 -1
  25. package/esm2022/lib/framework/mock/http/logging/http-mock-logger.mjs +15 -0
  26. package/esm2022/lib/framework/mock/http/logging/http-mock-logging-metadata.builder.mjs +35 -0
  27. package/esm2022/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.mjs +3 -3
  28. package/esm2022/lib/framework/mock/http/path-to-regexp/model/lex-token.mjs +3 -3
  29. package/esm2022/lib/framework/mock/http/util/data-storage.builder.mjs +5 -3
  30. package/esm2022/lib/framework/mock/http/util/http-headers.util.mjs +18 -3
  31. package/esm2022/lib/framework/mock/http/util/http-mock-max-delay.mjs +12 -0
  32. package/esm2022/lib/framework/mock/http/util/http-mock-response-delay.util.mjs +33 -0
  33. package/esm2022/lib/framework/mock/http/util/http-mock-response.builder.mjs +45 -9
  34. package/esm2022/lib/framework/mock/http/util/index.mjs +2 -1
  35. package/esm2022/lib/framework/mock/http/xhr/delegate-xhr.mjs +75 -41
  36. package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.impl.mjs +4 -3
  37. package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.mjs +3 -2
  38. package/esm2022/lib/framework/mock/http/xhr/xhr-proxy-impl.mjs +7 -6
  39. package/esm2022/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.mjs +30 -0
  40. package/esm2022/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.mjs +30 -0
  41. package/esm2022/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.mjs +140 -0
  42. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.mjs +37 -0
  43. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.mjs +34 -0
  44. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.mjs +27 -0
  45. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.mjs +50 -0
  46. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.mjs +50 -0
  47. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.mjs +71 -0
  48. package/esm2022/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.mjs +55 -0
  49. package/esm2022/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.mjs +67 -0
  50. package/esm2022/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.mjs +52 -0
  51. package/esm2022/lib/framework/mock/http-monitoring-console/index.mjs +2 -0
  52. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.mjs +14 -0
  53. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.mjs +9 -0
  54. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.mjs +9 -0
  55. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.mjs +10 -0
  56. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.mjs +9 -0
  57. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.mjs +9 -0
  58. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.mjs +9 -0
  59. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.mjs +9 -0
  60. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.mjs +9 -0
  61. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.mjs +9 -0
  62. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.mjs +9 -0
  63. package/esm2022/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.mjs +9 -0
  64. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.mjs +77 -0
  65. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/body-converter.mjs +22 -0
  66. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/body-serializer.mjs +47 -0
  67. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/http-request-converter.mjs +44 -0
  68. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/http-response-converter.mjs +32 -0
  69. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-converter.mjs +31 -0
  70. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-headers-converter.mjs +35 -0
  71. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-message.util.mjs +19 -0
  72. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/log-metadata-converter.mjs +27 -0
  73. package/esm2022/lib/framework/mock/http-monitoring-console/model/service/io/request-metadata-converter.mjs +29 -0
  74. package/esm2022/lib/framework/mock/http-monitoring-console/util/console-body-type.mjs +18 -0
  75. package/esm2022/lib/framework/mock/http-monitoring-console/util/console-type-class.mjs +17 -0
  76. package/esm2022/lib/framework/mock/http-monitoring-console/util/data.util.mjs +75 -0
  77. package/esm2022/lib/framework/mock/http-monitoring-console/util/size.util.mjs +35 -0
  78. package/esm2022/lib/framework/mock/http-monitoring-console/util/url.util.mjs +26 -0
  79. package/esm2022/lib/model/business/index.mjs +2 -1
  80. package/esm2022/lib/model/business/lang/app-bridge-command.mjs +3 -3
  81. package/esm2022/lib/model/business/lang/destroyable.mjs +3 -3
  82. package/esm2022/lib/model/business/lang/identifiable.mjs +3 -3
  83. package/esm2022/lib/model/business/logging/http-mock-logging-constant.enum.mjs +34 -0
  84. package/esm2022/lib/model/business/logging/index.mjs +6 -0
  85. package/esm2022/lib/model/business/logging/log-connector.mjs +9 -0
  86. package/esm2022/lib/model/business/logging/log-level.enum.mjs +35 -0
  87. package/esm2022/lib/model/business/logging/log.mjs +9 -0
  88. package/esm2022/lib/model/business/logging/logger.mjs +2 -0
  89. package/esm2022/lib/model/business/logging/transactional-logger.mjs +9 -0
  90. package/esm2022/lib/model/business/mock/http/config/http-mock-production-policy.enum.mjs +27 -0
  91. package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.mjs +9 -0
  92. package/esm2022/lib/model/business/mock/http/config/http-mocking-framework-config.provider.mjs +33 -0
  93. package/esm2022/lib/model/business/mock/http/config/index.mjs +4 -0
  94. package/esm2022/lib/model/business/mock/http/fetch-client.mjs +7 -2
  95. package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +1 -1
  96. package/esm2022/lib/model/business/mock/http/http-mock-request-metadata.mjs +9 -0
  97. package/esm2022/lib/model/business/mock/http/index.mjs +4 -1
  98. package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-metadata.mjs +9 -0
  99. package/esm2022/lib/model/business/mock/http/logging/http-mock-logging-prefetch-metadata.mjs +9 -0
  100. package/esm2022/lib/model/business/mock/http/logging/index.mjs +3 -0
  101. package/esm2022/lib/model/service/index.mjs +3 -2
  102. package/esm2022/lib/model/service/logging/index.mjs +2 -0
  103. package/esm2022/lib/model/service/logging/logger-service.mjs +24 -0
  104. package/esm2022/lib/model/service/mock/http/http-mock.service.mjs +45 -6
  105. package/esm2022/lib/model/service/mock/http/index.mjs +3 -0
  106. package/esm2022/lib/model/service/mock/http/logging/http-mock-logging-service.mjs +110 -0
  107. package/esm2022/lib/model/service/mock/http/logging/index.mjs +2 -0
  108. package/esm2022/lib/model/service/ui/app-bridge.service.mjs +3 -3
  109. package/esm2022/lib/model/service/ui/dark-mode.service.mjs +3 -3
  110. package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +3 -3
  111. package/esm2022/lib/util/default-scroll-behavior.mjs +3 -3
  112. package/esm2022/lib/util/http-mocking-framework-config.manager.mjs +129 -0
  113. package/fesm2022/angular-toolbox.mjs +3338 -997
  114. package/fesm2022/angular-toolbox.mjs.map +1 -1
  115. package/lib/core/bridge/app-bridge.d.ts +2 -2
  116. package/lib/core/error/app-bridge-error.d.ts +2 -2
  117. package/lib/core/error/http-mock-service-error.d.ts +2 -2
  118. package/lib/core/error/integrity-error.d.ts +2 -2
  119. package/lib/core/error/subscription-error.d.ts +2 -2
  120. package/lib/core/impl/lang/identifiable-component.d.ts +2 -2
  121. package/lib/core/impl/version/version.impl.d.ts +2 -2
  122. package/lib/framework/index.d.ts +2 -0
  123. package/lib/framework/logging/connector/console-log-connector.d.ts +34 -0
  124. package/lib/framework/logging/connector/default-log-connector.d.ts +34 -0
  125. package/lib/framework/logging/connector/html-log-connector.d.ts +72 -0
  126. package/lib/framework/logging/connector/index.d.ts +3 -0
  127. package/lib/framework/logging/impl/abstract-logger.d.ts +69 -0
  128. package/lib/framework/logging/impl/index.d.ts +2 -0
  129. package/lib/framework/logging/impl/log-impl.d.ts +42 -0
  130. package/lib/framework/logging/index.d.ts +3 -0
  131. package/lib/framework/logging/util/index.d.ts +3 -0
  132. package/lib/framework/logging/util/log.builder.d.ts +24 -0
  133. package/lib/framework/logging/util/log.constant.d.ts +23 -0
  134. package/lib/framework/logging/util/log.util.d.ts +48 -0
  135. package/lib/framework/mock/http/core/data-storage.d.ts +6 -1
  136. package/lib/framework/mock/http/core/response-delay.d.ts +23 -0
  137. package/lib/framework/mock/http/event/event-target.impl.d.ts +8 -0
  138. package/lib/framework/mock/http/logging/http-mock-logger.d.ts +14 -0
  139. package/lib/framework/mock/http/logging/http-mock-logging-metadata.builder.d.ts +20 -0
  140. package/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.d.ts +2 -2
  141. package/lib/framework/mock/http/path-to-regexp/model/lex-token.d.ts +2 -2
  142. package/lib/framework/mock/http/util/data-storage.builder.d.ts +3 -2
  143. package/lib/framework/mock/http/util/http-headers.util.d.ts +10 -0
  144. package/lib/framework/mock/http/util/http-mock-max-delay.d.ts +11 -0
  145. package/lib/framework/mock/http/util/http-mock-response-delay.util.d.ts +22 -0
  146. package/lib/framework/mock/http/util/http-mock-response.builder.d.ts +16 -0
  147. package/lib/framework/mock/http/util/index.d.ts +1 -0
  148. package/lib/framework/mock/http/xhr/delegate-xhr.d.ts +11 -4
  149. package/lib/framework/mock/http/xhr/http-mock-factory.impl.d.ts +3 -1
  150. package/lib/framework/mock/http/xhr/xhr-proxy-impl.d.ts +6 -5
  151. package/lib/framework/mock/http-monitoring-console/component/console-footer/console-footer.component.d.ts +8 -0
  152. package/lib/framework/mock/http-monitoring-console/component/console-menu/console-menu.component.d.ts +21 -0
  153. package/lib/framework/mock/http-monitoring-console/component/http-monitoring-console/http-monitoring-console.component.d.ts +42 -0
  154. package/lib/framework/mock/http-monitoring-console/component/renderer/icon-renderer/icon-renderer.component.d.ts +12 -0
  155. package/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer/json-viewer.component.d.ts +8 -0
  156. package/lib/framework/mock/http-monitoring-console/component/renderer/json-viewer-panel/json-viewer-panel.component.d.ts +7 -0
  157. package/lib/framework/mock/http-monitoring-console/component/renderer/payload-renderer/payload-renderer.component.d.ts +20 -0
  158. package/lib/framework/mock/http-monitoring-console/component/renderer/response-body-renderer/response-body-renderer.component.d.ts +20 -0
  159. package/lib/framework/mock/http-monitoring-console/component/renderer/response-preview-renderer/response-preview-renderer.component.d.ts +27 -0
  160. package/lib/framework/mock/http-monitoring-console/component/renderer/timing-renderer/timing-renderer.component.d.ts +13 -0
  161. package/lib/framework/mock/http-monitoring-console/component/request-details/request-details.component.d.ts +27 -0
  162. package/lib/framework/mock/http-monitoring-console/connector/http-monitoring-console-log-connector.d.ts +40 -0
  163. package/lib/framework/mock/http-monitoring-console/index.d.ts +1 -0
  164. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-action-type.d.ts +12 -0
  165. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-action.d.ts +12 -0
  166. package/lib/framework/mock/http-monitoring-console/model/business/atx-console-json.d.ts +14 -0
  167. package/lib/framework/mock/http-monitoring-console/model/business/atx-is-imported-log.d.ts +9 -0
  168. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-body-dto.d.ts +11 -0
  169. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-header-dto.d.ts +11 -0
  170. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log-metadata.dto.d.ts +18 -0
  171. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-log.dto.d.ts +23 -0
  172. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request-metadata.dto.ts.d.ts +32 -0
  173. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-request.dto.d.ts +18 -0
  174. package/lib/framework/mock/http-monitoring-console/model/business/io/atx-http-response.dto.d.ts +16 -0
  175. package/lib/framework/mock/http-monitoring-console/model/business/io/hmfl.d.ts +12 -0
  176. package/lib/framework/mock/http-monitoring-console/model/service/atx-log-io.service.d.ts +11 -0
  177. package/lib/framework/mock/http-monitoring-console/model/service/io/body-converter.d.ts +12 -0
  178. package/lib/framework/mock/http-monitoring-console/model/service/io/body-serializer.d.ts +13 -0
  179. package/lib/framework/mock/http-monitoring-console/model/service/io/http-request-converter.d.ts +13 -0
  180. package/lib/framework/mock/http-monitoring-console/model/service/io/http-response-converter.d.ts +13 -0
  181. package/lib/framework/mock/http-monitoring-console/model/service/io/log-converter.d.ts +13 -0
  182. package/lib/framework/mock/http-monitoring-console/model/service/io/log-headers-converter.d.ts +13 -0
  183. package/lib/framework/mock/http-monitoring-console/model/service/io/log-message.util.d.ts +12 -0
  184. package/lib/framework/mock/http-monitoring-console/model/service/io/log-metadata-converter.d.ts +13 -0
  185. package/lib/framework/mock/http-monitoring-console/model/service/io/request-metadata-converter.d.ts +13 -0
  186. package/lib/framework/mock/http-monitoring-console/util/console-body-type.d.ts +16 -0
  187. package/lib/framework/mock/http-monitoring-console/util/console-type-class.d.ts +15 -0
  188. package/lib/framework/mock/http-monitoring-console/util/data.util.d.ts +13 -0
  189. package/lib/framework/mock/http-monitoring-console/util/size.util.d.ts +11 -0
  190. package/lib/framework/mock/http-monitoring-console/util/url.util.d.ts +13 -0
  191. package/lib/model/business/index.d.ts +1 -0
  192. package/lib/model/business/lang/app-bridge-command.d.ts +2 -2
  193. package/lib/model/business/lang/destroyable.d.ts +2 -2
  194. package/lib/model/business/lang/identifiable.d.ts +2 -2
  195. package/lib/model/business/logging/http-mock-logging-constant.enum.d.ts +32 -0
  196. package/lib/model/business/logging/index.d.ts +5 -0
  197. package/lib/model/business/logging/log-connector.d.ts +36 -0
  198. package/lib/model/business/logging/log-level.enum.d.ts +33 -0
  199. package/lib/model/business/logging/log.d.ts +34 -0
  200. package/lib/model/business/logging/logger.d.ts +58 -0
  201. package/lib/model/business/logging/transactional-logger.d.ts +28 -0
  202. package/lib/model/business/mock/http/config/http-mock-production-policy.enum.d.ts +24 -0
  203. package/lib/model/business/mock/http/config/http-mocking-framework-config.d.ts +21 -0
  204. package/lib/model/business/mock/http/config/http-mocking-framework-config.provider.d.ts +21 -0
  205. package/lib/model/business/mock/http/config/index.d.ts +3 -0
  206. package/lib/model/business/mock/http/fetch-client.d.ts +1 -1
  207. package/lib/model/business/mock/http/http-method-mock.d.ts +1 -6
  208. package/lib/model/business/mock/http/http-mock-request-metadata.d.ts +33 -0
  209. package/lib/model/business/mock/http/index.d.ts +3 -0
  210. package/lib/model/business/mock/http/logging/http-mock-logging-metadata.d.ts +15 -0
  211. package/lib/model/business/mock/http/logging/http-mock-logging-prefetch-metadata.d.ts +16 -0
  212. package/lib/model/business/mock/http/logging/index.d.ts +2 -0
  213. package/lib/model/service/index.d.ts +2 -1
  214. package/lib/model/service/logging/index.d.ts +1 -0
  215. package/lib/model/service/logging/logger-service.d.ts +9 -0
  216. package/lib/model/service/mock/http/http-mock.service.d.ts +35 -2
  217. package/lib/model/service/mock/http/index.d.ts +2 -0
  218. package/lib/model/service/mock/http/logging/http-mock-logging-service.d.ts +78 -0
  219. package/lib/model/service/mock/http/logging/index.d.ts +1 -0
  220. package/lib/model/service/ui/dark-mode.service.d.ts +2 -2
  221. package/lib/util/default-scroll-behavior.d.ts +2 -2
  222. package/lib/util/http-mocking-framework-config.manager.d.ts +66 -0
  223. package/package.json +1 -1
@@ -0,0 +1,50 @@
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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';
9
+ import { AtxJsonViewerComponent } from '../json-viewer/json-viewer.component';
10
+ import { DataUtil } from '../../../util/data.util';
11
+ import { ConsoleBodyType } from '../../../util/console-body-type';
12
+ import * as i0 from "@angular/core";
13
+ export class AtxPayloadRendererComponent {
14
+ set log(value) {
15
+ const request = value?.metadata.request;
16
+ const params = request.params;
17
+ const paramsKeys = params.keys();
18
+ const body = request.body;
19
+ const bodyType = DataUtil.getBodyType(body);
20
+ this.queryParams = this.formData = this.json = null;
21
+ if (paramsKeys.length > 0) {
22
+ this.queryParams = [];
23
+ paramsKeys.forEach(key => this.queryParams?.push({ key: key, value: params.get(key) }));
24
+ }
25
+ if (bodyType === ConsoleBodyType.FORM_DATA) {
26
+ this.formData = Array.from(body);
27
+ }
28
+ else if (bodyType === ConsoleBodyType.TEXT) {
29
+ this.json = JSON.parse(body);
30
+ }
31
+ this._cdr.detectChanges();
32
+ }
33
+ constructor(_cdr) {
34
+ this._cdr = _cdr;
35
+ this.json = null;
36
+ this.formData = null;
37
+ this.queryParams = null;
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxPayloadRendererComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxPayloadRendererComponent, isStandalone: true, selector: "atx-payload-renderer", inputs: { log: "log" }, ngImport: i0, template: "\r\n<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n@if (queryParams) {\r\n <details>\r\n <summary>\r\n Query String Parameters\r\n </summary>\r\n <div class=\"content\">\r\n @for (item of queryParams; track item) {\r\n <dl>\r\n <dt>{{ item.key }}:</dt>\r\n <dd>{{ item.value }}</dd>\r\n </dl>\r\n }\r\n </div>\r\n </details>\r\n}\r\n@if (json) {\r\n <details>\r\n <summary>\r\n Request Payload\r\n </summary>\r\n <div class=\"content\">\r\n <atx-json-viewer [data]=\"json\"/>\r\n </div>\r\n </details>\r\n} @else if (formData) {\r\n <details>\r\n <summary>\r\n Form Data\r\n </summary>\r\n <div class=\"content\">\r\n <ul>\r\n @for (entry of formData; track entry) {\r\n <li>[ {{ entry }} ]</li>\r\n }\r\n </ul>\r\n </div>\r\n </details>\r\n} \r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}details{border:1px solid var(--border-color)}summary{font-weight:700;padding:4px 6px}summary:hover{background-color:var(--dark-gray)}dl{display:flex;gap:6px;margin:0 0 0 20px}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"], dependencies: [{ kind: "component", type: AtxJsonViewerComponent, selector: "atx-json-viewer", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxPayloadRendererComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'atx-payload-renderer', standalone: true, imports: [
45
+ AtxJsonViewerComponent
46
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n@if (queryParams) {\r\n <details>\r\n <summary>\r\n Query String Parameters\r\n </summary>\r\n <div class=\"content\">\r\n @for (item of queryParams; track item) {\r\n <dl>\r\n <dt>{{ item.key }}:</dt>\r\n <dd>{{ item.value }}</dd>\r\n </dl>\r\n }\r\n </div>\r\n </details>\r\n}\r\n@if (json) {\r\n <details>\r\n <summary>\r\n Request Payload\r\n </summary>\r\n <div class=\"content\">\r\n <atx-json-viewer [data]=\"json\"/>\r\n </div>\r\n </details>\r\n} @else if (formData) {\r\n <details>\r\n <summary>\r\n Form Data\r\n </summary>\r\n <div class=\"content\">\r\n <ul>\r\n @for (entry of formData; track entry) {\r\n <li>[ {{ entry }} ]</li>\r\n }\r\n </ul>\r\n </div>\r\n </details>\r\n} \r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}details{border:1px solid var(--border-color)}summary{font-weight:700;padding:4px 6px}summary:hover{background-color:var(--dark-gray)}dl{display:flex;gap:6px;margin:0 0 0 20px}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
47
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { log: [{
48
+ type: Input
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwLW1vbml0b3JpbmctY29uc29sZS9jb21wb25lbnQvcmVuZGVyZXIvcGF5bG9hZC1yZW5kZXJlci9wYXlsb2FkLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL2NvbXBvbmVudC9yZW5kZXJlci9wYXlsb2FkLXJlbmRlcmVyL3BheWxvYWQtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBWWxFLE1BQU0sT0FBTywyQkFBMkI7SUFNdEMsSUFDVyxHQUFHLENBQUUsS0FBaUI7UUFDL0IsTUFBTSxPQUFPLEdBQXFCLEtBQUssRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFELE1BQU0sTUFBTSxHQUFlLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQWEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNDLE1BQU0sSUFBSSxHQUFRLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQW9CLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3BELElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsQ0FBQyxDQUFDO1FBQzNGLENBQUM7UUFDRCxJQUFJLFFBQVEsS0FBSyxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLFFBQVEsS0FBSyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFvQixJQUF1QjtRQUF2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQXhCakMsU0FBSSxHQUFRLElBQUksQ0FBQztRQUNqQixhQUFRLEdBQWUsSUFBSSxDQUFDO1FBQzVCLGdCQUFXLEdBQWlCLElBQUksQ0FBQztJQXNCRyxDQUFDOzhHQTFCcEMsMkJBQTJCO2tHQUEzQiwyQkFBMkIsd0dDekJ4Qyxnd0NBK0NBLG9sREQ1Qkksc0JBQXNCOzsyRkFNYiwyQkFBMkI7a0JBVnZDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxzQkFBc0I7cUJBQ3ZCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO3NGQVNwQyxHQUFHO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWwnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQXR4SnNvblZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL2pzb24tdmlld2VyL2pzb24tdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGFVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9kYXRhLnV0aWwnO1xyXG5pbXBvcnQgeyBDb25zb2xlQm9keVR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NvbnNvbGUtYm9keS10eXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXR4LXBheWxvYWQtcmVuZGVyZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQXR4SnNvblZpZXdlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BheWxvYWQtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wYXlsb2FkLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR4UGF5bG9hZFJlbmRlcmVyQ29tcG9uZW50IHtcclxuXHJcbiAgcHJvdGVjdGVkIGpzb246IGFueSA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIGZvcm1EYXRhOiBhbnkgfCBudWxsID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgcXVlcnlQYXJhbXM6IGFueVtdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBsb2cgKHZhbHVlOiBMb2cgfCBudWxsKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+ID0gdmFsdWU/Lm1ldGFkYXRhLnJlcXVlc3Q7XHJcbiAgICBjb25zdCBwYXJhbXM6IEh0dHBQYXJhbXMgPSByZXF1ZXN0LnBhcmFtcztcclxuICAgIGNvbnN0IHBhcmFtc0tleXM6IHN0cmluZ1tdID0gcGFyYW1zLmtleXMoKTtcclxuICAgIGNvbnN0IGJvZHk6IGFueSA9IHJlcXVlc3QuYm9keTtcclxuICAgIGNvbnN0IGJvZHlUeXBlOiBDb25zb2xlQm9keVR5cGUgPSBEYXRhVXRpbC5nZXRCb2R5VHlwZShib2R5KTtcclxuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB0aGlzLmZvcm1EYXRhID0gdGhpcy5qc29uID0gbnVsbDtcclxuICAgIGlmIChwYXJhbXNLZXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICBwYXJhbXNLZXlzLmZvckVhY2goa2V5PT4gdGhpcy5xdWVyeVBhcmFtcz8ucHVzaCggeyBrZXk6IGtleSwgdmFsdWU6IHBhcmFtcy5nZXQoa2V5KSB9ICkpO1xyXG4gICAgfVxyXG4gICAgaWYgKGJvZHlUeXBlID09PSBDb25zb2xlQm9keVR5cGUuRk9STV9EQVRBKSB7XHJcbiAgICAgIHRoaXMuZm9ybURhdGEgPSBBcnJheS5mcm9tKGJvZHkpO1xyXG4gICAgfSBlbHNlIGlmIChib2R5VHlwZSA9PT0gQ29uc29sZUJvZHlUeXBlLlRFWFQpIHtcclxuICAgICAgdGhpcy5qc29uID0gSlNPTi5wYXJzZShib2R5KTtcclxuICAgIH1cclxuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG59XHJcbiIsIlxyXG48IS0tXHJcbiAqIExJQ0VOU0VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuLS0+XHJcblxyXG5AaWYgKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICA8ZGV0YWlscz5cclxuICAgICAgICA8c3VtbWFyeT5cclxuICAgICAgICAgICBRdWVyeSBTdHJpbmcgUGFyYW1ldGVyc1xyXG4gICAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIHF1ZXJ5UGFyYW1zOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR0Pnt7IGl0ZW0ua2V5IH19OjwvZHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRkPnt7IGl0ZW0udmFsdWUgfX08L2RkPlxyXG4gICAgICAgICAgICAgICAgPC9kbD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kZXRhaWxzPlxyXG59XHJcbkBpZiAoanNvbikge1xyXG4gICAgPGRldGFpbHM+XHJcbiAgICAgICAgPHN1bW1hcnk+XHJcbiAgICAgICAgICAgIFJlcXVlc3QgUGF5bG9hZFxyXG4gICAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICA8YXR4LWpzb24tdmlld2VyIFtkYXRhXT1cImpzb25cIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2RldGFpbHM+XHJcbn0gQGVsc2UgaWYgKGZvcm1EYXRhKSB7XHJcbiAgICA8ZGV0YWlscz5cclxuICAgICAgICA8c3VtbWFyeT5cclxuICAgICAgICAgICAgRm9ybSBEYXRhXHJcbiAgICAgICAgPC9zdW1tYXJ5PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGVudHJ5IG9mIGZvcm1EYXRhOyB0cmFjayBlbnRyeSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxsaT5bIHt7IGVudHJ5IH19IF08L2xpPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kZXRhaWxzPlxyXG59ICAgICAgXHJcbiJdfQ==
@@ -0,0 +1,50 @@
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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';
9
+ import { AtxJsonViewerComponent } from '../json-viewer/json-viewer.component';
10
+ import { DataUtil } from '../../../util/data.util';
11
+ import { ConsoleBodyType } from '../../../util/console-body-type';
12
+ import { SafeHtmlPipe } from '../../../../../../pipe';
13
+ import * as i0 from "@angular/core";
14
+ export class AtxResponseBodyRendererComponent {
15
+ set data(value) {
16
+ this.body = value;
17
+ this.text = this.blob = this.arrayBuffer = null;
18
+ if (value) {
19
+ const bodyType = DataUtil.getBodyType(value);
20
+ if (bodyType === ConsoleBodyType.TEXT)
21
+ this.text = value;
22
+ else if (bodyType === ConsoleBodyType.JSON)
23
+ this.text = JSON.stringify(value);
24
+ else if (bodyType === ConsoleBodyType.BLOB)
25
+ this.blob = value;
26
+ else if (bodyType === ConsoleBodyType.ARRAY_BUFFER)
27
+ this.arrayBuffer = value;
28
+ }
29
+ this._cdr.detectChanges();
30
+ }
31
+ constructor(_cdr) {
32
+ this._cdr = _cdr;
33
+ this.text = null;
34
+ this.body = null;
35
+ this.blob = null;
36
+ this.arrayBuffer = null;
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxResponseBodyRendererComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxResponseBodyRendererComponent, isStandalone: true, selector: "atx-response-body-renderer", inputs: { data: "data" }, ngImport: i0, template: "\r\n<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n@if (body) {\r\n <section class=\"content\">\r\n @if (text) {\r\n {{ text }}\r\n } @else if (blob) {\r\n <dl>\r\n <dt>Binary data:</dt>\r\n <dd>Blob</dd>\r\n </dl>\r\n <dl>\r\n <dt>ize:</dt>\r\n <dd>{{ blob.size }}</dd>\r\n </dl>\r\n <dl>\r\n <dt>type:</dt>\r\n <dd>{{ blob.type }}</dd>\r\n </dl>\r\n } @else if (arrayBuffer) {\r\n <dl>\r\n <dt>Binary data:</dt>\r\n <dd>Array Buffer</dd>\r\n </dl>\r\n <dl>\r\n <dt>byte length:</dt>\r\n <dd>{{ arrayBuffer.byteLength }}</dd>\r\n </dl>\r\n } @else {\r\n <div class=\"center-content\">\r\n <strong>This request has no data available</strong>\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}dl,dd,dt{margin:0;padding:0}dl{display:flex;gap:12px}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxResponseBodyRendererComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'atx-response-body-renderer', standalone: true, imports: [
44
+ AtxJsonViewerComponent,
45
+ SafeHtmlPipe
46
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n@if (body) {\r\n <section class=\"content\">\r\n @if (text) {\r\n {{ text }}\r\n } @else if (blob) {\r\n <dl>\r\n <dt>Binary data:</dt>\r\n <dd>Blob</dd>\r\n </dl>\r\n <dl>\r\n <dt>ize:</dt>\r\n <dd>{{ blob.size }}</dd>\r\n </dl>\r\n <dl>\r\n <dt>type:</dt>\r\n <dd>{{ blob.type }}</dd>\r\n </dl>\r\n } @else if (arrayBuffer) {\r\n <dl>\r\n <dt>Binary data:</dt>\r\n <dd>Array Buffer</dd>\r\n </dl>\r\n <dl>\r\n <dt>byte length:</dt>\r\n <dd>{{ arrayBuffer.byteLength }}</dd>\r\n </dl>\r\n } @else {\r\n <div class=\"center-content\">\r\n <strong>This request has no data available</strong>\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}dl,dd,dt{margin:0;padding:0}dl{display:flex;gap:12px}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
47
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { data: [{
48
+ type: Input
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtYm9keS1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwLW1vbml0b3JpbmctY29uc29sZS9jb21wb25lbnQvcmVuZGVyZXIvcmVzcG9uc2UtYm9keS1yZW5kZXJlci9yZXNwb25zZS1ib2R5LXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL2NvbXBvbmVudC9yZW5kZXJlci9yZXNwb25zZS1ib2R5LXJlbmRlcmVyL3Jlc3BvbnNlLWJvZHktcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWF0RCxNQUFNLE9BQU8sZ0NBQWdDO0lBUTNDLElBQ1csSUFBSSxDQUFFLEtBQVU7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ2hELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLFFBQVEsR0FBb0IsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5RCxJQUFJLFFBQVEsS0FBSyxlQUFlLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztpQkFDcEQsSUFBSSxRQUFRLEtBQUssZUFBZSxDQUFDLElBQUk7Z0JBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN6RSxJQUFJLFFBQVEsS0FBSyxlQUFlLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztpQkFDekQsSUFBSSxRQUFRLEtBQUssZUFBZSxDQUFDLFlBQVk7Z0JBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQW9CLElBQXVCO1FBQXZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBcEJqQyxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixTQUFJLEdBQVEsSUFBSSxDQUFDO1FBQ2pCLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQXVCLElBQUksQ0FBQztJQWlCSCxDQUFDOzhHQXRCcEMsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsZ0hDekI3QyxxdUNBMENBOzsyRkRqQmEsZ0NBQWdDO2tCQVg1QyxTQUFTOytCQUNFLDRCQUE0QixjQUMxQixJQUFJLFdBQ1A7d0JBQ1Asc0JBQXNCO3dCQUN0QixZQUFZO3FCQUNiLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO3NGQVdwQyxJQUFJO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXR4SnNvblZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL2pzb24tdmlld2VyL2pzb24tdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGFVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9kYXRhLnV0aWwnO1xyXG5pbXBvcnQgeyBDb25zb2xlQm9keVR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NvbnNvbGUtYm9keS10eXBlJztcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vcGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F0eC1yZXNwb25zZS1ib2R5LXJlbmRlcmVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEF0eEpzb25WaWV3ZXJDb21wb25lbnQsXHJcbiAgICBTYWZlSHRtbFBpcGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNwb25zZS1ib2R5LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmVzcG9uc2UtYm9keS1yZW5kZXJlci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEF0eFJlc3BvbnNlQm9keVJlbmRlcmVyQ29tcG9uZW50IHtcclxuXHJcbiAgcHJvdGVjdGVkIHRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHByb3RlY3RlZCBib2R5OiBhbnkgPSBudWxsO1xyXG4gIHByb3RlY3RlZCBibG9iOiBCbG9iIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIGFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlciB8IG51bGwgPSBudWxsO1xyXG4gIFxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZGF0YSAodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5ib2R5ID0gdmFsdWU7XHJcbiAgICB0aGlzLnRleHQgPSB0aGlzLmJsb2IgPSB0aGlzLmFycmF5QnVmZmVyID0gbnVsbDtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBjb25zdCBib2R5VHlwZTogQ29uc29sZUJvZHlUeXBlID0gRGF0YVV0aWwuZ2V0Qm9keVR5cGUodmFsdWUpO1xyXG4gICAgICBpZiAoYm9keVR5cGUgPT09IENvbnNvbGVCb2R5VHlwZS5URVhUKSB0aGlzLnRleHQgPSB2YWx1ZTtcclxuICAgICAgZWxzZSBpZiAoYm9keVR5cGUgPT09IENvbnNvbGVCb2R5VHlwZS5KU09OKSB0aGlzLnRleHQgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XHJcbiAgICAgIGVsc2UgaWYgKGJvZHlUeXBlID09PSBDb25zb2xlQm9keVR5cGUuQkxPQikgdGhpcy5ibG9iID0gdmFsdWU7XHJcbiAgICAgIGVsc2UgaWYgKGJvZHlUeXBlID09PSBDb25zb2xlQm9keVR5cGUuQVJSQVlfQlVGRkVSKSB0aGlzLmFycmF5QnVmZmVyID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxufVxyXG4iLCJcclxuPCEtLVxyXG4gKiBMSUNFTlNFXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXHJcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbi0tPlxyXG5cclxuQGlmIChib2R5KSB7XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgICBAaWYgKHRleHQpIHtcclxuICAgICAgICAgICAge3sgdGV4dCB9fVxyXG4gICAgICAgIH0gQGVsc2UgaWYgKGJsb2IpIHtcclxuICAgICAgICAgICAgPGRsPlxyXG4gICAgICAgICAgICAgICAgPGR0PkJpbmFyeSBkYXRhOjwvZHQ+XHJcbiAgICAgICAgICAgICAgICA8ZGQ+QmxvYjwvZGQ+XHJcbiAgICAgICAgICAgIDwvZGw+XHJcbiAgICAgICAgICAgIDxkbD5cclxuICAgICAgICAgICAgICAgIDxkdD5pemU6PC9kdD5cclxuICAgICAgICAgICAgICAgIDxkZD57eyBibG9iLnNpemUgfX08L2RkPlxyXG4gICAgICAgICAgICA8L2RsPlxyXG4gICAgICAgICAgICA8ZGw+XHJcbiAgICAgICAgICAgICAgICA8ZHQ+dHlwZTo8L2R0PlxyXG4gICAgICAgICAgICAgICAgPGRkPnt7IGJsb2IudHlwZSB9fTwvZGQ+XHJcbiAgICAgICAgICAgIDwvZGw+XHJcbiAgICAgICAgfSBAZWxzZSBpZiAoYXJyYXlCdWZmZXIpIHtcclxuICAgICAgICAgICAgPGRsPlxyXG4gICAgICAgICAgICAgICAgPGR0PkJpbmFyeSBkYXRhOjwvZHQ+XHJcbiAgICAgICAgICAgICAgICA8ZGQ+QXJyYXkgQnVmZmVyPC9kZD5cclxuICAgICAgICAgICAgPC9kbD5cclxuICAgICAgICAgICAgPGRsPlxyXG4gICAgICAgICAgICAgICAgPGR0PmJ5dGUgbGVuZ3RoOjwvZHQ+XHJcbiAgICAgICAgICAgICAgICA8ZGQ+e3sgYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCB9fTwvZGQ+XHJcbiAgICAgICAgICAgIDwvZGw+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZW50ZXItY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPHN0cm9uZz5UaGlzIHJlcXVlc3QgaGFzIG5vIGRhdGEgYXZhaWxhYmxlPC9zdHJvbmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvc2VjdGlvbj5cclxufVxyXG4iXX0=
@@ -0,0 +1,71 @@
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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';
9
+ import { AtxJsonViewerComponent } from '../json-viewer/json-viewer.component';
10
+ import { DataUtil } from '../../../util/data.util';
11
+ import { ConsoleBodyType } from '../../../util/console-body-type';
12
+ import { SafeHtmlPipe } from '../../../../../../pipe';
13
+ import { UrlUtil } from '../../../util/url.util';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@angular/platform-browser";
16
+ const IMG_TYPE = 'image/';
17
+ const SVG_TYPE = 'svg/';
18
+ export class AtxResponsePreviewRendererComponent {
19
+ set data(value) {
20
+ const body = value.body;
21
+ this.revokeObjectURL();
22
+ this.response = value;
23
+ this.json = this.text = this.imgUrl = this.trustUrl = null;
24
+ if (body) {
25
+ const bodyType = DataUtil.getBodyType(body);
26
+ if (bodyType === ConsoleBodyType.TEXT)
27
+ this.text = body;
28
+ else if (bodyType === ConsoleBodyType.JSON)
29
+ this.json = body;
30
+ else if (bodyType === ConsoleBodyType.BLOB) {
31
+ if (body.type.startsWith(IMG_TYPE) ||
32
+ body.type.startsWith(SVG_TYPE)) {
33
+ this.resourceName = UrlUtil.getResourceNameFromPath(value.url);
34
+ const url = URL.createObjectURL(body);
35
+ this.imgUrl = url;
36
+ this.trustUrl = this.sanitizer.bypassSecurityTrustUrl(url);
37
+ }
38
+ }
39
+ }
40
+ this._cdr.detectChanges();
41
+ }
42
+ constructor(_cdr, sanitizer) {
43
+ this._cdr = _cdr;
44
+ this.sanitizer = sanitizer;
45
+ this.json = null;
46
+ this.text = null;
47
+ this.response = null;
48
+ this.imgUrl = null;
49
+ this.trustUrl = null;
50
+ }
51
+ ngOnDestroy() {
52
+ this.revokeObjectURL();
53
+ this.json = this.text = this.imgUrl = this.trustUrl = null;
54
+ }
55
+ revokeObjectURL() {
56
+ if (this.imgUrl)
57
+ URL.revokeObjectURL(this.imgUrl);
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxResponsePreviewRendererComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxResponsePreviewRendererComponent, isStandalone: true, selector: "atx-response-preview-renderer", inputs: { data: "data" }, ngImport: i0, template: "\r\n<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n@if (response) {\r\n @if (text) {\r\n <section class=\"content\" [innerHTML]=\"text | safeHtml \"></section>\r\n } @else if (json) {\r\n <section class=\"content\">\r\n <atx-json-viewer [data]=\"json\"/>\r\n </section>\r\n } @else if (imgUrl) {\r\n <section class=\"content img-preview\">\r\n <div>\r\n <img [src]=\"imgUrl\" (load)=\"revokeObjectURL()\" [alt]=\"resourceName\" [title]=\"resourceName\">\r\n </div>\r\n </section>\r\n } @else {\r\n <section class=\"content center-content\">\r\n <strong>Preview not available</strong>\r\n </section>\r\n }\r\n}\r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}::ng-deep .xdebug-error{font-size:12px!important}.img-preview{text-align:center}.img-preview div{box-shadow:0 4px 10px #000000bf;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUAQMAAAC3R49OAAAABlBMVEX////09PQtDxrOAAAAE0lEQVQI12P4f4CBKMxg/4EYDAAFkR1NiYvv7QAAAABJRU5ErkJggg==);background-image:linear-gradient(45deg,#F0F0F0 25%,transparent 25%),linear-gradient(-45deg,#F0F0F0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#F0F0F0 75%),linear-gradient(-45deg,transparent 75%,#F0F0F0 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px;display:inline-block}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"], dependencies: [{ kind: "component", type: AtxJsonViewerComponent, selector: "atx-json-viewer", inputs: ["data"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxResponsePreviewRendererComponent, decorators: [{
63
+ type: Component,
64
+ args: [{ selector: 'atx-response-preview-renderer', standalone: true, imports: [
65
+ AtxJsonViewerComponent,
66
+ SafeHtmlPipe
67
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n@if (response) {\r\n @if (text) {\r\n <section class=\"content\" [innerHTML]=\"text | safeHtml \"></section>\r\n } @else if (json) {\r\n <section class=\"content\">\r\n <atx-json-viewer [data]=\"json\"/>\r\n </section>\r\n } @else if (imgUrl) {\r\n <section class=\"content img-preview\">\r\n <div>\r\n <img [src]=\"imgUrl\" (load)=\"revokeObjectURL()\" [alt]=\"resourceName\" [title]=\"resourceName\">\r\n </div>\r\n </section>\r\n } @else {\r\n <section class=\"content center-content\">\r\n <strong>Preview not available</strong>\r\n </section>\r\n }\r\n}\r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}::ng-deep .xdebug-error{font-size:12px!important}.img-preview{text-align:center}.img-preview div{box-shadow:0 4px 10px #000000bf;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUAQMAAAC3R49OAAAABlBMVEX////09PQtDxrOAAAAE0lEQVQI12P4f4CBKMxg/4EYDAAFkR1NiYvv7QAAAABJRU5ErkJggg==);background-image:linear-gradient(45deg,#F0F0F0 25%,transparent 25%),linear-gradient(-45deg,#F0F0F0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#F0F0F0 75%),linear-gradient(-45deg,transparent 75%,#F0F0F0 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px;display:inline-block}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
68
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }], propDecorators: { data: [{
69
+ type: Input
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtcHJldmlldy1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwLW1vbml0b3JpbmctY29uc29sZS9jb21wb25lbnQvcmVuZGVyZXIvcmVzcG9uc2UtcHJldmlldy1yZW5kZXJlci9yZXNwb25zZS1wcmV2aWV3LXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL2NvbXBvbmVudC9yZW5kZXJlci9yZXNwb25zZS1wcmV2aWV3LXJlbmRlcmVyL3Jlc3BvbnNlLXByZXZpZXctcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBRWpELE1BQU0sUUFBUSxHQUFXLFFBQVEsQ0FBQztBQUNsQyxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUFhaEMsTUFBTSxPQUFPLG1DQUFtQztJQVU5QyxJQUNXLElBQUksQ0FBRSxLQUF3QjtRQUN2QyxNQUFNLElBQUksR0FBUSxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUMzRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsTUFBTSxRQUFRLEdBQW9CLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0QsSUFBSSxRQUFRLEtBQUssZUFBZSxDQUFDLElBQUk7Z0JBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7aUJBQ25ELElBQUksUUFBUSxLQUFLLGVBQWUsQ0FBQyxJQUFJO2dCQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2lCQUN4RCxJQUFJLFFBQVEsS0FBSyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO29CQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBRSxLQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hFLE1BQU0sR0FBRyxHQUFXLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO29CQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdELENBQUM7WUFDUCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQW9CLElBQXVCLEVBQ3ZCLFNBQXVCO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFoQ2pDLFNBQUksR0FBUSxJQUFJLENBQUM7UUFDakIsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDM0IsYUFBUSxHQUFRLElBQUksQ0FBQztRQUNyQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixhQUFRLEdBQW1CLElBQUksQ0FBQztJQTRCSSxDQUFDO0lBRXhDLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQzdELENBQUM7SUFFUyxlQUFlO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDOzhHQTNDVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyxtSEMvQmhELDA4QkE0QkEscWhFREpJLHNCQUFzQix5RUFDdEIsWUFBWTs7MkZBTUgsbUNBQW1DO2tCQVgvQyxTQUFTOytCQUNFLCtCQUErQixjQUM3QixJQUFJLFdBQ1A7d0JBQ1Asc0JBQXNCO3dCQUN0QixZQUFZO3FCQUNiLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO2lIQWFwQyxJQUFJO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdHhKc29uVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vanNvbi12aWV3ZXIvanNvbi12aWV3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVV0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL2RhdGEudXRpbCc7XHJcbmltcG9ydCB7IENvbnNvbGVCb2R5VHlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWwvY29uc29sZS1ib2R5LXR5cGUnO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9waXBlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgVXJsVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXJsLnV0aWwnO1xyXG5cclxuY29uc3QgSU1HX1RZUEU6IHN0cmluZyA9ICdpbWFnZS8nO1xyXG5jb25zdCBTVkdfVFlQRTogc3RyaW5nID0gJ3N2Zy8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhdHgtcmVzcG9uc2UtcHJldmlldy1yZW5kZXJlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBdHhKc29uVmlld2VyQ29tcG9uZW50LFxyXG4gICAgU2FmZUh0bWxQaXBlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVzcG9uc2UtcHJldmlldy1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Jlc3BvbnNlLXByZXZpZXctcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHhSZXNwb25zZVByZXZpZXdSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHByb3RlY3RlZCBqc29uOiBhbnkgPSBudWxsO1xyXG4gIHByb3RlY3RlZCB0ZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgcmVzcG9uc2U6IGFueSA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIGltZ1VybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIHRydXN0VXJsOiBTYWZlVXJsIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIHJlc291cmNlTmFtZSE6IHN0cmluZztcclxuXHJcbiAgXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGRhdGEgKHZhbHVlOiBIdHRwUmVzcG9uc2U8YW55Pikge1xyXG4gICAgY29uc3QgYm9keTogYW55ID0gdmFsdWUuYm9keTtcclxuICAgIHRoaXMucmV2b2tlT2JqZWN0VVJMKCk7XHJcbiAgICB0aGlzLnJlc3BvbnNlID0gdmFsdWU7XHJcbiAgICB0aGlzLmpzb24gPSB0aGlzLnRleHQgPSB0aGlzLmltZ1VybCA9IHRoaXMudHJ1c3RVcmwgPSBudWxsO1xyXG4gICAgaWYgKGJvZHkpIHtcclxuICAgICAgY29uc3QgYm9keVR5cGU6IENvbnNvbGVCb2R5VHlwZSA9IERhdGFVdGlsLmdldEJvZHlUeXBlKGJvZHkpO1xyXG4gICAgICBpZiAoYm9keVR5cGUgPT09IENvbnNvbGVCb2R5VHlwZS5URVhUKSB0aGlzLnRleHQgPSBib2R5O1xyXG4gICAgICBlbHNlIGlmIChib2R5VHlwZSA9PT0gQ29uc29sZUJvZHlUeXBlLkpTT04pIHRoaXMuanNvbiA9IGJvZHk7XHJcbiAgICAgIGVsc2UgaWYgKGJvZHlUeXBlID09PSBDb25zb2xlQm9keVR5cGUuQkxPQikge1xyXG4gICAgICAgIGlmIChib2R5LnR5cGUuc3RhcnRzV2l0aChJTUdfVFlQRSkgfHxcclxuICAgICAgICBib2R5LnR5cGUuc3RhcnRzV2l0aChTVkdfVFlQRSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlc291cmNlTmFtZSA9IFVybFV0aWwuZ2V0UmVzb3VyY2VOYW1lRnJvbVBhdGgoKHZhbHVlIGFzIGFueSkudXJsKTtcclxuICAgICAgICAgICAgICBjb25zdCB1cmw6IHN0cmluZyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYm9keSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbWdVcmwgPSB1cmw7XHJcbiAgICAgICAgICAgICAgdGhpcy50cnVzdFVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodXJsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJldm9rZU9iamVjdFVSTCgpO1xyXG4gICAgdGhpcy5qc29uID0gdGhpcy50ZXh0ID0gdGhpcy5pbWdVcmwgPSB0aGlzLnRydXN0VXJsID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZXZva2VPYmplY3RVUkwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbWdVcmwpIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5pbWdVcmwpO1xyXG4gIH1cclxufVxyXG4iLCJcclxuPCEtLVxyXG4gKiBMSUNFTlNFXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXHJcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbi0tPlxyXG5cclxuQGlmIChyZXNwb25zZSkge1xyXG4gICAgQGlmICh0ZXh0KSB7XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb250ZW50XCIgW2lubmVySFRNTF09XCJ0ZXh0IHwgc2FmZUh0bWwgXCI+PC9zZWN0aW9uPlxyXG4gICAgfSBAZWxzZSBpZiAoanNvbikge1xyXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICA8YXR4LWpzb24tdmlld2VyIFtkYXRhXT1cImpzb25cIi8+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgfSBAZWxzZSBpZiAoaW1nVXJsKSB7XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb250ZW50IGltZy1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWdVcmxcIiAobG9hZCk9XCJyZXZva2VPYmplY3RVUkwoKVwiIFthbHRdPVwicmVzb3VyY2VOYW1lXCIgW3RpdGxlXT1cInJlc291cmNlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb250ZW50IGNlbnRlci1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxzdHJvbmc+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zdHJvbmc+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,55 @@
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 { Component, Input } from '@angular/core';
9
+ import { DatePipe, NgStyle } from '@angular/common';
10
+ import * as i0 from "@angular/core";
11
+ export class AtxTimingRendererComponent {
12
+ constructor() {
13
+ this.hasData = false;
14
+ this.start = NaN;
15
+ this.downloadStart = NaN;
16
+ this.downloadLength = NaN;
17
+ this.duration = 0;
18
+ this.error = false;
19
+ }
20
+ set data(value) {
21
+ if (value) {
22
+ const metadata = value.metadata;
23
+ const requestMetadata = metadata.requestMetadata;
24
+ const duration = requestMetadata.duration;
25
+ const stalled = requestMetadata.stalled;
26
+ this.error = metadata.response.status >= 400;
27
+ this.hasData = true;
28
+ this.start = requestMetadata.start;
29
+ this.duration = duration;
30
+ if (duration === 0) {
31
+ this.downloadStart = this.downloadLength = 0;
32
+ return;
33
+ }
34
+ const downloadLength = Math.round(100 * (duration - stalled) / duration);
35
+ this.downloadStart = 100 - downloadLength;
36
+ this.downloadLength = downloadLength;
37
+ return;
38
+ }
39
+ this.hasData = this.error = false;
40
+ this.start = this.downloadStart = this.downloadLength = NaN;
41
+ this.duration = 0;
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxTimingRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxTimingRendererComponent, isStandalone: true, selector: "atx-timing-renderer", inputs: { data: "data" }, ngImport: i0, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n<section class=\"content\">\r\n@if (hasData) {\r\n <dl>\r\n <dt>Connection start</dt>\r\n <dd>{{ start | date: 'short' }}</dd>\r\n </dl>\r\n <dl>\r\n <dt>Request/Response</dt>\r\n <dd class=\"timeline\">\r\n <div>\r\n <div [attr.style]=\"'width:' + downloadStart + '%'\">\r\n stalled\r\n <div class=\"stalled\"></div>\r\n <div class=\"time\">{{ downloadStart }} ms</div>\r\n </div>\r\n <div [attr.style]=\"'width:' + downloadLength + '%;margin-left:' + downloadStart + '%'\">\r\n download\r\n <div class=\"download\" [class.error]=\"error\"></div>\r\n <div class=\"time\">{{ duration }} ms</div>\r\n </div>\r\n </div>\r\n </dd>\r\n </dl>\r\n} \r\n</section>\r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}.timeline{width:100%;margin-top:6px}.download,.stalled{width:100%;height:10px}.stalled{background-color:var(--dark-gray)}.time{text-align:right;padding-right:4px}.download{background-color:#00bfff}.error{background-color:red}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"], dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }] }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxTimingRendererComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'atx-timing-renderer', standalone: true, imports: [
49
+ DatePipe,
50
+ NgStyle
51
+ ], template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n<section class=\"content\">\r\n@if (hasData) {\r\n <dl>\r\n <dt>Connection start</dt>\r\n <dd>{{ start | date: 'short' }}</dd>\r\n </dl>\r\n <dl>\r\n <dt>Request/Response</dt>\r\n <dd class=\"timeline\">\r\n <div>\r\n <div [attr.style]=\"'width:' + downloadStart + '%'\">\r\n stalled\r\n <div class=\"stalled\"></div>\r\n <div class=\"time\">{{ downloadStart }} ms</div>\r\n </div>\r\n <div [attr.style]=\"'width:' + downloadLength + '%;margin-left:' + downloadStart + '%'\">\r\n download\r\n <div class=\"download\" [class.error]=\"error\"></div>\r\n <div class=\"time\">{{ duration }} ms</div>\r\n </div>\r\n </div>\r\n </dd>\r\n </dl>\r\n} \r\n</section>\r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}.timeline{width:100%;margin-top:6px}.download,.stalled{width:100%;height:10px}.stalled{background-color:var(--dark-gray)}.time{text-align:right;padding-right:4px}.download{background-color:#00bfff}.error{background-color:red}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
52
+ }], propDecorators: { data: [{
53
+ type: Input
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltaW5nLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL2NvbXBvbmVudC9yZW5kZXJlci90aW1pbmctcmVuZGVyZXIvdGltaW5nLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL2NvbXBvbmVudC9yZW5kZXJlci90aW1pbmctcmVuZGVyZXIvdGltaW5nLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBWXBELE1BQU0sT0FBTywwQkFBMEI7SUFWdkM7UUFZWSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFVBQUssR0FBVyxHQUFHLENBQUM7UUFDcEIsa0JBQWEsR0FBVyxHQUFHLENBQUM7UUFDNUIsbUJBQWMsR0FBVyxHQUFHLENBQUM7UUFDN0IsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixVQUFLLEdBQVksS0FBSyxDQUFDO0tBMEJsQztJQXhCQyxJQUNXLElBQUksQ0FBQyxLQUFVO1FBQ3hCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLFFBQVEsR0FBUSxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3JDLE1BQU0sZUFBZSxHQUE0QixRQUFRLENBQUMsZUFBZSxDQUFDO1lBQzFFLE1BQU0sUUFBUSxHQUFXLGVBQWUsQ0FBQyxRQUFRLENBQUM7WUFDbEQsTUFBTSxPQUFPLEdBQVcsZUFBZSxDQUFDLE9BQU8sQ0FBQztZQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQztZQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDekIsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7Z0JBQzdDLE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxjQUFjLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsY0FBYyxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7UUFDNUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQzs4R0FoQ1UsMEJBQTBCO2tHQUExQiwwQkFBMEIseUdDdEJ2QyxxcENBaUNBLGlvRERqQkksUUFBUTs7MkZBTUMsMEJBQTBCO2tCQVZ0QyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1A7d0JBQ1AsUUFBUTt3QkFDUixPQUFPO3FCQUNSOzhCQWNVLElBQUk7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cE1vY2tSZXF1ZXN0TWV0YWRhdGEsIExvZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL21vZGVsJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhdHgtdGltaW5nLXJlbmRlcmVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIERhdGVQaXBlLFxyXG4gICAgTmdTdHlsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWluZy1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RpbWluZy1yZW5kZXJlci5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEF0eFRpbWluZ1JlbmRlcmVyQ29tcG9uZW50IHtcclxuXHJcbiAgcHJvdGVjdGVkIGhhc0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgc3RhcnQ6IG51bWJlciA9IE5hTjtcclxuICBwcm90ZWN0ZWQgZG93bmxvYWRTdGFydDogbnVtYmVyID0gTmFOO1xyXG4gIHByb3RlY3RlZCBkb3dubG9hZExlbmd0aDogbnVtYmVyID0gTmFOO1xyXG4gIHByb3RlY3RlZCBkdXJhdGlvbjogbnVtYmVyID0gMDtcclxuICBwcm90ZWN0ZWQgZXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGRhdGEodmFsdWU6IExvZykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IG1ldGFkYXRhOiBhbnkgPSB2YWx1ZS5tZXRhZGF0YTtcclxuICAgICAgY29uc3QgcmVxdWVzdE1ldGFkYXRhOiBIdHRwTW9ja1JlcXVlc3RNZXRhZGF0YSA9IG1ldGFkYXRhLnJlcXVlc3RNZXRhZGF0YTtcclxuICAgICAgY29uc3QgZHVyYXRpb246IG51bWJlciA9IHJlcXVlc3RNZXRhZGF0YS5kdXJhdGlvbjtcclxuICAgICAgY29uc3Qgc3RhbGxlZDogbnVtYmVyID0gcmVxdWVzdE1ldGFkYXRhLnN0YWxsZWQ7XHJcbiAgICAgIHRoaXMuZXJyb3IgPSBtZXRhZGF0YS5yZXNwb25zZS5zdGF0dXMgPj0gNDAwO1xyXG4gICAgICB0aGlzLmhhc0RhdGEgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0YXJ0ID0gcmVxdWVzdE1ldGFkYXRhLnN0YXJ0O1xyXG4gICAgICB0aGlzLmR1cmF0aW9uID0gZHVyYXRpb247XHJcbiAgICAgIGlmIChkdXJhdGlvbiA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWRTdGFydCA9IHRoaXMuZG93bmxvYWRMZW5ndGggPSAwO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkb3dubG9hZExlbmd0aDogbnVtYmVyID0gTWF0aC5yb3VuZCgxMDAgKiAoZHVyYXRpb24gLSBzdGFsbGVkKSAvIGR1cmF0aW9uKTtcclxuICAgICAgdGhpcy5kb3dubG9hZFN0YXJ0ID0gMTAwIC0gZG93bmxvYWRMZW5ndGg7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRMZW5ndGggPSBkb3dubG9hZExlbmd0aDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5oYXNEYXRhID0gdGhpcy5lcnJvciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zdGFydCA9IHRoaXMuZG93bmxvYWRTdGFydCA9IHRoaXMuZG93bmxvYWRMZW5ndGggPSBOYU47XHJcbiAgICB0aGlzLmR1cmF0aW9uID0gMDtcclxuICB9XHJcbn1cclxuIiwiPCEtLVxyXG4gKiBMSUNFTlNFXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXHJcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbi0tPlxyXG5cclxuPHNlY3Rpb24gY2xhc3M9XCJjb250ZW50XCI+XHJcbkBpZiAoaGFzRGF0YSkge1xyXG4gICAgPGRsPlxyXG4gICAgICAgIDxkdD5Db25uZWN0aW9uIHN0YXJ0PC9kdD5cclxuICAgICAgICA8ZGQ+e3sgc3RhcnQgfCBkYXRlOiAnc2hvcnQnIH19PC9kZD5cclxuICAgIDwvZGw+XHJcbiAgICA8ZGw+XHJcbiAgICAgICAgPGR0PlJlcXVlc3QvUmVzcG9uc2U8L2R0PlxyXG4gICAgICAgIDxkZCBjbGFzcz1cInRpbWVsaW5lXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFthdHRyLnN0eWxlXT1cIid3aWR0aDonICsgZG93bmxvYWRTdGFydCArICclJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN0YWxsZWRcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhbGxlZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lXCI+e3sgZG93bmxvYWRTdGFydCB9fSBtczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFthdHRyLnN0eWxlXT1cIid3aWR0aDonICsgZG93bmxvYWRMZW5ndGggKyAnJTttYXJnaW4tbGVmdDonICsgZG93bmxvYWRTdGFydCArICclJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIGRvd25sb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvd25sb2FkXCIgW2NsYXNzLmVycm9yXT1cImVycm9yXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj57eyBkdXJhdGlvbiB9fSBtczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGQ+XHJcbiAgICA8L2RsPlxyXG59IFxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
@@ -0,0 +1,67 @@
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 { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
9
+ import { NgStyle } from '@angular/common';
10
+ import { AtxJsonViewerComponent } from '../renderer/json-viewer/json-viewer.component';
11
+ import { AtxPayloadRendererComponent } from '../renderer/payload-renderer/payload-renderer.component';
12
+ import { AtxTimingRendererComponent } from '../renderer/timing-renderer/timing-renderer.component';
13
+ import { AtxResponsePreviewRendererComponent } from '../renderer/response-preview-renderer/response-preview-renderer.component';
14
+ import { AtxResponseBodyRendererComponent } from '../renderer/response-body-renderer/response-body-renderer.component';
15
+ import * as i0 from "@angular/core";
16
+ export class AtxRequestDetailsComponent {
17
+ set log(value) {
18
+ this.currLog = value;
19
+ if (value) {
20
+ const metadata = value.metadata;
21
+ const request = metadata.request;
22
+ this.request = request;
23
+ this.response = metadata.response;
24
+ this.requestMetadata = metadata.requestMetadata;
25
+ this.checkPayload(request);
26
+ this._cdr.detectChanges();
27
+ return;
28
+ }
29
+ this.hasPayload = false;
30
+ this.request = null;
31
+ this.response = null;
32
+ this.requestMetadata = null;
33
+ this._cdr.detectChanges();
34
+ }
35
+ constructor(_cdr) {
36
+ this._cdr = _cdr;
37
+ this.close = new EventEmitter(true);
38
+ this.currLog = null;
39
+ this.hasPayload = false;
40
+ this.currSection = 0;
41
+ }
42
+ changeSection(idx) {
43
+ this.currSection = idx;
44
+ }
45
+ checkPayload(request) {
46
+ const hasBody = (request.body !== null && request !== undefined);
47
+ this.hasPayload = (request.params.keys().length > 0 || hasBody);
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxRequestDetailsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxRequestDetailsComponent, isStandalone: true, selector: "atx-monitoring-console-details", inputs: { log: "log" }, outputs: { close: "close" }, ngImport: i0, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n@if (currLog) {\r\n <header>\r\n <menu>\r\n <li role=\"button\" (click)=\"changeSection(0)\"><span [class.selected]=\"currSection === 0\">Headers</span></li>\r\n @if (hasPayload) {\r\n <li role=\"button\" (click)=\"changeSection(1)\"><span [class.selected]=\"currSection === 1\">Payload</span></li>\r\n }\r\n <li role=\"button\" (click)=\"changeSection(2)\"><span [class.selected]=\"currSection === 2\">Preview</span></li>\r\n <li role=\"button\" (click)=\"changeSection(3)\"><span [class.selected]=\"currSection === 3\">Response</span></li>\r\n <li role=\"button\" (click)=\"changeSection(4)\"><span [class.selected]=\"currSection === 4\">Timing</span></li>\r\n <div role=\"button\" (click)=\"close.emit()\" title=\"Close\" class=\"header-btn\">\r\n <svg width=\"20\" height=\"20\" fill=\"currentColor\" viewBox=\"0 0 16 16\">\r\n <path d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708\"/>\r\n </svg>\r\n </div>\r\n </menu>\r\n </header>\r\n <main>\r\n @if (currSection === 0) {\r\n <details open>\r\n <summary>General</summary>\r\n <section>\r\n <dl>\r\n <dt>Request URL:</dt>\r\n <dd>{{ request.url }}</dd>\r\n </dl>\r\n <dl>\r\n <dt>Request Method:</dt>\r\n <dd>{{ request.method }}</dd>\r\n </dl>\r\n <dl>\r\n <dt>Status Code:</dt>\r\n <dd>\r\n @if (response) {\r\n <svg [ngStyle]=\"{ fill: response.status < 400 ? 'green' : 'red' }\" \r\n width=\"13\" height=\"13\" viewBox=\"0 0 16 16\">\r\n <circle cx=\"8\" cy=\"8\" r=\"8\"/>\r\n </svg>\r\n {{ response.status }} {{ response.statusText }}\r\n } @else {\r\n <svg fill=\"orange\" width=\"13\" height=\"13\" viewBox=\"0 0 16 16\">\r\n <circle cx=\"8\" cy=\"8\" r=\"8\"/>\r\n </svg>\r\n prefetch\r\n }\r\n </dd>\r\n </dl>\r\n </section>\r\n </details>\r\n <details>\r\n <summary>Response Headers</summary>\r\n <section>\r\n @if (response) {\r\n @for( item of response.headers.keys(); track item) {\r\n <dl>\r\n <dt>{{ item }}</dt>\r\n <dd>{{ response.headers.get(item) }}</dd>\r\n </dl>\r\n \r\n }\r\n }\r\n </section>\r\n </details>\r\n <details>\r\n <summary>Request Headers</summary>\r\n <section>\r\n @for( item of request.headers.keys(); track item) {\r\n <dl>\r\n <dt>{{ item }}</dt>\r\n <dd>{{ request.headers.get(item) }}</dd>\r\n </dl>\r\n }\r\n </section>\r\n </details>\r\n } @else if (currSection === 1) {\r\n <atx-payload-renderer [log]=\"currLog\"/>\r\n } @else if (currSection === 2 && response) {\r\n <atx-response-preview-renderer [data]=\"response\"/>\r\n } @else if (currSection === 3 && response) {\r\n <section class=\"raw-response\">\r\n <atx-response-body-renderer [data]=\"response.body\"/>\r\n </section>\r\n } @else if (currSection === 4 && response) {\r\n <atx-timing-renderer [data]=\"currLog\"/>\r\n }\r\n </main>\r\n}\r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}:host{position:relative;width:100%;height:100%}header{padding:0;margin:0 0 6px;-webkit-user-select:none;user-select:none;position:absolute;width:100%}header menu{background-color:var(--background-color);border:1px solid var(--border-color)}header menu li{padding:0 0 0 6px}header menu .selected{border-bottom:2px solid var(--border-color)}main{position:absolute;width:100%;top:36px;bottom:0;overflow-y:auto}details summary{padding:2px 6px;background-color:var(--background-color);border:1px solid var(--border-color);-webkit-user-select:none;user-select:none;margin-bottom:6px}details section{padding:4px 6px}details section dl{display:flex;gap:10px}details section dl,details section dt,details section dd{padding:0;margin:0}details section dt{min-width:200px}.status-indicator{padding:0;margin:0}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AtxPayloadRendererComponent, selector: "atx-payload-renderer", inputs: ["log"] }, { kind: "component", type: AtxTimingRendererComponent, selector: "atx-timing-renderer", inputs: ["data"] }, { kind: "component", type: AtxResponsePreviewRendererComponent, selector: "atx-response-preview-renderer", inputs: ["data"] }, { kind: "component", type: AtxResponseBodyRendererComponent, selector: "atx-response-body-renderer", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxRequestDetailsComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'atx-monitoring-console-details', standalone: true, imports: [
55
+ NgStyle,
56
+ AtxJsonViewerComponent,
57
+ AtxPayloadRendererComponent,
58
+ AtxTimingRendererComponent,
59
+ AtxResponsePreviewRendererComponent,
60
+ AtxResponseBodyRendererComponent
61
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n@if (currLog) {\r\n <header>\r\n <menu>\r\n <li role=\"button\" (click)=\"changeSection(0)\"><span [class.selected]=\"currSection === 0\">Headers</span></li>\r\n @if (hasPayload) {\r\n <li role=\"button\" (click)=\"changeSection(1)\"><span [class.selected]=\"currSection === 1\">Payload</span></li>\r\n }\r\n <li role=\"button\" (click)=\"changeSection(2)\"><span [class.selected]=\"currSection === 2\">Preview</span></li>\r\n <li role=\"button\" (click)=\"changeSection(3)\"><span [class.selected]=\"currSection === 3\">Response</span></li>\r\n <li role=\"button\" (click)=\"changeSection(4)\"><span [class.selected]=\"currSection === 4\">Timing</span></li>\r\n <div role=\"button\" (click)=\"close.emit()\" title=\"Close\" class=\"header-btn\">\r\n <svg width=\"20\" height=\"20\" fill=\"currentColor\" viewBox=\"0 0 16 16\">\r\n <path d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708\"/>\r\n </svg>\r\n </div>\r\n </menu>\r\n </header>\r\n <main>\r\n @if (currSection === 0) {\r\n <details open>\r\n <summary>General</summary>\r\n <section>\r\n <dl>\r\n <dt>Request URL:</dt>\r\n <dd>{{ request.url }}</dd>\r\n </dl>\r\n <dl>\r\n <dt>Request Method:</dt>\r\n <dd>{{ request.method }}</dd>\r\n </dl>\r\n <dl>\r\n <dt>Status Code:</dt>\r\n <dd>\r\n @if (response) {\r\n <svg [ngStyle]=\"{ fill: response.status < 400 ? 'green' : 'red' }\" \r\n width=\"13\" height=\"13\" viewBox=\"0 0 16 16\">\r\n <circle cx=\"8\" cy=\"8\" r=\"8\"/>\r\n </svg>\r\n {{ response.status }} {{ response.statusText }}\r\n } @else {\r\n <svg fill=\"orange\" width=\"13\" height=\"13\" viewBox=\"0 0 16 16\">\r\n <circle cx=\"8\" cy=\"8\" r=\"8\"/>\r\n </svg>\r\n prefetch\r\n }\r\n </dd>\r\n </dl>\r\n </section>\r\n </details>\r\n <details>\r\n <summary>Response Headers</summary>\r\n <section>\r\n @if (response) {\r\n @for( item of response.headers.keys(); track item) {\r\n <dl>\r\n <dt>{{ item }}</dt>\r\n <dd>{{ response.headers.get(item) }}</dd>\r\n </dl>\r\n \r\n }\r\n }\r\n </section>\r\n </details>\r\n <details>\r\n <summary>Request Headers</summary>\r\n <section>\r\n @for( item of request.headers.keys(); track item) {\r\n <dl>\r\n <dt>{{ item }}</dt>\r\n <dd>{{ request.headers.get(item) }}</dd>\r\n </dl>\r\n }\r\n </section>\r\n </details>\r\n } @else if (currSection === 1) {\r\n <atx-payload-renderer [log]=\"currLog\"/>\r\n } @else if (currSection === 2 && response) {\r\n <atx-response-preview-renderer [data]=\"response\"/>\r\n } @else if (currSection === 3 && response) {\r\n <section class=\"raw-response\">\r\n <atx-response-body-renderer [data]=\"response.body\"/>\r\n </section>\r\n } @else if (currSection === 4 && response) {\r\n <atx-timing-renderer [data]=\"currLog\"/>\r\n }\r\n </main>\r\n}\r\n", styles: [":host{font-family:Verdana,Geneva,Tahoma,sans-serif;font-size:13px;--border-color: lightblue;--background-color: aliceblue;--selected-color: #d9eeff;--selected-error-color: lavenderblush;--light-gray: whitesmoke;--dark-gray: gainsboro;color:#000;background-color:#fff;display:block}menu{padding:0;margin:0;display:flex;align-items:center;gap:6px;list-style:none}table{border-collapse:collapse}th{padding:0 0 0 6px;background-color:var(--background-color);border-bottom:1px solid var(--border-color);position:sticky;top:0}th:not(:last-child){border-right:1px solid var(--border-color)}td{padding:2px 6px;vertical-align:top}tr:nth-child(2n):not(.selected-row){background-color:var(--background-color)}.error-row{color:red}.selected-row{background-color:var(--selected-color)}.error-row.selected-row{background-color:var(--selected-error-color)}tr:hover{background-color:var(--light-gray)}.header-btn{padding:4px;margin-left:auto}.header-btn:hover{background-color:var(--selected-color)}.menu-separator{width:0;height:16px;border-right:2px solid var(--dark-gray)}.content{padding:4px 6px}.center-content{display:flex;justify-content:center}:host{position:relative;width:100%;height:100%}header{padding:0;margin:0 0 6px;-webkit-user-select:none;user-select:none;position:absolute;width:100%}header menu{background-color:var(--background-color);border:1px solid var(--border-color)}header menu li{padding:0 0 0 6px}header menu .selected{border-bottom:2px solid var(--border-color)}main{position:absolute;width:100%;top:36px;bottom:0;overflow-y:auto}details summary{padding:2px 6px;background-color:var(--background-color);border:1px solid var(--border-color);-webkit-user-select:none;user-select:none;margin-bottom:6px}details section{padding:4px 6px}details section dl{display:flex;gap:10px}details section dl,details section dt,details section dd{padding:0;margin:0}details section dt{min-width:200px}.status-indicator{padding:0;margin:0}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
62
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { close: [{
63
+ type: Output
64
+ }], log: [{
65
+ type: Input
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL2NvbXBvbmVudC9yZXF1ZXN0LWRldGFpbHMvcmVxdWVzdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL2NvbXBvbmVudC9yZXF1ZXN0LWRldGFpbHMvcmVxdWVzdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQzs7QUFpQnZILE1BQU0sT0FBTywwQkFBMEI7SUFXckMsSUFDVyxHQUFHLENBQUMsS0FBaUI7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7UUFDcEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sUUFBUSxHQUFRLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQVEsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1lBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBVyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBVyxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBVyxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUlELFlBQW9CLElBQXVCO1FBQXZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBOUIzQixVQUFLLEdBQXVCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpELFlBQU8sR0FBZSxJQUFJLENBQUM7UUFDM0IsZUFBVSxHQUFZLEtBQUssQ0FBQztRQXlCNUIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7SUFFWSxDQUFDO0lBRXJDLGFBQWEsQ0FBQyxHQUFXO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBWTtRQUMvQixNQUFNLE9BQU8sR0FBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBMUNVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLCtJQ2pDdkMsZ2hKQStGQSxtc0VEekVJLE9BQU8sMkVBRVAsMkJBQTJCLGtGQUMzQiwwQkFBMEIsa0ZBQzFCLG1DQUFtQyw0RkFDbkMsZ0NBQWdDOzsyRkFNdkIsMEJBQTBCO2tCQWZ0QyxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQixtQ0FBbUM7d0JBQ25DLGdDQUFnQztxQkFDakMsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU07c0ZBSy9CLEtBQUs7c0JBRHBCLE1BQU07Z0JBVUksR0FBRztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwTW9ja1JlcXVlc3RNZXRhZGF0YSwgTG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWwnO1xyXG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQXR4SnNvblZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL3JlbmRlcmVyL2pzb24tdmlld2VyL2pzb24tdmlld2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF0eFBheWxvYWRSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL3JlbmRlcmVyL3BheWxvYWQtcmVuZGVyZXIvcGF5bG9hZC1yZW5kZXJlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHhUaW1pbmdSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL3JlbmRlcmVyL3RpbWluZy1yZW5kZXJlci90aW1pbmctcmVuZGVyZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR4UmVzcG9uc2VQcmV2aWV3UmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9yZW5kZXJlci9yZXNwb25zZS1wcmV2aWV3LXJlbmRlcmVyL3Jlc3BvbnNlLXByZXZpZXctcmVuZGVyZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR4UmVzcG9uc2VCb2R5UmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9yZW5kZXJlci9yZXNwb25zZS1ib2R5LXJlbmRlcmVyL3Jlc3BvbnNlLWJvZHktcmVuZGVyZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXR4LW1vbml0b3JpbmctY29uc29sZS1kZXRhaWxzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nU3R5bGUsXHJcbiAgICBBdHhKc29uVmlld2VyQ29tcG9uZW50LFxyXG4gICAgQXR4UGF5bG9hZFJlbmRlcmVyQ29tcG9uZW50LFxyXG4gICAgQXR4VGltaW5nUmVuZGVyZXJDb21wb25lbnQsXHJcbiAgICBBdHhSZXNwb25zZVByZXZpZXdSZW5kZXJlckNvbXBvbmVudCxcclxuICAgIEF0eFJlc3BvbnNlQm9keVJlbmRlcmVyQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVxdWVzdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmVxdWVzdC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR4UmVxdWVzdERldGFpbHNDb21wb25lbnQge1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgY2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIodHJ1ZSk7XHJcblxyXG4gIHByb3RlY3RlZCBjdXJyTG9nOiBMb2cgfCBudWxsID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgaGFzUGF5bG9hZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCByZXF1ZXN0ITogSHR0cFJlcXVlc3Q8YW55PjtcclxuICBwcm90ZWN0ZWQgcmVzcG9uc2UhOiBIdHRwUmVzcG9uc2U8YW55PjtcclxuICBwcm90ZWN0ZWQgcmVxdWVzdE1ldGFkYXRhITogSHR0cE1vY2tSZXF1ZXN0TWV0YWRhdGE7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBsb2codmFsdWU6IExvZyB8IG51bGwpIHtcclxuICAgIHRoaXMuY3VyckxvZyA9IHZhbHVlXHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgY29uc3QgbWV0YWRhdGE6IGFueSA9IHZhbHVlLm1ldGFkYXRhOyBcclxuICAgICAgY29uc3QgcmVxdWVzdDogYW55ID0gbWV0YWRhdGEucmVxdWVzdDsgXHJcbiAgICAgIHRoaXMucmVxdWVzdCA9IHJlcXVlc3Q7XHJcbiAgICAgIHRoaXMucmVzcG9uc2UgPSBtZXRhZGF0YS5yZXNwb25zZTtcclxuICAgICAgdGhpcy5yZXF1ZXN0TWV0YWRhdGEgPSBtZXRhZGF0YS5yZXF1ZXN0TWV0YWRhdGE7XHJcbiAgICAgIHRoaXMuY2hlY2tQYXlsb2FkKHJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmhhc1BheWxvYWQgPSBmYWxzZTtcclxuICAgIHRoaXMucmVxdWVzdCA9IG51bGwgYXMgYW55O1xyXG4gICAgdGhpcy5yZXNwb25zZSA9IG51bGwgYXMgYW55O1xyXG4gICAgdGhpcy5yZXF1ZXN0TWV0YWRhdGEgPSBudWxsIGFzIGFueTtcclxuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3VyclNlY3Rpb246IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIHByb3RlY3RlZCBjaGFuZ2VTZWN0aW9uKGlkeDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJTZWN0aW9uID0gaWR4O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1BheWxvYWQocmVxdWVzdDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBoYXNCb2R5OiBib29sZWFuID0gKHJlcXVlc3QuYm9keSAhPT0gbnVsbCAmJiByZXF1ZXN0ICE9PSB1bmRlZmluZWQpOyBcclxuICAgIHRoaXMuaGFzUGF5bG9hZCA9IChyZXF1ZXN0LnBhcmFtcy5rZXlzKCkubGVuZ3RoID4gMCB8fCBoYXNCb2R5KTtcclxuICB9XHJcbn1cclxuIiwiPCEtLVxyXG4gKiBMSUNFTlNFXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXHJcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbi0tPlxyXG5cclxuQGlmIChjdXJyTG9nKSB7XHJcbiAgICA8aGVhZGVyPlxyXG4gICAgICAgIDxtZW51PlxyXG4gICAgICAgICAgICA8bGkgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJjaGFuZ2VTZWN0aW9uKDApXCI+PHNwYW4gW2NsYXNzLnNlbGVjdGVkXT1cImN1cnJTZWN0aW9uID09PSAwXCI+SGVhZGVyczwvc3Bhbj48L2xpPlxyXG4gICAgICAgICAgICBAaWYgKGhhc1BheWxvYWQpIHtcclxuICAgICAgICAgICAgICAgIDxsaSByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNoYW5nZVNlY3Rpb24oMSlcIj48c3BhbiBbY2xhc3Muc2VsZWN0ZWRdPVwiY3VyclNlY3Rpb24gPT09IDFcIj5QYXlsb2FkPC9zcGFuPjwvbGk+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGxpIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2hhbmdlU2VjdGlvbigyKVwiPjxzcGFuIFtjbGFzcy5zZWxlY3RlZF09XCJjdXJyU2VjdGlvbiA9PT0gMlwiPlByZXZpZXc8L3NwYW4+PC9saT5cclxuICAgICAgICAgICAgPGxpIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2hhbmdlU2VjdGlvbigzKVwiPjxzcGFuIFtjbGFzcy5zZWxlY3RlZF09XCJjdXJyU2VjdGlvbiA9PT0gM1wiPlJlc3BvbnNlPC9zcGFuPjwvbGk+XHJcbiAgICAgICAgICAgIDxsaSByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNoYW5nZVNlY3Rpb24oNClcIj48c3BhbiBbY2xhc3Muc2VsZWN0ZWRdPVwiY3VyclNlY3Rpb24gPT09IDRcIj5UaW1pbmc8L3NwYW4+PC9saT5cclxuICAgICAgICAgICAgPGRpdiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlLmVtaXQoKVwiIHRpdGxlPVwiQ2xvc2VcIiBjbGFzcz1cImhlYWRlci1idG5cIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNy4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDIuNjQ3IDIuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtMi42NDYgMi42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA0LjY0NiA1LjM1NGEuNS41IDAgMCAxIDAtLjcwOFwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21lbnU+XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxtYWluPlxyXG4gICAgICAgIEBpZiAoY3VyclNlY3Rpb24gPT09IDApIHtcclxuICAgICAgICAgICAgPGRldGFpbHMgb3Blbj5cclxuICAgICAgICAgICAgICAgIDxzdW1tYXJ5PkdlbmVyYWw8L3N1bW1hcnk+XHJcbiAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5SZXF1ZXN0IFVSTDo8L2R0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+e3sgcmVxdWVzdC51cmwgfX08L2RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+UmVxdWVzdCBNZXRob2Q6PC9kdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRkPnt7IHJlcXVlc3QubWV0aG9kIH19PC9kZD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGR0PlN0YXR1cyBDb2RlOjwvZHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIFtuZ1N0eWxlXT1cInsgZmlsbDogcmVzcG9uc2Uuc3RhdHVzIDwgNDAwID8gJ2dyZWVuJyA6ICdyZWQnIH1cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxM1wiIGhlaWdodD1cIjEzXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCI4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJlc3BvbnNlLnN0YXR1cyB9fSB7eyByZXNwb25zZS5zdGF0dXNUZXh0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGZpbGw9XCJvcmFuZ2VcIiB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmV0Y2hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RsPlxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2RldGFpbHM+XHJcbiAgICAgICAgICAgIDxkZXRhaWxzPlxyXG4gICAgICAgICAgICAgICAgPHN1bW1hcnk+UmVzcG9uc2UgSGVhZGVyczwvc3VtbWFyeT5cclxuICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciggaXRlbSBvZiByZXNwb25zZS5oZWFkZXJzLmtleXMoKTsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdD57eyBpdGVtIH19PC9kdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+e3sgcmVzcG9uc2UuaGVhZGVycy5nZXQoaXRlbSkgfX08L2RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2RldGFpbHM+XHJcbiAgICAgICAgICAgIDxkZXRhaWxzPlxyXG4gICAgICAgICAgICAgICAgPHN1bW1hcnk+UmVxdWVzdCBIZWFkZXJzPC9zdW1tYXJ5PlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciggaXRlbSBvZiByZXF1ZXN0LmhlYWRlcnMua2V5cygpOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdD57eyBpdGVtIH19PC9kdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZD57eyByZXF1ZXN0LmhlYWRlcnMuZ2V0KGl0ZW0pIH19PC9kZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGV0YWlscz5cclxuICAgICAgICB9IEBlbHNlIGlmIChjdXJyU2VjdGlvbiA9PT0gMSkge1xyXG4gICAgICAgICAgICA8YXR4LXBheWxvYWQtcmVuZGVyZXIgW2xvZ109XCJjdXJyTG9nXCIvPlxyXG4gICAgICAgIH0gQGVsc2UgaWYgKGN1cnJTZWN0aW9uID09PSAyICYmIHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIDxhdHgtcmVzcG9uc2UtcHJldmlldy1yZW5kZXJlciBbZGF0YV09XCJyZXNwb25zZVwiLz5cclxuICAgICAgICB9IEBlbHNlIGlmIChjdXJyU2VjdGlvbiA9PT0gMyAmJiByZXNwb25zZSkge1xyXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInJhdy1yZXNwb25zZVwiPlxyXG4gICAgICAgICAgICAgICAgPGF0eC1yZXNwb25zZS1ib2R5LXJlbmRlcmVyIFtkYXRhXT1cInJlc3BvbnNlLmJvZHlcIi8+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICB9IEBlbHNlIGlmIChjdXJyU2VjdGlvbiA9PT0gNCAmJiByZXNwb25zZSkge1xyXG4gICAgICAgICAgICA8YXR4LXRpbWluZy1yZW5kZXJlciBbZGF0YV09XCJjdXJyTG9nXCIvPlxyXG4gICAgICAgIH1cclxuICAgIDwvbWFpbj5cclxufVxyXG4iXX0=
@@ -0,0 +1,52 @@
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 } from "@angular/core";
9
+ import { LogLevel } from "../../../../model";
10
+ /**
11
+ * An implementation of the `LogConnector` class that sends logs to the HTTP
12
+ * mocking console component.
13
+ */
14
+ export class HttpMonitoringConsoleLogConnector {
15
+ constructor() {
16
+ /**
17
+ *
18
+ */
19
+ this.logs = [];
20
+ this.change = new EventEmitter(true);
21
+ }
22
+ /**
23
+ * @inheritdoc
24
+ */
25
+ destroy() { }
26
+ /**
27
+ * @inheritdoc
28
+ */
29
+ init(logList) {
30
+ this.logs.push(...logList);
31
+ }
32
+ /**
33
+ * @inheritdoc
34
+ */
35
+ sendLog(log) {
36
+ const level = log.level;
37
+ if (level === LogLevel.INFO || LogLevel.ERROR)
38
+ this.logs.push(log);
39
+ this.change.emit(log);
40
+ }
41
+ /**
42
+ * @inheritdoc
43
+ */
44
+ clearLogs() {
45
+ this.logs.length = 0;
46
+ }
47
+ /**
48
+ * Not supported.
49
+ */
50
+ copyLogs() { }
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUtbG9nLWNvbm5lY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL2Nvbm5lY3Rvci9odHRwLW1vbml0b3JpbmctY29uc29sZS1sb2ctY29ubmVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFxQixRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUNBQWlDO0lBQTlDO1FBRUk7O1dBRUc7UUFDYSxTQUFJLEdBQVUsRUFBRSxDQUFDO1FBRWpCLFdBQU0sR0FBc0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFrQ3ZFLENBQUM7SUFoQ0c7O09BRUc7SUFDSSxPQUFPLEtBQVUsQ0FBQztJQUV6Qjs7T0FFRztJQUNJLElBQUksQ0FBQyxPQUFjO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEdBQVE7UUFDbkIsTUFBTSxLQUFLLEdBQWEsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLEtBQUssS0FBSyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLEtBQVUsQ0FBQztDQUM3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IExvZywgTG9nQ29ubmVjdG9yLCBMb2dMZXZlbCB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbFwiO1xyXG5cclxuLyoqXHJcbiAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBgTG9nQ29ubmVjdG9yYCBjbGFzcyB0aGF0IHNlbmRzIGxvZ3MgdG8gdGhlIEhUVFBcclxuICogbW9ja2luZyBjb25zb2xlIGNvbXBvbmVudC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBIdHRwTW9uaXRvcmluZ0NvbnNvbGVMb2dDb25uZWN0b3IgaW1wbGVtZW50cyBMb2dDb25uZWN0b3Ige1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBsb2dzOiBMb2dbXSA9IFtdO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxMb2c+ID0gbmV3IEV2ZW50RW1pdHRlcih0cnVlKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbmhlcml0ZG9jXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge31cclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW5oZXJpdGRvY1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5pdChsb2dMaXN0OiBMb2dbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9ncy5wdXNoKC4uLmxvZ0xpc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGluaGVyaXRkb2NcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbmRMb2cobG9nOiBMb2cpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBsZXZlbDogTG9nTGV2ZWwgPSBsb2cubGV2ZWw7XHJcbiAgICAgICAgaWYgKGxldmVsID09PSBMb2dMZXZlbC5JTkZPIHx8IExvZ0xldmVsLkVSUk9SKSB0aGlzLmxvZ3MucHVzaChsb2cpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQobG9nKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbmhlcml0ZG9jXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGVhckxvZ3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sb2dzLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb3Qgc3VwcG9ydGVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29weUxvZ3MoKTogdm9pZCB7fVxyXG59Il19
@@ -0,0 +1,2 @@
1
+ export * from './component/http-monitoring-console/http-monitoring-console.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwLW1vbml0b3JpbmctY29uc29sZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVFQUF1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQvaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUvaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUuY29tcG9uZW50JzsiXX0=
@@ -0,0 +1,14 @@
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
+ export var AtxConsoleActionType;
9
+ (function (AtxConsoleActionType) {
10
+ AtxConsoleActionType[AtxConsoleActionType["CLEAR_LOGS"] = 0] = "CLEAR_LOGS";
11
+ AtxConsoleActionType[AtxConsoleActionType["EXPORT_LOGS"] = 1] = "EXPORT_LOGS";
12
+ AtxConsoleActionType[AtxConsoleActionType["IMPORT_LOGS"] = 2] = "IMPORT_LOGS";
13
+ })(AtxConsoleActionType || (AtxConsoleActionType = {}));
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LWNvbnNvbGUtYWN0aW9uLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9odHRwLW1vbml0b3JpbmctY29uc29sZS9tb2RlbC9idXNpbmVzcy9hdHgtY29uc29sZS1hY3Rpb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxNQUFNLENBQU4sSUFBWSxvQkFLWDtBQUxELFdBQVksb0JBQW9CO0lBRTVCLDJFQUFjLENBQUE7SUFDZCw2RUFBZSxDQUFBO0lBQ2YsNkVBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBlbnVtIEF0eENvbnNvbGVBY3Rpb25UeXBlIHtcclxuXHJcbiAgICBDTEVBUl9MT0dTID0gMCxcclxuICAgIEVYUE9SVF9MT0dTID0gMSxcclxuICAgIElNUE9SVF9MT0dTID0gMlxyXG59Il19
@@ -0,0 +1,9 @@
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
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LWNvbnNvbGUtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUvbW9kZWwvYnVzaW5lc3MvYXR4LWNvbnNvbGUtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEF0eENvbnNvbGVBY3Rpb25UeXBlIH0gZnJvbSBcIi4vYXR4LWNvbnNvbGUtYWN0aW9uLXR5cGVcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR4Q29uc29sZUFjdGlvbiB7XHJcblxyXG4gICAgdHlwZTogQXR4Q29uc29sZUFjdGlvblR5cGU7XHJcblxyXG4gICAgZGF0YT86IGFueTtcclxufSJdfQ==
@@ -0,0 +1,9 @@
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
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LWNvbnNvbGUtanNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL21vZGVsL2J1c2luZXNzL2F0eC1jb25zb2xlLWpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29uc29sZVR5cGVDbGFzcyB9IGZyb20gXCIuLi8uLi91dGlsL2NvbnNvbGUtdHlwZS1jbGFzc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHhDb25zb2xlSnNvbiB7XHJcblxyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gICAgdmFsdWU6IGFueTtcclxuXHJcbiAgICB0eXBlQ2xhc3M6IENvbnNvbGVUeXBlQ2xhc3M7XHJcblxyXG4gICAgY2hpbGRyZW4/OiBBdHhDb25zb2xlSnNvbltdO1xyXG59Il19
@@ -0,0 +1,10 @@
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 { HttpContextToken } from "@angular/common/http";
9
+ export const ATX_IS_IMPORTED_LOG = new HttpContextToken(() => false);
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LWlzLWltcG9ydGVkLWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2ZyYW1ld29yay9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlL21vZGVsL2J1c2luZXNzL2F0eC1pcy1pbXBvcnRlZC1sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQThCLElBQUksZ0JBQWdCLENBQVUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBIdHRwQ29udGV4dFRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQVRYX0lTX0lNUE9SVEVEX0xPRzogSHR0cENvbnRleHRUb2tlbjxib29sZWFuPiA9IG5ldyBIdHRwQ29udGV4dFRva2VuPGJvb2xlYW4+KCgpID0+IGZhbHNlKTsiXX0=
@@ -0,0 +1,9 @@
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
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LWJvZHktZHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC1tb25pdG9yaW5nLWNvbnNvbGUvbW9kZWwvYnVzaW5lc3MvaW8vYXR4LWJvZHktZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR4Qm9keUR0byB7XHJcblxyXG4gICAgdHlwZTogbnVtYmVyO1xyXG5cclxuICAgIGRhdGE6IHN0cmluZyB8IG51bGw7XHJcbn1cclxuIl19