http-request-manager 18.4.9 → 18.5.1

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 (216) hide show
  1. package/fesm2022/http-request-manager.mjs +49 -50
  2. package/fesm2022/http-request-manager.mjs.map +1 -1
  3. package/http-request-manager-18.5.1.tgz +0 -0
  4. package/package.json +3 -5
  5. package/types/http-request-manager.d.ts +1731 -0
  6. package/esm2022/http-request-manager.mjs +0 -5
  7. package/esm2022/lib/http-request-manager.module.mjs +0 -173
  8. package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -152
  9. package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -63
  10. package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
  11. package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +0 -184
  12. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
  13. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
  14. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
  15. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
  16. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
  17. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
  18. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
  19. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  20. package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -325
  21. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -277
  22. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -64
  23. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.mjs +0 -92
  24. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.mjs +0 -14
  25. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.mjs +0 -57
  26. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.mjs +0 -107
  27. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.mjs +0 -14
  28. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.mjs +0 -13
  29. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.mjs +0 -12
  30. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.mjs +0 -114
  31. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.mjs +0 -71
  32. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +0 -9
  33. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +0 -12
  34. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  35. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +0 -336
  36. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.mjs +0 -12
  37. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.mjs +0 -36
  38. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.mjs +0 -34
  39. package/esm2022/lib/index.mjs +0 -4
  40. package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
  41. package/esm2022/lib/interceptors/index.mjs +0 -6
  42. package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
  43. package/esm2022/lib/interceptors/models/index.mjs +0 -2
  44. package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
  45. package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
  46. package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
  47. package/esm2022/lib/models/config-http-options.model.mjs +0 -18
  48. package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
  49. package/esm2022/lib/models/config-options.model.mjs +0 -12
  50. package/esm2022/lib/models/config-token.model.mjs +0 -8
  51. package/esm2022/lib/models/data-type.enum.mjs +0 -7
  52. package/esm2022/lib/models/database-storage.model.mjs +0 -12
  53. package/esm2022/lib/models/index.mjs +0 -8
  54. package/esm2022/lib/models/retry-options.model.mjs +0 -10
  55. package/esm2022/lib/services/database-manager-service/database.manager.service.mjs +0 -171
  56. package/esm2022/lib/services/database-manager-service/db.storage.service.mjs +0 -183
  57. package/esm2022/lib/services/database-manager-service/index.mjs +0 -4
  58. package/esm2022/lib/services/database-manager-service/models/index.mjs +0 -2
  59. package/esm2022/lib/services/database-manager-service/models/table-schema.mjs +0 -19
  60. package/esm2022/lib/services/index.mjs +0 -9
  61. package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -4
  62. package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -308
  63. package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +0 -277
  64. package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
  65. package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
  66. package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -17
  67. package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
  68. package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -13
  69. package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
  70. package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +0 -199
  71. package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
  72. package/esm2022/lib/services/request-manager-services/index.mjs +0 -7
  73. package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +0 -170
  74. package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -195
  75. package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
  76. package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
  77. package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
  78. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -33
  79. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
  80. package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -594
  81. package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
  82. package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -22
  83. package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -5
  84. package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
  85. package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +0 -15
  86. package/esm2022/lib/services/request-manager-state-service/models/ws-user.model.mjs +0 -10
  87. package/esm2022/lib/services/store-state-manager-service/index.mjs +0 -3
  88. package/esm2022/lib/services/store-state-manager-service/models/index.mjs +0 -2
  89. package/esm2022/lib/services/store-state-manager-service/models/state-storage-options.model.mjs +0 -12
  90. package/esm2022/lib/services/store-state-manager-service/store-state-manager.service.mjs +0 -71
  91. package/esm2022/lib/services/utils/app.service.mjs +0 -26
  92. package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
  93. package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
  94. package/esm2022/lib/services/utils/encryption/index.mjs +0 -5
  95. package/esm2022/lib/services/utils/encryption/random.mjs +0 -64
  96. package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
  97. package/esm2022/lib/services/utils/headers.service.mjs +0 -21
  98. package/esm2022/lib/services/utils/index.mjs +0 -7
  99. package/esm2022/lib/services/utils/object-merger.service.mjs +0 -70
  100. package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
  101. package/esm2022/lib/services/utils/utils.service.mjs +0 -155
  102. package/esm2022/lib/services/ws-manager-service/index.mjs +0 -3
  103. package/esm2022/lib/services/ws-manager-service/models/channel-info.model.mjs +0 -10
  104. package/esm2022/lib/services/ws-manager-service/models/channel-notification.model.mjs +0 -14
  105. package/esm2022/lib/services/ws-manager-service/models/communication-type.enum.mjs +0 -7
  106. package/esm2022/lib/services/ws-manager-service/models/index.mjs +0 -5
  107. package/esm2022/lib/services/ws-manager-service/models/user-message.model.mjs +0 -12
  108. package/esm2022/lib/services/ws-manager-service/services/index.mjs +0 -2
  109. package/esm2022/lib/services/ws-manager-service/services/websocket.service.mjs +0 -187
  110. package/esm2022/public-api.mjs +0 -11
  111. package/http-request-manager-18.4.9.tgz +0 -0
  112. package/index.d.ts +0 -5
  113. package/lib/http-request-manager.module.d.ts +0 -43
  114. package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -46
  115. package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -39
  116. package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
  117. package/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.d.ts +0 -55
  118. package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
  119. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
  120. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
  121. package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
  122. package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
  123. package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  124. package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
  125. package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  126. package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -110
  127. package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -124
  128. package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
  129. package/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.d.ts +0 -15
  130. package/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.d.ts +0 -8
  131. package/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.d.ts +0 -20
  132. package/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.d.ts +0 -33
  133. package/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.d.ts +0 -8
  134. package/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.d.ts +0 -16
  135. package/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.d.ts +0 -12
  136. package/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.d.ts +0 -40
  137. package/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.d.ts +0 -11
  138. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  139. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +0 -14
  140. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  141. package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +0 -106
  142. package/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.d.ts +0 -14
  143. package/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.d.ts +0 -11
  144. package/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.d.ts +0 -14
  145. package/lib/index.d.ts +0 -3
  146. package/lib/interceptors/credentials.interceptor.d.ts +0 -8
  147. package/lib/interceptors/index.d.ts +0 -5
  148. package/lib/interceptors/models/error-settings.model.d.ts +0 -10
  149. package/lib/interceptors/models/index.d.ts +0 -1
  150. package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
  151. package/lib/interceptors/request-error.interceptor.d.ts +0 -10
  152. package/lib/interceptors/request-header.interceptor.d.ts +0 -15
  153. package/lib/models/config-http-options.model.d.ts +0 -21
  154. package/lib/models/config-local-storage-options.model.d.ts +0 -13
  155. package/lib/models/config-options.model.d.ts +0 -12
  156. package/lib/models/config-token.model.d.ts +0 -8
  157. package/lib/models/data-type.enum.d.ts +0 -5
  158. package/lib/models/database-storage.model.d.ts +0 -10
  159. package/lib/models/index.d.ts +0 -7
  160. package/lib/models/retry-options.model.d.ts +0 -10
  161. package/lib/services/database-manager-service/database.manager.service.d.ts +0 -33
  162. package/lib/services/database-manager-service/db.storage.service.d.ts +0 -26
  163. package/lib/services/database-manager-service/index.d.ts +0 -3
  164. package/lib/services/database-manager-service/models/index.d.ts +0 -1
  165. package/lib/services/database-manager-service/models/table-schema.d.ts +0 -11
  166. package/lib/services/index.d.ts +0 -7
  167. package/lib/services/local-storage-manager-service/index.d.ts +0 -3
  168. package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
  169. package/lib/services/local-storage-manager-service/local-storage-signals-manager.service.d.ts +0 -64
  170. package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
  171. package/lib/services/local-storage-manager-service/models/index.d.ts +0 -5
  172. package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
  173. package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
  174. package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -15
  175. package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
  176. package/lib/services/request-manager-services/http-manager-signals.service.d.ts +0 -38
  177. package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
  178. package/lib/services/request-manager-services/index.d.ts +0 -6
  179. package/lib/services/request-manager-services/request-signals.service.d.ts +0 -26
  180. package/lib/services/request-manager-services/request.service.d.ts +0 -28
  181. package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
  182. package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
  183. package/lib/services/request-manager-services/rxjs-operators/index.d.ts +0 -4
  184. package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -2
  185. package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
  186. package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -92
  187. package/lib/services/request-manager-state-service/index.d.ts +0 -2
  188. package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -32
  189. package/lib/services/request-manager-state-service/models/index.d.ts +0 -4
  190. package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
  191. package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +0 -21
  192. package/lib/services/request-manager-state-service/models/ws-user.model.d.ts +0 -10
  193. package/lib/services/store-state-manager-service/index.d.ts +0 -2
  194. package/lib/services/store-state-manager-service/models/index.d.ts +0 -1
  195. package/lib/services/store-state-manager-service/models/state-storage-options.model.d.ts +0 -13
  196. package/lib/services/store-state-manager-service/store-state-manager.service.d.ts +0 -23
  197. package/lib/services/utils/app.service.d.ts +0 -8
  198. package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
  199. package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
  200. package/lib/services/utils/encryption/index.d.ts +0 -4
  201. package/lib/services/utils/encryption/random.d.ts +0 -11
  202. package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
  203. package/lib/services/utils/headers.service.d.ts +0 -10
  204. package/lib/services/utils/index.d.ts +0 -6
  205. package/lib/services/utils/object-merger.service.d.ts +0 -14
  206. package/lib/services/utils/path-query.service.d.ts +0 -11
  207. package/lib/services/utils/utils.service.d.ts +0 -24
  208. package/lib/services/ws-manager-service/index.d.ts +0 -2
  209. package/lib/services/ws-manager-service/models/channel-info.model.d.ts +0 -10
  210. package/lib/services/ws-manager-service/models/channel-notification.model.d.ts +0 -17
  211. package/lib/services/ws-manager-service/models/communication-type.enum.d.ts +0 -5
  212. package/lib/services/ws-manager-service/models/index.d.ts +0 -4
  213. package/lib/services/ws-manager-service/models/user-message.model.d.ts +0 -14
  214. package/lib/services/ws-manager-service/services/index.d.ts +0 -1
  215. package/lib/services/ws-manager-service/services/websocket.service.d.ts +0 -26
  216. package/public-api.d.ts +0 -7
