ngx-techlify-core 11.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +24 -0
  2. package/bundles/ngx-techlify-core.umd.js +6602 -0
  3. package/bundles/ngx-techlify-core.umd.js.map +1 -0
  4. package/bundles/ngx-techlify-core.umd.min.js +17 -0
  5. package/bundles/ngx-techlify-core.umd.min.js.map +1 -0
  6. package/esm2015/lib/action-popup/action-popup.component.js +32 -0
  7. package/esm2015/lib/action-popup/action-popup.model.js +3 -0
  8. package/esm2015/lib/action-popup/action-popup.module.js +26 -0
  9. package/esm2015/lib/action-popup/index.js +3 -0
  10. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.js +12 -0
  11. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.component.js +49 -0
  12. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.module.js +25 -0
  13. package/esm2015/lib/audit-log/audit-log-list/audit-log-list-routing.module.js +12 -0
  14. package/esm2015/lib/audit-log/audit-log-list/audit-log-list.component.js +132 -0
  15. package/esm2015/lib/audit-log/audit-log-list/audit-log-list.module.js +29 -0
  16. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.js +12 -0
  17. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.js +67 -0
  18. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.js +25 -0
  19. package/esm2015/lib/audit-log/audit-log-routing.module.js +19 -0
  20. package/esm2015/lib/audit-log/audit-log-view/audit-log-view-routing.module.js +12 -0
  21. package/esm2015/lib/audit-log/audit-log-view/audit-log-view.component.js +62 -0
  22. package/esm2015/lib/audit-log/audit-log-view/audit-log-view.module.js +21 -0
  23. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.js +12 -0
  24. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.component.js +59 -0
  25. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.module.js +21 -0
  26. package/esm2015/lib/audit-log/audit-log.module.js +20 -0
  27. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.js +12 -0
  28. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.js +35 -0
  29. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.js +21 -0
  30. package/esm2015/lib/core/alert.service.js +40 -0
  31. package/esm2015/lib/core/api-prefix.interceptor.js +28 -0
  32. package/esm2015/lib/core/authentication.guard.js +39 -0
  33. package/esm2015/lib/core/authentication.service.js +59 -0
  34. package/esm2015/lib/core/cache.interceptor.js +60 -0
  35. package/esm2015/lib/core/config.service.js +47 -0
  36. package/esm2015/lib/core/core.module.js +42 -0
  37. package/esm2015/lib/core/credentials.service.js +84 -0
  38. package/esm2015/lib/core/dataManager.service.js +121 -0
  39. package/esm2015/lib/core/error-handler.interceptor.js +53 -0
  40. package/esm2015/lib/core/error-handler.service.js +49 -0
  41. package/esm2015/lib/core/form-validator.service.js +23 -0
  42. package/esm2015/lib/core/header.interceptor.js +22 -0
  43. package/esm2015/lib/core/http-cache.service.js +110 -0
  44. package/esm2015/lib/core/http.service.js +82 -0
  45. package/esm2015/lib/core/index.js +21 -0
  46. package/esm2015/lib/core/logger.service.js +100 -0
  47. package/esm2015/lib/core/route-reusable-strategy.js +35 -0
  48. package/esm2015/lib/core/snack/snack.component.js +33 -0
  49. package/esm2015/lib/core/snack/snack.module.js +25 -0
  50. package/esm2015/lib/core/storage.service.js +37 -0
  51. package/esm2015/lib/core/techlify-config.model.js +26 -0
  52. package/esm2015/lib/core/token.interceptor.js +30 -0
  53. package/esm2015/lib/data-table/data-table.component.js +190 -0
  54. package/esm2015/lib/data-table/data-table.model.js +11 -0
  55. package/esm2015/lib/data-table/data-table.module.js +25 -0
  56. package/esm2015/lib/data-table/index.js +3 -0
  57. package/esm2015/lib/date-validator.js +10 -0
  58. package/esm2015/lib/document-viewer/document-viewer.component.js +58 -0
  59. package/esm2015/lib/document-viewer/document-viewer.module.js +25 -0
  60. package/esm2015/lib/document-viewer/index.js +3 -0
  61. package/esm2015/lib/document-viewer/viewer-config.model.js +3 -0
  62. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.js +26 -0
  63. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.js +72 -0
  64. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.js +23 -0
  65. package/esm2015/lib/email-subscription/email-subscription-for-user/index.js +2 -0
  66. package/esm2015/lib/email-subscription/email-subscription-routing.module.js +12 -0
  67. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.js +12 -0
  68. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.js +102 -0
  69. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.js +28 -0
  70. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.js +2 -0
  71. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.js +28 -0
  72. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.js +153 -0
  73. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.js +27 -0
  74. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.js +2 -0
  75. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.js +12 -0
  76. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type.module.js +15 -0
  77. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.js +12 -0
  78. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.js +99 -0
  79. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.js +27 -0
  80. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.js +2 -0
  81. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.js +28 -0
  82. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.js +155 -0
  83. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.js +29 -0
  84. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.js +2 -0
  85. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.js +12 -0
  86. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.js +50 -0
  87. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.js +25 -0
  88. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.js +2 -0
  89. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.js +12 -0
  90. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user.module.js +15 -0
  91. package/esm2015/lib/email-subscription/email-subscription.module.js +15 -0
  92. package/esm2015/lib/entity-files/entity-file-form/entity-file-form.component.js +141 -0
  93. package/esm2015/lib/entity-files/entity-file.service.js +38 -0
  94. package/esm2015/lib/entity-files/entity-files-view-all.component.js +161 -0
  95. package/esm2015/lib/entity-files/entity-files-view-all.module.js +34 -0
  96. package/esm2015/lib/entity-files/index.js +3 -0
  97. package/esm2015/lib/export-excel/export-excel-button/export-excel-button.component.js +32 -0
  98. package/esm2015/lib/export-excel/export-excel.module.js +17 -0
  99. package/esm2015/lib/file-dropper/file-dropper.component.js +122 -0
  100. package/esm2015/lib/file-dropper/file-dropper.model.js +3 -0
  101. package/esm2015/lib/file-dropper/file-dropper.module.js +21 -0
  102. package/esm2015/lib/file-dropper/index.js +3 -0
  103. package/esm2015/lib/import-csv/failed-items/failed-items-routing.module.js +12 -0
  104. package/esm2015/lib/import-csv/failed-items/failed-items.component.js +23 -0
  105. package/esm2015/lib/import-csv/failed-items/failed-items.module.js +21 -0
  106. package/esm2015/lib/import-csv/import-config.js +3 -0
  107. package/esm2015/lib/import-csv/import-csv-routing.module.js +12 -0
  108. package/esm2015/lib/import-csv/import-csv.component.js +111 -0
  109. package/esm2015/lib/import-csv/import-csv.module.js +27 -0
  110. package/esm2015/lib/import-csv/import-items/import-items-routing.module.js +12 -0
  111. package/esm2015/lib/import-csv/import-items/import-items.component.js +139 -0
  112. package/esm2015/lib/import-csv/import-items/import-items.module.js +23 -0
  113. package/esm2015/lib/loader/index.js +2 -0
  114. package/esm2015/lib/loader/loader.component.js +22 -0
  115. package/esm2015/lib/loader/loader.module.js +21 -0
  116. package/esm2015/lib/login-history-for-user/login-history-for-user-routing.module.js +20 -0
  117. package/esm2015/lib/login-history-for-user/login-history-for-user.component.js +79 -0
  118. package/esm2015/lib/login-history-for-user/login-history-for-user.module.js +27 -0
  119. package/esm2015/lib/material.module.js +58 -0
  120. package/esm2015/lib/note/index.js +3 -0
  121. package/esm2015/lib/note/note-form/note-form.component.js +80 -0
  122. package/esm2015/lib/note/note-list/note-list.component.js +120 -0
  123. package/esm2015/lib/note/note.module.js +32 -0
  124. package/esm2015/lib/note/note.service.js +31 -0
  125. package/esm2015/lib/searchable-selector/index.js +3 -0
  126. package/esm2015/lib/searchable-selector/mat-select-infinite-scroll.directive.js +81 -0
  127. package/esm2015/lib/searchable-selector/searchable-selector.component.js +267 -0
  128. package/esm2015/lib/searchable-selector/searchable-selector.module.js +28 -0
  129. package/esm2015/lib/techlify-update/read-more/read-more.component.js +43 -0
  130. package/esm2015/lib/techlify-update/read-more/read-more.module.js +21 -0
  131. package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.component.js +114 -0
  132. package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.module.js +28 -0
  133. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.js +22 -0
  134. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.component.js +143 -0
  135. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.module.js +28 -0
  136. package/esm2015/lib/techlify-update/techlify-update-routing.module.js +22 -0
  137. package/esm2015/lib/techlify-update/techlify-update.module.js +30 -0
  138. package/esm2015/lib/techlify-update/techlify-update.service.js +43 -0
  139. package/esm2015/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.js +161 -0
  140. package/esm2015/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.js +82 -0
  141. package/esm2015/lib/techlify-update/update-notifier/update-notifier.component.js +62 -0
  142. package/esm2015/lib/techlify-update/update-notifier/update-notifier.module.js +29 -0
  143. package/esm2015/lib/techlify-update/update-view/update-view.component.js +36 -0
  144. package/esm2015/lib/techlify-update/update-view/update-view.module.js +24 -0
  145. package/esm2015/lib/timeline-filter/calculate-timeline.js +90 -0
  146. package/esm2015/lib/timeline-filter/index.js +4 -0
  147. package/esm2015/lib/timeline-filter/timeline-filter-routing.module.js +12 -0
  148. package/esm2015/lib/timeline-filter/timeline-filter.component.js +57 -0
  149. package/esm2015/lib/timeline-filter/timeline-filter.module.js +23 -0
  150. package/esm2015/lib/timeline-filter/timeline.model.js +15 -0
  151. package/esm2015/lib/utility/date-utils.service.js +48 -0
  152. package/esm2015/lib/utility/index.js +4 -0
  153. package/esm2015/lib/utility/num-items-selector.component.js +30 -0
  154. package/esm2015/lib/utility/number-selector.component.js +38 -0
  155. package/esm2015/lib/utility/utility.module.js +21 -0
  156. package/esm2015/ngx-techlify-core.js +52 -0
  157. package/esm2015/public-api.js +91 -0
  158. package/fesm2015/ngx-techlify-core.js +5575 -0
  159. package/fesm2015/ngx-techlify-core.js.map +1 -0
  160. package/lib/action-popup/action-popup.component.d.ts +14 -0
  161. package/lib/action-popup/action-popup.model.d.ts +5 -0
  162. package/lib/action-popup/action-popup.module.d.ts +2 -0
  163. package/lib/action-popup/index.d.ts +2 -0
  164. package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts +2 -0
  165. package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +12 -0
  166. package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +2 -0
  167. package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts +2 -0
  168. package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +32 -0
  169. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +2 -0
  170. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts +2 -0
  171. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +19 -0
  172. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +2 -0
  173. package/lib/audit-log/audit-log-routing.module.d.ts +2 -0
  174. package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts +2 -0
  175. package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts +17 -0
  176. package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +2 -0
  177. package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts +2 -0
  178. package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts +15 -0
  179. package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +2 -0
  180. package/lib/audit-log/audit-log.module.d.ts +2 -0
  181. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts +2 -0
  182. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts +11 -0
  183. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +2 -0
  184. package/lib/core/alert.service.d.ts +12 -0
  185. package/lib/core/api-prefix.interceptor.d.ts +11 -0
  186. package/lib/core/authentication.guard.d.ts +10 -0
  187. package/lib/core/authentication.service.d.ts +23 -0
  188. package/lib/core/cache.interceptor.d.ts +21 -0
  189. package/lib/core/config.service.d.ts +19 -0
  190. package/lib/core/core.module.d.ts +3 -0
  191. package/lib/core/credentials.service.d.ts +36 -0
  192. package/lib/core/dataManager.service.d.ts +70 -0
  193. package/lib/core/error-handler.interceptor.d.ts +14 -0
  194. package/lib/core/error-handler.service.d.ts +12 -0
  195. package/lib/core/form-validator.service.d.ts +8 -0
  196. package/lib/core/header.interceptor.d.ts +8 -0
  197. package/lib/core/http-cache.service.d.ts +54 -0
  198. package/lib/core/http.service.d.ts +56 -0
  199. package/lib/core/index.d.ts +20 -0
  200. package/lib/core/logger.service.d.ts +85 -0
  201. package/lib/core/route-reusable-strategy.d.ts +13 -0
  202. package/lib/core/snack/snack.component.d.ts +8 -0
  203. package/lib/core/snack/snack.module.d.ts +2 -0
  204. package/lib/core/storage.service.d.ts +15 -0
  205. package/lib/core/techlify-config.model.d.ts +17 -0
  206. package/lib/core/token.interceptor.d.ts +11 -0
  207. package/lib/data-table/data-table.component.d.ts +60 -0
  208. package/lib/data-table/data-table.model.d.ts +46 -0
  209. package/lib/data-table/data-table.module.d.ts +2 -0
  210. package/lib/data-table/index.d.ts +2 -0
  211. package/lib/date-validator.d.ts +1 -0
  212. package/lib/document-viewer/document-viewer.component.d.ts +16 -0
  213. package/lib/document-viewer/document-viewer.module.d.ts +2 -0
  214. package/lib/document-viewer/index.d.ts +2 -0
  215. package/lib/document-viewer/viewer-config.model.d.ts +5 -0
  216. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +7 -0
  217. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts +17 -0
  218. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +2 -0
  219. package/lib/email-subscription/email-subscription-for-user/index.d.ts +1 -0
  220. package/lib/email-subscription/email-subscription-routing.module.d.ts +2 -0
  221. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts +2 -0
  222. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts +32 -0
  223. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +2 -0
  224. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts +1 -0
  225. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +9 -0
  226. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts +30 -0
  227. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +2 -0
  228. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts +1 -0
  229. package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts +2 -0
  230. package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts +2 -0
  231. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts +2 -0
  232. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts +32 -0
  233. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +2 -0
  234. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts +1 -0
  235. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +9 -0
  236. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts +32 -0
  237. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +2 -0
  238. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts +1 -0
  239. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts +2 -0
  240. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts +13 -0
  241. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +2 -0
  242. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts +1 -0
  243. package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts +2 -0
  244. package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts +2 -0
  245. package/lib/email-subscription/email-subscription.module.d.ts +2 -0
  246. package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +34 -0
  247. package/lib/entity-files/entity-file.service.d.ts +10 -0
  248. package/lib/entity-files/entity-files-view-all.component.d.ts +38 -0
  249. package/lib/entity-files/entity-files-view-all.module.d.ts +2 -0
  250. package/lib/entity-files/index.d.ts +2 -0
  251. package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +8 -0
  252. package/lib/export-excel/export-excel.module.d.ts +2 -0
  253. package/lib/file-dropper/file-dropper.component.d.ts +33 -0
  254. package/lib/file-dropper/file-dropper.model.d.ts +10 -0
  255. package/lib/file-dropper/file-dropper.module.d.ts +2 -0
  256. package/lib/file-dropper/index.d.ts +2 -0
  257. package/lib/import-csv/failed-items/failed-items-routing.module.d.ts +2 -0
  258. package/lib/import-csv/failed-items/failed-items.component.d.ts +8 -0
  259. package/lib/import-csv/failed-items/failed-items.module.d.ts +2 -0
  260. package/lib/import-csv/import-config.d.ts +5 -0
  261. package/lib/import-csv/import-csv-routing.module.d.ts +2 -0
  262. package/lib/import-csv/import-csv.component.d.ts +26 -0
  263. package/lib/import-csv/import-csv.module.d.ts +2 -0
  264. package/lib/import-csv/import-items/import-items-routing.module.d.ts +2 -0
  265. package/lib/import-csv/import-items/import-items.component.d.ts +30 -0
  266. package/lib/import-csv/import-items/import-items.module.d.ts +2 -0
  267. package/lib/loader/index.d.ts +1 -0
  268. package/lib/loader/loader.component.d.ts +8 -0
  269. package/lib/loader/loader.module.d.ts +2 -0
  270. package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts +2 -0
  271. package/lib/login-history-for-user/login-history-for-user.component.d.ts +21 -0
  272. package/lib/login-history-for-user/login-history-for-user.module.d.ts +2 -0
  273. package/lib/material.module.d.ts +2 -0
  274. package/lib/note/index.d.ts +2 -0
  275. package/lib/note/note-form/note-form.component.d.ts +27 -0
  276. package/lib/note/note-list/note-list.component.d.ts +25 -0
  277. package/lib/note/note.module.d.ts +2 -0
  278. package/lib/note/note.service.d.ts +9 -0
  279. package/lib/searchable-selector/index.d.ts +2 -0
  280. package/lib/searchable-selector/mat-select-infinite-scroll.directive.d.ts +23 -0
  281. package/lib/searchable-selector/searchable-selector.component.d.ts +75 -0
  282. package/lib/searchable-selector/searchable-selector.module.d.ts +2 -0
  283. package/lib/techlify-update/read-more/read-more.component.d.ts +12 -0
  284. package/lib/techlify-update/read-more/read-more.module.d.ts +2 -0
  285. package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts +30 -0
  286. package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +2 -0
  287. package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts +2 -0
  288. package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts +31 -0
  289. package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +2 -0
  290. package/lib/techlify-update/techlify-update-routing.module.d.ts +2 -0
  291. package/lib/techlify-update/techlify-update.module.d.ts +2 -0
  292. package/lib/techlify-update/techlify-update.service.d.ts +13 -0
  293. package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts +31 -0
  294. package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts +25 -0
  295. package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +16 -0
  296. package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +2 -0
  297. package/lib/techlify-update/update-view/update-view.component.d.ts +14 -0
  298. package/lib/techlify-update/update-view/update-view.module.d.ts +2 -0
  299. package/lib/timeline-filter/calculate-timeline.d.ts +1 -0
  300. package/lib/timeline-filter/index.d.ts +3 -0
  301. package/lib/timeline-filter/timeline-filter-routing.module.d.ts +2 -0
  302. package/lib/timeline-filter/timeline-filter.component.d.ts +14 -0
  303. package/lib/timeline-filter/timeline-filter.module.d.ts +2 -0
  304. package/lib/timeline-filter/timeline.model.d.ts +14 -0
  305. package/lib/utility/date-utils.service.d.ts +21 -0
  306. package/lib/utility/index.d.ts +3 -0
  307. package/lib/utility/num-items-selector.component.d.ts +16 -0
  308. package/lib/utility/number-selector.component.d.ts +20 -0
  309. package/lib/utility/utility.module.d.ts +2 -0
  310. package/ngx-techlify-core.d.ts +51 -0
  311. package/ngx-techlify-core.metadata.json +1 -0
  312. package/package.json +36 -0
  313. package/public-api.d.ts +87 -0
