tin-spa 2.13.15 → 9.1.0

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 (375) hide show
  1. package/README.md +2 -2
  2. package/bundles/tin-spa.umd.js +6694 -0
  3. package/bundles/tin-spa.umd.js.map +1 -0
  4. package/bundles/tin-spa.umd.min.js +16 -0
  5. package/bundles/tin-spa.umd.min.js.map +1 -0
  6. package/esm2015/lib/classes/Classes.js +254 -0
  7. package/esm2015/lib/classes/TinCore.js +137 -0
  8. package/esm2015/lib/components/activity/activity.component.js +92 -0
  9. package/esm2015/lib/components/attach/attach.component.js +181 -0
  10. package/esm2015/lib/components/change-password/change-password.component.js +179 -0
  11. package/esm2015/lib/components/check/check.component.js +69 -0
  12. package/esm2015/lib/components/chips/chips.component.js +107 -0
  13. package/esm2015/lib/components/create-account/create-account.component.js +160 -0
  14. package/esm2015/lib/components/date/date.component.js +66 -0
  15. package/esm2015/lib/components/datetime/datetime.component.js +57 -0
  16. package/esm2015/lib/components/filter/filter.component.js +64 -0
  17. package/esm2015/lib/components/html/html.component.js +102 -0
  18. package/esm2015/lib/components/label/label.component.js +117 -0
  19. package/esm2015/lib/components/loader/loader.component.js +53 -0
  20. package/esm2015/lib/components/login/login.component.js +240 -0
  21. package/esm2015/lib/components/logs/logs.component.js +195 -0
  22. package/esm2015/lib/components/message/messageDialog.component.js +142 -0
  23. package/esm2015/lib/components/money/currency-input-mask.directive.js +187 -0
  24. package/esm2015/lib/components/money/currency-input-mask.module.js +30 -0
  25. package/esm2015/lib/components/money/money.component.js +152 -0
  26. package/esm2015/lib/components/nav-menu/nav-menu.component.js +204 -0
  27. package/esm2015/lib/components/option/option.component.js +129 -0
  28. package/esm2015/lib/components/profile/profile.component.js +198 -0
  29. package/esm2015/lib/components/recover-account/recover-account.component.js +74 -0
  30. package/esm2015/lib/components/roles/addRoleDialog.component.js +132 -0
  31. package/esm2015/lib/components/roles/roles.component.js +211 -0
  32. package/esm2015/lib/components/select/select.component.js +133 -0
  33. package/esm2015/lib/components/settings/settings.component.js +118 -0
  34. package/esm2015/lib/components/signup/signup.component.js +139 -0
  35. package/esm2015/lib/components/steps/steps.component.js +114 -0
  36. package/esm2015/lib/components/table/table.component.js +375 -0
  37. package/esm2015/lib/components/text/text.component.js +240 -0
  38. package/esm2015/lib/components/tiles/tiles.component.js +95 -0
  39. package/esm2015/lib/components/timeout/timeout.component.js +133 -0
  40. package/esm2015/lib/components/tin-spa.component.js +26 -0
  41. package/esm2015/lib/components/users/users.component.js +373 -0
  42. package/esm2015/lib/components/viewer/viewer.component.js +92 -0
  43. package/esm2015/lib/components/viewer/viewerDialog.component.js +131 -0
  44. package/esm2015/lib/dnd.directive.js +56 -0
  45. package/esm2015/lib/modules/spa-admin.module.js +81 -0
  46. package/esm2015/lib/modules/spa-index.module.js +58 -0
  47. package/esm2015/lib/modules/spa-mat.module.js +68 -0
  48. package/esm2015/lib/modules/spa-user.module.js +55 -0
  49. package/esm2015/lib/services/auth.service.js +142 -0
  50. package/esm2015/lib/services/data.service.js +111 -0
  51. package/esm2015/lib/services/export.service.js +29 -0
  52. package/esm2015/lib/services/http.service.js +79 -0
  53. package/esm2015/lib/services/loader-interceptor.service.js +77 -0
  54. package/esm2015/lib/services/loader.service.js +17 -0
  55. package/esm2015/lib/services/log.service.js +76 -0
  56. package/esm2015/lib/services/message.service.js +52 -0
  57. package/esm2015/lib/services/storage.service.js +43 -0
  58. package/esm2015/lib/services/tin-spa.service.js +14 -0
  59. package/esm2015/lib/tin-spa.module.js +156 -0
  60. package/esm2015/public-api.js +56 -0
  61. package/esm2015/tin-spa.js +5 -0
  62. package/esm5/lib/classes/Classes.js +313 -0
  63. package/esm5/lib/classes/TinCore.js +164 -0
  64. package/esm5/lib/components/activity/activity.component.js +94 -0
  65. package/esm5/lib/components/attach/attach.component.js +195 -0
  66. package/esm5/lib/components/change-password/change-password.component.js +182 -0
  67. package/esm5/lib/components/check/check.component.js +71 -0
  68. package/esm5/lib/components/chips/chips.component.js +110 -0
  69. package/esm5/lib/components/create-account/create-account.component.js +163 -0
  70. package/esm5/lib/components/date/date.component.js +68 -0
  71. package/esm5/lib/components/datetime/datetime.component.js +59 -0
  72. package/esm5/lib/components/filter/filter.component.js +66 -0
  73. package/esm5/lib/components/html/html.component.js +104 -0
  74. package/esm5/lib/components/label/label.component.js +119 -0
  75. package/esm5/lib/components/loader/loader.component.js +56 -0
  76. package/esm5/lib/components/login/login.component.js +244 -0
  77. package/esm5/lib/components/logs/logs.component.js +198 -0
  78. package/esm5/lib/components/message/messageDialog.component.js +144 -0
  79. package/esm5/lib/components/money/currency-input-mask.directive.js +193 -0
  80. package/esm5/lib/components/money/currency-input-mask.module.js +34 -0
  81. package/esm5/lib/components/money/money.component.js +154 -0
  82. package/esm5/lib/components/nav-menu/nav-menu.component.js +207 -0
  83. package/esm5/lib/components/option/option.component.js +131 -0
  84. package/esm5/lib/components/profile/profile.component.js +203 -0
  85. package/esm5/lib/components/recover-account/recover-account.component.js +77 -0
  86. package/esm5/lib/components/roles/addRoleDialog.component.js +135 -0
  87. package/esm5/lib/components/roles/roles.component.js +218 -0
  88. package/esm5/lib/components/select/select.component.js +136 -0
  89. package/esm5/lib/components/settings/settings.component.js +122 -0
  90. package/esm5/lib/components/signup/signup.component.js +142 -0
  91. package/esm5/lib/components/steps/steps.component.js +128 -0
  92. package/esm5/lib/components/table/table.component.js +378 -0
  93. package/esm5/lib/components/text/text.component.js +244 -0
  94. package/esm5/lib/components/tiles/tiles.component.js +97 -0
  95. package/esm5/lib/components/timeout/timeout.component.js +136 -0
  96. package/esm5/lib/components/tin-spa.component.js +25 -0
  97. package/esm5/lib/components/users/users.component.js +380 -0
  98. package/esm5/lib/components/viewer/viewer.component.js +94 -0
  99. package/esm5/lib/components/viewer/viewerDialog.component.js +133 -0
  100. package/esm5/lib/dnd.directive.js +58 -0
  101. package/esm5/lib/modules/spa-admin.module.js +85 -0
  102. package/esm5/lib/modules/spa-index.module.js +62 -0
  103. package/esm5/lib/modules/spa-mat.module.js +72 -0
  104. package/esm5/lib/modules/spa-user.module.js +59 -0
  105. package/esm5/lib/services/auth.service.js +145 -0
  106. package/esm5/lib/services/data.service.js +113 -0
  107. package/esm5/lib/services/export.service.js +31 -0
  108. package/esm5/lib/services/http.service.js +81 -0
  109. package/esm5/lib/services/loader-interceptor.service.js +80 -0
  110. package/esm5/lib/services/loader.service.js +19 -0
  111. package/esm5/lib/services/log.service.js +114 -0
  112. package/esm5/lib/services/message.service.js +54 -0
  113. package/esm5/lib/services/storage.service.js +76 -0
  114. package/esm5/lib/services/tin-spa.service.js +17 -0
  115. package/esm5/lib/tin-spa.module.js +160 -0
  116. package/esm5/public-api.js +56 -0
  117. package/esm5/tin-spa.js +5 -0
  118. package/fesm2015/tin-spa.js +6204 -0
  119. package/fesm2015/tin-spa.js.map +1 -0
  120. package/fesm5/tin-spa.js +6453 -0
  121. package/fesm5/tin-spa.js.map +1 -0
  122. package/lib/classes/Classes.d.ts +228 -375
  123. package/lib/classes/TinCore.d.ts +11 -43
  124. package/lib/components/activity/activity.component.d.ts +2 -2
  125. package/lib/components/attach/attach.component.d.ts +27 -15
  126. package/lib/{pages → components}/change-password/change-password.component.d.ts +4 -4
  127. package/lib/components/check/check.component.d.ts +3 -8
  128. package/lib/components/chips/chips.component.d.ts +2 -2
  129. package/lib/{pages → components}/create-account/create-account.component.d.ts +4 -8
  130. package/lib/components/date/date.component.d.ts +12 -24
  131. package/lib/components/datetime/datetime.component.d.ts +2 -6
  132. package/lib/components/filter/filter.component.d.ts +2 -7
  133. package/lib/components/html/html.component.d.ts +10 -11
  134. package/lib/components/label/label.component.d.ts +2 -4
  135. package/lib/components/loader/loader.component.d.ts +2 -2
  136. package/lib/components/login/login.component.d.ts +32 -0
  137. package/lib/components/logs/logs.component.d.ts +18 -0
  138. package/lib/components/message/messageDialog.component.d.ts +2 -2
  139. package/lib/components/money/currency-input-mask.directive.d.ts +2 -2
  140. package/lib/components/money/currency-input-mask.module.d.ts +2 -3
  141. package/lib/components/money/money.component.d.ts +3 -13
  142. package/lib/components/nav-menu/nav-menu.component.d.ts +4 -22
  143. package/lib/components/option/option.component.d.ts +3 -14
  144. package/lib/{pages → components}/profile/profile.component.d.ts +4 -6
  145. package/lib/{pages → components}/recover-account/recover-account.component.d.ts +3 -3
  146. package/lib/components/roles/addRoleDialog.component.d.ts +22 -0
  147. package/lib/components/roles/roles.component.d.ts +30 -0
  148. package/lib/components/select/select.component.d.ts +20 -20
  149. package/lib/{pages → components}/settings/settings.component.d.ts +3 -3
  150. package/lib/{pages → components}/signup/signup.component.d.ts +4 -4
  151. package/lib/components/steps/steps.component.d.ts +10 -19
  152. package/lib/components/table/table.component.d.ts +21 -84
  153. package/lib/components/text/text.component.d.ts +14 -36
  154. package/lib/components/tiles/tiles.component.d.ts +7 -21
  155. package/lib/components/timeout/timeout.component.d.ts +24 -0
  156. package/lib/components/tin-spa.component.d.ts +6 -3
  157. package/lib/{pages → components}/users/users.component.d.ts +18 -11
  158. package/lib/components/viewer/viewer.component.d.ts +5 -11
  159. package/lib/components/viewer/viewerDialog.component.d.ts +4 -6
  160. package/lib/dnd.directive.d.ts +11 -0
  161. package/lib/modules/spa-admin.module.d.ts +10 -10
  162. package/lib/modules/spa-index.module.d.ts +7 -8
  163. package/lib/modules/spa-mat.module.d.ts +2 -8
  164. package/lib/modules/spa-user.module.d.ts +6 -6
  165. package/lib/services/auth.service.d.ts +4 -16
  166. package/lib/services/data.service.d.ts +38 -0
  167. package/lib/services/export.service.d.ts +6 -2
  168. package/lib/services/http.service.d.ts +2 -2
  169. package/lib/services/loader-interceptor.service.d.ts +3 -4
  170. package/lib/services/loader.service.d.ts +2 -2
  171. package/lib/services/log.service.d.ts +3 -3
  172. package/lib/services/message.service.d.ts +3 -4
  173. package/lib/services/storage.service.d.ts +2 -2
  174. package/lib/services/tin-spa.service.d.ts +2 -2
  175. package/lib/tin-spa.module.d.ts +34 -83
  176. package/package.json +16 -24
  177. package/public-api.d.ts +16 -47
  178. package/esm2020/lib/classes/Classes.mjs +0 -112
  179. package/esm2020/lib/classes/LibClasses.mjs +0 -180
  180. package/esm2020/lib/classes/TinCore.mjs +0 -568
  181. package/esm2020/lib/components/activity/activity.component.mjs +0 -24
  182. package/esm2020/lib/components/alert/alert.component.mjs +0 -43
  183. package/esm2020/lib/components/attach/attach.component.mjs +0 -102
  184. package/esm2020/lib/components/capsules/capsules.component.mjs +0 -63
  185. package/esm2020/lib/components/cards/cards.component.mjs +0 -103
  186. package/esm2020/lib/components/check/check.component.mjs +0 -67
  187. package/esm2020/lib/components/chips/chips.component.mjs +0 -58
  188. package/esm2020/lib/components/date/date.component.mjs +0 -103
  189. package/esm2020/lib/components/datetime/datetime.component.mjs +0 -55
  190. package/esm2020/lib/components/email/email.component.mjs +0 -133
  191. package/esm2020/lib/components/filter/filter.component.mjs +0 -58
  192. package/esm2020/lib/components/form/form.component.mjs +0 -296
  193. package/esm2020/lib/components/html/html.component.mjs +0 -34
  194. package/esm2020/lib/components/label/label.component.mjs +0 -31
  195. package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +0 -68
  196. package/esm2020/lib/components/loader/loader.component.mjs +0 -25
  197. package/esm2020/lib/components/message/messageDialog.component.mjs +0 -33
  198. package/esm2020/lib/components/money/currency-input-mask.directive.mjs +0 -185
  199. package/esm2020/lib/components/money/currency-input-mask.module.mjs +0 -28
  200. package/esm2020/lib/components/money/money.component.mjs +0 -137
  201. package/esm2020/lib/components/multi-select/multi-select.component.mjs +0 -165
  202. package/esm2020/lib/components/multi-text/multi-text.component.mjs +0 -208
  203. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +0 -88
  204. package/esm2020/lib/components/notes/notes.component.mjs +0 -62
  205. package/esm2020/lib/components/number/number.component.mjs +0 -131
  206. package/esm2020/lib/components/option/option.component.mjs +0 -92
  207. package/esm2020/lib/components/page/page.component.mjs +0 -101
  208. package/esm2020/lib/components/search/search.component.mjs +0 -36
  209. package/esm2020/lib/components/select/select.component.mjs +0 -75
  210. package/esm2020/lib/components/select-bitwise/select-bitwise.component.mjs +0 -87
  211. package/esm2020/lib/components/select-common/select-common.component.mjs +0 -206
  212. package/esm2020/lib/components/select-internal/select-internal.component.mjs +0 -75
  213. package/esm2020/lib/components/select-lite/select-lite.component.mjs +0 -18
  214. package/esm2020/lib/components/statuses/statuses.component.mjs +0 -44
  215. package/esm2020/lib/components/steps/steps.component.mjs +0 -112
  216. package/esm2020/lib/components/suffix/suffix.component.mjs +0 -70
  217. package/esm2020/lib/components/table/detailsDialog.component.mjs +0 -406
  218. package/esm2020/lib/components/table/table.component.mjs +0 -440
  219. package/esm2020/lib/components/table-action/table-action.component.mjs +0 -80
  220. package/esm2020/lib/components/table-header/table-header.component.mjs +0 -148
  221. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +0 -406
  222. package/esm2020/lib/components/table-internal/table-internal.component.mjs +0 -441
  223. package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +0 -404
  224. package/esm2020/lib/components/table-lite/table-lite.component.mjs +0 -441
  225. package/esm2020/lib/components/table-row/table-row.component.mjs +0 -93
  226. package/esm2020/lib/components/tabs/tabs.component.mjs +0 -74
  227. package/esm2020/lib/components/text/text.component.mjs +0 -255
  228. package/esm2020/lib/components/tiles/tiles.component.mjs +0 -99
  229. package/esm2020/lib/components/tin-spa.component.mjs +0 -19
  230. package/esm2020/lib/components/viewer/viewer.component.mjs +0 -83
  231. package/esm2020/lib/components/viewer/viewerDialog.component.mjs +0 -95
  232. package/esm2020/lib/modules/admin/admin-routing.module.mjs +0 -71
  233. package/esm2020/lib/modules/admin/admin.module.mjs +0 -26
  234. package/esm2020/lib/modules/index/index-routing.module.mjs +0 -27
  235. package/esm2020/lib/modules/index/index.module.mjs +0 -26
  236. package/esm2020/lib/modules/spa-admin.module.mjs +0 -71
  237. package/esm2020/lib/modules/spa-index.module.mjs +0 -54
  238. package/esm2020/lib/modules/spa-mat.module.mjs +0 -84
  239. package/esm2020/lib/modules/spa-user.module.mjs +0 -47
  240. package/esm2020/lib/modules/user/user-routing.module.mjs +0 -23
  241. package/esm2020/lib/modules/user/user.module.mjs +0 -26
  242. package/esm2020/lib/pages/accounts/accountDialog.component.mjs +0 -56
  243. package/esm2020/lib/pages/accounts/accounts.component.mjs +0 -70
  244. package/esm2020/lib/pages/app-models/app-models.component.mjs +0 -56
  245. package/esm2020/lib/pages/approvals/approvals.component.mjs +0 -19
  246. package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +0 -165
  247. package/esm2020/lib/pages/bug/bug.component.mjs +0 -14
  248. package/esm2020/lib/pages/change-password/change-password.component.mjs +0 -92
  249. package/esm2020/lib/pages/create-account/create-account.component.mjs +0 -110
  250. package/esm2020/lib/pages/customers/customers.component.mjs +0 -21
  251. package/esm2020/lib/pages/departments/departments.component.mjs +0 -22
  252. package/esm2020/lib/pages/employees/employees.component.mjs +0 -20
  253. package/esm2020/lib/pages/grades/grades.component.mjs +0 -14
  254. package/esm2020/lib/pages/inventory/inventory.component.mjs +0 -99
  255. package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +0 -53
  256. package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +0 -71
  257. package/esm2020/lib/pages/login/login.component.mjs +0 -166
  258. package/esm2020/lib/pages/logs/logs.component.mjs +0 -42
  259. package/esm2020/lib/pages/membership/membership.component.mjs +0 -44
  260. package/esm2020/lib/pages/notifications/notifications.component.mjs +0 -90
  261. package/esm2020/lib/pages/notifications-config/notifications-config.component.mjs +0 -113
  262. package/esm2020/lib/pages/plans/plans.component.mjs +0 -44
  263. package/esm2020/lib/pages/positions/positions.component.mjs +0 -21
  264. package/esm2020/lib/pages/profile/profile.component.mjs +0 -94
  265. package/esm2020/lib/pages/recover-account/recover-account.component.mjs +0 -46
  266. package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +0 -60
  267. package/esm2020/lib/pages/roles/roles.component.mjs +0 -151
  268. package/esm2020/lib/pages/settings/settings.component.mjs +0 -54
  269. package/esm2020/lib/pages/signup/signup.component.mjs +0 -50
  270. package/esm2020/lib/pages/suppliers/suppliers.component.mjs +0 -22
  271. package/esm2020/lib/pages/tasks/tasks.component.mjs +0 -86
  272. package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +0 -228
  273. package/esm2020/lib/pages/tenants/tenants.component.mjs +0 -47
  274. package/esm2020/lib/pages/transactions/transactDialog.component.mjs +0 -80
  275. package/esm2020/lib/pages/transactions/transactions.component.mjs +0 -101
  276. package/esm2020/lib/pages/users/users.component.mjs +0 -167
  277. package/esm2020/lib/pages/welcome/welcome.component.mjs +0 -86
  278. package/esm2020/lib/pipes/camelToWords.pipe.mjs +0 -17
  279. package/esm2020/lib/select-context.directive.mjs +0 -23
  280. package/esm2020/lib/services/auth.service.mjs +0 -175
  281. package/esm2020/lib/services/button.service.mjs +0 -162
  282. package/esm2020/lib/services/condition.service.mjs +0 -32
  283. package/esm2020/lib/services/csv.service.mjs +0 -49
  284. package/esm2020/lib/services/datalib.service.mjs +0 -860
  285. package/esm2020/lib/services/dialog.service.mjs +0 -125
  286. package/esm2020/lib/services/export.service.mjs +0 -16
  287. package/esm2020/lib/services/http.service.mjs +0 -79
  288. package/esm2020/lib/services/loader-interceptor.service.mjs +0 -86
  289. package/esm2020/lib/services/loader.service.mjs +0 -17
  290. package/esm2020/lib/services/log.service.mjs +0 -77
  291. package/esm2020/lib/services/message.service.mjs +0 -59
  292. package/esm2020/lib/services/notifications.service.mjs +0 -33
  293. package/esm2020/lib/services/storage.service.mjs +0 -34
  294. package/esm2020/lib/services/table-config.service.mjs +0 -78
  295. package/esm2020/lib/services/tin-spa.service.mjs +0 -14
  296. package/esm2020/lib/tin-spa.module.mjs +0 -225
  297. package/esm2020/public-api.mjs +0 -90
  298. package/esm2020/tin-spa.mjs +0 -5
  299. package/fesm2015/tin-spa.mjs +0 -11736
  300. package/fesm2015/tin-spa.mjs.map +0 -1
  301. package/fesm2020/tin-spa.mjs +0 -11738
  302. package/fesm2020/tin-spa.mjs.map +0 -1
  303. package/lib/classes/LibClasses.d.ts +0 -173
  304. package/lib/components/alert/alert.component.d.ts +0 -15
  305. package/lib/components/capsules/capsules.component.d.ts +0 -26
  306. package/lib/components/cards/cards.component.d.ts +0 -39
  307. package/lib/components/email/email.component.d.ts +0 -40
  308. package/lib/components/form/form.component.d.ts +0 -47
  309. package/lib/components/list-dialog/list-dialog.component.d.ts +0 -23
  310. package/lib/components/multi-select/multi-select.component.d.ts +0 -47
  311. package/lib/components/multi-text/multi-text.component.d.ts +0 -56
  312. package/lib/components/notes/notes.component.d.ts +0 -19
  313. package/lib/components/number/number.component.d.ts +0 -41
  314. package/lib/components/page/page.component.d.ts +0 -38
  315. package/lib/components/search/search.component.d.ts +0 -15
  316. package/lib/components/select-bitwise/select-bitwise.component.d.ts +0 -31
  317. package/lib/components/select-common/select-common.component.d.ts +0 -53
  318. package/lib/components/select-internal/select-internal.component.d.ts +0 -23
  319. package/lib/components/select-lite/select-lite.component.d.ts +0 -8
  320. package/lib/components/statuses/statuses.component.d.ts +0 -12
  321. package/lib/components/suffix/suffix.component.d.ts +0 -23
  322. package/lib/components/table/detailsDialog.component.d.ts +0 -86
  323. package/lib/components/table-action/table-action.component.d.ts +0 -25
  324. package/lib/components/table-header/table-header.component.d.ts +0 -46
  325. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +0 -86
  326. package/lib/components/table-internal/table-internal.component.d.ts +0 -91
  327. package/lib/components/table-lite/detailsDialog-lite.component.d.ts +0 -86
  328. package/lib/components/table-lite/table-lite.component.d.ts +0 -91
  329. package/lib/components/table-row/table-row.component.d.ts +0 -31
  330. package/lib/components/tabs/tabs.component.d.ts +0 -32
  331. package/lib/modules/admin/admin-routing.module.d.ts +0 -7
  332. package/lib/modules/admin/admin.module.d.ts +0 -9
  333. package/lib/modules/index/index-routing.module.d.ts +0 -7
  334. package/lib/modules/index/index.module.d.ts +0 -9
  335. package/lib/modules/user/user-routing.module.d.ts +0 -7
  336. package/lib/modules/user/user.module.d.ts +0 -9
  337. package/lib/pages/accounts/accountDialog.component.d.ts +0 -27
  338. package/lib/pages/accounts/accounts.component.d.ts +0 -25
  339. package/lib/pages/app-models/app-models.component.d.ts +0 -15
  340. package/lib/pages/approvals/approvals.component.d.ts +0 -10
  341. package/lib/pages/approvals-config/approvals-config.component.d.ts +0 -24
  342. package/lib/pages/bug/bug.component.d.ts +0 -8
  343. package/lib/pages/customers/customers.component.d.ts +0 -12
  344. package/lib/pages/departments/departments.component.d.ts +0 -14
  345. package/lib/pages/employees/employees.component.d.ts +0 -12
  346. package/lib/pages/grades/grades.component.d.ts +0 -8
  347. package/lib/pages/inventory/inventory.component.d.ts +0 -25
  348. package/lib/pages/inventory/quantityDialog.component.d.ts +0 -23
  349. package/lib/pages/invitations-table/invitations-table.component.d.ts +0 -19
  350. package/lib/pages/login/login.component.d.ts +0 -46
  351. package/lib/pages/logs/logs.component.d.ts +0 -14
  352. package/lib/pages/membership/membership.component.d.ts +0 -13
  353. package/lib/pages/notifications/notifications.component.d.ts +0 -16
  354. package/lib/pages/notifications-config/notifications-config.component.d.ts +0 -17
  355. package/lib/pages/plans/plans.component.d.ts +0 -13
  356. package/lib/pages/positions/positions.component.d.ts +0 -12
  357. package/lib/pages/roles/addRoleDialog.component.d.ts +0 -24
  358. package/lib/pages/roles/roles.component.d.ts +0 -42
  359. package/lib/pages/suppliers/suppliers.component.d.ts +0 -14
  360. package/lib/pages/tasks/tasks.component.d.ts +0 -27
  361. package/lib/pages/tenant-settings/tenant-settings.component.d.ts +0 -47
  362. package/lib/pages/tenants/tenants.component.d.ts +0 -17
  363. package/lib/pages/transactions/transactDialog.component.d.ts +0 -26
  364. package/lib/pages/transactions/transactions.component.d.ts +0 -31
  365. package/lib/pages/welcome/welcome.component.d.ts +0 -25
  366. package/lib/pipes/camelToWords.pipe.d.ts +0 -7
  367. package/lib/select-context.directive.d.ts +0 -10
  368. package/lib/services/button.service.d.ts +0 -30
  369. package/lib/services/condition.service.d.ts +0 -10
  370. package/lib/services/csv.service.d.ts +0 -10
  371. package/lib/services/datalib.service.d.ts +0 -125
  372. package/lib/services/dialog.service.d.ts +0 -20
  373. package/lib/services/notifications.service.d.ts +0 -12
  374. package/lib/services/table-config.service.d.ts +0 -17
  375. /package/{index.d.ts → tin-spa.d.ts} +0 -0