@@ -1,14 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class WsAiMessagingComponent {
4
- constructor() { }
5
- ngOnInit() {
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsAiMessagingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: WsAiMessagingComponent, selector: "app-ws-ai-messaging", ngImport: i0, template: "<p>\n ws-ai-messaging works!\n</p>\n", styles: [""] }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsAiMessagingComponent, decorators: [{
11
- type: Component,
12
- args: [{ selector: 'app-ws-ai-messaging', template: "<p>\n ws-ai-messaging works!\n</p>\n" }]
13
- }], ctorParameters: () => [] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtYWktbWVzc2FnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1haS1tZXNzYWdpbmcvd3MtYWktbWVzc2FnaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1haS1tZXNzYWdpbmcvd3MtYWktbWVzc2FnaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7K0dBTFUsc0JBQXNCO21HQUF0QixzQkFBc0IsMkRDUG5DLHVDQUdBOzs0RkRJYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXdzLWFpLW1lc3NhZ2luZycsXG4gIHRlbXBsYXRlVXJsOiAnLi93cy1haS1tZXNzYWdpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93cy1haS1tZXNzYWdpbmcuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdzQWlNZXNzYWdpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPHA+XG4gIHdzLWFpLW1lc3NhZ2luZyB3b3JrcyFcbjwvcD5cbiJdfQ==
@@ -1,57 +0,0 @@
1
- import { Component, inject, Input } from '@angular/core';
2
- import { RandomNumber } from '../../../../services/utils/encryption/random';
3
- import { StateDataRequestService } from '../services/state-data-request.service';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/material/button";
7
- import * as i3 from "@angular/material/chips";
8
- import * as i4 from "@angular/material/table";
9
- import * as i5 from "@angular/material/divider";
10
- export class WsDataControlComponent {
11
- constructor() {
12
- this.stateDataRequestService = inject(StateDataRequestService);
13
- this.user$ = this.stateDataRequestService.user$;
14
- this.users$ = this.stateDataRequestService.userList$;
15
- this.data$ = this.stateDataRequestService.data$;
16
- }
17
- ngOnInit() {
18
- this.stateDataRequestService.updateConnection(this.server, this.wsServer, this.jwtToken, this.user);
19
- this.stateDataRequestService.getData();
20
- }
21
- onGetData() {
22
- this.stateDataRequestService.getData();
23
- }
24
- onAddData() {
25
- this.stateDataRequestService.addData();
26
- }
27
- onUpdateData(data) {
28
- const num = RandomNumber(1000, 9999);
29
- const newData = {
30
- "spiffe": `wavecoders.com/developer/${num}`,
31
- "id": 63,
32
- "last_name": "boni",
33
- "email": "mikeboni@hotmail.com",
34
- "first_name": "mike"
35
- };
36
- this.stateDataRequestService.updateData(newData);
37
- }
38
- onRemoveData(data) {
39
- const lastRec = data[data.length - 1];
40
- this.stateDataRequestService.deleteData(lastRec);
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsDataControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: WsDataControlComponent, selector: "app-ws-data-control", inputs: { server: "server", wsServer: "wsServer", jwtToken: "jwtToken", user: "user" }, ngImport: i0, template: "<div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem;\">\n\n <div *ngIf=\"(users$ |async) as users\">\n <h3 style=\"margin: 0;\" *ngIf=\"users.length > 0; else NO_USERS\">Connected Users</h3>\n <mat-chip-set>\n <mat-chip *ngFor=\"let user of users\">\n {{ user.name }}\n </mat-chip>\n </mat-chip-set>\n <ng-template #NO_USERS>\n <h3 style=\"margin: 0;\">No Users</h3>\n </ng-template>\n\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <h3 style=\"margin: 0;\">Data Actions</h3>\n <div style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\">\n <button mat-stroked-button (click)=\"onGetData()\">Get Data</button>\n <div style=\"flex:1\"></div>\n <button mat-stroked-button color=\"accent\" (click)=\"onUpdateData(data)\">Update Data</button>\n <button mat-stroked-button color=\"warn\" (click)=\"onRemoveData(data)\">Remove Data</button>\n <button mat-stroked-button color=\"primary\" (click)=\"onAddData()\">Add Data</button>\n </div>\n\n <div *ngIf=\"data.length > 0; else NO_DATA\">\n\n <table mat-table [dataSource]=\"data\" style=\"border: 1px solid grey;\">\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> ID </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.id}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"spiffe\">\n <th mat-header-cell *matHeaderCellDef> Spiffe </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.spiffe}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.first_name}} {{element.last_name}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef> Email </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.email}} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"['id', 'spiffe', 'name', 'email']\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['id', 'spiffe', 'name', 'email'];\"></tr>\n </table>\n\n <div style=\"border: 1px solid grey; padding: .5rem; border-top: none;\">\n <h3 style=\"margin: 0;\">Total Records {{ data.length }}</h3>\n </div>\n\n </div>\n <ng-template #NO_DATA>\n <div style=\"margin-top: 1rem; font-style: italic;\">\n No Data Available\n </div>\n </ng-template>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i3.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsDataControlComponent, decorators: [{
46
- type: Component,
47
- args: [{ selector: 'app-ws-data-control', template: "<div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem;\">\n\n <div *ngIf=\"(users$ |async) as users\">\n <h3 style=\"margin: 0;\" *ngIf=\"users.length > 0; else NO_USERS\">Connected Users</h3>\n <mat-chip-set>\n <mat-chip *ngFor=\"let user of users\">\n {{ user.name }}\n </mat-chip>\n </mat-chip-set>\n <ng-template #NO_USERS>\n <h3 style=\"margin: 0;\">No Users</h3>\n </ng-template>\n\n </div>\n\n <div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n\n <h3 style=\"margin: 0;\">Data Actions</h3>\n <div style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\">\n <button mat-stroked-button (click)=\"onGetData()\">Get Data</button>\n <div style=\"flex:1\"></div>\n <button mat-stroked-button color=\"accent\" (click)=\"onUpdateData(data)\">Update Data</button>\n <button mat-stroked-button color=\"warn\" (click)=\"onRemoveData(data)\">Remove Data</button>\n <button mat-stroked-button color=\"primary\" (click)=\"onAddData()\">Add Data</button>\n </div>\n\n <div *ngIf=\"data.length > 0; else NO_DATA\">\n\n <table mat-table [dataSource]=\"data\" style=\"border: 1px solid grey;\">\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> ID </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.id}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"spiffe\">\n <th mat-header-cell *matHeaderCellDef> Spiffe </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.spiffe}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"name\">\n <th mat-header-cell *matHeaderCellDef> Name </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.first_name}} {{element.last_name}}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef> Email </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.email}} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"['id', 'spiffe', 'name', 'email']\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['id', 'spiffe', 'name', 'email'];\"></tr>\n </table>\n\n <div style=\"border: 1px solid grey; padding: .5rem; border-top: none;\">\n <h3 style=\"margin: 0;\">Total Records {{ data.length }}</h3>\n </div>\n\n </div>\n <ng-template #NO_DATA>\n <div style=\"margin-top: 1rem; font-style: italic;\">\n No Data Available\n </div>\n </ng-template>\n\n</div>\n" }]
48
- }], propDecorators: { server: [{
49
- type: Input
50
- }], wsServer: [{
51
- type: Input
52
- }], jwtToken: [{
53
- type: Input
54
- }], user: [{
55
- type: Input
56
- }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtZGF0YS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1kYXRhLWNvbnRyb2wvd3MtZGF0YS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1kYXRhLWNvbnRyb2wvd3MtZGF0YS1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7QUFPakYsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQVlFLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBRXpELFVBQUssR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFBO1FBQzFDLFdBQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFBO1FBRS9DLFVBQUssR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDO0tBb0M1QztJQWxDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFXO1FBRXRCLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFcEMsTUFBTSxPQUFPLEdBQUc7WUFDZCxRQUFRLEVBQUUsNEJBQTRCLEdBQUcsRUFBRTtZQUMzQyxJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxNQUFNO1lBQ25CLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQTtRQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFbEQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDbEQsQ0FBQzsrR0E5Q1Usc0JBQXNCO21HQUF0QixzQkFBc0IsbUpDVm5DLDhoRkFtRUE7OzRGRHpEYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQU10QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSYW5kb21OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91dGlscy9lbmNyeXB0aW9uL3JhbmRvbSc7XG5cbmltcG9ydCB7IFN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RhdGUtZGF0YS1yZXF1ZXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd3MtZGF0YS1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dzLWRhdGEtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dzLWRhdGEtY29udHJvbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3NEYXRhQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgc2VydmVyITogc3RyaW5nO1xuICBASW5wdXQoKSB3c1NlcnZlciE6IHN0cmluZztcbiAgQElucHV0KCkgand0VG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVzZXIhOiBhbnk7XG5cbiAgc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UgPSBpbmplY3QoU3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UpXG5cbiAgdXNlciQgPSB0aGlzLnN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlLnVzZXIkXG4gIHVzZXJzJCA9IHRoaXMuc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UudXNlckxpc3QkXG5cbiAgZGF0YSQgPSB0aGlzLnN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlLmRhdGEkO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UudXBkYXRlQ29ubmVjdGlvbih0aGlzLnNlcnZlciwgdGhpcy53c1NlcnZlciwgdGhpcy5qd3RUb2tlbiwgdGhpcy51c2VyKTtcbiAgICB0aGlzLnN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlLmdldERhdGEoKVxuICB9XG5cbiAgb25HZXREYXRhKCkge1xuICAgIHRoaXMuc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UuZ2V0RGF0YSgpXG4gIH1cblxuICBvbkFkZERhdGEoKSB7XG4gICAgdGhpcy5zdGF0ZURhdGFSZXF1ZXN0U2VydmljZS5hZGREYXRhKClcbiAgfVxuXG4gIG9uVXBkYXRlRGF0YShkYXRhOiBhbnlbXSkge1xuXG4gICAgY29uc3QgbnVtID0gUmFuZG9tTnVtYmVyKDEwMDAsIDk5OTkpXG5cbiAgICBjb25zdCBuZXdEYXRhID0ge1xuICAgICAgXCJzcGlmZmVcIjogYHdhdmVjb2RlcnMuY29tL2RldmVsb3Blci8ke251bX1gLFxuICAgICAgXCJpZFwiOiA2MyxcbiAgICAgIFwibGFzdF9uYW1lXCI6IFwiYm9uaVwiLFxuICAgICAgXCJlbWFpbFwiOiBcIm1pa2Vib25pQGhvdG1haWwuY29tXCIsXG4gICAgICBcImZpcnN0X25hbWVcIjogXCJtaWtlXCJcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlRGF0YVJlcXVlc3RTZXJ2aWNlLnVwZGF0ZURhdGEobmV3RGF0YSlcblxuICB9XG5cbiAgb25SZW1vdmVEYXRhKGRhdGE6IGFueSkge1xuICAgIGNvbnN0IGxhc3RSZWMgPSBkYXRhW2RhdGEubGVuZ3RoIC0xXVxuICAgIHRoaXMuc3RhdGVEYXRhUmVxdWVzdFNlcnZpY2UuZGVsZXRlRGF0YShsYXN0UmVjKVxuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCIoZGF0YSQgfCBhc3luYykgYXMgZGF0YVwiIHN0eWxlPVwibWFyZ2luOiAxcmVtO1wiPlxuXG4gIDxkaXYgKm5nSWY9XCIodXNlcnMkIHxhc3luYykgYXMgdXNlcnNcIj5cbiAgICA8aDMgc3R5bGU9XCJtYXJnaW46IDA7XCIgKm5nSWY9XCJ1c2Vycy5sZW5ndGggPiAwOyBlbHNlIE5PX1VTRVJTXCI+Q29ubmVjdGVkIFVzZXJzPC9oMz5cbiAgICA8bWF0LWNoaXAtc2V0PlxuICAgICAgPG1hdC1jaGlwICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJzXCI+XG4gICAgICAgIHt7IHVzZXIubmFtZSB9fVxuICAgICAgPC9tYXQtY2hpcD5cbiAgICA8L21hdC1jaGlwLXNldD5cbiAgICA8bmctdGVtcGxhdGUgI05PX1VTRVJTPlxuICAgICAgPGgzIHN0eWxlPVwibWFyZ2luOiAwO1wiPk5vIFVzZXJzPC9oMz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtO1wiPlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8L2Rpdj5cblxuICA8aDMgc3R5bGU9XCJtYXJnaW46IDA7XCI+RGF0YSBBY3Rpb25zPC9oMz5cbiAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTsgbWFyZ2luLWJvdHRvbTogMXJlbTtcIj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwib25HZXREYXRhKClcIj5HZXQgRGF0YTwvYnV0dG9uPlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OjFcIj48L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJvblVwZGF0ZURhdGEoZGF0YSlcIj5VcGRhdGUgRGF0YTwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJvblJlbW92ZURhdGEoZGF0YSlcIj5SZW1vdmUgRGF0YTwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvbkFkZERhdGEoKVwiPkFkZCBEYXRhPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJkYXRhLmxlbmd0aCA+IDA7IGVsc2UgTk9fREFUQVwiPlxuXG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFcIiBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkIGdyZXk7XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaWRcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gSUQgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmlkfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzcGlmZmVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3BpZmZlIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5zcGlmZmV9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm5hbWVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTmFtZSA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuZmlyc3RfbmFtZX19IHt7ZWxlbWVudC5sYXN0X25hbWV9fTwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZW1haWxcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRW1haWwgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmVtYWlsfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJbJ2lkJywgJ3NwaWZmZScsICduYW1lJywgJ2VtYWlsJ11cIj48L3RyPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydpZCcsICdzcGlmZmUnLCAnbmFtZScsICdlbWFpbCddO1wiPjwvdHI+XG4gICAgICA8L3RhYmxlPlxuXG4gICAgICA8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgZ3JleTsgcGFkZGluZzogLjVyZW07IGJvcmRlci10b3A6IG5vbmU7XCI+XG4gICAgICAgIDxoMyBzdHlsZT1cIm1hcmdpbjogMDtcIj5Ub3RhbCBSZWNvcmRzIHt7IGRhdGEubGVuZ3RoIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI05PX0RBVEE+XG4gICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07IGZvbnQtc3R5bGU6IGl0YWxpYztcIj5cbiAgICAgIE5vIERhdGEgQXZhaWxhYmxlXG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvZGl2PlxuIl19
@@ -1,107 +0,0 @@
1
- import { Component, inject, Input } from '@angular/core';
2
- import { StateRequestServiceDemo } from '../../services/state-request-demo.service';
3
- import { FormBuilder, Validators } from '@angular/forms';
4
- import { ChannelMessage, CommunicationType } from '../../../..';
5
- import { combineLatest, map, EMPTY } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "@angular/material/button";
10
- import * as i4 from "@angular/material/form-field";
11
- import * as i5 from "@angular/material/select";
12
- import * as i6 from "@angular/material/core";
13
- import * as i7 from "@angular/material/input";
14
- export class WsMessagingComponent {
15
- constructor() {
16
- this.fb = inject(FormBuilder);
17
- this.stateRequestServiceDemo = inject(StateRequestServiceDemo);
18
- this.user$ = this.stateRequestServiceDemo.user$;
19
- this.users$ = this.stateRequestServiceDemo.userList$;
20
- this.data$ = this.stateRequestServiceDemo.data$;
21
- this.messages = this.fb.group({
22
- toUser: this.fb.control(null, Validators.required),
23
- content: this.fb.control(null, Validators.required),
24
- });
25
- this.communicationMessages$ = this.stateRequestServiceDemo.communicationMessages$;
26
- this.latestCommunicationMessages$ = this.stateRequestServiceDemo.latestCommunicationMessages$;
27
- this.chat$ = combineLatest([this.user$, this.communicationMessages$])
28
- .pipe(map(([user, messages]) => ({ user, messages })), map(obj => {
29
- if (!obj.user)
30
- return EMPTY;
31
- // const mainUser = UserName.adapt({
32
- // id: obj.user.username,
33
- // first: obj.user?.name?.first,
34
- // last: obj.user?.name?.last,
35
- // })
36
- const mainUser = '';
37
- const messages = obj.messages.map((item) => {
38
- if (item.toUser === 'allChannels') {
39
- // item.toUser = UserName.adapt({
40
- // id: '',
41
- // first: 'All Users',
42
- // last: '',
43
- // })
44
- }
45
- // return Message.adapt({
46
- // fromUser: {
47
- // id: item.fromUser.username,
48
- // first: item.fromUser?.name?.first,
49
- // last: item.fromUser?.name?.last,
50
- // },
51
- // toUser: {
52
- // id: item.toUser.username,
53
- // first: item.toUser?.name?.first,
54
- // last: item.toUser?.name?.last,
55
- // },
56
- // content: item.content,
57
- // date: item.issued,
58
- // })
59
- });
60
- return { user: mainUser, messages };
61
- }));
62
- }
63
- get toUser() {
64
- return this.messages.get('toUser');
65
- }
66
- get content() {
67
- return this.messages.get('content');
68
- }
69
- get isValid() {
70
- return this.toUser.valid;
71
- }
72
- ngOnInit() {
73
- this.stateRequestServiceDemo.updateConnection(this.server, this.wsServer, this.jwtToken, this.user);
74
- // this.stateRequestServiceDemo.getData()
75
- }
76
- onSendMessage() {
77
- this.messages.markAllAsTouched();
78
- if (this.messages.invalid)
79
- return;
80
- const message = ChannelMessage.adapt(this.messages.value);
81
- this.stateRequestServiceDemo.sendMessage(message);
82
- this.content.reset();
83
- }
84
- onSendAlert() {
85
- this.messages.markAllAsTouched();
86
- if (this.messages.invalid)
87
- return;
88
- const message = ChannelMessage.adapt({ ...this.messages.value, type: CommunicationType.ALERT });
89
- this.stateRequestServiceDemo.sendMessage(message);
90
- this.content.reset();
91
- }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsMessagingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: WsMessagingComponent, selector: "app-ws-messaging", inputs: { server: "server", wsServer: "wsServer", jwtToken: "jwtToken", user: "user" }, ngImport: i0, template: "<div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem; display: flex; gap: 1rem; flex-direction: column;\">\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n\n <div *ngIf=\"(users$ | async) as users\">\n\n <div style=\"display: flex; gap: 1rem\">\n\n <div style=\"flex:1\" [formGroup]=\"messages\">\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Users</mat-label>\n <mat-select formControlName=\"toUser\">\n <mat-option value=\"allChannels\" #selectedUser>\n All Users\n </mat-option>\n <mat-option *ngFor=\"let user of users\" [value]=\"user\">\n {{ user.username }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Send a Message</mat-label>\n <textarea\n matInput placeholder=\"Ex. It makes me feel...\"\n formControlName=\"content\"\n (keydown.enter)=\"onSendMessage(); $event.preventDefault()\"\n [disabled]=\"!isValid\"\n ></textarea>\n </mat-form-field>\n </div>\n <div style=\"display:flex; gap: .5rem;\">\n <div style=\"flex:1\"></div>\n <button mat-stroked-button (click)=\"onSendMessage()\" color=\"warn\">\n Send Alert\n </button>\n <button mat-stroked-button (click)=\"onSendAlert()\">\n Send Message\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"(chat$ | async) as chat\" style=\"border: thin gray solid; padding: 1rem; margin-top: 1rem;\">\n <!-- <app-messenger-chat\n [user]=\"chat.user\"\n [messages]=\"chat.messages\"\n ></app-messenger-chat> -->\n </div>\n\n </div>\n\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsMessagingComponent, decorators: [{
96
- type: Component,
97
- args: [{ selector: 'app-ws-messaging', template: "<div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem; display: flex; gap: 1rem; flex-direction: column;\">\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n\n <div *ngIf=\"(users$ | async) as users\">\n\n <div style=\"display: flex; gap: 1rem\">\n\n <div style=\"flex:1\" [formGroup]=\"messages\">\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Users</mat-label>\n <mat-select formControlName=\"toUser\">\n <mat-option value=\"allChannels\" #selectedUser>\n All Users\n </mat-option>\n <mat-option *ngFor=\"let user of users\" [value]=\"user\">\n {{ user.username }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Send a Message</mat-label>\n <textarea\n matInput placeholder=\"Ex. It makes me feel...\"\n formControlName=\"content\"\n (keydown.enter)=\"onSendMessage(); $event.preventDefault()\"\n [disabled]=\"!isValid\"\n ></textarea>\n </mat-form-field>\n </div>\n <div style=\"display:flex; gap: .5rem;\">\n <div style=\"flex:1\"></div>\n <button mat-stroked-button (click)=\"onSendMessage()\" color=\"warn\">\n Send Alert\n </button>\n <button mat-stroked-button (click)=\"onSendAlert()\">\n Send Message\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"(chat$ | async) as chat\" style=\"border: thin gray solid; padding: 1rem; margin-top: 1rem;\">\n <!-- <app-messenger-chat\n [user]=\"chat.user\"\n [messages]=\"chat.messages\"\n ></app-messenger-chat> -->\n </div>\n\n </div>\n\n </div>\n\n</div>\n" }]
98
- }], propDecorators: { server: [{
99
- type: Input
100
- }], wsServer: [{
101
- type: Input
102
- }], jwtToken: [{
103
- type: Input
104
- }], user: [{
105
- type: Input
106
- }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtbWVzc2FnaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1tZXNzYWdpbmcvd3MtbWVzc2FnaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1tZXNzYWdpbmcvd3MtbWVzc2FnaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFjLGFBQWEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVlFLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDeEIsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFFekQsVUFBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUE7UUFDMUMsV0FBTSxHQUFHLElBQUksQ0FBQyx1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Q3pELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztZQUFFLE9BQU07UUFDakMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDL0YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3RCLENBQUM7K0dBcEdVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGdKQ1hqQyxraUVBeURBOzs0RkQ5Q2Esb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFNbkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RhdGVSZXF1ZXN0U2VydmljZURlbW8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdGF0ZS1yZXF1ZXN0LWRlbW8uc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGFubmVsTWVzc2FnZSwgQ29tbXVuaWNhdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBtYXAsIEVNUFRZIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC13cy1tZXNzYWdpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3MtbWVzc2FnaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd3MtbWVzc2FnaW5nLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBXc01lc3NhZ2luZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgc2VydmVyITogc3RyaW5nO1xuICBASW5wdXQoKSB3c1NlcnZlciE6IHN0cmluZztcbiAgQElucHV0KCkgand0VG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVzZXIhOiBhbnk7XG5cbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXG4gIHN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vID0gaW5qZWN0KFN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vKVxuXG4gIHVzZXIkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby51c2VyJFxuICB1c2VycyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLnVzZXJMaXN0JFxuXG4gIGRhdGEkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5kYXRhJDtcblxuICBtZXNzYWdlcyA9IHRoaXMuZmIuZ3JvdXA8YW55Pih7XG4gICAgdG9Vc2VyOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nfG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIGNvbnRlbnQ6IHRoaXMuZmIuY29udHJvbDxzdHJpbmd8bnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pXG5cbiAgZ2V0IHRvVXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5nZXQoJ3RvVXNlcicpIGFzIEZvcm1Db250cm9sXG4gIH1cblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5nZXQoJ2NvbnRlbnQnKSBhcyBGb3JtQ29udHJvbFxuICB9XG5cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9Vc2VyLnZhbGlkXG4gIH1cblxuICBjb21tdW5pY2F0aW9uTWVzc2FnZXMkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5jb21tdW5pY2F0aW9uTWVzc2FnZXMkXG4gIGxhdGVzdENvbW11bmljYXRpb25NZXNzYWdlcyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmxhdGVzdENvbW11bmljYXRpb25NZXNzYWdlcyRcblxuICBjaGF0JDogT2JzZXJ2YWJsZTx7IHVzZXI6IGFueSwgbWVzc2FnZXM6IGFueVtdfXxhbnk+ID0gY29tYmluZUxhdGVzdChbdGhpcy51c2VyJCwgdGhpcy5jb21tdW5pY2F0aW9uTWVzc2FnZXMkXSlcbiAgLnBpcGUoXG4gICAgbWFwKChbdXNlciwgbWVzc2FnZXNdOiBhbnkpID0+ICh7IHVzZXIsIG1lc3NhZ2VzIH0pKSxcbiAgICBtYXAob2JqID0+IHtcblxuICAgICAgaWYoIW9iai51c2VyKSByZXR1cm4gRU1QVFlcblxuICAgICAgLy8gY29uc3QgbWFpblVzZXIgPSBVc2VyTmFtZS5hZGFwdCh7XG4gICAgICAvLyAgICAgaWQ6IG9iai51c2VyLnVzZXJuYW1lLFxuICAgICAgLy8gICAgIGZpcnN0OiBvYmoudXNlcj8ubmFtZT8uZmlyc3QsXG4gICAgICAvLyAgICAgbGFzdDogb2JqLnVzZXI/Lm5hbWU/Lmxhc3QsXG4gICAgICAvLyB9KVxuXG4gICAgICBjb25zdCBtYWluVXNlciA9ICcnXG5cbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gb2JqLm1lc3NhZ2VzLm1hcCgoaXRlbTogYW55KSA9PiB7XG5cbiAgICAgICAgaWYoaXRlbS50b1VzZXIgPT09ICdhbGxDaGFubmVscycpIHtcbiAgICAgICAgICAvLyBpdGVtLnRvVXNlciA9IFVzZXJOYW1lLmFkYXB0KHtcbiAgICAgICAgICAvLyAgICAgaWQ6ICcnLFxuICAgICAgICAgIC8vICAgICBmaXJzdDogJ0FsbCBVc2VycycsXG4gICAgICAgICAgLy8gICAgIGxhc3Q6ICcnLFxuICAgICAgICAgIC8vIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXR1cm4gTWVzc2FnZS5hZGFwdCh7XG4gICAgICAgIC8vICAgICBmcm9tVXNlcjoge1xuICAgICAgICAvLyAgICAgICBpZDogaXRlbS5mcm9tVXNlci51c2VybmFtZSxcbiAgICAgICAgLy8gICAgICAgZmlyc3Q6IGl0ZW0uZnJvbVVzZXI/Lm5hbWU/LmZpcnN0LFxuICAgICAgICAvLyAgICAgICBsYXN0OiBpdGVtLmZyb21Vc2VyPy5uYW1lPy5sYXN0LFxuICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgLy8gICAgIHRvVXNlcjoge1xuICAgICAgICAvLyAgICAgICBpZDogaXRlbS50b1VzZXIudXNlcm5hbWUsXG4gICAgICAgIC8vICAgICAgIGZpcnN0OiBpdGVtLnRvVXNlcj8ubmFtZT8uZmlyc3QsXG4gICAgICAgIC8vICAgICAgIGxhc3Q6IGl0ZW0udG9Vc2VyPy5uYW1lPy5sYXN0LFxuICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgLy8gICAgIGNvbnRlbnQ6IGl0ZW0uY29udGVudCxcbiAgICAgICAgLy8gICAgIGRhdGU6IGl0ZW0uaXNzdWVkLFxuICAgICAgICAvLyB9KVxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIHsgdXNlcjogbWFpblVzZXIsIG1lc3NhZ2VzIH1cblxuICAgIH0pXG4gICk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby51cGRhdGVDb25uZWN0aW9uKHRoaXMuc2VydmVyLCB0aGlzLndzU2VydmVyLCB0aGlzLmp3dFRva2VuLCB0aGlzLnVzZXIpO1xuICAgIC8vIHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uZ2V0RGF0YSgpXG4gIH1cblxuICBvblNlbmRNZXNzYWdlKCkge1xuICAgIHRoaXMubWVzc2FnZXMubWFya0FsbEFzVG91Y2hlZCgpXG4gICAgaWYgKHRoaXMubWVzc2FnZXMuaW52YWxpZCkgcmV0dXJuXG4gICAgY29uc3QgbWVzc2FnZSA9IENoYW5uZWxNZXNzYWdlLmFkYXB0KHRoaXMubWVzc2FnZXMudmFsdWUpXG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5zZW5kTWVzc2FnZShtZXNzYWdlKVxuICAgIHRoaXMuY29udGVudC5yZXNldCgpXG4gIH1cblxuICBvblNlbmRBbGVydCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VzLm1hcmtBbGxBc1RvdWNoZWQoKVxuICAgIGlmICh0aGlzLm1lc3NhZ2VzLmludmFsaWQpIHJldHVyblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBDaGFubmVsTWVzc2FnZS5hZGFwdCh7IC4uLnRoaXMubWVzc2FnZXMudmFsdWUsIHR5cGU6IENvbW11bmljYXRpb25UeXBlLkFMRVJUIH0pXG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5zZW5kTWVzc2FnZShtZXNzYWdlKVxuICAgIHRoaXMuY29udGVudC5yZXNldCgpXG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cIihkYXRhJCB8IGFzeW5jKSBhcyBkYXRhXCIgc3R5bGU9XCJtYXJnaW46IDFyZW07IGRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cblxuICA8ZGl2ICpuZ0lmPVwiKHVzZXIkIHwgYXN5bmMpIGFzIHVzZXJJbmZvXCI+XG5cbiAgICA8ZGl2ICAqbmdJZj1cIih1c2VycyQgfCBhc3luYykgYXMgdXNlcnNcIj5cblxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbVwiPlxuXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OjFcIiBbZm9ybUdyb3VwXT1cIm1lc3NhZ2VzXCI+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6ZmxleFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwiZmxleDoxXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Vc2VyczwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0b1VzZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImFsbENoYW5uZWxzXCIgI3NlbGVjdGVkVXNlcj5cbiAgICAgICAgICAgICAgICAgIEFsbCBVc2Vyc1xuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiB1c2Vyc1wiIFt2YWx1ZV09XCJ1c2VyXCI+XG4gICAgICAgICAgICAgICAgICB7eyB1c2VyLnVzZXJuYW1lIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXhcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cImZsZXg6MVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+U2VuZCBhIE1lc3NhZ2U8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJFeC4gSXQgbWFrZXMgbWUgZmVlbC4uLlwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udGVudFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TZW5kTWVzc2FnZSgpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkXCJcbiAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXg7IGdhcDogLjVyZW07XCI+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDoxXCI+PC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwib25TZW5kTWVzc2FnZSgpXCIgY29sb3I9XCJ3YXJuXCI+XG4gICAgICAgICAgICAgIFNlbmQgQWxlcnRcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uU2VuZEFsZXJ0KClcIj5cbiAgICAgICAgICAgICAgU2VuZCBNZXNzYWdlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIihjaGF0JCB8IGFzeW5jKSBhcyBjaGF0XCIgc3R5bGU9XCJib3JkZXI6IHRoaW4gZ3JheSBzb2xpZDsgcGFkZGluZzogMXJlbTsgbWFyZ2luLXRvcDogMXJlbTtcIj5cbiAgICAgICAgPCEtLSA8YXBwLW1lc3Nlbmdlci1jaGF0XG4gICAgICAgICAgW3VzZXJdPVwiY2hhdC51c2VyXCJcbiAgICAgICAgICBbbWVzc2FnZXNdPVwiY2hhdC5tZXNzYWdlc1wiXG4gICAgICAgID48L2FwcC1tZXNzZW5nZXItY2hhdD4gLS0+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
@@ -1,14 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class WsNotificationsComponent {
4
- constructor() { }
5
- ngOnInit() {
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsNotificationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: WsNotificationsComponent, selector: "app-ws-notifications", ngImport: i0, template: "<p>\n ws-notifications works!\n</p>\n", styles: [""] }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WsNotificationsComponent, decorators: [{
11
- type: Component,
12
- args: [{ selector: 'app-ws-notifications', template: "<p>\n ws-notifications works!\n</p>\n" }]
13
- }], ctorParameters: () => [] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3Mtbm90aWZpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL2NvbXBvbmVudHMvd3Mtbm90aWZpY2F0aW9ucy93cy1ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8vY29tcG9uZW50cy93cy1ub3RpZmljYXRpb25zL3dzLW5vdGlmaWNhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzsrR0FMVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw0RENQckMsd0NBR0E7OzRGRElhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd3Mtbm90aWZpY2F0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi93cy1ub3RpZmljYXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd3Mtbm90aWZpY2F0aW9ucy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3NOb3RpZmljYXRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbn1cbiIsIjxwPlxuICB3cy1ub3RpZmljYXRpb25zIHdvcmtzIVxuPC9wPlxuIl19
@@ -1,13 +0,0 @@
1
- export class OIDCClient {
2
- constructor(spiffe = '', id = 0, first_name = '', last_name = '', email = '') {
3
- this.spiffe = spiffe;
4
- this.id = id;
5
- this.first_name = first_name;
6
- this.last_name = last_name;
7
- this.email = email;
8
- }
9
- static adapt(item) {
10
- return new OIDCClient(item?.spiffe, item?.id, item?.first_name, item?.last_name, item?.email);
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1jbGllbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL21vZGVscy9vaWRjLWNsaWVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8sVUFBVTtJQUVyQixZQUNTLFNBQWlCLEVBQUUsRUFDbkIsS0FBYSxDQUFDLEVBQ2QsYUFBcUIsRUFBRSxFQUN2QixZQUFvQixFQUFFLEVBQ3RCLFFBQWdCLEVBQUU7UUFKbEIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQWE7SUFDeEIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSxFQUFFLEVBQ1IsSUFBSSxFQUFFLFVBQVUsRUFDaEIsSUFBSSxFQUFFLFNBQVMsRUFDZixJQUFJLEVBQUUsS0FBSyxDQUNaLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE9JRENDbGllbnRJbnRlcmZhY2Uge1xuICBzcGlmZmU6IHN0cmluZ1xuICBpZDogbnVtYmVyXG4gIGZpcnN0X25hbWU6IHN0cmluZ1xuICBsYXN0X25hbWU6IHN0cmluZ1xuICBlbWFpbDogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBPSURDQ2xpZW50IGltcGxlbWVudHMgT0lEQ0NsaWVudEludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNwaWZmZTogc3RyaW5nID0gJycsXG4gICAgcHVibGljIGlkOiBudW1iZXIgPSAwLFxuICAgIHB1YmxpYyBmaXJzdF9uYW1lOiBzdHJpbmcgPSAnJyxcbiAgICBwdWJsaWMgbGFzdF9uYW1lOiBzdHJpbmcgPSAnJyxcbiAgICBwdWJsaWMgZW1haWw6IHN0cmluZyA9ICcnLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBPSURDQ2xpZW50IHtcblxuICAgIHJldHVybiBuZXcgT0lEQ0NsaWVudChcbiAgICAgIGl0ZW0/LnNwaWZmZSxcbiAgICAgIGl0ZW0/LmlkLFxuICAgICAgaXRlbT8uZmlyc3RfbmFtZSxcbiAgICAgIGl0ZW0/Lmxhc3RfbmFtZSxcbiAgICAgIGl0ZW0/LmVtYWlsLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- export class UserData {
2
- constructor(ldap = '', name = '', email = '') {
3
- this.ldap = ldap;
4
- this.name = name;
5
- this.email = email;
6
- }
7
- static adapt(item) {
8
- const userName = `${item?.first_name} ${item?.last_name}`;
9
- return new UserData(item?.ldap, userName, item?.email);
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby9tb2RlbHMvdXNlci1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxRQUFRO0lBRW5CLFlBQ1MsT0FBTyxFQUFFLEVBQ1QsT0FBTyxFQUFFLEVBQ1QsUUFBUSxFQUFFO1FBRlYsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULFNBQUksR0FBSixJQUFJLENBQUs7UUFDVCxVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQ2hCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLEVBQUUsVUFBVSxJQUFJLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQTtRQUV6RCxPQUFPLElBQUksUUFBUSxDQUNqQixJQUFJLEVBQUUsSUFBSSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQUUsS0FBSyxDQUNaLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFVzZXJEYXRhSW50ZXJmYWNlIHtcbiAgbGRhcDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBlbWFpbDogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBVc2VyRGF0YSBpbXBsZW1lbnRzIFVzZXJEYXRhSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbGRhcCA9ICcnLFxuICAgIHB1YmxpYyBuYW1lID0gJycsXG4gICAgcHVibGljIGVtYWlsID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IFVzZXJEYXRhIHtcblxuICAgIGNvbnN0IHVzZXJOYW1lID0gYCR7aXRlbT8uZmlyc3RfbmFtZX0gJHtpdGVtPy5sYXN0X25hbWV9YFxuXG4gICAgcmV0dXJuIG5ldyBVc2VyRGF0YShcbiAgICAgIGl0ZW0/LmxkYXAsXG4gICAgICB1c2VyTmFtZSxcbiAgICAgIGl0ZW0/LmVtYWlsLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,114 +0,0 @@
1
- import { Component, inject, Input } from '@angular/core';
2
- import { FormBuilder, Validators } from '@angular/forms';
3
- import { combineLatest, map, EMPTY } from 'rxjs';
4
- import { HTTPManagerService, ChannelMessage, CommunicationType } from '../../services';
5
- import { StateRequestServiceDemo } from './services/state-request-demo.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/material/tabs";
9
- import * as i3 from "@angular/material/progress-bar";
10
- import * as i4 from "@angular/material/toolbar";
11
- import * as i5 from "./components/ws-data-control/ws-data-control.component";
12
- import * as i6 from "./components/ws-notifications/ws-notifications.component";
13
- import * as i7 from "./components/ws-ai-messaging/ws-ai-messaging.component";
14
- export class RequestManagerWsDemoComponent {
15
- constructor() {
16
- this.httpManagerService = inject(HTTPManagerService);
17
- this.stateRequestServiceDemo = inject(StateRequestServiceDemo);
18
- this.fb = inject(FormBuilder);
19
- this.user$ = this.stateRequestServiceDemo.user$;
20
- this.users$ = this.stateRequestServiceDemo.userList$;
21
- this.attempts$ = this.stateRequestServiceDemo.attempts$;
22
- this.nextRetry$ = this.stateRequestServiceDemo.nextRetry$;
23
- this.connectionStatus$ = this.stateRequestServiceDemo.status$;
24
- this.messages = this.fb.group({
25
- toUser: this.fb.control(null, Validators.required),
26
- content: this.fb.control(null, Validators.required),
27
- });
28
- this.data$ = this.stateRequestServiceDemo.data$;
29
- this.isPending$ = this.stateRequestServiceDemo.isPending$;
30
- this.fromMe = (user, fromUser) => {
31
- return user === fromUser;
32
- };
33
- this.communicationMessages$ = this.stateRequestServiceDemo.communicationMessages$;
34
- this.latestCommunicationMessages$ = this.stateRequestServiceDemo.latestCommunicationMessages$;
35
- this.chat$ = combineLatest([this.user$, this.communicationMessages$])
36
- .pipe(map(([user, messages]) => ({ user, messages })), map(obj => {
37
- if (!obj.user)
38
- return EMPTY;
39
- // const mainUser = UserName.adapt({
40
- // id: obj.user.username,
41
- // first: obj.user?.name?.first,
42
- // last: obj.user?.name?.last,
43
- // })
44
- const mainUser = '';
45
- const messages = obj.messages.map((item) => {
46
- if (item.toUser === 'allChannels') {
47
- // item.toUser = UserName.adapt({
48
- // id: '',
49
- // first: 'All Users',
50
- // last: '',
51
- // })
52
- }
53
- // return Message.adapt({
54
- // fromUser: {
55
- // id: item.fromUser.username,
56
- // first: item.fromUser?.name?.first,
57
- // last: item.fromUser?.name?.last,
58
- // },
59
- // toUser: {
60
- // id: item.toUser.username,
61
- // first: item.toUser?.name?.first,
62
- // last: item.toUser?.name?.last,
63
- // },
64
- // content: item.content,
65
- // date: item.issued,
66
- // })
67
- });
68
- return { user: mainUser, messages };
69
- }));
70
- }
71
- get toUser() {
72
- return this.messages.get('toUser');
73
- }
74
- get content() {
75
- return this.messages.get('content');
76
- }
77
- get isValid() {
78
- return this.toUser.valid;
79
- }
80
- ngOnInit() {
81
- this.stateRequestServiceDemo.updateConnection(this.server, this.wsServer, this.jwtToken, this.user);
82
- }
83
- onSendMessage() {
84
- this.messages.markAllAsTouched();
85
- if (this.messages.invalid)
86
- return;
87
- const message = ChannelMessage.adapt(this.messages.value);
88
- this.stateRequestServiceDemo.sendMessage(message);
89
- this.content.reset();
90
- }
91
- onSendAlert() {
92
- this.messages.markAllAsTouched();
93
- if (this.messages.invalid)
94
- return;
95
- const message = ChannelMessage.adapt({ ...this.messages.value, type: CommunicationType.ALERT });
96
- this.stateRequestServiceDemo.sendMessage(message);
97
- this.content.reset();
98
- }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestManagerWsDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RequestManagerWsDemoComponent, selector: "app-request-manager-ws-demo", inputs: { server: "server", wsServer: "wsServer", jwtToken: "jwtToken", user: "user" }, ngImport: i0, template: "<div style=\"margin: 2rem;\">\n\n <h2 style=\"display: flex;\">\n <span style=\"flex:1\">HTTP Request State Manager - Websockets</span>\n <span *ngIf=\"(connectionStatus$ | async) as connected; else NOT_CONNECTED\">\n WS -\n <span style=\"color: green;\">Connected</span>\n </span>\n <ng-template #NOT_CONNECTED>\n <span style=\"color: red;\">Disconnected {{ attempts$ | async }} - {{ nextRetry$ |async }}</span>\n </ng-template>\n </h2>\n\n <div>\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n <mat-toolbar>\n <div style=\"display: flex; flex:1\">\n <div style=\"flex:1\">{{ userInfo.name }}</div>\n <div>({{ user.ldap }})</div>\n </div>\n </mat-toolbar>\n </div>\n\n <div *ngIf=\"(isPending$ | async)\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <mat-tab-group animationDuration=\"0ms\">\n\n <mat-tab label=\"WS - Data Control\">\n <!-- DATA CONTROL -->\n <app-ws-data-control\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-ws-data-control>\n\n </mat-tab>\n\n <mat-tab label=\"WS - Messaging\">\n\n <!-- <app-ws-messaging\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-ws-messaging> -->\n\n </mat-tab>\n\n <mat-tab label=\"WS - Notifications\" [disabled]=\"true\">\n <app-ws-notifications></app-ws-notifications>\n WS - Custom Messaging\n </mat-tab>\n\n <mat-tab label=\"WS - AI Messaging\" [disabled]=\"true\">\n <app-ws-ai-messaging></app-ws-ai-messaging>\n WS - AI Messaging\n </mat-tab>\n\n </mat-tab-group>\n </div>\n\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i3.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i5.WsDataControlComponent, selector: "app-ws-data-control", inputs: ["server", "wsServer", "jwtToken", "user"] }, { kind: "component", type: i6.WsNotificationsComponent, selector: "app-ws-notifications" }, { kind: "component", type: i7.WsAiMessagingComponent, selector: "app-ws-ai-messaging" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
101
- }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestManagerWsDemoComponent, decorators: [{
103
- type: Component,
104
- args: [{ selector: 'app-request-manager-ws-demo', template: "<div style=\"margin: 2rem;\">\n\n <h2 style=\"display: flex;\">\n <span style=\"flex:1\">HTTP Request State Manager - Websockets</span>\n <span *ngIf=\"(connectionStatus$ | async) as connected; else NOT_CONNECTED\">\n WS -\n <span style=\"color: green;\">Connected</span>\n </span>\n <ng-template #NOT_CONNECTED>\n <span style=\"color: red;\">Disconnected {{ attempts$ | async }} - {{ nextRetry$ |async }}</span>\n </ng-template>\n </h2>\n\n <div>\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n <mat-toolbar>\n <div style=\"display: flex; flex:1\">\n <div style=\"flex:1\">{{ userInfo.name }}</div>\n <div>({{ user.ldap }})</div>\n </div>\n </mat-toolbar>\n </div>\n\n <div *ngIf=\"(isPending$ | async)\">\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n\n <mat-tab-group animationDuration=\"0ms\">\n\n <mat-tab label=\"WS - Data Control\">\n <!-- DATA CONTROL -->\n <app-ws-data-control\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-ws-data-control>\n\n </mat-tab>\n\n <mat-tab label=\"WS - Messaging\">\n\n <!-- <app-ws-messaging\n [server]=\"server\"\n [wsServer]=\"wsServer\"\n [jwtToken]=\"jwtToken\"\n [user]=\"user\"\n ></app-ws-messaging> -->\n\n </mat-tab>\n\n <mat-tab label=\"WS - Notifications\" [disabled]=\"true\">\n <app-ws-notifications></app-ws-notifications>\n WS - Custom Messaging\n </mat-tab>\n\n <mat-tab label=\"WS - AI Messaging\" [disabled]=\"true\">\n <app-ws-ai-messaging></app-ws-ai-messaging>\n WS - AI Messaging\n </mat-tab>\n\n </mat-tab-group>\n </div>\n\n</div>\n\n" }]
105
- }], propDecorators: { server: [{
106
- type: Input
107
- }], wsServer: [{
108
- type: Input
109
- }], jwtToken: [{
110
- type: Input
111
- }], user: [{
112
- type: Input
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBYyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBTyxNQUFNLE1BQU0sQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7QUFPaEYsTUFBTSxPQUFPLDZCQUE2QjtJQUwxQztRQU9FLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQy9DLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBRXpELE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFPeEIsVUFBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFL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QkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG1hcCwgRU1QVFksIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBIVFRQTWFuYWdlclNlcnZpY2UsIFJhbmRvbU51bWJlciwgQ2hhbm5lbE1lc3NhZ2UsIENvbW11bmljYXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU3RhdGVSZXF1ZXN0U2VydmljZURlbW8gfSBmcm9tICcuL3NlcnZpY2VzL3N0YXRlLXJlcXVlc3QtZGVtby5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlcXVlc3QtbWFuYWdlci13cy1kZW1vJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlcXVlc3RNYW5hZ2VyV3NEZW1vQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBodHRwTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoSFRUUE1hbmFnZXJTZXJ2aWNlKVxuICBzdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtbyA9IGluamVjdChTdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtbylcblxuICBmYiA9IGluamVjdChGb3JtQnVpbGRlcilcblxuICBASW5wdXQoKSBzZXJ2ZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHdzU2VydmVyITogc3RyaW5nO1xuICBASW5wdXQoKSBqd3RUb2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgdXNlciE6IGFueTtcblxuICB1c2VyJCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8udXNlciRcbiAgdXNlcnMkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby51c2VyTGlzdCRcblxuICBhdHRlbXB0cyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmF0dGVtcHRzJFxuICBuZXh0UmV0cnkkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5uZXh0UmV0cnkkXG5cbiAgY29ubmVjdGlvblN0YXR1cyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLnN0YXR1cyRcblxuICBtZXNzYWdlcyA9IHRoaXMuZmIuZ3JvdXA8YW55Pih7XG4gICAgdG9Vc2VyOiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nfG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIGNvbnRlbnQ6IHRoaXMuZmIuY29udHJvbDxzdHJpbmd8bnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pXG5cbiAgZ2V0IHRvVXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5nZXQoJ3RvVXNlcicpIGFzIEZvcm1Db250cm9sXG4gIH1cblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlcy5nZXQoJ2NvbnRlbnQnKSBhcyBGb3JtQ29udHJvbFxuICB9XG5cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9Vc2VyLnZhbGlkXG4gIH1cblxuICBkYXRhJCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uZGF0YSQ7XG4gIGlzUGVuZGluZyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmlzUGVuZGluZyQ7XG5cbiAgZnJvbU1lID0gKHVzZXI6IHN0cmluZywgZnJvbVVzZXI6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB1c2VyID09PSBmcm9tVXNlclxuICB9XG5cbiAgY29tbXVuaWNhdGlvbk1lc3NhZ2VzJCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uY29tbXVuaWNhdGlvbk1lc3NhZ2VzJFxuICBsYXRlc3RDb21tdW5pY2F0aW9uTWVzc2FnZXMkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5sYXRlc3RDb21tdW5pY2F0aW9uTWVzc2FnZXMkXG5cbiAgY2hhdCQ6IE9ic2VydmFibGU8eyB1c2VyOiBhbnksIG1lc3NhZ2VzOiBhbnlbXX18YW55PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudXNlciQsIHRoaXMuY29tbXVuaWNhdGlvbk1lc3NhZ2VzJF0pXG4gIC5waXBlKFxuICAgIG1hcCgoW3VzZXIsIG1lc3NhZ2VzXTogYW55KSA9PiAoeyB1c2VyLCBtZXNzYWdlcyB9KSksXG4gICAgbWFwKG9iaiA9PiB7XG5cbiAgICAgIGlmKCFvYmoudXNlcikgcmV0dXJuIEVNUFRZXG5cbiAgICAgIC8vIGNvbnN0IG1haW5Vc2VyID0gVXNlck5hbWUuYWRhcHQoe1xuICAgICAgLy8gICAgIGlkOiBvYmoudXNlci51c2VybmFtZSxcbiAgICAgIC8vICAgICBmaXJzdDogb2JqLnVzZXI/Lm5hbWU/LmZpcnN0LFxuICAgICAgLy8gICAgIGxhc3Q6IG9iai51c2VyPy5uYW1lPy5sYXN0LFxuICAgICAgLy8gfSlcblxuICAgICAgY29uc3QgbWFpblVzZXIgPSAnJ1xuXG4gICAgICBjb25zdCBtZXNzYWdlcyA9IG9iai5tZXNzYWdlcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xuXG4gICAgICAgIGlmKGl0ZW0udG9Vc2VyID09PSAnYWxsQ2hhbm5lbHMnKSB7XG4gICAgICAgICAgLy8gaXRlbS50b1VzZXIgPSBVc2VyTmFtZS5hZGFwdCh7XG4gICAgICAgICAgLy8gICAgIGlkOiAnJyxcbiAgICAgICAgICAvLyAgICAgZmlyc3Q6ICdBbGwgVXNlcnMnLFxuICAgICAgICAgIC8vICAgICBsYXN0OiAnJyxcbiAgICAgICAgICAvLyB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIE1lc3NhZ2UuYWRhcHQoe1xuICAgICAgICAvLyAgICAgZnJvbVVzZXI6IHtcbiAgICAgICAgLy8gICAgICAgaWQ6IGl0ZW0uZnJvbVVzZXIudXNlcm5hbWUsXG4gICAgICAgIC8vICAgICAgIGZpcnN0OiBpdGVtLmZyb21Vc2VyPy5uYW1lPy5maXJzdCxcbiAgICAgICAgLy8gICAgICAgbGFzdDogaXRlbS5mcm9tVXNlcj8ubmFtZT8ubGFzdCxcbiAgICAgICAgLy8gICAgIH0sXG4gICAgICAgIC8vICAgICB0b1VzZXI6IHtcbiAgICAgICAgLy8gICAgICAgaWQ6IGl0ZW0udG9Vc2VyLnVzZXJuYW1lLFxuICAgICAgICAvLyAgICAgICBmaXJzdDogaXRlbS50b1VzZXI/Lm5hbWU/LmZpcnN0LFxuICAgICAgICAvLyAgICAgICBsYXN0OiBpdGVtLnRvVXNlcj8ubmFtZT8ubGFzdCxcbiAgICAgICAgLy8gICAgIH0sXG4gICAgICAgIC8vICAgICBjb250ZW50OiBpdGVtLmNvbnRlbnQsXG4gICAgICAgIC8vICAgICBkYXRlOiBpdGVtLmlzc3VlZCxcbiAgICAgICAgLy8gfSlcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiB7IHVzZXI6IG1haW5Vc2VyLCBtZXNzYWdlcyB9XG5cbiAgICB9KVxuICApO1xuXG4gIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby51cGRhdGVDb25uZWN0aW9uKHRoaXMuc2VydmVyLCB0aGlzLndzU2VydmVyLCB0aGlzLmp3dFRva2VuLCB0aGlzLnVzZXIpO1xuICB9XG5cbiAgb25TZW5kTWVzc2FnZSgpIHtcbiAgICB0aGlzLm1lc3NhZ2VzLm1hcmtBbGxBc1RvdWNoZWQoKVxuICAgIGlmICh0aGlzLm1lc3NhZ2VzLmludmFsaWQpIHJldHVyblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBDaGFubmVsTWVzc2FnZS5hZGFwdCh0aGlzLm1lc3NhZ2VzLnZhbHVlKVxuICAgIHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uc2VuZE1lc3NhZ2UobWVzc2FnZSlcbiAgICB0aGlzLmNvbnRlbnQucmVzZXQoKVxuICB9XG5cbiAgb25TZW5kQWxlcnQoKSB7XG4gICAgdGhpcy5tZXNzYWdlcy5tYXJrQWxsQXNUb3VjaGVkKClcbiAgICBpZiAodGhpcy5tZXNzYWdlcy5pbnZhbGlkKSByZXR1cm5cbiAgICBjb25zdCBtZXNzYWdlID0gQ2hhbm5lbE1lc3NhZ2UuYWRhcHQoeyAuLi50aGlzLm1lc3NhZ2VzLnZhbHVlLCB0eXBlOiBDb21tdW5pY2F0aW9uVHlwZS5BTEVSVCB9KVxuICAgIHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uc2VuZE1lc3NhZ2UobWVzc2FnZSlcbiAgICB0aGlzLmNvbnRlbnQucmVzZXQoKVxuICB9XG5cbn1cbiIsIjxkaXYgc3R5bGU9XCJtYXJnaW46IDJyZW07XCI+XG5cbiAgPGgyIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICA8c3BhbiBzdHlsZT1cImZsZXg6MVwiPkhUVFAgUmVxdWVzdCBTdGF0ZSBNYW5hZ2VyIC0gV2Vic29ja2V0czwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cIihjb25uZWN0aW9uU3RhdHVzJCB8IGFzeW5jKSBhcyBjb25uZWN0ZWQ7IGVsc2UgTk9UX0NPTk5FQ1RFRFwiPlxuICAgICAgV1MgLVxuICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogZ3JlZW47XCI+Q29ubmVjdGVkPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgICA8bmctdGVtcGxhdGUgI05PVF9DT05ORUNURUQ+XG4gICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiByZWQ7XCI+RGlzY29ubmVjdGVkIHt7IGF0dGVtcHRzJCB8IGFzeW5jIH19IC0ge3sgbmV4dFJldHJ5JCB8YXN5bmMgfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9oMj5cblxuICA8ZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIih1c2VyJCB8IGFzeW5jKSBhcyB1c2VySW5mb1wiPlxuICAgICAgPG1hdC10b29sYmFyPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleDoxXCI+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6MVwiPnt7IHVzZXJJbmZvLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2Pih7eyB1c2VyLmxkYXAgfX0pPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdG9vbGJhcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCIoaXNQZW5kaW5nJCB8IGFzeW5jKVwiPlxuICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LXRhYi1ncm91cCBhbmltYXRpb25EdXJhdGlvbj1cIjBtc1wiPlxuXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIldTIC0gRGF0YSBDb250cm9sXCI+XG4gICAgICAgIDwhLS0gREFUQSBDT05UUk9MIC0tPlxuICAgICAgICA8YXBwLXdzLWRhdGEtY29udHJvbFxuICAgICAgICAgIFtzZXJ2ZXJdPVwic2VydmVyXCJcbiAgICAgICAgICBbd3NTZXJ2ZXJdPVwid3NTZXJ2ZXJcIlxuICAgICAgICAgIFtqd3RUb2tlbl09XCJqd3RUb2tlblwiXG4gICAgICAgICAgW3VzZXJdPVwidXNlclwiXG4gICAgICAgID48L2FwcC13cy1kYXRhLWNvbnRyb2w+XG5cbiAgICAgIDwvbWF0LXRhYj5cblxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJXUyAtIE1lc3NhZ2luZ1wiPlxuXG4gICAgICAgIDwhLS0gPGFwcC13cy1tZXNzYWdpbmdcbiAgICAgICAgICBbc2VydmVyXT1cInNlcnZlclwiXG4gICAgICAgICAgW3dzU2VydmVyXT1cIndzU2VydmVyXCJcbiAgICAgICAgICBband0VG9rZW5dPVwiand0VG9rZW5cIlxuICAgICAgICAgIFt1c2VyXT1cInVzZXJcIlxuICAgICAgICA+PC9hcHAtd3MtbWVzc2FnaW5nPiAtLT5cblxuICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIldTIC0gTm90aWZpY2F0aW9uc1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxhcHAtd3Mtbm90aWZpY2F0aW9ucz48L2FwcC13cy1ub3RpZmljYXRpb25zPlxuICAgICAgICBXUyAtIEN1c3RvbSBNZXNzYWdpbmdcbiAgICAgIDwvbWF0LXRhYj5cblxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJXUyAtIEFJIE1lc3NhZ2luZ1wiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICAgIDxhcHAtd3MtYWktbWVzc2FnaW5nPjwvYXBwLXdzLWFpLW1lc3NhZ2luZz5cbiAgICAgICAgV1MgLSBBSSBNZXNzYWdpbmdcbiAgICAgIDwvbWF0LXRhYj5cblxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG4iXX0=
@@ -1,71 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { UserData } from '../models/user-data.model';
3
- import { DatabaseStorage, DataType, RetryOptions } from '../../../models';
4
- import { HTTPManagerStateService, ApiRequest } from '../../../services';
5
- import { OIDCClient } from '../models/oidc-client.model';
6
- import * as i0 from "@angular/core";
7
- export class StateRequestServiceDemo extends HTTPManagerStateService {
8
- constructor() {
9
- super(ApiRequest.adapt({
10
- server: '',
11
- retry: RetryOptions.adapt({
12
- times: 3,
13
- delay: 1,
14
- }),
15
- adapter: OIDCClient.adapt,
16
- ws: {
17
- id: ``,
18
- // wsChannels: ['allChannels'],
19
- // access: ['read,write,delete,update'],
20
- wsServer: '',
21
- jwtToken: '',
22
- user: UserData.adapt(),
23
- retry: RetryOptions.adapt({
24
- times: 3,
25
- delay: 10,
26
- }),
27
- }
28
- }), DataType.ARRAY, DatabaseStorage.adapt({
29
- table: 'ws_demo_data',
30
- expiresIn: '5mn',
31
- }));
32
- this.attempts$ = this.wsRetryAttempts$;
33
- this.nextRetry$ = this.wsNextRetry$;
34
- }
35
- updateConnection(server, wsServer, jwtToken, user) {
36
- this.setApiRequestOptions({
37
- server,
38
- retry: RetryOptions.adapt({
39
- times: 3,
40
- delay: 1,
41
- }),
42
- adapter: OIDCClient.adapt,
43
- ws: {
44
- id: 'WS-USERS',
45
- wsServer,
46
- jwtToken,
47
- user, // user object
48
- retry: RetryOptions.adapt({
49
- times: 3,
50
- delay: 10,
51
- }),
52
- }
53
- });
54
- this.userAction$.subscribe(user => {
55
- console.log('User Action:', user);
56
- });
57
- }
58
- sendMessage(data) {
59
- console.log('sendMessage', data);
60
- this.wsMessaging(data);
61
- }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, providedIn: 'root' }); }
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, decorators: [{
66
- type: Injectable,
67
- args: [{
68
- providedIn: 'root'
69
- }]
70
- }], ctorParameters: () => [] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtcmVxdWVzdC1kZW1vLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL3NlcnZpY2VzL3N0YXRlLXJlcXVlc3QtZGVtby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQWdELE1BQU0sbUJBQW1CLENBQUM7QUFDdEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUt6RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQTRCO0lBS3JFO1FBQ0EsS0FBSyxDQUNELFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDZixNQUFNLEVBQUUsRUFBRTtZQUNWLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN4QixLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLEVBQUUsQ0FBQzthQUNULENBQUM7WUFDRixPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDekIsRUFBRSxFQUFFO2dCQUNGLEVBQUUsRUFBRSxFQUFFO2dCQUNOLCtCQUErQjtnQkFDL0Isd0NBQXdDO2dCQUN4QyxRQUFRLEVBQUUsRUFBRTtnQkFDWixRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRTtnQkFDdEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUM7b0JBQ3hCLEtBQUssRUFBRSxDQUFDO29CQUNSLEtBQUssRUFBRSxFQUFFO2lCQUNWLENBQUM7YUFDSDtTQUNGLENBQUMsRUFDRixRQUFRLENBQUMsS0FBSyxFQUNkLGVBQWUsQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSyxFQUFFLGNBQWM7WUFDckIsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQyxDQUNILENBQUE7UUE5QkwsY0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtRQUNqQyxlQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQTtJQThCNUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLFFBQWdCLEVBQUUsSUFBUztRQUU1RSxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDdEIsTUFBTTtZQUNOLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN4QixLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLEVBQUUsQ0FBQzthQUNULENBQUM7WUFDRixPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDekIsRUFBRSxFQUFFO2dCQUNGLEVBQUUsRUFBRSxVQUFVO2dCQUNkLFFBQVE7Z0JBQ1IsUUFBUTtnQkFDUixJQUFJLEVBQUUsY0FBYztnQkFDcEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUM7b0JBQ3hCLEtBQUssRUFBRSxDQUFDO29CQUNSLEtBQUssRUFBRSxFQUFFO2lCQUNWLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ25DLENBQUMsQ0FBQyxDQUFBO0lBRU4sQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFvQjtRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3hCLENBQUM7K0dBakVRLHVCQUF1QjttSEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVXNlckRhdGEgfSBmcm9tICcuLi9tb2RlbHMvdXNlci1kYXRhLm1vZGVsJztcbmltcG9ydCB7IERhdGFiYXNlU3RvcmFnZSwgRGF0YVR5cGUsIFJldHJ5T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbmltcG9ydCB7IEhUVFBNYW5hZ2VyU3RhdGVTZXJ2aWNlLCBBcGlSZXF1ZXN0LCBSZXF1ZXN0T3B0aW9ucywgUmFuZG9tTnVtYmVyLCBDaGFubmVsTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IE9JRENDbGllbnQgfSBmcm9tICcuLi9tb2RlbHMvb2lkYy1jbGllbnQubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtbyBleHRlbmRzIEhUVFBNYW5hZ2VyU3RhdGVTZXJ2aWNlPGFueT4ge1xuXG4gIGF0dGVtcHRzJCA9IHRoaXMud3NSZXRyeUF0dGVtcHRzJFxuICBuZXh0UmV0cnkkID0gdGhpcy53c05leHRSZXRyeSRcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFxuICAgICAgICBBcGlSZXF1ZXN0LmFkYXB0KHtcbiAgICAgICAgICBzZXJ2ZXI6ICcnLFxuICAgICAgICAgIHJldHJ5OiBSZXRyeU9wdGlvbnMuYWRhcHQoe1xuICAgICAgICAgICAgdGltZXM6IDMsXG4gICAgICAgICAgICBkZWxheTogMSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhZGFwdGVyOiBPSURDQ2xpZW50LmFkYXB0LFxuICAgICAgICAgIHdzOiB7XG4gICAgICAgICAgICBpZDogYGAsXG4gICAgICAgICAgICAvLyB3c0NoYW5uZWxzOiBbJ2FsbENoYW5uZWxzJ10sXG4gICAgICAgICAgICAvLyBhY2Nlc3M6IFsncmVhZCx3cml0ZSxkZWxldGUsdXBkYXRlJ10sXG4gICAgICAgICAgICB3c1NlcnZlcjogJycsXG4gICAgICAgICAgICBqd3RUb2tlbjogJycsXG4gICAgICAgICAgICB1c2VyOiBVc2VyRGF0YS5hZGFwdCgpLFxuICAgICAgICAgICAgcmV0cnk6IFJldHJ5T3B0aW9ucy5hZGFwdCh7XG4gICAgICAgICAgICAgIHRpbWVzOiAzLFxuICAgICAgICAgICAgICBkZWxheTogMTAsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBEYXRhVHlwZS5BUlJBWSxcbiAgICAgICAgRGF0YWJhc2VTdG9yYWdlLmFkYXB0KHtcbiAgICAgICAgICB0YWJsZTogJ3dzX2RlbW9fZGF0YScsXG4gICAgICAgICAgZXhwaXJlc0luOiAnNW1uJyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG5cbiAgICB1cGRhdGVDb25uZWN0aW9uKHNlcnZlcjogc3RyaW5nLCB3c1NlcnZlcjogc3RyaW5nLCBqd3RUb2tlbjogc3RyaW5nLCB1c2VyOiBhbnkpIHtcblxuICAgICAgdGhpcy5zZXRBcGlSZXF1ZXN0T3B0aW9ucyh7XG4gICAgICAgICAgc2VydmVyLFxuICAgICAgICAgIHJldHJ5OiBSZXRyeU9wdGlvbnMuYWRhcHQoe1xuICAgICAgICAgICAgdGltZXM6IDMsXG4gICAgICAgICAgICBkZWxheTogMSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhZGFwdGVyOiBPSURDQ2xpZW50LmFkYXB0LFxuICAgICAgICAgIHdzOiB7XG4gICAgICAgICAgICBpZDogJ1dTLVVTRVJTJyxcbiAgICAgICAgICAgIHdzU2VydmVyLFxuICAgICAgICAgICAgand0VG9rZW4sXG4gICAgICAgICAgICB1c2VyLCAvLyB1c2VyIG9iamVjdFxuICAgICAgICAgICAgcmV0cnk6IFJldHJ5T3B0aW9ucy5hZGFwdCh7XG4gICAgICAgICAgICAgIHRpbWVzOiAzLFxuICAgICAgICAgICAgICBkZWxheTogMTAsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgdGhpcy51c2VyQWN0aW9uJC5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1VzZXIgQWN0aW9uOicsIHVzZXIpXG4gICAgICAgIH0pXG5cbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZShkYXRhOiBDaGFubmVsTWVzc2FnZSkge1xuICAgICAgY29uc29sZS5sb2coJ3NlbmRNZXNzYWdlJywgZGF0YSlcbiAgICAgIHRoaXMud3NNZXNzYWdpbmcoZGF0YSlcbiAgICB9XG5cbiAgICAvLyBhZGREYXRhKCkge1xuXG4gICAgLy8gICBjb25zdCBudW0gPSBSYW5kb21OdW1iZXIoMTAwMCwgOTk5OSlcblxuICAgIC8vICAgY29uc3QgbmV3RGF0YSA9ICAgICB7XG4gICAgLy8gICAgICAgXCJzcGlmZmVcIjogYHNhbXBsZS5jb20vZGV2ZWxvcGVyLyR7bnVtfWAsXG4gICAgLy8gICAgICAgXCJsYXN0X25hbWVcIjogXCJib25pXCIsXG4gICAgLy8gICAgICAgXCJlbWFpbFwiOiBcIm1pa2Vib25pQGhvdG1haWwuY29tXCIsXG4gICAgLy8gICAgICAgXCJmaXJzdF9uYW1lXCI6IFwibWlrZVwiXG4gICAgLy8gICB9XG5cbiAgICAvLyAgIHRoaXMuY3JlYXRlUmVjb3JkKG5ld0RhdGEsIFJlcXVlc3RPcHRpb25zLmFkYXB0KHsgcGF0aDogWydhaScsJ3Rlc3RzJ10gfSkpXG5cbiAgICAvLyB9XG5cbiAgICAvLyBnZXREYXRhKCkge1xuICAgIC8vICAgdGhpcy5mZXRjaFJlY29yZHMoUmVxdWVzdE9wdGlvbnMuYWRhcHQoeyBwYXRoOiBbJ2FpJywndGVzdHMnXSB9KSlcbiAgICAvLyB9XG5cbiAgICAvLyB1cGRhdGVEYXRhKGRhdGE6IGFueSkge1xuICAgIC8vICAgY29uc3Qgc2FtcGxlT3B0aW9ucyA9IFJlcXVlc3RPcHRpb25zLmFkYXB0KHsgcGF0aDogWydhaScsICd0ZXN0cycsIGRhdGEuaWRdIH0pXG4gICAgLy8gICBjb25zb2xlLmxvZygndXBkYXRlRGF0YScsIHNhbXBsZU9wdGlvbnMpXG4gICAgLy8gICB0aGlzLnVwZGF0ZVJlY29yZChkYXRhLCBzYW1wbGVPcHRpb25zKVxuXG4gICAgLy8gfVxuXG4gICAgLy8gZGVsZXRlRGF0YShkYXRhOiBhbnkpIHtcbiAgICAvLyAgIGNvbnN0IHNhbXBsZU9wdGlvbnMgPSBSZXF1ZXN0T3B0aW9ucy5hZGFwdCh7IHBhdGg6IFsnYWknLCAndGVzdHMnLCBkYXRhLmlkXSB9KVxuICAgIC8vICAgY29uc29sZS5sb2coJ2RlbGV0ZURhdGEnLCBzYW1wbGVPcHRpb25zKVxuICAgIC8vICAgdGhpcy5kZWxldGVSZWNvcmQoc2FtcGxlT3B0aW9ucylcbiAgICAvLyB9XG5cbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- export class AIPrompt {
2
- constructor(response = '') {
3
- this.response = response;
4
- }
5
- static adapt(item) {
6
- return new AIPrompt(item?.response);
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLWFpLXByb21wdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1zaWduYWxzLW1hbmFnZXItZGVtby9tb2RlbHMvc2FtcGxlLWFpLXByb21wdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sUUFBUTtJQUVuQixZQUNTLFdBQVcsRUFBRTtRQUFiLGFBQVEsR0FBUixRQUFRLENBQUs7SUFDbkIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksUUFBUSxDQUNqQixJQUFJLEVBQUUsUUFBUSxDQUNmLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFJUHJvbXB0SW50ZXJmYWNlIHtcbiAgcmVzcG9uc2U6IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgQUlQcm9tcHQgaW1wbGVtZW50cyBBSVByb21wdEludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlc3BvbnNlID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IEFJUHJvbXB0IHtcblxuICAgIHJldHVybiBuZXcgQUlQcm9tcHQoXG4gICAgICBpdGVtPy5yZXNwb25zZSxcbiAgICApXG5cbiAgfVxuXG59XG4iXX0=
@@ -1,12 +0,0 @@
1
- export class ClientInfo {
2
- constructor(domain = '', service = '', id = 0, name = '') {
3
- this.domain = domain;
4
- this.service = service;
5
- this.id = id;
6
- this.name = name;
7
- }
8
- static adapt(item) {
9
- return new ClientInfo(item?.domain, item?.service, item?.id, (item?.first_name || item?.last_name) ? `${item?.first_name} ${item?.last_name}` : '');
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLWNsaWVudC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LXNpZ25hbHMtbWFuYWdlci1kZW1vL21vZGVscy9zYW1wbGUtY2xpZW50LWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFDUyxTQUFTLEVBQUUsRUFDWCxVQUFVLEVBQUUsRUFDWixLQUFLLENBQUMsRUFDTixPQUFPLEVBQUU7UUFIVCxXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNaLE9BQUUsR0FBRixFQUFFLENBQUk7UUFDTixTQUFJLEdBQUosSUFBSSxDQUFLO0lBQ2YsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSxPQUFPLEVBQ2IsSUFBSSxFQUFFLEVBQUUsRUFDUixDQUFDLElBQUksRUFBRSxVQUFVLElBQUksSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLElBQUksSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3RGLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENsaWVudEluZm9JbnRlcmZhY2Uge1xuICBkb21haW46IHN0cmluZ1xuICBzZXJ2aWNlOiBzdHJpbmdcbiAgaWQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIENsaWVudEluZm8gaW1wbGVtZW50cyBDbGllbnRJbmZvSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZG9tYWluID0gJycsXG4gICAgcHVibGljIHNlcnZpY2UgPSAnJyxcbiAgICBwdWJsaWMgaWQgPSAwLFxuICAgIHB1YmxpYyBuYW1lID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IENsaWVudEluZm8ge1xuXG4gICAgcmV0dXJuIG5ldyBDbGllbnRJbmZvKFxuICAgICAgaXRlbT8uZG9tYWluLFxuICAgICAgaXRlbT8uc2VydmljZSxcbiAgICAgIGl0ZW0/LmlkLFxuICAgICAgKGl0ZW0/LmZpcnN0X25hbWUgfHwgaXRlbT8ubGFzdF9uYW1lKSA/IGAke2l0ZW0/LmZpcnN0X25hbWV9ICR7aXRlbT8ubGFzdF9uYW1lfWAgOiAnJyxcbiAgICApXG5cbiAgfVxuXG59XG5cblxuIl19
@@ -1,14 +0,0 @@
1
- export class ClientInfoMapper {
2
- constructor(id = 0, first_name = '', last_name = '', email = '') {
3
- this.id = id;
4
- this.first_name = first_name;
5
- this.last_name = last_name;
6
- this.email = email;
7
- }
8
- static adapt(item) {
9
- const first_name = (item?.name) ? item.name.split(' ')[0] : '';
10
- const last_name = (item?.name) ? item.name.split(' ')[1] : '';
11
- return new ClientInfoMapper(item?.id, first_name, last_name, item?.email);
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLW1hcHBlci1jbGllbnQtaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1zaWduYWxzLW1hbmFnZXItZGVtby9tb2RlbHMvc2FtcGxlLW1hcHBlci1jbGllbnQtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1MsS0FBSyxDQUFDLEVBQ04sYUFBYSxFQUFFLEVBQ2YsWUFBWSxFQUFFLEVBQ2QsUUFBUSxFQUFFO1FBSFYsT0FBRSxHQUFGLEVBQUUsQ0FBSTtRQUNOLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBSztJQUNoQixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzlELE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBRTdELE9BQU8sSUFBSSxnQkFBZ0IsQ0FDekIsSUFBSSxFQUFFLEVBQUUsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFBRSxLQUFLLENBQ1osQ0FBQTtJQUVILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50SW5mb01hcHBlckludGVyZmFjZSB7XG4gIGlkOiBudW1iZXJcbiAgZmlyc3RfbmFtZTogc3RyaW5nXG4gIGxhc3RfbmFtZTogc3RyaW5nXG4gIGVtYWlsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIENsaWVudEluZm9NYXBwZXIgaW1wbGVtZW50cyBDbGllbnRJbmZvTWFwcGVySW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaWQgPSAwLFxuICAgIHB1YmxpYyBmaXJzdF9uYW1lID0gJycsXG4gICAgcHVibGljIGxhc3RfbmFtZSA9ICcnLFxuICAgIHB1YmxpYyBlbWFpbCA9ICcnLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBDbGllbnRJbmZvTWFwcGVyIHtcblxuICAgIGNvbnN0IGZpcnN0X25hbWUgPSAoaXRlbT8ubmFtZSkgPyBpdGVtLm5hbWUuc3BsaXQoJyAnKVswXSA6ICcnXG4gICAgY29uc3QgbGFzdF9uYW1lID0gKGl0ZW0/Lm5hbWUpID8gaXRlbS5uYW1lLnNwbGl0KCcgJylbMV0gOiAnJ1xuXG4gICAgcmV0dXJuIG5ldyBDbGllbnRJbmZvTWFwcGVyKFxuICAgICAgaXRlbT8uaWQsXG4gICAgICBmaXJzdF9uYW1lLFxuICAgICAgbGFzdF9uYW1lLFxuICAgICAgaXRlbT8uZW1haWwsXG4gICAgKVxuXG4gIH1cblxufVxuXG5cbiJdfQ==