@resolveio/client-lib-core 0.0.1

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 (350) hide show
  1. package/esm2020/lib/account-manager.service.mjs +213 -0
  2. package/esm2020/lib/auth/auth-guard.service.mjs +137 -0
  3. package/esm2020/lib/auth/auth-permissions.service.mjs +24 -0
  4. package/esm2020/lib/auth/auth.service.mjs +241 -0
  5. package/esm2020/lib/auth/auth365.component.mjs +44 -0
  6. package/esm2020/lib/auth/can-deactivate-guard.service.mjs +13 -0
  7. package/esm2020/lib/auth/enroll.component.mjs +81 -0
  8. package/esm2020/lib/auth/forgot-password.component.mjs +82 -0
  9. package/esm2020/lib/core.component.mjs +488 -0
  10. package/esm2020/lib/core.module.mjs +179 -0
  11. package/esm2020/lib/core.service.mjs +96 -0
  12. package/esm2020/lib/directive/focus.mjs +22 -0
  13. package/esm2020/lib/directive/scroll.mjs +55 -0
  14. package/esm2020/lib/home/about-us.component.mjs +34 -0
  15. package/esm2020/lib/home/contact-us.component.mjs +57 -0
  16. package/esm2020/lib/home/demo.component.mjs +59 -0
  17. package/esm2020/lib/home/home.component.mjs +105 -0
  18. package/esm2020/lib/home/home.module.mjs +50 -0
  19. package/esm2020/lib/logger/logger.component.mjs +221 -0
  20. package/esm2020/lib/models/app-status.model.mjs +2 -0
  21. package/esm2020/lib/models/collection-document.model.mjs +2 -0
  22. package/esm2020/lib/models/cron-job.model.mjs +2 -0
  23. package/esm2020/lib/models/dialog.model.mjs +2 -0
  24. package/esm2020/lib/models/file.model.mjs +2 -0
  25. package/esm2020/lib/models/log-method-latency.model.mjs +2 -0
  26. package/esm2020/lib/models/navbar-main-tab.model.mjs +2 -0
  27. package/esm2020/lib/models/pagination.model.mjs +2 -0
  28. package/esm2020/lib/models/permission.model.mjs +2 -0
  29. package/esm2020/lib/models/select-data-label.model.mjs +2 -0
  30. package/esm2020/lib/models/subscription.model.mjs +2 -0
  31. package/esm2020/lib/models/support-ticket.model.mjs +2 -0
  32. package/esm2020/lib/models/user-group.model.mjs +2 -0
  33. package/esm2020/lib/models/user.model.mjs +2 -0
  34. package/esm2020/lib/offline-db.mjs +519 -0
  35. package/esm2020/lib/offline-manager.service.mjs +107 -0
  36. package/esm2020/lib/pipes/domsanitizor.pipe.mjs +28 -0
  37. package/esm2020/lib/pipes/filter.pipe.mjs +36 -0
  38. package/esm2020/lib/pipes/json-parse.pipe.mjs +29 -0
  39. package/esm2020/lib/pipes/minus-currency.pipe.mjs +16 -0
  40. package/esm2020/lib/pipes/phone.pipe.mjs +47 -0
  41. package/esm2020/lib/pipes/pipe.module.mjs +54 -0
  42. package/esm2020/lib/pipes/reverse-list.pipe.mjs +17 -0
  43. package/esm2020/lib/pipes/titlecase.pipe.mjs +22 -0
  44. package/esm2020/lib/resolveio-class.mjs +41 -0
  45. package/esm2020/lib/shared/shared.module.mjs +91 -0
  46. package/esm2020/lib/socket-manager.service.mjs +360 -0
  47. package/esm2020/lib/socket.service.mjs +129 -0
  48. package/esm2020/lib/standard-pages/contactus/contactus.component.mjs +45 -0
  49. package/esm2020/lib/standard-pages/faq/faq.component.mjs +45 -0
  50. package/esm2020/lib/standard-pages/features/features.component.mjs +23 -0
  51. package/esm2020/lib/standard-pages/home/home.component.mjs +38 -0
  52. package/esm2020/lib/standard-pages/howitwork/howitwork.component.mjs +23 -0
  53. package/esm2020/lib/standard-pages/loginsignup/loginsignup.component.mjs +23 -0
  54. package/esm2020/lib/standard-pages/pricing/pricing.component.mjs +37 -0
  55. package/esm2020/lib/standard-pages/standard-pages.module.mjs +69 -0
  56. package/esm2020/lib/support-ticket/detail/support-ticket-detail.component.mjs +204 -0
  57. package/esm2020/lib/support-ticket/edit/support-ticket-edit.component.mjs +122 -0
  58. package/esm2020/lib/support-ticket/list/support-ticket-list.component.mjs +137 -0
  59. package/esm2020/lib/support-ticket/new/support-ticket-new.component.mjs +115 -0
  60. package/esm2020/lib/support-ticket/support-ticket.component.mjs +63 -0
  61. package/esm2020/lib/support-ticket/support-ticket.module.mjs +57 -0
  62. package/esm2020/lib/support-ticket/support-ticket.routing.mjs +20 -0
  63. package/esm2020/lib/support-ticket/support-ticket.service.mjs +17 -0
  64. package/esm2020/lib/token-manager.service.mjs +24 -0
  65. package/esm2020/lib/user-settings/settings/users-settings.component.mjs +312 -0
  66. package/esm2020/lib/user-settings/user-settings.component.mjs +57 -0
  67. package/esm2020/lib/user-settings/user-settings.module.mjs +58 -0
  68. package/esm2020/lib/user-settings/user-settings.permission.mjs +10 -0
  69. package/esm2020/lib/user-settings/user-settings.routing.mjs +14 -0
  70. package/esm2020/lib/user-settings/user-settings.service.mjs +17 -0
  71. package/esm2020/lib/util/action-name.helper.mjs +9 -0
  72. package/esm2020/lib/util/aws.service.mjs +79 -0
  73. package/esm2020/lib/util/common.helper.mjs +140 -0
  74. package/esm2020/lib/util/validation.service.mjs +177 -0
  75. package/esm2020/lib/util/window-resize.service.mjs +24 -0
  76. package/esm2020/lib/util/window.service.mjs +16 -0
  77. package/esm2020/lib/widgets/alert/alert.model.mjs +2 -0
  78. package/esm2020/lib/widgets/alert/alert.service.mjs +76 -0
  79. package/esm2020/lib/widgets/chartjs/chart.component.mjs +86 -0
  80. package/esm2020/lib/widgets/chartjs/chart.module.mjs +17 -0
  81. package/esm2020/lib/widgets/collapse-table/collapse-table.component.mjs +79 -0
  82. package/esm2020/lib/widgets/collapse-table/collapse-table.module.mjs +36 -0
  83. package/esm2020/lib/widgets/data-table/data-table.component.mjs +77 -0
  84. package/esm2020/lib/widgets/data-table/data-table.model.mjs +2 -0
  85. package/esm2020/lib/widgets/data-table/data-table.module.mjs +43 -0
  86. package/esm2020/lib/widgets/date-shortcut/date-shortcut.component.mjs +195 -0
  87. package/esm2020/lib/widgets/date-shortcut/date-shortcut.module.mjs +34 -0
  88. package/esm2020/lib/widgets/dialog/dialog.confirm.content.mjs +63 -0
  89. package/esm2020/lib/widgets/dialog/dialog.error.content.mjs +57 -0
  90. package/esm2020/lib/widgets/dialog/dialog.input.content.mjs +197 -0
  91. package/esm2020/lib/widgets/dialog/dialog.login.content.mjs +348 -0
  92. package/esm2020/lib/widgets/dialog/dialog.notify.content.mjs +57 -0
  93. package/esm2020/lib/widgets/dialog/dialog.register.content.mjs +330 -0
  94. package/esm2020/lib/widgets/dialog/dialog.select-data-labels.content.mjs +191 -0
  95. package/esm2020/lib/widgets/dialog/dialog.select-datetime.content.mjs +140 -0
  96. package/esm2020/lib/widgets/dialog/dialog.service.mjs +71 -0
  97. package/esm2020/lib/widgets/file/file-upload.component.mjs +440 -0
  98. package/esm2020/lib/widgets/file/file-upload.module.mjs +50 -0
  99. package/esm2020/lib/widgets/form-button/form-button.component.mjs +91 -0
  100. package/esm2020/lib/widgets/form-button/form-button.module.mjs +30 -0
  101. package/esm2020/lib/widgets/navbar-main/navbar-main.component.mjs +209 -0
  102. package/esm2020/lib/widgets/navbar-module/navbar-module.component.mjs +138 -0
  103. package/esm2020/lib/widgets/navbar-module/navbar-module.model.mjs +2 -0
  104. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/ng-bootstrap-tour.service.mjs +14 -0
  105. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/ng-bootstrap.module.mjs +34 -0
  106. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/step-option.interface.mjs +2 -0
  107. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/tour-anchor.directive.mjs +76 -0
  108. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/tour-step-template.component.mjs +70 -0
  109. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/tour-step-template.service.mjs +10 -0
  110. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +38 -0
  111. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +26 -0
  112. package/esm2020/lib/widgets/scheduler/scheduler.component.mjs +185 -0
  113. package/esm2020/lib/widgets/scheduler/scheduler.module.mjs +39 -0
  114. package/esm2020/lib/widgets/sort-table/sort-table-header.component.mjs +67 -0
  115. package/esm2020/lib/widgets/sort-table/sort-table-ngfor.component.mjs +48 -0
  116. package/esm2020/lib/widgets/sort-table/sort-table.directive.mjs +174 -0
  117. package/esm2020/lib/widgets/sort-table/sort-table.module.mjs +40 -0
  118. package/esm2020/lib/widgets/user-role/user-role.component.mjs +27 -0
  119. package/esm2020/lib/widgets/user-role/user-role.module.mjs +26 -0
  120. package/esm2020/public_api.mjs +109 -0
  121. package/esm2020/resolveio-client-lib-core.mjs +5 -0
  122. package/fesm2015/resolveio-client-lib-core.mjs +8856 -0
  123. package/fesm2015/resolveio-client-lib-core.mjs.map +1 -0
  124. package/fesm2020/resolveio-client-lib-core.mjs +8849 -0
  125. package/fesm2020/resolveio-client-lib-core.mjs.map +1 -0
  126. package/lib/account-manager.service.d.ts +42 -0
  127. package/lib/auth/auth-guard.service.d.ts +25 -0
  128. package/lib/auth/auth-permissions.service.d.ts +10 -0
  129. package/lib/auth/auth.service.d.ts +29 -0
  130. package/lib/auth/auth365.component.d.ts +20 -0
  131. package/lib/auth/can-deactivate-guard.service.d.ts +11 -0
  132. package/lib/auth/enroll.component.d.ts +28 -0
  133. package/lib/auth/forgot-password.component.d.ts +28 -0
  134. package/lib/core.component.d.ts +69 -0
  135. package/lib/core.module.d.ts +32 -0
  136. package/lib/core.service.d.ts +53 -0
  137. package/lib/directive/focus.d.ts +10 -0
  138. package/lib/directive/scroll.d.ts +20 -0
  139. package/lib/home/about-us.component.d.ts +15 -0
  140. package/lib/home/contact-us.component.d.ts +20 -0
  141. package/lib/home/demo.component.d.ts +25 -0
  142. package/lib/home/home.component.d.ts +33 -0
  143. package/lib/home/home.module.d.ts +13 -0
  144. package/lib/logger/logger.component.d.ts +37 -0
  145. package/lib/models/app-status.model.d.ts +4 -0
  146. package/lib/models/collection-document.model.d.ts +6 -0
  147. package/lib/models/cron-job.model.d.ts +13 -0
  148. package/lib/models/dialog.model.d.ts +18 -0
  149. package/lib/models/file.model.d.ts +9 -0
  150. package/lib/models/log-method-latency.model.d.ts +7 -0
  151. package/lib/models/navbar-main-tab.model.d.ts +14 -0
  152. package/lib/models/pagination.model.d.ts +17 -0
  153. package/lib/models/permission.model.d.ts +13 -0
  154. package/lib/models/select-data-label.model.d.ts +9 -0
  155. package/lib/models/subscription.model.d.ts +19 -0
  156. package/lib/models/support-ticket.model.d.ts +71 -0
  157. package/lib/models/user-group.model.d.ts +19 -0
  158. package/lib/models/user.model.d.ts +70 -0
  159. package/lib/offline-db.d.ts +28 -0
  160. package/lib/offline-manager.service.d.ts +23 -0
  161. package/lib/pipes/domsanitizor.pipe.d.ts +10 -0
  162. package/lib/pipes/filter.pipe.d.ts +12 -0
  163. package/lib/pipes/json-parse.pipe.d.ts +7 -0
  164. package/lib/pipes/minus-currency.pipe.d.ts +7 -0
  165. package/lib/pipes/phone.pipe.d.ts +7 -0
  166. package/lib/pipes/pipe.module.d.ts +13 -0
  167. package/lib/pipes/reverse-list.pipe.d.ts +6 -0
  168. package/lib/pipes/titlecase.pipe.d.ts +7 -0
  169. package/lib/resolveio-class.d.ts +26 -0
  170. package/lib/shared/shared.module.d.ts +16 -0
  171. package/lib/socket-manager.service.d.ts +33 -0
  172. package/lib/socket.service.d.ts +33 -0
  173. package/lib/standard-pages/contactus/contactus.component.d.ts +17 -0
  174. package/lib/standard-pages/faq/faq.component.d.ts +17 -0
  175. package/lib/standard-pages/features/features.component.d.ts +12 -0
  176. package/lib/standard-pages/home/home.component.d.ts +14 -0
  177. package/lib/standard-pages/howitwork/howitwork.component.d.ts +12 -0
  178. package/lib/standard-pages/loginsignup/loginsignup.component.d.ts +12 -0
  179. package/lib/standard-pages/pricing/pricing.component.d.ts +14 -0
  180. package/lib/standard-pages/standard-pages.module.d.ts +17 -0
  181. package/lib/support-ticket/detail/support-ticket-detail.component.d.ts +32 -0
  182. package/lib/support-ticket/edit/support-ticket-edit.component.d.ts +30 -0
  183. package/lib/support-ticket/list/support-ticket-list.component.d.ts +26 -0
  184. package/lib/support-ticket/new/support-ticket-new.component.d.ts +26 -0
  185. package/lib/support-ticket/support-ticket.component.d.ts +20 -0
  186. package/lib/support-ticket/support-ticket.module.d.ts +16 -0
  187. package/lib/support-ticket/support-ticket.routing.d.ts +3 -0
  188. package/lib/support-ticket/support-ticket.service.d.ts +9 -0
  189. package/lib/token-manager.service.d.ts +11 -0
  190. package/lib/user-settings/settings/users-settings.component.d.ts +57 -0
  191. package/lib/user-settings/user-settings.component.d.ts +20 -0
  192. package/lib/user-settings/user-settings.module.d.ts +15 -0
  193. package/lib/user-settings/user-settings.permission.d.ts +2 -0
  194. package/lib/user-settings/user-settings.routing.d.ts +3 -0
  195. package/lib/user-settings/user-settings.service.d.ts +9 -0
  196. package/lib/util/action-name.helper.d.ts +1 -0
  197. package/lib/util/aws.service.d.ts +16 -0
  198. package/lib/util/common.helper.d.ts +12 -0
  199. package/lib/util/validation.service.d.ts +85 -0
  200. package/lib/util/window-resize.service.d.ts +12 -0
  201. package/lib/util/window.service.d.ts +6 -0
  202. package/lib/widgets/alert/alert.model.d.ts +1 -0
  203. package/lib/widgets/alert/alert.service.d.ts +11 -0
  204. package/lib/widgets/chartjs/chart.component.d.ts +22 -0
  205. package/lib/widgets/chartjs/chart.module.d.ts +8 -0
  206. package/lib/widgets/collapse-table/collapse-table.component.d.ts +23 -0
  207. package/lib/widgets/collapse-table/collapse-table.module.d.ts +9 -0
  208. package/lib/widgets/data-table/data-table.component.d.ts +23 -0
  209. package/lib/widgets/data-table/data-table.model.d.ts +13 -0
  210. package/lib/widgets/data-table/data-table.module.d.ts +12 -0
  211. package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +20 -0
  212. package/lib/widgets/date-shortcut/date-shortcut.module.d.ts +10 -0
  213. package/lib/widgets/dialog/dialog.confirm.content.d.ts +12 -0
  214. package/lib/widgets/dialog/dialog.error.content.d.ts +11 -0
  215. package/lib/widgets/dialog/dialog.input.content.d.ts +18 -0
  216. package/lib/widgets/dialog/dialog.login.content.d.ts +16 -0
  217. package/lib/widgets/dialog/dialog.notify.content.d.ts +11 -0
  218. package/lib/widgets/dialog/dialog.register.content.d.ts +13 -0
  219. package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +22 -0
  220. package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +16 -0
  221. package/lib/widgets/dialog/dialog.service.d.ts +18 -0
  222. package/lib/widgets/file/file-upload.component.d.ts +49 -0
  223. package/lib/widgets/file/file-upload.module.d.ts +14 -0
  224. package/lib/widgets/form-button/form-button.component.d.ts +14 -0
  225. package/lib/widgets/form-button/form-button.module.d.ts +9 -0
  226. package/lib/widgets/navbar-main/navbar-main.component.d.ts +52 -0
  227. package/lib/widgets/navbar-module/navbar-module.component.d.ts +24 -0
  228. package/lib/widgets/navbar-module/navbar-module.model.d.ts +13 -0
  229. package/lib/widgets/ngx-tour-ng-bootstrap/ng-bootstrap-tour.service.d.ts +7 -0
  230. package/lib/widgets/ngx-tour-ng-bootstrap/ng-bootstrap.module.d.ts +17 -0
  231. package/lib/widgets/ngx-tour-ng-bootstrap/step-option.interface.d.ts +5 -0
  232. package/lib/widgets/ngx-tour-ng-bootstrap/tour-anchor.directive.d.ts +26 -0
  233. package/lib/widgets/ngx-tour-ng-bootstrap/tour-step-template.component.d.ts +20 -0
  234. package/lib/widgets/ngx-tour-ng-bootstrap/tour-step-template.service.d.ts +9 -0
  235. package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +17 -0
  236. package/lib/widgets/responsive-button-group/responsive-button-group.module.d.ts +8 -0
  237. package/lib/widgets/scheduler/scheduler.component.d.ts +50 -0
  238. package/lib/widgets/scheduler/scheduler.module.d.ts +11 -0
  239. package/lib/widgets/sort-table/sort-table-header.component.d.ts +23 -0
  240. package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +17 -0
  241. package/lib/widgets/sort-table/sort-table.directive.d.ts +48 -0
  242. package/lib/widgets/sort-table/sort-table.module.d.ts +11 -0
  243. package/lib/widgets/user-role/user-role.component.d.ts +10 -0
  244. package/lib/widgets/user-role/user-role.module.d.ts +8 -0
  245. package/package.json +72 -0
  246. package/public_api.d.ts +105 -0
  247. package/resolveio-client-lib-core.d.ts +5 -0
  248. package/src/assets/css/font-awesome.css +2338 -0
  249. package/src/assets/css/home-page-layout.css +7221 -0
  250. package/src/assets/css/home-page-theme.css +1157 -0
  251. package/src/assets/css/leaflet.css +629 -0
  252. package/src/assets/css/owl.carousel.min.css +1 -0
  253. package/src/assets/css/owl.theme.min.css +1 -0
  254. package/src/assets/css/style.css +1283 -0
  255. package/src/assets/css/tablet.css +18 -0
  256. package/src/assets/css/toastr.css +192 -0
  257. package/src/assets/images/ResolveIO.png +0 -0
  258. package/src/assets/images/ResolveIO_white.png +0 -0
  259. package/src/assets/images/contactus/Contact_bnr.jpg +0 -0
  260. package/src/assets/images/contactus/cont-comp.png +0 -0
  261. package/src/assets/images/contactus/cont-mail.png +0 -0
  262. package/src/assets/images/contactus/cont-phone.png +0 -0
  263. package/src/assets/images/contactus/form-img.png +0 -0
  264. package/src/assets/images/contactus/user.png +0 -0
  265. package/src/assets/images/faq/Faq-form.png +0 -0
  266. package/src/assets/images/faq/clientlogo1.jpg +0 -0
  267. package/src/assets/images/faq/clientlogo2.jpg +0 -0
  268. package/src/assets/images/faq/clientlogo3.jpg +0 -0
  269. package/src/assets/images/faq/clientlogo4.jpg +0 -0
  270. package/src/assets/images/faq/clientlogo5.jpg +0 -0
  271. package/src/assets/images/faq/faq_banner copy.jpg +0 -0
  272. package/src/assets/images/faq/faq_banner.jpg +0 -0
  273. package/src/assets/images/faq/faqwomen.jpg +0 -0
  274. package/src/assets/images/faq/mail-input.png +0 -0
  275. package/src/assets/images/faq/user-input.png +0 -0
  276. package/src/assets/images/favicon-32x32.png +0 -0
  277. package/src/assets/images/features/future-bnr.jpg +0 -0
  278. package/src/assets/images/features/polygon.png +0 -0
  279. package/src/assets/images/home/banner-1.jpg +0 -0
  280. package/src/assets/images/home/booking.png +0 -0
  281. package/src/assets/images/home/client.jpg +0 -0
  282. package/src/assets/images/home/client2.jpg +0 -0
  283. package/src/assets/images/home/clientlogo1.jpg +0 -0
  284. package/src/assets/images/home/clientlogo2.jpg +0 -0
  285. package/src/assets/images/home/clientlogo3.jpg +0 -0
  286. package/src/assets/images/home/clientlogo4.jpg +0 -0
  287. package/src/assets/images/home/clientlogo5.jpg +0 -0
  288. package/src/assets/images/home/easy_invoicing.png +0 -0
  289. package/src/assets/images/home/inventory.png +0 -0
  290. package/src/assets/images/home/manage.png +0 -0
  291. package/src/assets/images/home/more.png +0 -0
  292. package/src/assets/images/home/order_management.png +0 -0
  293. package/src/assets/images/home/plan.png +0 -0
  294. package/src/assets/images/home-page/AjaxLoader.gif +0 -0
  295. package/src/assets/images/home-page/ResolveIO_white.png +0 -0
  296. package/src/assets/images/home-page/abt_thumb.png +0 -0
  297. package/src/assets/images/home-page/aero_icon_right_white.png +0 -0
  298. package/src/assets/images/home-page/arrow_btn.png +0 -0
  299. package/src/assets/images/home-page/banner_thumb.png +0 -0
  300. package/src/assets/images/home-page/blank.gif +0 -0
  301. package/src/assets/images/home-page/close_icon.png +0 -0
  302. package/src/assets/images/home-page/contact_bg.jpg +0 -0
  303. package/src/assets/images/home-page/email_icon.png +0 -0
  304. package/src/assets/images/home-page/fancybox_loading.gif +0 -0
  305. package/src/assets/images/home-page/fancybox_loading@2x.gif +0 -0
  306. package/src/assets/images/home-page/fancybox_overlay.png +0 -0
  307. package/src/assets/images/home-page/fancybox_sprite.png +0 -0
  308. package/src/assets/images/home-page/fancybox_sprite@2x.png +0 -0
  309. package/src/assets/images/home-page/header_center_after.png +0 -0
  310. package/src/assets/images/home-page/header_left_after.png +0 -0
  311. package/src/assets/images/home-page/home_banner_1.jpg +0 -0
  312. package/src/assets/images/home-page/logo.png +0 -0
  313. package/src/assets/images/home-page/logo_thumb_ace.png +0 -0
  314. package/src/assets/images/home-page/logo_thumb_acquire.png +0 -0
  315. package/src/assets/images/home-page/logo_thumb_chemtech.jpeg +0 -0
  316. package/src/assets/images/home-page/logo_thumb_cherokee.png +0 -0
  317. package/src/assets/images/home-page/logo_thumb_coilchem.png +0 -0
  318. package/src/assets/images/home-page/logo_thumb_dcs.png +0 -0
  319. package/src/assets/images/home-page/logo_thumb_integrity.png +0 -0
  320. package/src/assets/images/home-page/logo_thumb_intrepid.png +0 -0
  321. package/src/assets/images/home-page/logo_thumb_omt.png +0 -0
  322. package/src/assets/images/home-page/logo_thumb_quantum.png +0 -0
  323. package/src/assets/images/home-page/logo_thumb_smartchemical.png +0 -0
  324. package/src/assets/images/home-page/logo_thumb_terra.png +0 -0
  325. package/src/assets/images/home-page/logo_thumb_truechem.png +0 -0
  326. package/src/assets/images/home-page/password_icon.png +0 -0
  327. package/src/assets/images/home-page/phone_icon.png +0 -0
  328. package/src/assets/images/home-page/software_icon_1.png +0 -0
  329. package/src/assets/images/home-page/software_icon_2.png +0 -0
  330. package/src/assets/images/home-page/software_sec_bg.jpg +0 -0
  331. package/src/assets/images/home-page/software_thumb.png +0 -0
  332. package/src/assets/images/home-page/white_arrow_btn.png +0 -0
  333. package/src/assets/images/howitwork/add-booking.png +0 -0
  334. package/src/assets/images/howitwork/add-order.png +0 -0
  335. package/src/assets/images/howitwork/add-stuff.png +0 -0
  336. package/src/assets/images/howitwork/how_banner.jpg +0 -0
  337. package/src/assets/images/howitwork/howimg1.png +0 -0
  338. package/src/assets/images/howitwork/howimg2.png +0 -0
  339. package/src/assets/images/howitwork/step-check.png +0 -0
  340. package/src/assets/images/loginsignup/formimg.jpg +0 -0
  341. package/src/assets/images/loginsignup/login-logo.png +0 -0
  342. package/src/assets/images/owl.video.play.png +0 -0
  343. package/src/assets/images/pricing/Pricing_banner.jpg +0 -0
  344. package/src/assets/images/pricing/clientlogo1.jpg +0 -0
  345. package/src/assets/images/pricing/clientlogo2.jpg +0 -0
  346. package/src/assets/images/pricing/clientlogo3.jpg +0 -0
  347. package/src/assets/images/pricing/clientlogo4.jpg +0 -0
  348. package/src/assets/images/pricing/clientlogo5.jpg +0 -0
  349. package/src/assets/images/pricing/info-ico.png +0 -0
  350. package/src/assets/scss/toastr.scss +201 -0
