ngx-techlify-core 11.4.8 → 11.4.9

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 (341) hide show
  1. package/README.md +24 -24
  2. package/bundles/ngx-techlify-core.umd.js +8085 -8047
  3. package/bundles/ngx-techlify-core.umd.js.map +1 -1
  4. package/bundles/ngx-techlify-core.umd.min.js +1 -1
  5. package/bundles/ngx-techlify-core.umd.min.js.map +1 -1
  6. package/esm2015/lib/action-popup/action-popup.component.js +32 -32
  7. package/esm2015/lib/action-popup/action-popup.model.js +3 -3
  8. package/esm2015/lib/action-popup/action-popup.module.js +26 -26
  9. package/esm2015/lib/action-popup/index.js +3 -3
  10. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.js +12 -12
  11. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.component.js +49 -49
  12. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.module.js +25 -25
  13. package/esm2015/lib/audit-log/audit-log-list/audit-log-list-routing.module.js +12 -12
  14. package/esm2015/lib/audit-log/audit-log-list/audit-log-list.component.js +132 -132
  15. package/esm2015/lib/audit-log/audit-log-list/audit-log-list.module.js +29 -29
  16. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.js +12 -12
  17. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.js +67 -67
  18. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.js +25 -25
  19. package/esm2015/lib/audit-log/audit-log-routing.module.js +19 -19
  20. package/esm2015/lib/audit-log/audit-log-view/audit-log-view-routing.module.js +12 -12
  21. package/esm2015/lib/audit-log/audit-log-view/audit-log-view.component.js +60 -60
  22. package/esm2015/lib/audit-log/audit-log-view/audit-log-view.module.js +21 -21
  23. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.js +12 -12
  24. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.component.js +57 -57
  25. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.module.js +21 -21
  26. package/esm2015/lib/audit-log/audit-log.module.js +20 -20
  27. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.js +12 -12
  28. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.js +35 -35
  29. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.js +21 -21
  30. package/esm2015/lib/base-model/index.js +4 -4
  31. package/esm2015/lib/base-model/techlify-form-component.class.js +51 -51
  32. package/esm2015/lib/base-model/techlify-listing-component.class.js +41 -41
  33. package/esm2015/lib/base-model/techlify-service.class.js +64 -64
  34. package/esm2015/lib/core/alert.service.js +39 -39
  35. package/esm2015/lib/core/api-prefix.interceptor.js +28 -28
  36. package/esm2015/lib/core/authentication.guard.js +39 -39
  37. package/esm2015/lib/core/authentication.service.js +59 -59
  38. package/esm2015/lib/core/cache.interceptor.js +60 -60
  39. package/esm2015/lib/core/config.service.js +47 -47
  40. package/esm2015/lib/core/core.module.js +42 -42
  41. package/esm2015/lib/core/credentials.service.js +84 -84
  42. package/esm2015/lib/core/dataManager.service.js +120 -120
  43. package/esm2015/lib/core/error-handler.interceptor.js +53 -53
  44. package/esm2015/lib/core/error-handler.service.js +59 -59
  45. package/esm2015/lib/core/form-validator.service.js +23 -23
  46. package/esm2015/lib/core/header.interceptor.js +22 -22
  47. package/esm2015/lib/core/http-cache.service.js +110 -110
  48. package/esm2015/lib/core/http.service.js +82 -82
  49. package/esm2015/lib/core/index.js +21 -21
  50. package/esm2015/lib/core/logger.service.js +100 -100
  51. package/esm2015/lib/core/route-reusable-strategy.js +35 -35
  52. package/esm2015/lib/core/snack/snack.component.js +33 -33
  53. package/esm2015/lib/core/snack/snack.module.js +25 -25
  54. package/esm2015/lib/core/storage.service.js +36 -36
  55. package/esm2015/lib/core/techlify-config.model.js +28 -28
  56. package/esm2015/lib/core/token.interceptor.js +30 -30
  57. package/esm2015/lib/data-table/data-table.component.js +190 -190
  58. package/esm2015/lib/data-table/data-table.model.js +11 -11
  59. package/esm2015/lib/data-table/data-table.module.js +25 -25
  60. package/esm2015/lib/data-table/index.js +3 -3
  61. package/esm2015/lib/date-validator.js +10 -10
  62. package/esm2015/lib/document-viewer/document-viewer.component.js +58 -58
  63. package/esm2015/lib/document-viewer/document-viewer.module.js +25 -25
  64. package/esm2015/lib/document-viewer/index.js +3 -3
  65. package/esm2015/lib/document-viewer/viewer-config.model.js +3 -3
  66. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.js +26 -26
  67. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.js +72 -72
  68. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.js +23 -23
  69. package/esm2015/lib/email-subscription/email-subscription-for-user/index.js +2 -2
  70. package/esm2015/lib/email-subscription/email-subscription-routing.module.js +12 -12
  71. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.js +12 -12
  72. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.js +102 -102
  73. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.js +28 -28
  74. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.js +2 -2
  75. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.js +28 -28
  76. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.js +153 -153
  77. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.js +27 -27
  78. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.js +1 -1
  79. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.js +12 -12
  80. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type.module.js +15 -15
  81. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.js +12 -12
  82. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.js +99 -99
  83. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.js +27 -27
  84. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.js +2 -2
  85. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.js +28 -28
  86. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.js +155 -155
  87. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.js +29 -29
  88. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.js +2 -2
  89. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.js +12 -12
  90. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.js +50 -50
  91. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.js +25 -25
  92. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.js +2 -2
  93. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.js +12 -12
  94. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user.module.js +15 -15
  95. package/esm2015/lib/email-subscription/email-subscription.module.js +15 -15
  96. package/esm2015/lib/entity-files/entity-file-form/entity-file-form.component.js +147 -138
  97. package/esm2015/lib/entity-files/entity-file.service.js +42 -42
  98. package/esm2015/lib/entity-files/entity-files-view-all.component.js +234 -208
  99. package/esm2015/lib/entity-files/entity-files-view-all.module.js +40 -34
  100. package/esm2015/lib/entity-files/index.js +3 -3
  101. package/esm2015/lib/export-excel/export-excel-button/export-excel-button.component.js +32 -32
  102. package/esm2015/lib/export-excel/export-excel.module.js +17 -17
  103. package/esm2015/lib/file-dropper/file-dropper.component.js +122 -122
  104. package/esm2015/lib/file-dropper/file-dropper.model.js +3 -3
  105. package/esm2015/lib/file-dropper/file-dropper.module.js +21 -21
  106. package/esm2015/lib/file-dropper/index.js +3 -3
  107. package/esm2015/lib/import-csv/data-import/data-import.component.js +18 -18
  108. package/esm2015/lib/import-csv/failed-items-list/failed-items-list.component.js +33 -33
  109. package/esm2015/lib/import-csv/field-mapping/field-mapping.component.js +148 -148
  110. package/esm2015/lib/import-csv/import-csv-config.js +2 -2
  111. package/esm2015/lib/import-csv/import-csv.component.js +196 -196
  112. package/esm2015/lib/import-csv/import-csv.module.js +46 -46
  113. package/esm2015/lib/import-csv/import-history-list/import-history-list.component.js +71 -71
  114. package/esm2015/lib/import-csv/import-success/import-success.component.js +19 -19
  115. package/esm2015/lib/loader/index.js +2 -2
  116. package/esm2015/lib/loader/loader.component.js +22 -22
  117. package/esm2015/lib/loader/loader.module.js +21 -21
  118. package/esm2015/lib/login-history-for-user/login-history-for-user-routing.module.js +20 -20
  119. package/esm2015/lib/login-history-for-user/login-history-for-user.component.js +88 -88
  120. package/esm2015/lib/login-history-for-user/login-history-for-user.module.js +27 -27
  121. package/esm2015/lib/material.module.js +60 -60
  122. package/esm2015/lib/note/comment-form/comment-form.component.js +73 -73
  123. package/esm2015/lib/note/index.js +4 -4
  124. package/esm2015/lib/note/note-form/note-form.component.js +81 -81
  125. package/esm2015/lib/note/note-list/note-list.component.js +151 -151
  126. package/esm2015/lib/note/note.module.js +36 -36
  127. package/esm2015/lib/note/note.service.js +31 -31
  128. package/esm2015/lib/read-more/read-more.component.js +43 -43
  129. package/esm2015/lib/read-more/read-more.module.js +21 -21
  130. package/esm2015/lib/searchable-selector/index.js +3 -3
  131. package/esm2015/lib/searchable-selector/mat-select-infinite-scroll.directive.js +81 -81
  132. package/esm2015/lib/searchable-selector/searchable-selector.component.js +307 -307
  133. package/esm2015/lib/searchable-selector/searchable-selector.module.js +28 -28
  134. package/esm2015/lib/techlify-feature/on-off-switch/on-off-switch.component.js +27 -27
  135. package/esm2015/lib/techlify-feature/techlify-feature-enabled.directive.js +78 -78
  136. package/esm2015/lib/techlify-feature/techlify-feature-listing.component.js +177 -177
  137. package/esm2015/lib/techlify-feature/techlify-feature.module.js +30 -30
  138. package/esm2015/lib/techlify-feature/techlify-feature.routing.js +12 -12
  139. package/esm2015/lib/techlify-feature/techlify-feature.service.js +28 -28
  140. package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.js +15 -15
  141. package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.js +269 -269
  142. package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.js +25 -25
  143. package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.js +168 -168
  144. package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.js +29 -29
  145. package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.component.js +114 -114
  146. package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.module.js +28 -28
  147. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.js +22 -22
  148. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.component.js +143 -143
  149. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.module.js +28 -28
  150. package/esm2015/lib/techlify-update/techlify-update-routing.module.js +22 -22
  151. package/esm2015/lib/techlify-update/techlify-update.module.js +30 -30
  152. package/esm2015/lib/techlify-update/techlify-update.service.js +43 -43
  153. package/esm2015/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.js +161 -161
  154. package/esm2015/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.js +82 -82
  155. package/esm2015/lib/techlify-update/update-notifier/update-notifier.component.js +62 -62
  156. package/esm2015/lib/techlify-update/update-notifier/update-notifier.module.js +29 -29
  157. package/esm2015/lib/techlify-update/update-view/update-view.component.js +36 -36
  158. package/esm2015/lib/techlify-update/update-view/update-view.module.js +24 -24
  159. package/esm2015/lib/timeline-filter/calculate-timeline.js +102 -102
  160. package/esm2015/lib/timeline-filter/index.js +4 -4
  161. package/esm2015/lib/timeline-filter/timeline-filter-routing.module.js +12 -12
  162. package/esm2015/lib/timeline-filter/timeline-filter.component.js +213 -213
  163. package/esm2015/lib/timeline-filter/timeline-filter.module.js +23 -23
  164. package/esm2015/lib/timeline-filter/timeline.model.js +18 -18
  165. package/esm2015/lib/utility/date-utils.service.js +48 -48
  166. package/esm2015/lib/utility/index.js +4 -4
  167. package/esm2015/lib/utility/num-items-selector.component.js +29 -29
  168. package/esm2015/lib/utility/number-selector.component.js +38 -38
  169. package/esm2015/lib/utility/utility.module.js +20 -20
  170. package/esm2015/ngx-techlify-core.js +60 -60
  171. package/esm2015/public-api.js +96 -96
  172. package/fesm2015/ngx-techlify-core.js +6941 -6903
  173. package/fesm2015/ngx-techlify-core.js.map +1 -1
  174. package/lib/action-popup/action-popup.component.d.ts +14 -14
  175. package/lib/action-popup/action-popup.model.d.ts +5 -5
  176. package/lib/action-popup/action-popup.module.d.ts +2 -2
  177. package/lib/action-popup/index.d.ts +2 -2
  178. package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts +2 -2
  179. package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +12 -12
  180. package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +2 -2
  181. package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts +2 -2
  182. package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +32 -32
  183. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +2 -2
  184. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts +2 -2
  185. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +19 -19
  186. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +2 -2
  187. package/lib/audit-log/audit-log-routing.module.d.ts +2 -2
  188. package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts +2 -2
  189. package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts +17 -17
  190. package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +2 -2
  191. package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts +2 -2
  192. package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts +15 -15
  193. package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +2 -2
  194. package/lib/audit-log/audit-log.module.d.ts +2 -2
  195. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts +2 -2
  196. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts +11 -11
  197. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +2 -2
  198. package/lib/base-model/index.d.ts +3 -3
  199. package/lib/base-model/techlify-form-component.class.d.ts +43 -43
  200. package/lib/base-model/techlify-listing-component.class.d.ts +47 -47
  201. package/lib/base-model/techlify-service.class.d.ts +52 -52
  202. package/lib/core/alert.service.d.ts +12 -12
  203. package/lib/core/api-prefix.interceptor.d.ts +11 -11
  204. package/lib/core/authentication.guard.d.ts +10 -10
  205. package/lib/core/authentication.service.d.ts +23 -23
  206. package/lib/core/cache.interceptor.d.ts +21 -21
  207. package/lib/core/config.service.d.ts +19 -19
  208. package/lib/core/core.module.d.ts +3 -3
  209. package/lib/core/credentials.service.d.ts +36 -36
  210. package/lib/core/dataManager.service.d.ts +70 -70
  211. package/lib/core/error-handler.interceptor.d.ts +14 -14
  212. package/lib/core/error-handler.service.d.ts +14 -14
  213. package/lib/core/form-validator.service.d.ts +8 -8
  214. package/lib/core/header.interceptor.d.ts +8 -8
  215. package/lib/core/http-cache.service.d.ts +54 -54
  216. package/lib/core/http.service.d.ts +56 -56
  217. package/lib/core/index.d.ts +20 -20
  218. package/lib/core/logger.service.d.ts +85 -85
  219. package/lib/core/route-reusable-strategy.d.ts +13 -13
  220. package/lib/core/snack/snack.component.d.ts +8 -8
  221. package/lib/core/snack/snack.module.d.ts +2 -2
  222. package/lib/core/storage.service.d.ts +15 -15
  223. package/lib/core/techlify-config.model.d.ts +18 -18
  224. package/lib/core/token.interceptor.d.ts +11 -11
  225. package/lib/data-table/data-table.component.d.ts +60 -60
  226. package/lib/data-table/data-table.model.d.ts +46 -46
  227. package/lib/data-table/data-table.module.d.ts +2 -2
  228. package/lib/data-table/index.d.ts +2 -2
  229. package/lib/date-validator.d.ts +1 -1
  230. package/lib/document-viewer/document-viewer.component.d.ts +16 -16
  231. package/lib/document-viewer/document-viewer.module.d.ts +2 -2
  232. package/lib/document-viewer/index.d.ts +2 -2
  233. package/lib/document-viewer/viewer-config.model.d.ts +5 -5
  234. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +7 -7
  235. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts +17 -17
  236. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +2 -2
  237. package/lib/email-subscription/email-subscription-for-user/index.d.ts +1 -1
  238. package/lib/email-subscription/email-subscription-routing.module.d.ts +2 -2
  239. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts +2 -2
  240. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts +32 -32
  241. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +2 -2
  242. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts +1 -1
  243. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +9 -9
  244. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts +30 -30
  245. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +2 -2
  246. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts +1 -1
  247. package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts +2 -2
  248. package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts +2 -2
  249. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts +2 -2
  250. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts +32 -32
  251. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +2 -2
  252. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts +1 -1
  253. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +9 -9
  254. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts +32 -32
  255. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +2 -2
  256. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts +1 -1
  257. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts +2 -2
  258. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts +13 -13
  259. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +2 -2
  260. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts +1 -1
  261. package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts +2 -2
  262. package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts +2 -2
  263. package/lib/email-subscription/email-subscription.module.d.ts +2 -2
  264. package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +38 -34
  265. package/lib/entity-files/entity-file.service.d.ts +10 -10
  266. package/lib/entity-files/entity-files-view-all.component.d.ts +51 -45
  267. package/lib/entity-files/entity-files-view-all.module.d.ts +2 -2
  268. package/lib/entity-files/index.d.ts +2 -2
  269. package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +8 -8
  270. package/lib/export-excel/export-excel.module.d.ts +2 -2
  271. package/lib/file-dropper/file-dropper.component.d.ts +33 -33
  272. package/lib/file-dropper/file-dropper.model.d.ts +10 -10
  273. package/lib/file-dropper/file-dropper.module.d.ts +2 -2
  274. package/lib/file-dropper/index.d.ts +2 -2
  275. package/lib/import-csv/data-import/data-import.component.d.ts +6 -6
  276. package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts +12 -12
  277. package/lib/import-csv/field-mapping/field-mapping.component.d.ts +34 -34
  278. package/lib/import-csv/import-csv-config.d.ts +17 -17
  279. package/lib/import-csv/import-csv.component.d.ts +33 -33
  280. package/lib/import-csv/import-csv.module.d.ts +2 -2
  281. package/lib/import-csv/import-history-list/import-history-list.component.d.ts +21 -21
  282. package/lib/import-csv/import-success/import-success.component.d.ts +8 -8
  283. package/lib/loader/index.d.ts +1 -1
  284. package/lib/loader/loader.component.d.ts +8 -8
  285. package/lib/loader/loader.module.d.ts +2 -2
  286. package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts +2 -2
  287. package/lib/login-history-for-user/login-history-for-user.component.d.ts +23 -23
  288. package/lib/login-history-for-user/login-history-for-user.module.d.ts +2 -2
  289. package/lib/material.module.d.ts +2 -2
  290. package/lib/note/comment-form/comment-form.component.d.ts +22 -22
  291. package/lib/note/index.d.ts +3 -3
  292. package/lib/note/note-form/note-form.component.d.ts +27 -27
  293. package/lib/note/note-list/note-list.component.d.ts +28 -28
  294. package/lib/note/note.module.d.ts +2 -2
  295. package/lib/note/note.service.d.ts +9 -9
  296. package/lib/read-more/read-more.component.d.ts +12 -12
  297. package/lib/read-more/read-more.module.d.ts +2 -2
  298. package/lib/searchable-selector/index.d.ts +2 -2
  299. package/lib/searchable-selector/mat-select-infinite-scroll.directive.d.ts +23 -23
  300. package/lib/searchable-selector/searchable-selector.component.d.ts +81 -81
  301. package/lib/searchable-selector/searchable-selector.module.d.ts +2 -2
  302. package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +9 -9
  303. package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +17 -17
  304. package/lib/techlify-feature/techlify-feature-listing.component.d.ts +37 -37
  305. package/lib/techlify-feature/techlify-feature.module.d.ts +2 -2
  306. package/lib/techlify-feature/techlify-feature.routing.d.ts +2 -2
  307. package/lib/techlify-feature/techlify-feature.service.d.ts +8 -8
  308. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts +12 -12
  309. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +76 -76
  310. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +2 -2
  311. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +58 -58
  312. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +2 -2
  313. package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts +30 -30
  314. package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +2 -2
  315. package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts +2 -2
  316. package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts +31 -31
  317. package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +2 -2
  318. package/lib/techlify-update/techlify-update-routing.module.d.ts +2 -2
  319. package/lib/techlify-update/techlify-update.module.d.ts +2 -2
  320. package/lib/techlify-update/techlify-update.service.d.ts +13 -13
  321. package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts +31 -31
  322. package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts +25 -25
  323. package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +16 -16
  324. package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +2 -2
  325. package/lib/techlify-update/update-view/update-view.component.d.ts +14 -14
  326. package/lib/techlify-update/update-view/update-view.module.d.ts +2 -2
  327. package/lib/timeline-filter/calculate-timeline.d.ts +6 -6
  328. package/lib/timeline-filter/index.d.ts +3 -3
  329. package/lib/timeline-filter/timeline-filter-routing.module.d.ts +2 -2
  330. package/lib/timeline-filter/timeline-filter.component.d.ts +61 -61
  331. package/lib/timeline-filter/timeline-filter.module.d.ts +2 -2
  332. package/lib/timeline-filter/timeline.model.d.ts +17 -17
  333. package/lib/utility/date-utils.service.d.ts +21 -21
  334. package/lib/utility/index.d.ts +3 -3
  335. package/lib/utility/num-items-selector.component.d.ts +16 -16
  336. package/lib/utility/number-selector.component.d.ts +20 -20
  337. package/lib/utility/utility.module.d.ts +2 -2
  338. package/ngx-techlify-core.d.ts +59 -59
  339. package/ngx-techlify-core.metadata.json +1 -1
  340. package/package.json +2 -2
  341. package/public-api.d.ts +92 -92
