ngx-techlify-core 15.0.2 → 16.0.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 (474) hide show
  1. package/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +135 -0
  2. package/{esm2020 → esm2022}/lib/access-control-config/access-control-config-routing.module.mjs +5 -5
  3. package/esm2022/lib/access-control-config/access-control-config.component.mjs +137 -0
  4. package/esm2022/lib/access-control-config/access-control-config.model.mjs +34 -0
  5. package/{esm2020 → esm2022}/lib/access-control-config/access-control-config.module.mjs +24 -24
  6. package/esm2022/lib/access-control-config/access-control-config.service.mjs +32 -0
  7. package/esm2022/lib/action-popup/action-popup.component.mjs +36 -0
  8. package/{esm2020 → esm2022}/lib/action-popup/action-popup.model.mjs +4 -1
  9. package/{esm2020 → esm2022}/lib/action-popup/action-popup.module.mjs +9 -9
  10. package/{esm2020 → esm2022}/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +5 -5
  11. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +54 -0
  12. package/{esm2020 → esm2022}/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +15 -15
  13. package/{esm2020 → esm2022}/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +5 -5
  14. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +146 -0
  15. package/{esm2020 → esm2022}/lib/audit-log/audit-log-list/audit-log-list.module.mjs +19 -19
  16. package/{esm2020 → esm2022}/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +5 -5
  17. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +79 -0
  18. package/{esm2020 → esm2022}/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +15 -15
  19. package/{esm2020 → esm2022}/lib/audit-log/audit-log-routing.module.mjs +5 -5
  20. package/{esm2020 → esm2022}/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +5 -5
  21. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +55 -0
  22. package/{esm2020 → esm2022}/lib/audit-log/audit-log-view/audit-log-view.module.mjs +11 -11
  23. package/{esm2020 → esm2022}/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +5 -5
  24. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +60 -0
  25. package/{esm2020 → esm2022}/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +11 -11
  26. package/{esm2020 → esm2022}/lib/audit-log/audit-log.module.mjs +11 -11
  27. package/{esm2020 → esm2022}/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +5 -5
  28. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +40 -0
  29. package/{esm2020 → esm2022}/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +11 -11
  30. package/esm2022/lib/base-model/techlify-form-component.class.mjs +52 -0
  31. package/esm2022/lib/base-model/techlify-listing-component.class.mjs +64 -0
  32. package/esm2022/lib/base-model/techlify-service.class.mjs +69 -0
  33. package/{esm2020 → esm2022}/lib/change-password/change-password-routing.module.mjs +5 -5
  34. package/esm2022/lib/change-password/change-password.component.mjs +96 -0
  35. package/{esm2020 → esm2022}/lib/change-password/change-password.module.mjs +19 -19
  36. package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +36 -0
  37. package/{esm2020 → esm2022}/lib/column-selector/column-selector.module.mjs +13 -13
  38. package/esm2022/lib/core/alert.service.mjs +39 -0
  39. package/esm2022/lib/core/api-prefix.interceptor.mjs +27 -0
  40. package/esm2022/lib/core/authentication.guard.mjs +37 -0
  41. package/esm2022/lib/core/authentication.service.mjs +65 -0
  42. package/esm2022/lib/core/cache.interceptor.mjs +59 -0
  43. package/esm2022/lib/core/config.service.mjs +46 -0
  44. package/esm2022/lib/core/core.module.mjs +63 -0
  45. package/esm2022/lib/core/credentials.service.mjs +80 -0
  46. package/esm2022/lib/core/dataManager.service.mjs +120 -0
  47. package/esm2022/lib/core/error-handler.interceptor.mjs +50 -0
  48. package/esm2022/lib/core/error-handler.service.mjs +57 -0
  49. package/esm2022/lib/core/filter.service.mjs +39 -0
  50. package/{esm2020 → esm2022}/lib/core/form-validator.service.mjs +4 -4
  51. package/{esm2020 → esm2022}/lib/core/header.interceptor.mjs +4 -4
  52. package/esm2022/lib/core/http-cache.service.mjs +110 -0
  53. package/esm2022/lib/core/http.service.mjs +89 -0
  54. package/esm2022/lib/core/logger.service.mjs +101 -0
  55. package/{esm2020 → esm2022}/lib/core/route-reusable-strategy.mjs +4 -4
  56. package/esm2022/lib/core/snack/snack.component.mjs +35 -0
  57. package/{esm2020 → esm2022}/lib/core/snack/snack.module.mjs +11 -11
  58. package/esm2022/lib/core/storage.service.mjs +38 -0
  59. package/esm2022/lib/core/techlify-config.model.mjs +30 -0
  60. package/esm2022/lib/core/token.interceptor.mjs +29 -0
  61. package/esm2022/lib/data-table/data-table.component.mjs +211 -0
  62. package/esm2022/lib/data-table/data-table.model.mjs +46 -0
  63. package/{esm2020 → esm2022}/lib/data-table/data-table.module.mjs +11 -11
  64. package/esm2022/lib/document-viewer/document-viewer.component.mjs +69 -0
  65. package/{esm2020 → esm2022}/lib/document-viewer/document-viewer.module.mjs +11 -11
  66. package/{esm2020 → esm2022}/lib/document-viewer/viewer-config.model.mjs +4 -1
  67. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +5 -5
  68. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +77 -0
  69. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +13 -13
  70. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-routing.module.mjs +5 -5
  71. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +5 -5
  72. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +118 -0
  73. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +17 -17
  74. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +5 -5
  75. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +164 -0
  76. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +17 -17
  77. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +5 -5
  78. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +7 -7
  79. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +5 -5
  80. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +114 -0
  81. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +17 -17
  82. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +5 -5
  83. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +169 -0
  84. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +19 -19
  85. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +5 -5
  86. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +54 -0
  87. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +15 -15
  88. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +5 -5
  89. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +7 -7
  90. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription.module.mjs +7 -7
  91. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +174 -0
  92. package/esm2022/lib/entity-files/entity-file.service.mjs +37 -0
  93. package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +364 -0
  94. package/{esm2020 → esm2022}/lib/entity-files/entity-files-view-all.module.mjs +29 -29
  95. package/esm2022/lib/export-excel/export-excel-button/export-excel-button.component.mjs +31 -0
  96. package/{esm2020 → esm2022}/lib/export-excel/export-excel.module.mjs +7 -7
  97. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +92 -0
  98. package/{esm2020 → esm2022}/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +13 -13
  99. package/esm2022/lib/file-dropper/file-dropper.component.mjs +129 -0
  100. package/esm2022/lib/file-dropper/file-dropper.model.mjs +11 -0
  101. package/{esm2020 → esm2022}/lib/file-dropper/file-dropper.module.mjs +9 -9
  102. package/{esm2020 → esm2022}/lib/forgot-password/forgot-password-routing.module.mjs +5 -5
  103. package/esm2022/lib/forgot-password/forgot-password.component.mjs +81 -0
  104. package/{esm2020 → esm2022}/lib/forgot-password/forgot-password.module.mjs +11 -11
  105. package/{esm2020 → esm2022}/lib/import-csv/data-import/data-import.component.mjs +5 -4
  106. package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +38 -0
  107. package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +160 -0
  108. package/esm2022/lib/import-csv/import-csv.component.mjs +207 -0
  109. package/{esm2020 → esm2022}/lib/import-csv/import-csv.module.mjs +28 -28
  110. package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +75 -0
  111. package/esm2022/lib/import-csv/import-success/import-success.component.mjs +26 -0
  112. package/{esm2020 → esm2022}/lib/ip-address-selector/ip-address-selector.module.mjs +17 -17
  113. package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +108 -0
  114. package/esm2022/lib/loader/loader.component.mjs +23 -0
  115. package/{esm2020 → esm2022}/lib/loader/loader.module.mjs +7 -7
  116. package/{esm2020 → esm2022}/lib/login/login-routing.module.mjs +5 -5
  117. package/esm2022/lib/login/login.component.mjs +170 -0
  118. package/{esm2020 → esm2022}/lib/login/login.module.mjs +19 -19
  119. package/{esm2020 → esm2022}/lib/login-history-for-user/login-history-for-user-routing.module.mjs +5 -5
  120. package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +96 -0
  121. package/{esm2020 → esm2022}/lib/login-history-for-user/login-history-for-user.module.mjs +17 -17
  122. package/{esm2020 → esm2022}/lib/material.module.mjs +53 -53
  123. package/{esm2020 → esm2022}/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +5 -5
  124. package/{esm2020 → esm2022}/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +7 -7
  125. package/esm2022/lib/note/comment-form/comment-form.component.mjs +82 -0
  126. package/esm2022/lib/note/note-form/note-form.component.mjs +88 -0
  127. package/esm2022/lib/note/note-list/note-list.component.mjs +153 -0
  128. package/{esm2020 → esm2022}/lib/note/note.module.mjs +19 -19
  129. package/esm2022/lib/note/note.service.mjs +30 -0
  130. package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +104 -0
  131. package/{esm2020 → esm2022}/lib/number-input-button/number-input-button.module.mjs +9 -9
  132. package/{esm2020 → esm2022}/lib/password-requirement-check/password-check.service.mjs +4 -4
  133. package/esm2022/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +50 -0
  134. package/{esm2020 → esm2022}/lib/password-requirement-check/password-requirement-check.module.mjs +5 -5
  135. package/esm2022/lib/profile/profile-edit.component.mjs +84 -0
  136. package/{esm2020 → esm2022}/lib/profile/profile-routing.module.mjs +5 -5
  137. package/{esm2020 → esm2022}/lib/profile/profile.module.mjs +11 -11
  138. package/esm2022/lib/read-more/read-more.component.mjs +44 -0
  139. package/{esm2020 → esm2022}/lib/read-more/read-more.module.mjs +9 -9
  140. package/esm2022/lib/request-helper/request-helper.service.mjs +107 -0
  141. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +93 -0
  142. package/{esm2020 → esm2022}/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +11 -11
  143. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +20 -0
  144. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +93 -0
  145. package/{esm2020 → esm2022}/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +9 -9
  146. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +20 -0
  147. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +94 -0
  148. package/{esm2020 → esm2022}/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +11 -11
  149. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +20 -0
  150. package/esm2022/lib/restrictors/restrictor.service.mjs +20 -0
  151. package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +111 -0
  152. package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +49 -0
  153. package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +152 -0
  154. package/{esm2020 → esm2022}/lib/restrictors/restrictors-routing.module.mjs +5 -5
  155. package/{esm2020 → esm2022}/lib/restrictors/restrictors.module.mjs +43 -43
  156. package/{esm2020 → esm2022}/lib/role/permission/permission.model.mjs +4 -1
  157. package/{esm2020 → esm2022}/lib/role/permission/permission.module.mjs +15 -15
  158. package/{esm2020 → esm2022}/lib/role/permission/permission.routes.mjs +5 -5
  159. package/esm2022/lib/role/permission/permissions-management.component.mjs +127 -0
  160. package/esm2022/lib/role/role-form.component.mjs +109 -0
  161. package/esm2022/lib/role/role-view/role-view.component.mjs +44 -0
  162. package/esm2022/lib/role/role.model.mjs +66 -0
  163. package/{esm2020 → esm2022}/lib/role/role.module.mjs +21 -21
  164. package/{esm2020 → esm2022}/lib/role/role.routes.mjs +5 -5
  165. package/esm2022/lib/role/role.service.mjs +27 -0
  166. package/esm2022/lib/role/roles-view-all.component.mjs +140 -0
  167. package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +360 -0
  168. package/{esm2020 → esm2022}/lib/searchable-selector/searchable-selector.module.mjs +11 -11
  169. package/{esm2020 → esm2022}/lib/signup/signup-routing.module.mjs +5 -5
  170. package/esm2022/lib/signup/signup.component.mjs +87 -0
  171. package/{esm2020 → esm2022}/lib/signup/signup.module.mjs +11 -11
  172. package/esm2022/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +73 -0
  173. package/{esm2020 → esm2022}/lib/techlify-company-switcher/techlify-company-switcher.module.mjs +9 -9
  174. package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +27 -0
  175. package/esm2022/lib/techlify-feature/techlify-feature-enabled.directive.mjs +79 -0
  176. package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +179 -0
  177. package/{esm2020 → esm2022}/lib/techlify-feature/techlify-feature.module.mjs +17 -17
  178. package/esm2022/lib/techlify-feature/techlify-feature.service.mjs +27 -0
  179. package/{esm2020 → esm2022}/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier-routing.module.mjs +5 -5
  180. package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +109 -0
  181. package/{esm2020 → esm2022}/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.mjs +15 -15
  182. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.mjs +5 -5
  183. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +90 -0
  184. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +13 -13
  185. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-routing.module.mjs +5 -5
  186. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module.mjs +5 -5
  187. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.mjs +180 -0
  188. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module.mjs +19 -19
  189. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form-routing.module.mjs +5 -5
  190. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.mjs +131 -0
  191. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module.mjs +17 -17
  192. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module.mjs +5 -5
  193. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.mjs +186 -0
  194. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module.mjs +19 -19
  195. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter-routing.module.mjs +5 -5
  196. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.mjs +72 -0
  197. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module.mjs +15 -15
  198. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-routing.module.mjs +5 -5
  199. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber.module.mjs +19 -19
  200. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.mjs +6 -0
  201. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form-routing.module.mjs +5 -5
  202. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.mjs +111 -0
  203. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module.mjs +19 -19
  204. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module.mjs +5 -5
  205. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.mjs +171 -0
  206. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module.mjs +17 -17
  207. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-routing.module.mjs +5 -5
  208. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type.module.mjs +17 -17
  209. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-user-status.model.mjs +3 -3
  210. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification.module.mjs +7 -7
  211. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +24 -0
  212. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +301 -0
  213. package/{esm2020 → esm2022}/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +13 -13
  214. package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +189 -0
  215. package/{esm2020 → esm2022}/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +17 -17
  216. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +124 -0
  217. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +13 -13
  218. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +5 -5
  219. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +151 -0
  220. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +19 -19
  221. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update-routing.module.mjs +5 -5
  222. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update.module.mjs +21 -21
  223. package/esm2022/lib/techlify-update/techlify-update.service.mjs +42 -0
  224. package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +169 -0
  225. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +63 -0
  226. package/{esm2020 → esm2022}/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +11 -11
  227. package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +85 -0
  228. package/esm2022/lib/techlify-update/update-notifier/update-notifier.component.mjs +57 -0
  229. package/{esm2020 → esm2022}/lib/techlify-update/update-notifier/update-notifier.module.mjs +13 -13
  230. package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +43 -0
  231. package/{esm2020 → esm2022}/lib/techlify-update/update-view/update-view.module.mjs +9 -9
  232. package/{esm2020 → esm2022}/lib/timeline-filter/timeline-filter-routing.module.mjs +5 -5
  233. package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +253 -0
  234. package/{esm2020 → esm2022}/lib/timeline-filter/timeline-filter.module.mjs +25 -25
  235. package/esm2022/lib/timeline-filter/timeline.model.mjs +18 -0
  236. package/esm2022/lib/user/current-user.service.mjs +155 -0
  237. package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +65 -0
  238. package/esm2022/lib/user/user-explore.component.mjs +55 -0
  239. package/esm2022/lib/user/user-form.component.mjs +234 -0
  240. package/esm2022/lib/user/user-view.component.mjs +76 -0
  241. package/esm2022/lib/user/user.model.mjs +49 -0
  242. package/{esm2020 → esm2022}/lib/user/user.module.mjs +42 -42
  243. package/{esm2020 → esm2022}/lib/user/user.routes.mjs +5 -5
  244. package/esm2022/lib/user/user.service.mjs +42 -0
  245. package/esm2022/lib/user/users-view-all.component.mjs +226 -0
  246. package/esm2022/lib/user-config/user-config.model.mjs +81 -0
  247. package/esm2022/lib/user-config/user-config.service.mjs +68 -0
  248. package/esm2022/lib/user-selector/user-data.service.mjs +37 -0
  249. package/esm2022/lib/user-selector/user-selector.component.mjs +100 -0
  250. package/{esm2020 → esm2022}/lib/user-selector/user-selector.module.mjs +11 -11
  251. package/{esm2020 → esm2022}/lib/utility/date-utils.service.mjs +4 -4
  252. package/esm2022/lib/utility/num-items-selector.component.mjs +33 -0
  253. package/esm2022/lib/utility/number-selector.component.mjs +46 -0
  254. package/{esm2020 → esm2022}/lib/utility/utility.module.mjs +7 -7
  255. package/{fesm2020 → fesm2022}/ngx-techlify-core.mjs +3129 -2408
  256. package/fesm2022/ngx-techlify-core.mjs.map +1 -0
  257. package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +1 -1
  258. package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +1 -1
  259. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +1 -1
  260. package/lib/column-selector/column-selector/column-selector.component.d.ts +1 -1
  261. package/lib/data-table/data-table.component.d.ts +1 -1
  262. package/lib/document-viewer/document-viewer.component.d.ts +1 -1
  263. package/lib/entity-files/entity-files-view-all.component.d.ts +1 -1
  264. package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +1 -1
  265. package/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.d.ts +1 -1
  266. package/lib/file-dropper/file-dropper.component.d.ts +1 -1
  267. package/lib/import-csv/data-import/data-import.component.d.ts +1 -1
  268. package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts +1 -1
  269. package/lib/import-csv/field-mapping/field-mapping.component.d.ts +1 -1
  270. package/lib/import-csv/import-csv.component.d.ts +1 -1
  271. package/lib/import-csv/import-history-list/import-history-list.component.d.ts +1 -1
  272. package/lib/import-csv/import-success/import-success.component.d.ts +1 -1
  273. package/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.d.ts +1 -1
  274. package/lib/loader/loader.component.d.ts +1 -1
  275. package/lib/login-history-for-user/login-history-for-user.component.d.ts +1 -1
  276. package/lib/note/comment-form/comment-form.component.d.ts +1 -1
  277. package/lib/note/note-list/note-list.component.d.ts +1 -1
  278. package/lib/number-input-button/number-input-button/number-input-button.component.d.ts +1 -1
  279. package/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.d.ts +1 -1
  280. package/lib/read-more/read-more.component.d.ts +1 -1
  281. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.d.ts +1 -1
  282. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.d.ts +1 -1
  283. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.d.ts +1 -1
  284. package/lib/restrictors/restrictors-form/restrictors-form.component.d.ts +1 -1
  285. package/lib/role/permission/permissions-management.component.d.ts +1 -1
  286. package/lib/role/roles-view-all.component.d.ts +1 -1
  287. package/lib/searchable-selector/searchable-selector.component.d.ts +2 -1
  288. package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +1 -1
  289. package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +1 -1
  290. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.d.ts +1 -1
  291. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.d.ts +1 -1
  292. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +1 -1
  293. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +1 -1
  294. package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.d.ts +1 -1
  295. package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +1 -1
  296. package/lib/timeline-filter/timeline-filter.component.d.ts +1 -1
  297. package/lib/user/user-enable-button-component/user-enable-button.component.d.ts +1 -1
  298. package/lib/user/user-form.component.d.ts +1 -1
  299. package/lib/user/users-view-all.component.d.ts +1 -1
  300. package/lib/user-selector/user-selector.component.d.ts +1 -1
  301. package/lib/utility/num-items-selector.component.d.ts +1 -1
  302. package/lib/utility/number-selector.component.d.ts +1 -1
  303. package/package.json +19 -25
  304. package/esm2020/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +0 -127
  305. package/esm2020/lib/access-control-config/access-control-config.component.mjs +0 -131
  306. package/esm2020/lib/access-control-config/access-control-config.model.mjs +0 -21
  307. package/esm2020/lib/access-control-config/access-control-config.service.mjs +0 -31
  308. package/esm2020/lib/action-popup/action-popup.component.mjs +0 -34
  309. package/esm2020/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +0 -51
  310. package/esm2020/lib/audit-log/audit-log-list/audit-log-list.component.mjs +0 -139
  311. package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +0 -74
  312. package/esm2020/lib/audit-log/audit-log-view/audit-log-view.component.mjs +0 -51
  313. package/esm2020/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +0 -56
  314. package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +0 -37
  315. package/esm2020/lib/base-model/techlify-form-component.class.mjs +0 -49
  316. package/esm2020/lib/base-model/techlify-listing-component.class.mjs +0 -65
  317. package/esm2020/lib/base-model/techlify-service.class.mjs +0 -68
  318. package/esm2020/lib/change-password/change-password.component.mjs +0 -87
  319. package/esm2020/lib/column-selector/column-selector/column-selector.component.mjs +0 -37
  320. package/esm2020/lib/core/alert.service.mjs +0 -38
  321. package/esm2020/lib/core/api-prefix.interceptor.mjs +0 -26
  322. package/esm2020/lib/core/authentication.guard.mjs +0 -35
  323. package/esm2020/lib/core/authentication.service.mjs +0 -62
  324. package/esm2020/lib/core/cache.interceptor.mjs +0 -58
  325. package/esm2020/lib/core/config.service.mjs +0 -45
  326. package/esm2020/lib/core/core.module.mjs +0 -63
  327. package/esm2020/lib/core/credentials.service.mjs +0 -79
  328. package/esm2020/lib/core/dataManager.service.mjs +0 -119
  329. package/esm2020/lib/core/error-handler.interceptor.mjs +0 -48
  330. package/esm2020/lib/core/error-handler.service.mjs +0 -55
  331. package/esm2020/lib/core/filter.service.mjs +0 -37
  332. package/esm2020/lib/core/http-cache.service.mjs +0 -107
  333. package/esm2020/lib/core/http.service.mjs +0 -84
  334. package/esm2020/lib/core/logger.service.mjs +0 -100
  335. package/esm2020/lib/core/snack/snack.component.mjs +0 -33
  336. package/esm2020/lib/core/storage.service.mjs +0 -38
  337. package/esm2020/lib/core/techlify-config.model.mjs +0 -28
  338. package/esm2020/lib/core/token.interceptor.mjs +0 -28
  339. package/esm2020/lib/data-table/data-table.component.mjs +0 -204
  340. package/esm2020/lib/data-table/data-table.model.mjs +0 -11
  341. package/esm2020/lib/document-viewer/document-viewer.component.mjs +0 -65
  342. package/esm2020/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +0 -76
  343. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +0 -105
  344. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +0 -161
  345. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +0 -101
  346. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +0 -165
  347. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +0 -52
  348. package/esm2020/lib/entity-files/entity-file-form/entity-file-form.component.mjs +0 -161
  349. package/esm2020/lib/entity-files/entity-file.service.mjs +0 -36
  350. package/esm2020/lib/entity-files/entity-files-view-all.component.mjs +0 -346
  351. package/esm2020/lib/export-excel/export-excel-button/export-excel-button.component.mjs +0 -32
  352. package/esm2020/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +0 -90
  353. package/esm2020/lib/file-dropper/file-dropper.component.mjs +0 -125
  354. package/esm2020/lib/file-dropper/file-dropper.model.mjs +0 -3
  355. package/esm2020/lib/forgot-password/forgot-password.component.mjs +0 -69
  356. package/esm2020/lib/import-csv/failed-items-list/failed-items-list.component.mjs +0 -35
  357. package/esm2020/lib/import-csv/field-mapping/field-mapping.component.mjs +0 -153
  358. package/esm2020/lib/import-csv/import-csv.component.mjs +0 -199
  359. package/esm2020/lib/import-csv/import-history-list/import-history-list.component.mjs +0 -71
  360. package/esm2020/lib/import-csv/import-success/import-success.component.mjs +0 -24
  361. package/esm2020/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +0 -109
  362. package/esm2020/lib/loader/loader.component.mjs +0 -23
  363. package/esm2020/lib/login/login.component.mjs +0 -153
  364. package/esm2020/lib/login-history-for-user/login-history-for-user.component.mjs +0 -92
  365. package/esm2020/lib/note/comment-form/comment-form.component.mjs +0 -77
  366. package/esm2020/lib/note/note-form/note-form.component.mjs +0 -79
  367. package/esm2020/lib/note/note-list/note-list.component.mjs +0 -148
  368. package/esm2020/lib/note/note.service.mjs +0 -29
  369. package/esm2020/lib/number-input-button/number-input-button/number-input-button.component.mjs +0 -104
  370. package/esm2020/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +0 -47
  371. package/esm2020/lib/profile/profile-edit.component.mjs +0 -75
  372. package/esm2020/lib/read-more/read-more.component.mjs +0 -43
  373. package/esm2020/lib/request-helper/request-helper.service.mjs +0 -105
  374. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +0 -91
  375. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +0 -19
  376. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +0 -91
  377. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +0 -19
  378. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +0 -92
  379. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +0 -19
  380. package/esm2020/lib/restrictors/restrictor.service.mjs +0 -19
  381. package/esm2020/lib/restrictors/restrictors-form/restrictors-form.component.mjs +0 -102
  382. package/esm2020/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +0 -44
  383. package/esm2020/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +0 -143
  384. package/esm2020/lib/role/permission/permissions-management.component.mjs +0 -114
  385. package/esm2020/lib/role/role-form.component.mjs +0 -99
  386. package/esm2020/lib/role/role-view/role-view.component.mjs +0 -39
  387. package/esm2020/lib/role/role.model.mjs +0 -56
  388. package/esm2020/lib/role/role.service.mjs +0 -26
  389. package/esm2020/lib/role/roles-view-all.component.mjs +0 -131
  390. package/esm2020/lib/searchable-selector/searchable-selector.component.mjs +0 -348
  391. package/esm2020/lib/signup/signup.component.mjs +0 -78
  392. package/esm2020/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +0 -68
  393. package/esm2020/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +0 -24
  394. package/esm2020/lib/techlify-feature/techlify-feature-enabled.directive.mjs +0 -73
  395. package/esm2020/lib/techlify-feature/techlify-feature-listing.component.mjs +0 -169
  396. package/esm2020/lib/techlify-feature/techlify-feature.service.mjs +0 -26
  397. package/esm2020/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +0 -103
  398. package/esm2020/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +0 -86
  399. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.mjs +0 -173
  400. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.mjs +0 -117
  401. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.mjs +0 -180
  402. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.mjs +0 -69
  403. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.mjs +0 -6
  404. package/esm2020/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.mjs +0 -99
  405. package/esm2020/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.mjs +0 -166
  406. package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +0 -15
  407. package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +0 -285
  408. package/esm2020/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +0 -180
  409. package/esm2020/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +0 -116
  410. package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +0 -145
  411. package/esm2020/lib/techlify-update/techlify-update.service.mjs +0 -41
  412. package/esm2020/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +0 -163
  413. package/esm2020/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +0 -60
  414. package/esm2020/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +0 -77
  415. package/esm2020/lib/techlify-update/update-notifier/update-notifier.component.mjs +0 -53
  416. package/esm2020/lib/techlify-update/update-view/update-view.component.mjs +0 -38
  417. package/esm2020/lib/timeline-filter/timeline-filter.component.mjs +0 -243
  418. package/esm2020/lib/timeline-filter/timeline.model.mjs +0 -18
  419. package/esm2020/lib/user/current-user.service.mjs +0 -151
  420. package/esm2020/lib/user/user-enable-button-component/user-enable-button.component.mjs +0 -59
  421. package/esm2020/lib/user/user-explore.component.mjs +0 -50
  422. package/esm2020/lib/user/user-form.component.mjs +0 -219
  423. package/esm2020/lib/user/user-view.component.mjs +0 -68
  424. package/esm2020/lib/user/user.model.mjs +0 -30
  425. package/esm2020/lib/user/user.service.mjs +0 -41
  426. package/esm2020/lib/user/users-view-all.component.mjs +0 -212
  427. package/esm2020/lib/user-config/user-config.model.mjs +0 -50
  428. package/esm2020/lib/user-config/user-config.service.mjs +0 -65
  429. package/esm2020/lib/user-selector/user-data.service.mjs +0 -35
  430. package/esm2020/lib/user-selector/user-selector.component.mjs +0 -91
  431. package/esm2020/lib/utility/num-items-selector.component.mjs +0 -31
  432. package/esm2020/lib/utility/number-selector.component.mjs +0 -42
  433. package/fesm2015/ngx-techlify-core.mjs +0 -13476
  434. package/fesm2015/ngx-techlify-core.mjs.map +0 -1
  435. package/fesm2020/ngx-techlify-core.mjs.map +0 -1
  436. /package/{esm2020 → esm2022}/lib/action-popup/index.mjs +0 -0
  437. /package/{esm2020 → esm2022}/lib/base-model/index.mjs +0 -0
  438. /package/{esm2020 → esm2022}/lib/column-selector/index.mjs +0 -0
  439. /package/{esm2020 → esm2022}/lib/core/index.mjs +0 -0
  440. /package/{esm2020 → esm2022}/lib/data-table/index.mjs +0 -0
  441. /package/{esm2020 → esm2022}/lib/date-validator.mjs +0 -0
  442. /package/{esm2020 → esm2022}/lib/document-viewer/index.mjs +0 -0
  443. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-for-user/index.mjs +0 -0
  444. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.mjs +0 -0
  445. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.mjs +0 -0
  446. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.mjs +0 -0
  447. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.mjs +0 -0
  448. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.mjs +0 -0
  449. /package/{esm2020 → esm2022}/lib/entity-files/index.mjs +0 -0
  450. /package/{esm2020 → esm2022}/lib/file-dropper/index.mjs +0 -0
  451. /package/{esm2020 → esm2022}/lib/forgot-password/index.mjs +0 -0
  452. /package/{esm2020 → esm2022}/lib/import-csv/import-csv-config.mjs +0 -0
  453. /package/{esm2020 → esm2022}/lib/loader/index.mjs +0 -0
  454. /package/{esm2020 → esm2022}/lib/login/index.mjs +0 -0
  455. /package/{esm2020 → esm2022}/lib/note/index.mjs +0 -0
  456. /package/{esm2020 → esm2022}/lib/number-input-button/index.mjs +0 -0
  457. /package/{esm2020 → esm2022}/lib/password-requirement-check/password-check-result.mjs +0 -0
  458. /package/{esm2020 → esm2022}/lib/profile/index.mjs +0 -0
  459. /package/{esm2020 → esm2022}/lib/restrictors/index.mjs +0 -0
  460. /package/{esm2020 → esm2022}/lib/role/index.mjs +0 -0
  461. /package/{esm2020 → esm2022}/lib/searchable-selector/index.mjs +0 -0
  462. /package/{esm2020 → esm2022}/lib/signup/index.mjs +0 -0
  463. /package/{esm2020 → esm2022}/lib/techlify-company-switcher/index.mjs +0 -0
  464. /package/{esm2020 → esm2022}/lib/techlify-feature/techlify-feature.routing.mjs +0 -0
  465. /package/{esm2020 → esm2022}/lib/techlify-notifications/index.mjs +0 -0
  466. /package/{esm2020 → esm2022}/lib/timeline-filter/calculate-timeline.mjs +0 -0
  467. /package/{esm2020 → esm2022}/lib/timeline-filter/index.mjs +0 -0
  468. /package/{esm2020 → esm2022}/lib/user/index.mjs +0 -0
  469. /package/{esm2020 → esm2022}/lib/user/user-type.enum.mjs +0 -0
  470. /package/{esm2020 → esm2022}/lib/user-config/index.mjs +0 -0
  471. /package/{esm2020 → esm2022}/lib/user-selector/index.mjs +0 -0
  472. /package/{esm2020 → esm2022}/lib/utility/index.mjs +0 -0
  473. /package/{esm2020 → esm2022}/ngx-techlify-core.mjs +0 -0
  474. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,120 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./http.service";