@@ -1,24 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/form-field";
5
- export class ActivityComponent {
6
- constructor() {
7
- this.notes = new Array();
8
- this.notesMessage = "Empty";
9
- this.title = "Notes";
10
- }
11
- ngOnInit() {
12
- }
13
- }
14
- ActivityComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActivityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- ActivityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ActivityComponent, selector: "spa-activity", inputs: { notes: "notes", title: "title" }, ngImport: i0, template: "\r\n <div class=\"tin-input-row mt-3\" *ngIf=\"title != ''\">\r\n <mat-label style=\"font-size: 20px; font-weight: 300\" > {{title}}</mat-label >\r\n </div>\r\n\r\n <ul *ngIf=\"notes && notes.length>0\" class=\"list-group list-group-flush\" style=\"max-height:350px; margin-left:5px\">\r\n\r\n <li *ngFor=\"let note of notes\" class=\"list-group-item list-group-item-action flex-column align-items-start\">\r\n <div class=\"d-flex w-100 justify-content-between\">\r\n <div class=\"mb-0\">{{note.createdByName}}</div>\r\n <!-- <small class=\"text-muted\">{{note.expr1}} ago</small> -->\r\n </div>\r\n\r\n <small>{{note.details}} (<em>{{note.createdDate | date: 'dd MMM yyyy HH:mm'}}</em>) </small>\r\n </li>\r\n\r\n\r\n </ul>\r\n\r\n <div *ngIf=\"notes && notes.length==0\" class=\"d-flex justify-content-center row align-items-center\" style=\"max-height:200px\">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActivityComponent, decorators: [{
17
- type: Component,
18
- args: [{ selector: 'spa-activity', template: "\r\n <div class=\"tin-input-row mt-3\" *ngIf=\"title != ''\">\r\n <mat-label style=\"font-size: 20px; font-weight: 300\" > {{title}}</mat-label >\r\n </div>\r\n\r\n <ul *ngIf=\"notes && notes.length>0\" class=\"list-group list-group-flush\" style=\"max-height:350px; margin-left:5px\">\r\n\r\n <li *ngFor=\"let note of notes\" class=\"list-group-item list-group-item-action flex-column align-items-start\">\r\n <div class=\"d-flex w-100 justify-content-between\">\r\n <div class=\"mb-0\">{{note.createdByName}}</div>\r\n <!-- <small class=\"text-muted\">{{note.expr1}} ago</small> -->\r\n </div>\r\n\r\n <small>{{note.details}} (<em>{{note.createdDate | date: 'dd MMM yyyy HH:mm'}}</em>) </small>\r\n </li>\r\n\r\n\r\n </ul>\r\n\r\n <div *ngIf=\"notes && notes.length==0\" class=\"d-flex justify-content-center row align-items-center\" style=\"max-height:200px\">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n </div>\r\n" }]
19
- }], ctorParameters: function () { return []; }, propDecorators: { notes: [{
20
- type: Input
21
- }], title: [{
22
- type: Input
23
- }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWN0aXZpdHkvYWN0aXZpdHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWN0aXZpdHkvYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekQsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QjtRQUtTLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzdCLGlCQUFZLEdBQVcsT0FBTyxDQUFDO1FBQ3RCLFVBQUssR0FBRyxPQUFPLENBQUE7SUFQUixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzs4R0FMVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixnR0NQOUIsb2dDQXdCQTsyRkRqQmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWM7MEVBV2YsS0FBSztzQkFBYixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtYWN0aXZpdHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpdml0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHkuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbm90ZXMgPSBuZXcgQXJyYXkoKTtcclxuICBub3Rlc01lc3NhZ2U6IHN0cmluZyA9IFwiRW1wdHlcIjtcclxuICBASW5wdXQoKSB0aXRsZSA9IFwiTm90ZXNcIlxyXG5cclxufVxyXG4iLCJcclxuICAgICAgPGRpdiBjbGFzcz1cInRpbi1pbnB1dC1yb3cgbXQtM1wiICpuZ0lmPVwidGl0bGUgIT0gJydcIj5cclxuICAgICAgICA8bWF0LWxhYmVsIHN0eWxlPVwiZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogMzAwXCIgPiAge3t0aXRsZX19PC9tYXQtbGFiZWwgPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDx1bCAqbmdJZj1cIm5vdGVzICYmIG5vdGVzLmxlbmd0aD4wXCIgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2hcIiBzdHlsZT1cIm1heC1oZWlnaHQ6MzUwcHg7IG1hcmdpbi1sZWZ0OjVweFwiPlxyXG5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG5vdGUgb2Ygbm90ZXNcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSAgbGlzdC1ncm91cC1pdGVtLWFjdGlvbiBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMFwiPnt7bm90ZS5jcmVhdGVkQnlOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+e3tub3RlLmV4cHIxfX0gYWdvPC9zbWFsbD4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8c21hbGw+e3tub3RlLmRldGFpbHN9fSAoPGVtPnt7bm90ZS5jcmVhdGVkRGF0ZSB8IGRhdGU6ICdkZCBNTU0geXl5eSBISDptbSd9fTwvZW0+KSA8L3NtYWxsPlxyXG4gICAgICAgIDwvbGk+XHJcblxyXG5cclxuICAgICAgPC91bD5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJub3RlcyAmJiBub3Rlcy5sZW5ndGg9PTBcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cIm1heC1oZWlnaHQ6MjAwcHhcIj5cclxuXHJcbiAgICAgICAgTm8ge3t0aXRsZS50b0xvd2VyQ2FzZSgpfX1cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4iXX0=
@@ -1,43 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- export class AlertComponent {
5
- constructor() { }
6
- ngOnInit() {
7
- }
8
- getAlertMessages(type = undefined) {
9
- return this.config?.messages
10
- .filter(x => this.testVisible(x))
11
- .filter(x => x.type === type) || [];
12
- }
13
- hasAlertMessages(type = undefined) {
14
- return this.config?.messages
15
- .filter(x => this.testVisible(x))
16
- .some(x => x.type === type) || false;
17
- }
18
- testVisible(msg) {
19
- if (msg.showCondition) {
20
- return msg.showCondition(this.data);
21
- }
22
- return msg.hiddenCondition ? !msg.hiddenCondition(this.data) : true;
23
- }
24
- getMessageContent(msg) {
25
- // If contentField is specified and data exists, use dynamic content
26
- if (msg.contentField && this.data && this.data[msg.contentField]) {
27
- return this.data[msg.contentField];
28
- }
29
- // Fall back to static content
30
- return msg.content || '';
31
- }
32
- }
33
- AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
- AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AlertComponent, selector: "spa-alert", inputs: { config: "config", data: "data" }, ngImport: i0, template: "<div *ngIf=\"hasAlertMessages()\" class=\"alert alert-secondary\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages(); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"hasAlertMessages('success')\" class=\"alert alert-success\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages('success'); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"hasAlertMessages('info')\" class=\"alert alert-info\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages('info'); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"hasAlertMessages('warn')\" class=\"alert alert-warning\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages('warn'); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"hasAlertMessages('critical')\" class=\"alert alert-danger\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages('critical'); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n</div>\r\n", styles: [".alert-compact{padding-top:7px;padding-bottom:7px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AlertComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'spa-alert', template: "<div *ngIf=\"hasAlertMessages()\" class=\"alert alert-secondary\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages(); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"hasAlertMessages('success')\" class=\"alert alert-success\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages('success'); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"hasAlertMessages('info')\" class=\"alert alert-info\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages('info'); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"hasAlertMessages('warn')\" class=\"alert alert-warning\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages('warn'); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"hasAlertMessages('critical')\" class=\"alert alert-danger\" [ngClass]=\"{'alert-compact': config.compact}\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\r\n <p *ngIf=\"config.subject\">{{config.subject}}</p>\r\n <ng-container *ngFor=\"let msg of getAlertMessages('critical'); let last = last\">\r\n <label *ngIf=\"testVisible(msg)\">{{getMessageContent(msg)}}</label>\r\n <br *ngIf=\"!last\">\r\n </ng-container>\r\n</div>\r\n", styles: [".alert-compact{padding-top:7px;padding-bottom:7px}\n"] }]
38
- }], ctorParameters: function () { return []; }, propDecorators: { config: [{
39
- type: Input
40
- }], data: [{
41
- type: Input
42
- }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQVF6RCxNQUFNLE9BQU8sY0FBYztJQUV6QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQU9ELGdCQUFnQixDQUFDLElBQUksR0FBRyxTQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRO2FBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQUksR0FBRyxTQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRO2FBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFpQjtRQUUzQixJQUFJLEdBQUcsQ0FBQyxhQUFhLEVBQUU7WUFDckIsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRXRFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFpQjtRQUNqQyxvRUFBb0U7UUFDcEUsSUFBSSxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDaEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNwQztRQUVELDhCQUE4QjtRQUM5QixPQUFPLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7OzJHQTFDVSxjQUFjOytGQUFkLGNBQWMsNkZDUjNCLHd3RUF3Q0E7MkZEaENhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVzswRUFZWixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFsZXJ0TWVzc2FnZSwgQWxlcnRDb25maWcgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtYWxlcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWxlcnQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZzogQWxlcnRDb25maWc7XHJcbiAgQElucHV0KCkgZGF0YTtcclxuXHJcblxyXG4gIGdldEFsZXJ0TWVzc2FnZXModHlwZSA9IHVuZGVmaW5lZCk6IEFsZXJ0TWVzc2FnZVtdIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZz8ubWVzc2FnZXNcclxuICAgICAgLmZpbHRlcih4ID0+IHRoaXMudGVzdFZpc2libGUoeCkpXHJcbiAgICAgIC5maWx0ZXIoeCA9PiB4LnR5cGUgPT09IHR5cGUpIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgaGFzQWxlcnRNZXNzYWdlcyh0eXBlID0gdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc/Lm1lc3NhZ2VzXHJcbiAgICAgIC5maWx0ZXIoeCA9PiB0aGlzLnRlc3RWaXNpYmxlKHgpKVxyXG4gICAgICAuc29tZSh4ID0+IHgudHlwZSA9PT0gdHlwZSkgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuICB0ZXN0VmlzaWJsZShtc2c6IEFsZXJ0TWVzc2FnZSk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmIChtc2cuc2hvd0NvbmRpdGlvbikge1xyXG4gICAgICByZXR1cm4gbXNnLnNob3dDb25kaXRpb24odGhpcy5kYXRhKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcmV0dXJuIG1zZy5oaWRkZW5Db25kaXRpb24gPyAhbXNnLmhpZGRlbkNvbmRpdGlvbih0aGlzLmRhdGEpIDogdHJ1ZTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRNZXNzYWdlQ29udGVudChtc2c6IEFsZXJ0TWVzc2FnZSk6IHN0cmluZyB7XHJcbiAgICAvLyBJZiBjb250ZW50RmllbGQgaXMgc3BlY2lmaWVkIGFuZCBkYXRhIGV4aXN0cywgdXNlIGR5bmFtaWMgY29udGVudFxyXG4gICAgaWYgKG1zZy5jb250ZW50RmllbGQgJiYgdGhpcy5kYXRhICYmIHRoaXMuZGF0YVttc2cuY29udGVudEZpZWxkXSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRhW21zZy5jb250ZW50RmllbGRdO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBGYWxsIGJhY2sgdG8gc3RhdGljIGNvbnRlbnRcclxuICAgIHJldHVybiBtc2cuY29udGVudCB8fCAnJztcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJoYXNBbGVydE1lc3NhZ2VzKClcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXNlY29uZGFyeVwiIFtuZ0NsYXNzXT1cInsnYWxlcnQtY29tcGFjdCc6IGNvbmZpZy5jb21wYWN0fVwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O21hcmdpbi1ib3R0b206IDVweDtcIiByb2xlPVwiYWxlcnRcIj5cclxuICA8cCAqbmdJZj1cImNvbmZpZy5zdWJqZWN0XCI+e3tjb25maWcuc3ViamVjdH19PC9wPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1zZyBvZiBnZXRBbGVydE1lc3NhZ2VzKCk7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwidGVzdFZpc2libGUobXNnKVwiPnt7Z2V0TWVzc2FnZUNvbnRlbnQobXNnKX19PC9sYWJlbD5cclxuICAgIDxiciAqbmdJZj1cIiFsYXN0XCI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cImhhc0FsZXJ0TWVzc2FnZXMoJ3N1Y2Nlc3MnKVwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtc3VjY2Vzc1wiIFtuZ0NsYXNzXT1cInsnYWxlcnQtY29tcGFjdCc6IGNvbmZpZy5jb21wYWN0fVwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O21hcmdpbi1ib3R0b206IDVweDtcIiByb2xlPVwiYWxlcnRcIj5cclxuICA8cCAqbmdJZj1cImNvbmZpZy5zdWJqZWN0XCI+e3tjb25maWcuc3ViamVjdH19PC9wPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1zZyBvZiBnZXRBbGVydE1lc3NhZ2VzKCdzdWNjZXNzJyk7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwidGVzdFZpc2libGUobXNnKVwiPnt7Z2V0TWVzc2FnZUNvbnRlbnQobXNnKX19PC9sYWJlbD5cclxuICAgIDxiciAqbmdJZj1cIiFsYXN0XCI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cImhhc0FsZXJ0TWVzc2FnZXMoJ2luZm8nKVwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiIFtuZ0NsYXNzXT1cInsnYWxlcnQtY29tcGFjdCc6IGNvbmZpZy5jb21wYWN0fVwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O21hcmdpbi1ib3R0b206IDVweDtcIiByb2xlPVwiYWxlcnRcIj5cclxuICA8cCAqbmdJZj1cImNvbmZpZy5zdWJqZWN0XCI+e3tjb25maWcuc3ViamVjdH19PC9wPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1zZyBvZiBnZXRBbGVydE1lc3NhZ2VzKCdpbmZvJyk7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwidGVzdFZpc2libGUobXNnKVwiPnt7Z2V0TWVzc2FnZUNvbnRlbnQobXNnKX19PC9sYWJlbD5cclxuICAgIDxiciAqbmdJZj1cIiFsYXN0XCI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJoYXNBbGVydE1lc3NhZ2VzKCd3YXJuJylcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIiBbbmdDbGFzc109XCJ7J2FsZXJ0LWNvbXBhY3QnOiBjb25maWcuY29tcGFjdH1cIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDttYXJnaW4tYm90dG9tOiA1cHg7XCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgPHAgKm5nSWY9XCJjb25maWcuc3ViamVjdFwiPnt7Y29uZmlnLnN1YmplY3R9fTwvcD5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtc2cgb2YgZ2V0QWxlcnRNZXNzYWdlcygnd2FybicpOyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgIDxsYWJlbCAqbmdJZj1cInRlc3RWaXNpYmxlKG1zZylcIj57e2dldE1lc3NhZ2VDb250ZW50KG1zZyl9fTwvbGFiZWw+XHJcbiAgICA8YnIgKm5nSWY9XCIhbGFzdFwiPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJoYXNBbGVydE1lc3NhZ2VzKCdjcml0aWNhbCcpXCIgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiBbbmdDbGFzc109XCJ7J2FsZXJ0LWNvbXBhY3QnOiBjb25maWcuY29tcGFjdH1cIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDttYXJnaW4tYm90dG9tOiA1cHg7XCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgPHAgKm5nSWY9XCJjb25maWcuc3ViamVjdFwiPnt7Y29uZmlnLnN1YmplY3R9fTwvcD5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtc2cgb2YgZ2V0QWxlcnRNZXNzYWdlcygnY3JpdGljYWwnKTsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICA8bGFiZWwgKm5nSWY9XCJ0ZXN0VmlzaWJsZShtc2cpXCI+e3tnZXRNZXNzYWdlQ29udGVudChtc2cpfX08L2xhYmVsPlxyXG4gICAgPGJyICpuZ0lmPVwiIWxhc3RcIj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,102 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import imageCompression from 'browser-image-compression';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../services/message.service";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/button";
7
- import * as i4 from "@angular/material/icon";
8
- import * as i5 from "@angular/material/tooltip";
9
- export class AttachComponent {
10
- constructor(messageService) {
11
- this.messageService = messageService;
12
- this.imageExtensions = ['.jpg', '.jpeg', '.png', '.gif'];
13
- this.message = "Drag and drop files here";
14
- this.files = [];
15
- this.filesChange = new EventEmitter();
16
- this.upload = new EventEmitter();
17
- this.enableUpload = false;
18
- }
19
- ngOnInit() {
20
- // this.fileOptions = {allowedExtensions: ['.jpg', '.jpeg', '.png', '.gif'], maxSizeMB: 1, compressImages: true};
21
- }
22
- onFileDropped($event) {
23
- this.prepareFilesList($event);
24
- }
25
- fileBrowseHandler(event) {
26
- let files = event.target.files;
27
- this.prepareFilesList(files);
28
- }
29
- deleteFile(index) {
30
- this.files.splice(index, 1);
31
- }
32
- async prepareFilesList(files) {
33
- for (const file of files) {
34
- const ext = this.getFileExtension(file.name);
35
- if (this.fileOptions?.allowedExtensions && !this.fileOptions.allowedExtensions.includes(ext.toLowerCase())) {
36
- this.messageService.toast(`File type ${ext} not allowed`);
37
- continue;
38
- }
39
- let processedFile = file;
40
- if (this.fileOptions?.compressImages && this.isImage(file.name)) {
41
- try {
42
- const options = {
43
- maxSizeMB: this.fileOptions.maxSizeMB || 1,
44
- maxWidthOrHeight: 1920,
45
- useWebWorker: true
46
- };
47
- processedFile = await imageCompression(file, options);
48
- }
49
- catch (error) {
50
- this.messageService.toast(`Error compressing image: ${file.name}`);
51
- continue;
52
- }
53
- }
54
- processedFile.progress = 0;
55
- this.files.push(processedFile);
56
- }
57
- this.filesChange.emit(this.files);
58
- }
59
- // Add new helper methods
60
- getFileExtension(filename) {
61
- return filename.substring(filename.lastIndexOf('.')).toLowerCase();
62
- }
63
- isImage(filename) {
64
- const ext = this.getFileExtension(filename);
65
- return this.imageExtensions.includes(ext.toLowerCase());
66
- }
67
- formatBytes(bytes, decimals) {
68
- if (bytes === 0) {
69
- return '0 Bytes';
70
- }
71
- const k = 1024;
72
- const dm = decimals <= 0 ? 0 : decimals || 2;
73
- const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
74
- const i = Math.floor(Math.log(bytes) / Math.log(k));
75
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
76
- }
77
- uploaded() {
78
- this.upload.emit();
79
- }
80
- filesChanged() {
81
- this.filesChange.emit(this.files);
82
- }
83
- }
84
- AttachComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AttachComponent, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
85
- AttachComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AttachComponent, selector: "spa-attach", inputs: { fileOptions: "fileOptions", message: "message", files: "files", enableUpload: "enableUpload" }, outputs: { filesChange: "filesChange", upload: "upload" }, ngImport: i0, template: "<div class=\"tin-input-row\" style=\"width: 100%;\">\r\n\r\n <div class=\"col\">\r\n <div class=\"container\" appDnd (fileDropped)=\"onFileDropped($event)\">\r\n <input type=\"file\" #fileDropRef id=\"fileDropRef\" multiple (change)=\"fileBrowseHandler($event)\" />\r\n <h4>{{message}}</h4>\r\n\r\n <label for=\"fileDropRef\">Click to Browse</label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <div class=\"files-list \">\r\n <div class=\"single-file \" style=\"width: 100%;\" *ngFor=\"let file of files; let i = index\">\r\n\r\n <div class=\"tin-input-row info\" >\r\n <h4 class=\"name\">\r\n {{ file?.name }}\r\n </h4>\r\n <p class=\"size\">\r\n {{ formatBytes(file?.size, 2) }}\r\n </p>\r\n </div>\r\n\r\n <div class=\"delete\" (click)=\"deleteFile(i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"18\" viewBox=\"0 0 14 18\">\r\n <path fill=\"#B1B1B1\" fill-rule=\"nonzero\"\r\n d=\"M1 16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v10zm3.17-7.83a.996.996 0 0 1 1.41 0L7 9.59l1.42-1.42a.996.996 0 1 1 1.41 1.41L8.41 11l1.42 1.42a.996.996 0 1 1-1.41 1.41L7 12.41l-1.42 1.42a.996.996 0 1 1-1.41-1.41L5.59 11 4.17 9.58a.996.996 0 0 1 0-1.41zM10.5 1L9.79.29C9.61.11 9.35 0 9.09 0H4.91c-.26 0-.52.11-.7.29L3.5 1H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length > 0 && enableUpload\" class=\"tin-input-row d-flex justify-content-center\" style=\"width: 100%;\" >\r\n <button mat-button color=\"primary\" (click)=\"uploaded()\" matTooltip=\"Upload New Documents\" matTooltipPosition=\"above\" ><mat-icon>file_upload</mat-icon> Upload</button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", styles: [".container{width:100%;height:100px;padding-top:5px;text-align:center;border:dashed 2px #2a7b94;position:relative;margin:0 auto}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0}.container label{color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.container h3{font-size:20px;font-weight:600;color:#38424c}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{margin-top:1.5rem}.files-list .single-file{padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #1c824d;margin-bottom:1rem;margin-right:1rem;display:flex;flex-grow:1}.files-list .single-file .delete{display:flex;margin-left:.5rem;cursor:pointer;align-self:flex-end}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0;margin-left:1rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AttachComponent, decorators: [{
87
- type: Component,
88
- args: [{ selector: 'spa-attach', template: "<div class=\"tin-input-row\" style=\"width: 100%;\">\r\n\r\n <div class=\"col\">\r\n <div class=\"container\" appDnd (fileDropped)=\"onFileDropped($event)\">\r\n <input type=\"file\" #fileDropRef id=\"fileDropRef\" multiple (change)=\"fileBrowseHandler($event)\" />\r\n <h4>{{message}}</h4>\r\n\r\n <label for=\"fileDropRef\">Click to Browse</label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <div class=\"files-list \">\r\n <div class=\"single-file \" style=\"width: 100%;\" *ngFor=\"let file of files; let i = index\">\r\n\r\n <div class=\"tin-input-row info\" >\r\n <h4 class=\"name\">\r\n {{ file?.name }}\r\n </h4>\r\n <p class=\"size\">\r\n {{ formatBytes(file?.size, 2) }}\r\n </p>\r\n </div>\r\n\r\n <div class=\"delete\" (click)=\"deleteFile(i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"18\" viewBox=\"0 0 14 18\">\r\n <path fill=\"#B1B1B1\" fill-rule=\"nonzero\"\r\n d=\"M1 16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v10zm3.17-7.83a.996.996 0 0 1 1.41 0L7 9.59l1.42-1.42a.996.996 0 1 1 1.41 1.41L8.41 11l1.42 1.42a.996.996 0 1 1-1.41 1.41L7 12.41l-1.42 1.42a.996.996 0 1 1-1.41-1.41L5.59 11 4.17 9.58a.996.996 0 0 1 0-1.41zM10.5 1L9.79.29C9.61.11 9.35 0 9.09 0H4.91c-.26 0-.52.11-.7.29L3.5 1H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length > 0 && enableUpload\" class=\"tin-input-row d-flex justify-content-center\" style=\"width: 100%;\" >\r\n <button mat-button color=\"primary\" (click)=\"uploaded()\" matTooltip=\"Upload New Documents\" matTooltipPosition=\"above\" ><mat-icon>file_upload</mat-icon> Upload</button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n", styles: [".container{width:100%;height:100px;padding-top:5px;text-align:center;border:dashed 2px #2a7b94;position:relative;margin:0 auto}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0}.container label{color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.container h3{font-size:20px;font-weight:600;color:#38424c}.fileover{animation:shake 1s;animation-iteration-count:infinite}.files-list{margin-top:1.5rem}.files-list .single-file{padding:.5rem;justify-content:space-between;align-items:center;border:dashed 1px #1c824d;margin-bottom:1rem;margin-right:1rem;display:flex;flex-grow:1}.files-list .single-file .delete{display:flex;margin-left:.5rem;cursor:pointer;align-self:flex-end}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0;margin-left:1rem}.files-list .single-file .info{width:100%}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}to{transform:translate(1px,-2px) rotate(-1deg)}}\n"] }]
89
- }], ctorParameters: function () { return [{ type: i1.MessageService }]; }, propDecorators: { fileOptions: [{
90
- type: Input
91
- }], message: [{
92
- type: Input
93
- }], files: [{
94
- type: Input
95
- }], filesChange: [{
96
- type: Output
97
- }], upload: [{
98
- type: Output
99
- }], enableUpload: [{
100
- type: Input
101
- }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL2F0dGFjaC9hdHRhY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYXR0YWNoL2F0dGFjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sZ0JBQWdCLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsY0FBK0I7UUFBL0IsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBV2xDLG9CQUFlLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU1RCxZQUFPLEdBQUcsMEJBQTBCLENBQUE7UUFDcEMsVUFBSyxHQUFVLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHN0IsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFuQnlCLENBQUM7SUFFeEQsUUFBUTtRQUNOLGlIQUFpSDtJQUNuSCxDQUFDO0lBa0JELGFBQWEsQ0FBQyxNQUFNO1FBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBSztRQUNyQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFD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QUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7NEdBakdVLGVBQWU7Z0dBQWYsZUFBZSx1TkNWNUIsNjNEQXVDQTsyRkQ3QmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZO3FHQVliLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFHRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCBpbWFnZUNvbXByZXNzaW9uIGZyb20gJ2Jyb3dzZXItaW1hZ2UtY29tcHJlc3Npb24nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWF0dGFjaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXR0YWNoLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF0dGFjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2UgOiBNZXNzYWdlU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5maWxlT3B0aW9ucyA9IHthbGxvd2VkRXh0ZW5zaW9uczogWycuanBnJywgJy5qcGVnJywgJy5wbmcnLCAnLmdpZiddLCBtYXhTaXplTUI6IDEsIGNvbXByZXNzSW1hZ2VzOiB0cnVlfTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGZpbGVPcHRpb25zOiB7XHJcbiAgICBhbGxvd2VkRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xyXG4gICAgbWF4U2l6ZU1CPzogbnVtYmVyO1xyXG4gICAgY29tcHJlc3NJbWFnZXM/OiBib29sZWFuO1xyXG4gIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpbWFnZUV4dGVuc2lvbnMgPSBbJy5qcGcnLCAnLmpwZWcnLCAnLnBuZycsICcuZ2lmJ107XHJcblxyXG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSBcIkRyYWcgYW5kIGRyb3AgZmlsZXMgaGVyZVwiXHJcbiAgQElucHV0KCkgZmlsZXM6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIGZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB1cGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuICBASW5wdXQoKSBlbmFibGVVcGxvYWQgPSBmYWxzZTtcclxuXHJcblxyXG4gIG9uRmlsZURyb3BwZWQoJGV2ZW50KSB7XHJcbiAgICB0aGlzLnByZXBhcmVGaWxlc0xpc3QoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGZpbGVCcm93c2VIYW5kbGVyKGV2ZW50KSB7XHJcbiAgICBsZXQgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICB0aGlzLnByZXBhcmVGaWxlc0xpc3QoZmlsZXMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIHByZXBhcmVGaWxlc0xpc3QoZmlsZXM6IEFycmF5PGFueT4pIHtcclxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICBjb25zdCBleHQgPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKTtcclxuICAgICAgaWYgKHRoaXMuZmlsZU9wdGlvbnM/LmFsbG93ZWRFeHRlbnNpb25zICYmICF0aGlzLmZpbGVPcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGV4dC50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYEZpbGUgdHlwZSAke2V4dH0gbm90IGFsbG93ZWRgKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHByb2Nlc3NlZEZpbGUgPSBmaWxlO1xyXG4gICAgICBpZiAodGhpcy5maWxlT3B0aW9ucz8uY29tcHJlc3NJbWFnZXMgJiYgdGhpcy5pc0ltYWdlKGZpbGUubmFtZSkpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgbWF4U2l6ZU1COiB0aGlzLmZpbGVPcHRpb25zLm1heFNpemVNQiB8fCAxLFxyXG4gICAgICAgICAgICBtYXhXaWR0aE9ySGVpZ2h0OiAxOTIwLFxyXG4gICAgICAgICAgICB1c2VXZWJXb3JrZXI6IHRydWVcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBwcm9jZXNzZWRGaWxlID0gYXdhaXQgaW1hZ2VDb21wcmVzc2lvbihmaWxlLCBvcHRpb25zKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChgRXJyb3IgY29tcHJlc3NpbmcgaW1hZ2U6ICR7ZmlsZS5uYW1lfWApO1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBwcm9jZXNzZWRGaWxlLnByb2dyZXNzID0gMDtcclxuICAgICAgdGhpcy5maWxlcy5wdXNoKHByb2Nlc3NlZEZpbGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHRoaXMuZmlsZXMpO1xyXG4gIH1cclxuXHJcbiAgLy8gQWRkIG5ldyBoZWxwZXIgbWV0aG9kc1xyXG4gIHByaXZhdGUgZ2V0RmlsZUV4dGVuc2lvbihmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBmaWxlbmFtZS5zdWJzdHJpbmcoZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKSkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbWFnZShmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBleHQgPSB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZW5hbWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaW1hZ2VFeHRlbnNpb25zLmluY2x1ZGVzKGV4dC50b0xvd2VyQ2FzZSgpKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZm9ybWF0Qnl0ZXMoYnl0ZXMsIGRlY2ltYWxzKSB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IDApIHtcclxuICAgICAgcmV0dXJuICcwIEJ5dGVzJztcclxuICAgIH1cclxuICAgIGNvbnN0IGsgPSAxMDI0O1xyXG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8PSAwID8gMCA6IGRlY2ltYWxzIHx8IDI7XHJcbiAgICBjb25zdCBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXTtcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKSkgKyAnICcgKyBzaXplc1tpXTtcclxuICB9XHJcblxyXG4gIHVwbG9hZGVkKCl7XHJcbiAgICB0aGlzLnVwbG9hZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBmaWxlc0NoYW5nZWQoKXtcclxuICAgIHRoaXMuZmlsZXNDaGFuZ2UuZW1pdCh0aGlzLmZpbGVzKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRpbi1pbnB1dC1yb3dcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgYXBwRG5kIChmaWxlRHJvcHBlZCk9XCJvbkZpbGVEcm9wcGVkKCRldmVudClcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGVEcm9wUmVmIGlkPVwiZmlsZURyb3BSZWZcIiBtdWx0aXBsZSAoY2hhbmdlKT1cImZpbGVCcm93c2VIYW5kbGVyKCRldmVudClcIiAvPlxyXG4gICAgICA8aDQ+e3ttZXNzYWdlfX08L2g0PlxyXG5cclxuICAgICAgPGxhYmVsIGZvcj1cImZpbGVEcm9wUmVmXCI+Q2xpY2sgdG8gQnJvd3NlPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsZXMtbGlzdCBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpbmdsZS1maWxlIFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXM7IGxldCBpID0gaW5kZXhcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbi1pbnB1dC1yb3cgaW5mb1wiID5cclxuICAgICAgICAgIDxoNCBjbGFzcz1cIm5hbWVcIj5cclxuICAgICAgICAgICAge3sgZmlsZT8ubmFtZSB9fVxyXG4gICAgICAgICAgPC9oND5cclxuICAgICAgICAgIDxwIGNsYXNzPVwic2l6ZVwiPlxyXG4gICAgICAgICAgICB7eyBmb3JtYXRCeXRlcyhmaWxlPy5zaXplLCAyKSB9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoaSlcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTQgMThcIj5cclxuICAgICAgICAgICAgPHBhdGggZmlsbD1cIiNCMUIxQjFcIiBmaWxsLXJ1bGU9XCJub256ZXJvXCJcclxuICAgICAgICAgICAgICBkPVwiTTEgMTZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMiAuOS0yIDJ2MTB6bTMuMTctNy44M2EuOTk2Ljk5NiAwIDAgMSAxLjQxIDBMNyA5LjU5bDEuNDItMS40MmEuOTk2Ljk5NiAwIDEgMSAxLjQxIDEuNDFMOC40MSAxMWwxLjQyIDEuNDJhLjk5Ni45OTYgMCAxIDEtMS40MSAxLjQxTDcgMTIuNDFsLTEuNDIgMS40MmEuOTk2Ljk5NiAwIDEgMS0xLjQxLTEuNDFMNS41OSAxMSA0LjE3IDkuNThhLjk5Ni45OTYgMCAwIDEgMC0xLjQxek0xMC41IDFMOS43OS4yOUM5LjYxLjExIDkuMzUgMCA5LjA5IDBINC45MWMtLjI2IDAtLjUyLjExLS43LjI5TDMuNSAxSDFjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFoLTIuNXpcIiAvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImZpbGVzLmxlbmd0aCA+IDAgJiYgZW5hYmxlVXBsb2FkXCIgY2xhc3M9XCJ0aW4taW5wdXQtcm93IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiA+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidXBsb2FkZWQoKVwiIG1hdFRvb2x0aXA9XCJVcGxvYWQgTmV3IERvY3VtZW50c1wiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgID48bWF0LWljb24+ZmlsZV91cGxvYWQ8L21hdC1pY29uPiBVcGxvYWQ8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,63 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/button.service";
4
- import * as i2 from "../../services/condition.service";
5
- import * as i3 from "@angular/common";
6
- import * as i4 from "@angular/material/menu";
7
- import * as i5 from "@angular/material/icon";
8
- import * as i6 from "@angular/material/chips";
9
- export class CapsulesComponent {
10
- constructor(buttonService, conditionService) {
11
- this.buttonService = buttonService;
12
- this.conditionService = conditionService;
13
- this.displayedButtons = [];
14
- this.actionClick = new EventEmitter();
15
- }
16
- // Extract display value based on config
17
- getDisplayValue(row) {
18
- if (!this.config?.capsuleConfig?.displayField) {
19
- return '';
20
- }
21
- return row[this.config.capsuleConfig.displayField];
22
- }
23
- // Check icon visibility condition
24
- testIconCondition(row, icon) {
25
- return this.conditionService.testIconCondition(icon, row);
26
- }
27
- // Handle button click from menu
28
- onActionClick(buttonName, row) {
29
- this.actionClick.emit({ name: buttonName, row });
30
- }
31
- // Get button color using service
32
- getButtonColor(button, row) {
33
- return this.buttonService.getButtonColor(button, row);
34
- }
35
- // Get icon for button using service
36
- getIcon(buttonName) {
37
- return this.buttonService.getIcon(this.getButton(buttonName), this.config);
38
- }
39
- // Test if button should be disabled
40
- testDisabled(row, buttonName) {
41
- const button = this.getButton(buttonName);
42
- return this.buttonService.testDisabled(button, row, this.config);
43
- }
44
- // Get button by name
45
- getButton(name) {
46
- return this.displayedButtons?.find(x => x.name === name) || null;
47
- }
48
- }
49
- CapsulesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CapsulesComponent, deps: [{ token: i1.ButtonService }, { token: i2.ConditionService }], target: i0.ɵɵFactoryTarget.Component });
50
- CapsulesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CapsulesComponent, selector: "spa-capsules", inputs: { config: "config", dataSource: "dataSource", displayedButtons: "displayedButtons" }, outputs: { actionClick: "actionClick" }, ngImport: i0, template: "<mat-chip-list>\r\n <mat-chip *ngFor=\"let row of dataSource\" [matMenuTriggerFor]=\"itemMenu\" [matMenuTriggerData]=\"{item: row}\">\r\n <!-- Left icons -->\r\n <ng-container *ngFor=\"let icon of config.capsuleConfig?.leftIcons\">\r\n <mat-icon *ngIf=\"testIconCondition(row, icon)\" \r\n [ngStyle]=\"{'color': icon?.color}\" \r\n style=\"font-size: 18px; padding-top: 3px; margin-right: 5px;\">\r\n {{icon.name}}\r\n </mat-icon>\r\n </ng-container>\r\n \r\n <!-- Display text -->\r\n <label style=\"margin-right: 5px;\">{{getDisplayValue(row)}}</label>\r\n \r\n <!-- Right icons -->\r\n <ng-container *ngFor=\"let icon of config.capsuleConfig?.rightIcons\">\r\n <mat-icon *ngIf=\"testIconCondition(row, icon)\" \r\n [ngStyle]=\"{'color': icon?.color}\" \r\n style=\"font-size: 18px; padding-top: 3px; margin-left: 5px;\">\r\n {{icon.name}}\r\n </mat-icon>\r\n </ng-container>\r\n </mat-chip>\r\n</mat-chip-list>\r\n \r\n <!-- Context menu -->\r\n<mat-menu #itemMenu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item *ngFor=\"let button of buttonService.getVisibleButtons(displayedButtons, item, config)\" \r\n [disabled]=\"testDisabled(item, button.name)\"\r\n (click)=\"onActionClick(button.name, item)\">\r\n <mat-icon [ngStyle]=\"{'color': getButtonColor(button, item)}\">\r\n {{getIcon(button.name)}}\r\n </mat-icon>\r\n <span>{{button.display || (button.name | titlecase)}}</span>\r\n </button>\r\n </ng-template>\r\n</mat-menu>", styles: ["mat-chip{cursor:pointer;margin:4px}mat-chip:hover{opacity:.8}mat-icon{vertical-align:middle}label{vertical-align:middle;margin:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i4.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i6.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }] });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CapsulesComponent, decorators: [{
52
- type: Component,
53
- args: [{ selector: 'spa-capsules', template: "<mat-chip-list>\r\n <mat-chip *ngFor=\"let row of dataSource\" [matMenuTriggerFor]=\"itemMenu\" [matMenuTriggerData]=\"{item: row}\">\r\n <!-- Left icons -->\r\n <ng-container *ngFor=\"let icon of config.capsuleConfig?.leftIcons\">\r\n <mat-icon *ngIf=\"testIconCondition(row, icon)\" \r\n [ngStyle]=\"{'color': icon?.color}\" \r\n style=\"font-size: 18px; padding-top: 3px; margin-right: 5px;\">\r\n {{icon.name}}\r\n </mat-icon>\r\n </ng-container>\r\n \r\n <!-- Display text -->\r\n <label style=\"margin-right: 5px;\">{{getDisplayValue(row)}}</label>\r\n \r\n <!-- Right icons -->\r\n <ng-container *ngFor=\"let icon of config.capsuleConfig?.rightIcons\">\r\n <mat-icon *ngIf=\"testIconCondition(row, icon)\" \r\n [ngStyle]=\"{'color': icon?.color}\" \r\n style=\"font-size: 18px; padding-top: 3px; margin-left: 5px;\">\r\n {{icon.name}}\r\n </mat-icon>\r\n </ng-container>\r\n </mat-chip>\r\n</mat-chip-list>\r\n \r\n <!-- Context menu -->\r\n<mat-menu #itemMenu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item *ngFor=\"let button of buttonService.getVisibleButtons(displayedButtons, item, config)\" \r\n [disabled]=\"testDisabled(item, button.name)\"\r\n (click)=\"onActionClick(button.name, item)\">\r\n <mat-icon [ngStyle]=\"{'color': getButtonColor(button, item)}\">\r\n {{getIcon(button.name)}}\r\n </mat-icon>\r\n <span>{{button.display || (button.name | titlecase)}}</span>\r\n </button>\r\n </ng-template>\r\n</mat-menu>", styles: ["mat-chip{cursor:pointer;margin:4px}mat-chip:hover{opacity:.8}mat-icon{vertical-align:middle}label{vertical-align:middle;margin:0}\n"] }]
54
- }], ctorParameters: function () { return [{ type: i1.ButtonService }, { type: i2.ConditionService }]; }, propDecorators: { config: [{
55
- type: Input
56
- }], dataSource: [{
57
- type: Input
58
- }], displayedButtons: [{
59
- type: Input
60
- }], actionClick: [{
61
- type: Output
62
- }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwc3VsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2Fwc3VsZXMvY2Fwc3VsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2Fwc3VsZXMvY2Fwc3VsZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFVdkUsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUNTLGFBQTRCLEVBQzNCLGdCQUFrQztRQURuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBS25DLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUUvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO0lBTmxFLENBQUM7SUFRSix3Q0FBd0M7SUFDeEMsZUFBZSxDQUFDLEdBQVE7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRTtZQUM3QyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxpQkFBaUIsQ0FBQyxHQUFRLEVBQUUsSUFBUztRQUNuQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxhQUFhLENBQUMsVUFBa0IsRUFBRSxHQUFRO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsY0FBYyxDQUFDLE1BQWMsRUFBRSxHQUFRO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsT0FBTyxDQUFDLFVBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxZQUFZLENBQUMsR0FBUSxFQUFFLFVBQWtCO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQscUJBQXFCO0lBQ2IsU0FBUyxDQUFDLElBQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDbkUsQ0FBQzs7OEdBakRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJMQ1Y5QixpckRBcUNXOzJGRDNCRSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzttSUFVZixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvbiwgVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBCdXR0b25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYnV0dG9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25kaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZGl0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtY2Fwc3VsZXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXBzdWxlcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2Fwc3VsZXMuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXBzdWxlc0NvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgYnV0dG9uU2VydmljZTogQnV0dG9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZGl0aW9uU2VydmljZTogQ29uZGl0aW9uU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgQElucHV0KCkgY29uZmlnOiBUYWJsZUNvbmZpZztcclxuICBASW5wdXQoKSBkYXRhU291cmNlOiBhbnlbXTtcclxuICBASW5wdXQoKSBkaXNwbGF5ZWRCdXR0b25zOiBCdXR0b25bXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtuYW1lOiBzdHJpbmcsIHJvdzogYW55fT4oKTtcclxuXHJcbiAgLy8gRXh0cmFjdCBkaXNwbGF5IHZhbHVlIGJhc2VkIG9uIGNvbmZpZ1xyXG4gIGdldERpc3BsYXlWYWx1ZShyb3c6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnPy5jYXBzdWxlQ29uZmlnPy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJvd1t0aGlzLmNvbmZpZy5jYXBzdWxlQ29uZmlnLmRpc3BsYXlGaWVsZF07XHJcbiAgfVxyXG5cclxuICAvLyBDaGVjayBpY29uIHZpc2liaWxpdHkgY29uZGl0aW9uXHJcbiAgdGVzdEljb25Db25kaXRpb24ocm93OiBhbnksIGljb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU2VydmljZS50ZXN0SWNvbkNvbmRpdGlvbihpY29uLCByb3cpO1xyXG4gIH1cclxuXHJcbiAgLy8gSGFuZGxlIGJ1dHRvbiBjbGljayBmcm9tIG1lbnVcclxuICBvbkFjdGlvbkNsaWNrKGJ1dHRvbk5hbWU6IHN0cmluZywgcm93OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IG5hbWU6IGJ1dHRvbk5hbWUsIHJvdyB9KTtcclxuICB9XHJcblxyXG4gIC8vIEdldCBidXR0b24gY29sb3IgdXNpbmcgc2VydmljZVxyXG4gIGdldEJ1dHRvbkNvbG9yKGJ1dHRvbjogQnV0dG9uLCByb3c6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25TZXJ2aWNlLmdldEJ1dHRvbkNvbG9yKGJ1dHRvbiwgcm93KTtcclxuICB9XHJcblxyXG4gIC8vIEdldCBpY29uIGZvciBidXR0b24gdXNpbmcgc2VydmljZVxyXG4gIGdldEljb24oYnV0dG9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmJ1dHRvblNlcnZpY2UuZ2V0SWNvbih0aGlzLmdldEJ1dHRvbihidXR0b25OYW1lKSwgdGhpcy5jb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLy8gVGVzdCBpZiBidXR0b24gc2hvdWxkIGJlIGRpc2FibGVkXHJcbiAgdGVzdERpc2FibGVkKHJvdzogYW55LCBidXR0b25OYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMuZ2V0QnV0dG9uKGJ1dHRvbk5hbWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuYnV0dG9uU2VydmljZS50ZXN0RGlzYWJsZWQoYnV0dG9uLCByb3csIHRoaXMuY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8vIEdldCBidXR0b24gYnkgbmFtZVxyXG4gIHByaXZhdGUgZ2V0QnV0dG9uKG5hbWU6IHN0cmluZyk6IEJ1dHRvbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkQnV0dG9ucz8uZmluZCh4ID0+IHgubmFtZSA9PT0gbmFtZSkgfHwgbnVsbDtcclxuICB9XHJcbn0iLCI8bWF0LWNoaXAtbGlzdD5cclxuICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGFTb3VyY2VcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiaXRlbU1lbnVcIiBbbWF0TWVudVRyaWdnZXJEYXRhXT1cIntpdGVtOiByb3d9XCI+XHJcbiAgICAgIDwhLS0gTGVmdCBpY29ucyAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaWNvbiBvZiBjb25maWcuY2Fwc3VsZUNvbmZpZz8ubGVmdEljb25zXCI+XHJcbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwidGVzdEljb25Db25kaXRpb24ocm93LCBpY29uKVwiIFxyXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2NvbG9yJzogaWNvbj8uY29sb3J9XCIgXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4OyBwYWRkaW5nLXRvcDogM3B4OyBtYXJnaW4tcmlnaHQ6IDVweDtcIj5cclxuICAgICAgICAgIHt7aWNvbi5uYW1lfX1cclxuICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICBcclxuICAgICAgPCEtLSBEaXNwbGF5IHRleHQgLS0+XHJcbiAgICAgIDxsYWJlbCBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiPnt7Z2V0RGlzcGxheVZhbHVlKHJvdyl9fTwvbGFiZWw+XHJcbiAgXHJcbiAgICAgIDwhLS0gUmlnaHQgaWNvbnMgLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGljb24gb2YgY29uZmlnLmNhcHN1bGVDb25maWc/LnJpZ2h0SWNvbnNcIj5cclxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJ0ZXN0SWNvbkNvbmRpdGlvbihyb3csIGljb24pXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnY29sb3InOiBpY29uPy5jb2xvcn1cIiBcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7IHBhZGRpbmctdG9wOiAzcHg7IG1hcmdpbi1sZWZ0OiA1cHg7XCI+XHJcbiAgICAgICAgICB7e2ljb24ubmFtZX19XHJcbiAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1jaGlwPlxyXG48L21hdC1jaGlwLWxpc3Q+XHJcbiAgXHJcbiAgPCEtLSBDb250ZXh0IG1lbnUgLS0+XHJcbjxtYXQtbWVudSAjaXRlbU1lbnU9XCJtYXRNZW51XCI+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGJ1dHRvblNlcnZpY2UuZ2V0VmlzaWJsZUJ1dHRvbnMoZGlzcGxheWVkQnV0dG9ucywgaXRlbSwgY29uZmlnKVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0ZXN0RGlzYWJsZWQoaXRlbSwgYnV0dG9uLm5hbWUpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb25DbGljayhidXR0b24ubmFtZSwgaXRlbSlcIj5cclxuICAgICAgICA8bWF0LWljb24gW25nU3R5bGVdPVwieydjb2xvcic6IGdldEJ1dHRvbkNvbG9yKGJ1dHRvbiwgaXRlbSl9XCI+XHJcbiAgICAgICAgICB7e2dldEljb24oYnV0dG9uLm5hbWUpfX1cclxuICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuPnt7YnV0dG9uLmRpc3BsYXkgfHwgKGJ1dHRvbi5uYW1lIHwgdGl0bGVjYXNlKX19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvbWF0LW1lbnU+Il19
@@ -1,103 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/button.service";
4
- import * as i2 from "../../services/condition.service";
5
- import * as i3 from "@angular/common";
6
- import * as i4 from "@angular/material/button";
7
- import * as i5 from "@angular/material/icon";
8
- import * as i6 from "@angular/material/card";
9
- import * as i7 from "@angular/material/tooltip";
10
- export class CardsComponent {
11
- constructor(buttonService, conditionService) {
12
- this.buttonService = buttonService;
13
- this.conditionService = conditionService;
14
- this.displayedButtons = [];
15
- this.smallScreen = false;
16
- this.actionClick = new EventEmitter();
17
- this.columnClick = new EventEmitter();
18
- this.showBannerEvent = new EventEmitter();
19
- }
20
- // Get title value for a card
21
- getTitleValue(row) {
22
- const titleField = this.config?.cardConfig?.titleField;
23
- return titleField ? row[titleField] : '';
24
- }
25
- // Get subtitle value for a card
26
- getSubtitleValue(row) {
27
- const subtitleField = this.config?.cardConfig?.subtitleField;
28
- return subtitleField ? row[subtitleField] : '';
29
- }
30
- // Get content values for a card
31
- getContentValues(row) {
32
- const contentFields = this.config?.cardConfig?.contentFields || [];
33
- return contentFields.map(field => {
34
- const column = this.config.columns.find(col => col.name === field);
35
- return {
36
- label: column?.alias || field,
37
- value: row[field]
38
- };
39
- });
40
- }
41
- // Handle button click from menu
42
- onActionClick(buttonName, row) {
43
- this.actionClick.emit({ name: buttonName, row });
44
- }
45
- // Get color for button
46
- getButtonColor(button, row) {
47
- return this.buttonService.getButtonColor(button, row);
48
- }
49
- // Get icon for button
50
- getIcon(buttonName) {
51
- return this.buttonService.getIcon(this.getButton(buttonName), this.config);
52
- }
53
- // Test if button should be disabled
54
- testDisabled(row, buttonName) {
55
- const button = this.getButton(buttonName);
56
- return this.buttonService.testDisabled(button, row, this.config);
57
- }
58
- // Test if button should be visible
59
- testVisible(row, buttonName) {
60
- const button = this.getButton(buttonName);
61
- return this.buttonService.testVisible(button, row, this.config);
62
- }
63
- // Get elevation class based on config
64
- getElevationClass() {
65
- const elevation = this.config?.cardConfig?.elevation || 'medium';
66
- switch (elevation) {
67
- case 'low': return 'mat-elevation-z1';
68
- case 'high': return 'mat-elevation-z8';
69
- default: return 'mat-elevation-z4';
70
- }
71
- }
72
- // Get number of columns for grid
73
- getColumnCount() {
74
- if (this.smallScreen)
75
- return 1;
76
- return this.config?.cardConfig?.columns || 3;
77
- }
78
- // Get button by name
79
- getButton(name) {
80
- return this.displayedButtons?.find(x => x.name === name) || null;
81
- }
82
- }
83
- CardsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardsComponent, deps: [{ token: i1.ButtonService }, { token: i2.ConditionService }], target: i0.ɵɵFactoryTarget.Component });
84
- CardsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CardsComponent, selector: "spa-cards", inputs: { config: "config", dataSource: "dataSource", displayedButtons: "displayedButtons", smallScreen: "smallScreen" }, outputs: { actionClick: "actionClick", columnClick: "columnClick", showBannerEvent: "showBannerEvent" }, ngImport: i0, template: "<div class=\"cards-container\" [style.grid-template-columns]=\"'repeat(' + getColumnCount() + ', 1fr)'\">\r\n <mat-card *ngFor=\"let row of dataSource\" [class]=\"getElevationClass()\" class=\"card-item\">\r\n <mat-card-header>\r\n <mat-card-title>{{getTitleValue(row)}}</mat-card-title>\r\n <mat-card-subtitle *ngIf=\"getSubtitleValue(row)\">{{getSubtitleValue(row)}}</mat-card-subtitle>\r\n </mat-card-header>\r\n \r\n <mat-card-content>\r\n <div class=\"content-item\" *ngFor=\"let content of getContentValues(row)\">\r\n <span class=\"label\">{{content.label}}:</span>\r\n <span class=\"value\">{{content.value}}</span>\r\n </div>\r\n </mat-card-content>\r\n \r\n <mat-card-actions align=\"end\">\r\n <ng-container *ngFor=\"let button of displayedButtons\">\r\n <button *ngIf=\"!config.flatButtons && testVisible(row, button.name)\" \r\n mat-mini-fab\r\n [matTooltip]=\"button.tip ?? button.name | titlecase\"\r\n matTooltipPosition=\"above\"\r\n [ngStyle]=\"{'background-color': getButtonColor(button, row)}\"\r\n [disabled]=\"testDisabled(row, button.name)\"\r\n (click)=\"onActionClick(button.name, row)\">\r\n <mat-icon>{{getIcon(button.name)}}</mat-icon>\r\n </button>\r\n \r\n <button *ngIf=\"config.flatButtons && testVisible(row, button.name)\"\r\n mat-icon-button \r\n [matTooltip]=\"button.tip ?? button.name | titlecase\"\r\n matTooltipPosition=\"above\"\r\n [disabled]=\"testDisabled(row, button.name)\"\r\n (click)=\"onActionClick(button.name, row)\">\r\n <mat-icon [ngStyle]=\"{'color': getButtonColor(button, row)}\">{{getIcon(button.name)}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n </mat-card-actions>\r\n </mat-card>\r\n </div>", styles: [".cards-container{display:grid;gap:20px;padding:20px}.card-item{height:100%;transition:transform .2s}.card-item:hover{transform:translateY(-5px)}.content-item{margin:8px 0;display:grid;grid-template-columns:minmax(33%,1fr) minmax(67%,2fr);gap:8px;align-items:baseline}.label{font-weight:500;color:#000000b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.value{text-align:left;word-break:break-word}mat-card-actions{padding:16px;display:flex;gap:8px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.mat-icon-button{width:32px;height:32px}.mat-icon-button mat-icon{font-size:20px;margin-top:-7px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i6.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i6.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i6.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }] });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardsComponent, decorators: [{
86
- type: Component,
87
- args: [{ selector: 'spa-cards', template: "<div class=\"cards-container\" [style.grid-template-columns]=\"'repeat(' + getColumnCount() + ', 1fr)'\">\r\n <mat-card *ngFor=\"let row of dataSource\" [class]=\"getElevationClass()\" class=\"card-item\">\r\n <mat-card-header>\r\n <mat-card-title>{{getTitleValue(row)}}</mat-card-title>\r\n <mat-card-subtitle *ngIf=\"getSubtitleValue(row)\">{{getSubtitleValue(row)}}</mat-card-subtitle>\r\n </mat-card-header>\r\n \r\n <mat-card-content>\r\n <div class=\"content-item\" *ngFor=\"let content of getContentValues(row)\">\r\n <span class=\"label\">{{content.label}}:</span>\r\n <span class=\"value\">{{content.value}}</span>\r\n </div>\r\n </mat-card-content>\r\n \r\n <mat-card-actions align=\"end\">\r\n <ng-container *ngFor=\"let button of displayedButtons\">\r\n <button *ngIf=\"!config.flatButtons && testVisible(row, button.name)\" \r\n mat-mini-fab\r\n [matTooltip]=\"button.tip ?? button.name | titlecase\"\r\n matTooltipPosition=\"above\"\r\n [ngStyle]=\"{'background-color': getButtonColor(button, row)}\"\r\n [disabled]=\"testDisabled(row, button.name)\"\r\n (click)=\"onActionClick(button.name, row)\">\r\n <mat-icon>{{getIcon(button.name)}}</mat-icon>\r\n </button>\r\n \r\n <button *ngIf=\"config.flatButtons && testVisible(row, button.name)\"\r\n mat-icon-button \r\n [matTooltip]=\"button.tip ?? button.name | titlecase\"\r\n matTooltipPosition=\"above\"\r\n [disabled]=\"testDisabled(row, button.name)\"\r\n (click)=\"onActionClick(button.name, row)\">\r\n <mat-icon [ngStyle]=\"{'color': getButtonColor(button, row)}\">{{getIcon(button.name)}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n </mat-card-actions>\r\n </mat-card>\r\n </div>", styles: [".cards-container{display:grid;gap:20px;padding:20px}.card-item{height:100%;transition:transform .2s}.card-item:hover{transform:translateY(-5px)}.content-item{margin:8px 0;display:grid;grid-template-columns:minmax(33%,1fr) minmax(67%,2fr);gap:8px;align-items:baseline}.label{font-weight:500;color:#000000b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.value{text-align:left;word-break:break-word}mat-card-actions{padding:16px;display:flex;gap:8px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.mat-icon-button{width:32px;height:32px}.mat-icon-button mat-icon{font-size:20px;margin-top:-7px}\n"] }]
88
- }], ctorParameters: function () { return [{ type: i1.ButtonService }, { type: i2.ConditionService }]; }, propDecorators: { config: [{
89
- type: Input
90
- }], dataSource: [{
91
- type: Input
92
- }], displayedButtons: [{
93
- type: Input
94
- }], smallScreen: [{
95
- type: Input
96
- }], actionClick: [{
97
- type: Output
98
- }], columnClick: [{
99
- type: Output
100
- }], showBannerEvent: [{
101
- type: Output
102
- }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2FyZHMvY2FyZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2FyZHMvY2FyZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBVXZFLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1MsYUFBNEIsRUFDM0IsZ0JBQWtDO1FBRG5DLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFLbkMscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDM0QsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUMxRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFUcEQsQ0FBQztJQVdKLDZCQUE2QjtJQUM3QixhQUFhLENBQUMsR0FBUTtRQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7UUFDdkQsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsZ0JBQWdCLENBQUMsR0FBUTtRQUN2QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUM7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QyxJQUFJLElBQUksQ0FBQztJQUNuRSxDQUFDOzsyR0FyRlUsY0FBYzsrRkFBZCxjQUFjLG9SQ1YzQixtOURBcUNROzJGRDNCSyxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVc7bUlBVVosTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b24sIFRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgQnV0dG9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2J1dHRvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZGl0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmRpdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWNhcmRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NhcmRzLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FyZHNDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGJ1dHRvblNlcnZpY2U6IEJ1dHRvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmRpdGlvblNlcnZpY2U6IENvbmRpdGlvblNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZzogVGFibGVDb25maWc7XHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZTogYW55W107XHJcbiAgQElucHV0KCkgZGlzcGxheWVkQnV0dG9uczogQnV0dG9uW10gPSBbXTtcclxuICBASW5wdXQoKSBzbWFsbFNjcmVlbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtuYW1lOiBzdHJpbmcsIHJvdzogYW55fT4oKTtcclxuICBAT3V0cHV0KCkgY29sdW1uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtjb2x1bW46IGFueSwgcm93OiBhbnl9PigpO1xyXG4gIEBPdXRwdXQoKSBzaG93QmFubmVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLy8gR2V0IHRpdGxlIHZhbHVlIGZvciBhIGNhcmRcclxuICBnZXRUaXRsZVZhbHVlKHJvdzogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHRpdGxlRmllbGQgPSB0aGlzLmNvbmZpZz8uY2FyZENvbmZpZz8udGl0bGVGaWVsZDtcclxuICAgIHJldHVybiB0aXRsZUZpZWxkID8gcm93W3RpdGxlRmllbGRdIDogJyc7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgc3VidGl0bGUgdmFsdWUgZm9yIGEgY2FyZFxyXG4gIGdldFN1YnRpdGxlVmFsdWUocm93OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc3VidGl0bGVGaWVsZCA9IHRoaXMuY29uZmlnPy5jYXJkQ29uZmlnPy5zdWJ0aXRsZUZpZWxkO1xyXG4gICAgcmV0dXJuIHN1YnRpdGxlRmllbGQgPyByb3dbc3VidGl0bGVGaWVsZF0gOiAnJztcclxuICB9XHJcblxyXG4gIC8vIEdldCBjb250ZW50IHZhbHVlcyBmb3IgYSBjYXJkXHJcbiAgZ2V0Q29udGVudFZhbHVlcyhyb3c6IGFueSk6IHtsYWJlbDogc3RyaW5nLCB2YWx1ZTogYW55fVtdIHtcclxuICAgIGNvbnN0IGNvbnRlbnRGaWVsZHMgPSB0aGlzLmNvbmZpZz8uY2FyZENvbmZpZz8uY29udGVudEZpZWxkcyB8fCBbXTtcclxuICAgIHJldHVybiBjb250ZW50RmllbGRzLm1hcChmaWVsZCA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuY29uZmlnLmNvbHVtbnMuZmluZChjb2wgPT4gY29sLm5hbWUgPT09IGZpZWxkKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsYWJlbDogY29sdW1uPy5hbGlhcyB8fCBmaWVsZCxcclxuICAgICAgICB2YWx1ZTogcm93W2ZpZWxkXVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBIYW5kbGUgYnV0dG9uIGNsaWNrIGZyb20gbWVudVxyXG4gIG9uQWN0aW9uQ2xpY2soYnV0dG9uTmFtZTogc3RyaW5nLCByb3c6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgbmFtZTogYnV0dG9uTmFtZSwgcm93IH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gR2V0IGNvbG9yIGZvciBidXR0b25cclxuICBnZXRCdXR0b25Db2xvcihidXR0b246IEJ1dHRvbiwgcm93OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuYnV0dG9uU2VydmljZS5nZXRCdXR0b25Db2xvcihidXR0b24sIHJvdyk7XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgaWNvbiBmb3IgYnV0dG9uXHJcbiAgZ2V0SWNvbihidXR0b25OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuYnV0dG9uU2VydmljZS5nZXRJY29uKHRoaXMuZ2V0QnV0dG9uKGJ1dHRvbk5hbWUpLCB0aGlzLmNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICAvLyBUZXN0IGlmIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWRcclxuICB0ZXN0RGlzYWJsZWQocm93OiBhbnksIGJ1dHRvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5nZXRCdXR0b24oYnV0dG9uTmFtZSk7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25TZXJ2aWNlLnRlc3REaXNhYmxlZChidXR0b24sIHJvdywgdGhpcy5jb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLy8gVGVzdCBpZiBidXR0b24gc2hvdWxkIGJlIHZpc2libGVcclxuICB0ZXN0VmlzaWJsZShyb3c6IGFueSwgYnV0dG9uTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbihidXR0b25OYW1lKTtcclxuICAgIHJldHVybiB0aGlzLmJ1dHRvblNlcnZpY2UudGVzdFZpc2libGUoYnV0dG9uLCByb3csIHRoaXMuY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8vIEdldCBlbGV2YXRpb24gY2xhc3MgYmFzZWQgb24gY29uZmlnXHJcbiAgZ2V0RWxldmF0aW9uQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGVsZXZhdGlvbiA9IHRoaXMuY29uZmlnPy5jYXJkQ29uZmlnPy5lbGV2YXRpb24gfHwgJ21lZGl1bSc7XHJcbiAgICBzd2l0Y2goZWxldmF0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ2xvdyc6IHJldHVybiAnbWF0LWVsZXZhdGlvbi16MSc7XHJcbiAgICAgIGNhc2UgJ2hpZ2gnOiByZXR1cm4gJ21hdC1lbGV2YXRpb24tejgnO1xyXG4gICAgICBkZWZhdWx0OiByZXR1cm4gJ21hdC1lbGV2YXRpb24tejQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gR2V0IG51bWJlciBvZiBjb2x1bW5zIGZvciBncmlkXHJcbiAgZ2V0Q29sdW1uQ291bnQoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLnNtYWxsU2NyZWVuKSByZXR1cm4gMTtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uY2FyZENvbmZpZz8uY29sdW1ucyB8fCAzO1xyXG4gIH1cclxuXHJcbiAgLy8gR2V0IGJ1dHRvbiBieSBuYW1lXHJcbiAgcHJpdmF0ZSBnZXRCdXR0b24obmFtZTogc3RyaW5nKTogQnV0dG9uIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRCdXR0b25zPy5maW5kKHggPT4geC5uYW1lID09PSBuYW1lKSB8fCBudWxsO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIiBbc3R5bGUuZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zXT1cIidyZXBlYXQoJyArIGdldENvbHVtbkNvdW50KCkgKyAnLCAxZnIpJ1wiPlxyXG4gICAgPG1hdC1jYXJkICpuZ0Zvcj1cImxldCByb3cgb2YgZGF0YVNvdXJjZVwiIFtjbGFzc109XCJnZXRFbGV2YXRpb25DbGFzcygpXCIgY2xhc3M9XCJjYXJkLWl0ZW1cIj5cclxuICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+e3tnZXRUaXRsZVZhbHVlKHJvdyl9fTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlICpuZ0lmPVwiZ2V0U3VidGl0bGVWYWx1ZShyb3cpXCI+e3tnZXRTdWJ0aXRsZVZhbHVlKHJvdyl9fTwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gIFxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1pdGVtXCIgKm5nRm9yPVwibGV0IGNvbnRlbnQgb2YgZ2V0Q29udGVudFZhbHVlcyhyb3cpXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3tjb250ZW50LmxhYmVsfX06PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7Y29udGVudC52YWx1ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgXHJcbiAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGFsaWduPVwiZW5kXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGRpc3BsYXllZEJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhY29uZmlnLmZsYXRCdXR0b25zICYmIHRlc3RWaXNpYmxlKHJvdywgYnV0dG9uLm5hbWUpXCIgXHJcbiAgICAgICAgICAgICAgICAgIG1hdC1taW5pLWZhYlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJidXR0b24udGlwID8/IGJ1dHRvbi5uYW1lIHwgdGl0bGVjYXNlXCJcclxuICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBnZXRCdXR0b25Db2xvcihidXR0b24sIHJvdyl9XCJcclxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRlc3REaXNhYmxlZChyb3csIGJ1dHRvbi5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrKGJ1dHRvbi5uYW1lLCByb3cpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj57e2dldEljb24oYnV0dG9uLm5hbWUpfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgXHJcbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29uZmlnLmZsYXRCdXR0b25zICYmIHRlc3RWaXNpYmxlKHJvdywgYnV0dG9uLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJidXR0b24udGlwID8/IGJ1dHRvbi5uYW1lIHwgdGl0bGVjYXNlXCJcclxuICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGVzdERpc2FibGVkKHJvdywgYnV0dG9uLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soYnV0dG9uLm5hbWUsIHJvdylcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIFtuZ1N0eWxlXT1cInsnY29sb3InOiBnZXRCdXR0b25Db2xvcihidXR0b24sIHJvdyl9XCI+e3tnZXRJY29uKGJ1dHRvbi5uYW1lKX19PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gIDwvZGl2PiJdfQ==
@@ -1,67 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/message.service";
4
- import * as i2 from "@angular/forms";
5
- import * as i3 from "@angular/material/checkbox";
6
- export class CheckComponent {
7
- constructor(messageService) {
8
- this.messageService = messageService;
9
- this.readonly = false;
10
- this.display = "";
11
- this.value = false;
12
- this.valueChange = new EventEmitter();
13
- this.click = new EventEmitter();
14
- this.check = new EventEmitter();
15
- this.uncheck = new EventEmitter();
16
- this.infoClick = new EventEmitter();
17
- }
18
- ngOnInit() {
19
- }
20
- changed() {
21
- this.valueChange.emit(this.value);
22
- }
23
- clicked() {
24
- this.click.emit();
25
- if (!this.value) {
26
- this.checked();
27
- }
28
- else {
29
- this.unchecked();
30
- }
31
- }
32
- checked() {
33
- this.check.emit();
34
- }
35
- unchecked() {
36
- this.uncheck.emit();
37
- }
38
- onInfoClick(event) {
39
- event.stopPropagation();
40
- this.infoClick.emit();
41
- }
42
- }
43
- CheckComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CheckComponent, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
44
- CheckComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CheckComponent, selector: "spa-check", inputs: { readonly: "readonly", display: "display", value: "value", infoMessage: "infoMessage" }, outputs: { valueChange: "valueChange", click: "click", check: "check", uncheck: "uncheck", infoClick: "infoClick" }, ngImport: i0, template: "\r\n\r\n<mat-checkbox color=\"primary\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n\r\n<!-- <div class=\"suffix-icons\">\r\n\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n\r\n <mat-icon *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\" style=\"color: steelblue;font-size: 15px;margin-left: 5px;margin-top: 8px;\">info</mat-icon>\r\n\r\n</div> -->\r\n\r\n", styles: [".suffix-icons{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CheckComponent, decorators: [{
46
- type: Component,
47
- args: [{ selector: 'spa-check', template: "\r\n\r\n<mat-checkbox color=\"primary\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n\r\n<!-- <div class=\"suffix-icons\">\r\n\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n\r\n <mat-icon *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\" style=\"color: steelblue;font-size: 15px;margin-left: 5px;margin-top: 8px;\">info</mat-icon>\r\n\r\n</div> -->\r\n\r\n", styles: [".suffix-icons{display:flex;align-items:center}\n"] }]
48
- }], ctorParameters: function () { return [{ type: i1.MessageService }]; }, propDecorators: { readonly: [{
49
- type: Input
50
- }], display: [{
51
- type: Input
52
- }], value: [{
53
- type: Input
54
- }], valueChange: [{
55
- type: Output
56
- }], click: [{
57
- type: Output
58
- }], check: [{
59
- type: Output
60
- }], uncheck: [{
61
- type: Output
62
- }], infoMessage: [{
63
- type: Input
64
- }], infoClick: [{
65
- type: Output
66
- }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2svY2hlY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2svY2hlY2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTL0UsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBS3pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDYixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHN0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFkUSxDQUFDO0lBRXhELFFBQVE7SUFDUixDQUFDO0lBYUQsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEIsSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUM7WUFDYixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7YUFBSTtZQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV4QixDQUFDOzsyR0EzQ1UsY0FBYzsrRkFBZCxjQUFjLHdRQ1QzQix3bEJBWUE7MkZESGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxXQUFXO3FHQVdaLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFFRSxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1jaGVjaycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVjay5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hlY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHVuY2hlY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIGluZm9NZXNzYWdlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGluZm9DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgY2hhbmdlZCgpe1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tlZCgpe1xyXG4gICAgdGhpcy5jbGljay5lbWl0KCk7XHJcblxyXG4gICAgaWYoIXRoaXMudmFsdWUpe1xyXG4gICAgICB0aGlzLmNoZWNrZWQoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnVuY2hlY2tlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tlZCgpe1xyXG4gICAgdGhpcy5jaGVjay5lbWl0KCk7XHJcbiAgfVxyXG4gIHVuY2hlY2tlZCgpe1xyXG4gICAgdGhpcy51bmNoZWNrLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uSW5mb0NsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuaW5mb0NsaWNrLmVtaXQoKTtcclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuXHJcbjxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChjaGFuZ2UpPVwiY2hhbmdlZCgpXCIgKGNsaWNrKT1cImNsaWNrZWQoKVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPnt7ZGlzcGxheX19PC9tYXQtY2hlY2tib3g+XHJcblxyXG48IS0tIDxkaXYgY2xhc3M9XCJzdWZmaXgtaWNvbnNcIj5cclxuXHJcbiAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJjaGFuZ2VkKClcIiAoY2xpY2spPVwiY2xpY2tlZCgpXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCI+e3tkaXNwbGF5fX08L21hdC1jaGVja2JveD5cclxuXHJcbiAgPG1hdC1pY29uICpuZ0lmPVwiaW5mb01lc3NhZ2VcIiAoY2xpY2spPVwib25JbmZvQ2xpY2soJGV2ZW50KVwiIG1hdFRvb2x0aXA9XCJJbmZvXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBzdHlsZT1cImNvbG9yOiBzdGVlbGJsdWU7Zm9udC1zaXplOiAxNXB4O21hcmdpbi1sZWZ0OiA1cHg7bWFyZ2luLXRvcDogOHB4O1wiPmluZm88L21hdC1pY29uPlxyXG5cclxuPC9kaXY+IC0tPlxyXG5cclxuIl19