@@ -1,190 +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]=\"{\r\n 'mat-elevation-z1': !config.disableElevation\r\n }\" class=\"scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\r\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\" [ngStyle]=\"config.style\">\r\n <table mat-table [dataSource]=\"dataSource\" matSort [id]=\"elementId\">\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef style=\"width:60px\">\r\n <mat-checkbox *ngIf=\"selection\" (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\" style=\"width:60px\">\r\n <mat-checkbox *ngIf=\"selection\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\" [checked]=\"selection.isSelected(row)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Index Column -->\r\n <ng-container matColumnDef=\"index\">\r\n <th mat-header-cell *matHeaderCellDef>#</th>\r\n <td mat-cell *matCellDef=\"let index = index\">\r\n {{ (index + 1) }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef class=\"action-width d-print-none\">\r\n {{ config.customActionLabel }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let element; let index = index\" class=\"d-print-none\">\r\n <div>\r\n <button *ngIf=\"\r\n config.actionsConfig.download && element[config.downloadLink]\r\n \" type=\"button\" mat-icon-button (click)=\"downloadClicked($event, element)\">\r\n <mat-icon>vertical_align_bottom</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"config.actionsConfig.edit\" [disabled]=\"!this.checkEdit(element)\" type=\"button\"\r\n mat-icon-button (click)=\"editClicked($event, element)\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"config.actionsConfig.print\" [disabled]=\"!this.checkPrint(element)\" type=\"button\"\r\n mat-icon-button (click)=\"printClicked($event,element)\">\r\n <mat-icon>print</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"config.actionsConfig.view\" [disabled]=\"!this.checkView(element)\" type=\"button\"\r\n mat-icon-button (click)=\"viewClicked($event, element)\">\r\n <mat-icon>description</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"config.actionsConfig.deactivate\" type=\"button\" mat-icon-button\r\n (click)=\"deactivateClicked($event, element)\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n <button #menuTrigger=\"matMenuTrigger\" *ngIf=\"\r\n config.actionsConfig.actionsMenu &&\r\n this.checkActions(element) &&\r\n config.actionsConfig.actionsMenu.length > 0\r\n \" type=\"button\" mat-icon-button [matMenuTriggerFor]=\"actionsMenu\"\r\n (click)=\"actionMenuTriggerClick($event, menuTrigger)\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <mat-menu #actionsMenu=\"matMenu\">\r\n <div *ngFor=\"let item of config.actionsConfig.actionsMenu\">\r\n <button *ngIf=\"this.checkActionButton(element, item.value)\" mat-menu-item\r\n (click)=\"actionMenuClick($event, element, item.value)\">\r\n <span>{{ item.name }}</span>\r\n </button>\r\n </div>\r\n </mat-menu>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Actual Columns -->\r\n <ng-container matColumnDef=\"{{ column.value }}\" *ngFor=\"let column of config.columnsConfig\">\r\n <ng-container *ngIf=\"column?.sort; else noSort\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n {{ column.title }}\r\n </th>\r\n </ng-container>\r\n <ng-template #noSort>\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ column.title }}\r\n </th>\r\n </ng-template>\r\n <ng-container *ngIf=\"column.dateField; else currencyField\">\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"text-truncate\" appToolTip>\r\n {{ getValue(element, column.value) | date:column.format? column.format: 'mediumDate' }}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-template #currencyField>\r\n <div *ngIf=\"column.currencyField; else normalField\">\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"text-truncate\" appToolTip>\r\n {{ getValue(element, column.value) | currency: \"$\":'symbol' : '1.0-0' }}\r\n </div>\r\n </td>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #normalField>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"text-truncate\" appToolTip>\r\n {{ getValue(element, column.value) }}\r\n </div>\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"config.stickyHeader; else normalHeader\">\r\n <tr class=\"font-weight-bold\" mat-header-row *matHeaderRowDef=\"config.displayedColumns; sticky:true\"></tr>\r\n </ng-container>\r\n <ng-template #normalHeader>\r\n <tr class=\"font-weight-bold\" mat-header-row *matHeaderRowDef=\"config.displayedColumns;\">\r\n </tr>\r\n </ng-template>\r\n\r\n <div *ngIf=\"!config.enableRowClick\">\r\n <tr mat-row *matRowDef=\"let row; columns: config.displayedColumns\"></tr>\r\n </div>\r\n\r\n <div *ngIf=\"config.enableRowClick\">\r\n <tr mat-row *matRowDef=\"let row; columns: config.displayedColumns\" (click)=\"rowClicked($event, row)\"\r\n class=\"hoverable row-hover\"></tr>\r\n </div>\r\n </table>\r\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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R0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2hCO2lCQUFNO2dCQUNMLE9BQU87YUFDUjtTQUNGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsV0FBVztRQUNULHdCQUF3QjtJQUMxQixDQUFDO0NBQ0YsQ0FBQTtBQXJMUSx5QkFBTSxHQUFHLENBQUMsQ0FBQzs7WUE5Qm5CLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQiw2Nk5BQTBDOzthQUUzQzs7OzttQkFLRSxLQUFLO3FCQUVMLEtBQUs7d0JBSUwsS0FBSztxQkFFTCxNQUFNOzZCQUNOLE1BQU07dUJBQ04sTUFBTTswQkFDTixNQUFNOzBCQUNOLE1BQU07bUJBT04sU0FBUyxTQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7d0JBR25DLEtBQUs7O0FBMUJLLGtCQUFrQjtJQU45QixZQUFZLEVBQUU7R0FNRixrQkFBa0IsQ0E4TTlCO1NBOU1ZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2xsZWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlIH0gZnJvbSAnLi9kYXRhLXRhYmxlLm1vZGVsJztcclxuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gXCJAbmduZWF0L3VudGlsLWRlc3Ryb3lcIjtcclxuXHJcbkBVbnRpbERlc3Ryb3koKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtZGF0YS10YWJsZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xyXG5cclxuICBASW5wdXQoKSBkYXRhOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZzogRGF0YVRhYmxlO1xyXG5cclxuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55PiA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoW10pO1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPGFueT47XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgdGFibGVTY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwYWdlOiBudW1iZXI7XHJcbiAgbGFzdFBhZ2U6IG51bWJlcjtcclxuICBwZXJQYWdlOiBudW1iZXI7XHJcblxyXG5cclxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIEBJbnB1dCgpIGVsZW1lbnRJZDogc3RyaW5nID0gYGRhdGEtdGFibGUtJHtEYXRhVGFibGVDb21wb25lbnQubmV4dElkKyt9YDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgLyoqTGlmZSBjeWNsZSBob29rIG1ldGhvZCAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIC8vIEFzc2lnbiB0aGUgZGF0YSB0byB0aGUgZGF0YSBzb3VyY2UgZm9yIHRoZSB0YWJsZSB0byByZW5kZXJcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcclxuXHJcbiAgICAvLyBFbWl0IGNoYW5nZSBpbiBzZWxlY3Rpb25cclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5jaGFuZ2VkLnBpcGUoKS5zdWJzY3JpYmUoKGNoYW5nZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGN0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydCkge1xyXG4gICAgICB0aGlzLnNvcnQuc29ydENoYW5nZS5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgZWxlbWVudHMgbWF0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3MuICovXHJcbiAgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xyXG4gICAgY29uc3QgbnVtUm93cyA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aDtcclxuICAgIHJldHVybiBudW1TZWxlY3RlZCA9PT0gbnVtUm93cztcclxuICB9XHJcblxyXG4gIC8qKiBTZWxlY3RzIGFsbCByb3dzIGlmIHRoZXkgYXJlIG5vdCBhbGwgc2VsZWN0ZWQ7IG90aGVyd2lzZSBjbGVhciBzZWxlY3Rpb24uICovXHJcbiAgbWFzdGVyVG9nZ2xlKCkge1xyXG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkKClcclxuICAgICAgPyB0aGlzLmNsZWFyU2VsZWN0aW9uKClcclxuICAgICAgOiB0aGlzLmRhdGFTb3VyY2UuZGF0YS5mb3JFYWNoKHJvdyA9PiB0aGlzLnNlbGVjdGlvbi5zZWxlY3Qocm93KSk7XHJcbiAgfVxyXG5cclxuICAvKipjbGVhciBzZWxlY3Rpb24qL1xyXG4gIGNsZWFyU2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgIHRoaXMuc2VsY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb25maWcoY2hhbmdlcyk7XHJcbiAgICBpZiAoY2hhbmdlcy5kYXRhICYmICFjaGFuZ2VzLmRhdGEuaXNGaXJzdENoYW5nZSgpICYmIHRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAvLyBJZiBub3QgZmlyc3QgY2hhbmdlXHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gY2hhbmdlcy5kYXRhLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVDb25maWcoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMuY29uZmlnICYmICFjaGFuZ2VzLmNvbmZpZy5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuICAgICAgdGhpcy5jb25maWcgPSBjaGFuZ2VzLmNvbmZpZy5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBhZ2UgPSB0aGlzLmNvbmZpZy5wYWdlIHx8IDE7XHJcbiAgICB0aGlzLmxhc3RQYWdlID0gdGhpcy5jb25maWcubGFzdFBhZ2UgfHwgdGhpcy5wYWdlO1xyXG4gICAgdGhpcy5wZXJQYWdlID0gdGhpcy5jb25maWcucGVyUGFnZSB8fCAyMDtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMubGFzdFBhZ2UpIHtcclxuICAgICAgdGhpcy5wYWdlICs9IDE7XHJcbiAgICAgIHRoaXMudGFibGVTY3JvbGwuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgbGFzdFBhZ2U6IHRoaXMubGFzdFBhZ2UsIHBlclBhZ2U6IHRoaXMucGVyUGFnZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gZWRpdCBhY3Rpb24gaWNvbiBpcyBjbGlja2VzICovXHJcbiAgZWRpdENsaWNrZWQoZXZlbnQ6IGFueSwgZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgYWN0aW9uOiBcImVkaXRcIiwgdmFsdWU6IGVsZW1lbnQgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gdmlldyBhY3Rpb24gaWNvbiBpcyBjbGlja2VzICovXHJcbiAgdmlld0NsaWNrZWQoZXZlbnQ6IGFueSwgZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgYWN0aW9uOiBcInZpZXdcIiwgdmFsdWU6IGVsZW1lbnQgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gZWRpdCBhY3Rpb24gaWNvbiBpcyBjbGlja2VzICovXHJcbiAgZGVhY3RpdmF0ZUNsaWNrZWQoZXZlbnQ6IGFueSwgZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgYWN0aW9uOiBcImRlYWN0aXZhdGVcIiwgdmFsdWU6IGVsZW1lbnQgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gZG93bmxvYWQgYWN0aW9uIGljb24gaXMgY2xpY2tlcyAqL1xyXG4gIGRvd25sb2FkQ2xpY2tlZChldmVudDogYW55LCBlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBhY3Rpb246IFwiZG93bmxvYWRcIiwgdmFsdWU6IGVsZW1lbnQgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gcHJpbnQgYWN0aW9uIGljb24gaXMgY2xpY2tlcyAqL1xyXG4gIHByaW50Q2xpY2tlZChldmVudDogYW55LCBlbGVtZW50OiBhbnkpIHtcclxuXHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgYWN0aW9uOiAncHJpbnQnLCB2YWx1ZTogZWxlbWVudCB9KTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICB9XHJcblxyXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gYSByb3cgaXMgY2xpY2tlZCAqL1xyXG4gIHJvd0NsaWNrZWQoZXZlbnQ6IGFueSwgZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQoZWxlbWVudCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gbWVudSBhY3Rpb24gaWNvbiBpcyBob3ZlcmVkICovXHJcbiAgYWN0aW9uTWVudUNsaWNrKGV2ZW50OiBhbnksIGVsZW1lbnQ6IGFueSwgbWVudVZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBhY3Rpb246IG1lbnVWYWx1ZSwgdmFsdWU6IGVsZW1lbnQgfSk7XHJcbiAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKk1ldGhvZCBpbnZva2VzIHdoZW4gbWVudSBhY3Rpb24gaWNvbiBpcyBob3ZlcmVkIGFuZCBzZWxlY3RzIGZvciBwYXJ0aWN1bGFyIGFjdGlvbiovXHJcbiAgYWN0aW9uTWVudVRyaWdnZXJDbGljayhldmVudDogYW55LCB0cmlnZ2VyOiBNYXRNZW51VHJpZ2dlcikge1xyXG4gICAgdGhpcy50cmlnZ2VyID0gdHJpZ2dlcjtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tFZGl0KGVsZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5jb25maWcuZWRpdERpc2FibGVGdW5jdGlvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWcuZWRpdERpc2FibGVGdW5jdGlvbihlbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tWaWV3KGVsZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5jb25maWcudmlld0Rpc2FibGVGdW5jdGlvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWcudmlld0Rpc2FibGVGdW5jdGlvbihlbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tQcmludChlbGU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLnByaW50RGlzYWJsZUZ1bmN0aW9uKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5wcmludERpc2FibGVGdW5jdGlvbihlbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tBY3Rpb25zKGVsZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5jb25maWcuYWN0aW9uc01lbnVGdW5jdGlvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWcuYWN0aW9uc01lbnVGdW5jdGlvbihlbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tBY3Rpb25CdXR0b24oZWxlOiBhbnksIHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5hY3Rpb25zTWVudUJ1dHRvbkZ1bmN0aW9uKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5hY3Rpb25zTWVudUJ1dHRvbkZ1bmN0aW9uKGVsZSwgdmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZShlbGU6IGFueSwga2V5U3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGtleVN0cmluZyA9IGtleVN0cmluZy5yZXBsYWNlKC9cXFsoXFx3KylcXF0vZywgXCIuJDFcIik7IC8vIGNvbnZlcnQgaW5kZXhlcyB0byBwcm9wZXJ0aWVzXHJcbiAgICBrZXlTdHJpbmcgPSBrZXlTdHJpbmcucmVwbGFjZSgvXlxcLi8sIFwiXCIpOyAvLyBzdHJpcCBhIGxlYWRpbmcgZG90XHJcbiAgICBjb25zdCBrZXlMaXN0ID0ga2V5U3RyaW5nLnNwbGl0KFwiLlwiKTtcclxuICAgIGZvciAobGV0IGkgPSAwLCBuID0ga2V5TGlzdC5sZW5ndGg7IGkgPCBuOyArK2kpIHtcclxuICAgICAgY29uc3Qga2V5ID0ga2V5TGlzdFtpXTtcclxuICAgICAgaWYgKGVsZSAmJiBrZXkgaW4gZWxlKSB7XHJcbiAgICAgICAgZWxlID0gZWxlW2tleV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZWxlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvL1VudGlsIERlc3Ryb3kgdXNlcyBpdC5cclxuICB9XHJcbn1cclxuIl19
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==
@@ -1,11 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZGF0YS10YWJsZS9kYXRhLXRhYmxlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxTQUFTO0NBbUJyQjtBQUVELE1BQU0sWUFBWTtDQU9qQjtBQUVELE1BQU0sWUFBWTtDQU9qQjtBQUVELE1BQU0sV0FBVztDQUdoQjtBQUVELE1BQU0sT0FBTyxTQUFTO0NBSXJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERhdGFUYWJsZSB7XHJcbiAgICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICAgIGNvbHVtbnNDb25maWc6IENvbHVtbkNvbmZpZ1tdO1xyXG4gICAgYWN0aW9uc0NvbmZpZz86IEFjdGlvbkNvbmZpZztcclxuICAgIGVuYWJsZVJvd0NsaWNrPzogYm9vbGVhbjtcclxuICAgIGRpc2FibGVFbGV2YXRpb24/OiBib29sZWFuO1xyXG4gICAgZG93bmxvYWRMaW5rPzogc3RyaW5nO1xyXG4gICAgYWN0aW9uc01lbnVGdW5jdGlvbj86IGFueTtcclxuICAgIGFjdGlvbnNNZW51QnV0dG9uRnVuY3Rpb24/OiBhbnk7XHJcbiAgICBlZGl0RGlzYWJsZUZ1bmN0aW9uPzogYW55O1xyXG4gICAgdmlld0Rpc2FibGVGdW5jdGlvbj86IGFueTtcclxuICAgIHByaW50RGlzYWJsZUZ1bmN0aW9uPzogYW55O1xyXG4gICAgY3VzdG9tQWN0aW9uTGFiZWw/OiBzdHJpbmc7XHJcbiAgICBzdGlja3lIZWFkZXI/OiBib29sZWFuO1xyXG4gICAgcGFnZT86IG51bWJlcjtcclxuICAgIGxhc3RQYWdlPzogbnVtYmVyO1xyXG4gICAgcGVyUGFnZT86IG51bWJlcjtcclxuICAgIHBhZ2VTaXplT3B0aW9ucz86IG51bWJlcltdO1xyXG4gICAgc3R5bGU/OiBhbnk7XHJcbn1cclxuXHJcbmNsYXNzIENvbHVtbkNvbmZpZyB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgdmFsdWU6IHN0cmluZztcclxuICAgIHNvcnQ/OiBib29sZWFuO1xyXG4gICAgZGF0ZUZpZWxkPzogYm9vbGVhbjtcclxuICAgIGN1cnJlbmN5RmllbGQ/OiBib29sZWFuO1xyXG4gICAgZm9ybWF0Pzogc3RyaW5nO1xyXG59XHJcblxyXG5jbGFzcyBBY3Rpb25Db25maWcge1xyXG4gICAgZWRpdD86IGJvb2xlYW47XHJcbiAgICB2aWV3PzogYm9vbGVhbjtcclxuICAgIGRvd25sb2FkPzogYm9vbGVhbjtcclxuICAgIHByaW50PzogYm9vbGVhbjtcclxuICAgIGRlYWN0aXZhdGU/OiBib29sZWFuO1xyXG4gICAgYWN0aW9uc01lbnU/OiBBY3Rpb25zTWVudVtdO1xyXG59XHJcblxyXG5jbGFzcyBBY3Rpb25zTWVudSB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGFnZUV2ZW50IHtcclxuICAgIHBhZ2U6IG51bWJlcjtcclxuICAgIGxhc3RQYWdlPzogbnVtYmVyO1xyXG4gICAgcGVyUGFnZTogbnVtYmVyO1xyXG59XHJcbiJdfQ==
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=
@@ -1,25 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBaUJwRCxNQUFNLE9BQU8sZUFBZTs7O1lBZDNCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLG9CQUFvQjtvQkFDcEIsY0FBYztpQkFDZjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asa0JBQWtCO2lCQUNuQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSBcIm5neC1pbmZpbml0ZS1zY3JvbGxcIjtcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBEYXRhVGFibGVDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVNb2R1bGUgeyB9XHJcbiJdfQ==
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
@@ -1,3 +1,3 @@
1
- export * from './data-table.component';
2
- export * from './data-table.model';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGEtdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS10YWJsZS5tb2RlbCc7Il19
1
+ export * from './data-table.component';
2
+ export * from './data-table.model';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGEtdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdGFibGUubW9kZWwnOyJdfQ==
@@ -1,10 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGUtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxhQUFhO0lBQ3pCLE9BQU8sQ0FBQyxPQUFvQixFQUEwQixFQUFFO1FBRXBELE1BQU0sR0FBRyxHQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUU7WUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNoQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIERhdGVWYWxpZGF0b3IoKTogYW55IHtcclxuICAgIHJldHVybiAoY29udHJvbDogRm9ybUNvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuXHJcbiAgICAgICAgY29uc3QgdmFsOiBhbnkgPSBuZXcgRGF0ZShjb250cm9sLnZhbHVlKTtcclxuICAgICAgICBpZiAoISFjb250cm9sLnZhbHVlICYmIHZhbCA9PSAnSW52YWxpZCBEYXRlJykge1xyXG4gICAgICAgICAgICByZXR1cm4geyBpbnZhbGlkRGF0ZTogdHJ1ZSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbn0iXX0=
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==