4
+ /**
5
+ * Service that provides a wrapper for retrieving data from the server
6
+ * @deprecated use HttpService Instead
7
+ * @author Joshua Kissoon
8
+ * @since 20170709
9
+ */
10
+ export class DataManager {
11
+ http;
12
+ constructor(http) {
13
+ this.http = http;
14
+ }
15
+ /**
16
+ * Callback wrapper for the HTTP GET Call
17
+ *
18
+ * @param urlq The query part of the URL to be sent to the server
19
+ *
20
+ * @author Joshua Kissoon
21
+ * @since 20160826
22
+ * @updated 20170711 to add parameters
23
+ */
24
+ GET(urlq, params = {}) {
25
+ return this.http
26
+ .get(urlq, { params: params })
27
+ .toPromise();
28
+ }
29
+ /**
30
+ * Callback wrapper for the HTTP POST Call
31
+ *
32
+ * @param urlq The query part of the URL to be sent to the server
33
+ * @param object The object containing the POST data to be sent
34
+ *
35
+ * @author Joshua Kissoon
36
+ * @since 20160826
37
+ */
38
+ POST(urlq, object) {
39
+ if (null == object) {
40
+ object = { "blank": "blank" };
41
+ }
42
+ return this.http
43
+ .post(urlq, object)
44
+ .toPromise();
45
+ }
46
+ /**
47
+ * Callback wrapper for the HTTP POST Call
48
+ *
49
+ * @param urlq The query part of the URL to be sent to the server
50
+ * @param object The object containing the POST data to be sent
51
+ *
52
+ * @author Joshua Kissoon
53
+ * @since 20160826
54
+ */
55
+ POSTRAW(urlq, object) {
56
+ if (null == object) {
57
+ object = { "blank": "blank" };
58
+ }
59
+ return this.http
60
+ .skipHeader()
61
+ .post(urlq, object)
62
+ .toPromise();
63
+ }
64
+ /**
65
+ * Callback wrapper for the HTTP PUT Call
66
+ *
67
+ * @param urlq The query part of the URL to be sent to the server
68
+ * @param object The object containing the PUT data to be sent
69
+ *
70
+ * @author Joshua Kissoon
71
+ * @since 20160826
72
+ */
73
+ PUT(urlq, object) {
74
+ if (null == object) {
75
+ object = { "blank": "blank" };
76
+ }
77
+ return this.http
78
+ .put(urlq, object)
79
+ .toPromise();
80
+ }
81
+ /**
82
+ * Callback wrapper for the HTTP PATCH Call
83
+ *
84
+ * @param urlq The query part of the URL to be sent to the server
85
+ * @param object The object containing the PUT data to be sent
86
+ *
87
+ * @author Joshua Kissoon
88
+ * @since 20161107
89
+ */
90
+ PATCH(urlq, object) {
91
+ if (null == object) {
92
+ object = { "blank": "blank" };
93
+ }
94
+ return this.http
95
+ .patch(urlq, object)
96
+ .toPromise();
97
+ }
98
+ /**
99
+ * Callback wrapper for the HTTP DELETE Call
100
+ *
101
+ * @param urlq The query part of the URL to be sent to the server
102
+ *
103
+ * @author Joshua Kissoon
104
+ * @since 20160826
105
+ */
106
+ DELETE(urlq) {
107
+ return this.http
108
+ .delete(urlq)
109
+ .toPromise();
110
+ }
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataManager, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
112
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataManager, providedIn: 'root' });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataManager, decorators: [{
115
+ type: Injectable,
116
+ args: [{
117
+ providedIn: 'root'
118
+ }]
119
+ }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YU1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29yZS9kYXRhTWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQzs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBRUE7SUFBcEIsWUFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFJLENBQUM7SUFFMUM7Ozs7Ozs7O09BUUc7SUFDSCxHQUFHLENBQUMsSUFBWSxFQUFFLE1BQU0sR0FBRyxFQUFFO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQzdCLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILElBQUksQ0FBQyxJQUFZLEVBQUUsTUFBVztRQUMxQixJQUFJLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ2xCLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE9BQU8sQ0FBQyxJQUFZLEVBQUUsTUFBVztRQUM3QixJQUFJLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLFVBQVUsRUFBRTthQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ2xCLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRDs7Ozs7Ozs7T0FRRztJQUNILEdBQUcsQ0FBQyxJQUFZLEVBQUUsTUFBVztRQUN6QixJQUFJLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ2pCLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxJQUFZLEVBQUUsTUFBVztRQUMzQixJQUFJLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ25CLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLElBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQzthQUNaLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7d0dBN0dRLFdBQVc7NEdBQVgsV0FBVyxjQUZSLE1BQU07OzRGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIHRoYXQgcHJvdmlkZXMgYSB3cmFwcGVyIGZvciByZXRyaWV2aW5nIGRhdGEgZnJvbSB0aGUgc2VydmVyXHJcbiAqIEBkZXByZWNhdGVkIHVzZSBIdHRwU2VydmljZSBJbnN0ZWFkXHJcbiAqIEBhdXRob3IgSm9zaHVhIEtpc3Nvb25cclxuICogQHNpbmNlIDIwMTcwNzA5XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFNYW5hZ2VyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIHdyYXBwZXIgZm9yIHRoZSBIVFRQIEdFVCBDYWxsXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB1cmxxIFRoZSBxdWVyeSBwYXJ0IG9mIHRoZSBVUkwgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyXHJcbiAgICAgKiBcclxuICAgICAqIEBhdXRob3IgSm9zaHVhIEtpc3Nvb25cclxuICAgICAqIEBzaW5jZSAyMDE2MDgyNlxyXG4gICAgICogQHVwZGF0ZWQgMjAxNzA3MTEgdG8gYWRkIHBhcmFtZXRlcnNcclxuICAgICAqL1xyXG4gICAgR0VUKHVybHE6IHN0cmluZywgcGFyYW1zID0ge30pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldCh1cmxxLCB7IHBhcmFtczogcGFyYW1zIH0pXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIHdyYXBwZXIgZm9yIHRoZSBIVFRQIFBPU1QgQ2FsbFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdXJscSBUaGUgcXVlcnkgcGFydCBvZiB0aGUgVVJMIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlclxyXG4gICAgICogQHBhcmFtIG9iamVjdCBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIFBPU1QgZGF0YSB0byBiZSBzZW50XHJcbiAgICAgKiBcclxuICAgICAqIEBhdXRob3IgSm9zaHVhIEtpc3Nvb25cclxuICAgICAqIEBzaW5jZSAyMDE2MDgyNlxyXG4gICAgICovXHJcbiAgICBQT1NUKHVybHE6IHN0cmluZywgb2JqZWN0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmIChudWxsID09IG9iamVjdCkge1xyXG4gICAgICAgICAgICBvYmplY3QgPSB7IFwiYmxhbmtcIjogXCJibGFua1wiIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0KHVybHEsIG9iamVjdClcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgd3JhcHBlciBmb3IgdGhlIEhUVFAgUE9TVCBDYWxsXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB1cmxxIFRoZSBxdWVyeSBwYXJ0IG9mIHRoZSBVUkwgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyXHJcbiAgICAgKiBAcGFyYW0gb2JqZWN0IFRoZSBvYmplY3QgY29udGFpbmluZyB0aGUgUE9TVCBkYXRhIHRvIGJlIHNlbnRcclxuICAgICAqIFxyXG4gICAgICogQGF1dGhvciBKb3NodWEgS2lzc29vblxyXG4gICAgICogQHNpbmNlIDIwMTYwODI2XHJcbiAgICAgKi9cclxuICAgIFBPU1RSQVcodXJscTogc3RyaW5nLCBvYmplY3Q6IGFueSk6IGFueSB7XHJcbiAgICAgICAgaWYgKG51bGwgPT0gb2JqZWN0KSB7XHJcbiAgICAgICAgICAgIG9iamVjdCA9IHsgXCJibGFua1wiOiBcImJsYW5rXCIgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnNraXBIZWFkZXIoKVxyXG4gICAgICAgICAgICAucG9zdCh1cmxxLCBvYmplY3QpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayB3cmFwcGVyIGZvciB0aGUgSFRUUCBQVVQgQ2FsbFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdXJscSBUaGUgcXVlcnkgcGFydCBvZiB0aGUgVVJMIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlclxyXG4gICAgICogQHBhcmFtIG9iamVjdCBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIFBVVCBkYXRhIHRvIGJlIHNlbnRcclxuICAgICAqIFxyXG4gICAgICogQGF1dGhvciBKb3NodWEgS2lzc29vblxyXG4gICAgICogQHNpbmNlIDIwMTYwODI2XHJcbiAgICAgKi9cclxuICAgIFBVVCh1cmxxOiBzdHJpbmcsIG9iamVjdDogYW55KTogYW55IHtcclxuICAgICAgICBpZiAobnVsbCA9PSBvYmplY3QpIHtcclxuICAgICAgICAgICAgb2JqZWN0ID0geyBcImJsYW5rXCI6IFwiYmxhbmtcIiB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucHV0KHVybHEsIG9iamVjdClcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgd3JhcHBlciBmb3IgdGhlIEhUVFAgUEFUQ0ggQ2FsbFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdXJscSBUaGUgcXVlcnkgcGFydCBvZiB0aGUgVVJMIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlclxyXG4gICAgICogQHBhcmFtIG9iamVjdCBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIFBVVCBkYXRhIHRvIGJlIHNlbnRcclxuICAgICAqIFxyXG4gICAgICogQGF1dGhvciBKb3NodWEgS2lzc29vblxyXG4gICAgICogQHNpbmNlIDIwMTYxMTA3XHJcbiAgICAgKi9cclxuICAgIFBBVENIKHVybHE6IHN0cmluZywgb2JqZWN0OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmIChudWxsID09IG9iamVjdCkge1xyXG4gICAgICAgICAgICBvYmplY3QgPSB7IFwiYmxhbmtcIjogXCJibGFua1wiIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wYXRjaCh1cmxxLCBvYmplY3QpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIHdyYXBwZXIgZm9yIHRoZSBIVFRQIERFTEVURSBDYWxsXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB1cmxxIFRoZSBxdWVyeSBwYXJ0IG9mIHRoZSBVUkwgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyXHJcbiAgICAgKiBcclxuICAgICAqIEBhdXRob3IgSm9zaHVhIEtpc3Nvb25cclxuICAgICAqIEBzaW5jZSAyMDE2MDgyNlxyXG4gICAgICovXHJcbiAgICBERUxFVEUodXJscTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5kZWxldGUodXJscSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
@@ -0,0 +1,50 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { throwError } from 'rxjs';
3
+ import { catchError } from 'rxjs/operators';
4
+ import { Logger } from './logger.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./config.service";
7
+ import * as i2 from "./error-handler.service";
8
+ const log = new Logger('ErrorHandlerInterceptor');
9
+ /**
10
+ * Adds a default error handler to all requests.
11
+ */
12
+ export class ErrorHandlerInterceptor {
13
+ configService;
14
+ errorHandler;
15
+ constructor(configService, errorHandler) {
16
+ this.configService = configService;
17
+ this.errorHandler = errorHandler;
18
+ }
19
+ intercept(request, next) {
20
+ return next.handle(request).pipe(catchError(error => this.handleError(error)));
21
+ }
22
+ // Customize the default error handler here if needed
23
+ handleError(error) {
24
+ let errorMessage = '';
25
+ if (error.error instanceof ErrorEvent) {
26
+ // client-side error
27
+ errorMessage = `Client Error: ${this.configService?.getProjectKey()}: ${error.error.message}`;
28
+ }
29
+ else {
30
+ // server-side error
31
+ errorMessage = `Server Error: ${this.configService?.getProjectKey()}`;
32
+ try {
33
+ this.errorHandler.handleError(error, 'Unexpected Server Error, try later or contact service team');
34
+ }
35
+ catch (e) {
36
+ console.log("Unable to handle server error", e);
37
+ }
38
+ }
39
+ return throwError(error);
40
+ }
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlerInterceptor, deps: [{ token: i1.ConfigService }, { token: i2.ErrorHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
42
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlerInterceptor, providedIn: 'root' });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlerInterceptor, decorators: [{
45
+ type: Injectable,
46
+ args: [{
47
+ providedIn: 'root'
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.ErrorHandlerService }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29yZS9lcnJvci1oYW5kbGVyLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBSTFDLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFbEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWQ7SUFBc0M7SUFBMUQsWUFBb0IsYUFBNEIsRUFBVSxZQUFpQztRQUF2RSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtJQUFJLENBQUM7SUFFaEcsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQscURBQXFEO0lBQzdDLFdBQVcsQ0FBQyxLQUF3QjtRQUMxQyxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxLQUFLLENBQUMsS0FBSyxZQUFZLFVBQVUsRUFBRTtZQUNyQyxvQkFBb0I7WUFDcEIsWUFBWSxHQUFHLGlCQUFpQixJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDL0Y7YUFBTTtZQUNMLG9CQUFvQjtZQUNwQixZQUFZLEdBQUcsaUJBQWlCLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN0RSxJQUFJO2dCQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSw0REFBNEQsQ0FBQyxDQUFDO2FBQ3BHO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNqRDtTQUNGO1FBQ0QsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzt3R0F4QlUsdUJBQXVCOzRHQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7NEZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEludGVyY2VwdG9yLCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJy4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4vY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JIYW5kbGVyU2VydmljZSB9IGZyb20gJy4vZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcblxuY29uc3QgbG9nID0gbmV3IExvZ2dlcignRXJyb3JIYW5kbGVySW50ZXJjZXB0b3InKTtcblxuLyoqXG4gKiBBZGRzIGEgZGVmYXVsdCBlcnJvciBoYW5kbGVyIHRvIGFsbCByZXF1ZXN0cy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JIYW5kbGVySW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSwgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlclNlcnZpY2UpIHsgfVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShjYXRjaEVycm9yKGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKSk7XG4gIH1cblxuICAvLyBDdXN0b21pemUgdGhlIGRlZmF1bHQgZXJyb3IgaGFuZGxlciBoZXJlIGlmIG5lZWRlZFxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgaWYgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xuICAgICAgLy8gY2xpZW50LXNpZGUgZXJyb3JcbiAgICAgIGVycm9yTWVzc2FnZSA9IGBDbGllbnQgRXJyb3I6ICR7dGhpcy5jb25maWdTZXJ2aWNlPy5nZXRQcm9qZWN0S2V5KCl9OiAke2Vycm9yLmVycm9yLm1lc3NhZ2V9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2VydmVyLXNpZGUgZXJyb3JcbiAgICAgIGVycm9yTWVzc2FnZSA9IGBTZXJ2ZXIgRXJyb3I6ICR7dGhpcy5jb25maWdTZXJ2aWNlPy5nZXRQcm9qZWN0S2V5KCl9YDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGVycm9yLCAnVW5leHBlY3RlZCBTZXJ2ZXIgRXJyb3IsIHRyeSBsYXRlciBvciBjb250YWN0IHNlcnZpY2UgdGVhbScpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIlVuYWJsZSB0byBoYW5kbGUgc2VydmVyIGVycm9yXCIsIGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,57 @@
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./alert.service";
4
+ import * as i2 from "./techlify-config.model";
5
+ /**
6
+ * Service used to handle errors from the request
7
+ *
8
+ * @author Joshua Kissoon
9
+ * @since 20171202
10
+ */
11
+ export class ErrorHandlerService {
12
+ alerter;
13
+ config;
14
+ constructor(alerter, config) {
15
+ this.alerter = alerter;
16
+ this.config = config;
17
+ }
18
+ handleError(errorResponse, msg = '') {
19
+ // 1 - Create empty array to store errors
20
+ const errors = [];
21
+ // 2 - check if the error object is present in the response
22
+ if (errorResponse?.error) {
23
+ // 3 - Check for Laravel form validation error messages object
24
+ if (errorResponse?.error?.errors) {
25
+ // 4 - For each error property (which is a form field)
26
+ for (const property in errorResponse.error.errors) {
27
+ if (errorResponse.error.errors?.hasOwnProperty(property)) {
28
+ // 5 - Extract it's array of errors
29
+ const propertyErrors = errorResponse?.error?.errors[property];
30
+ // 6 - Push all errors in the array to the errors array
31
+ propertyErrors.forEach(error => errors.push(error));
32
+ }
33
+ }
34
+ }
35
+ if (errors.length === 0) {
36
+ // 7 - Push the main error message to the array of errors if there is no validation error
37
+ errors.push(errorResponse.error.message ? errorResponse.error.message : errorResponse.error?.error);
38
+ }
39
+ }
40
+ var errMessage = errors.length ? errors[0] : msg;
41
+ this.alerter.addAlert("Error: " + errMessage, "warning");
42
+ if (errorResponse.status == 403 && this.config.isLogoutWhileApiGetsFailed) {
43
+ sessionStorage.clear();
44
+ localStorage.clear();
45
+ location.reload();
46
+ }
47
+ }
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlerService, deps: [{ token: i1.AlertService }, { token: i2.TechlifyConfig }], target: i0.ɵɵFactoryTarget.Injectable });
49
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlerService, providedIn: 'root' });
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlerService, decorators: [{
52
+ type: Injectable,
53
+ args: [{
54
+ providedIn: 'root'
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i2.TechlifyConfig }]; } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb3JlL2Vycm9yLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBSTNDOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUVWO0lBQ1Y7SUFEVixZQUFvQixPQUFxQixFQUMvQixNQUFzQjtRQURaLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7SUFFaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxhQUFrQixFQUFFLE1BQWMsRUFBRTtRQUM5Qyx5Q0FBeUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLDJEQUEyRDtRQUMzRCxJQUFJLGFBQWEsRUFBRSxLQUFLLEVBQUU7WUFFeEIsOERBQThEO1lBQzlELElBQUksYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBRWhDLHNEQUFzRDtnQkFDdEQsS0FBSyxNQUFNLFFBQVEsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFFakQsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7d0JBRXhELG1DQUFtQzt3QkFDbkMsTUFBTSxjQUFjLEdBQWtCLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUU3RSx1REFBdUQ7d0JBQ3ZELGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQ3JEO2lCQUVGO2FBQ0Y7WUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN2Qix5RkFBeUY7Z0JBQ3pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3JHO1NBQ0Y7UUFDRCxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXpELElBQUksYUFBYSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsRUFBRTtZQUN6RSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7d0dBN0NVLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZWNobGlmeUNvbmZpZyB9IGZyb20gJy4vdGVjaGxpZnktY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gXCIuL2FsZXJ0LnNlcnZpY2VcIjtcclxuXHJcblxyXG4vKipcclxuICogU2VydmljZSB1c2VkIHRvIGhhbmRsZSBlcnJvcnMgZnJvbSB0aGUgcmVxdWVzdFxyXG4gKlxyXG4gKiBAYXV0aG9yIEpvc2h1YSBLaXNzb29uXHJcbiAqIEBzaW5jZSAyMDE3MTIwMlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRXJyb3JIYW5kbGVyU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxlcnRlcjogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IFRlY2hsaWZ5Q29uZmlnLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3JSZXNwb25zZTogYW55LCBtc2c6IHN0cmluZyA9ICcnKSB7XHJcbiAgICAvLyAxIC0gQ3JlYXRlIGVtcHR5IGFycmF5IHRvIHN0b3JlIGVycm9yc1xyXG4gICAgY29uc3QgZXJyb3JzID0gW107XHJcblxyXG4gICAgLy8gMiAtIGNoZWNrIGlmIHRoZSBlcnJvciBvYmplY3QgaXMgcHJlc2VudCBpbiB0aGUgcmVzcG9uc2VcclxuICAgIGlmIChlcnJvclJlc3BvbnNlPy5lcnJvcikge1xyXG5cclxuICAgICAgLy8gMyAtIENoZWNrIGZvciBMYXJhdmVsIGZvcm0gdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcyBvYmplY3RcclxuICAgICAgaWYgKGVycm9yUmVzcG9uc2U/LmVycm9yPy5lcnJvcnMpIHtcclxuXHJcbiAgICAgICAgLy8gNCAtIEZvciBlYWNoIGVycm9yIHByb3BlcnR5ICh3aGljaCBpcyBhIGZvcm0gZmllbGQpXHJcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBlcnJvclJlc3BvbnNlLmVycm9yLmVycm9ycykge1xyXG5cclxuICAgICAgICAgIGlmIChlcnJvclJlc3BvbnNlLmVycm9yLmVycm9ycz8uaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XHJcblxyXG4gICAgICAgICAgICAvLyA1IC0gRXh0cmFjdCBpdCdzIGFycmF5IG9mIGVycm9yc1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eUVycm9yczogQXJyYXk8c3RyaW5nPiA9IGVycm9yUmVzcG9uc2U/LmVycm9yPy5lcnJvcnNbcHJvcGVydHldO1xyXG5cclxuICAgICAgICAgICAgLy8gNiAtIFB1c2ggYWxsIGVycm9ycyBpbiB0aGUgYXJyYXkgdG8gdGhlIGVycm9ycyBhcnJheVxyXG4gICAgICAgICAgICBwcm9wZXJ0eUVycm9ycy5mb3JFYWNoKGVycm9yID0+IGVycm9ycy5wdXNoKGVycm9yKSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAvLyA3IC0gUHVzaCB0aGUgbWFpbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBhcnJheSBvZiBlcnJvcnMgaWYgdGhlcmUgaXMgbm8gdmFsaWRhdGlvbiBlcnJvclxyXG4gICAgICAgIGVycm9ycy5wdXNoKGVycm9yUmVzcG9uc2UuZXJyb3IubWVzc2FnZSA/IGVycm9yUmVzcG9uc2UuZXJyb3IubWVzc2FnZSA6IGVycm9yUmVzcG9uc2UuZXJyb3I/LmVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdmFyIGVyck1lc3NhZ2UgPSBlcnJvcnMubGVuZ3RoID8gZXJyb3JzWzBdIDogbXNnO1xyXG4gICAgdGhpcy5hbGVydGVyLmFkZEFsZXJ0KFwiRXJyb3I6IFwiICsgZXJyTWVzc2FnZSwgXCJ3YXJuaW5nXCIpO1xyXG5cclxuICAgIGlmIChlcnJvclJlc3BvbnNlLnN0YXR1cyA9PSA0MDMgJiYgdGhpcy5jb25maWcuaXNMb2dvdXRXaGlsZUFwaUdldHNGYWlsZWQpIHtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ export class FilterService {
5
+ router;
6
+ filters;
7
+ constructor(router) {
8
+ this.router = router;
9
+ }
10
+ applyFilterToRoute(url, filter) {
11
+ this.router.navigate([filter], {
12
+ relativeTo: url,
13
+ replaceUrl: true
14
+ });
15
+ }
16
+ getFiltersFromRoute(url, filterFormGroup) {
17
+ url.params.subscribe(params => {
18
+ for (var filter in params) {
19
+ if (params[filter]) {
20
+ for (let [key, value] of Object.entries(filterFormGroup)) {
21
+ if (key === filter) {
22
+ filterFormGroup[key] = params[filter];
23
+ }
24
+ }
25
+ }
26
+ }
27
+ });
28
+ return filterFormGroup;
29
+ }
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService, providedIn: 'root' });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterService, decorators: [{
34
+ type: Injectable,
35
+ args: [{
36
+ providedIn: 'root'
37
+ }]
38
+ }], ctorParameters: function () { return [{ type: i1.Router }]; } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NvcmUvZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTTNDLE1BQU0sT0FBTyxhQUFhO0lBSUo7SUFGcEIsT0FBTyxDQUFNO0lBRWIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBSSxDQUFDO0lBRXZDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxNQUFNO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzNCO1lBQ0UsVUFBVSxFQUFFLEdBQUc7WUFDZixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBRyxFQUFFLGVBQWU7UUFDdEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ2xCLE1BQU0sQ0FBQyxFQUFFO1lBQ1AsS0FBSyxJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUU7Z0JBQ3pCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUVsQixLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTt3QkFDeEQsSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFOzRCQUNsQixlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUN2QztxQkFDRjtpQkFFRjthQUVGO1FBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO3dHQWpDVSxhQUFhOzRHQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZXJ2aWNlIHtcblxuICBmaWx0ZXJzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XG5cbiAgYXBwbHlGaWx0ZXJUb1JvdXRlKHVybCwgZmlsdGVyKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2ZpbHRlcl0sXG4gICAgICB7XG4gICAgICAgIHJlbGF0aXZlVG86IHVybCxcbiAgICAgICAgcmVwbGFjZVVybDogdHJ1ZVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGdldEZpbHRlcnNGcm9tUm91dGUodXJsLCBmaWx0ZXJGb3JtR3JvdXApIHtcbiAgICB1cmwucGFyYW1zLnN1YnNjcmliZShcbiAgICAgIHBhcmFtcyA9PiB7XG4gICAgICAgIGZvciAodmFyIGZpbHRlciBpbiBwYXJhbXMpIHtcbiAgICAgICAgICBpZiAocGFyYW1zW2ZpbHRlcl0pIHtcblxuICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpbHRlckZvcm1Hcm91cCkpIHtcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyRm9ybUdyb3VwW2tleV0gPSBwYXJhbXNbZmlsdGVyXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiBmaWx0ZXJGb3JtR3JvdXA7XG4gIH1cblxufVxuIl19
@@ -12,13 +12,13 @@ export class FormValidatorService {
12
12
  const error = Object.keys(formGroup.get(field).errors);
13
13
  return (error.length > 0) ? (errorMessages[errorField || field][error[0]] ? errorMessages[errorField || field][error[0]] : '') : '';
14
14
  }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormValidatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormValidatorService, providedIn: 'root' });
