tin-spa 2.13.14 → 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 -374
  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 -569
  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 -106
  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 -293
  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 -259
  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 -141
  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 -861
  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 -11711
  358. package/fesm2015/tin-spa.mjs.map +0 -1
  359. package/fesm2020/tin-spa.mjs +0 -11718
  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,16 @@
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/material/snack-bar"),require("@angular/material/dialog"),require("rxjs"),require("rxjs/operators"),require("file-saver"),require("xlsx"),require("tin-core"),require("@angular/router"),require("@angular/common"),require("@angular/material/autocomplete"),require("@angular/material/badge"),require("@angular/material/button"),require("@angular/material/card"),require("@angular/material/checkbox"),require("@angular/material/chips"),require("@angular/material/core"),require("@angular/material/datepicker"),require("@angular/material/form-field"),require("@angular/material/icon"),require("@angular/material/input"),require("@angular/material/list"),require("@angular/material/menu"),require("@angular/material/paginator"),require("@angular/material/progress-spinner"),require("@angular/material/radio"),require("@angular/material/select"),require("@angular/material/slider"),require("@angular/material/sort"),require("@angular/material/stepper"),require("@angular/material/table"),require("@angular/material/tabs"),require("@angular/material/tooltip"),require("@angular/forms"),require("@angular/common/http"),require("@ng-idle/keepalive"),require("angular2-moment"),require("ngx-doc-viewer"),require("@ng-idle/core"),require("@kolkov/angular-editor"),require("@angular/cdk/stepper")):"function"==typeof define&&define.amd?define("tin-spa",["exports","@angular/core","@angular/material/snack-bar","@angular/material/dialog","rxjs","rxjs/operators","file-saver","xlsx","tin-core","@angular/router","@angular/common","@angular/material/autocomplete","@angular/material/badge","@angular/material/button","@angular/material/card","@angular/material/checkbox","@angular/material/chips","@angular/material/core","@angular/material/datepicker","@angular/material/form-field","@angular/material/icon","@angular/material/input","@angular/material/list","@angular/material/menu","@angular/material/paginator","@angular/material/progress-spinner","@angular/material/radio","@angular/material/select","@angular/material/slider","@angular/material/sort","@angular/material/stepper","@angular/material/table","@angular/material/tabs","@angular/material/tooltip","@angular/forms","@angular/common/http","@ng-idle/keepalive","angular2-moment","ngx-doc-viewer","@ng-idle/core","@kolkov/angular-editor","@angular/cdk/stepper"],e):e((t=t||self)["tin-spa"]={},t.ng.core,t.ng.material.snackBar,t.ng.material.dialog,t.rxjs,t.rxjs.operators,t.fileSaver,t.xlsx,t.tinCore,t.ng.router,t.ng.common,t.ng.material.autocomplete,t.ng.material.badge,t.ng.material.button,t.ng.material.card,t.ng.material.checkbox,t.ng.material.chips,t.ng.material.core,t.ng.material.datepicker,t.ng.material.formField,t.ng.material.icon,t.ng.material.input,t.ng.material.list,t.ng.material.menu,t.ng.material.paginator,t.ng.material.progressSpinner,t.ng.material.radio,t.ng.material.select,t.ng.material.slider,t.ng.material.sort,t.ng.material.stepper,t.ng.material.table,t.ng.material.tabs,t.ng.material.tooltip,t.ng.forms,t.ng.common.http,t.keepalive,t.angular2Moment,t.ngxDocViewer,t.core$2,t.angularEditor,t.ng.cdk.stepper)}(this,(function(t,e,n,r,o,i,a,s,l,c,p,d,u,m,h,g,f,v,y,b,x,w,I,S,C,k,M,D,P,T,E,A,L,R,U,N,O,F,j,z,_,q){"use strict";
2
+ /*! *****************************************************************************
3
+ Copyright (c) Microsoft Corporation. All rights reserved.
4
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
5
+ this file except in compliance with the License. You may obtain a copy of the
6
+ License at http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
9
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
10
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
11
+ MERCHANTABLITY OR NON-INFRINGEMENT.
12
+
13
+ See the Apache Version 2.0 License for specific language governing permissions
14
+ and limitations under the License.
15
+ ***************************************************************************** */var H=function(t,e){return(H=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function B(t,e){function n(){this.constructor=t}H(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function G(t,e,n,r){var o,i=arguments.length,a=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(a=(i<3?o(a):i>3?o(e,n,a):o(e,n))||a);return i>3&&a&&Object.defineProperty(e,n,a),a}function V(t,e){return function(n,r){e(n,r,t)}}function W(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{l(r.next(t))}catch(t){i(t)}}function s(t){try{l(r.throw(t))}catch(t){i(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((r=r.apply(t,e||[])).next())}))}function Z(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}function $(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}var J,Y=function(){function t(){}return t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=G([e.Injectable({providedIn:"root"})],t)}(),K=function(){function t(){}return t.prototype.store=function(t,e){return W(this,void 0,void 0,(function(){var n;return Z(this,(function(r){switch(r.label){case 0:return n=btoa(escape(JSON.stringify(e))),[4,localStorage.setItem(t,n)];case 1:return r.sent(),[2]}}))}))},t.prototype.get=function(t){return W(this,void 0,void 0,(function(){var e;return Z(this,(function(n){switch(n.label){case 0:return[4,localStorage.getItem(t)];case 1:return e=n.sent(),[2,JSON.parse(unescape(atob(e)))]}}))}))},t.prototype.removeStorageItem=function(t){return W(this,void 0,void 0,(function(){return Z(this,(function(e){switch(e.label){case 0:return[4,localStorage.removeItem(t)];case 1:return e.sent(),[2]}}))}))},t.prototype.clear=function(){return W(this,void 0,void 0,(function(){return Z(this,(function(t){switch(t.label){case 0:return[4,localStorage.clear()];case 1:return t.sent(),[2]}}))}))},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=G([e.Injectable({providedIn:"root"})],t)}(),Q=function(){function t(t,e){this.dialogRef=t,this.data=e}return t.prototype.ngOnInit=function(){this.messageType=this.data.type,this._messageSubject=this.data.subject,this._messageDetails=this.data.details},t.prototype.response=function(t){this.dialogRef.close(t)},t.ctorParameters=function(){return[{type:r.MatDialogRef},{type:void 0,decorators:[{type:e.Inject,args:[r.MAT_DIALOG_DATA]}]}]},t=G([e.Component({selector:"lib-app-message",template:'\r\n <h2 mat-dialog-title>\r\n\r\n <mat-label *ngIf="messageType==\'confirm\'">Confirm</mat-label>\r\n <mat-label *ngIf="messageType==\'info\'">Information</mat-label>\r\n <mat-label *ngIf="messageType==\'error\'">Error</mat-label>\r\n\r\n </h2>\r\n\r\n <mat-dialog-content class="mat-typography">\r\n\r\n\r\n \x3c!-- Confirm --\x3e\r\n <p *ngIf="messageType==\'confirm\'">{{_messageDetails}}</p>\r\n\r\n\r\n \x3c!-- Information --\x3e\r\n <div *ngIf="messageType==\'info\'">\r\n\r\n <h3>{{_messageSubject}}</h3>\r\n <mat-label>{{_messageDetails}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n \x3c!-- Error --\x3e\r\n <div *ngIf="messageType==\'error\'">\r\n\r\n <mat-label>{{_messageDetails}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n </mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n\r\n <button id="btnYes" mat-stroked-button *ngIf="messageType==\'confirm\'" (click)="response(\'yes\')" cdkFocusInitial>Yes</button>\r\n\r\n <button id="btnNo" mat-stroked-button *ngIf="messageType==\'confirm\'" (click)="response(\'no\')" >No</button>\r\n\r\n <button id="btnOK" mat-stroked-button *ngIf="messageType==\'info\' || messageType==\'error\'" (click)="response(\'ok\')" cdkFocusInitial>OK</button>\r\n\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n'}),V(1,e.Inject(r.MAT_DIALOG_DATA))],t)}(),X=function(){function t(t,e){this.snackBar=t,this.dialog=e}return t.prototype.toast=function(t){this.snackBar.open(t,"OK",{duration:5e3})},t.prototype.info=function(t,e){this.dialog.open(Q,{width:"600px",data:{type:"info",subject:t,details:e}})},t.prototype.error=function(t){this.dialog.open(Q,{width:"600px",data:{type:"error",subject:void 0,details:t}})},t.prototype.confirm=function(t){var e=t;return this.dialog.open(Q,{width:"400px",data:{type:"confirm",subject:"",details:e}}).afterClosed().pipe(i.mergeMap((function(t){return o.of(t)})))},t.ctorParameters=function(){return[{type:n.MatSnackBar},{type:r.MatDialog}]},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(n.MatSnackBar),e.ɵɵinject(r.MatDialog))},token:t,providedIn:"root"}),t=G([e.Injectable({providedIn:"root"})],t)}(),tt=function(){function t(){this.fileType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8",this.fileExtension=".xlsx"}return t.prototype.exportExcel=function(t,e){var n={Sheets:{data:s.utils.json_to_sheet(t)},SheetNames:["data"]},r=s.write(n,{bookType:"xlsx",type:"array"});this.saveExcelFile(r,e)},t.prototype.saveExcelFile=function(t,e){var n=new Blob([t],{type:this.fileType});a.saveAs(n,e+this.fileExtension)},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=G([e.Injectable({providedIn:"root"})],t)}();(J=t.LogLevel||(t.LogLevel={}))[J.All=0]="All",J[J.Debug=1]="Debug",J[J.Info=2]="Info",J[J.Warn=3]="Warn",J[J.Error=4]="Error",J[J.Fatal=5]="Fatal",J[J.Off=6]="Off";var et,nt=function(){},rt=function(){},ot=function(){this.enableFilter=!1,this.create=new it,this.greyout=new lt},it=function(){},at=function(){this.name="default",this.display="default",this.type=t.TableColumnType.String};(et=t.TableColumnType||(t.TableColumnType={}))[et.String=0]="String",et[et.Date=1]="Date",et[et.DateTime=2]="DateTime",et[et.Image=3]="Image",et[et.Icon=4]="Icon",et[et.TextIcon=5]="TextIcon",et[et.Chip=6]="Chip";var st,lt=function(){this.field="",this.operator=t.Operator.Equal,this.value=""};(st=t.Operator||(t.Operator={}))[st.Equal=0]="Equal",st[st.Less=1]="Less",st[st.Greater=2]="Greater",st[st.NotEqual=3]="NotEqual";var ct=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return B(e,t),e}(lt),pt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return B(e,t),e}(lt),dt=function(){},ut=function(){},mt=function(){this.appName="",this.selfService=!1,this.logo="",this.logoSize="normal"},ht=function(){this.appName="App Name",this.logo="",this.ADAuth=!0,this.localAuth=!0,this.employees=!1,this.approvals=!1},gt=function(){this.name="",this.display="New Cap Item",this.enabled=!1,this.type="",this.newLine=!1,this.showMenu=!0,this.ignoreSubsDisplay=!1,this.link="",this.icon="navigate_next"},ft=function(){this.roleID="",this.roleName="New Role",this.cap1=!1,this.cap2=!1,this.cap3=!1,this.cap4=!1,this.cap5=!1,this.cap6=!1,this.cap7=!1,this.cap8=!1,this.cap9=!1,this.cap10=!1,this.cap11=!1,this.cap12=!1,this.cap13=!1,this.cap14=!1,this.cap15=!1,this.cap16=!1,this.cap17=!1,this.cap18=!1,this.cap19=!1,this.cap20=!1,this.cap21=!1,this.cap22=!1,this.cap23=!1,this.cap24=!1,this.cap25=!1,this.cap26=!1,this.cap27=!1,this.cap28=!1,this.cap29=!1,this.cap30=!1,this.cap31=!1,this.cap32=!1,this.cap33=!1,this.cap34=!1,this.cap35=!1,this.cap36=!1,this.cap37=!1,this.cap38=!1,this.cap39=!1,this.cap40=!1,this.cap41=!1,this.cap42=!1,this.cap43=!1,this.cap44=!1,this.cap45=!1,this.cap46=!1,this.cap47=!1,this.cap48=!1,this.cap49=!1,this.cap50=!1,this.cap51=!1,this.cap52=!1,this.cap53=!1,this.cap54=!1,this.cap55=!1,this.cap56=!1,this.cap57=!1,this.cap58=!1,this.cap59=!1,this.cap60=!1,this.cap61=!1,this.cap62=!1,this.cap63=!1,this.cap64=!1,this.cap65=!1,this.cap66=!1,this.cap67=!1,this.cap68=!1,this.cap69=!1,this.cap70=!1,this.cap71=!1,this.cap72=!1,this.cap73=!1,this.cap74=!1,this.cap75=!1,this.cap76=!1,this.cap77=!1,this.cap78=!1,this.cap79=!1,this.cap80=!1,this.cap81=!1,this.cap82=!1,this.cap83=!1,this.cap84=!1,this.cap85=!1,this.cap86=!1,this.cap87=!1,this.cap88=!1,this.cap89=!1,this.cap90=!1,this.cap91=!1,this.cap92=!1,this.cap93=!1,this.cap94=!1,this.cap95=!1,this.cap96=!1,this.cap97=!1,this.cap98=!1,this.cap99=!1,this.cap100=!1},vt=function(){},yt=function(){this.userID="",this.password="",this.tries="0",this.locked="0",this.logged="0",this.disabled="0",this.changepassword="0",this.dateCreated=l.Core.nowDate(),this.dateUpdated=l.Core.nowDate(),this.token="",this.dateExpire=l.Core.nowDate(),this.tokenExpire=l.Core.nowDate(),this.authType=""},bt=function(){this.userID="",this.currentPassword="",this.newPassword="",this.confirmPassword=""},xt=function(){this.profileID="",this.userID="",this.roleID="1",this.firstName="",this.lastName="",this.email="",this.empID="",this.arID="0",this.authType=""},wt=function(){function n(){this.level=t.LogLevel.All,this.logToConsole=!0,this.logToApi=!1}return n.prototype.debug=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Debug,n)},n.prototype.info=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Info,n)},n.prototype.warn=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Warn,n)},n.prototype.error=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Error,n)},n.prototype.fatal=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.Fatal,n)},n.prototype.log=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];this.writeToLog(e,t.LogLevel.All,n)},n.prototype.writeToLog=function(t,e,n){if(this.shouldLog(e)){var r=l.Core.getFormatedDate(Date(),!1).replace("T"," ");r+=" - Message: "+t,n.length&&(r+=" - Extra Info: "+this.formatParams(n)),this.logToConsole&&console.log(r),this.logToApi}},n.prototype.formatParams=function(t){var e,n,r=t.join(",");if(t.some((function(t){return"object"==typeof t}))){r="";try{for(var o=$(t),i=o.next();!i.done;i=o.next()){var a=i.value;r+=JSON.stringify(a)+","}}catch(t){e={error:t}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}}return r},n.prototype.shouldLog=function(e){var n=!1;return(e>=this.level&&e!==t.LogLevel.Off||this.level===t.LogLevel.All)&&(n=!0),n},n.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new n},token:n,providedIn:"root"}),n=G([e.Injectable({providedIn:"root"})],n)}(),It=function(){function t(t,e,n,r,i){this.storage=t,this.router=e,this.httpService=n,this.messageService=r,this.logService=i,this.loggedin=!1,this.loggedinSource=new o.BehaviorSubject(this.loggedin),this.loggedinObserv=this.loggedinSource.asObservable(),this.token="",this.tokenSource=new o.BehaviorSubject(this.token),this.tokenObserv=this.tokenSource.asObservable(),this.tokenExpire="",this.tokenExpireSource=new o.BehaviorSubject(this.tokenExpire),this.tokenExpireObserv=this.tokenExpireSource.asObservable(),this.currentUser="tnyagato",this.currentUserSource=new o.BehaviorSubject(this.currentUser),this.currentUserObserv=this.currentUserSource.asObservable(),this.islineManager=!1,this.isLineManagerSource=new o.BehaviorSubject(this.islineManager),this.isLineManagerObserv=this.isLineManagerSource.asObservable(),this.currentRole=new ft,this.currentRoleSource=new o.BehaviorSubject(this.currentRole),this.myRoleObserv=this.currentRoleSource.asObservable(),this.loggedUserSource=new o.BehaviorSubject("tnyagato"),this.loggedUserFullName=this.loggedUserSource.asObservable()}return t.prototype.updateloggedin=function(t){this.loggedinSource.next(t),this.loggedin=t},t.prototype.updateToken=function(t){this.tokenSource.next(t)},t.prototype.updateTokenExpire=function(t){this.tokenExpireSource.next(t)},t.prototype.updateCurrentUser=function(t){this.currentUserSource.next(t.toLocaleLowerCase()),this.currentUser=t.toLocaleLowerCase()},t.prototype.updateIsLineManager=function(t){this.isLineManagerSource.next(t)},t.prototype.updateRole=function(t){this.currentRoleSource.next(t)},t.prototype.updateLoggedUserFullName=function(t){this.loggedUserSource.next(t)},t.prototype.isAuthorised=function(t){return!!this.currentRoleSource.value[t]||(this.router.navigate(["home"]),this.messageService.toast("Unauthorised: "+t),!1)},t.prototype.isValidToken=function(){var t=new Date(this.tokenExpireSource.value)>new Date;return t||(this.router.navigate(["login"]),this.messageService.toast("Expired Session")),t},t.prototype.canActivate=function(){var t=this;return!(!this.loggedin||!this.isValidToken())||(null===localStorage.getItem(l.Constants.AUTH_USER)?(this.updateloggedin(!1),this.router.navigate(["login"]),!1):(this.updateloggedin(!0),this.storage.get(l.Constants.AUTH_USER).then((function(e){t.updateCurrentUser(e)})),this.storage.get(l.Constants.AUTH_NAME).then((function(e){t.updateLoggedUserFullName(e)})),this.storage.get(l.Constants.AUTH_ROLES).then((function(e){var n=JSON.parse(e);t.updateRole(n)})),this.storage.get(l.Constants.AUTH_TOKEN).then((function(e){t.updateToken(e)})),this.storage.get(l.Constants.AUTH_TOKEN_EXPIRE).then((function(e){t.updateTokenExpire(e),t.isValidToken()})),!0))},t.ctorParameters=function(){return[{type:K},{type:c.Router},{type:l.HttpService},{type:X},{type:wt}]},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(K),e.ɵɵinject(c.Router),e.ɵɵinject(l.HttpService),e.ɵɵinject(X),e.ɵɵinject(wt))},token:t,providedIn:"root"}),t=G([e.Injectable({providedIn:"root"})],t)}(),St=function(){function t(t){this.httpService=t,this.capUsers=new gt,this.tmpProfileUserID="",this.capUsers.name="cap3",this.capUsers.display="Users",this.capUsers.link="home/admin/users"}return t.prototype.GetUser=function(t,e){return this.httpService.Get("Basic/GetUser?by="+t+"&val="+e)},t.prototype.UpdateUser=function(t,e){return this.httpService.Post("Basic/UpdateUser?action="+e,t)},t.prototype.login=function(t){return this.httpService.Post("Basic/login",t)},t.prototype.changePassword=function(t){return this.httpService.Post("Basic/ChangePassword",t)},t.prototype.changePasswordAdmin=function(t){return this.httpService.Post("Basic/ChangePasswordAdmin",t)},t.prototype.SelfReset=function(t){return this.httpService.Post("Basic/SelfReset",t)},t.prototype.UpdateRole=function(t,e){return this.httpService.Post("Basic/UpdateRole?action="+e,t)},t.prototype.GetRole=function(t,e){return this.httpService.Get("Basic/GetRole?by="+t+"&val="+e)},t.prototype.UpdateAccount=function(t,e){return this.httpService.Post("Basic/UpdateAccount?action="+e,t)},t.prototype.GetProfile=function(t,e){return this.httpService.Get("Basic/GetProfile?by="+t+"&val="+e)},t.prototype.UpdateProfile=function(t,e){return this.httpService.Post("Basic/UpdateProfile?action="+e,t)},t.prototype.GetLog=function(t,e){return this.httpService.Get("Basic/GetLog?by="+t+"&val="+e)},t.prototype.GetSetting=function(t,e){return this.httpService.Get("Basic/GetSetting?by="+t+"&val="+e)},t.prototype.UpdateSetting=function(t,e){return this.httpService.Post("Basic/UpdateSetting?action="+e,t)},t.ctorParameters=function(){return[{type:l.HttpService}]},t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t(e.ɵɵinject(l.HttpService))},token:t,providedIn:"root"}),t=G([e.Injectable({providedIn:"root"})],t)}(),Ct=function(){function t(){this.isLoading=new o.BehaviorSubject(!1)}return t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=G([e.Injectable({providedIn:"root"})],t)}(),kt=function(){function t(t){var e=this;this.loaderService=t,this.logo="",this.loaderService.isLoading.subscribe((function(t){e.loading=t}))}return t.prototype.ngOnInit=function(){},t.ctorParameters=function(){return[{type:Ct}]},G([e.Input()],t.prototype,"logo",void 0),t=G([e.Component({selector:"spa-loader",template:'<div class="progress-loader" style="z-index: 9999;" [hidden]="!loading">\r\n <div class="loading-spinner">\r\n\r\n <img *ngIf="logo==\'\'" style="width: 100px;"\r\n src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg=="\r\n\r\n >\r\n\r\n <img *ngIf="logo!=\'\'" [src]="logo" style="width: 100px;" />\r\n\r\n\r\n <span id="loadingMessage" class="loading-message">Please wait...</span>\r\n </div>\r\n</div>\r\n',styles:[".loading-spinner{background-color:#0000001f;position:absolute;width:100%;top:0;left:0;height:100vh;align-items:center;justify-content:center;display:-ms-grid;display:grid}.loading-spinner img{-ms-grid-row-align:end;align-self:end}.loading-message{text-align:center;-ms-grid-row-align:start;align-self:start}"]})],t)}(),Mt={disableClose:!0,hasBackdrop:!0},Dt=function(){function t(){}return t=G([e.NgModule({declarations:[],imports:[],exports:[p.CommonModule,U.FormsModule,U.ReactiveFormsModule,S.MatMenuModule,P.MatSliderModule,A.MatTableModule,C.MatPaginatorModule,g.MatCheckboxModule,u.MatBadgeModule,m.MatButtonModule,x.MatIconModule,r.MatDialogModule,n.MatSnackBarModule,L.MatTabsModule,b.MatFormFieldModule,w.MatInputModule,h.MatCardModule,f.MatChipsModule,D.MatSelectModule,v.MatNativeDateModule,k.MatProgressSpinnerModule,I.MatListModule,d.MatAutocompleteModule,R.MatTooltipModule,T.MatSortModule,y.MatDatepickerModule,E.MatStepperModule,M.MatRadioModule],providers:[{provide:r.MAT_DIALOG_DEFAULT_OPTIONS,useValue:Mt},{provide:v.MAT_DATE_LOCALE,useValue:"en-GB"}]})],t)}(),Pt=function(){function t(t,e,n,r,o){this.loaderService=t,this.messageService=e,this.authService=n,this.router=r,this.logService=o,this.requests=[]}return t.prototype.removeRequest=function(t){var e=this.requests.indexOf(t);e>=0&&this.requests.splice(e,1),this.loaderService.isLoading.next(this.requests.length>0)},t.prototype.intercept=function(t,e){var n=this,r=t.clone({setHeaders:{Authorization:"Basic "+btoa(this.authService.currentUser+":"+this.authService.tokenSource.value)}});return this.requests.push(r),this.requests.length>1&&this.logService.info("Multiple connections detected > "+this.requests.length),this.loaderService.isLoading.next(!0),o.Observable.create((function(t){var o=e.handle(r).subscribe((function(e){e instanceof N.HttpResponse&&(n.removeRequest(r),t.next(e))}),(function(e){n.messageService.toast("error: "+e.statusText),n.removeRequest(r),t.error(e),401===e.status&&n.router.navigate(["login"])}),(function(){n.removeRequest(r),t.complete()}));return function(){n.removeRequest(r),o.unsubscribe()}}))},t.ctorParameters=function(){return[{type:Ct},{type:X},{type:It},{type:c.Router},{type:wt}]},t=G([e.Injectable()],t)}(),Tt=function(){function t(){}return t.prototype.ngOnInit=function(){},t=G([e.Component({selector:"lib-tin-spa",template:"\n <p>\n tin-spa works!\n </p>\n "})],t)}(),Et=function(){function t(t,e){this.router=t,this.authService=e,this.isExpanded=!1,this.appConfig=new ht}return t.prototype.ngOnInit=function(){var t=this;this.authService.loggedUserFullName.subscribe((function(e){return t.loggedUserFullName=e})),this.authService.myRoleObserv.subscribe((function(e){return t.myRole=e})),this.authService.loggedinObserv.subscribe((function(e){return t.loggedin=e}))},t.prototype.collapse=function(){this.isExpanded=!1},t.prototype.toggle=function(){this.isExpanded=!this.isExpanded},t.prototype.redirectTo=function(t){""!=t&&this.router.navigate([t])},t.ctorParameters=function(){return[{type:c.Router},{type:It}]},G([e.Input()],t.prototype,"appConfig",void 0),t=G([e.Component({selector:"spa-nav-menu",template:'<header *ngIf="loggedin">\r\n <nav class="toolbar navbar navbar-expand-sm navbar-toggleable-sm navbar-light border-bottom box-shadow mb-3 " style="padding-right: 10px;">\r\n <div class="container-fluid" style="padding-right: 0px;">\r\n \x3c!--<a class="navbar-brand" [routerLink]="[\'/\']">Orbit</a>--\x3e\r\n\r\n <img *ngIf="appConfig.logo!=\'\'" [src]="appConfig.logo" style="height: 50px; margin-right: 2em" />\r\n\r\n\r\n <div style="font-size: 20px;">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n\r\n <button class="navbar-toggler"\r\n type="button"\r\n data-toggle="collapse"\r\n data-target=".navbar-collapse"\r\n aria-label="Toggle navigation"\r\n [attr.aria-expanded]="isExpanded"\r\n (click)="toggle()">\r\n <span class="navbar-toggler-icon"></span>\r\n </button>\r\n\r\n <div *ngIf="myRole" class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse stack-top" style="margin-right: 0px;" [ngClass]="{ show: isExpanded }" >\r\n\r\n <button mat-icon-button (click)="redirectTo(\'login\')"> <mat-icon>logout</mat-icon> </button>\r\n\r\n <button id="btnUser" mat-button [matMenuTriggerFor]="profileMenu" style="margin-left:2em"><mat-icon>account_circle</mat-icon> &nbsp;{{loggedUserFullName}}</button>\r\n\r\n <mat-menu #profileMenu="matMenu">\r\n <button id="btnProfile" mat-menu-item (click)="redirectTo(\'home/user/profile\')" >Profile</button>\r\n <button id="btnLogOff" mat-menu-item (click)="redirectTo(\'login\')">Log Off</button>\r\n </mat-menu>\r\n\r\n <div *ngFor="let item of appConfig.capItems">\r\n\r\n \x3c!-- Menu Item --\x3e\r\n <button id="btnMenu" *ngIf="myRole[item.name] && !item.capSubItems && item.showMenu" mat-button (click)="redirectTo(item.link)">{{item.display}}</button>\r\n\r\n \x3c!-- Menu Item with Sub items ignored --\x3e\r\n <button id="btnMenu" *ngIf="myRole[item.name] && item.capSubItems && item.showMenu && item.ignoreSubsDisplay" mat-button (click)="redirectTo(item.link)">{{item.display}}</button>\r\n\r\n \x3c!-- Menu Item with Sub items to display--\x3e\r\n <button id="btnMenu" *ngIf="myRole[item.name] && item.capSubItems && item.showMenu && !item.ignoreSubsDisplay" mat-button [matMenuTriggerFor]="adminMenu">{{item.display}}</button>\r\n\r\n\r\n \x3c!-- Sub Menu Items --\x3e\r\n <mat-menu #adminMenu="matMenu">\r\n\r\n <div *ngFor="let subItem of item.capSubItems">\r\n\r\n <button *ngIf="myRole[subItem.name] && subItem.showMenu" mat-menu-item (click)="redirectTo(subItem.link)">{{subItem.display}}</button>\r\n\r\n </div>\r\n\r\n </mat-menu>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </nav>\r\n</header>\r\n',styles:["a.navbar-brand{white-space:normal;text-align:center;word-break:break-all}html{font-size:14px}@media (min-width:768px){html{font-size:16px}}.box-shadow{box-shadow:0 .25rem .75rem rgba(0,0,0,.05)}.toolbar{height:60px;display:flex;align-items:center;background-color:#03a;color:#fff;font-weight:600}.stack-top{z-index:9;margin:20px}"]})],t)}(),At=function(){function t(t,e,n,r){var o=this;this.idle=t,this.keepalive=e,this.authService=n,this.router=r,this.loggedin=!1,this.idleState="Not started.",this.timedOut=!1,this.lastPing=null,this.isWarning=!1,this.authService.loggedinObserv.subscribe((function(t){o.loggedin=t})),t.setIdle(900),t.setTimeout(10),t.setInterrupts(z.DEFAULT_INTERRUPTSOURCES),t.onIdleStart.subscribe((function(){o.idleState="You've gone idle!"})),t.onIdleEnd.subscribe((function(){o.idleState="No longer idle.",o.isWarning=!1})),t.onTimeoutWarning.subscribe((function(t){o.idleState="You will be signed out in "+t+" seconds!",o.loggedin&&(o.isWarning=!0)})),t.onTimeout.subscribe((function(){o.idleState="Timed out!",o.timedOut=!0,o.stopWatch()})),e.interval(15),e.onPing.subscribe((function(){o.lastPing=new Date})),this.startWatch()}return t.prototype.ngOnInit=function(){},t.prototype.startWatch=function(){this.idle.watch(),this.idleState="Started.",this.timedOut=!1,this.isWarning=!1},t.prototype.stopWatch=function(){this.idle.stop(),this.isWarning=!1,this.router.navigate(["login"])},t.prototype.using=function(){this.isWarning=!1},t.ctorParameters=function(){return[{type:z.Idle},{type:O.Keepalive},{type:It},{type:c.Router}]},t=G([e.Component({selector:"spa-timeout",template:'\r\n<div class="loading-spinner" [hidden]="!isWarning" >\r\n\r\n <div style="width: 500px; text-align: center;">\r\n\r\n\r\n\r\n <div class="row">\r\n <div class="col">\r\n <img style="width: 100px;"\r\n src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==">\r\n </div>\r\n </div>\r\n\r\n <mat-card class="mat-elevation-z3" >\r\n\r\n <mat-card-header>\r\n\r\n <h5>Are you still there ?</h5>\r\n\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <br>\r\n <span>{{idleState}}</span>\r\n\r\n <br>\r\n\r\n </mat-card-content>\r\n\r\n <mat-card-actions>\r\n\r\n <div class="row justify-content-around">\r\n\r\n <div class="col-2">\r\n <button style="width: 100px;" mat-stroked-button color="primary" (click)="using()">Yes</button>\r\n </div>\r\n\r\n <div class="col-4">\r\n <button style="width: 100px;" mat-stroked-button color="primary" (click)="stopWatch()">No</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n\r\n</div>\r\n\r\n</div>\r\n',styles:[".loading-spinner{background-color:#0000001f;position:absolute;width:100%;top:0;left:0;height:100vh;align-items:center;justify-content:center;display:-ms-grid;display:grid}.loading-spinner img{-ms-grid-row-align:end;align-self:end}.loading-message{text-align:center;-ms-grid-row-align:start;align-self:start}"]})],t)}(),Lt=function(){function n(){this.dataChange=new e.EventEmitter,this.buttonClick=new e.EventEmitter,this.loadClick=new e.EventEmitter,this.createClick=new e.EventEmitter,this.colType=t.TableColumnType,this.op=t.Operator,this.displayedColumns=[],this._filterText=""}return n.prototype.ngOnInit=function(){var t=this;this.config.columns.forEach((function(e){t.displayedColumns.push(e.name)})),this.displayedColumns.push("Action"),this.styleString="width: "+50*this.config.actions.length+"px"},n.prototype.ngOnChanges=function(){this.data=new A.MatTableDataSource(this.data),this.data.paginator=this.tablePaginator,this.applyFilter(this._filterText)},n.prototype.applyFilter=function(t){this.data.filter=t.trim().toLowerCase()},n.prototype.do=function(t,e){var n=new ut;n.name=t,n.value=e,this.buttonClick.emit(n)},n.prototype.create=function(){this.createClick.emit()},n.prototype.load=function(){this.loadClick.emit()},n.prototype.test=function(e,n,r){return n==t.Operator.Equal?e==r:n==t.Operator.Greater?e>r:n==t.Operator.Less?e<r:n==t.Operator.NotEqual?e!=r:void 0},G([e.Input()],n.prototype,"config",void 0),G([e.Input()],n.prototype,"data",void 0),G([e.Output()],n.prototype,"dataChange",void 0),G([e.Output()],n.prototype,"buttonClick",void 0),G([e.Output()],n.prototype,"loadClick",void 0),G([e.Output()],n.prototype,"createClick",void 0),G([e.ViewChild("tablePaginator")],n.prototype,"tablePaginator",void 0),n=G([e.Component({selector:"spa-table",template:'<div >\r\n\r\n<div *ngIf="config.create.enabled || config.enableFilter" class="row justify-content-between" style="padding-bottom: 10px">\r\n <div class="col">\r\n<button *ngIf="config.create" [disabled]="!config.create.enabled" mat-raised-button color="primary" (click)="create()">{{config.create.display}}</button>\r\n</div>\r\n <div *ngIf="config.enableFilter" class="col d-flex justify-content-end">\r\n<mat-form-field style="font-size:12px;margin-right: 5px;">\r\n<mat-label>Filter</mat-label>\r\n<input matInput [(ngModel)]="_filterText" (keyup)="applyFilter($event.target.value)" placeholder="Enter Filter text" autocomplete="off">\r\n</mat-form-field>\r\n<button mat-mini-fab color="primary" (click)="load()" style="margin-top:5px" matTooltip="refresh data" matTooltipPosition="right"><mat-icon class="refreshIcon">refresh</mat-icon></button>\r\n</div>\r\n</div>\r\n\r\n<div class="mat-elevation-z8" *ngIf="data">\r\n\r\n <table mat-table [dataSource]="data">\r\n\r\n <ng-container *ngFor="let col of config.columns; let i = index"\r\n\r\n [matColumnDef]="col.name">\r\n <th mat-header-cell *matHeaderCellDef> {{col.display}} </th>\r\n <td mat-cell *matCellDef="let row">\r\n\r\n \x3c!-- String --\x3e\r\n <div *ngIf="(col.type==colType.String || col.type == null) && col.color == null"> {{row[col.name]}}</div>\r\n\r\n <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null && test(row[col.color.field], col.color.operator, col.color.value )" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null && !test(row[col.color.field], col.color.operator, col.color.value )" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n \x3c!-- <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Equal && row[col.color.field]==col.color.value" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Greater && row[col.color.field]>col.color.value" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Less && row[col.color.field]<col.color.value" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]="{\'color\':col.color.name}"\r\n *ngIf="(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.NotEqual && row[col.color.field]!=col.color.value" >\r\n {{row[col.name]}}\r\n </div> --\x3e\r\n\r\n\r\n \x3c!-- Date --\x3e\r\n <div *ngIf="col.type==colType.Date"> {{row[col.name] | date:\'dd/MM/yyyy\'}}</div>\r\n\r\n\r\n \x3c!-- DateTime --\x3e\r\n <div *ngIf="col.type==colType.DateTime"> {{row[col.name] | date:\'dd/MM/yyyy HH:mm\'}}</div>\r\n\r\n\r\n <ng-container *ngFor="let icon of col.icons;">\r\n \x3c!-- <mat-icon *ngIf="col.type==colType.Icon && icon.operator==op.Equal && row[icon.field]==icon.value"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf="col.type==colType.Icon && icon.operator==op.Greater && row[icon.field]>icon.value"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf="col.type==colType.Icon && icon.operator==op.Less && row[icon.field]<icon.value"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon>\r\n <mat-icon *ngIf="col.type==colType.Icon && icon.operator==op.NotEqual && row[icon.field]!=icon.value"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon> --\x3e\r\n\r\n <mat-icon *ngIf="col.type==colType.Icon && test(row[icon.field],icon.operator,icon.value)"\r\n [ngStyle]="{\'color\':icon.color}"\r\n [matTooltip]="icon.hint" matTooltipPosition="above">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n </ng-container>\r\n\r\n </td>\r\n\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <ng-container matColumnDef="Action">\r\n\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef="let row" [style]="styleString+\';padding-right: 0px;\'">\r\n\r\n <ng-container *ngFor="let act of config.actions">\r\n\r\n <button *ngIf=" (act.disappear && (row[act.disappear.field] != act.disappear.value)) || !act.disappear" mat-mini-fab\r\n\r\n [disabled]="(act.disable && (row[act.disable.field] == act.disable.value))"\r\n [color]="act.color==null? \'primary\' : act.color"\r\n [matTooltip]="act.hint" matTooltipPosition="above"\r\n (click)="do(act.name,row)" style="margin-right:5px">\r\n <mat-icon>{{act.icon}}</mat-icon>\r\n\r\n </button>\r\n\r\n </ng-container>\r\n\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>\r\n <tr mat-row *matRowDef="let row; columns: displayedColumns;" [ngClass]="{\'make-gray\': row[config.greyout.field]==config.greyout.value}"></tr>\r\n\r\n </table>\r\n</div>\r\n<mat-paginator #tablePaginator [pageSizeOptions]="[10, 50, 100]" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.make-gray{background-color:#d3d3d3}"]})],n)}(),Rt=function(){function t(){this.clickable=!1,this.tileClick=new e.EventEmitter,this.selected=""}return t.prototype.ngOnInit=function(){},t.prototype.clicked=function(t){this.clickable&&(this.selected==t.tileName?(this.tileClick.emit(""),this.selected=""):(this.tileClick.emit(t.tileName),this.selected=t.tileName))},G([e.Input()],t.prototype,"tiles",void 0),G([e.Input()],t.prototype,"clickable",void 0),G([e.Output()],t.prototype,"tileClick",void 0),t=G([e.Component({selector:"spa-tiles",template:' <div class="row align-items-center">\r\n\r\n \x3c!-- <div class="col" *ngFor="let row of tiles" >\r\n\r\n <mat-card *ngIf="row.visible">\r\n <div class="row d-flex justify-content-center">\r\n\r\n <mat-label style="font-size:30px;font-weight:bold" [ngStyle]="{\'color\':row.tileColor}">{{row.tileValue}}</mat-label>\r\n\r\n </div>\r\n\r\n <div class="row d-flex justify-content-center">\r\n\r\n <mat-label [ngStyle]="{\'color\':row.selected == true ? \'darkorange\' : \'black\' }" style="font-size:12px;padding-left:5px;padding-right:5px">{{row.tileName}}</mat-label>\r\n <mat-icon style="font-size: 17px; color:steelblue;">info</mat-icon>\r\n\r\n </div>\r\n </mat-card>\r\n\r\n </div> --\x3e\r\n\r\n <ng-container *ngFor="let row of tiles">\r\n\r\n <mat-card class="col" style="margin-left: 10px;margin-right: 10px" *ngIf="row.visible" (click)="clicked(row)">\r\n\r\n <div class="row d-flex justify-content-center">\r\n\r\n <mat-label style="font-weight:bold" [ngStyle]="{\'color\':row.tileColor,\'font-size\':row.tileName == selected ? \'35px\' : \'30px\' }">{{row.tileValue}}</mat-label>\r\n\r\n </div>\r\n\r\n <div class="row d-flex justify-content-center row align-items-center">\r\n\r\n <mat-label [ngStyle]="{\'font-size\':row.tileName == selected ? \'18px\' : \'12px\' }" style="padding-left:5px;padding-right:5px">{{row.tileName}}</mat-label>\r\n <mat-icon [matTooltip]="row.info" matTooltipPosition="above" [ngStyle]="{\'font-size\':row.tileName == selected ? \'20px\' : \'17px\' }" style=" color:steelblue;">info</mat-icon>\r\n\r\n </div>\r\n\r\n </mat-card>\r\n\r\n\r\n </ng-container>\r\n\r\n </div>\r\n',styles:[""]})],t)}(),Ut=function(){function t(){this.date=new U.FormControl(new Date),this.display="",this.readonly=!1,this.currentYear=(new Date).getFullYear(),this.min=new U.FormControl(new Date(this.currentYear-50,0,1)),this.max=new U.FormControl(new Date(this.currentYear+50,0,1))}return t.prototype.ngOnInit=function(){},t.prototype.onChangeEvent=function(t){},G([e.Input()],t.prototype,"date",void 0),G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"readonly",void 0),G([e.Input()],t.prototype,"min",void 0),G([e.Input()],t.prototype,"max",void 0),t=G([e.Component({selector:"spa-date",template:'\r\n<mat-form-field style="width:150px;margin-right:20px">\r\n<input [formControl]="date" [min]="min.value" [max]="max.value" matInput [matDatepicker]="picker_date" [placeholder]="display" [readonly]="true" [disabled]="readonly">\r\n<mat-datepicker-toggle matSuffix [for]="picker_date"></mat-datepicker-toggle>\r\n<mat-datepicker #picker_date></mat-datepicker>\r\n</mat-form-field>\r\n',styles:[""]})],t)}(),Nt=function(){function t(){this.hideRequiredControl=new U.FormControl(!0),this.readonly=!1,this.hint="",this.display="",this.placeholder="",this.value="",this.valueChange=new e.EventEmitter,this.format="text",this.leave=new e.EventEmitter,this.enterPress=new e.EventEmitter,this.rows="",this.width="100%",this.options=[],this.optionValue="",this.optionDisplay="",this.myControl=new U.FormControl,this.required=!0,this.min=0,this.max=9e15,this.regex="",this.control=new U.FormControl(this.value,[U.Validators.required,U.Validators.minLength(this.min),U.Validators.maxLength(this.max),U.Validators.pattern(this.regex)])}return t.prototype.ngOnInit=function(){this.options.length>0&&this.initFilter(),""==this.placeholder&&(this.placeholder=this.display)},t.prototype.ngAfterViewInit=function(){this.readonly&&(this.control.setValidators(null),this.control.updateValueAndValidity()),this.required||this.readonly||(this.control.setValidators([U.Validators.minLength(this.min),U.Validators.maxLength(this.max),U.Validators.pattern(this.regex)]),this.control.updateValueAndValidity())},t.prototype.initFilter=function(){var t=this;this.filteredOptions=this.myControl.valueChanges.pipe(i.startWith(""),i.map((function(e){return t._filter(e)})))},t.prototype._filter=function(t){var e=this,n=t.toLowerCase();return this.options.filter((function(t){return t[""+e.optionDisplay].toLowerCase().includes(n)}))},t.prototype.changed=function(){this.valueChange.emit(this.value)},t.prototype.changed2=function(){this.valueChange.emit(this.myControl.value)},t.prototype.leaved=function(){this.leave.emit()},t.prototype.enterPressed=function(){this.enterPress.emit()},t.prototype.validate=function(){return(this.required||this.min>0)&&this.control.hasError("required")?"Required":this.control.hasError("minlength")?"Minimun length is "+this.min:this.control.hasError("maxlength")?"Maximum length is "+this.max:this.control.hasError("pattern")?"Invalid Input":""},G([e.Input()],t.prototype,"readonly",void 0),G([e.Input()],t.prototype,"hint",void 0),G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"placeholder",void 0),G([e.Input()],t.prototype,"value",void 0),G([e.Output()],t.prototype,"valueChange",void 0),G([e.Input()],t.prototype,"format",void 0),G([e.Output()],t.prototype,"leave",void 0),G([e.Output()],t.prototype,"enterPress",void 0),G([e.Input()],t.prototype,"rows",void 0),G([e.Input()],t.prototype,"width",void 0),G([e.Input()],t.prototype,"options",void 0),G([e.Input()],t.prototype,"optionValue",void 0),G([e.Input()],t.prototype,"optionDisplay",void 0),G([e.Input()],t.prototype,"required",void 0),G([e.Input()],t.prototype,"min",void 0),G([e.Input()],t.prototype,"max",void 0),G([e.Input()],t.prototype,"regex",void 0),t=G([e.Component({selector:"spa-text",template:'<mat-form-field *ngIf="rows == \'\' && options.length==0" hideRequiredMarker="true" [hintLabel]="hint" style="padding-right: 20px;" [ngStyle]="{\'width\':width}" >\r\n<mat-label *ngIf="format==\'text\'">{{display}}</mat-label>\r\n<mat-label *ngIf="format==\'date\'">{{display | date:\'dd/MM/yyyy\'}}</mat-label>\r\n\x3c!-- <mat-label *ngIf="format==\'datetime\'">{{display | date:\'dd/MM/yyyy HH:mm\'}}</mat-label> --\x3e\r\n<input matInput autocomplete="off" [(ngModel)]="value" (change)="changed()" (blur)="leaved()" (keyup.enter)="enterPressed()" [placeholder]="placeholder" [formControl]="control" [required]="required" [readonly]="readonly"/>\r\n<mat-error *ngIf="control.invalid">{{validate()}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n\x3c!-- TextArea copy - Only change input to textarea and change ngif to not --\x3e\r\n\r\n<mat-form-field *ngIf="rows != \'\' && options.length==0" hideRequiredMarker="true" [hintLabel]="hint" style="padding-right: 20px;" [ngStyle]="{\'width\':width}">\r\n<mat-label>{{display}}</mat-label>\r\n<textarea matInput autocomplete="off" [rows]="rows" [(ngModel)]="value" (change)="changed()" (keyup.enter)="enterPressed()" [placeholder]="placeholder" [formControl]="control" [required]="required" [readonly]="readonly"></textarea>\r\n<mat-error *ngIf="control.invalid">{{validate()}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n\r\n\x3c!-- Work in progress cant bind to value --\x3e\r\n\r\n \x3c!-- <mat-form-field *ngIf="options.length !=0" hideRequiredMarker="true" [hintLabel]="hint" style="padding-right: 20px;" [ngStyle]="{\'width\':width}">\r\n <input type="text" autocomplete="off" [placeholder]="display" (change)="changed2()" matInput [formControl]="myControl" [matAutocomplete]="auto" [readonly]="readonly">\r\n <mat-autocomplete #auto="matAutocomplete">\r\n <mat-option *ngFor="let row of filteredOptions | async" [value]="row[optionValue]">\r\n {{row[optionDisplay]}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field> --\x3e\r\n\r\n',styles:[""]})],t)}(),Ot=function(){function t(t,e){this.httpService=t,this.data=e,this.isProcessing=!1,this.fileNames=new Array,this.currIndex=0,this.currentFileUrl="",this.imageDoc=!1}return t.prototype.ngOnInit=function(){this.fileNames=this.data.fileNames,this.path=this.data.path,this.fileName=this.data.fileName,this.currIndex=this.data.fileNames.indexOf(this.fileName),this.setURL()},t.prototype.previous=function(){0!=this.fileNames.length&&(this.currIndex-1>=0?this.currIndex=this.currIndex-1:0==this.currIndex&&(this.currIndex=this.fileNames.length-1),this.setURL())},t.prototype.next=function(){0!=this.fileNames.length&&(this.currIndex+1<this.fileNames.length?this.currIndex=this.currIndex+1:this.currIndex+1>this.fileNames.length-1&&(this.currIndex=0),this.setURL())},t.prototype.setURL=function(){this.currentFileUrl=""+this.httpService.apiUrl.replace("/api/","/")+this.path.replace("//","/")+"/"+this.fileNames[this.currIndex],this.currentFileUrl.toLocaleLowerCase().endsWith(".pdf")||this.currentFileUrl.toLocaleLowerCase().endsWith(".jpg")||this.currentFileUrl.toLocaleLowerCase().endsWith(".jpeg")?this.imageDoc=!0:(this.imageDoc=!1,window.open(this.currentFileUrl,"_blank"))},t.prototype.change=function(t){this.currIndex=this.fileNames.indexOf(t),this.setURL()},t.ctorParameters=function(){return[{type:l.HttpService},{type:void 0,decorators:[{type:e.Inject,args:[r.MAT_DIALOG_DATA]}]}]},t=G([e.Component({selector:"app-editRequest",template:'\r\n\r\n<mat-dialog-content class="mat-typography">\r\n\r\n <div class="row">\r\n\r\n <div class="col">\r\n <ngx-doc-viewer *ngIf="imageDoc"\r\n [url]="currentFileUrl"\r\n viewer="url"\r\n style="width:100%;height:60vh;">\r\n </ngx-doc-viewer>\r\n\r\n <div *ngIf="!imageDoc" class="d-flex justify-content-center row align-items-center" style="height:60vh;">\r\n\r\n This file type will be downloaded\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class="col-3">\r\n <spa-chips [chips]="fileNames" display="Documents" icon="description" (click)="change($event)"></spa-chips>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]="currIndex == 0" (click)="previous()" cdkFocusInitial>Previous</button>\r\n<button mat-button [disabled]="currIndex+1 == fileNames.length" (click)="next()" cdkFocusInitial>Next</button>\r\n<button mat-button mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n',styles:[".truncate-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.align-end{justify-content:flex-end}.fx-spacer{flex:1 1 auto}"]}),V(1,e.Inject(r.MAT_DIALOG_DATA))],t)}(),Ft=function(){function t(t){this.dialog=t,this.dir="",this.folderName="",this.fileNames=new Array,this.removable=!1,this.remove=new e.EventEmitter,this.display="Documents",this.title="Documents"}return t.prototype.ngOnInit=function(){},t.prototype.viewDocs=function(t){if("string"==typeof t)this.dialog.open(Ot,{minWidth:"1500px",maxWidth:"80vw",data:{fileNames:this.fileNames,fileName:t,path:this.dir+"/"+this.folderName}})},t.prototype.removed=function(t){this.remove.emit(t)},t.ctorParameters=function(){return[{type:r.MatDialog}]},G([e.Input()],t.prototype,"dir",void 0),G([e.Input()],t.prototype,"folderName",void 0),G([e.Input()],t.prototype,"fileNames",void 0),G([e.Input()],t.prototype,"removable",void 0),G([e.Output()],t.prototype,"remove",void 0),G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"title",void 0),t=G([e.Component({selector:"spa-viewer",template:'<div class="tin-input-row mt-3" *ngIf="title != \'\'">\r\n <mat-label style="font-size: 20px; font-weight: 300" > {{title}}</mat-label >\r\n</div>\r\n\r\n<spa-chips [chips]="fileNames" [title]="title" [removable]="removable" icon="description" (click)="viewDocs($event)" (remove)="removed($event)"></spa-chips>\r\n\r\n\r\n\r\n<div *ngIf="!fileNames" class="d-flex justify-content-center row align-items-center" style="max-height:200px">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n</div>\r\n',styles:[".truncate-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.align-end{justify-content:flex-end}.fx-spacer{flex:1 1 auto}"]})],t)}(),jt=function(){function t(){this.width="100%",this.readonly=!1,this.readonlyMode="",this.hint="",this.display="",this.value="",this.optionValue="",this.optionDisplay="",this.optionDisplayExtra="",this.valueChange=new e.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.ngOnChanges=function(){var t=this;""!=this.readonlyMode&&this.options.length>0&&(this.displayValue=this.options.filter((function(e){return e[""+t.optionValue]==t.value}))[0][""+this.optionDisplay])},t.prototype.changed=function(){this.valueChange.emit(this.value)},t.prototype.selectChanged=function(){},G([e.Input()],t.prototype,"width",void 0),G([e.Input()],t.prototype,"readonly",void 0),G([e.Input()],t.prototype,"readonlyMode",void 0),G([e.Input()],t.prototype,"hint",void 0),G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"value",void 0),G([e.Input()],t.prototype,"options",void 0),G([e.Input()],t.prototype,"optionValue",void 0),G([e.Input()],t.prototype,"optionDisplay",void 0),G([e.Input()],t.prototype,"optionDisplayExtra",void 0),G([e.Output()],t.prototype,"valueChange",void 0),t=G([e.Component({selector:"spa-select",template:'\r\n\r\n\r\n<mat-form-field *ngIf="readonlyMode==\'\'" style="padding-right: 20px;" [ngStyle]="{\'width\':width}">\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]="value" (selectionChange)="changed()" [disabled]="readonly">\r\n <mat-option *ngFor="let row of options" [value]="row[optionValue]">\r\n {{row[optionDisplay]}} <label *ngIf="optionDisplayExtra!=\'\' && row[optionDisplayExtra] && row[optionDisplayExtra] != \'\'">({{row[optionDisplayExtra]}})</label>\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf="hint!=\'\'">{{hint}}</mat-hint>\r\n</mat-form-field>\r\n\r\n\x3c!-- ReadOnlyModes original, text, label --\x3e\r\n\x3c!-- <spa-text *ngIf="readonlyMode==\'text\' && readonly" [display]="display" [(value)]="displayValue" [readonly]="true" ></spa-text> --\x3e\r\n',styles:[""]})],t)}(),zt=function(){function t(){this.readonly=!1,this.display="",this.value=!1,this.valueChange=new e.EventEmitter,this.click=new e.EventEmitter,this.check=new e.EventEmitter,this.uncheck=new e.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.changed=function(){this.valueChange.emit(this.value)},t.prototype.clicked=function(){this.click.emit(),this.value?this.unchecked():this.checked()},t.prototype.checked=function(){this.check.emit()},t.prototype.unchecked=function(){this.uncheck.emit()},G([e.Input()],t.prototype,"readonly",void 0),G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"value",void 0),G([e.Output()],t.prototype,"valueChange",void 0),G([e.Output()],t.prototype,"click",void 0),G([e.Output()],t.prototype,"check",void 0),G([e.Output()],t.prototype,"uncheck",void 0),t=G([e.Component({selector:"spa-check",template:' <mat-checkbox color="primary" style="margin-right:50px; font-size:14px" [(ngModel)]="value" (change)="changed()" (click)="clicked()" [disabled]="readonly">{{display}}</mat-checkbox>\r\n',styles:[""]})],t)}(),_t=function(){function t(){this.message="Drag and drop files here",this.files=[],this.filesChange=new e.EventEmitter,this.upload=new e.EventEmitter,this.enableUpload=!1}return t.prototype.ngOnInit=function(){},t.prototype.onFileDropped=function(t){this.prepareFilesList(t)},t.prototype.fileBrowseHandler=function(t){this.prepareFilesList(t)},t.prototype.deleteFile=function(t){this.files.splice(t,1)},t.prototype.prepareFilesList=function(t){var e,n;try{for(var r=$(t),o=r.next();!o.done;o=r.next()){var i=o.value;i.progress=0,this.files.push(i)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}},t.prototype.formatBytes=function(t,e){if(0===t)return"0 Bytes";var n=e<=0?0:e||2,r=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,r)).toFixed(n))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][r]},t.prototype.uploaded=function(){this.upload.emit()},t.prototype.filesChanged=function(){this.filesChange.emit(this.files)},G([e.Input()],t.prototype,"message",void 0),G([e.Input()],t.prototype,"files",void 0),G([e.Output()],t.prototype,"filesChange",void 0),G([e.Output()],t.prototype,"upload",void 0),G([e.Input()],t.prototype,"enableUpload",void 0),t=G([e.Component({selector:"spa-attach",template:'<div class="tin-input-row" style="width: 100%;">\r\n\r\n <div class="col">\r\n <div class="container" appDnd (fileDropped)="onFileDropped($event)">\r\n <input type="file" #fileDropRef id="fileDropRef" multiple (change)="fileBrowseHandler($event.target.files)" />\r\n <h4>{{message}}</h4>\r\n <h4>or</h4>\r\n <label for="fileDropRef">Click to Browse</label>\r\n </div>\r\n </div>\r\n\r\n <div class="col">\r\n <div class="files-list ">\r\n <div class="single-file " style="width: 100%;" *ngFor="let file of files; let i = index">\r\n\r\n <div class="tin-input-row info" >\r\n <h4 class="name">\r\n {{ file?.name }}\r\n </h4>\r\n <p class="size">\r\n {{ formatBytes(file?.size, 2) }}\r\n </p>\r\n </div>\r\n\r\n <div class="delete" (click)="deleteFile(i)">\r\n <svg xmlns="http://www.w3.org/2000/svg" width="14" height="18" viewBox="0 0 14 18">\r\n <path fill="#B1B1B1" fill-rule="nonzero"\r\n d="M1 16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v10zm3.17-7.83a.996.996 0 0 1 1.41 0L7 9.59l1.42-1.42a.996.996 0 1 1 1.41 1.41L8.41 11l1.42 1.42a.996.996 0 1 1-1.41 1.41L7 12.41l-1.42 1.42a.996.996 0 1 1-1.41-1.41L5.59 11 4.17 9.58a.996.996 0 0 1 0-1.41zM10.5 1L9.79.29C9.61.11 9.35 0 9.09 0H4.91c-.26 0-.52.11-.7.29L3.5 1H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf="files.length > 0 && enableUpload" class="tin-input-row d-flex justify-content-center" style="width: 100%;" >\r\n <button mat-button color="primary" (click)="uploaded()" matTooltip="Upload New Documents" matTooltipPosition="above" ><mat-icon>file_upload</mat-icon> Upload</button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n',styles:[".container{width:100%;height:200px;padding:2rem;text-align:center;border:2px dashed #2a7b94;position:relative;margin:0 auto}.container input{opacity:0;position:absolute;z-index:2;width:100%;height:100%;top:0;left:0}.container label{color:#fff;width:183px;height:44px;border-radius:21.5px;background-color:#db202f;padding:8px 16px}.container h3{font-size:20px;font-weight:600;color:#38424c}.fileover{-webkit-animation:1s infinite shake;animation:1s infinite shake}.files-list{margin-top:1.5rem}.files-list .single-file{display:flex;padding:.5rem;justify-content:space-between;align-items:center;border:1px dashed #1c824d;margin-bottom:1rem;margin-right:1rem;display:flex;flex-grow:1}.files-list .single-file .delete{display:flex;margin-left:.5rem;cursor:pointer;align-self:flex-end}.files-list .single-file .name{font-size:14px;font-weight:500;color:#353f4a;margin:0}.files-list .single-file .size{font-size:12px;font-weight:500;color:#a4a4a4;margin:0 0 0 1rem}.files-list .single-file .info{width:100%}@-webkit-keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}@keyframes shake{0%{transform:translate(1px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-1deg)}20%{transform:translate(-3px,0) rotate(1deg)}30%{transform:translate(3px,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(3px,1px) rotate(-1deg)}80%{transform:translate(-1px,-1px) rotate(1deg)}90%{transform:translate(1px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}"]})],t)}(),qt=function(){function t(){this.display="",this.value="",this.valueChange=new e.EventEmitter,this.readonly=!1,this.min="01 jan 1900",this.max="31 dec 9999"}return t.prototype.ngOnInit=function(){},t.prototype.changed=function(){this.valueChange.emit(this.value)},G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"value",void 0),G([e.Output()],t.prototype,"valueChange",void 0),G([e.Input()],t.prototype,"readonly",void 0),G([e.Input()],t.prototype,"min",void 0),G([e.Input()],t.prototype,"max",void 0),t=G([e.Component({selector:"spa-datetime",template:'<mat-form-field style="width:150px;margin-right:20px">\r\n<mat-label>{{display}}</mat-label>\r\n<input matInput autocomplete="off" type="datetime-local" [(ngModel)]="value" [min]="min" [max]="max" (change)="changed()" [placeholder]="display" [readonly]="readonly" />\r\n</mat-form-field>\r\n',styles:[""]})],t)}(),Ht=function(){function t(){this.readonly=!1,this.display="",this.value="",this.valueChange=new e.EventEmitter,this.width="100%",this.hint="",this.currency="$"}return t.prototype.ngOnInit=function(){},t.prototype.ngOnChanges=function(){},t.prototype.changed=function(){this.valueChange.emit(this.value)},G([e.Input()],t.prototype,"readonly",void 0),G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"value",void 0),G([e.Output()],t.prototype,"valueChange",void 0),G([e.Input()],t.prototype,"width",void 0),G([e.Input()],t.prototype,"hint",void 0),G([e.Input()],t.prototype,"currency",void 0),t=G([e.Component({selector:"spa-money",template:'\r\n<div class="tin-input-row">\r\n\r\n<Label>{{currency}}</Label>\r\n<mat-form-field [hintLabel]="hint" style="padding-right: 20px;" [ngStyle]="{\'width\':width}" >\r\n <mat-label>{{display}}</mat-label>\r\n \x3c!-- <span>$</span> --\x3e\r\n <input matInput class="example-right-align" autocomplete="off" type="number" min="0.00" step="0.01" [(ngModel)]="value " [placeholder]="display" (change)="changed()" [readonly]="readonly" />\r\n\x3c!-- <span matTextSuffix>.00</span> --\x3e\r\n</mat-form-field>\r\n</div>\r\n\r\n\r\n\r\n\r\n',styles:["input.example-right-align{-moz-appearance:textfield}.example-right-align{text-align:right}input.example-right-align::-webkit-inner-spin-button,input.example-right-align::-webkit-outer-spin-button{display:none}.curr{background-color:red}"]})],t)}(),Bt=function(){function t(){this.fileDropped=new e.EventEmitter}return t.prototype.onDragOver=function(t){t.preventDefault(),t.stopPropagation(),this.fileOver=!0},t.prototype.onDragLeave=function(t){t.preventDefault(),t.stopPropagation(),this.fileOver=!1},t.prototype.ondrop=function(t){t.preventDefault(),t.stopPropagation(),this.fileOver=!1;var e=t.dataTransfer.files;e.length>0&&this.fileDropped.emit(e)},G([e.HostBinding("class.fileover")],t.prototype,"fileOver",void 0),G([e.Output()],t.prototype,"fileDropped",void 0),G([e.HostListener("dragover",["$event"])],t.prototype,"onDragOver",null),G([e.HostListener("dragleave",["$event"])],t.prototype,"onDragLeave",null),G([e.HostListener("drop",["$event"])],t.prototype,"ondrop",null),t=G([e.Directive({selector:"[appDnd]"})],t)}(),Gt=function(){function t(t){this.messageService=t,this.icon="",this.removable=!1,this.addable=!1,this.click=new e.EventEmitter,this.remove=new e.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.clicked=function(t){console.log("Clicked chip: "+t),"string"==typeof t&&t&&this.click.emit(t)},t.prototype.removed=function(t){var e=this;this.messageService.confirm("Remove "+t+" ?").subscribe((function(n){"yes"==n&&e.remove.emit(t)}))},t.ctorParameters=function(){return[{type:X}]},G([e.Input()],t.prototype,"icon",void 0),G([e.Input()],t.prototype,"removable",void 0),G([e.Input()],t.prototype,"addable",void 0),G([e.Input()],t.prototype,"chips",void 0),G([e.Output()],t.prototype,"click",void 0),G([e.Output()],t.prototype,"remove",void 0),t=G([e.Component({selector:"spa-chips",template:'\r\n\r\n\r\n<div class="row mt-1" style="margin-left: 1em;">\r\n <mat-chip-list #chipList >\r\n <mat-chip *ngFor="let chip of chips let i = index" selectable [removable]="removable" style="font-size: 12px;" [ngStyle]="{\'padding-right\': removable ? \'5px\':\'12px\'}" (click)="clicked(chip)" >\r\n <mat-icon *ngIf="icon != \'\'" color="primary" style="font-size: 22px;">{{icon}}</mat-icon>\r\n\r\n {{chip}}\r\n\r\n <mat-icon *ngIf="removable" style="font-size: 20px; margin-left: 5px;margin-top: 3px;margin-right: 0px; color: grey;" (click)="removed(chip)">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</div>\r\n\r\n\r\n',styles:[""]})],t)}(),Vt=function(){function t(){this.notes=new Array,this.notesMessage="Empty",this.title="Notes"}return t.prototype.ngOnInit=function(){},G([e.Input()],t.prototype,"notes",void 0),G([e.Input()],t.prototype,"title",void 0),t=G([e.Component({selector:"spa-activity",template:'\r\n <div class="tin-input-row mt-3" *ngIf="title != \'\'">\r\n <mat-label style="font-size: 20px; font-weight: 300" > {{title}}</mat-label >\r\n </div>\r\n\r\n <ul *ngIf="notes && notes.length>0" class="list-group list-group-flush" style="max-height:350px; margin-left:5px">\r\n\r\n <li *ngFor="let note of notes" class="list-group-item list-group-item-action flex-column align-items-start">\r\n <div class="d-flex w-100 justify-content-between">\r\n <div class="mb-0">{{note.createdByName}}</div>\r\n \x3c!-- <small class="text-muted">{{note.expr1}} ago</small> --\x3e\r\n </div>\r\n\r\n <small>{{note.details}} (<em>{{note.createdDate | date: \'dd MMM yyyy HH:mm\'}}</em>) </small>\r\n </li>\r\n\r\n\r\n </ul>\r\n\r\n <div *ngIf="notes && notes.length==0" class="d-flex justify-content-center row align-items-center" style="max-height:200px">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n </div>\r\n',styles:[""]})],t)}(),Wt=function(){function t(){this.value="",this.valueChange=new e.EventEmitter,this.readonly=!1,this.config={editable:!0,spellcheck:!0,height:"auto",minHeight:"5rem",placeholder:"Enter text here...",translate:"no",defaultParagraphSeparator:"",defaultFontName:"Arial",toolbarHiddenButtons:[["bold","italic","underline","strikeThrough","subscript","superscript","justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent","insertUnorderedList","insertOrderedList","heading","fontName"],["fontSize","textColor","backgroundColor","customClasses","link","unlink","insertImage","insertVideo","insertHorizontalRule","removeFormat","toggleEditorMode"]],customClasses:[{name:"quote",class:"quote"},{name:"redText",class:"redText"},{name:"titleText",class:"titleText",tag:"h1"}]}}return t.prototype.ngOnInit=function(){},t.prototype.changed=function(){this.valueChange.emit(this.value)},t.prototype.ngOnChanges=function(){this.config.editable=!this.readonly},G([e.Input()],t.prototype,"value",void 0),G([e.Output()],t.prototype,"valueChange",void 0),G([e.Input()],t.prototype,"readonly",void 0),G([e.Input()],t.prototype,"config",void 0),t=G([e.Component({selector:"spa-html",template:'<angular-editor [(ngModel)]="value" [config]="config" (ngModelChange)="changed()" ></angular-editor>\r\n',styles:[""]})],t)}(),Zt=function(){function t(){this.optionValue="",this.optionDisplay="",this.readonly=!1,this.value="",this.display="",this.show=!1,this.valueChange=new e.EventEmitter,this.enterPress=new e.EventEmitter}return t.prototype.ngOnInit=function(){},t.prototype.changed=function(){this.valueChange.emit(this.value)},t.prototype.enterPressed=function(){this.valueChange.emit()},t.prototype.resetValue=function(){this.value="",this.changed()},G([e.Input()],t.prototype,"options",void 0),G([e.Input()],t.prototype,"optionValue",void 0),G([e.Input()],t.prototype,"optionDisplay",void 0),G([e.Input()],t.prototype,"readonly",void 0),G([e.Input()],t.prototype,"value",void 0),G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"show",void 0),G([e.Output()],t.prototype,"valueChange",void 0),G([e.Output()],t.prototype,"enterPress",void 0),t=G([e.Component({selector:"spa-option",template:'\r\n<mat-checkbox color="primary" style="margin-right:5px" [(ngModel)]="show" (change)="resetValue()" labelPosition="after">{{display}}</mat-checkbox>\r\n\r\n<mat-form-field style="margin-right:10px;width: 0px;" >\r\n<input matInput />\r\n</mat-form-field>\r\n\r\n<mat-form-field style="margin-right:30px" *ngIf="show && !options">\r\n<input matInput [(ngModel)]="value" width="100" (change)="changed()" (keyup.enter)="changed()" [placeholder]="\'Enter \' + display" autocomplete="off" />\r\n</mat-form-field>\r\n\r\n\r\n<mat-form-field style="margin-right: 20px;" width="100" *ngIf="show && options">\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]="value" (selectionChange)="changed()" [disabled]="readonly" >\r\n <mat-option *ngFor="let row of options" [value]="row[optionValue]">\r\n {{row[optionDisplay]}}\r\n </mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n\r\n\x3c!-- <spa-text *ngIf="show" style="margin-right:30px" [display]="\'Enter \' + display" (enterPress)="enterPressed()" (valueChange)="changed($event.target.value)" width="100" [required]="false" [(value)]="value" ></spa-text> --\x3e\r\n\r\n',styles:[""]})],t)}(),$t=function(){function t(){this.display="",this.value="",this.format="text"}return t.prototype.ngOnInit=function(){},G([e.Input()],t.prototype,"display",void 0),G([e.Input()],t.prototype,"value",void 0),G([e.Input()],t.prototype,"format",void 0),t=G([e.Component({selector:"spa-label",template:"<div *ngIf=\"format=='text'\">\r\n <label style=\"font-weight: 500\" >{{display}}: </label> &nbsp; <label>{{value}} </label> &nbsp;\r\n</div>\r\n\r\n<div *ngIf=\"format=='date'\">\r\n <label style=\"font-weight: 500\" >{{display}}: </label> &nbsp; <label>{{value | date:'dd/MM/yyyy'}} </label> &nbsp;\r\n</div>\r\n\r\n<div *ngIf=\"format=='datetime'\">\r\n <label style=\"font-weight: 500\" >{{display}}: </label> &nbsp; <label>{{value | date:'dd/MM/yyyy HH:mm'}} </label> &nbsp;\r\n</div>\r\n\r\n<div *ngIf=\"format=='money'\">\r\n <label style=\"font-weight: 500\" >{{display}}: </label> &nbsp; <label>{{value | currency:'USD':''}} </label> &nbsp;\r\n</div>\r\n",styles:[""]})],t)}(),Jt={displayDefaultIndicatorType:!1},Yt=function(){function t(){this.value=""}return t.prototype.ngOnInit=function(){},t.prototype.ngAfterViewInit=function(){},t.prototype.ngOnChanges=function(){this.pushSteps()},t.prototype.setStepper=function(){if(""!=this.value)switch(this.stepper.selectedIndex=0,this.value){case"Draft":this.stepper.selectedIndex=0;break;case"Head Approval":this.pushStepper(1);break;case"CE Approval":this.pushStepper(2);break;case"Booking":this.pushStepper(3);break;case"BTA Approval":this.pushStepper(4);break;case"Travel":this.pushStepper(5);break;case"BTR Approval":this.pushStepper(6);break;case"Travel Closure":this.pushStepper(7)}},t.prototype.pushStepper=function(t){for(var e=0;e<t+1;e++)this.stepper.selectedIndex=e},t.prototype.pushSteps=function(){var t,e;if(0!=this.steps.length&&""!=this.value){this.stepper.selectedIndex=0;var n=0;try{for(var r=$(this.steps),o=r.next();!o.done;o=r.next()){if(o.value.name==this.value){this.stepper.selectedIndex=n;break}this.stepper.selectedIndex=n,n++}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=r.return)&&e.call(r)}finally{if(t)throw t.error}}}},G([e.ViewChild("stepper")],t.prototype,"stepper",void 0),G([e.Input()],t.prototype,"value",void 0),G([e.Input()],t.prototype,"steps",void 0),t=G([e.Component({selector:"spa-steps",template:'\r\n\r\n\r\n\x3c!-- <mat-horizontal-stepper class="test" labelPosition="bottom" #stepper>\r\n <mat-step [editable]="false" label="Draft"> </mat-step>\r\n <mat-step [editable]="false" label="Head Approval" > </mat-step>\r\n <mat-step [editable]="false" label="CE Approval"> </mat-step>\r\n <mat-step [editable]="false" label="Booking" state="booking"> </mat-step>\r\n <mat-step [editable]="false" label="BTA Approval"> </mat-step>\r\n <mat-step [editable]="false" label="Travel"> </mat-step>\r\n <mat-step [editable]="false" label="BTR Approval"> </mat-step>\r\n <mat-step [editable]="false" label="Closure"> </mat-step>\r\n <ng-template matStepperIcon="booking"> <mat-icon>forum</mat-icon> </ng-template>\r\n</mat-horizontal-stepper> --\x3e\r\n\r\n<mat-horizontal-stepper class="transparent" labelPosition="bottom" #stepper>\r\n\r\n <mat-step *ngFor="let row of steps"\r\n [editable]="false" [label]="row.name">\r\n </mat-step>\r\n\r\n \x3c!-- <ng-template *ngFor="let row of steps"\r\n [matStepperIcon]="row.name"> <mat-icon>{{row.icon}}</mat-icon>\r\n </ng-template> --\x3e\r\n\r\n \x3c!-- <ng-template matStepperIcon="booking">\r\n <mat-icon>call_end</mat-icon>\r\n </ng-template> --\x3e\r\n\r\n \x3c!-- <ng-template ngFor let-xb [ngForOf]="steps" matStepperIcon="Booking"> <mat-icon>forum</mat-icon>\r\n\r\n </ng-template> --\x3e\r\n\r\n</mat-horizontal-stepper>\r\n',providers:[{provide:q.STEPPER_GLOBAL_OPTIONS,useValue:Jt}],styles:[".transparent{background-color:rgba(0,0,0,0)}:host ::ng-deep.mat-step-header{padding:5px!important}:host ::ng-deep.mat-stepper-horizontal-line{min-width:5px!important}:host ::ng-deep .mat-horizontal-content-container{padding:0!important}:host ::ng-deep .mat-horizontal-stepper-header{pointer-events:none!important}"]})],t)}(),Kt=function(){function t(){}return t=G([e.NgModule({declarations:[Bt,Tt,Q,Et,kt,At,Lt,Rt,Ut,Nt,Ft,jt,zt,_t,qt,Ht,Gt,Vt,Ot,Wt,Zt,$t,Yt],entryComponents:[Q],imports:[U.ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl:"never"}),p.CommonModule,U.FormsModule,U.ReactiveFormsModule,Dt,F.MomentModule,j.NgxDocViewerModule,_.AngularEditorModule,O.NgIdleKeepaliveModule.forRoot()],exports:[p.CommonModule,U.FormsModule,Dt,Tt,Q,Et,kt,At,Lt,Rt,Ut,Ft,jt,Nt,qt,zt,_t,Ht,Gt,Vt,Wt,Zt,$t,Yt],providers:[{provide:N.HTTP_INTERCEPTORS,useClass:Pt,multi:!0},{provide:p.LocationStrategy,useClass:p.HashLocationStrategy}]})],t)}(),Qt=function(){function t(t,e,n,r,o,i,a){this.httpService=t,this.storageService=e,this.router=n,this.messageService=r,this.dataService=o,this.authService=i,this.logService=a,this.user=new yt,this.hide=!0,this.isProcessing=!1,this.appConfig=new ht}return t.prototype.ngOnInit=function(){this.authService.updateloggedin(!1),this.authService.updateRole(null),this.storageService.clear()},t.prototype.signup=function(){this.router.navigate(["signup"])},t.prototype.recoverAccount=function(){this.router.navigate(["recover-account"])},t.prototype.login=function(){var t=this;""!=this.user.userID&&""!=this.user.password?(this.logService.info("logging in"),this.isProcessing=!0,this.dataService.login(this.user).subscribe((function(e){if(t.isProcessing=!1,"success"==e.message){if("local"==e.ds.dtUser[0].authType&&!t.appConfig.localAuth)return void t.messageService.toast("Contact Admin: Authentication Type error");if("AD"==e.ds.dtUser[0].authType&&!t.appConfig.ADAuth)return void t.messageService.toast("Contact Admin: Authentication Type error");t.authService.updateloggedin(!0),t.authService.updateToken(e.ds.dtUser[0].token),t.storageService.store(l.Constants.AUTH_TOKEN,e.ds.dtUser[0].token),t.authService.updateTokenExpire(e.ds.dtUser[0].tokenExpire),t.storageService.store(l.Constants.AUTH_TOKEN_EXPIRE,e.ds.dtUser[0].tokenExpire),t.authService.updateCurrentUser(t.user.userID),t.storageService.store(l.Constants.AUTH_USER,t.user.userID),t.authService.updateLoggedUserFullName(e.ds.dtProfile[0].firstName),t.storageService.store(l.Constants.AUTH_NAME,e.ds.dtProfile[0].firstName),t.authService.updateRole(e.ds.dtRole[0]),t.storageService.store(l.Constants.AUTH_ROLES,JSON.stringify(e.ds.dtRole[0])),"0"==e.ds.dtUser[0].changePassword?(t.router.navigate(["home"]),t.logService.info("logged in")):t.router.navigate(["home/user/change-password"])}else t.messageService.toast("Error: "+e.message),t.user.password=""}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))):this.messageService.toast("Please enter your credentials")},t.prototype.setRole=function(t){var e=this;this.dataService.GetRole("id",t).subscribe((function(t){e.authService.updateRole(t.dt[0]),e.storageService.store(l.Constants.AUTH_ROLES,JSON.stringify(t.dt[0]))}))},t.ctorParameters=function(){return[{type:l.HttpService},{type:K},{type:c.Router},{type:X},{type:St},{type:It},{type:wt}]},G([e.Input()],t.prototype,"config",void 0),G([e.Input()],t.prototype,"appConfig",void 0),t=G([e.Component({selector:"spa-login",template:'\r\n <div class="tin-bg-login login-page">\r\n\r\n\r\n <div *ngIf="config.logo!=\'\'" class="d-flex justify-content-center row align-items-center" style="margin-top:3em;margin-bottom:1em">\r\n\r\n <img *ngIf="config.logoSize==\'normal\'" [src]="config.logo" style="height:100px;margin-right:3em;margin-left:3em" />\r\n <img *ngIf="config.logoSize==\'medium\'" [src]="config.logo" style="height:150px;margin-right:3em;margin-left:3em" />\r\n <img *ngIf="config.logoSize==\'large\'" [src]="config.logo" style="height:250px;margin-right:3em;margin-left:3em" />\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf="config.logo ==\'\'" style="margin-top:2em">\r\n \x3c!-- Add margin top when there is no logo --\x3e\r\n </div>\r\n\r\n\r\n <div class="d-flex justify-content-center row align-items-center" style="margin-top:3em">\r\n\r\n\r\n <div class="d-none d-sm-block">\r\n\r\n </div>\r\n\r\n <div style="margin-left:1em">\r\n\r\n\r\n\r\n <mat-card class="mat-elevation-z3" style="width:400px; ">\r\n\r\n <mat-card-header>\r\n <mat-card-title>{{config.appName}}</mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n\r\n <div class="tin-input mt-2">\r\n\r\n <mat-form-field style="width: 100%;">\r\n <mat-label>Username</mat-label>\r\n <input id="txtUserID" matInput #parentInput placeholder="Enter Username" [(ngModel)]="user.userID" autocomplete="off" autofocus>\r\n </mat-form-field>\r\n\r\n <mat-form-field >\r\n <mat-label>Password</mat-label>\r\n <input id="txtPassword" matInput [type]="hide ? \'password\' : \'text\'" (keyup.enter)="login()" [(ngModel)]="user.password" autocomplete="off" >\r\n <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="\'Hide password\'" [attr.aria-pressed]="hide">\r\n <mat-icon style="font-size: 18px;">{{hide ? \'visibility_off\' : \'visibility\'}}</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <div class="row ">\r\n\r\n <div class="col d-flex justify-content-center">\r\n\r\n <button id="btnLogin" mat-raised-button [disabled]="isProcessing" style="width: 100px;" (click)="login()" color="primary">Login</button>\r\n </div>\r\n\r\n <div class="col d-flex justify-content-center" *ngIf="config.selfService">\r\n <button id="btnSignup" mat-stroked-button color="primary" style="width: 100px;" (click)="signup()">Signup</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n <div *ngIf="config.selfService">\r\n <br />\r\n <a mat-button id="lnkRecover" style="margin-left: 1em" (click)="recoverAccount()">Forgot your password ?</a>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n',styles:[".login-page{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto}.tin-bg-login{background-image:url(~/assets/login-bg.jpg);background-size:100%}"]})],t)}(),Xt=function(){function t(t,e,n,r){this.httpService=t,this.messageService=e,this.dataService=n,this.authService=r,this.isProcessing=!1,this.user=new yt,this.profile=new xt,this.account=new vt}return t.prototype.ngOnInit=function(){this.account.user=this.user,this.account.profile=this.profile},t.prototype.create=function(){var t=this;this.profile.userID=this.user.userID,this.isProcessing=!0,this.dataService.UpdateAccount(this.account,"add").subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Account Created"),t.user=new yt,t.profile=new xt):t.messageService.toast("Error: "+e.message)}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))},t.ctorParameters=function(){return[{type:l.HttpService},{type:X},{type:St},{type:It}]},t=G([e.Component({selector:"spa-signup",template:'\r\n<h4 style="margin-top: 1em;">Signup</h4>\r\n\r\n<hr/>\r\nComplete the form below.\r\n\r\n<div class="d-flex justify-content-center row align-items-center">\r\n\r\n <div class="tin-input" style="font-size:14px; width: 50%;">\r\n\r\n\r\n <div class="tin-input-row">\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>FirstName</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="account.profile.firstName" placeholder="Enter FirstName" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>LastName</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="profile.lastName" placeholder="Enter LastName" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class="tin-input-row mt-3">\r\n\r\n <div class="col-6">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>UserID</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="user.userID" placeholder="Enter UserID" />\r\n </mat-form-field>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class="tin-input-row">\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>Password</mat-label>\r\n <input matInput autocomplete="off" type="password" [(ngModel)]="user.password" placeholder="Enter Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>Confirm Password</mat-label>\r\n <input matInput autocomplete="off" type="password" [(ngModel)]="confirmPassword" placeholder="Enter Confirm Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class="tin-input-row mt-3">\r\n <button mat-raised-button color="primary" (click)="create()" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n</div>\r\n\r\n',styles:[""]})],t)}(),te=function(){function t(t,e,n,r){this.location=t,this.dataService=e,this.authService=n,this.messageService=r,this.userID=""}return t.prototype.ngOnInit=function(){},t.prototype.recover=function(){var t=this;if(""!=this.userID){var e=new yt;e.userID=this.userID,this.dataService.SelfReset(e).subscribe((function(e){"success"==e.message?(t.messageService.toast("The password has been sent to your email"),t.location.back()):t.messageService.toast("Error: "+e.message)}))}else this.messageService.toast("Please enter your userID")},t.ctorParameters=function(){return[{type:p.Location},{type:St},{type:It},{type:X}]},t=G([e.Component({selector:"spa-recover-account",template:'<h4 style="margin-top: 1em;">Recover Account</h4>\r\n\r\n<hr/>\r\nSubmit your UserID and we will send you details to your registered email address.\r\n\r\n<div class="mt-3" >\r\n\r\n\r\n <div class="tin-input " style="font-size:14px;">\r\n\r\n\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-label>UserID</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="userID" placeholder="Enter UserID" />\r\n </mat-form-field>\r\n </div>\r\n\r\n\r\n\r\n <div class="col mt-3">\r\n\r\n <button mat-raised-button color="primary" (click)="recover()" cdkFocusInitial>Submit</button>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n',styles:[""]})],t)}(),ee=function(){function t(){}return t=G([e.NgModule({declarations:[Qt,Xt,te],entryComponents:[],imports:[U.ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl:"never"}),p.CommonModule,U.FormsModule,U.ReactiveFormsModule,Dt],exports:[p.CommonModule,U.FormsModule,Dt,Qt,Xt,te]})],t)}(),ne=function(){function t(t,e,n,r,o){this.location=t,this.httpService=e,this.messageService=n,this.dataService=r,this.authService=o,this.isProcessing=!1,this.changePassword=new bt}return t.prototype.ngOnInit=function(){this.myRole=this.authService.currentRoleSource.value,""==this.dataService.tmpProfileUserID?this.changePassword.userID=this.authService.currentUser:(this.changePassword.userID=this.dataService.tmpProfileUserID,this.dataService.tmpProfileUserID="")},t.prototype.change=function(){var t=this;this.myRole[this.dataService.capUsers.name]||""!=this.changePassword.currentPassword?""!=this.changePassword.newPassword?""!=this.changePassword.confirmPassword?this.changePassword.confirmPassword==this.changePassword.newPassword?(this.isProcessing=!0,this.myRole[this.dataService.capUsers.name]?this.dataService.changePasswordAdmin(this.changePassword).subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Password Changed"),t.location.back()):t.messageService.toast("Error: "+e.message)})):this.dataService.changePassword(this.changePassword).subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Password Changed"),t.location.back()):t.messageService.toast("Error: "+e.message)}))):this.messageService.toast("Passwords do not match"):this.messageService.toast("Please confirm new Password"):this.messageService.toast("Please enter new Password"):this.messageService.toast("Please enter current Password")},t.ctorParameters=function(){return[{type:p.Location},{type:l.HttpService},{type:X},{type:St},{type:It}]},t=G([e.Component({selector:"spa-change-password",template:'<h4>Change Password</h4>\r\n<hr>\r\n\r\n<div class="container">\r\n\r\n <div class="d-flex justify-content-center row align-items-center" >\r\n\r\n <div class="col">\r\n\r\n <div class="tin-input " style="font-size:14px;">\r\n\r\n <div class="col" *ngIf="changePassword.userID!=\'\'">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-label>User ID</mat-label>\r\n <input id="txtUserID" matInput autocomplete="off" [(ngModel)]="changePassword.userID" readonly/>\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col" *ngIf="!myRole[dataService.capUsers.name]">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-label>Current Password</mat-label>\r\n <input id="txtPassword" matInput autocomplete="off" type="password" [(ngModel)]="changePassword.currentPassword" placeholder="Enter Current Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-label>New Password</mat-label>\r\n <input id="txtNewPassword" matInput autocomplete="off" type="password" [(ngModel)]="changePassword.newPassword" placeholder="Enter New Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-label>Confirm Password</mat-label>\r\n <input id="txtConfirmPassword" matInput autocomplete="off" type="password" [(ngModel)]="changePassword.confirmPassword" placeholder="Enter Confirm Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col mt-3">\r\n\r\n <button id="btnChange" mat-raised-button color="primary" (click)="change()" cdkFocusInitial>Change</button>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <div class="alert alert-info" style="font-size: 14px;" role="alert">\r\n *Please consider these requirements for your new password. <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! …)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div>\r\n\r\n',styles:[""]})],t)}(),re=function(){function t(t,e,n,r,o){this.dataService=t,this.messageService=e,this.httpService=n,this.router=r,this.authService=o,this.appConfig=new ht,this.selfProfile=!1,this.profile=new xt}return t.prototype.ngOnInit=function(){this.myRole=this.authService.currentRoleSource.value,""==this.dataService.tmpProfileUserID?this.loadProfile(this.authService.currentUser):(this.loadProfile(this.dataService.tmpProfileUserID),this.dataService.tmpProfileUserID="")},t.prototype.loadProfile=function(t){var e=this,n="all";this.appConfig.approvals&&this.appConfig.employees&&(n="set"),this.appConfig.approvals&&!this.appConfig.employees&&(n="setapp"),!this.appConfig.approvals&&this.appConfig.employees&&(n="setemp"),this.dataService.GetProfile(n,t).subscribe((function(t){e.profile=t.ds.dtProfiles[0],e.profile.userID.toLocaleLowerCase()==e.authService.currentUser.toLocaleLowerCase()&&(e.selfProfile=!0),e.roles=t.ds.dtRoles,e.approvalRoles=t.ds.dtApprovalRoles,e.employees=t.ds.dtEmployees}),(function(t){e.isProcessing=!1,e.messageService.toast(e.httpService.Error(t))}))},t.prototype.loadRoles=function(){var t=this;this.dataService.GetRole("all","").subscribe((function(e){t.roles=e.dt}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))},t.prototype.changePassword=function(){this.dataService.tmpProfileUserID=this.profile.userID,this.router.navigate(["home/user/change-password"])},t.prototype.gotoUsers=function(){this.router.navigate(["home/admin/users"])},t.prototype.update=function(){},t.prototype.updateProfile=function(){var t=this;this.isProcessing=!0,this.dataService.UpdateProfile(this.profile,"edit").subscribe((function(e){t.isProcessing=!1,"success"==e.message?t.messageService.toast("Profile Updated"):t.messageService.toast("Error: "+e.message)}),(function(e){t.messageService.toast("Connection failed "),t.isProcessing=!1}))},t.ctorParameters=function(){return[{type:St},{type:X},{type:l.HttpService},{type:c.Router},{type:It}]},G([e.Input()],t.prototype,"appConfig",void 0),t=G([e.Component({selector:"spa-profile",template:'\r\n\r\n<div class="container">\r\n\r\n <div class="row mt-3" style="font-size:14px;">\r\n\r\n\r\n <div class="col-2 mt-3 ">\r\n\r\n <div class="tin-input">\r\n\r\n\r\n <div class="col">\r\n <mat-icon style="font-size: 70px;">account_circle</mat-icon>\r\n \x3c!-- <img style="height: 40px"> --\x3e\r\n </div>\r\n\r\n <div class="col">\r\n <mat-label id="lblUserID" style="font-size: 14px;">{{profile.userID}}</mat-label>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n <div class="col-8 mt-3">\r\n\r\n <div class="tin-input" style="width: 70%;">\r\n\r\n <div class="tin-input-row">\r\n\r\n\r\n <div class="col">\r\n <mat-form-field style="width:200px">\r\n <mat-label>FirstName</mat-label>\r\n <input id="txtFirstName" matInput autocomplete="off" [(ngModel)]="profile.firstName" placeholder="Enter FirstName" [readOnly]="selfProfile"/>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class="col">\r\n <mat-form-field style="width:200px">\r\n <mat-label>LastName</mat-label>\r\n <input id="txtLastName" matInput autocomplete="off" [(ngModel)]="profile.lastName" placeholder="Enter LastName " [readOnly]="selfProfile" />\r\n </mat-form-field>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n <mat-form-field style="width:300px">\r\n <mat-label>Authentication</mat-label>\r\n <input id="txtAuth" matInput autocomplete="off" [(ngModel)]="profile.authType" placeholder="Authentication" readonly/>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class="col">\r\n <mat-form-field style="width:300px">\r\n <mat-label>Email</mat-label>\r\n <input id="txtEmail" matInput autocomplete="off" [(ngModel)]="profile.email" placeholder="Enter Email" [readOnly]="selfProfile"/>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-label>Role</mat-label>\r\n <mat-select id="cboRole" [(value)]="profile.roleID" [disabled]="selfProfile">\r\n <mat-option *ngFor="let row of roles" [value]="row.roleID">\r\n {{row.roleName}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class="col" *ngIf="appConfig.approvals">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-label>Approval Role</mat-label>\r\n <mat-select id="cboApprovalRole" [(value)]="profile.arID" [disabled]="selfProfile">\r\n <mat-option *ngFor="let row of approvalRoles" [value]="row.arID">\r\n {{row.arName}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col" *ngIf="appConfig.employees">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-label>Employee Profile</mat-label>\r\n <mat-select id="cboEmployee" [(value)]="profile.empID" [disabled]="selfProfile">\r\n <mat-option *ngFor="let row of employees" [value]="row.empID">\r\n {{row.firstName}} {{row.lastName}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n\r\n\r\n <div class="tin-input-row mt-2">\r\n <button id="btnUpdate" mat-raised-button color="primary" *ngIf="!selfProfile" [disabled]="isProcessing" (click)="updateProfile()" >Update Profile</button>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class="col-2 mt-4">\r\n\r\n <a mat-button id="lnkUserManager" style="margin-left: 1em" *ngIf="!selfProfile" (click)="gotoUsers()" >User Manager</a>\r\n <a mat-button id="lnkChangePassword" style="margin-left: 1em" *ngIf="(selfProfile || myRole[dataService.capUsers.name]) && profile.authType==\'local\'" (click)="changePassword()" >Change Password</a>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n\r\n',styles:[""]})],t)}(),oe=function(){function t(){}return t=G([e.NgModule({declarations:[ne,re],entryComponents:[],imports:[U.ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl:"never"}),p.CommonModule,U.FormsModule,U.ReactiveFormsModule,Dt],exports:[p.CommonModule,U.FormsModule,Dt,ne,re]})],t)}(),ie=function(){function t(t,e){this.dataService=t,this.messageService=e,this._filterText="",this.isProcessing=!1}return t.prototype.ngOnInit=function(){this.loadSettings()},t.prototype.applyFilter=function(t){this.settings.filter=t.trim().toLowerCase()},t.prototype.loadSettings=function(){var t=this;this.dataService.GetSetting("all","").subscribe((function(e){t.settings=e.dt}))},t.prototype.updateSetting=function(t){var e=this;this.isProcessing=!0,this.dataService.UpdateSetting(t,"edit").subscribe((function(n){e.isProcessing=!1,"success"==n.message?(e.messageService.toast("Setting "+t.sName+" Updated"),e.loadSettings()):e.messageService.toast("Error: "+n.message)}))},t.prototype.addSetting=function(){this.messageService.toast("Feature not Available")},t.ctorParameters=function(){return[{type:St},{type:X}]},t=G([e.Component({selector:"spa-settings",template:'<h4>Settings</h4>\r\n<hr>\r\n\r\n<div class="container">\r\n\r\n\r\n\r\n <div class="row justify-content-between" style="padding-bottom: 10px;padding-left:10px">\r\n <div class="col-2">\r\n <button mat-raised-button (click)="addSetting()">New Setting</button>\r\n </div>\r\n <div class="col-2">\r\n\r\n <button mat-raised-button (click)="loadSettings()">Refresh</button>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class="row mt-1 mb-1" style="margin-left:10px" *ngFor="let setting of settings">\r\n\r\n <mat-form-field style="width: 500px; font-size: 14px;">\r\n <mat-label>{{setting.sName}}</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="setting.sValue" >\r\n </mat-form-field>\r\n\r\n <button mat-mini-fab color="primary" (click)="updateSetting(setting)" style="margin-right:150px;"><mat-icon>done_all</mat-icon></button>\r\n\r\n <mat-label style="font-size: small;">Last Updated by {{setting.updatedBy}} on {{setting.dateUpdated | date: \'dd MMM yy HH:mm\'}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}"]})],t)}(),ae=function(){function t(t,e){this.authService=t,this.dataService=e,this.isProcessing=!1,this._filterText="",this.displayedColumns=["dateLogged","userID","fullName","source","details"]}return t.prototype.ngOnInit=function(){this.loadLogs()},t.prototype.loadLogs=function(){var t=this;this.dataService.GetLog("all","").subscribe((function(e){t.logs=new A.MatTableDataSource(e.dt),t.logs.paginator=t.logsPaginator,t.applyFilter(t._filterText)}))},t.prototype.applyFilter=function(t){this.logs.filter=t.trim().toLowerCase()},t.ctorParameters=function(){return[{type:It},{type:St}]},G([e.ViewChild("logsPaginator")],t.prototype,"logsPaginator",void 0),t=G([e.Component({selector:"spa-logs",template:'<h4>Logs</h4>\r\n<hr />\r\n\r\n<div class="container-fluid">\r\n\r\n\r\n <div class="row justify-content-between" style="padding-bottom: 10px">\r\n <div class="col-2">\r\n\r\n \x3c!-- <mat-form-field>\r\n <input matInput [(ngModel)]="_filterText" (keyup)="applyFilter($event.target.value) " placeholder="Filter" autocomplete="off">\r\n </mat-form-field> --\x3e\r\n\r\n </div>\r\n <div class="col-3">\r\n <mat-form-field style="font-size:12px">\r\n <mat-label>Filter</mat-label>\r\n <input id="txtFilter" matInput [(ngModel)]="_filterText" (keyup)="applyFilter($event.target.value)" placeholder="Enter Filter text" autocomplete="off">\r\n </mat-form-field>\r\n <button id="btnFilter" mat-mini-fab color="primary" (click)="loadLogs()" style="margin-right:3em;margin-top:5px"><mat-icon class="refreshIcon">refresh</mat-icon></button>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <p *ngIf="!logs"><em>Loading...</em></p>\r\n\r\n\r\n <div class="mat-elevation-z8" *ngIf="logs">\r\n\r\n <table id="tblTable" mat-table [dataSource]="logs">\r\n\r\n\r\n <ng-container matColumnDef="userID">\r\n <th mat-header-cell *matHeaderCellDef> User ID </th>\r\n <td mat-cell *matCellDef="let log"> {{log.userID}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef="dateLogged">\r\n <th mat-header-cell *matHeaderCellDef class="datetime"> Date Logged </th>\r\n <td mat-cell *matCellDef="let log"> {{log.dateLogged | date: \'dd MMM yy HH:mm:ss\'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="source">\r\n <th mat-header-cell *matHeaderCellDef> Source </th>\r\n <td mat-cell *matCellDef="let log"> {{log.source}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="details">\r\n <th mat-header-cell *matHeaderCellDef> Details </th>\r\n <td mat-cell *matCellDef="let log"> {{log.details}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="fullName">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef="let user"> {{user.firstName}} {{user.lastName}} </td>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>\r\n <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>\r\n\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #logsPaginator [pageSizeOptions]="[50, 100, 200]" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]})],t)}(),se=function(){function t(t,e,n,r,o,i){this.httpService=t,this.router=e,this.authService=n,this.dataService=r,this.dialog=o,this.messageService=i,this.isProcessing=!1,this._filterText="",this.displayedColumns=["userID","fullName","roleName","locked","dateCreated","Action"]}return t.prototype.ngOnInit=function(){this.UpdateData()},t.prototype.UpdateData=function(){var t=this;this.dataService.GetUser("all","").subscribe((function(e){t.users=new A.MatTableDataSource(e.dt),t.users.paginator=t.usersPaginator,t.applyFilter(t._filterText)}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))},t.prototype.applyFilter=function(t){this.users.filter=t.trim().toLowerCase()},t.prototype.createAccount=function(){this.router.navigate(["home/admin/create-account"])},t.prototype.viewProfile=function(t){this.dataService.tmpProfileUserID=t.userID,this.router.navigate(["home/user/profile"])},t.prototype.lock=function(t){t.locked="1",this.updateUser(t)},t.prototype.unlock=function(t){t.locked="0",t.tries="0",this.updateUser(t)},t.prototype.enable=function(t){t.disabled="0",this.updateUser(t)},t.prototype.disable=function(t){t.disabled="1",this.updateUser(t)},t.prototype.recover=function(t){var e=this;this.dataService.SelfReset(t).subscribe((function(t){"success"==t.message?e.messageService.toast("The password has been sent on email"):e.messageService.toast("Error: "+t.message)}))},t.prototype.updateUser=function(t){var e=this;this.isProcessing=!0,this.dataService.UpdateUser(t,"edit").subscribe((function(t){e.isProcessing=!1,"success"==t.message?(e.messageService.toast("User Updated"),e.UpdateData()):e.messageService.toast("Error: "+t.message)}),(function(t){e.messageService.toast("Connection failed "),e.isProcessing=!1}))},t.prototype.deleteUser=function(t){var e=this;this.messageService.confirm("Delete "+t.userID+" ?").subscribe((function(n){"yes"==n&&(e.isProcessing=!0,e.dataService.UpdateUser(t,"delete").subscribe((function(t){e.isProcessing=!1,"success"==t.message?(e.messageService.toast("User Deleted"),e.UpdateData()):e.messageService.toast("Error: "+t.message)}),(function(t){e.messageService.toast("Connection failed "),e.isProcessing=!1})))}))},t.ctorParameters=function(){return[{type:l.HttpService},{type:c.Router},{type:It},{type:St},{type:r.MatDialog},{type:X}]},G([e.ViewChild("usersPaginator")],t.prototype,"usersPaginator",void 0),t=G([e.Component({selector:"spa-users",template:'\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<div class="container">\r\n\r\n\r\n <div class="row justify-content-between" style="padding-bottom: 10px">\r\n <div class="col-2">\r\n <button id="btnCreateAccount" mat-raised-button color="primary" (click)="createAccount()">Create Account</button>\r\n\r\n\r\n </div>\r\n <div class="col-3">\r\n <mat-form-field style="font-size:12px">\r\n <mat-label>Filter</mat-label>\r\n <input id="txtFilter" matInput [(ngModel)]="_filterText" (keyup)="applyFilter($event.target.value)" placeholder="Enter Filter text" autocomplete="off">\r\n </mat-form-field>\r\n <button id="btnFilter" mat-mini-fab color="primary" (click)="UpdateData()" style="margin-right:3em;margin-top:5px" matTooltip="refresh data" matTooltipPosition="right"><mat-icon class="refreshIcon">refresh</mat-icon></button>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <p *ngIf="!users"><em>Loading...</em></p>\r\n\r\n\r\n <div class="mat-elevation-z8" *ngIf="users">\r\n\r\n <table id="tblTable" mat-table [dataSource]="users">\r\n\r\n <ng-container matColumnDef="userID">\r\n <th mat-header-cell *matHeaderCellDef> UserID </th>\r\n <td mat-cell *matCellDef="let user"> {{user.userID}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="locked">\r\n <th mat-header-cell *matHeaderCellDef> Locked </th>\r\n <td mat-cell *matCellDef="let user"> {{user.locked}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="fullName">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef="let user"> {{user.firstName}} {{user.lastName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="roleName">\r\n <th mat-header-cell *matHeaderCellDef> Role </th>\r\n <td mat-cell *matCellDef="let user"> {{user.roleName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="disabled">\r\n <th mat-header-cell *matHeaderCellDef> Disabled </th>\r\n <td mat-cell *matCellDef="let user"> {{user.disabled}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="dateCreated">\r\n <th mat-header-cell *matHeaderCellDef> Created </th>\r\n <td mat-cell *matCellDef="let user"> {{user.dateCreated | date: \'dd MMM yy\'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef="dateUpdated">\r\n <th mat-header-cell *matHeaderCellDef> Updated </th>\r\n <td mat-cell *matCellDef="let user"> {{user.dateUpdated | date: \'dd MMM yy\'}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef="Action">\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef="let user" style="width: 250px;">\r\n\r\n <button mat-mini-fab color="primary" (click)="viewProfile(user)" style="margin-right:30px" matTooltip="View Profile" matTooltipPosition="above"> <mat-icon>account_circle</mat-icon></button>\r\n\r\n <button *ngIf="user.locked==\'0\'" mat-mini-fab color="warn" (click)="lock(user)" style="margin-right:10px" matTooltip="Lock" matTooltipPosition="above"> <mat-icon>lock</mat-icon></button>\r\n <button *ngIf="user.locked==\'1\'" mat-mini-fab (click)="unlock(user)" style="margin-right:10px; background-color: green;" matTooltip="Unlock" matTooltipPosition="above"> <mat-icon >lock_open</mat-icon></button>\r\n\r\n <button *ngIf="user.disabled==\'0\'" mat-mini-fab color="warn" (click)="disable(user)" style="margin-right:10px" matTooltip="Disable" matTooltipPosition="above"> <mat-icon>block</mat-icon></button>\r\n <button *ngIf="user.disabled==\'1\'" mat-mini-fab (click)="enable(user)" style="margin-right:10px; background-color: green" matTooltip="Enable" matTooltipPosition="above"> <mat-icon>done</mat-icon></button>\r\n\r\n <button mat-mini-fab color="warn" (click)="deleteUser(user)" style="margin-right:10px" matTooltip="Delete" matTooltipPosition="above"> <mat-icon>delete</mat-icon></button>\r\n \x3c!-- <button mat-mini-fab color="primary" (click)="recover(user)" style="margin-right:10px" matTooltip="Reset Password" matTooltipPosition="above"> <mat-icon>vpn_key</mat-icon></button> --\x3e\r\n\r\n\r\n\r\n </td>\r\n </ng-container>\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>\r\n <tr mat-row *matRowDef="let row; columns: displayedColumns;" [ngClass]="{\'make-gray\': row.disabled ==\'1\'}"></tr>\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #usersPaginator [pageSizeOptions]="[10, 20, 50]" showFirstLastButtons></mat-paginator>\r\n</div>\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}"]})],t)}(),le=function(){function t(t,e,n){this.dataserv=t,this.messageService=e,this.dialogRef=n,this.currentCount=0,this.user=new yt,this.isProcessing=!1}return t.prototype.ngOnInit=function(){},t.prototype.Signup=function(){var t=this;this.user.dateCreated=l.Core.getFormatedDate(l.Core.nowDate()),this.user.dateUpdated=l.Core.getFormatedDate(l.Core.nowDate()),this.user.dateExpire=l.Core.getFormatedDate(l.Core.nowDate()),this.isProcessing=!0,this.dataserv.UpdateUser(this.user,"add").subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("User Added"),t.dialogRef.close("success")):t.messageService.toast("Error: "+e.message)}))},t.ctorParameters=function(){return[{type:St},{type:X},{type:r.MatDialogRef}]},t=G([e.Component({selector:"spa-add-user",template:'<h2 mat-dialog-title>Add User</h2>\r\n<mat-dialog-content class="mat-typography">\r\n\r\n\r\n\r\n\r\n <div class="tin-input " style="font-size:12px">\r\n\r\n <mat-form-field appearance="outline">\r\n <mat-label>Username</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="user.userID" placeholder="Enter Username">\r\n </mat-form-field>\r\n\r\n\r\n\r\n <mat-form-field appearance="outline">\r\n <mat-label>Password</mat-label>\r\n <input matInput autocomplete="off" type="password" [(ngModel)]="user.password" placeholder="Enter Password">\r\n </mat-form-field>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]="isProcessing" (click)="Signup()" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}"]})],t)}(),ce=function(){function t(t,e,n,r){this.dataserv=t,this.messageService=e,this.dialogRef=n,this.data=r,this.user=new yt,this.isProcessing=!1,this.myUser=new yt}return t.prototype.ngOnInit=function(){this.user=this.data},t.prototype.unlock=function(){this.user.locked="0"},t.prototype.lock=function(){this.user.locked="1"},t.prototype.enable=function(){this.user.disabled="0"},t.prototype.disable=function(){this.user.disabled="1"},t.prototype.Update=function(){var t=this;this.isProcessing=!0,this.dataserv.UpdateUser(this.user,"edit").subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("User Updated"),t.dialogRef.close("success")):t.messageService.toast("Error: "+e.message)}),(function(e){t.messageService.toast("Connection failed "),t.isProcessing=!1}))},t.prototype.DeleteUser=function(){var t=this;this.isProcessing=!0,this.dataserv.UpdateUser(this.user,"delete").subscribe((function(e){t.isProcessing=!1,t.myData=e,t.myResponse=t.myData.message,"success"==t.myResponse&&(t.messageService.toast(t.user.userID+" Deleted"),t.dialogRef.close("success"))}))},t.ctorParameters=function(){return[{type:St},{type:X},{type:r.MatDialogRef},{type:void 0,decorators:[{type:e.Inject,args:[r.MAT_DIALOG_DATA]}]}]},t=G([e.Component({selector:"spa-edit-user",template:'<h2 mat-dialog-title>User Details</h2>\r\n<mat-dialog-content class="mat-typography">\r\n\r\n\r\n\r\n <div class="tin-input" style="font-size:14px">\r\n\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="user.userID" placeholder="Enter Username" readonly>\r\n </mat-form-field>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]="isProcessing" (click)="Update()" cdkFocusInitial>Update</button>\r\n \x3c!--<button mat-button [disabled]="isProcessing" (click)="DeleteUser()">Delete</button>--\x3e\r\n <button mat-button mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}"]}),V(3,e.Inject(r.MAT_DIALOG_DATA))],t)}(),pe=function(){function t(t,e,n,r,o){this.messageService=t,this.dataserv=e,this.authserv=n,this.dialogRef=r,this.data=o}return t.prototype.ngOnInit=function(){},t.prototype.submit=function(){},t.ctorParameters=function(){return[{type:X},{type:St},{type:It},{type:r.MatDialogRef},{type:void 0,decorators:[{type:e.Inject,args:[r.MAT_DIALOG_DATA]}]}]},t=G([e.Component({selector:"app-viewRole",template:"",styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]}),V(4,e.Inject(r.MAT_DIALOG_DATA))],t)}(),de=function(){function t(t,e,n,r,o){this.messageService=t,this.dataService=e,this.authService=n,this.dialogRef=r,this.data=o,this.role=new ft}return t.prototype.ngOnInit=function(){this.capItems=this.data},t.prototype.submit=function(){var t=this;"New Role"!=this.role.roleName&&""!=this.role.roleName?(this.isProcessing=!0,this.dataService.UpdateRole(this.role,"add").subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Role Added"),t.dialogRef.close("success")):t.messageService.toast("Error: "+e.message)}),(function(e){t.messageService.toast("Connection failed"),t.isProcessing=!1}))):this.messageService.toast("Please enter Role Name")},t.ctorParameters=function(){return[{type:X},{type:St},{type:It},{type:r.MatDialogRef},{type:void 0,decorators:[{type:e.Inject,args:[r.MAT_DIALOG_DATA]}]}]},t=G([e.Component({selector:"app-addRole",template:'<mat-form-field>\r\n <mat-label>Role Name</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="role.roleName" placeholder="Enter Role Name" />\r\n</mat-form-field>\r\n\r\n<mat-dialog-content class="mat-typography">\r\n\r\n <div class="row" >\r\n\r\n \x3c!-- <div class=" col-4">\r\n\r\n <div class="row">\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:14px" [(ngModel)]="role.cap1">Admin</mat-checkbox>\r\n </div>\r\n\r\n </div> --\x3e\r\n\r\n <div class="row" style="margin-left: 2em;margin-right: 2em;">\r\n\r\n <div class="row" style="margin-left: 2em;" *ngFor="let capItem of capItems">\r\n\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px; width: 200px;" [(ngModel)]="role[capItem.name]">{{capItem.display}}</mat-checkbox>\r\n\r\n <div *ngFor="let capSubItem of capItem.capSubItems">\r\n\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px; width: 200px;" [(ngModel)]="role[capSubItem.name]">{{capSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]="isProcessing" (click)="submit()" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close="success">Cancel</button>\r\n</mat-dialog-actions>\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]}),V(4,e.Inject(r.MAT_DIALOG_DATA))],t)}(),ue=function(){function t(t,e,n,r,o){this.messageService=t,this.dataserv=e,this.authserv=n,this.dialogRef=r,this.data=o,this.role=new ft,this.isLoadComplete=!1}return t.prototype.ngOnInit=function(){this.role=this.data,this.isLoadComplete=!0},t.prototype.submit=function(){var t=this;this.isProcessing=!0,this.dataserv.UpdateRole(this.role,"edit").subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Role Updated"),t.dialogRef.close("success")):t.messageService.toast("Error: "+e.message)}),(function(e){t.messageService.toast("Connection failed "),t.isProcessing=!1}))},t.ctorParameters=function(){return[{type:X},{type:St},{type:It},{type:r.MatDialogRef},{type:void 0,decorators:[{type:e.Inject,args:[r.MAT_DIALOG_DATA]}]}]},t=G([e.Component({selector:"app-editRole",template:'\r\n <mat-form-field>\r\n <mat-label>Role Name</mat-label>\r\n <input matInput autocomplete="off" [(ngModel)]="role.roleName" placeholder="Enter Role Name" />\r\n </mat-form-field>\r\n <mat-dialog-content class="mat-typography">\r\n\r\n <div class="row" style="margin-left:2em">\r\n\r\n\r\n\r\n <div class=" col-4">\r\n\r\n <div class="row">\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:18px" [(ngModel)]="role.cap1">Admin</mat-checkbox>\r\n </div>\r\n\r\n <div class="row">\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px" [(ngModel)]="role.cap1">Users</mat-checkbox>\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px" [(ngModel)]="role.cap1">Overview</mat-checkbox>\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px" [(ngModel)]="role.cap1">Search</mat-checkbox>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=" col-4">\r\n\r\n <div class="row">\r\n <mat-label style="margin-right:20px;font-size:18px">Requests</mat-label>\r\n </div>\r\n\r\n <div class="row">\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px" [(ngModel)]="role.cap1">Budget</mat-checkbox>\r\n\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px" [(ngModel)]="role.cap1">Procurement</mat-checkbox>\r\n <mat-checkbox color="primary" style="margin-right:20px; font-size:12px" [(ngModel)]="role.cap1">Payment</mat-checkbox>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n </mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]="isProcessing" (click)="submit()" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]}),V(4,e.Inject(r.MAT_DIALOG_DATA))],t)}(),me=function(){function t(t,e,n,r,o,i){this.httpService=t,this.router=e,this.authService=n,this.dataService=r,this.dialog=o,this.messageService=i,this.isProcessing=!1,this.appConfig=new ht}return t.prototype.ngOnInit=function(){this.loadRoles()},t.prototype.loadRoles=function(){var t=this;this.dataService.GetRole("all","").subscribe((function(e){t.roles=e.dt}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))},t.prototype.refresh=function(){this.loadRoles()},t.prototype.addRole=function(){var t=this;this.dialog.open(de,{width:"1100px",data:this.appConfig.capItems}).afterClosed().subscribe((function(e){"success"==e&&t.loadRoles()}))},t.prototype.viewRole=function(t){var e=this;this.dialog.open(pe,{width:"1100px",data:t}).afterClosed().subscribe((function(t){"success"==t&&e.loadRoles()}))},t.prototype.editRole=function(t){var e=this;this.dialog.open(ue,{width:"1100px",data:t}).afterClosed().subscribe((function(t){"success"==t&&e.loadRoles()}))},t.prototype.updateRole=function(t){var e=this;this.messageService.confirm("UPDATE "+t.roleName+" ?").subscribe((function(n){"yes"==n&&e.dataService.UpdateRole(t,"edit").subscribe((function(t){"success"==t.message?(e.messageService.toast("Role Updated"),e.loadRoles()):e.messageService.toast("Error: "+t.message)}))}))},t.prototype.deleteRole=function(t){var e=this;this.messageService.confirm("DELETE "+t.roleName+" ?").subscribe((function(n){"yes"==n&&e.dataService.UpdateRole(t,"delete").subscribe((function(t){"success"==t.message?(e.messageService.toast("Role Deleted"),e.loadRoles()):e.messageService.toast("Error: "+t.message)}))}))},t.ctorParameters=function(){return[{type:l.HttpService},{type:c.Router},{type:It},{type:St},{type:r.MatDialog},{type:X}]},G([e.Input()],t.prototype,"appConfig",void 0),t=G([e.Component({selector:"spa-roles",template:'<h4> Roles </h4>\r\n<hr />\r\n\r\n<div class="container mb-5">\r\n\r\n <div class="row justify-content-between" style="padding-bottom: 10px;padding-left:10px">\r\n <div class="col-2">\r\n\r\n <button id="btnNewRole" mat-raised-button color="primary" (click)="addRole()">New Role</button>\r\n </div>\r\n <div class="col-1">\r\n\r\n <button id="btnRefresh" mat-mini-fab color="primary" (click)="refresh()" style="margin-right:1em;margin-top:5px" matTooltip="refresh data" matTooltipPosition="right"><mat-icon class="refreshIcon">refresh</mat-icon></button>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class="row mt-2 mb-1" style="margin-left:10px" *ngFor="let role of roles">\r\n\r\n <mat-card class="mat-elevation-z8" style="width:100%;padding-left:2em">\r\n\r\n <h4>{{role.roleName}}</h4>\r\n <hr />\r\n\r\n <div class="row" style="margin-left: 2em;">\r\n\r\n\r\n <div class="row" style="margin-right:20px;" *ngFor="let capItem of appConfig.capItems">\r\n\r\n <mat-checkbox color="primary" style=" font-size:12px; width: 200px;" [(ngModel)]="role[capItem.name]">{{capItem.display}}</mat-checkbox>\r\n\r\n <div class="row" style="margin-right:20px;margin-left: 0px; " *ngFor="let capSubItem of capItem.capSubItems">\r\n\r\n <mat-checkbox color="primary" style=" font-size:12px; width: 200px;" [(ngModel)]="role[capSubItem.name]">{{capSubItem.display}}</mat-checkbox>\r\n\r\n <div class="row" style="margin-right:20px;margin-left: 0px;" *ngFor="let capSubSubItem of capSubItem.capSubItems">\r\n\r\n <mat-checkbox color="primary" style="font-size:12px; width: 200px;" [(ngModel)]="role[capSubSubItem.name]">{{capSubSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <button mat-mini-fab color="primary" (click)="updateRole(role)" style="margin-right:10px;">\r\n <mat-icon>done_all</mat-icon>\r\n </button>\r\n\r\n \x3c!-- <button mat-mini-fab color="warn" (click)="editRole(role)" style="margin-right:10px">\r\n <mat-icon>edit</mat-icon>\r\n </button> --\x3e\r\n\r\n <button mat-mini-fab color="warn" (click)="deleteRole(role)" style="margin-right:10px">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n',styles:[".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}"]})],t)}(),he=function(){function t(){}return t.prototype.ngOnInit=function(){},t=G([e.Component({selector:"spa-profiles",template:"<h6></h6>\r\n<hr>\r\n",styles:[""]})],t)}(),ge=function(){function t(t,e,n,r,o){this.httpService=t,this.messageService=e,this.dataService=n,this.authService=r,this.router=o,this.appConfig=new ht,this.isProcessing=!1,this.user=new yt,this.profile=new xt,this.account=new vt,this.openProfile=!0}return t.prototype.ngOnInit=function(){},t.prototype.create=function(){var t=this;""!=this.user.authType?(this.account.user=this.user,this.account.profile=this.profile,this.profile.userID=this.user.userID,this.isProcessing=!0,this.dataService.UpdateAccount(this.account,"add").subscribe((function(e){t.isProcessing=!1,"success"==e.message?(t.messageService.toast("Account Created"),t.openProfile?t.viewProfile(t.user):(t.user=new yt,t.profile=new xt,t.confirmPassword="")):t.messageService.toast("Error: "+e.message)}),(function(e){t.isProcessing=!1,t.messageService.toast(t.httpService.Error(e))}))):this.messageService.toast("Choose Authentication Type")},t.prototype.viewProfile=function(t){this.dataService.tmpProfileUserID=t.userID,this.router.navigate(["home/user/profile"])},t.ctorParameters=function(){return[{type:l.HttpService},{type:X},{type:St},{type:It},{type:c.Router}]},G([e.Input()],t.prototype,"appConfig",void 0),t=G([e.Component({selector:"spa-create-account",template:'<h4>Create Account</h4>\r\n\r\n<hr/>\r\n\r\n<div class="container">\r\n\r\n <div class="tin-input" style="font-size:14px; width: 50%;">\r\n\r\n\r\n <div class="tin-input-row">\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>FirstName</mat-label>\r\n <input id="txtFirstName" matInput autocomplete="off" [(ngModel)]="profile.firstName" placeholder="Enter FirstName" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>LastName</mat-label>\r\n <input id="txtLastName" matInput autocomplete="off" [(ngModel)]="profile.lastName" placeholder="Enter LastName" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class="tin-input-row mt-3">\r\n\r\n <div class="col-6">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>UserID</mat-label>\r\n <input id="txtUserID" matInput autocomplete="off" [(ngModel)]="user.userID" placeholder="Enter UserID" />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class="col-6">\r\n\r\n <mat-form-field style="width:300px">\r\n <mat-select id="cboAuth" [(value)]="user.authType">\r\n <mat-option *ngIf="appConfig.localAuth" value="local">Local Authentication</mat-option>\r\n <mat-option *ngIf="appConfig.ADAuth" value="AD">AD Authentication</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n <div class="tin-input-row" *ngIf="user.authType==\'local\'">\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>Password</mat-label>\r\n <input id="txtPassword" matInput autocomplete="off" type="password" [(ngModel)]="user.password" placeholder="Enter Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class="col">\r\n\r\n <mat-form-field style="width:100%">\r\n <mat-label>Confirm Password</mat-label>\r\n <input id="txtConfirmPassword" matInput autocomplete="off" type="password" [(ngModel)]="confirmPassword" placeholder="Enter Confirm Password" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <div class="tin-input-row mt-3" style="margin-left: 1em;">\r\n\r\n <mat-checkbox id="cbkOpenAfter" color="primary" style="margin-right:100px; font-size:12px" [(ngModel)]="openProfile">Open profile after creation</mat-checkbox>\r\n\r\n </div>\r\n\r\n <div class="tin-input-row mt-3">\r\n <button id="btnCreate" [disabled]="user.authType ==\'\'" mat-raised-button color="primary" (click)="create()" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n</div>\r\n\r\n',styles:[""]})],t)}(),fe=function(){function t(){}return t=G([e.NgModule({declarations:[se,le,ce,me,de,ue,pe,he,ge,ae,ie],entryComponents:[le,ce,de,ue,pe],imports:[U.ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl:"never"}),p.CommonModule,U.FormsModule,U.ReactiveFormsModule,Dt],exports:[p.CommonModule,U.FormsModule,Dt,se,le,ce,me,de,ue,pe,he,ge,ae,ie]})],t)}();t.Account=vt,t.ActionResponse=ut,t.ActivityComponent=Vt,t.AddUserDialog=le,t.AppConfig=ht,t.AttachComponent=_t,t.AuthService=It,t.CapItem=gt,t.ChangePasswordComponent=ne,t.ChangeUserPassword=bt,t.CheckComponent=zt,t.ChipsComponent=Gt,t.Color=ct,t.Condition=lt,t.CreateAccountComponent=ge,t.DataService=St,t.DateComponent=Ut,t.DatetimeComponent=qt,t.EditUserDialog=ce,t.ExportService=tt,t.HtmlComponent=Wt,t.Icon=pt,t.LabelComponent=$t,t.LoaderComponent=kt,t.LogService=wt,t.LoginComponent=Qt,t.LogsComponent=ae,t.MessageService=X,t.MoneyComponent=Ht,t.NavMenuComponent=Et,t.OptionComponent=Zt,t.Profile=xt,t.ProfileComponent=re,t.ProfilesComponent=he,t.RecoverAccountComponent=te,t.Role=ft,t.RolesComponent=me,t.SelectComponent=jt,t.SettingsComponent=ie,t.SignupComponent=Xt,t.SpaAdminModule=fe,t.SpaIndexModule=ee,t.SpaMatModule=Dt,t.SpaUserModule=oe,t.Step=rt,t.StepsComponent=Yt,t.StorageService=K,t.TableAction=dt,t.TableColumn=at,t.TableComponent=Lt,t.TableConfig=ot,t.TableCreate=it,t.TextComponent=Nt,t.Tile=nt,t.TilesComponent=Rt,t.TimeoutComponent=At,t.TinSpaComponent=Tt,t.TinSpaModule=Kt,t.TinSpaService=Y,t.User=yt,t.UsersComponent=se,t.ViewerComponent=Ft,t.addRoleDialog=de,t.editRoleDialog=ue,t.loginConfig=mt,t.messageDialog=Q,t.viewRoleDialog=pe,t.ɵ0=Mt,t.ɵa=Bt,t.ɵb=Ct,t.ɵc=Ot,t.ɵd=Pt,Object.defineProperty(t,"__esModule",{value:!0})}));
16
+ //# sourceMappingURL=tin-spa.umd.min.js.map