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,190 @@
1
+ var DataTableComponent_1;
2
+ import { __decorate } from "tslib";
3
+ import { Component, Input, Output, EventEmitter, ViewChild } from "@angular/core";
4
+ import { MatTableDataSource } from '@angular/material/table';
5
+ import { MatSort } from '@angular/material/sort';
6
+ import { UntilDestroy, untilDestroyed } from "@ngneat/until-destroy";
7
+ let DataTableComponent = DataTableComponent_1 = class DataTableComponent {
8
+ constructor() {
9
+ this.dataSource = new MatTableDataSource([]);
10
+ this.action = new EventEmitter();
11
+ this.selctionChange = new EventEmitter();
12
+ this.rowClick = new EventEmitter();
13
+ this.tableScroll = new EventEmitter();
14
+ this.sortChanged = new EventEmitter();
15
+ this.elementId = `data-table-${DataTableComponent_1.nextId++}`;
16
+ }
17
+ ngOnInit() { }
18
+ /**Life cycle hook method */
19
+ ngAfterViewInit() {
20
+ // Assign the data to the data source for the table to render
21
+ this.dataSource = new MatTableDataSource(this.data);
22
+ // Emit change in selection
23
+ if (this.selection) {
24
+ this.selection.changed.pipe().subscribe((change) => {
25
+ if (this.selection.selected) {
26
+ this.selctionChange.emit(this.selection.selected);
27
+ }
28
+ });
29
+ }
30
+ if (this.sort) {
31
+ this.sort.sortChange.pipe(untilDestroyed(this))
32
+ .subscribe((value) => {
33
+ this.sortChanged.emit(value);
34
+ });
35
+ }
36
+ }
37
+ /** Whether the number of selected elements matches the total number of rows. */
38
+ isAllSelected() {
39
+ const numSelected = this.selection.selected.length;
40
+ const numRows = this.dataSource.data.length;
41
+ return numSelected === numRows;
42
+ }
43
+ /** Selects all rows if they are not all selected; otherwise clear selection. */
44
+ masterToggle() {
45
+ this.isAllSelected()
46
+ ? this.clearSelection()
47
+ : this.dataSource.data.forEach(row => this.selection.select(row));
48
+ }
49
+ /**clear selection*/
50
+ clearSelection() {
51
+ this.selection.clear();
52
+ this.selctionChange.emit(this.selection.selected);
53
+ }
54
+ ngOnChanges(changes) {
55
+ this.initializeConfig(changes);
56
+ if (changes.data && !changes.data.isFirstChange() && this.dataSource) {
57
+ // If not first change
58
+ this.dataSource.data = changes.data.currentValue;
59
+ }
60
+ }
61
+ initializeConfig(changes) {
62
+ if (changes.config && !changes.config.isFirstChange()) {
63
+ this.config = changes.config.currentValue;
64
+ }
65
+ this.page = this.config.page || 1;
66
+ this.lastPage = this.config.lastPage || this.page;
67
+ this.perPage = this.config.perPage || 20;
68
+ }
69
+ onScroll() {
70
+ if (this.page < this.lastPage) {
71
+ this.page += 1;
72
+ this.tableScroll.emit({ page: this.page, lastPage: this.lastPage, perPage: this.perPage });
73
+ }
74
+ }
75
+ /**Method invokes when edit action icon is clickes */
76
+ editClicked(event, element) {
77
+ this.action.emit({ action: "edit", value: element });
78
+ event.stopPropagation();
79
+ }
80
+ /**Method invokes when view action icon is clickes */
81
+ viewClicked(event, element) {
82
+ this.action.emit({ action: "view", value: element });
83
+ event.stopPropagation();
84
+ }
85
+ /**Method invokes when edit action icon is clickes */
86
+ deactivateClicked(event, element) {
87
+ this.action.emit({ action: "deactivate", value: element });
88
+ event.stopPropagation();
89
+ }
90
+ /**Method invokes when download action icon is clickes */
91
+ downloadClicked(event, element) {
92
+ this.action.emit({ action: "download", value: element });
93
+ event.stopPropagation();
94
+ }
95
+ /**Method invokes when print action icon is clickes */
96
+ printClicked(event, element) {
97
+ this.action.emit({ action: 'print', value: element });
98
+ event.stopPropagation();
99
+ }
100
+ /**Method invokes when a row is clicked */
101
+ rowClicked(event, element) {
102
+ this.rowClick.emit(element);
103
+ event.stopPropagation();
104
+ }
105
+ /**Method invokes when menu action icon is hovered */
106
+ actionMenuClick(event, element, menuValue) {
107
+ this.action.emit({ action: menuValue, value: element });
108
+ this.trigger.closeMenu();
109
+ event.stopPropagation();
110
+ }
111
+ /**Method invokes when menu action icon is hovered and selects for particular action*/
112
+ actionMenuTriggerClick(event, trigger) {
113
+ this.trigger = trigger;
114
+ event.stopPropagation();
115
+ }
116
+ checkEdit(ele) {
117
+ if (this.config.editDisableFunction) {
118
+ return this.config.editDisableFunction(ele);
119
+ }
120
+ return true;
121
+ }
122
+ checkView(ele) {
123
+ if (this.config.viewDisableFunction) {
124
+ return this.config.viewDisableFunction(ele);
125
+ }
126
+ return true;
127
+ }
128
+ checkPrint(ele) {
129
+ if (this.config.printDisableFunction) {
130
+ return this.config.printDisableFunction(ele);
131
+ }
132
+ return true;
133
+ }
134
+ checkActions(ele) {
135
+ if (this.config.actionsMenuFunction) {
136
+ return this.config.actionsMenuFunction(ele);
137
+ }
138
+ return true;
139
+ }
140
+ checkActionButton(ele, value) {
141
+ if (this.config.actionsMenuButtonFunction) {
142
+ return this.config.actionsMenuButtonFunction(ele, value);
143
+ }
144
+ return true;
145
+ }
146
+ getValue(ele, keyString) {
147
+ keyString = keyString.replace(/\[(\w+)\]/g, ".$1"); // convert indexes to properties
148
+ keyString = keyString.replace(/^\./, ""); // strip a leading dot
149
+ const keyList = keyString.split(".");
150
+ for (let i = 0, n = keyList.length; i < n; ++i) {
151
+ const key = keyList[i];
152
+ if (ele && key in ele) {
153
+ ele = ele[key];
154
+ }
155
+ else {
156
+ return;
157
+ }
158
+ }
159
+ return ele;
160
+ }
161
+ ngOnDestroy() {
162
+ //Until Destroy uses it.
163
+ }
164
+ };
165
+ DataTableComponent.nextId = 0;
166
+ DataTableComponent.decorators = [
167
+ { type: Component, args: [{
168
+ selector: "app-data-table",
169
+ template: "<div fxLayout=\"column\" [ngClass]=\"{\n 'mat-elevation-z1': !config.disableElevation\n }\" class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\" [ngStyle]=\"config.style\">\n <table mat-table [dataSource]=\"dataSource\" matSort [id]=\"elementId\">\n <!-- Checkbox Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width:60px\">\n <mat-checkbox *ngIf=\"selection\" (change)=\"$event ? masterToggle() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\" style=\"width:60px\">\n <mat-checkbox *ngIf=\"selection\" (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let index = index\">\n {{ (index + 1) }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"action-width d-print-none\">\n {{ config.customActionLabel }}\n </th>\n\n <td mat-cell *matCellDef=\"let element; let index = index\" class=\"d-print-none\">\n <div>\n <button *ngIf=\"\n config.actionsConfig.download && element[config.downloadLink]\n \" type=\"button\" mat-icon-button (click)=\"downloadClicked($event, element)\">\n <mat-icon>vertical_align_bottom</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.edit\" [disabled]=\"!this.checkEdit(element)\" type=\"button\"\n mat-icon-button (click)=\"editClicked($event, element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.print\" [disabled]=\"!this.checkPrint(element)\" type=\"button\"\n mat-icon-button (click)=\"printClicked($event,element)\">\n <mat-icon>print</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.view\" [disabled]=\"!this.checkView(element)\" type=\"button\"\n mat-icon-button (click)=\"viewClicked($event, element)\">\n <mat-icon>description</mat-icon>\n </button>\n\n <button *ngIf=\"config.actionsConfig.deactivate\" type=\"button\" mat-icon-button\n (click)=\"deactivateClicked($event, element)\">\n <mat-icon>delete</mat-icon>\n </button>\n\n <button #menuTrigger=\"matMenuTrigger\" *ngIf=\"\n config.actionsConfig.actionsMenu &&\n this.checkActions(element) &&\n config.actionsConfig.actionsMenu.length > 0\n \" type=\"button\" mat-icon-button [matMenuTriggerFor]=\"actionsMenu\"\n (click)=\"actionMenuTriggerClick($event, menuTrigger)\">\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n\n <mat-menu #actionsMenu=\"matMenu\">\n <div *ngFor=\"let item of config.actionsConfig.actionsMenu\">\n <button *ngIf=\"this.checkActionButton(element, item.value)\" mat-menu-item\n (click)=\"actionMenuClick($event, element, item.value)\">\n <span>{{ item.name }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n\n <!-- Actual Columns -->\n <ng-container matColumnDef=\"{{ column.value }}\" *ngFor=\"let column of config.columnsConfig\">\n <ng-container *ngIf=\"column?.sort; else noSort\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n {{ column.title }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef>\n {{ column.title }}\n </th>\n </ng-template>\n <ng-container *ngIf=\"column.dateField; else currencyField\">\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) | date:column.format? column.format: 'mediumDate' }}\n </div>\n </td>\n </ng-container>\n\n <ng-template #currencyField>\n <div *ngIf=\"column.currencyField; else normalField\">\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) | currency: \"$\":'symbol' : '1.0-0' }}\n </div>\n </td>\n </div>\n </ng-template>\n\n <ng-template #normalField>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-truncate\" appToolTip>\n {{ getValue(element, column.value) }}\n </div>\n </td>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"config.stickyHeader; else normalHeader\">\n <tr class=\"font-weight-bold\" mat-header-row *matHeaderRowDef=\"config.displayedColumns; sticky:true\"></tr>\n </ng-container>\n <ng-template #normalHeader>\n <tr class=\"font-weight-bold\" mat-header-row *matHeaderRowDef=\"config.displayedColumns;\">\n </tr>\n </ng-template>\n\n <div *ngIf=\"!config.enableRowClick\">\n <tr mat-row *matRowDef=\"let row; columns: config.displayedColumns\"></tr>\n </div>\n\n <div *ngIf=\"config.enableRowClick\">\n <tr mat-row *matRowDef=\"let row; columns: config.displayedColumns\" (click)=\"rowClicked($event, row)\"\n class=\"hoverable row-hover\"></tr>\n </div>\n </table>\n</div>",
170
+ styles: ["table{width:100%}.mat-table{background:inherit}.mat-column-select{overflow:initial}td.mat-cell,td.mat-footer-cell,th.mat-header-cell{padding:0 2px}.action-width{min-width:175px;width:175px!important}.noOverFlow{overflow-x:auto;overflow-y:hidden}.scroll-container{max-height:400px;overflow:auto}.mat-header-row{background-color:inherit;position:sticky;top:0}tr.row-hover:hover{background-color:#dcdcdc}td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:24px!important}"]
171
+ },] }
172
+ ];
173
+ DataTableComponent.ctorParameters = () => [];
174
+ DataTableComponent.propDecorators = {
175
+ data: [{ type: Input }],
176
+ config: [{ type: Input }],
177
+ selection: [{ type: Input }],
178
+ action: [{ type: Output }],
179
+ selctionChange: [{ type: Output }],
180
+ rowClick: [{ type: Output }],
181
+ tableScroll: [{ type: Output }],
182
+ sortChanged: [{ type: Output }],
183
+ sort: [{ type: ViewChild, args: [MatSort, { static: true },] }],
184
+ elementId: [{ type: Input }]
185
+ };
186
+ DataTableComponent = DataTableComponent_1 = __decorate([
187
+ UntilDestroy()
188
+ ], DataTableComponent);
189
+ export { DataTableComponent };
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUlaLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztJQVF4RCxrQkFBa0IsZ0NBQWxCLGtCQUFrQjtJQTRCN0I7UUFwQkEsZUFBVSxHQUE0QixJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBSXZELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBVWxDLGNBQVMsR0FBVyxjQUFjLG9CQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFFekQsQ0FBQztJQUVqQixRQUFRLEtBQUssQ0FBQztJQUVkLDRCQUE0QjtJQUM1QixlQUFlO1FBQ2IsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEQsMkJBQTJCO1FBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMs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R0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2hCO2lCQUFNO2dCQUNMLE9BQU87YUFDUjtTQUNGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsV0FBVztRQUNULHdCQUF3QjtJQUMxQixDQUFDO0NBQ0YsQ0FBQTtBQXJMUSx5QkFBTSxHQUFHLENBQUMsQ0FBQzs7WUE5Qm5CLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQix5cE5BQTBDOzthQUUzQzs7OzttQkFLRSxLQUFLO3FCQUVMLEtBQUs7d0JBSUwsS0FBSztxQkFFTCxNQUFNOzZCQUNOLE1BQU07dUJBQ04sTUFBTTswQkFDTixNQUFNOzBCQUNOLE1BQU07bUJBT04sU0FBUyxTQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7d0JBR25DLEtBQUs7O0FBMUJLLGtCQUFrQjtJQU45QixZQUFZLEVBQUU7R0FNRixrQkFBa0IsQ0E4TTlCO1NBOU1ZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2xsZWN0aW9uc1wiO1xuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IERhdGFUYWJsZSB9IGZyb20gJy4vZGF0YS10YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSBcIkBuZ25lYXQvdW50aWwtZGVzdHJveVwiO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtZGF0YS10YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2RhdGEtdGFibGUuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuXG4gIHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcblxuICBASW5wdXQoKSBjb25maWc6IERhdGFUYWJsZTtcblxuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55PiA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoW10pO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PjtcblxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2VsY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSByb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHRhYmxlU2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc29ydENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcGFnZTogbnVtYmVyO1xuICBsYXN0UGFnZTogbnVtYmVyO1xuICBwZXJQYWdlOiBudW1iZXI7XG5cblxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XG5cbiAgc3RhdGljIG5leHRJZCA9IDA7XG4gIEBJbnB1dCgpIGVsZW1lbnRJZDogc3RyaW5nID0gYGRhdGEtdGFibGUtJHtEYXRhVGFibGVDb21wb25lbnQubmV4dElkKyt9YDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkgeyB9XG5cbiAgLyoqTGlmZSBjeWNsZSBob29rIG1ldGhvZCAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gQXNzaWduIHRoZSBkYXRhIHRvIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHRhYmxlIHRvIHJlbmRlclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcblxuICAgIC8vIEVtaXQgY2hhbmdlIGluIHNlbGVjdGlvblxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uY2hhbmdlZC5waXBlKCkuc3Vic2NyaWJlKChjaGFuZ2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGN0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zb3J0KSB7XG4gICAgICB0aGlzLnNvcnQuc29ydENoYW5nZS5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5zb3J0Q2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgbnVtYmVyIG9mIHNlbGVjdGVkIGVsZW1lbnRzIG1hdGNoZXMgdGhlIHRvdGFsIG51bWJlciBvZiByb3dzLiAqL1xuICBpc0FsbFNlbGVjdGVkKCkge1xuICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xuICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGg7XG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xuICB9XG5cbiAgLyoqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvbi4gKi9cbiAgbWFzdGVyVG9nZ2xlKCkge1xuICAgIHRoaXMuaXNBbGxTZWxlY3RlZCgpXG4gICAgICA/IHRoaXMuY2xlYXJTZWxlY3Rpb24oKVxuICAgICAgOiB0aGlzLmRhdGFTb3VyY2UuZGF0YS5mb3JFYWNoKHJvdyA9PiB0aGlzLnNlbGVjdGlvbi5zZWxlY3Qocm93KSk7XG4gIH1cblxuICAvKipjbGVhciBzZWxlY3Rpb24qL1xuICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgIHRoaXMuc2VsY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5pbml0aWFsaXplQ29uZmlnKGNoYW5nZXMpO1xuICAgIGlmIChjaGFuZ2VzLmRhdGEgJiYgIWNoYW5nZXMuZGF0YS5pc0ZpcnN0Q2hhbmdlKCkgJiYgdGhpcy5kYXRhU291cmNlKSB7XG4gICAgICAvLyBJZiBub3QgZmlyc3QgY2hhbmdlXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZUNvbmZpZyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuY29uZmlnICYmICFjaGFuZ2VzLmNvbmZpZy5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgIHRoaXMuY29uZmlnID0gY2hhbmdlcy5jb25maWcuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICB0aGlzLnBhZ2UgPSB0aGlzLmNvbmZpZy5wYWdlIHx8IDE7XG4gICAgdGhpcy5sYXN0UGFnZSA9IHRoaXMuY29uZmlnLmxhc3RQYWdlIHx8IHRoaXMucGFnZTtcbiAgICB0aGlzLnBlclBhZ2UgPSB0aGlzLmNvbmZpZy5wZXJQYWdlIHx8IDIwO1xuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMubGFzdFBhZ2UpIHtcbiAgICAgIHRoaXMucGFnZSArPSAxO1xuICAgICAgdGhpcy50YWJsZVNjcm9sbC5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBsYXN0UGFnZTogdGhpcy5sYXN0UGFnZSwgcGVyUGFnZTogdGhpcy5wZXJQYWdlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gZWRpdCBhY3Rpb24gaWNvbiBpcyBjbGlja2VzICovXG4gIGVkaXRDbGlja2VkKGV2ZW50OiBhbnksIGVsZW1lbnQ6IGFueSkge1xuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBhY3Rpb246IFwiZWRpdFwiLCB2YWx1ZTogZWxlbWVudCB9KTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gdmlldyBhY3Rpb24gaWNvbiBpcyBjbGlja2VzICovXG4gIHZpZXdDbGlja2VkKGV2ZW50OiBhbnksIGVsZW1lbnQ6IGFueSkge1xuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBhY3Rpb246IFwidmlld1wiLCB2YWx1ZTogZWxlbWVudCB9KTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gZWRpdCBhY3Rpb24gaWNvbiBpcyBjbGlja2VzICovXG4gIGRlYWN0aXZhdGVDbGlja2VkKGV2ZW50OiBhbnksIGVsZW1lbnQ6IGFueSkge1xuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBhY3Rpb246IFwiZGVhY3RpdmF0ZVwiLCB2YWx1ZTogZWxlbWVudCB9KTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gZG93bmxvYWQgYWN0aW9uIGljb24gaXMgY2xpY2tlcyAqL1xuICBkb3dubG9hZENsaWNrZWQoZXZlbnQ6IGFueSwgZWxlbWVudDogYW55KSB7XG4gICAgdGhpcy5hY3Rpb24uZW1pdCh7IGFjdGlvbjogXCJkb3dubG9hZFwiLCB2YWx1ZTogZWxlbWVudCB9KTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gcHJpbnQgYWN0aW9uIGljb24gaXMgY2xpY2tlcyAqL1xuICBwcmludENsaWNrZWQoZXZlbnQ6IGFueSwgZWxlbWVudDogYW55KSB7XG5cbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgYWN0aW9uOiAncHJpbnQnLCB2YWx1ZTogZWxlbWVudCB9KTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICB9XG5cbiAgLyoqTWV0aG9kIGludm9rZXMgd2hlbiBhIHJvdyBpcyBjbGlja2VkICovXG4gIHJvd0NsaWNrZWQoZXZlbnQ6IGFueSwgZWxlbWVudDogYW55KSB7XG4gICAgdGhpcy5yb3dDbGljay5lbWl0KGVsZW1lbnQpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgLyoqTWV0aG9kIGludm9rZXMgd2hlbiBtZW51IGFjdGlvbiBpY29uIGlzIGhvdmVyZWQgKi9cbiAgYWN0aW9uTWVudUNsaWNrKGV2ZW50OiBhbnksIGVsZW1lbnQ6IGFueSwgbWVudVZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgYWN0aW9uOiBtZW51VmFsdWUsIHZhbHVlOiBlbGVtZW50IH0pO1xuICAgIHRoaXMudHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gbWVudSBhY3Rpb24gaWNvbiBpcyBob3ZlcmVkIGFuZCBzZWxlY3RzIGZvciBwYXJ0aWN1bGFyIGFjdGlvbiovXG4gIGFjdGlvbk1lbnVUcmlnZ2VyQ2xpY2soZXZlbnQ6IGFueSwgdHJpZ2dlcjogTWF0TWVudVRyaWdnZXIpIHtcbiAgICB0aGlzLnRyaWdnZXIgPSB0cmlnZ2VyO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgY2hlY2tFZGl0KGVsZTogYW55KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmVkaXREaXNhYmxlRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5lZGl0RGlzYWJsZUZ1bmN0aW9uKGVsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjaGVja1ZpZXcoZWxlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5jb25maWcudmlld0Rpc2FibGVGdW5jdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnZpZXdEaXNhYmxlRnVuY3Rpb24oZWxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNoZWNrUHJpbnQoZWxlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5jb25maWcucHJpbnREaXNhYmxlRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5wcmludERpc2FibGVGdW5jdGlvbihlbGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY2hlY2tBY3Rpb25zKGVsZTogYW55KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmFjdGlvbnNNZW51RnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5hY3Rpb25zTWVudUZ1bmN0aW9uKGVsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjaGVja0FjdGlvbkJ1dHRvbihlbGU6IGFueSwgdmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5hY3Rpb25zTWVudUJ1dHRvbkZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcuYWN0aW9uc01lbnVCdXR0b25GdW5jdGlvbihlbGUsIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRWYWx1ZShlbGU6IGFueSwga2V5U3RyaW5nOiBzdHJpbmcpIHtcbiAgICBrZXlTdHJpbmcgPSBrZXlTdHJpbmcucmVwbGFjZSgvXFxbKFxcdyspXFxdL2csIFwiLiQxXCIpOyAvLyBjb252ZXJ0IGluZGV4ZXMgdG8gcHJvcGVydGllc1xuICAgIGtleVN0cmluZyA9IGtleVN0cmluZy5yZXBsYWNlKC9eXFwuLywgXCJcIik7IC8vIHN0cmlwIGEgbGVhZGluZyBkb3RcbiAgICBjb25zdCBrZXlMaXN0ID0ga2V5U3RyaW5nLnNwbGl0KFwiLlwiKTtcbiAgICBmb3IgKGxldCBpID0gMCwgbiA9IGtleUxpc3QubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlMaXN0W2ldO1xuICAgICAgaWYgKGVsZSAmJiBrZXkgaW4gZWxlKSB7XG4gICAgICAgIGVsZSA9IGVsZVtrZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZWxlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy9VbnRpbCBEZXN0cm95IHVzZXMgaXQuXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ export class DataTable {
2
+ }
3
+ class ColumnConfig {
4
+ }
5
+ class ActionConfig {
6
+ }
7
+ class ActionsMenu {
8
+ }
9
+ export class PageEvent {
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZGF0YS10YWJsZS9kYXRhLXRhYmxlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxTQUFTO0NBbUJyQjtBQUVELE1BQU0sWUFBWTtDQU9qQjtBQUVELE1BQU0sWUFBWTtDQU9qQjtBQUVELE1BQU0sV0FBVztDQUdoQjtBQUVELE1BQU0sT0FBTyxTQUFTO0NBSXJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERhdGFUYWJsZSB7XG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XG4gICAgY29sdW1uc0NvbmZpZzogQ29sdW1uQ29uZmlnW107XG4gICAgYWN0aW9uc0NvbmZpZz86IEFjdGlvbkNvbmZpZztcbiAgICBlbmFibGVSb3dDbGljaz86IGJvb2xlYW47XG4gICAgZGlzYWJsZUVsZXZhdGlvbj86IGJvb2xlYW47XG4gICAgZG93bmxvYWRMaW5rPzogc3RyaW5nO1xuICAgIGFjdGlvbnNNZW51RnVuY3Rpb24/OiBhbnk7XG4gICAgYWN0aW9uc01lbnVCdXR0b25GdW5jdGlvbj86IGFueTtcbiAgICBlZGl0RGlzYWJsZUZ1bmN0aW9uPzogYW55O1xuICAgIHZpZXdEaXNhYmxlRnVuY3Rpb24/OiBhbnk7XG4gICAgcHJpbnREaXNhYmxlRnVuY3Rpb24/OiBhbnk7XG4gICAgY3VzdG9tQWN0aW9uTGFiZWw/OiBzdHJpbmc7XG4gICAgc3RpY2t5SGVhZGVyPzogYm9vbGVhbjtcbiAgICBwYWdlPzogbnVtYmVyO1xuICAgIGxhc3RQYWdlPzogbnVtYmVyO1xuICAgIHBlclBhZ2U/OiBudW1iZXI7XG4gICAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG4gICAgc3R5bGU/OiBhbnk7XG59XG5cbmNsYXNzIENvbHVtbkNvbmZpZyB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIHNvcnQ/OiBib29sZWFuO1xuICAgIGRhdGVGaWVsZD86IGJvb2xlYW47XG4gICAgY3VycmVuY3lGaWVsZD86IGJvb2xlYW47XG4gICAgZm9ybWF0Pzogc3RyaW5nO1xufVxuXG5jbGFzcyBBY3Rpb25Db25maWcge1xuICAgIGVkaXQ/OiBib29sZWFuO1xuICAgIHZpZXc/OiBib29sZWFuO1xuICAgIGRvd25sb2FkPzogYm9vbGVhbjtcbiAgICBwcmludD86IGJvb2xlYW47XG4gICAgZGVhY3RpdmF0ZT86IGJvb2xlYW47XG4gICAgYWN0aW9uc01lbnU/OiBBY3Rpb25zTWVudVtdO1xufVxuXG5jbGFzcyBBY3Rpb25zTWVudSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQYWdlRXZlbnQge1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBsYXN0UGFnZT86IG51bWJlcjtcbiAgICBwZXJQYWdlOiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FlexLayoutModule } from '@angular/flex-layout';
4
+ import { DataTableComponent } from './data-table.component';
5
+ import { InfiniteScrollModule } from "ngx-infinite-scroll";
6
+ import { MaterialModule } from '../material.module';
7
+ export class DataTableModule {
8
+ }
9
+ DataTableModule.decorators = [
10
+ { type: NgModule, args: [{
11
+ imports: [
12
+ FlexLayoutModule,
13
+ CommonModule,
14
+ InfiniteScrollModule,
15
+ MaterialModule
16
+ ],
17
+ declarations: [
18
+ DataTableComponent
19
+ ],
20
+ exports: [
21
+ DataTableComponent
22
+ ]
23
+ },] }
24
+ ];
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBaUJwRCxNQUFNLE9BQU8sZUFBZTs7O1lBZDNCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLG9CQUFvQjtvQkFDcEIsY0FBYztpQkFDZjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asa0JBQWtCO2lCQUNuQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gXCJuZ3gtaW5maW5pdGUtc2Nyb2xsXCI7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERhdGFUYWJsZUNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './data-table.component';
2
+ export * from './data-table.model';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGEtdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdGFibGUubW9kZWwnOyJdfQ==
@@ -0,0 +1,10 @@
1
+ export function DateValidator() {
2
+ return (control) => {
3
+ const val = new Date(control.value);
4
+ if (!!control.value && val == 'Invalid Date') {
5
+ return { invalidDate: true };
6
+ }
7
+ return null;
8
+ };
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGUtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxhQUFhO0lBQ3pCLE9BQU8sQ0FBQyxPQUFvQixFQUEwQixFQUFFO1FBRXBELE1BQU0sR0FBRyxHQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUU7WUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gRGF0ZVZhbGlkYXRvcigpOiBhbnkge1xuICAgIHJldHVybiAoY29udHJvbDogRm9ybUNvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcblxuICAgICAgICBjb25zdCB2YWw6IGFueSA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICBpZiAoISFjb250cm9sLnZhbHVlICYmIHZhbCA9PSAnSW52YWxpZCBEYXRlJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZERhdGU6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xufSJdfQ==
@@ -0,0 +1,58 @@
1
+ import { Component, Input, EventEmitter, Output } from '@angular/core';
2
+ export class DocumentViewerComponent {
3
+ constructor() {
4
+ this.remove = new EventEmitter();
5
+ }
6
+ ngOnInit() {
7
+ this.initData();
8
+ }
9
+ removeFile() {
10
+ this.remove.emit();
11
+ }
12
+ initData() {
13
+ if (this.file) {
14
+ var ext = this.getFileExtension(this.file);
15
+ if (ext === 'ppt' || ext === 'pptx' || ext === 'doc' || ext === 'docx' || ext === 'xls' || ext === 'xlsx') {
16
+ this.viewerType = "office";
17
+ }
18
+ else if (ext === 'jpg' || ext === 'jpeg' || ext === 'png' || ext === 'gif') {
19
+ this.viewerType = "image";
20
+ }
21
+ else if (ext === 'pdf') {
22
+ this.viewerType = "pdf";
23
+ }
24
+ else {
25
+ this.viewerType = null;
26
+ }
27
+ }
28
+ }
29
+ get fileName() {
30
+ if (this.file) {
31
+ let nameArray = this.file.split('/');
32
+ if (nameArray.length === 2) {
33
+ return nameArray[1];
34
+ }
35
+ return nameArray[0];
36
+ }
37
+ return '';
38
+ }
39
+ getFileExtension(file) {
40
+ return file.split('.').pop();
41
+ }
42
+ }
43
+ DocumentViewerComponent.decorators = [
44
+ { type: Component, args: [{
45
+ selector: 'app-document-viewer',
46
+ template: "<mat-card *ngIf=\"viewerType === 'image'\">\n <img [ngStyle]=\"config.imageStyle\" mat-card-image [src]=\"fileUrl\" />\n <mat-card-actions>\n <button type=\"button\" mat-raised-button (click)=\"removeFile()\" *ngIf=\"!disableEdit && !config.hideRemove\">\n Remove\n </button>\n </mat-card-actions>\n</mat-card>\n\n<div class=\"mat-elevation-z1 p-4\" *ngIf=\"viewerType !== 'image'\">\n <a [href]=\"fileUrl\" target=\"_blank\">{{fileName}}</a>\n <ngx-doc-viewer [ngStyle]=\"config.viewerStyle\" *ngIf=\"viewerType !== null\" [url]=\"fileUrl\" [viewer]=\"viewerType\">\n </ngx-doc-viewer>\n <div class=\"mt-2\" *ngIf=\"!config.hideRemove\">\n <button type=\"button\" mat-raised-button (click)=\"removeFile()\" *ngIf=\"!disableEdit\">\n Remove\n </button>\n </div>\n</div>",
47
+ styles: [".image-fit{height:100%;object-fit:cover;width:100%}"]
48
+ },] }
49
+ ];
50
+ DocumentViewerComponent.ctorParameters = () => [];
51
+ DocumentViewerComponent.propDecorators = {
52
+ config: [{ type: Input }],
53
+ file: [{ type: Input }],
54
+ fileUrl: [{ type: Input }],
55
+ disableEdit: [{ type: Input }],
56
+ remove: [{ type: Output }]
57
+ };
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyL2RvY3VtZW50LXZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRSxNQUFNLE9BQU8sdUJBQXVCO0lBY2xDO1FBSFUsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHdEIsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLEtBQUssSUFBSSxHQUFHLEtBQUssTUFBTSxJQUFJLEdBQUcsS0FBSyxLQUFLLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTtnQkFDekcsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7YUFDNUI7aUJBQ0ksSUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLEtBQUssSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO2dCQUMxRSxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQzthQUMzQjtpQkFDSSxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO2lCQUNJO2dCQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ3hCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDMUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckI7WUFDRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVM7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7OztZQTVERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsdTFCQUErQzs7YUFFaEQ7Ozs7cUJBSUUsS0FBSzttQkFFTCxLQUFLO3NCQUVMLEtBQUs7MEJBRUwsS0FBSztxQkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld2VyQ29uZmlnIH0gZnJvbSAnLi92aWV3ZXItY29uZmlnLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRvY3VtZW50LXZpZXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudC12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2N1bWVudC12aWV3ZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50Vmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuXG4gIEBJbnB1dCgpIGNvbmZpZyE6IFZpZXdlckNvbmZpZztcblxuICBASW5wdXQoKSBmaWxlITogYW55O1xuXG4gIEBJbnB1dCgpIGZpbGVVcmwhOiBhbnk7XG5cbiAgQElucHV0KCkgZGlzYWJsZUVkaXQ6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgdmlld2VyVHlwZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0RGF0YSgpO1xuICB9XG5cbiAgcmVtb3ZlRmlsZSgpIHtcbiAgICB0aGlzLnJlbW92ZS5lbWl0KCk7XG4gIH1cblxuICBpbml0RGF0YSgpIHtcbiAgICBpZiAodGhpcy5maWxlKSB7XG4gICAgICB2YXIgZXh0ID0gdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKHRoaXMuZmlsZSk7XG4gICAgICBpZiAoZXh0ID09PSAncHB0JyB8fCBleHQgPT09ICdwcHR4JyB8fCBleHQgPT09ICdkb2MnIHx8IGV4dCA9PT0gJ2RvY3gnIHx8IGV4dCA9PT0gJ3hscycgfHwgZXh0ID09PSAneGxzeCcpIHtcbiAgICAgICAgdGhpcy52aWV3ZXJUeXBlID0gXCJvZmZpY2VcIjtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGV4dCA9PT0gJ2pwZycgfHwgZXh0ID09PSAnanBlZycgfHwgZXh0ID09PSAncG5nJyB8fCBleHQgPT09ICdnaWYnKSB7XG4gICAgICAgIHRoaXMudmlld2VyVHlwZSA9IFwiaW1hZ2VcIjtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGV4dCA9PT0gJ3BkZicpIHtcbiAgICAgICAgdGhpcy52aWV3ZXJUeXBlID0gXCJwZGZcIjtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnZpZXdlclR5cGUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBmaWxlTmFtZSgpIHtcbiAgICBpZiAodGhpcy5maWxlKSB7XG4gICAgICBsZXQgbmFtZUFycmF5ID0gdGhpcy5maWxlLnNwbGl0KCcvJyk7XG4gICAgICBpZiAobmFtZUFycmF5Lmxlbmd0aCA9PT0gMikge1xuICAgICAgICByZXR1cm4gbmFtZUFycmF5WzFdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5hbWVBcnJheVswXTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0RmlsZUV4dGVuc2lvbihmaWxlOiBhbnkpIHtcbiAgICByZXR1cm4gZmlsZS5zcGxpdCgnLicpLnBvcCgpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FlexLayoutModule } from '@angular/flex-layout';
4
+ import { DocumentViewerComponent } from './document-viewer.component';
5
+ import { NgxDocViewerModule } from 'ngx-doc-viewer';
6
+ import { MaterialModule } from '../material.module';
7
+ export class DocumentViewerModule {
8
+ }
9
+ DocumentViewerModule.decorators = [
10
+ { type: NgModule, args: [{
11
+ imports: [
12
+ CommonModule,
13
+ FlexLayoutModule,
14
+ NgxDocViewerModule,
15
+ MaterialModule
16
+ ],
17
+ declarations: [
18
+ DocumentViewerComponent
19
+ ],
20
+ exports: [
21
+ DocumentViewerComponent
22
+ ]
23
+ },] }
24
+ ];
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdmlld2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyL2RvY3VtZW50LXZpZXdlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBZ0JwRCxNQUFNLE9BQU8sb0JBQW9COzs7WUFkaEMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGdCQUFnQjtvQkFDaEIsa0JBQWtCO29CQUNsQixjQUFjO2lCQUNmO2dCQUNELFlBQVksRUFBRTtvQkFDWix1QkFBdUI7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCx1QkFBdUI7aUJBQ3hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBEb2N1bWVudFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hEb2NWaWV3ZXJNb2R1bGUgfSBmcm9tICduZ3gtZG9jLXZpZXdlcic7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBOZ3hEb2NWaWV3ZXJNb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRG9jdW1lbnRWaWV3ZXJDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIERvY3VtZW50Vmlld2VyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRWaWV3ZXJNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './document-viewer.component';
2
+ export * from './viewer-config.model';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RvY3VtZW50LXZpZXdlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RvY3VtZW50LXZpZXdlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3ZXItY29uZmlnLm1vZGVsJzsiXX0=
@@ -0,0 +1,3 @@
1
+ export class ViewerConfig {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZG9jdW1lbnQtdmlld2VyL3ZpZXdlci1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFlBQVk7Q0FJeEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVmlld2VyQ29uZmlnIHtcbiAgaW1hZ2VTdHlsZT86IGFueTtcbiAgdmlld2VyU3R5bGU/OiBhbnk7XG4gIGhpZGVSZW1vdmU/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { AuthenticationGuard } from '../../core/authentication.guard';
4
+ import { EmailSubscriptionForUserComponent } from './email-subscription-for-user.component';
5
+ export const esfur = {
6
+ permissions: {
7
+ only: ['client_admin']
8
+ }
9
+ };
10
+ const routes = [
11
+ {
12
+ path: '',
13
+ component: EmailSubscriptionForUserComponent,
14
+ canActivate: [AuthenticationGuard],
15
+ data: esfur
16
+ },
17
+ ];
18
+ export class EmailSubscriptionForUserRoutingModule {
19
+ }
20
+ EmailSubscriptionForUserRoutingModule.decorators = [
21
+ { type: NgModule, args: [{
22
+ imports: [RouterModule.forChild(routes)],
23
+ exports: [RouterModule]
24
+ },] }
25
+ ];
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc3Vic2NyaXB0aW9uLWZvci11c2VyLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9lbWFpbC1zdWJzY3JpcHRpb24vZW1haWwtc3Vic2NyaXB0aW9uLWZvci11c2VyL2VtYWlsLXN1YnNjcmlwdGlvbi1mb3ItdXNlci1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUU1RixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO0tBQ3ZCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsaUNBQWlDO1FBQzVDLFdBQVcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xDLElBQUksRUFBRSxLQUFLO0tBQ1o7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLHFDQUFxQzs7O1lBSmpELFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25HdWFyZCB9IGZyb20gJy4uLy4uL2NvcmUvYXV0aGVudGljYXRpb24uZ3VhcmQnO1xuaW1wb3J0IHsgRW1haWxTdWJzY3JpcHRpb25Gb3JVc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9lbWFpbC1zdWJzY3JpcHRpb24tZm9yLXVzZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGVzZnVyID0ge1xuICBwZXJtaXNzaW9uczoge1xuICAgIG9ubHk6IFsnY2xpZW50X2FkbWluJ11cbiAgfVxufTtcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IEVtYWlsU3Vic2NyaXB0aW9uRm9yVXNlckNvbXBvbmVudCxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhlbnRpY2F0aW9uR3VhcmRdLFxuICAgIGRhdGE6IGVzZnVyXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbFN1YnNjcmlwdGlvbkZvclVzZXJSb3V0aW5nTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,72 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from '@angular/core';
3
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
4
+ import { HttpService } from '../../core/http.service';
5
+ let EmailSubscriptionForUserComponent = class EmailSubscriptionForUserComponent {
6
+ constructor(http) {
7
+ this.http = http;
8
+ this.subscriptions = [];
9
+ this.pageEvent = { page: 1, perPage: 25, lastPage: 1 };
10
+ this.filters = {
11
+ sort_by: 'created_at|desc',
12
+ isLoadRelations: true,
13
+ relations: 'frequency,currentUserSubscription'
14
+ };
15
+ }
16
+ ngOnInit() {
17
+ this.fetchSubscriptions();
18
+ }
19
+ fetchSubscriptions() {
20
+ this.http.get(`api/email-subscription-types`, { params: Object.assign(Object.assign({}, this.filters), this.pageEvent) })
21
+ .pipe(untilDestroyed(this))
22
+ .subscribe((result) => {
23
+ this.subscriptions = this.subscriptions.concat(result.data);
24
+ this.pageEvent.page = result.current_page;
25
+ this.pageEvent.lastPage = result.last_page;
26
+ });
27
+ }
28
+ onScroll() {
29
+ if (this.pageEvent.lastPage > this.pageEvent.page) {
30
+ this.pageEvent.page += 1;
31
+ this.fetchSubscriptions();
32
+ }
33
+ }
34
+ subscribe(sub) {
35
+ this.http.post(`api/email-subscription-for-user`, { email_type_id: sub === null || sub === void 0 ? void 0 : sub.id })
36
+ .pipe(untilDestroyed(this))
37
+ .subscribe((result) => {
38
+ sub.current_user_subscription = result === null || result === void 0 ? void 0 : result.item;
39
+ });
40
+ }
41
+ unsubscribe(sub) {
42
+ var _a;
43
+ this.http.delete(`api/email-subscription-users/${(_a = sub === null || sub === void 0 ? void 0 : sub.current_user_subscription) === null || _a === void 0 ? void 0 : _a.id}`)
44
+ .pipe(untilDestroyed(this))
45
+ .subscribe((_) => {
46
+ sub.current_user_subscription = null;
47
+ });
48
+ }
49
+ reload() {
50
+ this.subscriptions = [];
51
+ this.pageEvent = { page: 1, perPage: 25, lastPage: 1 };
52
+ this.fetchSubscriptions();
53
+ }
54
+ ngOnDestroy() {
55
+ //Until destroyed uses it
56
+ }
57
+ };
58
+ EmailSubscriptionForUserComponent.decorators = [
59
+ { type: Component, args: [{
60
+ selector: 'app-email-subscription-for-user',
61
+ template: "<div fxLayout=\"column\" class=\"container my-4\">\n\n <div class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <mat-list>\n <div mat-subheader>Available Subscriptions</div>\n <mat-list-item *ngFor=\"let sub of subscriptions\">\n <mat-icon mat-list-icon>email</mat-icon>\n <div mat-line>{{sub?.title}} </div>\n <div mat-line class=\"text-secondary\">{{sub?.frequency?.title}}</div>\n <div mat-line> {{sub?.description}} </div>\n <div fxLayout fxLayoutAlign=\"end\">\n <button type=\"button\" *ngIf=\"!sub?.current_user_subscription\" mat-raised-button color=\"primary\"\n (click)=\"subscribe(sub)\">Subscribe</button>\n <button type=\"button\" *ngIf=\"sub?.current_user_subscription\" mat-stroked-button color=\"primary\"\n (click)=\"unsubscribe(sub)\">Unsubscribe</button>\n </div>\n <mat-divider></mat-divider>\n </mat-list-item>\n </mat-list>\n </div>\n\n</div>",
62
+ styles: [".scroll-container{max-height:800px;overflow-y:auto}"]
63
+ },] }
64
+ ];
65
+ EmailSubscriptionForUserComponent.ctorParameters = () => [
66
+ { type: HttpService }
67
+ ];
68
+ EmailSubscriptionForUserComponent = __decorate([
69
+ UntilDestroy()
70
+ ], EmailSubscriptionForUserComponent);
71
+ export { EmailSubscriptionForUserComponent };
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc3Vic2NyaXB0aW9uLWZvci11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW1haWwtc3Vic2NyaXB0aW9uL2VtYWlsLXN1YnNjcmlwdGlvbi1mb3ItdXNlci9lbWFpbC1zdWJzY3JpcHRpb24tZm9yLXVzZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0lBU3pDLGlDQUFpQyxTQUFqQyxpQ0FBaUM7SUFVNUMsWUFDVSxJQUFpQjtRQUFqQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBVDNCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBYyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDN0QsWUFBTyxHQUFRO1lBQ2IsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixlQUFlLEVBQUUsSUFBSTtZQUNyQixTQUFTLEVBQUUsbUNBQW1DO1NBQy9DLENBQUM7SUFJRSxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsRUFBRSxNQUFNLGtDQUFPLElBQUksQ0FBQyxPQUFPLEdBQUssSUFBSSxDQUFDLFNBQVMsQ0FBRSxFQUFFLENBQUM7YUFDOUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFRO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxFQUFFLEVBQUUsQ0FBQzthQUMxRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3pCLEdBQUcsQ0FBQyx5QkFBeUIsR0FBRyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFROztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUseUJBQXlCLDBDQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ25GLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDcEIsR0FBRyxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDVCx5QkFBeUI7SUFDM0IsQ0FBQztDQUVGLENBQUE7O1lBbkVBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUNBQWlDO2dCQUMzQyxrdENBQTJEOzthQUU1RDs7O1lBUlEsV0FBVzs7QUFTUCxpQ0FBaUM7SUFON0MsWUFBWSxFQUFFO0dBTUYsaUNBQWlDLENBOEQ3QztTQTlEWSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJy4uLy4uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5tb2RlbCc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVtYWlsLXN1YnNjcmlwdGlvbi1mb3ItdXNlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC1zdWJzY3JpcHRpb24tZm9yLXVzZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbWFpbC1zdWJzY3JpcHRpb24tZm9yLXVzZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbFN1YnNjcmlwdGlvbkZvclVzZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHN1YnNjcmlwdGlvbnM6IGFueVtdID0gW107XG4gIHBhZ2VFdmVudDogUGFnZUV2ZW50ID0geyBwYWdlOiAxLCBwZXJQYWdlOiAyNSwgbGFzdFBhZ2U6IDEgfTtcbiAgZmlsdGVyczogYW55ID0ge1xuICAgIHNvcnRfYnk6ICdjcmVhdGVkX2F0fGRlc2MnLFxuICAgIGlzTG9hZFJlbGF0aW9uczogdHJ1ZSxcbiAgICByZWxhdGlvbnM6ICdmcmVxdWVuY3ksY3VycmVudFVzZXJTdWJzY3JpcHRpb24nXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmV0Y2hTdWJzY3JpcHRpb25zKCk7XG4gIH1cblxuICBmZXRjaFN1YnNjcmlwdGlvbnMoKSB7XG4gICAgdGhpcy5odHRwLmdldChgYXBpL2VtYWlsLXN1YnNjcmlwdGlvbi10eXBlc2AsIHsgcGFyYW1zOiB7IC4uLnRoaXMuZmlsdGVycywgLi4udGhpcy5wYWdlRXZlbnQgfSB9KVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSB0aGlzLnN1YnNjcmlwdGlvbnMuY29uY2F0KHJlc3VsdC5kYXRhKTtcbiAgICAgICAgdGhpcy5wYWdlRXZlbnQucGFnZSA9IHJlc3VsdC5jdXJyZW50X3BhZ2U7XG4gICAgICAgIHRoaXMucGFnZUV2ZW50Lmxhc3RQYWdlID0gcmVzdWx0Lmxhc3RfcGFnZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMucGFnZUV2ZW50Lmxhc3RQYWdlID4gdGhpcy5wYWdlRXZlbnQucGFnZSkge1xuICAgICAgdGhpcy5wYWdlRXZlbnQucGFnZSArPSAxO1xuICAgICAgdGhpcy5mZXRjaFN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBzdWJzY3JpYmUoc3ViOiBhbnkpIHtcbiAgICB0aGlzLmh0dHAucG9zdChgYXBpL2VtYWlsLXN1YnNjcmlwdGlvbi1mb3ItdXNlcmAsIHsgZW1haWxfdHlwZV9pZDogc3ViPy5pZCB9KVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICBzdWIuY3VycmVudF91c2VyX3N1YnNjcmlwdGlvbiA9IHJlc3VsdD8uaXRlbTtcbiAgICAgIH0pO1xuICB9XG5cbiAgdW5zdWJzY3JpYmUoc3ViOiBhbnkpIHtcbiAgICB0aGlzLmh0dHAuZGVsZXRlKGBhcGkvZW1haWwtc3Vic2NyaXB0aW9uLXVzZXJzLyR7c3ViPy5jdXJyZW50X3VzZXJfc3Vic2NyaXB0aW9uPy5pZH1gKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChfOiBhbnkpID0+IHtcbiAgICAgICAgc3ViLmN1cnJlbnRfdXNlcl9zdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgfSk7XG4gIH1cblxuXG4gIHJlbG9hZCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB0aGlzLnBhZ2VFdmVudCA9IHsgcGFnZTogMSwgcGVyUGFnZTogMjUsIGxhc3RQYWdlOiAxIH07XG4gICAgdGhpcy5mZXRjaFN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vVW50aWwgZGVzdHJveWVkIHVzZXMgaXRcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { EmailSubscriptionForUserRoutingModule } from './email-subscription-for-user-routing.module';
4
+ import { EmailSubscriptionForUserComponent } from './email-subscription-for-user.component';
5
+ import { InfiniteScrollModule } from 'ngx-infinite-scroll';
6
+ import { FlexLayoutModule } from '@angular/flex-layout';
7
+ import { MaterialModule } from '../../material.module';
8
+ export class EmailSubscriptionForUserModule {
9
+ }
10
+ EmailSubscriptionForUserModule.decorators = [
11
+ { type: NgModule, args: [{
12
+ declarations: [EmailSubscriptionForUserComponent],
13
+ imports: [
14
+ CommonModule,
15
+ InfiniteScrollModule,
16
+ MaterialModule,
17
+ FlexLayoutModule,
18
+ EmailSubscriptionForUserRoutingModule
19
+ ],
20
+ exports: [EmailSubscriptionForUserComponent]
21
+ },] }
22
+ ];
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc3Vic2NyaXB0aW9uLWZvci11c2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW1haWwtc3Vic2NyaXB0aW9uL2VtYWlsLXN1YnNjcmlwdGlvbi1mb3ItdXNlci9lbWFpbC1zdWJzY3JpcHRpb24tZm9yLXVzZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWN2RCxNQUFNLE9BQU8sOEJBQThCOzs7WUFYMUMsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2dCQUNqRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixvQkFBb0I7b0JBQ3BCLGNBQWM7b0JBQ2QsZ0JBQWdCO29CQUNoQixxQ0FBcUM7aUJBQ3RDO2dCQUNELE9BQU8sRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2FBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEVtYWlsU3Vic2NyaXB0aW9uRm9yVXNlclJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2VtYWlsLXN1YnNjcmlwdGlvbi1mb3ItdXNlci1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBFbWFpbFN1YnNjcmlwdGlvbkZvclVzZXJDb21wb25lbnQgfSBmcm9tICcuL2VtYWlsLXN1YnNjcmlwdGlvbi1mb3ItdXNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uLy4uL21hdGVyaWFsLm1vZHVsZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRW1haWxTdWJzY3JpcHRpb25Gb3JVc2VyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEVtYWlsU3Vic2NyaXB0aW9uRm9yVXNlclJvdXRpbmdNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW0VtYWlsU3Vic2NyaXB0aW9uRm9yVXNlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRW1haWxTdWJzY3JpcHRpb25Gb3JVc2VyTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './email-subscription-for-user.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2VtYWlsLXN1YnNjcmlwdGlvbi9lbWFpbC1zdWJzY3JpcHRpb24tZm9yLXVzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW1haWwtc3Vic2NyaXB0aW9uLWZvci11c2VyLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ const routes = [];
4
+ export class EmailSubscriptionRoutingModule {
5
+ }
6
+ EmailSubscriptionRoutingModule.decorators = [
7
+ { type: NgModule, args: [{
8
+ imports: [RouterModule.forChild(routes)],
9
+ exports: [RouterModule]
10
+ },] }
11
+ ];
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc3Vic2NyaXB0aW9uLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9lbWFpbC1zdWJzY3JpcHRpb24vZW1haWwtc3Vic2NyaXB0aW9uLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztBQU0xQixNQUFNLE9BQU8sOEJBQThCOzs7WUFKMUMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXMsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW107XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEVtYWlsU3Vic2NyaXB0aW9uUm91dGluZ01vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ const routes = [];
4
+ export class EmailSubscriptionTypeFormRoutingModule {
5
+ }
6
+ EmailSubscriptionTypeFormRoutingModule.decorators = [
7
+ { type: NgModule, args: [{
8
+ imports: [RouterModule.forChild(routes)],
9
+ exports: [RouterModule]
10
+ },] }
11
+ ];
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc3Vic2NyaXB0aW9uLXR5cGUtZm9ybS1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW1haWwtc3Vic2NyaXB0aW9uL2VtYWlsLXN1YnNjcmlwdGlvbi10eXBlL2VtYWlsLXN1YnNjcmlwdGlvbi10eXBlLWZvcm0vZW1haWwtc3Vic2NyaXB0aW9uLXR5cGUtZm9ybS1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7QUFNMUIsTUFBTSxPQUFPLHNDQUFzQzs7O1lBSmxELFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbFN1YnNjcmlwdGlvblR5cGVGb3JtUm91dGluZ01vZHVsZSB7IH1cbiJdfQ==