15
17
  }
16
- FormValidatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormValidatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- FormValidatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormValidatorService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormValidatorService, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormValidatorService, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{
21
21
  providedIn: 'root'
22
22
  }]
23
23
  }], ctorParameters: function () { return []; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29yZS9mb3JtLXZhbGlkYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsZ0JBQWdCLENBQUM7SUFFakIsbUNBQW1DO0lBQ25DLFlBQVksQ0FBQyxLQUFhLEVBQUUsU0FBaUMsRUFBRSxZQUFzQjtRQUNuRixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNsRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxlQUFlLENBQUMsS0FBYSxFQUFFLFNBQWlDLEVBQUUsYUFBa0IsRUFBRSxVQUFtQjtRQUN2RyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0SSxDQUFDOztrSEFkVSxvQkFBb0I7c0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdG9yU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKipNZXRob2QgdG8gZXZhbHVhdGUgZm9ybSBmaWVsZHMqL1xuICBpc0ZpZWxkVmFsaWQoZmllbGQ6IHN0cmluZywgZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwIHwgYW55LCBmaXJzdEF0dGVtcHQ/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuICghZm9ybUdyb3VwLmdldChmaWVsZCkudmFsaWQgJiYgZm9ybUdyb3VwLmdldChmaWVsZCkudG91Y2hlZCkgfHxcbiAgICAgICghZm9ybUdyb3VwLmdldChmaWVsZCkudmFsaWQgJiYgZm9ybUdyb3VwLmdldChmaWVsZCkudW50b3VjaGVkICYmIGZpcnN0QXR0ZW1wdCk7XG4gIH1cblxuICAvKipNZXRob2QgdG8gZmluZCBlcnJvciBpbiBmb3JtIGZpZWxkcyovXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogc3RyaW5nLCBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAgfCBhbnksIGVycm9yTWVzc2FnZXM6IGFueSwgZXJyb3JGaWVsZD86IHN0cmluZykge1xuICAgIGNvbnN0IGVycm9yID0gT2JqZWN0LmtleXMoZm9ybUdyb3VwLmdldChmaWVsZCkuZXJyb3JzKTtcbiAgICByZXR1cm4gKGVycm9yLmxlbmd0aCA+IDApID8gKGVycm9yTWVzc2FnZXNbZXJyb3JGaWVsZCB8fCBmaWVsZF1bZXJyb3JbMF1dID8gZXJyb3JNZXNzYWdlc1tlcnJvckZpZWxkIHx8IGZpZWxkXVtlcnJvclswXV0gOiAnJykgOiAnJztcbiAgfVxuXG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29yZS9mb3JtLXZhbGlkYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsZ0JBQWdCLENBQUM7SUFFakIsbUNBQW1DO0lBQ25DLFlBQVksQ0FBQyxLQUFhLEVBQUUsU0FBaUMsRUFBRSxZQUFzQjtRQUNuRixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNsRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxlQUFlLENBQUMsS0FBYSxFQUFFLFNBQWlDLEVBQUUsYUFBa0IsRUFBRSxVQUFtQjtRQUN2RyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0SSxDQUFDO3dHQWRVLG9CQUFvQjs0R0FBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdG9yU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKipNZXRob2QgdG8gZXZhbHVhdGUgZm9ybSBmaWVsZHMqL1xuICBpc0ZpZWxkVmFsaWQoZmllbGQ6IHN0cmluZywgZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwIHwgYW55LCBmaXJzdEF0dGVtcHQ/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuICghZm9ybUdyb3VwLmdldChmaWVsZCkudmFsaWQgJiYgZm9ybUdyb3VwLmdldChmaWVsZCkudG91Y2hlZCkgfHxcbiAgICAgICghZm9ybUdyb3VwLmdldChmaWVsZCkudmFsaWQgJiYgZm9ybUdyb3VwLmdldChmaWVsZCkudW50b3VjaGVkICYmIGZpcnN0QXR0ZW1wdCk7XG4gIH1cblxuICAvKipNZXRob2QgdG8gZmluZCBlcnJvciBpbiBmb3JtIGZpZWxkcyovXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogc3RyaW5nLCBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAgfCBhbnksIGVycm9yTWVzc2FnZXM6IGFueSwgZXJyb3JGaWVsZD86IHN0cmluZykge1xuICAgIGNvbnN0IGVycm9yID0gT2JqZWN0LmtleXMoZm9ybUdyb3VwLmdldChmaWVsZCkuZXJyb3JzKTtcbiAgICByZXR1cm4gKGVycm9yLmxlbmd0aCA+IDApID8gKGVycm9yTWVzc2FnZXNbZXJyb3JGaWVsZCB8fCBmaWVsZF1bZXJyb3JbMF1dID8gZXJyb3JNZXNzYWdlc1tlcnJvckZpZWxkIHx8IGZpZWxkXVtlcnJvclswXV0gOiAnJykgOiAnJztcbiAgfVxuXG59XG4iXX0=
@@ -12,13 +12,13 @@ export class HeaderInterceptor {
12
12
  });
