tin-spa 2.13.15 → 9.0.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 (443) hide show
  1. package/README.md +2 -2
  2. package/__ivy_ngcc__/fesm2015/tin-spa.js +6813 -0
  3. package/__ivy_ngcc__/fesm2015/tin-spa.js.map +1 -0
  4. package/bundles/tin-spa.umd.js +3867 -0
  5. package/bundles/tin-spa.umd.js.map +1 -0
  6. package/bundles/tin-spa.umd.min.js +16 -0
  7. package/bundles/tin-spa.umd.min.js.map +1 -0
  8. package/esm2015/lib/classes/Classes.js +241 -0
  9. package/esm2015/lib/components/activity/activity.component.js +26 -0
  10. package/esm2015/lib/components/attach/attach.component.js +107 -0
  11. package/esm2015/lib/components/change-password/change-password.component.js +91 -0
  12. package/esm2015/lib/components/check/check.component.js +63 -0
  13. package/esm2015/lib/components/chips/chips.component.js +67 -0
  14. package/esm2015/lib/components/create-account/create-account.component.js +78 -0
  15. package/esm2015/lib/components/date/date.component.js +45 -0
  16. package/esm2015/lib/components/datetime/datetime.component.js +44 -0
  17. package/esm2015/lib/components/html/html.component.js +97 -0
  18. package/esm2015/lib/components/label/label.component.js +29 -0
  19. package/esm2015/lib/components/loader/loader.component.js +30 -0
  20. package/esm2015/lib/components/login/login.component.js +122 -0
  21. package/esm2015/lib/components/logs/logs.component.js +43 -0
  22. package/esm2015/lib/components/message/messageDialog.component.js +31 -0
  23. package/esm2015/lib/components/money/money.component.js +50 -0
  24. package/esm2015/lib/components/nav-menu/nav-menu.component.js +51 -0
  25. package/esm2015/lib/components/option/option.component.js +62 -0
  26. package/esm2015/lib/components/profile/profile.component.js +108 -0
  27. package/esm2015/lib/components/profiles/profiles.component.js +16 -0
  28. package/esm2015/lib/components/recover-account/recover-account.component.js +52 -0
  29. package/esm2015/lib/components/roles/addRoleDialog.component.js +59 -0
  30. package/esm2015/lib/components/roles/editRoleDialog.component.js +57 -0
  31. package/esm2015/lib/components/roles/roles.component.js +131 -0
  32. package/esm2015/lib/components/roles/viewRoleDialog.component.js +38 -0
  33. package/esm2015/lib/components/select/select.component.js +73 -0
  34. package/esm2015/lib/components/settings/settings.component.js +63 -0
  35. package/esm2015/lib/components/signup/signup.component.js +56 -0
  36. package/esm2015/lib/components/steps/steps.component.js +98 -0
  37. package/esm2015/lib/components/table/table.component.js +109 -0
  38. package/esm2015/lib/components/text/text.component.js +165 -0
  39. package/esm2015/lib/components/tiles/tiles.component.js +41 -0
  40. package/esm2015/lib/components/timeout/timeout.component.js +90 -0
  41. package/esm2015/lib/components/tin-spa.component.js +19 -0
  42. package/esm2015/lib/components/users/addUserDialog.component.js +53 -0
  43. package/esm2015/lib/components/users/editUserDialog.component.js +96 -0
  44. package/esm2015/lib/components/users/users.component.js +130 -0
  45. package/esm2015/lib/components/viewer/viewer.component.js +67 -0
  46. package/esm2015/lib/components/viewer/viewerDialog.component.js +76 -0
  47. package/esm2015/lib/dnd.directive.js +51 -0
  48. package/esm2015/lib/modules/spa-admin.module.js +67 -0
  49. package/esm2015/lib/modules/spa-index.module.js +33 -0
  50. package/esm2015/lib/modules/spa-mat.module.js +53 -0
  51. package/esm2015/lib/modules/spa-user.module.js +31 -0
  52. package/esm2015/lib/services/auth.service.js +153 -0
  53. package/esm2015/lib/services/data.service.js +78 -0
  54. package/esm2015/lib/services/export.service.js +29 -0
  55. package/esm2015/lib/services/loader-interceptor.service.js +77 -0
  56. package/esm2015/lib/services/loader.service.js +17 -0
  57. package/esm2015/lib/services/log.service.js +76 -0
  58. package/esm2015/lib/services/message.service.js +58 -0
  59. package/esm2015/lib/services/storage.service.js +42 -0
  60. package/esm2015/lib/services/tin-spa.service.js +14 -0
  61. package/esm2015/lib/tin-spa.module.js +91 -0
  62. package/esm2015/public-api.js +58 -0
  63. package/esm2015/tin-spa.js +9 -0
  64. package/esm5/lib/classes/Classes.js +298 -0
  65. package/esm5/lib/components/activity/activity.component.js +27 -0
  66. package/esm5/lib/components/attach/attach.component.js +119 -0
  67. package/esm5/lib/components/change-password/change-password.component.js +93 -0
  68. package/esm5/lib/components/check/check.component.js +64 -0
  69. package/esm5/lib/components/chips/chips.component.js +69 -0
  70. package/esm5/lib/components/create-account/create-account.component.js +80 -0
  71. package/esm5/lib/components/date/date.component.js +46 -0
  72. package/esm5/lib/components/datetime/datetime.component.js +45 -0
  73. package/esm5/lib/components/html/html.component.js +98 -0
  74. package/esm5/lib/components/label/label.component.js +30 -0
  75. package/esm5/lib/components/loader/loader.component.js +32 -0
  76. package/esm5/lib/components/login/login.component.js +125 -0
  77. package/esm5/lib/components/logs/logs.component.js +45 -0
  78. package/esm5/lib/components/message/messageDialog.component.js +32 -0
  79. package/esm5/lib/components/money/money.component.js +51 -0
  80. package/esm5/lib/components/nav-menu/nav-menu.component.js +53 -0
  81. package/esm5/lib/components/option/option.component.js +63 -0
  82. package/esm5/lib/components/profile/profile.component.js +112 -0
  83. package/esm5/lib/components/profiles/profiles.component.js +18 -0
  84. package/esm5/lib/components/recover-account/recover-account.component.js +54 -0
  85. package/esm5/lib/components/roles/addRoleDialog.component.js +61 -0
  86. package/esm5/lib/components/roles/editRoleDialog.component.js +59 -0
  87. package/esm5/lib/components/roles/roles.component.js +138 -0
  88. package/esm5/lib/components/roles/viewRoleDialog.component.js +39 -0
  89. package/esm5/lib/components/select/select.component.js +75 -0
  90. package/esm5/lib/components/settings/settings.component.js +66 -0
  91. package/esm5/lib/components/signup/signup.component.js +58 -0
  92. package/esm5/lib/components/steps/steps.component.js +110 -0
  93. package/esm5/lib/components/table/table.component.js +111 -0
  94. package/esm5/lib/components/text/text.component.js +168 -0
  95. package/esm5/lib/components/tiles/tiles.component.js +42 -0
  96. package/esm5/lib/components/timeout/timeout.component.js +92 -0
  97. package/esm5/lib/components/tin-spa.component.js +17 -0
  98. package/esm5/lib/components/users/addUserDialog.component.js +55 -0
  99. package/esm5/lib/components/users/editUserDialog.component.js +99 -0
  100. package/esm5/lib/components/users/users.component.js +135 -0
  101. package/esm5/lib/components/viewer/viewer.component.js +68 -0
  102. package/esm5/lib/components/viewer/viewerDialog.component.js +77 -0
  103. package/esm5/lib/dnd.directive.js +52 -0
  104. package/esm5/lib/modules/spa-admin.module.js +70 -0
  105. package/esm5/lib/modules/spa-index.module.js +36 -0
  106. package/esm5/lib/modules/spa-mat.module.js +56 -0
  107. package/esm5/lib/modules/spa-user.module.js +34 -0
  108. package/esm5/lib/services/auth.service.js +155 -0
  109. package/esm5/lib/services/data.service.js +79 -0
  110. package/esm5/lib/services/export.service.js +30 -0
  111. package/esm5/lib/services/loader-interceptor.service.js +79 -0
  112. package/esm5/lib/services/loader.service.js +18 -0
  113. package/esm5/lib/services/log.service.js +112 -0
  114. package/esm5/lib/services/message.service.js +59 -0
  115. package/esm5/lib/services/storage.service.js +74 -0
  116. package/esm5/lib/services/tin-spa.service.js +16 -0
  117. package/esm5/lib/tin-spa.module.js +94 -0
  118. package/esm5/public-api.js +58 -0
  119. package/esm5/tin-spa.js +9 -0
  120. package/fesm2015/tin-spa.js +3398 -0
  121. package/fesm2015/tin-spa.js.map +1 -0
  122. package/fesm5/tin-spa.js +3623 -0
  123. package/fesm5/tin-spa.js.map +1 -0
  124. package/lib/classes/Classes.d.ts +216 -375
  125. package/lib/components/activity/activity.component.d.ts +5 -3
  126. package/lib/components/activity/activity.component.d.ts.__ivy_ngcc_bak +8 -0
  127. package/lib/components/attach/attach.component.d.ts +30 -16
  128. package/lib/components/attach/attach.component.d.ts.__ivy_ngcc_bak +39 -0
  129. package/lib/components/change-password/change-password.component.d.ts +25 -0
  130. package/lib/components/change-password/change-password.component.d.ts.__ivy_ngcc_bak +20 -0
  131. package/lib/components/check/check.component.d.ts +6 -9
  132. package/lib/components/check/check.component.d.ts.__ivy_ngcc_bak +16 -0
  133. package/lib/components/chips/chips.component.d.ts +5 -3
  134. package/lib/components/chips/chips.component.d.ts.__ivy_ngcc_bak +15 -0
  135. package/lib/components/create-account/create-account.component.d.ts +30 -0
  136. package/lib/components/create-account/create-account.component.d.ts.__ivy_ngcc_bak +25 -0
  137. package/lib/components/date/date.component.d.ts +15 -26
  138. package/lib/components/date/date.component.d.ts.__ivy_ngcc_bak +13 -0
  139. package/lib/components/datetime/datetime.component.d.ts +5 -7
  140. package/lib/components/datetime/datetime.component.d.ts.__ivy_ngcc_bak +12 -0
  141. package/lib/components/html/html.component.d.ts +13 -12
  142. package/lib/components/html/html.component.d.ts.__ivy_ngcc_bak +12 -0
  143. package/lib/components/label/label.component.d.ts +5 -5
  144. package/lib/components/label/label.component.d.ts.__ivy_ngcc_bak +8 -0
  145. package/lib/components/loader/loader.component.d.ts +5 -3
  146. package/lib/components/loader/loader.component.d.ts.__ivy_ngcc_bak +9 -0
  147. package/lib/components/login/login.component.d.ts +34 -0
  148. package/lib/components/login/login.component.d.ts.__ivy_ngcc_bak +29 -0
  149. package/lib/components/logs/logs.component.d.ts +22 -0
  150. package/lib/components/logs/logs.component.d.ts.__ivy_ngcc_bak +17 -0
  151. package/lib/components/message/messageDialog.component.d.ts +5 -3
  152. package/lib/components/message/messageDialog.component.d.ts.__ivy_ngcc_bak +12 -0
  153. package/lib/components/money/money.component.d.ts +8 -29
  154. package/lib/components/money/money.component.d.ts.__ivy_ngcc_bak +14 -0
  155. package/lib/components/nav-menu/nav-menu.component.d.ts +7 -23
  156. package/lib/components/nav-menu/nav-menu.component.d.ts.__ivy_ngcc_bak +17 -0
  157. package/lib/components/option/option.component.d.ts +6 -16
  158. package/lib/components/option/option.component.d.ts.__ivy_ngcc_bak +17 -0
  159. package/lib/components/profile/profile.component.d.ts +35 -0
  160. package/lib/components/profile/profile.component.d.ts.__ivy_ngcc_bak +30 -0
  161. package/lib/components/profiles/profiles.component.d.ts +10 -0
  162. package/lib/components/profiles/profiles.component.d.ts.__ivy_ngcc_bak +5 -0
  163. package/lib/components/recover-account/recover-account.component.d.ts +20 -0
  164. package/lib/components/recover-account/recover-account.component.d.ts.__ivy_ngcc_bak +15 -0
  165. package/lib/components/roles/addRoleDialog.component.d.ts +24 -0
  166. package/lib/components/roles/addRoleDialog.component.d.ts.__ivy_ngcc_bak +19 -0
  167. package/lib/components/roles/editRoleDialog.component.d.ts +24 -0
  168. package/lib/components/roles/editRoleDialog.component.d.ts.__ivy_ngcc_bak +19 -0
  169. package/lib/components/roles/roles.component.d.ts +34 -0
  170. package/lib/components/roles/roles.component.d.ts.__ivy_ngcc_bak +29 -0
  171. package/lib/components/roles/viewRoleDialog.component.d.ts +20 -0
  172. package/lib/components/roles/viewRoleDialog.component.d.ts.__ivy_ngcc_bak +15 -0
  173. package/lib/components/select/select.component.d.ts +23 -21
  174. package/lib/components/select/select.component.d.ts.__ivy_ngcc_bak +20 -0
  175. package/lib/components/settings/settings.component.d.ts +21 -0
  176. package/lib/{pages/settings/settings.component.d.ts → components/settings/settings.component.d.ts.__ivy_ngcc_bak} +2 -5
  177. package/lib/components/signup/signup.component.d.ts +25 -0
  178. package/lib/{pages/signup/signup.component.d.ts → components/signup/signup.component.d.ts.__ivy_ngcc_bak} +4 -7
  179. package/lib/components/steps/steps.component.d.ts +13 -20
  180. package/lib/components/steps/steps.component.d.ts.__ivy_ngcc_bak +15 -0
  181. package/lib/components/table/table.component.d.ts +24 -85
  182. package/lib/components/table/table.component.d.ts.__ivy_ngcc_bak +25 -0
  183. package/lib/components/text/text.component.d.ts +17 -38
  184. package/lib/components/text/text.component.d.ts.__ivy_ngcc_bak +37 -0
  185. package/lib/components/tiles/tiles.component.d.ts +10 -22
  186. package/lib/components/tiles/tiles.component.d.ts.__ivy_ngcc_bak +11 -0
  187. package/lib/components/timeout/timeout.component.d.ts +26 -0
  188. package/lib/components/timeout/timeout.component.d.ts.__ivy_ngcc_bak +21 -0
  189. package/lib/components/tin-spa.component.d.ts +9 -4
  190. package/lib/components/tin-spa.component.d.ts.__ivy_ngcc_bak +5 -0
  191. package/lib/components/users/addUserDialog.component.d.ts +21 -0
  192. package/lib/components/users/addUserDialog.component.d.ts.__ivy_ngcc_bak +16 -0
  193. package/lib/components/users/editUserDialog.component.d.ts +32 -0
  194. package/lib/components/users/editUserDialog.component.d.ts.__ivy_ngcc_bak +27 -0
  195. package/lib/components/users/users.component.d.ts +40 -0
  196. package/lib/components/users/users.component.d.ts.__ivy_ngcc_bak +35 -0
  197. package/lib/components/viewer/viewer.component.d.ts +8 -12
  198. package/lib/components/viewer/viewer.component.d.ts.__ivy_ngcc_bak +16 -0
  199. package/lib/components/viewer/viewerDialog.component.d.ts +8 -8
  200. package/lib/components/viewer/viewerDialog.component.d.ts.__ivy_ngcc_bak +19 -0
  201. package/lib/dnd.directive.d.ts +13 -0
  202. package/lib/dnd.directive.d.ts.__ivy_ngcc_bak +8 -0
  203. package/lib/modules/spa-admin.module.d.ts +19 -13
  204. package/lib/modules/spa-admin.module.d.ts.__ivy_ngcc_bak +2 -0
  205. package/lib/modules/spa-index.module.d.ts +11 -11
  206. package/lib/modules/spa-index.module.d.ts.__ivy_ngcc_bak +2 -0
  207. package/lib/modules/spa-mat.module.d.ts +32 -36
  208. package/lib/modules/spa-mat.module.d.ts.__ivy_ngcc_bak +2 -0
  209. package/lib/modules/spa-user.module.d.ts +10 -9
  210. package/lib/modules/spa-user.module.d.ts.__ivy_ngcc_bak +2 -0
  211. package/lib/services/auth.service.d.ts +15 -27
  212. package/lib/services/auth.service.d.ts.__ivy_ngcc_bak +45 -0
  213. package/lib/services/data.service.d.ts +27 -0
  214. package/lib/services/data.service.d.ts.__ivy_ngcc_bak +23 -0
  215. package/lib/services/export.service.d.ts +8 -3
  216. package/lib/services/export.service.d.ts.__ivy_ngcc_bak +7 -0
  217. package/lib/services/loader-interceptor.service.d.ts +6 -5
  218. package/lib/services/loader-interceptor.service.d.ts.__ivy_ngcc_bak +18 -0
  219. package/lib/services/loader.service.d.ts +4 -3
  220. package/lib/services/loader.service.d.ts.__ivy_ngcc_bak +5 -0
  221. package/lib/services/log.service.d.ts +5 -4
  222. package/lib/services/log.service.d.ts.__ivy_ngcc_bak +16 -0
  223. package/lib/services/message.service.d.ts +5 -5
  224. package/lib/services/message.service.d.ts.__ivy_ngcc_bak +12 -0
  225. package/lib/services/storage.service.d.ts +4 -3
  226. package/lib/services/storage.service.d.ts.__ivy_ngcc_bak +7 -0
  227. package/lib/services/tin-spa.service.d.ts +4 -3
  228. package/lib/services/tin-spa.service.d.ts.__ivy_ngcc_bak +3 -0
  229. package/lib/tin-spa.module.d.ts +35 -84
  230. package/lib/tin-spa.module.d.ts.__ivy_ngcc_bak +2 -0
  231. package/package.json +23 -23
  232. package/public-api.d.ts +21 -50
  233. package/tin-spa.d.ts +10 -0
  234. package/tin-spa.d.ts.__ivy_ngcc_bak +8 -0
  235. package/tin-spa.metadata.json +1 -0
  236. package/esm2020/lib/classes/Classes.mjs +0 -112
  237. package/esm2020/lib/classes/LibClasses.mjs +0 -180
  238. package/esm2020/lib/classes/TinCore.mjs +0 -568
  239. package/esm2020/lib/components/activity/activity.component.mjs +0 -24
  240. package/esm2020/lib/components/alert/alert.component.mjs +0 -43
  241. package/esm2020/lib/components/attach/attach.component.mjs +0 -102
  242. package/esm2020/lib/components/capsules/capsules.component.mjs +0 -63
  243. package/esm2020/lib/components/cards/cards.component.mjs +0 -103
  244. package/esm2020/lib/components/check/check.component.mjs +0 -67
  245. package/esm2020/lib/components/chips/chips.component.mjs +0 -58
  246. package/esm2020/lib/components/date/date.component.mjs +0 -103
  247. package/esm2020/lib/components/datetime/datetime.component.mjs +0 -55
  248. package/esm2020/lib/components/email/email.component.mjs +0 -133
  249. package/esm2020/lib/components/filter/filter.component.mjs +0 -58
  250. package/esm2020/lib/components/form/form.component.mjs +0 -296
  251. package/esm2020/lib/components/html/html.component.mjs +0 -34
  252. package/esm2020/lib/components/label/label.component.mjs +0 -31
  253. package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +0 -68
  254. package/esm2020/lib/components/loader/loader.component.mjs +0 -25
  255. package/esm2020/lib/components/message/messageDialog.component.mjs +0 -33
  256. package/esm2020/lib/components/money/currency-input-mask.directive.mjs +0 -185
  257. package/esm2020/lib/components/money/currency-input-mask.module.mjs +0 -28
  258. package/esm2020/lib/components/money/money.component.mjs +0 -137
  259. package/esm2020/lib/components/multi-select/multi-select.component.mjs +0 -165
  260. package/esm2020/lib/components/multi-text/multi-text.component.mjs +0 -208
  261. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +0 -88
  262. package/esm2020/lib/components/notes/notes.component.mjs +0 -62
  263. package/esm2020/lib/components/number/number.component.mjs +0 -131
  264. package/esm2020/lib/components/option/option.component.mjs +0 -92
  265. package/esm2020/lib/components/page/page.component.mjs +0 -101
  266. package/esm2020/lib/components/search/search.component.mjs +0 -36
  267. package/esm2020/lib/components/select/select.component.mjs +0 -75
  268. package/esm2020/lib/components/select-bitwise/select-bitwise.component.mjs +0 -87
  269. package/esm2020/lib/components/select-common/select-common.component.mjs +0 -206
  270. package/esm2020/lib/components/select-internal/select-internal.component.mjs +0 -75
  271. package/esm2020/lib/components/select-lite/select-lite.component.mjs +0 -18
  272. package/esm2020/lib/components/statuses/statuses.component.mjs +0 -44
  273. package/esm2020/lib/components/steps/steps.component.mjs +0 -112
  274. package/esm2020/lib/components/suffix/suffix.component.mjs +0 -70
  275. package/esm2020/lib/components/table/detailsDialog.component.mjs +0 -406
  276. package/esm2020/lib/components/table/table.component.mjs +0 -440
  277. package/esm2020/lib/components/table-action/table-action.component.mjs +0 -80
  278. package/esm2020/lib/components/table-header/table-header.component.mjs +0 -148
  279. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +0 -406
  280. package/esm2020/lib/components/table-internal/table-internal.component.mjs +0 -441
  281. package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +0 -404
  282. package/esm2020/lib/components/table-lite/table-lite.component.mjs +0 -441
  283. package/esm2020/lib/components/table-row/table-row.component.mjs +0 -93
  284. package/esm2020/lib/components/tabs/tabs.component.mjs +0 -74
  285. package/esm2020/lib/components/text/text.component.mjs +0 -255
  286. package/esm2020/lib/components/tiles/tiles.component.mjs +0 -99
  287. package/esm2020/lib/components/tin-spa.component.mjs +0 -19
  288. package/esm2020/lib/components/viewer/viewer.component.mjs +0 -83
  289. package/esm2020/lib/components/viewer/viewerDialog.component.mjs +0 -95
  290. package/esm2020/lib/modules/admin/admin-routing.module.mjs +0 -71
  291. package/esm2020/lib/modules/admin/admin.module.mjs +0 -26
  292. package/esm2020/lib/modules/index/index-routing.module.mjs +0 -27
  293. package/esm2020/lib/modules/index/index.module.mjs +0 -26
  294. package/esm2020/lib/modules/spa-admin.module.mjs +0 -71
  295. package/esm2020/lib/modules/spa-index.module.mjs +0 -54
  296. package/esm2020/lib/modules/spa-mat.module.mjs +0 -84
  297. package/esm2020/lib/modules/spa-user.module.mjs +0 -47
  298. package/esm2020/lib/modules/user/user-routing.module.mjs +0 -23
  299. package/esm2020/lib/modules/user/user.module.mjs +0 -26
  300. package/esm2020/lib/pages/accounts/accountDialog.component.mjs +0 -56
  301. package/esm2020/lib/pages/accounts/accounts.component.mjs +0 -70
  302. package/esm2020/lib/pages/app-models/app-models.component.mjs +0 -56
  303. package/esm2020/lib/pages/approvals/approvals.component.mjs +0 -19
  304. package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +0 -165
  305. package/esm2020/lib/pages/bug/bug.component.mjs +0 -14
  306. package/esm2020/lib/pages/change-password/change-password.component.mjs +0 -92
  307. package/esm2020/lib/pages/create-account/create-account.component.mjs +0 -110
  308. package/esm2020/lib/pages/customers/customers.component.mjs +0 -21
  309. package/esm2020/lib/pages/departments/departments.component.mjs +0 -22
  310. package/esm2020/lib/pages/employees/employees.component.mjs +0 -20
  311. package/esm2020/lib/pages/grades/grades.component.mjs +0 -14
  312. package/esm2020/lib/pages/inventory/inventory.component.mjs +0 -99
  313. package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +0 -53
  314. package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +0 -71
  315. package/esm2020/lib/pages/login/login.component.mjs +0 -166
  316. package/esm2020/lib/pages/logs/logs.component.mjs +0 -42
  317. package/esm2020/lib/pages/membership/membership.component.mjs +0 -44
  318. package/esm2020/lib/pages/notifications/notifications.component.mjs +0 -90
  319. package/esm2020/lib/pages/notifications-config/notifications-config.component.mjs +0 -113
  320. package/esm2020/lib/pages/plans/plans.component.mjs +0 -44
  321. package/esm2020/lib/pages/positions/positions.component.mjs +0 -21
  322. package/esm2020/lib/pages/profile/profile.component.mjs +0 -94
  323. package/esm2020/lib/pages/recover-account/recover-account.component.mjs +0 -46
  324. package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +0 -60
  325. package/esm2020/lib/pages/roles/roles.component.mjs +0 -151
  326. package/esm2020/lib/pages/settings/settings.component.mjs +0 -54
  327. package/esm2020/lib/pages/signup/signup.component.mjs +0 -50
  328. package/esm2020/lib/pages/suppliers/suppliers.component.mjs +0 -22
  329. package/esm2020/lib/pages/tasks/tasks.component.mjs +0 -86
  330. package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +0 -228
  331. package/esm2020/lib/pages/tenants/tenants.component.mjs +0 -47
  332. package/esm2020/lib/pages/transactions/transactDialog.component.mjs +0 -80
  333. package/esm2020/lib/pages/transactions/transactions.component.mjs +0 -101
  334. package/esm2020/lib/pages/users/users.component.mjs +0 -167
  335. package/esm2020/lib/pages/welcome/welcome.component.mjs +0 -86
  336. package/esm2020/lib/pipes/camelToWords.pipe.mjs +0 -17
  337. package/esm2020/lib/select-context.directive.mjs +0 -23
  338. package/esm2020/lib/services/auth.service.mjs +0 -175
  339. package/esm2020/lib/services/button.service.mjs +0 -162
  340. package/esm2020/lib/services/condition.service.mjs +0 -32
  341. package/esm2020/lib/services/csv.service.mjs +0 -49
  342. package/esm2020/lib/services/datalib.service.mjs +0 -860
  343. package/esm2020/lib/services/dialog.service.mjs +0 -125
  344. package/esm2020/lib/services/export.service.mjs +0 -16
  345. package/esm2020/lib/services/http.service.mjs +0 -79
  346. package/esm2020/lib/services/loader-interceptor.service.mjs +0 -86
  347. package/esm2020/lib/services/loader.service.mjs +0 -17
  348. package/esm2020/lib/services/log.service.mjs +0 -77
  349. package/esm2020/lib/services/message.service.mjs +0 -59
  350. package/esm2020/lib/services/notifications.service.mjs +0 -33
  351. package/esm2020/lib/services/storage.service.mjs +0 -34
  352. package/esm2020/lib/services/table-config.service.mjs +0 -78
  353. package/esm2020/lib/services/tin-spa.service.mjs +0 -14
  354. package/esm2020/lib/tin-spa.module.mjs +0 -225
  355. package/esm2020/public-api.mjs +0 -90
  356. package/esm2020/tin-spa.mjs +0 -5
  357. package/fesm2015/tin-spa.mjs +0 -11736
  358. package/fesm2015/tin-spa.mjs.map +0 -1
  359. package/fesm2020/tin-spa.mjs +0 -11738
  360. package/fesm2020/tin-spa.mjs.map +0 -1
  361. package/index.d.ts +0 -5
  362. package/lib/classes/LibClasses.d.ts +0 -173
  363. package/lib/classes/TinCore.d.ts +0 -59
  364. package/lib/components/alert/alert.component.d.ts +0 -15
  365. package/lib/components/capsules/capsules.component.d.ts +0 -26
  366. package/lib/components/cards/cards.component.d.ts +0 -39
  367. package/lib/components/email/email.component.d.ts +0 -40
  368. package/lib/components/filter/filter.component.d.ts +0 -20
  369. package/lib/components/form/form.component.d.ts +0 -47
  370. package/lib/components/list-dialog/list-dialog.component.d.ts +0 -23
  371. package/lib/components/money/currency-input-mask.directive.d.ts +0 -41
  372. package/lib/components/money/currency-input-mask.module.d.ts +0 -9
  373. package/lib/components/multi-select/multi-select.component.d.ts +0 -47
  374. package/lib/components/multi-text/multi-text.component.d.ts +0 -56
  375. package/lib/components/notes/notes.component.d.ts +0 -19
  376. package/lib/components/number/number.component.d.ts +0 -41
  377. package/lib/components/page/page.component.d.ts +0 -38
  378. package/lib/components/search/search.component.d.ts +0 -15
  379. package/lib/components/select-bitwise/select-bitwise.component.d.ts +0 -31
  380. package/lib/components/select-common/select-common.component.d.ts +0 -53
  381. package/lib/components/select-internal/select-internal.component.d.ts +0 -23
  382. package/lib/components/select-lite/select-lite.component.d.ts +0 -8
  383. package/lib/components/statuses/statuses.component.d.ts +0 -12
  384. package/lib/components/suffix/suffix.component.d.ts +0 -23
  385. package/lib/components/table/detailsDialog.component.d.ts +0 -86
  386. package/lib/components/table-action/table-action.component.d.ts +0 -25
  387. package/lib/components/table-header/table-header.component.d.ts +0 -46
  388. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +0 -86
  389. package/lib/components/table-internal/table-internal.component.d.ts +0 -91
  390. package/lib/components/table-lite/detailsDialog-lite.component.d.ts +0 -86
  391. package/lib/components/table-lite/table-lite.component.d.ts +0 -91
  392. package/lib/components/table-row/table-row.component.d.ts +0 -31
  393. package/lib/components/tabs/tabs.component.d.ts +0 -32
  394. package/lib/modules/admin/admin-routing.module.d.ts +0 -7
  395. package/lib/modules/admin/admin.module.d.ts +0 -9
  396. package/lib/modules/index/index-routing.module.d.ts +0 -7
  397. package/lib/modules/index/index.module.d.ts +0 -9
  398. package/lib/modules/user/user-routing.module.d.ts +0 -7
  399. package/lib/modules/user/user.module.d.ts +0 -9
  400. package/lib/pages/accounts/accountDialog.component.d.ts +0 -27
  401. package/lib/pages/accounts/accounts.component.d.ts +0 -25
  402. package/lib/pages/app-models/app-models.component.d.ts +0 -15
  403. package/lib/pages/approvals/approvals.component.d.ts +0 -10
  404. package/lib/pages/approvals-config/approvals-config.component.d.ts +0 -24
  405. package/lib/pages/bug/bug.component.d.ts +0 -8
  406. package/lib/pages/change-password/change-password.component.d.ts +0 -27
  407. package/lib/pages/create-account/create-account.component.d.ts +0 -34
  408. package/lib/pages/customers/customers.component.d.ts +0 -12
  409. package/lib/pages/departments/departments.component.d.ts +0 -14
  410. package/lib/pages/employees/employees.component.d.ts +0 -12
  411. package/lib/pages/grades/grades.component.d.ts +0 -8
  412. package/lib/pages/inventory/inventory.component.d.ts +0 -25
  413. package/lib/pages/inventory/quantityDialog.component.d.ts +0 -23
  414. package/lib/pages/invitations-table/invitations-table.component.d.ts +0 -19
  415. package/lib/pages/login/login.component.d.ts +0 -46
  416. package/lib/pages/logs/logs.component.d.ts +0 -14
  417. package/lib/pages/membership/membership.component.d.ts +0 -13
  418. package/lib/pages/notifications/notifications.component.d.ts +0 -16
  419. package/lib/pages/notifications-config/notifications-config.component.d.ts +0 -17
  420. package/lib/pages/plans/plans.component.d.ts +0 -13
  421. package/lib/pages/positions/positions.component.d.ts +0 -12
  422. package/lib/pages/profile/profile.component.d.ts +0 -35
  423. package/lib/pages/recover-account/recover-account.component.d.ts +0 -18
  424. package/lib/pages/roles/addRoleDialog.component.d.ts +0 -24
  425. package/lib/pages/roles/roles.component.d.ts +0 -42
  426. package/lib/pages/suppliers/suppliers.component.d.ts +0 -14
  427. package/lib/pages/tasks/tasks.component.d.ts +0 -27
  428. package/lib/pages/tenant-settings/tenant-settings.component.d.ts +0 -47
  429. package/lib/pages/tenants/tenants.component.d.ts +0 -17
  430. package/lib/pages/transactions/transactDialog.component.d.ts +0 -26
  431. package/lib/pages/transactions/transactions.component.d.ts +0 -31
  432. package/lib/pages/users/users.component.d.ts +0 -28
  433. package/lib/pages/welcome/welcome.component.d.ts +0 -25
  434. package/lib/pipes/camelToWords.pipe.d.ts +0 -7
  435. package/lib/select-context.directive.d.ts +0 -10
  436. package/lib/services/button.service.d.ts +0 -30
  437. package/lib/services/condition.service.d.ts +0 -10
  438. package/lib/services/csv.service.d.ts +0 -10
  439. package/lib/services/datalib.service.d.ts +0 -125
  440. package/lib/services/dialog.service.d.ts +0 -20
  441. package/lib/services/http.service.d.ts +0 -22
  442. package/lib/services/notifications.service.d.ts +0 -12
  443. package/lib/services/table-config.service.d.ts +0 -17
