http-request-manager 18.15.32 → 18.15.34

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 (301) hide show
  1. package/README.md +2 -0
  2. package/TEST_COVERAGE_SUMMARY.md +458 -0
  3. package/ng-package.json +8 -0
  4. package/package.json +5 -13
  5. package/src/docs/ADVANCED_WEBSOCKET.md +633 -0
  6. package/src/docs/ARCHITECTURE.md +633 -0
  7. package/src/docs/BATCH_REQUEST_README.md +467 -0
  8. package/src/docs/COMPLETE_API_REFERENCE.md +1037 -0
  9. package/src/docs/DATABASE_README.md +1195 -0
  10. package/src/docs/ENCRYPTION_README.md +403 -0
  11. package/src/docs/HTTP_MANAGER_README.md +628 -0
  12. package/src/docs/HTTP_SINGNALS_MANAGER_README.md +654 -0
  13. package/src/docs/HTTP_STATE_MANAGER_README.md +1391 -0
  14. package/src/docs/INTERCEPTOR_README.md +549 -0
  15. package/src/docs/LOCAL_STORAGE_README.md +1056 -0
  16. package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +338 -0
  17. package/src/docs/LOGGER_README.md +310 -0
  18. package/src/docs/MESSAGE_TRACKER_README.md +518 -0
  19. package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +563 -0
  20. package/src/docs/MODELS_README.md +1264 -0
  21. package/src/docs/SIGNAL_SERVICES_README.md +238 -0
  22. package/src/docs/SQL_DIXIE_README.md +574 -0
  23. package/src/docs/STORE_STATE_MANAGER_README.md +556 -0
  24. package/src/docs/STORE_STATE_SIGNALS_README.md +600 -0
  25. package/src/docs/UPLOAD_REQUEST_README.md +324 -0
  26. package/src/docs/UTILS_README.md +1604 -0
  27. package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +799 -0
  28. package/src/docs/WEBSOCKET_SIGNALS_README.md +641 -0
  29. package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +201 -0
  30. package/src/docs/WS_MANAGER_README.md +613 -0
  31. package/src/lib/http-request-manager.module.ts +147 -0
  32. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +116 -0
  33. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  34. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +255 -0
  35. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +123 -0
  36. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +6 -0
  37. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +53 -0
  38. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +195 -0
  39. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +17 -0
  40. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +208 -0
  41. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +200 -0
  42. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +17 -0
  43. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +214 -0
  44. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +53 -0
  45. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +60 -0
  46. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +72 -0
  47. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +28 -0
  48. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +10 -0
  49. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +29 -0
  50. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +100 -0
  51. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +22 -0
  52. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +8 -0
  53. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +19 -0
  54. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +26 -0
  55. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +30 -0
  56. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +19 -0
  57. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +25 -0
  58. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +19 -0
  59. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +24 -0
  60. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +30 -0
  61. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +49 -0
  62. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +33 -0
  63. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +279 -0
  64. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +24 -0
  65. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +461 -0
  66. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  67. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  68. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  69. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +28 -0
  70. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +10 -0
  71. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  72. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  73. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  74. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  75. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  76. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  77. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +30 -0
  78. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +19 -0
  79. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +25 -0
  80. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +19 -0
  81. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +24 -0
  82. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +30 -0
  83. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +49 -0
  84. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +33 -0
  85. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +622 -0
  86. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +106 -0
  87. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +687 -0
  88. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +418 -0
  89. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +24 -0
  90. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +576 -0
  91. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +89 -0
  92. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +119 -0
  93. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  94. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +3 -0
  95. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +16 -0
  96. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  97. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +3 -0
  98. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +16 -0
  99. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +31 -0
  100. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +94 -0
  101. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +41 -0
  102. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +203 -0
  103. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +144 -0
  104. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +11 -0
  105. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +102 -0
  106. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +40 -0
  107. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +230 -0
  108. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +30 -0
  109. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +172 -0
  110. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +31 -0
  111. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +239 -0
  112. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +31 -0
  113. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +32 -0
  114. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  115. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +84 -0
  116. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +40 -0
  117. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +3 -0
  118. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +62 -0
  119. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +83 -0
  120. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +147 -0
  121. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +168 -0
  122. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  123. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  124. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  125. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +28 -0
  126. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +10 -0
  127. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  128. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  129. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  130. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  131. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  132. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  133. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +30 -0
  134. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +19 -0
  135. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +25 -0
  136. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +19 -0
  137. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +24 -0
  138. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +30 -0
  139. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +49 -0
  140. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +33 -0
  141. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +380 -0
  142. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +24 -0
  143. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +410 -0
  144. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +28 -0
  145. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +49 -0
  146. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  147. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +23 -0
  148. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +36 -0
  149. package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +161 -0
  150. package/src/lib/http-request-services-demo/upload-demo/models/index.ts +1 -0
  151. package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +30 -0
  152. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +89 -0
  153. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +160 -0
  154. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +101 -0
  155. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +136 -0
  156. package/src/lib/index.ts +3 -0
  157. package/src/lib/interceptors/credentials.interceptor.ts +16 -0
  158. package/src/lib/interceptors/index.ts +6 -0
  159. package/src/lib/interceptors/models/error-settings.model.ts +22 -0
  160. package/src/lib/interceptors/models/index.ts +2 -0
  161. package/src/lib/interceptors/proxy-debugger.interceptor.ts +46 -0
  162. package/src/lib/interceptors/request-error.interceptor.ts +65 -0
  163. package/src/lib/interceptors/request-header.interceptor.ts +56 -0
  164. package/src/lib/message-display/README.md +509 -0
  165. package/src/lib/message-display/index.ts +4 -0
  166. package/src/lib/message-display/models/action.model.ts +27 -0
  167. package/src/lib/message-display/models/communication-message.model.ts +77 -0
  168. package/src/lib/message-display/models/display-config.model.ts +35 -0
  169. package/src/lib/message-display/models/display-rule.interface.ts +28 -0
  170. package/src/lib/message-display/models/display-strategy.interface.ts +8 -0
  171. package/src/lib/message-display/models/index.ts +6 -0
  172. package/src/lib/message-display/models/slide.model.ts +24 -0
  173. package/src/lib/message-display/rules/default-display-rules.ts +35 -0
  174. package/src/lib/message-display/services/message-display-router.service.ts +63 -0
  175. package/src/lib/message-display/strategies/snackbar.strategy.ts +46 -0
  176. package/src/lib/models/batch-options.model.ts +33 -0
  177. package/src/lib/models/batch-progress.model.ts +19 -0
  178. package/src/lib/models/batch-request-state.model.ts +40 -0
  179. package/src/lib/models/batch-result.model.ts +30 -0
  180. package/src/lib/models/config-http-options.model.ts +45 -0
  181. package/src/lib/models/config-local-storage-options.model.ts +27 -0
  182. package/src/lib/models/config-options.model.ts +27 -0
  183. package/src/lib/models/config-token.model.ts +9 -0
  184. package/src/lib/models/data-type.enum.ts +5 -0
  185. package/src/lib/models/database-storage.model.ts +24 -0
  186. package/src/lib/models/index.ts +16 -0
  187. package/src/lib/models/retry-options.model.ts +22 -0
  188. package/src/lib/models/upload-validation-error.model.ts +46 -0
  189. package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +246 -0
  190. package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +31 -0
  191. package/src/lib/services/SQL-DixieJS service/index.ts +4 -0
  192. package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +52 -0
  193. package/src/lib/services/SQL-DixieJS service/models/index.ts +3 -0
  194. package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +13 -0
  195. package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +3 -0
  196. package/src/lib/services/SQL-DixieJS service/query-planner.ts +284 -0
  197. package/src/lib/services/SQL-DixieJS service/schema-validator.ts +217 -0
  198. package/src/lib/services/SQL-DixieJS service/sql-parser.ts +35 -0
  199. package/src/lib/services/database-manager-service/database.manager.service.ts +384 -0
  200. package/src/lib/services/database-manager-service/db.storage.service.ts +240 -0
  201. package/src/lib/services/database-manager-service/index.ts +4 -0
  202. package/src/lib/services/database-manager-service/models/index.ts +2 -0
  203. package/src/lib/services/database-manager-service/models/table-schema.ts +33 -0
  204. package/src/lib/services/index.ts +20 -0
  205. package/src/lib/services/local-storage-manager-service/index.ts +4 -0
  206. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +71 -0
  207. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +567 -0
  208. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +67 -0
  209. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +437 -0
  210. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +30 -0
  211. package/src/lib/services/local-storage-manager-service/models/index.ts +6 -0
  212. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +35 -0
  213. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +24 -0
  214. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +32 -0
  215. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +5 -0
  216. package/src/lib/services/request-manager-services/README.md +282 -0
  217. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +674 -0
  218. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +353 -0
  219. package/src/lib/services/request-manager-services/http-manager.service.ts +727 -0
  220. package/src/lib/services/request-manager-services/index.ts +8 -0
  221. package/src/lib/services/request-manager-services/request-signals.service.ts +372 -0
  222. package/src/lib/services/request-manager-services/request.service.ts +435 -0
  223. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +17 -0
  224. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +16 -0
  225. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +4 -0
  226. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +35 -0
  227. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +468 -0
  228. package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +665 -0
  229. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +2395 -0
  230. package/src/lib/services/request-manager-state-service/index.ts +3 -0
  231. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +86 -0
  232. package/src/lib/services/request-manager-state-service/models/index.ts +14 -0
  233. package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +18 -0
  234. package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +21 -0
  235. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +37 -0
  236. package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +20 -0
  237. package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +23 -0
  238. package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +23 -0
  239. package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +23 -0
  240. package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +24 -0
  241. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +13 -0
  242. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +42 -0
  243. package/src/lib/services/store-state-manager-service/index.ts +4 -0
  244. package/src/lib/services/store-state-manager-service/models/index.ts +3 -0
  245. package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +30 -0
  246. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +24 -0
  247. package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +169 -0
  248. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +153 -0
  249. package/src/lib/services/utils/app.service.spec.ts +25 -0
  250. package/src/lib/services/utils/app.service.ts +21 -0
  251. package/src/lib/services/utils/encryption/README.md +79 -0
  252. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +282 -0
  253. package/src/lib/services/utils/encryption/encryption-test.service.ts +39 -0
  254. package/src/lib/services/utils/encryption/index.ts +5 -0
  255. package/src/lib/services/utils/encryption/random.ts +81 -0
  256. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +106 -0
  257. package/src/lib/services/utils/headers.service.spec.ts +80 -0
  258. package/src/lib/services/utils/headers.service.ts +18 -0
  259. package/src/lib/services/utils/index.ts +9 -0
  260. package/src/lib/services/utils/logger.service.ts +90 -0
  261. package/src/lib/services/utils/models/index.ts +4 -0
  262. package/src/lib/services/utils/models/normalized-request-options.model.ts +24 -0
  263. package/src/lib/services/utils/models/path-tracker-state.model.ts +20 -0
  264. package/src/lib/services/utils/models/query-params-tracker-options.model.ts +24 -0
  265. package/src/lib/services/utils/models/query-tracker-state.model.ts +23 -0
  266. package/src/lib/services/utils/object-merger.service.spec.ts +18 -0
  267. package/src/lib/services/utils/object-merger.service.ts +78 -0
  268. package/src/lib/services/utils/path-query.service.spec.ts +117 -0
  269. package/src/lib/services/utils/path-query.service.ts +69 -0
  270. package/src/lib/services/utils/query-params-tracker.service.ts +442 -0
  271. package/src/lib/services/utils/random-color.utils.ts +83 -0
  272. package/src/lib/services/utils/utils.service.spec.ts +165 -0
  273. package/src/lib/services/utils/utils.service.ts +192 -0
  274. package/src/lib/services/ws-manager-service/index.ts +13 -0
  275. package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +147 -0
  276. package/src/lib/services/ws-manager-service/message-tracker.service.ts +477 -0
  277. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +29 -0
  278. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +24 -0
  279. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +36 -0
  280. package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +6 -0
  281. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +5 -0
  282. package/src/lib/services/ws-manager-service/models/index.ts +10 -0
  283. package/src/lib/services/ws-manager-service/models/notification-message.model.ts +29 -0
  284. package/src/lib/services/ws-manager-service/models/public-message.model.ts +18 -0
  285. package/src/lib/services/ws-manager-service/models/state-message.model.ts +18 -0
  286. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +38 -0
  287. package/src/lib/services/ws-manager-service/services/index.ts +4 -0
  288. package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +129 -0
  289. package/src/lib/services/ws-manager-service/services/websocket.service.ts +434 -0
  290. package/src/lib/services/ws-manager-service/websocket-service/index.ts +1 -0
  291. package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +716 -0
  292. package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +596 -0
  293. package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +141 -0
  294. package/src/public-api.ts +19 -0
  295. package/tsconfig.lib.json +34 -0
  296. package/tsconfig.lib.prod.json +10 -0
  297. package/tsconfig.spec.json +14 -0
  298. package/fesm2022/http-request-manager.mjs +0 -13297
  299. package/fesm2022/http-request-manager.mjs.map +0 -1
  300. package/http-request-manager-18.15.32.tgz +0 -0
  301. package/types/http-request-manager.d.ts +0 -3875