@@ -0,0 +1,62 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component } from '@angular/core';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { Location } from '@angular/common';
5
+ import * as jsondiffpatch from "jsondiffpatch";
6
+ import { DataManager } from '../../core/dataManager.service';
7
+ export class AuditLogViewComponent {
8
+ constructor(dataManager, route, location) {
9
+ this.dataManager = dataManager;
10
+ this.route = route;
11
+ this.location = location;
12
+ this.showDeltaChanges = false;
13
+ this.changeList = [];
14
+ }
15
+ ngOnInit() {
16
+ this.route.paramMap.subscribe(params => {
17
+ if (params.get('id')) {
18
+ this.fetchLogDetail(params.get('id'));
19
+ }
20
+ else {
21
+ this.location.back();
22
+ }
23
+ });
24
+ }
25
+ getTransformedChanges() {
26
+ var _a, _b, _c, _d;
27
+ if ((_b = (_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.changes) {
28
+ const changes = Object.keys((_d = (_c = this.logInfo) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.changes) || [];
29
+ changes.forEach((key) => {
30
+ var _a, _b, _c, _d;
31
+ const displayAttribute = key.split('_').map(x => x.charAt(0).toUpperCase() + x.slice(1)).join(' ');
32
+ this.changeList.push({ displayAttribute: displayAttribute, attribute: key, newValue: (_b = (_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.object[key]) !== null && _b !== void 0 ? _b : '', oldValue: (_d = (_c = this.logInfo) === null || _c === void 0 ? void 0 : _c.pre_object[key]) !== null && _d !== void 0 ? _d : '' });
33
+ });
34
+ }
35
+ }
36
+ fetchLogDetail(logId) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ const result = yield this.dataManager.GET(`api/audit-logs/${logId}`);
39
+ this.logInfo = result.item;
40
+ this.getTransformedChanges();
41
+ this.patchDelta();
42
+ });
43
+ }
44
+ patchDelta() {
45
+ var _a, _b, _c;
46
+ const delta = jsondiffpatch.diff((_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.pre_object, (_b = this.logInfo) === null || _b === void 0 ? void 0 : _b.object);
47
+ document.getElementById('jsondiff').innerHTML = jsondiffpatch.formatters.html.format(delta, (_c = this.logInfo) === null || _c === void 0 ? void 0 : _c.pre_object);
48
+ }
49
+ }
50
+ AuditLogViewComponent.decorators = [
51
+ { type: Component, args: [{
52
+ selector: 'app-audit-log-view',
53
+ template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <h3 class=\"text-center\">Audit Log</h3>\n <div fxLayout=\"column\" fxLayoutGap=\"0.5rem\" *ngIf=\"logInfo\">\n <div>Object Type: {{logInfo?.object_type}}</div>\n <div>Object Id: {{logInfo?.object_id}}</div>\n <div>Action: {{logInfo?.action}}</div>\n <div>Created At: {{logInfo?.created_at | date:'medium'}}</div>\n <div>Created By: {{logInfo?.user?.email}}</div>\n </div>\n\n\n <div fxLayout=\"column\" *ngIf=\"logInfo?.action !== 'deleted'\">\n <div>\n <button mat-raised-button color=\"primary\" (click)=\"showDeltaChanges = !showDeltaChanges\">\n {{showDeltaChanges?'Hide JSON Changes': 'Show JSON Changes'}}\n </button>\n </div>\n <div [hidden]=\"!showDeltaChanges\">\n <h4 class=\"font-weight-bold\" *ngIf=\"logInfo\">Changes in JSON</h4>\n <div id=\"jsondiff\"></div>\n </div>\n </div>\n\n <div class=\"container\" *ngIf=\"changeList.length > 0\">\n <h4 class=\"font-weight-bold\"> Changes in Attributes</h4>\n <table class=\"table table-striped table-sm border\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">Attribute</th>\n <th scope=\"col\">Old Value</th>\n <th scope=\"col\">New Value</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let change of changeList; let i= index;\">\n <th scope=\"row\">{{i+1}}</th>\n <td>{{change?.displayAttribute}}</td>\n <td>{{change?.oldValue}}</td>\n <td>{{change?.newValue}}</td>\n </tr>\n </tbody>\n </table>\n\n </div>\n</div>",
54
+ styles: [""]
55
+ },] }
56
+ ];
57
+ AuditLogViewComponent.ctorParameters = () => [
58
+ { type: DataManager },
59
+ { type: ActivatedRoute },
60
+ { type: Location }
61
+ ];
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLXZpZXcvYXVkaXQtbG9nLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxLQUFLLGFBQWEsTUFBTSxlQUFlLENBQUE7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBTzdELE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFDVSxXQUF3QixFQUN4QixLQUFxQixFQUNyQixRQUFrQjtRQUZsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTjVCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxlQUFVLEdBQVUsRUFBRSxDQUFDO0lBTW5CLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQjs7UUFDbkIsZ0JBQUksSUFBSSxDQUFDLE9BQU8sMENBQUUsSUFBSSwwQ0FBRSxPQUFPLEVBQUU7WUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksYUFBQyxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7O2dCQUMzQixNQUFNLGdCQUFnQixHQUFJLEdBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxjQUFFLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sQ0FBQyxHQUFHLG9DQUFLLEVBQUUsRUFBRSxRQUFRLGNBQUUsSUFBSSxDQUFDLE9BQU8sMENBQUUsVUFBVSxDQUFDLEdBQUcsb0NBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6SyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVLLGNBQWMsQ0FBQyxLQUFVOztZQUM3QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGtCQUFrQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUMzQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztLQUFBO0lBRUQsVUFBVTs7UUFDUixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsSUFBSSxPQUFDLElBQUksQ0FBQyxPQUFPLDBDQUFFLFVBQVUsUUFBRSxJQUFJLENBQUMsT0FBTywwQ0FBRSxNQUFNLENBQUMsQ0FBQztRQUNqRixRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFFLElBQUksQ0FBQyxPQUFPLDBDQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hILENBQUM7OztZQS9DRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsazJEQUE4Qzs7YUFFL0M7OztZQU5RLFdBQVc7WUFIWCxjQUFjO1lBQ2QsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBqc29uZGlmZnBhdGNoIGZyb20gXCJqc29uZGlmZnBhdGNoXCJcbmltcG9ydCB7IERhdGFNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vY29yZS9kYXRhTWFuYWdlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGl0LWxvZy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LWxvZy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXVkaXQtbG9nLXZpZXcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGxvZ0luZm86IGFueTtcbiAgc2hvd0RlbHRhQ2hhbmdlczogYm9vbGVhbiA9IGZhbHNlO1xuICBjaGFuZ2VMaXN0OiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0YU1hbmFnZXI6IERhdGFNYW5hZ2VyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbU1hcC5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGlmIChwYXJhbXMuZ2V0KCdpZCcpKSB7XG4gICAgICAgIHRoaXMuZmV0Y2hMb2dEZXRhaWwocGFyYW1zLmdldCgnaWQnKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldFRyYW5zZm9ybWVkQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5sb2dJbmZvPy5kYXRhPy5jaGFuZ2VzKSB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gT2JqZWN0LmtleXModGhpcy5sb2dJbmZvPy5kYXRhPy5jaGFuZ2VzKSB8fCBbXTtcbiAgICAgIGNoYW5nZXMuZm9yRWFjaCgoa2V5OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZGlzcGxheUF0dHJpYnV0ZSA9IChrZXkgYXMgc3RyaW5nKS5zcGxpdCgnXycpLm1hcCh4ID0+IHguY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpKS5qb2luKCcgJyk7XG4gICAgICAgIHRoaXMuY2hhbmdlTGlzdC5wdXNoKHsgZGlzcGxheUF0dHJpYnV0ZTogZGlzcGxheUF0dHJpYnV0ZSwgYXR0cmlidXRlOiBrZXksIG5ld1ZhbHVlOiB0aGlzLmxvZ0luZm8/Lm9iamVjdFtrZXldID8/ICcnLCBvbGRWYWx1ZTogdGhpcy5sb2dJbmZvPy5wcmVfb2JqZWN0W2tleV0gPz8gJycgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBmZXRjaExvZ0RldGFpbChsb2dJZDogYW55KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5kYXRhTWFuYWdlci5HRVQoYGFwaS9hdWRpdC1sb2dzLyR7bG9nSWR9YCk7XG4gICAgdGhpcy5sb2dJbmZvID0gcmVzdWx0Lml0ZW07XG4gICAgdGhpcy5nZXRUcmFuc2Zvcm1lZENoYW5nZXMoKTtcbiAgICB0aGlzLnBhdGNoRGVsdGEoKTtcbiAgfVxuXG4gIHBhdGNoRGVsdGEoKSB7XG4gICAgY29uc3QgZGVsdGEgPSBqc29uZGlmZnBhdGNoLmRpZmYodGhpcy5sb2dJbmZvPy5wcmVfb2JqZWN0LCB0aGlzLmxvZ0luZm8/Lm9iamVjdCk7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2pzb25kaWZmJykuaW5uZXJIVE1MID0ganNvbmRpZmZwYXRjaC5mb3JtYXR0ZXJzLmh0bWwuZm9ybWF0KGRlbHRhLCB0aGlzLmxvZ0luZm8/LnByZV9vYmplY3QpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AuditLogViewRoutingModule } from './audit-log-view-routing.module';
4
+ import { AuditLogViewComponent } from './audit-log-view.component';
5
+ import { FlexLayoutModule } from '@angular/flex-layout';
6
+ import { MaterialModule } from '../../material.module';
7
+ export class AuditLogViewModule {
8
+ }
9
+ AuditLogViewModule.decorators = [
10
+ { type: NgModule, args: [{
11
+ declarations: [AuditLogViewComponent],
12
+ imports: [
13
+ CommonModule,
14
+ AuditLogViewRoutingModule,
15
+ FlexLayoutModule,
16
+ MaterialModule
17
+ ],
18
+ exports: [AuditLogViewComponent]
19
+ },] }
20
+ ];
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLXZpZXcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLXZpZXcvYXVkaXQtbG9nLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWF2RCxNQUFNLE9BQU8sa0JBQWtCOzs7WUFWOUIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQUNyQyxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWix5QkFBeUI7b0JBQ3pCLGdCQUFnQjtvQkFDaEIsY0FBYztpQkFDZjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzthQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBBdWRpdExvZ1ZpZXdSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9hdWRpdC1sb2ctdmlldy1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBBdWRpdExvZ1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL2F1ZGl0LWxvZy12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0F1ZGl0TG9nVmlld0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXVkaXRMb2dWaWV3Um91dGluZ01vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtBdWRpdExvZ1ZpZXdDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nVmlld01vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ const routes = [];
4
+ export class AuditLogViewModelRoutingModule {
5
+ }
6
+ AuditLogViewModelRoutingModule.decorators = [
7
+ { type: NgModule, args: [{
8
+ imports: [RouterModule.forChild(routes)],
9
+ exports: [RouterModule]
10
+ },] }
11
+ ];
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLXZpZXctbW9kZWwtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2F1ZGl0LWxvZy9hdWRpdC1sb2ctdmlldy1tb2RlbC9hdWRpdC1sb2ctdmlldy1tb2RlbC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7QUFNMUIsTUFBTSxPQUFPLDhCQUE4Qjs7O1lBSjFDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ1ZpZXdNb2RlbFJvdXRpbmdNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Inject } from '@angular/core';
3
+ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
5
+ import { HttpService } from '../../core/http.service';
6
+ let AuditLogViewModelComponent = class AuditLogViewModelComponent {
7
+ constructor(dialogRef, data, http) {
8
+ this.dialogRef = dialogRef;
9
+ this.data = data;
10
+ this.http = http;
11
+ this.showDeltaChanges = false;
12
+ this.changeList = [];
13
+ }
14
+ ngOnInit() {
15
+ var _a, _b;
16
+ if (this.data) {
17
+ this.http.get(`api/recent-log-for-model`, {
18
+ params: {
19
+ model_type: (_a = this.data) === null || _a === void 0 ? void 0 : _a.modelType,
20
+ model_id: (_b = this.data) === null || _b === void 0 ? void 0 : _b.modelId
21
+ }
22
+ }).pipe(untilDestroyed(this)).subscribe((result) => {
23
+ this.logInfo = result === null || result === void 0 ? void 0 : result.item;
24
+ this.getTransformedChanges();
25
+ });
26
+ }
27
+ }
28
+ getTransformedChanges() {
29
+ var _a, _b, _c, _d;
30
+ if ((_b = (_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.changes) {
31
+ const changes = Object.keys((_d = (_c = this.logInfo) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.changes) || [];
32
+ changes.forEach((key) => {
33
+ var _a, _b, _c, _d;
34
+ const displayAttribute = key.split('_').map(x => x.charAt(0).toUpperCase() + x.slice(1)).join(' ');
35
+ this.changeList.push({ displayAttribute: displayAttribute, attribute: key, newValue: (_b = (_a = this.logInfo) === null || _a === void 0 ? void 0 : _a.object[key]) !== null && _b !== void 0 ? _b : '', oldValue: (_d = (_c = this.logInfo) === null || _c === void 0 ? void 0 : _c.pre_object[key]) !== null && _d !== void 0 ? _d : '' });
36
+ });
37
+ }
38
+ }
39
+ close() {
40
+ this.dialogRef.close();
41
+ }
42
+ };
43
+ AuditLogViewModelComponent.decorators = [
44
+ { type: Component, args: [{
45
+ selector: 'app-audit-log-view',
46
+ template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <h3 class=\"text-center\">Audit Log</h3>\n <div fxLayout=\"column\" fxLayoutGap=\"0.5rem\" *ngIf=\"logInfo\">\n <div>Object Type: {{logInfo?.object_type}}</div>\n <div>Object Id: {{logInfo?.object_id}}</div>\n <div>Action: {{logInfo?.action}}</div>\n <div>Created At: {{logInfo?.created_at | date:'medium'}}</div>\n <div>Created By: {{logInfo?.user?.email}}</div>\n </div>\n\n\n <div class=\"container\" *ngIf=\"changeList.length > 0\">\n <h4 class=\"font-weight-bold\"> Changes in Attributes</h4>\n <table class=\"table table-striped table-sm border\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">Attribute</th>\n <th scope=\"col\">Old Value</th>\n <th scope=\"col\">New Value</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let change of changeList; let i= index;\">\n <th scope=\"row\">{{i+1}}</th>\n <td>{{change?.displayAttribute}}</td>\n <td>{{change?.oldValue}}</td>\n <td>{{change?.newValue}}</td>\n </tr>\n </tbody>\n </table>\n\n </div>\n\n <div>\n <button mat-raised-button (click)=\"close()\">Close</button>\n </div>\n</div>",
47
+ styles: [".scroll-container{max-height:400px;overflow:auto}"]
48
+ },] }
49
+ ];
50
+ AuditLogViewModelComponent.ctorParameters = () => [
51
+ { type: MatDialogRef },
52
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
53
+ { type: HttpService }
54
+ ];
55
+ AuditLogViewModelComponent = __decorate([
56
+ UntilDestroy()
57
+ ], AuditLogViewModelComponent);
58
+ export { AuditLogViewModelComponent };
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLXZpZXctbW9kZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLXZpZXctbW9kZWwvYXVkaXQtbG9nLXZpZXctbW9kZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0lBU3pDLDBCQUEwQixTQUExQiwwQkFBMEI7SUFNckMsWUFDUyxTQUFtRCxFQUMxQixJQUFTLEVBQ2pDLElBQWlCO1FBRmxCLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQU4zQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsZUFBVSxHQUFVLEVBQUUsQ0FBQztJQU1uQixDQUFDO0lBRUwsUUFBUTs7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRTtnQkFDeEMsTUFBTSxFQUFFO29CQUNOLFVBQVUsUUFBRSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxTQUFTO29CQUNoQyxRQUFRLFFBQUUsSUFBSSxDQUFDLElBQUksMENBQUUsT0FBTztpQkFDN0I7YUFDRixDQUFDLENBQUMsSUFBSSxDQUNMLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FDckIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSxDQUFDO2dCQUM1QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjs7UUFDbkIsZ0JBQUksSUFBSSxDQUFDLE9BQU8sMENBQUUsSUFBSSwwQ0FBRSxPQUFPLEVBQUU7WUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksYUFBQyxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7O2dCQUMzQixNQUFNLGdCQUFnQixHQUFJLEdBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxjQUFFLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sQ0FBQyxHQUFHLG9DQUFLLEVBQUUsRUFBRSxRQUFRLGNBQUUsSUFBSSxDQUFDLE9BQU8sMENBQUUsVUFBVSxDQUFDLEdBQUcsb0NBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6SyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FFRixDQUFBOztZQS9DQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsazhDQUFvRDs7YUFFckQ7OztZQVZRLFlBQVk7NENBbUJoQixNQUFNLFNBQUMsZUFBZTtZQWpCbEIsV0FBVzs7QUFTUCwwQkFBMEI7SUFOdEMsWUFBWSxFQUFFO0dBTUYsMEJBQTBCLENBMEN0QztTQTFDWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9odHRwLnNlcnZpY2UnO1xuXG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGl0LWxvZy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LWxvZy12aWV3LW1vZGVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXVkaXQtbG9nLXZpZXctbW9kZWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ1ZpZXdNb2RlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgbG9nSW5mbzogYW55O1xuICBzaG93RGVsdGFDaGFuZ2VzOiBib29sZWFuID0gZmFsc2U7XG4gIGNoYW5nZUxpc3Q6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEF1ZGl0TG9nVmlld01vZGVsQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5odHRwLmdldChgYXBpL3JlY2VudC1sb2ctZm9yLW1vZGVsYCwge1xuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBtb2RlbF90eXBlOiB0aGlzLmRhdGE/Lm1vZGVsVHlwZSxcbiAgICAgICAgICBtb2RlbF9pZDogdGhpcy5kYXRhPy5tb2RlbElkXG4gICAgICAgIH1cbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5sb2dJbmZvID0gcmVzdWx0Py5pdGVtO1xuICAgICAgICB0aGlzLmdldFRyYW5zZm9ybWVkQ2hhbmdlcygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VHJhbnNmb3JtZWRDaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLmxvZ0luZm8/LmRhdGE/LmNoYW5nZXMpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSBPYmplY3Qua2V5cyh0aGlzLmxvZ0luZm8/LmRhdGE/LmNoYW5nZXMpIHx8IFtdO1xuICAgICAgY2hhbmdlcy5mb3JFYWNoKChrZXk6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBkaXNwbGF5QXR0cmlidXRlID0gKGtleSBhcyBzdHJpbmcpLnNwbGl0KCdfJykubWFwKHggPT4geC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHguc2xpY2UoMSkpLmpvaW4oJyAnKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VMaXN0LnB1c2goeyBkaXNwbGF5QXR0cmlidXRlOiBkaXNwbGF5QXR0cmlidXRlLCBhdHRyaWJ1dGU6IGtleSwgbmV3VmFsdWU6IHRoaXMubG9nSW5mbz8ub2JqZWN0W2tleV0gPz8gJycsIG9sZFZhbHVlOiB0aGlzLmxvZ0luZm8/LnByZV9vYmplY3Rba2V5XSA/PyAnJyB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AuditLogViewModelRoutingModule } from './audit-log-view-model-routing.module';
4
+ import { AuditLogViewModelComponent } from './audit-log-view-model.component';
5
+ import { FlexLayoutModule } from '@angular/flex-layout';
6
+ import { MaterialModule } from '../../material.module';
7
+ export class AuditLogViewModelModule {
8
+ }
9
+ AuditLogViewModelModule.decorators = [
10
+ { type: NgModule, args: [{
11
+ declarations: [AuditLogViewModelComponent],
12
+ imports: [
13
+ CommonModule,
14
+ AuditLogViewModelRoutingModule,
15
+ FlexLayoutModule,
16
+ MaterialModule
17
+ ],
18
+ exports: [AuditLogViewModelComponent]
19
+ },] }
20
+ ];
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLXZpZXctbW9kZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLXZpZXctbW9kZWwvYXVkaXQtbG9nLXZpZXctbW9kZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWF2RCxNQUFNLE9BQU8sdUJBQXVCOzs7WUFWbkMsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLDBCQUEwQixDQUFDO2dCQUMxQyxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWiw4QkFBOEI7b0JBQzlCLGdCQUFnQjtvQkFDaEIsY0FBYztpQkFDZjtnQkFDRCxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzthQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBBdWRpdExvZ1ZpZXdNb2RlbFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2F1ZGl0LWxvZy12aWV3LW1vZGVsLXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IEF1ZGl0TG9nVmlld01vZGVsQ29tcG9uZW50IH0gZnJvbSAnLi9hdWRpdC1sb2ctdmlldy1tb2RlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBdWRpdExvZ1ZpZXdNb2RlbENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXVkaXRMb2dWaWV3TW9kZWxSb3V0aW5nTW9kdWxlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW0F1ZGl0TG9nVmlld01vZGVsQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ1ZpZXdNb2RlbE1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AuditLogRoutingModule } from './audit-log-routing.module';
4
+ import { AuditLogListModule } from './audit-log-list/audit-log-list.module';
5
+ import { AuditLogViewModule } from './audit-log-view/audit-log-view.module';
6
+ export class AuditLogModule {
7
+ }
8
+ AuditLogModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ declarations: [],
11
+ imports: [
12
+ CommonModule,
13
+ AuditLogRoutingModule,
14
+ AuditLogListModule,
15
+ AuditLogViewModule
16
+ ],
17
+ exports: []
18
+ },] }
19
+ ];
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFjNUUsTUFBTSxPQUFPLGNBQWM7OztZQVgxQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLEVBQ2I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1oscUJBQXFCO29CQUNyQixrQkFBa0I7b0JBQ2xCLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFLEVBQUU7YUFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBBdWRpdExvZ1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2F1ZGl0LWxvZy1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBBdWRpdExvZ0xpc3RNb2R1bGUgfSBmcm9tICcuL2F1ZGl0LWxvZy1saXN0L2F1ZGl0LWxvZy1saXN0Lm1vZHVsZSc7XG5pbXBvcnQgeyBBdWRpdExvZ1ZpZXdNb2R1bGUgfSBmcm9tICcuL2F1ZGl0LWxvZy12aWV3L2F1ZGl0LWxvZy12aWV3Lm1vZHVsZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXVkaXRMb2dSb3V0aW5nTW9kdWxlLFxuICAgIEF1ZGl0TG9nTGlzdE1vZHVsZSxcbiAgICBBdWRpdExvZ1ZpZXdNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ const routes = [];
4
+ export class AuditLogsViewModelRoutingModule {
5
+ }
6
+ AuditLogsViewModelRoutingModule.decorators = [
7
+ { type: NgModule, args: [{
8
+ imports: [RouterModule.forChild(routes)],
9
+ exports: [RouterModule]
10
+ },] }
11
+ ];
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9ncy12aWV3LW1vZGVsLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9ncy12aWV3LW1vZGVsL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7QUFNMUIsTUFBTSxPQUFPLCtCQUErQjs7O1lBSjNDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ3NWaWV3TW9kZWxSb3V0aW5nTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,35 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Inject } from '@angular/core';
3
+ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { NavigationEnd, Router } from '@angular/router';
5
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
6
+ import { filter } from 'rxjs/operators';
7
+ let AuditLogsViewModelComponent = class AuditLogsViewModelComponent {
8
+ constructor(dialogRef, data, router) {
9
+ this.dialogRef = dialogRef;
10
+ this.data = data;
11
+ this.router = router;
12
+ }
13
+ ngOnInit() {
14
+ this.router.events
15
+ .pipe(filter(event => event instanceof NavigationEnd), untilDestroyed(this))
16
+ .subscribe(_ => this.dialogRef.close());
17
+ }
18
+ };
19
+ AuditLogsViewModelComponent.decorators = [
20
+ { type: Component, args: [{
21
+ selector: 'app-audit-logs-view-model',
22
+ template: "<div fxLayout=\"column\" class=\"m-4\" fxLayoutGap=\"1.5rem\">\n <app-audit-log-list [objectId]=\"data?.modelId\" [objectType]=\"data?.modelType\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n</div>",
23
+ styles: ["::ng-deep app-audit-log-list .scroll-container{height:350px!important;overflow-y:scroll}"]
24
+ },] }
25
+ ];
26
+ AuditLogsViewModelComponent.ctorParameters = () => [
27
+ { type: MatDialogRef },
28
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
29
+ { type: Router }
30
+ ];
31
+ AuditLogsViewModelComponent = __decorate([
32
+ UntilDestroy()
33
+ ], AuditLogsViewModelComponent);
34
+ export { AuditLogsViewModelComponent };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9ncy12aWV3LW1vZGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC9hdWRpdC1sb2dzLXZpZXctbW9kZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7SUFTM0IsMkJBQTJCLFNBQTNCLDJCQUEyQjtJQUV0QyxZQUNTLFNBQW1ELEVBQzFCLElBQVMsRUFDakMsTUFBYztRQUZmLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNwQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBRUYsQ0FBQTs7WUFuQkEsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLG1PQUFxRDs7YUFFdEQ7OztZQVhRLFlBQVk7NENBZ0JoQixNQUFNLFNBQUMsZUFBZTtZQWZILE1BQU07O0FBV2pCLDJCQUEyQjtJQU52QyxZQUFZLEVBQUU7R0FNRiwyQkFBMkIsQ0FjdkM7U0FkWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdWRpdExvZ1ZpZXdNb2RlbENvbXBvbmVudCB9IGZyb20gJy4uL2F1ZGl0LWxvZy12aWV3LW1vZGVsL2F1ZGl0LWxvZy12aWV3LW1vZGVsLmNvbXBvbmVudCc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGl0LWxvZ3Mtdmlldy1tb2RlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1sb2dzLXZpZXctbW9kZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdWRpdC1sb2dzLXZpZXctbW9kZWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ3NWaWV3TW9kZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBdWRpdExvZ1ZpZXdNb2RlbENvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuZGlhbG9nUmVmLmNsb3NlKCkpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AuditLogsViewModelRoutingModule } from './audit-logs-view-model-routing.module';
4
+ import { AuditLogsViewModelComponent } from './audit-logs-view-model.component';
5
+ import { AuditLogListModule } from '../audit-log-list/audit-log-list.module';
6
+ import { FlexLayoutModule } from '@angular/flex-layout';
7
+ export class AuditLogsViewModelModule {
8
+ }
9
+ AuditLogsViewModelModule.decorators = [
10
+ { type: NgModule, args: [{
11
+ declarations: [AuditLogsViewModelComponent],
12
+ imports: [
13
+ CommonModule,
14
+ AuditLogsViewModelRoutingModule,
15
+ FlexLayoutModule,
16
+ AuditLogListModule
17
+ ],
18
+ exports: [AuditLogsViewModelComponent]
19
+ },] }
20
+ ];
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9ncy12aWV3LW1vZGVsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYXVkaXQtbG9nL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC9hdWRpdC1sb2dzLXZpZXctbW9kZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBYXhELE1BQU0sT0FBTyx3QkFBd0I7OztZQVZwQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQzNDLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLCtCQUErQjtvQkFDL0IsZ0JBQWdCO29CQUNoQixrQkFBa0I7aUJBQ25CO2dCQUNELE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2FBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEF1ZGl0TG9nc1ZpZXdNb2RlbFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBBdWRpdExvZ3NWaWV3TW9kZWxDb21wb25lbnQgfSBmcm9tICcuL2F1ZGl0LWxvZ3Mtdmlldy1tb2RlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXVkaXRMb2dMaXN0TW9kdWxlIH0gZnJvbSAnLi4vYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLWxpc3QubW9kdWxlJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQXVkaXRMb2dzVmlld01vZGVsQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBdWRpdExvZ3NWaWV3TW9kZWxSb3V0aW5nTW9kdWxlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgQXVkaXRMb2dMaXN0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtBdWRpdExvZ3NWaWV3TW9kZWxDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEF1ZGl0TG9nc1ZpZXdNb2RlbE1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { MatSnackBar } from '@angular/material/snack-bar';
3
+ import { ErrorSnackComponent, SuccessSnackComponent } from './snack/snack.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/snack-bar";
6
+ /**
7
+ * Service used to manage alerts in the entire system frontend
8
+ *
9
+ * @author Gokula Prasanna
10
+ * @since 20210131
11
+ */
12
+ export class AlertService {
13
+ constructor(snackBar) {
14
+ this.snackBar = snackBar;
15
+ }
16
+ addAlert(message, alertType, duration = 3) {
17
+ if (alertType == "success") {
18
+ this.snackBar.openFromComponent(SuccessSnackComponent, {
19
+ duration: 1000 * duration,
20
+ data: message
21
+ });
22
+ }
23
+ else {
24
+ this.snackBar.openFromComponent(ErrorSnackComponent, {
25
+ duration: 1000 * duration,
26
+ data: message
27
+ });
28
+ }
29
+ }
30
+ }
31
+ AlertService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlertService_Factory() { return new AlertService(i0.ɵɵinject(i1.MatSnackBar)); }, token: AlertService, providedIn: "root" });
32
+ AlertService.decorators = [
33
+ { type: Injectable, args: [{
34
+ providedIn: 'root'
35
+ },] }
36
+ ];
37
+ AlertService.ctorParameters = () => [
38
+ { type: MatSnackBar }
39
+ ];
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29yZS9hbGVydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFFckY7Ozs7O0dBS0c7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQUVyQixZQUFtQixRQUFxQjtRQUFyQixhQUFRLEdBQVIsUUFBUSxDQUFhO0lBQUksQ0FBQztJQUU3QyxRQUFRLENBQUMsT0FBZSxFQUFFLFNBQWlCLEVBQUUsUUFBUSxHQUFHLENBQUM7UUFDckQsSUFBSSxTQUFTLElBQUksU0FBUyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUU7Z0JBQ25ELFFBQVEsRUFBRSxJQUFJLEdBQUcsUUFBUTtnQkFDekIsSUFBSSxFQUFFLE9BQU87YUFDaEIsQ0FBQyxDQUFDO1NBQ047YUFDSTtZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ2pELFFBQVEsRUFBRSxJQUFJLEdBQUcsUUFBUTtnQkFDekIsSUFBSSxFQUFFLE9BQU87YUFDaEIsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDOzs7O1lBcEJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBWFEsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBFcnJvclNuYWNrQ29tcG9uZW50LCBTdWNjZXNzU25hY2tDb21wb25lbnQgfSBmcm9tICcuL3NuYWNrL3NuYWNrLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogU2VydmljZSB1c2VkIHRvIG1hbmFnZSBhbGVydHMgaW4gdGhlIGVudGlyZSBzeXN0ZW0gZnJvbnRlbmRcclxuICogXHJcbiAqIEBhdXRob3IgR29rdWxhIFByYXNhbm5hXHJcbiAqIEBzaW5jZSAyMDIxMDEzMVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGVydFNlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzbmFja0JhcjogTWF0U25hY2tCYXIpIHsgfVxyXG5cclxuICAgIGFkZEFsZXJ0KG1lc3NhZ2U6IHN0cmluZywgYWxlcnRUeXBlOiBzdHJpbmcsIGR1cmF0aW9uID0gMykge1xyXG4gICAgICAgIGlmIChhbGVydFR5cGUgPT0gXCJzdWNjZXNzXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuRnJvbUNvbXBvbmVudChTdWNjZXNzU25hY2tDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAxMDAwICogZHVyYXRpb24sXHJcbiAgICAgICAgICAgICAgICBkYXRhOiBtZXNzYWdlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuRnJvbUNvbXBvbmVudChFcnJvclNuYWNrQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMTAwMCAqIGR1cmF0aW9uLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogbWVzc2FnZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ConfigService } from './config.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./config.service";
5
+ /**
6
+ * Prefixes all requests not starting with `http[s]` with `environment.serverUrl`.
7
+ */
8
+ export class ApiPrefixInterceptor {
9
+ constructor(configService) {
10
+ this.configService = configService;
11
+ }
12
+ intercept(request, next) {
13
+ if (!/^(http|https):/i.test(request.url)) {
14
+ request = request.clone({ url: this.configService.getApiUrl() + request.url });
15
+ }
16
+ return next.handle(request);
17
+ }
18
+ }
19
+ ApiPrefixInterceptor.ɵprov = i0.ɵɵdefineInjectable({ factory: function ApiPrefixInterceptor_Factory() { return new ApiPrefixInterceptor(i0.ɵɵinject(i1.ConfigService)); }, token: ApiPrefixInterceptor, providedIn: "root" });
20
+ ApiPrefixInterceptor.decorators = [
21
+ { type: Injectable, args: [{
22
+ providedIn: 'root'
23
+ },] }
24
+ ];
25
+ ApiPrefixInterceptor.ctorParameters = () => [
26
+ { type: ConfigService }
27
+ ];
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXByZWZpeC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29yZS9hcGktcHJlZml4LmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFFakQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUksQ0FBQztJQUVyRCxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUNwRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ2hGO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7Ozs7WUFaRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVBRLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4vY29uZmlnLnNlcnZpY2UnO1xuXG4vKipcbiAqIFByZWZpeGVzIGFsbCByZXF1ZXN0cyBub3Qgc3RhcnRpbmcgd2l0aCBgaHR0cFtzXWAgd2l0aCBgZW52aXJvbm1lbnQuc2VydmVyVXJsYC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBpUHJlZml4SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSkgeyB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmICghL14oaHR0cHxodHRwcyk6L2kudGVzdChyZXF1ZXN0LnVybCkpIHtcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHsgdXJsOiB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0QXBpVXJsKCkgKyByZXF1ZXN0LnVybCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { CredentialsService } from './credentials.service';
4
+ import { Logger } from './logger.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ import * as i2 from "./credentials.service";
8
+ const log = new Logger('AuthenticationGuard');
9
+ export class AuthenticationGuard {
10
+ constructor(router, credentialsService) {
11
+ this.router = router;
12
+ this.credentialsService = credentialsService;
13
+ }
14
+ canActivate(route, state) {
15
+ return this.isUserAuthenticated(route, state);
16
+ }
17
+ canLoad(route, state) {
18
+ return this.isUserAuthenticated(route, state);
19
+ }
20
+ isUserAuthenticated(route, state) {
21
+ if (this.credentialsService.isAuthenticated) {
22
+ return true;
23
+ }
24
+ log.debug('Not authenticated, redirecting and adding redirect url...');
25
+ this.router.navigate(['/login'], { queryParams: { redirect: state.url }, replaceUrl: true });
26
+ return false;
27
+ }
28
+ }
29
+ AuthenticationGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthenticationGuard_Factory() { return new AuthenticationGuard(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.CredentialsService)); }, token: AuthenticationGuard, providedIn: "root" });
30
+ AuthenticationGuard.decorators = [
31
+ { type: Injectable, args: [{
32
+ providedIn: 'root'
33
+ },] }
34
+ ];
35
+ AuthenticationGuard.ctorParameters = () => [
36
+ { type: Router },
37
+ { type: CredentialsService }
38
+ ];
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NvcmUvYXV0aGVudGljYXRpb24uZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUE0RCxNQUFNLGlCQUFpQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUUxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBSzlDLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBb0IsTUFBYyxFQUN4QixrQkFBc0M7UUFENUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUksQ0FBQztJQUVyRCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQy9ELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUMzRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELEdBQUcsQ0FBQyxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7WUF4QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFSUSxNQUFNO1lBQ04sa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBDYW5BY3RpdmF0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDcmVkZW50aWFsc1NlcnZpY2UgfSBmcm9tICcuL2NyZWRlbnRpYWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXIuc2VydmljZSc7XG5cbmNvbnN0IGxvZyA9IG5ldyBMb2dnZXIoJ0F1dGhlbnRpY2F0aW9uR3VhcmQnKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25HdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY3JlZGVudGlhbHNTZXJ2aWNlOiBDcmVkZW50aWFsc1NlcnZpY2UpIHsgfVxuXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVXNlckF1dGhlbnRpY2F0ZWQocm91dGUsIHN0YXRlKTtcbiAgfVxuXG4gIGNhbkxvYWQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNVc2VyQXV0aGVudGljYXRlZChyb3V0ZSwgc3RhdGUpO1xuICB9XG5cbiAgaXNVc2VyQXV0aGVudGljYXRlZChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jcmVkZW50aWFsc1NlcnZpY2UuaXNBdXRoZW50aWNhdGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBsb2cuZGVidWcoJ05vdCBhdXRoZW50aWNhdGVkLCByZWRpcmVjdGluZyBhbmQgYWRkaW5nIHJlZGlyZWN0IHVybC4uLicpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10sIHsgcXVlcnlQYXJhbXM6IHsgcmVkaXJlY3Q6IHN0YXRlLnVybCB9LCByZXBsYWNlVXJsOiB0cnVlIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { of } from 'rxjs';
4
+ import { concatMap } from 'rxjs/operators';
5
+ import { CredentialsService } from './credentials.service';
6
+ import { HttpService } from './http.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./credentials.service";
9
+ import * as i2 from "./http.service";
10
+ /**
11
+ * Provides a base for authentication workflow.
12
+ * The login/logout methods should be replaced with proper implementation.
13
+ */
14
+ export class AuthenticationService {
15
+ constructor(credentialsService, http) {
16
+ this.credentialsService = credentialsService;
17
+ this.http = http;
18
+ }
19
+ /**
20
+ * Authenticates the user.
21
+ * @param context The login parameters.
22
+ * @return The user credentials.
23
+ */
24
+ login(context) {
25
+ const data = {};
26
+ return this.http
27
+ .skipToken()
28
+ .post('oauth/token', context)
29
+ .pipe(concatMap((tokenInfo) => __awaiter(this, void 0, void 0, function* () {
30
+ tokenInfo.expires_in = Date.now() + (tokenInfo.expires_in * 1000);
31
+ data.token = tokenInfo;
32
+ data.user = {};
33
+ this.credentialsService.setCredentials(data, context.remember);
34
+ const userInfo = yield this.http.get('api/user/current').toPromise();
35
+ data.user = userInfo === null || userInfo === void 0 ? void 0 : userInfo.user;
36
+ this.credentialsService.setCredentials(data, context.remember);
37
+ return data;
38
+ })));
39
+ }
40
+ /**
41
+ * Logs out the user and clear credentials.
42
+ * @return True if the user was logged out successfully.
43
+ */
44
+ logout() {
45
+ this.credentialsService.setCredentials();
46
+ return of(true);
47
+ }
48
+ }
49
+ AuthenticationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthenticationService_Factory() { return new AuthenticationService(i0.ɵɵinject(i1.CredentialsService), i0.ɵɵinject(i2.HttpService)); }, token: AuthenticationService, providedIn: "root" });
50
+ AuthenticationService.decorators = [
51
+ { type: Injectable, args: [{
52
+ providedIn: 'root'
53
+ },] }
54
+ ];
55
+ AuthenticationService.ctorParameters = () => [
56
+ { type: CredentialsService },
57
+ { type: HttpService }
58
+ ];
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvY29yZS9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBZSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUU3Qzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLGtCQUFzQyxFQUFVLElBQWlCO1FBQWpFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO0lBQUksQ0FBQztJQUUxRjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQVk7UUFDaEIsTUFBTSxJQUFJLEdBQWdCLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsU0FBUyxFQUFFO2FBQ1gsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7YUFDNUIsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFPLFNBQWMsRUFBRSxFQUFFO1lBQ2pDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRCxNQUFNLFFBQVEsR0FBUSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUUsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQSxDQUFDLENBQ0gsQ0FBQTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNO1FBRUosSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Ozs7WUF2Q0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFUcUIsa0JBQWtCO1lBQy9CLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb25jYXRNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENyZWRlbnRpYWxzLCBDcmVkZW50aWFsc1NlcnZpY2UgfSBmcm9tICcuL2NyZWRlbnRpYWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuL2h0dHAuc2VydmljZSc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBiYXNlIGZvciBhdXRoZW50aWNhdGlvbiB3b3JrZmxvdy5cbiAqIFRoZSBsb2dpbi9sb2dvdXQgbWV0aG9kcyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBwcm9wZXIgaW1wbGVtZW50YXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjcmVkZW50aWFsc1NlcnZpY2U6IENyZWRlbnRpYWxzU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSkgeyB9XG5cbiAgLyoqXG4gICAqIEF1dGhlbnRpY2F0ZXMgdGhlIHVzZXIuXG4gICAqIEBwYXJhbSBjb250ZXh0IFRoZSBsb2dpbiBwYXJhbWV0ZXJzLlxuICAgKiBAcmV0dXJuIFRoZSB1c2VyIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgbG9naW4oY29udGV4dDogYW55KTogT2JzZXJ2YWJsZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGRhdGEgPSA8Q3JlZGVudGlhbHM+e307XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnNraXBUb2tlbigpXG4gICAgICAucG9zdCgnb2F1dGgvdG9rZW4nLCBjb250ZXh0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNvbmNhdE1hcChhc3luYyAodG9rZW5JbmZvOiBhbnkpID0+IHtcbiAgICAgICAgICB0b2tlbkluZm8uZXhwaXJlc19pbiA9IERhdGUubm93KCkgKyAodG9rZW5JbmZvLmV4cGlyZXNfaW4gKiAxMDAwKTtcbiAgICAgICAgICBkYXRhLnRva2VuID0gdG9rZW5JbmZvO1xuICAgICAgICAgIGRhdGEudXNlciA9IHt9O1xuICAgICAgICAgIHRoaXMuY3JlZGVudGlhbHNTZXJ2aWNlLnNldENyZWRlbnRpYWxzKGRhdGEsIGNvbnRleHQucmVtZW1iZXIpO1xuICAgICAgICAgIGNvbnN0IHVzZXJJbmZvOiBhbnkgPSBhd2FpdCB0aGlzLmh0dHAuZ2V0KCdhcGkvdXNlci9jdXJyZW50JykudG9Qcm9taXNlKCk7XG4gICAgICAgICAgZGF0YS51c2VyID0gdXNlckluZm8/LnVzZXI7XG4gICAgICAgICAgdGhpcy5jcmVkZW50aWFsc1NlcnZpY2Uuc2V0Q3JlZGVudGlhbHMoZGF0YSwgY29udGV4dC5yZW1lbWJlcik7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICAvKipcbiAgICogTG9ncyBvdXQgdGhlIHVzZXIgYW5kIGNsZWFyIGNyZWRlbnRpYWxzLlxuICAgKiBAcmV0dXJuIFRydWUgaWYgdGhlIHVzZXIgd2FzIGxvZ2dlZCBvdXQgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgbG9nb3V0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgdGhpcy5jcmVkZW50aWFsc1NlcnZpY2Uuc2V0Q3JlZGVudGlhbHMoKTtcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,60 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpResponse } from '@angular/common/http';
3
+ import { HttpCacheService } from './http-cache.service';
4
+ import { Observable } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./http-cache.service";
7
+ /**
8
+ * Caches HTTP requests.
9
+ * Use ExtendedHttpClient fluent API to configure caching for each request.
10
+ */
11
+ export class CacheInterceptor {
12
+ constructor(httpCacheService) {
13
+ this.httpCacheService = httpCacheService;
14
+ this.forceUpdate = false;
15
+ }
16
+ /**
17
+ * Configures interceptor options
18
+ * @param {{update: boolean}} options If update option is enabled, forces request to be made and updates cache entry.
19
+ * @return {CacheInterceptor} The configured instance.
20
+ */
21
+ configure(options) {
22
+ const instance = new CacheInterceptor(this.httpCacheService);
23
+ if (options && options.update) {
24
+ instance.forceUpdate = true;
25
+ }
26
+ return instance;
27
+ }
28
+ intercept(request, next) {
29
+ if (request.method !== 'GET') {
30
+ return next.handle(request);
31
+ }
32
+ return new Observable((subscriber) => {
33
+ const cachedData = this.forceUpdate ? null : this.httpCacheService.getCacheData(request.urlWithParams);
34
+ if (cachedData !== null) {
35
+ // Create new response to avoid side-effects
36
+ subscriber.next(new HttpResponse(cachedData));
37
+ subscriber.complete();
38
+ }
39
+ else {
40
+ next.handle(request)
41
+ .subscribe(event => {
42
+ if (event instanceof HttpResponse) {
43
+ this.httpCacheService.setCacheData(request.urlWithParams, event);
44
+ }
45
+ subscriber.next(event);
46
+ }, error => subscriber.error(error), () => subscriber.complete());
47
+ }
48
+ });
49
+ }
50
+ }
51
+ CacheInterceptor.ɵprov = i0.ɵɵdefineInjectable({ factory: function CacheInterceptor_Factory() { return new CacheInterceptor(i0.ɵɵinject(i1.HttpCacheService)); }, token: CacheInterceptor, providedIn: "root" });
52
+ CacheInterceptor.decorators = [
53
+ { type: Injectable, args: [{
54
+ providedIn: 'root'
55
+ },] }
56
+ ];
57
+ CacheInterceptor.ctorParameters = () => [
58
+ { type: HttpCacheService }
59
+ ];
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NvcmUvY2FjaGUuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXdELFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQUU5Qzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRjlDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBRThCLENBQUM7SUFFM0Q7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxPQUFxQztRQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDN0IsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDN0I7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0I7UUFFRCxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsVUFBc0MsRUFBRSxFQUFFO1lBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkcsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFO2dCQUN2Qiw0Q0FBNEM7Z0JBQzVDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsVUFBb0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztxQkFDakIsU0FBUyxDQUNSLEtBQUssQ0FBQyxFQUFFO29CQUNOLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTt3QkFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO3FCQUNsRTtvQkFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QixDQUFDLEVBQ0QsS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUNoQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQzVCLENBQUM7YUFDTDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztZQS9DRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVRRLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEludGVyY2VwdG9yLCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEh0dHBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2h0dHAtY2FjaGUuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQ2FjaGVzIEhUVFAgcmVxdWVzdHMuXG4gKiBVc2UgRXh0ZW5kZWRIdHRwQ2xpZW50IGZsdWVudCBBUEkgdG8gY29uZmlndXJlIGNhY2hpbmcgZm9yIGVhY2ggcmVxdWVzdC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FjaGVJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgcHJpdmF0ZSBmb3JjZVVwZGF0ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENhY2hlU2VydmljZTogSHR0cENhY2hlU2VydmljZSkgeyB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgaW50ZXJjZXB0b3Igb3B0aW9uc1xuICAgKiBAcGFyYW0ge3t1cGRhdGU6IGJvb2xlYW59fSBvcHRpb25zIElmIHVwZGF0ZSBvcHRpb24gaXMgZW5hYmxlZCwgZm9yY2VzIHJlcXVlc3QgdG8gYmUgbWFkZSBhbmQgdXBkYXRlcyBjYWNoZSBlbnRyeS5cbiAgICogQHJldHVybiB7Q2FjaGVJbnRlcmNlcHRvcn0gVGhlIGNvbmZpZ3VyZWQgaW5zdGFuY2UuXG4gICAqL1xuICBjb25maWd1cmUob3B0aW9ucz86IHsgdXBkYXRlPzogYm9vbGVhbiB9IHwgbnVsbCk6IENhY2hlSW50ZXJjZXB0b3Ige1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IENhY2hlSW50ZXJjZXB0b3IodGhpcy5odHRwQ2FjaGVTZXJ2aWNlKTtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnVwZGF0ZSkge1xuICAgICAgaW5zdGFuY2UuZm9yY2VVcGRhdGUgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJykge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxIdHRwRXZlbnQ8YW55Pj4pID0+IHtcbiAgICAgIGNvbnN0IGNhY2hlZERhdGEgPSB0aGlzLmZvcmNlVXBkYXRlID8gbnVsbCA6IHRoaXMuaHR0cENhY2hlU2VydmljZS5nZXRDYWNoZURhdGEocmVxdWVzdC51cmxXaXRoUGFyYW1zKTtcbiAgICAgIGlmIChjYWNoZWREYXRhICE9PSBudWxsKSB7XG4gICAgICAgIC8vIENyZWF0ZSBuZXcgcmVzcG9uc2UgdG8gYXZvaWQgc2lkZS1lZmZlY3RzXG4gICAgICAgIHN1YnNjcmliZXIubmV4dChuZXcgSHR0cFJlc3BvbnNlKGNhY2hlZERhdGEgYXMgT2JqZWN0KSk7XG4gICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuaGFuZGxlKHJlcXVlc3QpXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5odHRwQ2FjaGVTZXJ2aWNlLnNldENhY2hlRGF0YShyZXF1ZXN0LnVybFdpdGhQYXJhbXMsIGV2ZW50KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yID0+IHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpLFxuICAgICAgICAgICAgKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,47 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TechlifyConfig } from "./techlify-config.model";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./techlify-config.model";
5
+ /**
6
+ * Service that provides settings for all other services
7
+ *
8
+ * @author Joshua Kissoon
9
+ * @since 20170709
10
+ */
11
+ export class ConfigService {
12
+ constructor(config) {
13
+ this.config = config;
14
+ }
15
+ getConfigsRaw() {
16
+ return this.config.rawConfigs;
17
+ }
18
+ getProjectKey() {
19
+ return this.config.projectKey;
20
+ }
21
+ getApiUrl() {
22
+ return this.config.apiUrl;
23
+ }
24
+ getAuthClientSecret() {
25
+ return this.config.authClientSecret;
26
+ }
27
+ getStorage() {
28
+ return this.config.storage ? this.config.storage : localStorage;
29
+ }
30
+ getAuthGrantType() {
31
+ return this.config.authGrantType;
32
+ }
33
+ getCredentialsKey() {
34
+ return this.config.projectKey + "_" + ConfigService.BASE_CREDENTIALS;
35
+ }
36
+ }
37
+ ConfigService.BASE_CREDENTIALS = "credentials";
38
+ ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1.TechlifyConfig)); }, token: ConfigService, providedIn: "root" });
39
+ ConfigService.decorators = [
40
+ { type: Injectable, args: [{
41
+ providedIn: 'root'
42
+ },] }
43
+ ];
44
+ ConfigService.ctorParameters = () => [
45
+ { type: TechlifyConfig }
46
+ ];
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2NvcmUvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUV6RDs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQVksTUFBc0I7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFDdEMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7SUFDdkUsQ0FBQzs7QUFsQ2EsOEJBQWdCLEdBQUcsYUFBYSxDQUFDOzs7WUFMaEQsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFWUSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUZWNobGlmeUNvbmZpZyB9IGZyb20gXCIuL3RlY2hsaWZ5LWNvbmZpZy5tb2RlbFwiO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBwcm92aWRlcyBzZXR0aW5ncyBmb3IgYWxsIG90aGVyIHNlcnZpY2VzXG4gKlxuICogQGF1dGhvciBKb3NodWEgS2lzc29vblxuICogQHNpbmNlIDIwMTcwNzA5XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlcnZpY2Uge1xuXG4gIHB1YmxpYyBzdGF0aWMgQkFTRV9DUkVERU5USUFMUyA9IFwiY3JlZGVudGlhbHNcIjtcblxuICBwcml2YXRlIGNvbmZpZzogVGVjaGxpZnlDb25maWc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBUZWNobGlmeUNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgZ2V0Q29uZmlnc1JhdygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmF3Q29uZmlncztcbiAgfVxuXG4gIGdldFByb2plY3RLZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnByb2plY3RLZXk7XG4gIH1cblxuICBnZXRBcGlVcmwoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmFwaVVybDtcbiAgfVxuXG4gIGdldEF1dGhDbGllbnRTZWNyZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmF1dGhDbGllbnRTZWNyZXQ7XG4gIH1cblxuICBnZXRTdG9yYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zdG9yYWdlID8gdGhpcy5jb25maWcuc3RvcmFnZSA6IGxvY2FsU3RvcmFnZTtcbiAgfVxuXG4gIGdldEF1dGhHcmFudFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmF1dGhHcmFudFR5cGU7XG4gIH1cblxuICBnZXRDcmVkZW50aWFsc0tleSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucHJvamVjdEtleSArIFwiX1wiICsgQ29uZmlnU2VydmljZS5CQVNFX0NSRURFTlRJQUxTO1xuICB9XG5cbn1cbiJdfQ==