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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://tin-spa/lib/classes/Classes.ts","ng://tin-spa/lib/services/tin-spa.service.ts","ng://tin-spa/lib/services/storage.service.ts","ng://tin-spa/lib/components/message/messageDialog.component.ts","ng://tin-spa/lib/services/message.service.ts","ng://tin-spa/lib/services/export.service.ts","ng://tin-spa/lib/services/log.service.ts","ng://tin-spa/lib/services/auth.service.ts","ng://tin-spa/lib/services/data.service.ts","ng://tin-spa/lib/services/loader.service.ts","ng://tin-spa/lib/components/loader/loader.component.ts","ng://tin-spa/lib/modules/spa-mat.module.ts","ng://tin-spa/lib/services/loader-interceptor.service.ts","ng://tin-spa/lib/components/tin-spa.component.ts","ng://tin-spa/lib/components/nav-menu/nav-menu.component.ts","ng://tin-spa/lib/components/timeout/timeout.component.ts","ng://tin-spa/lib/components/table/table.component.ts","ng://tin-spa/lib/components/tiles/tiles.component.ts","ng://tin-spa/lib/components/date/date.component.ts","ng://tin-spa/lib/components/text/text.component.ts","ng://tin-spa/lib/components/viewer/viewerDialog.component.ts","ng://tin-spa/lib/components/viewer/viewer.component.ts","ng://tin-spa/lib/components/select/select.component.ts","ng://tin-spa/lib/components/check/check.component.ts","ng://tin-spa/lib/components/attach/attach.component.ts","ng://tin-spa/lib/components/datetime/datetime.component.ts","ng://tin-spa/lib/components/money/money.component.ts","ng://tin-spa/lib/dnd.directive.ts","ng://tin-spa/lib/components/chips/chips.component.ts","ng://tin-spa/lib/components/activity/activity.component.ts","ng://tin-spa/lib/components/html/html.component.ts","ng://tin-spa/lib/components/option/option.component.ts","ng://tin-spa/lib/components/label/label.component.ts","ng://tin-spa/lib/components/steps/steps.component.ts","ng://tin-spa/lib/tin-spa.module.ts","ng://tin-spa/lib/components/login/login.component.ts","ng://tin-spa/lib/components/signup/signup.component.ts","ng://tin-spa/lib/components/recover-account/recover-account.component.ts","ng://tin-spa/lib/modules/spa-index.module.ts","ng://tin-spa/lib/components/change-password/change-password.component.ts","ng://tin-spa/lib/components/profile/profile.component.ts","ng://tin-spa/lib/modules/spa-user.module.ts","ng://tin-spa/lib/components/settings/settings.component.ts","ng://tin-spa/lib/components/logs/logs.component.ts","ng://tin-spa/lib/components/users/users.component.ts","ng://tin-spa/lib/components/users/addUserDialog.component.ts","ng://tin-spa/lib/components/users/editUserDialog.component.ts","ng://tin-spa/lib/components/roles/viewRoleDialog.component.ts","ng://tin-spa/lib/components/roles/addRoleDialog.component.ts","ng://tin-spa/lib/components/roles/editRoleDialog.component.ts","ng://tin-spa/lib/components/roles/roles.component.ts","ng://tin-spa/lib/components/profiles/profiles.component.ts","ng://tin-spa/lib/components/create-account/create-account.component.ts","ng://tin-spa/lib/modules/spa-admin.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","push","__values","o","s","m","LogLevel","TinSpaService","Injectable","providedIn","StorageService","store","storageKey","encryptedValue","btoa","escape","JSON","stringify","localStorage","setItem","_a","get","getItem","ret","parse","unescape","atob","removeStorageItem","removeItem","clear","messageDialog","dialogRef","data","ngOnInit","messageType","type","_messageSubject","subject","_messageDetails","details","response","resp","close","MatDialogRef","Inject","args","MAT_DIALOG_DATA","Component","selector","template","MessageService","snackBar","dialog","toast","msg","open","duration","info","width","error","confirm","afterClosed","pipe","mergeMap","of","MatSnackBar","MatDialog","ExportService","fileType","fileExtension","exportExcel","jsonData","fileName","wb","Sheets","XLSX.utils","json_to_sheet","SheetNames","excelBuffer","XLSX.write","bookType","saveExcelFile","buffer","Blob","FileSaver.saveAs","TableColumnType","enableFilter","TableCreate","greyout","Condition","name","display","String","Operator","field","operator","Equal","Color","_super","Icon","appName","selfService","logo","logoSize","ADAuth","localAuth","employees","approvals","enabled","newLine","showMenu","ignoreSubsDisplay","link","icon","roleID","roleName","cap1","cap2","cap3","cap4","cap5","cap6","cap7","cap8","cap9","cap10","cap11","cap12","cap13","cap14","cap15","cap16","cap17","cap18","cap19","cap20","cap21","cap22","cap23","cap24","cap25","cap26","cap27","cap28","cap29","cap30","cap31","cap32","cap33","cap34","cap35","cap36","cap37","cap38","cap39","cap40","cap41","cap42","cap43","cap44","cap45","cap46","cap47","cap48","cap49","cap50","cap51","cap52","cap53","cap54","cap55","cap56","cap57","cap58","cap59","cap60","cap61","cap62","cap63","cap64","cap65","cap66","cap67","cap68","cap69","cap70","cap71","cap72","cap73","cap74","cap75","cap76","cap77","cap78","cap79","cap80","cap81","cap82","cap83","cap84","cap85","cap86","cap87","cap88","cap89","cap90","cap91","cap92","cap93","cap94","cap95","cap96","cap97","cap98","cap99","cap100","userID","password","tries","locked","logged","disabled","changepassword","dateCreated","Core","nowDate","dateUpdated","token","dateExpire","tokenExpire","authType","currentPassword","newPassword","confirmPassword","profileID","firstName","lastName","email","empID","arID","LogService","level","All","logToConsole","logToApi","debug","optionalParams","_i","writeToLog","Debug","Info","warn","Warn","Error","fatal","Fatal","log","params","shouldLog","getFormatedDate","Date","replace","formatParams","console","join","some","params_1","params_1_1","item","Off","AuthService","storage","router","httpService","messageService","logService","loggedin","loggedinSource","BehaviorSubject","loggedinObserv","asObservable","tokenSource","tokenObserv","tokenExpireSource","tokenExpireObserv","currentUser","currentUserSource","currentUserObserv","islineManager","isLineManagerSource","isLineManagerObserv","currentRole","Role","currentRoleSource","myRoleObserv","loggedUserSource","loggedUserFullName","updateloggedin","updateToken","newToken","updateTokenExpire","newTokenExpire","updateCurrentUser","newUser","toLocaleLowerCase","updateIsLineManager","manager","updateRole","role","updateLoggedUserFullName","username","isAuthorised","capName","navigate","isValidToken","valid","canActivate","_this","Constants","AUTH_USER","AUTH_NAME","AUTH_ROLES","AUTH_TOKEN","AUTH_TOKEN_EXPIRE","Router","HttpService","DataService","capUsers","CapItem","tmpProfileUserID","GetUser","by","val","Get","UpdateUser","user","action","Post","login","u","changePassword","changePasswordAdmin","SelfReset","UpdateRole","GetRole","UpdateAccount","account","GetProfile","UpdateProfile","profile","GetLog","GetSetting","UpdateSetting","setting","LoaderService","isLoading","LoaderComponent","loaderService","subscribe","loading","Input","disableClose","hasBackdrop","SpaMatModule","NgModule","declarations","imports","exports","CommonModule","FormsModule","ReactiveFormsModule","MatMenuModule","MatSliderModule","MatTableModule","MatPaginatorModule","MatCheckboxModule","MatBadgeModule","MatButtonModule","MatIconModule","MatDialogModule","MatSnackBarModule","MatTabsModule","MatFormFieldModule","MatInputModule","MatCardModule","MatChipsModule","MatSelectModule","MatNativeDateModule","MatProgressSpinnerModule","MatListModule","MatAutocompleteModule","MatTooltipModule","MatSortModule","MatDatepickerModule","MatStepperModule","MatRadioModule","providers","provide","MAT_DIALOG_DEFAULT_OPTIONS","useValue","ɵ0","MAT_DATE_LOCALE","LoaderInterceptor","authService","requests","removeRequest","req","indexOf","splice","intercept","request","requestClone","clone","setHeaders","Authorization","Observable","observer","subscription","handle","event","HttpResponse","err","statusText","status","complete","unsubscribe","TinSpaComponent","NavMenuComponent","isExpanded","appConfig","AppConfig","rol","myRole","obj","collapse","toggle","redirectTo","TimeoutComponent","idle","keepalive","idleState","timedOut","lastPing","isWarning","setIdle","setTimeout","setInterrupts","DEFAULT_INTERRUPTSOURCES","onIdleStart","onIdleEnd","onTimeoutWarning","countdown","onTimeout","stopWatch","interval","onPing","startWatch","watch","stop","using","Idle","Keepalive","TableComponent","dataChange","EventEmitter","buttonClick","loadClick","createClick","colType","displayedColumns","_filterText","config","columns","forEach","element","styleString","actions","ngOnChanges","MatTableDataSource","paginator","tablePaginator","applyFilter","filterValue","filter","trim","toLowerCase","do","ActionResponse","emit","load","test","a","Greater","Less","NotEqual","Output","ViewChild","TilesComponent","clickable","tileClick","selected","clicked","tileName","DateComponent","date","FormControl","readonly","currentYear","getFullYear","min","max","onChangeEvent","TextComponent","hideRequiredControl","hint","placeholder","valueChange","format","leave","enterPress","rows","options","optionValue","optionDisplay","myControl","required","regex","control","Validators","minLength","maxLength","pattern","initFilter","ngAfterViewInit","setValidators","updateValueAndValidity","filteredOptions","valueChanges","startWith","map","_filter","option","includes","changed","changed2","leaved","enterPressed","validate","hasError","viewerDialog","isProcessing","fileNames","currIndex","currentFileUrl","imageDoc","path","setURL","previous","apiUrl","endsWith","window","change","ViewerComponent","dir","folderName","removable","remove","title","viewDocs","minWidth","maxWidth","removed","SelectComponent","readonlyMode","optionDisplayExtra","displayValue","selectChanged","CheckComponent","click","check","uncheck","unchecked","checked","AttachComponent","message","files","filesChange","upload","enableUpload","onFileDropped","$event","prepareFilesList","fileBrowseHandler","deleteFile","index","files_1","files_1_1","progress","formatBytes","bytes","decimals","dm","Math","floor","parseFloat","pow","toFixed","uploaded","filesChanged","DatetimeComponent","MoneyComponent","currency","DndDirective","fileDropped","onDragOver","evt","preventDefault","stopPropagation","fileOver","onDragLeave","ondrop","dataTransfer","HostBinding","HostListener","Directive","ChipsComponent","addable","chip","ActivityComponent","notes","notesMessage","HtmlComponent","editable","spellcheck","height","minHeight","translate","defaultParagraphSeparator","defaultFontName","toolbarHiddenButtons","customClasses","class","tag","OptionComponent","show","resetValue","LabelComponent","displayDefaultIndicatorType","StepsComponent","pushSteps","setStepper","stepper","selectedIndex","pushStepper","count","steps","_b","_c","STEPPER_GLOBAL_OPTIONS","ɵ0$1","TinSpaModule","entryComponents","withConfig","warnOnNgModelWithFormControl","MomentModule","NgxDocViewerModule","AngularEditorModule","NgIdleKeepaliveModule","forRoot","HTTP_INTERCEPTORS","useClass","multi","LocationStrategy","HashLocationStrategy","LoginComponent","storageService","dataService","User","hide","signup","recoverAccount","apiResponse","ds","dtUser","dtProfile","dtRole","setRole","dt","SignupComponent","Profile","Account","RecoverAccountComponent","location","recover","back","Location","SpaIndexModule","ChangePasswordComponent","ChangeUserPassword","ProfileComponent","selfProfile","loadProfile","dtProfiles","roles","dtRoles","approvalRoles","dtApprovalRoles","dtEmployees","loadRoles","gotoUsers","update","updateProfile","SpaUserModule","SettingsComponent","loadSettings","settings","updateSetting","sName","addSetting","LogsComponent","loadLogs","logs","logsPaginator","UsersComponent","UpdateData","users","usersPaginator","createAccount","viewProfile","lock","updateUser","unlock","enable","disable","deleteUser","AddUserDialog","dataserv","currentCount","Signup","EditUserDialog","myUser","Update","DeleteUser","myData","myResponse","viewRoleDialog","authserv","submit","addRoleDialog","capItems","editRoleDialog","isLoadComplete","RolesComponent","refresh","addRole","viewRole","editRole","deleteRole","ProfilesComponent","CreateAccountComponent","openProfile","SpaAdminModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\r\n\r\n\r\nimport { Core } from 'tin-core';\r\n\r\nexport enum LogLevel {\r\n All = 0,\r\n Debug = 1,\r\n Info = 2,\r\n Warn = 3,\r\n Error = 4,\r\n Fatal = 5,\r\n Off = 6,\r\n}\r\n\r\n\r\nexport class Tile{\r\n\r\n tileName: string;\r\n tileValue: string;\r\n tileColor: string;\r\n selected: string;\r\n visible?: boolean;\r\n info?: string;\r\n}\r\n\r\nexport class Step{\r\n name:string\r\n icon:string;\r\n}\r\n\r\nexport class TableConfig {\r\n\r\n enableFilter: boolean = false;\r\n create = new TableCreate();\r\n\r\n columns: TableColumn[];\r\n actions: TableAction[];\r\n\r\n greyout = new Condition();\r\n\r\n}\r\n\r\nexport class TableCreate{\r\n enabled: boolean\r\n display: string;\r\n}\r\n\r\nexport class TableColumn {\r\n\r\n constructor() {\r\n this.name = \"default\"\r\n this.display = \"default\"\r\n this.type = TableColumnType.String\r\n\r\n }\r\n\r\n public name: string;\r\n public display: string;\r\n public type?: TableColumnType;\r\n public icons?: Icon[];\r\n public color?: Color;\r\n}\r\n\r\nexport enum TableColumnType {\r\n String, Date, DateTime, Image, Icon, TextIcon, Chip\r\n}\r\n\r\n\r\n\r\nexport class Condition {\r\n constructor() {\r\n this.field = \"\";\r\n this.operator = Operator.Equal;\r\n this.value = \"\";\r\n }\r\n field: string;\r\n operator: Operator;\r\n value: string;\r\n}\r\n\r\nexport enum Operator{\r\nEqual, Less, Greater, NotEqual\r\n}\r\n\r\n\r\n\r\nexport class Color extends Condition {\r\n name: string;\r\n}\r\n\r\nexport class Icon extends Condition{\r\n name: string;\r\n hint?: string;\r\n color?: string;\r\n}\r\n\r\n\r\n\r\nexport class TableAction {\r\n\r\n name: string;\r\n show?: boolean;\r\n icon: string;\r\n color?: string;\r\n hint?: string;\r\n\r\n disappear?: Condition;\r\n disable?: Condition;\r\n\r\n}\r\n\r\n\r\n\r\nexport class ActionResponse {\r\n name: string;\r\n value;\r\n}\r\n\r\n\r\n\r\nexport class loginConfig{\r\n\r\n constructor(){\r\n this.appName = \"\";\r\n this.selfService = false;\r\n this.logo = \"\";\r\n this.logoSize = \"normal\";\r\n }\r\n\r\n appName: string;\r\n selfService: boolean;\r\n logo: string;\r\n logoSize: string;\r\n\r\n}\r\n\r\n\r\n export class AppConfig {\r\n constructor() {\r\n this.appName = \"App Name\";\r\n this.logo = \"\";\r\n this.ADAuth = true;\r\n this.localAuth = true;\r\n this.employees = false;\r\n this.approvals = false;\r\n }\r\n appName: string;\r\n logo: string;\r\n capItems: CapItem[];\r\n ADAuth: boolean;\r\n localAuth:boolean;\r\n employees: boolean;\r\n approvals: boolean;\r\n }\r\n\r\n export class CapItem {\r\n\r\n constructor(){\r\n this.name = \"\";\r\n this.display = \"New Cap Item\";\r\n this.enabled = false;\r\n this.type= \"\";\r\n this.newLine = false;\r\n this.showMenu =true;\r\n this.ignoreSubsDisplay = false;\r\n this.link = \"\";\r\n this.icon = \"navigate_next\";\r\n\r\n }\r\n\r\n name: string;\r\n display: string;\r\n enabled: boolean;\r\n showMenu: boolean;\r\n\r\n ignoreSubsDisplay: boolean;\r\n type: string;\r\n newLine: boolean;\r\n link: string;\r\n icon: string;\r\n capSubItems: CapItem[];\r\n\r\n\r\n\r\n }\r\n\r\n\r\n export class Role {\r\n\r\n constructor() {\r\n this.roleID = \"\" ;\r\n this.roleName = \"New Role\" ;\r\n this.cap1 = false ;\r\n this.cap2 = false ;\r\n this.cap3 = false ;\r\n this.cap4 = false ;\r\n this.cap5 = false ;\r\n this.cap6 = false ;\r\n this.cap7 = false ;\r\n this.cap8 = false ;\r\n this.cap9 = false ;\r\n this.cap10 = false ;\r\n this.cap11 = false ;\r\n this.cap12 = false ;\r\n this.cap13 = false ;\r\n this.cap14 = false ;\r\n this.cap15 = false ;\r\n this.cap16 = false ;\r\n this.cap17 = false ;\r\n this.cap18 = false ;\r\n this.cap19 = false ;\r\n this.cap20 = false ;\r\n this.cap21 = false ;\r\n this.cap22 = false ;\r\n this.cap23 = false ;\r\n this.cap24 = false ;\r\n this.cap25 = false ;\r\n this.cap26 = false ;\r\n this.cap27 = false ;\r\n this.cap28 = false ;\r\n this.cap29 = false ;\r\n this.cap30 = false ;\r\n this.cap31 = false ;\r\n this.cap32 = false ;\r\n this.cap33 = false ;\r\n this.cap34 = false ;\r\n this.cap35 = false ;\r\n this.cap36 = false ;\r\n this.cap37 = false ;\r\n this.cap38 = false ;\r\n this.cap39 = false ;\r\n this.cap40 = false ;\r\n this.cap41 = false ;\r\n this.cap42 = false ;\r\n this.cap43 = false ;\r\n this.cap44 = false ;\r\n this.cap45 = false ;\r\n this.cap46 = false ;\r\n this.cap47 = false ;\r\n this.cap48 = false ;\r\n this.cap49 = false ;\r\n this.cap50 = false ;\r\n this.cap51 = false ;\r\n this.cap52 = false ;\r\n this.cap53 = false ;\r\n this.cap54 = false ;\r\n this.cap55 = false ;\r\n this.cap56 = false ;\r\n this.cap57 = false ;\r\n this.cap58 = false ;\r\n this.cap59 = false ;\r\n this.cap60 = false ;\r\n this.cap61 = false ;\r\n this.cap62 = false ;\r\n this.cap63 = false ;\r\n this.cap64 = false ;\r\n this.cap65 = false ;\r\n this.cap66 = false ;\r\n this.cap67 = false ;\r\n this.cap68 = false ;\r\n this.cap69 = false ;\r\n this.cap70 = false ;\r\n this.cap71 = false ;\r\n this.cap72 = false ;\r\n this.cap73 = false ;\r\n this.cap74 = false ;\r\n this.cap75 = false ;\r\n this.cap76 = false ;\r\n this.cap77 = false ;\r\n this.cap78 = false ;\r\n this.cap79 = false ;\r\n this.cap80 = false ;\r\n this.cap81 = false ;\r\n this.cap82 = false ;\r\n this.cap83 = false ;\r\n this.cap84 = false ;\r\n this.cap85 = false ;\r\n this.cap86 = false ;\r\n this.cap87 = false ;\r\n this.cap88 = false ;\r\n this.cap89 = false ;\r\n this.cap90 = false ;\r\n this.cap91 = false ;\r\n this.cap92 = false ;\r\n this.cap93 = false ;\r\n this.cap94 = false ;\r\n this.cap95 = false ;\r\n this.cap96 = false ;\r\n this.cap97 = false ;\r\n this.cap98 = false ;\r\n this.cap99 = false ;\r\n this.cap100 = false ;\r\n }\r\n\r\n roleID: string;\r\n roleName: string;\r\n cap1: boolean;\r\n cap2: boolean;\r\n cap3: boolean;\r\n cap4: boolean;\r\n cap5: boolean;\r\n cap6: boolean;\r\n cap7: boolean;\r\n cap8: boolean;\r\n cap9: boolean;\r\n cap10: boolean;\r\n cap11: boolean;\r\n cap12: boolean;\r\n cap13: boolean;\r\n cap14: boolean;\r\n cap15: boolean;\r\n cap16: boolean;\r\n cap17: boolean;\r\n cap18: boolean;\r\n cap19: boolean;\r\n cap20: boolean;\r\n cap21: boolean;\r\n cap22: boolean;\r\n cap23: boolean;\r\n cap24: boolean;\r\n cap25: boolean;\r\n cap26: boolean;\r\n cap27: boolean;\r\n cap28: boolean;\r\n cap29: boolean;\r\n cap30: boolean;\r\n cap31: boolean;\r\n cap32: boolean;\r\n cap33: boolean;\r\n cap34: boolean;\r\n cap35: boolean;\r\n cap36: boolean;\r\n cap37: boolean;\r\n cap38: boolean;\r\n cap39: boolean;\r\n cap40: boolean;\r\n cap41: boolean;\r\n cap42: boolean;\r\n cap43: boolean;\r\n cap44: boolean;\r\n cap45: boolean;\r\n cap46: boolean;\r\n cap47: boolean;\r\n cap48: boolean;\r\n cap49: boolean;\r\n cap50: boolean;\r\n cap51: boolean;\r\n cap52: boolean;\r\n cap53: boolean;\r\n cap54: boolean;\r\n cap55: boolean;\r\n cap56: boolean;\r\n cap57: boolean;\r\n cap58: boolean;\r\n cap59: boolean;\r\n cap60: boolean;\r\n cap61: boolean;\r\n cap62: boolean;\r\n cap63: boolean;\r\n cap64: boolean;\r\n cap65: boolean;\r\n cap66: boolean;\r\n cap67: boolean;\r\n cap68: boolean;\r\n cap69: boolean;\r\n cap70: boolean;\r\n cap71: boolean;\r\n cap72: boolean;\r\n cap73: boolean;\r\n cap74: boolean;\r\n cap75: boolean;\r\n cap76: boolean;\r\n cap77: boolean;\r\n cap78: boolean;\r\n cap79: boolean;\r\n cap80: boolean;\r\n cap81: boolean;\r\n cap82: boolean;\r\n cap83: boolean;\r\n cap84: boolean;\r\n cap85: boolean;\r\n cap86: boolean;\r\n cap87: boolean;\r\n cap88: boolean;\r\n cap89: boolean;\r\n cap90: boolean;\r\n cap91: boolean;\r\n cap92: boolean;\r\n cap93: boolean;\r\n cap94: boolean;\r\n cap95: boolean;\r\n cap96: boolean;\r\n cap97: boolean;\r\n cap98: boolean;\r\n cap99: boolean;\r\n cap100: boolean;\r\n }\r\n\r\nexport class Account{\r\n user: User;\r\n profile: Profile;\r\n}\r\n\r\n\r\nexport class User {\r\n\r\n constructor(){\r\n\r\n this.userID = \"\";\r\n this.password = \"\";\r\n this.tries = \"0\";\r\n this.locked = \"0\";\r\n this.logged = \"0\";\r\n this.disabled = \"0\";\r\n this.changepassword = \"0\";\r\n this.dateCreated = Core.nowDate();\r\n this.dateUpdated = Core.nowDate();\r\n this.token = \"\";\r\n this.dateExpire = Core.nowDate();\r\n this.tokenExpire = Core.nowDate();\r\n this.authType = \"\";\r\n\r\n }\r\n\r\n userID: string;\r\n password: string;\r\n tries: string;\r\n locked: string;\r\n logged: string;\r\n disabled: string;\r\n changepassword: string;\r\n dateCreated: string;\r\n dateUpdated: string;\r\n dateExpire: string;\r\n token: string;\r\n tokenExpire: string;\r\n\r\n authType: string;\r\n}\r\n\r\nexport class ChangeUserPassword {\r\n\r\n constructor(){\r\n this.userID = \"\";\r\n this.currentPassword = \"\";\r\n this.newPassword = \"\";\r\n this.confirmPassword = \"\";\r\n }\r\n userID: string;\r\n currentPassword: string;\r\n newPassword: string;\r\n confirmPassword: string;\r\n}\r\n\r\nexport class Profile {\r\n\r\n constructor() {\r\n this.profileID = \"\" ;\r\n this.userID = \"\" ;\r\n this.roleID = \"1\" ;\r\n this.firstName = \"\" ;\r\n this.lastName = \"\" ;\r\n this.email = \"\" ;\r\n this.empID = \"\";\r\n this.arID = \"0\";\r\n this.authType = \"\";\r\n }\r\n\r\n profileID: string;\r\n userID: string;\r\n roleID: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n empID: string;\r\n arID: string;\r\n authType: string;\r\n }\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TinSpaService {\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n\r\n constructor() { }\r\n\r\n // Store the value\r\n async store(storageKey: string, value: any) {\r\n const encryptedValue = btoa(escape(JSON.stringify(value)));\r\n // const encryptedValue = JSON.stringify(value);\r\n await localStorage.setItem( storageKey, encryptedValue );\r\n }\r\n\r\n // Get the value\r\n async get(storageKey: string) {\r\n const ret = await localStorage.getItem( storageKey );\r\n return JSON.parse(unescape(atob(ret)));\r\n // return JSON.parse(ret);\r\n }\r\n\r\n // Remove\r\n async removeStorageItem(storageKey: string) {\r\n await localStorage.removeItem(storageKey);\r\n }\r\n\r\n // Clear storage\r\n async clear() {\r\n await localStorage.clear();\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n@Component({\r\n selector: 'lib-app-message',\r\n templateUrl: './messageDialog.component.html'\r\n})\r\n\r\nexport class messageDialog implements OnInit {\r\n\r\n constructor(private dialogRef: MatDialogRef<messageDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.messageType = this.data.type\r\n this._messageSubject = this.data.subject;\r\n this._messageDetails = this.data.details;\r\n\r\n }\r\n\r\n messageType;\r\n _messageSubject;\r\n _messageDetails;\r\n\r\n response(resp: string) {\r\n\r\n this.dialogRef.close(resp);\r\n\r\n }\r\n\r\n};\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { messageDialog } from \"../components/message/messageDialog.component\";\r\nimport { Observable, of } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MessageService {\r\n constructor(private snackBar: MatSnackBar, public dialog: MatDialog) {}\r\n\r\n public toast(msg: string) {\r\n this.snackBar.open(msg, \"OK\", { duration: 5000 });\r\n }\r\n\r\n public info(subject: string, details: string) {\r\n\r\n let type = \"info\";\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"600px\",\r\n data: {type, subject, details },\r\n });\r\n\r\n }\r\n\r\n public error( details: string) {\r\n\r\n let type = \"error\";\r\n let subject: \"\";\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"600px\",\r\n data: {type, subject, details },\r\n });\r\n\r\n }\r\n\r\n public confirm(msg: string): Observable<any> {\r\n\r\n let type = \"confirm\";\r\n let subject = \"\";\r\n let details = msg\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"400px\",\r\n data: {type, subject, details },\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(mergeMap((result) => {\r\n\r\n return of(result);\r\n\r\n }\r\n\r\n ));\r\n\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService {\r\n\r\n constructor() { }\r\n\r\n fileType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n fileExtension = '.xlsx';\r\n\r\n public exportExcel(jsonData: any[], fileName: string): void {\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(jsonData);\r\n const wb: XLSX.WorkBook = { Sheets: { 'data': ws }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\r\n this.saveExcelFile(excelBuffer, fileName);\r\n }\r\n\r\n private saveExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {type: this.fileType});\r\n FileSaver.saveAs(data, fileName + this.fileExtension);\r\n }\r\n}\r\n","import { Core } from 'tin-core';\r\nimport { logging } from 'protractor';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { LogLevel } from '../classes/Classes';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LogService {\r\n constructor() {}\r\n\r\n level: LogLevel = LogLevel.All;\r\n\r\n logToConsole: boolean = true;\r\n\r\n logToApi: boolean = false;\r\n\r\n debug(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Debug, optionalParams);\r\n }\r\n\r\n info(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Info, optionalParams);\r\n }\r\n\r\n warn(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Warn, optionalParams);\r\n }\r\n\r\n error(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Error, optionalParams);\r\n }\r\n\r\n fatal(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Fatal, optionalParams);\r\n }\r\n\r\n log(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.All, optionalParams);\r\n\r\n }\r\n\r\n private writeToLog(msg: string, level: LogLevel, params: any[]) {\r\n\r\n if (this.shouldLog(level)) {\r\n\r\n // Build log string\r\n let value: string = Core.getFormatedDate(Date(),false).replace(\"T\",\" \");\r\n // value += \" - Type: \" + LogLevel[this.level];\r\n value += \" - Message: \" + msg;\r\n\r\n\r\n if (params.length) {\r\n value += \" - Extra Info: \" + this.formatParams(params);\r\n }\r\n\r\n // Log the value\r\n if (this.logToConsole){\r\n console.log(value);\r\n }\r\n\r\n if (this.logToApi){\r\n //Call API post\r\n }\r\n\r\n }\r\n }\r\n\r\n private formatParams(params: any[]): string {\r\n\r\n let ret: string = params.join(\",\");\r\n // Is there at least one object in the array?\r\n if (params.some((p) => typeof p == \"object\")) {\r\n ret = \"\";\r\n // Build comma-delimited string\r\n for (let item of params) {\r\n ret += JSON.stringify(item) + \",\";\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n private shouldLog(level: LogLevel): boolean {\r\n\r\n let ret: boolean = false;\r\n\r\n if (\r\n (level >= this.level && level !== LogLevel.Off) ||\r\n this.level === LogLevel.All\r\n ) {\r\n ret = true;\r\n }\r\n\r\n return ret;\r\n }\r\n}\r\n\r\n\r\n\r\n","import { MessageService } from './message.service';\r\n//-----------------Change for Build and Reference purposes for SERVICES ONLY---------//\r\nimport { Constants, HttpService } from 'tin-core';\r\n// import { HttpService, Constants } from 'tin-core';\r\n//----------------------------------------------------------------------------------//\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, CanActivate } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { StorageService } from './storage.service';\r\nimport { LogService } from './log.service';\r\nimport { Role } from '../classes/Classes';\r\n// import { Constants } from \"tin-core\";\r\n\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService implements CanActivate {\r\n constructor(private storage: StorageService, public router: Router, private httpService: HttpService, private messageService: MessageService, private logService: LogService) {}\r\n\r\n\r\n //Logged in\r\n private loggedin: boolean = false;\r\n private loggedinSource = new BehaviorSubject(this.loggedin);\r\n public loggedinObserv = this.loggedinSource.asObservable();\r\n updateloggedin(loggedin: boolean) {\r\n this.loggedinSource.next(loggedin);\r\n this.loggedin = loggedin;\r\n }\r\n\r\n //Token\r\n private token: string = \"\";\r\n public tokenSource = new BehaviorSubject(this.token);\r\n public tokenObserv = this.tokenSource.asObservable();\r\n updateToken(newToken: string) {\r\n this.tokenSource.next(newToken);\r\n\r\n }\r\n\r\n //TokenExpire\r\n private tokenExpire: string = \"\";\r\n public tokenExpireSource = new BehaviorSubject(this.tokenExpire);\r\n public tokenExpireObserv = this.tokenExpireSource.asObservable();\r\n updateTokenExpire(newTokenExpire: string) {\r\n this.tokenExpireSource.next(newTokenExpire);\r\n\r\n }\r\n\r\n //Current User\r\n public currentUser: string = \"tnyagato\";\r\n private currentUserSource = new BehaviorSubject(this.currentUser);\r\n public currentUserObserv = this.currentUserSource.asObservable();\r\n updateCurrentUser(newUser: string) {\r\n this.currentUserSource.next(newUser.toLocaleLowerCase());\r\n this.currentUser = newUser.toLocaleLowerCase();\r\n }\r\n\r\n //Line Manager\r\n private islineManager: boolean = false;\r\n private isLineManagerSource = new BehaviorSubject(this.islineManager);\r\n public isLineManagerObserv = this.isLineManagerSource.asObservable();\r\n updateIsLineManager(manager: boolean) {\r\n this.isLineManagerSource.next(manager);\r\n }\r\n\r\n //Roles\r\n private currentRole = new Role;\r\n public currentRoleSource = new BehaviorSubject(this.currentRole);\r\n public myRoleObserv = this.currentRoleSource.asObservable();\r\n updateRole(role) {\r\n this.currentRoleSource.next(role);\r\n }\r\n\r\n //Logged in FirstName\r\n private loggedUserSource = new BehaviorSubject(\"tnyagato\");\r\n public loggedUserFullName = this.loggedUserSource.asObservable();\r\n updateLoggedUserFullName(username: string) {\r\n this.loggedUserSource.next(username);\r\n }\r\n\r\n\r\n //Authorisation\r\n isAuthorised(capName: string): boolean{\r\n\r\n\r\n\r\n if (!this.currentRoleSource.value[capName]) {\r\n // this.logService.info(`authorise: ${this.currentRoleSource.value.roleName} not authorised for ${capName}`);\r\n this.router.navigate([\"home\"]);\r\n this.messageService.toast(`Unauthorised: ${capName}`);\r\n\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n\r\n }\r\n\r\n isValidToken(){\r\n\r\n\r\n let tokenExpire: Date = new Date(this.tokenExpireSource.value);\r\n let nowDate: Date = new Date();\r\n\r\n\r\n let valid: boolean = tokenExpire > nowDate;\r\n\r\n if (!valid){\r\n\r\n this.router.navigate([\"login\"]);\r\n this.messageService.toast(`Expired Session`);\r\n }\r\n\r\n return valid\r\n\r\n }\r\n\r\n canActivate() {\r\n\r\n\r\n if (this.loggedin && this.isValidToken()) {\r\n // this.logService.info(\"authentication: logged in\");\r\n return true;\r\n }\r\n\r\n if (localStorage.getItem(Constants.AUTH_USER) === null) {\r\n // this.logService.info(\"authentication: not logged and no cache\");\r\n\r\n this.updateloggedin(false);\r\n this.router.navigate([\"login\"]);\r\n return false;\r\n\r\n } else {\r\n // this.logService.info(\"authentication: not logged but allowed login\");\r\n\r\n this.updateloggedin(true);\r\n\r\n this.storage.get(Constants.AUTH_USER).then((resp: any) => {\r\n this.updateCurrentUser(resp);\r\n // console.log(\"user: \" + resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_NAME).then((resp: any) => {\r\n this.updateLoggedUserFullName(resp);\r\n // console.log(\"name: \" + resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_ROLES).then((resp) => {\r\n let ret = JSON.parse(resp);\r\n\r\n this.updateRole(ret);\r\n // console.log(\"role: \" + ret.roleName);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_TOKEN).then((resp: any) => {\r\n this.updateToken(resp);\r\n // console.log(\"token: \" + resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_TOKEN_EXPIRE).then((resp: any) => {\r\n this.updateTokenExpire(resp);\r\n this.isValidToken();\r\n });\r\n\r\n\r\n return true;\r\n }\r\n }\r\n}\r\n","import { AppConfig, HttpService } from 'tin-core';\r\nimport { Injectable } from '@angular/core';\r\nimport { CapItem, User } from '../classes/Classes';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataService {\r\n\r\n constructor(private httpService: HttpService) {\r\n // httpService.apiUrl = \"http://localhost:20503/\";\r\n // httpService.apiUrl = \"http://localhost/basic/\";\r\n\r\n this.capUsers.name = \"cap3\";\r\n this.capUsers.display = \"Users\";\r\n this.capUsers.link = \"home/admin/users\";\r\n }\r\n\r\n capUsers = new CapItem;\r\n\r\n // public appConfig = new AppConfig; ///test\r\n\r\n public tmpProfileUserID = \"\";\r\n\r\n //Users\r\n\r\n public GetUser(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetUser?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n public UpdateUser(user, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateUser?action=\" + action, user);\r\n }\r\n\r\n public login(u: User) {\r\n return this.httpService.Post(\"Basic/login\", u);\r\n }\r\n\r\n public changePassword(u) {\r\n return this.httpService.Post(\"Basic/ChangePassword\", u);\r\n }\r\n\r\n public changePasswordAdmin(u) {\r\n return this.httpService.Post(\"Basic/ChangePasswordAdmin\", u);\r\n }\r\n\r\n public SelfReset(u: User): Observable<any> {\r\n return this.httpService.Post(\"Basic/SelfReset\", u);\r\n\r\n }\r\n\r\n\r\n //Roles\r\n\r\n public UpdateRole(role, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateRole?action=\" + action, role);\r\n }\r\n\r\n public GetRole(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetRole?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n\r\n //Account\r\n public UpdateAccount(account, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateAccount?action=\" + action, account);\r\n }\r\n\r\n //Profile\r\n\r\n public GetProfile(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetProfile?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n public UpdateProfile(profile, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateProfile?action=\" + action, profile);\r\n }\r\n\r\n //Logs\r\n public GetLog(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetLog?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n //Settings\r\n public GetSetting(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetSetting?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n public UpdateSetting(setting, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateSetting?action=\" + action, setting);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n public isLoading = new BehaviorSubject(false);\r\n constructor() { }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { LoaderService } from '../../services/loader.service';\r\n\r\n@Component({\r\n selector: 'spa-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.css']\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n constructor(private loaderService: LoaderService) {\r\n\r\n this.loaderService.isLoading.subscribe((v) => {\r\n // console.log(v);\r\n this.loading = v;\r\n });\r\n\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n @Input() logo = \"\";\r\n loading: boolean;\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n\r\n\r\n ],\r\n exports: [\r\n CommonModule,FormsModule, ReactiveFormsModule,\r\n MatMenuModule, MatSliderModule, MatTableModule, MatPaginatorModule,\r\n MatCheckboxModule, MatBadgeModule, MatButtonModule, MatIconModule, MatDialogModule, MatSnackBarModule,\r\n MatTabsModule, MatFormFieldModule, MatInputModule, MatCardModule, MatChipsModule, MatSelectModule,\r\n MatNativeDateModule, MatProgressSpinnerModule, MatListModule, MatAutocompleteModule, MatTooltipModule, MatSortModule,\r\n MatDatepickerModule, MatStepperModule, MatRadioModule,\r\n ],\r\n providers:[\r\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { disableClose: true, hasBackdrop: true } },\r\n { provide: MAT_DATE_LOCALE, useValue: \"en-GB\" },\r\n ]\r\n})\r\nexport class SpaMatModule { }\r\n","import { Router } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { MessageService } from './message.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpResponse, HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { LoaderService } from './loader.service';\r\nimport { LogService } from './log.service';\r\n\r\n@Injectable()\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n private requests: HttpRequest<any>[] = [];\r\n\r\n constructor(private loaderService: LoaderService, private messageService: MessageService, private authService: AuthService, private router: Router, private logService: LogService) { }\r\n\r\n\r\n removeRequest(req: HttpRequest<any>) {\r\n const i = this.requests.indexOf(req);\r\n if (i >= 0) {\r\n this.requests.splice(i, 1);\r\n }\r\n this.loaderService.isLoading.next(this.requests.length > 0);\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\r\n\r\n let requestClone = request.clone({\r\n setHeaders: {\r\n Authorization: \"Basic \" + btoa(this.authService.currentUser + \":\" + this.authService.tokenSource.value)\r\n // Authorization: \"Basic \" + btoa(this.authService.currentUser + \":\" + \"j5Toszfr@ys\")\r\n }\r\n });\r\n\r\n this.requests.push(requestClone);\r\n\r\n if (this.requests.length > 1){\r\n this.logService.info(\"Multiple connections detected > \" + this.requests.length)\r\n }\r\n\r\n // this.logService.info(\"Executed > \" + requestClone.url)\r\n\r\n\r\n this.loaderService.isLoading.next(true);\r\n\r\n return Observable.create(observer => {\r\n\r\n const subscription = next.handle(requestClone)\r\n .subscribe(\r\n event => {\r\n if (event instanceof HttpResponse) {\r\n this.removeRequest(requestClone);\r\n observer.next(event);\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n\r\n this.messageService.toast('error: ' + err.statusText)\r\n\r\n this.removeRequest(requestClone);\r\n observer.error(err);\r\n\r\n if (err.status === 401) {\r\n //request is unathorised\r\n this.router.navigate([\"login\"]);\r\n }\r\n\r\n },\r\n () => {\r\n this.removeRequest(requestClone);\r\n observer.complete();\r\n });\r\n\r\n\r\n // remove request from queue when cancelled\r\n return () => {\r\n this.removeRequest(requestClone);\r\n subscription.unsubscribe();\r\n };\r\n\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-tin-spa',\r\n template: `\r\n <p>\r\n tin-spa works!\r\n </p>\r\n `,\r\n styles: []\r\n})\r\nexport class TinSpaComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { DataService } from './../../services/data.service';\r\nimport { AppConfig } from './../../classes/Classes';\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.css']\r\n})\r\nexport class NavMenuComponent {\r\n\r\n constructor(public router: Router, public authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.authService.loggedUserFullName.subscribe(user => this.loggedUserFullName = user)\r\n this.authService.myRoleObserv.subscribe(rol => this.myRole = rol);\r\n this.authService.loggedinObserv.subscribe(obj => this.loggedin = obj)\r\n\r\n }\r\n\r\n myRole;\r\n loggedUserFullName: string;\r\n loggedin: boolean;\r\n isExpanded = false;\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n\r\n\r\n collapse() {\r\n this.isExpanded = false;\r\n }\r\n\r\n toggle() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n // logoff() {\r\n // // this.authService.updateloggedin(false);\r\n // // this.authService.updateRole(new Role());\r\n // this.router.navigate([\"login\"]);\r\n // // this.storageService.clear();\r\n // }\r\n\r\n redirectTo(link: string){\r\n\r\n if (link!=\"\"){\r\n this.router.navigate([link]);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\nimport {Idle, DEFAULT_INTERRUPTSOURCES} from '@ng-idle/core';\r\nimport {Keepalive} from '@ng-idle/keepalive';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-timeout',\r\n templateUrl: './timeout.component.html',\r\n styleUrls: ['./timeout.component.css']\r\n})\r\nexport class TimeoutComponent implements OnInit {\r\n\r\n constructor(private idle: Idle, private keepalive: Keepalive, public authService: AuthService, private router: Router) {\r\n\r\n this.authService.loggedinObserv.subscribe(obj => {\r\n this.loggedin = obj;\r\n // if (this.loggedin){\r\n // this.startWatch();\r\n // }else{\r\n // this.stopWatch();\r\n // }\r\n\r\n })\r\n\r\n // sets an idle timeout of 5 seconds, for testing purposes.\r\n idle.setIdle(900);\r\n // sets a timeout period of 5 seconds. after 10 seconds of inactivity, the user will be considered timed out.\r\n idle.setTimeout(10);\r\n // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document\r\n idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\r\n\r\n\r\n idle.onIdleStart.subscribe(() => {\r\n this.idleState = 'You\\'ve gone idle!';\r\n });\r\n\r\n idle.onIdleEnd.subscribe(() => {\r\n this.idleState = 'No longer idle.';\r\n this.isWarning = false;\r\n });\r\n\r\n idle.onTimeoutWarning.subscribe((countdown) => {\r\n this.idleState = 'You will be signed out in ' + countdown + ' seconds!';\r\n\r\n if (this.loggedin){\r\n this.isWarning = true;\r\n }\r\n\r\n });\r\n\r\n idle.onTimeout.subscribe(() => {\r\n this.idleState = 'Timed out!';\r\n this.timedOut = true;\r\n\r\n //action\r\n this.stopWatch();\r\n });\r\n\r\n\r\n\r\n\r\n\r\n // sets the ping interval to 15 seconds\r\n keepalive.interval(15);\r\n\r\n keepalive.onPing.subscribe(() => {\r\n this.lastPing = new Date();\r\n });\r\n\r\n this.startWatch();\r\n }\r\n\r\n loggedin = false;\r\n idleState = 'Not started.';\r\n timedOut = false;\r\n lastPing?: Date = null;\r\n isWarning = false;\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n startWatch() {\r\n this.idle.watch();\r\n this.idleState = 'Started.';\r\n this.timedOut = false;\r\n this.isWarning = false;\r\n }\r\n\r\n stopWatch(){\r\n this.idle.stop();\r\n this.isWarning = false;\r\n this.router.navigate(['login']);\r\n }\r\n\r\n using(){\r\n //remove message and continue\r\n this.isWarning = false;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActionResponse, Operator, TableColumnType, TableConfig } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'spa-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.css']\r\n})\r\nexport class TableComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n // console.log(\"Init\")\r\n this.config.columns.forEach(element => {\r\n this.displayedColumns.push(element.name);\r\n });\r\n\r\n this.displayedColumns.push(\"Action\")\r\n\r\n this.styleString = `width: ${50 * this.config.actions.length}px`;\r\n\r\n }\r\n\r\n ngOnChanges(){\r\n // console.log(\"OnChange\")\r\n this.data = new MatTableDataSource(this.data);\r\n this.data.paginator = this.tablePaginator;\r\n this.applyFilter(this._filterText);\r\n }\r\n\r\n\r\n @Input() config: TableConfig;\r\n @Input() data: any;\r\n @Output() dataChange = new EventEmitter();\r\n @Output() buttonClick = new EventEmitter();\r\n @Output() loadClick = new EventEmitter();\r\n @Output() createClick = new EventEmitter();\r\n\r\n @ViewChild('tablePaginator') tablePaginator: MatPaginator;\r\n\r\n colType = TableColumnType\r\n op = Operator\r\n\r\n displayedColumns: string[] = [];\r\n\r\n styleString: string;\r\n\r\n _filterText = \"\";\r\n applyFilter(filterValue: string) {\r\n this.data.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n do(name, item) {\r\n\r\n let resp = new ActionResponse();\r\n resp.name = name;\r\n resp.value = item;\r\n this.buttonClick.emit(resp);\r\n }\r\n\r\n\r\n create(){\r\n this.createClick.emit();\r\n }\r\n\r\n load(){\r\n this.loadClick.emit();\r\n }\r\n\r\n test(a:any, op: Operator, b: any){\r\n\r\n if (op == Operator.Equal){\r\n if (a == b){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.Greater) {\r\n if (a > b) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.Less) {\r\n if (a < b) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.NotEqual) {\r\n if (a != b) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Tile } from '../../classes/Classes';\r\n\r\n\r\n@Component({\r\n selector: 'spa-tiles',\r\n templateUrl: './tiles.component.html',\r\n styleUrls: ['./tiles.component.css']\r\n})\r\nexport class TilesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() tiles: Tile[];\r\n\r\n @Input() clickable: boolean = false;\r\n @Output() tileClick = new EventEmitter();\r\n\r\n selected: string = \"\";\r\n\r\n clicked(v: Tile){\r\n\r\n if(!this.clickable) return;\r\n\r\n\r\n if(this.selected == v.tileName){\r\n this.tileClick.emit(\"\");\r\n this.selected = \"\";\r\n }else{\r\n this.tileClick.emit(v.tileName);\r\n this.selected = v.tileName;\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { EventEmitter } from 'protractor';\r\nimport { Core } from \"tin-core\";\r\n\r\n@Component({\r\n selector: 'spa-date',\r\n templateUrl: './date.component.html',\r\n styleUrls: ['./date.component.css']\r\n})\r\nexport class DateComponent implements OnInit {\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() date = new FormControl(new Date());\r\n @Input() display = \"\";\r\n @Input() readonly = false;\r\n\r\n currentYear = new Date().getFullYear();\r\n @Input() min = new FormControl(new Date(this.currentYear - 50, 0, 1));\r\n @Input() max = new FormControl(new Date(this.currentYear + 50, 0, 1));\r\n\r\n // @Output() dateChange = new EventEmitter();\r\n\r\n\r\n // minDate: Date = new Date(this.currentYear, 2, 2);\r\n // maxDate: Date = new Date(this.currentYear, 2, 10);\r\n\r\n\r\n onChangeEvent(d){\r\n // this.dateChange.emit(d);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'spa-text',\r\n templateUrl: './text.component.html',\r\n styleUrls: ['./text.component.css']\r\n})\r\nexport class TextComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n if(this.options.length > 0){\r\n this.initFilter();\r\n }\r\n\r\n if (this.placeholder == \"\") {\r\n this.placeholder = this.display;\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit(){\r\n\r\n if (this.readonly) {\r\n this.control.setValidators(null);\r\n this.control.updateValueAndValidity();\r\n }\r\n if (!this.required && !this.readonly){\r\n\r\n this.control.setValidators([Validators.minLength(this.min), Validators.maxLength(this.max), Validators.pattern(this.regex)]);\r\n this.control.updateValueAndValidity();\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // options: FormGroup;\r\n hideRequiredControl = new FormControl(true);\r\n\r\n @Input() readonly = false;\r\n @Input() hint = \"\";\r\n @Input() display = \"\";\r\n @Input() placeholder = \"\";\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() format = \"text\";\r\n\r\n @Output() leave = new EventEmitter();\r\n @Output() enterPress = new EventEmitter();\r\n\r\n @Input() rows = \"\";\r\n @Input() width = \"100%\"\r\n\r\n\r\n //Autocomplete items\r\n @Input() options: any = [];\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n\r\n myControl = new FormControl();\r\n filteredOptions: Observable<string[]>;\r\n\r\n private initFilter() {\r\n this.filteredOptions = this.myControl.valueChanges.pipe(\r\n startWith(\"\"),\r\n map((value) => this._filter(value))\r\n );\r\n }\r\n\r\n private _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.options.filter((option) => option[`${this.optionDisplay}`].toLowerCase().includes(filterValue));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n //validations\r\n @Input() required = true;\r\n @Input() min = 0;\r\n @Input() max = 9000000000000000; //Math.max\r\n @Input() regex = \"\" //\"[a-zA-Z ]*\" //\"/\\S+@\\S+\\.\\S+/\";\r\n\r\n changed(){\r\n // console.log(\"value: \" + this.value)\r\n // console.log(\"cont: \" + this.myControl.value)\r\n\r\n // if (this.options.length > 0) {\r\n // this.value = this.myControl.value;\r\n // }\r\n\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n changed2() {\r\n // console.log(\"value: \" + this.value)\r\n // console.log(\"cont: \" + this.myControl.value)\r\n\r\n // if (this.options.length > 0) {\r\n // this.value = this.myControl.value;\r\n // }\r\n\r\n this.valueChange.emit(this.myControl.value);\r\n\r\n }\r\n\r\n leaved(){\r\n this.leave.emit();\r\n }\r\n\r\n enterPressed() {\r\n this.enterPress.emit();\r\n }\r\n\r\n control = new FormControl( this.value, [Validators.required, Validators.minLength(this.min), Validators.maxLength(this.max), Validators.pattern(this.regex) ]);\r\n\r\n validate() : string{\r\n\r\n\r\n if ((this.required || this.min > 0) && this.control.hasError('required') ){\r\n return `Required`;\r\n }\r\n\r\n if (this.control.hasError('minlength') ){\r\n return `Minimun length is ${this.min}`;\r\n }\r\n\r\n if (this.control.hasError('maxlength')) {\r\n return `Maximum length is ${this.max}`;\r\n }\r\n\r\n if (this.control.hasError('pattern')) {\r\n return `Invalid Input`;\r\n }\r\n\r\n\r\n // if (this.regex != \"\"){\r\n\r\n // let r = new RegExp(this.regex, \"g\");\r\n\r\n // if (!r.test(this.value)){\r\n // this.valid = false;\r\n // this.errorMessage = \"Invalid input\";\r\n // return this.errorMessage;\r\n // }\r\n // }\r\n\r\n return \"\";\r\n }\r\n\r\n}\r\n","//-------------------------------------------EDIT\r\n\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpService } from 'tin-core';\r\n\r\n@Component({\r\n selector: 'app-editRequest',\r\n templateUrl: './viewerDialog.component.html',\r\n styleUrls: ['./viewer.component.css']\r\n})\r\nexport class viewerDialog implements OnInit {\r\n\r\n constructor(private httpService: HttpService, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n ngOnInit() {\r\n\r\n this.fileNames = this.data.fileNames;\r\n this.path = this.data.path;\r\n this.fileName = this.data.fileName;\r\n this.currIndex = this.data.fileNames.indexOf(this.fileName);\r\n this.setURL();\r\n\r\n }\r\n\r\n isProcessing: boolean = false;\r\n\r\n path: string;\r\n fileNames = new Array();\r\n fileName: string;\r\n currIndex = 0;\r\n\r\n currentFileUrl = \"\";\r\n\r\n\r\n previous() {\r\n\r\n if (this.fileNames.length == 0) {\r\n return;\r\n }\r\n\r\n if (this.currIndex -1 >= 0)\r\n {\r\n this.currIndex = this.currIndex - 1;\r\n }\r\n else if (this.currIndex == 0)\r\n {\r\n this.currIndex = this.fileNames.length -1;\r\n }\r\n\r\n this.setURL();\r\n\r\n }\r\n\r\n next() {\r\n\r\n if (this.fileNames.length == 0){\r\n return;\r\n }\r\n\r\n if (this.currIndex +1 < this.fileNames.length)\r\n {\r\n this.currIndex = this.currIndex + 1;\r\n }\r\n else if (this.currIndex +1 > this.fileNames.length -1)\r\n {\r\n this.currIndex = 0;\r\n }\r\n\r\n this.setURL();\r\n\r\n }\r\n\r\n imageDoc = false;\r\n setURL() {\r\n // this.currentFileUrl = this.httpService.apiUrl.replace(\"/api/\", \"/files/\") + '' + \"/\" + this.files[this.currIndex];\r\n\r\n this.currentFileUrl = `${this.httpService.apiUrl.replace(\"/api/\", \"/\")}${this.path.replace(\"//\", \"/\")}/${this.fileNames[this.currIndex]}` ;\r\n\r\n if (this.currentFileUrl.toLocaleLowerCase().endsWith(\".pdf\") || this.currentFileUrl.toLocaleLowerCase().endsWith(\".jpg\") || this.currentFileUrl.toLocaleLowerCase().endsWith(\".jpeg\")){\r\n this.imageDoc = true;\r\n }else{\r\n this.imageDoc = false\r\n window.open(this.currentFileUrl, '_blank');\r\n\r\n }\r\n\r\n }\r\n\r\n change(fileName){\r\n\r\n this.currIndex = this.fileNames.indexOf(fileName);\r\n this.setURL();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { viewerDialog } from './viewerDialog.component';\r\n\r\n@Component({\r\n selector: 'spa-viewer',\r\n templateUrl: './viewer.component.html',\r\n styleUrls: ['./viewer.component.css']\r\n})\r\nexport class ViewerComponent implements OnInit {\r\n\r\n constructor(public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n // console.log(`${this.dir}/${this.folderName}`)\r\n }\r\n\r\n\r\n @Input() dir = \"\";\r\n @Input() folderName=\"\";\r\n @Input() fileNames = new Array()\r\n @Input() removable = false;\r\n @Output() remove = new EventEmitter();\r\n @Input() display = \"Documents\";\r\n @Input() title = \"Documents\";\r\n\r\n // fileList: string[];\r\n\r\n\r\n viewDocs(fileName: string) {\r\n\r\n if (typeof fileName != 'string') {\r\n return;\r\n }\r\n\r\n\r\n // console.log(\"opening doc: \" + fileName)\r\n\r\n const dialogRef = this.dialog.open(viewerDialog, {\r\n minWidth: '1500px',\r\n maxWidth: '80vw',\r\n\r\n data: { fileNames: this.fileNames, fileName: fileName, path:`${this.dir}/${this.folderName}` }\r\n });\r\n\r\n }\r\n\r\n removed(i){\r\n this.remove.emit(i);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.css']\r\n})\r\nexport class SelectComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n // this.displayValue = this.options.filter((m) => m.optionValue == this.value)\r\n // console.log(this.displayValue)\r\n // this.displayValue = this.value\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n if (this.readonlyMode != \"\" && this.options.length > 0){\r\n this.displayValue = this.options.filter((m) => m[`${this.optionValue}`] == this.value)[0][`${this.optionDisplay}`]\r\n }\r\n\r\n }\r\n\r\n displayValue;\r\n\r\n @Input() width = \"100%\"\r\n @Input() readonly = false;\r\n @Input() readonlyMode = \"\";\r\n @Input() hint = \"\";\r\n\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Input() options: any;\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n @Input() optionDisplayExtra = \"\";\r\n\r\n @Output() valueChange = new EventEmitter();\r\n\r\n\r\n\r\n changed(){\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n selectChanged(){\r\n\r\n }\r\n\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'spa-check',\r\n templateUrl: './check.component.html',\r\n styleUrls: ['./check.component.css']\r\n})\r\nexport class CheckComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() readonly = false;\r\n @Input() display = \"\";\r\n @Input() value = false;\r\n @Output() valueChange = new EventEmitter();\r\n @Output() click = new EventEmitter();\r\n @Output() check = new EventEmitter();\r\n @Output() uncheck = new EventEmitter();\r\n\r\n changed(){\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n clicked(){\r\n this.click.emit();\r\n\r\n if(!this.value){\r\n this.checked();\r\n }else{\r\n this.unchecked();\r\n }\r\n }\r\n\r\n checked(){\r\n this.check.emit();\r\n }\r\n unchecked(){\r\n this.uncheck.emit();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'spa-attach',\r\n templateUrl: './attach.component.html',\r\n styleUrls: ['./attach.component.scss']\r\n})\r\nexport class AttachComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() message = \"Drag and drop files here\"\r\n @Input() files: any[] = [];\r\n @Output() filesChange = new EventEmitter();\r\n @Output() upload = new EventEmitter();\r\n\r\n\r\n @Input() enableUpload = false;\r\n\r\n\r\n /**\r\n * on file drop handler\r\n */\r\n onFileDropped($event) {\r\n this.prepareFilesList($event);\r\n }\r\n\r\n /**\r\n * handle file from browsing\r\n */\r\n fileBrowseHandler(files) {\r\n this.prepareFilesList(files);\r\n }\r\n\r\n /**\r\n * Delete file from files list\r\n * @param index (File index)\r\n */\r\n deleteFile(index: number) {\r\n this.files.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Simulate the upload process\r\n */\r\n // uploadFilesSimulator(index: number) {\r\n // setTimeout(() => {\r\n // if (index === this.files.length) {\r\n // return;\r\n // } else {\r\n // const progressInterval = setInterval(() => {\r\n // if (this.files[index].progress === 100) {\r\n // clearInterval(progressInterval);\r\n // this.uploadFilesSimulator(index + 1);\r\n // } else {\r\n // this.files[index].progress += 5;\r\n // }\r\n // }, 200);\r\n // }\r\n // }, 1000);\r\n // }\r\n\r\n /**\r\n * Convert Files list to normal array list\r\n * @param files (Files List)\r\n */\r\n prepareFilesList(files: Array<any>) {\r\n for (const item of files) {\r\n item.progress = 0;\r\n this.files.push(item);\r\n }\r\n // this.uploadFilesSimulator(0);\r\n }\r\n\r\n /**\r\n * format bytes\r\n * @param bytes (File size in bytes)\r\n * @param decimals (Decimals point)\r\n */\r\n formatBytes(bytes, decimals) {\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n const k = 1024;\r\n const dm = decimals <= 0 ? 0 : decimals || 2;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n }\r\n\r\n uploaded(){\r\n this.upload.emit();\r\n }\r\n\r\n filesChanged(){\r\n this.filesChange.emit(this.files);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-datetime',\r\n templateUrl: './datetime.component.html',\r\n styleUrls: ['./datetime.component.css']\r\n})\r\nexport class DatetimeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() readonly = false;\r\n\r\n @Input() min = \"01 jan 1900\";\r\n\r\n @Input() max = \"31 dec 9999\";\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n// import { CurrencyPipe } from '@angular/common';\r\nimport { Core } from 'tin-core';\r\n\r\n@Component({\r\n selector: 'spa-money',\r\n templateUrl: './money.component.html',\r\n styleUrls: ['./money.component.css']\r\n})\r\nexport class MoneyComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n }\r\n\r\n @Input() readonly = false;\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n\r\n @Input() width = \"100%\"\r\n @Input() hint = \"\";\r\n @Input() currency = \"$\";\r\n\r\n\r\n\r\n\r\n\r\n changed(){\r\n\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n\r\n}\r\n","import {\r\n Directive,\r\n Output,\r\n Input,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDnd]'\r\n})\r\nexport class DndDirective {\r\n @HostBinding('class.fileover') fileOver: boolean;\r\n @Output() fileDropped = new EventEmitter<any>();\r\n\r\n // Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = true;\r\n }\r\n\r\n // Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n }\r\n\r\n // Drop listener\r\n @HostListener('drop', ['$event']) public ondrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n let files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files);\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MessageService } from '../../services/message.service';\r\n@Component({\r\n selector: 'spa-chips',\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.css']\r\n})\r\nexport class ChipsComponent implements OnInit {\r\n\r\n constructor(private messageService: MessageService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n @Input() icon = \"\";\r\n @Input() removable = false;\r\n @Input() addable = false;\r\n\r\n\r\n\r\n @Input() chips: string[];\r\n // @Output() chipClick = new EventEmitter();\r\n\r\n @Output() click = new EventEmitter();\r\n\r\n @Output() remove = new EventEmitter();\r\n\r\n clicked(chip: string) {\r\n\r\n console.log(\"Clicked chip: \" + chip)\r\n\r\n if (typeof chip != 'string') {\r\n return;\r\n }\r\n\r\n if (chip) {\r\n this.click.emit(chip);\r\n }\r\n }\r\n\r\n\r\n removed(chip) {\r\n\r\n // const index = this.chips.indexOf(chip);\r\n\r\n // if (index >= 0) {\r\n // this.chips.splice(index, 1);\r\n // }\r\n\r\n this.messageService.confirm(`Remove ${chip} ?`).subscribe((result) => {\r\n if (result == \"yes\") {\r\n\r\n this.remove.emit(chip);\r\n\r\n };\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-activity',\r\n templateUrl: './activity.component.html',\r\n styleUrls: ['./activity.component.css']\r\n})\r\nexport class ActivityComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() notes = new Array();\r\n notesMessage: string = \"Empty\";\r\n @Input() title = \"Notes\"\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n@Component({\r\n selector: 'spa-html',\r\n templateUrl: './html.component.html',\r\n styleUrls: ['./html.component.css']\r\n})\r\nexport class HtmlComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() readonly = false;\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n ngOnChanges() {\r\n // console.log(\"OnChange\")\r\n this.config.editable = !this.readonly;\r\n\r\n }\r\n\r\n @Input() config: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: 'auto',\r\n minHeight: '5rem',\r\n placeholder: 'Enter text here...',\r\n translate: 'no',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: 'Arial',\r\n toolbarHiddenButtons: [\r\n [\r\n 'bold',\r\n 'italic',\r\n 'underline',\r\n 'strikeThrough',\r\n 'subscript',\r\n 'superscript',\r\n 'justifyLeft',\r\n 'justifyCenter',\r\n 'justifyRight',\r\n 'justifyFull',\r\n 'indent',\r\n 'outdent',\r\n 'insertUnorderedList',\r\n 'insertOrderedList',\r\n 'heading',\r\n 'fontName'\r\n ],\r\n [\r\n 'fontSize',\r\n 'textColor',\r\n 'backgroundColor',\r\n 'customClasses',\r\n 'link',\r\n 'unlink',\r\n 'insertImage',\r\n 'insertVideo',\r\n 'insertHorizontalRule',\r\n 'removeFormat',\r\n 'toggleEditorMode'\r\n ]\r\n ],\r\n customClasses: [\r\n {\r\n name: \"quote\",\r\n class: \"quote\",\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: \"titleText\",\r\n class: \"titleText\",\r\n tag: \"h1\",\r\n },\r\n ]\r\n };\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-option',\r\n templateUrl: './option.component.html',\r\n styleUrls: ['./option.component.css']\r\n})\r\nexport class OptionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n\r\n @Input() options: any;\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n @Input() readonly = false;\r\n\r\n @Input() value = \"\";\r\n @Input() display = \"\";\r\n @Input() show: boolean = false;\r\n\r\n\r\n @Output() valueChange = new EventEmitter();\r\n @Output() enterPress = new EventEmitter();\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n enterPressed(){\r\n this.valueChange.emit();\r\n }\r\n\r\n resetValue(){\r\n this.value = \"\";\r\n this.changed();\r\n\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-label',\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.css']\r\n})\r\nexport class LabelComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Input() format = \"text\";\r\n\r\n}\r\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { Step } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'spa-steps',\r\n templateUrl: './steps.component.html',\r\n styleUrls: ['./steps.component.css'],\r\n providers: [{\r\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\r\n }]\r\n})\r\nexport class StepsComponent implements OnInit, AfterViewInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n // console.log(\"OnChange\")\r\n this.pushSteps();\r\n }\r\n\r\n @ViewChild('stepper') stepper: MatStepper;\r\n @Input() value = \"\";\r\n @Input() steps: Step[];\r\n\r\n setStepper() {\r\n\r\n if (this.value == \"\") return;\r\n\r\n // console.log(this.value)\r\n\r\n // this.stepper.disableRipple = true;\r\n this.stepper.selectedIndex = 0;\r\n\r\n switch (this.value) {\r\n\r\n\r\n\r\n case \"Draft\":\r\n this.stepper.selectedIndex = 0;\r\n break;\r\n\r\n case \"Head Approval\":\r\n this.pushStepper(1)\r\n break;\r\n\r\n case \"CE Approval\":\r\n this.pushStepper(2)\r\n break;\r\n\r\n case \"Booking\":\r\n this.pushStepper(3)\r\n break;\r\n\r\n case \"BTA Approval\":\r\n this.pushStepper(4)\r\n break;\r\n\r\n case \"Travel\":\r\n this.pushStepper(5)\r\n break;\r\n\r\n case \"BTR Approval\":\r\n this.pushStepper(6)\r\n break;\r\n\r\n case \"Travel Closure\":\r\n this.pushStepper(7)\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n pushStepper(count: number) {\r\n\r\n for (let index = 0; index < count + 1; index++) {\r\n // const element = array[index];\r\n this.stepper.selectedIndex = index;\r\n // console.log(\"pushed\")\r\n\r\n }\r\n\r\n }\r\n\r\n pushSteps(){\r\n\r\n if(this.steps.length == 0) return;\r\n if (this.value == \"\") return;\r\n this.stepper.selectedIndex = 0;\r\n\r\n\r\n let i = 0;\r\n\r\n for (let step of this.steps) {\r\n\r\n if (step.name != this.value) {\r\n\r\n this.stepper.selectedIndex = i;\r\n i++;\r\n\r\n } else {\r\n\r\n this.stepper.selectedIndex = i;\r\n // console.log(\"Stopped\")\r\n break;\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { LoaderComponent } from './components/loader/loader.component';\r\nimport { SpaMatModule } from \"./modules/spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LoaderInterceptor } from './services/loader-interceptor.service';\r\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive';\r\nimport { MomentModule } from 'angular2-moment';\r\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\r\n\r\nimport { TinSpaComponent } from \"./components/tin-spa.component\";\r\nimport { NavMenuComponent } from \"./components/nav-menu/nav-menu.component\";\r\nimport { messageDialog } from \"./components/message/messageDialog.component\";\r\nimport { TimeoutComponent } from './components/timeout/timeout.component';\r\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { TableComponent } from './components/table/table.component';\r\nimport { TilesComponent } from './components/tiles/tiles.component';\r\nimport { DateComponent } from './components/date/date.component';\r\nimport { TextComponent } from './components/text/text.component';\r\nimport { ViewerComponent } from './components/viewer/viewer.component';\r\nimport { SelectComponent } from './components/select/select.component';\r\nimport { CheckComponent } from './components/check/check.component';\r\nimport { AttachComponent } from './components/attach/attach.component';\r\nimport { DatetimeComponent } from './components/datetime/datetime.component';\r\nimport { MoneyComponent } from './components/money/money.component';\r\nimport { DndDirective } from './dnd.directive';\r\nimport { ChipsComponent } from './components/chips/chips.component';\r\nimport { ActivityComponent } from './components/activity/activity.component';\r\nimport { viewerDialog } from './components/viewer/viewerDialog.component';\r\nimport { HtmlComponent } from './components/html/html.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { OptionComponent } from './components/option/option.component';\r\nimport { LabelComponent } from './components/label/label.component';\r\nimport { StepsComponent } from './components/steps/steps.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [DndDirective,TinSpaComponent, messageDialog, NavMenuComponent, LoaderComponent,\r\n TimeoutComponent, TableComponent, TilesComponent, DateComponent, TextComponent,\r\n ViewerComponent, SelectComponent, CheckComponent, AttachComponent, DatetimeComponent,\r\n MoneyComponent,\r\n ChipsComponent,\r\n ActivityComponent, viewerDialog, HtmlComponent, OptionComponent, LabelComponent, StepsComponent ],\r\n\r\n entryComponents: [messageDialog],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n MomentModule,\r\n NgxDocViewerModule,\r\n AngularEditorModule,\r\n\r\n NgIdleKeepaliveModule.forRoot()\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n TinSpaComponent,\r\n messageDialog,\r\n NavMenuComponent,\r\n LoaderComponent,\r\n TimeoutComponent,\r\n TableComponent,\r\n TilesComponent,\r\n DateComponent,\r\n ViewerComponent,\r\n SelectComponent,\r\n TextComponent,\r\n DatetimeComponent,\r\n CheckComponent,\r\n AttachComponent,\r\n MoneyComponent,\r\n ChipsComponent,\r\n ActivityComponent,\r\n HtmlComponent,\r\n OptionComponent,\r\n LabelComponent,\r\n StepsComponent\r\n\r\n ],\r\n\r\n providers: [\r\n\r\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },\r\n { provide: LocationStrategy, useClass: HashLocationStrategy}\r\n ],\r\n})\r\nexport class TinSpaModule {}\r\n","//-----------------Change for Build and Reference purposes for SERVICES ONLY---------//\r\nimport { HttpService, ApiResponse, Core, Constants } from \"tin-core\";\r\n// import { HttpService,ApiResponse, Core, Constants } from 'tin-core';\r\n//----------------------------------------------------------------------------------//\r\nimport { MessageService } from \"../../services/message.service\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { LogService } from \"./../../services/log.service\";\r\n// import { AuthService } from \"../services/auth.service\";\r\n// import { ApiResponse, Core } from \"../classes/TinCore\";\r\nimport { User, loginConfig, AppConfig } from \"../../classes/Classes\";\r\nimport { CurrencyPipe } from \"@angular/common\";\r\n// import { StorageService } from \"../services/storage.service\";\r\n// import { Constants } from \"../../classes/TinSpa\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"spa-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n constructor(\r\n private httpService: HttpService,\r\n private storageService: StorageService,\r\n public router: Router,\r\n private messageService: MessageService,\r\n private dataService: DataService,\r\n public authService: AuthService,\r\n private logService: LogService\r\n ) {}\r\n\r\n public user = new User();\r\n hide = true;\r\n isProcessing: boolean = false;\r\n @Input() config: loginConfig;\r\n\r\n ngOnInit() {\r\n this.authService.updateloggedin(false);\r\n this.authService.updateRole(null);\r\n this.storageService.clear();\r\n }\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n public signup() {\r\n this.router.navigate([\"signup\"]);\r\n }\r\n\r\n public recoverAccount() {\r\n this.router.navigate([\"recover-account\"]);\r\n }\r\n\r\n public login() {\r\n\r\n if (this.user.userID == \"\" || this.user.password == \"\") {\r\n this.messageService.toast(\"Please enter your credentials\");\r\n return;\r\n }\r\n\r\n\r\n this.logService.info(\"logging in\");\r\n\r\n this.isProcessing = true;\r\n\r\n this.dataService.login(this.user).subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n\r\n\r\n if (apiResponse.ds.dtUser[0][\"authType\"] == 'local' && !this.appConfig.localAuth){\r\n this.messageService.toast(\"Contact Admin: Authentication Type error\");\r\n return;\r\n }\r\n\r\n if (apiResponse.ds.dtUser[0][\"authType\"] == 'AD' && !this.appConfig.ADAuth) {\r\n this.messageService.toast(\"Contact Admin: Authentication Type error\");\r\n return;\r\n }\r\n\r\n\r\n this.authService.updateloggedin(true);\r\n\r\n this.authService.updateToken(apiResponse.ds.dtUser[0][\"token\"]);\r\n this.storageService.store(Constants.AUTH_TOKEN, apiResponse.ds.dtUser[0][\"token\"]);\r\n\r\n this.authService.updateTokenExpire(apiResponse.ds.dtUser[0][\"tokenExpire\"]);\r\n this.storageService.store(Constants.AUTH_TOKEN_EXPIRE, apiResponse.ds.dtUser[0][\"tokenExpire\"]);\r\n\r\n this.authService.updateCurrentUser(this.user.userID);\r\n this.storageService.store(Constants.AUTH_USER, this.user.userID);\r\n\r\n this.authService.updateLoggedUserFullName( apiResponse.ds.dtProfile[0][\"firstName\"] );\r\n this.storageService.store(Constants.AUTH_NAME, apiResponse.ds.dtProfile[0][\"firstName\"]\r\n );\r\n\r\n this.authService.updateRole(apiResponse.ds.dtRole[0]);\r\n this.storageService.store(Constants.AUTH_ROLES, JSON.stringify(apiResponse.ds.dtRole[0]));\r\n // this.setRole(apiResponse.dt[0][\"accessLevel\"]);\r\n\r\n // this.setRole(\"1\");\r\n\r\n if (apiResponse.ds.dtUser[0][\"changePassword\"] == \"0\") {\r\n this.router.navigate([\"home\"]);\r\n // this.messageService.toast(\"Welcome\");\r\n this.logService.info(\"logged in\");\r\n } else {\r\n this.router.navigate([\"home/user/change-password\"]);\r\n }\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n this.user.password = \"\";\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n setRole(roleID: string) {\r\n this.dataService\r\n .GetRole(\"id\", roleID)\r\n .subscribe((apiResponse: ApiResponse) => {\r\n this.authService.updateRole(apiResponse.dt[0]);\r\n\r\n this.storageService.store(\r\n Constants.AUTH_ROLES,\r\n JSON.stringify(apiResponse.dt[0])\r\n );\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpService, ApiResponse } from 'tin-core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { DataService } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { User, Profile, Account } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'spa-signup',\r\n templateUrl: './signup.component.html',\r\n styleUrls: ['./signup.component.css']\r\n})\r\nexport class SignupComponent implements OnInit {\r\n\r\n\r\n constructor(private httpService: HttpService, private messageService: MessageService, private dataService: DataService, private authService: AuthService,) { }\r\n\r\n ngOnInit() {\r\n\r\n this.account.user = this.user;\r\n this.account.profile = this.profile;\r\n }\r\n\r\n isProcessing: boolean = false;\r\n user = new User();\r\n profile = new Profile();\r\n\r\n account = new Account();\r\n\r\n confirmPassword: string;\r\n\r\n\r\ncreate(){\r\n\r\n this.profile.userID = this.user.userID;\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateAccount(this.account,\"add\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Account Created\");\r\n\r\n this.user = new User();\r\n this.profile = new Profile();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n}\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataService } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { User } from '../../classes/Classes';\r\nimport { ApiResponse } from 'tin-core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'spa-recover-account',\r\n templateUrl: './recover-account.component.html',\r\n styleUrls: ['./recover-account.component.css']\r\n})\r\nexport class RecoverAccountComponent implements OnInit {\r\n\r\n constructor(private location: Location, private dataService: DataService, public authService: AuthService, private messageService: MessageService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n userID: string = \"\";\r\n\r\n recover(){\r\n\r\n\r\n if (this.userID == \"\") {\r\n\r\n this.messageService.toast(\"Please enter your userID\");\r\n return;\r\n } else {\r\n let u = new User();\r\n u.userID = this.userID;\r\n\r\n this.dataService.SelfReset(u).subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"The password has been sent to your email\");\r\n this.location.back();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { LoginComponent } from \"../components/login/login.component\";\r\nimport { SignupComponent } from \"../components/signup/signup.component\";\r\nimport { RecoverAccountComponent } from \"../components/recover-account/recover-account.component\";\r\n\r\n@NgModule({\r\n declarations: [LoginComponent, SignupComponent, RecoverAccountComponent],\r\n\r\n entryComponents: [],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n LoginComponent,\r\n SignupComponent,\r\n RecoverAccountComponent,\r\n ],\r\n})\r\nexport class SpaIndexModule {}\r\n","\r\nimport { ChangeUserPassword } from './../../classes/Classes';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { DataService } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { ApiResponse, HttpService } from 'tin-core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'spa-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.css']\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n\r\n constructor(private location: Location, private httpService: HttpService,private messageService: MessageService, public dataService: DataService, private authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.myRole = this.authService.currentRoleSource.value\r\n\r\n if (this.dataService.tmpProfileUserID==\"\"){\r\n this.changePassword.userID = this.authService.currentUser;\r\n\r\n }else{\r\n this.changePassword.userID = this.dataService.tmpProfileUserID;\r\n this.dataService.tmpProfileUserID = \"\";\r\n }\r\n\r\n // console.log(this.myRole)\r\n\r\n }\r\n\r\n myRole;\r\n\r\n\r\n\r\n\r\n\r\n isProcessing: boolean = false;\r\n\r\n changePassword = new ChangeUserPassword();\r\n\r\n public change() {\r\n\r\n\r\n if (!this.myRole[this.dataService.capUsers.name]){\r\n if (this.changePassword.currentPassword == \"\") {\r\n this.messageService.toast(\"Please enter current Password\");\r\n return;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n if (this.changePassword.newPassword == \"\") {\r\n this.messageService.toast(\"Please enter new Password\");\r\n return;\r\n }\r\n\r\n if (this.changePassword.confirmPassword == \"\") {\r\n this.messageService.toast(\"Please confirm new Password\");\r\n return;\r\n }\r\n\r\n if (this.changePassword.confirmPassword != this.changePassword.newPassword ) {\r\n this.messageService.toast(\"Passwords do not match\");\r\n return;\r\n }\r\n\r\n this.isProcessing = true;\r\n\r\n if (this.myRole[this.dataService.capUsers.name]){\r\n\r\n this.dataService.changePasswordAdmin(this.changePassword).subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Password Changed\");\r\n\r\n this.location.back();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n }\r\n );\r\n\r\n }else{\r\n\r\n this.dataService.changePassword(this.changePassword).subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Password Changed\");\r\n\r\n this.location.back();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n }\r\n );\r\n\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n\r\n}\r\n","import { AuthService } from './../../services/auth.service';\r\nimport { HttpService } from 'tin-core';\r\nimport { MessageService } from './../../services/message.service';\r\nimport { DataService } from './../../services/data.service';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { ApiResponse } from 'tin-core';\r\nimport { AppConfig, Profile } from '../../classes/Classes';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'spa-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.css']\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n isProcessing: boolean;\r\n\r\n constructor(public dataService: DataService, private messageService: MessageService, private httpService: HttpService, private router: Router, private authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.myRole = this.authService.currentRoleSource.value\r\n\r\n // this.loadRoles();\r\n\r\n if (this.dataService.tmpProfileUserID==\"\"){\r\n this.loadProfile(this.authService.currentUser);\r\n\r\n }else{\r\n this.loadProfile(this.dataService.tmpProfileUserID);\r\n this.dataService.tmpProfileUserID = \"\";\r\n }\r\n\r\n\r\n // console.log(this.myRole);\r\n\r\n\r\n }\r\n\r\n myRole;\r\n @Input() appConfig = new AppConfig();\r\n\r\n\r\n selfProfile : boolean = false;\r\n\r\n profile = new Profile();\r\n roles;\r\n approvalRoles;\r\n employees;\r\n\r\n\r\n loadProfile(userID: string){\r\n\r\n let action = \"all\";\r\n\r\n if (this.appConfig.approvals && this.appConfig.employees){\r\n action = \"set\"\r\n }\r\n\r\n if (this.appConfig.approvals && !this.appConfig.employees){\r\n action = \"setapp\"\r\n }\r\n\r\n if (!this.appConfig.approvals && this.appConfig.employees){\r\n action = \"setemp\"\r\n }\r\n\r\n\r\n this.dataService.GetProfile(action, userID).subscribe(\r\n (apiResponse: ApiResponse) => {\r\n\r\n this.profile = apiResponse.ds.dtProfiles[0];\r\n\r\n if (this.profile.userID.toLocaleLowerCase() == this.authService.currentUser.toLocaleLowerCase()){\r\n this.selfProfile = true\r\n }\r\n\r\n //get more details\r\n this.roles = apiResponse.ds.dtRoles;\r\n this.approvalRoles = apiResponse.ds.dtApprovalRoles;\r\n this.employees = apiResponse.ds.dtEmployees;\r\n\r\n\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n loadRoles(){\r\n\r\n\r\n this.dataService.GetRole(\"all\", \"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n\r\n this.roles = apiResponse.dt;\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n changePassword(){\r\n this.dataService.tmpProfileUserID = this.profile.userID;\r\n this.router.navigate([\"home/user/change-password\"]);\r\n }\r\n\r\n gotoUsers(){\r\n this.router.navigate([\"home/admin/users\"]);\r\n }\r\n\r\n update(){\r\n\r\n }\r\n\r\n updateProfile(){\r\n this.isProcessing = true;\r\n this.dataService.UpdateProfile(this.profile, \"edit\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Profile Updated\");\r\n\r\n\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { ChangePasswordComponent } from \"../components/change-password/change-password.component\";\r\nimport { ProfileComponent } from \"../components/profile/profile.component\";\r\n\r\n@NgModule({\r\n declarations: [ChangePasswordComponent, ProfileComponent],\r\n\r\n entryComponents: [],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n ChangePasswordComponent,\r\n ProfileComponent,\r\n ],\r\n})\r\nexport class SpaUserModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataService } from '../../services/data.service';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { ApiResponse } from 'tin-core';\r\n\r\n@Component({\r\n selector: 'spa-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.css']\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n\r\n constructor(private dataService: DataService, private messageService: MessageService) { }\r\n\r\n ngOnInit(): void {\r\n this.loadSettings();\r\n }\r\n\r\n _filterText = \"\";\r\n settings;\r\n isProcessing = false;\r\n\r\n applyFilter(filterValue: string) {\r\n this.settings.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n loadSettings(){\r\n this.dataService.GetSetting(\"all\", \"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.settings = apiResponse.dt;\r\n // this.applyFilter(this._filterText);\r\n }\r\n );\r\n\r\n }\r\n\r\n updateSetting(setting) {\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateSetting(setting, \"edit\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(`Setting ${setting.sName} Updated`);\r\n this.loadSettings();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n\r\n });\r\n\r\n };\r\n\r\n addSetting() {\r\n\r\n // const dialogRef = this.dialog.open(addRoleDialog, {\r\n // width: \"1100px\",\r\n // data: \"\",\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe((result) => {\r\n // if (result == \"success\") {\r\n // this.loadRoles();\r\n // }\r\n // });\r\n this.messageService.toast(\"Feature not Available\");\r\n\r\n }\r\n\r\n}\r\n","import { ApiResponse } from 'tin-core';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-logs',\r\n templateUrl: './logs.component.html',\r\n styleUrls: ['./logs.component.css']\r\n})\r\nexport class LogsComponent implements OnInit {\r\n constructor( private authService: AuthService, private dataService: DataService,) {}\r\n\r\n ngOnInit() {\r\n this.loadLogs();\r\n }\r\n\r\n isProcessing: boolean = false;\r\n @ViewChild(\"logsPaginator\") logsPaginator: MatPaginator;\r\n\r\n _filterText = \"\";\r\n\r\n logs;\r\n\r\n displayedColumns: string[] = [ \"dateLogged\", \"userID\",\"fullName\",\"source\", \"details\"];\r\n\r\n public loadLogs() {\r\n this.dataService.GetLog(\"all\",\"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.logs = new MatTableDataSource(apiResponse.dt);\r\n this.logs.paginator = this.logsPaginator;\r\n this.applyFilter(this._filterText);\r\n }\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.logs.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Inject, ViewChild } from \"@angular/core\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { ApiResponse, Core,HttpService } from \"tin-core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MessageService } from \"../../services/message.service\";\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { AddUserDialog } from './addUserDialog.component';\r\nimport { EditUserDialog } from './editUserDialog.component';\r\nimport { User } from '../../classes/Classes';\r\n\r\n\r\n\r\n@Component({\r\n selector: \"spa-users\",\r\n templateUrl: \"./users.component.html\",\r\n styleUrls: [\"./users.component.css\"],\r\n})\r\nexport class UsersComponent implements OnInit {\r\n constructor(private httpService: HttpService, public router: Router, private authService: AuthService, private dataService: DataService, public dialog: MatDialog, private messageService: MessageService) {}\r\n\r\n ngOnInit() {\r\n\r\n this.UpdateData();\r\n\r\n }\r\n\r\n isProcessing: boolean = false;\r\n @ViewChild(\"usersPaginator\") usersPaginator: MatPaginator;\r\n\r\n _filterText = \"\";\r\n\r\n users;\r\n // public myResponse;\r\n displayedColumns: string[] = [\"userID\", \"fullName\", \"roleName\", \"locked\", \"dateCreated\", \"Action\"];\r\n\r\n public UpdateData() {\r\n this.dataService.GetUser(\"all\",\"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n //this.myData = apiResponse;\r\n this.users = new MatTableDataSource(apiResponse.dt);\r\n this.users.paginator = this.usersPaginator;\r\n this.applyFilter(this._filterText);\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.users.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n createAccount() {\r\n\r\n this.router.navigate([\"home/admin/create-account\"]);\r\n\r\n }\r\n\r\n viewProfile(user: User) {\r\n\r\n this.dataService.tmpProfileUserID = user.userID;\r\n this.router.navigate([\"home/user/profile\"]);\r\n\r\n }\r\n\r\n lock(u: User){\r\n u.locked = \"1\";\r\n this.updateUser(u);\r\n }\r\n\r\n unlock(u: User){\r\n u.locked = \"0\";\r\n u.tries = \"0\";\r\n this.updateUser(u);\r\n }\r\n\r\n enable(u: User){\r\n u.disabled = \"0\";\r\n this.updateUser(u);\r\n }\r\n\r\n disable(u: User){\r\n u.disabled = \"1\";\r\n this.updateUser(u);\r\n }\r\n\r\n recover(u: User){\r\n\r\n\r\n\r\n this.dataService.SelfReset(u).subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"The password has been sent on email\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n\r\n}\r\n\r\n updateUser(user){\r\n this.isProcessing = true;\r\n this.dataService.UpdateUser(user, \"edit\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Updated\");\r\n\r\n this.UpdateData();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n deleteUser(user: User){\r\n\r\n\r\n this.messageService.confirm(`Delete ${user.userID} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\"){\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateUser(user, \"delete\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Deleted\");\r\n\r\n this.UpdateData();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n\r\n }\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { Component, OnInit, Inject, ViewChild } from \"@angular/core\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { User } from \"../../classes/Classes\";\r\nimport { ApiResponse, Core,HttpService } from \"tin-core\";\r\n// import { AuthService } from \"../../services/auth.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MessageService } from \"../../services/message.service\";\r\nimport { AuthService } from \"../../services/auth.service\";\r\n\r\n\r\n@Component({\r\n selector: \"spa-add-user\",\r\n templateUrl: \"./addUserDialog.component.html\",\r\n styleUrls: [\"./users.component.css\"],\r\n})\r\nexport class AddUserDialog implements OnInit {\r\n\r\n public currentCount = 0;\r\n user = new User();\r\n isProcessing: boolean = false;\r\n\r\n constructor(private dataserv: DataService, private messageService: MessageService, private dialogRef: MatDialogRef<AddUserDialog>) {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n\r\n\r\n\r\n public Signup() {\r\n\r\n // if (Core.emailIsValid(this.user.email)) {\r\n // this.messageService.toast(\"Invalid Email\");\r\n // return;\r\n // }\r\n\r\n this.user.dateCreated = Core.getFormatedDate(Core.nowDate());\r\n this.user.dateUpdated = Core.getFormatedDate(Core.nowDate());\r\n this.user.dateExpire = Core.getFormatedDate(Core.nowDate());\r\n\r\n this.isProcessing = true;\r\n this.dataserv.UpdateUser(this.user,\"add\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Added\");\r\n\r\n\r\n\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Inject, ViewChild } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { User } from \"../../classes/Classes\";\r\nimport { ApiResponse, Core,HttpService } from \"tin-core\";\r\nimport { MessageService } from \"../../services/message.service\";\r\n\r\n\r\n@Component({\r\n selector: \"spa-edit-user\",\r\n templateUrl: \"./editUserDialog.component.html\",\r\n styleUrls: [\"./users.component.css\"],\r\n})\r\nexport class EditUserDialog implements OnInit {\r\n\r\n constructor(private dataserv: DataService, private messageService: MessageService, private dialogRef: MatDialogRef<EditUserDialog>, @Inject(MAT_DIALOG_DATA) public data) {}\r\n\r\n ngOnInit() {\r\n // this.loadDepartments();\r\n // this.loadRoles();\r\n // this.loadLineManagers();\r\n this.user = this.data;\r\n }\r\n\r\n user = new User();\r\n\r\n public myData;\r\n public myResponse;\r\n departments;\r\n lineManagers;\r\n roles;\r\n isProcessing: boolean = false;\r\n\r\n myUser = new User();\r\n\r\n public unlock() {\r\n this.user.locked = \"0\";\r\n }\r\n\r\n public lock() {\r\n this.user.locked = \"1\";\r\n }\r\n\r\n public enable() {\r\n this.user.disabled = \"0\";\r\n }\r\n\r\n public disable() {\r\n this.user.disabled = \"1\";\r\n }\r\n\r\n // loadDepartments() {\r\n // this.dataserv.GetDepartment(\"all\", \"\").subscribe((myApiResponse) => {\r\n // this.departments = myApiResponse;\r\n // });\r\n // }\r\n\r\n // loadLineManagers() {\r\n // this.dataserv.GetLineManagers().subscribe((apiResponse: ApiResponse) => {\r\n // this.lineManagers = apiResponse.dt;\r\n // });\r\n // }\r\n\r\n // loadRoles() {\r\n // this.dataserv.GetRole(\"all\", \"\").subscribe((apiResponse: ApiResponse) => {\r\n // this.roles = apiResponse.dt;\r\n // });\r\n // }\r\n\r\n public Update() {\r\n\r\n this.isProcessing = true;\r\n this.dataserv.UpdateUser(this.user,\"edit\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Updated\");\r\n\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n public DeleteUser() {\r\n\r\n this.isProcessing = true;\r\n this.dataserv.UpdateUser(this.user, \"delete\").subscribe((myData) => {\r\n this.isProcessing = false;\r\n\r\n this.myData = myData;\r\n this.myResponse = this.myData.message;\r\n if (this.myResponse == \"success\") {\r\n this.messageService.toast(this.user.userID + \" Deleted\");\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DataService } from '../../services/data.service';\r\n//import { AuthService } from '../../services/auth.service';\r\nimport { ApiResponse, Core } from 'tin-core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-viewRole',\r\n templateUrl: './viewRoleDialog.component.html',\r\n styleUrls: ['./roles.component.css']\r\n})\r\nexport class viewRoleDialog implements OnInit {\r\n\r\n constructor(private messageService: MessageService, private dataserv: DataService, private authserv: AuthService, private dialogRef: MatDialogRef<viewRoleDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n ngOnInit() {\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n submit() {\r\n\r\n\r\n\r\n };\r\n};\r\n\r\n\r\n\r\n","import { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DataService } from '../../services/data.service';\r\n// import { AuthService } from '../../services/auth.service';\r\nimport { ApiResponse, Core } from 'tin-core';\r\nimport { Role } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'app-addRole',\r\n templateUrl: './addRoleDialog.component.html',\r\n styleUrls: ['./roles.component.css']\r\n})\r\nexport class addRoleDialog implements OnInit {\r\n\r\n constructor(private messageService: MessageService, private dataService: DataService, private authService: AuthService, private dialogRef: MatDialogRef<addRoleDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n ngOnInit() {\r\n this.capItems = this.data;\r\n }\r\n\r\n capItems;\r\n\r\n isProcessing: boolean;\r\n role = new Role();\r\n\r\n submit() {\r\n\r\n if (this.role.roleName == \"New Role\" || this.role.roleName == \"\"){\r\n this.messageService.toast(\"Please enter Role Name\");\r\n return;\r\n }\r\n\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateRole(this.role, \"add\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Role Added\");\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n\r\n\r\n }, error => {\r\n this.messageService.toast(\"Connection failed\");\r\n this.isProcessing = false;\r\n });\r\n\r\n };\r\n};\r\n\r\n\r\n\r\n","import { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DataService } from '../../services/data.service';\r\n// import { AuthService } from '../../services/auth.service';\r\nimport { ApiResponse, Core } from 'tin-core';\r\nimport { Role } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'app-editRole',\r\n templateUrl: './editRoleDialog.component.html',\r\n styleUrls: ['./roles.component.css']\r\n})\r\nexport class editRoleDialog implements OnInit {\r\n\r\n constructor(private messageService: MessageService, private dataserv: DataService, private authserv: AuthService, private dialogRef: MatDialogRef<editRoleDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n ngOnInit() {\r\n this.role = this.data;\r\n this.isLoadComplete = true;\r\n }\r\n\r\n role = new Role;\r\n isLoadComplete: boolean = false;\r\n isProcessing: boolean;\r\n\r\n\r\n submit() {\r\n\r\n this.isProcessing = true;\r\n this.dataserv.UpdateRole(this.role, \"edit\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Role Updated\");\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n\r\n }, error => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n });\r\n\r\n };\r\n};\r\n\r\n\r\n\r\n","import { AppConfig } from './../../classes/Classes';\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { DataService } from \"../../services/data.service\";\r\n// import { AuthService } from \"../../services/auth.service\";\r\nimport { ApiResponse, Core, HttpService } from \"tin-core\";\r\nimport { Role, CapItem } from \"../../classes/Classes\";\r\nimport { viewRoleDialog } from \"./viewRoleDialog.component\";\r\nimport { addRoleDialog } from \"./addRoleDialog.component\";\r\nimport { editRoleDialog } from \"./editRoleDialog.component\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n\r\n@Component({\r\n selector: \"spa-roles\",\r\n templateUrl: \"./roles.component.html\",\r\n styleUrls: [\"./roles.component.css\"],\r\n})\r\nexport class RolesComponent implements OnInit {\r\n constructor(private httpService: HttpService, private router: Router, private authService: AuthService, private dataService: DataService, public dialog: MatDialog, private messageService: MessageService) {}\r\n\r\n ngOnInit() {\r\n\r\n this.loadRoles();\r\n\r\n }\r\n\r\n isProcessing = false;\r\n // myRole: Rolev2;\r\n roles: Role[];\r\n\r\n\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n\r\n // _filterText = \"\";\r\n // applyFilter(filterValue: string) {\r\n // this.roles.filter = filterValue.trim().toLowerCase();\r\n // }\r\n\r\n\r\n loadRoles() {\r\n this.dataService.GetRole(\"all\", \"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.roles = apiResponse.dt;\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n refresh() {\r\n this.loadRoles();\r\n }\r\n\r\n addRole() {\r\n const dialogRef = this.dialog.open(addRoleDialog, {\r\n width: \"1100px\",\r\n data: this.appConfig.capItems,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == \"success\") {\r\n this.loadRoles();\r\n }\r\n });\r\n }\r\n\r\n viewRole(role: Role) {\r\n const dialogRef = this.dialog.open(viewRoleDialog, {\r\n width: \"1100px\",\r\n data: role,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == \"success\") {\r\n this.loadRoles();\r\n }\r\n });\r\n }\r\n\r\n editRole(role: Role) {\r\n const dialogRef = this.dialog.open(editRoleDialog, {\r\n width: \"1100px\",\r\n data: role,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == \"success\") {\r\n this.loadRoles();\r\n }\r\n });\r\n }\r\n\r\n updateRole(role: Role) {\r\n\r\n this.messageService.confirm(`UPDATE ${role.roleName} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\"){\r\n\r\n this.dataService\r\n .UpdateRole(role, \"edit\")\r\n .subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Role Updated\");\r\n this.loadRoles();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n\r\n };\r\n\r\n deleteRole(role: Role) {\r\n\r\n this.messageService.confirm(`DELETE ${role.roleName} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\"){\r\n\r\n this.dataService\r\n .UpdateRole(role, \"delete\")\r\n .subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Role Deleted\");\r\n this.loadRoles();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-profiles',\r\n templateUrl: './profiles.component.html',\r\n styleUrls: ['./profiles.component.css']\r\n})\r\nexport class ProfilesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { DataService } from './../../services/data.service';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { ApiResponse, HttpService } from 'tin-core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { User, Profile, Account, AppConfig } from '../../classes/Classes';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'spa-create-account',\r\n templateUrl: './create-account.component.html',\r\n styleUrls: ['./create-account.component.css']\r\n})\r\nexport class CreateAccountComponent implements OnInit {\r\n\r\n constructor(private httpService: HttpService, private messageService: MessageService, private dataService: DataService, private authService: AuthService,public router: Router) { }\r\n\r\n ngOnInit() {\r\n\r\n\r\n }\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n isProcessing: boolean = false;\r\n user = new User();\r\n profile = new Profile();\r\n\r\n account = new Account();\r\n\r\n confirmPassword: string;\r\n\r\n openProfile: boolean = true;\r\n\r\n\r\ncreate(){\r\n\r\n if(this.user.authType == \"\"){\r\n this.messageService.toast(\"Choose Authentication Type\");\r\n return;\r\n }\r\n\r\n this.account.user = this.user;\r\n this.account.profile = this.profile;\r\n\r\n this.profile.userID = this.user.userID;\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateAccount(this.account,\"add\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Account Created\");\r\n\r\n if (this.openProfile){\r\n this.viewProfile(this.user);\r\n }else{\r\n this.user = new User();\r\n this.profile = new Profile();\r\n this.confirmPassword = \"\";\r\n }\r\n\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n}\r\n\r\nviewProfile(user: User) {\r\n\r\n this.dataService.tmpProfileUserID = user.userID;\r\n this.router.navigate([\"home/user/profile\"]);\r\n\r\n}\r\n\r\n\r\n\r\n}\r\n","import { SettingsComponent } from '../components/settings/settings.component';\r\nimport { LogsComponent } from '../components/logs/logs.component';\r\nimport { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { UsersComponent } from \"../components/users/users.component\";\r\nimport { AddUserDialog } from \"../components/users/addUserDialog.component\";\r\nimport { EditUserDialog } from \"../components/users/editUserDialog.component\";\r\nimport { RolesComponent } from \"../components/roles/roles.component\";\r\nimport { addRoleDialog } from \"../components/roles/addRoleDialog.component\";\r\nimport { editRoleDialog } from \"../components/roles/editRoleDialog.component\";\r\nimport { ProfilesComponent } from \"../components/profiles/profiles.component\";\r\nimport { CreateAccountComponent } from \"../components/create-account/create-account.component\";\r\nimport { viewRoleDialog } from \"../components/roles/viewRoleDialog.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n UsersComponent,\r\n AddUserDialog,\r\n EditUserDialog,\r\n RolesComponent,\r\n addRoleDialog,\r\n editRoleDialog,\r\n viewRoleDialog,\r\n ProfilesComponent,\r\n CreateAccountComponent,\r\n LogsComponent,\r\n SettingsComponent\r\n ],\r\n\r\n entryComponents: [\r\n AddUserDialog,\r\n EditUserDialog,\r\n addRoleDialog,\r\n editRoleDialog,\r\n viewRoleDialog,\r\n ],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n UsersComponent,\r\n AddUserDialog,\r\n EditUserDialog,\r\n RolesComponent,\r\n addRoleDialog,\r\n editRoleDialog,\r\n viewRoleDialog,\r\n ProfilesComponent,\r\n CreateAccountComponent,\r\n LogsComponent,\r\n SettingsComponent\r\n ],\r\n})\r\nexport class SpaAdminModule {}\r\n"]}