@@ -0,0 +1,213 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { Injectable } from '@angular/core';
3
+ import { SocketManagerService } from './socket-manager.service';
4
+ import { TokenManagerService } from './token-manager.service';
5
+ import { AlertService } from './widgets/alert/alert.service';
6
+ import { OfflineManagerService } from './offline-manager.service';
7
+ import { dateReviver } from './util/common.helper';
8
+ import { Router } from '@angular/router';
9
+ import { HttpClient } from '@angular/common/http';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/router";
12
+ import * as i2 from "./socket-manager.service";
13
+ import * as i3 from "./token-manager.service";
14
+ import * as i4 from "@angular/common/http";
15
+ import * as i5 from "./widgets/alert/alert.service";
16
+ import * as i6 from "./offline-manager.service";
17
+ export class AccountManagerService {
18
+ constructor(_router, _socket, _token, _http, _alert, _offline) {
19
+ this._router = _router;
20
+ this._socket = _socket;
21
+ this._token = _token;
22
+ this._http = _http;
23
+ this._alert = _alert;
24
+ this._offline = _offline;
25
+ this.user = new BehaviorSubject(null);
26
+ this.initCompleted = new BehaviorSubject(false);
27
+ this.loginCompleted = new BehaviorSubject(false);
28
+ this.appVersion = 0;
29
+ this.environment = null;
30
+ }
31
+ initLoginManager(environment, appVersion) {
32
+ this.environment = environment;
33
+ this.appVersion = appVersion;
34
+ this._socket.initSocketManager();
35
+ let token = this._token.getToken('refreshToken');
36
+ if (token) {
37
+ this.initLogin(token);
38
+ setInterval(() => {
39
+ this.initLogin(token);
40
+ }, 3000);
41
+ }
42
+ else {
43
+ this.initCompleted.next(true);
44
+ }
45
+ }
46
+ initLogin(token) {
47
+ if (navigator.onLine) {
48
+ if (this._offline.offlineMode.getValue()) {
49
+ this._offline.setOffline(false);
50
+ this.getAccessToken(token);
51
+ }
52
+ }
53
+ else {
54
+ if (!this._offline.offlineMode.getValue() || !this.initCompleted.getValue()) {
55
+ this.closeSocket();
56
+ this._offline.setOffline(true);
57
+ let user = JSON.parse(this._offline.getUser(), dateReviver);
58
+ if (user) {
59
+ this.user.next(user);
60
+ }
61
+ if (!this.initCompleted.getValue()) {
62
+ this.initCompleted.next(true);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ getAccessToken(refreshToken) {
68
+ if (refreshToken) {
69
+ this._http.post(this.environment.SERVER_URL + '/accessToken', { refreshToken: refreshToken, appVersion: this.appVersion }).toPromise().then((res) => {
70
+ if (res.error) {
71
+ this.initCompleted.next(true);
72
+ }
73
+ else {
74
+ this._token.setToken('accessToken', res.result.token);
75
+ this.user.next(res.result.user);
76
+ this.openSocket(res.result.token, this.appVersion);
77
+ if (this.user$) {
78
+ this.user$.unsubscribe();
79
+ }
80
+ this.user$ = this._socket.subscribeBypassRoute('userWithId', res.result.user._id).subscribe(resUser => {
81
+ if (resUser) {
82
+ this.user.next(resUser);
83
+ this.loginCompleted.next(true);
84
+ this.initCompleted.next(true);
85
+ this._offline.saveUser(resUser);
86
+ }
87
+ });
88
+ }
89
+ }, err => {
90
+ this.initCompleted.next(true);
91
+ });
92
+ }
93
+ }
94
+ logIn(username, password) {
95
+ return new Promise((resolve, reject) => {
96
+ this._http.post(this.environment.SERVER_URL + '/login', { username: username, password: password }).toPromise().then((res) => {
97
+ if (res.error) {
98
+ this._alert.setAlert('error', res.result);
99
+ reject(res.result);
100
+ }
101
+ else {
102
+ this._token.setToken('refreshToken', res.result.token);
103
+ this.getAccessToken(res.result.token);
104
+ resolve(res.result.token); //should be resolving user
105
+ }
106
+ }, err => { });
107
+ });
108
+ }
109
+ logIn365(azure_token) {
110
+ return new Promise((resolve, reject) => {
111
+ this._http.post(this.environment.SERVER_URL + '/login365', { id_token: azure_token }).toPromise().then((res) => {
112
+ if (res.error) {
113
+ this._alert.setAlert('error', res.result);
114
+ reject(res.result);
115
+ }
116
+ else {
117
+ this._token.setToken('refreshToken', res.result.token);
118
+ this.getAccessToken(res.result.token);
119
+ resolve(res.result.token); //should be resolving user
120
+ }
121
+ }, err => { });
122
+ });
123
+ }
124
+ resetUserPassword(username) {
125
+ return new Promise((resolve, reject) => {
126
+ this._http.post(this.environment.SERVER_URL + '/resetPassword', { username: username }).toPromise().then((res) => {
127
+ resolve(true);
128
+ }, err => { });
129
+ });
130
+ }
131
+ logOut() {
132
+ this._router.navigateByUrl('/home');
133
+ setTimeout(() => {
134
+ this.user.next(null);
135
+ this._token.removeToken('refreshToken');
136
+ this._token.removeToken('accessToken');
137
+ this._offline.removeUser();
138
+ this.closeSocket();
139
+ }, 500);
140
+ }
141
+ openSocket(token, appVersion) {
142
+ this._socket.openSocket(this.environment, [token, appVersion]);
143
+ }
144
+ closeSocket() {
145
+ this._socket.closeSocket();
146
+ }
147
+ setUser(user) {
148
+ this.user.next(user);
149
+ }
150
+ getUser() {
151
+ return this.user.getValue();
152
+ }
153
+ getSocketStatus() {
154
+ return this._socket.getStatus();
155
+ }
156
+ isUserInView(view) {
157
+ let res = false;
158
+ if (this.isUserSuperAdmin()) {
159
+ return true;
160
+ }
161
+ this.user.getValue().roles.groups.forEach(group => {
162
+ if (group.views.filter(a => a.startsWith(view)).length) {
163
+ res = true;
164
+ }
165
+ });
166
+ if (this.user.getValue().roles.miscs.filter(a => a.startsWith(view)).length) {
167
+ res = true;
168
+ }
169
+ if (this.user.getValue().roles.groups.filter(a => a.name === view).length) {
170
+ res = true;
171
+ }
172
+ return res;
173
+ }
174
+ isUserSuperAdmin() {
175
+ return this.user.getValue() && this.user.getValue().roles.super_admin; //Remove any later
176
+ }
177
+ isInitCompleted() {
178
+ return new Promise((resolve, reject) => {
179
+ if (this.initCompleted.value) {
180
+ resolve(true);
181
+ }
182
+ else {
183
+ let initSub$ = this.initCompleted.subscribe((data) => {
184
+ if (data) {
185
+ initSub$.unsubscribe();
186
+ resolve(true);
187
+ }
188
+ }, () => { });
189
+ }
190
+ });
191
+ }
192
+ isLoginCompleted() {
193
+ return new Promise((resolve, reject) => {
194
+ if (this.loginCompleted.value) {
195
+ resolve(true);
196
+ }
197
+ else {
198
+ let initSub$ = this.loginCompleted.subscribe((data) => {
199
+ if (data) {
200
+ initSub$.unsubscribe();
201
+ resolve(true);
202
+ }
203
+ });
204
+ }
205
+ });
206
+ }
207
+ }
208
+ AccountManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountManagerService, deps: [{ token: i1.Router }, { token: i2.SocketManagerService }, { token: i3.TokenManagerService }, { token: i4.HttpClient }, { token: i5.AlertService }, { token: i6.OfflineManagerService }], target: i0.ɵɵFactoryTarget.Injectable });
209
+ AccountManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountManagerService });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AccountManagerService, decorators: [{
211
+ type: Injectable
212
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.SocketManagerService }, { type: i3.TokenManagerService }, { type: i4.HttpClient }, { type: i5.AlertService }, { type: i6.OfflineManagerService }]; } });
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBR2xELE1BQU0sT0FBTyxxQkFBcUI7SUFVakMsWUFBb0IsT0FBZSxFQUFVLE9BQTZCLEVBQVUsTUFBMkIsRUFBVSxLQUFpQixFQUFVLE1BQW9CLEVBQVUsUUFBK0I7UUFBN0wsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUFVLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBUmpOLFNBQUksR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFD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SyxFQUFFO2dCQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDZDtpQkFDSTtnQkFDSixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNyRCxJQUFJLElBQUksRUFBRTt3QkFDVCxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDRixDQUFDLENBQUMsQ0FBQzthQUNIO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOztrSEE5TlcscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuL21vZGVscy91c2VyLm1vZGVsJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRva2VuTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRhdGVSZXZpdmVyIH0gZnJvbSAnLi91dGlsL2NvbW1vbi5oZWxwZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBY2NvdW50TWFuYWdlclNlcnZpY2Uge1xuXG5cdHVzZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXJNb2RlbD4obnVsbCk7XG5cdGluaXRDb21wbGV0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0bG9naW5Db21wbGV0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0dXNlciQ6IFN1YnNjcmlwdGlvbjtcblx0YXBwVmVyc2lvbiA9IDA7XG5cblx0ZW52aXJvbm1lbnQgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlcjogUm91dGVyLCBwcml2YXRlIF9zb2NrZXQ6IFNvY2tldE1hbmFnZXJTZXJ2aWNlLCBwcml2YXRlIF90b2tlbjogVG9rZW5NYW5hZ2VyU2VydmljZSwgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBfYWxlcnQ6IEFsZXJ0U2VydmljZSwgcHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlKSB7XG5cdFx0XG5cdH1cblxuXHRwdWJsaWMgaW5pdExvZ2luTWFuYWdlcihlbnZpcm9ubWVudCwgYXBwVmVyc2lvbik6IHZvaWQge1xuXHRcdHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcblxuXHRcdHRoaXMuYXBwVmVyc2lvbiA9IGFwcFZlcnNpb247XG5cdFx0XG5cdFx0dGhpcy5fc29ja2V0LmluaXRTb2NrZXRNYW5hZ2VyKCk7XG5cblx0XHRsZXQgdG9rZW4gPSB0aGlzLl90b2tlbi5nZXRUb2tlbigncmVmcmVzaFRva2VuJyk7XG5cblx0XHRpZiAodG9rZW4pIHtcblx0XHRcdHRoaXMuaW5pdExvZ2luKHRva2VuKTtcblxuXHRcdFx0c2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmluaXRMb2dpbih0b2tlbik7XG5cdFx0XHR9LCAzMDAwKTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLmluaXRDb21wbGV0ZWQubmV4dCh0cnVlKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGluaXRMb2dpbih0b2tlbjogc3RyaW5nKSB7XG5cdFx0aWYgKG5hdmlnYXRvci5vbkxpbmUpIHtcblx0XHRcdGlmICh0aGlzLl9vZmZsaW5lLm9mZmxpbmVNb2RlLmdldFZhbHVlKCkpIHtcblx0XHRcdFx0dGhpcy5fb2ZmbGluZS5zZXRPZmZsaW5lKGZhbHNlKTtcblx0XHRcdFx0dGhpcy5nZXRBY2Nlc3NUb2tlbih0b2tlbik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0aWYgKCF0aGlzLl9vZmZsaW5lLm9mZmxpbmVNb2RlLmdldFZhbHVlKCkgfHwgIXRoaXMuaW5pdENvbXBsZXRlZC5nZXRWYWx1ZSgpKSB7XG5cblx0XHRcdFx0dGhpcy5jbG9zZVNvY2tldCgpO1xuXHRcdFx0XHR0aGlzLl9vZmZsaW5lLnNldE9mZmxpbmUodHJ1ZSk7XG5cblx0XHRcdFx0bGV0IHVzZXIgPSBKU09OLnBhcnNlKHRoaXMuX29mZmxpbmUuZ2V0VXNlcigpLCBkYXRlUmV2aXZlcik7XG5cblx0XHRcdFx0aWYgKHVzZXIpIHtcblx0XHRcdFx0XHR0aGlzLnVzZXIubmV4dCh1c2VyKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICghdGhpcy5pbml0Q29tcGxldGVkLmdldFZhbHVlKCkpIHtcblx0XHRcdFx0XHR0aGlzLmluaXRDb21wbGV0ZWQubmV4dCh0cnVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXRBY2Nlc3NUb2tlbihyZWZyZXNoVG9rZW4pIHtcblx0XHRpZiAocmVmcmVzaFRva2VuKSB7XG5cdFx0XHR0aGlzLl9odHRwLnBvc3QodGhpcy5lbnZpcm9ubWVudC5TRVJWRVJfVVJMICsgJy9hY2Nlc3NUb2tlbicsIHtyZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbiwgYXBwVmVyc2lvbjogdGhpcy5hcHBWZXJzaW9ufSkudG9Qcm9taXNlKCkudGhlbigocmVzOiBhbnkpID0+IHtcblx0XHRcdFx0aWYgKHJlcy5lcnJvcikge1xuXHRcdFx0XHRcdHRoaXMuaW5pdENvbXBsZXRlZC5uZXh0KHRydWUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuX3Rva2VuLnNldFRva2VuKCdhY2Nlc3NUb2tlbicsIHJlcy5yZXN1bHQudG9rZW4pO1xuXHRcdFx0XHRcdHRoaXMudXNlci5uZXh0KHJlcy5yZXN1bHQudXNlcik7XG5cblx0XHRcdFx0XHR0aGlzLm9wZW5Tb2NrZXQocmVzLnJlc3VsdC50b2tlbiwgdGhpcy5hcHBWZXJzaW9uKTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLnVzZXIkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnVzZXIkLnVuc3Vic2NyaWJlKCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGhpcy51c2VyJCA9IHRoaXMuX3NvY2tldC5zdWJzY3JpYmVCeXBhc3NSb3V0ZSgndXNlcldpdGhJZCcsIHJlcy5yZXN1bHQudXNlci5faWQpLnN1YnNjcmliZShyZXNVc2VyID0+IHtcblx0XHRcdFx0XHRcdGlmIChyZXNVc2VyKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMudXNlci5uZXh0KHJlc1VzZXIpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLmxvZ2luQ29tcGxldGVkLm5leHQodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuaW5pdENvbXBsZXRlZC5uZXh0KHRydWUpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLl9vZmZsaW5lLnNhdmVVc2VyKHJlc1VzZXIpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9LCBlcnIgPT4ge1xuXHRcdFx0XHR0aGlzLmluaXRDb21wbGV0ZWQubmV4dCh0cnVlKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBsb2dJbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMuX2h0dHAucG9zdCh0aGlzLmVudmlyb25tZW50LlNFUlZFUl9VUkwgKyAnL2xvZ2luJywge3VzZXJuYW1lOiB1c2VybmFtZSwgcGFzc3dvcmQ6IHBhc3N3b3JkfSkudG9Qcm9taXNlKCkudGhlbigocmVzOiBhbnkpID0+IHtcdFxuXHRcdFx0XHRpZiAocmVzLmVycm9yKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWxlcnQuc2V0QWxlcnQoJ2Vycm9yJywgcmVzLnJlc3VsdCk7XG5cdFx0XHRcdFx0cmVqZWN0KHJlcy5yZXN1bHQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuX3Rva2VuLnNldFRva2VuKCdyZWZyZXNoVG9rZW4nLCByZXMucmVzdWx0LnRva2VuKTtcblx0XHRcdFx0XHR0aGlzLmdldEFjY2Vzc1Rva2VuKHJlcy5yZXN1bHQudG9rZW4pO1xuXHRcdFx0XHRcdHJlc29sdmUocmVzLnJlc3VsdC50b2tlbik7IC8vc2hvdWxkIGJlIHJlc29sdmluZyB1c2VyXG5cdFx0XHRcdH1cblx0XHRcdH0sIGVyciA9PiB7fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgbG9nSW4zNjUoYXp1cmVfdG9rZW46IHN0cmluZykge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHR0aGlzLl9odHRwLnBvc3QodGhpcy5lbnZpcm9ubWVudC5TRVJWRVJfVVJMICsgJy9sb2dpbjM2NScsIHtpZF90b2tlbjogYXp1cmVfdG9rZW59KS50b1Byb21pc2UoKS50aGVuKChyZXM6IGFueSkgPT4ge1x0XG5cdFx0XHRcdGlmIChyZXMuZXJyb3IpIHtcblx0XHRcdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnZXJyb3InLCByZXMucmVzdWx0KTtcblx0XHRcdFx0XHRyZWplY3QocmVzLnJlc3VsdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fdG9rZW4uc2V0VG9rZW4oJ3JlZnJlc2hUb2tlbicsIHJlcy5yZXN1bHQudG9rZW4pO1xuXHRcdFx0XHRcdHRoaXMuZ2V0QWNjZXNzVG9rZW4ocmVzLnJlc3VsdC50b2tlbik7XG5cdFx0XHRcdFx0cmVzb2x2ZShyZXMucmVzdWx0LnRva2VuKTsgLy9zaG91bGQgYmUgcmVzb2x2aW5nIHVzZXJcblx0XHRcdFx0fVxuXHRcdFx0fSwgZXJyID0+IHt9KTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyByZXNldFVzZXJQYXNzd29yZCh1c2VybmFtZTogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMuX2h0dHAucG9zdCh0aGlzLmVudmlyb25tZW50LlNFUlZFUl9VUkwgKyAnL3Jlc2V0UGFzc3dvcmQnLCB7dXNlcm5hbWU6IHVzZXJuYW1lfSkudG9Qcm9taXNlKCkudGhlbigocmVzOiBhbnkpID0+IHtcdFxuXHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0fSwgZXJyID0+IHt9KTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBsb2dPdXQoKSB7XG5cdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMudXNlci5uZXh0KG51bGwpO1xuXHRcdFx0dGhpcy5fdG9rZW4ucmVtb3ZlVG9rZW4oJ3JlZnJlc2hUb2tlbicpO1xuXHRcdFx0dGhpcy5fdG9rZW4ucmVtb3ZlVG9rZW4oJ2FjY2Vzc1Rva2VuJyk7XG5cdFx0XHR0aGlzLl9vZmZsaW5lLnJlbW92ZVVzZXIoKTtcblx0XHRcdHRoaXMuY2xvc2VTb2NrZXQoKTtcblx0XHR9LCA1MDApO1xuXHR9XG5cblx0cHVibGljIG9wZW5Tb2NrZXQodG9rZW4sIGFwcFZlcnNpb24pIHtcblx0XHR0aGlzLl9zb2NrZXQub3BlblNvY2tldCh0aGlzLmVudmlyb25tZW50LCBbdG9rZW4sIGFwcFZlcnNpb25dKTtcblx0fVxuXG5cdHB1YmxpYyBjbG9zZVNvY2tldCgpIHtcblx0XHR0aGlzLl9zb2NrZXQuY2xvc2VTb2NrZXQoKTtcblx0fVxuXG5cdHB1YmxpYyBzZXRVc2VyKHVzZXI6IFVzZXJNb2RlbCkge1xuXHRcdHRoaXMudXNlci5uZXh0KHVzZXIpO1xuXHR9XG5cblx0cHVibGljIGdldFVzZXIoKTogVXNlck1vZGVsIHtcblx0XHRyZXR1cm4gdGhpcy51c2VyLmdldFZhbHVlKCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0U29ja2V0U3RhdHVzKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb2NrZXQuZ2V0U3RhdHVzKCk7XG5cdH1cblxuXHRwdWJsaWMgaXNVc2VySW5WaWV3KHZpZXc6IHN0cmluZykge1xuXHRcdGxldCByZXMgPSBmYWxzZTtcblxuXHRcdGlmICh0aGlzLmlzVXNlclN1cGVyQWRtaW4oKSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0KDxhbnk+dGhpcy51c2VyLmdldFZhbHVlKCkucm9sZXMpLmdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcblx0XHRcdGlmIChncm91cC52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgodmlldykpLmxlbmd0aCkge1xuXHRcdFx0XHRyZXMgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aWYgKCg8YW55PnRoaXMudXNlci5nZXRWYWx1ZSgpLnJvbGVzKS5taXNjcy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgodmlldykpLmxlbmd0aCkge1xuXHRcdFx0cmVzID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAoKDxhbnk+dGhpcy51c2VyLmdldFZhbHVlKCkucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLm5hbWUgPT09IHZpZXcpLmxlbmd0aCkge1xuXHRcdFx0cmVzID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzO1xuXHR9XG5cblx0cHVibGljIGlzVXNlclN1cGVyQWRtaW4oKSB7XG5cdFx0cmV0dXJuIHRoaXMudXNlci5nZXRWYWx1ZSgpICYmIHRoaXMudXNlci5nZXRWYWx1ZSgpLnJvbGVzLnN1cGVyX2FkbWluOyAvL1JlbW92ZSBhbnkgbGF0ZXJcblx0fVxuXG5cdHB1YmxpYyBpc0luaXRDb21wbGV0ZWQoKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdGlmICh0aGlzLmluaXRDb21wbGV0ZWQudmFsdWUpIHtcblx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRsZXQgaW5pdFN1YiQgPSB0aGlzLmluaXRDb21wbGV0ZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGRhdGEpIHtcblx0XHRcdFx0XHRcdGluaXRTdWIkLnVuc3Vic2NyaWJlKCk7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSwgKCkgPT4ge30pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGlzTG9naW5Db21wbGV0ZWQoKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdGlmICh0aGlzLmxvZ2luQ29tcGxldGVkLnZhbHVlKSB7XG5cdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0bGV0IGluaXRTdWIkID0gdGhpcy5sb2dpbkNvbXBsZXRlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcblx0XHRcdFx0XHRpZiAoZGF0YSkge1xuXHRcdFx0XHRcdFx0aW5pdFN1YiQudW5zdWJzY3JpYmUoKTtcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuIl19
@@ -0,0 +1,137 @@
1
+ import { AccountManagerService } from '../account-manager.service';
2
+ import { Injectable } from '@angular/core';
3
+ import { Router } from '@angular/router';
4
+ import { AuthService } from './auth.service';
5
+ import { DialogService } from '../widgets/dialog/dialog.service';
6
+ import { OfflineManagerService } from '../offline-manager.service';
7
+ import { dateReviver } from '../util/common.helper';
8
+ import { CoreService } from '../core.service';
9
+ import { AuthPermissionService } from './auth-permissions.service';
10
+ import { AlertService } from '../widgets/alert/alert.service';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/router";
13
+ import * as i2 from "./auth.service";
14
+ import * as i3 from "../widgets/dialog/dialog.service";
15
+ import * as i4 from "../account-manager.service";
16
+ import * as i5 from "../core.service";
17
+ import * as i6 from "../offline-manager.service";
18
+ import * as i7 from "./auth-permissions.service";
19
+ import * as i8 from "../widgets/alert/alert.service";
20
+ export class AuthGuard {
21
+ constructor(_router, _auth, _ds, _account, _app, _offline, _aps, _alert) {
22
+ this._router = _router;
23
+ this._auth = _auth;
24
+ this._ds = _ds;
25
+ this._account = _account;
26
+ this._app = _app;
27
+ this._offline = _offline;
28
+ this._aps = _aps;
29
+ this._alert = _alert;
30
+ }
31
+ canActivate(route, state) {
32
+ if (this._app.isInvalidVersion.getValue()) {
33
+ this._alert.setAlert('error', 'Can not use the program with an invalid version');
34
+ return false;
35
+ }
36
+ return new Promise((resolve) => {
37
+ this._account.isInitCompleted().then(() => {
38
+ let user = this._account.getUser();
39
+ if (!user) {
40
+ user = JSON.parse(this._offline.getUser(), dateReviver);
41
+ if (user) {
42
+ this._account.setUser(user);
43
+ }
44
+ }
45
+ if (!user) {
46
+ if (navigator.onLine) {
47
+ this._auth.loginUser().then(newUser => {
48
+ this._account.isLoginCompleted().then(() => {
49
+ user = this._account.getUser();
50
+ if (!user.active) {
51
+ this._router.navigateByUrl('/home');
52
+ resolve(false);
53
+ }
54
+ else {
55
+ let view = state.url.replace(/^(\/[-a-z]+\/[^\/]+)\/.*$/, '$1').replace(/\?.+/, '');
56
+ let moduleView = view.replace(/^(\/.*\/).*/, '$1');
57
+ if (user.roles.super_admin) {
58
+ resolve(true);
59
+ }
60
+ else if (!user.roles.groups.filter(a => a.views.filter(b => b.startsWith(view)).length).length) {
61
+ if (user.roles.groups.filter(a => a.views.filter(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b)).length).length) {
62
+ let link = user.roles.groups.filter(a => a.views.filter(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b)).length)[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a))[0];
63
+ this._router.navigateByUrl(link);
64
+ }
65
+ else {
66
+ this._router.navigateByUrl('/home');
67
+ }
68
+ resolve(false);
69
+ }
70
+ else {
71
+ resolve(true);
72
+ }
73
+ }
74
+ });
75
+ }, () => {
76
+ this._router.navigateByUrl('/home');
77
+ resolve(false);
78
+ });
79
+ }
80
+ else {
81
+ resolve(true);
82
+ }
83
+ }
84
+ else {
85
+ if (!user.active) {
86
+ this._router.navigateByUrl('/home');
87
+ resolve(false);
88
+ }
89
+ else {
90
+ let view = state.url.replace(/^(\/[-a-z]+\/[^\/]+)\/.*$/, '$1').replace(/\?.+/, '');
91
+ let moduleView = view.replace(/^(\/.*\/).*/, '$1');
92
+ if (user.roles.super_admin) {
93
+ resolve(true);
94
+ }
95
+ else if (!user.roles.groups.filter(a => a.views.filter(b => b.startsWith(view)).length).length) {
96
+ if (user.roles.groups.filter(a => a.views.filter(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b)).length).length) {
97
+ let link = user.roles.groups.filter(a => a.views.filter(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b)).length)[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a))[0];
98
+ this._router.navigateByUrl(link);
99
+ }
100
+ else {
101
+ this._router.navigateByUrl('/home');
102
+ }
103
+ resolve(false);
104
+ }
105
+ else {
106
+ resolve(true);
107
+ }
108
+ }
109
+ }
110
+ }, () => { });
111
+ });
112
+ }
113
+ doesLinkHaveParameter(link) {
114
+ let permissions = this._aps.getAllModulePermissions();
115
+ for (let i = 0; i < permissions.length; i++) {
116
+ let permission = permissions[i];
117
+ for (let j = 0; j < permission.views.length; j++) {
118
+ let view = permission.views[j];
119
+ if (view.link === link) {
120
+ if (view.has_parameter) {
121
+ return true;
122
+ }
123
+ else {
124
+ return false;
125
+ }
126
+ }
127
+ }
128
+ }
129
+ return false;
130
+ }
131
+ }
132
+ AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.AuthService }, { token: i3.DialogService }, { token: i4.AccountManagerService }, { token: i5.CoreService }, { token: i6.OfflineManagerService }, { token: i7.AuthPermissionService }, { token: i8.AlertService }], target: i0.ɵɵFactoryTarget.Injectable });
133
+ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AuthGuard });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AuthGuard, decorators: [{
135
+ type: Injectable
136
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AuthService }, { type: i3.DialogService }, { type: i4.AccountManagerService }, { type: i5.CoreService }, { type: i6.OfflineManagerService }, { type: i7.AuthPermissionService }, { type: i8.AlertService }]; } });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLE1BQU0sRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBRzlELE1BQU0sT0FBTyxTQUFTO0lBSXJCLFlBQW9CLE9BQWUsRUFDeEIsS0FBa0IsRUFDbEIsR0FBa0IsRUFDbEIsUUFBK0IsRUFDL0IsSUFBaUIsRUFDakIsUUFBK0IsRUFDL0IsSUFBMkIsRUFDM0IsTUFBb0I7UUFQWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUF1QjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQy9CLFNBQUksR0FBSixJ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LFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFFbkQsSUFBVSxJQUFJLENBQUMsS0FBTSxDQUFDLFdBQVcsRUFBRTs0QkFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUNkOzZCQUNJLElBQUksQ0FBTyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7NEJBQ3RHLElBQVUsSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO2dDQUN4SSxJQUFJLElBQUksR0FBUyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUM1TixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQzs2QkFDakM7aUNBQ0k7Z0NBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7NkJBQ3BDOzRCQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDZjs2QkFDSTs0QkFDSixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ2Q7cUJBQ0Q7aUJBQ0Q7WUFDRixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFZO1FBQ2pDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUV0RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QyxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNqRCxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUvQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO29CQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ3ZCLE9BQU8sSUFBSSxDQUFDO3FCQUNaO3lCQUNJO3dCQUNKLE9BQU8sS0FBSyxDQUFDO3FCQUNiO2lCQUNEO2FBQ0Q7U0FDRDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQzs7c0dBOUhXLFNBQVM7MEdBQVQsU0FBUzsyRkFBVCxTQUFTO2tCQURyQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3VudE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGUsIFJvdXRlciwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9vZmZsaW5lLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBkYXRlUmV2aXZlciB9IGZyb20gJy4uL3V0aWwvY29tbW9uLmhlbHBlcic7XG5pbXBvcnQgeyBDb3JlU2VydmljZSB9IGZyb20gJy4uL2NvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuL2F1dGgtcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi93aWRnZXRzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuXG5cdHJlZGlyZWN0VXJsOiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsIFxuXHRcdFx0XHRwcml2YXRlIF9hdXRoOiBBdXRoU2VydmljZSwgXG5cdFx0XHRcdHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlLFxuXHRcdFx0XHRwcml2YXRlIF9hY2NvdW50OiBBY2NvdW50TWFuYWdlclNlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX2FwcDogQ29yZVNlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX29mZmxpbmU6IE9mZmxpbmVNYW5hZ2VyU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYXBzOiBBdXRoUGVybWlzc2lvblNlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX2FsZXJ0OiBBbGVydFNlcnZpY2UpIFxuXHR7fVxuXHRcblx0Y2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPnxib29sZWFuIHtcblxuXHRcdGlmICh0aGlzLl9hcHAuaXNJbnZhbGlkVmVyc2lvbi5nZXRWYWx1ZSgpKSB7XG5cdFx0XHR0aGlzLl9hbGVydC5zZXRBbGVydCgnZXJyb3InLCAnQ2FuIG5vdCB1c2UgdGhlIHByb2dyYW0gd2l0aCBhbiBpbnZhbGlkIHZlcnNpb24nKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdHRoaXMuX2FjY291bnQuaXNJbml0Q29tcGxldGVkKCkudGhlbigoKSA9PiB7XG5cdFx0XHRcdGxldCB1c2VyID0gdGhpcy5fYWNjb3VudC5nZXRVc2VyKCk7XG5cblx0XHRcdFx0aWYgKCF1c2VyKSB7XG5cdFx0XHRcdFx0dXNlciA9IEpTT04ucGFyc2UodGhpcy5fb2ZmbGluZS5nZXRVc2VyKCksIGRhdGVSZXZpdmVyKTtcblx0XHRcdFx0XHRpZiAodXNlcikge1xuXHRcdFx0XHRcdFx0dGhpcy5fYWNjb3VudC5zZXRVc2VyKHVzZXIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICghdXNlcikge1xuXHRcdFx0XHRcdGlmIChuYXZpZ2F0b3Iub25MaW5lKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9hdXRoLmxvZ2luVXNlcigpLnRoZW4obmV3VXNlciA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2FjY291bnQuaXNMb2dpbkNvbXBsZXRlZCgpLnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHVzZXIgPSB0aGlzLl9hY2NvdW50LmdldFVzZXIoKTtcblxuXHRcdFx0XHRcdFx0XHRcdGlmICghdXNlci5hY3RpdmUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IHZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXihcXC9bLWEtel0rXFwvW15cXC9dKylcXC8uKiQvLCAnJDEnKS5yZXBsYWNlKC9cXD8uKy8sICcnKTtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBtb2R1bGVWaWV3ID0gdmlldy5yZXBsYWNlKC9eKFxcLy4qXFwvKS4qLywgJyQxJyk7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoKDxhbnk+dXNlci5yb2xlcykuc3VwZXJfYWRtaW4pIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdGVsc2UgaWYgKCEoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5maWx0ZXIoYiA9PiBiLnN0YXJ0c1dpdGgodmlldykpLmxlbmd0aCkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICgoPGFueT51c2VyLnJvbGVzKS5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5maWx0ZXIoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpKS5sZW5ndGgpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3MuZmlsdGVyKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSkubGVuZ3RoKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0aWYgKCF1c2VyLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRsZXQgdmlldyA9IHN0YXRlLnVybC5yZXBsYWNlKC9eKFxcL1stYS16XStcXC9bXlxcL10rKVxcLy4qJC8sICckMScpLnJlcGxhY2UoL1xcPy4rLywgJycpO1xuXHRcdFx0XHRcdFx0bGV0IG1vZHVsZVZpZXcgPSB2aWV3LnJlcGxhY2UoL14oXFwvLipcXC8pLiovLCAnJDEnKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0aWYgKCg8YW55PnVzZXIucm9sZXMpLnN1cGVyX2FkbWluKSB7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlIGlmICghKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3MuZmlsdGVyKGIgPT4gYi5zdGFydHNXaXRoKHZpZXcpKS5sZW5ndGgpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRpZiAoKDxhbnk+dXNlci5yb2xlcykuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3MuZmlsdGVyKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSkubGVuZ3RoKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRsZXQgbGluayA9ICg8YW55PnVzZXIucm9sZXMpLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLmZpbHRlcihiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikpLmxlbmd0aClbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LCAoKSA9PiB7fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRkb2VzTGlua0hhdmVQYXJhbWV0ZXIobGluazogc3RyaW5nKSB7XG5cdFx0bGV0IHBlcm1pc3Npb25zID0gdGhpcy5fYXBzLmdldEFsbE1vZHVsZVBlcm1pc3Npb25zKCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwZXJtaXNzaW9uLnZpZXdzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGxldCB2aWV3ID0gcGVybWlzc2lvbi52aWV3c1tqXTtcblxuXHRcdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdFx0aWYgKHZpZXcuaGFzX3BhcmFtZXRlcikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufSJdfQ==
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AuthPermissionService {
4
+ constructor() {
5
+ this.modules = [];
6
+ }
7
+ registerModule(modulePermission) {
8
+ this.modules.push(modulePermission);
9
+ this.modules.sort((a, b) => {
10
+ let x = a.name;
11
+ let y = b.name;
12
+ return ((x < y) ? -1 : ((x > y) ? 1 : 0));
13
+ });
14
+ }
15
+ getAllModulePermissions() {
16
+ return this.modules;
17
+ }
18
+ }
19
+ AuthPermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AuthPermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
+ AuthPermissionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AuthPermissionService });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AuthPermissionService, decorators: [{
22
+ type: Injectable
23
+ }], ctorParameters: function () { return []; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxxQkFBcUI7SUFJakM7UUFGQSxZQUFPLEdBQTRCLEVBQUUsQ0FBQztJQUV2QixDQUFDO0lBRWhCLGNBQWMsQ0FBQyxnQkFBdUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUM7O2tIQWpCVyxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kdWxlUGVybWlzc2lvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24ubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFBlcm1pc3Npb25TZXJ2aWNlIHtcblxuXHRtb2R1bGVzOiBNb2R1bGVQZXJtaXNzaW9uTW9kZWxbXSA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKCkge31cblx0XG5cdHJlZ2lzdGVyTW9kdWxlKG1vZHVsZVBlcm1pc3Npb246IE1vZHVsZVBlcm1pc3Npb25Nb2RlbCkge1xuXHRcdHRoaXMubW9kdWxlcy5wdXNoKG1vZHVsZVBlcm1pc3Npb24pO1xuXHRcdHRoaXMubW9kdWxlcy5zb3J0KChhLCBiKSA9PiB7XG5cdFx0XHRsZXQgeCA9IGEubmFtZTtcblx0XHRcdGxldCB5ID0gYi5uYW1lO1xuXHRcdFx0cmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5ICkgPyAxIDogMCkpO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0QWxsTW9kdWxlUGVybWlzc2lvbnMoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kdWxlcztcblx0fVxufVxuIl19