@@ -1,175 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { Constants } from '../classes/Classes';
4
- import { Role } from '../classes/LibClasses';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/router";
7
- import * as i2 from "@abacritt/angularx-social-login";
8
- import * as i3 from "./storage.service";
9
- import * as i4 from "./http.service";
10
- import * as i5 from "./message.service";
11
- import * as i6 from "./log.service";
12
- export class AuthService {
13
- constructor(_route, socialService, storage, router, httpService, messageService, logService) {
14
- this._route = _route;
15
- this.socialService = socialService;
16
- this.storage = storage;
17
- this.router = router;
18
- this.httpService = httpService;
19
- this.messageService = messageService;
20
- this.logService = logService;
21
- //Logged in
22
- this.loggedin = false;
23
- this.loggedinSource = new BehaviorSubject(this.loggedin);
24
- this.loggedinObserv = this.loggedinSource.asObservable();
25
- //autoLogin
26
- this.autoLogin = false;
27
- this.autoLoginSource = new BehaviorSubject(this.autoLogin);
28
- this.autoLoginObserv = this.autoLoginSource.asObservable();
29
- //Token
30
- this.token = "";
31
- this.tokenSource = new BehaviorSubject(this.token);
32
- this.tokenObserv = this.tokenSource.asObservable();
33
- //TokenExpire
34
- this.tokenExpire = "";
35
- this.tokenExpireSource = new BehaviorSubject(this.tokenExpire);
36
- this.tokenExpireObserv = this.tokenExpireSource.asObservable();
37
- //Current User
38
- this.currentUser = "tnyagato";
39
- this.currentUserSource = new BehaviorSubject(this.currentUser);
40
- this.currentUserObserv = this.currentUserSource.asObservable();
41
- //Line Manager
42
- this.islineManager = false;
43
- this.isLineManagerSource = new BehaviorSubject(this.islineManager);
44
- this.isLineManagerObserv = this.isLineManagerSource.asObservable();
45
- //Roles
46
- this.currentRole = new Role;
47
- this.currentRoleSource = new BehaviorSubject(this.currentRole);
48
- this.myRoleObserv = this.currentRoleSource.asObservable();
49
- //Logged in FirstName
50
- this.loggedUserSource = new BehaviorSubject("tnyagato");
51
- this.loggedUserFullName = this.loggedUserSource.asObservable();
52
- //TenantName
53
- this.tenantNameSource = new BehaviorSubject("Tenant Name");
54
- this.tenantNameObserv = this.tenantNameSource.asObservable();
55
- }
56
- clearSession() {
57
- this.Updateloggedin(false);
58
- this.UpdateAutoLogin(false);
59
- this.UpdateRole(new Role());
60
- this.storage.clear();
61
- this.socialService.signOut();
62
- }
63
- sessionExpired() {
64
- this.clearSession();
65
- let url = new URL(window.location.href);
66
- let path = url.hash.replace("#/", "");
67
- this.router.navigate(["login"], {
68
- relativeTo: this._route,
69
- queryParams: { redirectTo: path },
70
- queryParamsHandling: 'merge',
71
- skipLocationChange: false
72
- });
73
- }
74
- logoff() {
75
- this.clearSession();
76
- this.router.navigate(["login"]);
77
- }
78
- Updateloggedin(loggedin) {
79
- this.loggedinSource.next(loggedin);
80
- this.loggedin = loggedin;
81
- }
82
- UpdateAutoLogin(autoLogin) {
83
- this.autoLoginSource.next(autoLogin);
84
- this.autoLogin = autoLogin;
85
- }
86
- UpdateToken(newToken) {
87
- this.tokenSource.next(newToken);
88
- }
89
- UpdateTokenExpire(newTokenExpire) {
90
- this.tokenExpireSource.next(newTokenExpire);
91
- }
92
- UpdateCurrentUser(newUser) {
93
- this.currentUserSource.next(newUser.toLocaleLowerCase());
94
- this.currentUser = newUser.toLocaleLowerCase();
95
- }
96
- UpdateIsLineManager(manager) {
97
- this.isLineManagerSource.next(manager);
98
- }
99
- UpdateRole(role) {
100
- this.currentRoleSource.next(role);
101
- }
102
- updateLoggedUserFullName(userName) {
103
- this.loggedUserSource.next(userName);
104
- }
105
- updateTenantName(tenantName) {
106
- this.tenantNameSource.next(tenantName);
107
- }
108
- //Authorisation
109
- isAuthorised(capName) {
110
- if (!this.currentRoleSource.value[capName]) {
111
- // this.logService.info(`authorise: ${this.currentRoleSource.value.roleName} not authorised for ${capName}`);
112
- this.router.navigate(["home"]);
113
- this.messageService.toast(`Unauthorised: ${capName}`);
114
- return false;
115
- }
116
- else {
117
- return true;
118
- }
119
- }
120
- isValidToken() {
121
- let tokenExpire = new Date(this.tokenExpireSource.value);
122
- let nowDate = new Date();
123
- let valid = tokenExpire > nowDate;
124
- if (!valid) {
125
- this.sessionExpired();
126
- this.messageService.toast(`Expired Session`);
127
- }
128
- return valid;
129
- }
130
- canActivate() {
131
- if (this.loggedin && this.isValidToken()) {
132
- // this.logService.info("authentication: logged in");
133
- return true;
134
- }
135
- if (localStorage.getItem(Constants.AUTH_USER) === null) {
136
- // this.logService.info("authentication: not logged and no cache");
137
- this.sessionExpired();
138
- return false;
139
- }
140
- else {
141
- // this.logService.info("authentication: not logged but allowed login");
142
- this.Updateloggedin(true);
143
- this.storage.get(Constants.AUTH_USER).then((resp) => {
144
- this.UpdateCurrentUser(resp);
145
- });
146
- this.storage.get(Constants.AUTH_NAME).then((resp) => {
147
- this.updateLoggedUserFullName(resp);
148
- });
149
- this.storage.get(Constants.AUTH_ROLES).then((resp) => {
150
- let ret = JSON.parse(resp);
151
- this.UpdateRole(ret);
152
- });
153
- this.storage.get(Constants.AUTH_TOKEN).then((resp) => {
154
- this.UpdateToken(resp);
155
- });
156
- this.storage.get(Constants.AUTH_TOKEN_EXPIRE).then((resp) => {
157
- this.UpdateTokenExpire(resp);
158
- this.isValidToken();
159
- });
160
- this.storage.get(Constants.AUTH_TENANT_NAME).then((resp) => {
161
- this.updateTenantName(resp);
162
- });
163
- return true;
164
- }
165
- }
166
- }
167
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AuthService, deps: [{ token: i1.ActivatedRoute }, { token: i2.SocialAuthService }, { token: i3.StorageService }, { token: i1.Router }, { token: i4.HttpService }, { token: i5.MessageService }, { token: i6.LogService }], target: i0.ɵɵFactoryTarget.Injectable });
168
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AuthService, providedIn: 'root' });
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AuthService, decorators: [{
170
- type: Injectable,
171
- args: [{
172
- providedIn: 'root'
173
- }]
174
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SocialAuthService }, { type: i3.StorageService }, { type: i1.Router }, { type: i4.HttpService }, { type: i5.MessageService }, { type: i6.LogService }]; } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFNN0MsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFBb0IsTUFBc0IsRUFBVSxhQUFnQyxFQUFVLE9BQXVCLEVBQVMsTUFBYyxFQUFVLFdBQXdCLEVBQVUsY0FBOEIsRUFBVSxVQUFzQjtRQUFsTyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWtDdFAsV0FBVztRQUNILGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsbUJBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBTTNELFdBQVc7UUFDSCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVB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QzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzt3R0FqTVUsV0FBVzs0R0FBWCxXQUFXLGNBSFYsTUFBTTsyRkFHUCxXQUFXO2tCQUp2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQ2FuQWN0aXZhdGUsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi9sb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTb2NpYWxBdXRoU2VydmljZSB9IGZyb20gJ0BhYmFjcml0dC9hbmd1bGFyeC1zb2NpYWwtbG9naW4nO1xyXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnLi4vY2xhc3Nlcy9MaWJDbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHNvY2lhbFNlcnZpY2U6IFNvY2lhbEF1dGhTZXJ2aWNlLCBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLCBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBsb2dTZXJ2aWNlOiBMb2dTZXJ2aWNlKSB7IH1cclxuXHJcbiAgY2xlYXJTZXNzaW9uKCl7XHJcblxyXG4gICAgdGhpcy5VcGRhdGVsb2dnZWRpbihmYWxzZSk7XHJcbiAgICB0aGlzLlVwZGF0ZUF1dG9Mb2dpbihmYWxzZSk7XHJcbiAgICB0aGlzLlVwZGF0ZVJvbGUobmV3IFJvbGUoKSk7XHJcbiAgICB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIHRoaXMuc29jaWFsU2VydmljZS5zaWduT3V0KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgc2Vzc2lvbkV4cGlyZWQoKXtcclxuXHJcbiAgICB0aGlzLmNsZWFyU2Vzc2lvbigpXHJcblxyXG4gICAgbGV0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xyXG4gICAgbGV0IHBhdGggPSB1cmwuaGFzaC5yZXBsYWNlKFwiIy9cIiwgXCJcIik7XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wibG9naW5cIl0sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5fcm91dGUsXHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHJlZGlyZWN0VG86IHBhdGggfSxcclxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiBmYWxzZVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9nb2ZmKCkge1xyXG4gICAgdGhpcy5jbGVhclNlc3Npb24oKVxyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImxvZ2luXCJdKTtcclxuICB9XHJcblxyXG4gIC8vTG9nZ2VkIGluXHJcbiAgcHJpdmF0ZSBsb2dnZWRpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgbG9nZ2VkaW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubG9nZ2VkaW4pO1xyXG4gIHB1YmxpYyBsb2dnZWRpbk9ic2VydiA9IHRoaXMubG9nZ2VkaW5Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlbG9nZ2VkaW4obG9nZ2VkaW46IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubG9nZ2VkaW5Tb3VyY2UubmV4dChsb2dnZWRpbik7XHJcbiAgICB0aGlzLmxvZ2dlZGluID0gbG9nZ2VkaW47XHJcbiAgfVxyXG5cclxuICAvL2F1dG9Mb2dpblxyXG4gIHByaXZhdGUgYXV0b0xvZ2luOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBhdXRvTG9naW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYXV0b0xvZ2luKTtcclxuICBwdWJsaWMgYXV0b0xvZ2luT2JzZXJ2ID0gdGhpcy5hdXRvTG9naW5Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlQXV0b0xvZ2luKGF1dG9Mb2dpbjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5hdXRvTG9naW5Tb3VyY2UubmV4dChhdXRvTG9naW4pO1xyXG4gICAgdGhpcy5hdXRvTG9naW4gPSBhdXRvTG9naW47XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9Ub2tlblxyXG4gIHByaXZhdGUgdG9rZW46IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHRva2VuU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnRva2VuKTtcclxuICBwdWJsaWMgdG9rZW5PYnNlcnYgPSB0aGlzLnRva2VuU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFVwZGF0ZVRva2VuKG5ld1Rva2VuOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG9rZW5Tb3VyY2UubmV4dChuZXdUb2tlbik7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9Ub2tlbkV4cGlyZVxyXG4gIHByaXZhdGUgdG9rZW5FeHBpcmU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHRva2VuRXhwaXJlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnRva2VuRXhwaXJlKTtcclxuICBwdWJsaWMgdG9rZW5FeHBpcmVPYnNlcnYgPSB0aGlzLnRva2VuRXhwaXJlU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFVwZGF0ZVRva2VuRXhwaXJlKG5ld1Rva2VuRXhwaXJlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG9rZW5FeHBpcmVTb3VyY2UubmV4dChuZXdUb2tlbkV4cGlyZSk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9DdXJyZW50IFVzZXJcclxuICBwdWJsaWMgY3VycmVudFVzZXI6IHN0cmluZyA9IFwidG55YWdhdG9cIjtcclxuICBwcml2YXRlIGN1cnJlbnRVc2VyU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmN1cnJlbnRVc2VyKTtcclxuICBwdWJsaWMgY3VycmVudFVzZXJPYnNlcnYgPSB0aGlzLmN1cnJlbnRVc2VyU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIFVwZGF0ZUN1cnJlbnRVc2VyKG5ld1VzZXI6IHN0cmluZykge1xyXG4gICAgdGhpcy5jdXJyZW50VXNlclNvdXJjZS5uZXh0KG5ld1VzZXIudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gbmV3VXNlci50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgLy9MaW5lIE1hbmFnZXJcclxuICBwcml2YXRlIGlzbGluZU1hbmFnZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGlzTGluZU1hbmFnZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuaXNsaW5lTWFuYWdlcik7XHJcbiAgcHVibGljIGlzTGluZU1hbmFnZXJPYnNlcnYgPSB0aGlzLmlzTGluZU1hbmFnZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgVXBkYXRlSXNMaW5lTWFuYWdlcihtYW5hZ2VyOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzTGluZU1hbmFnZXJTb3VyY2UubmV4dChtYW5hZ2VyKTtcclxuICB9XHJcblxyXG4gIC8vUm9sZXNcclxuICBwcml2YXRlIGN1cnJlbnRSb2xlID0gbmV3IFJvbGU7XHJcbiAgcHVibGljIGN1cnJlbnRSb2xlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmN1cnJlbnRSb2xlKTtcclxuICBwdWJsaWMgbXlSb2xlT2JzZXJ2ID0gdGhpcy5jdXJyZW50Um9sZVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBVcGRhdGVSb2xlKHJvbGUpIHtcclxuICAgIHRoaXMuY3VycmVudFJvbGVTb3VyY2UubmV4dChyb2xlKTtcclxuICB9XHJcblxyXG4gIC8vTG9nZ2VkIGluIEZpcnN0TmFtZVxyXG4gIHByaXZhdGUgbG9nZ2VkVXNlclNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoXCJ0bnlhZ2F0b1wiKTtcclxuICBwdWJsaWMgbG9nZ2VkVXNlckZ1bGxOYW1lID0gdGhpcy5sb2dnZWRVc2VyU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHVwZGF0ZUxvZ2dlZFVzZXJGdWxsTmFtZSh1c2VyTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmxvZ2dlZFVzZXJTb3VyY2UubmV4dCh1c2VyTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvL1RlbmFudE5hbWVcclxuICBwcml2YXRlIHRlbmFudE5hbWVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFwiVGVuYW50IE5hbWVcIik7XHJcbiAgcHVibGljIHRlbmFudE5hbWVPYnNlcnYgPSB0aGlzLnRlbmFudE5hbWVTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgdXBkYXRlVGVuYW50TmFtZSh0ZW5hbnROYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGVuYW50TmFtZVNvdXJjZS5uZXh0KHRlbmFudE5hbWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vQXV0aG9yaXNhdGlvblxyXG4gIGlzQXV0aG9yaXNlZChjYXBOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuY3VycmVudFJvbGVTb3VyY2UudmFsdWVbY2FwTmFtZV0pIHtcclxuICAgICAgLy8gdGhpcy5sb2dTZXJ2aWNlLmluZm8oYGF1dGhvcmlzZTogJHt0aGlzLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlLnJvbGVOYW1lfSBub3QgYXV0aG9yaXNlZCBmb3IgJHtjYXBOYW1lfWApO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJob21lXCJdKTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChgVW5hdXRob3Jpc2VkOiAke2NhcE5hbWV9YCk7XHJcblxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkVG9rZW4oKSB7XHJcblxyXG4gICAgbGV0IHRva2VuRXhwaXJlOiBEYXRlID0gbmV3IERhdGUodGhpcy50b2tlbkV4cGlyZVNvdXJjZS52YWx1ZSk7XHJcbiAgICBsZXQgbm93RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgbGV0IHZhbGlkOiBib29sZWFuID0gdG9rZW5FeHBpcmUgPiBub3dEYXRlO1xyXG5cclxuICAgIGlmICghdmFsaWQpIHtcclxuXHJcbiAgICAgIHRoaXMuc2Vzc2lvbkV4cGlyZWQoKVxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KGBFeHBpcmVkIFNlc3Npb25gKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZhbGlkXHJcbiAgfVxyXG5cclxuICBjYW5BY3RpdmF0ZSgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5sb2dnZWRpbiAmJiB0aGlzLmlzVmFsaWRUb2tlbigpKSB7XHJcbiAgICAgIC8vIHRoaXMubG9nU2VydmljZS5pbmZvKFwiYXV0aGVudGljYXRpb246IGxvZ2dlZCBpblwiKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKENvbnN0YW50cy5BVVRIX1VTRVIpID09PSBudWxsKSB7XHJcbiAgICAgIC8vIHRoaXMubG9nU2VydmljZS5pbmZvKFwiYXV0aGVudGljYXRpb246IG5vdCBsb2dnZWQgYW5kIG5vIGNhY2hlXCIpO1xyXG5cclxuICAgICAgdGhpcy5zZXNzaW9uRXhwaXJlZCgpO1xyXG5cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHRoaXMubG9nU2VydmljZS5pbmZvKFwiYXV0aGVudGljYXRpb246IG5vdCBsb2dnZWQgYnV0IGFsbG93ZWQgbG9naW5cIik7XHJcblxyXG4gICAgICB0aGlzLlVwZGF0ZWxvZ2dlZGluKHRydWUpO1xyXG5cclxuICAgICAgdGhpcy5zdG9yYWdlLmdldChDb25zdGFudHMuQVVUSF9VU0VSKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLlVwZGF0ZUN1cnJlbnRVc2VyKHJlc3ApO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5nZXQoQ29uc3RhbnRzLkFVVEhfTkFNRSkudGhlbigocmVzcDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMb2dnZWRVc2VyRnVsbE5hbWUocmVzcCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zdG9yYWdlLmdldChDb25zdGFudHMuQVVUSF9ST0xFUykudGhlbigocmVzcCkgPT4ge1xyXG4gICAgICAgIGxldCByZXQgPSBKU09OLnBhcnNlKHJlc3ApO1xyXG5cclxuICAgICAgICB0aGlzLlVwZGF0ZVJvbGUocmV0KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnN0b3JhZ2UuZ2V0KENvbnN0YW50cy5BVVRIX1RPS0VOKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLlVwZGF0ZVRva2VuKHJlc3ApO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5nZXQoQ29uc3RhbnRzLkFVVEhfVE9LRU5fRVhQSVJFKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLlVwZGF0ZVRva2VuRXhwaXJlKHJlc3ApO1xyXG4gICAgICAgIHRoaXMuaXNWYWxpZFRva2VuKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zdG9yYWdlLmdldChDb25zdGFudHMuQVVUSF9URU5BTlRfTkFNRSkudGhlbigocmVzcDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUZW5hbnROYW1lKHJlc3ApO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,162 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { RoleAccess } from '../classes/Classes';
3
- import { Core } from '../classes/TinCore';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./auth.service";
6
- export class ButtonService {
7
- constructor(authService) {
8
- this.authService = authService;
9
- }
10
- getButton(buttons, name) {
11
- return buttons?.find(x => x.name === name) || null;
12
- }
13
- getConfirmMessage(button, row) {
14
- if (!button?.confirm) {
15
- return '';
16
- }
17
- // Return dynamic message if func is provided
18
- if (button.confirm.func) {
19
- return button.confirm.func(row);
20
- }
21
- // Return static message
22
- return button.confirm.message;
23
- }
24
- getButtonProperties(button, row, config) {
25
- return {
26
- color: this.getButtonColor(button, row),
27
- icon: this.getIcon(button, config),
28
- disabled: this.testDisabled(button, row),
29
- visible: this.testVisible(button, row, config),
30
- tip: button.tip || button.name
31
- };
32
- }
33
- getButtonColor(button, row) {
34
- if (this.testDisabled(button, row))
35
- return 'lightgray';
36
- if (button?.color)
37
- return button.color;
38
- if (button.icon?.color)
39
- return button.icon.color;
40
- const colorMap = {
41
- 'delete': '#F44336',
42
- 'create': 'green'
43
- };
44
- return colorMap[button.name] || '#4050B5';
45
- }
46
- // isButtonVisible(button: Button, row: any, isLoadComplete: boolean): boolean {
47
- // if (!isLoadComplete) return false;
48
- // return this.testVisible(button,row);
49
- // }
50
- getTitleAction(mode, buttons) {
51
- const modeMap = {
52
- 'view': 'View',
53
- 'edit': buttons?.find(b => b.name === 'edit')?.display || 'Edit',
54
- 'create': buttons?.find(b => b.name === 'create')?.display || 'Create'
55
- };
56
- return modeMap[mode] || '';
57
- }
58
- isTabVisible(tableConfig, details) {
59
- return tableConfig.hideTabCondition ? !tableConfig.hideTabCondition(details) : true;
60
- }
61
- getIcon(button, config) {
62
- if (button.icon) {
63
- return button.icon.name;
64
- }
65
- return config ? this.getDefaultIcon(button.name, config.flatButtons) : this.getDefaultIcon(button.name, true);
66
- }
67
- testDisabled(button, row, config) {
68
- // Check standard locking/approval rules
69
- if ((button.name === 'edit' || button.name === 'delete') && row?.locked)
70
- return true;
71
- if (row?.pendingApproval && !button.ignorePendingApproval && button.name != 'view')
72
- return true;
73
- // Check form access if detailsConfig exists
74
- if (button.detailsConfig?.formConfig) {
75
- const access = Core.getFormAccess(button.detailsConfig.formConfig, this.authService.currentRoleSource.value);
76
- if (!this.hasRequiredAccess(access, button.name))
77
- return true;
78
- }
79
- // Check form access levels from table config
80
- if (['create', 'edit', 'view', 'delete'].includes(button.name) && config?.formConfig) {
81
- const access = Core.getFormAccess(config.formConfig, this.authService.currentRoleSource.value);
82
- if (!this.hasRequiredAccess(access, button.name))
83
- return true;
84
- }
85
- // Check button-specific disabled rules
86
- return button.disabled ? button.disabled(row) : false;
87
- }
88
- getVisibleButtons(buttons, row, tableConfig) {
89
- return buttons.filter(button => this.testVisible(button, row, tableConfig));
90
- }
91
- testVisible(button, row, tableConfig) {
92
- if (button.visible && !button.visible(row)) {
93
- return false;
94
- }
95
- const currentRole = this.authService.currentRoleSource.value;
96
- // Check if button has detailsConfig with form restrictions
97
- if (button.detailsConfig?.formConfig?.security) {
98
- const access = Core.getFormAccess(button.detailsConfig.formConfig, currentRole);
99
- if (!this.hasRequiredAccess(access, button.name)) {
100
- return false;
101
- }
102
- }
103
- // For create/edit/view buttons, check table's formConfig
104
- if (['create', 'edit', 'view', 'delete'].includes(button.name) && tableConfig?.formConfig?.security) {
105
- const access = Core.getFormAccess(tableConfig.formConfig, currentRole);
106
- if (!this.hasRequiredAccess(access, button.name)) {
107
- return false;
108
- }
109
- }
110
- return true;
111
- }
112
- hasRequiredAccess(access, buttonName) {
113
- switch (buttonName) {
114
- case 'view':
115
- return access >= RoleAccess.View;
116
- case 'edit':
117
- return access >= RoleAccess.Edit;
118
- case 'create':
119
- return access >= RoleAccess.Create;
120
- case 'delete':
121
- return access >= RoleAccess.Full;
122
- default:
123
- return true; // Custom buttons don't require specific access
124
- }
125
- }
126
- getDefaultColor(buttonName) {
127
- switch (buttonName) {
128
- case 'delete': return '#F44336';
129
- case 'create': return 'green';
130
- default: return '#4050B5';
131
- }
132
- }
133
- getDefaultIcon(buttonName, flatButtons) {
134
- switch (buttonName) {
135
- case 'view':
136
- return flatButtons ? 'open_in_new' : 'pageview';
137
- case 'edit': return 'edit';
138
- case 'delete': return 'delete';
139
- case 'create': return 'add';
140
- default: return 'more_horiz';
141
- }
142
- }
143
- getCreateButton(buttons) {
144
- return buttons?.find(button => button?.name === 'create');
145
- }
146
- isFormButton(button) {
147
- if (button?.action?.url?.includes('/form') || button?.action?.isFormData) {
148
- button.action.isFormData = true;
149
- return true;
150
- }
151
- return false;
152
- }
153
- }
154
- ButtonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonService, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
155
- ButtonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonService, providedIn: 'root' });
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonService, decorators: [{
157
- type: Injectable,
158
- args: [{
159
- providedIn: 'root'
160
- }]
161
- }], ctorParameters: function () { return [{ type: i1.AuthService }]; } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvYnV0dG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVUsVUFBVSxFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFFckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFLMUMsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBSSxDQUFDO0lBRWpELFNBQVMsQ0FBQyxPQUFpQixFQUFFLElBQVk7UUFDdkMsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQWMsRUFBRSxHQUFRO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFO1lBQ3BCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCw2Q0FBNkM7UUFDN0MsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUN2QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsd0JBQXdCO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWMsRUFBRSxHQUFRLEVBQUUsTUFBbUI7UUFPL0QsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7WUFDdkMsSUFBSSxFQUFF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TyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBRWYsQ0FBQzs7MEdBcExVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvbiwgUm9sZUFjY2VzcywgVGFibGVDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZSB9IGZyb20gJy4uL2NsYXNzZXMvVGluQ29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdXR0b25TZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxyXG5cclxuICBnZXRCdXR0b24oYnV0dG9uczogQnV0dG9uW10sIG5hbWU6IHN0cmluZyk6IEJ1dHRvbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIGJ1dHRvbnM/LmZpbmQoeCA9PiB4Lm5hbWUgPT09IG5hbWUpIHx8IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRDb25maXJtTWVzc2FnZShidXR0b246IEJ1dHRvbiwgcm93OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFidXR0b24/LmNvbmZpcm0pIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLy8gUmV0dXJuIGR5bmFtaWMgbWVzc2FnZSBpZiBmdW5jIGlzIHByb3ZpZGVkXHJcbiAgICBpZiAoYnV0dG9uLmNvbmZpcm0uZnVuYykge1xyXG4gICAgICByZXR1cm4gYnV0dG9uLmNvbmZpcm0uZnVuYyhyb3cpO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgLy8gUmV0dXJuIHN0YXRpYyBtZXNzYWdlXHJcbiAgICByZXR1cm4gYnV0dG9uLmNvbmZpcm0ubWVzc2FnZTtcclxuICB9XHJcblxyXG4gIGdldEJ1dHRvblByb3BlcnRpZXMoYnV0dG9uOiBCdXR0b24sIHJvdzogYW55LCBjb25maWc6IFRhYmxlQ29uZmlnKToge1xyXG4gICAgY29sb3I6IHN0cmluZyxcclxuICAgIGljb246IHN0cmluZyxcclxuICAgIGRpc2FibGVkOiBib29sZWFuLFxyXG4gICAgdmlzaWJsZTogYm9vbGVhbixcclxuICAgIHRpcDogc3RyaW5nXHJcbiAgfSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjb2xvcjogdGhpcy5nZXRCdXR0b25Db2xvcihidXR0b24sIHJvdyksXHJcbiAgICAgIGljb246IHRoaXMuZ2V0SWNvbihidXR0b24sIGNvbmZpZyksXHJcbiAgICAgIGRpc2FibGVkOiB0aGlzLnRlc3REaXNhYmxlZChidXR0b24sIHJvdyksXHJcbiAgICAgIHZpc2libGU6IHRoaXMudGVzdFZpc2libGUoYnV0dG9uLCByb3csIGNvbmZpZyksXHJcbiAgICAgIHRpcDogYnV0dG9uLnRpcCB8fCBidXR0b24ubmFtZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldEJ1dHRvbkNvbG9yKGJ1dHRvbjogQnV0dG9uLCByb3c6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy50ZXN0RGlzYWJsZWQoYnV0dG9uLCByb3cpKSByZXR1cm4gJ2xpZ2h0Z3JheSc7XHJcblxyXG4gICAgaWYgKGJ1dHRvbj8uY29sb3IpIHJldHVybiBidXR0b24uY29sb3I7XHJcbiAgICBpZiAoYnV0dG9uLmljb24/LmNvbG9yKSByZXR1cm4gYnV0dG9uLmljb24uY29sb3I7XHJcblxyXG4gICAgY29uc3QgY29sb3JNYXAgPSB7XHJcbiAgICAgICdkZWxldGUnOiAnI0Y0NDMzNicsXHJcbiAgICAgICdjcmVhdGUnOiAnZ3JlZW4nXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBjb2xvck1hcFtidXR0b24ubmFtZV0gfHwgJyM0MDUwQjUnO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLyBpc0J1dHRvblZpc2libGUoYnV0dG9uOiBCdXR0b24sIHJvdzogYW55LCBpc0xvYWRDb21wbGV0ZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gIC8vICAgaWYgKCFpc0xvYWRDb21wbGV0ZSkgcmV0dXJuIGZhbHNlO1xyXG4gIC8vICAgcmV0dXJuIHRoaXMudGVzdFZpc2libGUoYnV0dG9uLHJvdyk7XHJcbiAgLy8gfVxyXG5cclxuICBnZXRUaXRsZUFjdGlvbihtb2RlOiBzdHJpbmcsIGJ1dHRvbnM6IEJ1dHRvbltdKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1vZGVNYXAgPSB7XHJcbiAgICAgICd2aWV3JzogJ1ZpZXcnLFxyXG4gICAgICAnZWRpdCc6IGJ1dHRvbnM/LmZpbmQoYiA9PiBiLm5hbWUgPT09ICdlZGl0Jyk/LmRpc3BsYXkgfHwgJ0VkaXQnLFxyXG4gICAgICAnY3JlYXRlJzogYnV0dG9ucz8uZmluZChiID0+IGIubmFtZSA9PT0gJ2NyZWF0ZScpPy5kaXNwbGF5IHx8ICdDcmVhdGUnXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIG1vZGVNYXBbbW9kZV0gfHwgJyc7XHJcbiAgfVxyXG5cclxuICBpc1RhYlZpc2libGUodGFibGVDb25maWc6IFRhYmxlQ29uZmlnLCBkZXRhaWxzOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0YWJsZUNvbmZpZy5oaWRlVGFiQ29uZGl0aW9uID8gIXRhYmxlQ29uZmlnLmhpZGVUYWJDb25kaXRpb24oZGV0YWlscykgOiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWNvbihidXR0b246IEJ1dHRvbiwgY29uZmlnOiBUYWJsZUNvbmZpZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgaWYgKGJ1dHRvbi5pY29uKSB7XHJcbiAgICAgIHJldHVybiBidXR0b24uaWNvbi5uYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbmZpZyA/IHRoaXMuZ2V0RGVmYXVsdEljb24oYnV0dG9uLm5hbWUsIGNvbmZpZy5mbGF0QnV0dG9ucykgOiB0aGlzLmdldERlZmF1bHRJY29uKGJ1dHRvbi5uYW1lLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHRlc3REaXNhYmxlZChidXR0b246IEJ1dHRvbiwgcm93OiBhbnksIGNvbmZpZz86IFRhYmxlQ29uZmlnKTogYm9vbGVhbiB7XHJcblxyXG4gICAgLy8gQ2hlY2sgc3RhbmRhcmQgbG9ja2luZy9hcHByb3ZhbCBydWxlc1xyXG4gICAgaWYgKChidXR0b24ubmFtZSA9PT0gJ2VkaXQnIHx8IGJ1dHRvbi5uYW1lID09PSAnZGVsZXRlJykgJiYgcm93Py5sb2NrZWQpIHJldHVybiB0cnVlO1xyXG4gICAgaWYgKHJvdz8ucGVuZGluZ0FwcHJvdmFsICYmICFidXR0b24uaWdub3JlUGVuZGluZ0FwcHJvdmFsICYmIGJ1dHRvbi5uYW1lICE9ICd2aWV3JykgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgLy8gQ2hlY2sgZm9ybSBhY2Nlc3MgaWYgZGV0YWlsc0NvbmZpZyBleGlzdHNcclxuICAgIGlmIChidXR0b24uZGV0YWlsc0NvbmZpZz8uZm9ybUNvbmZpZykge1xyXG4gICAgICBjb25zdCBhY2Nlc3MgPSBDb3JlLmdldEZvcm1BY2Nlc3MoYnV0dG9uLmRldGFpbHNDb25maWcuZm9ybUNvbmZpZywgdGhpcy5hdXRoU2VydmljZS5jdXJyZW50Um9sZVNvdXJjZS52YWx1ZSk7XHJcbiAgICAgIGlmICghdGhpcy5oYXNSZXF1aXJlZEFjY2VzcyhhY2Nlc3MsIGJ1dHRvbi5uYW1lKSkgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgZm9ybSBhY2Nlc3MgbGV2ZWxzIGZyb20gdGFibGUgY29uZmlnXHJcbiAgICBpZiAoWydjcmVhdGUnLCAnZWRpdCcsICd2aWV3JywgJ2RlbGV0ZSddLmluY2x1ZGVzKGJ1dHRvbi5uYW1lKSAmJiBjb25maWc/LmZvcm1Db25maWcpIHtcclxuICAgICAgY29uc3QgYWNjZXNzID0gQ29yZS5nZXRGb3JtQWNjZXNzKGNvbmZpZy5mb3JtQ29uZmlnLCB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlKTtcclxuICAgICAgaWYgKCF0aGlzLmhhc1JlcXVpcmVkQWNjZXNzKGFjY2VzcywgYnV0dG9uLm5hbWUpKSByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDaGVjayBidXR0b24tc3BlY2lmaWMgZGlzYWJsZWQgcnVsZXNcclxuICAgIHJldHVybiBidXR0b24uZGlzYWJsZWQgPyBidXR0b24uZGlzYWJsZWQocm93KSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmlzaWJsZUJ1dHRvbnMoYnV0dG9uczogQnV0dG9uW10sIHJvdzogYW55LCB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnKTogQnV0dG9uW10ge1xyXG4gICAgcmV0dXJuIGJ1dHRvbnMuZmlsdGVyKGJ1dHRvbiA9PiB0aGlzLnRlc3RWaXNpYmxlKGJ1dHRvbiwgcm93LCB0YWJsZUNvbmZpZykpO1xyXG4gIH1cclxuXHJcbiAgdGVzdFZpc2libGUoYnV0dG9uOiBCdXR0b24sIHJvdzogYW55LCB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnKTogYm9vbGVhbiB7XHJcblxyXG5cclxuICAgIGlmIChidXR0b24udmlzaWJsZSAmJiAhYnV0dG9uLnZpc2libGUocm93KSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY3VycmVudFJvbGUgPSB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlO1xyXG5cclxuICAgIC8vIENoZWNrIGlmIGJ1dHRvbiBoYXMgZGV0YWlsc0NvbmZpZyB3aXRoIGZvcm0gcmVzdHJpY3Rpb25zXHJcbiAgICBpZiAoYnV0dG9uLmRldGFpbHNDb25maWc/LmZvcm1Db25maWc/LnNlY3VyaXR5KSB7XHJcbiAgICAgIGNvbnN0IGFjY2VzcyA9IENvcmUuZ2V0Rm9ybUFjY2VzcyhidXR0b24uZGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnLCBjdXJyZW50Um9sZSk7XHJcbiAgICAgIGlmICghdGhpcy5oYXNSZXF1aXJlZEFjY2VzcyhhY2Nlc3MsIGJ1dHRvbi5uYW1lKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciBjcmVhdGUvZWRpdC92aWV3IGJ1dHRvbnMsIGNoZWNrIHRhYmxlJ3MgZm9ybUNvbmZpZ1xyXG4gICAgaWYgKFsnY3JlYXRlJywgJ2VkaXQnLCAndmlldycsICdkZWxldGUnXS5pbmNsdWRlcyhidXR0b24ubmFtZSkgJiYgdGFibGVDb25maWc/LmZvcm1Db25maWc/LnNlY3VyaXR5KSB7XHJcbiAgICAgIGNvbnN0IGFjY2VzcyA9IENvcmUuZ2V0Rm9ybUFjY2Vzcyh0YWJsZUNvbmZpZy5mb3JtQ29uZmlnLCBjdXJyZW50Um9sZSk7XHJcbiAgICAgIGlmICghdGhpcy5oYXNSZXF1aXJlZEFjY2VzcyhhY2Nlc3MsIGJ1dHRvbi5uYW1lKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNSZXF1aXJlZEFjY2VzcyhhY2Nlc3M6IFJvbGVBY2Nlc3MsIGJ1dHRvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoIChidXR0b25OYW1lKSB7XHJcbiAgICAgIGNhc2UgJ3ZpZXcnOlxyXG4gICAgICAgIHJldHVybiBhY2Nlc3MgPj0gUm9sZUFjY2Vzcy5WaWV3O1xyXG4gICAgICBjYXNlICdlZGl0JzpcclxuICAgICAgICByZXR1cm4gYWNjZXNzID49IFJvbGVBY2Nlc3MuRWRpdDtcclxuICAgICAgY2FzZSAnY3JlYXRlJzpcclxuICAgICAgICByZXR1cm4gYWNjZXNzID49IFJvbGVBY2Nlc3MuQ3JlYXRlO1xyXG4gICAgICBjYXNlICdkZWxldGUnOlxyXG4gICAgICAgIHJldHVybiBhY2Nlc3MgPj0gUm9sZUFjY2Vzcy5GdWxsO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBDdXN0b20gYnV0dG9ucyBkb24ndCByZXF1aXJlIHNwZWNpZmljIGFjY2Vzc1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREZWZhdWx0Q29sb3IoYnV0dG9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoYnV0dG9uTmFtZSkge1xyXG4gICAgICBjYXNlICdkZWxldGUnOiByZXR1cm4gJyNGNDQzMzYnO1xyXG4gICAgICBjYXNlICdjcmVhdGUnOiByZXR1cm4gJ2dyZWVuJztcclxuICAgICAgZGVmYXVsdDogcmV0dXJuICcjNDA1MEI1JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEljb24oYnV0dG9uTmFtZTogc3RyaW5nLCBmbGF0QnV0dG9uczogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKGJ1dHRvbk5hbWUpIHtcclxuICAgICAgY2FzZSAndmlldyc6XHJcbiAgICAgICAgcmV0dXJuIGZsYXRCdXR0b25zID8gJ29wZW5faW5fbmV3JyA6ICdwYWdldmlldyc7XHJcbiAgICAgIGNhc2UgJ2VkaXQnOiByZXR1cm4gJ2VkaXQnO1xyXG4gICAgICBjYXNlICdkZWxldGUnOiByZXR1cm4gJ2RlbGV0ZSc7XHJcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiAnYWRkJztcclxuICAgICAgZGVmYXVsdDogcmV0dXJuICdtb3JlX2hvcml6JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENyZWF0ZUJ1dHRvbihidXR0b25zOiBCdXR0b25bXSk6IEJ1dHRvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gYnV0dG9ucz8uZmluZChidXR0b24gPT4gYnV0dG9uPy5uYW1lID09PSAnY3JlYXRlJyk7XHJcbiAgfVxyXG5cclxuICBpc0Zvcm1CdXR0b24oYnV0dG9uOiBCdXR0b24pOiBib29sZWFuIHtcclxuXHJcbiAgICBpZiAoYnV0dG9uPy5hY3Rpb24/LnVybD8uaW5jbHVkZXMoJy9mb3JtJykgfHwgYnV0dG9uPy5hY3Rpb24/LmlzRm9ybURhdGEpIHtcclxuICAgICAgYnV0dG9uLmFjdGlvbi5pc0Zvcm1EYXRhID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIl19
@@ -1,32 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ConditionService {
4
- testIconCondition(icon, row) {
5
- if (!icon)
6
- return false;
7
- return icon.condition ? icon.condition(row) : true;
8
- }
9
- testColorCondition(color, row) {
10
- if (!color)
11
- return false;
12
- return color.condition ? color.condition(row) : true;
13
- }
14
- getColor(value, options) {
15
- if (!options)
16
- return 'lightgrey';
17
- const option = options.find(opt => opt.value === value);
18
- return option ? option.color : 'lightgrey';
19
- }
20
- testCondition(condition, value) {
21
- return condition ? condition(value) : true;
22
- }
23
- }
24
- ConditionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConditionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
- ConditionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConditionService, providedIn: 'root' });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ConditionService, decorators: [{
27
- type: Injectable,
28
- args: [{
29
- providedIn: 'root'
30
- }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvY29uZGl0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixpQkFBaUIsQ0FBQyxJQUFVLEVBQUUsR0FBUTtRQUNwQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JELENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxLQUFZLEVBQUUsR0FBUTtRQUN2QyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZELENBQUM7SUFHRCxRQUFRLENBQUMsS0FBVSxFQUFFLE9BQWM7UUFDakMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLFdBQVcsQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQzdDLENBQUM7SUFHRCxhQUFhLENBQUMsU0FBa0MsRUFBRSxLQUFVO1FBQzFELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDOzs2R0F4QlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEljb24sIENvbG9yIH0gZnJvbSAnLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmRpdGlvblNlcnZpY2Uge1xyXG5cclxuXHJcbiAgdGVzdEljb25Db25kaXRpb24oaWNvbjogSWNvbiwgcm93OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICghaWNvbikgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIGljb24uY29uZGl0aW9uID8gaWNvbi5jb25kaXRpb24ocm93KSA6IHRydWU7XHJcbiAgfVxyXG5cclxuXHJcbiAgdGVzdENvbG9yQ29uZGl0aW9uKGNvbG9yOiBDb2xvciwgcm93OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICghY29sb3IpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBjb2xvci5jb25kaXRpb24gPyBjb2xvci5jb25kaXRpb24ocm93KSA6IHRydWU7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0Q29sb3IodmFsdWU6IGFueSwgb3B0aW9uczogYW55W10pOiBzdHJpbmcge1xyXG4gICAgaWYgKCFvcHRpb25zKSByZXR1cm4gJ2xpZ2h0Z3JleSc7XHJcbiAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbmQob3B0ID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpO1xyXG4gICAgcmV0dXJuIG9wdGlvbiA/IG9wdGlvbi5jb2xvciA6ICdsaWdodGdyZXknO1xyXG4gIH1cclxuXHJcblxyXG4gIHRlc3RDb25kaXRpb24oY29uZGl0aW9uOiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbiwgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGNvbmRpdGlvbiA/IGNvbmRpdGlvbih2YWx1ZSkgOiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,49 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CsvService {
4
- generateCsv(data, columns, filename = 'export.csv', config) {
5
- const csvContent = this.convertToCsv(data, columns, config);
6
- const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
7
- const link = document.createElement('a');
8
- if (link.download !== undefined) {
9
- const url = URL.createObjectURL(blob);
10
- link.setAttribute('href', url);
11
- link.setAttribute('download', filename);
12
- link.style.visibility = 'hidden';
13
- document.body.appendChild(link);
14
- link.click();
15
- document.body.removeChild(link);
16
- }
17
- }
18
- convertToCsv(data, columns, config) {
19
- const columnMap = this.createColumnMap(columns, config);
20
- const header = columns.map(col => columnMap[col] || col).join(',');
21
- const rows = data.map(row => columns.map(col => this.escapeCommas(row[col])).join(','));
22
- return [header, ...rows].join('\n');
23
- }
24
- createColumnMap(columns, config) {
25
- const columnMap = {};
26
- config.columns.forEach(col => {
27
- if (columns.includes(col.name) && col.alias) {
28
- columnMap[col.name] = col.alias;
29
- }
30
- });
31
- return columnMap;
32
- }
33
- escapeCommas(value) {
34
- const stringValue = String(value);
35
- if (stringValue.includes(',') || stringValue.includes('"') || stringValue.includes('\n')) {
36
- return `"${stringValue.replace(/"/g, '""')}"`;
37
- }
38
- return stringValue;
39
- }
40
- }
41
- CsvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CsvService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
42
- CsvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CsvService, providedIn: 'root' });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CsvService, decorators: [{
44
- type: Injectable,
45
- args: [{
46
- providedIn: 'root'
47
- }]
48
- }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvY3N2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLFVBQVU7SUFDckIsV0FBVyxDQUFDLElBQVcsRUFBRSxPQUFpQixFQUFFLFdBQW1CLFlBQVksRUFBRSxNQUFtQjtRQUM5RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7UUFDekUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQy9CLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFXLEVBQUUsT0FBaUIsRUFBRSxNQUFtQjtRQUN0RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUMxRCxDQUFDO1FBQ0YsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWlCLEVBQUUsTUFBbUI7UUFDNUQsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDM0MsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQVU7UUFDN0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEYsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDL0M7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzt1R0F6Q1UsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tICcuLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3N2U2VydmljZSB7XHJcbiAgZ2VuZXJhdGVDc3YoZGF0YTogYW55W10sIGNvbHVtbnM6IHN0cmluZ1tdLCBmaWxlbmFtZTogc3RyaW5nID0gJ2V4cG9ydC5jc3YnLCBjb25maWc6IFRhYmxlQ29uZmlnKTogdm9pZCB7XHJcbiAgICBjb25zdCBjc3ZDb250ZW50ID0gdGhpcy5jb252ZXJ0VG9Dc3YoZGF0YSwgY29sdW1ucywgY29uZmlnKTtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbY3N2Q29udGVudF0sIHsgdHlwZTogJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTg7JyB9KTtcclxuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBpZiAobGluay5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcclxuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpO1xyXG4gICAgICBsaW5rLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0VG9Dc3YoZGF0YTogYW55W10sIGNvbHVtbnM6IHN0cmluZ1tdLCBjb25maWc6IFRhYmxlQ29uZmlnKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbHVtbk1hcCA9IHRoaXMuY3JlYXRlQ29sdW1uTWFwKGNvbHVtbnMsIGNvbmZpZyk7XHJcbiAgICBjb25zdCBoZWFkZXIgPSBjb2x1bW5zLm1hcChjb2wgPT4gY29sdW1uTWFwW2NvbF0gfHwgY29sKS5qb2luKCcsJyk7XHJcbiAgICBjb25zdCByb3dzID0gZGF0YS5tYXAocm93ID0+XHJcbiAgICAgIGNvbHVtbnMubWFwKGNvbCA9PiB0aGlzLmVzY2FwZUNvbW1hcyhyb3dbY29sXSkpLmpvaW4oJywnKVxyXG4gICAgKTtcclxuICAgIHJldHVybiBbaGVhZGVyLCAuLi5yb3dzXS5qb2luKCdcXG4nKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29sdW1uTWFwKGNvbHVtbnM6IHN0cmluZ1tdLCBjb25maWc6IFRhYmxlQ29uZmlnKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XHJcbiAgICBjb25zdCBjb2x1bW5NYXAgPSB7fTtcclxuICAgIGNvbmZpZy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbHVtbnMuaW5jbHVkZXMoY29sLm5hbWUpICYmIGNvbC5hbGlhcykge1xyXG4gICAgICAgIGNvbHVtbk1hcFtjb2wubmFtZV0gPSBjb2wuYWxpYXM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNvbHVtbk1hcDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXNjYXBlQ29tbWFzKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc3RyaW5nVmFsdWUgPSBTdHJpbmcodmFsdWUpO1xyXG4gICAgaWYgKHN0cmluZ1ZhbHVlLmluY2x1ZGVzKCcsJykgfHwgc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ1wiJykgfHwgc3RyaW5nVmFsdWUuaW5jbHVkZXMoJ1xcbicpKSB7XHJcbiAgICAgIHJldHVybiBgXCIke3N0cmluZ1ZhbHVlLnJlcGxhY2UoL1wiL2csICdcIlwiJyl9XCJgO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0cmluZ1ZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=