13
13
  return next.handle(request);
14
14
  }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderInterceptor, providedIn: 'root' });
15
17
  }
16
- HeaderInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- HeaderInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderInterceptor, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderInterceptor, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HeaderInterceptor, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{
21
21
  providedIn: 'root'
22
22
  }]
23
23
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb3JlL2hlYWRlci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQzs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEIsVUFBVSxFQUFFO2dCQUNWLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0I7YUFDMUU7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7K0dBVFUsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG4vKipcbiAqIFByZWZpeGVzIGFsbCByZXF1ZXN0cyBub3Qgc3RhcnRpbmcgd2l0aCBgaHR0cFtzXWAgd2l0aCBgZW52aXJvbm1lbnQuc2VydmVyVXJsYC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVySW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSB8fCAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICB9XG59XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb3JlL2hlYWRlci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQzs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEIsVUFBVSxFQUFFO2dCQUNWLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0I7YUFDMUU7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQzt3R0FUVSxpQkFBaUI7NEdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG4vKipcbiAqIFByZWZpeGVzIGFsbCByZXF1ZXN0cyBub3Qgc3RhcnRpbmcgd2l0aCBgaHR0cFtzXWAgd2l0aCBgZW52aXJvbm1lbnQuc2VydmVyVXJsYC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVySW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSB8fCAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,110 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Logger } from './logger.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./config.service";
5
+ const log = new Logger('HttpCacheService');
6
+ /**
7
+ * Provides a cache facility for HTTP requests with configurable persistence policy.
8
+ */
9
+ export class HttpCacheService {
10
+ configService;
11
+ cachedData = {};
12
+ storage;
13
+ cachePersistenceKey;
14
+ constructor(configService) {
15
+ this.configService = configService;
16
+ this.storage = this.configService.getStorage();
17
+ this.cachePersistenceKey = this.configService.getProjectKey() + '_HTTP_CACHE';
18
+ this.loadCacheData();
19
+ }
20
+ /**
21
+ * Sets the cache data for the specified request.
22
+ * @param {!string} url The request URL.
23
+ * @param {ResponseOptions} data The received data.
24
+ * @param {Date=} lastUpdated The cache last update, current date is used if not specified.
25
+ */
26
+ setCacheData(url, data, lastUpdated) {
27
+ this.cachedData[url] = {
28
+ lastUpdated: lastUpdated || new Date(),
29
+ data: data
30
+ };
31
+ log.debug(`Cache set for key: "${url}"`);
32
+ this.saveCacheData();
33
+ }
34
+ /**
35
+ * Gets the cached data for the specified request.
36
+ * @param {!string} url The request URL.
37
+ * @return {?ResponseOptions} The cached data or null if no cached data exists for this request.
38
+ */
39
+ getCacheData(url) {
40
+ const cacheEntry = this.cachedData[url];
41
+ if (cacheEntry) {
42
+ log.debug(`Cache hit for key: "${url}"`);
43
+ return cacheEntry.data;
44
+ }
45
+ return null;
46
+ }
47
+ /**
48
+ * Gets the cached entry for the specified request.
49
+ * @param {!string} url The request URL.
50
+ * @return {?HttpCacheEntry} The cache entry or null if no cache entry exists for this request.
51
+ */
52
+ getHttpCacheEntry(url) {
53
+ return this.cachedData[url] || null;
54
+ }
55
+ /**
56
+ * Clears the cached entry (if exists) for the specified request.
57
+ * @param {!string} url The request URL.
58
+ */
59
+ clearCache(url) {
60
+ delete this.cachedData[url];
61
+ log.debug(`Cache cleared for key: "${url}"`);
62
+ this.saveCacheData();
63
+ }
64
+ /**
65
+ * Cleans cache entries older than the specified date.
66
+ * @param {date=} expirationDate The cache expiration date. If no date is specified, all cache is cleared.
67
+ */
68
+ cleanCache(expirationDate) {
69
+ if (expirationDate) {
70
+ Object(this.cachedData).keys.forEach((key) => {
71
+ if (expirationDate >= this.cachedData[key]?.lastUpdated) {
72
+ delete this.cachedData[key];
73
+ }
74
+ });
75
+ }
76
+ else {
77
+ this.cachedData = {};
78
+ }
79
+ this.saveCacheData();
80
+ }
81
+ /**
82
+ * Sets the cache persistence policy.
83
+ * Note that changing the cache persistence will also clear the cache from its previous storage.
84
+ * @param {'local'|'session'=} persistence How the cache should be persisted, it can be either local or session
85
+ * storage, or if no value is provided it will be only in-memory (default).
86
+ */
87
+ setPersistence(persistence) {
88
+ this.cleanCache();
89
+ this.storage = persistence === 'local' ? localStorage : persistence === 'session' ? sessionStorage : null;
90
+ this.loadCacheData();
91
+ }
92
+ saveCacheData() {
93
+ if (this.storage) {
94
+ this.storage[this.cachePersistenceKey] = JSON.stringify(this.cachedData);
95
+ }
96
+ }
97
+ loadCacheData() {
98
+ const data = this.storage ? this.storage[this.cachePersistenceKey] : null;
99
+ this.cachedData = data ? JSON.parse(data) : {};
100
+ }
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpCacheService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
102
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpCacheService, providedIn: 'root' });
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpCacheService, decorators: [{
105
+ type: Injectable,
106
+ args: [{
107
+ providedIn: 'root'
108
+ }]
109
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }]; } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb3JlL2h0dHAtY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFRM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZ0JBQWdCO0lBTVA7SUFKWixVQUFVLEdBQXVDLEVBQUUsQ0FBQztJQUNwRCxPQUFPLENBQXVCO0lBQzlCLG1CQUFtQixDQUFlO0lBRTFDLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxhQUFhLENBQUM7UUFDOUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBQyxHQUFXLEVBQUUsSUFBdUIsRUFBRSxXQUFrQjtRQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHO1lBQ3JCLFdBQVcsRUFBRSxXQUFXLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDdEMsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ0YsR0FBRyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsR0FBVztRQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLElBQUksVUFBVSxFQUFFO1lBQ2QsR0FBRyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUN6QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUM7U0FDeEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsR0FBVztRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsR0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsR0FBRyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxjQUFxQjtRQUM5QixJQUFJLGNBQWMsRUFBRTtZQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtnQkFDbkQsSUFBSSxjQUFjLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUU7b0JBQ3ZELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDN0I7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsV0FBaUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDMUU7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDMUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO3dHQXBHVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcblxuY29uc3QgbG9nID0gbmV3IExvZ2dlcignSHR0cENhY2hlU2VydmljZScpO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENhY2hlRW50cnkge1xuICBsYXN0VXBkYXRlZDogRGF0ZTtcbiAgZGF0YTogSHR0cFJlc3BvbnNlPGFueT47XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYSBjYWNoZSBmYWNpbGl0eSBmb3IgSFRUUCByZXF1ZXN0cyB3aXRoIGNvbmZpZ3VyYWJsZSBwZXJzaXN0ZW5jZSBwb2xpY3kuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEh0dHBDYWNoZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgY2FjaGVkRGF0YTogeyBba2V5OiBzdHJpbmddOiBIdHRwQ2FjaGVFbnRyeTsgfSA9IHt9O1xuICBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2UgfCBhbnkgfCBudWxsO1xuICBwcml2YXRlIGNhY2hlUGVyc2lzdGVuY2VLZXk6IFN0cmluZyB8IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLnN0b3JhZ2UgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0U3RvcmFnZSgpO1xuICAgIHRoaXMuY2FjaGVQZXJzaXN0ZW5jZUtleSA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRQcm9qZWN0S2V5KCkgKyAnX0hUVFBfQ0FDSEUnO1xuICAgIHRoaXMubG9hZENhY2hlRGF0YSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNhY2hlIGRhdGEgZm9yIHRoZSBzcGVjaWZpZWQgcmVxdWVzdC5cbiAgICogQHBhcmFtIHshc3RyaW5nfSB1cmwgVGhlIHJlcXVlc3QgVVJMLlxuICAgKiBAcGFyYW0ge1Jlc3BvbnNlT3B0aW9uc30gZGF0YSBUaGUgcmVjZWl2ZWQgZGF0YS5cbiAgICogQHBhcmFtIHtEYXRlPX0gbGFzdFVwZGF0ZWQgVGhlIGNhY2hlIGxhc3QgdXBkYXRlLCBjdXJyZW50IGRhdGUgaXMgdXNlZCBpZiBub3Qgc3BlY2lmaWVkLlxuICAgKi9cbiAgc2V0Q2FjaGVEYXRhKHVybDogc3RyaW5nLCBkYXRhOiBIdHRwUmVzcG9uc2U8YW55PiwgbGFzdFVwZGF0ZWQ/OiBEYXRlKSB7XG4gICAgdGhpcy5jYWNoZWREYXRhW3VybF0gPSB7XG4gICAgICBsYXN0VXBkYXRlZDogbGFzdFVwZGF0ZWQgfHwgbmV3IERhdGUoKSxcbiAgICAgIGRhdGE6IGRhdGFcbiAgICB9O1xuICAgIGxvZy5kZWJ1ZyhgQ2FjaGUgc2V0IGZvciBrZXk6IFwiJHt1cmx9XCJgKTtcbiAgICB0aGlzLnNhdmVDYWNoZURhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjYWNoZWQgZGF0YSBmb3IgdGhlIHNwZWNpZmllZCByZXF1ZXN0LlxuICAgKiBAcGFyYW0geyFzdHJpbmd9IHVybCBUaGUgcmVxdWVzdCBVUkwuXG4gICAqIEByZXR1cm4gez9SZXNwb25zZU9wdGlvbnN9IFRoZSBjYWNoZWQgZGF0YSBvciBudWxsIGlmIG5vIGNhY2hlZCBkYXRhIGV4aXN0cyBmb3IgdGhpcyByZXF1ZXN0LlxuICAgKi9cbiAgZ2V0Q2FjaGVEYXRhKHVybDogc3RyaW5nKTogSHR0cFJlc3BvbnNlPGFueT4gfCBudWxsIHtcbiAgICBjb25zdCBjYWNoZUVudHJ5ID0gdGhpcy5jYWNoZWREYXRhW3VybF07XG5cbiAgICBpZiAoY2FjaGVFbnRyeSkge1xuICAgICAgbG9nLmRlYnVnKGBDYWNoZSBoaXQgZm9yIGtleTogXCIke3VybH1cImApO1xuICAgICAgcmV0dXJuIGNhY2hlRW50cnkuZGF0YTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjYWNoZWQgZW50cnkgZm9yIHRoZSBzcGVjaWZpZWQgcmVxdWVzdC5cbiAgICogQHBhcmFtIHshc3RyaW5nfSB1cmwgVGhlIHJlcXVlc3QgVVJMLlxuICAgKiBAcmV0dXJuIHs/SHR0cENhY2hlRW50cnl9IFRoZSBjYWNoZSBlbnRyeSBvciBudWxsIGlmIG5vIGNhY2hlIGVudHJ5IGV4aXN0cyBmb3IgdGhpcyByZXF1ZXN0LlxuICAgKi9cbiAgZ2V0SHR0cENhY2hlRW50cnkodXJsOiBzdHJpbmcpOiBIdHRwQ2FjaGVFbnRyeSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNhY2hlZERhdGFbdXJsXSB8fCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgY2FjaGVkIGVudHJ5IChpZiBleGlzdHMpIGZvciB0aGUgc3BlY2lmaWVkIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7IXN0cmluZ30gdXJsIFRoZSByZXF1ZXN0IFVSTC5cbiAgICovXG4gIGNsZWFyQ2FjaGUodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBkZWxldGUgdGhpcy5jYWNoZWREYXRhW3VybF07XG4gICAgbG9nLmRlYnVnKGBDYWNoZSBjbGVhcmVkIGZvciBrZXk6IFwiJHt1cmx9XCJgKTtcbiAgICB0aGlzLnNhdmVDYWNoZURhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbnMgY2FjaGUgZW50cmllcyBvbGRlciB0aGFuIHRoZSBzcGVjaWZpZWQgZGF0ZS5cbiAgICogQHBhcmFtIHtkYXRlPX0gZXhwaXJhdGlvbkRhdGUgVGhlIGNhY2hlIGV4cGlyYXRpb24gZGF0ZS4gSWYgbm8gZGF0ZSBpcyBzcGVjaWZpZWQsIGFsbCBjYWNoZSBpcyBjbGVhcmVkLlxuICAgKi9cbiAgY2xlYW5DYWNoZShleHBpcmF0aW9uRGF0ZT86IERhdGUpIHtcbiAgICBpZiAoZXhwaXJhdGlvbkRhdGUpIHtcbiAgICAgIE9iamVjdCh0aGlzLmNhY2hlZERhdGEpLmtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKGV4cGlyYXRpb25EYXRlID49IHRoaXMuY2FjaGVkRGF0YVtrZXldPy5sYXN0VXBkYXRlZCkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmNhY2hlZERhdGFba2V5XTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FjaGVkRGF0YSA9IHt9O1xuICAgIH1cbiAgICB0aGlzLnNhdmVDYWNoZURhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjYWNoZSBwZXJzaXN0ZW5jZSBwb2xpY3kuXG4gICAqIE5vdGUgdGhhdCBjaGFuZ2luZyB0aGUgY2FjaGUgcGVyc2lzdGVuY2Ugd2lsbCBhbHNvIGNsZWFyIHRoZSBjYWNoZSBmcm9tIGl0cyBwcmV2aW91cyBzdG9yYWdlLlxuICAgKiBAcGFyYW0geydsb2NhbCd8J3Nlc3Npb24nPX0gcGVyc2lzdGVuY2UgSG93IHRoZSBjYWNoZSBzaG91bGQgYmUgcGVyc2lzdGVkLCBpdCBjYW4gYmUgZWl0aGVyIGxvY2FsIG9yIHNlc3Npb25cbiAgICogICBzdG9yYWdlLCBvciBpZiBubyB2YWx1ZSBpcyBwcm92aWRlZCBpdCB3aWxsIGJlIG9ubHkgaW4tbWVtb3J5IChkZWZhdWx0KS5cbiAgICovXG4gIHNldFBlcnNpc3RlbmNlKHBlcnNpc3RlbmNlPzogJ2xvY2FsJyB8ICdzZXNzaW9uJykge1xuICAgIHRoaXMuY2xlYW5DYWNoZSgpO1xuICAgIHRoaXMuc3RvcmFnZSA9IHBlcnNpc3RlbmNlID09PSAnbG9jYWwnID8gbG9jYWxTdG9yYWdlIDogcGVyc2lzdGVuY2UgPT09ICdzZXNzaW9uJyA/IHNlc3Npb25TdG9yYWdlIDogbnVsbDtcbiAgICB0aGlzLmxvYWRDYWNoZURhdGEoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZUNhY2hlRGF0YSgpIHtcbiAgICBpZiAodGhpcy5zdG9yYWdlKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VbdGhpcy5jYWNoZVBlcnNpc3RlbmNlS2V5XSA9IEpTT04uc3RyaW5naWZ5KHRoaXMuY2FjaGVkRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQ2FjaGVEYXRhKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnN0b3JhZ2UgPyB0aGlzLnN0b3JhZ2VbdGhpcy5jYWNoZVBlcnNpc3RlbmNlS2V5XSA6IG51bGw7XG4gICAgdGhpcy5jYWNoZWREYXRhID0gZGF0YSA/IEpTT04ucGFyc2UoZGF0YSkgOiB7fTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,89 @@
1
+ import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { ErrorHandlerInterceptor } from './error-handler.interceptor';
4
+ import { CacheInterceptor } from './cache.interceptor';
5
+ import { ApiPrefixInterceptor } from './api-prefix.interceptor';
6
+ import { TokenInterceptor } from './token.interceptor';
7
+ import { HeaderInterceptor } from './header.interceptor';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common/http";
10
+ // From @angular/common/http/src/interceptor: allows to chain interceptors
11
+ class HttpInterceptorHandler {
12
+ next;
13
+ interceptor;
14
+ constructor(next, interceptor) {
15
+ this.next = next;
16
+ this.interceptor = interceptor;
17
+ }
18
+ handle(request) {
19
+ return this.interceptor.intercept(request, this.next);
20
+ }
21
+ }
22
+ /**
23
+ * Allows to override default dynamic interceptors that can be disabled with the HttpService extension.
24
+ * Except for very specific needs, you should better configure these interceptors directly in the constructor below
25
+ * for better readability.
26
+ *
27
+ * For static interceptors that should always be enabled (like ApiPrefixInterceptor), use the standard
28
+ * HTTP_INTERCEPTORS token.
29
+ */
30
+ export const HTTP_DYNAMIC_INTERCEPTORS = new InjectionToken('HTTP_DYNAMIC_INTERCEPTORS');
31
+ /**
32
+ * Extends HttpClient with per request configuration using dynamic interceptors.
33
+ */
34
+ export class HttpService extends HttpClient {
35
+ httpHandler;
36
+ injector;
37
+ interceptors;
38
+ constructor(httpHandler, injector, interceptors = []) {
39
+ super(httpHandler);
40
+ this.httpHandler = httpHandler;
41
+ this.injector = injector;
42
+ this.interceptors = interceptors;
43
+ if (!this.interceptors) {
44
+ // Configure default interceptors that can be disabled here
45
+ this.interceptors = [this.injector.get(ApiPrefixInterceptor), this.injector.get(HeaderInterceptor), this.injector.get(TokenInterceptor), this.injector.get(ErrorHandlerInterceptor)];
46
+ }
47
+ }
48
+ cache(forceUpdate) {
49
+ const cacheInterceptor = this.injector.get(CacheInterceptor).configure({ update: forceUpdate });
50
+ return this.addInterceptor(cacheInterceptor);
51
+ }
52
+ skipErrorHandler() {
53
+ return this.removeInterceptor(ErrorHandlerInterceptor);
54
+ }
55
+ skipApiPrefix() {
56
+ return this.removeInterceptor(ApiPrefixInterceptor);
57
+ }
58
+ skipToken() {
59
+ return this.removeInterceptor(TokenInterceptor);
60
+ }
61
+ skipHeader() {
62
+ return this.removeInterceptor(HeaderInterceptor);
63
+ }
64
+ // Override the original method to wire interceptors when triggering the request.
65
+ request(method, url, options) {
66
+ const handler = this.interceptors.reduceRight((next, interceptor) => new HttpInterceptorHandler(next, interceptor), this.httpHandler);
67
+ return new HttpClient(handler).request(method, url, options);
68
+ }
69
+ removeInterceptor(interceptorType) {
70
+ return new HttpService(this.httpHandler, this.injector, this.interceptors.filter(i => !(i instanceof interceptorType)));
71
+ }
72
+ addInterceptor(interceptor) {
73
+ return new HttpService(this.httpHandler, this.injector, this.interceptors.concat([interceptor]));
74
+ }
75
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpService, deps: [{ token: i1.HttpHandler }, { token: i0.Injector }, { token: HTTP_DYNAMIC_INTERCEPTORS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
76
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpService, providedIn: 'root' });
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpService, decorators: [{
79
+ type: Injectable,
80
+ args: [{
81
+ providedIn: 'root'
82
+ }]
83
+ }], ctorParameters: function () { return [{ type: i1.HttpHandler }, { type: i0.Injector }, { type: undefined, decorators: [{
84
+ type: Optional
85
+ }, {
86
+ type: Inject,
87
+ args: [HTTP_DYNAMIC_INTERCEPTORS]
88
+ }] }]; } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jb3JlL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQVksUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxVQUFVLEVBQXdELE1BQU0sc0JBQXNCLENBQUM7QUFHeEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQTBDekQsMEVBQTBFO0FBQzFFLE1BQU0sc0JBQXNCO0lBRU47SUFBMkI7SUFBL0MsWUFBb0IsSUFBaUIsRUFBVSxXQUE0QjtRQUF2RCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO0lBQUksQ0FBQztJQUVoRixNQUFNLENBQUMsT0FBeUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FFRjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsMkJBQTJCLENBQUMsQ0FBQztBQUUxRzs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFZLFNBQVEsVUFBVTtJQUVyQjtJQUNWO0lBQytDO0lBRnpELFlBQW9CLFdBQXdCLEVBQ2xDLFFBQWtCLEVBQzZCLGVBQWtDLEVBQUU7UUFDM0YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM2QixpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFHM0YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsMkRBQTJEO1lBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7U0FDdEw7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQXFCO1FBQ3pCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNoRyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLE9BQU8sQ0FBQyxNQUFZLEVBQUUsR0FBUyxFQUFFLE9BQWE7UUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQzNDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEVBQ3BFLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7UUFDRixPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxlQUF5QjtRQUNqRCxPQUFPLElBQUksV0FBVyxDQUNwQixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxlQUFlLENBQUMsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUE0QjtRQUNqRCxPQUFPLElBQUksV0FBVyxDQUNwQixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FDeEMsQ0FBQztJQUNKLENBQUM7d0dBekRVLFdBQVcscUVBSUEseUJBQXlCOzRHQUpwQyxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFcnJvckhhbmRsZXJJbnRlcmNlcHRvciB9IGZyb20gJy4vZXJyb3ItaGFuZGxlci5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBDYWNoZUludGVyY2VwdG9yIH0gZnJvbSAnLi9jYWNoZS5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBBcGlQcmVmaXhJbnRlcmNlcHRvciB9IGZyb20gJy4vYXBpLXByZWZpeC5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBUb2tlbkludGVyY2VwdG9yIH0gZnJvbSAnLi90b2tlbi5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBIZWFkZXJJbnRlcmNlcHRvciB9IGZyb20gJy4vaGVhZGVyLmludGVyY2VwdG9yJztcblxuXG4vLyBBdWdtZW50IEh0dHBDbGllbnQgd2l0aCB0aGUgYWRkZWQgY29uZmlndXJhdGlvbiBtZXRob2RzIGZyb20gSHR0cFNlcnZpY2UsIHRvIGFsbG93IGluLXBsYWNlIHJlcGxhY2VtZW50IG9mXG4vLyBIdHRwQ2xpZW50IHdpdGggSHR0cFNlcnZpY2UgdXNpbmcgZGVwZW5kZW5jeSBpbmplY3Rpb25cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEN1c3RvbUNsaWVudCB7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgY2FjaGluZyBmb3IgdGhpcyByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZvcmNlVXBkYXRlIEZvcmNlcyByZXF1ZXN0IHRvIGJlIG1hZGUgYW5kIHVwZGF0ZXMgY2FjaGUgZW50cnkuXG4gICAqIEByZXR1cm4ge0h0dHBDdXN0b21DbGllbnR9IFRoZSBuZXcgaW5zdGFuY2UuXG4gICAqL1xuICBjYWNoZShmb3JjZVVwZGF0ZT86IGJvb2xlYW4pOiBIdHRwQ3VzdG9tQ2xpZW50O1xuXG4gIC8qKlxuICAgKiBTa2lwcyBkZWZhdWx0IGVycm9yIGhhbmRsZXIgZm9yIHRoaXMgcmVxdWVzdC5cbiAgICogQHJldHVybiB7SHR0cEN1c3RvbUNsaWVudH0gVGhlIG5ldyBpbnN0YW5jZS5cbiAgICovXG4gIHNraXBFcnJvckhhbmRsZXIoKTogSHR0cEN1c3RvbUNsaWVudDtcblxuICAvKipcbiAgKiBTa2lwcyBkZWZhdWx0IEFQSSBQcmVmaXggZm9yIHRoaXMgcmVxdWVzdC5cbiAgKiBAcmV0dXJuIHtIdHRwQ3VzdG9tQ2xpZW50fSBUaGUgbmV3IGluc3RhbmNlLlxuICAqL1xuICBza2lwQXBpUHJlZml4KCk6IEh0dHBDdXN0b21DbGllbnQ7XG5cblxuICAvKipcbiAqIFNraXBzIGRlZmF1bHQgVG9rZW4gSW50ZXJjZXB0b3IgZm9yIHRoaXMgcmVxdWVzdC5cbiAqIEByZXR1cm4ge0h0dHBDdXN0b21DbGllbnR9IFRoZSBuZXcgaW5zdGFuY2UuXG4gKi9cbiAgc2tpcFRva2VuKCk6IEh0dHBDdXN0b21DbGllbnQ7XG5cbiAgLyoqXG4qIFNraXBzIGRlZmF1bHQgSGVhZGVyIEludGVyY2VwdG9yIGZvciB0aGlzIHJlcXVlc3QuXG4qIEByZXR1cm4ge0h0dHBDdXN0b21DbGllbnR9IFRoZSBuZXcgaW5zdGFuY2UuXG4qL1xuICBza2lwSGVhZGVyKCk6IEh0dHBDdXN0b21DbGllbnQ7XG5cbn1cblxuXG4vLyBGcm9tIEBhbmd1bGFyL2NvbW1vbi9odHRwL3NyYy9pbnRlcmNlcHRvcjogYWxsb3dzIHRvIGNoYWluIGludGVyY2VwdG9yc1xuY2xhc3MgSHR0cEludGVyY2VwdG9ySGFuZGxlciBpbXBsZW1lbnRzIEh0dHBIYW5kbGVyIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5leHQ6IEh0dHBIYW5kbGVyLCBwcml2YXRlIGludGVyY2VwdG9yOiBIdHRwSW50ZXJjZXB0b3IpIHsgfVxuXG4gIGhhbmRsZShyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLmludGVyY2VwdG9yLmludGVyY2VwdChyZXF1ZXN0LCB0aGlzLm5leHQpO1xuICB9XG5cbn1cblxuLyoqXG4gKiBBbGxvd3MgdG8gb3ZlcnJpZGUgZGVmYXVsdCBkeW5hbWljIGludGVyY2VwdG9ycyB0aGF0IGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSBIdHRwU2VydmljZSBleHRlbnNpb24uXG4gKiBFeGNlcHQgZm9yIHZlcnkgc3BlY2lmaWMgbmVlZHMsIHlvdSBzaG91bGQgYmV0dGVyIGNvbmZpZ3VyZSB0aGVzZSBpbnRlcmNlcHRvcnMgZGlyZWN0bHkgaW4gdGhlIGNvbnN0cnVjdG9yIGJlbG93XG4gKiBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LlxuICpcbiAqIEZvciBzdGF0aWMgaW50ZXJjZXB0b3JzIHRoYXQgc2hvdWxkIGFsd2F5cyBiZSBlbmFibGVkIChsaWtlIEFwaVByZWZpeEludGVyY2VwdG9yKSwgdXNlIHRoZSBzdGFuZGFyZFxuICogSFRUUF9JTlRFUkNFUFRPUlMgdG9rZW4uXG4gKi9cbmV4cG9ydCBjb25zdCBIVFRQX0RZTkFNSUNfSU5URVJDRVBUT1JTID0gbmV3IEluamVjdGlvblRva2VuPEh0dHBJbnRlcmNlcHRvcj4oJ0hUVFBfRFlOQU1JQ19JTlRFUkNFUFRPUlMnKTtcblxuLyoqXG4gKiBFeHRlbmRzIEh0dHBDbGllbnQgd2l0aCBwZXIgcmVxdWVzdCBjb25maWd1cmF0aW9uIHVzaW5nIGR5bmFtaWMgaW50ZXJjZXB0b3JzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIdHRwU2VydmljZSBleHRlbmRzIEh0dHBDbGllbnQgaW1wbGVtZW50cyBIdHRwQ3VzdG9tQ2xpZW50IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBIYW5kbGVyOiBIdHRwSGFuZGxlcixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEhUVFBfRFlOQU1JQ19JTlRFUkNFUFRPUlMpIHByaXZhdGUgaW50ZXJjZXB0b3JzOiBIdHRwSW50ZXJjZXB0b3JbXSA9IFtdKSB7XG4gICAgc3VwZXIoaHR0cEhhbmRsZXIpO1xuXG4gICAgaWYgKCF0aGlzLmludGVyY2VwdG9ycykge1xuICAgICAgLy8gQ29uZmlndXJlIGRlZmF1bHQgaW50ZXJjZXB0b3JzIHRoYXQgY2FuIGJlIGRpc2FibGVkIGhlcmVcbiAgICAgIHRoaXMuaW50ZXJjZXB0b3JzID0gW3RoaXMuaW5qZWN0b3IuZ2V0KEFwaVByZWZpeEludGVyY2VwdG9yKSwgdGhpcy5pbmplY3Rvci5nZXQoSGVhZGVySW50ZXJjZXB0b3IpLCB0aGlzLmluamVjdG9yLmdldChUb2tlbkludGVyY2VwdG9yKSwgdGhpcy5pbmplY3Rvci5nZXQoRXJyb3JIYW5kbGVySW50ZXJjZXB0b3IpXTtcbiAgICB9XG4gIH1cblxuICBjYWNoZShmb3JjZVVwZGF0ZT86IGJvb2xlYW4pOiBIdHRwU2VydmljZSB7XG4gICAgY29uc3QgY2FjaGVJbnRlcmNlcHRvciA9IHRoaXMuaW5qZWN0b3IuZ2V0KENhY2hlSW50ZXJjZXB0b3IpLmNvbmZpZ3VyZSh7IHVwZGF0ZTogZm9yY2VVcGRhdGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuYWRkSW50ZXJjZXB0b3IoY2FjaGVJbnRlcmNlcHRvcik7XG4gIH1cblxuICBza2lwRXJyb3JIYW5kbGVyKCk6IEh0dHBTZXJ2aWNlIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVJbnRlcmNlcHRvcihFcnJvckhhbmRsZXJJbnRlcmNlcHRvcik7XG4gIH1cblxuICBza2lwQXBpUHJlZml4KCk6IEh0dHBTZXJ2aWNlIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVJbnRlcmNlcHRvcihBcGlQcmVmaXhJbnRlcmNlcHRvcik7XG4gIH1cblxuICBza2lwVG9rZW4oKTogSHR0cFNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLnJlbW92ZUludGVyY2VwdG9yKFRva2VuSW50ZXJjZXB0b3IpO1xuICB9XG5cbiAgc2tpcEhlYWRlcigpOiBIdHRwU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZlSW50ZXJjZXB0b3IoSGVhZGVySW50ZXJjZXB0b3IpO1xuICB9XG5cbiAgLy8gT3ZlcnJpZGUgdGhlIG9yaWdpbmFsIG1ldGhvZCB0byB3aXJlIGludGVyY2VwdG9ycyB3aGVuIHRyaWdnZXJpbmcgdGhlIHJlcXVlc3QuXG4gIHJlcXVlc3QobWV0aG9kPzogYW55LCB1cmw/OiBhbnksIG9wdGlvbnM/OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmludGVyY2VwdG9ycy5yZWR1Y2VSaWdodChcbiAgICAgIChuZXh0LCBpbnRlcmNlcHRvcikgPT4gbmV3IEh0dHBJbnRlcmNlcHRvckhhbmRsZXIobmV4dCwgaW50ZXJjZXB0b3IpLFxuICAgICAgdGhpcy5odHRwSGFuZGxlclxuICAgICk7XG4gICAgcmV0dXJuIG5ldyBIdHRwQ2xpZW50KGhhbmRsZXIpLnJlcXVlc3QobWV0aG9kLCB1cmwsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVJbnRlcmNlcHRvcihpbnRlcmNlcHRvclR5cGU6IEZ1bmN0aW9uKTogSHR0cFNlcnZpY2Uge1xuICAgIHJldHVybiBuZXcgSHR0cFNlcnZpY2UoXG4gICAgICB0aGlzLmh0dHBIYW5kbGVyLFxuICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgIHRoaXMuaW50ZXJjZXB0b3JzLmZpbHRlcihpID0+ICEoaSBpbnN0YW5jZW9mIGludGVyY2VwdG9yVHlwZSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW50ZXJjZXB0b3IoaW50ZXJjZXB0b3I6IEh0dHBJbnRlcmNlcHRvcik6IEh0dHBTZXJ2aWNlIHtcbiAgICByZXR1cm4gbmV3IEh0dHBTZXJ2aWNlKFxuICAgICAgdGhpcy5odHRwSGFuZGxlcixcbiAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICB0aGlzLmludGVyY2VwdG9ycy5jb25jYXQoW2ludGVyY2VwdG9yXSlcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==