@@ -0,0 +1,19 @@
1
+ .example-h2 {
2
+ margin: 24px 0;
3
+ }
4
+ :not(spinner-container).spinner-container {
5
+ position: relative;
6
+
7
+ .spinner-background {
8
+ position: absolute;
9
+ width: 80px;
10
+ height: 80px;
11
+ line-height: 80px;
12
+ text-align: center;
13
+ overflow: hidden;
14
+ border-color: rgba(103, 58, 183, 0.12);
15
+ border-radius: 50%;
16
+ border-style: solid;
17
+ border-width: 10px;
18
+ }
19
+ }
@@ -0,0 +1,26 @@
1
+ import { Component, Input, OnInit } from '@angular/core';
2
+ import { ThemePalette } from '@angular/material/core';
3
+ import { ProgressSpinnerMode } from '@angular/material/progress-spinner';
4
+
5
+ @Component({
6
+ selector: 'app-spinner',
7
+ templateUrl: './spinner.component.html',
8
+ styleUrls: ['./spinner.component.scss'],
9
+ standalone: false
10
+ })
11
+ export class SpinnerComponent implements OnInit {
12
+
13
+ @Input() color: ThemePalette;
14
+
15
+ @Input() diameter?: number;
16
+ @Input() display?: string | number;
17
+ @Input() mode?: ProgressSpinnerMode;
18
+ @Input() strokeWidth?: number;
19
+ @Input() value = 0
20
+
21
+ constructor() { }
22
+
23
+ ngOnInit() {
24
+ }
25
+
26
+ }
@@ -0,0 +1,30 @@
1
+ import { App } from "./app.model"
2
+
3
+ export interface AppSessionInterface {
4
+ cfid: string,
5
+ sessionid: string,
6
+ urltoken: string,
7
+ cftoken: string,
8
+ }
9
+
10
+ export class AppSession implements AppSessionInterface {
11
+
12
+ constructor(
13
+ public cfid = '',
14
+ public sessionid = '',
15
+ public urltoken = '',
16
+ public cftoken = '',
17
+ ) {}
18
+
19
+ static adapt(item?: any): AppSession {
20
+
21
+ return new AppSession(
22
+ item?.cfid,
23
+ item?.sessionid,
24
+ item?.urltoken,
25
+ item?.cftoken,
26
+ )
27
+
28
+ }
29
+
30
+ }
@@ -0,0 +1,19 @@
1
+ export interface AppInterface {
2
+ applicationName: string
3
+ }
4
+
5
+ export class App implements AppInterface {
6
+
7
+ constructor(
8
+ public applicationName = ''
9
+ ) {}
10
+
11
+ static adapt(item?: any): App {
12
+
13
+ return new App(
14
+ item?.applicationName,
15
+ )
16
+
17
+ }
18
+
19
+ }
@@ -0,0 +1,25 @@
1
+ import { App } from "./app.model"
2
+ import { AppSession } from "./app-session.model"
3
+
4
+ export interface GetSampleInterface {
5
+ application: App,
6
+ session: AppSession
7
+ }
8
+
9
+ export class GetSample implements GetSampleInterface {
10
+
11
+ constructor(
12
+ public application = App.adapt(),
13
+ public session = AppSession.adapt(),
14
+ ) {}
15
+
16
+ static adapt(item?: any) {
17
+
18
+ return new GetSample(
19
+ (item?.application) ? App.adapt(item.application) : App.adapt(),
20
+ (item?.session) ? AppSession.adapt(item.session) : AppSession.adapt(),
21
+ )
22
+
23
+ }
24
+
25
+ }
@@ -0,0 +1,19 @@
1
+ export interface AIPromptInterface {
2
+ response: string
3
+ }
4
+
5
+ export class AIPrompt implements AIPromptInterface {
6
+
7
+ constructor(
8
+ public response = '',
9
+ ) {}
10
+
11
+ static adapt(item?: any): AIPrompt {
12
+
13
+ return new AIPrompt(
14
+ item?.response,
15
+ )
16
+
17
+ }
18
+
19
+ }
@@ -0,0 +1,24 @@
1
+ import { App } from "./app.model"
2
+
3
+ export interface ClientDetailsInterface {
4
+ prod: string,
5
+ dev: string,
6
+ }
7
+
8
+ export class ClientDetails implements ClientDetailsInterface {
9
+
10
+ constructor(
11
+ public prod = '',
12
+ public dev = '',
13
+ ) {}
14
+
15
+ static adapt(item?: any): ClientDetails {
16
+
17
+ return new ClientDetails(
18
+ item?.prod,
19
+ item?.dev,
20
+ )
21
+
22
+ }
23
+
24
+ }
@@ -0,0 +1,30 @@
1
+ export interface ClientInfoInterface {
2
+ domain: string
3
+ service: string
4
+ id: number
5
+ name: string
6
+ }
7
+
8
+ export class ClientInfo implements ClientInfoInterface {
9
+
10
+ constructor(
11
+ public domain = '',
12
+ public service = '',
13
+ public id = 0,
14
+ public name = '',
15
+ ) {}
16
+
17
+ static adapt(item?: any): ClientInfo {
18
+
19
+ return new ClientInfo(
20
+ item?.domain,
21
+ item?.service,
22
+ item?.id,
23
+ (item?.first_name || item?.last_name) ? `${item?.first_name} ${item?.last_name}` : '',
24
+ )
25
+
26
+ }
27
+
28
+ }
29
+
30
+
@@ -0,0 +1,49 @@
1
+ export interface ClientDataInterface {
2
+ id: string|number
3
+ name: string
4
+ domain: string
5
+ service: string
6
+ spiffe: string
7
+ secret: string
8
+ created: number
9
+ modified: number
10
+ icon: string
11
+ imageFile: string
12
+ email: string
13
+ }
14
+
15
+ export class ClientData implements ClientDataInterface {
16
+
17
+ constructor(
18
+ public id: string|number = 0,
19
+ public name = '',
20
+ public domain = '',
21
+ public service = '',
22
+ public spiffe = '',
23
+ public secret = '',
24
+ public created = 0,
25
+ public modified = 0,
26
+ public icon = '',
27
+ public imageFile = '',
28
+ public email = '',
29
+ ) {}
30
+
31
+ static adapt(item?: any): ClientData {
32
+
33
+ return new ClientData(
34
+ item?.id,
35
+ item?.name,
36
+ item?.domain,
37
+ item?.service,
38
+ item?.spiffe,
39
+ item?.secret,
40
+ item?.created,
41
+ item?.modified,
42
+ item?.icon,
43
+ item?.imageFile,
44
+ item?.email,
45
+ )
46
+
47
+ }
48
+
49
+ }
@@ -0,0 +1,33 @@
1
+ export interface ClientInfoMapperInterface {
2
+ id: number
3
+ first_name: string
4
+ last_name: string
5
+ email: string
6
+ }
7
+
8
+ export class ClientInfoMapper implements ClientInfoMapperInterface {
9
+
10
+ constructor(
11
+ public id = 0,
12
+ public first_name = '',
13
+ public last_name = '',
14
+ public email = '',
15
+ ) {}
16
+
17
+ static adapt(item?: any): ClientInfoMapper {
18
+
19
+ const first_name = (item?.name) ? item.name.split(' ')[0] : ''
20
+ const last_name = (item?.name) ? item.name.split(' ')[1] : ''
21
+
22
+ return new ClientInfoMapper(
23
+ item?.id,
24
+ first_name,
25
+ last_name,
26
+ item?.email,
27
+ )
28
+
29
+ }
30
+
31
+ }
32
+
33
+
@@ -0,0 +1,380 @@
1
+ <div style="margin: 2rem;">
2
+
3
+ <h2>
4
+ <span>HTTP Request Signals Manager</span>
5
+ <span style="margin-left: .5rem;">
6
+ <mat-icon color="accent">fiber_new</mat-icon>
7
+ </span>
8
+ </h2>
9
+
10
+ <div [formGroup]="requestForm" style="margin-top: 2rem;">
11
+ <div style="display: flex; gap: .5rem">
12
+ <mat-form-field appearance="outline">
13
+ <mat-label>Adapter (Model)</mat-label>
14
+ <mat-select formControlName="adapter" #adapterSelect>
15
+ <mat-option>None</mat-option>
16
+ @for (adapter of sampleAdaptors; track adapter) {
17
+ <mat-option [value]="adapter.value">
18
+ {{adapter.label}}
19
+ </mat-option>
20
+ }
21
+ </mat-select>
22
+ </mat-form-field>
23
+ <mat-form-field appearance="outline">
24
+ <mat-label>Mapper (Model)</mat-label>
25
+ <mat-select formControlName="mapper" #mapperSelect>
26
+ <mat-option>None</mat-option>
27
+ @for (mapper of sampleMappers; track mapper) {
28
+ <mat-option [value]="mapper.value">
29
+ {{mapper.label}}
30
+ </mat-option>
31
+ }
32
+ </mat-select>
33
+ </mat-form-field>
34
+ </div>
35
+ @if (adapterSelect.value || mapperSelect.value) {
36
+ <div style="display: flex; margin-bottom: 2rem;">
37
+ <div style="flex:1" class="box">
38
+ <h3>Adapter (Incoming)</h3>
39
+ @if (adapterSelect.value) {
40
+ <div>
41
+ {{ props(adapterSelect.value) | json }}
42
+ </div>
43
+ } @else {
44
+ No Transformation
45
+ }
46
+ </div>
47
+ <div style="flex:1" class="box">
48
+ <h3>Mapper (Outgoing)</h3>
49
+ @if (mapperSelect.value) {
50
+ <div>
51
+ {{ props(mapperSelect.value) | json }}
52
+ </div>
53
+ } @else {
54
+ No Transformation
55
+ }
56
+ </div>
57
+ </div>
58
+ }
59
+ <div>
60
+ <mat-form-field appearance="outline">
61
+ <mat-label>RestPath (/ delimited)</mat-label>
62
+ <input matInput placeholder="clients/list" formControlName="path">
63
+ </mat-form-field>
64
+ </div>
65
+ <div>
66
+ <div formArrayName="headers">
67
+ @for (task of headers.controls; track task; let i = $index) {
68
+ <div [formGroupName]="i">
69
+ <div style="display: flex; gap: .5rem">
70
+ <mat-form-field appearance="outline">
71
+ <mat-label>Key</mat-label>
72
+ <input matInput placeholder="authentication" formControlName="key">
73
+ </mat-form-field>
74
+ <mat-form-field appearance="outline" style="flex:1">
75
+ <mat-label>Value</mat-label>
76
+ <input matInput placeholder="sample" formControlName="value">
77
+ </mat-form-field>
78
+ <div style="margin-top: .5rem;">
79
+ <button mat-icon-button (click)="removeHeader(i)">
80
+ <mat-icon>close</mat-icon>
81
+ </button>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ }
86
+ </div>
87
+ <button mat-stroked-button (click)="addHeader()" class="btn">Add Header</button>
88
+ </div>
89
+ <div style="margin-top: 2rem; display: flex; flex-direction:column; gap: 1rem;">
90
+ <div>
91
+ <mat-slide-toggle #failedState>Retry on Failed</mat-slide-toggle>
92
+ @if (failedState.checked) {
93
+ <div style="display: flex; gap: .5rem; margin-top: 1rem;" formGroupName="retry">
94
+ <mat-form-field appearance="outline">
95
+ <mat-label>#of Times</mat-label>
96
+ <input matInput placeholder="3" formControlName="times" value="3">
97
+ </mat-form-field>
98
+ <mat-form-field appearance="outline">
99
+ <mat-label>Delay Until Next</mat-label>
100
+ <input matInput placeholder="3" formControlName="delay" value="3">
101
+ </mat-form-field>
102
+ </div>
103
+ }
104
+ </div>
105
+ <div>
106
+ <mat-slide-toggle #pollingState>Polling</mat-slide-toggle>
107
+ @if (pollingState.checked) {
108
+ <div>
109
+ <mat-form-field appearance="outline" style="margin-top: 1rem">
110
+ <mat-label>#of Seconds</mat-label>
111
+ <input matInput placeholder="3" formControlName="polling" value="3">
112
+ </mat-form-field>
113
+ </div>
114
+ }
115
+ </div>
116
+ </div>
117
+ </div>
118
+
119
+ <div style="margin-bottom: 1rem; margin-top: 2rem;">
120
+ @if (isPending()) {
121
+ <mat-progress-bar mode="indeterminate"
122
+ ></mat-progress-bar>
123
+ }
124
+ @if (pollingState.checked && !isPending()) {
125
+ <mat-progress-bar mode="determinate"
126
+ [value]="countdown()"
127
+ ></mat-progress-bar>
128
+ }
129
+ </div>
130
+
131
+ <div style="margin-top: 1rem">
132
+ <mat-divider></mat-divider>
133
+ </div>
134
+
135
+ <div style="margin-top: 2rem">
136
+ <div style="display: flex;">
137
+ <h2 style="flex:1">GET Request</h2>
138
+ <div>
139
+ <button mat-raised-button (click)="onGetRequest()" class="btn">Request</button>
140
+ </div>
141
+ </div>
142
+
143
+ @if (GET_error) {
144
+ <div style="margin-top: .5rem;">
145
+ <mat-error>{{ GET_error }}</mat-error>
146
+ </div>
147
+ }
148
+
149
+ @if (GET_result) {
150
+ <div style="margin-top: 1rem;">
151
+ {{ GET_result | json }}
152
+ </div>
153
+ }
154
+
155
+ </div>
156
+
157
+ <div style="margin-top: 2rem">
158
+ <mat-divider></mat-divider>
159
+ </div>
160
+
161
+ <div style="margin-top: 2rem">
162
+ <div style="display: flex;">
163
+ <h2 style="flex:1">POST Request</h2>
164
+ <div>
165
+ <button mat-raised-button (click)="onCreateRequest()" class="btn">Request</button>
166
+ </div>
167
+ </div>
168
+
169
+ @if (POST_error) {
170
+ <div style="margin-top: .5rem;">
171
+ <mat-error>{{ POST_error }}</mat-error>
172
+ </div>
173
+ }
174
+
175
+ @if (POST_result) {
176
+ <div style="margin-top: 1rem;">
177
+ {{ POST_result | json }}
178
+ </div>
179
+ }
180
+
181
+ </div>
182
+
183
+ <div style="margin-top: 2rem">
184
+ <mat-divider></mat-divider>
185
+ </div>
186
+
187
+ <div style="margin-top: 2rem">
188
+ <div style="display: flex;">
189
+ <h2 style="flex:1">PUT Request</h2>
190
+ <div>
191
+ <button mat-raised-button (click)="onUpdateRequest()" class="btn">Request</button>
192
+ </div>
193
+ </div>
194
+
195
+ @if (PUT_error) {
196
+ <div style="margin-top: .5rem;">
197
+ <mat-error>{{ PUT_error }}</mat-error>
198
+ </div>
199
+ }
200
+
201
+ <h3>Include Record ID in the RestPath</h3>
202
+
203
+ @if (PUT_result) {
204
+ <div style="margin-top: 1rem;">
205
+ {{ PUT_result | json }}
206
+ </div>
207
+ }
208
+
209
+ </div>
210
+
211
+ <div style="margin-top: 2rem">
212
+ <mat-divider></mat-divider>
213
+ </div>
214
+
215
+ <div style="margin-top: 2rem">
216
+ <div style="display: flex;">
217
+ <h2 style="flex:1">DELETE Request</h2>
218
+ <div>
219
+ <button mat-raised-button (click)="onDeleteRequest()" class="btn">Request</button>
220
+ </div>
221
+ </div>
222
+
223
+ <h3>Include Record ID in the RestPath</h3>
224
+
225
+ @if (DELETE_error) {
226
+ <div style="margin-top: .5rem;">
227
+ <mat-error>{{ DELETE_error }}</mat-error>
228
+ </div>
229
+ }
230
+
231
+ @if (DELETE_result) {
232
+ <div style="margin-top: 1rem;">
233
+ {{ DELETE_result | json }}
234
+ </div>
235
+ }
236
+
237
+ </div>
238
+
239
+ <div style="margin-top: 2rem">
240
+ <mat-divider></mat-divider>
241
+ </div>
242
+
243
+ <div style="margin-top: 2rem">
244
+ <div style="display: flex;">
245
+ <h2 style="flex:1">Streaming GET Request</h2>
246
+ <div>
247
+ <button mat-raised-button (click)="onStreamRequest()" class="btn">Request</button>
248
+ </div>
249
+ </div>
250
+
251
+ <!-- <div *ngIf="(STREAM_error$ | async) as stream_error" style="margin-top: .5rem;">
252
+ <mat-error>{{ stream_error }}</mat-error>
253
+ </div> -->
254
+
255
+ <div style="margin-top: 1rem;">
256
+ @if (STREAM_result; as data) {
257
+ <div class="container">
258
+ <table mat-table [dataSource]="data">
259
+ <ng-container matColumnDef="id">
260
+ <th mat-header-cell *matHeaderCellDef> ID </th>
261
+ <td mat-cell *matCellDef="let element"> {{element.id}} </td>
262
+ </ng-container>
263
+ <ng-container matColumnDef="name">
264
+ <th mat-header-cell *matHeaderCellDef> First Name </th>
265
+ <td mat-cell *matCellDef="let element"> {{element.name}} </td>
266
+ </ng-container>
267
+ <ng-container matColumnDef="lastName">
268
+ <th mat-header-cell *matHeaderCellDef> Last Name </th>
269
+ <td mat-cell *matCellDef="let element"> {{element.lastName}} </td>
270
+ </ng-container>
271
+ <ng-container matColumnDef="age">
272
+ <th mat-header-cell *matHeaderCellDef> Age </th>
273
+ <td mat-cell *matCellDef="let element"> {{element.age}} </td>
274
+ </ng-container>
275
+ <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
276
+ <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
277
+ </table>
278
+ </div>
279
+ }
280
+ </div>
281
+
282
+ </div>
283
+
284
+ <div style="margin-top: 2rem">
285
+ <mat-divider></mat-divider>
286
+ </div>
287
+
288
+ <div style="margin-top: 2rem">
289
+ <div style="display: flex;">
290
+ <h2 style="flex:1; padding-top: .5rem;">AI -@if (AIType === 1) {
291
+ <span>STREAMING</span>
292
+ } POST Request</h2>
293
+ <div style="display: flex; gap: 1rem;">
294
+ <button mat-raised-button [matMenuTriggerFor]="menu" style="min-width: 120px;">
295
+ <mat-icon>lan</mat-icon>
296
+ @if (AIType === 0) {
297
+ <span>Server</span>
298
+ } @else {
299
+ Local
300
+ }
301
+ </button>
302
+ <mat-menu #menu="matMenu">
303
+ <button mat-menu-item (click)="onSelectAIType(0)">Server</button>
304
+ <button mat-menu-item (click)="onSelectAIType(1)">Local</button>
305
+ </mat-menu>
306
+ <div>
307
+ <button mat-raised-button (click)="onStreamPostRequest()" class="btn">Ask Me</button>
308
+ </div>
309
+ </div>
310
+ </div>
311
+
312
+ <div style="display: flex;">
313
+ <mat-form-field appearance="outline" style="flex:1">
314
+ <mat-label>Ask me a Question</mat-label>
315
+ <textarea matInput placeholder="Why is the sky blue?" [formControl]="questionControl"></textarea>
316
+ </mat-form-field>
317
+ </div>
318
+
319
+ @if (STREAM_AI_error) {
320
+ <div style="margin-top: .5rem;">
321
+ <mat-error>{{ STREAM_AI_error }}</mat-error>
322
+ </div>
323
+ }
324
+
325
+ @if (AIType === 1) {
326
+ <div style="color: red;">
327
+ You must have Ollama active and the 'phi3:latest' model to use this feature.
328
+ </div>
329
+ } @else {
330
+ <span style="color: gray;">
331
+ Define the RestPath to the API endpoint that will handle the AI request.
332
+ Use: 'ai/chat' for server
333
+ </span>
334
+ }
335
+
336
+ <div>
337
+ @if (STREAM_AI_result) {
338
+ <div style="margin-top: 1rem; font-size: 1.2rem; border-radius: 1rem; border: black 1px solid; padding: 2rem;">
339
+ <p style="margin-bottom: .5rem; white-space:pre-wrap; line-height: 1.6rem;">{{STREAM_AI_result}}</p>
340
+ </div>
341
+ }
342
+ </div>
343
+
344
+ </div>
345
+
346
+ <div style="margin-top: 1.5rem; margin-bottom: 1rem; line-height: 1.5rem;">
347
+ <mat-divider></mat-divider>
348
+ </div>
349
+
350
+ <div>
351
+ <div style="display: flex;">
352
+ <h2 style="flex:1; margin-bottom: 0; padding-top: .5rem; display: flex;">
353
+ <div>
354
+ Download File
355
+ </div>
356
+ <div style="flex:1; margin-left: 1rem;">
357
+ <mat-slide-toggle #disable>
358
+ @if (disable.checked) {
359
+ <span>
360
+ Enable
361
+ </span>
362
+ } @else {
363
+ Disable
364
+ }
365
+ </mat-slide-toggle>
366
+ </div>
367
+ </h2>
368
+ <div>
369
+ <app-file-downloader
370
+ [disabled]="disable.checked"
371
+ [delayError]="3"
372
+ [apiRequest]="downloadRequest"
373
+ (completed)="onDownloadCompleted()"
374
+ (failed)="onDownloadFailed($event)"
375
+ ></app-file-downloader>
376
+ </div>
377
+ </div>
378
+ </div>
379
+
380
+ </div>
@@ -0,0 +1,24 @@
1
+ .btn {
2
+ min-width: 120px;
3
+ }
4
+
5
+ .mat-mdc-row .mat-mdc-cell {
6
+ border-bottom: 1px solid transparent;
7
+ border-top: 1px solid transparent;
8
+ cursor: pointer;
9
+ }
10
+
11
+ .mat-mdc-row:hover .mat-mdc-cell {
12
+ border-color: currentColor;
13
+ background-color: whitesmoke;
14
+ }
15
+
16
+ .container {
17
+ height: 400px;
18
+ overflow: auto;
19
+ }
20
+
21
+ .box {
22
+ padding: 10px;
23
+ border: 1px solid #ccc;
24
+ }