tin-spa 2.13.15 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/README.md +2 -2
  2. package/bundles/tin-spa.umd.js +6694 -0
  3. package/bundles/tin-spa.umd.js.map +1 -0
  4. package/bundles/tin-spa.umd.min.js +16 -0
  5. package/bundles/tin-spa.umd.min.js.map +1 -0
  6. package/esm2015/lib/classes/Classes.js +254 -0
  7. package/esm2015/lib/classes/TinCore.js +137 -0
  8. package/esm2015/lib/components/activity/activity.component.js +92 -0
  9. package/esm2015/lib/components/attach/attach.component.js +181 -0
  10. package/esm2015/lib/components/change-password/change-password.component.js +179 -0
  11. package/esm2015/lib/components/check/check.component.js +69 -0
  12. package/esm2015/lib/components/chips/chips.component.js +107 -0
  13. package/esm2015/lib/components/create-account/create-account.component.js +160 -0
  14. package/esm2015/lib/components/date/date.component.js +66 -0
  15. package/esm2015/lib/components/datetime/datetime.component.js +57 -0
  16. package/esm2015/lib/components/filter/filter.component.js +64 -0
  17. package/esm2015/lib/components/html/html.component.js +102 -0
  18. package/esm2015/lib/components/label/label.component.js +117 -0
  19. package/esm2015/lib/components/loader/loader.component.js +53 -0
  20. package/esm2015/lib/components/login/login.component.js +240 -0
  21. package/esm2015/lib/components/logs/logs.component.js +195 -0
  22. package/esm2015/lib/components/message/messageDialog.component.js +142 -0
  23. package/esm2015/lib/components/money/currency-input-mask.directive.js +187 -0
  24. package/esm2015/lib/components/money/currency-input-mask.module.js +30 -0
  25. package/esm2015/lib/components/money/money.component.js +152 -0
  26. package/esm2015/lib/components/nav-menu/nav-menu.component.js +204 -0
  27. package/esm2015/lib/components/option/option.component.js +129 -0
  28. package/esm2015/lib/components/profile/profile.component.js +198 -0
  29. package/esm2015/lib/components/recover-account/recover-account.component.js +74 -0
  30. package/esm2015/lib/components/roles/addRoleDialog.component.js +132 -0
  31. package/esm2015/lib/components/roles/roles.component.js +211 -0
  32. package/esm2015/lib/components/select/select.component.js +133 -0
  33. package/esm2015/lib/components/settings/settings.component.js +118 -0
  34. package/esm2015/lib/components/signup/signup.component.js +139 -0
  35. package/esm2015/lib/components/steps/steps.component.js +114 -0
  36. package/esm2015/lib/components/table/table.component.js +375 -0
  37. package/esm2015/lib/components/text/text.component.js +240 -0
  38. package/esm2015/lib/components/tiles/tiles.component.js +95 -0
  39. package/esm2015/lib/components/timeout/timeout.component.js +133 -0
  40. package/esm2015/lib/components/tin-spa.component.js +26 -0
  41. package/esm2015/lib/components/users/users.component.js +373 -0
  42. package/esm2015/lib/components/viewer/viewer.component.js +92 -0
  43. package/esm2015/lib/components/viewer/viewerDialog.component.js +131 -0
  44. package/esm2015/lib/dnd.directive.js +56 -0
  45. package/esm2015/lib/modules/spa-admin.module.js +81 -0
  46. package/esm2015/lib/modules/spa-index.module.js +58 -0
  47. package/esm2015/lib/modules/spa-mat.module.js +68 -0
  48. package/esm2015/lib/modules/spa-user.module.js +55 -0
  49. package/esm2015/lib/services/auth.service.js +142 -0
  50. package/esm2015/lib/services/data.service.js +111 -0
  51. package/esm2015/lib/services/export.service.js +29 -0
  52. package/esm2015/lib/services/http.service.js +79 -0
  53. package/esm2015/lib/services/loader-interceptor.service.js +77 -0
  54. package/esm2015/lib/services/loader.service.js +17 -0
  55. package/esm2015/lib/services/log.service.js +76 -0
  56. package/esm2015/lib/services/message.service.js +52 -0
  57. package/esm2015/lib/services/storage.service.js +43 -0
  58. package/esm2015/lib/services/tin-spa.service.js +14 -0
  59. package/esm2015/lib/tin-spa.module.js +156 -0
  60. package/esm2015/public-api.js +56 -0
  61. package/esm2015/tin-spa.js +5 -0
  62. package/esm5/lib/classes/Classes.js +313 -0
  63. package/esm5/lib/classes/TinCore.js +164 -0
  64. package/esm5/lib/components/activity/activity.component.js +94 -0
  65. package/esm5/lib/components/attach/attach.component.js +195 -0
  66. package/esm5/lib/components/change-password/change-password.component.js +182 -0
  67. package/esm5/lib/components/check/check.component.js +71 -0
  68. package/esm5/lib/components/chips/chips.component.js +110 -0
  69. package/esm5/lib/components/create-account/create-account.component.js +163 -0
  70. package/esm5/lib/components/date/date.component.js +68 -0
  71. package/esm5/lib/components/datetime/datetime.component.js +59 -0
  72. package/esm5/lib/components/filter/filter.component.js +66 -0
  73. package/esm5/lib/components/html/html.component.js +104 -0
  74. package/esm5/lib/components/label/label.component.js +119 -0
  75. package/esm5/lib/components/loader/loader.component.js +56 -0
  76. package/esm5/lib/components/login/login.component.js +244 -0
  77. package/esm5/lib/components/logs/logs.component.js +198 -0
  78. package/esm5/lib/components/message/messageDialog.component.js +144 -0
  79. package/esm5/lib/components/money/currency-input-mask.directive.js +193 -0
  80. package/esm5/lib/components/money/currency-input-mask.module.js +34 -0
  81. package/esm5/lib/components/money/money.component.js +154 -0
  82. package/esm5/lib/components/nav-menu/nav-menu.component.js +207 -0
  83. package/esm5/lib/components/option/option.component.js +131 -0
  84. package/esm5/lib/components/profile/profile.component.js +203 -0
  85. package/esm5/lib/components/recover-account/recover-account.component.js +77 -0
  86. package/esm5/lib/components/roles/addRoleDialog.component.js +135 -0
  87. package/esm5/lib/components/roles/roles.component.js +218 -0
  88. package/esm5/lib/components/select/select.component.js +136 -0
  89. package/esm5/lib/components/settings/settings.component.js +122 -0
  90. package/esm5/lib/components/signup/signup.component.js +142 -0
  91. package/esm5/lib/components/steps/steps.component.js +128 -0
  92. package/esm5/lib/components/table/table.component.js +378 -0
  93. package/esm5/lib/components/text/text.component.js +244 -0
  94. package/esm5/lib/components/tiles/tiles.component.js +97 -0
  95. package/esm5/lib/components/timeout/timeout.component.js +136 -0
  96. package/esm5/lib/components/tin-spa.component.js +25 -0
  97. package/esm5/lib/components/users/users.component.js +380 -0
  98. package/esm5/lib/components/viewer/viewer.component.js +94 -0
  99. package/esm5/lib/components/viewer/viewerDialog.component.js +133 -0
  100. package/esm5/lib/dnd.directive.js +58 -0
  101. package/esm5/lib/modules/spa-admin.module.js +85 -0
  102. package/esm5/lib/modules/spa-index.module.js +62 -0
  103. package/esm5/lib/modules/spa-mat.module.js +72 -0
  104. package/esm5/lib/modules/spa-user.module.js +59 -0
  105. package/esm5/lib/services/auth.service.js +145 -0
  106. package/esm5/lib/services/data.service.js +113 -0
  107. package/esm5/lib/services/export.service.js +31 -0
  108. package/esm5/lib/services/http.service.js +81 -0
  109. package/esm5/lib/services/loader-interceptor.service.js +80 -0
  110. package/esm5/lib/services/loader.service.js +19 -0
  111. package/esm5/lib/services/log.service.js +114 -0
  112. package/esm5/lib/services/message.service.js +54 -0
  113. package/esm5/lib/services/storage.service.js +76 -0
  114. package/esm5/lib/services/tin-spa.service.js +17 -0
  115. package/esm5/lib/tin-spa.module.js +160 -0
  116. package/esm5/public-api.js +56 -0
  117. package/esm5/tin-spa.js +5 -0
  118. package/fesm2015/tin-spa.js +6204 -0
  119. package/fesm2015/tin-spa.js.map +1 -0
  120. package/fesm5/tin-spa.js +6453 -0
  121. package/fesm5/tin-spa.js.map +1 -0
  122. package/lib/classes/Classes.d.ts +228 -375
  123. package/lib/classes/TinCore.d.ts +11 -43
  124. package/lib/components/activity/activity.component.d.ts +2 -2
  125. package/lib/components/attach/attach.component.d.ts +27 -15
  126. package/lib/{pages → components}/change-password/change-password.component.d.ts +4 -4
  127. package/lib/components/check/check.component.d.ts +3 -8
  128. package/lib/components/chips/chips.component.d.ts +2 -2
  129. package/lib/{pages → components}/create-account/create-account.component.d.ts +4 -8
  130. package/lib/components/date/date.component.d.ts +12 -24
  131. package/lib/components/datetime/datetime.component.d.ts +2 -6
  132. package/lib/components/filter/filter.component.d.ts +2 -7
  133. package/lib/components/html/html.component.d.ts +10 -11
  134. package/lib/components/label/label.component.d.ts +2 -4
  135. package/lib/components/loader/loader.component.d.ts +2 -2
  136. package/lib/components/login/login.component.d.ts +32 -0
  137. package/lib/components/logs/logs.component.d.ts +18 -0
  138. package/lib/components/message/messageDialog.component.d.ts +2 -2
  139. package/lib/components/money/currency-input-mask.directive.d.ts +2 -2
  140. package/lib/components/money/currency-input-mask.module.d.ts +2 -3
  141. package/lib/components/money/money.component.d.ts +3 -13
  142. package/lib/components/nav-menu/nav-menu.component.d.ts +4 -22
  143. package/lib/components/option/option.component.d.ts +3 -14
  144. package/lib/{pages → components}/profile/profile.component.d.ts +4 -6
  145. package/lib/{pages → components}/recover-account/recover-account.component.d.ts +3 -3
  146. package/lib/components/roles/addRoleDialog.component.d.ts +22 -0
  147. package/lib/components/roles/roles.component.d.ts +30 -0
  148. package/lib/components/select/select.component.d.ts +20 -20
  149. package/lib/{pages → components}/settings/settings.component.d.ts +3 -3
  150. package/lib/{pages → components}/signup/signup.component.d.ts +4 -4
  151. package/lib/components/steps/steps.component.d.ts +10 -19
  152. package/lib/components/table/table.component.d.ts +21 -84
  153. package/lib/components/text/text.component.d.ts +14 -36
  154. package/lib/components/tiles/tiles.component.d.ts +7 -21
  155. package/lib/components/timeout/timeout.component.d.ts +24 -0
  156. package/lib/components/tin-spa.component.d.ts +6 -3
  157. package/lib/{pages → components}/users/users.component.d.ts +18 -11
  158. package/lib/components/viewer/viewer.component.d.ts +5 -11
  159. package/lib/components/viewer/viewerDialog.component.d.ts +4 -6
  160. package/lib/dnd.directive.d.ts +11 -0
  161. package/lib/modules/spa-admin.module.d.ts +10 -10
  162. package/lib/modules/spa-index.module.d.ts +7 -8
  163. package/lib/modules/spa-mat.module.d.ts +2 -8
  164. package/lib/modules/spa-user.module.d.ts +6 -6
  165. package/lib/services/auth.service.d.ts +4 -16
  166. package/lib/services/data.service.d.ts +38 -0
  167. package/lib/services/export.service.d.ts +6 -2
  168. package/lib/services/http.service.d.ts +2 -2
  169. package/lib/services/loader-interceptor.service.d.ts +3 -4
  170. package/lib/services/loader.service.d.ts +2 -2
  171. package/lib/services/log.service.d.ts +3 -3
  172. package/lib/services/message.service.d.ts +3 -4
  173. package/lib/services/storage.service.d.ts +2 -2
  174. package/lib/services/tin-spa.service.d.ts +2 -2
  175. package/lib/tin-spa.module.d.ts +34 -83
  176. package/package.json +16 -24
  177. package/public-api.d.ts +16 -47
  178. package/esm2020/lib/classes/Classes.mjs +0 -112
  179. package/esm2020/lib/classes/LibClasses.mjs +0 -180
  180. package/esm2020/lib/classes/TinCore.mjs +0 -568
  181. package/esm2020/lib/components/activity/activity.component.mjs +0 -24
  182. package/esm2020/lib/components/alert/alert.component.mjs +0 -43
  183. package/esm2020/lib/components/attach/attach.component.mjs +0 -102
  184. package/esm2020/lib/components/capsules/capsules.component.mjs +0 -63
  185. package/esm2020/lib/components/cards/cards.component.mjs +0 -103
  186. package/esm2020/lib/components/check/check.component.mjs +0 -67
  187. package/esm2020/lib/components/chips/chips.component.mjs +0 -58
  188. package/esm2020/lib/components/date/date.component.mjs +0 -103
  189. package/esm2020/lib/components/datetime/datetime.component.mjs +0 -55
  190. package/esm2020/lib/components/email/email.component.mjs +0 -133
  191. package/esm2020/lib/components/filter/filter.component.mjs +0 -58
  192. package/esm2020/lib/components/form/form.component.mjs +0 -296
  193. package/esm2020/lib/components/html/html.component.mjs +0 -34
  194. package/esm2020/lib/components/label/label.component.mjs +0 -31
  195. package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +0 -68
  196. package/esm2020/lib/components/loader/loader.component.mjs +0 -25
  197. package/esm2020/lib/components/message/messageDialog.component.mjs +0 -33
  198. package/esm2020/lib/components/money/currency-input-mask.directive.mjs +0 -185
  199. package/esm2020/lib/components/money/currency-input-mask.module.mjs +0 -28
  200. package/esm2020/lib/components/money/money.component.mjs +0 -137
  201. package/esm2020/lib/components/multi-select/multi-select.component.mjs +0 -165
  202. package/esm2020/lib/components/multi-text/multi-text.component.mjs +0 -208
  203. package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +0 -88
  204. package/esm2020/lib/components/notes/notes.component.mjs +0 -62
  205. package/esm2020/lib/components/number/number.component.mjs +0 -131
  206. package/esm2020/lib/components/option/option.component.mjs +0 -92
  207. package/esm2020/lib/components/page/page.component.mjs +0 -101
  208. package/esm2020/lib/components/search/search.component.mjs +0 -36
  209. package/esm2020/lib/components/select/select.component.mjs +0 -75
  210. package/esm2020/lib/components/select-bitwise/select-bitwise.component.mjs +0 -87
  211. package/esm2020/lib/components/select-common/select-common.component.mjs +0 -206
  212. package/esm2020/lib/components/select-internal/select-internal.component.mjs +0 -75
  213. package/esm2020/lib/components/select-lite/select-lite.component.mjs +0 -18
  214. package/esm2020/lib/components/statuses/statuses.component.mjs +0 -44
  215. package/esm2020/lib/components/steps/steps.component.mjs +0 -112
  216. package/esm2020/lib/components/suffix/suffix.component.mjs +0 -70
  217. package/esm2020/lib/components/table/detailsDialog.component.mjs +0 -406
  218. package/esm2020/lib/components/table/table.component.mjs +0 -440
  219. package/esm2020/lib/components/table-action/table-action.component.mjs +0 -80
  220. package/esm2020/lib/components/table-header/table-header.component.mjs +0 -148
  221. package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +0 -406
  222. package/esm2020/lib/components/table-internal/table-internal.component.mjs +0 -441
  223. package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +0 -404
  224. package/esm2020/lib/components/table-lite/table-lite.component.mjs +0 -441
  225. package/esm2020/lib/components/table-row/table-row.component.mjs +0 -93
  226. package/esm2020/lib/components/tabs/tabs.component.mjs +0 -74
  227. package/esm2020/lib/components/text/text.component.mjs +0 -255
  228. package/esm2020/lib/components/tiles/tiles.component.mjs +0 -99
  229. package/esm2020/lib/components/tin-spa.component.mjs +0 -19
  230. package/esm2020/lib/components/viewer/viewer.component.mjs +0 -83
  231. package/esm2020/lib/components/viewer/viewerDialog.component.mjs +0 -95
  232. package/esm2020/lib/modules/admin/admin-routing.module.mjs +0 -71
  233. package/esm2020/lib/modules/admin/admin.module.mjs +0 -26
  234. package/esm2020/lib/modules/index/index-routing.module.mjs +0 -27
  235. package/esm2020/lib/modules/index/index.module.mjs +0 -26
  236. package/esm2020/lib/modules/spa-admin.module.mjs +0 -71
  237. package/esm2020/lib/modules/spa-index.module.mjs +0 -54
  238. package/esm2020/lib/modules/spa-mat.module.mjs +0 -84
  239. package/esm2020/lib/modules/spa-user.module.mjs +0 -47
  240. package/esm2020/lib/modules/user/user-routing.module.mjs +0 -23
  241. package/esm2020/lib/modules/user/user.module.mjs +0 -26
  242. package/esm2020/lib/pages/accounts/accountDialog.component.mjs +0 -56
  243. package/esm2020/lib/pages/accounts/accounts.component.mjs +0 -70
  244. package/esm2020/lib/pages/app-models/app-models.component.mjs +0 -56
  245. package/esm2020/lib/pages/approvals/approvals.component.mjs +0 -19
  246. package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +0 -165
  247. package/esm2020/lib/pages/bug/bug.component.mjs +0 -14
  248. package/esm2020/lib/pages/change-password/change-password.component.mjs +0 -92
  249. package/esm2020/lib/pages/create-account/create-account.component.mjs +0 -110
  250. package/esm2020/lib/pages/customers/customers.component.mjs +0 -21
  251. package/esm2020/lib/pages/departments/departments.component.mjs +0 -22
  252. package/esm2020/lib/pages/employees/employees.component.mjs +0 -20
  253. package/esm2020/lib/pages/grades/grades.component.mjs +0 -14
  254. package/esm2020/lib/pages/inventory/inventory.component.mjs +0 -99
  255. package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +0 -53
  256. package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +0 -71
  257. package/esm2020/lib/pages/login/login.component.mjs +0 -166
  258. package/esm2020/lib/pages/logs/logs.component.mjs +0 -42
  259. package/esm2020/lib/pages/membership/membership.component.mjs +0 -44
  260. package/esm2020/lib/pages/notifications/notifications.component.mjs +0 -90
  261. package/esm2020/lib/pages/notifications-config/notifications-config.component.mjs +0 -113
  262. package/esm2020/lib/pages/plans/plans.component.mjs +0 -44
  263. package/esm2020/lib/pages/positions/positions.component.mjs +0 -21
  264. package/esm2020/lib/pages/profile/profile.component.mjs +0 -94
  265. package/esm2020/lib/pages/recover-account/recover-account.component.mjs +0 -46
  266. package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +0 -60
  267. package/esm2020/lib/pages/roles/roles.component.mjs +0 -151
  268. package/esm2020/lib/pages/settings/settings.component.mjs +0 -54
  269. package/esm2020/lib/pages/signup/signup.component.mjs +0 -50
  270. package/esm2020/lib/pages/suppliers/suppliers.component.mjs +0 -22
  271. package/esm2020/lib/pages/tasks/tasks.component.mjs +0 -86
  272. package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +0 -228
  273. package/esm2020/lib/pages/tenants/tenants.component.mjs +0 -47
  274. package/esm2020/lib/pages/transactions/transactDialog.component.mjs +0 -80
  275. package/esm2020/lib/pages/transactions/transactions.component.mjs +0 -101
  276. package/esm2020/lib/pages/users/users.component.mjs +0 -167
  277. package/esm2020/lib/pages/welcome/welcome.component.mjs +0 -86
  278. package/esm2020/lib/pipes/camelToWords.pipe.mjs +0 -17
  279. package/esm2020/lib/select-context.directive.mjs +0 -23
  280. package/esm2020/lib/services/auth.service.mjs +0 -175
  281. package/esm2020/lib/services/button.service.mjs +0 -162
  282. package/esm2020/lib/services/condition.service.mjs +0 -32
  283. package/esm2020/lib/services/csv.service.mjs +0 -49
  284. package/esm2020/lib/services/datalib.service.mjs +0 -860
  285. package/esm2020/lib/services/dialog.service.mjs +0 -125
  286. package/esm2020/lib/services/export.service.mjs +0 -16
  287. package/esm2020/lib/services/http.service.mjs +0 -79
  288. package/esm2020/lib/services/loader-interceptor.service.mjs +0 -86
  289. package/esm2020/lib/services/loader.service.mjs +0 -17
  290. package/esm2020/lib/services/log.service.mjs +0 -77
  291. package/esm2020/lib/services/message.service.mjs +0 -59
  292. package/esm2020/lib/services/notifications.service.mjs +0 -33
  293. package/esm2020/lib/services/storage.service.mjs +0 -34
  294. package/esm2020/lib/services/table-config.service.mjs +0 -78
  295. package/esm2020/lib/services/tin-spa.service.mjs +0 -14
  296. package/esm2020/lib/tin-spa.module.mjs +0 -225
  297. package/esm2020/public-api.mjs +0 -90
  298. package/esm2020/tin-spa.mjs +0 -5
  299. package/fesm2015/tin-spa.mjs +0 -11736
  300. package/fesm2015/tin-spa.mjs.map +0 -1
  301. package/fesm2020/tin-spa.mjs +0 -11738
  302. package/fesm2020/tin-spa.mjs.map +0 -1
  303. package/lib/classes/LibClasses.d.ts +0 -173
  304. package/lib/components/alert/alert.component.d.ts +0 -15
  305. package/lib/components/capsules/capsules.component.d.ts +0 -26
  306. package/lib/components/cards/cards.component.d.ts +0 -39
  307. package/lib/components/email/email.component.d.ts +0 -40
  308. package/lib/components/form/form.component.d.ts +0 -47
  309. package/lib/components/list-dialog/list-dialog.component.d.ts +0 -23
  310. package/lib/components/multi-select/multi-select.component.d.ts +0 -47
  311. package/lib/components/multi-text/multi-text.component.d.ts +0 -56
  312. package/lib/components/notes/notes.component.d.ts +0 -19
  313. package/lib/components/number/number.component.d.ts +0 -41
  314. package/lib/components/page/page.component.d.ts +0 -38
  315. package/lib/components/search/search.component.d.ts +0 -15
  316. package/lib/components/select-bitwise/select-bitwise.component.d.ts +0 -31
  317. package/lib/components/select-common/select-common.component.d.ts +0 -53
  318. package/lib/components/select-internal/select-internal.component.d.ts +0 -23
  319. package/lib/components/select-lite/select-lite.component.d.ts +0 -8
  320. package/lib/components/statuses/statuses.component.d.ts +0 -12
  321. package/lib/components/suffix/suffix.component.d.ts +0 -23
  322. package/lib/components/table/detailsDialog.component.d.ts +0 -86
  323. package/lib/components/table-action/table-action.component.d.ts +0 -25
  324. package/lib/components/table-header/table-header.component.d.ts +0 -46
  325. package/lib/components/table-internal/detailsDialog-internal.component.d.ts +0 -86
  326. package/lib/components/table-internal/table-internal.component.d.ts +0 -91
  327. package/lib/components/table-lite/detailsDialog-lite.component.d.ts +0 -86
  328. package/lib/components/table-lite/table-lite.component.d.ts +0 -91
  329. package/lib/components/table-row/table-row.component.d.ts +0 -31
  330. package/lib/components/tabs/tabs.component.d.ts +0 -32
  331. package/lib/modules/admin/admin-routing.module.d.ts +0 -7
  332. package/lib/modules/admin/admin.module.d.ts +0 -9
  333. package/lib/modules/index/index-routing.module.d.ts +0 -7
  334. package/lib/modules/index/index.module.d.ts +0 -9
  335. package/lib/modules/user/user-routing.module.d.ts +0 -7
  336. package/lib/modules/user/user.module.d.ts +0 -9
  337. package/lib/pages/accounts/accountDialog.component.d.ts +0 -27
  338. package/lib/pages/accounts/accounts.component.d.ts +0 -25
  339. package/lib/pages/app-models/app-models.component.d.ts +0 -15
  340. package/lib/pages/approvals/approvals.component.d.ts +0 -10
  341. package/lib/pages/approvals-config/approvals-config.component.d.ts +0 -24
  342. package/lib/pages/bug/bug.component.d.ts +0 -8
  343. package/lib/pages/customers/customers.component.d.ts +0 -12
  344. package/lib/pages/departments/departments.component.d.ts +0 -14
  345. package/lib/pages/employees/employees.component.d.ts +0 -12
  346. package/lib/pages/grades/grades.component.d.ts +0 -8
  347. package/lib/pages/inventory/inventory.component.d.ts +0 -25
  348. package/lib/pages/inventory/quantityDialog.component.d.ts +0 -23
  349. package/lib/pages/invitations-table/invitations-table.component.d.ts +0 -19
  350. package/lib/pages/login/login.component.d.ts +0 -46
  351. package/lib/pages/logs/logs.component.d.ts +0 -14
  352. package/lib/pages/membership/membership.component.d.ts +0 -13
  353. package/lib/pages/notifications/notifications.component.d.ts +0 -16
  354. package/lib/pages/notifications-config/notifications-config.component.d.ts +0 -17
  355. package/lib/pages/plans/plans.component.d.ts +0 -13
  356. package/lib/pages/positions/positions.component.d.ts +0 -12
  357. package/lib/pages/roles/addRoleDialog.component.d.ts +0 -24
  358. package/lib/pages/roles/roles.component.d.ts +0 -42
  359. package/lib/pages/suppliers/suppliers.component.d.ts +0 -14
  360. package/lib/pages/tasks/tasks.component.d.ts +0 -27
  361. package/lib/pages/tenant-settings/tenant-settings.component.d.ts +0 -47
  362. package/lib/pages/tenants/tenants.component.d.ts +0 -17
  363. package/lib/pages/transactions/transactDialog.component.d.ts +0 -26
  364. package/lib/pages/transactions/transactions.component.d.ts +0 -31
  365. package/lib/pages/welcome/welcome.component.d.ts +0 -25
  366. package/lib/pipes/camelToWords.pipe.d.ts +0 -7
  367. package/lib/select-context.directive.d.ts +0 -10
  368. package/lib/services/button.service.d.ts +0 -30
  369. package/lib/services/condition.service.d.ts +0 -10
  370. package/lib/services/csv.service.d.ts +0 -10
  371. package/lib/services/datalib.service.d.ts +0 -125
  372. package/lib/services/dialog.service.d.ts +0 -20
  373. package/lib/services/notifications.service.d.ts +0 -12
  374. package/lib/services/table-config.service.d.ts +0 -17
  375. /package/{index.d.ts → tin-spa.d.ts} +0 -0
@@ -1,88 +0,0 @@
1
- import { AppConfig, } from './../../classes/Classes';
2
- import { Component, Input } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/router";
5
- import * as i2 from "../../services/auth.service";
6
- import * as i3 from "../../services/storage.service";
7
- import * as i4 from "../../services/notifications.service";
8
- import * as i5 from "@abacritt/angularx-social-login";
9
- import * as i6 from "@angular/cdk/layout";
10
- import * as i7 from "../../services/datalib.service";
11
- import * as i8 from "@angular/common";
12
- import * as i9 from "@angular/material/menu";
13
- import * as i10 from "@angular/material/badge";
14
- import * as i11 from "@angular/material/button";
15
- import * as i12 from "@angular/material/icon";
16
- import * as i13 from "@angular/material/list";
17
- import * as i14 from "@angular/material/divider";
18
- import * as i15 from "@angular/material/tooltip";
19
- import * as i16 from "@angular/material/sidenav";
20
- import * as i17 from "@angular/material/toolbar";
21
- import * as i18 from "@angular/material/expansion";
22
- import * as i19 from "../loader/loader.component";
23
- export class NavMenuComponent {
24
- constructor(router, authService, storageService, notificationsService, socialService, breakpointObserver, dataService) {
25
- this.router = router;
26
- this.authService = authService;
27
- this.storageService = storageService;
28
- this.notificationsService = notificationsService;
29
- this.socialService = socialService;
30
- this.breakpointObserver = breakpointObserver;
31
- this.dataService = dataService;
32
- this.notificationCount$ = this.notificationsService.notificationCount$;
33
- this.isExpanded = false;
34
- this.nowDate = new Date();
35
- this.appConfig = new AppConfig();
36
- this.footer = 'alsquaretech.net';
37
- // detect screen size changes
38
- this.breakpointObserver.observe(["(max-width: 600px)"]).subscribe((result) => {
39
- if (result.matches) {
40
- this.smallScreen = true;
41
- }
42
- else {
43
- this.smallScreen = false;
44
- }
45
- });
46
- }
47
- ngOnInit() {
48
- this.authService.loggedUserFullName.subscribe(user => this.loggedUserFullName = user);
49
- this.authService.myRoleObserv.subscribe(rol => this.myRole = rol);
50
- this.authService.loggedinObserv.subscribe(obj => this.loggedin = obj);
51
- this.authService.tenantNameObserv.subscribe(obj => this.tenantName = obj);
52
- if (!this.smallScreen) {
53
- this.isExpanded = true;
54
- }
55
- }
56
- collapse() {
57
- this.isExpanded = false;
58
- }
59
- toggle() {
60
- this.isExpanded = !this.isExpanded;
61
- }
62
- closeSide() {
63
- this.isExpanded = false;
64
- }
65
- logoff() {
66
- this.authService.logoff();
67
- }
68
- redirectTo(link) {
69
- this.collapse();
70
- if (link != "") {
71
- this.router.navigate([link]);
72
- }
73
- }
74
- getSubItems(capItem) {
75
- return capItem.capSubItems.filter(x => x.showMenu && !x.isBool);
76
- }
77
- }
78
- NavMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavMenuComponent, deps: [{ token: i1.Router }, { token: i2.AuthService }, { token: i3.StorageService }, { token: i4.NotificationsService }, { token: i5.SocialAuthService }, { token: i6.BreakpointObserver }, { token: i7.DataServiceLib }], target: i0.ɵɵFactoryTarget.Component });
79
- NavMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NavMenuComponent, selector: "spa-nav-menu", inputs: { appConfig: "appConfig", footer: "footer" }, ngImport: i0, template: "<header *ngIf=\"loggedin && dataService.appConfig.navigation == 'top'\">\r\n\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\r\n\r\n <div class=\"container-fluid\" style=\"padding-right: 0px;\">\r\n\r\n <img *ngIf=\"appConfig.logo!=''\" [src]=\"appConfig.logo\" style=\"height: 50px; margin-right: 2em\" />\r\n\r\n <div>\r\n <!-- <div style=\"font-size: 20px;\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant && tenantName\" style=\"font-size: 12px;\">\r\n {{tenantName}}\r\n </div> -->\r\n\r\n <div *ngIf=\"!dataService.appConfig.multitenant\" style=\"font-size: 22px;\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant\" style=\"font-size: 20px; ; font-weight: 400;\" [ngStyle]=\"{'margin-top': dataService.appConfig.multitenant ? '12px' : ''}\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant && tenantName\" style=\"font-size: 12px; margin-bottom: 5px;\">\r\n {{tenantName}}\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\".navbar-collapse\" aria-label=\"Toggle navigation\" [attr.aria-expanded]=\"isExpanded\" (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, navitems: isExpanded }\" >\r\n\r\n <button mat-icon-button (click)=\"logoff()\" > <mat-icon>logout</mat-icon> </button>\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant\">\r\n\r\n <button mat-icon-button (click)=\"redirectTo('home/admin/tenant-settings')\" > <mat-icon fontSet=\"material-icons-round\">apartment</mat-icon> </button>\r\n\r\n <button mat-icon-button (click)=\"redirectTo('home/admin/bug')\"> <mat-icon >support_agent</mat-icon> </button>\r\n\r\n <!-- <button mat-icon-button (click)=\"redirectTo('home/admin/notifications')\"> <mat-icon fontSet=\"material-icons-round\">apartment</mat-icon> </button> -->\r\n </div>\r\n\r\n\r\n <button id=\"btnUser\" mat-button [matMenuTriggerFor]=\"profileMenu\" ><mat-icon style=\"font-size: 24px;\">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)=\"logoff()\">Log Off</button>\r\n </mat-menu>\r\n\r\n <div *ngFor=\"let item of appConfig.capItems\">\r\n\r\n <!-- Menu Item -->\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 <!-- Menu Item with Sub items ignored -->\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 <!-- Menu Item with Sub items to display-->\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 <!-- Sub Menu Items -->\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\r\n</header>\r\n\r\n<div class=\"container-fluid tin-bg-image\" *ngIf=\"dataService.appConfig.navigation == 'top'\">\r\n <router-outlet></router-outlet>\r\n <spa-loader [logo]=\"this.dataService.appConfig.logo\"></spa-loader>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!-- SIDE -->\r\n<mat-toolbar class=\"tin-bg-image-toolbar\" *ngIf=\"loggedin && dataService.appConfig.navigation == 'side'\" style=\"padding: 0px 8px;\">\r\n\r\n <button mat-icon-button (click)=\"toggle()\" matTooltip=\"Menu\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n\r\n <img [src]=\"dataService.appConfig.logo\" style=\"height: 50px;\" />\r\n\r\n <div style=\"padding-left: 10px; \">\r\n\r\n <div style=\"font-size: 22px; font-weight: 400;\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n <!-- <div style=\"font-size: 20px; height: 25px; font-weight: 400;\" [ngStyle]=\"{'margin-top': dataService.appConfig.multitenant ? '12px' : ''}\">\r\n {{appConfig.appName}}\r\n </div> -->\r\n\r\n <!-- <div *ngIf=\"dataService.appConfig.multitenant && tenantName\" style=\"font-size: 12px; margin-bottom: 5px;\">\r\n {{tenantName}}\r\n </div> -->\r\n\r\n </div>\r\n\r\n\r\n\r\n <span class=\"toolbar-item-spacer\"></span>\r\n\r\n <!-- buttons -->\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant\">\r\n\r\n <!-- <label style=\"font-size: 14px;\">Hi, {{loggedUserFullName}}</label> -->\r\n\r\n <button mat-icon-button (click)=\"redirectTo('home/admin/tenant-settings')\" matTooltip=\"Organisation Settings\">\r\n <mat-icon fontSet=\"material-icons-round\">apartment</mat-icon>\r\n </button>\r\n <label style=\"font-size: 14px;margin-right: 20px;\">{{tenantName}}</label>\r\n\r\n <button *ngIf=\"!smallScreen\" mat-icon-button (click)=\"redirectTo('home/admin/bug')\" matTooltip=\"Support\">\r\n <mat-icon >help</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"!smallScreen\" mat-icon-button (click)=\"redirectTo('home/admin/notifications')\" matTooltip=\"Notifications\">\r\n <mat-icon [matBadge]=\"notificationCount$ | async\" [matBadgeHidden]=\"(notificationCount$ | async) === 0\" matBadgeColor=\"warn\" matBadgeSize=\"small\">notifications</mat-icon>\r\n </button>\r\n\r\n </div>\r\n\r\n\r\n\r\n <button mat-icon-button matTooltip=\"My Account\" [matMenuTriggerFor]=\"userAccountMenu\"><mat-icon>account_circle</mat-icon></button>\r\n <label style=\"font-size: 14px;\">{{loggedUserFullName}}</label>\r\n\r\n <button *ngIf=\"!smallScreen\" mat-icon-button (click)=\"logoff()\" matTooltip=\"Signout\">\r\n <mat-icon>logout</mat-icon>\r\n </button>\r\n\r\n\r\n <!-- my account menu -->\r\n <mat-menu #userAccountMenu [overlapTrigger]=\"false\" yPosition=\"below\">\r\n\r\n\r\n <button mat-menu-item routerLink=\"home/user/profile\">\r\n <mat-icon>person</mat-icon><span>Profile</span>\r\n </button>\r\n\r\n <button mat-menu-item routerLink=\"home/admin/bug\" *ngIf=\"dataService.appConfig.multitenant && smallScreen\">\r\n <mat-icon>help</mat-icon> <span>Help</span>\r\n </button>\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <button mat-menu-item (click)=\"logoff()\">\r\n <mat-icon>logout</mat-icon>Logout\r\n </button>\r\n\r\n </mat-menu>\r\n\r\n</mat-toolbar>\r\n\r\n\r\n\r\n\r\n<mat-sidenav-container class=\"app-container\" [hasBackdrop]=\"smallScreen\" *ngIf=\"loggedin && dataService.appConfig.navigation == 'side'\">\r\n\r\n <mat-sidenav #sidenav [mode]=\"smallScreen ? 'over' : 'side'\" [class.mat-elevation-z4]=\"true\" [opened]=\"isExpanded\" class=\"app-sidenav side-color\" style=\"height: 100%;\"\r\n [ngStyle]=\"{'width': dataService.appConfig.navWidth}\">\r\n <mat-nav-list >\r\n\r\n <ng-container *ngFor=\"let cap of dataService.appConfig.capItems\" >\r\n\r\n <!-- Menu item -->\r\n <mat-list-item [routerLink]=\"cap.link\" *ngIf=\"myRole[cap.name] && cap.showMenu && (!cap.capSubItems || cap.capSubItems && cap.ignoreSubsDisplay)\" style=\"height: 40px;font-size: 15px;\"\r\n (click)=\"smallScreen ? toggle() : null\">\r\n <mat-icon [ngStyle]=\"{'color': cap.color}\" style=\"margin-right: 5px;\">{{cap.icon}}</mat-icon>{{cap.display}}\r\n </mat-list-item>\r\n\r\n <!-- Menu With Sub items -->\r\n <mat-expansion-panel class=\"side-color\" [class.mat-elevation-z0]=\"true\" *ngIf=\"myRole[cap.name] && cap.showMenu && cap.capSubItems && !cap.ignoreSubsDisplay\">\r\n\r\n <mat-expansion-panel-header style=\"height: 40px;padding-left: 15px;\">\r\n <mat-icon [ngStyle]=\"{'color': cap.color}\" style=\"margin-right: 5px;\">{{cap.icon != 'navigate_next' ? cap.icon : 'fiber_manual_record' }}</mat-icon>{{cap.display}}\r\n </mat-expansion-panel-header>\r\n\r\n <!-- Sub items -->\r\n <mat-nav-list *ngFor=\"let capSub of getSubItems(cap)\">\r\n\r\n <mat-list-item [routerLink]=\"capSub.link\" style=\"height: 30px; font-size: 15px;\" (click)=\"smallScreen ? toggle() : null\" *ngIf=\"myRole[capSub.name] && capSub.showMenu\">\r\n <mat-icon [ngStyle]=\"{'color': capSub.color}\" style=\"margin-right: 5px;\">{{capSub.icon}}</mat-icon>{{capSub.display}}\r\n </mat-list-item>\r\n\r\n </mat-nav-list>\r\n\r\n </mat-expansion-panel>\r\n\r\n </ng-container>\r\n\r\n </mat-nav-list>\r\n </mat-sidenav>\r\n\r\n\r\n\r\n <mat-sidenav-content class=\"tin-bg-image\" style=\"padding: 0px 12px;\" *ngIf=\"loggedin && dataService.appConfig.navigation == 'side'\">\r\n <hr style=\"margin-top: 0px;\">\r\n <router-outlet></router-outlet>\r\n <spa-loader [logo]=\"this.dataService.appConfig.logo\"></spa-loader>\r\n </mat-sidenav-content>\r\n\r\n</mat-sidenav-container>\r\n\r\n\r\n<!-- footer -->\r\n<div class=\"tin-center\" *ngIf=\"loggedin && dataService.appConfig.navigation == 'side'\">\r\n <label style=\"text-align: center; font-size: 12px;\">&copy; {{nowDate | date : 'yyyy'}} <a color=\"primary\" class=\"terms-link\" [href]=\"appConfig.siteUrl\" target=\"_blank\">{{footer}}</a> | <a color=\"primary\" class=\"terms-link\" [href]=\"appConfig.privacyUrl\" target=\"_blank\">Privacy Policy</a>.</label>\r\n</div>\r\n\r\n\r\n<div class=\"tin-bg-image\" *ngIf=\"!loggedin && dataService.appConfig.navigation == 'side'\">\r\n <router-outlet></router-outlet>\r\n <spa-loader [logo]=\"this.dataService.appConfig.logo\"></spa-loader>\r\n</div>\r\n", styles: ["a.navbar-brand{white-space:normal;text-align:center;word-break:break-all}html{font-size:14px}.box-shadow{box-shadow:0 .25rem .75rem #0000000d}.toolbar{height:60px;display:flex;align-items:center;background-color:#03a;color:#fff}.stack-top{z-index:9;margin:20px}.navitems{background-color:#03a}.toolbar-item-spacer{flex:1 1 auto}.app-container{height:90%;margin:0}.app-sidenav{width:200px}.side-color{background-color:#e6f4ff}\n"], dependencies: [{ kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i10.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { kind: "component", type: i13.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { kind: "component", type: i14.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i15.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i16.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i16.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i16.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i17.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i18.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i18.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "component", type: i19.LoaderComponent, selector: "spa-loader", inputs: ["logo"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.DatePipe, name: "date" }] });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavMenuComponent, decorators: [{
81
- type: Component,
82
- args: [{ selector: 'spa-nav-menu', template: "<header *ngIf=\"loggedin && dataService.appConfig.navigation == 'top'\">\r\n\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\r\n\r\n <div class=\"container-fluid\" style=\"padding-right: 0px;\">\r\n\r\n <img *ngIf=\"appConfig.logo!=''\" [src]=\"appConfig.logo\" style=\"height: 50px; margin-right: 2em\" />\r\n\r\n <div>\r\n <!-- <div style=\"font-size: 20px;\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant && tenantName\" style=\"font-size: 12px;\">\r\n {{tenantName}}\r\n </div> -->\r\n\r\n <div *ngIf=\"!dataService.appConfig.multitenant\" style=\"font-size: 22px;\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant\" style=\"font-size: 20px; ; font-weight: 400;\" [ngStyle]=\"{'margin-top': dataService.appConfig.multitenant ? '12px' : ''}\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant && tenantName\" style=\"font-size: 12px; margin-bottom: 5px;\">\r\n {{tenantName}}\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\".navbar-collapse\" aria-label=\"Toggle navigation\" [attr.aria-expanded]=\"isExpanded\" (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, navitems: isExpanded }\" >\r\n\r\n <button mat-icon-button (click)=\"logoff()\" > <mat-icon>logout</mat-icon> </button>\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant\">\r\n\r\n <button mat-icon-button (click)=\"redirectTo('home/admin/tenant-settings')\" > <mat-icon fontSet=\"material-icons-round\">apartment</mat-icon> </button>\r\n\r\n <button mat-icon-button (click)=\"redirectTo('home/admin/bug')\"> <mat-icon >support_agent</mat-icon> </button>\r\n\r\n <!-- <button mat-icon-button (click)=\"redirectTo('home/admin/notifications')\"> <mat-icon fontSet=\"material-icons-round\">apartment</mat-icon> </button> -->\r\n </div>\r\n\r\n\r\n <button id=\"btnUser\" mat-button [matMenuTriggerFor]=\"profileMenu\" ><mat-icon style=\"font-size: 24px;\">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)=\"logoff()\">Log Off</button>\r\n </mat-menu>\r\n\r\n <div *ngFor=\"let item of appConfig.capItems\">\r\n\r\n <!-- Menu Item -->\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 <!-- Menu Item with Sub items ignored -->\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 <!-- Menu Item with Sub items to display-->\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 <!-- Sub Menu Items -->\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\r\n</header>\r\n\r\n<div class=\"container-fluid tin-bg-image\" *ngIf=\"dataService.appConfig.navigation == 'top'\">\r\n <router-outlet></router-outlet>\r\n <spa-loader [logo]=\"this.dataService.appConfig.logo\"></spa-loader>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!-- SIDE -->\r\n<mat-toolbar class=\"tin-bg-image-toolbar\" *ngIf=\"loggedin && dataService.appConfig.navigation == 'side'\" style=\"padding: 0px 8px;\">\r\n\r\n <button mat-icon-button (click)=\"toggle()\" matTooltip=\"Menu\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n\r\n <img [src]=\"dataService.appConfig.logo\" style=\"height: 50px;\" />\r\n\r\n <div style=\"padding-left: 10px; \">\r\n\r\n <div style=\"font-size: 22px; font-weight: 400;\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n <!-- <div style=\"font-size: 20px; height: 25px; font-weight: 400;\" [ngStyle]=\"{'margin-top': dataService.appConfig.multitenant ? '12px' : ''}\">\r\n {{appConfig.appName}}\r\n </div> -->\r\n\r\n <!-- <div *ngIf=\"dataService.appConfig.multitenant && tenantName\" style=\"font-size: 12px; margin-bottom: 5px;\">\r\n {{tenantName}}\r\n </div> -->\r\n\r\n </div>\r\n\r\n\r\n\r\n <span class=\"toolbar-item-spacer\"></span>\r\n\r\n <!-- buttons -->\r\n\r\n <div *ngIf=\"dataService.appConfig.multitenant\">\r\n\r\n <!-- <label style=\"font-size: 14px;\">Hi, {{loggedUserFullName}}</label> -->\r\n\r\n <button mat-icon-button (click)=\"redirectTo('home/admin/tenant-settings')\" matTooltip=\"Organisation Settings\">\r\n <mat-icon fontSet=\"material-icons-round\">apartment</mat-icon>\r\n </button>\r\n <label style=\"font-size: 14px;margin-right: 20px;\">{{tenantName}}</label>\r\n\r\n <button *ngIf=\"!smallScreen\" mat-icon-button (click)=\"redirectTo('home/admin/bug')\" matTooltip=\"Support\">\r\n <mat-icon >help</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"!smallScreen\" mat-icon-button (click)=\"redirectTo('home/admin/notifications')\" matTooltip=\"Notifications\">\r\n <mat-icon [matBadge]=\"notificationCount$ | async\" [matBadgeHidden]=\"(notificationCount$ | async) === 0\" matBadgeColor=\"warn\" matBadgeSize=\"small\">notifications</mat-icon>\r\n </button>\r\n\r\n </div>\r\n\r\n\r\n\r\n <button mat-icon-button matTooltip=\"My Account\" [matMenuTriggerFor]=\"userAccountMenu\"><mat-icon>account_circle</mat-icon></button>\r\n <label style=\"font-size: 14px;\">{{loggedUserFullName}}</label>\r\n\r\n <button *ngIf=\"!smallScreen\" mat-icon-button (click)=\"logoff()\" matTooltip=\"Signout\">\r\n <mat-icon>logout</mat-icon>\r\n </button>\r\n\r\n\r\n <!-- my account menu -->\r\n <mat-menu #userAccountMenu [overlapTrigger]=\"false\" yPosition=\"below\">\r\n\r\n\r\n <button mat-menu-item routerLink=\"home/user/profile\">\r\n <mat-icon>person</mat-icon><span>Profile</span>\r\n </button>\r\n\r\n <button mat-menu-item routerLink=\"home/admin/bug\" *ngIf=\"dataService.appConfig.multitenant && smallScreen\">\r\n <mat-icon>help</mat-icon> <span>Help</span>\r\n </button>\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <button mat-menu-item (click)=\"logoff()\">\r\n <mat-icon>logout</mat-icon>Logout\r\n </button>\r\n\r\n </mat-menu>\r\n\r\n</mat-toolbar>\r\n\r\n\r\n\r\n\r\n<mat-sidenav-container class=\"app-container\" [hasBackdrop]=\"smallScreen\" *ngIf=\"loggedin && dataService.appConfig.navigation == 'side'\">\r\n\r\n <mat-sidenav #sidenav [mode]=\"smallScreen ? 'over' : 'side'\" [class.mat-elevation-z4]=\"true\" [opened]=\"isExpanded\" class=\"app-sidenav side-color\" style=\"height: 100%;\"\r\n [ngStyle]=\"{'width': dataService.appConfig.navWidth}\">\r\n <mat-nav-list >\r\n\r\n <ng-container *ngFor=\"let cap of dataService.appConfig.capItems\" >\r\n\r\n <!-- Menu item -->\r\n <mat-list-item [routerLink]=\"cap.link\" *ngIf=\"myRole[cap.name] && cap.showMenu && (!cap.capSubItems || cap.capSubItems && cap.ignoreSubsDisplay)\" style=\"height: 40px;font-size: 15px;\"\r\n (click)=\"smallScreen ? toggle() : null\">\r\n <mat-icon [ngStyle]=\"{'color': cap.color}\" style=\"margin-right: 5px;\">{{cap.icon}}</mat-icon>{{cap.display}}\r\n </mat-list-item>\r\n\r\n <!-- Menu With Sub items -->\r\n <mat-expansion-panel class=\"side-color\" [class.mat-elevation-z0]=\"true\" *ngIf=\"myRole[cap.name] && cap.showMenu && cap.capSubItems && !cap.ignoreSubsDisplay\">\r\n\r\n <mat-expansion-panel-header style=\"height: 40px;padding-left: 15px;\">\r\n <mat-icon [ngStyle]=\"{'color': cap.color}\" style=\"margin-right: 5px;\">{{cap.icon != 'navigate_next' ? cap.icon : 'fiber_manual_record' }}</mat-icon>{{cap.display}}\r\n </mat-expansion-panel-header>\r\n\r\n <!-- Sub items -->\r\n <mat-nav-list *ngFor=\"let capSub of getSubItems(cap)\">\r\n\r\n <mat-list-item [routerLink]=\"capSub.link\" style=\"height: 30px; font-size: 15px;\" (click)=\"smallScreen ? toggle() : null\" *ngIf=\"myRole[capSub.name] && capSub.showMenu\">\r\n <mat-icon [ngStyle]=\"{'color': capSub.color}\" style=\"margin-right: 5px;\">{{capSub.icon}}</mat-icon>{{capSub.display}}\r\n </mat-list-item>\r\n\r\n </mat-nav-list>\r\n\r\n </mat-expansion-panel>\r\n\r\n </ng-container>\r\n\r\n </mat-nav-list>\r\n </mat-sidenav>\r\n\r\n\r\n\r\n <mat-sidenav-content class=\"tin-bg-image\" style=\"padding: 0px 12px;\" *ngIf=\"loggedin && dataService.appConfig.navigation == 'side'\">\r\n <hr style=\"margin-top: 0px;\">\r\n <router-outlet></router-outlet>\r\n <spa-loader [logo]=\"this.dataService.appConfig.logo\"></spa-loader>\r\n </mat-sidenav-content>\r\n\r\n</mat-sidenav-container>\r\n\r\n\r\n<!-- footer -->\r\n<div class=\"tin-center\" *ngIf=\"loggedin && dataService.appConfig.navigation == 'side'\">\r\n <label style=\"text-align: center; font-size: 12px;\">&copy; {{nowDate | date : 'yyyy'}} <a color=\"primary\" class=\"terms-link\" [href]=\"appConfig.siteUrl\" target=\"_blank\">{{footer}}</a> | <a color=\"primary\" class=\"terms-link\" [href]=\"appConfig.privacyUrl\" target=\"_blank\">Privacy Policy</a>.</label>\r\n</div>\r\n\r\n\r\n<div class=\"tin-bg-image\" *ngIf=\"!loggedin && dataService.appConfig.navigation == 'side'\">\r\n <router-outlet></router-outlet>\r\n <spa-loader [logo]=\"this.dataService.appConfig.logo\"></spa-loader>\r\n</div>\r\n", styles: ["a.navbar-brand{white-space:normal;text-align:center;word-break:break-all}html{font-size:14px}.box-shadow{box-shadow:0 .25rem .75rem #0000000d}.toolbar{height:60px;display:flex;align-items:center;background-color:#03a;color:#fff}.stack-top{z-index:9;margin:20px}.navitems{background-color:#03a}.toolbar-item-spacer{flex:1 1 auto}.app-container{height:90%;margin:0}.app-sidenav{width:200px}.side-color{background-color:#e6f4ff}\n"] }]
83
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AuthService }, { type: i3.StorageService }, { type: i4.NotificationsService }, { type: i5.SocialAuthService }, { type: i6.BreakpointObserver }, { type: i7.DataServiceLib }]; }, propDecorators: { appConfig: [{
84
- type: Input
85
- }], footer: [{
86
- type: Input
87
- }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbmF2LW1lbnUvbmF2LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbmF2LW1lbnUvbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsR0FBWSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlekQsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUFtQixNQUFjLEVBQVMsV0FBd0IsRUFBVSxjQUE4QixFQUFVLG9CQUEwQyxFQUNwSixhQUFnQyxFQUFVLGtCQUFzQyxFQUFTLFdBQTJCO1FBRDNHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDcEosa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQTBCOUgsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDO1FBTWxFLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsWUFBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFHWCxjQUFTLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUM1QixXQUFNLEdBQVcsa0JBQWtCLENBQUM7UUFyQzNDLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQXVCLEVBQUUsRUFBRTtZQUU1RixJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO2FBQ3hCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO2FBQ3pCO1FBRUgsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUYsUUFBUTtRQUVOLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFBO1FBQ3JGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUNyRSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFFekUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFFSCxDQUFDO0lBa0JELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUVyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxJQUFJLElBQUUsRUFBRSxFQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlCO0lBRUgsQ0FBQztJQUdELFdBQVcsQ0FBQyxPQUFpQjtRQUMzQixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUUsQ0FBQztJQUNuRSxDQUFDOzs2R0ExRVUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsMEdDaEI3Qix5M1VBc1BBOzJGRHRPYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYztxUkE0Q2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBDb25maWcsIENhcEl0ZW0sIH0gZnJvbSAnLi8uLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgIEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTb2NpYWxBdXRoU2VydmljZSB9IGZyb20gJ0BhYmFjcml0dC9hbmd1bGFyeC1zb2NpYWwtbG9naW4nO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1uYXYtbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25hdi1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uYXYtbWVudS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdk1lbnVDb21wb25lbnQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgc29jaWFsU2VydmljZTogU29jaWFsQXV0aFNlcnZpY2UsIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsIHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsKSB7XHJcbiAgICAvLyBkZXRlY3Qgc2NyZWVuIHNpemUgY2hhbmdlc1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbXCIobWF4LXdpZHRoOiA2MDBweClcIl0pLnN1YnNjcmliZSgocmVzdWx0OiBCcmVha3BvaW50U3RhdGUpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQubWF0Y2hlcykge1xyXG4gICAgICAgIHRoaXMuc21hbGxTY3JlZW4gPSB0cnVlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zbWFsbFNjcmVlbiA9IGZhbHNlXHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZFVzZXJGdWxsTmFtZS5zdWJzY3JpYmUodXNlciA9PiB0aGlzLmxvZ2dlZFVzZXJGdWxsTmFtZSA9IHVzZXIpXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLm15Um9sZU9ic2Vydi5zdWJzY3JpYmUocm9sID0+IHRoaXMubXlSb2xlID0gcm9sKTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nZ2VkaW5PYnNlcnYuc3Vic2NyaWJlKG9iaiA9PiB0aGlzLmxvZ2dlZGluID0gb2JqKVxyXG4gICAgdGhpcy5hdXRoU2VydmljZS50ZW5hbnROYW1lT2JzZXJ2LnN1YnNjcmliZShvYmogPT4gdGhpcy50ZW5hbnROYW1lID0gb2JqKVxyXG5cclxuICAgIGlmICghdGhpcy5zbWFsbFNjcmVlbikge1xyXG4gICAgICB0aGlzLmlzRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5vdGlmaWNhdGlvbkNvdW50JCA9IHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uubm90aWZpY2F0aW9uQ291bnQkO1xyXG4gIHNtYWxsU2NyZWVuXHJcbiAgbXlSb2xlO1xyXG4gIGxvZ2dlZFVzZXJGdWxsTmFtZTogc3RyaW5nO1xyXG4gIHRlbmFudE5hbWUgOiBzdHJpbmc7XHJcbiAgbG9nZ2VkaW46IGJvb2xlYW47XHJcbiAgaXNFeHBhbmRlZCA9IGZhbHNlO1xyXG5cclxuICBub3dEYXRlID0gbmV3IERhdGUoKVxyXG5cclxuXHJcbiAgQElucHV0KCkgYXBwQ29uZmlnID0gbmV3IEFwcENvbmZpZygpO1xyXG4gIEBJbnB1dCgpIGZvb3Rlcjogc3RyaW5nID0gJ2Fsc3F1YXJldGVjaC5uZXQnO1xyXG5cclxuXHJcblxyXG4gIGNvbGxhcHNlKCkge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB0b2dnbGUoKSB7XHJcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTaWRlKCkge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBsb2dvZmYoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ29mZigpO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUbyhsaW5rOiBzdHJpbmcpe1xyXG5cclxuICAgIHRoaXMuY29sbGFwc2UoKTtcclxuXHJcbiAgICBpZiAobGluayE9XCJcIil7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaW5rXSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGdldFN1Ykl0ZW1zKGNhcEl0ZW0gOiBDYXBJdGVtKSA6IENhcEl0ZW1bXSB7XHJcbiAgICByZXR1cm4gY2FwSXRlbS5jYXBTdWJJdGVtcy5maWx0ZXIoeCA9PiB4LnNob3dNZW51ICYmICF4LmlzQm9vbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwibG9nZ2VkaW4gJiYgZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm5hdmlnYXRpb24gPT0gJ3RvcCdcIj5cclxuXHJcbiAgPG5hdiBjbGFzcz1cInRvb2xiYXIgbmF2YmFyIG5hdmJhci1leHBhbmQtc20gbmF2YmFyLXRvZ2dsZWFibGUtc20gbmF2YmFyLWxpZ2h0ICBib3JkZXItYm90dG9tIGJveC1zaGFkb3cgbWItMyBcIiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDEwcHg7XCI+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDBweDtcIj5cclxuXHJcbiAgICAgIDxpbWcgKm5nSWY9XCJhcHBDb25maWcubG9nbyE9JydcIiBbc3JjXT1cImFwcENvbmZpZy5sb2dvXCIgc3R5bGU9XCJoZWlnaHQ6IDUwcHg7IG1hcmdpbi1yaWdodDogMmVtXCIgLz5cclxuXHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMjBweDtcIj5cclxuICAgICAgICAgICAgICB7e2FwcENvbmZpZy5hcHBOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm11bHRpdGVuYW50ICYmIHRlbmFudE5hbWVcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIj5cclxuICAgICAgICAgICAgICB7e3RlbmFudE5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm11bHRpdGVuYW50XCIgc3R5bGU9XCJmb250LXNpemU6IDIycHg7XCI+XHJcbiAgICAgICAgICB7e2FwcENvbmZpZy5hcHBOYW1lfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGFTZXJ2aWNlLmFwcENvbmZpZy5tdWx0aXRlbmFudFwiIHN0eWxlPVwiZm9udC1zaXplOiAyMHB4OyA7IGZvbnQtd2VpZ2h0OiA0MDA7XCIgW25nU3R5bGVdPVwieydtYXJnaW4tdG9wJzogZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm11bHRpdGVuYW50ID8gJzEycHgnIDogJyd9XCI+XHJcbiAgICAgICAgICB7e2FwcENvbmZpZy5hcHBOYW1lfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGFTZXJ2aWNlLmFwcENvbmZpZy5tdWx0aXRlbmFudCAmJiB0ZW5hbnROYW1lXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7IG1hcmdpbi1ib3R0b206IDVweDtcIj5cclxuICAgICAgICAgIHt7dGVuYW50TmFtZX19XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBkYXRhLXRhcmdldD1cIi5uYXZiYXItY29sbGFwc2VcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIG5hdmlnYXRpb25cIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cIm15Um9sZVwiIGNsYXNzPVwiIG5hdmJhci1jb2xsYXBzZSBjb2xsYXBzZSBkLXNtLWlubGluZS1mbGV4IGZsZXgtc20tcm93LXJldmVyc2Ugc3RhY2stdG9wXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDBweDtcIiBbbmdDbGFzc109XCJ7IHNob3c6IGlzRXhwYW5kZWQsIG5hdml0ZW1zOiBpc0V4cGFuZGVkIH1cIiA+XHJcblxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJsb2dvZmYoKVwiID4gPG1hdC1pY29uPmxvZ291dDwvbWF0LWljb24+IDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm11bHRpdGVuYW50XCI+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlZGlyZWN0VG8oJ2hvbWUvYWRtaW4vdGVuYW50LXNldHRpbmdzJylcIiA+IDxtYXQtaWNvbiBmb250U2V0PVwibWF0ZXJpYWwtaWNvbnMtcm91bmRcIj5hcGFydG1lbnQ8L21hdC1pY29uPiA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVkaXJlY3RUbygnaG9tZS9hZG1pbi9idWcnKVwiPiA8bWF0LWljb24gPnN1cHBvcnRfYWdlbnQ8L21hdC1pY29uPiA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZWRpcmVjdFRvKCdob21lL2FkbWluL25vdGlmaWNhdGlvbnMnKVwiPiA8bWF0LWljb24gZm9udFNldD1cIm1hdGVyaWFsLWljb25zLXJvdW5kXCI+YXBhcnRtZW50PC9tYXQtaWNvbj4gPC9idXR0b24+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBpZD1cImJ0blVzZXJcIiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJwcm9maWxlTWVudVwiICA+PG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOiAyNHB4O1wiPmFjY291bnRfY2lyY2xlPC9tYXQtaWNvbj4gICZuYnNwO3t7bG9nZ2VkVXNlckZ1bGxOYW1lfX08L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPG1hdC1tZW51ICNwcm9maWxlTWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgIDxidXR0b24gaWQ9XCJidG5Qcm9maWxlXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicmVkaXJlY3RUbygnaG9tZS91c2VyL3Byb2ZpbGUnKVwiID5Qcm9maWxlPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIGlkPVwiYnRuTG9nT2ZmXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwibG9nb2ZmKClcIj5Mb2cgT2ZmPC9idXR0b24+XHJcbiAgICAgICAgPC9tYXQtbWVudT5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhcHBDb25maWcuY2FwSXRlbXNcIj5cclxuXHJcbiAgICAgICAgICA8IS0tIE1lbnUgSXRlbSAtLT5cclxuICAgICAgICAgIDxidXR0b24gaWQ9XCJidG5NZW51XCIgKm5nSWY9XCJteVJvbGVbaXRlbS5uYW1lXSAmJiAhaXRlbS5jYXBTdWJJdGVtcyAmJiBpdGVtLnNob3dNZW51XCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwicmVkaXJlY3RUbyhpdGVtLmxpbmspXCI+e3tpdGVtLmRpc3BsYXl9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDwhLS0gTWVudSBJdGVtIHdpdGggU3ViIGl0ZW1zIGlnbm9yZWQgLS0+XHJcbiAgICAgICAgICA8YnV0dG9uIGlkPVwiYnRuTWVudVwiICpuZ0lmPVwibXlSb2xlW2l0ZW0ubmFtZV0gJiYgaXRlbS5jYXBTdWJJdGVtcyAmJiBpdGVtLnNob3dNZW51ICYmIGl0ZW0uaWdub3JlU3Vic0Rpc3BsYXlcIiBtYXQtYnV0dG9uIChjbGljayk9XCJyZWRpcmVjdFRvKGl0ZW0ubGluaylcIj57e2l0ZW0uZGlzcGxheX19PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPCEtLSBNZW51IEl0ZW0gd2l0aCBTdWIgaXRlbXMgdG8gZGlzcGxheS0tPlxyXG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bk1lbnVcIiAqbmdJZj1cIm15Um9sZVtpdGVtLm5hbWVdICYmIGl0ZW0uY2FwU3ViSXRlbXMgJiYgaXRlbS5zaG93TWVudSAmJiAhaXRlbS5pZ25vcmVTdWJzRGlzcGxheVwiIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFkbWluTWVudVwiPnt7aXRlbS5kaXNwbGF5fX08L2J1dHRvbj5cclxuXHJcblxyXG4gICAgICAgICAgPCEtLSBTdWIgTWVudSBJdGVtcyAtLT5cclxuICAgICAgICAgIDxtYXQtbWVudSAjYWRtaW5NZW51PVwibWF0TWVudVwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViSXRlbSBvZiBpdGVtLmNhcFN1Ykl0ZW1zXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJteVJvbGVbc3ViSXRlbS5uYW1lXSAmJiBzdWJJdGVtLnNob3dNZW51XCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicmVkaXJlY3RUbyhzdWJJdGVtLmxpbmspXCI+e3tzdWJJdGVtLmRpc3BsYXl9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPC9tYXQtbWVudT5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvbmF2PlxyXG5cclxuPC9oZWFkZXI+XHJcblxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIHRpbi1iZy1pbWFnZVwiICpuZ0lmPVwiZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm5hdmlnYXRpb24gPT0gJ3RvcCdcIj5cclxuICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgPHNwYS1sb2FkZXIgW2xvZ29dPVwidGhpcy5kYXRhU2VydmljZS5hcHBDb25maWcubG9nb1wiPjwvc3BhLWxvYWRlcj5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbjwhLS0gU0lERSAtLT5cclxuPG1hdC10b29sYmFyIGNsYXNzPVwidGluLWJnLWltYWdlLXRvb2xiYXJcIiAqbmdJZj1cImxvZ2dlZGluICYmIGRhdGFTZXJ2aWNlLmFwcENvbmZpZy5uYXZpZ2F0aW9uID09ICdzaWRlJ1wiIHN0eWxlPVwicGFkZGluZzogMHB4IDhweDtcIj5cclxuXHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZSgpXCIgbWF0VG9vbHRpcD1cIk1lbnVcIj5cclxuICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuXHJcbiAgPGltZyBbc3JjXT1cImRhdGFTZXJ2aWNlLmFwcENvbmZpZy5sb2dvXCIgc3R5bGU9XCJoZWlnaHQ6IDUwcHg7XCIgLz5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDsgXCI+XHJcblxyXG4gICAgPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMjJweDsgZm9udC13ZWlnaHQ6IDQwMDtcIj5cclxuICAgICAge3thcHBDb25maWcuYXBwTmFtZX19XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIDxkaXYgc3R5bGU9XCJmb250LXNpemU6IDIwcHg7IGhlaWdodDogMjVweDsgZm9udC13ZWlnaHQ6IDQwMDtcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi10b3AnOiBkYXRhU2VydmljZS5hcHBDb25maWcubXVsdGl0ZW5hbnQgPyAnMTJweCcgOiAnJ31cIj5cclxuICAgICAge3thcHBDb25maWcuYXBwTmFtZX19XHJcbiAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm11bHRpdGVuYW50ICYmIHRlbmFudE5hbWVcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLWJvdHRvbTogNXB4O1wiPlxyXG4gICAgICB7e3RlbmFudE5hbWV9fVxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICA8c3BhbiBjbGFzcz1cInRvb2xiYXItaXRlbS1zcGFjZXJcIj48L3NwYW4+XHJcblxyXG4gIDwhLS0gYnV0dG9ucyAtLT5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImRhdGFTZXJ2aWNlLmFwcENvbmZpZy5tdWx0aXRlbmFudFwiPlxyXG5cclxuICAgIDwhLS0gPGxhYmVsIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiPkhpLCB7e2xvZ2dlZFVzZXJGdWxsTmFtZX19PC9sYWJlbD4gLS0+XHJcblxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlZGlyZWN0VG8oJ2hvbWUvYWRtaW4vdGVuYW50LXNldHRpbmdzJylcIiBtYXRUb29sdGlwPVwiT3JnYW5pc2F0aW9uIFNldHRpbmdzXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBmb250U2V0PVwibWF0ZXJpYWwtaWNvbnMtcm91bmRcIj5hcGFydG1lbnQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8bGFiZWwgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7bWFyZ2luLXJpZ2h0OiAyMHB4O1wiPnt7dGVuYW50TmFtZX19PC9sYWJlbD5cclxuXHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiIXNtYWxsU2NyZWVuXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZWRpcmVjdFRvKCdob21lL2FkbWluL2J1ZycpXCIgIG1hdFRvb2x0aXA9XCJTdXBwb3J0XCI+XHJcbiAgICAgIDxtYXQtaWNvbiA+aGVscDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiIXNtYWxsU2NyZWVuXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZWRpcmVjdFRvKCdob21lL2FkbWluL25vdGlmaWNhdGlvbnMnKVwiIG1hdFRvb2x0aXA9XCJOb3RpZmljYXRpb25zXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbbWF0QmFkZ2VdPVwibm90aWZpY2F0aW9uQ291bnQkIHwgYXN5bmNcIiBbbWF0QmFkZ2VIaWRkZW5dPVwiKG5vdGlmaWNhdGlvbkNvdW50JCB8IGFzeW5jKSA9PT0gMFwiIG1hdEJhZGdlQ29sb3I9XCJ3YXJuXCIgbWF0QmFkZ2VTaXplPVwic21hbGxcIj5ub3RpZmljYXRpb25zPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiTXkgQWNjb3VudFwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJ1c2VyQWNjb3VudE1lbnVcIj48bWF0LWljb24+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIj57e2xvZ2dlZFVzZXJGdWxsTmFtZX19PC9sYWJlbD5cclxuXHJcbiAgPGJ1dHRvbiAqbmdJZj1cIiFzbWFsbFNjcmVlblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibG9nb2ZmKClcIiAgbWF0VG9vbHRpcD1cIlNpZ25vdXRcIj5cclxuICAgIDxtYXQtaWNvbj5sb2dvdXQ8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuXHJcbiAgPCEtLSBteSBhY2NvdW50IG1lbnUgLS0+XHJcbiAgPG1hdC1tZW51ICN1c2VyQWNjb3VudE1lbnUgW292ZXJsYXBUcmlnZ2VyXT1cImZhbHNlXCIgeVBvc2l0aW9uPVwiYmVsb3dcIj5cclxuXHJcblxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIHJvdXRlckxpbms9XCJob21lL3VzZXIvcHJvZmlsZVwiPlxyXG4gICAgICA8bWF0LWljb24+cGVyc29uPC9tYXQtaWNvbj48c3Bhbj5Qcm9maWxlPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICByb3V0ZXJMaW5rPVwiaG9tZS9hZG1pbi9idWdcIiAqbmdJZj1cImRhdGFTZXJ2aWNlLmFwcENvbmZpZy5tdWx0aXRlbmFudCAmJiBzbWFsbFNjcmVlblwiPlxyXG4gICAgICA8bWF0LWljb24+aGVscDwvbWF0LWljb24+IDxzcGFuPkhlbHA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuXHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImxvZ29mZigpXCI+XHJcbiAgICAgIDxtYXQtaWNvbj5sb2dvdXQ8L21hdC1pY29uPkxvZ291dFxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gIDwvbWF0LW1lbnU+XHJcblxyXG48L21hdC10b29sYmFyPlxyXG5cclxuXHJcblxyXG5cclxuPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cImFwcC1jb250YWluZXJcIiBbaGFzQmFja2Ryb3BdPVwic21hbGxTY3JlZW5cIiAqbmdJZj1cImxvZ2dlZGluICYmIGRhdGFTZXJ2aWNlLmFwcENvbmZpZy5uYXZpZ2F0aW9uID09ICdzaWRlJ1wiPlxyXG5cclxuICA8bWF0LXNpZGVuYXYgI3NpZGVuYXYgW21vZGVdPVwic21hbGxTY3JlZW4gPyAnb3ZlcicgOiAnc2lkZSdcIiBbY2xhc3MubWF0LWVsZXZhdGlvbi16NF09XCJ0cnVlXCIgW29wZW5lZF09XCJpc0V4cGFuZGVkXCIgIGNsYXNzPVwiYXBwLXNpZGVuYXYgc2lkZS1jb2xvclwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiXHJcbiAgW25nU3R5bGVdPVwieyd3aWR0aCc6IGRhdGFTZXJ2aWNlLmFwcENvbmZpZy5uYXZXaWR0aH1cIj5cclxuICAgIDxtYXQtbmF2LWxpc3QgPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2FwIG9mIGRhdGFTZXJ2aWNlLmFwcENvbmZpZy5jYXBJdGVtc1wiID5cclxuXHJcbiAgICAgICAgPCEtLSBNZW51IGl0ZW0gLS0+XHJcbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gW3JvdXRlckxpbmtdPVwiY2FwLmxpbmtcIiAgKm5nSWY9XCJteVJvbGVbY2FwLm5hbWVdICYmIGNhcC5zaG93TWVudSAmJiAoIWNhcC5jYXBTdWJJdGVtcyB8fCBjYXAuY2FwU3ViSXRlbXMgJiYgY2FwLmlnbm9yZVN1YnNEaXNwbGF5KVwiIHN0eWxlPVwiaGVpZ2h0OiA0MHB4O2ZvbnQtc2l6ZTogMTVweDtcIlxyXG4gICAgICAgIChjbGljayk9XCJzbWFsbFNjcmVlbiA/IHRvZ2dsZSgpIDogbnVsbFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIFtuZ1N0eWxlXT1cInsnY29sb3InOiBjYXAuY29sb3J9XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIj57e2NhcC5pY29ufX08L21hdC1pY29uPnt7Y2FwLmRpc3BsYXl9fVxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuXHJcbiAgICAgICAgPCEtLSBNZW51IFdpdGggU3ViIGl0ZW1zIC0tPlxyXG4gICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsIGNsYXNzPVwic2lkZS1jb2xvclwiIFtjbGFzcy5tYXQtZWxldmF0aW9uLXowXT1cInRydWVcIiAgKm5nSWY9XCJteVJvbGVbY2FwLm5hbWVdICYmIGNhcC5zaG93TWVudSAmJiBjYXAuY2FwU3ViSXRlbXMgJiYgIWNhcC5pZ25vcmVTdWJzRGlzcGxheVwiPlxyXG5cclxuICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBzdHlsZT1cImhlaWdodDogNDBweDtwYWRkaW5nLWxlZnQ6IDE1cHg7XCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbbmdTdHlsZV09XCJ7J2NvbG9yJzogY2FwLmNvbG9yfVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+e3tjYXAuaWNvbiAhPSAnbmF2aWdhdGVfbmV4dCcgPyBjYXAuaWNvbiA6ICdmaWJlcl9tYW51YWxfcmVjb3JkJyB9fTwvbWF0LWljb24+e3tjYXAuZGlzcGxheX19XHJcbiAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICAgICAgICAgIDwhLS0gU3ViIGl0ZW1zIC0tPlxyXG4gICAgICAgICAgPG1hdC1uYXYtbGlzdCAqbmdGb3I9XCJsZXQgY2FwU3ViIG9mIGdldFN1Ykl0ZW1zKGNhcClcIj5cclxuXHJcbiAgICAgICAgICAgIDxtYXQtbGlzdC1pdGVtIFtyb3V0ZXJMaW5rXT1cImNhcFN1Yi5saW5rXCIgc3R5bGU9XCJoZWlnaHQ6IDMwcHg7IGZvbnQtc2l6ZTogMTVweDtcIiAoY2xpY2spPVwic21hbGxTY3JlZW4gPyB0b2dnbGUoKSA6IG51bGxcIiAqbmdJZj1cIm15Um9sZVtjYXBTdWIubmFtZV0gJiYgY2FwU3ViLnNob3dNZW51XCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIFtuZ1N0eWxlXT1cInsnY29sb3InOiBjYXBTdWIuY29sb3J9XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIj57e2NhcFN1Yi5pY29ufX08L21hdC1pY29uPnt7Y2FwU3ViLmRpc3BsYXl9fVxyXG4gICAgICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcblxyXG4gICAgICAgICAgPC9tYXQtbmF2LWxpc3Q+XHJcblxyXG4gICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuXHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwvbWF0LW5hdi1saXN0PlxyXG4gIDwvbWF0LXNpZGVuYXY+XHJcblxyXG5cclxuXHJcbiAgPG1hdC1zaWRlbmF2LWNvbnRlbnQgY2xhc3M9XCJ0aW4tYmctaW1hZ2VcIiBzdHlsZT1cInBhZGRpbmc6IDBweCAxMnB4O1wiICpuZ0lmPVwibG9nZ2VkaW4gJiYgZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm5hdmlnYXRpb24gPT0gJ3NpZGUnXCI+XHJcbiAgICA8aHIgc3R5bGU9XCJtYXJnaW4tdG9wOiAwcHg7XCI+XHJcbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgICA8c3BhLWxvYWRlciBbbG9nb109XCJ0aGlzLmRhdGFTZXJ2aWNlLmFwcENvbmZpZy5sb2dvXCI+PC9zcGEtbG9hZGVyPlxyXG4gIDwvbWF0LXNpZGVuYXYtY29udGVudD5cclxuXHJcbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxyXG5cclxuXHJcbjwhLS0gZm9vdGVyIC0tPlxyXG48ZGl2IGNsYXNzPVwidGluLWNlbnRlclwiICpuZ0lmPVwibG9nZ2VkaW4gJiYgZGF0YVNlcnZpY2UuYXBwQ29uZmlnLm5hdmlnYXRpb24gPT0gJ3NpZGUnXCI+XHJcbiAgPGxhYmVsIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDEycHg7XCI+JmNvcHk7IHt7bm93RGF0ZSB8IGRhdGUgOiAneXl5eSd9fSA8YSBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cInRlcm1zLWxpbmtcIiBbaHJlZl09XCJhcHBDb25maWcuc2l0ZVVybFwiIHRhcmdldD1cIl9ibGFua1wiPnt7Zm9vdGVyfX08L2E+IHwgPGEgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJ0ZXJtcy1saW5rXCIgW2hyZWZdPVwiYXBwQ29uZmlnLnByaXZhY3lVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5Qcml2YWN5IFBvbGljeTwvYT4uPC9sYWJlbD5cclxuPC9kaXY+XHJcblxyXG5cclxuPGRpdiBjbGFzcz1cInRpbi1iZy1pbWFnZVwiICpuZ0lmPVwiIWxvZ2dlZGluICYmIGRhdGFTZXJ2aWNlLmFwcENvbmZpZy5uYXZpZ2F0aW9uID09ICdzaWRlJ1wiPlxyXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cclxuICA8c3BhLWxvYWRlciBbbG9nb109XCJ0aGlzLmRhdGFTZXJ2aWNlLmFwcENvbmZpZy5sb2dvXCI+PC9zcGEtbG9hZGVyPlxyXG48L2Rpdj5cclxuIl19
@@ -1,62 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/datalib.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/material/form-field";
6
- export class NotesComponent {
7
- constructor(dataService) {
8
- this.dataService = dataService;
9
- // Input properties
10
- this.title = "Notes";
11
- this.notes = []; // Data array if provided directly
12
- // Field mapping inputs (defaults match the existing activity component)
13
- this.nameField = "createdByName";
14
- this.dateField = "createdDate";
15
- this.commentField = "details";
16
- }
17
- ngOnInit() {
18
- this.loadNotes();
19
- }
20
- loadNotes() {
21
- // If notes are already provided as an object, use them directly
22
- if (this.notes && this.notes.length > 0) {
23
- return;
24
- }
25
- // Otherwise, load from the URL if configured
26
- if (this.loadAction && this.data && this.loadIDField) {
27
- const idValue = this.data[this.loadIDField];
28
- if (!idValue) {
29
- return;
30
- }
31
- let url = this.loadAction.url.replace('{x}', idValue);
32
- this.dataService.CallApi({ ...this.loadAction, url }).subscribe((apiResponse) => {
33
- if (apiResponse.success && apiResponse.data) {
34
- this.notes = apiResponse.data;
35
- }
36
- });
37
- }
38
- }
39
- }
40
- NotesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NotesComponent, deps: [{ token: i1.DataServiceLib }], target: i0.ɵɵFactoryTarget.Component });
41
- NotesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NotesComponent, selector: "spa-notes", inputs: { title: "title", notes: "notes", loadAction: "loadAction", loadIDField: "loadIDField", data: "data", nameField: "nameField", dateField: "dateField", commentField: "commentField" }, ngImport: i0, template: " <div class=\"notes-container\" *ngIf=\"notes && notes.length > 0\">\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 class=\"list-group list-group-flush\" style=\"max-height:350px; margin-left:5px\">\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[nameField] || note.createdByName}}</div>\r\n </div>\r\n <small>{{note[commentField] || note.details}} (<em>{{note[dateField] || note.createdDate | date: 'dd MMM yyyy HH:mm'}}</em>)</small>\r\n </li>\r\n </ul>\r\n </div>\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 No {{title.toLowerCase()}}\r\n </div>", styles: [".notes-container{padding:10px;border-radius:4px;margin-bottom:15px}.list-group-item{background-color:transparent;border-left:none;border-right:none;border-radius:0;transition:background-color .2s}.list-group-item:hover{background-color:#00000008}.list-group-item small{display:block;margin-top:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NotesComponent, decorators: [{
43
- type: Component,
44
- args: [{ selector: 'spa-notes', template: " <div class=\"notes-container\" *ngIf=\"notes && notes.length > 0\">\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 class=\"list-group list-group-flush\" style=\"max-height:350px; margin-left:5px\">\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[nameField] || note.createdByName}}</div>\r\n </div>\r\n <small>{{note[commentField] || note.details}} (<em>{{note[dateField] || note.createdDate | date: 'dd MMM yyyy HH:mm'}}</em>)</small>\r\n </li>\r\n </ul>\r\n </div>\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 No {{title.toLowerCase()}}\r\n </div>", styles: [".notes-container{padding:10px;border-radius:4px;margin-bottom:15px}.list-group-item{background-color:transparent;border-left:none;border-right:none;border-radius:0;transition:background-color .2s}.list-group-item:hover{background-color:#00000008}.list-group-item small{display:block;margin-top:5px}\n"] }]
45
- }], ctorParameters: function () { return [{ type: i1.DataServiceLib }]; }, propDecorators: { title: [{
46
- type: Input
47
- }], notes: [{
48
- type: Input
49
- }], loadAction: [{
50
- type: Input
51
- }], loadIDField: [{
52
- type: Input
53
- }], data: [{
54
- type: Input
55
- }], nameField: [{
56
- type: Input
57
- }], dateField: [{
58
- type: Input
59
- }], commentField: [{
60
- type: Input
61
- }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbm90ZXMvbm90ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbm90ZXMvbm90ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3pELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLFdBQTJCO1FBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQU0vQyxtQkFBbUI7UUFDVixVQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ2hCLFVBQUssR0FBVSxFQUFFLENBQUMsQ0FBQyxrQ0FBa0M7UUFLOUQsd0VBQXdFO1FBQy9ELGNBQVMsR0FBRyxlQUFlLENBQUM7UUFDNUIsY0FBUyxHQUFHLGFBQWEsQ0FBQztRQUMxQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztJQWhCaUIsQ0FBQztJQUVwRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFjTyxTQUFTO1FBRWYsZ0VBQWdFO1FBQ2hFLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkMsT0FBTztTQUNSO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFNUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixPQUFPO2FBQ1I7WUFFRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXRELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFO2dCQUMzRixJQUFJLFdBQVcsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksRUFBRTtvQkFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO2lCQUMvQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzsyR0ExQ1UsY0FBYzsrRkFBZCxjQUFjLCtPQ1QzQixtK0JBaUJROzJGRFJLLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVztxR0FZWixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1ub3RlcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ub3Rlcy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkTm90ZXMoKTtcclxuICB9XHJcblxyXG4gIC8vIElucHV0IHByb3BlcnRpZXNcclxuICBASW5wdXQoKSB0aXRsZSA9IFwiTm90ZXNcIjtcclxuICBASW5wdXQoKSBub3RlczogYW55W10gPSBbXTsgLy8gRGF0YSBhcnJheSBpZiBwcm92aWRlZCBkaXJlY3RseVxyXG4gIEBJbnB1dCgpIGxvYWRBY3Rpb246IGFueTsgLy8gVVJMIGNvbmZpZyBpZiBub3RlcyBuZWVkIHRvIGJlIGxvYWRlZCBcclxuICBASW5wdXQoKSBsb2FkSURGaWVsZDogc3RyaW5nOyAvLyBGaWVsZCB0byB1c2UgZm9yIElEIHdoZW4gbG9hZGluZyBub3Rlc1xyXG4gIEBJbnB1dCgpIGRhdGE6IGFueTsgLy8gUGFyZW50IGRhdGEgb2JqZWN0IGZvciBJRCByZWZlcmVuY2VcclxuXHJcbiAgLy8gRmllbGQgbWFwcGluZyBpbnB1dHMgKGRlZmF1bHRzIG1hdGNoIHRoZSBleGlzdGluZyBhY3Rpdml0eSBjb21wb25lbnQpXHJcbiAgQElucHV0KCkgbmFtZUZpZWxkID0gXCJjcmVhdGVkQnlOYW1lXCI7XHJcbiAgQElucHV0KCkgZGF0ZUZpZWxkID0gXCJjcmVhdGVkRGF0ZVwiO1xyXG4gIEBJbnB1dCgpIGNvbW1lbnRGaWVsZCA9IFwiZGV0YWlsc1wiO1xyXG5cclxuICBwcml2YXRlIGxvYWROb3RlcygpOiB2b2lkIHtcclxuXHJcbiAgICAvLyBJZiBub3RlcyBhcmUgYWxyZWFkeSBwcm92aWRlZCBhcyBhbiBvYmplY3QsIHVzZSB0aGVtIGRpcmVjdGx5XHJcbiAgICBpZiAodGhpcy5ub3RlcyAmJiB0aGlzLm5vdGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE90aGVyd2lzZSwgbG9hZCBmcm9tIHRoZSBVUkwgaWYgY29uZmlndXJlZFxyXG4gICAgaWYgKHRoaXMubG9hZEFjdGlvbiAmJiB0aGlzLmRhdGEgJiYgdGhpcy5sb2FkSURGaWVsZCkge1xyXG4gICAgICBjb25zdCBpZFZhbHVlID0gdGhpcy5kYXRhW3RoaXMubG9hZElERmllbGRdO1xyXG4gICAgICBcclxuICAgICAgaWYgKCFpZFZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIGxldCB1cmwgPSB0aGlzLmxvYWRBY3Rpb24udXJsLnJlcGxhY2UoJ3t4fScsIGlkVmFsdWUpO1xyXG5cclxuICAgICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKHsgLi4udGhpcy5sb2FkQWN0aW9uLCB1cmwgfSkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2VzcyAmJiBhcGlSZXNwb25zZS5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLm5vdGVzID0gYXBpUmVzcG9uc2UuZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIiAgPGRpdiBjbGFzcz1cIm5vdGVzLWNvbnRhaW5lclwiICpuZ0lmPVwibm90ZXMgJiYgbm90ZXMubGVuZ3RoID4gMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRpbi1pbnB1dC1yb3cgbXQtM1wiICpuZ0lmPVwidGl0bGUgIT0gJydcIj5cclxuICAgICAgPG1hdC1sYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMjBweDsgZm9udC13ZWlnaHQ6IDMwMFwiPnt7dGl0bGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgXHJcbiAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2hcIiBzdHlsZT1cIm1heC1oZWlnaHQ6MzUwcHg7IG1hcmdpbi1sZWZ0OjVweFwiPlxyXG4gICAgICA8bGkgKm5nRm9yPVwibGV0IG5vdGUgb2Ygbm90ZXNcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTBcIj57e25vdGVbbmFtZUZpZWxkXSB8fCBub3RlLmNyZWF0ZWRCeU5hbWV9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzbWFsbD57e25vdGVbY29tbWVudEZpZWxkXSB8fCBub3RlLmRldGFpbHN9fSAoPGVtPnt7bm90ZVtkYXRlRmllbGRdIHx8IG5vdGUuY3JlYXRlZERhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXkgSEg6bW0nfX08L2VtPik8L3NtYWxsPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L2Rpdj5cclxuICBcclxuICA8ZGl2ICpuZ0lmPVwiIW5vdGVzIHx8IG5vdGVzLmxlbmd0aCA9PSAwXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciByb3cgYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJtYXgtaGVpZ2h0OjIwMHB4XCI+XHJcbiAgICBObyB7e3RpdGxlLnRvTG93ZXJDYXNlKCl9fVxyXG4gIDwvZGl2PiJdfQ==
@@ -1,131 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormControl, Validators } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "@angular/material/form-field";
7
- import * as i4 from "@angular/material/input";
8
- import * as i5 from "../suffix/suffix.component";
9
- export class NumberComponent {
10
- constructor() {
11
- // options: FormGroup;
12
- this.hideRequiredControl = new FormControl(true);
13
- this.hide = true; //for password only
14
- this.readonly = false;
15
- this.hint = "";
16
- this.display = "";
17
- this.placeholder = "";
18
- this.value = 0;
19
- this.width = "100%";
20
- this.valueChange = new EventEmitter();
21
- this.leave = new EventEmitter();
22
- this.enterPress = new EventEmitter();
23
- //validation input
24
- this.required = true;
25
- this.min = 0;
26
- this.max = 9000000000000000; //Math.max
27
- this.step = 1;
28
- this.infoClick = new EventEmitter();
29
- this.copyContent = false;
30
- this.clearContent = false;
31
- this.isHovered = false;
32
- //validation
33
- this.control = new FormControl(this.value, [Validators.required, Validators.min(this.min), Validators.max(this.max)]);
34
- }
35
- ngOnInit() {
36
- if (this.placeholder == "") {
37
- this.placeholder = "Enter " + this.display;
38
- }
39
- }
40
- ngAfterViewInit() {
41
- this.initControl(this.control);
42
- }
43
- initControl(control) {
44
- if (this.readonly) {
45
- control.setValidators(null);
46
- control.updateValueAndValidity();
47
- }
48
- if (!this.required && !this.readonly) {
49
- control.setValidators([Validators.minLength(this.min), Validators.maxLength(this.max)]);
50
- this.control.updateValueAndValidity();
51
- }
52
- }
53
- onMouseEnter() {
54
- this.isHovered = true;
55
- }
56
- onMouseLeave() {
57
- this.isHovered = false;
58
- }
59
- clear() {
60
- this.value = 0;
61
- this.valueChange.emit(this.value);
62
- }
63
- onInfoClick(event) {
64
- event.stopPropagation();
65
- this.infoClick.emit();
66
- }
67
- changed() {
68
- this.valueChange.emit(this.value);
69
- }
70
- leaved() {
71
- this.leave.emit();
72
- }
73
- enterPressed() {
74
- this.enterPress.emit();
75
- }
76
- validate(control) {
77
- if (this.required && control.hasError('required')) {
78
- return `Required`;
79
- }
80
- if (control.hasError('min')) {
81
- return `Minimun value is ${this.min}`;
82
- }
83
- if (control.hasError('max')) {
84
- return `Maximum value is ${this.max}`;
85
- }
86
- return "";
87
- }
88
- }
89
- NumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
90
- NumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NumberComponent, selector: "spa-number", inputs: { readonly: "readonly", hint: "hint", display: "display", placeholder: "placeholder", value: "value", width: "width", required: "required", min: "min", max: "max", step: "step", suffix: "suffix", infoMessage: "infoMessage", copyContent: "copyContent", clearContent: "clearContent" }, outputs: { valueChange: "valueChange", leave: "leave", enterPress: "enterPress", infoClick: "infoClick" }, ngImport: i0, template: "\r\n<mat-form-field hideRequiredMarker=\"true\" [hintLabel]=\"hint\" [hideRequiredMarker]=\"!required\" [ngStyle]=\"{'width':width ?? '100%'}\" style=\"margin-right: 5px;\">\r\n <mat-label>{{display}}</mat-label>\r\n <input matInput autocomplete=\"off\" type=\"number\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [(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(control)}}</mat-error>\r\n\r\n <div matSuffix class=\"suffix-icons\">\r\n <spa-suffix [label]=\"suffix\" [infoMessage]=\"infoMessage\" [copyContent]=\"copyContent\" [clearContent]=\"clearContent\" (clearClick)=\"clear()\" [isHovered]=\"isHovered\" [(value)]=\"value\"></spa-suffix>\r\n </div>\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.SuffixComponent, selector: "spa-suffix", inputs: ["label", "infoMessage", "copyContent", "isHovered", "clearContent", "value"], outputs: ["infoClick", "copyClick", "clearClick", "valueChange"] }] });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NumberComponent, decorators: [{
92
- type: Component,
93
- args: [{ selector: 'spa-number', template: "\r\n<mat-form-field hideRequiredMarker=\"true\" [hintLabel]=\"hint\" [hideRequiredMarker]=\"!required\" [ngStyle]=\"{'width':width ?? '100%'}\" style=\"margin-right: 5px;\">\r\n <mat-label>{{display}}</mat-label>\r\n <input matInput autocomplete=\"off\" type=\"number\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [(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(control)}}</mat-error>\r\n\r\n <div matSuffix class=\"suffix-icons\">\r\n <spa-suffix [label]=\"suffix\" [infoMessage]=\"infoMessage\" [copyContent]=\"copyContent\" [clearContent]=\"clearContent\" (clearClick)=\"clear()\" [isHovered]=\"isHovered\" [(value)]=\"value\"></spa-suffix>\r\n </div>\r\n</mat-form-field>\r\n" }]
94
- }], ctorParameters: function () { return []; }, propDecorators: { readonly: [{
95
- type: Input
96
- }], hint: [{
97
- type: Input
98
- }], display: [{
99
- type: Input
100
- }], placeholder: [{
101
- type: Input
102
- }], value: [{
103
- type: Input
104
- }], width: [{
105
- type: Input
106
- }], valueChange: [{
107
- type: Output
108
- }], leave: [{
109
- type: Output
110
- }], enterPress: [{
111
- type: Output
112
- }], required: [{
113
- type: Input
114
- }], min: [{
115
- type: Input
116
- }], max: [{
117
- type: Input
118
- }], step: [{
119
- type: Input
120
- }], suffix: [{
121
- type: Input
122
- }], infoMessage: [{
123
- type: Input
124
- }], infoClick: [{
125
- type: Output
126
- }], copyContent: [{
127
- type: Input
128
- }], clearContent: [{
129
- type: Input
130
- }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL251bWJlci9udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvbnVtYmVyL251bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLGVBQWU7SUFFMUI7UUF3QkEsc0JBQXNCO1FBQ3RCLHdCQUFtQixHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLFNBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxtQkFBbUI7UUFFdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixVQUFLLEdBQUcsTUFBTSxDQUFBO1FBRWIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTzFDLGtCQUFrQjtRQUNULGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUNSLFFBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVU7UUFDbEMsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUlSLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFnQ2xCLFlBQVk7UUFDWixZQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBeEZqRyxDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBb0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFFcEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RixJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBa0NELFlBQVk7UUFDVixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0QsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFLRCxRQUFRLENBQUMsT0FBb0I7UUFFM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEQsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxvQkFBb0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU8sb0JBQW9CLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUN2QztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7NEdBM0dVLGVBQWU7Z0dBQWYsZUFBZSxpY0NSNUIsazRCQVVBOzJGREZhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTswRUFrQ2IsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQVFFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtbnVtYmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9udW1iZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyID09IFwiXCIpIHtcclxuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IFwiRW50ZXIgXCIgKyB0aGlzLmRpc3BsYXk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXRDb250cm9sKHRoaXMuY29udHJvbClcclxuICB9XHJcblxyXG4gIGluaXRDb250cm9sKGNvbnRyb2w6IEZvcm1Db250cm9sKSB7XHJcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnJlcXVpcmVkICYmICF0aGlzLnJlYWRvbmx5KSB7XHJcblxyXG4gICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWluKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXgpXSk7XHJcbiAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBvcHRpb25zOiBGb3JtR3JvdXA7XHJcbiAgaGlkZVJlcXVpcmVkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0cnVlKTtcclxuICBoaWRlID0gdHJ1ZTsgLy9mb3IgcGFzc3dvcmQgb25seVxyXG5cclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpbnQgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJcIjtcclxuICBASW5wdXQoKSB2YWx1ZSA9IDA7XHJcbiAgQElucHV0KCkgd2lkdGggPSBcIjEwMCVcIlxyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBlbnRlclByZXNzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8vdmFsaWRhdGlvbiBpbnB1dFxyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBtaW4gPSAwO1xyXG4gIEBJbnB1dCgpIG1heCA9IDkwMDAwMDAwMDAwMDAwMDA7IC8vTWF0aC5tYXhcclxuICBASW5wdXQoKSBzdGVwID0gMTtcclxuXHJcbiAgQElucHV0KCkgc3VmZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcclxuICBAT3V0cHV0KCkgaW5mb0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIGNvcHlDb250ZW50ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2xlYXJDb250ZW50ID0gZmFsc2U7XHJcbiAgaXNIb3ZlcmVkID0gZmFsc2U7XHJcbiAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0hvdmVyZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0hvdmVyZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IDA7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkluZm9DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmluZm9DbGljay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2hhbmdlZCgpIHtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGxlYXZlZCgpIHtcclxuICAgIHRoaXMubGVhdmUuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZW50ZXJQcmVzc2VkKCkge1xyXG4gICAgdGhpcy5lbnRlclByZXNzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8vdmFsaWRhdGlvblxyXG4gIGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodGhpcy52YWx1ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKHRoaXMubWluKSwgVmFsaWRhdG9ycy5tYXgodGhpcy5tYXgpXSk7XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEZvcm1Db250cm9sKTogc3RyaW5nIHtcclxuXHJcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAgJiYgY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICByZXR1cm4gYFJlcXVpcmVkYDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcignbWluJykpIHtcclxuICAgICAgcmV0dXJuIGBNaW5pbXVuIHZhbHVlIGlzICR7dGhpcy5taW59YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcignbWF4JykpIHtcclxuICAgICAgcmV0dXJuIGBNYXhpbXVtIHZhbHVlIGlzICR7dGhpcy5tYXh9YDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG59XHJcbiIsIlxyXG48bWF0LWZvcm0tZmllbGQgaGlkZVJlcXVpcmVkTWFya2VyPVwidHJ1ZVwiIFtoaW50TGFiZWxdPVwiaGludFwiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwiIXJlcXVpcmVkXCIgW25nU3R5bGVdPVwieyd3aWR0aCc6d2lkdGggPz8gJzEwMCUnfVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+XHJcbiAgPG1hdC1sYWJlbD57e2Rpc3BsYXl9fTwvbWF0LWxhYmVsPlxyXG4gIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiB0eXBlPVwibnVtYmVyXCIgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiIFtzdGVwXT1cInN0ZXBcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJjaGFuZ2VkKClcIiAoYmx1cik9XCJsZWF2ZWQoKVwiIChrZXl1cC5lbnRlcik9XCJlbnRlclByZXNzZWQoKVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgLz5cclxuICA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkXCI+e3t2YWxpZGF0ZShjb250cm9sKX19PC9tYXQtZXJyb3I+XHJcblxyXG4gIDxkaXYgbWF0U3VmZml4IGNsYXNzPVwic3VmZml4LWljb25zXCI+XHJcbiAgICA8c3BhLXN1ZmZpeCBbbGFiZWxdPVwic3VmZml4XCIgW2luZm9NZXNzYWdlXT1cImluZm9NZXNzYWdlXCIgW2NvcHlDb250ZW50XT1cImNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJjbGVhckNvbnRlbnRcIiAoY2xlYXJDbGljayk9XCJjbGVhcigpXCIgW2lzSG92ZXJlZF09XCJpc0hvdmVyZWRcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiPjwvc3BhLXN1ZmZpeD5cclxuICA8L2Rpdj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuIl19
@@ -1,92 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/message.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/forms";
6
- import * as i4 from "@angular/material/checkbox";
7
- import * as i5 from "@angular/material/button";
8
- import * as i6 from "@angular/material/icon";
9
- import * as i7 from "@angular/material/form-field";
10
- import * as i8 from "@angular/material/input";
11
- import * as i9 from "@angular/material/tooltip";
12
- import * as i10 from "../text/text.component";
13
- import * as i11 from "../date/date.component";
14
- import * as i12 from "../select-lite/select-lite.component";
15
- import * as i13 from "../multi-text/multi-text.component";
16
- import * as i14 from "../multi-select/multi-select.component";
17
- export class OptionComponent {
18
- constructor(messageService) {
19
- this.messageService = messageService;
20
- this.optionValue = "";
21
- this.optionDisplay = "";
22
- this.readonly = false;
23
- this.type = "text";
24
- this.value = "";
25
- this.display = "";
26
- this.show = false;
27
- this.required = false;
28
- this.copyContent = false;
29
- this.valueChange = new EventEmitter();
30
- this.enterPress = new EventEmitter();
31
- }
32
- ngOnInit() {
33
- this.OGValue = this.value;
34
- }
35
- changed() {
36
- this.valueChange.emit(this.value);
37
- }
38
- dateChanged(x) {
39
- this.value = x;
40
- this.changed();
41
- }
42
- enterPressed() {
43
- this.enterPress.emit();
44
- }
45
- resetValue() {
46
- this.value = this.OGValue;
47
- this.changed();
48
- }
49
- onInfoClick(event) {
50
- event.stopPropagation();
51
- if (this.infoMessage) {
52
- this.messageService.info(this.infoMessage);
53
- }
54
- }
55
- }
56
- OptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OptionComponent, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
57
- OptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OptionComponent, selector: "spa-option", inputs: { options: "options", optionValue: "optionValue", optionDisplay: "optionDisplay", readonly: "readonly", type: "type", value: "value", display: "display", show: "show", required: "required", infoMessage: "infoMessage", copyContent: "copyContent", suffix: "suffix", loadAction: "loadAction" }, outputs: { valueChange: "valueChange", enterPress: "enterPress" }, ngImport: i0, template: "\r\n<div class=\"tin-row gap-0\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"margin-right:0px\" [(ngModel)]=\"show\" (change)=\"resetValue()\" labelPosition=\"after\" [disabled]=\"required\" >{{display}}</mat-checkbox>\r\n\r\n <mat-form-field style=\"margin-right:1px;width: 0px;\" >\r\n <input matInput />\r\n </mat-form-field>\r\n\r\n <ng-container *ngIf=\"show\" [ngSwitch]=\"type\" style=\"margin-left: 5px;\">\r\n\r\n <spa-date class=\"opt\" *ngSwitchCase=\"'date'\" [display]=\"display\" width=\"120px\" [(value)]=\"value\" [display]=\"display\" (valueChange)=\"dateChanged($event)\"\r\n ></spa-date>\r\n\r\n <spa-multi-select class=\"opt\" *ngSwitchCase=\"'multi-select'\" [display]=\"display\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"\r\n [copyContent]=\"copyContent\" [loadAction]=\"loadAction\"\r\n ></spa-multi-select>\r\n\r\n <spa-multi-text class=\"opt\" *ngSwitchCase=\"'multi-text'\" [display]=\"display\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"\r\n [copyContent]=\"copyContent\" [loadAction]=\"loadAction\"\r\n ></spa-multi-text>\r\n\r\n <spa-select-lite class=\"opt\" *ngSwitchCase=\"'select'\" [display]=\"display\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"\r\n [copyContent]=\"copyContent\" [loadAction]=\"loadAction\"\r\n ></spa-select-lite>\r\n\r\n <spa-text class=\"opt\" *ngSwitchDefault [display]=\"display\" (keyup.enter)=\"enterPressed()\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"\r\n [suffix]=\"suffix\" [copyContent]=\"copyContent\" [loadAction]=\"loadAction\"\r\n ></spa-text>\r\n\r\n </ng-container>\r\n\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\" style=\"opacity: 1;margin: 0px;padding: 0px;\">\r\n <mat-icon style=\"color: steelblue;font-size: 18px;\">info</mat-icon>\r\n </button>\r\n\r\n</div>\r\n", styles: [".opt{margin-left:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i10.TextComponent, selector: "spa-text", inputs: ["appearance", "readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "copyContent", "clearContent", "options", "optionDisplay", "optionValue", "loadAction", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i11.DateComponent, selector: "spa-date", inputs: ["required", "min", "max", "readonly", "hint", "value", "display", "placeholder", "width", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i12.SelectLiteComponent, selector: "spa-select-lite" }, { kind: "component", type: i13.MultiTextComponent, selector: "spa-multi-text", inputs: ["display", "value", "readonly", "required", "hint", "strict", "suffix", "infoMessage", "copyContent", "clearContent", "options", "optionDisplay", "optionValue", "loadAction"], outputs: ["valueChange", "hoverChange"] }, { kind: "component", type: i14.MultiSelectComponent, selector: "spa-multi-select", inputs: ["display", "value", "readonly", "required", "hint", "options", "optionDisplay", "optionValue", "infoMessage", "copyContent", "clearContent", "nullable", "placeholder", "width", "suffix", "loadAction"], outputs: ["valueChange", "hoverChange"] }] });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OptionComponent, decorators: [{
59
- type: Component,
60
- args: [{ selector: 'spa-option', template: "\r\n<div class=\"tin-row gap-0\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"margin-right:0px\" [(ngModel)]=\"show\" (change)=\"resetValue()\" labelPosition=\"after\" [disabled]=\"required\" >{{display}}</mat-checkbox>\r\n\r\n <mat-form-field style=\"margin-right:1px;width: 0px;\" >\r\n <input matInput />\r\n </mat-form-field>\r\n\r\n <ng-container *ngIf=\"show\" [ngSwitch]=\"type\" style=\"margin-left: 5px;\">\r\n\r\n <spa-date class=\"opt\" *ngSwitchCase=\"'date'\" [display]=\"display\" width=\"120px\" [(value)]=\"value\" [display]=\"display\" (valueChange)=\"dateChanged($event)\"\r\n ></spa-date>\r\n\r\n <spa-multi-select class=\"opt\" *ngSwitchCase=\"'multi-select'\" [display]=\"display\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"\r\n [copyContent]=\"copyContent\" [loadAction]=\"loadAction\"\r\n ></spa-multi-select>\r\n\r\n <spa-multi-text class=\"opt\" *ngSwitchCase=\"'multi-text'\" [display]=\"display\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"\r\n [copyContent]=\"copyContent\" [loadAction]=\"loadAction\"\r\n ></spa-multi-text>\r\n\r\n <spa-select-lite class=\"opt\" *ngSwitchCase=\"'select'\" [display]=\"display\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"\r\n [copyContent]=\"copyContent\" [loadAction]=\"loadAction\"\r\n ></spa-select-lite>\r\n\r\n <spa-text class=\"opt\" *ngSwitchDefault [display]=\"display\" (keyup.enter)=\"enterPressed()\" [options]=\"options\" [optionDisplay]=\"optionDisplay\" [optionValue]=\"optionValue\" [(value)]=\"value\" (valueChange)=\"changed()\"\r\n [suffix]=\"suffix\" [copyContent]=\"copyContent\" [loadAction]=\"loadAction\"\r\n ></spa-text>\r\n\r\n </ng-container>\r\n\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\" style=\"opacity: 1;margin: 0px;padding: 0px;\">\r\n <mat-icon style=\"color: steelblue;font-size: 18px;\">info</mat-icon>\r\n </button>\r\n\r\n</div>\r\n", styles: [".opt{margin-left:5px}\n"] }]
61
- }], ctorParameters: function () { return [{ type: i1.MessageService }]; }, propDecorators: { options: [{
62
- type: Input
63
- }], optionValue: [{
64
- type: Input
65
- }], optionDisplay: [{
66
- type: Input
67
- }], readonly: [{
68
- type: Input
69
- }], type: [{
70
- type: Input
71
- }], value: [{
72
- type: Input
73
- }], display: [{
74
- type: Input
75
- }], show: [{
76
- type: Input
77
- }], required: [{
78
- type: Input
79
- }], infoMessage: [{
80
- type: Input
81
- }], copyContent: [{
82
- type: Input
83
- }], suffix: [{
84
- type: Input
85
- }], loadAction: [{
86
- type: Input
87
- }], valueChange: [{
88
- type: Output
89
- }], enterPress: [{
90
- type: Output
91
- }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jb21wb25lbnRzL29wdGlvbi9vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvb3B0aW9uL29wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBUy9FLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVd6QyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtuQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUEzQmEsQ0FBQztJQUV4RCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUF5QkQsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNoQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFHRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDOzs0R0F4RFUsZUFBZTtnR0FBZixlQUFlLGlhQ1Q1Qix5dEVBcUNBOzJGRDVCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7cUdBZ0JiLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29wdGlvbi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5PR1ZhbHVlID0gdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIE9HVmFsdWVcclxuXHJcblxyXG5cclxuICBASW5wdXQoKSBvcHRpb25zOiBhbnk7XHJcbiAgQElucHV0KCkgb3B0aW9uVmFsdWUgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIG9wdGlvbkRpc3BsYXkgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHR5cGUgPSBcInRleHRcIjtcclxuICBASW5wdXQoKSB2YWx1ZSA9IFwiXCI7XHJcbiAgQElucHV0KCkgZGlzcGxheSA9IFwiXCI7XHJcbiAgQElucHV0KCkgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBjb3B5Q29udGVudCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBsb2FkQWN0aW9uOiBBY3Rpb247XHJcblxyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZW50ZXJQcmVzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY2hhbmdlZCgpIHtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGRhdGVDaGFuZ2VkKHgpe1xyXG4gICAgdGhpcy52YWx1ZSA9IHhcclxuICAgIHRoaXMuY2hhbmdlZCgpXHJcbiAgfVxyXG5cclxuICBlbnRlclByZXNzZWQoKXtcclxuICAgIHRoaXMuZW50ZXJQcmVzcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICByZXNldFZhbHVlKCl7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5PR1ZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25JbmZvQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmluZm9NZXNzYWdlKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuaW5mbyh0aGlzLmluZm9NZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJ0aW4tcm93IGdhcC0wXCI+XHJcblxyXG4gIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6MHB4XCIgWyhuZ01vZGVsKV09XCJzaG93XCIgKGNoYW5nZSk9XCJyZXNldFZhbHVlKClcIiBsYWJlbFBvc2l0aW9uPVwiYWZ0ZXJcIiBbZGlzYWJsZWRdPVwicmVxdWlyZWRcIiA+e3tkaXNwbGF5fX08L21hdC1jaGVja2JveD5cclxuXHJcbiAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjFweDt3aWR0aDogMHB4O1wiID5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCAvPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93XCIgW25nU3dpdGNoXT1cInR5cGVcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1cHg7XCI+XHJcblxyXG4gICAgPHNwYS1kYXRlIGNsYXNzPVwib3B0XCIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiIFtkaXNwbGF5XT1cImRpc3BsYXlcIiB3aWR0aD1cIjEyMHB4XCIgIFsodmFsdWUpXT1cInZhbHVlXCIgW2Rpc3BsYXldPVwiZGlzcGxheVwiICh2YWx1ZUNoYW5nZSk9XCJkYXRlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgID48L3NwYS1kYXRlPlxyXG5cclxuICAgIDxzcGEtbXVsdGktc2VsZWN0IGNsYXNzPVwib3B0XCIgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aS1zZWxlY3QnXCIgW2Rpc3BsYXldPVwiZGlzcGxheVwiICBbb3B0aW9uc109XCJvcHRpb25zXCIgW29wdGlvbkRpc3BsYXldPVwib3B0aW9uRGlzcGxheVwiIFtvcHRpb25WYWx1ZV09XCJvcHRpb25WYWx1ZVwiIFsodmFsdWUpXT1cInZhbHVlXCIgKHZhbHVlQ2hhbmdlKT1cImNoYW5nZWQoKVwiXHJcbiAgICAgIFtjb3B5Q29udGVudF09XCJjb3B5Q29udGVudFwiIFtsb2FkQWN0aW9uXT1cImxvYWRBY3Rpb25cIlxyXG4gICAgPjwvc3BhLW11bHRpLXNlbGVjdD5cclxuXHJcbiAgICA8c3BhLW11bHRpLXRleHQgY2xhc3M9XCJvcHRcIiAqbmdTd2l0Y2hDYXNlPVwiJ211bHRpLXRleHQnXCIgW2Rpc3BsYXldPVwiZGlzcGxheVwiICBbb3B0aW9uc109XCJvcHRpb25zXCIgW29wdGlvbkRpc3BsYXldPVwib3B0aW9uRGlzcGxheVwiIFtvcHRpb25WYWx1ZV09XCJvcHRpb25WYWx1ZVwiIFsodmFsdWUpXT1cInZhbHVlXCIgKHZhbHVlQ2hhbmdlKT1cImNoYW5nZWQoKVwiXHJcbiAgICAgIFtjb3B5Q29udGVudF09XCJjb3B5Q29udGVudFwiIFtsb2FkQWN0aW9uXT1cImxvYWRBY3Rpb25cIlxyXG4gICAgPjwvc3BhLW11bHRpLXRleHQ+XHJcblxyXG4gICAgPHNwYS1zZWxlY3QtbGl0ZSBjbGFzcz1cIm9wdFwiICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiIFtkaXNwbGF5XT1cImRpc3BsYXlcIiAgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtvcHRpb25EaXNwbGF5XT1cIm9wdGlvbkRpc3BsYXlcIiBbb3B0aW9uVmFsdWVdPVwib3B0aW9uVmFsdWVcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiICh2YWx1ZUNoYW5nZSk9XCJjaGFuZ2VkKClcIlxyXG4gICAgICBbY29weUNvbnRlbnRdPVwiY29weUNvbnRlbnRcIiBbbG9hZEFjdGlvbl09XCJsb2FkQWN0aW9uXCJcclxuICAgID48L3NwYS1zZWxlY3QtbGl0ZT5cclxuXHJcbiAgICA8c3BhLXRleHQgY2xhc3M9XCJvcHRcIiAqbmdTd2l0Y2hEZWZhdWx0IFtkaXNwbGF5XT1cImRpc3BsYXlcIiAoa2V5dXAuZW50ZXIpPVwiZW50ZXJQcmVzc2VkKClcIiAgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtvcHRpb25EaXNwbGF5XT1cIm9wdGlvbkRpc3BsYXlcIiBbb3B0aW9uVmFsdWVdPVwib3B0aW9uVmFsdWVcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiICh2YWx1ZUNoYW5nZSk9XCJjaGFuZ2VkKClcIlxyXG4gICAgICBbc3VmZml4XT1cInN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJjb3B5Q29udGVudFwiIFtsb2FkQWN0aW9uXT1cImxvYWRBY3Rpb25cIlxyXG4gICAgPjwvc3BhLXRleHQ+XHJcblxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImluZm9NZXNzYWdlXCIgKGNsaWNrKT1cIm9uSW5mb0NsaWNrKCRldmVudClcIiBtYXRUb29sdGlwPVwiSW5mb1wiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgc3R5bGU9XCJvcGFjaXR5OiAxO21hcmdpbjogMHB4O3BhZGRpbmc6IDBweDtcIj5cclxuICAgIDxtYXQtaWNvbiBzdHlsZT1cImNvbG9yOiBzdGVlbGJsdWU7Zm9udC1zaXplOiAxOHB4O1wiPmluZm88L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==